From 0fb8162c42b4863ab2994a52fcf97b7e0efb8280 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 11:37:00 +0500 Subject: [PATCH 01/98] feat(android/jsi): let EngineHost adopt a jsi::Runtime the embedder owns (cherry picked from commit 42b234c572b721028fe7336e1a3d94fef766f20f) --- .../runtime/android/jsi/EngineHost.cpp | 32 ++++++++++++++++--- NativeScript/runtime/android/jsi/EngineHost.h | 26 +++++++++++++-- 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/NativeScript/runtime/android/jsi/EngineHost.cpp b/NativeScript/runtime/android/jsi/EngineHost.cpp index d384d3ac1..7b54b8d28 100644 --- a/NativeScript/runtime/android/jsi/EngineHost.cpp +++ b/NativeScript/runtime/android/jsi/EngineHost.cpp @@ -11,7 +11,8 @@ #include #endif -#if defined(TARGET_ENGINE_HERMES) +// Only the VM-owning build needs the Hermes VM headers; see EngineHost.h. +#if defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME) #include #endif @@ -108,6 +109,21 @@ void EngineHost::SetFlags(const char *flags) { #endif } +#if defined(NS_JSI_HOST_RUNTIME) + +std::shared_ptr EngineHost::Adopt(::facebook::jsi::Runtime &runtime) { + // Not make_shared: the constructor is private. + std::shared_ptr host(new EngineHost()); + // The non-owning engine::Runtime constructor (jsi/hermes/HermesRuntime.h). + // There is no RuntimeConfig to mirror from the Create() path below: the + // embedder already built and configured the VM, and re-deciding any of it + // here would either be ignored or corrupt a runtime other code is using. + host->m_runtime = std::make_unique(runtime); + return host; +} + +#else + std::shared_ptr EngineHost::Create() { // Not make_shared: the constructor is private. std::shared_ptr host(new EngineHost()); @@ -229,10 +245,12 @@ std::shared_ptr EngineHost::Create() { return host; } +#endif // NS_JSI_HOST_RUNTIME + void EngineHost::Lock() { m_mutex.lock(); m_lockDepth++; -#if defined(TARGET_ENGINE_HERMES) +#if defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME) // Registers the calling thread with the VM. Hermes records per-thread stack // bounds for its overflow guard, so entering from a Java thread without this // faults rather than raising a RangeError. @@ -242,7 +260,7 @@ void EngineHost::Lock() { void EngineHost::Unlock() { if (m_lockDepth > 0) m_lockDepth--; -#if defined(TARGET_ENGINE_HERMES) +#if defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME) if (m_threadSafe != nullptr) m_threadSafe->unlock(); #endif m_mutex.unlock(); @@ -250,7 +268,11 @@ void EngineHost::Unlock() { void EngineHost::ExecutePendingJobs() { if (m_runtime == nullptr) return; +#if defined(NS_JSI_HOST_RUNTIME) + // The embedder owns the queue and decides when it runs; see ~JSScope. +#else m_runtime->drainMicrotasks(); +#endif } engine::Value EngineHost::ExecuteScript(const std::string &source, const std::string &sourceURL) { @@ -395,8 +417,10 @@ void EngineHost::ReleaseEngineState() { } EngineHost::~EngineHost() { + // Under NS_JSI_HOST_RUNTIME this drops the non-owning engine::Runtime + // wrapper only; the jsi::Runtime behind it belongs to the embedder. m_runtime.reset(); -#if defined(TARGET_ENGINE_HERMES) +#if defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME) m_threadSafe.reset(); #endif #if defined(TARGET_ENGINE_QUICKJS) diff --git a/NativeScript/runtime/android/jsi/EngineHost.h b/NativeScript/runtime/android/jsi/EngineHost.h index 7357c540d..31dffa0be 100644 --- a/NativeScript/runtime/android/jsi/EngineHost.h +++ b/NativeScript/runtime/android/jsi/EngineHost.h @@ -33,7 +33,14 @@ #include "v8.h" #endif -#if defined(TARGET_ENGINE_HERMES) +// NS_JSI_HOST_RUNTIME is the guest flavour (@nativescript/react-native): the +// jsi::Runtime belongs to the embedder, which created it, drives its microtask +// queue and guarantees the thread it is entered on. There is no VM to build and +// no ThreadSafeRuntime to register threads with, so the two things that need +// the Hermes VM headers -- makeThreadSafeHermesRuntime and jsi/threadsafe.h -- +// are the only pieces of the engine that this build does not compile. That is +// what lets the binary link nothing but the embedder's libjsi.so. +#if defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME) #include #endif @@ -48,7 +55,14 @@ class EngineHost { // `__collect = gc;` on its sixth line, so this is not optional on V8. static void SetFlags(const char *flags); +#if defined(NS_JSI_HOST_RUNTIME) + // Adopts a runtime the embedder owns. The reference must outlive this host: + // React Native tears its runtime down only after the TurboModule that holds + // us has been invalidated, which is what ReleaseEngineState is wired to. + static std::shared_ptr Adopt(::facebook::jsi::Runtime &runtime); +#else static std::shared_ptr Create(); +#endif ~EngineHost(); @@ -115,7 +129,7 @@ class EngineHost { std::unique_ptr m_allocator; #endif -#if defined(TARGET_ENGINE_HERMES) +#if defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME) // Owns the VM. engine::Runtime only borrows getUnsafeRuntime(). std::unique_ptr m_threadSafe; #endif @@ -154,13 +168,19 @@ class JSScope { } ~JSScope() { -#if defined(TARGET_ENGINE_HERMES) || defined(TARGET_ENGINE_QUICKJS) +#if (defined(TARGET_ENGINE_HERMES) && !defined(NS_JSI_HOST_RUNTIME)) || \ + defined(TARGET_ENGINE_QUICKJS) // Hermes and QuickJS run Promise jobs from an explicit microtask queue and // nothing else on Android drains it; V8 and JSC run theirs themselves when // the host stack unwinds. Draining as the *outermost* scope leaves JS is // what keeps the ordering the specs assert: a microtask queued during a // call runs before the next timer callback, which enters through its own // scope. + // + // NS_JSI_HOST_RUNTIME is excluded because the embedder already drains: + // React Native's RuntimeScheduler runs the queue at the end of each task + // it dispatches. Draining from inside a nested scope of ours would run + // application microtasks at a point RN did not choose. if (m_host->LockDepth() <= 1 && m_host->IsAlive()) { m_host->ExecutePendingJobs(); } From e9ec502bebadf638bdb965953da38f71a6c7ae3d Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 11:55:49 +0500 Subject: [PATCH 02/98] feat(android/jsi): add the guest attach path for an embedder-owned runtime (cherry picked from commit 4d2c2d1a04f332e3d02c499f2edc5f878b7819cd) --- NativeScript/runtime/android/jsi/Runtime.cpp | 82 +++++++++++++++++-- NativeScript/runtime/android/jsi/Runtime.h | 17 ++++ .../android/test-app/runtime/build.gradle | 7 ++ 3 files changed, 97 insertions(+), 9 deletions(-) diff --git a/NativeScript/runtime/android/jsi/Runtime.cpp b/NativeScript/runtime/android/jsi/Runtime.cpp index 5ee7dfeb1..a7dfd3f9b 100644 --- a/NativeScript/runtime/android/jsi/Runtime.cpp +++ b/NativeScript/runtime/android/jsi/Runtime.cpp @@ -173,6 +173,11 @@ jobject Runtime::GetJavaRuntime() const { return m_runtime; } +// The VM-owning entry points. A guest build (NS_JSI_HOST_RUNTIME) has no +// EngineHost::Create to call and is handed its runtime by the embedder, so this +// is where the two flavours part; they rejoin in InitCommon below. +#if !defined(NS_JSI_HOST_RUNTIME) + void Runtime::Init(JNIEnv *_env, jobject obj, int runtimeId, jstring filesPath, jstring nativeLibsDir, jboolean verboseLoggingEnabled, jboolean isDebuggable, jstring packageName, @@ -212,6 +217,49 @@ void Runtime::Init(JNIEnv *_env, jstring filesPath, jstring nativeLibsDir, throw NativeScriptException("Failed to create JS runtime"); } + InitCommon(filesRoot, callingDirStr, maxLogcatObjectSize, forceLog, /*guest*/ false); +} + +#else // NS_JSI_HOST_RUNTIME + +Runtime *Runtime::Attach(JNIEnv *_env, jobject obj, int runtimeId, + ::facebook::jsi::Runtime &hostRuntime, const std::string &filesRoot, + bool verboseLoggingEnabled, int maxLogcatObjectSize, bool forceLog) { + JEnv env(_env); + auto runtime = new Runtime(env, obj, runtimeId); + runtime->Attach(hostRuntime, filesRoot, verboseLoggingEnabled, maxLogcatObjectSize, forceLog); + return runtime; +} + +void Runtime::Attach(::facebook::jsi::Runtime &hostRuntime, const std::string &filesRoot, + bool verboseLoggingEnabled, int maxLogcatObjectSize, bool forceLog) { + LogEnabled = verboseLoggingEnabled; + + // Only the metadata reader and the (unused here) module loader read this. + Constants::APP_ROOT_FOLDER_PATH = filesRoot + "/app/"; + + DEBUG_WRITE("Attaching NativeScript to a host-provided JSI runtime"); + + // No SetFlags: the embedder built the VM long before we were loaded, and on + // every engine the flags this would set are read at VM construction. + engineHost = EngineHost::Adopt(hostRuntime); + + InitCommon(filesRoot, /*callingDir*/ "", maxLogcatObjectSize, forceLog, /*guest*/ true); +} + +#endif // NS_JSI_HOST_RUNTIME + +// Everything both flavours install. +// +// `guest` is true when the runtime belongs to an embedder. A host like React +// Native already provides console, timers, a module loader, performance and +// queueMicrotask, and ours are wired to a message loop and a require() root +// that only exist in a standalone app -- installing them over the host's would +// replace working implementations with broken ones. What a guest still needs is +// the part no host can provide: the metadata tree, the object manager, and the +// JNI interop callbacks. +void Runtime::InitCommon(const std::string &filesRoot, const std::string &callingDir, + int maxLogcatObjectSize, bool forceLog, bool guest) { // The napi runtime opens a process-lifetime handle scope here (global_scope) // so that napi_values created outside any explicit scope have somewhere to // live. There is no such thing to hold open: an owned engine::Value roots @@ -228,9 +276,11 @@ void Runtime::Init(JNIEnv *_env, jstring filesPath, jstring nativeLibsDir, // Newer JSC ships a native `WeakRef` global, so the old polyfill (which was // actually a strong reference and leaked) is no longer needed. - Console::createConsole(rt, maxLogcatObjectSize, forceLog); + if (!guest) { + Console::createConsole(rt, maxLogcatObjectSize, forceLog); - Timers::InitStatic(rt, global); + Timers::InitStatic(rt, global); + } // Bound to this (runtime) thread's Looper; drains deferred finalizers posted // via Runtime::PostFinalizer at a safe point off the GC sweep. @@ -306,7 +356,9 @@ void Runtime::Init(JNIEnv *_env, jstring filesPath, jstring nativeLibsDir, m_objectManager->Init(rt); - m_module.Init(rt, ArgConverter::jstringToString(callingDir)); + if (!guest) { + m_module.Init(rt, callingDir); + } if (!s_mainThreadInitialized) { m_isMainThread = true; @@ -355,7 +407,9 @@ void Runtime::Init(JNIEnv *_env, jstring filesPath, jstring nativeLibsDir, * Attach the `Worker` object constructor to EVERY env's global object so * that nested workers (a worker spawning its own workers) are supported. */ - { + // A worker gets its own VM, which a guest has no way to build -- and React + // Native ships its own Worker story anyway. + if (!guest) { engine::Function worker = engine::Function::createFromHostConstructor( rt, engine::PropNameID::forAscii(rt, "Worker"), 0, CallbackHandlers::NewThreadCallback); @@ -370,8 +424,11 @@ void Runtime::Init(JNIEnv *_env, jstring filesPath, jstring nativeLibsDir, // The napi runtime installs `global` (and `self`) as accessors returning the // current global object. nativescript::engine has no accessor API, and a // plain self-reference is what globalThis already is, so these are data - // properties here. - global.setProperty(rt, "global", global); + // properties here. A guest leaves it alone: React Native has already defined + // `global`, and it is the same object either way. + if (!guest) { + global.setProperty(rt, "global", global); + } if (!s_mainThreadInitialized) { MetadataNode::BuildMetadata(filesRoot); @@ -384,13 +441,20 @@ void Runtime::Init(JNIEnv *_env, jstring filesPath, jstring nativeLibsDir, ArrayHelper::Init(rt); - Performance::createPerformance(rt, global); + if (!guest) { + Performance::createPerformance(rt, global); - engine_util::SetFunction(rt, global, "queueMicrotask", QueueMicrotaskCallback, 1); + engine_util::SetFunction(rt, global, "queueMicrotask", QueueMicrotaskCallback, 1); + } m_arrayBufferHelper.CreateConvertFunctions(rt, global, m_objectManager); - m_loopTimer->Init(engineHost); + // Drives our own timers and GC hints off this thread's looper. A guest's + // timers belong to the host, and the GC hint would be measuring a heap we + // do not own. + if (!guest) { + m_loopTimer->Init(engineHost); + } // Per-runtime task queue bound to this thread's looper. Child workers post // their outbound messages/errors/cleanup onto their parent runtime's queue. diff --git a/NativeScript/runtime/android/jsi/Runtime.h b/NativeScript/runtime/android/jsi/Runtime.h index bc454014d..8fbb41b1e 100644 --- a/NativeScript/runtime/android/jsi/Runtime.h +++ b/NativeScript/runtime/android/jsi/Runtime.h @@ -74,6 +74,18 @@ namespace tns { bool isDebuggable, jstring packageName, jobjectArray args, jstring callingDir, int maxLogcatObjectSize, bool forceLog); +#if defined(NS_JSI_HOST_RUNTIME) + // The guest counterpart of Init: binds to a jsi::Runtime the embedder + // created and still owns. `filesRoot` is where the metadata .dat files + // were staged; there is no app root to run a module from. + static Runtime *Attach(JNIEnv *_env, jobject obj, int runtimeId, + ::facebook::jsi::Runtime &hostRuntime, const std::string &filesRoot, + bool verboseLoggingEnabled, int maxLogcatObjectSize, bool forceLog); + + void Attach(::facebook::jsi::Runtime &hostRuntime, const std::string &filesRoot, + bool verboseLoggingEnabled, int maxLogcatObjectSize, bool forceLog); +#endif + jobject GetJavaRuntime() const; void DestroyRuntime(); @@ -167,6 +179,11 @@ namespace tns { Runtime(JNIEnv *env, jobject runtime, int id); + // The part of startup that does not depend on who owns the runtime. + // See the comment on its definition for what `guest` turns off. + void InitCommon(const std::string &filesRoot, const std::string &callingDir, + int maxLogcatObjectSize, bool forceLog, bool guest); + int m_id; jobject m_runtime; diff --git a/platforms/android/test-app/runtime/build.gradle b/platforms/android/test-app/runtime/build.gradle index 6422cf287..15ef3e7e6 100644 --- a/platforms/android/test-app/runtime/build.gradle +++ b/platforms/android/test-app/runtime/build.gradle @@ -470,6 +470,13 @@ tasks.register('downloadHermesLibs', Exec) { } } } + doLast { + // Any CMake config generated before this fetch recorded no runtimeFiles + // for the prebuilts, and AGP would keep reusing it -- building green and + // shipping an APK that dlopen-fails at launch. Having had to download at + // all means every existing config predates the libraries. + delete new File(projectDir, ".cxx") + } } task 'setPackageVersion' { From 6a2da7ecd3a7d3f6e52dd95e4e77e146f13a1e47 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 12:14:25 +0500 Subject: [PATCH 03/98] feat(react-native/android): add the source-built guest runtime module (cherry picked from commit db52e93d8ced33ee20378022374ee516a2ff13ca) --- .gitignore | 4 + NativeScript/runtime/android/jsi/Runtime.cpp | 4 +- .../runtime/android/jsi/com_tns_Runtime.cpp | 5 + packages/react-native/android/CMakeLists.txt | 103 ++++++++ packages/react-native/android/build.gradle | 111 +++++++++ .../android/src/main/AndroidManifest.xml | 1 + .../src/main/cpp/NativeScriptRnInstall.cpp | 70 ++++++ .../reactnative/NativeScriptLogger.java | 45 ++++ .../NativeScriptNativeApiModule.java | 223 ++++++++++++++++++ .../NativeScriptNativeApiPackage.java | 42 ++++ packages/react-native/react-native.config.js | 7 +- .../src/main/java/com/tns/Runtime.java | 81 +++++++ 12 files changed, 694 insertions(+), 2 deletions(-) create mode 100644 packages/react-native/android/CMakeLists.txt create mode 100644 packages/react-native/android/build.gradle create mode 100644 packages/react-native/android/src/main/AndroidManifest.xml create mode 100644 packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp create mode 100644 packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptLogger.java create mode 100644 packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java create mode 100644 packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiPackage.java diff --git a/.gitignore b/.gitignore index b118017cc..7be98ea6d 100644 --- a/.gitignore +++ b/.gitignore @@ -101,3 +101,7 @@ metadata-generator/symbol-analyzer/target/ # release as the Apple xcframework. Committing them let the .so files drift out # of step with the headers. /platforms/android/test-app/runtime/src/main/libs/hermes/ + +# @nativescript/react-native Android module build output +packages/react-native/android/.cxx/ +packages/react-native/android/build/ diff --git a/NativeScript/runtime/android/jsi/Runtime.cpp b/NativeScript/runtime/android/jsi/Runtime.cpp index a7dfd3f9b..6a48a54dc 100644 --- a/NativeScript/runtime/android/jsi/Runtime.cpp +++ b/NativeScript/runtime/android/jsi/Runtime.cpp @@ -8,7 +8,9 @@ #include #include #include -#include "zipconf.h" +// PRId64, for the memory-accounting trace below. It used to arrive by accident +// through libzip's zipconf.h, which this file included but never used. +#include #include "NativeScriptException.h" #include #include "File.h" diff --git a/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp b/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp index 9c250ee7c..902e935e0 100644 --- a/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp +++ b/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp @@ -93,6 +93,10 @@ extern "C" JNIEXPORT void Java_com_tns_Runtime_setManualInstrumentationModeLegac setManualInstrumentationModeFast_impl(_env, clazz, mode); } +// Standalone only: a guest is attached by its embedder (see Runtime::Attach), +// never by Java asking the runtime to stand a VM up. Every other native below +// is interop that both flavours need, so only this one is compiled out. +#if !defined(NS_JSI_HOST_RUNTIME) extern "C" JNIEXPORT void Java_com_tns_Runtime_initNativeScript(JNIEnv* _env, jobject obj, jint runtimeId, jstring filesPath, jstring nativeLibDir, jboolean verboseLoggingEnabled, jboolean isDebuggable, jstring packageName, jobjectArray args, jstring callingDir, jint maxLogcatObjectSize, jboolean forceLog) { try { DEBUG_WRITE("NativeScript Initializing!"); @@ -110,6 +114,7 @@ extern "C" JNIEXPORT void Java_com_tns_Runtime_initNativeScript(JNIEnv* _env, jo nsEx.ReThrowToJava(nullptr); } } +#endif // !NS_JSI_HOST_RUNTIME Runtime* TryGetRuntime(int runtimeId) { Runtime* runtime = nullptr; diff --git a/packages/react-native/android/CMakeLists.txt b/packages/react-native/android/CMakeLists.txt new file mode 100644 index 000000000..694ebd80c --- /dev/null +++ b/packages/react-native/android/CMakeLists.txt @@ -0,0 +1,103 @@ +cmake_minimum_required(VERSION 3.22.1) +project(nativescript_rn) + +# The guest build of the NativeScript Android runtime. See ../build.gradle for +# why this compiles from source rather than shipping a prebuilt .aar. + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(NS_RUNTIME_DIR "${NS_ROOT}/runtime") +set(NS_ANDROID_RUNTIME_DIR "${NS_RUNTIME_DIR}/android/jsi") +set(NS_JNI_DIR "${NS_ROOT}/ffi/jni/jsi") +set(NS_JSI_DIR "${NS_ROOT}/jsi") + +# NS_JSI_HOST_RUNTIME: the jsi::Runtime belongs to React Native. +# TARGET_ENGINE_HERMES selects jsi/hermes, which despite the name is the +# adapter over plain facebook::jsi and holds nothing Hermes-specific -- under a +# host runtime the VM underneath may equally be JSC. +# NS_NO_INSPECTOR: the inspector is written against v8_inspector. +add_compile_definitions( + NS_JSI_HOST_RUNTIME + TARGET_ENGINE_HERMES + NS_NO_INSPECTOR + NATIVESCRIPT_REACT_NATIVE + __HERMES__ +) + +include_directories( + # Rooted includes ("jsi/hermes/HermesRuntime.h") resolve from here. Note + # this shadows an angle-include of a jsi/ header from the engine itself, + # so the shared layer's own includes stay quoted and rooted. + ${NS_ROOT} + ${NS_ANDROID_RUNTIME_DIR} + ${NS_ANDROID_RUNTIME_DIR}/instrumentation + ${NS_ANDROID_RUNTIME_DIR}/messageloop + ${NS_ANDROID_RUNTIME_DIR}/modules + ${NS_ANDROID_RUNTIME_DIR}/modules/console + ${NS_ANDROID_RUNTIME_DIR}/modules/module + ${NS_ANDROID_RUNTIME_DIR}/modules/performance + ${NS_ANDROID_RUNTIME_DIR}/modules/timers + ${NS_ANDROID_RUNTIME_DIR}/profiler + ${NS_ANDROID_RUNTIME_DIR}/sighandler + ${NS_ANDROID_RUNTIME_DIR}/util + ${NS_ANDROID_RUNTIME_DIR}/version + ${NS_ANDROID_RUNTIME_DIR}/workers + ${NS_JNI_DIR} + ${NS_JNI_DIR}/callbackhandlers + ${NS_JNI_DIR}/constants + ${NS_JNI_DIR}/conversion + ${NS_JNI_DIR}/exceptions + ${NS_JNI_DIR}/finalizer + ${NS_JNI_DIR}/global + ${NS_JNI_DIR}/jni + ${NS_JNI_DIR}/jsonhelper + ${NS_JNI_DIR}/metadata + ${NS_JNI_DIR}/objectmanager + ${NS_JNI_DIR}/weakref + # ConcurrentMap.h, robin_hood.h, spinmutex.h. The directory is named for + # Node-API because that is what else lives in it, but these three are + # plain containers with no Node-API in them, and the runtime uses them on + # both binding layers. + ${NS_ROOT}/napi/common + ${NS_METADATA_INCLUDE} + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp +) + +file(GLOB_RECURSE RUNTIME_SOURCES "${NS_ANDROID_RUNTIME_DIR}/*.cpp") +file(GLOB_RECURSE JNI_SOURCES "${NS_JNI_DIR}/*.cpp") +list(FILTER JNI_SOURCES EXCLUDE REGEX "_test\\.cpp$") + +# The asset extractor unpacks a standalone app's app/ directory out of the APK +# with libzip. Metro owns the JavaScript here and the only asset we need is the +# metadata, which the Java side stages -- so this is the one part of the runtime +# tree the guest drops, and dropping it takes libzip with it. +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/assetextractor/") + +add_library(nativescript_rn SHARED + ${RUNTIME_SOURCES} + ${JNI_SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/NativeScriptRnInstall.cpp +) + +find_package(ReactAndroid REQUIRED CONFIG) +find_package(fbjni REQUIRED CONFIG) + +find_library(LOG_LIB log) +find_library(ANDROID_LIB android) + +# jsi and nothing else. React Native 0.76+ merges most of its C++ into +# libreactnative.so while keeping jsi separate; both names are tried so the +# module spans the versions where that consolidation happened. +if (TARGET ReactAndroid::reactnative) + set(RN_JSI_TARGETS ReactAndroid::jsi ReactAndroid::reactnative) +else () + set(RN_JSI_TARGETS ReactAndroid::jsi ReactAndroid::turbomodulejsijni ReactAndroid::react_nativemodule_core) +endif () + +target_link_libraries(nativescript_rn + ${RN_JSI_TARGETS} + fbjni::fbjni + ${LOG_LIB} + ${ANDROID_LIB} +) diff --git a/packages/react-native/android/build.gradle b/packages/react-native/android/build.gradle new file mode 100644 index 000000000..05084f0b6 --- /dev/null +++ b/packages/react-native/android/build.gradle @@ -0,0 +1,111 @@ +// @nativescript/react-native -- Android +// +// Built from source in the consuming app, the way every React Native module +// with C++ is. That is not a packaging preference: jsi::Runtime is an abstract +// class whose vtable changes shape between React Native versions, so a binary +// compiled against one version's can call through the wrong slot on +// another. Compiling here means the runtime is always built against exactly the +// jsi the app ships. +// +// Nothing links a JavaScript engine. The runtime speaks nativescript::engine, +// which on this flavour is a header-only adapter over facebook::jsi, so the +// only JS symbols in libnativescript_rn.so come from React Native's own +// libjsi.so -- which is why the same binary works under Hermes and JSC alike. + +apply plugin: "com.android.library" + +def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback +} + +// The C++ and Java the runtime is made of. Two layouts are supported: the +// published npm package, which carries a copy under native-api/, and this +// repository, where the sources are the originals. Supporting both is what lets +// a demo app build straight from a checkout with no staging step. +// Keyed on the Android tree rather than on native-api/ itself: the iOS staging +// step creates that directory too, with only the Objective-C bridge in it. +def packagedRoot = file("${projectDir}/../native-api") +def fromPackage = file("${packagedRoot}/runtime/android/jsi").exists() +// Canonicalise before walking up. In a checkout the app reaches this package +// through a symlink in node_modules, and file("...") normalises ".." lexically +// without ever following it -- so the walk has to start from the real path or +// it lands in node_modules instead of at the repository root. +def repoRoot = projectDir.getCanonicalFile().parentFile.parentFile.parentFile + +def nsRoot = fromPackage ? packagedRoot : file("${repoRoot}/NativeScript") +// Two trees, exactly as the standalone runtime module composes them: com.tns.* +// proper, plus com.tns.bindings.* (the proxy generator that stands a Java class +// up for a JS subclass), which lives in its own project but is compiled into +// the runtime rather than shipped separately. +def runtimeJava = fromPackage + ? [file("${projectDir}/src/main/java-runtime")] + : [file("${repoRoot}/platforms/android/test-app/runtime/src/main/java"), + file("${repoRoot}/platforms/android/test-app/runtime-binding-generator/src/main/java")] +def metadataInclude = fromPackage + ? file("${packagedRoot}/metadata/include") + : file("${repoRoot}/metadata-generator/include") + +android { + namespace "org.nativescript.reactnative" + compileSdk safeExtGet("compileSdkVersion", 35) + // Follow the app rather than AGP's default, which points at whichever NDK the + // plugin was built against and need not be the one installed. + ndkVersion safeExtGet("ndkVersion", "27.1.12297006") + + defaultConfig { + minSdk safeExtGet("minSdkVersion", 24) + + externalNativeBuild { + cmake { + arguments "-DANDROID_STL=c++_shared", + "-DNS_ROOT=${nsRoot.absolutePath}", + "-DNS_METADATA_INCLUDE=${metadataInclude.absolutePath}" + cppFlags "-std=c++20", "-frtti", "-fexceptions" + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + buildFeatures { + prefab true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + sourceSets { + main { + // com.tns.* is the runtime's Java half -- the class resolver, the object + // maps, the dex factory. It is plain Java with no engine dependency, so + // the guest ships the same copy the standalone runtime uses. + java.srcDirs += runtimeJava + } + } + + packagingOptions { + // React Native and the NDK both contribute one; either is the NDK's. + pickFirst "**/libc++_shared.so" + // Never ship an engine. If one of these ever turns up here it means a + // dependency pulled a VM in behind our back, which would defeat the whole + // arrangement described at the top of this file. + exclude "**/libhermes.so" + exclude "**/libhermesvm.so" + exclude "**/libjsc.so" + exclude "**/libv8android.so" + } +} + +dependencies { + implementation "com.facebook.react:react-android" +} + +// Generates NativeScriptNativeApiSpec from src/NativeScriptNativeApi.ts, using +// the codegenConfig block in package.json. The same spec drives iOS. +apply plugin: "com.facebook.react" diff --git a/packages/react-native/android/src/main/AndroidManifest.xml b/packages/react-native/android/src/main/AndroidManifest.xml new file mode 100644 index 000000000..94cbbcfc3 --- /dev/null +++ b/packages/react-native/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp b/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp new file mode 100644 index 000000000..ead0cd812 --- /dev/null +++ b/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp @@ -0,0 +1,70 @@ +// The guest entry point: binds the NativeScript runtime to the jsi::Runtime +// React Native owns. +// +// This is the Android counterpart of ffi/objc/hermes/NativeApiJsi.mm, and it is +// deliberately small. Everything that makes NativeScript work -- the metadata +// tree, the object manager, the JNI interop -- is the same code the standalone +// runtime compiles; all that differs is who created the runtime it installs +// into. See NativeScript/runtime/android/jsi/EngineHost.h. + +#include +#include + +#include + +#include "ArgConverter.h" +#include "NativeScriptException.h" +#include "Runtime.h" + +using namespace tns; + +namespace { + +// Set once the first attach succeeds. React Native can reload the JS bundle, +// which builds a fresh jsi::Runtime; the module checks this before installing +// so a reload rebinds rather than stacking a second runtime on the first. +bool g_attached = false; + +} // namespace + +extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_attachNativeScript( + JNIEnv* env, jobject obj, jint runtimeId, jstring metadataPath, jlong hostRuntimePtr, + jboolean verboseLoggingEnabled, jint maxLogcatObjectSize, jboolean forceLog) { + try { + if (hostRuntimePtr == 0) { + throw NativeScriptException( + "No JavaScript runtime was provided. NativeScript needs the host's " + "jsi::Runtime, which React Native exposes through its " + "JavaScriptContextHolder."); + } + + auto* hostRuntime = reinterpret_cast(hostRuntimePtr); + std::string metadataDir = ArgConverter::jstringToString(metadataPath); + + Runtime::Attach(env, obj, runtimeId, *hostRuntime, metadataDir, + verboseLoggingEnabled == JNI_TRUE, maxLogcatObjectSize, + forceLog == JNI_TRUE); + g_attached = true; + } catch (NativeScriptException& e) { + e.ReThrowToJava(nullptr); + } catch (std::exception& e) { + NativeScriptException nsEx(std::string("Error: c++ exception: ") + e.what()); + nsEx.ReThrowToJava(nullptr); + } catch (...) { + NativeScriptException nsEx(std::string("Error: c++ exception!")); + nsEx.ReThrowToJava(nullptr); + } +} + +extern "C" JNIEXPORT jboolean JNICALL +Java_org_nativescript_reactnative_NativeScriptNativeApiModule_nativeIsInstalled(JNIEnv*, jobject) { + return g_attached ? JNI_TRUE : JNI_FALSE; +} + +extern "C" JNIEXPORT jstring JNICALL +Java_org_nativescript_reactnative_NativeScriptNativeApiModule_nativeRuntimeBackend(JNIEnv* env, + jobject) { + // What the *engine layer* is, not which VM sits underneath: a guest build + // talks jsi and cannot tell Hermes from JSC, and does not need to. + return env->NewStringUTF("jsi"); +} diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptLogger.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptLogger.java new file mode 100644 index 000000000..4e4e24555 --- /dev/null +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptLogger.java @@ -0,0 +1,45 @@ +package org.nativescript.reactnative; + +import android.util.Log; + +import com.tns.Logger; + +/** + * Routes the runtime's diagnostics to logcat. + * + *

The standalone runtime reads its verbosity from the app's package.json. A + * guest has no such file, so it is passed in at construction and defaults off: + * the runtime logs every marshalled call when enabled, which is far too much + * for an app that is only using NativeScript for a few APIs. + */ +public class NativeScriptLogger implements Logger { + private static final String TAG = "TNS.Java"; + + private boolean enabled; + + public NativeScriptLogger(boolean enabled) { + this.enabled = enabled; + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void setEnabled(boolean isEnabled) { + this.enabled = isEnabled; + } + + @Override + public void write(String msg) { + write(TAG, msg); + } + + @Override + public void write(String tag, String msg) { + if (enabled) { + Log.d(tag, msg); + } + } +} diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java new file mode 100644 index 000000000..2d7a1f8e8 --- /dev/null +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java @@ -0,0 +1,223 @@ +package org.nativescript.reactnative; + +import android.content.Context; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.module.annotations.ReactModule; + +import com.tns.Logger; +import com.tns.Runtime; + +import org.nativescript.nativeapi.NativeScriptNativeApiSpec; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * Installs NativeScript into React Native's JavaScript runtime. + * + *

The interesting call is {@link #install(String)}, which must run on the JS + * thread -- it is a synchronous TurboModule method, so React Native already + * guarantees that. Everything it does happens against the runtime React Native + * created; nothing here starts a JavaScript engine. + */ +@ReactModule(name = NativeScriptNativeApiModule.NAME) +public class NativeScriptNativeApiModule extends NativeScriptNativeApiSpec { + public static final String NAME = "NativeScriptNativeApi"; + + /** Written into the APK by nativescript.gradle. */ + private static final String ASSET_METADATA_DIR = "nativescript-metadata"; + + private static final String[] METADATA_FILES = { + "treeNodeStream.dat", "treeStringsStream.dat", "treeValueStream.dat", + }; + + static { + System.loadLibrary("nativescript_rn"); + } + + private final ReactApplicationContext reactContext; + + public NativeScriptNativeApiModule(ReactApplicationContext reactContext) { + super(reactContext); + this.reactContext = reactContext; + } + + @Override + public String getName() { + return NAME; + } + + private native boolean nativeIsInstalled(); + + private native String nativeRuntimeBackend(); + + @Override + public boolean install(String metadataPath) { + if (nativeIsInstalled()) { + return true; + } + + Context context = reactContext.getApplicationContext(); + String resolvedPath = (metadataPath == null || metadataPath.isEmpty()) + ? defaultMetadataPath() + : metadataPath; + + try { + stageMetadata(context, new File(resolvedPath)); + } catch (IOException e) { + throw new RuntimeException( + "NativeScript could not stage its metadata. Check that nativescript.gradle is " + + "applied in android/app/build.gradle so the metadata is generated " + + "into the APK.", e); + } + + // The runtime reads a jsi::Runtime pointer, not a bridge. This holder is + // how React Native hands one out, and it stays valid for the life of the + // JS context -- a reload replaces the context and re-runs install(). + long runtimePtr = reactContext.getJavaScriptContextHolder().get(); + if (runtimePtr == 0) { + throw new RuntimeException( + "React Native did not expose a JavaScript runtime. NativeScript requires the " + + "JSI runtime and cannot run over the legacy bridge."); + } + + attachRuntime(context, runtimePtr, resolvedPath); + return true; + } + + @Override + public boolean installWorkletRuntime(com.facebook.react.bridge.ReadableMap runtimeHolder, + String metadataPath) { + // Worklet runtimes are separate jsi::Runtimes on separate threads. Each + // would need its own attach and its own object manager, which the object + // graph does not yet model on Android; iOS reaches this through + // NativeApiJsi.mm. Reported honestly rather than silently no-oped. + return false; + } + + @Override + public boolean isInstalled() { + return nativeIsInstalled(); + } + + @Override + public String defaultMetadataPath() { + return new File(reactContext.getApplicationContext().getFilesDir(), "nativescript-metadata") + .getAbsolutePath(); + } + + @Override + public String getRuntimeBackend() { + return nativeRuntimeBackend(); + } + + @Override + public boolean __writeTestMarker(String content) { + try { + File marker = new File(reactContext.getApplicationContext().getFilesDir(), + "nativescript-test-marker.txt"); + try (OutputStream out = new FileOutputStream(marker)) { + out.write(content.getBytes("UTF-8")); + } + return true; + } catch (IOException e) { + return false; + } + } + + private static void attachRuntime(Context context, long runtimePtr, String metadataPath) { + File filesDir = context.getFilesDir(); + File dexDir = new File(filesDir, "nativescript-dex"); + if (!dexDir.exists() && !dexDir.mkdirs()) { + throw new RuntimeException("Could not create " + dexDir.getAbsolutePath()); + } + + Logger logger = new NativeScriptLogger(isDebuggable(context)); + + Runtime.attachToHostRuntime( + logger, + context.getPackageName(), + context.getApplicationInfo().nativeLibraryDir, + filesDir, + context.getClassLoader(), + dexDir, + /* dexThumb */ buildStamp(context), + isDebuggable(context), + runtimePtr, + metadataPath); + } + + /** + * Identifies this build of the app. + * + *

Used both as the dex cache key and as the metadata staging stamp, so it + * has to change whenever the app is rebuilt or upgraded -- otherwise a new + * build reads the previous one's generated proxies and metadata. + */ + private static String buildStamp(Context context) { + try { + android.content.pm.PackageInfo info = context.getPackageManager() + .getPackageInfo(context.getPackageName(), 0); + return info.versionName + "-" + info.lastUpdateTime; + } catch (android.content.pm.PackageManager.NameNotFoundException e) { + throw new RuntimeException("Could not read this app's own package info", e); + } + } + + private static boolean isDebuggable(Context context) { + return (context.getApplicationInfo().flags + & android.content.pm.ApplicationInfo.FLAG_DEBUGGABLE) != 0; + } + + /** + * Copies the generated metadata out of the APK once. + * + *

The reader takes a directory of files, and assets inside an APK are not + * files. Extraction is keyed on the build stamp so a rebuild that regenerates + * metadata does not keep serving the previous build's copy. + */ + private static void stageMetadata(Context context, File target) throws IOException { + File stamp = new File(target, ".version"); + String version = buildStamp(context); + + if (stamp.exists() && version.equals(readAll(stamp))) { + return; + } + + if (!target.exists() && !target.mkdirs()) { + throw new IOException("Could not create " + target.getAbsolutePath()); + } + + for (String name : METADATA_FILES) { + try (InputStream in = context.getAssets().open(ASSET_METADATA_DIR + "/" + name); + OutputStream out = new FileOutputStream(new File(target, name))) { + byte[] buffer = new byte[64 * 1024]; + int read; + while ((read = in.read(buffer)) != -1) { + out.write(buffer, 0, read); + } + } + } + + try (OutputStream out = new FileOutputStream(stamp)) { + out.write(version.getBytes("UTF-8")); + } + } + + private static String readAll(File file) throws IOException { + byte[] data = new byte[(int) file.length()]; + try (InputStream in = new java.io.FileInputStream(file)) { + int read = 0; + while (read < data.length) { + int n = in.read(data, read, data.length - read); + if (n < 0) break; + read += n; + } + } + return new String(data, "UTF-8"); + } +} diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiPackage.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiPackage.java new file mode 100644 index 000000000..443c1b570 --- /dev/null +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiPackage.java @@ -0,0 +1,42 @@ +package org.nativescript.reactnative; + +import androidx.annotation.Nullable; + +import com.facebook.react.BaseReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.module.model.ReactModuleInfo; +import com.facebook.react.module.model.ReactModuleInfoProvider; + +import java.util.HashMap; +import java.util.Map; + +/** Autolinking entry point for @nativescript/react-native. */ +public class NativeScriptNativeApiPackage extends BaseReactPackage { + + @Nullable + @Override + public NativeModule getModule(String name, ReactApplicationContext reactContext) { + if (NativeScriptNativeApiModule.NAME.equals(name)) { + return new NativeScriptNativeApiModule(reactContext); + } + return null; + } + + @Override + public ReactModuleInfoProvider getReactModuleInfoProvider() { + return () -> { + Map infos = new HashMap<>(); + infos.put( + NativeScriptNativeApiModule.NAME, + new ReactModuleInfo( + NativeScriptNativeApiModule.NAME, + NativeScriptNativeApiModule.NAME, + /* canOverrideExistingModule */ false, + /* needsEagerInit */ false, + /* isCxxModule */ false, + /* isTurboModule */ true)); + return infos; + }; + } +} diff --git a/packages/react-native/react-native.config.js b/packages/react-native/react-native.config.js index 22b2e13d5..c43d86754 100644 --- a/packages/react-native/react-native.config.js +++ b/packages/react-native/react-native.config.js @@ -1,7 +1,12 @@ module.exports = { dependency: { platforms: { - android: null, + android: { + sourceDir: "android", + packageImportPath: + "import org.nativescript.reactnative.NativeScriptNativeApiPackage;", + packageInstance: "new NativeScriptNativeApiPackage()", + }, }, }, }; diff --git a/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java b/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java index 961a8541a..6340af5f5 100644 --- a/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java +++ b/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java @@ -44,6 +44,14 @@ public class Runtime { private native void initNativeScript(int runtimeId, String filesPath, String nativeLibDir, boolean verboseLoggingEnabled, boolean isDebuggable, String packageName, Object[] v8Options, String callingDir, int maxLogcatObjectSize, boolean forceLog); + // The guest counterpart of initNativeScript, implemented by + // @nativescript/react-native rather than by the standalone runtime: instead + // of standing a VM up it binds to `hostRuntimePtr`, a jsi::Runtime the + // embedder created and still owns. Unresolved (and never called) in a + // standalone build, which binds natives lazily on first invocation. + private native void attachNativeScript(int runtimeId, String metadataPath, long hostRuntimePtr, + boolean verboseLoggingEnabled, int maxLogcatObjectSize, boolean forceLog); + private native void runModule(int runtimeId, String filePath) throws NativeScriptException; private native Object runScript(int runtimeId, String filePath) throws NativeScriptException; @@ -435,6 +443,79 @@ public static Runtime initializeRuntimeWithConfiguration(StaticConfiguration con return runtime; } + /* + Binds the runtime to a JavaScript runtime an embedder owns, for + @nativescript/react-native. Must be called on the embedder's JS thread: + the native side installs the metadata globals into that runtime straight + away, and jsi may only be touched from the thread the host designates. + + The differences from initializeRuntimeWithConfiguration are all + consequences of being a guest. There is no VM to create. There is no + app/ directory to require from, so Module is not initialized and + ts_helpers.js is not run -- the host's bundler owns module loading. + `metadataPath` is the directory the .dat files were staged into, which + is the only part of the standalone file layout a guest still needs. + */ + public static Runtime attachToHostRuntime(Logger logger, String appName, String nativeLibDir, + File filesDir, ClassLoader classLoader, File dexDir, + String dexThumb, boolean isDebuggable, + long hostRuntimePtr, String metadataPath) { + // Built here rather than by the caller so that AppConfig, which is + // package-private and reads a package.json a guest does not have, stays + // an implementation detail. Its defaults are what a guest wants anyway. + StaticConfiguration config = new StaticConfiguration(logger, appName, nativeLibDir, + filesDir, filesDir, classLoader, dexDir, dexThumb, new AppConfig(filesDir), + isDebuggable); + return attachToHostRuntime(config, hostRuntimePtr, metadataPath); + } + + static Runtime attachToHostRuntime(StaticConfiguration config, long hostRuntimePtr, String metadataPath) { + staticConfiguration = config; + WorkThreadScheduler scheduler = new WorkThreadScheduler(new Handler(Looper.myLooper())); + DynamicConfiguration dynamicConfiguration = new DynamicConfiguration(0, scheduler, null); + Runtime runtime = new Runtime(config, dynamicConfiguration); + try { + runtime.attach(hostRuntimePtr, metadataPath); + } catch (Throwable t) { + // Same rollback as initRuntime: the constructor already registered + // the instance, so a failed bootstrap must not leave a stale one + // reachable through the caches. + runtimeCache.remove(runtime.getRuntimeId()); + currentRuntime.remove(); + GcListener.unsubscribe(runtime); + throw t; + } + return runtime; + } + + private void attach(long hostRuntimePtr, String metadataPath) { + if (initialized) { + throw new RuntimeException("NativeScript is already attached to a runtime"); + } + + this.logger = config.logger; + + AppConfig appConfig = config.appConfig; + if (appConfig != null) { + this.cachedDiscardUncaughtJsExceptions = appConfig.getDiscardUncaughtJsExceptions(); + this.cachedEnableMultithreadedJavascript = appConfig.getEnableMultithreadedJavascript(); + } + + // Generated proxies still need somewhere to be defined and injected: + // extending a Java class from JS works the same way under a host runtime. + this.dexFactory = new DexFactory(logger, config.classLoader, config.dexDir, config.dexThumb, classStorageService, true); + + boolean forceConsoleLog = appConfig != null + && (appConfig.getForceLog() || "timeline".equalsIgnoreCase(appConfig.getProfilingMode())); + int maxLogcatObjectSize = appConfig != null ? appConfig.getMaxLogcatObjectSize() : 1024; + + attachNativeScript(getRuntimeId(), metadataPath, hostRuntimePtr, logger.isEnabled(), maxLogcatObjectSize, forceConsoleLog); + + GcListener.subscribe(this); + + initialized = true; + } + /* Called via JNI from a native-spawned worker thread (WorkerWrapper), after the thread has attached to the JVM and before the worker script runs. From 404eaea4e01cda2dec09bd35956b43f6d3ad7580 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 12:35:33 +0500 Subject: [PATCH 04/98] feat(react-native/android): generate metadata and attach to RN's runtime (cherry picked from commit 69b555a61b1c149198c935e0407325eaf327fca9) --- .gitignore | 2 + NativeScript/jsi/hermes/HermesRuntime.h | 83 +++++-- .../react-native/android/nativescript.gradle | 228 ++++++++++++++++++ .../NativeScriptNativeApiModule.java | 15 +- scripts/build_react_native_android_tools.sh | 40 +++ 5 files changed, 350 insertions(+), 18 deletions(-) create mode 100644 packages/react-native/android/nativescript.gradle create mode 100755 scripts/build_react_native_android_tools.sh diff --git a/.gitignore b/.gitignore index 7be98ea6d..0b6578446 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,5 @@ metadata-generator/symbol-analyzer/target/ # @nativescript/react-native Android module build output packages/react-native/android/.cxx/ packages/react-native/android/build/ +# Staged by scripts/build_react_native_android_tools.sh at package time +packages/react-native/android/tools/ diff --git a/NativeScript/jsi/hermes/HermesRuntime.h b/NativeScript/jsi/hermes/HermesRuntime.h index b3f42cd65..a01a29ea2 100644 --- a/NativeScript/jsi/hermes/HermesRuntime.h +++ b/NativeScript/jsi/hermes/HermesRuntime.h @@ -1208,6 +1208,57 @@ inline jsi::Value makeConstructReceiver(jsi::Runtime& rt, return jsi::Value(jsi::Object::create(rt, prototype)); } +// A JS function that wraps a host function so the result is constructible. +// +// Whether Hermes lets you `new` a native function is a property of the Hermes +// build, not of jsi: the vendored static-hermes allows it, the Hermes React +// Native ships throws "This function cannot be used as a constructor". Since +// @nativescript/react-native runs on whatever Hermes the app has, the +// constructor cannot be a native function at all. An ordinary JS function is +// constructible everywhere, gets a correct `this` from the language itself, and +// comes with a `prototype` whose `constructor` back-pointer is already right. +// +// Cached on the global because the factory is per-runtime and there is nowhere +// else to hang per-runtime state; the property is non-enumerable so it does not +// show up in application code. +inline jsi::Function hostConstructorFactory(jsi::Runtime& rt) { + static constexpr const char* kFactoryKey = "__nsHostConstructorFactory"; + + jsi::Value cached = rt.global().getProperty(rt, kFactoryKey); + if (cached.isObject() && cached.getObject(rt).isFunction(rt)) { + return cached.getObject(rt).getFunction(rt); + } + + jsi::Value made = rt.evaluateJavaScript( + std::make_shared( + "(function (hostFn, name, length) {" + " function NativeScriptClass() {" + " return hostFn.apply(this, arguments);" + " }" + " Object.defineProperty(NativeScriptClass, 'name'," + " { value: name, configurable: true });" + " Object.defineProperty(NativeScriptClass, 'length'," + " { value: length, configurable: true });" + " return NativeScriptClass;" + "})"), + "nativescript:host-constructor"); + + jsi::Function factory = made.getObject(rt).getFunction(rt); + + jsi::Object global = rt.global(); + jsi::Function defineProperty = global.getPropertyAsObject(rt, "Object") + .getPropertyAsFunction(rt, "defineProperty"); + jsi::Object descriptor(rt); + descriptor.setProperty(rt, "value", jsi::Value(rt, factory)); + descriptor.setProperty(rt, "enumerable", false); + descriptor.setProperty(rt, "configurable", true); + defineProperty.call(rt, jsi::Value(rt, global), + jsi::String::createFromAscii(rt, kFactoryKey), + jsi::Value(rt, descriptor)); + + return factory; +} + inline jsi::Function makeHostConstructor(Runtime& runtime, const PropNameID& name, unsigned int paramCount, @@ -1239,21 +1290,23 @@ inline jsi::Function makeHostConstructor(Runtime& runtime, } }); - weakSelf->emplace(rt, fn); - // A writable own `prototype`: MetadataNode chains class prototypes with a - // plain `ctor.prototype = ...` assignment, and a Hermes host function has no - // prototype at all until one is installed. - // - // It carries a `constructor` back-pointer, as the spec requires of any - // function's prototype. V8's Function::New installs one for us; a bare object - // has none, so `instance.constructor` walked past the class prototype to - // Object.prototype.constructor and every native class reported its name as - // "Object". The QuickJS and JSC backends needed the same property for the - // same reason. - jsi::Object prototype(rt); - prototype.setProperty(rt, "constructor", jsi::Value(rt, fn)); - fn.setProperty(rt, "prototype", prototype); - return fn; + // Wrap it in a real JS function; see hostConstructorFactory above. The + // wrapper brings its own writable `prototype` carrying the `constructor` + // back-pointer the spec requires, which is what stops `instance.constructor` + // walking past the class prototype and reporting every native class as + // "Object". + jsi::Function factory = hostConstructorFactory(rt); + jsi::Value made = factory.call(rt, jsi::Value(rt, fn), + jsi::String::createFromUtf8(rt, text), + jsi::Value(static_cast(paramCount))); + jsi::Function ctor = made.getObject(rt).getFunction(rt); + + // Weak, and pointing at the wrapper rather than the host function: it is the + // wrapper that owns `prototype`, and it is what a direct (non-`new`) call has + // to synthesise a receiver from. Strong would be a cycle through + // prototype.constructor that the GC cannot break. + weakSelf->emplace(rt, ctor); + return ctor; } } // namespace hermesengine diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle new file mode 100644 index 000000000..31f917bd0 --- /dev/null +++ b/packages/react-native/android/nativescript.gradle @@ -0,0 +1,228 @@ +// NativeScript build integration for a React Native app. +// +// Apply from android/app/build.gradle: +// +// apply from: "../../node_modules/@nativescript/react-native/android/nativescript.gradle" +// +// It adds two things: +// +// * metadata generation -- the description of every Java/Kotlin class the app +// can see, which is what makes `android.widget.Toast` resolvable from JS. +// Generated from the app's own resolved classpath, so a library the app +// installs is callable without anyone publishing bindings for it. +// +// * TypeScript declarations for the same classpath, off by default because +// they take a while. Turn on with -PnsGenerateTypings=true. +// +// Both are keyed to the variant being built, so debug and release get metadata +// for the dependencies they actually resolve. + +import java.nio.file.Paths + +def nsPackageDir = file("${buildscript.sourceFile.parentFile}") +def toolsDir = file("${nsPackageDir}/tools") + +def metadataGeneratorJar = file("${toolsDir}/android-metadata-generator.jar") +def dtsGeneratorJar = file("${toolsDir}/dts-generator.jar") + +def nsGenerateTypings = project.hasProperty("nsGenerateTypings") + && Boolean.parseBoolean(project.property("nsGenerateTypings").toString()) + +// Where the .dat files land. This is added to the asset source set rather than +// written into src/, so a clean build regenerates and nothing lands in version +// control. NativeScriptNativeApiModule copies them out of the APK on first run. +def metadataAssetRoot = file("${buildDir}/generated/nativescript/assets") +def metadataOutDir = file("${metadataAssetRoot}/nativescript-metadata") + +android { + sourceSets { + main { + assets.srcDirs += metadataAssetRoot + } + } +} + +/** + * Every jar the variant resolves, plus android.jar. + * + * AARs are asked for as "android-classes-jar" so the artifact view unpacks + * classes.jar for us; without that an .aar arrives as an archive the generator + * cannot read. + */ +def resolveClasspathJars = { variant -> + def jars = new LinkedHashSet() + + def androidJar = Paths.get(android.sdkDirectory.absolutePath, "platforms", + android.compileSdkVersion, "android.jar").toFile() + if (androidJar.exists()) { + jars.add(androidJar) + } + + // The published name of AGP's "classes.jar unpacked from an aar" artifact. + // Spelled out rather than read off AndroidArtifacts.ArtifactType, which is + // AGP-internal and not resolvable from a script plugin. + def classesJarType = "android-classes-jar" + + try { + def view = variant.runtimeConfiguration.incoming.artifactView { config -> + config.lenient(true) + config.attributes { container -> + container.attribute( + org.gradle.api.attributes.Attribute.of("artifactType", String), + classesJarType) + } + } + view.artifacts.artifactFiles.each { jars.add(it) } + } catch (Exception e) { + logger.warn("NativeScript: could not resolve the ${variant.name} runtime classpath " + + "(${e.message}). Metadata will cover only the Android SDK.") + } + + return jars +} + +/** Directories of .class files this build produced, across every subproject. */ +def resolveCompiledClassDirs = { variant -> + def dirs = new LinkedHashSet() + def variantName = variant.name + + rootProject.subprojects.each { sub -> + ["intermediates/javac/${variantName}/classes", + "intermediates/javac/${variantName}/compile${variantName.capitalize()}JavaWithJavac/classes", + "tmp/kotlin-classes/${variantName}"].each { relative -> + def candidate = new File(sub.buildDir, relative) + if (candidate.isDirectory()) { + dirs.add(candidate) + } + } + } + + return dirs +} + +def collectClassFiles = { Collection roots -> + def files = new ArrayList() + roots.each { root -> + root.eachFileRecurse { f -> + if (f.isFile() && f.name.endsWith(".class")) { + files.add(f) + } + } + } + return files +} + +android.applicationVariants.all { variant -> + def variantName = variant.name.capitalize() + def workDir = file("${buildDir}/nativescript/${variant.name}") + + def metadataTask = tasks.register("generateNativeScriptMetadata${variantName}", JavaExec) { + group = "nativescript" + description = "Generates NativeScript metadata for the ${variant.name} classpath." + + // The generator takes its input as files in the working directory + // rather than as arguments -- a classpath can be thousands of entries + // and would overflow the command line. + workingDir workDir + mainClass = "-jar" + + outputs.dir(metadataOutDir) + + doFirst { + if (!metadataGeneratorJar.exists()) { + throw new GradleException( + "NativeScript: ${metadataGeneratorJar} is missing. It ships with " + + "@nativescript/react-native; reinstall the package, or run " + + "scripts/build_react_native_android_tools.sh from a checkout.") + } + + workDir.mkdirs() + metadataOutDir.deleteDir() + metadataOutDir.mkdirs() + + def jars = resolveClasspathJars(variant) + def classDirs = resolveCompiledClassDirs(variant) + + new File(workDir, "mdg-java-dependencies.txt").withWriter { out -> + jars.each { if (it.name.endsWith(".jar")) out.println it.absolutePath } + classDirs.each { out.println it.absolutePath } + } + + new File(workDir, "mdg-java-out.txt").withWriter { out -> + collectClassFiles(classDirs).each { out.println it.absolutePath } + } + + new File(workDir, "mdg-output-dir.txt").withWriter { out -> + out.println metadataOutDir.absolutePath + } + + // Optional filters, same file names and format the NativeScript CLI + // uses. Absent means "everything on the classpath". + ["whitelist.mdg", "blacklist.mdg"].each { name -> + def source = file("${project.projectDir}/${name}") + def target = new File(workDir, name) + if (source.exists()) { + target.text = source.text + } else { + target.delete() + } + } + + logger.lifecycle("NativeScript: generating metadata from ${jars.size()} jars and " + + "${classDirs.size()} class directories") + + def params = [metadataGeneratorJar.absolutePath] + if (project.hasProperty("nsVerboseMetadata")) { + params.add("verbose") + } + args params.toArray() + } + } + + def typingsTask = tasks.register("generateNativeScriptTypings${variantName}", JavaExec) { + group = "nativescript" + description = "Generates TypeScript declarations for the ${variant.name} classpath." + + workingDir workDir + mainClass = "-jar" + onlyIf { nsGenerateTypings } + + doFirst { + if (!dtsGeneratorJar.exists()) { + throw new GradleException( + "NativeScript: ${dtsGeneratorJar} is missing. It ships with " + + "@nativescript/react-native; reinstall the package, or run " + + "scripts/build_react_native_android_tools.sh from a checkout.") + } + + // Alongside the app rather than in build/: these are checked in and + // referenced from tsconfig.json, the same way types/ios is on the + // Apple side. + def typingsDir = file("${rootProject.projectDir}/../types/android") + typingsDir.mkdirs() + + def params = [dtsGeneratorJar.absolutePath, "-input"] + resolveClasspathJars(variant).each { params.add(it.absolutePath) } + params.add("-output") + params.add(typingsDir.absolutePath) + + logger.lifecycle("NativeScript: writing TypeScript declarations to ${typingsDir}") + args params.toArray() + } + } + + // Metadata describes the compiled classes, so it has to run after javac and + // before the assets are merged into the APK. + // Depend on the provider directly. Reaching into javaCompileProvider.configure + // to wire these up nests one task's configuration inside another's, which + // Gradle rejects. + metadataTask.configure { it.dependsOn(variant.javaCompileProvider) } + typingsTask.configure { it.dependsOn(variant.javaCompileProvider) } + + tasks.matching { it.name == "merge${variantName}Assets" }.configureEach { + it.dependsOn(metadataTask) + if (nsGenerateTypings) { + it.dependsOn(typingsTask) + } + } +} diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java index 2d7a1f8e8..d12561a7e 100644 --- a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java @@ -104,9 +104,15 @@ public boolean isInstalled() { return nativeIsInstalled(); } + /** + * The directory the runtime is pointed at. + * + *

Note this is the parent: MetadataBuilder appends "/metadata" + * to whatever it is handed, so the .dat files are staged one level below. + */ @Override public String defaultMetadataPath() { - return new File(reactContext.getApplicationContext().getFilesDir(), "nativescript-metadata") + return new File(reactContext.getApplicationContext().getFilesDir(), "nativescript") .getAbsolutePath(); } @@ -180,14 +186,17 @@ private static boolean isDebuggable(Context context) { * files. Extraction is keyed on the build stamp so a rebuild that regenerates * metadata does not keep serving the previous build's copy. */ - private static void stageMetadata(Context context, File target) throws IOException { - File stamp = new File(target, ".version"); + private static void stageMetadata(Context context, File root) throws IOException { + File stamp = new File(root, ".version"); String version = buildStamp(context); if (stamp.exists() && version.equals(readAll(stamp))) { return; } + // MetadataBuilder::BuildMetadata appends "/metadata" to the path it is + // given, so the files go one level below the directory we report. + File target = new File(root, "metadata"); if (!target.exists() && !target.mkdirs()) { throw new IOException("Could not create " + target.getAbsolutePath()); } diff --git a/scripts/build_react_native_android_tools.sh b/scripts/build_react_native_android_tools.sh new file mode 100755 index 000000000..eda9bb99a --- /dev/null +++ b/scripts/build_react_native_android_tools.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Builds the Java build-time tools @nativescript/react-native ships and stages +# them into the package. +# +# android-metadata-generator.jar -- describes the app's classpath so JS can +# resolve android.* and java.* +# dts-generator.jar -- TypeScript declarations for the same +# +# Both are plain JVM tools with no NDK involvement, so unlike the runtime itself +# they can be prebuilt and shipped: there is no jsi ABI to track. +set -euo pipefail +source "$(dirname "$0")/build_utils.sh" + +TEST_APP_DIR="$REPO_ROOT/platforms/android/test-app" +TOOLS_DIR="$REPO_ROOT/packages/react-native/android/tools" + +checkpoint "Building the NativeScript Android build tools..." + +( + cd "$TEST_APP_DIR" + ./gradlew --quiet :android-metadata-generator:jar :dts-generator:jar +) + +mkdir -p "$TOOLS_DIR" + +MDG_JAR=$(find "$TEST_APP_DIR/build-tools/android-metadata-generator/build/libs" \ + -name "*.jar" ! -name "*-sources.jar" | head -1) +DTS_JAR=$(find "$TEST_APP_DIR/build-tools/android-dts-generator/dts-generator/build/libs" \ + -name "*.jar" ! -name "*-sources.jar" | head -1) + +if [ -z "$MDG_JAR" ] || [ -z "$DTS_JAR" ]; then + echo "Could not find the built tool jars." >&2 + exit 1 +fi + +cp "$MDG_JAR" "$TOOLS_DIR/android-metadata-generator.jar" +cp "$DTS_JAR" "$TOOLS_DIR/dts-generator.jar" + +checkpoint "Staged:" +ls -la "$TOOLS_DIR" From ba3a9c01d9c8d4249de33e86295317a88b147157 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 12:53:17 +0500 Subject: [PATCH 05/98] fix(dts-generator): emit declarations TypeScript can parse (cherry picked from commit 8708971abe09ed7f1b6c3256a6a1d9d0224cd2b3) --- .../src/main/java/com/telerik/dts/DtsApi.java | 196 ++++++++++++++++-- .../java/com/telerik/dts/TypeDefinition.java | 21 +- 2 files changed, 200 insertions(+), 17 deletions(-) diff --git a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java index 831aada44..56d390647 100644 --- a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java +++ b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java @@ -124,7 +124,7 @@ public String generateDtsContent(List javaClasses) { String simpleClassName = getSimpleClassname(currClass); - if (isObfuscated(simpleClassName)) { + if (isObfuscated(simpleClassName) || !isEmittableClassName(currentFileClassname)) { continue; } Signature signature = this.getSignature(currClass); @@ -139,7 +139,13 @@ public String generateDtsContent(List javaClasses) { currentFileClassname.contains(".debugger.") || currentFileClassname.endsWith("package-info") || currentFileClassname.endsWith("module-info") || - currentFileClassname.endsWith("Kt")) { + currentFileClassname.endsWith("Kt") || + // ...and classes nested inside one. A Kotlin file facade + // (FooKt) is already skipped above; its synthetic members + // (FooKt$WhenMappings) are just as unreachable from JS, and + // emitting them opens a module for a parent that was never + // written. + currentFileClassname.split("\\$")[0].endsWith("Kt")) { continue; } @@ -232,6 +238,18 @@ public String generateDtsContent(List javaClasses) { this.prevClass = currClass; } closePackage(prevClass, null); + + // closePackage derives how much to close from the last emitted class + // name, which does not always match how many modules were actually + // opened -- and one unclosed module makes the whole .d.ts unparseable + // rather than degrading the declarations it belongs to. Close whatever + // is still open. + String emitted = sbContent.toString(); + int unclosed = emitted.length() - emitted.replace("{", "").length() + - (emitted.length() - emitted.replace("}", "").length()); + while (unclosed > 0) { + sbContent.appendln(getTabs(--unclosed) + "}"); + } // process class scope end String[] refs = references.toArray(new String[references.size()]); @@ -243,20 +261,105 @@ public String generateDtsContent(List javaClasses) { return content; } + /** + * Replaces every type from a namespace we do not emit with {@code any}. + * + *

Scanned rather than matched with a regular expression. Generic arguments + * nest -- {@code androidNative.Array>} -- and a pattern + * either stops before the arguments (leaving {@code any}) or runs past + * the closing bracket (leaving {@code Array ignored = new ArrayList<>(); + for (String namespace : this.getIgnoredNamespaces()) { + ignored.add(namespace); + String aliased = getGlobalAliasedClassName(namespace); + if (!aliased.equals(namespace)) { + ignored.add(aliased); + } + } + + StringBuilder out = new StringBuilder(content.length()); + int i = 0; + while (i < content.length()) { + int length = ignoredTypeLengthAt(content, i, ignored); + if (length > 0) { + out.append("any"); + i += length; + } else { + out.append(content.charAt(i)); + i++; + } } // replace "extends any" with "extends java.lang.Object" - content = content.replace(" extends any ", String.format(" extends %s ", DtsApi.JavaLangObject)); + return out.toString().replace(" extends any ", String.format(" extends %s ", DtsApi.JavaLangObject)); + } - return content; + private static boolean isTypeNameChar(char c) { + return Character.isLetterOrDigit(c) || c == '_' || c == '$'; + } + + /** + * Length of the ignored-namespace type starting at {@code start}, or 0. + * Includes the qualified name and its balanced generic arguments. + */ + private static int ignoredTypeLengthAt(String content, int start, List ignored) { + // Must begin a name, not land in the middle of one. + if (start > 0) { + char previous = content.charAt(start - 1); + if (isTypeNameChar(previous) || previous == '.') { + return 0; + } + } + + for (String namespace : ignored) { + if (!content.startsWith(namespace, start)) { + continue; + } + int at = start + namespace.length(); + // "kotlin" must not match "kotlinx". + if (at < content.length() && isTypeNameChar(content.charAt(at))) { + continue; + } + // Trailing name segments: kotlin -> kotlin.jvm.functions.Function3 + while (at + 1 < content.length() && content.charAt(at) == '.' + && isTypeNameChar(content.charAt(at + 1))) { + at++; + while (at < content.length() && isTypeNameChar(content.charAt(at))) { + at++; + } + } + // Generic arguments, to the matching bracket. + if (at < content.length() && content.charAt(at) == '<') { + int depth = 0; + int scan = at; + while (scan < content.length()) { + char c = content.charAt(scan); + if (c == '<') { + depth++; + } else if (c == '>') { + depth--; + if (depth == 0) { + scan++; + break; + } + } else if (c == '\n' || c == ';') { + // Unbalanced; leave the arguments alone. + depth = -1; + break; + } + scan++; + } + if (depth == 0) { + at = scan; + } + } + return at - start; + } + return 0; } public static String serializeGenerics() { @@ -790,7 +893,12 @@ private Type[] getArgumentTypes(Method m) { Type[] types = new Type[referenceTypes.size()]; types = referenceTypes.toArray(types); return types; - } catch (ClassCastException classCast) { + } catch (ClassCastException | IllegalArgumentException parseFailure) { + // A generic signature the parser does not model -- an + // intersection bound () + // is the common one. The erased descriptor is always valid and + // always available, so fall back to it rather than failing the + // whole run over one method. return m.getArgumentTypes(); } } @@ -826,7 +934,7 @@ private Type getFieldType(Field f) { } try { return GenericUtilities.getType(typeSignature); - } catch (ClassCastException classCast) { + } catch (ClassCastException | IllegalArgumentException parseFailure) { return f.getType(); } } @@ -843,7 +951,11 @@ private Type getReturnType(Method m) { if(isVoid.matcher(returnSignature).matches()){ return m.getReturnType(); // returning void } - return GenericUtilities.getType(returnSignature); + try { + return GenericUtilities.getType(returnSignature); + } catch (ClassCastException | IllegalArgumentException parseFailure) { + return m.getReturnType(); + } } } return m.getReturnType(); @@ -939,6 +1051,52 @@ private String getMethodName(Method m) { return name; } + /** + * Whether a class can be written out at all. + * + *

Every segment of the qualified name becomes either a namespace or a + * class identifier, so all of them have to be identifiers. Kotlin breaks this + * in both directions: it mangles some internal classes with a leading dash + * ({@code -Base64}), and synthesises names with empty segments, which come + * out as {@code export module {}. Neither is reachable from JavaScript, so + * they are skipped rather than emitted as unparseable declarations. + */ + private static boolean isEmittableClassName(String qualifiedName) { + if (qualifiedName == null || qualifiedName.isEmpty()) { + return false; + } + for (String segment : qualifiedName.replace('$', '.').split("\\.", -1)) { + if (!isValidJsIdentifier(segment)) { + return false; + } + } + return true; + } + + /** + * Whether a name from the bytecode can be used as a TypeScript parameter name. + * + *

Kotlin emits synthetic parameter names that are not identifiers at all -- + * a property setter's parameter is literally {@code } -- and writing + * one out produces a .d.ts the compiler cannot parse. Such parameters fall + * back to paramN, exactly like the interface case below. + */ + private static boolean isValidJsIdentifier(String name) { + if (name == null || name.isEmpty()) { + return false; + } + if (!Character.isJavaIdentifierStart(name.charAt(0)) && name.charAt(0) != '$') { + return false; + } + for (int i = 1; i < name.length(); i++) { + char c = name.charAt(i); + if (!Character.isJavaIdentifierPart(c) && c != '$') { + return false; + } + } + return true; + } + private String getMethodParamSignature(JavaClass clazz, TypeDefinition typeDefinition, Method m) { LocalVariableTable table = m.getLocalVariableTable(); LocalVariable[] variables = table != null ? table.getLocalVariableTable() : null; @@ -956,7 +1114,7 @@ private String getMethodParamSignature(JavaClass clazz, TypeDefinition typeDefin ? variables[localVarIndex] : null; - if (localVariable != null) { + if (localVariable != null && isValidJsIdentifier(localVariable.getName())) { String name = localVariable.getName(); if(reservedJsKeywords.contains(name)){ System.out.println(String.format("Appending _ to reserved JS keyword %s", name)); @@ -1143,13 +1301,19 @@ private void convertToTypeScriptType(Type type, TypeDefinition typeDefinition, S typeName = this.typeOverrides.get(typeName); } + int emittedBaseAt = tsType.length(); if (!typeBelongsInCurrentTopLevelNamespace(typeName) && !typeName.startsWith("java.util.function.") && !isPrivateGoogleApiClass(typeName)) { tsType.append(getAliasedClassName(typeName)); } else { tsType.append(typeName); } - if(type instanceof GenericObjectType) { + // A base that collapsed to `any` takes no type arguments: `any` + // is not parseable TypeScript. Kotlin's synthetic inline-function + // parameters are the usual way to end up here. + boolean baseIsAny = "any".contentEquals(tsType.subSequence(emittedBaseAt, tsType.length())); + + if(!baseIsAny && type instanceof GenericObjectType) { GenericObjectType genericType = (GenericObjectType) type; if (genericType.getNumParameters() > 0) { tsType.append("<"); diff --git a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/TypeDefinition.java b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/TypeDefinition.java index 05f1aba02..dace0c5b4 100644 --- a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/TypeDefinition.java +++ b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/TypeDefinition.java @@ -98,7 +98,26 @@ private void setTypeGenerics(String typeGenericsSignature) { this.genericDefinitions = new ArrayList<>(); while (matcher.find()) { String label = matcher.group(1); - Type type = GenericUtilities.getType(matcher.group(2) + ";"); + String bound = matcher.group(2); + + // A type parameter may carry an intersection bound -- React Native's + // ReactScrollViewHelper has -- + // which arrives here as the bounds joined by ";:". A TypeScript type + // parameter takes a single constraint, and the first bound is the one + // the erased signature uses, so the rest are dropped. + int intersection = bound.indexOf(";:"); + if (intersection >= 0) { + bound = bound.substring(0, intersection); + } + + Type type; + try { + type = GenericUtilities.getType(bound + ";"); + } catch (IllegalArgumentException unparsed) { + // Some other shape the parser does not model. One unusable + // constraint is not worth failing the whole run over. + continue; + } this.genericDefinitions.add(new GenericDefinition(label, type)); } } From d767cb997ec513bfbf0348dc13d178d4e1802346 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 13:23:37 +0500 Subject: [PATCH 06/98] feat(react-native/android): support subclassing Java from JS (cherry picked from commit 9bd3c6bd582d8ee3aff93e42da93d6c173b7a3c8) --- .../ffi/jni/jsi/global/GlobalHelpers.cpp | 18 + .../ffi/jni/jsi/metadata/MetadataNode.cpp | 24 +- .../nativescript/internal/ts_helpers.js | 454 ++++++++++++++++++ .../src/main/cpp/NativeScriptRnInstall.cpp | 23 +- .../NativeScriptNativeApiModule.java | 32 +- .../src/main/java/com/tns/Runtime.java | 18 +- 6 files changed, 550 insertions(+), 19 deletions(-) create mode 100644 packages/react-native/android/src/main/assets/nativescript/internal/ts_helpers.js diff --git a/NativeScript/ffi/jni/jsi/global/GlobalHelpers.cpp b/NativeScript/ffi/jni/jsi/global/GlobalHelpers.cpp index 6e97dcceb..9b87b90f8 100644 --- a/NativeScript/ffi/jni/jsi/global/GlobalHelpers.cpp +++ b/NativeScript/ffi/jni/jsi/global/GlobalHelpers.cpp @@ -167,6 +167,19 @@ std::vector tns::BuildStacktraceFrames(JsRuntime &rt, co const regex bareRegex(R"RE([(\s]([^\s():]+):(\d+):(\d+))RE"); #endif +#if defined(NS_JSI_HOST_RUNTIME) + // A guest's modules come from the embedder's bundler, and its frames carry + // no "file:" scheme -- Metro serves "http://10.0.2.2:8081/index.bundle?..." + // in development and an "index.android.bundle" path in release. Without a + // match there are no frames at all, and MetadataNode::GetExtendLocation then + // has no call site to name an unnamed extend() after, so every one of them + // collapses onto the same generated class. + // + // Anchored the same way as the bytecode form, and the scheme pattern above + // still runs first, so nothing changes for a frame that does carry one. + const regex hostRegex(R"RE([(\s@]([A-Za-z][A-Za-z\d+.-]*://[^\s()]+|[^\s()@]+):(\d+):(\d+))RE"); +#endif + int current = 0; for (auto &frame : stackLines) { smatch match; @@ -178,6 +191,11 @@ std::vector tns::BuildStacktraceFrames(JsRuntime &rt, co else if (regex_search(frame, match, bareRegex)) { filePath = "file://" + Constants::APP_ROOT_FOLDER_PATH + match[1].str(); } +#endif +#if defined(NS_JSI_HOST_RUNTIME) + else if (regex_search(frame, match, hostRegex)) { + filePath = match[1].str(); + } #endif else { continue; diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 950d6c693..b2608f78e 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -568,7 +568,12 @@ MetadataNode::GetExtendLocation(JsRuntime &rt, string &extendLocation, bool isTy auto frames = tns::BuildStacktraceFrames(rt, nullptr, 4); if (frames.empty()) { DEBUG_WRITE("%s", "FRAME IS NULL!"); - return true; + // Reported as a failure, not a success with an empty location. An empty + // location makes every unnamed extend() of the same base class produce + // the same generated class name, and the second one's overrides then + // dispatch to themselves -- a StackOverflowError far from the cause. + // The caller turns this into "No name specified for extend at location". + return false; } tns::JsStacktraceFrame *frame; @@ -590,10 +595,10 @@ MetadataNode::GetExtendLocation(JsRuntime &rt, string &extendLocation, bool isTy if (srcFileName == "" || srcFileName == "" || srcFileName == "JavaScript") { fullPathToFile = "script"; } else { - string hardcodedPathToSkip = Constants::APP_ROOT_FOLDER_PATH; - int startIndex = hardcodedPathToSkip.length(); - int strToTakeLen = srcFileName.length() - startIndex - 3; - fullPathToFile = srcFileName.substr(startIndex, strToTakeLen); + // The app-root-relative substring this used to compute was assigned and + // then immediately overwritten by the full name below, so it was already + // dead -- and it throws for any path that does not start with the app + // root, which is every path a guest sees. fullPathToFile = srcFileName; replace(fullPathToFile.begin(), fullPathToFile.end(), '/', '_'); replace(fullPathToFile.begin(), fullPathToFile.end(), '.', '_'); @@ -619,6 +624,14 @@ MetadataNode::GetExtendLocation(JsRuntime &rt, string &extendLocation, bool isTy return false; } int column = frame->col; + + // Both adjustments below exist to undo the runtime's own module wrapper, so + // that a call site's key matches what the static binding generator computed + // from the unwrapped source. A guest has no such wrapper -- the embedder's + // bundler (Metro) owns module wrapping and the static binding generator + // never saw the source -- so applying them here only corrupts the key, and + // two different extend() sites can collide onto one generated class. +#if !defined(NS_JSI_HOST_RUNTIME) if (frame->line == 1) { column -= ModuleInternal::MODULE_PROLOGUE_LENGTH; } @@ -626,6 +639,7 @@ MetadataNode::GetExtendLocation(JsRuntime &rt, string &extendLocation, bool isTy #ifdef TARGET_ENGINE_HERMES column = column - 6; #endif +#endif // !NS_JSI_HOST_RUNTIME extendLocationStream << fullPathToFile << "_" << frame->line << "_" << column << "_"; extendLocation = extendLocationStream.str(); diff --git a/packages/react-native/android/src/main/assets/nativescript/internal/ts_helpers.js b/packages/react-native/android/src/main/assets/nativescript/internal/ts_helpers.js new file mode 100644 index 000000000..bc6fe53fc --- /dev/null +++ b/packages/react-native/android/src/main/assets/nativescript/internal/ts_helpers.js @@ -0,0 +1,454 @@ +(function () { + var __decorate = + (this && this.__decorate) || + function (decorators, target, key, desc) { + var c = arguments.length; + var r = + c < 3 + ? target + : desc === null + ? (desc = Object.getOwnPropertyDescriptor(target, key)) + : desc, + d; + + if ( + typeof globalThis.Reflect === "object" && + typeof globalThis.Reflect.decorate === "function" + ) { + r = globalThis.Reflect.decorate(decorators, target, key, desc); + } else { + for (var i = decorators.length - 1; i >= 0; i--) { + if ((d = decorators[i])) { + r = + (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + } + } + } + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + // For backward compatibility. + var __native = function (thiz) { + // we are setting the __container__ property to the base class when the super method is called + // if the constructor returns the __native(this) call we will use the old implementation + // copying all the properties to the result + // otherwise if we are using the result from the super() method call we won't need such logic + // as thiz already contains the parent properties + // this way we now support both implementations in typescript generated constructors: + // 1: super(); return __native(this); + // 2: return super() || this; + // if (thiz.__container__) { + // if (__useHostObjects) { + // for (var prop in thiz) { + // if (thiz.hasOwnProperty(prop)) { + // thiz.__proto__[prop] = thiz[prop]; + // delete thiz[prop]; + // } + // } + // } + + return thiz; + // } else { + // return thiz; + // } + }; + + var __extends = function (Child, Parent) { + // Detect a native class by a brand the runtime stamps on its native extend() rather than + // sniffing Parent.extend.toString() for "[native code]": in release/bytecode builds every + // function (JS or native) stringifies to "[native code]", which misdetects a plain JS class + // with a static "extend" method as native. The brand works for source and bytecode alike. + var extendNativeClass = + !!Parent.extend && Parent.extend.__isNativeExtend__ === true; + + if (!extendNativeClass) { + __extends_ts(Child, Parent); + return; + } + if (Parent.__isPrototypeImplementationObject) { + throw new Error("Can not extend an already extended native object."); + } + + function extend(thiz) { + var child = thiz.__proto__.__child; + if (!child.__extended) { + var parent = thiz.__proto__.__parent; + child.__extended = parent.extend(child.name, child.prototype, true); + // This will deal with "i instanceof child" + child[Symbol.hasInstance] = function (instance) { + return instance instanceof this.__extended; + }; + } + return child.__extended; + } + + Parent.__activityExtend = function (parent, name, implementationObject) { + __log("__activityExtend called"); + return parent.extend(name, implementationObject); + }; + + Parent.call = function (thiz) { + var Extended = extend(thiz); + thiz.__container__ = true; + if (arguments.length > 1) { + if (typeof Extended !== "function") { + thiz = Reflect.construct( + Extended, + Array.prototype.slice.call(arguments, 1) + ); + } else { + thiz = new (Function.prototype.bind.apply( + Extended, + [null].concat(Array.prototype.slice.call(arguments, 1)) + ))(); + } + } else { + thiz = new Extended(); + } + return thiz; + }; + + Parent.apply = function (thiz, args) { + var Extended = extend(thiz); + thiz.__container__ = true; + if (args && args.length > 0) { + if (typeof Extended !== "function") { + thiz = Reflect.construct(Extended, [null].concat(args)); + } else { + thiz = new (Function.prototype.bind.apply( + Extended, + [null].concat(args) + ))(); + } + } else { + thiz = new Extended(); + } + return thiz; + }; + __extends_ns(Child, Parent); + Child.__isPrototypeImplementationObject = true; + Child.__proto__ = Parent; + Child.prototype.__parent = Parent; + Child.prototype.__child = Child; + }; + + var __extends_ts = function (child, parent) { + extendStaticFunctions(child, parent); + assignPrototypeFromParentToChild(parent, child); + }; + + var __extends_ns = function (child, parent) { + if (!parent.extend) { + assignPropertiesFromParentToChild(parent, child); + } + + assignPrototypeFromParentToChild(parent, child); + }; + + var extendStaticFunctions = + Object.setPrototypeOf || + (hasInternalProtoProperty() && + function (child, parent) { + child.__proto__ = parent; + }) || + assignPropertiesFromParentToChild; + + function hasInternalProtoProperty() { + return { __proto__: [] } instanceof Array; + } + + function assignPropertiesFromParentToChild(parent, child) { + for (var property in parent) { + if (parent.hasOwnProperty(property)) { + child[property] = parent[property]; + } + } + } + + function assignPrototypeFromParentToChild(parent, child) { + function __() { + this.constructor = child; + } + + if (parent === null) { + child.prototype = Object.create(null); + } else { + __.prototype = parent.prototype; + child.prototype = new __(); + } + } + + function JavaProxy(className) { + return function (target) { + var extended = target.extend(className, target.prototype); + extended.name = className; + return extended; + }; + } + + function Interfaces(interfacesArr) { + return function (target) { + if (interfacesArr instanceof Array) { + // attach interfaces: [] to the object + target.prototype.interfaces = interfacesArr; + } + }; + } + Object.defineProperty(globalThis, "__native", { value: __native }); + Object.defineProperty(globalThis, "__extends", { value: __extends }); + Object.defineProperty(globalThis, "__decorate", { value: __decorate }); + + + + if (!globalThis.__ns__worker) { + globalThis.JavaProxy = JavaProxy; + } + globalThis.Interfaces = Interfaces; + + if (globalThis.WeakRef && !globalThis.WeakRef.prototype.get) { + globalThis.WeakRef.prototype.get = globalThis.WeakRef.prototype.deref; + } + + // Native array access: numeric indexing and the map/forEach/toString/ + // Symbol.iterator helpers are now implemented natively (see MetadataNode's + // array prototype + the host object's indexed accessors), so the old JS + // getNativeArrayProp/setNativeArrayProp helpers are gone. + + function findInPrototypeChain(obj, prop) { + while (obj) { + if (obj.hasOwnProperty(prop)) { + return Object.getOwnPropertyDescriptor(obj, prop); + } + obj = Object.getPrototypeOf(obj); + } + return undefined; + } + + globalThis.__prepareHostObject = function (hostObject, jsThis) { + // const prototype = Object.getPrototypeOf(jsThis); + // Object.setPrototypeOf(hostObject, prototype); + Object.defineProperty(hostObject, "super", { + get: () => jsThis["super"], + }); + }; + + const EXTERNAL_PROP = "[[external]]"; + const REFERENCE_PROP_JSC = "[[jsc_reference_info]]"; + + function __createNativeProxy(object, objectId) { + const proxy = new Proxy(object, { + get: function (target, prop) { + if (prop === EXTERNAL_PROP) return this[EXTERNAL_PROP]; + if (prop === REFERENCE_PROP_JSC) return this[REFERENCE_PROP_JSC]; + // Numeric indices go straight to the native element accessor; the + // map/forEach/toString/Symbol.iterator helpers live on the array + // prototype now, so everything else just forwards to the target. + if (target.__is__javaArray && typeof prop !== "symbol" && !isNaN(prop)) { + return target.getValueAtIndex(parseInt(prop)); + } + return target[prop]; + }, + set: function (target, prop, value) { + if (prop === EXTERNAL_PROP) { + this[EXTERNAL_PROP] = value; + return true; + } + + if (prop === REFERENCE_PROP_JSC) { + this[REFERENCE_PROP_JSC] = value; + } + + if (target.__is__javaArray && !isNaN(prop)) { + target.setValueAtIndex(parseInt(prop), value); + return true; + } + + target[prop] = value; + return true; + }, + }); + return proxy; + } + globalThis.__createNativeProxy = __createNativeProxy; + + globalThis.getErrorStack = (err) => { + if (err) return err.stack; + const stack = new Error("").stack; + const lines = stack.split("\n"); + // Line 2 results in invalid stack if not replaced when doing typescript extend. + lines[2] = " at extend(native)"; + return lines.join("\n"); + }; + + if (globalThis.URL) { + const BLOB_STORE = new Map(); + URL.createObjectURL = function (object, options = null) { + try { + if (object instanceof Blob || object instanceof File) { + const id = java.util.UUID.randomUUID().toString(); + const ret = `blob:nativescript/${id}`; + BLOB_STORE.set(ret, { + blob: object, + type: object ? object.type : undefined, + ext: options ? options.ext : undefined, + }); + return ret; + } + } catch (error) { + return null; + } + return null; + }; + URL.revokeObjectURL = function (url) { + BLOB_STORE.delete(url); + }; + function InternalAccessor() {} + InternalAccessor.getData = function (url) { + return BLOB_STORE.get(url); + }; + URL.InternalAccessor = InternalAccessor; + const searchParamsDescriptor = Object.getOwnPropertyDescriptor( + URL.prototype, + "searchParams" + ); + if (!searchParamsDescriptor || searchParamsDescriptor.configurable) { + Object.defineProperty(URL.prototype, "searchParams", { + get() { + if (this._searchParams == null) { + this._searchParams = new URLSearchParams(this.search); + Object.defineProperty(this._searchParams, "_url", { + enumerable: false, + writable: false, + value: this, + }); + this._searchParams._append = this._searchParams.append; + this._searchParams.append = function (name, value) { + this._append(name, value); + this._url.search = this.toString(); + }; + this._searchParams._delete = this._searchParams.delete; + this._searchParams.delete = function (name) { + this._delete(name); + this._url.search = this.toString(); + }; + this._searchParams._set = this._searchParams.set; + this._searchParams.set = function (name, value) { + this._set(name, value); + this._url.search = this.toString(); + }; + this._searchParams._sort = this._searchParams.sort; + this._searchParams.sort = function () { + this._sort(); + this._url.search = this.toString(); + }; + } + return this._searchParams; + }, + }); + } + } + + const pendingUnhandledRejections = []; + const hasBeenNotifiedProperty = new WeakMap(); + function emitPendingUnhandledRejections() { + while (pendingUnhandledRejections.length > 0) { + var promise = pendingUnhandledRejections.shift(); + var reason = pendingUnhandledRejections.shift(); + if ( + hasBeenNotifiedProperty.get(promise) === false && + globalThis.__onUncaughtError + ) { + globalThis.__onUncaughtError(reason); + } + } + } + + function unhandledPromise(promise, reason) { + pendingUnhandledRejections.push(promise, reason); + __ns__setTimeout(() => { + emitPendingUnhandledRejections(); + }, 1); + } + + function handledPromise(promise) { + const hasBeenNotified = hasBeenNotifiedProperty.get(promise); + if (hasBeenNotified != undefined) { + hasBeenNotifiedProperty.delete(promise); + } + } + + function makeRejectionError(reason) { + const stringValue = Object.prototype.toString.call(reason); + if ( + stringValue === "[object Error]" || + reason instanceof Error || + typeof reason === "object" + ) { + reason.message = `(Unhandled promise rejection): ${reason.message}`; + + if (!reason.stack) { + reason.stack = new Error("").stack; + } + return reason; + } else { + const error = new Error(reason, { + cause: reason, + }); + error.message = `(Unhandled promise rejection): ${error.message}`; + return error; + } + } + + if (globalThis.__engine === "V8") { + // Only report errors for promise rejections that go unhandled. + globalThis.onUnhandledPromiseRejectionTracker = ( + event, + promise, + reason + ) => { + if (event === globalThis.__promiseUnhandledEvent) { + hasBeenNotifiedProperty.set(promise, false); + const error = makeRejectionError(reason); + unhandledPromise(promise, error); + } else { + handledPromise(promise); + } + }; + } else if (globalThis.__engine === "QuickJS") { + globalThis.onUnhandledPromiseRejectionTracker = ( + promise, + reason, + isHandled + ) => { + if (!isHandled) { + hasBeenNotifiedProperty.set(promise, false); + const error = makeRejectionError(reason); + // Preserve original stack trace. + if (!promise.then["[[stack]]"]) { + promise.then["[[stack]]"] = error.stack; + } else { + error.stack = promise.then["[[stack]]"]; + } + unhandledPromise(promise, error); + } else { + handledPromise(promise); + } + }; + } else if (globalThis.__engine === "JSC") { + // JSC's unhandled-rejection callback only fires for rejections that go + // unhandled (there is no "handled later" retraction event), and it is + // invoked with (promise, reason). + globalThis.onUnhandledPromiseRejectionTracker = (promise, reason) => { + hasBeenNotifiedProperty.set(promise, false); + const error = makeRejectionError(reason); + unhandledPromise(promise, error); + }; + } else if (globalThis.__engine === "Hermes") { + HermesInternal.enablePromiseRejectionTracker({ + allRejections: true, + onUnhandled: function (id, error) { + globalThis.__onUncaughtError(makeRejectionError(error)); + }, + }); + } +})(); diff --git a/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp b/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp index ead0cd812..fcf76578f 100644 --- a/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp +++ b/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp @@ -29,7 +29,8 @@ bool g_attached = false; extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_attachNativeScript( JNIEnv* env, jobject obj, jint runtimeId, jstring metadataPath, jlong hostRuntimePtr, - jboolean verboseLoggingEnabled, jint maxLogcatObjectSize, jboolean forceLog) { + jboolean verboseLoggingEnabled, jint maxLogcatObjectSize, jboolean forceLog, + jstring bootstrapScript) { try { if (hostRuntimePtr == 0) { throw NativeScriptException( @@ -41,9 +42,23 @@ extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_attachNativeScript( auto* hostRuntime = reinterpret_cast(hostRuntimePtr); std::string metadataDir = ArgConverter::jstringToString(metadataPath); - Runtime::Attach(env, obj, runtimeId, *hostRuntime, metadataDir, - verboseLoggingEnabled == JNI_TRUE, maxLogcatObjectSize, - forceLog == JNI_TRUE); + Runtime* runtime = Runtime::Attach(env, obj, runtimeId, *hostRuntime, metadataDir, + verboseLoggingEnabled == JNI_TRUE, maxLogcatObjectSize, + forceLog == JNI_TRUE); + + // ts_helpers.js. The standalone runtime runs this as its first module; + // there is no module loader here, so the embedder reads it out of the + // library's assets and hands the source over. Without it there is no + // __extends, no JavaProxy and -- the one that matters most -- no + // __createNativeProxy, which every Java object handed to JS goes through. + if (bootstrapScript != nullptr) { + std::string source = ArgConverter::jstringToString(bootstrapScript); + if (!source.empty()) { + JSScope scope(runtime->GetEngineHost()); + runtime->GetEngineHost()->ExecuteScript(source, "internal/ts_helpers.js"); + } + } + g_attached = true; } catch (NativeScriptException& e) { e.ReThrowToJava(nullptr); diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java index d12561a7e..d07d099b8 100644 --- a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java @@ -31,6 +31,9 @@ public class NativeScriptNativeApiModule extends NativeScriptNativeApiSpec { /** Written into the APK by nativescript.gradle. */ private static final String ASSET_METADATA_DIR = "nativescript-metadata"; + /** Ships with this library; see src/main/assets. */ + private static final String ASSET_TS_HELPERS = "nativescript/internal/ts_helpers.js"; + private static final String[] METADATA_FILES = { "treeNodeStream.dat", "treeStringsStream.dat", "treeValueStream.dat", }; @@ -85,7 +88,7 @@ public boolean install(String metadataPath) { + "JSI runtime and cannot run over the legacy bridge."); } - attachRuntime(context, runtimePtr, resolvedPath); + attachRuntime(context, runtimePtr, resolvedPath, readAsset(context, ASSET_TS_HELPERS)); return true; } @@ -135,7 +138,8 @@ public boolean __writeTestMarker(String content) { } } - private static void attachRuntime(Context context, long runtimePtr, String metadataPath) { + private static void attachRuntime(Context context, long runtimePtr, String metadataPath, + String bootstrapScript) { File filesDir = context.getFilesDir(); File dexDir = new File(filesDir, "nativescript-dex"); if (!dexDir.exists() && !dexDir.mkdirs()) { @@ -154,7 +158,29 @@ private static void attachRuntime(Context context, long runtimePtr, String metad /* dexThumb */ buildStamp(context), isDebuggable(context), runtimePtr, - metadataPath); + metadataPath, + bootstrapScript); + } + + /** + * Reads one of this library's own assets. + * + *

Kept in memory rather than staged to disk like the metadata: it is a + * single small script that is evaluated once, and the runtime takes it as + * source rather than as a path. + */ + private static String readAsset(Context context, String name) { + try (InputStream in = context.getAssets().open(name)) { + java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream(); + byte[] buffer = new byte[16 * 1024]; + int read; + while ((read = in.read(buffer)) != -1) { + out.write(buffer, 0, read); + } + return out.toString("UTF-8"); + } catch (IOException e) { + throw new RuntimeException("NativeScript could not read its own asset: " + name, e); + } } /** diff --git a/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java b/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java index 6340af5f5..739c10824 100644 --- a/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java +++ b/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java @@ -50,7 +50,8 @@ private native void initNativeScript(int runtimeId, String filesPath, String nat // embedder created and still owns. Unresolved (and never called) in a // standalone build, which binds natives lazily on first invocation. private native void attachNativeScript(int runtimeId, String metadataPath, long hostRuntimePtr, - boolean verboseLoggingEnabled, int maxLogcatObjectSize, boolean forceLog); + boolean verboseLoggingEnabled, int maxLogcatObjectSize, boolean forceLog, + String bootstrapScript); private native void runModule(int runtimeId, String filePath) throws NativeScriptException; @@ -459,23 +460,25 @@ public static Runtime initializeRuntimeWithConfiguration(StaticConfiguration con public static Runtime attachToHostRuntime(Logger logger, String appName, String nativeLibDir, File filesDir, ClassLoader classLoader, File dexDir, String dexThumb, boolean isDebuggable, - long hostRuntimePtr, String metadataPath) { + long hostRuntimePtr, String metadataPath, + String bootstrapScript) { // Built here rather than by the caller so that AppConfig, which is // package-private and reads a package.json a guest does not have, stays // an implementation detail. Its defaults are what a guest wants anyway. StaticConfiguration config = new StaticConfiguration(logger, appName, nativeLibDir, filesDir, filesDir, classLoader, dexDir, dexThumb, new AppConfig(filesDir), isDebuggable); - return attachToHostRuntime(config, hostRuntimePtr, metadataPath); + return attachToHostRuntime(config, hostRuntimePtr, metadataPath, bootstrapScript); } - static Runtime attachToHostRuntime(StaticConfiguration config, long hostRuntimePtr, String metadataPath) { + static Runtime attachToHostRuntime(StaticConfiguration config, long hostRuntimePtr, String metadataPath, + String bootstrapScript) { staticConfiguration = config; WorkThreadScheduler scheduler = new WorkThreadScheduler(new Handler(Looper.myLooper())); DynamicConfiguration dynamicConfiguration = new DynamicConfiguration(0, scheduler, null); Runtime runtime = new Runtime(config, dynamicConfiguration); try { - runtime.attach(hostRuntimePtr, metadataPath); + runtime.attach(hostRuntimePtr, metadataPath, bootstrapScript); } catch (Throwable t) { // Same rollback as initRuntime: the constructor already registered // the instance, so a failed bootstrap must not leave a stale one @@ -488,7 +491,7 @@ static Runtime attachToHostRuntime(StaticConfiguration config, long hostRuntimeP return runtime; } - private void attach(long hostRuntimePtr, String metadataPath) { + private void attach(long hostRuntimePtr, String metadataPath, String bootstrapScript) { if (initialized) { throw new RuntimeException("NativeScript is already attached to a runtime"); } @@ -509,7 +512,8 @@ private void attach(long hostRuntimePtr, String metadataPath) { && (appConfig.getForceLog() || "timeline".equalsIgnoreCase(appConfig.getProfilingMode())); int maxLogcatObjectSize = appConfig != null ? appConfig.getMaxLogcatObjectSize() : 1024; - attachNativeScript(getRuntimeId(), metadataPath, hostRuntimePtr, logger.isEnabled(), maxLogcatObjectSize, forceConsoleLog); + attachNativeScript(getRuntimeId(), metadataPath, hostRuntimePtr, logger.isEnabled(), maxLogcatObjectSize, forceConsoleLog, + bootstrapScript); GcListener.subscribe(this); From 74aa1a8f531748fb70e68beb0b106b237e147615 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 13:48:51 +0500 Subject: [PATCH 07/98] feat(react-native): add @NativeClass and package the Android runtime (cherry picked from commit bccb89f941edf004e74665356f06105395fb7f2e) --- .gitignore | 2 + packages/react-native/android/.npmignore | 4 + packages/react-native/android/build.gradle | 25 +-- .../react-native/cli/configure-android.js | 91 +++++++++++ packages/react-native/cli/configure.js | 10 +- packages/react-native/package.json | 5 +- .../plugin/withNativeScriptReactNative.js | 33 ++++ packages/react-native/src/NativeClass.d.ts | 35 ++++ packages/react-native/src/NativeClass.js | 152 ++++++++++++++++++ packages/react-native/src/index.ts | 5 + .../test/configure-android.test.js | 92 +++++++++++ .../react-native/test/native-class.test.js | 121 ++++++++++++++ scripts/build_react_native_android.sh | 71 ++++++++ 13 files changed, 632 insertions(+), 14 deletions(-) create mode 100644 packages/react-native/android/.npmignore create mode 100644 packages/react-native/cli/configure-android.js create mode 100644 packages/react-native/src/NativeClass.d.ts create mode 100644 packages/react-native/src/NativeClass.js create mode 100644 packages/react-native/test/configure-android.test.js create mode 100644 packages/react-native/test/native-class.test.js create mode 100755 scripts/build_react_native_android.sh diff --git a/.gitignore b/.gitignore index 0b6578446..010eb884f 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,5 @@ packages/react-native/android/.cxx/ packages/react-native/android/build/ # Staged by scripts/build_react_native_android_tools.sh at package time packages/react-native/android/tools/ +# Staged by scripts/build_react_native_android.sh at package time +packages/react-native/android/src/main/java-runtime/ diff --git a/packages/react-native/android/.npmignore b/packages/react-native/android/.npmignore new file mode 100644 index 000000000..9b4702f5f --- /dev/null +++ b/packages/react-native/android/.npmignore @@ -0,0 +1,4 @@ +# Gradle/CMake output from building the module in a checkout. The package ships +# sources; the consuming app compiles them. +build/ +.cxx/ diff --git a/packages/react-native/android/build.gradle b/packages/react-native/android/build.gradle index 05084f0b6..59a8f2cab 100644 --- a/packages/react-native/android/build.gradle +++ b/packages/react-native/android/build.gradle @@ -18,19 +18,22 @@ def safeExtGet(prop, fallback) { rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback } -// The C++ and Java the runtime is made of. Two layouts are supported: the -// published npm package, which carries a copy under native-api/, and this -// repository, where the sources are the originals. Supporting both is what lets -// a demo app build straight from a checkout with no staging step. -// Keyed on the Android tree rather than on native-api/ itself: the iOS staging -// step creates that directory too, with only the Objective-C bridge in it. -def packagedRoot = file("${projectDir}/../native-api") -def fromPackage = file("${packagedRoot}/runtime/android/jsi").exists() -// Canonicalise before walking up. In a checkout the app reaches this package +// The C++ and Java the runtime is made of. Two layouts are supported: this +// repository, where the sources are the originals, and the published npm +// package, which carries a staged copy under native-api/. +// +// The repository wins when both are present. A checkout also contains a staged +// copy (scripts/build_react_native_android.sh leaves one behind), and preferring +// it would mean edits to NativeScript/ silently did not reach the build. +// +// Canonicalise before walking up: in a checkout the app reaches this package // through a symlink in node_modules, and file("...") normalises ".." lexically -// without ever following it -- so the walk has to start from the real path or -// it lands in node_modules instead of at the repository root. +// without ever following it, so the walk has to start from the real path or it +// lands in node_modules instead of at the repository root. def repoRoot = projectDir.getCanonicalFile().parentFile.parentFile.parentFile +def packagedRoot = file("${projectDir}/../native-api") +def fromRepo = file("${repoRoot}/NativeScript/runtime/android/jsi").exists() +def fromPackage = !fromRepo def nsRoot = fromPackage ? packagedRoot : file("${repoRoot}/NativeScript") // Two trees, exactly as the standalone runtime module composes them: com.tns.* diff --git a/packages/react-native/cli/configure-android.js b/packages/react-native/cli/configure-android.js new file mode 100644 index 000000000..477d398f5 --- /dev/null +++ b/packages/react-native/cli/configure-android.js @@ -0,0 +1,91 @@ +const fs = require('fs'); +const path = require('path'); + +const APPLY_LINE = + 'apply from: "../../node_modules/@nativescript/react-native/android/nativescript.gradle"'; + +const TYPINGS = ['types/android/android.d.ts', 'types/android/android-declarations.d.ts']; + +/** + * Adds the NativeScript Gradle script to the app module. + * + * Autolinking brings in the runtime itself, but metadata and typings are + * generated from the *app's* resolved classpath, so they have to be tasks in + * the app project rather than in the library. + */ +function ensureGradleScript(projectRoot) { + const buildGradle = path.join(projectRoot, 'android', 'app', 'build.gradle'); + if (!fs.existsSync(buildGradle)) { + return { changed: false, reason: 'android/app/build.gradle was not found' }; + } + + let source = fs.readFileSync(buildGradle, 'utf8'); + if (source.includes('@nativescript/react-native/android/nativescript.gradle')) { + return { changed: false, reason: 'already applied' }; + } + + // After the React plugin, whose applicationVariants the script hooks into. + const reactPlugin = /apply plugin: ["']com\.facebook\.react["']\s*\n/; + if (reactPlugin.test(source)) { + source = source.replace(reactPlugin, (match) => `${match}${APPLY_LINE}\n`); + } else { + source = `${APPLY_LINE}\n${source}`; + } + + fs.writeFileSync(buildGradle, source); + return { changed: true }; +} + +/** Points tsconfig at the generated declarations, if they are being generated. */ +function ensureTypings(projectRoot) { + const tsconfigPath = path.join(projectRoot, 'tsconfig.json'); + if (!fs.existsSync(tsconfigPath)) { + return { changed: false, reason: 'tsconfig.json was not found' }; + } + + const source = fs.readFileSync(tsconfigPath, 'utf8'); + let tsconfig; + try { + tsconfig = JSON.parse(source); + } catch (e) { + // tsconfig.json permits comments; rewriting it would lose them, and a + // hand-edited config is likelier to be deliberate than stale. + return { changed: false, reason: 'tsconfig.json is not plain JSON; add the types manually' }; + } + + const include = Array.isArray(tsconfig.include) ? tsconfig.include.slice() : []; + const missing = TYPINGS.filter((entry) => !include.includes(entry)); + if (missing.length === 0) { + return { changed: false, reason: 'already referenced' }; + } + + tsconfig.include = include.concat(missing); + fs.writeFileSync(tsconfigPath, `${JSON.stringify(tsconfig, null, 2)}\n`); + return { changed: true }; +} + +function configureAndroid(projectRoot) { + const gradle = ensureGradleScript(projectRoot); + const typings = ensureTypings(projectRoot); + + if (gradle.changed) { + console.log('Added the NativeScript Gradle script to android/app/build.gradle.'); + } else { + console.log(`Android Gradle script: ${gradle.reason}.`); + } + + if (typings.changed) { + console.log('Added the Android typings to tsconfig.json.'); + } else { + console.log(`Android typings: ${typings.reason}.`); + } + + return { gradle, typings }; +} + +module.exports = { + APPLY_LINE, + configureAndroid, + ensureGradleScript, + ensureTypings, +}; diff --git a/packages/react-native/cli/configure.js b/packages/react-native/cli/configure.js index dcf1be943..dea6fecb7 100755 --- a/packages/react-native/cli/configure.js +++ b/packages/react-native/cli/configure.js @@ -8,6 +8,7 @@ const { ensureMetadataConfig, normalizeMetadataOptions, } = require("../plugin/withNativeScriptReactNative"); +const { configureAndroid } = require("./configure-android"); function readJson(filePath) { if (!fs.existsSync(filePath)) { @@ -23,8 +24,11 @@ function projectRoot() { function printNextSteps() { console.log("NativeScript React Native configuration checked."); console.log("Next steps:"); - console.log(" cd ios"); - console.log(" RCT_NEW_ARCH_ENABLED=1 USE_HERMES=1 pod install"); + console.log(" iOS : cd ios && RCT_NEW_ARCH_ENABLED=1 USE_HERMES=1 pod install"); + console.log(" Android : npx react-native run-android"); + console.log(""); + console.log(" Android typings are generated on demand:"); + console.log(" cd android && ./gradlew generateNativeScriptTypingsDebug -PnsGenerateTypings=true"); } function configure(argv = process.argv.slice(2)) { @@ -87,6 +91,8 @@ function configure(argv = process.argv.slice(2)) { } } + configureAndroid(root); + printNextSteps(); } diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 20c7373e7..0ab73bbf6 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -7,7 +7,9 @@ "React Native", "TurboModule", "JSI", - "iOS" + "iOS", + "Android", + "Java" ], "repository": { "type": "git", @@ -35,6 +37,7 @@ "plugin", "src", "types", + "android", "ios", "metadata", "native-api", diff --git a/packages/react-native/plugin/withNativeScriptReactNative.js b/packages/react-native/plugin/withNativeScriptReactNative.js index 0293a1a4e..2125942d1 100644 --- a/packages/react-native/plugin/withNativeScriptReactNative.js +++ b/packages/react-native/plugin/withNativeScriptReactNative.js @@ -245,6 +245,37 @@ function withNativeScriptMetadata(config, metadataOptions) { ]); } +/** + * Applies the NativeScript Gradle script to the app module under prebuild. + * + * Autolinking already brings in the runtime; what this adds are the metadata and + * typings tasks, which read the app's own resolved classpath and so have to live + * in the app project. + */ +function withNativeScriptAndroidGradle(config) { + let withAppBuildGradle; + try { + ({withAppBuildGradle} = require('expo/config-plugins')); + } catch (error) { + return config; + } + + return withAppBuildGradle(config, (modConfig) => { + const {APPLY_LINE} = require('../cli/configure-android'); + let contents = modConfig.modResults.contents; + + if (!contents.includes('@nativescript/react-native/android/nativescript.gradle')) { + const reactPlugin = /apply plugin: ["']com\.facebook\.react["']\s*\n/; + contents = reactPlugin.test(contents) + ? contents.replace(reactPlugin, (match) => `${match}${APPLY_LINE}\n`) + : `${APPLY_LINE}\n${contents}`; + modConfig.modResults.contents = contents; + } + + return modConfig; + }); +} + function withNativeScriptReactNative(config, options) { const normalized = normalizeOptions(options); @@ -265,6 +296,7 @@ function withNativeScriptReactNative(config, options) { config = withNativeScriptTransforms(config, normalized.workletsBundleMode); } config = withNativeScriptMetadata(config, normalized.metadata); + config = withNativeScriptAndroidGradle(config); return config; } @@ -277,5 +309,6 @@ module.exports.ensureMetroConfig = ensureMetroConfig; module.exports.BABEL_PLUGIN = BABEL_PLUGIN; module.exports.WORKLETS_BABEL_PLUGIN = WORKLETS_BABEL_PLUGIN; module.exports.ensureMetadataConfig = ensureMetadataConfig; +module.exports.withNativeScriptAndroidGradle = withNativeScriptAndroidGradle; module.exports.normalizeMetadataOptions = normalizeMetadataOptions; module.exports.pkg = pkg; diff --git a/packages/react-native/src/NativeClass.d.ts b/packages/react-native/src/NativeClass.d.ts new file mode 100644 index 000000000..89f41f5bf --- /dev/null +++ b/packages/react-native/src/NativeClass.d.ts @@ -0,0 +1,35 @@ +/** + * `@NativeClass` — the marker every class that extends a native class carries. + * + * Implemented in plain JavaScript (NativeClass.js) so that it is identical + * under every bundler and needs no NativeScript-specific transform; these are + * the types for it. + */ + +export type NativeClassOptions = { + /** + * Java interfaces the generated class should implement, in addition to + * whatever it extends. A JavaScript class has one base, so this is the only + * way to express "implements Runnable and Callable". + */ + interfaces?: unknown[]; +}; + +type AnyClass = { new (...args: any[]): any; prototype: any }; + +/** Set on every decorated class. */ +export declare const NATIVE_CLASS: "__nsNativeClass"; + +export declare function NativeClass(target: T): T; +export declare function NativeClass( + target: T, + context: unknown, +): T; +export declare function NativeClass( + options?: NativeClassOptions, +): (target: T, context?: unknown) => T; + +/** Equivalent to `@NativeClass({ interfaces })`. */ +export declare function Interfaces( + interfaces: unknown[], +): (target: T, context?: unknown) => T; diff --git a/packages/react-native/src/NativeClass.js b/packages/react-native/src/NativeClass.js new file mode 100644 index 000000000..f15db5590 --- /dev/null +++ b/packages/react-native/src/NativeClass.js @@ -0,0 +1,152 @@ +/** + * `@NativeClass` — the marker every class that extends a native class carries. + * + * This is a plain runtime decorator. It needs no NativeScript-specific + * transformer, reads nothing at build time, and behaves the same under Babel, + * SWC, tsc or anything else: all it ever receives is the class object the + * language hands a decorator, and all it ever does is annotate it before + * handing it back. + * + * Both decorator dialects are supported, because which one a project gets + * depends on its toolchain rather than on its code: + * + * legacy (TypeScript `experimentalDecorators`, Babel legacy) + * -> called as (target) + * standard (TC39 stage 3, Babel/SWC 2023-05, TypeScript 5) + * -> called as (value, context) + * + * and both the bare and the called form: + * + * @NativeClass + * class Foo extends java.lang.Object {} + * + * @NativeClass() + * class Foo extends java.lang.Object {} + * + * @NativeClass({ interfaces: [java.lang.Runnable, java.util.concurrent.Callable] }) + * class Foo extends java.lang.Object {} + * + * The interfaces list is the part that carries weight: a JavaScript class has + * one base, so implementing several Java interfaces cannot be expressed in the + * `extends` clause. The runtime reads `prototype.interfaces` when it generates + * the proxy class, which is exactly what this sets. + */ + +/** Set on every decorated class, so the runtime and tooling can recognise one. */ +const NATIVE_CLASS = "__nsNativeClass"; + +/** A native base carries the brand the runtime stamps on its own extend(). */ +function nativeExtendOf(base) { + const extend = base && base.extend; + return typeof extend === "function" && extend.__isNativeExtend__ === true + ? extend + : undefined; +} + +function annotate(target, options) { + if (typeof target !== "function") { + throw new TypeError( + "@NativeClass can only be applied to a class declaration.", + ); + } + + Object.defineProperty(target, NATIVE_CLASS, { + value: true, + enumerable: false, + configurable: true, + }); + + const interfaces = options.interfaces; + if (interfaces && interfaces.length > 0) { + // On the prototype: the prototype is the implementation object the runtime + // is handed when it generates the proxy, and it reads `interfaces` off it. + Object.defineProperty(target.prototype, "interfaces", { + value: interfaces, + enumerable: false, + configurable: true, + writable: true, + }); + } + + const base = Object.getPrototypeOf(target); + const extend = nativeExtendOf(base); + if (!extend) { + // Not extending a native class. Nothing to wire up, and no reason to + // complain: @NativeClass on a plain class is harmless. + return target; + } + + // Generate the Java class now. + // + // This is the whole reason the decorator exists as more than a marker. A + // downlevelled class calls the runtime's __extends helper, which does this + // lazily; a real `class X extends Native {}` does not call any helper at all, + // so without this the JS side works -- overrides resolve through the + // prototype chain -- while Java sees an unmodified base class and never + // dispatches an override back into JS. + // + // Passing the prototype as the implementation object and `true` for the + // TypeScript-extend form is exactly what ts_helpers does. + const extended = extend.call(base, target.name, target.prototype, true); + + // Re-point the class at the generated one. `super()` resolves through the + // constructor's own prototype, so this is what makes construction go via the + // runtime -- and because it is still `target` that is being constructed, the + // class's constructor body and field initialisers run on the object the + // runtime returns, exactly as ES semantics require. + // + // Only the constructor. The instance chain is already right: the runtime uses + // the implementation object it was handed as the generated class's prototype, + // so extended.prototype is target.prototype, and re-pointing that at itself is + // a prototype cycle. + Object.setPrototypeOf(target, extended); + + return target; +} + +/** + * True when `args` is a standard-decorator invocation, i.e. (value, context) + * with a class context, rather than a legacy (target) one or an options object. + */ +function isStandardDecoratorCall(args) { + return ( + args.length >= 2 && + typeof args[0] === "function" && + args[1] != null && + typeof args[1] === "object" && + args[1].kind === "class" + ); +} + +function NativeClass(...args) { + // @NativeClass (standard decorators) + if (isStandardDecoratorCall(args)) { + return annotate(args[0], {}); + } + + // @NativeClass (legacy decorators) + if (args.length === 1 && typeof args[0] === "function") { + return annotate(args[0], {}); + } + + // @NativeClass(options) / @NativeClass() -- both dialects land here, and the + // returned decorator has to accept either shape in turn. + const options = args[0] || {}; + return function decorate(target, _context) { + return annotate(target, options); + }; +} + +/** + * Declares the Java interfaces a class implements. + * + * Equivalent to `@NativeClass({ interfaces })`, kept as a separate decorator + * because that is how NativeScript has always spelled it. + */ +function Interfaces(interfaces) { + return function decorate(target, _context) { + return annotate(target, { interfaces }); + }; +} + +module.exports = { NativeClass, Interfaces, NATIVE_CLASS }; diff --git a/packages/react-native/src/index.ts b/packages/react-native/src/index.ts index 165968e62..9b0065f51 100644 --- a/packages/react-native/src/index.ts +++ b/packages/react-native/src/index.ts @@ -1344,3 +1344,8 @@ const NativeScript = { }; export default NativeScript; + +// The marker every class extending a native class carries. A runtime decorator, +// so it works the same regardless of bundler or decorator dialect. +export { NativeClass, Interfaces, NATIVE_CLASS } from "./NativeClass"; +export type { NativeClassOptions } from "./NativeClass"; diff --git a/packages/react-native/test/configure-android.test.js b/packages/react-native/test/configure-android.test.js new file mode 100644 index 000000000..033927f6a --- /dev/null +++ b/packages/react-native/test/configure-android.test.js @@ -0,0 +1,92 @@ +const assert = require('assert'); +const fs = require('fs'); +const os = require('os'); +const path = require('path'); + +const { + APPLY_LINE, + ensureGradleScript, + ensureTypings, +} = require('../cli/configure-android'); + +function scratchProject() { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'ns-rn-android-')); + fs.mkdirSync(path.join(root, 'android', 'app'), { recursive: true }); + return root; +} + +function writeBuildGradle(root, contents) { + fs.writeFileSync(path.join(root, 'android', 'app', 'build.gradle'), contents); +} + +function readBuildGradle(root) { + return fs.readFileSync(path.join(root, 'android', 'app', 'build.gradle'), 'utf8'); +} + +// The script hooks applicationVariants, so it has to come after the plugin that +// creates them. +{ + const root = scratchProject(); + writeBuildGradle( + root, + 'apply plugin: "com.android.application"\napply plugin: "com.facebook.react"\n\nandroid {\n}\n', + ); + + const result = ensureGradleScript(root); + assert.strictEqual(result.changed, true); + + const lines = readBuildGradle(root).split('\n'); + const reactIndex = lines.findIndex((line) => line.includes('com.facebook.react')); + const applyIndex = lines.findIndex((line) => line.includes('nativescript.gradle')); + assert.ok(applyIndex > reactIndex, 'apply line must follow the React plugin'); +} + +// Running configure twice must not add it twice. +{ + const root = scratchProject(); + writeBuildGradle(root, `apply plugin: "com.facebook.react"\n${APPLY_LINE}\n`); + + const result = ensureGradleScript(root); + assert.strictEqual(result.changed, false); + const occurrences = readBuildGradle(root).split('nativescript.gradle').length - 1; + assert.strictEqual(occurrences, 1); +} + +// A project that does not apply the React plugin still gets the script. +{ + const root = scratchProject(); + writeBuildGradle(root, 'apply plugin: "com.android.application"\n'); + + assert.strictEqual(ensureGradleScript(root).changed, true); + assert.ok(readBuildGradle(root).includes('nativescript.gradle')); +} + +// Typings are added to tsconfig, once. +{ + const root = scratchProject(); + const tsconfigPath = path.join(root, 'tsconfig.json'); + fs.writeFileSync(tsconfigPath, JSON.stringify({ include: ['**/*.ts'] }, null, 2)); + + assert.strictEqual(ensureTypings(root).changed, true); + const include = JSON.parse(fs.readFileSync(tsconfigPath, 'utf8')).include; + assert.ok(include.includes('types/android/android.d.ts')); + assert.ok(include.includes('types/android/android-declarations.d.ts')); + + assert.strictEqual(ensureTypings(root).changed, false); + const after = JSON.parse(fs.readFileSync(tsconfigPath, 'utf8')).include; + assert.strictEqual(after.length, include.length); +} + +// A tsconfig with comments is left alone rather than rewritten and stripped. +{ + const root = scratchProject(); + const tsconfigPath = path.join(root, 'tsconfig.json'); + const original = '{\n // keep me\n "include": ["**/*.ts"]\n}\n'; + fs.writeFileSync(tsconfigPath, original); + + const result = ensureTypings(root); + assert.strictEqual(result.changed, false); + assert.strictEqual(fs.readFileSync(tsconfigPath, 'utf8'), original); +} + +console.log('configure-android tests passed'); diff --git a/packages/react-native/test/native-class.test.js b/packages/react-native/test/native-class.test.js new file mode 100644 index 000000000..0dea465e7 --- /dev/null +++ b/packages/react-native/test/native-class.test.js @@ -0,0 +1,121 @@ +const assert = require('assert'); + +// Plain JavaScript on purpose: the decorator has to behave identically under +// every bundler, so it is shipped untranspiled and tested as shipped. +const { NativeClass, Interfaces, NATIVE_CLASS } = require('../src/NativeClass'); + +/** Stands in for a metadata-backed native class. */ +function makeNativeBase() { + const calls = []; + function Base() {} + Base.prototype.baseMethod = function () { + return 'base'; + }; + + function extend(name, implementationObject, isTypeScriptExtend) { + calls.push({ name, implementationObject, isTypeScriptExtend }); + function Extended() {} + // The runtime uses the implementation object it is handed as the generated + // class's prototype; the decorator relies on that. + Extended.prototype = implementationObject; + return Extended; + } + extend.__isNativeExtend__ = true; + Base.extend = extend; + + return { Base, calls }; +} + +// A plain class is annotated and returned untouched. +{ + class Plain {} + const result = NativeClass(Plain); + assert.strictEqual(result, Plain); + assert.strictEqual(Plain[NATIVE_CLASS], true); +} + +// Called form, no options. +{ + class Plain {} + const result = NativeClass()(Plain); + assert.strictEqual(result, Plain); + assert.strictEqual(Plain[NATIVE_CLASS], true); +} + +// Standard (TC39) decorators pass (value, context). +{ + class Plain {} + const result = NativeClass(Plain, { kind: 'class', name: 'Plain' }); + assert.strictEqual(result, Plain); + assert.strictEqual(Plain[NATIVE_CLASS], true); +} + +// Extending a native base generates the Java class and re-points the +// constructor, so that super() goes through the runtime. +{ + const { Base, calls } = makeNativeBase(); + class Child extends Base { + size() { + return 5; + } + } + + const result = NativeClass(Child); + + assert.strictEqual(result, Child); + assert.strictEqual(calls.length, 1, 'extend() must be called exactly once'); + assert.strictEqual(calls[0].name, 'Child'); + assert.strictEqual(calls[0].implementationObject, Child.prototype); + assert.strictEqual(calls[0].isTypeScriptExtend, true); + assert.notStrictEqual( + Object.getPrototypeOf(Child), + Base, + 'the constructor must be re-pointed at the generated class', + ); + // The instance chain has to stay intact -- re-pointing it too is a cycle. + assert.strictEqual(Child.prototype.size.call(null), 5); +} + +// Interfaces land on the prototype, which is what the runtime reads. +{ + const { Base, calls } = makeNativeBase(); + const IRunnable = {}; + const ICallable = {}; + + class Child extends Base {} + NativeClass({ interfaces: [IRunnable, ICallable] })(Child); + + assert.deepStrictEqual(Child.prototype.interfaces, [IRunnable, ICallable]); + // Set before extend() runs, or the generated class would not declare them. + assert.deepStrictEqual(calls[0].implementationObject.interfaces, [ + IRunnable, + ICallable, + ]); +} + +// The separate Interfaces decorator does the same thing. +{ + const { Base } = makeNativeBase(); + const IRunnable = {}; + class Child extends Base {} + Interfaces([IRunnable])(Child); + assert.deepStrictEqual(Child.prototype.interfaces, [IRunnable]); +} + +// A base with a plain (non-native) static extend must not be mistaken for one. +{ + class NotNative { + static extend() { + throw new Error('must not be called'); + } + } + class Child extends NotNative {} + assert.doesNotThrow(() => NativeClass(Child)); +} + +// Applying it to something that is not a class is a mistake worth reporting. +{ + assert.throws(() => NativeClass()(42), /class declaration/); +} + +console.log('native-class tests passed'); diff --git a/scripts/build_react_native_android.sh b/scripts/build_react_native_android.sh new file mode 100755 index 000000000..36cf7c458 --- /dev/null +++ b/scripts/build_react_native_android.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# Stages the Android half of @nativescript/react-native into the package. +# +# The module compiles from source in the consuming app (see +# packages/react-native/android/build.gradle for why), so what ships is source: +# the runtime's C++ and its com.tns.* Java, plus the two build-time tools. In a +# checkout the Gradle build reads these straight out of the repository instead -- +# that fallback is what lets the demo app build with no staging step. +set -euo pipefail +source "$(dirname "$0")/build_utils.sh" + +PACKAGE_DIR="$REPO_ROOT/packages/react-native" +ANDROID_DIR="$PACKAGE_DIR/android" +NATIVE_API="$PACKAGE_DIR/native-api" +RUNTIME_JAVA_SRC="$REPO_ROOT/platforms/android/test-app/runtime/src/main/java" +BINDINGS_JAVA_SRC="$REPO_ROOT/platforms/android/test-app/runtime-binding-generator/src/main/java" + +checkpoint "Staging the NativeScript Android runtime sources..." + +# Only the Android trees; the iOS staging step owns the rest of native-api/. +rm -rf \ + "$NATIVE_API/runtime/android" \ + "$NATIVE_API/ffi/jni" \ + "$NATIVE_API/jsi" \ + "$NATIVE_API/napi/common" \ + "$ANDROID_DIR/src/main/java-runtime" + +mkdir -p \ + "$NATIVE_API/runtime/android" \ + "$NATIVE_API/ffi/jni" \ + "$NATIVE_API/jsi" \ + "$NATIVE_API/napi/common" \ + "$NATIVE_API/metadata/include" \ + "$ANDROID_DIR/src/main/java-runtime" + +# The jsi runtime and its JNI interop. The napi lane is not shipped: a guest has +# no Node-API anywhere in it. +cp -R "$REPO_ROOT/NativeScript/runtime/android/jsi" "$NATIVE_API/runtime/android/" +cp -R "$REPO_ROOT/NativeScript/ffi/jni/jsi" "$NATIVE_API/ffi/jni/" + +# The engine layer. Only the Hermes adapter is reachable -- it is the one written +# against plain facebook::jsi -- but the tree is copied whole so that a rooted +# include of a sibling resolves the same way it does in the repository. +cp -R "$REPO_ROOT/NativeScript/jsi/." "$NATIVE_API/jsi/" + +# ConcurrentMap.h, robin_hood.h, spinmutex.h: plain containers the runtime uses +# on both binding layers, which happen to live under napi/. +cp "$REPO_ROOT/NativeScript/napi/common/ConcurrentMap.h" \ + "$REPO_ROOT/NativeScript/napi/common/robin_hood.h" \ + "$REPO_ROOT/NativeScript/napi/common/spinmutex.h" \ + "$NATIVE_API/napi/common/" + +cp "$REPO_ROOT/metadata-generator/include/Metadata.h" \ + "$REPO_ROOT/metadata-generator/include/MetadataReader.h" \ + "$NATIVE_API/metadata/include/" 2>/dev/null || true + +# com.tns.* and com.tns.bindings.*, exactly as the standalone runtime composes them. +cp -R "$RUNTIME_JAVA_SRC/." "$ANDROID_DIR/src/main/java-runtime/" +cp -R "$BINDINGS_JAVA_SRC/." "$ANDROID_DIR/src/main/java-runtime/" + +# ts_helpers.js -- evaluated at attach; there is no module loader to require it. +mkdir -p "$ANDROID_DIR/src/main/assets/nativescript/internal" +cp "$REPO_ROOT/platforms/android/test-app/app/src/main/assets/internal/ts_helpers.js" \ + "$ANDROID_DIR/src/main/assets/nativescript/internal/ts_helpers.js" + +"$SCRIPT_DIR/build_react_native_android_tools.sh" + +checkpoint "Staged the Android runtime:" +echo " C++ sources : $(find "$NATIVE_API/runtime/android" "$NATIVE_API/ffi/jni" "$NATIVE_API/jsi" -name '*.cpp' -o -name '*.h' | wc -l | tr -d ' ') files" +echo " Java sources: $(find "$ANDROID_DIR/src/main/java-runtime" -name '*.java' | wc -l | tr -d ' ') files" +echo " Build tools : $(ls "$ANDROID_DIR/tools" | tr '\n' ' ')" From ba064c390ba4ad4ae66570a4e987c06bec96107e Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 13:51:42 +0500 Subject: [PATCH 08/98] test(react-native/android): add the conformance fixture and runner (cherry picked from commit 42f0fe319048f23431a931bb2f1eb92f6323792d) --- packages/react-native/README.md | 114 +++++++++++ platforms/android/test/react-native/App.tsx | 209 ++++++++++++++++++++ scripts/test_react_native_android.sh | 71 +++++++ 3 files changed, 394 insertions(+) create mode 100644 platforms/android/test/react-native/App.tsx create mode 100755 scripts/test_react_native_android.sh diff --git a/packages/react-native/README.md b/packages/react-native/README.md index ee5f5af5d..ab6023cb5 100644 --- a/packages/react-native/README.md +++ b/packages/react-native/README.md @@ -592,3 +592,117 @@ missing, writes `nativescript.react-native.json`, and warns when the app is not configured for Hermes and the New Architecture. The command is intentionally conservative and does not make destructive native project edits. + +## Android + +The same package runs on Android. Where iOS gives you Objective-C and UIKit, +Android gives you Java and the Android SDK — plus every library your app +depends on, because the metadata is generated from your app's own classpath. + +```ts +import NativeScriptNativeApi from "@nativescript/react-native/src/NativeScriptNativeApi"; + +NativeScriptNativeApi.install(""); + +const now = java.lang.System.currentTimeMillis(); +const sdk = android.os.Build.VERSION.SDK_INT; +``` + +### How it works + +The runtime does not bring a JavaScript engine. It binds to the +`jsi::Runtime` React Native already created, which is why the same build works +whether your app runs Hermes or JSC. The Android module compiles from source in +your app the way every React Native module with C++ does — `jsi::Runtime` is an +abstract C++ class whose layout changes between React Native versions, so a +prebuilt binary could not be safe across them. + +### Setup + +`npx nativescript-rn configure` adds the Gradle script and the typings entries. +To do it by hand, in `android/app/build.gradle`, after the React plugin: + +```groovy +apply from: "../../node_modules/@nativescript/react-native/android/nativescript.gradle" +``` + +That adds two things to your build: + +* **Metadata** — a description of every class on the app's resolved classpath, + generated into the APK's assets on every build. This is what makes + `android.widget.Toast` and any third-party library resolvable from JavaScript. + `whitelist.mdg` / `blacklist.mdg` next to `android/app/build.gradle` filter it, + with the same format the NativeScript CLI uses. +* **TypeScript declarations** — off by default because they take a while: + + ```bash + cd android && ./gradlew generateNativeScriptTypingsDebug -PnsGenerateTypings=true + ``` + + which writes `types/android/` and, with `configure` having run, is already + referenced from `tsconfig.json`. + +### Extending Java classes + +Every class that extends a native class carries `@NativeClass`: + +```ts +import { NativeClass } from "@nativescript/react-native"; + +@NativeClass() +class Ticker extends java.lang.Object { + run() { + console.log("tick"); + } +} +``` + +`@NativeClass` is a plain runtime decorator. It reads nothing at build time and +behaves identically under Babel, SWC or tsc, in either the legacy or the TC39 +decorator dialect. It is not optional: `class X extends java.util.ArrayList {}` +on its own produces a class whose overrides resolve in JavaScript but which Java +still sees as an unmodified `ArrayList`. The decorator is what generates the +real Java subclass, so that Java calling `size()` reaches your implementation. + +A JavaScript class has one base, so several interfaces are declared on the +decorator: + +```ts +@NativeClass({ + interfaces: [java.lang.Runnable, java.util.concurrent.Callable], +}) +class Job extends java.lang.Object { + run() {} + call() { + return new java.lang.String("done"); + } +} +``` + +Decorators are *syntax*, so your bundler has to parse them — that means +`@babel/plugin-proposal-decorators` (or the SWC equivalent) in your Babel +config. That is a standard plugin, not a NativeScript-specific transform. + +If you would rather not use decorators, the runtime API is always available and +needs nothing from the bundler: + +```ts +const Ticker = java.lang.Object.extend("Ticker", { run() {} }); +const listener = new android.view.View.OnClickListener({ onClick(v) {} }); +``` + +### Threads + +React Native owns the JavaScript thread, and JSI may only be touched there. A +Java callback arriving on another thread is marshalled onto the JS thread for +you. The one thing to avoid is blocking the JS thread while waiting for such a +callback — `thread.join()` immediately after `thread.start()` deadlocks, because +the callback cannot run until the JS thread is free again. + +### What a guest does not install + +React Native already provides `console`, timers, `queueMicrotask`, +`performance` and a module loader, so the runtime leaves all of them alone and +installs only the metadata globals, the object manager and the interop +callbacks. `Worker` is not installed either: a worker needs its own VM, which a +guest has no way to create. diff --git a/platforms/android/test/react-native/App.tsx b/platforms/android/test/react-native/App.tsx new file mode 100644 index 000000000..ccdca61bb --- /dev/null +++ b/platforms/android/test/react-native/App.tsx @@ -0,0 +1,209 @@ +/** + * The Android conformance fixture for @nativescript/react-native. + * + * Driven by scripts/test_react_native_android.sh, which installs this as an RN + * app's App.tsx, launches it and reads the results off logcat. Every assertion + * exercises something the guest runtime has to get right: resolving the Android + * SDK and the app's own dependencies, constructing and calling Java objects, + * generating real Java subclasses, and marshalling a callback that arrives on + * another thread. + */ +import React from 'react'; +import {SafeAreaView, Text, ScrollView} from 'react-native'; +import NativeScriptNativeApi from '@nativescript/react-native/src/NativeScriptNativeApi'; +import {NativeClass} from '@nativescript/react-native/src/NativeClass'; + +declare const global: any; + +const MARK = 'NS_ANDROID_SMOKE'; +const lines: string[] = []; + +function record(label: string, fn: () => unknown) { + try { + const value = fn(); + lines.push(`${label} = ${String(value)}`); + console.log(`${MARK} PASS ${label} = ${String(value)}`); + } catch (e: any) { + lines.push(`${label} THREW ${e && e.message}`); + console.log(`${MARK} FAIL ${label} :: ${e && e.message}`); + } +} + +try { + const installed = NativeScriptNativeApi.install(''); + console.log(`${MARK} install -> ${installed}`); + console.log(`${MARK} backend -> ${NativeScriptNativeApi.getRuntimeBackend()}`); + + record('typeof java', () => typeof global.java); + record('typeof android', () => typeof global.android); + record('System.currentTimeMillis', () => + global.java.lang.System.currentTimeMillis(), + ); + record('new java.lang.StringBuilder', () => + new global.java.lang.StringBuilder('ns').append('-ok').toString(), + ); + record('Integer.parseInt', () => global.java.lang.Integer.parseInt('41') + 1); + record('Build.VERSION.SDK_INT', () => global.android.os.Build.VERSION.SDK_INT); + // From a third-party library the app installs, not the Android SDK. + record('androidx.core.view.ViewCompat', () => + typeof global.androidx.core.view.ViewCompat, + ); + + // --- subclassing Java from JS --- + record('ts_helpers.__extends', () => typeof global.__extends); + record('ts_helpers.__createNativeProxy', () => + typeof global.__createNativeProxy, + ); + + record('implement Runnable', () => { + let ran = false; + const r = new global.java.lang.Runnable({ + run() { + ran = true; + }, + }); + r.run(); + return ran; + }); + + record('extend a Java class', () => { + const MyList = global.java.util.ArrayList.extend('NsRnMyList', { + size() { + return 42; + }, + }); + const instance = new MyList(); + return instance.size(); + }); + + // No explicit class name: the runtime keys the generated class on the + // extend() call site (file/line/column), which is engine-sensitive. + record('unnamed extend', () => { + const Anon = global.java.util.ArrayList.extend({ + size() { + return 7; + }, + }); + return new Anon().size(); + }); + + // ES class syntax over a native base -- what a React Native developer would + // reach for first, and the form that on the NativeScript CLI needs + // @NativeClass() plus a TypeScript transformer. + record('class syntax extends', () => { + const MyEsList = NativeClass( + class MyEsList extends global.java.util.ArrayList { + size() { + return 5; + } + }, + ); + const instance = new MyEsList(); + // Java's own view of it: Collections.unmodifiableList calls size() from + // Java, so this only agrees if the generated class really overrides it. + const viaJava = global.java.util.Collections.unmodifiableList(instance).size(); + return `${instance.size()}/${viaJava}`; + }); + + // @NativeClass with several Java interfaces -- a JS class has one base, so + // this is the only way to say "implements Runnable and Callable". + record('@NativeClass multiple interfaces', () => { + // Applied as a function rather than with @-syntax: decorator syntax needs + // @babel/plugin-proposal-decorators, and this is exactly what the legacy + // dialect desugars the decorator to. + const Both = NativeClass({ + interfaces: [ + global.java.lang.Runnable, + global.java.util.concurrent.Callable, + ], + })( + class Both extends global.java.lang.Object { + ran = false; + run() { + this.ran = true; + } + call() { + return new global.java.lang.String('called'); + } + }, + ); + + const instance = new Both(); + + // Ask the generated Java class what it implements. submit() would be + // ambiguous here -- ExecutorService overloads it for both Runnable and + // Callable, and this object is both. + const declared = instance.getClass().getInterfaces(); + const names: string[] = []; + for (let i = 0; i < declared.length; i++) { + names.push(String(declared[i].getName())); + } + const wanted = ['java.lang.Runnable', 'java.util.concurrent.Callable']; + return wanted.every((n) => names.indexOf(n) >= 0) + ? 'both' + : `only ${names.join(',')}`; + }); + + record('Comparator drives a real Java sort', () => { + const list = new global.java.util.ArrayList(); + list.add(new global.java.lang.Integer(3)); + list.add(new global.java.lang.Integer(1)); + list.add(new global.java.lang.Integer(2)); + const cmp = new global.java.util.Comparator({ + compare(a: any, b: any) { + // The runtime may hand back a JS number rather than an Integer proxy, + // depending on how the boxed value was marshalled. + const av = a && a.intValue ? a.intValue() : Number(a); + const bv = b && b.intValue ? b.intValue() : Number(b); + return av - bv; + }, + }); + global.java.util.Collections.sort(list, cmp); + const at = (i: number) => { + const v = list.get(i); + return v && v.intValue ? v.intValue() : Number(v); + }; + return `${at(0)}${at(1)}${at(2)}`; + }); +} catch (e: any) { + console.log(`${MARK} FATAL ${e && e.message}`); + lines.push(`FATAL ${e && e.message}`); +} +// Cross-thread callback, checked asynchronously. +// +// Deliberately NOT joined: a Java thread calling into JS is marshalled onto the +// JS thread through the runtime's scheduler, so blocking the JS thread waiting +// for that thread would deadlock -- the callback can only run once the JS thread +// is free again. +let threadFlag = ''; +try { + const r = new global.java.lang.Runnable({ + run() { + threadFlag = 'called'; + }, + }); + new global.java.lang.Thread(r).start(); +} catch (e: any) { + threadFlag = `THREW ${e && e.message}`; +} + +setTimeout(() => { + const ok = threadFlag === 'called'; + lines.push(`Runnable on a Java thread = ${threadFlag}`); + console.log( + `${MARK} ${ok ? 'PASS' : 'FAIL'} Runnable on a Java thread = ${threadFlag}`, + ); + console.log(`${MARK}_DONE`); +}, 1500); + +export default function App() { + return ( + + + {lines.map((l, i) => ( + {l} + ))} + + + ); +} diff --git a/scripts/test_react_native_android.sh b/scripts/test_react_native_android.sh new file mode 100755 index 000000000..41517ffd0 --- /dev/null +++ b/scripts/test_react_native_android.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# Runs the Android conformance fixture in a React Native app on a device. +# +# scripts/test_react_native_android.sh +# +# The app must already have @nativescript/react-native installed and +# android/nativescript.gradle applied (npx nativescript-rn configure does both). +# Metro has to be reachable: the script starts one if nothing answers on 8081. +set -euo pipefail +source "$(dirname "$0")/build_utils.sh" + +APP_DIR=${1:-} +if [ -z "$APP_DIR" ] || [ ! -d "$APP_DIR/android" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +ADB="${ANDROID_HOME:?ANDROID_HOME is not set}/platform-tools/adb" +FIXTURE="$REPO_ROOT/platforms/android/test/react-native/App.tsx" +MARKER="NS_ANDROID_SMOKE" +LOG=$(mktemp) + +checkpoint "Installing the conformance fixture..." +cp "$FIXTURE" "$APP_DIR/App.tsx" + +if ! curl -s -o /dev/null "http://localhost:8081/status"; then + checkpoint "Starting Metro..." + (cd "$APP_DIR" && nohup npx react-native start >/dev/null 2>&1 &) + for _ in $(seq 1 30); do + curl -s -o /dev/null "http://localhost:8081/status" && break + sleep 2 + done +fi + +PKG=$(sed -n 's/.*applicationId "\(.*\)".*/\1/p' "$APP_DIR/android/app/build.gradle" | head -1) +if [ -z "$PKG" ]; then + echo "Could not read applicationId from android/app/build.gradle" >&2 + exit 1 +fi + +checkpoint "Building and installing $PKG..." +(cd "$APP_DIR/android" && ./gradlew --quiet :app:assembleDebug) +"$ADB" reverse tcp:8081 tcp:8081 >/dev/null +"$ADB" install -r -t "$APP_DIR/android/app/build/outputs/apk/debug/app-debug.apk" >/dev/null + +checkpoint "Running..." +"$ADB" shell am force-stop "$PKG" >/dev/null 2>&1 || true +"$ADB" logcat -c +"$ADB" logcat > "$LOG" 2>&1 & +LOGPID=$! +sleep 1 +"$ADB" shell am start -n "$PKG/.MainActivity" >/dev/null + +for _ in $(seq 1 60); do + grep -q "${MARKER}_DONE\|has died\|SyntaxError" "$LOG" 2>/dev/null && break + sleep 2 +done +sleep 2 +kill $LOGPID 2>/dev/null || true + +grep -oE "$MARKER (PASS|FAIL)[^\"\\\\]*" "$LOG" || true +FAILURES=$(grep -c "$MARKER FAIL" "$LOG" || true) +TOTAL=$(grep -cE "$MARKER (PASS|FAIL)" "$LOG" || true) + +echo +if [ "$TOTAL" -eq 0 ]; then + echo "No results. Full log: $LOG" >&2 + exit 1 +fi +echo "$((TOTAL - FAILURES))/$TOTAL passed" +[ "$FAILURES" -eq 0 ] From 63cb3b0614be1209b4ab9410e264da123c2ec502 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 14:01:29 +0500 Subject: [PATCH 09/98] feat(react-native): add JavaProxy naming for build-time generated classes (cherry picked from commit 7362b0b595d33fbb3767551bf7824fc4ea235f8e) --- packages/react-native/README.md | 25 ++++++++++++ packages/react-native/src/NativeClass.d.ts | 13 +++++++ packages/react-native/src/NativeClass.js | 38 +++++++++++++++++- packages/react-native/src/index.ts | 2 +- .../react-native/test/native-class.test.js | 39 ++++++++++++++++++- platforms/android/test/react-native/App.tsx | 5 +++ 6 files changed, 118 insertions(+), 4 deletions(-) diff --git a/packages/react-native/README.md b/packages/react-native/README.md index ab6023cb5..30088106d 100644 --- a/packages/react-native/README.md +++ b/packages/react-native/README.md @@ -683,6 +683,31 @@ Decorators are *syntax*, so your bundler has to parse them — that means `@babel/plugin-proposal-decorators` (or the SWC equivalent) in your Babel config. That is a standard plugin, not a NativeScript-specific transform. +#### Naming a class + +`@NativeClass()` on its own generates the Java class on the device, keyed on the +call site. That is all most classes need. + +A class that has to exist *before* the app runs — one named in +`AndroidManifest.xml`, for instance — needs a fixed name instead: + +```ts +import { JavaProxy } from "@nativescript/react-native"; + +@JavaProxy("com.example.Ticker") +@NativeClass() +class Ticker extends java.lang.Object {} +``` + +A fully-qualified name is taken verbatim by the runtime, so it is reproducible +at build time. The runtime then *looks the class up* rather than generating it, +which means a named class only resolves once the static binding generator has +emitted it — see the note below. + +> **Not yet wired up.** The static binding generator does not currently run for +> React Native apps, so `@JavaProxy` names do not resolve. Unnamed +> `@NativeClass()` classes, which are generated on the device, work today. + If you would rather not use decorators, the runtime API is always available and needs nothing from the bundler: diff --git a/packages/react-native/src/NativeClass.d.ts b/packages/react-native/src/NativeClass.d.ts index 89f41f5bf..2a16bd9de 100644 --- a/packages/react-native/src/NativeClass.d.ts +++ b/packages/react-native/src/NativeClass.d.ts @@ -7,6 +7,14 @@ */ export type NativeClassOptions = { + /** + * Fully-qualified name for the generated Java class, e.g. + * "com.example.Ticker". Taken verbatim by the runtime, which is what allows + * the static binding generator to emit the class at build time. Without it + * the class is keyed on the call site and generated on the device. + */ + name?: string; + /** * Java interfaces the generated class should implement, in addition to * whatever it extends. A JavaScript class has one base, so this is the only @@ -33,3 +41,8 @@ export declare function NativeClass( export declare function Interfaces( interfaces: unknown[], ): (target: T, context?: unknown) => T; + +/** `@JavaProxy(name)` — equivalent to `@NativeClass({ name })`. */ +export declare function JavaProxy( + name: string, +): (target: T, context?: unknown) => T; diff --git a/packages/react-native/src/NativeClass.js b/packages/react-native/src/NativeClass.js index f15db5590..c5a3f61ed 100644 --- a/packages/react-native/src/NativeClass.js +++ b/packages/react-native/src/NativeClass.js @@ -68,6 +68,15 @@ function annotate(target, options) { }); } + const explicitName = options.name; + if (explicitName !== undefined && explicitName.indexOf(".") < 0) { + throw new Error( + `@NativeClass name "${explicitName}" must be fully qualified, e.g. ` + + `"com.example.${explicitName}". The name is the generated Java class's ` + + `name, and the static binding generator matches on it.`, + ); + } + const base = Object.getPrototypeOf(target); const extend = nativeExtendOf(base); if (!extend) { @@ -87,7 +96,17 @@ function annotate(target, options) { // // Passing the prototype as the implementation object and `true` for the // TypeScript-extend form is exactly what ts_helpers does. - const extended = extend.call(base, target.name, target.prototype, true); + // A fully-qualified name is taken verbatim by the runtime, with no call-site + // location mixed in. That is what makes it reproducible at build time: the + // static binding generator can emit a Java class under exactly this name and + // the runtime will find it instead of generating one on the device. + // + // Without a name the generated class is keyed on the call site, which under a + // bundler is a position in the bundle rather than in your source -- so nothing + // ahead of time can predict it, and the class is generated at runtime. + const extended = explicitName + ? extend.call(base, explicitName, target.prototype) + : extend.call(base, target.name, target.prototype, true); // Re-point the class at the generated one. `super()` resolves through the // constructor's own prototype, so this is what makes construction go via the @@ -149,4 +168,19 @@ function Interfaces(interfaces) { }; } -module.exports = { NativeClass, Interfaces, NATIVE_CLASS }; +/** + * Names the generated Java class. + * + * `@JavaProxy("com.example.Ticker")` is `@NativeClass({ name })`, spelled the way + * NativeScript has always spelled it. Naming a class is what lets it be + * generated at build time rather than on the device, and it is required for a + * class that has to exist before the app runs -- one referenced from + * AndroidManifest.xml, say. + */ +function JavaProxy(name) { + return function decorate(target, _context) { + return annotate(target, { name }); + }; +} + +module.exports = { NativeClass, Interfaces, JavaProxy, NATIVE_CLASS }; diff --git a/packages/react-native/src/index.ts b/packages/react-native/src/index.ts index 9b0065f51..ccd1c9078 100644 --- a/packages/react-native/src/index.ts +++ b/packages/react-native/src/index.ts @@ -1347,5 +1347,5 @@ export default NativeScript; // The marker every class extending a native class carries. A runtime decorator, // so it works the same regardless of bundler or decorator dialect. -export { NativeClass, Interfaces, NATIVE_CLASS } from "./NativeClass"; +export { NativeClass, Interfaces, JavaProxy, NATIVE_CLASS } from "./NativeClass"; export type { NativeClassOptions } from "./NativeClass"; diff --git a/packages/react-native/test/native-class.test.js b/packages/react-native/test/native-class.test.js index 0dea465e7..52f7dfcd5 100644 --- a/packages/react-native/test/native-class.test.js +++ b/packages/react-native/test/native-class.test.js @@ -2,7 +2,12 @@ const assert = require('assert'); // Plain JavaScript on purpose: the decorator has to behave identically under // every bundler, so it is shipped untranspiled and tested as shipped. -const { NativeClass, Interfaces, NATIVE_CLASS } = require('../src/NativeClass'); +const { + NativeClass, + Interfaces, + JavaProxy, + NATIVE_CLASS, +} = require('../src/NativeClass'); /** Stands in for a metadata-backed native class. */ function makeNativeBase() { @@ -118,4 +123,36 @@ function makeNativeBase() { assert.throws(() => NativeClass()(42), /class declaration/); } +// A fully-qualified name goes to the runtime verbatim, with no +// isTypeScriptExtend flag -- that is the form the runtime takes as-is, and the +// only one the static binding generator can predict. +{ + const { Base, calls } = makeNativeBase(); + class Ticker extends Base {} + JavaProxy('com.example.Ticker')(Ticker); + + assert.strictEqual(calls.length, 1); + assert.strictEqual(calls[0].name, 'com.example.Ticker'); + assert.strictEqual(calls[0].isTypeScriptExtend, undefined); +} + +// @NativeClass({ name }) is the same thing. +{ + const { Base, calls } = makeNativeBase(); + class Ticker extends Base {} + NativeClass({ name: 'com.example.Ticker' })(Ticker); + assert.strictEqual(calls[0].name, 'com.example.Ticker'); +} + +// An unqualified name would collide across packages and cannot be generated +// ahead of time; say so rather than producing a class nobody can find. +{ + const { Base } = makeNativeBase(); + class Ticker extends Base {} + assert.throws( + () => JavaProxy('Ticker')(Ticker), + /fully qualified/, + ); +} + console.log('native-class tests passed'); diff --git a/platforms/android/test/react-native/App.tsx b/platforms/android/test/react-native/App.tsx index ccdca61bb..f9485626e 100644 --- a/platforms/android/test/react-native/App.tsx +++ b/platforms/android/test/react-native/App.tsx @@ -144,6 +144,11 @@ try { : `only ${names.join(',')}`; }); + // @JavaProxy('com.example.X') is deliberately not exercised here: a + // fully-qualified name makes the runtime *look up* a pre-generated class + // rather than dex one on the device, so it only resolves once the static + // binding generator has emitted it at build time. + record('Comparator drives a real Java sort', () => { const list = new global.java.util.ArrayList(); list.add(new global.java.lang.Integer(3)); From b1785bab645f759534b6804d7ce9a6e6da6c76c4 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 15:52:08 +0500 Subject: [PATCH 10/98] feat(bindings): name generated bindings by content instead of call site (cherry picked from commit 2cbdaa5e2131b9f1fa8b3ec8b839867574121001) --- .../jsi/callbackhandlers/CallbackHandlers.cpp | 131 ++++++++++--- .../jsi/callbackhandlers/CallbackHandlers.h | 15 ++ .../ffi/jni/jsi/constants/Constants.h | 4 + .../ffi/jni/jsi/metadata/MetadataNode.cpp | 178 +++++++++++++++++- .../ffi/jni/jsi/metadata/MetadataNode.h | 10 + platforms/android/test-app/app/build.gradle | 7 + .../staticbindinggenerator/ContentKey.java | 88 +++++++++ .../staticbindinggenerator/Generator.java | 44 +++-- .../InputParameters.java | 17 ++ .../test/ContentKeyTest.java | 81 ++++++++ .../android/test-app/runtime/CMakeLists.txt | 8 + .../android/test-app/runtime/build.gradle | 11 ++ 12 files changed, 541 insertions(+), 53 deletions(-) create mode 100644 platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java create mode 100644 platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp index 193eab64c..1404d302c 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp @@ -614,15 +614,22 @@ JsValue CallbackHandlers::CreateJSWrapper(JsRuntime &rt, jint javaObjectID, return objectManager->CreateJSWrapper(javaObjectID, typeName); } -jobjectArray -CallbackHandlers::GetImplementedInterfaces(JsRuntime &rt, JEnv &jEnv, - const JsValue &implementationObject) { +// The two Collect* helpers below define which names take part in a binding. +// Content-keyed class names hash exactly these sets, so the static binding +// generator has to reproduce them from the bundle byte for byte -- a name that +// is collected here but not there (or the reverse) yields two different class +// names for one extend() site, which fails at runtime as LookedUpClassNotFound. +// Keeping the JNI arrays and the hash on one implementation is what makes that +// contract checkable in a single place. +vector +CallbackHandlers::CollectImplementedInterfaceNames(JsRuntime &rt, + const JsValue &implementationObject) { + vector interfaceNames; + if (!implementationObject.isObject()) { - return CallbackHandlers::GetJavaStringArray(jEnv, 0); + return interfaceNames; } - vector interfacesToImplement; - auto prop = implementationObject.asObjectBorrowed(rt).getProperty(rt, "interfaces"); if (js_util::is_array(rt, prop)) { @@ -637,36 +644,24 @@ CallbackHandlers::GetImplementedInterfaces(JsRuntime &rt, JEnv &jEnv, node = Util::ReplaceAll(node, std::string("/"), std::string(".")); - jstring value = jEnv.NewStringUTF(node.c_str()); - interfacesToImplement.push_back(value); + interfaceNames.push_back(node); } } } - int interfacesCount = interfacesToImplement.size(); - - jobjectArray implementedInterfaces = CallbackHandlers::GetJavaStringArray(jEnv, - interfacesCount); - for (int i = 0; i < interfacesCount; i++) { - jEnv.SetObjectArrayElement(implementedInterfaces, i, interfacesToImplement[i]); - } - - for (int i = 0; i < interfacesCount; i++) { - jEnv.DeleteLocalRef(interfacesToImplement[i]); - } - - return implementedInterfaces; + return interfaceNames; } -jobjectArray -CallbackHandlers::GetMethodOverrides(JsRuntime &rt, JEnv &jEnv, - const JsValue &implementationObject) { +vector +CallbackHandlers::CollectMethodOverrideNames(JsRuntime &rt, + const JsValue &implementationObject, + bool functionsOnly) { + vector methodNames; + if (!implementationObject.isObject()) { - return CallbackHandlers::GetJavaStringArray(jEnv, 0); + return methodNames; } - vector methodNames; - auto implObject = implementationObject.asObjectBorrowed(rt); // Object::getPropertyNames walks the prototype chain, where the napi tree @@ -689,16 +684,94 @@ CallbackHandlers::GetMethodOverrides(JsRuntime &rt, JEnv &jEnv, continue; } + // Runtime bookkeeping stamped onto the implementation object, not + // something the user wrote. getOwnPropertyNames returns non-enumerable + // properties too, so these have to be filtered by name. + if (name == EXTEND_CTOR_CACHE_KEY || name == CLASS_IMPLEMENTATION_OBJECT) { + continue; + } + + if (!functionsOnly) { + // Hashing, not binding. The generator reads the implementation object + // out of the bundle, where it cannot tell a function from any other + // value -- `{ foo: someIdentifier }` is a method it must assume, and + // a statically-typed guess either way would disagree with what this + // enumeration sees. Taking every name instead makes the two sides + // agree by construction on everything the generator can parse. + // + // The three exclusions below are the names the generator provably + // never puts in the method field: `super` and `constructor` are + // artifacts of how the implementation object is built (ts_helpers + // extends with the class prototype, which always carries a + // constructor), and an array-valued `interfaces` is routed to its own + // field instead. + if (name == "constructor") { + continue; + } + + string lowered = name; + std::transform(lowered.begin(), lowered.end(), lowered.begin(), + [](unsigned char c) { return std::tolower(c); }); + + auto value = implObject.getProperty(rt, element); + bool isInterfacesDeclaration = lowered == "interfaces" && js_util::is_array(rt, value); + if (isInterfacesDeclaration) { + continue; + } + + methodNames.push_back(name); + continue; + } + auto method = implObject.getProperty(rt, element); bool methodFound = method.isObject() && method.asObjectBorrowed(rt).isFunction(rt); if (methodFound) { - jstring value = jEnv.NewStringUTF(name.c_str()); - methodNames.push_back(value); + methodNames.push_back(name); } } + return methodNames; +} + +jobjectArray +CallbackHandlers::GetImplementedInterfaces(JsRuntime &rt, JEnv &jEnv, + const JsValue &implementationObject) { + auto names = CollectImplementedInterfaceNames(rt, implementationObject); + + vector interfacesToImplement; + interfacesToImplement.reserve(names.size()); + for (const auto &name: names) { + interfacesToImplement.push_back(jEnv.NewStringUTF(name.c_str())); + } + + int interfacesCount = interfacesToImplement.size(); + + jobjectArray implementedInterfaces = CallbackHandlers::GetJavaStringArray(jEnv, + interfacesCount); + for (int i = 0; i < interfacesCount; i++) { + jEnv.SetObjectArrayElement(implementedInterfaces, i, interfacesToImplement[i]); + } + + for (int i = 0; i < interfacesCount; i++) { + jEnv.DeleteLocalRef(interfacesToImplement[i]); + } + + return implementedInterfaces; +} + +jobjectArray +CallbackHandlers::GetMethodOverrides(JsRuntime &rt, JEnv &jEnv, + const JsValue &implementationObject) { + auto names = CollectMethodOverrideNames(rt, implementationObject); + + vector methodNames; + methodNames.reserve(names.size()); + for (const auto &name: names) { + methodNames.push_back(jEnv.NewStringUTF(name.c_str())); + } + int methodCount = methodNames.size(); jobjectArray methodOverrides = CallbackHandlers::GetJavaStringArray(jEnv, methodCount); diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h index 7428cd153..5220f5164 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h @@ -121,6 +121,21 @@ namespace tns { static jobjectArray GetImplementedInterfaces(JsRuntime &rt, JEnv &jEnv, const JsValue &implementationObject); + /* + * The name sets the two Get* helpers above are built from. Exposed so that + * content-keyed class names can hash the same sets the generated binding is + * built out of, without a second copy of the filtering rules. + */ + // functionsOnly selects what the names are for: true builds the array the + // dex generator overrides against, false the set a content-keyed class + // name hashes. The two differ deliberately -- see the implementation. + static std::vector + CollectMethodOverrideNames(JsRuntime &rt, const JsValue &implementationObject, + bool functionsOnly = true); + + static std::vector + CollectImplementedInterfaceNames(JsRuntime &rt, const JsValue &implementationObject); + static JsValue EnableVerboseLoggingMethodCallback(JsRuntime &rt, const JsValue &thisVal, const JsValue *args, size_t argc); diff --git a/NativeScript/ffi/jni/jsi/constants/Constants.h b/NativeScript/ffi/jni/jsi/constants/Constants.h index 7f41e29c5..cc5da1ffa 100644 --- a/NativeScript/ffi/jni/jsi/constants/Constants.h +++ b/NativeScript/ffi/jni/jsi/constants/Constants.h @@ -10,6 +10,10 @@ #define PROP_KEY_CLASS "class" #define PRIVATE_TYPE_NAME "#typename" #define CLASS_IMPLEMENTATION_OBJECT "t::ClassImplementationObject" +// Identifies an implementation object across repeated extend() calls, so the +// extended constructor can be cached per implementation rather than per +// generated class name -- content-keyed names are shared by design. +#define EXTEND_CTOR_CACHE_KEY "t::ExtendCtorCacheKey" #define PROP_KEY_SUPER "super" #define PROP_KEY_SUPERVALUE "supervalue" #define PRIVATE_JSINFO "#js_info" diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index b2608f78e..068f3e062 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -545,6 +545,71 @@ string MetadataNode::CreateFullClassName(const std::string &className, return fullClassName; } +bool MetadataNode::ContentKeyedBindingsEnabled() { +#if defined(NS_CONTENT_KEYED_BINDINGS) + return true; +#elif defined(NS_JSI_HOST_RUNTIME) + // A guest runs inside the embedder's bundle, so no location key computed here + // can match one the generator computed from a source tree it never saw. + return true; +#else + return false; +#endif +} + +// A class-name token derived from what the generated binding is actually made +// of, rather than from where the extend() call happens to sit. +// +// The static binding generator writes a class out of exactly three inputs: the +// base class, the implemented interfaces, and the overridden method names. Two +// extend() sites that agree on all three produce byte-identical Java, so hashing +// them is enough to name the class -- and two sites that collide are meant to +// share, which is why the generator already treats a duplicate file with equal +// content as a warning rather than an error. +// +// Location keys cannot do this once an embedder owns the bundler: the generator +// reads source coordinates and the runtime reads bundle coordinates. A content +// key needs no shared coordinate system at all. +// +// Sorted, because the runtime's order is JS own-property order and the +// generator's is source order; the binding treats both sets as unordered. +// FNV-1a rather than std::hash, which is not stable across implementations and +// so could not be reproduced by the generator. +string MetadataNode::CreateContentKey(const string &baseClassName, + vector interfaceNames, + vector methodNames) { + sort(interfaceNames.begin(), interfaceNames.end()); + sort(methodNames.begin(), methodNames.end()); + + string canonicalBase = baseClassName; + canonicalBase = Util::ReplaceAll(canonicalBase, std::string("/"), std::string(".")); + + string payload = canonicalBase; + payload += "|"; + for (size_t i = 0; i < interfaceNames.size(); i++) { + if (i > 0) payload += ","; + payload += interfaceNames[i]; + } + payload += "|"; + for (size_t i = 0; i < methodNames.size(); i++) { + if (i > 0) payload += ","; + payload += methodNames[i]; + } + + uint64_t hash = 14695981039346656037ULL; + for (unsigned char c: payload) { + hash ^= static_cast(c); + hash *= 1099511628211ULL; + } + + char buffer[19]; + snprintf(buffer, sizeof(buffer), "h%016llx", static_cast(hash)); + + DEBUG_WRITE("CreateContentKey: %s -> %s", payload.c_str(), buffer); + + return string(buffer); +} + bool MetadataNode::IsValidExtendName(JsRuntime &rt, const JsValue &name) { string extendName = ArgConverter::ConvertToString(rt, name); @@ -1845,11 +1910,28 @@ JsValue MetadataNode::ExtendMethodCallback(JsRuntime &rt, const JsValue &thisVal } } + auto useContentKey = false; + if (hasDot) { extendName = JsValue(rt, args[0]); implementationObject = JsValue(rt, args[1]); } else { - bool validExtend = GetExtendLocation(rt, extendLocation, isTypeScriptExtend); + useContentKey = ContentKeyedBindingsEnabled(); + + // Skipped outright when content keying is on: this walks the stack + // purely to build a name, on every class creation. + bool validExtend = + useContentKey || GetExtendLocation(rt, extendLocation, isTypeScriptExtend); + + if (!validExtend) { + // No usable call site -- an anonymous frame, or a bundle the + // generator never indexed. Naming by content still works here, + // where before this was fatal. + useContentKey = true; + validExtend = true; + extendLocation.clear(); + } + extendName = js_util::to_js_string(rt, ""); auto validArgs = ValidateExtendArguments(rt, argc, args, validExtend, extendLocation, @@ -1860,11 +1942,35 @@ JsValue MetadataNode::ExtendMethodCallback(JsRuntime &rt, const JsValue &thisVal } } + string baseClassName = node->m_name; + + // An explicitly named extend keeps its name in front of the hash. The + // generator reads the same name out of the bundle, so the two still + // agree, and it buys back two things the bare hash costs: a class name + // that says what it is in a stack trace, and uniqueness for the classes + // that need it. Anything Java instantiates by name -- an Activity, a + // Fragment, a Worker, anything reached by reflection -- cannot share a + // generated class, because the runtime has only the class name to find + // the JS implementation with. Naming such a class is what makes it + // unique; unnamed extends stay shared, which is the common case and the + // point of the scheme. + string extendNameString = ArgConverter::ConvertToString(rt, extendName); + string extendNameAndLocation; + + if (useContentKey) { + string contentKey = + CreateContentKey(baseClassName, + CallbackHandlers::CollectImplementedInterfaceNames( + rt, implementationObject), + CallbackHandlers::CollectMethodOverrideNames( + rt, implementationObject, /* functionsOnly */ false)); + extendNameAndLocation = + extendNameString.empty() ? contentKey : extendNameString + "_" + contentKey; + } else { + extendNameAndLocation = extendLocation + extendNameString; + } - string extendNameAndLocation = - extendLocation + ArgConverter::ConvertToString(rt, extendName); string fullClassName; - string baseClassName = node->m_name; if (!hasDot) { fullClassName = TNS_PREFIX + CreateFullClassName(baseClassName, extendNameAndLocation); } else { @@ -1877,12 +1983,43 @@ JsValue MetadataNode::ExtendMethodCallback(JsRuntime &rt, const JsValue &thisVal implementationObject, isInterface); auto fullExtendedName = CallbackHandlers::ResolveClassName(rt, clazz); - auto cachedData = GetCachedExtendedClassData(rt, fullExtendedName); + auto implObject = implementationObject.asObjectBorrowed(rt); + + // Which JS constructor to reuse is a different question from which Java + // class to load, and only the second one has to agree with the static + // binding generator. + // + // Two extend() calls with the same base, interfaces and overridden names + // share one generated Java class -- the Java is identical, and sharing it + // is the point. Their JS bodies are not identical, though, so caching the + // constructor under the class name would hand the second call the first + // call's implementation. Under content keying that is not a rare + // collision but the common case, so the constructor is cached per + // implementation object instead. + // The stamp identifies the object, not the class it was used to build: + // combining it with fullExtendedName keeps a second extend() of the same + // object against a *different* base a cache miss, so it still reaches the + // "used to extend another class" check below instead of silently + // returning the first class. + string ctorCacheKey = fullExtendedName; + if (useContentKey) { + auto stamped = implObject.getProperty(rt, EXTEND_CTOR_CACHE_KEY); + string implObjectId; + if (stamped.isString()) { + implObjectId = stamped.asString(rt).utf8(rt); + } else { + static std::atomic s_implObjectCounter{0}; + implObjectId = std::to_string(s_implObjectCounter.fetch_add(1)); + implObject.setProperty(rt, EXTEND_CTOR_CACHE_KEY, + ArgConverter::convertToJsString(rt, implObjectId)); + } + ctorCacheKey = fullExtendedName + "#" + implObjectId; + } + + auto cachedData = GetCachedExtendedClassData(rt, ctorCacheKey); if (!js_util::is_null_or_undefined(cachedData.extendedCtorFunction)) { return JsValue(rt, cachedData.extendedCtorFunction); } - - auto implObject = implementationObject.asObjectBorrowed(rt); auto implementationObjectName = implObject.getProperty(rt, CLASS_IMPLEMENTATION_OBJECT); if (js_util::is_null_or_undefined(implementationObjectName)) { @@ -1934,10 +2071,31 @@ JsValue MetadataNode::ExtendMethodCallback(JsRuntime &rt, const JsValue &thisVal s_name2NodeCache.emplace(fullExtendedName, node); - ExtendedClassCacheData cacheData(JsValue(rt, extendFuncCtorValue), fullExtendedName, - node); auto cache = GetMetadataNodeCache(rt); - cache->ExtendedCtorFuncCache.emplace(fullExtendedName, std::move(cacheData)); + + // Two entries, because there are two ways in. + // + // From JS, extend() asks "have I already built a constructor for this + // implementation object?" -- keyed per object, so two identical-looking + // extends keep their own bodies. + // + // From Java, createJSInstanceNative has only the class name of the + // instance it is wrapping (CreateExtendedJSWrapper), so the class name + // has to resolve too. emplace leaves an existing entry alone, so for a + // shared generated class the first implementation registered is the one + // Java-side instantiation finds. That is unambiguous for a named extend + // -- naming it makes the class unique -- and inherently ambiguous for an + // unnamed one, which is why anything Java constructs by name should be + // named. + ExtendedClassCacheData byImplObject(JsValue(rt, extendFuncCtorValue), fullExtendedName, + node); + cache->ExtendedCtorFuncCache.emplace(ctorCacheKey, std::move(byImplObject)); + + if (ctorCacheKey != fullExtendedName) { + ExtendedClassCacheData byClassName(JsValue(rt, extendFuncCtorValue), fullExtendedName, + node); + cache->ExtendedCtorFuncCache.emplace(fullExtendedName, std::move(byClassName)); + } return extendFuncCtorValue; }); diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h index 5b7689f36..808b3d338 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h @@ -75,6 +75,16 @@ class MetadataNode { static string CreateFullClassName(const std::string& className, const std::string& extendNameAndLocation); + static string CreateContentKey(const std::string& baseClassName, + std::vector interfaceNames, + std::vector methodNames); + + // Whether an unnamed extend() names its class by content rather than by call + // site. Always available as a fallback when no usable location exists; the + // default is on wherever the bundler is the embedder's, since the generator + // and the runtime cannot agree on coordinates there. + static bool ContentKeyedBindingsEnabled(); + static JsValue CreateArrayObjectConstructor(JsRuntime &rt); static void SetInstanceMetadata(JsRuntime &rt, const JsValue &object, MetadataNode* node); diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index 5c89b5b23..50fe1f2e7 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -541,6 +541,13 @@ task runSbg(type: BuildToolTask) { paramz.add("-line-column-primjs") } + // Must be passed together with -Pcontent-keyed-bindings on :runtime -- the + // generated names and the names the runtime looks up are two halves of one + // scheme, and half of it is a silent LookedUpClassNotFound. + if (project.hasProperty("content-keyed-bindings")) { + paramz.add("-content-keyed-bindings") + } + setOutputs outLogger args paramz diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java new file mode 100644 index 000000000..98c5a6f15 --- /dev/null +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java @@ -0,0 +1,88 @@ +package org.nativescript.staticbindinggenerator; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * The build-time half of content-keyed binding names. + * + * This must agree byte for byte with MetadataNode::CreateContentKey in the + * runtime -- the whole scheme rests on both sides deriving the same name from + * the same class, with no shared coordinate system to fall back on. A change + * here without the matching change there does not fail the build; it fails on + * device as LookedUpClassNotFound. ContentKeyTest pins the pairing. + * + * Sorted because the runtime reads JS own-property order and this side reads + * source order, and the generated binding treats both as unordered sets. + * FNV-1a because it is trivially reproducible in C++; String.hashCode would not + * survive the trip and java.util.zip checksums are not defined over this input. + */ +public final class ContentKey { + + private static final long FNV_OFFSET_BASIS = 0xcbf29ce484222325L; + private static final long FNV_PRIME = 0x100000001b3L; + + private ContentKey() { + } + + public static String of(String baseClassName, String[] interfaceNames, String[] methodNames) { + String payload = payload(baseClassName, interfaceNames, methodNames); + + long hash = FNV_OFFSET_BASIS; + for (byte b : payload.getBytes(java.nio.charset.StandardCharsets.UTF_8)) { + hash ^= (b & 0xffL); + hash *= FNV_PRIME; + } + + return String.format("h%016x", hash); + } + + static String payload(String baseClassName, String[] interfaceNames, String[] methodNames) { + StringBuilder builder = new StringBuilder(); + builder.append(baseClassName == null ? "" : baseClassName.replace('/', '.')); + builder.append('|'); + builder.append(String.join(",", sortedNonEmpty(interfaceNames))); + builder.append('|'); + builder.append(String.join(",", sortedNonEmpty(methodNames))); + return builder.toString(); + } + + /** + * An absent field in sbg-bindings.txt splits to a single empty string rather + * than to nothing, so the empties are dropped here; the runtime never has + * them to begin with. + */ + private static List sortedNonEmpty(String[] values) { + List result = new ArrayList(); + if (values != null) { + for (String value : values) { + if (value != null && !value.isEmpty()) { + result.add(value); + } + } + } + // Ordered by UTF-8 bytes, not by String.compareTo: the runtime sorts + // std::string, which compares bytes, and UTF-16 order diverges from + // UTF-8 order above the BMP. Identical for ASCII identifiers, which is + // every realistic name -- but the two sides have no way to discover a + // disagreement short of a missing class at runtime. + Collections.sort(result, new java.util.Comparator() { + @Override + public int compare(String left, String right) { + byte[] a = left.getBytes(java.nio.charset.StandardCharsets.UTF_8); + byte[] b = right.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int shared = Math.min(a.length, b.length); + for (int i = 0; i < shared; i++) { + int diff = (a[i] & 0xff) - (b[i] & 0xff); + if (diff != 0) { + return diff; + } + } + return a.length - b.length; + } + }); + return result; + } +} diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Generator.java b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Generator.java index 801527d9f..acdaf6f19 100644 --- a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Generator.java +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Generator.java @@ -96,22 +96,26 @@ public Generator(File outputDir, List libs, boolean suppressCallJSMetho public void writeBindings(String filename) throws IOException, ClassNotFoundException { fileSystemHelper.cleanPreviouslyAutoGeneratedSbgFiles(this.outputDir); Binding[] bindings = generateBindings(filename); - Set writtenFiles = new HashSet(); + // Keyed by what was generated, not by what is on disk: the file carries + // AUTO_GENERATED_FILE_PROLOGUE and getContent() does not, so reading it + // back to compare never matched and every duplicate name threw -- + // including duplicates that were byte-identical and safe to share. + // + // Sharing is the normal case under content-keyed naming, where two + // extend() sites with the same base, interfaces and overrides are meant + // to resolve to one generated class. + Map writtenFiles = new HashMap(); for (Binding b : bindings) { - if (writtenFiles.add(b.getFile())) { + String alreadyWritten = writtenFiles.get(b.getFile()); + + if (alreadyWritten == null) { try (PrintStream ps = new PrintStream(b.getFile())) { ps.append(AUTO_GENERATED_FILE_PROLOGUE); ps.append(b.getContent()); } - // A file with that name has already been written - } else { - // Compare text contents for equality - String content = new String(Files.readAllBytes(Paths.get(b.getFile().toString()))); - if (content.equals(b.getContent())) { - System.out.println("Warning: File already exists. This could mean the same code has been parsed more than once from two or more different files. \nFile:" + b.getFile()); - } else { - throw new IOException("File already exists. This may lead to undesired behavior.\nPlease change the name of one of the extended classes.\nFile:" + b.getFile() + " Class: " + b.getClassname()); - } + writtenFiles.put(b.getFile(), b.getContent()); + } else if (!alreadyWritten.equals(b.getContent())) { + throw new IOException("File already exists. This may lead to undesired behavior.\nPlease change the name of one of the extended classes.\nFile:" + b.getFile() + " Class: " + b.getClassname()); } } } @@ -153,9 +157,21 @@ public Binding generateBinding(DataRow dataRow, HashSet interfaceNames) name = getSimpleClassname(clazz.getClassName()); } else { name = getSimpleClassname(clazz.getClassName().replace("$", "_")) + "_"; - // name of the class: last portion of the full file name + line + column + variable name - String[] lastFilePathPart = dataRow.getFile().split("_"); - name += lastFilePathPart[lastFilePathPart.length - 1] + "_" + dataRow.getLine() + "_" + dataRow.getColumn() + "_" + dataRow.getNewClassName(); + if (InputParameters.getCurrent().getContentKeyedBindings()) { + // Named after what the binding is made of, with the extend + // name kept in front when there is one. Must match the + // runtime's MetadataNode::ExtendMethodCallback exactly -- + // including the case where the name is absent. + String extendName = dataRow.getNewClassName(); + if (extendName != null && !extendName.isEmpty()) { + name += extendName + "_"; + } + name += ContentKey.of(dataRow.getBaseClassname(), dataRow.getInterfaces(), dataRow.getMethods()); + } else { + // name of the class: last portion of the full file name + line + column + variable name + String[] lastFilePathPart = dataRow.getFile().split("_"); + name += lastFilePathPart[lastFilePathPart.length - 1] + "_" + dataRow.getLine() + "_" + dataRow.getColumn() + "_" + dataRow.getNewClassName(); + } } } diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/InputParameters.java b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/InputParameters.java index 1408df4b5..86ad6d48e 100644 --- a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/InputParameters.java +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/InputParameters.java @@ -7,17 +7,22 @@ public class InputParameters { // if the flag is passed the generation will exit on error private static final String THROW_ON_ERROR = "-throw-on-error"; private static final String LINE_COL_PRIMJS = "-line-column-primjs"; + // name generated classes after their content instead of their call site; + // must match NS_CONTENT_KEYED_BINDINGS in the runtime + private static final String CONTENT_KEYED_BINDINGS = "-content-keyed-bindings"; private static InputParameters current = new InputParameters(); private boolean showDeprecationWarnings; private boolean throwOnError; private boolean lineColumnPrimjs; + private boolean contentKeyedBindings; public InputParameters() { this.showDeprecationWarnings = false; this.throwOnError = false; this.lineColumnPrimjs = false; + this.contentKeyedBindings = false; } public void setShowDeprecationWarnings(boolean value) { @@ -44,6 +49,14 @@ public boolean getLineColumnPrimjs() { return lineColumnPrimjs; } + public void setContentKeyedBindings(boolean value) { + this.contentKeyedBindings = value; + } + + public boolean getContentKeyedBindings() { + return contentKeyedBindings; + } + public static void parseCommand(String[] args) { InputParameters inputParameters = new InputParameters(); @@ -62,6 +75,10 @@ public static void parseCommand(String[] args) { if (commandArg.equals(LINE_COL_PRIMJS)) { inputParameters.setLineColumnPrimjs(true); } + + if (commandArg.equals(CONTENT_KEYED_BINDINGS)) { + inputParameters.setContentKeyedBindings(true); + } } } diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java b/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java new file mode 100644 index 000000000..9de0e26bc --- /dev/null +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java @@ -0,0 +1,81 @@ +package org.nativescript.staticbindinggenerator.test; + +import org.junit.Test; +import org.nativescript.staticbindinggenerator.ContentKey; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +/** + * Pins the generator's half of the content key against values produced by the + * runtime's MetadataNode::CreateContentKey. + * + * The two implementations are in different languages and cannot call each + * other, so the literals below are the contract between them. If one side is + * changed without the other, this test fails here rather than as a missing + * class on device -- which is the only other place the disagreement shows up. + */ +public class ContentKeyTest { + + @Test + public void matchesRuntimeForOverridesOnly() { + assertEquals("h4b3d4e7b5dcd7eac", + ContentKey.of("com.tns.tests.Button1", new String[]{""}, new String[]{"toString", "echo"})); + } + + @Test + public void matchesRuntimeForInterfaces() { + assertEquals("h43486683deee2d72", + ContentKey.of("java.lang.Object", + new String[]{"java.lang.Runnable", "java.io.Closeable"}, + new String[]{"run", "close"})); + } + + @Test + public void matchesRuntimeForSingleOverride() { + assertEquals("he2246413e8de25b9", + ContentKey.of("android.view.View", new String[]{""}, new String[]{"onClick"})); + } + + /** The runtime's base class name is slash-separated; both must canonicalize. */ + @Test + public void treatsSlashAndDotBasesAlike() { + assertEquals(ContentKey.of("com.tns.tests.Button1", new String[]{""}, new String[]{""}), + ContentKey.of("com/tns/tests/Button1", new String[]{""}, new String[]{""})); + assertEquals("h55d3a3a72d6a9f05", + ContentKey.of("com/tns/tests/Button1", new String[]{""}, new String[]{""})); + } + + /** + * An absent field in sbg-bindings.txt splits to one empty string. The runtime + * has no such element, so it has to be dropped rather than hashed as "". + */ + @Test + public void ignoresTheEmptyFieldPlaceholder() { + assertEquals(ContentKey.of("android.view.View", new String[0], new String[]{"onClick"}), + ContentKey.of("android.view.View", new String[]{""}, new String[]{"onClick"})); + } + + /** Order is the one thing the two sides provably disagree on, so it must not count. */ + @Test + public void isOrderIndependent() { + assertEquals(ContentKey.of("android.view.View", new String[]{"a.B", "c.D"}, new String[]{"x", "y"}), + ContentKey.of("android.view.View", new String[]{"c.D", "a.B"}, new String[]{"y", "x"})); + } + + /** Everything that reaches the generated Java must still separate classes. */ + @Test + public void separatesDifferentContent() { + String base = ContentKey.of("android.view.View", new String[0], new String[]{"onClick"}); + assertNotEquals(base, ContentKey.of("android.view.ViewGroup", new String[0], new String[]{"onClick"})); + assertNotEquals(base, ContentKey.of("android.view.View", new String[0], new String[]{"onTouch"})); + assertNotEquals(base, ContentKey.of("android.view.View", new String[]{"a.B"}, new String[]{"onClick"})); + } + + /** The delimiters must not be forgeable from a name that contains them. */ + @Test + public void doesNotConfuseFieldBoundaries() { + assertNotEquals(ContentKey.of("android.view.View", new String[]{"a.B"}, new String[0]), + ContentKey.of("android.view.View", new String[0], new String[]{"a.B"})); + } +} diff --git a/platforms/android/test-app/runtime/CMakeLists.txt b/platforms/android/test-app/runtime/CMakeLists.txt index 7e3be5e0b..31194a189 100644 --- a/platforms/android/test-app/runtime/CMakeLists.txt +++ b/platforms/android/test-app/runtime/CMakeLists.txt @@ -468,6 +468,14 @@ if (NS_BYTECODE) target_compile_definitions(NativeScript PRIVATE NS_BYTECODE_ENABLED) endif () +# Name generated bindings after their content rather than their call site. Must +# be passed together with -content-keyed-bindings to the static binding +# generator; the two names are halves of one scheme. Wired from +# runtime/build.gradle. +if (NS_CONTENT_KEYED_BINDINGS) + target_compile_definitions(NativeScript PRIVATE NS_CONTENT_KEYED_BINDINGS) +endif () + # if("${ANDROID_ABI}" MATCHES "armeabi-v7a$" OR "${ANDROID_ABI}" MATCHES "x86$") # # On API Level 19 and lower we need to link with android_support # # because it contains some implementation of functions such as "strtoll" and "strtoul" diff --git a/platforms/android/test-app/runtime/build.gradle b/platforms/android/test-app/runtime/build.gradle index 15ef3e7e6..94c411630 100644 --- a/platforms/android/test-app/runtime/build.gradle +++ b/platforms/android/test-app/runtime/build.gradle @@ -23,6 +23,13 @@ if (!["napi", "jsi"].contains(bindingLayer)) { throw new GradleException("bindingLayer must be 'napi' or 'jsi', got '${bindingLayer}'") } +// Name generated bindings after what they contain rather than after the call +// site that created them. Off here so the standalone runtime keeps its existing +// names; on by default only where the bundler belongs to an embedder. The static +// binding generator has to be told the same thing -- see -Pcontent-keyed-bindings +// in app/build.gradle. +def contentKeyedBindings = project.hasProperty("content-keyed-bindings") + printf("Compiling NativeScript with %s (runtime: %s).\n", jsEngine, bindingLayer) // Version.h moved under the per-binding runtime tree when the jsi runtime was @@ -196,6 +203,10 @@ android { arguments.add("-DNS_BINDING=${bindingLayer}") + if (contentKeyedBindings) { + arguments.add("-DNS_CONTENT_KEYED_BINDINGS=1") + } + if (bytecodeStacktraces) { arguments.add("-DNS_BYTECODE=1") } From ebba140b038d8609f30c2ecd9e3030c8eb7533a9 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 16:09:38 +0500 Subject: [PATCH 11/98] feat(jsparser): emit bindings for decorated native class declarations (cherry picked from commit 982b8e63668289ab13d23a78673d0afa9d78bec7) --- .../build-tools/jsparser/js_parser.js | 11 + .../tests/native-class-visitor.test.js | 127 ++++++++++++ .../jsparser/visitors/es5-visitors.js | 194 ++++++++++++++++++ 3 files changed, 332 insertions(+) create mode 100644 platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js diff --git a/platforms/android/test-app/build-tools/jsparser/js_parser.js b/platforms/android/test-app/build-tools/jsparser/js_parser.js index abada5747..80cde07d5 100644 --- a/platforms/android/test-app/build-tools/jsparser/js_parser.js +++ b/platforms/android/test-app/build-tools/jsparser/js_parser.js @@ -147,6 +147,13 @@ function getFileAst(tsHelpersFilePath) { const ast = babelParser.parse(fileContent, { minify: false, plugins: [ + // "decorators-legacy" is the @babel/parser plugin. The + // "@babel/plugin-proposal-decorators" entry below names a Babel + // *transform*, which the parser does not recognise, so on its own + // decorator syntax fails to parse outright -- which is why only + // downlevelled __decorate([...]) output was ever handled. Kept + // alongside it so nothing that reads this list changes meaning. + "decorators-legacy", [ "@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }, @@ -249,6 +256,10 @@ const astFromFileContent = function (path, data, err) { const parserOptions = { minify: false, plugins: [ + // See the note on the same list in getFileAst: without + // "decorators-legacy" the parser rejects `@NativeClass class X {}` + // outright, so a bundle that keeps its decorators cannot be read. + "decorators-legacy", ["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }], "objectRestSpread", ], diff --git a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js new file mode 100644 index 000000000..ca4c6bebc --- /dev/null +++ b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js @@ -0,0 +1,127 @@ +// Covers the native-class visitor: `class X extends android.view.View {}` with +// its decorators still in the source. +// +// Plain node rather than a jasmine spec in specs/, because the specs there +// shell out to gradle and need `npm install` in this directory first. This +// drives the visitor directly against jsparser's own dependencies, so it runs +// with nothing installed beyond what the parser already needs: +// +// node tests/native-class-visitor.test.js +const assert = require("assert"); +const path = require("path"); + +const root = path.resolve(__dirname, ".."); +const babelParser = require(path.join(root, "node_modules/@babel/parser")); +const traverse = require(path.join(root, "node_modules/@babel/traverse")).default; +const es5 = require(path.join(root, "visitors/es5-visitors")); + +function parse(source) { + const ast = babelParser.parse(source, { + minify: false, + plugins: ["decorators-legacy", "objectRestSpread"], + }); + + traverse(ast, { + enter(nodePath) { + es5.es5Visitor(nodePath, { + filePath: "app/subject.js", + fullPathName: "app_subject", + extendDecoratorName: "JavaProxy", + interfacesDecoratorName: "Interfaces", + logger: null, + }); + }, + }); + + return { + named: es5.es5Visitor.getProxyExtendInfo(), + unnamed: es5.es5Visitor.getCommonExtendInfo(), + }; +} + +function fields(row) { + return row.split("*"); +} + +// The override set has to match CallbackHandlers::CollectMethodOverrideNames in +// the runtime, because a content-keyed class name hashes it. Accessors are on +// the prototype and count; the constructor, statics and instance fields are not +// overrides. +{ + const { unnamed, named } = parse(` + @NativeClass + class MyView extends android.view.View { + constructor() { super(); } + onClick(v) { return 1; } + get title() { return "t"; } + set title(v) {} + static helper() {} + handler = () => {}; + onTouch(e) { return false; } + } + `); + + assert.strictEqual(named.length, 0); + assert.strictEqual(unnamed.length, 1); + + const f = fields(unnamed[0]); + assert.strictEqual(f[0], "android.view.View"); + assert.strictEqual(f[4], "MyView", "declared name must match the runtime's extendName"); + assert.deepStrictEqual(f[5].split(","), ["onClick", "title", "onTouch"]); + assert.strictEqual(f[6], "", "an unnamed class must not claim a JavaProxy name"); +} + +// @JavaProxy puts the fully qualified name in the filename field, which is what +// makes hasSpecifiedName true on the generator side. +{ + const { named, unnamed } = parse(` + @JavaProxy("com.example.MyActivity") + @Interfaces([android.view.View.OnClickListener, java.lang.Runnable]) + class MyActivity extends android.app.Activity { + onCreate(b) {} + run() {} + } + `); + + assert.strictEqual(unnamed.length, 0); + assert.strictEqual(named.length, 1); + + const f = fields(named[0]); + assert.strictEqual(f[0], "android.app.Activity"); + assert.strictEqual(f[5], "onCreate,run"); + assert.strictEqual(f[6], "com.example.MyActivity"); + assert.strictEqual(f[8], "android.view.View.OnClickListener,java.lang.Runnable"); +} + +// @NativeClass({ name }) is the same request as @JavaProxy. +{ + const { named } = parse(` + @NativeClass({ name: "com.example.Ticker" }) + class Ticker extends java.lang.Object { + toString() { return "tick"; } + } + `); + + assert.strictEqual(named.length, 1); + assert.strictEqual(fields(named[0])[6], "com.example.Ticker"); +} + +// An undecorated class is not a binding, however native its superclass looks. +// Bundles are full of `class X extends Foo.Bar {}` that has nothing to do with +// Java, which is why the decorator is required rather than inferred. +{ + const { named, unnamed } = parse(` + class NotNative extends Something.Else { + whatever() {} + } + @NativeClass + class AlsoNotNative extends PlainIdentifier { + whatever() {} + } + `); + + assert.strictEqual(named.length, 0); + assert.strictEqual(unnamed.length, 0); +} + +console.log("native-class visitor tests passed"); diff --git a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js index 44604c550..ef9c74752 100644 --- a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js +++ b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js @@ -1,6 +1,10 @@ var es5_visitors = (function () { var types = require("@babel/types"), defaultExtendDecoratorName = "JavaProxy", + // Marks a class that extends a native type. Required on every such class, + // so that this parser never has to guess whether a dotted superclass is a + // Java type or an ordinary JS one. + NATIVE_CLASS_DECORATOR_NAME = "NativeClass", columnOffset = 1, ASTERISK_SEPARATOR = "*", customExtendsArr = [], @@ -41,6 +45,15 @@ var es5_visitors = (function () { traverseInterface(path, config); } + // Native `class X extends android.view.View {}`, decorators intact. + // Everything below this point anchors on transpiler output (__extends, + // swc_inherit_polyfill, .extend). A bundler that emits classes and + // decorators as written -- Metro with Hermes, esbuild targeting esnext -- + // produces none of those, so the class itself has to be an anchor too. + if (types.isClassDeclaration(path) || types.isClassExpression(path)) { + traverseNativeClassDeclaration(path, config); + } + // // Parsed Typescript to ES5 Syntax (normal extend pattern + custom extend pattern) // // anchor is __extends if (types.isIdentifier(path) && path.node.name === "__extends") { @@ -476,6 +489,187 @@ var es5_visitors = (function () { * Finds the java proxy name from custom class decorator. * Write results in "customExtendsArr" */ + /* + * Handles a native class declaration that still has its decorators: + * + * @NativeClass + * class MyView extends android.view.View { onClick() {} } + * + * @JavaProxy("com.example.MyActivity") + * @Interfaces([android.view.View.OnClickListener]) + * class MyActivity extends android.app.Activity { onCreate() {} } + * + * A class is only reported when it carries one of those two decorators. + * That is the documented rule -- every class extending a native type is + * decorated -- and it keeps this visitor off the many ordinary classes in a + * bundle that merely extend something with a dotted name. + */ + function traverseNativeClassDeclaration(path, config) { + var node = path.node; + + if (!node.decorators || node.decorators.length === 0) { + return; + } + + if (!node.superClass || !types.isMemberExpression(node.superClass)) { + return; + } + + var extendClass = _getWholeName(node.superClass).reverse().join("."); + if (!extendClass || extendClass.indexOf(".") === -1) { + return; + } + + var extendDecoratorName = + config.extendDecoratorName === undefined + ? defaultExtendDecoratorName + : config.extendDecoratorName; + + var javaProxyName = null; + var isNativeClass = false; + var implementedInterfaces = []; + + for (var i = 0; i < node.decorators.length; i++) { + var expression = node.decorators[i].expression; + var isCall = types.isCallExpression(expression); + var name = isCall + ? expression.callee && expression.callee.name + : expression.name; + + if (!name) { + continue; + } + + if (name === extendDecoratorName) { + // @JavaProxy("a.b.C") -- reuse the shared validation so the error text + // is the same one the transpiled path produces. + javaProxyName = _getDecoratorArgument( + { parent: expression }, + config, + extendDecoratorName + ); + } else if (name === config.interfacesDecoratorName) { + if (isCall && expression.arguments.length > 0) { + var interfacesNode = expression.arguments[0]; + if (types.isArrayExpression(interfacesNode)) { + for (var j = 0; j < interfacesNode.elements.length; j++) { + implementedInterfaces.push( + _getWholeInterfaceNameFromInterfacesNode( + interfacesNode.elements[j] + ) + ); + } + } + } + } else if (name === NATIVE_CLASS_DECORATOR_NAME) { + isNativeClass = true; + // @NativeClass({ name: "a.b.C" }) is the same request as @JavaProxy. + if (isCall && expression.arguments.length > 0) { + var options = expression.arguments[0]; + if (types.isObjectExpression(options)) { + for (var k = 0; k < options.properties.length; k++) { + var property = options.properties[k]; + if ( + _getIdentifierKeyName(property) === "name" && + types.isStringLiteral(property.value) + ) { + javaProxyName = property.value.value; + } + } + } + } + } + } + + if (!isNativeClass && javaProxyName === null) { + return; + } + + var overriddenMethodNames = _getOverriddenMethodsFromClassBody(node); + + if (javaProxyName !== null) { + traverseJavaProxyExtend( + javaProxyName, + config, + extendDecoratorName, + extendClass, + overriddenMethodNames, + implementedInterfaces.join(",") + ); + return; + } + + var location = node.loc && node.loc.start; + var lineToWrite = _generateLineToWrite( + "", + extendClass, + overriddenMethodNames, + { + file: config.fullPathName, + line: location ? location.line : "", + column: location ? location.column + columnOffset : "", + className: node.id ? node.id.name : "", + }, + config.fullPathName, + implementedInterfaces.join(",") + ); + + if (config.logger) { + config.logger.info(lineToWrite); + } + + normalExtendsArr.push(lineToWrite); + } + + /* + * The names a class body puts on the prototype, which is the object the + * runtime is handed as the implementation. + * + * Must agree with CallbackHandlers::CollectMethodOverrideNames in the + * runtime, because a content-keyed class name hashes this set: a name + * collected on one side and not the other produces two different class + * names for one class, which surfaces only as LookedUpClassNotFound. + * + * - "constructor" is skipped; it is on the prototype but is never a Java + * override, and the runtime skips it too. + * - static members live on the constructor, not the prototype. + * - class fields are per-instance, so they are not on the prototype either. + * - getters and setters are, so they count. + * - computed keys cannot be read statically; skipping them costs only the + * pre-generated class, since the runtime still generates one at load. + */ + function _getOverriddenMethodsFromClassBody(node) { + var overriddenMethodNames = []; + + if (!node.body || !node.body.body) { + return overriddenMethodNames; + } + + var members = node.body.body; + for (var i = 0; i < members.length; i++) { + var member = members[i]; + + if (!types.isClassMethod(member) || member.static || member.computed) { + continue; + } + + if (member.kind === "constructor") { + continue; + } + + var keyName = _getIdentifierKeyName(member); + if (keyName === null) { + continue; + } + + if (overriddenMethodNames.indexOf(keyName) === -1) { + overriddenMethodNames.push(keyName); + } + } + + return overriddenMethodNames; + } + function traverseJavaProxyExtend( path, config, From b31db5c1195ae74cbdaeef1b413f20efd21d2f32 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 16:12:21 +0500 Subject: [PATCH 12/98] docs(react-native): document content-keyed class naming and when a name is required (cherry picked from commit 5eec7c635d6f35a28a27033d28586ce24a5d3b40) --- packages/react-native/README.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/react-native/README.md b/packages/react-native/README.md index 30088106d..f21ff8e7d 100644 --- a/packages/react-native/README.md +++ b/packages/react-native/README.md @@ -685,8 +685,25 @@ config. That is a standard plugin, not a NativeScript-specific transform. #### Naming a class -`@NativeClass()` on its own generates the Java class on the device, keyed on the -call site. That is all most classes need. +`@NativeClass()` on its own generates the Java class on the device. The class is +named after what it contains — its base class, its interfaces, and the names it +overrides — rather than after the source position of the call, because a guest +runs inside React Native's bundle and no source position computed here would +match one a build-time tool computed from your source tree. + +One consequence is worth knowing: two classes that extend the same type, declare +the same interfaces and override the same method names **share one generated +Java class**. That is safe, because the generated Java is identical in both +cases and only forwards into JavaScript — each instance still runs its own +implementation. + +It stops being safe when *Java* constructs the class by name, because then the +class name is all the runtime has to find the JavaScript side with. So: + +> **Name any class that Java instantiates for you** — an `Activity`, a +> `Fragment`, a `Service`, a `Worker`, anything reached by reflection or named +> in `AndroidManifest.xml`. Naming makes it unique. Classes you construct +> yourself with `new` never need it. A class that has to exist *before* the app runs — one named in `AndroidManifest.xml`, for instance — needs a fixed name instead: @@ -704,9 +721,11 @@ at build time. The runtime then *looks the class up* rather than generating it, which means a named class only resolves once the static binding generator has emitted it — see the note below. -> **Not yet wired up.** The static binding generator does not currently run for -> React Native apps, so `@JavaProxy` names do not resolve. Unnamed -> `@NativeClass()` classes, which are generated on the device, work today. +> **Release builds only.** The static binding generator reads the bundle, so it +> needs one on disk. In debug, Metro serves the bundle over HTTP and there is +> nothing to scan; unnamed `@NativeClass()` classes are generated on the device +> and work as usual, but `@JavaProxy` names do not resolve until you build a +> release bundle. If you would rather not use decorators, the runtime API is always available and needs nothing from the bundler: From 5b1c8fd6950ad447e0b24a20633c59f8068994d6 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 16:36:07 +0500 Subject: [PATCH 13/98] fix(jsparser): read bundler output whatever its extension, retrying as a module (cherry picked from commit baba1e25b5e97da5333511e43918e9a721f05435) --- .../build-tools/jsparser/js_parser.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/platforms/android/test-app/build-tools/jsparser/js_parser.js b/platforms/android/test-app/build-tools/jsparser/js_parser.js index 80cde07d5..6da2fce85 100644 --- a/platforms/android/test-app/build-tools/jsparser/js_parser.js +++ b/platforms/android/test-app/build-tools/jsparser/js_parser.js @@ -274,7 +274,25 @@ const astFromFileContent = function (path, data, err) { logger.info(`Parsing CommonJS file: ${path}`); } - const ast = babelParser.parse(data.data, parserOptions); + let ast; + try { + ast = babelParser.parse(data.data, parserOptions); + } catch (scriptError) { + // The extension is only a hint, and for bundler output it is often not + // even a JavaScript one -- Metro emits index.android.bundle, and a RAM + // bundle scatters further files beside it. Anything that fails to parse + // as a script is retried as a module before being treated as an error, + // so which name the bundler happened to choose does not decide whether + // the file can be read. + if (isESModule) { + throw scriptError; + } + + logger.info(`Re-parsing as an ES module: ${path}`); + parserOptions.sourceType = "module"; + ast = babelParser.parse(data.data, parserOptions); + } + data.ast = ast; return resolve(data); }); From be794ca140c6eea042c7bbdfae8bbf405b6327fc Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 17:42:09 +0500 Subject: [PATCH 14/98] feat(react-native): pre-generate Java bindings from a release bundle (cherry picked from commit 2092742600c7c9e09067ba72ee98b32f60d949c0) --- .../react-native/android/nativescript.gradle | 233 +++++++++++++++++- packages/react-native/package.json | 6 + .../tests/native-class-visitor.test.js | 31 +++ .../jsparser/visitors/es5-visitors.js | 52 +++- .../staticbindinggenerator/Main.java | 21 +- platforms/android/test/react-native/App.tsx | 37 ++- scripts/build_react_native_android_tools.sh | 29 ++- 7 files changed, 390 insertions(+), 19 deletions(-) diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 31f917bd0..377e6c79a 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -24,6 +24,20 @@ def toolsDir = file("${nsPackageDir}/tools") def metadataGeneratorJar = file("${toolsDir}/android-metadata-generator.jar") def dtsGeneratorJar = file("${toolsDir}/dts-generator.jar") +def sbgGeneratorJar = file("${toolsDir}/static-binding-generator.jar") + +// Bundler settings, taken from the React extension the app already configures +// so that a project with a custom root, entry file or CLI is bundled the same +// way React Native bundles it. The defaults mirror the plugin's own. +def reactExt = project.extensions.findByName("react") +def reactRoot = reactExt?.root?.getOrNull()?.asFile ?: file("${project.projectDir}/../..") +def reactCliFile = reactExt?.cliFile?.getOrNull()?.asFile?.absolutePath + ?: new File(reactRoot, "node_modules/react-native/cli.js").absolutePath +def nodeExecutable = (reactExt?.nodeExecutableAndArgs?.getOrNull() ?: ["node"])[0] +def nsEntryFile = reactExt?.entryFile?.getOrNull()?.asFile?.absolutePath + ?: (new File(reactRoot, "index.js").exists() + ? new File(reactRoot, "index.js").absolutePath + : new File(reactRoot, "index.android.js").absolutePath) def nsGenerateTypings = project.hasProperty("nsGenerateTypings") && Boolean.parseBoolean(project.property("nsGenerateTypings").toString()) @@ -31,13 +45,33 @@ def nsGenerateTypings = project.hasProperty("nsGenerateTypings") // Where the .dat files land. This is added to the asset source set rather than // written into src/, so a clean build regenerates and nothing lands in version // control. NativeScriptNativeApiModule copies them out of the APK on first run. -def metadataAssetRoot = file("${buildDir}/generated/nativescript/assets") -def metadataOutDir = file("${metadataAssetRoot}/nativescript-metadata") +// +// One directory per variant. A single shared one is not merely untidy: two +// variants' generator tasks then declare the same output, and Gradle refuses to +// merge assets it cannot prove are up to date, failing the build with +// "uses this output of task ... without declaring an explicit dependency". +// Only release surfaces it, because a debug-only build never has a second +// variant's task registered against the same path. +def metadataAssetRootFor = { variantName -> + file("${buildDir}/generated/nativescript/assets/${variantName}") +} +def metadataOutDirFor = { variantName -> + new File(metadataAssetRootFor(variantName), "nativescript-metadata") +} +// Registered against each variant's own source set rather than main, so that a +// variant only ever picks up the metadata generated for it. android { - sourceSets { - main { - assets.srcDirs += metadataAssetRoot + applicationVariants.all { variant -> + def assetRoot = metadataAssetRootFor(variant.name) + def sourceSet = android.sourceSets.findByName(variant.name) + if (sourceSet != null) { + sourceSet.assets.srcDirs += assetRoot + } else { + // Flavoured builds have no source set named after the full variant; + // fall back to main, where the per-variant subdirectory still keeps + // the two generators from colliding. + android.sourceSets.main.assets.srcDirs += assetRoot } } } @@ -115,6 +149,7 @@ def collectClassFiles = { Collection roots -> android.applicationVariants.all { variant -> def variantName = variant.name.capitalize() def workDir = file("${buildDir}/nativescript/${variant.name}") + def metadataOutDir = metadataOutDirFor(variant.name) def metadataTask = tasks.register("generateNativeScriptMetadata${variantName}", JavaExec) { group = "nativescript" @@ -211,6 +246,182 @@ android.applicationVariants.all { variant -> } } + // Pre-generated Java for named (@JavaProxy) subclasses. + // + // Only for variants that ship a bundle. In debug, Metro serves JS over HTTP, + // there is nothing on disk to read, and unnamed classes are generated on the + // device anyway. + // + // The bundle React Native itself produces is no use here: hermesc compiles + // it and moves the bytecode over the JavaScript inside a single task, so by + // the time any later task runs there is nothing readable left. So Metro is + // run a second time into a scratch directory, purely as generator input. + // That costs a bundle on release builds and nothing on debug. + // + // --dev false is what makes the second bundle usable: it has to be minified + // the same way the shipped one is, or the class names the generator reads + // will not be the names the runtime computes at load. A @JavaProxy name is + // a string literal and survives minification either way; an unnamed class + // that fails to line up simply gets generated on the device, as it does in + // debug, so a mismatch costs startup time rather than correctness. + def sbgEnabled = !variant.buildType.debuggable && + !project.hasProperty("nsSkipStaticBindings") && + sbgGeneratorJar.exists() + + if (sbgEnabled) { + def sbgWorkDir = file("${buildDir}/nativescript/${variant.name}/sbg") + def sbgBundleDir = new File(sbgWorkDir, "bundle") + def sbgJavaDir = new File(sbgWorkDir, "java") + + def bindingsTask = tasks.register("generateNativeScriptBindings${variantName}", JavaExec) { + group = "nativescript" + description = "Pre-generates Java bindings for named NativeScript subclasses (${variant.name})." + + // The generator resolves jsparser and every one of its scratch + // files relative to the working directory, so it gets its own. + workingDir sbgWorkDir + mainClass = "-jar" + + inputs.files(fileTree(reactRoot) { + include "**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx" + exclude "**/node_modules/**", "**/android/**", "**/ios/**", "**/build/**" + }) + // The generator and its parser are inputs too. Without them a change + // to either leaves the task up to date against stale output, which + // reads exactly like the change having no effect. + inputs.file(sbgGeneratorJar) + inputs.files(fileTree(new File(toolsDir, "jsparser"))) + outputs.dir(sbgJavaDir) + + doFirst { + sbgWorkDir.mkdirs() + sbgBundleDir.deleteDir() + sbgBundleDir.mkdirs() + sbgJavaDir.deleteDir() + sbgJavaDir.mkdirs() + + // Plain JDK calls rather than project.copy / project.exec: + // Gradle no longer allows reaching into Project services while a + // task is executing. + def jsparserSource = new File(toolsDir, "jsparser").toPath() + def jsparserTarget = new File(sbgWorkDir, "jsparser").toPath() + java.nio.file.Files.walk(jsparserSource).forEach { source -> + def target = jsparserTarget.resolve(jsparserSource.relativize(source)) + if (java.nio.file.Files.isDirectory(source)) { + java.nio.file.Files.createDirectories(target) + } else { + java.nio.file.Files.createDirectories(target.getParent()) + java.nio.file.Files.copy(source, target, + java.nio.file.StandardCopyOption.REPLACE_EXISTING) + } + } + + // jsparser reads ts_helpers.js from a sibling of the input + // directory to learn the decorator names, so the copy that ships + // in the package is staged where it expects to find it. + def tsHelpersTarget = new File(sbgWorkDir, "internal/ts_helpers.js") + tsHelpersTarget.parentFile.mkdirs() + def tsHelpersSource = new File(nsPackageDir, + "src/main/assets/nativescript/internal/ts_helpers.js") + if (!tsHelpersSource.exists()) { + throw new GradleException("NativeScript: ${tsHelpersSource} is missing from the package.") + } + tsHelpersTarget.text = tsHelpersSource.text + + logger.lifecycle("NativeScript: bundling ${variant.name} JavaScript for binding generation") + + def bundleCmd = [nodeExecutable, reactCliFile, "bundle", + "--platform", "android", + "--dev", "false", + "--entry-file", nsEntryFile, + "--bundle-output", new File(sbgBundleDir, "index.android.bundle").absolutePath, + "--assets-dest", new File(sbgWorkDir, "assets").absolutePath] + + def bundleProcess = new ProcessBuilder(bundleCmd) + .directory(reactRoot) + .redirectErrorStream(true) + .start() + bundleProcess.inputStream.eachLine { logger.info(it) } + def bundleExit = bundleProcess.waitFor() + if (bundleExit != 0) { + throw new GradleException( + "NativeScript: bundling for binding generation failed (exit ${bundleExit}). " + + "Re-run with --info to see the bundler output, or pass " + + "-PnsSkipStaticBindings to build without pre-generated bindings.") + } + + def bundles = sbgBundleDir.listFiles()?.findAll { it.isFile() } ?: [] + if (bundles.isEmpty()) { + throw new GradleException("NativeScript: the bundler produced no output in ${sbgBundleDir}") + } + logger.lifecycle("NativeScript: scanning ${bundles.size()} bundle file(s) for named subclasses") + + new File(sbgWorkDir, "sbg-input-file.txt").text = "${sbgBundleDir.absolutePath}\n" + new File(sbgWorkDir, "sbg-output-file.txt").text = "${sbgJavaDir.absolutePath}\n" + + // Only jars that exist and actually open. Two kinds do not: + // + // - sibling library modules whose classes.jar is produced later + // in the build. Registering this task as a source generator + // puts it in front of javac, which is in front of those. + // - artifacts that are not really archives (soloader ships a + // runtime jar with no class entries). + // + // Either one aborts the generator with "Error while reading JAR + // entry" and takes the whole build down, so they are dropped and + // reported. The cost of dropping one is that a class extending + // something declared inside it is not pre-generated -- it still + // works, built on the device as in debug. + def usableJars = [] + def skippedJars = [] + resolveClasspathJars(variant).each { jar -> + if (!jar.name.endsWith(".jar")) return + if (!jar.isFile()) { + skippedJars.add("${jar.name} (not built yet)") + return + } + try { + new java.util.zip.ZipFile(jar).withCloseable { zip -> + if (zip.entries().findAll { it.name.endsWith(".class") }.isEmpty()) { + skippedJars.add("${jar.name} (no classes)") + } else { + usableJars.add(jar) + } + } + } catch (Exception e) { + skippedJars.add("${jar.name} (unreadable)") + } + } + + if (!skippedJars.isEmpty()) { + logger.lifecycle("NativeScript: skipping ${skippedJars.size()} classpath " + + "entr${skippedJars.size() == 1 ? 'y' : 'ies'} for binding generation: " + + skippedJars.join(", ")) + } + + new File(sbgWorkDir, "sbg-java-dependencies.txt").withWriter { out -> + usableJars.each { out.println it.absolutePath } + } + + // jsparser's Babel packages are dependencies of + // @nativescript/react-native, so they live in the app's + // node_modules rather than beside the copied tree. + environment "NODE_PATH", new File(reactRoot, "node_modules").absolutePath + + def params = [sbgGeneratorJar.absolutePath] + // The generated names must be derived the same way the runtime + // derives them; the guest runtime always uses content keys. + params.add("-content-keyed-bindings") + args params.toArray() + } + } + + // Registering the directory is what puts the generated Java in front of + // javac; it also makes javac depend on this task, which is why the + // bundling above has to be free of any dependency on compiled classes. + variant.registerJavaGeneratingTask(bindingsTask.get(), sbgJavaDir) + } + // Metadata describes the compiled classes, so it has to run after javac and // before the assets are merged into the APK. // Depend on the provider directly. Reaching into javaCompileProvider.configure @@ -225,4 +436,16 @@ android.applicationVariants.all { variant -> it.dependsOn(typingsTask) } } + + // Lint reads the asset source sets, which now include a generated directory. + // Gradle fails the build on an undeclared read of another task's output + // rather than risking a stale result, so the ordering is stated. Matched by + // name because the lint tasks vary between AGP versions and not all of them + // exist in every build. + tasks.matching { + it.name.startsWith("lint") || it.name.startsWith("generate${variantName}Lint") + }.configureEach { + it.mustRunAfter(metadataTask) + it.dependsOn(metadataTask) + } } diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 0ab73bbf6..a3b198dae 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -74,5 +74,11 @@ "NativeScriptNativeApi": "NativeScriptNativeApiModuleProvider" } } + }, + "dependencies": { + "@babel/parser": "^7.17.3", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "split": "^1.0.1" } } diff --git a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js index ca4c6bebc..23cd271fe 100644 --- a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js +++ b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js @@ -125,3 +125,34 @@ function fields(row) { } console.log("native-class visitor tests passed"); + +// Java types are reached through `global` in a React Native project, and the +// minifier renames that binding, so the prefix has to be dropped by shape +// rather than by matching a literal "global". +{ + const { unnamed } = parse(` + @NativeClass + class G extends global.java.util.ArrayList { size() { return 0; } } + `); + assert.strictEqual(fields(unnamed[0])[0], "java.util.ArrayList"); +} + +{ + const { unnamed } = parse(` + @NativeClass + class M extends g.java.util.ArrayList { size() { return 0; } } + `); + assert.strictEqual(fields(unnamed[0])[0], "java.util.ArrayList", + "a minified global binding must not end up in the class name"); +} + +// A name that already starts at its root is untouched. +{ + const { unnamed } = parse(` + @NativeClass + class C extends com.example.Widget { go() {} } + `); + assert.strictEqual(fields(unnamed[0])[0], "com.example.Widget"); +} + +console.log("global-prefix tests passed"); diff --git a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js index ef9c74752..7c5db05e1 100644 --- a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js +++ b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js @@ -431,7 +431,7 @@ var es5_visitors = (function () { foundInterface = false, interfaceNames = config.interfaceNames; - var currentInterface = interfaceArr.reverse().join("."); + var currentInterface = _stripNonJavaPrefix(interfaceArr.reverse().join(".")); for (var i in interfaceNames) { var interfaceName = interfaceNames[i].trim(); if (interfaceName === currentInterface) { @@ -515,7 +515,9 @@ var es5_visitors = (function () { return; } - var extendClass = _getWholeName(node.superClass).reverse().join("."); + var extendClass = _stripNonJavaPrefix( + _getWholeName(node.superClass).reverse().join(".") + ); if (!extendClass || extendClass.indexOf(".") === -1) { return; } @@ -621,6 +623,46 @@ var es5_visitors = (function () { normalExtendsArr.push(lineToWrite); } + /* + * Drops whatever the code used to reach the Java namespace. + * + * Java types are usually written `global.java.util.ArrayList` outside of + * NativeScript's own tooling, because `java` is not a declared global in a + * React Native project. The runtime resolves that to java/util/ArrayList, + * and so must this: left alone, the base class reads as + * `global.java.util.ArrayList`, and after minification as `g.java.util. + * ArrayList`, neither of which names a class the generator can load. + * + * The first segment that looks like a Java root wins. A name already + * starting at its root is returned untouched. + */ + var JAVA_ROOT_PACKAGES = [ + "java", + "javax", + "android", + "androidx", + "dalvik", + "kotlin", + "com", + "org", + "net", + ]; + + function _stripNonJavaPrefix(dottedName) { + if (!dottedName) { + return dottedName; + } + + var segments = dottedName.split("."); + for (var i = 0; i < segments.length; i++) { + if (JAVA_ROOT_PACKAGES.indexOf(segments[i]) !== -1) { + return segments.slice(i).join("."); + } + } + + return dottedName; + } + /* * The names a class body puts on the prototype, which is the object the * runtime is handed as the implementation. @@ -795,7 +837,7 @@ var es5_visitors = (function () { var classNameFromDecorator = isCorrectExtendClassName ? className : ""; lineToWrite = _generateLineToWrite( classNameFromDecorator, - extendClass.reverse().join("."), + _stripNonJavaPrefix(extendClass.reverse().join(".")), overriddenMethodNames, "", config.fullPathName, @@ -826,7 +868,7 @@ var es5_visitors = (function () { }; lineToWrite = _generateLineToWrite( isCorrectExtendClassName ? className : "", - extendClass.reverse().join("."), + _stripNonJavaPrefix(extendClass.reverse().join(".")), overriddenMethodNames, extendInfo, "", @@ -1216,7 +1258,7 @@ var es5_visitors = (function () { extClassArr = _getWholeName(o); - return extClassArr.reverse().join("."); + return _stripNonJavaPrefix(extClassArr.reverse().join(".")); } function _getDecoratorArgument(path, config, customDecoratorName) { diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Main.java b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Main.java index c4b96d920..bcf63ff3c 100644 --- a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Main.java +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/Main.java @@ -230,7 +230,26 @@ private static boolean isWorkerScript(String currFile) { return false; } + /* + * Bundler output is not always named ".js". Metro writes + * index.android.bundle, and a RAM bundle scatters further files beside it; + * a webpack build writes plain .js. All of them are JavaScript and all of + * them can declare a class that needs a binding, so the extension is + * treated as a hint rather than a gate. The parser confirms what each file + * actually is. + * + * The old form also indexed blindly three characters from the end, which + * threw on any name shorter than that. + */ + private static final String[] JS_FILE_EXTENSIONS = + new String[]{".js", ".mjs", ".cjs", ".bundle", ".jsbundle"}; + private static boolean isJsFile(String fileName) { - return fileName.substring(fileName.length() - 3).equals(".js"); + for (String extension : JS_FILE_EXTENSIONS) { + if (fileName.endsWith(extension)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/platforms/android/test/react-native/App.tsx b/platforms/android/test/react-native/App.tsx index f9485626e..f19805af7 100644 --- a/platforms/android/test/react-native/App.tsx +++ b/platforms/android/test/react-native/App.tsx @@ -11,7 +11,7 @@ import React from 'react'; import {SafeAreaView, Text, ScrollView} from 'react-native'; import NativeScriptNativeApi from '@nativescript/react-native/src/NativeScriptNativeApi'; -import {NativeClass} from '@nativescript/react-native/src/NativeClass'; +import {NativeClass, JavaProxy} from '@nativescript/react-native/src/NativeClass'; declare const global: any; @@ -144,10 +144,37 @@ try { : `only ${names.join(',')}`; }); - // @JavaProxy('com.example.X') is deliberately not exercised here: a - // fully-qualified name makes the runtime *look up* a pre-generated class - // rather than dex one on the device, so it only resolves once the static - // binding generator has emitted it at build time. + // A fully-qualified name makes the runtime *look up* a pre-generated class + // instead of building one on the device, so this only passes in a release + // build, where the static binding generator has run. In debug it is expected + // to report LookedUpClassNotFound, which is why the check is explicit about + // which build it is looking at rather than simply failing. + record('@JavaProxy resolves a pre-generated class', () => { + try { + const Ticker = JavaProxy('com.example.nsrn.Ticker')( + class Ticker extends global.java.lang.Object { + toString() { + return 'ticked'; + } + }, + ); + + const instance = new Ticker(); + const name = String(instance.getClass().getName()); + if (name !== 'com.example.nsrn.Ticker') { + return `wrong class ${name}`; + } + + // Round-trip through Java so this cannot pass on the JS override alone. + return String(new global.java.lang.StringBuilder().append(instance).toString()); + } catch (e: any) { + const message = String(e && e.message ? e.message : e); + if (message.indexOf('LookedUpClassNotFound') >= 0) { + return __DEV__ ? 'skipped (debug: no build-time generator)' : `FAIL ${message}`; + } + return `FAIL ${message}`; + } + }); record('Comparator drives a real Java sort', () => { const list = new global.java.util.ArrayList(); diff --git a/scripts/build_react_native_android_tools.sh b/scripts/build_react_native_android_tools.sh index eda9bb99a..826b98a04 100755 --- a/scripts/build_react_native_android_tools.sh +++ b/scripts/build_react_native_android_tools.sh @@ -5,9 +5,16 @@ # android-metadata-generator.jar -- describes the app's classpath so JS can # resolve android.* and java.* # dts-generator.jar -- TypeScript declarations for the same +# static-binding-generator.jar -- pre-generates the Java classes that named +# (@JavaProxy) subclasses resolve to # -# Both are plain JVM tools with no NDK involvement, so unlike the runtime itself +# All are plain JVM tools with no NDK involvement, so unlike the runtime itself # they can be prebuilt and shipped: there is no jsi ABI to track. +# +# The binding generator additionally shells out to jsparser, which it looks for +# under its own working directory, so that tree is staged beside the jars. Its +# Babel dependencies are declared in the package's package.json rather than +# vendored, so they resolve from the app's node_modules. set -euo pipefail source "$(dirname "$0")/build_utils.sh" @@ -18,7 +25,8 @@ checkpoint "Building the NativeScript Android build tools..." ( cd "$TEST_APP_DIR" - ./gradlew --quiet :android-metadata-generator:jar :dts-generator:jar + ./gradlew --quiet :android-metadata-generator:jar :dts-generator:jar \ + :static-binding-generator:jar ) mkdir -p "$TOOLS_DIR" @@ -27,14 +35,29 @@ MDG_JAR=$(find "$TEST_APP_DIR/build-tools/android-metadata-generator/build/libs" -name "*.jar" ! -name "*-sources.jar" | head -1) DTS_JAR=$(find "$TEST_APP_DIR/build-tools/android-dts-generator/dts-generator/build/libs" \ -name "*.jar" ! -name "*-sources.jar" | head -1) +SBG_JAR=$(find "$TEST_APP_DIR/build-tools/static-binding-generator/build/libs" \ + -name "*.jar" ! -name "*-sources.jar" | head -1) -if [ -z "$MDG_JAR" ] || [ -z "$DTS_JAR" ]; then +if [ -z "$MDG_JAR" ] || [ -z "$DTS_JAR" ] || [ -z "$SBG_JAR" ]; then echo "Could not find the built tool jars." >&2 exit 1 fi cp "$MDG_JAR" "$TOOLS_DIR/android-metadata-generator.jar" cp "$DTS_JAR" "$TOOLS_DIR/dts-generator.jar" +cp "$SBG_JAR" "$TOOLS_DIR/static-binding-generator.jar" + +# The binding generator resolves jsparser relative to its working directory, so +# the tree ships with it. node_modules is deliberately excluded -- the Babel +# packages are dependencies of @nativescript/react-native and resolve from the +# app's own node_modules at run time. +rm -rf "$TOOLS_DIR/jsparser" +mkdir -p "$TOOLS_DIR/jsparser" +( + cd "$TEST_APP_DIR/build-tools/jsparser" + tar cf - --exclude node_modules --exclude tests --exclude test-results \ + --exclude package-lock.json . +) | (cd "$TOOLS_DIR/jsparser" && tar xf -) checkpoint "Staged:" ls -la "$TOOLS_DIR" From 82a69bcad29b9ad535c39004abf185cb825bf6e1 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 17:51:02 +0500 Subject: [PATCH 15/98] fix(test): count a self-reported FAIL result as a failure in the RN fixture (cherry picked from commit 3e9d5c5a0a44f45e0c18f8c172b6fe2c74279e23) --- platforms/android/test/react-native/App.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/platforms/android/test/react-native/App.tsx b/platforms/android/test/react-native/App.tsx index f19805af7..cc549cf70 100644 --- a/platforms/android/test/react-native/App.tsx +++ b/platforms/android/test/react-native/App.tsx @@ -21,8 +21,14 @@ const lines: string[] = []; function record(label: string, fn: () => unknown) { try { const value = fn(); - lines.push(`${label} = ${String(value)}`); - console.log(`${MARK} PASS ${label} = ${String(value)}`); + const text = String(value); + // A check that catches its own error and returns a description of it is + // still a failed check. Reporting on "did it throw" alone marked a + // "FAIL ...LookedUpClassNotFound" result as PASS, which is the one thing a + // test harness must never do. + const failed = text.startsWith('FAIL'); + lines.push(`${label} = ${text}`); + console.log(`${MARK} ${failed ? 'FAIL' : 'PASS'} ${label} = ${text}`); } catch (e: any) { lines.push(`${label} THREW ${e && e.message}`); console.log(`${MARK} FAIL ${label} :: ${e && e.message}`); From e05f58acff36fca7dc73eee4b210774344f62b99 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 18:01:41 +0500 Subject: [PATCH 16/98] feat(jsparser): recognise decorators applied as calls, not just syntax (cherry picked from commit c104203bb20a763f6063242a892730940988a7ce) --- packages/react-native/README.md | 19 +++++-- .../tests/native-class-visitor.test.js | 55 +++++++++++++++++++ .../jsparser/visitors/es5-visitors.js | 50 ++++++++++++++++- 3 files changed, 116 insertions(+), 8 deletions(-) diff --git a/packages/react-native/README.md b/packages/react-native/README.md index f21ff8e7d..b9bbf1c7e 100644 --- a/packages/react-native/README.md +++ b/packages/react-native/README.md @@ -721,11 +721,20 @@ at build time. The runtime then *looks the class up* rather than generating it, which means a named class only resolves once the static binding generator has emitted it — see the note below. -> **Release builds only.** The static binding generator reads the bundle, so it -> needs one on disk. In debug, Metro serves the bundle over HTTP and there is -> nothing to scan; unnamed `@NativeClass()` classes are generated on the device -> and work as usual, but `@JavaProxy` names do not resolve until you build a -> release bundle. +> **`@JavaProxy` does not resolve yet.** The generator runs on release builds +> and does pre-generate classes for `.extend(...)` subclasses, but not yet for +> ones written with `class` syntax. +> +> React Native's Babel preset rewrites `class X extends Y {}` into a function +> plus a helper call, and the helper is an anonymous import — there is no class +> left in the bundle for the generator to recognise. The preset keeps classes +> under the `hermes-stable` transform profile, so the fix is to bundle the +> generator's input with that profile; wiring it through Metro is the open +> piece. +> +> Until then: unnamed `@NativeClass()` classes are generated on the device and +> work in both debug and release. `@JavaProxy` raises +> `LookedUpClassNotFound`. If you would rather not use decorators, the runtime API is always available and needs nothing from the bundler: diff --git a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js index 23cd271fe..5687ba344 100644 --- a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js +++ b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js @@ -156,3 +156,58 @@ console.log("native-class visitor tests passed"); } console.log("global-prefix tests passed"); + +// The call form. A project without the Babel decorator plugin writes this, and +// it must produce exactly what the decorator form produces. +{ + const { named } = parse(` + const Ticker = JavaProxy('com.example.nsrn.Ticker')( + class Ticker extends global.java.lang.Object { + toString() { return 'ticked'; } + } + ); + `); + assert.strictEqual(named.length, 1, "JavaProxy(...)(class) must emit a binding"); + const f = fields(named[0]); + assert.strictEqual(f[0], "java.lang.Object"); + assert.strictEqual(f[5], "toString"); + assert.strictEqual(f[6], "com.example.nsrn.Ticker"); +} + +// Bare call form, no arguments. +{ + const { unnamed } = parse(` + const L = NativeClass(class MyList extends global.java.util.ArrayList { + size() { return 0; } + }); + `); + assert.strictEqual(unnamed.length, 1); + assert.strictEqual(fields(unnamed[0])[0], "java.util.ArrayList"); + assert.strictEqual(fields(unnamed[0])[4], "MyList"); +} + +// Nested call form: both wrappers have to be seen. +{ + const { named } = parse(` + const B = JavaProxy('com.example.Both')( + Interfaces([java.lang.Runnable, java.util.concurrent.Callable])( + class Both extends global.java.lang.Object { run() {} call() {} } + ) + ); + `); + assert.strictEqual(named.length, 1); + const f = fields(named[0]); + assert.strictEqual(f[6], "com.example.Both"); + assert.strictEqual(f[8], "java.lang.Runnable,java.util.concurrent.Callable"); +} + +// An ordinary call taking a class must not be mistaken for a decorator. +{ + const { named, unnamed } = parse(` + const x = describe(class Plain extends global.java.lang.Object { run() {} }); + `); + assert.strictEqual(named.length, 0); + assert.strictEqual(unnamed.length, 0); +} + +console.log("call-form decorator tests passed"); diff --git a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js index 7c5db05e1..83e7ca4bd 100644 --- a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js +++ b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js @@ -507,7 +507,8 @@ var es5_visitors = (function () { function traverseNativeClassDeclaration(path, config) { var node = path.node; - if (!node.decorators || node.decorators.length === 0) { + var appliedDecorators = _collectAppliedDecorators(path); + if (appliedDecorators.length === 0) { return; } @@ -531,8 +532,8 @@ var es5_visitors = (function () { var isNativeClass = false; var implementedInterfaces = []; - for (var i = 0; i < node.decorators.length; i++) { - var expression = node.decorators[i].expression; + for (var i = 0; i < appliedDecorators.length; i++) { + var expression = appliedDecorators[i]; var isCall = types.isCallExpression(expression); var name = isCall ? expression.callee && expression.callee.name @@ -623,6 +624,49 @@ var es5_visitors = (function () { normalExtendsArr.push(lineToWrite); } + /* + * Every decorator applied to a class, however it was spelled. + * + * `@NativeClass class X {}` keeps its decorators on the class node, but a + * decorator is only syntax: a project without the Babel plugin writes the + * same thing as a call, `NativeClass(class X {})`, and so does any bundler + * that downlevels decorators it cannot emit. Both forms reach the runtime + * identically, so both have to be recognised here or a class is silently + * left without a binding. + * + * The call form nests, `JavaProxy("a.b.C")(Interfaces([...])(class X {}))`, + * so the chain is walked while the class is still the first argument. + * + * What gets collected is the callee, which lands on the same shapes the + * decorator form produces: an Identifier for a bare decorator, a + * CallExpression for one with arguments. + */ + function _collectAppliedDecorators(path) { + var expressions = []; + var node = path.node; + + if (node.decorators) { + for (var i = 0; i < node.decorators.length; i++) { + expressions.push(node.decorators[i].expression); + } + } + + var current = path; + var parent = current.parentPath; + while ( + parent && + types.isCallExpression(parent.node) && + parent.node.arguments.length > 0 && + parent.node.arguments[0] === current.node + ) { + expressions.push(parent.node.callee); + current = parent; + parent = current.parentPath; + } + + return expressions; + } + /* * Drops whatever the code used to reach the Java namespace. * From 50dc47120e4e75fd17555773ba91dfa578499a67 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 18:18:41 +0500 Subject: [PATCH 17/98] feat(react-native): resolve JavaProxy classes from the release bundle (cherry picked from commit 0bf91af89b677c7bc0672a6141c61436e3a2c1ad) --- packages/react-native/README.md | 20 +++------- .../react-native/android/nativescript.gradle | 14 +++++++ .../tests/native-class-visitor.test.js | 28 +++++++++++++ .../jsparser/visitors/es5-visitors.js | 40 +++++++++++++++++-- 4 files changed, 85 insertions(+), 17 deletions(-) diff --git a/packages/react-native/README.md b/packages/react-native/README.md index b9bbf1c7e..da378282d 100644 --- a/packages/react-native/README.md +++ b/packages/react-native/README.md @@ -721,20 +721,12 @@ at build time. The runtime then *looks the class up* rather than generating it, which means a named class only resolves once the static binding generator has emitted it — see the note below. -> **`@JavaProxy` does not resolve yet.** The generator runs on release builds -> and does pre-generate classes for `.extend(...)` subclasses, but not yet for -> ones written with `class` syntax. -> -> React Native's Babel preset rewrites `class X extends Y {}` into a function -> plus a helper call, and the helper is an anonymous import — there is no class -> left in the bundle for the generator to recognise. The preset keeps classes -> under the `hermes-stable` transform profile, so the fix is to bundle the -> generator's input with that profile; wiring it through Metro is the open -> piece. -> -> Until then: unnamed `@NativeClass()` classes are generated on the device and -> work in both debug and release. `@JavaProxy` raises -> `LookedUpClassNotFound`. +> **Release builds only.** The generator reads a bundle, so it needs one on +> disk. On a release build the Gradle script bundles your JavaScript a second +> time -- separately from the one that ships, and with classes preserved -- and +> pre-generates the Java from that. In debug there is no bundle to read: Metro +> serves it over HTTP. Unnamed `@NativeClass()` classes are generated on the +> device and work in both, but `@JavaProxy` names resolve only in release. If you would rather not use decorators, the runtime API is always available and needs nothing from the bundler: diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 377e6c79a..653c8f86c 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -330,9 +330,23 @@ android.applicationVariants.all { variant -> logger.lifecycle("NativeScript: bundling ${variant.name} JavaScript for binding generation") + // --unstable-transform-profile is what keeps `class X extends Y {}` + // in the output. React Native's Babel preset downlevels classes + // into a function plus an anonymous helper call unless this is + // set (preserveClasses = isHermesV1 in the preset), and a + // downlevelled class is not something any static analysis can + // recognise as a subclass. + // + // It only affects this bundle. The one that ships is built by + // React Native's own task and is untouched -- and the runtime + // handles the downlevelled form there perfectly well. + // + // The value is "hermes-stable"; the CLI's own help text still + // says "hermes", which the preset does not match. def bundleCmd = [nodeExecutable, reactCliFile, "bundle", "--platform", "android", "--dev", "false", + "--unstable-transform-profile", "hermes-stable", "--entry-file", nsEntryFile, "--bundle-output", new File(sbgBundleDir, "index.android.bundle").absolutePath, "--assets-dest", new File(sbgWorkDir, "assets").absolutePath] diff --git a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js index 5687ba344..2e39230a5 100644 --- a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js +++ b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js @@ -211,3 +211,31 @@ console.log("global-prefix tests passed"); } console.log("call-form decorator tests passed"); + +// The shape a bundler actually emits for an imported decorator. This is the +// form that reaches the generator in a real Metro build. +{ + const { named } = parse(` + var Ticker = (0, _$$_REQUIRE(_dependencyMap[5]).JavaProxy)('com.example.nsrn.Ticker')( + class Ticker extends global.java.lang.Object { + toString() { return 'ticked'; } + } + ); + `); + assert.strictEqual(named.length, 1, "a bundled JavaProxy import must be recognised"); + const f = fields(named[0]); + assert.strictEqual(f[0], "java.lang.Object"); + assert.strictEqual(f[5], "toString"); + assert.strictEqual(f[6], "com.example.nsrn.Ticker"); +} + +// Namespace-imported form. +{ + const { unnamed } = parse(` + var L = ns.NativeClass(class MyList extends global.java.util.ArrayList { size() {} }); + `); + assert.strictEqual(unnamed.length, 1); + assert.strictEqual(fields(unnamed[0])[4], "MyList"); +} + +console.log("bundled-import decorator tests passed"); diff --git a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js index 83e7ca4bd..3c7495712 100644 --- a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js +++ b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js @@ -535,9 +535,7 @@ var es5_visitors = (function () { for (var i = 0; i < appliedDecorators.length; i++) { var expression = appliedDecorators[i]; var isCall = types.isCallExpression(expression); - var name = isCall - ? expression.callee && expression.callee.name - : expression.name; + var name = _decoratorName(isCall ? expression.callee : expression); if (!name) { continue; @@ -624,6 +622,42 @@ var es5_visitors = (function () { normalExtendsArr.push(lineToWrite); } + /* + * The name of the decorator being applied, through whatever the module + * system wrapped it in. + * + * In source it is a bare `JavaProxy`. Once bundled, the same import reads as + * `(0, _$$_REQUIRE(_dependencyMap[5]).JavaProxy)` -- a sequence whose last + * element is a member expression -- and other bundlers produce + * `ns.JavaProxy` or a further call. Only the trailing property name is + * stable across all of them, and it is the one thing minification leaves + * alone, since renaming a property would break the import. + */ + function _decoratorName(node) { + if (!node) { + return undefined; + } + + if (types.isIdentifier(node)) { + return node.name; + } + + if (types.isMemberExpression(node)) { + return node.property && node.property.name; + } + + if (types.isSequenceExpression(node)) { + // `(0, x)` -- the comma operator's value is its last element. + return _decoratorName(node.expressions[node.expressions.length - 1]); + } + + if (types.isCallExpression(node)) { + return _decoratorName(node.callee); + } + + return undefined; + } + /* * Every decorator applied to a class, however it was spelled. * From bcad62581d06310df521a64a84ce8f8ab908ec77 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 20:07:27 +0500 Subject: [PATCH 18/98] perf(react-native): drop standalone-only runtime modules from the guest build (cherry picked from commit 868a85fe508a4275dccb1b8c596b6fbdfced3ba8) --- .../jsi/callbackhandlers/CallbackHandlers.cpp | 11 +++++ .../jsi/callbackhandlers/CallbackHandlers.h | 3 ++ .../ffi/jni/jsi/metadata/MetadataNode.cpp | 4 ++ NativeScript/runtime/android/jsi/Runtime.cpp | 47 +++++++++++++++++-- NativeScript/runtime/android/jsi/Runtime.h | 14 ++++++ .../runtime/android/jsi/com_tns_Runtime.cpp | 15 ++++++ packages/react-native/android/CMakeLists.txt | 34 ++++++++++++-- scripts/build_react_native_android.sh | 22 +++++++++ 8 files changed, 141 insertions(+), 9 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp index 1404d302c..f2e91513f 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp @@ -19,8 +19,12 @@ #include "ArgConverter.h" #include "JsArgConverter.h" #include "GlobalHelpers.h" +#if !defined(NS_JSI_HOST_RUNTIME) #include "ModuleInternal.h" +#endif +#if !defined(NS_JSI_HOST_RUNTIME) #include "WorkerWrapper.h" +#endif #include #ifdef USE_MIMALLOC @@ -1308,6 +1312,11 @@ void CallbackHandlers::RemoveEnvEntries(JsRuntime &rt) { } // Worker +// +// A Worker gets its own VM, which a guest cannot build -- the runtime it is +// attached to belongs to the embedder. Excluded from the guest build along with +// WorkerWrapper itself; React Native has its own answer for background work. +#if !defined(NS_JSI_HOST_RUNTIME) JsValue CallbackHandlers::NewThreadCallback(JsRuntime &rt, const JsValue &thisVal, const JsValue *args, size_t argc) { @@ -1677,6 +1686,8 @@ void CallbackHandlers::CallWorkerScopeOnErrorHandle(JsRuntime &rt, const JsError nsEx.ReThrowToJs(rt); } } +#endif + robin_hood::unordered_map CallbackHandlers::cache_; robin_hood::unordered_map CallbackHandlers::jclass_to_runtimeId_cache; diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h index 5220f5164..173119af9 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h @@ -147,6 +147,8 @@ namespace tns { static JsValue FindClass(JsRuntime &rt, const char *name); +// Worker. Not built for a guest -- see the definitions in CallbackHandlers.cpp. +#if !defined(NS_JSI_HOST_RUNTIME) static JsValue NewThreadCallback(JsRuntime &rt, const JsValue &thisVal, const JsValue *args, size_t argc); @@ -188,6 +190,7 @@ namespace tns { * napi version received) is JSError::value(). */ static void CallWorkerScopeOnErrorHandle(JsRuntime &rt, const JsError &error); +#endif static JsValue PostFrameCallback(JsRuntime &rt, const JsValue &thisVal, const JsValue *args, size_t argc); diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 068f3e062..41bced181 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -16,7 +16,11 @@ #include "FieldCallbackData.h" #include "MetadataBuilder.h" #include "ArgsWrapper.h" +// Only referenced from the module-prologue column adjustment below, which is +// itself standalone-only -- a guest has no module wrapper to undo. +#if !defined(NS_JSI_HOST_RUNTIME) #include "ModuleInternal.h" +#endif #include "Util.h" #include "GlobalHelpers.h" #include "JSONObjectHelper.h" diff --git a/NativeScript/runtime/android/jsi/Runtime.cpp b/NativeScript/runtime/android/jsi/Runtime.cpp index 6a48a54dc..58e9be3f0 100644 --- a/NativeScript/runtime/android/jsi/Runtime.cpp +++ b/NativeScript/runtime/android/jsi/Runtime.cpp @@ -21,19 +21,27 @@ #include "NativeScriptAssert.h" #include "CallbackHandlers.h" #include "MetadataNode.h" -#include "Console.h" #include "Util.h" -#include "Performance.h" #include "JsArgToArrayConverter.h" #include "ArrayHelper.h" -#include "SimpleProfiler.h" -#include "ManualInstrumentation.h" #include "GlobalHelpers.h" -#include "Timers.h" #include "AndroidRuntimeModules.h" +// The main-thread task queue, not a worker facility: this is how a Java +// callback arriving on another thread gets back onto the JS thread. #include "LooperTasks.h" +// Everything below belongs to the standalone runtime only. Excluded from the +// guest build so it is not compiled into an app that can never reach it -- see +// the source filters in packages/react-native/android/CMakeLists.txt. +#if !defined(NS_JSI_HOST_RUNTIME) +#include "Console.h" +#include "Performance.h" +#include "SimpleProfiler.h" +#include "ManualInstrumentation.h" +#include "Timers.h" +#endif + using namespace tns; using namespace std; @@ -278,11 +286,13 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin // Newer JSC ships a native `WeakRef` global, so the old polyfill (which was // actually a strong reference and leaked) is no longer needed. +#if !defined(NS_JSI_HOST_RUNTIME) if (!guest) { Console::createConsole(rt, maxLogcatObjectSize, forceLog); Timers::InitStatic(rt, global); } +#endif // Bound to this (runtime) thread's Looper; drains deferred finalizers posted // via Runtime::PostFinalizer at a safe point off the GC sweep. @@ -346,7 +356,9 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin return engine::Value::undefined(); }); +#if !defined(NS_JSI_HOST_RUNTIME) SimpleProfiler::Init(rt, global); +#endif CallbackHandlers::CreateGlobalCastFunctions(rt); @@ -358,9 +370,11 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin m_objectManager->Init(rt); +#if !defined(NS_JSI_HOST_RUNTIME) if (!guest) { m_module.Init(rt, callingDir); } +#endif if (!s_mainThreadInitialized) { m_isMainThread = true; @@ -393,9 +407,14 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin * Emulate a `WorkerGlobalScope` * Attach 'postMessage', 'close' to the global object of every non-main * (worker) env. + * + * A guest is only ever attached to the embedder's runtime, which is a + * main-thread runtime by construction, so this branch is unreachable + * there and the worker callbacks it needs are not built. */ else { m_isMainThread = false; +#if !defined(NS_JSI_HOST_RUNTIME) engine_util::SetFunction(rt, global, "postMessage", CallbackHandlers::WorkerGlobalPostMessageCallback); engine_util::SetFunction(rt, global, "close", @@ -403,6 +422,7 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin engine_util::SetFunction(rt, global, "terminate", CallbackHandlers::WorkerGlobalCloseCallback); global.setProperty(rt, "__ns__worker", true); +#endif } /* @@ -411,6 +431,7 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin */ // A worker gets its own VM, which a guest has no way to build -- and React // Native ships its own Worker story anyway. +#if !defined(NS_JSI_HOST_RUNTIME) if (!guest) { engine::Function worker = engine::Function::createFromHostConstructor( rt, engine::PropNameID::forAscii(rt, "Worker"), 0, @@ -422,6 +443,7 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin CallbackHandlers::WorkerObjectTerminateCallback); global.setProperty(rt, "Worker", worker); } +#endif // The napi runtime installs `global` (and `self`) as accessors returning the // current global object. nativescript::engine has no accessor API, and a @@ -443,11 +465,13 @@ void Runtime::InitCommon(const std::string &filesRoot, const std::string &callin ArrayHelper::Init(rt); +#if !defined(NS_JSI_HOST_RUNTIME) if (!guest) { Performance::createPerformance(rt, global); engine_util::SetFunction(rt, global, "queueMicrotask", QueueMicrotaskCallback, 1); } +#endif m_arrayBufferHelper.CreateConvertFunctions(rt, global, m_objectManager); @@ -536,12 +560,14 @@ void Runtime::DestroyRuntime() { this->js_method_cache->cleanupCache(); delete this->js_method_cache; this->js_method_cache = nullptr; +#if !defined(NS_JSI_HOST_RUNTIME) this->m_module.DeInit(); Console::onDisposeRuntime(rt); // The napi version tears the timers down from a finalizer on the global // object; there is no equivalent here, so it is driven from the same place // as every other per-runtime teardown. Timers::onDisposeRuntime(rt); +#endif CallbackHandlers::RemoveEnvEntries(rt); this->m_objectManager->OnDisposeRuntime(); // Release the finalizer handler and flush any still-queued cleanup while the @@ -614,6 +640,10 @@ bool Runtime::TryCallGC() { return success; } +// Module loading, workers, and the worker->main exception hop are all the +// standalone runtime's. A guest never evaluates a file: the embedder's bundler +// does, and it hands the runtime an already-running VM. +#if !defined(NS_JSI_HOST_RUNTIME) void Runtime::RunModule(JNIEnv *_jEnv, jobject obj, jstring scriptFile) { JEnv jEnv(_jEnv); string filePath = ArgConverter::jstringToString(scriptFile); @@ -668,6 +698,8 @@ jobject Runtime::RunScript(JNIEnv *_env, jobject obj, jstring scriptFile) { return nullptr; } +#endif + engine::Runtime &Runtime::GetJSRuntime() { return engineHost->GetRuntime(); @@ -820,6 +852,7 @@ Runtime::PassExceptionToJsNative(JNIEnv *jEnv, jobject obj, jthrowable exception NativeScriptException::CallJsFuncWithErr(rt, engine::Value(rt, errObj), isDiscarded); } +#if !defined(NS_JSI_HOST_RUNTIME) void Runtime::PassUncaughtExceptionFromWorkerToMainHandler(const engine::Value &message, const engine::Value &stackTrace, @@ -843,13 +876,17 @@ Runtime::PassUncaughtExceptionFromWorkerToMainHandler(const engine::Value &messa jEnv.CallStaticVoidMethod(runtimeClass, mId, (jstring) jMsgLocal, (jstring) jfileNameLocal, (jstring) stTrace, (jint) lineno); } +#endif + +#if !defined(NS_JSI_HOST_RUNTIME) void Runtime::SetManualInstrumentationMode(jstring mode) { auto modeStr = ArgConverter::jstringToString(mode); if (modeStr == "timeline") { tns::instrumentation::Frame::enable(); } } +#endif void Runtime::Lock() { #ifdef APPLICATION_IN_DEBUG diff --git a/NativeScript/runtime/android/jsi/Runtime.h b/NativeScript/runtime/android/jsi/Runtime.h index 8fbb41b1e..3b41c83a4 100644 --- a/NativeScript/runtime/android/jsi/Runtime.h +++ b/NativeScript/runtime/android/jsi/Runtime.h @@ -9,7 +9,13 @@ #include "FinalizerQueue.h" #include #include "robin_hood.h" +// The guest has no module loader: the embedder's bundler owns module +// resolution, and require() never reaches this runtime. Excluded from the guest +// build entirely rather than merely left uninitialised, so the code does not +// ship in an app that cannot call it. +#if !defined(NS_JSI_HOST_RUNTIME) #include "ModuleInternal.h" +#endif #include #include "ObjectManager.h" #include "ArrayBufferHelper.h" @@ -94,11 +100,15 @@ namespace tns { void RunModule(const char *moduleName); +#if !defined(NS_JSI_HOST_RUNTIME) void RunWorker(const std::string &filePath); +#endif // Tears down a worker's Runtime (engine scope + engine state release) and // deletes it. Called from the native worker thread during shutdown. +#if !defined(NS_JSI_HOST_RUNTIME) static void DisposeWorkerRuntime(Runtime *runtime); +#endif jobject RunScript(JNIEnv *_env, jobject obj, jstring scriptFile); @@ -164,10 +174,12 @@ namespace tns { jstring fullStackTrace, jstring jsStackTrace, jboolean isDiscarded, jboolean isPendingError); +#if !defined(NS_JSI_HOST_RUNTIME) void PassUncaughtExceptionFromWorkerToMainHandler(const engine::Value &message, const engine::Value &stackTrace, const engine::Value &filename, int lineno); +#endif void AdjustAmountOfExternalAllocatedMemory(); @@ -204,7 +216,9 @@ namespace tns { bool m_isMainThread; +#if !defined(NS_JSI_HOST_RUNTIME) ModuleInternal m_module; +#endif std::shared_ptr m_looperTasks; diff --git a/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp b/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp index 902e935e0..20ab03d8f 100644 --- a/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp +++ b/NativeScript/runtime/android/jsi/com_tns_Runtime.cpp @@ -80,7 +80,13 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) { // @FastNative ABI: standard JNI signature (registered via RegisterNatives). static void setManualInstrumentationModeFast_impl(JNIEnv* env, jclass clazz, jstring mode) { try { +#if !defined(NS_JSI_HOST_RUNTIME) Runtime::SetManualInstrumentationMode(mode); +#else + // Timeline instrumentation is standalone-runtime tooling; the guest does + // not build it. The symbol stays because RegisterNatives binds it. + (void) mode; +#endif } catch (...) { NativeScriptException nsEx(std::string("Error: c++ exception!")); nsEx.ReThrowToJava(nullptr); @@ -134,6 +140,10 @@ Runtime* TryGetRuntime(int runtimeId) { return runtime; } +// Bound by name rather than registered, so a guest simply does not export +// it: nothing on the Java side calls runModule or runScript, because the +// embedder's bundler owns module loading. +#if !defined(NS_JSI_HOST_RUNTIME) extern "C" JNIEXPORT void Java_com_tns_Runtime_runModule(JNIEnv* _env, jobject obj, jint runtimeId, jstring scriptFile) { auto runtime = TryGetRuntime(runtimeId); if (runtime == nullptr) { @@ -156,7 +166,10 @@ extern "C" JNIEXPORT void Java_com_tns_Runtime_runModule(JNIEnv* _env, jobject o nsEx.ReThrowToJava(&runtime->GetJSRuntime()); } } +#endif + +#if !defined(NS_JSI_HOST_RUNTIME) extern "C" JNIEXPORT jobject Java_com_tns_Runtime_runScript(JNIEnv* _env, jobject obj, jint runtimeId, jstring scriptFile) { jobject result = nullptr; @@ -181,6 +194,8 @@ extern "C" JNIEXPORT jobject Java_com_tns_Runtime_runScript(JNIEnv* _env, jobjec return result; } +#endif + extern "C" JNIEXPORT jobject Java_com_tns_Runtime_callJSMethodNative(JNIEnv* _env, jobject obj, jint runtimeId, jint javaObjectID, jclass claz, jstring methodName,jint retType, jboolean isConstructor, jobjectArray packagedArgs) { jobject result = nullptr; diff --git a/packages/react-native/android/CMakeLists.txt b/packages/react-native/android/CMakeLists.txt index 694ebd80c..37d178984 100644 --- a/packages/react-native/android/CMakeLists.txt +++ b/packages/react-native/android/CMakeLists.txt @@ -68,11 +68,37 @@ file(GLOB_RECURSE RUNTIME_SOURCES "${NS_ANDROID_RUNTIME_DIR}/*.cpp") file(GLOB_RECURSE JNI_SOURCES "${NS_JNI_DIR}/*.cpp") list(FILTER JNI_SOURCES EXCLUDE REGEX "_test\\.cpp$") -# The asset extractor unpacks a standalone app's app/ directory out of the APK -# with libzip. Metro owns the JavaScript here and the only asset we need is the -# metadata, which the Java side stages -- so this is the one part of the runtime -# tree the guest drops, and dropping it takes libzip with it. +# Parts of the standalone runtime a guest can never reach, dropped rather than +# merely left uninitialised so they are not carried in an app that cannot call +# them. Each has a matching NS_JSI_HOST_RUNTIME guard at its call sites. +# +# assetextractor unpacks a standalone app's app/ directory from the APK with +# libzip. Metro owns the JavaScript here, and the one asset +# needed -- the metadata -- is staged by the Java side. +# Dropping this takes libzip with it. +# WorkerWrapper a Worker gets its own VM, which a guest cannot build. React +# Native has its own answer for background work. Only the +# wrapper goes: LooperTasks and ConcurrentQueue live in the +# same directory but LooperTasks is the main-thread task +# queue -- how a Java callback arriving on another thread gets +# back onto the JS thread, which is core to a guest and not +# worker-specific. ConcurrentQueue has no other user, so it +# goes with the wrapper. +# modules/module require(). The embedder's bundler resolves modules; nothing +# in a guest ever loads a file. +# modules/console React Native installs console before this runtime attaches. +# modules/timers likewise setTimeout and friends. +# modules/performance likewise performance. +# profiler, instrumentation developer tooling for the standalone runtime, +# driven by JNI entry points a guest never calls. list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/assetextractor/") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/workers/(WorkerWrapper|ConcurrentQueue)\\.cpp$") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/modules/module/") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/modules/console/") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/modules/timers/") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/modules/performance/") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/profiler/") +list(FILTER RUNTIME_SOURCES EXCLUDE REGEX "/instrumentation/") add_library(nativescript_rn SHARED ${RUNTIME_SOURCES} diff --git a/scripts/build_react_native_android.sh b/scripts/build_react_native_android.sh index 36cf7c458..5708bc5e6 100755 --- a/scripts/build_react_native_android.sh +++ b/scripts/build_react_native_android.sh @@ -38,6 +38,28 @@ mkdir -p \ cp -R "$REPO_ROOT/NativeScript/runtime/android/jsi" "$NATIVE_API/runtime/android/" cp -R "$REPO_ROOT/NativeScript/ffi/jni/jsi" "$NATIVE_API/ffi/jni/" +# Parts of the standalone runtime the guest build excludes (see the source +# filters in packages/react-native/android/CMakeLists.txt). They are dropped +# here too so the package does not carry sources no consumer can compile. +# +# workers/ keeps LooperTasks: despite living beside the Worker implementation it +# is the main-thread task queue every guest needs. ConcurrentQueue has no user +# other than the Worker wrapper, so it goes with it. +rm -rf \ + "$NATIVE_API/runtime/android/jsi/assetextractor" \ + "$NATIVE_API/runtime/android/jsi/modules/module" \ + "$NATIVE_API/runtime/android/jsi/modules/console" \ + "$NATIVE_API/runtime/android/jsi/modules/timers" \ + "$NATIVE_API/runtime/android/jsi/modules/performance" \ + "$NATIVE_API/runtime/android/jsi/profiler" \ + "$NATIVE_API/runtime/android/jsi/instrumentation" +rm -f \ + "$NATIVE_API/runtime/android/jsi/workers/WorkerWrapper.cpp" \ + "$NATIVE_API/runtime/android/jsi/workers/WorkerWrapper.h" \ + "$NATIVE_API/runtime/android/jsi/workers/WorkerMessage.h" \ + "$NATIVE_API/runtime/android/jsi/workers/ConcurrentQueue.cpp" \ + "$NATIVE_API/runtime/android/jsi/workers/ConcurrentQueue.h" + # The engine layer. Only the Hermes adapter is reachable -- it is the one written # against plain facebook::jsi -- but the tree is copied whole so that a rooted # include of a sibling resolves the same way it does in the repository. From 6a9834395957241da16791914c3d6c2ad9d31c26 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 20:42:17 +0500 Subject: [PATCH 19/98] feat(metadata): measure what a JS-bundle filter can and cannot cover (cherry picked from commit f0952667900d75cc9cdb35c1d2c8b4cbe4190104) --- .../ffi/jni/jsi/metadata/MetadataNode.cpp | 31 ++ .../ffi/jni/jsi/metadata/MetadataNode.h | 4 + docs/metadata-filtering.md | 193 +++++++++++ .../build-tools/metadata-filter/.gitignore | 1 + .../build-tools/metadata-filter/harvest.js | 309 ++++++++++++++++++ .../android/test-app/runtime/CMakeLists.txt | 6 + .../android/test-app/runtime/build.gradle | 10 + 7 files changed, 554 insertions(+) create mode 100644 docs/metadata-filtering.md create mode 100644 platforms/android/test-app/build-tools/metadata-filter/.gitignore create mode 100644 platforms/android/test-app/build-tools/metadata-filter/harvest.js diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 41bced181..c9860cfd2 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -892,6 +892,34 @@ MetadataNode *MetadataNode::GetOrCreate(const string &className) { return node; } +#if defined(NS_METADATA_USAGE_TRACE) +// Ground truth for the build-time metadata filter: every metadata node the app +// actually materialises, emitted once, at the single point where a tree node +// first becomes a MetadataNode. A build with this on is a measuring instrument, +// not a shipping configuration -- see the metadata-filter lane in +// docs/metadata-filtering.md for how the trace is diffed against the static +// harvest. +void MetadataNode::TraceUsage(MetadataTreeNode *treeNode) { + static std::set *s_traced = new std::set(); + + auto name = GetJniClassName(treeNode); + if (name.empty()) { + return; + } + + if (!s_traced->insert(name).second) { + return; + } + + uint8_t nodeType = s_metadataReader.GetNodeType(treeNode); + const char *kind = s_metadataReader.IsNodeTypePackage(nodeType) + ? "P" + : (s_metadataReader.IsNodeTypeInterface(nodeType) ? "I" : "C"); + + __android_log_print(ANDROID_LOG_INFO, "NS_MD_USE", "%s %s", kind, name.c_str()); +} +#endif + MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { MetadataNode *result = nullptr; @@ -900,6 +928,9 @@ MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { if (it != s_treeNode2NodeCache.end()) { result = it->second; } else { +#if defined(NS_METADATA_USAGE_TRACE) + TraceUsage(treeNode); +#endif auto name = GetJniClassName(treeNode); if (!name.empty()) { auto it2 = s_name2NodeCache.find(name); diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h index 808b3d338..8d9784eeb 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h @@ -122,6 +122,10 @@ class MetadataNode { static ExtendedClassCacheData GetCachedExtendedClassData(JsRuntime &rt, const std::string& proxyClassName); static std::string GetJniClassName(const MetadataTreeNode* node); +#if defined(NS_METADATA_USAGE_TRACE) + static void TraceUsage(MetadataTreeNode *treeNode); +#endif + static void SetClassAccessor(JsRuntime &rt, JsObject constructor); diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md new file mode 100644 index 000000000..66a1626e4 --- /dev/null +++ b/docs/metadata-filtering.md @@ -0,0 +1,193 @@ +# Filtering Android metadata by what the app actually uses + +Android metadata is currently shipped whole: every class of every jar on the +compile classpath, whether or not the app can reach it. For the runtime test-app +that is **2.83 MB** of `.dat` in the APK, all of it parsed into a tree at +startup. An app that touches 5% of the platform pays for 100% of it. + +The generator has accepted `whitelist.mdg` / `blacklist.mdg` filters for years. +Nothing has ever produced them automatically, and this document explains why +that is harder than it looks -- then what to do about it. + +Everything below is measured on the test-app (520 specs, Hermes/jsi, arm64, +device QV7120NC26), not reasoned about. + +## How to reproduce the measurements + +Two instruments, both added by this lane: + +**Ground truth** -- what the app really resolves at runtime: + +```bash +cd platforms/android/test-app +./gradlew :app:assembleDebug -Pengine=HERMES -PbindingLayer=jsi -Pmetadata-usage-trace +# run the app, then: +adb logcat | grep NS_MD_USE # "C android/app/Activity", "P android/os", … +``` + +`-Pmetadata-usage-trace` compiles `NS_METADATA_USAGE_TRACE` into +`MetadataNode::GetOrCreateInternal`, the one place a metadata tree node becomes +a `MetadataNode`. It logs each node once. It is a diagnostic build only. + +> The flag has to reach the compiler, not just Gradle. Confirm with +> `grep NS_METADATA_USAGE_TRACE runtime/.cxx/Debug/*/arm64-v8a/compile_commands.json` +> and match the APK's `.so` build-id to that config -- a stale `.so` packaged by +> AGP has produced convincing all-green runs of a feature that was compiled out. +> Note also that `-Pengine=V8-13` builds the **napi** tree; only +> `-PbindingLayer=jsi` compiles the tree these instruments live in. + +**Static harvest** -- what an analysis of the JS can see: + +```bash +node platforms/android/test-app/build-tools/metadata-filter/harvest.js \ + platforms/android/test-app/app/src/main/assets/app --json harvest.json +``` + +## What the measurements say + +Static harvest of the 203 app JS files found **179** class names. The runtime +resolved **192** classes and **48** packages. The overlap is worse than those +totals suggest: **56 classes the app needs were invisible to the parser.** + +But the headline result is the one that comes from feeding the *exact ground +truth* back in as a whitelist: + +| Metadata | Size | Result | +|---|---|---| +| Unfiltered | 2.83 MB | 520 specs, 0 failures | +| Exact ground truth, 192 classes | **136 KB** | **crashes at launch** | +| …plus `android.os.Bundle` (1 class) | 136 KB | runs; 15 failures | + +The size prize is real -- **95%**. And a filter containing every class the app +was *observed to use* still cannot start the app. + +## Why perfect knowledge of usage is not enough + +`android.os.Bundle` is never named in the JS and never resolved as a metadata +node. It appears only as the parameter type of `Activity.onCreate(Bundle)`. +Strip it, and the runtime cannot rebuild that signature: + +``` +java.lang.NoSuchMethodError: no non-static method + "Landroid/app/Activity;.onCreate(Ljava/lang/Object;)V" +``` + +The parameter degraded to `Object` and no longer matched. **Metadata has +referential integrity**: a retained method drags in every type in its +signature. The 15 failures that remain after adding `Bundle` are all the same +shape -- `CharSequence` missing from a return type, `StackTraceElement` missing +from `Throwable.getStackTrace()`. + +This is the failure mode that would make a naive filter ship: it passes the +developer's happy path and breaks on the screen nobody tested. + +## The two lookup paths, and why only one is forgiving + +Missing metadata is **not** uniformly fatal. `MetadataReader::GetOrCreateTreeNodeByName` +falls back to `CallbackHandlers::GetTypeMetadata` -> `com.tns.Runtime.getTypeMetadata`, +which builds the type description **reflectively at runtime**. So a class +reached *by name* -- marshalling a Java object whose concrete class was +stripped -- recovers by itself, more slowly. + +Property access from JS does not. Package objects are built by enumerating the +metadata tree (`CreateTopLevelNamespaces`, `CreatePackageObject`), so a stripped +class is simply absent: + +``` +// with `java.text:*` blacklisted +TypeError: Cannot read property 'NumberFormat' of undefined +``` + +Measured: blacklisting `java.text` cost exactly 1 of 520 specs -- a hard, +unrecoverable throw. + +**Design consequence.** Concrete types the app never names (`WindowManagerImpl`, +`DirectByteBuffer`, `ArrayList` obtained from a return value) are safe to strip: +the reflective path covers them. Anything the JS *names*, and anything reachable +through a retained signature, is not. + +## What a parser cannot see + +Every one of the 56 misses, classified -- this is the list any design has to answer: + +| # | Category | Examples | Visible statically? | +|---|---|---|---| +| A | **Supertypes** of a used class | `Dialog` under `AlertDialog`; `ContextWrapper`; `Throwable`; `AbstractList` | No, but computable from the class graph | +| B | **Signature types** of retained members | `android.os.Bundle`, `CharSequence`, `StackTraceElement` | No, but computable from the class graph | +| C | **Nested classes** | `Button1.InnerButton`, `ViewGroup.MarginLayoutParams` | No, but computable | +| D | **Platform-returned concrete types** | `WindowManagerImpl`, `DirectByteBuffer`, `PathClassLoader` | No — and *not* computable (unbounded downward closure) | +| E | **Thrown types** | `FileNotFoundException`, `ClassCastException`, `LinkageError` | No | +| F | **Runtime's own dependencies** | `com.tns.NativeScriptException`, `java.lang.reflect.Method` | No — belongs to the runtime, not the app | +| G | **Computed access** | `java.lang[name]`, `Class.forName(s)` | Package only | +| H | **Unparseable files** | minified/exotic syntax | Nothing at all | + +A, B and C are the large ones and they are all *mechanical*: the generator +already holds the whole class graph in `SecuredClassRepository`. D and E are +covered by the reflective fallback for the marshalling path. F is fixed by a +keep-list that ships with the runtime. G and H are the genuinely undecidable +cases, and are what the easing rules exist for. + +### One concrete bug this exposed + +`harvest.js` recognises a Java FQN by matching its first segment against a +hardcoded root list (`java`, `android`, `com`, …). The test-app contains +`in.tns.tests.JavascriptKeywordClass`, whose root is the JS keyword `in` and +which the runtime therefore exposes as `$in` (`CreateTopLevelNamespaces` +prefixes keywords with `$`). The hardcoded list misses it entirely. + +A hardcoded root list is also the thing most certain to rot: it is a guess about +which top-level packages will exist. **The root set must be derived from the +metadata tree itself**, and the `$`-prefix mangling honoured. That single change +is most of the "still correct in ten years" requirement. + +## Proposed design + +**Seed** (what the app is known to want) + +1. Static harvest of the final JS bundle -- the same bundle the static binding + generator consumes, so there is one bundling step and one source of truth. +2. `AndroidManifest.xml`: every `android:name` (activities, services, + receivers, providers, `application`). +3. SBG output: every `.extend` base and `@Interfaces` entry. +4. A keep-list versioned with the runtime, for the classes the runtime itself + resolves (`com.tns.*`, the boxed primitives, `java.lang.reflect.*`, the + `Throwable` hierarchy, `java.nio.ByteBuffer`). It lives beside the code that + depends on it so the two cannot drift. + +**Closure** (computed in the generator, which already has the class graph) + +5. Transitive supertypes and implemented interfaces. +6. All nested classes of a retained class. +7. All types appearing in the signatures of retained members, then *their* + supertypes. This is the step whose absence crashes the app at launch, and it + is the one no JS-side tool can do. + +**Easing** (the user-facing safety valve, and the reason this can be default-on) + +8. Any construct the harvester cannot resolve widens the filter instead of + narrowing it: a computed access under `java.lang` keeps `java.lang:*`; a + package alias keeps that package; **a file that fails to parse disables + filtering for the whole build**, loudly. Over-inclusion costs bytes; + under-inclusion costs a crash. `harvest.js` already emits this as its + `roots` set — in the measurements above it independently flagged + `android.support.design`, which was one of the 15 failures. +9. App-authored keep rules, in the existing `.mdg` grammar. + +**Verification** (so a mistake is caught at build time, not in the field) + +10. A build-time check that the filtered tree is referentially closed: every + type named by a retained signature is itself retained. Cheap, and it is + exactly the invariant whose violation produced the launch crash above. +11. A diagnostic mode that ships unfiltered metadata but logs what a filtered + build *would* have dropped, so an app can be audited before switching over. + +**Rollout.** Off by default; opt-in per app; on by default only once it has +carried the 520-spec suite and the RN fixture. The generator's own default is +already fail-open -- absent `whitelist.mdg`, `UserPatternsCollection` allows +`*:*` -- so a build that cannot analyse its input ships everything, which is the +correct direction to fail. + +## Status + +Done: both instruments, the measurements above, the failure taxonomy. +Not started: closure (5-7), easing (8-9), verification (10-11). diff --git a/platforms/android/test-app/build-tools/metadata-filter/.gitignore b/platforms/android/test-app/build-tools/metadata-filter/.gitignore new file mode 100644 index 000000000..3c3629e64 --- /dev/null +++ b/platforms/android/test-app/build-tools/metadata-filter/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/platforms/android/test-app/build-tools/metadata-filter/harvest.js b/platforms/android/test-app/build-tools/metadata-filter/harvest.js new file mode 100644 index 000000000..4c7822ee4 --- /dev/null +++ b/platforms/android/test-app/build-tools/metadata-filter/harvest.js @@ -0,0 +1,309 @@ +/* + * Harvests the Java types a JS program can be seen to use, so the build can + * generate a metadata whitelist from them. + * + * The output is deliberately two-sided. `resolved` is what the analysis could + * name exactly. `roots` is what it could only place -- a package it is sure the + * program reaches into but whose class it cannot name, because the access was + * computed. A filter built from `resolved` alone would be wrong: see + * docs/metadata-filtering.md for the measurement that says by how much. Every + * construct this file cannot resolve must widen `roots`, never fail silently; + * that asymmetry is the whole safety argument. + */ + +const fs = require("fs"); +const path = require("path"); +const parser = require("@babel/parser"); +const traverse = require("@babel/traverse").default; + +// The package names a Java FQN can start with. Anything rooted elsewhere is a +// JS identifier that merely looks like a namespace. +const JAVA_ROOTS = [ + "java", + "javax", + "android", + "androidx", + "dalvik", + "kotlin", + "kotlinx", + "com", + "org", + "net", + "edu", + "io", +]; + +const PARSER_PLUGINS = [ + "jsx", + "flow", + "decorators-legacy", + "classProperties", + "classPrivateProperties", + "classPrivateMethods", + "objectRestSpread", + "asyncGenerators", + "dynamicImport", + "optionalChaining", + "nullishCoalescingOperator", + "numericSeparator", + "logicalAssignment", + "topLevelAwait", + "bigInt", +]; + +/* A dotted name is a class name if any segment starts with an uppercase + * letter; the segments before it are the package. Java's own convention is the + * only signal available, and it is the same one the metadata tree encodes. */ +function splitPackageAndClass(segments) { + for (let i = 0; i < segments.length; i++) { + const s = segments[i]; + if (s && s[0] >= "A" && s[0] <= "Z") { + return { + packageName: segments.slice(0, i).join("."), + className: segments.slice(i).join("."), + classIndex: i, + }; + } + } + return null; +} + +function isJavaRoot(name) { + return JAVA_ROOTS.indexOf(name) !== -1; +} + +class Harvest { + constructor() { + /* fully-qualified name -> Set of reasons, kept for the report only */ + this.resolved = new Map(); + /* package prefix -> Set of reasons; the easing set */ + this.roots = new Map(); + /* things worth a human's attention, with file/line */ + this.unresolved = []; + } + + addResolved(fqn, reason) { + if (!this.resolved.has(fqn)) this.resolved.set(fqn, new Set()); + this.resolved.get(fqn).add(reason); + } + + addRoot(pkg, reason) { + if (!pkg) return; + if (!this.roots.has(pkg)) this.roots.set(pkg, new Set()); + this.roots.get(pkg).add(reason); + } + + addUnresolved(kind, detail, loc) { + this.unresolved.push({ kind, detail, ...loc }); + } +} + +/* + * Walks a MemberExpression outward from its innermost object, returning the + * static prefix and whether the chain was cut short by a computed access. + * `java.lang.System.out` yields ["java","lang","System","out"]; `java[pkg].Foo` + * yields ["java"] with truncated=true, which is the case that produces a root + * hint instead of a name. + */ +function staticChain(node) { + const segments = []; + let truncated = false; + let cur = node; + + /* Descend to the root identifier first. */ + const stack = []; + while (cur && cur.type === "MemberExpression") { + stack.push(cur); + cur = cur.object; + } + + if (!cur || cur.type !== "Identifier") { + return null; + } + segments.push(cur.name); + + for (let i = stack.length - 1; i >= 0; i--) { + const m = stack[i]; + if (m.computed) { + /* obj["Literal"] is still static; obj[expr] is not. */ + if (m.property.type === "StringLiteral") { + segments.push(m.property.value); + continue; + } + truncated = true; + break; + } + if (m.property.type !== "Identifier") { + truncated = true; + break; + } + segments.push(m.property.name); + } + + return { segments, truncated }; +} + +function harvestFile(filePath, source, harvest) { + let ast; + const attempt = (sourceType) => + parser.parse(source, { + sourceType, + allowReturnOutsideFunction: true, + allowAwaitOutsideFunction: true, + allowSuperOutsideMethod: true, + errorRecovery: true, + plugins: PARSER_PLUGINS, + }); + + try { + ast = attempt("unambiguous"); + } catch (e) { + try { + ast = attempt("script"); + } catch (e2) { + /* A file that cannot be parsed is a file whose Java usage is entirely + * invisible. That must widen the filter to everything, not narrow it. */ + harvest.addUnresolved("parse-error", `${e2.message}`, { file: filePath }); + return false; + } + } + + const rel = filePath; + + traverse(ast, { + MemberExpression(p) { + /* Only consider the outermost member expression of a chain. */ + if (p.parent && p.parent.type === "MemberExpression" && p.parent.object === p.node) { + return; + } + + const chain = staticChain(p.node); + if (!chain || !isJavaRoot(chain.segments[0])) return; + + const split = splitPackageAndClass(chain.segments); + + if (chain.truncated) { + /* We know the program reaches into this package but not which class. + * Record the deepest all-lowercase prefix as a root hint. */ + const pkgSegments = []; + for (const s of chain.segments) { + if (s && s[0] >= "A" && s[0] <= "Z") break; + pkgSegments.push(s); + } + harvest.addRoot(pkgSegments.join("."), `computed access in ${rel}`); + harvest.addUnresolved("computed-member", chain.segments.join(".") + "[…]", { + file: rel, + line: p.node.loc && p.node.loc.start.line, + }); + return; + } + + if (!split) { + /* All-lowercase chain: a package object being passed around, e.g. + * `var l = java.lang`. Everything under it is reachable. */ + harvest.addRoot(chain.segments.join("."), `package alias in ${rel}`); + harvest.addUnresolved("package-alias", chain.segments.join("."), { + file: rel, + line: p.node.loc && p.node.loc.start.line, + }); + return; + } + + /* Trailing segments after the class name are members/nested classes. + * Keep the class and, for a nested name, its outer class too. */ + const classSegments = split.className.split("."); + const outer = split.packageName + ? split.packageName + "." + classSegments[0] + : classSegments[0]; + harvest.addResolved(outer, `member access in ${rel}`); + + /* android.R.id.foo and friends: the second uppercase segment is a nested + * class, not a field. Emitting both is harmless -- the filter is a + * union -- and missing one is not. */ + if (classSegments.length > 1 && classSegments[1][0] >= "A" && classSegments[1][0] <= "Z") { + harvest.addResolved(outer + "." + classSegments[1], `nested access in ${rel}`); + } + }, + + StringLiteral(p) { + /* Class.forName("…"), loadClass("…"), and every other name-by-string + * path. Cheap to include and impossible to see any other way. */ + const v = p.node.value; + if (v.length < 3 || v.indexOf(".") === -1 || /\s/.test(v)) return; + const segments = v.split("."); + if (!isJavaRoot(segments[0])) return; + if (!splitPackageAndClass(segments)) return; + harvest.addResolved(v, `string literal in ${rel}`); + }, + }); + + return true; +} + +function collectFiles(target, out) { + const stat = fs.statSync(target); + if (stat.isFile()) { + out.push(target); + return out; + } + for (const entry of fs.readdirSync(target)) { + if (entry === "node_modules" || entry.startsWith(".")) continue; + const full = path.join(target, entry); + const st = fs.statSync(full); + if (st.isDirectory()) collectFiles(full, out); + else if (/\.(js|mjs|cjs|jsx|bundle|jsbundle)$/.test(entry)) out.push(full); + } + return out; +} + +function main() { + const args = process.argv.slice(2); + if (args.length < 1) { + console.error("usage: harvest.js [more…] [--json out.json]"); + process.exit(2); + } + + let jsonOut = null; + const targets = []; + for (let i = 0; i < args.length; i++) { + if (args[i] === "--json") { + jsonOut = args[++i]; + } else { + targets.push(args[i]); + } + } + + const harvest = new Harvest(); + const files = []; + for (const t of targets) collectFiles(t, files); + + let parsed = 0; + for (const f of files) { + const source = fs.readFileSync(f, "utf8"); + if (harvestFile(f, source, harvest)) parsed++; + } + + const result = { + filesSeen: files.length, + filesParsed: parsed, + resolved: Array.from(harvest.resolved.keys()).sort(), + roots: Array.from(harvest.roots.keys()).sort(), + unresolved: harvest.unresolved, + }; + + if (jsonOut) { + fs.writeFileSync(jsonOut, JSON.stringify(result, null, 2)); + } + + console.error( + `harvest: ${parsed}/${files.length} files parsed, ` + + `${result.resolved.length} resolved names, ${result.roots.length} root hints, ` + + `${result.unresolved.length} unresolved sites` + ); + + if (!jsonOut) { + for (const n of result.resolved) console.log(n); + } +} + +main(); diff --git a/platforms/android/test-app/runtime/CMakeLists.txt b/platforms/android/test-app/runtime/CMakeLists.txt index 31194a189..241c20f9d 100644 --- a/platforms/android/test-app/runtime/CMakeLists.txt +++ b/platforms/android/test-app/runtime/CMakeLists.txt @@ -476,6 +476,12 @@ if (NS_CONTENT_KEYED_BINDINGS) target_compile_definitions(NativeScript PRIVATE NS_CONTENT_KEYED_BINDINGS) endif () +# Emit the set of metadata nodes the app actually resolves. Wired from +# runtime/build.gradle (-Pmetadata-usage-trace); a diagnostic build only. +if (NS_METADATA_USAGE_TRACE) + target_compile_definitions(NativeScript PRIVATE NS_METADATA_USAGE_TRACE) +endif () + # if("${ANDROID_ABI}" MATCHES "armeabi-v7a$" OR "${ANDROID_ABI}" MATCHES "x86$") # # On API Level 19 and lower we need to link with android_support # # because it contains some implementation of functions such as "strtoll" and "strtoul" diff --git a/platforms/android/test-app/runtime/build.gradle b/platforms/android/test-app/runtime/build.gradle index 94c411630..40e9851e3 100644 --- a/platforms/android/test-app/runtime/build.gradle +++ b/platforms/android/test-app/runtime/build.gradle @@ -30,6 +30,12 @@ if (!["napi", "jsi"].contains(bindingLayer)) { // in app/build.gradle. def contentKeyedBindings = project.hasProperty("content-keyed-bindings") +// Log every metadata node the app materialises, to logcat tag NS_MD_USE. This +// is the measuring instrument behind the build-time metadata filter: the trace +// is the ground truth a static harvest of the JS is scored against. Never on in +// a shipping build -- see docs/metadata-filtering.md. +def metadataUsageTrace = project.hasProperty("metadata-usage-trace") + printf("Compiling NativeScript with %s (runtime: %s).\n", jsEngine, bindingLayer) // Version.h moved under the per-binding runtime tree when the jsi runtime was @@ -207,6 +213,10 @@ android { arguments.add("-DNS_CONTENT_KEYED_BINDINGS=1") } + if (metadataUsageTrace) { + arguments.add("-DNS_METADATA_USAGE_TRACE=1") + } + if (bytecodeStacktraces) { arguments.add("-DNS_BYTECODE=1") } From f6e60a4b8b6e3a5d9070a128d36434a2a2318e44 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 21:31:44 +0500 Subject: [PATCH 20/98] feat(metadata): filter metadata from the app bundle and emit R8 keep rules (cherry picked from commit 31a5be8c26b117387c6b39a5f0f0638b179f07c0) --- docs/metadata-filtering.md | 55 ++++- platforms/android/test-app/.gitignore | 6 + platforms/android/test-app/app/build.gradle | 13 ++ .../src/src/com/telerik/metadata/Builder.java | 150 +++++++++++- .../src/com/telerik/metadata/Generator.java | 27 +++ .../classes/SecuredClassRepository.kt | 33 +++ .../filtering/closure/MetadataClosure.kt | 172 ++++++++++++++ .../filtering/closure/ProguardRulesWriter.kt | 65 ++++++ .../input/user/UserPatternsCollection.kt | 10 + .../build-tools/metadata-filter/harvest.js | 31 ++- .../build-tools/metadata-filter/seed.js | 215 ++++++++++++++++++ 11 files changed, 768 insertions(+), 9 deletions(-) create mode 100644 platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt create mode 100644 platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt create mode 100644 platforms/android/test-app/build-tools/metadata-filter/seed.js diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 66a1626e4..23085729a 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -187,7 +187,58 @@ already fail-open -- absent `whitelist.mdg`, `UserPatternsCollection` allows `*:*` -- so a build that cannot analyse its input ships everything, which is the correct direction to fail. +## Result + +Implemented and measured on the same 520-spec suite: + +| Metadata | Size | Result | +|---|---|---| +| Unfiltered | 2.83 MB | 520 specs, 0 failures | +| Exact usage, no closure | 136 KB | crashes at launch | +| **Generated seed + closure** | **700 KB** | **520 specs, 0 failures** | + +**75% smaller, suite green.** The seed is 449 classes harvested from the app's +own JS; the closure grows it to 2,183 -- and stops there, well short of the +classpath, so the unbounded closure is affordable and no depth limit is needed. + +Getting from "runs with 15 failures" to green took four fixes, each a category +the first measurement predicted: + +1. **Signature closure** -- supertypes, nested classes, and the types in every + retained signature. Launch crash -> runs. +2. **Kotlin extension functions** -- declared in a file class the app never + names and that nothing references, so the closure has to reach it from the + receiver side. Extension collection now runs *before* the closure, and + unfiltered, or the classes it needs are already gone. 10 failures -> 2. +3. **Keyword-mangled roots** -- `in.tns.tests.JavascriptKeywordClass` is written + `$in.…` in JS. The `$` prefix is now treated as proof of a Java package, so + this no longer depends on the hardcoded root list. +4. **Package spine** -- `if (android.support.design && …)` threw once every + class under `android.support` was filtered out and the package node went + with them. Empty package nodes are recreated for packages the seed names -- + but only up to the deepest prefix that exists on the classpath. Inventing + the rest breaks the same guard the other way: it passes, and the constructor + behind it is undefined. + +### ProGuard/R8 keep rules + +The generator writes `metadata-keep-rules.pro` (build dir, not assets) from the +same retained set. Metadata says what JS can name; R8 decides what survives into +the dex; neither can see the other's input, so both are driven from one set. +Classes absent from the rules are absent from the metadata too, so R8 is free to +remove them. Shrinking is still off by default -- the rules make it safe to turn +on, they do not turn it on. + +Members are kept wholesale per retained class. Per-member rules would need the +JS side to have resolved every call exactly, which it cannot; the class-level +strip is where the size comes from anyway. + ## Status -Done: both instruments, the measurements above, the failure taxonomy. -Not started: closure (5-7), easing (8-9), verification (10-11). +Done: both instruments, the taxonomy, the closure, the easing rules, the seed +generator, the keep-rules emitter. Green on the 520-spec suite. + +Not done: wiring the seed generation into the Gradle task automatically (it is +run by hand today), the RN/guest side, and the build-time referential-closure +check (11) -- the closure constructs the set correctly, but nothing yet +re-verifies the emitted tree independently. diff --git a/platforms/android/test-app/.gitignore b/platforms/android/test-app/.gitignore index f5badce65..5a842d8d2 100644 --- a/platforms/android/test-app/.gitignore +++ b/platforms/android/test-app/.gitignore @@ -25,3 +25,9 @@ treeValueStream.dat NativeScriptActivity.java NativeScriptApplication.java **/com/tns/gen +# Generated by build-tools/metadata-filter/seed.js from the app's JS bundle. +# A build artifact, not config: regenerate it rather than committing it, so a +# checkout builds unfiltered metadata unless filtering is asked for. +/whitelist.mdg +/build-tools/whitelist.mdg +/.metadata-harvest.json diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index 50fe1f2e7..8cf7da956 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -77,6 +77,7 @@ def APP_DIR = "$projectDir/src/main/assets/app" def MDG_OUTPUT_DIR = "mdg-output-dir.txt" def MDG_JAVA_DEPENDENCIES = "mdg-java-dependencies.txt" def METADATA_OUT_PATH = "$projectDir/src/main/assets/metadata" +def METADATA_KEEP_RULES = layout.buildDirectory.file("nativescript/metadata-keep-rules.pro").get().asFile.absolutePath def METADATA_JAVA_OUT = "mdg-java-out.txt" // paths to jar libraries @@ -964,6 +965,16 @@ task buildMetadata(type: BuildToolTask) { // use explicit inputs as the above makes the whole build-tools directory an input! inputs.files("$BUILD_TOOLS_PATH/whitelist.mdg", "$BUILD_TOOLS_PATH/blacklist.mdg") + // The generator itself decides what the metadata contains, so a change to + // it has to invalidate the output. Without this the task stays up-to-date + // across a generator rebuild and silently ships the previous run's tree. + inputs.files(Paths.get(rootPath, "android-metadata-generator.jar").toString()) + + // R8 keep rules derived from the same retained set as the metadata. Build + // output, not an asset -- shipping it would put 100KB+ of build input in + // the APK. + outputs.file(METADATA_KEEP_RULES) + def classesDir = layout.buildDirectory.dir("intermediates/javac").get().asFile if (classesDir.exists()) { inputs.dir(classesDir) @@ -1059,6 +1070,8 @@ task buildMetadata(type: BuildToolTask) { paramz.add("verbose") } + paramz.add("proguardOut=$METADATA_KEEP_RULES") + args paramz.toArray() } } diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java index 6c46b9cb5..5eff93cfd 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java @@ -19,6 +19,13 @@ import com.telerik.metadata.parsing.kotlin.metadata.bytecode.BytecodeClassMetadataParser; import com.telerik.metadata.security.classes.SecuredClassRepository; import com.telerik.metadata.security.classes.SecuredNativeClassDescriptor; +import com.telerik.metadata.security.filtering.blacklisting.MetadataBlacklist; +import com.telerik.metadata.security.filtering.closure.MetadataClosure; +import com.telerik.metadata.security.filtering.closure.ProguardRulesWriter; +import com.telerik.metadata.security.filtering.input.PatternEntry; +import com.telerik.metadata.security.filtering.input.user.UserPatternsCollection; +import com.telerik.metadata.security.filtering.matching.impl.PatternMatcherImpl; +import com.telerik.metadata.security.filtering.whitelisting.MetadataWhitelist; import com.telerik.metadata.storage.functions.FunctionsStorage; import com.telerik.metadata.storage.functions.extensions.ExtensionFunctionsStorage; import com.telerik.metadata.security.MetadataSecurityViolationException; @@ -83,11 +90,16 @@ static TreeNode build(List paths, List classes) throws Exception String[] classNames = SecuredClassRepository.INSTANCE.getClassNames(); + // Before the closure, and deliberately unfiltered: a Kotlin extension + // function is declared on a file class the app never names, so the + // closure can only retain that class if it already knows the function + // exists. Entries for classes that go on to be dropped are inert -- + // the storage is only ever consulted for a class being generated. for (String className : classNames) { try { - SecuredNativeClassDescriptor clazz = SecuredClassRepository.INSTANCE.findClass(className); - if (clazz.isUsageAllowed()) { - tryCollectKotlinExtensionFunctions(clazz.getNativeDescriptor()); + NativeClassDescriptor clazz = SecuredClassRepository.INSTANCE.findClassUnfiltered(className); + if (clazz != null) { + tryCollectKotlinExtensionFunctions(clazz); } } catch (Throwable e) { System.out.println("Skip " + className); @@ -96,6 +108,11 @@ static TreeNode build(List paths, List classes) throws Exception } } + // Grow the whitelist into something the tree can be built from before + // anything is generated. Skipped entirely when no whitelist was given, + // which is what keeps the default behaviour "emit everything". + applyClosureIfRequested(); + for (String className : classNames) { try { // possible exceptions here are: @@ -117,6 +134,8 @@ static TreeNode build(List paths, List classes) throws Exception } } + ensureSeedPackageSpine(root); + System.out.println("Added Properties "+TreeNode.addedProperties); System.out.println("Ignored Properties "+TreeNode.skippedProperties+" duplicates."); System.out.println("Added Methods "+TreeNode.addedMethods); @@ -129,6 +148,131 @@ static TreeNode build(List paths, List classes) throws Exception return root; } + // Set from Generator before build() runs. + private static int signatureClosureDepth = Integer.MAX_VALUE; + private static String proguardRulesPath = null; + + public static void configureClosure(int depth, String proguardOut) { + signatureClosureDepth = depth; + proguardRulesPath = proguardOut; + } + + /** + * Turns the whitelist into the concrete set of classes to emit, and writes + * the matching R8 keep rules. A no-op unless a whitelist was supplied: with + * no filter to seed from, the closure would just be every class there is. + */ + private static void applyClosureIfRequested() { + if (!UserPatternsCollection.INSTANCE.getWhitelistProvided()) { + return; + } + + PatternMatcherImpl patternMatcher = new PatternMatcherImpl(); + MetadataWhitelist seedFilter = new MetadataWhitelist( + UserPatternsCollection.INSTANCE.getWhitelistEntries(), patternMatcher); + MetadataBlacklist blacklistFilter = new MetadataBlacklist( + UserPatternsCollection.INSTANCE.getBlacklistEntries(), patternMatcher); + + MetadataClosure closure = new MetadataClosure( + SecuredClassRepository.INSTANCE.getCachedProviders(), + blacklistFilter, + signatureClosureDepth); + + Set retained = closure.compute(descriptor -> { + String simplified = descriptor.getClassName() + .substring(descriptor.getPackageName().length()) + .replace('$', '.'); + while (simplified.startsWith(".")) { + simplified = simplified.substring(1); + } + return seedFilter.isAllowed(descriptor.getPackageName(), simplified).isAllowed(); + }); + + SecuredClassRepository.INSTANCE.applyClosure(retained); + + System.out.println(String.format( + "Metadata filter: seed %d classes -> retained %d after closure (depth %s).", + closure.getSeedSize(), retained.size(), + signatureClosureDepth == Integer.MAX_VALUE + ? "unbounded" : String.valueOf(signatureClosureDepth))); + + if (proguardRulesPath != null) { + ProguardRulesWriter.INSTANCE.write(new File(proguardRulesPath), retained); + System.out.println("Metadata filter: wrote keep rules to " + proguardRulesPath); + } + } + + /** + * Creates an empty package node for every package the seed named outright, + * whether or not any class under it survived. + * + * JS feature-detects with `if (a.b.C)`. Unfiltered, `a.b` is an object and + * a missing `C` reads as undefined -- falsy, and the guard does its job. + * Filter every class out of `a.b` and the package node disappears with + * them, so the same guard throws: + * + * TypeError: Cannot read property 'design' of undefined + * + * An empty package costs a name and a node. Turning a working guard into a + * crash costs the app. + * + * Restricted to packages that exist on the classpath. A package the filter + * emptied must stay visible; a package that was never there must stay + * absent, or the same guard breaks the other way -- it passes, and the + * constructor behind it is undefined. + */ + private static void ensureSeedPackageSpine(TreeNode root) { + if (!UserPatternsCollection.INSTANCE.getWhitelistProvided()) { + return; + } + + Set existingPackages = new HashSet<>(); + for (ClassMapProvider provider : SecuredClassRepository.INSTANCE.getCachedProviders()) { + for (NativeClassDescriptor descriptor : provider.getClassMap().values()) { + String packageName = descriptor.getPackageName(); + while (!packageName.isEmpty() && existingPackages.add(packageName)) { + int idx = packageName.lastIndexOf('.'); + packageName = idx < 0 ? "" : packageName.substring(0, idx); + } + } + } + + for (PatternEntry entry : UserPatternsCollection.INSTANCE.getWhitelistEntries()) { + String packagePattern = entry.getPackagePattern(); + + // Only literal package names; a wildcard does not name a package to create. + if (packagePattern.isEmpty() + || packagePattern.contains("*") + || packagePattern.contains("?")) { + continue; + } + + // Walk the prefixes and stop at the first that does not exist on + // the classpath. `android.support.design` is named by the app but + // was never there; its parent `android.support` was, via another + // library, and is what the guard actually dereferences. + TreeNode node = root; + StringBuilder soFar = new StringBuilder(); + for (String part : packagePattern.split("\\.")) { + if (soFar.length() > 0) { + soFar.append('.'); + } + soFar.append(part); + + if (!existingPackages.contains(soFar.toString())) { + break; + } + + TreeNode child = node.getChild(part); + if (child == null) { + child = node.createChild(part); + child.nodeType = TreeNode.Package; + } + node = child; + } + } + } + private static void tryCollectKotlinExtensionFunctions(NativeClassDescriptor classDescriptor) { if (classDescriptor instanceof KotlinClassDescriptor) { ExtensionFunctionsCollector extensionFunctionsCollector = new BytecodeExtensionFunctionsCollector(new BytecodeClassMetadataParser()); diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Generator.java b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Generator.java index 6a53cea27..e6ea05882 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Generator.java +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Generator.java @@ -26,9 +26,22 @@ public class Generator { private static final String MDG_WHITELIST = "whitelist.mdg"; private static final String MDG_BLACKLIST = "blacklist.mdg"; private static final String METADATA_JAVA_OUT = "mdg-java-out.txt"; + private static final String PROGUARD_RULES_OUT = "metadata-keep-rules.pro"; + private static final String CLOSURE_DEPTH_ARGUMENT_BEGINNING = "signatureClosureDepth="; + private static final String PROGUARD_OUT_ARGUMENT_BEGINNING = "proguardOut="; private static boolean verbose_mode = false; + /* How far signature types are chased when growing the whitelist. Unbounded + * by default: a bounded closure leaves the last level's signatures liable + * to be widened, and a widened signature is a NoSuchMethodError at the call + * site rather than a build error. Overridable only for measurement. */ + private static int signatureClosureDepth = Integer.MAX_VALUE; + + /* Where to write the R8 keep rules. Set by the build; defaults to beside + * the metadata output rather than inside it. */ + private static String proguardRulesPath = null; + /** * @param args arguments */ @@ -60,6 +73,15 @@ public static void main(String[] args) { throw new InvalidParameterException(String.format("You need to pass a file containing a list of jar/class paths, so metadata can be generated for them! %s\n", e.getMessage())); } + // Deliberately not under metadataOutputDir: that directory is the + // app's assets, and the keep rules are build input for R8, not + // something to ship inside the APK. + String proguardOut = proguardRulesPath != null + ? proguardRulesPath + : new File(metadataOutputDir, "../" + PROGUARD_RULES_OUT).getCanonicalPath(); + + Builder.configureClosure(signatureClosureDepth, proguardOut); + TreeNode root = Builder.build(params, classes); FileOutputStream ovs = new FileOutputStream(new File(metadataOutputDir, "treeValueStream.dat")); @@ -90,6 +112,11 @@ private static void enableFlaggedFeatures(String[] args) { if (arg.startsWith(ANALYTICS_ARGUMENT_BEGINNING)) { String filePath = arg.replace(ANALYTICS_ARGUMENT_BEGINNING, ""); AnalyticsConfiguration.enableAnalytics(filePath); + } else if (arg.startsWith(CLOSURE_DEPTH_ARGUMENT_BEGINNING)) { + signatureClosureDepth = Integer.parseInt( + arg.substring(CLOSURE_DEPTH_ARGUMENT_BEGINNING.length())); + } else if (arg.startsWith(PROGUARD_OUT_ARGUMENT_BEGINNING)) { + proguardRulesPath = arg.substring(PROGUARD_OUT_ARGUMENT_BEGINNING.length()); } else if (VERBOSE_FLAG_NAME.equals(arg)) { verbose_mode = true; MetadataFilterConsoleLogger.INSTANCE.setEnabled(true); diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/classes/SecuredClassRepository.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/classes/SecuredClassRepository.kt index 5df72c25d..b88af5e25 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/classes/SecuredClassRepository.kt +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/classes/SecuredClassRepository.kt @@ -55,7 +55,40 @@ object SecuredClassRepository { return SecuredNativeClassDescriptor(false, NativeClassDescriptor.Missing) } + /** + * When a closure has been computed, it -- not the raw whitelist -- decides + * what is emitted. The whitelist is only the seed it grew from; a class the + * closure added is required for the tree to be internally consistent, so + * consulting the patterns again here would drop it right back out. + * Null means no filtering was requested and everything is allowed. + */ + private var retainedClasses: Set? = null + + fun applyClosure(retained: Set) { + retainedClasses = retained + } + + fun getRetainedClasses(): Set? = retainedClasses + + fun getCachedProviders(): List = cachedProviders + + /** Bypasses filtering; for the passes that must run before the filter exists. */ + fun findClassUnfiltered(className: String): NativeClassDescriptor? = + findClassFromProviders(className) + private fun isClassUsageAllowed(packageName: String, className: String): Boolean { + val retained = retainedClasses + if (retained != null) { + /* className arrives simplified ($ -> .); the closure is keyed by the + * binary name, which is what the class map uses. */ + val binaryName = if (packageName.isEmpty()) { + className.replace('.', '$') + } else { + packageName + "." + className.replace('.', '$') + } + return binaryName in retained + } + val whitelistFilterResult = whitelist.isAllowed(packageName, className) val blacklistFilterResult = blacklist.isAllowed(packageName, className) diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt new file mode 100644 index 000000000..41804d308 --- /dev/null +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt @@ -0,0 +1,172 @@ +package com.telerik.metadata.security.filtering.closure + +import com.telerik.metadata.ClassMapProvider +import com.telerik.metadata.parsing.NativeClassDescriptor +import com.telerik.metadata.security.filtering.MetadataFilter +import com.telerik.metadata.storage.functions.extensions.ExtensionFunctionsStorage + +/** + * Expands a seed set of class names into one the metadata tree can actually be + * built from. + * + * A whitelist naming exactly the classes an app was observed to use does not + * work: it produces metadata that cannot start the app. Two reasons, both + * measured -- see docs/metadata-filtering.md. + * + * - A retained class's *supertypes* carry most of its members. + * - A retained method's *signature types* must be present **exactly**. When one + * is missing, Builder.getOrCreateNode does not fail; it substitutes the + * nearest retained ancestor via findNearestAllowedClass. That silently + * rewrites `onCreate(Bundle)` to `onCreate(Object)`, which then fails to + * resolve against the real method at runtime: + * + * java.lang.NoSuchMethodError: no non-static method + * "Landroid/app/Activity;.onCreate(Ljava/lang/Object;)V" + * + * So the closure's job is to make widening never happen for anything reachable. + * + * [signatureDepth] bounds how far signature types are chased. Depth 1 keeps the + * signatures of the seed exact; the types pulled in at the last level may still + * have their own signatures widened, which only matters if the app calls into + * them. Unbounded is the safe end and the default -- it converged well short of + * the whole classpath on the test-app, so the size win survives it. + */ +class MetadataClosure( + private val providers: List, + private val blacklist: MetadataFilter, + private val signatureDepth: Int = Int.MAX_VALUE +) { + + /** Reported so the build can print what the closure cost. */ + var seedSize: Int = 0 + private set + + private val byName = HashMap() + + /** outer class name -> its directly nested classes */ + private val nestedByOuter = HashMap>() + + private fun index() { + if (byName.isNotEmpty()) return + + for (provider in providers) { + for ((name, descriptor) in provider.classMap) { + byName.putIfAbsent(name, descriptor) + + val idx = name.lastIndexOf('$') + if (idx > 0) { + nestedByOuter.getOrPut(name.substring(0, idx)) { ArrayList() }.add(name) + } + } + } + } + + /** + * The element type of an arbitrarily nested array signature, or null when + * the signature bottoms out in a primitive. + */ + private fun elementClassName(signature: String): String? { + var s = signature + while (s.startsWith("[")) { + s = s.substring(1) + } + if (!s.startsWith("L") || !s.endsWith(";")) { + return null + } + return s.substring(1, s.length - 1).replace('/', '.') + } + + private fun isBlacklisted(descriptor: NativeClassDescriptor): Boolean { + val simple = descriptor.className + .substring(descriptor.packageName.length) + .replace('$', '.') + .trimStart('.') + return !blacklist.isAllowed(descriptor.packageName, simple).isAllowed + } + + /** + * @param isSeed decides membership of the starting set, by (package, class) + * exactly as the whitelist does. + * @return every class name whose metadata must be emitted. + */ + fun compute(isSeed: (NativeClassDescriptor) -> Boolean): Set { + index() + + val retained = HashSet() + /* Worklist entries carry the remaining signature budget, so a class + * reached at depth 0 still contributes its supertypes -- those are + * unconditional -- but stops pulling in new signature types. */ + val pending = ArrayDeque>() + + fun enqueue(name: String, budget: Int) { + val descriptor = byName[name] ?: return + if (isBlacklisted(descriptor)) return + if (!retained.add(name)) return + pending.addLast(name to budget) + } + + for ((name, descriptor) in byName) { + if (isSeed(descriptor) && !isBlacklisted(descriptor)) { + if (retained.add(name)) { + pending.addLast(name to signatureDepth) + } + } + } + seedSize = retained.size + + while (pending.isNotEmpty()) { + val (name, budget) = pending.removeFirst() + val descriptor = byName[name] ?: continue + + /* Supertypes and interfaces: unconditional. A class without them + * loses the members it inherits, and findNearestAllowedClass would + * silently rebase it on something further up. */ + descriptor.superclassName + .takeIf { it.isNotEmpty() } + ?.let { enqueue(it, budget) } + + for (interfaceName in descriptor.interfaceNames) { + enqueue(interfaceName, budget) + } + + /* The enclosing class, so a nested class is reachable at all, and + * the nested classes, which JS names through their outer. */ + val idx = name.lastIndexOf('$') + if (idx > 0) { + enqueue(name.substring(0, idx), budget) + } + for (nested in nestedByOuter[name].orEmpty()) { + enqueue(nested, budget) + } + + /* Kotlin extension functions appear on the receiver but are + * declared in a file class the app never names -- there is no + * reference anywhere to pull it in, so it has to be looked up from + * the receiver side. Unconditional: dropping it silently removes + * methods from a class that is being kept. */ + for (extension in ExtensionFunctionsStorage.getInstance().retrieveFunctions(name)) { + extension.declaringClass.className + .takeIf { it.isNotEmpty() } + ?.let { enqueue(it, budget) } + } + + if (budget <= 0) continue + val next = if (budget == Int.MAX_VALUE) budget else budget - 1 + + /* Signature types: the step whose absence crashes the app at + * launch rather than at the call site. */ + for (method in descriptor.methods) { + elementClassName(method.returnType.signature)?.let { enqueue(it, next) } + for (argument in method.argumentTypes) { + elementClassName(argument.signature)?.let { enqueue(it, next) } + } + } + + for (field in descriptor.fields) { + elementClassName(field.type.signature)?.let { enqueue(it, next) } + } + } + + return retained + } +} diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt new file mode 100644 index 000000000..ecfddad36 --- /dev/null +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt @@ -0,0 +1,65 @@ +package com.telerik.metadata.security.filtering.closure + +import java.io.File + +/** + * Writes the retained set out as R8/ProGuard keep rules. + * + * Metadata and dex have to agree. Metadata says which classes JS can name; R8 + * decides which classes survive into the dex. Neither can see the other's + * input -- R8 cannot read JS, and the metadata generator does not shrink code -- + * so the only way they stay consistent is to drive both from the same set. + * + * The rules keep, and nothing else: whatever the closure did not retain is left + * for R8 to remove. So this file is what makes shrinking safe to turn on, not + * an extra restriction on top of it. + * + * Members are kept wholesale for a retained class. Per-member rules would need + * the JS side to have resolved every call exactly, and it cannot -- a computed + * or reflective call names no member at all. Keeping all members of a class the + * app can reach is the conservative half of that trade; the class-level strip + * is where the size comes from. + */ +object ProguardRulesWriter { + + fun write(target: File, retainedClasses: Set) { + target.parentFile?.mkdirs() + + target.bufferedWriter().use { out -> + out.write( + """ + # GENERATED by the NativeScript metadata generator. Do not edit. + # + # Keeps every class reachable from JS, as computed by + # MetadataClosure from the app's own bundle. Classes absent + # here are absent from the metadata too, so JS cannot name + # them and R8 is free to remove them. + # + # Regenerate by rebuilding; see docs/metadata-filtering.md. + + """.trimIndent() + ) + out.newLine() + + /* The runtime reaches these by name from native code, so no static + * analysis of either side can see the reference. */ + out.write( + """ + -keep class com.tns.** { *; } + -keep class **.R$* { *; } + -keepattributes Signature,InnerClasses,EnclosingMethod,*Annotation* + + """.trimIndent() + ) + out.newLine() + + for (name in retainedClasses.sorted()) { + /* $ separates nested classes in the binary name and is also + * ProGuard's own wildcard-free separator -- it needs no + * escaping, but the name must not be split on it either. */ + out.write("-keep class $name { *; }") + out.newLine() + } + } + } +} diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/input/user/UserPatternsCollection.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/input/user/UserPatternsCollection.kt index a1e4e04c8..279a3fcdd 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/input/user/UserPatternsCollection.kt +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/input/user/UserPatternsCollection.kt @@ -15,6 +15,15 @@ object UserPatternsCollection : PatternsCollection { private set + /** + * Whether a whitelist file was actually supplied. Distinguishes "the app + * asked for everything" from "the app asked for nothing in particular", + * which the default `*:*` entry alone cannot express -- and which decides + * whether the closure runs at all. + */ + var whitelistProvided: Boolean = false + private set + override fun populateWhitelistEntriesFromFile(filePath: String) { val path = Paths.get(filePath) @@ -22,6 +31,7 @@ object UserPatternsCollection : PatternsCollection { return } + whitelistProvided = true whitelistEntries = parseFile(path) + PatternEntry("java.lang", "Object") + PatternEntry("com.tns.gen*", "*") diff --git a/platforms/android/test-app/build-tools/metadata-filter/harvest.js b/platforms/android/test-app/build-tools/metadata-filter/harvest.js index 4c7822ee4..697687926 100644 --- a/platforms/android/test-app/build-tools/metadata-filter/harvest.js +++ b/platforms/android/test-app/build-tools/metadata-filter/harvest.js @@ -68,8 +68,25 @@ function splitPackageAndClass(segments) { return null; } +/* Extra roots supplied by the build, for classpaths whose top-level packages + * the list above does not anticipate. The list is a convenience, not a + * contract -- a package name it has never heard of is exactly the case this + * escape hatch exists for. */ +const extraRoots = []; + function isJavaRoot(name) { - return JAVA_ROOTS.indexOf(name) !== -1; + return JAVA_ROOTS.indexOf(name) !== -1 || extraRoots.indexOf(name) !== -1; +} + +/* + * A root package whose name is a JS keyword cannot be a global identifier, so + * MetadataNode::CreateTopLevelNamespaces exposes it prefixed with '$' -- + * `in.tns.foo.Bar` is reached from JS as `$in.tns.foo.Bar`. The prefix is + * therefore a positive signal that a chain is Java, and the only way to see + * such a package at all. + */ +function unmangleRoot(name) { + return name.length > 1 && name[0] === "$" ? name.slice(1) : name; } class Harvest { @@ -120,7 +137,9 @@ function staticChain(node) { if (!cur || cur.type !== "Identifier") { return null; } - segments.push(cur.name); + /* A '$'-prefixed root is a JS-keyword package; recover the real name. */ + segments.push(unmangleRoot(cur.name)); + const keywordPrefixed = cur.name !== segments[0]; for (let i = stack.length - 1; i >= 0; i--) { const m = stack[i]; @@ -140,7 +159,7 @@ function staticChain(node) { segments.push(m.property.name); } - return { segments, truncated }; + return { segments, truncated, keywordPrefixed }; } function harvestFile(filePath, source, harvest) { @@ -178,7 +197,9 @@ function harvestFile(filePath, source, harvest) { } const chain = staticChain(p.node); - if (!chain || !isJavaRoot(chain.segments[0])) return; + /* The '$' prefix is itself proof of a Java package, so such a chain is + * accepted whether or not its root is on the known list. */ + if (!chain || !(chain.keywordPrefixed || isJavaRoot(chain.segments[0]))) return; const split = splitPackageAndClass(chain.segments); @@ -268,6 +289,8 @@ function main() { for (let i = 0; i < args.length; i++) { if (args[i] === "--json") { jsonOut = args[++i]; + } else if (args[i] === "--extra-root") { + extraRoots.push(args[++i]); } else { targets.push(args[i]); } diff --git a/platforms/android/test-app/build-tools/metadata-filter/seed.js b/platforms/android/test-app/build-tools/metadata-filter/seed.js new file mode 100644 index 000000000..9ff60ba2a --- /dev/null +++ b/platforms/android/test-app/build-tools/metadata-filter/seed.js @@ -0,0 +1,215 @@ +/* + * Turns a harvest of the app's JS into the seed whitelist the metadata + * generator grows its closure from. + * + * The seed is deliberately generous. Everything here is a *lower* bound on what + * the app needs -- the generator widens it further (supertypes, nested classes, + * signature types) before anything is dropped. The rules below are the ones + * that cannot be derived from the class graph and so have to be decided here: + * + * - what the JS names, exactly -> resolved harvest + * - what the JS reaches but does not name -> root hints, as pkg:* + * - what Android instantiates by name -> the manifest + * - what the runtime itself resolves -> the keep-list below + * + * When in doubt this file keeps more. Over-inclusion costs bytes; the + * under-inclusion failures are launch crashes. + */ + +const fs = require("fs"); +const path = require("path"); +const { execFileSync } = require("child_process"); + +/* + * Classes the runtime resolves from native code or by reflection. No analysis + * of either the JS or the class graph can see these references, so they are + * listed by hand -- and they live here, next to the runtime they belong to, + * rather than in any individual app's config. + * + * Derived from the string literals in NativeScript/ffi/jni/jsi and + * NativeScript/runtime/android/jsi; keep in step when that changes. The + * Throwable and reflect entries are there because exceptions and members + * arrive at JS as objects whose type the app never mentions. + */ +const RUNTIME_KEEP = [ + "com.tns:*", + "java.lang:Object", + "java.lang:Class", + "java.lang:String", + "java.lang:CharSequence", + "java.lang:Number", + "java.lang:Boolean", + "java.lang:Byte", + "java.lang:Character", + "java.lang:Short", + "java.lang:Integer", + "java.lang:Long", + "java.lang:Float", + "java.lang:Double", + "java.lang:Void", + "java.lang:Enum", + "java.lang:Iterable", + "java.lang:Runnable", + "java.lang:Thread", + "java.lang:ClassLoader", + "java.lang:StackTraceElement", + /* every Throwable: they reach JS as thrown objects, named nowhere */ + "java.lang:Throwable", + "java.lang:Exception", + "java.lang:RuntimeException", + "java.lang:Error", + "java.lang:*Exception", + "java.lang:*Error", + "java.lang.reflect:*", + "java.lang.annotation:*", + "java.io:*Exception", + "java.util:*Exception", + "java.nio:ByteBuffer", + "java.nio:ByteOrder", + "java.nio:Buffer", + "dalvik.system:*", + "android.os:Bundle", + "android.os:Looper", + "android.os:Handler", + "android.os:Process", + "android.app:Activity", + "android.app:Application", + "android.content:Context", + "org.json:*", +]; + +function parseManifest(manifestPath) { + /* android:name on any component -- Android instantiates these by name, so + * they must exist however the JS is written. Regex rather than an XML + * parser: the attribute is unambiguous and this avoids a dependency. */ + const names = new Set(); + if (!fs.existsSync(manifestPath)) return names; + + const xml = fs.readFileSync(manifestPath, "utf8"); + const re = /android:name\s*=\s*"([^"]+)"/g; + let m; + while ((m = re.exec(xml)) !== null) { + const v = m[1]; + /* Permissions and features share the attribute; only dotted names that + * look like classes are of interest. */ + if (v.indexOf(".") > 0 && !v.startsWith("android.permission") && !v.startsWith("android.hardware")) { + names.add(v.startsWith(".") ? v.slice(1) : v); + } + } + return names; +} + +function toEntry(fqn) { + const segments = fqn.split("."); + for (let i = 0; i < segments.length; i++) { + if (segments[i] && segments[i][0] >= "A" && segments[i][0] <= "Z") { + return segments.slice(0, i).join(".") + ":" + segments.slice(i).join("."); + } + } + return null; +} + +function main() { + const args = process.argv.slice(2); + let out = null; + let manifest = null; + let bindings = null; + const targets = []; + /* Paths whose parse failure is expected -- the runtime test-app ships files + * that are invalid on purpose, to test how the loader reports them. Nothing + * an ordinary app should ever need. */ + const allowUnparseable = []; + + for (let i = 0; i < args.length; i++) { + if (args[i] === "--out") out = args[++i]; + else if (args[i] === "--manifest") manifest = args[++i]; + else if (args[i] === "--sbg-bindings") bindings = args[++i]; + else if (args[i] === "--allow-unparseable") allowUnparseable.push(args[++i]); + else targets.push(args[i]); + } + + if (!out || targets.length === 0) { + console.error( + "usage: seed.js … --out whitelist.mdg [--manifest AndroidManifest.xml] [--sbg-bindings sbg-bindings.txt]" + ); + process.exit(2); + } + + /* Run the harvester in-process so the two cannot disagree about grammar. */ + const harvestJson = path.join(path.dirname(out), ".metadata-harvest.json"); + execFileSync( + process.execPath, + [path.join(__dirname, "harvest.js"), ...targets, "--json", harvestJson], + { stdio: ["ignore", "ignore", "inherit"] } + ); + const harvest = JSON.parse(fs.readFileSync(harvestJson, "utf8")); + + /* A file we could not parse is a file whose Java usage is entirely unknown. + * Filtering on a partial view of the program is how apps break in the field, + * so refuse to emit a seed at all -- the generator then ships everything. */ + const parseErrors = harvest.unresolved + .filter((u) => u.kind === "parse-error") + .filter((u) => !allowUnparseable.some((p) => u.file.indexOf(p) !== -1)); + if (parseErrors.length > 0) { + console.error( + `seed: ${parseErrors.length} file(s) could not be parsed; metadata filtering disabled for this build:` + ); + for (const e of parseErrors.slice(0, 10)) console.error(` ${e.file}: ${e.detail}`); + if (fs.existsSync(out)) fs.unlinkSync(out); + process.exit(0); + } + + const entries = new Set(RUNTIME_KEEP); + + for (const fqn of harvest.resolved) { + const e = toEntry(fqn); + if (e) entries.add(e); + } + + /* The easing rule. A computed access or a package alias tells us which + * package the program reaches into but not which class; keep the package + * whole rather than guess. This is also what preserves feature-detection + * guards like `if (android.support.design && …)`, which throw when an + * intermediate package node disappears rather than merely being empty. */ + for (const root of harvest.roots) { + entries.add(root + ":*"); + } + + for (const name of parseManifest(manifest)) { + const e = toEntry(name); + if (e) entries.add(e); + } + + /* SBG bindings: the base class and interfaces of everything the app extends. + * Field 0 is the base, field 8 the interface list. */ + if (bindings && fs.existsSync(bindings)) { + for (const line of fs.readFileSync(bindings, "utf8").split("\n")) { + if (!line.trim()) continue; + const f = line.split("*"); + for (const candidate of [f[0], ...(f[8] ? f[8].split(",") : [])]) { + const name = (candidate || "").trim().replace(/\//g, "."); + if (!name) continue; + const e = toEntry(name); + if (e) entries.add(e); + } + } + } + + const sorted = Array.from(entries).sort(); + fs.writeFileSync( + out, + "# GENERATED from the app's JS bundle. Do not edit.\n" + + "# Seed only -- the metadata generator computes the closure over\n" + + "# supertypes, nested classes and signature types before filtering.\n" + + "# See docs/metadata-filtering.md.\n" + + sorted.join("\n") + + "\n" + ); + + console.error( + `seed: ${sorted.length} entries ` + + `(${harvest.resolved.length} named, ${harvest.roots.length} eased to whole packages)` + ); +} + +main(); From 620dde9dbb86a82482968764381daffa8dd7aece Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 22:50:15 +0500 Subject: [PATCH 21/98] feat(metadata): verify closure soundness and derive the filter seed in gradle (cherry picked from commit 89cc963996347e394836ceb47240e75b0b693563) --- docs/metadata-filtering.md | 78 ++++++++++++-- .../react-native/android/nativescript.gradle | 100 ++++++++++++++++-- platforms/android/test-app/app/build.gradle | 80 +++++++++++++- .../src/src/com/telerik/metadata/Builder.java | 61 +++++++++++ .../filtering/closure/ClosureVerifier.kt | 49 +++++++++ scripts/build_react_native_android_tools.sh | 8 ++ 6 files changed, 358 insertions(+), 18 deletions(-) create mode 100644 platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ClosureVerifier.kt diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 23085729a..0f1321257 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -233,12 +233,78 @@ Members are kept wholesale per retained class. Per-member rules would need the JS side to have resolved every call exactly, which it cannot; the class-level strip is where the size comes from anyway. +## Turning it on + +One flag, both builds. Off by default. + +```bash +# runtime test-app +./gradlew :app:assembleDebug -PnsFilterMetadata + +# a React Native app (release variants only -- debug has no bundle on disk) +./gradlew :app:assembleRelease -PnsFilterMetadata +``` + +The seed is derived automatically from the app's own JS: the test-app reads its +asset directory, and the RN plugin reuses the bundle the static binding +generator already produces, so no third Metro run. An app-authored +`whitelist.mdg` is concatenated with the generated one rather than replacing it +-- both are keep-lists, so a hand-written entry can only ever add. + +Turning the flag off deletes the generated seed. A stale seed left behind would +keep filtering on for a build that asked for it to be off, which is the +confusing direction to fail. + +## The soundness check + +`ClosureVerifier` fails the build if the filter changed the meaning of any +signature it emitted. It does not re-derive the closure -- it watches what +generation actually did, so it catches a closure that is wrong as well as one +that is incomplete. Only substitutions of types that exist on the classpath +count; a type that is genuinely absent is widened unfiltered too. + +Verified in both directions. Clean on the working filter, and with +`android.os:Bundle` blacklisted to simulate a closure bug: + +``` +Metadata filter is unsound: 1 signature type(s) were replaced by a supertype +because the filter dropped them. Each is a NoSuchMethodError waiting to happen +at runtime. + android.os.Bundle -> android.os.BaseBundle (needed by android.animation.LayoutTransition) +``` + +That is the exact defect that produced the launch crash, caught at build time. + +## App size + +Measured on the test-app debug APK, same build both ways: + +| | Unfiltered | Filtered | Saved | +|---|---|---|---| +| Metadata on disk | 2,836,154 | 699,752 | **-75.3%** | +| Metadata in the APK (compressed) | 1,053,583 | 266,669 | -74.7% | +| **APK total** | 45,907,151 | 45,120,239 | **-786,912 (-1.7%)** | + +The APK saving equals the compressed-metadata saving exactly, so nothing is lost +to alignment. The relative figure is small only because this APK carries 22 +uncompressed `.so` files for four ABIs; against a single-ABI release APK the +same ~770KB is a much larger share. + +> Measure this with a clean `packageDebug`. Incremental packaging reuses the +> previous APK layout and pads the freed space instead of reclaiming it -- two +> APKs whose metadata differed by 787KB came out **byte-identical in total +> size**, which reads exactly like the filter having no effect. + +The runtime win is not measured here: less metadata is also less to parse and +hold at startup. + ## Status -Done: both instruments, the taxonomy, the closure, the easing rules, the seed -generator, the keep-rules emitter. Green on the 520-spec suite. +Done: the instruments, the taxonomy, the closure, the easing rules, the seed +generator, the keep-rules emitter, the soundness check, and Gradle wiring for +both the test-app and the RN plugin. Green on the 520-spec suite with filtering +on, and the size numbers above. -Not done: wiring the seed generation into the Gradle task automatically (it is -run by hand today), the RN/guest side, and the build-time referential-closure -check (11) -- the closure constructs the set correctly, but nothing yet -re-verifies the emitted tree independently. +Not done: the RN path is registered and configures, but has not been run through +a full release build end to end. R8 shrinking is still off by default -- the +keep rules make it safe to enable, they do not enable it. diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 653c8f86c..688020671 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -42,6 +42,11 @@ def nsEntryFile = reactExt?.entryFile?.getOrNull()?.asFile?.absolutePath def nsGenerateTypings = project.hasProperty("nsGenerateTypings") && Boolean.parseBoolean(project.property("nsGenerateTypings").toString()) +// Restrict metadata to what the app's bundle can reach. Opt-in while it earns +// trust; release builds only, since a debug build has no bundle on disk to +// analyse and guessing from a partial view is what breaks apps. +def nsFilterMetadata = project.hasProperty("nsFilterMetadata") + // Where the .dat files land. This is added to the asset source set rather than // written into src/, so a clean build regenerates and nothing lands in version // control. NativeScriptNativeApiModule copies them out of the APK on first run. @@ -193,14 +198,32 @@ android.applicationVariants.all { variant -> // Optional filters, same file names and format the NativeScript CLI // uses. Absent means "everything on the classpath". - ["whitelist.mdg", "blacklist.mdg"].each { name -> - def source = file("${project.projectDir}/${name}") - def target = new File(workDir, name) - if (source.exists()) { - target.text = source.text - } else { - target.delete() - } + // + // whitelist.mdg has two possible sources: one derived from the + // app's bundle by generateNativeScriptMetadataSeed, and one the app + // author wrote. They are concatenated rather than one winning -- + // both are keep-lists, and the generator takes the union before + // computing its closure. A hand-written entry can therefore only + // ever add, which is the safe direction. + def generatedSeed = new File(workDir, "generated-whitelist.mdg") + def authoredWhitelist = file("${project.projectDir}/whitelist.mdg") + def whitelistTarget = new File(workDir, "whitelist.mdg") + + if (generatedSeed.exists() || authoredWhitelist.exists()) { + def parts = [] + if (generatedSeed.exists()) parts.add(generatedSeed.text) + if (authoredWhitelist.exists()) parts.add(authoredWhitelist.text) + whitelistTarget.text = parts.join("\n") + } else { + whitelistTarget.delete() + } + + def blacklistSource = file("${project.projectDir}/blacklist.mdg") + def blacklistTarget = new File(workDir, "blacklist.mdg") + if (blacklistSource.exists()) { + blacklistTarget.text = blacklistSource.text + } else { + blacklistTarget.delete() } logger.lifecycle("NativeScript: generating metadata from ${jars.size()} jars and " + @@ -434,6 +457,67 @@ android.applicationVariants.all { variant -> // javac; it also makes javac depend on this task, which is why the // bundling above has to be free of any dependency on compiled classes. variant.registerJavaGeneratingTask(bindingsTask.get(), sbgJavaDir) + + // Ship metadata for what the app can actually reach, rather than for + // every class on the compile classpath. + // + // Reuses the bundle the binding generator already produced -- the whole + // reason this is release-only is that debug has no JS on disk to read, + // and a filter built from a partial view of the program is how apps + // break in the field. The seed is only a starting point: the generator + // closes over supertypes, nested classes and signature types, and fails + // the build if that closure turns out unsound. + // See docs/metadata-filtering.md. + if (nsFilterMetadata) { + def seedTask = tasks.register("generateNativeScriptMetadataSeed${variantName}") { + group = "nativescript" + description = "Derives the metadata whitelist from the ${variant.name} bundle." + + dependsOn(bindingsTask) + + inputs.dir(sbgBundleDir) + inputs.files(fileTree(new File(toolsDir, "metadata-filter"))) + outputs.file(new File(workDir, "generated-whitelist.mdg")) + + doLast { + workDir.mkdirs() + + def seedScript = new File(toolsDir, "metadata-filter/seed.js") + if (!seedScript.exists()) { + throw new GradleException( + "NativeScript: ${seedScript} is missing. It ships with " + + "@nativescript/react-native; reinstall the package, or run " + + "scripts/build_react_native_android_tools.sh from a checkout.") + } + + def cmd = ["node", seedScript.absolutePath, sbgBundleDir.absolutePath, + "--out", new File(workDir, "generated-whitelist.mdg").absolutePath] + + def manifest = android.sourceSets.main.manifest.srcFile + if (manifest != null && manifest.exists()) { + cmd.addAll(["--manifest", manifest.absolutePath]) + } + + def bindings = new File(sbgWorkDir, "sbg-bindings.txt") + if (bindings.exists()) { + cmd.addAll(["--sbg-bindings", bindings.absolutePath]) + } + + logger.lifecycle("NativeScript: deriving metadata filter from ${sbgBundleDir}") + + // Real Strings: interpolated paths are GStrings, which + // ProcessBuilder's List will not take. + def process = new ProcessBuilder(cmd.collect { it.toString() }) + .redirectErrorStream(true).start() + process.inputStream.eachLine { logger.lifecycle(" [metadata-seed] $it") } + if (process.waitFor() != 0) { + throw new GradleException("NativeScript: metadata seed generation failed.") + } + } + } + + metadataTask.configure { it.dependsOn(seedTask) } + } } // Metadata describes the compiled classes, so it has to run after javac and diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index 8cf7da956..202b9aa61 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -744,12 +744,84 @@ task 'collectAllJars' { } } +// Derives whitelist.mdg from the app's own JS, so metadata carries only what +// the app can reach. Opt-in: without -PnsFilterMetadata the seed is removed and +// the generator emits everything, which is the behaviour every existing build +// already has. +// +// The seed is only a starting point -- the generator closes over supertypes, +// nested classes and signature types before dropping anything, and fails the +// build if that closure turns out to be unsound. See docs/metadata-filtering.md. +def nsFilterMetadata = project.hasProperty("nsFilterMetadata") + +task generateMetadataSeed { + def seedScript = "$BUILD_TOOLS_PATH/metadata-filter/seed.js" + def generatedSeed = file("$rootDir/whitelist.mdg") + + inputs.property("enabled", nsFilterMetadata) + inputs.dir(APP_DIR) + inputs.files(fileTree("$BUILD_TOOLS_PATH/metadata-filter") { include "*.js" }) + outputs.file(generatedSeed) + + doLast { + if (!nsFilterMetadata) { + // Leaving a stale seed behind would keep filtering on for a build + // that did not ask for it -- the confusing direction to fail. + if (generatedSeed.exists()) { + generatedSeed.delete() + outLogger.withStyle(Style.Info).println "\t ~ metadata filtering off; removed generated whitelist.mdg" + } + return + } + + def cmd = ["node", seedScript, APP_DIR, + "--manifest", "$projectDir/src/main/AndroidManifest.xml", + "--out", generatedSeed.absolutePath] + + def bindings = file("$BUILD_TOOLS_PATH/$SBG_BINDINGS_NAME") + if (bindings.exists()) { + cmd.addAll(["--sbg-bindings", bindings.absolutePath]) + } + + // This app ships files that are invalid on purpose, to test how the + // loader reports them. Anywhere else an unparseable file disables + // filtering for the whole build. + cmd.addAll(["--allow-unparseable", "shared/Require/SyntaxErrorInModule", + "--allow-unparseable", "shared/Workers/WorkerInvalidSyntax"]) + + // ProcessBuilder needs real Strings; interpolated paths are GStrings. + def process = new ProcessBuilder(cmd.collect { it.toString() }) + .redirectErrorStream(true).start() + process.inputStream.eachLine { outLogger.withStyle(Style.Info).println "\t ~ [metadata-seed] $it" } + if (process.waitFor() != 0) { + throw new GradleException("NativeScript: metadata seed generation failed.") + } + } +} + task copyMetadataFilters { + dependsOn generateMetadataSeed + + // Declared so the task re-runs when a filter file appears or disappears. + // Without inputs it has none to compare, stays up to date on the strength + // of its outputs alone, and leaves the previous build's filter in place -- + // which silently keeps filtering on for a build that turned it off. + inputs.files("$rootDir/whitelist.mdg", "$rootDir/blacklist.mdg") outputs.files("$BUILD_TOOLS_PATH/whitelist.mdg", "$BUILD_TOOLS_PATH/blacklist.mdg") - // use an explicit copy task here because the copy task itselfs marks the whole built-tools as an output! - copy { - from file("$rootDir/whitelist.mdg"), file("$rootDir/blacklist.mdg") - into "$BUILD_TOOLS_PATH" + + // Copies at execution time, not configuration time: the seed does not exist + // until generateMetadataSeed has run. Files.copy rather than project.copy, + // which Gradle 9 no longer allows during execution. + doLast { + ["whitelist.mdg", "blacklist.mdg"].each { name -> + def source = file("$rootDir/$name") + def target = file("$BUILD_TOOLS_PATH/$name") + if (source.exists()) { + Files.copy(source.toPath(), target.toPath(), StandardCopyOption.REPLACE_EXISTING) + } else { + target.delete() + } + } } } diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java index 5eff93cfd..4037e9d3c 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java @@ -20,6 +20,7 @@ import com.telerik.metadata.security.classes.SecuredClassRepository; import com.telerik.metadata.security.classes.SecuredNativeClassDescriptor; import com.telerik.metadata.security.filtering.blacklisting.MetadataBlacklist; +import com.telerik.metadata.security.filtering.closure.ClosureVerifier; import com.telerik.metadata.security.filtering.closure.MetadataClosure; import com.telerik.metadata.security.filtering.closure.ProguardRulesWriter; import com.telerik.metadata.security.filtering.input.PatternEntry; @@ -125,6 +126,7 @@ static TreeNode build(List paths, List classes) throws Exception SecuredNativeClassDescriptor clazz = SecuredClassRepository.INSTANCE.findClass(className); if (clazz.isUsageAllowed()) { + ClosureVerifier.INSTANCE.setCurrentContext(className); generate(clazz.getNativeDescriptor(), root); } } catch (Throwable e) { @@ -136,6 +138,8 @@ static TreeNode build(List paths, List classes) throws Exception ensureSeedPackageSpine(root); + assertClosureIsSound(); + System.out.println("Added Properties "+TreeNode.addedProperties); System.out.println("Ignored Properties "+TreeNode.skippedProperties+" duplicates."); System.out.println("Added Methods "+TreeNode.addedMethods); @@ -189,6 +193,7 @@ private static void applyClosureIfRequested() { }); SecuredClassRepository.INSTANCE.applyClosure(retained); + ClosureVerifier.INSTANCE.setEnabled(true); System.out.println(String.format( "Metadata filter: seed %d classes -> retained %d after closure (depth %s).", @@ -202,6 +207,45 @@ private static void applyClosureIfRequested() { } } + /** + * Fails the build if the filter changed the meaning of any signature. + * + * A violation is a latent NoSuchMethodError -- the metadata is well-formed + * and describes a method that does not exist. It would surface only when + * the app happens to call that method, which is exactly the kind of defect + * that ships. The closure is meant to make this set empty; that it is + * checked separately is the point, since a closure bug would otherwise be + * invisible until runtime. + */ + private static void assertClosureIsSound() throws MetadataSecurityViolationException { + Collection violations = ClosureVerifier.INSTANCE.violations(); + if (violations.isEmpty()) { + return; + } + + StringBuilder message = new StringBuilder(); + message.append(String.format( + "Metadata filter is unsound: %d signature type(s) were replaced by a " + + "supertype because the filter dropped them. Each is a " + + "NoSuchMethodError waiting to happen at runtime.%n", + violations.size())); + + int shown = 0; + for (ClosureVerifier.Widening violation : violations) { + if (shown++ == 25) { + message.append(String.format(" … and %d more%n", violations.size() - 25)); + break; + } + message.append(String.format(" %s -> %s (needed by %s)%n", + violation.getRequested(), violation.getSubstituted(), violation.getContext())); + } + + message.append("This is a bug in the closure, not in the app: add the missing edge " + + "to MetadataClosure, or name the type in whitelist.mdg to unblock."); + + throw new MetadataSecurityViolationException(message.toString()); + } + /** * Creates an empty package node for every package the seed named outright, * whether or not any class under it survived. @@ -553,6 +597,15 @@ private static TreeNode getOrCreateNode(TreeNode root, NativeTypeDescriptor type return null; } + // A substitution here rewrites the signature being emitted. Only a + // type that exists on the classpath indicts the filter -- one that + // was never there is widened with or without filtering. + String resolved = clazz.getNativeDescriptor().getClassName(); + if (!resolved.equals(name) + && SecuredClassRepository.INSTANCE.findClassUnfiltered(name) != null) { + ClosureVerifier.INSTANCE.record(name, resolved); + } + node = getOrCreateNode(root, clazz.getNativeDescriptor(), null); } @@ -729,6 +782,14 @@ private static TreeNode createArrayNode(TreeNode root, String className) SecuredNativeClassDescriptor securedNativeClassDescriptor = SecuredClassRepository.INSTANCE.findNearestAllowedClass(name); if (securedNativeClassDescriptor.isUsageAllowed()) { NativeClassDescriptor nativeClassDescriptor = securedNativeClassDescriptor.getNativeDescriptor(); + + // Array element types reach signatures the same way; see + // the sibling check in getOrCreateNode(root, type). + if (!nativeClassDescriptor.getClassName().equals(name) + && SecuredClassRepository.INSTANCE.findClassUnfiltered(name) != null) { + ClosureVerifier.INSTANCE.record(name, nativeClassDescriptor.getClassName()); + } + child.nodeType = nativeClassDescriptor.isInterface() ? TreeNode.Interface : TreeNode.Class; if (nativeClassDescriptor.isStatic()) { diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ClosureVerifier.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ClosureVerifier.kt new file mode 100644 index 000000000..fefd3f9d9 --- /dev/null +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ClosureVerifier.kt @@ -0,0 +1,49 @@ +package com.telerik.metadata.security.filtering.closure + +/** + * Independent check that the filter did not quietly change the meaning of any + * signature it emitted. + * + * The closure is supposed to retain every type a retained signature mentions. + * If it misses one, nothing fails at build time: Builder.getOrCreateNode calls + * findNearestAllowedClass, which substitutes the nearest retained *ancestor*. + * `onCreate(Bundle)` becomes `onCreate(Object)`, the metadata is written + * happily, and the app dies at the call site: + * + * java.lang.NoSuchMethodError: no non-static method + * "Landroid/app/Activity;.onCreate(Ljava/lang/Object;)V" + * + * So the substitution *is* the defect, and this records every one. The check + * does not re-derive the closure -- it watches what generation actually did, + * which is why it catches a closure that is wrong as well as one that is + * incomplete. + * + * Only substitutions of types that exist on the classpath count. A type that is + * genuinely absent is widened unfiltered too; that is pre-existing behaviour and + * an app can compile against an SDK it does not ship. + */ +object ClosureVerifier { + + data class Widening(val requested: String, val substituted: String, val context: String) + + private val widenings = LinkedHashMap() + + var enabled: Boolean = false + + /** Set while a class's members are generated, to attribute the violation. */ + var currentContext: String = "" + + fun record(requested: String, substituted: String) { + if (!enabled) return + if (requested == substituted) return + + widenings.putIfAbsent(requested, Widening(requested, substituted, currentContext)) + } + + fun violations(): Collection = widenings.values + + fun reset() { + widenings.clear() + currentContext = "" + } +} diff --git a/scripts/build_react_native_android_tools.sh b/scripts/build_react_native_android_tools.sh index 826b98a04..917c80c72 100755 --- a/scripts/build_react_native_android_tools.sh +++ b/scripts/build_react_native_android_tools.sh @@ -59,5 +59,13 @@ mkdir -p "$TOOLS_DIR/jsparser" --exclude package-lock.json . ) | (cd "$TOOLS_DIR/jsparser" && tar xf -) +# Derives the metadata whitelist from the app's own bundle. Plain node scripts +# that reuse the Babel packages jsparser already depends on. +rm -rf "$TOOLS_DIR/metadata-filter" +mkdir -p "$TOOLS_DIR/metadata-filter" +cp "$TEST_APP_DIR/build-tools/metadata-filter/harvest.js" \ + "$TEST_APP_DIR/build-tools/metadata-filter/seed.js" \ + "$TOOLS_DIR/metadata-filter/" + checkpoint "Staged:" ls -la "$TOOLS_DIR" From 708e588ecccee5b395e7e3c4beddac3a02ba54fd Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 23:04:17 +0500 Subject: [PATCH 22/98] feat(metadata): enforce the generated keep rules so R8 strips the same set (cherry picked from commit d80fccd42f472555da8b138f35110fead6a7fd7b) --- docs/metadata-filtering.md | 64 +++++++++++++------ platforms/android/test-app/app/build.gradle | 16 ++++- .../filtering/closure/ProguardRulesWriter.kt | 24 +++++++ 3 files changed, 84 insertions(+), 20 deletions(-) diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 0f1321257..a3d13ea94 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -277,26 +277,54 @@ That is the exact defect that produced the launch crash, caught at build time. ## App size -Measured on the test-app debug APK, same build both ways: +Release APK, arm64 only, Hermes, `-PnsFilterMetadata` (which also turns on R8 +with the generated keep rules). Clean build on each side. -| | Unfiltered | Filtered | Saved | +| | Unfiltered | Filtered + R8 | Saved | |---|---|---|---| -| Metadata on disk | 2,836,154 | 699,752 | **-75.3%** | -| Metadata in the APK (compressed) | 1,053,583 | 266,669 | -74.7% | -| **APK total** | 45,907,151 | 45,120,239 | **-786,912 (-1.7%)** | - -The APK saving equals the compressed-metadata saving exactly, so nothing is lost -to alignment. The relative figure is small only because this APK carries 22 -uncompressed `.so` files for four ABIs; against a single-ABI release APK the -same ~770KB is a much larger share. - -> Measure this with a clean `packageDebug`. Incremental packaging reuses the -> previous APK layout and pads the freed space instead of reclaiming it -- two -> APKs whose metadata differed by 787KB came out **byte-identical in total -> size**, which reads exactly like the filter having no effect. - -The runtime win is not measured here: less metadata is also less to parse and -hold at startup. +| **APK total** | 28,899,229 | 26,432,698 | **-2,466,531 (-8.5%)** | +| dex (uncompressed) | 7,060,432 | 1,986,864 | **-5,073,568 (-71.9%)** | +| metadata (compressed) | 939,188 | 238,698 | -700,490 (-74.6%) | + +**The dex is where the win is** -- 7.1 MB to 2.0 MB. Metadata filtering saves +0.7 MB on its own; letting R8 strip the same set saves five megabytes more. The +two only work together: R8 cannot see that JS reaches a class, so without the +generated keep rules it strips the app's own dependencies, and with a keep-all +rule it strips nothing. + +The APK still being 26 MB is the four `.so` files (Hermes, the runtime, libc++, +fbjni), which no metadata work touches. + +Verified: **520 specs, 0 failures** on the shrunk release APK, not just on the +filtered metadata. + +> Measure on a clean `packageRelease`. Incremental packaging reuses the previous +> APK layout and pads the freed space instead of reclaiming it -- two debug APKs +> whose metadata differed by 787KB came out **byte-identical in total size**, +> which reads exactly like the filter having no effect. + +### Why the rules say -dontobfuscate + +Shrinking is kept; renaming is not. Every lookup this runtime makes is by name: +metadata names classes, JS names them through it. A `-keep` rule preserves the +names of classes it *matches*, but R8 still renames the synthetic classes it +generates itself. + +That is not hypothetical. Below minSdk 24, desugaring moves a static interface +method into a synthetic companion (`Foo$-CC`), and the runtime tries the +interface and both companion spellings in turn +(`JEnv::GetInterfaceStaticMethodIDAndJClass`). With renaming on, R8 kept the +companion -- it is in `seeds.txt` -- and emitted it as `B.a`: + +``` +com.tns.tests.interfaces.staticmethods.StaticProducer$-CC -> B.a: +# {"id":"com.android.tools.r8.synthesized"} +``` + +Three specs failed with "Could not call static interface method". Adding +`-keep class **$-CC { *; }` did not help, because the defect was renaming rather +than removal. Renaming buys some string space; removing unreachable classes is +where the five megabytes come from, and that still happens. ## Status diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index 202b9aa61..e02e4231a 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -303,6 +303,16 @@ android { } else { signingConfig signingConfigs.debug } + + // Shrink the dex with the same set the metadata was filtered to. + // Only together with -PnsFilterMetadata: without the generated keep + // rules R8 cannot see that JS reaches these classes at all, and + // would strip everything the app depends on. + if (project.hasProperty("nsFilterMetadata")) { + minifyEnabled true + proguardFiles getDefaultProguardFile("proguard-android.txt"), + METADATA_KEEP_RULES + } } } @@ -1432,9 +1442,11 @@ tasks.configureEach({ DefaultTask currentTask -> currentTask.dependsOn(compileBytecode) } -// // ensure buildMetadata is done before R8 to allow custom proguard from metadata + // R8 consumes metadata-keep-rules.pro, which buildMetadata writes. Without + // this ordering R8 either reads the previous build's rules or fails on a + // missing file, and either way strips classes the app reaches from JS. if (currentTask =~ /minify.*WithR8/) { - // buildMetadata.finalizedBy(currentTask) + currentTask.dependsOn(buildMetadata) } if (currentTask =~ /assemble.*Debug/ || currentTask =~ /assemble.*Release/) { currentTask.finalizedBy("validateAppIdMatch") diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt index ecfddad36..24ec53a65 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt @@ -49,6 +49,30 @@ object ProguardRulesWriter { -keep class **.R$* { *; } -keepattributes Signature,InnerClasses,EnclosingMethod,*Annotation* + # Shrink, but do not rename. Every lookup this runtime makes + # is by name: metadata names classes, and JS names them + # through it. A -keep rule preserves the names of classes it + # matches, but R8 still renames the synthetic classes it + # generates itself -- desugaring moved a static interface + # method into StaticProducer${'$'}-CC and R8 emitted it as B.a, + # which the runtime then could not find. Renaming buys some + # string space; removing unreachable classes is where the + # size comes from, and that still happens. + -dontobfuscate + + # Below minSdk 24 a static interface method cannot live on + # the interface, so desugaring moves the body into a + # synthetic companion -- ${'$'}-CC for D8/R8, ${'$'}${'$'}CC for Bazel. The + # runtime tries the interface and both companion names in + # turn (JEnv::GetInterfaceStaticMethodIDAndJClass), so all + # three have to survive. Nothing in Java calls them, so + # without this R8 removes every one: measured, 18 companion + # classes went to 0 and three specs failed with + # "Could not call static interface method". + -keep class **${'$'}-CC { *; } + -keep class **${'$'}${'$'}CC { *; } + -keepclassmembers interface * { public static ; } + """.trimIndent() ) out.newLine() From e819ec3272f9809355adf991fb0ca7bced599af7 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 23:09:18 +0500 Subject: [PATCH 23/98] docs(metadata): report the size win against real payload, not test fixtures (cherry picked from commit 40b002aa3c3ad5d263a4ed503af7a1587d40209b) --- docs/metadata-filtering.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index a3d13ea94..adafcd1cd 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -282,18 +282,28 @@ with the generated keep rules). Clean build on each side. | | Unfiltered | Filtered + R8 | Saved | |---|---|---|---| -| **APK total** | 28,899,229 | 26,432,698 | **-2,466,531 (-8.5%)** | +| APK total, as built | 28,899,229 | 26,432,698 | -2,466,531 (-8.5%) | +| **APK minus test fixtures** | **7,902,658** | **5,436,127** | **-2,466,531 (-31.2%)** | | dex (uncompressed) | 7,060,432 | 1,986,864 | **-5,073,568 (-71.9%)** | | metadata (compressed) | 939,188 | 238,698 | -700,490 (-74.6%) | +Read the second row, not the first. 21 MB of this APK is four +`assets/app/modules/libCalc-*.so` test fixtures -- the same native test module +for all four ABIs, byte-identical in both builds. They live under `assets/` +rather than `lib/`, so `-PonlyArm64` does not filter them, and no real app +carries anything like them. Against the payload an app actually ships, the +saving is about a third of the APK. + **The dex is where the win is** -- 7.1 MB to 2.0 MB. Metadata filtering saves 0.7 MB on its own; letting R8 strip the same set saves five megabytes more. The two only work together: R8 cannot see that JS reaches a class, so without the generated keep rules it strips the app's own dependencies, and with a keep-all rule it strips nothing. -The APK still being 26 MB is the four `.so` files (Hermes, the runtime, libc++, -fbjni), which no metadata work touches. +What is left after the dex is native code that no metadata work can touch: +libhermesvm 1.83 MB, libNativeScript 0.50 MB, libc++_shared 0.45 MB, libfbjni +0.06 MB, libjsi 0.04 MB -- 2.9 MB compressed in total. Once the dex is shrunk, +the engine is the floor. Verified: **520 specs, 0 failures** on the shrunk release APK, not just on the filtered metadata. From 49a245bab3ca1548211ccd68ba3bba203f6e8249 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 9 Aug 2026 23:45:34 +0500 Subject: [PATCH 24/98] fix(metadata): close the filter's coverage gaps and check them (cherry picked from commit ad84359619b76558e1ec7e07d93ede96e799044f) --- .../ffi/jni/jsi/metadata/MetadataNode.cpp | 7 +- .../ffi/jni/jsi/metadata/MetadataReader.cpp | 3 + .../ffi/jni/jsi/metadata/MetadataTreeNode.h | 7 + docs/metadata-filtering.md | 61 +++++++++ .../react-native/android/nativescript.gradle | 9 ++ platforms/android/test-app/app/build.gradle | 44 +++++++ .../metadata-filter/check-runtime-keeplist.js | 121 ++++++++++++++++++ .../build-tools/metadata-filter/harvest.js | 101 ++++++++++----- .../build-tools/metadata-filter/seed.js | 74 ++++++++++- .../metadata-filter/verify-coverage.js | Bin 0 -> 5328 bytes scripts/build_react_native_android_tools.sh | 2 + 11 files changed, 395 insertions(+), 34 deletions(-) create mode 100644 platforms/android/test-app/build-tools/metadata-filter/check-runtime-keeplist.js create mode 100644 platforms/android/test-app/build-tools/metadata-filter/verify-coverage.js diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index c9860cfd2..1029b6cd2 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -916,7 +916,12 @@ void MetadataNode::TraceUsage(MetadataTreeNode *treeNode) { ? "P" : (s_metadataReader.IsNodeTypeInterface(nodeType) ? "I" : "C"); - __android_log_print(ANDROID_LOG_INFO, "NS_MD_USE", "%s %s", kind, name.c_str()); + // R marks a node the metadata files did not contain, rebuilt by reflection. + // A filtered build is allowed to omit these -- that path is why omitting + // them is safe -- so the coverage check must not count them as misses. + const char *origin = treeNode->synthesizedAtRuntime ? "R" : "F"; + + __android_log_print(ANDROID_LOG_INFO, "NS_MD_USE", "%s%s %s", kind, origin, name.c_str()); } #endif diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataReader.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataReader.cpp index 4119d7281..15c0e4cb2 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataReader.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataReader.cpp @@ -290,6 +290,9 @@ MetadataTreeNode *MetadataReader::GetOrCreateTreeNodeByName(const string &classN child = new MetadataTreeNode; child->name = *it++; child->parent = treeNode; + // Rebuilt by reflection because the metadata files did not + // describe it -- see the field's comment. + child->synthesizedAtRuntime = true; string line; string kind; diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataTreeNode.h b/NativeScript/ffi/jni/jsi/metadata/MetadataTreeNode.h index e30cfb1ea..ed07707ec 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataTreeNode.h +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataTreeNode.h @@ -18,6 +18,13 @@ struct MetadataTreeNode { std::string* metadata; uint8_t type; + // True when this node was not read from the metadata files but rebuilt at + // runtime by MetadataReader::GetOrCreateTreeNodeByName, via reflection. + // That path is the reason a class missing from filtered metadata can still + // be marshalled: it is slower, not broken. Only the usage tracer reads + // this, to tell "recovered" apart from "would have thrown". + bool synthesizedAtRuntime = false; + static const uint8_t PACKAGE = 0; static const uint8_t CLASS = 1 << 0; static const uint8_t INTERFACE = 1 << 1; diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index adafcd1cd..38cf2e664 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -255,6 +255,39 @@ Turning the flag off deletes the generated seed. A stale seed left behind would keep filtering on for a build that asked for it to be off, which is the confusing direction to fail. +## The two checks + +Neither one subsumes the other, and the distinction matters. + +**Soundness** -- `ClosureVerifier`, in the generator, no device needed. Proves +the emitted metadata is internally consistent: no signature quietly rewritten. + +**Completeness** -- `verify-coverage.js`, needs a traced run. Proves the app did +not resolve anything the filter dropped. The soundness check is blind to this: +a class the JS names that never entered the seed produces no substitution for +it to notice, so nothing in the generator ever hears about it. + +Run completeness like this: + +```bash +./gradlew :app:assembleDebug -PnsFilterMetadata -Pmetadata-usage-trace +# run the app through as much of itself as possible, capturing logcat, then: +node build-tools/metadata-filter/verify-coverage.js \ + --trace logcat.txt --keep-rules app/build/nativescript/metadata-keep-rules.pro +``` + +On the 520-spec suite: **179 classes resolved from metadata, all retained; 13 +rebuilt by reflection**. That second number is the fallback path working as +designed -- `WindowManagerImpl`, `DirectByteBuffer`, `DecimalFormat` and the +Kotlin companions are absent from the filtered metadata and recovered at +runtime. The trace marks them `R` rather than `F` so the check does not count +them as misses. + +A third check, `checkMetadataRuntimeKeepList`, guards the one hand-written part +of the seed: it greps the runtime C++ for class-name literals and fails if +`RUNTIME_KEEP` no longer covers them. It needs no device and is wired into +`check`. + ## The soundness check `ClosureVerifier` fails the build if the filter changed the meaning of any @@ -336,6 +369,34 @@ Three specs failed with "Could not call static interface method". Adding than removal. Renaming buys some string space; removing unreachable classes is where the five megabytes come from, and that still happens. +## Known limits + +Two checks and a set of heuristics cover most of what static analysis cannot +see. What remains, stated plainly: + +**JS that does not exist at build time cannot be analysed.** CodePush/OTA +updates, `eval` of code fetched at runtime, or class names arriving from a +server. A JS update naming a class the shipped filter dropped will fail, and no +build-time check can see it coming. **Do not enable filtering on an app that +ships JS out of band.** This is not a gap that can be closed -- it is the same +reason R8 cannot shrink a reflective Java app safely. + +**`-dontobfuscate` is forced whenever filtering is on.** Correct for a +name-driven bridge, but it removes obfuscation as an option for apps that want +it for other reasons. Shrinking, where the size comes from, is unaffected. + +**Coverage checking is only as good as the run.** `verify-coverage.js` proves +nothing the traced run touched is missing. A screen the run never opened is not +covered, so point it at the broadest run available. + +**The RN path is release-only**, so an app can pass in debug and fail in +release. That is the safer direction (debug is unfiltered) but it means the +filter's correctness is exercised on the less frequently run build. + +**Not yet run end to end on React Native.** The plugin registers +`generateNativeScriptMetadataSeedRelease` and configures cleanly; a full RN +release build has not been measured. + ## Status Done: the instruments, the taxonomy, the closure, the easing rules, the seed diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 688020671..6cf00dd95 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -498,6 +498,15 @@ android.applicationVariants.all { variant -> cmd.addAll(["--manifest", manifest.absolutePath]) } + // Custom views, fragments and behaviours are named in + // resource XML and inflated by the framework; the JS never + // mentions them. + android.sourceSets.main.res.srcDirs.each { dir -> + if (dir.exists()) { + cmd.addAll(["--res", dir.absolutePath]) + } + } + def bindings = new File(sbgWorkDir, "sbg-bindings.txt") if (bindings.exists()) { cmd.addAll(["--sbg-bindings", bindings.absolutePath]) diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index e02e4231a..298f12f44 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -770,6 +770,7 @@ task generateMetadataSeed { inputs.property("enabled", nsFilterMetadata) inputs.dir(APP_DIR) + inputs.files(fileTree("$projectDir/src/main/res")) inputs.files(fileTree("$BUILD_TOOLS_PATH/metadata-filter") { include "*.js" }) outputs.file(generatedSeed) @@ -788,6 +789,13 @@ task generateMetadataSeed { "--manifest", "$projectDir/src/main/AndroidManifest.xml", "--out", generatedSeed.absolutePath] + // Custom views, fragments and behaviours are named in resource XML and + // instantiated by the framework; nothing in the JS mentions them. + def resDir = file("$projectDir/src/main/res") + if (resDir.exists()) { + cmd.addAll(["--res", resDir.absolutePath]) + } + def bindings = file("$BUILD_TOOLS_PATH/$SBG_BINDINGS_NAME") if (bindings.exists()) { cmd.addAll(["--sbg-bindings", bindings.absolutePath]) @@ -809,6 +817,42 @@ task generateMetadataSeed { } } +// Device-free guard against the one part of the seed that is written by hand. +// Wired into `check` so it runs in CI: the runtime naming a new class from +// native code is otherwise invisible until an app built with filtering on hits +// the code path that needs it. +task checkMetadataRuntimeKeepList { + group = "verification" + description = "Verifies RUNTIME_KEEP covers every class the runtime resolves by name." + + def runtimeSources = ["$rootDir/../../../NativeScript/ffi/jni/jsi", + "$rootDir/../../../NativeScript/runtime/android/jsi"] + def script = "$BUILD_TOOLS_PATH/metadata-filter/check-runtime-keeplist.js" + + inputs.files(fileTree("$BUILD_TOOLS_PATH/metadata-filter") { include "*.js" }) + runtimeSources.each { dir -> + if (file(dir).exists()) { + inputs.files(fileTree(dir) { include "**/*.cpp", "**/*.h" }) + } + } + outputs.upToDateWhen { false } + + doLast { + def cmd = ["node", script] + runtimeSources.findAll { file(it).exists() } + def process = new ProcessBuilder(cmd.collect { it.toString() }) + .redirectErrorStream(true).start() + process.inputStream.eachLine { outLogger.withStyle(Style.Info).println "\t ~ [keeplist] $it" } + if (process.waitFor() != 0) { + throw new GradleException( + "NativeScript: the metadata runtime keep-list is out of date. " + + "Add the classes listed above to RUNTIME_KEEP in " + + "build-tools/metadata-filter/seed.js.") + } + } +} + +tasks.matching { it.name == "check" }.configureEach { it.dependsOn(checkMetadataRuntimeKeepList) } + task copyMetadataFilters { dependsOn generateMetadataSeed diff --git a/platforms/android/test-app/build-tools/metadata-filter/check-runtime-keeplist.js b/platforms/android/test-app/build-tools/metadata-filter/check-runtime-keeplist.js new file mode 100644 index 000000000..133437a39 --- /dev/null +++ b/platforms/android/test-app/build-tools/metadata-filter/check-runtime-keeplist.js @@ -0,0 +1,121 @@ +/* + * Checks that RUNTIME_KEEP in seed.js still covers every class the runtime + * resolves by name from native code. + * + * That list was written by reading string literals out of the C++. Nothing kept + * the two in step, so a class added to the runtime later would simply go + * missing from filtered metadata -- and the failure would surface as a + * TypeError in an app, not as anything the build could see. This turns that + * into a test. + * + * usage: node check-runtime-keeplist.js … + */ + +const fs = require("fs"); +const path = require("path"); + +/* Mirrors PatternMatcherImpl in the metadata generator: '*' spans anything, + * '?' one character. Iterative, because the generator's own matcher is a + * recursive one and this runs over a lot of candidates. */ +function wildcardMatch(pattern, input) { + let p = 0, i = 0, star = -1, mark = 0; + while (i < input.length) { + if (p < pattern.length && (pattern[p] === "?" || pattern[p] === input[i])) { + p++; i++; + } else if (p < pattern.length && pattern[p] === "*") { + star = p++; mark = i; + } else if (star !== -1) { + p = star + 1; i = ++mark; + } else { + return false; + } + } + while (p < pattern.length && pattern[p] === "*") p++; + return p === pattern.length; +} + +function loadKeepList(seedPath) { + const src = fs.readFileSync(seedPath, "utf8"); + const start = src.indexOf("const RUNTIME_KEEP = ["); + if (start === -1) throw new Error("RUNTIME_KEEP not found in " + seedPath); + const end = src.indexOf("];", start); + const body = src.slice(src.indexOf("[", start), end + 1); + + return eval(body).map((entry) => { + const idx = entry.indexOf(":"); + return { pkg: entry.slice(0, idx), cls: entry.slice(idx + 1) }; + }); +} + +function covered(keep, fqn) { + const idx = fqn.lastIndexOf("."); + if (idx < 0) return true; + const pkg = fqn.slice(0, idx); + const cls = fqn.slice(idx + 1); + return keep.some((k) => wildcardMatch(k.pkg, pkg) && wildcardMatch(k.cls, cls)); +} + +function collectSources(dir, out) { + for (const entry of fs.readdirSync(dir)) { + const full = path.join(dir, entry); + const st = fs.statSync(full); + if (st.isDirectory()) collectSources(full, out); + else if (/\.(cpp|h|hpp|cc)$/.test(entry)) out.push(full); + } + return out; +} + +function main() { + const dirs = process.argv.slice(2); + if (dirs.length === 0) { + console.error("usage: check-runtime-keeplist.js …"); + process.exit(2); + } + + const seedPath = path.join(__dirname, "seed.js"); + const keep = loadKeepList(seedPath); + + /* Java class names as the runtime writes them: "java/lang/Object" for JNI + * FindClass, or dotted for the reflective paths. */ + const literal = /"((?:java|javax|android|androidx|dalvik|kotlin|org|com|net)[./][A-Za-z0-9_./$]*)"/g; + + const missing = new Map(); + const files = []; + for (const dir of dirs) { + if (fs.existsSync(dir)) collectSources(dir, files); + } + + for (const file of files) { + const src = fs.readFileSync(file, "utf8"); + let m; + while ((m = literal.exec(src)) !== null) { + const fqn = m[1].replace(/\//g, "."); + + /* Package prefixes and signature fragments are not class names. */ + if (fqn.endsWith(".")) continue; + const last = fqn.slice(fqn.lastIndexOf(".") + 1); + if (!last || last[0] < "A" || last[0] > "Z") continue; + + if (!covered(keep, fqn)) { + if (!missing.has(fqn)) missing.set(fqn, file); + } + } + } + + console.error(`checked ${files.length} runtime source files against ${keep.length} keep patterns`); + + if (missing.size > 0) { + console.error( + `\nRUNTIME_KEEP in ${seedPath} does not cover ${missing.size} class(es) the runtime ` + + `names directly. Filtered metadata would omit them:\n` + ); + for (const [fqn, file] of missing) { + console.error(` ${fqn}\n ${file}`); + } + process.exit(1); + } + + console.error("RUNTIME_KEEP covers every class name the runtime resolves."); +} + +main(); diff --git a/platforms/android/test-app/build-tools/metadata-filter/harvest.js b/platforms/android/test-app/build-tools/metadata-filter/harvest.js index 697687926..bc998b162 100644 --- a/platforms/android/test-app/build-tools/metadata-filter/harvest.js +++ b/platforms/android/test-app/build-tools/metadata-filter/harvest.js @@ -16,23 +16,55 @@ const path = require("path"); const parser = require("@babel/parser"); const traverse = require("@babel/traverse").default; -// The package names a Java FQN can start with. Anything rooted elsewhere is a -// JS identifier that merely looks like a namespace. -const JAVA_ROOTS = [ - "java", - "javax", - "android", - "androidx", - "dalvik", - "kotlin", - "kotlinx", - "com", - "org", - "net", - "edu", - "io", +/* + * There is deliberately no list of "the packages a Java name can start with". + * + * Such a list is a guess about a classpath it cannot see, and it rots: a + * dependency under me.*, de.*, ru.* or dev.* is invisible to it, and its + * classes then go missing from the metadata with no warning. The test-app + * already contained one casualty -- `in.tns.tests.JavascriptKeywordClass`, + * whose root is a JS keyword. + * + * Instead any dotted chain shaped like a Java name is harvested, and the + * decision about what is real is left to the generator, which holds the actual + * class graph. A pattern matching no class costs a line in a file; a class + * missing from the seed costs a TypeError in the app. Only the second is a bug, + * so this errs entirely in the first direction. + */ + +// Kept only to recognise the JS globals whose members are never Java, so the +// seed does not fill up with `Math:floor`-shaped noise. Not a correctness +// filter: anything wrongly admitted simply matches nothing. +const JS_GLOBAL_OBJECTS = [ + "Math", "JSON", "Object", "Array", "String", "Number", "Boolean", "Date", + "RegExp", "Promise", "Symbol", "Reflect", "Proxy", "Map", "Set", "WeakMap", + "WeakSet", "Error", "TypeError", "console", "process", "globalThis", ]; +/* + * Property names that appear in every JS program and in no Java package path. + * Used only to keep the *package alias* heuristic from turning `a.length` into + * a whitelist entry. Purely cosmetic: an alias wrongly emitted matches no + * package and retains nothing, but the seed is easier to review without a + * thousand of them, and the generator's wildcard matcher is recursive. + */ +const JS_MEMBER_NOISE = [ + "length", "call", "apply", "bind", "prototype", "constructor", "message", + "source", "global", "name", "value", "type", "state", "props", "target", + "current", "default", "exports", "children", "style", "data", "id", "key", + "index", "parent", "node", "next", "prev", "push", "pop", "slice", "split", + "join", "concat", "filter", "map", "reduce", "forEach", "then", "catch", +]; + +/* A chain that could plausibly be a package path: several conventional, + * lowercase, non-noise segments. */ +function looksLikePackagePath(segments) { + if (segments.length < 2) return false; + return segments.every( + (s) => /^[a-z][a-z0-9_]*$/.test(s) && s.length > 1 && JS_MEMBER_NOISE.indexOf(s) === -1 + ); +} + const PARSER_PLUGINS = [ "jsx", "flow", @@ -68,14 +100,19 @@ function splitPackageAndClass(segments) { return null; } -/* Extra roots supplied by the build, for classpaths whose top-level packages - * the list above does not anticipate. The list is a convenience, not a - * contract -- a package name it has never heard of is exactly the case this - * escape hatch exists for. */ -const extraRoots = []; +/* + * A chain is Java-shaped when at least one all-lowercase package segment + * precedes an initial-capital class segment. Requiring the package segment is + * what keeps `Math.floor` and `JSON.stringify` out -- and it matters beyond + * noise: an entry with an empty package pattern matches *every* package in the + * generator's matcher, so `:Foo` would quietly retain `anything.Foo`. + */ +function isJavaShaped(segments) { + if (segments.length < 2) return false; + if (JS_GLOBAL_OBJECTS.indexOf(segments[0]) !== -1) return false; -function isJavaRoot(name) { - return JAVA_ROOTS.indexOf(name) !== -1 || extraRoots.indexOf(name) !== -1; + const split = splitPackageAndClass(segments); + return split != null && split.classIndex >= 1; } /* @@ -197,20 +234,21 @@ function harvestFile(filePath, source, harvest) { } const chain = staticChain(p.node); - /* The '$' prefix is itself proof of a Java package, so such a chain is - * accepted whether or not its root is on the known list. */ - if (!chain || !(chain.keywordPrefixed || isJavaRoot(chain.segments[0]))) return; + if (!chain) return; const split = splitPackageAndClass(chain.segments); if (chain.truncated) { - /* We know the program reaches into this package but not which class. - * Record the deepest all-lowercase prefix as a root hint. */ + /* We know the program reaches into some package but not which class. + * Record the all-lowercase prefix as a root hint, so the package is + * kept whole. Restricted to chains that got at least two segments in, + * which is what separates `java.lang[name]` from `foo[bar]`. */ const pkgSegments = []; for (const s of chain.segments) { if (s && s[0] >= "A" && s[0] <= "Z") break; pkgSegments.push(s); } + if (!chain.keywordPrefixed && !looksLikePackagePath(pkgSegments)) return; harvest.addRoot(pkgSegments.join("."), `computed access in ${rel}`); harvest.addUnresolved("computed-member", chain.segments.join(".") + "[…]", { file: rel, @@ -222,6 +260,7 @@ function harvestFile(filePath, source, harvest) { if (!split) { /* All-lowercase chain: a package object being passed around, e.g. * `var l = java.lang`. Everything under it is reachable. */ + if (!looksLikePackagePath(chain.segments)) return; harvest.addRoot(chain.segments.join("."), `package alias in ${rel}`); harvest.addUnresolved("package-alias", chain.segments.join("."), { file: rel, @@ -230,6 +269,8 @@ function harvestFile(filePath, source, harvest) { return; } + if (!isJavaShaped(chain.segments)) return; + /* Trailing segments after the class name are members/nested classes. * Keep the class and, for a nested name, its outer class too. */ const classSegments = split.className.split("."); @@ -252,8 +293,8 @@ function harvestFile(filePath, source, harvest) { const v = p.node.value; if (v.length < 3 || v.indexOf(".") === -1 || /\s/.test(v)) return; const segments = v.split("."); - if (!isJavaRoot(segments[0])) return; - if (!splitPackageAndClass(segments)) return; + if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(segments[0])) return; + if (!isJavaShaped(segments)) return; harvest.addResolved(v, `string literal in ${rel}`); }, }); @@ -289,8 +330,6 @@ function main() { for (let i = 0; i < args.length; i++) { if (args[i] === "--json") { jsonOut = args[++i]; - } else if (args[i] === "--extra-root") { - extraRoots.push(args[++i]); } else { targets.push(args[i]); } diff --git a/platforms/android/test-app/build-tools/metadata-filter/seed.js b/platforms/android/test-app/build-tools/metadata-filter/seed.js index 9ff60ba2a..a86fbdc9a 100644 --- a/platforms/android/test-app/build-tools/metadata-filter/seed.js +++ b/platforms/android/test-app/build-tools/metadata-filter/seed.js @@ -99,6 +99,60 @@ function parseManifest(manifestPath) { return names; } +/* + * Class names reachable from resource XML. The framework instantiates these by + * name and nothing in the JS or the class graph refers to them: + * + * custom view, the tag *is* the class + * fragment + * the generic form of a custom view + * app:layout_behavior="…" CoordinatorLayout behaviours + * the usual place a library hides a class name + * + * Scanned with a regex rather than an XML parser: every one of these is a + * dotted token, and a malformed or exotic file should contribute nothing + * rather than abort the build. + */ +function parseResourceXml(resDir) { + const names = new Set(); + if (!resDir || !fs.existsSync(resDir)) return names; + + const files = []; + const walk = (dir) => { + for (const entry of fs.readdirSync(dir)) { + const full = path.join(dir, entry); + const st = fs.statSync(full); + if (st.isDirectory()) walk(full); + else if (entry.endsWith(".xml")) files.push(full); + } + }; + walk(resDir); + + /* A dotted, Java-shaped token: lowercase package segments then a class. */ + const fqn = /\b([a-z][a-zA-Z0-9_]*(?:\.[a-z][a-zA-Z0-9_]*)*\.[A-Z][a-zA-Z0-9_$]*)\b/g; + + for (const file of files) { + const xml = fs.readFileSync(file, "utf8"); + + /* Custom view tags: */ + const tag = /<\s*([a-z][a-zA-Z0-9_]*(?:\.[a-z][a-zA-Z0-9_]*)*\.[A-Z][a-zA-Z0-9_$]*)[\s/>]/g; + let m; + while ((m = tag.exec(xml)) !== null) names.add(m[1]); + + /* Attribute values that name a class. */ + const attr = /(?:android:name|class|app:layout_behavior|android:value|android:targetClass)\s*=\s*"([^"]+)"/g; + while ((m = attr.exec(xml)) !== null) { + let v = m[1]; + if (v.indexOf(".") <= 0) continue; + fqn.lastIndex = 0; + const hit = fqn.exec(v); + if (hit && hit[1] === v) names.add(v); + } + } + + return names; +} + function toEntry(fqn) { const segments = fqn.split("."); for (let i = 0; i < segments.length; i++) { @@ -119,18 +173,22 @@ function main() { * that are invalid on purpose, to test how the loader reports them. Nothing * an ordinary app should ever need. */ const allowUnparseable = []; + /* Resource directories to scan for class names the framework inflates. */ + const resDirs = []; for (let i = 0; i < args.length; i++) { if (args[i] === "--out") out = args[++i]; else if (args[i] === "--manifest") manifest = args[++i]; else if (args[i] === "--sbg-bindings") bindings = args[++i]; else if (args[i] === "--allow-unparseable") allowUnparseable.push(args[++i]); + else if (args[i] === "--res") resDirs.push(args[++i]); else targets.push(args[i]); } if (!out || targets.length === 0) { console.error( - "usage: seed.js … --out whitelist.mdg [--manifest AndroidManifest.xml] [--sbg-bindings sbg-bindings.txt]" + "usage: seed.js … --out whitelist.mdg [--manifest AndroidManifest.xml] " + + "[--res res-dir]… [--sbg-bindings sbg-bindings.txt] [--allow-unparseable path]…" ); process.exit(2); } @@ -180,6 +238,17 @@ function main() { if (e) entries.add(e); } + let resourceNames = 0; + for (const resDir of resDirs) { + for (const name of parseResourceXml(resDir)) { + const e = toEntry(name); + if (e) { + entries.add(e); + resourceNames++; + } + } + } + /* SBG bindings: the base class and interfaces of everything the app extends. * Field 0 is the base, field 8 the interface list. */ if (bindings && fs.existsSync(bindings)) { @@ -208,7 +277,8 @@ function main() { console.error( `seed: ${sorted.length} entries ` + - `(${harvest.resolved.length} named, ${harvest.roots.length} eased to whole packages)` + `(${harvest.resolved.length} named, ${harvest.roots.length} eased to whole packages, ` + + `${resourceNames} from resources)` ); } diff --git a/platforms/android/test-app/build-tools/metadata-filter/verify-coverage.js b/platforms/android/test-app/build-tools/metadata-filter/verify-coverage.js new file mode 100644 index 0000000000000000000000000000000000000000..c4e1d8c50e2d0e5c9332a4a3bb5a9204d91e7b0e GIT binary patch literal 5328 zcmcIoVRPHK5xvj;6&sExreuk7(&8(oibOQrDE}1Z&}Zx|HcPRYu<+ z96nI4R9(xAjo~yP`}M=Hh2oeghFc>^C|!lB9TSi}yH2q%x|N~WT*l8qq<2Zbt~ z*9%!nBWjJ!Y+)&du_Uf^gTw11w}kQk(jX%XS+hTEh5uaKRr1srZ4T+ggJYz~7?Mhw z`i}PAYQ0A~r>4wgu1bduZ-!T#e|O*txd9%k1{Vy@sC5HmIYg|osgaDthZ4vLPBxnh z*+oX!8Y}~xrM6&!)%c0CD6ZSAy#M(5m!CfWH*qgOEHehIW=?qn*@9oXJq2>d>=Y`Nl~)Kn!?FzgU{roL4vr>YEI{!ID)b^1byDB5NUo)<#-=HNY0y;fSpup7!O6}JD+>&= zbPVVJ)hHw5D7VqzXlEyH%CuIxBorPiFPH=|N`M^D{SMJ&NPkCqEfrc{Q=zWmVU#2Z zb-V$&xwsguvI(*@c@1kfs=kZ(U;@^BGPIT9?0c_IX%VJe(??mygAoo+uMzt8LnB@A zGV3j+ha>M&bn@1TJ7TI_Gr!{#7XIWN3p_^%lQVC0z$}6)j9Ng@@mmBoIhT1MUCaYu zPoUTZh}4ByKEQ+hc=~$$ zs~G=wF#hxB$?klAFhP3BNh$VeK%I07$!)@=h|&0XSEerCBZ`_j|5G$bY*nZ_j%H;v z@FWOXTsitA&~X~GDbR=O92!deY&GCi*Q#u!f9g-<5{zA|=^y4evMQKeli6glz;Oxl zFBn)&U(D(F_?V)zD4a@;H%Z_}BC;%IgYC8ll7*G-_|^1fyZij{?v6;`*?#X_XpeI3 zL)veaV$B2oqS!U2bY30pJUrIU&)~{AYjImYkyB*bnNqzdW%>UjETX78Di8}cNzQLA{+qrmTS=mk6td|@6WP`tT;Hre?KCBeoulKXHhTlaDP8&fW;NwPt}~BKkt^~*XhBWUO_Xj zqbFYch!?;1?ex{)d6v=krar2Su zEa+a4iWkTd%_wgQ9t2!v9;5C%MY-t*0>}7xhxRUzBTNvOaJOphZ7Y~_xj4P8V#l}W zQ$+jjCxT}#i1s(4O;wvF`=562AL7B+>1;lm&0UR~&32zhgC|zchO?nt@xymsyO+~X z$sF8%V*d}mgfj7iYseB7IzhFmHn#~+Pq7DlJ2xwgZE>Hu!Yr7zm>E)OQ3B24rlrA4 zXOl_mM-Y^hhNot3j;`P_W_ZHte2U*}`Fq^vcg$;7`r8=?F@=NN>-~MzD!(iEkG5^* zAnfhCwY48IZo8E?|Me?9>lO#Wv5a*g6Umc%9JN!~|85`)O)uaqZ_#W$!p=WmM%sa? zHQR`)s1I7pkh4b0m0u3Rf#!M6l0*NYEgtHap@%&CR|;xegy3PPzK!}FPM6U*$xWGWuDzX2yF6pJ5=<-zf&kJJnT?jWsh!#~V)UcHA{+KY9Fb8$> z=Q-Bm;jH`~N-IVwc>EucS+z3Us)jE%a53r|=0~Tj`}Wepar3vOE^d7IyHVl0p8sCx N#zNrk$BLt!e*?irqniK# literal 0 HcmV?d00001 diff --git a/scripts/build_react_native_android_tools.sh b/scripts/build_react_native_android_tools.sh index 917c80c72..2cd750f03 100755 --- a/scripts/build_react_native_android_tools.sh +++ b/scripts/build_react_native_android_tools.sh @@ -65,6 +65,8 @@ rm -rf "$TOOLS_DIR/metadata-filter" mkdir -p "$TOOLS_DIR/metadata-filter" cp "$TEST_APP_DIR/build-tools/metadata-filter/harvest.js" \ "$TEST_APP_DIR/build-tools/metadata-filter/seed.js" \ + "$TEST_APP_DIR/build-tools/metadata-filter/verify-coverage.js" \ + "$TEST_APP_DIR/build-tools/metadata-filter/check-runtime-keeplist.js" \ "$TOOLS_DIR/metadata-filter/" checkpoint "Staged:" From ad425871726224f5ebff964c1ece6354bdcf0bb8 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 00:30:55 +0500 Subject: [PATCH 25/98] perf(sbg): compile app classes for binding generation and reuse pregenerated interfaces (cherry picked from commit e085e2fce4797f59dad66adc18f218fc0639c12e) --- platforms/android/test-app/app/build.gradle | 89 +++++++++++++++++++ .../src/main/java/com/tns/DexFactory.java | 21 +++++ 2 files changed, 110 insertions(+) diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index 298f12f44..e15b9aaaa 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -526,8 +526,94 @@ if (failOnCompilationWarningsEnabled()) { ///////////////////////////// EXECUTION PHASE ///////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// +// Compiles the app's own Java so the static binding generator can see it. +// +// Without this the generator detects an `extend` of an app class perfectly -- +// 48 rows for com.tns.tests.Button1 alone -- and then generates nothing for it, +// because it cannot load the base class to read its methods. Only classes from +// android.jar and the AAR dependencies got bindings; everything the app itself +// declared fell through to being dexed on the device at run time. +// +// It cannot simply depend on the normal javac task: that one consumes the +// generator's output, so the dependency would be circular. This compiles the +// same sources *minus* the generated bindings into a scratch directory nothing +// else reads, which breaks the cycle. +// +// Best-effort by design. A source that fails here (most often a Java class +// referring to a Kotlin one, which is not compiled at this point) simply is not +// on the generator's classpath, which is exactly today's behaviour for it. The +// real javac still compiles everything and still fails the build if it cannot. +task compileAppClassesForSbg { + dependsOn "collectAllJars" + + def outDir = layout.buildDirectory.dir("nativescript/sbg-app-classes").get().asFile + def sourceRoot = file(OUTPUT_JAVA_DIR) + + inputs.files(fileTree(sourceRoot) { include "**/*.java"; exclude "com/tns/gen/**" }) + outputs.dir(outDir) + + doLast { + def sources = [] + sourceRoot.eachFileRecurse { f -> + if (f.isFile() && f.name.endsWith(".java") + && !f.absolutePath.contains("${File.separator}com${File.separator}tns${File.separator}gen${File.separator}")) { + sources.add(f.absolutePath) + } + } + + if (sources.isEmpty()) { + return + } + + outDir.deleteDir() + outDir.mkdirs() + + // The classpath collectAllJars just wrote, plus whatever the runtime + // module has already produced -- com.tns.* is what the app's own + // classes extend. + def cp = [] + def depsFile = file("$BUILD_TOOLS_PATH/$SBG_JAVA_DEPENDENCIES") + if (depsFile.exists()) { + depsFile.eachLine { line -> if (line.trim()) cp.add(line.trim()) } + } + def runtimeProject = findProject(':runtime') + if (runtimeProject != null) { + runtimeProject.fileTree(runtimeProject.buildDir) { + include "intermediates/javac/**/classes" + include "tmp/kotlin-classes/**" + }.visit { d -> if (d.directory) cp.add(d.file.absolutePath) } + } + + def argsFile = new File(outDir.parentFile, "sbg-javac-args.txt") + argsFile.text = sources.collect { "\"${it.replace('\\', '/')}\"" }.join("\n") + + def cmd = ["javac", "-proc:none", "-nowarn", "-g", + "-source", "17", "-target", "17", + "-d", outDir.absolutePath] + if (!cp.isEmpty()) { + cmd.addAll(["-cp", cp.join(File.pathSeparator)]) + } + cmd.add("@${argsFile.absolutePath}".toString()) + + def process = new ProcessBuilder(cmd.collect { it.toString() }) + .redirectErrorStream(true).start() + def errors = 0 + process.inputStream.eachLine { line -> if (line.contains("error:")) errors++ } + process.waitFor() + + def produced = 0 + if (outDir.exists()) { + outDir.eachFileRecurse { f -> if (f.isFile() && f.name.endsWith(".class")) produced++ } + } + outLogger.withStyle(Style.Info).println( + "\t ~ [sbg] compiled ${produced} app class file(s) for binding generation" + + (errors > 0 ? " (${errors} source(s) skipped -- see above)" : "")) + } +} + task runSbg(type: BuildToolTask) { dependsOn "collectAllJars" + dependsOn "compileAppClassesForSbg" def rootPath = "" if (!findProject(':static-binding-generator').is(null)) { rootPath = Paths.get(project(':static-binding-generator').projectDir.path, "build/libs").toString() @@ -734,6 +820,9 @@ task 'collectAllJars' { new File("$BUILD_TOOLS_PATH/$SBG_JAVA_DEPENDENCIES").withWriter { out -> allJarPaths.each { out.println it } + // The app's own classes, compiled by compileAppClassesForSbg. A + // directory rather than a jar; the generator reads both. + out.println layout.buildDirectory.dir("nativescript/sbg-app-classes").get().asFile.absolutePath } new File("$BUILD_TOOLS_PATH/$MDG_JAVA_DEPENDENCIES").withWriter { out -> allJarPaths.each { diff --git a/platforms/android/test-app/runtime/src/main/java/com/tns/DexFactory.java b/platforms/android/test-app/runtime/src/main/java/com/tns/DexFactory.java index 539390b1e..c4a367232 100644 --- a/platforms/android/test-app/runtime/src/main/java/com/tns/DexFactory.java +++ b/platforms/android/test-app/runtime/src/main/java/com/tns/DexFactory.java @@ -124,6 +124,27 @@ public Class resolveClass(String baseClassName, String name, String className // just the interface name without the extra file, line, column information if (!baseClassName.isEmpty() && isInterface) { fullClassName = COM_TNS_GEN_PREFIX + classToProxy; + + // The pre-generated lookup above ran against the name the caller + // asked for, which for an interface still carries the content key + // or extend name. Only here is the canonical one known -- and it is + // the name the static binding generator emits. Without this retry a + // pre-generated interface binding is never found, and every + // interface implementation is dexed on the device even though the + // class is sitting in the APK. + if (!fullClassName.equals(originalFullClassName)) { + try { + Class pregeneratedInterface = classLoader.loadClass(fullClassName.replace("-", "_")); + if (logger.isEnabled()) { + logger.write("Pre-generated interface class found: " + fullClassName); + } + return pregeneratedInterface; + } catch (Exception e) { + if (logger.isEnabled()) { + logger.write("Pre-generated interface class not found: " + fullClassName); + } + } + } } File dexFile = this.getDexFile(desiredDexClassName); From e68ae06fa407ff1e98f42e415b101b5dbe1d850f Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 08:34:40 +0500 Subject: [PATCH 26/98] perf(dts): replace per-generic regex passes with a single linear scan (cherry picked from commit 2ebf266ac7c23eccdaeca3ddf449585e95578630) --- .../src/main/java/com/telerik/dts/DtsApi.java | 114 ++++++++++++++---- 1 file changed, 93 insertions(+), 21 deletions(-) diff --git a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java index 56d390647..5a441712d 100644 --- a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java +++ b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java @@ -402,42 +402,114 @@ public static void loadGenerics(File inputFile) throws Exception { } // Adds javalangObject types to all generics which are used without types + /** + * Appends `` to every use of a generic type that was written + * without type arguments. + * + * Done in one pass over the document. It used to be one pass *per generic + * type*: each compiled its own pattern, scanned the whole file to see + * whether it occurred, and on a hit rebuilt the entire multi-megabyte + * string with replaceAll. With android.jar that was the single most + * expensive thing the generator did -- 52% of samples inside the regex + * engine and another 24% copying strings -- and it grew with the product of + * the generic count and the output size, so a larger classpath made it + * disproportionately worse. + * + * One alternation of every name, matched longest-first so a nested class + * wins over its outer, replaces N scans and N rebuilds with one of each. + */ public static String replaceGenericsInText(String content) { String any = "any"; - String result = content; - List> allGenerics = Stream.concat(generics.stream(), externalGenerics.stream()).collect(Collectors.toList()); + List> allGenerics = + Stream.concat(generics.stream(), externalGenerics.stream()).collect(Collectors.toList()); + if (allGenerics.isEmpty()) { + return content; + } + + Map suffixByName = new HashMap<>(); + for (Tuple generic : allGenerics) { + String suffix = buildGenericArgumentSuffix(generic.y, any); + suffixByName.putIfAbsent(generic.x, suffix); - for(Tuple generic: allGenerics) { - result = replaceNonGenericUsage(result, generic.x, generic.y, any); String globalAliasedClassName = getGlobalAliasedClassName(generic.x); - if(!generic.x.equals(globalAliasedClassName)) { - result = replaceNonGenericUsage(result, globalAliasedClassName, generic.y, any); + if (!generic.x.equals(globalAliasedClassName)) { + suffixByName.putIfAbsent(globalAliasedClassName, suffix); } } - return result; - } + // Scanned in one linear pass rather than with a regex. + // + // The obvious rewrite -- one alternation of every name -- is three + // times *slower* than the original (11.2s vs 3.8s on android.jar): a + // large alternation defeats the Boyer-Moore fast path and drops the + // engine into generic matching at every position. Matching is really + // "is this maximal dotted token a known generic", which is a hash + // lookup, so that is what this does. + StringBuilder result = new StringBuilder(content.length() + 8192); + Set reported = new HashSet<>(); + boolean replaced = false; - private static String replaceNonGenericUsage(String content, String className, Integer occurencies, String javalangObject) { - String result = content; - Pattern usedAsNonGenericPattern = Pattern.compile(className.replace(".", "\\.") + "(?[^a-zA-Z\\d^\\.^\\$^\\<])"); - Matcher matcher = usedAsNonGenericPattern.matcher(result); - - if (!matcher.find()) + int i = 0; + int length = content.length(); + + while (i < length) { + char c = content.charAt(i); + if (!isGenericTypeNameChar(c)) { + result.append(c); + i++; + continue; + } + + int end = i; + while (end < length && isGenericTypeNameChar(content.charAt(end))) { + end++; + } + + String token = content.substring(i, end); + String classSuffix = suffixByName.get(token); + + // A use already followed by '<' carries its type arguments; one at + // the very end of the file has no following character, which the + // original pattern also required. + if (classSuffix != null && end < length && content.charAt(end) != '<') { + if (reported.add(token)) { + System.out.println(String.format( + "Appending %s to occurrences of class %s without passed generic types", + classSuffix, token)); + } + result.append(token).append(classSuffix); + replaced = true; + } else { + result.append(token); + } + + i = end; + } + + if (!replaced) { return content; + } + return result.toString(); + } + + /** + * The characters that continue a type name. Deliberately excludes '_', + * matching the original pattern, whose trailing class `[^a-zA-Z\\d.$<]` + * treated an underscore as a terminator. + */ + private static boolean isGenericTypeNameChar(char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') + || (c >= '0' && c <= '9') || c == '.' || c == '$'; + } + + private static String buildGenericArgumentSuffix(int occurencies, String javalangObject) { List arguments = new ArrayList<>(); for (int i = 0; i < occurencies; i++) { arguments.add(javalangObject); } - String classSuffix = "<" + String.join(",", arguments) + ">"; - - System.out.println(String.format("Appending %s to occurrences of class %s without passed generic types", classSuffix, className)); - - String replaceString = String.format("%s%s$1", className, classSuffix); - result = matcher.replaceAll(replaceString); - return result; + return "<" + String.join(",", arguments) + ">"; } private String getExtendsLine(JavaClass currClass, TypeDefinition typeDefinition) { From e2c74b3251bcc5e166bf0558d9af70807d5b0564 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 08:41:57 +0500 Subject: [PATCH 27/98] perf(dts): bucket ignored namespaces and copy in runs (cherry picked from commit 01e8f058d159b66a972c031189691f9ec52961ac) --- .../src/main/java/com/telerik/dts/DtsApi.java | 138 +++++++++++++----- 1 file changed, 101 insertions(+), 37 deletions(-) diff --git a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java index 5a441712d..1eab6aaf9 100644 --- a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java +++ b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java @@ -281,19 +281,40 @@ private String replaceIgnoredNamespaces(String content) { } } + // Bucketed by first character. Every candidate position used to be + // tested against all ~48 entries with startsWith; almost all of those + // comparisons fail on the first character, and this made + // replaceIgnoredNamespaces the hottest thing in the generator once the + // generics pass was fixed (34% of samples). Indexing by that character + // leaves one or two real comparisons per position. + List> ignoredByFirstChar = bucketByFirstChar(ignored); + + // Copied in runs rather than a character at a time. Matches are rare, + // so the old loop spent most of its life doing single-char appends and + // bounds checks across the whole document. StringBuilder out = new StringBuilder(content.length()); + int contentLength = content.length(); int i = 0; - while (i < content.length()) { - int length = ignoredTypeLengthAt(content, i, ignored); + int runStart = 0; + + while (i < contentLength) { + int length = ignoredTypeLengthAt(content, i, ignoredByFirstChar); if (length > 0) { + if (i > runStart) { + out.append(content, runStart, i); + } out.append("any"); i += length; + runStart = i; } else { - out.append(content.charAt(i)); i++; } } + if (runStart < contentLength) { + out.append(content, runStart, contentLength); + } + // replace "extends any" with "extends java.lang.Object" return out.toString().replace(" extends any ", String.format(" extends %s ", DtsApi.JavaLangObject)); } @@ -306,7 +327,31 @@ private static boolean isTypeNameChar(char c) { * Length of the ignored-namespace type starting at {@code start}, or 0. * Includes the qualified name and its balanced generic arguments. */ - private static int ignoredTypeLengthAt(String content, int start, List ignored) { + private static List> bucketByFirstChar(List ignored) { + List> buckets = new ArrayList<>(ASCII_BUCKETS); + for (int i = 0; i < ASCII_BUCKETS; i++) { + buckets.add(null); + } + + for (String namespace : ignored) { + if (namespace.isEmpty()) { + continue; + } + char first = namespace.charAt(0); + if (first >= ASCII_BUCKETS) { + continue; + } + if (buckets.get(first) == null) { + buckets.set(first, new ArrayList<>()); + } + buckets.get(first).add(namespace); + } + return buckets; + } + + private static final int ASCII_BUCKETS = 128; + + private static int ignoredTypeLengthAt(String content, int start, List> ignoredByFirstChar) { // Must begin a name, not land in the middle of one. if (start > 0) { char previous = content.charAt(start - 1); @@ -315,7 +360,14 @@ private static int ignoredTypeLengthAt(String content, int start, List i } } - for (String namespace : ignored) { + char firstChar = content.charAt(start); + List ignored = firstChar < ASCII_BUCKETS ? ignoredByFirstChar.get(firstChar) : null; + if (ignored == null) { + return 0; + } + + for (int n = 0; n < ignored.size(); n++) { + String namespace = ignored.get(n); if (!content.startsWith(namespace, start)) { continue; } @@ -1589,45 +1641,57 @@ private void setGlobalAliases() { globalAliases.put("android", "globalAndroid"); } + /** + * Namespaces referenced by the SDK but not shipped in it; every type from + * them becomes `any`. + * + * Built once. It used to be rebuilt -- a fresh ArrayList and 24 adds -- on + * every call, and it is called once per class plus once per pass over the + * document. On android.jar that was tens of thousands of throwaway lists + * and, with the concatenation in isIgnoredNamespace below, roughly 170,000 + * throwaway strings. + */ + private static final List IGNORED_NAMESPACES = List.of( + "kotlin", + "org.jetbrains", + "org.intellij", + "android.app.job", + "android.app.SharedElementCallback", + "android.arch", + "android.content.pm.ShortcutInfo", + "android.graphics.drawable.Icon", + "android.graphics.Outline", + "android.view.SearchEvent", + "android.view.KeyboardShortcutGroup", + "android.view.ViewStructure", + "android.view.textclassifier", + "android.telephony.mbms", + "android.text.PrecomputedText", + "android.media.browse", + "android.media.session", + "android.media.AudioAttributes", + "android.media.MediaMetadata", + "android.media.Rating", + "android.service.media", + "android.print", + "java.util.function", + "com.tom_roush.pdfbox.pdmodel.common.function"); + + /** `namespace + "."`, precomputed; the concatenation used to happen inside the loop. */ + private static final List IGNORED_NAMESPACE_PREFIXES = + IGNORED_NAMESPACES.stream().map(n -> n + ".").collect(Collectors.toList()); + private List getIgnoredNamespaces(){ // for some reason these namespaces are references but not existing, so we are replacing all types from these namespaces with "any" - List result = new ArrayList<>(); - - result.add("kotlin"); - result.add("org.jetbrains"); - result.add("org.intellij"); - - result.add("android.app.job"); - result.add("android.app.SharedElementCallback"); - result.add("android.arch"); - result.add("android.content.pm.ShortcutInfo"); - result.add("android.graphics.drawable.Icon"); - result.add("android.graphics.Outline"); - result.add("android.view.SearchEvent"); - result.add("android.view.KeyboardShortcutGroup"); - result.add("android.view.ViewStructure"); - result.add("android.view.textclassifier"); - result.add("android.telephony.mbms"); - result.add("android.text.PrecomputedText"); - result.add("android.media.browse"); - result.add("android.media.session"); - result.add("android.media.AudioAttributes"); - result.add("android.media.MediaMetadata"); - result.add("android.media.Rating"); - result.add("android.service.media"); - result.add("android.print"); - result.add("java.util.function"); - - result.add("com.tom_roush.pdfbox.pdmodel.common.function"); // com.tom_roush:pdfbox-android:1.8.10.0 - - return result; + return IGNORED_NAMESPACES; } private boolean isIgnoredNamespace() { String[] namespaceOnlyParts = Arrays.copyOf(namespaceParts, namespaceParts.length-1); String namespace = String.join(".", namespaceOnlyParts); - for (String ignoredNamespace : getIgnoredNamespaces()) { - if(ignoredNamespace.equals(namespace) || namespace.startsWith(ignoredNamespace + ".")) { + for (int i = 0; i < IGNORED_NAMESPACES.size(); i++) { + if (namespace.equals(IGNORED_NAMESPACES.get(i)) + || namespace.startsWith(IGNORED_NAMESPACE_PREFIXES.get(i))) { return true; } } From 29f964730796fa9e9748c2231d005e670fdfb9ff Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 09:02:03 +0500 Subject: [PATCH 28/98] feat(dts): generate typings by default, cached on the classpath (cherry picked from commit cbd61b07bade956899f2b0fc2fe7ca3986168183) --- .../react-native/android/nativescript.gradle | 26 +++++++++++---- platforms/android/test-app/app/build.gradle | 33 +++++++++++++++++-- 2 files changed, 51 insertions(+), 8 deletions(-) diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 6cf00dd95..5bc8202b6 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -47,6 +47,13 @@ def nsGenerateTypings = project.hasProperty("nsGenerateTypings") // analyse and guessing from a partial view is what breaks apps. def nsFilterMetadata = project.hasProperty("nsFilterMetadata") +// Typings are on by default: without them TypeScript cannot type a single +// native call. The task declares the classpath as an input and the typings +// directory as its output, so an unchanged classpath skips it entirely and +// only a dependency change pays for a run. -PnsGenerateTypings=false opts out. +def nsTypingsEnabled = !project.hasProperty("nsGenerateTypings") + || Boolean.parseBoolean(project.property("nsGenerateTypings").toString()) + // Where the .dat files land. This is added to the asset source set rather than // written into src/, so a clean build regenerates and nothing lands in version // control. NativeScriptNativeApiModule copies them out of the APK on first run. @@ -237,13 +244,24 @@ android.applicationVariants.all { variant -> } } + // Alongside the app rather than in build/: these are checked in and + // referenced from tsconfig.json, the same way types/ios is on the Apple + // side. Declared out here so it can be the task's output. + def typingsDir = file("${rootProject.projectDir}/../types/android") + def typingsTask = tasks.register("generateNativeScriptTypings${variantName}", JavaExec) { group = "nativescript" description = "Generates TypeScript declarations for the ${variant.name} classpath." workingDir workDir mainClass = "-jar" - onlyIf { nsGenerateTypings } + onlyIf { nsTypingsEnabled } + + // Content-keyed, so a dependency upgrade that keeps the same path is + // still noticed, and an untouched classpath costs nothing. + inputs.files(variant.runtimeConfiguration).withPropertyName("classpath") + inputs.file(dtsGeneratorJar).withPropertyName("generator") + outputs.dir(typingsDir).withPropertyName("typings") doFirst { if (!dtsGeneratorJar.exists()) { @@ -253,10 +271,6 @@ android.applicationVariants.all { variant -> "scripts/build_react_native_android_tools.sh from a checkout.") } - // Alongside the app rather than in build/: these are checked in and - // referenced from tsconfig.json, the same way types/ios is on the - // Apple side. - def typingsDir = file("${rootProject.projectDir}/../types/android") typingsDir.mkdirs() def params = [dtsGeneratorJar.absolutePath, "-input"] @@ -539,7 +553,7 @@ android.applicationVariants.all { variant -> tasks.matching { it.name == "merge${variantName}Assets" }.configureEach { it.dependsOn(metadataTask) - if (nsGenerateTypings) { + if (nsTypingsEnabled) { it.dependsOn(typingsTask) } } diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index e15b9aaaa..538187f9c 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -1292,8 +1292,16 @@ task buildMetadata(type: BuildToolTask) { } task generateTypescriptDefinitions(type: BuildToolTask) { + // allJarLibraries is filled by collectAllJars at execution time; without + // this the generator was invoked with an empty -input and failed. The task + // has been off by default, so nothing exercised it. + dependsOn "collectAllJars" + + def dtsGeneratorJar = "dts-generator.jar" if (!findProject(':dts-generator').is(null)) { dependsOn ':dts-generator:jar' + dtsGeneratorJar = Paths.get(project(':dts-generator').projectDir.path, + "build/libs/dts-generator.jar").toString() } def paramz = new ArrayList() @@ -1302,10 +1310,28 @@ task generateTypescriptDefinitions(type: BuildToolTask) { workingDir "$BUILD_TOOLS_PATH" mainClass = "-jar" + // Declared so Gradle can skip the task outright when no jar has changed, + // which is what makes generating typings by default affordable: the common + // build does no work at all, and a classpath change costs one full run. + // + // Keyed on the jars' *contents*, not the list of paths -- a dependency + // upgrade keeps the same path and would otherwise go unnoticed. + inputs.dir(extractedDependenciesDir).withPropertyName("dependencyJars") + inputs.file(android.sdkDirectory.getAbsolutePath() + "/platforms/" + + android.compileSdkVersion + "/android.jar").withPropertyName("androidJar") + if (!findProject(':dts-generator').is(null)) { + // By path, not by task: the other project is not configured yet, so + // tasks.named("jar") would fail during evaluation. + inputs.files(fileTree("${project(':dts-generator').projectDir}/build/libs") { + include "*.jar" + }).withPropertyName("generator") + } + outputs.dir(TYPINGS_PATH).withPropertyName("typings") + doFirst { delete "$TYPINGS_PATH" - paramz.add("dts-generator.jar") + paramz.add(dtsGeneratorJar) paramz.add("-input") for (String jarPath : allJarLibraries) { @@ -1329,8 +1355,11 @@ task generateTypescriptDefinitions(type: BuildToolTask) { } } +// On by default. TypeScript users need these to call anything native, and with +// the caching above an unchanged classpath costs nothing. +// -PgenerateTypings=false opts out. generateTypescriptDefinitions.onlyIf { - (project.hasProperty("generateTypings") && Boolean.parseBoolean(project.generateTypings)) || PASSED_TYPINGS_PATH != null + !project.hasProperty("generateTypings") || Boolean.parseBoolean(project.generateTypings.toString()) } collectAllJars.finalizedBy(generateTypescriptDefinitions) From 677ee9c69585cabe42aaa61340baa00e1bf5bdbc Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 09:02:37 +0500 Subject: [PATCH 29/98] chore: ignore generated typings output (cherry picked from commit fc71ee3513cee36d516eac19b7355a7895ab5c83) --- platforms/.gitignore | 4 ++++ platforms/android/test-app/.gitignore | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 platforms/.gitignore diff --git a/platforms/.gitignore b/platforms/.gitignore new file mode 100644 index 000000000..46eaaaf1d --- /dev/null +++ b/platforms/.gitignore @@ -0,0 +1,4 @@ + +# Copied out of build-tools/typings by copyTypings. +android.d.ts +android-declarations.d.ts diff --git a/platforms/android/test-app/.gitignore b/platforms/android/test-app/.gitignore index 5a842d8d2..0077a9931 100644 --- a/platforms/android/test-app/.gitignore +++ b/platforms/android/test-app/.gitignore @@ -31,3 +31,8 @@ NativeScriptApplication.java /whitelist.mdg /build-tools/whitelist.mdg /.metadata-harvest.json + +# Generated by generateTypescriptDefinitions (on by default, cached on the classpath). +/build-tools/typings/ +/build-tools/out/ +/build-tools/generateTypescriptDefinitions.log From 0682bcc39f2862cd9857d437d35a54047e881a2a Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 09:12:03 +0500 Subject: [PATCH 30/98] fix(rn): make the typings task runnable on its own and cache it (cherry picked from commit 9a784cdaebc7fbc947018893244f1b9c51721114) --- .../react-native/android/nativescript.gradle | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 5bc8202b6..ea90366fe 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -259,11 +259,28 @@ android.applicationVariants.all { variant -> // Content-keyed, so a dependency upgrade that keeps the same path is // still noticed, and an untouched classpath costs nothing. - inputs.files(variant.runtimeConfiguration).withPropertyName("classpath") + // + // Through the same artifact view resolveClasspathJars uses. Consuming + // the configuration directly leaves artifactType unset, and AGP then + // cannot choose between an AAR's variants ("cannot choose between + // android-aar-metadata, android-art-profile, android-assets, ..."). + // artifactFiles stays lazy, so nothing resolves at configuration time. + inputs.files(variant.runtimeConfiguration.incoming.artifactView { config -> + config.lenient(true) + config.attributes { container -> + container.attribute( + org.gradle.api.attributes.Attribute.of("artifactType", String), + "android-classes-jar") + } + }.artifacts.artifactFiles).withPropertyName("nsClasspath") inputs.file(dtsGeneratorJar).withPropertyName("generator") outputs.dir(typingsDir).withPropertyName("typings") doFirst { + // Created here as well as by the metadata task: the two are + // independent, and typings can be asked for on their own. + workDir.mkdirs() + if (!dtsGeneratorJar.exists()) { throw new GradleException( "NativeScript: ${dtsGeneratorJar} is missing. It ships with " + From d311d8c175e40a433db837b13a746bd3fa875927 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 09:32:16 +0500 Subject: [PATCH 31/98] fix(metadata): make filtering work on a React Native release build (cherry picked from commit ea05d2163aae1446f8a8f7e9ee55c203dbbd04d5) --- docs/metadata-filtering.md | 50 ++++++++++++- .../react-native/android/nativescript.gradle | 71 ++++++++++++++++++- .../build-tools/metadata-filter/harvest.js | 29 +++++++- 3 files changed, 144 insertions(+), 6 deletions(-) diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 38cf2e664..5c8bc324b 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -251,9 +251,11 @@ generator already produces, so no third Metro run. An app-authored `whitelist.mdg` is concatenated with the generated one rather than replacing it -- both are keep-lists, so a hand-written entry can only ever add. -Turning the flag off deletes the generated seed. A stale seed left behind would -keep filtering on for a build that asked for it to be off, which is the -confusing direction to fail. +A build without the flag ignores any generated seed still sitting in the working +directory. Consulting the file rather than the flag is how the RN plugin first +went wrong: the seed task's output survives, so every later unfiltered build went +on filtering against it. The flag is also a declared task input, since turning it +off leaves no file change behind for Gradle to notice. ## The two checks @@ -346,6 +348,48 @@ filtered metadata. > whose metadata differed by 787KB came out **byte-identical in total size**, > which reads exactly like the filter having no effect. +### On a React Native app + +The conformance fixture, release, all four ABIs, minification left at the +template's `minifyEnabled false`: + +| | Unfiltered | Filtered | Saved | +|---|---|---|---| +| metadata (uncompressed) | 3,229,026 | 656,364 | -2,572,662 (-79.7%) | +| APK total | 62,457,492 | 61,610,564 | -846,928 (-1.4%) | +| dex | 11,637,348 | 11,637,348 | 0 | + +Seed 261 classes, 2,203 retained after closure, out of a classpath of 89 jars. + +The dex row is the whole point of the caveat the plugin logs: filtering shrinks +the metadata whatever the app does, but the five-megabyte half of the test-app's +win came from R8, and an app with `minifyEnabled false` gets none of it. The +plugin writes the keep rules either way and wires them into R8 only if the app +already minifies -- turning minification on is the app's decision, not a side +effect of asking for smaller metadata. + +Verified on device: all 16 conformance checks pass on the filtered release APK. + +#### The `global.` prefix + +That device run is the only reason this section is not reporting a false +success. Four checks failed on the first filtered APK -- +`System.currentTimeMillis`, `Build.VERSION.SDK_INT`, and two through +`java.util.Collections` -- each with `Cannot read property … of undefined`, the +JS-property-access failure mode described above. + +In a module, `java` is not a declared binding, so the natural spelling is +`global.java.lang.System`. The harvester walked that chain from its root +identifier and emitted `global.java.lang:System`, which matches no package and +retained nothing. The build was green, the closure was sound, and the app broke +on the fourth line. `staticChain` now unwraps a root of `global`, `globalThis`, +`window` or `self` before reading the package path. + +Worth noting what did *not* catch it. The soundness check cannot: nothing ever +asked the generator for `java.lang.System`. Neither would `verify-coverage.js` +without a run that reaches those lines. A class the JS names but the seed never +hears about is only visible from a device. + ### Why the rules say -dontobfuscate Shrinking is kept; renaming is not. Every lookup this runtime makes is by name: diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index ea90366fe..961b93181 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -162,6 +162,10 @@ android.applicationVariants.all { variant -> def variantName = variant.name.capitalize() def workDir = file("${buildDir}/nativescript/${variant.name}") def metadataOutDir = metadataOutDirFor(variant.name) + // R8 rules covering exactly the classes the filtered metadata kept. Only + // written when a filter is in play; without one the generator keeps + // everything and there is nothing to say. + def metadataKeepRules = new File(workDir, "metadata-keep-rules.pro") def metadataTask = tasks.register("generateNativeScriptMetadata${variantName}", JavaExec) { group = "nativescript" @@ -173,7 +177,42 @@ android.applicationVariants.all { variant -> workingDir workDir mainClass = "-jar" + // Everything the emitted metadata is a function of. Without these the + // task is up to date whenever its output directory merely exists, so a + // dependency upgrade -- or turning filtering on -- silently reuses the + // previous tree, which reads exactly like the change having no effect. + // + // Through the artifact view resolveClasspathJars uses; consuming the + // configuration directly leaves artifactType unset and AGP cannot then + // choose between an AAR's variants. Providers keep both this and the + // compiled classes lazy, so they resolve at up-to-date-check time, + // after javac has run. + inputs.files(variant.runtimeConfiguration.incoming.artifactView { config -> + config.lenient(true) + config.attributes { container -> + container.attribute( + org.gradle.api.attributes.Attribute.of("artifactType", String), + "android-classes-jar") + } + }.artifacts.artifactFiles).withPropertyName("nsClasspath") + inputs.files(provider { resolveCompiledClassDirs(variant) }) + .withPropertyName("compiledClasses") + inputs.file(metadataGeneratorJar).withPropertyName("generator") + // The seed is written by another task into this task's working + // directory, so it has to be named or the two never connect. + inputs.files(provider { + def sources = [file("${project.projectDir}/whitelist.mdg"), + file("${project.projectDir}/blacklist.mdg")] + if (nsFilterMetadata) sources.add(new File(workDir, "generated-whitelist.mdg")) + sources.findAll { it.exists() } + }).withPropertyName("filters") + // Toggling the flag off leaves no filter file behind to notice. + inputs.property("filterMetadata", nsFilterMetadata) + outputs.dir(metadataOutDir) + // Not beside the metadata: that directory's parent is an asset source + // root, and a keep-rules file dropped there ships inside the APK. + outputs.file(metadataKeepRules) doFirst { if (!metadataGeneratorJar.exists()) { @@ -186,6 +225,9 @@ android.applicationVariants.all { variant -> workDir.mkdirs() metadataOutDir.deleteDir() metadataOutDir.mkdirs() + // A run with no filter writes no rules; the previous run's file + // would otherwise stay behind and keep a set that no longer matches. + metadataKeepRules.delete() def jars = resolveClasspathJars(variant) def classDirs = resolveCompiledClassDirs(variant) @@ -212,13 +254,19 @@ android.applicationVariants.all { variant -> // both are keep-lists, and the generator takes the union before // computing its closure. A hand-written entry can therefore only // ever add, which is the safe direction. + // + // The generated half is gated on the flag rather than on the file + // existing: the seed task leaves its output in the working + // directory, so a later build without -PnsFilterMetadata would + // otherwise go on filtering against it. def generatedSeed = new File(workDir, "generated-whitelist.mdg") + def useGeneratedSeed = nsFilterMetadata && generatedSeed.exists() def authoredWhitelist = file("${project.projectDir}/whitelist.mdg") def whitelistTarget = new File(workDir, "whitelist.mdg") - if (generatedSeed.exists() || authoredWhitelist.exists()) { + if (useGeneratedSeed || authoredWhitelist.exists()) { def parts = [] - if (generatedSeed.exists()) parts.add(generatedSeed.text) + if (useGeneratedSeed) parts.add(generatedSeed.text) if (authoredWhitelist.exists()) parts.add(authoredWhitelist.text) whitelistTarget.text = parts.join("\n") } else { @@ -237,6 +285,7 @@ android.applicationVariants.all { variant -> "${classDirs.size()} class directories") def params = [metadataGeneratorJar.absolutePath] + params.add("proguardOut=" + metadataKeepRules.absolutePath) if (project.hasProperty("nsVerboseMetadata")) { params.add("verbose") } @@ -557,6 +606,24 @@ android.applicationVariants.all { variant -> } metadataTask.configure { it.dependsOn(seedTask) } + + // Filtered metadata names a subset of the classpath, so R8 is now + // free to remove the rest -- but only if it is told which subset, + // and only if the app has minification on in the first place. This + // adds the rules; it deliberately does not turn minification on, + // which is the app's decision to make. + if (variant.buildType.minifyEnabled) { + variant.buildType.proguardFiles.add(metadataKeepRules) + tasks.matching { + it.name == "minify${variantName}WithR8" || + it.name == "minify${variantName}WithProguard" + }.configureEach { it.dependsOn(metadataTask) } + } else { + logger.lifecycle("NativeScript: metadata filtering is on but ${variant.name} " + + "has minifyEnabled=false, so the keep rules at ${metadataKeepRules} " + + "are written and not applied. The metadata shrinks either way; the " + + "dex does not.") + } } } diff --git a/platforms/android/test-app/build-tools/metadata-filter/harvest.js b/platforms/android/test-app/build-tools/metadata-filter/harvest.js index bc998b162..bd4ecd0a3 100644 --- a/platforms/android/test-app/build-tools/metadata-filter/harvest.js +++ b/platforms/android/test-app/build-tools/metadata-filter/harvest.js @@ -41,6 +41,12 @@ const JS_GLOBAL_OBJECTS = [ "WeakSet", "Error", "TypeError", "console", "process", "globalThis", ]; +/* + * Names for the global object itself. A chain rooted at one of these is + * unwrapped rather than rejected: the segment after it is the real root. + */ +const HOST_GLOBAL_ALIASES = ["global", "globalThis", "window", "self"]; + /* * Property names that appear in every JS program and in no Java package path. * Used only to keep the *package alias* heuristic from turning `a.length` into @@ -174,11 +180,32 @@ function staticChain(node) { if (!cur || cur.type !== "Identifier") { return null; } + + /* `global.java.lang.System` is the same chain as `java.lang.System`: the + * runtime installs the package roots on the global object, and in a module + * (where `java` is not a declared binding) reaching them through `global` is + * the form TypeScript accepts. Left in place the root becomes a segment, and + * the entry is `global.java.lang:System` -- which matches no package, so the + * class is silently dropped from the seed. */ + let rootIndex = stack.length - 1; + if (HOST_GLOBAL_ALIASES.indexOf(cur.name) !== -1 && rootIndex >= 0) { + const outermost = stack[rootIndex]; + const promoted = outermost.computed + ? (outermost.property.type === "StringLiteral" ? outermost.property.value : null) + : (outermost.property.type === "Identifier" ? outermost.property.name : null); + if (promoted == null) { + /* global[expr] tells us nothing at all. */ + return null; + } + cur = { name: promoted }; + rootIndex--; + } + /* A '$'-prefixed root is a JS-keyword package; recover the real name. */ segments.push(unmangleRoot(cur.name)); const keywordPrefixed = cur.name !== segments[0]; - for (let i = stack.length - 1; i >= 0; i--) { + for (let i = rootIndex; i >= 0; i--) { const m = stack[i]; if (m.computed) { /* obj["Literal"] is still static; obj[expr] is not. */ From c7256adc6ca724b3595556acd637569a26c65c42 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 10:23:09 +0500 Subject: [PATCH 32/98] feat(napi): bring content-keyed bindings and the metadata tracer to the napi runtime (cherry picked from commit 315f284c03a79978cd101af452a5559ed63bd8cf) --- .../callbackhandlers/CallbackHandlers.cpp | 139 +++++++++--- .../napi/callbackhandlers/CallbackHandlers.h | 16 ++ .../ffi/jni/napi/constants/Constants.h | 1 + .../ffi/jni/napi/metadata/MetadataNode.cpp | 209 +++++++++++++++++- .../ffi/jni/napi/metadata/MetadataNode.h | 12 + .../ffi/jni/napi/metadata/MetadataReader.cpp | 3 + .../ffi/jni/napi/metadata/MetadataTreeNode.h | 7 + docs/metadata-filtering.md | 53 ++++- 8 files changed, 386 insertions(+), 54 deletions(-) diff --git a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp index 5b2fa30f1..3593b6482 100644 --- a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp @@ -610,15 +610,22 @@ napi_value CallbackHandlers::CreateJSWrapper(napi_env env, jint javaObjectID, return objectManager->CreateJSWrapper(javaObjectID, typeName); } -jobjectArray -CallbackHandlers::GetImplementedInterfaces(napi_env env, JEnv &jEnv, - napi_value implementationObject) { +// The two Collect* helpers below define which names take part in a binding. +// Content-keyed class names hash exactly these sets, so the static binding +// generator has to reproduce them from the bundle byte for byte -- a name that +// is collected here but not there (or the reverse) yields two different class +// names for one extend() site, which fails at runtime as LookedUpClassNotFound. +// Keeping the JNI arrays and the hash on one implementation is what makes that +// contract checkable in a single place. +vector +CallbackHandlers::CollectImplementedInterfaceNames(napi_env env, + napi_value implementationObject) { + vector interfaceNames; + if (implementationObject == nullptr || napi_util::is_undefined(env, implementationObject)) { - return CallbackHandlers::GetJavaStringArray(jEnv, 0); + return interfaceNames; } - vector interfacesToImplement; - napi_status status; napi_value prop; NAPI_GUARD(napi_get_named_property(env, implementationObject, "interfaces", &prop)) {} @@ -629,7 +636,7 @@ CallbackHandlers::GetImplementedInterfaces(napi_env env, JEnv &jEnv, uint32_t length; NAPI_GUARD(napi_get_array_length(env, prop, &length)) {} - for (int j = 0; j < length; j++) { + for (uint32_t j = 0; j < length; j++) { napi_value element; NAPI_GUARD(napi_get_element(env, prop, j, &element)) {} @@ -638,35 +645,23 @@ CallbackHandlers::GetImplementedInterfaces(napi_env env, JEnv &jEnv, node = Util::ReplaceAll(node, std::string("/"), std::string(".")); - jstring value = jEnv.NewStringUTF(node.c_str()); - interfacesToImplement.push_back(value); + interfaceNames.push_back(node); } } } - int interfacesCount = interfacesToImplement.size(); - - jobjectArray implementedInterfaces = CallbackHandlers::GetJavaStringArray(jEnv, - interfacesCount); - for (int i = 0; i < interfacesCount; i++) { - jEnv.SetObjectArrayElement(implementedInterfaces, i, interfacesToImplement[i]); - } - - for (int i = 0; i < interfacesCount; i++) { - jEnv.DeleteLocalRef(interfacesToImplement[i]); - } - - return implementedInterfaces; + return interfaceNames; } -jobjectArray -CallbackHandlers::GetMethodOverrides(napi_env env, JEnv &jEnv, napi_value implementationObject) { +vector +CallbackHandlers::CollectMethodOverrideNames(napi_env env, napi_value implementationObject, + bool functionsOnly) { + vector methodNames; + if (implementationObject == nullptr || napi_util::is_undefined(env, implementationObject)) { - return CallbackHandlers::GetJavaStringArray(jEnv, 0); + return methodNames; } - vector methodNames; - napi_status status; napi_value propNames; @@ -676,7 +671,7 @@ CallbackHandlers::GetMethodOverrides(napi_env env, JEnv &jEnv, napi_value implem uint32_t length; NAPI_GUARD(napi_get_array_length(env, propNames, &length)) {} - for (int i = 0; i < length; i++) { + for (uint32_t i = 0; i < length; i++) { napi_value element; NAPI_GUARD(napi_get_element(env, propNames, i, &element)) {} auto name = ArgConverter::ConvertToString(env, element); @@ -685,18 +680,94 @@ CallbackHandlers::GetMethodOverrides(napi_env env, JEnv &jEnv, napi_value implem continue; } - napi_value method; + // Runtime bookkeeping stamped onto the implementation object, not + // something the user wrote. napi_key_all_properties returns + // non-enumerable properties too, so these have to be filtered by name. + if (name == EXTEND_CTOR_CACHE_KEY || name == CLASS_IMPLEMENTATION_OBJECT) { + continue; + } - NAPI_GUARD(napi_get_property(env, implementationObject, element, &method)) {} + if (!functionsOnly) { + // Hashing, not binding. The generator reads the implementation object + // out of the bundle, where it cannot tell a function from any other + // value -- `{ foo: someIdentifier }` is a method it must assume, and + // a statically-typed guess either way would disagree with what this + // enumeration sees. Taking every name instead makes the two sides + // agree by construction on everything the generator can parse. + // + // The three exclusions below are the names the generator provably + // never puts in the method field: `super` and `constructor` are + // artifacts of how the implementation object is built (ts_helpers + // extends with the class prototype, which always carries a + // constructor), and an array-valued `interfaces` is routed to its own + // field instead. + if (name == "constructor") { + continue; + } + + string lowered = name; + std::transform(lowered.begin(), lowered.end(), lowered.begin(), + [](unsigned char c) { return std::tolower(c); }); + + napi_value value; + NAPI_GUARD(napi_get_property(env, implementationObject, element, &value)) {} + bool valueIsArray = false; + NAPI_GUARD(napi_is_array(env, value, &valueIsArray)) {} + if (lowered == "interfaces" && valueIsArray) { + continue; + } + + methodNames.push_back(name); + continue; + } - bool methodFound = napi_util::is_of_type(env, method, napi_function); + napi_value method; + NAPI_GUARD(napi_get_property(env, implementationObject, element, &method)) {} - if (methodFound) { - jstring value = jEnv.NewStringUTF(name.c_str()); - methodNames.push_back(value); + if (napi_util::is_of_type(env, method, napi_function)) { + methodNames.push_back(name); } } + return methodNames; +} + +jobjectArray +CallbackHandlers::GetImplementedInterfaces(napi_env env, JEnv &jEnv, + napi_value implementationObject) { + auto names = CollectImplementedInterfaceNames(env, implementationObject); + + vector interfacesToImplement; + interfacesToImplement.reserve(names.size()); + for (const auto &name: names) { + interfacesToImplement.push_back(jEnv.NewStringUTF(name.c_str())); + } + + int interfacesCount = interfacesToImplement.size(); + + jobjectArray implementedInterfaces = CallbackHandlers::GetJavaStringArray(jEnv, + interfacesCount); + for (int i = 0; i < interfacesCount; i++) { + jEnv.SetObjectArrayElement(implementedInterfaces, i, interfacesToImplement[i]); + } + + for (int i = 0; i < interfacesCount; i++) { + jEnv.DeleteLocalRef(interfacesToImplement[i]); + } + + return implementedInterfaces; +} + +jobjectArray +CallbackHandlers::GetMethodOverrides(napi_env env, JEnv &jEnv, napi_value implementationObject) { + auto names = CollectMethodOverrideNames(env, implementationObject, /* functionsOnly */ true); + + vector methodNames; + methodNames.reserve(names.size()); + for (const auto &name: names) { + methodNames.push_back(jEnv.NewStringUTF(name.c_str())); + } + int methodCount = methodNames.size(); jobjectArray methodOverrides = CallbackHandlers::GetJavaStringArray(jEnv, methodCount); diff --git a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h index 39f4f5c01..4d5ea94db 100644 --- a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h +++ b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h @@ -95,6 +95,22 @@ namespace tns { static std::vector GetTypeMetadata(const std::string &name, int index); + /* + * The two Collect* helpers below define which names take part in a binding. + * Content-keyed class names hash exactly these sets, so the static binding + * generator has to reproduce them from the bundle byte for byte -- a name + * that is collected here but not there (or the reverse) yields two + * different class names for one extend() site, which fails at runtime as + * LookedUpClassNotFound. Keeping the JNI arrays and the hash on one + * implementation is what makes that contract checkable in a single place. + */ + static std::vector + CollectImplementedInterfaceNames(napi_env env, napi_value implementationObject); + + static std::vector + CollectMethodOverrideNames(napi_env env, napi_value implementationObject, + bool functionsOnly); + /* * Gets all methods in the implementation object, and packs them in a jobjectArray * to pass them to Java Land, so that their corresponding Java callbacks are written when diff --git a/NativeScript/ffi/jni/napi/constants/Constants.h b/NativeScript/ffi/jni/napi/constants/Constants.h index 7f41e29c5..c322f4d11 100644 --- a/NativeScript/ffi/jni/napi/constants/Constants.h +++ b/NativeScript/ffi/jni/napi/constants/Constants.h @@ -10,6 +10,7 @@ #define PROP_KEY_CLASS "class" #define PRIVATE_TYPE_NAME "#typename" #define CLASS_IMPLEMENTATION_OBJECT "t::ClassImplementationObject" +#define EXTEND_CTOR_CACHE_KEY "t::ExtendCtorCacheKey" #define PROP_KEY_SUPER "super" #define PROP_KEY_SUPERVALUE "supervalue" #define PRIVATE_JSINFO "#js_info" diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index 2de40366b..1d38e6d89 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -800,6 +800,67 @@ string MetadataNode::CreateFullClassName(const std::string &className, return fullClassName; } +bool MetadataNode::ContentKeyedBindingsEnabled() { +#if defined(NS_CONTENT_KEYED_BINDINGS) + return true; +#else + return false; +#endif +} + +// A class-name token derived from what the generated binding is actually made +// of, rather than from where the extend() call happens to sit. +// +// The static binding generator writes a class out of exactly three inputs: the +// base class, the implemented interfaces, and the overridden method names. Two +// extend() sites that agree on all three produce byte-identical Java, so hashing +// them is enough to name the class -- and two sites that collide are meant to +// share, which is why the generator already treats a duplicate file with equal +// content as a warning rather than an error. +// +// Location keys cannot do this once an embedder owns the bundler: the generator +// reads source coordinates and the runtime reads bundle coordinates. A content +// key needs no shared coordinate system at all. +// +// Sorted, because the runtime's order is JS own-property order and the +// generator's is source order; the binding treats both sets as unordered. +// FNV-1a rather than std::hash, which is not stable across implementations and +// so could not be reproduced by the generator. +string MetadataNode::CreateContentKey(const string &baseClassName, + vector interfaceNames, + vector methodNames) { + sort(interfaceNames.begin(), interfaceNames.end()); + sort(methodNames.begin(), methodNames.end()); + + string canonicalBase = baseClassName; + canonicalBase = Util::ReplaceAll(canonicalBase, std::string("/"), std::string(".")); + + string payload = canonicalBase; + payload += "|"; + for (size_t i = 0; i < interfaceNames.size(); i++) { + if (i > 0) payload += ","; + payload += interfaceNames[i]; + } + payload += "|"; + for (size_t i = 0; i < methodNames.size(); i++) { + if (i > 0) payload += ","; + payload += methodNames[i]; + } + + uint64_t hash = 14695981039346656037ULL; + for (unsigned char c: payload) { + hash ^= static_cast(c); + hash *= 1099511628211ULL; + } + + char buffer[19]; + snprintf(buffer, sizeof(buffer), "h%016llx", static_cast(hash)); + + DEBUG_WRITE("CreateContentKey: %s -> %s", payload.c_str(), buffer); + + return string(buffer); +} + bool MetadataNode::IsValidExtendName(napi_env env, napi_value name) { string extendName = ArgConverter::ConvertToString(env, name); @@ -1064,6 +1125,39 @@ MetadataNode *MetadataNode::GetOrCreate(const string &className) { return node; } +#if defined(NS_METADATA_USAGE_TRACE) +// Ground truth for the build-time metadata filter: every metadata node the app +// actually materialises, emitted once, at the single point where a tree node +// first becomes a MetadataNode. A build with this on is a measuring instrument, +// not a shipping configuration -- see the metadata-filter lane in +// docs/metadata-filtering.md for how the trace is diffed against the static +// harvest. +void MetadataNode::TraceUsage(MetadataTreeNode *treeNode) { + static std::set *s_traced = new std::set(); + + auto name = GetJniClassName(treeNode); + if (name.empty()) { + return; + } + + if (!s_traced->insert(name).second) { + return; + } + + uint8_t nodeType = s_metadataReader.GetNodeType(treeNode); + const char *kind = s_metadataReader.IsNodeTypePackage(nodeType) + ? "P" + : (s_metadataReader.IsNodeTypeInterface(nodeType) ? "I" : "C"); + + // R marks a node the metadata files did not contain, rebuilt by reflection. + // A filtered build is allowed to omit these -- that path is why omitting + // them is safe -- so the coverage check must not count them as misses. + const char *origin = treeNode->synthesizedAtRuntime ? "R" : "F"; + + __android_log_print(ANDROID_LOG_INFO, "NS_MD_USE", "%s%s %s", kind, origin, name.c_str()); +} +#endif + MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { MetadataNode *result = nullptr; @@ -1072,6 +1166,9 @@ MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { if (it != s_treeNode2NodeCache.end()) { result = it->second; } else { +#if defined(NS_METADATA_USAGE_TRACE) + TraceUsage(treeNode); +#endif auto name = GetJniClassName(treeNode); if (!name.empty()) { auto it2 = s_name2NodeCache.find(name); @@ -2229,11 +2326,28 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i auto node = reinterpret_cast(data); + auto useContentKey = false; + if (hasDot) { extendName = argv[0]; implementationObject = argv[1]; } else { - bool validExtend = GetExtendLocation(env, extendLocation, isTypeScriptExtend); + useContentKey = ContentKeyedBindingsEnabled(); + + // Skipped outright when content keying is on: this walks the stack + // purely to build a name, on every class creation. + bool validExtend = + useContentKey || GetExtendLocation(env, extendLocation, isTypeScriptExtend); + + if (!validExtend) { + // No usable call site -- an anonymous frame, or a bundle the + // generator never indexed. Naming by content still works here, + // where before this was fatal. + useContentKey = true; + validExtend = true; + extendLocation.clear(); + } + NAPI_GUARD(napi_create_string_utf8(env, "", 0, &extendName)) { return nullptr; } @@ -2246,11 +2360,35 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i } } + string baseClassName = node->m_name; + + // An explicitly named extend keeps its name in front of the hash. The + // generator reads the same name out of the bundle, so the two still + // agree, and it buys back two things the bare hash costs: a class name + // that says what it is in a stack trace, and uniqueness for the classes + // that need it. Anything Java instantiates by name -- an Activity, a + // Fragment, a Worker, anything reached by reflection -- cannot share a + // generated class, because the runtime has only the class name to find + // the JS implementation with. Naming such a class is what makes it + // unique; unnamed extends stay shared, which is the common case and the + // point of the scheme. + string extendNameString = ArgConverter::ConvertToString(env, extendName); + string extendNameAndLocation; + + if (useContentKey) { + string contentKey = + CreateContentKey(baseClassName, + CallbackHandlers::CollectImplementedInterfaceNames( + env, implementationObject), + CallbackHandlers::CollectMethodOverrideNames( + env, implementationObject, /* functionsOnly */ false)); + extendNameAndLocation = + extendNameString.empty() ? contentKey : extendNameString + "_" + contentKey; + } else { + extendNameAndLocation = extendLocation + extendNameString; + } - string extendNameAndLocation = - extendLocation + ArgConverter::ConvertToString(env, extendName); string fullClassName; - string baseClassName = node->m_name; if (!hasDot) { fullClassName = TNS_PREFIX + CreateFullClassName(baseClassName, extendNameAndLocation); } else { @@ -2263,7 +2401,41 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i implementationObject, isInterface); auto fullExtendedName = CallbackHandlers::ResolveClassName(env, clazz); - auto cachedData = GetCachedExtendedClassData(env, fullExtendedName); + // Which JS constructor to reuse is a different question from which Java + // class to load, and only the second one has to agree with the static + // binding generator. + // + // Two extend() calls with the same base, interfaces and overridden names + // share one generated Java class -- the Java is identical, and sharing it + // is the point. Their JS bodies are not identical, though, so caching the + // constructor under the class name would hand the second call the first + // call's implementation. Under content keying that is not a rare + // collision but the common case, so the constructor is cached per + // implementation object instead. + // The stamp identifies the object, not the class it was used to build: + // combining it with fullExtendedName keeps a second extend() of the same + // object against a *different* base a cache miss, so it still reaches the + // "used to extend another class" check below instead of silently + // returning the first class. + string ctorCacheKey = fullExtendedName; + if (useContentKey) { + napi_value stamped; + NAPI_GUARD(napi_get_named_property(env, implementationObject, EXTEND_CTOR_CACHE_KEY, + &stamped)) {} + string implObjectId; + if (napi_util::is_of_type(env, stamped, napi_string)) { + implObjectId = ArgConverter::ConvertToString(env, stamped); + } else { + static std::atomic s_implObjectCounter{0}; + implObjectId = std::to_string(s_implObjectCounter.fetch_add(1)); + NAPI_GUARD(napi_set_named_property( + env, implementationObject, EXTEND_CTOR_CACHE_KEY, + ArgConverter::convertToJsString(env, implObjectId))) {} + } + ctorCacheKey = fullExtendedName + "#" + implObjectId; + } + + auto cachedData = GetCachedExtendedClassData(env, ctorCacheKey); if (cachedData.extendedCtorFunction != nullptr) { auto value = napi_util::get_ref_value(env, cachedData.extendedCtorFunction); if (!napi_util::is_null_or_undefined(env, value)) return value; @@ -2321,10 +2493,31 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i s_name2NodeCache.emplace(fullExtendedName, node); - ExtendedClassCacheData cacheData(napi_util::make_ref(env, extendFuncCtor), fullExtendedName, - node); auto cache = GetMetadataNodeCache(env); - cache->ExtendedCtorFuncCache.emplace(fullExtendedName, cacheData); + + // Two entries, because there are two ways in. + // + // From JS, extend() asks "have I already built a constructor for this + // implementation object?" -- keyed per object, so two identical-looking + // extends keep their own bodies. + // + // From Java, createJSInstanceNative has only the class name of the + // instance it is wrapping (CreateExtendedJSWrapper), so the class name + // has to resolve too. emplace leaves an existing entry alone, so for a + // shared generated class the first implementation registered is the one + // Java-side instantiation finds. That is unambiguous for a named extend + // -- naming it makes the class unique -- and inherently ambiguous for an + // unnamed one, which is why anything Java constructs by name should be + // named. + ExtendedClassCacheData byImplObject(napi_util::make_ref(env, extendFuncCtor), + fullExtendedName, node); + cache->ExtendedCtorFuncCache.emplace(ctorCacheKey, byImplObject); + + if (ctorCacheKey != fullExtendedName) { + ExtendedClassCacheData byClassName(napi_util::make_ref(env, extendFuncCtor), + fullExtendedName, node); + cache->ExtendedCtorFuncCache.emplace(fullExtendedName, byClassName); + } return extendFuncCtor; diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.h b/NativeScript/ffi/jni/napi/metadata/MetadataNode.h index f8f6f40e2..5a352781f 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.h +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.h @@ -79,6 +79,14 @@ class MetadataNode { static string CreateFullClassName(const std::string& className, const std::string& extendNameAndLocation); + static string CreateContentKey(const std::string& baseClassName, + std::vector interfaceNames, + std::vector methodNames); + + // Whether an unnamed extend() names its class by content rather than by call + // site. Always available as a fallback when no usable location exists. + static bool ContentKeyedBindingsEnabled(); + static napi_value CreateArrayObjectConstructor(napi_env env); static void SetInstanceMetadata(napi_env env, napi_value object, MetadataNode* node); @@ -116,6 +124,10 @@ class MetadataNode { static ExtendedClassCacheData GetCachedExtendedClassData(napi_env env, const std::string& proxyClassName); static std::string GetJniClassName(const MetadataTreeNode* node); +#if defined(NS_METADATA_USAGE_TRACE) + static void TraceUsage(MetadataTreeNode *treeNode); +#endif + static void SetClassAccessor(napi_env env, napi_value constructor); diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataReader.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataReader.cpp index af2020493..daacbe8a9 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataReader.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataReader.cpp @@ -290,6 +290,9 @@ MetadataTreeNode *MetadataReader::GetOrCreateTreeNodeByName(const string &classN child = new MetadataTreeNode; child->name = *it++; child->parent = treeNode; + // Rebuilt by reflection because the metadata files did not + // describe it -- see the field's comment. + child->synthesizedAtRuntime = true; string line; string kind; diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataTreeNode.h b/NativeScript/ffi/jni/napi/metadata/MetadataTreeNode.h index e30cfb1ea..ed07707ec 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataTreeNode.h +++ b/NativeScript/ffi/jni/napi/metadata/MetadataTreeNode.h @@ -18,6 +18,13 @@ struct MetadataTreeNode { std::string* metadata; uint8_t type; + // True when this node was not read from the metadata files but rebuilt at + // runtime by MetadataReader::GetOrCreateTreeNodeByName, via reflection. + // That path is the reason a class missing from filtered metadata can still + // be marshalled: it is slower, not broken. Only the usage tracer reads + // this, to tell "recovered" apart from "would have thrown". + bool synthesizedAtRuntime = false; + static const uint8_t PACKAGE = 0; static const uint8_t CLASS = 1 << 0; static const uint8_t INTERFACE = 1 << 1; diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 5c8bc324b..9d9456c65 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -33,8 +33,10 @@ a `MetadataNode`. It logs each node once. It is a diagnostic build only. > `grep NS_METADATA_USAGE_TRACE runtime/.cxx/Debug/*/arm64-v8a/compile_commands.json` > and match the APK's `.so` build-id to that config -- a stale `.so` packaged by > AGP has produced convincing all-green runs of a feature that was compiled out. -> Note also that `-Pengine=V8-13` builds the **napi** tree; only -> `-PbindingLayer=jsi` compiles the tree these instruments live in. +> Note that `-Pengine=V8-13` builds the **napi** tree and `-Pengine=HERMES +> -PbindingLayer=jsi` the jsi one. Both carry the tracer; they did not always, +> and a trace taken against the tree you did not build is empty rather than +> wrong, which is easy to misread as "nothing resolved". **Static harvest** -- what an analysis of the JS can see: @@ -437,17 +439,44 @@ covered, so point it at the broadest run available. release. That is the safer direction (debug is unfiltered) but it means the filter's correctness is exercised on the less frequently run build. -**Not yet run end to end on React Native.** The plugin registers -`generateNativeScriptMetadataSeedRelease` and configures cleanly; a full RN -release build has not been measured. +## Both binding layers + +The instruments and the class-naming scheme they assume live in the runtime, and +the runtime has two independent trees: `NativeScript/ffi/jni/napi` and +`NativeScript/ffi/jni/jsi`. Everything here was built in the jsi tree first, so +for a while the tracer, `synthesizedAtRuntime` and content-keyed bindings simply +did not exist on the napi side -- which is also the **default** binding layer +(`bindingLayer` defaults to `napi` in `runtime/build.gradle`). A napi build with +`-Pmetadata-usage-trace` produced no trace at all, and `-Pcontent-keyed-bindings` +was a no-op there while the static binding generator went on emitting hashed +names, quietly sending every extend down the on-device dex path. + +The napi tree now carries all three, and `CollectImplementedInterfaceNames` / +`CollectMethodOverrideNames` are factored out of the JNI array builders on both +sides, so the hashed set and the set handed to the generator cannot drift apart +within a tree. Verified on napi (`-Pengine=V8-13 -Pcontent-keyed-bindings`): + +| | jsi | napi | +|---|---|---| +| spec suite | 520 / 0 | 520 / 0 | +| classes generated on device | 27 | 27 | +| of those, content-keyed | 17 | 17 | +| `verify-coverage.js` under filtering | clean | clean | + +The one intentional difference: jsi's `ContentKeyedBindingsEnabled` also returns +true under `NS_JSI_HOST_RUNTIME`, because a guest runs inside the embedder's +bundle and can never agree with the generator on source coordinates. napi is +never embedded that way, so there it is the `NS_CONTENT_KEYED_BINDINGS` define +alone. ## Status Done: the instruments, the taxonomy, the closure, the easing rules, the seed -generator, the keep-rules emitter, the soundness check, and Gradle wiring for -both the test-app and the RN plugin. Green on the 520-spec suite with filtering -on, and the size numbers above. - -Not done: the RN path is registered and configures, but has not been run through -a full release build end to end. R8 shrinking is still off by default -- the -keep rules make it safe to enable, they do not enable it. +generator, the keep-rules emitter, the soundness check, Gradle wiring for both +the test-app and the RN plugin, and parity across both binding layers. Green on +the 520-spec suite with filtering on, on a React Native release build, and the +size numbers above. + +Not done: R8 shrinking is still off by default -- the keep rules make it safe to +enable, they do not enable it. On React Native that is the whole dex saving, and +the template ships `minifyEnabled false`. From e8b625c367cfbd504e5c10a07146c768117ed033 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 15:08:05 +0500 Subject: [PATCH 33/98] fix(bindings): make runtime and generator content keys agree, and pre-generate app interfaces (cherry picked from commit b39735fee99456eb23b402c7a73b580a5687d6c2) --- .../jsi/callbackhandlers/CallbackHandlers.cpp | 9 ++++ .../ffi/jni/jsi/constants/Constants.h | 5 ++ .../ffi/jni/jsi/metadata/MetadataNode.cpp | 24 +++++++++- .../callbackhandlers/CallbackHandlers.cpp | 9 ++++ .../ffi/jni/napi/constants/Constants.h | 5 ++ .../ffi/jni/napi/metadata/MetadataNode.cpp | 24 +++++++++- docs/metadata-filtering.md | 46 ++++++++++++++++++- .../staticbindinggenerator/ContentKey.java | 21 ++++++++- .../GetInterfaceNames.java | 39 ++++++++++++++++ .../test/ContentKeyTest.java | 34 ++++++++++++++ 10 files changed, 208 insertions(+), 8 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp index f2e91513f..a85648118 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp @@ -695,6 +695,15 @@ CallbackHandlers::CollectMethodOverrideNames(JsRuntime &rt, continue; } + // Written onto the prototype by ts_helpers' __extends before it defers + // to extend(), so every TypeScript-transpiled subclass carries them. + // They are invisible to the static binding generator, which reads the + // class body from source -- hashing them put the two sides permanently + // out of step and sent every such class down the on-device dex path. + if (name == PROP_KEY_TS_PARENT || name == PROP_KEY_TS_CHILD) { + continue; + } + if (!functionsOnly) { // Hashing, not binding. The generator reads the implementation object // out of the bundle, where it cannot tell a function from any other diff --git a/NativeScript/ffi/jni/jsi/constants/Constants.h b/NativeScript/ffi/jni/jsi/constants/Constants.h index cc5da1ffa..8a0772f0d 100644 --- a/NativeScript/ffi/jni/jsi/constants/Constants.h +++ b/NativeScript/ffi/jni/jsi/constants/Constants.h @@ -21,6 +21,11 @@ #define PRIVATE_IS_NAPI "#is_napi" #define PROP_KEY_TOSTRING "toString" #define PROP_KEY_IS_PROTOTYPE_IMPLEMENTATION_OBJECT "__isPrototypeImplementationObject" +// Stamped onto the implementation object by ts_helpers' __extends, not written +// by the user. They exist only after that helper has run, so the static binding +// generator cannot see them -- see CollectMethodOverrideNames. +#define PROP_KEY_TS_PARENT "__parent" +#define PROP_KEY_TS_CHILD "__child" class Constants { public: diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 1029b6cd2..8e7232ff9 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -579,14 +579,34 @@ bool MetadataNode::ContentKeyedBindingsEnabled() { // generator's is source order; the binding treats both sets as unordered. // FNV-1a rather than std::hash, which is not stable across implementations and // so could not be reproduced by the generator. +// Package separators and nested-type separators both become '.' -- see the +// comment in CreateContentKey. +static string Canonicalize(const string &name) { + string canonical = name; + canonical = Util::ReplaceAll(canonical, std::string("/"), std::string(".")); + return Util::ReplaceAll(canonical, std::string("$"), std::string(".")); +} + string MetadataNode::CreateContentKey(const string &baseClassName, vector interfaceNames, vector methodNames) { + // Canonicalized before sorting, not after: '$' and '.' are different bytes, + // so sorting the binary form and sorting the dotted form can disagree on + // order even once the names themselves match. + for (auto &interfaceName: interfaceNames) { + interfaceName = Canonicalize(interfaceName); + } + sort(interfaceNames.begin(), interfaceNames.end()); sort(methodNames.begin(), methodNames.end()); - string canonicalBase = baseClassName; - canonicalBase = Util::ReplaceAll(canonicalBase, std::string("/"), std::string(".")); + // Nested types reach here in their binary form -- `Pack200$Unpacker`, and + // `/` for package separators on the interface side. The generator reads the + // same names out of JS source, where both are written with a dot and there + // is no way to tell a nested type from a package. So the dotted form is the + // canonical one for hashing; the JNI arrays that actually load the classes + // keep the binary form, which is what Class.forName needs. + string canonicalBase = Canonicalize(baseClassName); string payload = canonicalBase; payload += "|"; diff --git a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp index 3593b6482..2196eae34 100644 --- a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp @@ -687,6 +687,15 @@ CallbackHandlers::CollectMethodOverrideNames(napi_env env, napi_value implementa continue; } + // Written onto the prototype by ts_helpers' __extends before it defers + // to extend(), so every TypeScript-transpiled subclass carries them. + // They are invisible to the static binding generator, which reads the + // class body from source -- hashing them put the two sides permanently + // out of step and sent every such class down the on-device dex path. + if (name == PROP_KEY_TS_PARENT || name == PROP_KEY_TS_CHILD) { + continue; + } + if (!functionsOnly) { // Hashing, not binding. The generator reads the implementation object // out of the bundle, where it cannot tell a function from any other diff --git a/NativeScript/ffi/jni/napi/constants/Constants.h b/NativeScript/ffi/jni/napi/constants/Constants.h index c322f4d11..15aea1c77 100644 --- a/NativeScript/ffi/jni/napi/constants/Constants.h +++ b/NativeScript/ffi/jni/napi/constants/Constants.h @@ -18,6 +18,11 @@ #define PRIVATE_IS_NAPI "#is_napi" #define PROP_KEY_TOSTRING "toString" #define PROP_KEY_IS_PROTOTYPE_IMPLEMENTATION_OBJECT "__isPrototypeImplementationObject" +// Stamped onto the implementation object by ts_helpers' __extends, not written +// by the user. They exist only after that helper has run, so the static binding +// generator cannot see them -- see CollectMethodOverrideNames. +#define PROP_KEY_TS_PARENT "__parent" +#define PROP_KEY_TS_CHILD "__child" class Constants { public: diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index 1d38e6d89..bab7ba167 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -826,14 +826,34 @@ bool MetadataNode::ContentKeyedBindingsEnabled() { // generator's is source order; the binding treats both sets as unordered. // FNV-1a rather than std::hash, which is not stable across implementations and // so could not be reproduced by the generator. +// Package separators and nested-type separators both become '.' -- see the +// comment in CreateContentKey. +static string Canonicalize(const string &name) { + string canonical = name; + canonical = Util::ReplaceAll(canonical, std::string("/"), std::string(".")); + return Util::ReplaceAll(canonical, std::string("$"), std::string(".")); +} + string MetadataNode::CreateContentKey(const string &baseClassName, vector interfaceNames, vector methodNames) { + // Canonicalized before sorting, not after: '$' and '.' are different bytes, + // so sorting the binary form and sorting the dotted form can disagree on + // order even once the names themselves match. + for (auto &interfaceName: interfaceNames) { + interfaceName = Canonicalize(interfaceName); + } + sort(interfaceNames.begin(), interfaceNames.end()); sort(methodNames.begin(), methodNames.end()); - string canonicalBase = baseClassName; - canonicalBase = Util::ReplaceAll(canonicalBase, std::string("/"), std::string(".")); + // Nested types reach here in their binary form -- `Pack200$Unpacker`, and + // `/` for package separators on the interface side. The generator reads the + // same names out of JS source, where both are written with a dot and there + // is no way to tell a nested type from a package. So the dotted form is the + // canonical one for hashing; the JNI arrays that actually load the classes + // keep the binary form, which is what Class.forName needs. + string canonicalBase = Canonicalize(baseClassName); string payload = canonicalBase; payload += "|"; diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 9d9456c65..8f7141049 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -459,8 +459,7 @@ within a tree. Verified on napi (`-Pengine=V8-13 -Pcontent-keyed-bindings`): | | jsi | napi | |---|---|---| | spec suite | 520 / 0 | 520 / 0 | -| classes generated on device | 27 | 27 | -| of those, content-keyed | 17 | 17 | +| classes generated on device | 7 | 7 | | `verify-coverage.js` under filtering | clean | clean | The one intentional difference: jsi's `ContentKeyedBindingsEnabled` also returns @@ -469,6 +468,49 @@ bundle and can never agree with the generator on source coordinates. napi is never embedded that way, so there it is the `NS_CONTENT_KEYED_BINDINGS` define alone. +### Why a class is still built on device + +Both layers were at 27 until the two causes below were found by listing +`code_cache/secondary-dexes` on the device and diffing it against the +`com.tns.gen.*` classes in the APK. Neither showed up as a failure: a class the +generator missed is built at startup and works. + +**The hash disagreed (11 → 1).** Two independent divergences, both invisible to +the build: + +- `ts_helpers`' `__extends` writes `__parent` and `__child` onto the prototype + before deferring to `extend()`. `CollectMethodOverrideNames` takes every own + property, so both were hashed; the generator reads the class body from source + and cannot see them. Every TypeScript-transpiled subclass was therefore + permanently out of step. They are now excluded alongside `super`, + `constructor` and the runtime's own stamps. +- Nested types reach the runtime as `Pack200$Unpacker` and the generator as + `Pack200.Unpacker` -- the generator reads JS source, where a nested type is + spelled with a dot and is indistinguishable from a package. Both sides now + collapse `/` and `$` to `.`, and both canonicalize *before* sorting, since + `$` and `.` sort differently. + +`ContentKeyTest` pins both, because the only other place the disagreement +surfaces is a slower startup on a device. + +**The interface was never pre-generated (10 → 0).** `GetInterfaceNames` walked +only classpath entries ending in `.jar`, and the app's own compiled classes +arrive as a directory. An interface the app declares was therefore missing from +`sbg-interface-names.txt`, so the parser did not recognise +`new com.tns.tests.InterfaceOne({...})` as implementing one. Directories are now +walked too: 23 app interfaces appeared, and the generator went from 71 +pre-generated classes to 84. + +**The 7 that remain** are cases a static parser genuinely cannot resolve, and +are not worth chasing: + +| Class | Why | +|---|---| +| `ClassForNameDiscoveryObject`, `…Instantiated` | reached through `java.lang.Object[ext](…)` -- computed member access | +| `Button1_btn1344`, `DummyDerivedClass_D1440` | the implementation object is a variable, so its method names are not in the source | +| `TextView_h…`, `Button1_Button1_h…` | no binding emitted for that base at all; both have empty override sets | +| `java.lang.Object_hd50…` | **not diagnosed.** The last surviving hash disagreement -- one unnamed `java.lang.Object` extend; the generator emitted two other `java.lang.Object` keys, neither of which matches | + ## Status Done: the instruments, the taxonomy, the closure, the easing rules, the seed diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java index 98c5a6f15..f03c38b72 100644 --- a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/ContentKey.java @@ -41,7 +41,7 @@ public static String of(String baseClassName, String[] interfaceNames, String[] static String payload(String baseClassName, String[] interfaceNames, String[] methodNames) { StringBuilder builder = new StringBuilder(); - builder.append(baseClassName == null ? "" : baseClassName.replace('/', '.')); + builder.append(canonicalize(baseClassName)); builder.append('|'); builder.append(String.join(",", sortedNonEmpty(interfaceNames))); builder.append('|'); @@ -49,6 +49,20 @@ static String payload(String baseClassName, String[] interfaceNames, String[] me return builder.toString(); } + /** + * Package and nested-type separators both collapse to '.'. + * + * This side reads names out of JS source, where a nested type is written + * with a dot and is indistinguishable from a package; the runtime holds them + * in binary form, with '/' between packages and '$' before a nested type. + * The dotted form is therefore the only one both sides can produce. Leaving + * '$' alone cost every class implementing a nested interface a content key + * that disagreed with the runtime's, so none of them resolved. + */ + private static String canonicalize(String name) { + return name == null ? "" : name.replace('/', '.').replace('$', '.'); + } + /** * An absent field in sbg-bindings.txt splits to a single empty string rather * than to nothing, so the empties are dropped here; the runtime never has @@ -59,7 +73,10 @@ private static List sortedNonEmpty(String[] values) { if (values != null) { for (String value : values) { if (value != null && !value.isEmpty()) { - result.add(value); + // Canonicalized before sorting, not after: '$' sorts after + // '.', so the two sides would otherwise order a nested + // interface differently even once the names matched. + result.add(canonicalize(value)); } } } diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/GetInterfaceNames.java b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/GetInterfaceNames.java index dbf0250b5..4ab049b23 100644 --- a/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/GetInterfaceNames.java +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/main/java/org/nativescript/staticbindinggenerator/GetInterfaceNames.java @@ -34,6 +34,17 @@ public static void generateInterfaceFile(List rows) String pathToDependency = dr.getRow(); if (pathToDependency.endsWith(".jar")) { generateInterfaceNames(pathToDependency, interfacesList); + } else { + // The app's own compiled classes arrive as a directory, not a + // jar. Skipping those meant an interface the app declares was + // never in this list, so the parser did not recognise + // `new com.tns.tests.InterfaceOne({...})` as implementing one + // and no binding was pre-generated -- the class was built on + // device instead, which works but costs a dex at startup. + File dir = new File(pathToDependency); + if (dir.isDirectory()) { + generateInterfaceNamesFromDirectory(dir, interfacesList); + } } }; @@ -46,6 +57,34 @@ public static void generateInterfaceFile(List rows) out.close(); } + private static void generateInterfaceNamesFromDirectory(File dir, List interfacesList) { + File[] entries = dir.listFiles(); + if (entries == null) { + return; + } + + for (File entry : entries) { + if (entry.isDirectory()) { + generateInterfaceNamesFromDirectory(entry, interfacesList); + continue; + } + if (!entry.getName().endsWith(CLASS_EXT)) { + continue; + } + // Unreadable or half-written class files are skipped rather than + // fatal: compileAppClassesForSbg is best-effort by design, so a + // source it could not compile must not take the build down here. + try (FileInputStream in = new FileInputStream(entry)) { + JavaClass clazz = new ClassParser(in, entry.getName()).parse(); + if (clazz.isInterface()) { + interfacesList.add(clazz.getClassName().replace('$', '.')); + } + } catch (IOException | RuntimeException e) { + // ignored -- see above + } + } + } + private static void generateInterfaceNames(String pathToJar, List interfacesList) { if (pathToJar == null) { return; diff --git a/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java b/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java index 9de0e26bc..6a10cc8ed 100644 --- a/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java +++ b/platforms/android/test-app/build-tools/static-binding-generator/src/test/java/org/nativescript/staticbindinggenerator/test/ContentKeyTest.java @@ -46,6 +46,40 @@ public void treatsSlashAndDotBasesAlike() { ContentKey.of("com/tns/tests/Button1", new String[]{""}, new String[]{""})); } + /** + * A nested interface is `Pack200$Unpacker` to the runtime and + * `Pack200.Unpacker` in JS source. Both sides collapse '$' to '.', so the + * two spellings have to hash alike -- before this held, every class + * implementing a nested interface was built on device instead. + * + * The literal is the real key for the test-app's + * MyTSTranspiledObjectThatExtendsInterfaces. + */ + @Test + public void treatsNestedAndDottedInterfacesAlike() { + String[] dotted = {"java.util.jar.Pack200.Unpacker", "java.util.Formattable", + "java.util.Observer", "java.util.jar.Pack200.Packer"}; + String[] binary = {"java/util/jar/Pack200$Unpacker", "java.util.Formattable", + "java.util.Observer", "java/util/jar/Pack200$Packer"}; + String[] methods = {"greet", "unpack", "properties", "toString", "formatTo", "update", + "addPropertyChangeListener", "pack", "removePropertyChangeListener"}; + + assertEquals(ContentKey.of("java.lang.Object", dotted, methods), + ContentKey.of("java.lang.Object", binary, methods)); + assertEquals("haa054d88a5def37b", + ContentKey.of("java.lang.Object", dotted, methods)); + } + + /** The same collapse applies to a nested base class. */ + @Test + public void treatsNestedAndDottedBasesAlike() { + assertEquals( + ContentKey.of("com.tns.tests.DummyClass.DummyDerivedClass", new String[]{""}, + new String[]{"toString"}), + ContentKey.of("com/tns/tests/DummyClass$DummyDerivedClass", new String[]{""}, + new String[]{"toString"})); + } + /** * An absent field in sbg-bindings.txt splits to one empty string. The runtime * has no such element, so it has to be dropped rather than hashed as "". From 878db06b502cdf700f30e6e677d50967568082dc Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 10 Aug 2026 15:36:05 +0500 Subject: [PATCH 34/98] fix(sbg): count quoted keys in an implementation object as method overrides (cherry picked from commit 366921771de8b4eca76570a40123ce6ac70385b1) --- docs/metadata-filtering.md | 32 +++++++++++++++--- .../tests/native-class-visitor.test.js | 33 +++++++++++++++++++ .../jsparser/visitors/es5-visitors.js | 27 +++++++++++---- 3 files changed, 82 insertions(+), 10 deletions(-) diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 8f7141049..37214a4db 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -475,7 +475,7 @@ Both layers were at 27 until the two causes below were found by listing `com.tns.gen.*` classes in the APK. Neither showed up as a failure: a class the generator missed is built at startup and works. -**The hash disagreed (11 → 1).** Two independent divergences, both invisible to +**The hash disagreed (11 → 0).** Three independent divergences, all invisible to the build: - `ts_helpers`' `__extends` writes `__parent` and `__child` onto the prototype @@ -490,8 +490,25 @@ the build: collapse `/` and `$` to `.`, and both canonicalize *before* sorting, since `$` and `.` sort differently. -`ContentKeyTest` pins both, because the only other place the disagreement -surfaces is a slower startup on a device. +- A **quoted key** was skipped by the parser. `{ "toString": function () {} }` + is the same override as `{ toString: function () {} }` -- the runtime + enumerates own property names and cannot tell them apart -- but + `_getIdentifierKeyName` accepted only `Identifier` keys, so any app writing + its overrides that way was permanently out of step. Minifiers and code + generators emit the quoted form routinely, so this is the one of the three + most likely to bite a real app rather than a test fixture. Quoted keys that + are legal identifiers now count; spreads, computed keys and numeric keys stay + skipped, because nothing can map those to a Java method. + +`ContentKeyTest` and `tests/native-class-visitor.test.js` pin these, because the +only other place the disagreement surfaces is a slower startup on a device. + +**Why a disagreement is safe.** Both sides derive the key from the method list, +so any difference in the list changes the key, and a changed key simply misses +the pre-generated class -- the runtime then builds the right one itself. The +failure mode is always a slower launch, never a wrong class. That is worth +knowing before hunting one of these: nothing is broken, something is just not +being used. **The interface was never pre-generated (10 → 0).** `GetInterfaceNames` walked only classpath entries ending in `.jar`, and the app's own compiled classes @@ -509,7 +526,14 @@ are not worth chasing: | `ClassForNameDiscoveryObject`, `…Instantiated` | reached through `java.lang.Object[ext](…)` -- computed member access | | `Button1_btn1344`, `DummyDerivedClass_D1440` | the implementation object is a variable, so its method names are not in the source | | `TextView_h…`, `Button1_Button1_h…` | no binding emitted for that base at all; both have empty override sets | -| `java.lang.Object_hd50…` | **not diagnosed.** The last surviving hash disagreement -- one unnamed `java.lang.Object` extend; the generator emitted two other `java.lang.Object` keys, neither of which matches | +| `java.lang.Object_hd50…` | the implementation object is assembled as a **string and `eval`'d** | + +> Do not classify these by matching the base-class stem. An unnamed extend's +> name is just `_h`, so the stem matches every other unnamed extend +> of the same base, and a class the generator never emitted looks like a hash +> disagreement. The `eval` case above was misread that way; the honest test is +> whether the exact name is present. `FNV("java.lang.Object||hashCode")` -- +> recomputing the payload by hand -- is what identified it. ## Status diff --git a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js index 2e39230a5..abd34b063 100644 --- a/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js +++ b/platforms/android/test-app/build-tools/jsparser/tests/native-class-visitor.test.js @@ -239,3 +239,36 @@ console.log("call-form decorator tests passed"); } console.log("bundled-import decorator tests passed"); + +// A quoted key is the same override as a bare one. The runtime enumerates own +// property names and cannot tell them apart, so this side must not either -- +// skipping the quoted form gave the two sides different method lists, hence +// different content keys, hence a class rebuilt on device every launch. +{ + const { unnamed } = parse(` + var O = java.lang.Object.extend({ + "toString": function () { return "x"; }, + hashCode: function () { return 1; } + }); + `); + assert.strictEqual(unnamed.length, 1); + assert.deepStrictEqual(fields(unnamed[0])[5].split(","), ["toString", "hashCode"]); +} + +// Keys that genuinely cannot name a Java method stay skipped, and must not +// abort the traversal: bundled vendor code is full of them. +{ + const { unnamed } = parse(` + var O = java.lang.Object.extend({ + ...base, + ["computed" + n]: function () {}, + "not-an-identifier": function () {}, + 3: function () {}, + hashCode: function () { return 1; } + }); + `); + assert.strictEqual(unnamed.length, 1); + assert.deepStrictEqual(fields(unnamed[0])[5].split(","), ["hashCode"]); +} + +console.log("implementation-object key tests passed"); diff --git a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js index 3c7495712..1fdcfb6d4 100644 --- a/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js +++ b/platforms/android/test-app/build-tools/jsparser/visitors/es5-visitors.js @@ -971,18 +971,33 @@ var es5_visitors = (function () { * HELPER METHODS */ - // Returns the Identifier name of a property's key, or null when the property - // is a SpreadElement, has a computed key, or uses a non-Identifier key - // (e.g. StringLiteral, NumericLiteral). Such properties cannot be mapped to - // a Java method binding, so callers should skip them. + // A method name a Java binding could carry, or null when the property cannot + // be mapped to one: a SpreadElement, a computed key, or a literal that is not + // a legal identifier. + // + // A quoted key counts. `{ "toString": function () {} }` is the same override + // as `{ toString: function () {} }` -- the runtime enumerates the object's + // own property names and cannot tell the two apart, so skipping the quoted + // form put this side's method list (and therefore the content key derived + // from it) permanently out of step with the runtime's for any app that writes + // its overrides that way. Minifiers and code generators emit it routinely. + var JAVA_IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/; + function _getIdentifierKeyName(property) { if (!property || property.computed) { return null; } - if (!property.key || !types.isIdentifier(property.key)) { + if (!property.key) { return null; } - return property.key.name; + if (types.isIdentifier(property.key)) { + return property.key.name; + } + if (types.isStringLiteral(property.key) && + JAVA_IDENTIFIER.test(property.key.value)) { + return property.key.value; + } + return null; } function getTypeScriptExtendSuperCallLocation(extendPath, config) { From 122bd209f390f303c131ccabf7194f19fec709e0 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 16 Aug 2026 23:21:04 +0500 Subject: [PATCH 35/98] fix(react-native): stage the Apple bridge and engine layer as trees, not a file list --- scripts/build_react_native_turbomodule.sh | 34 +++++++++++++++-------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/scripts/build_react_native_turbomodule.sh b/scripts/build_react_native_turbomodule.sh index c6a566677..2b948611a 100755 --- a/scripts/build_react_native_turbomodule.sh +++ b/scripts/build_react_native_turbomodule.sh @@ -71,6 +71,7 @@ mkdir -p \ "$PACKAGE_DIR/native-api/ffi/objc/shared/bridge/host_objects" \ "$PACKAGE_DIR/native-api/jsi/hermes" \ "$PACKAGE_DIR/native-api/jsi/shared" \ + "$PACKAGE_DIR/native-api/jsi" \ "$PACKAGE_DIR/native-api/metadata/include" \ "$PACKAGE_DIR/metadata" \ "$PACKAGE_DIR/ios/vendor/libffi/include" \ @@ -78,18 +79,27 @@ mkdir -p \ "$PACKAGE_DIR/types/objc-node-api" \ "$PACK_DESTINATION" -cp NativeScript/ffi/objc/hermes/NativeApiJsi*.mm "$PACKAGE_DIR/native-api/ffi/objc/hermes/" -cp NativeScript/ffi/objc/hermes/NativeApiJsi*.h "$PACKAGE_DIR/native-api/ffi/objc/hermes/" -cp NativeScript/ffi/objc/hermes/NativeApiJsiReactNative.h "$PACKAGE_DIR/native-api/ffi/objc/hermes/" -cp NativeScript/ffi/objc/shared/bridge/*.mm "$PACKAGE_DIR/native-api/ffi/objc/shared/bridge/" -cp NativeScript/ffi/objc/shared/bridge/*.h "$PACKAGE_DIR/native-api/ffi/objc/shared/bridge/" -cp NativeScript/ffi/objc/shared/bridge/host_objects/*.mm \ - "$PACKAGE_DIR/native-api/ffi/objc/shared/bridge/host_objects/" -cp NativeScript/ffi/objc/shared/NativeApiBackendConfig.h "$PACKAGE_DIR/native-api/ffi/objc/shared/" -cp NativeScript/ffi/objc/shared/SignatureDispatchCore.h "$PACKAGE_DIR/native-api/ffi/objc/shared/" -cp NativeScript/ffi/objc/shared/PreparedSignatureDispatch.h "$PACKAGE_DIR/native-api/ffi/objc/shared/" -cp NativeScript/jsi/hermes/*.h "$PACKAGE_DIR/native-api/jsi/hermes/" -cp NativeScript/jsi/shared/*.h "$PACKAGE_DIR/native-api/jsi/shared/" +# The platform-neutral engine layer. The Apple headers under ffi/objc are thin +# forwarders onto it -- NativeApiJsi.h is a one-line #include of +# "jsi/hermes/NativeApiJsi.h" -- so the pod does not compile without this tree, +# even though it compiles nothing out of it directly. Header-only as far as the +# TurboModule is concerned; it is on the pod's header search path via +# native-api. Staged here rather than left to the Android step, because this +# script owns native-api/ and wipes it above. +cp -R "$REPO_ROOT/NativeScript/jsi/." "$PACKAGE_DIR/native-api/jsi/" + +# The Apple side of the bridge, staged whole rather than file by file. +# +# Only NativeApiJsi.mm is compiled: everything else arrives through #include, +# either as a header or as a .mm folded into that translation unit (see +# HostObjects.mm, which assembles host_objects/*.mm). An enumerated list has to +# name every one of those transitively, so it silently goes stale whenever the +# sources grow a file or a directory -- which is what happened here. Copying the +# trees keeps the staged set equal to the source set by construction. +cp -R "$REPO_ROOT/NativeScript/ffi/objc/hermes/." "$PACKAGE_DIR/native-api/ffi/objc/hermes/" +cp -R "$REPO_ROOT/NativeScript/ffi/objc/shared/." "$PACKAGE_DIR/native-api/ffi/objc/shared/" +# Build leftovers, not sources. +find "$PACKAGE_DIR/native-api/ffi/objc" -name '*.stamp' -delete cp "$GENERATED_SIGNATURE_DISPATCH" "$PACKAGE_DIR/native-api/ffi/objc/shared/GeneratedSignatureDispatch.inc" GENERATED_GSD_SIGNATURE_DISPATCH="$(dirname "$GENERATED_SIGNATURE_DISPATCH")/GeneratedGsdSignatureDispatch.inc" if [ -f "$GENERATED_GSD_SIGNATURE_DISPATCH" ]; then From f0314ea6b5ceac99a72628b4bf09cbb5b1f09f9a Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 17 Aug 2026 19:27:52 +0500 Subject: [PATCH 36/98] fix(react-native): metadata filtering fixes for react-native Ensure metadata filtering in ON in react-native projects and strips all unnecessary modules and classes automatically. --- .../react-native/android/nativescript.gradle | 532 ++++++++++++++++-- 1 file changed, 500 insertions(+), 32 deletions(-) diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 961b93181..fe14be843 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -11,8 +11,9 @@ // Generated from the app's own resolved classpath, so a library the app // installs is callable without anyone publishing bindings for it. // -// * TypeScript declarations for the same classpath, off by default because -// they take a while. Turn on with -PnsGenerateTypings=true. +// * TypeScript declarations for the same classpath, generated on the first +// build and refreshed only when the classpath changes. -PnsGenerateTypings=false +// opts out. // // Both are keyed to the variant being built, so debug and release get metadata // for the dependencies they actually resolve. @@ -33,7 +34,34 @@ def reactExt = project.extensions.findByName("react") def reactRoot = reactExt?.root?.getOrNull()?.asFile ?: file("${project.projectDir}/../..") def reactCliFile = reactExt?.cliFile?.getOrNull()?.asFile?.absolutePath ?: new File(reactRoot, "node_modules/react-native/cli.js").absolutePath -def nodeExecutable = (reactExt?.nodeExecutableAndArgs?.getOrNull() ?: ["node"])[0] +// Node, as a full command rather than just its head: nodeExecutableAndArgs is a +// list because an app may need flags with it (--max-old-space-size, a wrapper), +// and dropping everything after [0] silently ignores them. +// +// -PnsNodePath wins over everything. A bare "node" is resolved through the +// Gradle daemon's PATH, which is not the PATH of the shell that launched the +// build: version managers (volta, nvm, fnm, asdf) install a shim there that +// fails unless a default version is pinned, and the daemon outlives the +// terminal it was started from. An absolute path sidesteps all of it. +def nsNodeCommand = { + if (project.hasProperty("nsNodePath")) { + return [project.property("nsNodePath").toString()] + } + def fromReact = reactExt?.nodeExecutableAndArgs?.getOrNull() + if (fromReact != null && !fromReact.isEmpty()) { + return fromReact.collect { it.toString() } + } + return ["node"] +}() +def nodeExecutable = nsNodeCommand[0] + +// Shared by every step that shells out to node, so one broken toolchain reads +// the same way wherever it surfaces. +def nsNodeHelp = "Set -PnsNodePath=/absolute/path/to/node (or react { " + + "nodeExecutableAndArgs = [\"/absolute/path/to/node\"] } in " + + "android/app/build.gradle). Version managers such as volta, nvm, fnm " + + "and asdf put a shim on PATH that the Gradle daemon inherits without " + + "the shell state that makes it work." def nsEntryFile = reactExt?.entryFile?.getOrNull()?.asFile?.absolutePath ?: (new File(reactRoot, "index.js").exists() ? new File(reactRoot, "index.js").absolutePath @@ -42,10 +70,109 @@ def nsEntryFile = reactExt?.entryFile?.getOrNull()?.asFile?.absolutePath def nsGenerateTypings = project.hasProperty("nsGenerateTypings") && Boolean.parseBoolean(project.property("nsGenerateTypings").toString()) -// Restrict metadata to what the app's bundle can reach. Opt-in while it earns -// trust; release builds only, since a debug build has no bundle on disk to -// analyse and guessing from a partial view is what breaks apps. -def nsFilterMetadata = project.hasProperty("nsFilterMetadata") +// Restrict metadata to what the app's bundle can reach. +// +// On by default, and release-only: a debug build has no bundle on disk to +// analyse, and guessing from a partial view is what breaks apps. Shipping +// metadata for the whole compile classpath means an app that touches 5% of the +// platform pays for 100% of it, in both APK size and startup parse time. +// +// The seed is a lower bound that the generator widens (supertypes, nested +// classes, signature types) before dropping anything, because usage alone is +// not enough: android.os.Bundle is never named in JS and never resolved as a +// node, yet removing it makes Activity.onCreate(Bundle) unbuildable and the app +// crashes at launch. See docs/metadata-filtering.md. +// +// -PnsFilterMetadata=false opts out and ships the whole classpath, which is the +// escape hatch if a filtered build misses something. +def nsFilterMetadata = !project.hasProperty("nsFilterMetadata") || + Boolean.parseBoolean(project.property("nsFilterMetadata").toString()) + +// Classes the app declares it calls from JS, from nativescript.react-native.json +// at the project root -- the same file the iOS side already uses: +// +// { "reactNative": { "metadata": { "android": { +// "include": ["com.ammarahmed.reactnativeworkers.WorkerTurboModules"] } } } } +// +// Entries are added to the metadata whitelist, and a package named here is kept +// out of the autolinked-module exclusion below. Accepts "pkg.Class", "pkg.*" or +// raw .mdg form ("pkg:Class"). +def nsMetadataInclude = { + def configFile = new File(reactRoot, "nativescript.react-native.json") + if (!configFile.exists()) return [] + try { + def parsed = new groovy.json.JsonSlurper().parse(configFile) + def declared = parsed?.reactNative?.metadata?.android?.include + if (declared instanceof List) { + return declared.findAll { it instanceof String && !it.trim().isEmpty() } + .collect { it.toString().trim() } + } + } catch (Exception e) { + // Falling back to a different filter than the author asked for would be + // silent and wrong; a filtered build is not the place to guess. + throw new GradleException("NativeScript: could not read ${configFile}: ${e.message}") + } + return [] +}() + +// "com.foo.Bar" -> "com.foo:Bar", "com.foo.*" -> "com.foo:*", "a:b" unchanged. +def nsToMdgEntry = { String raw -> + def value = raw.trim() + if (value.isEmpty()) return null + if (value.contains(":")) return value + if (value.endsWith(".*")) return value[0..-3] + ":*" + def segments = value.tokenize(".") + for (int i = 0; i < segments.size(); i++) { + if (segments[i] && Character.isUpperCase(segments[i].charAt(0))) { + return segments[0.. + def entry = nsToMdgEntry(raw) + entry == null ? null : entry.substring(0, entry.indexOf(":")) +}.findAll { it != null && !it.isEmpty() } + +// React Native's own native modules are reached from JS through the TurboModule +// bridge, not through the interop, so describing them in metadata buys nothing +// and costs bytes and startup parse time. Their packages are read from the +// PackageList React Native's autolinking generates, so the exclusion tracks +// whatever the app installs without anyone maintaining a list. +// +// This does NOT affect the R8 keep rules: those are written from what metadata +// retains, so a module that is never described is simply never mentioned -- +// and it stays in the app because the Java that registers it references it, +// which is what R8 follows. Excluded from metadata, untouched in the dex. +// +// A package the app named in `include` is left out of the exclusion: the +// generator applies the blacklist *over* the whitelist +// (`isSeed(d) && !isBlacklisted(d)` in MetadataClosure), so blacklisting a +// package the author asked for would silently win over the request. +def nsAutolinkedModulePackages = { variantName -> + def packageList = new File(buildDir, + "generated/autolinking/src/main/java/com/facebook/react/PackageList.java") + if (!packageList.exists()) return [] + + def packages = new LinkedHashSet() + def entry = ~/new\s+([a-zA-Z0-9_.]+)\s*\(/ + packageList.eachLine { line -> + def matcher = entry.matcher(line) + while (matcher.find()) { + def fqcn = matcher.group(1) + def lastDot = fqcn.lastIndexOf('.') + if (lastDot <= 0) return + def pkg = fqcn.substring(0, lastDot) + // The bridge's own packages are described by the runtime keep-list + // and by whatever the JS names; leave that judgement to the seed. + if (pkg.startsWith("com.facebook.react")) return + packages.add(pkg) + } + } + return packages.toList() +} // Typings are on by default: without them TypeScript cannot type a single // native call. The task declares the classpath as an input and the typings @@ -208,6 +335,9 @@ android.applicationVariants.all { variant -> }).withPropertyName("filters") // Toggling the flag off leaves no filter file behind to notice. inputs.property("filterMetadata", nsFilterMetadata) + // Editing the declaration changes both what is kept and which module + // packages are excluded, and neither is visible in the files above. + inputs.property("metadataInclude", nsMetadataInclude) outputs.dir(metadataOutDir) // Not beside the metadata: that directory's parent is an asset source @@ -264,10 +394,22 @@ android.applicationVariants.all { variant -> def authoredWhitelist = file("${project.projectDir}/whitelist.mdg") def whitelistTarget = new File(workDir, "whitelist.mdg") - if (useGeneratedSeed || authoredWhitelist.exists()) { + // Only in a build that is already filtering. A declaration is meant + // to widen a filtered set, not to become the whole filter: adding it + // to an unfiltered (debug) build would turn a whitelist on for the + // first time and cut that build down to the declaration's closure. + def declaredEntries = useGeneratedSeed + ? nsMetadataInclude.collect { nsToMdgEntry(it) }.findAll { it != null } + : [] + + if (useGeneratedSeed || authoredWhitelist.exists() || !declaredEntries.isEmpty()) { def parts = [] if (useGeneratedSeed) parts.add(generatedSeed.text) if (authoredWhitelist.exists()) parts.add(authoredWhitelist.text) + if (!declaredEntries.isEmpty()) { + parts.add("# from nativescript.react-native.json\n" + + declaredEntries.join("\n") + "\n") + } whitelistTarget.text = parts.join("\n") } else { whitelistTarget.delete() @@ -275,8 +417,63 @@ android.applicationVariants.all { variant -> def blacklistSource = file("${project.projectDir}/blacklist.mdg") def blacklistTarget = new File(workDir, "blacklist.mdg") - if (blacklistSource.exists()) { - blacklistTarget.text = blacklistSource.text + + // Autolinked React Native modules, minus the ones this app actually + // reaches from JS. + // + // Gated with the whitelist because the generator only consults a + // blacklist once a whitelist exists, and an unfiltered build should + // stay unfiltered. + // + // Two things spare a module from the exclusion, and both matter + // because the blacklist beats the whitelist inside the generator + // (`isSeed(d) && !isBlacklisted(d)` in MetadataClosure) -- once a + // package is excluded here, nothing downstream can bring it back: + // + // * the seed names it. A worker calling + // `com.ammarahmed.reactnativeworkers.WorkerTurboModules` is + // using that module as an interop class, whatever else the + // TurboModule bridge is doing with it, so describing it is the + // whole point. + // * the app declared it in nativescript.react-native.json, for + // the case where the analysis cannot see the use. + def seededPackages = [] + if (useGeneratedSeed && whitelistTarget.exists()) { + whitelistTarget.eachLine { line -> + def trimmed = line.trim() + if (trimmed.isEmpty() || trimmed.startsWith("#")) return + def colon = trimmed.indexOf(":") + if (colon > 0) seededPackages.add(trimmed.substring(0, colon)) + } + } + + def keptPackages = (nsIncludedPackages + seededPackages).unique() + def excludedModules = useGeneratedSeed + ? nsAutolinkedModulePackages(variantName) + .findAll { pkg -> !keptPackages.any { it == pkg || it.startsWith(pkg + ".") } } + : [] + + def blacklistParts = [] + if (blacklistSource.exists()) blacklistParts.add(blacklistSource.text) + if (!excludedModules.isEmpty()) { + // Two patterns per module: the package itself, and its + // subpackages. The matcher globs the package name, but "a.b:*" + // matches only "a.b" -- a module that splits itself across + // a.b.core / a.b.views (nitro does) would otherwise leak. + blacklistParts.add( + "# Autolinked React Native modules: reached over the TurboModule\n" + + "# bridge rather than the interop, so they are not described here.\n" + + "# Declare one in nativescript.react-native.json to keep it.\n" + + excludedModules.collect { it + ":*\n" + it + ".*:*" }.join("\n") + "\n") + def keptModules = nsAutolinkedModulePackages(variantName) - excludedModules + logger.lifecycle("NativeScript: excluding ${excludedModules.size()} autolinked " + + "React Native module package(s) from metadata: " + excludedModules.join(", ") + + (keptModules.isEmpty() ? "" : "; kept because the app uses them: " + + keptModules.join(", "))) + } + + if (!blacklistParts.isEmpty()) { + blacklistTarget.text = blacklistParts.join("\n") } else { blacklistTarget.delete() } @@ -389,12 +586,62 @@ android.applicationVariants.all { variant -> include "**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx" exclude "**/node_modules/**", "**/android/**", "**/ios/**", "**/build/**" }) + // The app's own sources are not the whole program: a dependency's JS + // is bundled into these graphs too, and a library that calls Java is + // as much a part of the analysis as the app is. node_modules is + // excluded above because hashing it on every build is far more + // expensive than the bundling it would guard -- the lockfiles stand + // in for it, since a dependency cannot change without one of them + // changing. Without this, upgrading a library silently leaves the + // bindings and the metadata filter describing the previous one. + // + // Searched up from the app as well as in it: in a workspace the app + // is a package and the lockfile belongs to the repository root, so + // looking only beside package.json finds nothing at all -- which + // fails silently, as an input that never changes. + inputs.files(provider { + def names = ["yarn.lock", "package-lock.json", "pnpm-lock.yaml", "bun.lockb"] + def found = [] + def dir = reactRoot + // A handful of levels: enough for app-in-a-workspace, and never + // so far up that an unrelated lockfile outside the project is + // picked up. + for (int depth = 0; depth < 5 && dir != null; depth++) { + names.each { name -> + def candidate = new File(dir, name) + if (candidate.exists()) found.add(candidate) + } + if (new File(dir, ".git").exists()) break + dir = dir.parentFile + } + def appPackageJson = new File(reactRoot, "package.json") + if (appPackageJson.exists()) found.add(appPackageJson) + found + }).withPropertyName("dependencyLocks").optional() + // Which entry points exist at all. A worker added or repointed + // changes the set of graphs to analyse, and the journal is the only + // place that shows -- adding one usually adds a source file, which + // the tree above catches, but repointing an existing file does not. + inputs.files(provider { + def journal = new File(reactRoot, ".rn-workers/manifest.log") + journal.exists() ? [journal] : [] + }).withPropertyName("workerEntries").optional() // The generator and its parser are inputs too. Without them a change // to either leaves the task up to date against stale output, which // reads exactly like the change having no effect. inputs.file(sbgGeneratorJar) inputs.files(fileTree(new File(toolsDir, "jsparser"))) + // The analysis bundler is one as well; it decides what the parser + // and the seed get to see. + inputs.files(provider { + def script = new File(nsPackageDir, "scripts/bundle-for-analysis.js") + script.exists() ? [script] : [] + }).withPropertyName("analysisBundler").optional() outputs.dir(sbgJavaDir) + // Declared so the bundles survive an up-to-date run: the metadata + // seed reads this directory, and a task that is skipped must still + // leave its inputs in place. + outputs.dir(sbgBundleDir) doFirst { sbgWorkDir.mkdirs() @@ -431,6 +678,45 @@ android.applicationVariants.all { variant -> } tsHelpersTarget.text = tsHelpersSource.text + // Secondary entry points, each of which is its own module graph + // and so appears in no other bundle. A worker's JS is invisible + // to everything here unless it is bundled separately: it neither + // contributes subclasses to the static binding generator nor + // Java usage to the metadata seed, and the result is a release + // build that drops exactly the classes a worker needs. + // + // Read from the journal a worker bundler leaves behind + // (.rn-workers/manifest.log, JSON lines of {id, absPath}) rather + // than from its output: that runs later in the build, and by + // then it has already compiled its bundles to Hermes bytecode, + // which no JS parser can read. + def workerJournal = new File(reactRoot, ".rn-workers/manifest.log") + def entriesById = [:] + if (workerJournal.exists()) { + def slurper = new groovy.json.JsonSlurper() + workerJournal.eachLine { line -> + def trimmed = line.trim() + if (trimmed.isEmpty()) return + try { + def parsed = slurper.parseText(trimmed) + // Later lines win: the journal is appended to on + // every transform, so it holds stale duplicates. + if (parsed?.id && parsed?.absPath) entriesById[parsed.id] = parsed.absPath + } catch (Exception ignored) { + // A malformed line is one worker, not the build. + } + } + } + def workerEntries = entriesById.findAll { id, absPath -> new File(absPath).exists() } + + // With workers to build, one Metro session builds the app entry + // and all of them together -- so the app entry is not bundled + // twice, and the copy that survives is the unminified one the + // analysis reads far better (minified input is what leaves most + // call sites unresolved). + def analysisScript = new File(nsPackageDir, "scripts/bundle-for-analysis.js") + def useAnalysisScript = !workerEntries.isEmpty() && analysisScript.exists() + logger.lifecycle("NativeScript: bundling ${variant.name} JavaScript for binding generation") // --unstable-transform-profile is what keeps `class X extends Y {}` @@ -446,25 +732,125 @@ android.applicationVariants.all { variant -> // // The value is "hermes-stable"; the CLI's own help text still // says "hermes", which the preset does not match. - def bundleCmd = [nodeExecutable, reactCliFile, "bundle", - "--platform", "android", - "--dev", "false", - "--unstable-transform-profile", "hermes-stable", - "--entry-file", nsEntryFile, - "--bundle-output", new File(sbgBundleDir, "index.android.bundle").absolutePath, - "--assets-dest", new File(sbgWorkDir, "assets").absolutePath] - - def bundleProcess = new ProcessBuilder(bundleCmd) - .directory(reactRoot) - .redirectErrorStream(true) - .start() - bundleProcess.inputStream.eachLine { logger.info(it) } - def bundleExit = bundleProcess.waitFor() - if (bundleExit != 0) { - throw new GradleException( - "NativeScript: bundling for binding generation failed (exit ${bundleExit}). " + - "Re-run with --info to see the bundler output, or pass " + - "-PnsSkipStaticBindings to build without pre-generated bindings.") + def runCliMainBundle = { + def bundleCmd = nsNodeCommand + [reactCliFile, "bundle", + "--platform", "android", + "--dev", "false", + "--unstable-transform-profile", "hermes-stable", + "--entry-file", nsEntryFile, + "--bundle-output", new File(sbgBundleDir, "index.android.bundle").absolutePath, + "--assets-dest", new File(sbgWorkDir, "assets").absolutePath] + + // Kept so a failure can name the node that actually ran: the + // whole class of toolchain problems here is "not the node you + // think", and the exit code alone does not show which one. + def bundleOutput = new StringBuilder() + def bundleProcess = new ProcessBuilder(bundleCmd) + .directory(reactRoot) + .redirectErrorStream(true) + .start() + bundleProcess.inputStream.eachLine { + logger.info(it) + bundleOutput.append(it).append("\n") + } + def bundleExit = bundleProcess.waitFor() + if (bundleExit != 0) { + // 126 is "found but not executable", which is what a version + // manager's shim returns when it has no version to delegate + // to; 127 is "not on PATH at all". Both mean the node lookup, + // not the bundle. + def nodeProblem = bundleExit == 126 || bundleExit == 127 + throw new GradleException( + "NativeScript: bundling for binding generation failed (exit ${bundleExit}) " + + "using node '${nsNodeCommand.join(' ')}'.\n" + + (nodeProblem ? "That exit code means the node command could not be run. " + + nsNodeHelp + "\n" : "") + + (bundleOutput.length() > 0 + ? "Bundler output:\n${bundleOutput.toString().trim()}\n" + : "The bundler produced no output; re-run with --info.\n") + + "Or pass -PnsSkipStaticBindings to build without pre-generated bindings.") + } + } + + // Skipped when the analysis script runs: that builds this same + // entry alongside the workers, in one Metro session. + if (!useAnalysisScript) { + runCliMainBundle() + } + + if (useAnalysisScript) { + { + logger.lifecycle("NativeScript: bundling the app entry and " + + "${workerEntries.size()} worker " + + "entr${workerEntries.size() == 1 ? 'y' : 'ies'} in one Metro session") + + // One session for all of them. A `react-native bundle` + // per entry would pay a fresh Node process, a fresh + // config load and a cold transform cache each time; + // loading the config once and reusing it is what React + // Native's own tooling does. + def analysisCmd = nsNodeCommand + [analysisScript.absolutePath, + "--project-root", reactRoot.absolutePath, + "--out", sbgBundleDir.absolutePath, + "--entry", nsEntryFile, + // Worker graphs swap `react-native` for + // the worker shim; without this the + // analysis would read a graph the + // device never runs. + "--resolver-option", "rnworkers=true"] + workerEntries.each { id, absPath -> analysisCmd.addAll(["--worker", "${id}=${absPath}"]) } + + def analysisOutput = new StringBuilder() + def analysisProcess = new ProcessBuilder(analysisCmd.collect { it.toString() }) + .directory(reactRoot) + .redirectErrorStream(true) + .start() + analysisProcess.inputStream.eachLine { + logger.info(it) + analysisOutput.append(it).append("\n") + } + def analysisExit = analysisProcess.waitFor() + + // Exit 3 is "this React Native has no programmatic + // bundle API"; anything else is a real failure, and + // carrying on would filter metadata against a view of + // the program that is missing these workers -- a launch + // crash in the field rather than an error here. + if (analysisExit == 3) { + logger.lifecycle("NativeScript: falling back to one bundler run per entry") + // The app entry was skipped above on the assumption + // this session would build it. + runCliMainBundle() + workerEntries.each { id, absPath -> + def safeName = id.replaceAll("[^A-Za-z0-9]", "_") + def workerOut = new File(sbgBundleDir, "worker-${safeName}.js") + def workerCmd = nsNodeCommand + [reactCliFile, "bundle", + "--platform", "android", + "--dev", "false", + "--unstable-transform-profile", "hermes-stable", + "--entry-file", absPath, + "--bundle-output", workerOut.absolutePath] + def workerOutput = new StringBuilder() + def workerProcess = new ProcessBuilder(workerCmd.collect { it.toString() }) + .directory(reactRoot) + .redirectErrorStream(true) + .start() + workerProcess.inputStream.eachLine { + logger.info(it) + workerOutput.append(it).append("\n") + } + if (workerProcess.waitFor() != 0) { + throw new GradleException( + "NativeScript: bundling worker '${id}' for analysis failed.\n" + + workerOutput.toString().trim()) + } + } + } else if (analysisExit != 0) { + throw new GradleException( + "NativeScript: bundling the app and its workers for analysis " + + "failed (exit ${analysisExit}).\n" + analysisOutput.toString().trim()) + } + } } def bundles = sbgBundleDir.listFiles()?.findAll { it.isFile() } ?: [] @@ -525,6 +911,51 @@ android.applicationVariants.all { variant -> // node_modules rather than beside the copied tree. environment "NODE_PATH", new File(reactRoot, "node_modules").absolutePath + // The generator spawns `node` for jsparser itself, so the node + // resolved above has to be on the PATH it inherits -- otherwise + // the bundle step uses ours and the parser step silently uses a + // different one (or a version manager's shim, which fails). + def resolvedNode = new File(nodeExecutable) + if (resolvedNode.isAbsolute() && resolvedNode.parentFile != null) { + environment "PATH", resolvedNode.parentFile.absolutePath + + File.pathSeparator + System.getenv("PATH") + } + + // An app that subclasses nothing has no bindings to generate, + // which is an ordinary outcome -- most React Native apps call + // native APIs without ever extending a Java class. The generator + // does not treat it as one: jsparser writes sbg-bindings.txt + // only when it finds something, and the generator then fails + // with "Couldn't find ... bindings input file". Pre-creating the + // file does not help, because the generator deletes it before + // running the parser itself. + // + // So run the parser here first -- the same script, with the node + // and NODE_PATH resolved above -- and skip the generator when it + // comes back empty. The generator would re-run it anyway, so + // this costs one parse of an already-built bundle. + def parserScript = new File(sbgWorkDir, "jsparser/js_parser.js") + def sbgBindings = new File(sbgWorkDir, "sbg-bindings.txt") + if (parserScript.exists()) { + sbgBindings.delete() + def probeBuilder = new ProcessBuilder( + (nsNodeCommand + [parserScript.absolutePath]).collect { it.toString() }) + .directory(sbgWorkDir) + .redirectErrorStream(true) + probeBuilder.environment().put("NODE_PATH", + new File(reactRoot, "node_modules").absolutePath) + def probe = probeBuilder.start() + probe.inputStream.eachLine { logger.info(" [sbg-parser] $it") } + probe.waitFor() + + if (!sbgBindings.exists() || sbgBindings.text.trim().isEmpty()) { + logger.lifecycle("NativeScript: no Java subclasses found in the bundle, " + + "so there are no static bindings to generate. Any subclassing the " + + "app does at runtime is still bound on the device, as in debug.") + throw new org.gradle.api.tasks.StopExecutionException() + } + } + def params = [sbgGeneratorJar.absolutePath] // The generated names must be derived the same way the runtime // derives them; the guest runtime always uses content keys. @@ -570,7 +1001,7 @@ android.applicationVariants.all { variant -> "scripts/build_react_native_android_tools.sh from a checkout.") } - def cmd = ["node", seedScript.absolutePath, sbgBundleDir.absolutePath, + def cmd = nsNodeCommand + [seedScript.absolutePath, sbgBundleDir.absolutePath, "--out", new File(workDir, "generated-whitelist.mdg").absolutePath] def manifest = android.sourceSets.main.manifest.srcFile @@ -599,8 +1030,12 @@ android.applicationVariants.all { variant -> def process = new ProcessBuilder(cmd.collect { it.toString() }) .redirectErrorStream(true).start() process.inputStream.eachLine { logger.lifecycle(" [metadata-seed] $it") } - if (process.waitFor() != 0) { - throw new GradleException("NativeScript: metadata seed generation failed.") + def seedExit = process.waitFor() + if (seedExit != 0) { + throw new GradleException( + "NativeScript: metadata seed generation failed (exit ${seedExit}) " + + "using node '${nsNodeCommand.join(' ')}'." + + ((seedExit == 126 || seedExit == 127) ? "\n" + nsNodeHelp : "")) } } } @@ -642,6 +1077,39 @@ android.applicationVariants.all { variant -> } } + // The typings land next to the app (types/android, checked in and named by + // tsconfig, the way types/ios is on the Apple side), which puts them inside + // the tree React Native's bundler reads. Gradle sees one task writing into + // another's input directory and fails the build rather than risk ordering + // them wrongly -- but only when both are scheduled, which is why a + // single-variant build never hit it and `assembleRelease assembleDebug` + // does: the *debug* typings task and the *release* bundle task have no + // relationship at all. + // + // Ordering rather than a dependency: the bundler does not consume the + // typings, it merely reads a directory that contains them. Making it depend + // on them would serialise a JS bundle behind a full classpath scan for no + // reason. + // + // Only across variants. Within one variant the bundle task runs *before* + // javac (its output feeds the resource pipeline) while typings run after it, + // so ordering that pair asks for a cycle: + // + // createBundleRelease -> typingsRelease -> compileReleaseJavaWithJavac + // -> ... -> mapReleaseSourceSetPaths -> createBundleRelease + // + // and Gradle rejects it. The conflict this fixes is a cross-variant one + // anyway: the release bundle and the *debug* typings task have no + // relationship at all, which is why they only collide when both variants + // are built in a single invocation. + def ownBundleTask = "createBundle${variantName}JsAndAssets" + tasks.matching { + it.name.startsWith("createBundle") && it.name.endsWith("JsAndAssets") && + it.name != ownBundleTask + }.configureEach { + it.mustRunAfter(typingsTask) + } + // Lint reads the asset source sets, which now include a generated directory. // Gradle fails the build on an undeclared read of another task's output // rather than risking a stale result, so the ordering is stated. Matched by From f1521f146a11c0827cf5305fed9ea202cf1c4c62 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 17 Aug 2026 19:29:48 +0500 Subject: [PATCH 37/98] chore: cleanup .github/workflows in packages/android moves bytecode-compilers.yml to .github/workflows as it can be used by android & apple platforms to ship bytecode bundles in production instead of js bundles to improve TTI --- .../workflows/bytecode-compilers.yml | 120 ++-------- .../.github/workflows/build_hermes.yml | 34 --- .../android/.github/workflows/build_jsc.yml | 34 --- .../.github/workflows/build_quickjs.yml | 34 --- .../android/.github/workflows/build_v8.yml | 34 --- .../android/.github/workflows/release.yml | 219 ------------------ platforms/android/docs/bytecode.md | 87 ++++--- .../android/tools/bytecode-compiler/README.md | 17 +- .../bin/quickjs/darwin-arm64/nsbc-quickjs | Bin 1044592 -> 0 bytes .../bin/quickjs/darwin-x64/nsbc-quickjs | Bin 1125232 -> 0 bytes .../bin/quickjs/linux-arm64/nsbc-quickjs | Bin 4849728 -> 0 bytes .../bin/quickjs/linux-x64/nsbc-quickjs | Bin 4775760 -> 0 bytes .../bin/quickjs/win32-x64/nsbc-quickjs.exe | 3 - .../tools/bytecode-compiler/lib/index.js | 1 - .../tools/bytecode-compiler/lib/quickjs-ng.js | 14 +- .../tools/bytecode-compiler/lib/quickjs.js | 38 --- 16 files changed, 101 insertions(+), 534 deletions(-) rename {platforms/android/.github => .github}/workflows/bytecode-compilers.yml (71%) delete mode 100644 platforms/android/.github/workflows/build_hermes.yml delete mode 100644 platforms/android/.github/workflows/build_jsc.yml delete mode 100644 platforms/android/.github/workflows/build_quickjs.yml delete mode 100644 platforms/android/.github/workflows/build_v8.yml delete mode 100644 platforms/android/.github/workflows/release.yml delete mode 100644 platforms/android/tools/bytecode-compiler/bin/quickjs/darwin-arm64/nsbc-quickjs delete mode 100644 platforms/android/tools/bytecode-compiler/bin/quickjs/darwin-x64/nsbc-quickjs delete mode 100644 platforms/android/tools/bytecode-compiler/bin/quickjs/linux-arm64/nsbc-quickjs delete mode 100644 platforms/android/tools/bytecode-compiler/bin/quickjs/linux-x64/nsbc-quickjs delete mode 100644 platforms/android/tools/bytecode-compiler/bin/quickjs/win32-x64/nsbc-quickjs.exe delete mode 100644 platforms/android/tools/bytecode-compiler/lib/quickjs.js diff --git a/platforms/android/.github/workflows/bytecode-compilers.yml b/.github/workflows/bytecode-compilers.yml similarity index 71% rename from platforms/android/.github/workflows/bytecode-compilers.yml rename to .github/workflows/bytecode-compilers.yml index 73ef54354..9042738c0 100644 --- a/platforms/android/.github/workflows/bytecode-compilers.yml +++ b/.github/workflows/bytecode-compilers.yml @@ -6,41 +6,38 @@ name: Build bytecode compilers # # Output: one artifact per (engine, host), named `bytecode-compiler--`, # each containing `//` so the downloads merge straight into -# tools/bytecode-compiler/bin/. +# platforms/android/tools/bytecode-compiler/bin/. # # The final `bundle` job merges them all into a single `bytecode-compiler-bin` -# artifact laid out exactly like tools/bytecode-compiler/bin/ — download it, unzip, -# and drop its contents into tools/bytecode-compiler/bin/ as-is. +# artifact laid out exactly like platforms/android/tools/bytecode-compiler/bin/ — download it, unzip, +# and drop its contents into platforms/android/tools/bytecode-compiler/bin/ as-is. # # NOTE ON COMPATIBILITY: the produced bytecode must be loadable by the engine -# library the runtime ships. Hermes/PrimJS runtimes link prebuilt .so's and -# QuickJS/QuickJS-NG compile from vendored source, so the refs below must be kept -# in step with what the runtime actually bundles. Pin these to exact commits once +# library the runtime ships. Hermes/PrimJS runtimes link prebuilt binaries and +# QuickJS-NG compiles from the vendored source, so the refs below must be kept in +# step with what the runtime actually bundles. Pin these to exact commits once # validated instead of moving branches. on: workflow_dispatch: inputs: hermes_ref: - description: "facebook/hermes ref" + # MUST match UPSTREAM_COMMIT in build-hermes, which is what produced the + # prebuilt both platforms link. See scripts/download_hermes.sh. + description: "facebook/hermes ref (match the prebuilt release)" default: "10a40b5f1de81d007cba6afe567c4ba7a0b45f5d" - quickjs_ref: - # MUST match the quickjs submodule pin (BC_VERSION must agree with the - # runtime). See .gitmodules / scripts/vendor-engines-as-submodules.sh. - description: "bellard/quickjs ref (match the submodule pin)" - default: "04be246001599f5995fa2f2d8c91a0f198d3f34c" quickjs_ng_ref: - # MUST match the quickjs_ng submodule pin (BC_VERSION must agree with the - # runtime, or JS_ReadObject rejects the blob). See .gitmodules / - # scripts/vendor-engines-as-submodules.sh. - description: "quickjs-ng/quickjs ref (match the submodule pin)" - default: "d950d55e950dd7994a96c669c31efa967b8b79f3" + # MUST match the vendored source in vendor/quickjs/source_ng, or + # JS_ReadObject rejects the blob: the compiler writes its own BC_VERSION + # and the runtime accepts only its own. v0.11.0 == BC_VERSION 21, which + # is what the vendored quickjs.c defines. + description: "quickjs-ng/quickjs ref (match vendor/quickjs/source_ng)" + default: "6a9fe9af5ca0bf7c49ae697edef44864272317d1" primjs_ref: description: "lynx-family/primjs ref" default: "9c1fe150179b86f0ae5c6fbe670af7d76eca9df6" env: HERMES_REPO: https://github.com/facebook/hermes - QUICKJS_REPO: https://github.com/bellard/quickjs QUICKJS_NG_REPO: https://github.com/quickjs-ng/quickjs PRIMJS_REPO: https://github.com/lynx-family/primjs @@ -121,81 +118,12 @@ jobs: path: out if-no-files-found: error - # --------------------------------------------------------------------------- - # QuickJS (bellard) — build via its own Makefile (libquickjs.a, which injects - # -D_GNU_SOURCE -DCONFIG_VERSION), then link our blob-emitting shim. - # win32-x64 is CROSS-compiled on Linux via bellard's CONFIG_WIN32 (mingw-w64); - # win32-arm64 is not possible (mingw-w64 targets x86 only). - # --------------------------------------------------------------------------- - quickjs: - name: quickjs (${{ matrix.host }}) - runs-on: ${{ matrix.runner }} - strategy: - fail-fast: false - matrix: - include: - - { host: linux-x64, runner: ubuntu-24.04 } - - { host: linux-arm64, runner: ubuntu-24.04-arm } - - { host: darwin-x64, runner: macos-15-intel } - - { host: darwin-arm64, runner: macos-14 } - - { host: win32-x64, runner: ubuntu-24.04 } # mingw cross-compile - steps: - - uses: actions/checkout@v4 - - name: Install toolchain (Linux) - if: runner.os == 'Linux' - run: | - set -euxo pipefail - sudo apt-get update - sudo apt-get install -y build-essential - # mingw-w64 for the win32-x64 cross build. - if [ "${{ matrix.host }}" = "win32-x64" ]; then sudo apt-get install -y mingw-w64; fi - # macOS: make + clang ship with the Xcode command-line tools. - - - name: Clone QuickJS - shell: bash - run: | - set -euxo pipefail - ref="${{ github.event.inputs.quickjs_ref || 'master' }}" - git init quickjs - git -C quickjs remote add origin "$QUICKJS_REPO" - git -C quickjs fetch --depth 1 origin "$ref" - git -C quickjs -c advice.detachedHead=false checkout FETCH_HEAD - - - name: Build lib + shim - shell: bash - env: - SHIM: ${{ github.workspace }}/tools/bytecode-compiler/native/qjs-compile.c - run: | - set -euxo pipefail - cd quickjs - jobs="$(getconf _NPROCESSORS_ONLN)" - out="../out/quickjs/${{ matrix.host }}"; mkdir -p "$out" - if [ "${{ matrix.host }}" = "win32-x64" ]; then - # CONFIG_WIN32=y selects the x86_64-w64-mingw32- cross toolchain. - make -j"$jobs" CONFIG_WIN32=y libquickjs.a - # bellard's win32 LIBS are "-lm -lpthread" (winpthreads provides the - # pthread_* and clock_gettime symbols quickjs.c uses). - x86_64-w64-mingw32-gcc -O2 -DNSBC_MAGIC='"NSBCQJS"' -I. \ - -o "$out/nsbc-quickjs.exe" "$SHIM" libquickjs.a -lm -lpthread - # Cross-built Windows binary — not runnable on the Linux host. - else - # Use bellard's own Makefile so CONFIG_VERSION / _GNU_SOURCE and the - # correct source set come from upstream. - make -j"$jobs" libquickjs.a - cc -O2 -DNSBC_MAGIC='"NSBCQJS"' -I. -o "$out/nsbc-quickjs" "$SHIM" libquickjs.a -lm - "$out/nsbc-quickjs" || true # usage line (exit 2) proves it links & runs - fi - - - uses: actions/upload-artifact@v4 - with: - name: bytecode-compiler-quickjs-${{ matrix.host }} - # Root the artifact at `out/` so it carries the full - # `quickjs//` path and merges straight into bin/. - path: out - if-no-files-found: error - # --------------------------------------------------------------------------- # QuickJS-NG — CMake build of libqjs, then our shim (same JS_* API). + # + # There is no bellard/quickjs job: the runtime dropped that tree, and its + # QUICKJS engine is now an alias for QUICKJS_NG (see + # platforms/android/test-app/runtime/build.gradle). # --------------------------------------------------------------------------- quickjs-ng: name: quickjs-ng (${{ matrix.host }}) @@ -235,9 +163,11 @@ jobs: - name: Build lib + shim shell: bash env: - SHIM: ${{ github.workspace }}/tools/bytecode-compiler/native/qjs-compile.c + SHIM: ${{ github.workspace }}/platforms/android/tools/bytecode-compiler/native/qjs-compile.c run: | set -euxo pipefail + # Note: the workflow lives at the repository root, so the shim path is + # platforms/android/-prefixed; the tool tree itself is under Android. # Build the shim as a CMake target so it uses the SAME toolchain + CRT # as the engine lib. Linking a separately-compiled (clang) shim against # the MSVC-built qjs.lib fails with __imp_*/CRT-mismatch link errors on @@ -304,7 +234,7 @@ jobs: - name: Add shim as a GN target shell: bash env: - SHIM: ${{ github.workspace }}/tools/bytecode-compiler/native/primjs-compile.c + SHIM: ${{ github.workspace }}/platforms/android/tools/bytecode-compiler/native/primjs-compile.c run: | set -euxo pipefail # Build as C++ (.cc); the LEPUS_* API is extern "C" so linkage is fine. @@ -347,12 +277,12 @@ jobs: # --------------------------------------------------------------------------- # Bundle — merge every per-(engine, host) artifact into a single artifact laid - # out exactly like tools/bytecode-compiler/bin/, ready to download-and-paste. + # out exactly like platforms/android/tools/bytecode-compiler/bin/, ready to download-and-paste. # --------------------------------------------------------------------------- bundle: name: bundle bin/ runs-on: ubuntu-24.04 - needs: [hermes, quickjs, quickjs-ng, primjs] + needs: [hermes, quickjs-ng, primjs] # Run even if some engine/host builds failed, so a partial bin/ is still # published rather than nothing. if: always() diff --git a/platforms/android/.github/workflows/build_hermes.yml b/platforms/android/.github/workflows/build_hermes.yml deleted file mode 100644 index 75605e37c..000000000 --- a/platforms/android/.github/workflows/build_hermes.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Build with Hermes - -on: workflow_dispatch - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Install dependencies - run: | - cd test-app/build-tools/jsparser - npm install - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build with HERMES - run: ./gradlew -Pengine=HERMES - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: release - path: | - ./dist_hermes - - diff --git a/platforms/android/.github/workflows/build_jsc.yml b/platforms/android/.github/workflows/build_jsc.yml deleted file mode 100644 index 6b5626228..000000000 --- a/platforms/android/.github/workflows/build_jsc.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Build with JSC - -on: workflow_dispatch - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Install dependencies - run: | - cd test-app/build-tools/jsparser - npm install - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build with JSC - run: ./gradlew -Pengine=JSC - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: release - path: | - ./dist_jsc - - diff --git a/platforms/android/.github/workflows/build_quickjs.yml b/platforms/android/.github/workflows/build_quickjs.yml deleted file mode 100644 index 231820e3b..000000000 --- a/platforms/android/.github/workflows/build_quickjs.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Build with QuickJS - -on: workflow_dispatch - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Install dependencies - run: | - cd test-app/build-tools/jsparser - npm install - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build with QUICKJS - run: ./gradlew -Pengine=QUICKJS - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: release - path: | - ./dist_quickjs - - diff --git a/platforms/android/.github/workflows/build_v8.yml b/platforms/android/.github/workflows/build_v8.yml deleted file mode 100644 index d864ba712..000000000 --- a/platforms/android/.github/workflows/build_v8.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Build with V8 - -on: workflow_dispatch - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Install dependencies - run: | - cd test-app/build-tools/jsparser - npm install - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build with V8 - run: ./gradlew -Pengine=V8 - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: release - path: | - ./dist_v8 - - diff --git a/platforms/android/.github/workflows/release.yml b/platforms/android/.github/workflows/release.yml deleted file mode 100644 index fe36daed1..000000000 --- a/platforms/android/.github/workflows/release.yml +++ /dev/null @@ -1,219 +0,0 @@ -on: - workflow_dispatch: - inputs: - publish: - description: 'If true, run publish after build (default: false)' - required: false - default: 'false' - run_tests: - description: 'If true, run gradle runtestsAndVerifyResults before builds (default: false)' - required: false - default: 'false' - custom_version: - description: 'Optional custom NPM version (overrides computed version).' - required: false - default: '' - enable_HERMES: - description: 'Enable HERMES in the matrix' - required: false - default: 'true' - enable_V8: - description: 'Enable V8 in the matrix' - required: false - default: 'true' - enable_QUICKS: - description: 'Enable QUICKS in the matrix' - required: false - default: 'true' - enable_JSC: - description: 'Enable JSC in the matrix' - required: false - default: 'true' - -jobs: - set-matrix: - name: Build matrix from inputs - runs-on: ubuntu-latest - outputs: - matrix: ${{ steps.emit.outputs.matrix }} - steps: - - name: Emit matrix JSON - id: emit - run: | - set -e - # Build the engine list based on workflow dispatch inputs. - engines=() - if [ "${{ github.event.inputs.enable_HERMES }}" != "false" ]; then engines+=("HERMES"); fi - if [ "${{ github.event.inputs.enable_V8 }}" != "false" ]; then engines+=("V8"); fi - if [ "${{ github.event.inputs.enable_QUICKS }}" != "false" ]; then engines+=("QUICKS"); fi - if [ "${{ github.event.inputs.enable_JSC }}" != "false" ]; then engines+=("JSC"); fi - - # If user disabled everything, fall back to a safe default (all engines). - if [ ${#engines[@]} -eq 0 ]; then - echo "All engines were disabled; defaulting to all engines." - engines=(HERMES V8 QUICKS JSC) - fi - - # Build a JSON array string like ["HERMES","V8"] - json="[" - for e in "${engines[@]}"; do - json="${json}\"${e}\"," - done - json="${json%,}" # remove trailing comma - json="${json}]" - - echo "Computed matrix JSON: $json" - echo "matrix=$json" >> $GITHUB_OUTPUT - - engine: - name: Test · Build · Publish (engine=${{ matrix.engine }}) - needs: set-matrix - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - # fromJson converts the JSON string emitted by set-matrix into the matrix array - engine: ${{ fromJson(needs.set-matrix.outputs.matrix) }} - env: - JS_PARSER_DIR: test-app/build-tools/jsparser - ENGINE: ${{ matrix.engine }} - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - persist-credentials: true - - - name: Setup Node.js 18 - uses: actions/setup-node@v4 - with: - node-version: 18 - - - name: set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Restore npm cache for jsparser - uses: actions/cache@v4 - with: - path: | - ~/.npm - ${{ github.workspace }}/${{ env.JS_PARSER_DIR }}/node_modules - key: ${{ runner.os }}-node-${{ hashFiles('test-app/build-tools/jsparser/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Install dependencies (jsparser) - working-directory: ${{ env.JS_PARSER_DIR }} - run: npm ci - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Run runSbgTests (no emulator) for ${{ matrix.engine }} - if: ${{ github.event.inputs.run_tests == 'true' }} - run: | - echo "Running runSbgTests with ENGINE=${ENGINE}" - ./gradlew -Pengine="${ENGINE}" runSbgTests - env: - ENGINE: ${{ matrix.engine }} - - - name: Run runtestsAndVerifyResults inside emulator for ${{ matrix.engine }} - if: ${{ github.event.inputs.run_tests == 'true' }} - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: 35 - arch: x86_64 - target: google_apis - emulator-options: -no-window - script: | - echo "Running runtestsAndVerifyResults with ENGINE=${ENGINE}" - ./gradlew -Pengine="${ENGINE}" runtestsAndVerifyResults - env: - ENGINE: ${{ matrix.engine }} - - - name: Build with engine ${{ matrix.engine }} - run: | - echo "Building with ENGINE=${ENGINE}" - ./gradlew -Pengine="${ENGINE}" - env: - ENGINE: ${{ matrix.engine }} - - - name: Publish tarball (or add dist-tag if version already exists) - id: npm_publish - run: | - set -e - eng_lc="${ENG_LC}" - TARBALL="${TARBALL:-dist-${eng_lc}-${NPM_VERSION}.tgz}" - TAG="${eng_lc}-${NPM_VERSION}" - echo "Publishing tarball $TARBALL with npm tag $TAG (package version: $NPM_VERSION)..." - echo "//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}" > .npmrc - - if npm publish "$TARBALL" --tag "$TAG" --provenance --access public; then - echo "npm publish succeeded for $TARBALL" - echo "PUBLISHED=true" >> $GITHUB_ENV - else - echo "npm publish failed; attempting to add dist-tag pointing to existing version" - npm dist-tag add @nativescript/android@"${NPM_VERSION}" "${TAG}" - echo "DIST_TAG_ADDED=true" >> $GITHUB_ENV - fi - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} - NPM_VERSION: ${{ env.NPM_VERSION }} - ENG_LC: ${{ env.ENG_LC }} - TARBALL: ${{ env.TARBALL }} - - - name: Create and push git tag for engine/version - if: always() - id: tag_release - run: | - set -e - eng_lc="${ENG_LC}" - TAG_NAME="${eng_lc}-v${NPM_VERSION}" - echo "Creating tag $TAG_NAME" - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - if git rev-parse --verify "$TAG_NAME" >/dev/null 2>&1; then - git tag -d "$TAG_NAME" || true - fi - git tag -a "$TAG_NAME" -m "Release ${TAG_NAME}" - git push origin "refs/tags/${TAG_NAME}" || true - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - - - name: Update CHANGELOG - id: changelog - uses: requarks/changelog-action@v1 - with: - useGitmojis: false - excludeTypes: build,docs,other,style,chore,perf,doc - token: ${{ secrets.GITHUB_TOKEN }} - tag: v${{ env.TAG_NAME }} - writeToFile: false - - - name: Create GitHub release for engine - uses: actions/create-release@v1 - if: always() - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.ENGINE }} ${{ env.NPM_VERSION }} - body: ${{ steps.changelog.outputs.changes }} - draft: false - prerelease: ${{ contains(env.NPM_VERSION, '-dev') }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ENGINE: ${{ matrix.engine }} - NPM_VERSION: ${{ env.NPM_VERSION }} - - - name: Final status print - run: | - echo "Engine: ${ENGINE}" - echo "NPM_VERSION: ${NPM_VERSION}" - echo "Published: ${PUBLISHED:-false}" - echo "Dist-tag added: ${DIST_TAG_ADDED:-false}" - echo "Tag created: ${TAG_NAME:-none}" - env: - PUBLISHED: ${{ env.PUBLISHED }} - DIST_TAG_ADDED: ${{ env.DIST_TAG_ADDED }} - TAG_NAME: ${{ env.TAG_NAME }} \ No newline at end of file diff --git a/platforms/android/docs/bytecode.md b/platforms/android/docs/bytecode.md index 6f3db0eb8..cf11ecb93 100644 --- a/platforms/android/docs/bytecode.md +++ b/platforms/android/docs/bytecode.md @@ -12,16 +12,22 @@ that engine's compiler binary, which is encapsulated in a small adapter under | Engine | Bytecode | Compiler CLI | Status | | ------- | -------- | ------------ | ------ | | Hermes | ✅ HBC | `hermesc` (upstream) | wired end-to-end | -| QuickJS | ✅ | `nsbc-quickjs` shim (`native/qjs-compile.c`) | CLI built by CI; runtime read-support pending | -| QuickJS-NG | ✅ | `nsbc-quickjs-ng` shim | CLI built by CI; runtime read-support pending | -| PrimJS | ✅ | `nsbc-primjs` shim (`native/primjs-compile.c`) | CLI built by CI; runtime read-support pending | +| QuickJS-NG | ✅ | `nsbc-quickjs-ng` shim (`native/qjs-compile.c`) | wired end-to-end; also serves the `QUICKJS` alias | +| PrimJS | ✅ | `nsbc-primjs` shim (`native/primjs-compile.c`) | wired end-to-end | | V8 | ⚠️ | runtime code-cache only (no AOT format) | see [v8-code-cache.md](./v8-code-cache.md) | -| JSC | ❌ never | — | n/a | +| JSC | ⚠️ | runtime code-cache only (no AOT format) | `js_run_bytecode_file` falls back to source | -Only Hermes is enabled today. The compiler CLIs for the QuickJS family are built -by the [bytecode-compilers workflow](../.github/workflows/bytecode-compilers.yml), -but those engines stay gated off (`ready: false`) until their runtime execution -path (`js_run_bytecode_file`) exists — see "Adding an engine" below. +All three AOT engines are enabled (`ready: true`) and have a runtime read side. +Their compiler CLIs are built by the +[bytecode-compilers workflow](../../../.github/workflows/bytecode-compilers.yml); +an engine with no binary for the build host simply ships source. V8 and JSC have +no compile-time format at all — both cache code at runtime instead +(`js_cache_script` / `js_run_cached_script`), so their `js_run_bytecode_file` +returns `napi_cannot_run_js` by design, not because it is unimplemented. + +There is no bellard QuickJS lane: that tree was dropped, and the runtime's +`QUICKJS` is an alias for `QUICKJS_NG`, which the `quickjs-ng` adapter answers to +under both names. ### Bytecode container (non-Hermes engines) @@ -33,9 +39,10 @@ a loadable blob, so the QuickJS-family shims (`native/`) wrap the engine's [8-byte magic][4-byte format version, little-endian][JS_WriteObject payload] ``` -Magic is per engine (`NSBCQJS\0`, `NSBCNGS\0`, `NSBCPJS\0`) and must match the -adapter's `magic` and the runtime detection. The runtime read side strips the -12-byte header and hands the payload to `JS_ReadObject` + `JS_EvalFunction`. +Magic is per engine (`NSBCNGS\0`, `NSBCPJS\0`) and must match the adapter's +`magic` and the runtime detection. The runtime read side strips the 12-byte +header and hands the payload to `JS_ReadObject` + `JS_EvalFunction` (PrimJS: the +`LEPUS_*` equivalents). ## How it works @@ -52,16 +59,21 @@ adapter's `magic` and the runtime detection. The runtime read side strips the sync. The C++ loader calls a single engine hook for both the `require` path -([ModuleInternal.cpp](../test-app/runtime/src/main/cpp/runtime/module/ModuleInternal.cpp)) +([ModuleInternal.cpp](../../../NativeScript/runtime/android/napi/modules/module/ModuleInternal.cpp)) and the raw-script path -([Runtime::RunScript](../test-app/runtime/src/main/cpp/runtime/Runtime.cpp)): +([Runtime::RunScript](../../../NativeScript/runtime/android/napi/Runtime.cpp)): ```c // napi/common/jsr_common.h -napi_status js_run_bytecode_file(napi_env env, const char *file, - const char *source_url, napi_value *result); +napi_status js_run_bytecode_file(napi_env env, const char *file, napi_value *result); ``` +The runtime has two trees — `runtime/android/napi` (the default) and +`runtime/android/jsi` — and each carries its own loader. The napi side goes +through the hook above; the jsi side detects the container in +[EngineHost::ExecuteBytecodeFile](../../../NativeScript/runtime/android/jsi/EngineHost.cpp). +A change to one is not a change to the other. + ### Module wrapping The runtime wraps every `require`d module in a function before executing it: @@ -81,12 +93,14 @@ Files the runtime runs **unwrapped** as raw scripts (via `Runtime::RunScript`, e.g. `internal/ts_helpers.js`) are compiled as-is. The build's `--raw` list keeps these in sync (default: `internal/ts_helpers.js`). -The prologue/epilogue live in two places that must stay byte-for-byte identical: +The prologue/epilogue live in several places that must stay byte-for-byte +identical (`MODULE_PROLOGUE` / `MODULE_EPILOGUE` in each): -- `runtime/src/main/cpp/runtime/module/ModuleInternal.cpp` - (`MODULE_PROLOGUE` / `MODULE_EPILOGUE`) +- `NativeScript/runtime/android/napi/modules/module/ModuleInternal.cpp` +- `NativeScript/runtime/android/jsi/modules/module/ModuleInternal.cpp` - `tools/bytecode-compiler/compile-bytecode.js` - (`MODULE_PROLOGUE` / `MODULE_EPILOGUE`) + +(The Apple runtime carries its own copy under `runtime/apple/`.) ## The compiler tooling @@ -98,9 +112,10 @@ template doesn't carry `hermesc`. Compiler binaries are host-specific, laid out as `bin///` where `` is `-` -(`darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `win32-x64`). Host -slots without a real binary contain a placeholder; the driver detects the current -host automatically and, if there's no compiler for it, leaves the app as source. +(`darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `win32-x64`). A host +with no binary is simply absent — PrimJS, for instance, ships only the three Unix +hosts its GN toolchain can build. The driver detects the current host +automatically and, if there is no compiler for it, leaves the app as source. ## Enabling / disabling @@ -134,10 +149,22 @@ column offset on line 1). ## Version compatibility -A compiler and the runtime's engine library must share the same bytecode version -(for Hermes, `BYTECODE_VERSION`, currently 99). They should be built from the same -engine checkout. On a mismatch the runtime fails loudly at load rather than -silently misbehaving. +A compiler and the runtime's engine library must share the same bytecode version, +so both must come from the same engine checkout. The workflow inputs are pinned to +exact commits for this reason — see the header of +[bytecode-compilers.yml](../../../.github/workflows/bytecode-compilers.yml). + +- **Hermes** — `BYTECODE_VERSION`, currently 99. The pinned `hermes_ref` must match + `UPSTREAM_COMMIT` in build-hermes, which produced the prebuilt both platforms link. +- **QuickJS-NG** — `BC_VERSION`, currently 21 (`vendor/quickjs/source_ng/quickjs.c`, + upstream v0.11.0). The compiler stamps its own value and `JS_ReadObject` accepts + only its own, so a compiler built from a different ref produces blobs that load + nowhere. + +A mismatch is caught at load: the magic/version check fails and the file is +rejected rather than misinterpreted. Note the failure mode is a **fallback**, not a +crash — the runtime falls back to source, so the app still works and the only +visible symptom is that the TTI win quietly disappears. ## Adding an engine @@ -145,9 +172,11 @@ silently misbehaving. (documented in `lib/index.js`) and register it in `lib/index.js`. 2. Drop the host compiler binaries under `tools/bytecode-compiler/bin///`. 3. Implement runtime execution in `napi//jsr.cpp` — `js_run_bytecode_file` - currently returns `napi_cannot_run_js` (source fallback) for every engine - except Hermes. It must detect that engine's bytecode magic and run it, setting - `*result` to the completion value (the module wrapper function for modules). + must detect that engine's bytecode magic and run it, setting `*result` to the + completion value (the module wrapper function for modules). Returning + `napi_cannot_run_js` means "fall back to source", which is what V8 and JSC do. + If the engine is also wired into the jsi tree, add the matching detection to + `runtime/android/jsi/EngineHost.cpp`. 4. Flip the adapter's `ready` flag to `true` **only** once both the compiler and the runtime support exist — otherwise the build would ship bytecode the runtime can't execute. diff --git a/platforms/android/tools/bytecode-compiler/README.md b/platforms/android/tools/bytecode-compiler/README.md index db86ff65f..8c059fdf9 100644 --- a/platforms/android/tools/bytecode-compiler/README.md +++ b/platforms/android/tools/bytecode-compiler/README.md @@ -13,8 +13,7 @@ bytecode-compiler/ lib/ index.js engine registry + host resolution hermes.js Hermes adapter (wired end-to-end today) - quickjs.js wired; gated off (ready:false) until runtime read-support lands - quickjs-ng.js + quickjs-ng.js serves both QUICKJS_NG and QUICKJS (the bellard tree was dropped) primjs.js native/ qjs-compile.c blob-emitting shim for QuickJS + QuickJS-NG (JS_* API) @@ -25,9 +24,9 @@ bytecode-compiler/ ## Building the compiler binaries -The host binaries are built by [`.github/workflows/bytecode-compilers.yml`](../../.github/workflows/bytecode-compilers.yml) +The host binaries are built by [`.github/workflows/bytecode-compilers.yml`](../../../../.github/workflows/bytecode-compilers.yml) (manual `workflow_dispatch`). It clones each engine's **upstream** repo -(facebook/hermes, bellard/quickjs, quickjs-ng/quickjs, lynx-family/primjs), builds +(facebook/hermes, quickjs-ng/quickjs, lynx-family/primjs), builds the CLI for every host, and uploads one artifact per `(engine, host)` named `bytecode-compiler--`. Download and drop them into `bin///`. @@ -40,12 +39,14 @@ that links the engine and emits a **NativeScript bytecode container**: [8-byte magic][4-byte format version, little-endian][engine JS_WriteObject payload] ``` -The magic (`NSBCQJS\0`, `NSBCNGS\0`, `NSBCPJS\0`) must match the adapter's `magic` -and the runtime's detection. Hermes uses its native HBC magic instead (no container). +The magic (`NSBCNGS\0`, `NSBCPJS\0`) must match the adapter's `magic` and the +runtime's detection. Hermes uses its native HBC magic instead (no container). > Compatibility: the CLI must be built from the engine ref that matches what the -> runtime bundles (prebuilt `.so` for Hermes/PrimJS, vendored source for -> QuickJS/QuickJS-NG). Pin the workflow inputs to exact commits once validated. +> runtime bundles (prebuilt binaries for Hermes/PrimJS, `vendor/quickjs/source_ng` +> for QuickJS-NG). QuickJS-NG is the strict case: the compiler stamps its own +> `BC_VERSION` and `JS_ReadObject` accepts only the runtime's, so a mismatched ref +> produces blobs that load nowhere. Pin the workflow inputs to exact commits. Only the compiler binary and its command line are engine-specific; that lives in each adapter. Everything else (module wrapping, the raw-file list, idempotency, diff --git a/platforms/android/tools/bytecode-compiler/bin/quickjs/darwin-arm64/nsbc-quickjs b/platforms/android/tools/bytecode-compiler/bin/quickjs/darwin-arm64/nsbc-quickjs deleted file mode 100644 index c51f953f4c117f9dbe1dd82621aa53018b5d031e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1044592 zcmeFa3w%`7wfMi!Ode+@LCAw71SAPBXM!)}87pQI9t}ZLjj2^@O#-MB;-eAN1jI}T z*kI7hV3bx`30iDsD!o3SCGEYJ0BYl-Ef4E$dwVYlz5>w}6eUB!`F+$TTj=MN`8`aE7KP4UmdmB@8Nv{I{8Ccl&#!BxOjT6#_1 zH|N|mr}$g)wC_Koa^FX1-AOxtqF`xh$($QX`o1>mdw?SHU+5lCRQQtDrKL-6tzLSj zVE^{MpKcE3f$?!hA-R`v_5O=ep5EX5C@o#G^xg$adLQ*~@59_U135jRLCSq(dwQt7 zF!ZIR3zsatr{b>LLoN1i@7+AJJ>PfD0&*YuFS2cUPJ4IXwdBlz`?t65CuVz>zGb!| z_fe4z_WNC0dhcELSKPIzwBoMY?l#)*J0ERT@y2*(oM%>)`~EORHYxMkWwbLpuOzQ@ z*0+kTGiR6iGv_r_Iy}D~^WMrIxuor3T&1PA-+gA3azAi;?$A6a+LQX>e=+>X4&U(i zY`pbt&s}H2=eWhJB=?c+MKopnlyUx$%Y-ZP?GSUEuJE%V=8w>Qc${IdOG_7(FD(z3 z9lSm1%ltRwOW`ut=T-BH=Fgcu&&0k`t`J;pq1oeJ{(b*>^IqTy!z9nADCLoPkb0RA z(B#m4=IkNr`!EHmmB!UlIz;{MeAe>Jq3W9TN(uE|!zKS#k1{U{4gY{LbIr#C{$G8? zQ1zVw-U!)ca>;tS@}KlOgG=7Ym@U|FR$G;WrJH0%{ce-BlI%3pOeTXZdYpy_7stRPptEx_mDw*=8%U2hzj%F>j zdpoSj{@Y)(G~tfj_Ni6*HRai#uRO(7Jaa{&R>If2VbTe+IvU6-axI;=_l)63@q{~X3K z+t*V%%g4C9ZPwDa1%_*=-~5l@uTB7?+zXr*+WRKYJ5C0tcEl*}_5Ajn3~u|3GFiMk zWKH$IL)jTT?+MkL!0!xeYPS}vN)9fbJ|h^bnpCXX_T6~Z)D~mnpwpV-H|r+*qoO>; z2bZfR>9@zK(RYgf0%>EUs@fGJa1ZxS9Iu)_;r(aEdlR-pjOQK7vXxc*WV%^D53NL;D+)+9qvxGKTt*s_EbaHEEVzmAH48?$D!Em3w!_ zjyG*)|DE)8h`y#|C}S>u77V5eoTu9@P3!p`?$-*wJ@l(?(7iHebrw(Y82+B3oRmMt z-yc#w7^ecAvlO&3JcNfd|2WF6@~9@kZN>#^(pXKEbcJB)0+#1g7?xD(r1=woB_&#I zGw9@b8*L@|e@FW+oL%Y(Jl$SpLDdOEq-i7fl?f15k zY4=VJm9LK|e;?(OXln-V?&3LnF3HEg^>3_Y&3Br)=mc+$QOavOwqm^_OL;Ri{a6>c z$k3vWW&cEZ3s28EP?)0mX3msVHoDy;_oN*6G(POf##Ry7$j z)jiGJ3tYNqs5e*X-C4AGivDcF?2XxsIqS3vI2pgwp?rD3bBuS6ad|!)@Hx28eL(X$ z#&azgw^5~dfyzc;7gkS6E63o zrPYTS+XncKz}mq&ZhyLT#-F0q^J(3hcf@jcb=PR+)tPJEnClVUzBpN5$p$}I77T6> zUY!}Iwza=lI>X0h8=)rqUd)*BTEy>m)@KWA(=k@<%g|E0Et57p8D0~q&{+FQ6Aoj( z<5kIPz+hiqQEmTS_QvbL?R;?i#>$N90&rUZZVL_E+ACd@72LY#nz-$R54tCu!By>p zn$JDq46bS)R6h1IlVz-Bl$Cy7XRL+HWns-Z^cUT?zh>@-!~fYoPHtE^)LU!OyJdbG zKFl-zY8j?Y7T@+q%HDu2fA|hNoE9RnG8CqfvzfD5%w0Zn znCClr`ztM3%>SqG7s1y+?}e7aeG4u9mGWy6Z3Zn(4$)FYw(?yE?d;>-m*J=3qzQW% z?sn>g+wb^Cu%!R{zkES|KjPi#E*kOwQH*z>djEL?o3%jT7H07gl&RLJrg=o>R5-h;mL4WwtV-8e@F7G zFN>@{!z&`|NqMEa0=uXy>!#VLo7|_o)Mp>L=_KQf zteZqV_x^b`8KV( zXt7j_Gk97YJnc>9U@dd7wx+WBs?`^6tYh6h!nzv*PkWek*TA}aIK1v;Oat&V2lExl z)3Oud8t22)@}R>)cv|*_%2yudX^uRf9iCPY=4lRB#J%#33FHMbvrL}WA0MB>%fj>X zatI&aW`5r4oumGENb;jk7)P<{uE`Bgx-H7k7tWr;6n{ks z_V8ND`fscy-F619uezT4$_qt z{6#lJm(sR*iiMvUyh&Hv+zXPtU9mz3Nq%{k3Y^C8)t=&Heha;bysp?CTT@}t8?*D2 zH&eU)DcAXFMcSz5qRdCsRoS9DXu8+M^UTn57ti%NbhWzJV|kwkOWZ4Cz3wrieeV3B zUiT3#;Qkxe(?h+U7}r(;^0vB>T^&C#e>bS+V)ylyfO}xM{P9*p|J*OXPcNSj9t*+eJn&ioe!uBEb@yB!_%`gZ%i){Lxqi%*!}S(C ztm%-&uq7vfFVVw?Kj3<7^E9y`lKe%`L&qu8F3a6ut#bchQ~D3B4e9A^89Ta`xz;0_ z0~xw%O}$jgry6oXX!vihSek+%8aC-V&A%>DiH$dDw15 zZ&QqVVWG^?#ra~N?sb-@d2KJKKsLV%ca8AcUQq%2z37PYE^DOd59Dy*Bss@mTDz-S$(pk4Cq;SH^kE z?#l~gpp!OZpV+Q))#!z0bXvzXHRGJu^KP&&<`VYnh); zY^+=S;NnzpdoA@I;JFRCkd2&}hn&cGK>6P1+2OIRcb>XigB~o<#o7LbV7;~vn`dv> z=g?9=q9+|5^^Fc!PQ~9JI8acTAMjgkZ;vsXMY!)dcOW@;I4w<n2g%_4tbKfomt{ZjA55?}scVNK2D9xbng;}cUG2YkNUB1$BYEnIRx}(jo z(-R!f_{|aT#`b%+kav-NN?(`otUl4@>;K%zbL;(WHT|ED<#{yE2dYE(U~&xawj8kR zi>wzpHqj3c!N;H3Q?jEpO;s&Q%U?#IUWr*=_iubhHHp3)#*y^(Wo`Ma-|m^mJo)Nx z>@n65{+>eY;8JYM&LnADXPsO8JE58WexH-K=fiLEe22&W_72grOLbL+4qB3_7K|PP z9CGgfJ_q+%a-XTH%8mE8KSk)Ffln)QIr&Z1l*@SVd6eW*#zmd1VQQ+P9&v@e^&IN< zr-nw<8y~9I#(I=`qIZ;^r>5%EBXBWUQC{Xr`quefXU{X{{Ta$d&O2-0fYr_OEb1o7 zeF)a9etqhpKITG!S*c{p}c`j{0f4m?H~ z$4r%=XFag~Qr7XX82o*f+_w)~m3NA!zp=@pyulb%^#<*Bu{JC#9ynm?!ZH5(mn}_Q z54s*(Y}McJvEE8+)Ujv4U$@oauhd31#((s{fjhY#wZu36K^xMz7rSzb35ryn>_=5(FZn4|gFy>3l!T&pE>Y2M7bJu^SD#`!(km0LYpE|=ocwyxDI-mO{c zSROiz=+rV#4=3u4ZeWl)uIRce^k{rWy#Gyo+K!W-2UAmla}-xk>AxV~G~^t*{&MVf zWI}M3+V>&+;}dw#ad^+C@E*}?`tr0HaaOJfDyZ8ed!P$q@-3v{;zGrZJiH-$+oWsLAJd}a#O`rF z_`qY%3gP`ayx-PMEVJ;>y;<;np`Vmwe6Zk6?6KM4FwFM{8l#RsOaJJB_2IE@!WTMU z^nL2vo>AT-z?>Pq>x$6ad*jA>S~H-HO2)G@>P*?g*63_IFxoYHTwBzxD?0w-H^wji zXrZUyYHGR`=ki&T@_a%U1;Ex7r&`f%&=ZsW(e!s4&prT;xwG&uGQY!tUG!n$YohOp z?^*n&{tnfoK?lu*gjZRU=4n6>FbV7TB(MBnA zHMlP-23Z>I4?x=|d+jgrNh!b1JlW7+RkY|Lw(c_gO**=W&591JIXA9(G{4%0F4AC8 zH9EQow348si`dXbaUs$M4uiorkeE@jI>? z$nUro-7S{lvg5(+GN#x6 z5!~>x@azbmqv&Dc+ZQ`GmpKx@(_!xI3HAZ){r}>f6MH|b$B7Tq8KKwZ(w+@_Ut#ZO zVh_Dd`LL~f{v!0pviyLLHJhQSV_nuYPwH+a?c&9r$W8w6tyy{mgp?f8{d# zl!vo7=Iz2ST3%W`zaF1xIad~b(L5<@uS72O@y~Q{e-hfyWh_}IgC(iJnX6Kbc@y7N zMaW;+-}fx`_Lupd-S`WIZ-^cH0p;(--n$ojuR1@`TV2TCB1_Q)Kw>|M2UXG$9A2;Ai?QUay4KE&?;fU**{v+hQxt@~YU&H;!cdDia{K>jD;<5&O z%MH6rcNBacoZ1lK+uek3S7aQvSfF8n@+HF`g(jt)f8JrP&!zvy`T`E|L1(eoC$?(E zE%^cAwYyTezkaqcr}Kd^nK>2TE@zLDx3j0`zJ66})6>ek6CZCOu!?+cRG1uL|CT+CfTM`};xzFH1FE#cVmVNpD zLUUr@xmMJ5Uv7@08y~lfA(D1E(~}(6YH5=B7kw^r{)};6zN%Hmh;I&GdVWB!xwoev z7(3k&4EDmA3q2~v*$d<5i5ttI$2*`$V-Ey+bVH9720hx0eHr+4?;gl5Y~(MaEAcB= zBo4eM@{!;U*apNMdjh?1eaYTTv&fbRxHy&JFbKs4$;gPejXY%o%SPcJ3?G8)RQZ6^V zE$p|g`U1S)#=9?@H-VuHJ}LY__BJEi_I*LyPkqI`CoSi}5!Ty;XTec{SGRM~oeOGeq|o$i@&`#TN)}pkCq$ zsb7}twXHLGb_e#NjD0XYQ}#`yd>Z95ta`UXH`FgUvmcmIi<}sn=hKk8mS+S9rW_O8 z2#)j!8E@?Kg=D<&$sA<-&fTVr9}^+tvj&mz;*b7V{7WGjA52$OGN$3t4L1cPrUDrq z!uz#?chO6pgFj2Xa2&`X>NgnoX?^7dx}6=}U@-kKzW!|eQ1shK{jiPum)JiM*(!QX z!|qMJdlL9{nnYHEgW~HbQ)}#1489*3sTYcz8%!_k;N4fz3;#s>h36??PEM(+@S53Xl&D7mmMQzABrfua`3XLQufh^ zvJVelHeSj;5m9#i;AJ(+wuqj{`W%9eB)-U0t`ydX_@aWAl%Z--ec z5>sN!yT!C0^G5H;m9>rjq?N0ELSw|at?$P7AiDnvc+1=Q_<-OocKB_@#S)*E(l{pC zgwG03&BA}#-;TJ7_N1*p(~iLRH`;Pj_m}v<#EuzAS87J*Jy%_+Ev2unlu6wMPetJD z$-!~94VV@@8&US@!OQxj?DY|4iw7_Jl$4ztQ8s_@vX4pGqKLAEgO_cPvR6iwy?pSp zE2QkSh_aUrUiKc!imhLsPFw+ew7-2YW_(WN0P#6ucSh>h;`bg%#vk3z z-eyERl*oD8Ff)dwzfJlf@4igm3dckB@5`k!-foG|b+4f<-yk-|oO9@>1zoo}r0dS4 z{H%XwPmnbzbEthB+%CG_m7!-|et#qUUgnDTPx5S9=-CE-PY(Uw$Zr?)p(UF-U+$aM zsyM;rxcq>2WBFNj<<;m3q6d99StSSSWiMJs*SDeb+tK~wumR%nhYTTp&+3&p68xm= z&iF~wdvrC_oBVDb_BlGz6zuRK{B3`}|GlwxYlwtay`tohO2?=2V4(vt>#+A zRnN7OtL}=jl|#0ct&Hc2-q_!fMZ=LaUkYb)Tj z?RNH9vDGzv{4cRbEio{AKMihZy9{3+wsy;9`GLdu1RRfOJyYv4di?Bb+o&tPDc@!6 z6Tv%M*hkJq2bu_f$8Wb^t==LCR1D!Eh_P7PU zvLesSGE3CfvTXKTcgL{5KhoH@6Pp70QaqMx75gu9ps|h^);Ms-vKJP_*O@s+l?2&K z5Pz-_Cz8b;uaT^prF)7;0b^NAnpyvR zRWg+}rH?*ik$x!W-p$_7YRg$;jUuMlZnQJPXout?C2r~%`{tX+c@K}Z_&yz}T8;ax zao(<q_>_mrm;YSjCLANG1 zj@WGVo^gFUO|V<&iTrhGE(H0?g$D}4VuV^u=_25Um+JIebJzQ#k;D~(kz2u()~ zZ%F^g5{oYgOrHjok2Vb-7-LS9xMJyB{P9oGx5R%-+_(68Wd2QGnHlf=POPW+UCN1{ z8(52fJBt1EALRNZR$6R~F4MNVwkyKM5ZENXTjHf(W9}SQd|4xCf0!x}J7+oZqc;KP zI|24CzQ9&7+cD#QenmTav}b>TYWvv4@uddN8-S^cF~WoP+Osb9%A9ol+{FFULQgZ2 zP24{}$-sRc?*;d(xnw-IFn(h%71>o5qZ{<2a~{BE(5&jESsTxEC*vSqD@)r%ylIkO zV$9dA5Wi}YKQrFiQ)ZXAE{Wmu?4Jeg&4#`&c#v2Wo0=*#YlG(X5q;ZOKpVBRah!Ud zN3A_B;&x2@C-=6qh%&=zrz}=YjePgcC{MAxJCAqlJ@k1u%MJ}dv$4{D^cVME8t(tR zs2&&gdSo9m4(a1l%3$O5=_B0#-+1S-^nEA&OT7t?|*ahGodw~Gzg-`Bf{Jyen92a#E2_!GmjSZrnSJ;|PfFXY#r7K(#?jX2orH5GW4 zy1)7tVtQt2`yykcClUK6wj%Ry;FMV5rVd?A?TQZbjd+8G4VpE1$2w=;1(CdCUH%Od zyx5d`7k*#Pv?TfSps9DkYnXn2u}s#zxyPjN&z|cZ(>n>QOWM_|MtR-utANm_W}D+1 z3!WFcMjL(2rk~DxRg)_;@9Wt^K;}&?x8ES;o?qB}fl+Q8<^G*=DntW`#9Yao3%rZ@ z?F#+YqNuOT=ZlJ}XLa{FB0l+60#<4NrAWhjI1FO;=I{aYE=UI*uA zhV)FAa<`4X-Y4bW50x7mQSMdBdE$GfFIpLG;AA{?y*~`i%{lJ-J;^EiSaHGuv z%E%aX&QRI&rt}%3(f)Ixb%1Uuw9(1=CFZDij33s>`sN%{tkt&(IjSL>6tb?r&pPa@ z7QGc(*_+io%=_LR(_abA6bsD=+)JSsIoEKIw(4kW6LPAa{g#%HylV-`yAR;85 zA4b+`HgyxJ^LMFJNS&fkohQvYo=?xzu`*8!T~m#IW>e>o)G4OU^~8RPtn=l!<|6Yu zKEW?x%Qx25J3~a5(9k6;hAy#<^J8T(!wr3^`Qu>8+2hFQZU1#?e=+UfWwx*X*@UU% zXpk5pgC8;OOr!j}(AG;!;YUYoY6t3LE2)fA#F>ctu35S)yHwle=S7?y)a z7nYf0ly}2<=lW}KY74*NZ%3Wwml?R~Izw|u?VZ_Y)0`uOud<7bembci#TBNxZPjOJ z&h_VW$JgPZCcYxpI%An)^s$Qek0ZA|E5X4-AspCdnf&2xVumMt)0fQ{3OlEHCqkza zwYHCsTw>Z3hvEI$ZYJ-aZNT2k`!(d1;6ix+1Q|mF>}3be9rj-XySZMj@mcHg0#U0a zHXzAAKGg0pVDH##&VxMPW7sNZ_{)z+2!Ba6`O6=IC5uvS@O2U+bck4?ovc}jYiwvU z_of=KA7!qk9V>Clx6#Lom(u?4g45+$A+$h@O;v|=(@mA=dm<0S{^>6dWRE3M9;{&u z!qcC5BY2jr6wfoWtk_B^{s$?09c}m5BSnV{>5R`iH}};U&9!$%XEfHHsWUz=I%9u* zaZJQqlmn~CNI7S6t~~79z(^g=7xmT6&?TQ2T~dEn1?0W>kMs*&0aH$l_KI#fo992mjcG?AwjJl(`*CSt+0RbJIo$ z+v08b7m=sy7B){X*Cckc#E(eXkxSr@zpW zp2&^mRp^0d& z+lNH>a?o|f=47vXQk}p#24AN(^0J08s>WCs&87?&d<$L4xL4l;J}u`?S5@a3>k&Qo zOpbwYegWZU3(?INhTxQ#|M%!ecw4FPwo}3BvR36xaB!A&-^tr`Y-k&_V~2(~YqT6c zuhnX-O`%=U&BK0PY__9skIC}>ig?!(PqQCXKeA^AYbEWOY;O&14hK)$KThze$H(Hl?pjH+@%EvX3FYtGY*3Lc#Kk>t0*7wCBj;r8ADyMmrBD zsetHefp<(>LugRqPowDLR<8FM(?`hhus&86vVj+(mrMMA$UoQ{XZajwPEDSx`^SL0 zKQs2h_`!Lc9g+F##}A%gn5mt`4^o-8ufh+k^xex3Zh{}&q6Gww_FtPiNSHU1D>!)| zUiE=*Fxce0lDUS%yy|GxSA*@Z&~Pto3xMsmkZ$l=Nas%4bW=j+4f?YE1X_F_ygxU6Z{6r_h+jUs;D?IUC1##0D4pyA9v2*x082X4-!X`{`#> zh+7O$J{R9}8U9x@mx<7B=q!OzUSh|S4SUf+d5NP5(tZcAH{vHZY2D0gVz!?~`4N8M zarqaEZ=17{AsO8slF{vF$!N3wXz(&a@0l+9@0T;rH!V!@PD2j7%{fXr7x*vu@_+mr z%{znNIlRwVm~QYl*<%l027eR%0{(XBFBZcmuP2#&EeOBsWNrAUhyHR@?@aY}U10J3 z16&{PRzC1#+B49H#LF+DoWa|;7u~G$dgX1XynluxRd4K}&ZpO*doQ&3h}$>n^{E4X zeCWl(`@%fYL*GIhdx+Jw5kDnyIyT~`ByQkBo`w10e~~NZckn~eZJ+5r+t(4#GqbEY zKl>?vU8wxI=)$j3z5rjWQ`S)VD1+t(@FnfdZwk@cUUS`K;p-9E7+%9wj4wR4viHy3 zo_Lo2d+oV0r?Dob-Inj0y2xkf_L+=l_OHa3YeDyjftL~YyK@3jhlYD+Qs6FN~Oo>RfI`0V)52YR!e+!uyDxUO)s?ThTez4uTToxi}|-!xDzJT}o`U3j5f20cgf&GI1XE%Cn zhd{*oT{Ew>g*^(>cF?wVvB#=!9_f|y)#PysnCGgK{hJwQeH#8B_A4@NJ<|&qtHH}U z&ArG0dD)JT4xmh(QQ8n(t>zMaIjI5#xAaUTasxI1Kn@ED2-1 zhxzN&E<&bTec|!!0+weOPZxVJ&6b|&rfizztpF~OPck0y^Mri-d-MMk9*ddxO6o_B zB`#ttyL#u{j2RF6-OqK-zrpy#Hjx-M)#Wncnzb(CK=3Ps&+^C_Jmms^L3ck7i0ui<`vj5qa)wXJ4;J5i zoN+ z60==L9E+TBbZEmlW0l;kLDzB)&B=To$@CO=Q|CkK-Z|Vg!#UMHaxHZ>Q)l|UimgMH zEM=!t);4K&tLQ3DE!A$%$`4$BW5teNTGf;^#x_EAvA?I1ua9%JrtmENyZ7}J5I1f6 zwCsRAI)8m!4fz+e^7Xk|Dmk-mJXxldoK!Z~$vWa1U6bWZgUPEKh!yL=w{h_IoV5XW z1$#_?V8Nb@9dgb&CA4=LE}zUEuE@kJ#*ZFM9Es@VXXjZGJc~_h$_2}SWhSv#BtDLT zat_E@N|9$0k1<188Z)d~_b1#7-ieuKj*|TqmbM%pcwd74sfY0X2{9MqzqS6x;cMV zF-dv5M!H%Lj#0;+P9{ziI1U4Y^t02Vsvbed*#4kvz2w%YreC4K=8drii@ zn>fbD$+eNv^JKBiv(!5*^`dQ!&|Jb{$|a9bHBxo~w#ohA`h?aq{rG5=DERKWV3w2E ztjgE1Lu9Nv=f`^6(9X1xI!Wcoxi`(4H2=^u0y}={7K@=5=no9Lu7N%9Pskl9a9#); zoAPH@9b%5<*{RxXPhnHOnliV&=OxjO8$iPD(3>9W(~+0YTNL(8SvFf^I4Zt zPR=6AJRkolXMQ~!i|Zz+$&s*S)2G13oDK-vFTg?WDXWq1z<`}|@V&5uqi1<9?f;eb zpAmd9F1eR8^RaG5EKa)7eq<`hSwrT$* z2t5hC81d22Bj#lKcdY8;})$L-Yg%89xvS$n$dz=yGFyPY|>!(wk-8>l_7 zHahu@wOU-`TIg#N{LKf>7Dw9~3%M`VlDfwp4wf9WXvY@tT-xP3RLQTuzifTuO6C0! zJbz@h`^%zhw=Nj6`?;u}>X)dW>UWRlZx(;&@;9HqxAS))e=mOJ!p4`$3-C&`w)It; zW$SN;Sji8dC2ZBSW1Z|rAGFxJo6&U-+E;ws%p6GDuYbH^eIq#tp404a4AF+fm92K2 zqK`{{v7+{|%!*%JL2iMBwOQ%~IS(E$^9pZxmo*n)@4+}%&+ilbzT)SWrpCpKXT)=s zeBz%ktcJG}A7k$>r``$1aUpn%%u^^YOI%PE{lKq^B^JKchMvRtY~V9{3b`Po z)xN8+Z=~(3D=KD)EV!DryEVa8y_NQNj#pJnraiau&d0G4FSzlTnMJ!Sj2Dq5HsYC$SWs|c3*~2&bDo*R zCK)*=$@eI^(F#Jj(d-u~pPSgEj(&3_GDK_=(FIPuWHJ1%;t!Yog>Zj8r_DX6{y87@ zh4^YM=vKbkjE%NHkBc{A^p)<+2 zzDQo(9U51kG11;&Jjee;|Nj(WhQ$nhRvUIfgdM|@EZqe$IO^31#mK7K=NxjXpa z0d%y=PUt(srjE@+SNo+MIsLk|>Ox{|TTC2Z+X9Y1Wgf@_Qmm^TiJQ(-RVT@HwN%Di zJiApVkBpoX)}!?}nRk6lL%O~~OFDdmr#R#MxT@4$YtqX(V|(bq73A(n@*e?bhW~CH zdCI8Q5~HTvPad!PCXnB&I10TvwUT}PlAGxBSIB(#a@YF9%<)KT&vfW(o2f^pqJJj) z?+`t5l6|D;K%z&=dGrd--MWKi2Nqv8yA{55t*+Vau}x)8+j+PLpiV<c`PMr`@;O;6qd zT#Yr^J@es%^8N_9XM&cv?p^T1sf-(aKVXCZ&9kcQf>%9Y^S9973D%?JdWsy6hd62@ zrx*UbbIIw|HcFMGW-0IC*t{2Qd8(&?_Q+P5sIMqJ;LK`I_ruGXqe5+$vr*{d#9?CW z(f>sM4f6^EKIDsjy7YieD}RYK#F=eiu5rC&ds+2thEBL|m3HkbGOlxGy`J7>b!0nM z6vSDO-|JqqG)2<0(CM4dy|fYL`SB)E(1hqyZfHW*ri(s>Hf^;JO8p&2D4SB@+#%&Et`xfz-Ien}ru}ke z?@)B8aGt90KH|51mL~KVY#sajHrDAhY%Y9pQ+~Akz8*)|=7MfS?&oUh*jpvb%CsAn z30-lP!`p?NSdM=o91}i~c@UdxEMt~4Zilg1{=s{E^;7KNK2CF?v&L15%w|mFgCy58 zYg_bz@VPjtQ~i(N6gx6HPPuXlDX+1&hnzNOJ6wK0YkCIz^r3cZq+Jc4x6prNyJG(} zqIWn#_MZd$Z|aHQw*K_8_A~tAA$lo5Pv}oC3VYzI(u+%URQQR5+$wTbqnwzzFQbUNnE6}8&bykmDP_RV_U}_prwu#jT?)`Qq>cT+6h5clhAtd= zhQE;VgXIU2{NdqxF7_HC>s|i^^6!(3_lnw&j@q zBOm?^@tKe_yr+Ws&4!*!p*a`)VGJ~HSI-y2M=M3w=KHM4S=B00?2~8jH1!=%NZ+|A zLf?6{%hU@xh^g6Xy;8{|htF9fk*v9c(TO*Kj7P_!O#E(?>4w){g|4JevW>)kGIXVM z^ck_sB=>1puhG$KM1RV;(Y+%Ot)?tT4vh-=+gi~LZ{*p%->vBpK6tjjP5A%K_}jkI z>u+loTBm>c_QZ3~o4j9gn^uC45PwY&{ZjDRIn>o^=8+rW&qtS+xe>oeYbc*<-k}dsQ?I4} z*Pv_B*U{6jBWF>i{>LZM598C%U{4_peZ7^ljK7{nt}E+^ZsdMRD!EP@*aMgIfgM)Q zOz{c1#;U+g$RR1iIir%iu|kjHTTS&J6TEZwMb1y+TdM4^w#|GPoxn!!t=tNA>HN8}C9-e3QS;S@TbNvWiX?l0(r&4n<PiPQ@~EDwg3pDI=$1rDpNs^Dz8gq7S>!0VMCwX2DHdTBGHd z*d@dLF9WlJRz&X^mY22udQ%yeD$9#O~1O>64-HlRBM+tC0pLxR@gRvw%EC2 z6FS5j!02QCoi{G+$!4z|+an)~q-d>{Dm^p$t zyVlD2(@7#9$SW1Fjpv;0N2)3tnC4}@_M}~{+MlhOKei9+{Ft1+50ArNBDmIvy8`g1 zWACPJN|!h;;lV<;vgh**eTvMu>7R{#8pEe7{sUk$&gz_PKTD2vlQuJ1ce%R7nHx{6 zC@{B&e9kA|H*@1NX9nLAyS{yyN^C$b5Hr@gl>B=A^O<9-2HHb8za7F~$@$$*Zg2eF z>m)b6%;`4dO*=Wi<#}z2YSqE7d$ekmv)_?&AnY4K&Y8Yl+Iu+Ng^rEv!?(94(bGDS z`D{#7t&8zFcWKD=B!BBq(4B(8sgge-vM+rU?a~IY7`T%> zydop@DCTFFtJTRjiWa9ZZ|EGa1IJ=`t;^;LEKc{die2Nxo?))u7=y1~{6Hztt@vGB zN^N%ouNz!d0J{%4Rsq~LeA2o2S>+izGdUo%>k0#9>*r}UzYV=@aiXhrp4d_RCeLPI zJn%TMvqcwj(y#QvSj@8;+^=lK_XCPL2@T}t|L(}!_RSadObwiPmuvVVn- zCvyJ^dRuSi^*JMR=RM0eoFcvxAagp{cLF+j=lGKE1UN$936L{?5*rvfXEHxF=En(M z!Z3GQZGG_4#u}UW1$eor&iwwtn$70-4-B1>@nWx>$*o8mf|p2|ip+r{-(Ro~@+}0R zv#*i^=Y7ieU#sDDDn7zbei8N&$~T*m{Kq7x6LQe--LSSqW{P|q6UvP*elcS&jWIQ| zHcg!oJF(5!SL@w>6bowvK$tZb0C8zDF(4LvVwsW+3 z{(PtCir}*$WY;xd*U5f|=uDl~QHFkLmA)sQiQ5&ORB|v%9N5wkYCAkV`4nxQpnTV> zuAY(DxrR-frl!=6RaFbbexqz0?L0}@C9xyp+8Db##MfSaFSwyBO>GnX%t0B^KZuP^ z)Zv4YA3h!Z<2S7LQ~#lS$MLJuR`Dpcu{fE1mL$)r;-sdXY~88kyi_#_|KhIBJ*8FIu#cU|DcInnDl_9;%i1j8U6#!}9A0)`b@uR-L~Py!r&Eh_ zYDsaW`24bltx117u_3*KypV@BTbgd#liAoM^l)9C@020aRZc4Qdx14|zRk*76#hW0 znt@Z=4dL`!!Kvu6GN&@`FkTBe``I*<{c7rtWIwi=F|0vf5H2Hi- zjI$WyBKBuiMcFP{tt>^Wl$Ca+{VheZM;6KP;@+ZkjY8`3h zM!k{vzMLd8H);?3YZK2!M(HmdoY9cbGkp~6+~kF6jCF*6D>3i-OJ;6V{iTc+{d!Bl(9>4hylvA=e|Q`F z?}k6z<|$4?zqb98nTJ`o_VtH{^Dt*pK4Yl0C*>KnFZG$x)q4Fc)%u9kL|x0cOs^kZ zov~;1jwEYFk9)Mo$kigU=eBpz<@r8YTOx5>_{KAKu`j{cg$FseU+I0A?~gV?^n!OK;v#NQe=54pq@HcyMlw2Mp|zH1CNJm+c}pk1S` zX4VxR-;VAoWe<{H*0w9bYtJEm1$@0eLHSa0EP=PsaouB#To8sGEId&5HebgM@GS1S z!d1~?3O zEcuG${nflb$Q;OT(HE+?FJX;^$KMS<6Mv!`-PCQ@8&i)dugqW9L#`c`73tT>-rjxa z(Qm_l+~A{$d}flTp&MIL%7uJe*Sf*E$f2u4?a7+k9)dyo%_k0Z7W)i0lfz^e&qbd( z@?+#azx(QW<{qgLv$c=!2cj>dpZ1>1`k(NaRd)=|WBx(Di2qF<(|1h&Qy!UQ@W_%r z@QdG>b2Q*tc;p-Z%kXPyy}8d49Oz8Kqoto0@Gr~UNS>duJbQrqNSipE3j&+9Dbgkt zzuI8mcnNSOvzRM!K_hiUc{b`b`wUcir9OBz8_0Y~Ha_v{5x5Pq^V*7nBl;cD6 z-c6iKXeOs_%WgAZc2fNbpYhEh{L$i{co+XePRFX^0J#O0frlWx z*j!`s-PB~ioZpKEU&NX2zn%BzrwMO1+mSh&deYp3mHa=_###081{Q*~NE4MK9kJ^6mCt)1q6N zZJT3ziMG$S8_xElh4-+&%!ZKf^2q!LnE%g0^KaPWm!kK&P5+5T-k-0!_8sgIiCrVK zySma``(@{abL^mBKvP1~r?8(ykCFJxZxF*?J5n7h6B$`cK3({K8Tfng5PPEJ7$VLq zkdmo#(#ENr5y|Ws#j2`qaNK20%eIxVuRBJ0#g8t!ii7V{eHC5hFYv;N1LWYH|HV0Y z6Klzbo5vh^QdB_bat3tS15LSwF8Ky<*tQdYet){WpL0DD^J(nGNX!<#MzQ}>u>b!Z zc^9HHBY*IqZH8#|70QR{y_|OY)2MvAL~v=+XsSO8I!XXn0^c+51UHCnvrufC5N&_P zI%;4Y%O1F#-Nk3SpBzwC=nf@fYsG!eqiZbOW^S_ zNb#@O7s;s-&!lDY_1|Eg19$FTj>r5?*uRD$Vl-yOo5j1FC{mKzlQy> z7W^RLd5!eTp|>Zm1jiEVJr-Qn;g6E`uuppJ|2r7J)I|<&Sc%TlTlT!c%l?wGq6^43 z48pnb#NJxN{yaA2-huY#8wc2*7r&DMOL)H(7{6@4)y|mYdvuZG6kY3O?B?*EC4Rn= z1>|s)eC3hlT;z!yY|m5jN?lC+PJdbL(D4DXw`1%>4pGPI!IyjofcOr-?14LpOAN=h z;0Lr{$Ue@U?AiElykm!yn}}^wi%pWr*d9h+d`PUvVsx1B^KxKi?psBMwbWd=qYIyT zB{2sVLJN1SsD0@|;zT44#{moy6Os!IIQ6r-;F0RCs`$Wwb`;(lDowg7uqfe#fg85@3fff zDB1Ylj!83T{FUDZZn0&_yPH}Xk8g^xl|dguO9Snl%Gyt55C1-Fy!){6?!(6G|NV<^ zb6)Js_b<}?@*Q}w@#Om#4a7_Rko6Z{r^0`ya4sp54+yUl8?QhAXlI=p-@mv?`QE~| zH*LHm|KEW}+Uvis`urA^Jc03vExws?IWp02pr=fm+b-i%{Fc9;edpge3#9qPFOunr z-ugQJ_)JgK)=ZC;%fh8`sjZpVBXLperA6(UnZ@q{>N|$1fURUz>qYDr`RY=<&I>hP zoF~DneP+EoehS|N(c-#Y^+%Mu=>F_NB-dT<_Woyw%8{vZs(HmCr4QLtX zDv$C4+p#v*<7#*b-$b0cnzc+G+TJ$g{#ggHe#+imhb{FieZ0c6pPhQ}Kp23Kn>@RUQpvmLHLJ@DKLJn!MB zSs4M(BH&pFJgYMIq%Q=Xg>B;+7Y+i?EVtR_X5wmQqtAug9REr1zuo4;jB#jNf_K;z z_*yJOyE|qYzRdkY&ZgcXSH5^qRei!YJALj~efkwxVQ-SEG@_Zje(9laioK-P(?;PJ_iAjyy zEHRB!-i-Dgr2RLbrB|V)m(pCVA3#qp=}C=CESgt*&>y&zcM1CCtI(DQ+FDAi#8SRl zvlJfE^x)|0lA*KX%GJ7wIB{Z=Nc4cyq4r1IBmT>k}GZiH~mF(xJQ;G{yL$C%9_1=<3>?9=?}J-qDBf_57gv*6LUF z*v2;aZS-ZX)}7GVuH(Uy7;yPL&f-LaKLdC8Nn>tuwQd;}6DRm+WSoKrSywWC8G8rx z`3d8!4aLJBXPm^11ny;=pEAzX5#wCSIF~TarZET7moUyHyQehXHpn=|{~m*n<~G(& z%q_qW9}^dom{{Kz8&BTCxvUft` zQesDhF7lvX=q3=x*B}1}_>yl#8EfJF;IlOu{(M&56598lG8xO1BIaAKS!;r!8F#gcMcqr=x4}ZF?X9@Ed#)YiqNL+0H zAK*gv^2T2in!jsQ;P3cFWDd9dC%A#e!@T&nH+xzqxS*SOXvoFcFQM_j21`C*&C9%P zf!0}5$2$Ha$TvKgCuGL05%l~}+O4BwwFOVT>bQM$yQ+Rl@Lp(7?TXqxZkNX5M1lGQL+bS<^BW?50=S z7y~xFjOSI>tc<6Pc-I3FYxb@G%{5E^x9tyZdu5y}XAVB+SIf@s--C_z|5g9825$X* zaND!UdXeWMKc8jp!t(qBFlSX`& zH(|=ER>y3M&oX0G>#$3?K6~)Mu=6a9m!_#eDKtKxzVlhHYMj}x%2Zx-(qkU_wK6~T zd}D1PetFt6O>vzLKid_0wmI~dZ}J*t_&%?}BOK^n z7tL@5_`WUQzqK|ta)xfPW^W`0rO~MkYjhC5rE5bP9n915Z{-o|w%gdx2=0kx|9=Gg zW$DDgjpX?#?1%Ho%Q4z_x;~a~5SV9W#a8OV?hNOsYO#_#2>shezSYC{pz`D_>~llB zi-;NdHv94E%pLpu#gg~=_*kp&6z_j*J>T1c{oa+T0-tg2aRYlrC-~lp?2UG1pp)U} zYR0ya{Lmf7xy>{qKlDw+LzT|bjwxaR8m#Gj!=0S0(1rM0U;a<_p`Zha9hCi7{htn2 zXAqB-$sV4A?<{pKb64wGY9HVIs}z69n#yH8l0P1QpkcQeaBmyxod(?B0AAhds*&#w zd5Cv+QvZm2JLA3VjW_Hvzu`EM?=$uPhGQ8z4C~}t{hMZtd7Z?-UvTC-9T~NnPw%(K z_gm;AJZAADv{>>3T_+_+oH=HlGjil`JJw}wcvAL_bnq$rM&Uf!GeUW?Z4=oe#P=jN z^*@M5a)D=cYN$7hye{I0mTv|pFgCFVJFIbAIcLCS5NSyh^0rqUP!##CSn@bPI@?f?TQBv+*xsl`357}Sts?BS45FJ3f0W=g>aR}lN^Zr&;ray$##o=AP6P719lzfiWOpX(+gRgi z<)b@>s?$QVM*Z(4dVA}>Y}WmO)J=2+*4SNvhpAhr+1_wP)ISXU8Fg1Ak-G+eagsW1 zz}}o_^nJh7N5-{dFRwv%4BB^I@|nJ$OET)Zr7qu4G3t)_g1VnZ)V(3usC%Q-oq$gg zyJ=1K7u0=$Jl5dr+u(D1ikUZ9{K502{w$sO*}#Uof825%q3JHE@w4^$J6H zEc$}F&a^XqhU&&j-C}f5=Fg-t%7l6HHS)deB>(3>rOfq|VGKr@?Pr(yRLb1M_}D)- z%IrJ4%!g9u7Wh6sA_MO?4TAUWBhJ97k1$~PPpP|rbs=GP?;^Wy;=2Sl`jBNteC*GuD|udfN;S$@D9g9nmy-{b zwJvcV3pk%*oO#tOl}_>{9D)zY{@L&w7xerwNlllWo%bf1XZE_z>zU4(w|m%ED#>Nv zU;+HZ4lhQZDZUlnRDiB0ydWPq^E=F(S{gF(6JWrvoZRrpBgO5p&G)!3Q#%@d`$%!i zqg(HBTU4v$Q>bK5@(!-tIx}8N+LX4Z@h*K^_JwaU7hESZ=2&-03tD}Bhv}AN^(bhWU{XKD7nOF zv0Ga;d$uzayR}oZR4qooc!@I;qrkDub4HEpV+CvyBOzyD<(Z9lvgdSsgQclycV?r+ zMzp|JiP2ks&|>ReNk4KnzH{+?GsG9rNeo~EIUzFMQ^#a4RpJG8{4;eaYKG+h++k#x*Yv`Y1cInzpcQ*E@&`v ze?|I~eOX(1l2_e{zqpFCztFl`v1ewc<}to!D)049&f&249zJhVPCF}4^oQ+mgECZ0YrzTy8SjCH{Hz5mBy%mctocp+75#S;XZ+=z@QgY5OeKyDed_tF67$;XcK$V#xvPd+a-1kzA(2vZTjQrd_HupTx<@pZ}j*}r@Q0zX-^;{B_3IFJe8q~ z8+I45kPX0 zcH%P&hu9hq!;j}{oO{5oujRac9eS}JJ&?HOfbEevMt&&UBhjrp^Hq+(naFsebv4Bp z>xWalufW^FdQ~hjiOuM)az0980O}~;e_#4eVhkkq&LELk z_+O^8rw*R9e=|)$%JmSj+^l<(gysx<>@w_l<6WNSb(U-1 zc-|TJ#I!oIG_Uw!jQd^OcWQ<`XST)tW{vNE%X|zhbHZ@S_q7DS*_^+O#P8uA@OwUV z#$P!&G;b1CsDvWb;YUHF8mmxE1GSYF~Q-sqQS>)l)HdyN0xc!QR0ymDTyma7V&4bWpCaQs!Ze4DE%}WSD_BcTVqPEa7mqAmB!0%qy6(@f?toS#-rxh`2Bj?i8fh;eI;Az#w#3YS z0`s1c_(MK6e@nHS` zR^k?!zsNWa;YDIAIasek*PU5gxZ;1gBQwalmRGx?ht`fKEUWS#e?m#|(Jw90n_ zG;~n(&*j)vdzAM**5Xe3(}-<)*I0vQT$MZ2w+C4yeG5Dd^et;@9`aCdqccaD2?Zyc znXgM3XC%GapjWZ|=HVa6$YD)}>RS_Bp_n&`)t&_``Pg~rb7J4&dzP_prcZM{nBOFM z2Va)#pRsRioF|sGwG+M}c-cv8sb<;$i4r6H8GKCSZU;Q29XY1M!`;Z;c9BKV=O;@1 zmdC#taQBBv@N3ABYo;0NY!UH@lueYn_1FnBs0$v}zs6c{at87> z)`AJUoSD}Bd(mYi7D#wi8GAeOy~j-8m9>Oz(e2`Qg+I@b*A;%PH5a@-BD5)Uij0e) zeQ8h5vHnHc;#`8_dB%7(=^e^RAMK%a*dAJkTSNFT#z($!`Np7>p9Q|8eE)SDmfaHj zHx_!F7Q#(E-@@u&_CxY~n7qs6RjHJJ5m{b zIVW%QavR?_v3O6g=O8lu(@>1D$OWMRjlJpD*dG=-95=$%x>!rG+vjCB7UrN6aVAXX zY=RDNC?wxm)DU}PV-)*mT1ut(pdW@W6yExOh0;i_8RV zt3pC5m`PBZ1hr*x!E@RKaG4}p#g({_L~NT7Yzf8Ex&eB6PG-~=E4Jj+9)q?$!KGgX zm+mBDZ30@wH9>KH@6WR&!z6@g`#Qfr^2*FJ&%IsSeQo!32j5i;F_pF7!5;1>hr^SU z(9|HAaodz7?Fq(g=~@OcG2y0;@dRh({HiWuFXtDZV6W-s>_;bl-F9HImAWcFqd(>E zv>29-;DWw74@V#W8qd4GV}$)9v-739=`2L2Y7xRm;zxf@?mY?UG~M8@jB_$2}2*cXxj$7;ZTd-Lac7Lb3!T*!&tsN7?Ny;}Q|-`-pN z@p}tnOBeeock=!)r6+%9sxe37>;)e`pkAXsOTKt7U>`k&eI7b-=yo>sB=kEG(AodN zy1MAg2i!$_=)l!0$q_oL{i*E3(2Dr4B0Crst;zoN+3V09w8|ela!V<=FM$TW0xg__ z@8@jJMO!tGUrnUWFndi180g$V>11>&WM2qA*7Fi%j;UJ}xSAh25!T%$L_X1)G@tTk>VkT=r1$s?L6dXy-$I`Poxs8@E9x z+2BfRD+X52@y>G-tIhPHmobNopgiaRo!wU3yeue9#&6@OiW4AXkrS?4c# zx1HLdnlJa0VP7OvtHxz6=N>EZa}{w0M|!)?dh<@JVE-C$)%jD^3^C;k{ki6uXC_TK zu@U*y30-8r5q(^+e1I{EYC@~EX30;j?>?Ss4)^fi!TBrDx^kR90@vNPEbH!*W$8A& z($JkOT}<@n0o!>F7*!0<7t!J!FbJzZ(^@(Tvk2c(mj8A`UCOKu(t=!tqX#;H- z?fIJ5f%kz?;sSFYil>2JSn%uB9G2Mg6W)FZ>^AaUdhPpPao)FpladdOb+Hc4|x*^s-x{dic`kQo7?LAj) zQ4KqTF{x|N=QlDUsu>zW&UY3X1zMBO@HTr#aE45NJM>@QdB`1VkY!8mtS?@jaGp_v zE>hz=o7_WWi*ia6N`p1!If3e}yzd8&-t|V07hcub+pfZ3f%i*BLDp=eK=o5QCmA*I zFK_4s68=b2Gcxmsfkq$@LKdlWq}=4{cL$y?A>9&{xcLyT>Mu^}J*#Effg z$eF9p6Cx`<1D!p8KXkVC*!5H_o6R}{W1`3O;rcEz zOy5NUG2`4g-$m8}qacm-O{5mBbv`E}qB^*Sa`h4?HZ{1t&!Pjon9{glug2VkzGv^9 zi?nx|x)e2v$#3cPlC$Ua5=S4K(v*VU5ITYV?SnNNCyq3dO}^cAMzfdNG|u@4$v2%P zl0Fc^f2?=U_-k}?19^R3a>^UroZ-O!H8}rR;jWwStwkrE$eC#Hj(keSCP*pd{0Z_Y z*>IH}HsG;#*{Q!VR_&5~Dj2zZ&BhFP*69BFJQOddHcKw z{Z;claja3WkTaEu)JHs-?_+jRuY0V~JBB;vvr3Hu=G?oGbC-$yFX6o9I@VL>a-FtL z>v0>s`QRWU)#z>HdE-@;2|n74VJ#ZVTs!Y-?KknRE%%co_eF<#=cW|~a%$iiOs7VR zbQbv<_Iy{l(ixE-!2|lfjkX<}r<}W1&)ep2rG}btKEmSbWYysE#nohM;~6=?xfRCB zDL&)!`)jeuv=>y~I(f--*NMsd>37D6_;bz?IyP2ejzds5lS zAGJQJca^U$r1s!e#%EtTs@8|I7kqfp)0UsitY>1KYp`m4Smzpw?ApG$CmZ4A(C=_+ zeYmM-V&n`wkFo{ZL%4q(n}q!`#qkkh18$Iy_;v6Dz2IlDe0R~OJ>=l{&}9?QX%o?H z$Dremg$GVRKkzhvh+Xp!;NIEf4kHs(C%5&<1(`daSxYdzuBlA+WGm+V}Kt~(Lk zMm07RPvi{M;#B^;$iF|2nw(5Us-|?8%k&>^LsoZqPKdn1Iro2{>y&%Y;YZz-*_gH| zGYdXQb={RY+qEh4EpT(ysPAV|pP<=0t**6T0r?f+T<6lL14sNc*gBQ`3i0x5*af@g zE98t>pk_r+06oU8_hHfCOEWaoK5`Fq~(lm3{w`{U7h?|H^XWP{1>x`TQgThXVLPop#A-pZOD zQ-{*IV)X7^)S=ZnrSImWpTpxRf{9=w7`;ck5Vn2E_>6qj;C;fCGV1|keuF1`| zxH4u<)qn0Fe=Eyq#oxH9;kR2dUANt~w~e(v_!9g!0p09N#*X)|a|No|LqgOl5I)|{ zVt=P*sm7w_$>K`v&`O`LX)ZW8w>0_6tVeZ1Wc*vv z&7$Q7YEtR9ZQS|xz=BKgr<@Sc8ET8~&WFFwgU`-|-xk7mW#kW(l0V=v^~DD0F{FJq z)i|_^ac+EjbY6&@_N)`}?{jW6B)_nWJsiEQ5`2kfZu|%Dkf*Jh@T%Ks@<6N~4Z8Hd zr95Zy9^Q;n18r<%+e+7q4_s&Qpz^e^T{cQ*=s3(B$IQ7TMYS=h;lSS?;N385c@Mr& zp4wZ`h}P+4eDTdb_vCAXlY%#AjQ(Nfy3s}wI%BmP8++FCxlJoa23wzoUY-Sh)$nC? z&B~r?`0`55o^63fJHW{n_|p6jKked9yjk=qJvov8+LvqHvkp|J-;??8=(f+C^lavV zPe$i0`y@KMbDHv}PKdk)5B)`U>4ctq`kCFeFxZ;ub1yM}XPzH#v(9vDu9~~n((vAG zd%s-i->J1~Ey{0G&Y*Zgyy5UgH+}m#I}{q5k>_=1=ljVy12?O3umxTjW90cywQ#c> z9`)lBad0DE^3s>!C%lmNm40C&@8gH?vF?M^lg%nJR;^_HwI1KB2f?k6cMm|cd3`@#KK}?D&E>yj+A}9TlbJih z$g4VkUQ=m~5xAE=#M^2ozJ84ufq5_C^Rt@*Il({|cv=Tvmw~4;_RTWzv=BViGG7B) zthME5t>h;;DY=Z32E8gjU9|FZfwI?sccUVW?$J&$6 zCFk++L($EG`>XUJx%eymse+$FZ>@ZH)+*j2Z!q!_@=tBVr|+O|9YR*rdd5{3;Y;bF z=42u3?Bw%%)HdGYnNYor&*O-*y+giYr)OL)KE(|yJ5FrwfcM?x(0%ef@)a4g8=Kwd zLPsQ*Zi35bO=eDg{LFY``0l%Ea&nc&mx!LQq2j)$=hu%gzUm%ne042<)A>AVl=0Pr z_~DYMB{YGWLL;dybmasi>8fc)QYv{Ysn?JAY7&1F_#4UJH^KELa!y`qG|s*9{F9qD z@Ogvz`IM%OeBP+fryEK7?G8R0cl_u1w=6J{s-Yw0-HSGI{t;a&+7S#4_MXb`yEnbZ zd}U892UdM+;QOC|=SBQ}E`Mvu0jafhhyB1cR(Hrj50dWiGVze3bcY4&SBH!oqKHsNzfba8UXjo_CO7VS8!}r;U zZMtN%u_Lf5b4evSe8uhc^D1t?oxi$yrq7f;xeWcV9D3b~F4B=$H(z^w1^M~tt=tiA z`JB4O8Lga4*ev?!Mz?v*!@YBfZSxxsM`y#c$yz({gK(kk2Ta&y)q709776_)K2qpI zI=>SWa&l=(@vDYC8F`hS?0hGdQHGB)HfD*VXvYlr>N5UI@3j1(NB6bW$a*EfS_+x_ zHt;InV+bExtX|OxzbJ;JTp-DrKSPfm_JoqTIuqxuRvn7h$OYa@UT+t_V;l9sOK@=f zRb%m+ReakBs}79cHTg8Xr?J{OdlXyi2-&nT^q;P9h`ehr@z#OAxx@cWA8H%xca**r zV7-n{HFnRfe831lLYsPg-|t}SZ{xEWKS3t?Z6CEU(zQhX1@WZ*J8+GU1@FcuJ#7a0 z@%*mANjR&@g0}rJ7%raS3_3}1Y6f38=SEcBn#O`g}*?+ zis|ph7dtJ$IQ-W*rvD4MpUXaXKzEPK2o{97H(NfO!Os0^UdxgFiWfV19~tzo^DN52 zO~D_3J+)OE&vW-eTXl9* zBN^m^C{AO)b5xwuvh~dSz&F0~Ht%t_Qv+l4`O~2<%eR^uxpcgJKP&a;(GQkJV`5f0 z%p2WuV{?yp#bG7=Ge^PqIfO){9@G3TGiscW2##LMPG3FwBJxY9P8u;sC{)%lK zWw+9{3Y@(QjP+Z5+^eVj*QUJ{8=IBQdOI@Tx!dGa#wgD=PVHn2!8icjnzjPDH$MD= z*_^k@qDJH3do;tAd&WR==Emz@I1Gsedf5>DSUZyw{rD zn-1`&wXRPGH^}|L@>>-HQ{6Vz*^!S;_WH%dJsO<+Bae?fqu}A?oa1g6t@()E)ZhnC zBZjD4j8(1yvGR8GTIyO=m!{H&+#TrPs~n%w*qhVU43U z%dRtRvI!Ri!-^?Bh&>as`6dLt>P`=*KOcIl)1SBWvAGlQmp&T%ds58r%N|>;-@~!L z6Nhu!Pgr){YW%2ueFuoa#Qe7No|xZC(WmUW?lfGMKS(ix)A0v+kNo@IRM%}AzZdiV zZuCua&8+PM@X`?TTQ~ci^V?%1dVZnb>tcUL{@7!!_7!laMnS@o#MGqI%5O7P1x{_s z^v?epcgz)S^e?*bF~dbZz+d0q!9GGCrBWeM{}EF@bw}@tGbxjMa6sl}}d${|WbsA=|j` zt1I>}JT8Bc_G9I*Z2U)bvmc$uTY9GMr+6nY=gj7;MB|X()o?fb-D~PY?enocQX(6O z4Ur$Q=Viv9$#_nTME!JN^T}U0+;OjG+?~Y6tv;-p<@@n5TD6+eBg!H8I=N|*Wy&GQ z!lqrwdNg;d2Gi;RzOHjw+dlerWVxfWe0WhY_9uA@3#>Se^qC_1_pTwAj`Q=H!^V^sKKc{XOb(v1h;oh4WaRn1{kZ~_ zGl|#Pc>>fW@AV~;vw$wsHNkk?&py~dO@m5&N5CMdl30J|gHBGsBwGhgH}wS7;|=j1 zI?bX`d`zA~*7g&#^W_7OpIiLhiOm)tM_CW7wcdMZt2SQp zT+#oDH%>a($v)vV?pVxRB9ZGl&bbB9>Fqc@cx zXDqr)k0j&w#+N+1?S!7ZEs{M`vA3;#XHg6Lj^z8pId-g>{-w8F$NaqXyPueO=nPAj zU(4RmHwL*13y_x~<~|AdPNL@6WNa3FkEgxe?_$pkllGe6=d%t)cZ6bT4_XUAYlYBS zC-Ae@HOZv48PHk60k|*6Hqblr*I9DQg4r9ypV9R;3AdN?e#ra#d=nnD z82}F(PtLupUj!c3xRyM`emDDBNA!KdFAl#a^GtN-tYT5R> zyA-^=mJZKj?}R3L^U96PgUj)Ol|oY?S4Mu}Z_q2JIIy?)d_VlUjXQxV@ad((b)~h_F|)&#h8E z>u~Y&zud7mRp*bqlbgx=Ofl({oawAp}SS^mw)SjZ{cMJa~|$m*E?%nKiQ0H zDKGS4d?Mn%?X1UvaVPm1A2VOkB{rD-+~RNS{l%^KD-V#mlF-abcmSPZKwM5biA6WE zi&7$2F}CVZZrc-Gs_`~4URFJMU-%*AN34g=hT^}WWIJ<6DS_UyL_g@$QF4ML6P@+M z(#%l(d>>ev{a{lY)Wk4-0j1c(9nm?iv5su8=-|Z8=;jryVYskA#eqG3DCz&hZI|V= zBZuBvPg>*x?r9M{Ens|SACf%42f10#w~pw^7hgVs?ABhw);d(y0^l8TH>bPTZyW5*PaIcYXDjnXm^1Ge9i}_RBd8m6YWotVAlTK>c)92!!>3&sgSZrhR%`AV44}Hu_%*%Tu zSkN#sBTs&nmQmSxKftd10RNxvx>gRp>Ojf|LoM{AeeU$?4q(wB+wsNxCO2^tGcOC< z+l4L@FH00p77p%U&5EPn^=0nw<4p8cw`IpY$vxPCNAJ2j^69_tEyIrU1&nYu^L28i zKD_8G^sRyS^I0%UHR~G>_3od!pG)Jp#|Fdjtx4x|CveVy^&K9~or0c;)!pbNKfu4V zd#bf3l(N1;{3x?{uGrx3Uo)Dq(^}i9(>#gz;9>T}F9DAWM;nVAzF9?`QstCb-=(*w zM_xU_Fz=_bo~1_)P@8)vI5-Sm_qiul>nx)Bs%L&d&&nxXp3Ge3Iw)>872CF?cJdMr zxejWd(GlIueM8j&axqQXx#mopXSq9Zh`W@QkF@aC&f0DvZW+br{|xI}LCmt4m}Mu= z)c+aO@N4^&STV7HEbcR0$=oX6E1z5FnsV(W=?$6k*<}HfhwyO$6ZsTc6|M?cIn znpB5RzLkOJhN%ghj{h3pw|wmTZU2g`gxuVdFavP9=Q zf~mR>!!UWL-PTpw9bL3<&oS?O-}nM|xk?T?`6J2)j;H-cXrp~e`l0wvXAQ&)yJ)ND z74Xb(WyTKLSbWic*21w*-^U(%($?=AY+I(G&DNp&=56KMKR`dTUDxElWURLQr!~dB zA^A)Xk&kJZ=YJN_$rBw1l}6x=OWIP98ES>dC=9OQ=yqm?Y}yEV%@nVz2PC% zG-nK*VUZ8E9-3Or-tDw~&~CeRkhb>@(sn^i+Xd*28aIgU89(lwgS4GZ+t~Mt9<_6l z@PpQ&FH5H>pG=$-f7l1m;5z7{!S>~~BX5g{JxUgry6d=q(OX0F&C!ll+B z+lbr+@cK98r?m%8jQk1RLu;zVr}GdvP(PMW=avCJorl416@Bkzeh%)}BFBZljzMsL z;vo3@HEp8_)FK8CTd4y?{@#%r>}UR%XAj!Xu*dt}`w7pwvN(V8sb^Ko&l)mi$9i{d z$!r9_h4^Y4@zpl6clt|DpBv`gRA>K0CfjkNMLuF_`07^4F1KLjjqKpQN(XP1=%2!8 z>ax>&$X!m++7!qAU^MxE_V-=znZDm_e|L%2`2KCaw;aBHug~4FC;YqMV+rStU&P&7 zcgyF_UVJF<b~Os1Y`A-tQ*F!np3|nvu}KSwdVM&VfDYDziw=H zdp)Z!{TK9CiQQ}WxASZCXYD((k)>a!N1h{3Cg>%mWAj`$uoseW1kN`_LCXU-TgaPaN}2bet_rW z*jEk!&jX&^NW_)UROULNsf>5XgFD!L`npWz9wdaT_9nLN+nAW$qr2y*14YdDNY&ol zy6?g73Ds_FOz)9v@G~bRQy(hVq?cur5HO z*)Qfro5eS{2j0&YeOh;Sjl@Sd3f*-yK0`0QL(W9qf*+MLF}kx${?aY%hr8hAkJu|e zMt70l`tRwU@Eh31E$9}i$JK&ffj!i_gFM0;scF)<#=E4!?Mvt$ZM1q_fm{wDCYNV% zw?g`s%ypwuukGglTyhHh*~;nlCeTN#H~1a%^MMClfs&y89DS&TJ;m~iP3rf_65}1* zFE**V4H!1Y_++VZZ`OZnL4SQ+pWVjeEwUk!v-4Wm+hsE=7v_xQp1c-#Z6CVlQ^bfe zQjB~{*GrAm;InGOFAFWEOtk&Fn?{E6LLd3s0RM9ucQ85Y zytLTZ@n)9M>&(}OFR;b)LjD2r;>$;lSk-YlHDZmg<>k6k%GRAeKK}rI@m&1+2e3KH zk?RM+QNl=f@))CKak*Y`JL!`uEw zfsJP}n;^146LHnfN z5;yII&b==9*X=#ffn44P-=kYOcaAR_aJG#(=!{+ucROO|Y%hL4yZLI?wqqLSR`9>J zkc-*Hd4d*rT?DdW<>Z&0WA_>FiM6zCmcYe+`qtQ<~@* z`#&AqU$L2Ef?!`j{zy@DFFhH|zm@wzBRa-r5zNLvF;L9MAFVU0lf8a?lNOj#C%oT;A&;CARJ9$@m3PBOkhL zSZS|6UZ1k>eaf-I-dF6RW#kL_n~aO|{J;x7KG=zFlrpj+&ktN=<14>&I{n7N`615w zRs1D7=QUtb!k*#CCYSot-T-duPO^ANct`>-W9VZleTwJsdo9)Tc$?bsx4pw%dj0VJ zl?m^F%YB;QT*zHso7@-YseR6I@b*{r1Fe0CU8OuMbo!;;(3_vUHuU-=Kf1W^_I^r5 z-f-yP8Tw0CjTms!*B>~E?Ttanq#bI~~$u{Y?V={Khx zT@+ox@rnA#!R$t-@y-|RW-jrtuGsa=VLcVUjm|k;{^S_>@)q{@*58mP4$ee>qH`Ct z>}S3H5~Dz{l8gw{j4=H{Jq_IDOD<^I*Mni{#G=1;Ti0pFc2*x1$beG#i2zvGY46Aw zA2ifL-`)7wuoV(|)W3)RnR71nEU2%Va1k~{Au;vk^ewoLV$M5QYXh~3yu{!e7*D=E z?NiG4Y8-ZLq7*X^Y8|pA*JT`4n`jHQi8PlCaQvf8o$<43pzQwv@OdJ-L;j$Kgo)<8 z=FT}kt#cdmis$*U$n&3b&aa(*3b-%FY7>nB*!EMFw&{dhI_Q}`z{xjOA)f=0B z5B)j)NZ)!~?>-)#(+;eoYy0mm&%yV$3*VcU{7Kza9`Adb3cOnIQ+6RE^v?g~-RAYc zZ`uZQX>>v5$}w+K=Nl|n)4GGy%4L(TFqhogbaLobi@`@uUMV)I=sfE7Rd+*oyTNNN zdU$}Cdw_U@a)HxtGs5lEMrRMH4#6YfmvcfHO)2LY;a7hW^kw*3TSb{%u^ zVoP{kX^8>xHut)EFYrzBa;K~Bjp3a_q?m{&DNx z`~Nq(nf+q+R`O#E)>M&f^a?h9D+eY?wgZJQdcAf|jF<0O*jLZ9M}+7jz#0{&(eILP z9ngZ6Kb8^Mbr<|e{=EE(lFiS^s`6jdnz9&3I}rF7iigdG0+sB zn|An$-%ldlXvNPhLOBA2!-0W_}4A6@L^sV`CgO?p&6>~A=*I3T294~fpn7D=R!*puZC{I`C z!!`e3URM;B|HZF7l$4A-ANc^vCqcKwe-HhQ$j(=s)zMi(o4_SCPncwi->$*ZZsJ{g zAaOzV2KJQ*cVVsSz#k(2l+I*G@0D%b#h6FsbVJkYS(gbDd{(CtM>O@GF-G%R#<+-> zeC+roj8EN%IXCg!`zO@()vQUdbI`otjrhwB;iP1yv17+HqxF~9xzHyyzYH@rX2lb9 z52j+#$^pt8(g$d`vR>&Xucn*xBMIcz$d4)g)t~6i+k#&zhtCaDmnL+>Yl>-XW1aia zZE9_sI9BIz<{>|TbhQd{MZIQB#hTxn3I-nY+@oW;bSl!KTLiu4X@nAO3>AB7De4BfU{RLJwzK`eB|PSp>YZsn5t+rW)_Gq=-dE+vP*5not| z4?T|9F|c|ufxOR!><_id`()jv>@`l_r(&kDbCYfrV1ClwJG{o@waA@DSm2B=Xu z2^k%-_lFSs!3^3V;*CXs= zUs7C8ZDaS|iO@&Z2xw$PMV{%)hR;GajkGam(MUaQLN<-a_b}8r?f8AR*yF_Fa1vuE zZt2W_H##14W7cC!yWq3ri&(PlC+|Yve~soFZ$#&u3jJ7ebyDOVa&5G)=xzZE)+wgm zw-9<$jTfhu#ka5Jy?X_oxf+KW2)-OIT+A9(g-3+bNm>v;ACdy4At9j}(fXrp1V zzsK4?d&)idUq|4FjjcsAlGujsYPRZVegJ*6$Ly<$6@)%1-%G6Oarqv0$L))q>@Sus zYt_oM{ER8c_6ZSgR($L^tbPkAZ%pyPCIZ zzh-Vzq5aH1MmGoHap_iG`bNfL|5X)_EwTdtwDwx%?H@#TsJ~<7 z?Y{|a9U|XG@fzv$+B4&I`iG%AYfhFd8mG{014!->!8^C25fvb~`#YLUrLX4T?#;PpG+!CyQ8XO=Ew*&M2&sJZ-6 zb0H6AFx$eZwbui_96HfFb=Kg_JDsxz)*d>K+A9NbWa%gUIC657<&UOr9(6$!UvqFI zz8MNf4K|Lp*f?sjZL^k`oB;LV$^^_%dyt3^A)-i$FZyS5x;K- z=E_~0Lms+dPhA`HjM+ZL%SB_vEWL_JR#*S5Ykt?eI>+PwkL6QZXh-p;DV^k~$v2*j zUV#3&J?GZZ;4~$2GO>8ciDS)iIyRJLXDI%XX6hOqbh7>Ee6{e5`V$RUIvaX8b9;vK zh{Q|ge1!g>8g=_@S#85CNifq|)Sq;k2jM&EG}_0lvC_?Px~YGxJhWJy#_S6_D<1xD zlABf62miFlJ;0xNq<7i*0o`%=0nxbpfR32_fPC@;;@A9J=Hjfmj@pvunx}~`QWWP{ zOdaRVZ68GESUx!N3g6{EPR55W^ZnV>ZFS{TX?@FyrTGn`ti(M&U$M+W!&{Zj^TH8U zywf{^GavZ<4-iKyC#TzhpR>`6^sED1mIU#=8Qz2};%W{bikGsPgZ{_Ik(IBMgHO)S z-HRp2G09r#VzS>{>~ZLty_|_1X8mrL=_3>U4l7w#kB=q(Y{y%Yjrh*gKRH1= z9RH?wY?^uQCWLLOKKUJbE@scs9aL6L9>vGYZWgXfo8Ld@{(FXF=f{4xLwGdthMxVraw@=|##T&8^OXOy1)am0iw8gBU~@Sa zUXv`}%UsZjQyQ4Nk8{oIii0(?YINsx%0ca~h1?(QBad#kdwia6*CowFZ4S=VZkjm#*!<>svOQ zYBL?{UT^u>j(4Yc|6So0-h!MHzko3Y@}SPkS+o=oFPb)lyU&K$eM}p|ZN~0nZHNir ztPC0~!LD%PQ1$qT*_`_}X%4-5D>OHlEwL5aaBPWGY>Du9 zi&y*3HELSigWD3>yuZb5)wlGGY#>i4HBx@3yC+Oded)$6CtxpNOSF8~=uxechoIL8 z{QJ;Uqvpvn>|9rKvDf?qfPYpjE-K;#9_rX!To~rr? zpWc4-eeA^S%ve-ysHEEA??jWobvEA}c?_M{vBBl9YCvB3fNv$fczi*vu{1Qe|Jcga zQO-*XzE58fe8YKe<-irfH@ig3z#}0Qza;l0j6s%gcizIX8PDE53;$a+KE(snTD%h6 zHErWgF?>Jrbtb}>ocrv}<(>riU{NlxmPV?8$!gX+5Zh8{1nkveV7``oG3^08^2KSwUnZt;M2JgcN#$EaPH zd3Ez?M^3)gu97i)-1Q(oW+!KSbE(^Qko)}P_eD2dI%`|`TztMStnYR;udk_IeeSnT zzNenLZFhE-uRf(dYxO$nwlz|>ZJk-SEumWS#DoX3p%B@SO&^lQwfN?1q1W16&IFS0 zv-`-F#q3cDA!szV#gV9<&`k!Qp8BZxV3*VHhx{;W*Y8PZITi)aK z05@v+KzE0>k)skQaW5*QKG{_82min0-Imgv@`uVEozea(xDh^QlZ$mOpUr!Uko{(@ zk<)_(+Lyf4JoR;Re*ba$m{|5@53)u+Xyj~?eAJRJ^0PffuAux-w?aSC+06VI@@CrX z{YJh*M}NG5vo6xT#V=3tj(h^r>sGR7b=i7#7qUYB@8@W*z0+wwV;?yT%u9KE%Cnuq zc(To&9Kv?8+FQBBskA50boTqq=L6s@`qbE_uQG0I*GvGHP74pZpF(GZFJFK}*O^r-be4L;-ThDStuzw@k`g?!MM zmJN90fL!d8d2clMm+!`!n87#$SJFQ@EXn4X5zZ_ezQRqv1AQtw$NpZQ&)@R*3+AdhDu0brcQl7Q z!Vq;w-S}sJ#yR>Ra20%phOPV@&e`aG*wz4BhqjId+vot;-ZUs|x3kW8*yi#~?Jd}f zCeH!3X9L^*b5u@TWGJ{|VRrwv3nUr2S<*zio|?e|NG5(V_KBawRR&z%#X<+Q;KZ*A4Eg z8C?DZYdZSg68Sk5C)b{R3i(UUnI7q(?7hi~&xnVtebmb9|AhCn_Ncv{c6-k4_MFEu z=ey9UEPeUtIKK9c3UfVHPQfzf{_>~MIYXV3l5QqHu}kNq{yf$6^-=VDv+_WWg)7mu z*3^CywF=M11|WW-wUx?O`>1Yg1ZzX$H*~n4e>5H-F6(%+WQxbQoYH# zJ}h}7G3@_8M>qfAukP?F*1pdkx68t!w*on;()*5ABn(^rk*8RDA zh|fvqd70nN@9Xy*v)`wAHg=GH>(CK>{FWd%a{fgANe7O(JTC!`3BYlk3C9Ezj*77i z7moh{95?^b9nNJw=+INSATnphZ^GA z-%0!7wymLUzpgmA+|Yh9)EQ{$P>wHHby@GN;H(DzG4j4!Gl)fo%jQ}&Xz%aszOfUVRIg4oXgbiNbI~))E(>nNZ#R1xzo+s0Gov^=jD6LOoHO6UF8UC@mo3zi zm66wyot@Wd<^za_(j%9yC--p*enfn`mDrL`k`u-4@}?~nvTa2#->asz`5 z96xN(7I;Sf%U#S>_F;I~IetUmKPZ^qjLj*yns6MO-n5&#(+T8F=3Zu;o-p5NO=n&X zKKBC)YIf|9tgd4o%V{6a`{(5tOK-sE(ckC9rZn(#nEN1*S*_m7jO1`aMw7pQ+{csn zj$PGq67mZ_VtUfVCKIN=!PiE8XN{pYZt|3*J8Zkj*whaG%(|=4v3@^h-Bo1VMbM%% zX8Rf=;Kv?R47h`P0W`MmoJu4%9_D;?*2vQ82a$g@tmz}-)LkbO&233H<^-ml704yO ziTuokrO=|z#bj_ED$A2l-A>NBf0DI^!`QOk+gwYsTp865;LEtMcFo@Q^XE3Xh?{Gk zZ~qEkYKjHBOE`P(pV=R8RL--XzP)W(JB443t~-5jNyA8Wnt` z3s`wG@C)BzJd)la9w(O=dS3W#_on~OG+G~FJ&(vA1Dzq;7gzEA!LlzmRTHy6nfaca zIHqYmvR3(FifKWw&A%%$n%CzT&4op$9DEJ=rM$7Pa_*Zws`XC%I#=`k9qKE;16^E$ zk4V42?aEyD(}ZzN?-Wp@`Euj*tG;FI91lL<0k>_gw)w$jE%P*&E^7GdT(ag82JT^( zZ=ve9bRxrB){F@3oI>4FXvXq=kRuRNv%UkFo%>+P!u2di0s^4ftl>)Yf9kT1yb zeb9&U(%f&~x>vaP2wYUyIceFyYX?~ukqVf_8;ltvEx{FV@jmph^4p5o@)Yk6{4Z(-1WR{pzX099G(pR z)UFw zTqCMGh`H&z+L`Z?BWI+JT%u>th8bVeZyHI5tjZ>jD~scQC{KzdZK@a zpB?-A?{~O2X$@Mh)=**?t+Dej=eyRR`PFNFz|ZT-I8AUfpHH`QaxC51y#H+4{-fh` z(t(s?_aN;{?DtC8Bjn4k<-X(wo(r}?W5pEZ>emue)>wMB0^fHE&z$qL9-b{?|5o0I z{Z6ts`t}|l?{jo7SM_+St0%PY} zOU!#M`k3P9b^=pfOcQ z<7UmuukB*3U98pl?M~~rWUWWPyIH?Jmm8_o&)D=(Vx%Qzxl*fBcHNb!dO*T!xsg(R z9=~62!eO9YEjTGI_*w8QpF=F3p_>7C{^=kvKsPYYaXU0uf-for4ad@)ga0?69k21u z9^b7F{@>Y{aBJ5d8~4x%xZk$!?gI~6xc3%OgALrj$y)4j7R$dlSiIr0;5&Y;><6s% zXnbEk$XaDzil)W0&N|y&J-+}y2NUQ+xOt!0;COy_*8HFBL0;DD;QVhk3^-@dBsi%p zxo&1#-Lq=r75ELrs~1=~{Y1dOmoxtA!~03}=N63K*{C~`1S`Smv*3Tf&ELi#ct14` z7WK^6!Mp5mty}QWx=VVjIv1tSQRm`$tIh>7RW&aDn6+E^yIV4;b8)xelgRwDJ{Z3$ zSidFHU*B|hJlzaBe`L~7a~<{n(_G_Y>3wpQnlswNC3}_w+reZ|tUUexmj3z)2DBp? zuevoZJ`2vu57D{Lwe&eaR`ZTzbT%?5womOLZR?JfU&0~&G?Si%x8c@cxcc{2ZivJ0 z7l8M{>M?v?I+z0;h?b8DPkaB3U3=_W7sSA?0~k5*>*TWoKXbkI+Q)u|wSUQ8`(W!G zlvW3stM*ifeme%)OD`M*PtIQI@S5_okAiPZJsF$V`s&Gu-)vqpYsyTmZ^{(E#qXh? zW&R$~ag0vTHi*oa9=8tZ1i(L8{w&D~-;o>k?j{!iU2c2MS<}q?w9|=OIdUadhMq+K zu`={h$)6Zmc!2X!l7;HC@ksP>;W=KGs9)VZC*5?gxRiWX^4DUoZ11yI$nWj4{l*RW z3auPZS48!kKUl*(v#Q12JJ5%0(WB*)TR{B!RdU9*vF_ie8MAF4p6S1R4;$wL_MJ9< z({mp-_-=fIyRp3sxnGGk<{7>KHhW=>acvNP)m}Hbipjx(_sMIIe$^BBpms#Sv_+@B zoayC0BCjj;S=St+c~>hr?OD`31{U&9w76YMLN^B=^OE8j*ZG|;XcBn# z`KzCU4=ub~?cRJPx>>Ra9)2Mw+iUXhJH&CE`t#Chy>riM&H5ENdCL93j-K!<{3cev zNrE5#`i;sD$9CI(lrI3dTlV?DT8oY?C!C#)J@2ebJS2bXRqTIH0oQWmFMivlyG9+` z|ME-L@Dx6#zIO-ljXJ)X?Y#S>9S@0J!`@dEzadVFy(-*tdDrH)Z*vEL4L_5YnAbDh ze>4V|?0v<$_u*;yJGP&r-iP+irS4=b?`>fG$B|(gEBU{Pmoe6(eE+W+_okonr{`mM z9)-7&cga!i=j)njv?lV-UHtAR-$Q34{NT%Y@f_+^8J{$aK|YMJY~JVs_lrkv;VyY{ z0KTPq3cz=((Kg>0TR*S+!3BXZ{`drFsu2Hc;L&xN-Sppr-6=em7;Ssx-!c1s`J5vi z6O1GBQTlja?}f;z)ST#(IR*Q_Grx|g5!QW<(KGnWm`?u1T5_3>+)~1w09H=I|JD5D z@91WZmCPAmY;req>{>hc950ERqjSHd{0Bwwi|OCsOim|sSaKWwVfuro%p7v%CNKO} zu;5v@F{cP0VKHa8%elK2xwusK36;}sD|_8hz7plL;-7Ku%hX=yd^Y*;*BQ;p+>;<% zk?-&1jG5k?2v2J7b>8bh26WO+{*1x&EbgTFg?^WO(w=DMaK+q@QGsk2?)?}+c+rP{ zn*6dCg4~f|*!N@TK8$w8fIc?XlH=|ocR~C-g}r5*@JAA3~J%tL;dy!^zVzwX%i2~SF3k)M%RRgZR_i+`T;$3O z%rl5SJ?2GZTl4$m8(emGV))X_joy_P8ofGmp?$0+MptR^WcCP8p*8S+OOfI;iz+VB zXIHECv8#~3|3wTzwar2|8of`BGETkz4Wl)O=k1Dz%`pz;5JzbvE8)Br-JHte-iJKCXKRV4 zl2gCbp~;F%xMLB#$mVznxZIt~S#@&#t1fr9UcbWKdSj-m_l7C1-WwMiz0cr7ulfP` zr1OoW^Uu3=<91^8lui}=LdBCID$J~iu99&DBM?PD4adFkRjous1A>VWfIc=<~J=xn7 z%60YnSeFkOX!fJC^SMR6<(2*(uVO8B-m8}!X|1`mh8RPdtGD_AZ*!&oZZ>)s*0_5s zZZ~=-PY?FqcsF^*i-WzDQ;pt#XI#PJm$!3X_@n5Yd!WB7Mvl+Z9NNDCZg^+Rw&HMz z^;gojpS}f?1L!FwV@LMfI|G^VR#EuMFN_a2+`!rB3Cx%NFU(;N%Q1ROxPu{=v8$Lv zY0=krRs)+JY{u@{Bj?O#Z1ov`<}k!MSKeO6eRP)3{nE>Wy}DcCa^R~w2oyI|UjHfJ z%;Ym;Vzbup0lx3`%zuk}Om*YW)@MqGX@Vz(mong#$i294!sprtu4*j|mlYY!)%StKx~TJ z?dE~wX1&WhCSI?EmPDia{bu@^$nT8{xQG7QlyK$EtbG@s?>BnGPkUYr)bn{1aK3$H zb1w6$EFRe$;D6Ogo^W`9=S4jWd)zPTS!J#}T)Bew=v|d%wD|^~lZ+QDiGNiBuRu*! za%Gy)I@uL0_yzR((bRd(U6I*@0N|k{#;qF=-I{0$xm(U#tVZxONk?@ zo!;*S?uXIG2EJFf^8oZ(I&1KE)nDlLV6Qj8Ts-6=!H@nK!9ni~whY5WpZTY4}!gyLMzDZ#bdb}AvoFy7h>pvyYqlJUVX} znlyw!I-v{AvFq{CnOJUNieLwIx6 z8cQo`?}s-OCpSjd&pQ_0`riB2(C?YF#Q6Yhz5EdLjb44K3*N4{5E;dH-2q7~)P$ke zhM^Z221nPo#EbTJnCtF#xTaustnC7qu%B6H-fDiBgp$2Ph+e=PWqv* zFCriNXmu5`jPnlDx64-Ko$sC>Ue7xx+3!e(`G0Kj^@HFe0U0D;iP~3TyM%tSFx<@< zjoN^5Y6KR~iUx#rFsUF@U9 zv=Ka>VE>k0>HPLpd~FVVf{ZmAo_N9?D=RFyCm3lTHGTKk#v{OCB5`Wr)H^e{x)RtZ zuYkG?nd&=-oQ+CgGxbG(lf#n_#f(+=>4<(l95;{;g?CqC)Z}s5e>RWzopW0+`h!;u zc=ZhOTI1=pU;buB>JvU4RzCsy33~R;yJUg!VjX!Z@qIcx@IG^^PdGBHK2y}^=-Nlr zUyAdqP1%t2{siz zB77XXkNL;!!x_KGvxa$`ImA5X9kUP7Qqc3)c@^KTn;-Q21z6nAXYzJD_YIKy;yvsA zzvy1#`J$)bcg}pI;iWr+9xJg;I6?|+B&jz04d3+9Zo=6LP?G_T@jjYGTd%%`nA z-p$8rw{Kp>jnFypE%FpTQgNf+A8I|U|61{d1;>hO_5Qs>tcUl%SvS8JconU^4IG}y zIQQ~Q?d}=6T~!_Lh~`*-mEJ!N+%DJqz<^BO`*-}RW#mor9%FK^6lbS```xPB6v_G? z^(#6?EY&@A^q;$XPyVxWbBq_Ir)v%wv?&;E9BM;uyE!8!J#8iSfopB~fb$p+qc=Em zd^dabA#{i?PkyfEoQck!y2uFMioO=BkJq5D3J&6lTQ+JB5PwXJq_F05mdt)O#9A|0 z=PvJ>@YCaK!w!sP4~=Gx?wNMYWt|zj#bvJPqX{X`YVIEubN|ZiI-QyZ#$J zn*RdL-}Q|F^Isn`{~s}bo&6}GFXsMY>asJ#(luk}USRKa&R(K*+#2EG7@jqa%>Xy{nI0r;G%S`dA|A7t&Hu5 zW(vu1Bj!WyKk*6h8{pZo>@oZu8*=7Z{*G2+Uw`?89M3ZBp|Qv)`fzk1@ucL6cJQE>pYWjHt@~P1BP%y9 z3}1%MEdR_`nEPL5NG4hL@F+eZx@)lMu3=ERv(A~^3Ou98v25;lxv<>Q6Ju%Hk(17v zoeoL`soH}M>z%R8P zcC^6H+E3Ha_r3VoWw&~e6YUm^%y^-E-P%j^PWzXMSsik%3UK#e`$^<}9x95HJ!#zC zUbpyH)XK~rPt25e(w0^9e2hJ1;VCup0CV5ZJAa~ph)u`BJM=#TvC*>hNv z^GxUQq3LAR2;WAZ4K^%GU8#NdO=#b9@Eqoxf&)*%vXs5J4F5_wIcLg?Vm^KFOa?|z zk{27>z8W|>d$5%!d&2-3aW3(K70{aUroujhyPW%JSuolNj6~z=yBgX(Zhx%%eEPed zTB7(oHpu588|kyio?j88D@Ld2msLZ{o=15<-u80rM6Krwk6E;R?sQ}dzV~*U?*yx> zn6K#mY<_drX8Ky8mwV_}zn#f%f4bJasdEG|8}5{pTsR$m+s8A9rt)`3H=F!4eOmL$ z{HAuh5~6)Fd>-+^lj%p#{S$%(bJ6*-I8)yaOmpxF;+NPSxX;rZiSbKloFFpmHO4JA zYkf|R+{0O^N%Ye-F002J@6ySAy5=pXWUrlNzVXZO7T&{W?PDX~v5Vtvm&tBta+pkkvix=M`5-KTCO5 zwAH6~7RTzHHeH)~=OA<)qj!Fc?j*hQ68gK~-wFrnH@4m2=$z6e&aicf%5_GsbP4_D z9v2NSe|Kabopf`@mqEQ#@in$!*umc~sQ-E6nxa;4lgfJ)8rG z#o=sVuYE^$M+va&!uFuwW8g6@GAjm;I;W``GQ#6cv~}<(o!GgXY6Q<+HXdK)v+(!{ z^S&Yuk80D8$H^uhN7;DPI1L^Pj}4xFJl3CnG#B8FZ z??(}nB_9gEc5+shajM}eJ>1FO@nr4krfjO8d9?2Spv_0ccV`JNC>nw!WJyB~2SuKN$p3`@UQPi>z&lZsZK!rdd%O-etFKJLt;>U^X3redS_L(d73 zZ63EN8{N!rC1d?+VgDKFx-SwpKvq~ZuX+?#&HocWMss4$i^rhLNp}AOKCUB1Zt60;>uOxP9O3YaDIF7UFf{>foLs$&OmD|LFC-WjH@-vHzIkEt$H@@ z(P6EgH~AOPWE^aZxX;Rg+y7u2J8(O|-nNezNYUHmIdNXr#Mkd7rTzJN6cgn4}4_p^=8dR`Iwjo?+>T}uDM7r&xZCD^ZFuld0_3=Oug|F=y)yd zwt2obfKIOeX0Z3Un04gPPVsC#m!6__mEgdSt}T7hzpH=GaMr%OSTvOuNjAs4xKCHz z=DB#lcd$;&hQV6-)@t???dMQ4Ssx5`OxSsuR}vEDV9zO zjV^WCIdFIb+WYxi*o~ul^1Gp*%4x*ybCqjK-WPW>Iy}Gp3-|(<%kn=&H>)O_e_L^H z7xk!feq4+kmENGc%Tn1F3SX(~h~|r@%y?`Ecd*3EtbP4{(iO;tHNfdGXE>j<>At~! zzrmJqv2@!>-qUO3GOePGWt*I2^7De>`_4$PnN3UTPYp7%mIpiLcu@96dp|7L!Tv-|{c$oY@_0e|1zIoZm zGufom1h+Um#`5@BU?xA9vrdb)`{S)wvd;Cav-<2{K@+~2EeC-c^p(YY9bfS#=D+s* zpqckjpLnqu_x=dm&G-#>43hgOIphV-v3KSmBlFjigRc4hIxQMjJFl@}F}C7P?Fnzd z3x6j+?OAdTM0@0L z@bD1&tMG7i+}p~diS4&^R_&nqD;mpZ-+6dEoNtI5D^@q`gTuGUy~5Y^&%&aTe*8(F z9UfQ2%`sNyI`DA%{#U?cVcdAJFi{?j2^VsRhNh2W=MeSL2l*YJhd!ohegpC%V(7!} z_g?`EZ`@e%um~M9=53fZm-xf7wfghGLNkkw5how2P4VYwv*0te(b~kT%M*j)3UUF4 z!>euht{lA}-q!8!uP9tGdU*XkJgokT!xf3c>+grd>Tf}~V%+fhyJLv{j+Nsfc!tOU z8V)?KjO#y^-j3aW5&gS{)&J7Z)jzqjGu^}Lf8OWne*yh_hSmS{A^MkWGUecmW96Y7 zo4>4fpPetQcAuR$t#+S}KSS&zpJhLN6(9HUc+~2%C~S-z9v?h4>^_UbhHrR%J~He+ z7le(m!|U^hL-ctpeyRe#Md%PEGls{rwQ*w%hi9!ZiWp;fe0%xl9;28shR3_-eeN+9 zFvjrsclHoth<`)aCen|6==J{3!N+EMY?^nq0_3;6x3#yWY3vHI*WWJGCArRBf)C+$=DLj3puA2TV`~5A zd>&qW9$xYo?*EuNF>zyPUDT55EvE*9J&7>JP~^aO7Dn{hwDfB zl$cGd?=Y4xg(H)XY#g<}7wy9lxmYHS0^rD1S-Ep_3|vHe&Rlol*ZjP6{;EB#8pWY|XPY_nm5N>LgB3M=eV|pGrFqzoq`V-^W~WVRY%1{Vuca zk7Q)(vKxA0b0Wk)#5T4owvmbNRQEsa`Xsu;&mCFRGB)p^Rt>?DX!LP^HnmQp(K)t1 z*{oToIdy`+E&E)n_H&-x@wqMsM#_t5=B{St!8l`dtnln8@>u>_#eWu1vtv57_wdE< zpvD_#k~1RYl$yCN%2QNK^%qZSJ+82W%YrN?2i@{7Rjg4=Ej4mAcX*TkpuDLU3^T@F zH~$mha+qi0g_N%ZcRG35nrFka`0tVB3&|0zbfqMemIloHz*6!_bk?ejy0x>Y8(caz zv5D9=cVMSfD>pDUmreD|cQf|{?&YoK4%4#A>Yg(CEF+f=|MaR3VmE=Y!GgeujJ(GG zhpgi~RRFqH4L`?MzMpl@!be?~*ppw$dJS?~8fJ2)jkxC1j2C;ZM6o~e^7fSATagdj zfzdZ@80lQiY@Nrn_crY*jttiOF79*`+`k3P>*hu0=zZs1C$~TLef7Vc7?0mm*E-kZ zHP2BsJY<~aJnhlg6S%7dbxn$O!$o!yV}2kEEa z^Y-&iyC3oVbJUY^__lXwEt_rNlN8ROII*Hwy{=?! z`A+REUF7$RPn364nnQjGcTSf=L)2c{Sc?3h-gJ}NcjHUfnHGzlG9uaV6#LiqoPR&D zFTUk(v-YniS(B5~bJ4%mhTFMcN_udB^-#+{GeAxW>r0@H|IOLtvN-kkMVoVZ=lAS6 zeS6U^YAl^t)SE>ekv8r+Fza-1pMc-xzbE0&;?)Vjo%Rv-?XC3Ncmnu`CRBrH7BrCyZ3cV^O#${J;@1Uby)*Lzz?Xe)mGZRx z;4XB9QPA)j&s@~RNjF+AT3P7izxCA+aOCnW#6d0D>_x8CEiPJ$d_EL?d>L?vuW#~Q z=HuY8lRSgi+T2^oFRG$8cOp47gVpA~a**2GTeTmOrxLJhb89ZzBb5WPpS3nvIk$@% zp32%Ox%`p2f2BqQiv)hxTnuzn3uYOSuLCpfiFy}!Y}dZu=H4>zlML?nB9~9G&@Q{r zF1t_lrE%9`yS>T!)K=dmBb=Jo`ksRv{3FkfRrmUL{PtPuUjHxei?$#CFDvI|!Ex3r z`g(;nnx8&vPU_XV#PH$Q8%acT~C5R`e4E9Bx8p3Qw@ zlZ~aTbH|1+K%Z?nsW_lB(oZpV`0`*uqt}?7=5n0|?2=lNjn)U;!Co_G0p8R7QuDE$ zI;QsI2a%bFfb-8sq5IxkyAfVHq#FG#D}n`~1Y`D2yPfVvQ!d6h@(MnNSC!8yURcR^ z@%Pj`hu+YSPpe%wcOCxn8%8+F9l#yTTluWnS>&;?{)ULHcSP)3G^xhY2N_p6gDc2m zQ$CA$+y##dR_L52?XM=+sBN+_XInD4Xw(kSd-sv|-$MQqYwiu*T-^HPRCk~i*oJv0 zKz_mOWx;?06RpvUPUyg8#W#b!g3X823^Ou&@+-IpS2cSYI*z`J#msBr-PeGL-X}kJ z&)M)B`F!SGU4J9bj&{u*={@;N-;d7u5#xt=KLtGf@SDMKt$m+*?EQ1<(}MA&$j^z> zN**frTkj4J#*-o&fbl-yTZf$9C-`zcr3XFPl9wZ1yoE73;C1DgDz=ZSk#l)YBJ-S(tq+E5eee$QUG2>b1z(j?r|VG`)uZ6>hK<;x8fYm@vg0#r}s<78NJfSH=zsNJBa>n$~X9& z`$2l++cfaLL+{;}gnE8NACArW3HgSCn{)?@e$q_4YWWk;@9W0Z*^|BJ;};mT&%ydq zKbn6mk3G*Ch0mwssH;rf3UYpwt0YuBZGU8kCJtFrdu|fqtEp3wVV+E zR$r$Urtv^@jtP@(-J8cpU7maY-fOF1x zp8A0$-^w=^oJx`(ZaH)Psb|@i?|^4&Pd0GTdb6z)_+o{ChdCeOka~$jn)GDEln2{% zHqvI0bBw%2OG2Du<`{_s{SD7GH_4N_>$x91^YVL$uF6k3CG>5zO*z#QZ~GRxBz4D| z-~4aoV~~G|WEcmJ9Nz{<9u)kX^>D_i81{w9_XT6)Dk9*M1EVqY`xW{b$7lC@mOq#2 ztKS+aRi2kvxoM>SoVNCWFVkt~kK`FO9y#^(j~;s|XQuq4)n)^}mWmbBx$N9!|I7sW zUZ)QFUeDt!>k|)(PjdOUth>;|&~&Sga=Uv&bD+f^L5ri?Y4i?n=SC$pr3wLO*wT5CAn!4Kg(IRM1t4PVEhoH@r^LsNEmcB-jgNy9FwefQ%@)?Slr z!hSXHkceIrhi}wAa_S3qk|kBY`xJAVe9#?v?E3A*-Zb8{g;*;yccFt%(J{pE{YxKZ zeam;c=Z+?B_)XeBku5Ogx=66{i9lF)ods!--{eW=%8Kpc5Lr6&#oW4n*_5!U5r|&eFRX zUomT>@5}if+S~HqO$|Lo|9Tg&*U^D#5phm}>%!!FO`rB+;Mz~jQ{M=CQ@-qfJz(uk zC-%g+XY{crD;bMoPg0=24h{)_Bm-;ino|liSYu3w_O`i=JNn=;cF_L}S5rno!o7oW zh>p*!;vcSIf62!lTD-K_Yb?n})>}@DQGI_A+_|+(`%$aZfS0ltsow}d+CCpVcRr9sz=nyS)@_IS6Oz}OYZiRK$8Jt7k z_|Vq&p)fG-KN<`9Qzj;_)g|1nkAf+U0yQeB9~{~O!S&H3j&?b z!9V39Q%c8KgN}1CI?nazIJa_#igcXK$dNT)4t$Ue?u&1F&oDN}X9reR$ED|SpL@8H z{Mf0?eLU~hQr6FXLpwa=WC&`1bKQk6JAkkB&Q9Kt0(_R^u;mFJx<}oCS&`O7FykDkpk6=iX?>8h zO}+4Kz-+OP`?7%9^T2G8;0MgeJ-GAs3FDjp1(>~M!|ZwB@K6-Y-Untgf!P6fdR{Rw ztFm&6@0tqCLX<55W+nJ+=a?`X-)xM*hYNb6d|Y0O-XwbQrH?)%V|BEGK_9UNjxV-g zAeaaSO~63sY+(H-<~bV;$7sE<<}2A(FmZ4wn>eCk^gYpdBwhJp@Cf7JIui~y9+~j5 z@n}7GWWr~}H?dV%#&zf_27JIIY1#Y6@_eAF@vEz87^VUW0zi1zRC(p#Y(EdMjPQ8I#E?<7h ztQv>-p4f2=*9lnX+uPVS@>&k(Irtkr9!s}6q-S^L@O$c*eQ-|y%3dQcG%{xlHkPLY z;W@5AcrE!Eq<0Mpj^tj*#wWstnQ7aS%(jO0zlPYga@k}k<0U^sKYLDjKAiI{c28;y zDYV~Y=NB%j{lv^K+(ZuHZpG!3Us!ZVXH@6UkZZ{=tarknt5dkM=@xhEZa&(NdbWf3 z*q${OZ?=IvyC$EOP2OGF(ElEH*}!z{O}X^Bh+OVct#!*I0SWb^n9C z{)tVT4LVDdr(81qmw$!ciM#>un-6E-n``QJYOv`Fe{_G&>#WOY&XQ%|gA+FhV^twxeTao7iw|#O#+m5-WITI)R8F=%-;9e z_VFFWIF6j_#oGIR_P&!lNB6W8lLx_B>#s(y^%*nS*J+`eQ4Mn-p<*eJ1gJe+=K@)^~E=kpFsNJ(Vm|vg3)z{ zkHJ&t+=|9iojERhoYIpt5jQUx#D{JR3+G`MIoKFFV)CvE%~}b$3mJcwz9EPiH1~*SPra_`ytPeLu(9 ztXNsa&T9P~-oVl2EM$CVQ|`c@&~;w&$siBm=(eKguC;M^;DyQe56YnnzeR4UD=qk` z-bnjfb;SoA27b!Rr99ozH*7`E{%l6U1zJ-V_}d+SzbT{09w{BuS&Z#`@T8nPhNIz$ z+J4FTgpB>gC_V9z-&aQH;w0&GGD40{hZy?O6c6jE9R1{H@YAn(zq|1OdCS^A@R7>_ z+pu{zc{}tOeKvAj!HObJ`n*))t0zHs8m4hJv0kx!<@22P&b|~cy@IhxE*8$b<@O!W zyrr9b3!d*8%66c~gzq)wK|ODpW`vKYw{g~_Z4o|9HvDwXZpCLyvU?Hz)e~d7@?a!Q z{ypdi9+7U&kB&h(_~XwD1an-|lEB3z&f3})b=Bj7RsUp!t3DYM)Hyf5eeKdWbL)atyw@{*SN||Bxa$6K!D`CIQ>KpJ^V`=A zmD@kYe5dxzdc=lv$3$-B8pDkL7X1?b*8kL!Q)MTcLta6_(ZqM?v-gHO2lTuDp7I~( zyK?p`$5+ z4S5V`PyIJ)P2E;r1MIs?{OAGnE}wHSdcS>-G3fbjaDCvM!+96k^q^`Tb|;_XH!>t2 zX+P!R$E3VolBbHH303R|_|Jhm*MY0#3&FOQSIK<5=b<~QCU{%Vrw0)$YNoIT{H zzy4qUOf&o`y`Jl~Xf{89FM;uqzf^`hxt>Aj(PfV;E9J>-;IMgP6P zsF1psk)svd2^riaCi|$KOShtZi;jBN&pV;p?0@Ym?TuC7VmmhJ%4&;tW{x@Ij*7F5 z($!|0Q*8S}M(7#*lUGwWT0d2e4OVtl=iFLO8(+d-^UJFOVd)^wd}7GXbb;djrx*w8 zlVj?z_ugillh_O3Wl|Y>?grLPu=Tp8oZm6sSgEnatqiPm=IQh&UB?*aq_Z-MnESS6 zF4IRsKDgVH?&HkT+$}pq9ryI=K3*?&>ZXq(o48w{vkadC@r&?^;WC%&fb@pw3p@AY zdlj80NBwSuCyH)Q_l70Y<`Mc33|Cwd2-jm*ZG%q4>JKF|S1`}L%+nKPU-=4tjUW6c z_hoqp@o@AopF%|GXUt)-U)W!LYyIX~#+%5vz0_=yGh0bBNgp?&JKvj>?; zH0v4KQQw8=o<2=`b?os<*0z%Ut$C`gz37RRlSg`7>G?#%Jp5Na8qu;9KfJ=)-_ZOL zo=3Ogl#y;-_3PLNzo!kgqjgkWt)=>T8s6iAnEGb_z;O=GwfD@k=)IYPdXcYT>k{p7 z+FoI|eGlKN>ju`!$ELdKQ~qJ%51jHUr}>!u^IX2oW*=WWcd(BSf$g>QBb%wluez$I z_OyPnwEtY%an?m^D}HN$HZEdq`pw@Np-jdmy;f|ll9$0Jr>?W6pP`=esEFRHP8EAI zwq7)?ui$+)b%ftKAENMk5C^0CarQ|Hb+nh%$H~uJ?8lVvgO5-?%r1BSM&)V?o^GUk z{bqNo&X4VOzP1;}vj3q)(svrZz~MctXOs9#Y%>k|eSv()JvDxQEAMwx26S=BjOMh8 zz~GtEXY+!6=zq4_V{EdXnX=!pwopsPe+#|Yb;~aa-U$zUucf0j&)rzQUU)3KlX!ED zLA<%}!lDIMTWf4T8pk%oAWYW)0{u3mN>XD*G zX5Po>`8f73{1p>*-(N0!t2lc{Ms-%bsmneSUsR2;f-!hkT7G5n5p?D*IazBpgL=>G z9m-s>{+;*Ex1TMEv+b}cj*T#)T?ds1DnO}v)&roAqe@L7(GcEqutynM9uWb-p= zOVPBJ|J-lc#3e_nAK_bcZod}V?0VBRN3x6fJ^7iGBU6jl(>%qSI<~#SXuYamawQS{4{O;#3$ zMJJ1h6LDy!_aJ$+|1oZ!v#&bf)tui?lGFC_(}woZNN`yMT#Q|=Inr%Nev|y{O86ug zXWR6|>x&P16+bY+PBz=fi2U_EBl6d!%v-wLuHU*!M}srJf=@Ho2|RJm?1k(>hc`!# z9q~Sxe>Lk3|-l}L@(G2F3W8wdZb9sQVIeOH6?3I!7 zw@;vrlqj43@$53Sv?Y9trV-IPm<_a(fPHW=J^^j6nbq0)kNx2`=+AA$T0O+OhYVxh zc=XQe(Gk6m9m3hqmaoJ8!ON!91;>#~YCG`*!WC!iTDOtLPJ4rAbFtPT9GUm!_akZ8 zH4-QI#oJD(>4We33wXI6J(T`e(bnzgMQeN$nrkk$a=Pif07rhLSgHYXJ1+XiTl3c4 zX9VLH7@dN>33Kk6i!B#~A9l`|p}jGre|i8vovcoaW@vA`vCY`IZ4I~u?Wkw1T^{Q^ z6OEWmS@{*L2RFLo?+d;#sV*38lT#Tdx7LU3IqBF%M@BQ(ils8;X4cZiWz&Y&9e;69e!T%`SajW-k0WN?zK@1z z)@t-{4$bSbmltET#GM8=`6l@4E>A7@0L-n#e-(~ zp}QDPM)y`yeh#o6Y3(>8f25q`$^F82WIh|FU-{vw0r?ty<{Rh~ zULR}uq$~bF`3k#;LDxB?Y8>Dw*8YV;1AHL<$) zRpiZ<{z^I`@u}Lw>ibl9)j9M%nzJfM`R_g+Heu+{6Vc098Bya9?rAKZ@4Ai|i_VPO z9&-)SHpgZ%k@h!_KlVJ;!S;pkNZfa zs}18DW$O->__{Ne60qSD3u5&gfzBchX8`i;kp*2C}y=tpYH&pnFV;rL_< z50G6<-_9xUQI<|=E8|x_U3@zamZQ57UWvC@Io_Cq{0WbY{u(=5pX3_Gy@42{KI9lb zWA@LQ-D1Aiv%Aq>#T#?Cqd%+z4i&^#Z9{)p#Qn>XhxR}pin0PLJA7I5Za_v5EWe0+ zAY1n$?&WJwHe-^&-^n!<(C!;J*PfbTv^?-wU2rQf)ZS>adDJG8N4+m79>ApM%zN%1 zi04ck$a@NU-b&op0`5K{<_^7kN^Z~nmzZ+=sqK}FP!lk9WU;<&R!-KwZ6ob1=~Gif z_fp>Bsf3HxnQ&s==~t;EU5FDW7mer9e2?%^{?-;6&Juwlev6pWOsLf890L;qx3{$Y?%Kw8_yWX#bkJ z1jC)nSw6S&-oUqg-Pz6g-TniTsnKQbGVglzOdBX_oHlSGKC>*#sC^*4XqEPcct`!u zrj0D)*6+)fljXYQ`#$3<-}j<}RqR(0Id<17&#upymE|wIUg0_}YXzaaG`m^wJ@@T0O*JinHh4`N`}(nbaKjhu>U0nfA} z>OZ=U`~d`y{lKM&Jd>~A90}e@yg?IwB0g7It`E30x$8T<-E*5WyK@fg0l#DeYP#PD zevvp)r*EATBf&cp*}FHsXjK>W+-+Icq^KS5AGlfemkc-=Oy7zh4vJe^HJtcPidkzB*w((r;z~i#l-U z%*jQoy3teU_a63Dz;)~QmHR+zt#x*BH?Awr`%k*h@p7mMG`Y3O6{C)l>%er$9 zNEe44KG*B2z`pypU1cugV4QTTJTDsMnqA78Ws_S*YbO0#7O<8-4)7n(MuBdp4;^Ih!Y#X#qgB53xqQTf_QQ8(Pl!7$ z``N6|W|!7oo!!xUm7BfdX0NDi54h?9PqWV0a8=-p<^OcD{S!U64rr!ujeWWWJlNuY zFOnxewgU$urMbSIjG`ZSrxev$cb5$D{8pY5M@L}#bgVq%4(Md57yXm!7cp=AK)3YV zf9g7A^X@2c{ETM&Th2NHV3b+Xppn`G|2kJx+VStlNs z_oBXCP7Jqr3c;q2u{dXNbbEVguXpN++mkOX^AO)((+mFxd=pOw(?QsrpzrOXBN?aE zw+TbL?uP~=lB~%!_0tRvS2o(TNWNWIOXV+qhWTuasR*`cm0A-H}0=6 zZuZE@#%;pe9yjnl@wi3j-}Mg3&f=NHr`5Z=E-t^Z{^H8&g3ih~W0Mn)q1ajOm2A)L z+Ebs~yVwm*I5+xbZcC%)w&Yaj7E33b^$<;biSf2i7?NKc+>NG(qP2axoz9v#{W*KZ+0)Uq><(yl{l`bQ>!`u`Q{mce+4!B>SEX@zTyYBR*Dgh~y9b7H=7Vmk@7Be953(;qaW&o!ETl z!?MYsvop^}*<_>l(zW1j;7DZ7vy?Y^O!1Z1wPi%tRlXlSg|Nj4eKGW^_d@XuD z-~5#G`ThU<`TPZcHm%P^(eq(kpK5*n_5b~RerC@{eD5H>F|OG8=uCQXtix;Qp5wBC z4DRPkLl=J`bUZTMy7LYH=hELJSC@HGY7~DI@Z2)3LAn(1_)uC~#@47@587ku$MnaV zVbvF3uC@Z`M;;r)KJwi9{Ra0f(-ae0H_n*lLeA)0m6;?xw&cj78G)6l+1_PE+b!L2 zkz;p(_Z!k>WWd8u2?ZEWh@65_`*jR?aT9Inx~ft>0HHh29AU z8Xt2zpt(%ueI0j0N@o?IJ)Mo(&laz090KJlAxmtyUvcGJ)Rz`m;L7K*-ulS+%smJoYT)fa8}P^adbUAg_9&c~WaMM$uD1VXeD2xL?7OXJvK{Z0Mf61PCD(hWpueZv_!u;i7 z_+hPc5#=2`m<#QeK0k1a)$ghFH=p{k{W$HN`}VQ0I+yaJ#j8`MMRty-(d?^XwCGdR zkHwo4(xRwyZM3xLPygG-G4!9#*%&>~XT`mI8d|iGIfx#NmKL>9@2wcv z{eMM^>OV!_!)Vc`fNv~LjfNJLep);^2`!p*&**8W_vN`6xeHyb^CKK71uUL*m6v9!asUHvcYvmN##<;$AI!o))^A{0e>89?&b#Ib!0{H)SOW1=_;Ng)-S;`um*ZbIM;?K*WJ1ens-ldJ}(f`Ddjria*!6Yp;f#`|Ma8;t4paVN@x zY-6V%U3R|9W#;FY*y|DK+o`Ta6|ily%XiqkT*rvK zoHhQN{u|cfuYa=Svtw}Bmbb;{3$H90(~@iDccmED=dslXjDdMQZ$;ANJ631&B`3$b zDWT7d67Qx{J`y9#pDNyIPbv@uTPv9#D-N?U#PON;pUlZcVWKeML5)AEpE zOuU^tjUU3dxgMN-jrV7QGdcLL&Ea=WTp&;JF9pIS{M+s%uXyHM{O$Ok`5Vi(kNYFS z-i83zCL{k-M>(%@_?G?I7hk`0Jl|FL@%i!N^Pg83jvqsAa_-mA-8#q?2X&sS-5&gI zg49#2mhxQ5CbAGbKaox3jg6u$Da30kR@jQyJe!=$#yE0`9ml_ZL>d+)=dCo?fAS!W z%GACY=g=-aw`2>^F1Gm61+R>re$8Zkzd(MX(eSq4W3J*KPW3!#q5P+%UCKKx8g;hY z@*PV6=N(!#(%l+bODlIs${;P-5k*Us8=@FmQUWb08{uvZ>2(cw{(hISIr^@Qa$=?1 z0|R;TJI&&KA9oW(zn7fwhu^V2`2%^1Z;?N|!yopXZ4ApNCwrM=XL07@*3dGtpYH~u-+KygU1_MT|_QuJ87#7+BkW z?fp?OkuRGuNpa;WpB}2(5P7U9%~+y*0{D-acTzaxmV7mIH-#0uoW*!FHm8i}g~oX| z>vFtt-e!+;J^GjzCVet2UL|_W?=pVnk-Hq)tGE?&-<=jP<7d^6xd!pa#_e*R4f2mm zSOaHlbK(c))%3>RF*>tBIeRx+pse`KPY(SaEFX= z;CL{UABMGWCY$-L@BRUM2LFsxTMNr?FBaayi9}#+jI(Gbv~^bn^AzkVq082qJ2;|! zGlV0D*dOvC=>?a%#x`^~aL{Gd~z{SH1W`F0{*<&%Ee0d3H(kGkBz4=z`+3 zTxOh>ollrO9m~JmhOWzzaXRoFRXzfMa>E58h{%N;?@`LZ;$IKXHcrXK> zCGlVzzs03#xZjl<`B1+Oa6xhSNyu%J>)=HS+gYw z{ue1fXQI(Ej4ye|%3B4WI+)W;x#iZvlT@yPH<(Ob1^RW}UKn=Q7Me1G2OJaq7{f_MpMuM_S zDppwk^-k-jye}H7o~sRWy~#QC8t+vupZqC0=M_V@0$5L;VuUkh=#DrqvZ|3%!8mg2 zwLgrx_sk=gntRfLLSUh?>hEJ{sGjMrlf7fDb7DF2=^k+67?=P%!C^-z@|gCT+VFbd zWmvbIm2U2kxN(3O+E;{+l3Bga@aEtU+l5uF&;x)QXDZ89%8=T@T{)T-{Duh9oC&F-VWoRkDHMu6{^?H(_k@B~M=VDA*=MBYARj^;QuCMc4 zbm2&X(Mf_3a9nldA59Jx-hYYr@6g7(wDD(nuRoGcNoS^bPm9M&4IN#5IrF-V`CZC9 z7c$>MU{ere{w;!!bQB}CzYo66;@^ha|5a4`CJzpdNY}JMv{v%B?9jGtdN3vsTXT85 z@Z5^AxtewU18bo@CB7kcPd!hYR(VS&wUF{3Quh#eshoa-!GB(d&l5h)&)WYTm`r)f zXzk)z75&A^ww$w@qT#1|VVt`L-ev#%8M7%H!$`9>o{--JX+{#34=QyQ7;;AqGR|z!Osrc>grnCXPgifB*1m7xQwnHw@r{oM8kO~b|{8p#KgGp5zO2D*$~8E3uIbI}Yh?PU6m+PKMAuId6Gyi<+jzE2|a_7a2F z&HUFCxm(-D25P#1jr!?DC!{mR1>G>|B>y!YJ}oZFBe=F^zDArrZDqb}>E@hw6ZCG2 zQR_wL5jU}DRWG^@(JRTaI$Pk&mL6SQ$Qo*YkXM8KaiaBAj&qY17@U7&9#}ew81&uS zE^Zk>Zb<)~r)2@{T~Pmk+4h~-t9zlJ_~^DU4|3iF76i{WmgGO~s_g+j@sY^HgqkW- z#t6Xkc;Qhqe+j<>d^3aa6-mIxYqUrKJX~##oeCdFoufC&^Id>wH=L1j073EW} z8#wvKP=>a2PI*}y_5Vk3_b%7`dB|iYoO6J)aIuy89r8JGrPXvXuC1SVYMWT6o|3!f z6OWOEU+W2hMd5GnsT0hp1S0bF>yrr?kf$<&)>}az$Ft81%Lha2`7P{ zesi~8zThuMFls6SUj@t-dLp#b{ z?Tn$|B<&c)8hx;U^&|f0nsN0>%4hu1b-#p;4bkksb7qMz5P#6i_cxchTcwY2_=E?) z$63JMXPwMv@W!q6$tF-Q-+@c!KsT8v*7nD-P{%x4{+wS1cRe3Q>N_&mtx z0X~g<*6?Y#$f);jGy?S(OONLpV|0o?c#+@n6O0A9-H9zT7Zire#~9%R!w6?BaEEsg z_nSoyE~CM-(P*Hq*{Awu3|H1)T=ixke1Nf4O>hrXyD|p|uMkN2IXoXPrY~#@!O|A!+m+= zsqY|9y>f-%Z)@^LmOXCdoR;@s1L7>(^%i*G%LxQ?8CNlS!OVM&U}yx~I0SAuYuC$f zV-PpQZ>EMmd5ZRkanbppadFP>k_`(U)XX<3c`Frs5pF4m#_%zYoIm3##)y9AU~h8U zjW&KI#lkGI(7kh@Yz%zWSa5k9{D(Jq)Z->^${5bwA)Z|Q7IF5PvXP6s78}nPC<>4d z4F7}#=!qFMf4~(XyAhZa^2y z*%M}6UdjI2`K(KNC_N4S6BuMsM=|kLi!a?0M|?-VE3Re{x(N04b|JZEi2ck;^){RF zo`$jUEnss18o7@4OUN@@a>LyNi_pPy4@}}BVpAri7@c*;l==FwGC8!D48El%8l4@D zUzBY0qiESkwDsufBH(oeaJwA7^fK-sa+|zN^t@`0nO91v2s?=8wI3X*_?)p*w872Y zezW1Xq3v_@ZXfUZ3Im;*@2~moSxS!WvR}}bi$38GS9^j-w@XJD2mV?zlkQ0rpCsI> zqP#_Sgj;E$Tfr^%-kcuVG}jCK-VOYAWaw^Q!(6A`Ys@=W&2_>bVOQqM9`k-ya}NQ> zZ0?5eBWwHZe67^0y`A&pr{u}+LH^YJDMjSTzh;S@C!ap#*ASg2zYJX2PaW+!*}Q}g zDwD*w_U_Zzv3|-uGP032Qa_rvrX2i|QTrZiTQ1yT&uD+7P)E3}_u{jUu3iX?3V~Gt z>+*t0LyxZB3QmhBb90BBE0o>J{R599`>szi^#~sNij|pfqaOnrdjuT}YXZ;OZMK#5 zz|xW9%iv>Ot?qE<=f-rppW?gS9riry4vW9l^Bmgn+V4EPi?iQFJY$fNPeW!ro$*d& z+=+}oi8W4UjpJIhuEX}7Cu3mt{6M(wG%N3h=tTv*+-!8Hf2VAn@_=y`Xuq2Dz0tLC z54fVUS$CI;p8SzKBC_Z9Pa&r_eDsY6TrE3T#|{&&zEJK%Wh)Lu+Lo5N5)QOy8KpBf zl+9nfx@N`V2hV-7VS}-A{hqQF=QU)mShpv0#o7&JE7oEn zup@pvBM|=mVEbvq?%A!U%>Jj#<}X@Zy<+BrGoP%W{o82&y)~IDs%XE8_G`@c6KdLH z+J~1btvi8?+iuQBGH!Bc9qTB0|5fI%n9bMFsi@LaR z*D}^;DeJU^_4+*Pb~Up8RYBI#-2Z)72RhTCNt(0vS`Fvy6#AX~{=KiNU&)*O?kUYV zoRO;+8ZG&rDF*_`A4hoBgq&3gKk!kqc}}LhUA=nCo(`&ndJ8~FLSq&r+OE%UCO@d6bS8DBANe)k z_mMxO_ivHBbaP(m2kN1deeU#T?-=NgkNl3vMuLg_DD->^V|Al@blTev9ejg(dAiVl z+d7U!={T^fhYy@!d`B*Iw;mV2u)CZxej%qs7lK-0cPnyg*oO@$$h{!BaYiC}_Lh{fe(Qn1 zbgT5ac@q05m;I7pJg{pf_Y)*=Kf$?)SO&2!1z z+4$R_i`wK*5x?R!b8-90FI5aI{aNIYiA3hw=eL;`Pqd=^TZ|EZn!U^oIV(kNiT;*< zBXPv@`{?Qd==wJEjF;YeBz^Tq@DI}c>CEL!e%RrK`_c@PmvuAd<@EFK)5WKgyOgt7 z`!1R1()-KqB_3_x42zyy_FwDn>@V})4}ZTGJ-uuj(BjfPoChQECEB06pT)ibO&=_a zZ`<+8zC>A_6Y#MQNAt1SIzymAqUEtVY)5zfrK{bTU95SvOh>2h@t}(x$JyuQ4DDUd0Ws;xT#9XxMZ#P8rw-pZYfP#Dm{8W7f$xZ^<}1W3F@?we;GF zUTFUEr0bzO8e4h@oOwigSkcE{0wc%oqX0ff{HYhanBnTW7@6`%+1PPh+!NQ!oypzt z1woy+((m?xyV8@XP2rmK`fBqle4oST&)CDwJa52$A#lra93R(HyQz+vStOAT#?clNzgu%HSY zM$Z_YiyRq5KaojpO<%#yCco_~n1(;1QM;J)(^X;YRGWgyHMA@JtoC3u?7GGVHuiqg z*eD!kjbF(Q9o zf3hLQo}ClmL$-?7w^xyyTF@>M>2XG zeUD)b*v?iXr*C&5|5-90Huzat=q$^;#;oo{$yb)#?(FS-?7g?Kvz^77KYhD+f9p<% zEcD%`T+eguk%+xNtT}Vv6!Q`P=j@Yll$**v5&aV$M40D7a6A^K&%;MqFcI&a7J3et z$Uh;r+|YhX2|Z02XT0gym;(5wG(8ePzE5A)fn4lMM2`;-8Rsut)sT)I5SnZ8#TNY% zPCrIH(Yf~V19|vvY*u|A^>e9PM&0G$hT14d16EQ0_uv!cy>IfeOueH_>sJEd?{KHV zTgX@q=#LxLc$~ds()X*gp<`nwm^su8Xiy~62=Cixw7mU{wZ{ZM?X%x~4?PrjE;#e> zO=b=gj9Ee8zSe!|g0)G;+_nD}=-feUU1ln_1D^Ll!<3s|^s6EMs#B(4|N5KJ(XY#a zcV8wl`vhatBy^w7IdY;kT0or*qOpCmO?X^_-B9-J-OSbE5hZ_L0ghe{u3pAIxs*L( z=|y@tzkMzECa@l5k^zv5{5Kg%z7}*iOQ4;c<)USeRs;83?onYKI&2=ggT49|XK6co z%F_KV4DMl_JCG@*ZEXT6F~!r@BKoSsH$u6+6589BF1pE>oj`v+ zSKI>4cRBPl7a9+bmY55T*FD#I?qQF{((>CFk8pYb9;NB3!Ub9{U{Tt{IyP}N@{FB#|Z%iXQ5e165}w|t)DvxU!t zd{*&!j?b6)+|DPOfBTBZn`he7-UjCIUq3WHm#1;Ex07U>mEVGC+Z7Ls965*l&+FV% z&(FQs=oFuc49!{(l{e2{$`(;Jg)-56)Q{;K7`>AH`~(wUevB>D;p;xqxiyTh zJ*??B>@jIP^07XZ@u=*H#u7b_hoiwwH6J{8!KRn^|-12iiYYXL}OAikyex>!+sQAsvCn7t7nl`X_jAnwZ4> zUFYXKY;@*)j=Jp6MeGfo4bokl!DkP;g4yulmFOw5ksH#H+f#2SfJd|V_XnR8FJa}T zHL%4=mUMW2ozMI5Er??*U;DnrN642!=X#EPuIEJY5%uPII+?R0BXkCE;Ib4`P7p6R zoi?hY`l{#LJ6>Pc(3f~k^(DR_wlDDo-?e2Bix=1ZS&A*06ngVfD_*|OZRdz}5AivB z&Np^yjN9PBKE#LA>#@psJyw~;tiN<6(ev0(xi^kPHVZ(h`NuX`DAY)PBJ z`PTT2i+UR$S}fn@$)Sr}I%5?dk8c#R>E8IRi}$z#8{3;N z+PJ~<-HTj2i*D;PwAFVGch2Iw)H@CP0J2j&egOLujBp5?$*sznfA|aJxA)-5#+lv+ zZuQSB2$qopxpyi$BFbZ1YB@mpqALIVKFVqzG=rlVtWVB4=zM0PKU=wKi)&>S_gNS% zH?$e8H?j_WU#O>D?|}pCnQ(G_XS>I}Q@)vJFeZaLhxPwY`PeVPE8%d3$7tjaPcz|B1G>enIB66 zShRiFcw?qF5Lg)s0(LTzA^C!|48l+@+#xu*xuY?i^+*dn$avbv-Mg`Otg*4(^X5gp z@yLNT%;RjB``GUz!6SffPq2QO^Xj2~SIa{yPpBSm2(z~ zM|j62e^hsf7@)+=%Zyrd!pMP^d?>w$ziLd&I>lJ5tX!cOi-0S0_np)6g*e-ynf2M^ zPL>@H8dx2V9v7REXy#kfkcoIF9iL>xL(s>MW*9AZWm~-Wc=~nP$Rb`Sx{dud-L>Sp z)X)TS!T*f%&ROQzqrSwQ2aZmsYqBMiT6HY{MDDmS{q7`JFNcm)qI+M9Y@mIy7TG|$ z5$OZCvue=S_q2BO0mLTsdfIOMzQ(vWu%K_U;s7KsTDGveHXvtCGUk5Ad7nP~{dtTx zkZR2Rmfr6VENCKc{yp2I(~x~6HI(xVXB4ugbeRqe>WM{)hCwwp6v0vb&Zhh-+KPs| zF?)D<=d8j%Y+34kkCtq8yKCLdS^Q*Gu615z!?##?pAu@Ny^dQZpYOaAovmgab(Ud! zGS9M(`^PN{-hbLM*tr0qWs+9uz1lfcL?5d4>%{haf6rDj5$a1#{N<1nV-iQVBY_z z7zqovtT+!3@DAX|*TMY;K5#|8lj!wIUt~X&gvYcrvmX{$Rn4#Qjc+bzKR9!1pE-OS zC9I+R5ZHG=%8onD97mmH7fu?-IHGZ?^jV`-{@c;d&R`rVJo8>-EXh0%A9>`)==V?k zz-S%M`@#PG!~4&*acIN3LQ^M-o#Zji-Mcb9sRP?j*BPeYK+@YW{XWN7BxhB=3+|gS zFhjWSrBBJb7;i;N zgKqTm@J!w8MfuoDw|VGKkmlD=tAHoQJQ+lHB{QA9{~YCim#|ua?}z zd+y*#P38SfpC5XUUuN#n&%au7G4HukHWl4Y?!`qz@5$MRpY4*|qeZV4Pc1IVcLhF3 zbv>FP8CrAGzTSqOEP7wpqr0n)*}Jb#Fy<()km%mO-tSrV1~l9I&A>q4>FkN+Lwn)} z7rI+N9?QKL*nBp}8+S+s>tQ{-z^~`3oM!AhozDJlAE6(7%xmQnHmnZo<7NC#z4DRj zaR+!iIOj_ZAG^RpEg3h>j&%g0-s~*C1FQK<~z2(@}YY0S;y2P?xUQ& ze{8+V!FuH*)sx-{*dJT(YeV(m$zuDnptJ5BqI7&!*e^bOZm(_+P_+y;nWaO8w5}oyY!N!0&4) zx080Xzq|Rrg#Yc-bNafH|H74S@+JMd-JkT(70{^5c_-cHWl`k|R3030{WVhh^QbXj zsOR8->u=zz-A(~*%;ov7qw3F6Io7;^a@aEm$1zjSS<{AtkS|827_ws)& zZAvctpJ+SQzb~54-^=`u#}6w9=xF%i-%6I!z{uR~*g<~t4|wG5 zZfuWZk!Qvs*Laa{eCRT;KQ_A2WuQO&d|+kOy`E*zyhQKkjg{VWp?@xSg7;ivvE}P( z>MYP}d=?q$o33E4;cnjZoI6+({GYrM`{U|#y5xyZgRD_+% z@k5f2kb`U7-?eEVKhXIRHpLbA|4*i_;wH!!o0#dDT+<~U@XeK5GJiwP7-)PKIOIDM z`#OF+$LOljL;Mb3Af-Y^ZN7g zA$ECR+W$c$&s&h&EW7<$boX=ayZ_a46HY0ii|VjLp~H}kOSEhwwh`&P56v*b@*UH< z>Yk-O)~e0ztyzQqu9tK80K8U!HIyvS%iO>BZTy(zqt6-}f0(mHeqotYC*C0+sQwEB zoon5`1mu>Qc6_$HH+hr#z%TiPs;z5nKVSJ;i0;>cTZQDIn>n8Oc)J#?XFkEnlV?A~ zU5HXM0Qo0sY?~mloBo3o^ zLfq_sr9a{44SYNMy9*lYv-f8fdUnae@rfh*<=hojFB{l=$1FRte^4{;PKHa-{Ys~K zC+pO-t9WH5JR>pycP^x#--O?GgX|2pPxq6LVWYvHThBF@2y1sHbt4`ZF;+wVvy!bv zi*sz*x{CH_=WmW|y_R-3$4x&J$FGz&O#O*TZ*mHPCEyeOJqIU%laB1{C0-~2zN@Yn zIUL?dZ4`hz=$0OSs9|i&#-ovm->RyaztMMEb31ZJCN?U?No7+;_AN^`@P>Lju$S{+ z^(%NMUvrD+OAh@5e9I!H!Nt4YDS^&6qTbDdx5vL=uJ90Fh^5wfo*XKqPJ1}AsT;lZ z%XU8*^s&SKJ@0v=RsP0Ry8{b2pXO*Bd9>ASKl9tqzWqa^^%r)XD}zQW^0_(YIU%F< zr~Izj6y1DzdC`_OOEmp@{A5bTj(lDJ#GQ$Aslg&uV3yVBe-|gHz_<2?!TS-TG z7W!`Zu{o7z6PtsK=snZ2YsmhxYC7;_-Zj4&+Y&@(ttL-~-xuF}FF27UxfLAlNRX`n z+b42b?=$dtUTpo;DZDHZp47GS*VCYx9;4H;r&~V4 z-+dzT*b(SY8+l0Dv5zZ;^>S#RrB9XqM7EO2p-UOVJFMBe=+h;`=5Hm|BDpOi|4EOT z)8%aXI9{EDdD5mIw{ckLw;*MKHUezT|V*LTa$o4Z5?|33tj7;P_COZ z?z`{Rrzp3Ya%V7)$N8=Ksh?M&ogXvSN_^X;zwd%K_nv0V;rFZxbW6j>qPs9ti8)OV zVc$)upntuW?S5ygmE%Y-XwaB=mx-Q9Ill;YS$Z$ev^H9UL)5P%S4SUrV~n^4cc!$g z)*4X8S%VzLU3G#rm_fUFtbucHdj+(#4LepNGFqi=Gpn?1W&_MY`Y-VW&OM@6p%+X8 zZx7)krn&KZ*9zK{{3-Z&+Z&e_k(<6R+35Uuxq)5*+XQ8;d&VY*u+{DQGUeYTE?9B9 zwcO1oUm=Y_cDvXy#Pk>_Mxj|{|)nHwZw_GV3WW%t=G^!;p6auHDjxJ79pl%CgW1OR@~09cV&xj6F$oaN3c2Df=iNU zY$IdPy8ygZEDm1)4$FtvfmbDP;Y_h$#+aSG@HVh|2Ut0Nyk`P4!TMBTwuklp`2Nh~ zeDVS+zGrAIE05vv7BiP?8T0RjcL2jH7tiS_wAx_U7* zYZ0`o1R7QhEi1w{fIrhhk9oG;iof@5d}3uJ@gw4kauiQ|JMoXm(_iPlFwyLnDW4K& zEa?FLlkg*box4=Uzi#F|@k$4?Bzv#AYXBd&PX9{cSjmYcU4=1AHos(Gm=bEDje7Kx z@+FCu1G+qAyVb`}c)yqaEngGyepVc@V&(qjpCf7cydNn}rVbkX9CDZ9^CahK4g(%f z?%g)+{ob&4CxxE;XX0gu#nRfTFP*VNu~=qI_|hMLVCkfVcUr6V6X2cJ>HurIo3l`B zm9G0s@nwl#D~G>`j$4r*>WT6vXkIngGPN$U)nmuay)j_4{0DS@b!2Qy(YMRyE4LPB zLn-I*#OfOB+|Zd(fQ_h-94rgDul&++fd!X6^VW)Q*yn)GzVyeHf0j65?5~1B=^%_O zJM?B?_H~rGo;%`PKFfzd^zLnF zLCQSK?k@i_`TPiPEMDKz*;_OqJv0p+C^_=y$R|eh$o3UlB3~iVY0;y4lO9_2;(>oE zW09|t@KR?>Drd_iXt3bm$Pq492Q3z4?5g7d%l%6O|6WYuW-<*_gmJ_@jKSu zkt{P3jv-$!l@F{7m|X(eHF%q&`MFx2Ns7tvno=$DU78{-;kf)`#t} zc5z0G)=7zM5A^gdro)D%9iBp3;9>BSY+X< z>BCFDtPRMrf=T7!J74v=dv{g+Ht>`9D<>}TXTSJ_AKf~B00;d)SbJk;abj(MDY6KiKTtjp-ZKU@BGjqKIv_ylJh%k6QL501kt-|eN>G7k7$&J6sG>~V-s zzmT!`!gszJ&sgGr6ZpwY#!`~~(i0_&1)6ZMDIzPZO59Xj2^dl(OdlXHne5zaHlRxbNLe9 zB5y>^ky)_%CJopoN+*|0C_vgD&8##G1p?*ra-tbgwy+^sxq12`al zS$Lfc{B@=Yzl#PeoG5;II8I1^7L6188{0Ah+&7$H8#EImib<{f5yEYzhXCwvbJaRb0#WA7+u~=uDM3b3#+XC-i~jT#+t*Y2i)J} zcFleb--);4jn2Ed*LNgZDZB4c*0OFA`b6eiJ`H=gWWq*+{76=Oj4!LuuNake&_v?H zzMYUB=sbWdJoDa(%U+UAi2f4d0^#a0@y+5t^N)CHE5Y-@=dO6{V%(!Q(daCgWh`J$ zDf;i!IWX?Qq#A!gg5EEhY^+pY`=NuX@2h`ussBu4c0BDTOswxL8I#alqq>wWrmTF@ zav8^dY*%JIXdHPmIx9I>RA2QcxUX5`sv&2C z)8~b=jT9$-SFu&{g9v(DFH!D5?>TK5PF${2M(ggqw=moXujQ&Q;a#vcprjkS1@$lc2YjRt% zQPo}H81^gPCuktv>Nse6lcXXjy_;AW^sc8)U<~$3c zXY*%|YuV4Z7ojh^t;MyZ?HcZSm9I9iSP#GYnX20cb!0QCGoJPr@vXSlX1>LrCO~J$ z>KogS__~BFOa4h9mbA__sk$3nz1uY@w*-F(WYB}U^IYvT;KNxCtmMPlh@S5|hw#m0 z9l+6WgLHs%CbcN`%v?{yS_7{!#9O+E-FNDLo%&kyOxL{XZ0uB4-0g|$e1$q@KR-$} z<)=b?Ri&#Gz3yndNpjn;802n~FSK~?=-dNN-T_BfEB$h`&Qw0c$J5m|@$Nlx1PRxV zeAR;-7>7J~Y%Yi+@P5)={R8|GuiA-Tag(Y4o_a?m<4qfbzUOqK_U*Jdzhb}|I5&=@ z8Jz>zs4L<1eb*G2`Tcax=X6_VO-^^_mQ`Q5JSczjpJ^YMxNODp>@)d8<+Yt0LY7`S z0bf|hKPU^l>}L#4`@cY!-j5#tWAqrWxhLkexijxr&c1s9yNT7N4?cnX8s}SjAxEDQ z0587a9>~-9yh|=@maanM>)&Sj6(#m_CZtsmgT?sFGCMD9POAt6opODY1D{NO_Zi~o zt-dUM#@pxsK00j54|BAptC)l8Jx!ly(caHzLUT{2E;=`74<7-hx|4ff@}>TF(gK~* zr~R4v|MXGoyi$x-KKcm**gk`f#HlA=Na-EkRDa|f{*b+Ym}lxwa*;jGVY(OLt>f?f z!gs8ACB;*0*ZOo>c$?E@;kxoKmeJO7zS#@Anyh)7eDWVOFJ!Hk=|}Q~^2e!d!TVom zSNqfXAL75-L5?xoQC&+HH<|NgcrJ~@w_b`qV&Py;jo0w6$fvH>r^kl7&g=?PFO&?O zIRh9>GVw*SOfxxAyFQNOMZ?IE8zt|&n;hu;)sYkHr=nrB+J;dhF?)j3Fc_g@e39Hh z+t^Er(>n51H~YxLJ~}pDOM6H@^4deKUkd~uzrG;&XkFkDorPQ7-U9{Z9=BvQ;eyAE z4cD1q>Xeo)!l%vQc@55P;t^`I`EJ6$DHB`6$Kbv6W$3n+X0jhQz=P;KP)^#6J%L~z zxfpux4?Kds;hhH7kC;gh^*S~>vR-V9K`Vd~S^=Do(dUdo$3-Qc%!>Yd5hA~zYW!i7fKi`65(#~SxSJ1qEH`3$E3 z|6caQVcG!y=d@Ax8GN>FTr_3B!;JrD^yk1*x+w=PE`C2Y3BEjP&nmX7f;?tVWpE~0 z`qacG^r_Z7M2FHt3prE1oo?maabVygb`0C>uK(cNxSP314}6_%7ttOt;dq)OXIgOl zqYV?$&pPQJ8IRznc0?Q0P9^PVUT)S?It@4L)5aQB@NMeDm4kr%a(>0CpA0r-=yI-ymEk-`ju|y zLwMsOthMw3LHf>#Dx-PyvPYuFBU$2I@*Ie77hE)V(JQUl_ z)}gKPw{!YeU-jH?_73||Wg@5^ICLC( zIwkZq#wR#wE;bCvhdsnMSaVTq%cRhkDO+|*^Ues}NLkJIP2gt9)~%QGX41;1SzuGUxzY2O1J-(WqprkUIiv&uBF7KM9$k z=UbO`dRJyH^ZJa$9qTSLZI16lZ~x;Pmvyd$_sC)18QFixxW4YbZ(HYFdg!cs%rknE za9(jB-yvS1M|C+vo&&Z%;I^OqWhJgDi^R*q1GY%c>0+&3da*EEL);0zADeDV4TNte z=gY>kUVLKX!TVnQOZDvo|CCCOl!82>`r_`^5GbiTQ6Oy}=kbcgTZ zoN2oMzE@q@mVfmAyDh%Oz$Zem(0N_V_l_TD&hOur*s}kE!tk|YjPQ%xS@F>Y?(n0? zYeDFK-rR^vQs>*?WV6FdoRXGE8KZ#~P*kt?S$wPjSe5TXu zJ9Als{nKfOyHcE-Y(du0&-v!R;p+pr-F9qlHyLFahipgdCXHQo06oFXFB8jqrQz?V z%>$m~Tt7Kd`s01gGZzFpt9cjiGCKRF2Rd^WNRMb?jZ+54*qL>d8{RC-!}za z3;qOqBHrMhtBr7zVI=i6B41GdT=a<0kU4t_X^a05=+;zd&2C`o%>U@>D;dvX#@W4WR8;?Itw06xuLywKf;Y}aOChTbOhvwHdymR>MxEQ?DVHNl2m-`1ec%jTkp2; z-2tqWw~Tzi;rNN*=5t1{ztLC_9NV=ZNG{!ZQv;9aeI9L_F_7CYZt>RKJwG!s^9}>} zNKfRQZ0w9M-s$w&;ZAGbOPlj5^X7ZUbS;=fedYVEB!~6s%(0xkCLP+|g+|Lh+I_wo z->B)v+&#z(g2{CHkSi`sXO+scXG|Kufn0OnnQF|b`y|eP zH#Dk={I-=zrrvkyU7s3=^krBae;bqAC;4z60BtM@M{pQWJV?`6?BA z2IiUN=S*$+kpG43S)K7Fen4;b@?UUMe&IbcEId883z{_9m@Bx-N5L$M4q5oA-$C@K z!YhBju>?GwwFbObe_G$&ls^RgwZ@s7;fZ-Cn?dGAboTt-pf%Ea>ibmxJY!Z7=bGB} zr;^VA{>-~!Ov~Qo8jI`=-q3lUb+=~WFX^=D{p7E^OgqXakzFqADOuyor_oPJX1A3a zL2c!L+vscN_CkL@jl2GK zxw)UMnC5cbGR=qmJ(o{bOUYs3r2lA)U$`{$DCZ}*nR&=HtAH~>JWFP=yLK^pPM?o` z=`(8g@>@QlhtTiLV@xTh8=LP3Mml@DR2N?yvyJz`JN&g}r}`}Z5!e{!N_T1bSR|Ww zV5CI(ZOFeuF*c>x!W`M&KBE(LMn8I^5p4U!6>N*gzKQR&IsQZB7U#?}<8V)}Uz*Q2 z4&7K7EXDs&yjb5-_PooxX#b6YPVu8oyCKegbnuBGyWOU<-To`>x+>!V7AjLj8TI{| z7kj~J_>h0*vY-#!T_t|DCCFN;e=+sU{hyxMvWVXr%iodL1LXg&K%bM-W$T!`EPYNP zFk^4*8XGfr1DWQ8bBEryao$HRwC8>ob5FJBj-0y~oa-gl>=MRMN?f@)-dtz^a00y;K;m9IMUW4t;O2u zZolTbg}G*7!^@(++H2w*NQD;5mql?weXMyuu#?SGey+gkN7?P!>=WgVw0J-D#_5pry*iJ1SCNhC{<%(f>3^kv-fJMFX zplWaRqb~!W_57gO>I|q2~`@40XTKc*4&|kOO`3DVSvtkuQKUIf3g6KOf9bGSe zqw;s`>$P+pk*~|&PkIi=4@vif4BowG=IzWO-?nsWrp^Ia7TNlVqGR+E(l6pG_%ON* z+t*LJ2+MDA#fZLsUjXip6SrW_^Z%ejB)6x=JXiBP7?~^h>D`VG;penRKa7;70oQb3 z|M)FNO9uB4K#LwWb4w-EUo0AnA6jB7@M)r+a!o5PLHV_3Lf_YdKM#QauCp$9vNxgY z;w;0eLFngFrZ`y+FmvC7}Q2s@F^0TaLDrknU34=!8v(nE9B zMIO6?a_0Mhh5yXEwUB3u1&Gb3E#10w^BoHJo;fA(8K2rU ze?4(@ZDU-sYF=;7*vk2Mz|)*jlDaN~bLXH7z5@M5;$3{CSDQ;6(e7txTl%{Se#>1YmkhK>Yt@XE+C?Khl1x zb1l3 z=S$YmS3h zAL!-mT#T;kyp^}Dxc$NNp4>ow>3`W%w&E&uT+gB73ZdhA4jmV{u4@d+0*@uR=(x(z zah3DGIw=rd$5}K|+Xi!2+kUfczu9(>wu|kygR~u@ZTQ%lJ;-+PiQ}7Z2QJ{_VE%@` zfuoX3OdK7L{0wgNVec4(De(Ef5#e6@ga{zg>_Czm;B( z+->dQHu$Yea|)4vV&iqi7hIn;HnYX8?C0s?3u67+%7sa&kUcKJvd2Bj_e9{k9D7_5 z_PEl9f#FFP!~3vxDbFZta&BZ^f9!^iJuYicO&6oT= zzx5PTg^UW{_9W%}oLU3GI|}ce`z`-TwFZ{3PlDlA@FD~Zi@;sg!PjT^H}PXV44Td5koP(@D{i*L$ zsnwgst*5$2Cm~X7Y zF1pG;JGcs1C;6cP3Hi{=j6iAORmgAajJ5#l@?(pH?$y@5 zO2r8t#MVqb1R3KmJ~Bq~*c9$Wq#;nci0UG3uLhfz>Ab-d21y^;UdldGcnD@38oJ@ksJ(2OCprX(PGq zAbLo=46K-qT72xjZ0_vh-ePFAGp=O8l&EY!o#UZX)nBaIJNPxf`-KSkDvlguuWJHp zzlZk9A5I$$Po+M}flk>;ahAU5SBMP?9__GVy_dF~Y&TV`$fv}BJV7l;#XiN)_ig-L zk|%9hH6=RlfsPHohF<9%-M#1PWG(1h*cPl9mi@rVM3-z~ovLjagqCQn;#)S1ofvB7 ze+ROdbX?hj-MBO9k|u4{_b%`!WcS_a$DPbGdrtD>4v${IoNi<8@qHIP+ZD^^>LkuQ zd-1uBhz_GK_f9`cr$vSoPnA#jW8^433-V0+j?8hmkbQ3)!M^*cr>VUhILE39K0!V% zM|bo=Yo%u@-k~RW35W5ME|e{?g)s!HrGgoI+NA#(oX1W)vG*1HUpNuiX}`7q^8c&7 zY^hTjtHp!NMsCa;^td$SN$=B@DA{L@-3trDz4T@FC6#gc-9qTkI}pTq=v5gEK;mnq3wsg;6BkTpH*j6yytXqe`XzL zvkKXdHRN)>HMU?P*nGSQ*$g=WU%>WSc#036(ky>e%-tfvF=sB1q^EY5N6Pswzc@81 z+Fif!sr~MwqCa5X2d?XqVVdXlEW-$2?^4?@#I&8&d)pOin-kOair(9PTWv3kX?tn! zZNEla+vh(9U*$sh=K}cX_3+c{;H%f7YhOdodp}FpF21O{z2`^Bm(oeyScW3_fcEG| z(1Fd+y9v;}Vp~tO?%J^NO)&xFccOQ>Ic?JA7CedF;WO^7j%km+<(%Q3-Y@V#(m|u$KL3eeks3ihQ@7eIhigG;#n-+eFr{y1?_b%W;*```)odc zcCqR~`l1=yi?QgozwdbFHt?;d+;-;OncM!x54v*Oee~;x|L@#2dPihd>W;siAZI`B zF0y@kX35EZOHQ7~*uB*N$>O&&k-^8)UNl7X*W?Q>*GcNv@wPxFIdA87Z;`UdNiMRWXcRVcImVZMu^nPf$ z@2)PJ_Rkr|>1Uzd*E~ftoq2Zhy)OHiJ?CP{PSEpMecrvN%6C^wr_DUdnz5DtRDB~; zKdX2qpYi^~`Yzv&#uls;SJN>|wv70=fv#9}czkD0y8H;m#|vJ`W%`k5p-I-MfBIzK85|`J7$(bw>0N z=%!>y$(79$Y`6>Ol_PKgxVh0xxxI zke55C#Wat7>n-=H4H;hNYO8aun(*7}ToK39?Oc6)<;myj@8F{5qVeG~R?fNP?;v|} zk-l@*zGt*Od(@Nq_`fml4o_+;wur@Q)4+ep*s>`>?-tim-!8LX`t%)_2kSaKqgtP5 z&b8R~eMuv$Mq^JJ;~lx@GRCPN5R8m}uq-m0&n1hHkFbkpV`KZia%{1O9EFd`N8EXi zv313sy z-|HDyb-*+)(HZ4}^pq;wE3JN6XD z);o%S0;Uh+Tea}ve*X8w8x&I~z93y9(;y!i{nu~hhI>n!nNy>qpEQEg4e0Zd<*_ZL ze3vwkGHQ@jF_&VqZF-rJQhF2n_@jG*KPBa2+7Hl{d-@PCn0e@ zcF1bxyv&oZ=feLiUAbw^QWm*rHm_^##YW}na5nQgx}R4K~^ct zzJ2GzkN?^Tzs-8z!4`bcA17Ben89tk{JGoyn3T8e-$&2dmOje3wrG^++Q&xqyY}Fy z0oNAx&)K$Q@aiY3O*3hmX&#Y`P+$&gZ6Y3~EaC1C%F)5q*Roshe)w_Lt?{2Q6ZWk0 z3{HIV?y?`Im%KaE$jlg0c%N~6TZWNTonbtk3k=l97Ig7Hfd9g|cY!r9St#4#huTZ0 zj!_64P#vRU>J>rz99fS$PtnI@`z@xHk$%&=Pw=ju>2rk7s)=^|mj37gJ=aBR$7ZG& zLgnQsW=8Zza#%N+V4~6fW||q1jY@KNPMQ;|0NrVZuGw@;JZ^M!X^I=$Zs+D)fXwXr z%xYMNVvft`r-9EQ$JS+_SIcIloP&^K>mnY*ier)N_%Zz+e5iZ+6gfo)2* z6Tzw0tw{|o1$ZZr(U=--2rpb_)ZB`1WLXfpBKu9t#FOQ@EtdUBd2ixlC)avAehYW+ zI`!Vtu(=emmYwkK3g}5l^29V^=;&YgC!P|*RxVqs?5tWlJZG`)p*__eX5ycWhpp`3 zg25fEXCLQK|AoWb`8;weaU#1^C(6&cOh8XhL|-3--cGFN_lIEj_7cZv=Prx)JvQ|6 zh-h%lklZ$3aUQsHZYy%_VrYR=i)>`{+xK>C7|VFNi$MA$dY^QdebR}S^S6Y*W&FwZ zQq~Lp-o*Lad_K8c;BUTzSNV=_`UP;i20M*%b;Oqs5J&zY_L@(idsnchhk?I%$RW;; z^6Yg^;K5TGu?cgA>AQ$>p3x%__I<_>bPqi{x<5*8oGG zV@vQc56ycGe)o7-zs>lJGuN?J4$7y@x$O$0y^V9#4&7C~ z)sI<^pLgH3KI@r&8$~+4T0yJ|$W`j)&)`2&c&jsAd zbYPk3!14)xv*$ND`Zjh3f9HJt%u}#Uh`z~l$sp>(1HX}sr*T>wn$zOYoNe?anmB=R zLe4lLXPoNJaco+$mp&C6Xpb!!XH@hBp6UJZj6pq+WYND9-@g`Iyat?{4{pu_N9STg zn!`DAVty^T(bj3C3mwBpEnV$H?Kx+=o|=Mf;6ginWlqG7dKG>o_Q=}r-6!w2g~vhL zKmRm7E7{WtAQrmT>T)^Io}X;#KYSjAA{bqd#Ijsy%AUwq0|4h1wX3 zCsCfH@TfOk+{GKg{yzFrPGvKE-aT8=t7FgBhm5K7_7Si|?;5E)1%I~2+^g{?0GlfE z2whvgagh5~nS(ty+vfW%;x>rQnrgwosvSNu`Y*s>aNHWUcIIbUwMiCU|FGnQ&cr(>N74H)d8=dsyjcvnzw6UJOQ~rwf<5aj5_%*&N=CDTR$2sRZBfFAk zMK*)?dR|;_`yh&uS#7x4ddyolpv(Qh_Ma(k&)pxF_QlgZ)l!JXlOe!BYn;s*8_^-t z&NZfNVZ27^kmM1htuk&Uc5879=Rb`zzLnn&VUKmrc~U0loIRs%Yf|`|{J*z&jIB33 zcy;98OS!*={W#426v%$hIgFiO?A(qXygKp|Y-5KW?;oMRKWF&t`<2Htx4C8D#w3G$ zS-Xx&Y(H)vdcS?*RguHkhu6~20c17#&32EU9nriGZS5af!}ziDc7JR6Wxt5_KlV4p z{pfi-9wUD&T>RUv+8$jv?2QiGfo&CggS*D~xgCISYko_ZpZ%VFF7JODI|cS){2)`e zY_-pfc*sG{-pAxClVdmS|Dk%5eBm{}GuBJydYiov z4gD*AbnyV;XugBH`QYwm_SQ!@Bjon7@v#p2#Gg+qN_AgW`AWtNRwSM#FZ6Ng7i4iMjuAOBP2>x<~4 zWdgafgRipc#1|2#89~>zV2dAB{@8iM1ZjNf5*h_P3Hg0a(I zQV1Bw?vI_@Jtq2Re4=i=SvvPS+3{xBH&~~OQ*Xk<--4I_9-7>Qe>q1w0kmB(D<7+P zKJK@|W{BO;ikTE%Rp8@T0&H9y8xD>&@LY4S^FhZ%Z{%E{A5Z&)u|)fFi97qE-r@6s zAIy&UI`IjuRPzG>A-;;=pjw=DY3?>bYDvfg;yKlYovNG|@4XXyV1 z`kc<3zQ~{Q#)DpauivV`x6WtLla2UdyW`r3=!M{D6X(p$_YM;8E4bEsmi$!l>d${x z@Ja!?ooQBDwMaeWys3}UINYvDap+9!p0iK?WbQ7WCJ9fSv8;2@*Zl@pzQp?T$<4+0 zdL$h?ul8GapC0grHg5H7?6%+k#W>_gOjGO~Ia{3N5v@h&XR4Vz;PM}Rmo~7e9BFpCgAedcD41I2*aA#O_7yK}`#_I#f z%9;3oh37T2$3JkS&0D^)m^Fmk@A#TcVOwA$hzk+zo+{9p~%?I7uvG?ds$COSR z%UkGqt-q43`s6w723IUO&G8e5%59xW^ThXN%khrC_#XUGoxUjBcG0b7Pth>Z0Jmn( z$uaV7e7w8%S%bQ-{koX7*W-tYU%S?-y(nVNnd!k*E&Veu6AUl;o~^IRe)L!NJqLW6 z#s2slp6zq=$1eMhEz9SEdzQ>=j1D*Qp8AsAMKLbx7jWL;P43;%h1d{+UhHh#Q~dEF zPvjHs8lN?+=lj-OUBR_+sU|=b@OS-x%2U$*35PVMU4zrDg*7rN``k@`?bxsBR6Gnp3$3*2#3_) zqy}F&^IT#x@rRW2Eb$ud>!N*0MqtxqVlxL_W2{0hUX^%NaFtch?kZ!|pgF{(XG|(Z zE?b<5KX5a_+N>h5WqI5 zdLkLntO{!72T~LV?<V z9Oocp%)o_{tvJpcWQRl8h5Z#qcG`VLw)TOXx>i%?Gljfu-RotJN%nJ|1FKS#$)(Ej zr5mf_YZS28mOs1MYeF~u)F>}sc$gT<{wc=#!#@Z{T7Z2M{JWOAX2L`Hkze`_HLih^ z7hj|0J8!V#iWSq!yjIMocA0SNz`)$d=fNx0yHA`Fj4ba@47F*rr`>HtRHI)x?8k5M zVK?$)KRP*={W$hO*O&b<^T2NQkjp<*6Mt*9k@SZF#`>+ z@P+u@vW%?K^y$Pugy<^~@sKLS|kBjih!xz8wAL z+Ot>jzGR@@cvcN~Ve^zR(e;W&aoV;xw9>Vmioe-yrOSb_(Z zF8=2*#ls2i_B*PNrI@(Se_OV%evyFAhvXh)b)9F~iP}oNk@o#&ck z-W5cyX~%}$Ts0foGu*O+s@+?(JH#BB^9t!TP1qPdWo<{_>K|$P<$%ah=u|#?Yx%;K znvOqCW7#m5T_{#g6W_1c))gb6Tvg$s_S=%DfmN}ykHshLqvEYcM+dPt9qeN>a(_GY zZ~}Yp(CyBAm1+l1guAjq9Yx3d6q|?Q!#d|X;q>#J$b7#TGv7jdDw=PagP*6yxlz$( zc;f-|3d^qmjc!J!JZY}bXyM-Lw1p>)?CUvsp7wn`Cp&4YbF%C29VeZW$vlfaC);WJ zcXSHQvm-+ckM6+FqO**3*{ai{_#1a!ZKbm!Uf|Nx+U7$e)c0oklx(i|WowWzaQA-3aQo=&7k#ThHa~DAo|e4bjg}-Z z4}bJ_`p~;Myd(TNHE#K%CA1fA#h!Wj5Rw)e>;KKNoe~d*Jz&x582D_@v)%P%NY6oWY2o(43al29c`~2W1ES* zQ%sHtI&z)zdXNE=^_xvf}0?cljJy$cHTCyl>rEq|fHPo_0^j z)2`2ofonro_~gs|@Im#*A36Yks2M(ruBrNnvVFzN49X#~crAJKO~9cuX$$W)2V_F}Pg;&lxF^eqWSx(%7W~#8&*L}A z-}CtG`3ua*fq@RKVh+u$zgwOfF>!0r$CRr8ZFnjJol^MxG=3TPy@T|r_u^@sYK~gG zm;Wd6Uf?Ady7wHs%HBwJlx;^gDA5YhkO%mzK0LPHbD!GDJ{B)GWze6k=Sptsey0Pt zYRT9WI5Vn|+gp9ySoyXk&1lc&d}MQnTqbnN-yfSQwqxOr^a94O)45A|%~-Hg_jdq; z*S->rc$v3s@rommy>TM`jASG86q3(x2_eC;x~2k#EMT z0l@rhd2VF%Mr6Ts?8oV{EqJjle9f-M$C(F*a>CRawbrwQb^h;VHgDer4C8GZ>ljaV zvO`u3LX4cubLqE5yx&vZS+|~Y2kTf$4t;#TFMR0g-!}dD2>Z~F;luXY>}R|A{^+Eh zdNiB$A~=YNe+ju&TD_yuujMfxB!kcC7O7 z=>GpO*1sM%&KAyeqccvB&++5@g>f1g=QYOptuv0=BX3T7ZFO=ulW`hXCucX%CdVND z6}ao1H}bp2Z6W8O9XLJWv<=a=!fHFBwUBjbo@!rA+^cM8f2Y0syJG9K7M&S)O*=hC zwry)ue8b7H*W1tYtdH{7a~!G>y_7SnbLne#&L#7G{p-O<@dea=f<6i#)_`Y?_Fg14 zvKNm4v&U}D>&%7Ta&z8Ev}`%==xicMY~MFVEvhA^PiJxjYxy4Q z)mV+kJEj%SC6mP&Z#Uz~p0S(pMtmcOb1r-0u;{JqSr;Ckyx!jG3Ch0f#_K4LHny&% zm2-XTg(VEuxa-Lc`N`OveWdr3a@Y(IK-PDW;FkoMBE z>mMkeSwEos%KgNTHZC#3jgQGjp)+ph8d&}@`E14||bFTk&;AG`o23;gw6`Oxy!B_VfJl?e-SI~#uc0@GeH5-Nv zz&r8Qi}=kKQ|nQ(n&LfA zWpmeAY=KU>HWJy`Wv`Q+t^qk?12(u8>{W_olf01T$P3gcwDX3+p-OPk%^8l5L98YI zM0m4?eJlVLGh|Q4?t*R3l8>x7L*DmS_`}9Dd+&qPIkxN#(s@ z7~9gQzeo;aogdqr|L5e_7h!LSV0VLuq$9@(rpDm%E7QDw%brp^!f0>b3SZ|>b5(qf z?7+Wx-B=%lc8RYXWbN_tz6dW?(r6#p141EQ1mG$U(> zUUDWo^;*#$!Db#XQJj+rO*?>nKxaw1igcFV-uXQ59GKv=g%38vOHXPGFI4}R(pLF| zu6`NMGoNtg;ran4(q8m!7ISdu=>pMHaArkUTid=pR`clNoRebaybC?Kr#TPex#m28 zwu*n!Ic^57za2sjUW?9gO7z|(9UH#MZ}Iw5KF?|b$b#Ne*Lhbh&!fa#bH^OIOjqt( zN15oLVb?aGE`e(+EYCPYTj2y~KwLe7LzD6XE!cmt;gm+{?=ZDFeZ;9xf=0J;H$s4% z0pc*HCZJCwtO~3Y@3cOb1ZITpB(EKLVhj7kxp^w1{Bq8q5q|U$W4-nLC-(P;`5wA+ zTrxV(3dLl#Ow6bKtR_b&RS z7SV#Vfyl$sB@!gh8sT5hppN4JW15~fxO02oe&-h6Q5<1A{3Uguv3C<=xbs=Y+yw>3B471lnU$K14rU8}lcr3#VJm2cE_hl1{rNR57rvp{}c@_z2v zlFd)~0tJr!D$}vGWyaXr3OP&7@N&guOt}Z!gF|Q1PGOU^-x2NPJ^&lD}71+s?jC*Vp+3fLd;r~I=~t12o|1u!1MP;P(GS%byIxpE?=;4oTX2JOVSNzVMja9uLCiUC-LAXTC?c<*VUa(YVq7)AD_lM*RoGVXy7?~xBS6}j= zrjT338h7zq$i}749ChUwAfq0s;WvwK+$9-&c=S*BLU=#9r?shnHz(sajHCB6pvfNr zQ|UT~CiJ_hw-}>XofEyMD>oh6neLP+7)mUgcTK9~j3E14+)p+DBW$u)H%(OCYjhQA zANlU~Z#tA%UbpObl?&$%dhFJ~-C3KmPL#b8IPvWt2F!#+A9vIFxaV~{YhR5%WyQ)M zhgYCaS#S;@$M8K9zrLT^Fz9%PE6|DL`%lB>c@Te-W7A9upld?gQ>5c`5TD$H4_Wpp z|7UOQJ7mYyu4sj)N|!$b%!xN&;iG=bhIH=xB}Ncl6qaq$pe9Rt>Gb1Av0=VGo;pU} z5v}0);^wtw)?Jvp*b8SrlQJ1o_%HkRk1sOTD~{D5_BV%o?0V#rh6H1pVJsOZowLAa ztiXQ1IGyj3O_Z~({m3Yt-lp0Cf}eQCh!$hLXyq-;MQ{)vSv6SvhC`_qW8aHtatU3MhDLt9lA1@wMh?=4lWy12RWr% z_*~Dupvoz-&zUXvj{~RFwjA1*lW5l|GrUX2O`)Al6YO?^%|Zt@>A+vGso=lz0dgkT zws_?@Oz3=1G;Fj5)7j2@g{(vGX&)Mh@!EEQXT9WM7oKcdij`Yt!S_2qmEYB-y_S!3 z;U!K#;xXEP(S>U@K7E$+j9fHppCof?|GRjMT@zU~M!KH0*>#fF7mYLOWB3j{$Eu(F zMA0~V{kAPdd~O*wL(zNrKE&&4fSKz3xIE3RXQJ<(pBIj+WKLf5+dmc0@-ru&xpEx$ zA&>L(EP)tT`GLJod}}`|zO~DCvxl*CJ}ZD(>^#0j9Q}`Ty6|OlpXg~y^k>|s>17UX z{U*m|`{&r$h9YpJtFFSy`uU*=vu|=^>1MEZ9cxr`ZV>S)gNaWWg0E>PzNT~VHBonN zR=@D4-huGO0mz2^EuWKO6vTgZw%vOdn%0E4e?j*!+{+(#F05HIvuT4FIr!j!$ZbZy zs*iGvcAxHDm}Jx)gdQC1@J9}Qnc5nvQN0ej0uC0duK#`DICxb^z3&=tYFip**F1cG zgnI^Lr!c5x=048@rarw7UFtXbnmc9d@llVzg*x|-5!=-OUX4uktlvp3e(d{}Ev&}- z)i&tl6qB>An$`N=bcNCW+5jV&{OuLuD{aVk;>V*_<+YER1>Z)d(>o1$^pA{Z`K{hD zR%Fq?>aHgk_wLIwYCcFfr}+cu=-Tt(JHc7#3(z^q>M2|D6kpW-f~vxSw{QtnMR#ppgdgP zH;uXs<`_!OUFjP=U{QW4c3piwci^J@Tb$1szD4=pbv~c(UzGnnqwa=8Pj)Dwd}00% zj5_Iq@S^vPZM&`vaz97xZ(M}DJ#=euRplMQRcmjwYG5b&%!Ek=e=*t%wwiVMzclO8 zGssWA`|cl#&W-;Dy2W&3dywC+7|?cENN17z-h>nD@DVKwWN!KzzN4>k*Y#R>d=-5! z_a-J*p;NEpwIw-=0eC(Ej1NzoJ;q^S$jm{ok z%WtyHh|Z4Ze9mS5^O!$zc1iP@|J=ceRaL-aK69$}k4Ywm;S%he+4GrSHTyH4xy@m2 zr6t8X%9z_cWP#<(t(v)2uPSX@$K1Bj*E;5=S|C-x`f=`tboV5|*$2j}({J`ZB$lp* zZ&WkxI_5Xn99;Fp6#u4o$X$ApeR!9BctEiDqPe0RS~HJ1U(1|dW}NGobLrqARW~!= zm%+JPnCq|j{F0fF@UA)b(wm*{@7--KdWreJYo2R86VBbtn)K{NaPB77Rm{4o8D}%= zN(AR_VqM!<*S1y5+n!`yFEQSetZOgp(m5+YMx>4ebhA60^_yVr!~UGpkkv{|;9_o; zZeLCwa<$(`t{!YGP)^uE)*|@NXD#4-(lr+R2US_HUvVz5PqScOYWk{fV!qqVvB}k| zv?qhJv?um6+O6Wb^K3b5x`w}XgN;kCarde}bvRkmB-Yg1UMY|K%VW%T;{M3x*qr($ zW5#8_B_>0-oO$uxr;yjZTARevep=7DrZVIY|c`8AT_1_;=WjM3bLm4z``f zgPmppeD!+x>viziYvH%o5N9}_IKzIH-@Nkk&_UYgAWJQUUsWdLW&6xPLMRWr19byy zi5qO01TW$q1L+=`+vCi&kUME!0~Tsi%o&2tFZ>w$_H53OVp>Cw;!~%-GxBo(we^J{ab!*R4|M!*Bcn%N zCtmaYj?1*C&YoNKKgHYJcOT_l*Y{S4y1?6Z_o_ui5-u z?e7FeOV9PJzk|QqIJZ63vdh(8jZHu>+zF#D^Q{_}Ts+=bwPmTf_p$FP7gn{rhDGH! z8iap}vpUtaPoXTN)Xw_qjvd7Lwh+q&9!^#640h-CG2B0P7w`DIsa2z)DbvwcY@eC* z0r|{EM+aj2tVeDLy64MGyVX}1TIf#?Exe3aU$_1EfU#aW$w;2-{$%@(gD#tv`s&BH zj!oFQ*tjFR*nD6% z57^BGhI4>rJ~ZPC+`;139?r+1bR#~UU(r4a?#(53DiOP6ATViDfcPl?N5t|6g6+FM?AUJ4*S6cGQ|mkUQO9M$ z5A8c&EWKkm{R7)&+_w-opZj?}=$Q5<{i?={A(@rd=8cWo82)(P4Z>Rrpu zkiXK7)s{a+HZtA6qTipnoqCh#+~YRI;j!>jcAqJ>pTn|8a36iZ9EyD8Z-q82K8UXI zJ~@UiE*9w=HJ%s#25T0M3Rk=RHue0l;wyTp4Om9p(In(1*`I&Ne9H#dwW%LrZe`rx z>W5d>I(t{k-W4~+-}i|v4mxGW4q5dIEZistHx%FEyxVC{9K=}V?1}CF9~Pa6En0d* zeZQa;Ke!b->Z`Zw0QlmihB88?tk}ag?5?Uu!iHHfAL6Ij z3{pBcFX`-Y$2fFFY);+sO{vpWK)&W}wA)R6VDb?xTXy|`;0fP<6y5kmo;O~bRV7>; zgzf7h?hHyiQTD_Aw5wtt2Q$XY*qPo(o^HA?*meYYZjh1qe7TwQ_+Vpj^zF+wry|E% z^~=(56}~-jbLtTMST9|BQPoTI`I4FV{7dGb$JK5vcegDweb28o6RLI+i`a?`vd2t} z4)T>JUz1e-*CFuE>oQ*4_`dhTtQ9A6U%B{#KW}``JSX}uJfr=J7tM8Fz1Dni<1OYx z8w+@UnfbuRYI9v`tM@^4PGTOJ>$Th)O+Wjd=YJyqHO^tidEQL0#;G3dPuzTB=nB=} zfmiQKpk9USF>}n|!`uNG&7r+yqd@<;(YY7SdxblQssbklhGiF=^zqzRtlxiAwUIR> z&OI?SY3_ydU-6l_4|B&(6n??qcYfOF$U==L$wIcx>3iJcdOG{c2y7`MPhnpf;n-J3 zVqbCbg1d%R7?vL0Wp7ynE`8A6<@1+KtckVT^whRx*|jxCM!yMtXo7ai9~Yl5q&rOy zP59F({19FBLQjR;Q{ao(+gBU~#?zUb=3K;lRBPL{i@9+=yZC(b)HU+XHwkovF~``87IdM$J&#ZBIj--e$uk{%1#CC$;YOA2;3Ac zHTfQb&iPGf{E2&BDIlk&gd8$_wsnH3>n%D2P4l~V6sWEwdP@Ag+^-{NX+HnSf7P54{nt2N#<^g#EjtM|vO&pix*r(Tb8cm0 z6I|PXPZsal`)%9&w({;x4oYf9?q8pa)$XZpzRk*&^a^g!Gkc)EJ8}}JG4~uoz$NSj9 z-sG=im$CPw>r7-Y4{_v%bw8+V-6r!|lHvFY@YT*>$nG^M(?K^I?FJCG)){l?d+h6?@`!)9Z zAg~uMNglR+MV{yq_V4IT$l>%Ex*)IJxS_DE8T?RPmsq*Em_1cpK*`78VW-@@bcN0H zUD?^TE4wm4F6()&){3>CWdfV7yM$%q6c2>IKNTpN5k54*6Pd&JLu1f;tY?>nTYhP9 zf4I@U1ia6C!U%Jo{=D@1lyENchtBDJ{ITZ?Km3Qzh+Vg)2zbC_lLs?@@kGV-oGwo9 z0&tLbI^*tK9^A3U*n8sp?B^^a{1$$)gT&9g$v8WqImPG${riVfI}(jL{0;5a9@B?p zRPHw9jwJRG9B}gtj^AP;U-nEh+8i6O>LVV*C#U=a$?Lx-j%6(J-M^tLJj)+?(NjLt zi=W2VDjq!sJ*`MI;SG-^a~kZ0E4Ry*Zp-zfqxZFS>}Sp6LVUEU0U+61@Go{~KyeHY ztFdG-Tkic6_Z)uxSjYBS>)F_D_k*j}@7k>eGpdMD>*;>*>NWQL;3eE|RBGLClvt`5 z;Xq70it0<8&aW>y?-2K@X%7BeVh=COwc<|eB@YsJI(C$=s*>DJ#hiw`M$a*)wB7Ka zvE#4!ih)htx%BDA9w5^%j=eKTbR!`tp=#a`S}sNs0w)0H3Dz z$G?5t&ZjYN=-8l`3twDJr^eh!8_V7>(5TBoq1)I9>X<~uV%atD_d&!;b z!EJ?ljeIZ3?N~t(v-~&Y8xl%WJQt|3iFEr%&YpsJ};PTZ^qib5kv^wM(%*KF)oP6O8Q2 ziAHwlpeOP=@BJP+R8BiL*FV76TGt`wtK8Be@*VFYK63$M#-302Y-R#8<@AYeVCQ`3 zEyHWmU*~MfH#D|Gx=YvjJOFG|3qF(kAP(8KoL2ea=F}9-ScZ*#E_Zs(T~)F&;l8X* zx!l<`ueo65yz;b_`P|u+58llM@6w2M3jzc5TBdMtmC4MKZh>2BB9@pFnJ|1K~^@6YD^PId1`(wvI1KWd*0 z=t~hg>=N)^`&35ka~b#c3Xa$avWtmnE1~|BU~gcbwBS)^hJD~eS+-GEHkuf(K(KBd z`h7q;DDCR057C)dbf0mgf%hiShC9KglD|{;3G2LQ+U&qibI9XG{8o(&U;XrrGoCpA zh1BKrIXNR(x14^h_~k-kcF%FfhZZCl<#mb7c{%%1%{(q-p0bsw-_G%ot1j{f+g~OR zse|z|fXhXUKZNlwqVEE8Nb5Srz1AEu?;_s&fcfla-2IICo;j%MJ?3&T?XPD|PiMTm z@nYUd@+4K|coJIQW^LD-=j<7p_43A-c}KSNDY>%)oxfv)7<$3Wsrv16ymt#egqP{} zKN-X21+lqi%CB%@u4D4j$F-psPpM$u`N{*hhImBmmL7d)PkrF4KO>kuhcgb{eJbOP zeqqsj>9xMedF`GPd3DVbjPT9Gryzf{=c>(lqRlDM+wgHp2W5}jYuDV^b_lu}>)#Zt z+}tCV{`<}Hx)RzO!1P1b;YpLMBYxhMGbeuDLSJs&c(E5b>44NLf*&Kd?W zU&(>7^UXVHzQdyV&U|~C>lXTopX=YodEmV}v4LR|x|ll|SP$!eD5H8}_y8jz=S3U^n{2&Ks2Pyl}jIcax8LG_HOh8#7cu zZTtz;tSUgZ=mku@N=I{=5CUdG#ZmzB}`@=v#SXZ_)nUBS3u9qyNc!IsW*S+2F=(REMYT_OtwYA&W`tiZB zvJEK~(~d{`S7eiR`pQhS&(wI<)eJAvJFf0==+Q zE=7#Eb(cU3Yt2vYTC40TZk_+D)8Pv-_jTNhJQ7>SK7sEebian+<>YVJdFVDy43Al3 zJ^o3pao702ZS0BHX&o*uTlP};o%EuD6CE2=%V@Lo0BV?_n?+^w8OVOy@Urze!Rbxl zb;Yyhdg6Pg$<`x1zXn{DP8biXH_*ZU3GS|?y<3w-tE5s%lNK)41`0zcWpV&m+`mM z7H?*jpL5jV@gFV+Mn$6I)dMYDT@0;s^ z*ZiNz1m2O@V5M^cufT+0b|o?C0dG0AK>V$>@VTsk*rkoO>C}ZuXrzXEi#IE4;N5A9 zGR={DMx6h*jk>eUgB{+*nO8Pack&puYUnG3AHiA=yi0rb(yERP@?8^Of8=r2ItJJl zdY4);u4P_h#ptIuZ7lBi`YWmC-4EM)?3{0KPw^I|#0N?@+Yf#>;U^*=yBjXZf1q{) zjnKl8@=3hcaT)h=B&B)Bw7vjO*IA#yIqZfP(CD?)U9Mzasz2ArnbZ1x=Ey49Zz_Sa zwT8xl;Z3v=o_X;_ZAR~0$~{fR^6yQ~oWBZvu1CJd1aV zR$`COo0FSKo!Qw+FIYo^@C{~`Q$=WW69`oZCe-C*d-2J*iRK&Kyw9ngml$&alg0oxBg zIBLMh%R?=nGuk&f_aK*{zi$BsZRq+xG4M@J?2?bL&n(`^xjWX+*xnwKvr|S)Wfi=t zH(5YuTk^nC+3R!$^gkUNF7(SjFSb08bzYY|AUsstT;L{qNjG^6p7;-J%iZNiYNFsT z(R&)N<#Sg4S~vNz!pdLMT`!_B^MJ`*U^538Y6K%`nj;j{r*<8tJ z$Oz+@hx%WPom8=-E)D$!xF1VH?`6*2cqrff&`|YP%e@`4L;2|^U$h3CvGx*Lqk7%> zoMGuHyWR6UGsU7o9js0H(kZ5YUJf=^m)(_E1Z+jRGiQcrOs7s|U0_zAN-zl# zzau~Y4A$8(!4nWXeCFtR)V;7|G!t9vpBFYU4l=lF zHCQ(~y;bs( zzWj@d8(+UT7$L@QN)2n@Io{TJL)eJ@w--L_!-j6v9{pb7ug}ZKKPLSN_&k)cW308m z(|}JGEj;-?F74x1Vj}83?5Yc=_@el_a5bE%#51T1myQgrc+Pb4QFD@v_VoVcS8DF^ zKWHr(tOYu(7>}gT2%}Ex)S41m)7!V)`0L5UtLgsm)r>pIsNa_ez0>_P#kUv!CIp=p z%~u}M7S8;{ijJFI}cZie6aQ;haMun+OI z+a86l#MW*Lwb^;a;z>q@U%Typ@hpG1XZ`2- z>+Al{)BdARZ3boyz*IisTKJQdiwrE4i)?eKh3~7N->1TNch8%d_u+v? zJ2uendw#TQ&kroJ_k0cXp{G5U4CU^*<+JKx&vhTkCtv;pJfX`+B7D+WFIMgacDCU+ z6s`1qTCs41|Fu-#N4BkN_dU;S%GhF%tDN(CA$(DEoqHFvQp%0&5&6cdwAuV&m)$eK zSddVI-jCe296RRVS|c1F?k<9zZo6p^FE<=H!QWbh-=^g5;bY{FJ&e6Ci+YYz{n)ya zeN}#JScgTg2b*mPoEbl~jNjY+*k=>4)f(7p{h81(p1J;-Prkg%vKP2=gFEjG@+~yy zdSt2=#=&N`swIus3?H{+^P4Nz^ahhmQ&sW_05Fl3Nj^(x&jz0(3 z*}gKtUbfJ97z%d9!0tn2DB+lNX5?@DGe*kmz>&L`OP4VBN?;M#JH0B)k6nVjN3zhz)_xD~X5-d=M;^0m+<)%L#{Kx}lWpAp@AkWAd-vJwcTc*LbzXo;{GMM1 zyqYce*n1iepPuw0*(igY+k0-X?Y7#JT)y|VFRELiy~!9GY;T}l{QkcKZ{7}G;Lq9q z3^?~i=vauj;52B}BydK$;g&n?JsfH8VK{VSx%RMi9($-bhFJduveX&x9kP74vl>JP z2|03N2%aN6y@|QR#jW4JpSuo;k{yu;tzq#VI@-`_8_bJ4VKy`M0by z-!l#7_~oW?4qUkJap3OIgz*07GFzebi?t8<_D_0W@5y)Jt~(ZQm{VA|5&x{WGdvZ1 zT1_og(ToXv;eT~%4?g;lS4Bf4FG}Wj z<&s#r)YYvrkbioTNtA0}0Y5j{!;|<4zlqO1XYqDBj_dEsZQiG6|GAu+zr2g>@R?XS zHgEPBK_Sqr{MpOsxk^duj=EPgi6@@E(R@4WU3XsLL-;u#NP6O%ov9-N!A zjreBrVwU00FTj4B4vxC92ja)lXKLa1n$K#B9uKo(PU7*X#=#@(*-!N(@AiaG<;*n} zKb!a-yWZG+mQA`Oxo0^?de`apxl6aP;T=Sth==D#$c+{}ksY+=O34kTT$j?dZdPa4^Rh)mjehB!7xW3paINt?p2-fyUj5OnKJ?V{h@U zf*G0AlB|WV7ggm(LfD&ic7E%%>-oBRVf?T1&ANWB%aE+a(>}-N-EikS9#jJ=Q zT+am8cYfxL#Op*&tWo-`1&^3mt;c(iL5(NI#GZ4}oZjHj%5SHG zYu7oy3LR!P{t@c!736`tx%fx^WZ5%f$E&x->)B@VOdrOJ)t|P}z9-#T=i`g$N7QKz z|CY1S;Td7sgIrlhI?_>Sj-Cs4+LIQ1b}i$(WZ`CLk1NZzTw*_83jJ<|F1yb~2m2!5 zTCyy4eMIZ}s{2d@PggTmr%nYv#-Ahi%mrxs$oOF38FE^7A`7A5A`1<#8qsWo<^Pbb z6dF)oXX#7m;8Ezlt1rn$Bz@_mz8(1}nZ8dWEBBfI{GV)Zv2e!XN3yXI`_!9Wl+}eJ zTi6p97oG+FuLFO{q6xr1l02g7GT`sXseRL#1_bMRlc(c(CxN6kKJ`)WuA!!LU-9V? zwe6#hzE*9=#o#IO%SpK8@a!_${!if7@wpK?-|Jmj#?iB7x7o$IWeXACiM8E?92~NK zw{R%#cL(>Z-yIpS+xyr-MX)Kn{&d+OJ;TVIcATw=LfLSyEZyx`L2C(_Az!}`m#^kWA{n=yz~ul%9jyb)o7e^nPlV& z$3FNI(^%iv{rpME|BSOJ*}0MR_eF;k-rwe&)4sxK;i=*D(0>=*>rCO~+TQvKCm(R? zE6+Gld`jH=Zv)dF`N02=^uda)bM1Q##Fy|{IKCL!S2Rkz_Er4gr{KB&ZD1|@4M|7F zKb*^dS5J0*mEwi+YsJeR*YI5Yudo+5d8??s&16v?TAtzuBPZ>BCnd?&v5 z75?Ey9kp4l81voKPV_&$f5vXJZTbXcY(I9ZoZAaOz^A|XFflt>iZ8q`@8P*T!#5w5 zO+&U=Kecua5qoN87<&Uoa8(cf>K=2$da^h6EKl1pecJ|k)<4T%Y`%{C)&6sO*1h`T zzjX6;W>5?S?IZQSby3H13kC9pS}iJ zS^6}7`aZ9_oc)Q_tDE@l#viPSTeIv~y{)+~cC7d{$NMfaSv$3ER@AWX@||ZA)8m83 zXrC>dp{7z1Fp*9{I8L@|_B63(e;@`f*aIKo-jB+w^V&mKd)kMeZ$xAl2yyQRIR(=) zv3Gaf<1xII7!0eHrGAtC(TZ(Gd%Jmca(3AO-lKgnc~7pa;l^}a4Qyid2>bySo$&oE z81b2=6$gwR6I-bny)~J(%sHL7*<#5X#GcTnrSII#Z^h^xKGUcwW<1Ry){Z!haZ>OZ z3HG^+5j&=vBjh9Ai9YxG483ngZ=lbR-RGW=)u&`y+je+)vL~e{-=p%=Md!9KN9Aj) zpD)ml;v=R)1B-tVjI8wx-$M-oYi%X$gXVP}=T&lme)pLv_PWu7wT`LIx(oGw+`2E0 zS-0%E#oQ62H3ZDzdx|eGBC4f0ls1F-&91AM620E(ugQ|pQle>2AAV!_9%9X7;MWxc zqO}fZ%_renKXPph-!j#MbM4`e-gD0nm0$SHIm9t?C#=@4@2@3!)|Xx~yRLYAUVAIH zX+P^uFm@!b^-!OIoN(Ddz)xzWCAKR5X3(mV9o6KNmEteCiJD-)stX3LGlwR;clSN7 zJhkkW9Z&gZpYiyyBNY9t?FBLffn{R{!G^c=QBOiq64vK+Mo{uJidLrr~S4| z`qfcOe^K%0`<;Z-KTGtir(LpeE!NJY{KMY-6skFMI=fb^o#`L6@9o|f-&kUEu;*zG z-vFko@Ru{dq=h2!8(uX zJ=Ru_t}_XIoWXNrRPdO5Xu?bWZ&xgmuX_JVVnwEi4%TAhEMc7i;^i_|6|eNc7q#!? z=eM?88roQb4&^(4_eMXs8}j%P$yF#-{oi6@OK*ox#MYZ}=cx13$Q+cfY~61weqrXd z=bz}{9=@E{ebm9C)&{kZLmL&_@8fJ7;m6`ApWNc=qmeU3qQBX>nWU`b^g+ z{vNx&ATSbcvv0}8;I_*rwC}NdsJNcq_E7n_XR_WmXy22qIrjWN&)INer$)lxlw)Q- z7;LMBcIm8)pf+U_c&XgHrTKRKmM_5@g0YHI2%4{7U^90r~~9P zhbJyewre#~19NfZB}TX)gW8M0nD2Y3XSrarnOM4%?>7-+eWBNQX5H13tF|$ZC;KPv zsfPDe^Z7wDVGlJ&!~4y_tp~#MkF@}A>MJgI;_k9nspl5K^ zesgH62imrc_tx>f+B1l{MT1(GFitCXfG(r2dDKgqJg0QVQ zC+(kU_|mU6g2v4aN&lFc!RL&idGm8g|1~p@&v`-5&AXERK65Fbmj=Bz_xqXe7UO5W z&z;Zz4E|ru|2+PGhyP3Yf6-NwstjMD)!)7Rzc<+L=6}oh>CF0!%`?-T=Ue!%F&Z*{ z!t;Nf8FZdEbUxq6^G!1go#)M+&ws@8AI~f`&Ar=9^N2}JMCJd~lWS4nzxxBxgKJjY z{qQ`0@Zop8lcUuBtfC&~p3mi8RMiwNILY~m$HZiZ4prh3p#?uYh@psZ+ z5qT6_fZM#`!H0FHkn*W&z`@heqo8wM=PO4Y8ciM4mGkeLys2V~v3DJD5El|hyOx;b z$}I&e*ESTaB=)v6ojJ#zSFItftcw@*?rb;3$dM6gp&*epg+=!{mJ$$W!~7=SlJ&aknkhqIYGz%%B}-pg5S4 z`>(1?AU_A)a-R5O$@A3y8SJZSkt~5OI)@nZ0yCu*9r$UdDpr2m05^ zZj3GQq*#e+&XoAS2mksHziG$c`OxDOw=Fn@5`0x7Ow;u%C57;rsouW)PKv{7^q>!^ z9xLPa7JK8ya380C>0lM(jlH3m`xZspL#w;$S2Te?ip!e|4))dFCLS0oPYNgF^`SIB zdQ40_cN=r*%@?W~;HQ%ryL_Qtvb^-<*xDZXDg74JB4ds3*X1M6fLEMkw*W7NGrVin z-BE0<$+Jw_7PD`Te!0MpekpnG1@^7kYwOqAyYql;vo{#YV4Mczp7{PJll!1{?ii!K zNxmw&=@$CYeB9>~*RXEB8z0}(*>?H09V1T_pP+jl0!@QN&hh$MxsPD6+V-U16@J;)@8)qH`sicnau8F}4%obMw{c7>v_$6)`Q)&07Au{q&?eynGe0ANc1&s_`s+1{lx4zVcX% zk8{f@e4JNvSLI_DIR4OFVr|Ete72VdZ5n$8Z4D1KX_4VXGo^p^Ml+W?bop1jQ>%Cc z=m9pf#fsZhj;Z+0QT+V1m*D4LZG=1U^Dl#5?11+BO7Gaw*Zw!qzt20O%0n!YVh@%= zCrotIc>3`KIZ}d80`0|Pm8bS4@If(1wLRDbg6xBA0)2{`nG=UAbJ@c@d(Dz_wO--2 z*3A8O;o7|Nx}&UFwZz~Ni|g2{%e^D3^2yiKKIRhJq`7{?-N^aWX6P#{7PGcY`r!^F z>z&70b8q|e0`W^4;|sj=H^GBB^aO|U&-Wb;O|!bgAvha2fLlHF8=Tqqe#_(f)i||F zZ1`d;vf)dO%}$(JV$%iT)M0S6_9AeqWTk~ueTlL402A4l^ROi-u7Izy(6aWt-ZHRR@-}G+TPiF+ktAkF{bUKy|+CMzqMlQ z;M%R?iH1@{D3x%JJO#&yNY?S>{iOMlN|-~BDTu!A~p z@G0@ag*QN-vL{Xq%l0|So0^#B9a$*mb@p6(uDBu5bH!|RJeS#O#S~>>J2FR9jfWpvahS;18OZtp^aM-aLOzl# z=*rhy1!MZQ&YqK>rSq*ZHUJNuZ^io8lACpOJo>+TzTt1alJE8Td?&CzjZp(_3bMX8 z<}vOCeW$a>EL_N4Sv&Ch=@uR8BQJbg?{P+3df+$Z6YR5pCNfIX`0g|yNFTMF<(~RC zGCKS3bAD+suKyao_lE1uqO;&Sy28|Ad_yI9dF|6UBN6U|zdg^>K9;?+Zo1#pv&<{nukWsguVLx|&>M?m#W%{PZL%$=>GT ztII21#|D*U`l>ppFPC?yV{sImpIdUrjso^nyh8qkqE*Y5Onf8qdp7kf$ zo$|SBfm|2Y?lf&`u-yY)c?Mpzld~v0&tn5@9<-D*y#?P-JP&%pi68b9Vndo6Y?nW7 z^(9@hLB&PA%LX48bj1=`F^&l*x7~&;5O2@X*^Pa6u%Kh)Q~gwvL$wdR#H9BlHoZSF z>H~;XA4tBfkJ^f!u7GG!73pa;{Ldd_OuJ&2v3Kg4Z?tXp zjA<)sNEy|51TwX@u=w3qtx_CtiLjSO~uRx+O~L^ z7x#6PvnRe!$u9vO($7Ejj*V`nPlMVlckyfqcipQ`1NM?`%h4_SStIeiumEx)o@ zI@(~`0i$Bz>LZqdI!M!I6wHd;xhOAkDLEy#1GC!a{Nb9b=R2 zYoa6We3yF&Kk9hq-+AWGjEQNvi?!?7u%2_s_GV*~O>#tiQaEL1 zUi)U{gxqZ`{xZJ#qjM9(U*Z3#?<9stV{@X0|DT_EcxG5<6ZyiD*=29d0#_0m(so1! z8B^DD9@R(9_wgTqM`_3~?`-F@Ba4NQ#VlJM&nmIo9bQ&EBj8V{O2=*&;_SxuSIJuA zjJq(xD=c%z&|&anxf0iVBKWmJgT83H?gK|caK~20P`DKdee-T{6nkincq5m z8r#Up+)0f2E@($}NlDu%V6l$>gORm$U!3lz`xUTwfVn?;WiZ0`_IIVf5zF)vbAOTV zPcruxnfsH>{Uzr9By+E(?`rgyYQuQuFYK%OuEw^!jy}1+FzEsMypXzz>#~CpzPG1F3-E!cv8Mt_%pUW6?9`mMVX3~7-Jr7zuZ%Q!2 z_x390tvt^?%zGK%=P~c+nfE;AUCO-YF>l48;8SVOe5d1?<@(IMpS54&?gHV5lM}n^ zZRW-}h58-4WTSq++@g=IT{aK&aD<8^QY?p$0RVH*N7Un#+U|wOveC)VS;Jg)w(v(cHA644HT%xb-sGd-;%2)}hI9wnm{r4Ae5}7eS^NzY^XKmvA=D)g5BFZjS({2QW+rNg_=LC<69;<6OxFwU7nlEurXmBRO0 zKkL}O3|=%J`n()oG#6g93|_?d_OAi_i{`?Mmbtv>@)($I zJUf_%=En5(*je@!jlt)IXW7@+-YgYnk2GF7%VoCEfe- zpNssE3a=Yy#}K$O?V)qeOa?_SPvI`+E}l5O`#5JR(}q^Z^o7m!tYn(x7~H%6Ec+TC z)7JxM+1LLK{NfTDUfvDJlaB`5e|;R;2|3PxB$!?D=*a2*hOat$RO*gHk917)5B^$P zGWN63l9>I6#-7#wr^fV^aCUuFa;__X*0DVVe#-_Xoj~={5Bxv0y?cCA<+bp?_Y9Xk zGfBvu5RfDwIuoFRKrX1wB&f{=P$ITU+mnE`og|=*RZBoj0@@}7ECVPNdIUtL;p`^S7{WxYdUgdD z+TqblBySC}fW4nAfd9m-f~oGN$>7_vkSrkbh%TRmWPt+kugG)-;9u!S@=kmiIZ)2A zzdg9O4tjtdMfV9Z&vO|*|H99=;%6SdmIdVY_%eM&G3PJyzVul~evQH8=6Y-u$S~cF zj|TTn11`Q)yVUcq3GSUhy$ADRz4y;IWcZpaU54Lq{y|-a-;lJaSB8Ia@5?vncge_D z>O$)SEsYVMDN}y0!S-y*>>{uG`Oi29mDkO>ru<#R{UjnYitH`4 zyXjBvix(O$@^~TeBl38T$m8f1O?iAN@2*1@pZ9q%I;vu6)^1x=!wzKexgmLTHFCK4 z%1OJ(&U?b!=KlI_{4w@QZbH2rd0O;(^@|KWfg@nZw`*C$Li!e+B|0Ckj3s5it5fdm zC_*n#4J^+AmJ4c20+Sg}g~)o0UE2AC_H=kV7u+kp@gl1_o$P0rta=wYltoq*|9FvA zH7TEMoW)&2i-1>wMROfZ*>e|qD}fvFOEqOr$(Phd9g#T;8Am!YrzwjrW{jphrnh^b zU%Oik9Hf`M-mfeqFX?43_bXcwR_{0c$`*x{`TCXphB+diG|3zn^(%WlZ2n97mHj=e zth`^@>9Df<`juS>D_ha8EX1$t^IP4oEIDirYx|Xj_-Vb~#!Jh};Dg1kybPO{@W*Sx z&x65HIePBP!I88ha8!@1pCft~Y+`zQ(1*gsVQ^V%z~yOlx|eHD+R@=MB+r-jljr?y zgUj=(z}f7uwb**;d`;d}UyG;vmHEQfzPMl6+OV>`eq~$3$_o3Htq3cd-LI@XtnAu; zWyu5an$Uv&xK7U2fM|{M7x47dT~c+j|$P{%N|vr z4=NJ8L9WrV&>1fi+(A3~9));CeNCaIm*9aA@28iAc)wm85#r_avJfxVTNdKY^s*3d z)?4=f;%tR@n~854yveS7-!OO^qyOYr#kOnmH2U~LJWcQTlEe1Z-fumCkNmfT zd+I|xhv;wxA3ptO?x_jmInqNshv4ZV)>?8o4QBHeJH7h3y7>+CcBi4^me}k=_(!C`Kl$}sW(l38;3!j9o+I>}|H;rtA9S^|ye!M~omGjCkofBy z;>=Q+qaEMG$t%h6xO4Kh#n?-hVlUBSuCbSRu$PqS_7Yn~jhqMk7M$3U#5W=rAD=I> zmsnY|93`={jo1#c*^BSL=oODM@1g9%Ld(U^;{oD@W zQYu@qaeYjTY&z>#_&bNU0lsE#Sy@(vEux_m-onYfB$}$cUbbq(v8KcqyAHJ;>9S>i z(50=iZR@bc>2U=&39q0)%fSUVu}=9{|Fk&&_s`xZ_aWI{a|fKlXvmIleX|3PoGQvPS=KIdy{DAa((zjG!(%G< zj4KZ<*6&)<)K$kWH#eQPrJq*#DSg~mx|fHK+xfs1#T~61if!4?-^ZGa4Xp`xhRQuY zm)>vO--ez~{ClIO%sQvXC>t>+PS!D3%M0byBmU#V;1;nl>AqZYRI*prsR zPYA3`zXQKI@ULkn9NPal-gg!6avt^lYP4|A32iu;V`Hq6?ZgL2Y}Y$1>h7`h+xYXo zbG+|!u_s=dms`$7$aiSaJQ0KX4)r@9rTq7R>ttS@7t=l~Awz;vF|)(g`kSwDdry$rYsFKc7Z!{dD}iT`jb-dxRX+z;(gxO+$LJgGVM z9rj4>c>6BjSMwRO`qFz{gKOlT_QCT(hT~Yx-4`3~;@rE2M|gdl`^jY<9rvB&jJY}c zkHfbczD@}~w?ZE13D6_XxFfaCr@WDUYb0(U37cZJ_)boY@H&`xe#L_U6&XY7OI_XX zoY(>JRZN;__@2Lh1$dHsgPqtKx5i?_KL~6i-?+fT=@o`8RB~FSGM0S&%{Ay+3i8J; z=t3^-+vrEWYguFI$IO2v?@A7k#rQFp&&4lH-j)38@ZU!K1G1Uq3m5-1;aSAbQT$gV zZ*}2VWIT8s;`V#*N)UUV_)?l}%DkjcX-|At^mwV6%HAKU=)I7A^1pJa>@)EzM(*05 zN_jed=Tbh~nA1Vdpwu7GcA-%|XA0%;Xz0x1AIJ9g#5?Zp6BcM7@VbAAaYc}OpRd64oIVfBAANcp0$a^E23zhREZMu%h#77bGV zde|B*8KnI0Vddq6l%EbOzi*K83t{Ce1}P88OZxm*4^o~SHovull!xRdz5d35e|Ak@e{PZB@zOa2P9;AG2Sb5$cA&Ek*Ne%H$Ynlz*K1Oec+CI`quXzJ5f6F zSsHi~pT7ZPl=k$!56Niy9wB=SfRWWd)srk5kH4JiMAebz(r zo8JEu?(V6wmYfgKO}mCiXAT9+E!L8^>z0JgowGV%?8#x}_Cd;lxw^N4dmd+9!+j}F zB1<;ek+nm5xzt|=Bhd^7;2nu&fG$!@6Kr9Ck6K`GkCH}Cwyfoc-YL9)aw}hZj6je{s#{Z$4@gB->x`(yyEfoO29`mv8iXxaPKGFFKNa^HsY(* zcQ^OgKpXyxDm>bcnY*WWR)g(M_>E@$jF2yJ`&JM8A@W4WAAWUT`o+@Y>F{xr;pYpc z+Q!-+y{Y-M)n1f7>GfpoP+qroXL+D*q_X#R-j_Yj8apIgsgBL3l;Zwb$Z zZ~Om>gIi==`?y~^6@8W58!Y4b55{tm-|hUCcJ>tpx5(Xz0p9hrJyPtC<4!x;2;x&J z<>GUG68`%jcM=-+MJM^>uH*0Vj)$DuDWQ9a{Ra#g!GFMz5uRs1OPOCgzM?1bDZJ|T z;1+Tp%?xi-#>xH3!e0{eQBynvIZWc&iEHbYJPUT@=o0d()WT2L#~^2@s?G=7@iRM( z9V1*<(*hg{PxS-(TykGtuS~M|p1dJ^7rDckF+F$>vh019ZqLte%htY~berdxt*UX& zHv>(Q`vt#L7rd9~I2MDqdRBg&y}un8SO_fKhL2xy6R@HC_(|XT-Y||$LF8ZSezLX_q@om2Oqyd)Lj> zpTF0oZstzk=`E~zpoDWFWqXXW6O{RXF{er9&_X;?2mY;gbnK^7laTmGsW9~kUP0D;QI5IP>!L6T}IoyT#7O;$rxkr4s(Nkm#zRS1P zY!$gm_EOHpa`r~E8f&6ijWwAIoT)REqjGi*;Olh+QNaelNo;+7n@W_-fgJx5>XSzqT2ce4#2<_@bXJx$ddCx0b4 zAj$W?j8*nYz00^GeggAbKd*29_cJDqHPNQd^qS+>VN99j{TgGL!uVuP`m^|1-aMXt zm1i<{fhU!{5*%=fG01tZxHY)tVi;WLG8k~74S)-Lk*PCU?!vSxXU#Ea>d$)D(HzGl z`ur9$ab0LV>q6@(c&IjPJ%`cO1=iy;=mU4_Hh(5~&Kx^uCXRN@^CEHV;rrhLy$U}+ z>F}R&e$Jr_`2-(nffuu`=r_XOHP708;0Nh1m$UcjN9yK#LjTiftBe2Qi)gmd!n%jI zkwahpB4l55i-K>yL4R?fwU_ozQa>`(9&29w4*&J{!IhtK?j_gLJLp^c&UvCQhulx* zo$@lSY0Q6cI$)f=iNN-|v?F)eo9FL6@+yl@`oDAM`!n2e`9*gY>p3pbk2)j3RmcYg zs@3jjSG;9+mc81++{^J-E{svU*szZlL^>L#aIemG)mpKGH3wfeyY6;(i3}=dwG7_Z z8SUj=^VBp;F2E9S^b-82Bv;YW z1b0?FHu&e`vN9{kXY^cLAhU=ZLe;#J7e_8ntHU>scb?~+Wrboifo zJ~`yB*nwa5y}45xf>MXy4#x5Pn402$Sx5Qapzdzw`~v6h%oR%P?o|kF~hSmqb*T~qelfYpHm%BMj-pZZUaGG;2{ojQ?`WeQNw2Zcc{Oof!B{{^DJ$q(qE+X7i#kW_Q#KC^DJ!|W%L(n z^CWRtAJNuX+BM4P@4V5Ug|f2=E!jt{fy|G_DBh{`_iJ;0;Q5%umMp0=ioT|Y>MQ|A z^*xWBQTeIS*3;mUzUTCD&Uk(jIF;uwDS=Fx&o5}dnzdZRbMk`}mncfJz$|&QymML0 z^}t)xm@zY!b_O%#y_3Yk6fy6)%-bl7ow4q;QD%`c<~^5r8)c3e&vzJQ6VRv4WzNJR zXBIL4`p983#K*gYHuHd$c?m69zof4}($`e#$n(|YGU$6AJ7byOczyu;Mc;GBjNR`W z&n=M*?`mrfCuXZKzN%#wu0%JDr*|vk%Q^{#! zUq^h>JYti$N7r^!C_d>X;*$!D_$2Hg3%6Uy1w&u9;dNW(e3z`Z1Z+w86ES}+0)2iq z^2$0TFqwB8$WZnOrQ4B;T`FJ6PTwEnRgmB8!?>e6TjVz*m#V}1$2Ev1GG-=?ZGDD6EwXs0j5T0)y z=k71)>kYnIVt+5ak4AJ-GWQ)i>?G>`{r|HdxMj=d!3>GzIwiKb5UhDZZO-MH@xC#h zw|M^zeJ!lq+38>%B3Oq=*1?K=D)NMpkG4^GIB1^+U20r&ML=Z0lWP?3yTIvoc)%Ud zgB0k7!XE3q)}J%IHtM*lvb`yqQpuieC|s50)ne9eO(9+`L#^8?d}{kH)hjaMbKfw| z$?8~lv+-Q<{@i%hD@#6t9SAtp^9~Wu6wlrD-C{4zu~{n9gx?_^%_aP+TGQ-I&~%-; ztli7L;1*yqUV*+M=j_$ryMcG1>GEzWwz&Q5N8_4r50KsVv)4T<=dmtxfs-O~S6THn zcU?qIn_nfW-hO8>jpx_?w%8R_t29$0_9S8{u*1Fy4~atd;Gor|& z8KK{cP>Uir>YsV!_vL@j)LGHB`91xys@c(v>(97BB&V_Uj zpX&M1`siLW_HJ-}cQv2JC}Zs%jNiuI`p^fOzE;f7@Y#c&D9pDAf17Gzd2?BJ-A_tQ zszATHuplasF--Jx*xz#0VHJmg(gN2GjH zsa#AyslfOw+HWlm!6tJW!}@4E6I?nhY0e6Xv)1#N71uONEcWX%Ui9gD-&M`83Z4_W zp?xCw7Up7lFs2o+RXn}XK z)3={@m^1PY_4saM%+f~P1@f0NW*MKkx260SSxKHh!MpN)e>x@irkS+L&3lrQkoRMS zE)VUyW6&PqJwzAa(fu_fSF%#6JzGbfW;Jd*`KX_4sY^~%$c+N-hzX zla$IsavpfjSc;wSzNXH+WWSMDaXV*7<($Ynl5crCIRYfU*3O(O$gR5$IeQ+swv4{+ zDJ##i(*8Ze?G10nxR<|4A1CNT%ig^$id?=e=%982gN5LP?ZD__&OKwFo(u0T_V8Vw zsF&pWH~G>D$mpgYiQFCJYzgTK;U5KFmNJJ@aKdJIxYgLSdf(;z4)t!myh|N<_Z0PO zM+|&-JtUkwCHqOEv_^dqmEpiW(yr!Rn{ys{kJ;izD9G44xuL;dKyXv^Jz^UII zDDxEFXdd$vK0)w74L%e*`5eeoj-KmAKME|@2_MgR3;116+`A3g!;WmS5cy**_aek2 ze{3h`rucu?p(hHrC)7`XRuHQoXJRcjw6%70PWYS1Ig{}S?UTKfoFh7oliX08A(4Sx zoLyH{#ihRLwATgv3v75;3*oa&UoG<<3{Cm&Q?_pR#`Kz>6gxiu@R;0zfWB(sLfmk8C-yF)}sKHARh(T+0pXdU(dWoU@9x)7K|Y;k-ut@%^r4Yif#jqYsL*v>l6j z!~LtbCcUxsL)E?UR-Q*&9EW4zlc!BMvh^eDH1ak_H@vBiYIuWp#P`2r#`@&y{iDtn zl50%s`TlWDjfq7!m9E^N#0t*3Tz*x#LqlL~Hn==L#emarTwe{mRspX|pkreH$mPsW zsD9}94%X}@_AHO&@a zwwUs(fSJGuWx-GJGm|z9{vy#AD|HLAdh6y(-Lrjl=TN>DxFJ4Yhr@c{u)|JXXWEaX z&2lwqt-xhbHu09|J(u3C%$TAo`g-MOE6q~ZrNgPc;%V^Q3qYIYxlzS;;J=)Q) zyU5jH-uI(GV++aEF&SDqSPs>>Yf_e%kypEHCwV*eOI~e9MH_2#36BfR3az;x8vCT4 z2mex;*Sv#O;7M@OGwi+K23^L79&`6YXBurvT!}q~`Sq|bAYnQ2$uRg=lv=Vrayp{>F*Yv|M{J1e?s$sf+S znCYaBjgR?$A@A23>wC%j&}L+-lp>i|9`!=+SLyAeA8^rjc>BkU`4=DI8y#5Dn|u$Y zI}x41dCsTUghlR3fcBHGa60R*%Pt1&kM@Zi`4YUb@OI~UH;4?mA9{a1u<5@_iAlLh zsl;ZzFcJS(=*)|*=@CY*;E>OsTTOWz8)&7$*Cl~FM*AM8ZXXR5o6%^W=+EE5P9bNz zzpZEkN75$_MRM03dHcW(Ua>JXT3Wbw z30@I>y={`RfV_{Da;`=Gm9l(%CWMbqsZ}aVfhnQaC+`w`li=IW_=bG|{9d$HHd3dx zury0Sk6uHbBjFbx_@}xVxoPG(^e@tu|6(vhd~X^p@kJtY)mpTMcE;0zTp@Zx(Vxk@ zWzA*nPtGy;9&Gx>kI08RABA5reGpoJ;Wl{rVxD*GayM!FQycuW$2~`fr9I(CO#MQC z9a`Vs8NLW{VQW`s3F%=i2A?SJ)?V9ZKh=0w_z#ii`pYz?JQF-9KCBk_5i5MjF!&R6 zh$~0n-=TVi*ONI^1OK_maRP%YmXD3yrKV;Yx)QOA#rY176P-!|GFzP3#fty;>!J@- zeSSMUIQ;a};KW9BtYv&kpmP(|I{dXo*J9KUulojdn$dotW-|?mMiws+f@8>9G)?D`DQ`&6fTh1f)0bOQlMV2k#qOX#X3U>w6CD+Su z#*r2phv=E2(Lc3~RGZ$@_tMZmi5w>RM&4y!lX#~Np9$GlncGQV#pJ`=+1tVR@EXqC zFXl3zhus^Q&)FT=iK;_-q{fh5voWOCl)aPp%{6(FdKx%e@+ap4Kjs-73_gr{0w1G& z4b;{)O>>O!K0fGt+#)`dK>j`V6Hj988~5K4zTA&Kk^O66TaT(IZFX_ zBFJ==g~Vs>1xH+VywJWcGv3-SG2R#%FXL1=TQcri&gW2LEoTozSNKJ1aFHCb;jp6u zJO3`co}sS58NU3`X2Ch4=erqvauayvM)1oVa)agJGi2!dq}_w8bz{GCu#9IPv&O>z zgrA2$)4n{HcIiM1fCs(onnOdJbrYh{;>|4*K4P+ zCI_}FWAF1jus5ZmYXe{HT$2zWMk+gJFZhjp&Djke!=|gT?vhU#e!?s7oL6qm6kVA4 z-$_{(pI4MyGo*e1nIZ=rh@461GMMSoZPb?D;Pq0Kh-^TLQRvAuVlWPtu9C@S1PAn+mO8bAIgH@-S}9q zUY~rzrBuFwjJ8irtVrkVqf_zLQ6FC1+bHvq{}p9fk+c;>Tcc)^yM!Or_7yuSt>#?D%lum%?Jzr5cLPD+Q5F5;bP-nk2Yvxs-9dB;jw5$jgX zIyJJVCADg08S68fw(UGG;klpxDUYg^yU&f(stcUg|gU5(;LdC&Xm zX7I|)6lkROdGMG*{Fa7HE^%C`5vAjkhAXrD-z$IFf1STekL^lbJl=!sq$$hCtLl>R zHe~s9KBA{hRO`12?jF5r)$t3AMb_;~zU7?V%@`8l-v#F6_X+ex-N+Xi_>$z@z+SM1 zQua#c=nSW3z)B);`4{Tv)T@=XSGkI5J!$kUihi|FdTMr%pU0}Rt zI55h3O}I|Kce1z@-=iG%>ku%csbjBAd0eer%x}rfX$M9ovp*%AF)gNHYYAu0gWV5# zBfGFe->2!PIDs=?V<7|?4#`6PUhld-!-16OjV{gvUf7x>*(7}zVUpe zW|Ki68i_KD3uAO3cYs%e|H1?R zjI+vE&cX*RT+2BqS*7YcvF~+fmdL-Nzuw31(dx8}M$Wd4@#ZwMp1g0KN#Scttd`0h zti_5VWmdo%=@Y*-^yZbP*rRuKK8bvjj8}94ufB>u-}M0_)(?2-1RnasNdCV8BN78w zXBm^u`I#yGiJUN+J)gq!Gb5F5dFF>F8_ih>{u)@1t=kGb9@SFZSt*?F7S>z*`tCX> z^6HIeU95{v(_RyPXq-=cp#(mp%`?0w|HZ$v6&;1fy*M^-+)Py~@>pw%I|P2N*2Ze9 zthd!aJZ7w%b4{&JPEl{Hl(r^E#yt!9DK%XdZ zg{`5x(Yh#5FSdy=f8zb*2Qher(eMa&LJRMJCVm6j_;qOH?f4ci#NIMOw+o&hiB4zL zh}*^jw<~^d#cjD0(Kew2jhwYz1xz4Zgj zG_&kK2bR?V&w9Px1IskC>~{mp@Cz{Ny)m#%Gt2%lu&fSRsrPqgU>W)wqpW9OSsk=a zuNRp+a39RFD+ZR;aSo%d>3jZ0Xz!dn|7ig^U_yJk3|cV@yf78G2tezv<@Y@Oca-lM zelH9C7M!#`^xMVn-J##2^L!)pdm_Kjgnp;;I}-Q{;7@o3zo&+Ni!DxUO!6E>UHr1p zZ;X=h>qEaqpRqgiTXZ&Wgnk3R@n=H6HGW4jc4LfX;-`#+ykA7`5-Eyp#fd;HPDp^+NcNy_fFxr(E6p1stbh1Zoiw@_t)?>s8uTu zy%JnFkz5Qe)<1`H)v-lzk|Ou!rQ4n#nfXdoYNp_(5^_+9j`qhNtDBqg4G~&*=wbJ! z)77Of7uAkwn8N*Gf}2FP!B4aSeToC#asl?{qZkGEL>*q5^%i{`8Llok$~aoUWjXMt zG1Jy3zX={o`L0s=mDP_W2f<_if~P!zF6L>@V{`(3h2Wf{X{}q^=3mpG5|=z(iSfnY zw-sZFcjSyvE7!n7ePoR;dUMi|tsk-mAM)Nu*s-H5QNDk%7NVPUG8X@vPWW80u>^kY zf77MkONji~jeVv06KIIg5%GurM@X0GABim;K4U+0OYoY+qy$GP-R(NP75};E<;3VH{@L>QtdpPxlvrK0%|BbefX^-t^O-&>>UjUCKGL8#?a|gVCRe zL3G|C8?*1dejPjbf1a_n{dUTS(z9Ppne5Mh(VmUp zW*efP7vJ-t>NT_XUqp|?#~^DbcOSfl|M?+4;l7I^t01rGz8=Dt3V$y5QqK^ZIUn7*qjXOc>uwAUhc9DYJER}h{@Ac-*sNsJ*V-cL7vUg(7H~e+_{1lzK zjY89H6z7;{IzHfo*(gM(?{wxi*@5+ZY!*2WsZCCDk@x+_HpM=qvJa9QK>GbBb;9Q^ z`uCh@cjXyy7I1tdP3Pg_d{eP)V|ySsv=T2i^ty*vZBnuIl%hKt2|Toj-#hJTM{-=I zJ=?Ii#QE~sOQ|b1p#HX3(cy`1M|3G-&lCB`$=b^^``+!zovg=F8}az8QwKii_~k5E zHh;3n!QJG=K6=8YymXMU?#AA@bp8}Qr}n;{x%#~V;-4b8S7N+6@WYk=JA`Kk4>(t? z+LXxnYjpje*v}JvZss8{jV!)r7B)j{>1Tgnd3>v}AANUO%DkRKw=H-ehPjCyX{dRn zh0TjNgUW(E+mj3NZ9L34{OEeI$1JFrKcPW#mo8;K_(Hs7rL2Pal+RCZDCBu{PoX{^ zp(!FGm04IHY{4=Y_&s>Ffpdxc5_72y&E*~HT;9LN*qZ{`ANo()U!OdNJIGVw+?8+i zgO{E2gIhK--t!@UQ1Oq|s{3GOg$tMo*-v%2Y0Gi>t)tUBt)q+3tyNBDzssPHYbPk) z=lQ(B=U?ceUU<|U*uW>+Vtaj*Wz=&YWo}RYP}QFE^Q~F5^jjWPgkGK%yU=KSd;Z8; z)dMq!<_jG_&)HMGX*bUx)(d>0^)2LCxoR&gq`&QIWCifCFvpryfgxz&RN9!#xR(Me zhq>Qb?sz_9i9CD{W8eS3W{}tMsLVN3J z?|JTwmV2ZBC9w#!_o3=|{X^9@U`{WD<|Opr1vL>6wfxHsCM%k?^~ zLwDO#&?!1#f!m?({}~U=a%W(S>`6lC9Lu}nSNkw~b311MUDqBrpCknsix}OI2wo9? zQfc=#U`2Q+`F$(DJ^DF{zeLVT1wXDewx*2n4-o6{Qsbiqjm4P|_>l5rg58qHlgUe~uGQ}yaC*CYoF zU6L`zk{3i4w^Z%|4zyuPj0)@tuKStOw5LGNRb{W>ur~JF^qCM*F5a8l)G_f7OAT5V z?_1AWif#7o3&Fj*|6Z7Xf&Vh_DSiT920s7H`{O#*&6|n28%#H^jdM5q(dPhj_yhL& zK$*V3rq5Fev12vBNJ$d*Mr5*`YmJyv&dZimd^h&4&293GcQ;Er=+9=Jq2EUQI^(O9 z`xMr2FMF!tbKtou&!r*@;7d`l8`zgMv#<`Iyn~JJGyF;MC22MMN{%&g2S_=-aTWOO zJ5-0G@b{A&3bWDIV@H{~hg>GJbhS&hbB%3C%a+)ej4|l< zArv#V&DcYm_hC;tMI8_A)dQ;nPxZiR4rgMSw1xlpPTCQ^*~G0iH?bZ(-^TO)Jj4Bp zrNYKplJheQpNvnfmULngvm4c{OV&4%cg*$u8SBgb>H91?UYYL%zITpDY>;=1HS6PD zM8~+(lGvc{2ld1sqKNi1&b-U>#rq<*`~K^_8u@VMAZy*<->m<9OWh*zTeEU`_-cI--E5C>FvG5tmXE>h`d~Us| zdUx#4qpykndGx(A_@2)9!rKo#{{+7`^ZOOP_wt=K?#21axR>WYGVZ1Mca8hi{P)N0 znV&cA*Yp1{ZtwhO$GtMYqL%z^=XE2c8uvw^_jZ0_%VL zP~9v#4Ezcz8-ymXw&Zb3_pR_OZ=fFc;50|55sr%eQyR*rE7@`uW&Cm$1*YosGZg2j z;|%rR*Wf|PJzztRXh)yuK(82qevx>fl~MRKSiKi?{~pyRI^ViWVuF$b;GfD|@CdX^ zk5QNS>t}Zx^d%LUS?J4daC7`B_r_Z2%Li8(JbKF%gT6F!-u6IW_Ca5M1ukl*9TV<< z!knwiXJ)+(?I=JOE4~Bm>Ch_pzhAQsi&;-Ub8kg&anYKbUSlO^-W^z>vZj3{jy?3x z&uB=3XAG!;SD;^&OBg4oxx0vU?4?)J40@FSy$ab?V`NOy=M?&MvUdJC=o79+pP-LT zat|23Ojq^jXLnBmIEL{oXrpb>t_tNc8{_+9QE-d+ztDDZg0#*0 z*i?=9wp@JHZJj%=VJzJJWkZjipt`m-J(joJ#@%0y7H}(ff3c@A8u=P+-2Ii4=B!Y7 zU&hz?m=cgN%NlCrEoe+us$~2Z8Al^$TSGUc!XwIltYiJ#SbIZGL*Dz7p#%2+hc$wJhpjT%zaih)Ohg@tBsszs@t?cavw}^I60hDN2a^ zQ?h1FaL8DNXOTYdrO%ct(66-2YDnbHc5GJJ0>^FNM80K>_VIgiv<}n71@OUk$@3VQ z)3IfBe4XlHZtKFGW~ee%0&5U#?^_=aMnG9y-3w)idXK z`lAVB3x|)p_I1{KY=zJjL~MJkDYyeq^RTYRkr!^ zC>P$^Z2SA@{2I}Hw$er%bNm7Ku)jqtj+~Wt;?TqGK=}MFJdOUQVg>n5A0^)@cfl@g zFIoNpdYk_CA2;uY^NUiK_%Qs*5)YerO8DT>;Hh@-)PYF`o>HRw@YE|IJoRcXA8hy! z-OWCwRAgSl2jg?A^TC7R6`9K!eLj(w%qJDz**D01o*!&JgXj}O{O=`sXlgkpeR0L} z!RzzD?{mTPMd15F>_!Fnml*MlwSLiwfTuXGf}@20mH(~$Kg0cgQ~w?e?Zc(xuEEYB zE2Hd-#viV~T+I7f`g&`=G}e0iF?fa}62m;k zx0L=KM0cu%`pvTyd=0*i ztwH`{FI(m8DLA^q$3!eHq_Tx|2DA^uM zUQ_!T#XEuZ68)#i(~HhSVo$~I_s_%dBOT;j;#H^DFrIzm;UTW1Z}2+NRq4R(DlqWh88?j+IHsx#wwovlMHb2b#8Hce4NfBQ0 z0lABHmYi1gz(Tkz-HvamKA%qpBK?#)ym>s6eW~TnbQwRq-{wZ<=8^ZV zHFUxi%)th|Dvz=?6kdTps2blXena2_{XP<*Irs5C{7EldAiRoR=0)v{&D+5@Iy8wh z)#J%U_n^aM;a9z4)8hAwZ|B){{~-N$vfW!cKd%XSk2Ov7rE`7;o12P1i4j|Ed|+B&s^3)}3Zzh4eKX=J3jXv_`^n4zjNqqXNH1 zK*aV)KAN<=ZjJc4$@op2be(a60XX_l^ zxiZc~L(lv)XI*^4ZSX>6*OD(TN^6L}!i4d7-=~a2-~*myfroO@VR@LNhEHofez11N z=p@%f0`Vvw;Ayb&n&)M;v=zcZ6S;G;cb{H!=w~vM@^5lJblVqeVCWhWedtR!54G+m z#QzxCLG%tG8DW9&+alYn1FxBFROJS@h^<1_Mfft{yx1xHGC0#!Hr9I@*ev{AgjaA{ zK`lOBSBLifTM_!$s5>ZZrm=oQ!J_D`UU*O4Y{3Q)v`XH=7+^LQydDQ$A4Ytz5tHG8 zm+I3sUJ+=-Hmc*9iHdg@ztvQH&1r-CXqwu1R?2TV5AFPxwXLy`TbW!5WwaBH6ZQjN zJu7dc&tiCq1)L8fzui0Nwu1d~x}VbZuf}*JZ?&{7IQs`TU|)jAW3POIPb6Ql;9tQd z9`JF!C8V3N7`mC~=~I06MK5yzIcF^EZpyUusr$eTrc)EW%+3*k%=VGWOo1;Wepan$ zf)|na+4wsb2Lwl^RJprS*>C8>ed6nB2VXV7^NF8Wp)Ob3JKONd^Z@fq;hANxm%{U` zuS$;HJzQO|55J#-;O6aK?6vZZFPWR~b=cLnPf{vxB<6KL^2qJbw{zEp=-PFCbd51I zOPrAb)A7DJymzNn*?cZ1^lnbyyCPdSiQ|>M+%Iv(Z8P-!T7~|vzphPSMR2?R-jtbM z){a=DOLdEa+eAivg84?!c5C?qS^msWznOjgN(_mtm5sdl`z-hXVB1H(n9;i8f#s6p zGY*&xt{DkDCV@A{fIpMLqho=Salqyk`0$Rz=Xem<#D8}Tz81*a&CV;~C9oalvKQ@~ zp|rn7>T|o9xz%yTJrhzh>LvD-0KcWl2^!aF?*p7L&+?MU$XwNP@?ntP7nR|uL zx~4a5)o!?zxY68=&IMopmF_qDPU!vvZSnYh)MG7vtF%lQ|66`bEDQYELUTXt zPi`&opAsh_a-I$=_ZxfhUyMhm2k>`Ja+(P~@sCCq!I|>!3c)pNJb|?nd?Wmy;2!Ar zM#;-q_5r%OIAxE}3v|iZKU|d8q{T~KQv4~waR$#|#0xzo>j6BtXlp9JarE4i4~$8^ zc=UU-(7|=vVr&gg6+0&MI46zqA}5Nz`O~<%WLZyvOKHP|ozcL~UxuR_WIt7#q1%sw z9~B-_Y;E{xAA=`6YQmJc->YQ5siUE9k$f)lT%lgl9L0;TkFH0MerD0%X!;de)xnud zP{&lDbXf?`HB(>5kD_&$Mz+`@@CD6kZWaG$=$TH}pl71Lan{ytJ!kMS8`3;6-gMdo zj})Kd{UmjCMLlDM-?*gBg|sRC%RBws6n%-b83=1r=I}L{7vp{#{#We0d;7JSbD43T z2#xbov(0x6d~z*y#CK{dxMa4*ecp`S9*NK9qxfv1Z$z$rv0{IOcOCZ+ECbK4vqd)4 z5R15lII1m^l|90rNM3OhFD#}#e{vXJ_>%#PNjwi=2S111ZJ#BnbB7a|=s-!9XR6`P zy%L>Zh@ak&_OmGOk`O;Felv0|5|yg)Rh$8RUnm!TR^DlYHVa%gh3I5c7@gc1Mkg2K z=&>pr(*9_S=M&%|KeVUfFC_C%2G$EEavx2sku!2M@HJL{2OLXmb)m!Fa0hYiI=qb^ zrNgP zuVOoPDNXQ;eeY&Pd+T_&iFeKM3IEvJmUEQ1hVq@1AHw$E`@Ch8cLmSIUe){T-BI2L zc=iO(&l-3xp+_laIOn1Z0>+&94%(DQ zj=9L6Ya@RywDYtZIpYb=S?hmrp1^}!z-j)gp{xJqIIjyErw%iF416|==h9{?HcdZ# zjB11LWsI+UW;_>|6W5N@Sxr{;}-g;_dhr6tc1pLp7SaGJx?ls2;(a7`+58bYC!v{b%*~{mcSBpp zTO^)0q%%RsukST`rgHAafX}3@I_RU>mK$BcKSbxndJ8UIB=7Joyhgq*PxFmDZPI;h zlCKxv4re{|`D&x|_4#k+sQ-^P{{M#mt+XvP+~`m2%Za|f@?2!QQ|KNClkKMP+?4Gs zUkz^AOB*|}r%M}CS#y0(>zR|e-k%tF^(orjxz>QEiM%K0OYp0c54xAiyI7CkF#i&3 zQfC`y&V(T$^TSwfHhl$OeF7@^4pxlBlMGhuq4aLod~%N#<)g? zjZ5+d81E+fs(3fI!5Gu$7l2>RzKloCztAcRbid;*=DW#|_kN8mx{~=WMMpW9EcGez zcZN@k;qxc^q`~VXs)>%htdaO5h|j0tk03ej;)n^x*B0Kmk-0ZvkK|sn>7|^NoGXaM z1kX!-4Y^0+7&XQwz6#>sATR?jgB>-oqJZB`A-#j>B_t@wmR7xD<947olX*)%67f4= z&wN53v#|H;{QFgr-Y3yfjDu(RnKg-npo}LPSk$|khyc^&v z)>V}E-e?fQmW<_sb*xWh3T@?z z<+g;xSUdHJcdOXXoHUo}u+=r=K2^0j+DeFB`yYIJL%Oqe{+qJSXV}R80&K9S z;6UNMNBi~z_mZ=sXXV$}vzytwo7lq}*~>ZLFk)z}mLc^5=3a_^z$w0w{bw+iV9^y4Wf!EaQz!S?^+(Ml}Veg;{?5T`*sJsIB zl*Hq!9U*!W)#oIKQ$D}_qQAQ)B*$FSw}-%8bE4=k;I~BXL{2Dv1({x8^CES`=2l`& ztSF?s5cuRwbxXc3f4QO0@MBY3#6AMsu_Q9qJR&!eGlM8^o>(sT$N!EsB7yYIzBZibcPkBJC6nvIa zN&Fx%rH_aIg*GLoi5zF2m9NMWedqrG%aMG`SY8!h3dUVd{e0f*AiqTi?}=}O%u(Kv zb0FV!%vI_M4HrD{*@_j*<=F*%iA8VH!T%h_kgRS^zE0h~NZ#{M?w=7_PjYpca^Zh{ z8qEA`5Ix8Xz+A6RWlxOv05oc_7;f=1lQ?eCuLzH?!$fqfcQt*A+^O&5V7egq9r1~J z;YDonz-Nm^$=qz!G8Ybu&WsEfsir|6>xX*2%f=#0i8$`*c>lHnO*ESoP}ozXZ%*`K@xyN0L45D&7j9hk!LFN@bzJA}SvX9|6d5;u zoR)DSidY@)W6M{Uk1yl1mJf2{h6-1dAvcyim}Sb1o#+n4m-vHI+%Kg%8Y0LKT&p?` zcRZ&w`N3%iz#(~Uao$#7^aQpa@vYb4<;qwchs>U1_~Y-V@88Qi(l_zjZ6oI_lX&86 zK5Y}-J?)w9p3(gNX_OM{;v0R|hQcvXq5Cr*?4>uZ;Wh_lFBbl1j<;aHt08^l7>6$N zp37nE+?Bd2Wk&h_^o9?1sZHk@BXYkn#vP1@IjD^PF#0~>uf#u3AL~+MtgGSOl4c-( zFwU8*i8=RAsn=o|dhV~#o~GbO!aB{23S^dnvksLzvnpxFK|3F?hU+LhLpwXvh=xeU zuv3jVeEJ%-N#r7Z4R4M2{*d?0KKrk?W2zFf^!CS#=idJ8eM?tO*|xr?`uMt@#hb{L z=2*|T8+J#I#kLZYGMyM!?u?y6A9XL0!+N6H)M@tdOgwkwNF4LOzlNtzgsov9)_a~g znCn;-TE~=8=snMnV^Q=}ug}VA9HGSEqpQb%+g1&`?R8+J@Y`|T!+cj1#CdamZ>wA~ zeXV}aMH1t@5Z2~*LT!pKklRYmFspXh361x2_lv$x_s4m^$vX+G_dNE`McG>R-Oj$t zTszG7o{76;tn{-WXY3usOlQ$%Q)vG_vBnoAu%A4@>tkCrJkGf)-%*b)j@+4Jd-rxqy!R`iF+WXP z?J{4XujF-WT=NZ)Z;pi9DQck?Ju4S-{%->h6oU^IfER9sH@F4=-}&H+dCShsn7a)8 zq4Np9B)`$nxt{xM7^a@EAJ#b#s=SsykY1Dhtkn3WnAGp8vpFz7SXfn zXDBOyIVJj@W-p|ExNhE9XC z^YC!tV>-x~!uysxJtopOe4lQ!5&3K|`XIdaoAike2Yst@v>v})F9r`o|KOxuJ!B@6WSKu41`!OL%tE{?tBE@lFD-mm)JO@CjqlyAcQ1qj2}` zRq(6{%JQdXg6sX=PaX4=|F)~~{^MPBN$++wKAgYJ*7LPZ&Yt`R$%npUmvU5M48P7C z#s8{*0aH9u^rA|mA}o- zJM$Tb=Qs7m`4Law=UnCFS@m(P=ewICRJ+47|A}J%ZyUp&-?It(h@%yIi0{h!V}%=^ z=}Ip+*0uJ^jxIano!67Q$=6fZP#9@HY$rw~pO~6R8}}-6$3QDFzW0_sb?lm(n!4`2 z{z%sgC0$+7t8O92Rcna({Ps=LKEJhLdfArZvmFH5)72w;rpE|7F)pU)$excEu-M zHPHFR5j7hv*OF6tdd2@_llz@qMb<_(eH_0ZfAqt14|lyk-2L*0FaBif z$h}t_{p6tq+csN9Ha!0M&71aozOZ5Q!^*bzmH5L~U;OdfAM;$w_3w)}Z~F1)Uu%dT zKIZ7-4=>oZ*An0G>(BEy{rU6T8}>eIp^b#Y_g~z+b`Q@VfB432d>?+Ca%nRmJ9^s- z_MaU7P#xLup&I|(Bhc-X;qI} zH5#0{Vb!#4(Vv$dkG4cOVjdnIH|^nD9bV3H#LF>bzkh=g*YdB&Vxu2c#(qEdR)=DV ziH-j1@VMx&x*d*R#*CeIcuR3~anpS++L#86xq9y3G);|mGyx~4vEeKMU*OMu&1}~9 z%#Fj3-l9f!u9j!f_l*A#UYkP}FYlG>&q~Kn<9|t&a@KffvHs3vdFPyRRBS@V^CkN8 zN%Fi>J=**J2IIN-!JqEndGGso>FGa)}zULc^=b}SD-Olsge!ru?FY>|ZJFQ36 zTfZ~@%%81CKb$x0=sw=rJ^d$JEl0jH-n!vCt%crJH3Jxk3`&f9q zQuQ$OC(s6oF)Y9iDtL1z>u2Hq0-IVRxhGGHo=>L}AH{p`a_c-Hu_AqOrxK5;ayNqb zO=I6Q@8#C-DHI!D32}^#JeU4cl_lem#d;*4a|!WJqK}d1i}87s*em=|i)%Uu#!QJk z56`N{Oo^_ZG0&2Eg6pI`iRm`}8*x*A<^MlUA*2lla^)f9M)y zK^y+i8a~EO75uiIyGHPbwyAvZhjzh7*zkw8;}2bu=BiM5UlBj&Vag~aSGgExlf2}8 z>mm9B@wI!c6}s6YzIO3G?>K{(me?~}n7^U;+ll_Ef6Rl#7K@%>Cipx4^AEeAy&vtJ z9p$yL4u-Bx(__ugvsSV$;(viItdhL33k&2vdu$GMjMK;c(a)9l**b`9 zmkIrt`cvlfRo3bxFe~dXXX2S?d=9Y@3lAo1(2ZZO`0DwG$fYLsFe%F)GWRCBEZUuP znejgn8vl8G)TAvl_om-6rl^Ddo%@}7u1xV)bOUQ0=#Jr~d-G=M{!HMG{=Q7Y_m%2# zpoV_@CSWFkxJbzyq{vvnL)I&qjWH?B3L!uHswGyVLjc-#iP9%lmmpaCDAht?-ZD zo_quKs#DR-D0vs;e>VS#*X)$vg1i0L^M&py;8otMtYN*-q0XFOyr;LpdzJE@*vb{< zdr$3x=ahHT;6ZcwFY&nr=p*fX^2Nt*u8|kR0S$KYe=h&mVW(Wj|7ta&!mSpp$d!FX zcV=6)>bPCO$CB~_zFmCFxhui9vz)>ddhF5`Pma5nj;WbC3ByOJ{cCjON1@yx3ph&hlDqg|zth*F3p^_C_`kP3S?YBBkXUck zRw(}Em&*?xTr-}yS-D?C@%*!GunsO?BuuBd`_7*w*peLs<%CvhU^mpGVmv zpLxL%D>W{#t-_-J%bRJ<4FjMDSF%QK0;O|p(H`e`)28t76-)BkBpVo@2t zC-b{P9aki}^1|s2$t7x1#W$z_G}*7QPux#emzSZ(J$mx4Z&1=6<-n==VIn2V~b^O{!Kq_PC2VorsH2? zgHCqve$DFr*Sl9XUSEg(r5^jsC+w%pbtg1N>dAkh1@b$d`FL12vBx}Q9p~7N9m?8G z9>BwMn(G2VV+^d1lQG2g8-uKe=z;u)*BE2KW}=UQ_e&W=Dr4|4hBC$=`7+EgNIm)g zOX}9$oYA1M7Uk%yJFVl=tMLcvAWpU6Jo!)1nVrU#;2=l#6xE$w3heLvv@b_CK6-kN zZ1L%rdWV5c&&}8C?bWl^F4_&RUqSs^@Fe_%o&(#g?_fM_4oG*Ro!l#cs%+rFN179C#>Uj}Nnd-}+x-7pUh4F4L)ZI<(fx-f-#PG>|f#E;Y@W`wGK+c~_u;?V#Qsh^t?N30VOzx#_CaEx z+M%I4$d5Z%9d{^R_KS4d9!vDKzs07~I1w5UYE$xqU#{N1dFYTY!|McC1LAu1e8#%o zCG5Vq-=pUg9!TsnU^?ArMQH6B=!rkX_xOeH!M=1F+L9^fw5|Ug+I{!NtwAql+@YP= zdw1#<@>6%yhqNpF)Fthz+#kpK{SEvtHkxccHtN9L?mP*6-)8q3u*_AVc&| zJ9Iuk^86*+7TQmKG6}p6JCD?^#!j;xx8oa zx)KY189u;zd0VXL?j;AT?1#_@;k{%(oZOYFCER%2hCbW1K=n?n@+_A-{j?aX?xXZA z_DFd6lriuEjI)|`ybIe?Yd^m9kKkKl4#LaC`9!WXbZ4?ZlA}S>V@?cs9t}Ll`!2*8 z_m0W_XA7+&f3-?G+v#IY*t*G@$vO$YW%Oahd3SJk;lMSzygjp(Sc?vHtI}R3wzt<- zxT|IZQ;el~C2JkLSA2x}U}{dkd#$Z{zH=!b?VG^+W3TDE-(A`mP#>Lv0h4|Ax_8Yr z?sXpw9+v@+t+Bbw{g%{BPxr_S!H4)X=rr7e-<9MK^-NHz!pC@uK16nqywo@I{b7Q# zS$seHU@FP?6l*2zdU~$Tura3`)mg5Uq9a}|vSQuVrmw&UqYE+o(h_u;>>u2tV%|GY z3O*OxeLib-=^gfcYbE38e|PaK%r(eYb5f~4gTQXAolo};1GwRHI%uS zLoTsB>^XRQ;aYTo1ul0}33IZ-hfWUN)i#+iiQhQ7f@3?lKj>Gp@k>FcTGlTHNqFNv zIpWf@Vd_(4+}n~2-yS)4jiIyM7^;f`5i%BN&0LU?esJ z4cmbYorN9Q#NzD+_k0HKxe&rV!lSZ>8+!NfYNeaKP5(HkUS<@=jz~lF)_t8v_DGrgy4n;OU;JX_ z{9Hud-op8L;yU2<>VfdOAKykJU!mM5Q3wnb089D6)YpKmo3TILggj;VrpR8LVXv;F zUHN^Q-_m{xd*)!z;>cC}DX=Yjy8lP+z(d^h?IlPQE{h!OTY20}p=;Sxx8v%~;wr z+7zFzp<+}2|J=>zIO7n2i=|C4!dsJln!@@^^Xd_T6g+Ksfuy}J9+X*ij0>-t~ZC-;e^KYCNM z+^cS%^m?-E5OO0K9lpGu#3y!*yex{su$!eG5uaG^p!I1njgh9 zkvmLmkuRoQOw)B`k#r4oCHkK!ft z1$d}=jPawh5xu4sqCFb4NAe&Jbw^}4@2%2)c$+dWnL|AHLzz6d=n71ps*t$|e;x!s zcCy!=bmZI6-FOmDd*MJ`@?!jL?g-s6COC0&A~`-ZWsmUO8uv%SyHA(3agzTNKZuXa z`y*{>%2BZ;G_w8z_ma;;_FGf)x?8b-iXB!S^+<^be2I+Mb;F0TETeVfTlh_%iXjOntBRc z{TMJw4!xMifXR#{vvneIBL=a)I=fyRPo7nDI`TiJ&kWE}h&^;}58^NS6^ybs%uku;y2d%08U z!uJNxn`ZDwEcEtNY(1>PGo{5Kf4`Al%ALE;jP1#rW`$*dJMy!~PJvZm@{ukgcxt~Vn4nID<9hfxbJ)>XIA)s49c72!i`X|59 z!xaDhy1u)-b`Z-bJiFXICGwx&kYi%};8=34Qa{O85{+**a4R;(Qt)93_5OKp*hp%LN}Oq|6r$v>vU^OdrP3BIG)Y<|eIG1vp2v;qwr$r%sjlrMhZ#}_ZOI@ia^BGK6a0cEi*?~SV zxScpwtyAb!E5DH~B)0j*v^$J3USN##8H>m=&L3}2PFiK$2`V`*{}gBFFH%K@VU6V3 zjp#P(B-UsWethhM;4oKOYx3Gs(Hq#yOTi)a=ptNJ;)#hZ%pn$HKWixO??g}6jon7* zbO*6}LWk3L=QJTldtJ!2GR`*YbLVS!A!oS=yjMQe-Bb-NmN=lf;19z z{)p^#fwmOuUE{@8BDy;3OF!MJ1;2HCn7V4Cv3HWoHPM%xXV~0@*13P2(%7K!+CDBWju%X*er63tV{nqnBnxOst5hP%$Kt) z^Zfw+V(nCe??5&#jNh|7!u(J@8RV)q?>Axj=({rifh$nOzIx&t3E(>uytQUhPU`c<5It{F!YY zxjN7Vq>`({z7AiFdH884d~OQ)YTSgcMuFk0(Z)HHy(;4@+9H%}TXtTzZJiQG=f54E z)Q;?)irj7=rgY0)yD6#2^!ZA5qFbqoi|2l6eViEqPnSEpPKnO&99X35wmb)tUrmS* zzmLA0nS#TwdRyI`&F3q8M9!bnV&KG5^1KRw55CePB@zI$P1p z82YJ$=;@979t|3?0RA!ud@uGs#vCi>1{{ePSyTLfXgl}#sOmHSpEJW{WoU#LeeHo;4YTrAMcFQvT*;VaJIW?kUL|;zjem1cpVZ^iJk;imv`HO?u*2`#e7N+n zs+}ypBH4-|i{`_t?s4)V({|)sv0{G3YaOs*yo>f{Gbib7*RhW$(~nIr?RH~;`E2A< z&_t^0EBg&LSu51{w6_tgM7Ol$w&yw^Uu<<>@5<*n8KvNX%{#feL+k9yIQU%E!% za5Z{YdW_lPKl0$8y}(*~R{jl=U&QkT*y~mv4fbzz9*qF@<{|TFblEww7r-kABK*2y za8NK@$a&B?V4wGY0$q)1k`c&VMZglC?5T{OO|SbUpN~g! z3fR71$>CAh!en2Oy(R6p?(&tQeeQ{wg72ktTOnYs{nrRyeA4y*Y}EP>w>P8LH&%O- zm^a~rbaz_k;qYScIb4WbES_HU-_l2XjBH%Vd~{}c&@KAi6K{NvwGrK2j@_jdnPo5? z5U%bAr(~nt4?YWi)e-)`nzKVX2i5d);m`a>UKL0*0$FIhtHcb3Q zWV@H_5?#~#IP+~b8tRL&_ZJ%z=RQK5oAg~4-jJv3ApErtJEZb-NnY3gP0Y)KzLRtA zbTKf#2j7QnE6ta;e?@uFCPeI~so__Ud5R*w_$9Qtef~ZBTw}o52kK;d^c3wJ<=%swRq??c*i6aY(H>!^4DHf1h z(a~8POy@iM@i@8Wa@adv_#%;O?#n@9?9eZl=dsplIkUSnl!psB!9yOZG;i>9wMG9N z8?I_mCxuON5mb@`?>PHtJ^yz`&g@RXN4^;7MGiApwO7TNSVCXf^i_oX-2=T!%ekq$ zm415hq4DFxV)bQuPW!nhzD{*S{kCl+&JWLF^Fgxdi)W!;f?^2CITm?lv7S-CrR=rE z^t*yHGA(Cnx6Z=l@bG@}UpakvxF;D%@_&RzSpM7U!{LW^Cm5UG0EZgH6JqykV4l;+ z=TID(XK@4%Hj;a>(K_F3e}jkUyML^T(YN`lKhd78qctOEhI}|Jier{&HgYJG_Gfdepp$JI?dJDs?&qm;=eJS6R%k8(AepPe)40yYZedx@!fin?2vh;X@-2fa04*jr`43ZT7 zJncAkk8je>>zi^y4G}ylZn5qB#Vygenh-9ET6fKT+B^9BMeh~*+4#2O<6!qQkA5Dq z#%aUlLB98|dxE8Zdhm17X&IL9*yY0EYTA`-P)Y6KcY*gA;7$&+NZWSb(rtY)s%>k% zE(12>B5k+)cOUw-iL6gb_|LR`DH%!U{M@3)LUaD6B9t}_+k-Ffkzjufa6V)G>+ycwo^<8Hjc7Sf&vfyO@Z~t`9fYokK6;XkxPuWI zIrY1_H@o3GqT9CXxDzKx?xUhnpAJbjY++xBR!hgL&vx>YZsRii%ZbaF@{tGmzj)o0 z9_4WDJYVsx5Z5+W^3JKIr`}_{b2QuV?97|Ju0Ai(*sJ$Dxt34;bZCaPw=sO> z*uMoE6By}#?PtGWi=Wj8;|!}_VGJ-)KKW|iZ6~$}e~xpKi-mKt^L~K;#r6Ca{5c!T z;T`QZ;49u6ZTq!b=QihqaKugfAEEyh{kvQ^-T@q)y)<|YMQ5Vda30UDKGV0y#>bTK zl!&fbI8zKRHUf(d^p*NwexW)K>;H^w`&Qo^+24w3uaS9A_HW~-b^2oF#;wzb3fF2*m;IM zQ8s7kvBHeAko>0YJc}OSsQjzbX{*-dtu31s%o@WuV$oMOF_wbWGafExJm^8|Y8guz z|Ed2S$QjD9q4!&9Q@l#?D39gCuDRtgUezsW7&J#`e(G zV_%@Z%qf~Kik2MvuYTH;!}0NxYcfSSH%`UZE@GU+G$$MsA+!>*Z@i?%ten zbsNahGaX-2Cr@UFJNJHr{FI`f&hz-I+t2roz3BPvkKMg>+hfUFALRL=XkLhMIy6tV zZtc|r(*~aN@3DVW8`R=irw-hQ_fW?$o;YS}Toad1Q4D~-k7W%MBWB&dX}Pt}^nGee z(G;E0t|jBAW#xA3m;Ec(1)<0UwB)9*FrICJ*{QwvrH zFP?kTV{^B9l8n7guH?+Nsq7E%=7+SCh+Ro%4ZauM(zhXhJ{yeScIVhv>z`6zk|86{ zWWX=$nGSf{WbSF*Glrm{qKhrGC;7~#BQ~v+J=LPOQMB^H_<^-G{y=1{siEPlwQ%Zr zcq8G5b5?e^61!cd_qFJ=vU+mVS?QY6vxmJAeGY76Od4AdTd(lY;8V2T58bh7eX?Cw`8e);Wj86KMU!52%Kf!TEoJ^(Ef- zd*TDEvA_rX7x$dDwa1+O6-*zvzk1xW2!9 zisFgA*a$PZ((Cfi>dZ3f-=u%>b{#vMGtxd=4}b&h|6!l4)r?nXYx@M_95Euv&iVQt zdX#_XcgK3?UHg39!@KGK(Kq{I9%`VUt#WEz@U@M=@ysj3&qebH33kBAWX(+ABwMoP z7(G9olj6HBhu_MXyz&99^>Wr-F~$0Bjk{I6-}mOphei9M96e-Z??9el4gaa$qwLtq z3m9$3`x5^RXUDsj|31!+7hU6HX;eQtCmVp#a5`k^+H}Uv_TZz64L=9ErkVns*K-zm zjq+)nb$ywx@*>W#zH43OK|X6~PqbM1GejRI{%8LgqW3FYX+6LtzL@_MztBlNG0#7Y zSS*-}Z_*m*{IqBhdswu|;Pdkz_06ePeir)9rtkUclfEk>eK+#i!F-J1a@=FJ_tGNr zL|V^aJ%OWF?_`X#HHJ*)6AR6Q_F43{{9<}5n%cmbp#Ic8?;id-?{+c%0OR+NqewKM z=CPt5oly#w@$$N%;IO`1}*|weO^(vi&m>PV{Y&A4Y&@x)gH}kp=XO;!L!*F+2lt zvu#n4v44rNYwZpor&mX0t!hWs;-0M+vHb{^P}lNN=IQkN5a)yV5QpXue*YQK4ogR7_BWml&2NgL`9an#;&(h`-Poc0j?-x`+TLEtZ_#|wVA1+B z@IG3X2U$by(a0Lr74uuqEsxyOI_lov@;iE8E0%w_eJwivN%pn+6P+I}KalpZ_Em;a z*s}t^1+Cw#KiYc}8ugOoQ_1(@d6-B1|7DKa$JRb%-)bMCvy9;WoUqQZbm*qd8&ux9 zPiruN8s9tvE=Ov7v%kOx`FGqxd+qqKACG76!YhgH2dz3#{WfJcZH{3~?fAK?Z-@7k zZ_po^n`)amb>k%Oo%cojYKYah_Q8qlKojHe;2VP+fUouL`03F17-RRB$sZG=Sl5-T z;Yo6#6q@E~H{XeCJnAjKB7Wxy>Hy-?dcWzbZG7UfUE80m*hSsG2Qs*FxmI$$>Eget z%6Z$Ws^)F4S~qV;)%tn)hc+PK3(YPLjFA+Wq zuN)p{B5SC74xiHw-=iERO=llG=5@6n4IK$S=eu+K;y}hB{DzB;!MmIe{GjHZv;}eH zUF&O7B}4l-U(>!izI;yA2Ew^TN9SZZyi1X*Vcu|glyq($jdz0LmHiV*zRCh^pU_l~pa z;J+PPAzREui%#DCTED!P!MgQH-YdFbJF{&flJ^RYWz&GCe+}o+t>__m=Ah-zeX*?9 zaNan*3SHc6f6q_&{;c%<5fM-bpAsZ(sc$ir*`HxhW^FZw$B>~2kq@d z#-On|dbt+jrqd=EP>d8 z$EWT`oT=~!(s3+6zVMmYVu+nCxS_g!(yaRWuX1lcwKd=5|9;vxIs6{BEcq9f(ocXj z72op0V#_zUnY~utii{;&WD)&;hz>0Te{<43Is7Q?z+B1VVv$@ZJ^=Z zEg8sf^ijZAeXf|=>FBdgF@_q(u#j+i+4XTe?G?-ZD#h-r0^~1(WUb&$};w- z)?yQNLaXNxn}g5j8|+`@91NJAg2Jodt)byRBv$S&=6Tpm1&-rt-!xM$z;hb(nRBFW z)mPVU$~VUxUOx^QMzSZ@t{mg#BRqeE_m1#AV_*9NZ@b5Yf9VbG`b^OEz~jLY54@04 zvFq2tQ4g#Pj(p$_?(ODY9lwtTN0Z~LKuyo0*N zyBGb6+Qwg+^5aD-gKn$M@5dUucF^80Y3KW~*}Ha`CgU()etq)4E_yq|czN7MeS7~F zKA5~9-9_vb@Tjg}Tw?7)=J@2agY}P=tm^s3HEs33F=N9s%Vt=3mI0o91pI9Hr-VlW z!>572Xx_?p)zV5h+=iXNlkrM@mwR^Rq4PP%7F>0(9{>OF!Kts*H@F`8>(sdF`i==T z18fMM8=~|g*bo}Q5$y@>lMDL-JQII#8T(?xfPKN*hm{-Ve|BF`KRTUS(&@lHebG?+ z!az^(G5cae^uCw}9J8TA&U{x~aoO_?51wx({KNn3d>ff>BlB%!zSPJbf)0qTf6RQt z(eo7!eHA;7<%4YP$;n}z7M5Ih2eNeQu`k zY;*e1dMU{$)zAS)FV&vPd~ChckTS|pdZ`xZJ9O?sY-BoZI6PY={F!w24!LVbHtM6F9uyY~FQvnl{F3@id`}W$d=8 z)M?iEGG9rRFHN;8$tRhb&wSaB_{>DEzQ8Yvf0SP3S^m>Lot_RoG$$Q~AAh;Q)>u7A1Wg=Z=` zceYK=c;JP}Qy+MJ^0WtvMrQ9?5o@18+pIGvu6x_B`<4ZP$B_O0X;8oXzRZ3X(eEPq zT|~c&hV1u`*uRJAcm9ci{T}GJ+8@(T*{Oq*9ZmAcCcrf*1FN{ToE5|ryjvZaErO*M=tVkCR7l=Ai6)9{?tb*pT%EUyD7kWokaIg@Y^}HMO7{HmRGgT zTT%7Gyp>f4=B2YnQ(2?EQ;oR%2(OT4PUw^$$1nuo?3n_I9IpqH`q1m1}4PxJ?w+lo!^w+Sym&d5XFxC6Q4cI1!G;LCCw zbx!O!?7hD=HxK3SExBH@a)$ADJu8kr7W!I5w!iuJQ8EWGmmI%?bsIph#OHHQGMsJy zk^aZltw?4F(1s&}J2vn2wAC5qe<2-+WB*~21N1YmU1{0A2hHI>R0d$SZV3y1(N_d!98myFZGyL#FxO|YzH30#V6@F?0R zUN|IMqGV6uk*)u*+sGRNj}Ed%k|jIwL3v(&DCEiuPS3qrb!ob&53T%s#qiXb^uHkE zV5+aBYDvD)_+{j_(sX$1{j5(L{YbwV$appNWO}6)cU6TfDLJqT{<<*6m^BqXZWeuU z5BYXtxY2jV&CnT;=(3wW-;)E^1S3NX`DHt2~8z($VnH8d`jZrSDWs0RGE@Lp0oZW)-@$Xjq+_ z*0<#`#v7r*h8>7(eS+O70nFT{mh!(x=Xg=sw4hlT>|JI2IYB+S|r+g1?)w z+t1s$;O2R)yVXC>8O%X*Q#_U4n?DGzhJxcBV6>lS4*-Y3@SF*5AhTPw64j5|wDcSF zA^nElYmD?+#HZoD?|Y_u#T4l+j4{inv_cPF!2Trs${4d^iq_U(Oj_%7eX{mBd@8qL z@7)clqP^C4a7F$L)_39u<;QG&|7im?O>BFr?3vOjIX;npMi-wL!L?rO2^Jk7e~NHg zHpaoaG$&R*8ehtRh30#j^^vdHrE;yE7-x_h&pvN%`uoR1bMZTy$GfwG=)l=qe?;%Q zrfj?wk4(P4qaUCb^IyZ>)LvxH)zjKi)69fY!J{ow!@Y?$sKJk+lp3D_udg=UO#7Yk zx>VwKYsJFH%zs4r9#u~wJtp@N#cH-s<^8F~+}GIme*DlZT&5l2%XYyS9!0TnvR@RA zGiFs&WAk8yCU{u0nrR19$z5A2Uk%AX0mf+23w~z@?7cscye1dkp-t&=USxh7pB-=c zQPg5jacuGW&!QE`K*y0G)A0{v46{Th_&sYIb-W!o$mS@1)tP@AwrIhnD~GzCzz{t| zsqEACS!Krp&1cRY_M8=~gg=|`(B79iuXUa!h4oC|tM+;3oGlq=`j&l_zMT1zJ7!rn z=d5(Q+0s|?c^rIh(YV3yNPnx2p?dpGlMb6s(LT815~BfEgk$_(wh(fGVY_LH8~e(GR9onSv% z&#<4gC)D1zc~9%UlC_B*^M_qFJ+a2j97XdqXNR5~kY9sk=d$7UHqVRqv0x@x;KOaf zf=|6S96ho54SRhWr$%gE^fdr3(BC_;sVlCzl<`{qCR8r5_i&1pzdWtBtDlh44~mU zU%-**HvfS(ucZy)cPn`4nMR#TcaR#(Y4NOwl_yqvRAXGn+GOyo&0AjFXJ({NJ^MO) zZ*boWxfk8{?es0Ws6ACBSQ8)Z$?zxw@4&DpU7YsrIEy)L-=eQ5Q?zG@?&-9F@o803dB z$Pux~6Jt38#!)BEUH9h+)Q*F8!wX!<2i8Pg>uJQTil$eLb@z~GxVQLkE1Rq5D=tqt z80=gDC(xy*qN7u6kMb#`kHDw*Haq`}e%HNdZYJit*Haj5evr5>@o?Sf|FOXx^-T)) z#uz)un`b2aW}dMZT?PJvp6+ybGwF#JmaMu7|Caduao`Rz-y&*azd)SKt`~y6yJLgB zan#tm&gI%L&Nr_1?W|z)kBC`0GBTKTB-V%@?~AJ)|5u|fZtS?)>+p%31#gt?a+S5P zu5Y75e>)NbxY0FnZXEq@G$+n|n^>IV(D)8ue2QnDF<+Ydxrfz_=UZ3Leq< z^egm%zeRRC6&uXjXpEoxQ+_{_5nO$0uII*Q4w2uOv3(;Y*!&yQwc$x>@9tu3Gkg1H zZ}g6>-FVul`$lYR?QhUK93j^Jxalg>nXrrgc16bY3-LqrxAO*a$dIc`IDlScce>(M zV=8a8z7yNpP7Lc2&YdH@{czOTrS@F3XWe8_&j!tWH%MlgO#E0{wU%a=Z_CEihd^?*jDXz-z%Z z#2<0ydw>^s@$zKWe#2bB}0b`$0PcmsJn9v^$gzFV;D*0bnm(?9H+y_B{Eqmo6zeNC*b^297; ztR!mm6)c!uTgF(Y6DyPN9aEdnSj!me!q}MFC&APG*l>f;Tz)OtiBr~wJ^4?=s2hOZBhEwJ055d|vNQZ;mFdLHxUTqeDX`2N zxdGkwq;U3=uAX9WMQxXkGqQYHxxJ;|G07ugzA6ya_unwLHN;cJ(cV@U z^=qT{uzV-SGM>mjyMU{~MD$4DD0@H41MN$LhE-wz&_2j(|NV_F_QHY@ljBv(p$ZukmbU*b-1c@=9rhMbA3z~?dKOq|K@SaOq4 z@4PoQ!_J#{Kloe?KH~@8TMRzm!g>^`4PyV>iAgVlX8OsE;9>k9xyOaqk99BA`u;rI zrde;Z|I=fPJ;l($He=$Ae)=fBLp2qFXWWRT#q1dew_YdztAiUIHxqwJo=RdL2f)d} zRs7DAv!Op3@Wcx|=sL}qOn>628w6YJ!>#MW}2mYYr}@&8}wX9^mCs| zv!444(2o=s!Fb#V6hiCciS4ag;+zK*5!ZPA(c0_&jK&w;_UpW*%NI%TT+aTmPI zB6ylR;cXVe;}oD9&Bxz!gcUQR@e8)|-He_2t@{x+lX z&4c4E6gRz%{@x|$l^PLr+EvGQLff@k|j1^>Dn_~EmV z=`ryaUucBVX=^agNBi*~GPln%ubD&4OEpjwGdY_)h&77gObIr}aQ-^;3BiXt^U?X+ zPcIX#^EaAaYW)Y(#|-R^)sb8ZN$khzJW~wZqiIA7w8J^~k~sGce#1WZ+FV1Qdpb+o zz&!)rrxV%8fJP`Mm(IaMV~wm#XvCp!*k|5h>~n2njo!mkjn&8VjVwPj;`8j0woyj! zjnD`?Mp(L6e2J<1_ZE4w+VSsC0>*6-n9If|JR1yKXD|NghsXq0K9&jLoh}<^&j9nm z`%%8VMHbE_g=c|t!foY@eD{}jZnQIZjf5AcZu5GR+Cs{+W&7j#!Fwk^Z`1lIJr<8W z&8YK6_Lr^unh^dAznj+o-9`Ik8+hmBEboiNkbVE4-RE$1dmX%(4_*|j&PXI5o3-c9 zT+Lpd5I#eHirW{R*v=a7`_lZ-PyX&Ua=_T}>yjBWC)v8}AUTel`;Kg@|EKbQ5%9KU zTII>mT1bE8#Hc5SQy!s4i`%9V9yc+_Ci;A2PV)xiWx*5ru&HfI-+;Z~2929*5 zM@)ER;P4s^P{`CS~!)7}aUDJ5~FV8MxPk&slw{P(r`}gQ_#^bEt`*+_4eVY$` zQ#}(q9&j+N67Kll;mjH_{ziX`m0zgb-;%no3RztGdt6AebY>g;_6N@Ua*TrX5@qe~KT?TMV^Q&{sT7Kv&phH?~Tc-hjk>4@;`AnV{O?UFIrW3p2;L62$HKmuC7=F>!{~f@~rNo zDK4)>*8YGt`@vkz?=3B z_MwsTM=ffv|Dfa7lF?bz}%pdreM_zL&6M(Y{F z;59nMc%s+nhxCaO{nEKwKOiSlWW5Hr_YAO$Zm*v9ESma~-=e7v%)uFx%?l2l!@!A8 zkgu5Ln*)E{2`zPCdNcWw3aR5Don{(3F4e&C+cJcm#{n9;3Vnk;7Tad<5Mzo%!l)0kxRss_&GuHU`%r?I_`U1;#w z7IH6oY@g-Xr)j(IfbsH~yQsexskNm#gIy6ikk2~eOK0W5RbD3L5qcee?Kj|~qW9|d zJEHPR!q?q4@%Bg3*{2TezEnNBYZ(W7^d&p5)`aj4tQRn_cvSHNPTj3DcjZ8z?Rrzg z`PJY2jB1Hu+V-m8J7dkVw)dXTpYFc8!djq&O0%hu_<=~K03|9 zY4Mkx=qdA{+q!4(3*pni{K!rnTAc~4^k?Ip-R2G}huZ}95443g+u`4xIwV1C1%qpg z9EWDL&=>S?wrJNwyn|enaJh5%9d!*g2S4w@|203z=TQqMZT+TboLyh0e@y?zm_)Ng zdoQ=2pV7~|5&HPN@QSnM{kz@B5F@}X_%P(0cgZL87x?`ya7=U7*_law=6rNN`S7wQ z@%?Q8e=?vErQ{hdoMpqW^o?MazAp!s|B8JB2IHNebav?J{u{odjQroF54Nnf`8E%D z>IF|ngQuf_^91th_`*fxpM^i+KQnw4@cSHacn{qEZ;NM`kRdLK-<1{~dBR@Og5ST}Rj2$ws;d#rmsF&YGhwD>hwD9qoT>P$cFw}Nz(IBt$rQ8suCXSf zb7^|Si0^Wx#>~d&>1U6nEqxci;J&3J0v}b342Tw1PyNr-5V0yXZf|}DwG!_*e|}5* z3_GsH15f(&BgPGq4bwdAb@Y4*QZ8-)_aPKwo;#Osj0B zPGc>ncwH_&=HjuA{F>U*;E(X7a~gUgGc~4jn$hfW2YXYni$=7ZnpU0+`1j)`e7CzX}q zTULZ`SrxcgfG_lPYM&|pK%qOPdn$e#)5(RU-+_@ntDc(j0<6G4!pl5M$zea;jQsER z9$u9gylKoIG9S)I?+V{<`H2%anBc%ud6G)7xr)9CPIn?7k2Pasj+>scGS0(YjAiEg zeR~ztcc&>`Fg5`C-fyOKA4Jbp8yVXSx35AJ>R4=yrTTM||INo$-CoKVHRW2A{X{nak&W ze6Hm4Q@^^lc7)5=HFA`>Yn0EmYxG$6E_~hN-loqEY>un`(zmC9edhji-!iqkFebQZ zraPu~tT`@5eZFmuq1LwVaN`rfkLc&Rm)2H%E4^g*ydxP#9KQ0;=CB86yiT18=5;E` z9_Me?{m+l{6uC(>&h>BE<2>aHZu$)|6`y3B&z$Pp`&GsnxNprS-&a%{aZ*^ZbipSo zcDb0F;5dy>!7=t%(`&bz#0iWvcjZ@cURD`#8>`@D@q;7Bb$8=mffql35F_4{;wZX=iBe#TG*T~sVyUZh5Z&SvXe&%4$-*PqC+ z`K(u&vut^4NAv$F^B4cAwpt@?N#4`{FHxJys%4r&%?aAyACYl};!ACQLOf(*cscWO z+T8XFyAiD0Iz~`+ z00n11Jd~r`>%7M3m7ckkweqWO#a?(wzTb!r?ndOW7s%sRNZp(q1-Gb6Xx6?;c>$26nPOt*2_TK6kQSn}m))?M#5@SbFZ&TFVS!WaVZv;lZp+1;0u zKd@i+yx8a1@i%_eg}n!zfai1QSZ2aUS$L8de)?ZIx3RNr6CY`et~+7DTe=tY?^fLa z@nJS^_agkIrDuZ=lRP1ww@|eKn0F!h1k$0!_8zrk&SPJU;%|9JG(j<(P2|7-eNwQQ zoGfMQc&Bre5yx6LYo2Y?5$!}T-|kvDrPUXtHqe*8r}NSM+?M*z$CSJNig@*LKlwo% zeMk=d3r;`P*m+O+?)6UMv%GWuZ;vIA?_PCUC2y;J+36dpDWhkStaj6uCa+z4?ET|L z=)GfR=mhJbK7?~0{JG!%$dOl?BC_3ZdYz|I`r}CkK2bEo~pBeTyp>i!Im{03_;e-hC!n`d`h zcp>>RFA5*37;l8vkIw+V9o$$S!Hr5jMVFj>1YbXVF>buW7@(<3^FadQ2J)b90A@d%s*x4f$A)S{|}R9iO4fnRyS${#tLuk^df0?Lsq z9lHE!#NXTYoDtzM#1W-~ixr}s@L|=Fb+4984-SRd+YC6tt^pw$lMqhC)+;@a^j4y| z2Y}099C#C0sLhqo$>=tfBT%@YbL&OH%i_VLW1kTI5PI%aU)DYKl^A}Xdurzd{E73f zO|w-CXdumYd_^ynH??nl%*)ErJ2)>dbZ@sq_nOwH_8f#p_u)UijWNpC)Q3EjM?SJ; z_(Nys%<0xzAH?tAkMY5*LrKA`Y`3p0>%fLojo-tw2@`@@DaqXD*;Z)6A)Z~p`}gub zeqJ$o6;qbBL6e|`yE9hVHBtVZnj3vu2im^$8J`^94O|3!Jv$io1NUEI_y;_z^G;_g z`W)Nd)yi3Rh0Zc>cRKX77`vV9;y&o%Y%_D~25eqF&a)b9US7^KcV;O2Jz@*sXW54@8Bd^dSa0lV zUvF}`xZGSLxJGh~;u_86;qr3%xMH}*aK&E|o-2+ko@)YE0$1WLE;A%R4AkO?PpEYV@9CyW>P6szTU6wDAWha>r|7vpP45lX=SwGQ}rNB`> z$9rj4wR$CQs@-V(9>|X+gtu!9yw^k?V9vGO(dSwYJ|zw=gO``AWv$%J>g#jBTl|ss zvG(&s=9}h@IbCGUWup9|dJCx^AB@bUog54X_NM*h2rObAf{k+dst&@9eWJ^DjDta3 zyLg>b%umlQhu5&|qFJ{!XaC$NKS=w^Yo7G;-~c-$IJK#Tccf>jVr=_4Ya8EGEr zjUU>4%XVsIe~xDc+x7ns_qu;>ZvMdwL+fEQ9zQ-OKK9K5K2`tyA>`1LkNw>-A2h3f z?<9qL;%)x1l`)h7ALT{X+-@>GnVyQYr7f&q*VMMuF!~CQ=_3UO{xN6ITfC)_Z0jtF z!DElxjQ5zynb6kW3ZK#ZHS+NFkn4UMpG}-KE^_o~&7Nn>`mLOOE!1_X{&lcN|H)qX z9RD3JoqJOr;}DM#_+_xi&)B8bUY6RcYC`LrcjsDN?BFfQpXG%nT(SgH=g#qm|%<&SJC zz22odgF-R?DZ-4TntX1eM&BHxd$qLEdS)t;?lyw>~hR6D@iOvYCRJj-U0ONBAM85NWH zadPB{1CRj_=mCG;1l1yoO531 zrsY=yUT^lasiZ}Gk?&KLPOPlFZ}FUh(<>kRr5-4>l| z5bd+*TtfK#Icg@+MuT{Hz>*4A0p%sJL9eR>1ASMG$S za)w3nPE81Z`wCm%GI(wd-(LOL+HaY_K)lGRp7UGqP2AIAospbrFJ%XO#FESZ$ooWa z-znx*%ja13SctRoN%qIvz~~+5$!X|bJ2^*OkN#$>@o4N;!x+1B5jm=juNytHs2P^Q ze!3H1u^*y4sK5rdk~O#%*vilICC-SuR)4BTby1I?M?NlnHMl)aw7;)!_EW1L=s8V4 z?eviwJGOQj^_Bnr(U-Qae02QQe>BGJTtEBq`rA0m-!Mn){Kwhr>u-D9=rKm1zX6}S zfc3Tbvm9A;Z7u%ty+_QRpHv`&pu@1*SI(8)%%hI6k9Wm&$GOHGHm2Tn_U&sLQlBMv z3S&Agx`W04ILeYj(9Y>Vh=iFFR~bQ&DX>bzu>A@ae;$xN? zmCY5zS&2sEK@&Ph7<-bD6W;R~ar?oAC%Nz7!c^e=`rY^hjWQN{?()~BFppxs=ka|q z--U3?5j9d!_~FZ6|#8r-(?4$o=UDgZ>(0&o+ZI=7~P`Qh=(T|!9)E5R#ANGt9evv0aNjhxz=> z%6Frfm`UNK%tQPLF*oI97siv!c#^`?9}o5@r&){{V~u4xW66(V#iQ9Q?Z7=8>z9WCtq2BgweJ9r3px>^C<*%zk)@v3I`qe|pBnwY+v0_uz?BEm#Wwp!q!sKMij0&iLg> z3%73uw})E4;2ocQ{nBqAxOSEN9%}83g`a%w8b33z?W)(Q3GUCi;3Jp)s2K|Q`)loG z<7>TuJY(-PAJ zb|<$Kw$BZjhVSs0M-OfFJ?h(9#yNuBc4wwBroP*q8D6#a4_h~yDTm9}rfkI@edl!U z=bJI)*+8Cg$81>6^BcSNOS4 zbSE878)uxJ#@RP`jvxKPo}+B$;uSU5YU&|RV!rjIYkJxvc2dFPG|ze-P1%}*Pf}&s zEj`p7Jx#9MWrEQ*WX#8SA3pBry~u{0?(ty{d&ukd)P^1@={b2%agXc-9qa|cI}>`T zH7kDPCTm@4xi33m8#JH#=Hc+ziM0#aS2Llv8#&vaG-D1|W)z(5j+||@ZJm$OAE;-Jli7E-!K+uZzoq+^uB3?nbpLU5*gfvanUmZ}wcEgpY$K&R7n^z0*h#e% zVc+AaD(vyH&Y7%p!0;ZPzV@}Pfwiey^G%QP_U{ZBG4&_ifp7uqT*f-*v(AO4XJ@f# z){|$Y)?l5-;}`S>bi|-72cNb@VEq#DHIgqi&u-{=C-id6o%3p&n6r4BYnk(J*S2gu zvewvoi2mN1^UeA&uzS-z_O%VriIeWw!#Z=e0s9ixX=iCk&nh#v_LuD1n=4Im4W`}7P zoP9P-yX%4JZq0}N@u{n!tFXIVdO-^Y1DHCkc~eceUZ*mNRhP3gna zpP0UN`8IqCItm{iinf11{6a6Zyz%ORbmFXPPI1ra3!Uw3+3=&!s`dam&B)(0xSxeX zD%Yb9r$asr0Tn8O>##@24kFE$(ymW)dCT(jJ~T)1PdkC1c&F*m z=PvfbPT=R9y*0?syj#AUTwbD8-n|W}F|;Z9VLEi`B($w|(Wk7Ovhe3GH+YR_rROR$ zgPT4J&D+R-;@3t0D$XtJPG?UoU~T2E(?#Fa=+Du=l(p>aTULV&%} zseA9d<#US8Y|oq&V-I`n^k&!7^`AW_-aRRNALrkle18|55--1!-^D}la4qEd{Wu;j ziF3lq(IoyYgL!VI?cwq?)$rfPo!ilQ&#QReY5#w_?N=``?n9q&+%H_Btt0#=-dSrg z0@ye5+nJ+7$3(X@-=n~HI9UFg|2_#Ub>99WYQ2iS+qWzl*8l#I@Wa+2jNOiI;OEi} zB!&M7KDF@QV7eeVBbtYO}nxzF6}z(zDs{T#SNKl?smKf8Ipop!e~ zM{EJZ=30_pKpuJvFZ+7ILOWk*U_{SPWt)~fyMP+nHRvL~!yZk8S1`TCvTx%Xfc$kj z5B^E}YXFay{>gYWgXa^Yc(f#VG}WH4czOSIbvN*xzMgG|M>)=ZKlu4?zm^G&;T%1= z4V{$e5p-o)9^>?#D?An+K}D~6pOgbLk#YqbyUumYSlt8D>mtU<;(LaUL1Yl0^;VT zquYx?w?_=#Y9BU4&Wbo6vTY1D#EOi}GNKKa&55jQI{HHD;Pf7#ujriV(se!iu1(X^ zC)hG*6FJix;Zem?_#Y4MlN|ba;4b~aO7!}j@h$gsF$Qcu1-*R@OP+_Xx(B{W{H$V1 z((o~ziEdo5wrhhYh7&$SZ%F+u>1yE77i+GT?S@(`mX8XON@MEp;W6KL4 zenztPa;}WRhs$#GY)n}TxW<`#L5|1%xUBQ)|48+JG&)iv)V8C4aMs477W~=l{*o-- zO#KeUI7EMygZeYE-F+Nwl#i%GTSQm>1Go=Izkb7iAJ<+qE&UbGJ8d_T z&nNo7ZI|fhxBTbO;9ZT-VB(17Pd%9So)g`Q(CQsL7wjBb-uox`a2`zwD2vY+XV^_!?}y z@cBpQGG6(TG)3uAD#0ZK94=y?TeN{(*TvAvYGg)qBSYr=U(f#Y8569W|B^u^mni3d z*@=(O`5$XsI_Liw#wdRGO6I9COINO(|7B4*|9!L}*nr0ua{fo_LZ#y#&fnyH^qx8! zWVgV6YuC8|UNxKv2S*xve*f60r4!BM7_0We05~RwUrn~*_$XuYRM`6NM&P&mujjW^ zCW+n};Xfo9@fIB0vjfLnX1V-Nil7I5=qftD-jHgRU$Hdh-^|Tf!1pBc%tH?@nj3@O z0(c)STQs+}47xK0c?F$A!JFXHBFT>#f2i+@=%Wr^^r(N;29@&H!*gj?!K0rIVUA~wKGr4R!JhBhnz`@7d)NCOyBK740X2M}? zv8Sh^kJ0lRjs&cHq}?uWOxcm?R!&l9-Nf4q=l%4hxr@K9UgTF!hF)-LQ$BOfJ6F9S ziFvo7^I=@izD}Qh_;N3Fu!Ob)JeziIL3alCZC$Z!wio-}6twjvC!>4oMBgNxiq@@z zzU7Otll5B$Pu|Fx*}^3nk6_&F8RMx<0?&qOPdFx=->_Z&xnBHplfyymz`59g?>{o* zqPi9lpW5;cWCzKBIoMHKtv#I>E@A&^4KAVw7->Xi3 zJiS$(Jcnj|tpT5_w?vEZKV)3DF~-3(PQJ+w4Xwn#IGTpu#DBxl>eu)$+P}?%tz`nX z{!BiX@mb+YC|mL4&8bb`R3h1C;tGkK_2Xvdd4%S`kr>`jGtT6?_cKO zxd4~mdjVaC&kU}fZU(c0oOv0*9GKL3yu@5!&k^1!m(&VuPk!F`UikoPpZSTBH1wVSZaM=f3tTkd>7p>6+7}{&Ji)V|!?pmCdLe5Io4}1CU zKuTQQ2G!b(s=t_yAC$%``${`FtMO)o*X`i2bi$qPtV{#{M7MK4d1#*kC(i%YX5>@! zOnzWE9beY#eiPhOaW2jBt60E%<+G&orVoGC^tkF&(Q_aCz#{IAS$M5-QT0B5z-?%m}z_B5aaQk?W+ud(5n zL$h3CcIvsZbK@3|<-a%0*hA>iYtxVe-yGeLI@1*!9_y)$|0c2{{l(W|ziM}1m$~g+ z&aw0>Tk2=IjBq3Om~Z(w*EjEZ%B-t@)~u{=VE)gTPt_kWznS``yRKfo@xmDcoDobk z_Lo2GyD?6@34Jg6sPD#DzN_C;^gF{f#_D%J?Pwf_QtY}=8Q{hS>P`e+{_3%Sne$`$ z{G0$*g1Z5X)wb}|*js&%zSr=d@GyO($Lbf}Z;9>`7d#+_Sv;2I_YZxr{QiltZ>KNC z*l(i^KmPxUu}3#JNBK&X>m)EUx7SB}hUcoxt@5KyW2~KwwTaj-@gMV%wTqwU+{0EN zJ{p?TYw^#I&$49Rk%@g<2IrqxNT1Zfy^vGm-B`O0g7w}!`@IhmY<{toxj6hO^RevF zm+}LCkJwh73yPEcfOEl#lax(o9`mdI3h@r+$g)YTPo!2q6kJWM8uFfbV(_<%sacOd zEHbD6Wq+-?+*POiC!Tj~U&7!RV^2lC(X0AUMeE$Viq^TfOfF+r5kBZzcljCS#h^3c zd&!T}Zc^Se$RXG=V%Y)$_@hVNSWe_!~xZ^*HSRx!Cbmxax{;L{@>e$~P%M z9FX|D0C7O8PmBy5hc4=V7c^J*yXfbkd(6;-Q;p^|8;oY};#+Dpm&`cw)-%Rh=9C{7 zQ(KZbI<$c~`H1Q8f_M4Mt?bjm-ineyPXInncvU5O%U&ykK7vz6YaV;_m}rLVI|Z|h zkSE8$ZsD=?&80W8uknejofQlZ1!*r=4?` zH_^YxoOpfpQSWNb_;)fUr-E~-;W7_6w|!}r?#m}kG1q7BGx2S3;o~qc_S)|!9+uco z$#w~>cXeqlIDQ3n5shV5o4=e`cQ@@xZ&Q42uygF72OH*Ss9-b(wcWE z-wXIJUev|&PONm}Tw5RD_>=uIb^aqA&~v9fu*tn1X(t0Or&6|0aO-uxCZ)x4)1owglhLb&f4 z$tZyrLJs(KvX;Sl>mtsxmptE&L=Oo(Vqctk>^sXiYn` z#-?SL_HC5^Vssu;^5R+YspPC0%Rc16z5(u=6S~>U%Y^^vt*qKn%E?%=F}QC8c${sH zC=;JihP_npJwDcGzTpr4p5k1)J;|C{19XVxXBpd;T%+zgD~vk%Q01}bkVkv9F2%W( z&Dq$7H*khMIwjcqbaG1Vhrqq~n>qW^zF_BtUEucmLgz=%t(k%ig!8bQvC39?l790U z-@>ZGeL5FgfH6EuUB0y!W4d#Ik#t^V2DQr3amcnxj>9+~cCtdozms-0K)WBGVl+=@ z-v!n_`mMZ@z`mppsawi8$g|kogxyl(O=P@QzPHhmp_0QcSLG7bpfCKH@Why-u@%#< z+Ls?)@sbE!p%>Z{@AF>q)xloni1n=AyU(BKvHUlsW0xLp8n{u14=HxLIeW<|TfC&Q zc|Y|+%hyd#oNCY}T5|XKUzs6t=#?gg0qNcQKXz zc8=`N;ZOxHsxwUYf53g6U-B*Y;}_e9kLHM!+t2D;#7E!C+u{PQwvNS~+dqF~$5-`1 zpATrCM0n!12v59==lAoU{93Cc|5Zo++sJ=K7C&z11iOBWU8~x@Cp}_vcqaGs{#0P4 zJjp}(Q-8eAuN@PkbMP#46AzFKo$LH|uJZTodHr8)&uK!H)i3{tW5MBV>oEQ?}f#lPP%Z<}P{2gpP_CSBQ$_W>2sk?{Lv1}Yd$5KR0 z5@-Jf9eNADHSV3*mM%5!XP~<$WBRttXG|KK^0*B(rgU;&Zm{(}mp>+*2T^0nk>34d z{IHfVj$bn#!LseWzP;?3UW;FN<9dtl{XfL53^l$=*6b6H5Bd>3z7~EfZpfwym-Y>J zbWIt&BmQhS{Zc3YecYU*byeCI4}xb7FIJ5nCyEz)$>zl-ggvABwrH#lKc?J-&X~w$ zI6(iU_}byd_noNsG?%Yj;@M*U`y_KI;(5iupSjD8k1u(7+-99}j*C{dl56%aD>(~C z6Z1yAK?XEN>*`%Tq0V=IZm*|2x3`u(UPS)CbmA0FPIHB-qVxZ)m+!W8HN)ipo712F zZwGkCvlr$6J4K)Nx!~bE#Xd@Gv1sGvJ+G7Fsn0EVx_~DzMQ#%;EAZPXqpwP%GQ%wC;dCeWus7E^9;=gQ~5{aq5KF;>p z{)5*38gOt>Jbex{)Hz$utrxhV3GK{*R8{ho~@ zcCMIFz*PAkion@7BJDY~dvu0?7@MVwJ%PODek>`KR9`A+!)@Q{Y@*>^$Z^(lt@}LXf_x^n^ z+m@vx;k;4)-FJ~I#GkscDJka2$tSRnm|mUD!U23EW*O`){7TE)*{f-+t$3Apf$bU2 zct?M$^IvDadr%I^AJCR!w;D{SD*mjPS*s4qptfVb9l|!z%jx3v2c+ z`$#pR|J$O~AD<&jaiXF*1NN@+r~xm@+Rna}{5li8kYrBj=5$u|^_ij7=p0kM=fo^Pf*)Kq#?&qVM)Yd$fR^O0BCgVy;_<*hU34paWM{I~Y*o#a#Ya3^5=K8{(f~)Y&h~(6)K;I`A5VzS|hQ3d8n$CPAi>(6JHlp(@ zn>BB18T!5oWbkg}Tt3TBx;NC9xohex=yMu=wFQy!6fhpy@qWhI$QIT?KCuqk`v4!& zXTQT40Sr5!18=g1)Y;x!K|h1-V)74ZLJxqQvb+VnZbJ6#^+YkGGy9-#9q*)^ov- z#!z|2_Vwtd4cQ4j#7FoTe;zoXT=f6SJ+&jhmyzhOqHU(~T@X!}O3ei4oPn1b@|@8) z??msn4!y>OXNiFw>P*tJxq22o&xL1Ghktf1&ssiC_#k!R$0Yf!5xQK1+yb-kRDPFP zm%qB?Vc!#(TXVJ$?f67Q|eJcqyGIs89bN7n`XMkoikz0H6AD|0U7^jF*o^fBtU5n6FJ zr?+V8cybxocH^LthJC?&xu?+089IV9v_GeKb^`PTKU;?ee|}kRD91BDB-jYIBQT8f zwYP@*rTn){^pqFI#<|jY3Hiaxn53^!PSW@8&9Pu6o;U)pe)}(dS$mB=q#AAC z1}-+Qs2o`XWk|;k_&PK`8t$Ue1g2jyU$#FlHwzjl{T(tve{Rm6!d!R(a@DT4`EF+~ z`fo#j=pjdWM88^#EH1sGa$+Q7TS6E9l62t@(_R*r;*RAvo=z_QQt)6RwK@v0vBXfT zBL%wVjWv2xGT09bjI0INUy7j(UeO0^FALm>wSK;Bk(5FNfXtO%sl~sMct@kZB-Dj^4W2=TXnk8Q&E(-rxbi769 z`{qi=TYY_H^Y4JI^t|2ZF4xjd-+I*q8v_o+!WWK(W{iVoj7L6?e7Vn8YM*U$ZQ2c8A7+_}SK!SIE3OmBuiA%E+jq*&!olmXR!{oie zFU5D;cY}`@z(e&t2A^BYueRl;b88kerq43AyBOml#(F1qr-k6`2uoJ%y3&{h2z;n}o0b^8pEHc!rU;zMI19x~rU0j#8Ot9Thjg0wpw=}3pDbuj z8uo!q*0c#YCYP+X;ONv)luhC}>CID#AKL_P!o1R$*8=J@2FyvmE16GAx@fFn)v3*a zZ*Ho`w}OlFq|AeVa}(o}ZJ;T#w{{{QBr_(BOJmV}jpqZ_D(!&38z+!u&Fq7KJGnNK zeIOgX>@im+2Adl^uJT6KQezF2{dAuv(Oc_A_t?QaPVBJd$ra>L1)pc9ji7cRKEQt3 zaZ%@^SoWh==hl_Te_?f2oqS13`JTV_raDjDhWa#U;cT z54(YVFM{_8;oGqpKgk?Ix8r+=%pKakB%pbp!e3hPB(2no6%9RzEhTetu=kM5==I;} z%Azi~r7L|5xP;hiH>Cu7Lo00i%VBu5Nx)_@R}Vfg;vp5I4THQVA{)i|;k)w6{%v2% z8h_6}Yb{q)Hm`w3H?Wpr=*aWf2t&Xq&poNu7hBmJNc7dtr429jmqHPnxz>0|p>l{J zJL21cu6@}8+Vrj|>B;cshSD=!)>-LhO)omv$So+CT#a5$I=B(uU~}{us2;1qI#l}L zpT(oGcG+H6c`LrdUGQ=Ncz%yr*(^Ja$+)zau462g9E;p)Ab&^})%^_Mci=hvYl#7n ztZP;}dIRO!pBU~U_ec-CqWFHR?OSOdc&hy@>cN4(7jUmu^b@%Hxa2>-1n(3(x(d9TA^J-jo;AfiW8hgg!n2NnwiiRYg|o`lv~9y37j$5Kk@HcurYpIe zGkY}Ob3WBi4<+k~X7u4_ELymdJfotggX?WP^QNOe@PuE)E<~()vT!;b{MWj=fcYoI z>3!&mrCT@=h11X3_b%Xc9XPJ>{hskjCf|YV);UN%9>YER9Jl?fzR&m$Grqk$&CP9G zdArTcKjU*a{f2VJX?>$gvqRfI8%mR}0DiKWtR?Fnm&sbHjau5E-b;B4bx9@n zb?}VrxSpcMCH^lOH#jtQ|MNDTEsoIHuSU^XoU<%@Y$|jXnJU5aoNW{I-W}{6@tn~- z2ivXev7)*6K&xbv^+5+k$0n9M0?kdvE+aji^0g>`)`T$m7Pqv-5cl{ko9@C>EY4<} zE3hqC^p@`(;F9RAck4iU>tPHN?_&>G@1|Ha%Uapr9`|io#a{d{_XnHNmCtT^-jX-t znwXpRQpv)CeZ}ywjt$z!Ixqi}@v>!WVs0OjcR8J!j`iA8yo;UL%7M`I3);hfLFaVS zFObVvH*YAnH+rgUGFot5TL(tp;XzpQXZo$vVL4fXHdSXp#0rdBC|6ueMLWAYYYtsYU z*01-Ze-K`%Pwx&JZ&t8Jb+2Tq!9KaTrhubgngGsE=DLpSO0FEP8@b5ujPJ*AxzufW z&=XaMw3GZ98S|+1lWWzVwDh*n6VC3+qyM>Hd)UsaCOeaGp)Depv>}(|;dlN14kKhD z+h-U_b$^~_(@T6oloQFKO>yvZjt;o}pG^DNccu>c>?od+T2lkBJ* zii?Rev3R}9Hf>1?=Q5Wkc|IFDB%U$vfGuAQrw?Ao zv(jB0pgm9ISr2EWbjPvqIQym7;IleH&#Hl!{yW9Fpguc^b%rl{DmsteHlBCpI+R{P zxx4>%Vm91+pVjSx012h=sgP+~V+BnZ9@vOy9 z7sbL)Cxj<)7FE-ZQ_~8$VYgG$O8#w<2OQa7a9R*Ro*zQ@SdwXk2KPIIz3%ke8&yqPsVQl$v*x;1cl6#(bV@|Q?8Rv}lVg>Y1zE`uz4cS-W z3Y~!7+cNHi@E5rEF8oi6r)Tba(<__Z?9r9uWtX>O#pHV;IjVWPxp_bSaN-4jLjHxj z*#|v5WAV%M>BlB7eJ}FkY1I~>o})D)%bc(2e1y}^6bUEQ?YB1Yycqf6C%`6K`wjl(AoslZ;~!+db@`0h0p3068j;mC zJ=dZGJ9y6zZSuh1`Jqi}^I&*<$lKVs#0xKXaFfw|99(aE4c-O*sgkv7`%)0uKB>D3 z{Al&vb%CGnTz_eu*FtJ1f0A?WkJL(R`?1Y4?WAAHz<xD~*+GY~0hJdFfV6E6T0eWhZp~sWf3y7Kky##`- zQ7RSN5~Mw5M(pv_OGz)sfV~8wc%&L6M~-?{LG#_erxSr zUetj#2b+-f}tXV8z}&Vy{yVdZ_dZ*(yFoj*;Z*F7PE}US3#@9&OoCSTosBHcOso&9c_6 z>4k<_vhhRE;Z4Y)s&6q9dn!41J(b)G;e$a3vEn`z8{GA8C50A_WBce5jt}P?7~%LZ zV@?-xws`Erz!y4G+l8!Nj9eiZ9lHY0hD93L&ae2Mecz6Cl)f?iN7&kWiOXc%>Q}rGcwjp{wRY+>V4THY3V#9qeC+iQf4&v` z=TCkFH*d)>{foq>Ppwzzob^deGA7{Xd?h8NwgkLajloUwDJss4eX@B3wRzDa z8q=_!R)^+SG0%2##8yx<*RGeVJobTljsHjdZ~My07rT9gflYEB?RSh^y8n(bOW$T) zqVFZFx%}p{_b@O*ZO7yc@sHn!~YPySM2qQTW?;|a9(jVWcm&u7aiTC zHDIiH)xkABa>*JPuijG)-~AJf=Vj|v4EqAsUvabg)>QgF&bPed{~&S3vRkXhmSp(S zvBkYtPdA=_hd7GrZ-#sIjgE`S)8X4`iq~b&ZAPxhuMW;{NH1RFzujD#XHG~rL&oeX z%zJzT)c88s)<+sj+gO zvGv|Bh1Y5g_fexoYgps-ZLQ-4cE4K3MZBwZy!U3i{e~$+wExHu?QgZ)mrNa^J?Bov z7~7!!@37maoHIoGSwpnn;EaE$_A`fQ|G99h=DUG2(NCFg{t)e#+wDtohG-ueqWv_x zeM;^S?SrSbmmR!4i2TGlYy!6POkcp-Q$xJpOpU)}c)9O^KQrrR7|Z1Q*aqHwn|=?j z%({OCv_@LwPYvS*=Ls_Euk?_A`y@8 z_CXgmK^J7xa_NBaJ)184GyRC>y8Zn1yMyUVH`lG6=dW|U&vSi<>!-OEO?$ubd+D0S zpX2H0Ip@3oOh1!7{rvC0&`*Y^pWXjLKchYUZ2uSf8R_Y#;a}(n|3v@#-uy50^A0vw z7f(L_FZ6TF(@*)o(9fHme!@;a;#=#X3zu=dn&-N%;kV06ZglR=;och0`xkOeExZ2t z&EmSza~n*MsaIx>v}xY<5ysZZBW>DMf*h7i?>eAo$+W~r&Vv8; z)TL?g+hWe#p>EOaJag*oIQh&_NHLKJ%Tybf}$cJ=c1^&F{nfzK@#g+osjGejC^s=rRoH-L*6l}~O-=F+W;v+a?37xMBS!qK?cuyy1C(1ri%R01;#-~JWzJ?5A zk8*)DUOQeQD|R*Gev@_$z|XFKXxF^yCccGwO+6j>1E03-2t(FmuddG<65M+VD4^}LgeBkL~-_id=D z=luz>^B8*rzCa&25%+%K^!dxfz#PvKFhN+*@0A}*K5nUn)dFxK6}5p z^{dpEbFZJ~`g1%N4w~%QUvd324;|gdwZ`I(PhC?o&T|V9l|k^u-+AXMMW8PiG7_wto9!Z~!@UpCyM* zigiOT_VXuQ#Xxs*_m_M}(pB8JlbOt2wgBZ`innBQ4r4KSiPrw7-{L^Ag+K3omi)nw z7<1+GYry9>37d_4ei88J+a>n5Z5lE7+sz)mr~lh(555NQOX}N~fa5-7S?`#=vaI`_ z4_VfaEUS9Pk_CSaT-`Ol3OH+T|1b>)$)q-!6A>8aq@RU#=HkmFUdLV{K4-$vnVPc-3&8&MIEB$I{QN`A#0xhis+E zeOPN&Zm(GY+zx@8!4ClQWIaoEZFm0vl{EhcxYqN323Mc-^m~`n@3-OC+WYdOC&Q`P z!&_avYEXONG?Q3T!RbC?YkYsZ?cgPmsy)KBX%-C`jQ@s5|8@HbW=xXY*XmuDut(>0 z+ZEC-FJSKrY&=^Fk#)2tHoX|UCT*RJvIytsB!GE5yu{zY`bj1 zPSM|<_mkVVV0(>Xdp+jZUgevx@hmg;AafqDy~OG77Mr#!{3%uhH+-#kL`Wno;c~A}1w8&72Cu z7l{IU_uX%>w<{g|it~=%*H~qLe~Ife$v}$#>|ZO{-aEpDEsColzp2Xf6;xrDw&dSD z`%J8A)=akG8rH1Fk%!Wt3vRny=$^MtzSBmr&aPir@!AXe&$FF~FPgk~;{V)Of;`sx z{q~AtzADDq=hNxDTj8tSzm=a@zT}5?4w~ENPI!uRy!eS559V+-X%)6&)f&sxcq-=_ZN_F$VH%MR_MPH5 zHzAWKmNP_M5ycy&^4%74IHrvEH|9K(TKhEZ6yxc}eCpmz;DRrv&(E2NdDm9mU`(s!W)Zk%$EST=WUJBgoH9gJe;{QtgfZj~J9yZzjy z4P%VCD+0E@Q+^$BUA>&I#52W*Uv%=lZI=-fF1e%^*oyx4!V*<9QzAT6i0LbH+TKYupYVi_hxZiWclJH8sd0Lxu>-VrclQZobZ7Yt`7Rfa&*ww5_4w>c1i0C4lc8FN&M(b zsB=DzHpJ1~mFF94*+~}S8$E}6?tCj9+UK2f8S{}(C{z8jHY-@0E1564O?fK!a;_R* zJB{!7IWM{E+3=%2&JYe#_!U<}JW&NOGx%d};Z1z%px%Q*3UD(Z`FTw02Jnu}j zOf`=bH!}gA<0Jn^bW3q!@F{kwKhAv%k?GtrUQR!O$yhv|NK+Jt(OJ-h{Q%Fy8rlf;MsC;>^swq zraJKK0sOA(*>lC5MOM$6tf0;%{JAg0J`Js1(HnyIhTgs7U_SNZ6oZ-yJ{2K5<{@Km zA|7qiyMLJ%V!byFGv;Oyqb}OFk$9Ubt-YD;tbJzeKUn)Vat}4WSAgjW<|7%-or~yZ z@?5-njP{_{hw%J1FJGMy`wiFXyA+?V&Jb~N=cnW|ydMqMnrc5=_5#-BC-fzqf5{Kb zt*7#5Y8sQ*%Kk2l!|N=V$p-T3u%>3`TOS72_kcSM4$tafoxE$`?X3M1DYi}Q0dRSc zj~Lh{!{Q12Q(FI(jvda0n|wyeZFfRvA4sXU^w5tp7tJr3-^&K(_AwOfy?z(LUS|Q? z^e-d!B?tCr+sA;dHY2ve=|gg9C-C?z*NS&{zi})?%1aN|G(>uOhK zWv?WEH+j7Vbe+uD2nW_@+sA;9FEe(GIcSe`HrsV}OyKx;?)|WTjWT0LxPIJo9p_qW zs(5SBd%kJ8qW5g%7pK{6H&}aaplvhjmJI*B&~M>#3h_^~uT5;DHd1Xz z>W<~f`>y4E)-hR^_^k(?Tb(sH+dfFVclHsq+37>Lxfi(Aas4CD^L1SR*mHdg*IFBU zA7;kB%(d#(`@SFUj}zH1eGHl1_3!wG8GX_z?z`8_9BRKx7S=vB;WeF>AB0>P;xBWN z8RQ3NPpDsmDmp8*66q!GU#<43NAIL+zcjg_m>}cfJM8S9tGUC-;AW z=D0vKX>h#@R|e4jUOBwCpz&jh*H4KM#|N#?B>(;^d(!fZ=dU&bi=O1%pnbp)*{Lt( z+MD(qa`HS?EA;#DY{f$bcrT#1W&AhYv@N4;#oCZ$=%xTUJ>2hUL=LlR?mhGIL3Cy& zGNi`wmE}h3CdR?J*MZIX#K~M6+@tGh#8os*)3@jDAy>B5TWi9tJEJ`;UblgMe%Jy} zMK%Q26@QohCh*a-_)Ig}$r*xba~PRh^@VrQwrf{7+D$$ab&2Mvz2Muh+}`)U=l7}m zUNt7{b3k|AamPUedF15p-`mE%drWeb>JRvdt8M3hC%R}p`QAPF!zy%s6Z?4P&Wib4 zkR7*>@4aPhWXnrxGrX4v} zOCqScRJHs#MUqR5qflBv$dw;|h>z9D_y zTLVD*S@hZR`BK|L^+{=0?gw7gz!DoyVbCxNy|L~^Tvy?@XrY#|_=7F~k8ApH!j4_6 zyx3@cYpCzcD(1|xK+h_^K_9I{^^xi6L-|XJS6s|_>YFAT>5I+z1tH#BNSs@U+**y( zR~%|2HkZ2k1NGa5PbtKnrV%$bYIs}WoxB^JJb5;8_w)2@8nScRXrB4qXX&#SziU4$ z!B$V+R@11_?z6z`)x_KBy_MK71LNBYXP!tDq)h-mqleA@BlA3MoToG2RQB;ubNwAL z$C=`*UGdwKhcX~j{W zX;SZRLeB&6;i1O;5aV{oT*bEy&i89b%41m!jc?$Y4;`e%XFR?h-&oKHuXXD?bV#N~WtzuCwA^&N8QL+}$H)cPFa43^|I-~G0|b}4$6wC2wobMWEKQ`h{+TMj<_ z!(Q{iKL*ykneTz~kL0aZuE>PgJ)HTVamZ$IFR`G~JC%i&1|bQ*Z-#kJM!H{n_h{9bzvTTpsWYG6_I@P%dChc5ofh9LOwI>Wv`7n~9O z5pD49)#UZs;_S73+P_KbwVT@E);eqdChgH@PB`n#Gwsm>?+mP$&f7UH%{#|9I@+aq zoQ=Y~`jY7hw5o5YebD8^YP<9k1KIkj zKH|{i)6l3#n4{Xd`+YBXAY6TS-BrwQG4ou+e9Nc}u#ma{_W9Ue96B=6#-V%#MnL!>(Y>pWJG__et(yUz}^}c^R?ATsI%5O-9KYaxcE*A4eUlQT655 zn47kDMe19-XV0p zk3_?L?Bf=2&f*!IzjX?ZAGdLJ!w@vdrB@FOL6cm1wa=kRjUJlxAm6ia^dE`2E=UqJS&(RE5zV=Uk3%Lf-?@R3GnT#WkeHPjbbU0BlhE%MTLllOKLHAdvG zJb?Uz9LAYEzQ#$%?l{;=yn@adFG%$_T6P5Nx=X;zT=IdBr`zjf#dmS9o?PB|3brxm zejFJ$m`W^M$Zqq1o{u!pu;eKdyPO87h zghps?vWIDG%72la_X%vg?aa-DwrE_l)IavI&J6o{FV_awaqQ|Z(XM@jv9|M4`~+kUJf>g?Mm?jCsm3wob@s`oqbdFcI*>-~@M{_(-@kJ9_>Vd=MLs%@`&1ERsw zU8&1r!7~GR*fdS~ai_1((}{koFSz6x1N&lEGV2wmnXU}`@L%>E*>l%AD98y8P#D;x#BE}CpK zZ9?CXeNuew0qPJWukC6_X5L4=kmR-9@}?uZ9XWMvcmKnY-FRlnZao8Q`whNV6q&bY zIsbbvFbZ!j5sk3pY(EQJ>U$D%+o2=Dk(@C|ZU3rIvA*yat#6^$7kX9Mop?-bEIP=1 z!Q~fX*!UG=mx6!i2)2(q(J>zaZeK*^4Xg?7X=L3W`b(mqtaxT)jJ1aUG#!8z>Js5cIbV4J^1EXa~pmKfct3lOg)pt;hM~W-n%K9s=&lW53y=xAxr672X`S=g!#dxqpGVzj2#2_Y=^N%8wX*^@j%L zegK`!<#lU6B3#b0=te;J)rm|r)5f=6>X5c|AQR10z7=N;Qtz>lw!pYG&$5qCi2XY; zhRv@e=H^*;Ky(+bbGa5TYX?rp;U5++gV%OmVE227evLoV?*#+>R+Xd_YCRvm2K(~Y zMp`wcJN}qhhL8Ae#oXtx7JuNs*7HZqsSY|w{y6>w)jUl>?o37g9EKb^9C>sE^7hE+ zyTraKCUXL`zJ+<3e#Jsgh^Zb<)lvKW8pUq5|Jgd*$ExvOz4-D$wzr3n!}qh_e*qoQ zc^B>2re!-yWlyv_G_uV@BVRvZ)5vycXkv{GTOL zEAL+V|CP++3g+{1=5;yqTR=Q-NtF58HMh_WW`e8hz|}^0itIL<&~-#x+QHL5;LE#> z{yM)bm`{woLp-BoYyDmZjCJM#=TEm*sJ0O}s5(aRj<1x*GpM!sWz`fBe%a$w?W9+U zr+k-bP z-6fpMDgUMo6UFUk#~uSFdOx2%_FHHse$U#S+T4GivQzxBX3 z^sEG#S^7@^8fZUDpB-?Xtwd%f_NXZU4YZ#HX3vDD=)Dcpa7$yql^snK_}OpQvEM|G zHI9dPcBXmkrmmKcd0?s3EV9k5_eBMD^vC>)h86r-pYE-9AV?^ zeh<$69{#CVm^go%_)C1ms4X-bvW2q`ek!r;HQ@6kvT82;?p1JaFpf@&y$+7HaXwZq zb~(k(RHRO_&S_LXdAy^3zUB5qZ8hZRW$F+4@|6BI5=)_YqI~*8FD&qW>j<$7k}-ud z`;bGtc(@%r%Ug(KYD&aDeZ!zdkcca!NvyKZD)@(^wZ+ZSQWJRa>YO4 zKS4IZ?~)zk+?~F!K#Pl@#o`5dtf%&k&ZR;3p!U3bR)}5qX5k&cX{_;B?<+=>9I5== z)K%x|3_qO%82q1x?V-A?i;t?6z8gO%V% z4gE`>aL=$Z*>eep?kCs#5#6t}=)OI+b=V7EQT-oqs3l3C!|vE$GeL1~IvcPKI4aga z^4(&`X8i>Cwgq`h&lGDU`EIdevwi}6+l{=XXZWNn`ED`vO?L1nz_(|RxAZK9XOi!p zq3(+0yL-X6Z-P%1JX;|9t;6SBJ;2h59Xyae&;YM{30SDEP!~AntyQEN7WUrJxmu<0 zv@79hSHROg4o|y0s#-;&4T~nU%@;ksPy6R@k^_A`CCCf|_tR%L{?)#}fps3ZADDgM z4g3B+?DD1b)4=|p%p9t;Cj?*4t4&^uBV8_h?X{T1T9naV_$S*(19&!J?Ipd|TEcgd z-`@?*@UEqg_Z26sJu3K!_W$2bXvgc+FmP!95}yATxku7Xlh0d|E-9T<`%!a0gpIog zd2}`VMLv%sDf0^=?9-Vedo5X1wm`Le0GZw^x4toae!&*n9l>XLMe(f0FVL=z`j0D- zSFH8BOZzx8_FAtcr@SEjw2prC+}_8ozXQCo^afwgh9sPe3a>1^f$t~bTvT{v=?&nc z@Ctm}g56lUh4cp5VC#lc2NU_bJ2jBsP3`$tcNtAH8OILBv4H-nPQf?qSI&5`AEirw z-Uq%}HPwkb_3GJ{5$J;xta$dIaG!c2s<${Yk+|zGMyds4mqw@-?Y|RmQM*pH zEva<~y{drktOq`-N%fTEm8AMrv$$7p(F$Lz7FqRMe7hRlB+d>wH6vC7ZLCI?`VcaO z&Nd6sR}DD(d1zzl??S!uvEnCgl<)2d-gRR*;*DlhxOqOf8E-6(8YdHTtHDq8^LN?} z5Pf8*fhGvH4~qH`6c1y`Of`hyp)|qcxl=H@nif3I(P*>48a#aetyEiP0=M6C%+0lQU~;fXKo$L zzuMqYq7Syc5xzrAcs+JE@hRyt$$V;nr`h$he}!x+cqry%D1WHkGmFD%LMayiM59RmO-ZjX<)V?ih zMxMdO>04my6CJ?$bozt~>)$RNILAiw+6(+-=U&Tqt#JVRbjB$BaO(;NID199h$~y| zg)a9ZhxDNf>K&~?GMw*Zuc|I$Dr+FynU`n2%(rAiP+d%&{c;RhU3JCI1m6H{UHHxe zzWVMe#xdx-*g>CW{5E{;_5CpL9e}xgFPD27TM0B>W7Bw~56HjZjhFGB&Ekc7=MHQZ z*r8pxEAC||{I=pKI3q0w-C(+hmsQ#}0*h|^iTG&Qo?KqG*BXnDahzJ)$kmx{g3bn@ zv(odcEgza4?{Eye@s0G2y>Lm+`f%-2z>K|fSKcp%TRiBa>>YjUFO1jHahboZuY@iA z_gm1@$h$?BzVZP0XzMHPGi0ul_OpG+K(@Z(J`2o#=pFmnA!MPn@!`T)Z;_?1Tn#-{ ze2Ko>$=vqydm_G&mx+an-*NjvlNcNEw&TwuGiBIu2);iSg`VV$_+9Xf=pCs`YluIf zcFyyhNq*oB`q%+o+wwnmZXeC{ZgbRuE$0|bTi#u8Q1;2lMO(Jl<*v;$k{ ze}`!vUCDKTF$lLK=rybT;eU)~5A8O$Y$u-Qz~a$?#?j42(_d2qvGDNl!zH8fhYc@! z_<_+Ic9)rE)3fwRT=g=^THTzlJ!({-QGJt_bHK+q%J@x9!=rDY`!8Bw(W`ciUp0Dt z#D(b@F-gzkgLxbq@t5k6gKO{&RP&y6t*ic)ShiSW;vM4f3uTkU_qJ>`@ER>Y|Rx3iR*31iyD6(FkXvS&d4}f2P`~g1ykYTK?0*>Ao z3E~gdy0WpCp6tihVmL7sinmHUb?W)%equX{%s`K2k96c~Zy$R+eVogFk!?x(x?-** z-vN3R#I%a`d(F$yBn!mTrjYm|Q>=UXFd{lKt_byd9!A9)DAYpZ+H zkZ)O+@oCgRWUS?zQjAvRO6YgcG%s%8+KruK{FY8=`4^x``Rs#P*!iTlO8%3Kr)Q!` z`QZO7M;Dg-CmB!AM3eHt`&o`IEctJg^DKpDGto;9VAsh9@2j9!qES`U4wF2(54ur> zKh1w_WKYp=Qfp&;N3rjf(>Pxc`U?)pC-z9*bLmYrz-$7hb|v-n<)2gm;Z64NJrsCUTo@KVVUa_VINme@#amp9`}ilEAJflf*SgXOYE$qK7?7uD7MtbjL|LHvXJK2BO zi1r*$@dpwq6C$#uJiV`=Q9NiSwQq{3eN(-DQ+9xS!fNhu)>&bM+BbDh?VCm8!+Tc$ z9vJ{Vw2r-T0GzAgTV;H!jBk~#jr4lYKYJZqX*`)ISPhMU-$XXBx9aw%*82GFpLrHx z&+UMAOk;mU*mIFmJd4Q-GiI3yVK5!DMPStRm{y$ zbh6IVZU=3=I84mj9La7gs4uM?HS%~_N9rh=nLP&>TL){cI-#mtd5e=rX0Jh}wFW5; zE%WZlp~mnz&lrv+jluUv%l2g9h+?wb81%!8D_QrDzAxCg_E7nzyx*4WDmo*b;o|QO zu$10;r5EBKJ%{u0=zn1*@tkYIcjsd-UbNOo&taVov3?p?F>nf9 zWHfbSGt8^5ny)(0Hf|5Z-{!5YTGJrBgg$OSr?32)5iNDjHm%&S{<6vq8!pS`x#G_^ zn!WRa&bRaUcGVgqJ;e7z%2BkwjSY)$>l?Bc>OK9}Ss`!C4o5pP!mYbfd*}HtBA$ow zL!XybGxh*A!)qA-ztKmLIVQ3JnI@PkT_mrDIG1G&_3$6VmzHCWtF1?N@P)rljbdL- z2j40hHsMRiCd*30P8+|kwvubptSWH7A2P;W{Kjk}+J)at`0-KduD64WImI9DF{P`Z z>yDz{rer!~fMpS2Rs+nctE=Y=XR0~RtcvS~3&VxFZkR+(FL;o_zM95dQG;5@I z`p{>J31>^!)ZLA2c+{l-Jms>Le#Ej(9Kko^>X(nxx6WTZZk^j{ow-{+b;4l1upS#b z8)?o{0fks~PmP&%1pia|OVdftFtz}COoj=Z<+ z3G8Uc(PQ5X7=4NBhK1PO)asg;zkZ(4B>nBpXTgzlM;~a@Sr|qiXX3PCzwes|y*UQ$ z+nGZA%>vGq#D36BoY>>UiE$W%C8z6tZhSz8FBoM!ehc&7$3EzsZqETbN%?EE36C%y z^BKt9g=THB)_oYiC!4ie?=I#QJU=`?=X|p^p0y)8Z4@;^c`q`daeEo@fc~n;{F$T8 zCCI$B;5NA&#sOrTrk;^u>|TMMy}-jq4h;1k0~2ZIGi;xy&#+@cmhvx>CLCBDl-%C{4YGYaJLvC5Y|rd* zhn`KOFYBDRa^SF4ads{}YjCJ zC-s<3`-wwRELsn=axpyYi~N1d932t-BIqS${DIF$^RO?-4y5-(k8fIjEOk@%mx-B~ z%^GMdyYK@hk7ZQ9Z_pk~HDkFSIF-JccuaPG@gZ+cRXsl1z!~=RXeXzt!O5w@b`@#E zk4ZdHe~!fp=t=N>^x=Qk-eE4GxdZcPM^3PH{J~?&g$8I$qt*@1?;2_>+Uwr2G;{ru zi6gef~n=>DmPH zpz*4ql7E^UEag_eA8fp~0&i_S^?jK4Pe)^vKYBL%UNprWciSP>%wwZS=h^Az@Kv6j zIc8R8e%m^2CqB1B$PuCqvJ>}lU+1>hgEQLu@YU9A z!px44pu21w`|T6N_;tf`|4xkEn6)>od49sg^l`T$5Ve^x>mJv5JZf(t)@e{e9 zKPE6PWpv8H>3H2xc-a9Cd+`!kW!aCZFE4t7ywRt# zP`5FrxWn6mqJ8kT_#obv8N1;%XcT-+_ch0jNi>qVr{^HUbTfCYkA2?PcVRBYcc;sk~hFEE0*fsw=y_=xTElS`9g z<(2Y#2se-ArOeMjIEkGp}OFOU)B4dLP7(D&DppncU?~*QF2eruDQp9NzXE z?ZjKMXdAzy;^3R)!X}VI<8{MAlB=TVRVL1(D;%5-XWMeC_(eQr#of@ozE{YldmCAI z6Lc!L7F#6pH8nlTx08SHDaQ5E#aT^L!Tb5}-$^q@H_0Co=Du-cA~-fVHVq%$OIyvY z)DqP>gMA&l$lu|f;z8c!zJ-h2+XwG*zL8E%kjQ4v0jjAB-*X-NqZ-}f+DMJ1pIr-0 z3}sD351JaOOf9|j05Vn4M&ex9Qw1}OC5d#SwjG~W*YpJ;=^!y;pnIsvAz3jEy(P$A zj88FIL+rf(v8IiI`tn67ojt(QwQ)lwBFpBn`+D%44X-@R=#14jXIeNfoJH&iA{wIZ<*gkykm~(k94!2 zx|vrO^O6qBT*mh>FXc(rp#K!E4X)WuABEJJu;Q_;JwG`%bxC5|e{sL4&a5SWdRctN z0_$we{4?~onf^8dr+oU%LpV8ob|FHaTPYI{)(+tJZx3ecr!;+-&N@#Ie)1 z;hR#7fayFx1bpt{d6?M4IBm3_ywA4qtn#n+Gx-qRXX^K>JTr(D)q79#%$13fb&LU- z$ky?$?0RpT#`ff^&>j4u`;mpbu|S>BpLf?SWDl3Jm#<_`U%}q~IB~7S0d2J7fV3}v z!k)q=nx4opTH`Z})(aTJZ|_mv3gRY+m)OYq``Rp>YP=6UQT#}@faE-M*FLBBE@8hY zPOIv?l8{OMJm(Na-mvhXR?Cdr+-~SbK zw4RurHe!rRBe%@=Wf}8T6D^N#S(;R)V4>9h@Bj5z|g?T-fH!j`cAse{=k5}w?<$?KT z#G0J>N-v7fICUT-CHk8_-3@FC(p%JTLG8+Scz+dgs~8%hJbs2!YbfEOvR z`z?4;3-*&tcu_O4p45OV7e9IeepJAJVgl0phQptr0m5O6K9Z{kZd-JJHh5l_ni+W- zIj`+vHq`TzM{vX|Kbld ze4`8gfFEm4G7R#7!9i@5if<`8i5;79T5Ze$IOSbr6h3P7&Qr{8$8>B`8xz}>zMUu- z^bNfy9z;G*-FvCEacEI;KeOrQ`%WL)2V>|*di`aLU$%sUx2{{GvA+ZTm)zgZb^ zTCX#=BKO3C!*qV2ucjFMp%Mmi?UY#c3Sc|TsC`KK>}|In)Lg%_-=Ph|jK{UMozM#K zJ97{mfX%WbIH>J%)yikJOMW4xR(w)`r*=Wqe> zQ|O9y#;~3@up64ppE!V4-xbuF!&d31uA$HGZ}h#3Z{*{X=4m`B^nvdA!q`9BRI{t3qZwLC0e6C%y=?~u*G;B!_-4slk*WNd)4AzAG&I754$ zN$(p?`yBe0%_&F?J*)4hlKPf>imfVzwl}_=c+9qgW)8Ad;pFge-^wCmZW?Q{h&3tm2O7&*lczs6iTZ)zyG?v7{@V@ve0IUbmd}<1 zkXJ(O&$e7CrG5SbTdoXM_lcU0l(6gy_S+ zGo!GKeuO{5o5>?CEO5W&e&^6bby!9er>2Q*lF+dX@}jehjZKGS4kEPWgD zx!;(RfJWR#`x6@%L=Qbw5)Cnr6-jwRE^O7W_RJsXTe)A#`w~soTwR#T_6^Mbp0_O9 z8cRhI%mg3xCpw^bnxCHItlf0coq_fH1M+`27XP09CruOLj2KxReV0AyX%G+eG zfj<3BJuDqSku+?4GzH(UBNwMEl)Pq}`Q zyRnrVJ@N^o)qwtDv%9DgzLAVa8mEgxW#EwD^A2lUC%Yf#$cVnYnwp(&&qun%6w5xy z8R0Jorptk8^LT7n_-S7yCfVC=IxuqEeUf&S<9Z9!zvMH;YOdq?DC~uGW9`^gy?f~E zB~h(gjF^&Ka^35|kEg(=_IE!rSIU4z5&=>MaoL>KTJIH;cDq#||^!Yp9*-g_nVkP4M#0Z`K)tN(ES7P3U%vJkcbnO7Sv+mljV9$wuWI3=n#(s0_ zO>7*Gzx1AxsMhd$`fB5hdux6Uf7`|LSH(-%dusDJ+PL3Hu#ZKj4PG6i`oS&Oj=h!_;9iCAN z{p;Li^Ne%GkaPXt39FWm%ikntZDky;eK!0f{7m=)4B{1YsR8v3`aGSjHqNsT!Ou=N z2k-bFVf^)b6Z5ow;?Lrv8iV+R)>3d0-`K!duK%Xw=@e=s4QXFPh+UD(1MJ?W7=^d#Zsz4+VE8?Ah8N7o;e^Hxl*qrL9R<382i zHDK$SVA05*jIv|xT|bKWau)q-k7!S}FeZQD<*h|OH)$fZ z5xgw^OFay`t#TVC#jc>O?5``ZUj%Jj?Uw^OhSZc=VzsFC`_-!Qj&&RO4$HwH+hl@|%_z5=#RO|6KY@&VOsPY@NHs_H;)cp4Zc?8gb=NGOmdN;MU6#NU} z^YcG%#k1UH*AnHNMBb_8{dW9*?fCtW^Q=4*Vy#-cu&1j&fuA^bWLWYJh_51!{Z`$x z;@|x}dC(sDoKF{rqFSWyr*C@sjPm47`6QT^aO^*Bv-8#^2gt;uPoSNS2_w1K&!&&Z^O{eacmW}DX zrP!#9-(B%;$D>5(MadJ-{u;%(jjwxBU>x?kb8XV?ekd@U#FInzE$UsevEw- z0{27bmvA-=R|t$C;n~ z4atEv&;NNE``}80e0g#W;a3~!H#z>`2y@D1J#4@H1ni9d*nb>)Z(A31w2Qur$iLBk z^}_s&<6$hvmoAL5C>lO zU9+~0F_w|jguTm(T~cn8?6x7+CC!A-s10NGp`$|cj;`Q&8qf35PxZ|X$(wBe^GD z5oQX$9)nyk@x=#zK~5t65MxsKL?!sh*=jNVKc+LyeOq2xLu|%H9r)lIc2&ra{r3>{ zu!F=@`^Yalwv;_=X7t2oH*CLL-z4TH2ft1+es=GiBq!Ot*T(1PkX>EgyE8TQd9@wQ ze8WY(1v^uhQBwom`pe+2r@}OPh7tcNS}^?f+Yb)NWdktO z_g)8{e_=00iBD~#HihrDbC>$eob;Br5_3ARIm?&P`_#bP>sQ!w=l`I&*Rx*lH}@`J znoI89G;;Sgj5QywA89=7d-w8#!Bk)1Q* zY9o3QoD{yrAH~i*+$cEo^{Xr!=3(;YlI7RM+|z!%6T4UiyvyRp@J-2M@>BWDl0L1A z;_y^w*OzNNk3M%ap4zZozIku^O6_;2eG7HxlH0e_9vpq)YtH|t_^){=UZ>{@bQ*L` z@euJ6?I-b!cK+hmldmQowf?D(c8sn6sQAf^{GCLPI&=*_zz8q_PrI;B44mzgWu2oX z8uu!Hhb}exUSt1AR=eE77u$wcxzJvx3eL+)MXwq-FH7rh^MkM6BcH}Vjf0)&BOeug zf5$#A>(C9v&mrW?mDINPVzdfcIf7G*2&%rF*w5`cSK?>a_~B>J3h5B5 z=-bgDmPm)N^c|;fw>DN9-{@pc7F}5&y-%>PzqiWTd$Nt#usn*4?C!nJ>Cz>$VjoE} zwhAwsOOU(2uJ|t2g?s_U5G%`F=N^5+pdbf;@BQqY<+Hg3%ZUyPwAKgH25#r zJd6}{h|78lc0fBI zYQwYoLSvcU*@#cu`+d=WeY=zMdn)IXOF^FT4&tDS@tX@?!kfz&hr6bt8AJJmELibO zc@A5Fm3PdtgV}a2doAyfT>yDcI5ZnNS% z6yv~tm@gl|aO^9|b6~$&^Z0Mg<05RO(2|@FJAMS-cgAe_5jIj6Df#`^v&y1^!w$WF zL2rS^pzr2Fn>2UJA2Bd@yPv?R{k%pSi-yzJ7W!&FADiFUwvRTaZoTY@$lR!Ga@reR z*Y%HSkZ;X`BhO?5E&-0;clbD=a&95(Dy*sWm`ea+yxx&^Q zoi%wK+;aV;npa2A_L-i|c+S-x*roa`S@I*6e*(LEVkWse+>0-Q4q?REItU%>gVYTq*c4&K{HAMTiUID4_hwmmFqap=bGe!8JL8B=2? z@h2>u#(77~v;(HHg8OQUUWurreEI9I_TPgtI2g7+UY~) z^&z*V5KAPQj@;E0U$wrq3;rM)5_wL0067#~dIWfSWyLDyALp6)hG>iTndLiymncWq zd*9VhBu7ey452T#q?Y#%sW0dB>&rvtZx5AA(spi=zDyraqIY$mXZ;8{B>^5U05%N{ zd>c-IuVlHb*!O|&2jLOh)ovAbLuj06#dP{kmcwP!vFYff*f(hZLFw&A+MW$=-a`Ac zp-~aqKk2|DnNJPin|RxVSS4*cuZQ>IzmH0mM6U~(@GZrxohO<*HHN<3G*qmwd#-FX zG*D;Xr17qNz^hIF=EeR|jav%Ct-G-eEy5=pIZ9mybc8RC9@Y56;hcGPeoAdK@Y@ZZ zZgI{U6g?)k`tj1q?6-RokEP{>*Veq7Gw(Ym6It4mu72#|r;Bs&#@1AD-Q5>IywBbf zyQs4+nWGbY6<*$itR!7yucK=$_ZwT|sk!++{NHi(jMK@j1Gafve(j@XNG1N|1Uktd z8Jl+>c=eP1@o7Jyrxfyiwbh=R$L}a}x6atxLj92OlDkGV`q4v+kncMi@oBOS{tt)O z7G1w(AS+vJXcmcm6*b`p1qqB#D<^~+!S70I?9+Mo+`cdBpA4@&iwmA2=)aC+cmx`B6T;gY1$1 zc3Uy*E!7wv=QLK7Z_4r@P3zL)Om z>bK%g@kV4N;xnL$OR9;_kbPGB!thHbvh~O9$UNS4Wq#>#>^eiOuVsJvZQ}7iGKNE} zPsz9uz=s-y;F)B{KQorxHxqNLXLn6%a@R?1ifJ>QHZRhK`2PMjdbUFE6W9H$-and{ z(}0Yo7^x1{^|ntF|BdbM$-24Nv@(0+vH^PSTC>j5u66!UcCAeGKJ51+%ODNpTjRs) zxWVY_yb>OQ+_e*!p`Z7?$i5ZMJ;wTWKr6ppPE0O)qdvu$C;LjuaBTY*8gpg8$%j6K zIEOYwj7aFhN%Kr_Jm-DlLquceu^vHUn!3=($e*l9vGJ)^NRCJx{q2R0}8j^a%!fk}Lo&bl?`tY>VBS!&2P<~A^QZ_H9W zq?jd3*05rh4pDPN`a%$W-J)g4Mu!fBTi1OXS~eEjH@b~vK1;q*yCGtiEMCO3L$vMw z6LX_~=}}vmS2O)puwO+Bi;%0E|D3Sw3NB66d}WubVlLwS4+;j%%|8vh88GKug0wEt zNYP4cOg^6bh;PV7hL7`2$s3B-5?oei!8iDBCvcZca~QekHF)Xkj3)!!&^qiTmbHsE z!4HQyPiX3aZk}g{p57khcLx905EmV1{yF6KbOTe3U+@u3)Zbj-(nc(&WHNnQHjYZ< zSxe4FZhQ5?tD>@FSh5>6JiBOT&Fw*hTFI=f1N&9X*IU1M0%rvnI>SMDHrALYo0{sk zya_DoQnDlKWo zG0cUxYA&1pP_-t+vod6CH?N_TdbZTV$ya_sFSvBJ>-`_B_fq^=U+y-WB>%;UD+z+* zT7PdIobvbH;9d-WMda4Oxp2G5_p9a%wQBPHBGk=MzC{~8OVP;?KBFS)=H&8zbmOw# zF8Xi5E;N*Ur+hE@Lss89IEQa2xvn{>e}i|ubl1hpq3Eu)p3o!fKREf&3F3QzUEATr zJjHsg$7T$_dM?k3^~#D}^jl(SppzliT=8AXt#;Sef;np*KYYPFci*Wv=fi?)SOGyw5Y&4=Sg9lXog#Ow2oi!jTc$T|#`ZI) zrurny&Q?R*+6nq|>j>w;zm7xyPNHvSLxU~6v3#u=v73p%Qe8^Bzij0DiIy*>g>TAN zCLQ?|M=vOK;!{gciBGlPTTTq^4)o3y*lJweHSXwEagT0g`?TfbpBlSL?>PMrrRUmh zrRQeGN@$x6ZvTP3*ui}47~xZ6BD^_3acH*dkBH%i2;rLzAeSA%4)z8O}z{G3X&qi?kI9br@JVbF^pOjW-uyPc6VLp$X0H<8)i z*f!35=pbINGY4B4@H#X$-1;-%^}+o*1Mt@OR9|1XF&o@yJDQlMwR^j<1f2oBK)-=? z9lDs{mP~gB;Fe8Xvuu4+VwVCp#SF>zGX0PJF^zV7pJHkL;O>Wsu?uPYTj;i6*7B+y z2f1K~@9gehAJMldv1z;~`g0v?kR`hQ)R}X|T)N(ZJR#q=baU{uPjp`X^kh1}2%M2W z(6yP%A1nD0o3SjgU^3Y1)=B4WfzTJDdw<>+1RXfAQ^(oKW zyu^)%FJ|7}Z+QDx--od~FQT78_yRrf;>)wdCMmyJxNf%-PquwH6PZ(&vqyF~>)DWG zZyQ)o`@OfIx4*^?(*<381%79G#^{buW7GLkA7X5Mhf|_mWAR`7AvOB?E*oF%m{U8i zUNLJQ2Ub_|H|#>&r{wa|4*DK6x1_zWjk)#jg^hOK|3@8T>JI3932QyNz*mh&xLW1# z$SQ|N4$RHA5u9LdcUg1GwrY*&on+cQ@Q!GA7V!f9*hcG}3H`iyC|%Cxm44ot7`uh` zE?;eM#?){M-=0d_%-Cw$7BPP90iV;>cS>8u8%&O^psnWpJ7CHF>0`q_=e7Uk;bWG) zO!)SGIf}&XkmrG4*j)L&H2lH=^uju9h#xXH58)RU{jkSt(+}txW1kKUZX-_5T0`PY zwj&2C#zK25h%be@qDKwl_u>KRZ{!t>s4xGopCjXOX5rLN8qq0LX7nxAPrS#HE6WPqxuw=t(v_B>~Uw z%CX^y@2!-2QjzQQ{jsnwFq(~dAVt-IFz1Uyu=TbjRu4I@>w>GWqAopfYQ z#rN!G9FjY{GG`F~h~j76eIhy`eyp_@-6>3>H?QIgkx$CrOTzW3mMripbn`WS%m4ce zWKH=5UE0&3cv@<=)-&fU)0o?qvhrNXA8jeuf6vIRJogLS_kkDKMIIZFuZ0H#{SU|* zQ^1F*G1cYC?T;(B+qwLGKKoX*NId=$aHC?1adam%#NEf@9UJ*(m@&Bb+&z@MM|Tfe zr_9*>!2W~op}S}+9MFDicW7bzDe|%Wp;@u7(pIruF9JUcKjFRad!AFkbZGtnoV@F> zl67$RND=bIPR7v{pdP>Gui6NE2j{qPzMdmX`eQ2?&riWIcaID2R72@QjPK%|*qx9s zHMhg?uH?Bb=AKQX?796LeJRKGbZcwp9%SLywbwSt+E$LhAMC*H{nlh2{eRFknMvD< zfE}YNJ`2p#t$bN%#@kDaIm=#S&Wx?H_=ED=GcBAR3oLbC{7*3tg5gt~3za7-#wnZ*mUw@hjI3pts^2!^ylikv5R|w zt7>d%UwQX%0sdCuyTT7Yk$U$(I2*J1xJVdZMMvF9s1G{gN~^0&Gcg!^jgubX%*n|9cJ**a|&aJFNO z9!H*W^#i+|EtAQ{{H|f2A0~OV&f&vnk{Kn-ouKB>58)NE3)Ugy=lYFhC*WJ3`E|JW z{&mEzU261w27U1l=zp@OER0mmFG8PdV@~KBP1Hu|kv^w*lb?d~R-1KIYt*J$bj#C5 z{?G>a#WDI9<tEetZ2&z3|IE#X?+{tag_&uF_OuHfbY$W_iG9;_Nd^XO-WqVNCBlYmKX>G!4T?^A%&NCF@I$F8G-T zrobl;8B@5EypF<`?gy`oKFOX;Rg6Xw?O2UHV?Zt;4~P7gH^H4ZS%Y_g{RwODWP!WV zfAD4VZ5I|-SnDIW=$@XbjoNCz>0R}KofRDF20q&BlBY_YF_iAL<7|%f)9N(#@MOl2 z8oR*idqTeqmMkL;yd#-IGFWPCn)6N_d;I-nrPP@0c`mI=rU$$G$7Iu$0Bs$A>YzF& z<_yVGuC1dSny>`g@JVRIC!iJoM$Lz-sQEC=%0vJ0b@QWp#ui2o7Z`p21^>793BD{l zcSG@5ll$f1lJjjj*yY8hvsc|cE_$GKJzNm(Q*8B_boXmt9N3%E-9?XtE9yi0yPGkn zpAWh>+c}d_?e%?kJXMTgBmNN85|wShlB?)jF}WL%e|Bcr^Znb$IJ1o!!7Wc+vq$d- zCmEb^d$M z9PA_6{+h{s^|rUh!rpj|F-XRW5JT3luTa-YZCj}6gp52_evK|eE&o2co8xBkt4g$EM}7Q*7*o$N!c37QE|+hEg}E zuWKg$C*)_&WnI=e-JX*zcVx!4l;K}I!rbKRqHZncjxOs(7nJ;_vFB4uqZ`>j4cngd z4b^+@-bMcPNb_QRf{pPDu;<{Dvd3ZX#TV(*oeTa|YcBB_AIIl3sgXR1#xzG~k!%`z zxAGvq;G+x721{odYEJ*goSId0ZMtATsVA41U7cyFx<i|C`8`xtTz>lx7o?hIjXWfJw?tX21HL>hF*f)B|V(;O7cQ0yB-OGLD)v3?=j$1wl?u|1oZ_ntGhIR9^2Z*Cp>>=V^Q zPqA!k(nIRtFOtn0Yzkodw!b1H_RW`UU+YlkwD@j|_xB&OXx*CcsqfNv5>LFw zdispNTQ%X_b5UO5*+K3nHma_33j84zJ~0g0k-91i%qBY*(ylLmIKzytvf>X-Xoeks z_&Ibp*N&-Nm^QvCyUR}I@s`E=CdRG-2J!Rk{EskmcJn{te3Wj{&RIU(bzB0ZU%o3BImhscKnQfg^95O;M+p% zCiTZ_+nG;@_k(%u*&*f*{i~6W;>k0tl`XRfzb3>!L|@2Bf6u#YibW?v_)Rkzmvpl6 zg3J4iC6o7GWsdefw(aq^|8-z41A5)y+ElEk#n+Q-k-f>fi7#kh_@?52M9vf5iRZKs z^Sg=hgz&#^0`~^Tso4AF@9=AALi$9;UU#nTb82wnq1;?M*+8oAvU5q#rtja;x6T%D z&);zCkTo+d7x(usR4x;;Iyfd?u5Y&8kl6MIa9Hd6C;s~lXg7ZFYIJ$kMrwfnRhTJ} ztN0(BYNU4ogPH8vYSU;85#LhAIXW|yTSBct?fsHr#&}@Rgm1(0<&0vk*89N7ccIZ# zLJmR*AAH){m1`*q^{y#*XpvEQNeZIK@|Gn9B`Tp>U z6}+3vyK0+8-@)7J?pah_wI;|IB91?Q6#jh97wY%tFZ`YD&qu%*iPy5-^)F4|I;4JEtCh6}j@Cnt|U!SLaIud*sfvh|n`FNP6-@L>4<(qgE z9@>DvU@CDK_e?V$dnYn1dhB3Iw1xT;;(sTRcjCwpHRpw+I`>Uy>ww?okHaq&qq7N} zNNeFUCkNs)(?YT7#nEnJTA`VD>+IJ!HNWCx6=yp+Hl22x&{OJgiQRb)J`ZU0WaiWm zSvxZO-iVcFcg|ywYZta>P+Dea7TXd;ft;ug`+n3#2 za0#&zapGJnh|6A?E&S2hTlT(^?)1}dCbnrGETpcOYKm=+*fqsAud7~z^KX2`ebo8@ z4=OYs;T6{_;PdL|9-r};{4ss#7Sa=0vt_h&BLYb+`Huwm5;>jn-xQqm%a82@JCU)qr~8mQ5!v*as|B8w9nL9NQZ zBIS0$cxb;9X>9TWfPYeRKvckM?~-b$O@6 z+Qt}jH8%O+t+A4utLqJ1H&74M$GC_$s%-$aWz>=j=A}(hotZz^SkGv zVq~$vffOtDCvYH@|L!_m=D_~5jOh(zLCr5{PF{puzhu+8Th|mZ&o*#S^K|j*eCCOc zkZ;+v@IhT&Dp|pdQOl%O-><|brt_(Y9U|9Cc4DoE{7$~ueeV$;e>^eg0{XZW*xPn7 z7ZK_nbA-dYsF1J5P3EYy&v;{V$>uB{<)iI+4mXf|osK*Rh=xyBVLB0j<-S8v}i2 z#=7Z``_yG$1l=iv{*dceQ3^e}5}or3;-OM4dbfjm2jjsM9t2YjDIpMzdL4P2|CH8)cKUFXh7e+;p&s=$w-;;$-!|4ibqW+CT%(0ueT z-;kW)#(6b!ed7pV!q}=lrCOu|=eLLsaQ5x8>U?7Nc&Dn|Xf0b3Y%C$pQ#R97=zB5# z(R_UN@a!e|Z8>`?cxN$dp6d_yJ#~=yrt)y>UxAS~w&+!^PZtmTJD#0QY>{fI`=|k; zn9F?AOiNps-&jUGdJOr>Pu;i>@#u{0`I)2B8dne3Swm(-JgNrULYXHXy@%LPV={5K zz}uG_URy;xI=EFXzFtLJ-|gov)f%l}zx&3)r{1{jps%{RH%@M`8@nyJNU__6?!H1MhKVUfKDe304m9pRntTM#+|~=kgzlHi_PfZdAS_dM4YX5$mRn z8 z_0HM0^$-^ePm-1xU-@tuz`MymyHCJWtHB)wJK^DfP&>e)zFJxpoR`eJ^yGGrsybv$$s(^;HVt(S-%$k@F|U z%&hSIB4a`%O#V1$Mb<9FeyKXP>w(wHX-3oD5yZv+44Lp8v$hm|wAnDm%|zx^UB$4O z^OA`yrt>t8!}C^*nm_N*F5$|=*k0CQRxPpB;md0uU_W*;@8jqc%W11xyP`qWw-U!4 zFy?O8J;oq8JB*yTmFxBN`w9LR^ZzRT@8rK?Me_K+kpKJBs8J`GklO9C&jg24$DOl4 zp>xZEe=?THPfg~(?3zP0w+6A9LT74}nT>T`LMax9y{ z9mV+Z*mL6F@sUIGZ>`DM@^AUPy!^YKYtHxXgV&@F@je$JVE-*7!{q6Bof8 zKJ^=$R*FYejrjkVd-M3H>U;nHOa{m#-~vfl0!m_}CSdDTfk=gK5`r3VD@dztwMnG+ z8o+9CsURwe(HewS)1p|kC6wA`rpvW0R#V$cV%lC@daF>it?eZtY7?SuRh9(M`8{8s z&p9(^CX0)Jzu^?u?lC@6irrHC=;@C> z`Ih(ni>EgB@wfI}gPd)ixkYt=7 zbT@LJa*x~?X}6xu_{e`y3*L*7{ta^^$3#!kXTF%|U-JK8vc*sM?w^q@RQo>~RGlW` zO)gJ^<^-WR4z@XXb2<7mv_`$mLxqYp5A}8cU-)LJSB$?fr}aE^>2X^}2F_mj%7)yX zz+Z20L++xS`*XR!cLT^ypF*F!l^@x3XYtHzezr5O&as-miIZ4zbZvBV4d+ykTp0KQ z^_y4CH+FpMXSa3Q*HKf)Z_NTdaPl{lz1vq<{AAjv5f6wh(*lUB=vr9dqfQbg;<2%#5e6*~{9AKh>xOwxr?x@~* z`Gd6q?55!B$?#)jJkdePvV7Ng_q^zYPEY0;aa!Z%Qllq?)^mI`c2!&T16P85pthV)XIKd}q}RWCD7|wp5}Iw_{7K7~A?8)AyJ?7h}Whyz8z# z;%^`4Y@8G5iA2s&2DG7>&ywp*DHp?~3&YNvZGz_c=>qRCHg5Xq_1`w0{2uNoV|Afw z6*sP6o$60cEvTh6=$D1AZ~8g-S&7q19p-oNPJU3*5?tay6H$l%kV zn(1~9p3@xLk@eHKd%=ATzP^Q=&2s3>LTn_X(eoDN&vARkH5Vt+{dgQI80s7uDHZOnrqtlT&OQ~JqY^5F0FWq8MAUks{h?z6+Evy%p~69 zcl`fT))}Kq@;SJ4DGq}5QM9ncujP1S7d zfRAk8S@{f(To*td8t6ChY>9o~q9+$gZ;*UF37*v;e?W%K>1#Nxbj?EY4od=sE3AGk z`kfsa^ZtjiII_+HOOIqzm(AjvHALu_j%WeffGk>T>P;O z8)jkalr5RsT=GMThHWIT@~gb(;wRUIcS;WBZf^t*{|+492pqo4+2Tjq-N4$$ldJgf z$DJ0*N_y7@o?inj`uzclV{>C&#=VK(wSzph@q8wFu4h)VzCPA=n6m)PniddeNf2Jq@ArxBmyyZNkB`S_(l>yur?xzh`)cf9M9osdwA zM|Ws#S=P>?xF^M9<(SyZU*T(R!q&SL**%DTq1p9=G`l{p>sfP^p-Fa*-M{;Av-C)f zm#&aJUb=#R{BIbqGk6VpU~N-F_m8ssmyct7=sL!-})UmdLuQwN}P%Wvuv#XJ@9b_MmoV^n#g-TpP3C z%KYuxaMe?)13FK<#gZ26`H!Oesh?CaIC%I|;~J&!o#)!78B5M)Xypp{gy82h;D&lb zorm37{;>0~1!uUup-Slu1>Id*i0#$(X_`1_pQefQX!;DjnnDHW49l&aupV7zKYenP z|C@&{a~1Kqsx3bCX6m#FXRpW^H0SfBFfH7u+7$ zWNFX%NakC}i~Z4=E1BaFVs^E!KhX0-ai@PUvA<6CRebK9=l#I-V0QZzoagzRiFnre zoTK;5^Q>#IXZ9bA&N`2=KLRc-Oizq_V>Wee4n}8Q$UFgXS)Z$S((D>wm_Ap#;3<0< z?|rBEth4xzd=T@Ue8S$lGohPf|>yV$|CEDW>-yZedA--#ZPHJ7-yHn&i@tL1q{G4^2 zud`sTo&5gX8ua}k_?z-=grCc(;UpXqZYA@m1L$6*)UGpY0FFhE{B%pSNw&=~eCJ=w zX4WDc`)BA^KYZ{!X!OOvvFa3814qp+j}7Q=cwK!aH!mJse)JRUE&4CM#~jXAH@GL0$FJ!wxdz#aoCO4(nAoqmhbfd@T9)jUC?;-a#4L`=`B(2 zQnWs#`kBZ}(kHMzu2KE+3Ma34GH1tqzx#b+G!>J3kou~!JxLEzZ#rAEQMoL+X1`hN zxAw%o;&Zu=JJP0X*c#04eIDA~9h@5p1+q8nOv5+$`-|-;bYJ^Ed~3i*D|AzF3jQ?+XFuUv zM{kOCC|}Eq`z}WAKi+!0cXs~f!_D&fXr0*q$GsxFJx&~j*T-Ibpp(99UaY)u)T7wFH@}+{To9nXvH-NySx8@s^4PH-a`XU^nvtwpr42YbkG zIk!IcaNbGI%t_q0{5Rv#<&Ul`E0T?~na^a$ZG+~#iasK}LUx8f6R+_4s66$qSd}Ng z26g)a*c69a>mt^A6u4E~a0lzKd05grrkI*)6S>n^EG9Ni#UNV#6pQ~i{u;%O9zfq| z&G33k*mJc#HdHU%+PAhNV|(*evBu>23fP!@QLqJegd-Roa|9Y2d&><2mv-B(_4*{R*Z zNz)ZWs~WEb(A2_pQ?3{hIAxrk*S(pZ8Te`b%KCr8x~cP1Ozg~9-PvZ=QsLg2<`oYj zAA9NN`TP*`U%_w1W_Qu|sKWK7RJ2?F%_V$h;nbdYHSqBT#y3!-1|O#3YYnpbQFChQ zb5>u<=Ut)&(6rs&-{PNx^Ue{_ub`2|?jBPbR?abZu;i<|sKKA%>=5ql#jiJm`+o|% zkoc*3GCd8<8lLK}NzI*x@L`yk#E>(y=4048GvqtWis)|dq<5KzOrLcC6f&mbJ=`2I%}}CN`6aYy`tBm8~%4GR>H&-a7K0KI4=txo~7@?e`B}Ocj6(b zc$dewBm-&RHirt^59g;`1l#9@zuyLzh@JVXdp?QdCNfSohwR86WD;+E-dWbTXIT&J zNIuKAk>f1v+Ozx#>s1fhN??6Ed6NVDhHfsUa#t0@@?FM%o$>0g&{r9N&!xfdu-mUC zwidg%c!ul&$jD3n?6Y%8KNtTv#QiB(WfAw%j6F1SP3e1zAqt~kD=tm(isJqJUUU7u zfyG~tZwbA(sc6yd+j)N7leRY0y7kaeU{$dPdajV#5_+zX8V(semnpv(&y~8*O?97} z%5!Dtubl-R?Xq?^!RAx{$(bYH=sfo!izLFYkp)a2r8|pl9T3?gLO~0Ep`fJ=Ut#XO z>@@%k8au`l1qQy)!{55q<$KLZHla9tTixJN&e-FfasIb}b1vt+=Ob5OS1-3dh`_mV z*el^Vy}OiHqP_0By4`nmyY{E}yR3|J4$l;__g!E4-c7=j>GxjHvOk!4aptt=bBmsv z-=F{K6@8t^O@h?`_%NTbr=y$mS)`V_%KCghHecyPk3pL}{z~45p(Ak^pAgw@a^zL7 zH#_oW=9wWFkL9Hb9w$WJL3U6r=6vEVsukmwjb4Y%zYbe^5&dKqMx##_<CpC($f!0ZReF(P zD&8VTN#~{5I4=(U7r(dispNrK#B}VW4z6_IL!9AZc$@O0us0;+n^&JBozTWd9fSE zQW17$YFzaSzsK<0R-S7@4=I5c8of?@Fa!PyzBVA|SI8fNo{2t`xt@61!cW&cExsu_ zupZq^zKYRzWg&CYeiRZ?WBKM1$mFG5noKk z%4azXvp#6`lxdMiuZGvvrk945>#7*n(}C&PUyE*5kE!n9V_OuzCYq!;z+|4=1g+^f zmpEhYb*u7?S+nr#;JL`0>#VFi2|0f&bouyp;VF?)WJbv=?ZkOBxH#Y7;{2I>X5n9Q z*W}17#$F8$NSE1(kGTw5wH}*FFW)IPxkP;|IP-;~q#4eBK?rXUFU8mrm z=k8Z>_v?U}00KTOGkWub-&@Gkw*gCDb6~oRpi?GnRU58S{&J z$jiwm7fJZguv7J4$k!#_u><@j2hH+MofUFt5W4afXFs8roCMCW<6yM7uRv#S>*RE{ zqo26%mVR;y|H_C^szEPnytNSw0&pEHL>H{QOsz(Elwb~qWC&&6Zj!nIQ z9BSn-DMp$;QshFtiN609d;bfutwtszmNbvE1MgS0QtR(1d++YJX9;UGeMRU2XXLnj z_bs4zo_bNKwt$iAcVEYP-^I41+O3l33b>CNSC*}DW!a6)jl!L+HQ04diF_Wq?8$@G z;57CZlMkeK+cAn~wRLK|xdo#Ma|16Cp0#kN@i~#r$eB8?iy5oWZST0%1A50@!gD7` z2Reg%E9@=u(`-Vg+J_8V>5T8~L?$^fgV+$x%G5XFE@Z3r?%cotaI+A7!mc;h=uOX4 z)70zF)kHp+?3*3S=w*ImM)(M@bmZpDuyg|A+FH7?Uv&p9J?`XQY;N5o&UXTK8k>Kk z^Zid`98VXYIxJkB82KdUAY47Z4m>%sh_Rvp?bMl0)BkI&+=vvHQxxz~F@4Hz)S+lCQHG zI&J#DiB9nMOnCM0M>;#iAMYlPLUDfu+;JW9oy(&W>P_i=*{t<$^p@CI;9;<_8H|N9oO#c8n^nue~)Rx{@ zROp1u0#5(m`L6KvvT(*or@xT@OYR7SIS=3ePWaj*W&KsBolL!F8}D1{Ono)l?$Fnp zIEuBzy3{+3#%~P%d1u+idv%tZkU@>CkqO^90UZ>4&{^u-y0C%nLoY0KN?z?kMx~Z* zd<aF5^5`~&$VQ_oPH;l!?45DBc(m#} zKv({#TA}#8yfM|Q={t0i^KKjO>#nEQR;Dvs{)12;RJ??_^j_I+w2t%mUtvy#pyJEq=$m}jJmC|+OzwaxqaPV?zJj;BxkH*(#aUUIcRi;fbQ za?aF|IX4kUklT&?xhpM{+5K6kad1regdtJ@BeF~Z70P<=_{jcYC z*8gU1?I`Dm9rgb?w>GnOUiU?!BjkhY4%{=y;Cu~!E;zk$qRz|xJjmyHoFOv!go|&I zFHt#pA?)%Q=%tzHr=!tR$3WvwAYLqJYP3iv6g}JO(vBJ*?YPyY9jY%g6z$jqZ$hui zZcafv?#FkP#&_FX+OaH&cC18}_h^ShzXRcapNs#Kz<*$4mEdT*OJhCz|L57~2Wu~7 zKbNqti`m~I_PG%MLj`ef!N!fh|8T-~A1(r?hW=XL)TEf4a0c`I5`U`jSahJo#jTJl zi-lZSERI{YuGq!El5~TrNyvZn&CNK+_Ui~@mf-6v(J6PbL8Z0z`EiVu=y{M zt?YZ;t>Czlyq|jZs=ObESOrVhZ2bNWYn0QL*jq@v?kKel=8Sb_etg}Xdjwbg&=c8S zRU1ON2iJtL37=?flKTI@h@ZwrzWV@j^d{nmWvf+P0NH7SKmNv+!syj|Mg;Esntk_V zQ^!QKfCZ82eF_3nOy6w@0AoOmr}Cj(e3l;D?X`LwN~n&&8mM!Z_!l+l65%4K4eVE@;xK_ zW+Ov1_8@y2IRx7(I_avF=%mB|?#?_Zv|$l?>IR+}vvTFrTai1e(1pX|ae z8X3av*|ZC}Jdb`&lgNE~obw*;KHAxb!O?&Dh@o4%@R#V$kM5ao`);x3BG#<6%N}aR zzG27y(j9w%eMtAxdCrX3=LIj4e{}E4&8h%iGL*lS)HjOze0LIkqmCk%-^O?k*0#B{ zwMOzcwmIQ!4Y@Ps{jTi!O>eC{yA2zL-mkm4dXFcw3kR|zSMmRFdC@w~Lvq1TI4k)_ za3x&dRv&oz+gAi$*1Lu4kMORaw}0m8s-w|a2i^~abAb`Tv19^M2PKP`WPC`9@i;(j z6zLp-pORp1ZxeTDXj6tW>)Xt&8XZ$kn6#n(^3tchdZ7=H2i{7KDey4U`|RJpgny)~ zbWR05jh^{{njOq7cv8&{!PEWZzjWh|7)=ZxdiKgz@LI4G0+zO>Sy-CJI@aTBrdPzQ zBK9G@^H1Ezf%nV8pCyiDCiFkVT*@UbB9<+4WzEz3;V+s){%G0O{C99vwn}K!GVZ;H z`zb`9HF7iaDy~ELq?lUEW2Qv%?YS@MBkuV3)HudCb@%!^#{-St-q4_K+*=$7i@ioYCm`OA3ti{zqwy4$!%$qU0)dd`! ze~T8_Gn4*2DN=(RAz8EbgXqj_gPiX&E04-%)PxA@6HnvWjgPuG@bl}+!aI-~!G#CCcuLu&Q{lo~7Z(&ylL8l>@N5Nhzy;}P z4RKs}Dc_~rXR%M|X>~3x6eQuo$v#{Na6h8Qu1@u!KPE2!?BVHYJuV)Fz$4|JW20SK z2OjMxa9Vy&jCQKI%RXl11KDKXfS)UFLOnD7iflcU-u96{e>kCsI!G2KCL27O_a9b& z>O|HlL9S|prtHHWWb78`YpVUMScqi%ZXxn&M|zs++grw(yVJ|VQ>WQ{z8>gcGEIGv zc?}-&ooZ6Qh`mO0d+%z;hcQ5ha{U@@jQuWfls)pQ**m8@XD`(IES`_;#s-|qUf4N$ zet3IGI=1}eaeLvL`0$hQFJ7ZkKBJt-1+wp8 z^R%1wDYtWyayyMZ^OwxyKD$`YiXX+-XYu&Xgq)abiXB%#%M+ydzLL`<^ss++gQcz`CYE ztGzXSk!Nc~%L{7f3HAhwJp~!z9^}Gq_FCD96?u z&+(Op&2Xo&4oDxc7g zHxMsN+{G=Us`&0AzEkbONs%+bp?gLJt{Chd%aiW$Lwut%|8eE)dot4oeP&tGGw<@u zj=x=0Tnl};#ra|}^mvKtpuxLd%I_{}+`!-DS*>b^KgYXjLa;y|aGzW@BG?DZgfV;|i_Ey@Osp&tr`@^VzvK9N)g+lLh1a?|&u>#`xbF zXukNLPZo^vzZ>yOi2r%AU>EW6emmtSkY_zvFvkC^e3HQbRDQ8wQ6COmDoMGZ0>VncrXj0x;Vyn;1T&>oSq$MkC9OL6*ZFw)RBq{z39vRevHL z-<2S{{V!qndFr?i2D`2JQT(vG-SDq?tid*Dq6fRxz#00ysppmo*0$k`jMr$pjQw58 zJ}+Uv7qjn0*vJ-AgVol<5gZ?O<+zEG<78`xE_kxC?5zHJHS1W1;@jkd?Bq=Cy^&kU z8UOJa!3#Dn`OKL^aL^8{Cd({d{HB*5yBaunk-22wis>~gM}-ewkv@cOBY9_H%#J7i z_rlxpwG9^rKh3)l zHQ6}LBGzPJed!F^T1F@AlwL}#Wb$(xV{wu8xyd{y`*TP7d^bjdx`CYGJL{?2bTqCP z-N0I|W872MgFEHYgGK{GV}PX-fT41AeQsWXABUbHMk4`_{+BvX zA2e|=9q4cPEBrc8dlDY~PBB$(pM`wz2)|fL9jMOKdr_R=C)nfV?DaDCd?|as1pK*} z7%yAHSoq`jS5<;Pb@1!0+(SL^YWO~JMKi_g?iSD3?%4*$N4|j{y@S|der9%4C&$lo!ev4%4`Kk&uk*PYd~jgG!%K7IM9KlCm(RL3a>mX;{i7<_ypKl{u^#qo3? z&wIQ}_>}{G)-Qzkno}Dd@u&@r5jx@7VK~&Yn8SWAN1)szz@EfY}e)%kLi%FW(n}+Jr@PX%30GcmqzaL#ZlJ! zY;YaeOcbM21uxo(-{3pBWgqWEAJAH2=StnHP-tSYGcs^RUVn6!x6U5uiTtzjn+m5y zU%SWyt8w31UuD!bFlDx+FSi8n8j5V-YduHRE%)g#9E294GbbNrL ziKAOMZN{TTW9cJ&m{`wge8+Fyi^<176rKG`o*61mUOgUEhhFzpM3ksE<9&NRwHL%lh3Xg0MA*G8}Q4a_hgs3Hn936c)lE3;nDvNU?3HoR>K#{ zfDP5VUY?XMTBbg0hECfaY|uXZkOT9e6idGAKR=vMD&0Q4cHY4&(!%9F81F8}UlFs@ z+W1@@`1@oh9tzH@d~p5|?sF=#S0`|S%sVdS`mtFLw%)kSRdjt~WHdP1 z0j<(m=)MBXTL_*sjI?-CMVv?;Ykdni&={S|DL#DZpl*TS-{w0>?y!D)(ZN0U#c`mE z9Jpk-zJ$;0-YgFMU2%p(;DCSZ8;tefdM(d*IR?paO6Xvr@F>2X%%Kk(PY>2X$MdlLL^)Hkn_SV%9wChq$e{d#Ji~M5lx9`lxpR!iYV2Sdl z2fOFx+;0K&tH8bIRA;4FEY0)RA?E2h>cR`Z#gjdl(V9dTLr0^tzsd81@$vsH+3q- zw)Ml$UTA+U@#`K8DaP4bW8sL2#Tmf1?rI@@tquI#@zF-%dJ#Nm`X`;ml^=C$ufvC? z7g0wOzqnxHXN*|^om~WP6kjYVa`|E(a8(3c@muQ{46gJ}#SRPxp9@{M%1DB%9v7~< zvC}R*5}mzCYdrxzOq}<0;uuyOh!(?_=M)`?&QfjtV>kXB{Umj59Mz{1{Fz)da7(=& z6-Q{#Pc=IxL}Z_Q2tQjX`?jB3`C6Y_UybeAaTj=M>HuTA#ooAdpIN8qgRL=qC-=}$ zi?5p>#oM1x-*3f5wW*Gk+sF4F{Dk6BAFNHRA%6s)*|8gc(=1+uUwDas9R;l83#_k+ zJ5K)GzrIiT*GIlh^7=l>`n0Z49y`{(_LZ~XzzSFxLlby&@OxAP;}aUZ_v zO5T&aw^P|$MJZ>`kM>x|*(dLBJMWvUduAPLgE{B;*P`$IYYDOz*=3Af2i;cpE&GmQ z9qe;f2fTpyI>a+*t(G>Q-l+8|#zkw_y8Z8I=RHTT$2w*W*$HdVcm6f(V{XY2#%InN znplJ6ocJ27E$DQ{@!2f%{+ZJn<@42gw2pP@IX9JJcL|l=v!o_Ste=f}c_ROd(~OU} z13!k&RWf$7%fFg^`h=A)tZns0?0Cb~ZQB?-6+K+_K$2ygF|m3ecKttNtm=V)7fT)` zR^y>RIpJ^Y4}>@GOAF8DbJgw{tQM$n`xWvbbyr?&K^=D_JK?R&H=eWTUzQdQIOwKM zTH~AbR!5fIPWgb6$^MR>=-Kw9FXeF-$-dJ+!h^g#vQFr$_SVjOl5Gs{@T}y4W#EMJ ztNb#-YrIRow-*^>&(+EmUt<3mtkZsGWzbc8rg`=u4|;i8@%*Wau+3bEZRP^(6bqnz z)E>Y;CfcF6jUyfREIE>ti{Zs(1WiwoSPx<2zx)bu1lo^aAbCG=yPI9t#jI@t=j_iSCDw$^PQ6`?Sl=R}Mg{-^Zr5i=5>QaYbx(UErhG&>!Pn4XPiaTxZTx@#um_a?DJwbBKHP_+chI zH8gGdql%FLF5c~?{{AlLg1 zYTidJy$Z13XPEn1_AIy`!T-|Xn!p{^X)-*@nPh0f>-aJRbARM}+3e5-U-HLERGT@K z%ctJ4L-#tH&m2q9TLqV1zrnmSoTbOmg^%9ov?%T)MC}&mgwSOjqlx>~9Z?HVF+NAg zBk$Jjjmp zP+e<$y(`AgSb-Zi>) zUcrda4S_eD8}m;IT{geDt@r|o*n+6Il> zk)9FW3XQ2HC!qUA;^^SDZ=f?<9wB|$#ON-`qPCo9zxYpdtG2BU~7$<7>6aL zz?8QZ+1zenPg>75^xUCpM*OlR{+!lbMQpG3TnHR?oMCeZo?1C4{2l0f^8U|e|6bg1 zlXyNh(gNULGGzuhPQ2mb3~;;zdK#}^7m5_Huah_%@hRD%UEX72PW&B=RKG6 zp5gAfo%yx?LhfL=d;b~FM1kAwe;$}mHipmanJSKELgf35eci?iU>EzCxvPK2r=xsl z!RA`-Qt+ubSPxdU9&@MkNGagE3gQKZyS4{-pUzk3ybQcbb;dE=a?ki~o+)u*WS1*b z?HV9cSv*!P8)Y8o>MhrAK;wQ|4sIsH0mM@tc5jzpVd$4Yu@OL zHTDr?M(Kz6@m97$cV?p-K0JcFY;wv<@|{)tp_xA=Qlc-rYB z42*mP7!l9k!#kVnuO7hD>X0oujV_yL)AVX%=-Kypr+#Z6ik0uUtUSDq`>01oGwUM1 zHUv%T=DYB}a_;S_MK%)oY!q@@I`SHMotJ0eH>5vQeVW_vEm5ZEK7-zN+`-mS#0|5i z_o4sZJ(ThPm+0d*9{FdmdpOKJ^l=Y5Kb_kf*!;`5zk5eH#apf~3(w^In+7?z-PlnR z&n+kN2hK8!J^!9Pcb{SG!U?iKfY@S7FBRXhi2W^OpB3!)BKCbDI_(Ac+^uX%4{>8l z4Pkf7xV7qQp%3obgWu`h?%S$%|vvl9-NKu#ZE}Pf@KoK;D)f!lc<%(@Xt0{zs>P!^4U#LQkE`B8Mjd?*X4$?6 z4mSJHC8cXJGHQ`0iXL75)%mM4E^*e>q&aIs3$S|%UdcPns6f8XFI-v6c-gUPzUn-^ zZk#ix0T?PoKH1B?N%vGv9e1#lUV^GuIJTP_(>cJ?Ud~MVPPcnz-JF?ta5wU}?s@-> zpZm#lr}n)Pa`L}Tj8T!(x|{wC8`N*7@YbrIa_3wN^I)TGBM0xc&rqA*&=JL}iB3+8 z)N{8D+-=4kzVADgw z9oG8vY0k@vo4kf~g;-P1ikiM~rqkcIqOk8tbdsHElX`18v*u?j&uf65=`5SRT$TVE z_!tb`XeP(veeN3Lc>lvIMiy1Do)GJ4P~Cn*lM;Q6N3Q#|u@lMu-O1QT>0Q;N7U0QN0!RBXdQTItbAOKWl> zqBR%Q;U}lBhiFa9kvOf<9*;+Bx|N4b&5HnM&;x7~s^$rLDYYn!UMgF5A^Nmxa8WNb zd*^ZJa~sbAOaI8SlYO(H0_kAXx>Aq|&>qUJ(xysh{S$0E=W9%C@Ixa{H3KiL|3i7|Mdce{#CV zx4|QI|FA*oZ zxD`zs-yBb%AX!G4& zwf<)BMdW)IPAYA20?STSokZbn9(58!A6&gBK>qDecR4-9p8n;3aF@@TeGDBBs~%GW z;WD=`%-)Q>kNc7TqYxd*)Br)*N-5F0UOu45P7)pvh~PjJ>=`G$6lE4 z-kW-~Np~rv2ZqsIf`P_&u~R1F+F|xBJJ}!1-5Gma!rg5fE50(t$S5DI9Xjqc${Ln4 zPY-#trr#+1p&Gul9y@CfxzROy?L_vu&+=VJc1nU)x2A}`C()vecyp?r`wg0y6?8UxBG5%sPC4= zY71wQ$FT@`Gqa7)&lnlrLHvbsQk?)c!K~VOT2uFT=MOSo{liAZY;{^oj8|omlQFtH z?D44USX*DG&D)mka3A`PWc4o2ptE40tS(!BKXTwq`hD&@%Z_d5vrcN&B+K<)-SM?g z*}7iB+tvJSo+lqq=V5u*q{wxbM>oq}iN9~D^ptjZWrJ(aYj9(9&*U>Z-qvdRSLXTw zJj&x`swW|sxyAjhb6>^Zeb|5${~8bu)Qgv;L+7ZCy%xO`JEVG6i!aysYplS}!Xun< z$k$`njY2Plk4fiHT#0Jfl=1)lzbK?3 zSeZwT=?izIWfcNn>)_GS-`pPBW7R`D`%))7daR>ZMr8Ebah2q?=W~XkY=`my$$D?Z z;@ozpF?#^cLIw}!szDx>1APH zF46%WHS|TPTbKiF2}JJPg8fdi405(=ceypX7Asd8d|EYz&zm?i#fZN1GwK6yZ==sH z4PTFbvmxO0qr-%M!DnBs4s1$Yb2@--=tS00SD{;Wn!eKadStgDHv3>!{gy*ncW*hZ zQ1%+x@^d27KS$pw_|n8n^EOOCN53-7^m#J1VN=$SW~_7|#rH|}cJi&$Tua@=o z!KV(RpJ1yoHXUL}XVoBsbOI-S{a89sH}izR@dosuciB%jvP%egqn5o({*gTSudFSP zcl?F#kDtqsnsytT3iqbiOVRDA^p!5-|6j1CDad51eJI~c*D`vy02gm|SzqCA(w$AU zqv+Q>xwJ+3VaiY65A1f5a~8~^&N=In92{lM@;OQ_@n}jq|95p*|DxwFZ{u0nCgmTN zuJCJMQ@Ct;c0PUqHmpG7jo4h1`M|Bfsh+d?#Xvp~pl@Nk&g;;8z^b=~$49JRO1{AH%9C7j7P^saFFJeqSOe%D z-d^tI+5X=7VQ;QCzi!Xn#$An%e1zwVLiF0XZ-mKRZRO6eMYVK~ac23?zngQ5(RMd? z!Mg|PA9dV=SMOvWG}`zSM6aRq$@E%&L*2VbZcItt1&`TZm0u(3Zc#;q0@>0yuSsb@Jg9~+tQ z)`!1Gvg)=R&8ppUw0A`KZfqMi2QW7>=Nj}|Xh{yb!b9M1CH$iRI#T2Ej~bVMY{br_ z{dK|*cCY-{g28|CHd zY!u(8|7Ab1XKGWwbMh$H1d!32$jbrztdJnCMb~5jNzQ?-v!JA`av9Ap__A$op zh2EBP=M7fRU)7n$9wtAo}GN+Igu|jb_!>ACN_}c z*NGUMHc40T)22G`>}SxXPoXc!{$XfSIkXA-^d|I4X9!KB&qrVJE_8kMY&5h9{FuOb zd$>KDGxcm4F&YDH`xHI`m&Uk#fwLl4LwEG-t30C|EA+Yt{d!#|_BoqJs(!$O=kv** z?q7rEQ{T{J+On6PxBl3RI`GbW|GzN4@2}Wrc=j0UebcS$?Zsn?E)+nUJMIe_x=$R{;95``|;QdhyD)``~s z9biGf_ko8oxP)&E2A7Ahrwte0dl@UZEFgC<8HP7vv#@Y!<4QUhE1O0!=cIZj_f#Gq zK3$z>K;CLTu<7wkWXz?i+wd50saW?^Jd*_NO%658{5{oLb8lS&Mjky$^=O+qGWZ zyT?<++u#20#MlPuOWwSiPk3ix#rpd!UsQiK>sw!roT+#XFUCXg@9pn0p4A+)_)(u} z)p|MteL4VrI>ht+;QMRXr{jFZzQe{qP&0RPG!`>0zqR;D2EC~I&GVWkH!>7&@$;4K zpS65NzP!yYU)c^1N#-kKlK4sqFt`WU^YfK)^j{EPkA8cJSx{gbR}7S}%^#5Bnbl_7i9~&x-GdsC$=y%k_cAXRyU4<8mALEjsWT zcjm?!CGeWSxx!_yX86$ghdn-SGjlqiS(pH|GPw#dAy4yG_J@0?^kFn=0 zEwy+Xi)~x77Md@4*30`K<~+wYXDRZG<`i9x0t>RWd2@C`PyWQ5q8;8I50lHQ`8EE{ zJ$_j`$H>~30T&(VqYO_KJ<@Yp%Y8i41HQ-)+UCRU3)AIWyaW$Z{b-^YFP zHA&wqE^TQ>cK5?rH!$MK?)&hedT=JW{p)`LPuX7=XK3->_FBwGR_PplVR$Nil4N63 z{XogdB|bU%C_3&jWaVQwjtb8=asP%$)!L9Q+jBcK z3fX%ie0w4|6mosM70ABMaeTbeF~s+S+{0izzyBv6ZhnSbGMbkVzpmOGiscebuxqIA zQ~Vlv;n=!6(p%?Mom4w-U$K=ZYi8_>fqVDHZfC6IBdsM_K1!7F>F3K>qaXcwpp3uqb&pQlIPb48 z_BG;Zh)Z}PPw|PsJaMr7vcYemw{xnqIs$y@ysk+)uO@7F)RJ$>pw4_M{(DsLif$*E zP4mI*v!BM-%$&Kv>=t;iY=hymQefGvJ%wE}-WS8J z{Vdi_JW#^g(^z{RXQ#FQocIfG?W!9Tq9$ST`t#hlp>EgDu6tR^oUK>GbK8gZ1El1+ z)WZPf?gc)cy4{7E$Q4Kv=zD7;=AQZH;+(UitVLQg59^)*jM2Z z$b2Q~#9Z)ygU2KEw|E5K6#;t*e6}Fa*ohrDna}?9Y3f`-!(ZXvQ_9Szig(G^sJ!N( z?MC7m!e4Jb+4B9Lt>zuK@$(7M5Y}k)QqEhl#Uk_u$<^gavW1?}d3ZEma`pH>$7|S& zZ%Q}Tdp^p%_Uy!$CmH+HWk(YGPl_MDd9%mYEZvc=_=wKlwIOZ8@1Xhg?uoHE?O4m} zZ4YJHu4>Ua1ixN>L2Zipt;{_!a_y$5sjIE`Y~?Pup)U`Q9!-ke^5ghD4OfP}j%W4_ zQ--~ovBRa)iy1o=`cj{w*Vx@eH_@>2fq+MUItxE zW$XI^ac9D#Z1%C6eTeVMW|h1L?~Z%EZh5onCVTfxodvU>LVB(m_~hMI=a~|j#2U8h zERlVZ^`*C=-+H&T!%d02{{;JE4T8;s!1rDJ?XABa-67TbU+l4Syuq^3rU zmAhQVt%di1Trm#3~;jiPVcpf#S4Q}Ss(|Gy6HIf|`3W{+AHXndm`ouc0A6i4yL z=Rx20mH2EQ#KjIK2R+4_53anB`tfmljdbleeauau3nz2`ipTPBF#rt~J^CZC(ZQW1 z&_mYsO=G_`v7irnu?yRwk=`@XI~FG8x^FXfbT7YQF+QG8;N!WRn8wS9X}pw}#!K+` zj4=5&cAYkl$zRbZ_rg2r!7s>O- z3Y>oV@Jfh{l7HTl>5<)+{+W9a?bUn_^IPLOSEhvz;@^GK?R)9f8S2Vf5S|Ondh%K) zbCpPTp!Q0#ymsU@>NG=7UUYH7#NR=`FXf(I2Bs93>B&Eb@o!7+e-im2)jOy9-dPKr z_t2{{&hzG#%%3nX{=^p( z?1QimV>fnrdzWmK8~Jy}PGF6n{LJy~BkHXy`(-jM+w0OY>ENCXQ?#sG za+KfiC;Lb_v@B?8*)HOR4J|v%N6UuLJ?>$x2d*R+BT2ro_h#(~9xs!O^B4Ng_OV{c zev6Fqx;_zo>wrQNbcMb>llwm)J_jK3)dS;yqpA{}FSGfM1_*~YW zKaROd+_52dY-qq(yZ&^>O1>*V_fE#Qjo@G$k8>i&e)Qqy&A_tG(a0BroW;wHR$ua; z2mNcU-GmxFZvYGSoZY>12XDR~w`px1);_01{=j++>_GCJIf3iG<>XbJ`WE9tcl7NJ znE$I!#ow+t)+h4+F_Uu~A9)wNx{K#RcXY?b><8{9JFCC-dZ6!T2idP(Qz#-^^K-=E ziBIPdH>LNN@V+MaTYx&;XLBx-oqv4IzlSbUlOn!{>)C^sPe%{tv!$<80`pDeQYf#k zjsMO1E}3Q4cN^>b6zl7j4oGZP6S|P{N~_tUXqe)6NleK$&up^Kh*nTXV0R7ct)#y3 zdiK1AzZL&;7GoXaW7Mlr|1aSG=a4~F14;2{$vLUm`DXg}6HL03^Vm;}j}!hS?j)A(pmL(g zt9Xt$MD@cYr(&gQtWG38uaCZ&ZOAp-c(#~$L(!h!Ul27lcl7swT&Z%W@fG|JuDu{8 zAHR0KEn}UX^run%{2wk2Y&!EQWRzf#+=p~@g%EI%f$l)A z*V@tH56FR%&mloJsh@0W;+Jv%o?Oz&{i~kR)7+tKG6C)(*`IK3k?bATUbGkb-GmM# z_!1mT)~VzF8rNPF;P2a@5!A%UuI1cg{?+aH|J}O>UjAWqqwL7l+`aNRtgYy?x`USz z{Qum6a0dT91cQq)d5jj`!g#K95U8g(YT@x)1 z3N{+(ua|mUAY2VBNako$j#_PTV?T9>UY%Zczk4UT25~@ao`UD+sa)^9(PaD zxVuk{<7QoMYMos3@BRUP6=2Wb+pv{$Qg6fk@Xg`&Hf-X|$Pw{C9-n=l?M0FM9AQbWP{o!5(DOgf5@GojYmcd!3njbC)_LukIpmBlaD4lJMQf z-S4miwQ>Ib@4DHa?(t!s`Ty#D4eojhxF^Abw;q42XB1sXXPEq1DtOk}Z6Y2)u-m}7 zWMGRw2)sPGKhRhNea(O_Lu<&h4MmFRo4KF9naT;Qiqu; zJo|B`&EQOC%ATM<8wSqQxIICgK*_5=(s=F=y>~}O2DJ!)@nyhxAb>0Z4Cv1NwOTY5 z`FDpKx4cSm%hk|#-9IU(b4sYMFMP=;Dh*E`>GUrQI3{NKmb7t=%P*vc?1gFl+0&eG zA)nXWy<|=U{wT=+HFuAjQ_c4!PPUOX3dMie) zRBKg!VKq9X!Sx<=ZT=R#{tzklz3cuUt_^!1=oWNVK`8d`sj?>l6ygzx72zJu>3e7D4Yr?~&Nk0gHA$sLL32e1)(&m_~{ z!RYZ&`nclDgqOutPUHC})2AA`{3>*LU2sBgD|+W@`V8MnZ{U7t^6l`lYq0}*a(p#@ zR)d4SJoW3j2d(cvBOh+Q))%W=jV?df*k5R@&sSAFNUW~r{jtVkYm2SnjKSyqE@S0C zk-VaQiK6Mtw^yF`ylDD6^j~hH|8jNZ>Xr5MUasaRpZ?2bgZE!Pif&rTxwK((kzQTm zO#Hvne_6Cvv5BI!s<$Z~S%aMKr=OkR_Ht;UXs7T#nRedlqn$Z^+DT2FWLo1OtBbdp zb2v^P>OAxWKVPlo|Dp8WL^_?*Tg6&+@7=EdtDd|UOT%+aZ%NVX?4!{qd)c@Cmd@m- zTdHw87~N96hvCz$)VjKG=E}vgA*&`w5M5;iI?KSCD5|FrMTb%>mV8Vx*^s*UlYs4( zEb!?AsJ9fED}y=` zp(z;~GRe`(q=p2t+?tF9rE8Gu#%3&V)?`vcqB6f|Wh*+&a`vy!m$Uzc(dZLJV{;m_ z9uI`WtTCg=Y1u1VBj*%$$AuXeVy!uUObb_HyVQ5fvAdc%u)9v~v2{5Py;c_1cSY`Z zMSM5uC&?Br>>qK?%(b-sy6>VWb>=>dpP*guVVe!lngv+uU-v7_409HZuh@2<|2L~ z^r!N2dyM@-FjSq@=wM%YPW315Y@Zhh)S9>{#eisDe=TtAs=GhWJf43{UmuBd6TW6`cEtz^1KN$Yvy(l*V^K?oj!viS-3kOJ2S$`B8Ll zA=P1*Gb3@O~?+<-?MPKu1$KcC+o@vQa9y@-^ zvCfWbUsJBAV9VIncmK)ofB+r8`Xp}G%5S|G^qm} zaUnEY^n|-=$vwg8PfaIk!x`9sOM)4_MIHAnL8e?9f_9P@-4eaRu`wmk0L3wuV*@{( zy$D{35i+$d@8JKLJl8^wm|5?f1uZ4NbXGlwt`V9xzkkv%fhFrt8mn9)dQrDTZ%&#w z-TFIz?bLqFoA+_%bDvx6H=TuLojCs?k37K~=`lM>7CetKd#Lx$m?(Up99+THXKEm&_OVg7iG4kT z4Og&9o_tIulwLX*Zszk0>l~+haPNMV?!FV*P_YGm`$H9S{vzbXUTk+OdjgFs*Cg5@ zEwn5E(*U*#*vaqPrx+#XHEt@^zNN`>Hc- zymb&<>-vtZNz-v(dRTFWdBB2bPJ=7MH6TC0O!~cN3V7yKo>AO?$9!dyu@w4(#Y1 z^=Uus>LMnq-0vgKi5&W-jaf6jSi!mEcXO5r?_SLNhP$T=87sL>xSUL<;`7=#>hl?U zbfhy=c$rc@AU3!zb3q*L+T*o_Qo-HEmwj*tua3b$irQ*FWPLjOE`Gab7t8;=gwO2R zTR-<$)+sqcpPk6xdhS}{h!sDZ%?`@per?)iR!XAW>b@@1*NO)?CYaYu2PGqHxH^aW2>2m*&g z*@>d{qh3COtSJ~t;1k4zN@ffN&NDK7$N9vX5xcMrJHatv^ANBpeR*3j?PaaQ)-cPB zOyCYBvwFILbBec4$x*qH?I(LR?{iJekwuPI@(I2lh4bYJ;dCA6Jh#&2{&PV^24TN#gKk=(hehco}f%zI2ZfgX$_-HQX zoW1i>oJcL}{jbNN?>tupyo$~jFeX7}HZf!u6ORhqDvtg~#7cGC zmtpeCYFUHN2RXK|b?Vc4R{DYV`LXScO+V3$t%gQ<=XmVm(*A!(*6D*z9Dzs5Pp$Q8 zoz^Cj8~HZtRSd{7-q8ch6t-FUvJg2}d{(r}jORP$5IoHIefKRI(nh248#V4Wd&ULK z-FfrCGZr1u*gB29!j2XF?74j4IyQRi;JaHHAN6RhD-SoIBP6UBn}lfN3dVlB{;EFl zI;~?{@Tvjzp}lofGFCK7Yp8MOtr;+{g|DTIb>pEE@-XwK3umRHzu}-Hm9*?Mlc+PHWe-|+|XU%^b6O* zoLe*J*nLJI3~hVD36s~Q8uWXK85!@)s$dP|*|c;cJI8R*g_$n&K;?G%?G?*^C-@#2 z?h!7oi{E|c+JSK5-Th%?$)0nu2dN*pXd^Y}n}UsVRj0l?7@FR^?woMP`K|Lr^BwFb z-N@6jsdOXX=>MM2;)A=gv_D)hEBrY7)j0(mVh}ztukke2-v!Kkhu^dH9@b^vL)_Ya z&V6e-eh}`UXGSRHv)g%2&z`}vMkfFddoJRA<J}P_~_^z{t_FzUoj6Z-SX?Mz3gQ_d+V&n7I>CjgYdb4cc+nCRdpiy2xnXvruQu8 zG&|grenD7vn{YvK`0;wnuj=7L3m89(@jcrw42$k7-_+~vo=ijD_HdWI>|@?H9vBtA zhjV)4feXX?(kl!t5zZyc89#8J)A-fycnklcnZd};-(y=OMqc-iJ$`IA@SF<%E8tBY z{MV5eQVQ&M14m}P*m---N~AXgq8Qq&bAi5&`vti;Rc}R$ozc!r-C>=3hg!=#&cMrS zE`2j<^r7L>y>j-{xAMfW;M6atb=SvnNc8>loV6c!w)~f9gO}qgo@aA>*K!`h?b6>w zXQ?mzKK3ZOXJ~5D9z`oXyz1n;Jl4|5UFuBs1Ghunhwd<&@fz0yd@IgJ<11X=Q33DR z|Gkl6@yPqVyWem@IGty7W?EyXOP>XI|9*3H^GMdK&#&S4j?67BXMYcBip$Y{XPZh41eJc0ArTl>N0?W1%N8oew&aJnwITYsqc_Wc01jj%COx&92PT?8@pd@}1r- z{-zv{uQ9KBqCnRk^z@a7@iBVw<(?ehz&OoaN<5FpyLY*B?{eoBzT3HNtoB--ImCMo z^ByleHo|GF> zLH!=j{@<*;Rb=Th&Oo}PVhB5z$xfhstB%{0$PD00^126Cwe(oA^;ER}DXzS(+{h_L zrkjJTt9W)#MwZV}{xiL!LNVToSLO~(yt43#yZ6cI?)m0K{txFXIqvts*`iiu2WXit$~`PxD|fj~$|O z!-a8qyxoI!^UeYEYsGIZtSe@JAG|sSlamL+q~!3et{g6yOeKfE0M2{ov5b8*vCg-V zpY)vM@U6(V+ZmGpZ_uVpK9jEP)xeQ_o1Dw>B5_b1oPn3i(Sd*KNLK*9;ABr_{toJi zzL{m=qVJ^nVJlZF_kVIELY*!zhZg(&((a2&TaJK(71Wi9$x8)ZEeF-#S5AfJr<{@? zFP*}fd3m+_X83R(-kglbq7OQQ?{fxPV=H#NH(l7Z@1RD!%flCtOK0)}Iiq@dOhE$& z^o)6t8vmM4eh2BQ4>4~WJoFH9?lEvvaH#XQV=U}%WQ>RB6|O8@;ghB9Si9dk#;)^p z5YaoAkN9;EGoJ61CweR6rL&0VgxtA91Ln4I>nj-R@j*jR#Rpqm9S1$i*b?3Is?=C` zTa2C-4?cD&V_o}J0!^w0f35s4`}WW^zXW%ES)ML7$@I^8n_l07k!hT7*Cm7V!J&9y z0RCq9U%j;v1@aPez6B4-J=?C|YWoy=w5*9ax;yS!(mkLznx*?)#ugFF`!+tE3(0$u zJ=nYV1blOK$tnX!mc9o$!_}F6#fK{AhlhIC_7v}$@lU?1dmD8f@Y5RIMKvkVT@F#d ze5m)fr+DuP|Kxk0=e-ky?9t_8@*Dbjl-)+u2R9d z&i`@NhD$?tev-W6nRVBe=@GteM`C0^tls%!*;A3{AP6W zP|uu35;E|wf4s3Wc)8*fP1{$jIlB35J$CT|dW4=n0eiK3?hTfPj%_fuD4mg=L(fm+`Kq+O+2Xs)ka22~ zY$-1y?^sx{&jf&leD;3+&81;IqkDCq8C%2M9H3{TM^nY4tvz9~k*oB+4eomF7?-x7 zw^0*rQx!H5=U{Z^&P=Pf`RDmBzVAp+vobyF)IA6Wtd2Pu`aLin;ns>*?fdM77wzY+4tu2nOPtA5a%@mV*@!GH-;)e?p_*tR1iIC1bP(xDazHG z!ompqiUdMS!pp#=Pkl47|8XgJwr;v}_Hxd`UF%rEeN9KQtf78JR@VxeI1km6%hEX; zSz`wIk;!{iZ^I7XUVD*gWFPxy=gu~DfowmlWczLG41&sE92kG(k3A~%)d`V*64}G# z@YOl+CVcvm!Ts>_V`8L)U!DwBXW+-`zv|`U!A*C$5C6>>sfGi#Uf{*E6DiK@WFPE^ zFH2r-c4=_}ElR5MA)7}WHWGX4dhr^?i{Rz$gZDEU>};CrC-;4$ zsx(G7zef!)zu&c%_=>6N59U8u z*!bo$D+9~E3*9ny%m09X3P(Grg)9BY0TzX~0oj6+o+)sj`7zIUx}5yR!bP2DGA_o? z)8f`5&U2@G_Q~)XA1mCYBdVfm!>$67d5trlCKJRLao(>cNE0chAk=v)GvcKPAdqj3Y_ z^xvL~``L$kt_Qe}eZ#bU^=RxcbY{sU|IJwSqe_PVG6VnC_dirWsxK`B2ZDq5;6Cj7 ze+A!v_o2ZtLc&p#utJ)W*az642OIDFDyqfct9DE^nYh!%0F01c?|4V*+ zIPORGcz*%wPsRJMXRccI-Ne2%cb?+!z=KfZS&bR|F3LZPJZ9`f$dZza(wJX(bUHtR zhhFHrXBTbb9UiRLxOAq*M`!dNn{S#Exrg_?e`Q%%J@MWw7mjKVif70%wh7ID3bph- zf4FD6H2X+lyY%*P1M^zgRnBc9o$~koZXH1$t1HWfT8%xx^rKXaaI*aKd*Y6@FUh4Y z?iikxMQrJ{H_eaP3#xA*?%d85>rtq6X+0IJ>y{hR`ft4{t-t2GSIh}rGx3U=-5G0; znM_}(WI4pky;UAh0C`z@Yp88pqjG@N8)$k)X-j?pTZLjwpldlczL&qhjFHr_Iv;5 z@xS+X2QV1ZoqT5||AURK9@@_8^``4Xo>bg~;ugg3{CrY&SM_uN&UP;Y26j&tFR(qm zMQ1!a-wm9DV51VgAp5D|3*=XIau(;q51t{{?q??w2bos8UcHfWV}m}=J+>gT(A zh*^>kr((3TSos9cV*Akewh7=2{sC{#?%le&W{$DfTznmMCRwXu-p!ddpKol$ui)#D zy);8{-CvmBA6PZt@_%Bx^YBF$vZjvvMoBM?`3YkDeS6#{m`o28>z%tRE)x#dUeyeq zMqNI%%f-!IKHO|FxM_8#Z!&f`^it1!O=Dd@lflho`xLrqb1ZEo#o*}0dV!(>!X{mKo9di6P@41XRSTaS;l5nIJc1; z72-)8<$J_(W0X(Qjo;bGPbZIUd=vQ9d3!RKXnFNxk{Kj(p>K0fk|)i%h~N0n1$aS- zHF}cl-CA!eHV(b7A=8;vb4F=6_O8}(Dc^M=?=tm(kndz8sUsF?xOed1JX->M)w8|| zcU=|eS$)93VcIO6Ll)6}J)^Nh;g;fH-L*Wy*sb7q@U?iY z2l3Mya9n=6-*X3|ow9eoP2Di{;F!$+*p2?7x*{F*^>Y=IFL_b+q~Y%8YrMB>JGH=| zV^#;ZXEN>U*5<6U6n^>7Qfr9gmwW(|BDGq-JGRC>ciDat$69;Qt&AP+eXd~aaL>C^ zV~2U(OBwsKKSpQj%$L1zoHGYz7X5+vMSR1RIDY31=SJr%wR5KyIsHyu;D=6~^TUbsTI-pPEJ3V< z&U;2%<(tfH4be*_H)t#~%Q}DCQ1-H%r$hRHTD#`@*LSxC1!6xI;r?u2Ltf6KLa+8^>^-SQM zx?LqX&Z>%!IZI!}KDMzgt8o#!%Z4?}S9`k4_`j6J=+yJbu8Y8%=h=TI^H(B&|EBSy^%6;`JRX(^EbpnNZKX$1|S433_7Unswjp(5qx#{T0tP zCR?4$$2~js5AbExvS-iUUC%k5$61NCcic=YBKtNuIqhCfj%)(fZZwuUkFs|Wmp))# z#VtuEs7Dq~UXOAMB(K`{{y*Hkdwf*Y)%bl*hRaMYKms8lKrUQlCg3GXNTS$Gf|rm0 zeFzc7wvu4gNdnqf6#~UfL}?(PMkBOfC1|xt5L>Hg#@0ea+W=|>TWi&)B%pR6YK00U zNSOD#&Lue+64dwi{{DIY$R~5o*_XA~UTf{O*IsLF(I4U(Z=qj_PnLV#t?w7|K7n?! zi5n8XrB>p@t?*ti^@vfHzFy-jMf4THL4A--bqRe6emG;Bn#%w4$t1mfeczQy`>7+8 zX+k&Cp_{u5U0W|B_SrFw(+t?P_Q}l~ZL~iQzbZLHIfxA>3p`W_ZL#-^X74$Yy{E)G z$-dL%#b3zT7xZM>T+CRO2jJ0z$eP`U&OO7O!aEa|3j{w#{Re1E>d5+K*XLY2Q`NtV zJ~&d-1H3ouet6>lWY!gXkJzpUFpgX4TX5AEPTxWkz>xFE4!f|F8*H=F1@eM zq1R8*wd{l0&!c;J@bg&)|4G{dqgB_@;pjdy%)j1%QL_*C!cVLQzQ}y z<1o5j@cJ{0ch=JAEUCj7H*313zdbu*bi7m{&@*T=}~v4)&SRpdl6^LkWKzRJjnR7K8=N-ZZ+bazf9e5J{Wgdbt5o)c*cWhz1y zY+F6~&qNp9$ryrR7g;U(VTEBY%-N;e3v+f!9EO~I>;AWg(Nq7jsORiL|0c90=QGh7 z{cH#CJDEqJpDIIcR2geI-@tKicnURnsh<)W}+L0eJ$=cq6eT$eLvOwX&Y~*pyGsT)IG^PJ|}`jZTTj!hdj zxf8T}11+pwte21YC)sox0&CVMMn7Uhn8BaW=KtWoAafxy4%u38O4beXa%gskpgK1j zb!JeDUcClxPd|UKTpgXSQoBI6|{fc}M7|&ThyJ6JV#1{-0rED)4d-+=F zFw|4lIM={G1U&`YvD`DFYJ8o`IqppMi8=VkUW*?NxkAaoDg2N? zYQt3Y!YWH%kS*i|smh;Ft*$wDAA$bS>s&+Zn11{=G#>!?N}Chfb--ILV#OWsRwm#8KjlvC%$UiNmG$Hh{XJbm3|$vM?u*&-=B&Qg}VF8!6AFJ+T0 zWywj^U)em$3O@-QSYzl#?^;W)p?&?t(677i+!*>g=1K5k#?XttYwo2b@1V?;HC|rw zzV#O`FF9DgOT7H2l<&)qAaqc#C{cTm?W{#wzOg+DXA{I7E;RPzQ=|3$xSVTlz{WvL zp>HQSsJF2WxJGeaLEgMQ*!LQshc&EGRRfh&;k$F!X_2!cOLe>Zk|JG~5P4wk*K}QC zq$X#vV`@BSL+7kFc)i}>^~LbC&g;5=LEFZ&8!v*Nfu*bx-Uh}_=S0P4=YDP{I=Kl? zuRJ-|Wj4f9r>AfIZf}uOQ|Vjw6lT2^y?@QNvXr(DS!^q9{n}Qz{|mTIVp}gx6#6*@z{#>!2FZ zy?d<@?D^!5QusChqn$nSwh}%x{S?=RC?ifGABHg32g}{ZMHYtvhy4C9hqc@ANs+okY2QzK2{SKF*W_*6HC?T*4LI|{_>lb`a)J7eC z;B@9pPr3#Je9=xET`}{KD`$uFy->!7UCADyM3y>~n$IY|j`>{2x7oBmJ0)WD7T{}4 zSsQ0hsg84yze&zS^4R~$*k%q?%G%+s@#plv;Pus)c+%@qR|IYBA2x*C;wj4Wb<9=dp@r#*)J>vpf=4M!xuhnJ7|*B#C8bpS15-*DpYuH> zUWrnUFHBeOSLcR!p&{zIFY(4@h9s7%?1xiI@94Wuh&!XNIz{9!57;6~pN>@uPLtc^ zE&AU%P}On^?#$9@XbNzwe?Xo4U?sAEF}|6yE^Zy=wxseM9BpH4=PQ#4p2ES?WN`ht zZE)ikw$S82Vs!>fxFDCcglbol*YX_f!Mu=^yQli7`YFt=?I%0Ab&rWD7p-VZ&SPo21 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

oXB$l{+rRO@vp#E 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

KTF$WATc`;w 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ö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 N{^JXv!TaB-|39G~X%7GZ diff --git a/platforms/android/tools/bytecode-compiler/bin/quickjs/darwin-x64/nsbc-quickjs b/platforms/android/tools/bytecode-compiler/bin/quickjs/darwin-x64/nsbc-quickjs deleted file mode 100644 index c31009163709a3a1d36e3ee7164f67c3f4c9a29e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1125232 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

J;@WY`o(c8)~CTFOlt*X)ycdr`XXS+VhNksG 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≀glYr4PVn9 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Ú?=i%8KZwSkfB6Jzb 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�YJnQs!>t@x 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�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 YYLSq;aeD>-#MgE4Fj&qCqTt{E0dH}OX#fBK diff --git a/platforms/android/tools/bytecode-compiler/bin/quickjs/linux-arm64/nsbc-quickjs b/platforms/android/tools/bytecode-compiler/bin/quickjs/linux-arm64/nsbc-quickjs deleted file mode 100644 index ec89bd4f7768e1898f5382b9584007c2edbace16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4849728 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Π#WLBcehmSN>m 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

0hx%J-3bi^(^D5)Ho!gH$MIGamX%N z3!Iawb@;g5@gzFQt-x*za8tkP6J3Zh3eXffFgA#L9(Ov%tJs;~r<@bx&m=A;8)xu1 z=@K@7Q@mEXFZu#HTxmQs3w$PSqW1sBM|k)Oc$jc?(S#fOdmTA~o_W97uY-=986Rpe z^e1~^EH+S$$+kl<-$85`M~)Y708iAe;H^vpy?N>Yr>^*@ts`LdmnOL@BNr>!A0=A z;8J|sHD>>iiwkMrw&&ND&$1U@*1sgr;zX&%iQB*lPX?!LA>vTE zA5T_>U7QHJII$alND3!PhvI|}z2?v|(VOybW`Yyi?{fh>S^K!sdwx1)?>1Wh@83Sh zJ|^nO9ax$lOTH(3a{8|trdSnwk67E0z|iK}n>gM56^ZksqhD2S^lTHi?%+B3woe7O z6cZLsNx$&)(lEF&9$aEAKivX;l`yw|IL@=TU=zHFO`v$`R{yvjXrFZ+&pOM`ApJ!; zcX50Zyx&{rW%%3<;L~M)^>0MOEoR+q+c&VrzvP_s5zTv)}`t@9E)w4Rg_dz1Iug>iVCdDdqBI z&*x!xJ`LdQYxEVS-^1BbZRlfyt!#VQR@MB!1{(V*d7%m7vv(DaTj{&IJ{7}tuSZpRQ9ZEme zAMcRQ%f3yQZk`-}1iG2%M0Z~R{z5mRmz|8;lbb2o4UJ^V?l$93%!sRymm&XFHl4lZ z<^p)Q*!8V}rd`az_=?Q>7sp3HJ0WN%Nj=?mU*B)boj}iS#vojWMi+F~$v2+H<>R&X z$j>K`Gt#?d7uOLp?ZPgeI57B|FmM7ku_Mv`^}Lh3t2%~lJOr12&)9Umo$E)!r`5I}xkI|lJ94Ni3Wor8l9l*6B1BcI9J^ErZCPh_m|K`E9a*(UzOb06F{7Cn#llHio$ zM*E2e*RxK_hdKz3C?9em&%FkWsmD~rIRl0_)d$A*gt1XAZ&Ds)Iu|@neQ=LA$uFHG z{vjCdg3q}+<>k^TwdR*_&GH{~8}hp^W6k8xPS9_%-ig(_IzYtb_YsfZ6C(katPXI} zP<~$lzlTR)qgwyCe8KW5d;W3ZD*0RJNTqQvPhPso+L`3#;P>nU2K)SFukHh$Rh$*9 zI1)UTvj@e4eNl9&&3fLCO(0&}%zF-c^S+7X0E~1l@AH?u8YIS12A@r`F5a5lw@2}n z;&_|!S36PVUu&*@;F>vS;cMgw{I8ZaB8K;s_W1aHC-|!MnM*vQgZ0`FB;V)Qv4%g* zyth8ZpYDJ^{ft=09q^|~E^nFvf2wl%)0_UWEAi>~Zx}(2K64!lkE>`Q-UMDx%;2Y) zIWYnFqj;V89AhwiZqQ%Sb2|1>;@A@SWa&!D5OO3^{5bP{y*rUM^uBUm#3%OwyDJMz zRwkKC*|B9S7qW*yd$7G2$L%Q^xA@k+bfD?Kxb~)h+{zBd-;m=xqqSO9NbW_89lw9Y z;q|TMYW-eB4rE&eegK1p9fOj;``Fx8W zkK=nke7?tgJ8|XiXkI_(TXZaX>zy;u6ri4HopVeSyjYhchoUY#FB>sfp0bQ>|Z;1fU zBr$ntWnSm^t799lBj0;vwZVnN2?v3L2%_3mu0JHSKs^U}mR&Y>04&eB}iW>Z+oaG}Q_xwGBzjc49I*P<`|mgm&pUiQxH=lAEq!OZ^u#dYa`(&v8$oUA-cxK|qA;I-h}ON`&iSFA8ErufEz8srY~R`D?9i+FJk$*=Xup(HU~V7Ym3 z8V8NPd?9&+@M>_-BnEEF6>{-NV5%GH@`+Szn5EWW!51n6x+;eF9hr2i2c& zQ0qv(!vlN4eb2s1xOkXw@o+A(so7sV)=C z&(!Er+x_ET4RCHo5*{#?Z`EzcZZn76ymE3s!{p+*Z56Brwuj4y@IiB#`ktpRcsieS z{CaeqO7{GfJ7arx^n3eAJqg?}~P8KK)^M(J0s6>S`ia3weImjl@8aSzS%lF|Y4xmoEv%g8eA=(+gh8 zN4%Pxnh z=JF)@DPQNmaQVrLZ2sioWRmA&l6__6l51bNI#5U15$vmp*y`}E2)1%PJT)Ku24_D} zN5C)ealY*82oYBnL|j=w?I_p2u{vWZ^OT%6_HvyQ?F0X16TqJ~lc!_+wkxZV@x-w= zApgB<9W~Z3rRN%TpR)+4>EAy{T_o-MN)X49&sVvjZK6?PoV~9 z$E#FJ{JZeC2xrcS9{%*$omXbsZX2=1$<3K!a$Dhl>lv%sebr@#TuC>U*nfs&%fs4wkkSzRfKIq%;8-F)8PNu(mHP71p5ZY5Kf4B0AW}=(n z?>>SLM|l+vF!bj0O>zvBSE2cQn~(a`UKVff?{@HDhiqlzv$1okp+4*Bzd{D~4^Goq zhs$^3&LiyN{@0N8nf+WrKYyX0T4Yxja^Fv$1m^&JcLsS9sw?jkuaRvVs_0RD*9q7K z6@28AnE}uJ7I{Yjcxw@S_1o~z+H;)N2WijtA^IwgSJB6>xK>0w&nNqGHaU;9>8Kr^ zzngojxF#HB@5rW~1J^$pS#9yt?$go!L+mK>cZ7$^-`Njev3qiIE9>#Sya?a+_WXqM ztIug*9i$IvUN-+Dkjnp94K5{-vElsusoRg%zKuXEf$ukr>~+{T5Xs}L&H`#FGAG57 z9B{mX_LG8z<6F{zd}=Qvm+3st1-PZ|Ip46ir#|C%PJKbTUZtKXTGB{{ppbM#K+(M#+>!R8u`yy#y6+}8UGm-w*X zIvJOZAqC7{&6?Yt*k0f$Tua$d;AEx^0;w3wmyo+HRe(J9vGaeu?oMXCuYY{q$hf^Lh%{tWL}MxhdC#; zpKDd^(|ba!Uof!fkwSRM7?Xs@;1?PAvS;@+6ZpQy_X5t8~b7if7OdE0vc%e>?jVIL}kh{hsHvUTw3G)q#Nc|3=IIZGET}rk-3L zx-fZ`SE&w+-3xjR_`dxNySIol{ERQNyD2BO9(m@N93EQ_>ifj6gX|Lu!c&!h?$wu4 zUWeqE#=f1JT#DB!o|nR@HP(hkAC8>}UL}gaD|C%|bmiB{Q`+0^L=_J!=A->*^53YI zjdW-EquCo0tzY7cU5PFwdnOE?tp}&pur85$)ubwl=jMD7e^+Vz_wU~RfX1=BXW5of z?9C+)=o#fB%T|7*<<8vO}*WexKkwIq1Zo&y7aLoiS9#wc&s5Xp}$qLi{qerjzPUDL$e3 zsNMbKx;Oiad*De6_LQV)f9Z13esPcN7UYf@pJ+LIpW=PIC%IHRF!)S%9>QykeFJv1 z;PMN`uQt`E+O6fD>LF>}r!bd=M~Jy94(HX(QvS;iX-92HXYz3PGJbn=5e~|4sQ=y? z-OW2*8&A9UG_K`be~#;!K+;J-sZ z!rM%o6;Ay8EsM7;=%JdwuKn+&>ABy;yB01MpGC88a^IWplh}6uWBOBW4|`#t>%?Ci7V5uKya*bTpPzi)R>Om!_jdMMttYnb0M8Vz0@qA^ ztk%Su(|NA)=}Hb(wB$!6|9;U*j<=h~CtXo_SnPaQP{%x#^HirizEL*kNoz-a#j!2u zize@fJ)2LN+G$qbO!2lF@wUSF`{&zOx#&rJD~aFXh&m>IwIj`;gL@tL2$J}&CCA0r zH3#i8^<=noBlXz}Z;*Z@{Qm}iKjKW#B03YiPWgQPf2G|$S!?iC&wM-easjan;u?89ALi8ge@6nIow<+KBeT>7)S&oBWiiN4aLE`jD zc(L_|d$BO(kE1v5OUDP^WZt4{k4I$3!sdbx(v`%g)ekii`sJevyE%DDa`YDIzu^hW z1sWS~ydL?Sx@L9Y|Ki#`?zLt7_Qw1ju4&!0UVpnl*X?iVwg1h3`Fj^LzO>A?K400^ zp08K_udAi|Vpq#X82o_~8v#yg%~jJu`3)(&3Tmz7xt2A9AN`f=%~>#@#;_Z^OnWm`!X9SJCMx6J? zUEpmywCaaee0-SiyhX$hXQJytKclZ1ABrt5YIuB-lYNgYnAdo;@~OQVH1Ixr zxAIHvkD=@HjB6}VN(+CMjn16mmF2(UC8xc>}4*J zFT2nMI*aI9sRWq@lKDt%=X2 zeFHse( z|1JI!aDCs?*bPrPt;xpHQ~1AGxUKvZY%a{&QL(`r9K+uvC$r_)>lL*56n+Widl9CPDt184!i3Xc5^~@>;3f^?|TxlbD%Tg{L)KTot9sp;|w=( zPsu#-3fZUOS)u9WIpe?CK%eP6U25ZTCc#a-BV7nvtiQK$R4lpD!d84`|9YoYZ6r98 zr+dD9xYALSGq1f_+V@;!cu(;XcnNE%SdrTD{FxE-&F(p}5oGInd%lX|mlBUU$Qo@$ z&x*hw7B8a?N^-?K?U7*ZVms6}`QWxMTRTDeu4KA=58uT1kbFMWy06`74IziSUQ#Z( z#$}%!PQ8N&d#ATTBlobz5xa(?Bgz$LJjx5QbCI7%ddax>HOQ?1`!O~=4ILKsO{)jK zdN*nPhNj-&HuJ80jp@FI@m?3_tv2aOx;LGhBoVt&_9|xc@ z>9yxVw~>jVTODWInURUkt&j5Gr4N%we?9-lgfEO~e42aay^z)>kRMyjGZiB_d#dY< zsn$1y{~NtW`i|s~VDY8Lfkj@v$te^5B+;>}s0%cytooeDJMeIiro&G3yX-^l0Oz1% zL)RTHT@SuBDkl0cv;nS+(%9jDUSIDLD>rgD18>C_^p1Fg+Uo#+li-N>f%g9D{mxmT z{{P|KX4=#9=sF{mb?_Pkc;t=kc}dxxa3o8#1<+xz>drOu0F$`Nm$}SeI~f zbArC;guCvZ*I1K|cN|*wyVQOHtAF@o3t1ES{}#%Rg)WGm+kbw6{8Q=LV=cendtiypneHwwSF>Y|OKNTi*q z@?-c@`)3~gX<1IFRW)VA<0rt6DiXfv3G9;wcxSZq$(Q+U_Bu@r_5Y2wwdXA%n#NYH1yKZgQm~i+{H6jswIvwz^S;(Vv?6#6N9W2O*Vp6=%ox`&#w1;3 z5!ZaIvtTg;zkx4*^-n9<|JT+#_-rPQ41bRrIG?aK!kvo_1E1&ULv72}wf$T9vYi|X z8y5B|xoE}j`ccTf9>i{nQz zU)lenJ3W8mhtvRKPiXQkY!-CU85a-HMGsqxrWV}I%+K-SZQd9j%NoN(cMOX6%2)mF z&xej7moYfXn`S)6fg{Ql(>(uGJ2X-2l@aZPTjnDdW(P9k!!p&J-=NIn? zoe}*xHN}&+9bcgPL2`iI`x_VOe%K!+Z}Reod1ept3jgf9t;A(i`yeixg&33eux#}g zElB`Bz1u*aU!YI;7J623{PTX}dt@!BH^^FSC8jKYmiB+(vs!0-#N_B^`rSGhhdt9} zJaJH+(~~~a#j7Lb)v#)V52~Mv7Ju|n#`jIeTC!y-bq(3urad6QO#AXCGma#2cs*Z{ z@JAQ%te&|>^XK~+v;Q-r<|DR(YLRpS(~6N-FqbjHy#oBH^QIiI{7*UF@{ve~tB2mN zg|CVKg~9oS)Js9T#zwTU0bB1@I-qIC$o+*b&PcupcU3!eA@V;g8KZrw_~hlkIt6$; zS^legrEj2D?7P;B6RB>N_7skZ{~aA6MDA>d=8C+VHgnoaA9`|f#wE8ZZa9Is;aSwN zn@NnaS^hEPP#C>Ubp%gfe%;uqj*~kwyg}z$iiFe6JgG)mH!P-oAk_psh_)zH5A^c7KwOO4f>ru zkH+p1)t*G@0m7TDKTGor=@eRb$(2p-n|+ZJg03qWEWf1aL2*D&9=D_8 zzn0Zj68%K?|43Vkor$-iM^-kweu}~4(LZ>md^|Z*d~1#6o6 z$5VAn=)(kZQu=~JU7vFPle~R^Y_f(Uk=hY#t zG2@ebA6hRa0DL4nsOgzeH|7}D+TyeB6~%umzWRSzKL*;a6dvgPI@ZX8Lp^&n-vxg( zM#%`9>mm5r8Zr^-1CwU-S6s2QFFS_yHGJXuU2ge#2EM6nM zP_%V=2JY#9F?mtq39o`zZE$qUG$#5FYFK81e!ik(JBv zl_B{DMlM$qw-{P$+mp{Jy@U6L_+h~j)qfEl_p@Kr(>u<2dcef0r1vRaH-a_RJOvNI zVVFzb-uZxDJt5J1h&F}0@Ra)%13C#C*26Ki=bhmfBqrqX0qMJxy#1JJV%fZ@DtJQzJ=(^^RddDY_UqK&3MVHTeSaXO zKW6HVtM?B+<4nefi+#aPwj1w;hAPNg@I_w!FgPi($~l-fHNtp&vqRH;zGJ8Q&a<&$ z|Kdoi#-V=HNA*8|8M51%JZiq`)jF(6xyHoWN^fXG&M}vD4^9X~Uk9e<_oIQR;*6QJ zzNAh3&e{yRuK8ro<;%>)yuT^l@ zDL?D2qwTpfVa}u#AJ17fuAq}TS07z9(%ru$p2#>R`l7Q}kvGBK?4;^|QKKrs`|=+r zPr~00?ciVGW6!NObJ?W^2 zmR$sXUkv_T5*uuH&y&Fie_-j+u^EPU6vj25NeNrSc2c7JxgY0gpEGtQJlZ%`B5&S!~6K3D+MEX$Gigx{7~Se^h~ucd8HZ!W2y6}SaW^i>>kO)u(Rlq9Pmsv zh~*>S2A|lDuf?nVw}ZA8phJbJ@2EKMgA)|jcX}f9t1x@5wfUCY&O7j<{v~ta!`26> zwG3zZG1n3cIvY>Q{T=51-`)GN=Q8sVr0d9+Z);AdW|%+TV9q8~4RI&lbVarC??1#@Lq{V&6NS`N z#AXP?=VenjfP)SAiK=Ep$LQy~0)>^q7^}^lZ_B)r*Y(Rk5k6 zqu|r{vB4$gD}Sf0mAm&{TU$voM!Kll72dn;UM}CSXl(6?j0akm-wI#hyj<32DW6*G zKjKOK6}QajpVA$QwfLOLTaU(u#Fww}x8X;RF#dAJU(4@R;8DmObBMN&;(g6Y&(53P{TL5>;U6Gz%JR_=+*4i%3q9FnKu#rsXZMx#F}-E|w|0>4a+BE=y; zX>6|p`}LlDa%sE;`JuHv-R!flb@$~Pmk#r>JWsbz>7&XEF?PcD^J7_LRTQfh}h3xGh-q3}tt8)GJACrslW5o*$pLNF+cE|L3hQHs%m&=7O8t+_q@D|1> z|ABnj53O;cEAlih@s{+ucQb~}J+jp<9&|G%>9?7<&_)bguoO&{&k+X4@oCFH@jw!~ z${vH_kQNpeZ??^G`ip^uVjarcvau5BHfdTDZHx163y+RU&Z2tW60zM z!gKA_J`$eq3FI^O5#VQOd<1<7?h{1U*il97KUQ06_k8h7^1N>0+m1EY(0$Khdp=s` z__uTIiPUoeo+IYWHTf{@a~8J$6KvR@I|K zZ#i;(E#%fe$Z-^3SWSI!k1tg7TYN!lp2;YqG(0xZ{`XhQmP^;MPoRsuL;LcH z?|cBAMs8;_tah{-&I?F zt`Ch*q|dtbd<(tE8?QDSwZkf(fhNQ7XyvXr>IdCkyic~V@y}BSPPNE9|M%(<7fMc5 zw&Mqsjdu1hn};j=)r*z3pf}Ohyg~7B_@aaV$0^F4zhOe?R`RKCynTN2SYNJc%a1#2 z!vyEnijC*3Y=Mv5Gn2gEkM|!k3a@ z?^}>s<>ZL31xJ>XHzxn1o|8PxJcnTe=Q}9xy^Zr7$Q57m1om>G1aBPUlyA}I8WqPC z8}$K;&pl@K$sYK28#=GnL3)?o;Be=Y@M~k zKeBUVBXprxG(+DG@-s5t#zd}#kLmfx;F;Kx>sH`nsfgr6%XfpLyeobXK^K(#5nt0d z^t>4dcH-5HLF*^Kf!0s!c(^ru8d!&azGZrly%s^{5dL}Lbn$7mRpI!f&8^f4<(l** z@#<61*AiBLxZLxr+{>OVt(galzt;^k-2nb&!drRi%E1s^OdST-t{2}E+)e-{o_~I! zf;*%i;n*k|10(X?Aqg<^ZGXXc;?t(?eW^b zL-Nl8?dAC~{mOqS|LDi`S8zh(R=u^gj9GkA^A@jsnpbJ< zmvb%omFs?;Ja^}ZUcXR-E%_Gh1FI)|rSTE|LM>cD8xkP2;+oFdwfbayS|9l;j(uvN>8D)N+8Dd6F|g@z>_}T1-kw#d z^9Qv@F2_fVzRK>o+EOdf`@>X=Fh_5Uaa}49hu(c>3{i$=TwS9f))sm4_sGoKZO)`%~w0=zL1mEzy~kt8`8!XPjz&jo4mO@|Y)@33(uVkT~72lcW&MVwEIC&28!)rSPU)7j0pFPce)=_P3@FH_; z+eOyD{gv=?C#o3Jn9ojM zseE_+uJ@1WiGT-n~FJ} zCfd7(&&kwUV_(6PW@OSX_*1sddI{GOh7U>~DvE0yO^e{4jHQiOv*pK%Q;8od=a<^5 zCZ7D_qB>!j~GR`#dQz-Hamr|xCu=UE zZuHN5U%{EGy{Y%c6L-dzsO(rdE43FTTMns~UB}AVN4!7R+`sUM_t(Oo4m!XMUh4VD zYVpksvOa=O5?p9uKTqdno=>tQe(M70(6z6EF1`g_8|rjq>Uv;$GI+OV{v7E15@>iX z>v?G`#S_q9Gvl$Y10hC;za0Ub=f}yq#++x%N?@)a+5wy+3koo%`JL{5CmE;E;4;;g9yPCBY}*PZFHc zo;BO1&9V9=?`Xa;{9J!k+ZpqPt_qUCaRb-Yp4w77g01{k$l`U9#iy^uXT^Wvv1q`< z{{z!A`Q0B)zR+^&$SG!U=lJT_4?dfYKX>Ds;@pdPx%dp{d;FDtMAx1V+>0HE7u*9c zaA7-Iur;y{o+BRMJ?F)*mTRA>sr{W3SANn8^0a4?H?|u7DW8>M3lo`}R}cKcK)QaA zXto7iD$G9CMeI+PPrrk{jh^K8Cw}I|q`Kh)vbDS57s7w>!5;QrM5t-5aVsvD&BGKI zw(DW}=Ebas=ApT(ZSgd(eZ%93t>}M6OHTBSCkImcPv+UA^6BV&(XIJbevsb)E=$IU zzpJLX&GnX_O***vf#%eOuVwioLv>MycNd}?C4hs`*%)s&4c`aNSUp0%GrPZE{7N##4x!`2&A0lsM!5Z*B2R-$0`-hVI z2PaG4QoT@(g}F(8oOc}a^2YK%;HnpAYT=9x(OHX;UDAaLJ)7j2cHS$c zeeHG8v)5AW<$-P1D(p4A#jPAK**{1?vs2)VLCc?Q6^&A`G(?8WBvTU(X$KKWk{ z?%vB9cs^O-{1$TAg&(p*g)e)tU#%TdoU%25MWvqA8jl19UVK%xaNh+Vg{Q(5~+T^JY~>Ff^ee|)^g)=Cr))<<*K7&Ld`qVx~#hqZK< zQz@L4T`0U&eHg_Dw?1rZ_~JXoCiUqYQiCJ-){RcBHP*O=!&++(ZytSE=YqQP$yf{R zp=dohAtF3QfxZV46lHL0QK5t&Nn7ti*&vo+;Jb!5fUV={cX$Lxx zofyMMCwaVoheJ+}Gg|(+{X2ZA`hM-uKpnA!c4(j;y?rgudwSP4^k>awCa`KeHZt$m z@I&=OPAf3utO40ghoQmKjhw7LqMUr4vB@7M|LJmIU}{>QG&Gi6%Q&*@%4p95a5M5O zB!4yWTI^*LuWbQeSAz$c`IinkdCA_vXa4Fq??1TVGtmR&aUWQt{kpbx&Ng%g%}xA4 zHs`)K{IUHz0H0*EmI^qF41LxSVx%T0ZK0n`^n};ivH6&@!7>sF+M*4i`+iVbCT=B)_CPxk`8P1f*L1!^{3EXO&zxUSULW&7e<6`Q;y&$ z@V&QA^d^6Fsba_`-}2L&iRWQEYyXkXs|?dVdkN_@Tl%k%&NiP&z}{VezKf&GPLMBMhQXNuFS7+q{?4I44kf1zeN->xIVbIZo{L3*=VbR;~Rj4zwr_D?B)qIZpzW0`ctzPi>cSu@cNd+S<% z!ntY9l7G<1L2NY9Ly&eodiXvtMem#&e&g;7Kzv?gsEtJSP*j2Z62NDp|J> zzT)6h`FjR_{t8-Rf6nC1+z%N1wEKlU{CxZkVENJDWa+w|zEqEGA{f5MHNh1f@BRws z_-HG8JRSPiJl^154)rs1Ka+M(+Xn429xr!;zS);)X?Gtwr$@Ub&~6x<;p~)C>hU8l z-VzymD{ZFWkNi2@cyDLCN$e*1pIZ!X!B=w(x(4*1x(wLjwtfb%&9udRz)rB$cy(T& z=A@d)I(OCElPGvcV#pwOO(n;(*EB81ZNJ@|-7Wqin!oY6^!`Sz^PP;x+rKC}`OMUT zCQsj$9_#76R-WQ>fmh4#(p4CUN$0H_9ho=jr^-)JJj3!r2bw@;d^*Ipr}HHeHU}k< zu>ORj@O?-|csUE*?bLvRCO?CJ+33IcT|Hes+m4c5+W=ex&~D~=O3;j{!w_cQt85MB zyh_jBPTSHSPoVujuS(m9p<9kCP|jNzx?0G1J5sWrJW2Xjez`Y>gqz!k|8~l&T0^t0 z!{YY=Th+?)=9z6@N}q6J=ck9M?9;*aQ3Zatn%{;0Eu^RRQo z>o|jo^)k8@d{TU+3wV6+OK^`G`^6_KKIz1tWv|2(=AF;|+xd97_e0K(Qhr$`{#BUV zeC6aTH=n(g#5aY1!oAG>yLAQC_>_jn%CISn?D24%c-DrmKfOlo_7QT`45Fx zFqnp^#91t*V?`J6PxQGI`ia&^xa9^mrf$Q9EL9z`+iCq=0(6<`na_X zJbACRQk!#td4%(Il`moQlhV(vL7pl0PX2_|C$(Rgc5J<|^mE?$USfP5#08aeg0TeN z`zj6IqbtZBm(HQFcCb(NpYvJklkjyfBNvpq8QyqxzQ;D6+fF|kv&L@uak0gflk#Kl zG&!xiF2iOJzML^Tw(By^rf#B6-%)l?v9af~{LuHY*D*<7<(|Fo(p=D`x!u&!S;*dY z>>6(`P&2ymJ;Z5}uFaZseQ@uhOSBmJRXlHed{>Rr ze=_*At0vU1JqHH^WtGj{xVw?s&uQc$K%L{&g?Af8{M{ z4$?U^2k9M0nuF?yd3%NIejb}wPzP?zXFcU3k$$_-?JMk#F^msJ`rullAIRTW1Yg!3 z4f&Ad_tHLS?T=2w3tm4@zPnras6FL^X1Dhwu?7n}yT54XQ+cs>RywV3U&UHKHH+V& zR`EZLY!N-W(^-Et>J4tBCK~DHN zyE{0pZ<=!!`QWV0qwHnbjjd2&&g%9pnMmTynSW7%r&nV{V-M>EQ-v6t; zFFBVar`+Qe8sBz4I~c3R?fDBl-d2P>?jT0rG0kahfyXI-TF;12&Y-Q#{PyGlo<)yL z=H>0iRIs;IyR94(AL}t(|1% z;pihD+DOHDPqlb<%c=OuKH`1$7<8X&;--_6#D1keDTn7(@M{IM(43gm6M~;d4y!X+ z{I+(9#c_?{OFw07?+#9VfO+`ILGfrTlYZs`v%oF2w;Yka=-=FT=?fo=>nnlxqH8V# zPM34d>svKKgvWx-L!6T!T1i4*!jp@@JIBQZ$HfK3;xgCxE3~Ke6+UFIuk6FjHTt59 z56Qflu@#JA2L65DH0o_r!&h^3fSb%Gn$npUyQ8r{{1_yfiZp<%eeu zG*vS`|G7@IdS-(j0XU;Sjimhuwi-6YM%}MS5u3AM zJ1{v?Uk%{B*Ji5DBK@g-^{GARi5mvUZE!08N;~g<8owJck^d76GvW7`3%^@|UnnmN ze$4f7@N3F~A8y*P}aV}ju z!Qh;YqmcKL6JIUdBYq;>>mvW61Ke8y3{L@m?Cl$Ze=Wf8+7rRQI%0X?q2M7ryZ{|z zC${;%xBRi0S+GptKhSeu0G2J_VG2&f8iv5h=>O?hgI9O6*3?MA=j7tv9Bdu=A%gTN zd6L^shihxDWD)ZaE>t*q(M!Pt?;XhqjsG}sA+wKX=|lXAJ;6t$C$AQKCOs{7 z>FHSCf;hOMI@VNR@k_|bVdf;_;!|RmuZF!x|*;F2y<#o!(Brg*kKsjkIu>VH!E#+o* z1xBLJRJZzk@IZVs;(`6}g+B4Y8qOjor!6ted4_tr{lfWrWU%-d@hl??uyv_XBAe=% z*r8u(&kp{4;y1F5j7>?5N9%m>yUuXUdhnZ%n%)FuLHJz%5fF;3Dz2c@BFG zTgYv8&I`4cIZi>y?@Ueciez52W{uA5y)4GF1*6bOv-LOCUQ%0jZ`Qc@FaFckUeY@$ ze7mBv`d;B4S!yjo^dG+4Rod92s)d_}! zdz{?~-AsZWT95(KyG0K=&(75F0namO;v8r}`F@^{I03&F9rXVrH@1DEFWUFkFtd(V zGycx+<6|Dleq(503N#>pk9;y)!Iz!r8>;J)WKGOELX(;6_$hZCmvBEKUPmm?TgMjS zVwvlxoMsQk7XxG2DB!E{7a?cvH@Q$*wt1Vu>nz*6#^(B0U^iA^KUH8iRymwaOWuN| z8|y#&+vf+GBm>ls#~Y;^iw=%tciQ(AXDE)p!uy%;Dkng>9^wUx$7$`)X6?hALFdh@ zhKdJ`^t%eCT;Bn=08M-a`ipMWaOi;w0N;gi*sCByvWd? z+A?$qeB^uk;0FWP;NXXRu+Z4Y=tBFM4PA_le~-DosQHbv^zhh-n%i24hbT^+36m8( zr&zS`Z`*%}{|Ah&i+y!}+P=z*9cuTHUzqRm|KTQQNV=`jYo=Me?v`EyUf;kzu@=s& z=&iGLGITzb_Lzs@M>Z#*$mDn2vCiVArw2yREeyW`pM}4IZCV%3iS@okt?{dz{>Tr~ zd|hjk@ACB)-nTUaY?$mBrQXe)jU{{dM%OZ(S3=^?nPsG4p?fS)+O2lHr$u zTu+}cd&n%mJeoZq0sN^2)F%j38l53;L2O&OKh{C)e$r8qdE2q!_sl=W;2Zt`t54iu z@l5+Q-elhq^#z_eu(U9CkhT2is$xs}X7! zH~feEbG9b$q$1_JT08Woy+iRbi9hjne{n&f|B6)o3K-CW4(x0fZli5SS4s?x- zZC~S$_EOJPFtKuEM64Yd(lPSF*qR5dU$YxIBAgLF47+|lF9!5FGD-9(ounT7B&;)6 z3`_%t7S@tug8e%s>@O%-I_?|OKDz3&vEI7N@i)znVZYpOZ2cRC+OXBE)1hUT;>*2^ zIMO_5GS~P~vT5?(ESl^-CO0-0ob5j5g4q9nm#T-5Os<%xnh1;i$}5CE*-zua2L8JF z1U?gi&&*W=P0#a=p7-h~EFLjq%aPux`+i0{?#-YLAdXU~65 zm0p#iYhaKmGgd2RS*Y_e$5g(IuV84O)n_wh)A-D=wg6np0Q7}7Z z)d1&PLnrWYwPRyC;!h>#iO+44fg>Ci8M`+LNm1^4f8Pq>ng-=O0xY(^JvvU$y1?q}ixvb{h#e>;|n zPZmPQd6j!U1HF@ne^S7imdqJnAU!h3d$R)h(~|5#3d7?&zdtJ`8QuZzYv0lZmmr6< zrxPA6oUXvXsPENgf6egd=h%~}e$}6chhL^&%{h!u((6aD{vA0^!Ju+P&~Lr=j-oy7 z`^lyQogI@2lP7>jg6Awh9UuP%|FioIaX%D_%v<{Zk@oKKQCD~V|CyN(kc&bR2m~}U z1O=mLwOrN8BtcP;S}v_t-7+C~P2Co;iek-#P;aTL0V^$bn+a&^%*xhUtY+Po0j$NM zy8^AYwp%6%SA$n>iCpIQe0|R6lT1c%_xt$$kw<1e^ZA_5Iq&nn-wv>^@%LHK0zNC} z>_+@Ms(p%(H`Mw#eeT5@;1OEq0Id%_brbis(i6j3yJ9Hpc`m<&slkvg(zWK`DGftU zu;vi=h<}Ptil4TfD_%b+-opR?Kl(rpd|diKH9bZm13s@01he#k+JEoKch!^P|Dq4v z-*94mAnMqawjN6`P(GBa4~&=G`XYUx30=a<(EoRR;C%L1`hfK7Y<=LmCtY0t`bwb- zNWV_ynhDl-(d`$$l>WS;Ne(2QBVFC$J*?rovf16ayZ#WXXJ+X$>v_iY)%DN?a=;tu zHuBYJ9Q7`eJ}|PEmF0qoWV`Zo|6lZjPs!uZc+c~k{%Z{B1EMvD_QHJ|?rkKtD!$7) z^!ryb)}nkw>5J0uD!@DG4vzk?F`(Mf6ZT(IU#3oMG1-AFw{Qk5vSvOwr(R7>vbUzW z`a*zQCUVt_($qPoxdR?XKa25Z1ocP6*GA-%D@b2lL(Hr8nozys)GZan zrI}L;I(D$XsaKx2&MXA4I)7TCoOsi2Sfkz@rPta9-YXrsF2Flj>soYa;n_Lhqj;Y6 ziR35V!KQAZt~@n6+$>ux6$qBL6w<{L|3}c6QbQlXC5(~Qd5OsA6z_N9aY5CooAwm% z^wBe%{IKdu>~)P*39kyVPM;xRHz)T?2lszFx%N^N;}_JAHkp^^~8r^utrHJ956z?V)?Ozn9nZ zE|%qoR6S|L@z+>C*~Q?t-k}_@mIuDSO>@|WJ+68M&RHsrV(Un+#K(ZYpYvk*|6|iJ z!BB7D^`rA*r+W4}bScIBJX<~}Th8s#aT~H`O3++T>F`GJE*q;qk39LdfGG{SI#TQ~blBZqska#oM`?$)B0KFF zXTmGt)ITxbJ9%F5Ncjh{VfVarSZAN@TGq3UuJxw+Hq7Apc|1>@Z?i#yYnC_j#}=;yyjE{&wPj;#GS~k?$2bTW(^{ zY;Ar&?0ogN?C;oJhpSF?>-KU=9e#SP<)>36*WoSSdk%OFHfs;wFu?I$9mIdvS$$f( z2;RF+J*CL^gWp55)((5*`JO&3YVck8?mt27i*u3wM!)eo&XRrH>II^)?Z9jgF%73T zG0%hFgNhfOerF~90y^P^@?}{cfasZYB7HFQU}Y z6K{VNxuH&-T)yKQ(pc;N>hv8bm5rmG+s&MFxr>~iR(j2B&l!AY(u}w;ci@9X8;rki z>u}TjR6p`Dupzda`#<%?>SmQ0UuikKb2mJ-%+wZ1ul>r!iYb|KuNyOQT3<6UjGuJ7 zF}Ih27k@aV&%{Z{tjfOOHIcr_ujmY8Gn_r>XV#d0(XRv@S*{xTYk-q{)utdD$KO2U z>7v5%A&EZV#;?Eu%jXLcH{!bxJetV26R(e=i-b$U_l9%(OgMPM4C%(Ryzwi+6URoo zwx^Beb7DQyp=Z_fe>DzHIW}4sFW`P?gPtkAb|1WPy`x)AM_w0}>K)>7dWZPFo)@e& zmd5G7jGEXiJ5xQkqYmB5<`|sVHq-Xpz7`+KgNJ%g^n7<`$}huM4*v?D+VD;6UcJv- z4{OU)zPxB!dkV3A&JWU`YkHU7)69EZnB-{;>HeAD<*Uy8u08p+18eK+_AwvDa`dh@ zkhR(CI@imC0Ppm^f6aQI##78k&tHkm$bP=3-7z@v7|+Y@5Pga+MN9k6Rt?3gU1yAV z_4%raR^P5MomTIWFIs%_5%ADh|GU!@K(MvBYeNzx;6@n#wR8^on9)O=JYU&mQx=W5 zGleWsjf2f0?0!zZ%(ndKtl$2N=*{}372Am*lT@2g$#W*FK0N}x!uLN{6AN8Cbrnfs z#5SMY#*dYstk|RM`d++mA@7n8T<^<=PSjsXvC}J9pO1b@p=9I?dO`*10o8{& zNWT{DXdLyke}g>2G_c=<%zc+}CGQ)xmy9tF9YVQD^N5kmh1YzbwYc_fIryvJ%8}Xn zP3Oca$3?z!)mBRqE*#31%t zwF(9sP_?>I&OVjD(B7k*_Q8oh-1EP^+um>Y>nJgJ)sRRR*I&9Ku%!wkph<&{<2# zQ{911y_xr^eo}h1a7M95^fd>!4PzkRn$`FC`o-aGG5Q?W$hYmxTm6F3#nFXY$vvvf zGi%xJPw08JxwWuyWh=R{`mEd#^y2pC@sG7?ufPq}zvl7BnQGWyrXb8&-zU-?cLR@- zo#YJ+rZ)?I0O{IM<=>(s=xpaaGrT^dct2Xgo{ycig)_KOVr=l&STl$;!$;+ck|?9HV;g&NaB+Txi!aoIUmcONuW9w;8kMRd>PLj+?EsnjJVu4c=m6= zs!MJ%ugv@$Z=&P%5R#NjDWU)13d!f)N&rNn?pWR zJ<=P&S)G*-W!=v+Kh=TGA5!M{O(T7sKD@J}muv*)ipR)D{@D+E<{P4i%~9-2_jxjG z1NU_G2w)u5FIVBn7i_NBu}(I-kAm3 zBhg(|cAo^NuG1ubl?5Z&Tqo*Dv&g+qb5s70>LtB-EBDc>(Hc31Iz;yjh9R6YunJ$x zhTF@@OYtSv1^n$*?7_(XW$~rVX>>5$EE#szIL`GBn9d#jO!LirS8pQaQbLzof3F_n z;Fof=obyhghep{!%+skQa$v0580oj=#4>D7XeDu|dF8%_a8T#@Mz@Bj=N$aC8gOxn z#hFsm?C2ohlK)J)?VD@OjyhFVH*^7ZsH2!_dF(3q~ynb}9VhI^BJ%I`DCq5v@3 z704~U`F`R!rnn=A@AKTgt2sf_Ic1bRQxJU+m<>+Af1LhA8+b;8*1R2Evle`Mir!q3fsb^{IVZ11JyYl1S>9Rs&*ctZd4u1x<0R_ora4L0 ziI(pEXMg8icltYPR^?CDUTO}Z;Gl+L#gww4T6|`$&UT6M&T{r*Bs^;* zaRyA!$#a=!l6UVQ{<`ZL(|jF1bHy`v5o4jwzcb3(1zY72XfBoRTwdn;yIjAAKV6sI z6U_-b{d7-(4*a}N*LmL{KkriwRhc`75OXNwS_^eSwEdkdy<9OD(e5PPFFv6h{w2Iy zV~Bn>@E*-a{vlmk!GG~l?Z@FN`qBuexIYL!NRCJ!x$>*Fr`zXnK76Ld`N+VAd0%^U zRxvoQcj_X{nW?Y*~^v2;y+AOA7q_zKzPUkHDC zJX`n&fPan)|6Zk^u@}|AA3M~__=x%>X%C9n1NDs^nve`qjcH_w5C4PRhh49+4}I-E zq}+YD%jxA{{r=Jc9e8H#L)hJi4}f*%KGY${k{{W9h#&*t8P3@dO?>{}_CkBG6Bzwp z_rSu<#zGzkcJjpvf62w}l6QTcD|6(X?5#e%WUHxO!bcxD_3YM}O}$E$tErk~&N?So zA}7)3IbU9Y2BUp1%()JR97xEzryHfwSM#j3Q5WLm#&0SN;#33#NQU#f$P2AI`UM^kkQE zo@LjGCT<0uHt$S!v~1|^bDO$qPsvGFk0g(FVy=YY!>t#@~gX}*~J)ZI1su<5g-dxcY(^}w0$ z7L0U{-lOZ;YjNs$S?MdJbZaO;sZP*?q$j~a}X9+y023eq5s>gx1?$O|I{a zIbYeS8<8A#crkO8%(Q(03KRd1e-8dq8l+#vI$~djy_YN%FFo0ML-^@3=|}7JYPFOX zRRe$7!#KPLpGIM#*XijMLFHrw!kxvOJ2e2`9CZA#ehVcBH6&M9-J!XQYx&M(W4m77=%T-)$TiEr#mn|KNEM0dg#5dXLE45MRAqGp)$ zR<}-}C)JzC>C?fzCpkY)_*5JyXqWuEsVE%Z4qP7L_th5v2CZiPvcq*4J(vV|pJ$JD?HRt0OdOT`%&hTn&Z;55D813zQx=9+A9|DX3ikrT z^IRCJe@z>5?q=YZ+2c#SYYuT;JjM2~Q7=5n#Z%Dfe2Le9-;U9?m(3L72ub2H>TxMq zYJ&7)8c07a@TFz7X}HTDZ5D0I_oDt4@_&yW!8z~P8Y%n?2k`O9&yZ3-4Eo=C_q1#j zj@jpibANPz8GisDpL*$N-;Utdv#~A9JD&6pZsa#rKY2mWTyz>?1B&;~xiDZC?$ zjE(wl`I+dcal^QF>0VL)yr1=<_uZ~G(_qgXQJ?J*4nGo|ohcdyS5n31*dFYFkEl_X zk6*rX`Th1XhUzyW7I(Y!&>6g|rM}{%{)P|GA=2cYiw7%5RXua$6VjUBhjxXBDfN(- zPsrhqHV<+X^VwPs4)rzTlOw~E!_Z$67#Ev@_H!6B!nGLsWhK`lfr9!e_&l#dAAv6M z-E-zdu(07ha&RTD-eB%w*M}H(eTZY3k9rEJkC2Cl;GV55AKer8%D7j3u)N+w>L;VV zSK^HtLvdH+i>(XgS;-eK?o~_dF|&u3=I8X#Vt$!Dw0`;2aq15G#_Jd>2|rN0Mfykx z-|o?ovh7rJSA?!{6*8(Yp&>};c8?_nz1xST7;+eXmd*2s3H9K4ic9@p zd7jrl;G*r_JP*CGi@$Z@6||hm(|q9TvBeem-KK(Dm$Bx{B^C$D@T;0 zlF8?m0dvU@`LN}u@_J)PhN7?b;L8=*hu73&A04450l&-lr?}A`Y$M6=T~(&R;{$ur zzW7Jfd3%0G+4U*>;6ZX*bQX!uMN#hRJK&{cl;k}+L1I4psrrG;+HCR4gYc8O3|XZ2 zY2Vf*&umWt=NP>Y4CA859Rrs;8{uIFxwNZ9Hk>^VK>DvYzfH`|vk6o)IoGw#f-Y|g zB9~+%E9TZkm+-Dky7cjztyRRAgReunuWIK!JwP&5@085+=;zb>y5B3iHAX)H=R6r; zuef0ZdKk-|$T$7C3md^l{p-4Y(e~V5uLo=#zqH^i|D$+#6gg*QYPXIl*0M&^79^l%Tblz&|@p_q%?F&DQV`+``|8e&1}wenZ~y7n`R z&-&;+V)^WF_VIFfG4VA zw)RPK8~HP5gCn=)(?Or!Xz@eOj^&vka?0z^dk8xBdc7R>4{1M)tUjN8R{ob)(-=c8 z{Ka2b-@*8j*_H6KMr@S`{!wxy*jw9wLh~EL{);Zex0Meg-Q=XPG3;Z>+lc&-{-N#f z^Zm0n&a+~k$`O1Ay-vM7ivvU2b?%Ak4piHn85i2LHSOdFs;)08+BzaO;U)IGRWBdY(j@T!boy?Z)EQqx6JKY}QRwk7xmD!J zb}C+O0%kM1s?J$k;DbM;(bLn{;{QiqP_Dc=nqDTI@M`Eu&xlv5F2?#-ZGY+eOiq0p zvgr!)qWZ*ri;!rd+rV zp!ZdZSZ*==9{#A$oyDf8{dV9j{!j=`q}qrrqmPSbMX!gUTb%{<0eoWzvds4ImCb0^ z^0zIPX3y!O*=g~%2Q1B|H%xSBHiZq~ zX{{cA&>B7dAby~CX#MK%(f1K}RENVGI$Mw_qW>VefqD;}g}mw&DBApbtnqsBNx?e6 zJB3RcBmW)w1v)0I<=wJfbluyJ9QfY@mskpX7hXYBnu ztB@spzpf%!ul-g|$2-{GbIIuq!@pm9swTe9wY{TO#~Bnw$5C!Z<~#30KM5XBPmsRu z@s{;`{sFv9_HPY1R!t5=Epjb56yM+_rXjc}@=9{=_6bq^yV1R;P2f6bu2J`{GuZd` zR=rv0PVyR8zysUPr|;sv`?o2_q}4wHIG9rTUIdFH2Nb95#(n8BN%*Yp_27yvH)p4E zCs}LT`QgrIjlbV3X6SU;h`GkMc{_PCYqWR39=8}aHKbiQKpDzH80aP63I%>1SDThfU=9FuKt_3v(c z5Z-;~Vf62v>4~DN+uk8pAdBC=`Dagd*ymRA?l^w67WQDCDcUR?DQC^WaIn55uc$ti zXX@`QKEC3|7s2=VEyZ~)y7!$Wrr{|2Gl}~;@`gG%_0tNAQ_2&Mkw-|3HZEEC2 zULoLH3A}2l!L17z>uWp#EZ=nVfwN|zKnS&{-wQbV{g;92Rm-g5ufSR-VfiW)~Xukml==Rvr>;1wYO7# z2Yla4kJp|GUzM{|?8HMHdFs}aC^;N$F-f7QB`494|@&7tKEgXC&=js4DrGD2q($S>{9Nyg3v(fziVD>lup94HH@LX zb8%>pWOm&b=xEZB&MBIEz`Rn;Em zm(C?m&xZ{tziVb6Sd9a}p0$y@smqsk=S`*1(WKW#pm`5orQ{Wg9{cf|a8R&O-yiiI z);RxF2>+rVtauLZTDCG^>gNW0?dQS+kCgZth5-kj|3p4Y`9CygdL24)F$gXx9wT47 z<%!Cf7@QdVwv~(3U2<{i|AQ{u4W|mh3E3!oI$R}tg1UXlaOt$nrv;gr&3D$IU+jojxv$M?m2_vS9!Ryn1NC6qk6%XqBI)MRXFT0pFcM$f)k8m5d`Pk~*V!NO#j_tmPICT-2ctL8 zyH2<+u6yg6?aoj05PSs-&DZ;`Iy8Njo-MmUyj%16AHI9CQT`9nwdhl{Em~_jL%yjT z*~3p*d${}TLi+C8{;b!y{aKZ}%A6{_I_7J7=K6)slKy*Dyb>RqdX+f+S?RB`w!!vi zg-6V?{dH_Utj>G$>e0P(-_Cr?=1a>L>+qP6a>P{2CmA9CZGPhDpRsS?LoMjC^6l%s z)JWNO@A(>wb@4-cZ+_d!{k2`7h!Q=a^>2qNH0XW_tuY&{)w?)Z8-HU2W)S zf!?LcA5|Z)7XEws&Vl{C;~jtN6R+&BXE#fCJv34EY|M)|oyLij^qiBoh7x*OY7P^e zIc4||Hu@TVK1Anhn$je-c014m)i2XPADR6!cfs#H*{dGo(l;%B;lE+*h6kyO9YhaU z@}t_w3)H)Ge*CBc)lS=7yr*}g3$S+S7@DgAe$oScx#Uu==oN1xpZU<4+_T~`dZ6`6 zL`(2l^IqYSFF?OrYIdk&>+~b5if;79OUNts)BAQ8wnu1a$Hdk6s!M#PU@3KcH72L} zE$ZjWZk<1AirfD-1bm&bf~Hxqzpnd`3(kFRpU!dIS8z1vY;ue)D1-0B$nQv1Wbh&O zESn#UmA!#(BmVOS&t%7LXQ-CXfkSTM0=?VqlbL`%4zR`!e1tc-^Q&ULY1byq_NmJ@ zNuAUEo`~ynkGMW}oj-{!*3C0dz`Gvfo?I& zKm4t>4-NEKfnDsK-_+#P1YU)|wdXmJqD`;A(uvml8gLLUSbQZ;0dDW422TFy3#jRm zzOe)TzY}@zm#%x&S0a!&o8QG}?DIDE(e*s^8uFf(p3UpuD8BkZ5{4*Yg>cI7M`;_o1Tvg3t&iUFqJ0V(KKHLefxT=qGX-#q>J z3XNlJ+(1I(Y8-D|Zyad8YaH2q!vCrayjCq@*`oQ2Jp3QUI6lq8#s82)C%$U!>s0#K zHoEv9W-Psb5%+5i_y@)Ovoy*x^(KhFqd%Zrih1@GV+Mzj6U&T4= zrC;Wn#R23WI`Gb?eeqROiKRbHF0K39PWG@BJlMrvKds*wV;6fph~MY2&x*Ti-0(Bo zCTrYeTY7wuxrLv}pDY<;`I^6>^>ON=E5J|qco}(tt&fv0%so5wUUM52J6VeA>;$O^6sIN$h(Jn%DeSnmAsqj%DZn^dAG4wL&xJfLohF{ zyd&io)sp`y-*SMtAG{$S`CEYe9UQ-XvwY#*y$&N+eO}g;{i(a|U;b3_>e%$2awS{V z#cF%Xx+mXcjM3yQ^1O0L-e)d4t3zXjd8aYq=J&y)9C)~DxG%rJI6cgt0f+w%4huIM zsg<2E8eNVa=Ea#k%5N~u4jyORH$b)6x^IWi>2+>()L~9MW7q0{BU7z^!Pfom#ZEY| z|J3;Vzc?-a80UTpm-nJW?S-Z!ZJC3i|$Fq_T?L4!uw=e!7 zIzj5orrCkpxyU&1N&anLvBN*}Qrk@PFUalN&Dw7niNCEX&>)|h>K3W#*eY8jHAUZx z5~uO`Gjs~=qx@DMp+|Lqqq6A^fqT2F$akzZ&HK*he3*;-#yuH*7@AdXjJ1e7yho-Zw1=BydP-hm2bjkABJ>gsKtgM53Q{**$0 zQm$ze{3mq-HZ%2uG1jZT+-bkB{dVMIa$?8CV)XnDd~T^K zY47=$lLv1S`!1g5*qSNi^hf72#`^Qyld=bW-Tt~ifltzF1RJZ@S-9yvvcGmmt^Oi^ zZwq>ou3uY_UJ)t6o|+Qw-1i;%w)#8kb8zB2>>=}REDN@`07JndMy+!uEK1RB4gRf` z+28={>v-2R--LdA_}yr8N1(8@89pMvq(1+K&(Dy*`cYlmb(D`2R*H>R;*H z=hDdp#!N#`t%1JSb*DJ^u@oO8yzYgi$)bjk@ip85EsN)imNV(NWe2_#;BqQBN}tPS z;XL2Brl6l&xqb?th0jU;$jOgycXgVWt8>I$J84D`*o@B5Si~GPsokyP9 zhW{az9-j%H|6mWo<4wa795shj7;y2y2HjEos_pyMC*Bh1kABwA8BczYJ<~Z?=2c6lS5OPM zXF6vhyn0zY{84&B`>!vL_hHSVf6;x%_ABv;jBx1v!)xt3YS_Ct{?4eocTsom`g6^~ z!@f`Fx$i~JYwoLn&0hGg=DjCB-26|#DHHbcuZg$dTQ2q1zV8OpS-@HyzHx(HuhthO z{)vw7*dr(`4S`HQ<@E3|`Tgam3}BD9^t-~zN7cIb0lWUJcOS5d6m(4N00)W#h3!Fn zSvDV+9M?LFH~YlPdH?+U^oo7F8~@|@)I#`54!%6~U*rAqaUY#-$jdbKA>e(Gno#ZS zfm_sHfLvYnrSsY==oLd;1Kv^R#we7h6oodFr{u*bY~GXIbIrB&9de`b6EqUnRG$I) z$s3ugYC{jOAJ!kPc!SMBUcM>aqpqOt1Chv#%ol-)1R z1VH{wW{*7m%*IGLGseZ03$=gXh;YR@d%)4fhbH!*TkK_jKRn-bo~?U$$A|EB_?jxOkpA$lyEtQd4|V&v43wl9UFkD7LT zXrjq3ee@ZP2ff_Geuy8!uM?@doU_Ff)7t~_G&<0$+>^=Y+tCX<;PYXwOLxoE)2=Hb zXFg-RmW;8aPd&#o;>j`oi+}&;F}|aNc)EvoJ<9Kbzi3IcCAtzljb#r!TJwI_Z`vRI zekQ+bAHDt4b?vA2@Lw3SgYk}niyh$ML24=w+;Vli13DVu{MNtpFxUI)Gh=#VXbzT^ zhbO+zZ^f)pI)MJt75*(1UG>lQ{5$X5yPM&~yVz@F@K&7z+){7iPu&=f*AkDYp$-UL z4j*7HxZjK3_xKjD+YNTI?fY(d+4Gx_VGp_IFoVm7w)^9aKMyR3_Eo=%E91LXYoELG zUsQjlJZ06O=?wIo1KnrCZ&$7z@lc&rzOzdCGm2waek&X6lT>#ui6`??uFOlhGEZl4 zw$x)YxVCn-yj#P(#LuM@DA%IgtHEV2Gwtp5#C0*{jt=vi z2b^49Y*MS=27!~{5aEA}xF39G!Ikv35G<6lVDqcxPvk7164P)d>${sVG$*G9SMf;d zYya{?dlsyotL55A?hA!4Zuk`2NWOphg7`oPjLeLAe8#mnaS}G;vlLv6?RaV)rG)wP)RHXYg4*7Z3KE@D*z<2HaZD-_P}% z3op& zzs_tCOuSrf)k5CPe0KL!{YI}+`Bv-b>!qCPbe(bbnEzYKct-b)=Kl`(lW`i3V%c&*jj@h=mYjJN)4Lm zsSW&3QWH?l`_a>#Ik)mo%|&z4d^8WIexI=f)0w>A`|jbtaeYle*Vip1#49Q^<#^z&-oN$uHx3JY^s2q3Ecf(LbX7YIsNNp~dkplFMH1 zz^dN&IrSZq%}21y&8Zy|oxE}6dT}7XJq$0iF&V{pES-yIyzqvN$bZ1}R1yBu+ImsjUci^tl`mZrLIcBI(PFngF{KV=tb+*{l|70$)# zPCxqG4VT7W4itC%{aWG+4_zE@s=xoFJnb=fT2uY^Px|{<{F1T2jUC1Ci6rr>x#Y@Y zoAbddGXdQ_bUpDaTjH7S!kW`TTEu)|jfv(D>fisuizv__MF!$MhoI z=|1DF<8M5hJs-t$h2z3);k0mh{80I?{97)Eb~1DOt;|(kCGlNy81ZwKDu+?|i$~#E z8(B*ma$EF&E53i}rSd(=ezrM`s%!8y#0QcuMQ&eExW?IF%7Mi9xK*)8os}lv>5YBN zxO?Y?!yam)@(KQ2BA`3%PY6f1lGs;0cngZvfM5*{a-LJ-3ZN^-L9? z)3_ah{8Ej5C45D)E_=*3yZW@+y(k0E^qlf!q7EG??-Kn2nQ{@owZY$?>-tS{JU=mx z>n&Z^>^SFhO)+WV#}kF%WL-cw>DHT^@T>sppzN89IwSrtx}5s4E7yJX56vK__5^>C zeA}@ns6C;Vs^p#Njcmh@H>Ec*5BR70>Y0AnV%QJ{TarE)or3jj<$6==u5-OoCBBA* zBTd8o?2GjBMtC#$I48Ps`=qB!%$686CzY%-T4(E$qIJcuL=^i&|9b@3tB$*zybRTF zrylAR|6YImf)9ZY59P$gb2SIa(jAYN$HjZeBVZ2Q{8{rkv^_U|-#5B_w=MNk9bWqg zxjbhwzF_|>HqDv51DUj74LEr)*NmGN2sf|nZEM!&1x)iu>Od;(&IF)bT{$4pI=H20qgvp&Kjt{%vt{_ z40xI-v`9^41wQ`$I)7Q)TOBp3XZRIB6W|SDNR)vF1AUx}fhx8UG{t9CLdB#PS=;CqF*x4CvO; zH_=@^Jykm8Tg>S)*0qy0-2#qkT@RzTYMp{h8*+CC@^=Gk$<%=>cm^5Y+2+Ecw*woi z2W$Pm$+}*)D+93GKF3p#Cn4tFamNxbD=M@E-9Qr-qApE3e$Ixx)+RGWQ7kqUV+Ca1t_`M|TKf#T2+yEPKA~qqoPqrJhv^^bz%7ut zl64$n9mnW@xPv*V?~qrElgpfSR=d~RMtvm|N7zVT`HC~5vzFawYjb4p$VWgASjU$f zq^D>I8oFerW#Jqw$yiS_!)Z3&%QPH(wY zPaAp{#EzubTAkDLm)Lx^$FMD=drId$*?gs2*t&7)dfoj)ynZs1bsYMUJYw4>kJd&LiIug1ZN+nI~Q%QEJY?Z;TtHJ2d?`M09btbM=qTC0Bv zu6qAQ`qZi?O9^uj4B;ov`-8IY$p6uO74+x`nStd0+=njfp8xR=tB=dx^5V*RM)&)2 zqFd)YjSj{+qS7s;6Sc6vA!Ka}`&)ROi4TkT;>wX!P7c2KPTeQG&DK9ZkY3~3L)w3< zOT+gv`amYtQ-fZP!B5lUzYXrj99$Ov9GdviCC68+lMU*e*c{6Q8Vv- zlzXeVx5k}I)WylDi<4_)_sMq!9%buD&og&Bmeo7%VJzv|$`O$sVSkhFjsEofCcl=w zX7{6-Yp-)nf?KS1LV!Ep#JYUs z5D-^jzr6bM-r$mOEy%jaxd6vZVjXK&E#~|oQ=D8c$q4Pahbuq1SNey=kqGzA%Qeyk z$;-1ie{At<4qUV8S+$tau6-Gt*ijgWpT~T66jsD#%j$W?$#zT+C|z!VFqJi`nUe|Zl2w&zaEk78{Qt;3@?;rlJDBNN{ZG!vAZ=J_k& zPe<^}3lD_5F^dO-V&K8a#uXjSVocGd=vZ)7PH$b_Y;d-F4i}LND!+$vdPC?9wGNFH zBr3#qZ7hW?3FRfL1Y-#QjeP`_f*3iPOyT-kr@0-*V@8D?Cs=_Oj{fYU~M%mzHiHx!64u44$O^9a^X6ojtDd zu`~xyK4tQyOc>j-m77+SxRbH<+wU3IUKc+YlK3{)-|f0)ape}SiN24p7sy!0Mjyjm z-{RU&*#E=CX@kGmHaSc$^&smH{vv;}^mOeZ{ZkuGYoHep*FNnU*S>2e<4SkIf41c+ zp1T=%kLJIpmz;_HqTVsu`_|I}@zC3&>RZths<4GuV>gO_$UeD={7vaEH4hl4@4}d8 z)B}dxAoNhrH~mNYXiFbC8~pL~7+=!buE>I!s-Ktwe#i%1`Dj^}FEP7ci(p;(Xm^js z?BBJ=m5+A!RLK5)tn<6IpS73Szuy5r*ZwsQ@9q->d>nmB_0&1QO#7uh^0}XN|MC;u z-+7U}_fOn=$o;Hbxc%;D^_;T(9Muys$Klc9&EjdIInkc0>ax)C9q(2JZ z2Jf=6S30BiV||`-8jb7(a&-qM9)YimF16NZwhZH1H?Ow6D`O5{roR-lB{`zs)eG|V zi;k1`rv6v~#q->HXIl@VJn#eXDcP&GF2oOyp|3G>nhy@`AeJj%OkGZN)+NM~QuG3; zr6-Tpx3i6&8rVKsy zO;_F0WAObi>a8&re(TY5Hji3E3=e(O_M{;8oaxW2b>edBC!t={SHPcD`)+gRyK4`AqP1gF&gxib=v&n{K71#u>VAc)EO<%B5G%L}pL0M1_?V=RiL( z`6_w87gJa4r$zoDBROK)z;xUO=aUzmjpXXHJW&FE@FX#Jq@4-(us_EhY5b!!BsS z2l%7w!tuGXU9e>iS8)y$uY%IbFduHQdMat%Mc=-$x>Mv8X{ zhKgC+dvW*m(3v>#l5r1^ScFq0(3xb zbLX?<`@Ooz+?gb2M(>i0A+J%r2~;CddLjS+^IYo_iE-Y;kwAW_u2c6=YUAER6Qlo) zJsnK{`6_?Itq+8kw}6+zzdh-`*qOPBFk`fo(EkkFY{ehy`7v1YR?YKZ`zi4Qb4}-- zD$_X*T=jfl`fcC(?(cJfZInF{t@hiXIvHvW$j!Xb)0f(EhHUp4=d=R2C%;iJGt>eI zR@!UreH#9r4L9w%haZzXd>|j}Mb3JvV;`y(nLK-sav_E$Rwa(FnCtq9vSIrHb%g&L zY-dn!_eHQ>gRZRiJVSl;k%hD3ic5I3@&|Ax)|#Hs#5Ll+(4C!=XiW6Cn7KLl-;Z^o zvw@FWbuQvgaN4oO$w^ZlMH*j?@~G11Nbixqz@hi82Y&1HgDExp(&O~*YTh$}aaCKe z8@TVjmV96E+{^ES9um8t4LyGu_Z|4}Q{ubH9Xs{z<16mt8Nn|C9v7Pt)o&5kT#oJh zdvZ1vFKmHlX8STsOM0#7R__!}i+;riw1=P4`{+b__yl8lxPPN!?BM=PU32vV<>9ZN zbbQ5}jQeJ}_nmYf(eMAaeY}HvS{Pe=MXCc=em+@_}(pOcxUfj#=`2>Bh`w~169a{c(`5~!W>-;+NR^Lp; zz;_cvlRh9FT|8O(!r$mg?(tahRM~#WzYAK>m4D>)ztuRznLM6F+#xgmvmPD9>(#_s z96lwTq7OblYo}0C7Cxonx74s{9K(CX0~;B;9k`siBRpC2t|X7VjyeLxN^au!^a@}6 zth>d9xwZivZUl!j^zjMjp`@coMO?}2b-W?DxP>)pgvQgcW$bD9Wu1E4-L-XGeQn>9-}4soMeusEuNia~drg13 z>Z|c>9lT*Ga_utke_DJb>uu|8bAf~x^ML(Vk=3gCpl@3?d>kL<{=1Zu(48L;gQrAt z{c+`oiBE(3JnM6GG4a~f_-h2;ojjL`=b{r`-%MTzvEk;(!Ss0Lf@nPTjNK}JCja1!v#7m zhxc4gUW&~(4EFP4D}xi4O+3D00q@bZay~b>pQrHo2kvKUv(O8QYvQl=d5gp2xu%{a z9(~LH#m=&I+{`7@&T4`;*dAlUu&?NwPQHugrLz+>w-=Wj=Zu7IJds~Dk`=GoC*Ntt z{0H-X<>Y5x8_2bva!qucNuU3Gnrkl*-z68}3FXJ^&NsvxeAo=)z4Y{_AM`=&aP9Z+ z;Sb^$;+>+?<=MSg;h8D=+Ol4Hp%x^__h|0g2k^VcKEN{+pYeLidhyztli2ZNu?anx zYFx$3i{S&{HhJhePfGGYzFWyH=ZvRW!uhka@ZI2-)$fN(&^5sM7-PxKmfamAu5+^Y z%jcq4g8U8izUllU@1JrK9asH@MbnyZC4Z}Uhh$;W(<_+ozfCy4;!UpES{?aqJ-f%w zU9|SuLTlHE&Xp6G`TWy7uik!{*Ph~ee-{LIf&+GVW&ca?E@~+L3@_4p* zw0aN9@9On97G4~r20YVm9AcWzJj7SA6RV@WR94lhH-U;ZNOk;q+Rj z=eE;hd!yAWQm&6HwZZx*zTFjTuxl&;4|ahEQ3v0wAM`Y?$scU5iB}Cv^yS(%uAOX6 zkD>dVY)v!xO}e}6i{;>fa5;1A{o{|X_@wKaox_J*+t0PHft%?%|CR@d$-Zv-HLRXv zX1-3X*0IGo#65iQonGK!j^pb?UwK0M%E23Q#fM7o#xHxgO1)P4#NXRgHR&PYBmN5E zqx=%G=kD>NTMz@Cf3=yp^b(WTh|l3R?71r5Q^oh1bMb3nhc3EVIS;)`k1RYT{x@(} zI*xon9{w8a(9H9nY#wQMTqO^@RDObRSNIX54l9U{Lvc9aJHCeneXvPeHro8QpXHKM zN4;GKbsY36>(o9T8cx0h^rO8Dg3pSN%O?;hd2i)B)+8DjeKh^H_^tZ2-o$|k!f_ve zfxk+Y+k8al{rD@a&#Wtt&$;(`@;s7*&3Nhi#Q|z@z(?_g|19j7NL@qeFve;@hIlmK z;s3AUon9`lGd?kD?;iPsZ5>U4)6@B*MbJ~8(>BwvsChvpQ4?hd1id$4n02K)rG zwvq3x6wLIT;Fk%zwSVcZhtxPhXj5=alP5jaE5GOxI@D#1=J%Qguw!MD;9PMKdXUfDfaPrvVsmMh25?21Cdc)A)rOxUp_@tel zBkD&bpY!V`r(JWdWnXT^&zbqG{G57Lc}KhG@1?OcPT$|C7a8^vaP<7|&ie6l&U5;# zSzPTH46c%gCb;eZUrq46B0~(r#~E=`OwRj0a?mP?LwE3}K0YCIdS6L+atPmtpPalh z?xO~}eG@s*0r+!gprmwiP4VoFoGTYJIh)O>_g2cMsC-22dkwNwH4 z2#4N6zSOw=T^aY=?&V)meu&^ zv39&yxD9@%zIstRznM|wo&3X!gIm6*80Lt?OXG;MLet7I3Zx|f^9(>r- zeV=8X(tVq#QxNZp-C9mvf@xokUNtXQ=b-sF1J6$epbIE>`zmS_Z|_U525LtQdGEzn zm<5kOquzL{$T!c_rPu!m{*G)AeBi&OqScTY+EC#OOn=#loz8}?=0I0pr-yHD!>9}C z`-A*hYWg-Ty)LqdT%&;&9^*m$IP6Y@-&DGfg1Qop+Bv~Jxgwo&XW7jKiRw^ z>4i?L1D>?@NAO>8r>QNlMc2MlL9Z;nHxv7BuKU_6!@h$r_BU4tew6c)u-Hq4S9yn%#JQI*UjsYzN^@5 z2-)icrpn2fV*0i#w!edVa_OJ!A3X-6v-YBkJX{c-)N7c@dp7ubkukkW`&=_=!fu{@ zoip0g19tMN@o0Z~Gsh&o%$oMw z{R;3s%=guSh;z2!>Tg+jr1*t$J)Uv))s)8S26jZCmyj`=r;IS4+)+($#HC^CL-6Gz z_uBAnMW7q$L)xz&pf8BtBo`0AWBa~(@i<4OGq%N{fXV`KervDH$gAQYuTcfv`5u@5*~|B^ab3+PI-`3&`@zZM zPf|BDLwbPn6{Mrv95vZX$Kg%FvAYH5caoEX+tcGrj=AP#U{z}RZpMeVCgu0>=jSi5 zW^OOw^;P)9d*R8K^*0Su2Zk4gOs~yVCcNzD%V#c%jxl*R0lTV!gJ&;2cltJC0;L38Lv>A)Gg4&AwXt9+Dt zu1794<5yLD?G=3&+*Sn&7X5(hv9DxZFDY15!}Zi9S=TEH7TwGBVD|N@f<+58{>AqG zriFe7$5z!9EV@JEUj&|^Z|j}6>3Myxvh%)4zfb17ij4J|*VTxu&^4zeTG#PZYXUO}cQPb%?pwp<(dpT={I_8?oEXICxH81bLB7dq14u@ymk5 zNO;)O7h2p`9o7gB|NoHg;(;T0XRb>HFqRab`3wxHM z?}Y4p-ex}HUGi}`x^M{I1>dcN7a8IS20M~oxOuYYHbMK!zZ4xLzhTxkv6p_v{Y~2> z^a5Y0`u!ItL+$7j*!uH+<_EvD2eLn6b;FM8o>hUOj_mt#x$g(xFoT|H^KE%{gvk@^ ztH5KAcgO0Aj{ZC_yyHUpgvv&hzg~RYi;FYAIgT8J79{6}U3XDOw#;3_dc-e)Xl%8A`-Rv(ThhOW?MSmOG-VUAynYU-hDwkJl!5(`- z_LuB2Z%wn||C)cMJPN+4J{~s4QNtd^HmAo&plM@<)@#p?&?~^f1!Uiv*V1$53=DS^ z0=x22rePkx?^iDY_8J+r?B7|3!()D%eo68e+H&-A~^OccwqgM z7SF=?B)psfYjabl&Nu__lU(F{=FNcx=VDjg$GP70%@{N#Ftj>^UZwpzjLxUMd|7L8 zasSgW?}LV4;ynlRzytK}Ch9Lj_XlQ&p!4&dfsUc!)ei(_S52mNs;Dep_1)8F(^IYC zG83rJg%4JsO9+m2OHIdIdg=!8DQrYHuL0iY(qC763Y)EqPe~t>KJX(K?#IB-Oj?Tl z&hDqJbsX&I3I+Hrl&g`A!!aioA(#(K7+@YmA1Ze3yU*b=yhrQ5hxdx-`$m;_hOS%O z;np}g=a2FKUZ^y#|2$~V9@mkss_o<#p*O; z+_@we5Buc_hwp}mG`x5}HWp(@C%q56z~AZQgk_JX{CDSF@SKRNvw3##Sn?b+S5Id< zhj#?2g;niTwhh&Ej%+WR<0(5wbCF#VN)92f+S*O;oR==to*(9KC}YWI=FAZpCLgul zCH(vjziAyBBNQFnP{Ue0TJOtm-hFrQS$ICfg~`eG@oMn?!~AZUcP-C3GV`=E6dMIueh`euVh;nCSKy5&vae0Ikqow&Fac7 zJW_)jF3y0*>qooyME0TVTJQWpAGuOpI1wpqn8Cf7c>EK_Ry<#}ox%SoxE^5bzv4c@ z-<#{L%vF1PJ=bgfK1XNSH3eDuT6%mf@~{bhQG0o}%nx!tTl5U{p^fRaQGPFmmK0YN z9mrl3Z+u73Z%B_{Kg;S8X}(9-^L?KEenh|XUC*lzn0iLvLCmxgneh}divIkY-x*Sf ze*?Q88!^aUh{p%f!9=IYJky*!YGwDUj1@kX9*6GGV_g@rF6BG~40%uJqUC1r^!eyr z<>G7obLvCE4J$)qHms~g_d`xBt3ifKHVYST1s3zzPsy7C`mqS7!+pY?e;p`aNP#0; z=W>t6mM`1Ew|&T?3>?Vg{Ski4=1*hQgIn~!=LGc6wQl+!o*2U(dh`(2{w%Tk^MK&@ zGW#xu>;v zW6=h5(kB@^xR$-T(EeV<_t>x5E5`EnY7O}Rl#{Q|Ugs5}%MD3=RX z@!2>z2gn6O%`Gz4(O(~BpK3Y3T<^Y`XOb_lj#<8y-)swI(jOfj$b@^59dd4&B`9`q5tX-a7KPE>7&va z`t?D_$iS=n$EKbB-I=uhGj~qnugyn#@_`lnCV!x4OLQfgx`X~Q9!+WPA#h*{@NEGH zYRmnT^H@vt!QM_DWO8+S&b8=Fs~K10|Aw)ad@J0H{W4B*1I5{-1J1 zwA7fs%GL?%B1S*6}^HBF*`IWpUX{^Lm?mopsSm>`nZt zYuOjU^k3=SYRiZ6DX`EKsqP+$9pEV zkl$JSnty?MJ76meGQkJ75#Ou7u{ts-j9V!Ck&i0VKXuqYqF)<(61^(S^8+VFuV>!an=$ZsBKsy77<4?rAcj5n zBWUVNz~QM46Y7c6lv=#ZPy8OZ;@2N1-nX=rJi40umusvaygjL2I%eIiBRiVlmBfjv zOOd(SqlZ7U=Z?!ZszeTclV?31wS@6vk3!q4EUnMvdr;qR4>u#X#)XIjXrF%g7<7J- zad>U;5o}O?*Vs*Z{$cK4W}h$9^ZI@>c63L&>-qcj{H5;m5Ai&|>-h#f&-wM^m{SZt zgYYMCf3ah$Pro3&qKRuI_s{K&VSC2FBf&9ZO!E`Ka>YpE*F2Yb{+jZm%aH}PJ^|YV z8ePP`%*7t`;hWAG9lm!daYQGsNF4E2bXM|VO3^8{Do!<@|FPfojDttf-|EoA=W}j? zVkI%YOXk>k^pM0Qt=3La4azzNUyh=#*{AO!9jT`HkNC1BQARYI-^gk{Pu5%pJnATs4m<&hmv(_jsFl& za&Sd4e)85iPdfAWcbxIY~K z8jCpls=Dayl|^&uDG=lLZ?G?_fBO$&veLD6-auxIxHtJ7ie+5206ZbXeK9__?VO7n zL>`s|hWE={ukP#ocF#DsVi!rqb@tw+murBz=9N9C|KYwWkL0s>#fA^lYe(H$H7V!Tl1Wv_gSq@xi+%lF#(TKe@fH8f zf6;`uPl4QwcpJXlZu;x)H)!*A=%oxDI`l`~gy>Is5$i>N^ldv44Q_&Vmh@MxQcmJ7 z)+oBO^hS?Bdhq2yKSAiHl0At)FZ1w!8R$iHj7)A=4ILhU4$Y>@No7H3Y`S_-(<`*@lNg+pJ znP_q~d=YpJS`A;^|2GpqxZ6k12lAKFfjGS#SFGZ9@gc1eJK&RWLte%qnn9Qsm>cUac;;{u}88==~Ww@aOZllnXrVcJ=e<&R0!>52@MkXmZJRk{f7qfknr% znWaM)B;IrTTWK#Hzbt$su4 zrr$)E{j7nX_JPhsi-MPI!%gS`%2`#s?KyBxJa-dvUOAtJIriZ1S$VAM*&F4KDsNQz zubKI*QI}_XdCltIXy>TjRl^fMWRBi@Z{xR9WiPtVgk2xiK6GsRjDNk;ePpv_98!8fN?Ns;TTL>`c%)vY}h`J?=BOz-(tKM7$*}) zg!g{|zRz=A_sY*Whxx$l6z|C16zd5$JkX(sg4ND8)xi<`B|BBrDy5aFM=(FWz z)9GXXy|ZWj`k}QsQ^Ul=hdMmmvpL15+tq*T$`X<&gD5nJ*FcacWt}rXw9~& zH#slwXz_vw^V>zPOcMTBGQhm_dt&TA!1r^McdL$}4>VV0u71(~{lM(<`(J&!{Agrb zD&Q}jiYzF@*E6k;{C587z5%}J{e6`k=zR6%d^Y^Gj1D)aO>Xt>*n>qI?;F_>;=Qlk7wl+h%sHE!r}1UQ ziW$J;Mw{m2*zB(|w;Z2uvo{v!g=`k?9a(r|{IBex{1`PZu0>tm5%qL>_}Mys8v{P> zpM71tOGkX!=E`_I+(XpV9b0@YIH`R4Z-SHRZ*V;{e*^kq?*{4XCQDEIp=`GdrYE zlXxfknZ`-N=X9@RXy*M(`gFVu4U|@bk0BG7p7Z9&`VgO&V$(l3F!|o=LF^urJ3SZu zdTH?Wm5je&0DI3nW(I)a&HP5*#(|;`pRA8!_3Do{ThFDeZtFX z2AWR{&qndLEG3sgd18T_)YesFu71%Rt)OlWT?X0;7StA1nqCR4kC~#g;M*oKd|MB!P zAMoDp_qX@q+B^PUiO0Bqiu5kz*)6PZR~xj2od3hsqwCKEZhcbeWoN(u7~jw`f#{A9>~M33GT1Ii>mJycwz& zoToDXUhJv%Tzv)fu8;XFzA1ipK>(Rl;oou=bx^h+Xt(`pZCB-%_9~U`t+Pth6IVKT zCu1pQCEIZW^Y(08^`@-_mmR;&qVmq79bsaL!^l%n?T&OOo!Mgjfo<$@uUl;#M7;6{ zywdA$7DOkIPLl+$J)Acl&b$0VIkUD_%J#FZL+%BKo3)2H6Vkjrp?>&xr^g$Sv2n(T zzz@8BVO8u6I?JF4vR!kz^-Vhm-6P$K-)8E!V)jdYY-@BrIQq!;Gb}$C#y%NLyYJ2{;+gD#`VTHi|3&`*>|&e@78ZFw7z=j^~hISPn=~7 zuSafrwRy6wGwoB)F4p`7C%r591@Ji+z7%u#s(PG^NK7t0zCwJ;gSDR5IH$Q|2)@!y z$Z>&x>wI9r%Ie!~`>Y-(YTWC;5@}oMiglxAd%o2%|$cVSBpcI=Oqsps=*C~Qut=C$|J&(}~$r}E<6C9LmOc(-&z>0`plOnjUHE++*8*1`X+(_4kV+g*8^a^-ExrJpsjIZi|F0qY>VY)7GNAFuAl;->iUm%vT#}=aka+cMTYqb?v4(%QB0kc=0r@#BZMK2q#g(>?^=4#oY_EEf>AZ5U z#>C#I{nfqcn|snt5WPHmZo2Oj=0;sgVYV)@51Hi6O?Jp~=BK_l_L_zFzi>@{4SUVj zfIPxA;jg`B_jf7RR&#Ba&+4$UFOMy@Hl_4ieR!0duQD@PC-&_6U z)x0*OCazv@N6^u<#=rZ&)#2Hqo?g3wHMfD6;vo+H6TkHARC2Rsi66>#n@eu^9`Im& z-x_Gh+Mxx|j`UlPc9Q6u-LxZq;n9w*A^HXH68?KOYlPg3{ecms?{RMAXV{^A9hs6} zs=3I9)bqQAcf3zELYse!4>8a&aVPxT>mOzD*!s=R&%*N*_$6C4${8rh-0#P~d@Ma7 zLSC&iJ~~eJ_|l1ABDbYtZPJe)(&!e57OAA4lm#a@_rhSOdEDs&i z_I$~zMZ{0x*prHZ$o`Ris2W7+mJwGDMO@wMP5fw4hX)1{onvgjIfGxfnEK@=a>OgC zDT^ITzhK@jY(NKS_i-&k4KsXw!Dr}~KLoe5w`Jt}>p8(+&xWY;51~(l)9H`Rz)PKH zYq=+QPx9XIf%N#-{56hjXwmzT^)1I5^YA}CN-w-ECTuW^u0Fy(H372_aSrb3sf{mK|EBd_8ry3LzozzPE;v*PUl<7v&3%qDp!lp_?i1+eak#>CPUvga z=3;Yjwu&Q1Uqc3Ogq}S4yXvN%aT ztin&^TbLHtJoKC7(LaFQChC56gXij9s$TAjrND2U8hWoUS={m0sfWVJ<4eL1jcaX8 z`8^5}uQR^hsq4kWeOgMCpMk!w82gi#H%}lRrxiXa8%*z2jQt1bW1hTJ3|aSk{OrTg zwr15i8;AY*DtoPQ9sgz5ep@-?^wdJ0c>5fKpLW3#-jxZ<_2fOs7p8fLXQ{_))xzV{ z*4loql0VX)to-r2J-l-8cOySszi2VIAlcyQND*{}N=LUk@!5$tY_hl`St!{Rg!aV8 zj$CXy6`OE$DtJr;zj>9bQ`Ky|*w&>6GS9FQZOGr5@Aw%n_)n`-DQ3}A*2wQ7e@lMi z$&Wv;QysZDeA1qxYv55Q;|pWicW=MC@H)%aXlqifuTiog+uvyS*z$nyvB&#*?E8?! zce$40+HmCOeD|zv@2tmN;OuTk*X@Qw1$xf8x8j!~c5||MlXpBvYnBf{vF$B-C$(L@ zkgYk$Qu!OT-(J1DeBaueU!{+&$eiz$%uPMO^;?499DLjukbUUX!yj9G3bpY5hMm`_ zuRve7wy7UF5Iy;;`s23?lsbAv^#I34+$cS0n$?5e!=J8NMbVw;ME&cue=QZhhT$EK zk9u4qy!=-7KzTdw@P~Z1y#l87^a0hPuN+%^C32>a_=RdHEFcnYm+&9_BBs}_ zxapCFr^c@ZC*)U|yYV82KElw)5ccu^BkkPdqpHrmzh@?pKtL|x8qiFL*C2YVT%_7E zA*d+gCDM99&4gIR0=0@q5o{TZ$4k-Hs5Py&%>-<9Pm5X$N@`C@#GclwJp!KA*7h(V z;buU4iogU2^L~G8?L8R=@brD(Kk`Yk_uA|7tYQFn0YR+&}dJ%03 zh{uZIgI?)^u6UG1lMbM8K@l06id?WcbD z-K^E29=Bk%KiK%pzR=Up$i^1sIra5S-KOJ>y@0+o&Yfy+Xsfm9H=HV4*X6Ewa`y9j zp6lKTjqQ)w2EHAy|Ng+>cx&*-z9ut<#i>Q!*jMrVc;D*0?nhtVhYqQEUX;_vt@N=r z^USVk4$tIYwd=8C-N-X@UcsARANI~`UEYRUfnCp;?dNufRP(OCcV16`*2|_d0Gp2N zIRoA1;E96|E~Net=hxJ=pw=38g^lUPUT(Uvw>#m)5fitZt-GMaSA*sZ%fBjJMDktO z%EW`h$ahwr2${3}1iGwj&Z@2E6s2Bsj;gD#b7t%6--#}l#3sI<^Rtw?`j2te0-*|X zU&9O7dd%6X>+L3cbB;KF=KOH})&!lwv%%|hu()#^c$Grl{Vs9;mhub59PbJ029^SKgb#S zhP^kFrrQF?AJMfujl&kZ7 z^tTT1HXDuwFIm05P%;TRM>Tg$&QN@?i8WN5-N^b%Vh^;odw|h>^sV|LT3^X=)-@A7 zE)DHao^dYicqg+4odN3qvj*`gf8EoM|5N?g_@r zzCUFo{|m3w*LhxF*L%;#^S|uh_|nV8|JA?NLwpBzLJLdHap6yO9($Yk%eG{Cmh|FB zy1Vh`=WRFzIpD|GSNyx)_Rj7H4GSh#$o70iPh3@taFDj99^w^8%EbXw5AjmT#pEep z=1MNsU0gr-`r+Y{TlZXD=za?QTjt%jzP}b3hWq3WE*t<|%uAT~8SEqXR!7hQxC<2g ze3-ljdq1Ne&no+ey<=K3_RKk)FL=FVV$~59e@vpUC8@`WjiD=fvC|xd?lkts_W|9x zjTkiXjOobmhjfSYlgLIoE5wc^IhUe)?N7>1H!QIgyRMCyD@ttIZSoW|H9w=oQK{~p zGYq~hIU61wg{JirO@l7x$^xQcwtk%CR;xF`LkvATvyB~ON8&z;d8h8pGJ}hJ-QcTA-d~-vgJ6nPIHvDa}MHpGcqq}jB z?mi})dZneAhQ{XDjdn{8y4b$o3GHb^cg>~4sv&}0=f@~mngjk-f}an__oR1*=3ENR znE}nY44N|&{JI?cq9!MJDBF@}vl=9u)mK?}xYgKy2ZdWp)=~q`oH5l$tv=b_J!xsV z-Lva?ruZ`ZjQADK)|Yr@>SP(&NcLE4(gS+ASLpiz7rG6!_xI^Yc>^7qb{Bf>zDGOJ zEa9Vcchv#Pz+AWq&VLRZlx(j!K>wb$2sSL?;rXoJA@5u5#1~2g#G- zs72kI{}tCXmw6~A_G8xO--V)hSkW@Y!=~$;4fw_q#?Au%2C&8bjyURa=+LFqZY&D) zDjY|Bhugk+-;=vI(-nc9x)00${p(M-p+0YS){cF9N}zvd8Gf&H?buHFgVU9f4e0M( z`o9VP-=klMJdv(F^KIo4HUOW%7$8I=%x%lCk6Ix%m zY{Ie^rUVMj_v_@(qTS9=?}XleYvbw53wk+&Y&(bgeg*St7-xIP!RD$vkGON0{gKXb zGI0AmIRvfL@Qxx|Nyk&28r{dpy(Z;07D9AmsPTi3{bRZT{n?y@=W=R1EaR-K3#p!3 z_B|bm^P`BsM$tbWCQiN31_ z#pT2(Zsz~gL3qefGI62Xy*|hsbkDZEYk2SM{@~vU#?RS+Jlr*J0QZCDA)gO)jZA!v zFBA86pX!f1JX`eztW8C>ljF<7A>i1{@P$9f9wd4AT;$>W)N2v%e!3FLyX<|0nkS<5 z5%CH5gJeyenV)i2py3l5$KV$$cV^8;Hg2SLWDB%&{^{Vs8P0g|5ZV7y$Oy!#kjG7q z9x_}T=hoKk(jCaf<>LA3(~k>%^A>C@gHsb#k9NoMNVhMaCOtZt^y%cuRz8(1dIoru zd)6NH-ajpKk;~9HZpQZot2Fa?cp7J z89R`kki8$ekN6Y5RZevne%kmsev^OJcq)Ei?C^qfNyz!1aqNd=TCH)%a;JL$FxNX9 zV`p^@osZvtkT&(PIA6v_)=%svj2fV%O znm+EntDUYJK7XVgAo59imhdhP3?5~k!n-hX&(FZUA>?5R@0RggeRdNY5k84LRo1oj z*^9U@oI9VmNA)dmBc8)|7to*fNP0yYy{;rw+^PE}g@=N*V`i9$WTK z^VXbyhODl-aoY1O?496H0gOY)Fnd4DciYni?oYY@T6(6x_ceb{&pOq^EvFs$YQ3Bj z;g;^h)fwwUykG8G=kreUu4b+;@V#^Z;YE+yn2$2ILT1 zExWE{p+|c5WRPSby_bDCbRRKjEn&lhc-EZPfb-dXze1nM z-RX&cA=j)&rsyOFEh5&U3kFSvUHB&>l?&pkF19nOa$R2s+WIPU-Chbv!!1J z*oPtb80HW=uNsLre=gSiujDJ;P0s56^T~PTx1IO!@?}ooS;-XL2oHQeQ{TzN^q~8M(JyMS zpNe*T`X>|1KjSIlI@7^n^FD3h|6s}W{vGzBleuU9UG}q$dpSfCj`d!0u&IxS{a>+Q zn%p>o`I_N>^I_QSz~5}{TqVsDBPcjCj#_W6Z@U(epD4n?s3=l_E*WC(YBRAQsWt`NpfA-jV7 zOv$ofy?mRp3rG$t(>T~G)VFL0TW2_37rviv*by2*9HGs9P;8vf6CHevOQE5=`7QrP ziaT8QUY*DN&Ar@{!Rza(C$c5K!u|a>BTq=Ck^GWt%b>4v$ut^s@1_FxqjVql^z)== z+88|F29YZd>_%>0$Nt7SOYO|vuW7A*{$7QgMO>Hiu9Y{{f^E{au|7VvdGjas-ZbHg zA9o{sQT_V8c7Us72N2y*?180QcFgU=1MW>> zXfZKcvJ>>+bHEi&&)}Kg=RE$7lV?=I9hk(E+j~AZ195PHSP|6|9B=hJ#c2*jpCd15 zkCkKA?6kZ`c%k*+2by(oDfco|I%fY%kz-`5(O!rim>O@;4aPwXginoD`NqbSm>7%kzEzs6VizlL#x zId^(Sy3%X3KNTi#ZAg97ysR_HH~#msUuvJW55LgtmEvV}zHdv({>WVc&?6gv(NmMx zr(4E15ATueG=X<@G{V%v{Vr=;apzRi$LZjz;QQLwf?coP8SGlOqG)m% zwY~1w9t2|>Z+>c~+tI*XQ1gRbW4<0#4%rZorx^c?#xKelKdksV_*;ZCi;Q7-n{)+h zxLD%7(?hA|%|G~Y%%cH#`rlzUl+mo!b zZRN4X37RoPyK=`l&x~Vp*glgF(szb_!uJC31V3k>3AkInCqMB;&`;&P5&H_y^m*Vy z<}JFToPegUQJ*kJzM7BBFCG@-&h%yMN1S%qd(_JRF`h5ty<$=RvcJ2bk{Ar#p$(7x zJ2960eQJGa%Zc?)Y-IhI!Ov991i#dm>|f#$`cXVK{M*Z2v-lRorldO1Wvpo>HA4me z3T#TsnR%|^3+^VKuL}h_%h3PUn7ibhMD+5hlS{xy2R*HXeES;wOVQw)lV8JTCEgJI zHSu^Skdw}y)&%n=H`RUPn0KSk`5I%=ruK5~Gyk>ITyy_G6Ym@arqNsEyDsXiVBBc$ zE8MBHdu^q&0ok@|3-}{iESwSk_;};{m=#;oIx$Pv^mwC_1NZ*mQS=pfCv;G}LH#$E zIbF@Q&IZ-qxfXwV^vkw>)i!hp-J!u)rl!r%MR%p<&_-jeY5$`8JZEaV6DoZEjgqxL zA#XXC56lFIG}cq5#s+s&U|Ud~m}cot^s|QC@EU#xyv!Ny3pk-O4m_XeIO%Z1hv0|iA$wM-Xc_jcr|+_OrnVo_ z<~80OcZ~R``ui{ZPL=w9`B-@A&m}yneva4fC$tkT`SUvUGrt>Mzv3d>|MxztU8J~v zD*gL?K1N&WFmEUTo(1Nf8ynxYt%Un($d|4&x$%;{MR%c)p^Aav*<6#Fj`D|Z9fHnAWbS7r4 zb~<*nOR%9?d7rtvTcE=`PV3QUBnL~Mv9(15p1svE_Ey1b$Mf6^`eDd@e}c`6g$S8A zfX$vfQU1*yd?4aaio?~O>1;_xkT3FQ{2e!EPxY&YC3EjcgiAVH| zH6-y7&(`s*iGFkC7{A{rb`-_0RPM{xk9%$C&H1tUJ14l^b)ouv_{E9=U*rr8;0)=W zL;N-Hi~Y5O+~2_~UVw)b0PEN4Zc2%7tfxjLvU_=&eB3xROgdgaU{#uznmC2C6dv!) zD*PP(Q{NX|=Z+W7v3y2wTQlIB?y_>(2e>b0t;wY+PkT6#OJDn6sPCq_vXN4+_l_w2 zNQW#vn;7BHO^2M|-=B~iS=tgkDU428fL*w$@SARo{)hj>_6?6WwIf#K)V!{^M>v1E zr`zhDJbd|~UPiwa9eXu&Q>v9SCmGF|%((Exq<%l_+;Q@Vixx+z)i~vM%;^$m*0R18 z?nlra)gt;;owGrAz9{aY3_MHJotRRcqU)baH~a(GN-j>GC-_P48EkZ^*NMwX)ZLg0 zFGL3e7Lw;8o-Z$gFRyNJrP~O{Q8U=bQ-R#_MieE4_01Bxlyj<%?N=5qE<*k4xsDZW{5Q#r28M ziK(vvzc{rvo9afJJ`7fMXiV{31E13-yP;JUHi^^jb$8ImlpNmf00YC%uT)pXdz7usLQYD)AEN9jV=G~4C-Bd{ok;Zv_qWgSkMC#yf!Di%I_w~E^|Jqct ziridqu4X{2>iN*{)Qhy~`<=rLD?-&NxAAWGMcPzz)*ri0^SYKAb<%&34}SVN_*5YA zYWumwL^_FkdG_MGiTIK76Yl2m?yqhid&Ua-o8sB=jm1@;y8Ff8oZ5y)tc|li!B=bdWGACD=-k+NLDd{3ZubUjkBS4s6`WaLPqi_p zvOn5*!qL=?kpEUOg&HReZIIn04n2s6u3OteedZ?cVMW~yDZ%K?HORx}{11oL+p#KN z!w*26YQ3)@hv;?cnl;s3lUfn7-@L{*KYnsC@s-4%n0h64Z0_1K^_RoolJ+AWx+b*- zS&Tc5I%}|pYkX?3C)WJ*PWRRJg|55#F89TGce|_DgJ0b~?~Ip1*RI8mK0emF(uKa9 z6S)d~TXUcmUgG&l?(@LvCHj5wwaM<&%t_}i!MxN)=dhl6xh0F-7hk*AeTlL3ya^m| zOU~ne``yEQr+0ok!S?ZsDrApP9-efgO#8ObK=yG^!iqz-meq4>ej;z*p91o&JKn~ zmw&>~c60z6zh>_sR*Y1Ceww$RPwoHFsb4|2egzHn=VRcIv&IGZw~hzj{@BHq`Z0Vt z@O>9s+h@U7_wD)g+U&Xaz2oiAW5|HVgKd9gI>8nA3|3vUFIt!wUBHJ&J@GE`fw%r~ zs>zFaM0;%4W^{kyQPVYFRBg1YT0EMg96@vqY;r>r+PeV#`gX*j&p{XSzi8xb(Sj&) ztJt5e z({IzWo(WEK# z5es43)Qw)dDs*D%8np@02A+Mh=|^pfO&gc>zEoFCyHTl`v~!{5tAOcCb=R*|%(9(_ zVn5(nS#780w4Fj*-6y&gJxsXJn|+r3W+inVzjLkf3$yO4#D|@Of_w z=hX60<**JX4u`@1B%`SiyEJ4 z9~|Sp56cq^sFfX|jlp&c5Cqi$-VY^Q{-SqRsKT6W4yZz;U4Zlb?e9WBG&hANoxYa4-btcnn2ve##;K)__y;+JV|i5iD!~m){MQ!eYJKG z_n`sb-}db`BKy@L`vKckb)!;_=GlmhD7p!KeyQ%d zwW^^nc{oF3!8Or(wf}S^?b$ce7MdT=^zYHwthPII+J2k1{@jxIS`-5+UDoHV75^Yc zQZkWjg2}S_+rDzRL2ypjh2*pFaz^vr?)ADyu)z2t_Rj8uj-q_6zOM0IOtQX$<>%P%~xANw(6qqgPKj{9Es5m$S1S8Tn-#n^gJuI1fk z@KiEYE}c~!=&pG)nD=G!uiAX?Nk{qzY8bnF$;HqTYBtW+{b=$JOvi?BDK;~kOZEb} zrO@Xp%`qLquZgV;-!8FKLyWCVv51OEl+C;F98+r|b8ni_*NFf1buRhaqyva&>U+hC zzwu?uW0HHQ1BZWByhiq{L(J(wXhgaCP`uxcc}}Macw=y$r?SpG`IatujaMeWpf z`jzgcm>@GQ_M9aC$0#*I3rI?h2B{}mPCdec>5FU7ox|AabjR@(gKYf)$+msu-zPRF zz>j0)uZ&)znA);K=`~x3QS`_4_qQ4R+c7WF{UCU%{ocfnYA3|ZIp_j<*xL z9y*YwbY6P+@o+}pst?8KB4e5wb*FlBEK8-=Bzdl}{C2l_sgG}bz}z3WptmpYHO7KLhgNY)#Yfae;2 zrOu>y;|q1gDR<=s?yGze?D4y>$L|&pgTd5 z=3qrpU_(mr>{+t=I&s9| z2E~}zXEs0M9G<w10z zc*>oean`%etbOF#D6wC%yW>Y`o#pWM$E zP@9;u?J$nx4DTCW6kSV<&^hs~Xx8hkYR9haN8(pihiHVq{ zv5PZsvhdt8{BXl}GtVqM|Hd=v$bvx=IMC$5AxR8@aADp0k!$hw0*8_4xYw?Y5$h3O zf8E-U6Zl-bPioRniWa-d{~*R5+GzU}Y*$u}Si2EhoX+gZ%4^L%J%;~)=f)NYPmvs| zZ`6Jp=S<(65~WrS?TH&IUrHVKNAZKr=}b>*3Zcg_ZYg)`G%*)!oT_UyD9-%wi_I&e zZkg5)ufyiYyq#ovHMZKdJ`RrshYw0lhF04DR$y_h+$a499|%H zaE0a|xG-)A*-mp=1rF(ZTTj0BhKs!u61u=@v z5qvnxJ=ggR4R9tzPlz-t9!0k2yNP#f0q@OPsrj*jHNU}c-4lH+u+VeaY=$j~Y{G8M zJvx!*dlpAFDIT$7AYA%zh=iW=tIWW9kPDKWsDu?NAh3< zxk7imZK-wYFJ>HYqD%fo(PH^&6%+8Sv&4G>3CUL4Yw>yc>OXoZ;L6|Fe3rFYtNuir z?muFm+lVs^-xryYghwrd2F3Z&cuAhOJ&(oI3Cz&kMY9$LM_jseapWH{WEQOtcn#J& zEX3FA4q)X*EyIr+=SO`kgVuENOz(E;o#B_mG_R@?eq`r@49PyLJ_7iV^}aXnS)<`k zNyZbr@#cX)KO7&Wv?DR~)6{EKNKTV_qN}T5n<~y`0JZZg-{fzfbV;zXyOPy3>9j zxh{&I9E1!JDnGbzu#Ka<)y7dieM7{ZLSD*D4e49R=o>9*Ja#nPg)RtRw^b340-AiU7dyPb|xEx$BM$eFs@=E;jSD~9!!RPag zuhO@xzQ~%BXHYM;5P9hoa85CtoO$5}`ayF{elX%ISFrclFn4|}Ke&_VWN#HGA$tV5 zYes*F;zQ}dJ7|7gu)ed5`yaPcuNPfzH+%RovKMusCLOw(JPhn%;ZnxN9_A><^BSi+ zIos)ytXBi<9AeTVV^5!yTp6q{V_xDH(3FjH_(`5k>?Sy{d#uy-G5IwgUzBd>e2x47 z&4=6!)sL(uUOfs=X$*0XDEPp=aT~uxKb@QM+}&sMT`jnQemWMOnI!HntQgRTD%?V1 z4m$=^x_hA~(m|8Z7SR;Z7L6%-^XVsj-OhBO`@*=My4KQdwC6F;78mnuaWhXwf0SIx z*_IDWew>o^=NVg|!`hVtVe%i?Ki@B>{D(&p>=Ch{+!catZbWCxnfCka{rJKU?0pu} z$!xBJm0_1rBcpTEG}amEI*2~{aV>P1c?+j^um{;VeZOP|o}07AoeMf|C$sM{?hD9{ z>ntV5Ifia!;ySmb$7`RIyM&GojCyMK>|oEcYa`Bk)yDqr0G9r~w45XwH5?i>8XdF1 zwSwg2{f*Wf}Uxy_@T3D<%TN%EZDHZj4vH^S*^ zD*`8hqx1pA183vKArB|Yj)fD)vMC5B@Vl(1f8oUDHzpdKXbB!4C-Q_7-0QA*;f}&- z$X7#*Ze?}lqQu<)?(wf?<3kPj@F}&+Mdx}jEXdWOicP}amKbjEMCVwzA|FJI^C;ftXs+}pTosOnwGYs$ zd-crBPyUTU6U)1k9PM$;X(x6B#q>U#X```+B~IlXxmDhG(iKJ|N_iH~Jd<2JB-2-M zR$q^+4Py&-*n)}8DoiMkUNB9l|bk}U2B0e;a=UX_F+AHmW)-Sk=wxvG2(B0|5 zbt!tP_GBk;Qy+q*&zp?T%B!^HptNHF?SGi51vDzQ`8nX9DwC)ssa_Q}*>{BkieU5&zX^d#S=u9U+KL6A@ZedS_ zi-*_;!9i;jF6y1uEw~CU53uitf~iS5V?8yjMjD&4kBfp~C3?@XaPsai9UCXZZ=@$) zD7?z4VWqiagV`usfac!G{E#QgHFwSJJidYFm1pnkxjYk{)wiOxqOYR2qOqd6*>qMi zzCVWEr|92@i_ZUl@V;Z0wdr7AecZ-`7f@eExx{@u`HH$PhR#XGBBvc&YuCJf*48?u z$JV+JTUo3KJslZR^8HrqtQ{+TTWb+{$Nk-J|A9P?(bmqo%(JtOL+;vK{ouItSDaUHVN_%<2wG|AtR*R)@uPN3fd(Y4MoAOihdg|-oHabIeJPBYq0rzzCK-)I5lgGxvh)=TnrpN+pI&~BlgDdXyxafMtkk?r|>YHEy*?h zp5DcNN{(*F4sCcfK5iHN+4GZM6-6J`T>9ymp+lj>rlP|Qs-q#f_yc|%UrwEJq@3D{ zZ?SvHbWcu|9ef0G>ZQo3Gmuj+%h;kUd`6Xv&fmpchkO01|0Hx>Yp7;klC{D)_TvTe zw|<5npg%A?o=xg8bjn6g{!V%_T+)}}*q4I~XBwSO>o&1P*qfhX?d`}!>px1bUIYv* zOvpoo?>xpkeWRF(bUM!!&OKIWajtS_di8v@XHEag8pSU@B~C&)0=esblXk)}!B#jX zI7m0MV+jvNCGKRb4c@cc`TMut-}Cuf9?WzlG*b=n4lfIpyb)d~J*n>{4IO2Bn49){JSDeJl zgLID3`E>4$PEV~obo!~l1Yg5H5$8W7@!RsO7;6tNoE*HE$yxC8Aa~#sPclcNOXcKp zv@!?T9USJT9F7`(vnHcE#n|_U`M+(YonIgFVsv(Np0aZg%2&;FOUREY_(c8$$`)m8C9tC<_USdoDoJJ>7 zoPub9>?ZkroJno$#hdtl|3ZyO`RrPGFW5ZU+gaT;udf@uKQj3M_!K8sznc2|EyO5E zz9PP$TyfnWtg~^`;tks4D7tqPpMdguw8yE^Yc8kUY|zI z0B*t^+0@%OXOdfwMGF)Uwb?t*VNd=Jdv^1gyz82GDYVGmQ|04q2RuAG*1eV7$?hc= z5$k+0b#>&klg-@PqXe62{fIyFU_M22^MYBad?UbY3NSkZnwE=i zs<^ zK z`P`rLSKhR?0L@!xYSL<(l zD$SkrPND@G@+ozDhvhpHWebq*Vb>;KDmscsL$t=TSeum<0|~*LJn-?et{%T!`4+~{ zG8G$1u&7hEPjnz7AFw~Oje+On5wzcn96><=45*&;-s)Hccos zJmSb2y{eDv=lZD+(MZus`Jf}rpY<9!+S)v{e|C)q7qjqh2zckOQ~H3u^<{8OLTKc+^eq5D6WPklJ~ zS%G02I3d4O`+$lg>OVITlg@X_IW#z|I!gzQFY!NKXuIL?@cm;0*lzMnPKab)_(|2? zvHO+-_rtJsj~xJUFQb64onJk6+VFfmU`h8#F-o@%Lhk_65+33OgSv- zNOz8c57;|AxLcz;T@-At{2nqcb_dxXMKj|U$gV>zxP0!pl>OYZTRGT`O5UM<4D0dj zR>_}Y)8nq(D1E2Vm(o|WF9)fU$6irCmwH;xkYnl4@vyT-{MGvMM;Y6N<`-rz)aLC< z(vNuDPH#@(FGC;62f^^))kgm%)8T#4)->ZEfJQcPR>JVrF(c$}ar%Y}oaGMn^BwNg zsq0NF*Yq*VZ|>(TKZU!7ew-I+UUzfgj*8pK!9cHx4y0|YI^`@HeJ68nt|3-RHkDfj z#i}0S+lbRU(_g&KS-pk6DotM@+t-=FJC@x~zRld)wf7^NmEKo;^^^<9D?|QpcHKw1 zr?UYaWck#&(Nq|}qI`)J$RQDGzw7P*)!(h4=6~#P`aP#*in%+Wf@cx#9RQ*erl!;H z>6}lEoL4UxmEwEfSw=160QzPsJ^qbD>6gv>mQlv8TfzHc-i5haSkFWFo@?Z<=UHrD zdVC!FqVq4%4&=snZgrkYo=bh?z3DZ{_B_+Sc%1MI+l$e0?x|x>utC`~V(gMtuQq@) z*m~QrFYm;@Wbmc|dW`(1xxGTa0mm5(jcOK-s7)l`OpF8X05GU%a3-u^&scXe_vzMG zEUH=C^z;W4OYU>rwx41mBS7y{XIG54}0ReD5aJ zy9l6n1j`TH<8&!+Djc%0&dZd$b2a$*h%>$g9Xg-!@)&DrsCZuTTIztYzO*x%<9j@x@ zeEx3?jhfdNKP&zd=~w0CZj?)xerXxL_=D;3_X4vNbZ>ukq$~Lg=83GolQY!@oO0!u zcbD^=b;~Ex0-UAaBpNKKP+wG*%O+l<4XVA{NI+h`q0`t7l`4aL?b`B*kn z8!s$=FMd-7?fTJ`oX=BJlcWb8R)7d|`e`<%n<@BjYuG<86F?k0^A znZ{4DUTXliqk`d;mY{2nm1xviZ#AjE?#$F~{1&lwcTt1G;D(Wt>4I-{E-UH9L2 z-;-0QZ7!Xn9h_P5HDCrTJA}8_ah@6(yWQzhf6k$4n;vkS!j1vK<|yCQ5+5)I8rNPJ zY`$P_ICWi~)3q7i=S(?%tj$dB285mgL)8cr|F$vTZ(iP`e`@bGLu=&wluoa`3o}3E z3oRo@RXoCBAC*rK;D5g+hVVi#7F-1{_48ksS)Z@<`sTCFn$DOxUrVViy)@sPsRJ{3#(B~h>d&7; z@}aAcDI;Bfknj0PoySPm9|u6s4`$JTDM!Hly9hyuLlD#e3J{y<5e*v~(-cFV0BrxHEZ={$p}c zw;+RM>p!Kp@$R8%?%uKrWT}d-{bMVTrz()ADv+n(#K>paa#;(tFVpPNFyzSqux$sA z{Dw1Ep@4%{aXj|Eq9`DnaY`U=udE?|oa~6FTZBcxeY2(qB zo%ja2km*f58R)nlpZDeoha1K+mcQ4cBg!cee>8OC;z-x)w0SY}O!ltg#H&1e*?T5F z{|f&rZ${s3nGxxFk^h(Z|HB6o{I9rC^S&g~^%MU8mj8bxw1fY@&Hp~$3g3M^&*l+6 z&I-@JO#7A&&WdPUWnO(pQJ^`7%-vD6toZ?IorzA$k1F|BGOuLgY`J&mw(bVv6zZWx z#B+s~3&y3KTVj?vBhb7tPGoZR2bMM~XQ2(+pP3)Nwf}8?XEC<+{ZaXM_*S+%GuCmnE8m|Q%i1F_A$NPr9c{0-Mk9RD7dBhpMRrfXyDHmMC69+Js_FJ^~(Crsd z*A<>nNnIc0pxx8K`E&E?3wegTvXL0oD%E4&73$?~hlWtksjIWP&`sy}b3fYTH1Ge= zp^p>L%Zd{1`Ios{;0sd+hL+EorT8A}|9t(o&|KCkdKDXxnpEPQ$y~e7yW|D+&~Vu( zEML3YvMewj3XHScwea5N>mE55 z@!N}-M~g!|vFdpe$M^{JQT(+HJli$zLbtPe2Dl@;c78%*|C z6?N|oP6{7y;Jcbn)2~WSZ{qJZc*?DeLoIIVsIwmnBgFf1A5@8h-DOm{;*Yutoi6r# z z=8KoYKadZUbF7#h*@(2)aq8MiPjSHaEx@!|dGz@6+89Hy`aAh@vLDG7X=EenWF*<2 zj4XdF9xK@po&`=;X&m7YvaInX9$JbG?RNI4sG?bQRb?MTZ;`E~i+f|xNrc;yV{M%; z?QNR<(_GT*UnzUXc`29P`E&AprCVaFNwh(Oq#G^u=t#`t-!YGWFTe)$&UTl zr~&&a=Q_D5(%kq)xHEx|uB}#cnA$9Qj-8k~MuB<#{*s=RjjJEg-s-7+%Rjv$(zU$| z*D5Il`|rT#sn|u?lJwmn#uT0Ifc7o}S300QTj{fHGqy3$mlF4UDe)HT`%br!)bh&FM)y z_i#^8p))A?Au$!4CE=8Nq{oq`rN8Lk(vwt+I0;RvguY3R z6YY#!JQx%Q4}94@yN_+q&Ik1Uhv`Y;dFi^LuJC)`o?)i`l{s(6!f|wqw!+KZj@n-J z$PHDM9)5rCK$^HudvB6(_IFP~=fO|mrf^kwS}poz)-y;q>dwOS*h=S$e|%rpK?+S@QJw zKM)(Cett_$apU8Lw#2?dP93n4t|5H(Wujc&-j`K$HhdlaBk)Y?gf^7>>&{*?d~ae& zfpbm_e}iC;&GWs|$bkC)tg-Xo3_d5X>9I-d0M_b9efn^7QfC_*QrhVjgy+HNancn=2Pd9@+=*GO{b{-;WPj^5Ayy`x#F2_xVon3_rhVa+o_c!@wi_ ze9>g)`?%&^>ICaoFy|>eQ#+lpmzlf#Q(LgDs@~@o`YfcM&(aTdHhkS*HnSh0pBmfM z-1J2C`w`!7F?4=p;t%wvXN`WHU+X)K`@mnlalc}1LW-;L$9S1BB=-*P=tj1%_6w~^b0>bUIolTDuVp^# zX!*#l;j4`Aui=N@8lvNQP>Wntdu3zsg}`36I+NetrSC!; zu)n`&{VUnIlEH+ry+cD~myzAQMe-4CjoqCygFN2l$HP~^kCj8%<~V;>?x6ff^j)8K z&0%7*m2;_lth~gs%>6R>9KC$XgP~sKuUx|#i39oboQRt$ahfF`Ka333L&JJ(JmT?+ z(OEMc`T?&r@+AF>Uq^^hUOF5YAXrsom^7aIpJ^7wo-C%@`l>{H5( z|4;VW(*rePEXdBGSW)yzVia!uk?aH6|9_qT|8Mr{yPJ;O zt1vze?Nt(fC)`Zp&(&TP3OD~B_o@@z9R5%2)o$!5+N&saLPZ}1!JadWECe`}`sQTYU-Ht|-!_{4V+G?K7)GoyxNtGtVsUtFJK6@5?-wpS3ul=fyn# z1H4PLR=MpyZC$j*zvI-l?HCYp2hdje15f4jqjv?~yD`Uj7x3P_$-Dh!k>+vyHfNXI zuUxuxrk=rHtsSj6@sB=-8%C>7_B@#mx}S9p-^I3cymP2~C)?_#x+R(UNj@H)_zV5( z`AD9Jy)jhF*8B|(@5r>b@cjer^*)FEjJB`}G|2L?9gAn|(ZyAJq$mUwgF;dhWwE z_b5{vR5d|O?89j`_Ca=y8qTI_)$AdTX)3ynbkwJBQ2bI+;(IqwbqBu8{CcM*UC;W7 zq3SwNs9a*7AL`yL6Vq&TP|@*Q_!-REPz;B!CoA9Wv+5I*hr|0y6ZfF{pnjZ9hL)a| zLraOT`K%hAVUMIp>G8d@FZ5!UxEqmJ@9)eyJUlF4J2gt%py?&V z9iX>$w~srt`%I%t(_X#lU}1*T7Hdtoq2sb z512)X85hhHi<=}@wVg9D6Fv)T!j+=*;guiCbp zo94C$9XEn5q&S@97N>p;G^Dg;aDC;qk*@Tm_}B5(wm%qhBiA}z(wiJ`H_UkqP@g{H zwEQDEj5EPL{9bl~!A@7Sm$Nzs+>@Vknya~QR`)SXo=3fvLgy;QCfvsVPRO}4Sw`L? zdQYxSq`PvY6V*DgV)c9bg?8>4p8zes=gxgq4(&GG8Nq--} zx2V|%-B~jt5o8~Pzp^t;r$6EGA4MNI6Gk7r=16_8)#!t|(@b;(n?u%pX8wI0ac|7H zH|G3IO(m=AZOylL%)SP^BrD^eXx=x8bL7dFxiZINr}y|eV>$V3{ZH%ho9C|eG2*av zKZDjM8viz9InXzA#|bnp419D}!{l%rEB2~onCeYPuCVzKk|S>az0Gq|EP>8O6g!c0 z9o@xYee*}=n*`ajHf+Dry-a&@I+B~vPod?>vY_#G@0;XwbqtVAWTd(O)cPW&BQAq}vGc0m7T}gVw?}82%Dzs;A2}5rSN7Td%rl9v z(Z`87t@iz#R{MT8Fj(s0%l$3(-Tf{0oqX6@V>RzD;cl@o?;ZLM^Io**XXr9I1C`+6 z3UH#WJy0KEeZbeO4;upaABj#WZ&2}$+)KxMe~oXkCapz!uGZ2@{F*FAsMu$P3B@F}gTEbRPS*## zQ%p|>K7#u*>%_*)Gu_YJ3C{he+7wOW??~4jv^fBc+D;97_NiR5lx!*H*{#-3*BI&IS{EmFBKx$Db((*ncIbKSVVl zGu1q_<5;|Sf@jS<6HVLm-#zkW_mbCL)jsPE`LVauSf;Mh3D*+GL;SO3$5WVtWFXNB zXok64Vh(@rr54+M?rl)bWZwqo(>wNdmSWb#cbdRa(bJO0xu1@|{|g*j3_o26JeP7W zcnfl(>^HrT-AbY%cOi15p2PEI&3R+L#otG(Lz?_-AlS^aV<@bmlZ1m5Bm z`cbVp^s%FIA$9MTU}tk6gC+-3uu(3O(a)w>Swyh^1$Lt~pnfnAw7y zR!B`Ka>n+~?rUh(4s1~md-(#&HS^=I^UXdTodfwi`FXyKBRX^>FA{w|k{4B1+MJja z&(&W317z?D4N>n(Yc66w<8|i-pzcMGH>{hp(#6|yD_g# z%xiNQ&+PfIbnW-O4mbQ4`>H(Yzwm>cXKPtZ$PnWk?<5BePu$IOBuK@GiT=F zoHN5+7xeAtZ^Kta%$w}yi1s%@W$%R%9)V_8Y{i@i=f8yQh zzlgJBYU_aW(yx=%#OzZSNxJw7^y;{$kGBtREM5w)RV|P6oW^IyJB`In=-y7hxhLuV zllyp9#5>(BQb--7Hs0xMZ!x+#dL#X)T^{dd=MlG0JDcxe*ZIS~7EgC7Coo6$xQu5l zhMtN?jYxc)cevqQaH0hmq(dP$bKda7W!oc4snM3quQavb_FR1_G;juVom|{dp0%e_ z>rH3l5@ZDBQRU9*=MO?Z(cx+srz9`r?xoGag_pZKmPERbh`ofSI3L}s|J((KKGpOranU0tH&yPo8gU| z_4Z1g^Pe)Ngii^Uqlg`ze`Myef%2=+_x| z$DCowX!Z_k$w0pRvz=Hr%_mvQJdp9EXOk;bpSfQb{c0;`)6xK|pPicZ{qsLZrhllH z$tiBZ-j=)qpAGd~lHiqeC*ewj_AfxMq+?|36k4NCr+!XN^6c1)8;Oq*|9BhSF~EhUSXHXn~J)G(&%Lnet05?v6U`?Nu4L%6HDgp%`oo-Ui4 zU@F-DGjh{)z*qY#o!7UeB%w#-s#Ehpdc3t4VgD+Z9;p469Y((C6DqXFK{p#OqI}!N z-JQaXjzZa3ixSVhBRQxSaiTqXViXxcI1!;{Z5!uV?JmN8?C?FDSd6{QB`CiES zHMV@`Lesy#pTxJ{VD0|*XBpebN^GU;YMv zKmTEmzC_&rhE^~4uzN{AYM+GaRUdB40PY97y1(no{d;Gh0G;bqzP}b5d4nKFs$K7;$zMF0@aBqx&bE1pr*7~-E zvwCphAa`gHw2E=c7$-m<*o-&+@wuLOt+gayZ&WnJtIwtw zS;=v8Pra5tovsSzC;LPjG*mKOTj5kUNewrjekv|hV^&ksJo!+*sm18qvg5=Mwh&B4N*+gvYrzVEQ#F9N;8b7Ii$mPUI(VjC^1>J(q*}CSecjGJQ z>jxKJW$y72ZEx}B-Qv@B)89uA8Yd?bgnyqjn=*u_)G);JH+pSi}YEG zb5_^>cji^>J^Lkp`!Na9%U$y9y*o4jWa{$X%KGT!{ZSs49*anx>m#@;9XnxA-@=ikfBS9XNFL_N=b zka?yxj7&VrvmbfS6o>mT|DVtQf|YcIW1Z{Avd=Ymd#rP9ZOvD?GrW1}eBVLe+Q*A{ zrv7y=iS|ISUf_)>ywfw`m1xZOGxN3QJW3zRsSqD({j+q9ybbF!^&u=j79W=F&GKMh z*BD@Q4Wnatd|0-G_pz}i%N%p(gV8bIRUIo;YYv|abY#Kn&LUh{bmGn7w_X7i_fTzm7xjb&iXuAdmtJnnxpY0OD_2$bHoqS z##!Ba1-VApu-o9B`ZoSA&{*1?Li=o5Df{fJDa9`asFT%G_sj`XyX>^V3nX(K%Qkxr z@>(Bk4*T{5>P259TWuA8R?Izeo1a6o?=8!teYrSHjAe2udd%t6H@i4;RDCmt`erfs z)Q*dt?v94(ZpZKt^>XsC3-(I`loaGV9)1jDYf zpn;=cXy;^k+o@UmRfaw(dB@;_>dF8|@{UbSG^?vzYHFhS`XKZpQ|r~2WzGV(vUNel zLxErAq7@4`uiBGCGkR*yEd$Q?17p>llRfIt4C>CYH|sUwL3-6umj}E3gTtH z91-*QRm_uf9^>8dWcL92eOp}x_N&X#4`yP&vU0m$?^tWl{G}hI(*@LEo9>zMQM zc-QW9cf$_x2iD@_K^opG8pqwWu5iM@2OZ>L=4)^bKDwFje(3%GSN^W|{{Az6Kj{5! zY%j>&@AIsOhbY%%6#l*L2GzC`?B41;_8j~1T;sh-Tfyy1UcW8;|10v2uk^mZ4ZrcR z*690=S9{;DpuJ!(ycN!>Pwhh$&-F|&&~w2-?{p?oz+t~|9ysW36(9e7Sm_+-JH5Za zd!O>g*;^ZFo@DwS$asSoZ}5V>f0FGzl%>D+)Ls+6lB9( zoEzbrwoR(JRFwGbT5uFu_%HZ>kijH5;WkU zN_YLh)TCN+v&8pA`^bYdymK3TN_}nzmdPi{ZSAK!RjeOR&soFZVX?Hel_7_QvE5cv zXFMW0(e7k?{I>|U@N>yYHlE$mZr>g!SiCpP-diLcP(EDYozVla!%KdW|0V9xi?~NG zeE*B@4;u@PIP|46eE~XE%~{Yo=9zux%;7kE3tlc8qwjA^5_1_3o-`PJx_NKGz)5Z7 zUX(^k>c?>3tG@pYK3wS^k}bqru%*pX{cydLKCzxW$we1qV-2Pz$#zgj98prW;o%uc z-qjLMw9ebJn73y!_AI-PxqKhnV{*(hF$%}BkNfr|$$_67w(D(Wy>F0DqB~(EA7{tZ zwPFLyt!t;cVFwq^K+dvuy(o6}c5uNVRxgUJT{uzqNqS<`sXfWBS-zMvAh-m9NvTs( zFFnAe z$$ZZ~_6loW#Mnc02G<8SlyP^=o2>l-*519OCytjIh@8QE)j%|L&HjyZw-uX-czz?X zXQxyDB8p8s^myc6o!Q#Kkx6Cw(z)Q1GraHf&V+kzsc?gN&W0(Rvoor!zfASJw}HR*E@k?4cy9xj=ZrxPHMJP~B<`f%vgBFi&L%y4PkQ*iigA{z*8TY!Z#s145_b&vcQ-X* z?nl;}N*rtLsTGrxoLj|<*WPu~;DZYc&`O;mVu zA-wh?crAXu^|lsb`-#r@rPOh0{e7|_t)|YmFXvUWuMW0B zwZDnD9Oq(e3EDekwpWJzxG-;w6A9ew%X9t1viQ)3?&w2hm{38$%O+`j51!U*qFjwI?@*J-=JV*Zu|K z_Q1R38Fqih>`IT<*g8k*2e@YJq?ck>(O5<%=;3RbbG&uhTOZ!{krF?6|Tnp z9kp|WEB1Wgmo>85(8P=09JMANS2UMM*^#&s+s<85;7ZuTl_@Qyoet{`gDU}WrK_D> z32;*QLati3p-JG1a7Oqd+?abReAdGit;;`?XMih$r}#yQ2ct2-Xex16W1yG9*T*iv zFDAPsGIp9+)zS;4i>kJva^aMNU}3Jk(_JPXeBRa$(z>)q4loXT^%PGZr&?ROuWwXh z@tq;}0q`KR*IBUsEq(ZVtv-_Ih1zrK8{M%?G}P~pzm=on?3wKf4KLSum8|aA zJs+gli4b(c&=c%A z9NVy=KMfA)tckySbGS-#V9Yzj-|bnG-DP;RytdrR0W(LUM6iC@aB>uz$*hewIc zr@y)Al|A^R`*kJz4^0#^PoMS}xMMTcTIc+WGa;AO#K&4%Bm5Dq`G3Wq?~`XI{PEA3 z)_W}djJrw<4wY`8eiZA|e6@x$_WZ6(4maGyz6c(&gZ=$bcf(8U=`AN&`nn~m2zsuNUV)ekS3cY!SY{Bg~kxQ)=%;8}wZ%_*(=13a(swoZ+?A?8zCwp^hlyBulIg zTL4aKE+2wtnxpXTWZoNmrPkU}_)2Y^Y>ZKvU0eFD zbv^ZK-J5D-oupsrTb=W8EL4$NY5$|M)nw(%b(q_#T5# z=KMI(l0i3H)M}FgMR-(zkZwbyf48uJ5HOR?wb z-X`}?-!#pg+V!AA%{K0{g}!fG7YcNS@WtwWL&Z7GxqRwm-Ek;8e1&4(2Rc`kqN6$d zU^~9UdAMTnCE%Fuuw8Mgt&b7CJUBV}xk&Rp@Wa+1br!xo_>7t=r)yKtkz8}fW7sTY zBg%)jt{XyJHFBleKgGRECC-p}^3l`~*TnfNw=qn`iP9lMmQSF@hwKi-J;;|@9_9|* zA2Yw_nAZc$r;+(Q_wcmEs@c1azx6x%jP19H->MVjytk}4`V6)w#?x53donsT(%f9@ zY*<_AY|y-XIjETV`E%Nh{oyMo5o7hyl1*#47k9;AbSB0Kz>}Wi&eFz$;2qH0S+_86 z=_o7bHepjzeWVeI^+Q6-Ynl6d*Q2vjyGi5u{VH#$<|66@hn&^X2dmDQLQT#`@kan> z_MqpkbJefY|Mu?SX)gMX$$?zK-KN?4PJmiBR^J(3E`3Kh@9U9sz8L9R$vSK1*n2Kk z)}5GI$(mP&PE5_Bt`KA2aVD_8m$7WzdU2wp%gZ%Gh6v94)!Mqnb5e7N?W`FBKc~KN zbRaq+b{5IAx%Pu`;Dzuo%6OCU*_SvY=gAhm2piD_pWL@;4zL;(8ofL^Al6)yPt4E| zXZcXzRC*{qp{ej2=p{oFHy2_r1CGmpT?_hGQ{7Fe@DTP6c!!y5nD$}rEe>cEq9CxUJh${c5yhRxlV;%wQz<4S4O&8IX}V6f|Hj9oz5EYPBs~R zdnw;N&)+NY?aPkuw_tg$tAkSnY)^O>{n=kf33SVLX-Y~7#S z&RN2n+wgnm>MHM`S882DSeN{{wcvn!cZzp1-{4=4GB@<1j8Fd^^eug(d}Xb@7vE;D zdpzHUy!>VM|GgwXwJ|S$xg}gbwd>neA8gb&++7O26Fs|@|Bw4kI9xwx|F^5&{;W2! zvidE3zEkxEZ45oG3(DVnRQ|j5_sVV-Ogu&1MbTx+Wi`;{Htc5s;A?yWz+gCh0em0t z@azMAzzLhfh}~lh?fsfIO~j0g4v7Bv_9R0K>b(0kkZt_<&^qq;diPl?(<=TnBdZy_ zCZ47sw()Z8v9iU+Icu^x1-K7*4&ysfYT-Ig^RfpVHx>&B&!L4O7d_*g3TQ$H`Hx-L z0IbZWd*HPB=3eUS#lyin z**bl=$hNQ@U%atLaRz+*!f^0TF)OlnN?vP$_cVHP;0jM)TETeLj5iZ{@|kr2I4^!3 z03&01I2h)9Xuhh2p!F!$?HQdj=3dL34|;z``CEF4U6YN&n9VcAej~H|f8_Ra*B!b2 ze;p{>1oi-O`^B$yR*p4KoqOqp4m?dd$Ros0M?9H0;>pCj$Yr+kw6f4S%v1D8&(8AJ z@z26)=P_){m+?$}jiN8XY$<&Uua<1EH9v-WW9Uw0?X54zY^`kwtWRp01^a{SykJul}TNF-~AB zIg75f^0R@yH1?B>y~q38#vl|WzRfe`LTJA}d9S-c`>gqt7F4+ZISpI#H^T25dRy6R z!*77WkBy&VfZI(>^`5KAA!M$5XAd&;c7N?)FOI*6n9UG5ZbPt(gk$_^7IL@2{B& zNk{;Jggcs<1QDWm<0gvDB*8m)3AEbU$|M0q(Y6#@QEW2-R1_^vwWUYf62J>HO6zIW zn)aMB0kyW(RNJfnFet&!I9flD&=kxxNPxkD+uFrbbb6?Nm{C+d< zv`6IQ@ocLXk_$xlWcj}CcXE2QCoZ3{05j2z{P-W4UoUTVX+|zjei@sD z7bhRbACQYHDcu(Bg9_H7zmYhIu^^12bG3m?S#D`yQo|*^U_O+PU9_F-CHaB=$ ze##e{2OY09=Dx>(Lt}VatfZeWUJxV>?w+Pz|LyJ2>_@0`J9}$PKNAmy$s566mC4^L zxyFBQP1@%h9xJRbjfIhU{6P~BMhA5_xpswII(egWe!!l?J`$}}Uan)sm1N(emAfY< zV3%0u_G?`F?Ad9ZxDRk%{I7SP-<-40%OwL`#y-ECeSQUUMIHXD+4v#n#51*hobv^e z72y@SzW_bIB=N=-_-X?_@>JR!!*hwroB)mr2W{-)t)Gd>d>6Wx!uKaxqfGWj{E@kP zWhXdrFSKGO>#BHEZ{K`OJ?(=wY)P`+Tqj?T%U4@mzWP$H96&Bb`uOgF9_J1x*=2Ob za;Fp9W&P&puyq>)(Yn7+;w%AkkgeX?XZQ$|PpAd{Uj>bB0be!WcAZxaj*0CiPNR^$ zraiVB+)S~*9NYy5g~!5S!63u_xDFdui1i2|tAyZ}Rq+0oI+-(LQT*Zp#;39)pi!Fl zH~!Y+%=?%8)_cK8`2A(dt>K-wR}@p2y{d3Tfh z?mV8acb{u`p38FubE|Rpy=dlcc;vAEuy#PrSN64z`+c!7+z~^Zf4rML+g`yRFchpX zAg$dEFA2i0+NUxP#dmPdeELB6!CYj(%Yv&VuZI0*vSI;(qs^c)bmWEbzz!z{Z+K!w zK>D2Z;j8~UiAz?S5&ZZmWY{0UTNKYNo3+aB1fE)F!By~8U9GX|&SQ-wld8UA1+>of z$gJ%r6Q4fS2Piw3g<-GMZ#Eu3k$N10< zAE`m_vvCJbF@B4eI#1lkfz{Krsc+)FL;vLJFSUO0)B7wx zwYi+Kb2xRwH`9x_Z^GGk{=`OjXeV$IuaS;14jY^)R=yD{Q|kPuzRlxLIiXf^-cj zwz#rW#Ki~Ceyz3DI5Y+WEZg||2j%tdfB0|Pl8tgmqKdY>vXY?$cfs?=e^hLT?^R-l z6Uf^4S(~9<8dh`KwR7uY2B+HF4Hkd)|v560K5RurwQFtImBS8w-^llcicK!icjZ_R4Yl9D#XQxFRJf~WVB2xO1`q`P`q_DjbAH3I{XT7MeL0ISN;#3y~<0Rm}e#{U$6AB zHsDf@J~sCi_yf-&^sx~3)|I85U4t7L*RB0+{-y*wo}Ru5{ZM*p3-6j3|2SY_^~Ef@ z1^>yWTkDbSbZ4)pD;{XP02vaSvP-*i@wXp3qv*|v;KEMUI2T9nfj?V%B>X8!jH28Q z%JtF{`p>2(mTt~)=!yCkJyG934u9&!H{HXyi{%<+$ zN)lfNC)Af@YwbDhhojMv8?g@xhc^MUBzw*|yIF;d&-iM%J4N#0ddHV=A!~mTbLHOG zS{u8Vba6iE;(R~&V#MKB7FLe}E7{JY7b}jc*tzG~->(VX&rc4=D&pObPT%BK{xt?^k(6+_K)WFBKvcPa2ol(zDW0r5+hrHeTFl1ir@9lM9QBs zZ>Vx=^ouWN{2zm7TI=P^!I6ug8IpbGz~?Hce}z-u##iFwaQKXHc|LI2-^m?6)D_*G zgdaqHimpZ$KbySe)Sy5p{q)fLXA+}|muyWzEVvLmb< zIwRi9{IYEawSv1#m+)_5hnJq0=g8rrQL;IBv}w;{{`jxS>n z(OjI;IY7-98;iqR1~J|_?(+biJzYxpC0u#M{Z_!Yue;CU*E(P6=bhR*-+iyOxQqSX z&U%L6pY5!pbU4A#@;dS=?Xx^0jpgdQ0K-3&pnj0GU$** zr`wL+%O9oj3J0rS(*3dj6<6*m@h06JYvm$;d@}s$0J>Lo%3QI9arFmIfBtefzJ4q^ z7PkM4#!p|uM-LCb#kjV9qbA+<)fz{R6-;w+_ z+g`JU$Dn55QTk=}sVfitUN%1RO-Xjxk3X%R{|B(s^elUBljIs_T-?hezJ4=*!Yj4w z{Z{S*@xB&dk>a_`^G^r-+=Uvg^Ju30MxJf=#WCckg~r;ulJgxNCt08yUN3xe=qU1l z^auH%+8x}qcfY?5ti(r!pTodM(O5^HaCo_5N3dZw%7$4gKY>GAh+lDJOVK8ewv2OZ z1U9d}bPK~e?1a87Eg&E5!OWAPfv3hK6Q~`=;oQf2^MmS-xHaG-S{|j1o#3Y@L#eFl ztU$JW(cX`P{NhV^IF-9^-$g#~`1g_4^j?RD%RXI_*uYsrNB79#;XcNl%fr3UwXs&~4`%Muctd7nOlL^-?Nq)==F_t`ukpNlop+kY(fDw7`QwEPch3a)+={odQyzOWxu2FH-M4gRg~_ME7V=gjPY zhwsRbKSO>9>`aw&J-y4-zoV`_=3ek_IranH(|a_&F8%8P_`2@&2*cY{US;3reKX@D zhUzo+hI?2O!Kmvv)2h0cf582R$APP~;p1BhzjzsKtn6bZJG3FkPV{of@+0MTlZ{HS z*I6*NX>CVC6X($8*YwWI-;skiZNx=teMMiizJh!9`T|Gx+st?)|FzCjS!dh6&f9W! zoUxa?;}*|88ZOV`9HWC9z(M0>O5@PhZoak<+3;4mp^o7d;oKgK*KbT zB=lQ*6My-f^^9Hctp^s(mWEx?%)Y_iGMQsS)2iHkqkY)I*-7midyk{#5t^6g|MD}I zuIPNeD@XL&5p+J^uA$ZOf6kb+2Y2ip63<7 zcFGMk=_-6tlfGV)uD~Dl|1*~x-MQ2=4)yKrWzFRr<|6pU-$1uShCwE}B8dzmn@B(2 z*}2#=_)YFye!*OHH4 z%*WHocdhfs|8(%PI?9o7;$7BKdW(sk&3fp)4_UbCJ)3K_1UY!sm~ebK_dZ0}3tR9d+z31jF^FY6@4=4I!upFY+=&gh z13EyyTSpf1>8oeiR!3$P9(iRRfBMK}BtL|hGkvEEz>D3)t29AxWk+Ky~k8j@7R0QO&;f_p6G(56r{718<%CxZXa}T1LjX zcP*S4Yxu$4b(?{!@<(j!%^%S}-h+O=Z}tG->fV2Kt+kiI$DRAH)>GE8*E#(Z$&G#-{TQ;|i$iD}d436)cVDq(lG&>1=+QAD?mwszH@lFHHq-E6E z&%K4p=cAZj=@w~xP1?81c~+jLTFQ)JuS)j!^wL#XcVb8%XkUE^JPe&3Il-|NP*!iFG`~?xac86lon1gUev1sCf4cvRLJ>c=aTpsW) z{9%hLVqm{(40m+;eQ&nr9{R`xiK?=aYE$?7?0>@N(WsH?S~a&*0}fo_DeV+jo}t z4di=+#E z@k;Pb@i6k|Dt>}k_)7UKcb52LyDR+ULCkYx2VzaR1GgZN#>bh)x0!}lbYZWSkLzRF zQQlbP!c)A0{JH8Q^{mY+BHRz+yGq@O?-5&Ym@yz{I{8&(D-v$ooO?D0frqQY+ePrA zPGU54mH|6+ul+6;$7B;&2OdUP{4Ls0d+JO5s9p7w$9vHp(Hzkx z(U5=rmi@&Zd0VstA8XK^L(rYWz04sg8bLgc@*KHmCMqMm>&-_14!jE=cII#i`CHs) zr~ip|Ug}@x3p8fg^lxCS|KzvE@G@h-F8%6GXz!z(MYTQ*dp3Hjd>6DYSs5PY_|Krl zuQ;@ry-?0~&wtjA|3Gn@;^DG$%ii5__NUm53LQI_jnh#~r(*c?kZEOCR_tg1`J_)` z(nmHf&9i$ZkxdoLCLEMsK{)nX^iT1sRb$#Vv2UESy8+%i^wE{2e+N&K-NaB&_)Oh7 z#@zN=HNS@k%<2?!xag?blkG)y)uwQ{@TAZBE1sr3>#wLerd|47@cNiBmX1B-==S3Y z><9Tcg0$1*($r**OsF!R-vhd5&+xMjhtWOguGZnO*jd&?_O2-F|L(u6e@xH+`%h(`SgifJT)hZlGPKJ?18Us@PE3459Jl-?#Zb=Q;JQ z@6g&0?LA-Ke$!s_{D}2;Ul4zm7(U^*VV`(D#0X{z@DkqtB+#&Lzl;m~A9-#q#rkUViLo8e|x-gpr_Q~ammE|K}|`FVJW4;Xnq zpmt{;SpT1AGtAvj?To7Ug9Tau_@o%&Ml*X};Z=ec+Oluf$t4ezz*uH)UGc&GK&I$!gGYk#cezB1-v z?~^^0*Ft+%duIV~*##XJzRiV>*Ru|eUm1PH$FuH;_4bsF;qOy<7CKD(M($DkP`ONv zW9t>ZC5amxPHu1QIbSjUcjAl`=aM2fe49TUzjB~)Y&&(C{^!NZiDj%dChjK=stLWu$G+Bi0O6zd z)=}x86VGvo4tjoHEAtFV+)rLh$$pxn=Hku&dpYxMX1oTtX@5({6ns>^P3PTGV`Jl| zeY$qNOXoV-7w54rJXv1l#8*Bm%i|-32knIah<`x?kmY^xk>u~UenM-@*E!dt$-pnO zZaZ8)VO-hBxU$i#|79O#^D2_Ff5zX^k9VS#4e$1>eMB(AC#G@qW#0vJ@g4Z6?3I-D z_}{V0&7z!x2ejqlL9hMh9k(reHiG>@S*>-81NRH#I)|vfrt@CBO3$ACYbx*L7uUN< zJhwV^3gh2@UixO>)yLQ$yPbIIBjrYyZN6W;yMnllKp)PO_a_#^j~tsvT=jssaN{6y zN;~^VcdPsOE&d~1$_HPxFM>hsBbWaW4_yzhZW&7~{T^_Z=chR{_7~2etnFtew|=8K z-o%|_JKtD0avkzt99yOG%pJTR8$D~e3*Bosu~~|16dez;u3gBPlGQz%;R8=eX7|Ux ziZ4vKsBfXjNwM3{vT@fd8DGeu^#fxy_t==~JlTBK1mYp&Az#3^x}($PU1I+_GQMOY z;iF`tao8`^rYGZjwxY#(HV(X#I~v7TvT-!x;zq=!g%i-hM7MsYJ(Po^_wvol;iK=l zcr^k4$FXdeFLUnO~<-Nxa$?2i!nGODoUaNp1z_P?{9T0gCw*40}-Z{5bZ>!tN}=Ig>k zYb)N^pO}R-I$4#@w|s!T^(1WM*hFo7fag1~`FSfeR^(;r{pe>l22E%0sWX=K`(z_` za|H68JcJ$m-(9foLB$$7IMS1Og*C=6c6x00L;3Mr$knAfsXK`YapxCx+tRqY$gSgJ zjuFbhOB92+Jq0aR9%GL#9BKVF<9|^cgz}kmI&sc6k8|uN*qn&L1#c>=JXqw=lv%_? zczBbtyrTDP)n>*r*R2+tHjqmKJjH}k8r}n2Ydd1w6mwR29Ny0?%kD?v+V>D1++2Q z{hi12MeehY=g;+)vvTq$dwbTN!8_q?1ieBytai1o9?mX-4kUMEoSfm7SDh65&Q$Oi z{qSRAA9atNYz?X>-TS#p>;Ki7T*REiE^NatY!#1W$7*9>-(n1&uUNL=PTH+5w(%i% z9oo->g3tott1~|0Af?kwUVw(yi5C5xdZK+hp+&-3;j79L5B;9S)56%E#{%&`eGj|= z@02rKd$0vN#Q}Ui`?(|JnqK(GzCSwg6l0sX9h~dd6x6t;(PqM;}DabwM zjIT3L_$qeR?G4hAGH$Hpzf0q?9~sm+mg}rPCF@^v5Uh2j75( zJGlcD=b1ug5YDEcKk{j1+m?mv;yD|!fn77s@)@0>O|AYyJcZ1j+QOW$_kFT0oK98n ze+jWnKQoSh4POcRrEuQb<37j!Cht&du*6KN2OiMux>5Yc&XG>7$RD3+>Jx9DYSQhO z@cVJ&__UXco;UXSUv1FH9nPK2p;b3SYpBm}*`nE_+Y29_?9iX<$p>#^s6OxL9Y>?H z6R@wZQ|#M#>t7WAXmM$5i%Vl~#Q&XfWe3Sb20hZ_mG{a zzPOitm3rLPe_Jp-?X$Kw$;jltb^371V9(3Nd+jgIPaGLG7mwX!x!Cme0lcT^vq-i{Jm_ z{bs*@gWu8@_5Eu+OFq`Kv*#`er?2PTGrjLD9?j=n+vakuzaX*>l_NS#K#McA;xaYr^so>AQz`gQmaIGcTMz>Cz?p7^Rpju;-PAjgI*i+qkMsC1Tg*SNHt9#cgZ^8_yvSSs&#QGttSAxQnVCuq z(kr3p=VI+w4v4qEmKWPWyiEJo7}v0M54LmOLHB|k+=#t)wn^hBTHQfg=^g#zA1IxZuwqLFh$Ukj%{z>ko+v&7+tN#y0!)aq6fGLt*+ zzck+7nHTF=q_t)(t|c#`=FWbVJg>H-b1vZT+r+7KuAc44@?QLy_G2VRmY+r3tzyaK z8|!G&cnV|ivhA5QBjf3f`7yKdCdaREKKZ|}mt)f{#3wPT@?rY>Br_@=SvegV0nH$m zp?yg>o&TeA9h$LgHnxcaCcO*T?K)`Ef4Psfm}`hfvVH{V7g~=nvfU2kohW->ur!P# zwZ!hdxc2a&z2(RpAM-oC0vkMK+UY}c?w}9x-)VmgGgj&bai-xU$oY(0$PWean@r6nEd`(y?3`xEUJQ zBwU0>EGsaBzQevN^JodW&Sz*1{Uliv<+lD$?XX=>%cyX&?SN+^VyFPcV+$eRdH1Kgb>uzqy`vwbt4v z!i$GY_moJ$=7$~4U3c1J(h0!Lg!Wc8KEC>G?ic$wGd1St({<;f;Oh0jqULAgV0RD{2+8ra3`L9Sn7WKO`=i4y~oP8|D1hjFNnSg4)E~79-eHz&gN)7c?VBLH7iVJt?34;5*^d;FKl+4U| zlU!Hb*UCpUy3$!Q=-2^hnm1N&KjyC8%kXZs|F-DDIiKApl4p1D{W|4q$!aodXR5x%XUyvMsGGdA)2SJW><&s03hZuBHC9_7wHg;V=?5iiD={%A%H zz7apkPXpvyDI^!WDI2VN!}kRI+#4R?{%~Z|r8Vhy=qJj#&(i6fH}xNXrf<4w-4!UP zR4mF)a^7|YirJ$@tX*G+2Nr-MExxMP8;~Drs9!_fInbJ@pf0=XN zujFsN3#F#S{yy>3VK0$aMswH|$m^X$(J5EO&u1Qm%tPm&HJ4`QQpjAo82e7fjxVHl zPMSmR__?nc*cCHo%eS2|{2#`wdK#bVss4Mw;ArFD%=mxA_~-T`=YeQFdqR4G=HskK zv2oU6+pYMkO!riM-&d@da~r>-{UE#C$>0dz2B%q5#lzfb%r{J)xvXcIjfb&uD#YZX z7vrOFa%R~W8J#UtE{H&)@dV|B8x(IWT{lvGe))5i`!@gRVCKEu+kDf0v~56a=Wl(}bVjY~558%VFFS9BzJO~Vvybj=|*Az$34bx8Q&Kb^qF5=_j-F|ZM%GbOB*px2}p4AQ=b9_#mK^IMPXajsuaaSGi zKF3Zo7Cc9h9AGN*29C{L{WmqO>6!R7qkYeYWWQH)jWfreyW~ zTWGgH@+kC){#Wz6opn;5A-+qFZMxh%;42PqZUL62IC*Y!5p%dQoQ@Vn&prJ`HwKNp zJ;8g1UQ~L|jPWF%(f`xLI;6=>_7wMBq=P))s^^W-)-ca0`UbCUE~IM@_o=T(zc^A1 zi{f6qI2O(C^Nh0$x}b4te0{w!Ft&W}nXv`DXU1kUHs*Rhb+JXKzsQ)X`2QvT&*eY3 zx&3br-78J3XH6~veh=}x4LC^-mi$=f(xV07n|zwQtGgaNetxu>xG1msHRV`u1nNWNVMccOq}#uX!pJ zfM-)ibaf2$6NL;WK$B6dyh6_dRP> z&udeCs9m+wiC1Xn_S_q|J4_ya-yW+$+I1CqCQ$R#LeICbg4$ zpx*B*Rz5=b{v6I2Pg8w6f3v6tnMtsF5|~Q1i}qxm4gep~IdsC-KeL8I_>=tT*kmH7 z#x`^j%j|yd7Jd=Sw-LC8!sB8O@lEIW_1&whb`+yq1|AAV`jda>5ny7^_gnwYqrhd? z1=i=e4!L3iu+e?j@?{$G#_3L6(a`Vr3qIt;Ud#VO?272&@Qp<=?|xjhe+#kL!9aLg z*$uwM&EzX*1?mFNtnIp^{PV*V}C-}5DC#?G-u{$cy-RQ(~z<6b9Tc3kr9XYYws5b$k$!x^lQe)_Kq^?ujTYTMt#$U*LNhV?+Ul?1burxm=^99-a9Ic z9D`l%WYg+vSy5MwZjxGJkSmI@wG&5IqH`&ukZJ7MDUDw`$$b9aVGO68?C3a^(BRg0 zXiN4aM`mQN9$|vI5dVa_HM%%1SD%xh{)|c^TeX*&mL~GR#eX#X|4Dlfs$A!DO zcjQ9vZ4LtHF!ZT6hRR1D@>h9x=tc&ITTf)H;(cBCaD*?pxHA7#_7C@OczALn=Ov@8 zp`|^`K0|wM0Czrt_WzYVL@aTuVB!b91!0?$L@|iF_~zsnadAE*dzy>$*S$g--eYDaPIM z-|%++%kQB1UPw+(?c2e8KNhU+Az#ja0;_Vjo$uzfGlh0MSR@Z*Ca)ZN6@L8@mFh#| zKUsT`|JZF?wLdcK6U6}+^OxF{d0OB4@l0-(?I~~=T-ko<|1zeT+&gs-W19AEX7VTK zcPq((ta;x;J>kY!+7wO6r6)`9^O=8Srd&wt~3O3#>z*)GwO3@viXO&%S-5oX#Q2awWpOM{`XYidpDch)I;$exeaORY6 zlNA#tJkWVl$)8qFvgb~lTsu+JwRuNfn|FWOR5{^+7gLsfUNz;w%H|(9$eo+YgQ9(3 zKPEhF5462X=LXSjcWR75bZFX}`&?kL;hi}J`L8c@fn0OSd6hRJ+`5(enH7e!i#}rT zk=v02@<&TvFs**%E?@s}dVXp0mU%P6(;CC!X%~O@Q(#ri`8(sp6V@XujQG;0!_=$g8n+m`}cjZgWUy*_q#l3!?w$SF z4}E44_KhX^=rh=4*A&LP9zw2rsC0ZgzK@TuW-l?jM7k4!2zdci3k|;AxAEe$2w{9D{Ze$)ZrgGqnV{Ns@(&uGw?6rAeb0$8h z6}#gZTJOkdnRFd< z8VXEq&##ed54@M}RpYH4G3nw?(#0L+V>{3|!?|}r_gZV6 z#C!M6*51}V?X}?idBBwQ-DcxKv*$B>VSV=($q!7aSCK!zAkhhrRvQag z!<|*!4TMaI&eB@)Meg~co!xwY8=aH8W2f%I4yitsJH^Jy7dZVxpX)ZBBH!Ghwas07 z$0v1+wU_*=^}QQ7e!{rAfQ@pD*|_-vhu?IP|6x`L*_(YJ-9>TBf=h&Z8?;BJYYo7g zM%J&BHMxS{9=?s|E(qbL@bqoujC#IB(1$G_8JXD8saUKT@rAs%a2r`UtGA3@$G6$n zf1%vl%fhYVW46Afjr#US_uFN?-)y}Xc`yE+U4EO}pW4aBtF!o>3FN)%J14pwU#^q0 zs%KeIyk~_UJ+j!5?-dW-iT??ib^H6!6t8gGIZWzp%1(346P-h&`@9nm{O5a=%QYW8z~W0P z2(7!r#tke)&h{1dkLT&0I@(ab734%y``&#qZ!)Gx{&1VCfbuJ8SG-emQXS3VPn4Oz zRkl5o*hN2jpGUlv%02c&Vm~RP^3OYMjj%Bu(BE%i8+m=})L4XXTN|dw+B(j4au>j( z;>Zw#AECZ4B$PCQ)70FXI!NIW%`l9+uFB%X>MtWu1wjz8`BZ&9wAO8}( zTK;+O3|9pC`}Ky;#SShxF1~ClcM&)GV(6=NU*b=`_z3)W!?yy1+R?kO{G;}RiElZ< zEY8q>7yi7A`e%M0F@}}wG5nX0Nk3q`=~Vd}U8#TUZ89f8FnkZ7D|&G|N;;4P! zqrS_rujJD=@Xv1F>-!-0w}v_Yp8d`1`$N7($OGo}Jr8(!eZR}MDEa&LUp*5!b{0JS zQh54h@u+tW9vh<%`sdk%LXJ)7Vq^iypt{E~&yn5Ak=??;-k6bRhJpQu=n~oS+5zaS z@MRpdE4v@H<0A$@{X4c;%H`sd>|5F^)>b?`ae0UK%Av9Tn>ya_cX+mCb(Xg@aUNww z^CdHj2CI+1Y_r6xgWgVjNF@hjzqQ}*?T1G-&7cU zXdm_-*{GWQrF)~ywE>%nJ<~8GA$!ZyCbKq}kuLAZ<>>N<&V;z{>ayP%)=K^W_5U(* zXr|WJEBi{`_3TgTS2FK68G~bgs=$}XILeS~!MizS^)A0#$TGa=1TAgT+uw5{6qGFvvVTYdCIVZf0ZnYo8HlHf49babri!R2`+>T8m#GINw4J=lyu-Y%w`#?#h#!)}} z)3xu@e+%tOJ}IFs<&~1J$b>0YhVFviy7#SWLJ6d;kZ^{ocU9-LwjO5>wDpkF%A6JRrA%67v>)byzw_bQ-Z#lDUXCuEue*uy zKd|+j*z$%Eu@xQVu}q1vbr>*_0 z8*!YK>QgdOHGRE64h`vB$P{xLprb1~Dq@lRzUYxdD(9F&M}}!Gx*$G}a?$+b;t|UD zZmV`;L!;oiuU}oSY~;x?w_F1aAB!&*Swij9m)l(a6~$H-d7HfaEyxj)gT$McGnP=l znqE2RI@PbFK7RC@YHVHkg|cO-H)%sMh0XOz9vRwbblZPb?PC|p{r-}>?~E4sbQ?J6?Agfp zSa%P+0)FeQ$!OxpGtvu?@m*fgn@8pp-dUN+-o^gzj-ItIv7aw{Hp_pu!vAVB^U=9( zZ;#kBr2!}3z4Dl7&*-lDF~C&$2=ahOJ9KHoSD_!=jV;(KK2LYaL?JfAsrzXM!>dCFyh#J;s@!MR7=G)uW5A0x{%)tOAZJfaG(0W% zugs+X;I~&sZG4O0g0o=kja@L#h3_RUd|TitIq<#DgD-iZ4ufxqb6ui8Uc2Wr7xn4z zL*`$9rg?QMXLd(3|1UC*Y?ut=oytl_X>#@KsFmA#&o{mcE_!XB=E8duJX-Zy-S)gb z0$DKjzG=UAV2k|ZA2x4^a8-CJJiPjs+56e|Dz>jW_KlMxpl6vM`K{ z*_Ev{i?5^Xa`W8wj;7QH;W5bvQ-x+qXleMh5O}nHYiM=wbX)!<$#ax{SGoq}+bJKU zJi5u02FB6_P0_xWT}Wg5D{Ityu3WqoTsm;F>CIPXtPFca5E)kdW`g|D)R&&E`ZfIB z6FvOynh5)~%gL?oVslGvWtMhQ5I( z9(=owJDe_61B;$zHNd(SUx}5C%}U=DW%D>Mh;MVfb6%4;qty6V!~c-$%(dyXxcJh7 zoUgguh_0mmyuG1Z3@sy}Yh7mXIKByvapci#xCeU*4#E8e;66Nj%LeL2o&9TVu{VG} z%KxD;8Dw9LYaw#s2i`mGq}02<`1X`Lc85E@lsmqZH$L#$8=qj(2CRSW_BES6e!{cf zE6=s1Ki+!_+ zm4`NWZ6m+I)&0@ch=-%zfyM#Oy-4Cm=|#%*#Q9BhxPwauI2=^f3Y$q%=d81MJ?B%MoQ%1=KKNngsgICj$a67Fc&L0}?Z}tvTl&Fy*cXL& z;}Wdh05b`HNS$Oq*+13Se(<0rKOC3tar$q_$&hc-if5YZ()--Ib^2=^iZALthm@N$ zdoydC%U!OCM&wlP!CeCNBMZ&)Tm5`xdPi_ARZGY*B5TLzGUhI3%sb1Mng5Ed94xU*VjG zE4g^~$cfk#-px$W`uvc#lbo}c?2zorOwwAP%)4y6=Gj{NVTyYxA+8abH(VKelXHO@ zzxL8Zz8`B}|2O9oQU&%5DseZQ=X3F>(c)2`pE90*WhQ?NPna7p@88&ty#U^;_dGNfVk#jr+{$Bq}7`RnQerCT`vDd@w^`Ltv(Tng+;e^KDMZBK&@t>)m z%_Ak7>id*kJ!|2YlNFb7E%(@}9&s5CjCU89^cRl9Ckk&@zA)W$TNN0&Hv}K}2Xr_E zu73j=#iIuo0G9|n?(-WwD@Uu!{F&#A-DfK^l3$Q_=ko4bz~EH= zXRo(tYZ)$p40X ziw=K-J}$&2-CnGijFQAB$cBQqXv}(KzI@f;+gxP%>$pojxBZuPSUmm-?H>d-=INfb z(ur1)>-&z;@~`{B-2m&+mvvSAd_Hn_L88v(XZfSAieoQ%QudND%(XE!2HDlxN?zSB zf2QIivUC49wmWCvN)NjUm}>8~qjyQBiQ;RNP9q)>Jr!N1`+`<*WpYQYi9Jt#Z|n>2 zJz|E&R=zSYmLYeT^D2MI9`a#-=~!MF3x!9-;N5k}+Yj*) z!8nLcEPM{aM?5$*CdUE;?RmvY*xa_?wK<$B;VF~ri-@J7P4BF%$}FJm$=vfMzM|Ye zy|fLzFq^iup?6xl!_Z1EXO9;HYaE})s54v2%`Jat-8EmuDyY4o*duiR!#d=hyYS1p z{P&6$m!2u6T=?ycTjfW96RPXAb<0yW-$*lb*Xq-U@{LH}l0QQ+NF)n*?`i*W#Paux zF9r6)ww>d|oIaDuJo&VLJU&S7iLLO(UjN=1v4b@y#e%HA&Ji2x-y$4f91SD!MWVk= zA|^Opi z;Ya;<&7k?fSNyM(Tu!pDd;Z`gGPm^H-+^z&-Fp#t@7>7SVjGP$4L0xNTb^@2y7X}7 z5(tcUcDca?4$iyGd<7c4)b>A=-s)~ z%(L#?sU{{K__xZoAbE5yxV)bJ92>(cJ2#vz{Z2IY>?#!`#ZCk?oX=b#-SzzyV5f5dn&aEd zQSivE)1S8Ct*;2LLM^N*vY^^%X1uzu!^=nG`?^2fFu<7~_Pj&$%kHn5{$wv#TyPt9 zFq@lH_jr^h&@Y_366+cBF6O%61ajS@Z+f^n6Wu7gty5`B>%5cpdY1j#p4S2Xl6!r~ zbn^KeXbd>HGDFy^VXkS(!CL~py^Wl$Y`(N+T2MSi`VsKD3;TuS)2RM4KII&ZupZG% z{nMgnhFiJwK2Z;jF28&5_~ttJEwb{uUzygMj7dBC9c@Z}9EpsxWC8XC+7Howi1t~p z#S5{4Mf}fAGXtQ9zu}w~ewpT9gLUN=+SGx} z6tzuk(Xi;G*%-h(j%D>ILUTM*DaJ7FxTbFOvC7a_ zIenE-Mzl$PlCM_5W1aIyS#p+WZeJhqd&pIN!PmKkR_2!dYcA*e!tf=@goWAkEHX9r z1Ud({pC^xWXGw_oC(kDB$s9qKrUqS}sr#u#mx?&ACOeG2+xy~t(x-cES<>IE?YuN` z8g?Sn7oNbrluTHK-ZT!IK}$YotjDxHI0TZ3Wwd!ZLOY_V_(Yt%HAx6+52q8hnU+ONA^JOlZ-B3q3Afex6YH*{d=f< zw&%w=R5(oIjKB+Ja|u8nu^Uu&Q^z;6W}0YYGq5RRZyNS&Fq3)O8;hZ>HvWXy0pQvQ zz6XH2a?+?wH~-t02dr#DIojW@yAvKrv2XJG+qg5<$GNWod0KWrjZx!JoYyzlUqN_t zJMhcq1)GRPPC@@#MwrPd_HYD$n%1bEac2JHkB6OkkmqmgrP!*BlW$G7dF8lO`zP@o z7;N|QtPLZleXk7W@>=8Kk;mWOMb8s{r=S(dQuA~wf7TIY53S?<%v(5j<6o`*mMW-@ zKT4k+=v7)L&e&E;7EpTuVBEyISEG041LHm>Z`wM>AR3abOAmuC`c@5$YYkGsCj4pU zY3-NaQ7#wfC$RP@;T$mW$wn(!ai>fw|FU>zd7k1QIWvH6Tx@g7AnPA?FSw`Q3RbTu zzqW%v*oo-xB5bO;uz7+r{T}Z>ojJ>fuHO@Q{)hW4Sz|P!@O=-Qy0%E6NR@ndhJBU#Fo=e3uOw&T%~wV(Fyizp`&Zx?dsRM zzi>Bn=MHGH@>h33f4uvcboY|zyuFi&Jl@cp=aI=2%dNJqBaWMW?D#K5lZ0P$7V+-5 z?y0NBUd1{W$0J+kK8vE^$VkwzL6NOx&uT0x>y1TieG%VK2fTP5G{TALqCJQ1A;)bZ z$5}V}+@mLO7ZLK8+C+YbwpqKf*KRX0s%keB^^^B3FTQIXcZu!JkFUW#JC<*vL#pr9 zb?)qW>_C ztXyX|vX{NQpGVsFFXL;G|3L9i&RrYC=SNwmBi-BBOxf(ap1gY-Q_KhW^yUD3N&NFD zZL~oX?YxXU-G_wVq&!+Fo0e&F@Y zCwtaj!k=ir{vKfGLK?`>d_?>!}amk3gYN1gKF7RozPFgs9``&{MN75 z#=mt9XZ+#Sy5l+zIQ#hag9Y~9c4AhZQjR@qk95vuI^Vy`ci9}1#H+{`AYZoNY|j)b z&Te=j4?U&DZ*iio!YiU8^)vzl;mMKq*uCtnH@h=W`I&zW`^3-u=d$mWZ(8f^n`r&kUuE6@%f*33 zJnwU#7xJvTA60g}>*H?Z-4ncf{%5jh`CeVYSqqzA+Qu2$7(@I;;DTZ#p-cGQxM!lm zkVDrvdT%@UpfzvgPwRFLGN|Zb7#w*a;E-P_zoq`%)J9(no6~0F^YQ23Y})RazJHi6 z-ciAM17P2YPqPdAX6GgR;nSSWdAzyB$l<4QpXPwt*XHU@x3kTh(ab@<31TSHJ0}v~ zgG{=sR(d&cmf(1~yLS`h`j%hSz%SL#K6t2N^KShd=UW$;R{W8J!`x$1>cGW387cBl z3;uZcT68W*gSpHNMHJ?@#d)z?S}cQ{|?{${%Py{=KX`U$lTJuX;yJJ@c}VgQEcJORpHhk zZOayL7vG}AHPcdoV5LD%YF`mv z`db;OnHEmw#eDaKpFC&)Hv)uCa^bBW#-iU5MKNT&f zz9mY%z^ZV(#svN_H_yC((dRfLL-~e6&Rj06Sn8*a#vpk7xc1YvH=SXgikw~3Dm^Y* z<7eDM5`WmEJnPmkif%C{dN=uZp^N%9?mFV|h%=7DCu@*F3^Ga--aqB^aZ@ah@+Z&_ zOP>LclaIbOt!28IBse#{j$K3g1AVuzFtG*r=d8XtB=H*f{%7o-YLoVQV_5D*zctSK zMz{CwwJQ(bYwN+Oo@JL1|1gtS<|F$QSE94r4xEH5!V`Q6@U=YXKp?U5tO2tdryn=F zCOmLg^7ghc z&(Lk(zW*D<6-1zm5#GOr?t2F`VHI|!J89#eoy~P`cQy}}Zn-Qk-1=4?I-MC+9J+1X zL)$pt*$@m*tI3p2nO7KYoxh>Fb-4+D@1=$H&)!R3la-@qy!JTlSD!L^_J%W#pS^PQ z@Yy=U@(6JEFI==VWb!KWO!4ZFDJrTleT(KhWAs=07M{HHp*(ZTy59vBzY9((9xXJc zCLOx!hHm#R$w9hHQscQN&$K>tFf-*&=Gs(j&WKi+Id?PeqC7KcA>-N0*l%Y(eSJm6 z*nKOtj?(i&jA4u^yrhQltz_NuiK7fGY*<>)7#dA+QKKjS)-S<_m^U*(Q}1Msc^-ZfX% zcb^Bmg*)c~Z{kN=8#VW!iDgV+k^Hd^y?j0M^w2k|rs)1Z;r9sgU;RfJehKzb8MgiE zAifHGx$;R6y>I=V&zi-X;Em;+t?)-*bmFpteluly6hA1m{(;)?w3W0c`+@Gf+Q5GN zJ8>`3-G(_+g{{$AarpZ2U3 zT?}Ir$)<}Da7J`d^fa56s%%S6*&y-MM=P5mE+V^KkKQUjrs!=1dYkt^IKIK;IrLU> zD+{2v%b~Yz3&%M0wjtspM^K-=SV8C1^R3pU-6_u61s9f|^|9K5Hhr1){p6$1S1z`EHu&evQx1>idp3_2zrA$U3lv}XryE=(a!7H`;F}VC&25AC$Mj{ z|Jg^izCdNM>9e{qsC_@5ec!j}2KLTM_Ks*lVBv{N8`v`oa`tpJ@>el!_p`S{ppB?PY&9r@p7A`o9w#aU@o;|V( zT<8moe!~C3{I3T_D|lASLp%5r<@xJ8|A7C(N#Ua(d~9^rB|_l%H+fcUg=CfF zqb1XjW6=LOn_>L1vnxMcyMuQ_=%e!q$JTU|eRo!@oPGBN@b9R5GkI35hBC7#BmJ%! znKV1zTk+kmAupHn*L%+p_Bz=x4RJbE#Ou_vkLt18wGFcVDA~b6rQ9uvZ$fgcaPcqS z&#aXksb}O+M~0N$^x!1$Y5?|U@UfA*x!X&kt&NwTqd4&G_a1V}(EzfHI;UnR? zw?^TSv4*U&|8cCcEu&%^C@cI~Lpg8!19|qX^r!u+{Au|ip>2+idjH?tc++jNe-sdB z>La$auk7`S1C2%TD>)XbRN$eiM7FYlx~cUi0NDrw#B-3;xsns+&*y{ zHNmspbL>N%JG`2S;d%UD8Rz_fa%D=VjwttU{sr+d)LqgsDF%O!|M}C*E82T2{ADqn zO_z?m&$esNYKPC(d8XF$sq_2^Me#?}FKs`N)3)+E$< z;++jsoqkp_wxQIELVEzmErudh7XmyJDYfM+>%sGY4N^{Fe#)zA?bph~^5apT4ikP5gAiNd zKRNb&;NJ%thu?nCk_PgQ3_Yibyr!X8jK{Rkb>nYyzhnqfi zY)kY{4kdd>bCPuzUYQFo=ouJ_oKS=;9LW58`$BW=PXfLLKapHy&*2V9==|};L2Qrs z!=y9s85Zsl9kX#M_6|U`XJ*>AE<#UGTuNcv{1Z%hJ?{O1 zoCA2ZTIVrz&Wbp@nq-wj6TG;;P-8(f5UALFq zIJXAYL3S>;-r($dl5yL?3+7rE3g^eFyX@IZ$%UCf;8kR_`x=<5eB>c>Qp}^LeJHOS zQ=*~!XhSx-PUt7H?{=MK&*Qu3@z0haFXRuk{@5DjN+ee}YZ=KuKRzkAqHb52iBs0e z<@X_H_!^PRL~Ar3$>L`X!xs|no~rWt?v-6|!WZJITai=#6v{`cy3t*ub;2ur*p>5^ z_hDb#{3YT82d>D9ivyY)fqa*N7HO?Ixz9#E z(#Fd_7t@(vwcF*=;&#?^3}tq*o;9hnp_O@+6Inya=N^3z0t4}&^wq}t;m-()6VXG-7|YFyI-O+@ zUdSJ&xrCB^9eFZ*n;tNvebWfE(YSWo!&P~*R8W<`U@dJuS z%rA*=Y&h9jbLX5c{olfPqvR}6S(S;NkG>6TS|$)rMa<&Hj#HfS^C71q;r|-v49Ye-WsB??;5pUK8DMiVeiCx=36?6?$=%Q1`HVLPXg>_Ge097X`^JXT zdfU_3G@e;byZxPZ%?*}EhOtvBo^~U$huZC8J%8~}=5>;p{BXzAnD9MJpU|ti=lS+@ z2l587LAB5zjb*=sw|*zzi`G?mD;yWz)yOJ?v<8FA2r9l^J9KccK zwBNy%?PEvJfH&G$=zpHT`jnf=-^91qvNhoNS4`0Vs>Y}B2q?p@i8amIGPmiSv!Si-Hn!a;i~OjzLpPGG>mlG2^Ho&gdS2^MLy-wz#lwV zzuj*ZRI&Aslc~30LG9x73!^A{Xat%1B*s3Ly015!ctN8jV zg^Pln7^6lK5we(~W#TQ6^mYkZtniyHhPskM9&E(iBjPdXF zGq&~UKay>c-H1265MA0mXMYlLYn;zog`SYz4t9mXlHWYsiMX=QJ#Ai$e;`p#u3O!q z;g#|5YbN(%L>#$R@?$|_IOUF~Ty*QK;pdO)IzkeKF?mf!wrJUxkdH;-g2VGg+gYzlGA81aBEl`SV)f19kNM z?>X-kYmg0#zwjM<++put;oT*?Yj@W|dp5WK3COA9%Wre$G#8FDd3UIfq0abzoimPG z-99z`r}(C|b!0YIW-8f~<)2+)UfqIzvJ)Spa?$O^=k&--Gsw$P+Q}Xh&*AK+>0JCoFmY!?bmV+$7^qQvLGf}%brPd7NgZ`f8RHb+#Wu{ zGn&~G&N+mc#Fg{hdtQM3Hj%jfiNxyFlW)A8{2Ps&L*0n4PUjLESR=(|L^wkbWK86I zX^oVVr=5M>RD^zjtzUOhWH$E<^PXh`(O>U;YW=S+Kvz*LRdyW6hXL|IIR5@T$9FG( zzwXPG-#WdBv*^r!o8)eIw!H#HvExc*3?!OY; zCl{NimZBq%XbRt76(Hvow#(GA@XxpS&E8e`4ZL~<)DwKPCh()yDpRl*zc%ry%HcHB ziAmL3YTbkjt5_>9N37)5uye-NBs52RhG}TxC(N}T_?HESEYe!|fARg1HH`biM|;-R zf43&CwMp`Kw6%Ep<2Ap$c9n|wt&$A6wW81~{{GR#>MW&;#9Ud#;wQ=Lf zPaRve2RHEiKGhM9!*`sVJ6d}WZfEDfO+3}hBcXcd5zDhpd-o{gYNou#qOyw9VT?~| zUZLPH&Q6`rSyel?3mDe|V5{}J7TnODRUNIN_5*rhTI;BB4Pi_=^Wo(tTu+W`(KpE# zs&k}y6jDd|KRyPJv+E|Qt2I|Vi|XQ6PaE!WJV?0+F-*e23V5!K&mZaFi^`RND~e|p zKKR&^qkq=3b_n|KDE9Zk+HiX5F<{c}*l`Yn$$bt?BA+`9CY=?Z4(nQBV#XKhN=0argd(sd;q$GNb@C5Fmgidr^s4@6ErpbHggd!3J*8&{$qaM%DhBF zxvQvBcNQU6R&F^3A1rWxWDe&ps4E-{{m?x_V$O}-${Kn3=j_=d?tIr-E!KD{^OY@2 zFgfrA;vYZ9xg*+Jh>hz*;)irsqRmrBzB*zje*Yx7ZaF*I0KR_oI>V=*nD82?;bwomQy=|smg>RqoFg;ZMtg2r^9rI$2`G@ zH4|Nv4BNBp(Ami)*xT!oL(end#RV2GDk7D!a%A&R>QvrC%dwjYcO;XJ;rC8t(t7rP zCw!x^Cv#uN$uqDxt)j4085bLJ@nwGMdZ2KCAY}*=_ zbYaQe@I~>l!9QUP@@44WcJZ(%ammf-8mgo6jpz*7cLDsW=+J$%Dj&pGE}zs+Xr0Yt zA)06Fc2f7?k^%9})Dgal{;7`q5{lh~{^Elk&c4uDC41&U{XIRz;j5KR$bPFB&jEad zUuN#V1V<0}i(?OU=En|@L$wX)?RJ6!#_wdh2JEPmG)`VHRgSTEk5Nh zA?}78pI2hzdu@1ZKF{XKYtAAjyi&S3XD%wWKG=3EBg4#Ut)b)!%|p7%=iPOZe&URu zHnldAStG8@?CA=#nA;Nh8}G1ZU$-!aalF&oX`h=^VXQh}aYnc#ya9i(;SN8{ejyyu zn7lCvheE7(P3qj(898`^Y}7j*lQW(P@X9+*xGG*t|Bb03$PJ~AzsR!{Oxb1c_S1bN z%E@-1aVGq87P%fSjh~3TAy`E_{jp~51AdHW4~7ox7`I@jJtf$AFx$G?+Xs6-y!5h@2szvPfdF( z7as4Bd%>aW$oGmZ`{_$PYl|31Zn+z{=Oeq^!<0LLauJtTMqFNb3iq7ba=IV<|8e&2 z@ln@T{{Q~V!cC*AfR}_z=lgtpWnbiM1%4zLPes>@5 zA}8O);a$PI@9{1fFT$bDvLwq6@!g*vPu}00@?Xl%E}8g2tr`0feB2 zcD4DXGhpvY*eqtS7DKCZPtt0_F5&1JgM61=!uGe-%I^}_!=3Svt6^2A|8wEJ=sFsY z#m*twF6%Ac0SLuL(g8vhLJe4eRxOwo*&WKyZrCq zvk!lp^2mNMK{F@!mgpKY;bTKiI_=kfFs3tu#Kc1DU*>%FeWMsMIbe+Q_1em-p)Dig&RevhUOX z|H}WI0kr=g<^Bd@o$degiN`>`*#B$)!2jh%=v}HapO}MO=3D>AeRo@JJw@N0Kk_=2 zS(*Ns&9qUC9?5v?uLQ;pVnjXLeO=QPe@AQ=XNByz%9QOTUH86VpCxSlsfQR;;*DJV zrWs@(^{*%X-bK9tbv(#Xi}ya>hmdpZ%?5bCvzZ*y(w7FwCwU$|QaAB^9?E~?n)A9= zQf7$rcTMRV)~%RhHqAaB+^sv5yG`l{wiLT<4`t*Rx=%V7eGf8!^np%E&Rm|=whvrd z>1L+>M;?~76Zf(p|GK5c>2*tA2FB8?$o#FWM^WTqz<6rSaw_Aju~GOIfpXQjp=7@aJ-qB?4O+mtm~=MPRw^dKFpgJ-MxDQ^>22ibshBh z2hyg!Sa5*+XpFBlLM*H1KFEG~{UlS~m}A0ev{}Mj7tir;IzT+H;u3p>fA}uoeX+o0 z6^{>?w6Ybsrb2MM1D|!!2Y2Fi71Ms8^reCT@#UT5+}V$vqxe{?ya~I8q1_ee-N3xd z4Sg754Qq(EX7ptKu(fcIe?j;Av0&vy*iVr<#Vuomb0sk)qzHXP*LLP&i&`sSvw5R@7 z+;aDB3-~TvkI&sTF{7FOgj4yk9pANqRs=_pf!4=j^=|P8ZD>5r>=`-~f35!LLu1kS ziol)P-;d3rlrg6>pG6k2Nyu{SEa6o2n?Ynu+V&Y;FPW5Dk8n?!Ch!bhl@-GW3&3ZL zI19D2=#?2=jo_u2zCFYPvQHS$Jbs2VE=~09@E&s5=Di4VcMk1o4<`Pb1OL7MVXQ*A zUf2_;%pnhZ_cY)LGWQ2eYHbQI2w&27Qra3fb$WkYupSufSj0A;=4vN2^K%P$G)G1B z|IT}yJp~tQ%<1 z{hv9myFugo$KY?XvY(@mk6fl!Yn#fcj#Jhtr}vZSSMLpUr*@og$om}Sj(6nyiDl0d z|6_jlQ)JK8>89?bkY&rDYZ!kVKeA)G*jIbXUfX_irS{#j1ye9dfVuksRL}T<)%6{x$iQuB zdv4xjbFx*YaMogIY;oi@Z1YLL0~B{sWv>1FYjB|alCoAFWt)M^;os{=zn0cfQ7Zio|i=*#47%h zn1f?WuI&30{|lE}`IX*FZr=*g8-lI%ZRjNZgS&To;3|^ z#N_R4Pr+WqdKM{t(ax*>1pSVnPsG|xYdW^B@yIyj#jfkDl-gR>p_y$rZ<^tIu^`pr z+(O&*O$Wf?dDC7gXt&aAeM9+f4P$WDajoB((40+6z<*-dz{%V>?DfkUkGl#7Z#4tT zKNUjGh)1;lM_&BSK$nfkfDfeX{;d&K{{RtwGc7@!Ry;?M`dC zfA@U_MV8ePMXo$aE=J8^Q3~rd&pPk29er>i>)vCG^&8{@2KT#)uPwIc?*#)rPwZLu z0&7SoINJxGH=s+^K*uj&3tI>+_kz<#Xm{a`X4Xb?&V5^qED4^W4VD=;YqF4e7+88+XfwFLxL8 z8h3_pWK0U@bxbXNF{VPBpV39ue1|bezH!EMZUKMfXHo7+dp+uQPi!H_OW7m4R~J+x ziz3iJzpcT7E0^}NZ?3+Sd1hVh0pAw*_9BytL!R(u=xbl$?}psS{P`t&3Yr+3a>x@e zQ#Q<*f_QF=yngnuYY2iZTfle8a`Cw2LF0~6o5vS`C!TE{_a@e~AUwX>HN`%k5=7>` zflp@;f0`}dIrAc3lY9!2_gXjj3h(eKARlwf0^l;Add9n_-~-P4$zH$l?%?i? zcl&>_aeQR0?gpvm++zpwq>Z&NSiGk|cWFR>IS2R^jmO;9&V|=??ZQ6&wCvLhbDurz z}X~$fri+lRF`wI*?Bd#$(H;zzpt(_lC$VgPs?r|C^ccfN!u}uFD}`BPC53piTuXw%OxiSpO1B1 zFxE^ol_|iufp#~fr(~pfQfif#aj4dWe@Z#UFx;!LEdS{`@us1iJKbcg^tfyBxt29E z-jd_2fvg1wfv4VBJEGu8el}mv3F1HuI>^K>DJ*6l~v>!kmc>7I=B^e=dv{evhi|90zL;e2QIZ5 z&I3<^b5HlD!wFw~BAki7Yn{H=vxcgFH*@*_wf`m9M4tl&$^V zBX=A;?FGLoUN-eU{BexQ9mVvk60I(5Upsk=GuvyULd@Zze{+PuGz~NPvRv`PpfP{IcIN@>1hl4ui}~& z2dy)ZcI-5;$Lat7KOK$zv(0;P{L^Q$jA%smt4~`-B*kF+S@+aGcM9FI1^x`Me(hyl z>qH+cVV!LDzEFV7uG@k?xhE^~r!CyS!uhaT*|~hi)cVq2DDd)~_}TJ{(P`z!6W$t4 z%J>bXFRZNwzs1a*51rZ?}gJm%P^e$hkDYtu2l{l_i7jN z8Q%)^gVb-PelzrQyx+0Tui)<$wz;$O^R$V80 zne@_?Pp>5J06rsZ63v;B0=@IiVC;{toUeA+w`AD(pnc`cIIVroe`&tDk56cQ9NJS~ zor%5%(Zki3_ESB}*&ES^$8=&_NU2?!xviiXUD3xKx9Xz=UD4@7cUL*%MxU&c-PP<_ zxT$%$cU|-AH|*Z?Dc?K!zLM{1_btjOM-uT#W$4VSHn2vXSeDv%0@^1>$G}+2_`WI= znQwvfDs;so^U^r8lCGTkWfz0L^;)McjIUF&^G9a4yMT`;tY=<7e3FEArw5NH~ zSC&_-+xXWTcK5LNi{hKwG8tQ)a$XS2&fcW1XqDBv=sNZg8UBH&+x#MUEB^6jH!^Et z8L?yNkdy2)cgT~uFLB=;x_Vj2*3~E3y85e}n~k2&dGeKC8(H$(th%M>?aP;tPi}%4 z@KeW3ByUA7wle5geMtWTZtS~L%7W<8rId+I@DF@vwi#WC%|m;DpV5zHa_#+xo{K4? z^SQm)n1blV*iu?{KutLClVu8*3pWe6q|W)$oO<>z9LA+$4 zkId{r&Uuk<4qSrQflE0FoPHYVr<#5m!L|DN0J*TyWz{w@zfIrH!p3f8d?oW$#$$3E zn(lZLUjlGzP6f{dU~t-V;I(HR+`%&=vRjnz= z+GsVggg$%kg}!z3KWndwO$>8^HBV=){5Ta{8iX59(WhJ zNTzw_W$xePZz}T7JRrY|CvH=`dA5HvW(r1{l#?g@wYAoxlh+Lz=AHhu57-D#o5cH$ zSnOHxS`T~2DEs~>=e(fTLn~dAYR%OAFKU14W!?mvcyS*zAwCyeW=8MX;yvx-g0s!> zUjv`$nAigN*9t!YKNgw1kzVCPyAauNHTT$~Ux_y@-faMmQFJ8kglP2>vn*Z<;!ll& zU*Z(X4g$+M#%ITm{lS{ay(DGNBA3N$HZ37PbO-D3yg2`e@8GL4TVB9tJLrFqvO##s z#d=u+-SlR%)|6?zi_0^;uLf@x=U==TbC!M+K5bq;rO@JD8|bHM4&Q^&r5iujky>)m zC3HUR#r%A4viD=|vH*IYKi!o9Eur_h$_#72H)%f>*PE5ECAa@S9zC(fZF0NB*Wz*U zw)i}qvH4tPqj*(%G4G!hPXyr!@5|rc6}jN4!;#PY*Wu7--#r}cG^37OP|gW#%C#!{ z2in+6{SN#_gHp9MWs zLklyY1LZ6d&dto;vkx}=Ply&Y=TUM7O(f^icP*Nq(Qd_nhY7WS`nc`_vD&u6TSE`L>Z z#I$%c= z2=80a4cPa5jK40Ttj7Gm;YRon9vr;tobH*tsd#9uRaKiGa+|JmWk z)`jM3o%v5_S~{L|J3ap$&!1Y4e9~Kg60i3(<%oOO*>3JSd`ka3{l1HdUe1}3UqG>G zgY0i~W`DJ-qu?Xt&#@)r?40bz_^W=3F3R~$#og`F{=4XB$XU+f$zEFYEV2-PZV@yZ z;rAf;yA@h%CNHw?N&8y9sqj)RT4cZ*cdDanzvIp;1NQ^Q|H#}~Jo}eCaog+I%X9c& zI$f;YHIq8K#!()-Y)&WN46(%HSm)YZ=_BT%`lbHTc%NI)@n_<{!-p3>2yDjU&NFCW z3;QIMUGGDGOYv8+7prSvpE3@)UF@;y8W!MFpT_^4Rvmk^x`svU*DmTrpUG><@S6I! z+~dkD`p@9+Z2nyQJpvqR8y>RTeh*#~EMD}tOxi!hbN4i2XNWV5x--k(#?GwWN$?ZbkImj+rS{df;Lim9 z?uFbx#hJQH;5WeEz1Xy7Ui3&ox0TmY%Xy~X!Pn~lkUOi)d#_cO^$*;I#u&}#A1M$_ z_oENh6q<^zsiwR^c5Q21#&thmTi|A##*D9p#|GZOcU+q9UkYv3TiBa@@Lb$hkkjC|Y+0+Z1c|j=k8e$S#8}HUgfxV9 zO+G%k{|?qE@oJ9?{gSgrcAnBR_VFDT#`p0NGHe{>2%s({S0g0`Y=)1sORoi*N0ocy8+k)(Wks z(G1tjOBmbGw)j0rjrbyb(UdTn)#`Vl#Sn4H2f?fQS8Sa<9}}%s%GtD40(|nHwYxG$ zbVi{02)+U4urZ4~FLzmmo9X95^TPtYD>hl#-sPsS@d~RDI;hot=O3ZP>g`#d`q&qsUG z4OQMX>+FZzvqHWY{+FJ57WzPb|0dq;7>-rI6WAg`bG_7a`gi(%fwqgm4`)vn+LWA@yx1o@1ZzwLT^?O#ZZ&I654z8V z@LmiVID>eY?H=$AJ9owB}`~m!f@46?{ zb{veAM;W(xQ|pzzP6;1YdW-gp$|a~hz#w-+IQ=+n*C3ZWfD_-e-Tn;wIZh`lc>lKW z%edYhHz7lH1>2WA6Efc2V(R{f_sMYKSmXRvo2cuB9&1cosQ&VxF=EE@e4`Vx)wcJ7FFd2M zE$5wJaj!kG#(_`I?9w60s;@{*?{t7yxVpL?uwa+rJ*YM0Vs|`NSj`4owA}Z@4#+`P%0w#Bd zkG)s$5yiUd49}!4Y+U3g!e@JU!U;{RgtK|xm1~<0-^KpTGvbGb zI%xL;_Wn^|lZ^V&Z;9ohkK~v&*4tg*Nt9!~d$!}dfxf_dckRvwSITKZy&V0<;d$PU zXE=uKy3orW$c7~zBc$^Z^6wKHRE91Je=2u{r|i$z7$(hNzVm_CJ*oDN(pL*|ZvbEH zX)arS_d{;=R(Wlok8#Nx` zTlDxzV^VqAn|n4mn1o*Yl4#0RP`d?KQ=v)d$)?9?dzwb4G3SqyYfyKLY=GxF!Mk_a zg3%zbmnU2OuhSKff?I)a{m9Fdl6k_ zqQ&@mDpwgc2J9J%3ya^0%6@JP`d!@vA98N5>=MN^gG2F56nG84qMJcrzIe~KM;|g~ zlyHJst-Gl_T1~}-(2a<%(1?}ZzU;brJ4w#~D1Bqfw{E&8?cV!!S7;Qxu|TYGClh;d+NK6SDdO;D-Ie zgM0I`$&qmuXOz}8TYV>Hb1xKd>?QZ2hp|e}iy{w(x398&xi$1@pQ%hc z-DclGyC;^_u>UbOUhsFLPvYaFuIA<*cye!^nfYQ7`vKs;5WIqoD9_LYmfI8RrG?>;+};~%)4 zwnI7OC#PIBej#kB^^e)IBd>pj=FaVU!&Nu}zeCrB{g+e!2=zC+j2+i0`5*Tg<@XC7&yhPt=yD zpHN?I>zm}De7vG5)f+$EtbUzm>1$hK-E*~G#B~L$-v_;G?WkC8&D-p9wQOfU>mpaY z#(BpCQ{IVw=0#?P_5?Q-;R6owz45EW*0Ut3(eF~|0%}3qhrq< zo0^Ef-<(NZ>>>-PtG0R`T@+eXHVQh;UxiT*uI`LOW6)Td7_*PF;G4k%255UM zjH69sSkG82#&soSLimM+bHjK{){hGeb*iZ|6W(uRT;zLhTX@E}{*is%|E<3#fk*b) zpPXk_YfgmUVQ5417Gi&BkV)`;nEmcpBjeEAHB!zPYlm?9GJQAEH}WyZ3%-TB*^7Le zG=IXSXxuq}p?)4s^rJaaUz#7yo94=yr-S54kvvuTRh0iR@W_9y=OsLE=UMHtu8>0^ z(C71KvF>hra;o+{*tA2mDS8xLCe!5ooO{$c#CX2R-2NbKJn|}o-$Ktc^X%X(?qMiJKP*BolW;%N{1y6~%h zSL_Ln(ify`CN}-~l2Pd`0p^W&&uTB%NUmT#S5Y3hyAk?<=G`qd$RM?CfLD6X%3}OC z*ddtz_rN!2F3#0n+sWRc#~bn!VcU=$S+bS$6}v{k_Z`c=Gdcx%XSazQ ziME)55IER^Pq7*suw+H>UVk5RGSXw`U`D5fwnXR3t5u9V3qI)YQ$6N(N40pH{8-{` z7xbZZWHb57RlXOSXY5w)2W3o?88@_(-3`skXDL3NL%Rzo=g68zt53|cG>o&n}Y1m;r~r4Q^PtdzR-H2^(e^N?_!Sjy-sW$d?UJ19J51@&U^*Y zk2R-L&^bhZ;tO)BukjO)wGtf1&u--Q|I0M9+V=VCJO966^Nr4R5P!(?QwhHL7XPD% z>AcU_0`%+mfmJw*AXkL5nuJ{GW$rakq75JOj*g=H8V|h*?le!D`|`xR54V5|U^K+f zAU86++eE_8r6yylu6X zru&!n;#Yo)J%QS}7kk+~_zv##SatVzT6J%fn$~Nvea0rne~Tu?eF{BUhBFo8MkEV8 z%g4{_-eX$5>4Bw&vP~wwSLuG(YDHGm->?2(H?7;jTlcT<74aLQpK4Mde)>WtK#w`vCn=6j-<5y7 zJ8HFxx7ClAeoph5FfRGTyo|Mo{}%y|d?(l#s?<-1-~tEItvftcT{UGS=Q=2_{|_?W z4$32^YC-J}Jf^tUp^Lr0=(Nvi`KBetp1kOI`}?5GsaWRyms(Ex}3e{$oB4Ayr6PAaGwWUGl2PgV2zcUR_QyM zKmE4zyB&R@6It?NR!UiSmN}%k>}4*iUq@zRN4G+qa|7pKpIg28HjTqOgV{AH84n0H z{5d`JZxZ;F{w11HxemS)s~CRs#O53-OpJl2#mu?-UZlBaEJfTWlg|IW8qfRCEBF;H z_dz!`qt?I(6<2fyc0Ms^3S z^RhS0IhkwdEcVK7^!Bs+>fxaeZknL|BsRV*`wZX;-VNPsY`OnFd+8q$^RU@vwWcGl zHm`v8f%6V*KxV39Ld?i8e5U<@_|@ml4!=x%#o3Ix_g>}_?n`yD+OdmFII#?Xx}65#CZ!|d@!g(v#o{5NC-e&C)Q ztIkqCdzo)+CPn;?qrbPm$hvW7(Y$C$yp8`x_C~DHOTJfRD&EJQu=#IR>jT(~w%9V1 z+=`TYs}wnE?*Xiq#k4g@8;#hqMk)Uc^J|ZvGqoqj?9U4?V$51gg;&vJAOH8-zN2wr z-wnaGpfOq2lRj+dMX#N#=gkk#r(U<(WKNXVQ1G_9%%RRH{-u8IOc-m)?i&N&q4D4v z+1WeY)E~um&@K=BKDcN{hA{U6R3gS7Lyt!es`h@i3GH)sO$Abrb^Z9ebM;{_qy(H;fPj2`F z-bIR&-gzg6-_yJElir0UhDUhk92;9rwsQFpWyfCJUv6i|% z;q2H$(&3++dogo#2lG4co!GPM&#l>Q_Z>Og&MP5!>f4$}9e5sg`S1KEV9H-sG!HE( zOgnX}pH|M}N06`rH_#o_ZI!;7(NkGehmA^gUFrvITe2l1_%p+D{lcwb!$NQWDYdCRvyR=@d|oWqE+e^zWU?W4z3^biB`YuZC6ba-`@ zuV+&DF2=l7`jx#;ozy>6jGl&WSwn-Gd)99enk; zOvbF}xy#$Uu;Dz-yo)a>!U-nOQ!d(r>y69N!(xEi=-R#??r!Pi+4iiIK zgPtB_4>CwwqvQg78<@p28V7MTs}*Z4p6Ov9DE`3bwDcC%kvoxtf^qD$F_8ZhIENE? zwg$=7;xn_Lk%Imhycdt#p3?seWx7+biJ<$vKODP6Jav*5BiZ3Ra30AzMT_FSui3b@ z*Sb}{V0QRy%6tT@L-)ydK>qd4!0!3H^K!1!kx@bHKjK;WT4sTZGjaMr5>6%Sgx4W= zp{?UD#SUu2i@#Uxvsqr#Js#O%ubX-Oq7l)@+r%#l{@>GwWU=}iPRL;wv>$->8}_1G zzJ@+lx^?Z)t7(@Mn~6Ibki&~umsH;S339ma_p$m9X*01#tnx*2!aM0pI-J%5$=tgh zJh4V|;`_7K-Q50Z&>j1q3dyz5pMYC(;7_p%?o`OD$>46bAN)Y}z7}hDtlnSfuZnP| zSRr^(n{?0-n@`^`_MJead)jm zZ*2dj)fz-!DFJ`?vBwgv^l*;Sm`yq8W-b54x~ugcy~;k%I*eQ`rVS@IQw=(ud=^LM z1^N`@tFwjLJM_X+8kZwuqxo^Z?_qq-I^ji5q6?9O4qp{z#peP3h)bRMJ?2Pzf4!du zZiFkHg_O;T^D**u?%K46`NifVIT6S8r2YwpwJ~Ay+D-Xh$!7Mu-=cqwZLe?)9&Ngh zSmDnyXOeHPhvidqC*kl^-bCu5+h*FnlChSv`mp2oTfkxaims0PicXFbdAotWYTV$0 zb)fSu?A_nK_FX2lyq3JcUPWn|QUEe9ItnEE}HsjAGaN z0G+Fdxkp~rhbXV-D7F{kp21~2C!uJ<1x;WtEQ=8DehfLQb`>M4^B2K1{--^||BcY3 zWUs#UkiSnb%YGID|2axg-Z$lYQ@;<cFLg`j8ATp=_UM5b#zL(G+8GqAy~i4cb)9BPbl{N?q}N*d?w^nGMh_6rA|i6>?6 z_bI0{XdO1K=9ayfXI2aTdwHj^+VchueB{~*W`J|ygMH_R^zVi~^xP}^rsjkHYxIAj z9KN&q<_zi8x{ED7ufxzG=OmO1*&au6VqPXB!FvtxK0|(`lXK2I6Gv^IYiee$XA{4x zc7o_J;hrR}4cd`sh-iid@+$?G??652_?CYoEw z{P_>ZE>(<&Vw{fU`p1sZ7kZ%m+yNghhIw}h&%%EyYflIrROLl8DkC0S#CRgQE19|*XKFU$7hMx8y3i-l$t}{k_QmO>iM9p9J)-3V|NbZATtZxDGM)I?@5XJOiE&5s z!@sAFGwyQ|IQlp0Di5RZ6$DP_dlm0|;6!7ofzBrC89S2x2QOob>^crkr-c6_sqIw0 zIkNQTRj2&p%9ZS#CI6^7MX^Zz-?2JR$^zx0kevVECQsi7B_{kKc9*f1RAfCd3CMD- zd72~mdl$O(*o~}*RU=oAneqpY(|+l}DUqMbq7Fd~nko>@-*6OSlSKOZ#j`5xwa^Ks~jIaORk`%!o6Z+O2KdX&x4X>%C*aA4WY zUO7Map@JdSHo@S;-PDjLRBM~!la9>04mfMU?H7nOiJu8odn1fhzlsw*==Su#VLT)0 z=zp@c3%2RJ@0{4VR%P_JGP9ev$8OznWDxY3LC+TJ${5-$L-&l)( z3_Up8!AmClK;h+H>}!%K`aZ_5gJ;FkhKOlsB&MMOyPIKLD_r=F8OuuiVTxza_yxy} z^dp)5279Odyc7Lei?Ep)Y%Ol9O!}?zeOgarw_+T23o5c9hxcndjupg-Lc zq4GLA?!;&54l?53`kgt8-{WSLxx{<4qdPZ#MBLIw>=I)w8GRd9V6Rz{*=N&K;-1V) zumuRNDel>Q#Gj2Uu0^&;H+#c z3(Guto8l-#E%eVhKz;KrWDTcXwWqef!WxLv9{sPd|Fa*&*4%iLsW^hoM&sGXoeIav zIoktY6hZsJ*`|JmAKCgOe8B%Yt0dXCo_Q-YPv=}ppTmqXNO}2~RfjPuzgk$nYJGE` z@9(=Gf8~|d)Y@k5NZ$;dzSCjqbrwi84Uf(Zat>}L@xqV2609u3wtIgGeJ#hHSSq;1_OddJj++CGFII%|W z?Q`O0GVk)bF65o`4Rc@IuWjzcE>0QAFBko-fJW56eA_xRqdD%u=io(8)OvD(mONo9Twn7KZ2dXBh3xP_Kj3O&y!^znC10cs{HR(dJg=hn zUXQK@?+qsSi(7kxSnlz|uFQ#e%rl5r2! za`vl%Gv`S-_DwX|l94@MApQ#cN=CZDuVm!z&zp+l?5Fb_9K&yo>|wpyZybb9z6!1% zw_2NYUb<~cjwdUy^fBnLl;7S3al9PW_-xx;e!pbJ6g2ScGwd1NcOQ<}&vzd-_VZnbhg|x8 z*Wm!qh0uq!ay;jfbIV)}+6(0OPtEWT2p{Ad;yk(;xIV?K?tynx*aHYx`^g`{Id#rE z0@vg0uU2wa9h~S}+Pd*G^Js^7;7_O53*z+J%h@#bN1W@}HSqgBa4UK}PTitMkvZ(u z7MpQhMXOD#pjZoC}kaA}7Z`oTB*L=84pcRcr| z)8A_P^I~t1ylUpmvHAeO3ZiV>Saz5?ZPj(!U=Y^D=DA23{y8R)qaXZ38ywK75P%?&7=TZ6om_l1G}`dzc$%?85gx zaD9ODfAx$%ILo%t|4uX^8*CT6?EUXp`BT&}$PB}}BAsAZ@nqE1JtFOHcgs5$GfMcC zeZz>iE-nLSC&r~%7Hg%(ACHlH;LGuGdx7mH;(rADkr!g+OVr1crmn9D-ZJBE3B7!Z zMkM3^K;GP0ujsC%r|tFqBhGL^w>E#E&$b?IE1I_;qh_gvts#(S+oM>|^ZU=$xX{5h zCsngdHZ(q<@^Stl5A62KD@|5+fqdX9W75+yiX)eIf!j^fS^u2=Lf~Au6b{Qp-}rib zFP$EL@POn$vN-r+to-B};w=hSfyXFgyoq{}ak33tarrh9x$5+}UI8s>ef%x9)b-#{ z_H|;)Y`tM5@lJY%^KL)y4BzJnf8R{-7O^Oz`Wc!>qN&nWLq& zp}Ns>(LC|d;5%^PDcWm4j4pz$La_Q0w0AGKTM2zGrhE;w*JBDYjNfESzNAx*fC5{- zS$sDypSNk;%O#cK<#y!DNtr`@`3m}(4Xr$SF|p5-btk?TiJrlo4|$`xvGFzQ*-(Bk@+y~AO9#U~DLs4` z+LFF2eJp~WDIV}YB|B4oKYXz2u?eBMzDO$hn9SI>;m2XdW1bK%hjM-l4yC_%(NChZ zqjg)ljC8?S#CsOeCyA`;9sLATDnjEuQ z@I{eV()%-^UyHiS6#s}EgC=bqj&&nj`i5|YPx@oDby9vQzWDt3ch(BYuQpqL{d25* zHsdH#yb^sB{mg2uSxamIbZzS)>^uFU5#S5qcd>3ISM8;vm--$_k`s}s;S0e{&-z$- z9c`&k;z>p#fkc0rD|p7u`V~bNBd)m84SnUVBNsd6h3gu{t6=v#hj!NRPBK|~sX@;a z?R21*TC~xj^$Oke-lQ`AIiFlcx|oA2;YfCHM<45b=9Kg6|xAFJA3aEsy;pv(9=7c30# z1dq`*vGOCpaq9il@DAR4c~6|WjmtrB@9_~^Y~Jf&9S*P_`?8F3 z6&!kUTO3bb;RtzmE4(K;=;$>o5_-+P3Fvi&{((m)oYFNegRh0ZWc}s`z*9AW{Ur3| z@P#8kx4Mv@$Q(ykbY!1@PaFnl%CS-=@%#j)G)X^SAZHX6&=WRLv*Z9b3_lWSo z+&W`Wtl<5~6yF4YRSDyhTu~jx36>;iARXPNiu`O^&t{=(UVIK~1w0)rHWi`;$pq0u zrq({zt>ef6tsM>S!j>-(r)^r$n=c!^v>SPF-H#ayG^BFmRhp=FwjfJ;pcCrdLt^|6Poqpavuyto*< zpXg%$F=R-mX+4H+BimH45S?`@@&x%2LhhWTP4CojDf8xE5i7rncBV6455Iz6`kD80 zit7o@T_^rdtodHn0MVSYW^Q9`En#hRz6X)9$={_DXsw4{$Xj-bmalm#R)0OXRbL(8 z%Fo{TG+celWGgPf8QbR>+d9V84F79BpXYylyMXsvKP9L2d?U}#+#V}G#CPZ2EZ*hv z?(IaKBA$N&&1jC@^xqhW%Wdf& zKVH8*39ioqhuSLve!*_h#wfndJbOH{BjxwM&vT~zy}B zc@oflP<#vB7ndd7e1B$Z+}|_@n8bUb?c}|92H!4q+~CcH{&79_Ji|E$t&1JOSotjG z*qN^$^0Fk4?=fVs#{W~wID7MR61=4Rih@}&Bg4cl`Z5bM_Q9uGQ=0jc9B4$2NX~5M z9_RhUf$itrGRi%)o;`wS`o9EkVVQLFckTH?htd2nU+ZZ%54qsTrmrD;9N8uL(6~On zul7n$X3p-R?-YAoD6gDi?}4Vo_iyLL$K*whRWGWt_dsr22PSV3c&W39JA01xO+G*1 z!_Hb&{W$gp_TvUV(mR`8ua4VA*q41wXQA$Z*=X;3`XpNnYmxS#-tASJesdJLD?Ng~ zu47zUkKf~7re|)5m6J>C6z%xW4UcC&O+&2w0^X~<=G$36$kjKnpZz0y$T9M_2DhyT2SO-$gsDZF5_J z!^;|UrYw$P$1P#bWaE_$Xe#=vWSU~53*jm8mTX{y*pswArNL8v^wm7}T6%A-tf|7E zFmUMp6XLc0KX9*c!EFE7QCC4%%vCV5jrMP39a<^f$K~#7aOaKae2#pad#Qt*>z8d^ zzKwXCL0-Swz2gC5J~>|*bxq;SDf2F$9Jb&s_+d`U0q&Aq^B(#o;~Zd|jliFqz|G6} zZMBwt37$&kXU+3>Rp;&aT>cC7E`B!7&tFc|eV)48z}J~Pt@-;J~EYGNtQ*1JEME5lVp+ioNyEHnd@TZoe3Iv zp1P6&it&DSrPLh)=M{`k;a6Zo;2Be9^L5*F;JUM5gI*3V@y{-@c zP!Qi<5oe*)Pb1~jXVZ$BssMY>rWIDzRQl{8E~1(9PwJ2O(K_z>s%_+ql+*Vhb1wNG zB%ZR~7etIxh9UCe=5I;&Pds9 zQ3m<)wDO*4pSt8-#YUX|?IX@m$@Z9h{(CXy&TK#VyY0_(r|z82S^fid9_-w{6XbF@ zGH;^JmWJbT6qD>cgz-EBllxrL;yEnGTJngabN7$AQ~RU%r=x3F%b<^=ZjViqg8MJ` zkt4B$Gt$^HhLP22X*Ii3GXlHKqN`7sV(gV}b4$vE*}LClZ=7Co&2A6)U=2dHx8JlIs-koe#7bo%&#Ovqv zzs0*DWQE1vCMf$aHi(yfai6=Ny+y~O;|dBFFPj-R&pqj5%23<2)R7#!Zp!GT!q;`@u(xHM!0uEP<#~K2IkwX{ zAI!U<*{renJ`A=@A7gIxko!8~9l3`7q&sYdhoh9;>@rmy#5nkzGf8Vs_l^1r});p7+)bCnuI1f_NzYgEEE~AW>w68)vZv^|1Ng4sSut?V zcLG9J%l~RW^Sy%S!o+iElM8qs+yIq<1B}lkZ&Z zYP~ArS#(kZ{`Bq(s>9g+kbpJbS8@0+^d%dFo`d|^_mk?pZI3rxd~wHI3wi#rZ^jo6 z@a^cmC)P+teC&IO??f^m=KIIKMSNk`B^`4|`1Viyi9ceq(}=IhV;xEff7D!H$M-pW zcVu2Z>rx79<&?gZVsdQYM;mJ?B(~2}=5hP)Jho(NUwz5$g3aU=Dps7|bH^=B z$qW=DBlb^7>5E=W-T*tUpZm(lp{98*0rqNgwO&l$bGF^M^tr7Ucl{%Kk~hYav!RxA zaoCoK16q||f?sicN_b=O+2JGTW*YApI^5-X{>l(%uoM$>E%j#8UeEks8~DodKFQsu zoXuk|SA}E~nU&Xr^)x1-#z2EI4}Svc^%?*h8g- z{-cB6z`uts(+y9CzHaLM$o(Rd+R}_n5gdaTqG$2j?!tDC&8wY#)e3ypI>)E?b3zTH zvojk;7c46oZFjjwI2%zPNHaT?cW)@SsegX1t83oMhS3||xVvwDGj|C7?XKMyXXbV( zUNMMFjapnIhDtwcN>Qd_GP?`9U3nufgUdnAtkxh` zt9dUQJo53nQFILCVvCov!aAcY+~%Lpz6M;Tu58#eg}crS;P znBSU}MWf$Y<{iCNyskE@P3x3g|EByrY~0(bxQimcU+v_(A6dJ^Wp-4#SFEk}n?vv1 zN*vaI<$q%Jf?=-u zWPW1cAjG)4r$g)SQ2y(bXD*!bHM~>#t0?clram6vE{WGJG8MzfJzoD#NA32ZCqiivMF1M>Iwe}mE0^AcQURy6-Gp?4!jocXx zj~=FeI`B-P55e^2F!p|6`YLfkQROjM15R(YVQLdh2ZzX?&Rv zdYFDXJvh8AzBc596&;0Mib1&^U{L;f&x^Ht%m^>{z^{t(6Hm(cfxSopqaq#`X1)q%X zt>=Fn-^Y;=UkB$cN$nli+|k}t&(w^jWy?od18iBgc*e(N+1BY!n^P0A%!Mqwd~}HT zku&A@Q_x#JeD-Dfn!@@jKGFP69d4);-v*#@AO1P~^gDcJYORm8sX8+>@|${Oi+f7T zHQQtLrS7SE^=Cwf_DB>QTRd;YdNNBykH zJ?NedZB?VhbRK#N9kq&aUq{WmTh!-J`D&Vo2%*hsyqpwMc87&HzMN zYvyx*obK?biOqgUXB8fO3me)5)}X84!8KR*6_|pqT=L4MWTtfe6`ne^PM*F#&Srh| zvpzN>j~h(x2)blFaPBm$kI~#9>!Y#P$J5rvbaDv*kJj7{U{oHwsf<^+&PR?Xub2OI z4fxJA*_GQWyN+PnIlvg?w_UKJfxBdK``i9{H?{(+|K8(w?XC$S&oez;H9@me`!LS> z64Pys404{~DE>p@%N-eg*$6>#Cja{W;r)b29$C7kWRj z>}#@15PyCH`<)xv@62bva}%+kUndqc&EE6uOTzJGCIuX)oW$|$1djc);yAXFa2(HT zbBZ^`Yav(7QRP($!JA(ALFh8)?er9-qrmp!j6X*1L-dL10t zKKHzS>+Oa%@p(18n`hRneMEM$r1dTG96XEvL42ui*s}V~bbp(DHiA0Z=N7RCONZt@ zVtrLS-_TG)n`Fu0c(Zda^2B9oj{51tTr_8?h2J;2wV_SzeUt+|2p-z;KOL71+Ao~h zho8Nz`goGPxBB=`$}|wOy7(%?`e5~+7gXH78Cii}*0n%17TU%6fE|J3vv+gPvh6p0 zp)EMNw@tK290TtM_22=fa7BjX6;Tl>p+rO0kPWw98*O%=x zXJw3H)AN!uMRWAS?D!mMY+Z~^xC^;%IJ)>#+WDW8?VNpDJ9j0uBl+qF)(^2iMrWIW z3Bc#@{67-Yek1auX~L8)=}wXn(h0Oad6UXrkN@)Pl#7>HZkHie&z6B(AB&Z5rVpph z>sjwUsm<=BGT$erCvdX8rbK(E^uywRi`Dm2eiWYk8@Ay=Y-wweF<$6x3v|@&nquQu zYmML3EFEM{lJVTgv+z805_uf!?>dGPQ0D8)7q)|kJH=P@+Pg>-lrVR9 zoI8*BggResuuU;Q(mky1SbgRBGrB$k*4?sWL-Y0;$b8GrC3;=NJpm4VoT-a1ew;qZ z6=Bl|^e>xKwd!C4bL!ZBEXp{%7F>tElvrDXKa17BXRobU8R8}F31$+9unSm1E4kMm zeCgc-@XmhzABP+*J_R*c*uN^-X;5%5r%As-+R+tmKo< zC`-TfpkFp6blmRy7`rD9L*r`l$++`J#u2wK9((g4^k@2)U0*N^(Lem#>R}$ex&Ca~IKE4O}F8yU6{cE0Vd@@hH zeTC!j|G_sy+$|FS<|^CEw@JLmPf)h6yQWY0-OKk~v^fN?&!MkwwYfV^gNG6{h-)ST zIT!ZB>+<9Kwl%cPq-^yci7)4@mk)Yu79Fz_jfp-BAedvl-8PQ zopW^_%Hr9Zke6?MFIGQC{hxvBNctz^`gz_vxEB2i*I%W6{)N-wxhef0;@@#(@wo5C z>OaG`xZJEc`X;;)Wt{ff!kjentT_;$9F*S{+@V|Kq=38mZnHzWmaXrgUj+~1Un94p zqw7e|xf2>0!pGmuK40>^2Dz*`F9jdM@!R0!YLl4}09Sj#vt)jU=_n9ReD^@p;3NP} zbXH&x8rGh>BtdtQ|B9QwoAGL$K7ieMJ>P`u;RLRI?4z_+2zM&a9WMh1IFsJ$)ZrX4 z_oobyBQEbu8^Y7u<22LrOJbwJ(V62dWxOHI3MP+tiN*_#gqQhl7rKgThc9z&*A&Wn zKRi{|(F4B>T??o2@~7*MnQH(2kJri4_!D&)%YdVI?q_V8i@hb-m(f3m@P8jWfDTIR z!2xJsKjYk60>2W+?ZE87v6%UE+H~4;^w_s(!%wW=nRVtR)e--nS?_iAO~1ka`FP!` zq`GI;`z`f|7yMX%#i|4C_#^|MlbRpJ_wz@Qk2TOHd2!xr4%v3YRYCa~daQVkzi4rI z#qy51dpl07xtYIDEf*>d2bOir{S#$mr?NP&XgH@xo}Uca-VM+C)i?baY~0Du7SFw= z@)Cb5vyk0xo)tTm!WwfkvCz%z!;7r6me0Wd z9eZxx^Z+?_t1YX=i_X==_f*Q=!#iTyvhQtc-1G*13h78Stg+ab%4V}C^Wh6=FzI$4 zr2zLNJ+P;2({7YC#iUCmESO+l;UjfH{ za_i@kFJ`kVcO=SL^B}sizOB~1Y?S)~WsoNu_5VGzWubd+X0Pw3>}r?Q6{2m{Lr`xM?si3^VVIP>B@)TB0g zfK6}>BL|%MZwA*3J=~QOnbvjH_Jx)AKp&mNeQdZqYu@8tPg$o)CBLZE@&NPf__;cl z&&jx_tth8+xs|)Ycrvb`?zPlS;|`V-?v^<~-F@DavJGZj*@iDGW@YnjwEqO{Ao2_V(t=V*2;de}Fb>ygFCrE-R)D7xU~}K53qJ zVrra@!Ikh5TWNNVuqK~}9{v(O+qamv6U*W`@2{jSKW%N%nPv9K7BpOgomXS)@p3N9 zSY?K`+qq|KB|fe}cLw))n()8lYaFCatuKw_p!0o7ju;>Nk>tGg!)gA3>$do?Plx87 z#oU0~?B>h>cSmQmC`Tdmj{a}#`)A&Ad-`W1*Yz!(Z+gGiJ-&YhdQro1bUF5@4acok z+0~klTXiZ=Zki0`bWytv_;ooYcfjso#rW; zH*^hmR9@5E7MSs3LBNwWkGrtTwj#6AnY#>dss-!W2)WVYH+37ZR~l@==<3-;;CjRF{||R>9v@eA<@@fck_RjTp1{V?@sVuf0c>nz zFoVGwEDvC8kYos$bg5J-TSBrVRFW-Y2bTu|X{T=@AWhot*9ZtVkw|Xm^BVHxbbmhB zCZXwe`hEiRU^^M9@->9r#Q&0CU zV{J8$AZM%20G|2cF3xHMho+zuyal`E*WJIorZY0!EEN94pB6LjzsA^JyeM}648}{5 z88xN^*biWj7cNv*_f&I-;8cBrTkE?eC9yl=tuA^zvj$V*Otir=zgme zR~+K!TfkZ{tYG(!lB&%Luhlme2rE&0s7vh;Y&F1e1pT=1b#SEFcbGo+Fhxp6-=Q^c z@JRfDNXCo_9?wkr8D*3*e$<}x=o_`ChjWes;55U`?g;hijAp&x!Wco%W5a$*7&y7E zxO3a1M@)400vjKhH4E zca3y$w!_J{r?Za{{As=T&y25+){f}e$X<>&c8u#dY`d=EXwyAu;1f*({~hKuBXYjYelBAn0!x7{aR(| zqu*&`kNlzHZBOqlql~g+1(%j>jaHRyrOYdLRF?7G;!=a3hsrBtO+tA!lvm348u}?O z*cPqImO~yx`UrNIz?fUn1ve((Gg=#RUeR&Re&gF2OVM90Lx0J4)o;cBAv_1<$n?QF z&%@~aKHXBm85{0Y4tsD?AzwEjHIyZc7+gx(FzanGwR^bCtHz+aKN9t+=Zryj>-2pE)hWJI#JqsK!S_DopT>7?p+(V~XsqeM+&5Uf4`K;6LCL5; z!YAR4gA?%!i1qYQu4L1RS6qV6o4!L9nRP?KFCyBRc17M9+<0imexUh<|Vs)kG?9q48BUeZ?Jy$b(fOn6#P7XDZG&9Yw&@4fpc}9 zj9%0@lRgnFnzK9%*8qdQDUuJzjliMwJ)G4d`2UVNJp8voGf8CHnu|+&l3U9QH$i6u z(SpX0pWZd;$b%0))@>HQ0ls@P!_4!wv~AOHcpG#i{Kr3uTDj@~=cAUH=pAox=BJ(W zFN==(A@K)TyD_)k@do;Ye7WlI=tnr?&-ohV*WE$gFH-jl)ctf`-QeBU-4WI;+A;KB zR`$n#aj0)1@f@?o{KXul^&fh|ZzeMny2?r}?D}-e-}NMQho;Ip6DLFin>!PocbiLg z$MN+(LSKk}L^oQ;=$Y+J^ZWF*&NVs@o^ap~ z5xzyPJyzoi`#3Y3^%k4nGL_0#PyglPL3j}^{5QuA0N1t$na5~T334Cysyj4~jtj=k zN<<@tebAQb{TSa^wMAtMeor5qJ89{oJEV`a_z-=RrjKg#`bhNgH0}CZ`luWFkZ**_ z^JU4-{Tyxa_|REv9&c)!a3b7!yetGSKclrQJUXoWhC=2bTa<{--ko)to}Y@UFRQkqt6~d4;$cbx2XtQ75O5_Q1`+Y z`{$ilxF2|QuFquV)Gxrp87n7GJmb!*!B2k7HE(Y2yNB-|7Qb2Br|%%ipGMzVEvA39 zuKkGf>T05k-*|!kRo>$I2m0ciTmByOpt6~>#^{@L--k#15<25Mmc2#Pzli$x&vx~z zZs{GA|0H#vIPj#E!xqo z@189j><77hmgdR9XT32hTL9)EF*Y!6q?-+Wy;4C9NKi9))-1> zkc}$#PwtzFymyp2`XJ-fowGT<_gimGfxj<)V_>N}i(L7XM|IbslbAyLd|KftKYb7V zqVsO#zj+aHN9hmIJ$p#eQ(QDFLB9ka4=hxFs=r>Ot+Ks}E=4;D^t%7dTx)_{-~Bl{ zdG+1I%wIF+3wzXu*MSS+M0=@fp`(RwZprrJ0CWT&tnS$M*Ok|h&iOl!w|)BYUBhOo zZnf`4&SaFluCmp>0NT_;5y$g>ySJhOf#K`zPh#ybT+L zE$hIOuZhMtUG|fI6TCW`N&RppdVe~kchPz+=|t}zzZ5+o_*9l)b#PtOC>cGU=D!}o zRp)UBOb-H6aB&W%AMhLuG2?zP`O21fPwu1}JW?b^EM)}7|k!d>rObm=|h+r{(Iac-=rzMy_9xSZ5D zV+hQ@g5S%I5x|oca#!7(=%-sKSFkMvCiSW4nf=yddinkkeuBUG?)C{?@0N_|`tLiD z@$m0qt{Tfa)}CLk{WsDR{5Qt+_anP1Ysh!>l`Yq)|N8NZNut*|@7`sv*UdF!&BTh= z%g?V_xN~I5n4NFk&{s}c!6jQ@`3BxB?h zvi~;xjODxd0PkNXT)Hax9!rK{PPjvJme#Y6kmecSPMU>XonNZy%Mkvf5$t)~S~AA$ zzkEzT-%U5yK3N&iX3opqx1V`NJ{{eBXI(VYkKS8!^B0D**suc}zK}hHjX~dw;=9aq z@<*3F?>%U!n{P?K2yf2(<-WFeFJ00QZ0kn0uYJ8>q$!*lE4Vd+y?U3Kz^ytP}@GWNTUxaM6Ek5mj`F??e zpLf$fL%)m?zSUox<*okE*cTquPxN)=OQO*!nSE1Z6AE{23Hr1~+u2z%CPMp*X#X}7 zX?$bso=JNxP1v(N$Nmj^apA9&dP=yG-Pa-`Pw6t5DP2#W%2ZyymA!7zkLc#RTbyoN z_!@{sUqy%X&8YS}u*Tc@;=`5xJj_h{vQL*VpB=-u1z)h&j-ua3pY`ce>_<28p!VAlDVIzLlqW2!%XpB~XOWybzV$XVBx8|EHp!O-_*tUFk5-7j9U2{=FAF`?_@ zg9|xd#f&}m^n|W!k-0(oczyq+l=Vj)<0Cn$gmak+I3FoC>#ahwppS9>BhH9UAzS@D zbBc5q=d&KHp?t~Q-+og(xny62_XO{Mh1~EK=Oe4VvSVqFAAMBauQZn}dA)f0fk|Zp zBd)z@>xEV3y5+Ag9*w<@KE0HA;djt`B7~ui`kv<;{3ogJXV8?d@0zf_DD~A+pJe=Z z=$nq%MTHsGLE~A=L8oILe_--hm4yzu@U!IeMU?SkbbMn5S*sSA>F;T?m%oO}=bgwn zlaX;IBI88!WSp7{oQ&L=C!h1}=fau`N_(`1)cP@w4ECjNm#-$2>$}hAd$-`m=X;s9 z$R;7YZxgPiPYZGVtv9FjsSon;{cT`ZpQ(S;H@AI&?v{GhhraG=>V7ghtnu-uADXm- zv8=kW8TVq(v~{3+10#~BJ{P+9%ZapUnGmeu?~l>9WmOm)3zfMwj-l&Q-ed_ z4y}8O(e+szd`8}GWK+SdymiRU(gO)*U_>?@4EO6cE=GHD<4ZIC|+`>5pc> z_lo&G1TfqYpkIpDL*sL|PYP%^_E@VIgLnVD;FWJw&V-LlzbaEX^T0yRiWxDhp#P~h z%^xEem+PVBqh@5`0Jfzon6K*4Nlx8d*Y^Ox ze`@hATmKzrs=puoeS|s&$|J9)n8%*YT-qi5(swh3tk0r7pE92fr;lW(5bt?!dGfk{ zgg?Cxe>xBTwDbIlRSz?sb>1fDInH_q|Lg(Q)CRw%%+`XcUBK5Lop|lQmFQp5A-*TM zF~CQK{vDV~80jYicZT%Bi+IP`Xkt5lAO1XA;I(w2Z!z_&tcl2^=#vKEBl~IlFnF8B zL54YQ^2o_;B@@dYh#-&DfN#V4)9hc^HPtZhbSC?@FDflO44wks)pm5VV~<#yx2e?F zybr)k#?5FOfBZn6f-gtm|wf<7Q2A%Ag z%6*=4Bb1w{G&2QL5$zOhe#CsCbBT+oYpvEhh0K@eKE$sTrnog>xM;iv+812iVSO2R zh{}`wKQTU1`0Ws0!5}@o+Gg7ie!7S&f=-LDjmiH{X%x4cXTc))`{@^jC$3!ndJQy_ zJYV?}oiBhJwIOk*nb|&y{ae(jKD00a&sJN;lAccPNpKpZGnIn1+v2mJQ0)=iZN&eM zHoLZ6+^hX}uFV(awfW-SiP>;)K{-DC*f5;_*(Z7s-1|0TYl=l)9mW`V*6L&3nD_uY zD>OgrJ9%?;IXVI9eUZ(oBfBDZ81{!PuH(E?@yE09xzdo&eIP&ln4@XFXFW^j%9PP2 z+4TBplVF}4;_yJtla<|E_?$MD(ASAmJ1b3F#=c`?txkNx`$qR(A~`9>o*3FAT*&{` zmmke5--P8q1^-YwwWA(7S6 zdhJ;}v4UBT1MfOuhycUOjP{L7Qv}Z}MnC!z<+5+N>yZ;yXX?Vugsv&9 zVTwv7cI_Zs_+y;^7Msq`lOodI^~V*DA&ypR0^JPKZYA6jL`sJGaZ?DKvHrhvWR`1E{)eIbsXP2VSx z9?0q`nQx`XWL_F49-8jnVf9q1m$7a2K)&v$kk86k)BS1Zr%yb^94uJ2Gp4OR4L>3O z-C)7=dtmbW+r3^;I>8gz*qjbII!k-W^c`K!KcTkU=9WoUec_rr|G$C0_xT$2m2uM+ls#_x5^_>%0)SdytkOQiprX8wp;hWR@ROfESquxh>E7k4mIZQa^-lB5< zD{Xu-I;n9K^*#Y?f=Bj1;%6ydYm>uJO5=&X*{emC}I z>*t|j7@0TeN%k=n>ydkoV*CyhNs~JKfafF0$cp}Uh!1X zzVu|>to6b@^47n^(}AZ)_5Vd9OJ=Hk$sa#LCXPUpYU2;Uuf~KqKVR;?xUstXFS4?) z+RohZd^_!C9ys|lIFXHJ|E5o$kX|D}KLQK>E#rC@8|H~Ouj$)JfBuSZCFJA8!{zC7 zpnTY?BjNWWf4dCYEo2{L6dau2Bl`Pj?H8;ryMH+Q@a9md!H;P4X*i?8GiF7V0z#Yd0e@9-jW z&`RuhFEV#Fq5FK1xuS$KIrW|y!}*<@U%HL;ca!$B%NLDu4oo<)FhV&+lp$Y}??NZF z4{mwv!)G`vkFuFFes17VoQ>G^_Dh^`e-wYh`-)F&gMW!`V`k@`Ofs4dF-0sdAs z-2Wna@ou$iC*``h2Ts)Rtgv82$qznGt^)SeJ^P27AN)RjdrvE4RQ;khK<{^`pUu`S zk7e+$x`Od%em$^2bEn$(E7t0sPD)39CY}87kEN3r`37R<{ecA=eSOfZukUc|e|>$N zgZqTxZ0>uguNXQz0-eQ0XY3(F-Z^RZ7ws+?635wV**MuM^7DNiS={IQd*Xy^jS1mf zxGp0si42lNHYmmBS)#qz-BX=@X#bS19WTn3m7}e_@SJm{KX@=x`RKXQluYey;0u= zD|q!7^6{rz+_!I|@OXHoWcD8xG0yt&lhAi?Wiu47(mpXi_NTzJo}}N=tFfNFphw>% zy&4{+@8!btP99$GeD0)g+)j8Rx_#0Bwxxl>5j{uCxi8c6c|Av~xWlIh3JZIVCh@C) zo&$L7Gt3!pBQxXoe6s(UNY{6mSC8z5Z?j%_jqi5_>~&PxoHzBv;Tx%M0{T?!Qit(Z zP(G#YeBg?Vf$d{5;lFXv1>(Z9^>3pjVJzmYUmoSVWo`+`f%f{n7Nqtp9+dTfu* z<+^m~W0fDoE}OL<9iR9wvd?R>!`zJ=dc(*}<)sDabJ61t+-UX3d+?g;kqxT>knmky)mo zV=RqbQus^OCI^v|kD{a1nYQe?#HZlmSwG+m{iE<^cocrI3#Cqh|HFvs+lm+X6%xnF089Ad8P zrkuxqaZTSx$b^6Oi=eOj!8L`*+dq^(HM#$at_X5al<%mkA7q#2LlTdFG|?>3x(C3bcNcm42HL+E*-CLm!H!7^?_uq(HbueTaIRhC+3`Sa-(vK9 zPlJP}348dSX?@R&$DbQDv-T@aw|7+M*ZyJP`Qy*sGE-}Sik$WJ|jQ zI#nOZPVvFJD|$}+^46aH%wL>IbCUfkc3q?SN#_D+&XQ~u#8``bgE36G3bXN)r9Ct@ z4RWCUMx&p<*AJe*6U-f-Zn=&5`y%AT)4wU5-}mbG2zAiUuW4K$k34<|oLnN@GA4xE z>$lx)aa+7ix?23afvc?hp-G(ex9`|wW7jHz@hIcs*yNIv>}!4gZRlJ$PEeNGud+Rz zs@-b8+QN7otGxZ+SYc%o;laJ1yZr|!S2$2V{EFv(_yV?z*G~Mh)YhdsvB#WzTXEx- z_2kDLEeH4T8Lj=5UUAAV81aYdIR>7!$4S1m_B){Pku4pvUEI;5wZH1z!CkVKF4nw1 zcWd5hT|4nPEGn7ab?C!fyw;%#_p*PQ^ywX!>MSbG{hHR5D4X8(BIm+)W4F>8FMy8x zy0fl|!_iYly6C@s;%gsN zjp+GsC+iN@93QP6sqdlV=QWITMn*wn1-<_XIe$OAzW*xcGhq2KXRrJ3-rdXde!i2) z{Jt;4_l>B?B z|I)YIv4h=l_m-)B+hXGzcjK>n_gh=~)*QMK-~UTy^^&g^Uc3apc<-U&-N=iL?C+%Q z>}MuC6T|*X{enaOMEWk^O8E7MoX3_AcawBSq5ZEP-7aw_yDu;cu|IwDWBe6=|D!*z zJW)2f>rQ<6)cO=oD|d{| zL}P`MZ^vI5d3RU+H!Cxp?AyAayA2y?;ZFShO3n7lBK)>x<9!IfyB}TGfG{mPqrbIE#JDSi|)F1Y> z`dNLfK3CtWuYdI`zB2|dcoZA=KXdna)z|7ft=YV+#aww(d$J@~;b(SSe0Mu|_;kxs z&e>v)Sc}hQ<1O&*l6{P4yWTp2Z)$%eTA08;Rq)lLgEm_)y|ie>qm|pIKGkMMX2vP} zd+hByuwcj7?a@f#;wJpjc|RP96so=3fkV3WQ_PRsnNxqq`!9IUwEaodjw_#Fjvs&P zky9_WZO3o51p71jF8#MKz1y22UywBP`|#kX++Nk5 z(~ru3DF$zH-~V;~OY&Lz3uyl*JEq|KD8HrXEXk*};N}SOrRIiA$z@&V=^XsYCl<=z ziT$CoKA=Cm4fzSa3DyoBKE7jeS9GHG>jYh#PdRq)s4Kh5wvMQhUHh{0cU0<8E(4wQ}T+5%pFal>U@ zFX4+59i6F^?fWu(8NWcs7U4G((B^5}3rw_dFZN_)vumC*Q+6*lla5E>r%z+U;(*gx z$k^8BQ~F%%LkUli|D^KQvS(t-l_l5lo-OMw#u;+>f+GC(YGms$hVyxb*|UVos1LdD zxb*KO_FN`>6qpa*jjfpZ;T7z4MD}B!apSL$Rr%>ZuxwD6n+!T`+GedMJC}4N3E$oKvw|uv)+kGclX-?)>whb?CGDPuwnL0 zEuHbBIdURvA;WjoK8#oN{O)Qe_Xt)Gr{pR57mMciBijva$I$rSP;P+#p?p}U==+6v zK8Vp0_O?JbJ4s_C!y%&yKjNp_cdD|6!&8q2%th4TTN=DD!wN<#bD?Wjt#? zRmq6~>nEEG^@{lV;ad{v;*8}dYS_1$-@ntKU7cA6F2{bGyT-jA?~~v^npY%Gd0FZ) zcu0E3bjeb^HR#bk)fv^%6ALG|qt}7grK5#ikxqjSX?$>|=eR`%g|RjDFMH5vgWQtLB_X z>R#NBuMfVL;_spZ@p#$qBOmEp2lE@l_vX!)YCCH=6RjjX6KyE}_!ap}LjJKB{-N<* z!+3}hmV~Di!$S->^K*#z4_Hr_)@+Bl%D8ksw_tb&nec6FPe<^hksqPpgDQ4fn zhw(q)`EmM1GWAec@_CtHDUNoZ28;CW`RzSMd4fr{pkgkSzm;>3^V1a1aA~6b-)(!B z_?Nj-T;JiE!lgVd_DpBs=Q%$vN?w(vG#|F4-NXhH*#XkG}4x*mRwcQ|B|R z10Lq$EaiO%f0?ONf2bVopDxC)N_(eAknSk`q5gUM3bXH>tEH2`4}db>E;sw$hfltT ztaEIw**BBE+CHSd?W8-%m86_*>cWR~AM1d9wqEM7a8ply9Y?4`{qO5JMm=LG`@SLl zSxULW~k~x1H z@Rb6eVDsr|&-K{4u8$dWeKD8fDn4P)4&^+{xmZ!kQrfBYwVg4pg8JglDO}nQ@Zy=v z+e~?zDQ`37ZFc3Ax$-`IFu%M$%Il-NKFaHp-``ov+edl(D33Ad{E#X*cgVuWd6;?d zouIrEly`#iPL#2?{w(Dozj9_g@;>FA6ny2M;NKyT0@e^XTDDQ$t3HE!~0{C@bQ_q+Y@i&;ben)#=keaJiU9h6S5 zsKC66Pt0!C3deUsPs8n+F=Efiit$}z1#BY)pG_I>ZsSIrC!>7z35N& zs-ZL|`T^!^&I9Htd^_hTvU>qx26}rEJ9|yucqn7Mm4GKdE<{)PZTV0-kgy$((vA-p z8=C*W!87eR4!+c;L+E-LH`@O(Zg+6M+8gRzkh$~W6U-Wm`C)P7LHeG3Ju|x4r`2Qq z8Ma1xq6N_&+h<#&%vbC;2;(Oc7a8s7MDXIzp!MN%2U)x3%Q}*A3};(SW=tFb&h3** z_9gJKi7=M%qk1k%A5iyk4$RrJGg{W8Gt{<6Ls=NSWTNKeW23B&XOM4$aD|t#{0w0E zjz4+YIvsye*`#};UoYwLz79#len>O^c#QhTN6ZUlX8dm9q;|M;Pn?60$3u*0-$Yp_ zXpg}~z0<&ZE%N*a)GK@+!0rZZTvIc=1iVIe|1N~*zvc1E!Tssri9M2o2f6rA9C%&= zM>VuxbwxP$Uf(J{kNOhSC;0G9*$sW32BYA35;$srBT3r-9>O4496oaL=K{{|7Cs`> zABV0>sI!(jRem+!Wm8>@y)IvmmnnUGUbSbw$usUw@Xm2Gc}%28bQ!k=}2&xN*MYs}6_a zf%qe^mC?Mwxj2?qA3FmbWGs$FtK%%KK0rA;!oJd+D!y?M@MOSmCZt!%Gs5w&Lt0V$ z2Vx`T|L{ZS|8ODx4>9~7M)znuf3$XtJ*VWOXCml9#`b*7y7I(@nXxAu$Mu{lAJKJk z7(PDf@jaigUgCV`uKv3+H;G3cUYoh;NIY}X(PZYPW9u_Fz1^6(>7AC$P4A`&zwl3b zVxx6_9`fgeFR})XA=_Tu`_AOaJ#X{U7MytB!i98TZ86C2s}&faLxDfIX!lOt#L z4=?#aW`y}c4cDWzw+7z|`fHZ_-&UY2h_LQZyEUi0fz3{KjS|-0{gl&hb>|oNsw~x` z@{kiA-M)wKgaV5#8=R_qjqL-_n(FDK9`JW^-2SU~s~?Qtv%G1ruB?#A8>jkG#5^oNgm-Sw*>jK}E@*&3vyd4&4>7?UpU1L?@=i|z2p zm?^V%h#Ir_jcpH_9`-15MSDJA9qh+0`V;HV{0MVcK)Vv*oVoau$@k08SbEB`x=Hh+ z%x{`Uq_ZrlxnzDR?&+58gH2TNAI zZpf==ePg#6f6p@BRkqsV(w|>t>Mylv#6L{NmG_UpVt|i5APbdl>eeq-?P~wx{Gk0y zw#+3{jlR=&eQx_%(A=fr*T<-!AwNeIxJR zWlnp?%w|umx#K6xk6kBwUn6aL*+jbVQ@rEAEA`hQgNzE`nNKpGeu21M&=cp+pb9qQ zBXyImMwXei%?vwUBOZqwF%|vOlb@iEc60n#;jY}cxe|XWdyezO3jrdryI5d{KJ4p^N@+M8(Hn z(>c!jqfyShE$B7pm;9UIn{ttn=GDb>&2L}f9L6Hj?0Do6t4mmHqW?95pHVcr<2C!t z*}|OBdjC`8iBB=VJv=b*8+`VDQ}pv`U0Ytd9NpdaJ&IR&e;95`ie&@XBYQ|ZW`3Kw zwDeR1zTW*KCLQ`HHtEn|ct!t+VOH+=-3P;a2DacExHo$8!zZIB5AsctBO}l=WBX!F zfAYyo&2PUJKnEJPH=2EuUorQ89r%Qo?E_`6>pbnEt&{e?&N)V#xwJ-G5R2@#d+^W& zDPHs8{xR%n!VjmPu*vk@pX2Z2_UUQA;H2IfY?kQKPnN8`Z0||!PkK0N`P(Ppv;_QU zEz%EMwCgq2W+(gM%@@<>u6*g2v2TWD-wItM=zr`@c3tAjx9`XjhO<>=*MiQv4pWY7 zDQVhG8^Mb?xh;Cx@pA0Re-*n3d(CCXi|x2lJG5^qSI^hwV}q{q@#sag*X^lNUCO8S z=zK-xpF*0$e6uZTE-Y(Bc@ds@;?!cy`dHPr&)_z&~dJu$D8u>eqh! zx8$QRepiG~4Ng80$xQB(-cfx$6MKI@aoPU<8GiEE81_?^a3j57ywLo%yO{6wLT_8D z&?o27*?ZVCvi$cOWrJ)LMN`>NuycIZ+58@bJBP<{mLB#{m#3NT|0W*fXi05XUuz9| zl4qSgI5ZC19&zJ)*ArI)J~Zz3Uy>Vl%O{>b?h@$Q{kSW#G|v7K_UCHcX>4hX8OB}F z{>!_rXMAM_N?-r0ZIkvs&X_Wc0ch%ZXzP&tWlBbH_80S5KlbdS)3IxV`zK@Ocs;Z< z9lCuf8iQtr^&b9)K@V8K7?=oc#j-T~Gx*_QzO5mgC|oxEB_qb|elk{Y{C&zeO1pm= zE!d5&;dl?US`{nUeeA+$&jHpOho8W|k+N->;g~r5L`l!F3(Iy=55R44 zPP^Jq4!j^c^fTc8gS}<&>9Uj4d5(|EqswpN3zwN@=~6yluHrDUA zJ^EL_-}bs__;Jo}y&nHI_Nusa%op(y=C|A52PWc0*VmgVU5~@RR;r%zyn4)xuA~-}2bht}Wws?7=Sen7otV-}77K za~DP$@u-`~O#??pO2LJ+!@n8JvEM8C^K4Tx^N8fVJ^m9*3KkJ<7GyR=;?OjfLmw!fk2c-|&yZjvO9g^O*_w4C| z!SGPN+I#l&b5BdJ_MSa`roS(*y^qk|M?RyygVKlXedHYN9g^O*_w4C|!SICbJ$w4O zr=?eW&z?Thf5MLk==l}e`^smucTjrZ*-iPcoTI%%($D>~bEXdl!$bN1bk6j1PfOoB zG(G!8da>KE=8E*jhM5o*67|HnH9Ug!?*YbO!W9enTPf~nX~0DdDH-F@pjI&BfbVa9>(`7 zusU{!lUie5CYW?Vk)8?h$;lUwB%=U+q=t1J;tR^gPZ{HzRhVC!Mf_=OoYH;JJur&T`x>oz4`V z*^j(iHdhmdzrge4A@jK(Px{t`#?;ONH>Tc~KcVZNUO%qhKEt@mfH#e+r$+AIGwpG+ zm%WjvjVX<%?*hx)q8G;0cS(DgwEeN+z4#FA4eXdQ#~)$ci4OdbnflTm-)^lhG>*Q9 zo+AZ3!$z4G^e$Z0Ll5}w9G`Atzp%cuu@Sak^J(l6+lG<7_0SpnwrxMFk0a`%%&@&h z)Nd>g$n|G1x8zh5cuO)F;D{UwNIPuTu)T(~|6Y9wZHX2&{(nL`!}$Md=Bs=58*>PL zJ7HJwN=R2DL%Mq9EOhmXrK^5usz@|NyHxIW6M4?eEj=}ZvLoBK?9}S9M+7>2 zZ|g{lvwRv9{Y6M00JCWD72ptU7N{MxCqsA-VI!dTcg-;P&QJF&o%#=ZUWV^X;eH65 z{3Cr?z;h9CzyRO*>7M&W{^K6Qz5LJ5v%I7pUXsilfc_mXdC53lV&Ek+SWmOJ|B&*m zApLvro<`CaF&?)?T-y%Nw&fbX^GZ)GXS~F=7xdmj-S5Rl&RRkJNveh8c#=e*Bfn5jSAGd=i+J6?Q^EgkK8u1(&| zxxe<;24U)Ve@8>I@xFA>(A>}-tV=XBrRr>wWTLsbr9Eg%CF&?_l)0rUepg#Vduny< zeW|2R8LVq*v$4i(3d;-gZBp7W%GR^0s;vBuTdItUa24fcH_4U_tyCVQ+S(|yp_#mD zg$LKn=xAhG0?9);{}YJ;u`w52O^KmwEAqbiARtJ+(g7 z7F>RLps@LQVM^CJ`{ra*B2Buw;O3hGnp?iIw5lq;X2q)N>&oM$m6fG;4^6iyFWu6W zt4ph|U64)K5ER`M%rzzpP_m_?xm`sQ=<3^)N;I~m*2S|i^IUj+B3-Y9dNuc@<88?q ztutreydlxn7~JIZ=fd-fpzM1)rp;Z@X$-x;G0{Y0((P>x&Fh2q#QI=b-OWaL2|-iw zCO!M+bbBJ%7;j27gFo6`Rb9Da)v|cy>f0;gx0QY=zNF&z>gA>>QJZSA;0uH9ZBamO z`{>%B@|pu_73nq2b*Xg?&8fN>KbKP(0 zn*I{D2a$ZXN779#?di3)cfLGlT|-;CJ>HgTYDub$RcltRbk&;LWW2Ux-P+cc^p_R0 z`u4cZV%F8ozPWaDdy1Z|OU+Rd*W|bxC3)%d!;Q%fA~zP@tEF&P;hE@`dflKPNqQXv zv7;@XZWWd00CoA&^$dg@dF5qv@yYhivn0sXyFM9jsl6|srk0h*SC`%5sEYpOxuU#U zg!OqdEnTy!yn4mzRq?XBt1HS^FRA!rGM84}y{bI!i}+)5=BS%-*FXo`fivTBQAF5E z1zQ3g8t<8pPvDxmG0_HdQxHm2Ir4K2-A!k1>(Hnd+EY)CYTK${viG_=F~o9af5GC?ry z>W<)wVA|~Y9Xw|zgdj{Er{vnElp8f2&54anVG8gQ$EaJX!YRv=V#*iL+|q342gIHa9p&s*QeTeu3B-AH?72Wb{hVb(L`s|#8{Sv@l{D6@qmcxSo~ z(oJx1SCH76SjrjlXX{m(u-bE`b5n;)$&g{*PoFcrOXJc9L2FwJjcjj7Sq>Kj>H0*g zdlqia1)ohB0w^9N78I=OXim06E+M}hlHYeX^x|{49vG5t5dM9UstS0M^PAx5E}JPI zQemzfS5=~|EwLF`0)(b?d*EMrPc@}Bq?$pM{pIqV-v7CrVPnZr+t8d~ym)k*rc`G` zGSL(;vKmC!A$Z14+Lj>JHMMLq1_>`{Sr-mB5;fQfY0idJdm@k^m+olQjFhUAY}H=h zkPeb9NJO2Qv-GP=wKZ%c){YXz(fJ+8c4V;)9kj14)!xz893+}U$O0ld{4A*ar{zn# zjI~U2%^O=9DSA^wdwnpSc@Eo*@#0BsTcR1l_T`%C)6&xepp)P^yQR6w%K>evx)gP^ zB}4;isS;8Sf-b4mLP@XhK+$h3kyyH>SCvHJ(hgCs}vepD>UJ(wjHbwlpcAmF|QOh5fm% zAqDTTxXrc`!b-QB_0+5M>F{o02oOZTsUO1X1K%&IClr2^EsK}w4b9U74S2dUKfI+? zqxS|z*G-5$?(L?zozv#dM@Z#&RyY$)B7x0;1v72(*CQck+3XqwEl8%br9p>z>z32f zn!&>E*I8Ug$ZkIA4aUK3BTDYR@VM`vrz72}NBieIk~xZ>N(TL-4fDxJ@;u z8}j)}$fj5)ajaWNYjc;Gr?_xFrgK`}+rKV1eOE>P9XsElSHkHN|@syd`$Xrz6 z$OWcOA2!!D0j*=`aOJQQL;hhGiz>psH+O8PwPH{f9^b+skxZu2=`dYc!}=A?79m-9 z5_dMFn3qa5PnLD8g9D2=>zI#{^;8S8KvBr7sV^Kq@JePoln`MvT=^kswJ{HRh+I9j zEiFx{gecv;SA(WHTcyv>{1Bor%bIPJ$8Se-TWURw5b)ZWrQDz)MHWy8j%KK;`UJC3 zUV~JSXuhqjqt%OiAqxzqgQ)fvb=&kTRrt}HokeYaI4;X{_$O03vqH$;0qpAr;mK); zz(EU(`?mFdSR-dR^?|}$n%A2RR$tKGkq()ZTZ5o9D6L-OR_AL1vA282B)(VdcfM6{%UDHEv?!;ci#M~7hH4g!t1Ut zEh}GAu~cFDxe+J|%XT48@EqZ%J!NJrzQNLok|#xapKmEi9stymgQD=rE>i^YZp<$A?hWFI3Xi9pt1?BQYL<= z3`nR^-P8iC;j|PAeZ=2|@~nyib-yjqnytqb-I0dHAj2^F8&g(<4DnOfu(3glPF4xQ z1F5za>2uI1twEhsQ5~-?U1l{pA#L*-FI%xJjtbDM&9ZS%AzyZII(dW6hEV8fD}V{} zZs3@;`GTm}fy?IkozF*xLF^kozaEC=WN16@3P;n|Pq(uiHLta`8*}?@?x8fi=jbDt zeH9Kk?tee-MU$aiALa)`p(K#Vm-@r`4lITYK(kw-skI(8pyl(miFE4P1*})>y`#;` zU%tQd)2gZ#JMMFff_xsRc+Z{l>q8&gUS5ylcey4lSOV#qT3W2kA+VA_l5THlon4y( zywvR01k25YgT%veS{bla$AMHU^+GTn1KAY=;ZA#gbC#~^;h0K4J3goA!CBL1czNN* zs}|o-a`{bHOucf7qO<84By9;+0@5Mqmy;jhI&CcoH;7h=1|MzEeb9ytAbd^r(%ILU zD`(%d=;kSx7frk2#*zo8*A%-_jJY=yo!gr?u2W{opo11;h+8a{vohdKVb06%?`Ubi zk#>axObnoz3bkNzYbsTr)i=ZCwOl`aSm#j?6FAlbX7TKz4tNr^^b8FT7akhG*(_eh zR9ie-&aM&@SwTtB&_C?b%9(i+u3MmGyUB`N5{28E;d7fcAD|7X3t6{g=$;M|l0!UG z_d+%G`1lQpPA8}iNt0k6$QPii>;Rtud~<9Q@oMR-ZE-&2 zP8JxNEsE0hvu{T2EmgCmEUBHXO#owtqL>F-v&IwZxKF%rMmEOTDrVcHb!a*ed*U{W zjbKpZ__mAA3O^yd8__FMeKOICLID6mjiEG%NH4WHm7*=s_;>(woE>P~Q&`>#mM`Ga zs|id}GEkzf!L2TVXE1-RMQ~?AhTVpOcjbnAw2Rlt1bw`eTd=+R&s+i$v#ZGV(vmc%vM(WUv(HizwRo9@t?Bj@rLYw z!Lr+2G8?X7o5_}&pKi{yxmVZSqquBVTSzc18P02dt(hl6+M+s|2kU*9-CR4vn$RL! zS;fu&a}wzl&F!mZAjsL=$WtMqOq)CJ+9saYN^2P~ev$H6t+ck+^T3>)Z@0QHTYWNqr*+H>NCcd=fN4$6P_=exsPA;ex^&o( zf}3u(B_dbkH5{eA#0B82ko}ZAH`r9hkj4JiE_18YX{`Zbla@Qvl-z{jSGmA1o3;MI zW%Kc&)Ixd&Ec&!CH}8p#cBl~JF(rdCS885(m~-vgawl+q`O7y12rof4e0j@;(5kGc zuv!y*#XV7=eOT)xz#JT*JvcOMX2WM>*Y|FQ_9HZ0##tRCJkQHl8eQ4>L>1-DHX6o$ z8OVH_mC<&7wJvj~vIc#T&~rvy(AG-lh}=;rVEM>w>GV&CQdJ0ZIXDbs*XG zmgh^MxR{*)eRvzoIP@_gSI?E_@M@Jj7LZVnZS_M6@cA{&R&s+`6k@FJ*%!?E4dmi$33y-hY)pB3sv^5GanHxe>J%&2?>qd~ei<@56q zvH=nz*hVj(49=niBR!MvhK4jIpj6X31TvIP9ag-R9X?T4*QV)vHmk9^hIQ-gR8GU^ zT^nzosQ~ilhhLWqcJ}_bGa@&f!+@M+cUdL7T7kSTEw`JGBp*0Kkfq8&!wow;0@m!C zv*Rp(xfCjHtZBiOihoO9uyQ-l%d_i6a?jJ`je${d6^D~<)sHp$bsY;s{Y&tPn#EO-3N6Qy5I z`t)wyL+YKU}oVChXap;Fu zRH0Uib}mL3!RO_>>&$b`BG$Ph=dF|Dqs}sOx*p4^u7sU4s=;!0C=pKJ6j)d=vihyM zj@Bj&nDDY}OJrNf;??(iQz*MO+umpW$dHvF=i^zO(!E#FcTK5v?N*IFJKbQDSd98~ z=-t|^{q-vBh3;vPBGsouUuqR09iexW(@y2;!xgMyeX|sYw!+!cn+JIn=GukUfd+}d ztkJ}cAJlG}Sc!Uqgwuz%)?!psVH1moCiSZVXDNkcBs!W<17n*U1Z=iKHQcu+o7ZBO zdNqi&40mYErppQtXGxc9*PxVcBQoY%1EuzS03C)_RHrc-O6M6Wu!)^$^Lh{Vk z>)SafeO~`KdwhU-U%GAP-R!s+8spkihJHp=)7H`?g{#vg1!2EpRq_m2>DDwi*ySLm zFmyJ#{O+A{e14*AdTE%D81C*<&4aZPr9LK6jt@PyRk;9!;8mJ*A$ z{Aw^5*>Xd<-;*7BgjrVh&#|-9`XR)JTbjDqL3AWiB zIOqGJnB4fbE49!HLA#LGr5hFA@-t|xV^)#kNNQpFBC99175V-pj|5vxXYC28F1%mH zS=d+}{ZCJbng`DlIS73DL;37!{8P9H#c4mc2tYq9rA3C|vuxY~&wsxBkd7crKfhRy zg#hD_rclTLL5e4zuQIj10y~J7v!|`qm1cUj7~F=kOkRv)$nbIwO3o1`r#Z>i<1isU z;Vo4T0(1p)T!?er@l&9B6-;<^X4k>2Zc=SCW(okm1VZ~p$^^6cSzN4aJ8VYl`ZP3O z)(1)HJRU_qATjIBM507KLFM~@4K8qS=M62-<(n~6JX^m!{^s~OO#xS-44>nY;7O*o zO)YKAH%{k@UKA)pzc1N)tll&6qS`etZ+tk?uuPJ;unnOSo6ciQB2ML2i{K%jRSr#m1~_budH9^3 z*pz5!pYGA-0J34C7cc(hkR9e{Xff^9JLd`5g;YSfM8e;6T)`arFm!6EBat~L!CJbR zHOuvI2=|7D&S3FkCwSuD&oJD|Ng4d|;7v6(HMC;VW-*y_l*p5lp@}>vDbKoPfTJAG zA3^~L2BA^jj9S%JV{GQob<)#7=!xesVOIz)wY3kmdsoY>+RC<7?wFx-FNr;U=fRof zohnP#a_v2FixjDR=~Wyb-MS!$S6^=)KBik4a!CJ$a^+e3j}q-95lsKebiXe3LmamXt-CCH%UcfEFD!Bl~IB zL_13{Iye+u&oIuc0w(kxw2Kkhxmv=F8M%4cE``HYhUm#UxC&dAS$oFr`#p@eacZqq z%6X^G(3M+hhYB_MvyfLq;8<#WSLAuM;*y&`cEwpz5#c4B* z{A%!CZASle+5|OS8RcV?BQ`(Ws0PWxiYv$plpzjb(}#=--B>G@KdWgQ#N4M-pc>Cl z(;PGr`svaJjY;{ei|ZsrTC=C6rDbakTk8h7^i5f8s+`<75wO5)9ZV@t@CyxE80Fev z6x7h%k;?J{WGTqp)}-=k(Fir3Dbk7@G&=O8wdt_Va@F0J3) zEF5|{__+?U@jNSAj-9Q=qMbKjmITGbYVBT1z{+_NV*wX3oUYO75VbWZt882qx;n36 z4FmyY9VOR>h535z01mLTW$j@&1MwR*GuWaX45Pl{^vhYy+t@sMo8dT`-D<0#|I{e~qz)(u$&|yOPUdyV`+1_C&HXE2AqGnETr`h0`n z$92GmyUx8mEDA>F9VgFJ-r&S%uh$8)zR*GGDAwC(JTXhUZC=mh!jjB7z1THQSbuIB z4Rd-2j4(c2GWp0X)obA(F@Z5}QwD75y_FTbZ+A9>=p-+3Sl%Y~almObRkN_bhfi+j zGQC0r@=3R4+J@PuA@l*>S8r;*Jw)mf6f4eiTp7aQ)0|4xNx)rEwYtiAzJ{wW?|swO z(Tw4JJ$^LKk42)RykHzQJ$pE6>|K%CA9H+ejl1k zv;0~vl=)iJ=d*wKvtBH=upSJtoX3Mv+KFjRB}qh&zCMq1W);?*g*^a(3(PH8z&@l-;LsX5VTh z@$nKwKDV4qrLn=Jr|M#+IP2a3v$mI zDG?8Bd#_d|ejb00&a7SmN2}2L*E{)=4i0=3c5l(Kn`->jWlPEP8y~z)5BXnnac&&1 z>u6fnkhc-xY~wQ5L#_hG$2m~GX4T3St8T4WLjTM=XF?^zi(b2dKS#=nC7&aqcFyPf z=70Vy7G7-h>(V$Yvg?E49O_JQ8l=IBuyhRyLO5{EEaM#)n^ggyj zbAG|$tP`F~K)jQI+$QN|6{{*L*%no4_Zw8iOYbUOVK*C8R#dO4T%{JlmaXi4&V1#o zZ@YbEMYY;xiKICw)p}={=dpRd*!l6Z#lvP-kuvaX&A9!5S!&Db>az6eHaW{rLCY0O zV|D{UNRP}(c9W7M2gGV8XASXV-OnzW+Iat>clTVj(n*f{(l_ho;sB4$0i zUx<0p`ilT@xX;4HpPOzy)qW=3=7{X`lUH`P$mh?Zo(thV_c+SI<2I!H(N$>w%9(iG zx$))4xvlOq2YNVs&zbIw4f#AdLR5VYExlskUmGxq&B`uObD{?E4J zkDxzKADtsDQeKYRaSzmtyi;r3a?UW$HNK5yXiIZGq=Ok;E@HJ^gBp_yaR6r-TnN9D zr?4M~JMNqxyfImxIivtTk%#jpdjgu%+E0}@^ESHd{GKP@+3llY_2x8Byf6a4=5VK> z3y?%mnObL-O1TnlZGe}uLTs~36wc(dKfH+C9fe&ZPvP-Jrad%huS1`t1j&{r>rdNY zQ?q{wiBXTCn9X=;YiLBGOn0~vur1h>w^UVf-cJJ>Q1`o~sywT^Q;0v7B8=v}%C0wZ z?;fFL;Ry&XrY+p9=+ou)FS?Mmu4Cr3x481yD`4Iti;oHix#bMLCc1@OKU*ztXICHQw= zfPW9OOOCW~avubz3-_gf2N$0WaPhv>YG_Z*zO4}#Ob`vUyChf^ocu<4_s zGG4K=;H=<;D-Z)LMbD zM|Vio@9ve_7;6iVaBlM4Pa`32Zm$|HQGGd+dr-MddCRZ$z1+TK#>p4@OSX$(OE zi1D0TjOiV#y9#1l*<&>Htlxb&zw6%K!Z=7YrTi$S`c&uYb@>0SBJtGNAAdf}IKsCBO{o`!iw90q6K zt6P>fbf)UE^)#g2{%y}ke0tmOv@4Mo&936kFk!Qahd*z>v28V;~ow3nE@1h578GZ4cqgTRPgZ{q4%l1*u%@7VVxQTzoEw_bLv+ zX|4-PaPheyn;*k$I!xsA=LLBpb4cl=!9Gs3$x0V1~uCnqXNMzQ3PB@JmYWjlT8y{e-Y zqJU-DpWe}QXG2J+H|ut&1lkYb4hwSWQGK(f$CY-;;0U%~wFq&*VH2_keGoj_ldd29 zxudmgv*tJZ&b+u(j~l|Xd+fb5dwdP}#vKL}rfH5$l4(2>RD%L!e@9M|1>E2ZY@g#OOGWFF^8_k()JIY5#4$9|7xAIpyjffKQ z3-u#bUTsS;rPySu!SWf%*a}+d``y4yBwK94 z1U?GNz%nd*myjMt8+2Z_yrvdMx2+-H4YQdr8~lT{Dko2bh-D_P27?JQZtJuCmpbm8+M{uh9GIW%K6paCV|kLoc|*h@d$h z&EjR9q+Kf0I^VDHRkz-?<=ex-VOOjO((>z(n!w8I-+dnt0H0AXa8!hz>+VE~ zb|+sG?#RgV*#^naI+)nzvh!79odl3DOegT#14_d9+g7X^^uDTM8RzZXS%D34>55e= zs_zcd-M+dC)%fY*6}MNdScw3na;r+0DqnTQvh21bqw>!bZf%5l{IRvgjqBEqaGcgR z*v?~~u}|VN;+xD{_Q@h0*x;+}nj3W&sGcw7%}Jm zITu3yym?LiH)uMNU0a6r%`4Is&DzZAr_`+XURX~&?q<+s*84fmXUN>ohcl5NsN{#k zpc^|{Pfzc{ho)yQl(l>gny0le4}XK_XJNoa4Gwpch++nZ=WOY|z=rU_IS6T*vHo zvmRVFHQ-sM%?;s+Qy^I9E{XLX3 zfrNeLr*)o|oxXMS^iyTkAUwGf zZ_buSFlY1my;G{e6>_d@$o2jlAKx>YvGdA9A;jsXSrx0V=d+-)2L|BzpwjHQLLo3( zX9Xbzof!#1U8=T&1LN4wOy37qI;9`&1`>DNzS@hPmi-Luevl`ho9Y#u#e=7EPX``u zyT0*6mzUm#^PU|C;fXIkf3ANAmyml4WO{Y%3XbjTV_n^#4JKj#pS3S)F=Nq^a4i>v z+j%VB&x|HDmY=UjNNBgmuz@i&`7RdzlijzMgH&-W!znx^m)mR?;ZriiS}XgwI)Kf% zl@*-R<4={=IX*3EHYhcvnrDhLxMSIMD1TTnavF9ydl-#91TX*nCeEeL;<;f%Evr>V zQ(bU>M_q{MPu& zidAB&gW_?LAww=b?+EI-ckGP3yYqi6s$160NV3kNy5@~>dko#YndTnT!bdON-#un} zq?-32@}c=J=4GDx%%7P}{Iv|6?XMb`M!c!th$?$?|CzLDto!oy^JiXkOSyU8{L6s< z`?}ej_vS-&Uv6&XZw`M&{Eg>tmHGGPFDd`ax4v;bzxng8e`DDj`Yn0mjrn=MlIv|~ z_P<5s*>~^0yRKhQdE4^xo3G-Vwbw3~KX=ZIiQ_Ju8o9(=Vm5#Iu2su!(g7b2nH@mX zW|~aWeA!f)#pYV`HNw|NizCI6-$uup1JU{Gmj9lM8EYOsYkB#pa?fjGhbZ}hNbY~d=`H{7Pa}UCnGvgv{yv1~ ziAbmMfBES?&-1^Tf6FV|fhv2<|6>lD zW9DB?ar7so{~!CC7nv8io@-QeQRIKDg#XpKUNL=2#K zUSxdCFDNYdL#%(`v;Ve}N|*k3cb7+R`R|`y(*JCVu2@&>A7WqB2ZdsXEkr+#{m0mk zV?X3CSN4C1{fE4_OAB%_|6hN4CiYD1qJj$w9x)?^{7o{G;DbBNgdyQW)4BIaq$-Mz zFtcpxZ-jY{a=#bKc$fcA|9i+B9T@!AX;xSswDh!?!Rg#vr@1q-#q5R?Y-hx5v3aIN znj%LB#zw}NTO&0QwPEm|ay|#;{wH%2>Fy!#ANzN7;3PHu8~J|qN9R>tM+Z70#vG3v ziTrEiJCSz=-Wf>S|Mm1g`&SdWEpkJ)v~l56BpY(3^4~WK?Xv&t=}!8~m@6VL51fpS zjlDdO|F<&oo5&ZVe`Ef}jJGjcVtefU&B*b{zl*fReqf%me?HF-jDPz7&;47m2EIHL z=kGyNA8n0pjux5kbN$-Zgt|lv-I>uYwS!ZOo>~C=T9Qkv{t*KpKm2YRj4{8%G zK1lZV%T25+QJkRM2+ccs$6nTKAZIhoM8jPL@Uhw&UGot_nz7aog7z7UJ(GGDOIQSOHKSXd7*+B$UC zpUR0U%w5BcnK&#Gxsbf0EKEe`P8nnE6)|Hed#r^Ktdn-aut;>mu&9~f+CVuZu+O$^ z!54-VkUpyP;Kas-^{d@n^yIMN(a6MTEW$lHad<2?k=&yxj*GjAjNzG!yWp{~2rlCD z(IsG ze_K2>xM%rJJXzm>Nui^)jx~4q@ig+v|0sT6$A(r`u>Nc*6-lbZM!t;TnH~O4Ap_$K z&m^ZOg!RJzDp;FW^A#Bz67th!xP!E}RaOgr&j)p!rI}2s%eZv^;*k59!YB{(JcbT& z*yS7sOdkCxmo3%J4imhm8~M;o9VTX$<2r3i{{0)s2A35|HlU8z7sF(S)o0bvRmSB4 zOX@shJ>_ISUr^n0XWnOShUU|}K^x1ZC9{fj!K9z`#&Mn4uG;c6GNebvZHYY9{`n1F;``z<6vnK}9L+C17_TV`p&t znT^{}Y@`v9kzGfEg-#xFxj@l_mw3+k6z_xq#neE2{u(CrsWh9u#B>DXR{mU za4d4J%DBA!zs$XPTolLFFkIC=OAqug!w#dsFf$;^9#^754}u%GMU2Z$A{tHLny85( zQDc(onE__l7Xc9vTyS5&-9&M~HSQSWlAxk7x!Il@vp!k%JJkc4+Qm>`sZ)D(b=RpXI?)11?*Ud&4Pe(ds*M0k++c?9`2}<)rDw%Go!Nk+xu`zI;+(lK z*+W0+z$CY8XDuWx8AnJ`1C-{|;8PJj$mY@f%AY1y{xYZXc*2G%l1j&cE^&P=LbPJR zhc0LUbbhjTrmqKu#*zanUM|HL8aL_i4OgmNCs|SZu#hde)P{XI1F{CYp0}POs-{H+r<#843&*6}hIPzUlYOkYZU6SO|i{E$8(Lkomm;iyUo zjUsFs3UhT!K)cA557Hw5)YYL*q3Af&yQL?Jeq^H>X;3gQ$d-isNmb>smP(I)N{<>! zPu4=uDV^XG4O_v%^c?i;^Wo4n*zj%90%%^36*C_l=0LSs|9T<=B=5D!P^7LFDQVyQ zRb{njfq`pQ)-@+P(ba-_8t%WWC@?=duSHT(ktC+TqxJC$g-5Dny&Cce)E&kx?41ej zT{2kxgre2_#rMUrS{r^Jn)IfAQ#%B*8L}>*PGm7I+G5C_~;ZAy840QkMg3| z(mRd*2p{F@93J7*UjlIyYdP8+#USnvmX zt-0(O&`Y{(pz7(eKwXdypm1U47hi;VNT{zaw6`Pa(Z2eVb~NfCWrJ@Rb-vn*ONw28 zL8z`x4|9(;STEY6B-rEVQWbm@lBGkQ7Z z&~oXmKhhZO(KrnrU(%ou2(IxNl&my6-J4euJ>{2qQkTc) z+RT~zJoLRTZkYc7JvJDXKRWmI(F)a`iAEUjx%$r8k2J5Sni#y*AnC+(cwd0`IXICW zj2etD7z3E0V5lxl8JI7?ECUa7;f3&H@Gz3Tn8PL-)3l(+sY9p(cEN~EMd;f_2e#OErxDS<_s5HSlKhh5nYL=24H+0b4$~#vD>QAZmZPLO&1b|J2@t zn|p~3O6{+er{+_2t~&?&c9=cq7$)a0OYU7~Lmu;g?vNQz6(lq#9eet0#02V}_dgRn z;aZ=$uP)(X(qDW_-kcDO-}q%@?e>1KgTL$g_D1O2wa*>uhsZM{KE2cQ?8iHgx7R+g z^D?-W1s^}`H|`tfjXw^^qLHxf%$qZ3JpD>#=Fp+ayG_(L`Jz96Xb}6vfgg7Gpr)fs z=Y6oy;QsUMgNw^Y4g=@j_rqTNGzMIy^!D)mTm5-4EBo&YUV3@qqQ$Sk(bze!zp-@L z@?KsFg$RA006$+JZ!b?ztyZhiXguIjyDnb3{>+ZX&sjKn{@e+moVWPZ33HZ>&sjJ= z=OuH_i&N(>p7i`{6BoUn;?nc%JrJW;-+UUKn1pMV3!u~#O3*$`ol4=A2csk$poFh_ zFhRlrO87GmCQCR#3D-ZEp6U`fT@o+?jgoK*DZ^5fD&Z7Td~Z*vF5nJ;zAFZR8Qx<6 zNSEuhu`y%EjZaITFmcl4DNjw!nD+Ga88c_O+T(x9&&O>xdiMXB|H#(TC3^XTB7>XCuQC%h~#emr#l&;F$k3I8sDiv3eJEA?koKySn7 z{f_WC?cm_jQY9a_n(|!VKZInBgp=x35=3`?q}?D)POhd!kI+5$4Cw9<`uz2={uFAP zuY68n)2kB$Q~-tL+V5$lB_}t$T}%UMU-Vs`5n#cyOH-eRK;~`Qv%edGS7hWaW&0HG8V0AoybT%S&>W&3hg4ojwZ2ErG!!JrV&1 zyYrVq57;x_c71qpy{}J)Bbny^PwPb?9=$uQ!&3xaTzZR3Dix{xdfj`<(dD3qFXTg| zR^f`Vx%UzTGyMPU`U@%1Y<8X5_vG*qBYRls*GZXNq2yF6c!HWjSYy5f*MSl)W3!Gf0gjRPCumHobF=#~uFqgS z-$Yz5kx~Vr{S1A%r;SwFIPvj##HETUy|X?(iLO`Pzp&H(X3SsSs3q0R$K$9?5ZV?n z^nt$>%&OYeb@gi+o3?G=(EupzkLJ)_e_%=fUlehH4hMbpGy&HKBFg^gssX?E z?IEas3r#{DnAKqBNe%P$Wzs0n^_>lp0BsZ8=mqj!s(o~`klsZ~F8UJaxjv4OV zKZbroa=jYBu+g;z`0T&CW`bz^=|J<5kKX;4f%DHhwgBH_5z^A7+4Oy!s@qDUz&(2* zY@yUEhw5|Fch*PpAIH{}j-E*WXLq_Z>aPXp;iZ(pGzyjXmvCqu_|x&G)SU+16Ag*K zhXp>SKH4Rx=X)uAJ9%8xz4`h-4>DHKv3*AvDCd+jbC z_mf=kuRN4S{nCp*b13ZPqmas=52rvdZ-IFQmcOebOvuLG|zlVNP75I)Q=$#PAIQWWWZv})en%}u4^ z=%sXBia%cx-=A;geXd-jI1LMFkBT+*AJfCT1c?sM(a4tzix65H7^-cIL+w9J7wbBt zhwUq=IRWJGTc$T(7&90NY3V@=XDuLiwy%8A`t2Dg4R;!UVQ042xN?6O*BaX`2V(c5>*E8Df8SMUbw97+=|I5{2 zTPsm63k%Wv-1BIDoa?n+E z0|Nu-DECj7EFUI4-^InCIrKD6!Gm#s9E^RjTAK3u4gCb#WdDV}M4y44MmK03egwK$ zSJ4Nk6J3OP^t0#;=whAvleqK0&HUrDKjI%`J`f+&KG^=?@PqdsTzPQw!KV+te(?Q+ zUmiSoz<_?2`$Lb1UJrdA20ZNZFzBKFq2ZzFVZVp{9}ajJ^)TjP+@D&(8T9eP|MXKz z^u;}{=X#(V+6(>l`Zxg3hF<$$p%PVt%jq81%{|cNdkV~v(w`b&A^fQQSLyDe|L41l z??1c!|53Z7w~^-mrTqU%#xn4UkQ08b@SBaNKq(Hz&8QikSF6!)*be$}K8%dHi(dzA zxlOnTPe-obQalp5e!T_w6O{L5_#J~^5RS#K;8)>c1)n;52CmSDyO!xe-xPEK?)ta4EIJ8xJL;-AMoyCsa(pY()#3)c$F>}ob)6?Jui%O4 zO6~(bX;>}pNLh+h77)?iGDNcPa<=f2rDfz_z(l0#q2z%s^50qpxm-tJ6$ofa12Y1@ zh*U-Ff|lV>&A_s}r4Q~}P16Ve>n#eiNRZ9OT0~?a?MOx1ThyqlB?&1BR<(qpuH9=o z_E@p10YtroR1Rm$YILvVIdlsm*Rqw~{E({hl!&@^9hdTwU?~l#s}psJCumN8*#g>e zB}ml_+$US)AXbHx1pvH|vgO4NGm>?+LrIxIEx?Mpa-Ej;mMX|k$hUSVva6sgdgdM! zBUKvx$O+%RXx8p-Y{&Q*gWIi63&ucj!jyfN^B{Y^qvaWhYV7USU(iROX!<$2g}YmZ zVea6|>z&s38{1n#+FL$Bstv&O0#dE+Y~h$Lio_sgA%Hd~E`<{A8aVwa4$M?^H9CU7SLW}FN0^@5mTKusV?eSK=y`?YIKPYKmEL8`# ziz+M8h_^twY(}bL@W4R}QMUMW?1HRNgRKuzfr4R6fJwLa=c}r z6RLLWXsDORTF>IoA#p9|Y5F>xqBF1E=4{=f=xP~p0+QjnCa|bRu0JV9|4^V*C93Dp z1Qi*ojNKLx1`Vr+q;?FSztz=0J}tLke`5<>0#m58qC!peH$m+M!Q51<%Az&@#IT zPs`8H&xivRrX@&=y|53~<0$BxC*Y}gF3!S#2R+^jyb^E0@8MIp6Mu*gG1u^LbOV2k z51>2vcg!;ZOb}ya`Z4R-flLyU%%m|BnJLV(OeT}fyu>VGa+sxz$P_U3Oe3?N*~J`U zPB8B?=b29CL*^gMe=*-OKQg~Ce=u@Z#j06v)}QUe8rgnqBpb^PW=FDSb{so_ox-|n zrn7%zXS2_tJqq$fnCdXX`9*i+4JlT_9kfPe#3st zj+9N3)ynS682NblJo!uV#quTc)$(8E59CUPyTV5ipa@nN6cLIN#Y)90#Tvyr#Wuxu z_It$+_9w+o_7}x2_IJfO_MzfD%P23fa-~YCR(dM)*e8^Om511&%Hc{oJ5}jmpH`N! z3zP-y8_E{ep)6r*m5s{v$|CllvXp&Kxfiu5oyrcSR)1C*gU%~2D)s2H@~ZM<5DY+mnjO)jZLeX3tSB8gh3EV`K%8lXDxry8qZWh|Y&O%eU>0Bn4 zjplOmxkcP-+;Z-1ZXGucZQwR?TezpuHf{&k!tLc|p#9uI?mf=Qb#N!R*U>5NeeN80 ziCc;;b62=)+{fH4?jH9K?mqWD_Y?OE$EXx4ca=uvqw-hjR7O>lYPc#o1h%2dr&%~NHm{;pcATB=&1BC0%>gOKsUhKZsz1e+>`wsV3_kHe%+>f}oyPt3m4O@|C;}S|DBhqd9{z)ppH>5S6kG%YKOX5-Jot&?^7RE zcc@RQBRrx!;yj-47~(O)Bhka`G0J1K#~U7RdN@2vJXU(td#v}^;<4AG&EurU8IOw| zH#}~7-1GR_<9m;vJ!Bd;jjyJU#-NGN4AhL&q-xSNQ#8{x&uO05WNQ{{Ue~;(v1lBc zV$B-O2F(`D4$VPLo92DZCCydMN18jDPc`3Ye$^nYOsmprwBA~sHbiUG_SeR0pU@7` zCTNqisoI&^Iof5~6pjfxoFca&pn<8Jd2s5o}OMBZ?#Xk zPqj~m@5{bRe3$vY<6G!k;~Rd{ApZSjWd*09CSL!#xf2#is z|E2y*1Ktks3cM1yR7Z4cbnA5obnUuRx{r0;y3ce!=uCa$`y})k*=K5>Gkv=H-0IWa zXI^}0Ut`~}zWw_4?;F{7T;GX(r}lO9z1a6=-@ARk>ia`qCP*2?2L%Vk1tkO}2F(px z9Q10?Ye6f6b_KNt?Frf!bRg(Z(0f5gf^G)g4!RTcNzkW3UkCj&=zh?5K{%KVmIo_? zRl)AT>R?T~DZQ3)t-7?BE5#F9$CQekFKGa8B?W!OMch;0?i>gLej>4USfP z5PUm0O7Ttb?2rW^Z-x}cUtT?Hn{=Ya0|9M_hOqcp0Nq(j15g- zVq{MfB> zyHk9MwUO7^o%jtl*I5K+I~$7+up&Cf+MJhIoA3d+Ujh4v;O`pXAA!A#jWOQ@-kU(X z#pVjPfZh%CdjS6d{GWsU3vl}i@P7iXl8GouX0x>`Y~;AY)_y^u$Cnf!Utwj_lp)8{ zl~(^rN)bJ$v|fHenG!^l$&M0bN34gvotGn$wp!051c)0(@7LiRo9BMCekskuD{10z@|fzX>=% zCqQ%y@LPZbbOJ=T0l%%(bKPL>f%#n7CjT1T{t0g1C~Jgol!Sbv^l$%0nV51Pc)tU` z-+?Ux>PBmA9HC#=*C%4Dx z3-110mAo&&V9u8b;X>qk&YElBd{e?WXop-N7C4az+)<~%!54nuGjm6UWG*^48Ny5D zYDg+ql{^}F$8xp8Sir|Z_~ST2#sM79G2(cxN|wfjBu@bTiCnF7B4=eLfuAWLJAAW42bu1;GY5Uo&oU&=$rxgOu%OXK9j3+f*s8Q8M7daSs-T?SH=7d+@AsWXMq11 z;C~kIX90f}_`!~z1ODfL|2g1)4$?Op;y9N}6kp)l$O5j-yo75*BG)EZ09v^=?BH@y zA=fGta=A``s0iH3z^$BXYX^f@ac#+UTncUgvj$8Pn6+Tmaf!?}E`>SB=`HVa!R9ku zqbxvWOx3AsoPAZzvLIDtYKW@N8LC<_Hf=t`tiBWe!v?Eyz$^R z2zbGWgMoJl;6s6TB(Lun3A{jyZE)T7QWfMo3BB8_*!8PUqb*o_wYOX_d>jm z@_Vq8Z*@BPJ*b_JH@EZqob6!m;9Jcd{6Kt+j~9>ex#&3GDjeqripRlzg5M{c;13Xh z&J%nqI>`?ALO0^-ZQ{^7U*aBedH{Jd6tjG z=fHjr`~XDfA&m2YpNDvXow)$K7x`9l5paO`67XFD*a@;a`90_|pDSDjet^!)5Z4bN zybr+7708DxApZ*Rdx8@fQR`hkF!>%YPyUoo8ub|;-~JDf`8kC3IlwP?rT7Ju)t7vY z@FgE;`I2uSU-8AxulOYHYhI4;^L6AtU(-(Ew~+7O^8WJg_*(J<@8A9dA87s&%IHVF z4*dl2`HAFf0|R?zD9#<~lz}jE=vOxZ~^(iLs7f6Qh}j ziLtRLsoCP6)andK+NBIk+V!w+QnNTBY1h1wN%8uOr1-jdN%43^(jM!Iq*meWq$A|* zr1zX}C+$J+B(ZW^(hgjdtqxe&jRrzyLh48Am0xdIJCv=<3HUBVI zh~X&}&H*W2Vp@t<`{k61_U@Dl@<~dCa4*Fx`P&q)j+j(0abao&nmF1kW$cU!JnL^E z#e)68ALewZHq*##?qE_cLTD@~Z9KK-J0ZpIdtL>N5I4U-$F*P1& zgMjvAP8Dm;2}v0Rys3bX$*EFK1p8B9&j6mk0h|Lc3*bV4IRM`TXaQ&kSPHNTU_HQf zIV|3i)5vYj5rv%~V<*6toW`P-9MQQyCz?Hw(`Y{k_QN@i>=A%%IgR{L;5m^KZ9M`0 zPJ#U__&W>mJoq~gJRg9+E8y=#u-^cG9|8Or{B;4(UGR4o{M`fl=iu*ifM0^YFM;QN zPPFXXoRHk_b3)`l0sI-@Zvg+uX_WCx8_ga|8|9j%Y=`I49hbb8vbfLEXokGGV}kf5 zn{0nmbUNOQPAzzol@-4!lCn41uJSjdif!ivyTVMUlaWko(2 zzrweD{0e__+KLc$`U-!`Q!8r8)D<;OFygEgHE7<7SWH%kgsfowY%AJjWh+>`az%*z z_qVrW)TZr3ZQIAF+O!Gkwy6C6ZBa~gTiMW02?@ZIJ?KavyMKs~w>F>6dMzk0>oqnDNNe+%Z5JF^ky%BCx|ok2A+;VJOQK80)g3sD*S+}I!~7EL#1ZBCaAMgpcku+ilX|U_5w4A|kyH3$;nlpo`YZ`SJNom7ee6)C=s9yA8Xt@F>BsFI+ zxSy*8bPvV9W0nX6Q0md}wu5Dc87=`9mbTd_%!(txq~htiQdq1da5#H zIc;zdZwRR~5c23_8rNZzGn>XO+vh89Xnj3Jx`+n&2954$no(J_rcZ?UK`>Hj-U^ib z_48$qc}rDG^pT2M3JvNN4G4tZpkdJZ%XHCXW${j{J=l08B8K&$@ZbG(5IT_ zrX>FwjaMoyo-AmVkcmMV$$7qvgWvry|0A z!h9jmfaN9)>}(~y(JT~c0xu*$b^DkK&4Qu_$xt$HP@xm4Jlg)5iB!rB%F-1Gw?t|? zL>)c~gj=%TN)h4;G@3ckEdlKU?LdxsgDuNP5(>cqR`#|(gC-8Dl5+iZdWPiaj7oRYIKOQWcfh7?hJ%R^HCt6*J+Gs5i^IVZ6v*2 z1c#n}`bB6Xft`Vu1Hm8EtKmK=Gy|cU?xi7}r`#XpHTy7&Avl(n#oGLyzB1c~8R8dN z3I3p(H|GLkx7g%F@hzCfD- zt?FQ>6&OMW$HgEOk}uVqg*3g{Pyj%XvQ=Wssgk_U%ZJ!N$Ue+%8sjrGxfYiP$i*xl zD7#ezN26Cq}5UOOB545XnSMJ=Tevf%ewUH)9sx-j3o|fXr zG)*){5CK33`)z}6hql*bzbcVAPRq*I=iNX^EOeGMu^>E~=Gjmxb%`qF=nn>A zJ-rMR*}QycnDg?N=|JFNA7~L$SCUV?OaN}Fl1Z8SF%@-#M&vjx99jjy3uJR5rF~zy ziKbf0v+pZ8T7Mzem(X0mERc%T~QW&68+$#rg=rv0wKXI3p!SCk}B;Y2wLW9 zF;cyNDtE3DyrOQa;IC(8)9l`j;UooHP!W;C@QdmX^{6hP7w5uyM7S@ZE8^z9 z@lua^-lIWU+-f~2y2YU-;w%*BpNZm>FQGjmDERv?hLzzfKpp-aB*YPP46j0E;wmI4 zYLQS@kM@cikPy=hlkJC*karj@7LS5*fD^@uP9(_Mfqo1LmSZT+avb0Zz)yi27}&2y zu$%__`(Ot(An^>qvw)vP0&@;zoJUwZ53~zFy8!q_fEOX$OF;Vo{C)uV72v%J_%*<< zK^WJOV7meIkAdC=<`&4kjV7~q(PZl<06&E|e+IOFBEjn$v={#j^q+z6SCH`=`1=j? z;C~0Z77JdUu%Af~7A!$HP7DTn2*#EW!1aKK;y7#oXuyJ-5wsm5Fc!gp4h<5)-~q5g zJQD0tV4{H@1GG5ci32382lMVme0WdKY;c*$ff2>uzv+%e}#pBufhH^ z(0&HqUx4-tZoTbd>K zHn`o<>=y56-o*6PxIN3eTT>Kfx|6Fqkf1$Y~egX0R3gB1Z_iHf!1#b5t z&fjW25WfY#-)XS;9q@b)`1hK4<_F;UQ4^1U0=Hj4{x6#M@UI~MH_Z+4H*otM%pVZO z15FdI)HdNNZIf7~jmNcGj5lfHwJln#J*X8d?b>+V-@LFc%L{gu_QP=jegYHc7l-5h z;zTg`2|px)!2_YM8wj)^KpP4W3?2r&34Vg*NxwKI$xoOk_zAWgpe^%5;RO6uf~ocs zV)RpmzQR<&qkO86SUXj)9iAE|woMh>j!uPs2<#`P3bNBvF+MX@@Hsm*4u1$VF!(A! zF!&mn>tF|iZ%mCBZ%h@mA5D$NcYy{5e*!W;0sE&w{|xYdg4|!HVsXnf{p5qwc4P9^ zZV?O?-}*=dgDr3E5y4>VTknaEx8B1A01Mtaj0*u4z7@Z^>>a$i>7DopWWfY@yrf5U<;H!bln(8B{W^WyzB=V8BtdGY$m zMOdF%6tCAG!1}lY@qv>M;M!*o#2d&D*iimMZ-xBRJTPr*KW z8EE*lr_qdA!tCeJn90x2AN2xkit~5ahHoK!I6!9VU56?`A7ThhxS5bCEE;*gya@I0 zH^9d)pif_OaB|4R5rQE!C3IAHM8E#V$h7FuvFY&>298MumFk-EcSvrYm&LYpnb%wE z-(LP^QN^l_P5Ef`+Nw7OR>9)4*Xvf-u0o*GwFa$U=L^dJ2M$i%zRk-gIMiSmFlaE^ zyd}Yq4s!6UkAjBC(W#T~pFVr${JD!4j$co`k^IrC;Z-2p_ZeFAjg_8C6 zkyALC`Q@$8YMlrvGH>@szFrEy-?~-4UN-lWe#~8kQ$V9L?|ky|&|wJy{<=UE)Hfs; z&3X65RM-}1-lQoAHpD`xdE+LUcu@C%U9`rdXQ$7coB8U3SDr$N+3$gtS{NF;wV<$Q z+x8hVcCBn#w0lnG^K<9Vqf4${fTco<7QV80$*Vc9z47|8rIHj>%W^Dcn?W}NvB{um zQNwOwM?*mAPzKpZ$sT4VLMS{tSpJlJEQ)6{KzGlLoe3q-#&97dBm(A7vqG9e-VMoP z_rR>FgFP0qmi;xPl>I&=MLt?STs~1gQhtz~D;vKtGx&XW0s7PxaL@e^Lz;qxH5-L# zS3-TSg%*5^|Kf~3&%L`Qa&MS}Z9=4B^+yGV3Ie#Anyr>?3f{i?(0;@Y zXYw3k5oGWoHiT4)wOBmJx~sfk>V_16RqqbOst9rjqY#ByAU2T0q>!{SWIyuJ1_PlU zoa8dGQmhjXx>E`DJxk92Swl{>`3O6xA9 zmyu2OLa{NBvmAi$gqA}I;?dkrZIL1%!n3ulh^)P5K8!2{mLmES3;T%vbm5mD^>>T;xkq?&O-)g}9S!7dyyGOEMzD9U`o>rN|7d@&id5fc8Jx#LQngclLJHJ zgXVl2YhJnl8(Y`zxPlj5!~gsg5Bn$X-k7|6kn| zDnJh3wJXVGA{68c&7_&j-F$L&pY2=Mad%OPhv@JmrKq9)dI70vvb)Qw0_+SdAb5x`!c8U|J!}{++b~6$<4CH zU8UxSGmjq4e7dM(hiK+4r4F%jXXzU8;zqmpnb=ub2E9ae{hs31BLk3FQ0J&#RiC%B zj+E*h4*lk8ZGL67*3wG52vp-)@I+z%{<#p^R#Ke%U43Tc`od~!OJ*o*ep&pYIj_)! z9HfYDs7AhOGXK5&sJL%a;rDtWZ#~qYg6qC&wcENvQcEf@6ld|;UytuKyVYA-b~Y9@ z*qR*;;`$KT7NMbhy>-2HQ~sX90#c&D&_Ti7vZv5I#9rmduc4jI@&0HV){51RYWo^z z1$I<9Kz{Rq{zpkkfVO^1y`_HLu)5XzfL>8l{$Ho}?=IS1w7$8{UM>8xrGIJefqI9s zYD@W!m8+`@_a0P{qV0{VYS-6e&4i7m zh}03srnr@)U`GWhKP{YWT4N_0%1BGYH*s9^O0p_~Yb++!+stf53H11DeV#th7~_cWoCgA8lMEuG)4+ z-(GZ-BgHoRGaqhl?EWq@^!I=`&TJ?l^`4|S#9TOz{nA!svFACa&;Q>YD6FBw1fhJp zBd?U0p`f;zKdBQwY2btlYZ&P2?4ocxE`Tc`!tr;H#ii^CfME{@{RZq<9ssjgfY3e+ zBX`&!5Skt-GssBUlu?-*Z#PZ}5}z&>pN%U?etF#5yk8Y)u?pRH z6Q=X%zB==iM*pS1@U;$k=!Lg8>Ob0|*FF#gH}iYi(23sWTfX?yKs+l5|M>UNqRu%( z@0fdsAueHX-{sgqu9D<2-&DgG#AfEC0m!L>U27ul#rNj|9o5pvqr}lFA=`NG^-5?|%+svJ$O zu7hkgiNaUIRF2F^Mv~lJT3YH^V-b!*Icy-wPzusO!fbM+KK-XrL!=$BZZb-#luNqXJG^<)EC+uk^8xxqItsBVMiQ{e2c}- za=RnoQe~k-xDsz)Eq0cbI4%`Inkx^MSRKN*CBg>Bi3n8y5(^za#Xmvnpq;`vqF_g< za3WvGckCUOU+OqeMT(_SgwnA~&-HWcbC@|RjAC~^VJj-gxF@H>h`MoMjt?EpFp^m1 zNcMG@ub}+{FTt=hGkvQ#d9ou}PR9^IhS-EWX$+BSZ#6&s*I~pbFo?*rJIv3M!^P%r zi-qqwhwu+NjxgWI`+AV$sVc`ya`~engjA>Tc;`4~JOQnC3u9%ROb3J9Y)rB#mvJhI z%AyiX#BiLk7;J_-!%5~ebA~y`KP`+O~I}*tTwEH#R_h0lYwVFSb@{BUhF!hY zC%4Oej74%k<0@5wJlI$!*Be)>O5`S^!C1?zX6hKHyhDCmUe9bdos^%JpH!|?Rl_2W zt)_6}8TkNXgi$ai8&iyUEDS>qfE_AyHZqHRc4cDIKfyAxrThhDOg=_7S^4R;sn}dqzG|k4byKpnhB`x|0ju2EwFWh-Va=Q; zyzQEBWp*+MW8q4LO z#yVB0Jj`e`9%9~Q-ecP3$K)sEhnXFwQ}Xxar<7Hy8WmPKC(A2q4nrW%hjM@&}ZdnU7DnsJmORWaQ-(}?2rbyjxnX0 z(oEw_m>Z=^RmnMrA>Wj1Dl|Dvy9~9a8dHO*&V-FhH`XY38>70YJgauodpuQe{BRnr&rWX2{`=R)}IE6Yl z&K74@3lZoErFv4ts^zh=SfaiZ-Wg6}g#i|Icle!f5+}wv2UyjzI5tjHJNvcwv&0FJHuac@u@Sa- zF_Q zC+uYGMZ82W!Q1RT$~)OR#k<2B`8d4=AL8Tm5q!$l0au*M__v(>FewZ?@S>`&*)`(g`U$3dZM@Jo%(h?3O#5zWY8KtjeU(l z#&pxurU|C$rXo|ZX^pATgu<9GS(q~thp}Puu=dD~$YYVmBTq!0j64-d!YpC7u+x!Z zm^Can?ET0yk!K^%MV^nm5P2~Yg)`weoDC=8mT)oL8r~6pJp5!hiaHj4BK%Z1j$)$N zC|Q&|N)e@uIum{_{6aVvbvFEb_{DHllv|X06d$FI@`%zzT@Jqzel`4q@DIbUg?|*@ z6@DxHb`gUiDxo1*_pyj zX9+5GmUfh)GNH^|M#{u8XIV!XDi_Kv<)qwN-d^r3KUR(^aD`9-FQ*l@3b7)$BEKT9 z!dlT@;jHMWa1Ak?y4v(yFgtZ5y#$O+SDg+kSis!LOy8)p0YUVr)OBlyTVsgM5`!rq zF)Wb)r63Z6Dq~PvOmUymm~Kl*dD3$SIuj$B-li|VFhG949E%GSzcXMnR_ zb}7_4yd+fA)rMMm&?3enkE?i;2OlkX#>!*6M6vRqe9VeGvhjEokD;;W#sVWl6DDhtxSJ!9~(-28Rwlq{DS*p`8*nyIlh8$_wnig^jj%R6NH_|&QX+n8T zR-M>n>Q0*9JOGgaGBN;f9YA!}0o{#*PDdbX1kQ^i>N3W-(jH%DW~XgU1FxuTBD zCA!MF^6PUITj$D7c&pY-M1>Ps_>+lD;lze&Y^!$Lmd(~?%L}p@F}rbeohKGO+iFmK z4KApWJ8I;`HF(ExTsYkOoDx1HA1&MCrnI^pn81`wU@Q}MEh-3>Z5@Cu1M9p2rTUKN9LV{o%{&zBk$v?=(n ziNSkgP)Q6brcS6L219eR$Dl%xcvXiApuJ*xE775%bY`ti-89^z8CoZV2#uPguLe`5 z+njFEv3C=6z6Cm;Pm*-qjoQ23I^5k~cRR8%z1zEwEU(X_;yJKZA+A-Ewbc@h?jEDNubMsZsP4YGap1kEoy`87+^#9z zXSaCY4!*`I*Xp|EkdV%F?~?TG6^uhCKR}cx@|1;n^2X2|DG-H}^;S1xtslgkPejnQ zB(h@Sn)ztIKUeIJ9sbzr-#EWxmA`FO^)ss62rT`361f$+J3ADHHC@!P7Xx-YgB{Pv z@Anxs$h~?H+cIdecKsdoK-{ew7?zjrZj;MuhauZAM1~ z`u<9>f99e!GPGp}vh2VxjXv#%bK`d{kNFRz3#p95XU+9wPIQbsj32hYIG&-yJ7&jFVfVQGPTA z-Hxhgln1K}qmeBdk>PfUW{JimT27*6dC@p8nz2Q@IW{4(36o8zc@uhMw@P+#lTzH& z_v61K+uwsuty4PIWv1?P;AThY@i}geIr5^pUWZo89joP)^ZTr3a0$a!Gnq5qGiI`v zx4V<=c?L`jINyLo18SgmTxfu|fzy%g>*_wp{Hf zm)q57yBZa%RrPA7aVD;siHc{A&4WXHW}$7f7$RBhvy_fm^4vHi#-R<;JvUC_h?8$? zW*yC$RjV=-WuwsMQB3`)3^K)|wT>rspCt6nly`gdMYg_f-Ou;U{;Hb^;XnB?O!du^ zVX`})v5Vbi9D3q~`FE~!iZ#z8$MdZC{Dt+%v0mPw!nrEdiMLdaw@}_&Xyse7inr!W zIy63W{zre4t#Ze!+#}CqvIjF2WtmB&p1dRuBxBw326Fe^8td=mjEx{;*VJdCZm;^q zp7mBU$}@wW3?k<4wgijWgCz8|Bw%7zTg}QlkuPPf?{+iEicE~%q;Qz9)nwHz{H?oQ z$K08!lUM6J%5)ykr&kZ>y1jM7yQ_4njXHcpXBl3m%ZHvTZ+L^wI{dKC=R{0qV5QC- z{#SL}DqUvy6&*UML!u5^G=@8Lc7;0VaG>QPCvEUJU$WOxJF-zH+OE65hd%e14!7#= zMizS53Q$|5n`#Ykj}lpP7yli*Cv_LrIBm$BnzR(v`0_L_~_ zL)&Cz+nhyPUd+tdx|k)4GiR@@ZX?Qbx+U@t<{kPQOAR;U8fLr>RerB!Y500Oqq^> zzN~whPF|>kQHBTH59pN8hi=j-8=xc9vA}HCg?InAPFbwOz+0eW4$@p@OC@KAPSO1Y zLxT_wRZN774;C%5u^W{L+#|1um`9nFwz|{ z=~LiKF_Yd10)P?*JMISb364pBt^EIE?#%f3A9&H^D2l3ua`4e1bwfC$~$ z1KBqSTX!evEMz4c1VQR{_KgshKxE%hP{fU>s1XGf9Yx1&Mn{`SM-j)K869TEE$>sE zfarJTz4!gT-ygrax9Xf)Zr!R=Rj2AMr%pdGAout6A0r~)faJqOJR`Yp$3fyU5h*l? z*>U(7k@$to(CCwim|b(2IQa$5ORn3|j~EwmK#*qEm=8BNOoTznI~+OPPlUe7{RrzL zTo{Vtz=Q$G$AF5E%`tq+miPwglXo0OdUh3;yhDPwvba4%kqjB^AkvAx8df5F$YFo3 z!SQ5y-7iA?#N=Z_;wnfM5&`Eo3yVR*1=PXL5O4v>3{r|z;^{LeE|iLpTITlba3ao}2(FV*bl?#&@)qsLXYO45nMdTVs+r*t zy5!uFwHw>^?mt4@ZU?O02rqVfo9L7i0s!gAf+){}T0nPEy+Ts

2!a#00b zBY;z1-cCo+} z+07(^5*mxoS+nM%^Z|}m7VO}kfG0VhLUjr!5TWl%CQP5PE^`A~Ml@m8Is-+Equ|Ni z$C1D<89SnKk_|+PRO=RJwIID92%kiR0?|5F?|>O#P;xGEA3Rd`Ig#`A`HvFW7(yQ< zVh6@LQY7qn_@PGyPLA-5{6mk5B@XmaTtAjrIvyY#^E%XLBB(Kcvxa`cNAkMXioM^5vSTaAD-A`Gv412&U4X_*Pqd&L}hsXMAtvS7>not zdfON&=l~Io*Nnx?*K3d%HT(=@Q23`4&Ocp9G(!KhbdJd2;T6P>6Zy4ar#^0ZV_Ofv z%)RWkGxtW}%9(q+y&PaHXlT_^v}#cQy?8$rd0;iVP2^j@!)JJsQ(0CCjTV{}8#itw z`a&oY(7>%AdMKgLFo)jeb_bn2J9~ujei6x&9!C?L*T2ZuK-$64-`u64Inza(CiXzsxy@Vtt%tZ z*c;bmh^r~WMbO;>e`PT)h6jH;N0*pN%WCV(;4LY`WmVNx6;(x58itVQ8dFIHVgMLk z3N8CK2YY`2Z&gJ_6-eIL z*a#eohzc|eXfjNu0ulqw>7_+gH5HoWwe=fFOe6MWt*X<+RM*tOQ-k`je zTx%*f84{|XCIlCvKP1%GRMeN1umm;r%vTRhS4&IGXqNTHy3JFlvb9omStgM%H{FbAd;t>O3I-@OOsxLG4b1|8c+qdPKPcW zvIIH-9Q~FdWT^?tbV@Z#8I_lsD$#RInx&P6ECPdvl?tK1_zY<^7`C^|TT@ntbn9_B z9AJ&65<@ccp$JQ%kiDw5#F07E^uDwN`%`P+GPG(f1{(vwOEInuSxn)WA*-OK6#aH- zDb%klEvYYrvLv)g7PP>SrMPLGA=8A**x*YxRcT!<;G&chz8S1|4 zHOvKCX@=efJ$$IhxG$RdSX?bjRa;Mz8w(hP7y!Df&@bc|jTT zr7=berwX1zLm~$47{6thBPglP#F!le4u2|?eU-3rmd~o6YO2Y11gD!Z;tDhj-1aj@ ztyvB&WsZQXs$xe60lXbhe^*9Xw=>GFuPH-DX*J*(tVlVH#U=GMnzVXw$h4YLFp0F9 zMiWV^h59f}T5YizXoabgg#!|dXw&+VUus{Bkn)Pg8gr#t!!UU34KbydM@{tzs4pPt zC8pw9Z~`y^@WS+xD$JmcZk=9Ixq+nDn#!S6)NB z=4K;P1B`j=G2@hgf5Bf5KSng;6j>$cOYk%>`T(vcS*3-Atce(89y4RjfOYT`SF$bW z!5%eP#g!~+WeJ848{Z}5E}G&x%x{J)XaYbl&@c}|8mpi|44%d+f<5sI$5=9 z)gqbkJ{FT(ifJ(0)KKT}t~K0K;)19Fkp{54~BH8bD-@DFh>@M3Y^_E-tMpsjtHofR0>ifmhbz>Z-yLcH^o- z+_A+{fu%NZ9 z=FX*6nly)+oAIntFp8ng4+wGiu>f>KOChA{

A-X?Nqlj8TY5N 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%0A**obyv3}anhw%42Kka`1OZA|4RN-OWQtgG1 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

?>PrZK~J{sWKH`dKj`*y8wECYA^_8-#rmWTNf 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

4f5HSBi%ZwLhXDtT2Zo|>psXGC0 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

jZSuA1V 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

?s8F{HTcMCsFU!i#|JxwNuF&33|{ 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 JUP^ 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%0AJ62b<2qYccOz5l>LQ*6e2U;P&v7 zX=nyPN3Vf`7A4K{WwaotdkRtL?l9QjU>S*>srLG^*hTiIQJd4^TkmS-> zt@BBBxSVol$_;r%FV-QnFf!+ue%?5mV)1ydA#gMYY@1oVN2oSU`|q%CWq4E?+zb~} ztnaT%MQ^yB9i>tN1dGE@EyCzScu&ke|A8glRfP9ks0o@F_>I5|ejo=>c=8oES1 z6j9a2@A=6|w79b=Id(yEH2>Oxdne7YCr2ZExX~=*0($?X(L1O(HWxlyEhbnH{;k(M zY~p91V``*$W@3KpZ*@3cD$jh0DCn5eI;_FZ`_k*QmU^p(#2VTc)pA^*cNh9&v=&2- z(&E(n!ZWf7ObbUW4)0_BriPC(`Itv+>J7gqZ|VdgvXa^yXR zQW@@(u@XLYkYXu{6orqFYk*dmGFL!I)7FMhI>D6)ek_{c(|@ZH3TwmNNBI7ypOxxGJ#~cpBK~3mBKF~{o{6n` z(nx95Q_KcTV~ZsQc|Sl)AS#L@JJB2jVXn+7xzz?x6&_#!(tVY@MmXTLEX*3?|J8Z;nj}K_f%S#>_OQmuqxH0OL-=Mr0Urf2s8(qlb1>t&xtKgsPz;M-T3e-({hjZOWZTDuN|!+WXg{6KSrpy>fCgV1kv|)6`1A=x451*DNuAf2wqQ3 zDwW61?o(c>gC~|IbqlzGUx9AM`>xclV~f6sc?nwTMsCfEwkBarm#?$&sqh+5QS|(0 zoCXQqxWBjtzpygAI{H0H<&>m?IFxE$x>S2|vIWr;@p~JB1pfFsSq-WUC_sj4s2d4OS_cdmenz z((nydwQQ#{ejH_K_!bzq)hxkbLAWs{=8o7tLn2&J1O5Qv&jeJq$rsZUX!2eEof0KZ z_$J6j^~cy1?ia7QX?X*=24WoI3#L@Q%5P~_TKq5#SA`!RnJNLDRpHk$mT;xV5-ijT zs(v*kn@=icy2i#tA_~TY=(L#dC;a-C8} zoSDg^KxEG6^U30Q9y*mFFEtDgG>>-e$FS;z!z5f1%Uh0moGayC~juq{^dBh*D| zcgTZKJQj(e#XhklvJDAnB=f}>gMnl&fzFWKcKeT!k`U>ew6ye{k%I7DCJ5`pB_;$P z?w2+|2wruBLhy&_HmDCrL;C?Uv@60bFZJR1Z(7s=O{LJU1|ZwsqLT3Ql~iFvs(+kS z#I=m^S@=_H^D1%5Uw&gK+TZP*637lfiMp2{0Bez#jbMeXxE97lUzY8&9p(Ifqs;kL zo?uZP3Yzdve7}b9TPO!)Jp|jymuEJF|Jv~B-YD$q<$K%ZhW?X4iBR@D*&8)X_rF%4Qa z=HNfxhXOy7VRJM=DLW9cl1)-3F3W^)OPlQ*$%gmQVP$xwt)D6$%`h#(s{X-9O!Nj@ z;j$6(OT?%>P#g~mm9>)HOf14I5FP%^MkR|vu_%a$d18jt?$nb4^KHRo{ z6obomL_cytiw8?(RgVk-#?2)UW5&^gN!q8UtYLn_rO?VETA!g`Y%%AOyVT{Vp&ECQ z6EBVoS{J@>&^NJu@1@z?Sxj2EgM_@w@YNz~)`mA7-fbpwB-w!iif;22hkw7Q{C<(L z>-!?RemAn~^^sluH+cHjQS2J`AKVAJYUB?Pr_Y;dY$3^gROa=AiDY76dAD5=)B{6OegYL; zl8Fp`M3~bwtuQjp$-3esR&PZ6={^)L?TM)!N1-0um1YB#^-E^sRPLO?!S(s%403ds zicQ>@gY2jZSCn+*C|7K_1yv-vBlT!fI{|U}cBU=WRM$q81a>}-M3I1N&L{O)u+$Zj z*;EwalEl8u1ebq#g!Cy{Pameia_i|{?|@xz{iqnTcv%}YL3KAuwjq3t{C#kE^+l4A zva=Se#2^{((vVIeX%?P(v4x1U^t~)_?PRUeH`d?{P8WG~7HV`;o8P_B5+z?h zOni(I7hrP)C8q-G?~Ob`(@AMJ+^3iexq!o{MyZh_qTX*VQ~XRJ8*-H#K>kWm)%_I0 zAn(q`SsLbt;xNCNMh|ZsCKV4cObGkE7EGxNuN8OUA_2A&;2&|=$zh|5y6|$N6dtW7 zO2CX%Q9KSw72Z#+B>Bb{L%wlS8fod`rYM3Ro8rky(VB<9o+F>jEx!Ljc|p^|s2{~- z)cPeO|IdUr+OH0G_sRnE5WKEzN0lnl)`nkUyRdzaco$lg00M?Z zGxSNeL496|d)Vab)y4SOL{kA~Ve;(od2ovO_y`^P>K|}ZY-A~O?>os=8%32-D%RVI zAf<$HjW}aL-uYN%P%Ot$ZL)mS1gO<{)H!qTX%L@I!ey@PsV{B%@$(puU`u`qp!|Tj zR^znbW(yqlu|W`RqKeXcK3PAr$+~W|tcomsHOfPcO35)Jcfr3%tC)3d;>wbQKSeCu zL~5Fb$C3i#(wvU9=9)@&0=S_`N5qcwQB{_S3I+%xsg5-8se@xJ`isLsR=mlqdEpP^ zFzXw_&uNCqgA*>#wmcssL=E@_i>=j!Pna=>+_+EX*kKYvjCE+{HgKk_2{IQ%yF~K% za1_Z#NAPhlmrO@r0m+y7w<&xU<$+Wv0rH3QE%YJWtqyNs_G=(Uif*tj7kbliKozN@+c!6)<)KF4{B{!t^DqP#kDVPFR$zCj7Dhp}|`2Rw}P7Otv;ACoM{5 zBO54{7Y4K+5tpJ?xzmk#t>jWeZ91vdIxd_rI!1-|2BiPh!EhE52r3RfCw+W-s+T;&dF&NWWrczrv5B#oS>b&R*YnVX#G`xD-^A$4%S@bidLBkl5Apf=4Nuq$7Mal9! zH|CjFqq?J7ky~#3LsNC(9s3P$@bHiEe^*coze#I6t9hf57Z!wf?oU%k9_0n6s#V8g z#j$YVS-&c9r_ck5pzPO>8rA6*)TOkMESCQ_mvo$(rhHPhfRmY@?@QGPG+{)M9R0=0 zlHp+ry6I&56iFl`ynYxG9xoz+`vzJ~;2ubr+N6q^6%vvlYbu*aGzXrk$i*B>SwyuW zCH^OqU5k)-ZLUcq(-1D-D=Yv(9r<{eN(u>Q*G8l7!;Bl3(+EuXuO)7y*UKpE5KMH$ zj#$gs{A`lU%aQ=}>j^Scg`XXU(8mCSitZq%GW_ar;2(lP{$B7?+3*dUp2G4*N7ZGQJ7+3kiD{A*MN^h?Ud9Za^I$_FL<) z?HbMn*l6K%4cZ!2n{46uI#Pcz9@X=FzC$5XsNBj%Z&3wI)5FCOwrcWA)l-SRcA+E$ z7ZMJ(p`EmE4!qJ&8FTUteZw|vm*?kZ{#wL+VqPWp^`7L7eJY7{96u?YqIp(Xd`=?8 z1H`WX1e<}CKV4fp-4ajb_f@D;|HN>bz6;dbC)BKv*EFL6Q;OdT78Ly;&I4`SKaN#J zmKF69rZP^6Fa0Xa5v!!+8CpI6H}lFdNXfhwL=?%<{vZX>6rbi>FRmg7*FUr=(?XI~ z6!fMfKCYoxZo2BCxIT=`QfgsZA9yzB(8%R&we|W&%hA!Nv#XKtHMw=z!4y_yxq{7M zbGg9@SAv*RWwh6Z{Y{p)3f*E`PIQZmA4DTT@myBZ{5smp_S`&KikC=S*C(gWO_nwr zA}q2gJh<<)!ks!sRmrO}wTY-Ud}$x^X?r|mBwJ;IaN7)j6W~10v)(YFvi6m%6~r$; zZC{$G@XtP#e%7E8_rhDa9eG=)y2LFuS2uEYNo}$mTr&8XN`Y7wKG21<4&UZbXZKzk z!uz@;q^)7*_dC-iD;mP}!|pybodO?fXu6Hm;Prour6|h_usOp{@!2@ts}u_=*LGd} zO9;==b6m2~$)KJcc*^dO=dV>9D3_it9W<;QDk)lVa}|z!z~t2VOp%BWQ3#Ua!sx#&W;W7l?+ir z4<9@ItASW4B?v%e6{JOF0IbAIsSl4}w7>;#=5uWpVj=BNpI+h$c+{s4;+<-iKW8Jy zQcBm*?~Vc(TsMpYhCp8m7d1sZo6|bCOBi^oA91HxNtH!{36>0BA zrdK)M8Rd^l5UF$F-cZX*UMyssOD5D4lz^-)OEE$r^p?i+_l3@u=zkgg4=g3J)4JS{4koM{|5vwcsQ$_dnKcdJ5o;yonD?Rq^qArhbrSltI=RVT zd}!E<*YhF^Z0w6~UL@PGF0WP6^#~}ULX?rIZ*}??E9W&Q>J0aDuY!fv8!UcfgY)M% zhmE8me9-PM<832Y-sFz))hx(LX0?{B=?aAagr7t-I7+UOT=C}PCXN|K}cv+PWwas7TY)%2y?=RfQ_r zKOaVl+h)lJx)dAG5Pf6eTtCUKK3pcY64c>t54KWaF$$qWb@HtdoqQneL?y#ZQ^V!w*<{%Z>2v8DZ8HoHFh$JN z`;d=iLmJte2{SfFTBmQZP8A7Hkr;knXNXp-__?(q=5)C%Rae#@yYqD&K5oj#y1xN= zP51x7d2%K3>`0Z8z5zpu#}5LXrW`}0UT07&3-@%{n3jaQrmF#Gjn9_!Fduz#diHOo zHNcc2PAN|+kaT`2^*R)pOe62{PU}&y$*+Tj@0m_Aq*6I>hsV(WPU`yia0Y;SPptr2 zHKA)Z%S;3?RgYa!S!6_bbt$aqJxM(-vNrOfHlNnzRsD9Ric(`zOQB~uuAz~1Q7wJw zr&Ug{$@8!r_YyY~Gz*q3;DsWyIZ2abZle8v%E!hy<_aZazXgcf6gEa-j%^qAu3k+V zRapzm)4#C}%RLNhNgs{3yYXMW=9n6{WbJ1^7 z8_b*;wfR(98(vKl-&L}aJ=pRTWzeO)E>HC?uG%Z=bZ=RBIw24yHx{kp)F{?y zWPJPv zI}~2h5%%WHXt67?bAtYZw$wQ;%}X7}{;x1wrmV;3c?Lz-b zH4GP7P=&vy3VO()2Z+!a+$?BiZTuz743mwQjFyd04wsFlgIqmm@)V$mEq|p!jYcGE z-VnI@S7XK&C_{w37T)UP%bUGE~5-;=_FR`PIa z_=#at?~oHZ!@9H~+LgmW-Lukw?P}PlUom>rPmM8Z*SzVdSuMB)#fsI2S35Je#5a_f zXCr2w!?tUM%ob9=2jXwy?0RxHxd>l^t5!ChC2@NKY;F9rLUPRzK!%}tzY}vx`~nZJ zIS+rG%;++8^+yA45(jVD8*c}EvMqXGHta6qme3y>eBfV^ugKz@`0;v_W!5X9C`F>MJm zJN>eBb<;&A3~c@|z5vjY$tP=~3CttIOn12&d{r_ijdiUe<_)&gbj&2ifIH ztO&)B9v`X|11bU`$R+rIyyu!yUR`WJu%YKrPy~xYIBMGguPItwyS8ijN0_hr0^5=Aeaa9 zFaEu#%}ffxXSR$kO3)4i^rlgOK9B->OBtXK3D@c7?u&6RihN<)c>{IpXt@6`s|=uFNW zsVzC;fH} z^`#OS8dSOP(Uc6o(j^t_uzu7~>SMLmaPnH1@FGr2>l37O@Fe+mrb@p*TE|^8T*o~&mX5n3)p5Tr>9`a}6T@{jJXHC;qGYzt(bD9?MqU*hk}M6XE`7 zUwmgYP}dI!>gQ!Z#qTGDx1|#QXJf(iw&=WaaGE1laf6~>@u9zOcrTBR)yvz{UVd8Y zCB@6caD9qc-06|6-!Z)P@0PWmHZUnR0AeE&Qnf{}>1Wt>a)hmbTk*i}8pI76fISSk zaMD=x#FyV7XR>B`Nm0~@x;F#J?mON?>rnoyDfv(3lZlySrppW-DdgJ5^h$k80O?!v!RcsWcUKLbGm; zGr3~lPK>1T@^gh|kg_bW?m9J`-=-@w85#HEV_=Lzos`GG1Nj|DQGEeh#IFngQa&A; z4_^5cp%7j<%eOMU@vx)}e9-94qt4}7` zq>=g{cxdOJ%iGag6TBV46F)nAI}sjhd<=NJ9fRcX?L>Ii{+;l+FuBI8t1`a%W#pT; zl=00kQ`z4TUZrSDoND&XGxlum3YKd>O)6=exR1wpgDn_SC^eU<7?-&*9uN5y-Xo~0 zy|sjbsph8KL*;ffv8S0>tc6}=@+nM~#xoGm@|)tm*Lv48AXX**FGa?fNB zd93u6`oa#AwqvF3FzFZR9s#n7aoba@+)8Z0jxyA4x(N$(ss_u`gop5zR91XxGF2Ig zDssq09rcIF@4;|XwL?5Ii`;F~TyU_YR}ul!)xh?!8LnTjDa~6`BA7yxIy*&M^_;9v07v6CZiFBGiic98+ZrNNneK5}T zL;8v__~DjGZo7wfY;C`Ky^1g?c!+0Mkz1yWOO@TpQa8A2s)d1AB@~P?7A>!x)kpT~ zOz<{NaC)m(3FgvJ8N5 zKn%!m^NusSX~L&?E6a)rD~Z?%9MT|gRDz%~yqn|Fl0a^xkR~i?7b&wsP$CL>P7PtI zY{$>hthrGCqDi|!CThE#j*3+=iY0j+@~M2SC2H9|-yL-X=E!W^99q~-otjb$RFvR6 zW#t*nO`6zt&WDtPYf^55swSx+j_IvXkUG3DRqN#qSnO~Ckx7SGz(0%2V}%$pUC!q( zSjx%dJvuyZ5YTn!XbsaU?Nx@exUMHHf~h&5OEjAHq!_IH_Hj-MQ>g8jZ{uSCYf^U< zMVLoR`KGJcdfB1-EQ~6Q4RYaDi3cG!oqLh2uU)(3kh?QY8}I}2S$vS@z0&@EIv^dx z=0}!X-d?E2_4ABuFPk@2#UrQbd;lFCCwghMd7A}JnF7wwHJ)HN^ONK0fcwa+ZfOK zz))%m)EoJ-o(nV95KZG}9!lS*jkffc4eXErl0UP>phAtF0Cbbv7_}OotTGAeoJzA- z*V<~2*ji40t?v=Gnbf_QI>VxZV&*LzFF-D2Jnd~>vNWHZ$~hK_r27`MrjyclSYr~K zkMT}@Ztiq%mot+Z7x68r#B?3gZXmp}v>PQq|2PA^g;$gL4OSlJ+!L`OKtyCTsvquH zf8>$5bZMkkweX&1^(D;+nq$tFC$DOt|O8OJAk#I*1&EL$szl-BdvX@=z!30KBG z98D6VzAHoqicUZDuk0mt`q>N}MTnOGu4TM2ajbRf9Yq3aG=hA@q|!%P6Kkv{eZ|UC z@MYXdV;_<&r0>~@!k4Nuta-OOItu7Q3wr9cDiLLfheZ;>RNN~~rNJmhpuB2hsMmVP zF*fs>hQ=K7(k~7%A7+thQjQU|+o68oj$QYo0Eo#{BYGCtx4aDMx4v+ut(qWra(<0X!5?6)h(t0N$424`jo}&r{03;$K1)fL z@pwUa;-V&zv3}7LBfBlD{TWH_l`?-~8scQpf@K9>oxQVIx>8Ad2t2F;{#6c+=^+e& zrTkpOUI=y>d>pd}m*3WTh0VVqZy!W_o}O^alT~W9B7A}ay(MeDfZA9ErdpC!^r-C_ z^!PFF(Q?%J&N1OyF!BQ#SGP2aAnO@>srll%;<)W)kvf|m2q-Y&L zX@Fip$z&BA6i=|BhfG9m|G`Rjbyc;DUKV@elG^YgDuw>- z$h4t=HyXSTw@D3tgjK7*zdR~N z0ox;r9Yz5a%Qtjz0RJfRStcn!H7(poj@t|bDm&r;+(6~24iJbf&D5?)s(oBHq=C=j zScE2Sz>3%MCFG@{f&k`-$4TI9qdLfeD*GbA+bj`;2TO^-Kp3@oN<8yqqW0&D&7qDj z={}8AfWlf8PGQ{G&IaAhsvQx&MIw$WLz{go&imB_AJB9iO-HIWUrX_sDVFL$2*k3O znOA>iqLtdl@n!yMK@0#sY9-?T4$wtJUSiv8&{EpUws(&JyfVCTqTE+GYYW4W?R10A z%)y=jREzUE70dr+^Wow}I?4_@7D4HxOm0lJS*i^cM)Or~foepdPBk1@TdPO~llA98 zP1e-#n#ruuX`25$2qOK4h72!M=~cEs`vz1}B@Y>1-q{QgEtfe<>#oq}~mt)exub=))bM(!x_z)|v#ZYR{zJ3lh=UJGWJ{s}n0v?XbZA{FxgVv7Y6A2mL znQu^VdXlv+FYE;XuI__>xhwdxk+2G1&c(ZC|6L8t zH46ip-J>|Uq;d&kW_L>+9*?lC$<3)Hu0o!dr3>1}5~0(TjJH^5K02AD(AAWqRI=qzPUGy3VN=8j4av9fLq$vAYA~d6ylw1TZbP3nI+Kl)SbPK=@xh)tF z&jQ-kBcz)8q~TdYrt$)6xS(XM;AaErg0c@cJ9|Aya6bvuSY2lcsFlCRxU_OXjtV@nQIaaq?#>dl> zJVi|x5=GZWc@@Ao+CVuune!s^=Z|5l_?)EqDBm!yqDu1e=fL`^=6C%3WWikfOoF1> zD+M;kmS)OCIN5>P!@6N$u<6exhXIwZ=grBI65bI=`k{(`^j2e;xMo|GO%VLvsQM^2 z&;_0m8d@1~ZET4F6Q^MxkOMi;}G)Z zN;CzE1e~Bg5opUql^g?uE%a4ez@05y2(4^dTpGC2Ej!?U4U4HP1stPKB`}ZT zDTd$gUo6Y3KD>UsUdK%Sown(@CqG=-kKrWH`z3s>f!W;T!k!q;NZCTs8SOlljipr& zb2Lo?Gteo7Ir6Mn)c7H323ia~(Q<=X6y#z?2;Z7Q_~?;BC`{1MpI8<0@JA#9Hy$tY zmEW=a4I>pcTiChH)55D?GRo)BQV{&}XPUN`L1FYeo;Gl2hF7HEKIP#4qx_B|wdhE_ zh$Wl;W*28zS4_X0AmyqrNm9^%IAhBvBhX-^aVd^e0{$Zlu#N zq$*m36wQTw#+Yj!+hZFx9H;)#ZV&gNhz}0)Ko3v(2y8yWiTQ2B!R09qelu+556?|1 zC?a~T4nKpYi0lgm=<^@H_-gL{uUo;`9Y;(ra&G?)45M9}RGo4SZe=#iIt#O#YIAY< zb7G!B`v|fX;IkMGDP(EKb4*7wYgl zEPyyZncO$&=+NAGrbiK&^ILt9RiV4(rmi@6?O3gmxO19HTIntVNwd)|^Od0w9nCB) z@Cm8hM8kqv31<2xI?YS$z{XSMYCZ-9ZVl^Q^R$T?;|6<%fAu!HYmeRuLoG$ouCH_~ zliXi?IoAEA=9ykzVr9*nTs~Hl1nAVH-q0z6RLQ~WV!m=ZA{qCbnP=TgDvN{|O_73l zAMtl&OY=hUY54y%hGUD}X=!3IpNJZp?6tqN5ZCVQE_ijIhTGxLGP#Lwv$8 zfy*K^nfsrYT~t>Z2OG&-^KJs%Q42qfVmot{-1sItbETW~Htl&w;SJ~E^((N35FKC9SGs%Vuy z*NlnDqFOg=jow!(?co$Ly;gH%`#1@V=6JC=^YXvV=34BVjQ{~^=j_wI7&-f4mP0&p zs~nQau(BPPIC+V}7n3ogh-jsvUs*Av)|QogK{$_-eA0hSa`*}o?Ug}H>CEBb%>o*FNOQi z$TC96A|SUUif4$s8qo;AM*+V=`&?HglfR-jmM0bLpwlN}0bfEv62f>X`%qS^CO21m z3OyEFLAnPXd{u5+f_>$IeC9%7GOcVOLcA%g0xEC=E)$?{tMb6OI(*N{a!w4_65fx7 z2KQ%&w`xaH_yq83Wflm;sV)hCsSncQtbUS~Z=AtR{9UWJIQu_}NxjW|{YF?S8BepTFm7yEH zZzz}%-fJFEU3i2jJj5pn&m4X~lXbH~@oY(^257NL2WBc!CKBZ2qxi{=!pX-bQ)efv zv7^iU&=as{E~U2hPll4IN`yZ+Is7RTukro{wGj7=5yCfPF&$Gv>rb%lQUrdP2plU!dZCn^pEa>; zvw|lGU8u4PG5wi&)px7)A}}I9(L6yM{dILZ2nSoR%K4E^jcR{d&3)G&8dPf{BELXk&v(nwr~XrY9__du6Wfz zGS?q1AoJldB$vI%Yp99vTYlTi;c|ZSzCd@+TT}{Z{+2}zg;rw<2}n9VT}ef}o3X&X zhb~~Wb*8s4jsLY`O?1PV`R`r8-1kNI(%>W3 zV6JHmg^-AKa1QSMfDvA>rnXh`fwYJ4IJ@ANgx6P)d1i69IQ}R25?xat-bA8Nb$E=o zYQh`2_HqB7@MyjLt_#1l>&toOIQSjE?XC0`|KxWx!6tlOQ=E)-c!LdnglBd+z^Nga zf@e{CFharyfcr+C+H$hStUC+%{CAEkT%gOrQ({m|H;59Rfh<0J10RBWM}qA%R8uCw z5R4YW_4%n=-s-tZj8&bOanVVcFwGfc@-#!L2`@)im66EBha-`{6iMV_Bax?zB=U+w zkjT@+Nd%&~paj5ctdTzrr_oCf2f!bS09$aC5HgukHZ0|K{~(q#e>OWNn8|g z%nrVZ-T>n@W@j`;u_9L_zhkqtX?7hWz`u#9;=PzK=pIs=vO}5HWal-hM z7^K^uZ1A=PR{NHnwQsgv zIVOc5ud47Xnjm&&Lsg0|bgeeB#*sWie-+H6n`jy{;WN;_u zkJ;Q6yl8-f5=++*(5z_lGtXdgmI!BKj%d_+w7?!MVMHWlMpTGr{F8Zm5-8N}lZL6s zcBX2hT}6?xCYih;nSkRlCw!kqcOA-W zhPBaZ%&HYI;$GMS(UiA*zGLDLV^ysvPLZWaXlzjl>U)HLG8-7n#Bi4|t*WnBGJjNR zr$-yf6ooH}Q4(F|Jq^Gv-FSI5NuO2WD$}ukNFB{KL7z=HIH@F_fZIPAY?8hwdz}-U zWQ01h@WH5DSGV3;u3f-t6sDcjRuutt)vyM;=yxWAXhG_|fPa#?$x~CELbc^K67Sf= z@52_7>l1%=8R1)|g!!2|;|~B{@nYp4{MA5^x$Na>3)1dv z=fpTt8pFr1-?>q;*|~J*YZ^rnNXx}KD(*|rJcaF79Kpb=km2MWiwEz=>M>O3lM|8M zZZC_ACWO17@``W|5<}OKm-sEVkskTDacQoNle6fW^qJysJT!af8e##aI&A%os2B;mk-?GTv*toS6lZdaSIZEsqa))Jx zj7D*KN0@f>)}4$;GeKr^wHZlNW(U*2sspY(OZI^V8pPx7a*V+pi!~FMAZ;BX)E4SWXjAVww$wl}Jl(otb18 z+7)YuTvaT!ALE{v-X5ph91`q{@0^cr2wLxdD^~MYEn230owAXld*?1S6zujWC%tMJ2oBrq9HQX7R|Rj#h+L+4|fx5`8^McsiRk0MG%Q zeF#7eJsNX(oZ%I*%2B4_bM%oLlaf zmMa@w!frAznse>!DGBlxBY@^V3LX=3T{ZamMEaOg&c8B!FufHa5`Mxm{1jeamT<1( zlqI|bNg!J)l^Fzca$1p9mb92k_-t90AK_0JZ+iHImh)MA6)i}Dr%?+1<-lY&Y88bb z2m~eNlgVTdTR3NvF3}+%)RYQ0t+V2KR(cWJr0ro4cz>21C|I#_k!(Oy4v7>EGj7kV znd&(8fChlJ#1y{DM^)OT&K=|}Axajy$a_f~2XCS-eETAj zuW0GRS-&MowFKvTf!1B8^+;HVisf=D&6BW=WJlg88ZDzOOf!;+$8&Fqh-Helg;B3@ zWikQ6S}{MFz@9M5Bl3vMCOni%S+7%yHl5n$VO>3SLvHDr$%(R^i63WX6NgGuUanNlVn}G z-3kNJ@uDpv;`Icw(%(6nyvaI?dk$;h5PWFHd|d$q+jM_9MiAS+6#1w9D(9vdd4-PY z#HUCE=i}20^ke-`3muYY7?DcMKRV7Px-m5_B_{M~HT!33#ohYhS#^tfi4V&9@by_s z>p-wAF$p|uLy6KLJg^OmkoI6k*zb=lBi88!xWMAnaG9l#&JIr~d(=Z{8vEqa*JFn7x0vb^-Kydx_pX;K-zkkaYZvVy@@gTUyTKl`0t1OW#G+)q0a10h;bmtb zowMQR83IM$X1&GIZFL;Slv6B2e4*2)bM1WNTJ0*(*UKRx+EL7lB}n!HYniKp7^g}f zLy@wVM5zki@q|B3te2%{mQ=Hrv6RBxX3D1mb3R*8rpOPcVr)hD2=KTFB(;TEn<~o< zCU4X%k@Q!Q+h?5ig8>n_yd)-~n2T~K=_O|h=Whm~XNhhUq^2*tl?`p#a0jPgXmXw; zfe&F~DP(k#q6wf%8&Xxn1&{7Y_^y><6q(-+}jlwK?*dS5c1fqYJdE#nvbRqO;+%T&wYs*LPH==O28;?Kvu{NTCKKRv}H-%W}c7= z793d)1bl8p@^2ua%At_}1S2y?g5{uQZMM~VcE>dH%S*?I-v(&Mwsdt{|I?J52H z|C1iqj=*ZG2sC2V5Gu{D{KY`vO>=?SST=`xMK{n^mTk<6s_Kqr zyN!foCBN7Kb~-vfJD;ErersIVD^*ok{_{vvn<7a$E3A<1Qtq|b{2IIYKb~h|*U|#Z z&Dlwm!#?7}7?gk}YEie53-^$SV-%s@L{^pyj9KTQ&zhC!J48RX&o^7^5Rf0`y|$0S9?6IEehqBq;P$olJ7cGIa{SuoT%_x)_+|L?go;JQl%A zGC(EKfENp60oXTRd zrLN5EuqHI6nm9b=VlOY0slcbWM%f0uFB2}=oKh~f>qU8GnphC43$J!i0m@T*N$#I~ zXaBvh=>E(4!D^FDhG9sg&Y~dl+0c7~sK9KP=2ORjSTsGGb!mFQKyzH;3ZlpA!g|rO zX3C7_Tv!|J`Ftw=j0lpMOQR~?APi>1mXR*E@Js1I0@oloyyazL&2+d)H!LO==tFuzY~phL2E#w&C6nkH2Fdso}p%N zsfc4aM8wwWmhqGzpY^Q(A!$jln3{{L-rOt4m+ku-fd%^IB%Vx(!ruI{auNeI1`rWR zz{-XioA7Y10h9Vq9K~L@3|s|Lbh0J~_(QEmAleN?sGu1B7SH^H0h;ar6~+dLT0SEH zYX9E`Xto3N&tn5b97xq_%I56(|JwjHIY2KM8=wW{7)mNP8N;DLG z5WFyrDd3G>S=_9B613M#3c9iRiaU+iX-&ij=CNN0MK+gPL>0)ETbfT+5va4{XzX@9 zvQeRNoa$NP4qGUYO7!>Va*wHCOo~#-!qc&;%9~096f4n}VIDZp=u&b~hw!Vfuu;E9 zQ|2}(Ywoy8zO$yW=xMc*Jjn#f$k#$SBd=B%IVQ>QH{6Ei%W_RSx?Ur9{Zi(leh+64 zk~^e=dxqVKO%(Z=x@caWdneKs_6?wj?7}0oG&x*LMj4>#2`frfw%jGbcA8mYl{(0; zS~-d`DFiJ6n@Uv^SQ!>;#=`Re!O{WQha^Phljl&EGjF>Qt&St)4apppWr1DTY2@V3 zc{Ts+D_+eF}ies|D zKb5i|?JDYtD?2e?cZzRnoSD}zg&(!j!x`Dc&TLd#6(J_4EI#1Tq6%C42w!V50ajU) zGqf$Wex7o%NSd4_!<|!4*_t{#FDkMLX0foem=#wdnNA}rg<{0Fbt}v&Sd-2+RPoD9 z%hg1^7{U6cI;FzHvpTL=VQ{y3iJ)3V{uZlA$Exl+;i`>)LSFwAYtD>XfC!^kGf8`8pn`Gnrp$=jub`0JzcT(9B05lGsD_$$Z&(#UeJOI%4QirPYwstWZP8wXT7^;N!g9F> z+$2=AlBo3j<+>GZnBVi~&R;`c`lFZY^|Jbr16z?hDRP+>3jdX1)P?U})Wo~v0zs~} zo$c#(ZQIhmy}x&V*FYh2>gr?LH?P~dt9|pfZ96w)(#HdR-Ccv3_Vx?<+Xs95GJXAp z3)=VeckD0djcw1}w!MA(ww;;o-k!Zp_D@&OVA+%B>3aLR9XmI)pMK`n_3h7HwJ?R$oLItMa?z2~jS3=HykZ~NZDVEg{wp22;zvHo-(4|etT zoYpbep-J?%0~?q|g4sKyUX2>dSjCwcFR6f%7S-5q?-3kM1v z=NZ8MihnpT*wNo!xUjFcf3UsK1Nemj4SZMc#-71dD|dDbp59+5(B(j(9fb7_4eV>* z)6osmd1*(XWB0am&MkBfKG*QEYuncL(>F7ct!HjIb;Ax&-_g}2Ala06 z?PX+z^?*a`eI2`xD}pARU%*)U3wu^%_7yH%S%&L@p>x2x-55G2PC%xoaG-s#;~XKp z&@;5Z(BE-RcOkQQFaViombP?s zLr*CYmN0pGZ~w-gje`t(kf8`N2$Df}^!IlhR4;o9{gJrZ`PtPy*wxd%zp#IQ?*(89 znr=T2RAmJ9#`W;i_Vx{Dt$)tCt!He=*xW*)25U+>njhd_k?A((SswqcP}lt(J-d7N zw|DixulZ7yV}j^j7@OB zU3=&LzV;z*tyrDu?l`B=-QH8UaByV?LT``L!GQMk76}7vb#=mBVCwWOyV^T@d*~(# zgNW_}{au5F6CxZDdMB|0NV91_d;5md+Sl#avF_~lGdFJCMduL1dZgdZ_MN+SY}|TA z`^H@xb}%a@t;U$l^7)ATvN9tvM%P9Q?YkwYdX2B!ySo5#+ja>m2xfnWAx57;45CIu znGn(m;X=?N3<*106xp?R4qlkiwAzErV8`Be5DT}RQz)^|8HFD2IVDo4zKq~H`wnJ? zdb&CRp`?>~Bg{})7JuWf_;0o|9sw;Fu^$e-cK+%L7JfLrP;X-K~n}3(f>$^Ml_hm$V zeS>JXA{>#)eCUX>!uANZ^|likn98i@A!l{~D8DyCh#ftHU4W6!z-Fc$*|2|QMlB8= z>`MhhIlrF;jUh35GaUm55eJBD6bO1x$Y%J?eCsqvr+O=whLvsB+CWAEG?FIFIfOBAPNzvQ_#CDdz*2Z1QIpvZUQ8+t_6{;rsXPJa2r#s4 z|9Qm`B1Q(+??W#<2a!cDdrij|Opf#o4R%7^y9=7E-Lc>ca^rG>$Ly+CCqh^a}lR}L1NI?y$^55&WWV!(9Z_Iej$5*Ee?1fVF{ zWDY{F8!j9y^b9~w15P4)(I)MZT?Y!gP5X+pP2HKnvcKcP_Hz!xuib^7z4SM<`dCKp z0%mJ!bBT-0VB5B%9l^ZujIBmI8+LBn{M-##aXY0dH*DXvaobh_glLf&i*P7F)LlLF ze$eG*+s?M$b2ea=9dx_Itv)oK-QrWpZ3Gw6_Cm?;{gHsAgZi;poEJ;4Bcn|!YXl}w zQFNAGP^o_tm=Db3|P+JnOCW37cC3AB1u^?Oh zJx^+Gn<*G5w7Yj;sNbb$%0+yQ=ym-IYXB71fy_XL9GO8=G5}VPnqc9=;(T}Y$Xt>} z+Y8Y|(&n4Y8C%b6TEF7>rWLDNR<$f|YTl1?FxXvaW^i2{J^b!Cr)zC@-|AzVn)fy} zZ(G^ayyrlFN8bhfHTkx$zqhA%XrOth=KvD98OsqV$3tXi=XuQodGrmJuMG`3oACi~6 z5drD;mTjk#xj3S$ccA_71s!fnw{xAnMt>p}VjjJ|0*vRbvVUkjgYI417TWCy0*LNxz;B5A5VG zYT3**b0>=!Efc}%L<8W?zCtGs9aIEni(-1iKbfhxeiuj_LPQL9t;&VSnG?L1zHnpu2TF2e|*ky!d6$(4ZtJ7U=<8Ck=Cl{IK>7J9c2Ar7qy9!t-;mV88^b-OLABQ#ew4 zC4Re+rg%PPR<)m_myJox<8sq$_Ye`4PFbr(c=d{F_>^3?pGh3%x$8EcxuJd2h7H@> zcWzj}ZR=^+OJ**aHgI?4)QxzsPz~V$^Jh$w{L`5mc1ka{Z&|kkxw37SI*_NXq4w-W z{(#wx86WG{ZQk6zYr~f9o7e5yP=e#!UaUPtcIqCuDMu?MP$L9vtkr&;kHr2Vr|XT2%xgAfk`iHL$hAv_ABka_mYRyN(`a4z1lMA;IgB@ZA23 zl&KJmh(c}_&ok%XWb{bFr=lB4EH7pG$QyEbQtIA-lO@;;X7vq&0Bj1Pe=S>7xzH_$e_r!w32$!?VC1kJq=1e8$(6mfan>>@9VTl!7OoS za&Uk9|LG+L!^dR?4$3JbKqG?@vjBc+R=Y9OGqA5~4?z!NL~ht*29OcmI3lS1RB~XC z6(E6_wgFQ*4j+-G$CfVL#qJ-qBEhkM&pPlbGZ}Nicdsr8e)I;bwlWV(Rzw ztytaDVLwl>C`vK>=8iXgxTG2EjbyRA*QC1;s(CN#Npj_c^~7Y`cN4ZT#7XO|+p+=u zfM`m?8)^Jc5hT3M)NPZWCvh%g<~tfh^#-v+Qz=gE zx@)8Y&tH%+6&O8wFwvKRb%qL2#}=J(ojsRT?dB!gRIia>KI8d2ks zkNOLH38c8?VdDi81w?PBOCh}(+bYs@`^IhU2NczmavD9Qx+6;`POucAsY@*I&3d*0 z@{W36=2e%i0bo^Fyt*jmY{oJJvJOFg)Ip*WbAp{^u#Nd@sLvy<-8P6b)^8X4n{KhS z3CEU)Y%P52EUJMqcDd5BP)#hMnB?W|C=3jBYc{uS-7Zw`uyC*8EHa#s2;(AO3W^7$ z@lp&Dy~RUwmW@^A7fNgt{SkUK4iyb+E}~R~wP6#51=`yOP`v}0UV=XR;pM1TieUqV z*=3PpclQnM!(UcR2B9t2Y4?GS|I669Znbq~+ggvZA0f6=IXORt5Lguq6oRBuf7E0y zHf4+mf+Vh|KVR=-jJf6#r1ojM?TT4imw6f2J}whc!Wag7WF=ct>uxpMn0FECWM(Sj z*V8jV@}&YvM+b|eBLVjP%R@ToHO0S4{@&H}@d=}F$5J5)jUh0%!KM*qE2N;`nCKnO zsFgX87udAkZ30|=`}%QnhZqqTj$u};oLFC6@7?eOO!c_Fy8V+y1*!T|HzweVCm*OW zE3b|1Q8ZxLCwz1*DLCOZOvSD8frU>%92Il=7Ea{J#U6gv$O81zc5>YsgoW5(0m%^T zyug|9bYwC6_2d__>gV&>IjhZZ+4KTAgTO@YdOd<_ilG0!VV}BNYmN)oSl<>#E{fDm zV)#gxud8Qk&X35N$8V6oP$=Qill^b^NJ&&l#b1D+Y*vdMA}Vu)6?fg+=L5e=jehG(Jp#SUo z(RSCEkWU^DD%cm&+cr>O)#i6|UJEu#E4DQg53*LG#>u6`fWFrSR4ZsPJzvaLlKc9- zCsK?fTs-3}+LM%&?PG6@f4_PAV|b2-^W%tn*i*+}zgV8m36SmUZ%j|Up0I3OIE!6MkBo&CQa}_b>~?=cCJn-4@v}Ufoz<}bDAz)>3*)HqV@gqr-)9z$ zseovf#b<)n4rzDfY}|hR`fN zR76;N#A*zBgblGoJowuPV@7X(=wpHo{pfiK;WiCc0S~zU244%&ZTQ_Dk2FHrYjVX= zGDOFju4T{qlCax0AZl;RzR~t(o>E2*0>>8ouQ_H zfrh!gyZ#7W%1*?=xw`)N{E6MGy?SrxUBlFtDvmp#!RvzZz5UkO0zChx31e8SF$dlWgQH zTzZ~*gEStzbfr|>U&gu;fDepa zI*5tHwwqBl#4Esy91RQnA|DV?k28$*J^8q~LKY~j&cItH46qnf2Ra%%b#<-3v5Mt^ z)VlX<#dob~4H#k?>H`pfU}AnUmq_a~mcTfoH4(ClCpYMg-PC&>_$Jjfzu@LCMW>Uj)^uDf5-<3t66~Y!nr(91) z%e1+VADtmUU85jpE1vHID)7+6hv+4Ql{p#f4V2NyBJ>NfXudl#}gmCa>Z1KO@ zd;|%-xVQHv3Z7RKR^x9vCse+?!7Cvl@*4$-6S*b&ndGMU62=M!<@HUNGqMI{RLQ8r z@zmIy!a4Ge8UZ^nnWTj4f61vYg4=0Jz)wX84;ghc_#; zQ{qCTV2|9XB_=MikGL%d5mP4T0sGrPO9;^E@>g=znk|HZto?j+rzdjqiBIB?c!~Oa~dD{05%*K%&9{+@pUxC30~*(}Tr$wv@&lyqKNr&sVe6Klc}hSp9r0X{cvrw!}`1 zGEo9kdS}R(#I7EPDL&340Q1VKvi(Yu^BsfVZaU35W9}-Cvljm5XuTYmnLDc z;6OGqB$PZ8D}opq<%oXYf(_cpUl!-@krNM&q*yp%;vutAVF{K+K7~-l5$10 z!NQPNfWdPEegdk>r{q^l+>Z))m^wTPF2i;<(<6FK!Yz+A+3%q}qm2}=2&19wPYcR} zQJ}#NYhshjUq9@f9Fh?Ibpt67JL&m)^WfeRkgtzS? zt;>tk`PpigiKTqTFrf{DktkqOQhD5Nmw;d0Bpt95!P$QRVJ9l$fH&r*bNebdfZ|7( zf;~H9j@>8>)IN%KY2cO+p2caU6)mGR@ytVgCgq%{nmnFWrz_FivD5$1z4%U;IblEs zcbcC_Cr3>qWJwYyVFS%;?c#f``G=$Z z{pked->L;VwF&F9m?4hK7<>0N6erIgDnFrPJF|-%@y=@1M66a)!fLumodmi=z{%9? zBrhB`$X(GtVE5+cYHfutOB9Au#xER0=z?sVqFSTkE9~~}Wlr@UV#Zo4cz*Tiar69O z_wIay_`+Q9CTIRdiUZjh2&{Wg+=;F1Q> z{ydI{ArZf{;1rqe_f}@MRjqXb|gJ}Y?cNkF2umw$$NBIxX^3|TLR(yKGgi?PoX z?yN70?%Dfy;S5Jvh@6fCET$Q2E8R8eB*#jLCZY!1X1>U#t~OPN0)>CRT@AucGT2V; z2rN@joUkHF{yR;Rozsi@PiW#Ew^A0;S$o$dJiUa4O&U4sab3Uq-Q3&NA;Q(eRjc zAn23rBU%1^1;FycnF;CIyQIl-i#)vP#nHL#DK@Q9B;o$tSBwXdr-@DUq02T;2jfOC zo0G)_WGteAMAM z)9%KipL?;@4{ttN&uF;A{~VaPMJ@l?sA4C zMVw`^g)07hS~?Z#bh8b|P|IyIe~9jvEa5$m*DAPFs7ZF$&N^+$&$MJYzWyVrnAwxr z4qg@LVT5x;zRGaLw^p7{WT(MK>w>hEy=3vVtZIz3pcr~5>0&bl_dhst^RjCIb}XXTetdI#C+FIN7c;6V8!9E;3ub zkunT^gpsPOE7gtR-Nud;Wo1E~pJzEsR)-cF&Depc zkXjMa0>uh>Jx1gn1%f#z>9Y!;HVJ_%7%Jw+2)9Vfupg5L@g)OAXH@>fEt!nr9~c6H z@3LycwJChp7N`t$fpmM7f*R(IWNcs(gg0&5K064@V+Z)mY=Y&Yd0)HZYTJeV7$Lpd z32W|HJX_eQUnY3!q%&n21A8+W(0Ub{pJ|=WH~)ABzPei4i`N&utD#urtZn^?CH)eJ z|CLO#QNkAob8M%s&yqDZgSEz{S6VC&v|Wq!m0qo6N##~^N9P)`0diuxXx1N}$s@FP zZFbQ8X*)h+L1ubp5s18ETpm@Ani(iCk@1%+s&HHg{2M2YhgN8r*2kzV%KIFA08+d- zw%2R3qSUQ+NWCO%dQQyfLomxmp}wdU2g;Mp!#^<^QbuQbl!g)kF1?KV zh4K;ef$~EQCTHX_rER z(d#6Ia(uJ}a~GfTYLhmD-6^A0fqby8cRP*k?IxIPC}kYpoz@@u2LqBKDYf`;dP2ya zRp3nl^Fx6_Ra^`sAxt)k#iP{2=86tlU5iS**-N!+-A%V%EH+bcKA;;kZ=??74TK}VPLLj`* zx(%7000ke|wM@6C_l}%w@et5+7{J<2)p3RiD-41WO*}d?#O|yixwh;oxDp6V`MZ3|IfpjnSc)o9RZj}h9 z>0WS4hc!D!-&O=_f@5Wo1hgTL!JRD3$m@%7u|(v0$A=f}Y%@2nM!dyk<}} zjbq!mPy_Fogl3!Bh@3KaX@(6s8z3iyV5>3g@;g3n@IMfja^z}Cipx*PnJTtm4T593 zrWcJstl&r3T{#UQL_KJ+(41C0wtH>cY6%8_#atDBX$nHi%C`8%8EY}3<%`Mkqf-|! zo3Dv}KDy{N@MR6}FSBreUCfX6wRVeb%EXV`Kh_V(Y>o5uh}zn$mA^uE%6_z{*Aq*k z=Ju+m11O=bmIjob@Z~bnq_Fi+rg_;u5nB0i7$|WqCRsB}3`CZC(W(p!B`+leZOT#P zz(U>GOGDb6Q?|m;)P21^>dcS}=rQ^tXl$k>-bOUJY;;BUTJ8sV8X^rjZdZ6k4r zJ31Za6Pi?c=4>GRs7<4C&S<@60t7bhtyGX)8qcFAEgJ&PWjJ357u^YD5tFFnj~cM> z{*WxG{8{&yY<0njY*&&%^mT#LHZ$L!o%~|`qDfRAf!rB-OKB|x(PxVD>cjl}{mH(O zGIL{C_-V!0=HLxWrK3nI12i(`cvrK1usqd8C}gFg;@4y+5Yv1q*+a+Z%hOl=EX8Er z=zoY&vd~J2(+m;C-%YM=pdv?7__m1p@@f8C%}KS$POU@t(}7HiRAcUY6-apcMJ%N% zp|mOOEBT|NzUgM8>cV*>IEsOWEEX~fBjAh5Wajn4GukV1ppGBx*p2;#s3qhwN6Nt3nR+lXOICTZO=jto{f}Wu91AB4Qi|+Y7E$ zP6w6sDwT_7B?7uwdrJ{4h*gO`XH%EwZHfqM8JEtYB=c~~o&0(ID8r<7%r#JK0*j+M zsZVdvKcY9jq%_gxd-U`w^MbU7Vb}%n{2sL!KM*Ay;!hckfkk9ef~&FI3N+|pt$e7e zRL(X+wl|YjW3IbW0h-5fJUk_?c{Zlt!h2Gr=$X$l4bp!y$M0T`ApS}?tgj7;J35ZG(|9`=P+x&v(YK^-Vc0L<_`jh}jX zP^6{zD)1SAkIC}=kpfKEaZz1dgcrcbPwbOH2k?WC_ZCw;AezjKmIy~6;y;z46E8k1 zkTdRc8kc6#+qsyJEsX9+tt)eE@FDrb5DXq-3gfmNYT7|_G!Zih)=M^Gl};s2^*Ja_ zG%vPW4#oa$3($bzB!Gc-!R*M%vW0rP%(R>0$$!d2S!!~srgT{)0fh4$~ zis&CTPUp?irr8Ni4=6hbbLyCWZ@}gmmv#e=j6tU(7kJG6eDC7$5OE0O05-=@ua%w8vZS3JkEidD36)sH_|<==EG(K0|5@fd-cMcB z!@+M{blWM7f!D?uz#^1gI_&s}_ge1kHSMY%wzL6oWhB5{x8euQLgdA%{_tLa2FRcq zKBQXDK*7Zf1*A9y52Bjd)Ohz+sTEPs*Jj{=({~np@7`MQp{8*w?BuYyqYjb}VLyw_ zCDq0+dDrcU^yU`y$F5rNLh^fVnrzwa?f3;h1fCll4<$w5ndj2OOF0^%mdP@EFbbBX zm*G5i{YcSNWSri@;}$c+N)2v}gbD){n*>(vvh9X>85=o1p_)L*f?B?$iJBrwb0ne0 z=F3XRiDaY*0uKl%U-8}$^{P)1n#oHpzwo;>G~W!LF&uEZGc3-?2Oq{V8{Ba?bPFgh zY{wFk8CQ{04`QY(wuyI57kZ{EZSp{WGB#??tvCv{ugT+`Y}=#$PRpRnp#E` zvc_`2xz3^+0K*?kCRJ=-P~Yb&)!eA)TwAQ7k8Tl?bpM8S%Rm+&7gl7#wO547{?I6dhB3ii;P{pN;k!az|{(-g)%v%w`-EgU` z;N8^jGa3zu(E5yHmbOb(YY=2EmuPCpo+x#wt4q2Y%+L_&RzPRLogG^m7kLLsbbZJ) zsV}zOif!nbl-+NFuSv&pv_Q<6i!|tQ@EA$nDC&=z8OCxrQt-#JO5X-lBx8$WV(u|b z3vgoK{9W|$3&Fqgmw%a0eVM3GtL%6NF$Pc zKVN^OsDaNJ2$QL)dZbK?Vt%{3mR1rH2wkZ5A(*?)1D-faW)aIkD$h^Vy{XbGgDOY>f}{j#wXmUg&=${#Yxije3L$d|p^cT60ewmE#M*cf>xO+` z*roJ};pphuhvMkS3f}p#rLpt5kRQ*g51%-7ctTdW6bd0?bp#TSg;>HnA$BdRV&D#q zmVvPGQU#813*dxH)#sES)5`3i`-ZAjmJxQ28%y%%x5=6EQUVo@4pNzAKTKm-M^x(47~Bz5W6O_HPpWy2 z=l@U&520x2H(*pi`s}%5;U`(4IIsLus0b-0GVvvCbacRdKRp9V9EC6W(MCZg$<44# zv0X%osB1&{A@F6PJHK}l{XSQe8rb>HC3YbjFB71Y!8)yPY;H&^QCv@os6e8@1kPAY zltnX}8_M093$3O!8ImHH>mBDqLY%&)OHntUicg7*`+XkPbl=*ex0P{_0iH=u2{+mn z`?e}eP+TgNa6&vUkHyR03Mr0|j1GGb(eeK69lcqAvk)WriABB(I6+8c7!oPRLhVa+ zfIJ79G_0d8+f7op2+iB3gxU+LMx3}D_-Md_sZExz?070aY^V-rHQFZn30;-6N62nQ z|C(x$;xL%|imANX>P-VldzRsx0b?1hSh-L~M$Gl^9qZp+(I|E3bMAchQ3#@CN@N=* zC2ZCn!y6b0s?pMyp6?H5QNK>}4X53TK`@P=eBEHGoywRkfkeWb1d;Z_k+f9tgAL8| z8SRb4Hurfd_O>~zm^w?`wn6o~TCx5!VQ|!Aq7(CMU5KbmJwwM)~U8ao0B+ERNt@emr4JW?!P0?0#fUN4qT+1yKN{=A8 zUN{Z3$>+~;{=$Q>8!PcN{bd@BDJm`bhwp2DjJydq2@y^hD&;?9B|2J;s_v z3zfpwqFd(8ivMH4Km#}O{6d~2*C}c!PQCp6B^to@Jm}nQ3hm!w@JFki>;M+aDSfN5 z1vxNwNvehBAePMpA1;mxc>nuy&vDy5K#9~%rZirm

tOZZ8Ae>YDr=pSaE6-pM&B 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�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

0$=JMe5@?hVw&xOwNVAmiCh<~B|i^1hz=$-SN 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�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Č(m~lAV7o>d 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

7?5@1S^gmWI5QpAyY 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 Jbs+7ffgS?#zhilEt;?P;I*SfzZ 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%0Ak7s5uk{aaiSs~p`03-BC$+v2 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 z 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 z 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

U5(4oy9NuN-NfqzX^zq8LM%306<` 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%0AREDGhspd_Rp!YIA1qQJJLLO@x! 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

c`Qc|iEBYfBB{Q|zt%Q#A%t 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

    ivIhcOm69r^|JixjO27 z%vhbxkok~v3SxiQnTrnl5vTt|rPezOJ1X_4(;E8lm~#(G^>L^6RP6gXV^CI4IEPU0 zPdX)|m3qpVzDKDI&K&$c?K}<6GtLcoe%4uq-;K`i;5_F%i|6N^Glwhnf z|6S)VaNcvqrz!Qma~^(oID^l}{)e;lbfrFYt_dskk#qe(Z09?c*~^srud@Yh;U{Mv zIQyK3PR3TebLxJjes&r|{x8n2i2YaR#3L-V-?GxHKY>bTs&U4E9sdQ{ib?Cp z5N%&t4sS2mbFSKe{=(`>5(BC;O;^|8@iMeh*a3o5BqS;v;WlxKDxH6dva&kLyio&5c(GgikS-LOp7z#j~ zbu?3*LQf$DRu)r7&v_RMYrF~9Nx!gRA7B2?~6 zpiW?-#=6_eng%e}>iIapK()Wrx?s9G$!bkIbbI`{pQ1lK*=k9;2kH(>pH9dKO}rn}olJ#8 zOHpgqYO8gduC!3P5&Cc4Wu<3=$_b6R9Ml@F^V4s z@|$@p{m^P{CM}j_(z%MvaUJn#Mj|S+Jw#@{MDfvFHH*r}T5I_!X{YO<*8^6{ z1@PnCxfO-wv|0h&nTopgIX5k&k=H_u9c*VDY+I6Z9Q-s=Sxw)Cr^hV+i3rC+p0!f$ zAR#A@Cm~~BBq8mW(%3I612)il!Sc@oJ}kp}$!hWro>-6nW3>8*JK$-Pbp#0ss;na@ zf=bK(AcYB9Z&^)z$W7=9bfeZb%h3nRLifRBT5nrz3BviTZ1^1=wBE3ijsl}M?eY6-U;DBS3s%rRBl*N~RYL2uo zq$gMm&%ay$4`bf}9#zqWJ+pU{?1q$0AUELxA+Sg&Qo;feDFOjhiqaBAP(qVllp>%K zKzdP#BB-dKNEc9$4n`>=ibe%NKm`R9C0V=hS@_>~X6^#t|NYPN@AI6SIcLr})6cYX zZ!G#3>K3{z6Pkg+u5=ONb~Scs`#t0uEwlk7`M0zxBEA;utB0#8MxPVXi{-krzOm4t zZte8}aucF_h#&>0$R>lJFUzwRNT>cnHt;BKjZR~6&Ll(Hm!{KL97oB9o&++9TD)oe z2q9%2aB!_OH1b$;LDSjK_C!mxp4|-zN&9^adXL@Y1@_OZbo5Wd)xwidgzu2 z6?x-!szN?{6i922MJ?Tg?BXb9*BG2M zs8sgxSWHKkyPqc^3F+IuPg$ZLEY3Lh*JSAj+AMu96w7Phn#O%mCQM7TJsJHZ2HkTW zRE_XhpFvgjmbcg=M|lF%p{s46527COq*AdZ+A5p!u-OhPxjGW-H(xF&qf08HR8zA=bOU(ZMzKFLM(=OOE)-(Hc zG3vbbt_#fmJMEeMC6~Fa`(qd7!3tF z8&BzM2&Yj~Fg~rlw7j}F&zR!0)P-GS&{l0v90TvO25sH8KGe#^2F=lBU!qZO8*P4G z)MZD8m`^DFUgz$QffZ}a=e#-`*e9N3ddCKwnV7ug zr=CRK@1%+B4c}k`Az$|db|PgxmuxWJfO@jpsLK;*`!Dmq$rN^0+ev$YzG2YWZ8Lrb z`ldnWwEZ4yH@U^2bKB-)87tq?sApc=zcI$-RulVV+YRG^ZZqgpZKrU|Za3(Hw(qlO zI}Ez8ZKxU0odzvzyJk7iT?T!+ZRa&WcN_E>X9Fu~uSYosr#bJTm&mtuOJ_K@eGaTh z_kwE9k^{ir@uadEYB&~5g?!gj_HAHh3g4$2@)qaZRK)Gq*sV^-M}QsBSTl!it@5D8 zS~yL(;CoMFEuGQ55O>HE;06924*$!sd|x{|c6Qo~0d`pD>|WPPh~gB zB+q)RhKSE@hRUfSzx4#(2iAOK-yxXvOs1L-?mu40^V$Rkl>3vsps{k!6;|qZx)swL zAD0K;YplF;q7>LgPYV4`GDIemkUw~=2btdQDd^$yk|!XuQ3>}|M^uR?k%(~GJp-&% zW0?MV?w3h^8TMG8Q#fM}GyAhAa36&?yp5<|OlF<8(}4Y|v49hQ3fONtLmAF{JAnPJ zu__{yYUCdtt1Pr+7h)2)MPBvLH$GKjjOYhF0_68n$Fyv{P#^j}(w&v}VM;BSrj zox&%9{iAzvz*!Gf@?Y02mu`FVs`eGF;f!X#6;=k5t1p7xZ4{DukkYaSf|m6o9@#}$ z&(sGcz|&E^vhwOXf73`&`rtI+WZe$gXpN;gSz%x?`m`@Y-Ly%c#;Q5{;t=Q8*UoUB z=W%8x(~+^3^$!#63VR%oaaQ0dCi?kzh>F)&&){Sv+|R9t5tp6$0PjHpR)E$_o1`T7 ze(S_xahU>EFSho8p|X^((e_1I5f+iKYl=5t=^ipVJ2!WK5#{_<1K zOQW&0@!7Y&%z5eM1w3x-xt(_$_Mbd%oSMVq#)LO{+=!&`w9fL-aRnyLfV~6uBFUc9 zorjJ&n{ntUvge}XWylUzAk3O+mWyn3)UF%CS$z;#C+#5Mb6x|3yvx*+$fTgW+p<`Q zyf0BtdK`DL5-Qw^0?8tzZvTL!u$W@B>~2|qgBR<`doBOn;L$UA4@+Hl3g?fB107A3lP$zp@Woi(KWe@FTsi{e1I|EsSJS(slaokGZZ^d*+P&jX( z-sA(8%^cxUfVt?c3s=thdj@p$(HPb}R3iIY78A>!8IQV`{jI?Fz#Ns@0No|fu^1^I zw5$)v`N|{gf`hC;v!-r=1{+T2^J!olqPvUNS-u$9P@SGn>l~&zaoI>Ua=2yv4xPGt zjIZaQ=`~DoNOf!WR>N8tB<{6ixss7Y>P}kju*y_qjOtB0t+MP*&7OD) zd3nbw!yJh0c`vZdHd}%HK-pj3wPKhk+LlprpJh>b_BW_vpFCs*;?UjNs#}=%wQX`l zTRL{i!y1itlv}9$K)0?JjvVZGA6nKY(4)2%HK0Q8u&@D*^ZM@x?)-wig-r0)AR_dR zKhc}k7nskLVnd(h>3bmQc(~b(>_%ETb8Q*e}6}=AkLe2PkgRJDO&KS&X*%*yJS=k%^ zY70a*--*Z!uR{;?X6mS-ink&&-iiM3vZ^#U}>g+!`*E4)tR(QZI8y$)aRY&MZd4Q~ZHhc^2UdwET-^CsD@5UJ&@u#L$6!9Z#o z1z+3?5qtuf3bNQiZl!|sJqU6;9lV3FwedjpI$l5Tl$wvt z5;EPJ$f{Poq^>vd8-#t%i?kf|yf&*TAiAZ=Kdq?TmPkxZoR_UcRrWDAgX@Y_Ma9e< z0pvec=0>vJgb^YCvZ`z$vY%!D+p4^Sh^q5{taQ~Hduk!(U#nvCR*1PZ3dmI}_$ZOv zjsp?in|2Us`7jXay}4{_AVougc)V3|h#bTmAuVt9bwp~R)}_~5y#XeOW?6p%iSkzK zOXT8YAkp4R1Bq085=e}<@@67M1wee>%x{Uven9-*>faM-!}gE$)=6svWG53XEL6Y#?W_PmvA0dK6b#2PEW8 z1S7qB?3FW=k~U_WxEdw*@@H&TrkWO5ueJ`D1s6822 zr}7+d_~s(UZ4Fnu&(^^!O)H2&UCyPZ1FPd0~`{%zT(!K5-aI=jRka%OVC(` zlg=$zqQ>g$90k@Zm&%r1*h)$3)4Rgd`C59q{ENYmyk6h(-{I-P+9_+$J3S(}iP^}6 zxyq31)&@8jonCv8(e-Y#{R)FGU)LDAY&JN8Y7=lJEO4uzR~+CtbuObM@}A-}`UDH- z@xOufD7MR@pZc6%_X4}GSk+MtC%Zqep2ez^sE1*Y&i-yL`%S;%0EfAD1MROlu;~Ly z4k)fR2)dAg?LdQE!e)0%V6GoK8lVMm2D0iOKWZv(DXzBVB#l9+gozw^lFN=U-2yZc z&gRSDAKOj2QkX6=u3P1a>;$??jPItpM8KKX1Dq4OY42eXtOV&Gr|s;k@3024y@5}u zP~C&T^^W~Qv|aligqrBl>&wuKoLk-DtLE{h-tv@7Yd&>*?WDBoFB*^g=JWew0g>3J&IB@lft)n-Z=STLLBILn-(1Un;;oV%Z`9J20t2b54`j#8rrU(0Sjq=dXoMFPowYM zYOicZ|A84xF?HB$Q5((e&%E>>c<>YY4{XG?v88=4MtUpz!W#Myl&?zvfx5@&KTv5S zI*6S;n*IY{e@OpvXmfd*&jKd=SQZuX}Q=s$1~^_FYDeJ3_W_LAM`8}_0(^dD&1kNyKIQM&u= zqbuk?a7Qlv2PWT6|ACDY=s!^Sje!5aJ?I1Zc4Z;pKk)6N^dGpT3;hS$ZlnLej6?Jv znBIo|1K!T`AIKa}|ADNw^dA_8<<1b>gB~^1UX5Nc%$~ZK{sTi{4M*6GcG7>K03CXi zeLvdeAv<#f{RgIPp#MO5JjdA8klV3#>QO9L?P>!A{0Ew1B|6^TfO?oGU7?3K|OR(J0YmI|ezKVy{HcnQBi)PM)wckn?Hw&2a9VZoiC@ z&alUz9cS8o&{t>KUC{St+l|l)bL=P3UUTg)O6WiEELwKH-LyCT2ewq9|GCj+!yT*Z_$6?NG19YeD@&z2Nq+TF1L$rrT@S_d@|=%d-BWlANUJB4o$k=r@f11EnbG2D=GzzR~^xJzOX4mhWeh{ctf3p-dJRp5AlY20Q%3ncC|9Rp{^Fg8|rAB-yg73kcWfz zbo7V!?6=#}e<1Z<0snyqq35tY40=AWzd)b-(0&N@e8iS_(SKkFq&~L0U8VoP!I}d8 z1GgTe|G;l(>(A`9U(nOg+>2MRu;|G-Z4y%TmB{C1FKk!~d`VTCB zp8f+*IP@R*=Uw^_eElo^2Rfaj|GRQcVe7I-hob z4<^ns_J?TKIQzoGwENNMX9+epNr`rg^0fPl(f^X{@ME<5F@?1IZ(u21&R&Uel42hj zMZ4ea4%+=sE70zL@gwbi1+<@IH$cl(u*>}hyD#!uq0w{!O1%k3S%BpUEWp$h7NAle z6hLH>N&e!sSitn1Eiss*)P1qvYI&60pziXc#$4)|&kQvi4LZ%GPIjrM2Ecj9rDnL) zGbr|qsARr4TqvWr#{8-EZZaw#Z(I9-Jm$j|prB zUB9xvAx7N@=@-=G#+d6~P?MWt^b2YtlY;V%7;7TrvM5}u2#;d`b#9j>vJN1e?mvw2 z8Iw*rQvJvjaVGlaa$m-G0a9BUYF?}JZoilmn{X4R7Tb9O)nw$y4@oL^>Fwai5wu4rS9_(>u(U#Pj<)jS~it*6z`5W z)n9^qL0z2{H3i+A6>);;%Vv?WBGxO%TTWv%MW#24fTq#JfgAs>J?-8k;ZNjnM_`O>{xdo z^~~q7qL5!zPC5%jy{~c=0euh61FR~%DN}C&h+2tvV~_$={a|r_6rAaSnXqM*(3&O?+EO-YfXf;bS-E6QN`WUtR$0>hR?+Rc zV%3WP3tZN!B5N{Px6DIQSvKi@YqHDA4D7m&bsbsXfNg4>l}0*xc{{B&@23fFf1ckU z;djK@JU%{VmgkOqZ;`~z*wt~emvAjee}b0;fEWkF6?vG!%WK2 zjmqVfs0(=g=nkw%H5!HEs?S%}wS z8$1DA)j4jQOLM_9zLDhtO&O47Zloo$79gB{H|)}^^O2$DanpvU4(N$34H(j%UFhMvJ_2v)sx_@0!3Jt=$*Xim;!90hV^cYZPvI zmcnh{hOo$_fUMTlVnRXQ4`gz8ENgbPxb@9@p{A>^PqzeahwN!bsBb6h#ZLH}`lg`9 zEPL}@X67hZaQsU#IjEbJ12jAH9xONIkZys~!1Uf{sNO%}j4%(3!@C)SaT^Sn9MMhf zebV&CZ0KHSZk37whT%gKq|EN;f`QD5*VpBtTz!5&K6iltvc zXv0$YU=)O|eu4R-AhaLrqbCYNm$G1M3PLg;Q$Rsz_G&Bu3qt$e!3wY-RE+wXRS^0U z>xJ0`q3{VT0t-U5UxuwO2>sOz%fN!r!{1>YSP&|E5DUSA&||S!2^NGdV9BwdAk-VP z?ZSdkHjk01*;ptRgt|juV?pRgfu&+WDC;+@6$?UnZ(*@m5ISB3vr$24 zDmIB*pygkz7Yjn2Gq7MR2>CD|wiSe0p$ywm6Lqj=EC{6?$D*+y^ip#SdI&s*Wn)3; z3B>I|JIuzyu^`lOH&%{dX$;dFTG}34rw~p*MeERKYq50-eS{`#6WW7~K-*AyS8Sa^ z6>Gz`hoT?G)+zMQLTsHvHPD9bLwBP=JA__<@{XbN=pUUzr%>p-LcXKeI)#44vvX+c zdTgCS{1|T6&|QCE>l7M|+Ug#vgK%yr<$er=Q1#X5TcOIm(U(IFQPLhF`_qm*LYS5t z2zN)v=4Z0x^jw>WaBkvgosp~Ne4o>whl?|FRX2}wYR4mPmc|0k{2IV!Ypk5ptU9nc z8cTB?rNNo2v5H;7KcnO2>cbl$yL35#4rowhD98?<$vnv?b1fp-F@s^z`Xe*t?@>x_fDB3LphEnmvDh-6Q1N>$5p z15tTA4jU!pa+7&2`-;ZA%}0$KE##|i?!HH}%N4HPOlpy@qHt!0hT>Et(p*jiVo%K18@)2T2WaqDxFs07DJZ!+i9EML#Hl0nP<6pLh^+?X49 zl{p{P4=yFT)VOko7ruN$V=%wulyBx*6Tpa*{w=xwUzG?~Ra4@{x){uHCt zva2EYUi)*H7Q7wYhdTmaCCJ)`us6m#e#{?o`-A zVZYOpy5IW{xXALj;k0CQ%HM^v#c1#Wo}CqK~`YK5%w(_HIG z%5C}wr%3W>Zs5UtA*Z~nj_JN9biX`q0GWlwoh=PKLYPXoeZj+`IA57S_hHY3FAM3z4Bbj4fKc6 z&`af#T)kA*MJ~;)z$l+{+Zu?4jTUDg?7#e3W96J^RG<7M*LjhUt{AP_Ej0HvB$dPTktE$OQS29Pk6hG!$^ z24^`Pw@kY^r)X@2_KLDKwp#l^rD|-w6VFyk)7U1*PprJgwm4@oUr9$}+npnrtYrm_ z?RMfh8C23(k#m&hu(HPXJGJTPn4z&l&bDmCRngdoj-*^wjTJlp=>;sPv7?T1Q>&)y z@Pr;R)pguyr!hxbrpC@VhlthC*g2>9d|)*-_Pz7%Az-!gl188ge{u%Z2Ua^TKm&id z@qen~U{y2XgA3!4>$)1NC>z_*Sx;jb_~;wv=lXfcPe81OYi9vFjaPQS zf=zSg%f`nq;qWz2S-?TEar>hONm<284W#h6RVEwJ-CL^vQj%77A zO*VcL?S5-s;(TzcBV#`K$Olc(I~R?Ef}Ud8GoFR>6Q;DdLKUdJj#b8eT7XD-2NL}R;U<4X?KBY7!{ z!C535-v$faLB}1!Co6og{~G&HHh%agtWz{rEF0hQE!Ha-J@eFOKk9oLH@g{!#5%!Su&Epkqa37V4$`dG;)9K=_CFSG zGBGy>c@Gx+4GWSWXYwE?#UQ7-Oj=8Mf1X7pnEm?Y`Hw+XpDFauOW{o!umPC)2jnTA zoB%yC2Il!o$u_RfFl;gmo9GxPhvfN#uov3(VQ5}C?KL|26cQPhm&~uB;)8+z02{6` z_;+N;k$L|16za1c5u=PY^_497kj8MMo+10@Ma>4A`hI|XFt5x8$0lNl9G4d;#1d4`ERW=wnMJwDj?YtHSnxRy&Vks3ym%%SaGHJtY@%+k zmd=vZz#i49-QlRk!($rj>^y!2agS^4Ugwhuz$R%dU%w_YC9fP4ALM+Ug1D(#=P0KJ z#*utNV`H3Rw56P;vGET3oSdGQ!sebVg3D1inJkH%k!KxYv4&vM@XA?vfghn+uj}S% z6OIo8$3plijY;S66TlW|%+vhA;rNQ@LXE+Hm}+EUp0xs6vZ$)oWjqq|(Hqs-DU!_k z2bA=$t4Q%oUMgd7{?R%P&4YElTFIP$AfYeF_IFsU3%lzoXtdWf;36q;DHloKZQ%}g z5v){{Jse#VFMa$$2d7&jZu-{#w488%-;(%va{jCo;(@SLItH z!I?#N^!|dr{(mTV|1!i)?yIU=IH|n4oYGfKRX*nrPWMy$Dy4DG{{6t7&~X9B!e=hz zG#ytCt8&;#IlZs79y)dTJ{^$IxDQJ9^;Usrhhd1fU&X4xV_(LM50@)&V)4~uEF!)b zV8wzruU$iTnYV3F!U!c@htjpskkWpoE~R@VL0V*zRqh^S<$x>u>us!y8Dj%0foZqB znPZg+(O(#mv&QPJk;o*goITchlyU=arQF=HflHKA4jS{urVufmWByoE70T!3NsVFq zz;rSxEuR`|Z3dDzvk(o{1cGw?*o1n0F}KV?e=4wRp<#tRM6FYopb|XxALz0u00rcm zW37K7t!u2&xP)F1w0EMJg?*$Q;_V*GAtExpZvbgB&T58uxFNL|7d0QDPQwQXdE2-& zej-Xce6<{>9KJ-hz)Td7O~(c3@UMOSnvF9@!pbYK`M3&9%uD~TR^ws@BaEIxG1+>Y zMeSJ>&0dAsGDEf*7iiKCiu^+m-*%k(43luC#{g?L&Qy_X0qk~-#W`yy0=siu8pQ(6 z#7@B4>$o&0mp!S2#wy}I8|h>+9occ5^*In&-A^a@Cqq)dtn=9flb~vaqZ3SmYD;%a zW7rrzatsT=vL!IpyCuEl|EcvVAX%v1~uhY;d{^X7bat7QGScsIfS``RSyw zfZ7G#rIB*lYvgW?r8#Qf*I8o~wUO^l;@nt%#wX2L zu@~5*S}wym@inl=G=|ifpnQC;RUPS}Vy!~|2MB3@4{xDyK~PQsQH6T1EHX#8fr{ut zYXxO8q`%N#6GsEi(=^1fg=s{D)AuD{WeQDWh@HUVG#015g5nF+SF;1!4=6!vhqn&X z&umx|{E3Cu2_ShdXSw5kXkkJTwAXj4txwV)xWj*VjTHMRuaP$YNcVxK_VF6&7*?wRo2!B(oBy~j z*}n7@u8~A`Ul{BK@`=L0iU-{(Z(5<5^43j3cBU7qwWF_#-3*6!g~}}Yie#5LB{;-0 z=potVhqYM!8MGKHZ+?(@wk~`#=iKK|G)GrVOXo#cdO25D+8s{X9ANVb=Tu+|blf24hcAFF)YvemV-&Eb3zO@jQb*wp zJyc(i4v3j7t$e1?Vr^$Heh4c^d16su*+94GUo0|3f7=7blZ*6RqSp^67iI88%z&P? zPcEuX3}5hMNlz_OohU=+|Fp)c>9T#fNR_RI^U!4I{A!WvI`vikeZ5Fm=Q62k_l!YT z%P!k1<090cn{@4dW6iZ=e6FJ&Vs7IE@-Tc2=cHzlO>gx7FoMc zbG7o)aXX9>tL39Dvfe~Ey(@Y{-DN@2aYFt9DhxlxTH>t7w9^_3v$xU#sOb%e{BD6$?P z>xF-@I)5cdI#>^0r}a6P6?S|!S+9HyUx`>sj}^thgiCLe>W!!NvEhLDG@e z16r$|q8hG@j)L{H-+T_0V&`B0O8e+K4$=|RIjdzSqqQ<*?wUXguxYcHw?_L#>4o+^ zYt-dkK-=AW*XZjikx4<>V~s`i*>jsyOV2gFLTXW0fW6kZL-83f-oM6}o$jf?9?)2v z(;K5&_Fj|Br94)&^azw$Ypuzx(DL*%lN;7rbRtvDxf{Aw%VV*&9^v#Y#khW78zdd~ zb*9|vs_p_v7JC!rlxZ<vkKp{g4CSMw73iUDqk7HPqxQUSv54 zr*GQ<$DEBp(xG7Ib*#BAYm~@pOV;$7FxH!bq+>|#Flp65j~Ttmtph{V-E`~L=x@Mm ze>IKu&QJ8i6%Dh9$9^3%hh^XMJnQ}UE1XLfyv=&Q?;Y0rjE6awY{gXTx1YI(bIEs; zIG5a4fVo7Zx34b5-&;+kE!%!wmVH>+sanUC`DJE#EhIeKf~2F?-!xf1026e}Hk0KH zmkP5fn!D69Z)jd!5YP66u~1=mfl-G~-9Z*)6=qtGJ?^AhMb6s>Qp|SiZg5SLci{Wk z2N2R;rb*k&Q&>0;ufp=tn79@fSUK|hx1~4dpyMgLVbh!7=o%W)kWsr zOTe7E-I@xT8a2PTk#$7YHwdTyHW^dOjv(n6HJ_W3{_~L#c{_}`DKcfsq?4`OzQ`@dX9ox8#ri|OrTL!rb&TPYFDe(H;Yt8@eW5lq`kSwG{P&)$(Ew3 zPk_;E)8hE?&X0d3#ZSxOM~GQDn?EHVFHR zVv>*oZXc+sqfZtU`AN|C3-1)ER{`+Z_7hP0uExB4F<@s=6m!-|y{5RUsPZgGYd`q6 zi^?n_vb#1!_7#=+0SG=Tk8H>TMHW-ZWG%=KiYyi?n_K65rFUOoFO!YIWFw>YDLZf6 zHlp{b>;{~RQxF%Uv5e*e``|dor?L8ua*XwBtY!1QLdNbZONE_9kj^HVOhuO2XWb8) z>Ir8MP@TssvWgK-KRFD}T>FEh!xWh|PhSlSerCVv?HMk01A5Kl2aJWwU!Q;yLc?$e zH@F83Z%dczU59hM_gxK!s=RUfVb)Mtz)ao^;RC8mgUm!Y$eA%~DMIN}_rOoA zxHdV^fUZz-43<3C3GF6pTUhJ#Vw-gMWtqd9^uLecwzt@ADWf2LI2xsso0ny;n7r_X zi6E?m$_uV=RVYewX>$YaNFqWR-o2t@_{$ zl0B17>+->3iyrCOy|Zx*BnQD8o|@DJ&fsEoodXZ{`CuGUtQ;8v`lZ{UuK#-`1?8|} zYa--S(-kA2GV2prMF^*Vz7*%LM}wqeg{eH`KyCdQEZtmN_$im9%Pwm*k@Y=U-=2kghvQ{Q$Kbl2HHbZ_%2tZVDvNOXFF0eXf4nT| zeruFrg-u=eg%4lJH3wGfzla?I1YcWcmwEjQ^^sZ(hZZ2#;xMIOwo)4$Nk`^e>ddEa$Li5J(z}u(wlN#eXJnRyx(w422;9-w-wX#QDUtP*TJB58@H7n#DEy# zQuAHv?Wnkk7t}Xx{Z{^MrbY2374c$(+TyxS`l6c{K4?6ji6vsYGW)x-r2DPR4HWuUrLiy!(g>GWWwd{$h}H*x{#4(>;eC^5R9;4nJwAW!{B9&_y#d zotbZ_yFQ1vPb4uzRf%P`;RTB6K;@Vu!E-~iv z)wiH#PKi2<2sjJR0-IY>t~1&{O`md`!ZJlvTE4!LP`2VJ8*#+Hr=ymrmn3D`~ZbKs7sPF zA0o&G?ZaT#t>wWmK{FgD!y9~@ z=Hmh$A{awf#svA_fBT$8sO!eNkg+OKX^oi()(5dbslt#5o|6R5Kk zb>TH?kqzo2iuwkr>Oag-Kz}N#Yq%q-t+Q11c7zP9K=lw^M>R!UCmnb3#<-lP-$R`K zkCxs?ZxG9=a0pRLlt#ym5;?b@0ClLM@)Hs|iJX1CL7lFs?XFR`o&X~cQ ziqvqsqW%$~4ja>FglNr*i+#*3*|5=rM~IfBrC*~B8#z!6BCWwS+JNz+L~qjCU8D7b zcUcS4?u*cJMxr-WYN}Em>r$(bN90t2|45}KDr&A9C3614TvI7qQI}t%+UT{F8Y$|w zYt(ztp({P5sQj<5RkYrbT|j+VQNO)L9g9&{=@mu25}|fo3=u0ys*aZOI8>;I>X|`0 zTjZQVN2@$E;SP+9TN%&kRP{mi2{V!Nczq!LN zj~qt^ozWe)LiZmDbR}3wD&}a@zjMSi1RKVavWihWr4~7tt0CA(W%d-QJVRGe`q9Ld z*BNA}{Ra!wDp`seGs!3sIo_`ktQ*Ti_NJt&|FppDX@x3(m^lop z^`FE-DQ2+JG=wthacgCliC@y!-`ckj!Z&Ejp*}7yMy;38wLX_Zs@ADlbX}B#xPXpZ z6^T>d?CW|3D^)8_#~q5qv2ILjwD=vFnXNMO72~yunTBeMnWLz`U86R>2!j=|_uXrrW7N8;H#bd6tYQO1fOzxbb%gBGpOTFHD$ng78q za_;X2rn^O*Zl(=awJwx@eZ_$kj-duCc8G6DoR&u72zf zD%H`QxM@VLYx4mx_Boak>`F4{8`1Uaksv#oJUBwmDeQr4-KDZMjZ{@1x|MpPMk;hs zQ7=cLSXCltMp-!RW~xE>7Nb;8$vKG+E(b%3T1+bYqmEiGyWomH*fRcGmo9R?o{suk z!hcjRu0*I^M}CbSg%7^6qEn_oUiCzNepO7A=V2LT{Rma*=l=#46I(Bbo3(7^Mv1QZ zcSFx@vNrY5T~zDgfaxiQjT-rgn8#LngfXhQ_z*cw&|NF7RxMHZUr|x-pwBMT9fMJ- zj=Gj!LNc9ncHbvi^?fF)y06ID{UR!{osa5&WxN`)Dx{dy<1!-fPZs&$zk|qmI2TH9 zS4mZx>dHg}Mc3aJA(zdiYz2viWYC%42jf$@rE2%?q$P`5@*{k^A8eWTT8=v;X^_mr%N(d_~oNrfNELE?m z=W>aLD=y%!A*^ald>G3V@xNQuA9!uQITIJNy!SaA&K#czk6c7>XA_J6ru$)7y;su$ zC~Uuo<>BHHy>{#aJQonXd}orVVzgS3P*p_nCyT?eA0a1l57;(fV_>s9)O6x zE0ioI8x1lNVibS!RM>A}dXf2H`v`;&NsXG?AX&_h2pwGF5%SA$)YD{q5mDcQ2V(`7 zwLoIfTyU`z-8Cz)C>W_sy>9_2M(Y z$jwhN{{B!a6PqWC9pKppz<;7l7KafyMC4BhokrjUK*aoQvh~HbB;mn#LdW6R-Q#QF zkzJSrkL>F4q1&p~Yjs4|o)m6Kl>`rYDeQlT$+Go+hvHwUT(w^Nh)_A^uQVKWKQ_&( z^LO4JkiynGV}xp$1XN45Lu?y>YRR7?YTXdVtoq&9lJ`I$7vTTL2$+^s zZ8FNxS{l($!togxC;y*q!Vfa^2dFj~hrk$sY7W0xJO`W|hg-f3->T>)T{Mjym1ZG^-8%2{H1`_8YC+kGy`XpI3Kpv?9)1f3j3D zJ@Q_B$X51{4TaBbM`~DcqXzZ>zcuuF4GT*DFAe@0W`Ml0hFqV5FV91#29!~Mm|a24vF1$+`9i4K&j!s<|JH}I{bz4$R+m
    hq*NSqtWGkl|Y3D@BIm((m?>1y_ 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

    j{{#NDimdK- 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

    Vl2dH5O}KK$3)ptO^?T| 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∓ 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 z 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

    7!)oXXNdIb=Pt@kAE%n*+%l^OuS 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 z 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¨TmDe&^HOalsYnO2^Z!7Pob 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%0A$v+(H#c`xZhE@6vx|Gn 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 oWjH4H_WLWk1B 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

    %FNtXH64aaFRCYajlDV>x%*{f{OHeDEu2pbNTsx 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

      ;my&G8^}B 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

      oel9 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 z zS?BR!r>8iu6LL29y!~#d_34~_2+CRHrcL|AeAKa+Ii`F&3cc{BVne$MdA@Htp_ zTaMHa@?7S9HeXIy?`Ov8L!9HH*^!ccB-#+gY;TCB=j3v1zC~o;<33u>8GhvKKMwQN zG1bqK-@0cQzfIoB3emJtyEF9^yJ>aw6l?<0`iS7~;{m4(UQ^^e>@y!jbBsKM_Obaw z#SmYZ#iEl82TA~~X9*SZ1DOZaX1jSXvpA#cuf>_?$aE+rP(9OcMVj-(LuCHsq2wdz zXB%!Yk43-W)$$E|xOaL>OZHqV?Bld-f*N8H6lTu703H7xG#ad@4h478xUehyfG(me6Jx&zC0Zmr346+W3YS{PlA}q>CyJ~7vjlG_7b6)OSQW| zYI>^ko2hrsmgC}sRqE2v4_!^vj>(pxo+4no>>ls z(=*OzSKA&QCU8RFY5|2;9fdlqLU9mQAXG!;{5H1NT7y1Op0v~B5f_cGu6U{O#Y$Mz z{KIap^~WWohRs`_B(ugz2Qe(l(06-xGL*P`bl<} z?0Qlzw{iAST`Sf}n$g=`v<|78u~YBRi+Y7>xvrK_$||29lt|v`dcVwBrw_Ilqz>)>pwHVhNp2@f!In ztgP6$o_EMQ6UYj~^*j!vB@X3}vtY;b@L|V+tF59I82xF-+~N$~BljJzo6I%Tw1@C? z_GS{c=B@L))JmhcE6sX-$pI9OxaJ5KxFpYtC)TrI=iZ7Go(sP578Kv$NS{ico~`&L zfc5X)Q0zv3j^o1)NM{MW# zZy&jo4{O+kz1%BFW{4n8L}1e^A<F+PG*Ad>k|&3fA`6-o>_8Q$GvtP3lFB zPI8`4;#ml-dkQM0P7f2Qkm5*9B+)_y4K2Keu|92E0}WOOq(t*ml@rHQ15C~W)S%RD zH5_u)&`=xG9cH0Ezy7BAOxu|4gC06^O~IP$-yESjthM#3`N*gop||9^0g$<~*LF2Y z5?C%@GRI(xmxXm61{E(tIiV;eq^SCk=Szi9C-Qo;MmWQzzIp?_OHu*0B%?>#r!RhWJk zLaK2glf%A{$yF#h0GM0_$W5hp%cde@@m^dR%%X@l&zKlQBus3e5(9vV4OHHoYF*gs z8SUlo@^fkCzjP`%H@z{+lCZ>!a7sDs?P3jxN74ZmZUa__(&)4R_ngU1=U@*7 zut0?2ncVZt3TptNV-@fIiQ zD`_<4r9O)1QJ3iUq{+>6uQIQi_tWeGXHjhlt|1&z=PD2w^pI(QR+Mt>C}SnO3>_(6 z_k{CYN^TZSoGU}*x$h^%;KepmnHFGWdVQ!DXoKi^O;xS61wph*V7MtmjJ+h@bm~TE z5Mu?FyT-PdS{etiguoRtVRW&j-?=~Y=Mhylxs zw<}GQI=oft&B0(6&M@t92ipfzxy4u~+GKo4D(V5*6kz$MOi`OM`E5yS1 zeiUz+6;0358*U-uFjoc8T;^9E_t4udcDnjDm`dwr!kG$bVT|*by%tLW+mjn;27!|oa!Beem(;v~ zUm9T>)msA)xa2D==1Qt4 z3WCkERHQ}aZ2$rOYCSC7Ypw_sLTA=f~Wyp9X0Y-|l={E&V&gnN;~6F@}U9xN1F!i!#X6tDE6s|4AOh|yb;c&Ir8 z0S99aqm0BTP!tRy4#qi-j#CtP=?mwbs`Aw4SS>eq<_RJV&PB4K)Iu z|HEleLkf~!h-4mj$%qj-V+u%>fEH!Po-QsL+I9+JgCoH}61q6R`bf#KiUG4``P=(} z&X6}DJ2&0TG0e^TX|&l7(?Qn%4L0Un0FmN%^o15gD%22@xCuFBN?5nw3>}5O&{6ow zAAn-i(~$GiILu|;GUt&y8Hbc74};uz7;%U7_RaK2o%zIa2S0P?U)W)O%0JYc9ftvh zL?6d@rtzLPW1aaGICf4A-hoLVj3TU@^B;()flfQdP06oRD)J=EdpaCuFucN%&(YJI z<9h0{O_%iHuMVp{dO-g_BbBu z`WQeWg%2hgzL&c|5FW~oN46hRHnBLnHNXaPiocxCOOAxmk1^;vJ4ymNco{5-ltKbS z*H!zarRIfVH?jqu48BM&eAn9yN(J;G@lDwhl19X+Sf-H-!o{iALx< zjR;-Gj5w$XdQKAxavdkEH^&MoD#-*kQHN zg!^6McRE1wy5(X_yBA+-NnE;s)bkcVP09KfllAifYW>`54Qh1NQI~d(TGJ4+5`!B} zOavng6X~l&j&Qc@Mda5$24QF$L>xg5aA_4uXR9nn@GlOYCcx9gScTHmwNa7F87)z0 z13m@X64q%O=s6C91`)D6QisfQ&{>au;VBNMj!5rO2$>8}#ETsQWpQ3s>d5nj*{lqPD$XMz9@(@5KTlGgSg zz{nqVz+#u#k=`c~qkZYEWbk)uxGO~HuJ8qVj@o`<98+yCm|ESbACRud*6`iXorP=B zL0aTe>n>+#ru*p>hl=|2KS(d)^z@9)Mz+F8N60zC#@&>ECkshC)%aP#oWOB`hle-B z=Ns>s{jq1iIpl;Ihs=z0{5al>^lFHy>Ey$nYOGGbm3Ak=Z>8V$jz!X6rqhrjA|qd> zC*Z(bj!UM7bKRrQbHknSIr2^%Dtn~4UrWB?IR${Qj?3bBPX<3ecue)TaMrp~j{;W0 zw1~=QRtL|p&MCF@XM%+(8XssLT}5Z%SSynI|U3W;dQBf#ZktW|&uBZm-#eeH?NxI$vHKu4Q}W z*6s@xKxiDs2E$YB1~V>=3FGnfr~J;H`853?9?vrmhLbZC4ila*Y$jdQ_CRzzJ7j}g zGe<5KIJ6XjL(322RxmaFYh0c8g`c`Q#Inb+ zS*RnxC~FE^QwSu#?8YzhbD9?p*XldqH>5_-;P7{ zp%C*D?z-vxM1|tTCR<@I5na*O8{(4XH$=>a;I)7s{=&k#^c2eyDfiJAj&aDU6ld;& z0=Fi`j81eo{BWGP4a%-cFi!~5!_G|b0f+1e4jGn3Zl1%i9~NCXpk%VA(b#;@ggEQJpD?D)49ZOKEmJbGln<8q)d zlU%12E(yFUzMM~Y@z%goLF#%O#6AVXhYBUG1KH)!OH=+AZg@}k0<82l2TN8nC%r&s zsRijRFcfdLW~ zj5OEhL7LCzyH+%dE=b=Q(j5gMTl{Y_BrB{S;*oyEo&-Yn4N!6mJW>%_m zW#&b^gR9hDjJC;+LQS@qX~YUnHgzfw;JU^k*UD~-$FTp;v9C!1}vLPRS_RB@s!A+I3LrbWuxmtk&)ou$j5Tzvt|Gp`9UHzaZsK~os0 zhs{ttOJO}P1UqOh-vJA)jF1Gvr;u$j0(rhcF9O1(^b%TEPt7dEg4(RiEFkS#szLm` zob#!Du_$Wtz8&>yAhpg6m=fIv)Rm3gU9ZUW;Eh75$#Mbbu@_iPvzu;QE}p zOIydL(KEp5u_w!g(si&eB-z*ii@_2+EwwsjokS9sN5c;sRhlfHz~d758J`*tD<24F zlxdPFGRX{qQV|4q+aWj)2HM5S2`;$E4Ldu@IH3${b~WH(Apr`f944ZsBB`Xw*>2~; z0!OfEJeG3H?)?a4`c{ED)6zL2s{Vt|o5om93qRwT9S z0PX+!!o8s#qUDmxNszRh)ElvTpNW+Njx)|23eQl;I|f7Eu}CB^i-IRf0`p|>D$YgB zt1!rFk^hmLlmdJbUKRqpGW9t59#5?y-oYSw&x&HC~-!k#7?L(imsU4)%6FRf6VI(lC@V z4REf8>)&1skSApP5FYUeEpQ>&T18&p3V=jjXlHFC2Y3U#8I>Z^Rgg(ELp?QX14PVG z+TN%*(YDA$?1d7SZNQ-oXTdD_!Ge<3L-%%)Ja1(=P9kzJd*P|GmVv&l-CF?V$xgze zLQI11OPAZkMhIT>rtL}x(4HFk_mr4LfsgbNn%Z-TZJ-agx%nVd`h zqh&(i*<{J8*BYD*%^rg{k2p7^Mwhw`DFJjF(&9q4Y4$~$Z$P+)kT-1JfV?TQGXuf; z&dgfe@<7O1n>&R3GiN_ts~ThWBb%1YcR6FhBS2$wIm<_oyDR(Ie3Ch_7r^JdFMD4Q~0WU#RLBC{KeAY`{KCWQPGwa;%T)9CR3`ocO_ zX)B)V?Vaah<$^(jCb`AQN7eZ#o;8jx!ucd$xty53&CMparSDMHvpdpHJMh!#b!pNS zAUg9hzj_VvjaM-g|Q`g zRzNi)j$WBu#THeG>?#;^XFMkGUUDXk*l4VosY4La)44FeZ)RQ(cheS=qD{!$i;Z<0 zv@Eka6DP0@_YWnMlRuF8FYnOV^WRJ*_S$jO%4m5MM_nFm@MI&^EAr$^LWG~4qBOdGmL$=XBN19@q)~Kcr!p^NtJ|MU0VCF8a4Zp zA18})emkME>kQMiI4UbYp-t-`QNK=yVtQixaz>|TyNTh33; zzE-w28^gCl3A`*!^z!8*ECW^r?N=1wXLXK4 zFLo7dUQBiX^5JFBpEA%Cl8m zdt8HCuhWdP-pMFPu}6)zYqZg9WkylM7_+7v)|i@gXz@;!Rp&->q2>)@iPOfU;U42eUn=M4E+$u?GVDY?2uF((nOPL(#Br% zker0?JF;o9eUMg*m8O)Q_Oq>*S=i}t*%szd6wh^dxCgfylaVG>ThFk4m|gmRtYKw%TK$A0CTy>50(d? zk-(B}P}{owmR?gFfae|Yb3t^^)0Pmu<5m63qTJtfew=OyKaQg#5W+%ydGIwEU;Elp z27oE|x0Hu?lw$)e$fD0}AJdt+>LYRca9mLDQx!*Nug984fnO453RnVj>V1_$-)st4 z{9^l)B?S)qyK-w!65#gJgB-G}*{7s)iz-9*WAoHY6YH#CfwidFrv!F4JGUU%(%|Ey z7w0Qjv?WRh@f(BVoWwAmTx_1gNsf&xF|J%WA~o{TD)aYMq~5nNxe-4x0o(l((z0@s zBWr<1R9F1X`6LvOAS~6!m&nOnb`LKHO-|i{YxP33fa=x_5sIEjBYby>6AIb>;xD0d zZJ48RUOJCNMc(MrsFyb~cLr9;<uvxkA7)#WWtoThWMyjJOmU`04~EOBIT!JwU!+2y;l22Yqa~;6%Z;^Tx9#g zMOVXf^)TxhHe9sNkURdeV)i$!2VwO!h+?9xU-TDv{z5U~K}=N(&x+H>v?dHRZ(u<9 zRh?>mZ070{2AVH0`cnS9HX8ohab8aCs=PdIL8knKtmb(_XEyihHO|g`JnRcEuO9s8 zzv#dzd?|awhiGx}>t45$*zxw{G#NdnCHK&MtUc+;A^662esZ|JCIIVeZmekm8{rBD zN4L9y#oDR~W4fvbZ@$e;$}&BNRuy9nK;aBvqUg(x8W+~#te%UF=edkrk&TS4CJHr6 z>KM*IaGOh(ywu6xgrP$&yuNYA-xEBM=F+us-c8?C)ALr=tn|Dw z?=ebNk%yOFq9vYB)%;EhZyjC?8y5FkU6}VWcSZ#NCHJvBz}Mx!k(UvhbR zjMU>EqXT#vNY(~-(28+odOz+dn$K%|j-Qw#3@GT@A4pu7mGA~8OFI125ymwNjDqx7 zv$;FHov2O;pQ0x&$K@Q%!_WNu6_m#28k?)9fjLac)cL>C7;MuRY||KQ(->^i7;MuR zY|}WrjcIB4zv1-Dv~&~sHzsHdk{3i1P3YJaXD#NIaeBToF1XbxSA80M=G>nJ2Le5? zJrMlNZi=}Aro%I!(iKEW%b7j&dW_i)jVh%-C7gqkVzN5G7v{}EtluTfXVto0TMZAo zq92BOpAtMr&0wE@x%_CMUX80%W(@K}~Ge1;9^-v$>4~ro8g*7kLn!7%xfBjvKi@WR#ZuDTv z_TXXOZPTj<=Ecl@Po(l@&M$n1&Os04?#iV^*|RJ63n$?CBKOujyZ$q`=1n0d$kO8L zPAQ7Exv5^Md}fYC^bXE1ty#W91wvYFAX=z05vvooRhulEgjg#~k@STMfVt(|;nXrfC#9dxO`Yv$+`(POLj}o0uMiB{_a*uWiME!;$#ek^Br|T#MwRKq(q1*q?xlWHj}1n{q;?h;XO?$QF5jQ&`RN`c~qnYmKZG zF6pu4m`6G+NnnV#BV=dcH?(>Xv6t^v9+J3ulnV0h{K8ppBEQ{5V)m24HSbC4efpf&t;(veee$mt)6CWx2d`%fVwg zrHdU*r+)DCqjcdJF$$hhoGN_dg6RSL(`~8%aH{>YQtfXHX=?Vb%1SHtc&TC=XIfLL z*cEj;51#WVRd^`3bn?dO!apv+z}pA*V>!0~aJqf6((Pl@?eqU5UA`(x>0+|FxZkD=0H@nGE8V^}T}T!D1&f#8{;qb90j*=`P8TSha5+4e z>xOR>JS=cS$Y@-|>Wh`{15~r{KLA&7^faRxLccKY+IZ_tqn`_iu9Y3P9jFwJl}U81 zZnmRVI@HF&g~@9ZwEpN*JstvzD1dHap~=TF_}zxq;G3@pd4;e+<|r&p&}@s(KnFYH zEXFfu;YAKJ>{{!&_6|DX$F!{xid7{%CWaI>)FcW}Rt0~+r27XVhvGWxukiep$iYM8 zvbAx%sKprbiqC}D>P(7?v&pkYz%zoP!b4G2T7_KlUOe3AvY{))ym~6Bu19io(oZQa zc*R`4=k%pSq-Bm8irS4&%09(^?hvD^H z%o=pp*EH^|SAIK4NPQV^<01|BUZhj~D>SaW5^M>QHzdrKU_G5gV{gCSyg>$M-Y`1^ zume{<0QlV8VHLAuV$S7Jg{kxY&=T2#`;j8QD<`AKekR9ef6!IUW zz#)=QwQpb9)Y&IIjv<9G)R1(Px4Wk{0km@<)30^~cmR#sZ!(FOd@HOEB5P04bgD4M)qF*S?Vs zP3R=%&eUwHtK0=MD{3`rFUTjRqTV#n!~oh2_6V$C&`LEbhZ_Y*t*R zXqC}e78MP(Xn57V)#XX6a&l@4708s-Oj``hFl_+B4;(IUp7VP`w9ylAZE+)}!ryc9O%?TEA@SV!7G>+q7e1w5Dho&et` ze-^;c$-9~Ya97jmO)bXsrW0ENFtO!iI>(vZa(pZJ#<#karmb6Bz12x>Tvg{L-02vB z)rcWj7EB0|V-jXUz>iAaPIfAWn3>5f^s@y|mV?~3)So^I?jyZ`g?I%QKZlZcP!GK$ zRYgPSXgt9Du>trSvmwOK#OMPO8~v1X2Z@cA<;@}i(c3k5L9f-kU29=o{Ol|Gun~S1 zmHev&Kl>X`Dy2jwl|EKViT>7PSsB2~%AP4B@0zmL$@^^6mz&~eThoor@N<9jH=E<< zx90C*%LW!!x17@oGqRI1(X>jYKvmSOzfuZb$shEtL(WXj^6n+fO3zB?qnpIyyji&2 zgUOfax9Zm}~n7&zjH!b|tlVklFO~|2{9k&k= zZ9>kQC2_PjOSW4d4b^6Q$vvfU*gd7QOX<2L@iDvfeJ|ww(hp1VW+zJrKP>&BEROR- z+0SJNIgzOST=u}Ramc)5mvnMI3^C~Fjq~+s>nQK0MEe%_U)-b>L`^jzwr<}7|H(_G z9fW^$ji*;Qul#>$AYIz{?Z)Ch3e;d;Ou#lLYwT>Og0P0HSU=IePa8y&g1rQ+7z;sxuD=5{&LMT;)^gk>l zocE>_!V09yZh0Lki#BcI>h(gNmo{G37(dHEEj1c;kZW=i^|+`C?Bx9l88D}P;23A}^k5-5`O*2Xm^$Vn#xlWJ;1s9mk6e-7= z8OTKM$)K4)xg-*vAA4oIvgLxY(tvWt$AaBFocG~X#Ip|r&op9$54oajg7&$kWIr89 zQcplwYZul5<8FseH0pLbi4WizArT(?t1Ty!I1kO2Paw~`3RQa5&$KEXZFV<(wi!8W z--@w+rg?_~m5r>RAvQ?23gD!lOUGRcBo98 zhsthmDwvk&Z;ogIif41#_A;~sTg=Gbr7pBlEiOi^Pkw)1c^fX!MjdNFcI^Q=ZVvKL zrZddR7GX)#TbucSL=Nn23B^`4H3m^9@v>!OaCD>s_3q+oanq%1v_mbCGr6!lFSIp+ z=w+dexhdPrDesrigz9o&ch+3`LcBYRS_`Oy4DKkK7=}E++f7hf=qo{I3!s3)Q&Hmr z+ohB$7EhN5MlFm6D9er*U41CiMPYm*XeP0URy&It{i~6-%dDUwHppw2^-$LIK{h0M zcIGT;j92`q&GN_MCmO}gl1l$17tOx)j4MJHo9)GSU}eDM!dDzZH#C=SzlT=sXsT9a z=UA}LYtADu;MJpsQaz%C770}?Arz`6^m`^4?Gg;E<-kbvv3MI{3`4<9sbO<_f~lN0 zI`ko35FIw)6d_>|Kw*wV!8S>v{68Qz(IpZE(}eVpaIlV+38>#(V)oX1rapdtE?%nj zgfh*-8DepUSR87IRIcGrM~800Qip!4-UoCU1}awO^Wr)504JPW2UtN#H1_hJ@O3vL z)`%*gf7=)T%|a;8#lC5o_1^K=rp(Ju{d9NcL+Aca=F5yUlsAj_701!PDjC<9`T$+g z9M^avSx+J7;>H^r$4GZIo6}4J<}_Q<%mq*-YaZiDM#h)9jJtNK%><1=L%Es2p1vS= z!p*VKwm^X7pxkSs?SgbXu7r(do8!RwMu7Q@gLF@EtEtwGn0YY$dfNH8W_&!%G=!iO ze(xxhYD$nPZ-k+VIN7gi+IC6rA7Hq;LZY;_MMUjXK_^(|#|j3G9J*x)Q%UX1tEiDx z)|*6)?Cttr(9f?$^BSTPaic&}$VMJwk%w61Ar?6vC4gSv(e4DMsNr?Gnoh@-pnT1* zb*EDsBd_t$gq=j(5*uO6fs8~CsdGW@F>ww&>m8R@;=(){!ES57H@X@lpSlKJA| z9mQ_hYd$OffuA0u^gnL&i9AAUK52BY5j8{tA8a(f#BxY2Of#b`EQM>clD~xL;e=yd zhL6!)OZ}oHlA;f)Oen8`CXVo zbD3817S>VbktXZNP}jRAGfbvjgm=2nU+YXf6@HX)&o)++^mp zTBpxLtZVgRE8C8#wCE$gsnqc$IS--Au`H1OdIM=QzGyMX4Wx9_gM9~bKFf`h{33Uv z%7-iSR_4XGGw#iQCO;xwdyN>IhhCT9&nF;TCN81>8TH7UUi3-u* z)OJ_fIJI4E_fT7>6Kp3V+~eBRdQw;XcfGH8KeP}1m6o#Oo6IDG&H9B+QaXM?h;y-d zq|v7&XxLc#4oNn?YBCR!ghWmdY2#}Z&Z~DbrRKxXN_khXN#g|vf-u?sWT?})FNEZ%Ic*nvl zO-ZLoxAc6pqur2#6gVbC07Al$0>_L6(onWvYJ+y6Szei~Y|;x|(#^aqH0uy&z;rk_ zzj6b%Ao2u|SyQ^f&+dlOm;CHfmcp3oxybGsVEEbH;LWH(bzo}3iq#DKlBhr;wSsX2xAOUe0BJ>GC2`^A zT1vc5O#Bs?&5wP1@Irv}dS1=kcZ5l&;Vwx<%_mF`F%L8h&RUMn4EQ5AQ z`mJeb$8b&+uCR8Xi=6#iP@3p_F5d~jW+Qq`%I_G*qyy0o1Qa$42JgYB@n(JDP*=cs z;{6iy-+HgoV(QiUZ`6n6_Ko_lG=T4w23zP|!7UBmA>Z7F-(yj4?ryvYf-HZ3-b25>BmI$;jDd~QehzzfG zI#bm_{j~yy_gxkXh-?83x{YvE8z&j<`osN7y?^qs{m*(+>ccywer0_YK2+BKfc&2p z9V()Dhlj{9_)AH7e|u2i}x0%MnQD3w|GJ$cjRc7u;Ej( z0k+mBuDzKg$TyDy=ceTUVj!3U9?02 zKM7RuJiiibUaPmL0qxJt=S43yV#j+W2TRzou<>_|$)WvYo~E2Iso`MCK+ct-OhR2FxzPDr%NpAVN&RSiVNM0+>mhDU=Pt$1kDFH_A3gy9dvSEaTguZbAGCY zLVxCP_yA}~@QfVgOOGuM=N&VSrgK!HgGtv3w-vgf2%YMoB%Sh5@9iLwT^b5dT^FE9 zK64xiV@B@v^9c{-QxPH^YWvmB}k$DGKWU|BVo7a4ljY zh)$DXy@}Sa52G|w(RG5N4V>8+Dvi}7e#@Y+o-LWx9N4_P%L*D|gZ%v}czhzGO{ND1 zkRIzuo9l-L>l)(c&4%A%>@nXqI)rO~=1`+;r6|R;j*3(pkhHkOzw|bwU#8#Y%b_{H z(pk*2CBHSM-H7%5)_A&inlrt0by*y?x@=t;cT|qIu54Cw7nZPQf%tC_-s_Srg5p6@ z30N-~nj8_BCre%|fu_QXC9mLpLi0+=$0g}8wZaZ1%q?^Lt&55VnKF~p^RP%V^U@2` zXb=l=y__PnFG-|~$;qizt3iX((iSa_J+@=VZrytH=-u0gC-d_23k!>inlwR0gbzEy zB({eHfmF%yw*&vh^*gvb@!u}|_eB2NmH(c^f4lMDlkxY(bn+BjVMxD|CQ|&1sQlYm zenEu&AoEUoLYM@h`6cs92%mqEApasB|03S}l7E&Yk<_Nf|7;BUw&nBe2KFC~v>^9+RFLWgO;k2yZ zJvf{Fag_N-(LIO)$34aOlVZ|C#g8^2zaR577jtMZ$P9f9F~^QJ9~V7_m~cE+yrLNJ z=ZZHX=2+N*@xCz58yx|g5+IheM>_3!W${;xKg)`rE=H%%hf=LHf}&J3wkivNis3^t zughc%*49-fQ-n_+!!8zh-(5bYFiqj25}Owosd zVmdd{R!gll%OB4B2S@R7GS?<@f5TaEBJv{USz!AX^jc1SVKznIuM~ZlqgdcY6p9^~ zVx6LFioRbd`Y=baz86s_c4UghO+1PnsuI3mDf%!+v9T9XD0XVm5xH*K(xZrS^!-ZF zhdGMnUPPhTg?Vg!TsB4DuM~Zlqj-!LQ7E3s6p!zeP0{x&MIYuUcJLw!#jZ@T%gNak zeZNxlVUFTSUPPgI5>q_2XEsIOuM~ZlquAYxC=|Of#a?G-Q}q2x(T6#TfAAs-#gmyL zx=>zdhsxtj<&UGW?C>Bo^9E5@LBMIqPeAY?7NH_W_}L;jh()+DM)=htIEY1!QHwW@m2O80#HS<^$(fIzA5QU?y-Vpwo%zU_5p}qT~CO zjt>JJjMgp+=-5#Zqp$-K9pA5Xd>H6pjCN7d!xJaApjNY^@tUhb?<9kgJ8F9w-d;AYTwpsjG`AdcnKyC(x3ZHyZkOo9OD# zCRjZszhx^%?aJ$(bufv+>mCIAgg&ABQ|l1bw#RBgq|Aq)ODMBJ__#~{Rcd3)ldoY> z79TVO;Tnfv)iQB&%yg`zryweW^5}PK5V{%@Ff?m6r)3FE7tuOh-=$s_>)!< z_vmBzkij88Qr&Fl-e!7?Roh z7Nvz!p$y)Iw-R`d|SS=?22sH$YLXd3ds~C$J8KQk%v%T1wr=wX?&k3qG{=7rk3~LAQm4&KfpE)-6 zEj(`Xan48E_mk_}*5hyAQTBrbY!YcRYCj|oBGX_Gaia(%)R4jK5kJnq{W$PY97V8# z5aBuzUhVn`O&n$i8JoMrd=u>>tA0ChlNUb+YOJe?l=KW79Qv{1qdJNl`-n#DBT})C zC_10=0^>)HnX75r`e<}t4*gEceJGcH7uEQdG~IO$#r-gMT4mCs5+}k8hWRT7#h=Us z2)6L*#cL$r%KpN~T^g)X|5r#dmPPcuubG+q7%WSfM{2xI_w8S=@y{9<$9C5^1RsPA z+A~0o^w>XiWEuji1)DlKl$j90b5Hadk=_IAe8ly^{O?F4^-ztKH2_^%V@-{E!xL&U zq+A^>t3X)lGLn;Nlc*07nQ3}Dkr|hsoF?Do^n)sqpos^S@vdW~D4ciIgCsp`ajLpL z%Nds|ZYhXrtP9hYOFMQ(xjJ@Y?laHkY(-l@XE83Il25i9IDOSx|{}zDUR#GBZbzLA)ZV0OjiJJQ>WNmdv|S=0I#95f`-^2oH*E; zhy(jjmG!~wN&ESVnV3jz^j95azI$6Q`8S(m@b`%ea+g@dX1G~WxUNw3VEpUy) zZ;IyCv;|0+xv(BjDSw_fmF98UiOd(Y*5SMdt4N68!?<3N_7P~&nDMm4h2}fe(?e4F zRGk>T4oIj!dWBy*u5v{&E;mnf;6PAA^N0d?2~D0hHGamAR1~HZKIk%A9S27}6pT@q zLvmg0LOyA@t?&VMP}{4NS&k2=fE^y^ka?t=8*ax_IM|9+55l1m1-VL%R zsRQu7UjTzgn$MwMFo*smX z%Vj;!2jqM_Q)r2{azt@)*)-~43n>wLa1u>6>WIIG#~45{^!_i>-LOqrWNTrM(gm?c zgJp7UWm)hdjBPO$`V*e8U9ssP@3h|da~baTVoax}RrpMgY71|zavYO56Vt>{Ts(n2 zl;FSiwxpxx9AQI;&kFmUu!6qe68yRG30h1)fm<{vffcmIg1rJ5mB%o@A=pK}UG#ux zfAeARF?`gcx(ca$yR1+zPQYx7u5?K?L{58O?&S`QKjDR5Y#Krp-!!IsBELTuu5DbZXf;6ufe=Y1qHiT~ltq(M9e%f# zY70bYF#yFr;6mG)F8n(@e;-@@+Vu>n6Xx3f31cces$GCmxPYjjp8FE-^jIM z0LS57B+`0MMGs5*iA-gGywr_-o_^u^Q2L!bMuA{1K2pB0}8cvLetyLkV5PzVIUax#+44E?^JG%?@nubKo3VHp4&>858MP z;U|r42CN!rl6DgUk~cbjBM_>4JkaR#;bgn3?(wwEfcmZC%P!_FiQdreVw^X5eJx6T zzEa1iu3uPdsumHQ$v5}|vi*nNwupM8+!arLJ@ghRlNQ|&ryHT8lzLwX&xKc7&y|0H z=P#q!b95SAkjpMTP%Ax%2JV-F21=1=z;oqI@Z3Z+`czRLI$c*dA1{BImO^2gbSoAF0*WvIAy|u{? zLA*}JwO+^lHBJ)08)4_wYz$wq#?~y+I8H}YTgO*m{(3KoEg}t=5co`>oHf8C{)VaU zZ#N@XH#13(84n4!n+M`{a}~XrRb}7Ig6-@D=~rm6LCurC@Eync6J%iWiR5c(sL*5E z{aX4xdSmjv^amDT8+-Xc%_-d=hjIW$*67B|b#>{)T)opWsgF}aP zjKQ!-%TH}kyAGdoK{ct_);!LxA*t*9>VoR>yNPvarkFvmjPRRplO2Z9NvonUV~!jK8d2FG+a_ut6>h-}fH8u;Pyr^96JD3N zAptFg96Y%}b>B`R*9J$Pw~!vh$nuZEUARPav!K_v_3lH^_Mq9R2y`9J^HR&qWQS&X znU^s_ycQ&3V<>e6ki}j!I`!IcA0TFXro{yI-a-TvAOzG40tg2I2M_}DV*+0>0R;#F z^@0GxLBIioK(P#Zt!?>$1qZQtP;Y(6R>u$p1vEf7lwH+p!+n6H&|Xq-g`@ysQN6B^ z96$*4j0xC6Qh*RpuPY=65CZ*T0=AG8AOzIw3dsS8K=m)|UQ9iK?pD>okX8pW-F{{g zu7{^a-3Ysw!JV@BzY`X75waX_igCyq9DSs&2g>tUg2!`m65i_&FQH!3BRtCqa`}j+2GgC9w1?zb-W+II$%zo;9W8 zHS{+{kSw)B)lzp4XF8&^mhaM&`e$``Khxz*;IjpXBj95}v_Pmp_=MQ8H#0H{hof&( z5wMm{IChV&^4K=@#5#3i%Dag>h&y&Sc|GXY7LTJBY5ix5=Q zBy|I{PMWl_2*lws7dMUhcks3NbL~jJP)zyogAG)%s?6Y#{7ZpZp~+4ZhQEh}ureRV zgNEN>p=g~*6q~DLG(%W%OZc^pw_LC_BX~%p1&PoLF(Y?_tr>Vrn_V^mFPs>oP{*1V zW>_c9#wCR``h427L7-%5ix7X|32u1-B@=GL^ax^(5Nf%ZaRRADa8s+5%4GJ_?6yu=bQk*DZ+w4eI@b!$0@<_9BckV#c`i^Gb_+naz~%>F6JQnA zLZ<|f>{LLq^Oyi0qoz`UrovXy{e+H`3?E^ghhpJWP$yk+H=dV|UM2j|Rl;a=vC(5}&l-b~yC2R2SJThx zU>z~L4kx@ebbYXq`kftixh{{y=2__*6HszO#bzqcpJB*(-mnn0ORizJNGR&q1ye;U z0#${eP<1PqvLj&1l7JH=R}XJY!e$a z6riEQ2{e491>FowcondOH`_KkTY^NcI<*w~W$F~PC?kzGf>H78@j4a zh~*@wAWt#jbsX*n{jG?KDsn# z3PT*Tz<;tzvI6yAK}7>;#-Ne#+>8xZKbRv#W(H_xs#%_6M(`(`;wq#DRH1N$e?mL9 zSWu&VO^6J-^XoYl(!NVAY9m>&F8vG8Sh7I6O*#TzU23bgsVcFgn*&23dqE zVPvs7l2$Xy#LEcl$(HoPLZe^*CjIn9ff*5yHL62a<~N0Fu!6 zs^e6=1ZwJ29W_~ULf2;tyXkA!7u~>5YSBG*b3=8h29fg!bwktcM!AHj;vyMUk;@^P z%Ym};IN-{KG+L5(lDr#|$w>mH(+)7fWgp({aPuwL9M|%{m6sZU zyCl@2!#$1=E3{$1+x-Y35R1^`?VPb+U5qx#%7nS}Cj31t1i8EPCdg!}$H+}x^^IIZ z1cK+Qj!EWVFGZ)W4sU~{Feqasj4$+fL8}3rH{1&42Uw`B`FPYO!7~eO5Yoy$K1hb9 zicbV(8oRUL7ZCgcmfU5*1)ndO`E&%Ijv0OY)adJ~K#6{EJ2E>g7eF-xReYl7OVD|v zPX+m8Zt`$xO?U^%;Z$i+4*@iC3w*?#HcuCne5kNGgI&n#%yaZ8AqKAJGP7_m0ck{v z*I7CiVDx$Md2NMNTOX|2W;H~7ne;srgjQ&%zvQsAsuKkEKw!gOSwB;m+(OSZppR^+ zxwrs;#RZ=fSimO*Q(+j$Os(}sZ3}p#_6ofAWLDJKQDgx-ijWHuWgqPeKXs+>lt|B> zO70_b_50EjLn}m^h?8Fc7KUJirD|Jhep?fOZ)>iC&L)Z3RuvqiW1fSB)9P5jv^wA6 zeO>ciorfX3A&iIXZzGNVZ4K5HF+lhUuUV*-a4|K&yJ~*GTi^pVzouX8)8(VHRQ|#< z=WC2w{~vGf0iI>C^o>8|&Ye4zgcgwA2{oV`DbhiYAiYQliF8yrf+%`adhgOZq4zGm z2kE_cq!%etL@5IPe=}R2eG=l!|NXA-d#)?lotd58+1Yw;nI(>h{8)!BR3HE9<1>E5 zgRWLz`ykd=;kg-hHw^gEky9h#OpV+Z88ial(0rc9+84PzwWpZwe~ss@WI7deIvDjD zV$>UE2QoWmBE#%)^i=pb`xKsDc@K|_O$yVrNnwAWOR)Y3TNkcz>%uRF19vfeN~Fe3 zfjq$Ni<}pwar2^Xz@jn)P`Twvipw6RwWO^oL!a29xlS#DgrTkOo@=Ovc@?&i+ST;PGqfptCURSP(S~&1 zDK6WrAe6gdR2$$@1t6CSom?tta`#2vr08x&uE+YPMMVv)l*+c|sal;AVR9Dpba$+; zVbz#V0{%H)5Wx-=I2R;HE!z)_#oIxSYS15G*ToNPyXET(~cEAPp!lBKlE}u_?{3X)&_s)@^bPrKtdO z!CGVJzHmUy6(_i840WnWwc+F|_4CbTl1M=;u_tJ?X7}K()8xPvfpC-2APJGcMIDZ9 zaCt`z=nmQ~86JQVAqK=z4+G=tkrlNZ?xT2fyA9P#KD2s;88g@&h| zotix2W5u9CVxmdi*(RknC<&>d5Z*2@C?Z873TbW1jY0QMF)1}EH+2VgjFz_;R_&fd z_D!vp8BIzvPzIB%yd`2%G*42B)rmAq5wed8x4KMA9BA-?4uXocNIr10MHhKVPsIf5 z79MMb%T>%aXiy-LAQWe0m*$E=`@0nQ07p}W(hZ7G0TG1)xyX)d&Rmq zV`W;hxHXuhxWCjQ<)OC~@yyj90sP1!tI(iAg+zl`JTEmU+{P~k+{Ys*XyaV(4XO~0 z$Wk=Q?zcKsv{R&dhPdGoRmPwS?lS?uN^Y#^kCVLbdz~t@hVMgA@$%13(D8>_-KZsm zM&NTLq8tMV;%t!t!Z{KX;UK(d4sJ|p=+Brw_}=S$OCF)?5#B=$@D@!O;FdXM|&o4&NC;?xV=@ zsrjQwuo+A=6W#9~Lzf}PSUpfe4CRO#4#!M8BCiP>E5gQ# zu(2X6U5uBDR48cQ&%QrP4QE(yhh-%n$A`erd!(r(1ad{!<5$W&>1)i#i`kIbwat&xO2VZ?L13N zJV+iT6ZSB?vz0)p@#T>nhtcX-H{I*Ws_}ZyZjbkCd{tfYJn{nl$ot&u?F9I*kXfOC zXN4{bWq48OuyD7$oits?S3bNOt-MsIkvp5P2Dv%-LU0lsOJeWVvU)<;pd>6{znwe5 z@}voe)L5M1D;U6#aZ`wIlq|g@^U^&9+dN9~K4m8fhzXzv^`P8OAq^&_0_b^TtNzDKdQEN~}9V5wPFAsu@lwd3-l*p40dS4Z3*!!Z{|XQ2-%_2BjP~B$*CVaOH`Zt7<%!n(4&+~f@(^1;NzDK%($%0$cY-8i=MPb%hP+y!(#>ptCoIxdt|5KNLeL6q z4aM1dq2hcS2d`SgG&&iuLgV!jilMy{fwY-~P=^Vm*CYfLl_wa7wMXhSpjN9{ccg7Q zP`1JY>)e-Nq~f1SP%2)7QUM{0q|{vXpnx#l%p-kYokyIzj)owie>gO23VJcf+{2BQRQLC#Vb;(Dk*6V#?#|s~cA(1SG z^xuFfeHG+|r?*#y>5WGt6rM$p;qT#HCW$wtF#LuD5MW)jMxAG%<68; z>J|ZD%HN9+L%dLYT~@rnQ|iFagYFrDKA9`bRb8%nW-`b#%A?jTE_kjfzi<1=Wv|g( znJ}2u`Vanf!jbtp)(OwA9yq@T^t8EY8#!{>{~Dv}5OUEB>uM+Hv-Gjmiw5FexB>$x zA#fKa+1CERJLK$k`US~R0(H>GA5OL;X}N`%Rf$s!0l;G=S`61F1M1yl>lIA^Ug4Gv zs-J22$S>|OFe439M#I<0Y%4aar3s%R!gf8rl zwH9y;-+JI)No$O+>^U@NS{S&OoVm_*asE}Q&yT60U}`9s8VaU{f=M1UYcp0!fcHtQ z`_@=kJt5h2wYRrxDJa1}TD;!nzCn*=KKG8GC7cWPdMbgZfse%#eU9P?q}eEC^ODXc znZ`);T*L$cc;~2$+Jj|(lo3*Ou1QpoZ*qGlaRbDdc%S;Zg~gRE z^kP>%cjeK;Pi1JYl-b!eUZ_0?v0)A{QPP#!PM6!`43RimWkmW35`?iVweL|tMq;^A z2jkQjY+jDXKb*7}=Qdz4qX>+!kZibn3Z1ZFN>LpP7Dn-G$~%}A55k6-0w}lZ3~?da zUrJoRWDL9z*`;FEQHfe*H&O)H+V465pG<+pP%ny=Vt_KM0+f=<*DxZ6I3px~s89JC zmtUkkQ3eqjN0bXCf;5i9_V;8hQWb!k;{n}S>8_$wBQ+RE*^Mx0vZd9eJk*eW_K;j`sR9>X>FVE$|! z>>2DK>Hxp^6Ff_jV^vXeowk>2DQTJ8ii$_MjKViF0o&n*cXEC2(qbgwIpD|1a1%UN zQT8g{|L3kfZ3^2O#te2V%_?#63RX<4a{)|2uhD*zfGjuPlZU3?>*5nXVN~KLbDD#HPV>Vp7(U$M?-qdnZn3GQ2)U`{)s{e9ZTX}n z2YAwQOe?@+TJ34g@SfIN+KP}{+CFT{sE2JQwG*gG?GCm>;Dha6v}4MPc0Ya!_{UGD zekKA;{cJI8i9z>^KR@xgK%Myf@#hHh`16D91>#`)Assl(kPaj0%oxNU(P5cDE$eWo z0|Fm{LqVKMt3`dolGC!TZ&dY+>QV)jy-EWNKMgKn<6v4>EGTnTLBBQ7c~F*7T%z?+ zqEs>n!X;B5B{Qli!=swAiovojeoY%jt!Xo!Gz8T6wgW$7)WFYJ0YFXtj53FaWafYx z!I_!nmziml8K+Z%sM)p}>{801J?dxG2H5Z&Y@5ioS#S zg!N7pr=tr`ExnDdze*Lnl+AwXU90?CK)D>E{kxWcN^;0r^+P!%K@@hOd$pTv_^oyy zp#_d3c!tK?5%?4CYXpz+Oz?#9p(tKvgB25Nf@g{+RmUHED{X|F;+X|xJAdS+vNy_- zyvxgPFHdRwQFBTy%CY=W7KQ%sl*m+7=J|*tA3eDE)hO<|N4ZD2(|2^Cp4qu*Oekq| z;nQ&RFD2R* z5YDwBeb85HJ)ZJ?)E=%{Uuzz=MskSF#xRL8ZTq5pPHP9x-ThHZ=D`|`{Qw<2 zJZnQwg=({d%<{R8@lU!#^ryQwSnwv%D*G;2;8_`Z3@orogLQosKVnaQ;Mn$VS4zGE zxej-=rUV?P>symUR)xS>6|xLBd4Qgr{w(fiz;h_$aab>eXBF)BvS(PPwHR*>3$umx zC%V)E`GYYqxA&`d@|$p=re#AteLFWRDq9h!V|U@F%n6Uf1q)JK9F~I&~#cO_RBGsU`;3epjoe z0M&;A{i%5R&KX;4AF(?PyMkkERt$ z7H{YAw6duY;tD0{#XpFNkg?)>ZH-~e62rZnvyz<>Xr8$S{ zltbsNQl;^BM&Fy}Q(0B)UOG@(RJaVyWi7K8YJ5g?(isbQy3mrRqtNt%HNKAU0;s}> z6@JvL)tWOLoZ;DslRp|?PjD1En^^QulSptYuB>Y8~{xLZ=1K zJ!cGE-0EsAh+LnJJ;&1ZL0<#Rgv{e$5EY)$Sues$DLm_QoXEkRjTNS2wh7GI%D+@* z&!fseR$l@ zvmrroWKQ)-N%LXbI%e8`k165p*gnB(+zoylO=sYqX9~UPxiMr}D4OEI(2KO~_FL%k zFgVM@Hio4lBhEj#a>9}`KHV^CZ4BE6WcMF%_tJ-a7&e3|#-4~D>EzISm}-G@B{Gpt zci=}=MaZbKO_1_~&UNXEt^m2IZs)Fz?>XGEGQSracO^>Kscw8AqWr|r?)#h^;Z5|u zo^m<#5gT=T1Q+>y6#6`rP02qGy%YxcQrL|!>`B}Ry91-y=$jvh_2wf{y~CH$*u5-# zeK-eSAO17J_aZh&!r2^oAd=)c5P6BfOOdxDIn?dQ`>EBXFv>pv?0LE@f)Mzs(+8cN zH7slzrN1oo8ro(&oTg`5IAh-$O*W?2WIGCD?}~lqPpXpipd*_7aKi`A%YY#;F(Shx zckDe{r?+TAyuf>w)-I<7FAIUQF61E{aq1U2JT07MX~(96vozf$a{kD4n5MuFvTUFi zRL165jvYE{bmjGx;qtN>ZdgYO5!SsT&| zOPbcW$hqm@T+ZAl3!I)=_h*AMzrwJJaAsHDR~gR5$}h)TT0o)%{Sgr`P>4+lU&WH#~s_?? zeV~}W*h?iHw?A>)nr}+fX()XnAtMA<>pp0RU0fs+utp@4QzR2CL79vXuOS&F zUQpu2?xBw-y|?pPH)w~^jUzTE<3^E>Ts%k{AgS4jmee!|jFNpOlg=gzT7hl2yVuk< zqL>vm8z*y%#w?RbnHl=EU;PW_lBo#+LNaCjw zOpiWWoTaFe71JG3CKZakPG-<@;bUQ1S8GpCZPgs+<*+uXPOfS z*{r~SDMp3=m)GIzN{&XzHGBtS~lm?iI>6N^B9 zmVNv_V{TX5UY$L6tM}kJl+~-|{Ppl^SW>knW+c5Kh|n86 zLT~U0y}={&29MAiJVI~qklqlB&>CQ&HF$*9;1ODbM`#Tmp*47f*5Fyw>NYJ--flHs zEKZJZy{I){p+nF~heCXzM4*Hc;SoywpVkmfb^U{0MKHVCG*v%~(bT9Iwy^8r&M6EF z;EbDRju*}x?-iPaT=9;B0Ss$gzzXcTS}Ou(lRcWH_MhbZX-}eE)k%S;=(Buz@MjCD^ zPbJB2WSAlUC%-*Q>#GJ9Q^wO)3Qiw-exXxjzjy|az6N;b;VCR@p0(b>`qn1vG|m~} z-wD#*iGV?Ypq&aj76Ip2#97k9*~o3_01b=!Ed!k2GW2{4$hlb$(!s{QF%$7#tu?Il zhB9zYmKppWoWbu6EYAxy_bMF67t-Ob*4}^5`VfTuA6~)=J>ZQW9r=ho18Yv97tB^Q zUf6`;g-td!0X(DWO48%XrrVnW+TQdQ)`r1$tLgq&z!#hSPG+P=#GQx(bSmyFDf>~} z-{fp)eyBN|L(T7@KcJLbJjJ>^Jm*{WYK_pnTF-9{`rbAJ+5#Hdb`d%I+U`RaaoBIc z7|Tm<@H30f*C!_GK5;!Qm#ue?LgU9O*!EQ?#6L&piixmNcHe%X2m zbOQKT+urCl;aS}7j_^EaHyphsFiSpN!XC5RH0)AK{h2!Q`F%b=HQN((4aNl7%KARO zN@jWzJ#a>OS9{_7@`KA~ z3Hy2I5c)0~67~yy8UGS?Djd*m+$#h0YpVOH0NqbDAj0V`-@CW2M?R)c&&Tuy*2r3u zW(x*=YfG9lX#kx`b1jW8>YN{h}~Uf&UV-rHR+=L)K)A{ z?O}n6nRVK~v`JzUBdUjSFXL3OEzOTLH%JHD+-qZi_u4#b zqe4DwGq|lvXhhp7Z54h>+ocNcs}nRg=1&^=-$(KHy{2ltW*qk7H3=Mv!+?wp8Vtw` zKk{tA#vuqB0+!Norlt1QNQSpYuEfD(45*W_&<6VPsLNQ?hv#y}2ef+lAmcf#?LY2n zoymF*3vVD?jCqXtFg&+Pk9m(h%idd3l|8dQeDxuF=2TmcE)ikI)>w$yBRp4YK0#jy z&+sPWFlNB>qUo?$q&zHkPBVsiY;I=ViJOR-Bj{sV%x?ku{1&?~P5_?O@+kU6cpkSp zk2w%L=Uew~!?Mu`&KMfQ*)zM{Z1$KP;96b>^c%+QV|qYHMbns6pJ4^!v;TOzV4d|p z-@rdAY9ATo`KiVMEJ|3nT25*OXHTmOaOg`xlp0FOeyJnkrJ~4u*jDR`uT0)n%U2NF zY7(MtwSqC>5>^{+F%``4zos7^Wx)Qm;B}Cy8NQKjzLtkS=cC1k)H071y%0m*>8{o& z>jj25c%El_fgui_9>vGtYXF{s@2$oV2hWkRhcLv!v!hx9$`hVl)z4vwgXcnxCn#8W z*3{gOf`z9~?eQ4o;91smEe1JwrZn4yK@Og?@xNh^gJ;Mm8!*Vhv%2Li6ec_)TlGg_ z!ZW7LER-QUcd*CKo*nIaV-N#oz^8MCXXmFo*<+UKY2S3f-ZNcIN@-)i{XUxDPYK>j zcHKwDPL9R56)l9*pZJfDG9QZ_&LdK;fYBa)=gG3OV;a`}%cSTpVd}CjwmA@OU2A&C z+z=VStN7-ItOyD0Djti%P2|(5WB|7eAU-ko=mH8tGYblq`+APTLui&${4?rT4a|~$ zO+P&YoPjlF612JHL$Yp_(CVjFaso^B!4B6W4ZSV)7T!O__F1-~@SjfqicazKH+i3h zN@qp94mOU**H~18JjtoF1Ibi)c%9c?rFqHf`;iiNU`94MC0+j5P6&=^MQNh$xhS>zKaBheKhVPFmg5w3U8GT`)DyLDg?#n{$BYy+t_ptu7P&_~}dx)-C`5|)t zO0qEA*6ij#H;42nldUpH9yES5F~y<8MqS|5%l)s zpZ(q}RmZo`5$!9f{-jOGn;5F#td9DXY&gEz&(5KvqFt{6(KDjq%!r;+6yyDwcZQ)Y zSi?#T!C-W&tM#DNDGWyN9H=i}WM2h%K|$V_-K;{_>`rHn*N0u2s{^?^^F7J;3o$$93iI`hnugC?(HV}BT(UFNpwXf5 zP1Qv@_8eZPVS=@jj(xy`UJ7ZORH`mar4-QU4@gcIDufBL1bpjUg|J*DQ1C~>uVaNr z+*LOyEIHAXvw3(4+$QcV@S*Ab{Z#Rfu4{6;Z2W9x#@&>=i+S(oMd#N)W^oLU zBgAa)(3&Sb}Fyw=09jwTy^d%eeK#tWzRUyV@Lu z2i#@5GAPWq8TLa|?W`cVWV_O!Q9HTie5_+fyTX;F3sDcF$Rpa7Nu}D!RBl(4X=-`j zYX0I-P4UvfpxX9`-7uYOm6i}L`WDZOUS=a(H}U5x&5{#MNj^r#2m>id!O@^0IX4{) zNxHDg;n={@=TTAEa$Axun`PXb8`0|5nE?y0f|YH{|zqXC{@@&Qw3OPtg4TliGjJ*DpUb z$*KCdgxZOw)V^BADAle(LvkJ<+;Yp!auuP+L>6V-nvtFpNlIhQ5Rv2O)QkE!y-vFX z>uS*_Mad&%GpUqkrgEOC!Zg#obR2wU(N#rNo(u}7Ni>zG?<5z$BM6Jv3N-RW_4sui z4dY!#cN33AxOl9OVS&swqd8B;bk2v}rX|DM)a~Hl0(CnuK|43VOW}@3^X3Z`*yP&&~tqGLxV6^lxgc|~UO2#uLk(il^<#x`r-($LtAOfNGjjTsb{jA)!A zh;mMH;fOp*ra?n8*zCaPuZ}&`(>2uk)%wGNi#dZojkigE#fuO8H53qt>7U|sA-vOk zn@~If^aa>S!t(p)2MN;m4_jmzsjEQ_58iw~nelo?xXEaoEh2KZnDb{Jr`P!qXSbp* zW0?I=@|sjqB~wY2IPq{xa`FLJ1LQ2>`%2N}62=1=oMpxru>x&;0^7NG8N)5JMavj0 zT!2EjXsElJ{*Ux3!v=*jbvONBJx=G5Tym(>pkG;`6~Cur&*Lcvb6@FKrH3n)F$@~V zPeh;6#%WH}ziQ~zvOLd19wD_!C8aTy>mT|Md#&cJ;CUZ62C`nu3Rk3R&^T2ha;m6u zrzKx13T?thwzzSW*{T{X7OJ9gZy?VOSlEe{jl-mpa7<<4sAK!o;0;=tVBOE%JC7G0 z(d11k@iJBOj?=s}63)$?m|Km628FXlG?lHDl1q++8Z>i-l_?o2t+&fO59MAVaQu~4 zP<#jx!bGSFhGx`A9u^7V)Tu|ed+3iK+S^`V>|!x|Vj<}F5+9&HXGP)q!b7`dVH^$| z-XmHE3vva)S8p>iDzaGay@W zy#_Kpc1tYU6iOI#Q@K85xk7L@DfDmr-uideE>Aslm^CD8lw257&xh~lzyYZB}`pjM7!6{8rnDG;0Bf z?)?i*M+vk=9ZlUk4SAANxsDQ5m%tRwOGh7;q{e|?TDQA>VG?R0WnA&o^Q*2`xyu;qH<4(u$~z#kXdSXcp+P%9b8&=I0ktSU-x0zI0d zu#LDu(4v^FP*}ZBy7X>Gs)ct{2p=!L30b-xS~_}}x?Cl(el}iW@r_B+DNvq7oGz*I zB%%+*C2i_jw&^%gY`DgBxX`si78}UBSyd_a3dK8*bh#F233KtvERIx?O z6CI&k2hpHWY@FNDGMweghn0n4iiRr1VMpj>?GkD z9eZJX1dgvZs~R0cOhVz<$5&f`!zCD8xf_q1@9V~Csr+E=E46(~n1~~YKGN2R5OLe#ufTq)E$M$m2~sQpv9_sHCE?| z4(nB@BI?yLiIw$AfwEq$lT=x+e4wmXXLX#YSD2)p&i5!Ec|^T3siY^SlAgHavo26N zE{?KUl5c%JJ|c=zGbmg(OY&{ar}X!>2 zUIu%nSKEbR2WDiQb#>Ttw(e7ed_DURcLHr#`vu{=T-2%HOm98w7+F-o2AF3j=9s&? zS|>kz@gaM5)&33Jk64DF#cuJleY}A<<~Smwk-6;St>M2=2#He>ZfRrO}=4 z_pHP@Hmce#JGisU(jI_a-M>A%tU_J?KTD+m8;UW%v=K4x0jJ`!# zZ|}&B#WeEj2qvFMIV2YhcT!j4WS5F7NK2U}NDojN)OczH;&zl`!37E`mNay*Elp;= zb)C5&4=gOr+qy`C_yXP0%U_}Cyq$0$ARQiYr4NG# z2Swv45bUjeNLv2q%5E!)<%&d$h)kCxJZd*_zAhNvz*Eey?uz#cL=r~OPz!I#!J23~ z^WWV1g1?OEiAmU zFnjhC?upe(V8#^vy*PU|RhUzeJ$Y2@{?4`Pl72w$)@}yp7N7~%1=TnKgp^5B&zb0w9@}(0*iy=B(Ct0 zu);^83Lgn7d?cpuk&wbiA_^Y~D10QI@R4xBN20OM*N+MjU;95v5o1^oMGVjWJS%u5 z-CB`qb9MphLlQ9pnZ^+SwSpUG;OiAH}K+vrdHUJog(?cSv-bXXuv z++ao!V1AR!*$PKFtI0uI}Gu=+f+)l~73D(!&qGf;kT}tFJ zc>PL8J;MzvkF{ZQ_N1FE>d*vaw8x3b?ZhCWlkQ7IyyJf9PARgN^d?@M)x*=*lTwfo zo_QXf-aOB0529S{-R0HU+2uV!*HWK&dsrIR!x}`x%n9qR4|mskPOE4BKYQ+SrLau) z_u}|#rZ|j}Yr}SjDa7uu{b4q2RM64h{aB<<)lpn@MP|hk`?j)2%7W)y#oHC-_mO`p z=-Ni=bb64D-2-%sG!9!-IJXdI?I>`N_C&81m{bVP(n5F1xnF2#44hMC6UxDPP;p!( zIBTk$ufprBNfQvT9jBA|7F!eFVr8M8)iZn|orRtgeUi>dJS)(vAe?ap4`D`QT`iPI z&wCFpH?JImtSGmKoMYu~lQXN*&Pt%&sWP}K=00!!GlXEvm7IP9q`y2GW_mb%JegE* zOF=-VNsI;%<8Wa(hYLR}?2fk{7QSBu(ETFAuw!HmD>^y`(CC;|*t)e=#X#T&5O@~Z z4w?nIJ>R(?_znVhkoxDOLy;%syeKlXD4a<}kC1b==+qcEGh-Hz^Q>%d+AQr|Zdy4&)5@(OXid39f)dM} zCg^mzD+G$(7bs0(7Rzt19yQQe`D&*KVORiHAZPTQ9@LhQpZ=y*(Pv9|c|& zfHSIKVnH~G1&`xne>{%*7MxiK@Vr9%$hlbPL}5553g5#(3F^JVkBa~vRCGcNoCz_@ zV;H?WW)s2vsR$ceOQ`4?TZgF38e7w-uo_!8sj$Qg+a$4FceiS#0VvVXs`&TsTKHGD zaSH7%<$Q8{19V>dxYMa?h~^3T1gj6s#^vjhri-f!cazJ}R~F3gcBM}vI!*t;r?7RG zLOd_>_m6(#cn%dfUEqxa-zzY?&>II{S7`5>2R>8iw>J;`s?fH=Z!E^H!iU~G@bDtz zio9{m6N*fK^T0EUTzvDu*NXh{=7D<`U03vtW!_e_U(6c^9vn0B%>!R9d#`K?74lx$ z0p;E}(E;VgmrEg@@#PZA>PIiI66sv#VI{1gmeAfmNh;V3nV$goq9zdtT6p$&W=$ zS^FZGn6jGvl3ia%oduJXEDN!WfL`-_<-c$`5uU#)PscK#HNDCbd`bX*R&_c)C2$7| z>qAPaU?GT!vI2ym9lUQ)>!|29i^#;?PCbb!KwAbR3}%k@6fH+2qAQLpj;cJavhyaRS(k=6tb-(b%byxN@bf@)MI2e@x3V|nBv)CJThp%qv^C1GQqPE3xc$qwn~l* zu3(xJ^L&=d)Ojg)80F%Y21TZ@lB_YbROSOiWLee!YbT`VOLWJlnDU1k$OlgEqn$|KJ98);V z@4YJoJ?{nsLCAx`h#)4y7fokhG`l$(h44kAFo*_05RFF2Xi$3U(>4Nw6YpYB~E*F(53KUOG!G-aIDOHAw;q)~BzMtmFoyLT{if;^8JF7WQ4vP8mzuKrA-cxxi{5)9GSK z9t=9wNTpMkb8)W_RYvzC9oNuE86E0I@?a)XMo0Y(auKypL`f@MwJpB4SsV8@r-peu zpBEpxW)PMbp=N~%*|GnkBG5Lc#vD;GvdyXN91%rjr$BKOUY;76CL^E|7|35WDWQBJ zUV%YE0_03#D1Zt2^!A6!r1^#j#jOdVeCCltA*e>nq7D5)ex0jweJ&%E1pz*kt3vw9 zRbhO=P_7#3lP_GFkH|=ilMqY8=)n9yei0)|hK>+b(+6^I=L6}LddCOy%?KZenBC6( z{i3Wy$4qHO%gCd=U*+ePRahcm;Sj2Eib)VRc`45oB#3?qt7#@eS8o3xP=G?fDm10o zK-Cvf23)C81{$r(K#lBN1`s91pZ#MhQFATV`)HZ(*Alh1R(k;LzYxF|utwbg)~Lry zYt&=iKM~?5+^-Y?HjstP2C$HMNg^(}9}(h_`wxlu!`+80M)&dbHwH5ZrFR7kIij)9 z8vSpKZvQ4>U^%rGF9xg>$pPMgXhHtN{fdlKzjAY&hGA(Vt^j;f2GqnCWlf5!4&v%h z2HVY_5jqb(%<@n`JoXF?)Un#L{D4^gI!b>3XT;6Oq~C~>u8Ol(VU)2}J9HcE+5^L? z1?G!yfcXa2x9M$h)-RA_-7^U>Q>YV&OYYxjJ?b~oDqh+VS_Ph^YNVt};U!Zgo}WyO zg-ketjeIs1;sBtMCcEP-31BYi#;T-&;F4~vN*V|*>BdSXAXuixN+$JcaGD5J%jkN1 z$(rg(76b3?j44{lTI8_Ewn6i}LnQo9M)7veAh;OH;S%np3;wU z?P>9^HUYe{$!7V;_U0zbS^%-E z#RW3G+|9bsVr^T%Yulc|6;Hrt+Ft$=@Z~R`f64IkF9&@Kc+j_7zD1G43i6h3$9@mQ z*zYHOFA$Tye+q<>&t(XRhmNecrSz)jQW$YVXta)H;RqeCL;HDn;_Qd{KLYF{&6TRy z`e(?0QG5RT6TSxKb+fj44w8xbzk`Mb!xXv|SwY<@a;h`OV>cF0}9sU%a+g%2HgAnt+*$F3EDRM!J()N|PC@WuB z-2{9=G||GApr&i=8+dGQ3sonEQ!hQ-J&3BoAkU8;FTEyvAm|m&?pUuvdy}<`-eIsc zSkL-7d^auG?GB$o*Xow0N~B7WnCcjIrNMG6)$9nsKS%T+OE*2z_N4<%ebb(yyLZ1t zU8UM^H46KrFbb3D_snp9&-|2(UOmlxoZg`8pKViiIDK=hz_+7yzQ8jo-)99TVj&Qb zPb_$n76wlidUp% z?CdY!t0J6U6|YqU?OMhA6`AvX#nY969$n=(tU_By-am_PU?lkR{plY7o>XmGbvV&M?FUW zQEz$!pwBfpK(=R|Hyc1UeTFwb+#Jr8<|kUf`Lo4Vx*)x^<;#{vLN8lx#(in)uU4~R zaLszurZ1h8oZW6MtN>Y;+VzK-RckctP!aU$()Mu9wIAI9&b$uWI~dWN?C^@Pm;dwp z3pm3%&g~56eCJbN!MX5t-!5?0b{X@H`euJ^{ju#&RE;@FrhuN7-$Qyk@xch11Wc_y zz9yV~weHt~bF<|TGL$ppv-_XH>Gk;x5^Yuc3*_wSaDil5)bVsjID5bRg-#AU={y*+ zyf)n=$fUKMcBGTylCb>mK(sb782+!=?Pt2rt%H+Cbq3REfv2ABw3D>md&&z-!q!Fa zQv#oQ_mXX77*2v2&ZbtM;Qb*8dp7hbj^bNSLx+-4&Y>`W3TR{4QGDK`o*fPElZwKo z8W;iUz=&}X-XAR_lhrk z8_vSFx6&(dTi?Ebi^33NUx^$40{X_kX1vQ9SzU5tDbDN0Qrk;|(6>xq7z9DyPnN%2 z9*mdEC*rJzl~`ej=naNcTvieAvWn*`GXJxR`zrySSoun2I8&?Ks{*EbRd!Y7)Xu$s z?R}v8e=q@K2qK;E!NLy!U#j+?8k{Ay_SA;6r}mlJU>eq7Tm!H3X@a%)!X*#h_jEiSfT@q4r!){-P^ zIl3j#Yg(cQf`(fE-5Sp9HcQ*Ux!vw%JC^HGhXMZqJiga;Xb=FLmkh4bVNl znfeW&sox|3`d>Ae|2s^!OAm8i8yBK!ht-R>(z*)o;h<+h%Kt3rWl$9F(3)E>as&2d z(2fus&j$Z%h{r-#q*Af0NYyJM#elscegx6;`dD^GJW8Wt8IX2!TIJuIc2v3)W1N<5 zS2`7NSGqgtQp~``^arC@)`UzroLs2B%j8=Fn}$7VZ_EydUeK50&p*QTh8;oL@1;$mUl(0b&Yu z<59&yl~pXGDxa&IVl3mZBcTFrt$O@@hZy>4^+T2)s9qG{<*b|)=rV> zX}$gpRKTA<-quL@k2e|6gW4$n)Hd_lq!{tlc7r}u0k3|#_A}-GrG1|c z%0I3{&;Ka@wg0^QLitB@T-#CkFLr*}S@|!0J)n#7Z|HKSONw>)OqXX}Qk3jjm+{}o zSkQsed?{Vyeq?fZfHK$XqPp%Ywc63{n?ICoGVrs~0dR^yc z_@h*S9;JF2ksAHJcwIT`+qv;9Hr>1VGv}yW2sJ9#?OX_TJJ-eBuM2fC_g`3txBkj~ zKF{mO=krX@3-a{5<3T6_(-rE~XKys&B3icyskB zAH6R4z+t(yFUGzO|97*I zaj(Pw7S|&l>Gg;o42xMvZ*csa_}7Iy*W$MpufzZT>GIE@@saJ9x97!RI$*3$KHFE? zt1>KxRg>c7Fu5rA8GN62gl|*SSr|I7){}|U`qr7ayYz&#s5Mwox}#Z3AZ&%U__s3Z zNEDpqarZHQ!mbVl{y&)26MvGQ{iux+7?&QcaI#%h^k-TCTob$@7?}ORhl7DT4C92f zDo92qn^`}F9HG65BO%X1!eA7U>tr`N-DW)tTZzjd*1E{!+JUm)m0^fesdx2Bi+wG^Por4Q1bt3?%V zR)Djr>ZSMLjH$k)I-I-JkADQ`aLp?<;moYNsV=61+pWkv# zOF+9?A8!q3ew)>l?&>zX+sIRXs?Pdqgx#uxstli@+AVa3(Wl({T$^)+VP=^VX z<>Tu0{2QMxqj_A={ z*q-;g>=2zLY(`mSE271DFwz)!dP<=z&V!+S;T^Hpginh1bcsMj_)n>qlJV2-iwPzb z2DF9W3hjmpxiy$HsIZ=gDl_(TRUENU+k`y5^TL@`_&$9=-hTUcd_W>egj=h_Wrw1A z6+VC(l8k}_^WB+7o@7)k?lNCI?HCp9Cer=PJ7PQUHya4>njz%rar^J@m8f}$$+{Vl z25nEhinAHxpKz=kWZMmDXRbvX1k!ozbW{Z)jYhVb-+5$S!G zEKtk!5thp~;~8!^cZ$9$3g>W{D`l``O5?x%NQa|Uh1q4+lp!kxNhl&4v&(ENBeFsL zyq)I1Dhriq$}_#p#xihurex9tFHxlm+)fk88O^sV3|M^Nx@{GJtaQ||ESP&CRhR*> z8Q^w0$au(_AvP}+R~irQ8kjI|9XRnSRfNWgAr(4+LK`r)=SBXbzf<|k;SIWjrxFX# zEli$dRFOj>8``O+xvP?PelC8axYmwA6TCzfyl9GTB`00+L1Fq}hx!f}_rX4o+ZiQ8 zMdR^2KUnEd1xTtxg~!2H;+rGmkvddVr9%x19gbJ23LPq{(xHM$hyFkN?0=Ltv!l5z zNw+XPoIdZ}#Z%PQvX8cZ1ZPr>C1f}IV9m?aAup)6sUCGAR27%&sz#OcNy$E?R3$Yi zLX}TS4k~37!%@viOIkDEUHvZN=T>mM({nE|4)xJM=PpG5NKl_=UW}Vf`Hx~-*E2zGqCYHKVO8NWLe^_7nFSqZZ zzR{?;{idRUAsEzBy3dFMA8HPVJGG4E12|A`N&P{AiyY{b&y}1BQPC;W&!l2xBpS~~ zlTh&ZEm7h{B^j<`qz-vxy(PN(7!;v$BFe&|qF$vrv49CB4XC#Y(|;(5Z%!Ii!A)dc zU?(ImT|MH{SQ^1a1`C1IJdwx?ok&h(sb}5cbty|pC?bKLb!XSr3E1sKO@fV8su3FW zMNb!!?0hnqte? z>q8`GmIU+C1_xA0Kl{RGs_C^rn^<3b;M;Ka)H+Lt&d=7mR*S`kV8>;+AYXl@DC`%S zKO+iiQt{ixS@TIKwFQNy*q~(8vmB~>Lu<{eh4!12BD7CLp?&U#%4^Qzkgr#*VGt8) zL!1UhaQ3P-T5|Gj#b3Tw`79VHTbxy}ng8biwLle4wLof@IOZt1n<8_5U|oPny-^n( zyEo`2hWFB|N|PrURmetUkt;Dnw6lJt_&N)N3*250(bM)rcJXmuAG&A~V z?7whgkcI@hq&2>bqgAd|fwQRU4ivog@zkox zV8xw-&KTXw*)JE31W9Rvm#Bi5N5=0pFP#jSOlM4_0TY8FIEg4zbvctHpS1m>LEj{Y zMPH$#5Ap_$gb}_R*D)0vDL*j`sz`#!I*Gq0ifm0LHP~p zL(l}n<-C%?GpQIgLdQ5vCfZiSs6iE@Mu-^mPZ9!r&hs85VIcVX(}$qiil+eO$n-6` zHkcxNUxG%*j!0A>@qz4*5V7hI94jJr*>m*lVK((#rwgAh0_SR}yQQct1~~mB-9M>g z65CAVSA#0Q8X@xAt-Hu?4}9$M*EcK+`Y=K^A4UrY@n(N2!db5A)W0U=-HH+4x>W2y zaX3rgU5n~R+2EhOLI)mAcAG}#{V6Y;W5u=>hcn~dh3}$oq@R6V2h50$WLmK+#Z*UP zQfdo|>_|*Xyr59gcwDwePa9~7bVsoV#h|*R6j4)&C@KxQxxQUR-e6w2Jb$)ogb2dD zRBAoe=SDAeyX5aBRWD^wMC7+iJ}W6WQTEv+pEMe$L0?N_O;nOHST54U%)B?S;!XsY zZBl9riqwQjfr(J!kzH!Mj*Z5HKE=n;AkWz_C_-2w%4||<3By%6lN=X=W{AfPlTd04 zij>3Tfw5rXk#cO*v5_3VrhS1|SA`q~MaV%!AqV$7S2QP#rNf-v(zHLrhP1M0XHW$< zk$t&f#qqdmf2p^~Q>S(obUf27=;d2jtBj$A$;?<3sJOf0>+riPKC2kzEEsVOiGO_KfL?l>zM9-c&b{8OuJePYndW(UHiT5QzBBaQOOuN;i<^a6^~V9&&>~?e8_VW z4%V~3DnOhw#EfKZhQDE2S$)+RRICLOO^wec1@9>nC0;D1&D1ecAr8nn3&&lOQA9Bi z(N_%iTlxb&Cr;enNHrxwow+qBwFO01CX)gqF2p0{cu&Vha?HrE8xMsEISh)BgNQyk zpu9Gkmv$!p4jmB&XGGZIFj%y~8m8r_0Qy$MuOpQn`Bp>$4#-tA1&X8a1$gPjc`PHy z#@{Z^NLdlTQ9ZALK*viL66l_a2kXq_v+wAYX_$*cId1iygOLq*4qDe}{c&BUgD@fr z_*BW8B>_(^JG(5Lb9@vO=mk}_IxRVODeTM~NSi zSxsslCQZ};qKX=TK6sks4Diik@m&%xHEd!n=Z3@@sq>QZbG>>-3t-z~j>ljsnUo^Z z-WGE)M%F&j36=Ol)ukLb&HXF(Kj1tl`mCrLLW}?+ieHQNmr+3c@{&D7+`rJEF@(6C zZ)KopUPUlq>T%KM+A2WO)kuYxtC53cJaRQsQPtXkhQ;T9SCuNd5v<@UYJgljP%y0> zppngyp-tUd&d%gm49bJ#?A|CHs3Pb~p-DYqGZ13>q7gI(xtzhB1%sT)`#|b$465v7 zPRihx3r`oo#_6=GD{&YOHcq*u4XP+6BFmCSboLhg#Z80fPnrMBtOjwDQd>}De`iwS z1qHIeEUSzwoF^qFLL^A{?c~(LP$#5t*-iC^0*Uc=>P_M*P!bBdL83@8OrCf_A(fyb z`bx)^*BkUO!J3t3XBzS(qY9M}*-*)$KC0@A;pkS@rFg|m4MzqQ{V~y$JSHVxP)Hu+ z;h~NZ@+^ZPa9GzPPco{IhsaVM;x5ov$wTKer{r6TgPCGRVo(Gp5d|kI-n)_ykJ_Wh z@qxZJh$4DlE**>7>5o9|G!a}oAWxi}mx*Mv{D0Z>BE9tbqV+%=J5nLFYfsiJIS}I)-O;SN4|8Yy;Rkio^=%vuB3p-{ zqpfZ(%z*DVebp2pUo{;Rn#?FXEG&5qC{6jPlGe9li z$!7rVPFmoP$P|3*@9F>dC*0VWw0e0a((|ShJr6MT8Gw5du@hs7JTZ1pEH>S&J+Uts zp3r7a8ww!i0-d$e!^1IqvA=R<{;wOJooNbW-tNo1BBU@oXN09H z;DS~ z;xLXp0Rh?p8I;BW6HFQuU02(_A~U%7LOq!VlLsXc&Es^USvquMCM~W}p`5r``>tGI zVq=A*!;FI0yoT$m7&-X)pqXE6`a(P(L>;(Er8>b>ij&I3-lciz9%bJzMtnidI0=R8 zQr|DeeIe_Nb6j%CqZb+sLcH>QIv#rNjZo#8!}A`V^9X+u4p$63294t87LZN5O zuM`*}E20k}kFKOvn~CE4MS%f=U4a&;h)sinS=3VGJEw}ol@4?KW0m`U0B1>qa}D6E zZgQ##oQtiW;vse7Fb=QT9}ZBeCR1eA11wmfuoro@itc(V9`0sL|Hzd%NdnUF^b>LZ z0-m)wj^rQ@S2EuSVE>^%W2bT_Jk`C2t*3cM)9I?w-o@0ro{Joi8qU@9eei^ZH6-Wk zoakgxfX4AHyNMR96qQJ+rSwF~QqNBwK7aa?=K#TfM$DumZm-fMq=z#%$JQKj%}cB1 zqK<}hNH;vg7KlSA4^vIWW+o0FKEve|_RPq>A-mY@Q~WT6t0SNbPo4XtkDS)cS{8W$ z3V~;B`ZIhW#k!p1ITXTMqbLy{7bfNO{0h%!G*-^PL@M@Voy6OoPA=>1d$jhqGU9Rs zoQ>%&q=R!k`zzdRLwF}a27ZV85@1wU&ym>+bX>O6$t6c0I~x6a^l)Um2Z|6D;c$r~}BW*&k$=NFg%*+jn(Jbm{e4su2-z?xr1z z9>yAzeMxrN(I^HZd<`0fDSRD-|2r+5zrn`UYE1Uo*#XZ6Kcy`4bmm7@OKDMXUc}l6 zZY+@DEqz$109BIBX)mUwW{YPoB&QM7Zt;bdAR};D-TB2z>bn~DP?;=3z243OXA9`Q%b>BA zh{%nP`=>qzCw4X#71&yUzD|?Un3IUi$$jD}gA-|9EAZ5pra@y)BKpz{=;@OdQ-t2p z@n3IUi$s@|S z-b&gW^tROFJOlF5+fqqs%t=Ha=PWrK(`pE$otAxNc9NDk4H|P2kvUnSqXs85)GzzQ z>~w-DDUCUa$edg%dHX48In51O4`tOFGHA?6L|>Zq4bBn?)?e9%XZMtlX&N-H=rkSjbo#1w0;M9j4o5n_?GS|Cyo@=ef2M(7ens;(Fy zx^iw{rDK%)EZM0%D{=$GIrlW!?XaeK=6k$d(!#j5$QCHuU>^&V9iGFWpsF3lS0&(M zG)d`#3iJz(g#o_oxeK^(f_2w(pWyqR=YX-w^xX53;Fq2OUT+t?{W8Ei*b8{DcP!vi zFoEHnK=1_bEWj``KFd3o;JMyafOEhUws$STYrQ)GXF(V3y-V<2p=Jok1`%5w`DN=~UKD8%FB zmy*Z{r4N*n{H$ZdLr_rR15_m;g-OBfd(WR_e~h{>3|5ykS8mb}*(Pg<2C$WwMUW(c z>LJhuY9$*ePy=f#8Vk1u7aH^*GB!C@YY>mAh-0ACO6(As6U&7|BHQqsnP!0qU^*CD)@-Tx_18UuQwmald#&7ieu|ghvNg8`n9CW z()WQ(?d?zXflM9YPxXOJP4K7sK&Ec+r}{vq?(wJkK&GCORMacVkq>0*Eq|&H1l29O zFmjcjDhdB=*E@o2xyZn6rO!nd`1!X0z8xw%(4lTTJk-FN=RPPA2i>;_aSN80Mfe_` zVN`2|c_w%~Big|j-X=-dM5ad?SO-04m~h5(lfavvM+BPk2+5Mk_gXpYTa`XTeg5oo z=WDKj?_{e>bnjIxq)Z7>qBl>?`a52IV?W#WIG!CeLZujoy_$t zBxs>$5oH48MINk@p<@xb0%8;OboJ5Gogw@gbZ~%vL8e6Ebe1}$HjT3Kf$~6i0j={4 zG_am@-=}pRSva;qg{n@vuaT;+Q5a}UH{MD*j$9Dol>0j6=(_t?8hU0s9VVX5 zm_ZvLD8jG>tB++AHpE0L*I=N~D!5(FEg2>lVf;Xum7!V;G~SIcdE?%Xvtt`|W(+!V zvCN%FnMp(-&WtQwd!CLZ4|0(wuPj$Q9^1$LBW3JId=v2}Hu@P~;Jk>d4^cQf>trOd zm(rll4plDupib&7Z_tJW9Fdy^fj4M@4LV{U?4CdZPe359uS#IopTdW}4&*FHX~J>T zeL*&l3vMjfQM(jB+YDXb%5t8Jcb^xbQJFZjZw=E39f{F6@-&}=5uq`LacJJl;>eBA zS+LZThPe0OUK^@|ORh}HJmAS59T-Ou zV1=PH-AAn73mY(G8Nxk|mTt%4^_-BeU0=D#6g=I-Pr%wP@Jrk)+@2p?))wkF>Y)9- zU^W%EbnO70Lsv7ksKgc+R?nVe&E)l=>u_jn z=dNCsF@&KX-?8b9K>p?$ql*(IY)3 zUM6IuLl!XNzQe!4?!7pGi2$^wYhTxbR7bw*wZ`FKM2`E9pLdmB@g0TY7^H*JF@s;+ zPbu$DVXsK>PzTjh2BLG)98rQ2WvFJSa}DRnC|zxsKkM&f7a?skU>yX6F}FG}<_5EM zD1Mth{Z$Bk0^+NJs-}==;n}rByn6c&R7cU|@!;+;<&V`@02aXu#M2AjbwI1bDs=rNWvoML6rbf@9y;Vx`7< zSDr%n*Zh^2cfUx-CjG5%-49O3{jmj#JDP6LHCLN-%4 zUr5N%CJEMI{%;jl@#D~^#`*D&Qz89x2N@P9ii!iNtxz~$970$0-~Mr>*g~>gwNQ&| z?V{dsm;10BWDmP>n!Ta(VwK-C8IT!x(+o zy%Zw^P)j`{X_Ww|k>1&~)ZE>g?Hwz>$;Voo0vNR^;10Dlgt`;3+h){mJJAuSMCXpf zs5{P6iF)dc3}V#CpxtC37L2=t_69R*Z}6c|fjSiWiY{4phsCzRWXKkw28WHs*)5>P zhRu_xd3b1qQTxO0NYou1{3n!8Sp@m%#85*CbcrQup>5W}Q~;)pgc2~2vBqP4k#JA{ zKWp5Gx+IiavKB6WvW6FF4P&MvGz^r~Fi<1COQAbL*{mp_grb0wiULX~3aGuogGf<8 z4GNu!`~o#oXay*t6`-V6fD&3+eAA zZV**(L+DrX|8K{RykI6AJlTpW}Hv(K+p zGUY-6=PJY$UdTy-;wXGBd~=|0zbPZYe3d&M`-v7Ui>EqPc&$+ZaFfwc8Hhwn8OV{H zR?CsaQxgkU)-M*^WHhQmASte5J}$3=^|TSze2YAS&!B>jXo|0*Rm?n8b z`Lo!7^@cGQ+UU)>T1{HinBL#SzEs`r6>ari$&=nY@sq(tnZW$O?l4)&RgS0J$ z+ICh+fY}JoK7UaN7u{{zZa=q~5t%e8^#p}A`={gx6irKm{)!D)tyM&Gn<@4Ro3`y( zu?7tpC6ZE5MIRT}$1^n0QGH~!8&vQSjTA%$5@+(EW?gXZgHP2gg9<*P5g)bQ?=@dR zl5#l=f@moX8n}o=Qo5WUB~K8AG-0g(?qRm+sB?OqivJ&H-vMV;akhW&J#){V-DN9n zmkvuWid3m;KBC4JdcaVOCYHoR6g0+2Q9wixSV5%eq9_7V6;x0u#s-QF6zshO6%bVH z{-0;&ojG%N!SDP1FF*FoTjrg2dVi-vO$g_ObeQ(Xqe3`oHVM9R{_tQus^n)`KcS4+ zB=D&4N19d&QEA|sjV7s+D%7s5kFxMJp?Ng;BFXw18vEk2hU%;E280GH0y+*J75+$r zKV59D*l4r2WeSli50(e`R-wTcN!HhbOkdYwHQxF1Xz)c6eA!=k@C$PQK_zl9kjuH7 z{pj7vdu1SZZ*n`|wY5KwyB!8(?eI(%j=39djCeG+xBd~!u7wV$)?yA47aML2Sv0pD z+S?H9HzTC}s@*s!H%@DX(ZRh*tOX9jTHr%m+j}UrgKL4n@30G+M+9*sg(DM#)GF*k zfN?{xo#Vq}m?if@9ET3a1csr+y~%Q(@G56uu(oUh1Aa$pFY$X*IxrxPq?Tg7q?R%; zSZ+3fWmp@}2x2HCW3dF5np3k=smp5^fkPo?2K-~JY?A^-@DKZKCgJp{`s-L$sj)9| zs`paz1Ab;P=6%%*skiVEzu|?>S0R>2rYCoErQ|wtj==U@{0r+l#smg|iGIkeYvysl zayzXO8H==rKuds8F*BjG2;r<} zIPrq0CBT3x>ZMul2rW`2vdp2dtb7!m{CeiNrtb^#(MVk+8aB}@a~`Op^LL@vGt^S|nHe*+gd)eXrzxZZh3a;XNFCLc4ERA-2l6#8-o z8ab$$f4vfsxbg;i0CYq0RxU-~Y9wGOI{tb7aiBxxUVNhK4myRdiM$5Jt{n& zG6;VL4UgB_!#U13j?Ad@$KcNx>^7Lb%O?&}=VRN18Fr6&k)>z{x}|7Ij9;6p{u(V# z%M4ezRf>X2;F0n{YD)4&6_kGq^E`OP(q#54Y9GeTK<&$0AZGLzBg6s2^+IgL70s-BW8tEyJ~<)-;?J0BTzO4fPFbL;W`m>dpE$HZZ6g z8+;9GN8tLp**ba6bzSq_c>ETq-N%1(yy5!h`01TBYI^78oegSv=ZCs#)I(jL>1t5V zbY0p*qn7sA(8HiMz!s23J>KIDLA}vqAv>>Q37=(yF9mVKR%sKoo;*3O(*NQwUHuU%}V|h|jXV%tCAZ zW!9=(oaGv?R^@J!1%qvT-g~$$Bk-{x|Jwo}zAdwDiu511VPW^!4jpkch7|PZbuhRbAtF6CpZ4lqLzOxMwcedHsMzd~g^F$j% zd7{lH2K7ms``dx#e%Oc8EU&aX+}^MpZa?`1P$r+S9_B<4&iWIUb~Kcw9d~pDWk<*7 zIvK=sou>0qdnu{Vae3!APFyMSkN7hQD0^Gw&Dx&iT1xA`ntK+NyO z@&`}%nZgFtFTLiXWC1m|w=OfL)%^cx2+*o!GzI-o29TqJZH}U$U6B74&jY?ysOvls zyNaKx0mM@^KBxf&f%u@tleK_&ver)4cOZ7wT2>o~Wwlq-Hi#9qZ)ym{O$~2rXb`tG zT*(c*mCbfEGl(6`&cU|oL&m!1_qPP%{+6$|G#szDEN=rud7C?#SKzp_&0)S*%KR{h z$tQf!35X9mea-X-$Jd=+=m~^WWgvF<+DiE|y>8V!<^o7F6S62{kSjMB|c(B77D!gJTIZ zE|w$XVgb@F9ka|>3_&b(iOCoW#!2wMyE5hBVb$b*Oc&JttQ9n6xgvKK--eilM}VOM z)~^=iqjC>G<^G&?{PQ|f8v>dNd(P-}=9=OFuG<<;;&Ts^8vTT0zv`#P3(Ekpssmby z-T)BmHJ~?|qv{So-mhm3UXO|kh_x1wuCq91Lz|A+1Z;6PELdh~=HP zvPN$0jB=po9e(~-POleLsyuv%CZBUEuw3TBI7HUg-F7M?l|p zoY@JVm7N~w1mx__cX!6;?#^q_GcFsCM_k?}{CU?2-M}=VTX{D?<=t+=13u{QZt6a_ zJK#m#SMjr|`@=wE{PuA7?S!{?f7`$xcRxh<+wOBPRuFj2*y{6Kp#kNG?jDTz!aD zRtmReO9*4Exso4#*v@^BM=zi4)_ zne}k6*$>UCc(|$k-1e5?p3WOP!xMEoN)uwxX!zD0wo2z99dbIPu8mZOM_G@z7hhK$ zpV=jI>*BMb?j!Z_+1g-V1ANw&JyV9yuCj0V+1BjCX86o$HK#Q`54W3f96tLx9%2b! z)_GHBd}egHr;B&`!v>%E4Nr5KP2<$99^)$39Q7ZC&!Vg~SbkO8vX*D#^KH@kVtn>j zKM1QJ>b`~txcu@_qnR)-q26dx!Rot$^>&!5=&%k3Ow|64lRM#aOV7J$vhv%WGkakz zSAPFr4WL&rUkt+WCc8fjCS+Ongsk;B_GOLrIp0;Y_~m&w66fL}@9c(C8e8{@CXY0=?njzVYG(OYG~4RjTbu1`W_ey{zP7dHS=)MZYm499dY8lR zYWtOM3bX?fUx*zVeqm$*?(P?LA zi+`xgQ(dfkPnYT4ta~5YDC^$VUE%%>E)t+qO5T9QOSPa$MH75pY;qlI z;Ev`GwE*p*7N7A@+7qq6Wb5!?$Bi99+t_h)N4c$TYGJs|1ylrjQSY2_iH=RLT^8^u zf=SJ9YYyaX&A;T6NMAOe*n*uEJVq+ptjZs!*YVJv{nv?^hw})F#;aFbO~e(SMdQte zN{w%9bgNB zQ^f}cIvJqbGs%MfVXd^?Rp6QPm#e+U+g4R5I44PpmfJ>r$N^LbI=Q)t=x~;i+8Dxo zklk>ipvch^oB%T7UBv@UNS&*87Q9uEJhv)k04Sg0g*%j_sIT})GaYC2w4SQ z=6kDvjw)36BhBctE>o8nL^e?BtG?8K;YNA>8!))>FRZXuqCzTZl$xE9^ggJw2Ai8U z>zFkxs$q@DmXL-)_H7taeTqY4$lkcMDTFY5hb$~mSWMxPs8*NXhWa_+{WSBvz5 zuGZG0LJVm(?Up!ytoa*@_7?H7A!F!M=m!*CKpz$#5g1Vq9Ow!tJSW0aU5j0aN$94g zpElLY_L&qtY$Q#m4!kA8vz@H zdT?Wf>AKS*63x*hY-#^0R(7gV1{jJ?@sGrZGzkuLDUJ$ySa|X|CiG#(D-j)#cGQv` z46-hUuSojw^j~y7?kyGWMtweCilIkEa*?LX0%CK#8(+fT1-J!p{0m6t3(P)*PlZ3y zw7;nSSEl&V*ec3U4DtYR)Iz8{9*_Z|z%d1{7P?9_(2e}m`b!Wv_dY67QSwMbkEsMw*%wC z%}lLua=AcoW4-zHY%}Fk1{jK#yHb2eGvz=h7h)6P1FqON;c1zjg&!6=!(ko`$w(43 z)|Dmkt;sxn?9q|FSyjcNGebvyh_o`9gfi!5jxV zeNZ><`Of4;nLbzNfx05C5^7yTjX|kM&j?*tBs~8-BV3F#E&r5?im`SzXsAU8-5PX`YIT6L66qwG=pXtQbHTVyjJbS##qe3ca zl$whAi!Z6?4z%i7gw*qMgbV15ULyVrghwAl@?n!&y~PTMB|F%Ju+#buqQR^jkwbuv0}3~#%t$Lo(|rW}vt-}y zCQnFi45HRHezkEti1MgNZqne7l`!1y{Gmrt?>71h<{(fvGbmsNWfJ{BwO7SQmg!g= z=u!jf_5INln#-89K8UjGfjU=F5&j_T^~`|jG6DO-H>feF>xBcwH&h)b9#jJM{Zy?} zjF=HW86{ep3KWC7r@m0AQoUkO4-Jp|SxS8n4bvIo5J&`M@0mj96esqK-Go;7d0$7>YiY{Q|lR)Z)rih6b7q?OqoeisN6f zdt84WYX4uPoAIddN1BdZbVz(PMO{U@#h}iyAA~A~2VzjhR=trE{MoV9o}B-pzSyyq zN5$BRG&{DUQF!Bz7Fd_%Y|OEZyH6QzD0*ylx%j|(AN6#g8(Zlr`I?h!TEGc)Z>bx% zfF2cTKpN5jE#NoeOIkn&+7{3vqy_w0*rf$@pw|M{khTY_&nDYSEJC+{_txE9*S3H@ z1;>6#(FMA__>dORfv!L!748xq$-EfUnTIPFI*}#wVo)+~zthPKjBm}p7X{5`o<~LI zk!CZmnzW2CZHdhLI64y9%=0P34Mk^OWAP!G=fF7gplEohlM8*&o<3Bt9TRh$GD5A$ zpd#}~Lpq_UYA0i|<4uzjgE|d53sst&7?iP19c2q*{Zx+%bzi|_1^Ajg^JoZ>Bo-G| z(XO#Ct?7^XGmNH{sjO#r{Ey z(8d0N{2jb|uiG)7GC*mHj_~v1LyElvGb8+_lUtJNggXLxH|OJPGRLDKx+IzCekFb+ zx(>8G;*Ua?_&LyvU$I@EWBk&QU9MvSWq^nYi^*G-owH;V=uLU=Vwsf%x)K$7k_J6l z*2C=37D^5f_TkQw9U#OM4iNTLn?XNl2x^HB86Y^&r5c6+!({2`&(zijQ58H;Cx?m= z^~|JljQBnazESI9P**btN@5}s6WvM`o-E|CQoOB^iqOKqdjd8}F&6efTjnfX%G?@Z zmppNxmnTo!?$VaI?G~ZS+_Ta95hKiW^(h!vlcH1aJ@FxB&VgR)!S`7?Hdm0FSS)@d z+JiIpXfAbM?@^I6q(L^)b%OZ9>UaidliAX-AI)@KDD0fD`kxE`;UMd)mplitAT zk5<{Iz+N6HIvWOw56K1xx@^Fx?*ieGh2|L4RW2EQU(G}e3klJNJmY30P~$uzqZyNR zq|;f>ui?i5>2@MOC1Bc{2o1!1-mw{k7aphj$N8(s>V;Fmz4q~x?>-|72j9L--jV|179$IY z`7}l|5XNXAtMc)EPp`IUVcLGqt<}$sEF1>=GC7Bj0L?M7fS3k~!^Am%f4wve%i3=R6=07D;KtR8`j)mjLSPkou3$DOEoMhFn|VQL9{k5d*aB!8YF zIu>nBER6D2*?RBWoWwg8Dkl%ox;};M6QiIpxdd^!K7~^Wx}tRwZ*q4j28Z+Rk_F}N zQZHeayGssCjn!+zzqcybx<9}o5?mtrDESkz(Nr;?0?Ue|=qh%x_>d(M2f8Z8#0|$e zxqL_IWf}vMyLmo^<~lwRxpT!wNXA6uK+1)UVCk9fc5?N(ux+qO!Si2w2;m(VC zzjGRMv{(5Tp1jXyOK()1-lv&*blSxLF239Vm&Fy$16A)+q1&kp1QqPGQ2<6U5CE62XX#y^)PVrrz^kOVYGeWdLI+~4?)qVQL3BsS z>Q3pXa)?4d69oX5<19K4pla!WHzaYByB}_H>nH%BrDM^V?W-Ox^BYcfiIWIMKbKUk z+XSQGqfOfoI+wxq54;ZjOj2DoN+aO9IXNR4jK=-&8OfPRjeHReXDWJJB;iaU#iv4x zP>F1$Wj2pwVqAke>dy&hV-!-9ggpY*DjX$O_4_m!ePfc(CYxV4>T%;xi98gxyh4+n zg{Pn-N%izNipInj{>Ai0USTm}W6Tl541iz@PpQf(AtGT4-EFEJ-oEB2ZmM*p3^t=x zvfzeB=Fj7*iB_iOc_>HcT?kGzs29S%30_G`?%-z!gX#xkE(pM{9G-wv(HNb2HvFRf zJR1*ks|(?!zwv?#NEyEjZ$s6oFj$4DxrrZI&NZ|IH4K)ZAOWYlO#Fb?!JAIOlkhle zwx-DmPe0K&fEWoe(#18r%H@bY<5c@Z8S$d8z1flYKzvR?Fbcz*0+uiT7bZTpEkQ5j zX|FAknOl;u6*LGYH@-ojr^7M9~j+*Y}UGM1mXpanQkBAJg5kYCVlK~De0S>VNRyq6Z z3F(Dyv)9?^OwZP;Bj8EKtd_FB}P8Le$9ODh;S9{aT zlcu0B2;)kj`tZN`TiKNepL6Oo;?bW*jZgp^wG6Jp(Vv#X;2!p;;HvR_kzjd}^yT;h zyBwB0HP71Q$Amvl9svx#si`F?@-4v^_$8@juwV&U%V-I1Ff73x01UqCf`tM37UB#1 z!eALJQ<9I?8DI%BI0TsTaLQB5u%u}`u??!AO3`=yXfd{r$#WQ zWreEQ7_5!U(Dg_%_=^~$B8s#^>eaRFa~u?@rgG6(0UyhVskMa zU4=7Du&Y&}(s|KU_GfD8T%}@DDZ#6|8H{j%G(n6=c!X56*)6;Xv(T3zZ0q9diKY zuv5JX6%++yuI0L8)KG|G-MpuOxxwgJI(;mHuel&OENJLH!qe^?7hoYW_=viZrbKQ` zFGvTYCmFp%p9N2?s(Tnda^K=z?my{rU!RjJ(;_(S4Ua*IEWXT`-`FJrXi|&6aJtjZ z6u)X$B|0>Pb*&C8y41lkI2~p?AEpFW@!gU_Go9EfrY?mk_zm$1xM)*IAGd zwM2$Z2rDuey^OEAMK21%CPW6E31JZ~9#bqv;(-RD6Z5jH8gtW9T_k2WcGsRbc4pQdzr2;7C|c;(AI*6?js~0hlqe|6i>w7f_l3s21$iyOU<@%hq@QL z3PQVf(~__g*cUzM2269_G|NL7EHuCe8*RF>S+6c>esZ#O(lpW{bY(jRC9-(2Ul*Ng z>bJIEmx#uTJhWwt6{BYn(%M?k&=En0kkq+N1k?^jx8zVJS||wfPFGYRAXZ>?PlfbY zEhtX62B^GR7#-B&T|``z)O}e@FT{AGkR*(f=|=4?E}+d$P8)=Y=NnyL1N5smgX%y{$X*BRch z#x;Y(j~T`r#@*W6VB^i~z9aqc%kb7;wUzO|4h;is?F~0ssbqgKMv&==gOIj2b8M}7 zIZb4DjDK#wIJTwZ5%7Ke}MDP%(P+$DjTeAeib-Y1*+{Sm>Y zBdwV>xTi&j{};iqfoIuR$rw`DwVf>_yf9b0Z6#e$ODqR2l)yuDrg)$MDf0^(bvIR8 zCGdo%YP}ZghH7oFiHneC%Ey3WrXo~=BA5di4s#%y$=n*wWNMB1OY4Vt73LwsB(pP5 zPHW_4>rF6e=khXxI7GF60PCmf0ps6IwlbK8s@Cf`uw7@EIFHi5@EjK>jv5MK*L@`H zx=+V#C(xq{go>_;;8X$4P}T$W;~zd1BPU}oaZ0c({XVuN)VhLg1^7JO@G~AtLfX9` ze)(>t`Gw_995%>r!jX*N85r(@V+9Yynn)V=utHc1$Y`*6L zUCq|yIdvl^p0DKJfP;nVNcGonQcgWs^F|!}Q%h z3B*Rm2=%!7nYIg_&Hu3gpD(Jvz^j!jYyQj|aPw<_!IP6;)nC>KpY@IQ;^QQVBN-lY z0&nLs$Rp|qZ6Z98|1}LAd|dsR8u;8(^9bK9x~2BVrTBbN|ISAEtZMWUK04DlsKJzz zGR>UR6pw&xe}0#YF{=zi7~17eC8n}7yjOj|#euc??-k(la`pAR23KD5 z1MDNHpKHBbiqC8HZ{{7>`HddKhe%yH^C?@7cWZpYC+I%W4?*ej8(!q{Fc0~*wh)#f zMpmWZsw639Yj>*2!&YF#&~D+;L7Am37pfUJ8g-?~ONLLnu)DB~cew^Ct|@%B5TBol zU#X7IE7fP$NSy#9StTo28{R4Xnzi7IIzQI|)>ODyh>mnoYBXol(d#0+F|t zmC*-6tpyOxw*yn-wCAs_VrWUJZJ2w#Ew?x&HV!9zieDKFzni{_`sEfv6p`uY?xW@#wEMAS3BIZ%qZGvVx=BLD$VMVwO0Xl+xLh4@&fG{p*!D4FV z!3Z)oQD&L2My1LRqO?cFNR#458t{EV3ff?FgwZ)SnACuMmnf1T^=X7m;s}p8f>px$ zBQKOcSH$Ss6dov5;tC=2s0ND2VgX@gCKJ?U@ou3u1{Dc$3{d8`4+yhVn6o5vq?E^? zmONajQp%4BYI9(3PcbRO1`x%>iZZ1f8k`ow?DZJZVX!(P=Br&VhaobiN2w2a+~Se&Mo#TF=C9=_^Vz}`XoJ=C z>i@;qT|H9sRld`>qU3!XQB|MRU5DKa^-+T_d6HOunL#}4g1|6kI4sD%&f_lYLY!yA zJD2$wM8Tw1;o@R^uCM-1b<%1+M-y0!OZL{q=dHT;;%1e4qroQ)Fj_on5L;Xj*K;IP z!S}L;sTJW7EXb;5`4wEm*i<;5<^g^v-irx|T2b>!7)4g|OJ1sr&#QG8*TZLbgLfO~ zMW2iaNQmL76K&z**la~GHyuRR;j!iPvz$QuHwy+!@Pth?H5=3|MW5m(C8(bkeO3hY zXGKpH1O4CX(`XuMT8$kw0PU>(8q7d(+^Gkgdi1LU)4gOI+#lGV|AB$Ju)dCnyFKRv zJSU?*$eECf@%g7kQ;UgZApB0NF`MI)7i!GmZUqAa)(-h>I^zBF2{u}od}Eg>D1ULB zTB>kfUGvYuS$II;PZh1*a^Oc?SchICgX)^zbfMGMYi_X0VX97j^;F0S*?YV=HAEuW#Bm0YX=XlCw{5Ru=8U><_{!vCv$XX2E3&7AJkPXQ@OSo5ak$bpm2x7Y7fbYSJU? z!n$&rJu0F|nkkX2BO{$p z?sKIvkWk;{FGbbYb5M`m7|E$An4o5QYz$R31%)FSjTM1GzCBaafe+E6g~Knr*ab(! zQ3vyHD3Fr{K1E%-8|M@c=1(cmt|~rLoeUMBqjri@xu8`APhoD|2 z>ZdyS)znoCzgi)t6@{HO0G8-{VL%fIAwD7kKi0mH<@yN5zn!G6tn)YJ-JYlGJmc@t zm@**Qlo{`Qb)>Hw^5$z_I@LUyx?HDC-t0W>0y$bBJ~h7&N8mMjAFcR_kb&^HjNlh-{lpTrTV2}|}*zlDhvP#5lziE%csg6W*l(o8|sd+hfN;Tca zpjnH_T~T;7#SXW^1o>X5DxwAZHHHjwGvw~ex$tTxjo}I>8DmuSV(!O0 zHG!6BtKeCKQpsqSfZAU&vJ-)XomjSZBmayMd@|}S1k7uqTV)I(BY2-U+#{kp44pq2 z!Ji>wuwp{(94KAUNE^KF4w0BQSVW?XOD-F7cIPn1bpPSekeDQ~6~sT^mtHL-O|KGG zrlO71{ac3nJ@92Q7J3g;8rv^(#}6GNc);?y|vXR>Z;~bVZ7`3LSUQ#xvVu1n4LLH_H%<>&YZr7|YEi zK3tiO1$w60M)7Xb%)y!r4*7-cb8Uk^8Wm^s7_&(_2GM|hP@JMN@R8)LJkNM*YG-_& z(TdPtPfjVSS?Ne5#z+do*6A1=VjO@&jPJ_f#&;nWh$Fa`U>N2?Y$d%Y)RWm2<2OFvVAyq33yjHlVa-o&Dwh+JkNR6dln@n zIinKSz{XX*j(D26q-iw=apAmaD-3ru^+eE#Y1Pf+cWD_u@1*jmL-G_%5Pvfif39AG zT_2MehaC&&iS;|7M)4QE=kOuo{g;XMP^M2%qd&y(=P#3z+EK+{>SRsCrwU1p-fMlr zQH6}8f>flC9{j~Ba&iq7Ww_|$hZB$I1F|BEl{UMunyEXOy0OYSP}=OqLe6+xsnJ+l z-}HN=9Z(TEoQN`wvz8~~{UbYUK`OdV8({cw(!w=}{;4)h$qE8fyEAeMOycvy+9}xvJ;I5(cFCl)kFx?-11Q z{=$Vuv_VSt?V5lc$#V=)R<4VMS=#(o0-6<>$buzol$8S$P7$5WmHvcV|7Fv<6wxWY z5@~(qSd-Rc@c{V%JV3r90A)w;tl6_y&jv4Z4)t>Stu*j&rQbFWF{-!IcX1AUSGXz! zepR?SG-6hVuk)(g(S8}BqeZ+5t@m{h@A3KS&E8nZNKcC!izpy6cJfbK+$v6f1e4cDVX6n9fCs zb$DYDpI6meFl>C5o+4N|p>h&hz(Y4&r5diL;3ar`Zc{(f{{4dV2WfovrRRn^gQNBT zHd+^@&4EgkrrQMto1H8XmLnk?=rK>f)_CIijSLXO-n648bQGg=g;{oJjseR0^IwEn zFM4wH|F+AEvxDg06>8+8SXlWt`fZMwtNeU+6snO6SQHloD_Im*2CJkft_s$(D6UU$ zVNu+Y-YP|LYkCrk;-qjUi{i|1mK4QV;iIM~Mmr>Fu>T7kP!SyhMOBaC^IR6_!EB!F z!u1g}ci}N|vY;f<*+PX)WL9Sfnp1Gmc~+(#p(0U6Sp*GY!5H7d)T)#=#-~;AsE7?| zx*kQ>h_4!&70NpVl@FrDLdRjx=&F+0u(X|ub_y;x95Oo^3LLU~m*CRD)%u7n6#7a~ zD#4QoU-Q`@mW)c2VTPg$iS;2V@U zLW^Xw4B(9y+yZE#MHz)Qikd3Hhl4u*$tIeQA4a@RGK-ZYJ1m}IjFW}t7@#EC&t8(* znBwczqVV0BIhvvpw{e7eTT);7MCUm*xSjRq_F#$BlO^fLSaBXpe~xDhA0DqhPcM)= z4GXgVlLg9uU=Q4+*vjZBZZ$p?E#s4(?&y{uuvI5hfq_~9G_^YPfe0Oyco-`2W>#V} z+nb>d5KGc)uy3l?q>oTJ;EzBV;I$?LwI=jN%j5%LnS2=ySm>WQt72La{PjZDZ-4$B z8S?iVlF9S&h!3vx!Wue9(y%3+f*ybv`Ur%Ml<22Z0-7L) zaZZG3+#j*j(Ze`c2QbnE&>sQl=mD>zH_}9}zlq*RMDKwJz8{F5WwL|oSw?iEAMUa8 z`p+09{u!DKwHb~1rruXPy?icaPsHp78f$sK|r*dfpv?oP;ARlp`!ODh+8blz$r)!u6IX=?N`=NGOjevy}`ep<~94`m)7NMSBF-NJ~WQqr-wx!R2hjlhKmd z#+z%N^y0*H2~H)7Q-3X9%f6ZNf4tQp-Q_|_V6G+iDwx=@D|!mM>jMKeUD>=4mMA}|H65gcX)jQ(r^ zRWJ(CulfsT&9KE(k8itS#MrI7$&c=TLWA}v*hl8Os(3VAXVR3^Mj|%yp;feusi*BM zg0eHDVZ2H~XsNmnN0T)CX-aU%Rjn!+Uizt0Tvk&j(jVHG?q{OOIdd|5qRB=9Ag3@$ zGh7a9xt3h7BR0m(sE}plYl)OMlKVwawRxeYzvZKEw+3@)V1JI< z!YZ{zJt608pHSZs{~e#)9fUvgq&J_JzMqKu(+>&aq4Y~cyp(>!AgGB8-3$C;#+BEx z4y3+HS@#@FP^|kq%yz7MUixn5eklDP>vnQ|hZn}B=+-Ws!x*4fo1<1Lz$+04gZNHO zNCPp!#04Dl(iKEhn79D(PzDU1vhWC_@P!j5L!GsVG|V~=5dZVR6S_I144&4)P@%y zD<9}e1MagAPzQrYxk>p7GF0XyC^0e5S*m;%mL|@+2yMtkhzcQgha3sI(O~$Vlc^8g zmUcxQ>e@qJ$Lz6!3wbM&tIe&@)k)Y*7_2@_e!%u`4bMx*bLsGVC#NNJYP*mMKAXf* z?g46Uu!d)NP}81VZHlutfa-%7^=5*cb%vH*CB_G%QG=gNeu%3;XvTHD|5=2oMD=LE z>?r%E3KY;=lJ_MYWIBJ350!!p7#Ql6nwWB`mQR|eSSF>MT}xBJ z)v@hLXF>4B6X>^!f;b8>YrKz;8&R2bw66}q*&v#lF(MD|6+(cAz!4cXFPU^7VWyLQ zO|$Osl$fN)&#o(pmzmd6aRHEnJvp?b%z3UhkBUM!>o!U z@n-?sjs>iTBdv7#dVx$x+IHcF;O4-(*91>G_t(KM&V2_Sez837;T3o5o{*mYtL=yl z-wPPay8U7GL`MwG!6J>6grXb9{9Y2DDitO@q;ncF=^Hz2fbSnEcT zLoN_^C{*q7?GlUO~ zZfJ|NZbPkZKxo~DTHS!qx(&6u0ikspYIOrb>o(Nt287masMSpxxbR9>G7qxZ_&$XL z7J8f`y<^z_Tw8QaTXhlY^F@CPuEo&$Z)4zoiZA!-6Z45M?Rb@G2NkV)p;lT#SF_U> z!+M)E>M8yrJEYWYjm6S}>PR&`b$bfj5O#`i2YPe~#OZ%DD)LMSf8k802ls2I;-y(m zN|KSqIHVDkm7xWP=o8Jrx1J#LRu`V!H`^Okx`yT=SuhEp( zYpH!^w6FG2Qss35PttLS&T(T=HjE?;@UY_W7bfVs>@~lU*tb1G5 zjBM+^B?m83S)Ss##p2EkMIbM*Y9Z!%Sj|<{YK0?=tJb?oI)?$d2siAkyF6=CmUZ)? zF6-6-3;)BpKjvEeFZnkYSa&%UGCWp=Yh4=g;=<&t8Qd3qHTzqf=RB&;s9JY9FCEP8 zgX%Cd3D;m~x+!%_AkI&-?uvwdSM&p&WOy}aQZ;c-sA$0Z+HEVRf6$=`AS_)XU4klU7h-{&^PvY)Po=E;snjc}obngP zBJi#FBU4#V<}sb&l`is^MeQ++?TG*CvN=f`;GE<yyT; z2smaUYJ!)Nk0#@|eUjP|#L$*twc-v(`Cdd&tyYhu8I}efNxvC7V0zXvFMXC}zm@Gs znMwCc_WT@2TAnj8*8vlAU(JmJel_=XZO=;sf=1hszG>7@ zIKR)kK0oHUK7WcXxLQ>vb}V{-{woDB<0}QT3t7jF=-GwO7mB>+3*RhqY&K<&nWV=| z%{g9b&Iy*fGFZ8+?YE;SwLhAY9sbc&nkm`KvZbPY${bjhy(=44^ISMH({*BQMXoL0 z6}ii_n_SCs7gozDKM23NRH}v59;ue4VVz`C@_pit{Fn2ske69NjTVS>bWu%H$IsMD zm@XN@`vtEOEua@GU5hqwpvb7d{8cdJSZ@*MVZ2FaoMxC+>b&cfPMl8QlAIN4m*f!s zcfttMaa6~GyrY4wuG+PXcGd&NI$Z?SEhwKej)NbEU>J!gRoi&!VCfdoM3ujb;|D$q z14%?TijTI40Fu^6onU0H6%M<`5bhEL?8tMgkjc~kQgN9Ch&j5UbL>A(3ql+JzVlhY z4Mp`o!)0GF>QZ79=fSHa%z&qqN`#YKtB8Z{Xc0TGRZN@_(hb)$Shszf<8$<1_+cDNTTBzpq|0e`c6y|a>$k}TDZwpBy_gd0zO0Rr zIOpWtpDWJ$b6-YnVB?KsnU*&%Pw;Q#{bHTJGzT!eYh2_mZ}K!_V9 zU@b1bDxa)Z^RKq#0Ogs|971Mu4rZb!q8Y+(+acgk4lS0mxdCcIG)q*QE!<`{NAI4l zP;R}@o5->RL%3UT9Zl>W6R^~-2|X_e{ZddOdQ-r5sk8O$#lh6~D1{`BH$XS~g_);q;u))&zARYfdEGb70WhwUQs_9L{mTgSne?g=ur{>$ye_ zNA`L-IIM6gG)FUnD%AWG%u7xwPa5d0?8Q0Sl|b3RdrpqKJelfTfhK)%4!%{1Il+Y6 zP23EV2UlfAK2Z=-DXbC*<{CN>>_h3pDwz!bi_TTWc{*1idOGSbJ-Di3vCdH*i> zX;(=y;oP1%A`4RiZ@Q#YoIt74+{+W?iF##=lbtYyDs3jlZrl(5Odg5U^ju4_jAE{$4kOuTio;2mGg42+Y3W2&{Kz- z=Qy(rXI7c%MlGRC+pmmb5c`r;xV`h(nBz2#)z#|sGkOrH2ktERJ{QuCbk@*B^tLn! zxLs-V_>&V?%dS>_1S@cH69HlU98Yry`x@f~_|_fGg^r@l*kRG^5bP4_b)D!b35vE@ z_zR~vW*5{d?9gTe^-sscpdM2%F#UB<(;dYGwM?ydL9Lgdc;N!&1J|z{bEzHOUx$-r z;;zDjph&hsEpfi92jkJv{}7ZbI+%cWNKi#!=5Am3pkuD<#?709y@3TxU>+9&BVDT+ zjq&mW#Uv^Ha2aNr8KA_gshifd#FTV3`cg3J82c1tI4J{ofXm{|aaHKs-ig3PVRcvP z2`A$JMi~S@8?eU2EX9#zCykf!Z%biq#u!r$Z+Db7@i3=NTNycX4!{^%E-c#+yjMK6 zU=Kk1h(vA@qzY z&e+EGWc5SO&=2cP1F+ttWntawo8&AmWX(!Jq$!J{!WwD+@#YffO<=7T_t9W3Td(cG zVm1uA^i%I8-!WNjJR!+qZ&^6Mc6m$G-zKeD2?oK{?gR`%u3)@(KeOB+Sf3(+Ozc!Zo8(AXzg^G)I?LnnR3mcaA3DuUA>B} z6J4v4o9G19bVQFkPl4IF3hWKOFec?7W;w7YfJsASL$PyD9j#xS6qgr&y2R#%Zt%Ww z9CeXEe;sYx61CViTP81t{n_Tlc|wWLJ%)81vs>A2{TrM4Lq^&F*~4PuSmd~Qc(~K= z@n^^-I^5{DLUN~q22}~n~&s|JqeMzOuQz$CKQEKi_eP*4XrM{$-#p_NC9}R<* z!;b5ACr7{k_%6?HTo*jZ>l5387x_7;w&CssdpZ2VI~Up%w(Ww-ts4zIh%oRU_Y7_e z93+0=>j@Xi#uQiO&4G;9Q#0`>r-fz)3j&Pm3~4(K4>%In0v;6!*e%EeF;euYm;@R{ ztp}CZ1`Fh9H{QpVm3F+O?n={vA!cM1!@(3*7n`cKx**^mtm-D<7}Np#pakqtiR(?k zOHzA{;}-P+jG619F4E*`my-D|rs`JMv~iG5Kc5eUmkbZ~x;cn5or@w9iBagtU;=g#qtRt9fn#~W{{RP=Wt zoWjINMVAYRv8gRTtDRSj5x9Kg#s~m7Mz9QajNo91M9F$e{M)v`q^HH2HMDtn^+Bg+ z^sI2ZQNjo>2{HKoNa+3=+M9xt73ci|x;3<41i>{l`wJ(`vWG#m-PngYd3YFIsZJTS zDS3$VHw0+;n%msad1$e;ItxRvhqzg9n`fT}JFuE2=VvlPh51)aix24C<#fV1dzdoC zwjG~VnU~blOpKu{LzKFz5l494%S|LsrLL){kAP-`7flebF`6ahlLNV3;lttLC;r8v zca>CSH_(PNaSb~_0*zpup%hOg-|ISbc4nD(1pW?ArOUQo~YX_r=Jw5m!PW0usol^MDs<19lfS=!wq9#~2c%0U4$i>1YyV!0>zUn!Pf z3%4nj$cd*#al2a|76<~Si)oQz@U$>&4<`4^y2;$+DM-s4r)iJWRnBsDVN{daP>+d6q&Wo<`SIn{(V*db!dF51)0kJj^TdYNkd-s%a-UyPgCmn4)4) zw$wz;fhMsKcZ-p@mkK{DSuyT0s7((wuM~BohA1;Z*^UUdf^i)z`3tYt{DQ-vIxw95 zn~yuC_#+p2m%%;-o_~Ivlaj}Co~E^ms=qKpDz14YUqctHUNcfr%(c`3ka{m(rc?KZ z8_nokZ45s`HBujC@8iWXFz(An5OGfs2jvCvTO{3Y5x@u=0M?;&0I-)#wfo`zu?_%u z9l!`101sL*08A0xDQN^@d;f$N2-eQ~j007>~16^~b|K zEm@&gq$=+7W}k~go_LuDXN=XM;HMzC210%cuyA}X zR*%0|LHUj2)r#~1+yI2*gYa9}oCE8(;muiG^SU|fzAT*G8hv6|uQPTj?#o(}g`-{u zE9EwDI+9b7`y$R3Z2aHI7_xEhTZToCGNEtte`P^~6M z;lX>8av|t(7wx7p)oprG)ZflX*W&8Epr6FO1V><`tWVd6Fcz;narT7Ayr4ovfF4w{t0)!GXZH5pEI z-r@vPS5A?&D7*&tSkfgVo;X++a6@L+cq$o0KZ|FZsu)o<7tOlIeALdORiZZ&6YqXz zK}uMr)0Nujf_c=G9qgy<+sXZ2I!_5U{z^JW9YmK7lEw%mI$3Z{ZBm{m2z>;bs&>z| z6}K6;5Oic!v*tNy_gvHyk>zTR9MHP|kMmY9xB^3)dQGz6!*0F|6e=@JvoDfhx$A*# zffm82^H9XHqI;y*O>lVc!>CcXQ0d5Aqew*m5h?A-?ZXHLBPUz?Q+auq zljW7_yG^BMzJ2zp%s!rJdb|r*o1+ z{1}HX$R6$P7#HAS6hnW&(e>C7cNZ$->mY6FT%^-J`a-zdaiD|h8ouPbOO~ouzmt|7 z?bV|~9g)V0vZ*k!9NuH>F{%H#wd2 zXDqHyPp#zH@|CcjU=R52t3u`(s8R|7HjssJh_v`CvRwsf8l{r*l&j z7txGRAhb{{T2kmhBUGbw^{uXcKx0n(E!iccoD<6;8_Alv!m?{M_IxZFD&)}Ef> z=h@V!ESDT{h0RvmXu?i~+K6|ibgeYPF=KJkvAZxp{Rh^l@YzRe7%;kQF6g2{SvDBw zT{fPz)FNt|_gZ9d=ZUM0RH}_}^6k*ejk$=px+0<|dTNj48Q20j2MUxO2 zQ%QUR?)-otSNME_^}!My`ULAkZ*F>oVEmX03gg#o+j+zsAng_(cs$T-ZF;Q8Eu#{< z4?pB!JT~}r0NCF{3j9an2W!?QUU9NA!i$)q5@Vk-%upoCKE?UbarPjUxPZ$CZ%9r}avy>_*Loq$_ZM7) zT+?Dru1ypj>p(_*u~9A{)eWg{u4gKNo;HkMSIWiIZz!x z0$D!-20%Es9eE*u3vnoHpqiL`Ce)dBI+{tU;Be5UyIOk7CVdYv)F<4=KoUAz0Le_ZG6Gb%@-s&U=vaA%;w}XiK zZRny>ZSGZ8zx9|pTKClS^0c^hxkoEz)lE7fozO;#;K$Y_9Nk0p-Fab_R%xITze zpQq&}Gm?@9WnG&ezUCyBuq!|1e9TW~VctvNp5*InpkK#=9y@mRcJh9<)bFPz2H=_q z3uZz2x8qFiJm=)-rmmS@YKZo?FgZ{k{dqQy!3k5nR1Y~FU@_b@M|$c<1XMIn_-vQU z#X>>V4I+$zeFVE0=8u;+*(U1Qb#W>P4T#e%6J%~-qsyoIVCt$u9W_Y)(nYQn;@|Pl z__H8&zupVcB?BxyB&LWjlkP4vf8NGtx%%Q>+b8%?>)e(mLE48L?8?L<9OpdK$okor z*-_Jf9iF#TRTG`ukg`Oi6bI#t$5X6Dz@R(377H4>k6@&9Vm&A#aAMq+w~H|>G}WXE z3yL?WW(?gxYE?6R*%8TmyddPT!FG{cV3o57zDNUIENJLH!YCKL=3*C3)LHEi%&;^T z?QF$n`9KAVdW!};7Nn~-=31@1GQ>03_$9-RE+a!;DH(qd59X@2Cpb6jSu#A{apjoi zseNbD9wD+Lg_d;`%P3)A*Wl>WVgEom`NtJT#1(j?9Tt3&xNAE|eSjqlgZ|L0wNpFK zcL!A24*w;K?6Z?@ejZmlta`NTf`ZZIa&#(}GaxL(UGWabLGPFl0P7I^CO9LcE?7zH zav8GsGJ3~a+ZAtd59Tf79kBLp_qauct6enn;XVH}csPx#)?hzl1HEs+Z7Tymn%u@> zBOa$Xj~spV=!-x9oPxz1O%CsJRG3mx=MFP9=2OAeN|*O_6=v;|rrvQjI7l_wV8+ch zn3$@M-kpSmKS{HAsTsyhHIR-q4l&gZCBLKINVV^hIBXcFTDZjpNPAXko;y&Tt zmt0D2J)?;^t3$QwOEXp5?&NT}Hsop3=8MQ;RYSbOPaKnC7s0JkwKf^zJOG`KCtq{! zH*hRR@Dh1lbrazsCnD}|`cv3QNa%l0GQ^CB&WAAeweA;_pE~!a$;0*@olVutpR#G* z8ROW_+WaDqp>T*B#_`IgCD`n|03A46S4+^3k0c@&HGN*wfw>&n=!5*8<_R0)#Oh=k zk=N=T7AKln-H!d}B5EgNDsj5>wWnVx6Fan!Y0>^tn@<*@5+|Xwoph<5k$P+_w9)C} ztCcQ`h-XWe2=!|GD^ZNaxql~W)xf7+%VeTfbu452t`3HAa}-HF)SwD2_?a-t1#jD(ht%8s8+zt&1Epldtfw^N|;g zDlji8sJsTnmzT^@)qcURPMO6v>~IvUk!wQ#!pTZiyCN|vQO5|VP^qS<&&}H5PrHuU zV-iFMbt+Ux9FOD5pVc8D>UuI0;np{7&FYPW>U}C&&{Kb}Q%n7RI55NK@U+pKU`YUA zN$>=rCxV^ksFp9u=;(_ZsCu7)G2$5%hk-K0!K4<%4TreJ0f5D{NHbhLW5n53sIs7z zNa~iSqad74L1-U;kHvPFjxfG54t#mBX@Goea26Viv*-)G!|!497VjS$UpP3Rn~w2s z+SrHgxrg7)@&x85G}-^S4Y7_0;gP|xEOvmWrijHVXwYiJlr{S;=y0nSY=NNMuY6jD+j zm#}dNQR?^$`?yFA;w*w^xj99R`U}2YYP`0k?qH1IIWi0_LM8a5k*eL!O8m-6I?@&318%Y9Pi=3;nL$CPEx;H&m-`S_-NZ z0_4g4g+>YxyJ)n%AI{-xDH)ZFqC9O*MMXPxCP!W~jsB=>xA1ULe=Kfc%?|dRQG@|~ z%1D{fTzH|2evrDnPz8m0buF^!`ue3m4rvgSMdIZRGqu7?CIeMreGQm#Ps~CKr&;w) z#h568&`vq}QwM6{TC_!RjSTMy)l_);ip3!2)jczmc-$$RO@*^-8HFvn%vabVF|RZV z7wh%oGOKW88OkJ&!;hSF{qm70Y_T3R_eag)PC}%F>D)eBCPD5&770 zGfU5AjN(nL*p__Cj^{(4bD-+@lqvisIzFwR(4+)s`0Fn;dy35WH$-SSMJ9=q>pDuT zJfJ}fO0W)50`p@$b_E{OH>ASj9bYvzqSdOQW>>4J+w7WW!F|@yV6>b&(Q%IX_2R{K z9Nk}+#Cv;v)%8hCQ1n9VEGslselh}!EG)|i7KGLDli6Ozu&g75gRFoAPSzl6vEk9F z=@`5}uTQF2YDd%*Y(-hnoJ&FJALe}L!*_mN&o?vd*Xfbn3( z6-^U5=7fapU?UOkcOJ`Fq{{kWAk*jcU>pV(r=J7&U)S=&#Lnc$T;12Te~7C{DjJ8b zl&?7{RU?P)(WYC)!>X36MybQc-6{_nn9}ig5yo>&n9Zz|oN8-|W(?|G&KTrzXvbU~ ziZfDBFWlm?T0dEq6O0;Fp>inQjI_cZ90RBKcPI6-z-z(V7<(R#Wq@Jf$t19#{nIrz zL&`A2f|t6eh3n8M8IB@36dit zgaO2q^fCqs#Ip1%B37jzKIQb{VRW7` zVff**c$JPt#NEl;#uD09fS_2mINdk ze<<*H85zIu6z7*Gpt47!&790F(&6g;(}??&!G^*$=*Z&vJTsbu4=;*?NAr9PP=Y@o z%qIA#rhw+CiwEl637?9HSx~2yZe#Ty=petavxrlP984Z^Fo+p|LCjrj3Q#ZZ;A{!6 z%-|4!K^#tfOT@RS>sXz^ah;ll3&&~$uE^uF5l8+sp2^{Y$_Qkj%DIbW?T*wk?w>D1 z2=IYv(aR}F8VN~S1loaEgeQPciG&a^*yuLcctdLiZ>E`ow{WV972k8JaSqD=&q-Ke zwWA2eJ{;mc*JTG{f@LRzr`j8hRgH}0Q?mQib_`aQlwdet` z*o@mOqw(U}q14T0icjUks~xW%Cyort*N?}6fz23=t{)G1(IvvrUd*yb1Ei=Oujd3F zs5956B6DNV%u>UDh;L=Olp2VxZ1Y)GjOl|>7=x&MG|l;Sd0Le>7A(20H1y$LoFskj zp$R0JI~1X1&6HHEC1K0Xl4(2_Dq4;55g)yJV-ccaJ_IvmGm;9^x}s`GAv>^PNr-G( z;t6T+^A}EV$&39$Reu;Vc}fZw?qq4i`jB}{lqpiLp7<<-l#1BXC!)VzVrnO>G$WYk z9|9u3O}H~$xCN*(1%*2Ez-aM>x{^adi{N`DeZdILP}{pp+TxY(Oi*uk`BV(XELge`RBhjhnZ4@-QU3i zx=~C<(D`;8lV6?Nxg5t-zs>IKY9;J0uh9UWyL7X$q+QNo7jS4g4J%3fuEU8cJ8{rS zl61^HQ3<9bS8`0V6$U8q`8fGKK3Z=0iA%a%)T-P%wzkE1E@uaIBms3!HF2_WS3%_z z1fwyAE~o+bg`?=EWEo0B?QF+wEE|_%PCQOd)R&g!T7ZkcWi9g!=uXqOZ0B*0pPI~u z&xZP-Jt{H(RZ5q>YS=#!LnaG8>ykJc$Eny+I0vg?(^yV4>tL|%284Sy{1@4z#=Jhd zMf9h8TkJN;ce{%mjT4+RLP87wcYFgR>p6J&z{pwQgIU{ANh1i|rDAf@{10FqS z)-^pk3d>52SD#_9YS10AV2dT*+GgHn4lN#yoV^NGy{)|nrgPWhK=M>S-pIRDV~C)P&oJ0SEcgoO2bc16}-Ws za$UN`c$aQ2o5T^W{l*rPb5Tsr#R4G)DxBL5Qg<7J#)-zWqUF&hCUbLEZYbaq$yIQwDf_Hey@zJ@1-%Mfta8|`UpsWlhB)x?xz(} zJXW;}8sRRJxDGJMD2K8BG^*p3>X^GOmg4H-nC~#W;iIF19Rq3NmT&)|hAH*o~wUanUR#d^hVMjD9SsV|850@u)k z@*l_H>bs6FZxW*nhkrU^v!xrd`rNBf1khYn7pyjt>4E;@yX8>{9Fv=Xxk6eOic$?^ z3eiKnJtDJJPEhc@xe=@nDmlEVA2En0ToaK6n}F(rS`(vsXnF7=j?pB)1~Rq=wgI44 zhA%zXM6BO%g|Rkrp*C6v(`d$c-7vI4KBLN7EMD!?xq%7LAt!(v=jd~}ZiPO#FDDX~ zpPP}|L)gcqGPn1(a)(rw=sb$L>WM@Jh_5HLtBOw^;?rb(nvY~(Zg3Sg{pgtv?KhK- zinKNPBCFerJfWypGHm8&X^F^phoI&@%#Jh_T`bXPhz2$T#1t!X)P!z+qsxWaoS%q6 zd2M&1O%m?!up~~i2$)tIpxR^0p(=hj@%m|B%Po!UBjT9@Cghj{C9s#QY=7mx{io~( zIixQ^s+3%2+MdgBFnAE&=UamN^mYpt+WE}ryZS=KzWsH(q53bucvDh5gEJqkM}9vv z9{tFPrh}YlIT+hNxWJqIKib{{&Z;6!8}GjN^y%BVX;Py=H(7#Bh5-achrzhwfXs{v zOxm5D`R~r?7=O}=!EcX8YN<#dPDSZ zlTLSQa=*Q%L<%9|LTIfqrxIGEdxb@zoAA&X?FV6b31eg-8|j4zp~^%}?jiM)Y=roP z+YAd#570OeIv!Gq#J%e}K>bi1RpG5$+QGodlOa`xF1Jypdw;!xN%eGf-E*Dz-|~Sm zXdPXi&|#e=Bnlz1AQZ+x?zf09V$iCpW;#yQ4$s*q8Ipk>7_kS=pL1RzaJGncz7_3M zr&?~*QE`xhr~)VEBoeGs7v2#axS|x^6P%?~dl)&Z1LI?{E}X#dpc~A(;0^jx~hvxm38>3@?_C+QZ`2Wuxm4+5f z0~U@V4K0v{d7ROnCuzVa_B-zKVfQ~s4><;fCUB53A#|Bbe=dh->G}Uz-f5oJbUNW% zPPK#itv?wPFW%(Hdfv7PkM)tS=w8xP`59#r+P}iaoqHEDTSc~TE zDLN!uJceX1&xXhH?2*O9V`Qf~49G5OVX+GE|T2k3F&)q}4~h=Z?RejOf{U!T!TJZ3ao+YBCS zn{~up-HfAS%i%5IF}&s4cg17vyZhgT$NqOW;1*bh*zn%yR`3|zYDp{cSkh_(JvOvD zqCJkZx<-#{t>*n!g-}y`sEzhBC~Kx)%RUDsI6=_xE&g4=lOJIo$F;aLyN5S$|HR1z zZ0Tr&Egc(t`u2}Z!p?PXW7;0Iw{XCF16sjb4Opa2GF9KNZ-o@a@Oc)tHNtolKaPXx zaiOn6;iQiF-g18xk5o7m8OY1wSEp^qrd03NyS+Gb*z3Jstr$qf=x=Ioo?Z4)e=sZT zk(%}$48m2%iT@7jI-ZltndQi74e~1>R`HpzuTp8(9Zq_r=DEVL(P8mjR6u@LaN^;> zz;)uIGY&A+x>iJByi6OXe0-0L*QmN$2(7+Jm}=#bp66_ON~ycACu0;H+&6fJ<@9Ak$s6GU|h=-;_?k+S8Qrqr~jDl;Z z$^?Z^SsJc4@UG=-z^PiosNFY;vB^vz_|HcJSdK$R#P2BKc}@wsPwNc7-wiLop~y>` z_6BRJ>!ykh%-CFK8%ZEMeG`RRk;FRy3gloAm{Wryyc%yLwmlc;m!Y)iz%@`5HQopV zW#7C<>!D5t(Q*5K>=BjNF&rDsDZK*kMc#qZ7hxDB;`|SzgQ8n)=}jp;zch^PrBA{L zg0_tg+MT`EsM1qQ!&qDT01T$IgAVk%&KK*Jj0l{F*a@va0H~yzFh8CzuSe%g5Lo5Q z>n2|=X+4-PZ2A0TTQy3Bla``OC^cGH9z*dA5K~WEq_AccAqUX}9)kai!KIp5r&JS^ z5M)z)oZn=4RGDBGE$$wQKfy7njM*J`w z7jo`XZ%<}F>_md4U)E?I0W~^nytp5h8B~@4qfkG;S#&(Ov$vIZEOQ1vt$5wb=9kqE z62tlpqJ!cBvG=?inQJ&o7*lqBS(LY^=a(5_lBRkl91MyBlQY)hMR&0bN&WgZL>fK4 zv?7TgvvvbV3)gd)@KdE|kC;^Zqcq^fv4NXhxHr!Lyi~qZ1ym*-h#CAp`1xh}86C4w zGrg?+oc}(Tc{dZr!Q$tO)AM}s-X%iSadu3JNmyO!T`kd}B)ylG>V-v&UY80BAlLi4 z!aW)bDvhO11D@T3z3|@Tsy(W~7+Y-Zq@Ew2gZ$hV;jI&(r`yZ zM!KWnX0+Dc%|<=BduGw|4_<&VuyMZ^b<+IlHp|o-=Q6CpyYi{($Q>x`zaRHu9CoyZ zm+>{7KYyhq@>WPJp}?lLPmx`br*)%QjeRXczGhp|qU!LgqQ%4S|DN3}4x^OZdWyZP z;|xdU5C_+Uz)Wrm6!U%FG|TQ(#T}gEU0tOk%WiMp5_~-N zc2vDhV|cYrEV~gkrn2lN)t+A)#)Nu1>ce>W-1UYqCN^5iqC3;*3zpfM7bdd5p4xaN zjQ_QUZA3$S#HWUBM8h_sVH?q~jcADd^VG17Xoz)#)Ub_ch+VqWu#ITgMl@_A8nzJ) z+lYp3{?{6|77bgAhOI@z)}mo+(Xh2>*jhBiQC7^u)}mo+(Xh2>*jhAfEgH5K4O@$b ztwqBhd5=Ric>L#oW=mQP5k}$Qqbr|!-{j85E>2jcl|NWsS#FmfP(fJ^R$NzESr%5g zQ$<;}?cw=Q5(|EqJsHf)fR7CqYX}Zj-vY8kdObQGp1O}4|NLz<%-o>Pq_wIoh8 z;g5wkI^TXoy(i}AT#r$>I?~NdrFpR8<%%>fSL|6?saSbtWx9hT%&bZ`Gg{$KNW!ps zGwU&&N(xNoI^E26n#_0dqml%FW<8UZ^xwB}I)zR-tPU~i)uHVnM!h|>nj4thl)|ZM zPfMh;3udalo|VVZa8n1Tszm^wm^M_Tma24Mn8Hytsby4xfU2q#3?6mW`DuUC3#(_g z9Pdl=hUZ+!RhEa9=HUT_&xWd9u)qhFy){qORF)BqX5$GvE(00A+&B|W76!wkQ`V$l z_=QtIZIclGyBb79rsy^TXNY!d8(lM==<;)-mAr$>-LI{;BBx&|W$96F3G{}~{&LsE zvgDbGm6Xqr$_J1DK+~S>lcy{b^S%Q2PXX|R0V zVAFHTa`(BuXkp;-+bb@q3}bqgi&bE(%$raZ#*(ThXmqT0sXB~KH3rs#(YN-P z+Aw<8TT&m!x#x~Hgwdzb#6~c7HX8B*j4xj3(-_9U##3SZ&lDXJt>`h_Qr@erw=s7( zT6I_kmS2Nb9hT$e?}=qi#Tm$R_~chPfmR)sd3i(8n8Pxo>Rz$juKF!nb@<$=-W7Qc zOUK#+(5l1IzTOP9>aZMnj#&*$hepGY)v&B<)B`yT%h(q>pbdwmYva+%f}})7236~R zFus0b2>|e`+KM#=^DdqjSkBcQggOPw+6IeJr(pT+xkqA|-f%S% z3ZGex)+3>?%zpkm)G1glJ>Ll_Zueh3DgI5Hh>;PWoch_6kayqbF%#Q zXOv}C#cdUpWlv>HI1t)i<(62+*V$fI`8=pM1qA?TLW3o^r3seP4ep8Me8UM)5I&zb zTA?gBb1Je(=ld_&TDor5FbBp5OcaabVO}xAzKOz%!~QD1c$cV#7w>Anbl)u9P?gch zRQ{!Uvy}4nlLnXu2rZ8{w#=e3Fcy{BjEwkPa?cH-1_EQt>;TFkycaQayZ2=71QVay zdxGW=(eTaRe*zLQ{(8ylavcGeyz-q(jnNBPEz`o0rs%uMA1bdbrz>BptSlYt46j4W zk86md}0zUgg%}=c;%rN~2HVD+8Q=gW{P((uvJnHDTw>-`; z4Xr<=zL{Zi5Kql85mYucg!TJaCT5r*u}A%}B9R@aiwe6({Sk)EY+Y^Hn8d4?@7<`- z{ux>%;~W(F5~IF2$wag8a)O|)2lFAS9riN^nj++(WmhyNe%r~R<&&Po|;|4yr+Jr z5jD%ha{uWdlj}L*2-X=~s@v%&v`C$CP?Re%l$(0Y9E8s~u!nWk1CKi+qhj?`T_mh* zaefRQEj1R6WrxZBoz=NkIH@~M$ zd@6|!A`%HY`hISi&=(TFsdJ-_lBn1YD(r9STyoh*EW1{yQNA~*&a^r(MY4lITS7+L z)8j>PDeRIWeRhQ-^gmi=R5+ z>^@1d&wlwhsy)0o^b$A(bybmlXuNR`imEvdidcyu8X`*OCd*}h-t#7KC*OcV#6W39}(`(?(i4AxyG(ZLWWArq&AM6p}Xnazae3k~@SYZxdtiXsNMiEL-&k`>oD3 z`C@%6<5~tx=_wox8WV!Xstz2sEHzVbIOCFH#bP4yaK^a|(HBognW<8i+_H$^fg4e) ztbbJp@Z$2q5$u|omcA;Tmd8-2L<~IEOuw1sp^|_%F@34<@a<)e#!8_cyH57$ytKgJ zGDwXq*1?}*wT}y&K7#vY)Sk`lMjF?ruoRx2X6k4yENmE@jGJ?0Ow4P>&MY!6P3 z<*?oDpF9eS=HzL05M62jB@flpT*WfWKw78dzLXY=2$P`6eaQTSW%9VL1xag@^h%>B z1XG|%n|aBYDv}@N#3CY%5o$fLxJk=Ok>hu)GlGGI{{glzi^}z8*sKdDEyDR7;gexn z9z#*$#8?TLu?;Pc*|#~2bN_YrIf$r5P^(4etCoqb2NIXz%>g9>|D_$$p;aywgg zb!6ei&^?SIS@Yxk0BHnWFNWGvSM~4*h{K6RL>eR1y2eGuYFRo9tux3%JVQU9B^ik2 zozTK@qWXH)8K+Qad2+VNZ?0b`jadTqA{R0KY7Ur8<6+<3Zd<1F?xrfj6Of4U*Y9qj zIU?Hbmh|k0H@uuQ$oIyj&P=6+8I3L60gC)2#A_qTKx0 z=)m}j5#?-yxYRG?n<#$#%j{e3`?DKZeVKhrHQsmySgrL?eKaEWPum2ck4AF47Z_F` zNUnn-xx^&7S2QczB-eVddLgTv&yp$X9dCT*CiFabaf?L}FENR?*?1`p`;KQlfJ6Pa z^rtcTupBw-3_w&{bKj0*)M)c)*7Ynq`g1VIBt)5f_~NuwFOHAx!L08vu_=$bgUF*m zP(KP}rdg&MZGM&YZ6MFVg!@(25yNH9zi+1<>apJ*QDAlfrE3fZT?wiD0qY~nstsL- z6qw945~^xCh{z+Tb!D9GE%O=5>s}x~kmq2+?OtHG=7Q?{{KK8hqpBv6$Kp-(_@~~= zQrj@U0?Rq|%^Q}jw=CNL4hMtC z5@HlP67Q9(gKt7haR_7Rlj7b5=tpxy>Gn9|q`23s%&;hghC7oZTA8*+P-Ib z)OJhwkR3-lh)5);wPl=tw9JZ1;_~p}MC%r966n_O(70v&wi;w$piN^50R(H8#=tC8x6x^da| z;ga8TJ@fdSgQZ{`dgjJ6FlJQU$glIKt9IwY<*D^&G=Ooi!EGA18usFc_? zn=a&ryPdC|!t!MGqM@pDoPXKoYDuMCNt}<;+#44UqZy1vA-L9Np2cz|(eB5x5c>

      ?vQt}KRm80@Z4JY5y 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

      c4_eUYc$&#w4>oK&b`VGT`Far=P35H6Sb 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

      %D2LYN)l~ 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 R6aHWRgW`X!XmIgb{V%+kg4O^4 diff --git a/platforms/android/tools/bytecode-compiler/bin/quickjs/win32-x64/nsbc-quickjs.exe b/platforms/android/tools/bytecode-compiler/bin/quickjs/win32-x64/nsbc-quickjs.exe deleted file mode 100644 index 0f8270237..000000000 --- a/platforms/android/tools/bytecode-compiler/bin/quickjs/win32-x64/nsbc-quickjs.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e5bd0606548f699b6554c67c603f0f7f928a96fa011b4d6e716ef393f916b0b -size 5207690 diff --git a/platforms/android/tools/bytecode-compiler/lib/index.js b/platforms/android/tools/bytecode-compiler/lib/index.js index ae917f11e..f6fdea3e7 100644 --- a/platforms/android/tools/bytecode-compiler/lib/index.js +++ b/platforms/android/tools/bytecode-compiler/lib/index.js @@ -34,7 +34,6 @@ function hostKey() { const adapters = [ require('./hermes'), - require('./quickjs'), require('./quickjs-ng'), require('./primjs'), ]; diff --git a/platforms/android/tools/bytecode-compiler/lib/quickjs-ng.js b/platforms/android/tools/bytecode-compiler/lib/quickjs-ng.js index 2bb6123f6..64ca90906 100644 --- a/platforms/android/tools/bytecode-compiler/lib/quickjs-ng.js +++ b/platforms/android/tools/bytecode-compiler/lib/quickjs-ng.js @@ -1,14 +1,18 @@ 'use strict'; -// QuickJS-NG adapter. Same JS_* API and shim as QuickJS (native/qjs-compile.c), -// but a distinct engine whose bytecode is NOT interchangeable — hence its own -// magic and bin/quickjs-ng/ directory. The runtime reads this container in -// napi/quickjs js_execute_script (the __QUICKJS_NG__ build); see quickjs.js. +// QuickJS-NG adapter, built on the shared shim (native/qjs-compile.c). The +// runtime reads this container in napi/quickjs js_execute_script (the +// __QUICKJS_NG__ build). +// +// This is the only QuickJS lane left: the bellard tree was dropped and the +// runtime's QUICKJS is an alias for QUICKJS_NG (see test-app/runtime/ +// build.gradle), so both names must resolve here. Were QUICKJS left +// unregistered, the driver would silently skip compilation and ship plain JS. const MAGIC = Buffer.from('NSBCNGS\0', 'latin1'); // 8 bytes, must match the shim + runtime module.exports = { key: 'quickjs-ng', - engineKeys: ['QUICKJS_NG'], + engineKeys: ['QUICKJS_NG', 'QUICKJS'], ready: true, magic: MAGIC, supportsSourceMaps: false, diff --git a/platforms/android/tools/bytecode-compiler/lib/quickjs.js b/platforms/android/tools/bytecode-compiler/lib/quickjs.js deleted file mode 100644 index 91d73bc00..000000000 --- a/platforms/android/tools/bytecode-compiler/lib/quickjs.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -// QuickJS (bellard) adapter. -// -// The compiler is our blob-emitting shim (native/qjs-compile.c), built per host -// by .github/workflows/bytecode-compilers.yml. It writes a NativeScript bytecode -// container: 8-byte magic + 4-byte LE format version + JS_WriteObject payload. -// -// The runtime side reads this container in napi/quickjs js_execute_script (strips -// the 12-byte header, JS_ReadObject(JS_READ_OBJ_BYTECODE) + JS_EvalFunction). -// Keep the CLI's engine ref in step with the runtime's vendored QuickJS. -const MAGIC = Buffer.from('NSBCQJS\0', 'latin1'); // 8 bytes, must match the shim + runtime - -module.exports = { - key: 'quickjs', - engineKeys: ['QUICKJS'], - ready: true, - magic: MAGIC, - supportsSourceMaps: false, - defaultOptimize: null, - - binName(hostKey) { - return hostKey.startsWith('win32') ? 'nsbc-quickjs.exe' : 'nsbc-quickjs'; - }, - - isBytecode(head) { - return head.length >= MAGIC.length && head.subarray(0, MAGIC.length).equals(MAGIC); - }, - - // Our shim takes: - buildArgs({ input, output }) { - return [input, output]; - }, - - sourceMapOutput(output) { - return output + '.map'; - }, -}; From eda20bdba3d73a0d805d8e54f10fd5468ef88c4a Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 17 Aug 2026 22:13:24 +0500 Subject: [PATCH 38/98] fix(metadata): exclude module names that match a js namespace --- .../main/java/com/telerik/dts/ClassRepo.java | 5 ++ .../src/main/java/com/telerik/dts/DtsApi.java | 79 ++++++++++++++++++- 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/ClassRepo.java b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/ClassRepo.java index b8e1b75d3..7c4a78763 100644 --- a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/ClassRepo.java +++ b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/ClassRepo.java @@ -57,6 +57,11 @@ public static void sortCachedProviders() { }); } + /** Every class name to be emitted, in emission order. Empty before sortCachedProviders. */ + public static List getAllClassNames() { + return sortedClasses == null ? Collections.emptyList() : sortedClasses; + } + public static JavaClass findClass(String className) { JavaClass clazz = null; for (ClassMapProvider classMapProvider : cachedProviders) { diff --git a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java index 1eab6aaf9..be129d23f 100644 --- a/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java +++ b/platforms/android/test-app/build-tools/android-dts-generator/dts-generator/src/main/java/com/telerik/dts/DtsApi.java @@ -29,6 +29,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -95,6 +96,14 @@ public class DtsApi { "volatile", "while", "with", "yield" ); + /** + * Package prefixes skipped because a segment is a reserved word, discovered + * while walking the classpath. Feeds getIgnoredNamespaces() so references to + * their types collapse to {@code any} like any other unemitted namespace. + */ + private final Set reservedWordNamespaces = new LinkedHashSet<>(); + private boolean scannedForReservedWords = false; + public DtsApi(boolean allGenericImplements, InputParameters inputParameters) { this.allGenericImplements = allGenericImplements; this.ignoreObfuscatedNameLength = inputParameters.getIgnoreObfuscatedNameLength(); @@ -1681,11 +1690,71 @@ private void setGlobalAliases() { private static final List IGNORED_NAMESPACE_PREFIXES = IGNORED_NAMESPACES.stream().map(n -> n + ".").collect(Collectors.toList()); + /** + * Collects the reserved-word packages across the whole classpath, once. + * + *

      Discovering them as classes are emitted is not enough: content is + * generated and replaced one class group at a time, so a group processed + * before the offending package is reached keeps raw references to types we + * never declare -- which tsc rejects just as loudly as the bad namespace + * did. Scanning every class name up front makes the ignore list complete + * from the first group on. + */ + private void ensureReservedWordNamespaces() { + if (scannedForReservedWords) { + return; + } + scannedForReservedWords = true; + for (String className : ClassRepo.getAllClassNames()) { + String[] parts = className.split("\\."); + // parts[length-1] is the class name; only package segments matter. + for (int i = 0; i < parts.length - 1; i++) { + if (reservedJsKeywords.contains(parts[i])) { + String prefix = String.join(".", Arrays.copyOf(parts, i + 1)); + if (reservedWordNamespaces.add(prefix)) { + System.out.println(String.format( + "Skipping package %s: \"%s\" is a reserved word and cannot be a TypeScript namespace. " + + "Types under it are typed as any.", + prefix, parts[i])); + } + break; + } + } + } + } + private List getIgnoredNamespaces(){ // for some reason these namespaces are references but not existing, so we are replacing all types from these namespaces with "any" - return IGNORED_NAMESPACES; + ensureReservedWordNamespaces(); + if (reservedWordNamespaces.isEmpty()) { + return IGNORED_NAMESPACES; + } + List all = new ArrayList<>(IGNORED_NAMESPACES); + all.addAll(reservedWordNamespaces); + return all; } + /** + * A namespace is skipped when it is listed in IGNORED_NAMESPACES, or when + * any of its segments is a word TypeScript will not accept as a namespace + * name. + * + *

      A package such as org.apache.commons.lang3.function is emitted as + * "export module function {", which does not parse -- and because the brace + * can never be closed, it takes the rest of the .d.ts down with + * it rather than just its own declarations. Java forbids its own keywords in + * package names, so the collisions that actually reach here are the words + * only JavaScript reserves ({@code function}, {@code in}, {@code with}, + * {@code let}, {@code yield}, ...). Two of them, java.util.function and + * com.tom_roush...common.function, were previously listed by hand above; + * this covers every such package on any classpath, including ones we have + * never seen. + * + *

      The types are dropped rather than escaped: an escaped segment no longer + * matches the package path the runtime resolves from metadata, so a name + * that type-checks would fail at runtime. Dropping them yields `any`, which + * is honest about what we know. + */ private boolean isIgnoredNamespace() { String[] namespaceOnlyParts = Arrays.copyOf(namespaceParts, namespaceParts.length-1); String namespace = String.join(".", namespaceOnlyParts); @@ -1695,6 +1764,14 @@ private boolean isIgnoredNamespace() { return true; } } + + for (int i = 0; i < namespaceOnlyParts.length; i++) { + if (reservedJsKeywords.contains(namespaceOnlyParts[i])) { + // Everything from the reserved segment down is unnameable, so + // record that prefix -- not the individual class -- as ignored. + return true; + } + } return false; } } From 3701385271c2328e1b81bf789f59a51bb16e887a Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 17 Aug 2026 22:13:36 +0500 Subject: [PATCH 39/98] fix: add missing bundle-for-analysis.js file --- .../android/scripts/bundle-for-analysis.js | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 packages/react-native/android/scripts/bundle-for-analysis.js diff --git a/packages/react-native/android/scripts/bundle-for-analysis.js b/packages/react-native/android/scripts/bundle-for-analysis.js new file mode 100644 index 000000000..11fae01c9 --- /dev/null +++ b/packages/react-native/android/scripts/bundle-for-analysis.js @@ -0,0 +1,127 @@ +#!/usr/bin/env node +/* + * Builds every JS graph the app ships into one directory, for the static + * binding generator and the metadata seed to read. + * + * Why this exists rather than one `react-native bundle` per entry: an app's + * secondary entry points (workers) are separate module graphs that appear in no + * other bundle, so each has to be built -- but a CLI invocation per entry pays a + * fresh Node process, a fresh Metro config load and a cold transform cache every + * time. Loading the config once and reusing it across entries is what React + * Native's own tooling does, and what a worker bundler does too. + * + * Everything is resolved from the *app's* root, never from this package: the + * Metro, React Native and community-cli-plugin that build the analysis bundles + * must be the ones that build the shipping bundles, or the analysis describes a + * program the device never runs. + * + * Usage: + * bundle-for-analysis.js --project-root

      --out --entry + * [--worker =]… [--resolver-option k=v]… + */ + +const fs = require("fs"); +const path = require("path"); + +function reqFrom(fromDir, request) { + return require(require.resolve(request, { paths: [fromDir] })); +} + +function parseArgs(argv) { + const args = { workers: [], resolverOptions: [] }; + for (let i = 0; i < argv.length; i++) { + const key = argv[i]; + if (key === "--project-root") args.projectRoot = argv[++i]; + else if (key === "--out") args.out = argv[++i]; + else if (key === "--entry") args.entry = argv[++i]; + else if (key === "--resolver-option") args.resolverOptions.push(argv[++i]); + else if (key === "--worker") { + const value = argv[++i]; + const eq = value.indexOf("="); + if (eq > 0) args.workers.push({ id: value.slice(0, eq), file: value.slice(eq + 1) }); + } + } + return args; +} + +async function loadMetroConfig(projectRoot, platform) { + /* The same path @react-native/community-cli-plugin takes: its own loader when + * present, else Metro's. Both read the app's metro.config.js. */ + try { + const { loadConfigAsync } = reqFrom(projectRoot, "@react-native/community-cli-plugin"); + if (typeof loadConfigAsync === "function") { + return await loadConfigAsync({ root: projectRoot, platform }, { platform }); + } + } catch (_) { + /* fall through to Metro's own loader */ + } + const metro = reqFrom(projectRoot, "metro"); + return await metro.loadConfig({ cwd: projectRoot }); +} + +async function main() { + const args = parseArgs(process.argv.slice(2)); + if (!args.projectRoot || !args.out || !args.entry) { + console.error("bundle-for-analysis: --project-root, --out and --entry are required"); + process.exit(2); + } + + const { unstable_buildBundleWithConfig } = reqFrom( + args.projectRoot, + "@react-native/community-cli-plugin" + ); + if (typeof unstable_buildBundleWithConfig !== "function") { + /* Older React Native. The caller falls back to one CLI run per entry, which + * is slower but produces the same bundles. */ + console.error("bundle-for-analysis: unstable_buildBundleWithConfig is unavailable"); + process.exit(3); + } + + fs.mkdirSync(args.out, { recursive: true }); + const config = await loadMetroConfig(args.projectRoot, "android"); + + const build = async (label, entryFile, outFile, resolverOption) => + unstable_buildBundleWithConfig( + { + platform: "android", + dev: false, + /* Readable output: the analysis reads class and member names out of + * this, and a minified graph hides most of them. */ + minify: false, + entryFile, + bundleOutput: outFile, + assetsDest: path.join(args.out, "assets"), + /* Keeps `class X extends Y {}` intact. React Native's Babel preset + * downlevels classes into a helper call otherwise, and a downlevelled + * class is not something static analysis can recognise as a subclass. */ + unstableTransformProfile: "hermes-stable", + ...(resolverOption ? { resolverOption } : {}), + }, + config + ).catch((e) => { + throw new Error(`bundle-for-analysis: ${label} failed: ${e.stack || e.message}`); + }); + + await build("app entry", args.entry, path.join(args.out, "index.android.bundle"), null); + + for (const worker of args.workers) { + const safe = worker.id.replace(/[^A-Za-z0-9]/g, "_"); + await build( + `worker ${worker.id}`, + worker.file, + path.join(args.out, `worker-${safe}.js`), + /* Worker graphs resolve `react-native` to the worker shim; without the + * flag this would analyse a graph the device never runs. */ + args.resolverOptions.length > 0 ? args.resolverOptions : null + ); + } + + console.error( + `bundle-for-analysis: built ${1 + args.workers.length} bundle(s) in one Metro session` + ); +} + +main().catch((e) => { + console.error(e.message || e); + process.exit(1); +}); From fda8f9b86fbe3d9549db4cdd5225095738f19fe3 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Wed, 19 Aug 2026 11:46:51 +0500 Subject: [PATCH 40/98] fix(quickjs): use gitmodules for quickjs_ng source Pin quickjs_ng to d950d55e950dd7994a96c669c31efa967b8b79f3 commit keeping it sync with the bytecode compilers. --- .github/workflows/bytecode-compilers.yml | 10 +- .gitmodules | 6 + platforms/android/scripts/build.js | 4 +- platforms/android/scripts/setup.js | 14 +- .../android/test-app/runtime/CMakeLists.txt | 15 +- platforms/android/tools/patches/README.md | 49 +- .../0001-nativescript-local-changes.patch | 304 - .../0001-nativescript-local-changes.patch | 34 +- vendor/quickjs/source_ng/CMakeLists.txt | 461 - vendor/quickjs/source_ng/LICENSE | 24 - vendor/quickjs/source_ng/Makefile | 147 - vendor/quickjs/source_ng/README.md | 24 - vendor/quickjs/source_ng/amalgam.js | 49 - vendor/quickjs/source_ng/api-test.c | 763 - .../source_ng/builtin-array-fromasync.h | 113 - .../source_ng/builtin-array-fromasync.js | 36 - vendor/quickjs/source_ng/ctest.c | 17 - vendor/quickjs/source_ng/cutils.c | 1342 - vendor/quickjs/source_ng/cutils.h | 660 - vendor/quickjs/source_ng/cxxtest.cc | 2 - vendor/quickjs/source_ng/dtoa.c | 1619 - vendor/quickjs/source_ng/dtoa.h | 87 - vendor/quickjs/source_ng/fuzz.c | 22 - vendor/quickjs/source_ng/libregexp-opcode.h | 58 - vendor/quickjs/source_ng/libregexp.c | 2676 - vendor/quickjs/source_ng/libregexp.h | 97 - vendor/quickjs/source_ng/libunicode-table.h | 4658 -- vendor/quickjs/source_ng/libunicode.c | 1746 - vendor/quickjs/source_ng/libunicode.h | 126 - vendor/quickjs/source_ng/list.h | 107 - vendor/quickjs/source_ng/meson.build | 635 - vendor/quickjs/source_ng/meson_options.txt | 6 - vendor/quickjs/source_ng/qjs.c | 748 - vendor/quickjs/source_ng/qjsc.c | 673 - vendor/quickjs/source_ng/quickjs-atom.h | 265 - vendor/quickjs/source_ng/quickjs-c-atomics.h | 54 - vendor/quickjs/source_ng/quickjs-libc.c | 4685 -- vendor/quickjs/source_ng/quickjs-libc.h | 76 - vendor/quickjs/source_ng/quickjs-opcode.h | 371 - vendor/quickjs/source_ng/quickjs.c | 58356 ---------------- vendor/quickjs/source_ng/quickjs.h | 1302 - vendor/quickjs/source_ng/repl.js | 1896 - vendor/quickjs/source_ng/run-test262.c | 2366 - vendor/quickjs/source_ng/standalone.js | 129 - vendor/quickjs/source_ng/test262-fast.conf | 132 - vendor/quickjs/source_ng/test262.conf | 396 - vendor/quickjs/source_ng/tests.conf | 11 - vendor/quickjs/source_ng/unicode_download.sh | 19 - vendor/quickjs/source_ng/unicode_gen.c | 3108 - vendor/quickjs/source_ng/unicode_gen_def.h | 305 - 50 files changed, 84 insertions(+), 90719 deletions(-) delete mode 100644 platforms/android/tools/patches/quickjs/0001-nativescript-local-changes.patch delete mode 100755 vendor/quickjs/source_ng/CMakeLists.txt delete mode 100755 vendor/quickjs/source_ng/LICENSE delete mode 100755 vendor/quickjs/source_ng/Makefile delete mode 100755 vendor/quickjs/source_ng/README.md delete mode 100755 vendor/quickjs/source_ng/amalgam.js delete mode 100755 vendor/quickjs/source_ng/api-test.c delete mode 100755 vendor/quickjs/source_ng/builtin-array-fromasync.h delete mode 100755 vendor/quickjs/source_ng/builtin-array-fromasync.js delete mode 100755 vendor/quickjs/source_ng/ctest.c delete mode 100755 vendor/quickjs/source_ng/cutils.c delete mode 100755 vendor/quickjs/source_ng/cutils.h delete mode 100755 vendor/quickjs/source_ng/cxxtest.cc delete mode 100755 vendor/quickjs/source_ng/dtoa.c delete mode 100755 vendor/quickjs/source_ng/dtoa.h delete mode 100755 vendor/quickjs/source_ng/fuzz.c delete mode 100755 vendor/quickjs/source_ng/libregexp-opcode.h delete mode 100755 vendor/quickjs/source_ng/libregexp.c delete mode 100755 vendor/quickjs/source_ng/libregexp.h delete mode 100755 vendor/quickjs/source_ng/libunicode-table.h delete mode 100755 vendor/quickjs/source_ng/libunicode.c delete mode 100755 vendor/quickjs/source_ng/libunicode.h delete mode 100755 vendor/quickjs/source_ng/list.h delete mode 100755 vendor/quickjs/source_ng/meson.build delete mode 100755 vendor/quickjs/source_ng/meson_options.txt delete mode 100755 vendor/quickjs/source_ng/qjs.c delete mode 100755 vendor/quickjs/source_ng/qjsc.c delete mode 100755 vendor/quickjs/source_ng/quickjs-atom.h delete mode 100755 vendor/quickjs/source_ng/quickjs-c-atomics.h delete mode 100755 vendor/quickjs/source_ng/quickjs-libc.c delete mode 100755 vendor/quickjs/source_ng/quickjs-libc.h delete mode 100755 vendor/quickjs/source_ng/quickjs-opcode.h delete mode 100755 vendor/quickjs/source_ng/quickjs.c delete mode 100755 vendor/quickjs/source_ng/quickjs.h delete mode 100755 vendor/quickjs/source_ng/repl.js delete mode 100755 vendor/quickjs/source_ng/run-test262.c delete mode 100755 vendor/quickjs/source_ng/standalone.js delete mode 100755 vendor/quickjs/source_ng/test262-fast.conf delete mode 100755 vendor/quickjs/source_ng/test262.conf delete mode 100755 vendor/quickjs/source_ng/tests.conf delete mode 100755 vendor/quickjs/source_ng/unicode_download.sh delete mode 100755 vendor/quickjs/source_ng/unicode_gen.c delete mode 100755 vendor/quickjs/source_ng/unicode_gen_def.h diff --git a/.github/workflows/bytecode-compilers.yml b/.github/workflows/bytecode-compilers.yml index 9042738c0..0149be355 100644 --- a/.github/workflows/bytecode-compilers.yml +++ b/.github/workflows/bytecode-compilers.yml @@ -28,10 +28,10 @@ on: quickjs_ng_ref: # MUST match the vendored source in vendor/quickjs/source_ng, or # JS_ReadObject rejects the blob: the compiler writes its own BC_VERSION - # and the runtime accepts only its own. v0.11.0 == BC_VERSION 21, which + # and the runtime accepts only its own. d950d55e == BC_VERSION 27, which # is what the vendored quickjs.c defines. description: "quickjs-ng/quickjs ref (match vendor/quickjs/source_ng)" - default: "6a9fe9af5ca0bf7c49ae697edef44864272317d1" + default: "d950d55e950dd7994a96c669c31efa967b8b79f3" primjs_ref: description: "lynx-family/primjs ref" default: "9c1fe150179b86f0ae5c6fbe670af7d76eca9df6" @@ -77,7 +77,7 @@ jobs: # accepts branch/tag names). GitHub allows fetching arbitrary SHAs. run: | set -euxo pipefail - ref="${{ github.event.inputs.hermes_ref || 'master' }}" + ref="${{ github.event.inputs.hermes_ref || '10a40b5f1de81d007cba6afe567c4ba7a0b45f5d' }}" git init hermes git -C hermes remote add origin "$HERMES_REPO" git -C hermes fetch --depth 1 origin "$ref" @@ -154,7 +154,7 @@ jobs: shell: bash run: | set -euxo pipefail - ref="${{ github.event.inputs.quickjs_ng_ref || 'master' }}" + ref="${{ github.event.inputs.quickjs_ng_ref || 'd950d55e950dd7994a96c669c31efa967b8b79f3' }}" git init quickjs-ng git -C quickjs-ng remote add origin "$QUICKJS_NG_REPO" git -C quickjs-ng fetch --depth 1 origin "$ref" @@ -225,7 +225,7 @@ jobs: shell: bash run: | set -euxo pipefail - ref="${{ github.event.inputs.primjs_ref || 'develop' }}" + ref="${{ github.event.inputs.primjs_ref || '9c1fe150179b86f0ae5c6fbe670af7d76eca9df6' }}" git init primjs git -C primjs remote add origin "$PRIMJS_REPO" git -C primjs fetch --depth 1 origin "$ref" diff --git a/.gitmodules b/.gitmodules index fa45c83c7..bad11db1a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,9 @@ path = libffi url = https://github.com/NativeScript/libffi.git branch = darind/v8-ios +[submodule "vendor/quickjs/source_ng"] + path = vendor/quickjs/source_ng + url = https://github.com/quickjs-ng/quickjs + # The NativeScript patch is applied into the work tree by + # platforms/android/scripts/setup.js, so the submodule is always dirty. + ignore = dirty diff --git a/platforms/android/scripts/build.js b/platforms/android/scripts/build.js index 4ecd560d8..98200eced 100644 --- a/platforms/android/scripts/build.js +++ b/platforms/android/scripts/build.js @@ -8,10 +8,10 @@ const path = require('path'); const readline = require('readline'); // SHERMES is kept as an input alias for the unified Static Hermes backend. -const VALID_ENGINES = ['V8-10', 'V8-11', 'V8-13', 'QUICKJS', 'QUICKJS_NG', 'HERMES', 'SHERMES', 'JSC', 'PRIMJS']; +const VALID_ENGINES = ['V8-10', 'V8-11', 'V8-13', 'QUICKJS_NG', 'HERMES', 'SHERMES', 'JSC', 'PRIMJS']; // Hermes and JSC gained host-object support in the engine updates, so every // engine now supports them; SHERMES rides along as an alias for HERMES. -const HOST_OBJECTS_SUPPORTED = new Set(['V8-10', 'V8-11', 'V8-13', 'QUICKJS', 'QUICKJS_NG', 'HERMES', 'SHERMES', 'JSC', 'PRIMJS']); +const HOST_OBJECTS_SUPPORTED = new Set(['V8-10', 'V8-11', 'V8-13', 'QUICKJS_NG', 'HERMES', 'SHERMES', 'JSC', 'PRIMJS']); // Host objects are enabled by default whenever the selected engine supports // them. They can be force-disabled with --disable-host-objects (or by diff --git a/platforms/android/scripts/setup.js b/platforms/android/scripts/setup.js index 4c953ec04..50ceb43c3 100644 --- a/platforms/android/scripts/setup.js +++ b/platforms/android/scripts/setup.js @@ -1,9 +1,9 @@ #!/usr/bin/env node // // One-shot developer/CI setup for the android-runtime repo: -// 1. Fetch the engine source submodules (QuickJS / QuickJS-NG) and reset them -// to their pinned commit. -// 2. Apply the NativeScript local patches onto the pristine submodules. +// 1. Fetch the QuickJS-NG engine source submodule and reset it +// to its pinned commit. +// 2. Apply the NativeScript local patch onto the pristine submodule. // 3. Install the jsparser build-tool dependencies (the previous `npm run setup`). // // Idempotent: re-running resets the submodules to the pinned commit (discarding @@ -27,11 +27,11 @@ const NPM = process.platform === 'win32' ? 'npm.cmd' : 'npm'; const NAPI_QJS = 'vendor/quickjs'; const PATCHES = path.join(ANDROID_ROOT, 'tools/patches'); +// QuickJS-NG only: the bellard tree was dropped, and QUICKJS is an alias for +// QUICKJS_NG (runtime/build.gradle). The pinned commit fixes the engine's +// BC_VERSION, which the bytecode compiler must be built from as well -- see +// tools/patches/README.md. const ENGINES = [ - { - sub: `${NAPI_QJS}/source`, - patch: path.join(PATCHES, 'quickjs/0001-nativescript-local-changes.patch'), - }, { sub: `${NAPI_QJS}/source_ng`, patch: path.join(PATCHES, 'quickjs_ng/0001-nativescript-local-changes.patch'), diff --git a/platforms/android/test-app/runtime/CMakeLists.txt b/platforms/android/test-app/runtime/CMakeLists.txt index 241c20f9d..d52607f7f 100644 --- a/platforms/android/test-app/runtime/CMakeLists.txt +++ b/platforms/android/test-app/runtime/CMakeLists.txt @@ -201,17 +201,20 @@ if (NS_BINDING STREQUAL "jsi") endif () if (QUICKJS OR QUICKJS_NG) - # quickjs-ng, NativeScript-patched, vendored at the repo root and shared with - # the Apple build. The patches (JS_WeakRef_Deref, JS_NewString16, - # JS_ClearWeakRefKeepAlives) are required by quickjs-api.c and exist in no - # upstream release, which is why this is a vendored tree rather than a - # submodule. + # quickjs-ng, NativeScript-patched, shared with the Apple build. The tree is + # a git submodule pinned to an upstream commit; our patches (JS_WeakRef_Deref, + # JS_NewString16, JS_ClearWeakRefKeepAlives -- required by quickjs-api.c and + # in no upstream release) are applied into its work tree by + # platforms/android/scripts/setup.js. The pin also fixes BC_VERSION, so the + # bytecode compiler must be built from the same commit; see + # platforms/android/tools/patches/README.md. set(QJS_SOURCE_DIR ${VENDOR_DIR}/quickjs/source_ng) add_compile_definitions(__QUICKJS_NG__) set(SOURCES ${SOURCES} # quickjs - ${QJS_SOURCE_DIR}/cutils.c + # NOTE: no cutils.c -- upstream folded it away after v0.11.0; the + # pinned commit no longer ships it. ${QJS_SOURCE_DIR}/libregexp.c ${QJS_SOURCE_DIR}/libunicode.c ${QJS_SOURCE_DIR}/quickjs.c diff --git a/platforms/android/tools/patches/README.md b/platforms/android/tools/patches/README.md index 4f4aada16..ddde871b2 100644 --- a/platforms/android/tools/patches/README.md +++ b/platforms/android/tools/patches/README.md @@ -1,46 +1,53 @@ # Engine source patches -The QuickJS / QuickJS-NG engine sources under -`test-app/runtime/src/main/cpp/napi/quickjs/{source,source_ng}` are git submodules +The QuickJS-NG engine source under `vendor/quickjs/source_ng` is a git submodule pinned to an upstream commit. Our hand-written NativeScript changes are kept here -as patches applied on top of that pristine checkout, rather than baked into a +as a patch applied on top of that pristine checkout, rather than baked into a vendored copy. ``` tools/patches/ - quickjs/ 0001-nativescript-local-changes.patch (bellard/quickjs) quickjs_ng/ 0001-nativescript-local-changes.patch (quickjs-ng/quickjs) ``` -Both patches touch only `quickjs.c` / `quickjs.h`, which is where all our edits -live: the `USE_HOST_OBJECT` host-object hooks in `JS_GetPropertyInternal` (host +QuickJS-NG is the only QuickJS lane left: the bellard tree was dropped, and +`QUICKJS` is an alias for `QUICKJS_NG` (see `test-app/runtime/build.gradle`). + +The patch touches nine files. Most of the change is in `quickjs.c` / `quickjs.h` +-- the `USE_HOST_OBJECT` host-object hooks in `JS_GetPropertyInternal` (host objects act as a non-masking prototype fallback) and the functions after the -`/* CUSTOM */` marker at the bottom of each file. +`/* CUSTOM */` marker -- plus tvOS/watchOS support in `CMakeLists.txt`, +`meson.build` and `quickjs-libc.c`, and a few upstream fixes backported ahead of +the pin (`cutils.h`, `dtoa.c`, `dtoa.h`, `libregexp.c`). ## Managing them -`scripts/vendor-engines-as-submodules.sh` owns this setup: +The patch is generated by diffing the working tree against the pinned commit: + +``` +git -C vendor/quickjs/source_ng diff > platforms/android/tools/patches/quickjs_ng/0001-nativescript-local-changes.patch +``` -- **quickjs** patch is *auto-generated* by diffing the submodule against upstream - (the vendored base tracks bellard master closely, so the diff is exactly our - edits). -- **quickjs_ng** patch is *hand-migrated* and used as-is (`ENGINE_PATCH_MODE=manual`). - The old vendored source was v0.15.1 (BC_VERSION 26) while the submodule is pinned - to master `d950d55` (BC_VERSION 27), so a diff can't isolate our edits — the - patch was ported onto master by hand and verified to compile. +Because the submodule work tree is patched in place it is always dirty, which is +expected -- `.gitmodules` sets `ignore = dirty` so `git status` stays quiet. Edit +the engine by editing that work tree, then regenerate the patch with the command +above. On a fresh checkout / in CI: ``` -git submodule update --init \ - test-app/runtime/src/main/cpp/napi/quickjs/source \ - test-app/runtime/src/main/cpp/napi/quickjs/source_ng -scripts/vendor-engines-as-submodules.sh --apply-only +node platforms/android/scripts/setup.js ``` +which runs `git submodule update --init --force`, hard-resets the submodule to +the pinned commit, and re-applies the patch. It is idempotent. + ## Compatibility The submodule commit sets the engine's `BC_VERSION`. The compile-time bytecode CLI (see `.github/workflows/bytecode-compilers.yml`) MUST be built from the same -commit, or `JS_ReadObject` will reject the produced bytecode at runtime. Keep the -workflow refs and the submodule pins in lock-step. +commit, or `JS_ReadObject` rejects the produced bytecode at runtime and the app +dies on launch with `SyntaxError: invalid version (N expected=M)`. Keep the +workflow ref and the submodule pin in lock-step. + +Current pin: `6a9fe9af5ca0bf7c49ae697edef44864272317d1` (v0.11.0, `BC_VERSION 21`). diff --git a/platforms/android/tools/patches/quickjs/0001-nativescript-local-changes.patch b/platforms/android/tools/patches/quickjs/0001-nativescript-local-changes.patch deleted file mode 100644 index 2079b8a89..000000000 --- a/platforms/android/tools/patches/quickjs/0001-nativescript-local-changes.patch +++ /dev/null @@ -1,304 +0,0 @@ -diff --git a/VERSION b/VERSION -deleted file mode 100644 -index ba2d8bc..0000000 ---- a/VERSION -+++ /dev/null -@@ -1 +0,0 @@ --2026-06-04 -diff --git a/quickjs.c b/quickjs.c -index e3716a4..f017812 100644 ---- a/quickjs.c -+++ b/quickjs.c -@@ -341,6 +341,7 @@ struct JSRuntime { - JSGCPhaseEnum gc_phase : 8; - size_t malloc_gc_threshold; - struct list_head weakref_list; /* list of JSWeakRefHeader.link */ -+ struct list_head weakref_keepalive_list; /* strong refs kept until the current host job completes */ - #ifdef DUMP_LEAKS - struct list_head string_list; /* list of JSString.link */ - #endif -@@ -419,6 +420,11 @@ typedef struct JSStackFrame { - JSValue *cur_sp; - } JSStackFrame; - -+typedef struct JSWeakRefKeepAliveEntry { -+ struct list_head link; -+ JSValue value; -+} JSWeakRefKeepAliveEntry; -+ - typedef enum { - JS_GC_OBJ_TYPE_JS_OBJECT, - JS_GC_OBJ_TYPE_FUNCTION_BYTECODE, -@@ -2087,6 +2093,7 @@ JSRuntime *JS_NewRuntime2(const JSMallocFunctions *mf, void *opaque) - init_list_head(&rt->gc_zero_ref_count_list); - rt->gc_phase = JS_GC_PHASE_NONE; - init_list_head(&rt->weakref_list); -+ init_list_head(&rt->weakref_keepalive_list); - - #ifdef DUMP_LEAKS - init_list_head(&rt->string_list); -@@ -2417,6 +2424,7 @@ void JS_FreeRuntime(JSRuntime *rt) - js_free_rt(rt, e); - } - init_list_head(&rt->job_list); -+ JS_ClearWeakRefKeepAlives(rt); - - /* don't remove the weak objects to avoid create new jobs with - FinalizationRegistry */ -@@ -7223,7 +7231,7 @@ void JS_ComputeMemoryUsage(JSRuntime *rt, JSMemoryUsage *s) - - void JS_DumpMemoryUsage(FILE *fp, const JSMemoryUsage *s, JSRuntime *rt) - { -- fprintf(fp, "QuickJS memory usage -- " CONFIG_VERSION " version, %d-bit, malloc limit: %"PRId64"\n\n", -+ fprintf(fp, "QuickJS memory usage -- version, %d-bit, malloc limit: %"PRId64"\n\n", - (int)sizeof(void *) * 8, s->malloc_limit); - #if 1 - if (rt) { -@@ -7632,7 +7640,9 @@ static BOOL is_backtrace_needed(JSContext *ctx, JSValueConst obj) - - JSValue JS_NewError(JSContext *ctx) - { -- return JS_NewObjectClass(ctx, JS_CLASS_ERROR); -+ JSValue error = JS_NewObjectClass(ctx, JS_CLASS_ERROR); -+ build_backtrace(ctx, error, NULL, 0, 0, 0); -+ return error; - } - - static JSValue JS_ThrowError2(JSContext *ctx, JSErrorEnum error_num, -@@ -8207,6 +8217,13 @@ static int JS_AutoInitProperty(JSContext *ctx, JSObject *p, JSAtom prop, - return 0; - } - -+#ifdef USE_HOST_OBJECT -+/* NativeScript host-object exotic methods (defined in quickjs-api.c). Compared -+ by address below so the get_property handler can be treated as a non-masking -+ fallback for host objects only, leaving Proxy (js_proxy_get) authoritative. */ -+extern JSClassExoticMethods NapiHostObjectExoticMethods; -+#endif -+ - JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, - JSAtom prop, JSValueConst this_obj, - BOOL throw_ref_error) -@@ -8215,6 +8232,11 @@ JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, - JSProperty *pr; - JSShapeProperty *prs; - uint32_t tag; -+#ifdef USE_HOST_OBJECT -+ /* A host object whose get_property we deferred: the prototype chain is -+ consulted first, and this is called only if nothing was found. */ -+ JSObject *deferred_host = NULL; -+#endif - - tag = JS_VALUE_GET_TAG(obj); - if (unlikely(tag != JS_TAG_OBJECT)) { -@@ -8319,14 +8341,27 @@ JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em) { - if (em->get_property) { -- JSValue obj1, retval; -- /* XXX: should pass throw_ref_error */ -- /* Note: if 'p' is a prototype, it can be -- freed in the called function */ -- obj1 = JS_DupValue(ctx, JS_MKPTR(JS_TAG_OBJECT, p)); -- retval = em->get_property(ctx, obj1, prop, this_obj); -- JS_FreeValue(ctx, obj1); -- return retval; -+#ifdef USE_HOST_OBJECT -+ /* NativeScript host objects use get_property as a -+ NON-masking fallback: defer it so the prototype chain -+ (native methods / field accessors) is consulted first, -+ and call it only if nothing is found (see after loop). -+ Proxy and other exotics stay authoritative. */ -+ if (em == &NapiHostObjectExoticMethods) { -+ if (!deferred_host) -+ deferred_host = p; -+ } else -+#endif -+ { -+ JSValue obj1, retval; -+ /* XXX: should pass throw_ref_error */ -+ /* Note: if 'p' is a prototype, it can be -+ freed in the called function */ -+ obj1 = JS_DupValue(ctx, JS_MKPTR(JS_TAG_OBJECT, p)); -+ retval = em->get_property(ctx, obj1, prop, this_obj); -+ JS_FreeValue(ctx, obj1); -+ return retval; -+ } - } - if (em->get_own_property) { - JSPropertyDescriptor desc; -@@ -8356,6 +8391,17 @@ JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, - if (!p) - break; - } -+#ifdef USE_HOST_OBJECT -+ /* Nothing found on the prototype chain: now consult the deferred host -+ object's get_property (expandos, numeric indices, dynamic members). */ -+ if (deferred_host) { -+ JSValue obj1, retval; -+ obj1 = JS_DupValue(ctx, JS_MKPTR(JS_TAG_OBJECT, deferred_host)); -+ retval = NapiHostObjectExoticMethods.get_property(ctx, obj1, prop, this_obj); -+ JS_FreeValue(ctx, obj1); -+ return retval; -+ } -+#endif - if (unlikely(throw_ref_error)) { - return JS_ThrowReferenceErrorNotDefined(ctx, prop); - } else { -@@ -61179,6 +61225,7 @@ static JSValue js_weakref_constructor(JSContext *ctx, JSValueConst new_target, - wrd->target = js_weakref_new(ctx, arg); - wrd->weakref_header.weakref_type = JS_WEAKREF_TYPE_WEAKREF; - list_add_tail(&wrd->weakref_header.link, &ctx->rt->weakref_list); -+ JS_KeepWeakRefTargetAlive(ctx, arg); - JS_SetOpaque(obj, wrd); - return obj; - } -@@ -61422,3 +61469,112 @@ int JS_AddIntrinsicWeakRef(JSContext *ctx) - JS_FreeValue(ctx, obj); - return 0; - } -+ -+/* CUSTOM */ -+ -+int JS_IsArrayBuffer2(JSContext *ctx, JSValueConst val) -+{ -+ JSObject *p; -+ if (JS_VALUE_GET_TAG(val) == JS_TAG_OBJECT) { -+ p = JS_VALUE_GET_OBJ(val); -+ return p->class_id == JS_CLASS_ARRAY_BUFFER || p->class_id == JS_CLASS_SHARED_ARRAY_BUFFER; -+ } else { -+ return false; -+ } -+} -+ -+JSValue JS_NewString16(JSContext *ctx, const uint16_t *buf, int len) -+{ -+ return js_new_string16_len(ctx, buf, len); -+} -+ -+JSValue JS_GetPropertyInt64_2(JSContext *ctx, JSValueConst obj, int64_t idx) { -+ return JS_GetPropertyInt64(ctx, obj, idx); -+} -+ -+JSValue JS_WeakRef_Deref(JSContext *ctx, JSValueConst this_val) { -+ return js_weakref_deref(ctx, this_val, 0, NULL); -+} -+ -+void JS_KeepWeakRefTargetAlive(JSContext *ctx, JSValueConst value) -+{ -+ JSRuntime *rt; -+ JSWeakRefKeepAliveEntry *entry; -+ -+ if (!js_weakref_is_target(value)) -+ return; -+ -+ rt = JS_GetRuntime(ctx); -+ entry = js_malloc(ctx, sizeof(*entry)); -+ if (!entry) -+ return; -+ -+ entry->value = JS_DupValue(ctx, value); -+ list_add_tail(&entry->link, &rt->weakref_keepalive_list); -+} -+ -+void JS_ClearWeakRefKeepAlives(JSRuntime *rt) -+{ -+ struct list_head *el, *el1; -+ -+ list_for_each_safe(el, el1, &rt->weakref_keepalive_list) { -+ JSWeakRefKeepAliveEntry *entry = list_entry(el, JSWeakRefKeepAliveEntry, link); -+ list_del(&entry->link); -+ JS_FreeValueRT(rt, entry->value); -+ js_free_rt(rt, entry); -+ } -+} -+ -+int JS_GetLength(JSContext *ctx, JSValueConst obj, int64_t *pres) { -+ return js_get_length64(ctx, pres, obj); -+} -+ -+ -+static bool is_typed_array(JSClassID class_id) -+{ -+ return class_id >= JS_CLASS_UINT8C_ARRAY && class_id <= JS_CLASS_FLOAT64_ARRAY; -+} -+ -+int JS_GetTypedArrayType(JSValueConst obj) -+{ -+ JSClassID class_id = JS_GetClassID(obj); -+ if (is_typed_array(class_id)) -+ return class_id - JS_CLASS_UINT8C_ARRAY; -+ else -+ return -1; -+} -+ -+JS_BOOL JS_IsDataView(JSValueConst val) -+{ -+ return JS_CLASS_DATAVIEW == JS_GetClassID(val); -+} -+ -+int JS_ToBigUint64(JSContext *ctx, uint64_t *pres, JSValueConst val) -+{ -+ return JS_ToBigInt64Free(ctx, (int64_t *)pres, JS_DupValue(ctx, val)); -+} -+ -+JS_BOOL JS_IsStrictEqual(JSContext *ctx, JSValueConst op1, JSValueConst op2) -+{ -+ return js_strict_eq2(ctx, JS_DupValue(ctx, op1), JS_DupValue(ctx,op2), JS_EQ_STRICT); -+} -+ -+int JS_SealObject(JSContext *ctx, JSValueConst obj) -+{ -+ JSValue value = js_object_seal(ctx, JS_UNDEFINED, 1, &obj, 0); -+ int result = JS_IsException(value) ? -1 : true; -+ JS_FreeValue(ctx, value); -+ return result; -+} -+ -+int JS_FreezeObject(JSContext *ctx, JSValueConst obj) -+{ -+ JSValue value = js_object_seal(ctx, JS_UNDEFINED, 1, &obj, 1); -+ int result = JS_IsException(value) ? -1 : true; -+ JS_FreeValue(ctx, value); -+ return result; -+} -+ -+size_t JS_GetGCThreshold(JSRuntime *rt) { -+ return rt->malloc_gc_threshold; -+} -diff --git a/quickjs.h b/quickjs.h -index 476d735..05bc181 100644 ---- a/quickjs.h -+++ b/quickjs.h -@@ -409,6 +409,8 @@ int JS_AddIntrinsicMapSet(JSContext *ctx); - int JS_AddIntrinsicTypedArrays(JSContext *ctx); - int JS_AddIntrinsicPromise(JSContext *ctx); - int JS_AddIntrinsicWeakRef(JSContext *ctx); -+void JS_KeepWeakRefTargetAlive(JSContext *ctx, JSValueConst value); -+void JS_ClearWeakRefKeepAlives(JSRuntime *rt); - - JSValue js_string_codePointRange(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv); -@@ -1170,6 +1172,22 @@ void JS_PrintValueRT(JSRuntime *rt, JSPrintValueWrite *write_func, void *write_o - void JS_PrintValue(JSContext *ctx, JSPrintValueWrite *write_func, void *write_opaque, - JSValueConst val, const JSPrintValueOptions *options); - -+/* CUSTOM */ -+ -+int JS_IsArrayBuffer2(JSContext *ctx, JSValueConst val); -+JSValue JS_NewString16(JSContext *ctx, const uint16_t *buf, int len); -+JSValue JS_GetPropertyInt64_2(JSContext *ctx, JSValueConst obj, int64_t idx); -+JSValue JS_WeakRef_Deref(JSContext *ctx, JSValueConst this_val); -+int JS_GetLength(JSContext *ctx, JSValueConst obj, int64_t *pres); -+int JS_GetTypedArrayType(JSValueConst obj); -+JS_BOOL JS_IsDataView(JSValueConst val); -+int JS_ToBigUint64(JSContext *ctx, uint64_t *pres, JSValueConst val); -+JS_BOOL JS_IsStrictEqual(JSContext *ctx, JSValueConst op1, JSValueConst op2); -+int JS_SealObject(JSContext *ctx, JSValueConst obj); -+int JS_FreezeObject(JSContext *ctx, JSValueConst obj); -+size_t JS_GetGCThreshold(JSRuntime *rt); -+ -+ - #undef js_unlikely - #undef js_force_inline - diff --git a/platforms/android/tools/patches/quickjs_ng/0001-nativescript-local-changes.patch b/platforms/android/tools/patches/quickjs_ng/0001-nativescript-local-changes.patch index bd79a1661..0704ffcd0 100644 --- a/platforms/android/tools/patches/quickjs_ng/0001-nativescript-local-changes.patch +++ b/platforms/android/tools/patches/quickjs_ng/0001-nativescript-local-changes.patch @@ -1,5 +1,5 @@ diff --git a/quickjs.c b/quickjs.c -index 9053c26..83233d1 100644 +index 9053c26..7227326 100644 --- a/quickjs.c +++ b/quickjs.c @@ -379,6 +379,7 @@ struct JSRuntime { @@ -118,7 +118,17 @@ index 9053c26..83233d1 100644 if (unlikely(throw_ref_error)) { return JS_ThrowReferenceErrorNotDefined(ctx, prop); } else { -@@ -62187,6 +62231,7 @@ static JSValue js_weakref_constructor(JSContext *ctx, JSValueConst new_target, +@@ -37877,7 +37921,8 @@ static JSValue __JS_EvalInternal(JSContext *ctx, JSValueConst this_obj, + /* Could add a flag to avoid resolution if necessary */ + if (m) { + m->func_obj = fun_obj; +- if (js_resolve_module(ctx, m) < 0) ++ if (!(flags & JS_EVAL_FLAG_COMPILE_ONLY_NO_RESOLVE) && ++ js_resolve_module(ctx, m) < 0) + goto fail1; + fun_obj = JS_NewModuleValue(ctx, m); + } +@@ -62187,6 +62232,7 @@ static JSValue js_weakref_constructor(JSContext *ctx, JSValueConst new_target, wr->kind = JS_WEAK_REF_KIND_WEAK_REF; wr->u.weak_ref_data = wrd; insert_weakref_record(arg, wr); @@ -126,7 +136,7 @@ index 9053c26..83233d1 100644 JS_SetOpaqueInternal(obj, wrd); return obj; -@@ -62549,6 +62594,35 @@ static void insert_weakref_record(JSValueConst target, +@@ -62549,6 +62595,35 @@ static void insert_weakref_record(JSValueConst target, *pwr = wr; } @@ -162,7 +172,7 @@ index 9053c26..83233d1 100644 /* CallSite */ static void js_callsite_finalizer(JSRuntime *rt, JSValueConst val) -@@ -63992,6 +64066,32 @@ uintptr_t js_std_cmd(int cmd, ...) { +@@ -63992,6 +64067,32 @@ uintptr_t js_std_cmd(int cmd, ...) { return rv; } @@ -196,10 +206,20 @@ index 9053c26..83233d1 100644 #undef free #undef realloc diff --git a/quickjs.h b/quickjs.h -index 6763f83..36c1f82 100644 +index 6763f83..9fb1860 100644 --- a/quickjs.h +++ b/quickjs.h -@@ -557,6 +557,8 @@ JS_EXTERN int JS_AddIntrinsicTypedArrays(JSContext *ctx); +@@ -456,6 +456,9 @@ static inline bool JS_VALUE_IS_NAN(JSValue v) + JS_TAG_FUNCTION_BYTECODE or JS_TAG_MODULE tag. It can be executed + with JS_EvalFunction(). */ + #define JS_EVAL_FLAG_COMPILE_ONLY (1 << 5) ++/* NativeScript: compile a module without resolving its imports yet. Reuses the ++ unused bit; consumed in JS_EvalThis. Needed by the Apple node:vm module. */ ++#define JS_EVAL_FLAG_COMPILE_ONLY_NO_RESOLVE JS_EVAL_FLAG_UNUSED + /* don't include the stack frames before this eval in the Error() backtraces */ + #define JS_EVAL_FLAG_BACKTRACE_BARRIER (1 << 6) + /* allow top-level await in normal script. JS_Eval() returns a +@@ -557,6 +560,8 @@ JS_EXTERN int JS_AddIntrinsicTypedArrays(JSContext *ctx); JS_EXTERN int JS_AddIntrinsicPromise(JSContext *ctx); JS_EXTERN int JS_AddIntrinsicBigInt(JSContext *ctx); JS_EXTERN int JS_AddIntrinsicWeakRef(JSContext *ctx); @@ -208,7 +228,7 @@ index 6763f83..36c1f82 100644 JS_EXTERN int JS_AddPerformance(JSContext *ctx); JS_EXTERN int JS_AddIntrinsicDOMException(JSContext *ctx); JS_EXTERN int JS_AddIntrinsicAToB(JSContext *ctx); -@@ -1428,6 +1430,13 @@ JS_EXTERN int JS_SetModuleExport(JSContext *ctx, JSModuleDef *m, const char *exp +@@ -1428,6 +1433,13 @@ JS_EXTERN int JS_SetModuleExport(JSContext *ctx, JSModuleDef *m, const char *exp JS_EXTERN int JS_SetModuleExportList(JSContext *ctx, JSModuleDef *m, const JSCFunctionListEntry *tab, int len); diff --git a/vendor/quickjs/source_ng/CMakeLists.txt b/vendor/quickjs/source_ng/CMakeLists.txt deleted file mode 100755 index f2ada27e9..000000000 --- a/vendor/quickjs/source_ng/CMakeLists.txt +++ /dev/null @@ -1,461 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -project(quickjs LANGUAGES C) - -include(CheckCCompilerFlag) -include(GNUInstallDirs) - -set(CMAKE_C_VISIBILITY_PRESET hidden) -set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_C_EXTENSIONS ON) -set(CMAKE_C_STANDARD 11) - -# MINGW doesn't exist in older cmake versions, newer versions don't know -# about CMAKE_COMPILER_IS_MINGW, and there is no unique CMAKE_C_COMPILER_ID -# for mingw-based compilers... -if(MINGW) - # do nothing -elseif(CMAKE_C_COMPILER MATCHES "mingw") - set(MINGW TRUE) -else() - set(MINGW FALSE) -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "tvOS") - set(TVOS TRUE) -else() - set(TVOS FALSE) -endif() -if(CMAKE_SYSTEM_NAME STREQUAL "watchOS") - set(WATCHOS TRUE) -else() - set(WATCHOS FALSE) -endif() - -if(NOT CMAKE_BUILD_TYPE) - message(STATUS "No build type selected, default to Release") - set(CMAKE_BUILD_TYPE "Release") -endif() - -message(STATUS "Building in ${CMAKE_BUILD_TYPE} mode") -message(STATUS "Building with ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION} on ${CMAKE_SYSTEM}") - -macro(xcheck_add_c_compiler_flag FLAG) - string(REPLACE "-" "" FLAG_NO_HYPHEN ${FLAG}) - check_c_compiler_flag(${FLAG} COMPILER_SUPPORTS_${FLAG_NO_HYPHEN}) - if(COMPILER_SUPPORTS_${FLAG_NO_HYPHEN}) - add_compile_options(${FLAG}) - endif() -endmacro() - -xcheck_add_c_compiler_flag(-Wall) -if(NOT MSVC AND NOT IOS AND NOT TVOS AND NOT WATCHOS) - xcheck_add_c_compiler_flag(-Werror) - xcheck_add_c_compiler_flag(-Wextra) -endif() -xcheck_add_c_compiler_flag(-Wformat=2) -xcheck_add_c_compiler_flag(-Wno-implicit-fallthrough) -xcheck_add_c_compiler_flag(-Wno-sign-compare) -xcheck_add_c_compiler_flag(-Wno-missing-field-initializers) -xcheck_add_c_compiler_flag(-Wno-unused-parameter) -xcheck_add_c_compiler_flag(-Wno-unused-but-set-variable) -xcheck_add_c_compiler_flag(-Wno-unused-result) -xcheck_add_c_compiler_flag(-Wno-stringop-truncation) -xcheck_add_c_compiler_flag(-Wno-array-bounds) -xcheck_add_c_compiler_flag(-funsigned-char) - -# ClangCL is command line compatible with MSVC, so 'MSVC' is set. -if(MSVC) - xcheck_add_c_compiler_flag(-Wno-unsafe-buffer-usage) - xcheck_add_c_compiler_flag(-Wno-sign-conversion) - xcheck_add_c_compiler_flag(-Wno-nonportable-system-include-path) - xcheck_add_c_compiler_flag(-Wno-implicit-int-conversion) - xcheck_add_c_compiler_flag(-Wno-shorten-64-to-32) - xcheck_add_c_compiler_flag(-Wno-reserved-macro-identifier) - xcheck_add_c_compiler_flag(-Wno-reserved-identifier) - xcheck_add_c_compiler_flag(-Wdeprecated-declarations) - xcheck_add_c_compiler_flag(/experimental:c11atomics) - xcheck_add_c_compiler_flag(/wd4018) # -Wno-sign-conversion - xcheck_add_c_compiler_flag(/wd4061) # -Wno-implicit-fallthrough - xcheck_add_c_compiler_flag(/wd4100) # -Wno-unused-parameter - xcheck_add_c_compiler_flag(/wd4200) # -Wno-zero-length-array - xcheck_add_c_compiler_flag(/wd4242) # -Wno-shorten-64-to-32 - xcheck_add_c_compiler_flag(/wd4244) # -Wno-shorten-64-to-32 - xcheck_add_c_compiler_flag(/wd4245) # -Wno-sign-compare - xcheck_add_c_compiler_flag(/wd4267) # -Wno-shorten-64-to-32 - xcheck_add_c_compiler_flag(/wd4388) # -Wno-sign-compare - xcheck_add_c_compiler_flag(/wd4389) # -Wno-sign-compare - xcheck_add_c_compiler_flag(/wd4456) # Hides previous local declaration - xcheck_add_c_compiler_flag(/wd4457) # Hides function parameter - xcheck_add_c_compiler_flag(/wd4710) # Function not inlined - xcheck_add_c_compiler_flag(/wd4711) # Function was inlined - xcheck_add_c_compiler_flag(/wd4820) # Padding added after construct - xcheck_add_c_compiler_flag(/wd4996) # -Wdeprecated-declarations - xcheck_add_c_compiler_flag(/wd5045) # Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified -endif() - -# Set a 8MB default stack size on Windows. -# It defaults to 1MB on MSVC, which is the same as our current JS stack size, -# so it will overflow and crash otherwise. -# On MinGW it defaults to 2MB. -if(WIN32) - if(MSVC) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:8388608") - else() - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,8388608") - endif() -endif() - -# MacOS and GCC 11 or later need -Wno-maybe-uninitialized -# https://github.com/quickjs-ng/quickjs/issues/453 -if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11) - xcheck_add_c_compiler_flag(-Wno-maybe-uninitialized) -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "WASI") - add_compile_definitions( - _WASI_EMULATED_PROCESS_CLOCKS - _WASI_EMULATED_SIGNAL - ) - add_link_options( - -lwasi-emulated-process-clocks - -lwasi-emulated-signal - ) -endif() - -if(CMAKE_BUILD_TYPE MATCHES "Debug") - xcheck_add_c_compiler_flag(/Od) - xcheck_add_c_compiler_flag(-O0) - xcheck_add_c_compiler_flag(-ggdb) - xcheck_add_c_compiler_flag(-fno-omit-frame-pointer) -endif() - -macro(xoption OPTION_NAME OPTION_TEXT OPTION_DEFAULT) - option(${OPTION_NAME} ${OPTION_TEXT} ${OPTION_DEFAULT}) - if(DEFINED ENV{${OPTION_NAME}}) - # Allow setting the option through an environment variable. - set(${OPTION_NAME} $ENV{${OPTION_NAME}}) - endif() - if(${OPTION_NAME}) - add_definitions(-D${OPTION_NAME}) - endif() - message(STATUS " ${OPTION_NAME}: ${${OPTION_NAME}}") -endmacro() - -xoption(BUILD_SHARED_LIBS "Build a shared library" OFF) -if(BUILD_SHARED_LIBS) - message(STATUS "Building a shared library") -endif() - -# note: QJS_ENABLE_TSAN is currently incompatible with the other sanitizers but we -# don't explicitly check for that because who knows what the future will bring? -# QJS_ENABLE_MSAN only works with clang at the time of writing; also not checked -# for the same reason -xoption(QJS_BUILD_EXAMPLES "Build examples" OFF) -xoption(QJS_BUILD_CLI_STATIC "Build a static qjs executable" OFF) -xoption(QJS_BUILD_CLI_WITH_MIMALLOC "Build the qjs executable with mimalloc" OFF) -xoption(QJS_BUILD_CLI_WITH_STATIC_MIMALLOC "Build the qjs executable with mimalloc (statically linked)" OFF) -xoption(QJS_DISABLE_PARSER "Disable JS source code parser" OFF) -xoption(QJS_ENABLE_ASAN "Enable AddressSanitizer (ASan)" OFF) -xoption(QJS_ENABLE_MSAN "Enable MemorySanitizer (MSan)" OFF) -xoption(QJS_ENABLE_TSAN "Enable ThreadSanitizer (TSan)" OFF) -xoption(QJS_ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF) - -if(QJS_ENABLE_ASAN) -message(STATUS "Building with ASan") -add_compile_options( - -fsanitize=address - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -add_link_options( - -fsanitize=address - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -endif() - -if(QJS_ENABLE_MSAN) -message(STATUS "Building with MSan") -add_compile_options( - -fsanitize=memory - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -add_link_options( - -fsanitize=memory - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -endif() - -if(QJS_ENABLE_TSAN) -message(STATUS "Building with TSan") -add_compile_options( - -fsanitize=thread - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -add_link_options( - -fsanitize=thread - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -endif() - -if(QJS_ENABLE_UBSAN) -message(STATUS "Building with UBSan") -add_compile_options( - -fsanitize=undefined - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -add_link_options( - -fsanitize=undefined - -fno-sanitize-recover=all - -fno-omit-frame-pointer -) -endif() - - -# QuickJS library -# - -xoption(QJS_BUILD_LIBC "Build standard library modules as part of the library" OFF) -macro(add_qjs_libc_if_needed target) - if(NOT QJS_BUILD_LIBC) - target_sources(${target} PRIVATE quickjs-libc.c) - endif() -endmacro() -macro(add_static_if_needed target) - if(QJS_BUILD_CLI_STATIC OR MINGW) - target_link_options(${target} PRIVATE -static) - if(MINGW) - target_link_options(${target} PRIVATE -static-libgcc) - endif() - endif() -endmacro() - -set(qjs_sources - cutils.c - dtoa.c - libregexp.c - libunicode.c - quickjs.c -) - -if(QJS_BUILD_LIBC) - list(APPEND qjs_sources quickjs-libc.c) -endif() -list(APPEND qjs_defines _GNU_SOURCE) -if(WIN32) - # NB: Windows 7 is EOL and we are only supporting in so far as it doesn't interfere with progress. - list(APPEND qjs_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0601) -endif() -if(TVOS) - list(APPEND qjs_defines _TVOS) -endif() -if(WATCHOS) - list(APPEND qjs_defines _WATCHOS) -endif() -list(APPEND qjs_libs ${CMAKE_DL_LIBS}) -find_package(Threads) -if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI") - list(APPEND qjs_libs ${CMAKE_THREAD_LIBS_INIT}) -endif() - -# try to find libm -find_library(M_LIBRARIES m) -if(M_LIBRARIES OR CMAKE_C_COMPILER_ID STREQUAL "TinyCC") - list(APPEND qjs_libs m) -endif() - -add_library(qjs ${qjs_sources}) -target_compile_definitions(qjs PRIVATE ${qjs_defines}) -target_include_directories(qjs PUBLIC - $ - $ -) -target_link_libraries(qjs PUBLIC ${qjs_libs}) - -if(EMSCRIPTEN) - add_executable(qjs_wasm ${qjs_sources}) - target_link_options(qjs_wasm PRIVATE - # in emscripten 3.x, this will be set to 16k which is too small for quickjs. #write sth. to force github rebuild - -sSTACK_SIZE=2097152 # let it be 2m = 2 * 1024 * 1024 = 2097152, otherwise, stack overflow may be occured at bootstrap - -sNO_INVOKE_RUN - -sNO_EXIT_RUNTIME - -sMODULARIZE # do not mess the global - -sEXPORT_ES6 # export js file to morden es module - -sEXPORT_NAME=getQuickJs # give a name - -sTEXTDECODER=1 # it will be 2 if we use -Oz, and that will cause js -> c string convertion fail - -sNO_DEFAULT_TO_CXX # this project is pure c project, no need for c plus plus handle - -sEXPORTED_RUNTIME_METHODS=ccall,cwrap - ) - target_compile_definitions(qjs_wasm PRIVATE ${qjs_defines}) - target_link_libraries(qjs_wasm m) -endif() - - -# QuickJS bytecode compiler -# - -add_executable(qjsc - qjsc.c -) -add_qjs_libc_if_needed(qjsc) -add_static_if_needed(qjsc) -target_compile_definitions(qjsc PRIVATE ${qjs_defines}) -target_link_libraries(qjsc qjs) - - -# QuickJS CLI -# - -add_executable(qjs_exe - gen/repl.c - gen/standalone.c - qjs.c -) -add_qjs_libc_if_needed(qjs_exe) -add_static_if_needed(qjs_exe) -set_target_properties(qjs_exe PROPERTIES - OUTPUT_NAME "qjs" -) -target_compile_definitions(qjs_exe PRIVATE ${qjs_defines}) -target_link_libraries(qjs_exe qjs) -if(NOT WIN32) - set_target_properties(qjs_exe PROPERTIES ENABLE_EXPORTS TRUE) -endif() -if(QJS_BUILD_CLI_WITH_MIMALLOC OR QJS_BUILD_CLI_WITH_STATIC_MIMALLOC) - find_package(mimalloc REQUIRED) - # Upstream mimalloc doesn't provide a way to know if both libraries are supported. - if(QJS_BUILD_CLI_WITH_STATIC_MIMALLOC) - target_link_libraries(qjs_exe mimalloc-static) - else() - target_link_libraries(qjs_exe mimalloc) - endif() -endif() - -# Test262 runner -# - -if(NOT EMSCRIPTEN) - add_executable(run-test262 - run-test262.c - ) - add_qjs_libc_if_needed(run-test262) - target_compile_definitions(run-test262 PRIVATE ${qjs_defines}) - target_link_libraries(run-test262 qjs) -endif() - -# Interrupt test -# - -add_executable(api-test - api-test.c -) -target_compile_definitions(api-test PRIVATE ${qjs_defines}) -target_link_libraries(api-test qjs) - -# Unicode generator -# - -add_executable(unicode_gen EXCLUDE_FROM_ALL - cutils.c - libunicode.c - unicode_gen.c -) -target_compile_definitions(unicode_gen PRIVATE ${qjs_defines}) - -add_executable(function_source - gen/function_source.c -) -add_qjs_libc_if_needed(function_source) -target_include_directories(function_source PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -target_compile_definitions(function_source PRIVATE ${qjs_defines}) -target_link_libraries(function_source qjs) - -# Examples -# - -if(QJS_BUILD_EXAMPLES) - add_executable(hello - gen/hello.c - ) - add_qjs_libc_if_needed(hello) - target_include_directories(hello PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - target_compile_definitions(hello PRIVATE ${qjs_defines}) - target_link_libraries(hello qjs) - - add_executable(hello_module - gen/hello_module.c - ) - add_qjs_libc_if_needed(hello_module) - target_include_directories(hello_module PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - target_compile_definitions(hello_module PRIVATE ${qjs_defines}) - target_link_libraries(hello_module qjs) - - add_library(fib MODULE examples/fib.c) - set_target_properties(fib PROPERTIES - PREFIX "" - C_VISIBILITY_PRESET default - ) - target_compile_definitions(fib PRIVATE JS_SHARED_LIBRARY) - if(WIN32) - target_link_libraries(fib qjs) - elseif(APPLE) - target_link_options(fib PRIVATE -undefined dynamic_lookup) - endif() - - add_library(point MODULE examples/point.c) - set_target_properties(point PROPERTIES - PREFIX "" - C_VISIBILITY_PRESET default - ) - target_compile_definitions(point PRIVATE JS_SHARED_LIBRARY) - if(WIN32) - target_link_libraries(point qjs) - elseif(APPLE) - target_link_options(point PRIVATE -undefined dynamic_lookup) - endif() - - add_executable(test_fib - examples/fib.c - gen/test_fib.c - ) - add_qjs_libc_if_needed(test_fib) - target_include_directories(test_fib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - target_compile_definitions(test_fib PRIVATE ${qjs_defines}) - target_link_libraries(test_fib qjs) -endif() - -# Install target -# - -file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION) -string(REGEX MATCH "QJS_VERSION_MAJOR ([0-9]*)" _ "${quickjs_h}") -set(QJS_VERSION_MAJOR ${CMAKE_MATCH_1}) -string(REGEX MATCH "QJS_VERSION_MINOR ([0-9]*)" _ "${quickjs_h}") -set(QJS_VERSION_MINOR ${CMAKE_MATCH_1}) -string(REGEX MATCH "QJS_VERSION_PATCH ([0-9]*)" _ "${quickjs_h}") -set(QJS_VERSION_PATCH ${CMAKE_MATCH_1}) -set_target_properties(qjs PROPERTIES - VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH} - SOVERSION ${QJS_VERSION_MAJOR} -) -install(FILES quickjs.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -if(QJS_BUILD_LIBC) - install(FILES quickjs-libc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -endif() -if(NOT IOS AND NOT TVOS AND NOT WATCHOS) - install(TARGETS qjs_exe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(TARGETS qjsc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -endif() -install(TARGETS qjs EXPORT qjsConfig - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(EXPORT qjsConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/quickjs) -install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) -install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_DOCDIR}) diff --git a/vendor/quickjs/source_ng/LICENSE b/vendor/quickjs/source_ng/LICENSE deleted file mode 100755 index 3c78b6929..000000000 --- a/vendor/quickjs/source_ng/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017-2024 Fabrice Bellard -Copyright (c) 2017-2024 Charlie Gordon -Copyright (c) 2023-2025 Ben Noordhuis -Copyright (c) 2023-2025 Saúl Ibarra Corretgé - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/quickjs/source_ng/Makefile b/vendor/quickjs/source_ng/Makefile deleted file mode 100755 index 4ff8ca17e..000000000 --- a/vendor/quickjs/source_ng/Makefile +++ /dev/null @@ -1,147 +0,0 @@ -# -# QuickJS Javascript Engine -# -# Copyright (c) 2017-2024 Fabrice Bellard -# Copyright (c) 2017-2024 Charlie Gordon -# Copyright (c) 2023-2025 Ben Noordhuis -# Copyright (c) 2023-2025 Saúl Ibarra Corretgé -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -BUILD_DIR=build -BUILD_TYPE?=Release -INSTALL_PREFIX?=/usr/local - -QJS=$(BUILD_DIR)/qjs -QJSC=$(BUILD_DIR)/qjsc -RUN262=$(BUILD_DIR)/run-test262 - -JOBS?=$(shell getconf _NPROCESSORS_ONLN) -ifeq ($(JOBS),) -JOBS := $(shell sysctl -n hw.ncpu) -endif -ifeq ($(JOBS),) -JOBS := $(shell nproc) -endif -ifeq ($(JOBS),) -JOBS := 4 -endif - -all: $(QJS) - -amalgam: TEMP := $(shell mktemp -d) -amalgam: $(QJS) - $(QJS) amalgam.js $(TEMP)/quickjs-amalgam.c - cp quickjs.h quickjs-libc.h $(TEMP) - cd $(TEMP) && zip -9 quickjs-amalgam.zip quickjs-amalgam.c quickjs.h quickjs-libc.h - cp $(TEMP)/quickjs-amalgam.zip $(BUILD_DIR) - cd $(TEMP) && $(RM) quickjs-amalgam.zip quickjs-amalgam.c quickjs.h quickjs-libc.h - $(RM) -d $(TEMP) - -fuzz: - clang -g -O1 -fsanitize=address,undefined,fuzzer -o fuzz fuzz.c - ./fuzz - -$(BUILD_DIR): - cmake -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) - -$(QJS): $(BUILD_DIR) - cmake --build $(BUILD_DIR) -j $(JOBS) - -$(QJSC): $(BUILD_DIR) - cmake --build $(BUILD_DIR) --target qjsc -j $(JOBS) - -install: $(QJS) $(QJSC) - cmake --build $(BUILD_DIR) --target install - -clean: - cmake --build $(BUILD_DIR) --target clean - -codegen: $(QJSC) - $(QJSC) -ss -o gen/repl.c -m repl.js - $(QJSC) -ss -o gen/standalone.c -m standalone.js - $(QJSC) -e -o gen/function_source.c tests/function_source.js - $(QJSC) -e -o gen/hello.c examples/hello.js - $(QJSC) -e -o gen/hello_module.c -m examples/hello_module.js - $(QJSC) -e -o gen/test_fib.c -m examples/test_fib.js - $(QJSC) -C -ss -o builtin-array-fromasync.h builtin-array-fromasync.js - -debug: - BUILD_TYPE=Debug $(MAKE) - -distclean: - @rm -rf $(BUILD_DIR) - -stats: $(QJS) - $(QJS) -qd - -jscheck: CFLAGS=-I. -D_GNU_SOURCE -DJS_CHECK_JSVALUE -Wall -Werror -fsyntax-only -c -o /dev/null -jscheck: - $(CC) $(CFLAGS) api-test.c - $(CC) $(CFLAGS) ctest.c - $(CC) $(CFLAGS) fuzz.c - $(CC) $(CFLAGS) gen/function_source.c - $(CC) $(CFLAGS) gen/hello.c - $(CC) $(CFLAGS) gen/hello_module.c - $(CC) $(CFLAGS) gen/repl.c - $(CC) $(CFLAGS) gen/standalone.c - $(CC) $(CFLAGS) gen/test_fib.c - $(CC) $(CFLAGS) qjs.c - $(CC) $(CFLAGS) qjsc.c - $(CC) $(CFLAGS) quickjs-libc.c - $(CC) $(CFLAGS) quickjs.c - $(CC) $(CFLAGS) run-test262.c - -# effectively .PHONY because it doesn't generate output -ctest: CFLAGS=-std=c11 -fsyntax-only -Wall -Wextra -Werror -pedantic -ctest: ctest.c quickjs.h - $(CC) $(CFLAGS) -DJS_NAN_BOXING=0 $< - $(CC) $(CFLAGS) -DJS_NAN_BOXING=1 $< - -# effectively .PHONY because it doesn't generate output -cxxtest: CXXFLAGS=-std=c++11 -fsyntax-only -Wall -Wextra -Werror -pedantic -cxxtest: cxxtest.cc quickjs.h - $(CXX) $(CXXFLAGS) -DJS_NAN_BOXING=0 $< - $(CXX) $(CXXFLAGS) -DJS_NAN_BOXING=1 $< - -test: $(QJS) - $(RUN262) -c tests.conf - -test262: $(QJS) - $(RUN262) -m -c test262.conf -a - -test262-fast: $(QJS) - $(RUN262) -m -c test262.conf -c test262-fast.conf -a - -test262-update: $(QJS) - $(RUN262) -u -c test262.conf -a -t 1 - -test262-check: $(QJS) - $(RUN262) -m -c test262.conf -E -a - -microbench: $(QJS) - $(QJS) tests/microbench.js - -unicode_gen: $(BUILD_DIR) - cmake --build $(BUILD_DIR) --target unicode_gen - -libunicode-table.h: unicode_gen - $(BUILD_DIR)/unicode_gen unicode $@ - -.PHONY: all amalgam ctest cxxtest debug fuzz jscheck install clean codegen distclean stats test test262 test262-update test262-check microbench unicode_gen $(QJS) $(QJSC) diff --git a/vendor/quickjs/source_ng/README.md b/vendor/quickjs/source_ng/README.md deleted file mode 100755 index e4b0e34cd..000000000 --- a/vendor/quickjs/source_ng/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# ⚡️ QuickJS - A mighty JavaScript engine - -## Overview - -QuickJS is a small and embeddable JavaScript engine. It aims to support the latest -[ECMAScript] specification. - -This project is a _fork_ of the [original QuickJS project] by Fabrice Bellard and Charlie Gordon, after it went dormant, with the intent of reigniting its development. - -## Getting started - -Head over to the [project website] for instructions on how to get started and more -documentation. - -## Authors - -[@bnoordhuis], [@saghul], and many more [contributors]. - -[ECMAScript]: https://tc39.es/ecma262/ -[original QuickJS project]: https://bellard.org/quickjs -[@bnoordhuis]: https://github.com/bnoordhuis -[@saghul]: https://github.com/saghul -[contributors]: https://github.com/quickjs-ng/quickjs/graphs/contributors -[project website]: https://quickjs-ng.github.io/quickjs/ diff --git a/vendor/quickjs/source_ng/amalgam.js b/vendor/quickjs/source_ng/amalgam.js deleted file mode 100755 index 028d77985..000000000 --- a/vendor/quickjs/source_ng/amalgam.js +++ /dev/null @@ -1,49 +0,0 @@ -import {loadFile, writeFile} from "qjs:std" - -const cutils_c = loadFile("cutils.c") -const cutils_h = loadFile("cutils.h") -const dtoa_c = loadFile("dtoa.c") -const dtoa_h = loadFile("dtoa.h") -const libregexp_c = loadFile("libregexp.c") -const libregexp_h = loadFile("libregexp.h") -const libregexp_opcode_h = loadFile("libregexp-opcode.h") -const libunicode_c = loadFile("libunicode.c") -const libunicode_h = loadFile("libunicode.h") -const libunicode_table_h = loadFile("libunicode-table.h") -const list_h = loadFile("list.h") -const quickjs_atom_h = loadFile("quickjs-atom.h") -const quickjs_c = loadFile("quickjs.c") -const quickjs_c_atomics_h = loadFile("quickjs-c-atomics.h") -const quickjs_h = loadFile("quickjs.h") -const quickjs_libc_c = loadFile("quickjs-libc.c") -const quickjs_libc_h = loadFile("quickjs-libc.h") -const quickjs_opcode_h = loadFile("quickjs-opcode.h") -const gen_builtin_array_fromasync_h = loadFile("builtin-array-fromasync.h") - -let source = "#if defined(QJS_BUILD_LIBC) && defined(__linux__) && !defined(_GNU_SOURCE)\n" - + "#define _GNU_SOURCE\n" - + "#endif\n" - + quickjs_c_atomics_h - + cutils_h - + dtoa_h - + list_h - + libunicode_h // exports lre_is_id_start, used by libregexp.h - + libregexp_h - + libunicode_table_h - + quickjs_h - + quickjs_c - + cutils_c - + dtoa_c - + libregexp_c - + libunicode_c - + "#ifdef QJS_BUILD_LIBC\n" - + quickjs_libc_h - + quickjs_libc_c - + "#endif // QJS_BUILD_LIBC\n" -source = source.replace(/#include "quickjs-atom.h"/g, quickjs_atom_h) -source = source.replace(/#include "quickjs-opcode.h"/g, quickjs_opcode_h) -source = source.replace(/#include "libregexp-opcode.h"/g, libregexp_opcode_h) -source = source.replace(/#include "builtin-array-fromasync.h"/g, - gen_builtin_array_fromasync_h) -source = source.replace(/#include "[^"]+"/g, "") -writeFile(execArgv[2] ?? "quickjs-amalgam.c", source) diff --git a/vendor/quickjs/source_ng/api-test.c b/vendor/quickjs/source_ng/api-test.c deleted file mode 100755 index ef28a4f5f..000000000 --- a/vendor/quickjs/source_ng/api-test.c +++ /dev/null @@ -1,763 +0,0 @@ -#ifdef NDEBUG -#undef NDEBUG -#endif -#include -#include -#include -#include "quickjs.h" -#include "cutils.h" - -static JSValue eval(JSContext *ctx, const char *code) -{ - return JS_Eval(ctx, code, strlen(code), "", JS_EVAL_TYPE_GLOBAL); -} - -static JSValue cfunc_callback(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - return JS_ThrowTypeError(ctx, "from cfunc"); -} - -static JSValue cfuncdata_callback(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, - int magic, JSValueConst *func_data) -{ - return JS_ThrowTypeError(ctx, "from cfuncdata"); -} - -static void cfunctions(void) -{ - uint32_t length; - const char *s; - JSValue ret, stack; - - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - JSValue cfunc = JS_NewCFunction(ctx, cfunc_callback, "cfunc", 42); - JSValue cfuncdata = - JS_NewCFunctionData2(ctx, cfuncdata_callback, "cfuncdata", - /*length*/1337, /*magic*/0, /*data_len*/0, NULL); - JSValue global = JS_GetGlobalObject(ctx); - JS_SetPropertyStr(ctx, global, "cfunc", cfunc); - JS_SetPropertyStr(ctx, global, "cfuncdata", cfuncdata); - JS_FreeValue(ctx, global); - - ret = eval(ctx, "cfunc.name"); - assert(!JS_IsException(ret)); - assert(JS_IsString(ret)); - s = JS_ToCString(ctx, ret); - JS_FreeValue(ctx, ret); - assert(s); - assert(!strcmp(s, "cfunc")); - JS_FreeCString(ctx, s); - ret = eval(ctx, "cfunc.length"); - assert(!JS_IsException(ret)); - assert(JS_IsNumber(ret)); - assert(0 == JS_ToUint32(ctx, &length, ret)); - assert(length == 42); - - ret = eval(ctx, "cfuncdata.name"); - assert(!JS_IsException(ret)); - assert(JS_IsString(ret)); - s = JS_ToCString(ctx, ret); - JS_FreeValue(ctx, ret); - assert(s); - assert(!strcmp(s, "cfuncdata")); - JS_FreeCString(ctx, s); - ret = eval(ctx, "cfuncdata.length"); - assert(!JS_IsException(ret)); - assert(JS_IsNumber(ret)); - assert(0 == JS_ToUint32(ctx, &length, ret)); - assert(length == 1337); - - ret = eval(ctx, "cfunc()"); - assert(JS_IsException(ret)); - ret = JS_GetException(ctx); - assert(JS_IsError(ret)); - stack = JS_GetPropertyStr(ctx, ret, "stack"); - assert(JS_IsString(stack)); - s = JS_ToCString(ctx, stack); - JS_FreeValue(ctx, stack); - assert(s); - assert(!strcmp(s, " at cfunc (native)\n at (:1:1)\n")); - JS_FreeCString(ctx, s); - s = JS_ToCString(ctx, ret); - JS_FreeValue(ctx, ret); - assert(s); - assert(!strcmp(s, "TypeError: from cfunc")); - JS_FreeCString(ctx, s); - - ret = eval(ctx, "cfuncdata()"); - assert(JS_IsException(ret)); - ret = JS_GetException(ctx); - assert(JS_IsError(ret)); - stack = JS_GetPropertyStr(ctx, ret, "stack"); - assert(JS_IsString(stack)); - s = JS_ToCString(ctx, stack); - JS_FreeValue(ctx, stack); - assert(s); - assert(!strcmp(s, " at cfuncdata (native)\n at (:1:1)\n")); - JS_FreeCString(ctx, s); - s = JS_ToCString(ctx, ret); - JS_FreeValue(ctx, ret); - assert(s); - assert(!strcmp(s, "TypeError: from cfuncdata")); - JS_FreeCString(ctx, s); - - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -#define MAX_TIME 10 - -static int timeout_interrupt_handler(JSRuntime *rt, void *opaque) -{ - int *time = (int *)opaque; - if (*time <= MAX_TIME) - *time += 1; - return *time > MAX_TIME; -} - -static void sync_call(void) -{ - static const char code[] = -"(function() { \ - try { \ - while (true) {} \ - } catch (e) {} \ -})();"; - - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - int time = 0; - JS_SetInterruptHandler(rt, timeout_interrupt_handler, &time); - JSValue ret = eval(ctx, code); - assert(time > MAX_TIME); - assert(JS_IsException(ret)); - JS_FreeValue(ctx, ret); - assert(JS_HasException(ctx)); - JSValue e = JS_GetException(ctx); - assert(JS_IsUncatchableError(e)); - JS_FreeValue(ctx, e); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static void async_call(void) -{ - static const char code[] = -"(async function() { \ - const loop = async () => { \ - await Promise.resolve(); \ - while (true) {} \ - }; \ - await loop().catch(() => {}); \ -})();"; - - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - int time = 0; - JS_SetInterruptHandler(rt, timeout_interrupt_handler, &time); - JSValue ret = eval(ctx, code); - assert(!JS_IsException(ret)); - JS_FreeValue(ctx, ret); - assert(JS_IsJobPending(rt)); - int r = 0; - while (JS_IsJobPending(rt)) { - r = JS_ExecutePendingJob(rt, &ctx); - } - assert(time > MAX_TIME); - assert(r == -1); - assert(JS_HasException(ctx)); - JSValue e = JS_GetException(ctx); - assert(JS_IsUncatchableError(e)); - JS_FreeValue(ctx, e); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static JSValue save_value(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - assert(argc == 1); - JSValue *p = (JSValue *)JS_GetContextOpaque(ctx); - *p = JS_DupValue(ctx, argv[0]); - return JS_UNDEFINED; -} - -static void async_call_stack_overflow(void) -{ - static const char code[] = -"(async function() { \ - const f = () => f(); \ - try { \ - await Promise.resolve(); \ - f(); \ - } catch (e) { \ - save_value(e); \ - } \ -})();"; - - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - JSValue value = JS_UNDEFINED; - JS_SetContextOpaque(ctx, &value); - JSValue global = JS_GetGlobalObject(ctx); - JS_SetPropertyStr(ctx, global, "save_value", JS_NewCFunction(ctx, save_value, "save_value", 1)); - JS_FreeValue(ctx, global); - JSValue ret = eval(ctx, code); - assert(!JS_IsException(ret)); - JS_FreeValue(ctx, ret); - assert(JS_IsJobPending(rt)); - int r = 0; - while (JS_IsJobPending(rt)) { - r = JS_ExecutePendingJob(rt, &ctx); - } - assert(r == 1); - assert(!JS_HasException(ctx)); - assert(JS_IsError(value)); // stack overflow should be caught - JS_FreeValue(ctx, value); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -// https://github.com/quickjs-ng/quickjs/issues/914 -static void raw_context_global_var(void) -{ - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContextRaw(rt); - JS_AddIntrinsicEval(ctx); - { - JSValue ret = eval(ctx, "globalThis"); - assert(JS_IsException(ret)); - JS_FreeValue(ctx, ret); - } - { - JSValue ret = eval(ctx, "var x = 42"); - assert(JS_IsUndefined(ret)); - JS_FreeValue(ctx, ret); - } - { - JSValue ret = eval(ctx, "function f() {}"); - assert(JS_IsUndefined(ret)); - JS_FreeValue(ctx, ret); - } - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static void is_array(void) -{ - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - { - JSValue ret = eval(ctx, "[]"); - assert(!JS_IsException(ret)); - assert(JS_IsArray(ret)); - JS_FreeValue(ctx, ret); - } - { - JSValue ret = eval(ctx, "new Proxy([], {})"); - assert(!JS_IsException(ret)); - assert(!JS_IsArray(ret)); - assert(JS_IsProxy(ret)); - JSValue handler = JS_GetProxyHandler(ctx, ret); - JSValue target = JS_GetProxyTarget(ctx, ret); - assert(!JS_IsException(handler)); - assert(!JS_IsException(target)); - assert(!JS_IsProxy(handler)); - assert(!JS_IsProxy(target)); - assert(JS_IsObject(handler)); - assert(JS_IsArray(target)); - JS_FreeValue(ctx, handler); - JS_FreeValue(ctx, target); - JS_FreeValue(ctx, ret); - } - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static int loader_calls; - -static JSModuleDef *loader(JSContext *ctx, const char *name, void *opaque) -{ - loader_calls++; - assert(!strcmp(name, "b")); - static const char code[] = "export function f(x){}"; - JSValue ret = JS_Eval(ctx, code, strlen(code), "b", - JS_EVAL_TYPE_MODULE|JS_EVAL_FLAG_COMPILE_ONLY); - assert(!JS_IsException(ret)); - JSModuleDef *m = JS_VALUE_GET_PTR(ret); - assert(m); - JS_FreeValue(ctx, ret); - return m; -} - -static void module_serde(void) -{ - JSRuntime *rt = JS_NewRuntime(); - //JS_SetDumpFlags(rt, JS_DUMP_MODULE_RESOLVE); - JS_SetModuleLoaderFunc(rt, NULL, loader, NULL); - JSContext *ctx = JS_NewContext(rt); - static const char code[] = "import {f} from 'b'; f()"; - assert(loader_calls == 0); - JSValue mod = JS_Eval(ctx, code, strlen(code), "a", - JS_EVAL_TYPE_MODULE|JS_EVAL_FLAG_COMPILE_ONLY); - assert(loader_calls == 1); - assert(!JS_IsException(mod)); - assert(JS_IsModule(mod)); - size_t len = 0; - uint8_t *buf = JS_WriteObject(ctx, &len, mod, - JS_WRITE_OBJ_BYTECODE|JS_WRITE_OBJ_REFERENCE); - assert(buf); - assert(len > 0); - JS_FreeValue(ctx, mod); - assert(loader_calls == 1); - mod = JS_ReadObject(ctx, buf, len, JS_READ_OBJ_BYTECODE); - js_free(ctx, buf); - assert(loader_calls == 1); // 'b' is returned from cache - assert(!JS_IsException(mod)); - JSValue ret = JS_EvalFunction(ctx, mod); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - JSValue result = JS_PromiseResult(ctx, ret); - assert(!JS_IsException(result)); - assert(JS_IsUndefined(result)); - JS_FreeValue(ctx, result); - JS_FreeValue(ctx, ret); - JS_FreeValue(ctx, mod); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static void two_byte_string(void) -{ - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - { - JSValue v = JS_NewTwoByteString(ctx, NULL, 0); - assert(!JS_IsException(v)); - const char *s = JS_ToCString(ctx, v); - assert(s); - assert(!strcmp(s, "")); - JS_FreeCString(ctx, s); - JS_FreeValue(ctx, v); - } - { - JSValue v = JS_NewTwoByteString(ctx, (uint16_t[]){'o','k'}, 2); - assert(!JS_IsException(v)); - const char *s = JS_ToCString(ctx, v); - assert(s); - assert(!strcmp(s, "ok")); - JS_FreeCString(ctx, s); - JS_FreeValue(ctx, v); - } - { - JSValue v = JS_NewTwoByteString(ctx, (uint16_t[]){0xD800}, 1); - assert(!JS_IsException(v)); - const char *s = JS_ToCString(ctx, v); - assert(s); - // questionable but surrogates don't map to UTF-8 without WTF-8 - assert(!strcmp(s, "\xED\xA0\x80")); - JS_FreeCString(ctx, s); - JS_FreeValue(ctx, v); - } - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static void weak_map_gc_check(void) -{ - static const char init_code[] = -"const map = new WeakMap(); \ -function addItem() { \ - const k = { \ - text: 'a', \ - }; \ - map.set(k, {k}); \ -}"; - static const char test_code[] = "addItem()"; - - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - - JSValue ret = eval(ctx, init_code); - assert(!JS_IsException(ret)); - - JSValue ret_test = eval(ctx, test_code); - assert(!JS_IsException(ret_test)); - JS_RunGC(rt); - JSMemoryUsage memory_usage; - JS_ComputeMemoryUsage(rt, &memory_usage); - - for (int i = 0; i < 3; i++) { - JSValue ret_test2 = eval(ctx, test_code); - assert(!JS_IsException(ret_test2)); - JS_RunGC(rt); - JSMemoryUsage memory_usage2; - JS_ComputeMemoryUsage(rt, &memory_usage2); - - assert(memory_usage.memory_used_count == memory_usage2.memory_used_count); - assert(memory_usage.memory_used_size == memory_usage2.memory_used_size); - JS_FreeValue(ctx, ret_test2); - } - - JS_FreeValue(ctx, ret); - JS_FreeValue(ctx, ret_test); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -struct { - int hook_type_call_count[4]; -} promise_hook_state; - -static void promise_hook_cb(JSContext *ctx, JSPromiseHookType type, - JSValueConst promise, JSValueConst parent_promise, - void *opaque) -{ - assert(type == JS_PROMISE_HOOK_INIT || - type == JS_PROMISE_HOOK_BEFORE || - type == JS_PROMISE_HOOK_AFTER || - type == JS_PROMISE_HOOK_RESOLVE); - promise_hook_state.hook_type_call_count[type]++; - assert(opaque == (void *)&promise_hook_state); - if (!JS_IsUndefined(parent_promise)) { - JSValue global_object = JS_GetGlobalObject(ctx); - JS_SetPropertyStr(ctx, global_object, "actual", - JS_DupValue(ctx, parent_promise)); - JS_FreeValue(ctx, global_object); - } -} - -static void promise_hook(void) -{ - int *cc = promise_hook_state.hook_type_call_count; - JSContext *unused; - JSRuntime *rt = JS_NewRuntime(); - //JS_SetDumpFlags(rt, JS_DUMP_PROMISE); - JS_SetPromiseHook(rt, promise_hook_cb, &promise_hook_state); - JSContext *ctx = JS_NewContext(rt); - JSValue global_object = JS_GetGlobalObject(ctx); - { - // empty module; creates an outer and inner module promise; - // JS_Eval returns the outer promise - JSValue ret = JS_Eval(ctx, "", 0, "", JS_EVAL_TYPE_MODULE); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - assert(JS_PROMISE_FULFILLED == JS_PromiseState(ctx, ret)); - JS_FreeValue(ctx, ret); - assert(2 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(2 == cc[JS_PROMISE_HOOK_RESOLVE]); - assert(!JS_IsJobPending(rt)); - } - memset(&promise_hook_state, 0, sizeof(promise_hook_state)); - { - // module with unresolved promise; the outer and inner module promises - // are resolved but not the user's promise - static const char code[] = "new Promise(() => {})"; - JSValue ret = JS_Eval(ctx, code, strlen(code), "", JS_EVAL_TYPE_MODULE); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - assert(JS_PROMISE_FULFILLED == JS_PromiseState(ctx, ret)); // outer module promise - JS_FreeValue(ctx, ret); - assert(3 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(2 == cc[JS_PROMISE_HOOK_RESOLVE]); // outer and inner module promise - assert(!JS_IsJobPending(rt)); - } - memset(&promise_hook_state, 0, sizeof(promise_hook_state)); - { - // module with resolved promise - static const char code[] = "new Promise((resolve,reject) => resolve())"; - JSValue ret = JS_Eval(ctx, code, strlen(code), "", JS_EVAL_TYPE_MODULE); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - assert(JS_PROMISE_FULFILLED == JS_PromiseState(ctx, ret)); // outer module promise - JS_FreeValue(ctx, ret); - assert(3 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(3 == cc[JS_PROMISE_HOOK_RESOLVE]); - assert(!JS_IsJobPending(rt)); - } - memset(&promise_hook_state, 0, sizeof(promise_hook_state)); - { - // module with rejected promise - static const char code[] = "new Promise((resolve,reject) => reject())"; - JSValue ret = JS_Eval(ctx, code, strlen(code), "", JS_EVAL_TYPE_MODULE); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - assert(JS_PROMISE_FULFILLED == JS_PromiseState(ctx, ret)); // outer module promise - JS_FreeValue(ctx, ret); - assert(3 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(2 == cc[JS_PROMISE_HOOK_RESOLVE]); - assert(!JS_IsJobPending(rt)); - } - memset(&promise_hook_state, 0, sizeof(promise_hook_state)); - { - // module with promise chain - static const char code[] = - "globalThis.count = 0;" - "globalThis.actual = undefined;" // set by promise_hook_cb - "globalThis.expected = new Promise(resolve => resolve());" - "expected.then(_ => count++)"; - JSValue ret = JS_Eval(ctx, code, strlen(code), "", JS_EVAL_TYPE_MODULE); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - assert(JS_PROMISE_FULFILLED == JS_PromiseState(ctx, ret)); // outer module promise - JS_FreeValue(ctx, ret); - assert(4 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(3 == cc[JS_PROMISE_HOOK_RESOLVE]); - JSValue v = JS_GetPropertyStr(ctx, global_object, "count"); - assert(!JS_IsException(v)); - int32_t count; - assert(0 == JS_ToInt32(ctx, &count, v)); - assert(0 == count); - JS_FreeValue(ctx, v); - assert(JS_IsJobPending(rt)); - assert(1 == JS_ExecutePendingJob(rt, &unused)); - assert(!JS_HasException(ctx)); - assert(4 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(4 == cc[JS_PROMISE_HOOK_RESOLVE]); - assert(!JS_IsJobPending(rt)); - v = JS_GetPropertyStr(ctx, global_object, "count"); - assert(!JS_IsException(v)); - assert(0 == JS_ToInt32(ctx, &count, v)); - assert(1 == count); - JS_FreeValue(ctx, v); - JSValue actual = JS_GetPropertyStr(ctx, global_object, "actual"); - JSValue expected = JS_GetPropertyStr(ctx, global_object, "expected"); - assert(!JS_IsException(actual)); - assert(!JS_IsException(expected)); - assert(JS_IsSameValue(ctx, actual, expected)); - JS_FreeValue(ctx, actual); - JS_FreeValue(ctx, expected); - } - memset(&promise_hook_state, 0, sizeof(promise_hook_state)); - { - // module with thenable; fires before and after hooks - static const char code[] = - "new Promise(resolve => resolve({then(resolve){ resolve() }}))"; - JSValue ret = JS_Eval(ctx, code, strlen(code), "", JS_EVAL_TYPE_MODULE); - assert(!JS_IsException(ret)); - assert(JS_IsPromise(ret)); - assert(JS_PROMISE_FULFILLED == JS_PromiseState(ctx, ret)); // outer module promise - JS_FreeValue(ctx, ret); - assert(3 == cc[JS_PROMISE_HOOK_INIT]); - assert(0 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(0 == cc[JS_PROMISE_HOOK_AFTER]); - assert(2 == cc[JS_PROMISE_HOOK_RESOLVE]); - assert(JS_IsJobPending(rt)); - assert(1 == JS_ExecutePendingJob(rt, &unused)); - assert(!JS_HasException(ctx)); - assert(3 == cc[JS_PROMISE_HOOK_INIT]); - assert(1 == cc[JS_PROMISE_HOOK_BEFORE]); - assert(1 == cc[JS_PROMISE_HOOK_AFTER]); - assert(3 == cc[JS_PROMISE_HOOK_RESOLVE]); - assert(!JS_IsJobPending(rt)); - } - JS_FreeValue(ctx, global_object); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static void dump_memory_usage(void) -{ - JSMemoryUsage stats; - - JSRuntime *rt = NULL; - JSContext *ctx = NULL; - - rt = JS_NewRuntime(); - ctx = JS_NewContext(rt); - - //JS_SetDumpFlags(rt, JS_DUMP_PROMISE); - - static const char code[] = - "globalThis.count = 0;" - "globalThis.actual = undefined;" // set by promise_hook_cb - "globalThis.expected = new Promise(resolve => resolve());" - "expected.then(_ => count++)"; - - JSValue evalVal = JS_Eval(ctx, code, strlen(code), "", 0); - JS_FreeValue(ctx, evalVal); - - FILE *temp = tmpfile(); - assert(temp != NULL); - JS_ComputeMemoryUsage(rt, &stats); - JS_DumpMemoryUsage(temp, &stats, rt); - // JS_DumpMemoryUsage(stdout, &stats, rt); - fclose(temp); - - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static void new_errors(void) -{ - typedef struct { - const char name[16]; - JSValue (*func)(JSContext *, const char *, ...); - } Entry; - static const Entry entries[] = { - {"Error", JS_NewPlainError}, - {"InternalError", JS_NewInternalError}, - {"RangeError", JS_NewRangeError}, - {"ReferenceError", JS_NewReferenceError}, - {"SyntaxError", JS_NewSyntaxError}, - {"TypeError", JS_NewTypeError}, - }; - const Entry *e; - - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - for (e = entries; e < endof(entries); e++) { - JSValue obj = (*e->func)(ctx, "the %s", "needle"); - assert(!JS_IsException(obj)); - assert(JS_IsObject(obj)); - assert(JS_IsError(obj)); - const char *haystack = JS_ToCString(ctx, obj); - char needle[256]; - snprintf(needle, sizeof(needle), "%s: the needle", e->name); - assert(strstr(haystack, needle)); - JS_FreeCString(ctx, haystack); - JSValue stack = JS_GetPropertyStr(ctx, obj, "stack"); - assert(!JS_IsException(stack)); - assert(JS_IsString(stack)); - JS_FreeValue(ctx, stack); - JS_FreeValue(ctx, obj); - } - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static int gop_get_own_property(JSContext *ctx, JSPropertyDescriptor *desc, - JSValueConst obj, JSAtom prop) -{ - const char *name; - int found; - - found = 0; - name = JS_AtomToCString(ctx, prop); - if (!name) - return -1; - if (!strcmp(name, "answer")) { - found = 1; - *desc = (JSPropertyDescriptor){ - .value = JS_NewInt32(ctx, 42), - .flags = JS_PROP_C_W_E | JS_PROP_HAS_VALUE, - }; - } - JS_FreeCString(ctx, name); - return found; -} - -static void global_object_prototype(void) -{ - static const char code[] = "answer"; - JSValue global_object, proto, ret; - JSClassID class_id; - JSRuntime *rt; - JSContext *ctx; - int32_t answer; - int res; - - { - rt = JS_NewRuntime(); - ctx = JS_NewContext(rt); - proto = JS_NewObject(ctx); - assert(JS_IsObject(proto)); - JSCFunctionListEntry prop = JS_PROP_INT32_DEF("answer", 42, JS_PROP_C_W_E); - JS_SetPropertyFunctionList(ctx, proto, &prop, 1); - global_object = JS_GetGlobalObject(ctx); - res = JS_SetPrototype(ctx, global_object, proto); - assert(res == true); - JS_FreeValue(ctx, global_object); - JS_FreeValue(ctx, proto); - ret = eval(ctx, code); - assert(!JS_IsException(ret)); - assert(JS_IsNumber(ret)); - res = JS_ToInt32(ctx, &answer, ret); - assert(res == 0); - assert(answer == 42); - JS_FreeValue(ctx, ret); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - } - { - JSClassExoticMethods exotic = (JSClassExoticMethods){ - .get_own_property = gop_get_own_property, - }; - JSClassDef def = (JSClassDef){ - .class_name = "Global Object", - .exotic = &exotic, - }; - rt = JS_NewRuntime(); - class_id = 0; - JS_NewClassID(rt, &class_id); - res = JS_NewClass(rt, class_id, &def); - assert(res == 0); - ctx = JS_NewContext(rt); - proto = JS_NewObjectClass(ctx, class_id); - assert(JS_IsObject(proto)); - global_object = JS_GetGlobalObject(ctx); - res = JS_SetPrototype(ctx, global_object, proto); - assert(res == true); - JS_FreeValue(ctx, global_object); - JS_FreeValue(ctx, proto); - ret = eval(ctx, code); - assert(!JS_IsException(ret)); - assert(JS_IsNumber(ret)); - res = JS_ToInt32(ctx, &answer, ret); - assert(res == 0); - assert(answer == 42); - JS_FreeValue(ctx, ret); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - } -} - -// https://github.com/quickjs-ng/quickjs/issues/1178 -static void slice_string_tocstring(void) -{ - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - JSValue ret = eval(ctx, "'.'.repeat(16384).slice(1, -1)"); - assert(!JS_IsException(ret)); - assert(JS_IsString(ret)); - const char *str = JS_ToCString(ctx, ret); - assert(strlen(str) == 16382); - JS_FreeCString(ctx, str); - JS_FreeValue(ctx, ret); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -int main(void) -{ - cfunctions(); - sync_call(); - async_call(); - async_call_stack_overflow(); - raw_context_global_var(); - is_array(); - module_serde(); - two_byte_string(); - weak_map_gc_check(); - promise_hook(); - dump_memory_usage(); - new_errors(); - global_object_prototype(); - slice_string_tocstring(); - return 0; -} diff --git a/vendor/quickjs/source_ng/builtin-array-fromasync.h b/vendor/quickjs/source_ng/builtin-array-fromasync.h deleted file mode 100755 index 19f1f0774..000000000 --- a/vendor/quickjs/source_ng/builtin-array-fromasync.h +++ /dev/null @@ -1,113 +0,0 @@ -/* File generated automatically by the QuickJS-ng compiler. */ - -#include - -const uint32_t qjsc_builtin_array_fromasync_size = 826; - -const uint8_t qjsc_builtin_array_fromasync[826] = { - 0x15, 0x0d, 0x01, 0x1a, 0x61, 0x73, 0x79, 0x6e, - 0x63, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x01, 0x10, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x01, 0x12, 0x61, 0x72, 0x72, - 0x61, 0x79, 0x4c, 0x69, 0x6b, 0x65, 0x01, 0x0a, - 0x6d, 0x61, 0x70, 0x46, 0x6e, 0x01, 0x0e, 0x74, - 0x68, 0x69, 0x73, 0x41, 0x72, 0x67, 0x01, 0x0c, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x01, 0x02, - 0x69, 0x01, 0x1a, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, - 0x01, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x01, 0x0c, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x01, 0x08, - 0x69, 0x74, 0x65, 0x72, 0x01, 0x1c, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x01, 0x08, 0x63, 0x61, - 0x6c, 0x6c, 0x0c, 0x00, 0x02, 0x00, 0xa2, 0x01, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, - 0xa4, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x43, 0x02, - 0x01, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00, 0x01, - 0x03, 0x05, 0xaa, 0x02, 0x00, 0x01, 0x40, 0xa0, - 0x03, 0x00, 0x01, 0x40, 0xc6, 0x03, 0x00, 0x01, - 0x40, 0xcc, 0x01, 0x00, 0x01, 0x40, 0xc8, 0x03, - 0x00, 0x01, 0x40, 0x0c, 0x60, 0x02, 0x01, 0xf8, - 0x01, 0x03, 0x0e, 0x01, 0x06, 0x05, 0x00, 0x86, - 0x04, 0x11, 0xca, 0x03, 0x00, 0x01, 0x00, 0xcc, - 0x03, 0x00, 0x01, 0x00, 0xce, 0x03, 0x00, 0x01, - 0x00, 0xca, 0x03, 0x01, 0xff, 0xff, 0xff, 0xff, - 0x0f, 0x20, 0xcc, 0x03, 0x01, 0x01, 0x20, 0xce, - 0x03, 0x01, 0x02, 0x20, 0xd0, 0x03, 0x02, 0x00, - 0x20, 0xd2, 0x03, 0x02, 0x04, 0x20, 0xd4, 0x03, - 0x02, 0x05, 0x20, 0xd6, 0x03, 0x02, 0x06, 0x20, - 0xd8, 0x03, 0x02, 0x07, 0x20, 0x64, 0x06, 0x08, - 0x20, 0x82, 0x01, 0x07, 0x09, 0x20, 0xda, 0x03, - 0x0a, 0x08, 0x30, 0x82, 0x01, 0x0d, 0x0b, 0x20, - 0xd4, 0x01, 0x0d, 0x0c, 0x20, 0x10, 0x00, 0x01, - 0x00, 0xa0, 0x03, 0x01, 0x03, 0xc6, 0x03, 0x02, - 0x03, 0xc8, 0x03, 0x04, 0x03, 0xaa, 0x02, 0x00, - 0x03, 0xcc, 0x01, 0x03, 0x03, 0x08, 0xc4, 0x0d, - 0x62, 0x02, 0x00, 0x62, 0x01, 0x00, 0x62, 0x00, - 0x00, 0xd3, 0xcb, 0xd4, 0x11, 0xf4, 0xec, 0x08, - 0x0e, 0x39, 0x46, 0x00, 0x00, 0x00, 0xdc, 0xcc, - 0xd5, 0x11, 0xf4, 0xec, 0x08, 0x0e, 0x39, 0x46, - 0x00, 0x00, 0x00, 0xdd, 0xcd, 0x62, 0x07, 0x00, - 0x62, 0x06, 0x00, 0x62, 0x05, 0x00, 0x62, 0x04, - 0x00, 0x62, 0x03, 0x00, 0xd4, 0x39, 0x46, 0x00, - 0x00, 0x00, 0xb0, 0xec, 0x16, 0xd4, 0x98, 0x04, - 0x1b, 0x00, 0x00, 0x00, 0xb0, 0xec, 0x0c, 0xdf, - 0x11, 0x04, 0xee, 0x00, 0x00, 0x00, 0x21, 0x01, - 0x00, 0x30, 0x06, 0xce, 0xb6, 0xc4, 0x04, 0xc3, - 0x0d, 0xf7, 0xc4, 0x05, 0x09, 0xc4, 0x06, 0xd3, - 0xe0, 0x48, 0xc4, 0x07, 0x63, 0x07, 0x00, 0x07, - 0xad, 0xec, 0x0f, 0x0a, 0x11, 0x64, 0x06, 0x00, - 0x0e, 0xd3, 0xe1, 0x48, 0x11, 0x64, 0x07, 0x00, - 0x0e, 0x63, 0x07, 0x00, 0x07, 0xad, 0x6a, 0xa6, - 0x00, 0x00, 0x00, 0x62, 0x08, 0x00, 0x06, 0x11, - 0xf4, 0xed, 0x0c, 0x71, 0x43, 0x32, 0x00, 0x00, - 0x00, 0xc4, 0x08, 0x0e, 0xee, 0x05, 0x0e, 0xd3, - 0xee, 0xf2, 0x63, 0x08, 0x00, 0x8e, 0x11, 0xed, - 0x03, 0x0e, 0xb6, 0x11, 0x64, 0x08, 0x00, 0x0e, - 0x63, 0x05, 0x00, 0xec, 0x0c, 0xc3, 0x0d, 0x11, - 0x63, 0x08, 0x00, 0x21, 0x01, 0x00, 0xee, 0x06, - 0xe2, 0x63, 0x08, 0x00, 0xf1, 0x11, 0x64, 0x03, - 0x00, 0x0e, 0x63, 0x04, 0x00, 0x63, 0x08, 0x00, - 0xa7, 0x6a, 0x2a, 0x01, 0x00, 0x00, 0x62, 0x09, - 0x00, 0xd3, 0x63, 0x04, 0x00, 0x48, 0xc4, 0x09, - 0x63, 0x06, 0x00, 0xec, 0x0a, 0x63, 0x09, 0x00, - 0x8c, 0x11, 0x64, 0x09, 0x00, 0x0e, 0xd4, 0xec, - 0x17, 0xd4, 0x43, 0xef, 0x00, 0x00, 0x00, 0xd5, - 0x63, 0x09, 0x00, 0x63, 0x04, 0x00, 0x24, 0x03, - 0x00, 0x8c, 0x11, 0x64, 0x09, 0x00, 0x0e, 0x5f, - 0x04, 0x00, 0x63, 0x03, 0x00, 0x63, 0x04, 0x00, - 0x92, 0x64, 0x04, 0x00, 0x0b, 0x63, 0x09, 0x00, - 0x4d, 0x41, 0x00, 0x00, 0x00, 0x0a, 0x4d, 0x3e, - 0x00, 0x00, 0x00, 0x0a, 0x4d, 0x3f, 0x00, 0x00, - 0x00, 0xf3, 0x0e, 0xee, 0x9e, 0x62, 0x0a, 0x00, - 0x63, 0x07, 0x00, 0x43, 0xef, 0x00, 0x00, 0x00, - 0xd3, 0x24, 0x01, 0x00, 0xc4, 0x0a, 0x63, 0x05, - 0x00, 0xec, 0x09, 0xc3, 0x0d, 0x11, 0x21, 0x00, - 0x00, 0xee, 0x03, 0xe2, 0xf0, 0x11, 0x64, 0x03, - 0x00, 0x0e, 0x6d, 0x8c, 0x00, 0x00, 0x00, 0x62, - 0x0c, 0x00, 0x62, 0x0b, 0x00, 0x06, 0x11, 0xf4, - 0xed, 0x13, 0x71, 0x43, 0x41, 0x00, 0x00, 0x00, - 0xc4, 0x0b, 0x43, 0x6a, 0x00, 0x00, 0x00, 0xc4, - 0x0c, 0x0e, 0xee, 0x10, 0x0e, 0x63, 0x0a, 0x00, - 0x43, 0x6b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, - 0x8c, 0xee, 0xe0, 0x63, 0x0c, 0x00, 0xed, 0x4e, - 0x63, 0x06, 0x00, 0xec, 0x0a, 0x63, 0x0b, 0x00, - 0x8c, 0x11, 0x64, 0x0b, 0x00, 0x0e, 0xd4, 0xec, - 0x17, 0xd4, 0x43, 0xef, 0x00, 0x00, 0x00, 0xd5, - 0x63, 0x0b, 0x00, 0x63, 0x04, 0x00, 0x24, 0x03, - 0x00, 0x8c, 0x11, 0x64, 0x0b, 0x00, 0x0e, 0x5f, - 0x04, 0x00, 0x63, 0x03, 0x00, 0x63, 0x04, 0x00, - 0x92, 0x64, 0x04, 0x00, 0x0b, 0x63, 0x0b, 0x00, - 0x4d, 0x41, 0x00, 0x00, 0x00, 0x0a, 0x4d, 0x3e, - 0x00, 0x00, 0x00, 0x0a, 0x4d, 0x3f, 0x00, 0x00, - 0x00, 0xf3, 0x0e, 0xee, 0x83, 0x0e, 0x06, 0x6e, - 0x0d, 0x00, 0x00, 0x00, 0x0e, 0xee, 0x1e, 0x6e, - 0x05, 0x00, 0x00, 0x00, 0x30, 0x63, 0x0a, 0x00, - 0x42, 0x06, 0x00, 0x00, 0x00, 0xec, 0x0d, 0x63, - 0x0a, 0x00, 0x43, 0x06, 0x00, 0x00, 0x00, 0x24, - 0x00, 0x00, 0x0e, 0x6f, 0x63, 0x03, 0x00, 0x63, - 0x04, 0x00, 0x44, 0x32, 0x00, 0x00, 0x00, 0x63, - 0x03, 0x00, 0x2f, 0xc1, 0x00, 0x28, 0xc1, 0x00, - 0xcf, 0x28, -}; - diff --git a/vendor/quickjs/source_ng/builtin-array-fromasync.js b/vendor/quickjs/source_ng/builtin-array-fromasync.js deleted file mode 100755 index a07e40eff..000000000 --- a/vendor/quickjs/source_ng/builtin-array-fromasync.js +++ /dev/null @@ -1,36 +0,0 @@ -;(function(Array, TypeError, asyncIterator, defineProperty, iterator) { - "use strict" // result.length=i should throw if .length is not writable - return async function fromAsync(arrayLike, mapFn=undefined, thisArg=undefined) { - if (mapFn !== undefined && typeof mapFn !== "function") throw new TypeError("not a function") - let result, i = 0, isConstructor = typeof this === "function" - let sync = false, method = arrayLike[asyncIterator] - if (method == null) sync = true, method = arrayLike[iterator] - if (method == null) { - let {length} = arrayLike - length = +length || 0 - result = isConstructor ? new this(length) : Array(length) - while (i < length) { - let value = arrayLike[i] - if (sync) value = await value - if (mapFn) value = await mapFn.call(thisArg, value, i) - defineProperty(result, i++, {value, configurable: true, writable: true}) - } - } else { - const iter = method.call(arrayLike) - result = isConstructor ? new this() : Array() - try { - for (;;) { - let {value, done} = await iter.next() - if (done) break - if (sync) value = await value - if (mapFn) value = await mapFn.call(thisArg, value, i) - defineProperty(result, i++, {value, configurable: true, writable: true}) - } - } finally { - if (iter.return) iter.return() - } - } - result.length = i - return result - } -}) diff --git a/vendor/quickjs/source_ng/ctest.c b/vendor/quickjs/source_ng/ctest.c deleted file mode 100755 index eeb03e869..000000000 --- a/vendor/quickjs/source_ng/ctest.c +++ /dev/null @@ -1,17 +0,0 @@ -// note: file is not actually compiled, only checked for C syntax errors -#include "quickjs.h" - -int main(void) -{ - JSRuntime *rt = JS_NewRuntime(); - JSContext *ctx = JS_NewContext(rt); - JS_FreeValue(ctx, JS_NAN); - JS_FreeValue(ctx, JS_UNDEFINED); - JS_FreeValue(ctx, JS_NewFloat64(ctx, 42)); - // not a legal way of using JS_MKPTR but this is here - // to have the compiler syntax-check its definition - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_UNINITIALIZED, 0)); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - return 0; -} diff --git a/vendor/quickjs/source_ng/cutils.c b/vendor/quickjs/source_ng/cutils.c deleted file mode 100755 index 7d36ddfdb..000000000 --- a/vendor/quickjs/source_ng/cutils.c +++ /dev/null @@ -1,1342 +0,0 @@ -/* - * C utilities - * - * Copyright (c) 2017 Fabrice Bellard - * Copyright (c) 2018 Charlie Gordon - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include -#include -#if !defined(_MSC_VER) -#include -#endif -#if defined(_WIN32) -#include -#include // _beginthread -#endif -#if defined(__APPLE__) -#include -#endif - -#include "cutils.h" - -#undef NANOSEC -#define NANOSEC ((uint64_t) 1e9) - -#ifdef __GNUC__ -#pragma GCC visibility push(default) -#endif - -void js__pstrcpy(char *buf, int buf_size, const char *str) -{ - int c; - char *q = buf; - - if (buf_size <= 0) - return; - - for(;;) { - c = *str++; - if (c == 0 || q >= buf + buf_size - 1) - break; - *q++ = c; - } - *q = '\0'; -} - -/* strcat and truncate. */ -char *js__pstrcat(char *buf, int buf_size, const char *s) -{ - int len; - len = strlen(buf); - if (len < buf_size) - js__pstrcpy(buf + len, buf_size - len, s); - return buf; -} - -int js__strstart(const char *str, const char *val, const char **ptr) -{ - const char *p, *q; - p = str; - q = val; - while (*q != '\0') { - if (*p != *q) - return 0; - p++; - q++; - } - if (ptr) - *ptr = p; - return 1; -} - -int js__has_suffix(const char *str, const char *suffix) -{ - size_t len = strlen(str); - size_t slen = strlen(suffix); - return (len >= slen && !memcmp(str + len - slen, suffix, slen)); -} - -/* Dynamic buffer package */ - -static void *dbuf_default_realloc(void *opaque, void *ptr, size_t size) -{ - if (unlikely(size == 0)) { - free(ptr); - return NULL; - } - return realloc(ptr, size); -} - -void dbuf_init2(DynBuf *s, void *opaque, DynBufReallocFunc *realloc_func) -{ - memset(s, 0, sizeof(*s)); - if (!realloc_func) - realloc_func = dbuf_default_realloc; - s->opaque = opaque; - s->realloc_func = realloc_func; -} - -void dbuf_init(DynBuf *s) -{ - dbuf_init2(s, NULL, NULL); -} - -/* return < 0 if error */ -int dbuf_realloc(DynBuf *s, size_t new_size) -{ - size_t size; - uint8_t *new_buf; - if (new_size > s->allocated_size) { - if (s->error) - return -1; - size = s->allocated_size * 3 / 2; - if (size > new_size) - new_size = size; - new_buf = s->realloc_func(s->opaque, s->buf, new_size); - if (!new_buf) { - s->error = true; - return -1; - } - s->buf = new_buf; - s->allocated_size = new_size; - } - return 0; -} - -int dbuf_write(DynBuf *s, size_t offset, const void *data, size_t len) -{ - size_t end; - end = offset + len; - if (dbuf_realloc(s, end)) - return -1; - memcpy(s->buf + offset, data, len); - if (end > s->size) - s->size = end; - return 0; -} - -int dbuf_put(DynBuf *s, const void *data, size_t len) -{ - if (unlikely((s->size + len) > s->allocated_size)) { - if (dbuf_realloc(s, s->size + len)) - return -1; - } - if (len > 0) { - memcpy(s->buf + s->size, data, len); - s->size += len; - } - return 0; -} - -int dbuf_put_self(DynBuf *s, size_t offset, size_t len) -{ - if (unlikely((s->size + len) > s->allocated_size)) { - if (dbuf_realloc(s, s->size + len)) - return -1; - } - memcpy(s->buf + s->size, s->buf + offset, len); - s->size += len; - return 0; -} - -int dbuf_putc(DynBuf *s, uint8_t c) -{ - return dbuf_put(s, &c, 1); -} - -int dbuf_putstr(DynBuf *s, const char *str) -{ - return dbuf_put(s, (const uint8_t *)str, strlen(str)); -} - -int JS_PRINTF_FORMAT_ATTR(2, 3) dbuf_printf(DynBuf *s, JS_PRINTF_FORMAT const char *fmt, ...) -{ - va_list ap; - char buf[128]; - int len; - - va_start(ap, fmt); - len = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - if (len < (int)sizeof(buf)) { - /* fast case */ - return dbuf_put(s, (uint8_t *)buf, len); - } else { - if (dbuf_realloc(s, s->size + len + 1)) - return -1; - va_start(ap, fmt); - vsnprintf((char *)(s->buf + s->size), s->allocated_size - s->size, - fmt, ap); - va_end(ap); - s->size += len; - } - return 0; -} - -void dbuf_free(DynBuf *s) -{ - /* we test s->buf as a fail safe to avoid crashing if dbuf_free() - is called twice */ - if (s->buf) { - s->realloc_func(s->opaque, s->buf, 0); - } - memset(s, 0, sizeof(*s)); -} - -/*--- UTF-8 utility functions --*/ - -/* Note: only encode valid codepoints (0x0000..0x10FFFF). - At most UTF8_CHAR_LEN_MAX bytes are output. */ - -/* Compute the number of bytes of the UTF-8 encoding for a codepoint - `c` is a code-point. - Returns the number of bytes. If a codepoint is beyond 0x10FFFF the - return value is 3 as the codepoint would be encoded as 0xFFFD. - */ -size_t utf8_encode_len(uint32_t c) -{ - if (c < 0x80) - return 1; - if (c < 0x800) - return 2; - if (c < 0x10000) - return 3; - if (c < 0x110000) - return 4; - return 3; -} - -/* Encode a codepoint in UTF-8 - `buf` points to an array of at least `UTF8_CHAR_LEN_MAX` bytes - `c` is a code-point. - Returns the number of bytes. If a codepoint is beyond 0x10FFFF the - return value is 3 and the codepoint is encoded as 0xFFFD. - No null byte is stored after the encoded bytes. - Return value is in range 1..4 - */ -size_t utf8_encode(uint8_t buf[minimum_length(UTF8_CHAR_LEN_MAX)], uint32_t c) -{ - if (c < 0x80) { - buf[0] = c; - return 1; - } - if (c < 0x800) { - buf[0] = (c >> 6) | 0xC0; - buf[1] = (c & 0x3F) | 0x80; - return 2; - } - if (c < 0x10000) { - buf[0] = (c >> 12) | 0xE0; - buf[1] = ((c >> 6) & 0x3F) | 0x80; - buf[2] = (c & 0x3F) | 0x80; - return 3; - } - if (c < 0x110000) { - buf[0] = (c >> 18) | 0xF0; - buf[1] = ((c >> 12) & 0x3F) | 0x80; - buf[2] = ((c >> 6) & 0x3F) | 0x80; - buf[3] = (c & 0x3F) | 0x80; - return 4; - } - buf[0] = (0xFFFD >> 12) | 0xE0; - buf[1] = ((0xFFFD >> 6) & 0x3F) | 0x80; - buf[2] = (0xFFFD & 0x3F) | 0x80; - return 3; -} - -/* Decode a single code point from a UTF-8 encoded array of bytes - `p` is a valid pointer to an array of bytes - `pp` is a valid pointer to a `const uint8_t *` to store a pointer - to the byte following the current sequence. - Return the code point at `p`, in the range `0..0x10FFFF` - Return 0xFFFD on error. Only a single byte is consumed in this case - The maximum length for a UTF-8 byte sequence is 4 bytes. - This implements the algorithm specified in whatwg.org, except it accepts - UTF-8 encoded surrogates as JavaScript allows them in strings. - The source string is assumed to have at least UTF8_CHAR_LEN_MAX bytes - or be null terminated. - If `p[0]` is '\0', the return value is `0` and the byte is consumed. - cf: https://encoding.spec.whatwg.org/#utf-8-encoder - */ -uint32_t utf8_decode(const uint8_t *p, const uint8_t **pp) -{ - uint32_t c; - uint8_t lower, upper; - - c = *p++; - if (c < 0x80) { - *pp = p; - return c; - } - switch(c) { - case 0xC2: case 0xC3: - case 0xC4: case 0xC5: case 0xC6: case 0xC7: - case 0xC8: case 0xC9: case 0xCA: case 0xCB: - case 0xCC: case 0xCD: case 0xCE: case 0xCF: - case 0xD0: case 0xD1: case 0xD2: case 0xD3: - case 0xD4: case 0xD5: case 0xD6: case 0xD7: - case 0xD8: case 0xD9: case 0xDA: case 0xDB: - case 0xDC: case 0xDD: case 0xDE: case 0xDF: - if (*p >= 0x80 && *p <= 0xBF) { - *pp = p + 1; - return ((c - 0xC0) << 6) + (*p - 0x80); - } - // otherwise encoding error - break; - case 0xE0: - lower = 0xA0; /* reject invalid encoding */ - goto need2; - case 0xE1: case 0xE2: case 0xE3: - case 0xE4: case 0xE5: case 0xE6: case 0xE7: - case 0xE8: case 0xE9: case 0xEA: case 0xEB: - case 0xEC: case 0xED: case 0xEE: case 0xEF: - lower = 0x80; - need2: - if (*p >= lower && *p <= 0xBF && p[1] >= 0x80 && p[1] <= 0xBF) { - *pp = p + 2; - return ((c - 0xE0) << 12) + ((*p - 0x80) << 6) + (p[1] - 0x80); - } - // otherwise encoding error - break; - case 0xF0: - lower = 0x90; /* reject invalid encoding */ - upper = 0xBF; - goto need3; - case 0xF4: - lower = 0x80; - upper = 0x8F; /* reject values above 0x10FFFF */ - goto need3; - case 0xF1: case 0xF2: case 0xF3: - lower = 0x80; - upper = 0xBF; - need3: - if (*p >= lower && *p <= upper && p[1] >= 0x80 && p[1] <= 0xBF - && p[2] >= 0x80 && p[2] <= 0xBF) { - *pp = p + 3; - return ((c - 0xF0) << 18) + ((*p - 0x80) << 12) + - ((p[1] - 0x80) << 6) + (p[2] - 0x80); - } - // otherwise encoding error - break; - default: - // invalid lead byte - break; - } - *pp = p; - return 0xFFFD; -} - -uint32_t utf8_decode_len(const uint8_t *p, size_t max_len, const uint8_t **pp) { - switch (max_len) { - case 0: - *pp = p; - return 0xFFFD; - case 1: - if (*p < 0x80) - goto good; - break; - case 2: - if (*p < 0xE0) - goto good; - break; - case 3: - if (*p < 0xF0) - goto good; - break; - default: - good: - return utf8_decode(p, pp); - } - *pp = p + 1; - return 0xFFFD; -} - -/* Scan a UTF-8 encoded buffer for content type - `buf` is a valid pointer to a UTF-8 encoded string - `len` is the number of bytes to scan - `plen` points to a `size_t` variable to receive the number of units - Return value is a mask of bits. - - `UTF8_PLAIN_ASCII`: return value for 7-bit ASCII plain text - - `UTF8_NON_ASCII`: bit for non ASCII code points (8-bit or more) - - `UTF8_HAS_16BIT`: bit for 16-bit code points - - `UTF8_HAS_NON_BMP1`: bit for non-BMP1 code points, needs UTF-16 surrogate pairs - - `UTF8_HAS_ERRORS`: bit for encoding errors - */ -int utf8_scan(const char *buf, size_t buf_len, size_t *plen) -{ - const uint8_t *p, *p_end, *p_next; - size_t i, len; - int kind; - uint8_t cbits; - - kind = UTF8_PLAIN_ASCII; - cbits = 0; - len = buf_len; - // TODO: handle more than 1 byte at a time - for (i = 0; i < buf_len; i++) - cbits |= buf[i]; - if (cbits >= 0x80) { - p = (const uint8_t *)buf; - p_end = p + buf_len; - kind = UTF8_NON_ASCII; - len = 0; - while (p < p_end) { - len++; - if (*p++ >= 0x80) { - /* parse UTF-8 sequence, check for encoding error */ - uint32_t c = utf8_decode_len(p - 1, p_end - (p - 1), &p_next); - if (p_next == p) - kind |= UTF8_HAS_ERRORS; - p = p_next; - if (c > 0xFF) { - kind |= UTF8_HAS_16BIT; - if (c > 0xFFFF) { - len++; - kind |= UTF8_HAS_NON_BMP1; - } - } - } - } - } - *plen = len; - return kind; -} - -/* Decode a string encoded in UTF-8 into an array of bytes - `src` points to the source string. It is assumed to be correctly encoded - and only contains code points below 0x800 - `src_len` is the length of the source string - `dest` points to the destination array, it can be null if `dest_len` is `0` - `dest_len` is the length of the destination array. A null - terminator is stored at the end of the array unless `dest_len` is `0`. - */ -size_t utf8_decode_buf8(uint8_t *dest, size_t dest_len, const char *src, size_t src_len) -{ - const uint8_t *p, *p_end; - size_t i; - - p = (const uint8_t *)src; - p_end = p + src_len; - for (i = 0; p < p_end; i++) { - uint32_t c = *p++; - if (c >= 0xC0) - c = (c << 6) + *p++ - ((0xC0 << 6) + 0x80); - if (i < dest_len) - dest[i] = c; - } - if (i < dest_len) - dest[i] = '\0'; - else if (dest_len > 0) - dest[dest_len - 1] = '\0'; - return i; -} - -/* Decode a string encoded in UTF-8 into an array of 16-bit words - `src` points to the source string. It is assumed to be correctly encoded. - `src_len` is the length of the source string - `dest` points to the destination array, it can be null if `dest_len` is `0` - `dest_len` is the length of the destination array. No null terminator is - stored at the end of the array. - */ -size_t utf8_decode_buf16(uint16_t *dest, size_t dest_len, const char *src, size_t src_len) -{ - const uint8_t *p, *p_end; - size_t i; - - p = (const uint8_t *)src; - p_end = p + src_len; - for (i = 0; p < p_end; i++) { - uint32_t c = *p++; - if (c >= 0x80) { - /* parse utf-8 sequence */ - c = utf8_decode_len(p - 1, p_end - (p - 1), &p); - /* encoding errors are converted as 0xFFFD and use a single byte */ - if (c > 0xFFFF) { - if (i < dest_len) - dest[i] = get_hi_surrogate(c); - i++; - c = get_lo_surrogate(c); - } - } - if (i < dest_len) - dest[i] = c; - } - return i; -} - -/* Encode a buffer of 8-bit bytes as a UTF-8 encoded string - `src` points to the source buffer. - `src_len` is the length of the source buffer - `dest` points to the destination array, it can be null if `dest_len` is `0` - `dest_len` is the length in bytes of the destination array. A null - terminator is stored at the end of the array unless `dest_len` is `0`. - */ -size_t utf8_encode_buf8(char *dest, size_t dest_len, const uint8_t *src, size_t src_len) -{ - size_t i, j; - uint32_t c; - - for (i = j = 0; i < src_len; i++) { - c = src[i]; - if (c < 0x80) { - if (j + 1 >= dest_len) - goto overflow; - dest[j++] = c; - } else { - if (j + 2 >= dest_len) - goto overflow; - dest[j++] = (c >> 6) | 0xC0; - dest[j++] = (c & 0x3F) | 0x80; - } - } - if (j < dest_len) - dest[j] = '\0'; - return j; - -overflow: - if (j < dest_len) - dest[j] = '\0'; - while (i < src_len) - j += 1 + (src[i++] >= 0x80); - return j; -} - -/* Encode a buffer of 16-bit code points as a UTF-8 encoded string - `src` points to the source buffer. - `src_len` is the length of the source buffer - `dest` points to the destination array, it can be null if `dest_len` is `0` - `dest_len` is the length in bytes of the destination array. A null - terminator is stored at the end of the array unless `dest_len` is `0`. - */ -size_t utf8_encode_buf16(char *dest, size_t dest_len, const uint16_t *src, size_t src_len) -{ - size_t i, j; - uint32_t c; - - for (i = j = 0; i < src_len;) { - c = src[i++]; - if (c < 0x80) { - if (j + 1 >= dest_len) - goto overflow; - dest[j++] = c; - } else { - if (is_hi_surrogate(c) && i < src_len && is_lo_surrogate(src[i])) - c = from_surrogate(c, src[i++]); - if (j + utf8_encode_len(c) >= dest_len) - goto overflow; - j += utf8_encode((uint8_t *)dest + j, c); - } - } - if (j < dest_len) - dest[j] = '\0'; - return j; - -overflow: - i -= 1 + (c > 0xFFFF); - if (j < dest_len) - dest[j] = '\0'; - while (i < src_len) { - c = src[i++]; - if (c < 0x80) { - j++; - } else { - if (is_hi_surrogate(c) && i < src_len && is_lo_surrogate(src[i])) - c = from_surrogate(c, src[i++]); - j += utf8_encode_len(c); - } - } - return j; -} - -/*---- sorting with opaque argument ----*/ - -typedef void (*exchange_f)(void *a, void *b, size_t size); -typedef int (*cmp_f)(const void *, const void *, void *opaque); - -static void exchange_bytes(void *a, void *b, size_t size) { - uint8_t *ap = (uint8_t *)a; - uint8_t *bp = (uint8_t *)b; - - while (size-- != 0) { - uint8_t t = *ap; - *ap++ = *bp; - *bp++ = t; - } -} - -static void exchange_one_byte(void *a, void *b, size_t size) { - uint8_t *ap = (uint8_t *)a; - uint8_t *bp = (uint8_t *)b; - uint8_t t = *ap; - *ap = *bp; - *bp = t; -} - -static void exchange_int16s(void *a, void *b, size_t size) { - uint16_t *ap = (uint16_t *)a; - uint16_t *bp = (uint16_t *)b; - - for (size /= sizeof(uint16_t); size-- != 0;) { - uint16_t t = *ap; - *ap++ = *bp; - *bp++ = t; - } -} - -static void exchange_one_int16(void *a, void *b, size_t size) { - uint16_t *ap = (uint16_t *)a; - uint16_t *bp = (uint16_t *)b; - uint16_t t = *ap; - *ap = *bp; - *bp = t; -} - -static void exchange_int32s(void *a, void *b, size_t size) { - uint32_t *ap = (uint32_t *)a; - uint32_t *bp = (uint32_t *)b; - - for (size /= sizeof(uint32_t); size-- != 0;) { - uint32_t t = *ap; - *ap++ = *bp; - *bp++ = t; - } -} - -static void exchange_one_int32(void *a, void *b, size_t size) { - uint32_t *ap = (uint32_t *)a; - uint32_t *bp = (uint32_t *)b; - uint32_t t = *ap; - *ap = *bp; - *bp = t; -} - -static void exchange_int64s(void *a, void *b, size_t size) { - uint64_t *ap = (uint64_t *)a; - uint64_t *bp = (uint64_t *)b; - - for (size /= sizeof(uint64_t); size-- != 0;) { - uint64_t t = *ap; - *ap++ = *bp; - *bp++ = t; - } -} - -static void exchange_one_int64(void *a, void *b, size_t size) { - uint64_t *ap = (uint64_t *)a; - uint64_t *bp = (uint64_t *)b; - uint64_t t = *ap; - *ap = *bp; - *bp = t; -} - -static void exchange_int128s(void *a, void *b, size_t size) { - uint64_t *ap = (uint64_t *)a; - uint64_t *bp = (uint64_t *)b; - - for (size /= sizeof(uint64_t) * 2; size-- != 0; ap += 2, bp += 2) { - uint64_t t = ap[0]; - uint64_t u = ap[1]; - ap[0] = bp[0]; - ap[1] = bp[1]; - bp[0] = t; - bp[1] = u; - } -} - -static void exchange_one_int128(void *a, void *b, size_t size) { - uint64_t *ap = (uint64_t *)a; - uint64_t *bp = (uint64_t *)b; - uint64_t t = ap[0]; - uint64_t u = ap[1]; - ap[0] = bp[0]; - ap[1] = bp[1]; - bp[0] = t; - bp[1] = u; -} - -static inline exchange_f exchange_func(const void *base, size_t size) { - switch (((uintptr_t)base | (uintptr_t)size) & 15) { - case 0: - if (size == sizeof(uint64_t) * 2) - return exchange_one_int128; - else - return exchange_int128s; - case 8: - if (size == sizeof(uint64_t)) - return exchange_one_int64; - else - return exchange_int64s; - case 4: - case 12: - if (size == sizeof(uint32_t)) - return exchange_one_int32; - else - return exchange_int32s; - case 2: - case 6: - case 10: - case 14: - if (size == sizeof(uint16_t)) - return exchange_one_int16; - else - return exchange_int16s; - default: - if (size == 1) - return exchange_one_byte; - else - return exchange_bytes; - } -} - -static void heapsortx(void *base, size_t nmemb, size_t size, cmp_f cmp, void *opaque) -{ - uint8_t *basep = (uint8_t *)base; - size_t i, n, c, r; - exchange_f swap = exchange_func(base, size); - - if (nmemb > 1) { - i = (nmemb / 2) * size; - n = nmemb * size; - - while (i > 0) { - i -= size; - for (r = i; (c = r * 2 + size) < n; r = c) { - if (c < n - size && cmp(basep + c, basep + c + size, opaque) <= 0) - c += size; - if (cmp(basep + r, basep + c, opaque) > 0) - break; - swap(basep + r, basep + c, size); - } - } - for (i = n - size; i > 0; i -= size) { - swap(basep, basep + i, size); - - for (r = 0; (c = r * 2 + size) < i; r = c) { - if (c < i - size && cmp(basep + c, basep + c + size, opaque) <= 0) - c += size; - if (cmp(basep + r, basep + c, opaque) > 0) - break; - swap(basep + r, basep + c, size); - } - } - } -} - -static inline void *med3(void *a, void *b, void *c, cmp_f cmp, void *opaque) -{ - return cmp(a, b, opaque) < 0 ? - (cmp(b, c, opaque) < 0 ? b : (cmp(a, c, opaque) < 0 ? c : a )) : - (cmp(b, c, opaque) > 0 ? b : (cmp(a, c, opaque) < 0 ? a : c )); -} - -/* pointer based version with local stack and insertion sort threshhold */ -void rqsort(void *base, size_t nmemb, size_t size, cmp_f cmp, void *opaque) -{ - struct { uint8_t *base; size_t count; int depth; } stack[50], *sp = stack; - uint8_t *ptr, *pi, *pj, *plt, *pgt, *top, *m; - size_t m4, i, lt, gt, span, span2; - int c, depth; - exchange_f swap = exchange_func(base, size); - exchange_f swap_block = exchange_func(base, size | 128); - - if (nmemb < 2 || size <= 0) - return; - - sp->base = (uint8_t *)base; - sp->count = nmemb; - sp->depth = 0; - sp++; - - while (sp > stack) { - sp--; - ptr = sp->base; - nmemb = sp->count; - depth = sp->depth; - - while (nmemb > 6) { - if (++depth > 50) { - /* depth check to ensure worst case logarithmic time */ - heapsortx(ptr, nmemb, size, cmp, opaque); - nmemb = 0; - break; - } - /* select median of 3 from 1/4, 1/2, 3/4 positions */ - /* should use median of 5 or 9? */ - m4 = (nmemb >> 2) * size; - m = med3(ptr + m4, ptr + 2 * m4, ptr + 3 * m4, cmp, opaque); - swap(ptr, m, size); /* move the pivot to the start or the array */ - i = lt = 1; - pi = plt = ptr + size; - gt = nmemb; - pj = pgt = top = ptr + nmemb * size; - for (;;) { - while (pi < pj && (c = cmp(ptr, pi, opaque)) >= 0) { - if (c == 0) { - swap(plt, pi, size); - lt++; - plt += size; - } - i++; - pi += size; - } - while (pi < (pj -= size) && (c = cmp(ptr, pj, opaque)) <= 0) { - if (c == 0) { - gt--; - pgt -= size; - swap(pgt, pj, size); - } - } - if (pi >= pj) - break; - swap(pi, pj, size); - i++; - pi += size; - } - /* array has 4 parts: - * from 0 to lt excluded: elements identical to pivot - * from lt to pi excluded: elements smaller than pivot - * from pi to gt excluded: elements greater than pivot - * from gt to n excluded: elements identical to pivot - */ - /* move elements identical to pivot in the middle of the array: */ - /* swap values in ranges [0..lt[ and [i-lt..i[ - swapping the smallest span between lt and i-lt is sufficient - */ - span = plt - ptr; - span2 = pi - plt; - lt = i - lt; - if (span > span2) - span = span2; - swap_block(ptr, pi - span, span); - /* swap values in ranges [gt..top[ and [i..top-(top-gt)[ - swapping the smallest span between top-gt and gt-i is sufficient - */ - span = top - pgt; - span2 = pgt - pi; - pgt = top - span2; - gt = nmemb - (gt - i); - if (span > span2) - span = span2; - swap_block(pi, top - span, span); - - /* now array has 3 parts: - * from 0 to lt excluded: elements smaller than pivot - * from lt to gt excluded: elements identical to pivot - * from gt to n excluded: elements greater than pivot - */ - /* stack the larger segment and keep processing the smaller one - to minimize stack use for pathological distributions */ - if (lt > nmemb - gt) { - sp->base = ptr; - sp->count = lt; - sp->depth = depth; - sp++; - ptr = pgt; - nmemb -= gt; - } else { - sp->base = pgt; - sp->count = nmemb - gt; - sp->depth = depth; - sp++; - nmemb = lt; - } - } - /* Use insertion sort for small fragments */ - for (pi = ptr + size, top = ptr + nmemb * size; pi < top; pi += size) { - for (pj = pi; pj > ptr && cmp(pj - size, pj, opaque) > 0; pj -= size) - swap(pj, pj - size, size); - } - } -} - -/*---- Portable time functions ----*/ - -#ifdef _WIN32 - // From: https://stackoverflow.com/a/26085827 -static int gettimeofday_msvc(struct timeval *tp) -{ - static const uint64_t EPOCH = ((uint64_t)116444736000000000ULL); - - SYSTEMTIME system_time; - FILETIME file_time; - uint64_t time; - - GetSystemTime(&system_time); - SystemTimeToFileTime(&system_time, &file_time); - time = ((uint64_t)file_time.dwLowDateTime); - time += ((uint64_t)file_time.dwHighDateTime) << 32; - - tp->tv_sec = (long)((time - EPOCH) / 10000000L); - tp->tv_usec = (long)(system_time.wMilliseconds * 1000); - - return 0; -} - -uint64_t js__hrtime_ns(void) { - LARGE_INTEGER counter, frequency; - double scaled_freq; - double result; - - if (!QueryPerformanceFrequency(&frequency)) - abort(); - assert(frequency.QuadPart != 0); - - if (!QueryPerformanceCounter(&counter)) - abort(); - assert(counter.QuadPart != 0); - - /* Because we have no guarantee about the order of magnitude of the - * performance counter interval, integer math could cause this computation - * to overflow. Therefore we resort to floating point math. - */ - scaled_freq = (double) frequency.QuadPart / NANOSEC; - result = (double) counter.QuadPart / scaled_freq; - return (uint64_t) result; -} -#else -uint64_t js__hrtime_ns(void) { - struct timespec t; - - if (clock_gettime(CLOCK_MONOTONIC, &t)) - abort(); - - return t.tv_sec * NANOSEC + t.tv_nsec; -} -#endif - -int64_t js__gettimeofday_us(void) { - struct timeval tv; -#ifdef _WIN32 - gettimeofday_msvc(&tv); -#else - gettimeofday(&tv, NULL); -#endif - return ((int64_t)tv.tv_sec * 1000000) + tv.tv_usec; -} - -#if defined(_WIN32) -int js_exepath(char *buffer, size_t *size_ptr) { - int utf8_len, utf16_buffer_len, utf16_len; - WCHAR* utf16_buffer; - - if (buffer == NULL || size_ptr == NULL || *size_ptr == 0) - return -1; - - if (*size_ptr > 32768) { - /* Windows paths can never be longer than this. */ - utf16_buffer_len = 32768; - } else { - utf16_buffer_len = (int)*size_ptr; - } - - utf16_buffer = malloc(sizeof(WCHAR) * utf16_buffer_len); - if (!utf16_buffer) - return -1; - - /* Get the path as UTF-16. */ - utf16_len = GetModuleFileNameW(NULL, utf16_buffer, utf16_buffer_len); - if (utf16_len <= 0) - goto error; - - /* Convert to UTF-8 */ - utf8_len = WideCharToMultiByte(CP_UTF8, - 0, - utf16_buffer, - -1, - buffer, - (int)*size_ptr, - NULL, - NULL); - if (utf8_len == 0) - goto error; - - free(utf16_buffer); - - /* utf8_len *does* include the terminating null at this point, but the - * returned size shouldn't. */ - *size_ptr = utf8_len - 1; - return 0; - -error: - free(utf16_buffer); - return -1; -} -#elif defined(__APPLE__) -int js_exepath(char *buffer, size_t *size) { - /* realpath(exepath) may be > PATH_MAX so double it to be on the safe side. */ - char abspath[PATH_MAX * 2 + 1]; - char exepath[PATH_MAX + 1]; - uint32_t exepath_size; - size_t abspath_size; - - if (buffer == NULL || size == NULL || *size == 0) - return -1; - - exepath_size = sizeof(exepath); - if (_NSGetExecutablePath(exepath, &exepath_size)) - return -1; - - if (realpath(exepath, abspath) != abspath) - return -1; - - abspath_size = strlen(abspath); - if (abspath_size == 0) - return -1; - - *size -= 1; - if (*size > abspath_size) - *size = abspath_size; - - memcpy(buffer, abspath, *size); - buffer[*size] = '\0'; - - return 0; -} -#elif defined(__linux__) || defined(__GNU__) -int js_exepath(char *buffer, size_t *size) { - ssize_t n; - - if (buffer == NULL || size == NULL || *size == 0) - return -1; - - n = *size - 1; - if (n > 0) - n = readlink("/proc/self/exe", buffer, n); - - if (n == -1) - return n; - - buffer[n] = '\0'; - *size = n; - - return 0; -} -#else -int js_exepath(char* buffer, size_t* size_ptr) { - return -1; -} -#endif - -/*--- Cross-platform threading APIs. ----*/ - -#if JS_HAVE_THREADS -#if defined(_WIN32) -typedef void (*js__once_cb)(void); - -typedef struct { - js__once_cb callback; -} js__once_data_t; - -static int WINAPI js__once_inner(INIT_ONCE *once, void *param, void **context) { - js__once_data_t *data = param; - - data->callback(); - - return 1; -} - -void js_once(js_once_t *guard, js__once_cb callback) { - js__once_data_t data = { .callback = callback }; - InitOnceExecuteOnce(guard, js__once_inner, (void*) &data, NULL); -} - -void js_mutex_init(js_mutex_t *mutex) { - InitializeCriticalSection(mutex); -} - -void js_mutex_destroy(js_mutex_t *mutex) { - DeleteCriticalSection(mutex); -} - -void js_mutex_lock(js_mutex_t *mutex) { - EnterCriticalSection(mutex); -} - -void js_mutex_unlock(js_mutex_t *mutex) { - LeaveCriticalSection(mutex); -} - -void js_cond_init(js_cond_t *cond) { - InitializeConditionVariable(cond); -} - -void js_cond_destroy(js_cond_t *cond) { - /* nothing to do */ - (void) cond; -} - -void js_cond_signal(js_cond_t *cond) { - WakeConditionVariable(cond); -} - -void js_cond_broadcast(js_cond_t *cond) { - WakeAllConditionVariable(cond); -} - -void js_cond_wait(js_cond_t *cond, js_mutex_t *mutex) { - if (!SleepConditionVariableCS(cond, mutex, INFINITE)) - abort(); -} - -int js_cond_timedwait(js_cond_t *cond, js_mutex_t *mutex, uint64_t timeout) { - if (SleepConditionVariableCS(cond, mutex, (DWORD)(timeout / 1e6))) - return 0; - if (GetLastError() != ERROR_TIMEOUT) - abort(); - return -1; -} - -int js_thread_create(js_thread_t *thrd, void (*start)(void *), void *arg, - int flags) -{ - HANDLE h, cp; - - *thrd = INVALID_HANDLE_VALUE; - if (flags & ~JS_THREAD_CREATE_DETACHED) - return -1; - h = (HANDLE)_beginthread(start, /*stacksize*/2<<20, arg); - if (!h) - return -1; - if (flags & JS_THREAD_CREATE_DETACHED) - return 0; - // _endthread() automatically closes the handle but we want to wait on - // it so make a copy. Race-y for very short-lived threads. Can be solved - // by switching to _beginthreadex(CREATE_SUSPENDED) but means changing - // |start| from __cdecl to __stdcall. - cp = GetCurrentProcess(); - if (DuplicateHandle(cp, h, cp, thrd, 0, FALSE, DUPLICATE_SAME_ACCESS)) - return 0; - return -1; -} - -int js_thread_join(js_thread_t thrd) -{ - if (WaitForSingleObject(thrd, INFINITE)) - return -1; - CloseHandle(thrd); - return 0; -} - -#else /* !defined(_WIN32) */ - -void js_once(js_once_t *guard, void (*callback)(void)) { - if (pthread_once(guard, callback)) - abort(); -} - -void js_mutex_init(js_mutex_t *mutex) { - if (pthread_mutex_init(mutex, NULL)) - abort(); -} - -void js_mutex_destroy(js_mutex_t *mutex) { - if (pthread_mutex_destroy(mutex)) - abort(); -} - -void js_mutex_lock(js_mutex_t *mutex) { - if (pthread_mutex_lock(mutex)) - abort(); -} - -void js_mutex_unlock(js_mutex_t *mutex) { - if (pthread_mutex_unlock(mutex)) - abort(); -} - -void js_cond_init(js_cond_t *cond) { -#if defined(__APPLE__) && defined(__MACH__) - if (pthread_cond_init(cond, NULL)) - abort(); -#else - pthread_condattr_t attr; - - if (pthread_condattr_init(&attr)) - abort(); - - if (pthread_condattr_setclock(&attr, CLOCK_MONOTONIC)) - abort(); - - if (pthread_cond_init(cond, &attr)) - abort(); - - if (pthread_condattr_destroy(&attr)) - abort(); -#endif -} - -void js_cond_destroy(js_cond_t *cond) { -#if defined(__APPLE__) && defined(__MACH__) - /* It has been reported that destroying condition variables that have been - * signalled but not waited on can sometimes result in application crashes. - * See https://codereview.chromium.org/1323293005. - */ - pthread_mutex_t mutex; - struct timespec ts; - int err; - - if (pthread_mutex_init(&mutex, NULL)) - abort(); - - if (pthread_mutex_lock(&mutex)) - abort(); - - ts.tv_sec = 0; - ts.tv_nsec = 1; - - err = pthread_cond_timedwait_relative_np(cond, &mutex, &ts); - if (err != 0 && err != ETIMEDOUT) - abort(); - - if (pthread_mutex_unlock(&mutex)) - abort(); - - if (pthread_mutex_destroy(&mutex)) - abort(); -#endif /* defined(__APPLE__) && defined(__MACH__) */ - - if (pthread_cond_destroy(cond)) - abort(); -} - -void js_cond_signal(js_cond_t *cond) { - if (pthread_cond_signal(cond)) - abort(); -} - -void js_cond_broadcast(js_cond_t *cond) { - if (pthread_cond_broadcast(cond)) - abort(); -} - -void js_cond_wait(js_cond_t *cond, js_mutex_t *mutex) { -#if defined(__APPLE__) && defined(__MACH__) - int r; - - errno = 0; - r = pthread_cond_wait(cond, mutex); - - /* Workaround for a bug in OS X at least up to 13.6 - * See https://github.com/libuv/libuv/issues/4165 - */ - if (r == EINVAL && errno == EBUSY) - return; - if (r) - abort(); -#else - if (pthread_cond_wait(cond, mutex)) - abort(); -#endif -} - -int js_cond_timedwait(js_cond_t *cond, js_mutex_t *mutex, uint64_t timeout) { - int r; - struct timespec ts; - -#if !defined(__APPLE__) - timeout += js__hrtime_ns(); -#endif - - ts.tv_sec = timeout / NANOSEC; - ts.tv_nsec = timeout % NANOSEC; -#if defined(__APPLE__) && defined(__MACH__) - r = pthread_cond_timedwait_relative_np(cond, mutex, &ts); -#else - r = pthread_cond_timedwait(cond, mutex, &ts); -#endif - - if (r == 0) - return 0; - - if (r == ETIMEDOUT) - return -1; - - abort(); - - /* Pacify some compilers. */ - return -1; -} - -int js_thread_create(js_thread_t *thrd, void (*start)(void *), void *arg, - int flags) -{ - union { - void (*x)(void *); - void *(*f)(void *); - } u = {start}; - pthread_attr_t attr; - int ret; - - if (flags & ~JS_THREAD_CREATE_DETACHED) - return -1; - if (pthread_attr_init(&attr)) - return -1; - ret = -1; - if (pthread_attr_setstacksize(&attr, 2<<20)) - goto fail; - if (flags & JS_THREAD_CREATE_DETACHED) - if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)) - goto fail; - if (pthread_create(thrd, &attr, u.f, arg)) - goto fail; - ret = 0; -fail: - pthread_attr_destroy(&attr); - return ret; -} - -int js_thread_join(js_thread_t thrd) -{ - if (pthread_join(thrd, NULL)) - return -1; - return 0; -} - -#endif /* !defined(_WIN32) */ -#endif /* JS_HAVE_THREADS */ - -#ifdef __GNUC__ -#pragma GCC visibility pop -#endif diff --git a/vendor/quickjs/source_ng/cutils.h b/vendor/quickjs/source_ng/cutils.h deleted file mode 100755 index f5d2a8bce..000000000 --- a/vendor/quickjs/source_ng/cutils.h +++ /dev/null @@ -1,660 +0,0 @@ -/* - * C utilities - * - * Copyright (c) 2017 Fabrice Bellard - * Copyright (c) 2018 Charlie Gordon - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#ifndef CUTILS_H -#define CUTILS_H - -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_MSC_VER) -#include -#include -#define alloca _alloca -#define ssize_t ptrdiff_t -#endif -#if defined(__APPLE__) -#include -#elif defined(__linux__) || defined(__ANDROID__) || defined(__CYGWIN__) || defined(__GLIBC__) -#include -#elif defined(__FreeBSD__) -#include -#elif defined(_WIN32) -#include -#endif -#if !defined(_WIN32) && !defined(EMSCRIPTEN) && !defined(__wasi__) -#include -#include -#endif -#if !defined(_WIN32) -#include -#include -#endif - -#if defined(_MSC_VER) && !defined(__clang__) -# define likely(x) (x) -# define unlikely(x) (x) -# define force_inline __forceinline -# define no_inline __declspec(noinline) -# define __maybe_unused -# define __attribute__(x) -# define __attribute(x) -#else -# define likely(x) __builtin_expect(!!(x), 1) -# define unlikely(x) __builtin_expect(!!(x), 0) -# define force_inline inline __attribute__((always_inline)) -# define no_inline __attribute__((noinline)) -# define __maybe_unused __attribute__((unused)) -#endif - -#if defined(_MSC_VER) && !defined(__clang__) -#include -#define INF INFINITY -#define NEG_INF -INFINITY -#else -#define INF (1.0/0.0) -#define NEG_INF (-1.0/0.0) -#endif - -#ifndef offsetof -#define offsetof(type, field) ((size_t) &((type *)0)->field) -#endif -#ifndef countof -#define countof(x) (sizeof(x) / sizeof((x)[0])) -#ifndef endof -#define endof(x) ((x) + countof(x)) -#endif -#endif -#ifndef container_of -/* return the pointer of type 'type *' containing 'ptr' as field 'member' */ -#define container_of(ptr, type, member) ((type *)((uint8_t *)(ptr) - offsetof(type, member))) -#endif - -#if defined(_MSC_VER) || defined(__cplusplus) -#define minimum_length(n) n -#else -#define minimum_length(n) static n -#endif - -/* Borrowed from Folly */ -#ifndef JS_PRINTF_FORMAT -#ifdef _MSC_VER -#include -#define JS_PRINTF_FORMAT _Printf_format_string_ -#define JS_PRINTF_FORMAT_ATTR(format_param, dots_param) -#else -#define JS_PRINTF_FORMAT -#if !defined(__clang__) && defined(__GNUC__) -#define JS_PRINTF_FORMAT_ATTR(format_param, dots_param) \ - __attribute__((format(gnu_printf, format_param, dots_param))) -#else -#define JS_PRINTF_FORMAT_ATTR(format_param, dots_param) \ - __attribute__((format(printf, format_param, dots_param))) -#endif -#endif -#endif - -#if defined(PATH_MAX) -# define JS__PATH_MAX PATH_MAX -#elif defined(_WIN32) -# define JS__PATH_MAX 32767 -#else -# define JS__PATH_MAX 8192 -#endif - -void js__pstrcpy(char *buf, int buf_size, const char *str); -char *js__pstrcat(char *buf, int buf_size, const char *s); -int js__strstart(const char *str, const char *val, const char **ptr); -int js__has_suffix(const char *str, const char *suffix); - -static inline uint8_t is_be(void) { - union { - uint16_t a; - uint8_t b; - } u = { 0x100 }; - return u.b; -} - -static inline int max_int(int a, int b) -{ - if (a > b) - return a; - else - return b; -} - -static inline int min_int(int a, int b) -{ - if (a < b) - return a; - else - return b; -} - -static inline uint32_t max_uint32(uint32_t a, uint32_t b) -{ - if (a > b) - return a; - else - return b; -} - -static inline uint32_t min_uint32(uint32_t a, uint32_t b) -{ - if (a < b) - return a; - else - return b; -} - -static inline int64_t max_int64(int64_t a, int64_t b) -{ - if (a > b) - return a; - else - return b; -} - -static inline int64_t min_int64(int64_t a, int64_t b) -{ - if (a < b) - return a; - else - return b; -} - -/* WARNING: undefined if a = 0 */ -static inline int clz32(unsigned int a) -{ -#if defined(_MSC_VER) && !defined(__clang__) - unsigned long index; - _BitScanReverse(&index, a); - return 31 - index; -#else - return __builtin_clz(a); -#endif -} - -/* WARNING: undefined if a = 0 */ -static inline int clz64(uint64_t a) -{ -#if defined(_MSC_VER) && !defined(__clang__) -#if INTPTR_MAX == INT64_MAX - unsigned long index; - _BitScanReverse64(&index, a); - return 63 - index; -#else - if (a >> 32) - return clz32((unsigned)(a >> 32)); - else - return clz32((unsigned)a) + 32; -#endif -#else - return __builtin_clzll(a); -#endif -} - -/* WARNING: undefined if a = 0 */ -static inline int ctz32(unsigned int a) -{ -#if defined(_MSC_VER) && !defined(__clang__) - unsigned long index; - _BitScanForward(&index, a); - return index; -#else - return __builtin_ctz(a); -#endif -} - -/* WARNING: undefined if a = 0 */ -static inline int ctz64(uint64_t a) -{ -#if defined(_MSC_VER) && !defined(__clang__) - unsigned long index; - _BitScanForward64(&index, a); - return index; -#else - return __builtin_ctzll(a); -#endif -} - -static inline uint64_t get_u64(const uint8_t *tab) -{ - uint64_t v; - memcpy(&v, tab, sizeof(v)); - return v; -} - -static inline int64_t get_i64(const uint8_t *tab) -{ - int64_t v; - memcpy(&v, tab, sizeof(v)); - return v; -} - -static inline void put_u64(uint8_t *tab, uint64_t val) -{ - memcpy(tab, &val, sizeof(val)); -} - -static inline uint32_t get_u32(const uint8_t *tab) -{ - uint32_t v; - memcpy(&v, tab, sizeof(v)); - return v; -} - -static inline int32_t get_i32(const uint8_t *tab) -{ - int32_t v; - memcpy(&v, tab, sizeof(v)); - return v; -} - -static inline void put_u32(uint8_t *tab, uint32_t val) -{ - memcpy(tab, &val, sizeof(val)); -} - -static inline uint32_t get_u16(const uint8_t *tab) -{ - uint16_t v; - memcpy(&v, tab, sizeof(v)); - return v; -} - -static inline int32_t get_i16(const uint8_t *tab) -{ - int16_t v; - memcpy(&v, tab, sizeof(v)); - return v; -} - -static inline void put_u16(uint8_t *tab, uint16_t val) -{ - memcpy(tab, &val, sizeof(val)); -} - -static inline uint32_t get_u8(const uint8_t *tab) -{ - return *tab; -} - -static inline int32_t get_i8(const uint8_t *tab) -{ - return (int8_t)*tab; -} - -static inline void put_u8(uint8_t *tab, uint8_t val) -{ - *tab = val; -} - -#ifndef bswap16 -static inline uint16_t bswap16(uint16_t x) -{ - return (x >> 8) | (x << 8); -} -#endif - -#ifndef bswap32 -static inline uint32_t bswap32(uint32_t v) -{ - return ((v & 0xff000000) >> 24) | ((v & 0x00ff0000) >> 8) | - ((v & 0x0000ff00) << 8) | ((v & 0x000000ff) << 24); -} -#endif - -#ifndef bswap64 -static inline uint64_t bswap64(uint64_t v) -{ - return ((v & ((uint64_t)0xff << (7 * 8))) >> (7 * 8)) | - ((v & ((uint64_t)0xff << (6 * 8))) >> (5 * 8)) | - ((v & ((uint64_t)0xff << (5 * 8))) >> (3 * 8)) | - ((v & ((uint64_t)0xff << (4 * 8))) >> (1 * 8)) | - ((v & ((uint64_t)0xff << (3 * 8))) << (1 * 8)) | - ((v & ((uint64_t)0xff << (2 * 8))) << (3 * 8)) | - ((v & ((uint64_t)0xff << (1 * 8))) << (5 * 8)) | - ((v & ((uint64_t)0xff << (0 * 8))) << (7 * 8)); -} -#endif - -static inline void inplace_bswap16(uint8_t *tab) { - put_u16(tab, bswap16(get_u16(tab))); -} - -static inline void inplace_bswap32(uint8_t *tab) { - put_u32(tab, bswap32(get_u32(tab))); -} - -static inline double fromfp16(uint16_t v) { - double d, s; - int e; - if ((v & 0x7C00) == 0x7C00) { - d = (v & 0x3FF) ? NAN : INFINITY; - } else { - d = (v & 0x3FF) / 1024.; - e = (v & 0x7C00) >> 10; - if (e == 0) { - e = -14; - } else { - d += 1; - e -= 15; - } - d = scalbn(d, e); - } - s = (v & 0x8000) ? -1.0 : 1.0; - return d * s; -} - -static inline uint16_t tofp16(double d) { - uint16_t f, s; - double t; - int e; - s = 0; - if (copysign(1, d) < 0) { // preserve sign when |d| is negative zero - d = -d; - s = 0x8000; - } - if (isinf(d)) - return s | 0x7C00; - if (isnan(d)) - return s | 0x7C01; - if (d == 0) - return s | 0; - d = 2 * frexp(d, &e); - e--; - if (e > 15) - return s | 0x7C00; // out of range, return +/-infinity - if (e < -25) { - d = 0; - e = 0; - } else if (e < -14) { - d = scalbn(d, e + 14); - e = 0; - } else { - d -= 1; - e += 15; - } - d *= 1024.; - f = (uint16_t)d; - t = d - f; - if (t < 0.5) - goto done; - if (t == 0.5) - if ((f & 1) == 0) - goto done; - // adjust for rounding - if (++f == 1024) { - f = 0; - if (++e == 31) - return s | 0x7C00; // out of range, return +/-infinity - } -done: - return s | (e << 10) | f; -} - -static inline int isfp16nan(uint16_t v) { - return (v & 0x7FFF) > 0x7C00; -} - -static inline int isfp16zero(uint16_t v) { - return (v & 0x7FFF) == 0; -} - -/* XXX: should take an extra argument to pass slack information to the caller */ -typedef void *DynBufReallocFunc(void *opaque, void *ptr, size_t size); - -typedef struct DynBuf { - uint8_t *buf; - size_t size; - size_t allocated_size; - bool error; /* true if a memory allocation error occurred */ - DynBufReallocFunc *realloc_func; - void *opaque; /* for realloc_func */ -} DynBuf; - -void dbuf_init(DynBuf *s); -void dbuf_init2(DynBuf *s, void *opaque, DynBufReallocFunc *realloc_func); -int dbuf_realloc(DynBuf *s, size_t new_size); -int dbuf_write(DynBuf *s, size_t offset, const void *data, size_t len); -int dbuf_put(DynBuf *s, const void *data, size_t len); -int dbuf_put_self(DynBuf *s, size_t offset, size_t len); -int dbuf_putc(DynBuf *s, uint8_t c); -int dbuf_putstr(DynBuf *s, const char *str); -static inline int dbuf_put_u16(DynBuf *s, uint16_t val) -{ - return dbuf_put(s, (uint8_t *)&val, 2); -} -static inline int dbuf_put_u32(DynBuf *s, uint32_t val) -{ - return dbuf_put(s, (uint8_t *)&val, 4); -} -static inline int dbuf_put_u64(DynBuf *s, uint64_t val) -{ - return dbuf_put(s, (uint8_t *)&val, 8); -} -int JS_PRINTF_FORMAT_ATTR(2, 3) dbuf_printf(DynBuf *s, JS_PRINTF_FORMAT const char *fmt, ...); -void dbuf_free(DynBuf *s); -static inline bool dbuf_error(DynBuf *s) { - return s->error; -} -static inline void dbuf_set_error(DynBuf *s) -{ - s->error = true; -} - -/*---- UTF-8 and UTF-16 handling ----*/ - -#define UTF8_CHAR_LEN_MAX 4 - -enum { - UTF8_PLAIN_ASCII = 0, // 7-bit ASCII plain text - UTF8_NON_ASCII = 1, // has non ASCII code points (8-bit or more) - UTF8_HAS_16BIT = 2, // has 16-bit code points - UTF8_HAS_NON_BMP1 = 4, // has non-BMP1 code points, needs UTF-16 surrogate pairs - UTF8_HAS_ERRORS = 8, // has encoding errors -}; -int utf8_scan(const char *buf, size_t len, size_t *plen); -size_t utf8_encode_len(uint32_t c); -size_t utf8_encode(uint8_t buf[minimum_length(UTF8_CHAR_LEN_MAX)], uint32_t c); -uint32_t utf8_decode_len(const uint8_t *p, size_t max_len, const uint8_t **pp); -uint32_t utf8_decode(const uint8_t *p, const uint8_t **pp); -size_t utf8_decode_buf8(uint8_t *dest, size_t dest_len, const char *src, size_t src_len); -size_t utf8_decode_buf16(uint16_t *dest, size_t dest_len, const char *src, size_t src_len); -size_t utf8_encode_buf8(char *dest, size_t dest_len, const uint8_t *src, size_t src_len); -size_t utf8_encode_buf16(char *dest, size_t dest_len, const uint16_t *src, size_t src_len); - -static inline bool is_surrogate(uint32_t c) -{ - return (c >> 11) == (0xD800 >> 11); // 0xD800-0xDFFF -} - -static inline bool is_hi_surrogate(uint32_t c) -{ - return (c >> 10) == (0xD800 >> 10); // 0xD800-0xDBFF -} - -static inline bool is_lo_surrogate(uint32_t c) -{ - return (c >> 10) == (0xDC00 >> 10); // 0xDC00-0xDFFF -} - -static inline uint32_t get_hi_surrogate(uint32_t c) -{ - return (c >> 10) - (0x10000 >> 10) + 0xD800; -} - -static inline uint32_t get_lo_surrogate(uint32_t c) -{ - return (c & 0x3FF) | 0xDC00; -} - -static inline uint32_t from_surrogate(uint32_t hi, uint32_t lo) -{ - return 65536 + 1024 * (hi & 1023) + (lo & 1023); -} - -static inline int from_hex(int c) -{ - if (c >= '0' && c <= '9') - return c - '0'; - else if (c >= 'A' && c <= 'F') - return c - 'A' + 10; - else if (c >= 'a' && c <= 'f') - return c - 'a' + 10; - else - return -1; -} - -static inline uint8_t is_upper_ascii(uint8_t c) { - return c >= 'A' && c <= 'Z'; -} - -static inline uint8_t to_upper_ascii(uint8_t c) { - return c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c; -} - -void rqsort(void *base, size_t nmemb, size_t size, - int (*cmp)(const void *, const void *, void *), - void *arg); - -static inline uint64_t float64_as_uint64(double d) -{ - union { - double d; - uint64_t u64; - } u; - u.d = d; - return u.u64; -} - -static inline double uint64_as_float64(uint64_t u64) -{ - union { - double d; - uint64_t u64; - } u; - u.u64 = u64; - return u.d; -} - -int64_t js__gettimeofday_us(void); -uint64_t js__hrtime_ns(void); - -static inline size_t js__malloc_usable_size(const void *ptr) -{ -#if defined(__APPLE__) - return malloc_size(ptr); -#elif defined(_WIN32) - return _msize((void *)ptr); -#elif defined(__linux__) || defined(__ANDROID__) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__GLIBC__) - return malloc_usable_size((void *)ptr); -#else - return 0; -#endif -} - -int js_exepath(char* buffer, size_t* size); - -/* Cross-platform threading APIs. */ - -#if defined(EMSCRIPTEN) || defined(__wasi__) - -#define JS_HAVE_THREADS 0 - -#else - -#define JS_HAVE_THREADS 1 - -#if defined(_WIN32) -#define JS_ONCE_INIT INIT_ONCE_STATIC_INIT -typedef INIT_ONCE js_once_t; -typedef CRITICAL_SECTION js_mutex_t; -typedef CONDITION_VARIABLE js_cond_t; -typedef HANDLE js_thread_t; -#else -#define JS_ONCE_INIT PTHREAD_ONCE_INIT -typedef pthread_once_t js_once_t; -typedef pthread_mutex_t js_mutex_t; -typedef pthread_cond_t js_cond_t; -typedef pthread_t js_thread_t; -#endif - -void js_once(js_once_t *guard, void (*callback)(void)); - -void js_mutex_init(js_mutex_t *mutex); -void js_mutex_destroy(js_mutex_t *mutex); -void js_mutex_lock(js_mutex_t *mutex); -void js_mutex_unlock(js_mutex_t *mutex); - -void js_cond_init(js_cond_t *cond); -void js_cond_destroy(js_cond_t *cond); -void js_cond_signal(js_cond_t *cond); -void js_cond_broadcast(js_cond_t *cond); -void js_cond_wait(js_cond_t *cond, js_mutex_t *mutex); -int js_cond_timedwait(js_cond_t *cond, js_mutex_t *mutex, uint64_t timeout); - -enum { - JS_THREAD_CREATE_DETACHED = 1, -}; - -// creates threads with 2 MB stacks (glibc default) -int js_thread_create(js_thread_t *thrd, void (*start)(void *), void *arg, - int flags); -int js_thread_join(js_thread_t thrd); - -#endif /* !defined(EMSCRIPTEN) && !defined(__wasi__) */ - -// JS requires strict rounding behavior. Turn on 64-bits double precision -// and disable x87 80-bits extended precision for intermediate floating-point -// results. 0x300 is extended precision, 0x200 is double precision. -// Note that `*&cw` in the asm constraints looks redundant but isn't. -#if defined(__i386__) && !defined(_MSC_VER) -#define JS_X87_FPCW_SAVE_AND_ADJUST(cw) \ - unsigned short cw; \ - __asm__ __volatile__("fnstcw %0" : "=m"(*&cw)); \ - do { \ - unsigned short t = 0x200 | (cw & ~0x300); \ - __asm__ __volatile__("fldcw %0" : /*empty*/ : "m"(*&t)); \ - } while (0) -#define JS_X87_FPCW_RESTORE(cw) \ - __asm__ __volatile__("fldcw %0" : /*empty*/ : "m"(*&cw)) -#else -#define JS_X87_FPCW_SAVE_AND_ADJUST(cw) -#define JS_X87_FPCW_RESTORE(cw) -#endif - -#ifdef __cplusplus -} /* extern "C" { */ -#endif - -#endif /* CUTILS_H */ diff --git a/vendor/quickjs/source_ng/cxxtest.cc b/vendor/quickjs/source_ng/cxxtest.cc deleted file mode 100755 index b6151009a..000000000 --- a/vendor/quickjs/source_ng/cxxtest.cc +++ /dev/null @@ -1,2 +0,0 @@ -// note: file is not actually compiled, only checked for C++ syntax errors -#include "ctest.c" diff --git a/vendor/quickjs/source_ng/dtoa.c b/vendor/quickjs/source_ng/dtoa.c deleted file mode 100755 index a89e824f9..000000000 --- a/vendor/quickjs/source_ng/dtoa.c +++ /dev/null @@ -1,1619 +0,0 @@ -/* - * Tiny float64 printing and parsing library - * - * Copyright (c) 2024 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include -#include -#include -// #include -#include -// #include - -#include "cutils.h" -#include "dtoa.h" - -/* - TODO: - - simplify subnormal handling - - reduce max memory usage - - free format: could add shortcut if exact result - - use 64 bit limb_t when possible - - use another algorithm for free format dtoa in base 10 (ryu ?) -*/ - -#define USE_POW5_TABLE -/* use fast path to print small integers in free format */ -#define USE_FAST_INT - -#define LIMB_LOG2_BITS 5 - -#define LIMB_BITS (1 << LIMB_LOG2_BITS) - -typedef int32_t slimb_t; -typedef uint32_t limb_t; -typedef uint64_t dlimb_t; - -#define LIMB_DIGITS 9 - -#define JS_RADIX_MAX 36 - -#define DBIGNUM_LEN_MAX 52 /* ~ 2^(1072+53)*36^100 (dtoa) */ -#define MANT_LEN_MAX 18 /* < 36^100 */ - -typedef intptr_t mp_size_t; - -/* the represented number is sum(i, tab[i]*2^(LIMB_BITS * i)) */ -typedef struct { - int len; /* >= 1 */ - limb_t tab[]; -} mpb_t; - -static limb_t mp_add_ui(limb_t *tab, limb_t b, size_t n) -{ - size_t i; - limb_t k, a; - - k=b; - for(i=0;i> LIMB_BITS; - } - return l; -} - -/* WARNING: d must be >= 2^(LIMB_BITS-1) */ -static inline limb_t udiv1norm_init(limb_t d) -{ - limb_t a0, a1; - a1 = -d - 1; - a0 = -1; - return (((dlimb_t)a1 << LIMB_BITS) | a0) / d; -} - -/* return the quotient and the remainder in '*pr'of 'a1*2^LIMB_BITS+a0 - / d' with 0 <= a1 < d. */ -static inline limb_t udiv1norm(limb_t *pr, limb_t a1, limb_t a0, - limb_t d, limb_t d_inv) -{ - limb_t n1m, n_adj, q, r, ah; - dlimb_t a; - n1m = ((slimb_t)a0 >> (LIMB_BITS - 1)); - n_adj = a0 + (n1m & d); - a = (dlimb_t)d_inv * (a1 - n1m) + n_adj; - q = (a >> LIMB_BITS) + a1; - /* compute a - q * r and update q so that the remainder is between - 0 and d - 1 */ - a = ((dlimb_t)a1 << LIMB_BITS) | a0; - a = a - (dlimb_t)q * d - d; - ah = a >> LIMB_BITS; - q += 1 + ah; - r = (limb_t)a + (ah & d); - *pr = r; - return q; -} - -static limb_t mp_div1(limb_t *tabr, const limb_t *taba, limb_t n, - limb_t b, limb_t r) -{ - slimb_t i; - dlimb_t a1; - for(i = n - 1; i >= 0; i--) { - a1 = ((dlimb_t)r << LIMB_BITS) | taba[i]; - tabr[i] = a1 / b; - r = a1 % b; - } - return r; -} - -/* r = (a + high*B^n) >> shift. Return the remainder r (0 <= r < 2^shift). - 1 <= shift <= LIMB_BITS - 1 */ -static limb_t mp_shr(limb_t *tab_r, const limb_t *tab, mp_size_t n, - int shift, limb_t high) -{ - mp_size_t i; - limb_t l, a; - - assert(shift >= 1 && shift < LIMB_BITS); - l = high; - for(i = n - 1; i >= 0; i--) { - a = tab[i]; - tab_r[i] = (a >> shift) | (l << (LIMB_BITS - shift)); - l = a; - } - return l & (((limb_t)1 << shift) - 1); -} - -/* r = (a << shift) + low. 1 <= shift <= LIMB_BITS - 1, 0 <= low < - 2^shift. */ -static limb_t mp_shl(limb_t *tab_r, const limb_t *tab, mp_size_t n, - int shift, limb_t low) -{ - mp_size_t i; - limb_t l, a; - - assert(shift >= 1 && shift < LIMB_BITS); - l = low; - for(i = 0; i < n; i++) { - a = tab[i]; - tab_r[i] = (a << shift) | l; - l = (a >> (LIMB_BITS - shift)); - } - return l; -} - -static no_inline limb_t mp_div1norm(limb_t *tabr, const limb_t *taba, limb_t n, - limb_t b, limb_t r, limb_t b_inv, int shift) -{ - slimb_t i; - - if (shift != 0) { - r = (r << shift) | mp_shl(tabr, taba, n, shift, 0); - } - for(i = n - 1; i >= 0; i--) { - tabr[i] = udiv1norm(&r, r, taba[i], b, b_inv); - } - r >>= shift; - return r; -} - -static __maybe_unused void mpb_dump(const char *str, const mpb_t *a) -{ - int i; - - printf("%s= 0x", str); - for(i = a->len - 1; i >= 0; i--) { - printf("%08x", a->tab[i]); - if (i != 0) - printf("_"); - } - printf("\n"); -} - -static void mpb_renorm(mpb_t *r) -{ - while (r->len > 1 && r->tab[r->len - 1] == 0) - r->len--; -} - -#ifdef USE_POW5_TABLE -static const uint32_t pow5_table[17] = { - 0x00000005, 0x00000019, 0x0000007d, 0x00000271, - 0x00000c35, 0x00003d09, 0x0001312d, 0x0005f5e1, - 0x001dcd65, 0x009502f9, 0x02e90edd, 0x0e8d4a51, - 0x48c27395, 0x6bcc41e9, 0x1afd498d, 0x86f26fc1, - 0xa2bc2ec5, -}; - -static const uint8_t pow5h_table[4] = { - 0x00000001, 0x00000007, 0x00000023, 0x000000b1, -}; - -static const uint32_t pow5_inv_table[13] = { - 0x99999999, 0x47ae147a, 0x0624dd2f, 0xa36e2eb1, - 0x4f8b588e, 0x0c6f7a0b, 0xad7f29ab, 0x5798ee23, - 0x12e0be82, 0xb7cdfd9d, 0x5fd7fe17, 0x19799812, - 0xc25c2684, -}; -#endif - -/* return a^b */ -static uint64_t pow_ui(uint32_t a, uint32_t b) -{ - int i, n_bits; - uint64_t r; - if (b == 0) - return 1; - if (b == 1) - return a; -#ifdef USE_POW5_TABLE - if ((a == 5 || a == 10) && b <= 17) { - r = pow5_table[b - 1]; - if (b >= 14) { - r |= (uint64_t)pow5h_table[b - 14] << 32; - } - if (a == 10) - r <<= b; - return r; - } -#endif - r = a; - n_bits = 32 - clz32(b); - for(i = n_bits - 2; i >= 0; i--) { - r *= r; - if ((b >> i) & 1) - r *= a; - } - return r; -} - -static uint32_t pow_ui_inv(uint32_t *pr_inv, int *pshift, uint32_t a, uint32_t b) -{ - uint32_t r_inv, r; - int shift; -#ifdef USE_POW5_TABLE - if (a == 5 && b >= 1 && b <= 13) { - r = pow5_table[b - 1]; - shift = clz32(r); - r <<= shift; - r_inv = pow5_inv_table[b - 1]; - } else -#endif - { - r = pow_ui(a, b); - shift = clz32(r); - r <<= shift; - r_inv = udiv1norm_init(r); - } - *pshift = shift; - *pr_inv = r_inv; - return r; -} - -enum { - JS_RNDN, /* round to nearest, ties to even */ - JS_RNDNA, /* round to nearest, ties away from zero */ - JS_RNDZ, -}; - -static int mpb_get_bit(const mpb_t *r, int k) -{ - int l; - - l = (unsigned)k / LIMB_BITS; - k = k & (LIMB_BITS - 1); - if (l >= r->len) - return 0; - else - return (r->tab[l] >> k) & 1; -} - -/* compute round(r / 2^shift). 'shift' can be negative */ -static void mpb_shr_round(mpb_t *r, int shift, int rnd_mode) -{ - int l, i; - - if (shift == 0) - return; - if (shift < 0) { - shift = -shift; - l = (unsigned)shift / LIMB_BITS; - shift = shift & (LIMB_BITS - 1); - if (shift != 0) { - r->tab[r->len] = mp_shl(r->tab, r->tab, r->len, shift, 0); - r->len++; - mpb_renorm(r); - } - if (l > 0) { - for(i = r->len - 1; i >= 0; i--) - r->tab[i + l] = r->tab[i]; - for(i = 0; i < l; i++) - r->tab[i] = 0; - r->len += l; - } - } else { - limb_t bit1, bit2; - int k, add_one; - - switch(rnd_mode) { - default: - case JS_RNDZ: - add_one = 0; - break; - case JS_RNDN: - case JS_RNDNA: - bit1 = mpb_get_bit(r, shift - 1); - if (bit1) { - if (rnd_mode == JS_RNDNA) { - bit2 = 1; - } else { - /* bit2 = oring of all the bits after bit1 */ - bit2 = 0; - if (shift >= 2) { - k = shift - 1; - l = (unsigned)k / LIMB_BITS; - k = k & (LIMB_BITS - 1); - for(i = 0; i < min_int(l, r->len); i++) - bit2 |= r->tab[i]; - if (l < r->len) - bit2 |= r->tab[l] & (((limb_t)1 << k) - 1); - } - } - if (bit2) { - add_one = 1; - } else { - /* round to even */ - add_one = mpb_get_bit(r, shift); - } - } else { - add_one = 0; - } - break; - } - - l = (unsigned)shift / LIMB_BITS; - shift = shift & (LIMB_BITS - 1); - if (l >= r->len) { - r->len = 1; - r->tab[0] = add_one; - } else { - if (l > 0) { - r->len -= l; - for(i = 0; i < r->len; i++) - r->tab[i] = r->tab[i + l]; - } - if (shift != 0) { - mp_shr(r->tab, r->tab, r->len, shift, 0); - mpb_renorm(r); - } - if (add_one) { - limb_t a; - a = mp_add_ui(r->tab, 1, r->len); - if (a) - r->tab[r->len++] = a; - } - } - } -} - -/* return -1, 0 or 1 */ -static int mpb_cmp(const mpb_t *a, const mpb_t *b) -{ - mp_size_t i; - if (a->len < b->len) - return -1; - else if (a->len > b->len) - return 1; - for(i = a->len - 1; i >= 0; i--) { - if (a->tab[i] != b->tab[i]) { - if (a->tab[i] < b->tab[i]) - return -1; - else - return 1; - } - } - return 0; -} - -static void mpb_set_u64(mpb_t *r, uint64_t m) -{ -#if LIMB_BITS == 64 - r->tab[0] = m; - r->len = 1; -#else - r->tab[0] = m; - r->tab[1] = m >> LIMB_BITS; - if (r->tab[1] == 0) - r->len = 1; - else - r->len = 2; -#endif -} - -static uint64_t mpb_get_u64(mpb_t *r) -{ -#if LIMB_BITS == 64 - return r->tab[0]; -#else - if (r->len == 1) { - return r->tab[0]; - } else { - return r->tab[0] | ((uint64_t)r->tab[1] << LIMB_BITS); - } -#endif -} - -/* floor_log2() = position of the first non zero bit or -1 if zero. */ -static int mpb_floor_log2(mpb_t *a) -{ - limb_t v; - v = a->tab[a->len - 1]; - if (v == 0) - return -1; - else - return a->len * LIMB_BITS - 1 - clz32(v); -} - -#define MUL_LOG2_RADIX_BASE_LOG2 24 - -/* round((1 << MUL_LOG2_RADIX_BASE_LOG2)/log2(i + 2)) */ -static const uint32_t mul_log2_radix_table[JS_RADIX_MAX - 1] = { - 0x000000, 0xa1849d, 0x000000, 0x6e40d2, - 0x6308c9, 0x5b3065, 0x000000, 0x50c24e, - 0x4d104d, 0x4a0027, 0x4768ce, 0x452e54, - 0x433d00, 0x418677, 0x000000, 0x3ea16b, - 0x3d645a, 0x3c43c2, 0x3b3b9a, 0x3a4899, - 0x39680b, 0x3897b3, 0x37d5af, 0x372069, - 0x367686, 0x35d6df, 0x354072, 0x34b261, - 0x342bea, 0x33ac62, 0x000000, 0x32bfd9, - 0x3251dd, 0x31e8d6, 0x318465, -}; - -/* return floor(a / log2(radix)) for -2048 <= a <= 2047 */ -static int mul_log2_radix(int a, int radix) -{ - int radix_bits, mult; - - if ((radix & (radix - 1)) == 0) { - /* if the radix is a power of two better to do it exactly */ - radix_bits = 31 - clz32(radix); - if (a < 0) - a -= radix_bits - 1; - return a / radix_bits; - } else { - mult = mul_log2_radix_table[radix - 2]; - return ((int64_t)a * mult) >> MUL_LOG2_RADIX_BASE_LOG2; - } -} - -#if 0 -static void build_mul_log2_radix_table(void) -{ - int base, radix, mult, col, base_log2; - - base_log2 = 24; - base = 1 << base_log2; - col = 0; - for(radix = 2; radix <= 36; radix++) { - if ((radix & (radix - 1)) == 0) - mult = 0; - else - mult = lrint((double)base / log2(radix)); - printf("0x%06x, ", mult); - if (++col == 4) { - printf("\n"); - col = 0; - } - } - printf("\n"); -} - -static void mul_log2_radix_test(void) -{ - int radix, i, ref, r; - - for(radix = 2; radix <= 36; radix++) { - for(i = -2048; i <= 2047; i++) { - ref = (int)floor((double)i / log2(radix)); - r = mul_log2_radix(i, radix); - if (ref != r) { - printf("ERROR: radix=%d i=%d r=%d ref=%d\n", - radix, i, r, ref); - exit(1); - } - } - } - if (0) - build_mul_log2_radix_table(); -} -#endif - -static void u32toa_len(char *buf, uint32_t n, size_t len) -{ - int digit, i; - for(i = len - 1; i >= 0; i--) { - digit = n % 10; - n = n / 10; - buf[i] = digit + '0'; - } -} - -/* for power of 2 radixes. len >= 1 */ -static void u64toa_bin_len(char *buf, uint64_t n, unsigned int radix_bits, int len) -{ - int digit, i; - unsigned int mask; - - mask = (1 << radix_bits) - 1; - for(i = len - 1; i >= 0; i--) { - digit = n & mask; - n >>= radix_bits; - if (digit < 10) - digit += '0'; - else - digit += 'a' - 10; - buf[i] = digit; - } -} - -/* len >= 1. 2 <= radix <= 36 */ -static void limb_to_a(char *buf, limb_t n, unsigned int radix, int len) -{ - int digit, i; - - if (radix == 10) { - /* specific case with constant divisor */ -#if LIMB_BITS == 32 - u32toa_len(buf, n, len); -#else - /* XXX: optimize */ - for(i = len - 1; i >= 0; i--) { - digit = (limb_t)n % 10; - n = (limb_t)n / 10; - buf[i] = digit + '0'; - } -#endif - } else { - for(i = len - 1; i >= 0; i--) { - digit = (limb_t)n % radix; - n = (limb_t)n / radix; - if (digit < 10) - digit += '0'; - else - digit += 'a' - 10; - buf[i] = digit; - } - } -} - -size_t u32toa(char *buf, uint32_t n) -{ - char buf1[10], *q; - size_t len; - - q = buf1 + sizeof(buf1); - do { - *--q = n % 10 + '0'; - n /= 10; - } while (n != 0); - len = buf1 + sizeof(buf1) - q; - memcpy(buf, q, len); - return len; -} - -size_t i32toa(char *buf, int32_t n) -{ - if (n >= 0) { - return u32toa(buf, n); - } else { - buf[0] = '-'; - return u32toa(buf + 1, -(uint32_t)n) + 1; - } -} - -#ifdef USE_FAST_INT -size_t u64toa(char *buf, uint64_t n) -{ - if (n < 0x100000000) { - return u32toa(buf, n); - } else { - uint64_t n1; - char *q = buf; - uint32_t n2; - - n1 = n / 1000000000; - n %= 1000000000; - if (n1 >= 0x100000000) { - n2 = n1 / 1000000000; - n1 = n1 % 1000000000; - /* at most two digits */ - if (n2 >= 10) { - *q++ = n2 / 10 + '0'; - n2 %= 10; - } - *q++ = n2 + '0'; - u32toa_len(q, n1, 9); - q += 9; - } else { - q += u32toa(q, n1); - } - u32toa_len(q, n, 9); - q += 9; - return q - buf; - } -} - -size_t i64toa(char *buf, int64_t n) -{ - if (n >= 0) { - return u64toa(buf, n); - } else { - buf[0] = '-'; - return u64toa(buf + 1, -(uint64_t)n) + 1; - } -} - -/* XXX: only tested for 1 <= n < 2^53 */ -size_t u64toa_radix(char *buf, uint64_t n, unsigned int radix) -{ - int radix_bits, l; - if (likely(radix == 10)) - return u64toa(buf, n); - if ((radix & (radix - 1)) == 0) { - radix_bits = 31 - clz32(radix); - if (n == 0) - l = 1; - else - l = (64 - clz64(n) + radix_bits - 1) / radix_bits; - u64toa_bin_len(buf, n, radix_bits, l); - return l; - } else { - char buf1[41], *q; /* maximum length for radix = 3 */ - size_t len; - int digit; - q = buf1 + sizeof(buf1); - do { - digit = n % radix; - n /= radix; - if (digit < 10) - digit += '0'; - else - digit += 'a' - 10; - *--q = digit; - } while (n != 0); - len = buf1 + sizeof(buf1) - q; - memcpy(buf, q, len); - return len; - } -} - -size_t i64toa_radix(char *buf, int64_t n, unsigned int radix) -{ - if (n >= 0) { - return u64toa_radix(buf, n, radix); - } else { - buf[0] = '-'; - return u64toa_radix(buf + 1, -(uint64_t)n, radix) + 1; - } -} -#endif /* USE_FAST_INT */ - -static const uint8_t digits_per_limb_table[JS_RADIX_MAX - 1] = { -#if LIMB_BITS == 32 -32,20,16,13,12,11,10,10, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -#else -64,40,32,27,24,22,21,20,19,18,17,17,16,16,16,15,15,15,14,14,14,14,13,13,13,13,13,13,13,12,12,12,12,12,12, -#endif -}; - -static const uint32_t radix_base_table[JS_RADIX_MAX - 1] = { - 0x00000000, 0xcfd41b91, 0x00000000, 0x48c27395, - 0x81bf1000, 0x75db9c97, 0x40000000, 0xcfd41b91, - 0x3b9aca00, 0x8c8b6d2b, 0x19a10000, 0x309f1021, - 0x57f6c100, 0x98c29b81, 0x00000000, 0x18754571, - 0x247dbc80, 0x3547667b, 0x4c4b4000, 0x6b5a6e1d, - 0x94ace180, 0xcaf18367, 0x0b640000, 0x0e8d4a51, - 0x1269ae40, 0x17179149, 0x1cb91000, 0x23744899, - 0x2b73a840, 0x34e63b41, 0x40000000, 0x4cfa3cc1, - 0x5c13d840, 0x6d91b519, 0x81bf1000, -}; - -/* XXX: remove the table ? */ -static uint8_t dtoa_max_digits_table[JS_RADIX_MAX - 1] = { - 54, 35, 28, 24, 22, 20, 19, 18, 17, 17, 16, 16, 15, 15, 15, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, -}; - -/* we limit the maximum number of significant digits for atod to about - 128 bits of precision for non power of two bases. The only - requirement for Javascript is at least 20 digits in base 10. For - power of two bases, we do an exact rounding in all the cases. */ -static uint8_t atod_max_digits_table[JS_RADIX_MAX - 1] = { - 64, 80, 32, 55, 49, 45, 21, 40, 38, 37, 35, 34, 33, 32, 16, 31, 30, 30, 29, 29, 28, 28, 27, 27, 27, 26, 26, 26, 26, 25, 12, 25, 25, 24, 24, -}; - -/* if abs(d) >= B^max_exponent, it is an overflow */ -static const int16_t max_exponent[JS_RADIX_MAX - 1] = { - 1024, 647, 512, 442, 397, 365, 342, 324, - 309, 297, 286, 277, 269, 263, 256, 251, - 246, 242, 237, 234, 230, 227, 224, 221, - 218, 216, 214, 211, 209, 207, 205, 203, - 202, 200, 199, -}; - -/* if abs(d) <= B^min_exponent, it is an underflow */ -static const int16_t min_exponent[JS_RADIX_MAX - 1] = { --1075, -679, -538, -463, -416, -383, -359, -340, - -324, -311, -300, -291, -283, -276, -269, -263, - -258, -254, -249, -245, -242, -238, -235, -232, - -229, -227, -224, -222, -220, -217, -215, -214, - -212, -210, -208, -}; - -#if 0 -void build_tables(void) -{ - int r, j, radix, n, col, i; - - /* radix_base_table */ - for(radix = 2; radix <= 36; radix++) { - r = 1; - for(j = 0; j < digits_per_limb_table[radix - 2]; j++) { - r *= radix; - } - printf(" 0x%08x,", r); - if ((radix % 4) == 1) - printf("\n"); - } - printf("\n"); - - /* dtoa_max_digits_table */ - for(radix = 2; radix <= 36; radix++) { - /* Note: over estimated when the radix is a power of two */ - printf(" %d,", 1 + (int)ceil(53.0 / log2(radix))); - } - printf("\n"); - - /* atod_max_digits_table */ - for(radix = 2; radix <= 36; radix++) { - if ((radix & (radix - 1)) == 0) { - /* 64 bits is more than enough */ - n = (int)floor(64.0 / log2(radix)); - } else { - n = (int)floor(128.0 / log2(radix)); - } - printf(" %d,", n); - } - printf("\n"); - - printf("static const int16_t max_exponent[JS_RADIX_MAX - 1] = {\n"); - col = 0; - for(radix = 2; radix <= 36; radix++) { - printf("%5d, ", (int)ceil(1024 / log2(radix))); - if (++col == 8) { - col = 0; - printf("\n"); - } - } - printf("\n};\n\n"); - - printf("static const int16_t min_exponent[JS_RADIX_MAX - 1] = {\n"); - col = 0; - for(radix = 2; radix <= 36; radix++) { - printf("%5d, ", (int)floor(-1075 / log2(radix))); - if (++col == 8) { - col = 0; - printf("\n"); - } - } - printf("\n};\n\n"); - - printf("static const uint32_t pow5_table[16] = {\n"); - col = 0; - for(i = 2; i <= 17; i++) { - r = 1; - for(j = 0; j < i; j++) { - r *= 5; - } - printf("0x%08x, ", r); - if (++col == 4) { - col = 0; - printf("\n"); - } - } - printf("\n};\n\n"); - - /* high part */ - printf("static const uint8_t pow5h_table[4] = {\n"); - col = 0; - for(i = 14; i <= 17; i++) { - uint64_t r1; - r1 = 1; - for(j = 0; j < i; j++) { - r1 *= 5; - } - printf("0x%08x, ", (uint32_t)(r1 >> 32)); - if (++col == 4) { - col = 0; - printf("\n"); - } - } - printf("\n};\n\n"); -} -#endif - -/* n_digits >= 1. 0 <= dot_pos <= n_digits. If dot_pos == n_digits, - the dot is not displayed. 'a' is modified. */ -static int output_digits(char *buf, - mpb_t *a, int radix, int n_digits1, - int dot_pos) -{ - int n_digits, digits_per_limb, radix_bits, n, len; - - n_digits = n_digits1; - if ((radix & (radix - 1)) == 0) { - /* radix = 2^radix_bits */ - radix_bits = 31 - clz32(radix); - } else { - radix_bits = 0; - } - digits_per_limb = digits_per_limb_table[radix - 2]; - if (radix_bits != 0) { - for(;;) { - n = min_int(n_digits, digits_per_limb); - n_digits -= n; - u64toa_bin_len(buf + n_digits, a->tab[0], radix_bits, n); - if (n_digits == 0) - break; - mpb_shr_round(a, digits_per_limb * radix_bits, JS_RNDZ); - } - } else { - limb_t r; - while (n_digits != 0) { - n = min_int(n_digits, digits_per_limb); - n_digits -= n; - r = mp_div1(a->tab, a->tab, a->len, radix_base_table[radix - 2], 0); - mpb_renorm(a); - limb_to_a(buf + n_digits, r, radix, n); - } - } - - /* add the dot */ - len = n_digits1; - if (dot_pos != n_digits1) { - memmove(buf + dot_pos + 1, buf + dot_pos, n_digits1 - dot_pos); - buf[dot_pos] = '.'; - len++; - } - return len; -} - -/* return (a, e_offset) such that a = a * (radix1*2^radix_shift)^f * - 2^-e_offset. 'f' can be negative. */ -static int mul_pow(mpb_t *a, int radix1, int radix_shift, int f, bool is_int, int e) -{ - int e_offset, d, n, n0; - - e_offset = -f * radix_shift; - if (radix1 != 1) { - d = digits_per_limb_table[radix1 - 2]; - if (f >= 0) { - limb_t h, b; - - b = 0; - n0 = 0; - while (f != 0) { - n = min_int(f, d); - if (n != n0) { - b = pow_ui(radix1, n); - n0 = n; - } - h = mp_mul1(a->tab, a->tab, a->len, b, 0); - if (h != 0) { - a->tab[a->len++] = h; - } - f -= n; - } - } else { - int extra_bits, l, shift; - limb_t r, rem, b, b_inv; - - f = -f; - l = (f + d - 1) / d; /* high bound for the number of limbs (XXX: make it better) */ - e_offset += l * LIMB_BITS; - if (!is_int) { - /* at least 'e' bits are needed in the final result for rounding */ - extra_bits = max_int(e - mpb_floor_log2(a), 0); - } else { - /* at least two extra bits are needed in the final result - for rounding */ - extra_bits = max_int(2 + e - e_offset, 0); - } - e_offset += extra_bits; - mpb_shr_round(a, -(l * LIMB_BITS + extra_bits), JS_RNDZ); - - b = 0; - b_inv = 0; - shift = 0; - n0 = 0; - rem = 0; - while (f != 0) { - n = min_int(f, d); - if (n != n0) { - b = pow_ui_inv(&b_inv, &shift, radix1, n); - n0 = n; - } - r = mp_div1norm(a->tab, a->tab, a->len, b, 0, b_inv, shift); - rem |= r; - mpb_renorm(a); - f -= n; - } - /* if the remainder is non zero, use it for rounding */ - a->tab[0] |= (rem != 0); - } - } - return e_offset; -} - -/* tmp1 = round(m*2^e*radix^f). 'tmp0' is a temporary storage */ -static void mul_pow_round(mpb_t *tmp1, uint64_t m, int e, int radix1, int radix_shift, int f, - int rnd_mode) -{ - int e_offset; - - mpb_set_u64(tmp1, m); - e_offset = mul_pow(tmp1, radix1, radix_shift, f, true, e); - mpb_shr_round(tmp1, -e + e_offset, rnd_mode); -} - -/* return round(a*2^e_offset) rounded as a float64. 'a' is modified */ -static uint64_t round_to_d(int *pe, mpb_t *a, int e_offset, int rnd_mode) -{ - int e; - uint64_t m; - - if (a->tab[0] == 0 && a->len == 1) { - /* zero result */ - m = 0; - e = 0; /* don't care */ - } else { - int prec, prec1, e_min; - e = mpb_floor_log2(a) + 1 - e_offset; - prec1 = 53; - e_min = -1021; - if (e < e_min) { - /* subnormal result or zero */ - prec = prec1 - (e_min - e); - } else { - prec = prec1; - } - mpb_shr_round(a, e + e_offset - prec, rnd_mode); - m = mpb_get_u64(a); - m <<= (53 - prec); - /* mantissa overflow due to rounding */ - if (m >= (uint64_t)1 << 53) { - m >>= 1; - e++; - } - } - *pe = e; - return m; -} - -/* return (m, e) such that m*2^(e-53) = round(a * radix^f) with 2^52 - <= m < 2^53 or m = 0. - 'a' is modified. */ -static uint64_t mul_pow_round_to_d(int *pe, mpb_t *a, - int radix1, int radix_shift, int f, int rnd_mode) -{ - int e_offset; - - e_offset = mul_pow(a, radix1, radix_shift, f, false, 55); - return round_to_d(pe, a, e_offset, rnd_mode); -} - -#ifdef JS_DTOA_DUMP_STATS -static int out_len_count[17]; - -void js_dtoa_dump_stats(void) -{ - int i, sum; - sum = 0; - for(i = 0; i < 17; i++) - sum += out_len_count[i]; - for(i = 0; i < 17; i++) { - printf("%2d %8d %5.2f%%\n", - i + 1, out_len_count[i], (double)out_len_count[i] / sum * 100); - } -} -#endif - -/* return a maximum bound of the string length. The bound depends on - 'd' only if format = JS_DTOA_FORMAT_FRAC or if JS_DTOA_EXP_DISABLED - is enabled. */ -int js_dtoa_max_len(double d, int radix, int n_digits, int flags) -{ - int fmt = flags & JS_DTOA_FORMAT_MASK; - int n, e; - uint64_t a; - - if (fmt != JS_DTOA_FORMAT_FRAC) { - if (fmt == JS_DTOA_FORMAT_FREE) { - n = dtoa_max_digits_table[radix - 2]; - } else { - n = n_digits; - } - if ((flags & JS_DTOA_EXP_MASK) == JS_DTOA_EXP_DISABLED) { - /* no exponential */ - a = float64_as_uint64(d); - e = (a >> 52) & 0x7ff; - if (e == 0x7ff) { - /* NaN, Infinity */ - n = 0; - } else { - e -= 1023; - /* XXX: adjust */ - n += 10 + abs(mul_log2_radix(e - 1, radix)); - } - } else { - /* extra: sign, 1 dot and exponent "e-1000" */ - n += 1 + 1 + 6; - } - } else { - a = float64_as_uint64(d); - e = (a >> 52) & 0x7ff; - if (e == 0x7ff) { - /* NaN, Infinity */ - n = 0; - } else { - /* high bound for the integer part */ - e -= 1023; - /* x < 2^(e + 1) */ - if (e < 0) { - n = 1; - } else { - n = 2 + mul_log2_radix(e - 1, radix); - } - /* sign, extra digit, 1 dot */ - n += 1 + 1 + 1 + n_digits; - } - } - return max_int(n, 9); /* also include NaN and [-]Infinity */ -} - -#if defined(__SANITIZE_ADDRESS__) && 0 -static void *dtoa_malloc(uint64_t **pptr, size_t size) -{ - return malloc(size); -} -static void dtoa_free(void *ptr) -{ - free(ptr); -} -#else -static void *dtoa_malloc(uint64_t **pptr, size_t size) -{ - void *ret; - ret = *pptr; - *pptr += (size + 7) / 8; - return ret; -} - -static void dtoa_free(void *ptr) -{ -} -#endif - -/* return the length */ -int js_dtoa(char *buf, double d, int radix, int n_digits, int flags, - JSDTOATempMem *tmp_mem) -{ - uint64_t a, m, *mptr = tmp_mem->mem; - int e, sgn, l, E, P, i, E_max, radix1, radix_shift; - char *q; - mpb_t *tmp1, *mant_max; - int fmt = flags & JS_DTOA_FORMAT_MASK; - - tmp1 = dtoa_malloc(&mptr, sizeof(mpb_t) + sizeof(limb_t) * DBIGNUM_LEN_MAX); - mant_max = dtoa_malloc(&mptr, sizeof(mpb_t) + sizeof(limb_t) * MANT_LEN_MAX); - assert((mptr - tmp_mem->mem) <= sizeof(JSDTOATempMem) / sizeof(mptr[0])); - - radix_shift = ctz32(radix); - radix1 = radix >> radix_shift; - a = float64_as_uint64(d); - sgn = a >> 63; - e = (a >> 52) & 0x7ff; - m = a & (((uint64_t)1 << 52) - 1); - q = buf; - if (e == 0x7ff) { - if (m == 0) { - if (sgn) - *q++ = '-'; - memcpy(q, "Infinity", 8); - q += 8; - } else { - memcpy(q, "NaN", 3); - q += 3; - } - goto done; - } else if (e == 0) { - if (m == 0) { - tmp1->len = 1; - tmp1->tab[0] = 0; - E = 1; - if (fmt == JS_DTOA_FORMAT_FREE) - P = 1; - else if (fmt == JS_DTOA_FORMAT_FRAC) - P = n_digits + 1; - else - P = n_digits; - /* "-0" is displayed as "0" if JS_DTOA_MINUS_ZERO is not present */ - if (sgn && (flags & JS_DTOA_MINUS_ZERO)) - *q++ = '-'; - goto output; - } - /* denormal number: convert to a normal number */ - l = clz64(m) - 11; - e -= l - 1; - m <<= l; - } else { - m |= (uint64_t)1 << 52; - } - if (sgn) - *q++ = '-'; - /* remove the bias */ - e -= 1022; - /* d = 2^(e-53)*m */ - // printf("m=0x%016" PRIx64 " e=%d\n", m, e); -#ifdef USE_FAST_INT - if (fmt == JS_DTOA_FORMAT_FREE && - e >= 1 && e <= 53 && - (m & (((uint64_t)1 << (53 - e)) - 1)) == 0 && - (flags & JS_DTOA_EXP_MASK) != JS_DTOA_EXP_ENABLED) { - m >>= 53 - e; - /* 'm' is never zero */ - q += u64toa_radix(q, m, radix); - goto done; - } -#endif - - /* this choice of E implies F=round(x*B^(P-E) is such as: - B^(P-1) <= F < 2.B^P. */ - E = 1 + mul_log2_radix(e - 1, radix); - - if (fmt == JS_DTOA_FORMAT_FREE) { - int P_max, E0, e1, E_found, P_found; - uint64_t m1, mant_found, mant, mant_max1; - /* P_max is guarranteed to work by construction */ - P_max = dtoa_max_digits_table[radix - 2]; - E0 = E; - E_found = 0; - P_found = 0; - mant_found = 0; - /* find the minimum number of digits by successive tries */ - P = P_max; /* P_max is guarateed to work */ - for(;;) { - /* mant_max always fits on 64 bits */ - mant_max1 = pow_ui(radix, P); - /* compute the mantissa in base B */ - E = E0; - for(;;) { - /* XXX: add inexact flag */ - mul_pow_round(tmp1, m, e - 53, radix1, radix_shift, P - E, JS_RNDN); - mant = mpb_get_u64(tmp1); - if (mant < mant_max1) - break; - E++; /* at most one iteration is possible */ - } - /* remove useless trailing zero digits */ - while ((mant % radix) == 0) { - mant /= radix; - P--; - } - /* garanteed to work for P = P_max */ - if (P_found == 0) - goto prec_found; - /* convert back to base 2 */ - mpb_set_u64(tmp1, mant); - m1 = mul_pow_round_to_d(&e1, tmp1, radix1, radix_shift, E - P, JS_RNDN); - // printf("P=%2d: m=0x%016" PRIx64 " e=%d m1=0x%016" PRIx64 " e1=%d\n", P, m, e, m1, e1); - /* Note: (m, e) is never zero here, so the exponent for m1 - = 0 does not matter */ - if (m1 == m && e1 == e) { - prec_found: - P_found = P; - E_found = E; - mant_found = mant; - if (P == 1) - break; - P--; /* try lower exponent */ - } else { - break; - } - } - P = P_found; - E = E_found; - mpb_set_u64(tmp1, mant_found); -#ifdef JS_DTOA_DUMP_STATS - if (radix == 10) { - out_len_count[P - 1]++; - } -#endif - } else if (fmt == JS_DTOA_FORMAT_FRAC) { - int len; - - assert(n_digits >= 0 && n_digits <= JS_DTOA_MAX_DIGITS); - /* P = max_int(E, 1) + n_digits; */ - /* frac is rounded using RNDNA */ - mul_pow_round(tmp1, m, e - 53, radix1, radix_shift, n_digits, JS_RNDNA); - - /* we add one extra digit on the left and remove it if needed - to avoid testing if the result is < radix^P */ - len = output_digits(q, tmp1, radix, max_int(E + 1, 1) + n_digits, - max_int(E + 1, 1)); - if (q[0] == '0' && len >= 2 && q[1] != '.') { - len--; - memmove(q, q + 1, len); - } - q += len; - goto done; - } else { - int pow_shift; - assert(n_digits >= 1 && n_digits <= JS_DTOA_MAX_DIGITS); - P = n_digits; - /* mant_max = radix^P */ - mant_max->len = 1; - mant_max->tab[0] = 1; - pow_shift = mul_pow(mant_max, radix1, radix_shift, P, false, 0); - mpb_shr_round(mant_max, pow_shift, JS_RNDZ); - - for(;;) { - /* fixed and frac are rounded using RNDNA */ - mul_pow_round(tmp1, m, e - 53, radix1, radix_shift, P - E, JS_RNDNA); - if (mpb_cmp(tmp1, mant_max) < 0) - break; - E++; /* at most one iteration is possible */ - } - } - output: - if (fmt == JS_DTOA_FORMAT_FIXED) - E_max = n_digits; - else - E_max = dtoa_max_digits_table[radix - 2] + 4; - if ((flags & JS_DTOA_EXP_MASK) == JS_DTOA_EXP_ENABLED || - ((flags & JS_DTOA_EXP_MASK) == JS_DTOA_EXP_AUTO && (E <= -6 || E > E_max))) { - q += output_digits(q, tmp1, radix, P, 1); - E--; - if (radix == 10) { - *q++ = 'e'; - } else if (radix1 == 1 && radix_shift <= 4) { - E *= radix_shift; - *q++ = 'p'; - } else { - *q++ = '@'; - } - if (E < 0) { - *q++ = '-'; - E = -E; - } else { - *q++ = '+'; - } - q += u32toa(q, E); - } else if (E <= 0) { - *q++ = '0'; - *q++ = '.'; - for(i = 0; i < -E; i++) - *q++ = '0'; - q += output_digits(q, tmp1, radix, P, P); - } else { - q += output_digits(q, tmp1, radix, P, min_int(P, E)); - for(i = 0; i < E - P; i++) - *q++ = '0'; - } - done: - *q = '\0'; - dtoa_free(mant_max); - dtoa_free(tmp1); - return q - buf; -} - -static inline int to_digit(int c) -{ - if (c >= '0' && c <= '9') - return c - '0'; - else if (c >= 'A' && c <= 'Z') - return c - 'A' + 10; - else if (c >= 'a' && c <= 'z') - return c - 'a' + 10; - else - return 36; -} - -/* r = r * radix_base + a. radix_base = 0 means radix_base = 2^32 */ -static void mpb_mul1_base(mpb_t *r, limb_t radix_base, limb_t a) -{ - int i; - if (r->tab[0] == 0 && r->len == 1) { - r->tab[0] = a; - } else { - if (radix_base == 0) { - for(i = r->len; i >= 0; i--) { - r->tab[i + 1] = r->tab[i]; - } - r->tab[0] = a; - } else { - r->tab[r->len] = mp_mul1(r->tab, r->tab, r->len, - radix_base, a); - } - r->len++; - mpb_renorm(r); - } -} - -/* XXX: add fast path for small integers */ -double js_atod(const char *str, const char **pnext, int radix, int flags, - JSATODTempMem *tmp_mem) -{ - uint64_t *mptr = tmp_mem->mem; - const char *p, *p_start; - limb_t cur_limb, radix_base, extra_digits; - int is_neg, digit_count, limb_digit_count, digits_per_limb, sep, radix1, radix_shift; - int radix_bits, expn, e, max_digits, expn_offset, dot_pos, sig_pos, pos; - mpb_t *tmp0; - double dval; - bool is_bin_exp, is_zero, expn_overflow; - uint64_t m, a; - - tmp0 = dtoa_malloc(&mptr, sizeof(mpb_t) + sizeof(limb_t) * DBIGNUM_LEN_MAX); - assert((mptr - tmp_mem->mem) <= sizeof(JSATODTempMem) / sizeof(mptr[0])); - /* optional separator between digits */ - sep = (flags & JS_ATOD_ACCEPT_UNDERSCORES) ? '_' : 256; - - p = str; - is_neg = 0; - if (p[0] == '+') { - p++; - p_start = p; - } else if (p[0] == '-') { - is_neg = 1; - p++; - p_start = p; - } else { - p_start = p; - } - - if (p[0] == '0') { - if ((p[1] == 'x' || p[1] == 'X') && - (radix == 0 || radix == 16)) { - p += 2; - radix = 16; - } else if ((p[1] == 'o' || p[1] == 'O') && - radix == 0 && (flags & JS_ATOD_ACCEPT_BIN_OCT)) { - p += 2; - radix = 8; - } else if ((p[1] == 'b' || p[1] == 'B') && - radix == 0 && (flags & JS_ATOD_ACCEPT_BIN_OCT)) { - p += 2; - radix = 2; - } else if ((p[1] >= '0' && p[1] <= '9') && - radix == 0 && (flags & JS_ATOD_ACCEPT_LEGACY_OCTAL)) { - int i; - sep = 256; - for (i = 1; (p[i] >= '0' && p[i] <= '7'); i++) - continue; - if (p[i] == '8' || p[i] == '9') - goto no_prefix; - p += 1; - radix = 8; - } else { - goto no_prefix; - } - /* there must be a digit after the prefix */ - if (to_digit((uint8_t)*p) >= radix) - goto fail; - no_prefix: ; - } else { - if (!(flags & JS_ATOD_INT_ONLY) && js__strstart(p, "Infinity", &p)) - goto overflow; - } - if (radix == 0) - radix = 10; - - cur_limb = 0; - expn_offset = 0; - digit_count = 0; - limb_digit_count = 0; - max_digits = atod_max_digits_table[radix - 2]; - digits_per_limb = digits_per_limb_table[radix - 2]; - radix_base = radix_base_table[radix - 2]; - radix_shift = ctz32(radix); - radix1 = radix >> radix_shift; - if (radix1 == 1) { - /* radix = 2^radix_bits */ - radix_bits = radix_shift; - } else { - radix_bits = 0; - } - tmp0->len = 1; - tmp0->tab[0] = 0; - extra_digits = 0; - pos = 0; - dot_pos = -1; - /* skip leading zeros */ - for(;;) { - if (*p == '.' && (p > p_start || to_digit(p[1]) < radix) && - !(flags & JS_ATOD_INT_ONLY)) { - if (*p == sep) - goto fail; - if (dot_pos >= 0) - break; - dot_pos = pos; - p++; - } - if (*p == sep && p > p_start && p[1] == '0') - p++; - if (*p != '0') - break; - p++; - pos++; - } - - sig_pos = pos; - for(;;) { - limb_t c; - if (*p == '.' && (p > p_start || to_digit(p[1]) < radix) && - !(flags & JS_ATOD_INT_ONLY)) { - if (*p == sep) - goto fail; - if (dot_pos >= 0) - break; - dot_pos = pos; - p++; - } - if (*p == sep && p > p_start && to_digit(p[1]) < radix) - p++; - c = to_digit(*p); - if (c >= radix) - break; - p++; - pos++; - if (digit_count < max_digits) { - /* XXX: could be faster when radix_bits != 0 */ - cur_limb = cur_limb * radix + c; - limb_digit_count++; - if (limb_digit_count == digits_per_limb) { - mpb_mul1_base(tmp0, radix_base, cur_limb); - cur_limb = 0; - limb_digit_count = 0; - } - digit_count++; - } else { - extra_digits |= c; - } - } - if (limb_digit_count != 0) { - mpb_mul1_base(tmp0, pow_ui(radix, limb_digit_count), cur_limb); - } - if (digit_count == 0) { - is_zero = true; - expn_offset = 0; - } else { - is_zero = false; - if (dot_pos < 0) - dot_pos = pos; - expn_offset = sig_pos + digit_count - dot_pos; - } - - /* Use the extra digits for rounding if the base is a power of - two. Otherwise they are just truncated. */ - if (radix_bits != 0 && extra_digits != 0) { - tmp0->tab[0] |= 1; - } - - /* parse the exponent, if any */ - expn = 0; - expn_overflow = false; - is_bin_exp = false; - if (!(flags & JS_ATOD_INT_ONLY) && - ((radix == 10 && (*p == 'e' || *p == 'E')) || - (radix != 10 && (*p == '@' || - (radix_bits >= 1 && radix_bits <= 4 && (*p == 'p' || *p == 'P'))))) && - p > p_start) { - bool exp_is_neg; - int c; - is_bin_exp = (*p == 'p' || *p == 'P'); - p++; - exp_is_neg = false; - if (*p == '+') { - p++; - } else if (*p == '-') { - exp_is_neg = true; - p++; - } - c = to_digit(*p); - if (c >= 10) - goto fail; /* XXX: could stop before the exponent part */ - expn = c; - p++; - for(;;) { - if (*p == sep && to_digit(p[1]) < 10) - p++; - c = to_digit(*p); - if (c >= 10) - break; - if (!expn_overflow) { - if (unlikely(expn > ((INT32_MAX - 2 - 9) / 10))) { - expn_overflow = true; - } else { - expn = expn * 10 + c; - } - } - p++; - } - if (exp_is_neg) - expn = -expn; - /* if zero result, the exponent can be arbitrarily large */ - if (!is_zero && expn_overflow) { - if (exp_is_neg) - a = 0; - else - a = (uint64_t)0x7ff << 52; /* infinity */ - goto done; - } - } - - if (p == p_start) - goto fail; - - if (is_zero) { - a = 0; - } else { - int expn1; - if (radix_bits != 0) { - if (!is_bin_exp) - expn *= radix_bits; - expn -= expn_offset * radix_bits; - expn1 = expn + digit_count * radix_bits; - if (expn1 >= 1024 + radix_bits) - goto overflow; - else if (expn1 <= -1075) - goto underflow; - m = round_to_d(&e, tmp0, -expn, JS_RNDN); - } else { - expn -= expn_offset; - expn1 = expn + digit_count; - if (expn1 >= max_exponent[radix - 2] + 1) - goto overflow; - else if (expn1 <= min_exponent[radix - 2]) - goto underflow; - m = mul_pow_round_to_d(&e, tmp0, radix1, radix_shift, expn, JS_RNDN); - } - if (m == 0) { - underflow: - a = 0; - } else if (e > 1024) { - overflow: - /* overflow */ - a = (uint64_t)0x7ff << 52; - } else if (e < -1073) { - /* underflow */ - /* XXX: check rounding */ - a = 0; - } else if (e < -1021) { - /* subnormal */ - a = m >> (-e - 1021); - } else { - a = ((uint64_t)(e + 1022) << 52) | (m & (((uint64_t)1 << 52) - 1)); - } - } - done: - a |= (uint64_t)is_neg << 63; - dval = uint64_as_float64(a); - done1: - if (pnext) - *pnext = p; - dtoa_free(tmp0); - return dval; - fail: - dval = NAN; - goto done1; -} diff --git a/vendor/quickjs/source_ng/dtoa.h b/vendor/quickjs/source_ng/dtoa.h deleted file mode 100755 index 85be04069..000000000 --- a/vendor/quickjs/source_ng/dtoa.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Tiny float64 printing and parsing library - * - * Copyright (c) 2024 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#ifndef DTOA_H -#define DTOA_H - -//#define JS_DTOA_DUMP_STATS - -/* maximum number of digits for fixed and frac formats */ -#define JS_DTOA_MAX_DIGITS 101 - -/* radix != 10 is only supported with flags = JS_DTOA_FORMAT_FREE */ -/* use as many digits as necessary */ -#define JS_DTOA_FORMAT_FREE (0 << 0) -/* use n_digits significant digits (1 <= n_digits <= JS_DTOA_MAX_DIGITS) */ -#define JS_DTOA_FORMAT_FIXED (1 << 0) -/* force fractional format: [-]dd.dd with n_digits fractional digits. - 0 <= n_digits <= JS_DTOA_MAX_DIGITS */ -#define JS_DTOA_FORMAT_FRAC (2 << 0) -#define JS_DTOA_FORMAT_MASK (3 << 0) - -/* select exponential notation either in fixed or free format */ -#define JS_DTOA_EXP_AUTO (0 << 2) -#define JS_DTOA_EXP_ENABLED (1 << 2) -#define JS_DTOA_EXP_DISABLED (2 << 2) -#define JS_DTOA_EXP_MASK (3 << 2) - -#define JS_DTOA_MINUS_ZERO (1 << 4) /* show the minus sign for -0 */ - -/* only accepts integers (no dot, no exponent) */ -#define JS_ATOD_INT_ONLY (1 << 0) -/* accept Oo and Ob prefixes in addition to 0x prefix if radix = 0 */ -#define JS_ATOD_ACCEPT_BIN_OCT (1 << 1) -/* accept O prefix as octal if radix == 0 and properly formed (Annex B) */ -#define JS_ATOD_ACCEPT_LEGACY_OCTAL (1 << 2) -/* accept _ between digits as a digit separator */ -#define JS_ATOD_ACCEPT_UNDERSCORES (1 << 3) - -typedef struct { - uint64_t mem[37]; -} JSDTOATempMem; - -typedef struct { - uint64_t mem[27]; -} JSATODTempMem; - -/* return a maximum bound of the string length */ -int js_dtoa_max_len(double d, int radix, int n_digits, int flags); -/* return the string length */ -int js_dtoa(char *buf, double d, int radix, int n_digits, int flags, - JSDTOATempMem *tmp_mem); -double js_atod(const char *str, const char **pnext, int radix, int flags, - JSATODTempMem *tmp_mem); - -#ifdef JS_DTOA_DUMP_STATS -void js_dtoa_dump_stats(void); -#endif - -/* additional exported functions */ -size_t u32toa(char *buf, uint32_t n); -size_t i32toa(char *buf, int32_t n); -size_t u64toa(char *buf, uint64_t n); -size_t i64toa(char *buf, int64_t n); -size_t u64toa_radix(char *buf, uint64_t n, unsigned int radix); -size_t i64toa_radix(char *buf, int64_t n, unsigned int radix); - -#endif /* DTOA_H */ diff --git a/vendor/quickjs/source_ng/fuzz.c b/vendor/quickjs/source_ng/fuzz.c deleted file mode 100755 index fca8fa413..000000000 --- a/vendor/quickjs/source_ng/fuzz.c +++ /dev/null @@ -1,22 +0,0 @@ -// clang -g -O1 -fsanitize=fuzzer -o fuzz fuzz.c -#include "quickjs.h" -#include "quickjs.c" -#include "cutils.c" -#include "libregexp.c" -#include "libunicode.c" -#include - -int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) -{ - JSRuntime *rt = JS_NewRuntime(); - if (!rt) - exit(1); - JSContext *ctx = JS_NewContext(rt); - if (!ctx) - exit(1); - JSValue val = JS_ReadObject(ctx, buf, len, /*flags*/0); - JS_FreeValue(ctx, val); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - return 0; -} diff --git a/vendor/quickjs/source_ng/libregexp-opcode.h b/vendor/quickjs/source_ng/libregexp-opcode.h deleted file mode 100755 index 5c1714ab0..000000000 --- a/vendor/quickjs/source_ng/libregexp-opcode.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Regular Expression Engine - * - * Copyright (c) 2017-2018 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#ifdef DEF - -DEF(invalid, 1) /* never used */ -DEF(char8, 2) /* 7 bits in fact */ -DEF(char16, 3) -DEF(char32, 5) -DEF(dot, 1) -DEF(any, 1) /* same as dot but match any character including line terminator */ -DEF(line_start, 1) -DEF(line_end, 1) -DEF(goto, 5) -DEF(split_goto_first, 5) -DEF(split_next_first, 5) -DEF(match, 1) -DEF(save_start, 2) /* save start position */ -DEF(save_end, 2) /* save end position, must come after saved_start */ -DEF(save_reset, 3) /* reset save positions */ -DEF(loop, 5) /* decrement the top the stack and goto if != 0 */ -DEF(push_i32, 5) /* push integer on the stack */ -DEF(drop, 1) -DEF(word_boundary, 1) -DEF(not_word_boundary, 1) -DEF(back_reference, 2) -DEF(backward_back_reference, 2) /* must come after back_reference */ -DEF(range, 3) /* variable length */ -DEF(range32, 3) /* variable length */ -DEF(lookahead, 5) -DEF(negative_lookahead, 5) -DEF(push_char_pos, 1) /* push the character position on the stack */ -DEF(check_advance, 1) /* pop one stack element and check that it is different from the character position */ -DEF(prev, 1) /* go to the previous char */ -DEF(simple_greedy_quant, 17) - -#endif /* DEF */ diff --git a/vendor/quickjs/source_ng/libregexp.c b/vendor/quickjs/source_ng/libregexp.c deleted file mode 100755 index ac60650c9..000000000 --- a/vendor/quickjs/source_ng/libregexp.c +++ /dev/null @@ -1,2676 +0,0 @@ -/* - * Regular Expression Engine - * - * Copyright (c) 2017-2018 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include -#include - -#include "cutils.h" -#include "libregexp.h" - -/* - TODO: - - - Add a lock step execution mode (=linear time execution guaranteed) - when the regular expression is "simple" i.e. no backreference nor - complicated lookahead. The opcodes are designed for this execution - model. -*/ - -#if defined(TEST) -#define DUMP_REOP -#endif - -typedef enum { -#define DEF(id, size) REOP_ ## id, -#include "libregexp-opcode.h" -#undef DEF - REOP_COUNT, -} REOPCodeEnum; - -#define CAPTURE_COUNT_MAX 255 -#define STACK_SIZE_MAX 255 -/* must be large enough to have a negligible runtime cost and small - enough to call the interrupt callback often. */ -#define INTERRUPT_COUNTER_INIT 10000 - -/* unicode code points */ -#define CP_LS 0x2028 -#define CP_PS 0x2029 - -#define TMP_BUF_SIZE 128 - -// invariant: is_unicode ^ unicode_sets (or neither, but not both) -typedef struct { - DynBuf byte_code; - const uint8_t *buf_ptr; - const uint8_t *buf_end; - const uint8_t *buf_start; - int re_flags; - bool is_unicode; - bool unicode_sets; - bool ignore_case; - bool dotall; - int capture_count; - int total_capture_count; /* -1 = not computed yet */ - int has_named_captures; /* -1 = don't know, 0 = no, 1 = yes */ - void *opaque; - DynBuf group_names; - union { - char error_msg[TMP_BUF_SIZE]; - char tmp_buf[TMP_BUF_SIZE]; - } u; -} REParseState; - -typedef struct { -#ifdef DUMP_REOP - const char *name; -#endif - uint8_t size; -} REOpCode; - -static const REOpCode reopcode_info[REOP_COUNT] = { -#ifdef DUMP_REOP -#define DEF(id, size) { #id, size }, -#else -#define DEF(id, size) { size }, -#endif -#include "libregexp-opcode.h" -#undef DEF -}; - -#define RE_HEADER_FLAGS 0 -#define RE_HEADER_CAPTURE_COUNT 2 -#define RE_HEADER_STACK_SIZE 3 -#define RE_HEADER_BYTECODE_LEN 4 - -#define RE_HEADER_LEN 8 - -static inline int lre_is_digit(int c) { - return c >= '0' && c <= '9'; -} - -/* insert 'len' bytes at position 'pos'. Return < 0 if error. */ -static int dbuf_insert(DynBuf *s, int pos, int len) -{ - if (dbuf_realloc(s, s->size + len)) - return -1; - memmove(s->buf + pos + len, s->buf + pos, s->size - pos); - s->size += len; - return 0; -} - -static const uint16_t char_range_d[] = { - 1, - 0x0030, 0x0039 + 1, -}; - -/* code point ranges for Zs,Zl or Zp property */ -static const uint16_t char_range_s[] = { - 10, - 0x0009, 0x000D + 1, - 0x0020, 0x0020 + 1, - 0x00A0, 0x00A0 + 1, - 0x1680, 0x1680 + 1, - 0x2000, 0x200A + 1, - /* 2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;; */ - /* 2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;; */ - 0x2028, 0x2029 + 1, - 0x202F, 0x202F + 1, - 0x205F, 0x205F + 1, - 0x3000, 0x3000 + 1, - /* FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;; */ - 0xFEFF, 0xFEFF + 1, -}; - -bool lre_is_space(int c) -{ - int i, n, low, high; - n = (countof(char_range_s) - 1) / 2; - for(i = 0; i < n; i++) { - low = char_range_s[2 * i + 1]; - if (c < low) - return false; - high = char_range_s[2 * i + 2]; - if (c < high) - return true; - } - return false; -} - -uint32_t const lre_id_start_table_ascii[4] = { - /* $ A-Z _ a-z */ - 0x00000000, 0x00000010, 0x87FFFFFE, 0x07FFFFFE -}; - -uint32_t const lre_id_continue_table_ascii[4] = { - /* $ 0-9 A-Z _ a-z */ - 0x00000000, 0x03FF0010, 0x87FFFFFE, 0x07FFFFFE -}; - - -static const uint16_t char_range_w[] = { - 4, - 0x0030, 0x0039 + 1, - 0x0041, 0x005A + 1, - 0x005F, 0x005F + 1, - 0x0061, 0x007A + 1, -}; - -#define CLASS_RANGE_BASE 0x40000000 - -typedef enum { - CHAR_RANGE_d, - CHAR_RANGE_D, - CHAR_RANGE_s, - CHAR_RANGE_S, - CHAR_RANGE_w, - CHAR_RANGE_W, -} CharRangeEnum; - -static const uint16_t *char_range_table[] = { - char_range_d, - char_range_s, - char_range_w, -}; - -static int cr_init_char_range(REParseState *s, CharRange *cr, uint32_t c) -{ - bool invert; - const uint16_t *c_pt; - int len, i; - - invert = c & 1; - c_pt = char_range_table[c >> 1]; - len = *c_pt++; - cr_init(cr, s->opaque, lre_realloc); - for(i = 0; i < len * 2; i++) { - if (cr_add_point(cr, c_pt[i])) - goto fail; - } - if (invert) { - if (cr_invert(cr)) - goto fail; - } - return 0; - fail: - cr_free(cr); - return -1; -} - -#ifdef DUMP_REOP -static __maybe_unused void lre_dump_bytecode(const uint8_t *buf, - int buf_len) -{ - int pos, len, opcode, bc_len, re_flags, i; - uint32_t val; - - assert(buf_len >= RE_HEADER_LEN); - - re_flags = lre_get_flags(buf); - bc_len = get_u32(buf + RE_HEADER_BYTECODE_LEN); - assert(bc_len + RE_HEADER_LEN <= buf_len); - printf("flags: 0x%x capture_count=%d stack_size=%d\n", - re_flags, buf[RE_HEADER_CAPTURE_COUNT], buf[RE_HEADER_STACK_SIZE]); - if (re_flags & LRE_FLAG_NAMED_GROUPS) { - const char *p; - p = (char *)buf + RE_HEADER_LEN + bc_len; - printf("named groups: "); - for(i = 1; i < buf[RE_HEADER_CAPTURE_COUNT]; i++) { - if (i != 1) - printf(","); - printf("<%s>", p); - p += strlen(p) + 1; - } - printf("\n"); - assert(p == (char *)(buf + buf_len)); - } - printf("bytecode_len=%d\n", bc_len); - - buf += RE_HEADER_LEN; - pos = 0; - while (pos < bc_len) { - printf("%5u: ", pos); - opcode = buf[pos]; - len = reopcode_info[opcode].size; - if (opcode >= REOP_COUNT) { - printf(" invalid opcode=0x%02x\n", opcode); - break; - } - if ((pos + len) > bc_len) { - printf(" buffer overflow (opcode=0x%02x)\n", opcode); - break; - } - printf("%s", reopcode_info[opcode].name); - switch(opcode) { - case REOP_char8: - val = get_u8(buf + pos + 1); - goto printchar; - case REOP_char16: - val = get_u16(buf + pos + 1); - goto printchar; - case REOP_char32: - val = get_u32(buf + pos + 1); - printchar: - if (val >= ' ' && val <= 126) - printf(" '%c'", val); - else - printf(" 0x%08x", val); - break; - case REOP_goto: - case REOP_split_goto_first: - case REOP_split_next_first: - case REOP_loop: - case REOP_lookahead: - case REOP_negative_lookahead: - val = get_u32(buf + pos + 1); - val += (pos + 5); - printf(" %u", val); - break; - case REOP_simple_greedy_quant: - printf(" %u %u %u %u", - get_u32(buf + pos + 1) + (pos + 17), - get_u32(buf + pos + 1 + 4), - get_u32(buf + pos + 1 + 8), - get_u32(buf + pos + 1 + 12)); - break; - case REOP_save_start: - case REOP_save_end: - case REOP_back_reference: - case REOP_backward_back_reference: - printf(" %u", buf[pos + 1]); - break; - case REOP_save_reset: - printf(" %u %u", buf[pos + 1], buf[pos + 2]); - break; - case REOP_push_i32: - val = get_u32(buf + pos + 1); - printf(" %d", val); - break; - case REOP_range: - { - int n, i; - n = get_u16(buf + pos + 1); - len += n * 4; - for(i = 0; i < n * 2; i++) { - val = get_u16(buf + pos + 3 + i * 2); - printf(" 0x%04x", val); - } - } - break; - case REOP_range32: - { - int n, i; - n = get_u16(buf + pos + 1); - len += n * 8; - for(i = 0; i < n * 2; i++) { - val = get_u32(buf + pos + 3 + i * 4); - printf(" 0x%08x", val); - } - } - break; - default: - break; - } - printf("\n"); - pos += len; - } -} -#endif - -static void re_emit_op(REParseState *s, int op) -{ - dbuf_putc(&s->byte_code, op); -} - -/* return the offset of the u32 value */ -static int re_emit_op_u32(REParseState *s, int op, uint32_t val) -{ - int pos; - dbuf_putc(&s->byte_code, op); - pos = s->byte_code.size; - dbuf_put_u32(&s->byte_code, val); - return pos; -} - -static int re_emit_goto(REParseState *s, int op, uint32_t val) -{ - int pos; - dbuf_putc(&s->byte_code, op); - pos = s->byte_code.size; - dbuf_put_u32(&s->byte_code, val - (pos + 4)); - return pos; -} - -static void re_emit_op_u8(REParseState *s, int op, uint32_t val) -{ - dbuf_putc(&s->byte_code, op); - dbuf_putc(&s->byte_code, val); -} - -static void re_emit_op_u16(REParseState *s, int op, uint32_t val) -{ - dbuf_putc(&s->byte_code, op); - dbuf_put_u16(&s->byte_code, val); -} - -static int JS_PRINTF_FORMAT_ATTR(2, 3) re_parse_error(REParseState *s, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - vsnprintf(s->u.error_msg, sizeof(s->u.error_msg), fmt, ap); - va_end(ap); - return -1; -} - -static int re_parse_out_of_memory(REParseState *s) -{ - return re_parse_error(s, "out of memory"); -} - -static int lre_check_size(REParseState *s) -{ - if (s->byte_code.size < 64*1024*1024) - return 0; - return re_parse_out_of_memory(s); -} - -/* If allow_overflow is false, return -1 in case of - overflow. Otherwise return INT32_MAX. */ -static int parse_digits(const uint8_t **pp, bool allow_overflow) -{ - const uint8_t *p; - uint64_t v; - int c; - - p = *pp; - v = 0; - for(;;) { - c = *p; - if (c < '0' || c > '9') - break; - v = v * 10 + c - '0'; - if (v >= INT32_MAX) { - if (allow_overflow) - v = INT32_MAX; - else - return -1; - } - p++; - } - *pp = p; - return v; -} - -static int re_parse_expect(REParseState *s, const uint8_t **pp, int c) -{ - const uint8_t *p; - p = *pp; - if (*p != c) - return re_parse_error(s, "expecting '%c'", c); - p++; - *pp = p; - return 0; -} - -/* Parse an escape sequence, *pp points after the '\': - allow_utf16 value: - 0 : no UTF-16 escapes allowed - 1 : UTF-16 escapes allowed - 2 : UTF-16 escapes allowed and escapes of surrogate pairs are - converted to a unicode character (unicode regexp case). - - Return the unicode char and update *pp if recognized, - return -1 if malformed escape, - return -2 otherwise. */ -int lre_parse_escape(const uint8_t **pp, int allow_utf16) -{ - const uint8_t *p; - uint32_t c; - - p = *pp; - c = *p++; - switch(c) { - case 'b': - c = '\b'; - break; - case 'f': - c = '\f'; - break; - case 'n': - c = '\n'; - break; - case 'r': - c = '\r'; - break; - case 't': - c = '\t'; - break; - case 'v': - c = '\v'; - break; - case 'x': - case 'u': - { - int h, n, i; - uint32_t c1; - - if (*p == '{' && allow_utf16) { - p++; - c = 0; - for(;;) { - h = from_hex(*p++); - if (h < 0) - return -1; - c = (c << 4) | h; - if (c > 0x10FFFF) - return -1; - if (*p == '}') - break; - } - p++; - } else { - if (c == 'x') { - n = 2; - } else { - n = 4; - } - - c = 0; - for(i = 0; i < n; i++) { - h = from_hex(*p++); - if (h < 0) { - return -1; - } - c = (c << 4) | h; - } - if (is_hi_surrogate(c) && - allow_utf16 == 2 && p[0] == '\\' && p[1] == 'u') { - /* convert an escaped surrogate pair into a - unicode char */ - c1 = 0; - for(i = 0; i < 4; i++) { - h = from_hex(p[2 + i]); - if (h < 0) - break; - c1 = (c1 << 4) | h; - } - if (i == 4 && is_lo_surrogate(c1)) { - p += 6; - c = from_surrogate(c, c1); - } - } - } - } - break; - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - c -= '0'; - if (allow_utf16 == 2) { - /* only accept \0 not followed by digit */ - if (c != 0 || lre_is_digit(*p)) - return -1; - } else { - /* parse a legacy octal sequence */ - uint32_t v; - v = *p - '0'; - if (v > 7) - break; - c = (c << 3) | v; - p++; - if (c >= 32) - break; - v = *p - '0'; - if (v > 7) - break; - c = (c << 3) | v; - p++; - } - break; - default: - return -2; - } - *pp = p; - return c; -} - -/* XXX: we use the same chars for name and value */ -static bool is_unicode_char(int c) -{ - return ((c >= '0' && c <= '9') || - (c >= 'A' && c <= 'Z') || - (c >= 'a' && c <= 'z') || - (c == '_')); -} - -static int parse_unicode_property(REParseState *s, CharRange *cr, - const uint8_t **pp, bool is_inv) -{ - const uint8_t *p; - char name[64], value[64]; - char *q; - bool script_ext; - int ret; - - p = *pp; - if (*p != '{') - return re_parse_error(s, "expecting '{' after \\p"); - p++; - q = name; - while (is_unicode_char(*p)) { - if ((q - name) >= sizeof(name) - 1) - goto unknown_property_name; - *q++ = *p++; - } - *q = '\0'; - q = value; - if (*p == '=') { - p++; - while (is_unicode_char(*p)) { - if ((q - value) >= sizeof(value) - 1) - return re_parse_error(s, "unknown unicode property value"); - *q++ = *p++; - } - } - *q = '\0'; - if (*p != '}') - return re_parse_error(s, "expecting '}'"); - p++; - // printf("name=%s value=%s\n", name, value); - - if (!strcmp(name, "Script") || !strcmp(name, "sc")) { - script_ext = false; - goto do_script; - } else if (!strcmp(name, "Script_Extensions") || !strcmp(name, "scx")) { - script_ext = true; - do_script: - cr_init(cr, s->opaque, lre_realloc); - ret = unicode_script(cr, value, script_ext); - if (ret) { - cr_free(cr); - if (ret == -2) - return re_parse_error(s, "unknown unicode script"); - else - goto out_of_memory; - } - } else if (!strcmp(name, "General_Category") || !strcmp(name, "gc")) { - cr_init(cr, s->opaque, lre_realloc); - ret = unicode_general_category(cr, value); - if (ret) { - cr_free(cr); - if (ret == -2) - return re_parse_error(s, "unknown unicode general category"); - else - goto out_of_memory; - } - } else if (value[0] == '\0') { - cr_init(cr, s->opaque, lre_realloc); - ret = unicode_general_category(cr, name); - if (ret == -1) { - cr_free(cr); - goto out_of_memory; - } - if (ret < 0) { - ret = unicode_prop(cr, name); - if (ret) { - cr_free(cr); - if (ret == -2) - goto unknown_property_name; - else - goto out_of_memory; - } - } - } else { - unknown_property_name: - return re_parse_error(s, "unknown unicode property name"); - } - - if (is_inv) { - if (cr_invert(cr)) { - cr_free(cr); - return -1; - } - } - *pp = p; - return 0; - out_of_memory: - return re_parse_out_of_memory(s); -} - -/* return -1 if error otherwise the character or a class range - (CLASS_RANGE_BASE). In case of class range, 'cr' is - initialized. Otherwise, it is ignored. */ -static int get_class_atom(REParseState *s, CharRange *cr, - const uint8_t **pp, bool inclass) -{ - const uint8_t *p, *p_next; - uint32_t c; - int ret; - - p = *pp; - - c = *p; - switch(c) { - case '\\': - p++; - if (p >= s->buf_end) - goto unexpected_end; - c = *p++; - switch(c) { - case 'd': - c = CHAR_RANGE_d; - goto class_range; - case 'D': - c = CHAR_RANGE_D; - goto class_range; - case 's': - c = CHAR_RANGE_s; - goto class_range; - case 'S': - c = CHAR_RANGE_S; - goto class_range; - case 'w': - c = CHAR_RANGE_w; - goto class_range; - case 'W': - c = CHAR_RANGE_W; - class_range: - if (cr_init_char_range(s, cr, c)) - return -1; - c = CLASS_RANGE_BASE; - break; - case 'c': - c = *p; - if ((c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - (((c >= '0' && c <= '9') || c == '_') && - inclass && !s->is_unicode)) { /* Annex B.1.4 */ - c &= 0x1f; - p++; - } else if (s->is_unicode) { - goto invalid_escape; - } else { - /* otherwise return '\' and 'c' */ - p--; - c = '\\'; - } - break; - case 'p': - case 'P': - if (s->is_unicode) { - if (parse_unicode_property(s, cr, &p, (c == 'P'))) - return -1; - c = CLASS_RANGE_BASE; - break; - } - /* fall thru */ - default: - p--; - ret = lre_parse_escape(&p, s->is_unicode * 2); - if (ret >= 0) { - c = ret; - } else { - if (ret == -2 && *p != '\0' && strchr("^$\\.*+?()[]{}|/", *p)) { - /* always valid to escape these characters */ - goto normal_char; - } else if (s->is_unicode) { - // special case: allowed inside [] but not outside - if (ret == -2 && *p == '-' && inclass) - goto normal_char; - invalid_escape: - return re_parse_error(s, "invalid escape sequence in regular expression"); - } else { - /* just ignore the '\' */ - goto normal_char; - } - } - break; - } - break; - case '\0': - if (p >= s->buf_end) { - unexpected_end: - return re_parse_error(s, "unexpected end"); - } - /* fall thru */ - default: - normal_char: - p++; - if (c >= 0x80) { - c = utf8_decode(p - 1, &p_next); - if (p_next == p) - return re_parse_error(s, "invalid UTF-8 sequence"); - p = p_next; - if (c > 0xFFFF && !s->is_unicode) { - // TODO(chqrlie): should handle non BMP-1 code points in - // the calling function and no require the source string - // to be CESU-8 encoded if not s->is_unicode - return re_parse_error(s, "malformed unicode char"); - } - } - break; - } - *pp = p; - return c; -} - -static int re_emit_range(REParseState *s, const CharRange *cr) -{ - int len, i; - uint32_t high; - - len = (unsigned)cr->len / 2; - if (len >= 65535) - return re_parse_error(s, "too many ranges"); - if (len == 0) { - /* not sure it can really happen. Emit a match that is always - false */ - re_emit_op_u32(s, REOP_char32, -1); - } else { - high = cr->points[cr->len - 1]; - if (high == UINT32_MAX) - high = cr->points[cr->len - 2]; - if (high <= 0xffff) { - /* can use 16 bit ranges with the conversion that 0xffff = - infinity */ - re_emit_op_u16(s, REOP_range, len); - for(i = 0; i < cr->len; i += 2) { - dbuf_put_u16(&s->byte_code, cr->points[i]); - high = cr->points[i + 1] - 1; - if (high == UINT32_MAX - 1) - high = 0xffff; - dbuf_put_u16(&s->byte_code, high); - } - } else { - re_emit_op_u16(s, REOP_range32, len); - for(i = 0; i < cr->len; i += 2) { - dbuf_put_u32(&s->byte_code, cr->points[i]); - dbuf_put_u32(&s->byte_code, cr->points[i + 1] - 1); - } - } - } - return 0; -} - -// s->unicode turns patterns like []] into syntax errors -// s->unicode_sets turns more patterns into errors, like [a-] or [[] -static int re_parse_char_class(REParseState *s, const uint8_t **pp) -{ - const uint8_t *p; - uint32_t c1, c2; - CharRange cr_s, *cr = &cr_s; - CharRange cr1_s, *cr1 = &cr1_s; - bool invert; - - cr_init(cr, s->opaque, lre_realloc); - p = *pp; - p++; /* skip '[' */ - - if (s->unicode_sets) { - static const char verboten[] = - "()[{}/-|" "\0" - "&&!!##$$%%**++,,..::;;<<==>>??@@``~~" "\0" - "^^^_^^"; - const char *s = verboten; - int n = 1; - do { - if (!memcmp(s, p, n)) - if (p[n] == ']') - goto invalid_class_range; - s += n; - if (!*s) { - s++; - n++; - } - } while (n < 4); - } - - invert = false; - if (*p == '^') { - p++; - invert = true; - } - - for(;;) { - if (*p == ']') - break; - c1 = get_class_atom(s, cr1, &p, true); - if ((int)c1 < 0) - goto fail; - if (*p == '-' && p[1] == ']' && s->unicode_sets) { - if (c1 >= CLASS_RANGE_BASE) - cr_free(cr1); - goto invalid_class_range; - } - if (*p == '-' && p[1] != ']') { - const uint8_t *p0 = p + 1; - if (c1 >= CLASS_RANGE_BASE) { - if (s->is_unicode) { - cr_free(cr1); - goto invalid_class_range; - } - /* Annex B: match '-' character */ - goto class_atom; - } - c2 = get_class_atom(s, cr1, &p0, true); - if ((int)c2 < 0) - goto fail; - if (c2 >= CLASS_RANGE_BASE) { - cr_free(cr1); - if (s->is_unicode) { - goto invalid_class_range; - } - /* Annex B: match '-' character */ - goto class_atom; - } - p = p0; - if (c2 < c1) { - invalid_class_range: - re_parse_error(s, "invalid class range"); - goto fail; - } - if (cr_union_interval(cr, c1, c2)) - goto memory_error; - } else { - class_atom: - if (c1 >= CLASS_RANGE_BASE) { - int ret; - ret = cr_union1(cr, cr1->points, cr1->len); - cr_free(cr1); - if (ret) - goto memory_error; - } else { - if (cr_union_interval(cr, c1, c1)) - goto memory_error; - } - } - } - if (s->ignore_case) { - if (cr_regexp_canonicalize(cr, s->is_unicode)) - goto memory_error; - } - if (invert) { - if (cr_invert(cr)) - goto memory_error; - } - if (re_emit_range(s, cr)) - goto fail; - cr_free(cr); - p++; /* skip ']' */ - *pp = p; - return 0; - memory_error: - re_parse_out_of_memory(s); - fail: - cr_free(cr); - return -1; -} - -/* Return: - - true if the opcodes may not advance the char pointer - - false if the opcodes always advance the char pointer -*/ -static bool re_need_check_advance(const uint8_t *bc_buf, int bc_buf_len) -{ - int pos, opcode, len; - uint32_t val; - bool ret; - - ret = true; - pos = 0; - - while (pos < bc_buf_len) { - opcode = bc_buf[pos]; - len = reopcode_info[opcode].size; - switch(opcode) { - case REOP_range: - val = get_u16(bc_buf + pos + 1); - len += val * 4; - goto simple_char; - case REOP_range32: - val = get_u16(bc_buf + pos + 1); - len += val * 8; - goto simple_char; - case REOP_char32: - case REOP_char16: - case REOP_char8: - case REOP_dot: - case REOP_any: - simple_char: - ret = false; - break; - case REOP_line_start: - case REOP_line_end: - case REOP_push_i32: - case REOP_push_char_pos: - case REOP_drop: - case REOP_word_boundary: - case REOP_not_word_boundary: - case REOP_prev: - /* no effect */ - break; - case REOP_save_start: - case REOP_save_end: - case REOP_save_reset: - case REOP_back_reference: - case REOP_backward_back_reference: - break; - default: - /* safe behvior: we cannot predict the outcome */ - return true; - } - pos += len; - } - return ret; -} - -/* return -1 if a simple quantifier cannot be used. Otherwise return - the number of characters in the atom. */ -static int re_is_simple_quantifier(const uint8_t *bc_buf, int bc_buf_len) -{ - int pos, opcode, len, count; - uint32_t val; - - count = 0; - pos = 0; - while (pos < bc_buf_len) { - opcode = bc_buf[pos]; - len = reopcode_info[opcode].size; - switch(opcode) { - case REOP_range: - val = get_u16(bc_buf + pos + 1); - len += val * 4; - goto simple_char; - case REOP_range32: - val = get_u16(bc_buf + pos + 1); - len += val * 8; - goto simple_char; - case REOP_char32: - case REOP_char16: - case REOP_char8: - case REOP_dot: - case REOP_any: - simple_char: - count++; - break; - case REOP_line_start: - case REOP_line_end: - case REOP_word_boundary: - case REOP_not_word_boundary: - break; - default: - return -1; - } - pos += len; - } - return count; -} - -/* '*pp' is the first char after '<' */ -static int re_parse_group_name(char *buf, int buf_size, const uint8_t **pp) -{ - const uint8_t *p, *p_next; - uint32_t c, d; - char *q; - - p = *pp; - q = buf; - for(;;) { - c = *p++; - if (c == '\\') { - if (*p != 'u') - return -1; - c = lre_parse_escape(&p, 2); // accept surrogate pairs - if ((int)c < 0) - return -1; - } else if (c == '>') { - break; - } else if (c >= 0x80) { - c = utf8_decode(p - 1, &p_next); - if (p_next == p) - return -1; - p = p_next; - if (is_hi_surrogate(c)) { - d = utf8_decode(p, &p_next); - if (is_lo_surrogate(d)) { - c = from_surrogate(c, d); - p = p_next; - } - } - } - if (q == buf) { - if (!lre_js_is_ident_first(c)) - return -1; - } else { - if (!lre_js_is_ident_next(c)) - return -1; - } - if ((q - buf + UTF8_CHAR_LEN_MAX + 1) > buf_size) - return -1; - if (c < 0x80) { - *q++ = c; - } else { - q += utf8_encode((uint8_t*)q, c); - } - } - if (q == buf) - return -1; - *q = '\0'; - *pp = p; - return 0; -} - -/* if capture_name = NULL: return the number of captures + 1. - Otherwise, return the capture index corresponding to capture_name - or -1 if none */ -static int re_parse_captures(REParseState *s, int *phas_named_captures, - const char *capture_name) -{ - const uint8_t *p; - int capture_index; - char name[TMP_BUF_SIZE]; - - capture_index = 1; - *phas_named_captures = 0; - for (p = s->buf_start; p < s->buf_end; p++) { - switch (*p) { - case '(': - if (p[1] == '?') { - if (p[2] == '<' && p[3] != '=' && p[3] != '!') { - *phas_named_captures = 1; - /* potential named capture */ - if (capture_name) { - p += 3; - if (re_parse_group_name(name, sizeof(name), &p) == 0) { - if (!strcmp(name, capture_name)) - return capture_index; - } - } - capture_index++; - if (capture_index >= CAPTURE_COUNT_MAX) - goto done; - } - } else { - capture_index++; - if (capture_index >= CAPTURE_COUNT_MAX) - goto done; - } - break; - case '\\': - p++; - break; - case '[': - for (p += 1 + (*p == ']'); p < s->buf_end && *p != ']'; p++) { - if (*p == '\\') - p++; - } - break; - } - } - done: - if (capture_name) - return -1; - else - return capture_index; -} - -static int re_count_captures(REParseState *s) -{ - if (s->total_capture_count < 0) { - s->total_capture_count = re_parse_captures(s, &s->has_named_captures, - NULL); - } - return s->total_capture_count; -} - -static bool re_has_named_captures(REParseState *s) -{ - if (s->has_named_captures < 0) - re_count_captures(s); - return s->has_named_captures; -} - -static int find_group_name(REParseState *s, const char *name) -{ - const char *p, *buf_end; - size_t len, name_len; - int capture_index; - - p = (char *)s->group_names.buf; - if (!p) return -1; - buf_end = (char *)s->group_names.buf + s->group_names.size; - name_len = strlen(name); - capture_index = 1; - while (p < buf_end) { - len = strlen(p); - if (len == name_len && memcmp(name, p, name_len) == 0) - return capture_index; - p += len + 1; - capture_index++; - } - return -1; -} - -static int re_parse_disjunction(REParseState *s, bool is_backward_dir); - -static int re_parse_term(REParseState *s, bool is_backward_dir) -{ - const uint8_t *p; - int c, last_atom_start, quant_min, quant_max, last_capture_count; - bool greedy, add_zero_advance_check, is_neg, is_backward_lookahead; - CharRange cr_s, *cr = &cr_s; - - if (lre_check_size(s)) - return -1; - last_atom_start = -1; - last_capture_count = 0; - p = s->buf_ptr; - c = *p; - switch(c) { - case '^': - p++; - re_emit_op(s, REOP_line_start); - break; - case '$': - p++; - re_emit_op(s, REOP_line_end); - break; - case '.': - p++; - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - if (is_backward_dir) - re_emit_op(s, REOP_prev); - re_emit_op(s, s->dotall ? REOP_any : REOP_dot); - if (is_backward_dir) - re_emit_op(s, REOP_prev); - break; - case '{': - if (s->is_unicode) { - return re_parse_error(s, "syntax error"); - } else if (!lre_is_digit(p[1])) { - /* Annex B: we accept '{' not followed by digits as a - normal atom */ - goto parse_class_atom; - } else { - const uint8_t *p1 = p + 1; - /* Annex B: error if it is like a repetition count */ - parse_digits(&p1, true); - if (*p1 == ',') { - p1++; - if (lre_is_digit(*p1)) { - parse_digits(&p1, true); - } - } - if (*p1 != '}') { - goto parse_class_atom; - } - } - /* fall thru */ - case '*': - case '+': - case '?': - return re_parse_error(s, "nothing to repeat"); - case '(': - if (p[1] == '?') { - if (p[2] == ':') { - p += 3; - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - s->buf_ptr = p; - if (re_parse_disjunction(s, is_backward_dir)) - return -1; - p = s->buf_ptr; - if (re_parse_expect(s, &p, ')')) - return -1; - } else if ((p[2] == '=' || p[2] == '!')) { - is_neg = (p[2] == '!'); - is_backward_lookahead = false; - p += 3; - goto lookahead; - } else if (p[2] == '<' && - (p[3] == '=' || p[3] == '!')) { - int pos; - is_neg = (p[3] == '!'); - is_backward_lookahead = true; - p += 4; - /* lookahead */ - lookahead: - /* Annex B allows lookahead to be used as an atom for - the quantifiers */ - if (!s->is_unicode && !is_backward_lookahead) { - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - } - pos = re_emit_op_u32(s, REOP_lookahead + is_neg, 0); - s->buf_ptr = p; - if (re_parse_disjunction(s, is_backward_lookahead)) - return -1; - p = s->buf_ptr; - if (re_parse_expect(s, &p, ')')) - return -1; - re_emit_op(s, REOP_match); - /* jump after the 'match' after the lookahead is successful */ - if (dbuf_error(&s->byte_code)) - return -1; - put_u32(s->byte_code.buf + pos, s->byte_code.size - (pos + 4)); - } else if (p[2] == '<') { - p += 3; - if (re_parse_group_name(s->u.tmp_buf, sizeof(s->u.tmp_buf), - &p)) { - return re_parse_error(s, "invalid group name"); - } - if (find_group_name(s, s->u.tmp_buf) > 0) { - return re_parse_error(s, "duplicate group name"); - } - /* group name with a trailing zero */ - dbuf_put(&s->group_names, (uint8_t *)s->u.tmp_buf, - strlen(s->u.tmp_buf) + 1); - s->has_named_captures = 1; - goto parse_capture; - } else { - return re_parse_error(s, "invalid group"); - } - } else { - int capture_index; - p++; - /* capture without group name */ - dbuf_putc(&s->group_names, 0); - parse_capture: - if (s->capture_count >= CAPTURE_COUNT_MAX) - return re_parse_error(s, "too many captures"); - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - capture_index = s->capture_count++; - re_emit_op_u8(s, REOP_save_start + is_backward_dir, - capture_index); - - s->buf_ptr = p; - if (re_parse_disjunction(s, is_backward_dir)) - return -1; - p = s->buf_ptr; - - re_emit_op_u8(s, REOP_save_start + 1 - is_backward_dir, - capture_index); - - if (re_parse_expect(s, &p, ')')) - return -1; - } - break; - case '\\': - switch(p[1]) { - case 'b': - case 'B': - re_emit_op(s, REOP_word_boundary + (p[1] != 'b')); - p += 2; - break; - case 'k': - { - const uint8_t *p1; - int dummy_res; - - p1 = p; - if (p1[2] != '<') { - /* annex B: we tolerate invalid group names in non - unicode mode if there is no named capture - definition */ - if (s->is_unicode || re_has_named_captures(s)) - return re_parse_error(s, "expecting group name"); - else - goto parse_class_atom; - } - p1 += 3; - if (re_parse_group_name(s->u.tmp_buf, sizeof(s->u.tmp_buf), - &p1)) { - if (s->is_unicode || re_has_named_captures(s)) - return re_parse_error(s, "invalid group name"); - else - goto parse_class_atom; - } - c = find_group_name(s, s->u.tmp_buf); - if (c < 0) { - /* no capture name parsed before, try to look - after (inefficient, but hopefully not common */ - c = re_parse_captures(s, &dummy_res, s->u.tmp_buf); - if (c < 0) { - if (s->is_unicode || re_has_named_captures(s)) - return re_parse_error(s, "group name not defined"); - else - goto parse_class_atom; - } - } - p = p1; - } - goto emit_back_reference; - case '0': - p += 2; - c = 0; - if (s->is_unicode) { - if (lre_is_digit(*p)) { - return re_parse_error(s, "invalid decimal escape in regular expression"); - } - } else { - /* Annex B.1.4: accept legacy octal */ - if (*p >= '0' && *p <= '7') { - c = *p++ - '0'; - if (*p >= '0' && *p <= '7') { - c = (c << 3) + *p++ - '0'; - } - } - } - goto normal_char; - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': - case '9': - { - const uint8_t *q = ++p; - - c = parse_digits(&p, false); - if (c < 0 || (c >= s->capture_count && c >= re_count_captures(s))) { - if (!s->is_unicode) { - /* Annex B.1.4: accept legacy octal */ - p = q; - if (*p <= '7') { - c = 0; - if (*p <= '3') - c = *p++ - '0'; - if (*p >= '0' && *p <= '7') { - c = (c << 3) + *p++ - '0'; - if (*p >= '0' && *p <= '7') { - c = (c << 3) + *p++ - '0'; - } - } - } else { - c = *p++; - } - goto normal_char; - } - return re_parse_error(s, "back reference out of range in regular expression"); - } - emit_back_reference: - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - re_emit_op_u8(s, REOP_back_reference + is_backward_dir, c); - } - break; - default: - goto parse_class_atom; - } - break; - case '[': - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - if (is_backward_dir) - re_emit_op(s, REOP_prev); - if (re_parse_char_class(s, &p)) - return -1; - if (is_backward_dir) - re_emit_op(s, REOP_prev); - break; - case ']': - case '}': - if (s->is_unicode) - return re_parse_error(s, "syntax error"); - goto parse_class_atom; - default: - parse_class_atom: - c = get_class_atom(s, cr, &p, false); - if ((int)c < 0) - return -1; - normal_char: - last_atom_start = s->byte_code.size; - last_capture_count = s->capture_count; - if (is_backward_dir) - re_emit_op(s, REOP_prev); - if (c >= CLASS_RANGE_BASE) { - int ret; - /* Note: canonicalization is not needed */ - ret = re_emit_range(s, cr); - cr_free(cr); - if (ret) - return -1; - } else { - if (s->ignore_case) - c = lre_canonicalize(c, s->is_unicode); - if (c <= 0x7f) - re_emit_op_u8(s, REOP_char8, c); - else if (c <= 0xffff) - re_emit_op_u16(s, REOP_char16, c); - else - re_emit_op_u32(s, REOP_char32, c); - } - if (is_backward_dir) - re_emit_op(s, REOP_prev); - break; - } - - /* quantifier */ - if (last_atom_start >= 0) { - c = *p; - switch(c) { - case '*': - p++; - quant_min = 0; - quant_max = INT32_MAX; - goto quantifier; - case '+': - p++; - quant_min = 1; - quant_max = INT32_MAX; - goto quantifier; - case '?': - p++; - quant_min = 0; - quant_max = 1; - goto quantifier; - case '{': - { - const uint8_t *p1 = p; - /* As an extension (see ES6 annex B), we accept '{' not - followed by digits as a normal atom */ - if (!lre_is_digit(p[1])) { - if (s->is_unicode) - goto invalid_quant_count; - break; - } - p++; - quant_min = parse_digits(&p, true); - quant_max = quant_min; - if (*p == ',') { - p++; - if (lre_is_digit(*p)) { - quant_max = parse_digits(&p, true); - if (quant_max < quant_min) { - invalid_quant_count: - return re_parse_error(s, "invalid repetition count"); - } - } else { - quant_max = INT32_MAX; /* infinity */ - } - } - if (*p != '}' && !s->is_unicode) { - /* Annex B: normal atom if invalid '{' syntax */ - p = p1; - break; - } - if (re_parse_expect(s, &p, '}')) - return -1; - } - quantifier: - greedy = true; - if (*p == '?') { - p++; - greedy = false; - } - if (last_atom_start < 0) { - return re_parse_error(s, "nothing to repeat"); - } - if (greedy) { - int len, pos; - - if (quant_max > 0) { - /* specific optimization for simple quantifiers */ - if (dbuf_error(&s->byte_code)) - goto out_of_memory; - len = re_is_simple_quantifier(s->byte_code.buf + last_atom_start, - s->byte_code.size - last_atom_start); - if (len > 0) { - re_emit_op(s, REOP_match); - - if (dbuf_insert(&s->byte_code, last_atom_start, 17)) - goto out_of_memory; - pos = last_atom_start; - s->byte_code.buf[pos++] = REOP_simple_greedy_quant; - put_u32(&s->byte_code.buf[pos], - s->byte_code.size - last_atom_start - 17); - pos += 4; - put_u32(&s->byte_code.buf[pos], quant_min); - pos += 4; - put_u32(&s->byte_code.buf[pos], quant_max); - pos += 4; - put_u32(&s->byte_code.buf[pos], len); - pos += 4; - goto done; - } - } - - if (dbuf_error(&s->byte_code)) - goto out_of_memory; - } - /* the spec tells that if there is no advance when - running the atom after the first quant_min times, - then there is no match. We remove this test when we - are sure the atom always advances the position. */ - add_zero_advance_check = re_need_check_advance(s->byte_code.buf + last_atom_start, - s->byte_code.size - last_atom_start); - - { - int len, pos; - len = s->byte_code.size - last_atom_start; - if (quant_min == 0) { - /* need to reset the capture in case the atom is - not executed */ - if (last_capture_count != s->capture_count) { - if (dbuf_insert(&s->byte_code, last_atom_start, 3)) - goto out_of_memory; - s->byte_code.buf[last_atom_start++] = REOP_save_reset; - s->byte_code.buf[last_atom_start++] = last_capture_count; - s->byte_code.buf[last_atom_start++] = s->capture_count - 1; - } - if (quant_max == 0) { - s->byte_code.size = last_atom_start; - } else if (quant_max == 1 || quant_max == INT32_MAX) { - bool has_goto = (quant_max == INT32_MAX); - if (dbuf_insert(&s->byte_code, last_atom_start, 5 + add_zero_advance_check)) - goto out_of_memory; - s->byte_code.buf[last_atom_start] = REOP_split_goto_first + - greedy; - put_u32(s->byte_code.buf + last_atom_start + 1, - len + 5 * has_goto + add_zero_advance_check * 2); - if (add_zero_advance_check) { - s->byte_code.buf[last_atom_start + 1 + 4] = REOP_push_char_pos; - re_emit_op(s, REOP_check_advance); - } - if (has_goto) - re_emit_goto(s, REOP_goto, last_atom_start); - } else { - if (dbuf_insert(&s->byte_code, last_atom_start, 10 + add_zero_advance_check)) - goto out_of_memory; - pos = last_atom_start; - s->byte_code.buf[pos++] = REOP_push_i32; - put_u32(s->byte_code.buf + pos, quant_max); - pos += 4; - s->byte_code.buf[pos++] = REOP_split_goto_first + greedy; - put_u32(s->byte_code.buf + pos, len + 5 + add_zero_advance_check * 2); - pos += 4; - if (add_zero_advance_check) { - s->byte_code.buf[pos++] = REOP_push_char_pos; - re_emit_op(s, REOP_check_advance); - } - re_emit_goto(s, REOP_loop, last_atom_start + 5); - re_emit_op(s, REOP_drop); - } - } else if (quant_min == 1 && quant_max == INT32_MAX && - !add_zero_advance_check) { - re_emit_goto(s, REOP_split_next_first - greedy, - last_atom_start); - } else { - if (quant_min == 1) { - /* nothing to add */ - } else { - if (dbuf_insert(&s->byte_code, last_atom_start, 5)) - goto out_of_memory; - s->byte_code.buf[last_atom_start] = REOP_push_i32; - put_u32(s->byte_code.buf + last_atom_start + 1, - quant_min); - last_atom_start += 5; - re_emit_goto(s, REOP_loop, last_atom_start); - re_emit_op(s, REOP_drop); - } - if (quant_max == INT32_MAX) { - pos = s->byte_code.size; - re_emit_op_u32(s, REOP_split_goto_first + greedy, - len + 5 + add_zero_advance_check * 2); - if (add_zero_advance_check) - re_emit_op(s, REOP_push_char_pos); - /* copy the atom */ - dbuf_put_self(&s->byte_code, last_atom_start, len); - if (add_zero_advance_check) - re_emit_op(s, REOP_check_advance); - re_emit_goto(s, REOP_goto, pos); - } else if (quant_max > quant_min) { - re_emit_op_u32(s, REOP_push_i32, quant_max - quant_min); - pos = s->byte_code.size; - re_emit_op_u32(s, REOP_split_goto_first + greedy, - len + 5 + add_zero_advance_check * 2); - if (add_zero_advance_check) - re_emit_op(s, REOP_push_char_pos); - /* copy the atom */ - dbuf_put_self(&s->byte_code, last_atom_start, len); - if (add_zero_advance_check) - re_emit_op(s, REOP_check_advance); - re_emit_goto(s, REOP_loop, pos); - re_emit_op(s, REOP_drop); - } - } - last_atom_start = -1; - } - break; - default: - break; - } - } - done: - s->buf_ptr = p; - return 0; - out_of_memory: - return re_parse_out_of_memory(s); -} - -static int re_parse_alternative(REParseState *s, bool is_backward_dir) -{ - const uint8_t *p; - int ret; - size_t start, term_start, end, term_size; - - if (lre_check_size(s)) - return -1; - start = s->byte_code.size; - for(;;) { - p = s->buf_ptr; - if (p >= s->buf_end) - break; - if (*p == '|' || *p == ')') - break; - term_start = s->byte_code.size; - ret = re_parse_term(s, is_backward_dir); - if (ret) - return ret; - if (is_backward_dir) { - /* reverse the order of the terms (XXX: inefficient, but - speed is not really critical here) */ - end = s->byte_code.size; - term_size = end - term_start; - if (dbuf_realloc(&s->byte_code, end + term_size)) - return -1; - memmove(s->byte_code.buf + start + term_size, - s->byte_code.buf + start, - end - start); - memcpy(s->byte_code.buf + start, s->byte_code.buf + end, - term_size); - } - } - return 0; -} - -static int re_parse_disjunction(REParseState *s, bool is_backward_dir) -{ - int start, len, pos; - - if (lre_check_stack_overflow(s->opaque, 0)) - return re_parse_error(s, "stack overflow"); - if (lre_check_size(s)) - return -1; - start = s->byte_code.size; - if (re_parse_alternative(s, is_backward_dir)) - return -1; - while (*s->buf_ptr == '|') { - s->buf_ptr++; - - len = s->byte_code.size - start; - - /* insert a split before the first alternative */ - if (dbuf_insert(&s->byte_code, start, 5)) { - return re_parse_out_of_memory(s); - } - s->byte_code.buf[start] = REOP_split_next_first; - put_u32(s->byte_code.buf + start + 1, len + 5); - - pos = re_emit_op_u32(s, REOP_goto, 0); - - if (re_parse_alternative(s, is_backward_dir)) - return -1; - - /* patch the goto */ - len = s->byte_code.size - (pos + 4); - put_u32(s->byte_code.buf + pos, len); - } - return 0; -} - -/* the control flow is recursive so the analysis can be linear */ -static int lre_compute_stack_size(const uint8_t *bc_buf, int bc_buf_len) -{ - int stack_size, stack_size_max, pos, opcode, len; - uint32_t val; - - stack_size = 0; - stack_size_max = 0; - bc_buf += RE_HEADER_LEN; - bc_buf_len -= RE_HEADER_LEN; - pos = 0; - while (pos < bc_buf_len) { - opcode = bc_buf[pos]; - len = reopcode_info[opcode].size; - assert(opcode < REOP_COUNT); - assert((pos + len) <= bc_buf_len); - switch(opcode) { - case REOP_push_i32: - case REOP_push_char_pos: - stack_size++; - if (stack_size > stack_size_max) { - if (stack_size > STACK_SIZE_MAX) - return -1; - stack_size_max = stack_size; - } - break; - case REOP_drop: - case REOP_check_advance: - assert(stack_size > 0); - stack_size--; - break; - case REOP_range: - val = get_u16(bc_buf + pos + 1); - len += val * 4; - break; - case REOP_range32: - val = get_u16(bc_buf + pos + 1); - len += val * 8; - break; - } - pos += len; - } - return stack_size_max; -} - -/* 'buf' must be a zero terminated UTF-8 string of length buf_len. - Return NULL if error and allocate an error message in *perror_msg, - otherwise the compiled bytecode and its length in plen. -*/ -uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size, - const char *buf, size_t buf_len, int re_flags, - void *opaque) -{ - REParseState s_s, *s = &s_s; - int stack_size; - bool is_sticky; - - memset(s, 0, sizeof(*s)); - s->opaque = opaque; - s->buf_ptr = (const uint8_t *)buf; - s->buf_end = s->buf_ptr + buf_len; - s->buf_start = s->buf_ptr; - s->re_flags = re_flags; - s->is_unicode = ((re_flags & LRE_FLAG_UNICODE) != 0); - is_sticky = ((re_flags & LRE_FLAG_STICKY) != 0); - s->ignore_case = ((re_flags & LRE_FLAG_IGNORECASE) != 0); - s->dotall = ((re_flags & LRE_FLAG_DOTALL) != 0); - s->unicode_sets = ((re_flags & LRE_FLAG_UNICODE_SETS) != 0); - s->capture_count = 1; - s->total_capture_count = -1; - s->has_named_captures = -1; - - dbuf_init2(&s->byte_code, opaque, lre_realloc); - dbuf_init2(&s->group_names, opaque, lre_realloc); - - dbuf_put_u16(&s->byte_code, re_flags); /* first element is the flags */ - dbuf_putc(&s->byte_code, 0); /* second element is the number of captures */ - dbuf_putc(&s->byte_code, 0); /* stack size */ - dbuf_put_u32(&s->byte_code, 0); /* bytecode length */ - - if (!is_sticky) { - /* iterate thru all positions (about the same as .*?( ... ) ) - . We do it without an explicit loop so that lock step - thread execution will be possible in an optimized - implementation */ - re_emit_op_u32(s, REOP_split_goto_first, 1 + 5); - re_emit_op(s, REOP_any); - re_emit_op_u32(s, REOP_goto, -(5 + 1 + 5)); - } - re_emit_op_u8(s, REOP_save_start, 0); - - if (re_parse_disjunction(s, false)) { - error: - dbuf_free(&s->byte_code); - dbuf_free(&s->group_names); - js__pstrcpy(error_msg, error_msg_size, s->u.error_msg); - *plen = 0; - return NULL; - } - - re_emit_op_u8(s, REOP_save_end, 0); - - re_emit_op(s, REOP_match); - - if (*s->buf_ptr != '\0') { - re_parse_error(s, "extraneous characters at the end"); - goto error; - } - - if (dbuf_error(&s->byte_code)) { - re_parse_out_of_memory(s); - goto error; - } - - stack_size = lre_compute_stack_size(s->byte_code.buf, s->byte_code.size); - if (stack_size < 0) { - re_parse_error(s, "too many imbricated quantifiers"); - goto error; - } - - s->byte_code.buf[RE_HEADER_CAPTURE_COUNT] = s->capture_count; - s->byte_code.buf[RE_HEADER_STACK_SIZE] = stack_size; - put_u32(s->byte_code.buf + RE_HEADER_BYTECODE_LEN, - s->byte_code.size - RE_HEADER_LEN); - - /* add the named groups if needed */ - if (s->group_names.size > (s->capture_count - 1)) { - dbuf_put(&s->byte_code, s->group_names.buf, s->group_names.size); - put_u16(s->byte_code.buf + RE_HEADER_FLAGS, - LRE_FLAG_NAMED_GROUPS | lre_get_flags(s->byte_code.buf)); - } - dbuf_free(&s->group_names); - -#ifdef DUMP_REOP - lre_dump_bytecode(s->byte_code.buf, s->byte_code.size); -#endif - - error_msg[0] = '\0'; - *plen = s->byte_code.size; - return s->byte_code.buf; -} - -static bool is_line_terminator(uint32_t c) -{ - return (c == '\n' || c == '\r' || c == CP_LS || c == CP_PS); -} - -static bool is_word_char(uint32_t c) -{ - return ((c >= '0' && c <= '9') || - (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - (c == '_')); -} - -#define GET_CHAR(c, cptr, cbuf_end, cbuf_type) \ - do { \ - if (cbuf_type == 0) { \ - c = *cptr++; \ - } else { \ - const uint16_t *_p = (const uint16_t *)cptr; \ - const uint16_t *_end = (const uint16_t *)cbuf_end; \ - c = *_p++; \ - if (is_hi_surrogate(c)) \ - if (cbuf_type == 2) \ - if (_p < _end) \ - if (is_lo_surrogate(*_p)) \ - c = from_surrogate(c, *_p++); \ - cptr = (const void *)_p; \ - } \ - } while (0) - -#define PEEK_CHAR(c, cptr, cbuf_end, cbuf_type) \ - do { \ - if (cbuf_type == 0) { \ - c = cptr[0]; \ - } else { \ - const uint16_t *_p = (const uint16_t *)cptr; \ - const uint16_t *_end = (const uint16_t *)cbuf_end; \ - c = *_p++; \ - if (is_hi_surrogate(c)) \ - if (cbuf_type == 2) \ - if (_p < _end) \ - if (is_lo_surrogate(*_p)) \ - c = from_surrogate(c, *_p); \ - } \ - } while (0) - -#define PEEK_PREV_CHAR(c, cptr, cbuf_start, cbuf_type) \ - do { \ - if (cbuf_type == 0) { \ - c = cptr[-1]; \ - } else { \ - const uint16_t *_p = (const uint16_t *)cptr - 1; \ - const uint16_t *_start = (const uint16_t *)cbuf_start; \ - c = *_p; \ - if (is_lo_surrogate(c)) \ - if (cbuf_type == 2) \ - if (_p > _start) \ - if (is_hi_surrogate(_p[-1])) \ - c = from_surrogate(*--_p, c); \ - } \ - } while (0) - -#define GET_PREV_CHAR(c, cptr, cbuf_start, cbuf_type) \ - do { \ - if (cbuf_type == 0) { \ - cptr--; \ - c = cptr[0]; \ - } else { \ - const uint16_t *_p = (const uint16_t *)cptr - 1; \ - const uint16_t *_start = (const uint16_t *)cbuf_start; \ - c = *_p; \ - if (is_lo_surrogate(c)) \ - if (cbuf_type == 2) \ - if (_p > _start) \ - if (is_hi_surrogate(_p[-1])) \ - c = from_surrogate(*--_p, c); \ - cptr = (const void *)_p; \ - } \ - } while (0) - -#define PREV_CHAR(cptr, cbuf_start, cbuf_type) \ - do { \ - if (cbuf_type == 0) { \ - cptr--; \ - } else { \ - const uint16_t *_p = (const uint16_t *)cptr - 1; \ - const uint16_t *_start = (const uint16_t *)cbuf_start; \ - if (is_lo_surrogate(*_p)) \ - if (cbuf_type == 2) \ - if (_p > _start) \ - if (is_hi_surrogate(_p[-1])) \ - _p--; \ - cptr = (const void *)_p; \ - } \ - } while (0) - -typedef uintptr_t StackInt; - -typedef enum { - RE_EXEC_STATE_SPLIT, - RE_EXEC_STATE_LOOKAHEAD, - RE_EXEC_STATE_NEGATIVE_LOOKAHEAD, - RE_EXEC_STATE_GREEDY_QUANT, -} REExecStateEnum; - -typedef struct REExecState { - REExecStateEnum type : 8; - uint8_t stack_len; - size_t count; /* only used for RE_EXEC_STATE_GREEDY_QUANT */ - const uint8_t *cptr; - const uint8_t *pc; - void *buf[]; -} REExecState; - -typedef struct { - const uint8_t *cbuf; - const uint8_t *cbuf_end; - /* 0 = 8 bit chars, 1 = 16 bit chars, 2 = 16 bit chars, UTF-16 */ - int cbuf_type; - int capture_count; - int stack_size_max; - bool multi_line; - bool ignore_case; - bool is_unicode; - int interrupt_counter; - void *opaque; /* used for stack overflow check */ - - size_t state_size; - uint8_t *state_stack; - size_t state_stack_size; - size_t state_stack_len; -} REExecContext; - -static int push_state(REExecContext *s, - uint8_t **capture, - StackInt *stack, size_t stack_len, - const uint8_t *pc, const uint8_t *cptr, - REExecStateEnum type, size_t count) -{ - REExecState *rs; - uint8_t *new_stack; - size_t new_size, i, n; - StackInt *stack_buf; - - if (unlikely((s->state_stack_len + 1) > s->state_stack_size)) { - /* reallocate the stack */ - new_size = s->state_stack_size * 3 / 2; - if (new_size < 8) - new_size = 8; - new_stack = lre_realloc(s->opaque, s->state_stack, new_size * s->state_size); - if (!new_stack) - return -1; - s->state_stack_size = new_size; - s->state_stack = new_stack; - } - rs = (REExecState *)(s->state_stack + s->state_stack_len * s->state_size); - s->state_stack_len++; - rs->type = type; - rs->count = count; - rs->stack_len = stack_len; - rs->cptr = cptr; - rs->pc = pc; - n = 2 * s->capture_count; - for(i = 0; i < n; i++) - rs->buf[i] = capture[i]; - stack_buf = (StackInt *)(rs->buf + n); - for(i = 0; i < stack_len; i++) - stack_buf[i] = stack[i]; - return 0; -} - -static int lre_poll_timeout(REExecContext *s) -{ - if (unlikely(--s->interrupt_counter <= 0)) { - s->interrupt_counter = INTERRUPT_COUNTER_INIT; - if (lre_check_timeout(s->opaque)) - return LRE_RET_TIMEOUT; - } - return 0; -} - -/* return 1 if match, 0 if not match or < 0 if error. */ -static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture, - StackInt *stack, int stack_len, - const uint8_t *pc, const uint8_t *cptr, - bool no_recurse) -{ - int opcode, ret; - int cbuf_type; - uint32_t val, c; - const uint8_t *cbuf_end; - - cbuf_type = s->cbuf_type; - cbuf_end = s->cbuf_end; - - for(;;) { - // printf("top=%p: pc=%d\n", th_list.top, (int)(pc - (bc_buf + RE_HEADER_LEN))); - opcode = *pc++; - switch(opcode) { - case REOP_match: - { - REExecState *rs; - if (no_recurse) - return (intptr_t)cptr; - ret = 1; - goto recurse; - no_match: - if (no_recurse) - return 0; - ret = 0; - recurse: - for(;;) { - if (lre_poll_timeout(s)) - return LRE_RET_TIMEOUT; - if (s->state_stack_len == 0) - return ret; - rs = (REExecState *)(s->state_stack + - (s->state_stack_len - 1) * s->state_size); - if (rs->type == RE_EXEC_STATE_SPLIT) { - if (!ret) { - pop_state: - memcpy(capture, rs->buf, - sizeof(capture[0]) * 2 * s->capture_count); - pop_state1: - pc = rs->pc; - cptr = rs->cptr; - stack_len = rs->stack_len; - memcpy(stack, rs->buf + 2 * s->capture_count, - stack_len * sizeof(stack[0])); - s->state_stack_len--; - break; - } - } else if (rs->type == RE_EXEC_STATE_GREEDY_QUANT) { - if (!ret) { - uint32_t char_count, i; - memcpy(capture, rs->buf, - sizeof(capture[0]) * 2 * s->capture_count); - stack_len = rs->stack_len; - memcpy(stack, rs->buf + 2 * s->capture_count, - stack_len * sizeof(stack[0])); - pc = rs->pc; - cptr = rs->cptr; - /* go backward */ - char_count = get_u32(pc + 12); - for(i = 0; i < char_count; i++) { - PREV_CHAR(cptr, s->cbuf, cbuf_type); - } - pc = (pc + 16) + (int)get_u32(pc); - rs->cptr = cptr; - rs->count--; - if (rs->count == 0) { - s->state_stack_len--; - } - break; - } - } else { - ret = ((rs->type == RE_EXEC_STATE_LOOKAHEAD && ret) || - (rs->type == RE_EXEC_STATE_NEGATIVE_LOOKAHEAD && !ret)); - if (ret) { - /* keep the capture in case of positive lookahead */ - if (rs->type == RE_EXEC_STATE_LOOKAHEAD) - goto pop_state1; - else - goto pop_state; - } - } - s->state_stack_len--; - } - } - break; - case REOP_char32: - val = get_u32(pc); - pc += 4; - goto test_char; - case REOP_char16: - val = get_u16(pc); - pc += 2; - goto test_char; - case REOP_char8: - val = get_u8(pc); - pc += 1; - test_char: - if (cptr >= cbuf_end) - goto no_match; - GET_CHAR(c, cptr, cbuf_end, cbuf_type); - if (s->ignore_case) { - c = lre_canonicalize(c, s->is_unicode); - } - if (val != c) - goto no_match; - break; - case REOP_split_goto_first: - case REOP_split_next_first: - { - const uint8_t *pc1; - - val = get_u32(pc); - pc += 4; - if (opcode == REOP_split_next_first) { - pc1 = pc + (int)val; - } else { - pc1 = pc; - pc = pc + (int)val; - } - ret = push_state(s, capture, stack, stack_len, - pc1, cptr, RE_EXEC_STATE_SPLIT, 0); - if (ret < 0) - return LRE_RET_MEMORY_ERROR; - break; - } - case REOP_lookahead: - case REOP_negative_lookahead: - val = get_u32(pc); - pc += 4; - ret = push_state(s, capture, stack, stack_len, - pc + (int)val, cptr, - RE_EXEC_STATE_LOOKAHEAD + opcode - REOP_lookahead, - 0); - if (ret < 0) - return LRE_RET_MEMORY_ERROR; - break; - - case REOP_goto: - val = get_u32(pc); - pc += 4 + (int)val; - if (lre_poll_timeout(s)) - return LRE_RET_TIMEOUT; - break; - case REOP_line_start: - if (cptr == s->cbuf) - break; - if (!s->multi_line) - goto no_match; - PEEK_PREV_CHAR(c, cptr, s->cbuf, cbuf_type); - if (!is_line_terminator(c)) - goto no_match; - break; - case REOP_line_end: - if (cptr == cbuf_end) - break; - if (!s->multi_line) - goto no_match; - PEEK_CHAR(c, cptr, cbuf_end, cbuf_type); - if (!is_line_terminator(c)) - goto no_match; - break; - case REOP_dot: - if (cptr == cbuf_end) - goto no_match; - GET_CHAR(c, cptr, cbuf_end, cbuf_type); - if (is_line_terminator(c)) - goto no_match; - break; - case REOP_any: - if (cptr == cbuf_end) - goto no_match; - GET_CHAR(c, cptr, cbuf_end, cbuf_type); - break; - case REOP_save_start: - case REOP_save_end: - val = *pc++; - assert(val < s->capture_count); - capture[2 * val + opcode - REOP_save_start] = (uint8_t *)cptr; - break; - case REOP_save_reset: - { - uint32_t val2; - val = pc[0]; - val2 = pc[1]; - pc += 2; - assert(val2 < s->capture_count); - while (val <= val2) { - capture[2 * val] = NULL; - capture[2 * val + 1] = NULL; - val++; - } - } - break; - case REOP_push_i32: - val = get_u32(pc); - pc += 4; - stack[stack_len++] = val; - break; - case REOP_drop: - stack_len--; - break; - case REOP_loop: - val = get_u32(pc); - pc += 4; - if (--stack[stack_len - 1] != 0) { - pc += (int)val; - if (lre_poll_timeout(s)) - return LRE_RET_TIMEOUT; - } - break; - case REOP_push_char_pos: - stack[stack_len++] = (uintptr_t)cptr; - break; - case REOP_check_advance: - if (stack[--stack_len] == (uintptr_t)cptr) - goto no_match; - break; - case REOP_word_boundary: - case REOP_not_word_boundary: - { - bool v1, v2; - /* char before */ - if (cptr == s->cbuf) { - v1 = false; - } else { - PEEK_PREV_CHAR(c, cptr, s->cbuf, cbuf_type); - v1 = is_word_char(c); - } - /* current char */ - if (cptr >= cbuf_end) { - v2 = false; - } else { - PEEK_CHAR(c, cptr, cbuf_end, cbuf_type); - v2 = is_word_char(c); - } - if (v1 ^ v2 ^ (REOP_not_word_boundary - opcode)) - goto no_match; - } - break; - case REOP_back_reference: - case REOP_backward_back_reference: - { - const uint8_t *cptr1, *cptr1_end, *cptr1_start; - uint32_t c1, c2; - - val = *pc++; - if (val >= s->capture_count) - goto no_match; - cptr1_start = capture[2 * val]; - cptr1_end = capture[2 * val + 1]; - if (!cptr1_start || !cptr1_end) - break; - if (opcode == REOP_back_reference) { - cptr1 = cptr1_start; - while (cptr1 < cptr1_end) { - if (cptr >= cbuf_end) - goto no_match; - GET_CHAR(c1, cptr1, cptr1_end, cbuf_type); - GET_CHAR(c2, cptr, cbuf_end, cbuf_type); - if (s->ignore_case) { - c1 = lre_canonicalize(c1, s->is_unicode); - c2 = lre_canonicalize(c2, s->is_unicode); - } - if (c1 != c2) - goto no_match; - } - } else { - cptr1 = cptr1_end; - while (cptr1 > cptr1_start) { - if (cptr == s->cbuf) - goto no_match; - GET_PREV_CHAR(c1, cptr1, cptr1_start, cbuf_type); - GET_PREV_CHAR(c2, cptr, s->cbuf, cbuf_type); - if (s->ignore_case) { - c1 = lre_canonicalize(c1, s->is_unicode); - c2 = lre_canonicalize(c2, s->is_unicode); - } - if (c1 != c2) - goto no_match; - } - } - } - break; - case REOP_range: - { - int n; - uint32_t low, high, idx_min, idx_max, idx; - - n = get_u16(pc); /* n must be >= 1 */ - pc += 2; - if (cptr >= cbuf_end) - goto no_match; - GET_CHAR(c, cptr, cbuf_end, cbuf_type); - if (s->ignore_case) { - c = lre_canonicalize(c, s->is_unicode); - } - idx_min = 0; - low = get_u16(pc + 0 * 4); - if (c < low) - goto no_match; - idx_max = n - 1; - high = get_u16(pc + idx_max * 4 + 2); - /* 0xffff in for last value means +infinity */ - if (unlikely(c >= 0xffff) && high == 0xffff) - goto range_match; - if (c > high) - goto no_match; - while (idx_min <= idx_max) { - idx = (idx_min + idx_max) / 2; - low = get_u16(pc + idx * 4); - high = get_u16(pc + idx * 4 + 2); - if (c < low) - idx_max = idx - 1; - else if (c > high) - idx_min = idx + 1; - else - goto range_match; - } - goto no_match; - range_match: - pc += 4 * n; - } - break; - case REOP_range32: - { - int n; - uint32_t low, high, idx_min, idx_max, idx; - - n = get_u16(pc); /* n must be >= 1 */ - pc += 2; - if (cptr >= cbuf_end) - goto no_match; - GET_CHAR(c, cptr, cbuf_end, cbuf_type); - if (s->ignore_case) { - c = lre_canonicalize(c, s->is_unicode); - } - idx_min = 0; - low = get_u32(pc + 0 * 8); - if (c < low) - goto no_match; - idx_max = n - 1; - high = get_u32(pc + idx_max * 8 + 4); - if (c > high) - goto no_match; - while (idx_min <= idx_max) { - idx = (idx_min + idx_max) / 2; - low = get_u32(pc + idx * 8); - high = get_u32(pc + idx * 8 + 4); - if (c < low) - idx_max = idx - 1; - else if (c > high) - idx_min = idx + 1; - else - goto range32_match; - } - goto no_match; - range32_match: - pc += 8 * n; - } - break; - case REOP_prev: - /* go to the previous char */ - if (cptr == s->cbuf) - goto no_match; - PREV_CHAR(cptr, s->cbuf, cbuf_type); - break; - case REOP_simple_greedy_quant: - { - uint32_t next_pos, quant_min, quant_max; - size_t q; - intptr_t res; - const uint8_t *pc1; - - next_pos = get_u32(pc); - quant_min = get_u32(pc + 4); - quant_max = get_u32(pc + 8); - pc += 16; - pc1 = pc; - pc += (int)next_pos; - - q = 0; - for(;;) { - if (lre_poll_timeout(s)) - return LRE_RET_TIMEOUT; - res = lre_exec_backtrack(s, capture, stack, stack_len, - pc1, cptr, true); - if (res == LRE_RET_MEMORY_ERROR || - res == LRE_RET_TIMEOUT) - return res; - if (!res) - break; - cptr = (uint8_t *)res; - q++; - if (q >= quant_max && quant_max != INT32_MAX) - break; - } - if (q < quant_min) - goto no_match; - if (q > quant_min) { - /* will examine all matches down to quant_min */ - ret = push_state(s, capture, stack, stack_len, - pc1 - 16, cptr, - RE_EXEC_STATE_GREEDY_QUANT, - q - quant_min); - if (ret < 0) - return LRE_RET_MEMORY_ERROR; - } - } - break; - default: - abort(); - } - } -} - -/* Return 1 if match, 0 if not match or < 0 if error (see LRE_RET_x). cindex is the - starting position of the match and must be such as 0 <= cindex <= - clen. */ -int lre_exec(uint8_t **capture, - const uint8_t *bc_buf, const uint8_t *cbuf, int cindex, int clen, - int cbuf_type, void *opaque) -{ - REExecContext s_s, *s = &s_s; - int re_flags, i, alloca_size, ret; - StackInt *stack_buf; - - re_flags = lre_get_flags(bc_buf); - s->multi_line = (re_flags & LRE_FLAG_MULTILINE) != 0; - s->ignore_case = (re_flags & LRE_FLAG_IGNORECASE) != 0; - s->is_unicode = (re_flags & LRE_FLAG_UNICODE) != 0; - s->capture_count = bc_buf[RE_HEADER_CAPTURE_COUNT]; - s->stack_size_max = bc_buf[RE_HEADER_STACK_SIZE]; - s->cbuf = cbuf; - s->cbuf_end = cbuf + (clen << cbuf_type); - s->cbuf_type = cbuf_type; - if (s->cbuf_type == 1 && s->is_unicode) - s->cbuf_type = 2; - s->interrupt_counter = INTERRUPT_COUNTER_INIT; - s->opaque = opaque; - - s->state_size = sizeof(REExecState) + - s->capture_count * sizeof(capture[0]) * 2 + - s->stack_size_max * sizeof(stack_buf[0]); - s->state_stack = NULL; - s->state_stack_len = 0; - s->state_stack_size = 0; - - for(i = 0; i < s->capture_count * 2; i++) - capture[i] = NULL; - alloca_size = s->stack_size_max * sizeof(stack_buf[0]); - stack_buf = alloca(alloca_size); - ret = lre_exec_backtrack(s, capture, stack_buf, 0, bc_buf + RE_HEADER_LEN, - cbuf + (cindex << cbuf_type), false); - lre_realloc(s->opaque, s->state_stack, 0); - return ret; -} - -int lre_get_capture_count(const uint8_t *bc_buf) -{ - return bc_buf[RE_HEADER_CAPTURE_COUNT]; -} - -int lre_get_flags(const uint8_t *bc_buf) -{ - return get_u16(bc_buf + RE_HEADER_FLAGS); -} - -/* Return NULL if no group names. Otherwise, return a pointer to - 'capture_count - 1' zero terminated UTF-8 strings. */ -const char *lre_get_groupnames(const uint8_t *bc_buf) -{ - uint32_t re_bytecode_len; - if ((lre_get_flags(bc_buf) & LRE_FLAG_NAMED_GROUPS) == 0) - return NULL; - re_bytecode_len = get_u32(bc_buf + RE_HEADER_BYTECODE_LEN); - return (const char *)(bc_buf + RE_HEADER_LEN + re_bytecode_len); -} - -void lre_byte_swap(uint8_t *buf, size_t len, bool is_byte_swapped) -{ - uint8_t *p, *pe; - uint32_t n, r, nw; - - p = buf; - if (len < RE_HEADER_LEN) - abort(); - - // format is: - //
      - // - // - // - // etc. - inplace_bswap16(&p[RE_HEADER_FLAGS]); - - n = get_u32(&p[RE_HEADER_BYTECODE_LEN]); - inplace_bswap32(&p[RE_HEADER_BYTECODE_LEN]); - if (is_byte_swapped) - n = bswap32(n); - if (n > len - RE_HEADER_LEN) - abort(); - - p = &buf[RE_HEADER_LEN]; - pe = &p[n]; - - while (p < pe) { - n = reopcode_info[*p].size; - switch (n) { - case 1: - case 2: - break; - case 3: - switch (*p) { - case REOP_save_reset: // has two 8 bit arguments - break; - case REOP_range32: // variable length - nw = get_u16(&p[1]); // number of pairs of uint32_t - if (is_byte_swapped) - n = bswap16(n); - for (r = 3 + 8 * nw; n < r; n += 4) - inplace_bswap32(&p[n]); - goto doswap16; - case REOP_range: // variable length - nw = get_u16(&p[1]); // number of pairs of uint16_t - if (is_byte_swapped) - n = bswap16(n); - for (r = 3 + 4 * nw; n < r; n += 2) - inplace_bswap16(&p[n]); - goto doswap16; - default: - doswap16: - inplace_bswap16(&p[1]); - break; - } - break; - case 5: - inplace_bswap32(&p[1]); - break; - case 17: - assert(*p == REOP_simple_greedy_quant); - inplace_bswap32(&p[1]); - inplace_bswap32(&p[5]); - inplace_bswap32(&p[9]); - inplace_bswap32(&p[13]); - break; - default: - abort(); - } - p = &p[n]; - } -} - -#ifdef TEST - -bool lre_check_stack_overflow(void *opaque, size_t alloca_size) -{ - return false; -} - -void *lre_realloc(void *opaque, void *ptr, size_t size) -{ - return realloc(ptr, size); -} - -int main(int argc, char **argv) -{ - int len, flags, ret, i; - uint8_t *bc; - char error_msg[64]; - uint8_t *capture[CAPTURE_COUNT_MAX * 2]; - const char *input; - int input_len, capture_count; - - if (argc < 4) { - printf("usage: %s regexp flags input\n", argv[0]); - exit(1); - } - flags = atoi(argv[2]); - bc = lre_compile(&len, error_msg, sizeof(error_msg), argv[1], - strlen(argv[1]), flags, NULL); - if (!bc) { - fprintf(stderr, "error: %s\n", error_msg); - exit(1); - } - - input = argv[3]; - input_len = strlen(input); - - ret = lre_exec(capture, bc, (uint8_t *)input, 0, input_len, 0, NULL); - printf("ret=%d\n", ret); - if (ret == 1) { - capture_count = lre_get_capture_count(bc); - for(i = 0; i < 2 * capture_count; i++) { - uint8_t *ptr; - ptr = capture[i]; - printf("%d: ", i); - if (!ptr) - printf(""); - else - printf("%u", (int)(ptr - (uint8_t *)input)); - printf("\n"); - } - } - return 0; -} -#endif diff --git a/vendor/quickjs/source_ng/libregexp.h b/vendor/quickjs/source_ng/libregexp.h deleted file mode 100755 index 898e9a7a3..000000000 --- a/vendor/quickjs/source_ng/libregexp.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Regular Expression Engine - * - * Copyright (c) 2017-2018 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#ifndef LIBREGEXP_H -#define LIBREGEXP_H - -#include -#include - -#include "libunicode.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define LRE_FLAG_GLOBAL (1 << 0) -#define LRE_FLAG_IGNORECASE (1 << 1) -#define LRE_FLAG_MULTILINE (1 << 2) -#define LRE_FLAG_DOTALL (1 << 3) -#define LRE_FLAG_UNICODE (1 << 4) -#define LRE_FLAG_STICKY (1 << 5) -#define LRE_FLAG_INDICES (1 << 6) /* Unused by libregexp, just recorded. */ -#define LRE_FLAG_NAMED_GROUPS (1 << 7) /* named groups are present in the regexp */ -#define LRE_FLAG_UNICODE_SETS (1 << 8) - -#define LRE_RET_MEMORY_ERROR (-1) -#define LRE_RET_TIMEOUT (-2) - -uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size, - const char *buf, size_t buf_len, int re_flags, - void *opaque); -int lre_get_capture_count(const uint8_t *bc_buf); -int lre_get_flags(const uint8_t *bc_buf); -const char *lre_get_groupnames(const uint8_t *bc_buf); -int lre_exec(uint8_t **capture, - const uint8_t *bc_buf, const uint8_t *cbuf, int cindex, int clen, - int cbuf_type, void *opaque); - -int lre_parse_escape(const uint8_t **pp, int allow_utf16); -bool lre_is_space(int c); - -void lre_byte_swap(uint8_t *buf, size_t len, bool is_byte_swapped); - -/* must be provided by the user */ -bool lre_check_stack_overflow(void *opaque, size_t alloca_size); -/* must be provided by the user, return non zero if time out */ -int lre_check_timeout(void *opaque); -void *lre_realloc(void *opaque, void *ptr, size_t size); - -/* JS identifier test */ -extern uint32_t const lre_id_start_table_ascii[4]; -extern uint32_t const lre_id_continue_table_ascii[4]; - -static inline int lre_js_is_ident_first(int c) -{ - if ((uint32_t)c < 128) { - return (lre_id_start_table_ascii[c >> 5] >> (c & 31)) & 1; - } else { - return lre_is_id_start(c); - } -} - -static inline int lre_js_is_ident_next(int c) -{ - if ((uint32_t)c < 128) { - return (lre_id_continue_table_ascii[c >> 5] >> (c & 31)) & 1; - } else { - /* ZWNJ and ZWJ are accepted in identifiers */ - return lre_is_id_continue(c) || c == 0x200C || c == 0x200D; - } -} - -#ifdef __cplusplus -} /* extern "C" { */ -#endif - -#endif /* LIBREGEXP_H */ diff --git a/vendor/quickjs/source_ng/libunicode-table.h b/vendor/quickjs/source_ng/libunicode-table.h deleted file mode 100755 index b48a3a746..000000000 --- a/vendor/quickjs/source_ng/libunicode-table.h +++ /dev/null @@ -1,4658 +0,0 @@ -/* Compressed unicode tables */ -/* Automatically generated file - do not edit */ - -#include - -static const uint32_t case_conv_table1[378] = { - 0x00209a30, 0x00309a00, 0x005a8173, 0x00601730, - 0x006c0730, 0x006f81b3, 0x00701700, 0x007c0700, - 0x007f8100, 0x00803040, 0x009801c3, 0x00988190, - 0x00990640, 0x009c9040, 0x00a481b4, 0x00a52e40, - 0x00bc0130, 0x00bc8640, 0x00bf8170, 0x00c00100, - 0x00c08130, 0x00c10440, 0x00c30130, 0x00c38240, - 0x00c48230, 0x00c58240, 0x00c70130, 0x00c78130, - 0x00c80130, 0x00c88240, 0x00c98130, 0x00ca0130, - 0x00ca8100, 0x00cb0130, 0x00cb8130, 0x00cc0240, - 0x00cd0100, 0x00cd8101, 0x00ce0130, 0x00ce8130, - 0x00cf0100, 0x00cf8130, 0x00d00640, 0x00d30130, - 0x00d38240, 0x00d48130, 0x00d60240, 0x00d70130, - 0x00d78240, 0x00d88230, 0x00d98440, 0x00db8130, - 0x00dc0240, 0x00de0240, 0x00df8100, 0x00e20350, - 0x00e38350, 0x00e50350, 0x00e69040, 0x00ee8100, - 0x00ef1240, 0x00f801b4, 0x00f88350, 0x00fa0240, - 0x00fb0130, 0x00fb8130, 0x00fc2840, 0x01100130, - 0x01111240, 0x011d0131, 0x011d8240, 0x011e8130, - 0x011f0131, 0x011f8201, 0x01208240, 0x01218130, - 0x01220130, 0x01228130, 0x01230a40, 0x01280101, - 0x01288101, 0x01290101, 0x01298100, 0x012a0100, - 0x012b0200, 0x012c8100, 0x012d8100, 0x012e0101, - 0x01300100, 0x01308101, 0x01318100, 0x01320101, - 0x01328101, 0x01330101, 0x01340100, 0x01348100, - 0x01350101, 0x01358101, 0x01360101, 0x01378100, - 0x01388101, 0x01390100, 0x013a8100, 0x013e8101, - 0x01400100, 0x01410101, 0x01418100, 0x01438101, - 0x01440100, 0x01448100, 0x01450200, 0x01460100, - 0x01490100, 0x014e8101, 0x014f0101, 0x01a28173, - 0x01b80440, 0x01bb0240, 0x01bd8300, 0x01bf8130, - 0x01c30130, 0x01c40330, 0x01c60130, 0x01c70230, - 0x01c801d0, 0x01c89130, 0x01d18930, 0x01d60100, - 0x01d68300, 0x01d801d3, 0x01d89100, 0x01e10173, - 0x01e18900, 0x01e60100, 0x01e68200, 0x01e78130, - 0x01e80173, 0x01e88173, 0x01ea8173, 0x01eb0173, - 0x01eb8100, 0x01ec1840, 0x01f80173, 0x01f88173, - 0x01f90100, 0x01f98100, 0x01fa01a0, 0x01fa8173, - 0x01fb8240, 0x01fc8130, 0x01fd0240, 0x01fe8330, - 0x02001030, 0x02082030, 0x02182000, 0x02281000, - 0x02302240, 0x02453640, 0x02600130, 0x02608e40, - 0x02678100, 0x02686040, 0x0298a630, 0x02b0a600, - 0x02c381b5, 0x08502631, 0x08638131, 0x08668131, - 0x08682b00, 0x087e8300, 0x09d05011, 0x09f80610, - 0x09fc0620, 0x0e400174, 0x0e408174, 0x0e410174, - 0x0e418174, 0x0e420174, 0x0e428174, 0x0e430174, - 0x0e438180, 0x0e440180, 0x0e448240, 0x0e482b30, - 0x0e5e8330, 0x0ebc8101, 0x0ebe8101, 0x0ec70101, - 0x0f007e40, 0x0f3f1840, 0x0f4b01b5, 0x0f4b81b6, - 0x0f4c01b6, 0x0f4c81b6, 0x0f4d01b7, 0x0f4d8180, - 0x0f4f0130, 0x0f506040, 0x0f800800, 0x0f840830, - 0x0f880600, 0x0f8c0630, 0x0f900800, 0x0f940830, - 0x0f980800, 0x0f9c0830, 0x0fa00600, 0x0fa40630, - 0x0fa801b0, 0x0fa88100, 0x0fa901d3, 0x0fa98100, - 0x0faa01d3, 0x0faa8100, 0x0fab01d3, 0x0fab8100, - 0x0fac8130, 0x0fad8130, 0x0fae8130, 0x0faf8130, - 0x0fb00800, 0x0fb40830, 0x0fb80200, 0x0fb90400, - 0x0fbb0201, 0x0fbc0201, 0x0fbd0201, 0x0fbe0201, - 0x0fc008b7, 0x0fc40867, 0x0fc808b8, 0x0fcc0868, - 0x0fd008b8, 0x0fd40868, 0x0fd80200, 0x0fd901b9, - 0x0fd981b1, 0x0fda01b9, 0x0fdb01b1, 0x0fdb81d7, - 0x0fdc0230, 0x0fdd0230, 0x0fde0161, 0x0fdf0173, - 0x0fe101b9, 0x0fe181b2, 0x0fe201ba, 0x0fe301b2, - 0x0fe381d8, 0x0fe40430, 0x0fe60162, 0x0fe80201, - 0x0fe901d0, 0x0fe981d0, 0x0feb01b0, 0x0feb81d0, - 0x0fec0230, 0x0fed0230, 0x0ff00201, 0x0ff101d3, - 0x0ff181d3, 0x0ff201ba, 0x0ff28101, 0x0ff301b0, - 0x0ff381d3, 0x0ff40231, 0x0ff50230, 0x0ff60131, - 0x0ff901ba, 0x0ff981b2, 0x0ffa01bb, 0x0ffb01b2, - 0x0ffb81d9, 0x0ffc0230, 0x0ffd0230, 0x0ffe0162, - 0x109301a0, 0x109501a0, 0x109581a0, 0x10990131, - 0x10a70101, 0x10b01031, 0x10b81001, 0x10c18240, - 0x125b1a31, 0x12681a01, 0x16003031, 0x16183001, - 0x16300240, 0x16310130, 0x16318130, 0x16320130, - 0x16328100, 0x16330100, 0x16338640, 0x16368130, - 0x16370130, 0x16378130, 0x16380130, 0x16390240, - 0x163a8240, 0x163f0230, 0x16406440, 0x16758440, - 0x16790240, 0x16802600, 0x16938100, 0x16968100, - 0x53202e40, 0x53401c40, 0x53910e40, 0x53993e40, - 0x53bc8440, 0x53be8130, 0x53bf0a40, 0x53c58240, - 0x53c68130, 0x53c80440, 0x53ca0101, 0x53cb1440, - 0x53d50130, 0x53d58130, 0x53d60130, 0x53d68130, - 0x53d70130, 0x53d80130, 0x53d88130, 0x53d90130, - 0x53d98131, 0x53da1040, 0x53e20131, 0x53e28130, - 0x53e30130, 0x53e38440, 0x53e58130, 0x53e60240, - 0x53e80240, 0x53eb0640, 0x53ee0130, 0x53fa8240, - 0x55a98101, 0x55b85020, 0x7d8001b2, 0x7d8081b2, - 0x7d8101b2, 0x7d8181da, 0x7d8201da, 0x7d8281b3, - 0x7d8301b3, 0x7d8981bb, 0x7d8a01bb, 0x7d8a81bb, - 0x7d8b01bc, 0x7d8b81bb, 0x7f909a31, 0x7fa09a01, - 0x82002831, 0x82142801, 0x82582431, 0x826c2401, - 0x82b80b31, 0x82be0f31, 0x82c60731, 0x82ca0231, - 0x82cb8b01, 0x82d18f01, 0x82d98701, 0x82dd8201, - 0x86403331, 0x86603301, 0x86a81631, 0x86b81601, - 0x8c502031, 0x8c602001, 0xb7202031, 0xb7302001, - 0xf4802231, 0xf4912201, -}; - -static const uint8_t case_conv_table2[378] = { - 0x01, 0x00, 0x9c, 0x06, 0x07, 0x4d, 0x03, 0x04, - 0x10, 0x00, 0x8f, 0x0b, 0x00, 0x00, 0x11, 0x00, - 0x08, 0x00, 0x53, 0x4b, 0x52, 0x00, 0x53, 0x00, - 0x54, 0x00, 0x3b, 0x55, 0x56, 0x00, 0x58, 0x5a, - 0x40, 0x5f, 0x5e, 0x00, 0x47, 0x52, 0x63, 0x65, - 0x43, 0x66, 0x00, 0x68, 0x00, 0x6a, 0x00, 0x6c, - 0x00, 0x6e, 0x00, 0x70, 0x00, 0x00, 0x41, 0x00, - 0x00, 0x00, 0x00, 0x1a, 0x00, 0x93, 0x00, 0x00, - 0x20, 0x36, 0x00, 0x28, 0x00, 0x24, 0x00, 0x24, - 0x25, 0x2d, 0x00, 0x13, 0x6d, 0x6f, 0x00, 0x29, - 0x27, 0x2a, 0x14, 0x16, 0x18, 0x1b, 0x1c, 0x41, - 0x1e, 0x42, 0x1f, 0x4e, 0x3c, 0x40, 0x22, 0x21, - 0x44, 0x21, 0x43, 0x26, 0x28, 0x27, 0x29, 0x23, - 0x2b, 0x4b, 0x2d, 0x46, 0x2f, 0x4c, 0x31, 0x4d, - 0x33, 0x47, 0x45, 0x99, 0x00, 0x00, 0x97, 0x91, - 0x7f, 0x80, 0x85, 0x86, 0x12, 0x82, 0x84, 0x78, - 0x79, 0x12, 0x7d, 0xa3, 0x7e, 0x7a, 0x7b, 0x8c, - 0x92, 0x98, 0xa6, 0xa0, 0x87, 0x00, 0x9a, 0xa1, - 0x95, 0x77, 0x33, 0x95, 0x00, 0x90, 0x00, 0x76, - 0x9b, 0x9a, 0x99, 0x98, 0x00, 0x00, 0xa0, 0x00, - 0x9e, 0x00, 0xa3, 0xa2, 0x15, 0x31, 0x32, 0x33, - 0xb7, 0xb8, 0x55, 0xac, 0xab, 0x12, 0x14, 0x1e, - 0x21, 0x22, 0x22, 0x2a, 0x34, 0x35, 0x00, 0xa8, - 0xa9, 0x39, 0x22, 0x4c, 0x00, 0x00, 0x97, 0x01, - 0x5a, 0xda, 0x1d, 0x36, 0x05, 0x00, 0xc7, 0xc6, - 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, - 0xc4, 0xd8, 0x45, 0xd9, 0x42, 0xda, 0x46, 0xdb, - 0xd1, 0xd3, 0xd5, 0xd7, 0xdd, 0xdc, 0xf1, 0xf9, - 0x01, 0x11, 0x0a, 0x12, 0x80, 0x9f, 0x00, 0x21, - 0x80, 0xa3, 0xf0, 0x00, 0xc0, 0x40, 0xc6, 0x60, - 0xea, 0xde, 0xe6, 0x99, 0xc0, 0x00, 0x00, 0x06, - 0x60, 0xdf, 0x29, 0x00, 0x15, 0x12, 0x06, 0x16, - 0xfb, 0xe0, 0x09, 0x15, 0x12, 0x84, 0x0b, 0xc6, - 0x16, 0x02, 0xe2, 0x06, 0xc0, 0x40, 0x00, 0x46, - 0x60, 0xe1, 0xe3, 0x6d, 0x37, 0x38, 0x39, 0x18, - 0x17, 0x1a, 0x19, 0x00, 0x1d, 0x1c, 0x1f, 0x1e, - 0x00, 0x61, 0xba, 0x67, 0x45, 0x48, 0x00, 0x50, - 0x64, 0x4f, 0x51, 0x00, 0x00, 0x49, 0x00, 0x00, - 0x00, 0xa5, 0xa6, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xb9, 0x00, 0x00, 0x5c, 0x00, 0x4a, 0x00, - 0x5d, 0x57, 0x59, 0x62, 0x60, 0x72, 0x6b, 0x71, - 0x54, 0x00, 0x3e, 0x69, 0xbb, 0x00, 0x5b, 0x00, - 0x00, 0x00, 0x25, 0x00, 0x48, 0xaa, 0x8a, 0x8b, - 0x8c, 0xab, 0xac, 0x58, 0x58, 0xaf, 0x94, 0xb0, - 0x6f, 0xb2, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66, - 0x6c, 0x6d, 0x6e, 0x6f, 0x68, 0x69, 0x6a, 0x6b, - 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, - 0x79, 0x78, -}; - -static const uint16_t case_conv_ext[58] = { - 0x0399, 0x0308, 0x0301, 0x03a5, 0x0313, 0x0300, 0x0342, 0x0391, - 0x0397, 0x03a9, 0x0046, 0x0049, 0x004c, 0x0053, 0x0069, 0x0307, - 0x02bc, 0x004e, 0x004a, 0x030c, 0x0535, 0x0552, 0x0048, 0x0331, - 0x0054, 0x0057, 0x030a, 0x0059, 0x0041, 0x02be, 0x1f08, 0x1f80, - 0x1f28, 0x1f90, 0x1f68, 0x1fa0, 0x1fba, 0x0386, 0x1fb3, 0x1fca, - 0x0389, 0x1fc3, 0x03a1, 0x1ffa, 0x038f, 0x1ff3, 0x0544, 0x0546, - 0x053b, 0x054e, 0x053d, 0x03b8, 0x0462, 0xa64a, 0x1e60, 0x03c9, - 0x006b, 0x00e5, -}; - -static const uint8_t unicode_prop_Cased1_table[193] = { - 0x40, 0xa9, 0x80, 0x8e, 0x80, 0xfc, 0x80, 0xd3, - 0x80, 0x9b, 0x81, 0x8d, 0x02, 0x80, 0xe1, 0x80, - 0x91, 0x85, 0x9a, 0x01, 0x00, 0x01, 0x11, 0x03, - 0x04, 0x08, 0x01, 0x08, 0x30, 0x08, 0x01, 0x15, - 0x20, 0x00, 0x39, 0x99, 0x31, 0x9d, 0x84, 0x40, - 0x94, 0x80, 0xd6, 0x82, 0xa6, 0x80, 0x41, 0x62, - 0x80, 0xa6, 0x80, 0x4b, 0x72, 0x80, 0x4c, 0x02, - 0xf8, 0x02, 0x80, 0x8f, 0x80, 0xb0, 0x40, 0xdb, - 0x08, 0x80, 0x41, 0xd0, 0x80, 0x8c, 0x80, 0x8f, - 0x8c, 0xe4, 0x03, 0x01, 0x89, 0x00, 0x14, 0x28, - 0x10, 0x11, 0x02, 0x01, 0x18, 0x0b, 0x24, 0x4b, - 0x26, 0x01, 0x01, 0x86, 0xe5, 0x80, 0x60, 0x79, - 0xb6, 0x81, 0x40, 0x91, 0x81, 0xbd, 0x88, 0x94, - 0x05, 0x80, 0x98, 0x80, 0xa2, 0x00, 0x80, 0x9b, - 0x12, 0x82, 0x43, 0x34, 0xa2, 0x06, 0x80, 0x8d, - 0x60, 0x5c, 0x15, 0x01, 0x10, 0xa9, 0x80, 0x88, - 0x60, 0xcc, 0x44, 0xd4, 0x80, 0xc6, 0x01, 0x08, - 0x09, 0x0b, 0x80, 0x8b, 0x00, 0x06, 0x80, 0xc0, - 0x03, 0x0f, 0x06, 0x80, 0x9b, 0x03, 0x04, 0x00, - 0x16, 0x80, 0x41, 0x53, 0x81, 0x98, 0x80, 0x98, - 0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, - 0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, - 0x07, 0x47, 0x33, 0x89, 0x80, 0x93, 0x2d, 0x41, - 0x04, 0xbd, 0x50, 0xc1, 0x99, 0x85, 0x99, 0x85, - 0x99, -}; - -static const uint8_t unicode_prop_Cased1_index[18] = { - 0xb9, 0x02, 0x80, 0xa0, 0x1e, 0x40, 0x9e, 0xa6, - 0x40, 0xbb, 0x07, 0x01, 0xdb, 0xd6, 0x01, 0x8a, - 0xf1, 0x01, -}; - -static const uint8_t unicode_prop_Case_Ignorable_table[764] = { - 0xa6, 0x05, 0x80, 0x8a, 0x80, 0xa2, 0x00, 0x80, - 0xc6, 0x03, 0x00, 0x03, 0x01, 0x81, 0x41, 0xf6, - 0x40, 0xbf, 0x19, 0x18, 0x88, 0x08, 0x80, 0x40, - 0xfa, 0x86, 0x40, 0xce, 0x04, 0x80, 0xb0, 0xac, - 0x00, 0x01, 0x01, 0x00, 0xab, 0x80, 0x8a, 0x85, - 0x89, 0x8a, 0x00, 0xa2, 0x80, 0x89, 0x94, 0x8f, - 0x80, 0xe4, 0x38, 0x89, 0x03, 0xa0, 0x00, 0x80, - 0x9d, 0x9a, 0xda, 0x8a, 0xb9, 0x8a, 0x18, 0x08, - 0x97, 0x97, 0xaa, 0x82, 0xab, 0x06, 0x0c, 0x88, - 0xa8, 0xb9, 0xb6, 0x00, 0x03, 0x3b, 0x02, 0x86, - 0x89, 0x81, 0x8c, 0x80, 0x8e, 0x80, 0xb9, 0x03, - 0x1f, 0x80, 0x93, 0x81, 0x99, 0x01, 0x81, 0xb8, - 0x03, 0x0b, 0x09, 0x12, 0x80, 0x9d, 0x0a, 0x80, - 0x8a, 0x81, 0xb8, 0x03, 0x20, 0x0b, 0x80, 0x93, - 0x81, 0x95, 0x28, 0x80, 0xb9, 0x01, 0x00, 0x1f, - 0x06, 0x81, 0x8a, 0x81, 0x9d, 0x80, 0xbc, 0x80, - 0x8b, 0x80, 0xb1, 0x02, 0x80, 0xb6, 0x00, 0x14, - 0x10, 0x1e, 0x81, 0x8a, 0x81, 0x9c, 0x80, 0xb9, - 0x01, 0x05, 0x04, 0x81, 0x93, 0x81, 0x9b, 0x81, - 0xb8, 0x0b, 0x1f, 0x80, 0x93, 0x81, 0x9c, 0x80, - 0xc7, 0x06, 0x10, 0x80, 0xd9, 0x01, 0x86, 0x8a, - 0x88, 0xe1, 0x01, 0x88, 0x88, 0x00, 0x86, 0xc8, - 0x81, 0x9a, 0x00, 0x00, 0x80, 0xb6, 0x8d, 0x04, - 0x01, 0x84, 0x8a, 0x80, 0xa3, 0x88, 0x80, 0xe5, - 0x18, 0x28, 0x09, 0x81, 0x98, 0x0b, 0x82, 0x8f, - 0x83, 0x8c, 0x01, 0x0d, 0x80, 0x8e, 0x80, 0xdd, - 0x80, 0x42, 0x5f, 0x82, 0x43, 0xb1, 0x82, 0x9c, - 0x81, 0x9d, 0x81, 0x9d, 0x81, 0xbf, 0x08, 0x37, - 0x01, 0x8a, 0x10, 0x20, 0xac, 0x84, 0xb2, 0x80, - 0xc0, 0x81, 0xa1, 0x80, 0xf5, 0x13, 0x81, 0x88, - 0x05, 0x82, 0x40, 0xda, 0x09, 0x80, 0xb9, 0x00, - 0x30, 0x00, 0x01, 0x3d, 0x89, 0x08, 0xa6, 0x07, - 0x9e, 0xb0, 0x83, 0xaf, 0x00, 0x20, 0x04, 0x80, - 0xa7, 0x88, 0x8b, 0x81, 0x9f, 0x19, 0x08, 0x82, - 0xb7, 0x00, 0x0a, 0x00, 0x82, 0xb9, 0x39, 0x81, - 0xbf, 0x85, 0xd1, 0x10, 0x8c, 0x06, 0x18, 0x28, - 0x11, 0xb1, 0xbe, 0x8c, 0x80, 0xa1, 0xe4, 0x41, - 0xbc, 0x00, 0x82, 0x8a, 0x82, 0x8c, 0x82, 0x8c, - 0x82, 0x8c, 0x81, 0x8b, 0x27, 0x81, 0x89, 0x01, - 0x01, 0x84, 0xb0, 0x20, 0x89, 0x00, 0x8c, 0x80, - 0x8f, 0x8c, 0xb2, 0xa0, 0x4b, 0x8a, 0x81, 0xf0, - 0x82, 0xfc, 0x80, 0x8e, 0x80, 0xdf, 0x9f, 0xae, - 0x80, 0x41, 0xd4, 0x80, 0xa3, 0x1a, 0x24, 0x80, - 0xdc, 0x85, 0xdc, 0x82, 0x60, 0x6f, 0x15, 0x80, - 0x44, 0xe1, 0x85, 0x41, 0x0d, 0x80, 0xe1, 0x18, - 0x89, 0x00, 0x9b, 0x83, 0xcf, 0x81, 0x8d, 0xa1, - 0xcd, 0x80, 0x96, 0x82, 0xe6, 0x12, 0x0f, 0x02, - 0x03, 0x80, 0x98, 0x0c, 0x80, 0x40, 0x96, 0x81, - 0x99, 0x91, 0x8c, 0x80, 0xa5, 0x87, 0x98, 0x8a, - 0xad, 0x82, 0xaf, 0x01, 0x19, 0x81, 0x90, 0x80, - 0x94, 0x81, 0xc1, 0x29, 0x09, 0x81, 0x8b, 0x07, - 0x80, 0xa2, 0x80, 0x8a, 0x80, 0xb2, 0x00, 0x11, - 0x0c, 0x08, 0x80, 0x9a, 0x80, 0x8d, 0x0c, 0x08, - 0x80, 0xe3, 0x84, 0x88, 0x82, 0xf8, 0x01, 0x03, - 0x80, 0x60, 0x4f, 0x2f, 0x80, 0x40, 0x92, 0x90, - 0x42, 0x3c, 0x8f, 0x10, 0x8b, 0x8f, 0xa1, 0x01, - 0x80, 0x40, 0xa8, 0x06, 0x05, 0x80, 0x8a, 0x80, - 0xa2, 0x00, 0x80, 0xae, 0x80, 0xac, 0x81, 0xc2, - 0x80, 0x94, 0x82, 0x42, 0x00, 0x80, 0x40, 0xe1, - 0x80, 0x40, 0x94, 0x84, 0x44, 0x04, 0x28, 0xa9, - 0x80, 0x88, 0x42, 0x45, 0x10, 0x0c, 0x83, 0xa7, - 0x13, 0x80, 0x40, 0xa4, 0x81, 0x42, 0x3c, 0x83, - 0xa5, 0x80, 0x99, 0x20, 0x80, 0x41, 0x3a, 0x81, - 0xce, 0x83, 0xc5, 0x8a, 0xb0, 0x83, 0xfa, 0x80, - 0xb5, 0x8e, 0xa8, 0x01, 0x81, 0x89, 0x82, 0xb0, - 0x19, 0x09, 0x03, 0x80, 0x89, 0x80, 0xb1, 0x82, - 0xa3, 0x20, 0x87, 0xbd, 0x80, 0x8b, 0x81, 0xb3, - 0x88, 0x89, 0x19, 0x80, 0xde, 0x11, 0x00, 0x0d, - 0x01, 0x80, 0x40, 0x9c, 0x02, 0x87, 0x94, 0x81, - 0xb8, 0x0a, 0x80, 0xa4, 0x32, 0x84, 0xc5, 0x85, - 0x8c, 0x00, 0x00, 0x80, 0x8d, 0x81, 0xd4, 0x39, - 0x10, 0x80, 0x96, 0x80, 0xd3, 0x28, 0x03, 0x08, - 0x81, 0x40, 0xed, 0x1d, 0x08, 0x81, 0x9a, 0x81, - 0xd4, 0x39, 0x00, 0x81, 0xe9, 0x00, 0x01, 0x28, - 0x80, 0xe4, 0x00, 0x01, 0x18, 0x84, 0x41, 0x02, - 0x88, 0x01, 0x40, 0xff, 0x08, 0x03, 0x80, 0x40, - 0x8f, 0x19, 0x0b, 0x80, 0x9f, 0x89, 0xa7, 0x29, - 0x1f, 0x80, 0x88, 0x29, 0x82, 0xad, 0x8c, 0x01, - 0x41, 0x95, 0x30, 0x28, 0x80, 0xd1, 0x95, 0x0e, - 0x01, 0x01, 0xf9, 0x2a, 0x00, 0x08, 0x30, 0x80, - 0xc7, 0x0a, 0x00, 0x80, 0x41, 0x5a, 0x81, 0x8a, - 0x81, 0xb3, 0x24, 0x00, 0x80, 0x96, 0x80, 0x54, - 0xd4, 0x90, 0x85, 0x8e, 0x60, 0x2c, 0xc7, 0x8b, - 0x12, 0x49, 0xbf, 0x84, 0xba, 0x86, 0x88, 0x83, - 0x41, 0xfb, 0x82, 0xa7, 0x81, 0x41, 0xe1, 0x80, - 0xbe, 0x90, 0xbf, 0x08, 0x81, 0x60, 0x40, 0x0a, - 0x18, 0x30, 0x81, 0x4c, 0x9d, 0x08, 0x83, 0x52, - 0x5b, 0xad, 0x81, 0x96, 0x42, 0x1f, 0x82, 0x88, - 0x8f, 0x0e, 0x9d, 0x83, 0x40, 0x93, 0x82, 0x47, - 0xba, 0xb6, 0x83, 0xb1, 0x38, 0x8d, 0x80, 0x95, - 0x20, 0x8e, 0x45, 0x4f, 0x30, 0x90, 0x0e, 0x01, - 0x04, 0x84, 0xbd, 0xa0, 0x80, 0x40, 0x9f, 0x8d, - 0x41, 0x6f, 0x80, 0xbc, 0x83, 0x41, 0xfa, 0x84, - 0x40, 0xfd, 0x81, 0x42, 0xdf, 0x86, 0xec, 0x87, - 0x4a, 0xae, 0x84, 0x6c, 0x0c, 0x00, 0x80, 0x9d, - 0xdf, 0xff, 0x40, 0xef, -}; - -static const uint8_t unicode_prop_Case_Ignorable_index[72] = { - 0xbe, 0x05, 0x00, 0xfe, 0x07, 0x00, 0x52, 0x0a, - 0xa0, 0xc1, 0x0b, 0x00, 0x82, 0x0d, 0x00, 0x3f, - 0x10, 0x80, 0xd4, 0x17, 0x40, 0xcf, 0x1a, 0x20, - 0xf5, 0x1c, 0x00, 0x80, 0x20, 0x00, 0x16, 0xa0, - 0x00, 0xc6, 0xa8, 0x00, 0xc2, 0xaa, 0x60, 0x56, - 0xfe, 0x20, 0xb1, 0x07, 0x01, 0x02, 0x10, 0x01, - 0x42, 0x12, 0x41, 0xc4, 0x14, 0x21, 0xe1, 0x19, - 0x81, 0x48, 0x1d, 0x01, 0x44, 0x6b, 0x01, 0x83, - 0xd1, 0x21, 0x3e, 0xe1, 0x01, 0xf0, 0x01, 0x0e, -}; - -static const uint8_t unicode_prop_ID_Start_table[1133] = { - 0xc0, 0x99, 0x85, 0x99, 0xae, 0x80, 0x89, 0x03, - 0x04, 0x96, 0x80, 0x9e, 0x80, 0x41, 0xc9, 0x83, - 0x8b, 0x8d, 0x26, 0x00, 0x80, 0x40, 0x80, 0x20, - 0x09, 0x18, 0x05, 0x00, 0x10, 0x00, 0x93, 0x80, - 0xd2, 0x80, 0x40, 0x8a, 0x87, 0x40, 0xa5, 0x80, - 0xa5, 0x08, 0x85, 0xa8, 0xc6, 0x9a, 0x1b, 0xac, - 0xaa, 0xa2, 0x08, 0xe2, 0x00, 0x8e, 0x0e, 0x81, - 0x89, 0x11, 0x80, 0x8f, 0x00, 0x9d, 0x9c, 0xd8, - 0x8a, 0x80, 0x97, 0xa0, 0x88, 0x0b, 0x04, 0x95, - 0x18, 0x88, 0x02, 0x80, 0x96, 0x98, 0x86, 0x8a, - 0x84, 0x97, 0x05, 0x90, 0xa9, 0xb9, 0xb5, 0x10, - 0x91, 0x06, 0x89, 0x8e, 0x8f, 0x1f, 0x09, 0x81, - 0x95, 0x06, 0x00, 0x13, 0x10, 0x8f, 0x80, 0x8c, - 0x08, 0x82, 0x8d, 0x81, 0x89, 0x07, 0x2b, 0x09, - 0x95, 0x06, 0x01, 0x01, 0x01, 0x9e, 0x18, 0x80, - 0x92, 0x82, 0x8f, 0x88, 0x02, 0x80, 0x95, 0x06, - 0x01, 0x04, 0x10, 0x91, 0x80, 0x8e, 0x81, 0x96, - 0x80, 0x8a, 0x39, 0x09, 0x95, 0x06, 0x01, 0x04, - 0x10, 0x9d, 0x08, 0x82, 0x8e, 0x80, 0x90, 0x00, - 0x2a, 0x10, 0x1a, 0x08, 0x00, 0x0a, 0x0a, 0x12, - 0x8b, 0x95, 0x80, 0xb3, 0x38, 0x10, 0x96, 0x80, - 0x8f, 0x10, 0x99, 0x11, 0x01, 0x81, 0x9d, 0x03, - 0x38, 0x10, 0x96, 0x80, 0x89, 0x04, 0x10, 0x9e, - 0x08, 0x81, 0x8e, 0x81, 0x90, 0x88, 0x02, 0x80, - 0xa8, 0x08, 0x8f, 0x04, 0x17, 0x82, 0x97, 0x2c, - 0x91, 0x82, 0x97, 0x80, 0x88, 0x00, 0x0e, 0xb9, - 0xaf, 0x01, 0x8b, 0x86, 0xb9, 0x08, 0x00, 0x20, - 0x97, 0x00, 0x80, 0x89, 0x01, 0x88, 0x01, 0x20, - 0x80, 0x94, 0x83, 0x9f, 0x80, 0xbe, 0x38, 0xa3, - 0x9a, 0x84, 0xf2, 0xaa, 0x93, 0x80, 0x8f, 0x2b, - 0x1a, 0x02, 0x0e, 0x13, 0x8c, 0x8b, 0x80, 0x90, - 0xa5, 0x00, 0x20, 0x81, 0xaa, 0x80, 0x41, 0x4c, - 0x03, 0x0e, 0x00, 0x03, 0x81, 0xa8, 0x03, 0x81, - 0xa0, 0x03, 0x0e, 0x00, 0x03, 0x81, 0x8e, 0x80, - 0xb8, 0x03, 0x81, 0xc2, 0xa4, 0x8f, 0x8f, 0xd5, - 0x0d, 0x82, 0x42, 0x6b, 0x81, 0x90, 0x80, 0x99, - 0x84, 0xca, 0x82, 0x8a, 0x86, 0x91, 0x8c, 0x92, - 0x8d, 0x91, 0x8d, 0x8c, 0x02, 0x8e, 0xb3, 0xa2, - 0x03, 0x80, 0xc2, 0xd8, 0x86, 0xa8, 0x00, 0x84, - 0xc5, 0x89, 0x9e, 0xb0, 0x9d, 0x0c, 0x8a, 0xab, - 0x83, 0x99, 0xb5, 0x96, 0x88, 0xb4, 0xd1, 0x80, - 0xdc, 0xae, 0x90, 0x87, 0xb5, 0x9d, 0x8c, 0x81, - 0x89, 0xab, 0x99, 0xa3, 0xa8, 0x82, 0x89, 0xa3, - 0x81, 0x8a, 0x84, 0xaa, 0x0a, 0xa8, 0x18, 0x28, - 0x0a, 0x04, 0x40, 0xbf, 0xbf, 0x41, 0x15, 0x0d, - 0x81, 0xa5, 0x0d, 0x0f, 0x00, 0x00, 0x00, 0x80, - 0x9e, 0x81, 0xb4, 0x06, 0x00, 0x12, 0x06, 0x13, - 0x0d, 0x83, 0x8c, 0x22, 0x06, 0xf3, 0x80, 0x8c, - 0x80, 0x8f, 0x8c, 0xe4, 0x03, 0x01, 0x89, 0x00, - 0x0d, 0x28, 0x00, 0x00, 0x80, 0x8f, 0x0b, 0x24, - 0x18, 0x90, 0xa8, 0x4a, 0x76, 0x40, 0xe4, 0x2b, - 0x11, 0x8b, 0xa5, 0x00, 0x20, 0x81, 0xb7, 0x30, - 0x8f, 0x96, 0x88, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x86, 0x42, 0x25, 0x82, 0x98, 0x88, - 0x34, 0x0c, 0x83, 0xd5, 0x1c, 0x80, 0xd9, 0x03, - 0x84, 0xaa, 0x80, 0xdd, 0x90, 0x9f, 0xaf, 0x8f, - 0x41, 0xff, 0x59, 0xbf, 0xbf, 0x60, 0x56, 0x8c, - 0xc2, 0xad, 0x81, 0x41, 0x0c, 0x82, 0x8f, 0x89, - 0x81, 0x93, 0xae, 0x8f, 0x9e, 0x81, 0xcf, 0xa6, - 0x88, 0x81, 0xe6, 0x81, 0xc2, 0x09, 0x00, 0x07, - 0x94, 0x8f, 0x02, 0x03, 0x80, 0x96, 0x9c, 0xb3, - 0x8d, 0xb1, 0xbd, 0x2a, 0x00, 0x81, 0x8a, 0x9b, - 0x89, 0x96, 0x98, 0x9c, 0x86, 0xae, 0x9b, 0x80, - 0x8f, 0x20, 0x89, 0x89, 0x20, 0xa8, 0x96, 0x10, - 0x87, 0x93, 0x96, 0x10, 0x82, 0xb1, 0x00, 0x11, - 0x0c, 0x08, 0x00, 0x97, 0x11, 0x8a, 0x32, 0x8b, - 0x29, 0x29, 0x85, 0x88, 0x30, 0x30, 0xaa, 0x80, - 0x8d, 0x85, 0xf2, 0x9c, 0x60, 0x2b, 0xa3, 0x8b, - 0x96, 0x83, 0xb0, 0x60, 0x21, 0x03, 0x41, 0x6d, - 0x81, 0xe9, 0xa5, 0x86, 0x8b, 0x24, 0x00, 0x89, - 0x80, 0x8c, 0x04, 0x00, 0x01, 0x01, 0x80, 0xeb, - 0xa0, 0x41, 0x6a, 0x91, 0xbf, 0x81, 0xb5, 0xa7, - 0x8b, 0xf3, 0x20, 0x40, 0x86, 0xa3, 0x99, 0x85, - 0x99, 0x8a, 0xd8, 0x15, 0x0d, 0x0d, 0x0a, 0xa2, - 0x8b, 0x80, 0x99, 0x80, 0x92, 0x01, 0x80, 0x8e, - 0x81, 0x8d, 0xa1, 0xfa, 0xc4, 0xb4, 0x41, 0x0a, - 0x9c, 0x82, 0xb0, 0xae, 0x9f, 0x8c, 0x9d, 0x84, - 0xa5, 0x89, 0x9d, 0x81, 0xa3, 0x1f, 0x04, 0xa9, - 0x40, 0x9d, 0x91, 0xa3, 0x83, 0xa3, 0x83, 0xa7, - 0x87, 0xb3, 0x8b, 0x8a, 0x80, 0x8e, 0x06, 0x01, - 0x80, 0x8a, 0x80, 0x8e, 0x06, 0x01, 0x82, 0xb3, - 0x8b, 0x41, 0x36, 0x88, 0x95, 0x89, 0x87, 0x97, - 0x28, 0xa9, 0x80, 0x88, 0xc4, 0x29, 0x00, 0xab, - 0x01, 0x10, 0x81, 0x96, 0x89, 0x96, 0x88, 0x9e, - 0xc0, 0x92, 0x01, 0x89, 0x95, 0x89, 0x99, 0xc5, - 0xb7, 0x29, 0xbf, 0x80, 0x8e, 0x18, 0x10, 0x9c, - 0xa9, 0x9c, 0x82, 0x9c, 0xa2, 0x38, 0x9b, 0x9a, - 0xb5, 0x89, 0x95, 0x89, 0x92, 0x8c, 0x91, 0xed, - 0xc8, 0xb6, 0xb2, 0x8c, 0xb2, 0x8c, 0xa3, 0xa5, - 0x9b, 0x88, 0x96, 0x40, 0xf9, 0xa9, 0x29, 0x8f, - 0x82, 0xba, 0x9c, 0x89, 0x07, 0x95, 0xa9, 0x91, - 0xad, 0x94, 0x9a, 0x96, 0x8b, 0xb4, 0xb8, 0x09, - 0x80, 0x8c, 0xac, 0x9f, 0x98, 0x99, 0xa3, 0x9c, - 0x01, 0x07, 0xa2, 0x10, 0x8b, 0xaf, 0x8d, 0x83, - 0x94, 0x00, 0x80, 0xa2, 0x91, 0x80, 0x98, 0x92, - 0x81, 0xbe, 0x30, 0x00, 0x18, 0x8e, 0x80, 0x89, - 0x86, 0xae, 0xa5, 0x39, 0x09, 0x95, 0x06, 0x01, - 0x04, 0x10, 0x91, 0x80, 0x8b, 0x84, 0x9d, 0x89, - 0x00, 0x08, 0x80, 0xa5, 0x00, 0x98, 0x00, 0x80, - 0xab, 0xb4, 0x91, 0x83, 0x93, 0x82, 0x9d, 0xaf, - 0x93, 0x08, 0x80, 0x40, 0xb7, 0xae, 0xa8, 0x83, - 0xa3, 0xaf, 0x93, 0x80, 0xba, 0xaa, 0x8c, 0x80, - 0xc6, 0x9a, 0xa4, 0x86, 0x40, 0xb8, 0xab, 0xf3, - 0xbf, 0x9e, 0x39, 0x01, 0x38, 0x08, 0x97, 0x8e, - 0x00, 0x80, 0xdd, 0x39, 0xa6, 0x8f, 0x00, 0x80, - 0x9b, 0x80, 0x89, 0xa7, 0x30, 0x94, 0x80, 0x8a, - 0xad, 0x92, 0x80, 0x91, 0xc8, 0x40, 0xc6, 0xa0, - 0x9e, 0x88, 0x80, 0xa4, 0x90, 0x80, 0xb0, 0x9d, - 0xef, 0x30, 0x08, 0xa5, 0x94, 0x80, 0x98, 0x28, - 0x08, 0x9f, 0x8d, 0x80, 0x41, 0x46, 0x92, 0x8e, - 0x00, 0x8c, 0x80, 0xa1, 0xfb, 0x80, 0xce, 0x43, - 0x99, 0xe5, 0xee, 0x90, 0x40, 0xc3, 0x4a, 0x4b, - 0xe0, 0x8e, 0x44, 0x2f, 0x90, 0x85, 0x98, 0x4f, - 0x9a, 0x84, 0x42, 0x46, 0x5a, 0xb8, 0x9d, 0x46, - 0xe1, 0x42, 0x38, 0x86, 0x9e, 0x90, 0xce, 0x90, - 0x9d, 0x91, 0xaf, 0x8f, 0x83, 0x9e, 0x94, 0x84, - 0x92, 0x41, 0xaf, 0xac, 0x40, 0xd2, 0xbf, 0xff, - 0xca, 0x20, 0xc1, 0x8c, 0xbf, 0x08, 0x80, 0x9b, - 0x57, 0xf7, 0x87, 0x44, 0xd5, 0xa8, 0x89, 0x60, - 0x22, 0xe6, 0x18, 0x30, 0x08, 0x41, 0x22, 0x8e, - 0x80, 0x9c, 0x11, 0x80, 0x8d, 0x1f, 0x41, 0x8b, - 0x49, 0x03, 0xea, 0x84, 0x8c, 0x82, 0x88, 0x86, - 0x89, 0x57, 0x65, 0xd4, 0x80, 0xc6, 0x01, 0x08, - 0x09, 0x0b, 0x80, 0x8b, 0x00, 0x06, 0x80, 0xc0, - 0x03, 0x0f, 0x06, 0x80, 0x9b, 0x03, 0x04, 0x00, - 0x16, 0x80, 0x41, 0x53, 0x81, 0x98, 0x80, 0x98, - 0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, - 0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, - 0x07, 0x47, 0x33, 0x9e, 0x2d, 0x41, 0x04, 0xbd, - 0x40, 0x91, 0xac, 0x89, 0x86, 0x8f, 0x80, 0x41, - 0x40, 0x9d, 0x91, 0xab, 0x41, 0xe3, 0x9b, 0x40, - 0xe3, 0x9d, 0x08, 0x41, 0xee, 0x30, 0x18, 0x08, - 0x8e, 0x80, 0x40, 0xc4, 0xba, 0xc3, 0x30, 0x44, - 0xb3, 0x18, 0x9a, 0x01, 0x00, 0x08, 0x80, 0x89, - 0x03, 0x00, 0x00, 0x28, 0x18, 0x00, 0x00, 0x02, - 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x0b, 0x06, 0x03, 0x03, 0x00, 0x80, 0x89, - 0x80, 0x90, 0x22, 0x04, 0x80, 0x90, 0x51, 0x43, - 0x60, 0xa6, 0xdf, 0x9f, 0x50, 0x39, 0x85, 0x40, - 0xdd, 0x81, 0x56, 0x81, 0x8d, 0x5d, 0x30, 0x8e, - 0x42, 0x6d, 0x49, 0xa1, 0x42, 0x1d, 0x45, 0xe1, - 0x53, 0x4a, 0x84, 0x50, 0x5f, -}; - -static const uint8_t unicode_prop_ID_Start_index[108] = { - 0xf6, 0x03, 0x20, 0xa6, 0x07, 0x00, 0xa9, 0x09, - 0x20, 0xb1, 0x0a, 0x00, 0xba, 0x0b, 0x20, 0x3b, - 0x0d, 0x20, 0xc7, 0x0e, 0x20, 0x49, 0x12, 0x00, - 0x9b, 0x16, 0x00, 0xac, 0x19, 0x00, 0xc0, 0x1d, - 0x80, 0x80, 0x20, 0x20, 0x70, 0x2d, 0x00, 0x00, - 0x32, 0x00, 0xdd, 0xa7, 0x00, 0x4c, 0xaa, 0x20, - 0xc7, 0xd7, 0x20, 0xfc, 0xfd, 0x20, 0x9d, 0x02, - 0x21, 0x96, 0x05, 0x01, 0x9f, 0x08, 0x01, 0x49, - 0x0c, 0x21, 0x76, 0x10, 0x21, 0xa9, 0x12, 0x01, - 0xb0, 0x14, 0x01, 0x42, 0x19, 0x41, 0x90, 0x1c, - 0x01, 0xf1, 0x2f, 0x21, 0x90, 0x6b, 0x21, 0x33, - 0xb1, 0x21, 0x06, 0xd5, 0x01, 0xc3, 0xd7, 0x01, - 0xff, 0xe7, 0x21, 0x63, 0xee, 0x01, 0x5e, 0xee, - 0x42, 0xb0, 0x23, 0x03, -}; - -static const uint8_t unicode_prop_ID_Continue1_table[695] = { - 0xaf, 0x89, 0xa4, 0x80, 0xd6, 0x80, 0x42, 0x47, - 0xef, 0x96, 0x80, 0x40, 0xfa, 0x84, 0x41, 0x08, - 0xac, 0x00, 0x01, 0x01, 0x00, 0xc7, 0x8a, 0xaf, - 0x9e, 0x28, 0xe4, 0x31, 0x29, 0x08, 0x19, 0x89, - 0x96, 0x80, 0x9d, 0x9a, 0xda, 0x8a, 0x8e, 0x89, - 0xa0, 0x88, 0x88, 0x80, 0x97, 0x18, 0x88, 0x02, - 0x04, 0xaa, 0x82, 0xba, 0x88, 0xa9, 0x97, 0x80, - 0xa0, 0xb5, 0x10, 0x91, 0x06, 0x89, 0x09, 0x89, - 0x90, 0x82, 0xb7, 0x00, 0x31, 0x09, 0x82, 0x88, - 0x80, 0x89, 0x09, 0x89, 0x8d, 0x01, 0x82, 0xb7, - 0x00, 0x23, 0x09, 0x12, 0x80, 0x93, 0x8b, 0x10, - 0x8a, 0x82, 0xb7, 0x00, 0x38, 0x10, 0x82, 0x93, - 0x09, 0x89, 0x89, 0x28, 0x82, 0xb7, 0x00, 0x31, - 0x09, 0x16, 0x82, 0x89, 0x09, 0x89, 0x91, 0x80, - 0xba, 0x22, 0x10, 0x83, 0x88, 0x80, 0x8d, 0x89, - 0x8f, 0x84, 0xb6, 0x00, 0x30, 0x10, 0x1e, 0x81, - 0x8a, 0x09, 0x89, 0x90, 0x82, 0xb7, 0x00, 0x30, - 0x10, 0x1e, 0x81, 0x8a, 0x09, 0x89, 0x10, 0x8b, - 0x83, 0xb6, 0x08, 0x30, 0x10, 0x83, 0x88, 0x80, - 0x89, 0x09, 0x89, 0x90, 0x82, 0xc5, 0x03, 0x28, - 0x00, 0x3d, 0x89, 0x09, 0xbc, 0x01, 0x86, 0x8b, - 0x38, 0x89, 0xd6, 0x01, 0x88, 0x8a, 0x30, 0x89, - 0xbd, 0x0d, 0x89, 0x8a, 0x00, 0x00, 0x03, 0x81, - 0xb0, 0x93, 0x01, 0x84, 0x8a, 0x80, 0xa3, 0x88, - 0x80, 0xe3, 0x93, 0x80, 0x89, 0x8b, 0x1b, 0x10, - 0x11, 0x32, 0x83, 0x8c, 0x8b, 0x80, 0x8e, 0x42, - 0xbe, 0x82, 0x88, 0x88, 0x43, 0x9f, 0x83, 0x9b, - 0x82, 0x9c, 0x81, 0x9d, 0x81, 0xbf, 0x9f, 0x88, - 0x01, 0x89, 0xa0, 0x10, 0x8a, 0x40, 0x8e, 0x80, - 0xf5, 0x8b, 0x83, 0x8b, 0x89, 0x89, 0xff, 0x8a, - 0xbb, 0x84, 0xb8, 0x89, 0x80, 0x9c, 0x81, 0x8a, - 0x85, 0x89, 0x95, 0x8d, 0x80, 0x8f, 0xb0, 0x84, - 0xae, 0x90, 0x8a, 0x89, 0x90, 0x88, 0x8b, 0x82, - 0x9d, 0x8c, 0x81, 0x89, 0xab, 0x8d, 0xaf, 0x93, - 0x87, 0x89, 0x85, 0x89, 0xf5, 0x10, 0x94, 0x18, - 0x28, 0x0a, 0x40, 0xc5, 0xbf, 0x42, 0x0b, 0x81, - 0xb0, 0x81, 0x92, 0x80, 0xfa, 0x8c, 0x18, 0x82, - 0x8b, 0x4b, 0xfd, 0x82, 0x40, 0x8c, 0x80, 0xdf, - 0x9f, 0x42, 0x29, 0x85, 0xe8, 0x81, 0xdf, 0x80, - 0x60, 0x75, 0x23, 0x89, 0xc4, 0x03, 0x89, 0x9f, - 0x81, 0xcf, 0x81, 0x41, 0x0f, 0x02, 0x03, 0x80, - 0x96, 0x23, 0x80, 0xd2, 0x81, 0xb1, 0x91, 0x89, - 0x89, 0x85, 0x91, 0x8c, 0x8a, 0x9b, 0x87, 0x98, - 0x8c, 0xab, 0x83, 0xae, 0x8d, 0x8e, 0x89, 0x8a, - 0x80, 0x89, 0x89, 0xae, 0x8d, 0x8b, 0x07, 0x09, - 0x89, 0xa0, 0x82, 0xb1, 0x00, 0x11, 0x0c, 0x08, - 0x80, 0xa8, 0x24, 0x81, 0x40, 0xeb, 0x38, 0x09, - 0x89, 0x60, 0x4f, 0x23, 0x80, 0x42, 0xe0, 0x8f, - 0x8f, 0x8f, 0x11, 0x97, 0x82, 0x40, 0xbf, 0x89, - 0xa4, 0x80, 0xa4, 0x80, 0x42, 0x96, 0x80, 0x40, - 0xe1, 0x80, 0x40, 0x94, 0x84, 0x41, 0x24, 0x89, - 0x45, 0x56, 0x10, 0x0c, 0x83, 0xa7, 0x13, 0x80, - 0x40, 0xa4, 0x81, 0x42, 0x3c, 0x1f, 0x89, 0x85, - 0x89, 0x9e, 0x84, 0x41, 0x3c, 0x81, 0xce, 0x83, - 0xc5, 0x8a, 0xb0, 0x83, 0xf9, 0x82, 0xb4, 0x8e, - 0x9e, 0x8a, 0x09, 0x89, 0x83, 0xac, 0x8a, 0x30, - 0xac, 0x89, 0x2a, 0xa3, 0x8d, 0x80, 0x89, 0x21, - 0xab, 0x80, 0x8b, 0x82, 0xaf, 0x8d, 0x3b, 0x80, - 0x8b, 0xd1, 0x8b, 0x28, 0x08, 0x40, 0x9c, 0x8b, - 0x84, 0x89, 0x2b, 0xb6, 0x08, 0x31, 0x09, 0x82, - 0x88, 0x80, 0x89, 0x09, 0x32, 0x84, 0xc2, 0x88, - 0x00, 0x08, 0x03, 0x04, 0x00, 0x8d, 0x81, 0xd1, - 0x91, 0x88, 0x89, 0x18, 0xd0, 0x93, 0x8b, 0x89, - 0x40, 0xd4, 0x31, 0x88, 0x9a, 0x81, 0xd1, 0x90, - 0x8e, 0x89, 0xd0, 0x8c, 0x87, 0x89, 0x85, 0x93, - 0xb8, 0x8e, 0x83, 0x89, 0x40, 0xf1, 0x8e, 0x40, - 0xa4, 0x89, 0xc5, 0x28, 0x09, 0x18, 0x00, 0x81, - 0x8b, 0x89, 0xf6, 0x31, 0x32, 0x80, 0x9b, 0x89, - 0xa7, 0x30, 0x1f, 0x80, 0x88, 0x8a, 0xad, 0x8f, - 0x41, 0x55, 0x89, 0xb4, 0x38, 0x87, 0x8f, 0x89, - 0xb7, 0x95, 0x80, 0x8d, 0xf9, 0x2a, 0x00, 0x08, - 0x30, 0x07, 0x89, 0xaf, 0x20, 0x08, 0x27, 0x89, - 0x41, 0x48, 0x83, 0x88, 0x08, 0x80, 0xaf, 0x32, - 0x84, 0x8c, 0x8a, 0x54, 0xe4, 0x05, 0x8e, 0x60, - 0x2c, 0xc7, 0x9b, 0x49, 0x25, 0x89, 0xd5, 0x89, - 0xa5, 0x84, 0xba, 0x86, 0x98, 0x89, 0x42, 0x15, - 0x89, 0x41, 0xd4, 0x00, 0xb6, 0x33, 0xd0, 0x80, - 0x8a, 0x81, 0x60, 0x4c, 0xaa, 0x81, 0x50, 0x50, - 0x89, 0x42, 0x05, 0xad, 0x81, 0x96, 0x42, 0x1d, - 0x22, 0x2f, 0x39, 0x86, 0x9d, 0x83, 0x40, 0x93, - 0x82, 0x45, 0x88, 0xb1, 0x41, 0xff, 0xb6, 0x83, - 0xb1, 0x38, 0x8d, 0x80, 0x95, 0x20, 0x8e, 0x45, - 0x4f, 0x30, 0x90, 0x0e, 0x01, 0x04, 0xe3, 0x80, - 0x40, 0x9f, 0x86, 0x88, 0x89, 0x41, 0x63, 0x80, - 0xbc, 0x8d, 0x41, 0xf1, 0x8d, 0x40, 0xf3, 0x08, - 0x89, 0x42, 0xd4, 0x86, 0xec, 0x34, 0x89, 0x52, - 0x95, 0x89, 0x6c, 0x05, 0x05, 0x40, 0xef, -}; - -static const uint8_t unicode_prop_ID_Continue1_index[66] = { - 0xfa, 0x06, 0x00, 0x70, 0x09, 0x00, 0xf0, 0x0a, - 0x40, 0x57, 0x0c, 0x00, 0xf0, 0x0d, 0x60, 0xc7, - 0x0f, 0x20, 0xea, 0x17, 0x40, 0x05, 0x1b, 0x00, - 0x0e, 0x20, 0x00, 0xa0, 0xa6, 0x20, 0xe6, 0xa9, - 0x20, 0x10, 0xfe, 0x00, 0x40, 0x0a, 0x01, 0xc3, - 0x10, 0x01, 0x4e, 0x13, 0x01, 0x41, 0x16, 0x01, - 0x0b, 0x1a, 0x01, 0xaa, 0x1d, 0x01, 0x7a, 0x6d, - 0x21, 0x45, 0xd2, 0x21, 0xaf, 0xe2, 0x01, 0xf0, - 0x01, 0x0e, -}; - -static const uint8_t unicode_prop_White_Space_table[22] = { - 0x88, 0x84, 0x91, 0x80, 0xe3, 0x80, 0x99, 0x80, - 0x55, 0xde, 0x80, 0x49, 0x7e, 0x8a, 0x9c, 0x0c, - 0x80, 0xae, 0x80, 0x4f, 0x9f, 0x80, -}; - -static const uint8_t unicode_prop_White_Space_index[3] = { - 0x01, 0x30, 0x00, -}; - -static const uint8_t unicode_cc_table[916] = { - 0xb2, 0xcf, 0xd4, 0x00, 0xe8, 0x03, 0xdc, 0x00, - 0xe8, 0x00, 0xd8, 0x04, 0xdc, 0x01, 0xca, 0x03, - 0xdc, 0x01, 0xca, 0x0a, 0xdc, 0x04, 0x01, 0x03, - 0xdc, 0xc7, 0x00, 0xf0, 0xc0, 0x02, 0xdc, 0xc2, - 0x01, 0xdc, 0x80, 0xc2, 0x03, 0xdc, 0xc0, 0x00, - 0xe8, 0x01, 0xdc, 0xc0, 0x41, 0xe9, 0x00, 0xea, - 0x41, 0xe9, 0x00, 0xea, 0x00, 0xe9, 0xcc, 0xb0, - 0xe2, 0xc4, 0xb0, 0xd8, 0x00, 0xdc, 0xc3, 0x00, - 0xdc, 0xc2, 0x00, 0xde, 0x00, 0xdc, 0xc5, 0x05, - 0xdc, 0xc1, 0x00, 0xdc, 0xc1, 0x00, 0xde, 0x00, - 0xe4, 0xc0, 0x49, 0x0a, 0x43, 0x13, 0x80, 0x00, - 0x17, 0x80, 0x41, 0x18, 0x80, 0xc0, 0x00, 0xdc, - 0x80, 0x00, 0x12, 0xb0, 0x17, 0xc7, 0x42, 0x1e, - 0xaf, 0x47, 0x1b, 0xc1, 0x01, 0xdc, 0xc4, 0x00, - 0xdc, 0xc1, 0x00, 0xdc, 0x8f, 0x00, 0x23, 0xb0, - 0x34, 0xc6, 0x81, 0xc3, 0x00, 0xdc, 0xc0, 0x81, - 0xc1, 0x80, 0x00, 0xdc, 0xc1, 0x00, 0xdc, 0xa2, - 0x00, 0x24, 0x9d, 0xc0, 0x00, 0xdc, 0xc1, 0x00, - 0xdc, 0xc1, 0x02, 0xdc, 0xc0, 0x01, 0xdc, 0xc0, - 0x00, 0xdc, 0xc2, 0x00, 0xdc, 0xc0, 0x00, 0xdc, - 0xc0, 0x00, 0xdc, 0xc0, 0x00, 0xdc, 0xc1, 0xb0, - 0x6f, 0xc6, 0x00, 0xdc, 0xc0, 0x88, 0x00, 0xdc, - 0x97, 0xc3, 0x80, 0xc8, 0x80, 0xc2, 0x80, 0xc4, - 0xaa, 0x02, 0xdc, 0xb0, 0x0a, 0xc1, 0x02, 0xdc, - 0xc3, 0xa9, 0xc4, 0x04, 0xdc, 0xcd, 0x80, 0x00, - 0xdc, 0xc1, 0x00, 0xdc, 0xc1, 0x00, 0xdc, 0xc2, - 0x02, 0xdc, 0x42, 0x1b, 0xc2, 0x00, 0xdc, 0xc1, - 0x01, 0xdc, 0xc4, 0xb0, 0x0b, 0x00, 0x07, 0x8f, - 0x00, 0x09, 0x82, 0xc0, 0x00, 0xdc, 0xc1, 0xb0, - 0x36, 0x00, 0x07, 0x8f, 0x00, 0x09, 0xaf, 0xc0, - 0xb0, 0x0c, 0x00, 0x07, 0x8f, 0x00, 0x09, 0xb0, - 0x3d, 0x00, 0x07, 0x8f, 0x00, 0x09, 0xb0, 0x3d, - 0x00, 0x07, 0x8f, 0x00, 0x09, 0xb0, 0x4e, 0x00, - 0x09, 0xb0, 0x3d, 0x00, 0x07, 0x8f, 0x00, 0x09, - 0x86, 0x00, 0x54, 0x00, 0x5b, 0xb0, 0x34, 0x00, - 0x07, 0x8f, 0x00, 0x09, 0xb0, 0x3c, 0x01, 0x09, - 0x8f, 0x00, 0x09, 0xb0, 0x4b, 0x00, 0x09, 0xb0, - 0x3c, 0x01, 0x67, 0x00, 0x09, 0x8c, 0x03, 0x6b, - 0xb0, 0x3b, 0x01, 0x76, 0x00, 0x09, 0x8c, 0x03, - 0x7a, 0xb0, 0x1b, 0x01, 0xdc, 0x9a, 0x00, 0xdc, - 0x80, 0x00, 0xdc, 0x80, 0x00, 0xd8, 0xb0, 0x06, - 0x41, 0x81, 0x80, 0x00, 0x84, 0x84, 0x03, 0x82, - 0x81, 0x00, 0x82, 0x80, 0xc1, 0x00, 0x09, 0x80, - 0xc1, 0xb0, 0x0d, 0x00, 0xdc, 0xb0, 0x3f, 0x00, - 0x07, 0x80, 0x01, 0x09, 0xb0, 0x21, 0x00, 0xdc, - 0xb2, 0x9e, 0xc2, 0xb3, 0x83, 0x01, 0x09, 0x9d, - 0x00, 0x09, 0xb0, 0x6c, 0x00, 0x09, 0x89, 0xc0, - 0xb0, 0x9a, 0x00, 0xe4, 0xb0, 0x5e, 0x00, 0xde, - 0xc0, 0x00, 0xdc, 0xb0, 0xaa, 0xc0, 0x00, 0xdc, - 0xb0, 0x16, 0x00, 0x09, 0x93, 0xc7, 0x81, 0x00, - 0xdc, 0xaf, 0xc4, 0x05, 0xdc, 0xc1, 0x00, 0xdc, - 0x80, 0x01, 0xdc, 0xc1, 0x01, 0xdc, 0xc4, 0x00, - 0xdc, 0xc3, 0xb0, 0x34, 0x00, 0x07, 0x8e, 0x00, - 0x09, 0xa5, 0xc0, 0x00, 0xdc, 0xc6, 0xb0, 0x05, - 0x01, 0x09, 0xb0, 0x09, 0x00, 0x07, 0x8a, 0x01, - 0x09, 0xb0, 0x12, 0x00, 0x07, 0xb0, 0x67, 0xc2, - 0x41, 0x00, 0x04, 0xdc, 0xc1, 0x03, 0xdc, 0xc0, - 0x41, 0x00, 0x05, 0x01, 0x83, 0x00, 0xdc, 0x85, - 0xc0, 0x82, 0xc1, 0xb0, 0x95, 0xc1, 0x00, 0xdc, - 0xc6, 0x00, 0xdc, 0xc1, 0x00, 0xea, 0x00, 0xd6, - 0x00, 0xdc, 0x00, 0xca, 0xe4, 0x00, 0xe8, 0x01, - 0xe4, 0x00, 0xdc, 0x00, 0xda, 0xc0, 0x00, 0xe9, - 0x00, 0xdc, 0xc0, 0x00, 0xdc, 0xb2, 0x9f, 0xc1, - 0x01, 0x01, 0xc3, 0x02, 0x01, 0xc1, 0x83, 0xc0, - 0x82, 0x01, 0x01, 0xc0, 0x00, 0xdc, 0xc0, 0x01, - 0x01, 0x03, 0xdc, 0xc0, 0xb8, 0x03, 0xcd, 0xc2, - 0xb0, 0x5c, 0x00, 0x09, 0xb0, 0x2f, 0xdf, 0xb1, - 0xf9, 0x00, 0xda, 0x00, 0xe4, 0x00, 0xe8, 0x00, - 0xde, 0x01, 0xe0, 0xb0, 0x38, 0x01, 0x08, 0xb8, - 0x6d, 0xa3, 0xc0, 0x83, 0xc9, 0x9f, 0xc1, 0xb0, - 0x1f, 0xc1, 0xb0, 0xe3, 0x00, 0x09, 0xa4, 0x00, - 0x09, 0xb0, 0x66, 0x00, 0x09, 0x9a, 0xd1, 0xb0, - 0x08, 0x02, 0xdc, 0xa4, 0x00, 0x09, 0xb0, 0x2e, - 0x00, 0x07, 0x8b, 0x00, 0x09, 0xb0, 0xbe, 0xc0, - 0x80, 0xc1, 0x00, 0xdc, 0x81, 0xc1, 0x84, 0xc1, - 0x80, 0xc0, 0xb0, 0x03, 0x00, 0x09, 0xb0, 0xc5, - 0x00, 0x09, 0xb8, 0x46, 0xff, 0x00, 0x1a, 0xb2, - 0xd0, 0xc6, 0x06, 0xdc, 0xc1, 0xb3, 0x9c, 0x00, - 0xdc, 0xb0, 0xb1, 0x00, 0xdc, 0xb0, 0x64, 0xc4, - 0xb6, 0x61, 0x00, 0xdc, 0x80, 0xc0, 0xa7, 0xc0, - 0x00, 0x01, 0x00, 0xdc, 0x83, 0x00, 0x09, 0xb0, - 0x74, 0xc0, 0x00, 0xdc, 0xb2, 0x0c, 0xc3, 0xb0, - 0x10, 0xc4, 0xb1, 0x0c, 0xc1, 0xb0, 0x1f, 0x02, - 0xdc, 0xb0, 0x15, 0x01, 0xdc, 0xc2, 0x00, 0xdc, - 0xc0, 0x03, 0xdc, 0xb0, 0x00, 0xc0, 0x00, 0xdc, - 0xc0, 0x00, 0xdc, 0xb0, 0x8f, 0x00, 0x09, 0xa8, - 0x00, 0x09, 0x8d, 0x00, 0x09, 0xb0, 0x08, 0x00, - 0x09, 0x00, 0x07, 0xb0, 0x14, 0xc2, 0xaf, 0x01, - 0x09, 0xb0, 0x0d, 0x00, 0x07, 0xb0, 0x1b, 0x00, - 0x09, 0x88, 0x00, 0x07, 0xb0, 0x39, 0x00, 0x09, - 0x00, 0x07, 0xb0, 0x81, 0x00, 0x07, 0x00, 0x09, - 0xb0, 0x1f, 0x01, 0x07, 0x8f, 0x00, 0x09, 0x97, - 0xc6, 0x82, 0xc4, 0xb0, 0x28, 0x02, 0x09, 0xb0, - 0x40, 0x00, 0x09, 0x82, 0x00, 0x07, 0x96, 0xc0, - 0xb0, 0x32, 0x00, 0x09, 0x00, 0x07, 0xb0, 0xca, - 0x00, 0x09, 0x00, 0x07, 0xb0, 0x4d, 0x00, 0x09, - 0xb0, 0x45, 0x00, 0x09, 0x00, 0x07, 0xb0, 0x42, - 0x00, 0x09, 0xb0, 0xdc, 0x00, 0x09, 0x00, 0x07, - 0xb0, 0xd1, 0x01, 0x09, 0x83, 0x00, 0x07, 0xb0, - 0x6b, 0x00, 0x09, 0xb0, 0x22, 0x00, 0x09, 0x91, - 0x00, 0x09, 0xb0, 0x20, 0x00, 0x09, 0xb1, 0x74, - 0x00, 0x09, 0xb0, 0xd1, 0x00, 0x07, 0x80, 0x01, - 0x09, 0xb0, 0x20, 0x00, 0x09, 0xb1, 0x78, 0x01, - 0x09, 0xb8, 0x39, 0xbb, 0x00, 0x09, 0xb8, 0x01, - 0x8f, 0x04, 0x01, 0xb0, 0x0a, 0xc6, 0xb4, 0x88, - 0x01, 0x06, 0xb8, 0x44, 0x7b, 0x00, 0x01, 0xb8, - 0x0c, 0x95, 0x01, 0xd8, 0x02, 0x01, 0x82, 0x00, - 0xe2, 0x04, 0xd8, 0x87, 0x07, 0xdc, 0x81, 0xc4, - 0x01, 0xdc, 0x9d, 0xc3, 0xb0, 0x63, 0xc2, 0xb8, - 0x05, 0x8a, 0xc6, 0x80, 0xd0, 0x81, 0xc6, 0x80, - 0xc1, 0x80, 0xc4, 0xb0, 0x33, 0xc0, 0xb0, 0x6f, - 0xc6, 0xb1, 0x46, 0xc0, 0xb0, 0x0c, 0xc3, 0xb1, - 0xcb, 0x01, 0xe8, 0x00, 0xdc, 0xc0, 0xb0, 0xcd, - 0xc0, 0x00, 0xdc, 0xb2, 0xaf, 0x06, 0xdc, 0xb0, - 0x3c, 0xc5, 0x00, 0x07, -}; - -static const uint8_t unicode_cc_index[87] = { - 0x4d, 0x03, 0x00, 0x97, 0x05, 0x20, 0xc6, 0x05, - 0x00, 0xe7, 0x06, 0x00, 0x45, 0x07, 0x00, 0x9c, - 0x08, 0x00, 0x4d, 0x09, 0x00, 0x3c, 0x0b, 0x00, - 0x3d, 0x0d, 0x00, 0x36, 0x0f, 0x00, 0x38, 0x10, - 0x20, 0x3a, 0x19, 0x00, 0xcb, 0x1a, 0x20, 0xd3, - 0x1c, 0x00, 0xcf, 0x1d, 0x00, 0xe2, 0x20, 0x00, - 0x2e, 0x30, 0x20, 0x2b, 0xa9, 0x20, 0xed, 0xab, - 0x00, 0x39, 0x0a, 0x01, 0x4c, 0x0f, 0x01, 0x35, - 0x11, 0x21, 0x66, 0x13, 0x01, 0x40, 0x16, 0x01, - 0x47, 0x1a, 0x01, 0xf0, 0x6a, 0x21, 0x8a, 0xd1, - 0x01, 0xec, 0xe4, 0x21, 0x4b, 0xe9, 0x01, -}; - -static const uint32_t unicode_decomp_table1[709] = { - 0x00280081, 0x002a0097, 0x002a8081, 0x002bc097, - 0x002c8115, 0x002d0097, 0x002d4081, 0x002e0097, - 0x002e4115, 0x002f0199, 0x00302016, 0x00400842, - 0x00448a42, 0x004a0442, 0x004c0096, 0x004c8117, - 0x004d0242, 0x004e4342, 0x004fc12f, 0x0050c342, - 0x005240bf, 0x00530342, 0x00550942, 0x005a0842, - 0x005e0096, 0x005e4342, 0x005fc081, 0x00680142, - 0x006bc142, 0x00710185, 0x0071c317, 0x00734844, - 0x00778344, 0x00798342, 0x007b02be, 0x007c4197, - 0x007d0142, 0x007e0444, 0x00800e42, 0x00878142, - 0x00898744, 0x00ac0483, 0x00b60317, 0x00b80283, - 0x00d00214, 0x00d10096, 0x00dd0080, 0x00de8097, - 0x00df8080, 0x00e10097, 0x00e1413e, 0x00e1c080, - 0x00e204be, 0x00ea83ae, 0x00f282ae, 0x00f401ad, - 0x00f4c12e, 0x00f54103, 0x00fc0303, 0x00fe4081, - 0x0100023e, 0x0101c0be, 0x010301be, 0x010640be, - 0x010e40be, 0x0114023e, 0x0115c0be, 0x011701be, - 0x011d8144, 0x01304144, 0x01340244, 0x01358144, - 0x01368344, 0x01388344, 0x013a8644, 0x013e0144, - 0x0161c085, 0x018882ae, 0x019d422f, 0x01b00184, - 0x01b4c084, 0x024a4084, 0x024c4084, 0x024d0084, - 0x0256042e, 0x0272c12e, 0x02770120, 0x0277c084, - 0x028cc084, 0x028d8084, 0x029641ae, 0x02978084, - 0x02d20084, 0x02d2c12e, 0x02d70120, 0x02e50084, - 0x02f281ae, 0x03120084, 0x03300084, 0x0331c122, - 0x0332812e, 0x035281ae, 0x03768084, 0x037701ae, - 0x038cc085, 0x03acc085, 0x03b7012f, 0x03c30081, - 0x03d0c084, 0x03d34084, 0x03d48084, 0x03d5c084, - 0x03d70084, 0x03da4084, 0x03dcc084, 0x03dd412e, - 0x03ddc085, 0x03de0084, 0x03de4085, 0x03e04084, - 0x03e4c084, 0x03e74084, 0x03e88084, 0x03e9c084, - 0x03eb0084, 0x03ee4084, 0x04098084, 0x043f0081, - 0x06c18484, 0x06c48084, 0x06cec184, 0x06d00120, - 0x06d0c084, 0x074b0383, 0x074cc41f, 0x074f1783, - 0x075e0081, 0x0766d283, 0x07801d44, 0x078e8942, - 0x07931844, 0x079f0d42, 0x07a58216, 0x07a68085, - 0x07a6c0be, 0x07a80d44, 0x07aea044, 0x07c00122, - 0x07c08344, 0x07c20122, 0x07c28344, 0x07c40122, - 0x07c48244, 0x07c60122, 0x07c68244, 0x07c8113e, - 0x07d08244, 0x07d20122, 0x07d28244, 0x07d40122, - 0x07d48344, 0x07d64c3e, 0x07dc4080, 0x07dc80be, - 0x07dcc080, 0x07dd00be, 0x07dd4080, 0x07dd80be, - 0x07ddc080, 0x07de00be, 0x07de4080, 0x07de80be, - 0x07dec080, 0x07df00be, 0x07df4080, 0x07e00820, - 0x07e40820, 0x07e80820, 0x07ec05be, 0x07eec080, - 0x07ef00be, 0x07ef4097, 0x07ef8080, 0x07efc117, - 0x07f0443e, 0x07f24080, 0x07f280be, 0x07f2c080, - 0x07f303be, 0x07f4c080, 0x07f582ae, 0x07f6c080, - 0x07f7433e, 0x07f8c080, 0x07f903ae, 0x07fac080, - 0x07fb013e, 0x07fb8102, 0x07fc83be, 0x07fe4080, - 0x07fe80be, 0x07fec080, 0x07ff00be, 0x07ff4080, - 0x07ff8097, 0x0800011e, 0x08008495, 0x08044081, - 0x0805c097, 0x08090081, 0x08094097, 0x08098099, - 0x080bc081, 0x080cc085, 0x080d00b1, 0x080d8085, - 0x080dc0b1, 0x080f0197, 0x0811c197, 0x0815c0b3, - 0x0817c081, 0x081c0595, 0x081ec081, 0x081f0215, - 0x0820051f, 0x08228583, 0x08254415, 0x082a0097, - 0x08400119, 0x08408081, 0x0840c0bf, 0x08414119, - 0x0841c081, 0x084240bf, 0x0842852d, 0x08454081, - 0x08458097, 0x08464295, 0x08480097, 0x08484099, - 0x08488097, 0x08490081, 0x08498080, 0x084a0081, - 0x084a8102, 0x084b0495, 0x084d421f, 0x084e4081, - 0x084ec099, 0x084f0283, 0x08514295, 0x08540119, - 0x0854809b, 0x0854c619, 0x0857c097, 0x08580081, - 0x08584097, 0x08588099, 0x0858c097, 0x08590081, - 0x08594097, 0x08598099, 0x0859c09b, 0x085a0097, - 0x085a4081, 0x085a8097, 0x085ac099, 0x085b0295, - 0x085c4097, 0x085c8099, 0x085cc097, 0x085d0081, - 0x085d4097, 0x085d8099, 0x085dc09b, 0x085e0097, - 0x085e4081, 0x085e8097, 0x085ec099, 0x085f0215, - 0x08624099, 0x0866813e, 0x086b80be, 0x087341be, - 0x088100be, 0x088240be, 0x088300be, 0x088901be, - 0x088b0085, 0x088b40b1, 0x088bc085, 0x088c00b1, - 0x089040be, 0x089100be, 0x0891c1be, 0x089801be, - 0x089b42be, 0x089d0144, 0x089e0144, 0x08a00144, - 0x08a10144, 0x08a20144, 0x08ab023e, 0x08b80244, - 0x08ba8220, 0x08ca411e, 0x0918049f, 0x091a4523, - 0x091cc097, 0x091d04a5, 0x091f452b, 0x0921c09b, - 0x092204a1, 0x09244525, 0x0926c099, 0x09270d25, - 0x092d8d1f, 0x09340d1f, 0x093a8081, 0x0a8300b3, - 0x0a9d0099, 0x0a9d4097, 0x0a9d8099, 0x0ab700be, - 0x0b1f0115, 0x0b5bc081, 0x0ba7c081, 0x0bbcc081, - 0x0bc004ad, 0x0bc244ad, 0x0bc484ad, 0x0bc6f383, - 0x0be0852d, 0x0be31d03, 0x0bf1882d, 0x0c000081, - 0x0c0d8283, 0x0c130b84, 0x0c194284, 0x0c1c0122, - 0x0c1cc122, 0x0c1d8122, 0x0c1e4122, 0x0c1f0122, - 0x0c250084, 0x0c26c123, 0x0c278084, 0x0c27c085, - 0x0c2b0b84, 0x0c314284, 0x0c340122, 0x0c34c122, - 0x0c358122, 0x0c364122, 0x0c370122, 0x0c3d0084, - 0x0c3dc220, 0x0c3f8084, 0x0c3fc085, 0x0c4c4a2d, - 0x0c51451f, 0x0c53ca9f, 0x0c5915ad, 0x0c648703, - 0x0c800741, 0x0c838089, 0x0c83c129, 0x0c8441a9, - 0x0c850089, 0x0c854129, 0x0c85c2a9, 0x0c870089, - 0x0c87408f, 0x0c87808d, 0x0c881241, 0x0c910203, - 0x0c940099, 0x0c9444a3, 0x0c968323, 0x0c98072d, - 0x0c9b84af, 0x0c9dc2a1, 0x0c9f00b5, 0x0c9f40b3, - 0x0c9f8085, 0x0ca01883, 0x0cac4223, 0x0cad4523, - 0x0cafc097, 0x0cb004a1, 0x0cb241a5, 0x0cb30097, - 0x0cb34099, 0x0cb38097, 0x0cb3c099, 0x0cb417ad, - 0x0cbfc085, 0x0cc001b3, 0x0cc0c0b1, 0x0cc100b3, - 0x0cc14131, 0x0cc1c0b5, 0x0cc200b3, 0x0cc241b1, - 0x0cc30133, 0x0cc38131, 0x0cc40085, 0x0cc440b1, - 0x0cc48133, 0x0cc50085, 0x0cc540b5, 0x0cc580b7, - 0x0cc5c0b5, 0x0cc600b1, 0x0cc64135, 0x0cc6c0b3, - 0x0cc701b1, 0x0cc7c0b3, 0x0cc800b5, 0x0cc840b3, - 0x0cc881b1, 0x0cc9422f, 0x0cca4131, 0x0ccac0b5, - 0x0ccb00b1, 0x0ccb40b3, 0x0ccb80b5, 0x0ccbc0b1, - 0x0ccc012f, 0x0ccc80b5, 0x0cccc0b3, 0x0ccd00b5, - 0x0ccd40b1, 0x0ccd80b5, 0x0ccdc085, 0x0cce02b1, - 0x0ccf40b3, 0x0ccf80b1, 0x0ccfc085, 0x0cd001b1, - 0x0cd0c0b3, 0x0cd101b1, 0x0cd1c0b5, 0x0cd200b3, - 0x0cd24085, 0x0cd280b5, 0x0cd2c085, 0x0cd30133, - 0x0cd381b1, 0x0cd440b3, 0x0cd48085, 0x0cd4c0b1, - 0x0cd500b3, 0x0cd54085, 0x0cd580b5, 0x0cd5c0b1, - 0x0cd60521, 0x0cd88525, 0x0cdb02a5, 0x0cdc4099, - 0x0cdc8117, 0x0cdd0099, 0x0cdd4197, 0x0cde0127, - 0x0cde8285, 0x0cdfc089, 0x0ce0043f, 0x0ce20099, - 0x0ce2409b, 0x0ce283bf, 0x0ce44219, 0x0ce54205, - 0x0ce6433f, 0x0ce7c131, 0x0ce84085, 0x0ce881b1, - 0x0ce94085, 0x0ce98107, 0x0cea0089, 0x0cea4097, - 0x0cea8219, 0x0ceb809d, 0x0cebc08d, 0x0cec083f, - 0x0cf00105, 0x0cf0809b, 0x0cf0c197, 0x0cf1809b, - 0x0cf1c099, 0x0cf20517, 0x0cf48099, 0x0cf4c117, - 0x0cf54119, 0x0cf5c097, 0x0cf6009b, 0x0cf64099, - 0x0cf68217, 0x0cf78119, 0x0cf804a1, 0x0cfa4525, - 0x0cfcc525, 0x0cff4125, 0x0cffc099, 0x29a70103, - 0x29dc0081, 0x29fc8195, 0x29fe0103, 0x2ad70203, - 0x2ada4081, 0x3e401482, 0x3e4a7f82, 0x3e6a3f82, - 0x3e8aa102, 0x3e9b0110, 0x3e9c2f82, 0x3eb3c590, - 0x3ec00197, 0x3ec0c119, 0x3ec1413f, 0x3ec4c2af, - 0x3ec74184, 0x3ec804ad, 0x3eca4081, 0x3eca8304, - 0x3ecc03a0, 0x3ece02a0, 0x3ecf8084, 0x3ed00120, - 0x3ed0c120, 0x3ed184ae, 0x3ed3c085, 0x3ed4312d, - 0x3ef4cbad, 0x3efa892f, 0x3eff022d, 0x3f002f2f, - 0x3f1782a5, 0x3f18c0b1, 0x3f1907af, 0x3f1cffaf, - 0x3f3c81a5, 0x3f3d64af, 0x3f542031, 0x3f649b31, - 0x3f7c0131, 0x3f7c83b3, 0x3f7e40b1, 0x3f7e80bd, - 0x3f7ec0bb, 0x3f7f00b3, 0x3f840503, 0x3f8c01ad, - 0x3f8cc315, 0x3f8e462d, 0x3f91cc03, 0x3f97c695, - 0x3f9c01af, 0x3f9d0085, 0x3f9d852f, 0x3fa03aad, - 0x3fbd442f, 0x3fc06f1f, 0x3fd7c11f, 0x3fd85fad, - 0x3fe80081, 0x3fe84f1f, 0x3ff0831f, 0x3ff2831f, - 0x3ff4831f, 0x3ff6819f, 0x3ff80783, 0x41724092, - 0x41790092, 0x41e04d83, 0x41e70f91, 0x44268192, - 0x442ac092, 0x444b8112, 0x44d2c112, 0x44e0c192, - 0x44e38092, 0x44e44092, 0x44f14212, 0x452ec212, - 0x456e8112, 0x464e0092, 0x58484412, 0x5b5a0192, - 0x73358d1f, 0x733c051f, 0x74578392, 0x746ec312, - 0x75000d1f, 0x75068d1f, 0x750d0d1f, 0x7513839f, - 0x7515891f, 0x751a0d1f, 0x75208d1f, 0x75271015, - 0x752f439f, 0x7531459f, 0x75340d1f, 0x753a8d1f, - 0x75410395, 0x7543441f, 0x7545839f, 0x75478d1f, - 0x754e0795, 0x7552839f, 0x75548d1f, 0x755b0d1f, - 0x75618d1f, 0x75680d1f, 0x756e8d1f, 0x75750d1f, - 0x757b8d1f, 0x75820d1f, 0x75888d1f, 0x758f0d1f, - 0x75958d1f, 0x759c0d1f, 0x75a28d1f, 0x75a90103, - 0x75aa089f, 0x75ae4081, 0x75ae839f, 0x75b04081, - 0x75b08c9f, 0x75b6c081, 0x75b7032d, 0x75b8889f, - 0x75bcc081, 0x75bd039f, 0x75bec081, 0x75bf0c9f, - 0x75c54081, 0x75c5832d, 0x75c7089f, 0x75cb4081, - 0x75cb839f, 0x75cd4081, 0x75cd8c9f, 0x75d3c081, - 0x75d4032d, 0x75d5889f, 0x75d9c081, 0x75da039f, - 0x75dbc081, 0x75dc0c9f, 0x75e24081, 0x75e2832d, - 0x75e4089f, 0x75e84081, 0x75e8839f, 0x75ea4081, - 0x75ea8c9f, 0x75f0c081, 0x75f1042d, 0x75f3851f, - 0x75f6051f, 0x75f8851f, 0x75fb051f, 0x75fd851f, - 0x780c049f, 0x780e419f, 0x780f059f, 0x7811c203, - 0x7812d0ad, 0x781b0103, 0x7b80022d, 0x7b814dad, - 0x7b884203, 0x7b89c081, 0x7b8a452d, 0x7b8d0403, - 0x7b908081, 0x7b91dc03, 0x7ba0052d, 0x7ba2c8ad, - 0x7ba84483, 0x7baac8ad, 0x7c400097, 0x7c404521, - 0x7c440d25, 0x7c4a8087, 0x7c4ac115, 0x7c4b4117, - 0x7c4c0d1f, 0x7c528217, 0x7c538099, 0x7c53c097, - 0x7c5a8197, 0x7c640097, 0x7c80012f, 0x7c808081, - 0x7c841603, 0x7c9004c1, 0x7c940103, 0x7efc051f, - 0xbe0001ac, 0xbe00d110, 0xbe0947ac, 0xbe0d3910, - 0xbe29872c, 0xbe2d022c, 0xbe2e3790, 0xbe49ff90, - 0xbe69bc10, -}; - -static const uint16_t unicode_decomp_table2[709] = { - 0x0020, 0x0000, 0x0061, 0x0002, 0x0004, 0x0006, 0x03bc, 0x0008, - 0x000a, 0x000c, 0x0015, 0x0095, 0x00a5, 0x00b9, 0x00c1, 0x00c3, - 0x00c7, 0x00cb, 0x00d1, 0x00d7, 0x00dd, 0x00e0, 0x00e6, 0x00f8, - 0x0108, 0x010a, 0x0073, 0x0110, 0x0112, 0x0114, 0x0120, 0x012c, - 0x0144, 0x014d, 0x0153, 0x0162, 0x0168, 0x016a, 0x0176, 0x0192, - 0x0194, 0x01a9, 0x01bb, 0x01c7, 0x01d1, 0x01d5, 0x02b9, 0x01d7, - 0x003b, 0x01d9, 0x01db, 0x00b7, 0x01e1, 0x01fc, 0x020c, 0x0218, - 0x021d, 0x0223, 0x0227, 0x03a3, 0x0233, 0x023f, 0x0242, 0x024b, - 0x024e, 0x0251, 0x025d, 0x0260, 0x0269, 0x026c, 0x026f, 0x0275, - 0x0278, 0x0281, 0x028a, 0x029c, 0x029f, 0x02a3, 0x02af, 0x02b9, - 0x02c5, 0x02c9, 0x02cd, 0x02d1, 0x02d5, 0x02e7, 0x02ed, 0x02f1, - 0x02f5, 0x02f9, 0x02fd, 0x0305, 0x0309, 0x030d, 0x0313, 0x0317, - 0x031b, 0x0323, 0x0327, 0x032b, 0x032f, 0x0335, 0x033d, 0x0341, - 0x0349, 0x034d, 0x0351, 0x0f0b, 0x0357, 0x035b, 0x035f, 0x0363, - 0x0367, 0x036b, 0x036f, 0x0373, 0x0379, 0x037d, 0x0381, 0x0385, - 0x0389, 0x038d, 0x0391, 0x0395, 0x0399, 0x039d, 0x03a1, 0x10dc, - 0x03a5, 0x03c9, 0x03cd, 0x03d9, 0x03dd, 0x03e1, 0x03ef, 0x03f1, - 0x043d, 0x044f, 0x0499, 0x04f0, 0x0502, 0x054a, 0x0564, 0x056c, - 0x0570, 0x0573, 0x059a, 0x05fa, 0x05fe, 0x0607, 0x060b, 0x0614, - 0x0618, 0x061e, 0x0622, 0x0628, 0x068e, 0x0694, 0x0698, 0x069e, - 0x06a2, 0x06ab, 0x03ac, 0x06f3, 0x03ad, 0x06f6, 0x03ae, 0x06f9, - 0x03af, 0x06fc, 0x03cc, 0x06ff, 0x03cd, 0x0702, 0x03ce, 0x0705, - 0x0709, 0x070d, 0x0711, 0x0386, 0x0732, 0x0735, 0x03b9, 0x0737, - 0x073b, 0x0388, 0x0753, 0x0389, 0x0756, 0x0390, 0x076b, 0x038a, - 0x0777, 0x03b0, 0x0789, 0x038e, 0x0799, 0x079f, 0x07a3, 0x038c, - 0x07b8, 0x038f, 0x07bb, 0x00b4, 0x07be, 0x07c0, 0x07c2, 0x2010, - 0x07cb, 0x002e, 0x07cd, 0x07cf, 0x0020, 0x07d2, 0x07d6, 0x07db, - 0x07df, 0x07e4, 0x07ea, 0x07f0, 0x0020, 0x07f6, 0x2212, 0x0801, - 0x0805, 0x0807, 0x081d, 0x0825, 0x0827, 0x0043, 0x082d, 0x0830, - 0x0190, 0x0836, 0x0839, 0x004e, 0x0845, 0x0847, 0x084c, 0x084e, - 0x0851, 0x005a, 0x03a9, 0x005a, 0x0853, 0x0857, 0x0860, 0x0069, - 0x0862, 0x0865, 0x086f, 0x0874, 0x087a, 0x087e, 0x08a2, 0x0049, - 0x08a4, 0x08a6, 0x08a9, 0x0056, 0x08ab, 0x08ad, 0x08b0, 0x08b4, - 0x0058, 0x08b6, 0x08b8, 0x08bb, 0x08c0, 0x08c2, 0x08c5, 0x0076, - 0x08c7, 0x08c9, 0x08cc, 0x08d0, 0x0078, 0x08d2, 0x08d4, 0x08d7, - 0x08db, 0x08de, 0x08e4, 0x08e7, 0x08f0, 0x08f3, 0x08f6, 0x08f9, - 0x0902, 0x0906, 0x090b, 0x090f, 0x0914, 0x0917, 0x091a, 0x0923, - 0x092c, 0x093b, 0x093e, 0x0941, 0x0944, 0x0947, 0x094a, 0x0956, - 0x095c, 0x0960, 0x0962, 0x0964, 0x0968, 0x096a, 0x0970, 0x0978, - 0x097c, 0x0980, 0x0986, 0x0989, 0x098f, 0x0991, 0x0030, 0x0993, - 0x0999, 0x099c, 0x099e, 0x09a1, 0x09a4, 0x2d61, 0x6bcd, 0x9f9f, - 0x09a6, 0x09b1, 0x09bc, 0x09c7, 0x0a95, 0x0aa1, 0x0b15, 0x0020, - 0x0b27, 0x0b31, 0x0b8d, 0x0ba1, 0x0ba5, 0x0ba9, 0x0bad, 0x0bb1, - 0x0bb5, 0x0bb9, 0x0bbd, 0x0bc1, 0x0bc5, 0x0c21, 0x0c35, 0x0c39, - 0x0c3d, 0x0c41, 0x0c45, 0x0c49, 0x0c4d, 0x0c51, 0x0c55, 0x0c59, - 0x0c6f, 0x0c71, 0x0c73, 0x0ca0, 0x0cbc, 0x0cdc, 0x0ce4, 0x0cec, - 0x0cf4, 0x0cfc, 0x0d04, 0x0d0c, 0x0d14, 0x0d22, 0x0d2e, 0x0d7a, - 0x0d82, 0x0d85, 0x0d89, 0x0d8d, 0x0d9d, 0x0db1, 0x0db5, 0x0dbc, - 0x0dc2, 0x0dc6, 0x0e28, 0x0e2c, 0x0e30, 0x0e32, 0x0e36, 0x0e3c, - 0x0e3e, 0x0e41, 0x0e43, 0x0e46, 0x0e77, 0x0e7b, 0x0e89, 0x0e8e, - 0x0e94, 0x0e9c, 0x0ea3, 0x0ea9, 0x0eb4, 0x0ebe, 0x0ec6, 0x0eca, - 0x0ecf, 0x0ed9, 0x0edd, 0x0ee4, 0x0eec, 0x0ef3, 0x0ef8, 0x0f04, - 0x0f0a, 0x0f15, 0x0f1b, 0x0f22, 0x0f28, 0x0f33, 0x0f3d, 0x0f45, - 0x0f4c, 0x0f51, 0x0f57, 0x0f5e, 0x0f63, 0x0f69, 0x0f70, 0x0f76, - 0x0f7d, 0x0f82, 0x0f89, 0x0f8d, 0x0f9e, 0x0fa4, 0x0fa9, 0x0fad, - 0x0fb8, 0x0fbe, 0x0fc9, 0x0fd0, 0x0fd6, 0x0fda, 0x0fe1, 0x0fe5, - 0x0fef, 0x0ffa, 0x1000, 0x1004, 0x1009, 0x100f, 0x1013, 0x101a, - 0x101f, 0x1023, 0x1029, 0x102f, 0x1032, 0x1036, 0x1039, 0x103f, - 0x1045, 0x1059, 0x1061, 0x1079, 0x107c, 0x1080, 0x1095, 0x10a1, - 0x10b1, 0x10c3, 0x10cb, 0x10cf, 0x10da, 0x10de, 0x10ea, 0x10f2, - 0x10f4, 0x1100, 0x1105, 0x1111, 0x1141, 0x1149, 0x114d, 0x1153, - 0x1157, 0x115a, 0x116e, 0x1171, 0x1175, 0x117b, 0x117d, 0x1181, - 0x1184, 0x118c, 0x1192, 0x1196, 0x119c, 0x11a2, 0x11a8, 0x11ab, - 0xa76f, 0x11af, 0x11b2, 0x11b6, 0x028d, 0x11be, 0x1210, 0x130e, - 0x140c, 0x1490, 0x1495, 0x1553, 0x156c, 0x1572, 0x1578, 0x157e, - 0x158a, 0x1596, 0x002b, 0x15a1, 0x15b9, 0x15bd, 0x15c1, 0x15c5, - 0x15c9, 0x15cd, 0x15e1, 0x15e5, 0x1649, 0x1662, 0x1688, 0x168e, - 0x174c, 0x1752, 0x1757, 0x1777, 0x1877, 0x187d, 0x1911, 0x19d3, - 0x1a77, 0x1a7f, 0x1a9d, 0x1aa2, 0x1ab6, 0x1ac0, 0x1ac6, 0x1ada, - 0x1adf, 0x1ae5, 0x1af3, 0x1b23, 0x1b30, 0x1b38, 0x1b3c, 0x1b52, - 0x1bc9, 0x1bdb, 0x1bdd, 0x1bdf, 0x3164, 0x1c20, 0x1c22, 0x1c24, - 0x1c26, 0x1c28, 0x1c2a, 0x1c48, 0x1c4d, 0x1c52, 0x1c88, 0x1cce, - 0x1cdc, 0x1ce1, 0x1cea, 0x1cf3, 0x1d01, 0x1d06, 0x1d0b, 0x1d1d, - 0x1d2f, 0x1d38, 0x1d3d, 0x1d61, 0x1d6f, 0x1d71, 0x1d73, 0x1d93, - 0x1dae, 0x1db0, 0x1db2, 0x1db4, 0x1db6, 0x1db8, 0x1dba, 0x1dbc, - 0x1ddc, 0x1dde, 0x1de0, 0x1de2, 0x1de4, 0x1deb, 0x1ded, 0x1def, - 0x1df1, 0x1e00, 0x1e02, 0x1e04, 0x1e06, 0x1e08, 0x1e0a, 0x1e0c, - 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16, 0x1e18, 0x1e1a, 0x1e1c, - 0x1e20, 0x03f4, 0x1e22, 0x2207, 0x1e24, 0x2202, 0x1e26, 0x1e2e, - 0x03f4, 0x1e30, 0x2207, 0x1e32, 0x2202, 0x1e34, 0x1e3c, 0x03f4, - 0x1e3e, 0x2207, 0x1e40, 0x2202, 0x1e42, 0x1e4a, 0x03f4, 0x1e4c, - 0x2207, 0x1e4e, 0x2202, 0x1e50, 0x1e58, 0x03f4, 0x1e5a, 0x2207, - 0x1e5c, 0x2202, 0x1e5e, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, - 0x1e72, 0x1e74, 0x1e76, 0x1e78, 0x1e80, 0x1ea3, 0x1ea7, 0x1ead, - 0x1eca, 0x062d, 0x1ed2, 0x1ede, 0x062c, 0x1eee, 0x1f5e, 0x1f6a, - 0x1f7d, 0x1f8f, 0x1fa2, 0x1fa4, 0x1fa8, 0x1fae, 0x1fb4, 0x1fb6, - 0x1fba, 0x1fbc, 0x1fc4, 0x1fc7, 0x1fc9, 0x1fcf, 0x1fd1, 0x30b5, - 0x1fd7, 0x202f, 0x2045, 0x2049, 0x204b, 0x2050, 0x209d, 0x20ae, - 0x21af, 0x21bf, 0x21c5, 0x22bf, 0x23dd, -}; - -static const uint8_t unicode_decomp_data[9451] = { - 0x20, 0x88, 0x20, 0x84, 0x32, 0x33, 0x20, 0x81, - 0x20, 0xa7, 0x31, 0x6f, 0x31, 0xd0, 0x34, 0x31, - 0xd0, 0x32, 0x33, 0xd0, 0x34, 0x41, 0x80, 0x41, - 0x81, 0x41, 0x82, 0x41, 0x83, 0x41, 0x88, 0x41, - 0x8a, 0x00, 0x00, 0x43, 0xa7, 0x45, 0x80, 0x45, - 0x81, 0x45, 0x82, 0x45, 0x88, 0x49, 0x80, 0x49, - 0x81, 0x49, 0x82, 0x49, 0x88, 0x00, 0x00, 0x4e, - 0x83, 0x4f, 0x80, 0x4f, 0x81, 0x4f, 0x82, 0x4f, - 0x83, 0x4f, 0x88, 0x00, 0x00, 0x00, 0x00, 0x55, - 0x80, 0x55, 0x81, 0x55, 0x82, 0x55, 0x88, 0x59, - 0x81, 0x00, 0x00, 0x00, 0x00, 0x61, 0x80, 0x61, - 0x81, 0x61, 0x82, 0x61, 0x83, 0x61, 0x88, 0x61, - 0x8a, 0x00, 0x00, 0x63, 0xa7, 0x65, 0x80, 0x65, - 0x81, 0x65, 0x82, 0x65, 0x88, 0x69, 0x80, 0x69, - 0x81, 0x69, 0x82, 0x69, 0x88, 0x00, 0x00, 0x6e, - 0x83, 0x6f, 0x80, 0x6f, 0x81, 0x6f, 0x82, 0x6f, - 0x83, 0x6f, 0x88, 0x00, 0x00, 0x00, 0x00, 0x75, - 0x80, 0x75, 0x81, 0x75, 0x82, 0x75, 0x88, 0x79, - 0x81, 0x00, 0x00, 0x79, 0x88, 0x41, 0x84, 0x41, - 0x86, 0x41, 0xa8, 0x43, 0x81, 0x43, 0x82, 0x43, - 0x87, 0x43, 0x8c, 0x44, 0x8c, 0x45, 0x84, 0x45, - 0x86, 0x45, 0x87, 0x45, 0xa8, 0x45, 0x8c, 0x47, - 0x82, 0x47, 0x86, 0x47, 0x87, 0x47, 0xa7, 0x48, - 0x82, 0x49, 0x83, 0x49, 0x84, 0x49, 0x86, 0x49, - 0xa8, 0x49, 0x87, 0x49, 0x4a, 0x69, 0x6a, 0x4a, - 0x82, 0x4b, 0xa7, 0x4c, 0x81, 0x4c, 0xa7, 0x4c, - 0x8c, 0x4c, 0x00, 0x00, 0x6b, 0x20, 0x6b, 0x4e, - 0x81, 0x4e, 0xa7, 0x4e, 0x8c, 0xbc, 0x02, 0x6e, - 0x4f, 0x84, 0x4f, 0x86, 0x4f, 0x8b, 0x52, 0x81, - 0x52, 0xa7, 0x52, 0x8c, 0x53, 0x81, 0x53, 0x82, - 0x53, 0xa7, 0x53, 0x8c, 0x54, 0xa7, 0x54, 0x8c, - 0x55, 0x83, 0x55, 0x84, 0x55, 0x86, 0x55, 0x8a, - 0x55, 0x8b, 0x55, 0xa8, 0x57, 0x82, 0x59, 0x82, - 0x59, 0x88, 0x5a, 0x81, 0x5a, 0x87, 0x5a, 0x8c, - 0x4f, 0x9b, 0x55, 0x9b, 0x44, 0x00, 0x7d, 0x01, - 0x44, 0x00, 0x7e, 0x01, 0x64, 0x00, 0x7e, 0x01, - 0x4c, 0x4a, 0x4c, 0x6a, 0x6c, 0x6a, 0x4e, 0x4a, - 0x4e, 0x6a, 0x6e, 0x6a, 0x41, 0x00, 0x8c, 0x49, - 0x00, 0x8c, 0x4f, 0x00, 0x8c, 0x55, 0x00, 0x8c, - 0xdc, 0x00, 0x84, 0xdc, 0x00, 0x81, 0xdc, 0x00, - 0x8c, 0xdc, 0x00, 0x80, 0xc4, 0x00, 0x84, 0x26, - 0x02, 0x84, 0xc6, 0x00, 0x84, 0x47, 0x8c, 0x4b, - 0x8c, 0x4f, 0xa8, 0xea, 0x01, 0x84, 0xeb, 0x01, - 0x84, 0xb7, 0x01, 0x8c, 0x92, 0x02, 0x8c, 0x6a, - 0x00, 0x8c, 0x44, 0x5a, 0x44, 0x7a, 0x64, 0x7a, - 0x47, 0x81, 0x4e, 0x00, 0x80, 0xc5, 0x00, 0x81, - 0xc6, 0x00, 0x81, 0xd8, 0x00, 0x81, 0x41, 0x8f, - 0x41, 0x91, 0x45, 0x8f, 0x45, 0x91, 0x49, 0x8f, - 0x49, 0x91, 0x4f, 0x8f, 0x4f, 0x91, 0x52, 0x8f, - 0x52, 0x91, 0x55, 0x8f, 0x55, 0x91, 0x53, 0xa6, - 0x54, 0xa6, 0x48, 0x8c, 0x41, 0x00, 0x87, 0x45, - 0x00, 0xa7, 0xd6, 0x00, 0x84, 0xd5, 0x00, 0x84, - 0x4f, 0x00, 0x87, 0x2e, 0x02, 0x84, 0x59, 0x00, - 0x84, 0x68, 0x00, 0x66, 0x02, 0x6a, 0x00, 0x72, - 0x00, 0x79, 0x02, 0x7b, 0x02, 0x81, 0x02, 0x77, - 0x00, 0x79, 0x00, 0x20, 0x86, 0x20, 0x87, 0x20, - 0x8a, 0x20, 0xa8, 0x20, 0x83, 0x20, 0x8b, 0x63, - 0x02, 0x6c, 0x00, 0x73, 0x00, 0x78, 0x00, 0x95, - 0x02, 0x80, 0x81, 0x00, 0x93, 0x88, 0x81, 0x20, - 0xc5, 0x20, 0x81, 0xa8, 0x00, 0x81, 0x91, 0x03, - 0x81, 0x95, 0x03, 0x81, 0x97, 0x03, 0x81, 0x99, - 0x03, 0x81, 0x00, 0x00, 0x00, 0x9f, 0x03, 0x81, - 0x00, 0x00, 0x00, 0xa5, 0x03, 0x81, 0xa9, 0x03, - 0x81, 0xca, 0x03, 0x81, 0x01, 0x03, 0x98, 0x07, - 0xa4, 0x07, 0xb0, 0x00, 0xb4, 0x00, 0xb6, 0x00, - 0xb8, 0x00, 0xca, 0x00, 0x01, 0x03, 0xb8, 0x07, - 0xc4, 0x07, 0xbe, 0x00, 0xc4, 0x00, 0xc8, 0x00, - 0xa5, 0x03, 0x0d, 0x13, 0x00, 0x01, 0x03, 0xd1, - 0x00, 0xd1, 0x07, 0xc6, 0x03, 0xc0, 0x03, 0xba, - 0x03, 0xc1, 0x03, 0xc2, 0x03, 0x00, 0x00, 0x98, - 0x03, 0xb5, 0x03, 0x15, 0x04, 0x80, 0x15, 0x04, - 0x88, 0x00, 0x00, 0x00, 0x13, 0x04, 0x81, 0x06, - 0x04, 0x88, 0x1a, 0x04, 0x81, 0x18, 0x04, 0x80, - 0x23, 0x04, 0x86, 0x18, 0x04, 0x86, 0x38, 0x04, - 0x86, 0x35, 0x04, 0x80, 0x35, 0x04, 0x88, 0x00, - 0x00, 0x00, 0x33, 0x04, 0x81, 0x56, 0x04, 0x88, - 0x3a, 0x04, 0x81, 0x38, 0x04, 0x80, 0x43, 0x04, - 0x86, 0x74, 0x04, 0x8f, 0x16, 0x04, 0x86, 0x10, - 0x04, 0x86, 0x10, 0x04, 0x88, 0x15, 0x04, 0x86, - 0xd8, 0x04, 0x88, 0x16, 0x04, 0x88, 0x17, 0x04, - 0x88, 0x18, 0x04, 0x84, 0x18, 0x04, 0x88, 0x1e, - 0x04, 0x88, 0xe8, 0x04, 0x88, 0x2d, 0x04, 0x88, - 0x23, 0x04, 0x84, 0x23, 0x04, 0x88, 0x23, 0x04, - 0x8b, 0x27, 0x04, 0x88, 0x2b, 0x04, 0x88, 0x65, - 0x05, 0x82, 0x05, 0x27, 0x06, 0x00, 0x2c, 0x00, - 0x2d, 0x21, 0x2d, 0x00, 0x2e, 0x23, 0x2d, 0x27, - 0x06, 0x00, 0x4d, 0x21, 0x4d, 0xa0, 0x4d, 0x23, - 0x4d, 0xd5, 0x06, 0x54, 0x06, 0x00, 0x00, 0x00, - 0x00, 0xc1, 0x06, 0x54, 0x06, 0xd2, 0x06, 0x54, - 0x06, 0x28, 0x09, 0x3c, 0x09, 0x30, 0x09, 0x3c, - 0x09, 0x33, 0x09, 0x3c, 0x09, 0x15, 0x09, 0x00, - 0x27, 0x01, 0x27, 0x02, 0x27, 0x07, 0x27, 0x0c, - 0x27, 0x0d, 0x27, 0x16, 0x27, 0x1a, 0x27, 0xbe, - 0x09, 0x09, 0x00, 0x09, 0x19, 0xa1, 0x09, 0xbc, - 0x09, 0xaf, 0x09, 0xbc, 0x09, 0x32, 0x0a, 0x3c, - 0x0a, 0x38, 0x0a, 0x3c, 0x0a, 0x16, 0x0a, 0x00, - 0x26, 0x01, 0x26, 0x06, 0x26, 0x2b, 0x0a, 0x3c, - 0x0a, 0x47, 0x0b, 0x56, 0x0b, 0x3e, 0x0b, 0x09, - 0x00, 0x09, 0x19, 0x21, 0x0b, 0x3c, 0x0b, 0x92, - 0x0b, 0xd7, 0x0b, 0xbe, 0x0b, 0x08, 0x00, 0x09, - 0x00, 0x08, 0x19, 0x46, 0x0c, 0x56, 0x0c, 0xbf, - 0x0c, 0xd5, 0x0c, 0xc6, 0x0c, 0xd5, 0x0c, 0xc2, - 0x0c, 0x04, 0x00, 0x08, 0x13, 0x3e, 0x0d, 0x08, - 0x00, 0x09, 0x00, 0x08, 0x19, 0xd9, 0x0d, 0xca, - 0x0d, 0xca, 0x0d, 0x0f, 0x05, 0x12, 0x00, 0x0f, - 0x15, 0x4d, 0x0e, 0x32, 0x0e, 0xcd, 0x0e, 0xb2, - 0x0e, 0x99, 0x0e, 0x12, 0x00, 0x12, 0x08, 0x42, - 0x0f, 0xb7, 0x0f, 0x4c, 0x0f, 0xb7, 0x0f, 0x51, - 0x0f, 0xb7, 0x0f, 0x56, 0x0f, 0xb7, 0x0f, 0x5b, - 0x0f, 0xb7, 0x0f, 0x40, 0x0f, 0xb5, 0x0f, 0x71, - 0x0f, 0x72, 0x0f, 0x71, 0x0f, 0x00, 0x03, 0x41, - 0x0f, 0xb2, 0x0f, 0x81, 0x0f, 0xb3, 0x0f, 0x80, - 0x0f, 0xb3, 0x0f, 0x81, 0x0f, 0x71, 0x0f, 0x80, - 0x0f, 0x92, 0x0f, 0xb7, 0x0f, 0x9c, 0x0f, 0xb7, - 0x0f, 0xa1, 0x0f, 0xb7, 0x0f, 0xa6, 0x0f, 0xb7, - 0x0f, 0xab, 0x0f, 0xb7, 0x0f, 0x90, 0x0f, 0xb5, - 0x0f, 0x25, 0x10, 0x2e, 0x10, 0x05, 0x1b, 0x35, - 0x1b, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1b, 0x35, - 0x1b, 0x00, 0x00, 0x00, 0x00, 0x09, 0x1b, 0x35, - 0x1b, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x1b, 0x35, - 0x1b, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x1b, 0x35, - 0x1b, 0x11, 0x1b, 0x35, 0x1b, 0x3a, 0x1b, 0x35, - 0x1b, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1b, 0x35, - 0x1b, 0x3e, 0x1b, 0x35, 0x1b, 0x42, 0x1b, 0x35, - 0x1b, 0x41, 0x00, 0xc6, 0x00, 0x42, 0x00, 0x00, - 0x00, 0x44, 0x00, 0x45, 0x00, 0x8e, 0x01, 0x47, - 0x00, 0x4f, 0x00, 0x22, 0x02, 0x50, 0x00, 0x52, - 0x00, 0x54, 0x00, 0x55, 0x00, 0x57, 0x00, 0x61, - 0x00, 0x50, 0x02, 0x51, 0x02, 0x02, 0x1d, 0x62, - 0x00, 0x64, 0x00, 0x65, 0x00, 0x59, 0x02, 0x5b, - 0x02, 0x5c, 0x02, 0x67, 0x00, 0x00, 0x00, 0x6b, - 0x00, 0x6d, 0x00, 0x4b, 0x01, 0x6f, 0x00, 0x54, - 0x02, 0x16, 0x1d, 0x17, 0x1d, 0x70, 0x00, 0x74, - 0x00, 0x75, 0x00, 0x1d, 0x1d, 0x6f, 0x02, 0x76, - 0x00, 0x25, 0x1d, 0xb2, 0x03, 0xb3, 0x03, 0xb4, - 0x03, 0xc6, 0x03, 0xc7, 0x03, 0x69, 0x00, 0x72, - 0x00, 0x75, 0x00, 0x76, 0x00, 0xb2, 0x03, 0xb3, - 0x03, 0xc1, 0x03, 0xc6, 0x03, 0xc7, 0x03, 0x52, - 0x02, 0x63, 0x00, 0x55, 0x02, 0xf0, 0x00, 0x5c, - 0x02, 0x66, 0x00, 0x5f, 0x02, 0x61, 0x02, 0x65, - 0x02, 0x68, 0x02, 0x69, 0x02, 0x6a, 0x02, 0x7b, - 0x1d, 0x9d, 0x02, 0x6d, 0x02, 0x85, 0x1d, 0x9f, - 0x02, 0x71, 0x02, 0x70, 0x02, 0x72, 0x02, 0x73, - 0x02, 0x74, 0x02, 0x75, 0x02, 0x78, 0x02, 0x82, - 0x02, 0x83, 0x02, 0xab, 0x01, 0x89, 0x02, 0x8a, - 0x02, 0x1c, 0x1d, 0x8b, 0x02, 0x8c, 0x02, 0x7a, - 0x00, 0x90, 0x02, 0x91, 0x02, 0x92, 0x02, 0xb8, - 0x03, 0x41, 0x00, 0xa5, 0x42, 0x00, 0x87, 0x42, - 0x00, 0xa3, 0x42, 0x00, 0xb1, 0xc7, 0x00, 0x81, - 0x44, 0x00, 0x87, 0x44, 0x00, 0xa3, 0x44, 0x00, - 0xb1, 0x44, 0x00, 0xa7, 0x44, 0x00, 0xad, 0x12, - 0x01, 0x80, 0x12, 0x01, 0x81, 0x45, 0x00, 0xad, - 0x45, 0x00, 0xb0, 0x28, 0x02, 0x86, 0x46, 0x00, - 0x87, 0x47, 0x00, 0x84, 0x48, 0x00, 0x87, 0x48, - 0x00, 0xa3, 0x48, 0x00, 0x88, 0x48, 0x00, 0xa7, - 0x48, 0x00, 0xae, 0x49, 0x00, 0xb0, 0xcf, 0x00, - 0x81, 0x4b, 0x00, 0x81, 0x4b, 0x00, 0xa3, 0x4b, - 0x00, 0xb1, 0x4c, 0x00, 0xa3, 0x36, 0x1e, 0x84, - 0x4c, 0xb1, 0x4c, 0xad, 0x4d, 0x81, 0x4d, 0x87, - 0x4d, 0xa3, 0x4e, 0x87, 0x4e, 0xa3, 0x4e, 0xb1, - 0x4e, 0xad, 0xd5, 0x00, 0x81, 0xd5, 0x00, 0x88, - 0x4c, 0x01, 0x80, 0x4c, 0x01, 0x81, 0x50, 0x00, - 0x81, 0x50, 0x00, 0x87, 0x52, 0x00, 0x87, 0x52, - 0x00, 0xa3, 0x5a, 0x1e, 0x84, 0x52, 0x00, 0xb1, - 0x53, 0x00, 0x87, 0x53, 0x00, 0xa3, 0x5a, 0x01, - 0x87, 0x60, 0x01, 0x87, 0x62, 0x1e, 0x87, 0x54, - 0x00, 0x87, 0x54, 0x00, 0xa3, 0x54, 0x00, 0xb1, - 0x54, 0x00, 0xad, 0x55, 0x00, 0xa4, 0x55, 0x00, - 0xb0, 0x55, 0x00, 0xad, 0x68, 0x01, 0x81, 0x6a, - 0x01, 0x88, 0x56, 0x83, 0x56, 0xa3, 0x57, 0x80, - 0x57, 0x81, 0x57, 0x88, 0x57, 0x87, 0x57, 0xa3, - 0x58, 0x87, 0x58, 0x88, 0x59, 0x87, 0x5a, 0x82, - 0x5a, 0xa3, 0x5a, 0xb1, 0x68, 0xb1, 0x74, 0x88, - 0x77, 0x8a, 0x79, 0x8a, 0x61, 0x00, 0xbe, 0x02, - 0x7f, 0x01, 0x87, 0x41, 0x00, 0xa3, 0x41, 0x00, - 0x89, 0xc2, 0x00, 0x81, 0xc2, 0x00, 0x80, 0xc2, - 0x00, 0x89, 0xc2, 0x00, 0x83, 0xa0, 0x1e, 0x82, - 0x02, 0x01, 0x81, 0x02, 0x01, 0x80, 0x02, 0x01, - 0x89, 0x02, 0x01, 0x83, 0xa0, 0x1e, 0x86, 0x45, - 0x00, 0xa3, 0x45, 0x00, 0x89, 0x45, 0x00, 0x83, - 0xca, 0x00, 0x81, 0xca, 0x00, 0x80, 0xca, 0x00, - 0x89, 0xca, 0x00, 0x83, 0xb8, 0x1e, 0x82, 0x49, - 0x00, 0x89, 0x49, 0x00, 0xa3, 0x4f, 0x00, 0xa3, - 0x4f, 0x00, 0x89, 0xd4, 0x00, 0x81, 0xd4, 0x00, - 0x80, 0xd4, 0x00, 0x89, 0xd4, 0x00, 0x83, 0xcc, - 0x1e, 0x82, 0xa0, 0x01, 0x81, 0xa0, 0x01, 0x80, - 0xa0, 0x01, 0x89, 0xa0, 0x01, 0x83, 0xa0, 0x01, - 0xa3, 0x55, 0x00, 0xa3, 0x55, 0x00, 0x89, 0xaf, - 0x01, 0x81, 0xaf, 0x01, 0x80, 0xaf, 0x01, 0x89, - 0xaf, 0x01, 0x83, 0xaf, 0x01, 0xa3, 0x59, 0x00, - 0x80, 0x59, 0x00, 0xa3, 0x59, 0x00, 0x89, 0x59, - 0x00, 0x83, 0xb1, 0x03, 0x13, 0x03, 0x00, 0x1f, - 0x80, 0x00, 0x1f, 0x81, 0x00, 0x1f, 0xc2, 0x91, - 0x03, 0x13, 0x03, 0x08, 0x1f, 0x80, 0x08, 0x1f, - 0x81, 0x08, 0x1f, 0xc2, 0xb5, 0x03, 0x13, 0x03, - 0x10, 0x1f, 0x80, 0x10, 0x1f, 0x81, 0x95, 0x03, - 0x13, 0x03, 0x18, 0x1f, 0x80, 0x18, 0x1f, 0x81, - 0xb7, 0x03, 0x93, 0xb7, 0x03, 0x94, 0x20, 0x1f, - 0x80, 0x21, 0x1f, 0x80, 0x20, 0x1f, 0x81, 0x21, - 0x1f, 0x81, 0x20, 0x1f, 0xc2, 0x21, 0x1f, 0xc2, - 0x97, 0x03, 0x93, 0x97, 0x03, 0x94, 0x28, 0x1f, - 0x80, 0x29, 0x1f, 0x80, 0x28, 0x1f, 0x81, 0x29, - 0x1f, 0x81, 0x28, 0x1f, 0xc2, 0x29, 0x1f, 0xc2, - 0xb9, 0x03, 0x93, 0xb9, 0x03, 0x94, 0x30, 0x1f, - 0x80, 0x31, 0x1f, 0x80, 0x30, 0x1f, 0x81, 0x31, - 0x1f, 0x81, 0x30, 0x1f, 0xc2, 0x31, 0x1f, 0xc2, - 0x99, 0x03, 0x93, 0x99, 0x03, 0x94, 0x38, 0x1f, - 0x80, 0x39, 0x1f, 0x80, 0x38, 0x1f, 0x81, 0x39, - 0x1f, 0x81, 0x38, 0x1f, 0xc2, 0x39, 0x1f, 0xc2, - 0xbf, 0x03, 0x93, 0xbf, 0x03, 0x94, 0x40, 0x1f, - 0x80, 0x40, 0x1f, 0x81, 0x9f, 0x03, 0x13, 0x03, - 0x48, 0x1f, 0x80, 0x48, 0x1f, 0x81, 0xc5, 0x03, - 0x13, 0x03, 0x50, 0x1f, 0x80, 0x50, 0x1f, 0x81, - 0x50, 0x1f, 0xc2, 0xa5, 0x03, 0x94, 0x00, 0x00, - 0x00, 0x59, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x59, - 0x1f, 0x81, 0x00, 0x00, 0x00, 0x59, 0x1f, 0xc2, - 0xc9, 0x03, 0x93, 0xc9, 0x03, 0x94, 0x60, 0x1f, - 0x80, 0x61, 0x1f, 0x80, 0x60, 0x1f, 0x81, 0x61, - 0x1f, 0x81, 0x60, 0x1f, 0xc2, 0x61, 0x1f, 0xc2, - 0xa9, 0x03, 0x93, 0xa9, 0x03, 0x94, 0x68, 0x1f, - 0x80, 0x69, 0x1f, 0x80, 0x68, 0x1f, 0x81, 0x69, - 0x1f, 0x81, 0x68, 0x1f, 0xc2, 0x69, 0x1f, 0xc2, - 0xb1, 0x03, 0x80, 0xb5, 0x03, 0x80, 0xb7, 0x03, - 0x80, 0xb9, 0x03, 0x80, 0xbf, 0x03, 0x80, 0xc5, - 0x03, 0x80, 0xc9, 0x03, 0x80, 0x00, 0x1f, 0x45, - 0x03, 0x20, 0x1f, 0x45, 0x03, 0x60, 0x1f, 0x45, - 0x03, 0xb1, 0x03, 0x86, 0xb1, 0x03, 0x84, 0x70, - 0x1f, 0xc5, 0xb1, 0x03, 0xc5, 0xac, 0x03, 0xc5, - 0x00, 0x00, 0x00, 0xb1, 0x03, 0xc2, 0xb6, 0x1f, - 0xc5, 0x91, 0x03, 0x86, 0x91, 0x03, 0x84, 0x91, - 0x03, 0x80, 0x91, 0x03, 0xc5, 0x20, 0x93, 0x20, - 0x93, 0x20, 0xc2, 0xa8, 0x00, 0xc2, 0x74, 0x1f, - 0xc5, 0xb7, 0x03, 0xc5, 0xae, 0x03, 0xc5, 0x00, - 0x00, 0x00, 0xb7, 0x03, 0xc2, 0xc6, 0x1f, 0xc5, - 0x95, 0x03, 0x80, 0x97, 0x03, 0x80, 0x97, 0x03, - 0xc5, 0xbf, 0x1f, 0x80, 0xbf, 0x1f, 0x81, 0xbf, - 0x1f, 0xc2, 0xb9, 0x03, 0x86, 0xb9, 0x03, 0x84, - 0xca, 0x03, 0x80, 0x00, 0x03, 0xb9, 0x42, 0xca, - 0x42, 0x99, 0x06, 0x99, 0x04, 0x99, 0x00, 0xfe, - 0x1f, 0x80, 0xfe, 0x1f, 0x81, 0xfe, 0x1f, 0xc2, - 0xc5, 0x03, 0x86, 0xc5, 0x03, 0x84, 0xcb, 0x03, - 0x80, 0x00, 0x03, 0xc1, 0x13, 0xc1, 0x14, 0xc5, - 0x42, 0xcb, 0x42, 0xa5, 0x06, 0xa5, 0x04, 0xa5, - 0x00, 0xa1, 0x03, 0x94, 0xa8, 0x00, 0x80, 0x85, - 0x03, 0x60, 0x00, 0x7c, 0x1f, 0xc5, 0xc9, 0x03, - 0xc5, 0xce, 0x03, 0xc5, 0x00, 0x00, 0x00, 0xc9, - 0x03, 0xc2, 0xf6, 0x1f, 0xc5, 0x9f, 0x03, 0x80, - 0xa9, 0x03, 0x80, 0xa9, 0x03, 0xc5, 0x20, 0x94, - 0x02, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0xb3, 0x2e, 0x2e, 0x2e, - 0x2e, 0x2e, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20, - 0x00, 0x00, 0x00, 0x35, 0x20, 0x35, 0x20, 0x35, - 0x20, 0x00, 0x00, 0x00, 0x21, 0x21, 0x00, 0x00, - 0x20, 0x85, 0x3f, 0x3f, 0x3f, 0x21, 0x21, 0x3f, - 0x32, 0x20, 0x00, 0x00, 0x00, 0x00, 0x30, 0x69, - 0x00, 0x00, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x2b, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x00, 0x2b, - 0x00, 0x12, 0x22, 0x3d, 0x00, 0x28, 0x00, 0x29, - 0x00, 0x00, 0x00, 0x61, 0x00, 0x65, 0x00, 0x6f, - 0x00, 0x78, 0x00, 0x59, 0x02, 0x68, 0x6b, 0x6c, - 0x6d, 0x6e, 0x70, 0x73, 0x74, 0x52, 0x73, 0x61, - 0x2f, 0x63, 0x61, 0x2f, 0x73, 0xb0, 0x00, 0x43, - 0x63, 0x2f, 0x6f, 0x63, 0x2f, 0x75, 0xb0, 0x00, - 0x46, 0x48, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, - 0xdf, 0x01, 0x01, 0x04, 0x24, 0x4e, 0x6f, 0x50, - 0x51, 0x52, 0x52, 0x52, 0x53, 0x4d, 0x54, 0x45, - 0x4c, 0x54, 0x4d, 0x4b, 0x00, 0xc5, 0x00, 0x42, - 0x43, 0x00, 0x65, 0x45, 0x46, 0x00, 0x4d, 0x6f, - 0xd0, 0x05, 0x46, 0x41, 0x58, 0xc0, 0x03, 0xb3, - 0x03, 0x93, 0x03, 0xa0, 0x03, 0x11, 0x22, 0x44, - 0x64, 0x65, 0x69, 0x6a, 0x31, 0xd0, 0x37, 0x31, - 0xd0, 0x39, 0x31, 0xd0, 0x31, 0x30, 0x31, 0xd0, - 0x33, 0x32, 0xd0, 0x33, 0x31, 0xd0, 0x35, 0x32, - 0xd0, 0x35, 0x33, 0xd0, 0x35, 0x34, 0xd0, 0x35, - 0x31, 0xd0, 0x36, 0x35, 0xd0, 0x36, 0x31, 0xd0, - 0x38, 0x33, 0xd0, 0x38, 0x35, 0xd0, 0x38, 0x37, - 0xd0, 0x38, 0x31, 0xd0, 0x49, 0x49, 0x49, 0x49, - 0x49, 0x49, 0x56, 0x56, 0x49, 0x56, 0x49, 0x49, - 0x56, 0x49, 0x49, 0x49, 0x49, 0x58, 0x58, 0x49, - 0x58, 0x49, 0x49, 0x4c, 0x43, 0x44, 0x4d, 0x69, - 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x76, 0x76, - 0x69, 0x76, 0x69, 0x69, 0x76, 0x69, 0x69, 0x69, - 0x69, 0x78, 0x78, 0x69, 0x78, 0x69, 0x69, 0x6c, - 0x63, 0x64, 0x6d, 0x30, 0xd0, 0x33, 0x90, 0x21, - 0xb8, 0x92, 0x21, 0xb8, 0x94, 0x21, 0xb8, 0xd0, - 0x21, 0xb8, 0xd4, 0x21, 0xb8, 0xd2, 0x21, 0xb8, - 0x03, 0x22, 0xb8, 0x08, 0x22, 0xb8, 0x0b, 0x22, - 0xb8, 0x23, 0x22, 0xb8, 0x00, 0x00, 0x00, 0x25, - 0x22, 0xb8, 0x2b, 0x22, 0x2b, 0x22, 0x2b, 0x22, - 0x00, 0x00, 0x00, 0x2e, 0x22, 0x2e, 0x22, 0x2e, - 0x22, 0x00, 0x00, 0x00, 0x3c, 0x22, 0xb8, 0x43, - 0x22, 0xb8, 0x45, 0x22, 0xb8, 0x00, 0x00, 0x00, - 0x48, 0x22, 0xb8, 0x3d, 0x00, 0xb8, 0x00, 0x00, - 0x00, 0x61, 0x22, 0xb8, 0x4d, 0x22, 0xb8, 0x3c, - 0x00, 0xb8, 0x3e, 0x00, 0xb8, 0x64, 0x22, 0xb8, - 0x65, 0x22, 0xb8, 0x72, 0x22, 0xb8, 0x76, 0x22, - 0xb8, 0x7a, 0x22, 0xb8, 0x82, 0x22, 0xb8, 0x86, - 0x22, 0xb8, 0xa2, 0x22, 0xb8, 0xa8, 0x22, 0xb8, - 0xa9, 0x22, 0xb8, 0xab, 0x22, 0xb8, 0x7c, 0x22, - 0xb8, 0x91, 0x22, 0xb8, 0xb2, 0x22, 0x38, 0x03, - 0x08, 0x30, 0x31, 0x00, 0x31, 0x00, 0x30, 0x00, - 0x32, 0x30, 0x28, 0x00, 0x31, 0x00, 0x29, 0x00, - 0x28, 0x00, 0x31, 0x00, 0x30, 0x00, 0x29, 0x00, - 0x28, 0x32, 0x30, 0x29, 0x31, 0x00, 0x2e, 0x00, - 0x31, 0x00, 0x30, 0x00, 0x2e, 0x00, 0x32, 0x30, - 0x2e, 0x28, 0x00, 0x61, 0x00, 0x29, 0x00, 0x41, - 0x00, 0x61, 0x00, 0x2b, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x3a, 0x3a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, - 0x3d, 0xdd, 0x2a, 0xb8, 0x6a, 0x56, 0x00, 0x4e, - 0x00, 0x28, 0x36, 0x3f, 0x59, 0x85, 0x8c, 0xa0, - 0xba, 0x3f, 0x51, 0x00, 0x26, 0x2c, 0x43, 0x57, - 0x6c, 0xa1, 0xb6, 0xc1, 0x9b, 0x52, 0x00, 0x5e, - 0x7a, 0x7f, 0x9d, 0xa6, 0xc1, 0xce, 0xe7, 0xb6, - 0x53, 0xc8, 0x53, 0xe3, 0x53, 0xd7, 0x56, 0x1f, - 0x57, 0xeb, 0x58, 0x02, 0x59, 0x0a, 0x59, 0x15, - 0x59, 0x27, 0x59, 0x73, 0x59, 0x50, 0x5b, 0x80, - 0x5b, 0xf8, 0x5b, 0x0f, 0x5c, 0x22, 0x5c, 0x38, - 0x5c, 0x6e, 0x5c, 0x71, 0x5c, 0xdb, 0x5d, 0xe5, - 0x5d, 0xf1, 0x5d, 0xfe, 0x5d, 0x72, 0x5e, 0x7a, - 0x5e, 0x7f, 0x5e, 0xf4, 0x5e, 0xfe, 0x5e, 0x0b, - 0x5f, 0x13, 0x5f, 0x50, 0x5f, 0x61, 0x5f, 0x73, - 0x5f, 0xc3, 0x5f, 0x08, 0x62, 0x36, 0x62, 0x4b, - 0x62, 0x2f, 0x65, 0x34, 0x65, 0x87, 0x65, 0x97, - 0x65, 0xa4, 0x65, 0xb9, 0x65, 0xe0, 0x65, 0xe5, - 0x65, 0xf0, 0x66, 0x08, 0x67, 0x28, 0x67, 0x20, - 0x6b, 0x62, 0x6b, 0x79, 0x6b, 0xb3, 0x6b, 0xcb, - 0x6b, 0xd4, 0x6b, 0xdb, 0x6b, 0x0f, 0x6c, 0x14, - 0x6c, 0x34, 0x6c, 0x6b, 0x70, 0x2a, 0x72, 0x36, - 0x72, 0x3b, 0x72, 0x3f, 0x72, 0x47, 0x72, 0x59, - 0x72, 0x5b, 0x72, 0xac, 0x72, 0x84, 0x73, 0x89, - 0x73, 0xdc, 0x74, 0xe6, 0x74, 0x18, 0x75, 0x1f, - 0x75, 0x28, 0x75, 0x30, 0x75, 0x8b, 0x75, 0x92, - 0x75, 0x76, 0x76, 0x7d, 0x76, 0xae, 0x76, 0xbf, - 0x76, 0xee, 0x76, 0xdb, 0x77, 0xe2, 0x77, 0xf3, - 0x77, 0x3a, 0x79, 0xb8, 0x79, 0xbe, 0x79, 0x74, - 0x7a, 0xcb, 0x7a, 0xf9, 0x7a, 0x73, 0x7c, 0xf8, - 0x7c, 0x36, 0x7f, 0x51, 0x7f, 0x8a, 0x7f, 0xbd, - 0x7f, 0x01, 0x80, 0x0c, 0x80, 0x12, 0x80, 0x33, - 0x80, 0x7f, 0x80, 0x89, 0x80, 0xe3, 0x81, 0x00, - 0x07, 0x10, 0x19, 0x29, 0x38, 0x3c, 0x8b, 0x8f, - 0x95, 0x4d, 0x86, 0x6b, 0x86, 0x40, 0x88, 0x4c, - 0x88, 0x63, 0x88, 0x7e, 0x89, 0x8b, 0x89, 0xd2, - 0x89, 0x00, 0x8a, 0x37, 0x8c, 0x46, 0x8c, 0x55, - 0x8c, 0x78, 0x8c, 0x9d, 0x8c, 0x64, 0x8d, 0x70, - 0x8d, 0xb3, 0x8d, 0xab, 0x8e, 0xca, 0x8e, 0x9b, - 0x8f, 0xb0, 0x8f, 0xb5, 0x8f, 0x91, 0x90, 0x49, - 0x91, 0xc6, 0x91, 0xcc, 0x91, 0xd1, 0x91, 0x77, - 0x95, 0x80, 0x95, 0x1c, 0x96, 0xb6, 0x96, 0xb9, - 0x96, 0xe8, 0x96, 0x51, 0x97, 0x5e, 0x97, 0x62, - 0x97, 0x69, 0x97, 0xcb, 0x97, 0xed, 0x97, 0xf3, - 0x97, 0x01, 0x98, 0xa8, 0x98, 0xdb, 0x98, 0xdf, - 0x98, 0x96, 0x99, 0x99, 0x99, 0xac, 0x99, 0xa8, - 0x9a, 0xd8, 0x9a, 0xdf, 0x9a, 0x25, 0x9b, 0x2f, - 0x9b, 0x32, 0x9b, 0x3c, 0x9b, 0x5a, 0x9b, 0xe5, - 0x9c, 0x75, 0x9e, 0x7f, 0x9e, 0xa5, 0x9e, 0x00, - 0x16, 0x1e, 0x28, 0x2c, 0x54, 0x58, 0x69, 0x6e, - 0x7b, 0x96, 0xa5, 0xad, 0xe8, 0xf7, 0xfb, 0x12, - 0x30, 0x00, 0x00, 0x41, 0x53, 0x44, 0x53, 0x45, - 0x53, 0x4b, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x4d, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x4f, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x51, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x53, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x55, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x57, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x59, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x5b, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x5d, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x5f, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x61, 0x30, 0x99, 0x30, 0x64, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0x66, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0x68, 0x30, 0x99, - 0x30, 0x6f, 0x30, 0x99, 0x30, 0x72, 0x30, 0x99, - 0x30, 0x75, 0x30, 0x99, 0x30, 0x78, 0x30, 0x99, - 0x30, 0x7b, 0x30, 0x99, 0x30, 0x46, 0x30, 0x99, - 0x30, 0x20, 0x00, 0x99, 0x30, 0x9d, 0x30, 0x99, - 0x30, 0x88, 0x30, 0x8a, 0x30, 0xab, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xad, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x30, 0x99, - 0x30, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x30, 0x99, - 0x30, 0xc4, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0xc6, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00, - 0x00, 0xc8, 0x30, 0x99, 0x30, 0xcf, 0x30, 0x99, - 0x30, 0xd2, 0x30, 0x99, 0x30, 0xd5, 0x30, 0x99, - 0x30, 0xd8, 0x30, 0x99, 0x30, 0xdb, 0x30, 0x99, - 0x30, 0xa6, 0x30, 0x99, 0x30, 0xef, 0x30, 0x99, - 0x30, 0xfd, 0x30, 0x99, 0x30, 0xb3, 0x30, 0xc8, - 0x30, 0x00, 0x11, 0x00, 0x01, 0xaa, 0x02, 0xac, - 0xad, 0x03, 0x04, 0x05, 0xb0, 0xb1, 0xb2, 0xb3, - 0xb4, 0xb5, 0x1a, 0x06, 0x07, 0x08, 0x21, 0x09, - 0x11, 0x61, 0x11, 0x14, 0x11, 0x4c, 0x00, 0x01, - 0xb3, 0xb4, 0xb8, 0xba, 0xbf, 0xc3, 0xc5, 0x08, - 0xc9, 0xcb, 0x09, 0x0a, 0x0c, 0x0e, 0x0f, 0x13, - 0x15, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1e, 0x22, - 0x2c, 0x33, 0x38, 0xdd, 0xde, 0x43, 0x44, 0x45, - 0x70, 0x71, 0x74, 0x7d, 0x7e, 0x80, 0x8a, 0x8d, - 0x00, 0x4e, 0x8c, 0x4e, 0x09, 0x4e, 0xdb, 0x56, - 0x0a, 0x4e, 0x2d, 0x4e, 0x0b, 0x4e, 0x32, 0x75, - 0x59, 0x4e, 0x19, 0x4e, 0x01, 0x4e, 0x29, 0x59, - 0x30, 0x57, 0xba, 0x4e, 0x28, 0x00, 0x29, 0x00, - 0x00, 0x11, 0x02, 0x11, 0x03, 0x11, 0x05, 0x11, - 0x06, 0x11, 0x07, 0x11, 0x09, 0x11, 0x0b, 0x11, - 0x0c, 0x11, 0x0e, 0x11, 0x0f, 0x11, 0x10, 0x11, - 0x11, 0x11, 0x12, 0x11, 0x28, 0x00, 0x00, 0x11, - 0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x02, 0x11, - 0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x05, 0x11, - 0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x09, 0x11, - 0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0b, 0x11, - 0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0e, 0x11, - 0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0c, 0x11, - 0x6e, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0b, 0x11, - 0x69, 0x11, 0x0c, 0x11, 0x65, 0x11, 0xab, 0x11, - 0x29, 0x00, 0x28, 0x00, 0x0b, 0x11, 0x69, 0x11, - 0x12, 0x11, 0x6e, 0x11, 0x29, 0x00, 0x28, 0x00, - 0x29, 0x00, 0x00, 0x4e, 0x8c, 0x4e, 0x09, 0x4e, - 0xdb, 0x56, 0x94, 0x4e, 0x6d, 0x51, 0x03, 0x4e, - 0x6b, 0x51, 0x5d, 0x4e, 0x41, 0x53, 0x08, 0x67, - 0x6b, 0x70, 0x34, 0x6c, 0x28, 0x67, 0xd1, 0x91, - 0x1f, 0x57, 0xe5, 0x65, 0x2a, 0x68, 0x09, 0x67, - 0x3e, 0x79, 0x0d, 0x54, 0x79, 0x72, 0xa1, 0x8c, - 0x5d, 0x79, 0xb4, 0x52, 0xe3, 0x4e, 0x7c, 0x54, - 0x66, 0x5b, 0xe3, 0x76, 0x01, 0x4f, 0xc7, 0x8c, - 0x54, 0x53, 0x6d, 0x79, 0x11, 0x4f, 0xea, 0x81, - 0xf3, 0x81, 0x4f, 0x55, 0x7c, 0x5e, 0x87, 0x65, - 0x8f, 0x7b, 0x50, 0x54, 0x45, 0x32, 0x00, 0x31, - 0x00, 0x33, 0x00, 0x30, 0x00, 0x00, 0x11, 0x00, - 0x02, 0x03, 0x05, 0x06, 0x07, 0x09, 0x0b, 0x0c, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x00, 0x11, 0x00, - 0x61, 0x02, 0x61, 0x03, 0x61, 0x05, 0x61, 0x06, - 0x61, 0x07, 0x61, 0x09, 0x61, 0x0b, 0x61, 0x0c, - 0x61, 0x0e, 0x11, 0x61, 0x11, 0x00, 0x11, 0x0e, - 0x61, 0xb7, 0x00, 0x69, 0x0b, 0x11, 0x01, 0x63, - 0x00, 0x69, 0x0b, 0x11, 0x6e, 0x11, 0x00, 0x4e, - 0x8c, 0x4e, 0x09, 0x4e, 0xdb, 0x56, 0x94, 0x4e, - 0x6d, 0x51, 0x03, 0x4e, 0x6b, 0x51, 0x5d, 0x4e, - 0x41, 0x53, 0x08, 0x67, 0x6b, 0x70, 0x34, 0x6c, - 0x28, 0x67, 0xd1, 0x91, 0x1f, 0x57, 0xe5, 0x65, - 0x2a, 0x68, 0x09, 0x67, 0x3e, 0x79, 0x0d, 0x54, - 0x79, 0x72, 0xa1, 0x8c, 0x5d, 0x79, 0xb4, 0x52, - 0xd8, 0x79, 0x37, 0x75, 0x73, 0x59, 0x69, 0x90, - 0x2a, 0x51, 0x70, 0x53, 0xe8, 0x6c, 0x05, 0x98, - 0x11, 0x4f, 0x99, 0x51, 0x63, 0x6b, 0x0a, 0x4e, - 0x2d, 0x4e, 0x0b, 0x4e, 0xe6, 0x5d, 0xf3, 0x53, - 0x3b, 0x53, 0x97, 0x5b, 0x66, 0x5b, 0xe3, 0x76, - 0x01, 0x4f, 0xc7, 0x8c, 0x54, 0x53, 0x1c, 0x59, - 0x33, 0x00, 0x36, 0x00, 0x34, 0x00, 0x30, 0x00, - 0x35, 0x30, 0x31, 0x00, 0x08, 0x67, 0x31, 0x00, - 0x30, 0x00, 0x08, 0x67, 0x48, 0x67, 0x65, 0x72, - 0x67, 0x65, 0x56, 0x4c, 0x54, 0x44, 0xa2, 0x30, - 0x00, 0x02, 0x04, 0x06, 0x08, 0x09, 0x0b, 0x0d, - 0x0f, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1b, 0x1d, - 0x1f, 0x22, 0x24, 0x26, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x42, 0x44, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x50, 0xe4, - 0x4e, 0x8c, 0x54, 0xa1, 0x30, 0x01, 0x30, 0x5b, - 0x27, 0x01, 0x4a, 0x34, 0x00, 0x01, 0x52, 0x39, - 0x01, 0xa2, 0x30, 0x00, 0x5a, 0x49, 0xa4, 0x30, - 0x00, 0x27, 0x4f, 0x0c, 0xa4, 0x30, 0x00, 0x4f, - 0x1d, 0x02, 0x05, 0x4f, 0xa8, 0x30, 0x00, 0x11, - 0x07, 0x54, 0x21, 0xa8, 0x30, 0x00, 0x54, 0x03, - 0x54, 0xa4, 0x30, 0x06, 0x4f, 0x15, 0x06, 0x58, - 0x3c, 0x07, 0x00, 0x46, 0xab, 0x30, 0x00, 0x3e, - 0x18, 0x1d, 0x00, 0x42, 0x3f, 0x51, 0xac, 0x30, - 0x00, 0x41, 0x47, 0x00, 0x47, 0x32, 0xae, 0x30, - 0xac, 0x30, 0xae, 0x30, 0x00, 0x1d, 0x4e, 0xad, - 0x30, 0x00, 0x38, 0x3d, 0x4f, 0x01, 0x3e, 0x13, - 0x4f, 0xad, 0x30, 0xed, 0x30, 0xad, 0x30, 0x00, - 0x40, 0x03, 0x3c, 0x33, 0xad, 0x30, 0x00, 0x40, - 0x34, 0x4f, 0x1b, 0x3e, 0xad, 0x30, 0x00, 0x40, - 0x42, 0x16, 0x1b, 0xb0, 0x30, 0x00, 0x39, 0x30, - 0xa4, 0x30, 0x0c, 0x45, 0x3c, 0x24, 0x4f, 0x0b, - 0x47, 0x18, 0x00, 0x49, 0xaf, 0x30, 0x00, 0x3e, - 0x4d, 0x1e, 0xb1, 0x30, 0x00, 0x4b, 0x08, 0x02, - 0x3a, 0x19, 0x02, 0x4b, 0x2c, 0xa4, 0x30, 0x11, - 0x00, 0x0b, 0x47, 0xb5, 0x30, 0x00, 0x3e, 0x0c, - 0x47, 0x2b, 0xb0, 0x30, 0x07, 0x3a, 0x43, 0x00, - 0xb9, 0x30, 0x02, 0x3a, 0x08, 0x02, 0x3a, 0x0f, - 0x07, 0x43, 0x00, 0xb7, 0x30, 0x10, 0x00, 0x12, - 0x34, 0x11, 0x3c, 0x13, 0x17, 0xa4, 0x30, 0x2a, - 0x1f, 0x24, 0x2b, 0x00, 0x20, 0xbb, 0x30, 0x16, - 0x41, 0x00, 0x38, 0x0d, 0xc4, 0x30, 0x0d, 0x38, - 0x00, 0xd0, 0x30, 0x00, 0x2c, 0x1c, 0x1b, 0xa2, - 0x30, 0x32, 0x00, 0x17, 0x26, 0x49, 0xaf, 0x30, - 0x25, 0x00, 0x3c, 0xb3, 0x30, 0x21, 0x00, 0x20, - 0x38, 0xa1, 0x30, 0x34, 0x00, 0x48, 0x22, 0x28, - 0xa3, 0x30, 0x32, 0x00, 0x59, 0x25, 0xa7, 0x30, - 0x2f, 0x1c, 0x10, 0x00, 0x44, 0xd5, 0x30, 0x00, - 0x14, 0x1e, 0xaf, 0x30, 0x29, 0x00, 0x10, 0x4d, - 0x3c, 0xda, 0x30, 0xbd, 0x30, 0xb8, 0x30, 0x22, - 0x13, 0x1a, 0x20, 0x33, 0x0c, 0x22, 0x3b, 0x01, - 0x22, 0x44, 0x00, 0x21, 0x44, 0x07, 0xa4, 0x30, - 0x39, 0x00, 0x4f, 0x24, 0xc8, 0x30, 0x14, 0x23, - 0x00, 0xdb, 0x30, 0xf3, 0x30, 0xc9, 0x30, 0x14, - 0x2a, 0x00, 0x12, 0x33, 0x22, 0x12, 0x33, 0x2a, - 0xa4, 0x30, 0x3a, 0x00, 0x0b, 0x49, 0xa4, 0x30, - 0x3a, 0x00, 0x47, 0x3a, 0x1f, 0x2b, 0x3a, 0x47, - 0x0b, 0xb7, 0x30, 0x27, 0x3c, 0x00, 0x30, 0x3c, - 0xaf, 0x30, 0x30, 0x00, 0x3e, 0x44, 0xdf, 0x30, - 0xea, 0x30, 0xd0, 0x30, 0x0f, 0x1a, 0x00, 0x2c, - 0x1b, 0xe1, 0x30, 0xac, 0x30, 0xac, 0x30, 0x35, - 0x00, 0x1c, 0x47, 0x35, 0x50, 0x1c, 0x3f, 0xa2, - 0x30, 0x42, 0x5a, 0x27, 0x42, 0x5a, 0x49, 0x44, - 0x00, 0x51, 0xc3, 0x30, 0x27, 0x00, 0x05, 0x28, - 0xea, 0x30, 0xe9, 0x30, 0xd4, 0x30, 0x17, 0x00, - 0x28, 0xd6, 0x30, 0x15, 0x26, 0x00, 0x15, 0xec, - 0x30, 0xe0, 0x30, 0xb2, 0x30, 0x3a, 0x41, 0x16, - 0x00, 0x41, 0xc3, 0x30, 0x2c, 0x00, 0x05, 0x30, - 0x00, 0xb9, 0x70, 0x31, 0x00, 0x30, 0x00, 0xb9, - 0x70, 0x32, 0x00, 0x30, 0x00, 0xb9, 0x70, 0x68, - 0x50, 0x61, 0x64, 0x61, 0x41, 0x55, 0x62, 0x61, - 0x72, 0x6f, 0x56, 0x70, 0x63, 0x64, 0x6d, 0x64, - 0x00, 0x6d, 0x00, 0xb2, 0x00, 0x49, 0x00, 0x55, - 0x00, 0x73, 0x5e, 0x10, 0x62, 0x2d, 0x66, 0x8c, - 0x54, 0x27, 0x59, 0x63, 0x6b, 0x0e, 0x66, 0xbb, - 0x6c, 0x2a, 0x68, 0x0f, 0x5f, 0x1a, 0x4f, 0x3e, - 0x79, 0x70, 0x00, 0x41, 0x6e, 0x00, 0x41, 0xbc, - 0x03, 0x41, 0x6d, 0x00, 0x41, 0x6b, 0x00, 0x41, - 0x4b, 0x00, 0x42, 0x4d, 0x00, 0x42, 0x47, 0x00, - 0x42, 0x63, 0x61, 0x6c, 0x6b, 0x63, 0x61, 0x6c, - 0x70, 0x00, 0x46, 0x6e, 0x00, 0x46, 0xbc, 0x03, - 0x46, 0xbc, 0x03, 0x67, 0x6d, 0x00, 0x67, 0x6b, - 0x00, 0x67, 0x48, 0x00, 0x7a, 0x6b, 0x48, 0x7a, - 0x4d, 0x48, 0x7a, 0x47, 0x48, 0x7a, 0x54, 0x48, - 0x7a, 0xbc, 0x03, 0x13, 0x21, 0x6d, 0x00, 0x13, - 0x21, 0x64, 0x00, 0x13, 0x21, 0x6b, 0x00, 0x13, - 0x21, 0x66, 0x00, 0x6d, 0x6e, 0x00, 0x6d, 0xbc, - 0x03, 0x6d, 0x6d, 0x00, 0x6d, 0x63, 0x00, 0x6d, - 0x6b, 0x00, 0x6d, 0x63, 0x00, 0x0a, 0x0a, 0x4f, - 0x00, 0x0a, 0x4f, 0x6d, 0x00, 0xb2, 0x00, 0x63, - 0x00, 0x08, 0x0a, 0x4f, 0x0a, 0x0a, 0x50, 0x00, - 0x0a, 0x50, 0x6d, 0x00, 0xb3, 0x00, 0x6b, 0x00, - 0x6d, 0x00, 0xb3, 0x00, 0x6d, 0x00, 0x15, 0x22, - 0x73, 0x00, 0x6d, 0x00, 0x15, 0x22, 0x73, 0x00, - 0xb2, 0x00, 0x50, 0x61, 0x6b, 0x50, 0x61, 0x4d, - 0x50, 0x61, 0x47, 0x50, 0x61, 0x72, 0x61, 0x64, - 0x72, 0x61, 0x64, 0xd1, 0x73, 0x72, 0x00, 0x61, - 0x00, 0x64, 0x00, 0x15, 0x22, 0x73, 0x00, 0xb2, - 0x00, 0x70, 0x00, 0x73, 0x6e, 0x00, 0x73, 0xbc, - 0x03, 0x73, 0x6d, 0x00, 0x73, 0x70, 0x00, 0x56, - 0x6e, 0x00, 0x56, 0xbc, 0x03, 0x56, 0x6d, 0x00, - 0x56, 0x6b, 0x00, 0x56, 0x4d, 0x00, 0x56, 0x70, - 0x00, 0x57, 0x6e, 0x00, 0x57, 0xbc, 0x03, 0x57, - 0x6d, 0x00, 0x57, 0x6b, 0x00, 0x57, 0x4d, 0x00, - 0x57, 0x6b, 0x00, 0xa9, 0x03, 0x4d, 0x00, 0xa9, - 0x03, 0x61, 0x2e, 0x6d, 0x2e, 0x42, 0x71, 0x63, - 0x63, 0x63, 0x64, 0x43, 0xd1, 0x6b, 0x67, 0x43, - 0x6f, 0x2e, 0x64, 0x42, 0x47, 0x79, 0x68, 0x61, - 0x48, 0x50, 0x69, 0x6e, 0x4b, 0x4b, 0x4b, 0x4d, - 0x6b, 0x74, 0x6c, 0x6d, 0x6c, 0x6e, 0x6c, 0x6f, - 0x67, 0x6c, 0x78, 0x6d, 0x62, 0x6d, 0x69, 0x6c, - 0x6d, 0x6f, 0x6c, 0x50, 0x48, 0x70, 0x2e, 0x6d, - 0x2e, 0x50, 0x50, 0x4d, 0x50, 0x52, 0x73, 0x72, - 0x53, 0x76, 0x57, 0x62, 0x56, 0xd1, 0x6d, 0x41, - 0xd1, 0x6d, 0x31, 0x00, 0xe5, 0x65, 0x31, 0x00, - 0x30, 0x00, 0xe5, 0x65, 0x32, 0x00, 0x30, 0x00, - 0xe5, 0x65, 0x33, 0x00, 0x30, 0x00, 0xe5, 0x65, - 0x67, 0x61, 0x6c, 0x4a, 0x04, 0x4c, 0x04, 0x43, - 0x46, 0x51, 0x26, 0x01, 0x53, 0x01, 0x27, 0xa7, - 0x37, 0xab, 0x6b, 0x02, 0x52, 0xab, 0x48, 0x8c, - 0xf4, 0x66, 0xca, 0x8e, 0xc8, 0x8c, 0xd1, 0x6e, - 0x32, 0x4e, 0xe5, 0x53, 0x9c, 0x9f, 0x9c, 0x9f, - 0x51, 0x59, 0xd1, 0x91, 0x87, 0x55, 0x48, 0x59, - 0xf6, 0x61, 0x69, 0x76, 0x85, 0x7f, 0x3f, 0x86, - 0xba, 0x87, 0xf8, 0x88, 0x8f, 0x90, 0x02, 0x6a, - 0x1b, 0x6d, 0xd9, 0x70, 0xde, 0x73, 0x3d, 0x84, - 0x6a, 0x91, 0xf1, 0x99, 0x82, 0x4e, 0x75, 0x53, - 0x04, 0x6b, 0x1b, 0x72, 0x2d, 0x86, 0x1e, 0x9e, - 0x50, 0x5d, 0xeb, 0x6f, 0xcd, 0x85, 0x64, 0x89, - 0xc9, 0x62, 0xd8, 0x81, 0x1f, 0x88, 0xca, 0x5e, - 0x17, 0x67, 0x6a, 0x6d, 0xfc, 0x72, 0xce, 0x90, - 0x86, 0x4f, 0xb7, 0x51, 0xde, 0x52, 0xc4, 0x64, - 0xd3, 0x6a, 0x10, 0x72, 0xe7, 0x76, 0x01, 0x80, - 0x06, 0x86, 0x5c, 0x86, 0xef, 0x8d, 0x32, 0x97, - 0x6f, 0x9b, 0xfa, 0x9d, 0x8c, 0x78, 0x7f, 0x79, - 0xa0, 0x7d, 0xc9, 0x83, 0x04, 0x93, 0x7f, 0x9e, - 0xd6, 0x8a, 0xdf, 0x58, 0x04, 0x5f, 0x60, 0x7c, - 0x7e, 0x80, 0x62, 0x72, 0xca, 0x78, 0xc2, 0x8c, - 0xf7, 0x96, 0xd8, 0x58, 0x62, 0x5c, 0x13, 0x6a, - 0xda, 0x6d, 0x0f, 0x6f, 0x2f, 0x7d, 0x37, 0x7e, - 0x4b, 0x96, 0xd2, 0x52, 0x8b, 0x80, 0xdc, 0x51, - 0xcc, 0x51, 0x1c, 0x7a, 0xbe, 0x7d, 0xf1, 0x83, - 0x75, 0x96, 0x80, 0x8b, 0xcf, 0x62, 0x02, 0x6a, - 0xfe, 0x8a, 0x39, 0x4e, 0xe7, 0x5b, 0x12, 0x60, - 0x87, 0x73, 0x70, 0x75, 0x17, 0x53, 0xfb, 0x78, - 0xbf, 0x4f, 0xa9, 0x5f, 0x0d, 0x4e, 0xcc, 0x6c, - 0x78, 0x65, 0x22, 0x7d, 0xc3, 0x53, 0x5e, 0x58, - 0x01, 0x77, 0x49, 0x84, 0xaa, 0x8a, 0xba, 0x6b, - 0xb0, 0x8f, 0x88, 0x6c, 0xfe, 0x62, 0xe5, 0x82, - 0xa0, 0x63, 0x65, 0x75, 0xae, 0x4e, 0x69, 0x51, - 0xc9, 0x51, 0x81, 0x68, 0xe7, 0x7c, 0x6f, 0x82, - 0xd2, 0x8a, 0xcf, 0x91, 0xf5, 0x52, 0x42, 0x54, - 0x73, 0x59, 0xec, 0x5e, 0xc5, 0x65, 0xfe, 0x6f, - 0x2a, 0x79, 0xad, 0x95, 0x6a, 0x9a, 0x97, 0x9e, - 0xce, 0x9e, 0x9b, 0x52, 0xc6, 0x66, 0x77, 0x6b, - 0x62, 0x8f, 0x74, 0x5e, 0x90, 0x61, 0x00, 0x62, - 0x9a, 0x64, 0x23, 0x6f, 0x49, 0x71, 0x89, 0x74, - 0xca, 0x79, 0xf4, 0x7d, 0x6f, 0x80, 0x26, 0x8f, - 0xee, 0x84, 0x23, 0x90, 0x4a, 0x93, 0x17, 0x52, - 0xa3, 0x52, 0xbd, 0x54, 0xc8, 0x70, 0xc2, 0x88, - 0xaa, 0x8a, 0xc9, 0x5e, 0xf5, 0x5f, 0x7b, 0x63, - 0xae, 0x6b, 0x3e, 0x7c, 0x75, 0x73, 0xe4, 0x4e, - 0xf9, 0x56, 0xe7, 0x5b, 0xba, 0x5d, 0x1c, 0x60, - 0xb2, 0x73, 0x69, 0x74, 0x9a, 0x7f, 0x46, 0x80, - 0x34, 0x92, 0xf6, 0x96, 0x48, 0x97, 0x18, 0x98, - 0x8b, 0x4f, 0xae, 0x79, 0xb4, 0x91, 0xb8, 0x96, - 0xe1, 0x60, 0x86, 0x4e, 0xda, 0x50, 0xee, 0x5b, - 0x3f, 0x5c, 0x99, 0x65, 0x02, 0x6a, 0xce, 0x71, - 0x42, 0x76, 0xfc, 0x84, 0x7c, 0x90, 0x8d, 0x9f, - 0x88, 0x66, 0x2e, 0x96, 0x89, 0x52, 0x7b, 0x67, - 0xf3, 0x67, 0x41, 0x6d, 0x9c, 0x6e, 0x09, 0x74, - 0x59, 0x75, 0x6b, 0x78, 0x10, 0x7d, 0x5e, 0x98, - 0x6d, 0x51, 0x2e, 0x62, 0x78, 0x96, 0x2b, 0x50, - 0x19, 0x5d, 0xea, 0x6d, 0x2a, 0x8f, 0x8b, 0x5f, - 0x44, 0x61, 0x17, 0x68, 0x87, 0x73, 0x86, 0x96, - 0x29, 0x52, 0x0f, 0x54, 0x65, 0x5c, 0x13, 0x66, - 0x4e, 0x67, 0xa8, 0x68, 0xe5, 0x6c, 0x06, 0x74, - 0xe2, 0x75, 0x79, 0x7f, 0xcf, 0x88, 0xe1, 0x88, - 0xcc, 0x91, 0xe2, 0x96, 0x3f, 0x53, 0xba, 0x6e, - 0x1d, 0x54, 0xd0, 0x71, 0x98, 0x74, 0xfa, 0x85, - 0xa3, 0x96, 0x57, 0x9c, 0x9f, 0x9e, 0x97, 0x67, - 0xcb, 0x6d, 0xe8, 0x81, 0xcb, 0x7a, 0x20, 0x7b, - 0x92, 0x7c, 0xc0, 0x72, 0x99, 0x70, 0x58, 0x8b, - 0xc0, 0x4e, 0x36, 0x83, 0x3a, 0x52, 0x07, 0x52, - 0xa6, 0x5e, 0xd3, 0x62, 0xd6, 0x7c, 0x85, 0x5b, - 0x1e, 0x6d, 0xb4, 0x66, 0x3b, 0x8f, 0x4c, 0x88, - 0x4d, 0x96, 0x8b, 0x89, 0xd3, 0x5e, 0x40, 0x51, - 0xc0, 0x55, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x58, - 0x00, 0x00, 0x74, 0x66, 0x00, 0x00, 0x00, 0x00, - 0xde, 0x51, 0x2a, 0x73, 0xca, 0x76, 0x3c, 0x79, - 0x5e, 0x79, 0x65, 0x79, 0x8f, 0x79, 0x56, 0x97, - 0xbe, 0x7c, 0xbd, 0x7f, 0x00, 0x00, 0x12, 0x86, - 0x00, 0x00, 0xf8, 0x8a, 0x00, 0x00, 0x00, 0x00, - 0x38, 0x90, 0xfd, 0x90, 0xef, 0x98, 0xfc, 0x98, - 0x28, 0x99, 0xb4, 0x9d, 0xde, 0x90, 0xb7, 0x96, - 0xae, 0x4f, 0xe7, 0x50, 0x4d, 0x51, 0xc9, 0x52, - 0xe4, 0x52, 0x51, 0x53, 0x9d, 0x55, 0x06, 0x56, - 0x68, 0x56, 0x40, 0x58, 0xa8, 0x58, 0x64, 0x5c, - 0x6e, 0x5c, 0x94, 0x60, 0x68, 0x61, 0x8e, 0x61, - 0xf2, 0x61, 0x4f, 0x65, 0xe2, 0x65, 0x91, 0x66, - 0x85, 0x68, 0x77, 0x6d, 0x1a, 0x6e, 0x22, 0x6f, - 0x6e, 0x71, 0x2b, 0x72, 0x22, 0x74, 0x91, 0x78, - 0x3e, 0x79, 0x49, 0x79, 0x48, 0x79, 0x50, 0x79, - 0x56, 0x79, 0x5d, 0x79, 0x8d, 0x79, 0x8e, 0x79, - 0x40, 0x7a, 0x81, 0x7a, 0xc0, 0x7b, 0xf4, 0x7d, - 0x09, 0x7e, 0x41, 0x7e, 0x72, 0x7f, 0x05, 0x80, - 0xed, 0x81, 0x79, 0x82, 0x79, 0x82, 0x57, 0x84, - 0x10, 0x89, 0x96, 0x89, 0x01, 0x8b, 0x39, 0x8b, - 0xd3, 0x8c, 0x08, 0x8d, 0xb6, 0x8f, 0x38, 0x90, - 0xe3, 0x96, 0xff, 0x97, 0x3b, 0x98, 0x75, 0x60, - 0xee, 0x42, 0x18, 0x82, 0x02, 0x26, 0x4e, 0xb5, - 0x51, 0x68, 0x51, 0x80, 0x4f, 0x45, 0x51, 0x80, - 0x51, 0xc7, 0x52, 0xfa, 0x52, 0x9d, 0x55, 0x55, - 0x55, 0x99, 0x55, 0xe2, 0x55, 0x5a, 0x58, 0xb3, - 0x58, 0x44, 0x59, 0x54, 0x59, 0x62, 0x5a, 0x28, - 0x5b, 0xd2, 0x5e, 0xd9, 0x5e, 0x69, 0x5f, 0xad, - 0x5f, 0xd8, 0x60, 0x4e, 0x61, 0x08, 0x61, 0x8e, - 0x61, 0x60, 0x61, 0xf2, 0x61, 0x34, 0x62, 0xc4, - 0x63, 0x1c, 0x64, 0x52, 0x64, 0x56, 0x65, 0x74, - 0x66, 0x17, 0x67, 0x1b, 0x67, 0x56, 0x67, 0x79, - 0x6b, 0xba, 0x6b, 0x41, 0x6d, 0xdb, 0x6e, 0xcb, - 0x6e, 0x22, 0x6f, 0x1e, 0x70, 0x6e, 0x71, 0xa7, - 0x77, 0x35, 0x72, 0xaf, 0x72, 0x2a, 0x73, 0x71, - 0x74, 0x06, 0x75, 0x3b, 0x75, 0x1d, 0x76, 0x1f, - 0x76, 0xca, 0x76, 0xdb, 0x76, 0xf4, 0x76, 0x4a, - 0x77, 0x40, 0x77, 0xcc, 0x78, 0xb1, 0x7a, 0xc0, - 0x7b, 0x7b, 0x7c, 0x5b, 0x7d, 0xf4, 0x7d, 0x3e, - 0x7f, 0x05, 0x80, 0x52, 0x83, 0xef, 0x83, 0x79, - 0x87, 0x41, 0x89, 0x86, 0x89, 0x96, 0x89, 0xbf, - 0x8a, 0xf8, 0x8a, 0xcb, 0x8a, 0x01, 0x8b, 0xfe, - 0x8a, 0xed, 0x8a, 0x39, 0x8b, 0x8a, 0x8b, 0x08, - 0x8d, 0x38, 0x8f, 0x72, 0x90, 0x99, 0x91, 0x76, - 0x92, 0x7c, 0x96, 0xe3, 0x96, 0x56, 0x97, 0xdb, - 0x97, 0xff, 0x97, 0x0b, 0x98, 0x3b, 0x98, 0x12, - 0x9b, 0x9c, 0x9f, 0x4a, 0x28, 0x44, 0x28, 0xd5, - 0x33, 0x9d, 0x3b, 0x18, 0x40, 0x39, 0x40, 0x49, - 0x52, 0xd0, 0x5c, 0xd3, 0x7e, 0x43, 0x9f, 0x8e, - 0x9f, 0x2a, 0xa0, 0x02, 0x66, 0x66, 0x66, 0x69, - 0x66, 0x6c, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6c, - 0x7f, 0x01, 0x74, 0x73, 0x00, 0x74, 0x65, 0x05, - 0x0f, 0x11, 0x0f, 0x00, 0x0f, 0x06, 0x19, 0x11, - 0x0f, 0x08, 0xd9, 0x05, 0xb4, 0x05, 0x00, 0x00, - 0x00, 0x00, 0xf2, 0x05, 0xb7, 0x05, 0xd0, 0x05, - 0x12, 0x00, 0x03, 0x04, 0x0b, 0x0c, 0x0d, 0x18, - 0x1a, 0xe9, 0x05, 0xc1, 0x05, 0xe9, 0x05, 0xc2, - 0x05, 0x49, 0xfb, 0xc1, 0x05, 0x49, 0xfb, 0xc2, - 0x05, 0xd0, 0x05, 0xb7, 0x05, 0xd0, 0x05, 0xb8, - 0x05, 0xd0, 0x05, 0xbc, 0x05, 0xd8, 0x05, 0xbc, - 0x05, 0xde, 0x05, 0xbc, 0x05, 0xe0, 0x05, 0xbc, - 0x05, 0xe3, 0x05, 0xbc, 0x05, 0xb9, 0x05, 0x2d, - 0x03, 0x2e, 0x03, 0x2f, 0x03, 0x30, 0x03, 0x31, - 0x03, 0x1c, 0x00, 0x18, 0x06, 0x22, 0x06, 0x2b, - 0x06, 0xd0, 0x05, 0xdc, 0x05, 0x71, 0x06, 0x00, - 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x0d, 0x0d, 0x0d, - 0x0d, 0x0f, 0x0f, 0x0f, 0x0f, 0x09, 0x09, 0x09, - 0x09, 0x0e, 0x0e, 0x0e, 0x0e, 0x08, 0x08, 0x08, - 0x08, 0x33, 0x33, 0x33, 0x33, 0x35, 0x35, 0x35, - 0x35, 0x13, 0x13, 0x13, 0x13, 0x12, 0x12, 0x12, - 0x12, 0x15, 0x15, 0x15, 0x15, 0x16, 0x16, 0x16, - 0x16, 0x1c, 0x1c, 0x1b, 0x1b, 0x1d, 0x1d, 0x17, - 0x17, 0x27, 0x27, 0x20, 0x20, 0x38, 0x38, 0x38, - 0x38, 0x3e, 0x3e, 0x3e, 0x3e, 0x42, 0x42, 0x42, - 0x42, 0x40, 0x40, 0x40, 0x40, 0x49, 0x49, 0x4a, - 0x4a, 0x4a, 0x4a, 0x4f, 0x4f, 0x50, 0x50, 0x50, - 0x50, 0x4d, 0x4d, 0x4d, 0x4d, 0x61, 0x61, 0x62, - 0x62, 0x49, 0x06, 0x64, 0x64, 0x64, 0x64, 0x7e, - 0x7e, 0x7d, 0x7d, 0x7f, 0x7f, 0x2e, 0x82, 0x82, - 0x7c, 0x7c, 0x80, 0x80, 0x87, 0x87, 0x87, 0x87, - 0x00, 0x00, 0x26, 0x06, 0x00, 0x01, 0x00, 0x01, - 0x00, 0xaf, 0x00, 0xaf, 0x00, 0x22, 0x00, 0x22, - 0x00, 0xa1, 0x00, 0xa1, 0x00, 0xa0, 0x00, 0xa0, - 0x00, 0xa2, 0x00, 0xa2, 0x00, 0xaa, 0x00, 0xaa, - 0x00, 0xaa, 0x00, 0x23, 0x00, 0x23, 0x00, 0x23, - 0xcc, 0x06, 0x00, 0x00, 0x00, 0x00, 0x26, 0x06, - 0x00, 0x06, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x23, - 0x00, 0x24, 0x02, 0x06, 0x02, 0x07, 0x02, 0x08, - 0x02, 0x1f, 0x02, 0x23, 0x02, 0x24, 0x04, 0x06, - 0x04, 0x07, 0x04, 0x08, 0x04, 0x1f, 0x04, 0x23, - 0x04, 0x24, 0x05, 0x06, 0x05, 0x1f, 0x05, 0x23, - 0x05, 0x24, 0x06, 0x07, 0x06, 0x1f, 0x07, 0x06, - 0x07, 0x1f, 0x08, 0x06, 0x08, 0x07, 0x08, 0x1f, - 0x0d, 0x06, 0x0d, 0x07, 0x0d, 0x08, 0x0d, 0x1f, - 0x0f, 0x07, 0x0f, 0x1f, 0x10, 0x06, 0x10, 0x07, - 0x10, 0x08, 0x10, 0x1f, 0x11, 0x07, 0x11, 0x1f, - 0x12, 0x1f, 0x13, 0x06, 0x13, 0x1f, 0x14, 0x06, - 0x14, 0x1f, 0x1b, 0x06, 0x1b, 0x07, 0x1b, 0x08, - 0x1b, 0x1f, 0x1b, 0x23, 0x1b, 0x24, 0x1c, 0x07, - 0x1c, 0x1f, 0x1c, 0x23, 0x1c, 0x24, 0x1d, 0x01, - 0x1d, 0x06, 0x1d, 0x07, 0x1d, 0x08, 0x1d, 0x1e, - 0x1d, 0x1f, 0x1d, 0x23, 0x1d, 0x24, 0x1e, 0x06, - 0x1e, 0x07, 0x1e, 0x08, 0x1e, 0x1f, 0x1e, 0x23, - 0x1e, 0x24, 0x1f, 0x06, 0x1f, 0x07, 0x1f, 0x08, - 0x1f, 0x1f, 0x1f, 0x23, 0x1f, 0x24, 0x20, 0x06, - 0x20, 0x07, 0x20, 0x08, 0x20, 0x1f, 0x20, 0x23, - 0x20, 0x24, 0x21, 0x06, 0x21, 0x1f, 0x21, 0x23, - 0x21, 0x24, 0x24, 0x06, 0x24, 0x07, 0x24, 0x08, - 0x24, 0x1f, 0x24, 0x23, 0x24, 0x24, 0x0a, 0x4a, - 0x0b, 0x4a, 0x23, 0x4a, 0x20, 0x00, 0x4c, 0x06, - 0x51, 0x06, 0x51, 0x06, 0xff, 0x00, 0x1f, 0x26, - 0x06, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x1f, 0x00, - 0x20, 0x00, 0x23, 0x00, 0x24, 0x02, 0x0b, 0x02, - 0x0c, 0x02, 0x1f, 0x02, 0x20, 0x02, 0x23, 0x02, - 0x24, 0x04, 0x0b, 0x04, 0x0c, 0x04, 0x1f, 0x26, - 0x06, 0x04, 0x20, 0x04, 0x23, 0x04, 0x24, 0x05, - 0x0b, 0x05, 0x0c, 0x05, 0x1f, 0x05, 0x20, 0x05, - 0x23, 0x05, 0x24, 0x1b, 0x23, 0x1b, 0x24, 0x1c, - 0x23, 0x1c, 0x24, 0x1d, 0x01, 0x1d, 0x1e, 0x1d, - 0x1f, 0x1d, 0x23, 0x1d, 0x24, 0x1e, 0x1f, 0x1e, - 0x23, 0x1e, 0x24, 0x1f, 0x01, 0x1f, 0x1f, 0x20, - 0x0b, 0x20, 0x0c, 0x20, 0x1f, 0x20, 0x20, 0x20, - 0x23, 0x20, 0x24, 0x23, 0x4a, 0x24, 0x0b, 0x24, - 0x0c, 0x24, 0x1f, 0x24, 0x20, 0x24, 0x23, 0x24, - 0x24, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, - 0x1f, 0x00, 0x21, 0x02, 0x06, 0x02, 0x07, 0x02, - 0x08, 0x02, 0x1f, 0x02, 0x21, 0x04, 0x06, 0x04, - 0x07, 0x04, 0x08, 0x04, 0x1f, 0x04, 0x21, 0x05, - 0x1f, 0x06, 0x07, 0x06, 0x1f, 0x07, 0x06, 0x07, - 0x1f, 0x08, 0x06, 0x08, 0x1f, 0x0d, 0x06, 0x0d, - 0x07, 0x0d, 0x08, 0x0d, 0x1f, 0x0f, 0x07, 0x0f, - 0x08, 0x0f, 0x1f, 0x10, 0x06, 0x10, 0x07, 0x10, - 0x08, 0x10, 0x1f, 0x11, 0x07, 0x12, 0x1f, 0x13, - 0x06, 0x13, 0x1f, 0x14, 0x06, 0x14, 0x1f, 0x1b, - 0x06, 0x1b, 0x07, 0x1b, 0x08, 0x1b, 0x1f, 0x1c, - 0x07, 0x1c, 0x1f, 0x1d, 0x06, 0x1d, 0x07, 0x1d, - 0x08, 0x1d, 0x1e, 0x1d, 0x1f, 0x1e, 0x06, 0x1e, - 0x07, 0x1e, 0x08, 0x1e, 0x1f, 0x1e, 0x21, 0x1f, - 0x06, 0x1f, 0x07, 0x1f, 0x08, 0x1f, 0x1f, 0x20, - 0x06, 0x20, 0x07, 0x20, 0x08, 0x20, 0x1f, 0x20, - 0x21, 0x21, 0x06, 0x21, 0x1f, 0x21, 0x4a, 0x24, - 0x06, 0x24, 0x07, 0x24, 0x08, 0x24, 0x1f, 0x24, - 0x21, 0x00, 0x1f, 0x00, 0x21, 0x02, 0x1f, 0x02, - 0x21, 0x04, 0x1f, 0x04, 0x21, 0x05, 0x1f, 0x05, - 0x21, 0x0d, 0x1f, 0x0d, 0x21, 0x0e, 0x1f, 0x0e, - 0x21, 0x1d, 0x1e, 0x1d, 0x1f, 0x1e, 0x1f, 0x20, - 0x1f, 0x20, 0x21, 0x24, 0x1f, 0x24, 0x21, 0x40, - 0x06, 0x4e, 0x06, 0x51, 0x06, 0x27, 0x06, 0x10, - 0x22, 0x10, 0x23, 0x12, 0x22, 0x12, 0x23, 0x13, - 0x22, 0x13, 0x23, 0x0c, 0x22, 0x0c, 0x23, 0x0d, - 0x22, 0x0d, 0x23, 0x06, 0x22, 0x06, 0x23, 0x05, - 0x22, 0x05, 0x23, 0x07, 0x22, 0x07, 0x23, 0x0e, - 0x22, 0x0e, 0x23, 0x0f, 0x22, 0x0f, 0x23, 0x0d, - 0x05, 0x0d, 0x06, 0x0d, 0x07, 0x0d, 0x1e, 0x0d, - 0x0a, 0x0c, 0x0a, 0x0e, 0x0a, 0x0f, 0x0a, 0x10, - 0x22, 0x10, 0x23, 0x12, 0x22, 0x12, 0x23, 0x13, - 0x22, 0x13, 0x23, 0x0c, 0x22, 0x0c, 0x23, 0x0d, - 0x22, 0x0d, 0x23, 0x06, 0x22, 0x06, 0x23, 0x05, - 0x22, 0x05, 0x23, 0x07, 0x22, 0x07, 0x23, 0x0e, - 0x22, 0x0e, 0x23, 0x0f, 0x22, 0x0f, 0x23, 0x0d, - 0x05, 0x0d, 0x06, 0x0d, 0x07, 0x0d, 0x1e, 0x0d, - 0x0a, 0x0c, 0x0a, 0x0e, 0x0a, 0x0f, 0x0a, 0x0d, - 0x05, 0x0d, 0x06, 0x0d, 0x07, 0x0d, 0x1e, 0x0c, - 0x20, 0x0d, 0x20, 0x10, 0x1e, 0x0c, 0x05, 0x0c, - 0x06, 0x0c, 0x07, 0x0d, 0x05, 0x0d, 0x06, 0x0d, - 0x07, 0x10, 0x1e, 0x11, 0x1e, 0x00, 0x24, 0x00, - 0x24, 0x2a, 0x06, 0x00, 0x02, 0x1b, 0x00, 0x03, - 0x02, 0x00, 0x03, 0x02, 0x00, 0x03, 0x1b, 0x00, - 0x04, 0x1b, 0x00, 0x1b, 0x02, 0x00, 0x1b, 0x03, - 0x00, 0x1b, 0x04, 0x02, 0x1b, 0x03, 0x02, 0x1b, - 0x03, 0x03, 0x1b, 0x20, 0x03, 0x1b, 0x1f, 0x09, - 0x03, 0x02, 0x09, 0x02, 0x03, 0x09, 0x02, 0x1f, - 0x09, 0x1b, 0x03, 0x09, 0x1b, 0x03, 0x09, 0x1b, - 0x02, 0x09, 0x1b, 0x1b, 0x09, 0x1b, 0x1b, 0x0b, - 0x03, 0x03, 0x0b, 0x03, 0x03, 0x0b, 0x1b, 0x1b, - 0x0a, 0x03, 0x1b, 0x0a, 0x03, 0x1b, 0x0a, 0x02, - 0x20, 0x0a, 0x1b, 0x04, 0x0a, 0x1b, 0x04, 0x0a, - 0x1b, 0x1b, 0x0a, 0x1b, 0x1b, 0x0c, 0x03, 0x1f, - 0x0c, 0x04, 0x1b, 0x0c, 0x04, 0x1b, 0x0d, 0x1b, - 0x03, 0x0d, 0x1b, 0x03, 0x0d, 0x1b, 0x1b, 0x0d, - 0x1b, 0x20, 0x0f, 0x02, 0x1b, 0x0f, 0x1b, 0x1b, - 0x0f, 0x1b, 0x1b, 0x0f, 0x1b, 0x1f, 0x10, 0x1b, - 0x1b, 0x10, 0x1b, 0x20, 0x10, 0x1b, 0x1f, 0x17, - 0x04, 0x1b, 0x17, 0x04, 0x1b, 0x18, 0x1b, 0x03, - 0x18, 0x1b, 0x1b, 0x1a, 0x03, 0x1b, 0x1a, 0x03, - 0x20, 0x1a, 0x03, 0x1f, 0x1a, 0x02, 0x02, 0x1a, - 0x02, 0x02, 0x1a, 0x04, 0x1b, 0x1a, 0x04, 0x1b, - 0x1a, 0x1b, 0x03, 0x1a, 0x1b, 0x03, 0x1b, 0x03, - 0x02, 0x1b, 0x03, 0x1b, 0x1b, 0x03, 0x20, 0x1b, - 0x02, 0x03, 0x1b, 0x02, 0x1b, 0x1b, 0x04, 0x02, - 0x1b, 0x04, 0x1b, 0x28, 0x06, 0x1d, 0x04, 0x06, - 0x1f, 0x1d, 0x04, 0x1f, 0x1d, 0x1d, 0x1e, 0x05, - 0x1d, 0x1e, 0x05, 0x21, 0x1e, 0x04, 0x1d, 0x1e, - 0x04, 0x1d, 0x1e, 0x04, 0x21, 0x1e, 0x1d, 0x22, - 0x1e, 0x1d, 0x21, 0x22, 0x1d, 0x1d, 0x22, 0x1d, - 0x1d, 0x00, 0x06, 0x22, 0x02, 0x04, 0x22, 0x02, - 0x04, 0x21, 0x02, 0x06, 0x22, 0x02, 0x06, 0x21, - 0x02, 0x1d, 0x22, 0x02, 0x1d, 0x21, 0x04, 0x1d, - 0x22, 0x04, 0x05, 0x21, 0x04, 0x1d, 0x21, 0x0b, - 0x06, 0x21, 0x0d, 0x05, 0x22, 0x0c, 0x05, 0x22, - 0x0e, 0x05, 0x22, 0x1c, 0x04, 0x22, 0x1c, 0x1d, - 0x22, 0x22, 0x05, 0x22, 0x22, 0x04, 0x22, 0x22, - 0x1d, 0x22, 0x1d, 0x1d, 0x22, 0x1a, 0x1d, 0x22, - 0x1e, 0x05, 0x22, 0x1a, 0x1d, 0x05, 0x1c, 0x05, - 0x1d, 0x11, 0x1d, 0x22, 0x1b, 0x1d, 0x22, 0x1e, - 0x04, 0x05, 0x1d, 0x06, 0x22, 0x1c, 0x04, 0x1d, - 0x1b, 0x1d, 0x1d, 0x1c, 0x04, 0x1d, 0x1e, 0x04, - 0x05, 0x04, 0x05, 0x22, 0x05, 0x04, 0x22, 0x1d, - 0x04, 0x22, 0x19, 0x1d, 0x22, 0x00, 0x05, 0x22, - 0x1b, 0x1d, 0x1d, 0x11, 0x04, 0x1d, 0x0d, 0x1d, - 0x1d, 0x0b, 0x06, 0x22, 0x1e, 0x04, 0x22, 0x35, - 0x06, 0x00, 0x0f, 0x9d, 0x0d, 0x0f, 0x9d, 0x27, - 0x06, 0x00, 0x1d, 0x1d, 0x20, 0x00, 0x1c, 0x01, - 0x0a, 0x1e, 0x06, 0x1e, 0x08, 0x0e, 0x1d, 0x12, - 0x1e, 0x0a, 0x0c, 0x21, 0x1d, 0x12, 0x1d, 0x23, - 0x20, 0x21, 0x0c, 0x1d, 0x1e, 0x35, 0x06, 0x00, - 0x0f, 0x14, 0x27, 0x06, 0x0e, 0x1d, 0x22, 0xff, - 0x00, 0x1d, 0x1d, 0x20, 0xff, 0x12, 0x1d, 0x23, - 0x20, 0xff, 0x21, 0x0c, 0x1d, 0x1e, 0x27, 0x06, - 0x05, 0x1d, 0xff, 0x05, 0x1d, 0x00, 0x1d, 0x20, - 0x27, 0x06, 0x0a, 0xa5, 0x00, 0x1d, 0x2c, 0x00, - 0x01, 0x30, 0x02, 0x30, 0x3a, 0x00, 0x3b, 0x00, - 0x21, 0x00, 0x3f, 0x00, 0x16, 0x30, 0x17, 0x30, - 0x26, 0x20, 0x13, 0x20, 0x12, 0x01, 0x00, 0x5f, - 0x5f, 0x28, 0x29, 0x7b, 0x7d, 0x08, 0x30, 0x0c, - 0x0d, 0x08, 0x09, 0x02, 0x03, 0x00, 0x01, 0x04, - 0x05, 0x06, 0x07, 0x5b, 0x00, 0x5d, 0x00, 0x3e, - 0x20, 0x3e, 0x20, 0x3e, 0x20, 0x3e, 0x20, 0x5f, - 0x00, 0x5f, 0x00, 0x5f, 0x00, 0x2c, 0x00, 0x01, - 0x30, 0x2e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x3a, - 0x00, 0x3f, 0x00, 0x21, 0x00, 0x14, 0x20, 0x28, - 0x00, 0x29, 0x00, 0x7b, 0x00, 0x7d, 0x00, 0x14, - 0x30, 0x15, 0x30, 0x23, 0x26, 0x2a, 0x2b, 0x2d, - 0x3c, 0x3e, 0x3d, 0x00, 0x5c, 0x24, 0x25, 0x40, - 0x40, 0x06, 0xff, 0x0b, 0x00, 0x0b, 0xff, 0x0c, - 0x20, 0x00, 0x4d, 0x06, 0x40, 0x06, 0xff, 0x0e, - 0x00, 0x0e, 0xff, 0x0f, 0x00, 0x0f, 0xff, 0x10, - 0x00, 0x10, 0xff, 0x11, 0x00, 0x11, 0xff, 0x12, - 0x00, 0x12, 0x21, 0x06, 0x00, 0x01, 0x01, 0x02, - 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x05, - 0x05, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x08, - 0x08, 0x09, 0x09, 0x09, 0x09, 0x0a, 0x0a, 0x0a, - 0x0a, 0x0b, 0x0b, 0x0b, 0x0b, 0x0c, 0x0c, 0x0c, - 0x0c, 0x0d, 0x0d, 0x0d, 0x0d, 0x0e, 0x0e, 0x0f, - 0x0f, 0x10, 0x10, 0x11, 0x11, 0x12, 0x12, 0x12, - 0x12, 0x13, 0x13, 0x13, 0x13, 0x14, 0x14, 0x14, - 0x14, 0x15, 0x15, 0x15, 0x15, 0x16, 0x16, 0x16, - 0x16, 0x17, 0x17, 0x17, 0x17, 0x18, 0x18, 0x18, - 0x18, 0x19, 0x19, 0x19, 0x19, 0x20, 0x20, 0x20, - 0x20, 0x21, 0x21, 0x21, 0x21, 0x22, 0x22, 0x22, - 0x22, 0x23, 0x23, 0x23, 0x23, 0x24, 0x24, 0x24, - 0x24, 0x25, 0x25, 0x25, 0x25, 0x26, 0x26, 0x26, - 0x26, 0x27, 0x27, 0x28, 0x28, 0x29, 0x29, 0x29, - 0x29, 0x22, 0x06, 0x22, 0x00, 0x22, 0x00, 0x22, - 0x01, 0x22, 0x01, 0x22, 0x03, 0x22, 0x03, 0x22, - 0x05, 0x22, 0x05, 0x21, 0x00, 0x85, 0x29, 0x01, - 0x30, 0x01, 0x0b, 0x0c, 0x00, 0xfa, 0xf1, 0xa0, - 0xa2, 0xa4, 0xa6, 0xa8, 0xe2, 0xe4, 0xe6, 0xc2, - 0xfb, 0xa1, 0xa3, 0xa5, 0xa7, 0xa9, 0xaa, 0xac, - 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, - 0xbe, 0xc0, 0xc3, 0xc5, 0xc7, 0xc9, 0xca, 0xcb, - 0xcc, 0xcd, 0xce, 0xd1, 0xd4, 0xd7, 0xda, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe3, 0xe5, 0xe7, 0xe8, - 0xe9, 0xea, 0xeb, 0xec, 0xee, 0xf2, 0x98, 0x99, - 0x31, 0x31, 0x4f, 0x31, 0x55, 0x31, 0x5b, 0x31, - 0x61, 0x31, 0xa2, 0x00, 0xa3, 0x00, 0xac, 0x00, - 0xaf, 0x00, 0xa6, 0x00, 0xa5, 0x00, 0xa9, 0x20, - 0x00, 0x00, 0x02, 0x25, 0x90, 0x21, 0x91, 0x21, - 0x92, 0x21, 0x93, 0x21, 0xa0, 0x25, 0xcb, 0x25, - 0xd2, 0x05, 0x07, 0x03, 0x01, 0xda, 0x05, 0x07, - 0x03, 0x01, 0xd0, 0x02, 0xd1, 0x02, 0xe6, 0x00, - 0x99, 0x02, 0x53, 0x02, 0x00, 0x00, 0xa3, 0x02, - 0x66, 0xab, 0xa5, 0x02, 0xa4, 0x02, 0x56, 0x02, - 0x57, 0x02, 0x91, 0x1d, 0x58, 0x02, 0x5e, 0x02, - 0xa9, 0x02, 0x64, 0x02, 0x62, 0x02, 0x60, 0x02, - 0x9b, 0x02, 0x27, 0x01, 0x9c, 0x02, 0x67, 0x02, - 0x84, 0x02, 0xaa, 0x02, 0xab, 0x02, 0x6c, 0x02, - 0x04, 0xdf, 0x8e, 0xa7, 0x6e, 0x02, 0x05, 0xdf, - 0x8e, 0x02, 0x06, 0xdf, 0xf8, 0x00, 0x76, 0x02, - 0x77, 0x02, 0x71, 0x00, 0x7a, 0x02, 0x08, 0xdf, - 0x7d, 0x02, 0x7e, 0x02, 0x80, 0x02, 0xa8, 0x02, - 0xa6, 0x02, 0x67, 0xab, 0xa7, 0x02, 0x88, 0x02, - 0x71, 0x2c, 0x00, 0x00, 0x8f, 0x02, 0xa1, 0x02, - 0xa2, 0x02, 0x98, 0x02, 0xc0, 0x01, 0xc1, 0x01, - 0xc2, 0x01, 0x0a, 0xdf, 0x1e, 0xdf, 0x41, 0x04, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x99, 0x10, - 0xba, 0x10, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x10, - 0xba, 0x10, 0x05, 0x05, 0xa5, 0x10, 0xba, 0x10, - 0x05, 0x31, 0x11, 0x27, 0x11, 0x32, 0x11, 0x27, - 0x11, 0x55, 0x47, 0x13, 0x3e, 0x13, 0x47, 0x13, - 0x57, 0x13, 0x55, 0x82, 0x13, 0xc9, 0x13, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x13, 0xbb, 0x13, 0x05, - 0x05, 0x8b, 0x13, 0xc2, 0x13, 0x05, 0x90, 0x13, - 0xc9, 0x13, 0x05, 0xc2, 0x13, 0xc2, 0x13, 0x00, - 0x00, 0x00, 0x00, 0xc2, 0x13, 0xb8, 0x13, 0xc2, - 0x13, 0xc9, 0x13, 0x05, 0x55, 0xb9, 0x14, 0xba, - 0x14, 0xb9, 0x14, 0xb0, 0x14, 0x00, 0x00, 0x00, - 0x00, 0xb9, 0x14, 0xbd, 0x14, 0x55, 0x50, 0xb8, - 0x15, 0xaf, 0x15, 0xb9, 0x15, 0xaf, 0x15, 0x55, - 0x35, 0x19, 0x30, 0x19, 0x05, 0x1e, 0x61, 0x1e, - 0x61, 0x1e, 0x61, 0x29, 0x61, 0x1e, 0x61, 0x1f, - 0x61, 0x29, 0x61, 0x1f, 0x61, 0x1e, 0x61, 0x20, - 0x61, 0x21, 0x61, 0x1f, 0x61, 0x22, 0x61, 0x1f, - 0x61, 0x21, 0x61, 0x20, 0x61, 0x55, 0x55, 0x55, - 0x55, 0x67, 0x6d, 0x67, 0x6d, 0x63, 0x6d, 0x67, - 0x6d, 0x69, 0x6d, 0x67, 0x6d, 0x55, 0x05, 0x41, - 0x00, 0x30, 0x00, 0x57, 0xd1, 0x65, 0xd1, 0x58, - 0xd1, 0x65, 0xd1, 0x5f, 0xd1, 0x6e, 0xd1, 0x5f, - 0xd1, 0x6f, 0xd1, 0x5f, 0xd1, 0x70, 0xd1, 0x5f, - 0xd1, 0x71, 0xd1, 0x5f, 0xd1, 0x72, 0xd1, 0x55, - 0x55, 0x55, 0x05, 0xb9, 0xd1, 0x65, 0xd1, 0xba, - 0xd1, 0x65, 0xd1, 0xbb, 0xd1, 0x6e, 0xd1, 0xbc, - 0xd1, 0x6e, 0xd1, 0xbb, 0xd1, 0x6f, 0xd1, 0xbc, - 0xd1, 0x6f, 0xd1, 0x55, 0x55, 0x55, 0x41, 0x00, - 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, 0x69, 0x00, - 0x41, 0x00, 0x61, 0x00, 0x41, 0x00, 0x43, 0x44, - 0x00, 0x00, 0x47, 0x00, 0x00, 0x4a, 0x4b, 0x00, - 0x00, 0x4e, 0x4f, 0x50, 0x51, 0x00, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, - 0x63, 0x64, 0x00, 0x66, 0x68, 0x00, 0x70, 0x00, - 0x41, 0x00, 0x61, 0x00, 0x41, 0x42, 0x00, 0x44, - 0x45, 0x46, 0x47, 0x4a, 0x00, 0x53, 0x00, 0x61, - 0x00, 0x41, 0x42, 0x00, 0x44, 0x45, 0x46, 0x47, - 0x00, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x00, 0x4f, - 0x53, 0x00, 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, - 0x41, 0x00, 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, - 0x41, 0x00, 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, - 0x41, 0x00, 0x61, 0x00, 0x31, 0x01, 0x37, 0x02, - 0x91, 0x03, 0xa3, 0x03, 0xb1, 0x03, 0xd1, 0x03, - 0x24, 0x00, 0x1f, 0x04, 0x20, 0x05, 0x91, 0x03, - 0xa3, 0x03, 0xb1, 0x03, 0xd1, 0x03, 0x24, 0x00, - 0x1f, 0x04, 0x20, 0x05, 0x91, 0x03, 0xa3, 0x03, - 0xb1, 0x03, 0xd1, 0x03, 0x24, 0x00, 0x1f, 0x04, - 0x20, 0x05, 0x91, 0x03, 0xa3, 0x03, 0xb1, 0x03, - 0xd1, 0x03, 0x24, 0x00, 0x1f, 0x04, 0x20, 0x05, - 0x91, 0x03, 0xa3, 0x03, 0xb1, 0x03, 0xd1, 0x03, - 0x24, 0x00, 0x1f, 0x04, 0x20, 0x05, 0x0b, 0x0c, - 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, - 0x30, 0x00, 0x30, 0x04, 0x3a, 0x04, 0x3e, 0x04, - 0x4b, 0x04, 0x4d, 0x04, 0x4e, 0x04, 0x89, 0xa6, - 0x30, 0x04, 0xa9, 0x26, 0x28, 0xb9, 0x7f, 0x9f, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x0a, 0x0b, 0x0e, 0x0f, 0x11, 0x13, 0x14, - 0x15, 0x16, 0x17, 0x18, 0x1a, 0x1b, 0x61, 0x26, - 0x25, 0x2f, 0x7b, 0x51, 0xa6, 0xb1, 0x04, 0x27, - 0x06, 0x00, 0x01, 0x05, 0x08, 0x2a, 0x06, 0x1e, - 0x08, 0x03, 0x0d, 0x20, 0x19, 0x1a, 0x1b, 0x1c, - 0x09, 0x0f, 0x17, 0x0b, 0x18, 0x07, 0x0a, 0x00, - 0x01, 0x04, 0x06, 0x0c, 0x0e, 0x10, 0x44, 0x90, - 0x77, 0x45, 0x28, 0x06, 0x2c, 0x06, 0x00, 0x00, - 0x47, 0x06, 0x33, 0x06, 0x17, 0x10, 0x11, 0x12, - 0x13, 0x00, 0x06, 0x0e, 0x02, 0x0f, 0x34, 0x06, - 0x2a, 0x06, 0x2b, 0x06, 0x2e, 0x06, 0x00, 0x00, - 0x36, 0x06, 0x00, 0x00, 0x3a, 0x06, 0x2d, 0x06, - 0x00, 0x00, 0x4a, 0x06, 0x00, 0x00, 0x44, 0x06, - 0x00, 0x00, 0x46, 0x06, 0x33, 0x06, 0x39, 0x06, - 0x00, 0x00, 0x35, 0x06, 0x42, 0x06, 0x00, 0x00, - 0x34, 0x06, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x06, - 0x00, 0x00, 0x36, 0x06, 0x00, 0x00, 0x3a, 0x06, - 0x00, 0x00, 0xba, 0x06, 0x00, 0x00, 0x6f, 0x06, - 0x00, 0x00, 0x28, 0x06, 0x2c, 0x06, 0x00, 0x00, - 0x47, 0x06, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x06, - 0x37, 0x06, 0x4a, 0x06, 0x43, 0x06, 0x00, 0x00, - 0x45, 0x06, 0x46, 0x06, 0x33, 0x06, 0x39, 0x06, - 0x41, 0x06, 0x35, 0x06, 0x42, 0x06, 0x00, 0x00, - 0x34, 0x06, 0x2a, 0x06, 0x2b, 0x06, 0x2e, 0x06, - 0x00, 0x00, 0x36, 0x06, 0x38, 0x06, 0x3a, 0x06, - 0x6e, 0x06, 0x00, 0x00, 0xa1, 0x06, 0x27, 0x06, - 0x00, 0x01, 0x05, 0x08, 0x20, 0x21, 0x0b, 0x06, - 0x10, 0x23, 0x2a, 0x06, 0x1a, 0x1b, 0x1c, 0x09, - 0x0f, 0x17, 0x0b, 0x18, 0x07, 0x0a, 0x00, 0x01, - 0x04, 0x06, 0x0c, 0x0e, 0x10, 0x28, 0x06, 0x2c, - 0x06, 0x2f, 0x06, 0x00, 0x00, 0x48, 0x06, 0x32, - 0x06, 0x2d, 0x06, 0x37, 0x06, 0x4a, 0x06, 0x2a, - 0x06, 0x1a, 0x1b, 0x1c, 0x09, 0x0f, 0x17, 0x0b, - 0x18, 0x07, 0x0a, 0x00, 0x01, 0x04, 0x06, 0x0c, - 0x0e, 0x10, 0x30, 0x2e, 0x30, 0x00, 0x2c, 0x00, - 0x28, 0x00, 0x41, 0x00, 0x29, 0x00, 0x14, 0x30, - 0x53, 0x00, 0x15, 0x30, 0x43, 0x52, 0x43, 0x44, - 0x57, 0x5a, 0x41, 0x00, 0x48, 0x56, 0x4d, 0x56, - 0x53, 0x44, 0x53, 0x53, 0x50, 0x50, 0x56, 0x57, - 0x43, 0x4d, 0x43, 0x4d, 0x44, 0x4d, 0x52, 0x44, - 0x4a, 0x4b, 0x30, 0x30, 0x00, 0x68, 0x68, 0x4b, - 0x62, 0x57, 0x5b, 0xcc, 0x53, 0xc7, 0x30, 0x8c, - 0x4e, 0x1a, 0x59, 0xe3, 0x89, 0x29, 0x59, 0xa4, - 0x4e, 0x20, 0x66, 0x21, 0x71, 0x99, 0x65, 0x4d, - 0x52, 0x8c, 0x5f, 0x8d, 0x51, 0xb0, 0x65, 0x1d, - 0x52, 0x42, 0x7d, 0x1f, 0x75, 0xa9, 0x8c, 0xf0, - 0x58, 0x39, 0x54, 0x14, 0x6f, 0x95, 0x62, 0x55, - 0x63, 0x00, 0x4e, 0x09, 0x4e, 0x4a, 0x90, 0xe6, - 0x5d, 0x2d, 0x4e, 0xf3, 0x53, 0x07, 0x63, 0x70, - 0x8d, 0x53, 0x62, 0x81, 0x79, 0x7a, 0x7a, 0x08, - 0x54, 0x80, 0x6e, 0x09, 0x67, 0x08, 0x67, 0x33, - 0x75, 0x72, 0x52, 0xb6, 0x55, 0x4d, 0x91, 0x14, - 0x30, 0x15, 0x30, 0x2c, 0x67, 0x09, 0x4e, 0x8c, - 0x4e, 0x89, 0x5b, 0xb9, 0x70, 0x53, 0x62, 0xd7, - 0x76, 0xdd, 0x52, 0x57, 0x65, 0x97, 0x5f, 0xef, - 0x53, 0x30, 0x00, 0x38, 0x4e, 0x05, 0x00, 0x09, - 0x22, 0x01, 0x60, 0x4f, 0xae, 0x4f, 0xbb, 0x4f, - 0x02, 0x50, 0x7a, 0x50, 0x99, 0x50, 0xe7, 0x50, - 0xcf, 0x50, 0x9e, 0x34, 0x3a, 0x06, 0x4d, 0x51, - 0x54, 0x51, 0x64, 0x51, 0x77, 0x51, 0x1c, 0x05, - 0xb9, 0x34, 0x67, 0x51, 0x8d, 0x51, 0x4b, 0x05, - 0x97, 0x51, 0xa4, 0x51, 0xcc, 0x4e, 0xac, 0x51, - 0xb5, 0x51, 0xdf, 0x91, 0xf5, 0x51, 0x03, 0x52, - 0xdf, 0x34, 0x3b, 0x52, 0x46, 0x52, 0x72, 0x52, - 0x77, 0x52, 0x15, 0x35, 0x02, 0x00, 0x20, 0x80, - 0x80, 0x00, 0x08, 0x00, 0x00, 0xc7, 0x52, 0x00, - 0x02, 0x1d, 0x33, 0x3e, 0x3f, 0x50, 0x82, 0x8a, - 0x93, 0xac, 0xb6, 0xb8, 0xb8, 0xb8, 0x2c, 0x0a, - 0x70, 0x70, 0xca, 0x53, 0xdf, 0x53, 0x63, 0x0b, - 0xeb, 0x53, 0xf1, 0x53, 0x06, 0x54, 0x9e, 0x54, - 0x38, 0x54, 0x48, 0x54, 0x68, 0x54, 0xa2, 0x54, - 0xf6, 0x54, 0x10, 0x55, 0x53, 0x55, 0x63, 0x55, - 0x84, 0x55, 0x84, 0x55, 0x99, 0x55, 0xab, 0x55, - 0xb3, 0x55, 0xc2, 0x55, 0x16, 0x57, 0x06, 0x56, - 0x17, 0x57, 0x51, 0x56, 0x74, 0x56, 0x07, 0x52, - 0xee, 0x58, 0xce, 0x57, 0xf4, 0x57, 0x0d, 0x58, - 0x8b, 0x57, 0x32, 0x58, 0x31, 0x58, 0xac, 0x58, - 0xe4, 0x14, 0xf2, 0x58, 0xf7, 0x58, 0x06, 0x59, - 0x1a, 0x59, 0x22, 0x59, 0x62, 0x59, 0xa8, 0x16, - 0xea, 0x16, 0xec, 0x59, 0x1b, 0x5a, 0x27, 0x5a, - 0xd8, 0x59, 0x66, 0x5a, 0xee, 0x36, 0xfc, 0x36, - 0x08, 0x5b, 0x3e, 0x5b, 0x3e, 0x5b, 0xc8, 0x19, - 0xc3, 0x5b, 0xd8, 0x5b, 0xe7, 0x5b, 0xf3, 0x5b, - 0x18, 0x1b, 0xff, 0x5b, 0x06, 0x5c, 0x53, 0x5f, - 0x22, 0x5c, 0x81, 0x37, 0x60, 0x5c, 0x6e, 0x5c, - 0xc0, 0x5c, 0x8d, 0x5c, 0xe4, 0x1d, 0x43, 0x5d, - 0xe6, 0x1d, 0x6e, 0x5d, 0x6b, 0x5d, 0x7c, 0x5d, - 0xe1, 0x5d, 0xe2, 0x5d, 0x2f, 0x38, 0xfd, 0x5d, - 0x28, 0x5e, 0x3d, 0x5e, 0x69, 0x5e, 0x62, 0x38, - 0x83, 0x21, 0x7c, 0x38, 0xb0, 0x5e, 0xb3, 0x5e, - 0xb6, 0x5e, 0xca, 0x5e, 0x92, 0xa3, 0xfe, 0x5e, - 0x31, 0x23, 0x31, 0x23, 0x01, 0x82, 0x22, 0x5f, - 0x22, 0x5f, 0xc7, 0x38, 0xb8, 0x32, 0xda, 0x61, - 0x62, 0x5f, 0x6b, 0x5f, 0xe3, 0x38, 0x9a, 0x5f, - 0xcd, 0x5f, 0xd7, 0x5f, 0xf9, 0x5f, 0x81, 0x60, - 0x3a, 0x39, 0x1c, 0x39, 0x94, 0x60, 0xd4, 0x26, - 0xc7, 0x60, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x00, - 0x02, 0x08, 0x00, 0x80, 0x08, 0x00, 0x00, 0x08, - 0x80, 0x28, 0x80, 0x02, 0x00, 0x00, 0x02, 0x48, - 0x61, 0x00, 0x04, 0x06, 0x04, 0x32, 0x46, 0x6a, - 0x5c, 0x67, 0x96, 0xaa, 0xae, 0xc8, 0xd3, 0x5d, - 0x62, 0x00, 0x54, 0x77, 0xf3, 0x0c, 0x2b, 0x3d, - 0x63, 0xfc, 0x62, 0x68, 0x63, 0x83, 0x63, 0xe4, - 0x63, 0xf1, 0x2b, 0x22, 0x64, 0xc5, 0x63, 0xa9, - 0x63, 0x2e, 0x3a, 0x69, 0x64, 0x7e, 0x64, 0x9d, - 0x64, 0x77, 0x64, 0x6c, 0x3a, 0x4f, 0x65, 0x6c, - 0x65, 0x0a, 0x30, 0xe3, 0x65, 0xf8, 0x66, 0x49, - 0x66, 0x19, 0x3b, 0x91, 0x66, 0x08, 0x3b, 0xe4, - 0x3a, 0x92, 0x51, 0x95, 0x51, 0x00, 0x67, 0x9c, - 0x66, 0xad, 0x80, 0xd9, 0x43, 0x17, 0x67, 0x1b, - 0x67, 0x21, 0x67, 0x5e, 0x67, 0x53, 0x67, 0xc3, - 0x33, 0x49, 0x3b, 0xfa, 0x67, 0x85, 0x67, 0x52, - 0x68, 0x85, 0x68, 0x6d, 0x34, 0x8e, 0x68, 0x1f, - 0x68, 0x14, 0x69, 0x9d, 0x3b, 0x42, 0x69, 0xa3, - 0x69, 0xea, 0x69, 0xa8, 0x6a, 0xa3, 0x36, 0xdb, - 0x6a, 0x18, 0x3c, 0x21, 0x6b, 0xa7, 0x38, 0x54, - 0x6b, 0x4e, 0x3c, 0x72, 0x6b, 0x9f, 0x6b, 0xba, - 0x6b, 0xbb, 0x6b, 0x8d, 0x3a, 0x0b, 0x1d, 0xfa, - 0x3a, 0x4e, 0x6c, 0xbc, 0x3c, 0xbf, 0x6c, 0xcd, - 0x6c, 0x67, 0x6c, 0x16, 0x6d, 0x3e, 0x6d, 0x77, - 0x6d, 0x41, 0x6d, 0x69, 0x6d, 0x78, 0x6d, 0x85, - 0x6d, 0x1e, 0x3d, 0x34, 0x6d, 0x2f, 0x6e, 0x6e, - 0x6e, 0x33, 0x3d, 0xcb, 0x6e, 0xc7, 0x6e, 0xd1, - 0x3e, 0xf9, 0x6d, 0x6e, 0x6f, 0x5e, 0x3f, 0x8e, - 0x3f, 0xc6, 0x6f, 0x39, 0x70, 0x1e, 0x70, 0x1b, - 0x70, 0x96, 0x3d, 0x4a, 0x70, 0x7d, 0x70, 0x77, - 0x70, 0xad, 0x70, 0x25, 0x05, 0x45, 0x71, 0x63, - 0x42, 0x9c, 0x71, 0xab, 0x43, 0x28, 0x72, 0x35, - 0x72, 0x50, 0x72, 0x08, 0x46, 0x80, 0x72, 0x95, - 0x72, 0x35, 0x47, 0x02, 0x20, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, - 0x02, 0x02, 0x80, 0x8a, 0x00, 0x00, 0x20, 0x00, - 0x08, 0x0a, 0x00, 0x80, 0x88, 0x80, 0x20, 0x14, - 0x48, 0x7a, 0x73, 0x8b, 0x73, 0xac, 0x3e, 0xa5, - 0x73, 0xb8, 0x3e, 0xb8, 0x3e, 0x47, 0x74, 0x5c, - 0x74, 0x71, 0x74, 0x85, 0x74, 0xca, 0x74, 0x1b, - 0x3f, 0x24, 0x75, 0x36, 0x4c, 0x3e, 0x75, 0x92, - 0x4c, 0x70, 0x75, 0x9f, 0x21, 0x10, 0x76, 0xa1, - 0x4f, 0xb8, 0x4f, 0x44, 0x50, 0xfc, 0x3f, 0x08, - 0x40, 0xf4, 0x76, 0xf3, 0x50, 0xf2, 0x50, 0x19, - 0x51, 0x33, 0x51, 0x1e, 0x77, 0x1f, 0x77, 0x1f, - 0x77, 0x4a, 0x77, 0x39, 0x40, 0x8b, 0x77, 0x46, - 0x40, 0x96, 0x40, 0x1d, 0x54, 0x4e, 0x78, 0x8c, - 0x78, 0xcc, 0x78, 0xe3, 0x40, 0x26, 0x56, 0x56, - 0x79, 0x9a, 0x56, 0xc5, 0x56, 0x8f, 0x79, 0xeb, - 0x79, 0x2f, 0x41, 0x40, 0x7a, 0x4a, 0x7a, 0x4f, - 0x7a, 0x7c, 0x59, 0xa7, 0x5a, 0xa7, 0x5a, 0xee, - 0x7a, 0x02, 0x42, 0xab, 0x5b, 0xc6, 0x7b, 0xc9, - 0x7b, 0x27, 0x42, 0x80, 0x5c, 0xd2, 0x7c, 0xa0, - 0x42, 0xe8, 0x7c, 0xe3, 0x7c, 0x00, 0x7d, 0x86, - 0x5f, 0x63, 0x7d, 0x01, 0x43, 0xc7, 0x7d, 0x02, - 0x7e, 0x45, 0x7e, 0x34, 0x43, 0x28, 0x62, 0x47, - 0x62, 0x59, 0x43, 0xd9, 0x62, 0x7a, 0x7f, 0x3e, - 0x63, 0x95, 0x7f, 0xfa, 0x7f, 0x05, 0x80, 0xda, - 0x64, 0x23, 0x65, 0x60, 0x80, 0xa8, 0x65, 0x70, - 0x80, 0x5f, 0x33, 0xd5, 0x43, 0xb2, 0x80, 0x03, - 0x81, 0x0b, 0x44, 0x3e, 0x81, 0xb5, 0x5a, 0xa7, - 0x67, 0xb5, 0x67, 0x93, 0x33, 0x9c, 0x33, 0x01, - 0x82, 0x04, 0x82, 0x9e, 0x8f, 0x6b, 0x44, 0x91, - 0x82, 0x8b, 0x82, 0x9d, 0x82, 0xb3, 0x52, 0xb1, - 0x82, 0xb3, 0x82, 0xbd, 0x82, 0xe6, 0x82, 0x3c, - 0x6b, 0xe5, 0x82, 0x1d, 0x83, 0x63, 0x83, 0xad, - 0x83, 0x23, 0x83, 0xbd, 0x83, 0xe7, 0x83, 0x57, - 0x84, 0x53, 0x83, 0xca, 0x83, 0xcc, 0x83, 0xdc, - 0x83, 0x36, 0x6c, 0x6b, 0x6d, 0x02, 0x00, 0x00, - 0x20, 0x22, 0x2a, 0xa0, 0x0a, 0x00, 0x20, 0x80, - 0x28, 0x00, 0xa8, 0x20, 0x20, 0x00, 0x02, 0x80, - 0x22, 0x02, 0x8a, 0x08, 0x00, 0xaa, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x28, 0xd5, 0x6c, 0x2b, - 0x45, 0xf1, 0x84, 0xf3, 0x84, 0x16, 0x85, 0xca, - 0x73, 0x64, 0x85, 0x2c, 0x6f, 0x5d, 0x45, 0x61, - 0x45, 0xb1, 0x6f, 0xd2, 0x70, 0x6b, 0x45, 0x50, - 0x86, 0x5c, 0x86, 0x67, 0x86, 0x69, 0x86, 0xa9, - 0x86, 0x88, 0x86, 0x0e, 0x87, 0xe2, 0x86, 0x79, - 0x87, 0x28, 0x87, 0x6b, 0x87, 0x86, 0x87, 0xd7, - 0x45, 0xe1, 0x87, 0x01, 0x88, 0xf9, 0x45, 0x60, - 0x88, 0x63, 0x88, 0x67, 0x76, 0xd7, 0x88, 0xde, - 0x88, 0x35, 0x46, 0xfa, 0x88, 0xbb, 0x34, 0xae, - 0x78, 0x66, 0x79, 0xbe, 0x46, 0xc7, 0x46, 0xa0, - 0x8a, 0xed, 0x8a, 0x8a, 0x8b, 0x55, 0x8c, 0xa8, - 0x7c, 0xab, 0x8c, 0xc1, 0x8c, 0x1b, 0x8d, 0x77, - 0x8d, 0x2f, 0x7f, 0x04, 0x08, 0xcb, 0x8d, 0xbc, - 0x8d, 0xf0, 0x8d, 0xde, 0x08, 0xd4, 0x8e, 0x38, - 0x8f, 0xd2, 0x85, 0xed, 0x85, 0x94, 0x90, 0xf1, - 0x90, 0x11, 0x91, 0x2e, 0x87, 0x1b, 0x91, 0x38, - 0x92, 0xd7, 0x92, 0xd8, 0x92, 0x7c, 0x92, 0xf9, - 0x93, 0x15, 0x94, 0xfa, 0x8b, 0x8b, 0x95, 0x95, - 0x49, 0xb7, 0x95, 0x77, 0x8d, 0xe6, 0x49, 0xc3, - 0x96, 0xb2, 0x5d, 0x23, 0x97, 0x45, 0x91, 0x1a, - 0x92, 0x6e, 0x4a, 0x76, 0x4a, 0xe0, 0x97, 0x0a, - 0x94, 0xb2, 0x4a, 0x96, 0x94, 0x0b, 0x98, 0x0b, - 0x98, 0x29, 0x98, 0xb6, 0x95, 0xe2, 0x98, 0x33, - 0x4b, 0x29, 0x99, 0xa7, 0x99, 0xc2, 0x99, 0xfe, - 0x99, 0xce, 0x4b, 0x30, 0x9b, 0x12, 0x9b, 0x40, - 0x9c, 0xfd, 0x9c, 0xce, 0x4c, 0xed, 0x4c, 0x67, - 0x9d, 0xce, 0xa0, 0xf8, 0x4c, 0x05, 0xa1, 0x0e, - 0xa2, 0x91, 0xa2, 0xbb, 0x9e, 0x56, 0x4d, 0xf9, - 0x9e, 0xfe, 0x9e, 0x05, 0x9f, 0x0f, 0x9f, 0x16, - 0x9f, 0x3b, 0x9f, 0x00, 0xa6, 0x02, 0x88, 0xa0, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x28, 0x00, - 0x08, 0xa0, 0x80, 0xa0, 0x80, 0x00, 0x80, 0x80, - 0x00, 0x0a, 0x88, 0x80, 0x00, 0x80, 0x00, 0x20, - 0x2a, 0x00, 0x80, -}; - -static const uint16_t unicode_comp_table[965] = { - 0x4a01, 0x49c0, 0x4a02, 0x0280, 0x0281, 0x0282, 0x0283, 0x02c0, - 0x02c2, 0x0a00, 0x0284, 0x2442, 0x0285, 0x07c0, 0x0980, 0x0982, - 0x2440, 0x2280, 0x02c4, 0x2282, 0x2284, 0x2286, 0x02c6, 0x02c8, - 0x02ca, 0x02cc, 0x0287, 0x228a, 0x02ce, 0x228c, 0x2290, 0x2292, - 0x228e, 0x0288, 0x0289, 0x028a, 0x2482, 0x0300, 0x0302, 0x0304, - 0x028b, 0x2480, 0x0308, 0x0984, 0x0986, 0x2458, 0x0a02, 0x0306, - 0x2298, 0x229a, 0x229e, 0x0900, 0x030a, 0x22a0, 0x030c, 0x030e, - 0x0840, 0x0310, 0x0312, 0x22a2, 0x22a6, 0x09c0, 0x22a4, 0x22a8, - 0x22aa, 0x028c, 0x028d, 0x028e, 0x0340, 0x0342, 0x0344, 0x0380, - 0x028f, 0x248e, 0x07c2, 0x0988, 0x098a, 0x2490, 0x0346, 0x22ac, - 0x0400, 0x22b0, 0x0842, 0x22b2, 0x0402, 0x22b4, 0x0440, 0x0444, - 0x22b6, 0x0442, 0x22c2, 0x22c0, 0x22c4, 0x22c6, 0x22c8, 0x0940, - 0x04c0, 0x0291, 0x22ca, 0x04c4, 0x22cc, 0x04c2, 0x22d0, 0x22ce, - 0x0292, 0x0293, 0x0294, 0x0295, 0x0540, 0x0542, 0x0a08, 0x0296, - 0x2494, 0x0544, 0x07c4, 0x098c, 0x098e, 0x06c0, 0x2492, 0x0844, - 0x2308, 0x230a, 0x0580, 0x230c, 0x0584, 0x0990, 0x0992, 0x230e, - 0x0582, 0x2312, 0x0586, 0x0588, 0x2314, 0x058c, 0x2316, 0x0998, - 0x058a, 0x231e, 0x0590, 0x2320, 0x099a, 0x058e, 0x2324, 0x2322, - 0x0299, 0x029a, 0x029b, 0x05c0, 0x05c2, 0x05c4, 0x029c, 0x24ac, - 0x05c6, 0x05c8, 0x07c6, 0x0994, 0x0996, 0x0700, 0x24aa, 0x2326, - 0x05ca, 0x232a, 0x2328, 0x2340, 0x2342, 0x2344, 0x2346, 0x05cc, - 0x234a, 0x2348, 0x234c, 0x234e, 0x2350, 0x24b8, 0x029d, 0x05ce, - 0x24be, 0x0a0c, 0x2352, 0x0600, 0x24bc, 0x24ba, 0x0640, 0x2354, - 0x0642, 0x0644, 0x2356, 0x2358, 0x02a0, 0x02a1, 0x02a2, 0x02a3, - 0x02c1, 0x02c3, 0x0a01, 0x02a4, 0x2443, 0x02a5, 0x07c1, 0x0981, - 0x0983, 0x2441, 0x2281, 0x02c5, 0x2283, 0x2285, 0x2287, 0x02c7, - 0x02c9, 0x02cb, 0x02cd, 0x02a7, 0x228b, 0x02cf, 0x228d, 0x2291, - 0x2293, 0x228f, 0x02a8, 0x02a9, 0x02aa, 0x2483, 0x0301, 0x0303, - 0x0305, 0x02ab, 0x2481, 0x0309, 0x0985, 0x0987, 0x2459, 0x0a03, - 0x0307, 0x2299, 0x229b, 0x229f, 0x0901, 0x030b, 0x22a1, 0x030d, - 0x030f, 0x0841, 0x0311, 0x0313, 0x22a3, 0x22a7, 0x09c1, 0x22a5, - 0x22a9, 0x22ab, 0x2380, 0x02ac, 0x02ad, 0x02ae, 0x0341, 0x0343, - 0x0345, 0x02af, 0x248f, 0x07c3, 0x0989, 0x098b, 0x2491, 0x0347, - 0x22ad, 0x0401, 0x0884, 0x22b1, 0x0843, 0x22b3, 0x0403, 0x22b5, - 0x0441, 0x0445, 0x22b7, 0x0443, 0x22c3, 0x22c1, 0x22c5, 0x22c7, - 0x22c9, 0x0941, 0x04c1, 0x02b1, 0x22cb, 0x04c5, 0x22cd, 0x04c3, - 0x22d1, 0x22cf, 0x02b2, 0x02b3, 0x02b4, 0x02b5, 0x0541, 0x0543, - 0x0a09, 0x02b6, 0x2495, 0x0545, 0x07c5, 0x098d, 0x098f, 0x06c1, - 0x2493, 0x0845, 0x2309, 0x230b, 0x0581, 0x230d, 0x0585, 0x0991, - 0x0993, 0x230f, 0x0583, 0x2313, 0x0587, 0x0589, 0x2315, 0x058d, - 0x2317, 0x0999, 0x058b, 0x231f, 0x2381, 0x0591, 0x2321, 0x099b, - 0x058f, 0x2325, 0x2323, 0x02b9, 0x02ba, 0x02bb, 0x05c1, 0x05c3, - 0x05c5, 0x02bc, 0x24ad, 0x05c7, 0x05c9, 0x07c7, 0x0995, 0x0997, - 0x0701, 0x24ab, 0x2327, 0x05cb, 0x232b, 0x2329, 0x2341, 0x2343, - 0x2345, 0x2347, 0x05cd, 0x234b, 0x2349, 0x2382, 0x234d, 0x234f, - 0x2351, 0x24b9, 0x02bd, 0x05cf, 0x24bf, 0x0a0d, 0x2353, 0x02bf, - 0x24bd, 0x2383, 0x24bb, 0x0641, 0x2355, 0x0643, 0x0645, 0x2357, - 0x2359, 0x3101, 0x0c80, 0x2e00, 0x2446, 0x2444, 0x244a, 0x2448, - 0x0800, 0x0942, 0x0944, 0x0804, 0x2288, 0x2486, 0x2484, 0x248a, - 0x2488, 0x22ae, 0x2498, 0x2496, 0x249c, 0x249a, 0x2300, 0x0a06, - 0x2302, 0x0a04, 0x0946, 0x07ce, 0x07ca, 0x07c8, 0x07cc, 0x2447, - 0x2445, 0x244b, 0x2449, 0x0801, 0x0943, 0x0945, 0x0805, 0x2289, - 0x2487, 0x2485, 0x248b, 0x2489, 0x22af, 0x2499, 0x2497, 0x249d, - 0x249b, 0x2301, 0x0a07, 0x2303, 0x0a05, 0x0947, 0x07cf, 0x07cb, - 0x07c9, 0x07cd, 0x2450, 0x244e, 0x2454, 0x2452, 0x2451, 0x244f, - 0x2455, 0x2453, 0x2294, 0x2296, 0x2295, 0x2297, 0x2304, 0x2306, - 0x2305, 0x2307, 0x2318, 0x2319, 0x231a, 0x231b, 0x232c, 0x232d, - 0x232e, 0x232f, 0x2400, 0x24a2, 0x24a0, 0x24a6, 0x24a4, 0x24a8, - 0x24a3, 0x24a1, 0x24a7, 0x24a5, 0x24a9, 0x24b0, 0x24ae, 0x24b4, - 0x24b2, 0x24b6, 0x24b1, 0x24af, 0x24b5, 0x24b3, 0x24b7, 0x0882, - 0x0880, 0x0881, 0x0802, 0x0803, 0x229c, 0x229d, 0x0a0a, 0x0a0b, - 0x0883, 0x0b40, 0x2c8a, 0x0c81, 0x2c89, 0x2c88, 0x2540, 0x2541, - 0x2d00, 0x2e07, 0x0d00, 0x2640, 0x2641, 0x2e80, 0x0d01, 0x26c8, - 0x26c9, 0x2f00, 0x2f84, 0x0d02, 0x2f83, 0x2f82, 0x0d40, 0x26d8, - 0x26d9, 0x3186, 0x0d04, 0x2740, 0x2741, 0x3100, 0x3086, 0x0d06, - 0x3085, 0x3084, 0x0d41, 0x2840, 0x3200, 0x0d07, 0x284f, 0x2850, - 0x3280, 0x2c84, 0x2e03, 0x2857, 0x0d42, 0x2c81, 0x2c80, 0x24c0, - 0x24c1, 0x2c86, 0x2c83, 0x28c0, 0x0d43, 0x25c0, 0x25c1, 0x2940, - 0x0d44, 0x26c0, 0x26c1, 0x2e05, 0x2e02, 0x29c0, 0x0d45, 0x2f05, - 0x2f04, 0x0d80, 0x26d0, 0x26d1, 0x2f80, 0x2a40, 0x0d82, 0x26e0, - 0x26e1, 0x3080, 0x3081, 0x2ac0, 0x0d83, 0x3004, 0x3003, 0x0d81, - 0x27c0, 0x27c1, 0x3082, 0x2b40, 0x0d84, 0x2847, 0x2848, 0x3184, - 0x3181, 0x2f06, 0x0d08, 0x2f81, 0x3005, 0x0d46, 0x3083, 0x3182, - 0x0e00, 0x0e01, 0x0f40, 0x1180, 0x1182, 0x0f03, 0x0f00, 0x11c0, - 0x0f01, 0x1140, 0x1202, 0x1204, 0x0f81, 0x1240, 0x0fc0, 0x1242, - 0x0f80, 0x1244, 0x1284, 0x0f82, 0x1286, 0x1288, 0x128a, 0x12c0, - 0x1282, 0x1181, 0x1183, 0x1043, 0x1040, 0x11c1, 0x1041, 0x1141, - 0x1203, 0x1205, 0x10c1, 0x1241, 0x1000, 0x1243, 0x10c0, 0x1245, - 0x1285, 0x10c2, 0x1287, 0x1289, 0x128b, 0x12c1, 0x1283, 0x1080, - 0x1100, 0x1101, 0x1200, 0x1201, 0x1280, 0x1281, 0x1340, 0x1341, - 0x1343, 0x1342, 0x1344, 0x13c2, 0x1400, 0x13c0, 0x1440, 0x1480, - 0x14c0, 0x1540, 0x1541, 0x1740, 0x1700, 0x1741, 0x17c0, 0x1800, - 0x1802, 0x1801, 0x1840, 0x1880, 0x1900, 0x18c0, 0x18c1, 0x1901, - 0x1940, 0x1942, 0x1941, 0x1980, 0x19c0, 0x19c2, 0x19c1, 0x1c80, - 0x1cc0, 0x1dc0, 0x1f80, 0x2000, 0x2002, 0x2004, 0x2006, 0x2008, - 0x2040, 0x2080, 0x2082, 0x20c0, 0x20c1, 0x2100, 0x22b8, 0x22b9, - 0x2310, 0x2311, 0x231c, 0x231d, 0x244c, 0x2456, 0x244d, 0x2457, - 0x248c, 0x248d, 0x249e, 0x249f, 0x2500, 0x2502, 0x2504, 0x2bc0, - 0x2501, 0x2503, 0x2505, 0x2bc1, 0x2bc2, 0x2bc3, 0x2bc4, 0x2bc5, - 0x2bc6, 0x2bc7, 0x2580, 0x2582, 0x2584, 0x2bc8, 0x2581, 0x2583, - 0x2585, 0x2bc9, 0x2bca, 0x2bcb, 0x2bcc, 0x2bcd, 0x2bce, 0x2bcf, - 0x2600, 0x2602, 0x2601, 0x2603, 0x2680, 0x2682, 0x2681, 0x2683, - 0x26c2, 0x26c4, 0x26c6, 0x2c00, 0x26c3, 0x26c5, 0x26c7, 0x2c01, - 0x2c02, 0x2c03, 0x2c04, 0x2c05, 0x2c06, 0x2c07, 0x26ca, 0x26cc, - 0x26ce, 0x2c08, 0x26cb, 0x26cd, 0x26cf, 0x2c09, 0x2c0a, 0x2c0b, - 0x2c0c, 0x2c0d, 0x2c0e, 0x2c0f, 0x26d2, 0x26d4, 0x26d6, 0x26d3, - 0x26d5, 0x26d7, 0x26da, 0x26dc, 0x26de, 0x26db, 0x26dd, 0x26df, - 0x2700, 0x2702, 0x2701, 0x2703, 0x2780, 0x2782, 0x2781, 0x2783, - 0x2800, 0x2802, 0x2804, 0x2801, 0x2803, 0x2805, 0x2842, 0x2844, - 0x2846, 0x2849, 0x284b, 0x284d, 0x2c40, 0x284a, 0x284c, 0x284e, - 0x2c41, 0x2c42, 0x2c43, 0x2c44, 0x2c45, 0x2c46, 0x2c47, 0x2851, - 0x2853, 0x2855, 0x2c48, 0x2852, 0x2854, 0x2856, 0x2c49, 0x2c4a, - 0x2c4b, 0x2c4c, 0x2c4d, 0x2c4e, 0x2c4f, 0x2c82, 0x2e01, 0x3180, - 0x2c87, 0x2f01, 0x2f02, 0x2f03, 0x2e06, 0x3185, 0x3000, 0x3001, - 0x3002, 0x4640, 0x4641, 0x4680, 0x46c0, 0x46c2, 0x46c1, 0x4700, - 0x4740, 0x4780, 0x47c0, 0x47c2, 0x4900, 0x4940, 0x4980, 0x4982, - 0x4a00, 0x49c2, 0x4a03, 0x4a04, 0x4a40, 0x4a41, 0x4a80, 0x4a81, - 0x4ac0, 0x4ac1, 0x4bc0, 0x4bc1, 0x4b00, 0x4b01, 0x4b40, 0x4b41, - 0x4bc2, 0x4bc3, 0x4b80, 0x4b81, 0x4b82, 0x4b83, 0x4c00, 0x4c01, - 0x4c02, 0x4c03, 0x5600, 0x5440, 0x5442, 0x5444, 0x5446, 0x5448, - 0x544a, 0x544c, 0x544e, 0x5450, 0x5452, 0x5454, 0x5456, 0x5480, - 0x5482, 0x5484, 0x54c0, 0x54c1, 0x5500, 0x5501, 0x5540, 0x5541, - 0x5580, 0x5581, 0x55c0, 0x55c1, 0x5680, 0x58c0, 0x5700, 0x5702, - 0x5704, 0x5706, 0x5708, 0x570a, 0x570c, 0x570e, 0x5710, 0x5712, - 0x5714, 0x5716, 0x5740, 0x5742, 0x5744, 0x5780, 0x5781, 0x57c0, - 0x57c1, 0x5800, 0x5801, 0x5840, 0x5841, 0x5880, 0x5881, 0x5900, - 0x5901, 0x5902, 0x5903, 0x5940, 0x8ec0, 0x8f00, 0x8fc0, 0x8fc2, - 0x9000, 0x9040, 0x9041, 0x9080, 0x9081, 0x90c0, 0x90c2, 0x9100, - 0x9140, 0x9182, 0x9180, 0x9183, 0x91c1, 0x91c0, 0x91c3, 0x9200, - 0x9201, 0x9240, 0x9280, 0x9282, 0x9284, 0x9281, 0x9285, 0x9287, - 0x9286, 0x9283, 0x92c1, 0x92c0, 0x92c2, -}; - -typedef enum { - UNICODE_GC_Cn, - UNICODE_GC_Lu, - UNICODE_GC_Ll, - UNICODE_GC_Lt, - UNICODE_GC_Lm, - UNICODE_GC_Lo, - UNICODE_GC_Mn, - UNICODE_GC_Mc, - UNICODE_GC_Me, - UNICODE_GC_Nd, - UNICODE_GC_Nl, - UNICODE_GC_No, - UNICODE_GC_Sm, - UNICODE_GC_Sc, - UNICODE_GC_Sk, - UNICODE_GC_So, - UNICODE_GC_Pc, - UNICODE_GC_Pd, - UNICODE_GC_Ps, - UNICODE_GC_Pe, - UNICODE_GC_Pi, - UNICODE_GC_Pf, - UNICODE_GC_Po, - UNICODE_GC_Zs, - UNICODE_GC_Zl, - UNICODE_GC_Zp, - UNICODE_GC_Cc, - UNICODE_GC_Cf, - UNICODE_GC_Cs, - UNICODE_GC_Co, - UNICODE_GC_LC, - UNICODE_GC_L, - UNICODE_GC_M, - UNICODE_GC_N, - UNICODE_GC_S, - UNICODE_GC_P, - UNICODE_GC_Z, - UNICODE_GC_C, - UNICODE_GC_COUNT, -} UnicodeGCEnum; - -static const char unicode_gc_name_table[] = - "Cn,Unassigned" "\0" - "Lu,Uppercase_Letter" "\0" - "Ll,Lowercase_Letter" "\0" - "Lt,Titlecase_Letter" "\0" - "Lm,Modifier_Letter" "\0" - "Lo,Other_Letter" "\0" - "Mn,Nonspacing_Mark" "\0" - "Mc,Spacing_Mark" "\0" - "Me,Enclosing_Mark" "\0" - "Nd,Decimal_Number,digit" "\0" - "Nl,Letter_Number" "\0" - "No,Other_Number" "\0" - "Sm,Math_Symbol" "\0" - "Sc,Currency_Symbol" "\0" - "Sk,Modifier_Symbol" "\0" - "So,Other_Symbol" "\0" - "Pc,Connector_Punctuation" "\0" - "Pd,Dash_Punctuation" "\0" - "Ps,Open_Punctuation" "\0" - "Pe,Close_Punctuation" "\0" - "Pi,Initial_Punctuation" "\0" - "Pf,Final_Punctuation" "\0" - "Po,Other_Punctuation" "\0" - "Zs,Space_Separator" "\0" - "Zl,Line_Separator" "\0" - "Zp,Paragraph_Separator" "\0" - "Cc,Control,cntrl" "\0" - "Cf,Format" "\0" - "Cs,Surrogate" "\0" - "Co,Private_Use" "\0" - "LC,Cased_Letter" "\0" - "L,Letter" "\0" - "M,Mark,Combining_Mark" "\0" - "N,Number" "\0" - "S,Symbol" "\0" - "P,Punctuation,punct" "\0" - "Z,Separator" "\0" - "C,Other" "\0" -; - -static const uint8_t unicode_gc_table[4070] = { - 0xfa, 0x18, 0x17, 0x56, 0x0d, 0x56, 0x12, 0x13, - 0x16, 0x0c, 0x16, 0x11, 0x36, 0xe9, 0x02, 0x36, - 0x4c, 0x36, 0xe1, 0x12, 0x12, 0x16, 0x13, 0x0e, - 0x10, 0x0e, 0xe2, 0x12, 0x12, 0x0c, 0x13, 0x0c, - 0xfa, 0x19, 0x17, 0x16, 0x6d, 0x0f, 0x16, 0x0e, - 0x0f, 0x05, 0x14, 0x0c, 0x1b, 0x0f, 0x0e, 0x0f, - 0x0c, 0x2b, 0x0e, 0x02, 0x36, 0x0e, 0x0b, 0x05, - 0x15, 0x4b, 0x16, 0xe1, 0x0f, 0x0c, 0xc1, 0xe2, - 0x10, 0x0c, 0xe2, 0x00, 0xff, 0x30, 0x02, 0xff, - 0x08, 0x02, 0xff, 0x27, 0xbf, 0x22, 0x21, 0x02, - 0x5f, 0x5f, 0x21, 0x22, 0x61, 0x02, 0x21, 0x02, - 0x41, 0x42, 0x21, 0x02, 0x21, 0x02, 0x9f, 0x7f, - 0x02, 0x5f, 0x5f, 0x21, 0x02, 0x5f, 0x3f, 0x02, - 0x05, 0x3f, 0x22, 0x65, 0x01, 0x03, 0x02, 0x01, - 0x03, 0x02, 0x01, 0x03, 0x02, 0xff, 0x08, 0x02, - 0xff, 0x0a, 0x02, 0x01, 0x03, 0x02, 0x5f, 0x21, - 0x02, 0xff, 0x32, 0xa2, 0x21, 0x02, 0x21, 0x22, - 0x5f, 0x41, 0x02, 0xff, 0x00, 0xe2, 0x3c, 0x05, - 0xe2, 0x13, 0xe4, 0x0a, 0x6e, 0xe4, 0x04, 0xee, - 0x06, 0x84, 0xce, 0x04, 0x0e, 0x04, 0xee, 0x09, - 0xe6, 0x68, 0x7f, 0x04, 0x0e, 0x3f, 0x20, 0x04, - 0x42, 0x16, 0x01, 0x60, 0x2e, 0x01, 0x16, 0x41, - 0x00, 0x01, 0x00, 0x21, 0x02, 0xe1, 0x09, 0x00, - 0xe1, 0x01, 0xe2, 0x1b, 0x3f, 0x02, 0x41, 0x42, - 0xff, 0x10, 0x62, 0x3f, 0x0c, 0x5f, 0x3f, 0x02, - 0xe1, 0x2b, 0xe2, 0x28, 0xff, 0x1a, 0x0f, 0x86, - 0x28, 0xff, 0x2f, 0xff, 0x06, 0x02, 0xff, 0x58, - 0x00, 0xe1, 0x1e, 0x20, 0x04, 0xb6, 0xe2, 0x21, - 0x16, 0x11, 0x20, 0x2f, 0x0d, 0x00, 0xe6, 0x25, - 0x11, 0x06, 0x16, 0x26, 0x16, 0x26, 0x16, 0x06, - 0xe0, 0x00, 0xe5, 0x13, 0x60, 0x65, 0x36, 0xe0, - 0x03, 0xbb, 0x4c, 0x36, 0x0d, 0x36, 0x2f, 0xe6, - 0x03, 0x16, 0x1b, 0x56, 0xe5, 0x18, 0x04, 0xe5, - 0x02, 0xe6, 0x0d, 0xe9, 0x02, 0x76, 0x25, 0x06, - 0xe5, 0x5b, 0x16, 0x05, 0xc6, 0x1b, 0x0f, 0xa6, - 0x24, 0x26, 0x0f, 0x66, 0x25, 0xe9, 0x02, 0x45, - 0x2f, 0x05, 0xf6, 0x06, 0x00, 0x1b, 0x05, 0x06, - 0xe5, 0x16, 0xe6, 0x13, 0x20, 0xe5, 0x51, 0xe6, - 0x03, 0x05, 0xe0, 0x06, 0xe9, 0x02, 0xe5, 0x19, - 0xe6, 0x01, 0x24, 0x0f, 0x56, 0x04, 0x20, 0x06, - 0x2d, 0xe5, 0x0e, 0x66, 0x04, 0xe6, 0x01, 0x04, - 0x46, 0x04, 0x86, 0x20, 0xf6, 0x07, 0x00, 0xe5, - 0x11, 0x46, 0x20, 0x16, 0x00, 0xe5, 0x03, 0x80, - 0xe5, 0x10, 0x0e, 0xa5, 0x00, 0x3b, 0x80, 0xe6, - 0x01, 0xe5, 0x21, 0x04, 0xe6, 0x10, 0x1b, 0xe6, - 0x18, 0x07, 0xe5, 0x2e, 0x06, 0x07, 0x06, 0x05, - 0x47, 0xe6, 0x00, 0x67, 0x06, 0x27, 0x05, 0xc6, - 0xe5, 0x02, 0x26, 0x36, 0xe9, 0x02, 0x16, 0x04, - 0xe5, 0x07, 0x06, 0x27, 0x00, 0xe5, 0x00, 0x20, - 0x25, 0x20, 0xe5, 0x0e, 0x00, 0xc5, 0x00, 0x05, - 0x40, 0x65, 0x20, 0x06, 0x05, 0x47, 0x66, 0x20, - 0x27, 0x20, 0x27, 0x06, 0x05, 0xe0, 0x00, 0x07, - 0x60, 0x25, 0x00, 0x45, 0x26, 0x20, 0xe9, 0x02, - 0x25, 0x2d, 0xab, 0x0f, 0x0d, 0x05, 0x16, 0x06, - 0x20, 0x26, 0x07, 0x00, 0xa5, 0x60, 0x25, 0x20, - 0xe5, 0x0e, 0x00, 0xc5, 0x00, 0x25, 0x00, 0x25, - 0x00, 0x25, 0x20, 0x06, 0x00, 0x47, 0x26, 0x60, - 0x26, 0x20, 0x46, 0x40, 0x06, 0xc0, 0x65, 0x00, - 0x05, 0xc0, 0xe9, 0x02, 0x26, 0x45, 0x06, 0x16, - 0xe0, 0x02, 0x26, 0x07, 0x00, 0xe5, 0x01, 0x00, - 0x45, 0x00, 0xe5, 0x0e, 0x00, 0xc5, 0x00, 0x25, - 0x00, 0x85, 0x20, 0x06, 0x05, 0x47, 0x86, 0x00, - 0x26, 0x07, 0x00, 0x27, 0x06, 0x20, 0x05, 0xe0, - 0x07, 0x25, 0x26, 0x20, 0xe9, 0x02, 0x16, 0x0d, - 0xc0, 0x05, 0xa6, 0x00, 0x06, 0x27, 0x00, 0xe5, - 0x00, 0x20, 0x25, 0x20, 0xe5, 0x0e, 0x00, 0xc5, - 0x00, 0x25, 0x00, 0x85, 0x20, 0x06, 0x05, 0x07, - 0x06, 0x07, 0x66, 0x20, 0x27, 0x20, 0x27, 0x06, - 0xc0, 0x26, 0x07, 0x60, 0x25, 0x00, 0x45, 0x26, - 0x20, 0xe9, 0x02, 0x0f, 0x05, 0xab, 0xe0, 0x02, - 0x06, 0x05, 0x00, 0xa5, 0x40, 0x45, 0x00, 0x65, - 0x40, 0x25, 0x00, 0x05, 0x00, 0x25, 0x40, 0x25, - 0x40, 0x45, 0x40, 0xe5, 0x04, 0x60, 0x27, 0x06, - 0x27, 0x40, 0x47, 0x00, 0x47, 0x06, 0x20, 0x05, - 0xa0, 0x07, 0xe0, 0x06, 0xe9, 0x02, 0x4b, 0xaf, - 0x0d, 0x0f, 0x80, 0x06, 0x47, 0x06, 0xe5, 0x00, - 0x00, 0x45, 0x00, 0xe5, 0x0f, 0x00, 0xe5, 0x08, - 0x20, 0x06, 0x05, 0x46, 0x67, 0x00, 0x46, 0x00, - 0x66, 0xc0, 0x26, 0x00, 0x45, 0x20, 0x05, 0x20, - 0x25, 0x26, 0x20, 0xe9, 0x02, 0xc0, 0x16, 0xcb, - 0x0f, 0x05, 0x06, 0x27, 0x16, 0xe5, 0x00, 0x00, - 0x45, 0x00, 0xe5, 0x0f, 0x00, 0xe5, 0x02, 0x00, - 0x85, 0x20, 0x06, 0x05, 0x07, 0x06, 0x87, 0x00, - 0x06, 0x27, 0x00, 0x27, 0x26, 0xc0, 0x27, 0xa0, - 0x25, 0x00, 0x25, 0x26, 0x20, 0xe9, 0x02, 0x00, - 0x25, 0x07, 0xe0, 0x04, 0x26, 0x27, 0xe5, 0x01, - 0x00, 0x45, 0x00, 0xe5, 0x21, 0x26, 0x05, 0x47, - 0x66, 0x00, 0x47, 0x00, 0x47, 0x06, 0x05, 0x0f, - 0x60, 0x45, 0x07, 0xcb, 0x45, 0x26, 0x20, 0xe9, - 0x02, 0xeb, 0x01, 0x0f, 0xa5, 0x00, 0x06, 0x27, - 0x00, 0xe5, 0x0a, 0x40, 0xe5, 0x10, 0x00, 0xe5, - 0x01, 0x00, 0x05, 0x20, 0xc5, 0x40, 0x06, 0x60, - 0x47, 0x46, 0x00, 0x06, 0x00, 0xe7, 0x00, 0xa0, - 0xe9, 0x02, 0x20, 0x27, 0x16, 0xe0, 0x04, 0xe5, - 0x28, 0x06, 0x25, 0xc6, 0x60, 0x0d, 0xa5, 0x04, - 0xe6, 0x00, 0x16, 0xe9, 0x02, 0x36, 0xe0, 0x1d, - 0x25, 0x00, 0x05, 0x00, 0x85, 0x00, 0xe5, 0x10, - 0x00, 0x05, 0x00, 0xe5, 0x02, 0x06, 0x25, 0xe6, - 0x01, 0x05, 0x20, 0x85, 0x00, 0x04, 0x00, 0xc6, - 0x00, 0xe9, 0x02, 0x20, 0x65, 0xe0, 0x18, 0x05, - 0x4f, 0xf6, 0x07, 0x0f, 0x16, 0x4f, 0x26, 0xaf, - 0xe9, 0x02, 0xeb, 0x02, 0x0f, 0x06, 0x0f, 0x06, - 0x0f, 0x06, 0x12, 0x13, 0x12, 0x13, 0x27, 0xe5, - 0x00, 0x00, 0xe5, 0x1c, 0x60, 0xe6, 0x06, 0x07, - 0x86, 0x16, 0x26, 0x85, 0xe6, 0x03, 0x00, 0xe6, - 0x1c, 0x00, 0xef, 0x00, 0x06, 0xaf, 0x00, 0x2f, - 0x96, 0x6f, 0x36, 0xe0, 0x1d, 0xe5, 0x23, 0x27, - 0x66, 0x07, 0xa6, 0x07, 0x26, 0x27, 0x26, 0x05, - 0xe9, 0x02, 0xb6, 0xa5, 0x27, 0x26, 0x65, 0x46, - 0x05, 0x47, 0x25, 0xc7, 0x45, 0x66, 0xe5, 0x05, - 0x06, 0x27, 0x26, 0xa7, 0x06, 0x05, 0x07, 0xe9, - 0x02, 0x47, 0x06, 0x2f, 0xe1, 0x1e, 0x00, 0x01, - 0x80, 0x01, 0x20, 0xe2, 0x23, 0x16, 0x04, 0x42, - 0xe5, 0x80, 0xc1, 0x00, 0x65, 0x20, 0xc5, 0x00, - 0x05, 0x00, 0x65, 0x20, 0xe5, 0x21, 0x00, 0x65, - 0x20, 0xe5, 0x19, 0x00, 0x65, 0x20, 0xc5, 0x00, - 0x05, 0x00, 0x65, 0x20, 0xe5, 0x07, 0x00, 0xe5, - 0x31, 0x00, 0x65, 0x20, 0xe5, 0x3b, 0x20, 0x46, - 0xf6, 0x01, 0xeb, 0x0c, 0x40, 0xe5, 0x08, 0xef, - 0x02, 0xa0, 0xe1, 0x4e, 0x20, 0xa2, 0x20, 0x11, - 0xe5, 0x81, 0xe4, 0x0f, 0x16, 0xe5, 0x09, 0x17, - 0xe5, 0x12, 0x12, 0x13, 0x40, 0xe5, 0x43, 0x56, - 0x4a, 0xe5, 0x00, 0xc0, 0xe5, 0x0a, 0x46, 0x07, - 0xe0, 0x01, 0xe5, 0x0b, 0x26, 0x07, 0x36, 0xe0, - 0x01, 0xe5, 0x0a, 0x26, 0xe0, 0x04, 0xe5, 0x05, - 0x00, 0x45, 0x00, 0x26, 0xe0, 0x04, 0xe5, 0x2c, - 0x26, 0x07, 0xc6, 0xe7, 0x00, 0x06, 0x27, 0xe6, - 0x03, 0x56, 0x04, 0x56, 0x0d, 0x05, 0x06, 0x20, - 0xe9, 0x02, 0xa0, 0xeb, 0x02, 0xa0, 0xb6, 0x11, - 0x76, 0x46, 0x1b, 0x06, 0xe9, 0x02, 0xa0, 0xe5, - 0x1b, 0x04, 0xe5, 0x2d, 0xc0, 0x85, 0x26, 0xe5, - 0x1a, 0x06, 0x05, 0x80, 0xe5, 0x3e, 0xe0, 0x02, - 0xe5, 0x17, 0x00, 0x46, 0x67, 0x26, 0x47, 0x60, - 0x27, 0x06, 0xa7, 0x46, 0x60, 0x0f, 0x40, 0x36, - 0xe9, 0x02, 0xe5, 0x16, 0x20, 0x85, 0xe0, 0x03, - 0xe5, 0x24, 0x60, 0xe5, 0x12, 0xa0, 0xe9, 0x02, - 0x0b, 0x40, 0xef, 0x1a, 0xe5, 0x0f, 0x26, 0x27, - 0x06, 0x20, 0x36, 0xe5, 0x2d, 0x07, 0x06, 0x07, - 0xc6, 0x00, 0x06, 0x07, 0x06, 0x27, 0xe6, 0x00, - 0xa7, 0xe6, 0x02, 0x20, 0x06, 0xe9, 0x02, 0xa0, - 0xe9, 0x02, 0xa0, 0xd6, 0x04, 0xb6, 0x20, 0xe6, - 0x06, 0x08, 0xe6, 0x08, 0xe0, 0x29, 0x66, 0x07, - 0xe5, 0x27, 0x06, 0x07, 0x86, 0x07, 0x06, 0x87, - 0x06, 0x27, 0xe5, 0x00, 0x00, 0x36, 0xe9, 0x02, - 0xd6, 0xef, 0x02, 0xe6, 0x01, 0xef, 0x01, 0x56, - 0x26, 0x07, 0xe5, 0x16, 0x07, 0x66, 0x27, 0x26, - 0x07, 0x46, 0x25, 0xe9, 0x02, 0xe5, 0x24, 0x06, - 0x07, 0x26, 0x47, 0x06, 0x07, 0x46, 0x27, 0xe0, - 0x00, 0x76, 0xe5, 0x1c, 0xe7, 0x00, 0xe6, 0x00, - 0x27, 0x26, 0x40, 0x96, 0xe9, 0x02, 0x40, 0x45, - 0xe9, 0x02, 0xe5, 0x16, 0xa4, 0x36, 0xe2, 0x01, - 0x3f, 0x80, 0xe1, 0x23, 0x20, 0x41, 0xf6, 0x00, - 0xe0, 0x00, 0x46, 0x16, 0xe6, 0x05, 0x07, 0xc6, - 0x65, 0x06, 0xa5, 0x06, 0x25, 0x07, 0x26, 0x05, - 0x80, 0xe2, 0x24, 0xe4, 0x37, 0xe2, 0x05, 0x04, - 0xe2, 0x1a, 0xe4, 0x1d, 0xe6, 0x38, 0xff, 0x80, - 0x0e, 0xe2, 0x00, 0xff, 0x5a, 0xe2, 0x00, 0xe1, - 0x00, 0xa2, 0x20, 0xa1, 0x20, 0xe2, 0x00, 0xe1, - 0x00, 0xe2, 0x00, 0xe1, 0x00, 0xa2, 0x20, 0xa1, - 0x20, 0xe2, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x3f, 0xc2, 0xe1, 0x00, 0xe2, 0x06, - 0x20, 0xe2, 0x00, 0xe3, 0x00, 0xe2, 0x00, 0xe3, - 0x00, 0xe2, 0x00, 0xe3, 0x00, 0x82, 0x00, 0x22, - 0x61, 0x03, 0x0e, 0x02, 0x4e, 0x42, 0x00, 0x22, - 0x61, 0x03, 0x4e, 0x62, 0x20, 0x22, 0x61, 0x00, - 0x4e, 0xe2, 0x00, 0x81, 0x4e, 0x20, 0x42, 0x00, - 0x22, 0x61, 0x03, 0x2e, 0x00, 0xf7, 0x03, 0x9b, - 0xb1, 0x36, 0x14, 0x15, 0x12, 0x34, 0x15, 0x12, - 0x14, 0xf6, 0x00, 0x18, 0x19, 0x9b, 0x17, 0xf6, - 0x01, 0x14, 0x15, 0x76, 0x30, 0x56, 0x0c, 0x12, - 0x13, 0xf6, 0x03, 0x0c, 0x16, 0x10, 0xf6, 0x02, - 0x17, 0x9b, 0x00, 0xfb, 0x02, 0x0b, 0x04, 0x20, - 0xab, 0x4c, 0x12, 0x13, 0x04, 0xeb, 0x02, 0x4c, - 0x12, 0x13, 0x00, 0xe4, 0x05, 0x40, 0xed, 0x19, - 0xe0, 0x07, 0xe6, 0x05, 0x68, 0x06, 0x48, 0xe6, - 0x04, 0xe0, 0x07, 0x2f, 0x01, 0x6f, 0x01, 0x2f, - 0x02, 0x41, 0x22, 0x41, 0x02, 0x0f, 0x01, 0x2f, - 0x0c, 0x81, 0xaf, 0x01, 0x0f, 0x01, 0x0f, 0x01, - 0x0f, 0x61, 0x0f, 0x02, 0x61, 0x02, 0x65, 0x02, - 0x2f, 0x22, 0x21, 0x8c, 0x3f, 0x42, 0x0f, 0x0c, - 0x2f, 0x02, 0x0f, 0xeb, 0x08, 0xea, 0x1b, 0x3f, - 0x6a, 0x0b, 0x2f, 0x60, 0x8c, 0x8f, 0x2c, 0x6f, - 0x0c, 0x2f, 0x0c, 0x2f, 0x0c, 0xcf, 0x0c, 0xef, - 0x17, 0x2c, 0x2f, 0x0c, 0x0f, 0x0c, 0xef, 0x17, - 0xec, 0x80, 0x84, 0xef, 0x00, 0x12, 0x13, 0x12, - 0x13, 0xef, 0x0c, 0x2c, 0xcf, 0x12, 0x13, 0xef, - 0x49, 0x0c, 0xef, 0x16, 0xec, 0x11, 0xef, 0x20, - 0xac, 0xef, 0x40, 0xe0, 0x0e, 0xef, 0x03, 0xe0, - 0x0d, 0xeb, 0x34, 0xef, 0x46, 0xeb, 0x0e, 0xef, - 0x80, 0x2f, 0x0c, 0xef, 0x01, 0x0c, 0xef, 0x2e, - 0xec, 0x00, 0xef, 0x67, 0x0c, 0xef, 0x80, 0x70, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0xeb, 0x16, - 0xef, 0x24, 0x8c, 0x12, 0x13, 0xec, 0x17, 0x12, - 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, - 0x13, 0xec, 0x08, 0xef, 0x80, 0x78, 0xec, 0x7b, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0xec, 0x37, - 0x12, 0x13, 0x12, 0x13, 0xec, 0x18, 0x12, 0x13, - 0xec, 0x80, 0x7a, 0xef, 0x28, 0xec, 0x0d, 0x2f, - 0xac, 0xef, 0x1f, 0x20, 0xef, 0x18, 0x00, 0xef, - 0x61, 0xe1, 0x28, 0xe2, 0x28, 0x5f, 0x21, 0x22, - 0xdf, 0x41, 0x02, 0x3f, 0x02, 0x3f, 0x82, 0x24, - 0x41, 0x02, 0xff, 0x5a, 0x02, 0xaf, 0x7f, 0x46, - 0x3f, 0x80, 0x76, 0x0b, 0x36, 0xe2, 0x1e, 0x00, - 0x02, 0x80, 0x02, 0x20, 0xe5, 0x30, 0xc0, 0x04, - 0x16, 0xe0, 0x06, 0x06, 0xe5, 0x0f, 0xe0, 0x01, - 0xc5, 0x00, 0xc5, 0x00, 0xc5, 0x00, 0xc5, 0x00, - 0xc5, 0x00, 0xc5, 0x00, 0xc5, 0x00, 0xc5, 0x00, - 0xe6, 0x18, 0x36, 0x14, 0x15, 0x14, 0x15, 0x56, - 0x14, 0x15, 0x16, 0x14, 0x15, 0xf6, 0x01, 0x11, - 0x36, 0x11, 0x16, 0x14, 0x15, 0x36, 0x14, 0x15, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, - 0x96, 0x04, 0xf6, 0x02, 0x31, 0x76, 0x11, 0x16, - 0x12, 0xf6, 0x05, 0x2f, 0x56, 0x12, 0x13, 0x12, - 0x13, 0x12, 0x13, 0x12, 0x13, 0x11, 0xe0, 0x1a, - 0xef, 0x12, 0x00, 0xef, 0x51, 0xe0, 0x04, 0xef, - 0x80, 0x4e, 0xe0, 0x12, 0xef, 0x08, 0x17, 0x56, - 0x0f, 0x04, 0x05, 0x0a, 0x12, 0x13, 0x12, 0x13, - 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x2f, 0x12, - 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x11, - 0x12, 0x33, 0x0f, 0xea, 0x01, 0x66, 0x27, 0x11, - 0x84, 0x2f, 0x4a, 0x04, 0x05, 0x16, 0x2f, 0x00, - 0xe5, 0x4e, 0x20, 0x26, 0x2e, 0x24, 0x05, 0x11, - 0xe5, 0x52, 0x16, 0x44, 0x05, 0x80, 0xe5, 0x23, - 0x00, 0xe5, 0x56, 0x00, 0x2f, 0x6b, 0xef, 0x02, - 0xe5, 0x18, 0xef, 0x1e, 0xe0, 0x01, 0x0f, 0xe5, - 0x08, 0xef, 0x17, 0x00, 0xeb, 0x02, 0xef, 0x16, - 0xeb, 0x00, 0x0f, 0xeb, 0x07, 0xef, 0x18, 0xeb, - 0x02, 0xef, 0x1f, 0xeb, 0x07, 0xef, 0x80, 0xb8, - 0xe5, 0x99, 0x38, 0xef, 0x38, 0xe5, 0xc0, 0x11, - 0x8d, 0x04, 0xe5, 0x83, 0xef, 0x40, 0xef, 0x2f, - 0xe0, 0x01, 0xe5, 0x20, 0xa4, 0x36, 0xe5, 0x80, - 0x84, 0x04, 0x56, 0xe5, 0x08, 0xe9, 0x02, 0x25, - 0xe0, 0x0c, 0xff, 0x26, 0x05, 0x06, 0x48, 0x16, - 0xe6, 0x02, 0x16, 0x04, 0xff, 0x14, 0x24, 0x26, - 0xe5, 0x3e, 0xea, 0x02, 0x26, 0xb6, 0xe0, 0x00, - 0xee, 0x0f, 0xe4, 0x01, 0x2e, 0xff, 0x06, 0x22, - 0xff, 0x36, 0x04, 0xe2, 0x00, 0x9f, 0xff, 0x02, - 0x04, 0x2e, 0x7f, 0x05, 0x7f, 0x22, 0xff, 0x0d, - 0x61, 0x02, 0x81, 0x02, 0xff, 0x07, 0x41, 0x02, - 0x5f, 0x3f, 0x20, 0x3f, 0x00, 0x02, 0x00, 0x02, - 0xdf, 0xe0, 0x0d, 0x44, 0x3f, 0x05, 0x24, 0x02, - 0xc5, 0x06, 0x45, 0x06, 0x65, 0x06, 0xe5, 0x0f, - 0x27, 0x26, 0x07, 0x6f, 0x06, 0x40, 0xab, 0x2f, - 0x0d, 0x0f, 0xa0, 0xe5, 0x2c, 0x76, 0xe0, 0x00, - 0x27, 0xe5, 0x2a, 0xe7, 0x08, 0x26, 0xe0, 0x00, - 0x36, 0xe9, 0x02, 0xa0, 0xe6, 0x0a, 0xa5, 0x56, - 0x05, 0x16, 0x25, 0x06, 0xe9, 0x02, 0xe5, 0x14, - 0xe6, 0x00, 0x36, 0xe5, 0x0f, 0xe6, 0x03, 0x27, - 0xe0, 0x03, 0x16, 0xe5, 0x15, 0x40, 0x46, 0x07, - 0xe5, 0x27, 0x06, 0x27, 0x66, 0x27, 0x26, 0x47, - 0xf6, 0x05, 0x00, 0x04, 0xe9, 0x02, 0x60, 0x36, - 0x85, 0x06, 0x04, 0xe5, 0x01, 0xe9, 0x02, 0x85, - 0x00, 0xe5, 0x21, 0xa6, 0x27, 0x26, 0x27, 0x26, - 0xe0, 0x01, 0x45, 0x06, 0xe5, 0x00, 0x06, 0x07, - 0x20, 0xe9, 0x02, 0x20, 0x76, 0xe5, 0x08, 0x04, - 0xa5, 0x4f, 0x05, 0x07, 0x06, 0x07, 0xe5, 0x2a, - 0x06, 0x05, 0x46, 0x25, 0x26, 0x85, 0x26, 0x05, - 0x06, 0x05, 0xe0, 0x10, 0x25, 0x04, 0x36, 0xe5, - 0x03, 0x07, 0x26, 0x27, 0x36, 0x05, 0x24, 0x07, - 0x06, 0xe0, 0x02, 0xa5, 0x20, 0xa5, 0x20, 0xa5, - 0xe0, 0x01, 0xc5, 0x00, 0xc5, 0x00, 0xe2, 0x23, - 0x0e, 0x64, 0xe2, 0x01, 0x04, 0x2e, 0x60, 0xe2, - 0x48, 0xe5, 0x1b, 0x27, 0x06, 0x27, 0x06, 0x27, - 0x16, 0x07, 0x06, 0x20, 0xe9, 0x02, 0xa0, 0xe5, - 0xab, 0x1c, 0xe0, 0x04, 0xe5, 0x0f, 0x60, 0xe5, - 0x29, 0x60, 0xfc, 0x87, 0x78, 0xfd, 0x98, 0x78, - 0xe5, 0x80, 0xe6, 0x20, 0xe5, 0x62, 0xe0, 0x1e, - 0xc2, 0xe0, 0x04, 0x82, 0x80, 0x05, 0x06, 0xe5, - 0x02, 0x0c, 0xe5, 0x05, 0x00, 0x85, 0x00, 0x05, - 0x00, 0x25, 0x00, 0x25, 0x00, 0xe5, 0x64, 0xee, - 0x09, 0xe0, 0x08, 0xe5, 0x80, 0xe3, 0x13, 0x12, - 0xef, 0x08, 0xe5, 0x38, 0x20, 0xe5, 0x2e, 0xc0, - 0x0f, 0xe0, 0x18, 0xe5, 0x04, 0x0d, 0x4f, 0xe6, - 0x08, 0xd6, 0x12, 0x13, 0x16, 0xa0, 0xe6, 0x08, - 0x16, 0x31, 0x30, 0x12, 0x13, 0x12, 0x13, 0x12, - 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, - 0x13, 0x12, 0x13, 0x36, 0x12, 0x13, 0x76, 0x50, - 0x56, 0x00, 0x76, 0x11, 0x12, 0x13, 0x12, 0x13, - 0x12, 0x13, 0x56, 0x0c, 0x11, 0x4c, 0x00, 0x16, - 0x0d, 0x36, 0x60, 0x85, 0x00, 0xe5, 0x7f, 0x20, - 0x1b, 0x00, 0x56, 0x0d, 0x56, 0x12, 0x13, 0x16, - 0x0c, 0x16, 0x11, 0x36, 0xe9, 0x02, 0x36, 0x4c, - 0x36, 0xe1, 0x12, 0x12, 0x16, 0x13, 0x0e, 0x10, - 0x0e, 0xe2, 0x12, 0x12, 0x0c, 0x13, 0x0c, 0x12, - 0x13, 0x16, 0x12, 0x13, 0x36, 0xe5, 0x02, 0x04, - 0xe5, 0x25, 0x24, 0xe5, 0x17, 0x40, 0xa5, 0x20, - 0xa5, 0x20, 0xa5, 0x20, 0x45, 0x40, 0x2d, 0x0c, - 0x0e, 0x0f, 0x2d, 0x00, 0x0f, 0x6c, 0x2f, 0xe0, - 0x02, 0x5b, 0x2f, 0x20, 0xe5, 0x04, 0x00, 0xe5, - 0x12, 0x00, 0xe5, 0x0b, 0x00, 0x25, 0x00, 0xe5, - 0x07, 0x20, 0xe5, 0x06, 0xe0, 0x1a, 0xe5, 0x73, - 0x80, 0x56, 0x60, 0xeb, 0x25, 0x40, 0xef, 0x01, - 0xea, 0x2d, 0x6b, 0xef, 0x09, 0x2b, 0x4f, 0x00, - 0xef, 0x05, 0x40, 0x0f, 0xe0, 0x27, 0xef, 0x25, - 0x06, 0xe0, 0x7a, 0xe5, 0x15, 0x40, 0xe5, 0x29, - 0xe0, 0x07, 0x06, 0xeb, 0x13, 0x60, 0xe5, 0x18, - 0x6b, 0xe0, 0x01, 0xe5, 0x0c, 0x0a, 0xe5, 0x00, - 0x0a, 0x80, 0xe5, 0x1e, 0x86, 0x80, 0xe5, 0x16, - 0x00, 0x16, 0xe5, 0x1c, 0x60, 0xe5, 0x00, 0x16, - 0x8a, 0xe0, 0x22, 0xe1, 0x20, 0xe2, 0x20, 0xe5, - 0x46, 0x20, 0xe9, 0x02, 0xa0, 0xe1, 0x1c, 0x60, - 0xe2, 0x1c, 0x60, 0xe5, 0x20, 0xe0, 0x00, 0xe5, - 0x2c, 0xe0, 0x03, 0x16, 0xe1, 0x03, 0x00, 0xe1, - 0x07, 0x00, 0xc1, 0x00, 0x21, 0x00, 0xe2, 0x03, - 0x00, 0xe2, 0x07, 0x00, 0xc2, 0x00, 0x22, 0x40, - 0xe5, 0x2c, 0xe0, 0x04, 0xe5, 0x80, 0xaf, 0xe0, - 0x01, 0xe5, 0x0e, 0xe0, 0x02, 0xe5, 0x00, 0xe0, - 0x10, 0xa4, 0x00, 0xe4, 0x22, 0x00, 0xe4, 0x01, - 0xe0, 0x3d, 0xa5, 0x20, 0x05, 0x00, 0xe5, 0x24, - 0x00, 0x25, 0x40, 0x05, 0x20, 0xe5, 0x0f, 0x00, - 0x16, 0xeb, 0x00, 0xe5, 0x0f, 0x2f, 0xcb, 0xe5, - 0x17, 0xe0, 0x00, 0xeb, 0x01, 0xe0, 0x28, 0xe5, - 0x0b, 0x00, 0x25, 0x80, 0x8b, 0xe5, 0x0e, 0xab, - 0x40, 0x16, 0xe5, 0x12, 0x80, 0x16, 0xe0, 0x38, - 0xe5, 0x30, 0x60, 0x2b, 0x25, 0xeb, 0x08, 0x20, - 0xeb, 0x26, 0x05, 0x46, 0x00, 0x26, 0x80, 0x66, - 0x65, 0x00, 0x45, 0x00, 0xe5, 0x15, 0x20, 0x46, - 0x60, 0x06, 0xeb, 0x01, 0xc0, 0xf6, 0x01, 0xc0, - 0xe5, 0x15, 0x2b, 0x16, 0xe5, 0x15, 0x4b, 0xe0, - 0x18, 0xe5, 0x00, 0x0f, 0xe5, 0x14, 0x26, 0x60, - 0x8b, 0xd6, 0xe0, 0x01, 0xe5, 0x2e, 0x40, 0xd6, - 0xe5, 0x0e, 0x20, 0xeb, 0x00, 0xe5, 0x0b, 0x80, - 0xeb, 0x00, 0xe5, 0x0a, 0xc0, 0x76, 0xe0, 0x04, - 0xcb, 0xe0, 0x48, 0xe5, 0x41, 0xe0, 0x2f, 0xe1, - 0x2b, 0xe0, 0x05, 0xe2, 0x2b, 0xc0, 0xab, 0xe5, - 0x1c, 0x66, 0xe0, 0x00, 0xe9, 0x02, 0xa0, 0xe9, - 0x02, 0x65, 0x04, 0x05, 0xe1, 0x0e, 0x40, 0x86, - 0x11, 0x04, 0xe2, 0x0e, 0xe0, 0x00, 0x2c, 0xe0, - 0x80, 0x48, 0xeb, 0x17, 0x00, 0xe5, 0x22, 0x00, - 0x26, 0x11, 0x20, 0x25, 0xe0, 0x08, 0x45, 0xe0, - 0x2f, 0x66, 0xe5, 0x15, 0xeb, 0x02, 0x05, 0xe0, - 0x00, 0xe5, 0x0e, 0xe6, 0x03, 0x6b, 0x96, 0xe0, - 0x0e, 0xe5, 0x0a, 0x66, 0x76, 0xe0, 0x1e, 0xe5, - 0x0d, 0xcb, 0xe0, 0x0c, 0xe5, 0x0f, 0xe0, 0x01, - 0x07, 0x06, 0x07, 0xe5, 0x2d, 0xe6, 0x07, 0xd6, - 0x60, 0xeb, 0x0c, 0xe9, 0x02, 0x06, 0x25, 0x26, - 0x05, 0xe0, 0x01, 0x46, 0x07, 0xe5, 0x25, 0x47, - 0x66, 0x27, 0x26, 0x36, 0x1b, 0x76, 0x06, 0xe0, - 0x02, 0x1b, 0x20, 0xe5, 0x11, 0xc0, 0xe9, 0x02, - 0xa0, 0x46, 0xe5, 0x1c, 0x86, 0x07, 0xe6, 0x00, - 0x00, 0xe9, 0x02, 0x76, 0x05, 0x27, 0x05, 0xe0, - 0x00, 0xe5, 0x1b, 0x06, 0x36, 0x05, 0xe0, 0x01, - 0x26, 0x07, 0xe5, 0x28, 0x47, 0xe6, 0x01, 0x27, - 0x65, 0x76, 0x66, 0x16, 0x07, 0x06, 0xe9, 0x02, - 0x05, 0x16, 0x05, 0x56, 0x00, 0xeb, 0x0c, 0xe0, - 0x03, 0xe5, 0x0a, 0x00, 0xe5, 0x11, 0x47, 0x46, - 0x27, 0x06, 0x07, 0x26, 0xb6, 0x06, 0x25, 0x06, - 0xe0, 0x36, 0xc5, 0x00, 0x05, 0x00, 0x65, 0x00, - 0xe5, 0x07, 0x00, 0xe5, 0x02, 0x16, 0xa0, 0xe5, - 0x27, 0x06, 0x47, 0xe6, 0x00, 0x80, 0xe9, 0x02, - 0xa0, 0x26, 0x27, 0x00, 0xe5, 0x00, 0x20, 0x25, - 0x20, 0xe5, 0x0e, 0x00, 0xc5, 0x00, 0x25, 0x00, - 0x85, 0x00, 0x26, 0x05, 0x27, 0x06, 0x67, 0x20, - 0x27, 0x20, 0x47, 0x20, 0x05, 0xa0, 0x07, 0x80, - 0x85, 0x27, 0x20, 0xc6, 0x40, 0x86, 0xe0, 0x03, - 0xe5, 0x02, 0x00, 0x05, 0x20, 0x05, 0x00, 0xe5, - 0x1e, 0x00, 0x05, 0x47, 0xa6, 0x00, 0x07, 0x20, - 0x07, 0x00, 0x67, 0x00, 0x27, 0x06, 0x07, 0x06, - 0x05, 0x06, 0x05, 0x36, 0x00, 0x36, 0xe0, 0x00, - 0x26, 0xe0, 0x15, 0xe5, 0x2d, 0x47, 0xe6, 0x00, - 0x27, 0x46, 0x07, 0x06, 0x65, 0x96, 0xe9, 0x02, - 0x36, 0x00, 0x16, 0x06, 0x45, 0xe0, 0x16, 0xe5, - 0x28, 0x47, 0xa6, 0x07, 0x06, 0x67, 0x26, 0x07, - 0x26, 0x25, 0x16, 0x05, 0xe0, 0x00, 0xe9, 0x02, - 0xe0, 0x80, 0x1e, 0xe5, 0x27, 0x47, 0x66, 0x20, - 0x67, 0x26, 0x07, 0x26, 0xf6, 0x0f, 0x65, 0x26, - 0xe0, 0x1a, 0xe5, 0x28, 0x47, 0xe6, 0x00, 0x27, - 0x06, 0x07, 0x26, 0x56, 0x05, 0xe0, 0x03, 0xe9, - 0x02, 0xa0, 0xf6, 0x05, 0xe0, 0x0b, 0xe5, 0x23, - 0x06, 0x07, 0x06, 0x27, 0xa6, 0x07, 0x06, 0x05, - 0x16, 0xa0, 0xe9, 0x02, 0xa0, 0xe9, 0x0c, 0xe0, - 0x14, 0xe5, 0x13, 0x20, 0x06, 0x07, 0x06, 0x27, - 0x66, 0x07, 0x86, 0x60, 0xe9, 0x02, 0x2b, 0x56, - 0x0f, 0xc5, 0xe0, 0x80, 0x31, 0xe5, 0x24, 0x47, - 0xe6, 0x01, 0x07, 0x26, 0x16, 0xe0, 0x5c, 0xe1, - 0x18, 0xe2, 0x18, 0xe9, 0x02, 0xeb, 0x01, 0xe0, - 0x04, 0xe5, 0x00, 0x20, 0x05, 0x20, 0xe5, 0x00, - 0x00, 0x25, 0x00, 0xe5, 0x10, 0xa7, 0x00, 0x27, - 0x20, 0x26, 0x07, 0x06, 0x05, 0x07, 0x05, 0x07, - 0x06, 0x56, 0xe0, 0x01, 0xe9, 0x02, 0xe0, 0x3e, - 0xe5, 0x00, 0x20, 0xe5, 0x1f, 0x47, 0x66, 0x20, - 0x26, 0x67, 0x06, 0x05, 0x16, 0x05, 0x07, 0xe0, - 0x13, 0x05, 0xe6, 0x02, 0xe5, 0x20, 0xa6, 0x07, - 0x05, 0x66, 0xf6, 0x00, 0x06, 0xe0, 0x00, 0x05, - 0xa6, 0x27, 0x46, 0xe5, 0x26, 0xe6, 0x05, 0x07, - 0x26, 0x56, 0x05, 0x96, 0xe0, 0x05, 0xe5, 0x41, - 0xc0, 0xf6, 0x02, 0xe0, 0x80, 0x2e, 0xe5, 0x19, - 0x16, 0xe0, 0x06, 0xe9, 0x02, 0xa0, 0xe5, 0x01, - 0x00, 0xe5, 0x1d, 0x07, 0xc6, 0x00, 0xa6, 0x07, - 0x06, 0x05, 0x96, 0xe0, 0x02, 0xe9, 0x02, 0xeb, - 0x0b, 0x40, 0x36, 0xe5, 0x16, 0x20, 0xe6, 0x0e, - 0x00, 0x07, 0xc6, 0x07, 0x26, 0x07, 0x26, 0xe0, - 0x41, 0xc5, 0x00, 0x25, 0x00, 0xe5, 0x1e, 0xa6, - 0x40, 0x06, 0x00, 0x26, 0x00, 0xc6, 0x05, 0x06, - 0xe0, 0x00, 0xe9, 0x02, 0xa0, 0xa5, 0x00, 0x25, - 0x00, 0xe5, 0x18, 0x87, 0x00, 0x26, 0x00, 0x27, - 0x06, 0x07, 0x06, 0x05, 0xc0, 0xe9, 0x02, 0xe0, - 0x80, 0xae, 0xe5, 0x0b, 0x26, 0x27, 0x36, 0xc0, - 0x26, 0x05, 0x07, 0xe5, 0x05, 0x00, 0xe5, 0x1a, - 0x27, 0x86, 0x40, 0x27, 0x06, 0x07, 0x06, 0xf6, - 0x05, 0xe9, 0x02, 0x06, 0xe0, 0x4d, 0x05, 0xe0, - 0x07, 0xeb, 0x0d, 0xef, 0x00, 0x6d, 0xef, 0x09, - 0xe0, 0x05, 0x16, 0xe5, 0x83, 0x12, 0xe0, 0x5e, - 0xea, 0x67, 0x00, 0x96, 0xe0, 0x03, 0xe5, 0x80, - 0x3c, 0xe0, 0x89, 0xc4, 0xe5, 0x59, 0x36, 0xe0, - 0x05, 0xe5, 0x83, 0xa8, 0xfb, 0x08, 0x06, 0xa5, - 0xe6, 0x07, 0xe0, 0x02, 0xe5, 0x8f, 0x13, 0x80, - 0xe5, 0x81, 0xbf, 0xe0, 0x9a, 0x31, 0xe5, 0x16, - 0xe6, 0x04, 0x47, 0x46, 0xe9, 0x02, 0xe0, 0x86, - 0x3e, 0xe5, 0x81, 0xb1, 0xc0, 0xe5, 0x17, 0x00, - 0xe9, 0x02, 0x60, 0x36, 0xe5, 0x47, 0x00, 0xe9, - 0x02, 0xa0, 0xe5, 0x16, 0x20, 0x86, 0x16, 0xe0, - 0x02, 0xe5, 0x28, 0xc6, 0x96, 0x6f, 0x64, 0x16, - 0x0f, 0xe0, 0x02, 0xe9, 0x02, 0x00, 0xcb, 0x00, - 0xe5, 0x0d, 0x80, 0xe5, 0x0b, 0xe0, 0x81, 0x28, - 0x44, 0xe5, 0x20, 0x24, 0x56, 0xe9, 0x02, 0xe0, - 0x80, 0x3e, 0xe1, 0x18, 0xe2, 0x18, 0xeb, 0x0f, - 0x76, 0xe0, 0x5d, 0xe5, 0x43, 0x60, 0x06, 0x05, - 0xe7, 0x2f, 0xc0, 0x66, 0xe4, 0x05, 0xe0, 0x38, - 0x24, 0x16, 0x04, 0x06, 0xe0, 0x03, 0x27, 0xe0, - 0x06, 0xe5, 0x97, 0x70, 0xe0, 0x00, 0xe5, 0x84, - 0x4e, 0xe0, 0x21, 0xe5, 0x02, 0xe0, 0xa2, 0x5f, - 0x64, 0x00, 0xc4, 0x00, 0x24, 0x00, 0xe5, 0x80, - 0x9b, 0xe0, 0x07, 0x05, 0xe0, 0x15, 0x45, 0x20, - 0x05, 0xe0, 0x06, 0x65, 0xe0, 0x00, 0xe5, 0x81, - 0x04, 0xe0, 0x88, 0x7c, 0xe5, 0x63, 0x80, 0xe5, - 0x05, 0x40, 0xe5, 0x01, 0xc0, 0xe5, 0x02, 0x20, - 0x0f, 0x26, 0x16, 0x7b, 0xe0, 0x8e, 0xd4, 0xef, - 0x80, 0x68, 0xe9, 0x02, 0xa0, 0xef, 0x81, 0x2c, - 0xe0, 0x44, 0xe6, 0x26, 0x20, 0xe6, 0x0f, 0xe0, - 0x01, 0xef, 0x6c, 0xe0, 0x34, 0xef, 0x80, 0x6e, - 0xe0, 0x02, 0xef, 0x1f, 0x20, 0xef, 0x34, 0x27, - 0x46, 0x4f, 0xa7, 0xfb, 0x00, 0xe6, 0x00, 0x2f, - 0xc6, 0xef, 0x16, 0x66, 0xef, 0x35, 0xe0, 0x0d, - 0xef, 0x3a, 0x46, 0x0f, 0xe0, 0x72, 0xeb, 0x0c, - 0xe0, 0x04, 0xeb, 0x0c, 0xe0, 0x04, 0xef, 0x4f, - 0xe0, 0x01, 0xeb, 0x11, 0xe0, 0x7f, 0xe1, 0x12, - 0xe2, 0x12, 0xe1, 0x12, 0xc2, 0x00, 0xe2, 0x0a, - 0xe1, 0x12, 0xe2, 0x12, 0x01, 0x00, 0x21, 0x20, - 0x01, 0x20, 0x21, 0x20, 0x61, 0x00, 0xe1, 0x00, - 0x62, 0x00, 0x02, 0x00, 0xc2, 0x00, 0xe2, 0x03, - 0xe1, 0x12, 0xe2, 0x12, 0x21, 0x00, 0x61, 0x20, - 0xe1, 0x00, 0x00, 0xc1, 0x00, 0xe2, 0x12, 0x21, - 0x00, 0x61, 0x00, 0x81, 0x00, 0x01, 0x40, 0xc1, - 0x00, 0xe2, 0x12, 0xe1, 0x12, 0xe2, 0x12, 0xe1, - 0x12, 0xe2, 0x12, 0xe1, 0x12, 0xe2, 0x12, 0xe1, - 0x12, 0xe2, 0x12, 0xe1, 0x12, 0xe2, 0x12, 0xe1, - 0x12, 0xe2, 0x14, 0x20, 0xe1, 0x11, 0x0c, 0xe2, - 0x11, 0x0c, 0xa2, 0xe1, 0x11, 0x0c, 0xe2, 0x11, - 0x0c, 0xa2, 0xe1, 0x11, 0x0c, 0xe2, 0x11, 0x0c, - 0xa2, 0xe1, 0x11, 0x0c, 0xe2, 0x11, 0x0c, 0xa2, - 0xe1, 0x11, 0x0c, 0xe2, 0x11, 0x0c, 0xa2, 0x3f, - 0x20, 0xe9, 0x2a, 0xef, 0x81, 0x78, 0xe6, 0x2f, - 0x6f, 0xe6, 0x2a, 0xef, 0x00, 0x06, 0xef, 0x06, - 0x06, 0x2f, 0x96, 0xe0, 0x07, 0x86, 0x00, 0xe6, - 0x07, 0xe0, 0x83, 0xc8, 0xe2, 0x02, 0x05, 0xe2, - 0x0c, 0xa0, 0xa2, 0xe0, 0x80, 0x4d, 0xc6, 0x00, - 0xe6, 0x09, 0x20, 0xc6, 0x00, 0x26, 0x00, 0x86, - 0x80, 0xe4, 0x36, 0xe0, 0x19, 0x06, 0xe0, 0x68, - 0xe5, 0x25, 0x40, 0xc6, 0xc4, 0x20, 0xe9, 0x02, - 0x60, 0x05, 0x0f, 0xe0, 0x80, 0xb8, 0xe5, 0x16, - 0x06, 0xe0, 0x09, 0xe5, 0x24, 0x66, 0xe9, 0x02, - 0x80, 0x0d, 0xe0, 0x81, 0x48, 0xe5, 0x13, 0x04, - 0x66, 0xe9, 0x02, 0xe0, 0x80, 0x4e, 0xe5, 0x16, - 0x26, 0x05, 0xe9, 0x02, 0x60, 0x16, 0xe0, 0x81, - 0x58, 0xc5, 0x00, 0x65, 0x00, 0x25, 0x00, 0xe5, - 0x07, 0x00, 0xe5, 0x80, 0x3d, 0x20, 0xeb, 0x01, - 0xc6, 0xe0, 0x21, 0xe1, 0x1a, 0xe2, 0x1a, 0xc6, - 0x04, 0x60, 0xe9, 0x02, 0x60, 0x36, 0xe0, 0x82, - 0x89, 0xeb, 0x33, 0x0f, 0x4b, 0x0d, 0x6b, 0xe0, - 0x44, 0xeb, 0x25, 0x0f, 0xeb, 0x07, 0xe0, 0x80, - 0x3a, 0x65, 0x00, 0xe5, 0x13, 0x00, 0x25, 0x00, - 0x05, 0x20, 0x05, 0x00, 0xe5, 0x02, 0x00, 0x65, - 0x00, 0x05, 0x00, 0x05, 0xa0, 0x05, 0x60, 0x05, - 0x00, 0x05, 0x00, 0x05, 0x00, 0x45, 0x00, 0x25, - 0x00, 0x05, 0x20, 0x05, 0x00, 0x05, 0x00, 0x05, - 0x00, 0x05, 0x00, 0x05, 0x00, 0x25, 0x00, 0x05, - 0x20, 0x65, 0x00, 0xc5, 0x00, 0x65, 0x00, 0x65, - 0x00, 0x05, 0x00, 0xe5, 0x02, 0x00, 0xe5, 0x09, - 0x80, 0x45, 0x00, 0x85, 0x00, 0xe5, 0x09, 0xe0, - 0x2c, 0x2c, 0xe0, 0x80, 0x86, 0xef, 0x24, 0x60, - 0xef, 0x5c, 0xe0, 0x04, 0xef, 0x07, 0x20, 0xef, - 0x07, 0x00, 0xef, 0x07, 0x00, 0xef, 0x1d, 0xe0, - 0x02, 0xeb, 0x05, 0xef, 0x80, 0x19, 0xe0, 0x30, - 0xef, 0x15, 0xe0, 0x05, 0xef, 0x24, 0x60, 0xef, - 0x01, 0xc0, 0x2f, 0xe0, 0x06, 0xaf, 0xe0, 0x80, - 0x12, 0xef, 0x80, 0x73, 0x8e, 0xef, 0x82, 0x50, - 0x60, 0xef, 0x09, 0x40, 0xef, 0x05, 0x40, 0xef, - 0x6f, 0x60, 0xef, 0x57, 0xa0, 0xef, 0x04, 0x60, - 0x0f, 0xe0, 0x07, 0xef, 0x04, 0x60, 0xef, 0x30, - 0xe0, 0x00, 0xef, 0x02, 0xa0, 0xef, 0x20, 0xe0, - 0x00, 0xef, 0x16, 0x20, 0xef, 0x04, 0x60, 0x2f, - 0xe0, 0x36, 0xef, 0x80, 0xcc, 0xe0, 0x04, 0xef, - 0x06, 0x20, 0xef, 0x05, 0x40, 0xef, 0x02, 0x80, - 0xef, 0x30, 0xc0, 0xef, 0x07, 0x20, 0xef, 0x03, - 0xa0, 0xef, 0x01, 0xc0, 0xef, 0x80, 0x0b, 0x00, - 0xef, 0x54, 0xe9, 0x02, 0xe0, 0x83, 0x7e, 0xe5, - 0xc0, 0x66, 0x58, 0xe0, 0x18, 0xe5, 0x8f, 0xb2, - 0xa0, 0xe5, 0x80, 0x56, 0x20, 0xe5, 0x95, 0xfa, - 0xe0, 0x06, 0xe5, 0x9c, 0xa9, 0xe0, 0x07, 0xe5, - 0x81, 0xe6, 0xe0, 0x89, 0x1a, 0xe5, 0x81, 0x96, - 0xe0, 0x85, 0x5a, 0xe5, 0x92, 0xc3, 0x80, 0xe5, - 0x8f, 0xd8, 0xe0, 0xca, 0x9b, 0xc9, 0x1b, 0xe0, - 0x16, 0xfb, 0x58, 0xe0, 0x78, 0xe6, 0x80, 0x68, - 0xe0, 0xc0, 0xbd, 0x88, 0xfd, 0xc0, 0xbf, 0x76, - 0x20, 0xfd, 0xc0, 0xbf, 0x76, 0x20, -}; - -typedef enum { - UNICODE_SCRIPT_Unknown, - UNICODE_SCRIPT_Adlam, - UNICODE_SCRIPT_Ahom, - UNICODE_SCRIPT_Anatolian_Hieroglyphs, - UNICODE_SCRIPT_Arabic, - UNICODE_SCRIPT_Armenian, - UNICODE_SCRIPT_Avestan, - UNICODE_SCRIPT_Balinese, - UNICODE_SCRIPT_Bamum, - UNICODE_SCRIPT_Bassa_Vah, - UNICODE_SCRIPT_Batak, - UNICODE_SCRIPT_Bengali, - UNICODE_SCRIPT_Bhaiksuki, - UNICODE_SCRIPT_Bopomofo, - UNICODE_SCRIPT_Brahmi, - UNICODE_SCRIPT_Braille, - UNICODE_SCRIPT_Buginese, - UNICODE_SCRIPT_Buhid, - UNICODE_SCRIPT_Canadian_Aboriginal, - UNICODE_SCRIPT_Carian, - UNICODE_SCRIPT_Caucasian_Albanian, - UNICODE_SCRIPT_Chakma, - UNICODE_SCRIPT_Cham, - UNICODE_SCRIPT_Cherokee, - UNICODE_SCRIPT_Chorasmian, - UNICODE_SCRIPT_Common, - UNICODE_SCRIPT_Coptic, - UNICODE_SCRIPT_Cuneiform, - UNICODE_SCRIPT_Cypriot, - UNICODE_SCRIPT_Cyrillic, - UNICODE_SCRIPT_Cypro_Minoan, - UNICODE_SCRIPT_Deseret, - UNICODE_SCRIPT_Devanagari, - UNICODE_SCRIPT_Dives_Akuru, - UNICODE_SCRIPT_Dogra, - UNICODE_SCRIPT_Duployan, - UNICODE_SCRIPT_Egyptian_Hieroglyphs, - UNICODE_SCRIPT_Elbasan, - UNICODE_SCRIPT_Elymaic, - UNICODE_SCRIPT_Ethiopic, - UNICODE_SCRIPT_Georgian, - UNICODE_SCRIPT_Glagolitic, - UNICODE_SCRIPT_Gothic, - UNICODE_SCRIPT_Garay, - UNICODE_SCRIPT_Grantha, - UNICODE_SCRIPT_Greek, - UNICODE_SCRIPT_Gujarati, - UNICODE_SCRIPT_Gunjala_Gondi, - UNICODE_SCRIPT_Gurmukhi, - UNICODE_SCRIPT_Gurung_Khema, - UNICODE_SCRIPT_Han, - UNICODE_SCRIPT_Hangul, - UNICODE_SCRIPT_Hanifi_Rohingya, - UNICODE_SCRIPT_Hanunoo, - UNICODE_SCRIPT_Hatran, - UNICODE_SCRIPT_Hebrew, - UNICODE_SCRIPT_Hiragana, - UNICODE_SCRIPT_Imperial_Aramaic, - UNICODE_SCRIPT_Inherited, - UNICODE_SCRIPT_Inscriptional_Pahlavi, - UNICODE_SCRIPT_Inscriptional_Parthian, - UNICODE_SCRIPT_Javanese, - UNICODE_SCRIPT_Kaithi, - UNICODE_SCRIPT_Kannada, - UNICODE_SCRIPT_Katakana, - UNICODE_SCRIPT_Kawi, - UNICODE_SCRIPT_Kayah_Li, - UNICODE_SCRIPT_Kharoshthi, - UNICODE_SCRIPT_Khmer, - UNICODE_SCRIPT_Khojki, - UNICODE_SCRIPT_Khitan_Small_Script, - UNICODE_SCRIPT_Khudawadi, - UNICODE_SCRIPT_Kirat_Rai, - UNICODE_SCRIPT_Lao, - UNICODE_SCRIPT_Latin, - UNICODE_SCRIPT_Lepcha, - UNICODE_SCRIPT_Limbu, - UNICODE_SCRIPT_Linear_A, - UNICODE_SCRIPT_Linear_B, - UNICODE_SCRIPT_Lisu, - UNICODE_SCRIPT_Lycian, - UNICODE_SCRIPT_Lydian, - UNICODE_SCRIPT_Makasar, - UNICODE_SCRIPT_Mahajani, - UNICODE_SCRIPT_Malayalam, - UNICODE_SCRIPT_Mandaic, - UNICODE_SCRIPT_Manichaean, - UNICODE_SCRIPT_Marchen, - UNICODE_SCRIPT_Masaram_Gondi, - UNICODE_SCRIPT_Medefaidrin, - UNICODE_SCRIPT_Meetei_Mayek, - UNICODE_SCRIPT_Mende_Kikakui, - UNICODE_SCRIPT_Meroitic_Cursive, - UNICODE_SCRIPT_Meroitic_Hieroglyphs, - UNICODE_SCRIPT_Miao, - UNICODE_SCRIPT_Modi, - UNICODE_SCRIPT_Mongolian, - UNICODE_SCRIPT_Mro, - UNICODE_SCRIPT_Multani, - UNICODE_SCRIPT_Myanmar, - UNICODE_SCRIPT_Nabataean, - UNICODE_SCRIPT_Nag_Mundari, - UNICODE_SCRIPT_Nandinagari, - UNICODE_SCRIPT_New_Tai_Lue, - UNICODE_SCRIPT_Newa, - UNICODE_SCRIPT_Nko, - UNICODE_SCRIPT_Nushu, - UNICODE_SCRIPT_Nyiakeng_Puachue_Hmong, - UNICODE_SCRIPT_Ogham, - UNICODE_SCRIPT_Ol_Chiki, - UNICODE_SCRIPT_Ol_Onal, - UNICODE_SCRIPT_Old_Hungarian, - UNICODE_SCRIPT_Old_Italic, - UNICODE_SCRIPT_Old_North_Arabian, - UNICODE_SCRIPT_Old_Permic, - UNICODE_SCRIPT_Old_Persian, - UNICODE_SCRIPT_Old_Sogdian, - UNICODE_SCRIPT_Old_South_Arabian, - UNICODE_SCRIPT_Old_Turkic, - UNICODE_SCRIPT_Old_Uyghur, - UNICODE_SCRIPT_Oriya, - UNICODE_SCRIPT_Osage, - UNICODE_SCRIPT_Osmanya, - UNICODE_SCRIPT_Pahawh_Hmong, - UNICODE_SCRIPT_Palmyrene, - UNICODE_SCRIPT_Pau_Cin_Hau, - UNICODE_SCRIPT_Phags_Pa, - UNICODE_SCRIPT_Phoenician, - UNICODE_SCRIPT_Psalter_Pahlavi, - UNICODE_SCRIPT_Rejang, - UNICODE_SCRIPT_Runic, - UNICODE_SCRIPT_Samaritan, - UNICODE_SCRIPT_Saurashtra, - UNICODE_SCRIPT_Sharada, - UNICODE_SCRIPT_Shavian, - UNICODE_SCRIPT_Siddham, - UNICODE_SCRIPT_SignWriting, - UNICODE_SCRIPT_Sinhala, - UNICODE_SCRIPT_Sogdian, - UNICODE_SCRIPT_Sora_Sompeng, - UNICODE_SCRIPT_Soyombo, - UNICODE_SCRIPT_Sundanese, - UNICODE_SCRIPT_Sunuwar, - UNICODE_SCRIPT_Syloti_Nagri, - UNICODE_SCRIPT_Syriac, - UNICODE_SCRIPT_Tagalog, - UNICODE_SCRIPT_Tagbanwa, - UNICODE_SCRIPT_Tai_Le, - UNICODE_SCRIPT_Tai_Tham, - UNICODE_SCRIPT_Tai_Viet, - UNICODE_SCRIPT_Takri, - UNICODE_SCRIPT_Tamil, - UNICODE_SCRIPT_Tangut, - UNICODE_SCRIPT_Telugu, - UNICODE_SCRIPT_Thaana, - UNICODE_SCRIPT_Thai, - UNICODE_SCRIPT_Tibetan, - UNICODE_SCRIPT_Tifinagh, - UNICODE_SCRIPT_Tirhuta, - UNICODE_SCRIPT_Tangsa, - UNICODE_SCRIPT_Todhri, - UNICODE_SCRIPT_Toto, - UNICODE_SCRIPT_Tulu_Tigalari, - UNICODE_SCRIPT_Ugaritic, - UNICODE_SCRIPT_Vai, - UNICODE_SCRIPT_Vithkuqi, - UNICODE_SCRIPT_Wancho, - UNICODE_SCRIPT_Warang_Citi, - UNICODE_SCRIPT_Yezidi, - UNICODE_SCRIPT_Yi, - UNICODE_SCRIPT_Zanabazar_Square, - UNICODE_SCRIPT_COUNT, -} UnicodeScriptEnum; - -static const char unicode_script_name_table[] = - "Adlam,Adlm" "\0" - "Ahom,Ahom" "\0" - "Anatolian_Hieroglyphs,Hluw" "\0" - "Arabic,Arab" "\0" - "Armenian,Armn" "\0" - "Avestan,Avst" "\0" - "Balinese,Bali" "\0" - "Bamum,Bamu" "\0" - "Bassa_Vah,Bass" "\0" - "Batak,Batk" "\0" - "Bengali,Beng" "\0" - "Bhaiksuki,Bhks" "\0" - "Bopomofo,Bopo" "\0" - "Brahmi,Brah" "\0" - "Braille,Brai" "\0" - "Buginese,Bugi" "\0" - "Buhid,Buhd" "\0" - "Canadian_Aboriginal,Cans" "\0" - "Carian,Cari" "\0" - "Caucasian_Albanian,Aghb" "\0" - "Chakma,Cakm" "\0" - "Cham,Cham" "\0" - "Cherokee,Cher" "\0" - "Chorasmian,Chrs" "\0" - "Common,Zyyy" "\0" - "Coptic,Copt,Qaac" "\0" - "Cuneiform,Xsux" "\0" - "Cypriot,Cprt" "\0" - "Cyrillic,Cyrl" "\0" - "Cypro_Minoan,Cpmn" "\0" - "Deseret,Dsrt" "\0" - "Devanagari,Deva" "\0" - "Dives_Akuru,Diak" "\0" - "Dogra,Dogr" "\0" - "Duployan,Dupl" "\0" - "Egyptian_Hieroglyphs,Egyp" "\0" - "Elbasan,Elba" "\0" - "Elymaic,Elym" "\0" - "Ethiopic,Ethi" "\0" - "Georgian,Geor" "\0" - "Glagolitic,Glag" "\0" - "Gothic,Goth" "\0" - "Garay,Gara" "\0" - "Grantha,Gran" "\0" - "Greek,Grek" "\0" - "Gujarati,Gujr" "\0" - "Gunjala_Gondi,Gong" "\0" - "Gurmukhi,Guru" "\0" - "Gurung_Khema,Gukh" "\0" - "Han,Hani" "\0" - "Hangul,Hang" "\0" - "Hanifi_Rohingya,Rohg" "\0" - "Hanunoo,Hano" "\0" - "Hatran,Hatr" "\0" - "Hebrew,Hebr" "\0" - "Hiragana,Hira" "\0" - "Imperial_Aramaic,Armi" "\0" - "Inherited,Zinh,Qaai" "\0" - "Inscriptional_Pahlavi,Phli" "\0" - "Inscriptional_Parthian,Prti" "\0" - "Javanese,Java" "\0" - "Kaithi,Kthi" "\0" - "Kannada,Knda" "\0" - "Katakana,Kana" "\0" - "Kawi,Kawi" "\0" - "Kayah_Li,Kali" "\0" - "Kharoshthi,Khar" "\0" - "Khmer,Khmr" "\0" - "Khojki,Khoj" "\0" - "Khitan_Small_Script,Kits" "\0" - "Khudawadi,Sind" "\0" - "Kirat_Rai,Krai" "\0" - "Lao,Laoo" "\0" - "Latin,Latn" "\0" - "Lepcha,Lepc" "\0" - "Limbu,Limb" "\0" - "Linear_A,Lina" "\0" - "Linear_B,Linb" "\0" - "Lisu,Lisu" "\0" - "Lycian,Lyci" "\0" - "Lydian,Lydi" "\0" - "Makasar,Maka" "\0" - "Mahajani,Mahj" "\0" - "Malayalam,Mlym" "\0" - "Mandaic,Mand" "\0" - "Manichaean,Mani" "\0" - "Marchen,Marc" "\0" - "Masaram_Gondi,Gonm" "\0" - "Medefaidrin,Medf" "\0" - "Meetei_Mayek,Mtei" "\0" - "Mende_Kikakui,Mend" "\0" - "Meroitic_Cursive,Merc" "\0" - "Meroitic_Hieroglyphs,Mero" "\0" - "Miao,Plrd" "\0" - "Modi,Modi" "\0" - "Mongolian,Mong" "\0" - "Mro,Mroo" "\0" - "Multani,Mult" "\0" - "Myanmar,Mymr" "\0" - "Nabataean,Nbat" "\0" - "Nag_Mundari,Nagm" "\0" - "Nandinagari,Nand" "\0" - "New_Tai_Lue,Talu" "\0" - "Newa,Newa" "\0" - "Nko,Nkoo" "\0" - "Nushu,Nshu" "\0" - "Nyiakeng_Puachue_Hmong,Hmnp" "\0" - "Ogham,Ogam" "\0" - "Ol_Chiki,Olck" "\0" - "Ol_Onal,Onao" "\0" - "Old_Hungarian,Hung" "\0" - "Old_Italic,Ital" "\0" - "Old_North_Arabian,Narb" "\0" - "Old_Permic,Perm" "\0" - "Old_Persian,Xpeo" "\0" - "Old_Sogdian,Sogo" "\0" - "Old_South_Arabian,Sarb" "\0" - "Old_Turkic,Orkh" "\0" - "Old_Uyghur,Ougr" "\0" - "Oriya,Orya" "\0" - "Osage,Osge" "\0" - "Osmanya,Osma" "\0" - "Pahawh_Hmong,Hmng" "\0" - "Palmyrene,Palm" "\0" - "Pau_Cin_Hau,Pauc" "\0" - "Phags_Pa,Phag" "\0" - "Phoenician,Phnx" "\0" - "Psalter_Pahlavi,Phlp" "\0" - "Rejang,Rjng" "\0" - "Runic,Runr" "\0" - "Samaritan,Samr" "\0" - "Saurashtra,Saur" "\0" - "Sharada,Shrd" "\0" - "Shavian,Shaw" "\0" - "Siddham,Sidd" "\0" - "SignWriting,Sgnw" "\0" - "Sinhala,Sinh" "\0" - "Sogdian,Sogd" "\0" - "Sora_Sompeng,Sora" "\0" - "Soyombo,Soyo" "\0" - "Sundanese,Sund" "\0" - "Sunuwar,Sunu" "\0" - "Syloti_Nagri,Sylo" "\0" - "Syriac,Syrc" "\0" - "Tagalog,Tglg" "\0" - "Tagbanwa,Tagb" "\0" - "Tai_Le,Tale" "\0" - "Tai_Tham,Lana" "\0" - "Tai_Viet,Tavt" "\0" - "Takri,Takr" "\0" - "Tamil,Taml" "\0" - "Tangut,Tang" "\0" - "Telugu,Telu" "\0" - "Thaana,Thaa" "\0" - "Thai,Thai" "\0" - "Tibetan,Tibt" "\0" - "Tifinagh,Tfng" "\0" - "Tirhuta,Tirh" "\0" - "Tangsa,Tnsa" "\0" - "Todhri,Todr" "\0" - "Toto,Toto" "\0" - "Tulu_Tigalari,Tutg" "\0" - "Ugaritic,Ugar" "\0" - "Vai,Vaii" "\0" - "Vithkuqi,Vith" "\0" - "Wancho,Wcho" "\0" - "Warang_Citi,Wara" "\0" - "Yezidi,Yezi" "\0" - "Yi,Yiii" "\0" - "Zanabazar_Square,Zanb" "\0" -; - -static const uint8_t unicode_script_table[2803] = { - 0xc0, 0x19, 0x99, 0x4a, 0x85, 0x19, 0x99, 0x4a, - 0xae, 0x19, 0x80, 0x4a, 0x8e, 0x19, 0x80, 0x4a, - 0x84, 0x19, 0x96, 0x4a, 0x80, 0x19, 0x9e, 0x4a, - 0x80, 0x19, 0xe1, 0x60, 0x4a, 0xa6, 0x19, 0x84, - 0x4a, 0x84, 0x19, 0x81, 0x0d, 0x93, 0x19, 0xe0, - 0x0f, 0x3a, 0x83, 0x2d, 0x80, 0x19, 0x82, 0x2d, - 0x01, 0x83, 0x2d, 0x80, 0x19, 0x80, 0x2d, 0x03, - 0x80, 0x2d, 0x80, 0x19, 0x80, 0x2d, 0x80, 0x19, - 0x82, 0x2d, 0x00, 0x80, 0x2d, 0x00, 0x93, 0x2d, - 0x00, 0xbe, 0x2d, 0x8d, 0x1a, 0x8f, 0x2d, 0xe0, - 0x24, 0x1d, 0x81, 0x3a, 0xe0, 0x48, 0x1d, 0x00, - 0xa5, 0x05, 0x01, 0xb1, 0x05, 0x01, 0x82, 0x05, - 0x00, 0xb6, 0x37, 0x07, 0x9a, 0x37, 0x03, 0x85, - 0x37, 0x0a, 0x84, 0x04, 0x80, 0x19, 0x85, 0x04, - 0x80, 0x19, 0x8d, 0x04, 0x80, 0x19, 0x82, 0x04, - 0x80, 0x19, 0x9f, 0x04, 0x80, 0x19, 0x89, 0x04, - 0x8a, 0x3a, 0x99, 0x04, 0x80, 0x3a, 0xe0, 0x0b, - 0x04, 0x80, 0x19, 0xa1, 0x04, 0x8d, 0x90, 0x00, - 0xbb, 0x90, 0x01, 0x82, 0x90, 0xaf, 0x04, 0xb1, - 0x9a, 0x0d, 0xba, 0x69, 0x01, 0x82, 0x69, 0xad, - 0x83, 0x01, 0x8e, 0x83, 0x00, 0x9b, 0x55, 0x01, - 0x80, 0x55, 0x00, 0x8a, 0x90, 0x04, 0x9e, 0x04, - 0x00, 0x81, 0x04, 0x04, 0xca, 0x04, 0x80, 0x19, - 0x9c, 0x04, 0xd0, 0x20, 0x83, 0x3a, 0x8e, 0x20, - 0x81, 0x19, 0x99, 0x20, 0x83, 0x0b, 0x00, 0x87, - 0x0b, 0x01, 0x81, 0x0b, 0x01, 0x95, 0x0b, 0x00, - 0x86, 0x0b, 0x00, 0x80, 0x0b, 0x02, 0x83, 0x0b, - 0x01, 0x88, 0x0b, 0x01, 0x81, 0x0b, 0x01, 0x83, - 0x0b, 0x07, 0x80, 0x0b, 0x03, 0x81, 0x0b, 0x00, - 0x84, 0x0b, 0x01, 0x98, 0x0b, 0x01, 0x82, 0x30, - 0x00, 0x85, 0x30, 0x03, 0x81, 0x30, 0x01, 0x95, - 0x30, 0x00, 0x86, 0x30, 0x00, 0x81, 0x30, 0x00, - 0x81, 0x30, 0x00, 0x81, 0x30, 0x01, 0x80, 0x30, - 0x00, 0x84, 0x30, 0x03, 0x81, 0x30, 0x01, 0x82, - 0x30, 0x02, 0x80, 0x30, 0x06, 0x83, 0x30, 0x00, - 0x80, 0x30, 0x06, 0x90, 0x30, 0x09, 0x82, 0x2e, - 0x00, 0x88, 0x2e, 0x00, 0x82, 0x2e, 0x00, 0x95, - 0x2e, 0x00, 0x86, 0x2e, 0x00, 0x81, 0x2e, 0x00, - 0x84, 0x2e, 0x01, 0x89, 0x2e, 0x00, 0x82, 0x2e, - 0x00, 0x82, 0x2e, 0x01, 0x80, 0x2e, 0x0e, 0x83, - 0x2e, 0x01, 0x8b, 0x2e, 0x06, 0x86, 0x2e, 0x00, - 0x82, 0x78, 0x00, 0x87, 0x78, 0x01, 0x81, 0x78, - 0x01, 0x95, 0x78, 0x00, 0x86, 0x78, 0x00, 0x81, - 0x78, 0x00, 0x84, 0x78, 0x01, 0x88, 0x78, 0x01, - 0x81, 0x78, 0x01, 0x82, 0x78, 0x06, 0x82, 0x78, - 0x03, 0x81, 0x78, 0x00, 0x84, 0x78, 0x01, 0x91, - 0x78, 0x09, 0x81, 0x97, 0x00, 0x85, 0x97, 0x02, - 0x82, 0x97, 0x00, 0x83, 0x97, 0x02, 0x81, 0x97, - 0x00, 0x80, 0x97, 0x00, 0x81, 0x97, 0x02, 0x81, - 0x97, 0x02, 0x82, 0x97, 0x02, 0x8b, 0x97, 0x03, - 0x84, 0x97, 0x02, 0x82, 0x97, 0x00, 0x83, 0x97, - 0x01, 0x80, 0x97, 0x05, 0x80, 0x97, 0x0d, 0x94, - 0x97, 0x04, 0x8c, 0x99, 0x00, 0x82, 0x99, 0x00, - 0x96, 0x99, 0x00, 0x8f, 0x99, 0x01, 0x88, 0x99, - 0x00, 0x82, 0x99, 0x00, 0x83, 0x99, 0x06, 0x81, - 0x99, 0x00, 0x82, 0x99, 0x01, 0x80, 0x99, 0x01, - 0x83, 0x99, 0x01, 0x89, 0x99, 0x06, 0x88, 0x99, - 0x8c, 0x3f, 0x00, 0x82, 0x3f, 0x00, 0x96, 0x3f, - 0x00, 0x89, 0x3f, 0x00, 0x84, 0x3f, 0x01, 0x88, - 0x3f, 0x00, 0x82, 0x3f, 0x00, 0x83, 0x3f, 0x06, - 0x81, 0x3f, 0x05, 0x81, 0x3f, 0x00, 0x83, 0x3f, - 0x01, 0x89, 0x3f, 0x00, 0x82, 0x3f, 0x0b, 0x8c, - 0x54, 0x00, 0x82, 0x54, 0x00, 0xb2, 0x54, 0x00, - 0x82, 0x54, 0x00, 0x85, 0x54, 0x03, 0x8f, 0x54, - 0x01, 0x99, 0x54, 0x00, 0x82, 0x89, 0x00, 0x91, - 0x89, 0x02, 0x97, 0x89, 0x00, 0x88, 0x89, 0x00, - 0x80, 0x89, 0x01, 0x86, 0x89, 0x02, 0x80, 0x89, - 0x03, 0x85, 0x89, 0x00, 0x80, 0x89, 0x00, 0x87, - 0x89, 0x05, 0x89, 0x89, 0x01, 0x82, 0x89, 0x0b, - 0xb9, 0x9b, 0x03, 0x80, 0x19, 0x9b, 0x9b, 0x24, - 0x81, 0x49, 0x00, 0x80, 0x49, 0x00, 0x84, 0x49, - 0x00, 0x97, 0x49, 0x00, 0x80, 0x49, 0x00, 0x96, - 0x49, 0x01, 0x84, 0x49, 0x00, 0x80, 0x49, 0x00, - 0x86, 0x49, 0x00, 0x89, 0x49, 0x01, 0x83, 0x49, - 0x1f, 0xc7, 0x9c, 0x00, 0xa3, 0x9c, 0x03, 0xa6, - 0x9c, 0x00, 0xa3, 0x9c, 0x00, 0x8e, 0x9c, 0x00, - 0x86, 0x9c, 0x83, 0x19, 0x81, 0x9c, 0x24, 0xe0, - 0x3f, 0x63, 0xa5, 0x28, 0x00, 0x80, 0x28, 0x04, - 0x80, 0x28, 0x01, 0xaa, 0x28, 0x80, 0x19, 0x83, - 0x28, 0xe0, 0x9f, 0x33, 0xc8, 0x27, 0x00, 0x83, - 0x27, 0x01, 0x86, 0x27, 0x00, 0x80, 0x27, 0x00, - 0x83, 0x27, 0x01, 0xa8, 0x27, 0x00, 0x83, 0x27, - 0x01, 0xa0, 0x27, 0x00, 0x83, 0x27, 0x01, 0x86, - 0x27, 0x00, 0x80, 0x27, 0x00, 0x83, 0x27, 0x01, - 0x8e, 0x27, 0x00, 0xb8, 0x27, 0x00, 0x83, 0x27, - 0x01, 0xc2, 0x27, 0x01, 0x9f, 0x27, 0x02, 0x99, - 0x27, 0x05, 0xd5, 0x17, 0x01, 0x85, 0x17, 0x01, - 0xe2, 0x1f, 0x12, 0x9c, 0x6c, 0x02, 0xca, 0x82, - 0x82, 0x19, 0x8a, 0x82, 0x06, 0x95, 0x91, 0x08, - 0x80, 0x91, 0x94, 0x35, 0x81, 0x19, 0x08, 0x93, - 0x11, 0x0b, 0x8c, 0x92, 0x00, 0x82, 0x92, 0x00, - 0x81, 0x92, 0x0b, 0xdd, 0x44, 0x01, 0x89, 0x44, - 0x05, 0x89, 0x44, 0x05, 0x81, 0x60, 0x81, 0x19, - 0x80, 0x60, 0x80, 0x19, 0x93, 0x60, 0x05, 0xd8, - 0x60, 0x06, 0xaa, 0x60, 0x04, 0xc5, 0x12, 0x09, - 0x9e, 0x4c, 0x00, 0x8b, 0x4c, 0x03, 0x8b, 0x4c, - 0x03, 0x80, 0x4c, 0x02, 0x8b, 0x4c, 0x9d, 0x93, - 0x01, 0x84, 0x93, 0x0a, 0xab, 0x67, 0x03, 0x99, - 0x67, 0x05, 0x8a, 0x67, 0x02, 0x81, 0x67, 0x9f, - 0x44, 0x9b, 0x10, 0x01, 0x81, 0x10, 0xbe, 0x94, - 0x00, 0x9c, 0x94, 0x01, 0x8a, 0x94, 0x05, 0x89, - 0x94, 0x05, 0x8d, 0x94, 0x01, 0x9e, 0x3a, 0x30, - 0xcc, 0x07, 0x00, 0xb1, 0x07, 0xbf, 0x8d, 0xb3, - 0x0a, 0x07, 0x83, 0x0a, 0xb7, 0x4b, 0x02, 0x8e, - 0x4b, 0x02, 0x82, 0x4b, 0xaf, 0x6d, 0x8a, 0x1d, - 0x04, 0xaa, 0x28, 0x01, 0x82, 0x28, 0x87, 0x8d, - 0x07, 0x82, 0x3a, 0x80, 0x19, 0x8c, 0x3a, 0x80, - 0x19, 0x86, 0x3a, 0x83, 0x19, 0x80, 0x3a, 0x85, - 0x19, 0x80, 0x3a, 0x82, 0x19, 0x81, 0x3a, 0x80, - 0x19, 0x04, 0xa5, 0x4a, 0x84, 0x2d, 0x80, 0x1d, - 0xb0, 0x4a, 0x84, 0x2d, 0x83, 0x4a, 0x84, 0x2d, - 0x8c, 0x4a, 0x80, 0x1d, 0xc5, 0x4a, 0x80, 0x2d, - 0xbf, 0x3a, 0xe0, 0x9f, 0x4a, 0x95, 0x2d, 0x01, - 0x85, 0x2d, 0x01, 0xa5, 0x2d, 0x01, 0x85, 0x2d, - 0x01, 0x87, 0x2d, 0x00, 0x80, 0x2d, 0x00, 0x80, - 0x2d, 0x00, 0x80, 0x2d, 0x00, 0x9e, 0x2d, 0x01, - 0xb4, 0x2d, 0x00, 0x8e, 0x2d, 0x00, 0x8d, 0x2d, - 0x01, 0x85, 0x2d, 0x00, 0x92, 0x2d, 0x01, 0x82, - 0x2d, 0x00, 0x88, 0x2d, 0x00, 0x8b, 0x19, 0x81, - 0x3a, 0xd6, 0x19, 0x00, 0x8a, 0x19, 0x80, 0x4a, - 0x01, 0x8a, 0x19, 0x80, 0x4a, 0x8e, 0x19, 0x00, - 0x8c, 0x4a, 0x02, 0xa0, 0x19, 0x0e, 0xa0, 0x3a, - 0x0e, 0xa5, 0x19, 0x80, 0x2d, 0x82, 0x19, 0x81, - 0x4a, 0x85, 0x19, 0x80, 0x4a, 0x9a, 0x19, 0x80, - 0x4a, 0x90, 0x19, 0xa8, 0x4a, 0x82, 0x19, 0x03, - 0xe2, 0x39, 0x19, 0x15, 0x8a, 0x19, 0x14, 0xe3, - 0x3f, 0x19, 0xe0, 0x9f, 0x0f, 0xe2, 0x13, 0x19, - 0x01, 0x9f, 0x19, 0x00, 0xe0, 0x08, 0x19, 0xdf, - 0x29, 0x9f, 0x4a, 0xe0, 0x13, 0x1a, 0x04, 0x86, - 0x1a, 0xa5, 0x28, 0x00, 0x80, 0x28, 0x04, 0x80, - 0x28, 0x01, 0xb7, 0x9d, 0x06, 0x81, 0x9d, 0x0d, - 0x80, 0x9d, 0x96, 0x27, 0x08, 0x86, 0x27, 0x00, - 0x86, 0x27, 0x00, 0x86, 0x27, 0x00, 0x86, 0x27, - 0x00, 0x86, 0x27, 0x00, 0x86, 0x27, 0x00, 0x86, - 0x27, 0x00, 0x86, 0x27, 0x00, 0x9f, 0x1d, 0xdd, - 0x19, 0x21, 0x99, 0x32, 0x00, 0xd8, 0x32, 0x0b, - 0xe0, 0x75, 0x32, 0x19, 0x94, 0x19, 0x80, 0x32, - 0x80, 0x19, 0x80, 0x32, 0x98, 0x19, 0x88, 0x32, - 0x83, 0x3a, 0x81, 0x33, 0x87, 0x19, 0x83, 0x32, - 0x83, 0x19, 0x00, 0xd5, 0x38, 0x01, 0x81, 0x3a, - 0x81, 0x19, 0x82, 0x38, 0x80, 0x19, 0xd9, 0x40, - 0x81, 0x19, 0x82, 0x40, 0x04, 0xaa, 0x0d, 0x00, - 0xdd, 0x33, 0x00, 0x8f, 0x19, 0x9f, 0x0d, 0xa5, - 0x19, 0x08, 0x80, 0x19, 0x8f, 0x40, 0x9e, 0x33, - 0x00, 0xbf, 0x19, 0x9e, 0x33, 0xd0, 0x19, 0xae, - 0x40, 0x80, 0x19, 0xd7, 0x40, 0xe0, 0x47, 0x19, - 0xf0, 0x09, 0x5f, 0x32, 0xbf, 0x19, 0xf0, 0x41, - 0x9f, 0x32, 0xe4, 0x2c, 0xa9, 0x02, 0xb6, 0xa9, - 0x08, 0xaf, 0x4f, 0xe0, 0xcb, 0xa4, 0x13, 0xdf, - 0x1d, 0xd7, 0x08, 0x07, 0xa1, 0x19, 0xe0, 0x05, - 0x4a, 0x82, 0x19, 0xc2, 0x4a, 0x01, 0x81, 0x4a, - 0x00, 0x80, 0x4a, 0x00, 0x87, 0x4a, 0x14, 0x8d, - 0x4a, 0xac, 0x8f, 0x02, 0x89, 0x19, 0x05, 0xb7, - 0x7e, 0x07, 0xc5, 0x84, 0x07, 0x8b, 0x84, 0x05, - 0x9f, 0x20, 0xad, 0x42, 0x80, 0x19, 0x80, 0x42, - 0xa3, 0x81, 0x0a, 0x80, 0x81, 0x9c, 0x33, 0x02, - 0xcd, 0x3d, 0x00, 0x80, 0x19, 0x89, 0x3d, 0x03, - 0x81, 0x3d, 0x9e, 0x63, 0x00, 0xb6, 0x16, 0x08, - 0x8d, 0x16, 0x01, 0x89, 0x16, 0x01, 0x83, 0x16, - 0x9f, 0x63, 0xc2, 0x95, 0x17, 0x84, 0x95, 0x96, - 0x5a, 0x09, 0x85, 0x27, 0x01, 0x85, 0x27, 0x01, - 0x85, 0x27, 0x08, 0x86, 0x27, 0x00, 0x86, 0x27, - 0x00, 0xaa, 0x4a, 0x80, 0x19, 0x88, 0x4a, 0x80, - 0x2d, 0x83, 0x4a, 0x81, 0x19, 0x03, 0xcf, 0x17, - 0xad, 0x5a, 0x01, 0x89, 0x5a, 0x05, 0xf0, 0x1b, - 0x43, 0x33, 0x0b, 0x96, 0x33, 0x03, 0xb0, 0x33, - 0x70, 0x10, 0xa3, 0xe1, 0x0d, 0x32, 0x01, 0xe0, - 0x09, 0x32, 0x25, 0x86, 0x4a, 0x0b, 0x84, 0x05, - 0x04, 0x99, 0x37, 0x00, 0x84, 0x37, 0x00, 0x80, - 0x37, 0x00, 0x81, 0x37, 0x00, 0x81, 0x37, 0x00, - 0x89, 0x37, 0xe0, 0x12, 0x04, 0x0f, 0xe1, 0x0a, - 0x04, 0x81, 0x19, 0xcf, 0x04, 0x01, 0xb5, 0x04, - 0x06, 0x80, 0x04, 0x1f, 0x8f, 0x04, 0x8f, 0x3a, - 0x89, 0x19, 0x05, 0x8d, 0x3a, 0x81, 0x1d, 0xa2, - 0x19, 0x00, 0x92, 0x19, 0x00, 0x83, 0x19, 0x03, - 0x84, 0x04, 0x00, 0xe0, 0x26, 0x04, 0x01, 0x80, - 0x19, 0x00, 0x9f, 0x19, 0x99, 0x4a, 0x85, 0x19, - 0x99, 0x4a, 0x8a, 0x19, 0x89, 0x40, 0x80, 0x19, - 0xac, 0x40, 0x81, 0x19, 0x9e, 0x33, 0x02, 0x85, - 0x33, 0x01, 0x85, 0x33, 0x01, 0x85, 0x33, 0x01, - 0x82, 0x33, 0x02, 0x86, 0x19, 0x00, 0x86, 0x19, - 0x09, 0x84, 0x19, 0x01, 0x8b, 0x4e, 0x00, 0x99, - 0x4e, 0x00, 0x92, 0x4e, 0x00, 0x81, 0x4e, 0x00, - 0x8e, 0x4e, 0x01, 0x8d, 0x4e, 0x21, 0xe0, 0x1a, - 0x4e, 0x04, 0x82, 0x19, 0x03, 0xac, 0x19, 0x02, - 0x88, 0x19, 0xce, 0x2d, 0x00, 0x8c, 0x19, 0x02, - 0x80, 0x2d, 0x2e, 0xac, 0x19, 0x80, 0x3a, 0x60, - 0x21, 0x9c, 0x50, 0x02, 0xb0, 0x13, 0x0e, 0x80, - 0x3a, 0x9a, 0x19, 0x03, 0xa3, 0x70, 0x08, 0x82, - 0x70, 0x9a, 0x2a, 0x04, 0xaa, 0x72, 0x04, 0x9d, - 0xa3, 0x00, 0x80, 0xa3, 0xa3, 0x73, 0x03, 0x8d, - 0x73, 0x29, 0xcf, 0x1f, 0xaf, 0x86, 0x9d, 0x7a, - 0x01, 0x89, 0x7a, 0x05, 0xa3, 0x79, 0x03, 0xa3, - 0x79, 0x03, 0xa7, 0x25, 0x07, 0xb3, 0x14, 0x0a, - 0x80, 0x14, 0x8a, 0xa5, 0x00, 0x8e, 0xa5, 0x00, - 0x86, 0xa5, 0x00, 0x81, 0xa5, 0x00, 0x8a, 0xa5, - 0x00, 0x8e, 0xa5, 0x00, 0x86, 0xa5, 0x00, 0x81, - 0xa5, 0x02, 0xb3, 0xa0, 0x0b, 0xe0, 0xd6, 0x4d, - 0x08, 0x95, 0x4d, 0x09, 0x87, 0x4d, 0x17, 0x85, - 0x4a, 0x00, 0xa9, 0x4a, 0x00, 0x88, 0x4a, 0x44, - 0x85, 0x1c, 0x01, 0x80, 0x1c, 0x00, 0xab, 0x1c, - 0x00, 0x81, 0x1c, 0x02, 0x80, 0x1c, 0x01, 0x80, - 0x1c, 0x95, 0x39, 0x00, 0x88, 0x39, 0x9f, 0x7c, - 0x9e, 0x64, 0x07, 0x88, 0x64, 0x2f, 0x92, 0x36, - 0x00, 0x81, 0x36, 0x04, 0x84, 0x36, 0x9b, 0x7f, - 0x02, 0x80, 0x7f, 0x99, 0x51, 0x04, 0x80, 0x51, - 0x3f, 0x9f, 0x5d, 0x97, 0x5c, 0x03, 0x93, 0x5c, - 0x01, 0xad, 0x5c, 0x83, 0x43, 0x00, 0x81, 0x43, - 0x04, 0x87, 0x43, 0x00, 0x82, 0x43, 0x00, 0x9c, - 0x43, 0x01, 0x82, 0x43, 0x03, 0x89, 0x43, 0x06, - 0x88, 0x43, 0x06, 0x9f, 0x75, 0x9f, 0x71, 0x1f, - 0xa6, 0x56, 0x03, 0x8b, 0x56, 0x08, 0xb5, 0x06, - 0x02, 0x86, 0x06, 0x95, 0x3c, 0x01, 0x87, 0x3c, - 0x92, 0x3b, 0x04, 0x87, 0x3b, 0x91, 0x80, 0x06, - 0x83, 0x80, 0x0b, 0x86, 0x80, 0x4f, 0xc8, 0x76, - 0x36, 0xb2, 0x6f, 0x0c, 0xb2, 0x6f, 0x06, 0x85, - 0x6f, 0xa7, 0x34, 0x07, 0x89, 0x34, 0x05, 0xa5, - 0x2b, 0x02, 0x9c, 0x2b, 0x07, 0x81, 0x2b, 0x60, - 0x6f, 0x9e, 0x04, 0x00, 0xa9, 0xa8, 0x00, 0x82, - 0xa8, 0x01, 0x81, 0xa8, 0x0f, 0x82, 0x04, 0x36, - 0x83, 0x04, 0xa7, 0x74, 0x07, 0xa9, 0x8a, 0x15, - 0x99, 0x77, 0x25, 0x9b, 0x18, 0x13, 0x96, 0x26, - 0x08, 0xcd, 0x0e, 0x03, 0xa3, 0x0e, 0x08, 0x80, - 0x0e, 0xc2, 0x3e, 0x09, 0x80, 0x3e, 0x01, 0x98, - 0x8b, 0x06, 0x89, 0x8b, 0x05, 0xb4, 0x15, 0x00, - 0x91, 0x15, 0x07, 0xa6, 0x53, 0x08, 0xdf, 0x85, - 0x00, 0x93, 0x89, 0x0a, 0x91, 0x45, 0x00, 0xae, - 0x45, 0x3d, 0x86, 0x62, 0x00, 0x80, 0x62, 0x00, - 0x83, 0x62, 0x00, 0x8e, 0x62, 0x00, 0x8a, 0x62, - 0x05, 0xba, 0x47, 0x04, 0x89, 0x47, 0x05, 0x83, - 0x2c, 0x00, 0x87, 0x2c, 0x01, 0x81, 0x2c, 0x01, - 0x95, 0x2c, 0x00, 0x86, 0x2c, 0x00, 0x81, 0x2c, - 0x00, 0x84, 0x2c, 0x00, 0x80, 0x3a, 0x88, 0x2c, - 0x01, 0x81, 0x2c, 0x01, 0x82, 0x2c, 0x01, 0x80, - 0x2c, 0x05, 0x80, 0x2c, 0x04, 0x86, 0x2c, 0x01, - 0x86, 0x2c, 0x02, 0x84, 0x2c, 0x0a, 0x89, 0xa2, - 0x00, 0x80, 0xa2, 0x01, 0x80, 0xa2, 0x00, 0xa5, - 0xa2, 0x00, 0x89, 0xa2, 0x00, 0x80, 0xa2, 0x01, - 0x80, 0xa2, 0x00, 0x83, 0xa2, 0x00, 0x89, 0xa2, - 0x00, 0x81, 0xa2, 0x07, 0x81, 0xa2, 0x1c, 0xdb, - 0x68, 0x00, 0x84, 0x68, 0x1d, 0xc7, 0x9e, 0x07, - 0x89, 0x9e, 0x60, 0x45, 0xb5, 0x87, 0x01, 0xa5, - 0x87, 0x21, 0xc4, 0x5f, 0x0a, 0x89, 0x5f, 0x05, - 0x8c, 0x60, 0x12, 0xb9, 0x96, 0x05, 0x89, 0x96, - 0x05, 0x93, 0x63, 0x1b, 0x9a, 0x02, 0x01, 0x8e, - 0x02, 0x03, 0x96, 0x02, 0x60, 0x58, 0xbb, 0x22, - 0x60, 0x03, 0xd2, 0xa7, 0x0b, 0x80, 0xa7, 0x86, - 0x21, 0x01, 0x80, 0x21, 0x01, 0x87, 0x21, 0x00, - 0x81, 0x21, 0x00, 0x9d, 0x21, 0x00, 0x81, 0x21, - 0x01, 0x8b, 0x21, 0x08, 0x89, 0x21, 0x45, 0x87, - 0x66, 0x01, 0xad, 0x66, 0x01, 0x8a, 0x66, 0x1a, - 0xc7, 0xaa, 0x07, 0xd2, 0x8c, 0x0c, 0x8f, 0x12, - 0xb8, 0x7d, 0x06, 0x89, 0x20, 0x60, 0x55, 0xa1, - 0x8e, 0x0d, 0x89, 0x8e, 0x05, 0x88, 0x0c, 0x00, - 0xac, 0x0c, 0x00, 0x8d, 0x0c, 0x09, 0x9c, 0x0c, - 0x02, 0x9f, 0x57, 0x01, 0x95, 0x57, 0x00, 0x8d, - 0x57, 0x48, 0x86, 0x58, 0x00, 0x81, 0x58, 0x00, - 0xab, 0x58, 0x02, 0x80, 0x58, 0x00, 0x81, 0x58, - 0x00, 0x88, 0x58, 0x07, 0x89, 0x58, 0x05, 0x85, - 0x2f, 0x00, 0x81, 0x2f, 0x00, 0xa4, 0x2f, 0x00, - 0x81, 0x2f, 0x00, 0x85, 0x2f, 0x06, 0x89, 0x2f, - 0x60, 0xd5, 0x98, 0x52, 0x06, 0x90, 0x41, 0x00, - 0xa8, 0x41, 0x02, 0x9c, 0x41, 0x54, 0x80, 0x4f, - 0x0e, 0xb1, 0x97, 0x0c, 0x80, 0x97, 0xe3, 0x39, - 0x1b, 0x60, 0x05, 0xe0, 0x0e, 0x1b, 0x00, 0x84, - 0x1b, 0x0a, 0xe0, 0x63, 0x1b, 0x69, 0xeb, 0xe0, - 0x02, 0x1e, 0x0c, 0xe3, 0xf5, 0x24, 0x09, 0xef, - 0x3a, 0x24, 0x04, 0xe1, 0xe6, 0x03, 0x70, 0x0a, - 0x58, 0xb9, 0x31, 0x66, 0x65, 0xe1, 0xd8, 0x08, - 0x06, 0x9e, 0x61, 0x00, 0x89, 0x61, 0x03, 0x81, - 0x61, 0xce, 0x9f, 0x00, 0x89, 0x9f, 0x05, 0x9d, - 0x09, 0x01, 0x85, 0x09, 0x09, 0xc5, 0x7b, 0x09, - 0x89, 0x7b, 0x00, 0x86, 0x7b, 0x00, 0x94, 0x7b, - 0x04, 0x92, 0x7b, 0x61, 0x4f, 0xb9, 0x48, 0x60, - 0x65, 0xda, 0x59, 0x60, 0x04, 0xca, 0x5e, 0x03, - 0xb8, 0x5e, 0x06, 0x90, 0x5e, 0x3f, 0x80, 0x98, - 0x80, 0x6a, 0x81, 0x32, 0x80, 0x46, 0x0a, 0x81, - 0x32, 0x0d, 0xf0, 0x07, 0x97, 0x98, 0x07, 0xe2, - 0x9f, 0x98, 0xe1, 0x75, 0x46, 0x28, 0x80, 0x46, - 0x88, 0x98, 0x70, 0x12, 0x86, 0x83, 0x40, 0x00, - 0x86, 0x40, 0x00, 0x81, 0x40, 0x00, 0x80, 0x40, - 0xe0, 0xbe, 0x38, 0x82, 0x40, 0x0e, 0x80, 0x38, - 0x1c, 0x82, 0x38, 0x01, 0x80, 0x40, 0x0d, 0x83, - 0x40, 0x07, 0xe1, 0x2b, 0x6a, 0x68, 0xa3, 0xe0, - 0x0a, 0x23, 0x04, 0x8c, 0x23, 0x02, 0x88, 0x23, - 0x06, 0x89, 0x23, 0x01, 0x83, 0x23, 0x83, 0x19, - 0x6e, 0xfb, 0xe0, 0x99, 0x19, 0x05, 0xe1, 0x53, - 0x19, 0x4b, 0xad, 0x3a, 0x01, 0x96, 0x3a, 0x08, - 0xe0, 0x13, 0x19, 0x3b, 0xe0, 0x95, 0x19, 0x09, - 0xa6, 0x19, 0x01, 0xbd, 0x19, 0x82, 0x3a, 0x90, - 0x19, 0x87, 0x3a, 0x81, 0x19, 0x86, 0x3a, 0x9d, - 0x19, 0x83, 0x3a, 0xbc, 0x19, 0x14, 0xc5, 0x2d, - 0x60, 0x19, 0x93, 0x19, 0x0b, 0x93, 0x19, 0x0b, - 0xd6, 0x19, 0x08, 0x98, 0x19, 0x60, 0x26, 0xd4, - 0x19, 0x00, 0xc6, 0x19, 0x00, 0x81, 0x19, 0x01, - 0x80, 0x19, 0x01, 0x81, 0x19, 0x01, 0x83, 0x19, - 0x00, 0x8b, 0x19, 0x00, 0x80, 0x19, 0x00, 0x86, - 0x19, 0x00, 0xc0, 0x19, 0x00, 0x83, 0x19, 0x01, - 0x87, 0x19, 0x00, 0x86, 0x19, 0x00, 0x9b, 0x19, - 0x00, 0x83, 0x19, 0x00, 0x84, 0x19, 0x00, 0x80, - 0x19, 0x02, 0x86, 0x19, 0x00, 0xe0, 0xf3, 0x19, - 0x01, 0xe0, 0xc3, 0x19, 0x01, 0xb1, 0x19, 0xe2, - 0x2b, 0x88, 0x0e, 0x84, 0x88, 0x00, 0x8e, 0x88, - 0x63, 0xef, 0x9e, 0x4a, 0x05, 0x85, 0x4a, 0x60, - 0x74, 0x86, 0x29, 0x00, 0x90, 0x29, 0x01, 0x86, - 0x29, 0x00, 0x81, 0x29, 0x00, 0x84, 0x29, 0x04, - 0xbd, 0x1d, 0x20, 0x80, 0x1d, 0x60, 0x0f, 0xac, - 0x6b, 0x02, 0x8d, 0x6b, 0x01, 0x89, 0x6b, 0x03, - 0x81, 0x6b, 0x60, 0xdf, 0x9e, 0xa1, 0x10, 0xb9, - 0xa6, 0x04, 0x80, 0xa6, 0x61, 0x6f, 0xa9, 0x65, - 0x60, 0x75, 0xaa, 0x6e, 0x03, 0x80, 0x6e, 0x61, - 0x7f, 0x86, 0x27, 0x00, 0x83, 0x27, 0x00, 0x81, - 0x27, 0x00, 0x8e, 0x27, 0x00, 0xe0, 0x64, 0x5b, - 0x01, 0x8f, 0x5b, 0x28, 0xcb, 0x01, 0x03, 0x89, - 0x01, 0x03, 0x81, 0x01, 0x62, 0xb0, 0xc3, 0x19, - 0x4b, 0xbc, 0x19, 0x60, 0x61, 0x83, 0x04, 0x00, - 0x9a, 0x04, 0x00, 0x81, 0x04, 0x00, 0x80, 0x04, - 0x01, 0x80, 0x04, 0x00, 0x89, 0x04, 0x00, 0x83, - 0x04, 0x00, 0x80, 0x04, 0x00, 0x80, 0x04, 0x05, - 0x80, 0x04, 0x03, 0x80, 0x04, 0x00, 0x80, 0x04, - 0x00, 0x80, 0x04, 0x00, 0x82, 0x04, 0x00, 0x81, - 0x04, 0x00, 0x80, 0x04, 0x01, 0x80, 0x04, 0x00, - 0x80, 0x04, 0x00, 0x80, 0x04, 0x00, 0x80, 0x04, - 0x00, 0x80, 0x04, 0x00, 0x81, 0x04, 0x00, 0x80, - 0x04, 0x01, 0x83, 0x04, 0x00, 0x86, 0x04, 0x00, - 0x83, 0x04, 0x00, 0x83, 0x04, 0x00, 0x80, 0x04, - 0x00, 0x89, 0x04, 0x00, 0x90, 0x04, 0x04, 0x82, - 0x04, 0x00, 0x84, 0x04, 0x00, 0x90, 0x04, 0x33, - 0x81, 0x04, 0x60, 0xad, 0xab, 0x19, 0x03, 0xe0, - 0x03, 0x19, 0x0b, 0x8e, 0x19, 0x01, 0x8e, 0x19, - 0x00, 0x8e, 0x19, 0x00, 0xa4, 0x19, 0x09, 0xe0, - 0x4d, 0x19, 0x37, 0x99, 0x19, 0x80, 0x38, 0x81, - 0x19, 0x0c, 0xab, 0x19, 0x03, 0x88, 0x19, 0x06, - 0x81, 0x19, 0x0d, 0x85, 0x19, 0x60, 0x39, 0xe3, - 0x77, 0x19, 0x03, 0x90, 0x19, 0x02, 0x8c, 0x19, - 0x02, 0xe0, 0x16, 0x19, 0x03, 0xde, 0x19, 0x05, - 0x8b, 0x19, 0x03, 0x80, 0x19, 0x0e, 0x8b, 0x19, - 0x03, 0xb7, 0x19, 0x07, 0x89, 0x19, 0x05, 0xa7, - 0x19, 0x07, 0x9d, 0x19, 0x01, 0x8b, 0x19, 0x03, - 0x81, 0x19, 0x3d, 0xe0, 0xf3, 0x19, 0x0b, 0x8d, - 0x19, 0x01, 0x8c, 0x19, 0x02, 0x89, 0x19, 0x04, - 0xb7, 0x19, 0x06, 0x8e, 0x19, 0x01, 0x8a, 0x19, - 0x05, 0x88, 0x19, 0x06, 0xe0, 0x32, 0x19, 0x00, - 0xe0, 0x05, 0x19, 0x63, 0xa5, 0xf0, 0x96, 0x7f, - 0x32, 0x1f, 0xef, 0xd9, 0x32, 0x05, 0xe0, 0x7d, - 0x32, 0x01, 0xf0, 0x06, 0x21, 0x32, 0x0d, 0xf0, - 0x0c, 0xd0, 0x32, 0x0e, 0xe2, 0x0d, 0x32, 0x69, - 0x41, 0xe1, 0xbd, 0x32, 0x65, 0x81, 0xf0, 0x02, - 0xea, 0x32, 0x04, 0xef, 0xff, 0x32, 0x7a, 0xcb, - 0xf0, 0x80, 0x19, 0x1d, 0xdf, 0x19, 0x60, 0x1f, - 0xe0, 0x8f, 0x3a, -}; - -static const uint8_t unicode_script_ext_table[1253] = { - 0x80, 0x36, 0x00, 0x00, 0x10, 0x06, 0x13, 0x1a, - 0x23, 0x25, 0x28, 0x29, 0x2f, 0x2a, 0x2d, 0x32, - 0x4a, 0x51, 0x53, 0x72, 0x86, 0x81, 0x83, 0x00, - 0x00, 0x07, 0x0b, 0x1d, 0x20, 0x4a, 0x4f, 0x9b, - 0xa1, 0x09, 0x00, 0x00, 0x02, 0x0d, 0x4a, 0x00, - 0x00, 0x02, 0x02, 0x0d, 0x4a, 0x00, 0x00, 0x00, - 0x02, 0x4a, 0x4f, 0x08, 0x00, 0x00, 0x02, 0x4a, - 0x9b, 0x00, 0x00, 0x00, 0x02, 0x0d, 0x4a, 0x25, - 0x00, 0x00, 0x08, 0x17, 0x1a, 0x1d, 0x2d, 0x4a, - 0x72, 0x8e, 0x93, 0x00, 0x08, 0x17, 0x1d, 0x2d, - 0x4a, 0x79, 0x8e, 0x93, 0xa0, 0x00, 0x04, 0x17, - 0x1d, 0x4a, 0x9d, 0x00, 0x05, 0x29, 0x4a, 0x8e, - 0x90, 0x9b, 0x00, 0x0b, 0x14, 0x17, 0x1a, 0x1d, - 0x2a, 0x2d, 0x4a, 0x79, 0x90, 0x9d, 0xa0, 0x00, - 0x06, 0x1a, 0x25, 0x29, 0x2a, 0x40, 0x4a, 0x00, - 0x04, 0x1d, 0x2d, 0x4a, 0x72, 0x00, 0x09, 0x1a, - 0x23, 0x37, 0x4a, 0x72, 0x90, 0x93, 0x9d, 0xa0, - 0x00, 0x0a, 0x05, 0x1d, 0x23, 0x2a, 0x2d, 0x37, - 0x4a, 0x72, 0x90, 0x93, 0x00, 0x02, 0x4a, 0x9d, - 0x00, 0x03, 0x23, 0x4a, 0x90, 0x00, 0x04, 0x17, - 0x1d, 0x4a, 0x79, 0x00, 0x03, 0x17, 0x4a, 0x93, - 0x00, 0x02, 0x4a, 0x8e, 0x00, 0x02, 0x27, 0x4a, - 0x00, 0x00, 0x00, 0x02, 0x4a, 0x8e, 0x00, 0x03, - 0x1d, 0x4a, 0xa0, 0x00, 0x00, 0x00, 0x04, 0x2d, - 0x4a, 0x72, 0xa0, 0x0b, 0x00, 0x00, 0x02, 0x4a, - 0x90, 0x01, 0x00, 0x00, 0x05, 0x17, 0x23, 0x40, - 0x4a, 0x90, 0x00, 0x04, 0x17, 0x23, 0x4a, 0x90, - 0x00, 0x02, 0x4a, 0x90, 0x06, 0x00, 0x00, 0x03, - 0x4a, 0x8e, 0x90, 0x00, 0x02, 0x4a, 0x90, 0x00, - 0x00, 0x00, 0x03, 0x17, 0x4a, 0x90, 0x00, 0x06, - 0x14, 0x17, 0x2a, 0x4a, 0x8e, 0x9b, 0x0f, 0x00, - 0x00, 0x01, 0x2d, 0x01, 0x00, 0x00, 0x01, 0x2d, - 0x11, 0x00, 0x00, 0x02, 0x4a, 0x79, 0x04, 0x00, - 0x00, 0x03, 0x14, 0x4a, 0xa0, 0x03, 0x00, 0x0c, - 0x01, 0x4a, 0x03, 0x00, 0x01, 0x02, 0x1a, 0x2d, - 0x80, 0x8c, 0x00, 0x00, 0x02, 0x1d, 0x72, 0x00, - 0x02, 0x1d, 0x29, 0x01, 0x02, 0x1d, 0x4a, 0x00, - 0x02, 0x1d, 0x29, 0x80, 0x80, 0x00, 0x00, 0x03, - 0x05, 0x28, 0x29, 0x80, 0x01, 0x00, 0x00, 0x07, - 0x04, 0x2b, 0x69, 0x34, 0x90, 0x9a, 0xa8, 0x0d, - 0x00, 0x00, 0x07, 0x04, 0x2b, 0x69, 0x34, 0x90, - 0x9a, 0xa8, 0x00, 0x03, 0x04, 0x90, 0x9a, 0x01, - 0x00, 0x00, 0x08, 0x01, 0x04, 0x2b, 0x69, 0x34, - 0x90, 0x9a, 0xa8, 0x1f, 0x00, 0x00, 0x09, 0x01, - 0x04, 0x55, 0x56, 0x77, 0x80, 0x34, 0x8a, 0x90, - 0x09, 0x00, 0x0a, 0x02, 0x04, 0x90, 0x09, 0x00, - 0x09, 0x03, 0x04, 0x9a, 0xa8, 0x05, 0x00, 0x00, - 0x02, 0x04, 0x90, 0x62, 0x00, 0x00, 0x02, 0x04, - 0x34, 0x81, 0xfb, 0x00, 0x00, 0x0d, 0x0b, 0x20, - 0x2c, 0x2e, 0x30, 0x3f, 0x4a, 0x54, 0x78, 0x85, - 0x97, 0x99, 0x9e, 0x00, 0x0c, 0x0b, 0x20, 0x2c, - 0x2e, 0x30, 0x3f, 0x4a, 0x54, 0x78, 0x97, 0x99, - 0x9e, 0x10, 0x00, 0x00, 0x15, 0x0b, 0x20, 0x22, - 0x2f, 0x58, 0x2c, 0x2e, 0x30, 0x3f, 0x53, 0x54, - 0x66, 0x6e, 0x78, 0x47, 0x89, 0x8f, 0x96, 0x97, - 0x99, 0x9e, 0x00, 0x17, 0x0b, 0x20, 0x22, 0x2f, - 0x58, 0x2c, 0x2e, 0x31, 0x30, 0x3f, 0x4c, 0x53, - 0x54, 0x66, 0x6e, 0x78, 0x47, 0x89, 0x8f, 0x96, - 0x97, 0x99, 0x9e, 0x09, 0x04, 0x20, 0x22, 0x3e, - 0x53, 0x75, 0x00, 0x09, 0x03, 0x0b, 0x15, 0x8f, - 0x75, 0x00, 0x09, 0x02, 0x30, 0x62, 0x75, 0x00, - 0x09, 0x02, 0x2e, 0x45, 0x80, 0x75, 0x00, 0x0d, - 0x02, 0x2c, 0x97, 0x80, 0x71, 0x00, 0x09, 0x03, - 0x3f, 0x66, 0xa2, 0x82, 0xcf, 0x00, 0x09, 0x03, - 0x15, 0x63, 0x93, 0x80, 0x30, 0x00, 0x00, 0x03, - 0x28, 0x29, 0x4a, 0x85, 0x6e, 0x00, 0x02, 0x01, - 0x82, 0x46, 0x00, 0x01, 0x04, 0x11, 0x35, 0x92, - 0x91, 0x80, 0x4a, 0x00, 0x01, 0x02, 0x60, 0x7e, - 0x00, 0x00, 0x00, 0x02, 0x60, 0x7e, 0x84, 0x49, - 0x00, 0x00, 0x04, 0x0b, 0x20, 0x2c, 0x3f, 0x00, - 0x01, 0x20, 0x00, 0x04, 0x0b, 0x20, 0x2c, 0x3f, - 0x00, 0x03, 0x20, 0x2c, 0x3f, 0x00, 0x01, 0x20, - 0x01, 0x02, 0x0b, 0x20, 0x00, 0x02, 0x20, 0x85, - 0x00, 0x02, 0x0b, 0x20, 0x00, 0x02, 0x20, 0x85, - 0x00, 0x06, 0x20, 0x3f, 0x54, 0x78, 0x97, 0x99, - 0x00, 0x01, 0x20, 0x01, 0x02, 0x20, 0x85, 0x01, - 0x01, 0x20, 0x00, 0x02, 0x20, 0x85, 0x00, 0x02, - 0x0b, 0x20, 0x06, 0x01, 0x20, 0x00, 0x02, 0x20, - 0x66, 0x00, 0x02, 0x0b, 0x20, 0x01, 0x01, 0x20, - 0x00, 0x02, 0x0b, 0x20, 0x03, 0x01, 0x20, 0x00, - 0x0b, 0x0b, 0x20, 0x2c, 0x3f, 0x54, 0x66, 0x78, - 0x89, 0x99, 0x9e, 0xa2, 0x00, 0x02, 0x20, 0x2c, - 0x00, 0x04, 0x20, 0x2c, 0x3f, 0xa2, 0x01, 0x02, - 0x0b, 0x20, 0x00, 0x01, 0x0b, 0x01, 0x02, 0x20, - 0x2c, 0x00, 0x01, 0x66, 0x80, 0x44, 0x00, 0x01, - 0x01, 0x2d, 0x35, 0x00, 0x00, 0x03, 0x1d, 0x4a, - 0x90, 0x00, 0x00, 0x00, 0x01, 0x90, 0x81, 0xb3, - 0x00, 0x00, 0x03, 0x4a, 0x60, 0x7e, 0x1e, 0x00, - 0x00, 0x02, 0x01, 0x04, 0x09, 0x00, 0x00, 0x06, - 0x13, 0x28, 0x29, 0x6f, 0x50, 0x76, 0x01, 0x00, - 0x00, 0x04, 0x13, 0x2d, 0x6f, 0x5d, 0x80, 0x11, - 0x00, 0x00, 0x03, 0x20, 0x2c, 0x4a, 0x8c, 0xa5, - 0x00, 0x00, 0x02, 0x1a, 0x4a, 0x17, 0x00, 0x00, - 0x02, 0x06, 0x76, 0x00, 0x07, 0x06, 0x13, 0x28, - 0x6f, 0x3e, 0x51, 0x83, 0x09, 0x00, 0x00, 0x01, - 0x23, 0x03, 0x00, 0x00, 0x03, 0x01, 0x04, 0x6f, - 0x00, 0x00, 0x00, 0x02, 0x1d, 0x29, 0x81, 0x2b, - 0x00, 0x0f, 0x02, 0x32, 0x98, 0x00, 0x00, 0x00, - 0x07, 0x0d, 0x33, 0x32, 0x38, 0x40, 0x60, 0xa9, - 0x00, 0x08, 0x0d, 0x33, 0x32, 0x38, 0x40, 0x60, - 0x7e, 0xa9, 0x00, 0x05, 0x0d, 0x33, 0x32, 0x38, - 0x40, 0x01, 0x00, 0x00, 0x01, 0x32, 0x00, 0x00, - 0x01, 0x08, 0x0d, 0x33, 0x32, 0x38, 0x40, 0x60, - 0x9c, 0xa9, 0x01, 0x09, 0x0d, 0x33, 0x32, 0x38, - 0x40, 0x4f, 0x60, 0x9c, 0xa9, 0x05, 0x06, 0x0d, - 0x33, 0x32, 0x38, 0x40, 0xa9, 0x00, 0x00, 0x00, - 0x05, 0x0d, 0x33, 0x32, 0x38, 0x40, 0x07, 0x06, - 0x0d, 0x33, 0x32, 0x38, 0x40, 0xa9, 0x03, 0x05, - 0x0d, 0x33, 0x32, 0x38, 0x40, 0x09, 0x00, 0x03, - 0x02, 0x0d, 0x32, 0x01, 0x00, 0x00, 0x05, 0x0d, - 0x33, 0x32, 0x38, 0x40, 0x04, 0x02, 0x38, 0x40, - 0x00, 0x00, 0x00, 0x05, 0x0d, 0x33, 0x32, 0x38, - 0x40, 0x03, 0x00, 0x01, 0x03, 0x32, 0x38, 0x40, - 0x01, 0x01, 0x32, 0x58, 0x00, 0x03, 0x02, 0x38, - 0x40, 0x02, 0x00, 0x00, 0x02, 0x38, 0x40, 0x59, - 0x00, 0x00, 0x06, 0x0d, 0x33, 0x32, 0x38, 0x40, - 0xa9, 0x00, 0x02, 0x38, 0x40, 0x80, 0x12, 0x00, - 0x0f, 0x01, 0x32, 0x1f, 0x00, 0x25, 0x01, 0x32, - 0x08, 0x00, 0x00, 0x02, 0x32, 0x98, 0x2f, 0x00, - 0x27, 0x01, 0x32, 0x37, 0x00, 0x30, 0x01, 0x32, - 0x0e, 0x00, 0x0b, 0x01, 0x32, 0x32, 0x00, 0x00, - 0x01, 0x32, 0x57, 0x00, 0x18, 0x01, 0x32, 0x09, - 0x00, 0x04, 0x01, 0x32, 0x5f, 0x00, 0x1e, 0x01, - 0x32, 0xc0, 0x31, 0xef, 0x00, 0x00, 0x02, 0x1d, - 0x29, 0x80, 0x0f, 0x00, 0x07, 0x02, 0x32, 0x4a, - 0x80, 0xa7, 0x00, 0x02, 0x10, 0x20, 0x22, 0x2e, - 0x30, 0x45, 0x3f, 0x3e, 0x53, 0x54, 0x5f, 0x66, - 0x85, 0x47, 0x96, 0x9e, 0xa2, 0x02, 0x0f, 0x20, - 0x22, 0x2e, 0x30, 0x45, 0x3f, 0x3e, 0x53, 0x5f, - 0x66, 0x85, 0x47, 0x96, 0x9e, 0xa2, 0x01, 0x0b, - 0x20, 0x22, 0x2e, 0x30, 0x45, 0x3e, 0x53, 0x5f, - 0x47, 0x96, 0x9e, 0x00, 0x0c, 0x20, 0x22, 0x2e, - 0x30, 0x45, 0x3e, 0x53, 0x5f, 0x85, 0x47, 0x96, - 0x9e, 0x00, 0x0b, 0x20, 0x22, 0x2e, 0x30, 0x45, - 0x3e, 0x53, 0x5f, 0x47, 0x96, 0x9e, 0x80, 0x36, - 0x00, 0x00, 0x03, 0x0b, 0x20, 0xa2, 0x00, 0x00, - 0x00, 0x02, 0x20, 0x97, 0x39, 0x00, 0x00, 0x03, - 0x42, 0x4a, 0x63, 0x80, 0x1f, 0x00, 0x00, 0x02, - 0x10, 0x3d, 0xc0, 0x12, 0xed, 0x00, 0x01, 0x02, - 0x04, 0x69, 0x80, 0x31, 0x00, 0x00, 0x02, 0x04, - 0x9a, 0x09, 0x00, 0x00, 0x02, 0x04, 0x9a, 0x46, - 0x00, 0x01, 0x05, 0x0d, 0x33, 0x32, 0x38, 0x40, - 0x80, 0x99, 0x00, 0x04, 0x06, 0x0d, 0x33, 0x32, - 0x38, 0x40, 0xa9, 0x09, 0x00, 0x00, 0x02, 0x38, - 0x40, 0x2c, 0x00, 0x01, 0x02, 0x38, 0x40, 0x80, - 0xdf, 0x00, 0x01, 0x03, 0x1e, 0x1c, 0x4e, 0x00, - 0x02, 0x1c, 0x4e, 0x03, 0x00, 0x2c, 0x03, 0x1c, - 0x4d, 0x4e, 0x02, 0x00, 0x08, 0x02, 0x1c, 0x4e, - 0x81, 0x1f, 0x00, 0x1b, 0x02, 0x04, 0x1a, 0x87, - 0x75, 0x00, 0x00, 0x02, 0x56, 0x77, 0x87, 0x8d, - 0x00, 0x00, 0x02, 0x2c, 0x97, 0x00, 0x00, 0x00, - 0x02, 0x2c, 0x97, 0x36, 0x00, 0x01, 0x02, 0x2c, - 0x97, 0x8c, 0x12, 0x00, 0x01, 0x02, 0x2c, 0x97, - 0x00, 0x00, 0x00, 0x02, 0x2c, 0x97, 0xc0, 0x5c, - 0x4b, 0x00, 0x03, 0x01, 0x23, 0x96, 0x3b, 0x00, - 0x11, 0x01, 0x32, 0x9e, 0x5d, 0x00, 0x01, 0x01, - 0x32, 0xce, 0xcd, 0x2d, 0x00, -}; - -static const uint8_t unicode_prop_Hyphen_table[28] = { - 0xac, 0x80, 0xfe, 0x80, 0x44, 0xdb, 0x80, 0x52, - 0x7a, 0x80, 0x48, 0x08, 0x81, 0x4e, 0x04, 0x80, - 0x42, 0xe2, 0x80, 0x60, 0xcd, 0x66, 0x80, 0x40, - 0xa8, 0x80, 0xd6, 0x80, -}; - -static const uint8_t unicode_prop_Other_Math_table[200] = { - 0xdd, 0x80, 0x43, 0x70, 0x11, 0x80, 0x99, 0x09, - 0x81, 0x5c, 0x1f, 0x80, 0x9a, 0x82, 0x8a, 0x80, - 0x9f, 0x83, 0x97, 0x81, 0x8d, 0x81, 0xc0, 0x8c, - 0x18, 0x11, 0x1c, 0x91, 0x03, 0x01, 0x89, 0x00, - 0x14, 0x28, 0x11, 0x09, 0x02, 0x05, 0x13, 0x24, - 0xca, 0x21, 0x18, 0x08, 0x08, 0x00, 0x21, 0x0b, - 0x0b, 0x91, 0x09, 0x00, 0x06, 0x00, 0x29, 0x41, - 0x21, 0x83, 0x40, 0xa7, 0x08, 0x80, 0x97, 0x80, - 0x90, 0x80, 0x41, 0xbc, 0x81, 0x8b, 0x88, 0x24, - 0x21, 0x09, 0x14, 0x8d, 0x00, 0x01, 0x85, 0x97, - 0x81, 0xb8, 0x00, 0x80, 0x9c, 0x83, 0x88, 0x81, - 0x41, 0x55, 0x81, 0x9e, 0x89, 0x41, 0x92, 0x95, - 0xbe, 0x83, 0x9f, 0x81, 0x60, 0xd4, 0x62, 0x00, - 0x03, 0x80, 0x40, 0xd2, 0x00, 0x80, 0x60, 0xd4, - 0xc0, 0xd4, 0x80, 0xc6, 0x01, 0x08, 0x09, 0x0b, - 0x80, 0x8b, 0x00, 0x06, 0x80, 0xc0, 0x03, 0x0f, - 0x06, 0x80, 0x9b, 0x03, 0x04, 0x00, 0x16, 0x80, - 0x41, 0x53, 0x81, 0x98, 0x80, 0x98, 0x80, 0x9e, - 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e, - 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, 0x07, 0x81, - 0xb1, 0x55, 0xff, 0x18, 0x9a, 0x01, 0x00, 0x08, - 0x80, 0x89, 0x03, 0x00, 0x00, 0x28, 0x18, 0x00, - 0x00, 0x02, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x0b, 0x06, 0x03, 0x03, 0x00, - 0x80, 0x89, 0x80, 0x90, 0x22, 0x04, 0x80, 0x90, -}; - -static const uint8_t unicode_prop_Other_Alphabetic_table[443] = { - 0x43, 0x44, 0x80, 0x9c, 0x8c, 0x42, 0x3f, 0x8d, - 0x00, 0x01, 0x01, 0x00, 0xc7, 0x8a, 0xaf, 0x8c, - 0x06, 0x8f, 0x80, 0xe4, 0x33, 0x19, 0x0b, 0x80, - 0xa2, 0x80, 0x9d, 0x8f, 0xe5, 0x8a, 0xe4, 0x0a, - 0x88, 0x02, 0x03, 0xe9, 0x80, 0xbb, 0x8b, 0x16, - 0x85, 0x93, 0xb5, 0x09, 0x8e, 0x01, 0x22, 0x89, - 0x81, 0x9c, 0x82, 0xb9, 0x31, 0x09, 0x81, 0x89, - 0x80, 0x89, 0x81, 0x9c, 0x82, 0xb9, 0x23, 0x09, - 0x0b, 0x80, 0x9d, 0x0a, 0x80, 0x8a, 0x82, 0xb9, - 0x38, 0x10, 0x81, 0x94, 0x81, 0x95, 0x13, 0x82, - 0xb9, 0x31, 0x09, 0x81, 0x88, 0x81, 0x89, 0x81, - 0x9d, 0x80, 0xba, 0x22, 0x10, 0x82, 0x89, 0x80, - 0xa7, 0x84, 0xb8, 0x30, 0x10, 0x17, 0x81, 0x8a, - 0x81, 0x9c, 0x82, 0xb9, 0x30, 0x10, 0x17, 0x81, - 0x8a, 0x81, 0x8e, 0x80, 0x8b, 0x83, 0xb9, 0x30, - 0x10, 0x82, 0x89, 0x80, 0x89, 0x81, 0x9c, 0x82, - 0xca, 0x28, 0x00, 0x87, 0x91, 0x81, 0xbc, 0x01, - 0x86, 0x91, 0x80, 0xe2, 0x01, 0x28, 0x81, 0x8f, - 0x80, 0x40, 0xa2, 0x92, 0x88, 0x8a, 0x80, 0xa3, - 0xed, 0x8b, 0x00, 0x0b, 0x96, 0x1b, 0x10, 0x11, - 0x32, 0x83, 0x8c, 0x8b, 0x00, 0x89, 0x83, 0x46, - 0x73, 0x81, 0x9d, 0x81, 0x9d, 0x81, 0x9d, 0x81, - 0xc1, 0x92, 0x40, 0xbb, 0x81, 0xa1, 0x80, 0xf5, - 0x8b, 0x83, 0x88, 0x40, 0xdd, 0x84, 0xb8, 0x89, - 0x81, 0x93, 0xc9, 0x81, 0x8a, 0x82, 0xb0, 0x84, - 0xaf, 0x8e, 0xbb, 0x82, 0x9d, 0x88, 0x09, 0xb8, - 0x8a, 0xb1, 0x92, 0x41, 0x9b, 0xa1, 0x46, 0xc0, - 0xb3, 0x48, 0xf5, 0x9f, 0x60, 0x78, 0x73, 0x87, - 0xa1, 0x81, 0x41, 0x61, 0x07, 0x80, 0x96, 0x84, - 0xd7, 0x81, 0xb1, 0x8f, 0x00, 0xb8, 0x80, 0xa5, - 0x84, 0x9b, 0x8b, 0xac, 0x83, 0xaf, 0x8b, 0xa4, - 0x80, 0xc2, 0x8d, 0x8b, 0x07, 0x81, 0xac, 0x82, - 0xb1, 0x00, 0x11, 0x0c, 0x80, 0xab, 0x24, 0x80, - 0x40, 0xec, 0x87, 0x60, 0x4f, 0x32, 0x80, 0x48, - 0x56, 0x84, 0x46, 0x85, 0x10, 0x0c, 0x83, 0x43, - 0x13, 0x83, 0xc0, 0x80, 0x41, 0x40, 0x81, 0xce, - 0x80, 0x41, 0x02, 0x82, 0xb4, 0x8d, 0xac, 0x81, - 0x8a, 0x82, 0xac, 0x88, 0x88, 0x80, 0xbc, 0x82, - 0xa3, 0x8b, 0x91, 0x81, 0xb8, 0x82, 0xaf, 0x8c, - 0x8d, 0x81, 0xdb, 0x88, 0x08, 0x28, 0x08, 0x40, - 0x9c, 0x89, 0x96, 0x83, 0xb9, 0x31, 0x09, 0x81, - 0x89, 0x80, 0x89, 0x81, 0xd3, 0x88, 0x00, 0x08, - 0x03, 0x01, 0xe6, 0x8c, 0x02, 0xe9, 0x91, 0x40, - 0xec, 0x31, 0x86, 0x9c, 0x81, 0xd1, 0x8e, 0x00, - 0xe9, 0x8a, 0xe6, 0x8d, 0x41, 0x00, 0x8c, 0x40, - 0xf6, 0x28, 0x09, 0x0a, 0x00, 0x80, 0x40, 0x8d, - 0x31, 0x2b, 0x80, 0x9b, 0x89, 0xa9, 0x20, 0x83, - 0x91, 0x8a, 0xad, 0x8d, 0x41, 0x96, 0x38, 0x86, - 0xd2, 0x95, 0x80, 0x8d, 0xf9, 0x2a, 0x00, 0x08, - 0x10, 0x02, 0x80, 0xc1, 0x20, 0x08, 0x83, 0x41, - 0x5b, 0x83, 0x88, 0x08, 0x80, 0xaf, 0x32, 0x82, - 0x60, 0x41, 0xdc, 0x90, 0x4e, 0x1f, 0x00, 0xb6, - 0x33, 0xdc, 0x81, 0x60, 0x4c, 0xab, 0x80, 0x60, - 0x23, 0x60, 0x30, 0x90, 0x0e, 0x01, 0x04, 0xe3, - 0x80, 0x48, 0xb6, 0x80, 0x47, 0xe7, 0x99, 0x85, - 0x99, 0x85, 0x99, -}; - -static const uint8_t unicode_prop_Other_Lowercase_table[69] = { - 0x40, 0xa9, 0x80, 0x8e, 0x80, 0x41, 0xf4, 0x88, - 0x31, 0x9d, 0x84, 0xdf, 0x80, 0xb3, 0x80, 0x4d, - 0x80, 0x80, 0x4c, 0x2e, 0xbe, 0x8c, 0x80, 0xa1, - 0xa4, 0x42, 0xb0, 0x80, 0x8c, 0x80, 0x8f, 0x8c, - 0x40, 0xd2, 0x8f, 0x43, 0x4f, 0x99, 0x47, 0x91, - 0x81, 0x60, 0x7a, 0x1d, 0x81, 0x40, 0xd1, 0x80, - 0x40, 0x80, 0x12, 0x81, 0x43, 0x61, 0x83, 0x88, - 0x80, 0x60, 0x5c, 0x15, 0x01, 0x10, 0xa9, 0x80, - 0x88, 0x60, 0xd8, 0x74, 0xbd, -}; - -static const uint8_t unicode_prop_Other_Uppercase_table[15] = { - 0x60, 0x21, 0x5f, 0x8f, 0x43, 0x45, 0x99, 0x61, - 0xcc, 0x5f, 0x99, 0x85, 0x99, 0x85, 0x99, -}; - -static const uint8_t unicode_prop_Other_Grapheme_Extend_table[112] = { - 0x49, 0xbd, 0x80, 0x97, 0x80, 0x41, 0x65, 0x80, - 0x97, 0x80, 0xe5, 0x80, 0x97, 0x80, 0x40, 0xe7, - 0x00, 0x03, 0x08, 0x81, 0x88, 0x81, 0xe6, 0x80, - 0x97, 0x80, 0xf6, 0x80, 0x8e, 0x80, 0x49, 0x34, - 0x80, 0x9d, 0x80, 0x43, 0xff, 0x04, 0x00, 0x04, - 0x81, 0xe4, 0x80, 0xc6, 0x81, 0x44, 0x17, 0x80, - 0x50, 0x20, 0x81, 0x60, 0x79, 0x22, 0x80, 0xeb, - 0x80, 0x60, 0x55, 0xdc, 0x81, 0x52, 0x1f, 0x80, - 0xf3, 0x80, 0x41, 0x07, 0x80, 0x8d, 0x80, 0x88, - 0x80, 0xdf, 0x80, 0x88, 0x01, 0x00, 0x14, 0x80, - 0x40, 0xdf, 0x80, 0x8b, 0x80, 0x40, 0xf0, 0x80, - 0x41, 0x05, 0x80, 0x42, 0x78, 0x80, 0x8b, 0x80, - 0x46, 0x02, 0x80, 0x60, 0x50, 0xad, 0x81, 0x60, - 0x61, 0x72, 0x0d, 0x85, 0x6c, 0x2e, 0xac, 0xdf, -}; - -static const uint8_t unicode_prop_Other_Default_Ignorable_Code_Point_table[32] = { - 0x43, 0x4e, 0x80, 0x4e, 0x0e, 0x81, 0x46, 0x52, - 0x81, 0x48, 0xae, 0x80, 0x50, 0xfd, 0x80, 0x60, - 0xce, 0x3a, 0x80, 0xce, 0x88, 0x6d, 0x00, 0x06, - 0x00, 0x9d, 0xdf, 0xff, 0x40, 0xef, 0x4e, 0x0f, -}; - -static const uint8_t unicode_prop_Other_ID_Start_table[11] = { - 0x58, 0x84, 0x81, 0x48, 0x90, 0x80, 0x94, 0x80, - 0x4f, 0x6b, 0x81, -}; - -static const uint8_t unicode_prop_Other_ID_Continue_table[22] = { - 0x40, 0xb6, 0x80, 0x42, 0xce, 0x80, 0x4f, 0xe0, - 0x88, 0x46, 0x67, 0x80, 0x46, 0x30, 0x81, 0x50, - 0xec, 0x80, 0x60, 0xce, 0x68, 0x80, -}; - -static const uint8_t unicode_prop_Prepended_Concatenation_Mark_table[19] = { - 0x45, 0xff, 0x85, 0x40, 0xd6, 0x80, 0xb0, 0x80, - 0x41, 0x7f, 0x81, 0xcf, 0x80, 0x61, 0x07, 0xd9, - 0x80, 0x8e, 0x80, -}; - -static const uint8_t unicode_prop_XID_Start1_table[31] = { - 0x43, 0x79, 0x80, 0x4a, 0xb7, 0x80, 0xfe, 0x80, - 0x60, 0x21, 0xe6, 0x81, 0x60, 0xcb, 0xc0, 0x85, - 0x41, 0x95, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x41, 0x1e, 0x81, -}; - -static const uint8_t unicode_prop_XID_Continue1_table[23] = { - 0x43, 0x79, 0x80, 0x60, 0x2d, 0x1f, 0x81, 0x60, - 0xcb, 0xc0, 0x85, 0x41, 0x95, 0x81, 0xf3, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, -}; - -static const uint8_t unicode_prop_Changes_When_Titlecased1_table[22] = { - 0x41, 0xc3, 0x08, 0x08, 0x81, 0xa4, 0x81, 0x4e, - 0xdc, 0xaa, 0x0a, 0x4e, 0x87, 0x3f, 0x3f, 0x87, - 0x8b, 0x80, 0x8e, 0x80, 0xae, 0x80, -}; - -static const uint8_t unicode_prop_Changes_When_Casefolded1_table[29] = { - 0x41, 0xef, 0x80, 0x41, 0x9e, 0x80, 0x9e, 0x80, - 0x5a, 0xe4, 0x83, 0x40, 0xb5, 0x00, 0x00, 0x00, - 0x80, 0xde, 0x06, 0x06, 0x80, 0x8a, 0x09, 0x81, - 0x89, 0x10, 0x81, 0x8d, 0x80, -}; - -static const uint8_t unicode_prop_Changes_When_NFKC_Casefolded1_table[450] = { - 0x40, 0x9f, 0x06, 0x00, 0x01, 0x00, 0x01, 0x12, - 0x10, 0x82, 0xf3, 0x80, 0x8b, 0x80, 0x40, 0x84, - 0x01, 0x01, 0x80, 0xa2, 0x01, 0x80, 0x40, 0xbb, - 0x88, 0x9e, 0x29, 0x84, 0xda, 0x08, 0x81, 0x89, - 0x80, 0xa3, 0x04, 0x02, 0x04, 0x08, 0x07, 0x80, - 0x9e, 0x80, 0xa0, 0x82, 0x9c, 0x80, 0x42, 0x28, - 0x80, 0xd7, 0x83, 0x42, 0xde, 0x87, 0xfb, 0x08, - 0x80, 0xd2, 0x01, 0x80, 0xa1, 0x11, 0x80, 0x40, - 0xfc, 0x81, 0x42, 0xd4, 0x80, 0xfe, 0x80, 0xa7, - 0x81, 0xad, 0x80, 0xb5, 0x80, 0x88, 0x03, 0x03, - 0x03, 0x80, 0x8b, 0x80, 0x88, 0x00, 0x26, 0x80, - 0x90, 0x80, 0x88, 0x03, 0x03, 0x03, 0x80, 0x8b, - 0x80, 0x41, 0x41, 0x80, 0xe1, 0x81, 0x46, 0x52, - 0x81, 0xd4, 0x84, 0x45, 0x1b, 0x10, 0x8a, 0x80, - 0x91, 0x80, 0x9b, 0x8c, 0x80, 0xa1, 0xa4, 0x40, - 0xd5, 0x83, 0x40, 0xb5, 0x00, 0x00, 0x00, 0x80, - 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xb7, 0x05, 0x00, 0x13, 0x05, 0x11, 0x02, 0x0c, - 0x11, 0x00, 0x00, 0x0c, 0x15, 0x05, 0x08, 0x8f, - 0x00, 0x20, 0x8b, 0x12, 0x2a, 0x08, 0x0b, 0x00, - 0x07, 0x82, 0x8c, 0x06, 0x92, 0x81, 0x9a, 0x80, - 0x8c, 0x8a, 0x80, 0xd6, 0x18, 0x10, 0x8a, 0x01, - 0x0c, 0x0a, 0x00, 0x10, 0x11, 0x02, 0x06, 0x05, - 0x1c, 0x85, 0x8f, 0x8f, 0x8f, 0x88, 0x80, 0x40, - 0xa1, 0x08, 0x81, 0x40, 0xf7, 0x81, 0x41, 0x34, - 0xd5, 0x99, 0x9a, 0x45, 0x20, 0x80, 0xe6, 0x82, - 0xe4, 0x80, 0x41, 0x9e, 0x81, 0x40, 0xf0, 0x80, - 0x41, 0x2e, 0x80, 0xd2, 0x80, 0x8b, 0x40, 0xd5, - 0xa9, 0x80, 0xb4, 0x00, 0x82, 0xdf, 0x09, 0x80, - 0xde, 0x80, 0xb0, 0xdd, 0x82, 0x8d, 0xdf, 0x9e, - 0x80, 0xa7, 0x87, 0xae, 0x80, 0x41, 0x7f, 0x60, - 0x72, 0x9b, 0x81, 0x40, 0xd1, 0x80, 0x40, 0x80, - 0x12, 0x81, 0x43, 0x61, 0x83, 0x88, 0x80, 0x60, - 0x4d, 0x95, 0x41, 0x0d, 0x08, 0x00, 0x81, 0x89, - 0x00, 0x00, 0x09, 0x82, 0xc3, 0x81, 0xe9, 0xc2, - 0x00, 0x97, 0x04, 0x00, 0x01, 0x01, 0x80, 0xeb, - 0xa0, 0x41, 0x6a, 0x91, 0xbf, 0x81, 0xb5, 0xa7, - 0x8c, 0x82, 0x99, 0x95, 0x94, 0x81, 0x8b, 0x80, - 0x92, 0x03, 0x1a, 0x00, 0x80, 0x40, 0x86, 0x08, - 0x80, 0x9f, 0x99, 0x40, 0x83, 0x15, 0x0d, 0x0d, - 0x0a, 0x16, 0x06, 0x80, 0x88, 0x47, 0x87, 0x20, - 0xa9, 0x80, 0x88, 0x60, 0xb4, 0xe4, 0x83, 0x50, - 0x31, 0xa3, 0x44, 0x63, 0x86, 0x8d, 0x87, 0xbf, - 0x85, 0x42, 0x3e, 0xd4, 0x80, 0xc6, 0x01, 0x08, - 0x09, 0x0b, 0x80, 0x8b, 0x00, 0x06, 0x80, 0xc0, - 0x03, 0x0f, 0x06, 0x80, 0x9b, 0x03, 0x04, 0x00, - 0x16, 0x80, 0x41, 0x53, 0x81, 0x41, 0x23, 0x81, - 0xb1, 0x48, 0x2f, 0xbd, 0x4d, 0x91, 0x18, 0x9a, - 0x01, 0x00, 0x08, 0x80, 0x89, 0x03, 0x00, 0x00, - 0x28, 0x18, 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x06, - 0x03, 0x03, 0x00, 0x80, 0x89, 0x80, 0x90, 0x22, - 0x04, 0x80, 0x90, 0x42, 0x43, 0x8a, 0x84, 0x9e, - 0x80, 0x9f, 0x99, 0x82, 0xa2, 0x80, 0xee, 0x82, - 0x8c, 0xab, 0x83, 0x88, 0x31, 0x49, 0x9d, 0x89, - 0x60, 0xfc, 0x05, 0x42, 0x1d, 0x6b, 0x05, 0xe1, - 0x4f, 0xff, -}; - -static const uint8_t unicode_prop_ASCII_Hex_Digit_table[5] = { - 0xaf, 0x89, 0x35, 0x99, 0x85, -}; - -static const uint8_t unicode_prop_Bidi_Control_table[10] = { - 0x46, 0x1b, 0x80, 0x59, 0xf0, 0x81, 0x99, 0x84, - 0xb6, 0x83, -}; - -static const uint8_t unicode_prop_Dash_table[58] = { - 0xac, 0x80, 0x45, 0x5b, 0x80, 0xb2, 0x80, 0x4e, - 0x40, 0x80, 0x44, 0x04, 0x80, 0x48, 0x08, 0x85, - 0xbc, 0x80, 0xa6, 0x80, 0x8e, 0x80, 0x41, 0x85, - 0x80, 0x4c, 0x03, 0x01, 0x80, 0x9e, 0x0b, 0x80, - 0x9b, 0x80, 0x41, 0xbd, 0x80, 0x92, 0x80, 0xee, - 0x80, 0x60, 0xcd, 0x8f, 0x81, 0xa4, 0x80, 0x89, - 0x80, 0x40, 0xa8, 0x80, 0x4e, 0x5f, 0x80, 0x41, - 0x3d, 0x80, -}; - -static const uint8_t unicode_prop_Deprecated_table[23] = { - 0x41, 0x48, 0x80, 0x45, 0x28, 0x80, 0x49, 0x02, - 0x00, 0x80, 0x48, 0x28, 0x81, 0x48, 0xc4, 0x85, - 0x42, 0xb8, 0x81, 0x6d, 0xdc, 0xd5, 0x80, -}; - -static const uint8_t unicode_prop_Diacritic_table[438] = { - 0xdd, 0x00, 0x80, 0xc6, 0x05, 0x03, 0x01, 0x81, - 0x41, 0xf6, 0x40, 0x9e, 0x07, 0x25, 0x90, 0x0b, - 0x80, 0x88, 0x81, 0x40, 0xfc, 0x84, 0x40, 0xd0, - 0x80, 0xb6, 0x90, 0x80, 0x9a, 0x00, 0x01, 0x00, - 0x40, 0x85, 0x3b, 0x81, 0x40, 0x85, 0x0b, 0x0a, - 0x82, 0xc2, 0x9a, 0xda, 0x8a, 0xb9, 0x8a, 0xa1, - 0x81, 0xfd, 0x87, 0xa8, 0x89, 0x8f, 0x9b, 0xbc, - 0x80, 0x8f, 0x02, 0x83, 0x9b, 0x80, 0xc9, 0x80, - 0x8f, 0x80, 0xed, 0x80, 0x8f, 0x80, 0xed, 0x80, - 0x8f, 0x80, 0xae, 0x82, 0xbb, 0x80, 0x8f, 0x06, - 0x80, 0xf6, 0x80, 0xed, 0x80, 0x8f, 0x80, 0xed, - 0x80, 0x8f, 0x80, 0xec, 0x81, 0x8f, 0x80, 0xfb, - 0x80, 0xee, 0x80, 0x8b, 0x28, 0x80, 0xea, 0x80, - 0x8c, 0x84, 0xca, 0x81, 0x9a, 0x00, 0x00, 0x03, - 0x81, 0xc1, 0x10, 0x81, 0xbd, 0x80, 0xef, 0x00, - 0x81, 0xa7, 0x0b, 0x84, 0x98, 0x30, 0x80, 0x89, - 0x81, 0x42, 0xc0, 0x82, 0x43, 0xb3, 0x81, 0x9d, - 0x80, 0x40, 0x93, 0x8a, 0x88, 0x80, 0x41, 0x5a, - 0x82, 0x41, 0x23, 0x80, 0x93, 0x39, 0x80, 0xaf, - 0x8e, 0x81, 0x8a, 0xe7, 0x80, 0x8e, 0x80, 0xa5, - 0x88, 0xb5, 0x81, 0xb9, 0x80, 0x8a, 0x81, 0xc1, - 0x81, 0xbf, 0x85, 0xd1, 0x98, 0x18, 0x28, 0x0a, - 0xb1, 0xbe, 0xd8, 0x8b, 0xa4, 0x8a, 0x41, 0xbc, - 0x00, 0x82, 0x8a, 0x82, 0x8c, 0x82, 0x8c, 0x82, - 0x8c, 0x81, 0x4c, 0xef, 0x82, 0x41, 0x3c, 0x80, - 0x41, 0xf9, 0x85, 0xe8, 0x83, 0xde, 0x80, 0x60, - 0x75, 0x71, 0x80, 0x8b, 0x08, 0x80, 0x9b, 0x81, - 0xd1, 0x81, 0x8d, 0xa1, 0xe5, 0x82, 0xec, 0x81, - 0x8b, 0x80, 0xa4, 0x80, 0x40, 0x96, 0x80, 0x9a, - 0x91, 0xb8, 0x83, 0xa3, 0x80, 0xde, 0x80, 0x8b, - 0x80, 0xa3, 0x80, 0x40, 0x94, 0x82, 0xc0, 0x83, - 0xb2, 0x80, 0xe3, 0x84, 0x88, 0x82, 0xff, 0x81, - 0x60, 0x4f, 0x2f, 0x80, 0x43, 0x00, 0x8f, 0x41, - 0x0d, 0x00, 0x80, 0xae, 0x80, 0xac, 0x81, 0xc2, - 0x80, 0x42, 0xfb, 0x80, 0x44, 0x9e, 0x28, 0xa9, - 0x80, 0x88, 0x42, 0x7c, 0x13, 0x80, 0x40, 0xa4, - 0x81, 0x42, 0x3a, 0x85, 0xa5, 0x80, 0x99, 0x84, - 0x41, 0x8e, 0x82, 0xc5, 0x8a, 0xb0, 0x83, 0x40, - 0xbf, 0x80, 0xa8, 0x80, 0xc7, 0x81, 0xf7, 0x81, - 0xbd, 0x80, 0xcb, 0x80, 0x88, 0x82, 0xe7, 0x81, - 0x40, 0xb1, 0x81, 0xcf, 0x81, 0x8f, 0x80, 0x97, - 0x32, 0x84, 0xd8, 0x10, 0x81, 0x8c, 0x81, 0xde, - 0x02, 0x80, 0xfa, 0x81, 0x40, 0xfa, 0x81, 0xfd, - 0x80, 0xf5, 0x81, 0xf2, 0x80, 0x41, 0x0c, 0x81, - 0x41, 0x01, 0x0b, 0x80, 0x40, 0x9b, 0x80, 0xd2, - 0x80, 0x91, 0x80, 0xd0, 0x80, 0x41, 0xa4, 0x80, - 0x41, 0x01, 0x00, 0x81, 0xd0, 0x80, 0x41, 0xa8, - 0x81, 0x96, 0x80, 0x54, 0xeb, 0x8e, 0x60, 0x2c, - 0xd8, 0x80, 0x49, 0xbf, 0x84, 0xba, 0x86, 0x42, - 0x33, 0x81, 0x42, 0x21, 0x90, 0xcf, 0x81, 0x60, - 0x3f, 0xfd, 0x18, 0x30, 0x81, 0x5f, 0x00, 0xad, - 0x81, 0x96, 0x42, 0x1f, 0x12, 0x2f, 0x39, 0x86, - 0x9d, 0x83, 0x4e, 0x81, 0xbd, 0x40, 0xc1, 0x86, - 0x41, 0x76, 0x80, 0xbc, 0x83, 0x42, 0xfd, 0x81, - 0x42, 0xdf, 0x86, 0xec, 0x10, 0x82, -}; - -static const uint8_t unicode_prop_Extender_table[111] = { - 0x40, 0xb6, 0x80, 0x42, 0x17, 0x81, 0x43, 0x6d, - 0x80, 0x41, 0xb8, 0x80, 0x42, 0x75, 0x80, 0x40, - 0x88, 0x80, 0xd8, 0x80, 0x42, 0xef, 0x80, 0xfe, - 0x80, 0x49, 0x42, 0x80, 0xb7, 0x80, 0x42, 0x62, - 0x80, 0x41, 0x8d, 0x80, 0xc3, 0x80, 0x53, 0x88, - 0x80, 0xaa, 0x84, 0xe6, 0x81, 0xdc, 0x82, 0x60, - 0x6f, 0x15, 0x80, 0x45, 0xf5, 0x80, 0x43, 0xc1, - 0x80, 0x95, 0x80, 0x40, 0x88, 0x80, 0xeb, 0x80, - 0x94, 0x81, 0x60, 0x54, 0x7a, 0x80, 0x48, 0x0f, - 0x81, 0x45, 0xca, 0x80, 0x9a, 0x03, 0x80, 0x44, - 0xc6, 0x80, 0x41, 0x24, 0x80, 0xf3, 0x81, 0x41, - 0xf1, 0x82, 0x44, 0xce, 0x80, 0x60, 0x50, 0xa8, - 0x81, 0x44, 0x9b, 0x08, 0x80, 0x60, 0x71, 0x57, - 0x81, 0x44, 0xb0, 0x80, 0x43, 0x53, 0x82, -}; - -static const uint8_t unicode_prop_Hex_Digit_table[12] = { - 0xaf, 0x89, 0x35, 0x99, 0x85, 0x60, 0xfe, 0xa8, - 0x89, 0x35, 0x99, 0x85, -}; - -static const uint8_t unicode_prop_IDS_Unary_Operator_table[4] = { - 0x60, 0x2f, 0xfd, 0x81, -}; - -static const uint8_t unicode_prop_IDS_Binary_Operator_table[8] = { - 0x60, 0x2f, 0xef, 0x09, 0x89, 0x41, 0xf0, 0x80, -}; - -static const uint8_t unicode_prop_IDS_Trinary_Operator_table[4] = { - 0x60, 0x2f, 0xf1, 0x81, -}; - -static const uint8_t unicode_prop_Ideographic_table[72] = { - 0x60, 0x30, 0x05, 0x81, 0x98, 0x88, 0x8d, 0x82, - 0x43, 0xc4, 0x59, 0xbf, 0xbf, 0x60, 0x51, 0xff, - 0x60, 0x58, 0xff, 0x41, 0x6d, 0x81, 0xe9, 0x60, - 0x75, 0x09, 0x80, 0x9a, 0x57, 0xf7, 0x87, 0x44, - 0xd5, 0xa8, 0x89, 0x60, 0x24, 0x66, 0x41, 0x8b, - 0x60, 0x4d, 0x03, 0x60, 0xa6, 0xdf, 0x9f, 0x50, - 0x39, 0x85, 0x40, 0xdd, 0x81, 0x56, 0x81, 0x8d, - 0x5d, 0x30, 0x8e, 0x42, 0x6d, 0x49, 0xa1, 0x42, - 0x1d, 0x45, 0xe1, 0x53, 0x4a, 0x84, 0x50, 0x5f, -}; - -static const uint8_t unicode_prop_Join_Control_table[4] = { - 0x60, 0x20, 0x0b, 0x81, -}; - -static const uint8_t unicode_prop_Logical_Order_Exception_table[15] = { - 0x4e, 0x3f, 0x84, 0xfa, 0x84, 0x4a, 0xef, 0x11, - 0x80, 0x60, 0x90, 0xf9, 0x09, 0x00, 0x81, -}; - -static const uint8_t unicode_prop_Modifier_Combining_Mark_table[16] = { - 0x46, 0x53, 0x09, 0x80, 0x40, 0x82, 0x05, 0x02, - 0x81, 0x41, 0xe0, 0x08, 0x12, 0x80, 0x9e, 0x80, -}; - -static const uint8_t unicode_prop_Noncharacter_Code_Point_table[71] = { - 0x60, 0xfd, 0xcf, 0x9f, 0x42, 0x0d, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60, - 0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, -}; - -static const uint8_t unicode_prop_Pattern_Syntax_table[58] = { - 0xa0, 0x8e, 0x89, 0x86, 0x99, 0x18, 0x80, 0x99, - 0x83, 0xa1, 0x30, 0x00, 0x08, 0x00, 0x0b, 0x03, - 0x02, 0x80, 0x96, 0x80, 0x9e, 0x80, 0x5f, 0x17, - 0x97, 0x87, 0x8e, 0x81, 0x92, 0x80, 0x89, 0x41, - 0x30, 0x42, 0xcf, 0x40, 0x9f, 0x42, 0x75, 0x9d, - 0x44, 0x6b, 0x41, 0xff, 0xff, 0x41, 0x80, 0x13, - 0x98, 0x8e, 0x80, 0x60, 0xcd, 0x0c, 0x81, 0x41, - 0x04, 0x81, -}; - -static const uint8_t unicode_prop_Pattern_White_Space_table[11] = { - 0x88, 0x84, 0x91, 0x80, 0xe3, 0x80, 0x5f, 0x87, - 0x81, 0x97, 0x81, -}; - -static const uint8_t unicode_prop_Quotation_Mark_table[31] = { - 0xa1, 0x03, 0x80, 0x40, 0x82, 0x80, 0x8e, 0x80, - 0x5f, 0x5b, 0x87, 0x98, 0x81, 0x4e, 0x06, 0x80, - 0x41, 0xc8, 0x83, 0x8c, 0x82, 0x60, 0xce, 0x20, - 0x83, 0x40, 0xbc, 0x03, 0x80, 0xd9, 0x81, -}; - -static const uint8_t unicode_prop_Radical_table[9] = { - 0x60, 0x2e, 0x7f, 0x99, 0x80, 0xd8, 0x8b, 0x40, - 0xd5, -}; - -static const uint8_t unicode_prop_Regional_Indicator_table[4] = { - 0x61, 0xf1, 0xe5, 0x99, -}; - -static const uint8_t unicode_prop_Sentence_Terminal_table[213] = { - 0xa0, 0x80, 0x8b, 0x80, 0x8f, 0x80, 0x45, 0x48, - 0x80, 0x40, 0x92, 0x82, 0x40, 0xb3, 0x80, 0xaa, - 0x82, 0x40, 0xf5, 0x80, 0xbc, 0x00, 0x02, 0x81, - 0x41, 0x24, 0x81, 0x46, 0xe3, 0x81, 0x43, 0x15, - 0x03, 0x81, 0x43, 0x04, 0x80, 0x40, 0xc5, 0x81, - 0x40, 0x9c, 0x81, 0xac, 0x04, 0x80, 0x41, 0x39, - 0x81, 0x41, 0x61, 0x83, 0x40, 0xa1, 0x81, 0x89, - 0x09, 0x81, 0x9c, 0x82, 0x40, 0xba, 0x81, 0xc0, - 0x81, 0x43, 0xa3, 0x80, 0x96, 0x81, 0x88, 0x82, - 0x4c, 0xae, 0x82, 0x41, 0x31, 0x80, 0x8c, 0x80, - 0x95, 0x81, 0x41, 0xac, 0x80, 0x60, 0x74, 0xfb, - 0x80, 0x41, 0x0d, 0x81, 0x40, 0xe2, 0x02, 0x80, - 0x41, 0x7d, 0x81, 0xd5, 0x81, 0xde, 0x80, 0x40, - 0x97, 0x81, 0x40, 0x92, 0x82, 0x40, 0x8f, 0x81, - 0x40, 0xf8, 0x80, 0x60, 0x52, 0x25, 0x01, 0x81, - 0xba, 0x02, 0x81, 0x40, 0xa8, 0x80, 0x8b, 0x80, - 0x8f, 0x80, 0xc0, 0x80, 0x4a, 0xf3, 0x81, 0x44, - 0xfc, 0x84, 0xab, 0x83, 0x40, 0xbc, 0x81, 0xf4, - 0x83, 0xfe, 0x82, 0x40, 0x80, 0x0d, 0x80, 0x8f, - 0x81, 0xd7, 0x08, 0x81, 0xeb, 0x80, 0x41, 0x29, - 0x81, 0xf4, 0x81, 0x41, 0x74, 0x0c, 0x8e, 0xe8, - 0x81, 0x40, 0xf8, 0x82, 0x42, 0x04, 0x00, 0x80, - 0x40, 0xfa, 0x81, 0xd6, 0x81, 0x41, 0xa3, 0x81, - 0x42, 0xb3, 0x81, 0xc9, 0x81, 0x60, 0x4b, 0x28, - 0x81, 0x40, 0x84, 0x80, 0xc0, 0x81, 0x8a, 0x80, - 0x42, 0x28, 0x81, 0x41, 0x27, 0x80, 0x60, 0x4e, - 0x05, 0x80, 0x5d, 0xe7, 0x80, -}; - -static const uint8_t unicode_prop_Soft_Dotted_table[79] = { - 0xe8, 0x81, 0x40, 0xc3, 0x80, 0x41, 0x18, 0x80, - 0x9d, 0x80, 0xb3, 0x80, 0x93, 0x80, 0x41, 0x3f, - 0x80, 0xe1, 0x00, 0x80, 0x59, 0x08, 0x80, 0xb2, - 0x80, 0x8c, 0x02, 0x80, 0x40, 0x83, 0x80, 0x40, - 0x9c, 0x80, 0x41, 0xa4, 0x80, 0x40, 0xd5, 0x81, - 0x4b, 0x31, 0x80, 0x61, 0xa7, 0xa4, 0x81, 0xb1, - 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, - 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, - 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, 0x81, 0x48, - 0x85, 0x80, 0x41, 0x30, 0x81, 0x99, 0x80, -}; - -static const uint8_t unicode_prop_Terminal_Punctuation_table[264] = { - 0xa0, 0x80, 0x89, 0x00, 0x80, 0x8a, 0x0a, 0x80, - 0x43, 0x3d, 0x07, 0x80, 0x42, 0x00, 0x80, 0xb8, - 0x80, 0xc7, 0x80, 0x8d, 0x00, 0x82, 0x40, 0xb3, - 0x80, 0xaa, 0x8a, 0x00, 0x40, 0xea, 0x81, 0xb5, - 0x28, 0x87, 0x9e, 0x80, 0x41, 0x04, 0x81, 0x44, - 0xf3, 0x81, 0x40, 0xab, 0x03, 0x85, 0x41, 0x36, - 0x81, 0x43, 0x14, 0x87, 0x43, 0x04, 0x80, 0xfb, - 0x82, 0xc6, 0x81, 0x40, 0x9c, 0x12, 0x80, 0xa6, - 0x19, 0x81, 0x41, 0x39, 0x81, 0x41, 0x61, 0x83, - 0x40, 0xa1, 0x81, 0x89, 0x08, 0x82, 0x9c, 0x82, - 0x40, 0xba, 0x84, 0xbd, 0x81, 0x43, 0xa3, 0x80, - 0x96, 0x81, 0x88, 0x82, 0x4c, 0xae, 0x82, 0x41, - 0x31, 0x80, 0x8c, 0x03, 0x80, 0x89, 0x00, 0x0a, - 0x81, 0x41, 0xab, 0x81, 0x60, 0x74, 0xfa, 0x81, - 0x41, 0x0c, 0x82, 0x40, 0xe2, 0x84, 0x41, 0x7d, - 0x81, 0xd5, 0x81, 0xde, 0x80, 0x40, 0x96, 0x82, - 0x40, 0x92, 0x82, 0xfe, 0x80, 0x8f, 0x81, 0x40, - 0xf8, 0x80, 0x60, 0x52, 0x25, 0x01, 0x81, 0xb8, - 0x10, 0x83, 0x40, 0xa8, 0x80, 0x89, 0x00, 0x80, - 0x8a, 0x0a, 0x80, 0xc0, 0x01, 0x80, 0x44, 0x39, - 0x80, 0xaf, 0x80, 0x44, 0x85, 0x80, 0x40, 0xc6, - 0x80, 0x41, 0x35, 0x81, 0x40, 0x97, 0x85, 0xc3, - 0x85, 0xd8, 0x83, 0x43, 0xb7, 0x84, 0xab, 0x83, - 0x40, 0xbc, 0x86, 0xef, 0x83, 0xfe, 0x82, 0x40, - 0x80, 0x0d, 0x80, 0x8f, 0x81, 0xd7, 0x84, 0xeb, - 0x80, 0x41, 0x29, 0x81, 0xf4, 0x82, 0x8b, 0x81, - 0x41, 0x65, 0x1a, 0x8e, 0xe8, 0x81, 0x40, 0xf8, - 0x82, 0x42, 0x04, 0x00, 0x80, 0x40, 0xfa, 0x81, - 0xd6, 0x0b, 0x81, 0x41, 0x9d, 0x82, 0xac, 0x80, - 0x42, 0x84, 0x81, 0xc9, 0x81, 0x45, 0x2a, 0x84, - 0x60, 0x45, 0xf8, 0x81, 0x40, 0x84, 0x80, 0xc0, - 0x82, 0x89, 0x80, 0x42, 0x28, 0x81, 0x41, 0x26, - 0x81, 0x60, 0x4e, 0x05, 0x80, 0x5d, 0xe6, 0x83, -}; - -static const uint8_t unicode_prop_Unified_Ideograph_table[48] = { - 0x60, 0x33, 0xff, 0x59, 0xbf, 0xbf, 0x60, 0x51, - 0xff, 0x60, 0x5a, 0x0d, 0x08, 0x00, 0x81, 0x89, - 0x00, 0x00, 0x09, 0x82, 0x61, 0x05, 0xd5, 0x60, - 0xa6, 0xdf, 0x9f, 0x50, 0x39, 0x85, 0x40, 0xdd, - 0x81, 0x56, 0x81, 0x8d, 0x5d, 0x30, 0x8e, 0x42, - 0x6d, 0x51, 0xa1, 0x53, 0x4a, 0x84, 0x50, 0x5f, -}; - -static const uint8_t unicode_prop_Variation_Selector_table[13] = { - 0x58, 0x0a, 0x10, 0x80, 0x60, 0xe5, 0xef, 0x8f, - 0x6d, 0x02, 0xef, 0x40, 0xef, -}; - -static const uint8_t unicode_prop_Bidi_Mirrored_table[173] = { - 0xa7, 0x81, 0x91, 0x00, 0x80, 0x9b, 0x00, 0x80, - 0x9c, 0x00, 0x80, 0xac, 0x80, 0x8e, 0x80, 0x4e, - 0x7d, 0x83, 0x47, 0x5c, 0x81, 0x49, 0x9b, 0x81, - 0x89, 0x81, 0xb5, 0x81, 0x8d, 0x81, 0x40, 0xb0, - 0x80, 0x40, 0xbf, 0x1a, 0x2a, 0x02, 0x0a, 0x18, - 0x18, 0x00, 0x03, 0x88, 0x20, 0x80, 0x91, 0x23, - 0x88, 0x08, 0x00, 0x38, 0x9f, 0x0b, 0x20, 0x88, - 0x09, 0x92, 0x21, 0x88, 0x21, 0x0b, 0x97, 0x81, - 0x8f, 0x3b, 0x93, 0x0e, 0x81, 0x44, 0x3c, 0x8d, - 0xc9, 0x01, 0x18, 0x08, 0x14, 0x1c, 0x12, 0x8d, - 0x41, 0x92, 0x95, 0x0d, 0x80, 0x8d, 0x38, 0x35, - 0x10, 0x1c, 0x01, 0x0c, 0x18, 0x02, 0x09, 0x89, - 0x29, 0x81, 0x8b, 0x92, 0x03, 0x08, 0x00, 0x08, - 0x03, 0x21, 0x2a, 0x97, 0x81, 0x8a, 0x0b, 0x18, - 0x09, 0x0b, 0xaa, 0x0f, 0x80, 0xa7, 0x20, 0x00, - 0x14, 0x22, 0x18, 0x14, 0x00, 0x40, 0xff, 0x80, - 0x42, 0x02, 0x1a, 0x08, 0x81, 0x8d, 0x09, 0x89, - 0xaa, 0x87, 0x41, 0xaa, 0x89, 0x0f, 0x60, 0xce, - 0x3c, 0x2c, 0x81, 0x40, 0xa1, 0x81, 0x91, 0x00, - 0x80, 0x9b, 0x00, 0x80, 0x9c, 0x00, 0x00, 0x08, - 0x81, 0x60, 0xd7, 0x76, 0x80, 0xb8, 0x80, 0xb8, - 0x80, 0xb8, 0x80, 0xb8, 0x80, -}; - -static const uint8_t unicode_prop_Emoji_table[238] = { - 0xa2, 0x05, 0x04, 0x89, 0xee, 0x03, 0x80, 0x5f, - 0x8c, 0x80, 0x8b, 0x80, 0x40, 0xd7, 0x80, 0x95, - 0x80, 0xd9, 0x85, 0x8e, 0x81, 0x41, 0x6e, 0x81, - 0x8b, 0x80, 0x40, 0xa5, 0x80, 0x98, 0x8a, 0x1a, - 0x40, 0xc6, 0x80, 0x40, 0xe6, 0x81, 0x89, 0x80, - 0x88, 0x80, 0xb9, 0x18, 0x84, 0x88, 0x01, 0x01, - 0x09, 0x03, 0x01, 0x00, 0x09, 0x02, 0x02, 0x0f, - 0x14, 0x00, 0x04, 0x8b, 0x8a, 0x09, 0x00, 0x08, - 0x80, 0x91, 0x01, 0x81, 0x91, 0x28, 0x00, 0x0a, - 0x0c, 0x01, 0x0b, 0x81, 0x8a, 0x0c, 0x09, 0x04, - 0x08, 0x00, 0x81, 0x93, 0x0c, 0x28, 0x19, 0x03, - 0x01, 0x01, 0x28, 0x01, 0x00, 0x00, 0x05, 0x02, - 0x05, 0x80, 0x89, 0x81, 0x8e, 0x01, 0x03, 0x00, - 0x03, 0x10, 0x80, 0x8a, 0x81, 0xaf, 0x82, 0x88, - 0x80, 0x8d, 0x80, 0x8d, 0x80, 0x41, 0x73, 0x81, - 0x41, 0xce, 0x82, 0x92, 0x81, 0xb2, 0x03, 0x80, - 0x44, 0xd9, 0x80, 0x8b, 0x80, 0x42, 0x58, 0x00, - 0x80, 0x61, 0xbd, 0x69, 0x80, 0x40, 0xc9, 0x80, - 0x40, 0x9f, 0x81, 0x8b, 0x81, 0x8d, 0x01, 0x89, - 0xca, 0x99, 0x01, 0x96, 0x80, 0x93, 0x01, 0x88, - 0x94, 0x81, 0x40, 0xad, 0xa1, 0x81, 0xef, 0x09, - 0x02, 0x81, 0xd2, 0x0a, 0x80, 0x41, 0x06, 0x80, - 0xbe, 0x8a, 0x28, 0x97, 0x31, 0x0f, 0x8b, 0x01, - 0x19, 0x03, 0x81, 0x8c, 0x09, 0x07, 0x81, 0x88, - 0x04, 0x82, 0x8b, 0x17, 0x11, 0x00, 0x03, 0x05, - 0x02, 0x05, 0xd5, 0xaf, 0xc5, 0x27, 0x0a, 0x83, - 0x89, 0x10, 0x01, 0x10, 0x81, 0x89, 0x40, 0xe2, - 0x8b, 0x18, 0x41, 0x1a, 0xae, 0x80, 0x89, 0x80, - 0x40, 0xb8, 0xef, 0x8c, 0x82, 0x89, 0x84, 0xb7, - 0x86, 0x8e, 0x81, 0x8a, 0x85, 0x88, -}; - -static const uint8_t unicode_prop_Emoji_Component_table[28] = { - 0xa2, 0x05, 0x04, 0x89, 0x5f, 0xd2, 0x80, 0x40, - 0xd4, 0x80, 0x60, 0xdd, 0x2a, 0x80, 0x60, 0xf3, - 0xd5, 0x99, 0x41, 0xfa, 0x84, 0x45, 0xaf, 0x83, - 0x6c, 0x06, 0x6b, 0xdf, -}; - -static const uint8_t unicode_prop_Emoji_Modifier_table[4] = { - 0x61, 0xf3, 0xfa, 0x84, -}; - -static const uint8_t unicode_prop_Emoji_Modifier_Base_table[71] = { - 0x60, 0x26, 0x1c, 0x80, 0x40, 0xda, 0x80, 0x8f, - 0x83, 0x61, 0xcc, 0x76, 0x80, 0xbb, 0x11, 0x01, - 0x82, 0xf4, 0x09, 0x8a, 0x94, 0x92, 0x10, 0x1a, - 0x02, 0x30, 0x00, 0x97, 0x80, 0x40, 0xc8, 0x0b, - 0x80, 0x94, 0x03, 0x81, 0x40, 0xad, 0x12, 0x84, - 0xd2, 0x80, 0x8f, 0x82, 0x88, 0x80, 0x8a, 0x80, - 0x42, 0x3e, 0x01, 0x07, 0x3d, 0x80, 0x88, 0x89, - 0x0a, 0xb7, 0x80, 0xbc, 0x08, 0x08, 0x80, 0x90, - 0x10, 0x8c, 0x40, 0xe4, 0x82, 0xa9, 0x88, -}; - -static const uint8_t unicode_prop_Emoji_Presentation_table[144] = { - 0x60, 0x23, 0x19, 0x81, 0x40, 0xcc, 0x1a, 0x01, - 0x80, 0x42, 0x08, 0x81, 0x94, 0x81, 0xb1, 0x8b, - 0xaa, 0x80, 0x92, 0x80, 0x8c, 0x07, 0x81, 0x90, - 0x0c, 0x0f, 0x04, 0x80, 0x94, 0x06, 0x08, 0x03, - 0x01, 0x06, 0x03, 0x81, 0x9b, 0x80, 0xa2, 0x00, - 0x03, 0x10, 0x80, 0xbc, 0x82, 0x97, 0x80, 0x8d, - 0x80, 0x43, 0x5a, 0x81, 0xb2, 0x03, 0x80, 0x61, - 0xc4, 0xad, 0x80, 0x40, 0xc9, 0x80, 0x40, 0xbd, - 0x01, 0x89, 0xca, 0x99, 0x00, 0x97, 0x80, 0x93, - 0x01, 0x20, 0x82, 0x94, 0x81, 0x40, 0xad, 0xa0, - 0x8b, 0x88, 0x80, 0xc5, 0x80, 0x95, 0x8b, 0xaa, - 0x1c, 0x8b, 0x90, 0x10, 0x82, 0xc6, 0x00, 0x80, - 0x40, 0xba, 0x81, 0xbe, 0x8c, 0x18, 0x97, 0x91, - 0x80, 0x99, 0x81, 0x8c, 0x80, 0xd5, 0xd4, 0xaf, - 0xc5, 0x28, 0x12, 0x0a, 0x1b, 0x8a, 0x0e, 0x88, - 0x40, 0xe2, 0x8b, 0x18, 0x41, 0x1a, 0xae, 0x80, - 0x89, 0x80, 0x40, 0xb8, 0xef, 0x8c, 0x82, 0x89, - 0x84, 0xb7, 0x86, 0x8e, 0x81, 0x8a, 0x85, 0x88, -}; - -static const uint8_t unicode_prop_Extended_Pictographic_table[156] = { - 0x40, 0xa8, 0x03, 0x80, 0x5f, 0x8c, 0x80, 0x8b, - 0x80, 0x40, 0xd7, 0x80, 0x95, 0x80, 0xd9, 0x85, - 0x8e, 0x81, 0x41, 0x6e, 0x81, 0x8b, 0x80, 0xde, - 0x80, 0xc5, 0x80, 0x98, 0x8a, 0x1a, 0x40, 0xc6, - 0x80, 0x40, 0xe6, 0x81, 0x89, 0x80, 0x88, 0x80, - 0xb9, 0x18, 0x28, 0x8b, 0x80, 0xf1, 0x89, 0xf5, - 0x81, 0x8a, 0x00, 0x00, 0x28, 0x10, 0x28, 0x89, - 0x81, 0x8e, 0x01, 0x03, 0x00, 0x03, 0x10, 0x80, - 0x8a, 0x84, 0xac, 0x82, 0x88, 0x80, 0x8d, 0x80, - 0x8d, 0x80, 0x41, 0x73, 0x81, 0x41, 0xce, 0x82, - 0x92, 0x81, 0xb2, 0x03, 0x80, 0x44, 0xd9, 0x80, - 0x8b, 0x80, 0x42, 0x58, 0x00, 0x80, 0x61, 0xbd, - 0x65, 0x40, 0xff, 0x8c, 0x82, 0x9e, 0x80, 0xbb, - 0x85, 0x8b, 0x81, 0x8d, 0x01, 0x89, 0x91, 0xb8, - 0x9a, 0x8e, 0x89, 0x80, 0x93, 0x01, 0x88, 0x03, - 0x88, 0x41, 0xb1, 0x84, 0x41, 0x3d, 0x87, 0x41, - 0x09, 0xaf, 0xff, 0xf3, 0x8b, 0xd4, 0xaa, 0x8b, - 0x83, 0xb7, 0x87, 0x89, 0x85, 0xa7, 0x87, 0x9d, - 0xd1, 0x8b, 0xae, 0x80, 0x89, 0x80, 0x41, 0xb8, - 0x40, 0xff, 0x43, 0xfd, -}; - -static const uint8_t unicode_prop_Default_Ignorable_Code_Point_table[51] = { - 0x40, 0xac, 0x80, 0x42, 0xa0, 0x80, 0x42, 0xcb, - 0x80, 0x4b, 0x41, 0x81, 0x46, 0x52, 0x81, 0xd4, - 0x84, 0x47, 0xfa, 0x84, 0x99, 0x84, 0xb0, 0x8f, - 0x50, 0xf3, 0x80, 0x60, 0xcc, 0x9a, 0x8f, 0x40, - 0xee, 0x80, 0x40, 0x9f, 0x80, 0xce, 0x88, 0x60, - 0xbc, 0xa6, 0x83, 0x54, 0xce, 0x87, 0x6c, 0x2e, - 0x84, 0x4f, 0xff, -}; - -typedef enum { - UNICODE_PROP_Hyphen, - UNICODE_PROP_Other_Math, - UNICODE_PROP_Other_Alphabetic, - UNICODE_PROP_Other_Lowercase, - UNICODE_PROP_Other_Uppercase, - UNICODE_PROP_Other_Grapheme_Extend, - UNICODE_PROP_Other_Default_Ignorable_Code_Point, - UNICODE_PROP_Other_ID_Start, - UNICODE_PROP_Other_ID_Continue, - UNICODE_PROP_Prepended_Concatenation_Mark, - UNICODE_PROP_ID_Continue1, - UNICODE_PROP_XID_Start1, - UNICODE_PROP_XID_Continue1, - UNICODE_PROP_Changes_When_Titlecased1, - UNICODE_PROP_Changes_When_Casefolded1, - UNICODE_PROP_Changes_When_NFKC_Casefolded1, - UNICODE_PROP_ASCII_Hex_Digit, - UNICODE_PROP_Bidi_Control, - UNICODE_PROP_Dash, - UNICODE_PROP_Deprecated, - UNICODE_PROP_Diacritic, - UNICODE_PROP_Extender, - UNICODE_PROP_Hex_Digit, - UNICODE_PROP_IDS_Unary_Operator, - UNICODE_PROP_IDS_Binary_Operator, - UNICODE_PROP_IDS_Trinary_Operator, - UNICODE_PROP_Ideographic, - UNICODE_PROP_Join_Control, - UNICODE_PROP_Logical_Order_Exception, - UNICODE_PROP_Modifier_Combining_Mark, - UNICODE_PROP_Noncharacter_Code_Point, - UNICODE_PROP_Pattern_Syntax, - UNICODE_PROP_Pattern_White_Space, - UNICODE_PROP_Quotation_Mark, - UNICODE_PROP_Radical, - UNICODE_PROP_Regional_Indicator, - UNICODE_PROP_Sentence_Terminal, - UNICODE_PROP_Soft_Dotted, - UNICODE_PROP_Terminal_Punctuation, - UNICODE_PROP_Unified_Ideograph, - UNICODE_PROP_Variation_Selector, - UNICODE_PROP_White_Space, - UNICODE_PROP_Bidi_Mirrored, - UNICODE_PROP_Emoji, - UNICODE_PROP_Emoji_Component, - UNICODE_PROP_Emoji_Modifier, - UNICODE_PROP_Emoji_Modifier_Base, - UNICODE_PROP_Emoji_Presentation, - UNICODE_PROP_Extended_Pictographic, - UNICODE_PROP_Default_Ignorable_Code_Point, - UNICODE_PROP_ID_Start, - UNICODE_PROP_Case_Ignorable, - UNICODE_PROP_ASCII, - UNICODE_PROP_Alphabetic, - UNICODE_PROP_Any, - UNICODE_PROP_Assigned, - UNICODE_PROP_Cased, - UNICODE_PROP_Changes_When_Casefolded, - UNICODE_PROP_Changes_When_Casemapped, - UNICODE_PROP_Changes_When_Lowercased, - UNICODE_PROP_Changes_When_NFKC_Casefolded, - UNICODE_PROP_Changes_When_Titlecased, - UNICODE_PROP_Changes_When_Uppercased, - UNICODE_PROP_Grapheme_Base, - UNICODE_PROP_Grapheme_Extend, - UNICODE_PROP_ID_Continue, - UNICODE_PROP_ID_Compat_Math_Start, - UNICODE_PROP_ID_Compat_Math_Continue, - UNICODE_PROP_Lowercase, - UNICODE_PROP_Math, - UNICODE_PROP_Uppercase, - UNICODE_PROP_XID_Continue, - UNICODE_PROP_XID_Start, - UNICODE_PROP_Cased1, - UNICODE_PROP_InCB, - UNICODE_PROP_COUNT, -} UnicodePropertyEnum; - -static const char unicode_prop_name_table[] = - "ASCII_Hex_Digit,AHex" "\0" - "Bidi_Control,Bidi_C" "\0" - "Dash" "\0" - "Deprecated,Dep" "\0" - "Diacritic,Dia" "\0" - "Extender,Ext" "\0" - "Hex_Digit,Hex" "\0" - "IDS_Unary_Operator,IDSU" "\0" - "IDS_Binary_Operator,IDSB" "\0" - "IDS_Trinary_Operator,IDST" "\0" - "Ideographic,Ideo" "\0" - "Join_Control,Join_C" "\0" - "Logical_Order_Exception,LOE" "\0" - "Modifier_Combining_Mark,MCM" "\0" - "Noncharacter_Code_Point,NChar" "\0" - "Pattern_Syntax,Pat_Syn" "\0" - "Pattern_White_Space,Pat_WS" "\0" - "Quotation_Mark,QMark" "\0" - "Radical" "\0" - "Regional_Indicator,RI" "\0" - "Sentence_Terminal,STerm" "\0" - "Soft_Dotted,SD" "\0" - "Terminal_Punctuation,Term" "\0" - "Unified_Ideograph,UIdeo" "\0" - "Variation_Selector,VS" "\0" - "White_Space,space" "\0" - "Bidi_Mirrored,Bidi_M" "\0" - "Emoji" "\0" - "Emoji_Component,EComp" "\0" - "Emoji_Modifier,EMod" "\0" - "Emoji_Modifier_Base,EBase" "\0" - "Emoji_Presentation,EPres" "\0" - "Extended_Pictographic,ExtPict" "\0" - "Default_Ignorable_Code_Point,DI" "\0" - "ID_Start,IDS" "\0" - "Case_Ignorable,CI" "\0" - "ASCII" "\0" - "Alphabetic,Alpha" "\0" - "Any" "\0" - "Assigned" "\0" - "Cased" "\0" - "Changes_When_Casefolded,CWCF" "\0" - "Changes_When_Casemapped,CWCM" "\0" - "Changes_When_Lowercased,CWL" "\0" - "Changes_When_NFKC_Casefolded,CWKCF" "\0" - "Changes_When_Titlecased,CWT" "\0" - "Changes_When_Uppercased,CWU" "\0" - "Grapheme_Base,Gr_Base" "\0" - "Grapheme_Extend,Gr_Ext" "\0" - "ID_Continue,IDC" "\0" - "ID_Compat_Math_Start" "\0" - "ID_Compat_Math_Continue" "\0" - "Lowercase,Lower" "\0" - "Math" "\0" - "Uppercase,Upper" "\0" - "XID_Continue,XIDC" "\0" - "XID_Start,XIDS" "\0" -; - -static const uint8_t * const unicode_prop_table[] = { - unicode_prop_Hyphen_table, - unicode_prop_Other_Math_table, - unicode_prop_Other_Alphabetic_table, - unicode_prop_Other_Lowercase_table, - unicode_prop_Other_Uppercase_table, - unicode_prop_Other_Grapheme_Extend_table, - unicode_prop_Other_Default_Ignorable_Code_Point_table, - unicode_prop_Other_ID_Start_table, - unicode_prop_Other_ID_Continue_table, - unicode_prop_Prepended_Concatenation_Mark_table, - unicode_prop_ID_Continue1_table, - unicode_prop_XID_Start1_table, - unicode_prop_XID_Continue1_table, - unicode_prop_Changes_When_Titlecased1_table, - unicode_prop_Changes_When_Casefolded1_table, - unicode_prop_Changes_When_NFKC_Casefolded1_table, - unicode_prop_ASCII_Hex_Digit_table, - unicode_prop_Bidi_Control_table, - unicode_prop_Dash_table, - unicode_prop_Deprecated_table, - unicode_prop_Diacritic_table, - unicode_prop_Extender_table, - unicode_prop_Hex_Digit_table, - unicode_prop_IDS_Unary_Operator_table, - unicode_prop_IDS_Binary_Operator_table, - unicode_prop_IDS_Trinary_Operator_table, - unicode_prop_Ideographic_table, - unicode_prop_Join_Control_table, - unicode_prop_Logical_Order_Exception_table, - unicode_prop_Modifier_Combining_Mark_table, - unicode_prop_Noncharacter_Code_Point_table, - unicode_prop_Pattern_Syntax_table, - unicode_prop_Pattern_White_Space_table, - unicode_prop_Quotation_Mark_table, - unicode_prop_Radical_table, - unicode_prop_Regional_Indicator_table, - unicode_prop_Sentence_Terminal_table, - unicode_prop_Soft_Dotted_table, - unicode_prop_Terminal_Punctuation_table, - unicode_prop_Unified_Ideograph_table, - unicode_prop_Variation_Selector_table, - unicode_prop_White_Space_table, - unicode_prop_Bidi_Mirrored_table, - unicode_prop_Emoji_table, - unicode_prop_Emoji_Component_table, - unicode_prop_Emoji_Modifier_table, - unicode_prop_Emoji_Modifier_Base_table, - unicode_prop_Emoji_Presentation_table, - unicode_prop_Extended_Pictographic_table, - unicode_prop_Default_Ignorable_Code_Point_table, - unicode_prop_ID_Start_table, - unicode_prop_Case_Ignorable_table, -}; - -static const uint16_t unicode_prop_len_table[] = { - countof(unicode_prop_Hyphen_table), - countof(unicode_prop_Other_Math_table), - countof(unicode_prop_Other_Alphabetic_table), - countof(unicode_prop_Other_Lowercase_table), - countof(unicode_prop_Other_Uppercase_table), - countof(unicode_prop_Other_Grapheme_Extend_table), - countof(unicode_prop_Other_Default_Ignorable_Code_Point_table), - countof(unicode_prop_Other_ID_Start_table), - countof(unicode_prop_Other_ID_Continue_table), - countof(unicode_prop_Prepended_Concatenation_Mark_table), - countof(unicode_prop_ID_Continue1_table), - countof(unicode_prop_XID_Start1_table), - countof(unicode_prop_XID_Continue1_table), - countof(unicode_prop_Changes_When_Titlecased1_table), - countof(unicode_prop_Changes_When_Casefolded1_table), - countof(unicode_prop_Changes_When_NFKC_Casefolded1_table), - countof(unicode_prop_ASCII_Hex_Digit_table), - countof(unicode_prop_Bidi_Control_table), - countof(unicode_prop_Dash_table), - countof(unicode_prop_Deprecated_table), - countof(unicode_prop_Diacritic_table), - countof(unicode_prop_Extender_table), - countof(unicode_prop_Hex_Digit_table), - countof(unicode_prop_IDS_Unary_Operator_table), - countof(unicode_prop_IDS_Binary_Operator_table), - countof(unicode_prop_IDS_Trinary_Operator_table), - countof(unicode_prop_Ideographic_table), - countof(unicode_prop_Join_Control_table), - countof(unicode_prop_Logical_Order_Exception_table), - countof(unicode_prop_Modifier_Combining_Mark_table), - countof(unicode_prop_Noncharacter_Code_Point_table), - countof(unicode_prop_Pattern_Syntax_table), - countof(unicode_prop_Pattern_White_Space_table), - countof(unicode_prop_Quotation_Mark_table), - countof(unicode_prop_Radical_table), - countof(unicode_prop_Regional_Indicator_table), - countof(unicode_prop_Sentence_Terminal_table), - countof(unicode_prop_Soft_Dotted_table), - countof(unicode_prop_Terminal_Punctuation_table), - countof(unicode_prop_Unified_Ideograph_table), - countof(unicode_prop_Variation_Selector_table), - countof(unicode_prop_White_Space_table), - countof(unicode_prop_Bidi_Mirrored_table), - countof(unicode_prop_Emoji_table), - countof(unicode_prop_Emoji_Component_table), - countof(unicode_prop_Emoji_Modifier_table), - countof(unicode_prop_Emoji_Modifier_Base_table), - countof(unicode_prop_Emoji_Presentation_table), - countof(unicode_prop_Extended_Pictographic_table), - countof(unicode_prop_Default_Ignorable_Code_Point_table), - countof(unicode_prop_ID_Start_table), - countof(unicode_prop_Case_Ignorable_table), -}; - diff --git a/vendor/quickjs/source_ng/libunicode.c b/vendor/quickjs/source_ng/libunicode.c deleted file mode 100755 index a621c5235..000000000 --- a/vendor/quickjs/source_ng/libunicode.c +++ /dev/null @@ -1,1746 +0,0 @@ -/* - * Unicode utilities - * - * Copyright (c) 2017-2018 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include - -#include "cutils.h" -#include "libunicode.h" -#include "libunicode-table.h" - -// note: stored as 4 bit tag, not much room left -enum { - RUN_TYPE_U, - RUN_TYPE_L, - RUN_TYPE_UF, - RUN_TYPE_LF, - RUN_TYPE_UL, - RUN_TYPE_LSU, - RUN_TYPE_U2L_399_EXT2, - RUN_TYPE_UF_D20, - RUN_TYPE_UF_D1_EXT, - RUN_TYPE_U_EXT, - RUN_TYPE_LF_EXT, - RUN_TYPE_UF_EXT2, - RUN_TYPE_LF_EXT2, - RUN_TYPE_UF_EXT3, -}; - -static int lre_case_conv1(uint32_t c, int conv_type) -{ - uint32_t res[LRE_CC_RES_LEN_MAX]; - lre_case_conv(res, c, conv_type); - return res[0]; -} - -/* case conversion using the table entry 'idx' with value 'v' */ -static int lre_case_conv_entry(uint32_t *res, uint32_t c, int conv_type, uint32_t idx, uint32_t v) -{ - uint32_t code, data, type, a, is_lower; - is_lower = (conv_type != 0); - type = (v >> (32 - 17 - 7 - 4)) & 0xf; - data = ((v & 0xf) << 8) | case_conv_table2[idx]; - code = v >> (32 - 17); - switch(type) { - case RUN_TYPE_U: - case RUN_TYPE_L: - case RUN_TYPE_UF: - case RUN_TYPE_LF: - if (conv_type == (type & 1) || - (type >= RUN_TYPE_UF && conv_type == 2)) { - c = c - code + (case_conv_table1[data] >> (32 - 17)); - } - break; - case RUN_TYPE_UL: - a = c - code; - if ((a & 1) != (1 - is_lower)) - break; - c = (a ^ 1) + code; - break; - case RUN_TYPE_LSU: - a = c - code; - if (a == 1) { - c += 2 * is_lower - 1; - } else if (a == (1 - is_lower) * 2) { - c += (2 * is_lower - 1) * 2; - } - break; - case RUN_TYPE_U2L_399_EXT2: - if (!is_lower) { - res[0] = c - code + case_conv_ext[data >> 6]; - res[1] = 0x399; - return 2; - } else { - c = c - code + case_conv_ext[data & 0x3f]; - } - break; - case RUN_TYPE_UF_D20: - if (conv_type == 1) - break; - c = data + (conv_type == 2) * 0x20; - break; - case RUN_TYPE_UF_D1_EXT: - if (conv_type == 1) - break; - c = case_conv_ext[data] + (conv_type == 2); - break; - case RUN_TYPE_U_EXT: - case RUN_TYPE_LF_EXT: - if (is_lower != (type - RUN_TYPE_U_EXT)) - break; - c = case_conv_ext[data]; - break; - case RUN_TYPE_LF_EXT2: - if (!is_lower) - break; - res[0] = c - code + case_conv_ext[data >> 6]; - res[1] = case_conv_ext[data & 0x3f]; - return 2; - case RUN_TYPE_UF_EXT2: - if (conv_type == 1) - break; - res[0] = c - code + case_conv_ext[data >> 6]; - res[1] = case_conv_ext[data & 0x3f]; - if (conv_type == 2) { - /* convert to lower */ - res[0] = lre_case_conv1(res[0], 1); - res[1] = lre_case_conv1(res[1], 1); - } - return 2; - default: - case RUN_TYPE_UF_EXT3: - if (conv_type == 1) - break; - res[0] = case_conv_ext[data >> 8]; - res[1] = case_conv_ext[(data >> 4) & 0xf]; - res[2] = case_conv_ext[data & 0xf]; - if (conv_type == 2) { - /* convert to lower */ - res[0] = lre_case_conv1(res[0], 1); - res[1] = lre_case_conv1(res[1], 1); - res[2] = lre_case_conv1(res[2], 1); - } - return 3; - } - res[0] = c; - return 1; -} - -/* conv_type: - 0 = to upper - 1 = to lower - 2 = case folding (= to lower with modifications) -*/ -int lre_case_conv(uint32_t *res, uint32_t c, int conv_type) -{ - if (c < 128) { - if (conv_type) { - if (c >= 'A' && c <= 'Z') { - c = c - 'A' + 'a'; - } - } else { - if (c >= 'a' && c <= 'z') { - c = c - 'a' + 'A'; - } - } - } else { - uint32_t v, code, len; - int idx, idx_min, idx_max; - - idx_min = 0; - idx_max = countof(case_conv_table1) - 1; - while (idx_min <= idx_max) { - idx = (unsigned)(idx_max + idx_min) / 2; - v = case_conv_table1[idx]; - code = v >> (32 - 17); - len = (v >> (32 - 17 - 7)) & 0x7f; - if (c < code) { - idx_max = idx - 1; - } else if (c >= code + len) { - idx_min = idx + 1; - } else { - return lre_case_conv_entry(res, c, conv_type, idx, v); - } - } - } - res[0] = c; - return 1; -} - -static int lre_case_folding_entry(uint32_t c, uint32_t idx, uint32_t v, bool is_unicode) -{ - uint32_t res[LRE_CC_RES_LEN_MAX]; - int len; - - if (is_unicode) { - len = lre_case_conv_entry(res, c, 2, idx, v); - if (len == 1) { - c = res[0]; - } else { - /* handle the few specific multi-character cases (see - unicode_gen.c:dump_case_folding_special_cases()) */ - if (c == 0xfb06) { - c = 0xfb05; - } else if (c == 0x01fd3) { - c = 0x390; - } else if (c == 0x01fe3) { - c = 0x3b0; - } - } - } else { - if (likely(c < 128)) { - if (c >= 'a' && c <= 'z') - c = c - 'a' + 'A'; - } else { - /* legacy regexp: to upper case if single char >= 128 */ - len = lre_case_conv_entry(res, c, false, idx, v); - if (len == 1 && res[0] >= 128) - c = res[0]; - } - } - return c; -} - -/* JS regexp specific rules for case folding */ -int lre_canonicalize(uint32_t c, bool is_unicode) -{ - if (c < 128) { - /* fast case */ - if (is_unicode) { - if (c >= 'A' && c <= 'Z') { - c = c - 'A' + 'a'; - } - } else { - if (c >= 'a' && c <= 'z') { - c = c - 'a' + 'A'; - } - } - } else { - uint32_t v, code, len; - int idx, idx_min, idx_max; - - idx_min = 0; - idx_max = countof(case_conv_table1) - 1; - while (idx_min <= idx_max) { - idx = (unsigned)(idx_max + idx_min) / 2; - v = case_conv_table1[idx]; - code = v >> (32 - 17); - len = (v >> (32 - 17 - 7)) & 0x7f; - if (c < code) { - idx_max = idx - 1; - } else if (c >= code + len) { - idx_min = idx + 1; - } else { - return lre_case_folding_entry(c, idx, v, is_unicode); - } - } - } - return c; -} - -static uint32_t get_le24(const uint8_t *ptr) -{ - return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16); -} - -#define UNICODE_INDEX_BLOCK_LEN 32 - -/* return -1 if not in table, otherwise the offset in the block */ -static int get_index_pos(uint32_t *pcode, uint32_t c, - const uint8_t *index_table, int index_table_len) -{ - uint32_t code, v; - int idx_min, idx_max, idx; - - idx_min = 0; - v = get_le24(index_table); - code = v & ((1 << 21) - 1); - if (c < code) { - *pcode = 0; - return 0; - } - idx_max = index_table_len - 1; - code = get_le24(index_table + idx_max * 3); - if (c >= code) - return -1; - /* invariant: tab[idx_min] <= c < tab2[idx_max] */ - while ((idx_max - idx_min) > 1) { - idx = (idx_max + idx_min) / 2; - v = get_le24(index_table + idx * 3); - code = v & ((1 << 21) - 1); - if (c < code) { - idx_max = idx; - } else { - idx_min = idx; - } - } - v = get_le24(index_table + idx_min * 3); - *pcode = v & ((1 << 21) - 1); - return (idx_min + 1) * UNICODE_INDEX_BLOCK_LEN + (v >> 21); -} - -static bool lre_is_in_table(uint32_t c, const uint8_t *table, - const uint8_t *index_table, int index_table_len) -{ - uint32_t code, b, bit; - int pos; - const uint8_t *p; - - pos = get_index_pos(&code, c, index_table, index_table_len); - if (pos < 0) - return false; /* outside the table */ - p = table + pos; - bit = 0; - for(;;) { - b = *p++; - if (b < 64) { - code += (b >> 3) + 1; - if (c < code) - return bit; - bit ^= 1; - code += (b & 7) + 1; - } else if (b >= 0x80) { - code += b - 0x80 + 1; - } else if (b < 0x60) { - code += (((b - 0x40) << 8) | p[0]) + 1; - p++; - } else { - code += (((b - 0x60) << 16) | (p[0] << 8) | p[1]) + 1; - p += 2; - } - if (c < code) - return bit; - bit ^= 1; - } -} - -bool lre_is_cased(uint32_t c) -{ - uint32_t v, code, len; - int idx, idx_min, idx_max; - - idx_min = 0; - idx_max = countof(case_conv_table1) - 1; - while (idx_min <= idx_max) { - idx = (unsigned)(idx_max + idx_min) / 2; - v = case_conv_table1[idx]; - code = v >> (32 - 17); - len = (v >> (32 - 17 - 7)) & 0x7f; - if (c < code) { - idx_max = idx - 1; - } else if (c >= code + len) { - idx_min = idx + 1; - } else { - return true; - } - } - return lre_is_in_table(c, unicode_prop_Cased1_table, - unicode_prop_Cased1_index, - sizeof(unicode_prop_Cased1_index) / 3); -} - -bool lre_is_case_ignorable(uint32_t c) -{ - return lre_is_in_table(c, unicode_prop_Case_Ignorable_table, - unicode_prop_Case_Ignorable_index, - sizeof(unicode_prop_Case_Ignorable_index) / 3); -} - -/* character range */ - -static __maybe_unused void cr_dump(CharRange *cr) -{ - int i; - for(i = 0; i < cr->len; i++) - printf("%d: 0x%04x\n", i, cr->points[i]); -} - -static void *cr_default_realloc(void *opaque, void *ptr, size_t size) -{ - return realloc(ptr, size); -} - -void cr_init(CharRange *cr, void *mem_opaque, DynBufReallocFunc *realloc_func) -{ - cr->len = cr->size = 0; - cr->points = NULL; - cr->mem_opaque = mem_opaque; - cr->realloc_func = realloc_func ? realloc_func : cr_default_realloc; -} - -void cr_free(CharRange *cr) -{ - cr->realloc_func(cr->mem_opaque, cr->points, 0); -} - -int cr_realloc(CharRange *cr, int size) -{ - int new_size; - uint32_t *new_buf; - - if (size > cr->size) { - new_size = max_int(size, cr->size * 3 / 2); - new_buf = cr->realloc_func(cr->mem_opaque, cr->points, - new_size * sizeof(cr->points[0])); - if (!new_buf) - return -1; - cr->points = new_buf; - cr->size = new_size; - } - return 0; -} - -int cr_copy(CharRange *cr, const CharRange *cr1) -{ - if (cr_realloc(cr, cr1->len)) - return -1; - memcpy(cr->points, cr1->points, sizeof(cr->points[0]) * cr1->len); - cr->len = cr1->len; - return 0; -} - -/* merge consecutive intervals and remove empty intervals */ -static void cr_compress(CharRange *cr) -{ - int i, j, k, len; - uint32_t *pt; - - pt = cr->points; - len = cr->len; - i = 0; - j = 0; - k = 0; - while ((i + 1) < len) { - if (pt[i] == pt[i + 1]) { - /* empty interval */ - i += 2; - } else { - j = i; - while ((j + 3) < len && pt[j + 1] == pt[j + 2]) - j += 2; - /* just copy */ - pt[k] = pt[i]; - pt[k + 1] = pt[j + 1]; - k += 2; - i = j + 2; - } - } - cr->len = k; -} - -/* union or intersection */ -int cr_op(CharRange *cr, const uint32_t *a_pt, int a_len, - const uint32_t *b_pt, int b_len, int op) -{ - int a_idx, b_idx, is_in; - uint32_t v; - - a_idx = 0; - b_idx = 0; - for(;;) { - /* get one more point from a or b in increasing order */ - if (a_idx < a_len && b_idx < b_len) { - if (a_pt[a_idx] < b_pt[b_idx]) { - goto a_add; - } else if (a_pt[a_idx] == b_pt[b_idx]) { - v = a_pt[a_idx]; - a_idx++; - b_idx++; - } else { - goto b_add; - } - } else if (a_idx < a_len) { - a_add: - v = a_pt[a_idx++]; - } else if (b_idx < b_len) { - b_add: - v = b_pt[b_idx++]; - } else { - break; - } - /* add the point if the in/out status changes */ - switch(op) { - case CR_OP_UNION: - is_in = (a_idx & 1) | (b_idx & 1); - break; - case CR_OP_INTER: - is_in = (a_idx & 1) & (b_idx & 1); - break; - case CR_OP_XOR: - is_in = (a_idx & 1) ^ (b_idx & 1); - break; - default: - abort(); - } - if (is_in != (cr->len & 1)) { - if (cr_add_point(cr, v)) - return -1; - } - } - cr_compress(cr); - return 0; -} - -int cr_union1(CharRange *cr, const uint32_t *b_pt, int b_len) -{ - CharRange a = *cr; - int ret; - cr->len = 0; - cr->size = 0; - cr->points = NULL; - ret = cr_op(cr, a.points, a.len, b_pt, b_len, CR_OP_UNION); - cr_free(&a); - return ret; -} - -int cr_invert(CharRange *cr) -{ - int len; - len = cr->len; - if (cr_realloc(cr, len + 2)) - return -1; - memmove(cr->points + 1, cr->points, len * sizeof(cr->points[0])); - cr->points[0] = 0; - cr->points[len + 1] = UINT32_MAX; - cr->len = len + 2; - cr_compress(cr); - return 0; -} - -bool lre_is_id_start(uint32_t c) -{ - return lre_is_in_table(c, unicode_prop_ID_Start_table, - unicode_prop_ID_Start_index, - sizeof(unicode_prop_ID_Start_index) / 3); -} - -bool lre_is_id_continue(uint32_t c) -{ - return lre_is_id_start(c) || - lre_is_in_table(c, unicode_prop_ID_Continue1_table, - unicode_prop_ID_Continue1_index, - sizeof(unicode_prop_ID_Continue1_index) / 3); -} - -bool lre_is_white_space(uint32_t c) -{ - return lre_is_in_table(c, unicode_prop_White_Space_table, - unicode_prop_White_Space_index, - sizeof(unicode_prop_White_Space_index) / 3); -} - -#define UNICODE_DECOMP_LEN_MAX 18 - -typedef enum { - DECOMP_TYPE_C1, /* 16 bit char */ - DECOMP_TYPE_L1, /* 16 bit char table */ - DECOMP_TYPE_L2, - DECOMP_TYPE_L3, - DECOMP_TYPE_L4, - DECOMP_TYPE_L5, /* XXX: not used */ - DECOMP_TYPE_L6, /* XXX: could remove */ - DECOMP_TYPE_L7, /* XXX: could remove */ - DECOMP_TYPE_LL1, /* 18 bit char table */ - DECOMP_TYPE_LL2, - DECOMP_TYPE_S1, /* 8 bit char table */ - DECOMP_TYPE_S2, - DECOMP_TYPE_S3, - DECOMP_TYPE_S4, - DECOMP_TYPE_S5, - DECOMP_TYPE_I1, /* increment 16 bit char value */ - DECOMP_TYPE_I2_0, - DECOMP_TYPE_I2_1, - DECOMP_TYPE_I3_1, - DECOMP_TYPE_I3_2, - DECOMP_TYPE_I4_1, - DECOMP_TYPE_I4_2, - DECOMP_TYPE_B1, /* 16 bit base + 8 bit offset */ - DECOMP_TYPE_B2, - DECOMP_TYPE_B3, - DECOMP_TYPE_B4, - DECOMP_TYPE_B5, - DECOMP_TYPE_B6, - DECOMP_TYPE_B7, - DECOMP_TYPE_B8, - DECOMP_TYPE_B18, - DECOMP_TYPE_LS2, - DECOMP_TYPE_PAT3, - DECOMP_TYPE_S2_UL, - DECOMP_TYPE_LS2_UL, -} DecompTypeEnum; - -static uint32_t unicode_get_short_code(uint32_t c) -{ - static const uint16_t unicode_short_table[2] = { 0x2044, 0x2215 }; - - if (c < 0x80) - return c; - else if (c < 0x80 + 0x50) - return c - 0x80 + 0x300; - else - return unicode_short_table[c - 0x80 - 0x50]; -} - -static uint32_t unicode_get_lower_simple(uint32_t c) -{ - if (c < 0x100 || (c >= 0x410 && c <= 0x42f)) - c += 0x20; - else - c++; - return c; -} - -static uint16_t unicode_get16(const uint8_t *p) -{ - return p[0] | (p[1] << 8); -} - -static int unicode_decomp_entry(uint32_t *res, uint32_t c, - int idx, uint32_t code, uint32_t len, - uint32_t type) -{ - uint32_t c1; - int l, i, p; - const uint8_t *d; - - if (type == DECOMP_TYPE_C1) { - res[0] = unicode_decomp_table2[idx]; - return 1; - } else { - d = unicode_decomp_data + unicode_decomp_table2[idx]; - switch(type) { - case DECOMP_TYPE_L1: - case DECOMP_TYPE_L2: - case DECOMP_TYPE_L3: - case DECOMP_TYPE_L4: - case DECOMP_TYPE_L5: - case DECOMP_TYPE_L6: - case DECOMP_TYPE_L7: - l = type - DECOMP_TYPE_L1 + 1; - d += (c - code) * l * 2; - for(i = 0; i < l; i++) { - if ((res[i] = unicode_get16(d + 2 * i)) == 0) - return 0; - } - return l; - case DECOMP_TYPE_LL1: - case DECOMP_TYPE_LL2: - { - uint32_t k, p; - l = type - DECOMP_TYPE_LL1 + 1; - k = (c - code) * l; - p = len * l * 2; - for(i = 0; i < l; i++) { - c1 = unicode_get16(d + 2 * k) | - (((d[p + (k / 4)] >> ((k % 4) * 2)) & 3) << 16); - if (!c1) - return 0; - res[i] = c1; - k++; - } - } - return l; - case DECOMP_TYPE_S1: - case DECOMP_TYPE_S2: - case DECOMP_TYPE_S3: - case DECOMP_TYPE_S4: - case DECOMP_TYPE_S5: - l = type - DECOMP_TYPE_S1 + 1; - d += (c - code) * l; - for(i = 0; i < l; i++) { - if ((res[i] = unicode_get_short_code(d[i])) == 0) - return 0; - } - return l; - case DECOMP_TYPE_I1: - l = 1; - p = 0; - goto decomp_type_i; - case DECOMP_TYPE_I2_0: - case DECOMP_TYPE_I2_1: - case DECOMP_TYPE_I3_1: - case DECOMP_TYPE_I3_2: - case DECOMP_TYPE_I4_1: - case DECOMP_TYPE_I4_2: - l = 2 + ((type - DECOMP_TYPE_I2_0) >> 1); - p = ((type - DECOMP_TYPE_I2_0) & 1) + (l > 2); - decomp_type_i: - for(i = 0; i < l; i++) { - c1 = unicode_get16(d + 2 * i); - if (i == p) - c1 += c - code; - res[i] = c1; - } - return l; - case DECOMP_TYPE_B18: - l = 18; - goto decomp_type_b; - case DECOMP_TYPE_B1: - case DECOMP_TYPE_B2: - case DECOMP_TYPE_B3: - case DECOMP_TYPE_B4: - case DECOMP_TYPE_B5: - case DECOMP_TYPE_B6: - case DECOMP_TYPE_B7: - case DECOMP_TYPE_B8: - l = type - DECOMP_TYPE_B1 + 1; - decomp_type_b: - { - uint32_t c_min; - c_min = unicode_get16(d); - d += 2 + (c - code) * l; - for(i = 0; i < l; i++) { - c1 = d[i]; - if (c1 == 0xff) - c1 = 0x20; - else - c1 += c_min; - res[i] = c1; - } - } - return l; - case DECOMP_TYPE_LS2: - d += (c - code) * 3; - if (!(res[0] = unicode_get16(d))) - return 0; - res[1] = unicode_get_short_code(d[2]); - return 2; - case DECOMP_TYPE_PAT3: - res[0] = unicode_get16(d); - res[2] = unicode_get16(d + 2); - d += 4 + (c - code) * 2; - res[1] = unicode_get16(d); - return 3; - case DECOMP_TYPE_S2_UL: - case DECOMP_TYPE_LS2_UL: - c1 = c - code; - if (type == DECOMP_TYPE_S2_UL) { - d += c1 & ~1; - c = unicode_get_short_code(*d); - d++; - } else { - d += (c1 >> 1) * 3; - c = unicode_get16(d); - d += 2; - } - if (c1 & 1) - c = unicode_get_lower_simple(c); - res[0] = c; - res[1] = unicode_get_short_code(*d); - return 2; - } - } - return 0; -} - - -/* return the length of the decomposition (length <= - UNICODE_DECOMP_LEN_MAX) or 0 if no decomposition */ -static int unicode_decomp_char(uint32_t *res, uint32_t c, bool is_compat1) -{ - uint32_t v, type, is_compat, code, len; - int idx_min, idx_max, idx; - - idx_min = 0; - idx_max = countof(unicode_decomp_table1) - 1; - while (idx_min <= idx_max) { - idx = (idx_max + idx_min) / 2; - v = unicode_decomp_table1[idx]; - code = v >> (32 - 18); - len = (v >> (32 - 18 - 7)) & 0x7f; - // printf("idx=%d code=%05x len=%d\n", idx, code, len); - if (c < code) { - idx_max = idx - 1; - } else if (c >= code + len) { - idx_min = idx + 1; - } else { - is_compat = v & 1; - if (is_compat1 < is_compat) - break; - type = (v >> (32 - 18 - 7 - 6)) & 0x3f; - return unicode_decomp_entry(res, c, idx, code, len, type); - } - } - return 0; -} - -/* return 0 if no pair found */ -static int unicode_compose_pair(uint32_t c0, uint32_t c1) -{ - uint32_t code, len, type, v, idx1, d_idx, d_offset, ch; - int idx_min, idx_max, idx, d; - uint32_t pair[2]; - - idx_min = 0; - idx_max = countof(unicode_comp_table) - 1; - while (idx_min <= idx_max) { - idx = (idx_max + idx_min) / 2; - idx1 = unicode_comp_table[idx]; - - /* idx1 represent an entry of the decomposition table */ - d_idx = idx1 >> 6; - d_offset = idx1 & 0x3f; - v = unicode_decomp_table1[d_idx]; - code = v >> (32 - 18); - len = (v >> (32 - 18 - 7)) & 0x7f; - type = (v >> (32 - 18 - 7 - 6)) & 0x3f; - ch = code + d_offset; - unicode_decomp_entry(pair, ch, d_idx, code, len, type); - d = c0 - pair[0]; - if (d == 0) - d = c1 - pair[1]; - if (d < 0) { - idx_max = idx - 1; - } else if (d > 0) { - idx_min = idx + 1; - } else { - return ch; - } - } - return 0; -} - -/* return the combining class of character c (between 0 and 255) */ -static int unicode_get_cc(uint32_t c) -{ - uint32_t code, n, type, cc, c1, b; - int pos; - const uint8_t *p; - - pos = get_index_pos(&code, c, - unicode_cc_index, sizeof(unicode_cc_index) / 3); - if (pos < 0) - return 0; - p = unicode_cc_table + pos; - for(;;) { - b = *p++; - type = b >> 6; - n = b & 0x3f; - if (n < 48) { - } else if (n < 56) { - n = (n - 48) << 8; - n |= *p++; - n += 48; - } else { - n = (n - 56) << 8; - n |= *p++ << 8; - n |= *p++; - n += 48 + (1 << 11); - } - if (type <= 1) - p++; - c1 = code + n + 1; - if (c < c1) { - switch(type) { - case 0: - cc = p[-1]; - break; - case 1: - cc = p[-1] + c - code; - break; - case 2: - cc = 0; - break; - default: - case 3: - cc = 230; - break; - } - return cc; - } - code = c1; - } -} - -static void sort_cc(int *buf, int len) -{ - int i, j, k, cc, cc1, start, ch1; - - for(i = 0; i < len; i++) { - cc = unicode_get_cc(buf[i]); - if (cc != 0) { - start = i; - j = i + 1; - while (j < len) { - ch1 = buf[j]; - cc1 = unicode_get_cc(ch1); - if (cc1 == 0) - break; - k = j - 1; - while (k >= start) { - if (unicode_get_cc(buf[k]) <= cc1) - break; - buf[k + 1] = buf[k]; - k--; - } - buf[k + 1] = ch1; - j++; - } - i = j; - } - } -} - -static void to_nfd_rec(DynBuf *dbuf, - const int *src, int src_len, int is_compat) -{ - uint32_t c, v; - int i, l; - uint32_t res[UNICODE_DECOMP_LEN_MAX]; - - for(i = 0; i < src_len; i++) { - c = src[i]; - if (c >= 0xac00 && c < 0xd7a4) { - /* Hangul decomposition */ - c -= 0xac00; - dbuf_put_u32(dbuf, 0x1100 + c / 588); - dbuf_put_u32(dbuf, 0x1161 + (c % 588) / 28); - v = c % 28; - if (v != 0) - dbuf_put_u32(dbuf, 0x11a7 + v); - } else { - l = unicode_decomp_char(res, c, is_compat); - if (l) { - to_nfd_rec(dbuf, (int *)res, l, is_compat); - } else { - dbuf_put_u32(dbuf, c); - } - } - } -} - -/* return 0 if not found */ -static int compose_pair(uint32_t c0, uint32_t c1) -{ - /* Hangul composition */ - if (c0 >= 0x1100 && c0 < 0x1100 + 19 && - c1 >= 0x1161 && c1 < 0x1161 + 21) { - return 0xac00 + (c0 - 0x1100) * 588 + (c1 - 0x1161) * 28; - } else if (c0 >= 0xac00 && c0 < 0xac00 + 11172 && - (c0 - 0xac00) % 28 == 0 && - c1 >= 0x11a7 && c1 < 0x11a7 + 28) { - return c0 + c1 - 0x11a7; - } else { - return unicode_compose_pair(c0, c1); - } -} - -int unicode_normalize(uint32_t **pdst, const uint32_t *src, int src_len, - UnicodeNormalizationEnum n_type, - void *opaque, DynBufReallocFunc *realloc_func) -{ - int *buf, buf_len, i, p, starter_pos, cc, last_cc, out_len; - bool is_compat; - DynBuf dbuf_s, *dbuf = &dbuf_s; - - is_compat = n_type >> 1; - - dbuf_init2(dbuf, opaque, realloc_func); - if (dbuf_realloc(dbuf, sizeof(int) * src_len)) - goto fail; - - /* common case: latin1 is unaffected by NFC */ - if (n_type == UNICODE_NFC) { - for(i = 0; i < src_len; i++) { - if (src[i] >= 0x100) - goto not_latin1; - } - buf = (int *)dbuf->buf; - memcpy(buf, src, src_len * sizeof(int)); - *pdst = (uint32_t *)buf; - return src_len; - not_latin1: ; - } - - to_nfd_rec(dbuf, (const int *)src, src_len, is_compat); - if (dbuf_error(dbuf)) { - fail: - *pdst = NULL; - return -1; - } - buf = (int *)dbuf->buf; - buf_len = dbuf->size / sizeof(int); - - sort_cc(buf, buf_len); - - if (buf_len <= 1 || (n_type & 1) != 0) { - /* NFD / NFKD */ - *pdst = (uint32_t *)buf; - return buf_len; - } - - i = 1; - out_len = 1; - while (i < buf_len) { - /* find the starter character and test if it is blocked from - the character at 'i' */ - last_cc = unicode_get_cc(buf[i]); - starter_pos = out_len - 1; - while (starter_pos >= 0) { - cc = unicode_get_cc(buf[starter_pos]); - if (cc == 0) - break; - if (cc >= last_cc) - goto next; - last_cc = 256; - starter_pos--; - } - if (starter_pos >= 0 && - (p = compose_pair(buf[starter_pos], buf[i])) != 0) { - buf[starter_pos] = p; - i++; - } else { - next: - buf[out_len++] = buf[i++]; - } - } - *pdst = (uint32_t *)buf; - return out_len; -} - -/* char ranges for various unicode properties */ - -static int unicode_find_name(const char *name_table, const char *name) -{ - const char *p, *r; - int pos; - size_t name_len, len; - - p = name_table; - pos = 0; - name_len = strlen(name); - while (*p) { - for(;;) { - r = strchr(p, ','); - if (!r) - len = strlen(p); - else - len = r - p; - if (len == name_len && !memcmp(p, name, name_len)) - return pos; - p += len + 1; - if (!r) - break; - } - pos++; - } - return -1; -} - -/* 'cr' must be initialized and empty. Return 0 if OK, -1 if error, -2 - if not found */ -int unicode_script(CharRange *cr, - const char *script_name, bool is_ext) -{ - int script_idx; - const uint8_t *p, *p_end; - uint32_t c, c1, b, n, v, v_len, i, type; - CharRange cr1_s = { 0 }, *cr1 = NULL; - CharRange cr2_s = { 0 }, *cr2 = &cr2_s; - bool is_common; - - script_idx = unicode_find_name(unicode_script_name_table, script_name); - if (script_idx < 0) - return -2; - /* Note: we remove the "Unknown" Script */ - script_idx += UNICODE_SCRIPT_Unknown + 1; - - is_common = (script_idx == UNICODE_SCRIPT_Common || - script_idx == UNICODE_SCRIPT_Inherited); - if (is_ext) { - cr1 = &cr1_s; - cr_init(cr1, cr->mem_opaque, cr->realloc_func); - cr_init(cr2, cr->mem_opaque, cr->realloc_func); - } else { - cr1 = cr; - } - - p = unicode_script_table; - p_end = unicode_script_table + countof(unicode_script_table); - c = 0; - while (p < p_end) { - b = *p++; - type = b >> 7; - n = b & 0x7f; - if (n < 96) { - } else if (n < 112) { - n = (n - 96) << 8; - n |= *p++; - n += 96; - } else { - n = (n - 112) << 16; - n |= *p++ << 8; - n |= *p++; - n += 96 + (1 << 12); - } - if (type == 0) - v = 0; - else - v = *p++; - c1 = c + n + 1; - if (v == script_idx) { - if (cr_add_interval(cr1, c, c1)) - goto fail; - } - c = c1; - } - - if (is_ext) { - /* add the script extensions */ - p = unicode_script_ext_table; - p_end = unicode_script_ext_table + countof(unicode_script_ext_table); - c = 0; - while (p < p_end) { - b = *p++; - if (b < 128) { - n = b; - } else if (b < 128 + 64) { - n = (b - 128) << 8; - n |= *p++; - n += 128; - } else { - n = (b - 128 - 64) << 16; - n |= *p++ << 8; - n |= *p++; - n += 128 + (1 << 14); - } - c1 = c + n + 1; - v_len = *p++; - if (is_common) { - if (v_len != 0) { - if (cr_add_interval(cr2, c, c1)) - goto fail; - } - } else { - for(i = 0; i < v_len; i++) { - if (p[i] == script_idx) { - if (cr_add_interval(cr2, c, c1)) - goto fail; - break; - } - } - } - p += v_len; - c = c1; - } - if (is_common) { - /* remove all the characters with script extensions */ - if (cr_invert(cr2)) - goto fail; - if (cr_op(cr, cr1->points, cr1->len, cr2->points, cr2->len, - CR_OP_INTER)) - goto fail; - } else { - if (cr_op(cr, cr1->points, cr1->len, cr2->points, cr2->len, - CR_OP_UNION)) - goto fail; - } - cr_free(cr1); - cr_free(cr2); - } - return 0; - fail: - if (is_ext) { - cr_free(cr1); - cr_free(cr2); - } - goto fail; -} - -#define M(id) (1U << UNICODE_GC_ ## id) - -static int unicode_general_category1(CharRange *cr, uint32_t gc_mask) -{ - const uint8_t *p, *p_end; - uint32_t c, c0, b, n, v; - - p = unicode_gc_table; - p_end = unicode_gc_table + countof(unicode_gc_table); - c = 0; - while (p < p_end) { - b = *p++; - n = b >> 5; - v = b & 0x1f; - if (n == 7) { - n = *p++; - if (n < 128) { - n += 7; - } else if (n < 128 + 64) { - n = (n - 128) << 8; - n |= *p++; - n += 7 + 128; - } else { - n = (n - 128 - 64) << 16; - n |= *p++ << 8; - n |= *p++; - n += 7 + 128 + (1 << 14); - } - } - c0 = c; - c += n + 1; - if (v == 31) { - /* run of Lu / Ll */ - b = gc_mask & (M(Lu) | M(Ll)); - if (b != 0) { - if (b == (M(Lu) | M(Ll))) { - goto add_range; - } else { - c0 += ((gc_mask & M(Ll)) != 0); - for(; c0 < c; c0 += 2) { - if (cr_add_interval(cr, c0, c0 + 1)) - return -1; - } - } - } - } else if ((gc_mask >> v) & 1) { - add_range: - if (cr_add_interval(cr, c0, c)) - return -1; - } - } - return 0; -} - -static int unicode_prop1(CharRange *cr, int prop_idx) -{ - const uint8_t *p, *p_end; - uint32_t c, c0, b, bit; - - p = unicode_prop_table[prop_idx]; - p_end = p + unicode_prop_len_table[prop_idx]; - c = 0; - bit = 0; - while (p < p_end) { - c0 = c; - b = *p++; - if (b < 64) { - c += (b >> 3) + 1; - if (bit) { - if (cr_add_interval(cr, c0, c)) - return -1; - } - bit ^= 1; - c0 = c; - c += (b & 7) + 1; - } else if (b >= 0x80) { - c += b - 0x80 + 1; - } else if (b < 0x60) { - c += (((b - 0x40) << 8) | p[0]) + 1; - p++; - } else { - c += (((b - 0x60) << 16) | (p[0] << 8) | p[1]) + 1; - p += 2; - } - if (bit) { - if (cr_add_interval(cr, c0, c)) - return -1; - } - bit ^= 1; - } - return 0; -} - -#define CASE_U (1 << 0) -#define CASE_L (1 << 1) -#define CASE_F (1 << 2) - -/* use the case conversion table to generate range of characters. - CASE_U: set char if modified by uppercasing, - CASE_L: set char if modified by lowercasing, - CASE_F: set char if modified by case folding, - */ -static int unicode_case1(CharRange *cr, int case_mask) -{ -#define MR(x) (1 << RUN_TYPE_ ## x) - const uint32_t tab_run_mask[3] = { - MR(U) | MR(UF) | MR(UL) | MR(LSU) | MR(U2L_399_EXT2) | MR(UF_D20) | - MR(UF_D1_EXT) | MR(U_EXT) | MR(UF_EXT2) | MR(UF_EXT3), - - MR(L) | MR(LF) | MR(UL) | MR(LSU) | MR(U2L_399_EXT2) | MR(LF_EXT) | MR(LF_EXT2), - - MR(UF) | MR(LF) | MR(UL) | MR(LSU) | MR(U2L_399_EXT2) | MR(LF_EXT) | MR(LF_EXT2) | MR(UF_D20) | MR(UF_D1_EXT) | MR(LF_EXT) | MR(UF_EXT2) | MR(UF_EXT3), - }; -#undef MR - uint32_t mask, v, code, type, len, i, idx; - - if (case_mask == 0) - return 0; - mask = 0; - for(i = 0; i < 3; i++) { - if ((case_mask >> i) & 1) - mask |= tab_run_mask[i]; - } - for(idx = 0; idx < countof(case_conv_table1); idx++) { - v = case_conv_table1[idx]; - type = (v >> (32 - 17 - 7 - 4)) & 0xf; - code = v >> (32 - 17); - len = (v >> (32 - 17 - 7)) & 0x7f; - if ((mask >> type) & 1) { - // printf("%d: type=%d %04x %04x\n", idx, type, code, code + len - 1); - switch(type) { - case RUN_TYPE_UL: - if ((case_mask & CASE_U) && (case_mask & (CASE_L | CASE_F))) - goto def_case; - code += ((case_mask & CASE_U) != 0); - for(i = 0; i < len; i += 2) { - if (cr_add_interval(cr, code + i, code + i + 1)) - return -1; - } - break; - case RUN_TYPE_LSU: - if ((case_mask & CASE_U) && (case_mask & (CASE_L | CASE_F))) - goto def_case; - if (!(case_mask & CASE_U)) { - if (cr_add_interval(cr, code, code + 1)) - return -1; - } - if (cr_add_interval(cr, code + 1, code + 2)) - return -1; - if (case_mask & CASE_U) { - if (cr_add_interval(cr, code + 2, code + 3)) - return -1; - } - break; - default: - def_case: - if (cr_add_interval(cr, code, code + len)) - return -1; - break; - } - } - } - return 0; -} - -static int point_cmp(const void *p1, const void *p2, void *arg) -{ - uint32_t v1 = *(uint32_t *)p1; - uint32_t v2 = *(uint32_t *)p2; - return (v1 > v2) - (v1 < v2); -} - -static void cr_sort_and_remove_overlap(CharRange *cr) -{ - uint32_t start, end, start1, end1, i, j; - - /* the resulting ranges are not necessarily sorted and may overlap */ - rqsort(cr->points, cr->len / 2, sizeof(cr->points[0]) * 2, point_cmp, NULL); - j = 0; - for(i = 0; i < cr->len; ) { - start = cr->points[i]; - end = cr->points[i + 1]; - i += 2; - while (i < cr->len) { - start1 = cr->points[i]; - end1 = cr->points[i + 1]; - if (start1 > end) { - /* |------| - * |-------| */ - break; - } else if (end1 <= end) { - /* |------| - * |--| */ - i += 2; - } else { - /* |------| - * |-------| */ - end = end1; - i += 2; - } - } - cr->points[j] = start; - cr->points[j + 1] = end; - j += 2; - } - cr->len = j; -} - -/* canonicalize a character set using the JS regex case folding rules - (see lre_canonicalize()) */ -int cr_regexp_canonicalize(CharRange *cr, bool is_unicode) -{ - CharRange cr_inter, cr_mask, cr_result, cr_sub; - uint32_t v, code, len, i, idx, start, end, c, d_start, d_end, d; - - cr_init(&cr_mask, cr->mem_opaque, cr->realloc_func); - cr_init(&cr_inter, cr->mem_opaque, cr->realloc_func); - cr_init(&cr_result, cr->mem_opaque, cr->realloc_func); - cr_init(&cr_sub, cr->mem_opaque, cr->realloc_func); - - if (unicode_case1(&cr_mask, is_unicode ? CASE_F : CASE_U)) - goto fail; - if (cr_op(&cr_inter, cr_mask.points, cr_mask.len, cr->points, cr->len, CR_OP_INTER)) - goto fail; - - if (cr_invert(&cr_mask)) - goto fail; - if (cr_op(&cr_sub, cr_mask.points, cr_mask.len, cr->points, cr->len, CR_OP_INTER)) - goto fail; - - /* cr_inter = cr & cr_mask */ - /* cr_sub = cr & ~cr_mask */ - - /* use the case conversion table to compute the result */ - d_start = -1; - d_end = -1; - idx = 0; - v = case_conv_table1[idx]; - code = v >> (32 - 17); - len = (v >> (32 - 17 - 7)) & 0x7f; - for(i = 0; i < cr_inter.len; i += 2) { - start = cr_inter.points[i]; - end = cr_inter.points[i + 1]; - - for(c = start; c < end; c++) { - for(;;) { - if (c >= code && c < code + len) - break; - idx++; - assert(idx < countof(case_conv_table1)); - v = case_conv_table1[idx]; - code = v >> (32 - 17); - len = (v >> (32 - 17 - 7)) & 0x7f; - } - d = lre_case_folding_entry(c, idx, v, is_unicode); - /* try to merge with the current interval */ - if (d_start == -1) { - d_start = d; - d_end = d + 1; - } else if (d_end == d) { - d_end++; - } else { - cr_add_interval(&cr_result, d_start, d_end); - d_start = d; - d_end = d + 1; - } - } - } - if (d_start != -1) { - if (cr_add_interval(&cr_result, d_start, d_end)) - goto fail; - } - - /* the resulting ranges are not necessarily sorted and may overlap */ - cr_sort_and_remove_overlap(&cr_result); - - /* or with the character not affected by the case folding */ - cr->len = 0; - if (cr_op(cr, cr_result.points, cr_result.len, cr_sub.points, cr_sub.len, CR_OP_UNION)) - goto fail; - - cr_free(&cr_inter); - cr_free(&cr_mask); - cr_free(&cr_result); - cr_free(&cr_sub); - return 0; - fail: - cr_free(&cr_inter); - cr_free(&cr_mask); - cr_free(&cr_result); - cr_free(&cr_sub); - return -1; -} - -typedef enum { - POP_GC, - POP_PROP, - POP_CASE, - POP_UNION, - POP_INTER, - POP_XOR, - POP_INVERT, - POP_END, -} PropOPEnum; - -#define POP_STACK_LEN_MAX 4 - -static int unicode_prop_ops(CharRange *cr, ...) -{ - va_list ap; - CharRange stack[POP_STACK_LEN_MAX]; - int stack_len, op, ret, i; - uint32_t a; - - va_start(ap, cr); - stack_len = 0; - for(;;) { - op = va_arg(ap, int); - switch(op) { - case POP_GC: - assert(stack_len < POP_STACK_LEN_MAX); - a = va_arg(ap, int); - cr_init(&stack[stack_len++], cr->mem_opaque, cr->realloc_func); - if (unicode_general_category1(&stack[stack_len - 1], a)) - goto fail; - break; - case POP_PROP: - assert(stack_len < POP_STACK_LEN_MAX); - a = va_arg(ap, int); - cr_init(&stack[stack_len++], cr->mem_opaque, cr->realloc_func); - if (unicode_prop1(&stack[stack_len - 1], a)) - goto fail; - break; - case POP_CASE: - assert(stack_len < POP_STACK_LEN_MAX); - a = va_arg(ap, int); - cr_init(&stack[stack_len++], cr->mem_opaque, cr->realloc_func); - if (unicode_case1(&stack[stack_len - 1], a)) - goto fail; - break; - case POP_UNION: - case POP_INTER: - case POP_XOR: - { - CharRange *cr1, *cr2, *cr3; - assert(stack_len >= 2); - assert(stack_len < POP_STACK_LEN_MAX); - cr1 = &stack[stack_len - 2]; - cr2 = &stack[stack_len - 1]; - cr3 = &stack[stack_len++]; - cr_init(cr3, cr->mem_opaque, cr->realloc_func); - if (cr_op(cr3, cr1->points, cr1->len, - cr2->points, cr2->len, op - POP_UNION + CR_OP_UNION)) - goto fail; - cr_free(cr1); - cr_free(cr2); - *cr1 = *cr3; - stack_len -= 2; - } - break; - case POP_INVERT: - assert(stack_len >= 1); - if (cr_invert(&stack[stack_len - 1])) - goto fail; - break; - case POP_END: - goto done; - default: - abort(); - } - } - done: - va_end(ap); - assert(stack_len == 1); - ret = cr_copy(cr, &stack[0]); - cr_free(&stack[0]); - return ret; - fail: - va_end(ap); - for(i = 0; i < stack_len; i++) - cr_free(&stack[i]); - return -1; -} - -static const uint32_t unicode_gc_mask_table[] = { - M(Lu) | M(Ll) | M(Lt), /* LC */ - M(Lu) | M(Ll) | M(Lt) | M(Lm) | M(Lo), /* L */ - M(Mn) | M(Mc) | M(Me), /* M */ - M(Nd) | M(Nl) | M(No), /* N */ - M(Sm) | M(Sc) | M(Sk) | M(So), /* S */ - M(Pc) | M(Pd) | M(Ps) | M(Pe) | M(Pi) | M(Pf) | M(Po), /* P */ - M(Zs) | M(Zl) | M(Zp), /* Z */ - M(Cc) | M(Cf) | M(Cs) | M(Co) | M(Cn), /* C */ -}; - -/* 'cr' must be initialized and empty. Return 0 if OK, -1 if error, -2 - if not found */ -int unicode_general_category(CharRange *cr, const char *gc_name) -{ - int gc_idx; - uint32_t gc_mask; - - gc_idx = unicode_find_name(unicode_gc_name_table, gc_name); - if (gc_idx < 0) - return -2; - if (gc_idx <= UNICODE_GC_Co) { - gc_mask = (uint64_t)1 << gc_idx; - } else { - gc_mask = unicode_gc_mask_table[gc_idx - UNICODE_GC_LC]; - } - return unicode_general_category1(cr, gc_mask); -} - - -/* 'cr' must be initialized and empty. Return 0 if OK, -1 if error, -2 - if not found */ -int unicode_prop(CharRange *cr, const char *prop_name) -{ - int prop_idx, ret; - - prop_idx = unicode_find_name(unicode_prop_name_table, prop_name); - if (prop_idx < 0) - return -2; - prop_idx += UNICODE_PROP_ASCII_Hex_Digit; - - ret = 0; - switch(prop_idx) { - case UNICODE_PROP_ASCII: - if (cr_add_interval(cr, 0x00, 0x7f + 1)) - return -1; - break; - case UNICODE_PROP_Any: - if (cr_add_interval(cr, 0x00000, 0x10ffff + 1)) - return -1; - break; - case UNICODE_PROP_Assigned: - ret = unicode_prop_ops(cr, - POP_GC, M(Cn), - POP_INVERT, - POP_END); - break; - case UNICODE_PROP_Math: - ret = unicode_prop_ops(cr, - POP_GC, M(Sm), - POP_PROP, UNICODE_PROP_Other_Math, - POP_UNION, - POP_END); - break; - case UNICODE_PROP_Lowercase: - ret = unicode_prop_ops(cr, - POP_GC, M(Ll), - POP_PROP, UNICODE_PROP_Other_Lowercase, - POP_UNION, - POP_END); - break; - case UNICODE_PROP_Uppercase: - ret = unicode_prop_ops(cr, - POP_GC, M(Lu), - POP_PROP, UNICODE_PROP_Other_Uppercase, - POP_UNION, - POP_END); - break; - case UNICODE_PROP_Cased: - ret = unicode_prop_ops(cr, - POP_GC, M(Lu) | M(Ll) | M(Lt), - POP_PROP, UNICODE_PROP_Other_Uppercase, - POP_UNION, - POP_PROP, UNICODE_PROP_Other_Lowercase, - POP_UNION, - POP_END); - break; - case UNICODE_PROP_Alphabetic: - ret = unicode_prop_ops(cr, - POP_GC, M(Lu) | M(Ll) | M(Lt) | M(Lm) | M(Lo) | M(Nl), - POP_PROP, UNICODE_PROP_Other_Uppercase, - POP_UNION, - POP_PROP, UNICODE_PROP_Other_Lowercase, - POP_UNION, - POP_PROP, UNICODE_PROP_Other_Alphabetic, - POP_UNION, - POP_END); - break; - case UNICODE_PROP_Grapheme_Base: - ret = unicode_prop_ops(cr, - POP_GC, M(Cc) | M(Cf) | M(Cs) | M(Co) | M(Cn) | M(Zl) | M(Zp) | M(Me) | M(Mn), - POP_PROP, UNICODE_PROP_Other_Grapheme_Extend, - POP_UNION, - POP_INVERT, - POP_END); - break; - case UNICODE_PROP_Grapheme_Extend: - ret = unicode_prop_ops(cr, - POP_GC, M(Me) | M(Mn), - POP_PROP, UNICODE_PROP_Other_Grapheme_Extend, - POP_UNION, - POP_END); - break; - case UNICODE_PROP_XID_Start: - ret = unicode_prop_ops(cr, - POP_GC, M(Lu) | M(Ll) | M(Lt) | M(Lm) | M(Lo) | M(Nl), - POP_PROP, UNICODE_PROP_Other_ID_Start, - POP_UNION, - POP_PROP, UNICODE_PROP_Pattern_Syntax, - POP_PROP, UNICODE_PROP_Pattern_White_Space, - POP_UNION, - POP_PROP, UNICODE_PROP_XID_Start1, - POP_UNION, - POP_INVERT, - POP_INTER, - POP_END); - break; - case UNICODE_PROP_XID_Continue: - ret = unicode_prop_ops(cr, - POP_GC, M(Lu) | M(Ll) | M(Lt) | M(Lm) | M(Lo) | M(Nl) | - M(Mn) | M(Mc) | M(Nd) | M(Pc), - POP_PROP, UNICODE_PROP_Other_ID_Start, - POP_UNION, - POP_PROP, UNICODE_PROP_Other_ID_Continue, - POP_UNION, - POP_PROP, UNICODE_PROP_Pattern_Syntax, - POP_PROP, UNICODE_PROP_Pattern_White_Space, - POP_UNION, - POP_PROP, UNICODE_PROP_XID_Continue1, - POP_UNION, - POP_INVERT, - POP_INTER, - POP_END); - break; - case UNICODE_PROP_Changes_When_Uppercased: - ret = unicode_case1(cr, CASE_U); - break; - case UNICODE_PROP_Changes_When_Lowercased: - ret = unicode_case1(cr, CASE_L); - break; - case UNICODE_PROP_Changes_When_Casemapped: - ret = unicode_case1(cr, CASE_U | CASE_L | CASE_F); - break; - case UNICODE_PROP_Changes_When_Titlecased: - ret = unicode_prop_ops(cr, - POP_CASE, CASE_U, - POP_PROP, UNICODE_PROP_Changes_When_Titlecased1, - POP_XOR, - POP_END); - break; - case UNICODE_PROP_Changes_When_Casefolded: - ret = unicode_prop_ops(cr, - POP_CASE, CASE_F, - POP_PROP, UNICODE_PROP_Changes_When_Casefolded1, - POP_XOR, - POP_END); - break; - case UNICODE_PROP_Changes_When_NFKC_Casefolded: - ret = unicode_prop_ops(cr, - POP_CASE, CASE_F, - POP_PROP, UNICODE_PROP_Changes_When_NFKC_Casefolded1, - POP_XOR, - POP_END); - break; - /* we use the existing tables */ - case UNICODE_PROP_ID_Continue: - ret = unicode_prop_ops(cr, - POP_PROP, UNICODE_PROP_ID_Start, - POP_PROP, UNICODE_PROP_ID_Continue1, - POP_XOR, - POP_END); - break; - default: - if (prop_idx >= countof(unicode_prop_table)) - return -2; - ret = unicode_prop1(cr, prop_idx); - break; - } - return ret; -} diff --git a/vendor/quickjs/source_ng/libunicode.h b/vendor/quickjs/source_ng/libunicode.h deleted file mode 100755 index 8e6f2a01d..000000000 --- a/vendor/quickjs/source_ng/libunicode.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Unicode utilities - * - * Copyright (c) 2017-2018 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#ifndef LIBUNICODE_H -#define LIBUNICODE_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define LRE_CC_RES_LEN_MAX 3 - -typedef enum { - UNICODE_NFC, - UNICODE_NFD, - UNICODE_NFKC, - UNICODE_NFKD, -} UnicodeNormalizationEnum; - -int lre_case_conv(uint32_t *res, uint32_t c, int conv_type); -int lre_canonicalize(uint32_t c, bool is_unicode); -bool lre_is_cased(uint32_t c); -bool lre_is_case_ignorable(uint32_t c); - -/* char ranges */ - -typedef struct { - int len; /* in points, always even */ - int size; - uint32_t *points; /* points sorted by increasing value */ - void *mem_opaque; - void *(*realloc_func)(void *opaque, void *ptr, size_t size); -} CharRange; - -typedef enum { - CR_OP_UNION, - CR_OP_INTER, - CR_OP_XOR, -} CharRangeOpEnum; - -void cr_init(CharRange *cr, void *mem_opaque, void *(*realloc_func)(void *opaque, void *ptr, size_t size)); -void cr_free(CharRange *cr); -int cr_realloc(CharRange *cr, int size); -int cr_copy(CharRange *cr, const CharRange *cr1); - -static inline int cr_add_point(CharRange *cr, uint32_t v) -{ - if (cr->len >= cr->size) { - if (cr_realloc(cr, cr->len + 1)) - return -1; - } - cr->points[cr->len++] = v; - return 0; -} - -static inline int cr_add_interval(CharRange *cr, uint32_t c1, uint32_t c2) -{ - if ((cr->len + 2) > cr->size) { - if (cr_realloc(cr, cr->len + 2)) - return -1; - } - cr->points[cr->len++] = c1; - cr->points[cr->len++] = c2; - return 0; -} - -int cr_union1(CharRange *cr, const uint32_t *b_pt, int b_len); - -static inline int cr_union_interval(CharRange *cr, uint32_t c1, uint32_t c2) -{ - uint32_t b_pt[2]; - b_pt[0] = c1; - b_pt[1] = c2 + 1; - return cr_union1(cr, b_pt, 2); -} - -int cr_op(CharRange *cr, const uint32_t *a_pt, int a_len, - const uint32_t *b_pt, int b_len, int op); - -int cr_invert(CharRange *cr); -int cr_regexp_canonicalize(CharRange *cr, bool is_unicode); - -bool lre_is_id_start(uint32_t c); -bool lre_is_id_continue(uint32_t c); -bool lre_is_white_space(uint32_t c); - -int unicode_normalize(uint32_t **pdst, const uint32_t *src, int src_len, - UnicodeNormalizationEnum n_type, - void *opaque, void *(*realloc_func)(void *opaque, void *ptr, size_t size)); - -/* Unicode character range functions */ - -int unicode_script(CharRange *cr, - const char *script_name, bool is_ext); -int unicode_general_category(CharRange *cr, const char *gc_name); -int unicode_prop(CharRange *cr, const char *prop_name); - -#ifdef __cplusplus -} /* extern "C" { */ -#endif - -#endif /* LIBUNICODE_H */ diff --git a/vendor/quickjs/source_ng/list.h b/vendor/quickjs/source_ng/list.h deleted file mode 100755 index b8dd71681..000000000 --- a/vendor/quickjs/source_ng/list.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Linux klist like system - * - * Copyright (c) 2016-2017 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#ifndef LIST_H -#define LIST_H - -#ifndef NULL -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -struct list_head { - struct list_head *prev; - struct list_head *next; -}; - -#define LIST_HEAD_INIT(el) { &(el), &(el) } - -/* return the pointer of type 'type *' containing 'el' as field 'member' */ -#define list_entry(el, type, member) container_of(el, type, member) - -static inline void init_list_head(struct list_head *head) -{ - head->prev = head; - head->next = head; -} - -/* insert 'el' between 'prev' and 'next' */ -static inline void __list_add(struct list_head *el, - struct list_head *prev, struct list_head *next) -{ - prev->next = el; - el->prev = prev; - el->next = next; - next->prev = el; -} - -/* add 'el' at the head of the list 'head' (= after element head) */ -static inline void list_add(struct list_head *el, struct list_head *head) -{ - __list_add(el, head, head->next); -} - -/* add 'el' at the end of the list 'head' (= before element head) */ -static inline void list_add_tail(struct list_head *el, struct list_head *head) -{ - __list_add(el, head->prev, head); -} - -static inline void list_del(struct list_head *el) -{ - struct list_head *prev, *next; - prev = el->prev; - next = el->next; - prev->next = next; - next->prev = prev; - el->prev = NULL; /* fail safe */ - el->next = NULL; /* fail safe */ -} - -static inline int list_empty(struct list_head *el) -{ - return el->next == el; -} - -#define list_for_each(el, head) \ - for(el = (head)->next; el != (head); el = el->next) - -#define list_for_each_safe(el, el1, head) \ - for(el = (head)->next, el1 = el->next; el != (head); \ - el = el1, el1 = el->next) - -#define list_for_each_prev(el, head) \ - for(el = (head)->prev; el != (head); el = el->prev) - -#define list_for_each_prev_safe(el, el1, head) \ - for(el = (head)->prev, el1 = el->prev; el != (head); \ - el = el1, el1 = el->prev) - -#ifdef __cplusplus -} /* extern "C" { */ -#endif - -#endif /* LIST_H */ diff --git a/vendor/quickjs/source_ng/meson.build b/vendor/quickjs/source_ng/meson.build deleted file mode 100755 index 1c178513c..000000000 --- a/vendor/quickjs/source_ng/meson.build +++ /dev/null @@ -1,635 +0,0 @@ -project( - 'quickjs-ng', - 'c', - version: '0.11.0', - default_options: [ - 'c_std=gnu11,c11', - 'warning_level=3', - 'default_library=static', - ], - license: 'MIT', - license_files: 'LICENSE', - meson_version: '>=1.3.0', -) - -host_system = host_machine.system() -cc = meson.get_compiler('c') - -qjs_gcc_warning_args = [ - '-Wno-unsafe-buffer-usage', - '-Wno-sign-conversion', - '-Wno-nonportable-system-include-path', - '-Wno-implicit-int-conversion', - '-Wno-shorten-64-to-32', - '-Wno-reserved-macro-identifier', - '-Wno-reserved-identifier', - '-Wdeprecated-declarations', - - '-Wno-implicit-fallthrough', - '-Wno-sign-compare', - '-Wno-missing-field-initializers', - '-Wno-unused-parameter', - '-Wno-unused-but-set-variable', - '-Wno-array-bounds', - '-Wno-format-truncation', -] -qjs_gcc_args = [ - '-funsigned-char', -] - -if host_system == 'darwin' - # https://github.com/quickjs-ng/quickjs/issues/453 - qjs_gcc_warning_args += '-Wno-maybe-uninitialized' -endif - -# https://github.com/microsoft/cpp-docs/tree/main/docs/error-messages/compiler-warnings -qjs_msvc_warning_args = [ - '/wd4018', # -Wno-sign-conversion - '/wd4061', # -Wno-implicit-fallthrough - '/wd4100', # -Wno-unused-parameter - '/wd4200', # -Wno-zero-length-array - '/wd4242', # -Wno-shorten-64-to-32 - '/wd4244', # -Wno-shorten-64-to-32 - '/wd4245', # -Wno-sign-compare - '/wd4267', # -Wno-shorten-64-to-32 - '/wd4388', # -Wno-sign-compare - '/wd4389', # -Wno-sign-compare - '/wd4710', # Function not inlined - '/wd4711', # Function was inlined - '/wd4820', # Padding added after construct - '/wd4996', # -Wdeprecated-declarations - '/wd5045', # Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified -] -qjs_msvc_args = [ - '/experimental:c11atomics', - '/J', # -funsigned-char -] - -if cc.get_argument_syntax() == 'msvc' - add_project_arguments( - cc.get_supported_arguments(qjs_msvc_warning_args), - cc.get_id().contains('clang') ? cc.get_supported_arguments(qjs_gcc_warning_args) : [], - qjs_msvc_args, - language: 'c', - ) -else - add_project_arguments( - cc.get_supported_arguments(qjs_gcc_warning_args), - qjs_gcc_args, - language: 'c', - ) -endif - -if host_system == 'windows' - # Set a 8MB default stack size on Windows. - # It defaults to 1MB on MSVC, which is the same as our current JS stack size, - # so it will overflow and crash otherwise. - # On MinGW it defaults to 2MB. - stack_size = 8 * 1024 * 1024 - if cc.get_argument_syntax() == 'msvc' - add_project_link_arguments(f'/STACK:@stack_size@', language: 'c') - else - add_project_link_arguments(f'-Wl,--stack,@stack_size@', language: 'c') - endif -endif - -if meson.is_cross_build() - native_cc = meson.get_compiler('c', native: true) - - if native_cc.get_argument_syntax() == 'msvc' - # https://github.com/microsoft/cpp-docs/tree/main/docs/error-messages/compiler-warnings - add_project_arguments( - native_cc.get_supported_arguments(qjs_msvc_warning_args), - native_cc.get_id().contains('clang') ? native_cc.get_supported_arguments(qjs_gcc_warning_args) : [], - qjs_msvc_args, - - language: 'c', - native: true, - ) - else - add_project_arguments( - native_cc.get_supported_arguments(qjs_gcc_warning_args), - qjs_gcc_args, - - language: 'c', - native: true, - ) - endif -endif -if get_option('debug') - add_project_arguments( - cc.get_supported_arguments('-fno-omit-frame-pointer'), - language: 'c', - ) -endif - -qjs_sys_deps = [] - -m_dep = cc.find_library('m', required: false) -qjs_sys_deps += m_dep -qjs_sys_deps += dependency('threads', required: false) -qjs_sys_deps += dependency('dl', required: false) - -qjs_srcs = files( - 'cutils.c', - 'dtoa.c', - 'libregexp.c', - 'libunicode.c', - 'quickjs.c', -) -qjs_hdrs = files( - 'quickjs.h', -) - -qjs_libc = get_option('libc') -qjs_libc_srcs = files('quickjs-libc.c') -qjs_libc_hdrs = files('quickjs-libc.h') - -if qjs_libc - qjs_hdrs += qjs_libc_hdrs -endif - -qjs_parser = get_option('parser') - -qjs_c_args = ['-D_GNU_SOURCE'] - -if host_system == 'windows' - qjs_c_args += ['-DWIN32_LEAN_AND_MEAN', '-D_WIN32_WINNT=0x0601'] -endif - -if not qjs_parser - qjs_c_args += ['-DQJS_DISABLE_PARSER'] -endif - -qjs_libc_lib = static_library( - 'quickjs-libc', - qjs_libc_srcs, - - dependencies: qjs_sys_deps, - c_args: qjs_c_args, - gnu_symbol_visibility: 'hidden', -) - -qjs_lib = library( - 'qjs', - qjs_srcs, - - # export public headers - generator( - find_program('cp', 'xcopy'), - output: ['@PLAINNAME@'], - arguments: ['@INPUT@', '@OUTPUT@'], - ).process(qjs_hdrs), - - dependencies: qjs_sys_deps, - link_whole: qjs_libc ? qjs_libc_lib : [], - c_args: qjs_c_args, - gnu_symbol_visibility: 'hidden', - - install: true, - version: meson.project_version(), -) - -qjs_export_variables = [ - f'have_parser=@qjs_parser@' -] - -qjs_dep = declare_dependency( - link_with: qjs_lib, - dependencies: qjs_sys_deps, - include_directories: qjs_lib.private_dir_include(), - variables: qjs_export_variables, -) - -if host_system == 'emscripten' - qjs_wasm_export_name = 'getQuickJs' - executable( - 'qjs_wasm', - qjs_srcs, - link_args: cc.get_supported_link_arguments( - # in emscripten 3.x, this will be set to 16k which is too small for quickjs. - '-sSTACK_SIZE=@0@'.format(2 * 1024 * 1024), # let it be 2m = 2 * 1024 * 1024, otherwise, stack overflow may be occured at bootstrap - '-sNO_INVOKE_RUN', - '-sNO_EXIT_RUNTIME', - '-sMODULARIZE', # do not mess the global - '-sEXPORT_ES6', # export js file to morden es module - '-sEXPORT_NAME=@0@'.format(qjs_wasm_export_name), # give a name - '-sTEXTDECODER=1', # it will be 2 if we use -Oz, and that will cause js -> c string convertion fail - '-sNO_DEFAULT_TO_CXX', # this project is pure c project, no need for c plus plus handle - '-sEXPORTED_RUNTIME_METHODS=ccall,cwrap', - ), - dependencies: m_dep, - c_args: qjs_c_args, - ) -endif - -install_headers(qjs_hdrs, subdir: 'quickjs-ng') - -if not meson.is_subproject() - docdir = get_option('docdir') - datadir = get_option('datadir') - - if docdir == '' - docdir = datadir / 'doc' / meson.project_name() - endif - install_data( - 'LICENSE', - install_dir: docdir, - - install_tag: 'doc', - ) - install_subdir( - 'examples', - install_dir: docdir, - - strip_directory: false, - install_tag: 'doc', - ) -endif - -meson.override_dependency('quickjs-ng', qjs_dep) - -import('pkgconfig').generate( - qjs_lib, - subdirs: 'quickjs-ng', - name: 'quickjs-ng', - description: 'QuickJS, the Next Generation: a mighty JavaScript engine', - url: 'https://github.com/quickjs-ng/quickjs', - version: meson.project_version(), - variables: qjs_export_variables, -) - -if not qjs_parser - subdir_done() -endif - -# QuickJS bytecode compiler -qjsc_srcs = files( - 'qjsc.c', -) -qjsc_exe = executable( - 'qjsc', - qjsc_srcs, - - c_args: qjs_c_args, - link_with: qjs_libc ? [] : qjs_libc_lib, - dependencies: qjs_dep, - - install: true, -) - -mimalloc_dep = [] -mimalloc_sys_dep = dependency('mimalloc', required: get_option('cli_mimalloc')) -if mimalloc_sys_dep.found() - mimalloc_dep = declare_dependency( - dependencies: mimalloc_sys_dep, - compile_args: '-DQJS_USE_MIMALLOC', - ) -endif - -# QuickJS CLI -qjs_exe_srcs = files( - 'gen/repl.c', - 'gen/standalone.c', - 'qjs.c', -) -qjs_exe = executable( - 'qjs', - qjs_exe_srcs, - - c_args: qjs_c_args, - link_with: qjs_libc ? [] : qjs_libc_lib, - dependencies: [qjs_dep, mimalloc_dep], - export_dynamic: true, - - install: true, -) - -if meson.is_cross_build() - mimalloc_native_dep = [] - mimalloc_sys_native_dep = dependency('mimalloc', required: get_option('cli_mimalloc'), native: true) - if mimalloc_sys_dep.found() - mimalloc_native_dep = declare_dependency( - dependencies: mimalloc_sys_native_dep, - compile_args: '-DQJS_USE_MIMALLOC', - ) - endif - - qjs_sys_native_deps = [ - native_cc.find_library('m', required: false), - dependency('threads', required: false, native: true), - dependency('dl', required: false, native: true), - ] - qjs_native_lib = static_library( - 'qjs_native', - qjs_srcs, - qjs_libc_srcs, - - dependencies: qjs_sys_native_deps, - c_args: qjs_c_args, - gnu_symbol_visibility: 'hidden', - - build_by_default: false, - native: true, - install: false, - ) - - meson.override_find_program( - 'qjsc', - executable( - 'qjsc_native', - qjsc_srcs, - - c_args: qjs_c_args, - link_with: qjs_native_lib, - dependencies: qjs_sys_native_deps, - - build_by_default: false, - native: true, - install: false, - ), - ) - meson.override_find_program( - 'qjs', - executable( - 'qjs_native', - qjs_exe_srcs, - - c_args: qjs_c_args, - link_with: qjs_native_lib, - dependencies: [qjs_sys_native_deps, mimalloc_native_dep], - export_dynamic: true, - - build_by_default: false, - native: true, - install: false, - ), - ) -else - meson.override_find_program('qjsc', qjsc_exe) - meson.override_find_program('qjs', qjs_exe) -endif - -tests = get_option('tests').disable_auto_if(meson.is_subproject()) -examples = get_option('examples').disable_auto_if(meson.is_subproject()) - -if tests.allowed() - if host_system != 'emscripten' - # Test262 runner - run262_exe = executable( - 'run-test262', - 'run-test262.c', - qjs_libc_srcs, - - c_args: qjs_c_args, - dependencies: qjs_dep, - ) - - test( - 'test', - run262_exe, - args: ['-c', files('tests.conf')], - workdir: meson.current_source_dir(), - ) - - foreach bench : [ - 'empty_loop', - - 'date_now', - - 'prop_read', - 'prop_write', - 'prop_create', - 'prop_delete', - - 'array_read', - 'array_write', - 'array_prop_create', - 'array_length_decr', - 'array_hole_length_decr', - 'array_push', - 'array_pop', - - 'typed_array_read', - 'typed_array_write', - - 'global_read', - 'global_write', - 'global_write_strict', - - 'local_destruct', - 'global_destruct', - 'global_destruct_strict', - - 'func_call', - 'closure_var', - - 'int_arith', - 'float_arith', - - 'map_set', - 'map_delete', - 'weak_map_set', - 'weak_map_delete', - - 'array_for', - 'array_for_in', - 'array_for_of', - - 'math_min', - - 'object_null', - - 'regexp_ascii', - 'regexp_utf16', - - 'string_build1', - 'string_build2', - - 'string_slice1', - 'string_slice2', - 'string_slice3', - - 'sort_bench', - - 'int_to_string', - 'int_toString', - - 'float_to_string', - 'float_toString', - 'float_toFixed', - 'float_toPrecision', - 'float_toExponential', - - 'string_to_int', - 'string_to_float', - - 'bigint64_arith', - 'bigint256_arith', - ] - benchmark( - bench, - qjs_exe, - args: [files('tests/microbench.js'), bench], - ) - endforeach - endif - - # API test - test( - 'api', - executable( - 'api-test', - 'api-test.c', - - c_args: qjs_c_args, - dependencies: qjs_dep, - build_by_default: false, - ), - ) - - # Function.toString() test - test( - 'function_source', - executable( - 'function_source', - 'gen/function_source.c', - qjs_libc_srcs, - - c_args: qjs_c_args, - dependencies: qjs_dep, - build_by_default: false, - ), - ) -endif - -# Unicode generator -unicode_gen = executable( - 'unicode_gen', - 'cutils.c', - 'unicode_gen.c', - - c_args: qjs_c_args, - build_by_default: false, -) - -run_target( - 'libunicode-table.h', - command: [ - unicode_gen, - meson.current_source_dir() / 'unicode', - files('libunicode-table.h'), - ], -) - -# bytecode to c source code for builtin and examples -alias_target('codegen', - run_target( - 'codegen_repl.c', - command: [ - qjsc_exe, - '-ss', - '-o', files('gen/repl.c'), - '-m', - '-n', 'repl.js', - files('repl.js'), - ], - ), - run_target( - 'codegen_standalone.c', - command: [ - qjsc_exe, - '-ss', - '-o', files('gen/standalone.c'), - '-m', - '-n', 'standalone.js', - files('standalone.js'), - ], - ), - run_target( - 'codegen_function_source.c', - command: [ - qjsc_exe, - '-e', - '-o', files('gen/function_source.c'), - '-n', 'tests/function_source.js', - files('tests/function_source.js'), - ], - ), - run_target( - 'codegen_hello.c', - command: [ - qjsc_exe, - '-e', - '-o', files('gen/hello.c'), - '-n', 'examples/hello.js', - files('examples/hello.js'), - ], - ), - run_target( - 'codegen_hello_module.c', - command: [ - qjsc_exe, - '-e', - '-o', files('gen/hello_module.c'), - '-m', - '-n', 'examples/hello_module.js', - files('examples/hello_module.js'), - ], - ), - run_target( - 'codegen_test_fib.c', - command: [ - qjsc_exe, - '-e', - '-o', files('gen/test_fib.c'), - '-m', - '-n', 'examples/test_fib.js', - files('examples/test_fib.js'), - ], - ), - run_target( - 'codegen_builtin-array-fromasync.h', - command: [ - qjsc_exe, - '-C', - '-ss', - '-o', files('builtin-array-fromasync.h'), - '-n', 'builtin-array-fromasync.js', - files('builtin-array-fromasync.js'), - ], - ), -) - -if examples.allowed() - executable( - 'hello', - 'gen/hello.c', - qjs_libc_srcs, - - c_args: qjs_c_args, - dependencies: qjs_dep, - ) - - executable( - 'hello_module', - 'gen/hello_module.c', - qjs_libc_srcs, - - c_args: qjs_c_args, - dependencies: qjs_dep, - ) - - subdir('examples') - - executable( - 'test_fib', - 'examples/fib.c', - 'gen/test_fib.c', - qjs_libc_srcs, - - c_args: qjs_c_args, - dependencies: qjs_dep, - export_dynamic: true, - ) -endif diff --git a/vendor/quickjs/source_ng/meson_options.txt b/vendor/quickjs/source_ng/meson_options.txt deleted file mode 100755 index 20e661e1a..000000000 --- a/vendor/quickjs/source_ng/meson_options.txt +++ /dev/null @@ -1,6 +0,0 @@ -option('tests', type: 'feature', description: 'build tests') -option('examples', type: 'feature', description: 'build examples') -option('libc', type: 'boolean', value: false, description: 'build qjs standard library modules as part of the library') -option('cli_mimalloc', type: 'feature', value: 'disabled', description: 'build qjs cli with mimalloc') -option('docdir', type: 'string', description: 'documentation directory') -option('parser', type: 'boolean', value: true, description: 'Enable JS source code parser') diff --git a/vendor/quickjs/source_ng/qjs.c b/vendor/quickjs/source_ng/qjs.c deleted file mode 100755 index 4aed6837e..000000000 --- a/vendor/quickjs/source_ng/qjs.c +++ /dev/null @@ -1,748 +0,0 @@ -/* - * QuickJS stand alone interpreter - * - * Copyright (c) 2017-2021 Fabrice Bellard - * Copyright (c) 2017-2021 Charlie Gordon - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cutils.h" -#include "quickjs.h" -#include "quickjs-libc.h" - -#ifdef QJS_USE_MIMALLOC -#include -#endif - -extern const uint8_t qjsc_repl[]; -extern const uint32_t qjsc_repl_size; -extern const uint8_t qjsc_standalone[]; -extern const uint32_t qjsc_standalone_size; - -// Must match standalone.js -#define TRAILER_SIZE 12 -static const char trailer_magic[] = "quickjs2"; -static const int trailer_magic_size = sizeof(trailer_magic) - 1; -static const int trailer_size = TRAILER_SIZE; - -static int qjs__argc; -static char **qjs__argv; - - -static bool is_standalone(const char *exe) -{ - FILE *exe_f = fopen(exe, "rb"); - if (!exe_f) - return false; - if (fseek(exe_f, -trailer_size, SEEK_END) < 0) - goto fail; - uint8_t buf[TRAILER_SIZE]; - if (fread(buf, 1, trailer_size, exe_f) != trailer_size) - goto fail; - fclose(exe_f); - return !memcmp(buf, trailer_magic, trailer_magic_size); -fail: - fclose(exe_f); - return false; -} - -static JSValue load_standalone_module(JSContext *ctx) -{ - JSModuleDef *m; - JSValue obj, val; - obj = JS_ReadObject(ctx, qjsc_standalone, qjsc_standalone_size, JS_READ_OBJ_BYTECODE); - if (JS_IsException(obj)) - goto exception; - assert(JS_VALUE_GET_TAG(obj) == JS_TAG_MODULE); - if (JS_ResolveModule(ctx, obj) < 0) { - JS_FreeValue(ctx, obj); - goto exception; - } - if (js_module_set_import_meta(ctx, obj, false, true) < 0) { - JS_FreeValue(ctx, obj); - goto exception; - } - val = JS_EvalFunction(ctx, JS_DupValue(ctx, obj)); - val = js_std_await(ctx, val); - - if (JS_IsException(val)) { - JS_FreeValue(ctx, obj); - exception: - js_std_dump_error(ctx); - exit(1); - } - JS_FreeValue(ctx, val); - - m = JS_VALUE_GET_PTR(obj); - JS_FreeValue(ctx, obj); - return JS_GetModuleNamespace(ctx, m); -} - -static int eval_buf(JSContext *ctx, const void *buf, int buf_len, - const char *filename, int eval_flags) -{ - bool use_realpath; - JSValue val; - int ret; - - if ((eval_flags & JS_EVAL_TYPE_MASK) == JS_EVAL_TYPE_MODULE) { - /* for the modules, we compile then run to be able to set - import.meta */ - val = JS_Eval(ctx, buf, buf_len, filename, - eval_flags | JS_EVAL_FLAG_COMPILE_ONLY); - if (!JS_IsException(val)) { - // ex. "" pr "/dev/stdin" - use_realpath = - !(*filename == '<' || !strncmp(filename, "/dev/", 5)); - if (js_module_set_import_meta(ctx, val, use_realpath, true) < 0) { - js_std_dump_error(ctx); - ret = -1; - goto end; - } - val = JS_EvalFunction(ctx, val); - } - val = js_std_await(ctx, val); - } else { - val = JS_Eval(ctx, buf, buf_len, filename, eval_flags); - } - if (JS_IsException(val)) { - js_std_dump_error(ctx); - ret = -1; - } else { - ret = 0; - } -end: - JS_FreeValue(ctx, val); - return ret; -} - -static int eval_file(JSContext *ctx, const char *filename, int module) -{ - uint8_t *buf; - int ret, eval_flags; - size_t buf_len; - - buf = js_load_file(ctx, &buf_len, filename); - if (!buf) { - perror(filename); - exit(1); - } - - if (module < 0) { - module = (js__has_suffix(filename, ".mjs") || - JS_DetectModule((const char *)buf, buf_len)); - } - if (module) - eval_flags = JS_EVAL_TYPE_MODULE; - else - eval_flags = JS_EVAL_TYPE_GLOBAL; - ret = eval_buf(ctx, buf, buf_len, filename, eval_flags); - js_free(ctx, buf); - return ret; -} - -static int64_t parse_limit(const char *arg) { - char *p; - unsigned long unit = 1024; /* default to traditional KB */ - double d = strtod(arg, &p); - - if (p == arg) { - fprintf(stderr, "Invalid limit: %s\n", arg); - return -1; - } - - if (*p) { - switch (*p++) { - case 'b': case 'B': unit = 1UL << 0; break; - case 'k': case 'K': unit = 1UL << 10; break; /* IEC kibibytes */ - case 'm': case 'M': unit = 1UL << 20; break; /* IEC mebibytes */ - case 'g': case 'G': unit = 1UL << 30; break; /* IEC gigibytes */ - default: - fprintf(stderr, "Invalid limit: %s, unrecognized suffix, only k,m,g are allowed\n", arg); - return -1; - } - if (*p) { - fprintf(stderr, "Invalid limit: %s, only one suffix allowed\n", arg); - return -1; - } - } - - return (int64_t)(d * unit); -} - -static JSValue js_gc(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JS_RunGC(JS_GetRuntime(ctx)); - return JS_UNDEFINED; -} - -static JSValue js_navigator_get_userAgent(JSContext *ctx, JSValueConst this_val) -{ - char version[32]; - snprintf(version, sizeof(version), "quickjs-ng/%s", JS_GetVersion()); - return JS_NewString(ctx, version); -} - -static const JSCFunctionListEntry navigator_proto_funcs[] = { - JS_CGETSET_DEF2("userAgent", js_navigator_get_userAgent, NULL, JS_PROP_CONFIGURABLE | JS_PROP_ENUMERABLE), - JS_PROP_STRING_DEF("[Symbol.toStringTag]", "Navigator", JS_PROP_CONFIGURABLE), -}; - -static const JSCFunctionListEntry global_obj[] = { - JS_CFUNC_DEF("gc", 0, js_gc), -}; - -/* also used to initialize the worker context */ -static JSContext *JS_NewCustomContext(JSRuntime *rt) -{ - JSContext *ctx; - ctx = JS_NewContext(rt); - if (!ctx) - return NULL; - /* system modules */ - js_init_module_std(ctx, "qjs:std"); - js_init_module_os(ctx, "qjs:os"); - js_init_module_bjson(ctx, "qjs:bjson"); - - JSValue global = JS_GetGlobalObject(ctx); - JS_SetPropertyFunctionList(ctx, global, global_obj, countof(global_obj)); - JSValue args = JS_NewArray(ctx); - int i; - for(i = 0; i < qjs__argc; i++) { - JS_SetPropertyUint32(ctx, args, i, JS_NewString(ctx, qjs__argv[i])); - } - JS_SetPropertyStr(ctx, global, "execArgv", args); - JS_SetPropertyStr(ctx, global, "argv0", JS_NewString(ctx, qjs__argv[0])); - JSValue navigator_proto = JS_NewObject(ctx); - JS_SetPropertyFunctionList(ctx, navigator_proto, navigator_proto_funcs, countof(navigator_proto_funcs)); - JSValue navigator = JS_NewObjectProto(ctx, navigator_proto); - JS_DefinePropertyValueStr(ctx, global, "navigator", navigator, JS_PROP_CONFIGURABLE | JS_PROP_ENUMERABLE); - JS_FreeValue(ctx, global); - JS_FreeValue(ctx, navigator_proto); - - return ctx; -} - -struct trace_malloc_data { - uint8_t *base; -}; - -static inline unsigned long long js_trace_malloc_ptr_offset(uint8_t *ptr, - struct trace_malloc_data *dp) -{ - return ptr - dp->base; -} - -static void JS_PRINTF_FORMAT_ATTR(2, 3) js_trace_malloc_printf(void *opaque, JS_PRINTF_FORMAT const char *fmt, ...) -{ - va_list ap; - int c; - - va_start(ap, fmt); - while ((c = *fmt++) != '\0') { - if (c == '%') { - /* only handle %p and %zd */ - if (*fmt == 'p') { - uint8_t *ptr = va_arg(ap, void *); - if (ptr == NULL) { - printf("NULL"); - } else { - printf("H%+06lld.%zd", - js_trace_malloc_ptr_offset(ptr, opaque), - js__malloc_usable_size(ptr)); - } - fmt++; - continue; - } - if (fmt[0] == 'z' && fmt[1] == 'd') { - size_t sz = va_arg(ap, size_t); - printf("%zd", sz); - fmt += 2; - continue; - } - } - putc(c, stdout); - } - va_end(ap); -} - -static void js_trace_malloc_init(struct trace_malloc_data *s) -{ - free(s->base = malloc(8)); -} - -static void *js_trace_calloc(void *opaque, size_t count, size_t size) -{ - void *ptr; - ptr = calloc(count, size); - js_trace_malloc_printf(opaque, "C %zd %zd -> %p\n", count, size, ptr); - return ptr; -} - -static void *js_trace_malloc(void *opaque, size_t size) -{ - void *ptr; - ptr = malloc(size); - js_trace_malloc_printf(opaque, "A %zd -> %p\n", size, ptr); - return ptr; -} - -static void js_trace_free(void *opaque, void *ptr) -{ - if (!ptr) - return; - js_trace_malloc_printf(opaque, "F %p\n", ptr); - free(ptr); -} - -static void *js_trace_realloc(void *opaque, void *ptr, size_t size) -{ - js_trace_malloc_printf(opaque, "R %zd %p", size, ptr); - ptr = realloc(ptr, size); - js_trace_malloc_printf(opaque, " -> %p\n", ptr); - return ptr; -} - -static const JSMallocFunctions trace_mf = { - js_trace_calloc, - js_trace_malloc, - js_trace_free, - js_trace_realloc, - js__malloc_usable_size -}; - -#ifdef QJS_USE_MIMALLOC -static void *js_mi_calloc(void *opaque, size_t count, size_t size) -{ - return mi_calloc(count, size); -} - -static void *js_mi_malloc(void *opaque, size_t size) -{ - return mi_malloc(size); -} - -static void js_mi_free(void *opaque, void *ptr) -{ - if (!ptr) - return; - mi_free(ptr); -} - -static void *js_mi_realloc(void *opaque, void *ptr, size_t size) -{ - return mi_realloc(ptr, size); -} - -static const JSMallocFunctions mi_mf = { - js_mi_calloc, - js_mi_malloc, - js_mi_free, - js_mi_realloc, - mi_malloc_usable_size -}; -#endif - -#define PROG_NAME "qjs" - -void help(void) -{ - printf("QuickJS-ng version %s\n" - "usage: " PROG_NAME " [options] [file [args]]\n" - "-h --help list options\n" - "-e --eval EXPR evaluate EXPR\n" - "-i --interactive go to interactive mode\n" - "-C --script load as JS classic script (default=autodetect)\n" - "-m --module load as ES module (default=autodetect)\n" - "-I --include file include an additional file\n" - " --std make 'std', 'os' and 'bjson' available to script\n" - "-T --trace trace memory allocation\n" - "-d --dump dump the memory usage stats\n" - "-D --dump-flags flags for dumping debug data (see DUMP_* defines)\n" - "-c --compile FILE compile the given JS file as a standalone executable\n" - "-o --out FILE output file for standalone executables\n" - " --exe select the executable to use as the base, defaults to the current one\n" - " --memory-limit n limit the memory usage to 'n' Kbytes\n" - " --stack-size n limit the stack size to 'n' Kbytes\n" - "-q --quit just instantiate the interpreter and quit\n", JS_GetVersion()); - exit(1); -} - -int main(int argc, char **argv) -{ - JSRuntime *rt; - JSContext *ctx; - JSValue ret = JS_UNDEFINED; - struct trace_malloc_data trace_data = { NULL }; - int r = 0; - int optind = 1; - char exebuf[JS__PATH_MAX]; - size_t exebuf_size = sizeof(exebuf); - char *compile_file = NULL; - char *exe = NULL; - char *expr = NULL; - char *dump_flags_str = NULL; - char *out = NULL; - int standalone = 0; - int interactive = 0; - int dump_memory = 0; - int dump_flags = 0; - int trace_memory = 0; - int empty_run = 0; - int module = -1; - int load_std = 0; - char *include_list[32]; - int i, include_count = 0; - int64_t memory_limit = -1; - int64_t stack_size = -1; - - /* save for later */ - qjs__argc = argc; - qjs__argv = argv; - - /* check if this is a standalone executable */ - - if (!js_exepath(exebuf, &exebuf_size) && is_standalone(exebuf)) { - standalone = 1; - goto start; - } - - dump_flags_str = getenv("QJS_DUMP_FLAGS"); - dump_flags = dump_flags_str ? strtol(dump_flags_str, NULL, 16) : 0; - - /* cannot use getopt because we want to pass the command line to - the script */ - while (optind < argc && *argv[optind] == '-') { - char *arg = argv[optind] + 1; - const char *longopt = ""; - char *optarg = NULL; - /* a single - is not an option, it also stops argument scanning */ - if (!*arg) - break; - optind++; - if (*arg == '-') { - longopt = arg + 1; - optarg = strchr(longopt, '='); - if (optarg) - *optarg++ = '\0'; - arg += strlen(arg); - /* -- stops argument scanning */ - if (!*longopt) - break; - } - for (; *arg || *longopt; longopt = "") { - char opt = *arg; - if (opt) { - arg++; - if (!optarg && *arg) - optarg = arg; - } - if (opt == 'h' || opt == '?' || !strcmp(longopt, "help")) { - help(); - continue; - } - if (opt == 'e' || !strcmp(longopt, "eval")) { - if (!optarg) { - if (optind >= argc) { - fprintf(stderr, "qjs: missing expression for -e\n"); - exit(1); - } - optarg = argv[optind++]; - } - expr = optarg; - break; - } - if (opt == 'I' || !strcmp(longopt, "include")) { - if (optind >= argc) { - fprintf(stderr, "expecting filename"); - exit(1); - } - if (include_count >= countof(include_list)) { - fprintf(stderr, "too many included files"); - exit(1); - } - include_list[include_count++] = argv[optind++]; - continue; - } - if (opt == 'i' || !strcmp(longopt, "interactive")) { - interactive++; - continue; - } - if (opt == 'm' || !strcmp(longopt, "module")) { - module = 1; - continue; - } - if (opt == 'C' || !strcmp(longopt, "script")) { - module = 0; - continue; - } - if (opt == 'd' || !strcmp(longopt, "dump")) { - dump_memory++; - continue; - } - if (opt == 'D' || !strcmp(longopt, "dump-flags")) { - dump_flags = optarg ? strtol(optarg, NULL, 16) : 0; - break; - } - if (opt == 'T' || !strcmp(longopt, "trace")) { - trace_memory++; - continue; - } - if (!strcmp(longopt, "std")) { - load_std = 1; - continue; - } - if (opt == 'q' || !strcmp(longopt, "quit")) { - empty_run++; - continue; - } - if (!strcmp(longopt, "memory-limit")) { - if (!optarg) { - if (optind >= argc) { - fprintf(stderr, "expecting memory limit"); - exit(1); - } - optarg = argv[optind++]; - } - memory_limit = parse_limit(optarg); - break; - } - if (!strcmp(longopt, "stack-size")) { - if (!optarg) { - if (optind >= argc) { - fprintf(stderr, "expecting stack size"); - exit(1); - } - optarg = argv[optind++]; - } - stack_size = parse_limit(optarg); - break; - } - if (opt == 'c' || !strcmp(longopt, "compile")) { - if (!optarg) { - if (optind >= argc) { - fprintf(stderr, "qjs: missing file for -c\n"); - exit(1); - } - optarg = argv[optind++]; - } - compile_file = optarg; - break; - } - if (opt == 'o' || !strcmp(longopt, "out")) { - if (!optarg) { - if (optind >= argc) { - fprintf(stderr, "qjs: missing file for -o\n"); - exit(1); - } - optarg = argv[optind++]; - } - out = optarg; - break; - } - if (!strcmp(longopt, "exe")) { - if (!optarg) { - if (optind >= argc) { - fprintf(stderr, "qjs: missing file for --exe\n"); - exit(1); - } - optarg = argv[optind++]; - } - exe = optarg; - break; - } - if (opt) { - fprintf(stderr, "qjs: unknown option '-%c'\n", opt); - } else { - fprintf(stderr, "qjs: unknown option '--%s'\n", longopt); - } - help(); - } - } - - if (compile_file && !out) - help(); - -start: - - if (trace_memory) { - js_trace_malloc_init(&trace_data); - rt = JS_NewRuntime2(&trace_mf, &trace_data); - } else { -#ifdef QJS_USE_MIMALLOC - rt = JS_NewRuntime2(&mi_mf, NULL); -#else - rt = JS_NewRuntime(); -#endif - } - if (!rt) { - fprintf(stderr, "qjs: cannot allocate JS runtime\n"); - exit(2); - } - if (memory_limit >= 0) - JS_SetMemoryLimit(rt, (size_t)memory_limit); - if (stack_size >= 0) - JS_SetMaxStackSize(rt, (size_t)stack_size); - if (dump_flags != 0) - JS_SetDumpFlags(rt, dump_flags); - js_std_set_worker_new_context_func(JS_NewCustomContext); - js_std_init_handlers(rt); - ctx = JS_NewCustomContext(rt); - if (!ctx) { - fprintf(stderr, "qjs: cannot allocate JS context\n"); - exit(2); - } - - /* loader for ES6 modules */ - JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL); - - /* exit on unhandled promise rejections */ - JS_SetHostPromiseRejectionTracker(rt, js_std_promise_rejection_tracker, NULL); - - if (!empty_run) { - js_std_add_helpers(ctx, argc - optind, argv + optind); - - /* make 'std' and 'os' visible to non module code */ - if (load_std) { - const char *str = - "import * as bjson from 'qjs:bjson';\n" - "import * as std from 'qjs:std';\n" - "import * as os from 'qjs:os';\n" - "globalThis.bjson = bjson;\n" - "globalThis.std = std;\n" - "globalThis.os = os;\n"; - eval_buf(ctx, str, strlen(str), "", JS_EVAL_TYPE_MODULE); - } - - for(i = 0; i < include_count; i++) { - if (eval_file(ctx, include_list[i], 0)) - goto fail; - } - - if (standalone) { - JSValue ns = load_standalone_module(ctx); - if (JS_IsException(ns)) - goto fail; - JSValue func = JS_GetPropertyStr(ctx, ns, "runStandalone"); - JS_FreeValue(ctx, ns); - if (JS_IsException(func)) - goto fail; - ret = JS_Call(ctx, func, JS_UNDEFINED, 0, NULL); - JS_FreeValue(ctx, func); - } else if (compile_file) { - JSValue ns = load_standalone_module(ctx); - if (JS_IsException(ns)) - goto fail; - JSValue func = JS_GetPropertyStr(ctx, ns, "compileStandalone"); - JS_FreeValue(ctx, ns); - if (JS_IsException(func)) - goto fail; - JSValue args[3]; - args[0] = JS_NewString(ctx, compile_file); - args[1] = JS_NewString(ctx, out); - args[2] = exe != NULL ? JS_NewString(ctx, exe) : JS_UNDEFINED; - ret = JS_Call(ctx, func, JS_UNDEFINED, 3, (JSValueConst *)args); - JS_FreeValue(ctx, func); - JS_FreeValue(ctx, args[0]); - JS_FreeValue(ctx, args[1]); - JS_FreeValue(ctx, args[2]); - } else if (expr) { - int flags = module ? JS_EVAL_TYPE_MODULE : 0; - if (eval_buf(ctx, expr, strlen(expr), "", flags)) - goto fail; - } else if (optind >= argc) { - /* interactive mode */ - interactive = 1; - } else { - const char *filename; - filename = argv[optind]; - if (eval_file(ctx, filename, module)) - goto fail; - } - if (interactive) { - JS_SetHostPromiseRejectionTracker(rt, NULL, NULL); - js_std_eval_binary(ctx, qjsc_repl, qjsc_repl_size, 0); - } - if (standalone || compile_file) { - if (JS_IsException(ret)) { - r = 1; - } else { - JS_FreeValue(ctx, ret); - r = js_std_loop(ctx); - } - } else { - r = js_std_loop(ctx); - } - if (r) { - js_std_dump_error(ctx); - goto fail; - } - } - - if (dump_memory) { - JSMemoryUsage stats; - JS_ComputeMemoryUsage(rt, &stats); - JS_DumpMemoryUsage(stdout, &stats, rt); - } - js_std_free_handlers(rt); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - - if (empty_run && dump_memory) { - clock_t t[5]; - double best[5] = {0}; - int i, j; - for (i = 0; i < 100; i++) { - t[0] = clock(); - rt = JS_NewRuntime(); - t[1] = clock(); - ctx = JS_NewContext(rt); - t[2] = clock(); - JS_FreeContext(ctx); - t[3] = clock(); - JS_FreeRuntime(rt); - t[4] = clock(); - for (j = 4; j > 0; j--) { - double ms = 1000.0 * (t[j] - t[j - 1]) / CLOCKS_PER_SEC; - if (i == 0 || best[j] > ms) - best[j] = ms; - } - } - printf("\nInstantiation times (ms): %.3f = %.3f+%.3f+%.3f+%.3f\n", - best[1] + best[2] + best[3] + best[4], - best[1], best[2], best[3], best[4]); - } - return 0; - fail: - js_std_free_handlers(rt); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - return 1; -} diff --git a/vendor/quickjs/source_ng/qjsc.c b/vendor/quickjs/source_ng/qjsc.c deleted file mode 100755 index 395bcb34d..000000000 --- a/vendor/quickjs/source_ng/qjsc.c +++ /dev/null @@ -1,673 +0,0 @@ -/* - * QuickJS command line compiler - * - * Copyright (c) 2018-2024 Fabrice Bellard - * Copyright (c) 2023-2025 Ben Noordhuis - * Copyright (c) 2023-2025 Saúl Ibarra Corretgé - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include -#include -#include - -#include "cutils.h" -#include "quickjs-libc.h" - -typedef enum { - OUTPUT_C, - OUTPUT_C_MAIN, - OUTPUT_RAW, -} OutputTypeEnum; - -typedef struct { - char *name; - char *short_name; - int flags; -} namelist_entry_t; - -typedef struct namelist_t { - namelist_entry_t *array; - int count; - int size; -} namelist_t; - -static namelist_t cname_list; -static namelist_t cmodule_list; -static namelist_t init_module_list; -static OutputTypeEnum output_type; -static FILE *outfile; -static const char *c_ident_prefix = "qjsc_"; -static int strip; - -void namelist_add(namelist_t *lp, const char *name, const char *short_name, - int flags) -{ - namelist_entry_t *e; - if (lp->count == lp->size) { - size_t newsize = lp->size + (lp->size >> 1) + 4; - namelist_entry_t *a = - realloc(lp->array, sizeof(lp->array[0]) * newsize); - /* XXX: check for realloc failure */ - lp->array = a; - lp->size = newsize; - } - e = &lp->array[lp->count++]; - e->name = strdup(name); - if (short_name) - e->short_name = strdup(short_name); - else - e->short_name = NULL; - e->flags = flags; -} - -void namelist_free(namelist_t *lp) -{ - while (lp->count > 0) { - namelist_entry_t *e = &lp->array[--lp->count]; - free(e->name); - free(e->short_name); - } - free(lp->array); - lp->array = NULL; - lp->size = 0; -} - -namelist_entry_t *namelist_find(namelist_t *lp, const char *name) -{ - int i; - for(i = 0; i < lp->count; i++) { - namelist_entry_t *e = &lp->array[i]; - if (!strcmp(e->name, name)) - return e; - } - return NULL; -} - -static void get_c_name(char *buf, size_t buf_size, const char *file) -{ - const char *p, *r; - size_t len, i; - int c; - char *q; - - p = strrchr(file, '/'); - if (!p) - p = file; - else - p++; - r = strrchr(p, '.'); - if (!r) - len = strlen(p); - else - len = r - p; - js__pstrcpy(buf, buf_size, c_ident_prefix); - q = buf + strlen(buf); - for(i = 0; i < len; i++) { - c = p[i]; - if (!((c >= '0' && c <= '9') || - (c >= 'A' && c <= 'Z') || - (c >= 'a' && c <= 'z'))) { - c = '_'; - } - if ((q - buf) < buf_size - 1) - *q++ = c; - } - *q = '\0'; -} - -static void dump_hex(FILE *f, const uint8_t *buf, size_t len) -{ - size_t i, col; - col = 0; - for(i = 0; i < len; i++) { - fprintf(f, " 0x%02x,", buf[i]); - if (++col == 8) { - fprintf(f, "\n"); - col = 0; - } - } - if (col != 0) - fprintf(f, "\n"); -} - -static void output_object_code(JSContext *ctx, - FILE *fo, JSValue obj, const char *c_name, - bool load_only) -{ - uint8_t *out_buf; - size_t out_buf_len; - int flags = JS_WRITE_OBJ_BYTECODE; - - if (strip) { - flags |= JS_WRITE_OBJ_STRIP_SOURCE; - if (strip > 1) - flags |= JS_WRITE_OBJ_STRIP_DEBUG; - } - - out_buf = JS_WriteObject(ctx, &out_buf_len, obj, flags); - if (!out_buf) { - js_std_dump_error(ctx); - exit(1); - } - - namelist_add(&cname_list, c_name, NULL, load_only); - - if (output_type == OUTPUT_RAW) { - fwrite(out_buf, 1, out_buf_len, fo); - } else { - fprintf(fo, "const uint32_t %s_size = %u;\n\n", - c_name, (unsigned int)out_buf_len); - fprintf(fo, "const uint8_t %s[%u] = {\n", - c_name, (unsigned int)out_buf_len); - dump_hex(fo, out_buf, out_buf_len); - fprintf(fo, "};\n\n"); - } - - js_free(ctx, out_buf); -} - -static int js_module_dummy_init(JSContext *ctx, JSModuleDef *m) -{ - /* should never be called when compiling JS code */ - abort(); - return -1; // pacify compiler -} - -static void find_unique_cname(char *cname, size_t cname_size) -{ - char cname1[1024]; - int suffix_num; - size_t len, max_len; - assert(cname_size >= 32); - /* find a C name not matching an existing module C name by - adding a numeric suffix */ - len = strlen(cname); - max_len = cname_size - 16; - if (len > max_len) - cname[max_len] = '\0'; - suffix_num = 1; - for(;;) { - snprintf(cname1, sizeof(cname1), "%s_%d", cname, suffix_num); - if (!namelist_find(&cname_list, cname1)) - break; - suffix_num++; - } - js__pstrcpy(cname, cname_size, cname1); -} - -JSModuleDef *jsc_module_loader(JSContext *ctx, - const char *module_name, void *opaque) -{ - JSModuleDef *m; - namelist_entry_t *e; - - /* check if it is a declared C or system module */ - e = namelist_find(&cmodule_list, module_name); - if (e) { - /* add in the static init module list */ - namelist_add(&init_module_list, e->name, e->short_name, 0); - /* create a dummy module */ - m = JS_NewCModule(ctx, module_name, js_module_dummy_init); - } else if (js__has_suffix(module_name, ".so")) { - JS_ThrowReferenceError(ctx, "%s: dynamically linking to shared libraries not supported", - module_name); - return NULL; - } else { - size_t buf_len; - uint8_t *buf; - JSValue func_val; - char cname[1000]; - - buf = js_load_file(ctx, &buf_len, module_name); - if (!buf) { - JS_ThrowReferenceError(ctx, "could not load module filename '%s'", - module_name); - return NULL; - } - - /* compile the module */ - func_val = JS_Eval(ctx, (char *)buf, buf_len, module_name, - JS_EVAL_TYPE_MODULE | JS_EVAL_FLAG_COMPILE_ONLY); - js_free(ctx, buf); - if (JS_IsException(func_val)) - return NULL; - get_c_name(cname, sizeof(cname), module_name); - if (namelist_find(&cname_list, cname)) { - find_unique_cname(cname, sizeof(cname)); - } - output_object_code(ctx, outfile, func_val, cname, true); - - /* the module is already referenced, so we must free it */ - m = JS_VALUE_GET_PTR(func_val); - JS_FreeValue(ctx, func_val); - } - return m; -} - -static void compile_file(JSContext *ctx, FILE *fo, - const char *filename, - const char *script_name, - const char *c_name1, - int module) -{ - uint8_t *buf; - char c_name[1024]; - int eval_flags; - JSValue obj; - size_t buf_len; - - buf = js_load_file(ctx, &buf_len, filename); - if (!buf) { - fprintf(stderr, "Could not load '%s'\n", filename); - exit(1); - } - eval_flags = JS_EVAL_FLAG_COMPILE_ONLY; - if (module < 0) { - module = (js__has_suffix(filename, ".mjs") || - JS_DetectModule((const char *)buf, buf_len)); - } - if (module) - eval_flags |= JS_EVAL_TYPE_MODULE; - else - eval_flags |= JS_EVAL_TYPE_GLOBAL; - obj = JS_Eval(ctx, (const char *)buf, buf_len, script_name ? script_name : filename, eval_flags); - if (JS_IsException(obj)) { - js_std_dump_error(ctx); - exit(1); - } - js_free(ctx, buf); - if (c_name1) { - js__pstrcpy(c_name, sizeof(c_name), c_name1); - } else { - get_c_name(c_name, sizeof(c_name), filename); - } - output_object_code(ctx, fo, obj, c_name, false); - JS_FreeValue(ctx, obj); -} - -static const char main_c_template1[] = - "int main(int argc, char **argv)\n" - "{\n" - " int r;\n" - " JSRuntime *rt;\n" - " JSContext *ctx;\n" - " r = 0;\n" - " rt = JS_NewRuntime();\n" - " js_std_set_worker_new_context_func(JS_NewCustomContext);\n" - " js_std_init_handlers(rt);\n" - ; - -static const char main_c_template2[] = - " r = js_std_loop(ctx);\n" - " if (r) {\n" - " js_std_dump_error(ctx);\n" - " }\n" - " js_std_free_handlers(rt);\n" - " JS_FreeContext(ctx);\n" - " JS_FreeRuntime(rt);\n" - " return r;\n" - "}\n"; - -#define PROG_NAME "qjsc" - -void help(void) -{ - printf("QuickJS-ng Compiler version %s\n" - "usage: " PROG_NAME " [options] [files]\n" - "\n" - "options are:\n" - "-b output raw bytecode instead of C code\n" - "-e output main() and bytecode in a C file\n" - "-o output set the output filename\n" - "-n script_name set the script name (as used in stack traces)\n" - "-N cname set the C name of the generated data\n" - "-C compile as JS classic script (default=autodetect)\n" - "-m compile as ES module (default=autodetect)\n" - "-D module_name compile a dynamically loaded module or worker\n" - "-M module_name[,cname] add initialization code for an external C module\n" - "-p prefix set the prefix of the generated C names\n" - "-P do not add default system modules\n" - "-s strip the source code, specify twice to also strip debug info\n" - "-S n set the maximum stack size to 'n' bytes (default=%d)\n", - JS_GetVersion(), - JS_DEFAULT_STACK_SIZE); - exit(1); -} - -// TODO(bnoordhuis) share with qjs.c maybe -static int64_t parse_limit(const char *arg) { - char *p; - unsigned long unit = 1; // bytes for backcompat; qjs defaults to kilobytes - double d = strtod(arg, &p); - - if (p == arg) { - fprintf(stderr, "qjsc: invalid limit: %s\n", arg); - return -1; - } - - if (*p) { - switch (*p++) { - case 'b': case 'B': unit = 1UL << 0; break; - case 'k': case 'K': unit = 1UL << 10; break; /* IEC kibibytes */ - case 'm': case 'M': unit = 1UL << 20; break; /* IEC mebibytes */ - case 'g': case 'G': unit = 1UL << 30; break; /* IEC gigibytes */ - default: - fprintf(stderr, "qjsc: invalid limit: %s, unrecognized suffix, only k,m,g are allowed\n", arg); - return -1; - } - if (*p) { - fprintf(stderr, "qjsc: invalid limit: %s, only one suffix allowed\n", arg); - return -1; - } - } - - return (int64_t)(d * unit); -} - -static void check_hasarg(int optind, int argc, int opt) -{ - if (optind >= argc) { - fprintf(stderr, "qjsc: missing file for -%c\n", opt); - exit(1); - } -} - -int main(int argc, char **argv) -{ - int optind = 1; - int i; - const char *out_filename, *cname, *script_name; - char cfilename[1024]; - FILE *fo; - JSRuntime *rt; - JSContext *ctx; - int module; - size_t stack_size; - namelist_t dynamic_module_list; - bool load_system_modules = true; - - out_filename = NULL; - script_name = NULL; - output_type = OUTPUT_C; - cname = NULL; - module = -1; - strip = 0; - stack_size = 0; - memset(&dynamic_module_list, 0, sizeof(dynamic_module_list)); - - - while (optind < argc && *argv[optind] == '-') { - char *arg = argv[optind] + 1; - const char *longopt = ""; - char *optarg = NULL; - /* a single - is not an option, it also stops argument scanning */ - if (!*arg) - break; - optind++; - if (*arg == '-') { - longopt = arg + 1; - optarg = strchr(longopt, '='); - if (optarg) - *optarg++ = '\0'; - arg += strlen(arg); - /* -- stops argument scanning */ - if (!*longopt) - break; - } - for (; *arg || *longopt; longopt = "") { - char opt = *arg; - if (opt) { - arg++; - if (!optarg && *arg) - optarg = arg; - } - if (opt == 'h' || opt == '?' || !strcmp(longopt, "help")) { - help(); - continue; - } - if (opt == 'b') { - output_type = OUTPUT_RAW; - continue; - } - if (opt == 'o') { - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - out_filename = optarg; - continue; - } - if (opt == 'e') { - output_type = OUTPUT_C_MAIN; - continue; - } - if (opt == 'n') { - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - script_name = optarg; - continue; - } - if (opt == 'N') { - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - cname = optarg; - continue; - } - if (opt == 'C') { - module = 0; - continue; - } - if (opt == 'm') { - module = 1; - continue; - } - if (opt == 'M') { - char *p; - char path[1024]; - char cname[1024]; - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - js__pstrcpy(path, sizeof(path), optarg); - p = strchr(path, ','); - if (p) { - *p = '\0'; - js__pstrcpy(cname, sizeof(cname), p + 1); - } else { - get_c_name(cname, sizeof(cname), path); - } - namelist_add(&cmodule_list, path, cname, 0); - continue; - } - if (opt == 'D') { - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - namelist_add(&dynamic_module_list, optarg, NULL, 0); - continue; - } - if (opt == 'P') { - load_system_modules = false; - continue; - } - if (opt == 's') { - strip++; - continue; - } - if (opt == 'p') { - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - c_ident_prefix = optarg; - continue; - } - if (opt == 'S') { - if (!optarg) { - check_hasarg(optind, argc, opt); - optarg = argv[optind++]; - } - stack_size = parse_limit(optarg); - continue; - } - help(); - } - } - - if (load_system_modules) { - /* add system modules */ - namelist_add(&cmodule_list, "qjs:std", "std", 0); - namelist_add(&cmodule_list, "qjs:os", "os", 0); - namelist_add(&cmodule_list, "qjs:bjson", "bjson", 0); - namelist_add(&cmodule_list, "std", "std", 0); - namelist_add(&cmodule_list, "os", "os", 0); - namelist_add(&cmodule_list, "bjson", "bjson", 0); - } - - if (optind >= argc) - help(); - - if (!out_filename) - out_filename = "out.c"; - - js__pstrcpy(cfilename, sizeof(cfilename), out_filename); - - if (output_type == OUTPUT_RAW) - fo = fopen(cfilename, "wb"); - else - fo = fopen(cfilename, "w"); - - if (!fo) { - perror(cfilename); - exit(1); - } - outfile = fo; - - rt = JS_NewRuntime(); - ctx = JS_NewContext(rt); - - /* loader for ES6 modules */ - JS_SetModuleLoaderFunc(rt, NULL, jsc_module_loader, NULL); - - if (output_type != OUTPUT_RAW) { - fprintf(fo, "/* File generated automatically by the QuickJS-ng compiler. */\n" - "\n" - ); - } - - if (output_type == OUTPUT_C_MAIN) { - fprintf(fo, "#include \"quickjs-libc.h\"\n" - "\n" - ); - } else if (output_type == OUTPUT_C) { - fprintf(fo, "#include \n" - "\n" - ); - } - - for(i = optind; i < argc; i++) { - const char *filename = argv[i]; - compile_file(ctx, fo, filename, script_name, cname, module); - cname = NULL; - } - - for(i = 0; i < dynamic_module_list.count; i++) { - if (!jsc_module_loader(ctx, dynamic_module_list.array[i].name, NULL)) { - fprintf(stderr, "Could not load dynamic module '%s'\n", - dynamic_module_list.array[i].name); - exit(1); - } - } - - if (output_type == OUTPUT_C_MAIN) { - fprintf(fo, - "static JSContext *JS_NewCustomContext(JSRuntime *rt)\n" - "{\n" - " JSContext *ctx = JS_NewContext(rt);\n" - " if (!ctx)\n" - " return NULL;\n"); - /* add the precompiled modules (XXX: could modify the module - loader instead) */ - for(i = 0; i < init_module_list.count; i++) { - namelist_entry_t *e = &init_module_list.array[i]; - /* initialize the static C modules */ - - fprintf(fo, - " {\n" - " extern JSModuleDef *js_init_module_%s(JSContext *ctx, const char *name);\n" - " js_init_module_%s(ctx, \"%s\");\n" - " }\n", - e->short_name, e->short_name, e->name); - } - for(i = 0; i < cname_list.count; i++) { - namelist_entry_t *e = &cname_list.array[i]; - if (e->flags) { - fprintf(fo, " js_std_eval_binary(ctx, %s, %s_size, 1);\n", - e->name, e->name); - } - } - fprintf(fo, - " return ctx;\n" - "}\n\n"); - - fputs(main_c_template1, fo); - - if (stack_size != 0) { - fprintf(fo, " JS_SetMaxStackSize(rt, %u);\n", - (unsigned int)stack_size); - } - - /* add the module loader */ - fprintf(fo, " JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL);\n"); - - fprintf(fo, - " ctx = JS_NewCustomContext(rt);\n" - " js_std_add_helpers(ctx, argc, argv);\n"); - - for(i = 0; i < cname_list.count; i++) { - namelist_entry_t *e = &cname_list.array[i]; - if (!e->flags) { - fprintf(fo, " js_std_eval_binary(ctx, %s, %s_size, 0);\n", - e->name, e->name); - } - } - fputs(main_c_template2, fo); - } - - JS_FreeContext(ctx); - JS_FreeRuntime(rt); - - fclose(fo); - - namelist_free(&cname_list); - namelist_free(&cmodule_list); - namelist_free(&init_module_list); - return 0; -} diff --git a/vendor/quickjs/source_ng/quickjs-atom.h b/vendor/quickjs/source_ng/quickjs-atom.h deleted file mode 100755 index 2a1232843..000000000 --- a/vendor/quickjs/source_ng/quickjs-atom.h +++ /dev/null @@ -1,265 +0,0 @@ -/* - * QuickJS atom definitions - * - * Copyright (c) 2017-2018 Fabrice Bellard - * Copyright (c) 2017-2018 Charlie Gordon - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#ifdef DEF - -/* Note: first atoms are considered as keywords in the parser */ -DEF(null, "null") /* must be first */ -DEF(false, "false") -DEF(true, "true") -DEF(if, "if") -DEF(else, "else") -DEF(return, "return") -DEF(var, "var") -DEF(this, "this") -DEF(delete, "delete") -DEF(void, "void") -DEF(typeof, "typeof") -DEF(new, "new") -DEF(in, "in") -DEF(instanceof, "instanceof") -DEF(do, "do") -DEF(while, "while") -DEF(for, "for") -DEF(break, "break") -DEF(continue, "continue") -DEF(switch, "switch") -DEF(case, "case") -DEF(default, "default") -DEF(throw, "throw") -DEF(try, "try") -DEF(catch, "catch") -DEF(finally, "finally") -DEF(function, "function") -DEF(debugger, "debugger") -DEF(with, "with") -/* FutureReservedWord */ -DEF(class, "class") -DEF(const, "const") -DEF(enum, "enum") -DEF(export, "export") -DEF(extends, "extends") -DEF(import, "import") -DEF(super, "super") -/* FutureReservedWords when parsing strict mode code */ -DEF(implements, "implements") -DEF(interface, "interface") -DEF(let, "let") -DEF(package, "package") -DEF(private, "private") -DEF(protected, "protected") -DEF(public, "public") -DEF(static, "static") -DEF(yield, "yield") -DEF(await, "await") - -/* empty string */ -DEF(empty_string, "") -/* identifiers */ -DEF(keys, "keys") -DEF(size, "size") -DEF(length, "length") -DEF(message, "message") -DEF(cause, "cause") -DEF(errors, "errors") -DEF(stack, "stack") -DEF(name, "name") -DEF(toString, "toString") -DEF(toLocaleString, "toLocaleString") -DEF(valueOf, "valueOf") -DEF(eval, "eval") -DEF(prototype, "prototype") -DEF(constructor, "constructor") -DEF(configurable, "configurable") -DEF(writable, "writable") -DEF(enumerable, "enumerable") -DEF(value, "value") -DEF(get, "get") -DEF(set, "set") -DEF(of, "of") -DEF(__proto__, "__proto__") -DEF(undefined, "undefined") -DEF(number, "number") -DEF(boolean, "boolean") -DEF(string, "string") -DEF(object, "object") -DEF(symbol, "symbol") -DEF(integer, "integer") -DEF(unknown, "unknown") -DEF(arguments, "arguments") -DEF(callee, "callee") -DEF(caller, "caller") -DEF(_eval_, "") -DEF(_ret_, "") -DEF(_var_, "") -DEF(_arg_var_, "") -DEF(_with_, "") -DEF(lastIndex, "lastIndex") -DEF(target, "target") -DEF(index, "index") -DEF(input, "input") -DEF(defineProperties, "defineProperties") -DEF(apply, "apply") -DEF(join, "join") -DEF(concat, "concat") -DEF(split, "split") -DEF(construct, "construct") -DEF(getPrototypeOf, "getPrototypeOf") -DEF(setPrototypeOf, "setPrototypeOf") -DEF(isExtensible, "isExtensible") -DEF(preventExtensions, "preventExtensions") -DEF(has, "has") -DEF(deleteProperty, "deleteProperty") -DEF(defineProperty, "defineProperty") -DEF(getOwnPropertyDescriptor, "getOwnPropertyDescriptor") -DEF(ownKeys, "ownKeys") -DEF(add, "add") -DEF(done, "done") -DEF(next, "next") -DEF(values, "values") -DEF(source, "source") -DEF(flags, "flags") -DEF(global, "global") -DEF(unicode, "unicode") -DEF(raw, "raw") -DEF(new_target, "new.target") -DEF(this_active_func, "this.active_func") -DEF(home_object, "") -DEF(computed_field, "") -DEF(static_computed_field, "") /* must come after computed_fields */ -DEF(class_fields_init, "") -DEF(brand, "") -DEF(hash_constructor, "#constructor") -DEF(as, "as") -DEF(from, "from") -DEF(fromAsync, "fromAsync") -DEF(meta, "meta") -DEF(_default_, "*default*") -DEF(_star_, "*") -DEF(Module, "Module") -DEF(then, "then") -DEF(resolve, "resolve") -DEF(reject, "reject") -DEF(promise, "promise") -DEF(proxy, "proxy") -DEF(revoke, "revoke") -DEF(async, "async") -DEF(exec, "exec") -DEF(groups, "groups") -DEF(indices, "indices") -DEF(status, "status") -DEF(reason, "reason") -DEF(globalThis, "globalThis") -DEF(bigint, "bigint") -DEF(not_equal, "not-equal") -DEF(timed_out, "timed-out") -DEF(ok, "ok") -DEF(toJSON, "toJSON") -DEF(maxByteLength, "maxByteLength") -/* class names */ -DEF(Object, "Object") -DEF(Array, "Array") -DEF(Error, "Error") -DEF(Number, "Number") -DEF(String, "String") -DEF(Boolean, "Boolean") -DEF(Symbol, "Symbol") -DEF(Arguments, "Arguments") -DEF(Math, "Math") -DEF(JSON, "JSON") -DEF(Date, "Date") -DEF(Function, "Function") -DEF(GeneratorFunction, "GeneratorFunction") -DEF(ForInIterator, "ForInIterator") -DEF(RegExp, "RegExp") -DEF(ArrayBuffer, "ArrayBuffer") -DEF(SharedArrayBuffer, "SharedArrayBuffer") -/* must keep same order as class IDs for typed arrays */ -DEF(Uint8ClampedArray, "Uint8ClampedArray") -DEF(Int8Array, "Int8Array") -DEF(Uint8Array, "Uint8Array") -DEF(Int16Array, "Int16Array") -DEF(Uint16Array, "Uint16Array") -DEF(Int32Array, "Int32Array") -DEF(Uint32Array, "Uint32Array") -DEF(BigInt64Array, "BigInt64Array") -DEF(BigUint64Array, "BigUint64Array") -DEF(Float16Array, "Float16Array") -DEF(Float32Array, "Float32Array") -DEF(Float64Array, "Float64Array") -DEF(DataView, "DataView") -DEF(BigInt, "BigInt") -DEF(WeakRef, "WeakRef") -DEF(FinalizationRegistry, "FinalizationRegistry") -DEF(Map, "Map") -DEF(Set, "Set") /* Map + 1 */ -DEF(WeakMap, "WeakMap") /* Map + 2 */ -DEF(WeakSet, "WeakSet") /* Map + 3 */ -DEF(Iterator, "Iterator") -DEF(IteratorConcat, "Iterator Concat") -DEF(IteratorHelper, "Iterator Helper") -DEF(IteratorWrap, "Iterator Wrap") -DEF(Map_Iterator, "Map Iterator") -DEF(Set_Iterator, "Set Iterator") -DEF(Array_Iterator, "Array Iterator") -DEF(String_Iterator, "String Iterator") -DEF(RegExp_String_Iterator, "RegExp String Iterator") -DEF(Generator, "Generator") -DEF(Proxy, "Proxy") -DEF(Promise, "Promise") -DEF(PromiseResolveFunction, "PromiseResolveFunction") -DEF(PromiseRejectFunction, "PromiseRejectFunction") -DEF(AsyncFunction, "AsyncFunction") -DEF(AsyncFunctionResolve, "AsyncFunctionResolve") -DEF(AsyncFunctionReject, "AsyncFunctionReject") -DEF(AsyncGeneratorFunction, "AsyncGeneratorFunction") -DEF(AsyncGenerator, "AsyncGenerator") -DEF(EvalError, "EvalError") -DEF(RangeError, "RangeError") -DEF(ReferenceError, "ReferenceError") -DEF(SyntaxError, "SyntaxError") -DEF(TypeError, "TypeError") -DEF(URIError, "URIError") -DEF(InternalError, "InternalError") -DEF(DOMException, "DOMException") -DEF(CallSite, "CallSite") -/* private symbols */ -DEF(Private_brand, "") -/* symbols */ -DEF(Symbol_toPrimitive, "Symbol.toPrimitive") -DEF(Symbol_iterator, "Symbol.iterator") -DEF(Symbol_match, "Symbol.match") -DEF(Symbol_matchAll, "Symbol.matchAll") -DEF(Symbol_replace, "Symbol.replace") -DEF(Symbol_search, "Symbol.search") -DEF(Symbol_split, "Symbol.split") -DEF(Symbol_toStringTag, "Symbol.toStringTag") -DEF(Symbol_isConcatSpreadable, "Symbol.isConcatSpreadable") -DEF(Symbol_hasInstance, "Symbol.hasInstance") -DEF(Symbol_species, "Symbol.species") -DEF(Symbol_unscopables, "Symbol.unscopables") -DEF(Symbol_asyncIterator, "Symbol.asyncIterator") - -#endif /* DEF */ diff --git a/vendor/quickjs/source_ng/quickjs-c-atomics.h b/vendor/quickjs/source_ng/quickjs-c-atomics.h deleted file mode 100755 index 8fc6b7203..000000000 --- a/vendor/quickjs/source_ng/quickjs-c-atomics.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * QuickJS C atomics definitions - * - * Copyright (c) 2023 Marcin Kolny - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#if (defined(__GNUC__) || defined(__GNUG__)) && !defined(__clang__) - // Use GCC builtins for version < 4.9 -# if((__GNUC__ << 16) + __GNUC_MINOR__ < ((4) << 16) + 9) -# define GCC_BUILTIN_ATOMICS -# endif -#endif - -#ifdef GCC_BUILTIN_ATOMICS -#define atomic_fetch_add(obj, arg) \ - __atomic_fetch_add(obj, arg, __ATOMIC_SEQ_CST) -#define atomic_compare_exchange_strong(obj, expected, desired) \ - __atomic_compare_exchange_n(obj, expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) -#define atomic_exchange(obj, desired) \ - __atomic_exchange_n (obj, desired, __ATOMIC_SEQ_CST) -#define atomic_load(obj) \ - __atomic_load_n(obj, __ATOMIC_SEQ_CST) -#define atomic_store(obj, desired) \ - __atomic_store_n(obj, desired, __ATOMIC_SEQ_CST) -#define atomic_fetch_or(obj, arg) \ - __atomic_fetch_or(obj, arg, __ATOMIC_SEQ_CST) -#define atomic_fetch_xor(obj, arg) \ - __atomic_fetch_xor(obj, arg, __ATOMIC_SEQ_CST) -#define atomic_fetch_and(obj, arg) \ - __atomic_fetch_and(obj, arg, __ATOMIC_SEQ_CST) -#define atomic_fetch_sub(obj, arg) \ - __atomic_fetch_sub(obj, arg, __ATOMIC_SEQ_CST) -#define _Atomic -#else -#include -#endif diff --git a/vendor/quickjs/source_ng/quickjs-libc.c b/vendor/quickjs/source_ng/quickjs-libc.c deleted file mode 100755 index 2c7ac7704..000000000 --- a/vendor/quickjs/source_ng/quickjs-libc.c +++ /dev/null @@ -1,4685 +0,0 @@ -/* - * QuickJS C library - * - * Copyright (c) 2017-2021 Fabrice Bellard - * Copyright (c) 2017-2021 Charlie Gordon - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include "quickjs.h" -#include -#include -#include -#include -#include -#include -#include -#include -#if !defined(_MSC_VER) -#include -#include -#endif -#include -#include -#include -#include -#if !defined(_MSC_VER) -#include -#endif -#if defined(_WIN32) -#include -#include -#include -#include -#include -#include -#include -#define popen _popen -#define pclose _pclose -#define rmdir _rmdir -#define getcwd _getcwd -#define chdir _chdir -#else -#include -#include -#if !defined(__wasi__) -#include -#include -#include -#include -#include -#endif - -#if defined(__APPLE__) -typedef sig_t sighandler_t; -#include -#include -#define environ (*_NSGetEnviron()) -#endif - -#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) -typedef sig_t sighandler_t; -extern char **environ; -#endif - -#endif /* _WIN32 */ - -#include "cutils.h" -#include "list.h" -#include "quickjs-libc.h" - -#if JS_HAVE_THREADS -#include "quickjs-c-atomics.h" -#define USE_WORKER // enable os.Worker -#endif - -#ifndef S_IFBLK -#define S_IFBLK 0 -#endif - -#ifndef S_IFIFO -#define S_IFIFO 0 -#endif - -#ifndef MAX_SAFE_INTEGER // already defined in amalgamation builds -#define MAX_SAFE_INTEGER (((int64_t) 1 << 53) - 1) -#endif - -#ifndef QJS_NATIVE_MODULE_SUFFIX -#ifdef _WIN32 -#define QJS_NATIVE_MODULE_SUFFIX ".dll" -#else -#define QJS_NATIVE_MODULE_SUFFIX ".so" -#endif -#endif - -/* TODO: - - add socket calls -*/ - -typedef struct { - struct list_head link; - int fd; - JSValue rw_func[2]; -} JSOSRWHandler; - -typedef struct { - struct list_head link; - int sig_num; - JSValue func; -} JSOSSignalHandler; - -typedef struct { - struct list_head link; - int64_t timer_id; - uint8_t repeats:1; - int64_t timeout; - int64_t delay; - JSValue func; -} JSOSTimer; - -typedef struct { - struct list_head link; - JSValue promise; - JSValue reason; -} JSRejectedPromiseEntry; - -#ifdef USE_WORKER - -typedef struct { - struct list_head link; - uint8_t *data; - size_t data_len; - /* list of SharedArrayBuffers, necessary to free the message */ - uint8_t **sab_tab; - size_t sab_tab_len; -} JSWorkerMessage; - -typedef struct JSWaker { -#ifdef _WIN32 - HANDLE handle; -#else - int read_fd; - int write_fd; -#endif -} JSWaker; - -typedef struct { - int ref_count; - js_mutex_t mutex; - struct list_head msg_queue; /* list of JSWorkerMessage.link */ - JSWaker waker; -} JSWorkerMessagePipe; - -typedef struct { - struct list_head link; - JSWorkerMessagePipe *recv_pipe; - JSValue on_message_func; -} JSWorkerMessageHandler; - -#endif // USE_WORKER - -typedef struct JSThreadState { - struct list_head os_rw_handlers; /* list of JSOSRWHandler.link */ - struct list_head os_signal_handlers; /* list JSOSSignalHandler.link */ - struct list_head os_timers; /* list of JSOSTimer.link */ - struct list_head port_list; /* list of JSWorkerMessageHandler.link */ - struct list_head rejected_promise_list; /* list of JSRejectedPromiseEntry.link */ - int eval_script_recurse; /* only used in the main thread */ - int64_t next_timer_id; /* for setTimeout / setInterval */ - bool can_js_os_poll; - /* not used in the main thread */ -#ifdef USE_WORKER - JSWorkerMessagePipe *recv_pipe, *send_pipe; -#else - void *recv_pipe; -#endif // USE_WORKER - JSClassID std_file_class_id; - JSClassID worker_class_id; -} JSThreadState; - -static uint64_t os_pending_signals; - -static void *js_std_dbuf_realloc(void *opaque, void *ptr, size_t size) -{ - JSRuntime *rt = opaque; - return js_realloc_rt(rt, ptr, size); -} - -static void js_std_dbuf_init(JSContext *ctx, DynBuf *s) -{ - dbuf_init2(s, JS_GetRuntime(ctx), js_std_dbuf_realloc); -} - -static bool my_isdigit(int c) -{ - return (c >= '0' && c <= '9'); -} - -static JSThreadState *js_get_thread_state(JSRuntime *rt) -{ - return (JSThreadState *)js_std_cmd(/*GetOpaque*/0, rt); -} - -static void js_set_thread_state(JSRuntime *rt, JSThreadState *ts) -{ - js_std_cmd(/*SetOpaque*/1, rt, ts); -} - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wformat-nonliteral" -#endif // __GNUC__ -static JSValue js_printf_internal(JSContext *ctx, - int argc, JSValueConst *argv, FILE *fp) -{ - char fmtbuf[32]; - uint8_t cbuf[UTF8_CHAR_LEN_MAX+1]; - JSValue res; - DynBuf dbuf; - const char *fmt_str = NULL; - const uint8_t *fmt, *fmt_end; - const uint8_t *p; - char *q; - int i, c, len, mod; - size_t fmt_len; - int32_t int32_arg; - int64_t int64_arg; - double double_arg; - const char *string_arg; - - js_std_dbuf_init(ctx, &dbuf); - - if (argc > 0) { - fmt_str = JS_ToCStringLen(ctx, &fmt_len, argv[0]); - if (!fmt_str) - goto fail; - - i = 1; - fmt = (const uint8_t *)fmt_str; - fmt_end = fmt + fmt_len; - while (fmt < fmt_end) { - for (p = fmt; fmt < fmt_end && *fmt != '%'; fmt++) - continue; - dbuf_put(&dbuf, p, fmt - p); - if (fmt >= fmt_end) - break; - q = fmtbuf; - *q++ = *fmt++; /* copy '%' */ - - /* flags */ - for(;;) { - c = *fmt; - if (c == '0' || c == '#' || c == '+' || c == '-' || c == ' ' || - c == '\'') { - if (q >= fmtbuf + sizeof(fmtbuf) - 1) - goto invalid; - *q++ = c; - fmt++; - } else { - break; - } - } - /* width */ - if (*fmt == '*') { - if (i >= argc) - goto missing; - if (JS_ToInt32(ctx, &int32_arg, argv[i++])) - goto fail; - q += snprintf(q, fmtbuf + sizeof(fmtbuf) - q, "%d", int32_arg); - fmt++; - } else { - while (my_isdigit(*fmt)) { - if (q >= fmtbuf + sizeof(fmtbuf) - 1) - goto invalid; - *q++ = *fmt++; - } - } - if (*fmt == '.') { - if (q >= fmtbuf + sizeof(fmtbuf) - 1) - goto invalid; - *q++ = *fmt++; - if (*fmt == '*') { - if (i >= argc) - goto missing; - if (JS_ToInt32(ctx, &int32_arg, argv[i++])) - goto fail; - q += snprintf(q, fmtbuf + sizeof(fmtbuf) - q, "%d", int32_arg); - fmt++; - } else { - while (my_isdigit(*fmt)) { - if (q >= fmtbuf + sizeof(fmtbuf) - 1) - goto invalid; - *q++ = *fmt++; - } - } - } - - /* we only support the "l" modifier for 64 bit numbers */ - mod = ' '; - if (*fmt == 'l') { - mod = *fmt++; - } - - /* type */ - c = *fmt++; - if (q >= fmtbuf + sizeof(fmtbuf) - 1) - goto invalid; - *q++ = c; - *q = '\0'; - - switch (c) { - case 'c': - if (i >= argc) - goto missing; - if (JS_IsString(argv[i])) { - // TODO(chqrlie) need an API to wrap charCodeAt and codePointAt */ - string_arg = JS_ToCString(ctx, argv[i++]); - if (!string_arg) - goto fail; - int32_arg = utf8_decode((const uint8_t *)string_arg, &p); - JS_FreeCString(ctx, string_arg); - } else { - if (JS_ToInt32(ctx, &int32_arg, argv[i++])) - goto fail; - } - // XXX: throw an exception? - if ((unsigned)int32_arg > 0x10FFFF) - int32_arg = 0xFFFD; - /* ignore conversion flags, width and precision */ - len = utf8_encode(cbuf, int32_arg); - dbuf_put(&dbuf, cbuf, len); - break; - - case 'd': - case 'i': - case 'o': - case 'u': - case 'x': - case 'X': - if (i >= argc) - goto missing; - if (JS_ToInt64Ext(ctx, &int64_arg, argv[i++])) - goto fail; - if (mod == 'l') { - /* 64 bit number */ -#if defined(_WIN32) - if (q >= fmtbuf + sizeof(fmtbuf) - 3) - goto invalid; - q[2] = q[-1]; - q[-1] = 'I'; - q[0] = '6'; - q[1] = '4'; - q[3] = '\0'; - dbuf_printf(&dbuf, fmtbuf, (int64_t)int64_arg); -#else - if (q >= fmtbuf + sizeof(fmtbuf) - 2) - goto invalid; - q[1] = q[-1]; - q[-1] = q[0] = 'l'; - q[2] = '\0'; - dbuf_printf(&dbuf, fmtbuf, (long long)int64_arg); -#endif - } else { - dbuf_printf(&dbuf, fmtbuf, (int)int64_arg); - } - break; - - case 's': - if (i >= argc) - goto missing; - /* XXX: handle strings containing null characters */ - string_arg = JS_ToCString(ctx, argv[i++]); - if (!string_arg) - goto fail; - dbuf_printf(&dbuf, fmtbuf, string_arg); - JS_FreeCString(ctx, string_arg); - break; - - case 'e': - case 'f': - case 'g': - case 'a': - case 'E': - case 'F': - case 'G': - case 'A': - if (i >= argc) - goto missing; - if (JS_ToFloat64(ctx, &double_arg, argv[i++])) - goto fail; - dbuf_printf(&dbuf, fmtbuf, double_arg); - break; - - case '%': - dbuf_putc(&dbuf, '%'); - break; - - default: - /* XXX: should support an extension mechanism */ - invalid: - JS_ThrowTypeError(ctx, "invalid conversion specifier in format string"); - goto fail; - missing: - JS_ThrowReferenceError(ctx, "missing argument for conversion specifier"); - goto fail; - } - } - JS_FreeCString(ctx, fmt_str); - } - if (dbuf.error) { - res = JS_ThrowOutOfMemory(ctx); - } else { - if (fp) { - len = fwrite(dbuf.buf, 1, dbuf.size, fp); - res = JS_NewInt32(ctx, len); - } else { - res = JS_NewStringLen(ctx, (char *)dbuf.buf, dbuf.size); - } - } - dbuf_free(&dbuf); - return res; - -fail: - JS_FreeCString(ctx, fmt_str); - dbuf_free(&dbuf); - return JS_EXCEPTION; -} -#ifdef __GNUC__ -#pragma GCC diagnostic pop // ignored "-Wformat-nonliteral" -#endif // __GNUC__ - -uint8_t *js_load_file(JSContext *ctx, size_t *pbuf_len, const char *filename) -{ - FILE *f; - size_t n, len; - uint8_t *p, *buf, tmp[8192]; - - f = fopen(filename, "rb"); - if (!f) - return NULL; - buf = NULL; - len = 0; - do { - n = fread(tmp, 1, sizeof(tmp), f); - if (ctx) { - p = js_realloc(ctx, buf, len + n + 1); - } else { - p = realloc(buf, len + n + 1); - } - if (!p) { - if (ctx) { - js_free(ctx, buf); - } else { - free(buf); - } - fclose(f); - return NULL; - } - memcpy(&p[len], tmp, n); - buf = p; - len += n; - buf[len] = '\0'; - } while (n == sizeof(tmp)); - fclose(f); - *pbuf_len = len; - return buf; -} - -/* load and evaluate a file */ -static JSValue js_loadScript(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - uint8_t *buf; - const char *filename; - JSValue ret; - size_t buf_len; - - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - return JS_EXCEPTION; - buf = js_load_file(ctx, &buf_len, filename); - if (!buf) { - JS_ThrowReferenceError(ctx, "could not load '%s'", filename); - JS_FreeCString(ctx, filename); - return JS_EXCEPTION; - } - ret = JS_Eval(ctx, (char *)buf, buf_len, filename, - JS_EVAL_TYPE_GLOBAL); - js_free(ctx, buf); - JS_FreeCString(ctx, filename); - return ret; -} - -static int get_bool_option(JSContext *ctx, bool *pbool, - JSValueConst obj, - const char *option) -{ - JSValue val; - val = JS_GetPropertyStr(ctx, obj, option); - if (JS_IsException(val)) - return -1; - if (!JS_IsUndefined(val)) { - *pbool = JS_ToBool(ctx, val); - } - JS_FreeValue(ctx, val); - return 0; -} - -static void free_buf(JSRuntime *rt, void *opaque, void *ptr) { - js_free_rt(rt, ptr); -} - -/* load a file as a UTF-8 encoded string or Uint8Array */ -static JSValue js_std_loadFile(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - uint8_t *buf; - const char *filename; - JSValueConst options_obj; - JSValue ret; - size_t buf_len; - bool binary = false; - - if (argc >= 2) { - options_obj = argv[1]; - if (get_bool_option(ctx, &binary, options_obj, - "binary")) - return JS_EXCEPTION; - } - - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - return JS_EXCEPTION; - buf = js_load_file(ctx, &buf_len, filename); - JS_FreeCString(ctx, filename); - if (!buf) - return JS_NULL; - if (binary) { - ret = JS_NewUint8Array(ctx, buf, buf_len, free_buf, NULL, false); - } else { - ret = JS_NewStringLen(ctx, (char *)buf, buf_len); - js_free(ctx, buf); - } - - return ret; -} - -static JSValue js_std_writeFile(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *filename; - const char *mode; - const void *buf; - size_t len, n; - JSValueConst data; - JSValue val, ret, unref; - bool release; - FILE *fp; - - ret = JS_EXCEPTION; - len = 0; - buf = ""; - mode = "w"; - data = argv[1]; - unref = JS_UNDEFINED; - release = false; - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - return JS_EXCEPTION; - if (JS_IsObject(data)) { - val = JS_GetPropertyStr(ctx, data, "buffer"); - if (JS_IsException(val)) - goto exception; - if (JS_IsArrayBuffer(val)) { - data = unref = val; - } else { - JS_FreeValue(ctx, val); - } - } - if (JS_IsArrayBuffer(data)) { - buf = JS_GetArrayBuffer(ctx, &len, data); - mode = "wb"; - } else if (!JS_IsUndefined(data)) { - buf = JS_ToCStringLen(ctx, &len, data); - release = true; - } - if (!buf) - goto exception; - fp = fopen(filename, mode); - if (!fp) { - JS_ThrowPlainError(ctx, "error opening %s for writing", filename); - goto exception; - } - n = fwrite(buf, len, 1, fp); - fclose(fp); - if (n != 1) { - JS_ThrowPlainError(ctx, "error writing to %s", filename); - goto exception; - } - ret = JS_UNDEFINED; -exception: - JS_FreeCString(ctx, filename); - if (release) - JS_FreeCString(ctx, buf); - JS_FreeValue(ctx, unref); - return ret; -} - -typedef JSModuleDef *(JSInitModuleFunc)(JSContext *ctx, - const char *module_name); - - -#if defined(_WIN32) -static JSModuleDef *js_module_loader_so(JSContext *ctx, - const char *module_name) -{ - JSModuleDef *m; - HINSTANCE hd; - JSInitModuleFunc *init; - char *filename = NULL; - size_t len = strlen(module_name); - bool is_absolute = len > 2 && ((module_name[0] >= 'A' && module_name[0] <= 'Z') || - (module_name[0] >= 'a' && module_name[0] <= 'z')) && module_name[1] == ':'; - bool is_relative = len > 2 && module_name[0] == '.' && (module_name[1] == '/' || module_name[1] == '\\'); - if (is_absolute || is_relative) { - filename = (char *)module_name; - } else { - filename = js_malloc(ctx, len + 2 + 1); - if (!filename) - return NULL; - strcpy(filename, "./"); - strcpy(filename + 2, module_name); - } - hd = LoadLibraryA(filename); - if (filename != module_name) - js_free(ctx, filename); - if (hd == NULL) { - JS_ThrowReferenceError(ctx, "js_load_module '%s' error: %lu", - module_name, GetLastError()); - goto fail; - } - init = (JSInitModuleFunc *)(uintptr_t)GetProcAddress(hd, "js_init_module"); - if (!init) { - JS_ThrowReferenceError(ctx, "js_init_module '%s' not found: %lu", - module_name, GetLastError()); - goto fail; - } - m = init(ctx, module_name); - if (!m) { - JS_ThrowReferenceError(ctx, "js_call_module '%s' initialization error", - module_name); - fail: - if (hd != NULL) - FreeLibrary(hd); - return NULL; - } - return m; -} -#elif defined(__wasi__) -static JSModuleDef *js_module_loader_so(JSContext *ctx, - const char *module_name) -{ - JS_ThrowReferenceError(ctx, "shared library modules are not supported yet"); - return NULL; -} -#else -static JSModuleDef *js_module_loader_so(JSContext *ctx, - const char *module_name) -{ - JSModuleDef *m; - void *hd; - JSInitModuleFunc *init; - char *filename; - - if (!strchr(module_name, '/')) { - /* must add a '/' so that the DLL is not searched in the - system library paths */ - filename = js_malloc(ctx, strlen(module_name) + 2 + 1); - if (!filename) - return NULL; - strcpy(filename, "./"); - strcpy(filename + 2, module_name); - } else { - filename = (char *)module_name; - } - - /* C module */ - hd = dlopen(filename, RTLD_NOW | RTLD_LOCAL); - if (filename != module_name) - js_free(ctx, filename); - if (!hd) { - JS_ThrowReferenceError(ctx, "could not load module filename '%s' as shared library: %s", - module_name, dlerror()); - goto fail; - } - - *(void **) (&init) = dlsym(hd, "js_init_module"); - if (!init) { - JS_ThrowReferenceError(ctx, "could not load module filename '%s': js_init_module not found", - module_name); - goto fail; - } - - m = init(ctx, module_name); - if (!m) { - JS_ThrowReferenceError(ctx, "could not load module filename '%s': initialization error", - module_name); - fail: - if (hd) - dlclose(hd); - return NULL; - } - return m; -} -#endif /* !_WIN32 */ - -int js_module_set_import_meta(JSContext *ctx, JSValueConst func_val, - bool use_realpath, bool is_main) -{ - JSModuleDef *m; - char buf[JS__PATH_MAX + 16]; - JSValue meta_obj; - JSAtom module_name_atom; - const char *module_name; - - assert(JS_VALUE_GET_TAG(func_val) == JS_TAG_MODULE); - m = JS_VALUE_GET_PTR(func_val); - - module_name_atom = JS_GetModuleName(ctx, m); - module_name = JS_AtomToCString(ctx, module_name_atom); - JS_FreeAtom(ctx, module_name_atom); - if (!module_name) - return -1; - if (!strchr(module_name, ':')) { - strcpy(buf, "file://"); -#if !defined(_WIN32) && !defined(__wasi__) - /* realpath() cannot be used with modules compiled with qjsc - because the corresponding module source code is not - necessarily present */ - if (use_realpath) { - char *res = realpath(module_name, buf + strlen(buf)); - if (!res) { - JS_ThrowTypeError(ctx, "realpath failure"); - JS_FreeCString(ctx, module_name); - return -1; - } - } else -#endif - { - js__pstrcat(buf, sizeof(buf), module_name); - } - } else { - js__pstrcpy(buf, sizeof(buf), module_name); - } - JS_FreeCString(ctx, module_name); - - meta_obj = JS_GetImportMeta(ctx, m); - if (JS_IsException(meta_obj)) - return -1; - JS_DefinePropertyValueStr(ctx, meta_obj, "url", - JS_NewString(ctx, buf), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, meta_obj, "main", - JS_NewBool(ctx, is_main), - JS_PROP_C_W_E); - JS_FreeValue(ctx, meta_obj); - return 0; -} - -JSModuleDef *js_module_loader(JSContext *ctx, - const char *module_name, void *opaque) -{ - JSModuleDef *m; - - if (js__has_suffix(module_name, QJS_NATIVE_MODULE_SUFFIX)) { - m = js_module_loader_so(ctx, module_name); - } else { - size_t buf_len; - uint8_t *buf; - JSValue func_val; - - buf = js_load_file(ctx, &buf_len, module_name); - if (!buf) { - JS_ThrowReferenceError(ctx, "could not load module filename '%s'", - module_name); - return NULL; - } - - /* compile the module */ - func_val = JS_Eval(ctx, (char *)buf, buf_len, module_name, - JS_EVAL_TYPE_MODULE | JS_EVAL_FLAG_COMPILE_ONLY); - js_free(ctx, buf); - if (JS_IsException(func_val)) - return NULL; - if (js_module_set_import_meta(ctx, func_val, true, false) < 0) { - JS_FreeValue(ctx, func_val); - return NULL; - } - /* the module is already referenced, so we must free it */ - m = JS_VALUE_GET_PTR(func_val); - JS_FreeValue(ctx, func_val); - } - return m; -} - -static JSValue js_std_exit(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int status; - if (JS_ToInt32(ctx, &status, argv[0])) - status = -1; - exit(status); - return JS_UNDEFINED; -} - -static JSValue js_std_getenv(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *name, *str; - name = JS_ToCString(ctx, argv[0]); - if (!name) - return JS_EXCEPTION; - str = getenv(name); - JS_FreeCString(ctx, name); - if (!str) - return JS_UNDEFINED; - else - return JS_NewString(ctx, str); -} - -#if defined(_WIN32) -static void setenv(const char *name, const char *value, int overwrite) -{ - char *str; - size_t name_len, value_len; - name_len = strlen(name); - value_len = strlen(value); - str = malloc(name_len + 1 + value_len + 1); - memcpy(str, name, name_len); - str[name_len] = '='; - memcpy(str + name_len + 1, value, value_len); - str[name_len + 1 + value_len] = '\0'; - _putenv(str); - free(str); -} - -static void unsetenv(const char *name) -{ - setenv(name, "", true); -} -#endif /* _WIN32 */ - -static JSValue js_std_setenv(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *name, *value; - name = JS_ToCString(ctx, argv[0]); - if (!name) - return JS_EXCEPTION; - value = JS_ToCString(ctx, argv[1]); - if (!value) { - JS_FreeCString(ctx, name); - return JS_EXCEPTION; - } - setenv(name, value, true); - JS_FreeCString(ctx, name); - JS_FreeCString(ctx, value); - return JS_UNDEFINED; -} - -static JSValue js_std_unsetenv(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *name; - name = JS_ToCString(ctx, argv[0]); - if (!name) - return JS_EXCEPTION; - unsetenv(name); - JS_FreeCString(ctx, name); - return JS_UNDEFINED; -} - -/* return an object containing the list of the available environment - variables. */ -static JSValue js_std_getenviron(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - char **envp; - const char *name, *p, *value; - JSValue obj; - uint32_t idx; - size_t name_len; - JSAtom atom; - int ret; - - obj = JS_NewObject(ctx); - if (JS_IsException(obj)) - return JS_EXCEPTION; - envp = environ; - for(idx = 0; envp[idx] != NULL; idx++) { - name = envp[idx]; - p = strchr(name, '='); - name_len = p - name; - if (!p) - continue; - value = p + 1; - atom = JS_NewAtomLen(ctx, name, name_len); - if (atom == JS_ATOM_NULL) - goto fail; - ret = JS_DefinePropertyValue(ctx, obj, atom, JS_NewString(ctx, value), - JS_PROP_C_W_E); - JS_FreeAtom(ctx, atom); - if (ret < 0) - goto fail; - } - return obj; - fail: - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; -} - -static JSValue js_std_gc(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JS_RunGC(JS_GetRuntime(ctx)); - return JS_UNDEFINED; -} - -static int interrupt_handler(JSRuntime *rt, void *opaque) -{ - return (os_pending_signals >> SIGINT) & 1; -} - -static JSValue js_evalScript(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - const char *str = NULL; - size_t len; - JSValue ret, obj; - JSValueConst options_obj, arg; - bool backtrace_barrier = false; - bool eval_function = false; - bool eval_module = false; - bool compile_only = false; - bool compile_module = false; - bool is_async = false; - int flags; - - if (argc >= 2) { - options_obj = argv[1]; - if (get_bool_option(ctx, &backtrace_barrier, options_obj, - "backtrace_barrier")) - return JS_EXCEPTION; - if (get_bool_option(ctx, &eval_function, options_obj, - "eval_function")) - return JS_EXCEPTION; - if (get_bool_option(ctx, &eval_module, options_obj, - "eval_module")) - return JS_EXCEPTION; - if (get_bool_option(ctx, &compile_only, options_obj, - "compile_only")) - return JS_EXCEPTION; - if (get_bool_option(ctx, &compile_module, options_obj, - "compile_module")) - return JS_EXCEPTION; - if (get_bool_option(ctx, &is_async, options_obj, - "async")) - return JS_EXCEPTION; - } - - if (eval_module) { - arg = argv[0]; - if (JS_VALUE_GET_TAG(arg) != JS_TAG_MODULE) - return JS_ThrowTypeError(ctx, "not a module"); - - if (JS_ResolveModule(ctx, arg) < 0) - return JS_EXCEPTION; - - if (js_module_set_import_meta(ctx, arg, false, false) < 0) - return JS_EXCEPTION; - - return JS_EvalFunction(ctx, JS_DupValue(ctx, arg)); - } - - if (!eval_function) { - str = JS_ToCStringLen(ctx, &len, argv[0]); - if (!str) - return JS_EXCEPTION; - } - if (!ts->recv_pipe && ++ts->eval_script_recurse == 1) { - /* install the interrupt handler */ - JS_SetInterruptHandler(JS_GetRuntime(ctx), interrupt_handler, NULL); - } - flags = compile_module ? JS_EVAL_TYPE_MODULE : JS_EVAL_TYPE_GLOBAL; - if (backtrace_barrier) - flags |= JS_EVAL_FLAG_BACKTRACE_BARRIER; - if (compile_only) - flags |= JS_EVAL_FLAG_COMPILE_ONLY; - if (is_async) - flags |= JS_EVAL_FLAG_ASYNC; - if (eval_function) { - obj = JS_DupValue(ctx, argv[0]); - ret = JS_EvalFunction(ctx, obj); // takes ownership of |obj| - } else { - ret = JS_Eval(ctx, str, len, "", flags); - } - JS_FreeCString(ctx, str); - if (!ts->recv_pipe && --ts->eval_script_recurse == 0) { - /* remove the interrupt handler */ - JS_SetInterruptHandler(JS_GetRuntime(ctx), NULL, NULL); - os_pending_signals &= ~((uint64_t)1 << SIGINT); - /* convert the uncatchable "interrupted" error into a normal error - so that it can be caught by the REPL */ - if (JS_IsException(ret)) - JS_ResetUncatchableError(ctx); - } - return ret; -} - -typedef struct { - FILE *f; - bool is_popen; -} JSSTDFile; - -static bool is_stdio(FILE *f) -{ - return f == stdin || f == stdout || f == stderr; -} - -static void js_std_file_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSThreadState *ts = js_get_thread_state(rt); - JSSTDFile *s = JS_GetOpaque(val, ts->std_file_class_id); - if (s) { - if (s->f && !is_stdio(s->f)) { -#if !defined(__wasi__) - if (s->is_popen) - pclose(s->f); - else -#endif - fclose(s->f); - } - js_free_rt(rt, s); - } -} - -static ssize_t js_get_errno(ssize_t ret) -{ - if (ret == -1) - ret = -errno; - return ret; -} - -static JSValue js_std_strerror(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int err; - if (JS_ToInt32(ctx, &err, argv[0])) - return JS_EXCEPTION; - return JS_NewString(ctx, strerror(err)); -} - -static JSValue js_new_std_file(JSContext *ctx, FILE *f, bool is_popen) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSSTDFile *s; - JSValue obj; - obj = JS_NewObjectClass(ctx, ts->std_file_class_id); - if (JS_IsException(obj)) - return obj; - s = js_mallocz(ctx, sizeof(*s)); - if (!s) { - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; - } - s->is_popen = is_popen; - s->f = f; - JS_SetOpaque(obj, s); - return obj; -} - -static void js_set_error_object(JSContext *ctx, JSValueConst obj, int err) -{ - if (!JS_IsUndefined(obj)) { - JS_SetPropertyStr(ctx, obj, "errno", JS_NewInt32(ctx, err)); - } -} - -static JSValue js_std_open(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *filename, *mode = NULL; - FILE *f; - int err; - - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - goto fail; - mode = JS_ToCString(ctx, argv[1]); - if (!mode) - goto fail; - if (mode[strspn(mode, "rwa+bx")] != '\0') { - JS_ThrowTypeError(ctx, "invalid file mode"); - goto fail; - } - - f = fopen(filename, mode); - if (!f) - err = errno; - else - err = 0; - if (argc >= 3) - js_set_error_object(ctx, argv[2], err); - JS_FreeCString(ctx, filename); - JS_FreeCString(ctx, mode); - if (!f) - return JS_NULL; - return js_new_std_file(ctx, f, false); - fail: - JS_FreeCString(ctx, filename); - JS_FreeCString(ctx, mode); - return JS_EXCEPTION; -} - -#if !defined(__wasi__) -static JSValue js_std_popen(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *filename, *mode = NULL; - FILE *f; - int err; - - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - goto fail; - mode = JS_ToCString(ctx, argv[1]); - if (!mode) - goto fail; - if (strcmp(mode, "r") && strcmp(mode, "w")) { - JS_ThrowTypeError(ctx, "invalid file mode"); - goto fail; - } - - f = popen(filename, mode); - if (!f) - err = errno; - else - err = 0; - if (argc >= 3) - js_set_error_object(ctx, argv[2], err); - JS_FreeCString(ctx, filename); - JS_FreeCString(ctx, mode); - if (!f) - return JS_NULL; - return js_new_std_file(ctx, f, true); - fail: - JS_FreeCString(ctx, filename); - JS_FreeCString(ctx, mode); - return JS_EXCEPTION; -} -#endif // !defined(__wasi__) - -static JSValue js_std_fdopen(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *mode; - FILE *f; - int fd, err; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - mode = JS_ToCString(ctx, argv[1]); - if (!mode) - goto fail; - if (mode[strspn(mode, "rwa+")] != '\0') { - JS_ThrowTypeError(ctx, "invalid file mode"); - goto fail; - } - - f = fdopen(fd, mode); - if (!f) - err = errno; - else - err = 0; - if (argc >= 3) - js_set_error_object(ctx, argv[2], err); - JS_FreeCString(ctx, mode); - if (!f) - return JS_NULL; - return js_new_std_file(ctx, f, false); - fail: - JS_FreeCString(ctx, mode); - return JS_EXCEPTION; -} - -#if !defined(__wasi__) -static JSValue js_std_tmpfile(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f; - f = tmpfile(); - if (argc >= 1) - js_set_error_object(ctx, argv[0], f ? 0 : errno); - if (!f) - return JS_NULL; - return js_new_std_file(ctx, f, false); -} -#endif - -static JSValue js_std_sprintf(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - return js_printf_internal(ctx, argc, argv, NULL); -} - -static JSValue js_std_printf(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - return js_printf_internal(ctx, argc, argv, stdout); -} - -static FILE *js_std_file_get(JSContext *ctx, JSValueConst obj) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSSTDFile *s = JS_GetOpaque2(ctx, obj, ts->std_file_class_id); - if (!s) - return NULL; - if (!s->f) { - JS_ThrowTypeError(ctx, "invalid file handle"); - return NULL; - } - return s->f; -} - -static JSValue js_std_file_puts(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic) -{ - FILE *f; - int i; - const char *str; - size_t len; - - if (magic == 0) { - f = stdout; - } else { - f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - } - - for(i = 0; i < argc; i++) { - str = JS_ToCStringLen(ctx, &len, argv[i]); - if (!str) - return JS_EXCEPTION; - fwrite(str, 1, len, f); - JS_FreeCString(ctx, str); - } - return JS_UNDEFINED; -} - -static JSValue js_std_file_close(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSSTDFile *s = JS_GetOpaque2(ctx, this_val, ts->std_file_class_id); - int err; - if (!s) - return JS_EXCEPTION; - if (!s->f) - return JS_ThrowTypeError(ctx, "invalid file handle"); - if (is_stdio(s->f)) - return JS_ThrowTypeError(ctx, "cannot close stdio"); -#if !defined(__wasi__) - if (s->is_popen) - err = js_get_errno(pclose(s->f)); - else -#endif - err = js_get_errno(fclose(s->f)); - s->f = NULL; - return JS_NewInt32(ctx, err); -} - -static JSValue js_std_file_printf(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - return js_printf_internal(ctx, argc, argv, f); -} - -static JSValue js_std_file_flush(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - fflush(f); - return JS_UNDEFINED; -} - -static JSValue js_std_file_tell(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int is_bigint) -{ - FILE *f = js_std_file_get(ctx, this_val); - int64_t pos; - if (!f) - return JS_EXCEPTION; -#if defined(__linux__) || defined(__GLIBC__) - pos = ftello(f); -#else - pos = ftell(f); -#endif - if (is_bigint) - return JS_NewBigInt64(ctx, pos); - else - return JS_NewInt64(ctx, pos); -} - -static JSValue js_std_file_seek(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - int64_t pos; - int whence, ret; - if (!f) - return JS_EXCEPTION; - if (JS_ToInt64Ext(ctx, &pos, argv[0])) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &whence, argv[1])) - return JS_EXCEPTION; -#if defined(__linux__) || defined(__GLIBC__) - ret = fseeko(f, pos, whence); -#else - ret = fseek(f, pos, whence); -#endif - if (ret < 0) - ret = -errno; - return JS_NewInt32(ctx, ret); -} - -static JSValue js_std_file_eof(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - return JS_NewBool(ctx, feof(f)); -} - -static JSValue js_std_file_error(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - return JS_NewBool(ctx, ferror(f)); -} - -static JSValue js_std_file_clearerr(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - clearerr(f); - return JS_UNDEFINED; -} - -static JSValue js_std_file_fileno(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - return JS_NewInt32(ctx, fileno(f)); -} - -static JSValue js_std_file_read_write(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic) -{ - FILE *f = js_std_file_get(ctx, this_val); - uint64_t pos, len; - size_t size, ret; - uint8_t *buf; - - if (!f) - return JS_EXCEPTION; - if (JS_ToIndex(ctx, &pos, argv[1])) - return JS_EXCEPTION; - if (JS_ToIndex(ctx, &len, argv[2])) - return JS_EXCEPTION; - buf = JS_GetArrayBuffer(ctx, &size, argv[0]); - if (!buf) - return JS_EXCEPTION; - if (pos + len > size) - return JS_ThrowRangeError(ctx, "read/write array buffer overflow"); - if (magic) - ret = fwrite(buf + pos, 1, len, f); - else - ret = fread(buf + pos, 1, len, f); - return JS_NewInt64(ctx, ret); -} - -/* XXX: could use less memory and go faster */ -static JSValue js_std_file_getline(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - int c; - DynBuf dbuf; - JSValue obj; - - if (!f) - return JS_EXCEPTION; - - js_std_dbuf_init(ctx, &dbuf); - for(;;) { - c = fgetc(f); - if (c == EOF) { - if (dbuf.size == 0) { - /* EOF */ - dbuf_free(&dbuf); - return JS_NULL; - } else { - break; - } - } - if (c == '\n') - break; - if (dbuf_putc(&dbuf, c)) { - dbuf_free(&dbuf); - return JS_ThrowOutOfMemory(ctx); - } - } - obj = JS_NewStringLen(ctx, (const char *)dbuf.buf, dbuf.size); - dbuf_free(&dbuf); - return obj; -} - -/* XXX: could use less memory and go faster */ -static JSValue js_std_file_readAs(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic) -{ - FILE *f = js_std_file_get(ctx, this_val); - int c; - DynBuf dbuf; - JSValue obj; - uint64_t max_size64; - size_t max_size; - JSValueConst max_size_val; - - if (!f) - return JS_EXCEPTION; - - if (argc >= 1) - max_size_val = argv[0]; - else - max_size_val = JS_UNDEFINED; - max_size = (size_t)-1; - if (!JS_IsUndefined(max_size_val)) { - if (JS_ToIndex(ctx, &max_size64, max_size_val)) - return JS_EXCEPTION; - if (max_size64 < max_size) - max_size = max_size64; - } - - js_std_dbuf_init(ctx, &dbuf); - while (max_size != 0) { - c = fgetc(f); - if (c == EOF) - break; - if (dbuf_putc(&dbuf, c)) { - dbuf_free(&dbuf); - return JS_EXCEPTION; - } - max_size--; - } - if (magic) { - obj = JS_NewStringLen(ctx, (const char *)dbuf.buf, dbuf.size); - } else { - obj = JS_NewArrayBufferCopy(ctx, dbuf.buf, dbuf.size); - } - dbuf_free(&dbuf); - return obj; -} - -static JSValue js_std_file_getByte(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - if (!f) - return JS_EXCEPTION; - return JS_NewInt32(ctx, fgetc(f)); -} - -static JSValue js_std_file_putByte(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - FILE *f = js_std_file_get(ctx, this_val); - int c; - if (!f) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &c, argv[0])) - return JS_EXCEPTION; - c = fputc(c, f); - return JS_NewInt32(ctx, c); -} - -/* urlGet */ -#if !defined(__wasi__) - -#define URL_GET_PROGRAM "curl -s -i --" -#define URL_GET_BUF_SIZE 4096 - -static int http_get_header_line(FILE *f, char *buf, size_t buf_size, - DynBuf *dbuf) -{ - int c; - char *p; - - p = buf; - for(;;) { - c = fgetc(f); - if (c < 0) - return -1; - if ((p - buf) < buf_size - 1) - *p++ = c; - if (dbuf) - dbuf_putc(dbuf, c); - if (c == '\n') - break; - } - *p = '\0'; - return 0; -} - -static int http_get_status(const char *buf) -{ - const char *p = buf; - while (*p != ' ' && *p != '\0') - p++; - if (*p != ' ') - return 0; - while (*p == ' ') - p++; - return atoi(p); -} - -static JSValue js_std_urlGet(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *url; - DynBuf cmd_buf; - DynBuf data_buf_s, *data_buf = &data_buf_s; - DynBuf header_buf_s, *header_buf = &header_buf_s; - char *buf; - size_t i, len; - int status; - JSValue response = JS_UNDEFINED, ret_obj; - JSValueConst options_obj; - FILE *f; - bool binary_flag, full_flag; - - url = JS_ToCString(ctx, argv[0]); - if (!url) - return JS_EXCEPTION; - - binary_flag = false; - full_flag = false; - - if (argc >= 2) { - options_obj = argv[1]; - - if (get_bool_option(ctx, &binary_flag, options_obj, "binary")) - goto fail_obj; - - if (get_bool_option(ctx, &full_flag, options_obj, "full")) { - fail_obj: - JS_FreeCString(ctx, url); - return JS_EXCEPTION; - } - } - - js_std_dbuf_init(ctx, &cmd_buf); - dbuf_printf(&cmd_buf, "%s '", URL_GET_PROGRAM); - for(i = 0; url[i] != '\0'; i++) { - unsigned char c = url[i]; - switch (c) { - case '\'': - /* shell single quoted string does not support \' */ - dbuf_putstr(&cmd_buf, "'\\''"); - break; - case '[': case ']': case '{': case '}': case '\\': - /* prevent interpretation by curl as range or set specification */ - dbuf_putc(&cmd_buf, '\\'); - /* FALLTHROUGH */ - default: - dbuf_putc(&cmd_buf, c); - break; - } - } - JS_FreeCString(ctx, url); - dbuf_putstr(&cmd_buf, "'"); - dbuf_putc(&cmd_buf, '\0'); - if (dbuf_error(&cmd_buf)) { - dbuf_free(&cmd_buf); - return JS_EXCEPTION; - } - // printf("%s\n", (char *)cmd_buf.buf); - f = popen((char *)cmd_buf.buf, "r"); - dbuf_free(&cmd_buf); - if (!f) { - return JS_ThrowTypeError(ctx, "could not start curl"); - } - - js_std_dbuf_init(ctx, data_buf); - js_std_dbuf_init(ctx, header_buf); - - buf = js_malloc(ctx, URL_GET_BUF_SIZE); - if (!buf) - goto fail; - - /* get the HTTP status */ - if (http_get_header_line(f, buf, URL_GET_BUF_SIZE, NULL) < 0) { - status = 0; - goto bad_header; - } - status = http_get_status(buf); - if (!full_flag && !(status >= 200 && status <= 299)) { - goto bad_header; - } - - /* wait until there is an empty line */ - for(;;) { - if (http_get_header_line(f, buf, URL_GET_BUF_SIZE, header_buf) < 0) { - bad_header: - response = JS_NULL; - goto done; - } - if (!strcmp(buf, "\r\n")) - break; - } - if (dbuf_error(header_buf)) - goto fail; - header_buf->size -= 2; /* remove the trailing CRLF */ - - /* download the data */ - for(;;) { - len = fread(buf, 1, URL_GET_BUF_SIZE, f); - if (len == 0) - break; - dbuf_put(data_buf, (uint8_t *)buf, len); - } - if (dbuf_error(data_buf)) - goto fail; - if (binary_flag) { - response = JS_NewArrayBufferCopy(ctx, - data_buf->buf, data_buf->size); - } else { - response = JS_NewStringLen(ctx, (char *)data_buf->buf, data_buf->size); - } - if (JS_IsException(response)) - goto fail; - done: - js_free(ctx, buf); - buf = NULL; - pclose(f); - f = NULL; - dbuf_free(data_buf); - data_buf = NULL; - - if (full_flag) { - ret_obj = JS_NewObject(ctx); - if (JS_IsException(ret_obj)) - goto fail; - JS_DefinePropertyValueStr(ctx, ret_obj, "response", - response, - JS_PROP_C_W_E); - if (!JS_IsNull(response)) { - JS_DefinePropertyValueStr(ctx, ret_obj, "responseHeaders", - JS_NewStringLen(ctx, (char *)header_buf->buf, - header_buf->size), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, ret_obj, "status", - JS_NewInt32(ctx, status), - JS_PROP_C_W_E); - } - } else { - ret_obj = response; - } - dbuf_free(header_buf); - return ret_obj; - fail: - if (f) - pclose(f); - js_free(ctx, buf); - if (data_buf) - dbuf_free(data_buf); - if (header_buf) - dbuf_free(header_buf); - JS_FreeValue(ctx, response); - return JS_EXCEPTION; -} -#endif // !defined(__wasi__) - -static JSClassDef js_std_file_class = { - "FILE", - .finalizer = js_std_file_finalizer, -}; - -static const JSCFunctionListEntry js_std_error_props[] = { - /* various errno values */ -#define DEF(x) JS_PROP_INT32_DEF(#x, x, JS_PROP_CONFIGURABLE ) - DEF(EINVAL), - DEF(EIO), - DEF(EACCES), - DEF(EEXIST), - DEF(ENOSPC), - DEF(ENOSYS), - DEF(EBUSY), - DEF(ENOENT), - DEF(EPERM), - DEF(EPIPE), - DEF(EBADF), -#undef DEF -}; - -static const JSCFunctionListEntry js_std_funcs[] = { - JS_CFUNC_DEF("exit", 1, js_std_exit ), - JS_CFUNC_DEF("gc", 0, js_std_gc ), - JS_CFUNC_DEF("evalScript", 1, js_evalScript ), - JS_CFUNC_DEF("loadScript", 1, js_loadScript ), - JS_CFUNC_DEF("getenv", 1, js_std_getenv ), - JS_CFUNC_DEF("setenv", 1, js_std_setenv ), - JS_CFUNC_DEF("unsetenv", 1, js_std_unsetenv ), - JS_CFUNC_DEF("getenviron", 1, js_std_getenviron ), -#if !defined(__wasi__) - JS_CFUNC_DEF("urlGet", 1, js_std_urlGet ), -#endif - JS_CFUNC_DEF("loadFile", 1, js_std_loadFile ), - JS_CFUNC_DEF("writeFile", 2, js_std_writeFile ), - JS_CFUNC_DEF("strerror", 1, js_std_strerror ), - - /* FILE I/O */ - JS_CFUNC_DEF("open", 2, js_std_open ), -#if !defined(__wasi__) - JS_CFUNC_DEF("popen", 2, js_std_popen ), - JS_CFUNC_DEF("tmpfile", 0, js_std_tmpfile ), -#endif - JS_CFUNC_DEF("fdopen", 2, js_std_fdopen ), - JS_CFUNC_MAGIC_DEF("puts", 1, js_std_file_puts, 0 ), - JS_CFUNC_DEF("printf", 1, js_std_printf ), - JS_CFUNC_DEF("sprintf", 1, js_std_sprintf ), - JS_PROP_INT32_DEF("SEEK_SET", SEEK_SET, JS_PROP_CONFIGURABLE ), - JS_PROP_INT32_DEF("SEEK_CUR", SEEK_CUR, JS_PROP_CONFIGURABLE ), - JS_PROP_INT32_DEF("SEEK_END", SEEK_END, JS_PROP_CONFIGURABLE ), - JS_OBJECT_DEF("Error", js_std_error_props, countof(js_std_error_props), JS_PROP_CONFIGURABLE), -}; - -static const JSCFunctionListEntry js_std_file_proto_funcs[] = { - JS_CFUNC_DEF("close", 0, js_std_file_close ), - JS_CFUNC_MAGIC_DEF("puts", 1, js_std_file_puts, 1 ), - JS_CFUNC_DEF("printf", 1, js_std_file_printf ), - JS_CFUNC_DEF("flush", 0, js_std_file_flush ), - JS_CFUNC_MAGIC_DEF("tell", 0, js_std_file_tell, 0 ), - JS_CFUNC_MAGIC_DEF("tello", 0, js_std_file_tell, 1 ), - JS_CFUNC_DEF("seek", 2, js_std_file_seek ), - JS_CFUNC_DEF("eof", 0, js_std_file_eof ), - JS_CFUNC_DEF("fileno", 0, js_std_file_fileno ), - JS_CFUNC_DEF("error", 0, js_std_file_error ), - JS_CFUNC_DEF("clearerr", 0, js_std_file_clearerr ), - JS_CFUNC_MAGIC_DEF("read", 3, js_std_file_read_write, 0 ), - JS_CFUNC_MAGIC_DEF("write", 3, js_std_file_read_write, 1 ), - JS_CFUNC_DEF("getline", 0, js_std_file_getline ), - JS_CFUNC_MAGIC_DEF("readAsArrayBuffer", 0, js_std_file_readAs, 0 ), - JS_CFUNC_MAGIC_DEF("readAsString", 0, js_std_file_readAs, 1 ), - JS_CFUNC_DEF("getByte", 0, js_std_file_getByte ), - JS_CFUNC_DEF("putByte", 1, js_std_file_putByte ), - /* setvbuf, ... */ -}; - -static int js_std_init(JSContext *ctx, JSModuleDef *m) -{ - JSValue proto; - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - - /* FILE class */ - /* the class ID is created once */ - JS_NewClassID(rt, &ts->std_file_class_id); - /* the class is created once per runtime */ - JS_NewClass(rt, ts->std_file_class_id, &js_std_file_class); - proto = JS_NewObject(ctx); - JS_SetPropertyFunctionList(ctx, proto, js_std_file_proto_funcs, - countof(js_std_file_proto_funcs)); - JS_SetClassProto(ctx, ts->std_file_class_id, proto); - - JS_SetModuleExportList(ctx, m, js_std_funcs, - countof(js_std_funcs)); - JS_SetModuleExport(ctx, m, "in", js_new_std_file(ctx, stdin, false)); - JS_SetModuleExport(ctx, m, "out", js_new_std_file(ctx, stdout, false)); - JS_SetModuleExport(ctx, m, "err", js_new_std_file(ctx, stderr, false)); - return 0; -} - -JSModuleDef *js_init_module_std(JSContext *ctx, const char *module_name) -{ - JSModuleDef *m; - m = JS_NewCModule(ctx, module_name, js_std_init); - if (!m) - return NULL; - JS_AddModuleExportList(ctx, m, js_std_funcs, countof(js_std_funcs)); - JS_AddModuleExport(ctx, m, "in"); - JS_AddModuleExport(ctx, m, "out"); - JS_AddModuleExport(ctx, m, "err"); - return m; -} - -/**********************************************************/ -/* 'os' object */ - -static JSValue js_os_open(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *filename; - int flags, mode, ret; - - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &flags, argv[1])) - goto fail; - if (argc >= 3 && !JS_IsUndefined(argv[2])) { - if (JS_ToInt32(ctx, &mode, argv[2])) { - fail: - JS_FreeCString(ctx, filename); - return JS_EXCEPTION; - } - } else { - mode = 0666; - } -#if defined(_WIN32) - /* force binary mode by default */ - if (!(flags & O_TEXT)) - flags |= O_BINARY; -#endif - ret = js_get_errno(open(filename, flags, mode)); - JS_FreeCString(ctx, filename); - return JS_NewInt32(ctx, ret); -} - -static JSValue js_os_close(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd, ret; - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - ret = js_get_errno(close(fd)); - return JS_NewInt32(ctx, ret); -} - -static JSValue js_os_seek(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd, whence; - int64_t pos, ret; - bool is_bigint; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - is_bigint = JS_IsBigInt(argv[1]); - if (JS_ToInt64Ext(ctx, &pos, argv[1])) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &whence, argv[2])) - return JS_EXCEPTION; - ret = lseek(fd, pos, whence); - if (ret == -1) - ret = -errno; - if (is_bigint) - return JS_NewBigInt64(ctx, ret); - else - return JS_NewInt64(ctx, ret); -} - -static JSValue js_os_read_write(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic) -{ - int fd; - uint64_t pos, len; - size_t size; - ssize_t ret; - uint8_t *buf; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - if (JS_ToIndex(ctx, &pos, argv[2])) - return JS_EXCEPTION; - if (JS_ToIndex(ctx, &len, argv[3])) - return JS_EXCEPTION; - buf = JS_GetArrayBuffer(ctx, &size, argv[1]); - if (!buf) - return JS_EXCEPTION; - if (pos + len > size) - return JS_ThrowRangeError(ctx, "read/write array buffer overflow"); - if (magic) - ret = js_get_errno(write(fd, buf + pos, len)); - else - ret = js_get_errno(read(fd, buf + pos, len)); - return JS_NewInt64(ctx, ret); -} - -static JSValue js_os_isatty(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd; - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - return JS_NewBool(ctx, (isatty(fd) != 0)); -} - -#if defined(_WIN32) -static JSValue js_os_ttyGetWinSize(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd; - HANDLE handle; - CONSOLE_SCREEN_BUFFER_INFO info; - JSValue obj; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - handle = (HANDLE)_get_osfhandle(fd); - - if (!GetConsoleScreenBufferInfo(handle, &info)) - return JS_NULL; - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) - return obj; - JS_DefinePropertyValueUint32(ctx, obj, 0, JS_NewInt32(ctx, info.dwSize.X), JS_PROP_C_W_E); - JS_DefinePropertyValueUint32(ctx, obj, 1, JS_NewInt32(ctx, info.dwSize.Y), JS_PROP_C_W_E); - return obj; -} - -/* Windows 10 built-in VT100 emulation */ -#define __ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 -#define __ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 - -static JSValue js_os_ttySetRaw(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd; - HANDLE handle; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - handle = (HANDLE)_get_osfhandle(fd); - SetConsoleMode(handle, ENABLE_WINDOW_INPUT | __ENABLE_VIRTUAL_TERMINAL_INPUT); - _setmode(fd, _O_BINARY); - if (fd == 0) { - handle = (HANDLE)_get_osfhandle(1); /* corresponding output */ - SetConsoleMode(handle, ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT | __ENABLE_VIRTUAL_TERMINAL_PROCESSING); - } - return JS_UNDEFINED; -} -#elif !defined(__wasi__) -static JSValue js_os_ttyGetWinSize(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd; - struct winsize ws; - JSValue obj; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - if (ioctl(fd, TIOCGWINSZ, &ws) == 0 && - ws.ws_col >= 4 && ws.ws_row >= 4) { - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) - return obj; - JS_DefinePropertyValueUint32(ctx, obj, 0, JS_NewInt32(ctx, ws.ws_col), JS_PROP_C_W_E); - JS_DefinePropertyValueUint32(ctx, obj, 1, JS_NewInt32(ctx, ws.ws_row), JS_PROP_C_W_E); - return obj; - } else { - return JS_NULL; - } -} - -static struct termios oldtty; - -static void term_exit(void) -{ - tcsetattr(0, TCSANOW, &oldtty); -} - -/* XXX: should add a way to go back to normal mode */ -static JSValue js_os_ttySetRaw(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - struct termios tty; - int fd; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - - memset(&tty, 0, sizeof(tty)); - tcgetattr(fd, &tty); - oldtty = tty; - - tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP - |INLCR|IGNCR|ICRNL|IXON); - tty.c_oflag |= OPOST; - tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN); - tty.c_cflag &= ~(CSIZE|PARENB); - tty.c_cflag |= CS8; - tty.c_cc[VMIN] = 1; - tty.c_cc[VTIME] = 0; - - tcsetattr(fd, TCSANOW, &tty); - - atexit(term_exit); - return JS_UNDEFINED; -} - -#endif /* !_WIN32 && !__wasi__ */ - -static JSValue js_os_remove(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *filename; - int ret; - - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - return JS_EXCEPTION; -#if defined(_WIN32) - { - struct stat st; - if (stat(filename, &st) == 0 && (st.st_mode & _S_IFDIR)) { - ret = rmdir(filename); - } else { - ret = unlink(filename); - } - } -#else - ret = remove(filename); -#endif - ret = js_get_errno(ret); - JS_FreeCString(ctx, filename); - return JS_NewInt32(ctx, ret); -} - -static JSValue js_os_rename(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *oldpath, *newpath; - int ret; - - oldpath = JS_ToCString(ctx, argv[0]); - if (!oldpath) - return JS_EXCEPTION; - newpath = JS_ToCString(ctx, argv[1]); - if (!newpath) { - JS_FreeCString(ctx, oldpath); - return JS_EXCEPTION; - } - ret = js_get_errno(rename(oldpath, newpath)); - JS_FreeCString(ctx, oldpath); - JS_FreeCString(ctx, newpath); - return JS_NewInt32(ctx, ret); -} - -static bool is_main_thread(JSRuntime *rt) -{ - JSThreadState *ts = js_get_thread_state(rt); - return !ts->recv_pipe; -} - -static JSOSRWHandler *find_rh(JSThreadState *ts, int fd) -{ - JSOSRWHandler *rh; - struct list_head *el; - - list_for_each(el, &ts->os_rw_handlers) { - rh = list_entry(el, JSOSRWHandler, link); - if (rh->fd == fd) - return rh; - } - return NULL; -} - -static void free_rw_handler(JSRuntime *rt, JSOSRWHandler *rh) -{ - int i; - list_del(&rh->link); - for(i = 0; i < 2; i++) { - JS_FreeValueRT(rt, rh->rw_func[i]); - } - js_free_rt(rt, rh); -} - -static JSValue js_os_setReadHandler(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSOSRWHandler *rh; - int fd; - JSValueConst func; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - func = argv[1]; - if (JS_IsNull(func)) { - rh = find_rh(ts, fd); - if (rh) { - JS_FreeValue(ctx, rh->rw_func[magic]); - rh->rw_func[magic] = JS_NULL; - if (JS_IsNull(rh->rw_func[0]) && - JS_IsNull(rh->rw_func[1])) { - /* remove the entry */ - free_rw_handler(JS_GetRuntime(ctx), rh); - } - } - } else { - if (!JS_IsFunction(ctx, func)) - return JS_ThrowTypeError(ctx, "not a function"); - rh = find_rh(ts, fd); - if (!rh) { - rh = js_mallocz(ctx, sizeof(*rh)); - if (!rh) - return JS_EXCEPTION; - rh->fd = fd; - rh->rw_func[0] = JS_NULL; - rh->rw_func[1] = JS_NULL; - list_add_tail(&rh->link, &ts->os_rw_handlers); - } - JS_FreeValue(ctx, rh->rw_func[magic]); - rh->rw_func[magic] = JS_DupValue(ctx, func); - } - return JS_UNDEFINED; -} - -static JSOSSignalHandler *find_sh(JSThreadState *ts, int sig_num) -{ - JSOSSignalHandler *sh; - struct list_head *el; - list_for_each(el, &ts->os_signal_handlers) { - sh = list_entry(el, JSOSSignalHandler, link); - if (sh->sig_num == sig_num) - return sh; - } - return NULL; -} - -static void free_sh(JSRuntime *rt, JSOSSignalHandler *sh) -{ - list_del(&sh->link); - JS_FreeValueRT(rt, sh->func); - js_free_rt(rt, sh); -} - -static void os_signal_handler(int sig_num) -{ - os_pending_signals |= ((uint64_t)1 << sig_num); -} - -#if defined(_WIN32) -typedef void (*sighandler_t)(int sig_num); -#endif - -static JSValue js_os_signal(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSOSSignalHandler *sh; - uint32_t sig_num; - JSValueConst func; - sighandler_t handler; - - if (!is_main_thread(rt)) - return JS_ThrowTypeError(ctx, "signal handler can only be set in the main thread"); - - if (JS_ToUint32(ctx, &sig_num, argv[0])) - return JS_EXCEPTION; - if (sig_num >= 64) - return JS_ThrowRangeError(ctx, "invalid signal number"); - func = argv[1]; - /* func = null: SIG_DFL, func = undefined, SIG_IGN */ - if (JS_IsNull(func) || JS_IsUndefined(func)) { - sh = find_sh(ts, sig_num); - if (sh) { - free_sh(JS_GetRuntime(ctx), sh); - } - if (JS_IsNull(func)) - handler = SIG_DFL; - else - handler = SIG_IGN; - signal(sig_num, handler); - } else { - if (!JS_IsFunction(ctx, func)) - return JS_ThrowTypeError(ctx, "not a function"); - sh = find_sh(ts, sig_num); - if (!sh) { - sh = js_mallocz(ctx, sizeof(*sh)); - if (!sh) - return JS_EXCEPTION; - sh->sig_num = sig_num; - list_add_tail(&sh->link, &ts->os_signal_handlers); - } - JS_FreeValue(ctx, sh->func); - sh->func = JS_DupValue(ctx, func); - signal(sig_num, os_signal_handler); - } - return JS_UNDEFINED; -} - -#if !defined(_WIN32) && !defined(__wasi__) -static JSValue js_os_cputime(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - struct rusage ru; - int64_t cputime; - - cputime = 0; - if (!getrusage(RUSAGE_SELF, &ru)) - cputime = (int64_t)ru.ru_utime.tv_sec * 1000000 + ru.ru_utime.tv_usec; - - return JS_NewInt64(ctx, cputime); -} -#endif - -static JSValue js_os_exepath(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - char buf[JS__PATH_MAX]; - size_t len = sizeof(buf); - if (js_exepath(buf, &len)) - return JS_UNDEFINED; - return JS_NewStringLen(ctx, buf, len); -} - -static JSValue js_os_now(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - return JS_NewInt64(ctx, js__hrtime_ns() / 1000); -} - -static uint64_t js__hrtime_ms(void) -{ - return js__hrtime_ns() / (1000 * 1000); -} - -static void free_timer(JSRuntime *rt, JSOSTimer *th) -{ - list_del(&th->link); - JS_FreeValueRT(rt, th->func); - js_free_rt(rt, th); -} - -// TODO(bnoordhuis) accept string as first arg and eval at timer expiry -// TODO(bnoordhuis) retain argv[2..] as args for callback if argc > 2 -static JSValue js_os_setTimeout(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - int64_t delay; - JSValueConst func; - JSOSTimer *th; - - func = argv[0]; - if (!JS_IsFunction(ctx, func)) - return JS_ThrowTypeError(ctx, "not a function"); - if (JS_ToInt64(ctx, &delay, argv[1])) - return JS_EXCEPTION; - if (delay < 1) - delay = 1; - th = js_mallocz(ctx, sizeof(*th)); - if (!th) - return JS_EXCEPTION; - th->timer_id = ts->next_timer_id++; - if (ts->next_timer_id > MAX_SAFE_INTEGER) - ts->next_timer_id = 1; - th->repeats = (magic > 0); - th->timeout = js__hrtime_ms() + delay; - th->delay = delay; - th->func = JS_DupValue(ctx, func); - list_add_tail(&th->link, &ts->os_timers); - return JS_NewInt64(ctx, th->timer_id); -} - -static JSOSTimer *find_timer_by_id(JSThreadState *ts, int timer_id) -{ - struct list_head *el; - if (timer_id <= 0) - return NULL; - list_for_each(el, &ts->os_timers) { - JSOSTimer *th = list_entry(el, JSOSTimer, link); - if (th->timer_id == timer_id) - return th; - } - return NULL; -} - -static JSValue js_os_clearTimeout(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSOSTimer *th; - int64_t timer_id; - - if (JS_ToInt64(ctx, &timer_id, argv[0])) - return JS_EXCEPTION; - th = find_timer_by_id(ts, timer_id); - if (!th) - return JS_UNDEFINED; - free_timer(rt, th); - return JS_UNDEFINED; -} - -/* return a promise */ -static JSValue js_os_sleepAsync(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - int64_t delay; - JSOSTimer *th; - JSValue promise, resolving_funcs[2]; - - if (JS_ToInt64(ctx, &delay, argv[0])) - return JS_EXCEPTION; - promise = JS_NewPromiseCapability(ctx, resolving_funcs); - if (JS_IsException(promise)) - return JS_EXCEPTION; - - th = js_mallocz(ctx, sizeof(*th)); - if (!th) { - JS_FreeValue(ctx, promise); - JS_FreeValue(ctx, resolving_funcs[0]); - JS_FreeValue(ctx, resolving_funcs[1]); - return JS_EXCEPTION; - } - th->timer_id = -1; - th->timeout = js__hrtime_ms() + delay; - th->func = JS_DupValue(ctx, resolving_funcs[0]); - list_add_tail(&th->link, &ts->os_timers); - JS_FreeValue(ctx, resolving_funcs[0]); - JS_FreeValue(ctx, resolving_funcs[1]); - return promise; -} - -static int call_handler(JSContext *ctx, JSValue func) -{ - int r; - JSValue ret, func1; - /* 'func' might be destroyed when calling itself (if it frees the - handler), so must take extra care */ - func1 = JS_DupValue(ctx, func); - ret = JS_Call(ctx, func1, JS_UNDEFINED, 0, NULL); - JS_FreeValue(ctx, func1); - r = 0; - if (JS_IsException(ret)) - r = -1; - JS_FreeValue(ctx, ret); - return r; -} - -static int js_os_run_timers(JSRuntime *rt, JSContext *ctx, JSThreadState *ts, int *min_delay) -{ - JSValue func; - JSOSTimer *th; - int64_t cur_time, delay; - struct list_head *el; - int r; - - if (list_empty(&ts->os_timers)) { - *min_delay = -1; - return 0; - } - - cur_time = js__hrtime_ms(); - *min_delay = INT32_MAX; - - list_for_each(el, &ts->os_timers) { - th = list_entry(el, JSOSTimer, link); - delay = th->timeout - cur_time; - if (delay > 0) { - *min_delay = min_int(*min_delay, delay); - } else { - *min_delay = 0; - func = JS_DupValueRT(rt, th->func); - if (th->repeats) - th->timeout = cur_time + th->delay; - else - free_timer(rt, th); - r = call_handler(ctx, func); - JS_FreeValueRT(rt, func); - return r; - } - } - - return 0; -} - -#ifdef USE_WORKER - -#ifdef _WIN32 - -static int js_waker_init(JSWaker *w) -{ - w->handle = CreateEvent(NULL, TRUE, FALSE, NULL); - return w->handle ? 0 : -1; -} - -static void js_waker_signal(JSWaker *w) -{ - SetEvent(w->handle); -} - -static void js_waker_clear(JSWaker *w) -{ - ResetEvent(w->handle); -} - -static void js_waker_close(JSWaker *w) -{ - CloseHandle(w->handle); - w->handle = INVALID_HANDLE_VALUE; -} - -#else // !_WIN32 - -static int js_waker_init(JSWaker *w) -{ - int fds[2]; - - if (pipe(fds) < 0) - return -1; - w->read_fd = fds[0]; - w->write_fd = fds[1]; - return 0; -} - -static void js_waker_signal(JSWaker *w) -{ - int ret; - - for(;;) { - ret = write(w->write_fd, "", 1); - if (ret == 1) - break; - if (ret < 0 && (errno != EAGAIN || errno != EINTR)) - break; - } -} - -static void js_waker_clear(JSWaker *w) -{ - uint8_t buf[16]; - int ret; - - for(;;) { - ret = read(w->read_fd, buf, sizeof(buf)); - if (ret >= 0) - break; - if (errno != EAGAIN && errno != EINTR) - break; - } -} - -static void js_waker_close(JSWaker *w) -{ - close(w->read_fd); - close(w->write_fd); - w->read_fd = -1; - w->write_fd = -1; -} - -#endif // _WIN32 - -static void js_free_message(JSWorkerMessage *msg); - -/* return 1 if a message was handled, 0 if no message */ -static int handle_posted_message(JSRuntime *rt, JSContext *ctx, - JSWorkerMessageHandler *port) -{ - JSWorkerMessagePipe *ps = port->recv_pipe; - int ret; - struct list_head *el; - JSWorkerMessage *msg; - JSValue obj, data_obj, func, retval; - - js_mutex_lock(&ps->mutex); - if (!list_empty(&ps->msg_queue)) { - el = ps->msg_queue.next; - msg = list_entry(el, JSWorkerMessage, link); - - /* remove the message from the queue */ - list_del(&msg->link); - - // drain read end of pipe - if (list_empty(&ps->msg_queue)) - js_waker_clear(&ps->waker); - - js_mutex_unlock(&ps->mutex); - - data_obj = JS_ReadObject(ctx, msg->data, msg->data_len, - JS_READ_OBJ_SAB | JS_READ_OBJ_REFERENCE); - - js_free_message(msg); - - if (JS_IsException(data_obj)) - goto fail; - obj = JS_NewObject(ctx); - if (JS_IsException(obj)) { - JS_FreeValue(ctx, data_obj); - goto fail; - } - JS_DefinePropertyValueStr(ctx, obj, "data", data_obj, JS_PROP_C_W_E); - - /* 'func' might be destroyed when calling itself (if it frees the - handler), so must take extra care */ - func = JS_DupValue(ctx, port->on_message_func); - retval = JS_Call(ctx, func, JS_UNDEFINED, 1, (JSValueConst *)&obj); - JS_FreeValue(ctx, obj); - JS_FreeValue(ctx, func); - if (JS_IsException(retval)) { - fail: - js_std_dump_error(ctx); - } else { - JS_FreeValue(ctx, retval); - } - ret = 1; - } else { - js_mutex_unlock(&ps->mutex); - ret = 0; - } - return ret; -} - -#endif // USE_WORKER - -#if defined(_WIN32) -static int js_os_poll(JSContext *ctx) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - int min_delay, count; - JSOSRWHandler *rh; - struct list_head *el; - HANDLE handles[MAXIMUM_WAIT_OBJECTS]; // 64 - - /* XXX: handle signals if useful */ - - if (js_os_run_timers(rt, ctx, ts, &min_delay)) - return -1; - if (min_delay == 0) - return 0; // expired timer - if (min_delay < 0) - if (list_empty(&ts->os_rw_handlers) && list_empty(&ts->port_list)) - return -1; /* no more events */ - - count = 0; - list_for_each(el, &ts->os_rw_handlers) { - rh = list_entry(el, JSOSRWHandler, link); - if (rh->fd == 0 && !JS_IsNull(rh->rw_func[0])) - handles[count++] = (HANDLE)_get_osfhandle(rh->fd); // stdin - if (count == (int)countof(handles)) - break; - } - - list_for_each(el, &ts->port_list) { - JSWorkerMessageHandler *port = list_entry(el, JSWorkerMessageHandler, link); - if (JS_IsNull(port->on_message_func)) - continue; - handles[count++] = port->recv_pipe->waker.handle; - if (count == (int)countof(handles)) - break; - } - - if (count > 0) { - DWORD ret, timeout = INFINITE; - if (min_delay != -1) - timeout = min_delay; - ret = WaitForMultipleObjects(count, handles, FALSE, timeout); - if (ret < count) { - list_for_each(el, &ts->os_rw_handlers) { - rh = list_entry(el, JSOSRWHandler, link); - if (rh->fd == 0 && !JS_IsNull(rh->rw_func[0])) { - return call_handler(ctx, rh->rw_func[0]); - /* must stop because the list may have been modified */ - } - } - - list_for_each(el, &ts->port_list) { - JSWorkerMessageHandler *port = list_entry(el, JSWorkerMessageHandler, link); - if (!JS_IsNull(port->on_message_func)) { - JSWorkerMessagePipe *ps = port->recv_pipe; - if (ps->waker.handle == handles[ret]) { - if (handle_posted_message(rt, ctx, port)) - goto done; - } - } - } - } - } else { - Sleep(min_delay); - } -done: - return 0; -} -#else // !defined(_WIN32) -static int js_os_poll(JSContext *ctx) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - int r, w, ret, nfds, min_delay; - JSOSRWHandler *rh; - struct list_head *el; - struct pollfd *pfd, *pfds, pfds_local[64]; - - /* only check signals in the main thread */ - if (!ts->recv_pipe && - unlikely(os_pending_signals != 0)) { - JSOSSignalHandler *sh; - uint64_t mask; - - list_for_each(el, &ts->os_signal_handlers) { - sh = list_entry(el, JSOSSignalHandler, link); - mask = (uint64_t)1 << sh->sig_num; - if (os_pending_signals & mask) { - os_pending_signals &= ~mask; - return call_handler(ctx, sh->func); - } - } - } - - if (js_os_run_timers(rt, ctx, ts, &min_delay)) - return -1; - if (min_delay == 0) - return 0; // expired timer - if (min_delay < 0) - if (list_empty(&ts->os_rw_handlers) && list_empty(&ts->port_list)) - return -1; /* no more events */ - - nfds = 0; - list_for_each(el, &ts->os_rw_handlers) { - rh = list_entry(el, JSOSRWHandler, link); - nfds += (!JS_IsNull(rh->rw_func[0]) || !JS_IsNull(rh->rw_func[1])); - } - -#ifdef USE_WORKER - list_for_each(el, &ts->port_list) { - JSWorkerMessageHandler *port = list_entry(el, JSWorkerMessageHandler, link); - nfds += !JS_IsNull(port->on_message_func); - } -#endif // USE_WORKER - - pfd = pfds = pfds_local; - if (nfds > (int)countof(pfds_local)) { - pfd = pfds = js_malloc(ctx, nfds * sizeof(*pfd)); - if (!pfd) - return -1; - } - - list_for_each(el, &ts->os_rw_handlers) { - rh = list_entry(el, JSOSRWHandler, link); - r = POLLIN * !JS_IsNull(rh->rw_func[0]); - w = POLLOUT * !JS_IsNull(rh->rw_func[1]); - if (r || w) - *pfd++ = (struct pollfd){rh->fd, r|w, 0}; - } - -#ifdef USE_WORKER - list_for_each(el, &ts->port_list) { - JSWorkerMessageHandler *port = list_entry(el, JSWorkerMessageHandler, link); - if (!JS_IsNull(port->on_message_func)) { - JSWorkerMessagePipe *ps = port->recv_pipe; - *pfd++ = (struct pollfd){ps->waker.read_fd, POLLIN, 0}; - } - } -#endif // USE_WORKER - - // FIXME(bnoordhuis) the loop below is quadratic in theory but - // linear-ish in practice because we bail out on the first hit, - // i.e., it's probably good enough for now - ret = 0; - nfds = poll(pfds, nfds, min_delay); - for (pfd = pfds; nfds-- > 0; pfd++) { - rh = find_rh(ts, pfd->fd); - if (rh) { - r = (POLLERR|POLLHUP|POLLNVAL|POLLIN) * !JS_IsNull(rh->rw_func[0]); - w = (POLLERR|POLLHUP|POLLNVAL|POLLOUT) * !JS_IsNull(rh->rw_func[1]); - if (r & pfd->revents) { - ret = call_handler(ctx, rh->rw_func[0]); - goto done; - /* must stop because the list may have been modified */ - } - if (w & pfd->revents) { - ret = call_handler(ctx, rh->rw_func[1]); - goto done; - /* must stop because the list may have been modified */ - } - } else { -#ifdef USE_WORKER - list_for_each(el, &ts->port_list) { - JSWorkerMessageHandler *port = list_entry(el, JSWorkerMessageHandler, link); - if (!JS_IsNull(port->on_message_func)) { - JSWorkerMessagePipe *ps = port->recv_pipe; - if (pfd->fd == ps->waker.read_fd) { - if (handle_posted_message(rt, ctx, port)) - goto done; - } - } - } -#endif // USE_WORKER - } - } -done: - if (pfds != pfds_local) - js_free(ctx, pfds); - return ret; -} -#endif // defined(_WIN32) - - -static JSValue make_obj_error(JSContext *ctx, - JSValue obj, - int err) -{ - JSValue arr; - if (JS_IsException(obj)) - return obj; - arr = JS_NewArray(ctx); - if (JS_IsException(arr)) - return JS_EXCEPTION; - JS_DefinePropertyValueUint32(ctx, arr, 0, obj, - JS_PROP_C_W_E); - JS_DefinePropertyValueUint32(ctx, arr, 1, JS_NewInt32(ctx, err), - JS_PROP_C_W_E); - return arr; -} - -static JSValue make_string_error(JSContext *ctx, - const char *buf, - int err) -{ - return make_obj_error(ctx, JS_NewString(ctx, buf), err); -} - -/* return [cwd, errorcode] */ -static JSValue js_os_getcwd(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - char buf[JS__PATH_MAX]; - int err; - - if (!getcwd(buf, sizeof(buf))) { - buf[0] = '\0'; - err = errno; - } else { - err = 0; - } - return make_string_error(ctx, buf, err); -} - -static JSValue js_os_chdir(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *target; - int err; - - target = JS_ToCString(ctx, argv[0]); - if (!target) - return JS_EXCEPTION; - err = js_get_errno(chdir(target)); - JS_FreeCString(ctx, target); - return JS_NewInt32(ctx, err); -} - -static JSValue js_os_mkdir(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int mode, ret; - const char *path; - - if (argc >= 2) { - if (JS_ToInt32(ctx, &mode, argv[1])) - return JS_EXCEPTION; - } else { - mode = 0777; - } - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; -#if defined(_WIN32) - (void)mode; - ret = js_get_errno(mkdir(path)); -#else - ret = js_get_errno(mkdir(path, mode)); -#endif - JS_FreeCString(ctx, path); - return JS_NewInt32(ctx, ret); -} - -/* return [array, errorcode] */ -static JSValue js_os_readdir(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ -#ifdef _WIN32 - const char *path; - JSValue obj; - int err; - uint32_t len; - HANDLE h; - WIN32_FIND_DATAA d; - char s[1024]; - - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) { - JS_FreeCString(ctx, path); - return JS_EXCEPTION; - } - snprintf(s, sizeof(s), "%s/*", path); - JS_FreeCString(ctx, path); - err = 0; - h = FindFirstFileA(s, &d); - if (h == INVALID_HANDLE_VALUE) - err = GetLastError(); - if (err) - goto done; - JS_DefinePropertyValueUint32(ctx, obj, 0, JS_NewString(ctx, "."), - JS_PROP_C_W_E); - for (len = 1; FindNextFileA(h, &d); len++) { - JS_DefinePropertyValueUint32(ctx, obj, len, - JS_NewString(ctx, d.cFileName), - JS_PROP_C_W_E); - } - FindClose(h); -done: - return make_obj_error(ctx, obj, err); -#else - const char *path; - DIR *f; - struct dirent *d; - JSValue obj; - int err; - uint32_t len; - - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) { - JS_FreeCString(ctx, path); - return JS_EXCEPTION; - } - f = opendir(path); - if (!f) - err = errno; - else - err = 0; - JS_FreeCString(ctx, path); - if (!f) - goto done; - len = 0; - for(;;) { - errno = 0; - d = readdir(f); - if (!d) { - err = errno; - break; - } - JS_DefinePropertyValueUint32(ctx, obj, len++, - JS_NewString(ctx, d->d_name), - JS_PROP_C_W_E); - } - closedir(f); - done: - return make_obj_error(ctx, obj, err); -#endif -} - -#if !defined(_WIN32) -static int64_t timespec_to_ms(const struct timespec *tv) -{ - return (int64_t)tv->tv_sec * 1000 + (tv->tv_nsec / 1000000); -} -#endif - -/* return [obj, errcode] */ -static JSValue js_os_stat(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int is_lstat) -{ - const char *path; - int err, res; - struct stat st; - JSValue obj; - - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; -#if defined(_WIN32) - res = stat(path, &st); -#else - if (is_lstat) - res = lstat(path, &st); - else - res = stat(path, &st); -#endif - err = (res < 0) ? errno : 0; - JS_FreeCString(ctx, path); - if (res < 0) { - obj = JS_NULL; - } else { - obj = JS_NewObject(ctx); - if (JS_IsException(obj)) - return JS_EXCEPTION; - JS_DefinePropertyValueStr(ctx, obj, "dev", - JS_NewInt64(ctx, st.st_dev), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "ino", - JS_NewInt64(ctx, st.st_ino), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "mode", - JS_NewInt32(ctx, st.st_mode), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "nlink", - JS_NewInt64(ctx, st.st_nlink), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "uid", - JS_NewInt64(ctx, st.st_uid), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "gid", - JS_NewInt64(ctx, st.st_gid), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "rdev", - JS_NewInt64(ctx, st.st_rdev), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "size", - JS_NewInt64(ctx, st.st_size), - JS_PROP_C_W_E); -#if !defined(_WIN32) - JS_DefinePropertyValueStr(ctx, obj, "blocks", - JS_NewInt64(ctx, st.st_blocks), - JS_PROP_C_W_E); -#endif -#if defined(_WIN32) - JS_DefinePropertyValueStr(ctx, obj, "atime", - JS_NewInt64(ctx, (int64_t)st.st_atime * 1000), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "mtime", - JS_NewInt64(ctx, (int64_t)st.st_mtime * 1000), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "ctime", - JS_NewInt64(ctx, (int64_t)st.st_ctime * 1000), - JS_PROP_C_W_E); -#elif defined(__APPLE__) - JS_DefinePropertyValueStr(ctx, obj, "atime", - JS_NewInt64(ctx, timespec_to_ms(&st.st_atimespec)), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "mtime", - JS_NewInt64(ctx, timespec_to_ms(&st.st_mtimespec)), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "ctime", - JS_NewInt64(ctx, timespec_to_ms(&st.st_ctimespec)), - JS_PROP_C_W_E); -#else - JS_DefinePropertyValueStr(ctx, obj, "atime", - JS_NewInt64(ctx, timespec_to_ms(&st.st_atim)), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "mtime", - JS_NewInt64(ctx, timespec_to_ms(&st.st_mtim)), - JS_PROP_C_W_E); - JS_DefinePropertyValueStr(ctx, obj, "ctime", - JS_NewInt64(ctx, timespec_to_ms(&st.st_ctim)), - JS_PROP_C_W_E); -#endif - } - return make_obj_error(ctx, obj, err); -} - -#if !defined(_WIN32) -static void ms_to_timeval(struct timeval *tv, uint64_t v) -{ - tv->tv_sec = v / 1000; - tv->tv_usec = (v % 1000) * 1000; -} -#endif - -static JSValue js_os_utimes(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *path; - int64_t atime, mtime; - int ret; - - if (JS_ToInt64(ctx, &atime, argv[1])) - return JS_EXCEPTION; - if (JS_ToInt64(ctx, &mtime, argv[2])) - return JS_EXCEPTION; - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; -#if defined(_WIN32) - { - struct _utimbuf times; - times.actime = atime / 1000; - times.modtime = mtime / 1000; - ret = js_get_errno(_utime(path, ×)); - } -#else - { - struct timeval times[2]; - ms_to_timeval(×[0], atime); - ms_to_timeval(×[1], mtime); - ret = js_get_errno(utimes(path, times)); - } -#endif - JS_FreeCString(ctx, path); - return JS_NewInt32(ctx, ret); -} - -/* sleep(delay_ms) */ -static JSValue js_os_sleep(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int64_t delay; - int ret; - - if (JS_ToInt64(ctx, &delay, argv[0])) - return JS_EXCEPTION; - if (delay < 0) - delay = 0; -#if defined(_WIN32) - { - if (delay > INT32_MAX) - delay = INT32_MAX; - Sleep(delay); - ret = 0; - } -#else - { - struct timespec ts; - - ts.tv_sec = delay / 1000; - ts.tv_nsec = (delay % 1000) * 1000000; - ret = js_get_errno(nanosleep(&ts, NULL)); - } -#endif - return JS_NewInt32(ctx, ret); -} - -#if defined(_WIN32) -static char *realpath(const char *path, char *buf) -{ - if (!_fullpath(buf, path, JS__PATH_MAX)) { - errno = ENOENT; - return NULL; - } else { - return buf; - } -} -#endif - -#if !defined(__wasi__) -/* return [path, errorcode] */ -static JSValue js_os_realpath(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *path; - char buf[JS__PATH_MAX], *res; - int err; - - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; - res = realpath(path, buf); - JS_FreeCString(ctx, path); - if (!res) { - buf[0] = '\0'; - err = errno; - } else { - err = 0; - } - return make_string_error(ctx, buf, err); -} -#endif - -#if !defined(_WIN32) && !defined(__wasi__) && !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH)) -static JSValue js_os_symlink(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *target, *linkpath; - int err; - - target = JS_ToCString(ctx, argv[0]); - if (!target) - return JS_EXCEPTION; - linkpath = JS_ToCString(ctx, argv[1]); - if (!linkpath) { - JS_FreeCString(ctx, target); - return JS_EXCEPTION; - } - err = js_get_errno(symlink(target, linkpath)); - JS_FreeCString(ctx, target); - JS_FreeCString(ctx, linkpath); - return JS_NewInt32(ctx, err); -} - -/* return [path, errorcode] */ -static JSValue js_os_readlink(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - const char *path; - char buf[JS__PATH_MAX]; - int err; - ssize_t res; - - path = JS_ToCString(ctx, argv[0]); - if (!path) - return JS_EXCEPTION; - res = readlink(path, buf, sizeof(buf) - 1); - if (res < 0) { - buf[0] = '\0'; - err = errno; - } else { - buf[res] = '\0'; - err = 0; - } - JS_FreeCString(ctx, path); - return make_string_error(ctx, buf, err); -} - -static char **build_envp(JSContext *ctx, JSValue obj) -{ - uint32_t len, i; - JSPropertyEnum *tab; - char **envp, *pair; - const char *key, *str; - JSValue val; - size_t key_len, str_len; - - if (JS_GetOwnPropertyNames(ctx, &tab, &len, obj, - JS_GPN_STRING_MASK | JS_GPN_ENUM_ONLY) < 0) - return NULL; - envp = js_mallocz(ctx, sizeof(envp[0]) * ((size_t)len + 1)); - if (!envp) - goto fail; - for(i = 0; i < len; i++) { - val = JS_GetProperty(ctx, obj, tab[i].atom); - if (JS_IsException(val)) - goto fail; - str = JS_ToCString(ctx, val); - JS_FreeValue(ctx, val); - if (!str) - goto fail; - key = JS_AtomToCString(ctx, tab[i].atom); - if (!key) { - JS_FreeCString(ctx, str); - goto fail; - } - key_len = strlen(key); - str_len = strlen(str); - pair = js_malloc(ctx, key_len + str_len + 2); - if (!pair) { - JS_FreeCString(ctx, key); - JS_FreeCString(ctx, str); - goto fail; - } - memcpy(pair, key, key_len); - pair[key_len] = '='; - memcpy(pair + key_len + 1, str, str_len); - pair[key_len + 1 + str_len] = '\0'; - envp[i] = pair; - JS_FreeCString(ctx, key); - JS_FreeCString(ctx, str); - } - done: - for(i = 0; i < len; i++) - JS_FreeAtom(ctx, tab[i].atom); - js_free(ctx, tab); - return envp; - fail: - if (envp) { - for(i = 0; i < len; i++) - js_free(ctx, envp[i]); - js_free(ctx, envp); - envp = NULL; - } - goto done; -} - -/* execvpe is not available on non GNU systems */ -static int my_execvpe(const char *filename, char **argv, char **envp) -{ - char *path, *p, *p_next, *p1; - char buf[JS__PATH_MAX]; - size_t filename_len, path_len; - bool eacces_error; - - filename_len = strlen(filename); - if (filename_len == 0) { - errno = ENOENT; - return -1; - } - if (strchr(filename, '/')) - return execve(filename, argv, envp); - - path = getenv("PATH"); - if (!path) - path = (char *)"/bin:/usr/bin"; - eacces_error = false; - p = path; - for(p = path; p != NULL; p = p_next) { - p1 = strchr(p, ':'); - if (!p1) { - p_next = NULL; - path_len = strlen(p); - } else { - p_next = p1 + 1; - path_len = p1 - p; - } - /* path too long */ - if ((path_len + 1 + filename_len + 1) > JS__PATH_MAX) - continue; - memcpy(buf, p, path_len); - buf[path_len] = '/'; - memcpy(buf + path_len + 1, filename, filename_len); - buf[path_len + 1 + filename_len] = '\0'; - - execve(buf, argv, envp); - - switch(errno) { - case EACCES: - eacces_error = true; - break; - case ENOENT: - case ENOTDIR: - break; - default: - return -1; - } - } - if (eacces_error) - errno = EACCES; - return -1; -} - -static void (*js_os_exec_closefrom)(int); - -#if !defined(EMSCRIPTEN) && !defined(__wasi__) - -static js_once_t js_os_exec_once = JS_ONCE_INIT; - -static void js_os_exec_once_init(void) -{ - *(void **) (&js_os_exec_closefrom) = dlsym(RTLD_DEFAULT, "closefrom"); -} - -#endif - -/* exec(args[, options]) -> exitcode */ -static JSValue js_os_exec(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSValueConst options, args = argv[0]; - JSValue val, ret_val; - const char **exec_argv, *file = NULL, *str, *cwd = NULL; - char **envp = environ; - uint32_t exec_argc, i; - int ret, pid, status; - bool block_flag = true, use_path = true; - static const char *std_name[3] = { "stdin", "stdout", "stderr" }; - int std_fds[3]; - uint32_t uid = -1, gid = -1; - int ngroups = -1; - gid_t groups[64]; - - val = JS_GetPropertyStr(ctx, args, "length"); - if (JS_IsException(val)) - return JS_EXCEPTION; - ret = JS_ToUint32(ctx, &exec_argc, val); - JS_FreeValue(ctx, val); - if (ret) - return JS_EXCEPTION; - /* arbitrary limit to avoid overflow */ - if (exec_argc < 1 || exec_argc > 65535) { - return JS_ThrowTypeError(ctx, "invalid number of arguments"); - } - exec_argv = js_mallocz(ctx, sizeof(exec_argv[0]) * (exec_argc + 1)); - if (!exec_argv) - return JS_EXCEPTION; - for(i = 0; i < exec_argc; i++) { - val = JS_GetPropertyUint32(ctx, args, i); - if (JS_IsException(val)) - goto exception; - str = JS_ToCString(ctx, val); - JS_FreeValue(ctx, val); - if (!str) - goto exception; - exec_argv[i] = str; - } - exec_argv[exec_argc] = NULL; - - for(i = 0; i < 3; i++) - std_fds[i] = i; - - /* get the options, if any */ - if (argc >= 2) { - options = argv[1]; - - if (get_bool_option(ctx, &block_flag, options, "block")) - goto exception; - if (get_bool_option(ctx, &use_path, options, "usePath")) - goto exception; - - val = JS_GetPropertyStr(ctx, options, "file"); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - file = JS_ToCString(ctx, val); - JS_FreeValue(ctx, val); - if (!file) - goto exception; - } - - val = JS_GetPropertyStr(ctx, options, "cwd"); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - cwd = JS_ToCString(ctx, val); - JS_FreeValue(ctx, val); - if (!cwd) - goto exception; - } - - /* stdin/stdout/stderr handles */ - for(i = 0; i < 3; i++) { - val = JS_GetPropertyStr(ctx, options, std_name[i]); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - int fd; - ret = JS_ToInt32(ctx, &fd, val); - JS_FreeValue(ctx, val); - if (ret) - goto exception; - std_fds[i] = fd; - } - } - - val = JS_GetPropertyStr(ctx, options, "env"); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - envp = build_envp(ctx, val); - JS_FreeValue(ctx, val); - if (!envp) - goto exception; - } - - val = JS_GetPropertyStr(ctx, options, "uid"); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - ret = JS_ToUint32(ctx, &uid, val); - JS_FreeValue(ctx, val); - if (ret) - goto exception; - } - - val = JS_GetPropertyStr(ctx, options, "gid"); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - ret = JS_ToUint32(ctx, &gid, val); - JS_FreeValue(ctx, val); - if (ret) - goto exception; - } - - val = JS_GetPropertyStr(ctx, options, "groups"); - if (JS_IsException(val)) - goto exception; - if (!JS_IsUndefined(val)) { - int64_t idx, len; - JSValue prop; - uint32_t id; - ngroups = 0; - if (JS_GetLength(ctx, val, &len)) { - JS_FreeValue(ctx, val); - goto exception; - } - for (idx = 0; idx < len; idx++) { - prop = JS_GetPropertyInt64(ctx, val, idx); - if (JS_IsException(prop)) - break; - if (JS_IsUndefined(prop)) - continue; - ret = JS_ToUint32(ctx, &id, prop); - JS_FreeValue(ctx, prop); - if (ret) - break; - if (ngroups == countof(groups)) { - JS_ThrowRangeError(ctx, "too many groups"); - break; - } - groups[ngroups++] = id; - } - JS_FreeValue(ctx, val); - if (idx < len) - goto exception; - } - - } - -#if !defined(EMSCRIPTEN) && !defined(__wasi__) - // should happen pre-fork because it calls dlsym() - // and that's not an async-signal-safe function - js_once(&js_os_exec_once, js_os_exec_once_init); -#endif - - pid = fork(); - if (pid < 0) { - JS_ThrowTypeError(ctx, "fork error"); - goto exception; - } - if (pid == 0) { - /* child */ - /* remap the stdin/stdout/stderr handles if necessary */ - for(i = 0; i < 3; i++) { - if (std_fds[i] != i) { - if (dup2(std_fds[i], i) < 0) - _exit(127); - } - } - - if (js_os_exec_closefrom) { - js_os_exec_closefrom(3); - } else { - int fd_max = sysconf(_SC_OPEN_MAX); - for(i = 3; i < fd_max; i++) - close(i); - } - - if (cwd) { - if (chdir(cwd) < 0) - _exit(127); - } - if (ngroups != -1) { - if (setgroups(ngroups, groups) < 0) - _exit(127); - } - if (uid != -1) { - if (setuid(uid) < 0) - _exit(127); - } - if (gid != -1) { - if (setgid(gid) < 0) - _exit(127); - } - - if (!file) - file = exec_argv[0]; - if (use_path) - ret = my_execvpe(file, (char **)exec_argv, envp); - else - ret = execve(file, (char **)exec_argv, envp); - _exit(127); - } - /* parent */ - if (block_flag) { - for(;;) { - ret = waitpid(pid, &status, 0); - if (ret == pid) { - if (WIFEXITED(status)) { - ret = WEXITSTATUS(status); - break; - } else if (WIFSIGNALED(status)) { - ret = -WTERMSIG(status); - break; - } - } - } - } else { - ret = pid; - } - ret_val = JS_NewInt32(ctx, ret); - done: - JS_FreeCString(ctx, file); - JS_FreeCString(ctx, cwd); - for(i = 0; i < exec_argc; i++) - JS_FreeCString(ctx, exec_argv[i]); - js_free(ctx, exec_argv); - if (envp != environ) { - char **p; - p = envp; - while (*p != NULL) { - js_free(ctx, *p); - p++; - } - js_free(ctx, envp); - } - return ret_val; - exception: - ret_val = JS_EXCEPTION; - goto done; -} - -/* getpid() -> pid */ -static JSValue js_os_getpid(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - return JS_NewInt32(ctx, getpid()); -} - -/* waitpid(pid, block) -> [pid, status] */ -static JSValue js_os_waitpid(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int pid, status, options, ret; - JSValue obj; - - if (JS_ToInt32(ctx, &pid, argv[0])) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &options, argv[1])) - return JS_EXCEPTION; - - ret = waitpid(pid, &status, options); - if (ret < 0) { - ret = -errno; - status = 0; - } - - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) - return obj; - JS_DefinePropertyValueUint32(ctx, obj, 0, JS_NewInt32(ctx, ret), - JS_PROP_C_W_E); - JS_DefinePropertyValueUint32(ctx, obj, 1, JS_NewInt32(ctx, status), - JS_PROP_C_W_E); - return obj; -} - -/* pipe() -> [read_fd, write_fd] or null if error */ -static JSValue js_os_pipe(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int pipe_fds[2], ret; - JSValue obj; - - ret = pipe(pipe_fds); - if (ret < 0) - return JS_NULL; - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) - return obj; - JS_DefinePropertyValueUint32(ctx, obj, 0, JS_NewInt32(ctx, pipe_fds[0]), - JS_PROP_C_W_E); - JS_DefinePropertyValueUint32(ctx, obj, 1, JS_NewInt32(ctx, pipe_fds[1]), - JS_PROP_C_W_E); - return obj; -} - -/* kill(pid, sig) */ -static JSValue js_os_kill(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int pid, sig, ret; - - if (JS_ToInt32(ctx, &pid, argv[0])) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &sig, argv[1])) - return JS_EXCEPTION; - ret = js_get_errno(kill(pid, sig)); - return JS_NewInt32(ctx, ret); -} - -/* dup(fd) */ -static JSValue js_os_dup(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd, ret; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - ret = js_get_errno(dup(fd)); - return JS_NewInt32(ctx, ret); -} - -/* dup2(fd) */ -static JSValue js_os_dup2(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - int fd, fd2, ret; - - if (JS_ToInt32(ctx, &fd, argv[0])) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &fd2, argv[1])) - return JS_EXCEPTION; - ret = js_get_errno(dup2(fd, fd2)); - return JS_NewInt32(ctx, ret); -} - -#endif /* !_WIN32 */ - -#ifdef USE_WORKER - -/* Worker */ - -typedef struct { - JSWorkerMessagePipe *recv_pipe; - JSWorkerMessagePipe *send_pipe; - JSWorkerMessageHandler *msg_handler; -} JSWorkerData; - -typedef struct { - char *filename; /* module filename */ - char *basename; /* module base name */ - JSWorkerMessagePipe *recv_pipe, *send_pipe; -} WorkerFuncArgs; - -typedef struct { - int ref_count; - uint64_t buf[]; -} JSSABHeader; - -static JSContext *(*js_worker_new_context_func)(JSRuntime *rt); - -static int atomic_add_int(int *ptr, int v) -{ - return atomic_fetch_add((_Atomic uint32_t*)ptr, v) + v; -} - -/* shared array buffer allocator */ -static void *js_sab_alloc(void *opaque, size_t size) -{ - JSSABHeader *sab; - sab = malloc(sizeof(JSSABHeader) + size); - if (!sab) - return NULL; - sab->ref_count = 1; - return sab->buf; -} - -static void js_sab_free(void *opaque, void *ptr) -{ - JSSABHeader *sab; - int ref_count; - sab = (JSSABHeader *)((uint8_t *)ptr - sizeof(JSSABHeader)); - ref_count = atomic_add_int(&sab->ref_count, -1); - assert(ref_count >= 0); - if (ref_count == 0) { - free(sab); - } -} - -static void js_sab_dup(void *opaque, void *ptr) -{ - JSSABHeader *sab; - sab = (JSSABHeader *)((uint8_t *)ptr - sizeof(JSSABHeader)); - atomic_add_int(&sab->ref_count, 1); -} - -static JSWorkerMessagePipe *js_new_message_pipe(void) -{ - JSWorkerMessagePipe *ps; - - ps = malloc(sizeof(*ps)); - if (!ps) - return NULL; - if (js_waker_init(&ps->waker)) { - free(ps); - return NULL; - } - ps->ref_count = 1; - init_list_head(&ps->msg_queue); - js_mutex_init(&ps->mutex); - return ps; -} - -static JSWorkerMessagePipe *js_dup_message_pipe(JSWorkerMessagePipe *ps) -{ - atomic_add_int(&ps->ref_count, 1); - return ps; -} - -static void js_free_message(JSWorkerMessage *msg) -{ - size_t i; - /* free the SAB */ - for(i = 0; i < msg->sab_tab_len; i++) { - js_sab_free(NULL, msg->sab_tab[i]); - } - free(msg->sab_tab); - free(msg->data); - free(msg); -} - -static void js_free_message_pipe(JSWorkerMessagePipe *ps) -{ - struct list_head *el, *el1; - JSWorkerMessage *msg; - int ref_count; - - if (!ps) - return; - - ref_count = atomic_add_int(&ps->ref_count, -1); - assert(ref_count >= 0); - if (ref_count == 0) { - list_for_each_safe(el, el1, &ps->msg_queue) { - msg = list_entry(el, JSWorkerMessage, link); - js_free_message(msg); - } - js_mutex_destroy(&ps->mutex); - js_waker_close(&ps->waker); - free(ps); - } -} - -static void js_free_port(JSRuntime *rt, JSWorkerMessageHandler *port) -{ - if (port) { - js_free_message_pipe(port->recv_pipe); - JS_FreeValueRT(rt, port->on_message_func); - list_del(&port->link); - js_free_rt(rt, port); - } -} - -static void js_worker_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSThreadState *ts = js_get_thread_state(rt); - JSWorkerData *worker = JS_GetOpaque(val, ts->worker_class_id); - if (worker) { - js_free_message_pipe(worker->recv_pipe); - js_free_message_pipe(worker->send_pipe); - js_free_port(rt, worker->msg_handler); - js_free_rt(rt, worker); - } -} - -static JSClassDef js_worker_class = { - "Worker", - .finalizer = js_worker_finalizer, -}; - -static void worker_func(void *opaque) -{ - WorkerFuncArgs *args = opaque; - JSRuntime *rt; - JSThreadState *ts; - JSContext *ctx; - JSValue val; - - rt = JS_NewRuntime(); - if (rt == NULL) { - fprintf(stderr, "JS_NewRuntime failure"); - exit(1); - } - js_std_init_handlers(rt); - - JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL); - - /* set the pipe to communicate with the parent */ - ts = js_get_thread_state(rt); - ts->recv_pipe = args->recv_pipe; - ts->send_pipe = args->send_pipe; - - /* function pointer to avoid linking the whole JS_NewContext() if - not needed */ - ctx = js_worker_new_context_func(rt); - if (ctx == NULL) { - fprintf(stderr, "JS_NewContext failure"); - } - - JS_SetCanBlock(rt, true); - - js_std_add_helpers(ctx, -1, NULL); - - val = JS_LoadModule(ctx, args->basename, args->filename); - free(args->filename); - free(args->basename); - free(args); - val = js_std_await(ctx, val); - if (JS_IsException(val)) - js_std_dump_error(ctx); - JS_FreeValue(ctx, val); - - js_std_loop(ctx); - - js_std_free_handlers(rt); - JS_FreeContext(ctx); - JS_FreeRuntime(rt); -} - -static JSValue js_worker_ctor_internal(JSContext *ctx, JSValueConst new_target, - JSWorkerMessagePipe *recv_pipe, - JSWorkerMessagePipe *send_pipe) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSValue obj = JS_UNDEFINED, proto; - JSWorkerData *s; - - /* create the object */ - if (JS_IsUndefined(new_target)) { - proto = JS_GetClassProto(ctx, ts->worker_class_id); - } else { - proto = JS_GetPropertyStr(ctx, new_target, "prototype"); - if (JS_IsException(proto)) - goto fail; - } - obj = JS_NewObjectProtoClass(ctx, proto, ts->worker_class_id); - JS_FreeValue(ctx, proto); - if (JS_IsException(obj)) - goto fail; - s = js_mallocz(ctx, sizeof(*s)); - if (!s) - goto fail; - s->recv_pipe = js_dup_message_pipe(recv_pipe); - s->send_pipe = js_dup_message_pipe(send_pipe); - - JS_SetOpaque(obj, s); - return obj; - fail: - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; -} - -static JSValue js_worker_ctor(JSContext *ctx, JSValueConst new_target, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - WorkerFuncArgs *args = NULL; - js_thread_t thr; - JSValue obj = JS_UNDEFINED; - int ret; - const char *filename = NULL, *basename; - JSAtom basename_atom; - - /* XXX: in order to avoid problems with resource liberation, we - don't support creating workers inside workers */ - if (!is_main_thread(rt)) - return JS_ThrowTypeError(ctx, "cannot create a worker inside a worker"); - - /* base name, assuming the calling function is a normal JS - function */ - basename_atom = JS_GetScriptOrModuleName(ctx, 1); - if (basename_atom == JS_ATOM_NULL) { - return JS_ThrowTypeError(ctx, "could not determine calling script or module name"); - } - basename = JS_AtomToCString(ctx, basename_atom); - JS_FreeAtom(ctx, basename_atom); - if (!basename) - goto fail; - - /* module name */ - filename = JS_ToCString(ctx, argv[0]); - if (!filename) - goto fail; - - args = malloc(sizeof(*args)); - if (!args) - goto oom_fail; - memset(args, 0, sizeof(*args)); - args->filename = strdup(filename); - args->basename = strdup(basename); - - /* ports */ - args->recv_pipe = js_new_message_pipe(); - if (!args->recv_pipe) - goto oom_fail; - args->send_pipe = js_new_message_pipe(); - if (!args->send_pipe) - goto oom_fail; - - obj = js_worker_ctor_internal(ctx, new_target, - args->send_pipe, args->recv_pipe); - if (JS_IsException(obj)) - goto fail; - - ret = js_thread_create(&thr, worker_func, args, JS_THREAD_CREATE_DETACHED); - if (ret != 0) { - JS_ThrowTypeError(ctx, "could not create worker"); - goto fail; - } - JS_FreeCString(ctx, basename); - JS_FreeCString(ctx, filename); - return obj; - oom_fail: - JS_ThrowOutOfMemory(ctx); - fail: - JS_FreeCString(ctx, basename); - JS_FreeCString(ctx, filename); - if (args) { - free(args->filename); - free(args->basename); - js_free_message_pipe(args->recv_pipe); - js_free_message_pipe(args->send_pipe); - free(args); - } - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; -} - -static JSValue js_worker_postMessage(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSWorkerData *worker = JS_GetOpaque2(ctx, this_val, ts->worker_class_id); - JSWorkerMessagePipe *ps; - size_t data_len, i; - uint8_t *data; - JSWorkerMessage *msg; - JSSABTab sab_tab; - - if (!worker) - return JS_EXCEPTION; - - data = JS_WriteObject2(ctx, &data_len, argv[0], - JS_WRITE_OBJ_SAB | JS_WRITE_OBJ_REFERENCE, - &sab_tab); - if (!data) - return JS_EXCEPTION; - - msg = malloc(sizeof(*msg)); - if (!msg) - goto fail; - msg->data = NULL; - msg->sab_tab = NULL; - - /* must reallocate because the allocator may be different */ - msg->data = malloc(data_len); - if (!msg->data) - goto fail; - memcpy(msg->data, data, data_len); - msg->data_len = data_len; - - if (sab_tab.len > 0) { - msg->sab_tab = malloc(sizeof(msg->sab_tab[0]) * sab_tab.len); - if (!msg->sab_tab) - goto fail; - memcpy(msg->sab_tab, sab_tab.tab, sizeof(msg->sab_tab[0]) * sab_tab.len); - } - msg->sab_tab_len = sab_tab.len; - - js_free(ctx, data); - js_free(ctx, sab_tab.tab); - - /* increment the SAB reference counts */ - for(i = 0; i < msg->sab_tab_len; i++) { - js_sab_dup(NULL, msg->sab_tab[i]); - } - - ps = worker->send_pipe; - js_mutex_lock(&ps->mutex); - /* indicate that data is present */ - if (list_empty(&ps->msg_queue)) - js_waker_signal(&ps->waker); - list_add_tail(&msg->link, &ps->msg_queue); - js_mutex_unlock(&ps->mutex); - return JS_UNDEFINED; - fail: - if (msg) { - free(msg->data); - free(msg->sab_tab); - free(msg); - } - js_free(ctx, data); - js_free(ctx, sab_tab.tab); - return JS_EXCEPTION; - -} - -static JSValue js_worker_set_onmessage(JSContext *ctx, JSValueConst this_val, - JSValueConst func) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSWorkerData *worker = JS_GetOpaque2(ctx, this_val, ts->worker_class_id); - JSWorkerMessageHandler *port; - - if (!worker) - return JS_EXCEPTION; - - port = worker->msg_handler; - if (JS_IsNull(func)) { - if (port) { - js_free_port(rt, port); - worker->msg_handler = NULL; - } - } else { - if (!JS_IsFunction(ctx, func)) - return JS_ThrowTypeError(ctx, "not a function"); - if (!port) { - port = js_mallocz(ctx, sizeof(*port)); - if (!port) - return JS_EXCEPTION; - port->recv_pipe = js_dup_message_pipe(worker->recv_pipe); - port->on_message_func = JS_NULL; - list_add_tail(&port->link, &ts->port_list); - worker->msg_handler = port; - } - JS_FreeValue(ctx, port->on_message_func); - port->on_message_func = JS_DupValue(ctx, func); - } - return JS_UNDEFINED; -} - -static JSValue js_worker_get_onmessage(JSContext *ctx, JSValueConst this_val) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSWorkerData *worker = JS_GetOpaque2(ctx, this_val, ts->worker_class_id); - JSWorkerMessageHandler *port; - if (!worker) - return JS_EXCEPTION; - port = worker->msg_handler; - if (port) { - return JS_DupValue(ctx, port->on_message_func); - } else { - return JS_NULL; - } -} - -static const JSCFunctionListEntry js_worker_proto_funcs[] = { - JS_CFUNC_DEF("postMessage", 1, js_worker_postMessage ), - JS_CGETSET_DEF("onmessage", js_worker_get_onmessage, js_worker_set_onmessage ), -}; - -#endif /* USE_WORKER */ - -void js_std_set_worker_new_context_func(JSContext *(*func)(JSRuntime *rt)) -{ -#ifdef USE_WORKER - js_worker_new_context_func = func; -#endif -} - -#if defined(_WIN32) -#define OS_PLATFORM "win32" -#elif defined(__APPLE__) -#define OS_PLATFORM "darwin" -#elif defined(EMSCRIPTEN) -#define OS_PLATFORM "js" -#elif defined(__CYGWIN__) -#define OS_PLATFORM "cygwin" -#elif defined(__linux__) -#define OS_PLATFORM "linux" -#elif defined(__OpenBSD__) -#define OS_PLATFORM "openbsd" -#elif defined(__NetBSD__) -#define OS_PLATFORM "netbsd" -#elif defined(__FreeBSD__) -#define OS_PLATFORM "freebsd" -#elif defined(__wasi__) -#define OS_PLATFORM "wasi" -#elif defined(__GNU__) -#define OS_PLATFORM "hurd" -#else -#define OS_PLATFORM "unknown" -#endif - -#define OS_FLAG(x) JS_PROP_INT32_DEF(#x, x, JS_PROP_CONFIGURABLE ) - -static const JSCFunctionListEntry js_os_funcs[] = { - JS_CFUNC_DEF("open", 2, js_os_open ), - OS_FLAG(O_RDONLY), - OS_FLAG(O_WRONLY), - OS_FLAG(O_RDWR), - OS_FLAG(O_APPEND), - OS_FLAG(O_CREAT), - OS_FLAG(O_EXCL), - OS_FLAG(O_TRUNC), -#if defined(_WIN32) - OS_FLAG(O_BINARY), - OS_FLAG(O_TEXT), -#endif - JS_CFUNC_DEF("close", 1, js_os_close ), - JS_CFUNC_DEF("seek", 3, js_os_seek ), - JS_CFUNC_MAGIC_DEF("read", 4, js_os_read_write, 0 ), - JS_CFUNC_MAGIC_DEF("write", 4, js_os_read_write, 1 ), - JS_CFUNC_DEF("isatty", 1, js_os_isatty ), -#if !defined(__wasi__) - JS_CFUNC_DEF("ttyGetWinSize", 1, js_os_ttyGetWinSize ), - JS_CFUNC_DEF("ttySetRaw", 1, js_os_ttySetRaw ), -#endif - JS_CFUNC_DEF("remove", 1, js_os_remove ), - JS_CFUNC_DEF("rename", 2, js_os_rename ), - JS_CFUNC_MAGIC_DEF("setReadHandler", 2, js_os_setReadHandler, 0 ), - JS_CFUNC_MAGIC_DEF("setWriteHandler", 2, js_os_setReadHandler, 1 ), - JS_CFUNC_DEF("signal", 2, js_os_signal ), - OS_FLAG(SIGINT), - OS_FLAG(SIGABRT), - OS_FLAG(SIGFPE), - OS_FLAG(SIGILL), - OS_FLAG(SIGSEGV), - OS_FLAG(SIGTERM), -#if !defined(_WIN32) && !defined(__wasi__) - OS_FLAG(SIGQUIT), - OS_FLAG(SIGPIPE), - OS_FLAG(SIGALRM), - OS_FLAG(SIGUSR1), - OS_FLAG(SIGUSR2), - OS_FLAG(SIGCHLD), - OS_FLAG(SIGCONT), - OS_FLAG(SIGSTOP), - OS_FLAG(SIGTSTP), - OS_FLAG(SIGTTIN), - OS_FLAG(SIGTTOU), - JS_CFUNC_DEF("cputime", 0, js_os_cputime ), -#endif - JS_CFUNC_DEF("exePath", 0, js_os_exepath ), - JS_CFUNC_DEF("now", 0, js_os_now ), - JS_CFUNC_MAGIC_DEF("setTimeout", 2, js_os_setTimeout, 0 ), - JS_CFUNC_MAGIC_DEF("setInterval", 2, js_os_setTimeout, 1 ), - // per spec: both functions can cancel timeouts and intervals - JS_CFUNC_DEF("clearTimeout", 1, js_os_clearTimeout ), - JS_CFUNC_DEF("clearInterval", 1, js_os_clearTimeout ), - JS_CFUNC_DEF("sleepAsync", 1, js_os_sleepAsync ), - JS_PROP_STRING_DEF("platform", OS_PLATFORM, 0 ), - JS_CFUNC_DEF("getcwd", 0, js_os_getcwd ), - JS_CFUNC_DEF("chdir", 0, js_os_chdir ), - JS_CFUNC_DEF("mkdir", 1, js_os_mkdir ), - JS_CFUNC_DEF("readdir", 1, js_os_readdir ), - /* st_mode constants */ - OS_FLAG(S_IFMT), - OS_FLAG(S_IFIFO), - OS_FLAG(S_IFCHR), - OS_FLAG(S_IFDIR), - OS_FLAG(S_IFBLK), - OS_FLAG(S_IFREG), -#if !defined(_WIN32) - OS_FLAG(S_IFSOCK), - OS_FLAG(S_IFLNK), - OS_FLAG(S_ISGID), - OS_FLAG(S_ISUID), -#endif - JS_CFUNC_MAGIC_DEF("stat", 1, js_os_stat, 0 ), - JS_CFUNC_DEF("utimes", 3, js_os_utimes ), - JS_CFUNC_DEF("sleep", 1, js_os_sleep ), -#if !defined(__wasi__) - JS_CFUNC_DEF("realpath", 1, js_os_realpath ), -#endif -#if !defined(_WIN32) && !defined(__wasi__) && !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH)) - JS_CFUNC_MAGIC_DEF("lstat", 1, js_os_stat, 1 ), - JS_CFUNC_DEF("symlink", 2, js_os_symlink ), - JS_CFUNC_DEF("readlink", 1, js_os_readlink ), - JS_CFUNC_DEF("exec", 1, js_os_exec ), - JS_CFUNC_DEF("getpid", 0, js_os_getpid ), - JS_CFUNC_DEF("waitpid", 2, js_os_waitpid ), - OS_FLAG(WNOHANG), - JS_CFUNC_DEF("pipe", 0, js_os_pipe ), - JS_CFUNC_DEF("kill", 2, js_os_kill ), - JS_CFUNC_DEF("dup", 1, js_os_dup ), - JS_CFUNC_DEF("dup2", 2, js_os_dup2 ), -#endif -}; - -static int js_os_init(JSContext *ctx, JSModuleDef *m) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - - ts->can_js_os_poll = true; - -#ifdef USE_WORKER - { - JSValue proto, obj; - /* Worker class */ - JS_NewClassID(rt, &ts->worker_class_id); - JS_NewClass(rt, ts->worker_class_id, &js_worker_class); - proto = JS_NewObject(ctx); - JS_SetPropertyFunctionList(ctx, proto, js_worker_proto_funcs, countof(js_worker_proto_funcs)); - - obj = JS_NewCFunction2(ctx, js_worker_ctor, "Worker", 1, - JS_CFUNC_constructor, 0); - JS_SetConstructor(ctx, obj, proto); - - JS_SetClassProto(ctx, ts->worker_class_id, proto); - - /* set 'Worker.parent' if necessary */ - if (ts->recv_pipe && ts->send_pipe) { - JS_DefinePropertyValueStr(ctx, obj, "parent", - js_worker_ctor_internal(ctx, JS_UNDEFINED, ts->recv_pipe, ts->send_pipe), - JS_PROP_C_W_E); - } - - JS_SetModuleExport(ctx, m, "Worker", obj); - } -#endif /* USE_WORKER */ - - return JS_SetModuleExportList(ctx, m, js_os_funcs, countof(js_os_funcs)); -} - -JSModuleDef *js_init_module_os(JSContext *ctx, const char *module_name) -{ - JSModuleDef *m; - m = JS_NewCModule(ctx, module_name, js_os_init); - if (!m) - return NULL; - JS_AddModuleExportList(ctx, m, js_os_funcs, countof(js_os_funcs)); -#ifdef USE_WORKER - JS_AddModuleExport(ctx, m, "Worker"); -#endif - return m; -} - -/**********************************************************/ - -static JSValue js_print(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ -#ifdef _WIN32 - HANDLE handle; - DWORD mode; -#endif - const char *s; - JSValueConst v; - DynBuf b; - int i; - - dbuf_init(&b); - for(i = 0; i < argc; i++) { - v = argv[i]; - s = JS_ToCString(ctx, v); - if (!s && JS_IsObject(v)) { - JS_FreeValue(ctx, JS_GetException(ctx)); - JSValue t = JS_ToObjectString(ctx, v); - s = JS_ToCString(ctx, t); - JS_FreeValue(ctx, t); - } - if (s) { - dbuf_printf(&b, "%s%s", &" "[!i], s); - JS_FreeCString(ctx, s); - } else { - dbuf_printf(&b, "%s", &" "[!i]); - JS_FreeValue(ctx, JS_GetException(ctx)); - } - } - dbuf_putc(&b, '\n'); -#ifdef _WIN32 - // use WriteConsoleA with CP_UTF8 for better Unicode handling vis-a-vis - // the mangling that happens when going through msvcrt's stdio layer, - // *except* when stdout is redirected to something that is not a console - handle = (HANDLE)_get_osfhandle(/*STDOUT_FILENO*/1); // don't CloseHandle - if (GetFileType(handle) != FILE_TYPE_CHAR) - goto fallback; - if (!GetConsoleMode(handle, &mode)) - goto fallback; - handle = GetStdHandle(STD_OUTPUT_HANDLE); - if (handle == INVALID_HANDLE_VALUE) - goto fallback; - mode = GetConsoleOutputCP(); - SetConsoleOutputCP(CP_UTF8); - WriteConsoleA(handle, b.buf, b.size, NULL, NULL); - SetConsoleOutputCP(mode); - FlushFileBuffers(handle); - goto done; -fallback: -#endif - fwrite(b.buf, 1, b.size, stdout); - fflush(stdout); - goto done; // avoid unused label warning -done: - dbuf_free(&b); - return JS_UNDEFINED; -} - -void js_std_add_helpers(JSContext *ctx, int argc, char **argv) -{ - JSValue global_obj, console, args; - int i; - - /* XXX: should these global definitions be enumerable? */ - global_obj = JS_GetGlobalObject(ctx); - - console = JS_NewObject(ctx); - JS_SetPropertyStr(ctx, console, "log", - JS_NewCFunction(ctx, js_print, "log", 1)); - JS_SetPropertyStr(ctx, global_obj, "console", console); - - /* same methods as the mozilla JS shell */ - if (argc >= 0) { - args = JS_NewArray(ctx); - for(i = 0; i < argc; i++) { - JS_SetPropertyUint32(ctx, args, i, JS_NewString(ctx, argv[i])); - } - JS_SetPropertyStr(ctx, global_obj, "scriptArgs", args); - } - - JS_SetPropertyStr(ctx, global_obj, "print", - JS_NewCFunction(ctx, js_print, "print", 1)); - - JS_FreeValue(ctx, global_obj); -} - -static void js_std_finalize(JSRuntime *rt, void *arg) -{ - JSThreadState *ts = arg; - js_set_thread_state(rt, NULL); - js_free_rt(rt, ts); -} - -void js_std_init_handlers(JSRuntime *rt) -{ - JSThreadState *ts; - - ts = js_mallocz_rt(rt, sizeof(*ts)); - if (!ts) { - fprintf(stderr, "Could not allocate memory for the worker"); - exit(1); - } - init_list_head(&ts->os_rw_handlers); - init_list_head(&ts->os_signal_handlers); - init_list_head(&ts->os_timers); - init_list_head(&ts->port_list); - init_list_head(&ts->rejected_promise_list); - - ts->next_timer_id = 1; - - js_set_thread_state(rt, ts); - JS_AddRuntimeFinalizer(rt, js_std_finalize, ts); - -#ifdef USE_WORKER - /* set the SharedArrayBuffer memory handlers */ - { - JSSharedArrayBufferFunctions sf; - memset(&sf, 0, sizeof(sf)); - sf.sab_alloc = js_sab_alloc; - sf.sab_free = js_sab_free; - sf.sab_dup = js_sab_dup; - JS_SetSharedArrayBufferFunctions(rt, &sf); - } -#endif -} - -static void free_rp(JSRuntime *rt, JSRejectedPromiseEntry *rp) -{ - list_del(&rp->link); - JS_FreeValueRT(rt, rp->promise); - JS_FreeValueRT(rt, rp->reason); - js_free_rt(rt, rp); -} - -void js_std_free_handlers(JSRuntime *rt) -{ - JSThreadState *ts = js_get_thread_state(rt); - struct list_head *el, *el1; - - list_for_each_safe(el, el1, &ts->os_rw_handlers) { - JSOSRWHandler *rh = list_entry(el, JSOSRWHandler, link); - free_rw_handler(rt, rh); - } - - list_for_each_safe(el, el1, &ts->os_signal_handlers) { - JSOSSignalHandler *sh = list_entry(el, JSOSSignalHandler, link); - free_sh(rt, sh); - } - - list_for_each_safe(el, el1, &ts->os_timers) { - JSOSTimer *th = list_entry(el, JSOSTimer, link); - free_timer(rt, th); - } - - list_for_each_safe(el, el1, &ts->rejected_promise_list) { - JSRejectedPromiseEntry *rp = list_entry(el, JSRejectedPromiseEntry, link); - free_rp(rt, rp); - } - -#ifdef USE_WORKER - /* XXX: free port_list ? */ - js_free_message_pipe(ts->recv_pipe); - js_free_message_pipe(ts->send_pipe); -#endif -} - -static void js_dump_obj(JSContext *ctx, FILE *f, JSValueConst val) -{ - const char *str; - - str = JS_ToCString(ctx, val); - if (str) { - fprintf(f, "%s\n", str); - JS_FreeCString(ctx, str); - } else { - fprintf(f, "[exception]\n"); - } -} - -static void js_std_dump_error1(JSContext *ctx, JSValueConst exception_val) -{ - JSValue val; - bool is_error; - - is_error = JS_IsError(exception_val); - js_dump_obj(ctx, stderr, exception_val); - if (is_error) { - val = JS_GetPropertyStr(ctx, exception_val, "stack"); - } else { - js_std_cmd(/*ErrorBackTrace*/2, ctx, &val); - } - if (!JS_IsUndefined(val)) { - js_dump_obj(ctx, stderr, val); - JS_FreeValue(ctx, val); - } -} - -void js_std_dump_error(JSContext *ctx) -{ - JSValue exception_val; - - exception_val = JS_GetException(ctx); - js_std_dump_error1(ctx, exception_val); - JS_FreeValue(ctx, exception_val); -} - -static JSRejectedPromiseEntry *find_rejected_promise(JSContext *ctx, JSThreadState *ts, - JSValueConst promise) -{ - struct list_head *el; - - list_for_each(el, &ts->rejected_promise_list) { - JSRejectedPromiseEntry *rp = list_entry(el, JSRejectedPromiseEntry, link); - if (JS_IsSameValue(ctx, rp->promise, promise)) - return rp; - } - return NULL; -} - -void js_std_promise_rejection_tracker(JSContext *ctx, JSValueConst promise, - JSValueConst reason, - bool is_handled, void *opaque) -{ - - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSRejectedPromiseEntry *rp = find_rejected_promise(ctx, ts, promise); - - if (is_handled) { - /* the rejection is handled, so the entry can be removed if present */ - if (rp) - free_rp(rt, rp); - } else { - /* add a new entry if needed */ - if (!rp) { - rp = js_malloc_rt(rt, sizeof(*rp)); - if (rp) { - rp->promise = JS_DupValue(ctx, promise); - rp->reason = JS_DupValue(ctx, reason); - list_add_tail(&rp->link, &ts->rejected_promise_list); - } - } - } -} - -/* check if there are pending promise rejections. It must be done - asynchrously in case a rejected promise is handled later. Currently - we do it once the application is about to sleep. It could be done - more often if needed. */ -static void js_std_promise_rejection_check(JSContext *ctx) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - struct list_head *el; - - if (unlikely(!list_empty(&ts->rejected_promise_list))) { - list_for_each(el, &ts->rejected_promise_list) { - JSRejectedPromiseEntry *rp = list_entry(el, JSRejectedPromiseEntry, link); - fprintf(stderr, "Possibly unhandled promise rejection: "); - js_std_dump_error1(ctx, rp->reason); - fflush(stderr); - } - exit(1); - } -} - -/* main loop which calls the user JS callbacks */ -int js_std_loop(JSContext *ctx) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSContext *ctx1; - int err; - - for(;;) { - /* execute the pending jobs */ - for(;;) { - err = JS_ExecutePendingJob(JS_GetRuntime(ctx), &ctx1); - if (err <= 0) { - if (err < 0) - goto done; - break; - } - } - - js_std_promise_rejection_check(ctx); - - if (!ts->can_js_os_poll || js_os_poll(ctx)) - break; - } -done: - return JS_HasException(ctx); -} - -/* Wait for a promise and execute pending jobs while waiting for - it. Return the promise result or JS_EXCEPTION in case of promise - rejection. */ -JSValue js_std_await(JSContext *ctx, JSValue obj) -{ - JSRuntime *rt = JS_GetRuntime(ctx); - JSThreadState *ts = js_get_thread_state(rt); - JSValue ret; - int state; - - for(;;) { - state = JS_PromiseState(ctx, obj); - if (state == JS_PROMISE_FULFILLED) { - ret = JS_PromiseResult(ctx, obj); - JS_FreeValue(ctx, obj); - break; - } else if (state == JS_PROMISE_REJECTED) { - ret = JS_Throw(ctx, JS_PromiseResult(ctx, obj)); - JS_FreeValue(ctx, obj); - break; - } else if (state == JS_PROMISE_PENDING) { - JSContext *ctx1; - int err; - err = JS_ExecutePendingJob(JS_GetRuntime(ctx), &ctx1); - if (err < 0) { - js_std_dump_error(ctx1); - } - if (err == 0) - js_std_promise_rejection_check(ctx); - if (ts->can_js_os_poll) - js_os_poll(ctx); - } else { - /* not a promise */ - ret = obj; - break; - } - } - return ret; -} - -void js_std_eval_binary(JSContext *ctx, const uint8_t *buf, size_t buf_len, - int load_only) -{ - JSValue obj, val; - obj = JS_ReadObject(ctx, buf, buf_len, JS_READ_OBJ_BYTECODE); - if (JS_IsException(obj)) - goto exception; - if (load_only) { - if (JS_VALUE_GET_TAG(obj) == JS_TAG_MODULE) { - if (js_module_set_import_meta(ctx, obj, false, false) < 0) - goto exception; - } - JS_FreeValue(ctx, obj); - } else { - if (JS_VALUE_GET_TAG(obj) == JS_TAG_MODULE) { - if (JS_ResolveModule(ctx, obj) < 0) { - JS_FreeValue(ctx, obj); - goto exception; - } - if (js_module_set_import_meta(ctx, obj, false, true) < 0) - goto exception; - val = JS_EvalFunction(ctx, obj); - val = js_std_await(ctx, val); - } else { - val = JS_EvalFunction(ctx, obj); - } - if (JS_IsException(val)) { - exception: - js_std_dump_error(ctx); - exit(1); - } - JS_FreeValue(ctx, val); - } -} - -static JSValue js_bjson_read(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - uint8_t *buf; - uint64_t pos, len; - JSValue obj; - size_t size; - int flags; - - if (JS_ToIndex(ctx, &pos, argv[1])) - return JS_EXCEPTION; - if (JS_ToIndex(ctx, &len, argv[2])) - return JS_EXCEPTION; - if (JS_ToInt32(ctx, &flags, argv[3])) - return JS_EXCEPTION; - buf = JS_GetArrayBuffer(ctx, &size, argv[0]); - if (!buf) - return JS_EXCEPTION; - if (pos + len > size) - return JS_ThrowRangeError(ctx, "array buffer overflow"); - obj = JS_ReadObject(ctx, buf + pos, len, flags); - return obj; -} - -static JSValue js_bjson_write(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - size_t len; - uint8_t *buf; - JSValue array; - int flags; - - if (JS_ToInt32(ctx, &flags, argv[1])) - return JS_EXCEPTION; - buf = JS_WriteObject(ctx, &len, argv[0], flags); - if (!buf) - return JS_EXCEPTION; - array = JS_NewArrayBufferCopy(ctx, buf, len); - js_free(ctx, buf); - return array; -} - - -static const JSCFunctionListEntry js_bjson_funcs[] = { - JS_CFUNC_DEF("read", 4, js_bjson_read ), - JS_CFUNC_DEF("write", 2, js_bjson_write ), -#define DEF(x) JS_PROP_INT32_DEF(#x, JS_##x, JS_PROP_CONFIGURABLE) - DEF(READ_OBJ_BYTECODE), - DEF(READ_OBJ_REFERENCE), - DEF(READ_OBJ_SAB), - DEF(WRITE_OBJ_BYTECODE), - DEF(WRITE_OBJ_REFERENCE), - DEF(WRITE_OBJ_SAB), - DEF(WRITE_OBJ_STRIP_DEBUG), - DEF(WRITE_OBJ_STRIP_SOURCE), -#undef DEF -}; - -static int js_bjson_init(JSContext *ctx, JSModuleDef *m) -{ - return JS_SetModuleExportList(ctx, m, js_bjson_funcs, - countof(js_bjson_funcs)); -} - -JSModuleDef *js_init_module_bjson(JSContext *ctx, const char *module_name) -{ - JSModuleDef *m; - m = JS_NewCModule(ctx, module_name, js_bjson_init); - if (!m) - return NULL; - JS_AddModuleExportList(ctx, m, js_bjson_funcs, countof(js_bjson_funcs)); - return m; -} diff --git a/vendor/quickjs/source_ng/quickjs-libc.h b/vendor/quickjs/source_ng/quickjs-libc.h deleted file mode 100755 index 6af5a639d..000000000 --- a/vendor/quickjs/source_ng/quickjs-libc.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * QuickJS C library - * - * Copyright (c) 2017-2018 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#ifndef QUICKJS_LIBC_H -#define QUICKJS_LIBC_H - -#include -#include -#include - -#include "quickjs.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(__GNUC__) || defined(__clang__) -#define JS_EXTERN __attribute__((visibility("default"))) -#else -#define JS_EXTERN /* nothing */ -#endif - -JS_EXTERN JSModuleDef *js_init_module_std(JSContext *ctx, - const char *module_name); -JS_EXTERN JSModuleDef *js_init_module_os(JSContext *ctx, - const char *module_name); -JS_EXTERN JSModuleDef *js_init_module_bjson(JSContext *ctx, - const char *module_name); -JS_EXTERN void js_std_add_helpers(JSContext *ctx, int argc, char **argv); -JS_EXTERN int js_std_loop(JSContext *ctx); -JS_EXTERN JSValue js_std_await(JSContext *ctx, JSValue obj); -JS_EXTERN void js_std_init_handlers(JSRuntime *rt); -JS_EXTERN void js_std_free_handlers(JSRuntime *rt); -JS_EXTERN void js_std_dump_error(JSContext *ctx); -JS_EXTERN uint8_t *js_load_file(JSContext *ctx, size_t *pbuf_len, - const char *filename); -JS_EXTERN int js_module_set_import_meta(JSContext *ctx, JSValueConst func_val, - bool use_realpath, bool is_main); -JS_EXTERN JSModuleDef *js_module_loader(JSContext *ctx, - const char *module_name, void *opaque); -JS_EXTERN void js_std_eval_binary(JSContext *ctx, const uint8_t *buf, - size_t buf_len, int flags); -JS_EXTERN void js_std_promise_rejection_tracker(JSContext *ctx, - JSValueConst promise, - JSValueConst reason, - bool is_handled, - void *opaque); -JS_EXTERN void js_std_set_worker_new_context_func(JSContext *(*func)(JSRuntime *rt)); - -#undef JS_EXTERN - -#ifdef __cplusplus -} /* extern "C" { */ -#endif - -#endif /* QUICKJS_LIBC_H */ diff --git a/vendor/quickjs/source_ng/quickjs-opcode.h b/vendor/quickjs/source_ng/quickjs-opcode.h deleted file mode 100755 index bd5be754e..000000000 --- a/vendor/quickjs/source_ng/quickjs-opcode.h +++ /dev/null @@ -1,371 +0,0 @@ -/* - * QuickJS opcode definitions - * - * Copyright (c) 2017-2018 Fabrice Bellard - * Copyright (c) 2017-2018 Charlie Gordon - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#ifdef FMT -FMT(none) -FMT(none_int) -FMT(none_loc) -FMT(none_arg) -FMT(none_var_ref) -FMT(u8) -FMT(i8) -FMT(loc8) -FMT(const8) -FMT(label8) -FMT(u16) -FMT(i16) -FMT(label16) -FMT(npop) -FMT(npopx) -FMT(npop_u16) -FMT(loc) -FMT(arg) -FMT(var_ref) -FMT(u32) -FMT(u32x2) -FMT(i32) -FMT(const) -FMT(label) -FMT(atom) -FMT(atom_u8) -FMT(atom_u16) -FMT(atom_label_u8) -FMT(atom_label_u16) -FMT(label_u16) -#undef FMT -#endif /* FMT */ - -#ifdef DEF - -#ifndef def -#define def(id, size, n_pop, n_push, f) DEF(id, size, n_pop, n_push, f) -#endif - -DEF(invalid, 1, 0, 0, none) /* never emitted */ - -/* push values */ -DEF( push_i32, 5, 0, 1, i32) -DEF( push_const, 5, 0, 1, const) -DEF( fclosure, 5, 0, 1, const) /* must follow push_const */ -DEF(push_atom_value, 5, 0, 1, atom) -DEF( private_symbol, 5, 0, 1, atom) -DEF( undefined, 1, 0, 1, none) -DEF( null, 1, 0, 1, none) -DEF( push_this, 1, 0, 1, none) /* only used at the start of a function */ -DEF( push_false, 1, 0, 1, none) -DEF( push_true, 1, 0, 1, none) -DEF( object, 1, 0, 1, none) -DEF( special_object, 2, 0, 1, u8) /* only used at the start of a function */ -DEF( rest, 3, 0, 1, u16) /* only used at the start of a function */ - -DEF( drop, 1, 1, 0, none) /* a -> */ -DEF( nip, 1, 2, 1, none) /* a b -> b */ -DEF( nip1, 1, 3, 2, none) /* a b c -> b c */ -DEF( dup, 1, 1, 2, none) /* a -> a a */ -DEF( dup1, 1, 2, 3, none) /* a b -> a a b */ -DEF( dup2, 1, 2, 4, none) /* a b -> a b a b */ -DEF( dup3, 1, 3, 6, none) /* a b c -> a b c a b c */ -DEF( insert2, 1, 2, 3, none) /* obj a -> a obj a (dup_x1) */ -DEF( insert3, 1, 3, 4, none) /* obj prop a -> a obj prop a (dup_x2) */ -DEF( insert4, 1, 4, 5, none) /* this obj prop a -> a this obj prop a */ -DEF( perm3, 1, 3, 3, none) /* obj a b -> a obj b */ -DEF( perm4, 1, 4, 4, none) /* obj prop a b -> a obj prop b */ -DEF( perm5, 1, 5, 5, none) /* this obj prop a b -> a this obj prop b */ -DEF( swap, 1, 2, 2, none) /* a b -> b a */ -DEF( swap2, 1, 4, 4, none) /* a b c d -> c d a b */ -DEF( rot3l, 1, 3, 3, none) /* x a b -> a b x */ -DEF( rot3r, 1, 3, 3, none) /* a b x -> x a b */ -DEF( rot4l, 1, 4, 4, none) /* x a b c -> a b c x */ -DEF( rot5l, 1, 5, 5, none) /* x a b c d -> a b c d x */ - -DEF(call_constructor, 3, 2, 1, npop) /* func new.target args -> ret. arguments are not counted in n_pop */ -DEF( call, 3, 1, 1, npop) /* arguments are not counted in n_pop */ -DEF( tail_call, 3, 1, 0, npop) /* arguments are not counted in n_pop */ -DEF( call_method, 3, 2, 1, npop) /* arguments are not counted in n_pop */ -DEF(tail_call_method, 3, 2, 0, npop) /* arguments are not counted in n_pop */ -DEF( array_from, 3, 0, 1, npop) /* arguments are not counted in n_pop */ -DEF( apply, 3, 3, 1, u16) -DEF( return, 1, 1, 0, none) -DEF( return_undef, 1, 0, 0, none) -DEF(check_ctor_return, 1, 1, 2, none) -DEF( check_ctor, 1, 0, 0, none) -DEF( init_ctor, 1, 0, 1, none) -DEF( check_brand, 1, 2, 2, none) /* this_obj func -> this_obj func */ -DEF( add_brand, 1, 2, 0, none) /* this_obj home_obj -> */ -DEF( return_async, 1, 1, 0, none) -DEF( throw, 1, 1, 0, none) -DEF( throw_error, 6, 0, 0, atom_u8) -DEF( eval, 5, 1, 1, npop_u16) /* func args... -> ret_val */ -DEF( apply_eval, 3, 2, 1, u16) /* func array -> ret_eval */ -DEF( regexp, 1, 2, 1, none) /* create a RegExp object from the pattern and a - bytecode string */ -DEF( get_super, 1, 1, 1, none) -DEF( import, 1, 1, 1, none) /* dynamic module import */ - -DEF( check_var, 5, 0, 1, atom) /* check if a variable exists */ -DEF( get_var_undef, 5, 0, 1, atom) /* push undefined if the variable does not exist */ -DEF( get_var, 5, 0, 1, atom) /* throw an exception if the variable does not exist */ -DEF( put_var, 5, 1, 0, atom) /* must come after get_var */ -DEF( put_var_init, 5, 1, 0, atom) /* must come after put_var. Used to initialize a global lexical variable */ -DEF( put_var_strict, 5, 2, 0, atom) /* for strict mode variable write */ - -DEF( get_ref_value, 1, 2, 3, none) -DEF( put_ref_value, 1, 3, 0, none) - -DEF( define_var, 6, 0, 0, atom_u8) -DEF(check_define_var, 6, 0, 0, atom_u8) -DEF( define_func, 6, 1, 0, atom_u8) - -// order matters, see IC counterparts -DEF( get_field, 5, 1, 1, atom) -DEF( get_field2, 5, 1, 2, atom) -DEF( put_field, 5, 2, 0, atom) - -DEF( get_private_field, 1, 2, 1, none) /* obj prop -> value */ -DEF( put_private_field, 1, 3, 0, none) /* obj value prop -> */ -DEF(define_private_field, 1, 3, 1, none) /* obj prop value -> obj */ -DEF( get_array_el, 1, 2, 1, none) -DEF( get_array_el2, 1, 2, 2, none) /* obj prop -> obj value */ -DEF( put_array_el, 1, 3, 0, none) -DEF(get_super_value, 1, 3, 1, none) /* this obj prop -> value */ -DEF(put_super_value, 1, 4, 0, none) /* this obj prop value -> */ -DEF( define_field, 5, 2, 1, atom) -DEF( set_name, 5, 1, 1, atom) -DEF(set_name_computed, 1, 2, 2, none) -DEF( set_proto, 1, 2, 1, none) -DEF(set_home_object, 1, 2, 2, none) -DEF(define_array_el, 1, 3, 2, none) -DEF( append, 1, 3, 2, none) /* append enumerated object, update length */ -DEF(copy_data_properties, 2, 3, 3, u8) -DEF( define_method, 6, 2, 1, atom_u8) -DEF(define_method_computed, 2, 3, 1, u8) /* must come after define_method */ -DEF( define_class, 6, 2, 2, atom_u8) /* parent ctor -> ctor proto */ -DEF( define_class_computed, 6, 3, 3, atom_u8) /* field_name parent ctor -> field_name ctor proto (class with computed name) */ - -DEF( get_loc, 3, 0, 1, loc) -DEF( put_loc, 3, 1, 0, loc) /* must come after get_loc */ -DEF( set_loc, 3, 1, 1, loc) /* must come after put_loc */ -DEF( get_arg, 3, 0, 1, arg) -DEF( put_arg, 3, 1, 0, arg) /* must come after get_arg */ -DEF( set_arg, 3, 1, 1, arg) /* must come after put_arg */ -DEF( get_var_ref, 3, 0, 1, var_ref) -DEF( put_var_ref, 3, 1, 0, var_ref) /* must come after get_var_ref */ -DEF( set_var_ref, 3, 1, 1, var_ref) /* must come after put_var_ref */ -DEF(set_loc_uninitialized, 3, 0, 0, loc) -DEF( get_loc_check, 3, 0, 1, loc) -DEF( put_loc_check, 3, 1, 0, loc) /* must come after get_loc_check */ -DEF( put_loc_check_init, 3, 1, 0, loc) -DEF(get_var_ref_check, 3, 0, 1, var_ref) -DEF(put_var_ref_check, 3, 1, 0, var_ref) /* must come after get_var_ref_check */ -DEF(put_var_ref_check_init, 3, 1, 0, var_ref) -DEF( close_loc, 3, 0, 0, loc) -DEF( if_false, 5, 1, 0, label) -DEF( if_true, 5, 1, 0, label) /* must come after if_false */ -DEF( goto, 5, 0, 0, label) /* must come after if_true */ -DEF( catch, 5, 0, 1, label) -DEF( gosub, 5, 0, 0, label) /* used to execute the finally block */ -DEF( ret, 1, 1, 0, none) /* used to return from the finally block */ -DEF( nip_catch, 1, 2, 1, none) /* catch ... a -> a */ - -DEF( to_object, 1, 1, 1, none) -//DEF( to_string, 1, 1, 1, none) -DEF( to_propkey, 1, 1, 1, none) -DEF( to_propkey2, 1, 2, 2, none) - -DEF( with_get_var, 10, 1, 0, atom_label_u8) /* must be in the same order as scope_xxx */ -DEF( with_put_var, 10, 2, 1, atom_label_u8) /* must be in the same order as scope_xxx */ -DEF(with_delete_var, 10, 1, 0, atom_label_u8) /* must be in the same order as scope_xxx */ -DEF( with_make_ref, 10, 1, 0, atom_label_u8) /* must be in the same order as scope_xxx */ -DEF( with_get_ref, 10, 1, 0, atom_label_u8) /* must be in the same order as scope_xxx */ -DEF(with_get_ref_undef, 10, 1, 0, atom_label_u8) - -DEF( make_loc_ref, 7, 0, 2, atom_u16) -DEF( make_arg_ref, 7, 0, 2, atom_u16) -DEF(make_var_ref_ref, 7, 0, 2, atom_u16) -DEF( make_var_ref, 5, 0, 2, atom) - -DEF( for_in_start, 1, 1, 1, none) -DEF( for_of_start, 1, 1, 3, none) -DEF(for_await_of_start, 1, 1, 3, none) -DEF( for_in_next, 1, 1, 3, none) -DEF( for_of_next, 2, 3, 5, u8) -DEF(iterator_check_object, 1, 1, 1, none) -DEF(iterator_get_value_done, 1, 1, 2, none) -DEF( iterator_close, 1, 3, 0, none) -DEF( iterator_next, 1, 4, 4, none) -DEF( iterator_call, 2, 4, 5, u8) -DEF( initial_yield, 1, 0, 0, none) -DEF( yield, 1, 1, 2, none) -DEF( yield_star, 1, 1, 2, none) -DEF(async_yield_star, 1, 1, 2, none) -DEF( await, 1, 1, 1, none) - -/* arithmetic/logic operations */ -DEF( neg, 1, 1, 1, none) -DEF( plus, 1, 1, 1, none) -DEF( dec, 1, 1, 1, none) -DEF( inc, 1, 1, 1, none) -DEF( post_dec, 1, 1, 2, none) -DEF( post_inc, 1, 1, 2, none) -DEF( dec_loc, 2, 0, 0, loc8) -DEF( inc_loc, 2, 0, 0, loc8) -DEF( add_loc, 2, 1, 0, loc8) -DEF( not, 1, 1, 1, none) -DEF( lnot, 1, 1, 1, none) -DEF( typeof, 1, 1, 1, none) -DEF( delete, 1, 2, 1, none) -DEF( delete_var, 5, 0, 1, atom) - -/* warning: order matters (see js_parse_assign_expr) */ -DEF( mul, 1, 2, 1, none) -DEF( div, 1, 2, 1, none) -DEF( mod, 1, 2, 1, none) -DEF( add, 1, 2, 1, none) -DEF( sub, 1, 2, 1, none) -DEF( shl, 1, 2, 1, none) -DEF( sar, 1, 2, 1, none) -DEF( shr, 1, 2, 1, none) -DEF( and, 1, 2, 1, none) -DEF( xor, 1, 2, 1, none) -DEF( or, 1, 2, 1, none) -DEF( pow, 1, 2, 1, none) - -DEF( lt, 1, 2, 1, none) -DEF( lte, 1, 2, 1, none) -DEF( gt, 1, 2, 1, none) -DEF( gte, 1, 2, 1, none) -DEF( instanceof, 1, 2, 1, none) -DEF( in, 1, 2, 1, none) -DEF( eq, 1, 2, 1, none) -DEF( neq, 1, 2, 1, none) -DEF( strict_eq, 1, 2, 1, none) -DEF( strict_neq, 1, 2, 1, none) -DEF(is_undefined_or_null, 1, 1, 1, none) -DEF( private_in, 1, 2, 1, none) -DEF(push_bigint_i32, 5, 0, 1, i32) -/* must be the last non short and non temporary opcode */ -DEF( nop, 1, 0, 0, none) - -/* temporary opcodes: never emitted in the final bytecode */ - -def( enter_scope, 3, 0, 0, u16) /* emitted in phase 1, removed in phase 2 */ -def( leave_scope, 3, 0, 0, u16) /* emitted in phase 1, removed in phase 2 */ - -def( label, 5, 0, 0, label) /* emitted in phase 1, removed in phase 3 */ - -def(scope_get_var_undef, 7, 0, 1, atom_u16) /* emitted in phase 1, removed in phase 2 */ -def( scope_get_var, 7, 0, 1, atom_u16) /* emitted in phase 1, removed in phase 2 */ -def( scope_put_var, 7, 1, 0, atom_u16) /* emitted in phase 1, removed in phase 2 */ -def(scope_delete_var, 7, 0, 1, atom_u16) /* emitted in phase 1, removed in phase 2 */ -def( scope_make_ref, 11, 0, 2, atom_label_u16) /* emitted in phase 1, removed in phase 2 */ -def( scope_get_ref, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase 2 */ -def(scope_put_var_init, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase 2 */ -def(scope_get_private_field, 7, 1, 1, atom_u16) /* obj -> value, emitted in phase 1, removed in phase 2 */ -def(scope_get_private_field2, 7, 1, 2, atom_u16) /* obj -> obj value, emitted in phase 1, removed in phase 2 */ -def(scope_put_private_field, 7, 2, 0, atom_u16) /* obj value ->, emitted in phase 1, removed in phase 2 */ -def(scope_in_private_field, 7, 1, 1, atom_u16) /* obj -> res emitted in phase 1, removed in phase 2 */ -def(get_field_opt_chain, 5, 1, 1, atom) /* emitted in phase 1, removed in phase 2 */ -def(get_array_el_opt_chain, 1, 2, 1, none) /* emitted in phase 1, removed in phase 2 */ -def( set_class_name, 5, 1, 1, u32) /* emitted in phase 1, removed in phase 2 */ - -def( source_loc, 9, 0, 0, u32x2) /* emitted in phase 1, removed in phase 3 */ - -DEF( push_minus1, 1, 0, 1, none_int) -DEF( push_0, 1, 0, 1, none_int) -DEF( push_1, 1, 0, 1, none_int) -DEF( push_2, 1, 0, 1, none_int) -DEF( push_3, 1, 0, 1, none_int) -DEF( push_4, 1, 0, 1, none_int) -DEF( push_5, 1, 0, 1, none_int) -DEF( push_6, 1, 0, 1, none_int) -DEF( push_7, 1, 0, 1, none_int) -DEF( push_i8, 2, 0, 1, i8) -DEF( push_i16, 3, 0, 1, i16) -DEF( push_const8, 2, 0, 1, const8) -DEF( fclosure8, 2, 0, 1, const8) /* must follow push_const8 */ -DEF(push_empty_string, 1, 0, 1, none) - -DEF( get_loc8, 2, 0, 1, loc8) -DEF( put_loc8, 2, 1, 0, loc8) -DEF( set_loc8, 2, 1, 1, loc8) - -DEF( get_loc0_loc1, 1, 0, 2, none_loc) -DEF( get_loc0, 1, 0, 1, none_loc) -DEF( get_loc1, 1, 0, 1, none_loc) -DEF( get_loc2, 1, 0, 1, none_loc) -DEF( get_loc3, 1, 0, 1, none_loc) -DEF( put_loc0, 1, 1, 0, none_loc) -DEF( put_loc1, 1, 1, 0, none_loc) -DEF( put_loc2, 1, 1, 0, none_loc) -DEF( put_loc3, 1, 1, 0, none_loc) -DEF( set_loc0, 1, 1, 1, none_loc) -DEF( set_loc1, 1, 1, 1, none_loc) -DEF( set_loc2, 1, 1, 1, none_loc) -DEF( set_loc3, 1, 1, 1, none_loc) -DEF( get_arg0, 1, 0, 1, none_arg) -DEF( get_arg1, 1, 0, 1, none_arg) -DEF( get_arg2, 1, 0, 1, none_arg) -DEF( get_arg3, 1, 0, 1, none_arg) -DEF( put_arg0, 1, 1, 0, none_arg) -DEF( put_arg1, 1, 1, 0, none_arg) -DEF( put_arg2, 1, 1, 0, none_arg) -DEF( put_arg3, 1, 1, 0, none_arg) -DEF( set_arg0, 1, 1, 1, none_arg) -DEF( set_arg1, 1, 1, 1, none_arg) -DEF( set_arg2, 1, 1, 1, none_arg) -DEF( set_arg3, 1, 1, 1, none_arg) -DEF( get_var_ref0, 1, 0, 1, none_var_ref) -DEF( get_var_ref1, 1, 0, 1, none_var_ref) -DEF( get_var_ref2, 1, 0, 1, none_var_ref) -DEF( get_var_ref3, 1, 0, 1, none_var_ref) -DEF( put_var_ref0, 1, 1, 0, none_var_ref) -DEF( put_var_ref1, 1, 1, 0, none_var_ref) -DEF( put_var_ref2, 1, 1, 0, none_var_ref) -DEF( put_var_ref3, 1, 1, 0, none_var_ref) -DEF( set_var_ref0, 1, 1, 1, none_var_ref) -DEF( set_var_ref1, 1, 1, 1, none_var_ref) -DEF( set_var_ref2, 1, 1, 1, none_var_ref) -DEF( set_var_ref3, 1, 1, 1, none_var_ref) - -DEF( get_length, 1, 1, 1, none) - -DEF( if_false8, 2, 1, 0, label8) -DEF( if_true8, 2, 1, 0, label8) /* must come after if_false8 */ -DEF( goto8, 2, 0, 0, label8) /* must come after if_true8 */ -DEF( goto16, 3, 0, 0, label16) - -DEF( call0, 1, 1, 1, npopx) -DEF( call1, 1, 1, 1, npopx) -DEF( call2, 1, 1, 1, npopx) -DEF( call3, 1, 1, 1, npopx) - -DEF( is_undefined, 1, 1, 1, none) -DEF( is_null, 1, 1, 1, none) -DEF(typeof_is_undefined, 1, 1, 1, none) -DEF( typeof_is_function, 1, 1, 1, none) - -#undef DEF -#undef def -#endif /* DEF */ diff --git a/vendor/quickjs/source_ng/quickjs.c b/vendor/quickjs/source_ng/quickjs.c deleted file mode 100755 index fd1be4407..000000000 --- a/vendor/quickjs/source_ng/quickjs.c +++ /dev/null @@ -1,58356 +0,0 @@ -/* - * QuickJS Javascript Engine - * - * Copyright (c) 2017-2025 Fabrice Bellard - * Copyright (c) 2017-2025 Charlie Gordon - * Copyright (c) 2023-2025 Ben Noordhuis - * Copyright (c) 2023-2025 Saúl Ibarra Corretgé - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -#include -#include -#include -#include -#include -#include -#if !defined(_MSC_VER) -#include -#if defined(_WIN32) -#include -#endif -#endif -#if defined(_WIN32) -#include -#endif -#include -#include -#include - -#include "cutils.h" -#include "list.h" -#include "quickjs.h" -#include "libregexp.h" -#include "dtoa.h" - -#if defined(EMSCRIPTEN) || defined(_MSC_VER) -#define DIRECT_DISPATCH 0 -#else -#define DIRECT_DISPATCH 1 -#endif - -#if defined(__APPLE__) -#define MALLOC_OVERHEAD 0 -#else -#define MALLOC_OVERHEAD 8 -#endif - -#if defined(__NEWLIB__) -#define NO_TM_GMTOFF -#endif - -// atomic_store etc. are completely busted in recent versions of tcc; -// somehow the compiler forgets to load |ptr| into %rdi when calling -// the __atomic_*() helpers in its lib/stdatomic.c and lib/atomic.S -#if !defined(__TINYC__) && !defined(EMSCRIPTEN) && !defined(__wasi__) && !__STDC_NO_ATOMICS__ -#include "quickjs-c-atomics.h" -#define CONFIG_ATOMICS -#endif - -#ifndef __GNUC__ -#define __extension__ -#endif - -#ifndef NDEBUG -#define ENABLE_DUMPS -#endif - -//#define FORCE_GC_AT_MALLOC /* test the GC by forcing it before each object allocation */ - -#define check_dump_flag(rt, flag) ((rt->dump_flags & (flag +0)) == (flag +0)) - -#define STRINGIFY_(x) #x -#define STRINGIFY(x) STRINGIFY_(x) - -#define QJS_VERSION_STRING \ - STRINGIFY(QJS_VERSION_MAJOR) "." STRINGIFY(QJS_VERSION_MINOR) "." STRINGIFY(QJS_VERSION_PATCH) QJS_VERSION_SUFFIX - -const char* JS_GetVersion(void) { - return QJS_VERSION_STRING; -} - -#undef STRINFIGY_ -#undef STRINGIFY - -static inline JSValueConst *vc(JSValue *vals) -{ - return (JSValueConst *)vals; -} - -static inline JSValue unsafe_unconst(JSValueConst v) -{ -#ifdef JS_CHECK_JSVALUE - return (JSValue)v; -#else - return v; -#endif -} - -static inline JSValueConst safe_const(JSValue v) -{ -#ifdef JS_CHECK_JSVALUE - return (JSValueConst)v; -#else - return v; -#endif -} - -enum { - /* classid tag */ /* union usage | properties */ - JS_CLASS_OBJECT = 1, /* must be first */ - JS_CLASS_ARRAY, /* u.array | length */ - JS_CLASS_ERROR, - JS_CLASS_NUMBER, /* u.object_data */ - JS_CLASS_STRING, /* u.object_data */ - JS_CLASS_BOOLEAN, /* u.object_data */ - JS_CLASS_SYMBOL, /* u.object_data */ - JS_CLASS_ARGUMENTS, /* u.array | length */ - JS_CLASS_MAPPED_ARGUMENTS, /* | length */ - JS_CLASS_DATE, /* u.object_data */ - JS_CLASS_MODULE_NS, - JS_CLASS_C_FUNCTION, /* u.cfunc */ - JS_CLASS_BYTECODE_FUNCTION, /* u.func */ - JS_CLASS_BOUND_FUNCTION, /* u.bound_function */ - JS_CLASS_C_FUNCTION_DATA, /* u.c_function_data_record */ - JS_CLASS_GENERATOR_FUNCTION, /* u.func */ - JS_CLASS_FOR_IN_ITERATOR, /* u.for_in_iterator */ - JS_CLASS_REGEXP, /* u.regexp */ - JS_CLASS_ARRAY_BUFFER, /* u.array_buffer */ - JS_CLASS_SHARED_ARRAY_BUFFER, /* u.array_buffer */ - JS_CLASS_UINT8C_ARRAY, /* u.array (typed_array) */ - JS_CLASS_INT8_ARRAY, /* u.array (typed_array) */ - JS_CLASS_UINT8_ARRAY, /* u.array (typed_array) */ - JS_CLASS_INT16_ARRAY, /* u.array (typed_array) */ - JS_CLASS_UINT16_ARRAY, /* u.array (typed_array) */ - JS_CLASS_INT32_ARRAY, /* u.array (typed_array) */ - JS_CLASS_UINT32_ARRAY, /* u.array (typed_array) */ - JS_CLASS_BIG_INT64_ARRAY, /* u.array (typed_array) */ - JS_CLASS_BIG_UINT64_ARRAY, /* u.array (typed_array) */ - JS_CLASS_FLOAT16_ARRAY, /* u.array (typed_array) */ - JS_CLASS_FLOAT32_ARRAY, /* u.array (typed_array) */ - JS_CLASS_FLOAT64_ARRAY, /* u.array (typed_array) */ - JS_CLASS_DATAVIEW, /* u.typed_array */ - JS_CLASS_BIG_INT, /* u.object_data */ - JS_CLASS_MAP, /* u.map_state */ - JS_CLASS_SET, /* u.map_state */ - JS_CLASS_WEAKMAP, /* u.map_state */ - JS_CLASS_WEAKSET, /* u.map_state */ - JS_CLASS_ITERATOR, - JS_CLASS_ITERATOR_CONCAT, /* u.iterator_concat_data */ - JS_CLASS_ITERATOR_HELPER, /* u.iterator_helper_data */ - JS_CLASS_ITERATOR_WRAP, /* u.iterator_wrap_data */ - JS_CLASS_MAP_ITERATOR, /* u.map_iterator_data */ - JS_CLASS_SET_ITERATOR, /* u.map_iterator_data */ - JS_CLASS_ARRAY_ITERATOR, /* u.array_iterator_data */ - JS_CLASS_STRING_ITERATOR, /* u.array_iterator_data */ - JS_CLASS_REGEXP_STRING_ITERATOR, /* u.regexp_string_iterator_data */ - JS_CLASS_GENERATOR, /* u.generator_data */ - JS_CLASS_PROXY, /* u.proxy_data */ - JS_CLASS_PROMISE, /* u.promise_data */ - JS_CLASS_PROMISE_RESOLVE_FUNCTION, /* u.promise_function_data */ - JS_CLASS_PROMISE_REJECT_FUNCTION, /* u.promise_function_data */ - JS_CLASS_ASYNC_FUNCTION, /* u.func */ - JS_CLASS_ASYNC_FUNCTION_RESOLVE, /* u.async_function_data */ - JS_CLASS_ASYNC_FUNCTION_REJECT, /* u.async_function_data */ - JS_CLASS_ASYNC_FROM_SYNC_ITERATOR, /* u.async_from_sync_iterator_data */ - JS_CLASS_ASYNC_GENERATOR_FUNCTION, /* u.func */ - JS_CLASS_ASYNC_GENERATOR, /* u.async_generator_data */ - JS_CLASS_WEAK_REF, - JS_CLASS_FINALIZATION_REGISTRY, - JS_CLASS_DOM_EXCEPTION, - JS_CLASS_CALL_SITE, - - JS_CLASS_INIT_COUNT, /* last entry for predefined classes */ -}; - -/* number of typed array types */ -#define JS_TYPED_ARRAY_COUNT (JS_CLASS_FLOAT64_ARRAY - JS_CLASS_UINT8C_ARRAY + 1) -static uint8_t const typed_array_size_log2[JS_TYPED_ARRAY_COUNT]; -#define typed_array_size_log2(classid) (typed_array_size_log2[(classid)- JS_CLASS_UINT8C_ARRAY]) - -typedef enum JSErrorEnum { - JS_EVAL_ERROR, - JS_RANGE_ERROR, - JS_REFERENCE_ERROR, - JS_SYNTAX_ERROR, - JS_TYPE_ERROR, - JS_URI_ERROR, - JS_INTERNAL_ERROR, - JS_AGGREGATE_ERROR, - - JS_NATIVE_ERROR_COUNT, /* number of different NativeError objects */ - JS_PLAIN_ERROR = JS_NATIVE_ERROR_COUNT -} JSErrorEnum; - -#define JS_MAX_LOCAL_VARS 65535 -#define JS_STACK_SIZE_MAX 65534 -#define JS_STRING_LEN_MAX ((1 << 30) - 1) -// 1,024 bytes is about the cutoff point where it starts getting -// more profitable to ref slice than to copy -#define JS_STRING_SLICE_LEN_MAX 1024 // in bytes - -#define __exception __attribute__((warn_unused_result)) - -typedef struct JSShape JSShape; -typedef struct JSString JSString; -typedef struct JSString JSAtomStruct; - -#define JS_VALUE_GET_STRING(v) ((JSString *)JS_VALUE_GET_PTR(v)) - -typedef enum { - JS_GC_PHASE_NONE, - JS_GC_PHASE_DECREF, - JS_GC_PHASE_REMOVE_CYCLES, -} JSGCPhaseEnum; - -typedef struct JSMallocState { - size_t malloc_count; - size_t malloc_size; - size_t malloc_limit; - void *opaque; /* user opaque */ -} JSMallocState; - -typedef struct JSRuntimeFinalizerState { - struct JSRuntimeFinalizerState *next; - JSRuntimeFinalizer *finalizer; - void *arg; -} JSRuntimeFinalizerState; - -typedef struct JSValueLink { - struct JSValueLink *next; - JSValueConst value; -} JSValueLink; - -struct JSRuntime { - JSMallocFunctions mf; - JSMallocState malloc_state; - const char *rt_info; - - int atom_hash_size; /* power of two */ - int atom_count; - int atom_size; - int atom_count_resize; /* resize hash table at this count */ - uint32_t *atom_hash; - JSAtomStruct **atom_array; - int atom_free_index; /* 0 = none */ - - JSClassID js_class_id_alloc; /* counter for user defined classes */ - int class_count; /* size of class_array */ - JSClass *class_array; - - struct list_head context_list; /* list of JSContext.link */ - /* list of JSGCObjectHeader.link. List of allocated GC objects (used - by the garbage collector) */ - struct list_head gc_obj_list; - /* list of JSGCObjectHeader.link. Used during JS_FreeValueRT() */ - struct list_head gc_zero_ref_count_list; - struct list_head tmp_obj_list; /* used during GC */ - JSGCPhaseEnum gc_phase : 8; - size_t malloc_gc_threshold; -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - struct list_head string_list; /* list of JSString.link */ -#endif - /* stack limitation */ - uintptr_t stack_size; /* in bytes, 0 if no limit */ - uintptr_t stack_top; - uintptr_t stack_limit; /* lower stack limit */ - - JSValue current_exception; - /* true if inside an out of memory error, to avoid recursing */ - bool in_out_of_memory; - /* true if inside build_backtrace, to avoid recursing */ - bool in_build_stack_trace; - /* true if inside JS_FreeRuntime */ - bool in_free; - - struct JSStackFrame *current_stack_frame; - - JSInterruptHandler *interrupt_handler; - void *interrupt_opaque; - - JSPromiseHook *promise_hook; - void *promise_hook_opaque; - // for smuggling the parent promise from js_promise_then - // to js_promise_constructor - JSValueLink *parent_promise; - - JSHostPromiseRejectionTracker *host_promise_rejection_tracker; - void *host_promise_rejection_tracker_opaque; - - struct list_head job_list; /* list of JSJobEntry.link */ - struct list_head weakref_keepalive_list; /* strong refs kept until the current host job completes */ - - JSModuleNormalizeFunc *module_normalize_func; - JSModuleLoaderFunc *module_loader_func; - void *module_loader_opaque; - /* timestamp for internal use in module evaluation */ - int64_t module_async_evaluation_next_timestamp; - - /* used to allocate, free and clone SharedArrayBuffers */ - JSSharedArrayBufferFunctions sab_funcs; - - bool can_block; /* true if Atomics.wait can block */ - uint32_t dump_flags : 24; - - /* Shape hash table */ - int shape_hash_bits; - int shape_hash_size; - int shape_hash_count; /* number of hashed shapes */ - JSShape **shape_hash; - void *user_opaque; - void *libc_opaque; - JSRuntimeFinalizerState *finalizers; -}; - -struct JSClass { - uint32_t class_id; /* 0 means free entry */ - JSAtom class_name; - JSClassFinalizer *finalizer; - JSClassGCMark *gc_mark; - JSClassCall *call; - /* pointers for exotic behavior, can be NULL if none are present */ - const JSClassExoticMethods *exotic; -}; - -typedef struct JSStackFrame { - struct JSStackFrame *prev_frame; /* NULL if first stack frame */ - JSValue cur_func; /* current function, JS_UNDEFINED if the frame is detached */ - JSValue *arg_buf; /* arguments */ - JSValue *var_buf; /* variables */ - struct list_head var_ref_list; /* list of JSVarRef.link */ - uint8_t *cur_pc; /* only used in bytecode functions : PC of the - instruction after the call */ - uint32_t arg_count : 31; - uint32_t is_strict_mode : 1; - /* only used in generators. Current stack pointer value. NULL if - the function is running. */ - JSValue *cur_sp; -} JSStackFrame; - -typedef struct JSWeakRefKeepAliveEntry { - struct list_head link; - JSValue value; -} JSWeakRefKeepAliveEntry; - -typedef enum { - JS_GC_OBJ_TYPE_JS_OBJECT, - JS_GC_OBJ_TYPE_FUNCTION_BYTECODE, - JS_GC_OBJ_TYPE_SHAPE, - JS_GC_OBJ_TYPE_VAR_REF, - JS_GC_OBJ_TYPE_ASYNC_FUNCTION, - JS_GC_OBJ_TYPE_JS_CONTEXT, -} JSGCObjectTypeEnum; - -/* header for GC objects. GC objects are C data structures with a - reference count that can reference other GC objects. JS Objects are - a particular type of GC object. */ -struct JSGCObjectHeader { - int ref_count; /* must come first, 32-bit */ - JSGCObjectTypeEnum gc_obj_type : 4; - uint8_t mark : 4; /* used by the GC */ - uint8_t dummy1; /* not used by the GC */ - uint16_t dummy2; /* not used by the GC */ - struct list_head link; -}; - -typedef struct JSVarRef { - union { - JSGCObjectHeader header; /* must come first */ - struct { - int __gc_ref_count; /* corresponds to header.ref_count */ - uint8_t __gc_mark; /* corresponds to header.mark/gc_obj_type */ - uint8_t is_detached; - }; - }; - JSValue *pvalue; /* pointer to the value, either on the stack or - to 'value' */ - JSValue value; /* used when the variable is no longer on the stack */ -} JSVarRef; - -typedef struct JSRefCountHeader { - int ref_count; -} JSRefCountHeader; - -/* bigint */ -typedef int32_t js_slimb_t; -typedef uint32_t js_limb_t; -typedef int64_t js_sdlimb_t; -typedef uint64_t js_dlimb_t; - -#define JS_LIMB_DIGITS 9 - -/* Must match the size of short_big_int in JSValueUnion */ -#define JS_LIMB_BITS 32 -#define JS_SHORT_BIG_INT_BITS JS_LIMB_BITS -#define JS_BIGINT_MAX_SIZE ((1024 * 1024) / JS_LIMB_BITS) /* in limbs */ -#define JS_SHORT_BIG_INT_MIN INT32_MIN -#define JS_SHORT_BIG_INT_MAX INT32_MAX - - -typedef struct JSBigInt { - JSRefCountHeader header; /* must come first, 32-bit */ - uint32_t len; /* number of limbs, >= 1 */ - js_limb_t tab[]; /* two's complement representation, always - normalized so that 'len' is the minimum - possible length >= 1 */ -} JSBigInt; - -/* this bigint structure can hold a 64 bit integer */ -typedef struct { - js_limb_t big_int_buf[sizeof(JSBigInt) / sizeof(js_limb_t)]; /* for JSBigInt */ - /* must come just after */ - js_limb_t tab[(64 + JS_LIMB_BITS - 1) / JS_LIMB_BITS]; -} JSBigIntBuf; - -typedef enum { - JS_AUTOINIT_ID_PROTOTYPE, - JS_AUTOINIT_ID_MODULE_NS, - JS_AUTOINIT_ID_PROP, - JS_AUTOINIT_ID_BYTECODE, -} JSAutoInitIDEnum; - -enum { - JS_BUILTIN_ARRAY_FROMASYNC = 1, -}; - -/* must be large enough to have a negligible runtime cost and small - enough to call the interrupt callback often. */ -#define JS_INTERRUPT_COUNTER_INIT 10000 - -struct JSContext { - JSGCObjectHeader header; /* must come first */ - JSRuntime *rt; - struct list_head link; - - uint16_t binary_object_count; - int binary_object_size; - - JSShape *array_shape; /* initial shape for Array objects */ - - JSValue *class_proto; - JSValue function_proto; - JSValue function_ctor; - JSValue array_ctor; - JSValue regexp_ctor; - JSValue promise_ctor; - JSValue native_error_proto[JS_NATIVE_ERROR_COUNT]; - JSValue error_ctor; - JSValue error_back_trace; - JSValue error_prepare_stack; - JSValue error_stack_trace_limit; - JSValue iterator_ctor; - JSValue iterator_ctor_getset; - JSValue iterator_proto; - JSValue async_iterator_proto; - JSValue array_proto_values; - JSValue throw_type_error; - JSValue eval_obj; - - JSValue global_obj; /* global object */ - JSValue global_var_obj; /* contains the global let/const definitions */ - - double time_origin; - - uint64_t random_state; - - /* when the counter reaches zero, JSRutime.interrupt_handler is called */ - int interrupt_counter; - - struct list_head loaded_modules; /* list of JSModuleDef.link */ - - /* if NULL, RegExp compilation is not supported */ - JSValue (*compile_regexp)(JSContext *ctx, JSValueConst pattern, - JSValueConst flags); - /* if NULL, eval is not supported */ - JSValue (*eval_internal)(JSContext *ctx, JSValueConst this_obj, - const char *input, size_t input_len, - const char *filename, int line, int flags, int scope_idx); - void *user_opaque; -}; - -typedef union JSFloat64Union { - double d; - uint64_t u64; - uint32_t u32[2]; -} JSFloat64Union; - -typedef enum { - JS_WEAK_REF_KIND_MAP, - JS_WEAK_REF_KIND_WEAK_REF, - JS_WEAK_REF_KIND_FINALIZATION_REGISTRY_ENTRY, -} JSWeakRefKindEnum; - -typedef struct JSWeakRefRecord { - JSWeakRefKindEnum kind; - struct JSWeakRefRecord *next_weak_ref; - union { - struct JSMapRecord *map_record; - struct JSWeakRefData *weak_ref_data; - struct JSFinRecEntry *fin_rec_entry; - } u; -} JSWeakRefRecord; - -typedef struct JSMapRecord { - int ref_count; /* used during enumeration to avoid freeing the record */ - bool empty; /* true if the record is deleted */ - struct JSMapState *map; - struct list_head link; - struct list_head hash_link; - JSValue key; - JSValue value; -} JSMapRecord; - -typedef struct JSMapState { - bool is_weak; /* true if WeakSet/WeakMap */ - struct list_head records; /* list of JSMapRecord.link */ - uint32_t record_count; - struct list_head *hash_table; - uint32_t hash_size; /* must be a power of two */ - uint32_t record_count_threshold; /* count at which a hash table - resize is needed */ -} JSMapState; - -enum -{ - JS_TO_STRING_IS_PROPERTY_KEY = 1 << 0, - JS_TO_STRING_NO_SIDE_EFFECTS = 1 << 1, -}; - -enum { - JS_ATOM_TYPE_STRING = 1, - JS_ATOM_TYPE_GLOBAL_SYMBOL, - JS_ATOM_TYPE_SYMBOL, - JS_ATOM_TYPE_PRIVATE, -}; - -enum { - JS_ATOM_HASH_SYMBOL, - JS_ATOM_HASH_PRIVATE, -}; - -typedef enum { - JS_ATOM_KIND_STRING, - JS_ATOM_KIND_SYMBOL, - JS_ATOM_KIND_PRIVATE, -} JSAtomKindEnum; - -typedef enum { - JS_STRING_KIND_NORMAL, - JS_STRING_KIND_SLICE, -} JSStringKind; - -#define JS_ATOM_HASH_MASK ((1 << 29) - 1) - -struct JSString { - JSRefCountHeader header; /* must come first, 32-bit */ - uint32_t len : 31; - uint8_t is_wide_char : 1; /* 0 = 8 bits, 1 = 16 bits characters */ - /* for JS_ATOM_TYPE_SYMBOL: hash = 0, atom_type = 3, - for JS_ATOM_TYPE_PRIVATE: hash = 1, atom_type = 3 - XXX: could change encoding to have one more bit in hash */ - uint32_t hash : 29; - uint8_t kind : 1; - uint8_t atom_type : 2; /* != 0 if atom, JS_ATOM_TYPE_x */ - uint32_t hash_next; /* atom_index for JS_ATOM_TYPE_SYMBOL */ - JSWeakRefRecord *first_weak_ref; -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - struct list_head link; /* string list */ -#endif -}; - -typedef struct JSStringSlice { - JSString *parent; - uint32_t start; // in bytes, not characters -} JSStringSlice; - -static inline void *strv(JSString *p) -{ - JSStringSlice *slice; - - switch (p->kind) { - case JS_STRING_KIND_NORMAL: - return (void *)&p[1]; - case JS_STRING_KIND_SLICE: - slice = (void *)&p[1]; - return (char *)&slice->parent[1] + slice->start; - } - abort(); - return NULL; -} - -static inline uint8_t *str8(JSString *p) -{ - return strv(p); -} - -static inline uint16_t *str16(JSString *p) -{ - return strv(p); -} - -typedef struct JSClosureVar { - uint8_t is_local : 1; - uint8_t is_arg : 1; - uint8_t is_const : 1; - uint8_t is_lexical : 1; - uint8_t var_kind : 4; /* see JSVarKindEnum */ - /* 8 bits available */ - uint16_t var_idx; /* is_local = true: index to a normal variable of the - parent function. otherwise: index to a closure - variable of the parent function */ - JSAtom var_name; -} JSClosureVar; - -#define ARG_SCOPE_INDEX 1 -#define ARG_SCOPE_END (-2) - -typedef struct JSVarScope { - int parent; /* index into fd->scopes of the enclosing scope */ - int first; /* index into fd->vars of the last variable in this scope */ -} JSVarScope; - -typedef enum { - /* XXX: add more variable kinds here instead of using bit fields */ - JS_VAR_NORMAL, - JS_VAR_FUNCTION_DECL, /* lexical var with function declaration */ - JS_VAR_NEW_FUNCTION_DECL, /* lexical var with async/generator - function declaration */ - JS_VAR_CATCH, - JS_VAR_FUNCTION_NAME, /* function expression name */ - JS_VAR_PRIVATE_FIELD, - JS_VAR_PRIVATE_METHOD, - JS_VAR_PRIVATE_GETTER, - JS_VAR_PRIVATE_SETTER, /* must come after JS_VAR_PRIVATE_GETTER */ - JS_VAR_PRIVATE_GETTER_SETTER, /* must come after JS_VAR_PRIVATE_SETTER */ -} JSVarKindEnum; - -/* XXX: could use a different structure in bytecode functions to save - memory */ -typedef struct JSVarDef { - JSAtom var_name; - /* index into fd->scopes of this variable lexical scope */ - int scope_level; - /* during compilation: - - if scope_level = 0: scope in which the variable is defined - - if scope_level != 0: index into fd->vars of the next - variable in the same or enclosing lexical scope - in a bytecode function: - index into fd->vars of the next - variable in the same or enclosing lexical scope - */ - int scope_next; - uint8_t is_const : 1; - uint8_t is_lexical : 1; - uint8_t is_captured : 1; - uint8_t is_static_private : 1; /* only used during private class field parsing */ - uint8_t var_kind : 4; /* see JSVarKindEnum */ - /* only used during compilation: function pool index for lexical - variables with var_kind = - JS_VAR_FUNCTION_DECL/JS_VAR_NEW_FUNCTION_DECL or scope level of - the definition of the 'var' variables (they have scope_level = - 0) */ - int func_pool_idx : 24; /* only used during compilation : index in - the constant pool for hoisted function - definition */ -} JSVarDef; - -/* for the encoding of the pc2line table */ -#define PC2LINE_BASE (-1) -#define PC2LINE_RANGE 5 -#define PC2LINE_OP_FIRST 1 -#define PC2LINE_DIFF_PC_MAX ((255 - PC2LINE_OP_FIRST) / PC2LINE_RANGE) - -typedef enum JSFunctionKindEnum { - JS_FUNC_NORMAL = 0, - JS_FUNC_GENERATOR = (1 << 0), - JS_FUNC_ASYNC = (1 << 1), - JS_FUNC_ASYNC_GENERATOR = (JS_FUNC_GENERATOR | JS_FUNC_ASYNC), -} JSFunctionKindEnum; - -typedef struct JSFunctionBytecode { - JSGCObjectHeader header; /* must come first */ - uint8_t is_strict_mode : 1; - uint8_t has_prototype : 1; /* true if a prototype field is necessary */ - uint8_t has_simple_parameter_list : 1; - uint8_t is_derived_class_constructor : 1; - /* true if home_object needs to be initialized */ - uint8_t need_home_object : 1; - uint8_t func_kind : 2; - uint8_t new_target_allowed : 1; - uint8_t super_call_allowed : 1; - uint8_t super_allowed : 1; - uint8_t arguments_allowed : 1; - uint8_t backtrace_barrier : 1; /* stop backtrace on this function */ - /* XXX: 5 bits available */ - uint8_t *byte_code_buf; /* (self pointer) */ - int byte_code_len; - JSAtom func_name; - JSVarDef *vardefs; /* arguments + local variables (arg_count + var_count) (self pointer) */ - JSClosureVar *closure_var; /* list of variables in the closure (self pointer) */ - uint16_t arg_count; - uint16_t var_count; - uint16_t defined_arg_count; /* for length function property */ - uint16_t stack_size; /* maximum stack size */ - JSContext *realm; /* function realm */ - JSValue *cpool; /* constant pool (self pointer) */ - int cpool_count; - int closure_var_count; - JSAtom filename; - int line_num; - int col_num; - int source_len; - int pc2line_len; - uint8_t *pc2line_buf; - char *source; -} JSFunctionBytecode; - -typedef struct JSBoundFunction { - JSValue func_obj; - JSValue this_val; - int argc; - JSValue argv[]; -} JSBoundFunction; - -typedef enum JSIteratorKindEnum { - JS_ITERATOR_KIND_KEY, - JS_ITERATOR_KIND_VALUE, - JS_ITERATOR_KIND_KEY_AND_VALUE, -} JSIteratorKindEnum; - -typedef enum JSIteratorHelperKindEnum { - JS_ITERATOR_HELPER_KIND_DROP, - JS_ITERATOR_HELPER_KIND_EVERY, - JS_ITERATOR_HELPER_KIND_FILTER, - JS_ITERATOR_HELPER_KIND_FIND, - JS_ITERATOR_HELPER_KIND_FLAT_MAP, - JS_ITERATOR_HELPER_KIND_FOR_EACH, - JS_ITERATOR_HELPER_KIND_MAP, - JS_ITERATOR_HELPER_KIND_SOME, - JS_ITERATOR_HELPER_KIND_TAKE, -} JSIteratorHelperKindEnum; - -typedef struct JSForInIterator { - JSValue obj; - bool is_array; - uint32_t array_length; - uint32_t idx; -} JSForInIterator; - -typedef struct JSRegExp { - JSString *pattern; - JSString *bytecode; /* also contains the flags */ -} JSRegExp; - -typedef struct JSProxyData { - JSValue target; - JSValue handler; - uint8_t is_func; - uint8_t is_revoked; -} JSProxyData; - -typedef struct JSArrayBuffer { - int byte_length; /* 0 if detached */ - int max_byte_length; /* -1 if not resizable; >= byte_length otherwise */ - uint8_t detached; - uint8_t shared; /* if shared, the array buffer cannot be detached */ - uint8_t *data; /* NULL if detached */ - struct list_head array_list; - void *opaque; - JSFreeArrayBufferDataFunc *free_func; -} JSArrayBuffer; - -typedef struct JSTypedArray { - struct list_head link; /* link to arraybuffer */ - JSObject *obj; /* back pointer to the TypedArray/DataView object */ - JSObject *buffer; /* based array buffer */ - uint32_t offset; /* byte offset in the array buffer */ - uint32_t length; /* byte length in the array buffer */ - bool track_rab; /* auto-track length of backing array buffer */ -} JSTypedArray; - -typedef struct JSAsyncFunctionState { - JSValue this_val; /* 'this' generator argument */ - int argc; /* number of function arguments */ - bool throw_flag; /* used to throw an exception in JS_CallInternal() */ - JSStackFrame frame; -} JSAsyncFunctionState; - -/* XXX: could use an object instead to avoid the - JS_TAG_ASYNC_FUNCTION tag for the GC */ -typedef struct JSAsyncFunctionData { - JSGCObjectHeader header; /* must come first */ - JSValue resolving_funcs[2]; - bool is_active; /* true if the async function state is valid */ - JSAsyncFunctionState func_state; -} JSAsyncFunctionData; - -typedef struct JSReqModuleEntry { - JSAtom module_name; - JSModuleDef *module; /* used using resolution */ -} JSReqModuleEntry; - -typedef enum JSExportTypeEnum { - JS_EXPORT_TYPE_LOCAL, - JS_EXPORT_TYPE_INDIRECT, -} JSExportTypeEnum; - -typedef struct JSExportEntry { - union { - struct { - int var_idx; /* closure variable index */ - JSVarRef *var_ref; /* if != NULL, reference to the variable */ - } local; /* for local export */ - int req_module_idx; /* module for indirect export */ - } u; - JSExportTypeEnum export_type; - JSAtom local_name; /* '*' if export ns from. not used for local - export after compilation */ - JSAtom export_name; /* exported variable name */ -} JSExportEntry; - -typedef struct JSStarExportEntry { - int req_module_idx; /* in req_module_entries */ -} JSStarExportEntry; - -typedef struct JSImportEntry { - int var_idx; /* closure variable index */ - JSAtom import_name; - int req_module_idx; /* in req_module_entries */ -} JSImportEntry; - -typedef enum { - JS_MODULE_STATUS_UNLINKED, - JS_MODULE_STATUS_LINKING, - JS_MODULE_STATUS_LINKED, - JS_MODULE_STATUS_EVALUATING, - JS_MODULE_STATUS_EVALUATING_ASYNC, - JS_MODULE_STATUS_EVALUATED, -} JSModuleStatus; - -struct JSModuleDef { - JSRefCountHeader header; /* must come first, 32-bit */ - JSAtom module_name; - struct list_head link; - - JSReqModuleEntry *req_module_entries; - int req_module_entries_count; - int req_module_entries_size; - - JSExportEntry *export_entries; - int export_entries_count; - int export_entries_size; - - JSStarExportEntry *star_export_entries; - int star_export_entries_count; - int star_export_entries_size; - - JSImportEntry *import_entries; - int import_entries_count; - int import_entries_size; - - JSValue module_ns; - JSValue func_obj; /* only used for JS modules */ - JSModuleInitFunc *init_func; /* only used for C modules */ - bool has_tla; /* true if func_obj contains await */ - bool resolved; - bool func_created; - JSModuleStatus status : 8; - /* temp use during js_module_link() & js_module_evaluate() */ - int dfs_index, dfs_ancestor_index; - JSModuleDef *stack_prev; - /* temp use during js_module_evaluate() */ - JSModuleDef **async_parent_modules; - int async_parent_modules_count; - int async_parent_modules_size; - int pending_async_dependencies; - bool async_evaluation; - int64_t async_evaluation_timestamp; - JSModuleDef *cycle_root; - JSValue promise; /* corresponds to spec field: capability */ - JSValue resolving_funcs[2]; /* corresponds to spec field: capability */ - /* true if evaluation yielded an exception. It is saved in - eval_exception */ - bool eval_has_exception; - JSValue eval_exception; - JSValue meta_obj; /* for import.meta */ -}; - -typedef struct JSJobEntry { - struct list_head link; - JSContext *ctx; - JSJobFunc *job_func; - int argc; - JSValue argv[]; -} JSJobEntry; - -typedef struct JSProperty { - union { - JSValue value; /* JS_PROP_NORMAL */ - struct { /* JS_PROP_GETSET */ - JSObject *getter; /* NULL if undefined */ - JSObject *setter; /* NULL if undefined */ - } getset; - JSVarRef *var_ref; /* JS_PROP_VARREF */ - struct { /* JS_PROP_AUTOINIT */ - /* in order to use only 2 pointers, we compress the realm - and the init function pointer */ - uintptr_t realm_and_id; /* realm and init_id (JS_AUTOINIT_ID_x) - in the 2 low bits */ - void *opaque; - } init; - } u; -} JSProperty; - -#define JS_PROP_INITIAL_SIZE 2 -#define JS_PROP_INITIAL_HASH_SIZE 4 /* must be a power of two */ -#define JS_ARRAY_INITIAL_SIZE 2 - -typedef struct JSShapeProperty { - uint32_t hash_next : 26; /* 0 if last in list */ - uint32_t flags : 6; /* JS_PROP_XXX */ - JSAtom atom; /* JS_ATOM_NULL = free property entry */ -} JSShapeProperty; - -struct JSShape { - /* hash table of size hash_mask + 1 before the start of the - structure (see prop_hash_end()). */ - JSGCObjectHeader header; - /* true if the shape is inserted in the shape hash table. If not, - JSShape.hash is not valid */ - uint8_t is_hashed; - /* If true, the shape may have small array index properties 'n' with 0 - <= n <= 2^31-1. If false, the shape is guaranteed not to have - small array index properties */ - uint8_t has_small_array_index; - uint32_t hash; /* current hash value */ - uint32_t prop_hash_mask; - int prop_size; /* allocated properties */ - int prop_count; /* include deleted properties */ - int deleted_prop_count; - JSShape *shape_hash_next; /* in JSRuntime.shape_hash[h] list */ - JSObject *proto; - JSShapeProperty prop[]; /* prop_size elements */ -}; - -struct JSObject { - union { - JSGCObjectHeader header; - struct { - int __gc_ref_count; /* corresponds to header.ref_count */ - uint8_t __gc_mark; /* corresponds to header.mark/gc_obj_type */ - - uint8_t extensible : 1; - uint8_t free_mark : 1; /* only used when freeing objects with cycles */ - uint8_t is_exotic : 1; /* true if object has exotic property handlers */ - uint8_t fast_array : 1; /* true if u.array is used for get/put (for JS_CLASS_ARRAY, JS_CLASS_ARGUMENTS and typed arrays) */ - uint8_t is_constructor : 1; /* true if object is a constructor function */ - uint8_t is_uncatchable_error : 1; /* if true, error is not catchable */ - uint8_t tmp_mark : 1; /* used in JS_WriteObjectRec() */ - uint8_t is_HTMLDDA : 1; /* specific annex B IsHtmlDDA behavior */ - uint16_t class_id; /* see JS_CLASS_x */ - }; - }; - /* byte offsets: 16/24 */ - JSShape *shape; /* prototype and property names + flag */ - JSProperty *prop; /* array of properties */ - /* byte offsets: 24/40 */ - JSWeakRefRecord *first_weak_ref; - /* byte offsets: 28/48 */ - union { - void *opaque; - struct JSBoundFunction *bound_function; /* JS_CLASS_BOUND_FUNCTION */ - struct JSCFunctionDataRecord *c_function_data_record; /* JS_CLASS_C_FUNCTION_DATA */ - struct JSForInIterator *for_in_iterator; /* JS_CLASS_FOR_IN_ITERATOR */ - struct JSArrayBuffer *array_buffer; /* JS_CLASS_ARRAY_BUFFER, JS_CLASS_SHARED_ARRAY_BUFFER */ - struct JSTypedArray *typed_array; /* JS_CLASS_UINT8C_ARRAY..JS_CLASS_DATAVIEW */ - struct JSMapState *map_state; /* JS_CLASS_MAP..JS_CLASS_WEAKSET */ - struct JSMapIteratorData *map_iterator_data; /* JS_CLASS_MAP_ITERATOR, JS_CLASS_SET_ITERATOR */ - struct JSArrayIteratorData *array_iterator_data; /* JS_CLASS_ARRAY_ITERATOR, JS_CLASS_STRING_ITERATOR */ - struct JSRegExpStringIteratorData *regexp_string_iterator_data; /* JS_CLASS_REGEXP_STRING_ITERATOR */ - struct JSGeneratorData *generator_data; /* JS_CLASS_GENERATOR */ - struct JSIteratorConcatData *iterator_concat_data; /* JS_CLASS_ITERATOR_CONCAT */ - struct JSIteratorHelperData *iterator_helper_data; /* JS_CLASS_ITERATOR_HELPER */ - struct JSIteratorWrapData *iterator_wrap_data; /* JS_CLASS_ITERATOR_WRAP */ - struct JSProxyData *proxy_data; /* JS_CLASS_PROXY */ - struct JSPromiseData *promise_data; /* JS_CLASS_PROMISE */ - struct JSPromiseFunctionData *promise_function_data; /* JS_CLASS_PROMISE_RESOLVE_FUNCTION, JS_CLASS_PROMISE_REJECT_FUNCTION */ - struct JSAsyncFunctionData *async_function_data; /* JS_CLASS_ASYNC_FUNCTION_RESOLVE, JS_CLASS_ASYNC_FUNCTION_REJECT */ - struct JSAsyncFromSyncIteratorData *async_from_sync_iterator_data; /* JS_CLASS_ASYNC_FROM_SYNC_ITERATOR */ - struct JSAsyncGeneratorData *async_generator_data; /* JS_CLASS_ASYNC_GENERATOR */ - struct { /* JS_CLASS_BYTECODE_FUNCTION: 12/24 bytes */ - /* also used by JS_CLASS_GENERATOR_FUNCTION, JS_CLASS_ASYNC_FUNCTION and JS_CLASS_ASYNC_GENERATOR_FUNCTION */ - struct JSFunctionBytecode *function_bytecode; - JSVarRef **var_refs; - JSObject *home_object; /* for 'super' access */ - } func; - struct { /* JS_CLASS_C_FUNCTION: 12/20 bytes */ - JSContext *realm; - JSCFunctionType c_function; - uint8_t length; - uint8_t cproto; - int16_t magic; - } cfunc; - /* array part for fast arrays and typed arrays */ - struct { /* JS_CLASS_ARRAY, JS_CLASS_ARGUMENTS, JS_CLASS_UINT8C_ARRAY..JS_CLASS_FLOAT64_ARRAY */ - union { - uint32_t size; /* JS_CLASS_ARRAY, JS_CLASS_ARGUMENTS */ - struct JSTypedArray *typed_array; /* JS_CLASS_UINT8C_ARRAY..JS_CLASS_FLOAT64_ARRAY */ - } u1; - union { - JSValue *values; /* JS_CLASS_ARRAY, JS_CLASS_ARGUMENTS */ - void *ptr; /* JS_CLASS_UINT8C_ARRAY..JS_CLASS_FLOAT64_ARRAY */ - int8_t *int8_ptr; /* JS_CLASS_INT8_ARRAY */ - uint8_t *uint8_ptr; /* JS_CLASS_UINT8_ARRAY, JS_CLASS_UINT8C_ARRAY */ - int16_t *int16_ptr; /* JS_CLASS_INT16_ARRAY */ - uint16_t *uint16_ptr; /* JS_CLASS_UINT16_ARRAY */ - int32_t *int32_ptr; /* JS_CLASS_INT32_ARRAY */ - uint32_t *uint32_ptr; /* JS_CLASS_UINT32_ARRAY */ - int64_t *int64_ptr; /* JS_CLASS_INT64_ARRAY */ - uint64_t *uint64_ptr; /* JS_CLASS_UINT64_ARRAY */ - uint16_t *fp16_ptr; /* JS_CLASS_FLOAT16_ARRAY */ - float *float_ptr; /* JS_CLASS_FLOAT32_ARRAY */ - double *double_ptr; /* JS_CLASS_FLOAT64_ARRAY */ - } u; - uint32_t count; /* <= 2^31-1. 0 for a detached typed array */ - } array; /* 12/20 bytes */ - JSRegExp regexp; /* JS_CLASS_REGEXP: 8/16 bytes */ - JSValue object_data; /* for JS_SetObjectData(): 8/16/16 bytes */ - } u; - /* byte sizes: 40/48/72 */ -}; - -typedef struct JSCallSiteData { - JSValue filename; - JSValue func; - JSValue func_name; - bool native; - int line_num; - int col_num; -} JSCallSiteData; - -enum { - __JS_ATOM_NULL = JS_ATOM_NULL, -#define DEF(name, str) JS_ATOM_ ## name, -#include "quickjs-atom.h" -#undef DEF - JS_ATOM_END, -}; -#define JS_ATOM_LAST_KEYWORD JS_ATOM_super -#define JS_ATOM_LAST_STRICT_KEYWORD JS_ATOM_yield - -static const char js_atom_init[] = -#define DEF(name, str) str "\0" -#include "quickjs-atom.h" -#undef DEF -; - -typedef enum OPCodeFormat { -#define FMT(f) OP_FMT_ ## f, -#define DEF(id, size, n_pop, n_push, f) -#include "quickjs-opcode.h" -#undef DEF -#undef FMT -} OPCodeFormat; - -typedef enum OPCodeEnum { -#define FMT(f) -#define DEF(id, size, n_pop, n_push, f) OP_ ## id, -#define def(id, size, n_pop, n_push, f) -#include "quickjs-opcode.h" -#undef def -#undef DEF -#undef FMT - OP_COUNT, /* excluding temporary opcodes */ - /* temporary opcodes : overlap with the short opcodes */ - OP_TEMP_START = OP_nop + 1, - OP___dummy = OP_TEMP_START - 1, -#define FMT(f) -#define DEF(id, size, n_pop, n_push, f) -#define def(id, size, n_pop, n_push, f) OP_ ## id, -#include "quickjs-opcode.h" -#undef def -#undef DEF -#undef FMT - OP_TEMP_END, -} OPCodeEnum; - -static int JS_InitAtoms(JSRuntime *rt); -static JSAtom __JS_NewAtomInit(JSRuntime *rt, const char *str, int len, - int atom_type); -static void JS_FreeAtomStruct(JSRuntime *rt, JSAtomStruct *p); -static void free_function_bytecode(JSRuntime *rt, JSFunctionBytecode *b); -static JSValue js_call_c_function(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, int flags); -static JSValue js_call_bound_function(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, int flags); -static JSValue JS_CallInternal(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, JSValueConst new_target, - int argc, JSValueConst *argv, int flags); -static JSValue JS_CallConstructorInternal(JSContext *ctx, - JSValueConst func_obj, - JSValueConst new_target, - int argc, JSValueConst *argv, int flags); -static JSValue JS_CallFree(JSContext *ctx, JSValue func_obj, JSValueConst this_obj, - int argc, JSValueConst *argv); -static JSValue JS_InvokeFree(JSContext *ctx, JSValue this_val, JSAtom atom, - int argc, JSValueConst *argv); -static __exception int JS_ToArrayLengthFree(JSContext *ctx, uint32_t *plen, - JSValue val, bool is_array_ctor); -static JSValue JS_EvalObject(JSContext *ctx, JSValueConst this_obj, - JSValueConst val, int flags, int scope_idx); -static __maybe_unused void JS_DumpString(JSRuntime *rt, JSString *p); -static __maybe_unused void JS_DumpObjectHeader(JSRuntime *rt); -static __maybe_unused void JS_DumpObject(JSRuntime *rt, JSObject *p); -static __maybe_unused void JS_DumpGCObject(JSRuntime *rt, JSGCObjectHeader *p); -static __maybe_unused void JS_DumpValue(JSRuntime *rt, JSValueConst val); -static __maybe_unused void JS_DumpAtoms(JSRuntime *rt); -static __maybe_unused void JS_DumpShapes(JSRuntime *rt); - -static JSValue js_function_apply(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic); -static void js_array_finalizer(JSRuntime *rt, JSValueConst val); -static void js_array_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_object_data_finalizer(JSRuntime *rt, JSValueConst val); -static void js_object_data_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_c_function_finalizer(JSRuntime *rt, JSValueConst val); -static void js_c_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_bytecode_function_finalizer(JSRuntime *rt, JSValueConst val); -static void js_bytecode_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_bound_function_finalizer(JSRuntime *rt, JSValueConst val); -static void js_bound_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_for_in_iterator_finalizer(JSRuntime *rt, JSValueConst val); -static void js_for_in_iterator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_regexp_finalizer(JSRuntime *rt, JSValueConst val); -static void js_array_buffer_finalizer(JSRuntime *rt, JSValueConst val); -static void js_typed_array_finalizer(JSRuntime *rt, JSValueConst val); -static void js_typed_array_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_proxy_finalizer(JSRuntime *rt, JSValueConst val); -static void js_proxy_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_map_finalizer(JSRuntime *rt, JSValueConst val); -static void js_map_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_map_iterator_finalizer(JSRuntime *rt, JSValueConst val); -static void js_map_iterator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_array_iterator_finalizer(JSRuntime *rt, JSValueConst val); -static void js_array_iterator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_iterator_concat_finalizer(JSRuntime *rt, JSValueConst val); -static void js_iterator_concat_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_iterator_helper_finalizer(JSRuntime *rt, JSValueConst val); -static void js_iterator_helper_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_iterator_wrap_finalizer(JSRuntime *rt, JSValueConst val); -static void js_iterator_wrap_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_regexp_string_iterator_finalizer(JSRuntime *rt, - JSValueConst val); -static void js_regexp_string_iterator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_generator_finalizer(JSRuntime *rt, JSValueConst val); -static void js_generator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_promise_finalizer(JSRuntime *rt, JSValueConst val); -static void js_promise_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static void js_promise_resolve_function_finalizer(JSRuntime *rt, JSValueConst val); -static void js_promise_resolve_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); - -#define HINT_STRING 0 -#define HINT_NUMBER 1 -#define HINT_NONE 2 -#define HINT_FORCE_ORDINARY (1 << 4) // don't try Symbol.toPrimitive -static JSValue JS_ToPrimitiveFree(JSContext *ctx, JSValue val, int hint); -static JSValue JS_ToStringFree(JSContext *ctx, JSValue val); -static int JS_ToBoolFree(JSContext *ctx, JSValue val); -static int JS_ToInt32Free(JSContext *ctx, int32_t *pres, JSValue val); -static int JS_ToFloat64Free(JSContext *ctx, double *pres, JSValue val); -static int JS_ToUint8ClampFree(JSContext *ctx, int32_t *pres, JSValue val); -static JSValue JS_ToPropertyKeyInternal(JSContext *ctx, JSValueConst val, - int flags); -static JSValue js_new_string8_len(JSContext *ctx, const char *buf, int len); -static JSValue js_compile_regexp(JSContext *ctx, JSValueConst pattern, - JSValueConst flags); -static JSValue js_regexp_constructor_internal(JSContext *ctx, JSValueConst ctor, - JSValue pattern, JSValue bc); -static void gc_decref(JSRuntime *rt); -static int JS_NewClass1(JSRuntime *rt, JSClassID class_id, - const JSClassDef *class_def, JSAtom name); -static JSValue js_array_push(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int unshift); -static JSValue js_array_constructor(JSContext *ctx, JSValueConst new_target, - int argc, JSValueConst *argv); -static JSValue js_error_constructor(JSContext *ctx, JSValueConst new_target, - int argc, JSValueConst *argv, int magic); -static JSValue js_object_defineProperty(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic); - -typedef enum JSStrictEqModeEnum { - JS_EQ_STRICT, - JS_EQ_SAME_VALUE, - JS_EQ_SAME_VALUE_ZERO, -} JSStrictEqModeEnum; - -static bool js_strict_eq2(JSContext *ctx, JSValue op1, JSValue op2, - JSStrictEqModeEnum eq_mode); -static bool js_strict_eq(JSContext *ctx, JSValue op1, JSValue op2); -static bool js_same_value(JSContext *ctx, JSValueConst op1, JSValueConst op2); -static bool js_same_value_zero(JSContext *ctx, JSValueConst op1, JSValueConst op2); -static JSValue JS_ToObjectFree(JSContext *ctx, JSValue val); -static JSProperty *add_property(JSContext *ctx, - JSObject *p, JSAtom prop, int prop_flags); -static int JS_ToBigInt64Free(JSContext *ctx, int64_t *pres, JSValue val); -static JSValue JS_ThrowStackOverflow(JSContext *ctx); -static JSValue JS_ThrowTypeErrorRevokedProxy(JSContext *ctx); -static JSValue js_proxy_getPrototypeOf(JSContext *ctx, JSValueConst obj); -static int js_proxy_setPrototypeOf(JSContext *ctx, JSValueConst obj, - JSValueConst proto_val, bool throw_flag); -static int js_proxy_isExtensible(JSContext *ctx, JSValueConst obj); -static int js_proxy_preventExtensions(JSContext *ctx, JSValueConst obj); -static int js_proxy_isArray(JSContext *ctx, JSValueConst obj); -static int JS_CreateProperty(JSContext *ctx, JSObject *p, - JSAtom prop, JSValueConst val, - JSValueConst getter, JSValueConst setter, - int flags); -static int js_string_memcmp(JSString *p1, JSString *p2, int len); -static void reset_weak_ref(JSRuntime *rt, JSWeakRefRecord **first_weak_ref); -static bool is_valid_weakref_target(JSValueConst val); -static void insert_weakref_record(JSValueConst target, - struct JSWeakRefRecord *wr); -static JSValue js_array_buffer_constructor3(JSContext *ctx, - JSValueConst new_target, - uint64_t len, uint64_t *max_len, - JSClassID class_id, - uint8_t *buf, - JSFreeArrayBufferDataFunc *free_func, - void *opaque, bool alloc_flag); -static void js_array_buffer_free(JSRuntime *rt, void *opaque, void *ptr); -static JSArrayBuffer *js_get_array_buffer(JSContext *ctx, JSValueConst obj); -static bool array_buffer_is_resizable(const JSArrayBuffer *abuf); -static JSValue js_typed_array_constructor(JSContext *ctx, - JSValueConst this_val, - int argc, JSValueConst *argv, - int classid); -static JSValue js_typed_array_constructor_ta(JSContext *ctx, - JSValueConst new_target, - JSValueConst src_obj, - int classid, uint32_t len); -static bool is_typed_array(JSClassID class_id); -static bool typed_array_is_oob(JSObject *p); -static uint32_t typed_array_length(JSObject *p); -static JSValue JS_ThrowTypeErrorDetachedArrayBuffer(JSContext *ctx); -static JSValue JS_ThrowTypeErrorArrayBufferOOB(JSContext *ctx); -static JSVarRef *get_var_ref(JSContext *ctx, JSStackFrame *sf, int var_idx, - bool is_arg); -static JSValue js_call_generator_function(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, - int flags); -static void js_async_function_resolve_finalizer(JSRuntime *rt, - JSValueConst val); -static void js_async_function_resolve_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static JSValue JS_EvalInternal(JSContext *ctx, JSValueConst this_obj, - const char *input, size_t input_len, - const char *filename, int line, int flags, int scope_idx); -static void js_free_module_def(JSContext *ctx, JSModuleDef *m); -static void js_mark_module_def(JSRuntime *rt, JSModuleDef *m, - JS_MarkFunc *mark_func); -static JSValue js_import_meta(JSContext *ctx); -static JSValue js_dynamic_import(JSContext *ctx, JSValueConst specifier); -static void free_var_ref(JSRuntime *rt, JSVarRef *var_ref); -static JSValue js_new_promise_capability(JSContext *ctx, - JSValue *resolving_funcs, - JSValueConst ctor); -static __exception int perform_promise_then(JSContext *ctx, - JSValueConst promise, - JSValueConst *resolve_reject, - JSValueConst *cap_resolving_funcs); -static JSValue js_promise_resolve(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic); -static JSValue js_promise_then(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv); -static JSValue js_promise_resolve_thenable_job(JSContext *ctx, - int argc, JSValueConst *argv); -static bool js_string_eq(JSString *p1, JSString *p2); -static int js_string_compare(JSString *p1, JSString *p2); -static int JS_SetPropertyValue(JSContext *ctx, JSValueConst this_obj, - JSValue prop, JSValue val, int flags); -static int JS_NumberIsInteger(JSContext *ctx, JSValueConst val); -static bool JS_NumberIsNegativeOrMinusZero(JSContext *ctx, JSValueConst val); -static JSValue JS_ToNumberFree(JSContext *ctx, JSValue val); -static int JS_GetOwnPropertyInternal(JSContext *ctx, JSPropertyDescriptor *desc, - JSObject *p, JSAtom prop); -static void js_free_desc(JSContext *ctx, JSPropertyDescriptor *desc); -static void async_func_mark(JSRuntime *rt, JSAsyncFunctionState *s, - JS_MarkFunc *mark_func); -static void JS_AddIntrinsicBasicObjects(JSContext *ctx); -static void js_free_shape(JSRuntime *rt, JSShape *sh); -static void js_free_shape_null(JSRuntime *rt, JSShape *sh); -static int js_shape_prepare_update(JSContext *ctx, JSObject *p, - JSShapeProperty **pprs); -static int init_shape_hash(JSRuntime *rt); -static __exception int js_get_length32(JSContext *ctx, uint32_t *pres, - JSValueConst obj); -static __exception int js_get_length64(JSContext *ctx, int64_t *pres, - JSValueConst obj); -static __exception int js_set_length64(JSContext *ctx, JSValueConst obj, - int64_t len); -static void free_arg_list(JSContext *ctx, JSValue *tab, uint32_t len); -static JSValue *build_arg_list(JSContext *ctx, uint32_t *plen, - JSValueConst array_arg); -static JSValue js_create_array(JSContext *ctx, int len, JSValueConst *tab); -static bool js_get_fast_array(JSContext *ctx, JSValue obj, - JSValue **arrpp, uint32_t *countp); -static int expand_fast_array(JSContext *ctx, JSObject *p, uint32_t new_len); -static JSValue JS_CreateAsyncFromSyncIterator(JSContext *ctx, - JSValue sync_iter); -static void js_c_function_data_finalizer(JSRuntime *rt, JSValueConst val); -static void js_c_function_data_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func); -static JSValue js_call_c_function_data(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_val, - int argc, JSValueConst *argv, int flags); -static JSAtom js_symbol_to_atom(JSContext *ctx, JSValueConst val); -static void add_gc_object(JSRuntime *rt, JSGCObjectHeader *h, - JSGCObjectTypeEnum type); -static void remove_gc_object(JSGCObjectHeader *h); -static void js_async_function_free0(JSRuntime *rt, JSAsyncFunctionData *s); -static JSValue js_instantiate_prototype(JSContext *ctx, JSObject *p, JSAtom atom, void *opaque); -static JSValue js_module_ns_autoinit(JSContext *ctx, JSObject *p, JSAtom atom, - void *opaque); -static JSValue JS_InstantiateFunctionListItem2(JSContext *ctx, JSObject *p, - JSAtom atom, void *opaque); - -static void js_set_uncatchable_error(JSContext *ctx, JSValueConst val, - bool flag); - -static JSValue js_new_callsite(JSContext *ctx, JSCallSiteData *csd); -static void js_new_callsite_data(JSContext *ctx, JSCallSiteData *csd, JSStackFrame *sf); -static void js_new_callsite_data2(JSContext *ctx, JSCallSiteData *csd, const char *filename, int line_num, int col_num); -static void _JS_AddIntrinsicCallSite(JSContext *ctx); - -static void JS_SetOpaqueInternal(JSValueConst obj, void *opaque); - -static const JSClassExoticMethods js_arguments_exotic_methods; -static const JSClassExoticMethods js_string_exotic_methods; -static const JSClassExoticMethods js_proxy_exotic_methods; -static const JSClassExoticMethods js_module_ns_exotic_methods; - -static inline bool double_is_int32(double d) -{ - uint64_t u, e; - JSFloat64Union t; - - t.d = d; - u = t.u64; - - e = ((u >> 52) & 0x7FF) - 1023; - if (e > 30) { - // accept 0, INT32_MIN, reject too large, too small, nan, inf, -0 - return !u || (u == 0xc1e0000000000000); - } else { - // shift out sign, exponent and whole part bits - // value is fractional if remaining low bits are non-zero - return !(u << 12 << e); - } -} - -static JSValue js_float64(double d) -{ - return __JS_NewFloat64(d); -} - -static int compare_u32(uint32_t a, uint32_t b) -{ - return -(a < b) + (b < a); // -1, 0 or 1 -} - -static JSValue js_int32(int32_t v) -{ - return JS_MKVAL(JS_TAG_INT, v); -} - -static JSValue js_uint32(uint32_t v) -{ - if (v <= INT32_MAX) - return js_int32(v); - else - return js_float64(v); -} - -static JSValue js_int64(int64_t v) -{ - if (v >= INT32_MIN && v <= INT32_MAX) - return js_int32(v); - else - return js_float64(v); -} - -static JSValue js_number(double d) -{ - if (double_is_int32(d)) - return js_int32((int32_t)d); - else - return js_float64(d); -} - -JSValue JS_NewNumber(JSContext *ctx, double d) -{ - return js_number(d); -} - -static JSValue js_bool(bool v) -{ - return JS_MKVAL(JS_TAG_BOOL, (v != 0)); -} - -static JSValue js_dup(JSValueConst v) -{ - if (JS_VALUE_HAS_REF_COUNT(v)) { - JSRefCountHeader *p = (JSRefCountHeader *)JS_VALUE_GET_PTR(v); - p->ref_count++; - } - return unsafe_unconst(v); -} - -JSValue JS_DupValue(JSContext *ctx, JSValueConst v) -{ - return js_dup(v); -} - -JSValue JS_DupValueRT(JSRuntime *rt, JSValueConst v) -{ - return js_dup(v); -} - -static void js_trigger_gc(JSRuntime *rt, size_t size) -{ - bool force_gc; -#ifdef FORCE_GC_AT_MALLOC - force_gc = true; -#else - force_gc = ((rt->malloc_state.malloc_size + size) > - rt->malloc_gc_threshold); -#endif - if (force_gc) { -#ifdef ENABLE_DUMPS // JS_DUMP_GC - if (check_dump_flag(rt, JS_DUMP_GC)) { - printf("GC: size=%zd\n", rt->malloc_state.malloc_size); - } -#endif - JS_RunGC(rt); - rt->malloc_gc_threshold = rt->malloc_state.malloc_size + - (rt->malloc_state.malloc_size >> 1); - } -} - -static size_t js_malloc_usable_size_unknown(const void *ptr) -{ - return 0; -} - -void *js_calloc_rt(JSRuntime *rt, size_t count, size_t size) -{ - void *ptr; - JSMallocState *s; - - /* Do not allocate zero bytes: behavior is platform dependent */ - assert(count != 0 && size != 0); - - if (size > 0) - if (unlikely(count != (count * size) / size)) - return NULL; - - s = &rt->malloc_state; - /* When malloc_limit is 0 (unlimited), malloc_limit - 1 will be SIZE_MAX. */ - if (unlikely(s->malloc_size + (count * size) > s->malloc_limit - 1)) - return NULL; - - ptr = rt->mf.js_calloc(s->opaque, count, size); - if (!ptr) - return NULL; - - s->malloc_count++; - s->malloc_size += rt->mf.js_malloc_usable_size(ptr) + MALLOC_OVERHEAD; - return ptr; -} - -void *js_malloc_rt(JSRuntime *rt, size_t size) -{ - void *ptr; - JSMallocState *s; - - /* Do not allocate zero bytes: behavior is platform dependent */ - assert(size != 0); - - s = &rt->malloc_state; - /* When malloc_limit is 0 (unlimited), malloc_limit - 1 will be SIZE_MAX. */ - if (unlikely(s->malloc_size + size > s->malloc_limit - 1)) - return NULL; - - ptr = rt->mf.js_malloc(s->opaque, size); - if (!ptr) - return NULL; - - s->malloc_count++; - s->malloc_size += rt->mf.js_malloc_usable_size(ptr) + MALLOC_OVERHEAD; - return ptr; -} - -void js_free_rt(JSRuntime *rt, void *ptr) -{ - JSMallocState *s; - - if (!ptr) - return; - - s = &rt->malloc_state; - s->malloc_count--; - s->malloc_size -= rt->mf.js_malloc_usable_size(ptr) + MALLOC_OVERHEAD; - rt->mf.js_free(s->opaque, ptr); -} - -void *js_realloc_rt(JSRuntime *rt, void *ptr, size_t size) -{ - size_t old_size; - JSMallocState *s; - - if (!ptr) { - if (size == 0) - return NULL; - return js_malloc_rt(rt, size); - } - if (unlikely(size == 0)) { - js_free_rt(rt, ptr); - return NULL; - } - old_size = rt->mf.js_malloc_usable_size(ptr); - s = &rt->malloc_state; - /* When malloc_limit is 0 (unlimited), malloc_limit - 1 will be SIZE_MAX. */ - if (s->malloc_size + size - old_size > s->malloc_limit - 1) - return NULL; - - ptr = rt->mf.js_realloc(s->opaque, ptr, size); - if (!ptr) - return NULL; - - s->malloc_size += rt->mf.js_malloc_usable_size(ptr) - old_size; - return ptr; -} - -size_t js_malloc_usable_size_rt(JSRuntime *rt, const void *ptr) -{ - return rt->mf.js_malloc_usable_size(ptr); -} - -/** - * This used to be implemented as malloc + memset, but using calloc - * yields better performance in initial, bursty allocations, something useful - * for QuickJS. - * - * More information: https://github.com/quickjs-ng/quickjs/pull/519 - */ -void *js_mallocz_rt(JSRuntime *rt, size_t size) -{ - return js_calloc_rt(rt, 1, size); -} - -/* Throw out of memory in case of error */ -void *js_calloc(JSContext *ctx, size_t count, size_t size) -{ - void *ptr; - ptr = js_calloc_rt(ctx->rt, count, size); - if (unlikely(!ptr)) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - return ptr; -} - -/* Throw out of memory in case of error */ -void *js_malloc(JSContext *ctx, size_t size) -{ - void *ptr; - ptr = js_malloc_rt(ctx->rt, size); - if (unlikely(!ptr)) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - return ptr; -} - -/* Throw out of memory in case of error */ -void *js_mallocz(JSContext *ctx, size_t size) -{ - void *ptr; - ptr = js_mallocz_rt(ctx->rt, size); - if (unlikely(!ptr)) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - return ptr; -} - -void js_free(JSContext *ctx, void *ptr) -{ - js_free_rt(ctx->rt, ptr); -} - -/* Throw out of memory in case of error */ -void *js_realloc(JSContext *ctx, void *ptr, size_t size) -{ - void *ret; - ret = js_realloc_rt(ctx->rt, ptr, size); - if (unlikely(!ret && size != 0)) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - return ret; -} - -/* store extra allocated size in *pslack if successful */ -void *js_realloc2(JSContext *ctx, void *ptr, size_t size, size_t *pslack) -{ - void *ret; - ret = js_realloc_rt(ctx->rt, ptr, size); - if (unlikely(!ret && size != 0)) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - if (pslack) { - size_t new_size = js_malloc_usable_size_rt(ctx->rt, ret); - *pslack = (new_size > size) ? new_size - size : 0; - } - return ret; -} - -size_t js_malloc_usable_size(JSContext *ctx, const void *ptr) -{ - return js_malloc_usable_size_rt(ctx->rt, ptr); -} - -/* Throw out of memory exception in case of error */ -char *js_strndup(JSContext *ctx, const char *s, size_t n) -{ - char *ptr; - ptr = js_malloc(ctx, n + 1); - if (ptr) { - memcpy(ptr, s, n); - ptr[n] = '\0'; - } - return ptr; -} - -char *js_strdup(JSContext *ctx, const char *str) -{ - return js_strndup(ctx, str, strlen(str)); -} - -static no_inline int js_realloc_array(JSContext *ctx, void **parray, - int elem_size, int *psize, int req_size) -{ - int new_size; - size_t slack; - void *new_array; - /* XXX: potential arithmetic overflow */ - new_size = max_int(req_size, *psize * 3 / 2); - new_array = js_realloc2(ctx, *parray, new_size * elem_size, &slack); - if (!new_array) - return -1; - new_size += slack / elem_size; - *psize = new_size; - *parray = new_array; - return 0; -} - -/* resize the array and update its size if req_size > *psize */ -static inline int js_resize_array(JSContext *ctx, void **parray, int elem_size, - int *psize, int req_size) -{ - if (unlikely(req_size > *psize)) - return js_realloc_array(ctx, parray, elem_size, psize, req_size); - else - return 0; -} - -static void *js_dbuf_realloc(void *ctx, void *ptr, size_t size) -{ - return js_realloc(ctx, ptr, size); -} - -static inline void js_dbuf_init(JSContext *ctx, DynBuf *s) -{ - dbuf_init2(s, ctx, js_dbuf_realloc); -} - -static inline int is_digit(int c) { - return c >= '0' && c <= '9'; -} - -static inline int string_get(JSString *p, int idx) { - return p->is_wide_char ? str16(p)[idx] : str8(p)[idx]; -} - -typedef struct JSClassShortDef { - JSAtom class_name; - JSClassFinalizer *finalizer; - JSClassGCMark *gc_mark; -} JSClassShortDef; - -static JSClassShortDef const js_std_class_def[] = { - { JS_ATOM_Object, NULL, NULL }, /* JS_CLASS_OBJECT */ - { JS_ATOM_Array, js_array_finalizer, js_array_mark }, /* JS_CLASS_ARRAY */ - { JS_ATOM_Error, NULL, NULL }, /* JS_CLASS_ERROR */ - { JS_ATOM_Number, js_object_data_finalizer, js_object_data_mark }, /* JS_CLASS_NUMBER */ - { JS_ATOM_String, js_object_data_finalizer, js_object_data_mark }, /* JS_CLASS_STRING */ - { JS_ATOM_Boolean, js_object_data_finalizer, js_object_data_mark }, /* JS_CLASS_BOOLEAN */ - { JS_ATOM_Symbol, js_object_data_finalizer, js_object_data_mark }, /* JS_CLASS_SYMBOL */ - { JS_ATOM_Arguments, js_array_finalizer, js_array_mark }, /* JS_CLASS_ARGUMENTS */ - { JS_ATOM_Arguments, NULL, NULL }, /* JS_CLASS_MAPPED_ARGUMENTS */ - { JS_ATOM_Date, js_object_data_finalizer, js_object_data_mark }, /* JS_CLASS_DATE */ - { JS_ATOM_Object, NULL, NULL }, /* JS_CLASS_MODULE_NS */ - { JS_ATOM_Function, js_c_function_finalizer, js_c_function_mark }, /* JS_CLASS_C_FUNCTION */ - { JS_ATOM_Function, js_bytecode_function_finalizer, js_bytecode_function_mark }, /* JS_CLASS_BYTECODE_FUNCTION */ - { JS_ATOM_Function, js_bound_function_finalizer, js_bound_function_mark }, /* JS_CLASS_BOUND_FUNCTION */ - { JS_ATOM_Function, js_c_function_data_finalizer, js_c_function_data_mark }, /* JS_CLASS_C_FUNCTION_DATA */ - { JS_ATOM_GeneratorFunction, js_bytecode_function_finalizer, js_bytecode_function_mark }, /* JS_CLASS_GENERATOR_FUNCTION */ - { JS_ATOM_ForInIterator, js_for_in_iterator_finalizer, js_for_in_iterator_mark }, /* JS_CLASS_FOR_IN_ITERATOR */ - { JS_ATOM_RegExp, js_regexp_finalizer, NULL }, /* JS_CLASS_REGEXP */ - { JS_ATOM_ArrayBuffer, js_array_buffer_finalizer, NULL }, /* JS_CLASS_ARRAY_BUFFER */ - { JS_ATOM_SharedArrayBuffer, js_array_buffer_finalizer, NULL }, /* JS_CLASS_SHARED_ARRAY_BUFFER */ - { JS_ATOM_Uint8ClampedArray, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_UINT8C_ARRAY */ - { JS_ATOM_Int8Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_INT8_ARRAY */ - { JS_ATOM_Uint8Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_UINT8_ARRAY */ - { JS_ATOM_Int16Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_INT16_ARRAY */ - { JS_ATOM_Uint16Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_UINT16_ARRAY */ - { JS_ATOM_Int32Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_INT32_ARRAY */ - { JS_ATOM_Uint32Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_UINT32_ARRAY */ - { JS_ATOM_BigInt64Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_BIG_INT64_ARRAY */ - { JS_ATOM_BigUint64Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_BIG_UINT64_ARRAY */ - { JS_ATOM_Float16Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_FLOAT16_ARRAY */ - { JS_ATOM_Float32Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_FLOAT32_ARRAY */ - { JS_ATOM_Float64Array, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_FLOAT64_ARRAY */ - { JS_ATOM_DataView, js_typed_array_finalizer, js_typed_array_mark }, /* JS_CLASS_DATAVIEW */ - { JS_ATOM_BigInt, js_object_data_finalizer, js_object_data_mark }, /* JS_CLASS_BIG_INT */ - { JS_ATOM_Map, js_map_finalizer, js_map_mark }, /* JS_CLASS_MAP */ - { JS_ATOM_Set, js_map_finalizer, js_map_mark }, /* JS_CLASS_SET */ - { JS_ATOM_WeakMap, js_map_finalizer, NULL }, /* JS_CLASS_WEAKMAP */ - { JS_ATOM_WeakSet, js_map_finalizer, NULL }, /* JS_CLASS_WEAKSET */ - { JS_ATOM_Iterator, NULL, NULL }, /* JS_CLASS_ITERATOR */ - { JS_ATOM_IteratorConcat, js_iterator_concat_finalizer, js_iterator_concat_mark }, /* JS_CLASS_ITERATOR_CONCAT */ - { JS_ATOM_IteratorHelper, js_iterator_helper_finalizer, js_iterator_helper_mark }, /* JS_CLASS_ITERATOR_HELPER */ - { JS_ATOM_IteratorWrap, js_iterator_wrap_finalizer, js_iterator_wrap_mark }, /* JS_CLASS_ITERATOR_WRAP */ - { JS_ATOM_Map_Iterator, js_map_iterator_finalizer, js_map_iterator_mark }, /* JS_CLASS_MAP_ITERATOR */ - { JS_ATOM_Set_Iterator, js_map_iterator_finalizer, js_map_iterator_mark }, /* JS_CLASS_SET_ITERATOR */ - { JS_ATOM_Array_Iterator, js_array_iterator_finalizer, js_array_iterator_mark }, /* JS_CLASS_ARRAY_ITERATOR */ - { JS_ATOM_String_Iterator, js_array_iterator_finalizer, js_array_iterator_mark }, /* JS_CLASS_STRING_ITERATOR */ - { JS_ATOM_RegExp_String_Iterator, js_regexp_string_iterator_finalizer, js_regexp_string_iterator_mark }, /* JS_CLASS_REGEXP_STRING_ITERATOR */ - { JS_ATOM_Generator, js_generator_finalizer, js_generator_mark }, /* JS_CLASS_GENERATOR */ -}; - -static int init_class_range(JSRuntime *rt, JSClassShortDef const *tab, - int start, int count) -{ - JSClassDef cm_s, *cm = &cm_s; - int i, class_id; - - for(i = 0; i < count; i++) { - class_id = i + start; - memset(cm, 0, sizeof(*cm)); - cm->finalizer = tab[i].finalizer; - cm->gc_mark = tab[i].gc_mark; - if (JS_NewClass1(rt, class_id, cm, tab[i].class_name) < 0) - return -1; - } - return 0; -} - -/* Uses code from LLVM project. */ -static inline uintptr_t js_get_stack_pointer(void) -{ -#if defined(__clang__) || defined(__GNUC__) - return (uintptr_t)__builtin_frame_address(0); -#elif defined(_MSC_VER) - return (uintptr_t)_AddressOfReturnAddress(); -#else - char CharOnStack = 0; - // The volatile store here is intended to escape the local variable, to - // prevent the compiler from optimizing CharOnStack into anything other - // than a char on the stack. - // - // Tested on: MSVC 2015 - 2019, GCC 4.9 - 9, Clang 3.2 - 9, ICC 13 - 19. - char *volatile Ptr = &CharOnStack; - return (uintptr_t) Ptr; -#endif -} - -static inline bool js_check_stack_overflow(JSRuntime *rt, size_t alloca_size) -{ - uintptr_t sp; - sp = js_get_stack_pointer() - alloca_size; - return unlikely(sp < rt->stack_limit); -} - -JSRuntime *JS_NewRuntime2(const JSMallocFunctions *mf, void *opaque) -{ - JSRuntime *rt; - JSMallocState ms; - - memset(&ms, 0, sizeof(ms)); - ms.opaque = opaque; - ms.malloc_limit = 0; - - rt = mf->js_calloc(opaque, 1, sizeof(JSRuntime)); - if (!rt) - return NULL; - rt->mf = *mf; - if (!rt->mf.js_malloc_usable_size) { - /* use dummy function if none provided */ - rt->mf.js_malloc_usable_size = js_malloc_usable_size_unknown; - } - /* Inline what js_malloc_rt does since we cannot use it here. */ - ms.malloc_count++; - ms.malloc_size += rt->mf.js_malloc_usable_size(rt) + MALLOC_OVERHEAD; - rt->malloc_state = ms; - rt->malloc_gc_threshold = 256 * 1024; - - init_list_head(&rt->context_list); - init_list_head(&rt->gc_obj_list); - init_list_head(&rt->gc_zero_ref_count_list); - rt->gc_phase = JS_GC_PHASE_NONE; - -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - init_list_head(&rt->string_list); -#endif - init_list_head(&rt->job_list); - init_list_head(&rt->weakref_keepalive_list); - - if (JS_InitAtoms(rt)) - goto fail; - - /* create the object, array and function classes */ - if (init_class_range(rt, js_std_class_def, JS_CLASS_OBJECT, - countof(js_std_class_def)) < 0) - goto fail; - rt->class_array[JS_CLASS_ARGUMENTS].exotic = &js_arguments_exotic_methods; - rt->class_array[JS_CLASS_STRING].exotic = &js_string_exotic_methods; - rt->class_array[JS_CLASS_MODULE_NS].exotic = &js_module_ns_exotic_methods; - - rt->class_array[JS_CLASS_C_FUNCTION].call = js_call_c_function; - rt->class_array[JS_CLASS_C_FUNCTION_DATA].call = js_call_c_function_data; - rt->class_array[JS_CLASS_BOUND_FUNCTION].call = js_call_bound_function; - rt->class_array[JS_CLASS_GENERATOR_FUNCTION].call = js_call_generator_function; - if (init_shape_hash(rt)) - goto fail; - - rt->js_class_id_alloc = JS_CLASS_INIT_COUNT; - - rt->stack_size = JS_DEFAULT_STACK_SIZE; -#ifdef __wasi__ - rt->stack_size = 0; -#endif - - JS_UpdateStackTop(rt); - - rt->current_exception = JS_UNINITIALIZED; - - return rt; - fail: - JS_FreeRuntime(rt); - return NULL; -} - -void *JS_GetRuntimeOpaque(JSRuntime *rt) -{ - return rt->user_opaque; -} - -void JS_SetRuntimeOpaque(JSRuntime *rt, void *opaque) -{ - rt->user_opaque = opaque; -} - -int JS_AddRuntimeFinalizer(JSRuntime *rt, JSRuntimeFinalizer *finalizer, - void *arg) -{ - JSRuntimeFinalizerState *fs = js_malloc_rt(rt, sizeof(*fs)); - if (!fs) - return -1; - fs->next = rt->finalizers; - fs->finalizer = finalizer; - fs->arg = arg; - rt->finalizers = fs; - return 0; -} - -static void *js_def_calloc(void *opaque, size_t count, size_t size) -{ - return calloc(count, size); -} - -static void *js_def_malloc(void *opaque, size_t size) -{ - return malloc(size); -} - -static void js_def_free(void *opaque, void *ptr) -{ - free(ptr); -} - -static void *js_def_realloc(void *opaque, void *ptr, size_t size) -{ - return realloc(ptr, size); -} - -static const JSMallocFunctions def_malloc_funcs = { - js_def_calloc, - js_def_malloc, - js_def_free, - js_def_realloc, - js__malloc_usable_size -}; - -JSRuntime *JS_NewRuntime(void) -{ - return JS_NewRuntime2(&def_malloc_funcs, NULL); -} - -void JS_SetMemoryLimit(JSRuntime *rt, size_t limit) -{ - rt->malloc_state.malloc_limit = limit; -} - -void JS_SetDumpFlags(JSRuntime *rt, uint64_t flags) -{ -#ifdef ENABLE_DUMPS - rt->dump_flags = flags; -#endif -} - -uint64_t JS_GetDumpFlags(JSRuntime *rt) -{ -#ifdef ENABLE_DUMPS - return rt->dump_flags; -#else - return 0; -#endif -} - -size_t JS_GetGCThreshold(JSRuntime *rt) { - return rt->malloc_gc_threshold; -} - -/* use -1 to disable automatic GC */ -void JS_SetGCThreshold(JSRuntime *rt, size_t gc_threshold) -{ - rt->malloc_gc_threshold = gc_threshold; -} - -#define malloc(s) malloc_is_forbidden(s) -#define free(p) free_is_forbidden(p) -#define realloc(p,s) realloc_is_forbidden(p,s) - -void JS_SetInterruptHandler(JSRuntime *rt, JSInterruptHandler *cb, void *opaque) -{ - rt->interrupt_handler = cb; - rt->interrupt_opaque = opaque; -} - -void JS_SetCanBlock(JSRuntime *rt, bool can_block) -{ - rt->can_block = can_block; -} - -void JS_SetSharedArrayBufferFunctions(JSRuntime *rt, - const JSSharedArrayBufferFunctions *sf) -{ - rt->sab_funcs = *sf; -} - -/* return 0 if OK, < 0 if exception */ -int JS_EnqueueJob(JSContext *ctx, JSJobFunc *job_func, - int argc, JSValueConst *argv) -{ - JSRuntime *rt = ctx->rt; - JSJobEntry *e; - int i; - - assert(!rt->in_free); - - e = js_malloc(ctx, sizeof(*e) + argc * sizeof(JSValue)); - if (!e) - return -1; - e->ctx = ctx; - e->job_func = job_func; - e->argc = argc; - for(i = 0; i < argc; i++) { - e->argv[i] = js_dup(argv[i]); - } - list_add_tail(&e->link, &rt->job_list); - return 0; -} - -bool JS_IsJobPending(JSRuntime *rt) -{ - return !list_empty(&rt->job_list); -} - -/* return < 0 if exception, 0 if no job pending, 1 if a job was - executed successfully. the context of the job is stored in '*pctx' */ -int JS_ExecutePendingJob(JSRuntime *rt, JSContext **pctx) -{ - JSContext *ctx; - JSJobEntry *e; - JSValue res; - int i, ret; - - if (list_empty(&rt->job_list)) { - *pctx = NULL; - return 0; - } - - /* get the first pending job and execute it */ - e = list_entry(rt->job_list.next, JSJobEntry, link); - list_del(&e->link); - ctx = e->ctx; - res = e->job_func(e->ctx, e->argc, vc(e->argv)); - for(i = 0; i < e->argc; i++) - JS_FreeValue(ctx, e->argv[i]); - if (JS_IsException(res)) - ret = -1; - else - ret = 1; - JS_FreeValue(ctx, res); - js_free(ctx, e); - *pctx = ctx; - return ret; -} - -static inline uint32_t atom_get_free(const JSAtomStruct *p) -{ - return (uintptr_t)p >> 1; -} - -static inline bool atom_is_free(const JSAtomStruct *p) -{ - return (uintptr_t)p & 1; -} - -static inline JSAtomStruct *atom_set_free(uint32_t v) -{ - return (JSAtomStruct *)(((uintptr_t)v << 1) | 1); -} - -/* Note: the string contents are uninitialized */ -static JSString *js_alloc_string_rt(JSRuntime *rt, int max_len, int is_wide_char) -{ - JSString *str; - str = js_malloc_rt(rt, sizeof(JSString) + (max_len << is_wide_char) + 1 - is_wide_char); - if (unlikely(!str)) - return NULL; - str->header.ref_count = 1; - str->is_wide_char = is_wide_char; - str->len = max_len; - str->kind = JS_STRING_KIND_NORMAL; - str->atom_type = 0; - str->hash = 0; /* optional but costless */ - str->hash_next = 0; /* optional */ -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_add_tail(&str->link, &rt->string_list); -#endif - return str; -} - -static JSString *js_alloc_string(JSContext *ctx, int max_len, int is_wide_char) -{ - JSString *p; - p = js_alloc_string_rt(ctx->rt, max_len, is_wide_char); - if (unlikely(!p)) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - return p; -} - -static inline void js_free_string0(JSRuntime *rt, JSString *str); - -/* same as JS_FreeValueRT() but faster */ -static inline void js_free_string(JSRuntime *rt, JSString *str) -{ - if (--str->header.ref_count <= 0) - js_free_string0(rt, str); -} - -static inline void js_free_string0(JSRuntime *rt, JSString *str) -{ - if (str->atom_type) { - JS_FreeAtomStruct(rt, str); - } else { -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_del(&str->link); -#endif - if (str->kind == JS_STRING_KIND_SLICE) { - JSStringSlice *slice = (void *)&str[1]; - js_free_string(rt, slice->parent); // safe, recurses only 1 level - } - js_free_rt(rt, str); - } -} - -void JS_SetRuntimeInfo(JSRuntime *rt, const char *s) -{ - if (rt) - rt->rt_info = s; -} - -void JS_FreeRuntime(JSRuntime *rt) -{ - struct list_head *el, *el1; - int i; - - rt->in_free = true; - JS_FreeValueRT(rt, rt->current_exception); - - list_for_each_safe(el, el1, &rt->job_list) { - JSJobEntry *e = list_entry(el, JSJobEntry, link); - for(i = 0; i < e->argc; i++) - JS_FreeValueRT(rt, e->argv[i]); - js_free_rt(rt, e); - } - init_list_head(&rt->job_list); - JS_ClearWeakRefKeepAlives(rt); - - JS_RunGC(rt); - -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - /* leaking objects */ - if (check_dump_flag(rt, JS_DUMP_LEAKS)) { - bool header_done; - JSGCObjectHeader *p; - int count; - - /* remove the internal refcounts to display only the object - referenced externally */ - list_for_each(el, &rt->gc_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - p->mark = 0; - } - gc_decref(rt); - - header_done = false; - list_for_each(el, &rt->gc_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - if (p->ref_count != 0) { - if (!header_done) { - printf("Object leaks:\n"); - JS_DumpObjectHeader(rt); - header_done = true; - } - JS_DumpGCObject(rt, p); - } - } - - count = 0; - list_for_each(el, &rt->gc_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - if (p->ref_count == 0) { - count++; - } - } - if (count != 0) - printf("Secondary object leaks: %d\n", count); - } -#endif - - assert(list_empty(&rt->gc_obj_list)); - - /* free the classes */ - for(i = 0; i < rt->class_count; i++) { - JSClass *cl = &rt->class_array[i]; - if (cl->class_id != 0) { - JS_FreeAtomRT(rt, cl->class_name); - } - } - js_free_rt(rt, rt->class_array); - -#ifdef ENABLE_DUMPS // JS_DUMP_ATOM_LEAKS - /* only the atoms defined in JS_InitAtoms() should be left */ - if (check_dump_flag(rt, JS_DUMP_ATOM_LEAKS)) { - bool header_done = false; - - for(i = 0; i < rt->atom_size; i++) { - JSAtomStruct *p = rt->atom_array[i]; - if (!atom_is_free(p) /* && p->str*/) { - if (i >= JS_ATOM_END || p->header.ref_count != 1) { - if (!header_done) { - header_done = true; - if (rt->rt_info) { - printf("%s:1: atom leakage:", rt->rt_info); - } else { - printf("Atom leaks:\n" - " %6s %6s %s\n", - "ID", "REFCNT", "NAME"); - } - } - if (rt->rt_info) { - printf(" "); - } else { - printf(" %6u %6u ", i, p->header.ref_count); - } - switch (p->atom_type) { - case JS_ATOM_TYPE_STRING: - JS_DumpString(rt, p); - break; - case JS_ATOM_TYPE_GLOBAL_SYMBOL: - printf("Symbol.for("); - JS_DumpString(rt, p); - printf(")"); - break; - case JS_ATOM_TYPE_SYMBOL: - if (p->hash == JS_ATOM_HASH_SYMBOL) { - printf("Symbol("); - JS_DumpString(rt, p); - printf(")"); - } else { - printf("Private("); - JS_DumpString(rt, p); - printf(")"); - } - break; - } - if (rt->rt_info) { - printf(":%u", p->header.ref_count); - } else { - printf("\n"); - } - } - } - } - if (rt->rt_info && header_done) - printf("\n"); - } -#endif - - /* free the atoms */ - for(i = 0; i < rt->atom_size; i++) { - JSAtomStruct *p = rt->atom_array[i]; - if (!atom_is_free(p)) { -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_del(&p->link); -#endif - js_free_rt(rt, p); - } - } - js_free_rt(rt, rt->atom_array); - js_free_rt(rt, rt->atom_hash); - js_free_rt(rt, rt->shape_hash); -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - if (check_dump_flag(rt, JS_DUMP_LEAKS) && !list_empty(&rt->string_list)) { - if (rt->rt_info) { - printf("%s:1: string leakage:", rt->rt_info); - } else { - printf("String leaks:\n" - " %6s %s\n", - "REFCNT", "VALUE"); - } - list_for_each_safe(el, el1, &rt->string_list) { - JSString *str = list_entry(el, JSString, link); - if (rt->rt_info) { - printf(" "); - } else { - printf(" %6u ", str->header.ref_count); - } - JS_DumpString(rt, str); - if (rt->rt_info) { - printf(":%u", str->header.ref_count); - } else { - printf("\n"); - } - list_del(&str->link); - js_free_rt(rt, str); - } - if (rt->rt_info) - printf("\n"); - } -#endif - - while (rt->finalizers) { - JSRuntimeFinalizerState *fs = rt->finalizers; - rt->finalizers = fs->next; - fs->finalizer(rt, fs->arg); - js_free_rt(rt, fs); - } - -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - if (check_dump_flag(rt, JS_DUMP_LEAKS)) { - JSMallocState *s = &rt->malloc_state; - if (s->malloc_count > 1) { - if (rt->rt_info) - printf("%s:1: ", rt->rt_info); - printf("Memory leak: %zd bytes lost in %zd block%s\n", - s->malloc_size - sizeof(JSRuntime), - s->malloc_count - 1, &"s"[s->malloc_count == 2]); - } - } -#endif - - { - JSMallocState *ms = &rt->malloc_state; - rt->mf.js_free(ms->opaque, rt); - } -} - -JSContext *JS_NewContextRaw(JSRuntime *rt) -{ - JSContext *ctx; - int i; - - ctx = js_mallocz_rt(rt, sizeof(JSContext)); - if (!ctx) - return NULL; - ctx->header.ref_count = 1; - add_gc_object(rt, &ctx->header, JS_GC_OBJ_TYPE_JS_CONTEXT); - - ctx->class_proto = js_malloc_rt(rt, sizeof(ctx->class_proto[0]) * - rt->class_count); - if (!ctx->class_proto) { - js_free_rt(rt, ctx); - return NULL; - } - ctx->rt = rt; - list_add_tail(&ctx->link, &rt->context_list); - for(i = 0; i < rt->class_count; i++) - ctx->class_proto[i] = JS_NULL; - ctx->array_ctor = JS_NULL; - ctx->iterator_ctor = JS_NULL; - ctx->iterator_ctor_getset = JS_NULL; - ctx->regexp_ctor = JS_NULL; - ctx->promise_ctor = JS_NULL; - ctx->error_ctor = JS_NULL; - ctx->error_back_trace = JS_UNDEFINED; - ctx->error_prepare_stack = JS_UNDEFINED; - ctx->error_stack_trace_limit = js_int32(10); - init_list_head(&ctx->loaded_modules); - - JS_AddIntrinsicBasicObjects(ctx); - return ctx; -} - -JSContext *JS_NewContext(JSRuntime *rt) -{ - JSContext *ctx; - - ctx = JS_NewContextRaw(rt); - if (!ctx) - return NULL; - - JS_AddIntrinsicBaseObjects(ctx); - JS_AddIntrinsicDate(ctx); - JS_AddIntrinsicEval(ctx); - JS_AddIntrinsicRegExp(ctx); - JS_AddIntrinsicJSON(ctx); - JS_AddIntrinsicProxy(ctx); - JS_AddIntrinsicMapSet(ctx); - JS_AddIntrinsicTypedArrays(ctx); - JS_AddIntrinsicPromise(ctx); - JS_AddIntrinsicBigInt(ctx); - JS_AddIntrinsicWeakRef(ctx); - JS_AddIntrinsicDOMException(ctx); - - JS_AddPerformance(ctx); - - return ctx; -} - -void *JS_GetContextOpaque(JSContext *ctx) -{ - return ctx->user_opaque; -} - -void JS_SetContextOpaque(JSContext *ctx, void *opaque) -{ - ctx->user_opaque = opaque; -} - -/* set the new value and free the old value after (freeing the value - can reallocate the object data) */ -static inline void set_value(JSContext *ctx, JSValue *pval, JSValue new_val) -{ - JSValue old_val; - old_val = *pval; - *pval = new_val; - JS_FreeValue(ctx, old_val); -} - -void JS_SetClassProto(JSContext *ctx, JSClassID class_id, JSValue obj) -{ - assert(class_id < ctx->rt->class_count); - set_value(ctx, &ctx->class_proto[class_id], obj); -} - -JSValue JS_GetClassProto(JSContext *ctx, JSClassID class_id) -{ - assert(class_id < ctx->rt->class_count); - return js_dup(ctx->class_proto[class_id]); -} - -JSValue JS_GetFunctionProto(JSContext *ctx) -{ - return js_dup(ctx->function_proto); -} - -typedef enum JSFreeModuleEnum { - JS_FREE_MODULE_ALL, - JS_FREE_MODULE_NOT_RESOLVED, -} JSFreeModuleEnum; - -/* XXX: would be more efficient with separate module lists */ -static void js_free_modules(JSContext *ctx, JSFreeModuleEnum flag) -{ - struct list_head *el, *el1; - list_for_each_safe(el, el1, &ctx->loaded_modules) { - JSModuleDef *m = list_entry(el, JSModuleDef, link); - if (flag == JS_FREE_MODULE_ALL || - (flag == JS_FREE_MODULE_NOT_RESOLVED && !m->resolved)) { - js_free_module_def(ctx, m); - } - } -} - -JSContext *JS_DupContext(JSContext *ctx) -{ - ctx->header.ref_count++; - return ctx; -} - -/* used by the GC */ -static void JS_MarkContext(JSRuntime *rt, JSContext *ctx, - JS_MarkFunc *mark_func) -{ - int i; - struct list_head *el; - - /* modules are not seen by the GC, so we directly mark the objects - referenced by each module */ - list_for_each(el, &ctx->loaded_modules) { - JSModuleDef *m = list_entry(el, JSModuleDef, link); - js_mark_module_def(rt, m, mark_func); - } - - JS_MarkValue(rt, ctx->global_obj, mark_func); - JS_MarkValue(rt, ctx->global_var_obj, mark_func); - - JS_MarkValue(rt, ctx->throw_type_error, mark_func); - JS_MarkValue(rt, ctx->eval_obj, mark_func); - - JS_MarkValue(rt, ctx->array_proto_values, mark_func); - for(i = 0; i < JS_NATIVE_ERROR_COUNT; i++) { - JS_MarkValue(rt, ctx->native_error_proto[i], mark_func); - } - JS_MarkValue(rt, ctx->error_ctor, mark_func); - JS_MarkValue(rt, ctx->error_back_trace, mark_func); - JS_MarkValue(rt, ctx->error_prepare_stack, mark_func); - JS_MarkValue(rt, ctx->error_stack_trace_limit, mark_func); - for(i = 0; i < rt->class_count; i++) { - JS_MarkValue(rt, ctx->class_proto[i], mark_func); - } - JS_MarkValue(rt, ctx->iterator_ctor, mark_func); - JS_MarkValue(rt, ctx->iterator_ctor_getset, mark_func); - JS_MarkValue(rt, ctx->async_iterator_proto, mark_func); - JS_MarkValue(rt, ctx->promise_ctor, mark_func); - JS_MarkValue(rt, ctx->array_ctor, mark_func); - JS_MarkValue(rt, ctx->regexp_ctor, mark_func); - JS_MarkValue(rt, ctx->function_ctor, mark_func); - JS_MarkValue(rt, ctx->function_proto, mark_func); - - if (ctx->array_shape) - mark_func(rt, &ctx->array_shape->header); -} - -void JS_FreeContext(JSContext *ctx) -{ - JSRuntime *rt = ctx->rt; - int i; - - if (--ctx->header.ref_count > 0) - return; - assert(ctx->header.ref_count == 0); - -#ifdef ENABLE_DUMPS // JS_DUMP_ATOMS - if (check_dump_flag(rt, JS_DUMP_ATOMS)) - JS_DumpAtoms(ctx->rt); -#endif -#ifdef ENABLE_DUMPS // JS_DUMP_SHAPES - if (check_dump_flag(rt, JS_DUMP_SHAPES)) - JS_DumpShapes(ctx->rt); -#endif -#ifdef ENABLE_DUMPS // JS_DUMP_OBJECTS - if (check_dump_flag(rt, JS_DUMP_OBJECTS)) { - struct list_head *el; - JSGCObjectHeader *p; - printf("JSObjects: {\n"); - JS_DumpObjectHeader(ctx->rt); - list_for_each(el, &rt->gc_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - JS_DumpGCObject(rt, p); - } - printf("}\n"); - } -#endif -#ifdef ENABLE_DUMPS // JS_DUMP_MEM - if (check_dump_flag(rt, JS_DUMP_MEM)) { - JSMemoryUsage stats; - JS_ComputeMemoryUsage(rt, &stats); - JS_DumpMemoryUsage(stdout, &stats, rt); - } -#endif - - js_free_modules(ctx, JS_FREE_MODULE_ALL); - - JS_FreeValue(ctx, ctx->global_obj); - JS_FreeValue(ctx, ctx->global_var_obj); - - JS_FreeValue(ctx, ctx->throw_type_error); - JS_FreeValue(ctx, ctx->eval_obj); - - JS_FreeValue(ctx, ctx->array_proto_values); - for(i = 0; i < JS_NATIVE_ERROR_COUNT; i++) { - JS_FreeValue(ctx, ctx->native_error_proto[i]); - } - JS_FreeValue(ctx, ctx->error_ctor); - JS_FreeValue(ctx, ctx->error_back_trace); - JS_FreeValue(ctx, ctx->error_prepare_stack); - JS_FreeValue(ctx, ctx->error_stack_trace_limit); - for(i = 0; i < rt->class_count; i++) { - JS_FreeValue(ctx, ctx->class_proto[i]); - } - js_free_rt(rt, ctx->class_proto); - JS_FreeValue(ctx, ctx->iterator_ctor); - JS_FreeValue(ctx, ctx->iterator_ctor_getset); - JS_FreeValue(ctx, ctx->async_iterator_proto); - JS_FreeValue(ctx, ctx->promise_ctor); - JS_FreeValue(ctx, ctx->array_ctor); - JS_FreeValue(ctx, ctx->regexp_ctor); - JS_FreeValue(ctx, ctx->function_ctor); - JS_FreeValue(ctx, ctx->function_proto); - - js_free_shape_null(ctx->rt, ctx->array_shape); - - list_del(&ctx->link); - remove_gc_object(&ctx->header); - js_free_rt(ctx->rt, ctx); -} - -JSRuntime *JS_GetRuntime(JSContext *ctx) -{ - return ctx->rt; -} - -static void update_stack_limit(JSRuntime *rt) -{ -#if defined(__wasi__) - rt->stack_limit = 0; /* no limit */ -#else - if (rt->stack_size == 0) { - rt->stack_limit = 0; /* no limit */ - } else { - rt->stack_limit = rt->stack_top - rt->stack_size; - } -#endif -} - -void JS_SetMaxStackSize(JSRuntime *rt, size_t stack_size) -{ - rt->stack_size = stack_size; - update_stack_limit(rt); -} - -void JS_UpdateStackTop(JSRuntime *rt) -{ - rt->stack_top = js_get_stack_pointer(); - update_stack_limit(rt); -} - -static inline bool is_strict_mode(JSContext *ctx) -{ - JSStackFrame *sf = ctx->rt->current_stack_frame; - return sf && sf->is_strict_mode; -} - -/* JSAtom support */ - -#define JS_ATOM_TAG_INT (1U << 31) -#define JS_ATOM_MAX_INT (JS_ATOM_TAG_INT - 1) -#define JS_ATOM_MAX ((1U << 30) - 1) - -/* return the max count from the hash size */ -#define JS_ATOM_COUNT_RESIZE(n) ((n) * 2) - -static inline bool __JS_AtomIsConst(JSAtom v) -{ - return (int32_t)v < JS_ATOM_END; -} - -static inline bool __JS_AtomIsTaggedInt(JSAtom v) -{ - return (v & JS_ATOM_TAG_INT) != 0; -} - -static inline JSAtom __JS_AtomFromUInt32(uint32_t v) -{ - return v | JS_ATOM_TAG_INT; -} - -static inline uint32_t __JS_AtomToUInt32(JSAtom atom) -{ - return atom & ~JS_ATOM_TAG_INT; -} - -static inline int is_num(int c) -{ - return c >= '0' && c <= '9'; -} - -/* return true if the string is a number n with 0 <= n <= 2^32-1 */ -static inline bool is_num_string(uint32_t *pval, JSString *p) -{ - uint32_t n; - uint64_t n64; - int c, i, len; - - len = p->len; - if (len == 0 || len > 10) - return false; - c = string_get(p, 0); - if (is_num(c)) { - if (c == '0') { - if (len != 1) - return false; - n = 0; - } else { - n = c - '0'; - for(i = 1; i < len; i++) { - c = string_get(p, i); - if (!is_num(c)) - return false; - n64 = (uint64_t)n * 10 + (c - '0'); - if ((n64 >> 32) != 0) - return false; - n = n64; - } - } - *pval = n; - return true; - } else { - return false; - } -} - -/* XXX: could use faster version ? */ -static inline uint32_t hash_string8(const uint8_t *str, size_t len, uint32_t h) -{ - size_t i; - - for(i = 0; i < len; i++) - h = h * 263 + str[i]; - return h; -} - -static inline uint32_t hash_string16(const uint16_t *str, - size_t len, uint32_t h) -{ - size_t i; - - for(i = 0; i < len; i++) - h = h * 263 + str[i]; - return h; -} - -static uint32_t hash_string(JSString *str, uint32_t h) -{ - if (str->is_wide_char) - h = hash_string16(str16(str), str->len, h); - else - h = hash_string8(str8(str), str->len, h); - return h; -} - -static __maybe_unused void JS_DumpString(JSRuntime *rt, JSString *p) -{ - int i, c, sep; - - if (p == NULL) { - printf(""); - return; - } - if (p->header.ref_count != 1) - printf("%d", p->header.ref_count); - if (p->is_wide_char) - putchar('L'); - sep = '\"'; - putchar(sep); - for(i = 0; i < p->len; i++) { - c = string_get(p, i); - if (c == sep || c == '\\') { - putchar('\\'); - putchar(c); - } else if (c >= ' ' && c <= 126) { - putchar(c); - } else if (c == '\n') { - putchar('\\'); - putchar('n'); - } else { - printf("\\u%04x", c); - } - } - putchar(sep); -} - -static __maybe_unused void JS_DumpAtoms(JSRuntime *rt) -{ - JSAtomStruct *p; - int h, i; - /* This only dumps hashed atoms, not JS_ATOM_TYPE_SYMBOL atoms */ - printf("JSAtom count=%d size=%d hash_size=%d:\n", - rt->atom_count, rt->atom_size, rt->atom_hash_size); - printf("JSAtom hash table: {\n"); - for(i = 0; i < rt->atom_hash_size; i++) { - h = rt->atom_hash[i]; - if (h) { - printf(" %d:", i); - while (h) { - p = rt->atom_array[h]; - printf(" "); - JS_DumpString(rt, p); - h = p->hash_next; - } - printf("\n"); - } - } - printf("}\n"); - printf("JSAtom table: {\n"); - for(i = 0; i < rt->atom_size; i++) { - p = rt->atom_array[i]; - if (!atom_is_free(p)) { - printf(" %d: { %d %08x ", i, p->atom_type, p->hash); - if (!(p->len == 0 && p->is_wide_char != 0)) - JS_DumpString(rt, p); - printf(" %d }\n", p->hash_next); - } - } - printf("}\n"); -} - -static int JS_ResizeAtomHash(JSRuntime *rt, int new_hash_size) -{ - JSAtomStruct *p; - uint32_t new_hash_mask, h, i, hash_next1, j, *new_hash; - - assert((new_hash_size & (new_hash_size - 1)) == 0); /* power of two */ - new_hash_mask = new_hash_size - 1; - new_hash = js_mallocz_rt(rt, sizeof(rt->atom_hash[0]) * new_hash_size); - if (!new_hash) - return -1; - for(i = 0; i < rt->atom_hash_size; i++) { - h = rt->atom_hash[i]; - while (h != 0) { - p = rt->atom_array[h]; - hash_next1 = p->hash_next; - /* add in new hash table */ - j = p->hash & new_hash_mask; - p->hash_next = new_hash[j]; - new_hash[j] = h; - h = hash_next1; - } - } - js_free_rt(rt, rt->atom_hash); - rt->atom_hash = new_hash; - rt->atom_hash_size = new_hash_size; - rt->atom_count_resize = JS_ATOM_COUNT_RESIZE(new_hash_size); - // JS_DumpAtoms(rt); - return 0; -} - -static int JS_InitAtoms(JSRuntime *rt) -{ - int i, len, atom_type; - const char *p; - - rt->atom_hash_size = 0; - rt->atom_hash = NULL; - rt->atom_count = 0; - rt->atom_size = 0; - rt->atom_free_index = 0; - if (JS_ResizeAtomHash(rt, 256)) /* there are at least 195 predefined atoms */ - return -1; - - p = js_atom_init; - for(i = 1; i < JS_ATOM_END; i++) { - if (i == JS_ATOM_Private_brand) - atom_type = JS_ATOM_TYPE_PRIVATE; - else if (i >= JS_ATOM_Symbol_toPrimitive) - atom_type = JS_ATOM_TYPE_SYMBOL; - else - atom_type = JS_ATOM_TYPE_STRING; - len = strlen(p); - if (__JS_NewAtomInit(rt, p, len, atom_type) == JS_ATOM_NULL) - return -1; - p = p + len + 1; - } - return 0; -} - -static JSAtom JS_DupAtomRT(JSRuntime *rt, JSAtom v) -{ - JSAtomStruct *p; - - if (!__JS_AtomIsConst(v)) { - p = rt->atom_array[v]; - p->header.ref_count++; - } - return v; -} - -JSAtom JS_DupAtom(JSContext *ctx, JSAtom v) -{ - JSRuntime *rt; - JSAtomStruct *p; - - if (!__JS_AtomIsConst(v)) { - rt = ctx->rt; - p = rt->atom_array[v]; - p->header.ref_count++; - } - return v; -} - -static JSAtomKindEnum JS_AtomGetKind(JSContext *ctx, JSAtom v) -{ - JSRuntime *rt; - JSAtomStruct *p; - - rt = ctx->rt; - if (__JS_AtomIsTaggedInt(v)) - return JS_ATOM_KIND_STRING; - p = rt->atom_array[v]; - switch(p->atom_type) { - case JS_ATOM_TYPE_STRING: - return JS_ATOM_KIND_STRING; - case JS_ATOM_TYPE_GLOBAL_SYMBOL: - return JS_ATOM_KIND_SYMBOL; - case JS_ATOM_TYPE_SYMBOL: - switch(p->hash) { - case JS_ATOM_HASH_SYMBOL: - return JS_ATOM_KIND_SYMBOL; - case JS_ATOM_HASH_PRIVATE: - return JS_ATOM_KIND_PRIVATE; - default: - abort(); - } - default: - abort(); - } - return (JSAtomKindEnum){-1}; // pacify compiler -} - -static JSAtom js_get_atom_index(JSRuntime *rt, JSAtomStruct *p) -{ - uint32_t i = p->hash_next; /* atom_index */ - if (p->atom_type != JS_ATOM_TYPE_SYMBOL) { - JSAtomStruct *p1; - - i = rt->atom_hash[p->hash & (rt->atom_hash_size - 1)]; - p1 = rt->atom_array[i]; - while (p1 != p) { - assert(i != 0); - i = p1->hash_next; - p1 = rt->atom_array[i]; - } - } - return i; -} - -/* string case (internal). Return JS_ATOM_NULL if error. 'str' is - freed. */ -static JSAtom __JS_NewAtom(JSRuntime *rt, JSString *str, int atom_type) -{ - uint32_t h, h1, i; - JSAtomStruct *p; - int len; - - if (atom_type < JS_ATOM_TYPE_SYMBOL) { - /* str is not NULL */ - if (str->atom_type == atom_type) { - /* str is the atom, return its index */ - i = js_get_atom_index(rt, str); - /* reduce string refcount and increase atom's unless constant */ - if (__JS_AtomIsConst(i)) - str->header.ref_count--; - return i; - } - /* try and locate an already registered atom */ - len = str->len; - h = hash_string(str, atom_type); - h &= JS_ATOM_HASH_MASK; - h1 = h & (rt->atom_hash_size - 1); - i = rt->atom_hash[h1]; - while (i != 0) { - p = rt->atom_array[i]; - if (p->hash == h && - p->atom_type == atom_type && - p->len == len && - js_string_memcmp(p, str, len) == 0) { - if (!__JS_AtomIsConst(i)) - p->header.ref_count++; - goto done; - } - i = p->hash_next; - } - } else { - h1 = 0; /* avoid warning */ - if (atom_type == JS_ATOM_TYPE_SYMBOL) { - h = JS_ATOM_HASH_SYMBOL; - } else { - h = JS_ATOM_HASH_PRIVATE; - atom_type = JS_ATOM_TYPE_SYMBOL; - } - } - - if (rt->atom_free_index == 0) { - /* allow new atom entries */ - uint32_t new_size, start; - JSAtomStruct **new_array; - - /* alloc new with size progression 3/2: - 4 6 9 13 19 28 42 63 94 141 211 316 474 711 1066 1599 2398 3597 5395 8092 - preallocating space for predefined atoms (at least 195). - */ - new_size = max_int(211, rt->atom_size * 3 / 2); - if (new_size > JS_ATOM_MAX) - goto fail; - /* XXX: should use realloc2 to use slack space */ - new_array = js_realloc_rt(rt, rt->atom_array, sizeof(*new_array) * new_size); - if (!new_array) - goto fail; - /* Note: the atom 0 is not used */ - start = rt->atom_size; - if (start == 0) { - /* JS_ATOM_NULL entry */ - p = js_mallocz_rt(rt, sizeof(JSAtomStruct)); - if (!p) { - js_free_rt(rt, new_array); - goto fail; - } - p->header.ref_count = 1; /* not refcounted */ - p->atom_type = JS_ATOM_TYPE_SYMBOL; -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_add_tail(&p->link, &rt->string_list); -#endif - new_array[0] = p; - rt->atom_count++; - start = 1; - } - rt->atom_size = new_size; - rt->atom_array = new_array; - rt->atom_free_index = start; - for(i = start; i < new_size; i++) { - uint32_t next; - if (i == (new_size - 1)) - next = 0; - else - next = i + 1; - rt->atom_array[i] = atom_set_free(next); - } - } - - if (str) { - if (str->atom_type == 0) { - p = str; - p->atom_type = atom_type; - } else { - p = js_malloc_rt(rt, sizeof(JSString) + - (str->len << str->is_wide_char) + - 1 - str->is_wide_char); - if (unlikely(!p)) - goto fail; - p->header.ref_count = 1; - p->is_wide_char = str->is_wide_char; - p->len = str->len; - p->kind = JS_STRING_KIND_NORMAL; -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_add_tail(&p->link, &rt->string_list); -#endif - memcpy(str8(p), str8(str), (str->len << str->is_wide_char) + - 1 - str->is_wide_char); - js_free_string(rt, str); - } - } else { - p = js_malloc_rt(rt, sizeof(JSAtomStruct)); /* empty wide string */ - if (!p) - return JS_ATOM_NULL; - p->header.ref_count = 1; - p->is_wide_char = 1; /* Hack to represent NULL as a JSString */ - p->len = 0; - p->kind = JS_STRING_KIND_NORMAL; -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_add_tail(&p->link, &rt->string_list); -#endif - } - - /* use an already free entry */ - i = rt->atom_free_index; - rt->atom_free_index = atom_get_free(rt->atom_array[i]); - rt->atom_array[i] = p; - - p->hash = h; - p->hash_next = i; /* atom_index */ - p->atom_type = atom_type; - p->first_weak_ref = NULL; - - rt->atom_count++; - - if (atom_type != JS_ATOM_TYPE_SYMBOL) { - p->hash_next = rt->atom_hash[h1]; - rt->atom_hash[h1] = i; - if (unlikely(rt->atom_count >= rt->atom_count_resize)) - JS_ResizeAtomHash(rt, rt->atom_hash_size * 2); - } - - // JS_DumpAtoms(rt); - return i; - - fail: - i = JS_ATOM_NULL; - done: - if (str) - js_free_string(rt, str); - return i; -} - -// XXX: `str` must be pure ASCII. No UTF-8 encoded strings -// XXX: `str` must not be the string representation of a small integer -static JSAtom __JS_NewAtomInit(JSRuntime *rt, const char *str, int len, - int atom_type) -{ - JSString *p; - p = js_alloc_string_rt(rt, len, 0); - if (!p) - return JS_ATOM_NULL; - memcpy(str8(p), str, len); - str8(p)[len] = '\0'; - return __JS_NewAtom(rt, p, atom_type); -} - -// XXX: `str` must be raw 8-bit contents. No UTF-8 encoded strings -static JSAtom __JS_FindAtom(JSRuntime *rt, const char *str, size_t len, - int atom_type) -{ - uint32_t h, h1, i; - JSAtomStruct *p; - - h = hash_string8((const uint8_t *)str, len, JS_ATOM_TYPE_STRING); - h &= JS_ATOM_HASH_MASK; - h1 = h & (rt->atom_hash_size - 1); - i = rt->atom_hash[h1]; - while (i != 0) { - p = rt->atom_array[i]; - if (p->hash == h && - p->atom_type == JS_ATOM_TYPE_STRING && - p->len == len && - p->is_wide_char == 0 && - memcmp(str8(p), str, len) == 0) { - if (!__JS_AtomIsConst(i)) - p->header.ref_count++; - return i; - } - i = p->hash_next; - } - return JS_ATOM_NULL; -} - -static void JS_FreeAtomStruct(JSRuntime *rt, JSAtomStruct *p) -{ - uint32_t i = p->hash_next; /* atom_index */ - if (p->atom_type != JS_ATOM_TYPE_SYMBOL) { - JSAtomStruct *p0, *p1; - uint32_t h0; - - h0 = p->hash & (rt->atom_hash_size - 1); - i = rt->atom_hash[h0]; - p1 = rt->atom_array[i]; - if (p1 == p) { - rt->atom_hash[h0] = p1->hash_next; - } else { - for(;;) { - assert(i != 0); - p0 = p1; - i = p1->hash_next; - p1 = rt->atom_array[i]; - if (p1 == p) { - p0->hash_next = p1->hash_next; - break; - } - } - } - } - /* insert in free atom list */ - rt->atom_array[i] = atom_set_free(rt->atom_free_index); - rt->atom_free_index = i; - if (unlikely(p->first_weak_ref)) { - reset_weak_ref(rt, &p->first_weak_ref); - } - /* free the string structure */ -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_del(&p->link); -#endif - js_free_rt(rt, p); - rt->atom_count--; - assert(rt->atom_count >= 0); -} - -static void __JS_FreeAtom(JSRuntime *rt, uint32_t i) -{ - JSAtomStruct *p; - - p = rt->atom_array[i]; - if (--p->header.ref_count > 0) - return; - JS_FreeAtomStruct(rt, p); -} - -/* Warning: 'p' is freed */ -static JSAtom JS_NewAtomStr(JSContext *ctx, JSString *p) -{ - JSRuntime *rt = ctx->rt; - uint32_t n; - if (is_num_string(&n, p)) { - if (n <= JS_ATOM_MAX_INT) { - js_free_string(rt, p); - return __JS_AtomFromUInt32(n); - } - } - /* XXX: should generate an exception */ - return __JS_NewAtom(rt, p, JS_ATOM_TYPE_STRING); -} - -/* `str` may be pure ASCII or UTF-8 encoded */ -JSAtom JS_NewAtomLen(JSContext *ctx, const char *str, size_t len) -{ - JSValue val; - - if (len == 0 || !is_digit(*str)) { - // TODO(chqrlie): this does not work if `str` has UTF-8 encoded contents - // bug example: `({ "\u00c3\u00a9": 1 }).\u00e9` evaluates to `1`. - JSAtom atom = __JS_FindAtom(ctx->rt, str, len, JS_ATOM_TYPE_STRING); - if (atom) - return atom; - } - val = JS_NewStringLen(ctx, str, len); - if (JS_IsException(val)) - return JS_ATOM_NULL; - return JS_NewAtomStr(ctx, JS_VALUE_GET_STRING(val)); -} - -/* `str` may be pure ASCII or UTF-8 encoded */ -JSAtom JS_NewAtom(JSContext *ctx, const char *str) -{ - return JS_NewAtomLen(ctx, str, strlen(str)); -} - -JSAtom JS_NewAtomUInt32(JSContext *ctx, uint32_t n) -{ - if (n <= JS_ATOM_MAX_INT) { - return __JS_AtomFromUInt32(n); - } else { - char buf[16]; - size_t len = u32toa(buf, n); - JSValue val = js_new_string8_len(ctx, buf, len); - if (JS_IsException(val)) - return JS_ATOM_NULL; - return __JS_NewAtom(ctx->rt, JS_VALUE_GET_STRING(val), - JS_ATOM_TYPE_STRING); - } -} - -static JSAtom JS_NewAtomInt64(JSContext *ctx, int64_t n) -{ - if ((uint64_t)n <= JS_ATOM_MAX_INT) { - return __JS_AtomFromUInt32((uint32_t)n); - } else { - char buf[24]; - size_t len = i64toa(buf, n); - JSValue val = js_new_string8_len(ctx, buf, len); - if (JS_IsException(val)) - return JS_ATOM_NULL; - return __JS_NewAtom(ctx->rt, JS_VALUE_GET_STRING(val), - JS_ATOM_TYPE_STRING); - } -} - -/* 'p' is freed */ -static JSValue JS_NewSymbolInternal(JSContext *ctx, JSString *p, int atom_type) -{ - JSRuntime *rt = ctx->rt; - JSAtom atom; - atom = __JS_NewAtom(rt, p, atom_type); - if (atom == JS_ATOM_NULL) - return JS_ThrowOutOfMemory(ctx); - return JS_MKPTR(JS_TAG_SYMBOL, rt->atom_array[atom]); -} - -/* descr must be a non-numeric string atom */ -static JSValue JS_NewSymbolFromAtom(JSContext *ctx, JSAtom descr, - int atom_type) -{ - JSRuntime *rt = ctx->rt; - JSString *p; - - assert(!__JS_AtomIsTaggedInt(descr)); - assert(descr < rt->atom_size); - p = rt->atom_array[descr]; - js_dup(JS_MKPTR(JS_TAG_STRING, p)); - return JS_NewSymbolInternal(ctx, p, atom_type); -} - -/* `description` may be pure ASCII or UTF-8 encoded */ -JSValue JS_NewSymbol(JSContext *ctx, const char *description, bool is_global) -{ - JSAtom atom = JS_NewAtom(ctx, description); - if (atom == JS_ATOM_NULL) - return JS_EXCEPTION; - return JS_NewSymbolFromAtom(ctx, atom, is_global ? JS_ATOM_TYPE_GLOBAL_SYMBOL : JS_ATOM_TYPE_SYMBOL); -} - -#define ATOM_GET_STR_BUF_SIZE 64 - -static const char *JS_AtomGetStrRT(JSRuntime *rt, char *buf, int buf_size, - JSAtom atom) -{ - if (__JS_AtomIsTaggedInt(atom)) { - snprintf(buf, buf_size, "%u", __JS_AtomToUInt32(atom)); - } else if (atom == JS_ATOM_NULL) { - snprintf(buf, buf_size, ""); - } else if (atom >= rt->atom_size) { - assert(atom < rt->atom_size); - snprintf(buf, buf_size, "", atom); - } else { - JSAtomStruct *p = rt->atom_array[atom]; - *buf = '\0'; - if (atom_is_free(p)) { - snprintf(buf, buf_size, "", atom); - } else if (p != NULL) { - JSString *str = p; - if (str->is_wide_char) { - /* encode surrogates correctly */ - utf8_encode_buf16(buf, buf_size, str16(str), str->len); - } else { - utf8_encode_buf8(buf, buf_size, str8(str), str->len); - } - } - } - return buf; -} - -static const char *JS_AtomGetStr(JSContext *ctx, char *buf, int buf_size, JSAtom atom) -{ - return JS_AtomGetStrRT(ctx->rt, buf, buf_size, atom); -} - -static JSValue __JS_AtomToValue(JSContext *ctx, JSAtom atom, bool force_string) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - - if (__JS_AtomIsTaggedInt(atom)) { - size_t len = u32toa(buf, __JS_AtomToUInt32(atom)); - return js_new_string8_len(ctx, buf, len); - } else { - JSRuntime *rt = ctx->rt; - JSAtomStruct *p; - assert(atom < rt->atom_size); - p = rt->atom_array[atom]; - if (p->atom_type == JS_ATOM_TYPE_STRING) { - goto ret_string; - } else if (force_string) { - if (p->len == 0 && p->is_wide_char != 0) { - /* no description string */ - p = rt->atom_array[JS_ATOM_empty_string]; - } - ret_string: - return js_dup(JS_MKPTR(JS_TAG_STRING, p)); - } else { - return js_dup(JS_MKPTR(JS_TAG_SYMBOL, p)); - } - } -} - -JSValue JS_AtomToValue(JSContext *ctx, JSAtom atom) -{ - return __JS_AtomToValue(ctx, atom, false); -} - -JSValue JS_AtomToString(JSContext *ctx, JSAtom atom) -{ - return __JS_AtomToValue(ctx, atom, true); -} - -/* return true if the atom is an array index (i.e. 0 <= index <= - 2^32-2 and return its value */ -static bool JS_AtomIsArrayIndex(JSContext *ctx, uint32_t *pval, JSAtom atom) -{ - if (__JS_AtomIsTaggedInt(atom)) { - *pval = __JS_AtomToUInt32(atom); - return true; - } else { - JSRuntime *rt = ctx->rt; - JSAtomStruct *p; - uint32_t val; - - assert(atom < rt->atom_size); - p = rt->atom_array[atom]; - if (p->atom_type == JS_ATOM_TYPE_STRING && - is_num_string(&val, p) && val != -1) { - *pval = val; - return true; - } else { - *pval = 0; - return false; - } - } -} - -/* This test must be fast if atom is not a numeric index (e.g. a - method name). Return JS_UNDEFINED if not a numeric - index. JS_EXCEPTION can also be returned. */ -static JSValue JS_AtomIsNumericIndex1(JSContext *ctx, JSAtom atom) -{ - JSRuntime *rt = ctx->rt; - JSAtomStruct *p1; - JSString *p; - int c, len, ret; - JSValue num, str; - - if (__JS_AtomIsTaggedInt(atom)) - return js_int32(__JS_AtomToUInt32(atom)); - assert(atom < rt->atom_size); - p1 = rt->atom_array[atom]; - if (p1->atom_type != JS_ATOM_TYPE_STRING) - return JS_UNDEFINED; - p = p1; - len = p->len; - if (p->is_wide_char) { - const uint16_t *r = str16(p), *r_end = str16(p) + len; - if (r >= r_end) - return JS_UNDEFINED; - c = *r; - if (c == '-') { - if (r >= r_end) - return JS_UNDEFINED; - r++; - c = *r; - /* -0 case is specific */ - if (c == '0' && len == 2) - goto minus_zero; - } - /* XXX: should test NaN, but the tests do not check it */ - if (!is_num(c)) { - /* XXX: String should be normalized, therefore 8-bit only */ - const uint16_t nfinity16[7] = { 'n', 'f', 'i', 'n', 'i', 't', 'y' }; - if (!(c =='I' && (r_end - r) == 8 && - !memcmp(r + 1, nfinity16, sizeof(nfinity16)))) - return JS_UNDEFINED; - } - } else { - const uint8_t *r = str8(p), *r_end = str8(p) + len; - if (r >= r_end) - return JS_UNDEFINED; - c = *r; - if (c == '-') { - if (r >= r_end) - return JS_UNDEFINED; - r++; - c = *r; - /* -0 case is specific */ - if (c == '0' && len == 2) { - minus_zero: - return js_float64(-0.0); - } - } - if (!is_num(c)) { - if (!(c =='I' && (r_end - r) == 8 && - !memcmp(r + 1, "nfinity", 7))) - return JS_UNDEFINED; - } - } - /* this is ECMA CanonicalNumericIndexString primitive */ - num = JS_ToNumber(ctx, JS_MKPTR(JS_TAG_STRING, p)); - if (JS_IsException(num)) - return num; - str = JS_ToString(ctx, num); - if (JS_IsException(str)) { - JS_FreeValue(ctx, num); - return str; - } - ret = js_string_eq(p, JS_VALUE_GET_STRING(str)); - JS_FreeValue(ctx, str); - if (ret) { - return num; - } else { - JS_FreeValue(ctx, num); - return JS_UNDEFINED; - } -} - -/* return -1 if exception or true/false */ -static int JS_AtomIsNumericIndex(JSContext *ctx, JSAtom atom) -{ - JSValue num; - num = JS_AtomIsNumericIndex1(ctx, atom); - if (likely(JS_IsUndefined(num))) - return false; - if (JS_IsException(num)) - return -1; - JS_FreeValue(ctx, num); - return true; -} - -void JS_FreeAtom(JSContext *ctx, JSAtom v) -{ - if (!__JS_AtomIsConst(v)) - __JS_FreeAtom(ctx->rt, v); -} - -void JS_FreeAtomRT(JSRuntime *rt, JSAtom v) -{ - if (!__JS_AtomIsConst(v)) - __JS_FreeAtom(rt, v); -} - -/* return true if 'v' is a symbol with a string description */ -static bool JS_AtomSymbolHasDescription(JSContext *ctx, JSAtom v) -{ - JSRuntime *rt; - JSAtomStruct *p; - - rt = ctx->rt; - if (__JS_AtomIsTaggedInt(v)) - return false; - p = rt->atom_array[v]; - return (((p->atom_type == JS_ATOM_TYPE_SYMBOL && - p->hash == JS_ATOM_HASH_SYMBOL) || - p->atom_type == JS_ATOM_TYPE_GLOBAL_SYMBOL) && - !(p->len == 0 && p->is_wide_char != 0)); -} - -static __maybe_unused void print_atom(JSContext *ctx, JSAtom atom) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - const char *p; - int i; - - /* XXX: should handle embedded null characters */ - /* XXX: should move encoding code to JS_AtomGetStr */ - p = JS_AtomGetStr(ctx, buf, sizeof(buf), atom); - for (i = 0; p[i]; i++) { - int c = (unsigned char)p[i]; - if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || - (c == '_' || c == '$') || (c >= '0' && c <= '9' && i > 0))) - break; - } - if (i > 0 && p[i] == '\0') { - printf("%s", p); - } else { - putchar('"'); - printf("%.*s", i, p); - for (; p[i]; i++) { - int c = (unsigned char)p[i]; - if (c == '\"' || c == '\\') { - putchar('\\'); - putchar(c); - } else if (c >= ' ' && c <= 126) { - putchar(c); - } else if (c == '\n') { - putchar('\\'); - putchar('n'); - } else { - printf("\\u%04x", c); - } - } - putchar('\"'); - } -} - -/* free with JS_FreeCString() */ -const char *JS_AtomToCStringLen(JSContext *ctx, size_t *plen, JSAtom atom) -{ - JSValue str; - const char *cstr; - - str = JS_AtomToString(ctx, atom); - if (JS_IsException(str)) { - if (plen) - *plen = 0; - return NULL; - } - cstr = JS_ToCStringLen(ctx, plen, str); - JS_FreeValue(ctx, str); - return cstr; -} - -#ifndef QJS_DISABLE_PARSER - -/* return a string atom containing name concatenated with str1 */ -/* `str1` may be pure ASCII or UTF-8 encoded */ -// TODO(chqrlie): use string concatenation instead of UTF-8 conversion -static JSAtom js_atom_concat_str(JSContext *ctx, JSAtom name, const char *str1) -{ - JSValue str; - JSAtom atom; - const char *cstr; - char *cstr2; - size_t len, len1; - - str = JS_AtomToString(ctx, name); - if (JS_IsException(str)) - return JS_ATOM_NULL; - cstr = JS_ToCStringLen(ctx, &len, str); - if (!cstr) - goto fail; - len1 = strlen(str1); - cstr2 = js_malloc(ctx, len + len1 + 1); - if (!cstr2) - goto fail; - memcpy(cstr2, cstr, len); - memcpy(cstr2 + len, str1, len1); - cstr2[len + len1] = '\0'; - atom = JS_NewAtomLen(ctx, cstr2, len + len1); - js_free(ctx, cstr2); - JS_FreeCString(ctx, cstr); - JS_FreeValue(ctx, str); - return atom; - fail: - JS_FreeCString(ctx, cstr); - JS_FreeValue(ctx, str); - return JS_ATOM_NULL; -} - -static JSAtom js_atom_concat_num(JSContext *ctx, JSAtom name, uint32_t n) -{ - char buf[16]; - size_t len; - - len = u32toa(buf, n); - buf[len] = '\0'; - return js_atom_concat_str(ctx, name, buf); -} - -#endif // QJS_DISABLE_PARSER - -static inline bool JS_IsEmptyString(JSValueConst v) -{ - return JS_VALUE_GET_TAG(v) == JS_TAG_STRING && JS_VALUE_GET_STRING(v)->len == 0; -} - -/* JSClass support */ - -/* a new class ID is allocated if *pclass_id == 0, otherwise *pclass_id is left unchanged */ -JSClassID JS_NewClassID(JSRuntime *rt, JSClassID *pclass_id) -{ - JSClassID class_id = *pclass_id; - if (class_id == 0) { - class_id = rt->js_class_id_alloc++; - *pclass_id = class_id; - } - return class_id; -} - -JSClassID JS_GetClassID(JSValueConst v) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(v) != JS_TAG_OBJECT) - return JS_INVALID_CLASS_ID; - p = JS_VALUE_GET_OBJ(v); - return p->class_id; -} - -bool JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id) -{ - return (class_id < rt->class_count && - rt->class_array[class_id].class_id != 0); -} - -JSAtom JS_GetClassName(JSRuntime *rt, JSClassID class_id) -{ - if (JS_IsRegisteredClass(rt, class_id)) { - return JS_DupAtomRT(rt, rt->class_array[class_id].class_id); - } else { - return JS_ATOM_NULL; - } -} - -/* create a new object internal class. Return -1 if error, 0 if - OK. The finalizer can be NULL if none is needed. */ -static int JS_NewClass1(JSRuntime *rt, JSClassID class_id, - const JSClassDef *class_def, JSAtom name) -{ - int new_size, i; - JSClass *cl, *new_class_array; - struct list_head *el; - - if (class_id >= (1 << 16)) - return -1; - if (class_id < rt->class_count && - rt->class_array[class_id].class_id != 0) - return -1; - - if (class_id >= rt->class_count) { - new_size = max_int(JS_CLASS_INIT_COUNT, - max_int(class_id + 1, rt->class_count * 3 / 2)); - - /* reallocate the context class prototype array, if any */ - list_for_each(el, &rt->context_list) { - JSContext *ctx = list_entry(el, JSContext, link); - JSValue *new_tab; - new_tab = js_realloc_rt(rt, ctx->class_proto, - sizeof(ctx->class_proto[0]) * new_size); - if (!new_tab) - return -1; - for(i = rt->class_count; i < new_size; i++) - new_tab[i] = JS_NULL; - ctx->class_proto = new_tab; - } - /* reallocate the class array */ - new_class_array = js_realloc_rt(rt, rt->class_array, - sizeof(JSClass) * new_size); - if (!new_class_array) - return -1; - memset(new_class_array + rt->class_count, 0, - (new_size - rt->class_count) * sizeof(JSClass)); - rt->class_array = new_class_array; - rt->class_count = new_size; - } - cl = &rt->class_array[class_id]; - cl->class_id = class_id; - cl->class_name = JS_DupAtomRT(rt, name); - cl->finalizer = class_def->finalizer; - cl->gc_mark = class_def->gc_mark; - cl->call = class_def->call; - cl->exotic = class_def->exotic; - return 0; -} - -int JS_NewClass(JSRuntime *rt, JSClassID class_id, const JSClassDef *class_def) -{ - int ret, len; - JSAtom name; - - // XXX: class_def->class_name must be raw 8-bit contents. No UTF-8 encoded strings - len = strlen(class_def->class_name); - name = __JS_FindAtom(rt, class_def->class_name, len, JS_ATOM_TYPE_STRING); - if (name == JS_ATOM_NULL) { - name = __JS_NewAtomInit(rt, class_def->class_name, len, JS_ATOM_TYPE_STRING); - if (name == JS_ATOM_NULL) - return -1; - } - ret = JS_NewClass1(rt, class_id, class_def, name); - JS_FreeAtomRT(rt, name); - return ret; -} - -static inline JSValue js_empty_string(JSRuntime *rt) -{ - JSAtomStruct *p = rt->atom_array[JS_ATOM_empty_string]; - return js_dup(JS_MKPTR(JS_TAG_STRING, p)); -} - -// XXX: `buf` contains raw 8-bit data, no UTF-8 decoding is performed -// XXX: no special case for len == 0 -static JSValue js_new_string8_len(JSContext *ctx, const char *buf, int len) -{ - JSString *str; - str = js_alloc_string(ctx, len, 0); - if (!str) - return JS_EXCEPTION; - memcpy(str8(str), buf, len); - str8(str)[len] = '\0'; - return JS_MKPTR(JS_TAG_STRING, str); -} - -// XXX: `buf` contains raw 8-bit data, no UTF-8 decoding is performed -// XXX: no special case for the empty string -static inline JSValue js_new_string8(JSContext *ctx, const char *str) -{ - return js_new_string8_len(ctx, str, strlen(str)); -} - -static JSValue js_new_string16_len(JSContext *ctx, const uint16_t *buf, int len) -{ - JSString *str; - str = js_alloc_string(ctx, len, 1); - if (!str) - return JS_EXCEPTION; - memcpy(str16(str), buf, len * 2); - return JS_MKPTR(JS_TAG_STRING, str); -} - -static JSValue js_new_string_char(JSContext *ctx, uint16_t c) -{ - if (c < 0x100) { - char ch8 = c; - return js_new_string8_len(ctx, &ch8, 1); - } else { - uint16_t ch16 = c; - return js_new_string16_len(ctx, &ch16, 1); - } -} - -static JSValue js_sub_string(JSContext *ctx, JSString *p, int start, int end) -{ - JSStringSlice *slice; - JSString *q; - int len; - - len = end - start; - if (start == 0 && end == p->len) { - return js_dup(JS_MKPTR(JS_TAG_STRING, p)); - } - if (len <= 0) { - return js_empty_string(ctx->rt); - } - if (len > (JS_STRING_SLICE_LEN_MAX >> p->is_wide_char)) { - if (p->kind == JS_STRING_KIND_SLICE) { - slice = (void *)&p[1]; - p = slice->parent; - start += slice->start >> p->is_wide_char; // bytes -> chars - } - // allocate as 16 bit wide string to avoid wastage; - // js_alloc_string allocates 1 byte extra for 8 bit strings; - q = js_alloc_string(ctx, sizeof(*slice)/2, /*is_wide_char*/true); - if (!q) - return JS_EXCEPTION; - q->is_wide_char = p->is_wide_char; - q->kind = JS_STRING_KIND_SLICE; - q->len = len; - slice = (void *)&q[1]; - slice->parent = p; - slice->start = start << p->is_wide_char; // chars -> bytes - p->header.ref_count++; - return JS_MKPTR(JS_TAG_STRING, q); - } - if (p->is_wide_char) { - JSString *str; - int i; - uint16_t c = 0; - for (i = start; i < end; i++) { - c |= str16(p)[i]; - } - if (c > 0xFF) - return js_new_string16_len(ctx, str16(p) + start, len); - - str = js_alloc_string(ctx, len, 0); - if (!str) - return JS_EXCEPTION; - for (i = 0; i < len; i++) { - str8(str)[i] = str16(p)[start + i]; - } - str8(str)[len] = '\0'; - return JS_MKPTR(JS_TAG_STRING, str); - } else { - return js_new_string8_len(ctx, (const char *)(str8(p) + start), len); - } -} - -typedef struct StringBuffer { - JSContext *ctx; - JSString *str; - int len; - int size; - int is_wide_char; - int error_status; -} StringBuffer; - -/* It is valid to call string_buffer_end() and all string_buffer functions even - if string_buffer_init() or another string_buffer function returns an error. - If the error_status is set, string_buffer_end() returns JS_EXCEPTION. - */ -static int string_buffer_init2(JSContext *ctx, StringBuffer *s, int size, - int is_wide) -{ - s->ctx = ctx; - s->size = size; - s->len = 0; - s->is_wide_char = is_wide; - s->error_status = 0; - s->str = js_alloc_string(ctx, size, is_wide); - if (unlikely(!s->str)) { - s->size = 0; - return s->error_status = -1; - } -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - /* the StringBuffer may reallocate the JSString, only link it at the end */ - list_del(&s->str->link); -#endif - return 0; -} - -static inline int string_buffer_init(JSContext *ctx, StringBuffer *s, int size) -{ - return string_buffer_init2(ctx, s, size, 0); -} - -static void string_buffer_free(StringBuffer *s) -{ - js_free(s->ctx, s->str); - s->str = NULL; -} - -static int string_buffer_set_error(StringBuffer *s) -{ - js_free(s->ctx, s->str); - s->str = NULL; - s->size = 0; - s->len = 0; - return s->error_status = -1; -} - -static no_inline int string_buffer_widen(StringBuffer *s, int size) -{ - JSString *str; - size_t slack; - int i; - - if (s->error_status) - return -1; - - str = js_realloc2(s->ctx, s->str, sizeof(JSString) + (size << 1), &slack); - if (!str) - return string_buffer_set_error(s); - size += slack >> 1; - for(i = s->len; i-- > 0;) { - str16(str)[i] = str8(str)[i]; - } - s->is_wide_char = 1; - s->size = size; - s->str = str; - return 0; -} - -static no_inline int string_buffer_realloc(StringBuffer *s, int new_len, int c) -{ - JSString *new_str; - int new_size; - size_t new_size_bytes, slack; - - if (s->error_status) - return -1; - - if (new_len > JS_STRING_LEN_MAX) { - JS_ThrowRangeError(s->ctx, "invalid string length"); - return string_buffer_set_error(s); - } - new_size = min_int(max_int(new_len, s->size * 3 / 2), JS_STRING_LEN_MAX); - if (!s->is_wide_char && c >= 0x100) { - return string_buffer_widen(s, new_size); - } - new_size_bytes = sizeof(JSString) + (new_size << s->is_wide_char) + 1 - s->is_wide_char; - new_str = js_realloc2(s->ctx, s->str, new_size_bytes, &slack); - if (!new_str) - return string_buffer_set_error(s); - new_size = min_int(new_size + (slack >> s->is_wide_char), JS_STRING_LEN_MAX); - s->size = new_size; - s->str = new_str; - return 0; -} - -static no_inline int string_buffer_putc_slow(StringBuffer *s, uint32_t c) -{ - if (unlikely(s->len >= s->size)) { - if (string_buffer_realloc(s, s->len + 1, c)) - return -1; - } - if (s->is_wide_char) { - str16(s->str)[s->len++] = c; - } else if (c < 0x100) { - str8(s->str)[s->len++] = c; - } else { - if (string_buffer_widen(s, s->size)) - return -1; - str16(s->str)[s->len++] = c; - } - return 0; -} - -/* 0 <= c <= 0xff */ -static int string_buffer_putc8(StringBuffer *s, uint32_t c) -{ - if (unlikely(s->len >= s->size)) { - if (string_buffer_realloc(s, s->len + 1, c)) - return -1; - } - if (s->is_wide_char) { - str16(s->str)[s->len++] = c; - } else { - str8(s->str)[s->len++] = c; - } - return 0; -} - -/* 0 <= c <= 0xffff */ -static int string_buffer_putc16(StringBuffer *s, uint32_t c) -{ - if (likely(s->len < s->size)) { - if (s->is_wide_char) { - str16(s->str)[s->len++] = c; - return 0; - } else if (c < 0x100) { - str8(s->str)[s->len++] = c; - return 0; - } - } - return string_buffer_putc_slow(s, c); -} - -/* 0 <= c <= 0x10ffff */ -static int string_buffer_putc(StringBuffer *s, uint32_t c) -{ - if (unlikely(c >= 0x10000)) { - /* surrogate pair */ - if (string_buffer_putc16(s, get_hi_surrogate(c))) - return -1; - c = get_lo_surrogate(c); - } - return string_buffer_putc16(s, c); -} - -static int string_getc(JSString *p, int *pidx) -{ - int idx, c, c1; - idx = *pidx; - if (p->is_wide_char) { - c = str16(p)[idx++]; - if (is_hi_surrogate(c) && idx < p->len) { - c1 = str16(p)[idx]; - if (is_lo_surrogate(c1)) { - c = from_surrogate(c, c1); - idx++; - } - } - } else { - c = str8(p)[idx++]; - } - *pidx = idx; - return c; -} - -static int string_buffer_write8(StringBuffer *s, const uint8_t *p, int len) -{ - int i; - - if (s->len + len > s->size) { - if (string_buffer_realloc(s, s->len + len, 0)) - return -1; - } - if (s->is_wide_char) { - for (i = 0; i < len; i++) { - str16(s->str)[s->len + i] = p[i]; - } - s->len += len; - } else { - memcpy(&str8(s->str)[s->len], p, len); - s->len += len; - } - return 0; -} - -static int string_buffer_write16(StringBuffer *s, const uint16_t *p, int len) -{ - int c = 0, i; - - for (i = 0; i < len; i++) { - c |= p[i]; - } - if (s->len + len > s->size) { - if (string_buffer_realloc(s, s->len + len, c)) - return -1; - } else if (!s->is_wide_char && c >= 0x100) { - if (string_buffer_widen(s, s->size)) - return -1; - } - if (s->is_wide_char) { - memcpy(&str16(s->str)[s->len], p, len << 1); - s->len += len; - } else { - for (i = 0; i < len; i++) { - str8(s->str)[s->len + i] = p[i]; - } - s->len += len; - } - return 0; -} - -/* appending an ASCII string */ -static int string_buffer_puts8(StringBuffer *s, const char *str) -{ - return string_buffer_write8(s, (const uint8_t *)str, strlen(str)); -} - -static int string_buffer_concat(StringBuffer *s, JSString *p, - uint32_t from, uint32_t to) -{ - if (to <= from) - return 0; - if (p->is_wide_char) - return string_buffer_write16(s, str16(p) + from, to - from); - else - return string_buffer_write8(s, str8(p) + from, to - from); -} - -static int string_buffer_concat_value(StringBuffer *s, JSValueConst v) -{ - JSString *p; - JSValue v1; - int res; - - if (s->error_status) { - /* prevent exception overload */ - return -1; - } - if (unlikely(JS_VALUE_GET_TAG(v) != JS_TAG_STRING)) { - v1 = JS_ToString(s->ctx, v); - if (JS_IsException(v1)) - return string_buffer_set_error(s); - p = JS_VALUE_GET_STRING(v1); - res = string_buffer_concat(s, p, 0, p->len); - JS_FreeValue(s->ctx, v1); - return res; - } - p = JS_VALUE_GET_STRING(v); - return string_buffer_concat(s, p, 0, p->len); -} - -static int string_buffer_concat_value_free(StringBuffer *s, JSValue v) -{ - JSString *p; - int res; - - if (s->error_status) { - /* prevent exception overload */ - JS_FreeValue(s->ctx, v); - return -1; - } - if (unlikely(JS_VALUE_GET_TAG(v) != JS_TAG_STRING)) { - v = JS_ToStringFree(s->ctx, v); - if (JS_IsException(v)) - return string_buffer_set_error(s); - } - p = JS_VALUE_GET_STRING(v); - res = string_buffer_concat(s, p, 0, p->len); - JS_FreeValue(s->ctx, v); - return res; -} - -static int string_buffer_fill(StringBuffer *s, int c, int count) -{ - /* XXX: optimize */ - if (s->len + count > s->size) { - if (string_buffer_realloc(s, s->len + count, c)) - return -1; - } - while (count-- > 0) { - if (string_buffer_putc16(s, c)) - return -1; - } - return 0; -} - -static JSValue string_buffer_end(StringBuffer *s) -{ - JSString *str; - str = s->str; - if (s->error_status) - return JS_EXCEPTION; - if (s->len == 0) { - js_free(s->ctx, str); - s->str = NULL; - return js_empty_string(s->ctx->rt); - } - if (s->len < s->size) { - /* smaller size so js_realloc should not fail, but OK if it does */ - /* XXX: should add some slack to avoid unnecessary calls */ - /* XXX: might need to use malloc+free to ensure smaller size */ - str = js_realloc_rt(s->ctx->rt, str, sizeof(JSString) + - (s->len << s->is_wide_char) + 1 - s->is_wide_char); - if (str == NULL) - str = s->str; - s->str = str; - } - if (!s->is_wide_char) - str8(str)[s->len] = 0; -#ifdef ENABLE_DUMPS // JS_DUMP_LEAKS - list_add_tail(&str->link, &s->ctx->rt->string_list); -#endif - str->is_wide_char = s->is_wide_char; - str->len = s->len; - s->str = NULL; - return JS_MKPTR(JS_TAG_STRING, str); -} - -/* create a string from a UTF-8 buffer */ -JSValue JS_NewStringLen(JSContext *ctx, const char *buf, size_t buf_len) -{ - JSString *str; - size_t len; - int kind; - - if (buf_len <= 0) { - return js_empty_string(ctx->rt); - } - /* Compute string kind and length: 7-bit, 8-bit, 16-bit, 16-bit UTF-16 */ - kind = utf8_scan(buf, buf_len, &len); - if (len > JS_STRING_LEN_MAX) - return JS_ThrowRangeError(ctx, "invalid string length"); - - switch (kind) { - case UTF8_PLAIN_ASCII: - str = js_alloc_string(ctx, len, 0); - if (!str) - return JS_EXCEPTION; - memcpy(str8(str), buf, len); - str8(str)[len] = '\0'; - break; - case UTF8_NON_ASCII: - /* buf contains non-ASCII code-points, but limited to 8-bit values */ - str = js_alloc_string(ctx, len, 0); - if (!str) - return JS_EXCEPTION; - utf8_decode_buf8(str8(str), len + 1, buf, buf_len); - break; - default: - // This causes a potential problem in JS_ThrowError if message is invalid - //if (kind & UTF8_HAS_ERRORS) - // return JS_ThrowRangeError(ctx, "invalid UTF-8 sequence"); - str = js_alloc_string(ctx, len, 1); - if (!str) - return JS_EXCEPTION; - utf8_decode_buf16(str16(str), len, buf, buf_len); - break; - } - return JS_MKPTR(JS_TAG_STRING, str); -} - -JSValue JS_NewTwoByteString(JSContext *ctx, const uint16_t *buf, size_t len) -{ - JSString *str; - - if (!len) - return js_empty_string(ctx->rt); - str = js_alloc_string(ctx, len, 1); - if (!str) - return JS_EXCEPTION; - memcpy(str16(str), buf, len * sizeof(*buf)); - return JS_MKPTR(JS_TAG_STRING, str); -} - -static JSValue JS_ConcatString3(JSContext *ctx, const char *str1, - JSValue str2, const char *str3) -{ - StringBuffer b_s, *b = &b_s; - int len1, len3; - JSString *p; - - if (unlikely(JS_VALUE_GET_TAG(str2) != JS_TAG_STRING)) { - str2 = JS_ToStringFree(ctx, str2); - if (JS_IsException(str2)) - goto fail; - } - p = JS_VALUE_GET_STRING(str2); - len1 = strlen(str1); - len3 = strlen(str3); - - if (string_buffer_init2(ctx, b, len1 + p->len + len3, p->is_wide_char)) - goto fail; - - string_buffer_write8(b, (const uint8_t *)str1, len1); - string_buffer_concat(b, p, 0, p->len); - string_buffer_write8(b, (const uint8_t *)str3, len3); - - JS_FreeValue(ctx, str2); - return string_buffer_end(b); - - fail: - JS_FreeValue(ctx, str2); - return JS_EXCEPTION; -} - -/* `str` may be pure ASCII or UTF-8 encoded */ -JSValue JS_NewAtomString(JSContext *ctx, const char *str) -{ - JSAtom atom = JS_NewAtom(ctx, str); - if (atom == JS_ATOM_NULL) - return JS_EXCEPTION; - JSValue val = JS_AtomToString(ctx, atom); - JS_FreeAtom(ctx, atom); - return val; -} - -/* return (NULL, 0) if exception. */ -/* return pointer into a JSString with a live ref_count */ -/* cesu8 determines if non-BMP1 codepoints are encoded as 1 or 2 utf-8 sequences */ -const char *JS_ToCStringLen2(JSContext *ctx, size_t *plen, JSValueConst val1, - bool cesu8) -{ - JSValue val; - JSString *str, *str_new; - int pos, len, c, c1; - JSObject *p; - uint8_t *q; - - if (JS_VALUE_GET_TAG(val1) == JS_TAG_STRING) { - val = js_dup(val1); - goto go; - } - - val = JS_ToString(ctx, val1); - if (!JS_IsException(val)) - goto go; - - // Stringification can fail when there is an exception pending, - // e.g. a stack overflow InternalError. Special-case exception - // objects to make debugging easier, look up the .message property - // and stringify that. - if (JS_VALUE_GET_TAG(val1) != JS_TAG_OBJECT) - goto fail; - - p = JS_VALUE_GET_OBJ(val1); - if (p->class_id != JS_CLASS_ERROR) - goto fail; - - val = JS_GetProperty(ctx, val1, JS_ATOM_message); - if (JS_VALUE_GET_TAG(val) != JS_TAG_STRING) { - JS_FreeValue(ctx, val); - goto fail; - } - -go: - str = JS_VALUE_GET_STRING(val); - len = str->len; - if (!str->is_wide_char) { - const uint8_t *src = str8(str); - int count; - - /* count the number of non-ASCII characters */ - /* Scanning the whole string is required for ASCII strings, - and computing the number of non-ASCII bytes is less expensive - than testing each byte, hence this method is faster for ASCII - strings, which is the most common case. - */ - count = 0; - for (pos = 0; pos < len; pos++) { - count += src[pos] >> 7; - } - if (count == 0 && str->kind == JS_STRING_KIND_NORMAL) { - if (plen) - *plen = len; - return (const char *)src; - } - str_new = js_alloc_string(ctx, len + count, 0); - if (!str_new) - goto fail; - q = str8(str_new); - for (pos = 0; pos < len; pos++) { - c = src[pos]; - if (c < 0x80) { - *q++ = c; - } else { - *q++ = (c >> 6) | 0xc0; - *q++ = (c & 0x3f) | 0x80; - } - } - } else { - const uint16_t *src = str16(str); - /* Allocate 3 bytes per 16 bit code point. Surrogate pairs may - produce 4 bytes but use 2 code points. - */ - str_new = js_alloc_string(ctx, len * 3, 0); - if (!str_new) - goto fail; - q = str8(str_new); - pos = 0; - while (pos < len) { - c = src[pos++]; - if (c < 0x80) { - *q++ = c; - } else { - if (is_hi_surrogate(c)) { - if (pos < len && !cesu8) { - c1 = src[pos]; - if (is_lo_surrogate(c1)) { - pos++; - c = from_surrogate(c, c1); - } else { - /* Keep unmatched surrogate code points */ - /* c = 0xfffd; */ /* error */ - } - } else { - /* Keep unmatched surrogate code points */ - /* c = 0xfffd; */ /* error */ - } - } - q += utf8_encode(q, c); - } - } - } - - *q = '\0'; - str_new->len = q - str8(str_new); - JS_FreeValue(ctx, val); - if (plen) - *plen = str_new->len; - return (const char *)str8(str_new); - fail: - if (plen) - *plen = 0; - return NULL; -} - -void JS_FreeCString(JSContext *ctx, const char *ptr) -{ - if (!ptr) - return; - /* purposely removing constness */ - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_STRING, (JSString *)ptr - 1)); -} - -static int memcmp16_8(const uint16_t *src1, const uint8_t *src2, int len) -{ - int c, i; - for(i = 0; i < len; i++) { - c = src1[i] - src2[i]; - if (c != 0) - return c; - } - return 0; -} - -static int memcmp16(const uint16_t *src1, const uint16_t *src2, int len) -{ - int c, i; - for(i = 0; i < len; i++) { - c = src1[i] - src2[i]; - if (c != 0) - return c; - } - return 0; -} - -static int js_string_memcmp(JSString *p1, JSString *p2, int len) -{ - int res; - - if (likely(!p1->is_wide_char)) { - if (likely(!p2->is_wide_char)) - res = memcmp(str8(p1), str8(p2), len); - else - res = -memcmp16_8(str16(p2), str8(p1), len); - } else { - if (!p2->is_wide_char) - res = memcmp16_8(str16(p1), str8(p2), len); - else - res = memcmp16(str16(p1), str16(p2), len); - } - return res; -} - -static bool js_string_eq(JSString *p1, JSString *p2) { - if (p1->len != p2->len) - return false; - return js_string_memcmp(p1, p2, p1->len) == 0; -} - -/* return < 0, 0 or > 0 */ -static int js_string_compare(JSString *p1, JSString *p2) -{ - int res, len; - len = min_int(p1->len, p2->len); - res = js_string_memcmp(p1, p2, len); - if (res == 0) - res = compare_u32(p1->len, p2->len); - return res; -} - -static void copy_str16(uint16_t *dst, JSString *p, int offset, int len) -{ - if (p->is_wide_char) { - memcpy(dst, str16(p) + offset, len * 2); - } else { - const uint8_t *src1 = str8(p) + offset; - int i; - - for(i = 0; i < len; i++) - dst[i] = src1[i]; - } -} - -static JSValue JS_ConcatString1(JSContext *ctx, JSString *p1, JSString *p2) -{ - JSString *p; - uint32_t len; - int is_wide_char; - - len = p1->len + p2->len; - if (len > JS_STRING_LEN_MAX) - return JS_ThrowRangeError(ctx, "invalid string length"); - is_wide_char = p1->is_wide_char | p2->is_wide_char; - p = js_alloc_string(ctx, len, is_wide_char); - if (!p) - return JS_EXCEPTION; - if (!is_wide_char) { - memcpy(str8(p), str8(p1), p1->len); - memcpy(str8(p) + p1->len, str8(p2), p2->len); - str8(p)[len] = '\0'; - } else { - copy_str16(str16(p), p1, 0, p1->len); - copy_str16(str16(p) + p1->len, p2, 0, p2->len); - } - return JS_MKPTR(JS_TAG_STRING, p); -} - -/* op1 and op2 are converted to strings. For convience, op1 or op2 = - JS_EXCEPTION are accepted and return JS_EXCEPTION. */ -static JSValue JS_ConcatString(JSContext *ctx, JSValue op1, JSValue op2) -{ - JSValue ret; - JSString *p1, *p2; - - if (unlikely(JS_VALUE_GET_TAG(op1) != JS_TAG_STRING)) { - op1 = JS_ToStringFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - return JS_EXCEPTION; - } - } - if (unlikely(JS_VALUE_GET_TAG(op2) != JS_TAG_STRING)) { - op2 = JS_ToStringFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - return JS_EXCEPTION; - } - } - p1 = JS_VALUE_GET_STRING(op1); - p2 = JS_VALUE_GET_STRING(op2); - - /* XXX: could also check if p1 is empty */ - if (p2->len == 0) { - goto ret_op1; - } - if (p1->header.ref_count == 1 && p1->is_wide_char == p2->is_wide_char - && js_malloc_usable_size(ctx, p1) >= sizeof(*p1) + ((p1->len + p2->len) << p2->is_wide_char) + 1 - p1->is_wide_char) { - /* Concatenate in place in available space at the end of p1 */ - if (p1->is_wide_char) { - memcpy(str16(p1) + p1->len, str16(p2), p2->len << 1); - p1->len += p2->len; - } else { - memcpy(str8(p1) + p1->len, str8(p2), p2->len); - p1->len += p2->len; - str8(p1)[p1->len] = '\0'; - } - ret_op1: - JS_FreeValue(ctx, op2); - return op1; - } - ret = JS_ConcatString1(ctx, p1, p2); - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - return ret; -} - -/* Shape support */ - -static inline size_t get_shape_size(size_t hash_size, size_t prop_size) -{ - return hash_size * sizeof(uint32_t) + sizeof(JSShape) + - prop_size * sizeof(JSShapeProperty); -} - -static inline JSShape *get_shape_from_alloc(void *sh_alloc, size_t hash_size) -{ - return (JSShape *)(void *)((uint32_t *)sh_alloc + hash_size); -} - -static inline uint32_t *prop_hash_end(JSShape *sh) -{ - return (uint32_t *)sh; -} - -static inline void *get_alloc_from_shape(JSShape *sh) -{ - return prop_hash_end(sh) - ((intptr_t)sh->prop_hash_mask + 1); -} - -static inline JSShapeProperty *get_shape_prop(JSShape *sh) -{ - return sh->prop; -} - -static int init_shape_hash(JSRuntime *rt) -{ - rt->shape_hash_bits = 6; /* 64 shapes */ - rt->shape_hash_size = 1 << rt->shape_hash_bits; - rt->shape_hash_count = 0; - rt->shape_hash = js_mallocz_rt(rt, sizeof(rt->shape_hash[0]) * - rt->shape_hash_size); - if (!rt->shape_hash) - return -1; - return 0; -} - -/* same magic hash multiplier as the Linux kernel */ -static uint32_t shape_hash(uint32_t h, uint32_t val) -{ - return (h + val) * 0x9e370001; -} - -/* truncate the shape hash to 'hash_bits' bits */ -static uint32_t get_shape_hash(uint32_t h, int hash_bits) -{ - return h >> (32 - hash_bits); -} - -static uint32_t shape_initial_hash(JSObject *proto) -{ - uint32_t h; - h = shape_hash(1, (uintptr_t)proto); - if (sizeof(proto) > 4) - h = shape_hash(h, (uint64_t)(uintptr_t)proto >> 32); - return h; -} - -static int resize_shape_hash(JSRuntime *rt, int new_shape_hash_bits) -{ - int new_shape_hash_size, i; - uint32_t h; - JSShape **new_shape_hash, *sh, *sh_next; - - new_shape_hash_size = 1 << new_shape_hash_bits; - new_shape_hash = js_mallocz_rt(rt, sizeof(rt->shape_hash[0]) * - new_shape_hash_size); - if (!new_shape_hash) - return -1; - for(i = 0; i < rt->shape_hash_size; i++) { - for(sh = rt->shape_hash[i]; sh != NULL; sh = sh_next) { - sh_next = sh->shape_hash_next; - h = get_shape_hash(sh->hash, new_shape_hash_bits); - sh->shape_hash_next = new_shape_hash[h]; - new_shape_hash[h] = sh; - } - } - js_free_rt(rt, rt->shape_hash); - rt->shape_hash_bits = new_shape_hash_bits; - rt->shape_hash_size = new_shape_hash_size; - rt->shape_hash = new_shape_hash; - return 0; -} - -static void js_shape_hash_link(JSRuntime *rt, JSShape *sh) -{ - uint32_t h; - h = get_shape_hash(sh->hash, rt->shape_hash_bits); - sh->shape_hash_next = rt->shape_hash[h]; - rt->shape_hash[h] = sh; - rt->shape_hash_count++; -} - -static void js_shape_hash_unlink(JSRuntime *rt, JSShape *sh) -{ - uint32_t h; - JSShape **psh; - - h = get_shape_hash(sh->hash, rt->shape_hash_bits); - psh = &rt->shape_hash[h]; - while (*psh != sh) - psh = &(*psh)->shape_hash_next; - *psh = sh->shape_hash_next; - rt->shape_hash_count--; -} - -/* create a new empty shape with prototype 'proto' */ -static no_inline JSShape *js_new_shape2(JSContext *ctx, JSObject *proto, - int hash_size, int prop_size) -{ - JSRuntime *rt = ctx->rt; - void *sh_alloc; - JSShape *sh; - - /* resize the shape hash table if necessary */ - if (2 * (rt->shape_hash_count + 1) > rt->shape_hash_size) { - resize_shape_hash(rt, rt->shape_hash_bits + 1); - } - - sh_alloc = js_malloc(ctx, get_shape_size(hash_size, prop_size)); - if (!sh_alloc) - return NULL; - sh = get_shape_from_alloc(sh_alloc, hash_size); - sh->header.ref_count = 1; - add_gc_object(rt, &sh->header, JS_GC_OBJ_TYPE_SHAPE); - if (proto) - js_dup(JS_MKPTR(JS_TAG_OBJECT, proto)); - sh->proto = proto; - memset(prop_hash_end(sh) - hash_size, 0, sizeof(prop_hash_end(sh)[0]) * - hash_size); - sh->prop_hash_mask = hash_size - 1; - sh->prop_size = prop_size; - sh->prop_count = 0; - sh->deleted_prop_count = 0; - - /* insert in the hash table */ - sh->hash = shape_initial_hash(proto); - sh->is_hashed = true; - sh->has_small_array_index = false; - js_shape_hash_link(ctx->rt, sh); - return sh; -} - -static JSShape *js_new_shape(JSContext *ctx, JSObject *proto) -{ - return js_new_shape2(ctx, proto, JS_PROP_INITIAL_HASH_SIZE, - JS_PROP_INITIAL_SIZE); -} - -/* The shape is cloned. The new shape is not inserted in the shape - hash table */ -static JSShape *js_clone_shape(JSContext *ctx, JSShape *sh1) -{ - JSShape *sh; - void *sh_alloc, *sh_alloc1; - size_t size; - JSShapeProperty *pr; - uint32_t i, hash_size; - - hash_size = sh1->prop_hash_mask + 1; - size = get_shape_size(hash_size, sh1->prop_size); - sh_alloc = js_malloc(ctx, size); - if (!sh_alloc) - return NULL; - sh_alloc1 = get_alloc_from_shape(sh1); - memcpy(sh_alloc, sh_alloc1, size); - sh = get_shape_from_alloc(sh_alloc, hash_size); - sh->header.ref_count = 1; - add_gc_object(ctx->rt, &sh->header, JS_GC_OBJ_TYPE_SHAPE); - sh->is_hashed = false; - if (sh->proto) { - js_dup(JS_MKPTR(JS_TAG_OBJECT, sh->proto)); - } - for(i = 0, pr = get_shape_prop(sh); i < sh->prop_count; i++, pr++) { - JS_DupAtom(ctx, pr->atom); - } - return sh; -} - -static JSShape *js_dup_shape(JSShape *sh) -{ - sh->header.ref_count++; - return sh; -} - -static void js_free_shape0(JSRuntime *rt, JSShape *sh) -{ - uint32_t i; - JSShapeProperty *pr; - - assert(sh->header.ref_count == 0); - if (sh->is_hashed) - js_shape_hash_unlink(rt, sh); - if (sh->proto != NULL) { - JS_FreeValueRT(rt, JS_MKPTR(JS_TAG_OBJECT, sh->proto)); - } - pr = get_shape_prop(sh); - for(i = 0; i < sh->prop_count; i++) { - JS_FreeAtomRT(rt, pr->atom); - pr++; - } - remove_gc_object(&sh->header); - js_free_rt(rt, get_alloc_from_shape(sh)); -} - -static void js_free_shape(JSRuntime *rt, JSShape *sh) -{ - if (unlikely(--sh->header.ref_count <= 0)) { - js_free_shape0(rt, sh); - } -} - -static void js_free_shape_null(JSRuntime *rt, JSShape *sh) -{ - if (sh) - js_free_shape(rt, sh); -} - -/* make space to hold at least 'count' properties */ -static no_inline int resize_properties(JSContext *ctx, JSShape **psh, - JSObject *p, uint32_t count) -{ - JSShape *sh; - uint32_t new_size, new_hash_size, new_hash_mask, i; - JSShapeProperty *pr; - void *sh_alloc; - intptr_t h; - - sh = *psh; - new_size = max_int(count, sh->prop_size * 3 / 2); - /* Reallocate prop array first to avoid crash or size inconsistency - in case of memory allocation failure */ - if (p) { - JSProperty *new_prop; - new_prop = js_realloc(ctx, p->prop, sizeof(new_prop[0]) * new_size); - if (unlikely(!new_prop)) - return -1; - p->prop = new_prop; - } - new_hash_size = sh->prop_hash_mask + 1; - while (new_hash_size < new_size) - new_hash_size = 2 * new_hash_size; - if (new_hash_size != (sh->prop_hash_mask + 1)) { - JSShape *old_sh; - /* resize the hash table and the properties */ - old_sh = sh; - sh_alloc = js_malloc(ctx, get_shape_size(new_hash_size, new_size)); - if (!sh_alloc) - return -1; - sh = get_shape_from_alloc(sh_alloc, new_hash_size); - list_del(&old_sh->header.link); - /* copy all the fields and the properties */ - memcpy(sh, old_sh, - sizeof(JSShape) + sizeof(sh->prop[0]) * old_sh->prop_count); - list_add_tail(&sh->header.link, &ctx->rt->gc_obj_list); - new_hash_mask = new_hash_size - 1; - sh->prop_hash_mask = new_hash_mask; - memset(prop_hash_end(sh) - new_hash_size, 0, - sizeof(prop_hash_end(sh)[0]) * new_hash_size); - for(i = 0, pr = sh->prop; i < sh->prop_count; i++, pr++) { - if (pr->atom != JS_ATOM_NULL) { - h = ((uintptr_t)pr->atom & new_hash_mask); - pr->hash_next = prop_hash_end(sh)[-h - 1]; - prop_hash_end(sh)[-h - 1] = i + 1; - } - } - js_free(ctx, get_alloc_from_shape(old_sh)); - } else { - /* only resize the properties */ - list_del(&sh->header.link); - sh_alloc = js_realloc(ctx, get_alloc_from_shape(sh), - get_shape_size(new_hash_size, new_size)); - if (unlikely(!sh_alloc)) { - /* insert again in the GC list */ - list_add_tail(&sh->header.link, &ctx->rt->gc_obj_list); - return -1; - } - sh = get_shape_from_alloc(sh_alloc, new_hash_size); - list_add_tail(&sh->header.link, &ctx->rt->gc_obj_list); - } - *psh = sh; - sh->prop_size = new_size; - return 0; -} - -/* remove the deleted properties. */ -static int compact_properties(JSContext *ctx, JSObject *p) -{ - JSShape *sh, *old_sh; - void *sh_alloc; - intptr_t h; - uint32_t new_hash_size, i, j, new_hash_mask, new_size; - JSShapeProperty *old_pr, *pr; - JSProperty *prop, *new_prop; - - sh = p->shape; - assert(!sh->is_hashed); - - new_size = max_int(JS_PROP_INITIAL_SIZE, - sh->prop_count - sh->deleted_prop_count); - assert(new_size <= sh->prop_size); - - new_hash_size = sh->prop_hash_mask + 1; - while ((new_hash_size / 2) >= new_size) - new_hash_size = new_hash_size / 2; - new_hash_mask = new_hash_size - 1; - - /* resize the hash table and the properties */ - old_sh = sh; - sh_alloc = js_malloc(ctx, get_shape_size(new_hash_size, new_size)); - if (!sh_alloc) - return -1; - sh = get_shape_from_alloc(sh_alloc, new_hash_size); - list_del(&old_sh->header.link); - memcpy(sh, old_sh, sizeof(JSShape)); - list_add_tail(&sh->header.link, &ctx->rt->gc_obj_list); - - memset(prop_hash_end(sh) - new_hash_size, 0, - sizeof(prop_hash_end(sh)[0]) * new_hash_size); - - j = 0; - old_pr = old_sh->prop; - pr = sh->prop; - prop = p->prop; - for(i = 0; i < sh->prop_count; i++) { - if (old_pr->atom != JS_ATOM_NULL) { - pr->atom = old_pr->atom; - pr->flags = old_pr->flags; - h = ((uintptr_t)old_pr->atom & new_hash_mask); - pr->hash_next = prop_hash_end(sh)[-h - 1]; - prop_hash_end(sh)[-h - 1] = j + 1; - prop[j] = prop[i]; - j++; - pr++; - } - old_pr++; - } - assert(j == (sh->prop_count - sh->deleted_prop_count)); - sh->prop_hash_mask = new_hash_mask; - sh->prop_size = new_size; - sh->deleted_prop_count = 0; - sh->prop_count = j; - - p->shape = sh; - js_free(ctx, get_alloc_from_shape(old_sh)); - - /* reduce the size of the object properties */ - new_prop = js_realloc(ctx, p->prop, sizeof(new_prop[0]) * new_size); - if (new_prop) - p->prop = new_prop; - return 0; -} - -static int add_shape_property(JSContext *ctx, JSShape **psh, - JSObject *p, JSAtom atom, int prop_flags) -{ - JSRuntime *rt = ctx->rt; - JSShape *sh = *psh; - JSShapeProperty *pr, *prop; - uint32_t hash_mask, new_shape_hash = 0; - intptr_t h; - - /* update the shape hash */ - if (sh->is_hashed) { - js_shape_hash_unlink(rt, sh); - new_shape_hash = shape_hash(shape_hash(sh->hash, atom), prop_flags); - } - - if (unlikely(sh->prop_count >= sh->prop_size)) { - if (resize_properties(ctx, psh, p, sh->prop_count + 1)) { - /* in case of error, reinsert in the hash table. - sh is still valid if resize_properties() failed */ - if (sh->is_hashed) - js_shape_hash_link(rt, sh); - return -1; - } - sh = *psh; - } - if (sh->is_hashed) { - sh->hash = new_shape_hash; - js_shape_hash_link(rt, sh); - } - /* Initialize the new shape property. - The object property at p->prop[sh->prop_count] is uninitialized */ - prop = get_shape_prop(sh); - pr = &prop[sh->prop_count++]; - pr->atom = JS_DupAtom(ctx, atom); - pr->flags = prop_flags; - sh->has_small_array_index |= __JS_AtomIsTaggedInt(atom); - /* add in hash table */ - hash_mask = sh->prop_hash_mask; - h = atom & hash_mask; - pr->hash_next = prop_hash_end(sh)[-h - 1]; - prop_hash_end(sh)[-h - 1] = sh->prop_count; - return 0; -} - -/* find a hashed empty shape matching the prototype. Return NULL if - not found */ -static JSShape *find_hashed_shape_proto(JSRuntime *rt, JSObject *proto) -{ - JSShape *sh1; - uint32_t h, h1; - - h = shape_initial_hash(proto); - h1 = get_shape_hash(h, rt->shape_hash_bits); - for(sh1 = rt->shape_hash[h1]; sh1 != NULL; sh1 = sh1->shape_hash_next) { - if (sh1->hash == h && - sh1->proto == proto && - sh1->prop_count == 0) { - return sh1; - } - } - return NULL; -} - -/* find a hashed shape matching sh + (prop, prop_flags). Return NULL if - not found */ -static JSShape *find_hashed_shape_prop(JSRuntime *rt, JSShape *sh, - JSAtom atom, int prop_flags) -{ - JSShape *sh1; - uint32_t h, h1, i, n; - - h = sh->hash; - h = shape_hash(h, atom); - h = shape_hash(h, prop_flags); - h1 = get_shape_hash(h, rt->shape_hash_bits); - for(sh1 = rt->shape_hash[h1]; sh1 != NULL; sh1 = sh1->shape_hash_next) { - /* we test the hash first so that the rest is done only if the - shapes really match */ - if (sh1->hash == h && - sh1->proto == sh->proto && - sh1->prop_count == ((n = sh->prop_count) + 1)) { - for(i = 0; i < n; i++) { - if (unlikely(sh1->prop[i].atom != sh->prop[i].atom) || - unlikely(sh1->prop[i].flags != sh->prop[i].flags)) - goto next; - } - if (unlikely(sh1->prop[n].atom != atom) || - unlikely(sh1->prop[n].flags != prop_flags)) - goto next; - return sh1; - } - next: ; - } - return NULL; -} - -static __maybe_unused void JS_DumpShape(JSRuntime *rt, int i, JSShape *sh) -{ - char atom_buf[ATOM_GET_STR_BUF_SIZE]; - int j; - - /* XXX: should output readable class prototype */ - printf("%5d %3d%c %14p %5d %5d", i, - sh->header.ref_count, " *"[sh->is_hashed], - (void *)sh->proto, sh->prop_size, sh->prop_count); - for(j = 0; j < sh->prop_count; j++) { - printf(" %s", JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), - sh->prop[j].atom)); - } - printf("\n"); -} - -static __maybe_unused void JS_DumpShapes(JSRuntime *rt) -{ - int i; - JSShape *sh; - struct list_head *el; - JSObject *p; - JSGCObjectHeader *gp; - - printf("JSShapes: {\n"); - printf("%5s %4s %14s %5s %5s %s\n", "SLOT", "REFS", "PROTO", "SIZE", "COUNT", "PROPS"); - for(i = 0; i < rt->shape_hash_size; i++) { - for(sh = rt->shape_hash[i]; sh != NULL; sh = sh->shape_hash_next) { - JS_DumpShape(rt, i, sh); - assert(sh->is_hashed); - } - } - /* dump non-hashed shapes */ - list_for_each(el, &rt->gc_obj_list) { - gp = list_entry(el, JSGCObjectHeader, link); - if (gp->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT) { - p = (JSObject *)gp; - if (!p->shape->is_hashed) { - JS_DumpShape(rt, -1, p->shape); - } - } - } - printf("}\n"); -} - -static JSValue JS_NewObjectFromShape(JSContext *ctx, JSShape *sh, JSClassID class_id) -{ - JSObject *p; - - js_trigger_gc(ctx->rt, sizeof(JSObject)); - p = js_malloc(ctx, sizeof(JSObject)); - if (unlikely(!p)) - goto fail; - p->class_id = class_id; - p->extensible = true; - p->free_mark = 0; - p->is_exotic = 0; - p->fast_array = 0; - p->is_constructor = 0; - p->is_uncatchable_error = 0; - p->tmp_mark = 0; - p->is_HTMLDDA = 0; - p->first_weak_ref = NULL; - p->u.opaque = NULL; - p->shape = sh; - p->prop = js_malloc(ctx, sizeof(JSProperty) * sh->prop_size); - if (unlikely(!p->prop)) { - js_free(ctx, p); - fail: - js_free_shape(ctx->rt, sh); - return JS_EXCEPTION; - } - - switch(class_id) { - case JS_CLASS_OBJECT: - break; - case JS_CLASS_ARRAY: - { - JSProperty *pr; - p->is_exotic = 1; - p->fast_array = 1; - p->u.array.u.values = NULL; - p->u.array.count = 0; - p->u.array.u1.size = 0; - /* the length property is always the first one */ - if (likely(sh == ctx->array_shape)) { - pr = &p->prop[0]; - } else { - /* only used for the first array */ - /* cannot fail */ - pr = add_property(ctx, p, JS_ATOM_length, - JS_PROP_WRITABLE | JS_PROP_LENGTH); - } - pr->u.value = js_int32(0); - } - break; - case JS_CLASS_C_FUNCTION: - p->prop[0].u.value = JS_UNDEFINED; - break; - case JS_CLASS_ARGUMENTS: - case JS_CLASS_UINT8C_ARRAY: - case JS_CLASS_INT8_ARRAY: - case JS_CLASS_UINT8_ARRAY: - case JS_CLASS_INT16_ARRAY: - case JS_CLASS_UINT16_ARRAY: - case JS_CLASS_INT32_ARRAY: - case JS_CLASS_UINT32_ARRAY: - case JS_CLASS_BIG_INT64_ARRAY: - case JS_CLASS_BIG_UINT64_ARRAY: - case JS_CLASS_FLOAT16_ARRAY: - case JS_CLASS_FLOAT32_ARRAY: - case JS_CLASS_FLOAT64_ARRAY: - p->is_exotic = 1; - p->fast_array = 1; - p->u.array.u.ptr = NULL; - p->u.array.count = 0; - break; - case JS_CLASS_DATAVIEW: - p->u.array.u.ptr = NULL; - p->u.array.count = 0; - break; - case JS_CLASS_NUMBER: - case JS_CLASS_STRING: - case JS_CLASS_BOOLEAN: - case JS_CLASS_SYMBOL: - case JS_CLASS_DATE: - case JS_CLASS_BIG_INT: - p->u.object_data = JS_UNDEFINED; - goto set_exotic; - case JS_CLASS_REGEXP: - p->u.regexp.pattern = NULL; - p->u.regexp.bytecode = NULL; - goto set_exotic; - default: - set_exotic: - if (ctx->rt->class_array[class_id].exotic) { - p->is_exotic = 1; - } - break; - } - p->header.ref_count = 1; - add_gc_object(ctx->rt, &p->header, JS_GC_OBJ_TYPE_JS_OBJECT); - return JS_MKPTR(JS_TAG_OBJECT, p); -} - -static JSObject *get_proto_obj(JSValueConst proto_val) -{ - if (JS_VALUE_GET_TAG(proto_val) != JS_TAG_OBJECT) - return NULL; - else - return JS_VALUE_GET_OBJ(proto_val); -} - -/* WARNING: proto must be an object or JS_NULL */ -JSValue JS_NewObjectProtoClass(JSContext *ctx, JSValueConst proto_val, - JSClassID class_id) -{ - JSShape *sh; - JSObject *proto; - - proto = get_proto_obj(proto_val); - sh = find_hashed_shape_proto(ctx->rt, proto); - if (likely(sh)) { - sh = js_dup_shape(sh); - } else { - sh = js_new_shape(ctx, proto); - if (!sh) - return JS_EXCEPTION; - } - return JS_NewObjectFromShape(ctx, sh, class_id); -} - -static int JS_SetObjectData(JSContext *ctx, JSValueConst obj, JSValue val) -{ - JSObject *p; - - if (JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT) { - p = JS_VALUE_GET_OBJ(obj); - switch(p->class_id) { - case JS_CLASS_NUMBER: - case JS_CLASS_STRING: - case JS_CLASS_BOOLEAN: - case JS_CLASS_SYMBOL: - case JS_CLASS_DATE: - case JS_CLASS_BIG_INT: - JS_FreeValue(ctx, p->u.object_data); - p->u.object_data = val; - return 0; - } - } - JS_FreeValue(ctx, val); - if (!JS_IsException(obj)) - JS_ThrowTypeError(ctx, "invalid object type"); - return -1; -} - -JSValue JS_NewObjectClass(JSContext *ctx, JSClassID class_id) -{ - return JS_NewObjectProtoClass(ctx, ctx->class_proto[class_id], class_id); -} - -JSValue JS_NewObjectProto(JSContext *ctx, JSValueConst proto) -{ - return JS_NewObjectProtoClass(ctx, proto, JS_CLASS_OBJECT); -} - -JSValue JS_NewObjectFrom(JSContext *ctx, int count, const JSAtom *props, - const JSValue *values) -{ - JSShapeProperty *pr; - uint32_t *hash; - JSRuntime *rt; - JSObject *p; - JSShape *sh; - JSValue obj; - JSAtom atom; - intptr_t h; - int i; - - rt = ctx->rt; - obj = JS_NewObject(ctx); - if (JS_IsException(obj)) - return JS_EXCEPTION; - if (count > 0) { - p = JS_VALUE_GET_OBJ(obj); - sh = p->shape; - assert(sh->is_hashed); - assert(sh->header.ref_count == 1); - js_shape_hash_unlink(rt, sh); - if (resize_properties(ctx, &sh, p, count)) { - js_shape_hash_link(rt, sh); - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; - } - p->shape = sh; - for (i = 0; i < count; i++) { - atom = props[i]; - pr = &sh->prop[i]; - sh->hash = shape_hash(shape_hash(sh->hash, atom), JS_PROP_C_W_E); - sh->has_small_array_index |= __JS_AtomIsTaggedInt(atom); - h = atom & sh->prop_hash_mask; - hash = &prop_hash_end(sh)[-h - 1]; - pr->hash_next = *hash; - *hash = i + 1; - pr->atom = JS_DupAtom(ctx, atom); - pr->flags = JS_PROP_C_W_E; - p->prop[i].u.value = values[i]; - } - js_shape_hash_link(rt, sh); - sh->prop_count = count; - } - return obj; -} - -JSValue JS_NewObjectFromStr(JSContext *ctx, int count, const char **props, - const JSValue *values) -{ - JSAtom atoms_s[16], *atoms = atoms_s; - JSValue ret; - int i; - - i = 0; - ret = JS_EXCEPTION; - if (count < 1) - goto out; - if (count > (int)countof(atoms_s)) { - atoms = js_malloc(ctx, count * sizeof(*atoms)); - if (!atoms) - return JS_EXCEPTION; - } - for (i = 0; i < count; i++) { - atoms[i] = JS_NewAtom(ctx, props[i]); - if (atoms[i] == JS_ATOM_NULL) - goto out; - } - ret = JS_NewObjectFrom(ctx, count, atoms, values); -out: - while (i-- > 0) - JS_FreeAtom(ctx, atoms[i]); - if (atoms != atoms_s) - js_free(ctx, atoms); - return ret; -} - -JSValue JS_NewArray(JSContext *ctx) -{ - return JS_NewObjectFromShape(ctx, js_dup_shape(ctx->array_shape), - JS_CLASS_ARRAY); -} - -// note: takes ownership of |values|, unlike js_create_array -JSValue JS_NewArrayFrom(JSContext *ctx, int count, const JSValue *values) -{ - JSObject *p; - JSValue obj; - int i; - - obj = JS_NewArray(ctx); - if (JS_IsException(obj)) - goto exception; - if (count > 0) { - p = JS_VALUE_GET_OBJ(obj); - if (expand_fast_array(ctx, p, count)) { - JS_FreeValue(ctx, obj); - goto exception; - } - p->u.array.count = count; - p->prop[0].u.value = js_int32(count); - memcpy(p->u.array.u.values, values, count * sizeof(*values)); - } - return obj; -exception: - for (i = 0; i < count; i++) - JS_FreeValue(ctx, values[i]); - return JS_EXCEPTION; -} - -JSValue JS_NewObject(JSContext *ctx) -{ - /* inline JS_NewObjectClass(ctx, JS_CLASS_OBJECT); */ - return JS_NewObjectProtoClass(ctx, ctx->class_proto[JS_CLASS_OBJECT], JS_CLASS_OBJECT); -} - -static void js_function_set_properties(JSContext *ctx, JSValue func_obj, - JSAtom name, int len) -{ - /* ES6 feature non compatible with ES5.1: length is configurable */ - JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_length, js_int32(len), - JS_PROP_CONFIGURABLE); - JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_name, - JS_AtomToString(ctx, name), JS_PROP_CONFIGURABLE); -} - -static bool js_class_has_bytecode(JSClassID class_id) -{ - return (class_id == JS_CLASS_BYTECODE_FUNCTION || - class_id == JS_CLASS_GENERATOR_FUNCTION || - class_id == JS_CLASS_ASYNC_FUNCTION || - class_id == JS_CLASS_ASYNC_GENERATOR_FUNCTION); -} - -/* return NULL without exception if not a function or no bytecode */ -static JSFunctionBytecode *JS_GetFunctionBytecode(JSValueConst val) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return NULL; - p = JS_VALUE_GET_OBJ(val); - if (!js_class_has_bytecode(p->class_id)) - return NULL; - return p->u.func.function_bytecode; -} - -static void js_method_set_home_object(JSContext *ctx, JSValue func_obj, - JSValue home_obj) -{ - JSObject *p, *p1; - JSFunctionBytecode *b; - - if (JS_VALUE_GET_TAG(func_obj) != JS_TAG_OBJECT) - return; - p = JS_VALUE_GET_OBJ(func_obj); - if (!js_class_has_bytecode(p->class_id)) - return; - b = p->u.func.function_bytecode; - if (b->need_home_object) { - p1 = p->u.func.home_object; - if (p1) { - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, p1)); - } - if (JS_VALUE_GET_TAG(home_obj) == JS_TAG_OBJECT) - p1 = JS_VALUE_GET_OBJ(js_dup(home_obj)); - else - p1 = NULL; - p->u.func.home_object = p1; - } -} - -static JSValue js_get_function_name(JSContext *ctx, JSAtom name) -{ - JSValue name_str; - - name_str = JS_AtomToString(ctx, name); - if (JS_AtomSymbolHasDescription(ctx, name)) { - name_str = JS_ConcatString3(ctx, "[", name_str, "]"); - } - return name_str; -} - -/* Modify the name of a method according to the atom and - 'flags'. 'flags' is a bitmask of JS_PROP_HAS_GET and - JS_PROP_HAS_SET. Also set the home object of the method. - Return < 0 if exception. */ -static int js_method_set_properties(JSContext *ctx, JSValue func_obj, - JSAtom name, int flags, JSValue home_obj) -{ - JSValue name_str; - - name_str = js_get_function_name(ctx, name); - if (flags & JS_PROP_HAS_GET) { - name_str = JS_ConcatString3(ctx, "get ", name_str, ""); - } else if (flags & JS_PROP_HAS_SET) { - name_str = JS_ConcatString3(ctx, "set ", name_str, ""); - } - if (JS_IsException(name_str)) - return -1; - if (JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_name, name_str, - JS_PROP_CONFIGURABLE) < 0) - return -1; - js_method_set_home_object(ctx, func_obj, home_obj); - return 0; -} - -/* Note: at least 'length' arguments will be readable in 'argv' */ -/* `name` may be NULL, pure ASCII or UTF-8 encoded */ -JSValue JS_NewCFunction3(JSContext *ctx, JSCFunction *func, - const char *name, - int length, JSCFunctionEnum cproto, int magic, - JSValueConst proto_val) -{ - JSValue func_obj; - JSObject *p; - JSAtom name_atom; - - func_obj = JS_NewObjectProtoClass(ctx, proto_val, JS_CLASS_C_FUNCTION); - if (JS_IsException(func_obj)) - return func_obj; - p = JS_VALUE_GET_OBJ(func_obj); - p->u.cfunc.realm = JS_DupContext(ctx); - p->u.cfunc.c_function.generic = func; - p->u.cfunc.length = length; - p->u.cfunc.cproto = cproto; - p->u.cfunc.magic = magic; - p->is_constructor = (cproto == JS_CFUNC_constructor || - cproto == JS_CFUNC_constructor_magic || - cproto == JS_CFUNC_constructor_or_func || - cproto == JS_CFUNC_constructor_or_func_magic); - name_atom = JS_ATOM_empty_string; - if (name && *name) { - name_atom = JS_NewAtom(ctx, name); - if (name_atom == JS_ATOM_NULL) { - JS_FreeValue(ctx, func_obj); - return JS_EXCEPTION; - } - } - js_function_set_properties(ctx, func_obj, name_atom, length); - JS_FreeAtom(ctx, name_atom); - return func_obj; -} - -/* Note: at least 'length' arguments will be readable in 'argv' */ -JSValue JS_NewCFunction2(JSContext *ctx, JSCFunction *func, - const char *name, - int length, JSCFunctionEnum cproto, int magic) -{ - return JS_NewCFunction3(ctx, func, name, length, cproto, magic, - ctx->function_proto); -} - -typedef struct JSCFunctionDataRecord { - JSCFunctionData *func; - uint8_t length; - uint8_t data_len; - uint16_t magic; - JSValue data[]; -} JSCFunctionDataRecord; - -static void js_c_function_data_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSCFunctionDataRecord *s = JS_GetOpaque(val, JS_CLASS_C_FUNCTION_DATA); - int i; - - if (s) { - for(i = 0; i < s->data_len; i++) { - JS_FreeValueRT(rt, s->data[i]); - } - js_free_rt(rt, s); - } -} - -static void js_c_function_data_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSCFunctionDataRecord *s = JS_GetOpaque(val, JS_CLASS_C_FUNCTION_DATA); - int i; - - if (s) { - for(i = 0; i < s->data_len; i++) { - JS_MarkValue(rt, s->data[i], mark_func); - } - } -} - -static JSValue js_call_c_function_data(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_val, - int argc, JSValueConst *argv, int flags) -{ - JSRuntime *rt = ctx->rt; - JSStackFrame sf_s, *sf = &sf_s, *prev_sf; - JSCFunctionDataRecord *s; - JSValueConst *arg_buf; - JSValue ret; - size_t stack_size; - int arg_count; - int i; - - s = JS_GetOpaque(func_obj, JS_CLASS_C_FUNCTION_DATA); - if (!s) - return JS_EXCEPTION; // can't really happen - arg_buf = argv; - arg_count = s->length; - if (unlikely(argc < arg_count)) { - stack_size = arg_count * sizeof(arg_buf[0]); - if (js_check_stack_overflow(rt, stack_size)) - return JS_ThrowStackOverflow(ctx); - arg_buf = alloca(stack_size); - for(i = 0; i < argc; i++) - arg_buf[i] = argv[i]; - for(i = argc; i < arg_count; i++) - arg_buf[i] = JS_UNDEFINED; - } - prev_sf = rt->current_stack_frame; - sf->prev_frame = prev_sf; - rt->current_stack_frame = sf; - // TODO(bnoordhuis) switch realms like js_call_c_function does - sf->is_strict_mode = false; - sf->cur_func = unsafe_unconst(func_obj); - sf->arg_count = argc; - ret = s->func(ctx, this_val, argc, arg_buf, s->magic, vc(s->data)); - rt->current_stack_frame = sf->prev_frame; - return ret; -} - -JSValue JS_NewCFunctionData2(JSContext *ctx, JSCFunctionData *func, - const char *name, - int length, int magic, int data_len, - JSValueConst *data) -{ - JSCFunctionDataRecord *s; - JSAtom name_atom; - JSValue func_obj; - int i; - - func_obj = JS_NewObjectProtoClass(ctx, ctx->function_proto, - JS_CLASS_C_FUNCTION_DATA); - if (JS_IsException(func_obj)) - return func_obj; - s = js_malloc(ctx, sizeof(*s) + data_len * sizeof(JSValue)); - if (!s) { - JS_FreeValue(ctx, func_obj); - return JS_EXCEPTION; - } - s->func = func; - s->length = length; - s->data_len = data_len; - s->magic = magic; - for(i = 0; i < data_len; i++) - s->data[i] = js_dup(data[i]); - JS_SetOpaqueInternal(func_obj, s); - name_atom = JS_ATOM_empty_string; - if (name && *name) { - name_atom = JS_NewAtom(ctx, name); - if (name_atom == JS_ATOM_NULL) { - JS_FreeValue(ctx, func_obj); - return JS_EXCEPTION; - } - } - js_function_set_properties(ctx, func_obj, name_atom, length); - JS_FreeAtom(ctx, name_atom); - return func_obj; -} - -JSValue JS_NewCFunctionData(JSContext *ctx, JSCFunctionData *func, - int length, int magic, int data_len, - JSValueConst *data) -{ - return JS_NewCFunctionData2(ctx, func, NULL, length, magic, data_len, data); -} - -static JSContext *js_autoinit_get_realm(JSProperty *pr) -{ - return (JSContext *)(pr->u.init.realm_and_id & ~3); -} - -static JSAutoInitIDEnum js_autoinit_get_id(JSProperty *pr) -{ - return pr->u.init.realm_and_id & 3; -} - -static void js_autoinit_free(JSRuntime *rt, JSProperty *pr) -{ - JS_FreeContext(js_autoinit_get_realm(pr)); -} - -static void js_autoinit_mark(JSRuntime *rt, JSProperty *pr, - JS_MarkFunc *mark_func) -{ - mark_func(rt, &js_autoinit_get_realm(pr)->header); -} - -static void free_property(JSRuntime *rt, JSProperty *pr, int prop_flags) -{ - if (unlikely(prop_flags & JS_PROP_TMASK)) { - if ((prop_flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - if (pr->u.getset.getter) - JS_FreeValueRT(rt, JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.getter)); - if (pr->u.getset.setter) - JS_FreeValueRT(rt, JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.setter)); - } else if ((prop_flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - free_var_ref(rt, pr->u.var_ref); - } else if ((prop_flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - js_autoinit_free(rt, pr); - } - } else { - JS_FreeValueRT(rt, pr->u.value); - } -} - -static force_inline JSShapeProperty *find_own_property1(JSObject *p, - JSAtom atom) -{ - JSShape *sh; - JSShapeProperty *pr, *prop; - intptr_t h; - sh = p->shape; - h = (uintptr_t)atom & sh->prop_hash_mask; - h = prop_hash_end(sh)[-h - 1]; - prop = get_shape_prop(sh); - while (h) { - pr = &prop[h - 1]; - if (likely(pr->atom == atom)) { - return pr; - } - h = pr->hash_next; - } - return NULL; -} - -static force_inline JSShapeProperty *find_own_property(JSProperty **ppr, - JSObject *p, - JSAtom atom) -{ - JSShape *sh; - JSShapeProperty *pr, *prop; - intptr_t h; - sh = p->shape; - h = (uintptr_t)atom & sh->prop_hash_mask; - h = prop_hash_end(sh)[-h - 1]; - prop = get_shape_prop(sh); - while (h) { - pr = &prop[h - 1]; - if (likely(pr->atom == atom)) { - *ppr = &p->prop[h - 1]; - /* the compiler should be able to assume that pr != NULL here */ - return pr; - } - h = pr->hash_next; - } - *ppr = NULL; - return NULL; -} - -static void free_var_ref(JSRuntime *rt, JSVarRef *var_ref) -{ - if (var_ref) { - assert(var_ref->header.ref_count > 0); - if (--var_ref->header.ref_count == 0) { - if (var_ref->is_detached) { - JS_FreeValueRT(rt, var_ref->value); - remove_gc_object(&var_ref->header); - } else { - list_del(&var_ref->header.link); /* still on the stack */ - } - js_free_rt(rt, var_ref); - } - } -} - -static void js_array_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - int i; - - for(i = 0; i < p->u.array.count; i++) { - JS_FreeValueRT(rt, p->u.array.u.values[i]); - } - js_free_rt(rt, p->u.array.u.values); -} - -static void js_array_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - int i; - - for(i = 0; i < p->u.array.count; i++) { - JS_MarkValue(rt, p->u.array.u.values[i], mark_func); - } -} - -static void js_object_data_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JS_FreeValueRT(rt, p->u.object_data); - p->u.object_data = JS_UNDEFINED; -} - -static void js_object_data_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JS_MarkValue(rt, p->u.object_data, mark_func); -} - -static void js_c_function_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - - if (p->u.cfunc.realm) - JS_FreeContext(p->u.cfunc.realm); -} - -static void js_c_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - - if (p->u.cfunc.realm) - mark_func(rt, &p->u.cfunc.realm->header); -} - -static void js_bytecode_function_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSObject *p1, *p = JS_VALUE_GET_OBJ(val); - JSFunctionBytecode *b; - JSVarRef **var_refs; - int i; - - p1 = p->u.func.home_object; - if (p1) { - JS_FreeValueRT(rt, JS_MKPTR(JS_TAG_OBJECT, p1)); - } - b = p->u.func.function_bytecode; - if (b) { - var_refs = p->u.func.var_refs; - if (var_refs) { - for(i = 0; i < b->closure_var_count; i++) - free_var_ref(rt, var_refs[i]); - js_free_rt(rt, var_refs); - } - JS_FreeValueRT(rt, JS_MKPTR(JS_TAG_FUNCTION_BYTECODE, b)); - } -} - -static void js_bytecode_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSVarRef **var_refs = p->u.func.var_refs; - JSFunctionBytecode *b = p->u.func.function_bytecode; - int i; - - if (p->u.func.home_object) { - JS_MarkValue(rt, JS_MKPTR(JS_TAG_OBJECT, p->u.func.home_object), - mark_func); - } - if (b) { - if (var_refs) { - for(i = 0; i < b->closure_var_count; i++) { - JSVarRef *var_ref = var_refs[i]; - if (var_ref && var_ref->is_detached) { - mark_func(rt, &var_ref->header); - } - } - } - /* must mark the function bytecode because template objects may be - part of a cycle */ - JS_MarkValue(rt, JS_MKPTR(JS_TAG_FUNCTION_BYTECODE, b), mark_func); - } -} - -static void js_bound_function_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSBoundFunction *bf = p->u.bound_function; - int i; - - JS_FreeValueRT(rt, bf->func_obj); - JS_FreeValueRT(rt, bf->this_val); - for(i = 0; i < bf->argc; i++) { - JS_FreeValueRT(rt, bf->argv[i]); - } - js_free_rt(rt, bf); -} - -static void js_bound_function_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSBoundFunction *bf = p->u.bound_function; - int i; - - JS_MarkValue(rt, bf->func_obj, mark_func); - JS_MarkValue(rt, bf->this_val, mark_func); - for(i = 0; i < bf->argc; i++) - JS_MarkValue(rt, bf->argv[i], mark_func); -} - -static void js_for_in_iterator_finalizer(JSRuntime *rt, JSValueConst val) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSForInIterator *it = p->u.for_in_iterator; - JS_FreeValueRT(rt, it->obj); - js_free_rt(rt, it); -} - -static void js_for_in_iterator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSForInIterator *it = p->u.for_in_iterator; - JS_MarkValue(rt, it->obj, mark_func); -} - -static void free_object(JSRuntime *rt, JSObject *p) -{ - int i; - JSClassFinalizer *finalizer; - JSShape *sh; - JSShapeProperty *pr; - - p->free_mark = 1; /* used to tell the object is invalid when - freeing cycles */ - /* free all the fields */ - sh = p->shape; - pr = get_shape_prop(sh); - for(i = 0; i < sh->prop_count; i++) { - free_property(rt, &p->prop[i], pr->flags); - pr++; - } - js_free_rt(rt, p->prop); - /* as an optimization we destroy the shape immediately without - putting it in gc_zero_ref_count_list */ - js_free_shape(rt, sh); - - /* fail safe */ - p->shape = NULL; - p->prop = NULL; - - if (unlikely(p->first_weak_ref)) { - reset_weak_ref(rt, &p->first_weak_ref); - } - - finalizer = rt->class_array[p->class_id].finalizer; - if (finalizer) - (*finalizer)(rt, JS_MKPTR(JS_TAG_OBJECT, p)); - - /* fail safe */ - p->class_id = 0; - p->u.opaque = NULL; - p->u.func.var_refs = NULL; - p->u.func.home_object = NULL; - - remove_gc_object(&p->header); - if (rt->gc_phase == JS_GC_PHASE_REMOVE_CYCLES && p->header.ref_count != 0) { - list_add_tail(&p->header.link, &rt->gc_zero_ref_count_list); - } else { - js_free_rt(rt, p); - } -} - -static void free_gc_object(JSRuntime *rt, JSGCObjectHeader *gp) -{ - switch(gp->gc_obj_type) { - case JS_GC_OBJ_TYPE_JS_OBJECT: - free_object(rt, (JSObject *)gp); - break; - case JS_GC_OBJ_TYPE_FUNCTION_BYTECODE: - free_function_bytecode(rt, (JSFunctionBytecode *)gp); - break; - default: - abort(); - } -} - -static void free_zero_refcount(JSRuntime *rt) -{ - struct list_head *el; - JSGCObjectHeader *p; - - rt->gc_phase = JS_GC_PHASE_DECREF; - for(;;) { - el = rt->gc_zero_ref_count_list.next; - if (el == &rt->gc_zero_ref_count_list) - break; - p = list_entry(el, JSGCObjectHeader, link); - assert(p->ref_count == 0); - free_gc_object(rt, p); - } - rt->gc_phase = JS_GC_PHASE_NONE; -} - -/* called with the ref_count of 'v' reaches zero. */ -static void js_free_value_rt(JSRuntime *rt, JSValue v) -{ - uint32_t tag = JS_VALUE_GET_TAG(v); - -#ifdef ENABLE_DUMPS // JS_DUMP_FREE - if (check_dump_flag(rt, JS_DUMP_FREE)) { - /* Prevent invalid object access during GC */ - if ((rt->gc_phase != JS_GC_PHASE_REMOVE_CYCLES) - || (tag != JS_TAG_OBJECT && tag != JS_TAG_FUNCTION_BYTECODE)) { - printf("Freeing "); - if (tag == JS_TAG_OBJECT) { - JS_DumpObject(rt, JS_VALUE_GET_OBJ(v)); - } else { - JS_DumpValue(rt, v); - printf("\n"); - } - } - } -#endif - - switch(tag) { - case JS_TAG_STRING: - js_free_string0(rt, JS_VALUE_GET_STRING(v)); - break; - case JS_TAG_OBJECT: - case JS_TAG_FUNCTION_BYTECODE: - { - JSGCObjectHeader *p = JS_VALUE_GET_PTR(v); - if (rt->gc_phase != JS_GC_PHASE_REMOVE_CYCLES) { - list_del(&p->link); - list_add(&p->link, &rt->gc_zero_ref_count_list); - if (rt->gc_phase == JS_GC_PHASE_NONE) { - free_zero_refcount(rt); - } - } - } - break; - case JS_TAG_MODULE: - abort(); /* never freed here */ - break; - case JS_TAG_BIG_INT: - { - JSBigInt *p = JS_VALUE_GET_PTR(v); - js_free_rt(rt, p); - } - break; - case JS_TAG_SYMBOL: - { - JSAtomStruct *p = JS_VALUE_GET_PTR(v); - JS_FreeAtomStruct(rt, p); - } - break; - default: - printf("js_free_value_rt: unknown tag=%d\n", tag); - abort(); - } -} - -void JS_FreeValueRT(JSRuntime *rt, JSValue v) -{ - if (JS_VALUE_HAS_REF_COUNT(v)) { - JSRefCountHeader *p = (JSRefCountHeader *)JS_VALUE_GET_PTR(v); - if (--p->ref_count <= 0) { - js_free_value_rt(rt, v); - } - } -} - -void JS_FreeValue(JSContext *ctx, JSValue v) -{ - JS_FreeValueRT(ctx->rt, v); -} - -/* garbage collection */ - -static void add_gc_object(JSRuntime *rt, JSGCObjectHeader *h, - JSGCObjectTypeEnum type) -{ - h->mark = 0; - h->gc_obj_type = type; - list_add_tail(&h->link, &rt->gc_obj_list); -} - -static void remove_gc_object(JSGCObjectHeader *h) -{ - list_del(&h->link); -} - -void JS_MarkValue(JSRuntime *rt, JSValueConst val, JS_MarkFunc *mark_func) -{ - if (JS_VALUE_HAS_REF_COUNT(val)) { - switch(JS_VALUE_GET_TAG(val)) { - case JS_TAG_OBJECT: - case JS_TAG_FUNCTION_BYTECODE: - mark_func(rt, JS_VALUE_GET_PTR(val)); - break; - default: - break; - } - } -} - -static void mark_weak_map_value(JSRuntime *rt, JSWeakRefRecord *first_weak_ref, JS_MarkFunc *mark_func) { - JSWeakRefRecord *wr; - JSMapRecord *mr; - JSMapState *s; - - for (wr = first_weak_ref; wr != NULL; wr = wr->next_weak_ref) { - if (wr->kind == JS_WEAK_REF_KIND_MAP) { - mr = wr->u.map_record; - s = mr->map; - assert(s->is_weak); - assert(!mr->empty); /* no iterator on WeakMap/WeakSet */ - JS_MarkValue(rt, mr->value, mark_func); - } - } -} - -static void mark_children(JSRuntime *rt, JSGCObjectHeader *gp, - JS_MarkFunc *mark_func) -{ - switch(gp->gc_obj_type) { - case JS_GC_OBJ_TYPE_JS_OBJECT: - { - JSObject *p = (JSObject *)gp; - JSShapeProperty *prs; - JSShape *sh; - int i; - sh = p->shape; - mark_func(rt, &sh->header); - /* mark all the fields */ - prs = get_shape_prop(sh); - for(i = 0; i < sh->prop_count; i++) { - JSProperty *pr = &p->prop[i]; - if (prs->atom != JS_ATOM_NULL) { - if (prs->flags & JS_PROP_TMASK) { - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - if (pr->u.getset.getter) - mark_func(rt, &pr->u.getset.getter->header); - if (pr->u.getset.setter) - mark_func(rt, &pr->u.getset.setter->header); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - if (pr->u.var_ref->is_detached) { - /* Note: the tag does not matter - provided it is a GC object */ - mark_func(rt, &pr->u.var_ref->header); - } - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - js_autoinit_mark(rt, pr, mark_func); - } - } else { - JS_MarkValue(rt, pr->u.value, mark_func); - } - } - prs++; - } - - if (unlikely(p->first_weak_ref)) { - mark_weak_map_value(rt, p->first_weak_ref, mark_func); - } - - if (p->class_id != JS_CLASS_OBJECT) { - JSClassGCMark *gc_mark; - gc_mark = rt->class_array[p->class_id].gc_mark; - if (gc_mark) - gc_mark(rt, JS_MKPTR(JS_TAG_OBJECT, p), mark_func); - } - } - break; - case JS_GC_OBJ_TYPE_FUNCTION_BYTECODE: - /* the template objects can be part of a cycle */ - { - JSFunctionBytecode *b = (JSFunctionBytecode *)gp; - int i; - for(i = 0; i < b->cpool_count; i++) { - JS_MarkValue(rt, b->cpool[i], mark_func); - } - if (b->realm) - mark_func(rt, &b->realm->header); - } - break; - case JS_GC_OBJ_TYPE_VAR_REF: - { - JSVarRef *var_ref = (JSVarRef *)gp; - /* only detached variable referenced are taken into account */ - assert(var_ref->is_detached); - JS_MarkValue(rt, *var_ref->pvalue, mark_func); - } - break; - case JS_GC_OBJ_TYPE_ASYNC_FUNCTION: - { - JSAsyncFunctionData *s = (JSAsyncFunctionData *)gp; - if (s->is_active) - async_func_mark(rt, &s->func_state, mark_func); - JS_MarkValue(rt, s->resolving_funcs[0], mark_func); - JS_MarkValue(rt, s->resolving_funcs[1], mark_func); - } - break; - case JS_GC_OBJ_TYPE_SHAPE: - { - JSShape *sh = (JSShape *)gp; - if (sh->proto != NULL) { - mark_func(rt, &sh->proto->header); - } - } - break; - case JS_GC_OBJ_TYPE_JS_CONTEXT: - { - JSContext *ctx = (JSContext *)gp; - JS_MarkContext(rt, ctx, mark_func); - } - break; - default: - abort(); - } -} - -static void gc_decref_child(JSRuntime *rt, JSGCObjectHeader *p) -{ - assert(p->ref_count > 0); - p->ref_count--; - if (p->ref_count == 0 && p->mark == 1) { - list_del(&p->link); - list_add_tail(&p->link, &rt->tmp_obj_list); - } -} - -static void gc_decref(JSRuntime *rt) -{ - struct list_head *el, *el1; - JSGCObjectHeader *p; - - init_list_head(&rt->tmp_obj_list); - - /* decrement the refcount of all the children of all the GC - objects and move the GC objects with zero refcount to - tmp_obj_list */ - list_for_each_safe(el, el1, &rt->gc_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - assert(p->mark == 0); - mark_children(rt, p, gc_decref_child); - p->mark = 1; - if (p->ref_count == 0) { - list_del(&p->link); - list_add_tail(&p->link, &rt->tmp_obj_list); - } - } -} - -static void gc_scan_incref_child(JSRuntime *rt, JSGCObjectHeader *p) -{ - p->ref_count++; - if (p->ref_count == 1) { - /* ref_count was 0: remove from tmp_obj_list and add at the - end of gc_obj_list */ - list_del(&p->link); - list_add_tail(&p->link, &rt->gc_obj_list); - p->mark = 0; /* reset the mark for the next GC call */ - } -} - -static void gc_scan_incref_child2(JSRuntime *rt, JSGCObjectHeader *p) -{ - p->ref_count++; -} - -static void gc_scan(JSRuntime *rt) -{ - struct list_head *el; - JSGCObjectHeader *p; - - /* keep the objects with a refcount > 0 and their children. */ - list_for_each(el, &rt->gc_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - assert(p->ref_count > 0); - p->mark = 0; /* reset the mark for the next GC call */ - mark_children(rt, p, gc_scan_incref_child); - } - - /* restore the refcount of the objects to be deleted. */ - list_for_each(el, &rt->tmp_obj_list) { - p = list_entry(el, JSGCObjectHeader, link); - mark_children(rt, p, gc_scan_incref_child2); - } -} - -static void gc_free_cycles(JSRuntime *rt) -{ - struct list_head *el, *el1; - JSGCObjectHeader *p; -#ifdef ENABLE_DUMPS // JS_DUMP_GC_FREE - bool header_done = false; -#endif - - rt->gc_phase = JS_GC_PHASE_REMOVE_CYCLES; - - for(;;) { - el = rt->tmp_obj_list.next; - if (el == &rt->tmp_obj_list) - break; - p = list_entry(el, JSGCObjectHeader, link); - /* Only need to free the GC object associated with JS - values. The rest will be automatically removed because they - must be referenced by them. */ - switch(p->gc_obj_type) { - case JS_GC_OBJ_TYPE_JS_OBJECT: - case JS_GC_OBJ_TYPE_FUNCTION_BYTECODE: -#ifdef ENABLE_DUMPS // JS_DUMP_GC_FREE - if (check_dump_flag(rt, JS_DUMP_GC_FREE)) { - if (!header_done) { - printf("Freeing cycles:\n"); - JS_DumpObjectHeader(rt); - header_done = true; - } - JS_DumpGCObject(rt, p); - } -#endif - free_gc_object(rt, p); - break; - default: - list_del(&p->link); - list_add_tail(&p->link, &rt->gc_zero_ref_count_list); - break; - } - } - rt->gc_phase = JS_GC_PHASE_NONE; - - list_for_each_safe(el, el1, &rt->gc_zero_ref_count_list) { - p = list_entry(el, JSGCObjectHeader, link); - assert(p->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT || - p->gc_obj_type == JS_GC_OBJ_TYPE_FUNCTION_BYTECODE); - js_free_rt(rt, p); - } - - init_list_head(&rt->gc_zero_ref_count_list); -} - -void JS_RunGC(JSRuntime *rt) -{ - /* decrement the reference of the children of each object. mark = - 1 after this pass. */ - gc_decref(rt); - - /* keep the GC objects with a non zero refcount and their childs */ - gc_scan(rt); - - /* free the GC objects in a cycle */ - gc_free_cycles(rt); -} - -/* Return false if not an object or if the object has already been - freed (zombie objects are visible in finalizers when freeing - cycles). */ -bool JS_IsLiveObject(JSRuntime *rt, JSValueConst obj) -{ - JSObject *p; - if (!JS_IsObject(obj)) - return false; - p = JS_VALUE_GET_OBJ(obj); - return !p->free_mark; -} - -/* Compute memory used by various object types */ -/* XXX: poor man's approach to handling multiply referenced objects */ -typedef struct JSMemoryUsage_helper { - double memory_used_count; - double str_count; - double str_size; - int64_t js_func_count; - double js_func_size; - int64_t js_func_code_size; - int64_t js_func_pc2line_count; - int64_t js_func_pc2line_size; -} JSMemoryUsage_helper; - -static void compute_value_size(JSValue val, JSMemoryUsage_helper *hp); - -static void compute_jsstring_size(JSString *str, JSMemoryUsage_helper *hp) -{ - if (!str->atom_type) { /* atoms are handled separately */ - double s_ref_count = str->header.ref_count; - hp->str_count += 1 / s_ref_count; - hp->str_size += ((sizeof(*str) + (str->len << str->is_wide_char) + - 1 - str->is_wide_char) / s_ref_count); - } -} - -static void compute_bytecode_size(JSFunctionBytecode *b, JSMemoryUsage_helper *hp) -{ - int memory_used_count, js_func_size, i; - - memory_used_count = 0; - js_func_size = sizeof(*b); - if (b->vardefs) { - js_func_size += (b->arg_count + b->var_count) * sizeof(*b->vardefs); - } - if (b->cpool) { - js_func_size += b->cpool_count * sizeof(*b->cpool); - for (i = 0; i < b->cpool_count; i++) { - JSValue val = b->cpool[i]; - compute_value_size(val, hp); - } - } - if (b->closure_var) { - js_func_size += b->closure_var_count * sizeof(*b->closure_var); - } - if (b->byte_code_buf) { - hp->js_func_code_size += b->byte_code_len; - } - memory_used_count++; - js_func_size += b->source_len + 1; - if (b->pc2line_len) { - memory_used_count++; - hp->js_func_pc2line_count += 1; - hp->js_func_pc2line_size += b->pc2line_len; - } - hp->js_func_size += js_func_size; - hp->js_func_count += 1; - hp->memory_used_count += memory_used_count; -} - -static void compute_value_size(JSValue val, JSMemoryUsage_helper *hp) -{ - switch(JS_VALUE_GET_TAG(val)) { - case JS_TAG_STRING: - compute_jsstring_size(JS_VALUE_GET_STRING(val), hp); - break; - case JS_TAG_BIG_INT: - /* should track JSBigInt usage */ - break; - } -} - -void JS_ComputeMemoryUsage(JSRuntime *rt, JSMemoryUsage *s) -{ - struct list_head *el, *el1; - int i; - JSMemoryUsage_helper mem = { 0 }, *hp = &mem; - - memset(s, 0, sizeof(*s)); - s->malloc_count = rt->malloc_state.malloc_count; - s->malloc_size = rt->malloc_state.malloc_size; - s->malloc_limit = rt->malloc_state.malloc_limit; - - s->memory_used_count = 2; /* rt + rt->class_array */ - s->memory_used_size = sizeof(JSRuntime) + sizeof(JSClass) * rt->class_count; - - list_for_each(el, &rt->context_list) { - JSContext *ctx = list_entry(el, JSContext, link); - JSShape *sh = ctx->array_shape; - s->memory_used_count += 2; /* ctx + ctx->class_proto */ - s->memory_used_size += sizeof(JSContext) + - sizeof(JSValue) * rt->class_count; - s->binary_object_count += ctx->binary_object_count; - s->binary_object_size += ctx->binary_object_size; - - /* the hashed shapes are counted separately */ - if (sh && !sh->is_hashed) { - int hash_size = sh->prop_hash_mask + 1; - s->shape_count++; - s->shape_size += get_shape_size(hash_size, sh->prop_size); - } - list_for_each(el1, &ctx->loaded_modules) { - JSModuleDef *m = list_entry(el1, JSModuleDef, link); - s->memory_used_count += 1; - s->memory_used_size += sizeof(*m); - if (m->req_module_entries) { - s->memory_used_count += 1; - s->memory_used_size += m->req_module_entries_count * sizeof(*m->req_module_entries); - } - if (m->export_entries) { - s->memory_used_count += 1; - s->memory_used_size += m->export_entries_count * sizeof(*m->export_entries); - for (i = 0; i < m->export_entries_count; i++) { - JSExportEntry *me = &m->export_entries[i]; - if (me->export_type == JS_EXPORT_TYPE_LOCAL && me->u.local.var_ref) { - /* potential multiple count */ - s->memory_used_count += 1; - compute_value_size(me->u.local.var_ref->value, hp); - } - } - } - if (m->star_export_entries) { - s->memory_used_count += 1; - s->memory_used_size += m->star_export_entries_count * sizeof(*m->star_export_entries); - } - if (m->import_entries) { - s->memory_used_count += 1; - s->memory_used_size += m->import_entries_count * sizeof(*m->import_entries); - } - compute_value_size(m->module_ns, hp); - compute_value_size(m->func_obj, hp); - } - } - - list_for_each(el, &rt->gc_obj_list) { - JSGCObjectHeader *gp = list_entry(el, JSGCObjectHeader, link); - JSObject *p; - JSShape *sh; - JSShapeProperty *prs; - - /* XXX: could count the other GC object types too */ - if (gp->gc_obj_type == JS_GC_OBJ_TYPE_FUNCTION_BYTECODE) { - compute_bytecode_size((JSFunctionBytecode *)gp, hp); - continue; - } else if (gp->gc_obj_type != JS_GC_OBJ_TYPE_JS_OBJECT) { - continue; - } - p = (JSObject *)gp; - sh = p->shape; - s->obj_count++; - if (p->prop) { - s->memory_used_count++; - s->prop_size += sh->prop_size * sizeof(*p->prop); - s->prop_count += sh->prop_count; - prs = get_shape_prop(sh); - for(i = 0; i < sh->prop_count; i++) { - JSProperty *pr = &p->prop[i]; - if (prs->atom != JS_ATOM_NULL && !(prs->flags & JS_PROP_TMASK)) { - compute_value_size(pr->u.value, hp); - } - prs++; - } - } - /* the hashed shapes are counted separately */ - if (!sh->is_hashed) { - int hash_size = sh->prop_hash_mask + 1; - s->shape_count++; - s->shape_size += get_shape_size(hash_size, sh->prop_size); - } - - switch(p->class_id) { - case JS_CLASS_ARRAY: /* u.array | length */ - case JS_CLASS_ARGUMENTS: /* u.array | length */ - s->array_count++; - if (p->fast_array) { - s->fast_array_count++; - if (p->u.array.u.values) { - s->memory_used_count++; - s->memory_used_size += p->u.array.count * - sizeof(*p->u.array.u.values); - s->fast_array_elements += p->u.array.count; - for (i = 0; i < p->u.array.count; i++) { - compute_value_size(p->u.array.u.values[i], hp); - } - } - } - break; - case JS_CLASS_NUMBER: /* u.object_data */ - case JS_CLASS_STRING: /* u.object_data */ - case JS_CLASS_BOOLEAN: /* u.object_data */ - case JS_CLASS_SYMBOL: /* u.object_data */ - case JS_CLASS_DATE: /* u.object_data */ - case JS_CLASS_BIG_INT: /* u.object_data */ - compute_value_size(p->u.object_data, hp); - break; - case JS_CLASS_C_FUNCTION: /* u.cfunc */ - s->c_func_count++; - break; - case JS_CLASS_BYTECODE_FUNCTION: /* u.func */ - { - JSFunctionBytecode *b = p->u.func.function_bytecode; - JSVarRef **var_refs = p->u.func.var_refs; - /* home_object: object will be accounted for in list scan */ - if (var_refs) { - s->memory_used_count++; - s->js_func_size += b->closure_var_count * sizeof(*var_refs); - for (i = 0; i < b->closure_var_count; i++) { - if (var_refs[i]) { - double ref_count = var_refs[i]->header.ref_count; - s->memory_used_count += 1 / ref_count; - s->js_func_size += sizeof(*var_refs[i]) / ref_count; - /* handle non object closed values */ - if (var_refs[i]->pvalue == &var_refs[i]->value) { - /* potential multiple count */ - compute_value_size(var_refs[i]->value, hp); - } - } - } - } - } - break; - case JS_CLASS_BOUND_FUNCTION: /* u.bound_function */ - { - JSBoundFunction *bf = p->u.bound_function; - /* func_obj and this_val are objects */ - for (i = 0; i < bf->argc; i++) { - compute_value_size(bf->argv[i], hp); - } - s->memory_used_count += 1; - s->memory_used_size += sizeof(*bf) + bf->argc * sizeof(*bf->argv); - } - break; - case JS_CLASS_C_FUNCTION_DATA: /* u.c_function_data_record */ - { - JSCFunctionDataRecord *fd = p->u.c_function_data_record; - if (fd) { - for (i = 0; i < fd->data_len; i++) { - compute_value_size(fd->data[i], hp); - } - s->memory_used_count += 1; - s->memory_used_size += sizeof(*fd) + fd->data_len * sizeof(*fd->data); - } - } - break; - case JS_CLASS_REGEXP: /* u.regexp */ - compute_jsstring_size(p->u.regexp.pattern, hp); - compute_jsstring_size(p->u.regexp.bytecode, hp); - break; - - case JS_CLASS_FOR_IN_ITERATOR: /* u.for_in_iterator */ - { - JSForInIterator *it = p->u.for_in_iterator; - if (it) { - compute_value_size(it->obj, hp); - s->memory_used_count += 1; - s->memory_used_size += sizeof(*it); - } - } - break; - case JS_CLASS_ARRAY_BUFFER: /* u.array_buffer */ - case JS_CLASS_SHARED_ARRAY_BUFFER: /* u.array_buffer */ - { - JSArrayBuffer *abuf = p->u.array_buffer; - if (abuf) { - s->memory_used_count += 1; - s->memory_used_size += sizeof(*abuf); - if (abuf->data) { - s->memory_used_count += 1; - s->memory_used_size += abuf->byte_length; - } - } - } - break; - case JS_CLASS_GENERATOR: /* u.generator_data */ - case JS_CLASS_UINT8C_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_INT8_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_UINT8_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_INT16_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_UINT16_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_INT32_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_UINT32_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_BIG_INT64_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_BIG_UINT64_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_FLOAT16_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_FLOAT32_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_FLOAT64_ARRAY: /* u.typed_array / u.array */ - case JS_CLASS_DATAVIEW: /* u.typed_array */ - case JS_CLASS_MAP: /* u.map_state */ - case JS_CLASS_SET: /* u.map_state */ - case JS_CLASS_WEAKMAP: /* u.map_state */ - case JS_CLASS_WEAKSET: /* u.map_state */ - case JS_CLASS_MAP_ITERATOR: /* u.map_iterator_data */ - case JS_CLASS_SET_ITERATOR: /* u.map_iterator_data */ - case JS_CLASS_ARRAY_ITERATOR: /* u.array_iterator_data */ - case JS_CLASS_STRING_ITERATOR: /* u.array_iterator_data */ - case JS_CLASS_PROXY: /* u.proxy_data */ - case JS_CLASS_PROMISE: /* u.promise_data */ - case JS_CLASS_PROMISE_RESOLVE_FUNCTION: /* u.promise_function_data */ - case JS_CLASS_PROMISE_REJECT_FUNCTION: /* u.promise_function_data */ - case JS_CLASS_ASYNC_FUNCTION_RESOLVE: /* u.async_function_data */ - case JS_CLASS_ASYNC_FUNCTION_REJECT: /* u.async_function_data */ - case JS_CLASS_ASYNC_FROM_SYNC_ITERATOR: /* u.async_from_sync_iterator_data */ - case JS_CLASS_ASYNC_GENERATOR: /* u.async_generator_data */ - /* TODO */ - default: - /* XXX: class definition should have an opaque block size */ - if (p->u.opaque) { - s->memory_used_count += 1; - } - break; - } - } - s->obj_size += s->obj_count * sizeof(JSObject); - - /* hashed shapes */ - s->memory_used_count++; /* rt->shape_hash */ - s->memory_used_size += sizeof(rt->shape_hash[0]) * rt->shape_hash_size; - for(i = 0; i < rt->shape_hash_size; i++) { - JSShape *sh; - for(sh = rt->shape_hash[i]; sh != NULL; sh = sh->shape_hash_next) { - int hash_size = sh->prop_hash_mask + 1; - s->shape_count++; - s->shape_size += get_shape_size(hash_size, sh->prop_size); - } - } - - /* atoms */ - s->memory_used_count += 2; /* rt->atom_array, rt->atom_hash */ - s->atom_count = rt->atom_count; - s->atom_size = sizeof(rt->atom_array[0]) * rt->atom_size + - sizeof(rt->atom_hash[0]) * rt->atom_hash_size; - for(i = 0; i < rt->atom_size; i++) { - JSAtomStruct *p = rt->atom_array[i]; - if (!atom_is_free(p)) { - s->atom_size += (sizeof(*p) + (p->len << p->is_wide_char) + - 1 - p->is_wide_char); - } - } - s->str_count = round(mem.str_count); - s->str_size = round(mem.str_size); - s->js_func_count = mem.js_func_count; - s->js_func_size = round(mem.js_func_size); - s->js_func_code_size = mem.js_func_code_size; - s->js_func_pc2line_count = mem.js_func_pc2line_count; - s->js_func_pc2line_size = mem.js_func_pc2line_size; - s->memory_used_count += round(mem.memory_used_count) + - s->atom_count + s->str_count + - s->obj_count + s->shape_count + - s->js_func_count + s->js_func_pc2line_count; - s->memory_used_size += s->atom_size + s->str_size + - s->obj_size + s->prop_size + s->shape_size + - s->js_func_size + s->js_func_code_size + s->js_func_pc2line_size; -} - -void JS_DumpMemoryUsage(FILE *fp, const JSMemoryUsage *s, JSRuntime *rt) -{ - fprintf(fp, "QuickJS-ng memory usage -- %s version, %d-bit, %s Endian, malloc limit: %"PRId64"\n\n", - JS_GetVersion(), (int)sizeof(void *) * 8, is_be() ? "Big" : "Little", s->malloc_limit); - if (rt) { - static const struct { - const char *name; - size_t size; - } object_types[] = { - { "JSRuntime", sizeof(JSRuntime) }, - { "JSContext", sizeof(JSContext) }, - { "JSObject", sizeof(JSObject) }, - { "JSString", sizeof(JSString) }, - { "JSFunctionBytecode", sizeof(JSFunctionBytecode) }, - }; - int i, usage_size_ok = 0; - for(i = 0; i < countof(object_types); i++) { - unsigned int size = object_types[i].size; - void *p = js_malloc_rt(rt, size); - if (p) { - unsigned int size1 = js_malloc_usable_size_rt(rt, p); - if (size1 >= size) { - usage_size_ok = 1; - fprintf(fp, " %3u + %-2u %s\n", - size, size1 - size, object_types[i].name); - } - js_free_rt(rt, p); - } - } - if (!usage_size_ok) { - fprintf(fp, " malloc_usable_size unavailable\n"); - } - { - int obj_classes[JS_CLASS_INIT_COUNT + 1] = { 0 }; - int class_id; - struct list_head *el; - list_for_each(el, &rt->gc_obj_list) { - JSGCObjectHeader *gp = list_entry(el, JSGCObjectHeader, link); - JSObject *p; - if (gp->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT) { - p = (JSObject *)gp; - obj_classes[min_uint32(p->class_id, JS_CLASS_INIT_COUNT)]++; - } - } - fprintf(fp, "\n" "JSObject classes\n"); - if (obj_classes[0]) - fprintf(fp, " %5d %2.0d %s\n", obj_classes[0], 0, "none"); - for (class_id = 1; class_id < JS_CLASS_INIT_COUNT; class_id++) { - if (obj_classes[class_id] && class_id < rt->class_count) { - char buf[ATOM_GET_STR_BUF_SIZE]; - fprintf(fp, " %5d %2.0d %s\n", obj_classes[class_id], class_id, - JS_AtomGetStrRT(rt, buf, sizeof(buf), rt->class_array[class_id].class_name)); - } - } - if (obj_classes[JS_CLASS_INIT_COUNT]) - fprintf(fp, " %5d %2.0d %s\n", obj_classes[JS_CLASS_INIT_COUNT], 0, "other"); - } - fprintf(fp, "\n"); - } - fprintf(fp, "%-20s %8s %8s\n", "NAME", "COUNT", "SIZE"); - - if (s->malloc_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per block)\n", - "memory allocated", s->malloc_count, s->malloc_size, - (double)s->malloc_size / s->malloc_count); - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%d overhead, %0.1f average slack)\n", - "memory used", s->memory_used_count, s->memory_used_size, - MALLOC_OVERHEAD, ((double)(s->malloc_size - s->memory_used_size) / - s->memory_used_count)); - } - if (s->atom_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per atom)\n", - "atoms", s->atom_count, s->atom_size, - (double)s->atom_size / s->atom_count); - } - if (s->str_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per string)\n", - "strings", s->str_count, s->str_size, - (double)s->str_size / s->str_count); - } - if (s->obj_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per object)\n", - "objects", s->obj_count, s->obj_size, - (double)s->obj_size / s->obj_count); - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per object)\n", - " properties", s->prop_count, s->prop_size, - (double)s->prop_count / s->obj_count); - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per shape)\n", - " shapes", s->shape_count, s->shape_size, - (double)s->shape_size / s->shape_count); - } - if (s->js_func_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64"\n", - "bytecode functions", s->js_func_count, s->js_func_size); - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per function)\n", - " bytecode", s->js_func_count, s->js_func_code_size, - (double)s->js_func_code_size / s->js_func_count); - if (s->js_func_pc2line_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per function)\n", - " pc2line", s->js_func_pc2line_count, - s->js_func_pc2line_size, - (double)s->js_func_pc2line_size / s->js_func_pc2line_count); - } - } - if (s->c_func_count) { - fprintf(fp, "%-20s %8"PRId64"\n", "C functions", s->c_func_count); - } - if (s->array_count) { - fprintf(fp, "%-20s %8"PRId64"\n", "arrays", s->array_count); - if (s->fast_array_count) { - fprintf(fp, "%-20s %8"PRId64"\n", " fast arrays", s->fast_array_count); - fprintf(fp, "%-20s %8"PRId64" %8"PRId64" (%0.1f per fast array)\n", - " elements", s->fast_array_elements, - s->fast_array_elements * (int)sizeof(JSValue), - (double)s->fast_array_elements / s->fast_array_count); - } - } - if (s->binary_object_count) { - fprintf(fp, "%-20s %8"PRId64" %8"PRId64"\n", - "binary objects", s->binary_object_count, s->binary_object_size); - } -} - -JSValue JS_GetGlobalObject(JSContext *ctx) -{ - return js_dup(ctx->global_obj); -} - -/* WARNING: obj is freed */ -JSValue JS_Throw(JSContext *ctx, JSValue obj) -{ - JSRuntime *rt = ctx->rt; - JS_FreeValue(ctx, rt->current_exception); - rt->current_exception = obj; - return JS_EXCEPTION; -} - -/* return the pending exception (cannot be called twice). */ -JSValue JS_GetException(JSContext *ctx) -{ - JSValue val; - JSRuntime *rt = ctx->rt; - val = rt->current_exception; - rt->current_exception = JS_UNINITIALIZED; - return val; -} - -bool JS_HasException(JSContext *ctx) -{ - return !JS_IsUninitialized(ctx->rt->current_exception); -} - -static void dbuf_put_leb128(DynBuf *s, uint32_t v) -{ - uint32_t a; - for(;;) { - a = v & 0x7f; - v >>= 7; - if (v != 0) { - dbuf_putc(s, a | 0x80); - } else { - dbuf_putc(s, a); - break; - } - } -} - -static void dbuf_put_sleb128(DynBuf *s, int32_t v1) -{ - uint32_t v = v1; - dbuf_put_leb128(s, (2 * v) ^ -(v >> 31)); -} - -static int get_leb128(uint32_t *pval, const uint8_t *buf, - const uint8_t *buf_end) -{ - const uint8_t *ptr = buf; - uint32_t v, a, i; - v = 0; - for(i = 0; i < 5; i++) { - if (unlikely(ptr >= buf_end)) - break; - a = *ptr++; - v |= (a & 0x7f) << (i * 7); - if (!(a & 0x80)) { - *pval = v; - return ptr - buf; - } - } - *pval = 0; - return -1; -} - -static int get_sleb128(int32_t *pval, const uint8_t *buf, - const uint8_t *buf_end) -{ - int ret; - uint32_t val; - ret = get_leb128(&val, buf, buf_end); - if (ret < 0) { - *pval = 0; - return -1; - } - *pval = (val >> 1) ^ -(val & 1); - return ret; -} - -static int find_line_num(JSContext *ctx, JSFunctionBytecode *b, - uint32_t pc_value, int *col) -{ - const uint8_t *p_end, *p; - int new_line_num, new_col_num, line_num, col_num, pc, v, ret; - unsigned int op; - - *col = 1; - p = b->pc2line_buf; - if (!p) - goto fail; - p_end = p + b->pc2line_len; - pc = 0; - line_num = b->line_num; - col_num = b->col_num; - while (p < p_end) { - op = *p++; - if (op == 0) { - uint32_t val; - ret = get_leb128(&val, p, p_end); - if (ret < 0) - goto fail; - pc += val; - p += ret; - ret = get_sleb128(&v, p, p_end); - if (ret < 0) - goto fail; - p += ret; - new_line_num = line_num + v; - } else { - op -= PC2LINE_OP_FIRST; - pc += (op / PC2LINE_RANGE); - new_line_num = line_num + (op % PC2LINE_RANGE) + PC2LINE_BASE; - } - ret = get_sleb128(&v, p, p_end); - if (ret < 0) - goto fail; - p += ret; - new_col_num = col_num + v; - if (pc_value < pc) - break; - line_num = new_line_num; - col_num = new_col_num; - } - *col = col_num; - return line_num; -fail: - /* should never happen */ - return b->line_num; -} - -/* in order to avoid executing arbitrary code during the stack trace - generation, we only look at simple 'name' properties containing a - string. */ -static const char *get_func_name(JSContext *ctx, JSValueConst func) -{ - JSProperty *pr; - JSShapeProperty *prs; - JSValue val; - - if (JS_VALUE_GET_TAG(func) != JS_TAG_OBJECT) - return NULL; - prs = find_own_property(&pr, JS_VALUE_GET_OBJ(func), JS_ATOM_name); - if (!prs) - return NULL; - if ((prs->flags & JS_PROP_TMASK) != JS_PROP_NORMAL) - return NULL; - val = pr->u.value; - if (JS_VALUE_GET_TAG(val) != JS_TAG_STRING) - return NULL; - return JS_ToCString(ctx, val); -} - -/* Note: it is important that no exception is returned by this function */ -static bool can_add_backtrace(JSValueConst obj) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(obj); - if (p->class_id != JS_CLASS_ERROR && p->class_id != JS_CLASS_DOM_EXCEPTION) - return false; - if (find_own_property1(p, JS_ATOM_stack)) - return false; - return true; -} - -#define JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL (1 << 0) -/* only taken into account if filename is provided */ -#define JS_BACKTRACE_FLAG_SINGLE_LEVEL (1 << 1) -#define JS_BACKTRACE_FLAG_FILTER_FUNC (1 << 2) - -/* if filename != NULL, an additional level is added with the filename - and line number information (used for parse error). */ -static void build_backtrace(JSContext *ctx, JSValueConst error_val, - JSValueConst filter_func, const char *filename, - int line_num, int col_num, int backtrace_flags) -{ - JSStackFrame *sf, *sf_start; - JSValue stack, prepare, saved_exception; - DynBuf dbuf; - const char *func_name_str; - const char *str1; - JSObject *p; - JSFunctionBytecode *b; - bool backtrace_barrier, has_prepare, has_filter_func; - JSRuntime *rt; - JSCallSiteData csd[64]; - uint32_t i; - double d; - int stack_trace_limit; - - rt = ctx->rt; - if (rt->in_build_stack_trace) - return; - rt->in_build_stack_trace = true; - - // Save exception because conversion to double may fail. - saved_exception = JS_GetException(ctx); - - // Extract stack trace limit. - // Ignore error since it sets d to NAN anyway. - // coverity[check_return] - JS_ToFloat64(ctx, &d, ctx->error_stack_trace_limit); - if (isnan(d) || d < 0.0) - stack_trace_limit = 0; - else if (d > INT32_MAX) - stack_trace_limit = INT32_MAX; - else - stack_trace_limit = fabs(d); - - // Restore current exception. - JS_Throw(ctx, saved_exception); - saved_exception = JS_UNINITIALIZED; - - stack_trace_limit = min_int(stack_trace_limit, countof(csd)); - stack_trace_limit = max_int(stack_trace_limit, 0); - has_prepare = false; - has_filter_func = backtrace_flags & JS_BACKTRACE_FLAG_FILTER_FUNC; - i = 0; - - if (!JS_IsNull(ctx->error_ctor)) { - prepare = js_dup(ctx->error_prepare_stack); - has_prepare = JS_IsFunction(ctx, prepare); - } - - if (has_prepare) { - saved_exception = JS_GetException(ctx); - if (stack_trace_limit == 0) - goto done; - if (filename) - js_new_callsite_data2(ctx, &csd[i++], filename, line_num, col_num); - } else { - js_dbuf_init(ctx, &dbuf); - if (stack_trace_limit == 0) - goto done; - if (filename) { - i++; - dbuf_printf(&dbuf, " at %s", filename); - if (line_num != -1) - dbuf_printf(&dbuf, ":%d:%d", line_num, col_num); - dbuf_putc(&dbuf, '\n'); - } - } - - if (filename && (backtrace_flags & JS_BACKTRACE_FLAG_SINGLE_LEVEL)) - goto done; - - sf_start = rt->current_stack_frame; - - /* Find the frame we want to start from. Note that when a filter is used the filter - function will be the first, but we also specify we want to skip the first one. */ - if (has_filter_func) { - for (sf = sf_start; sf != NULL && i < stack_trace_limit; sf = sf->prev_frame) { - if (js_same_value(ctx, sf->cur_func, filter_func)) { - sf_start = sf; - break; - } - } - } - - for (sf = sf_start; sf != NULL && i < stack_trace_limit; sf = sf->prev_frame) { - if (backtrace_flags & JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL) { - backtrace_flags &= ~JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL; - continue; - } - - p = JS_VALUE_GET_OBJ(sf->cur_func); - b = NULL; - backtrace_barrier = false; - - if (js_class_has_bytecode(p->class_id)) { - b = p->u.func.function_bytecode; - backtrace_barrier = b->backtrace_barrier; - } - - if (has_prepare) { - js_new_callsite_data(ctx, &csd[i], sf); - } else { - /* func_name_str is UTF-8 encoded if needed */ - func_name_str = get_func_name(ctx, sf->cur_func); - if (!func_name_str || func_name_str[0] == '\0') - str1 = ""; - else - str1 = func_name_str; - dbuf_printf(&dbuf, " at %s", str1); - JS_FreeCString(ctx, func_name_str); - - if (b && sf->cur_pc) { - const char *atom_str; - int line_num1, col_num1; - uint32_t pc; - - pc = sf->cur_pc - b->byte_code_buf - 1; - line_num1 = find_line_num(ctx, b, pc, &col_num1); - atom_str = b->filename ? JS_AtomToCString(ctx, b->filename) : NULL; - dbuf_printf(&dbuf, " (%s", atom_str ? atom_str : ""); - JS_FreeCString(ctx, atom_str); - if (line_num1 != -1) - dbuf_printf(&dbuf, ":%d:%d", line_num1, col_num1); - dbuf_putc(&dbuf, ')'); - } else if (b) { - // FIXME(bnoordhuis) Missing `sf->cur_pc = pc` in bytecode - // handler in JS_CallInternal. Almost never user observable - // except with intercepting JS proxies that throw exceptions. - dbuf_printf(&dbuf, " (missing)"); - } else { - dbuf_printf(&dbuf, " (native)"); - } - dbuf_putc(&dbuf, '\n'); - } - i++; - - /* stop backtrace if JS_EVAL_FLAG_BACKTRACE_BARRIER was used */ - if (backtrace_barrier) - break; - } - done: - if (has_prepare) { - int j = 0, k; - stack = JS_NewArray(ctx); - if (JS_IsException(stack)) { - stack = JS_NULL; - } else { - for (; j < i; j++) { - JSValue v = js_new_callsite(ctx, &csd[j]); - if (JS_IsException(v)) - break; - if (JS_DefinePropertyValueUint32(ctx, stack, j, v, JS_PROP_C_W_E) < 0) { - JS_FreeValue(ctx, v); - break; - } - } - } - // Clear the csd's we didn't use in case of error. - for (k = j; k < i; k++) { - JS_FreeValue(ctx, csd[k].filename); - JS_FreeValue(ctx, csd[k].func); - JS_FreeValue(ctx, csd[k].func_name); - } - JSValueConst args[] = { - error_val, - stack, - }; - JSValue stack2 = JS_Call(ctx, prepare, ctx->error_ctor, countof(args), args); - JS_FreeValue(ctx, stack); - if (JS_IsException(stack2)) - stack = JS_NULL; - else - stack = stack2; - JS_FreeValue(ctx, prepare); - JS_Throw(ctx, saved_exception); - } else { - if (dbuf_error(&dbuf)) - stack = JS_NULL; - else - stack = JS_NewStringLen(ctx, (char *)dbuf.buf, dbuf.size); - dbuf_free(&dbuf); - } - - if (JS_IsUndefined(ctx->error_back_trace)) - ctx->error_back_trace = js_dup(stack); - if (has_filter_func || can_add_backtrace(error_val)) { - JS_DefinePropertyValue(ctx, error_val, JS_ATOM_stack, stack, - JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE); - } else { - JS_FreeValue(ctx, stack); - } - - rt->in_build_stack_trace = false; -} - -JSValue JS_NewError(JSContext *ctx) -{ - JSValue obj = JS_NewObjectClass(ctx, JS_CLASS_ERROR); - if (JS_IsException(obj)) - return JS_EXCEPTION; - build_backtrace(ctx, obj, JS_UNDEFINED, NULL, 0, 0, 0); - return obj; -} - -static JSValue JS_MakeError2(JSContext *ctx, JSErrorEnum error_num, - bool add_backtrace, const char *message) -{ - JSValue obj, msg; - - if (error_num == JS_PLAIN_ERROR) { - obj = JS_NewObjectClass(ctx, JS_CLASS_ERROR); - } else { - obj = JS_NewObjectProtoClass(ctx, ctx->native_error_proto[error_num], - JS_CLASS_ERROR); - } - if (JS_IsException(obj)) - return JS_EXCEPTION; - msg = JS_NewString(ctx, message); - if (JS_IsException(msg)) - msg = JS_NewString(ctx, "Invalid error message"); - if (!JS_IsException(msg)) { - JS_DefinePropertyValue(ctx, obj, JS_ATOM_message, msg, - JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE); - } - if (add_backtrace) - build_backtrace(ctx, obj, JS_UNDEFINED, NULL, 0, 0, 0); - return obj; -} - -static JSValue JS_PRINTF_FORMAT_ATTR(4, 0) -JS_MakeError(JSContext *ctx, JSErrorEnum error_num, bool add_backtrace, - JS_PRINTF_FORMAT const char *fmt, va_list ap) -{ - char buf[256]; - - vsnprintf(buf, sizeof(buf), fmt, ap); - return JS_MakeError2(ctx, error_num, add_backtrace, buf); -} - -/* fmt and arguments may be pure ASCII or UTF-8 encoded contents */ -static JSValue JS_PRINTF_FORMAT_ATTR(4, 0) -JS_ThrowError2(JSContext *ctx, JSErrorEnum error_num, bool add_backtrace, - JS_PRINTF_FORMAT const char *fmt, va_list ap) -{ - JSValue obj; - - obj = JS_MakeError(ctx, error_num, add_backtrace, fmt, ap); - if (unlikely(JS_IsException(obj))) { - /* out of memory: throw JS_NULL to avoid recursing */ - obj = JS_NULL; - } - return JS_Throw(ctx, obj); -} - -static JSValue JS_PRINTF_FORMAT_ATTR(3, 0) -JS_ThrowError(JSContext *ctx, JSErrorEnum error_num, - JS_PRINTF_FORMAT const char *fmt, va_list ap) -{ - JSRuntime *rt = ctx->rt; - JSStackFrame *sf; - bool add_backtrace; - - /* the backtrace is added later if called from a bytecode function */ - sf = rt->current_stack_frame; - add_backtrace = !rt->in_out_of_memory && - (!sf || (JS_GetFunctionBytecode(sf->cur_func) == NULL)); - return JS_ThrowError2(ctx, error_num, add_backtrace, fmt, ap); -} - -#define JS_ERROR_MAP(X) \ - X(Internal, INTERNAL) \ - X(Plain, PLAIN) \ - X(Range, RANGE) \ - X(Reference, REFERENCE) \ - X(Syntax, SYNTAX) \ - X(Type, TYPE) \ - -#define X(lc, uc) \ - JSValue JS_PRINTF_FORMAT_ATTR(2, 3) \ - JS_New##lc##Error(JSContext *ctx, \ - JS_PRINTF_FORMAT const char *fmt, ...) \ - { \ - JSValue val; \ - va_list ap; \ - \ - va_start(ap, fmt); \ - val = JS_MakeError(ctx, JS_##uc##_ERROR, \ - /*add_backtrace*/true, fmt, ap); \ - va_end(ap); \ - return val; \ - } \ - JSValue JS_PRINTF_FORMAT_ATTR(2, 3) \ - JS_Throw##lc##Error(JSContext *ctx, \ - JS_PRINTF_FORMAT const char *fmt, ...) \ - { \ - JSValue val; \ - va_list ap; \ - \ - va_start(ap, fmt); \ - val = JS_ThrowError(ctx, JS_##uc##_ERROR, fmt, ap); \ - va_end(ap); \ - return val; \ - } \ - -JS_ERROR_MAP(X) - -#undef X -#undef JS_ERROR_MAP - -static int JS_PRINTF_FORMAT_ATTR(3, 4) JS_ThrowTypeErrorOrFalse(JSContext *ctx, int flags, JS_PRINTF_FORMAT const char *fmt, ...) -{ - va_list ap; - - if ((flags & JS_PROP_THROW) || - ((flags & JS_PROP_THROW_STRICT) && is_strict_mode(ctx))) { - va_start(ap, fmt); - JS_ThrowError(ctx, JS_TYPE_ERROR, fmt, ap); - va_end(ap); - return -1; - } else { - return false; - } -} - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wformat-nonliteral" -#endif // __GNUC__ -static JSValue JS_ThrowTypeErrorAtom(JSContext *ctx, const char *fmt, JSAtom atom) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - JS_AtomGetStr(ctx, buf, sizeof(buf), atom); - return JS_ThrowTypeError(ctx, fmt, buf); -} - -static JSValue JS_ThrowSyntaxErrorAtom(JSContext *ctx, const char *fmt, JSAtom atom) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - JS_AtomGetStr(ctx, buf, sizeof(buf), atom); - return JS_ThrowSyntaxError(ctx, fmt, buf); -} -#ifdef __GNUC__ -#pragma GCC diagnostic pop // ignored "-Wformat-nonliteral" -#endif // __GNUC__ - -static int JS_ThrowTypeErrorReadOnly(JSContext *ctx, int flags, JSAtom atom) -{ - if ((flags & JS_PROP_THROW) || - ((flags & JS_PROP_THROW_STRICT) && is_strict_mode(ctx))) { - JS_ThrowTypeErrorAtom(ctx, "'%s' is read-only", atom); - return -1; - } else { - return false; - } -} - -JSValue JS_ThrowOutOfMemory(JSContext *ctx) -{ - JSRuntime *rt = ctx->rt; - if (!rt->in_out_of_memory) { - rt->in_out_of_memory = true; - JS_ThrowInternalError(ctx, "out of memory"); - rt->in_out_of_memory = false; - } - return JS_EXCEPTION; -} - -static JSValue JS_ThrowStackOverflow(JSContext *ctx) -{ - return JS_ThrowRangeError(ctx, "Maximum call stack size exceeded"); -} - -static JSValue JS_ThrowTypeErrorNotAConstructor(JSContext *ctx, - JSValueConst func_obj) -{ - JSObject *p; - JSAtom name; - - if (JS_TAG_OBJECT != JS_VALUE_GET_TAG(func_obj)) - goto fini; - p = JS_VALUE_GET_OBJ(func_obj); - if (!js_class_has_bytecode(p->class_id)) - goto fini; - name = p->u.func.function_bytecode->func_name; - if (name == JS_ATOM_NULL) - goto fini; - return JS_ThrowTypeErrorAtom(ctx, "%s is not a constructor", name); -fini: - return JS_ThrowTypeError(ctx, "not a constructor"); -} - -static JSValue JS_ThrowTypeErrorNotAFunction(JSContext *ctx) -{ - return JS_ThrowTypeError(ctx, "not a function"); -} - -static JSValue JS_ThrowTypeErrorNotAnObject(JSContext *ctx) -{ - return JS_ThrowTypeError(ctx, "not an object"); -} - -static JSValue JS_ThrowTypeErrorNotASymbol(JSContext *ctx) -{ - return JS_ThrowTypeError(ctx, "not a symbol"); -} - -static JSValue JS_ThrowReferenceErrorNotDefined(JSContext *ctx, JSAtom name) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - return JS_ThrowReferenceError(ctx, "%s is not defined", - JS_AtomGetStr(ctx, buf, sizeof(buf), name)); -} - -static JSValue JS_ThrowReferenceErrorUninitialized(JSContext *ctx, JSAtom name) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - return JS_ThrowReferenceError(ctx, "%s is not initialized", - name == JS_ATOM_NULL ? "lexical variable" : - JS_AtomGetStr(ctx, buf, sizeof(buf), name)); -} - -static JSValue JS_ThrowReferenceErrorUninitialized2(JSContext *ctx, - JSFunctionBytecode *b, - int idx, bool is_ref) -{ - JSAtom atom = JS_ATOM_NULL; - if (is_ref) { - atom = b->closure_var[idx].var_name; - } else { - /* not present if the function is stripped and contains no eval() */ - if (b->vardefs) - atom = b->vardefs[b->arg_count + idx].var_name; - } - return JS_ThrowReferenceErrorUninitialized(ctx, atom); -} - -static JSValue JS_ThrowTypeErrorInvalidClass(JSContext *ctx, int class_id) -{ - JSRuntime *rt = ctx->rt; - JSAtom name; - name = rt->class_array[class_id].class_name; - return JS_ThrowTypeErrorAtom(ctx, "%s object expected", name); -} - -static void JS_ThrowInterrupted(JSContext *ctx) -{ - JS_ThrowInternalError(ctx, "interrupted"); - JS_SetUncatchableError(ctx, ctx->rt->current_exception); -} - -static no_inline __exception int __js_poll_interrupts(JSContext *ctx) -{ - JSRuntime *rt = ctx->rt; - ctx->interrupt_counter = JS_INTERRUPT_COUNTER_INIT; - if (rt->interrupt_handler) { - if (rt->interrupt_handler(rt, rt->interrupt_opaque)) { - JS_ThrowInterrupted(ctx); - return -1; - } - } - return 0; -} - -static inline __exception int js_poll_interrupts(JSContext *ctx) -{ - if (unlikely(--ctx->interrupt_counter <= 0)) { - return __js_poll_interrupts(ctx); - } else { - return 0; - } -} - -/* return -1 (exception) or true/false */ -static int JS_SetPrototypeInternal(JSContext *ctx, JSValueConst obj, - JSValueConst proto_val, bool throw_flag) -{ - JSObject *proto, *p, *p1; - JSShape *sh; - - if (throw_flag) { - if (JS_VALUE_GET_TAG(obj) == JS_TAG_NULL || - JS_VALUE_GET_TAG(obj) == JS_TAG_UNDEFINED) - goto not_obj; - } else { - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - goto not_obj; - } - p = JS_VALUE_GET_OBJ(obj); - if (JS_VALUE_GET_TAG(proto_val) != JS_TAG_OBJECT) { - if (JS_VALUE_GET_TAG(proto_val) != JS_TAG_NULL) { - not_obj: - JS_ThrowTypeErrorNotAnObject(ctx); - return -1; - } - proto = NULL; - } else { - proto = JS_VALUE_GET_OBJ(proto_val); - } - - if (throw_flag && JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - return true; - - if (unlikely(p->class_id == JS_CLASS_PROXY)) - return js_proxy_setPrototypeOf(ctx, obj, proto_val, throw_flag); - sh = p->shape; - if (sh->proto == proto) - return true; - if (p == JS_VALUE_GET_OBJ(ctx->class_proto[JS_CLASS_OBJECT])) { - if (throw_flag) { - JS_ThrowTypeError(ctx, "'Immutable prototype object \'Object.prototype\' cannot have their prototype set'"); - return -1; - } - return false; - } - if (!p->extensible) { - if (throw_flag) { - JS_ThrowTypeError(ctx, "object is not extensible"); - return -1; - } else { - return false; - } - } - if (proto) { - /* check if there is a cycle */ - p1 = proto; - do { - if (p1 == p) { - if (throw_flag) { - JS_ThrowTypeError(ctx, "circular prototype chain"); - return -1; - } else { - return false; - } - } - /* Note: for Proxy objects, proto is NULL */ - p1 = p1->shape->proto; - } while (p1 != NULL); - js_dup(proto_val); - } - - if (js_shape_prepare_update(ctx, p, NULL)) - return -1; - sh = p->shape; - if (sh->proto) - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, sh->proto)); - sh->proto = proto; - return true; -} - -/* return -1 (exception) or true/false */ -int JS_SetPrototype(JSContext *ctx, JSValueConst obj, JSValueConst proto_val) -{ - return JS_SetPrototypeInternal(ctx, obj, proto_val, true); -} - -/* Only works for primitive types, otherwise return JS_NULL. */ -static JSValueConst JS_GetPrototypePrimitive(JSContext *ctx, JSValueConst val) -{ - JSValue ret; - switch(JS_VALUE_GET_NORM_TAG(val)) { - case JS_TAG_SHORT_BIG_INT: - case JS_TAG_BIG_INT: - ret = ctx->class_proto[JS_CLASS_BIG_INT]; - break; - case JS_TAG_INT: - case JS_TAG_FLOAT64: - ret = ctx->class_proto[JS_CLASS_NUMBER]; - break; - case JS_TAG_BOOL: - ret = ctx->class_proto[JS_CLASS_BOOLEAN]; - break; - case JS_TAG_STRING: - ret = ctx->class_proto[JS_CLASS_STRING]; - break; - case JS_TAG_SYMBOL: - ret = ctx->class_proto[JS_CLASS_SYMBOL]; - break; - case JS_TAG_OBJECT: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - default: - ret = JS_NULL; - break; - } - return ret; -} - -/* Return an Object, JS_NULL or JS_EXCEPTION in case of Proxy object. */ -JSValue JS_GetPrototype(JSContext *ctx, JSValueConst obj) -{ - JSValue val; - if (JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT) { - JSObject *p; - p = JS_VALUE_GET_OBJ(obj); - if (unlikely(p->class_id == JS_CLASS_PROXY)) { - val = js_proxy_getPrototypeOf(ctx, obj); - } else { - p = p->shape->proto; - if (!p) - val = JS_NULL; - else - val = js_dup(JS_MKPTR(JS_TAG_OBJECT, p)); - } - } else { - val = js_dup(JS_GetPrototypePrimitive(ctx, obj)); - } - return val; -} - -static JSValue JS_GetPrototypeFree(JSContext *ctx, JSValue obj) -{ - JSValue obj1; - obj1 = JS_GetPrototype(ctx, obj); - JS_FreeValue(ctx, obj); - return obj1; -} - -int JS_GetLength(JSContext *ctx, JSValueConst obj, int64_t *pres) { - return js_get_length64(ctx, pres, obj); -} - -int JS_SetLength(JSContext *ctx, JSValueConst obj, int64_t len) { - return js_set_length64(ctx, obj, len); -} - -/* return true, false or (-1) in case of exception */ -static int JS_OrdinaryIsInstanceOf(JSContext *ctx, JSValueConst val, - JSValueConst obj) -{ - JSValue obj_proto; - JSObject *proto; - const JSObject *p, *proto1; - int ret; - - if (!JS_IsFunction(ctx, obj)) - return false; - p = JS_VALUE_GET_OBJ(obj); - if (p->class_id == JS_CLASS_BOUND_FUNCTION) { - JSBoundFunction *s = p->u.bound_function; - return JS_IsInstanceOf(ctx, val, s->func_obj); - } - - /* Only explicitly boxed values are instances of constructors */ - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return false; - obj_proto = JS_GetProperty(ctx, obj, JS_ATOM_prototype); - if (JS_VALUE_GET_TAG(obj_proto) != JS_TAG_OBJECT) { - if (!JS_IsException(obj_proto)) - JS_ThrowTypeError(ctx, "operand 'prototype' property is not an object"); - ret = -1; - goto done; - } - proto = JS_VALUE_GET_OBJ(obj_proto); - p = JS_VALUE_GET_OBJ(val); - for(;;) { - proto1 = p->shape->proto; - if (!proto1) { - /* slow case if proxy in the prototype chain */ - if (unlikely(p->class_id == JS_CLASS_PROXY)) { - JSValue obj1; - obj1 = js_dup(JS_MKPTR(JS_TAG_OBJECT, (JSObject *)p)); - for(;;) { - obj1 = JS_GetPrototypeFree(ctx, obj1); - if (JS_IsException(obj1)) { - ret = -1; - break; - } - if (JS_IsNull(obj1)) { - ret = false; - break; - } - if (proto == JS_VALUE_GET_OBJ(obj1)) { - JS_FreeValue(ctx, obj1); - ret = true; - break; - } - /* must check for timeout to avoid infinite loop */ - if (js_poll_interrupts(ctx)) { - JS_FreeValue(ctx, obj1); - ret = -1; - break; - } - } - } else { - ret = false; - } - break; - } - p = proto1; - if (proto == p) { - ret = true; - break; - } - } -done: - JS_FreeValue(ctx, obj_proto); - return ret; -} - -/* return true, false or (-1) in case of exception */ -int JS_IsInstanceOf(JSContext *ctx, JSValueConst val, JSValueConst obj) -{ - JSValue method; - - if (!JS_IsObject(obj)) - goto fail; - method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_hasInstance); - if (JS_IsException(method)) - return -1; - if (!JS_IsNull(method) && !JS_IsUndefined(method)) { - JSValue ret; - ret = JS_CallFree(ctx, method, obj, 1, &val); - return JS_ToBoolFree(ctx, ret); - } - - /* legacy case */ - if (!JS_IsFunction(ctx, obj)) { - fail: - JS_ThrowTypeError(ctx, "invalid 'instanceof' right operand"); - return -1; - } - return JS_OrdinaryIsInstanceOf(ctx, val, obj); -} - -#include "builtin-array-fromasync.h" - -static JSValue js_bytecode_autoinit(JSContext *ctx, JSObject *p, JSAtom atom, - void *opaque) -{ - switch ((uintptr_t)opaque) { - default: - abort(); - case JS_BUILTIN_ARRAY_FROMASYNC: - { - JSValue obj = JS_ReadObject(ctx, qjsc_builtin_array_fromasync, - sizeof(qjsc_builtin_array_fromasync), - JS_READ_OBJ_BYTECODE); - if (JS_IsException(obj)) - return JS_EXCEPTION; - JSValue fun = JS_EvalFunction(ctx, obj); - if (JS_IsException(fun)) - return JS_EXCEPTION; - assert(JS_IsFunction(ctx, fun)); - JSValue args[] = { - JS_NewCFunction(ctx, js_array_constructor, "Array", 0), - JS_NewCFunctionMagic(ctx, js_error_constructor, "TypeError", 1, - JS_CFUNC_constructor_or_func_magic, - JS_TYPE_ERROR), - JS_AtomToValue(ctx, JS_ATOM_Symbol_asyncIterator), - JS_NewCFunctionMagic(ctx, js_object_defineProperty, - "Object.defineProperty", 3, - JS_CFUNC_generic_magic, 0), - JS_AtomToValue(ctx, JS_ATOM_Symbol_iterator), - }; - JSValue result = JS_Call(ctx, fun, JS_UNDEFINED, - countof(args), vc(args)); - for (size_t i = 0; i < countof(args); i++) - JS_FreeValue(ctx, args[i]); - JS_FreeValue(ctx, fun); - if (JS_SetPrototypeInternal(ctx, result, ctx->function_proto, - /*throw_flag*/true) < 0) { - JS_FreeValue(ctx, result); - return JS_EXCEPTION; - } - return result; - } - } - return JS_UNDEFINED; -} - -/* return the value associated to the autoinit property or an exception */ -typedef JSValue JSAutoInitFunc(JSContext *ctx, JSObject *p, JSAtom atom, void *opaque); - -static JSAutoInitFunc *const js_autoinit_func_table[] = { - js_instantiate_prototype, /* JS_AUTOINIT_ID_PROTOTYPE */ - js_module_ns_autoinit, /* JS_AUTOINIT_ID_MODULE_NS */ - JS_InstantiateFunctionListItem2, /* JS_AUTOINIT_ID_PROP */ - js_bytecode_autoinit, /* JS_AUTOINIT_ID_BYTECODE */ -}; - -/* warning: 'prs' is reallocated after it */ -static int JS_AutoInitProperty(JSContext *ctx, JSObject *p, JSAtom prop, - JSProperty *pr, JSShapeProperty *prs) -{ - JSValue val; - JSContext *realm; - JSAutoInitFunc *func; - - if (js_shape_prepare_update(ctx, p, &prs)) - return -1; - - realm = js_autoinit_get_realm(pr); - func = js_autoinit_func_table[js_autoinit_get_id(pr)]; - /* 'func' shall not modify the object properties 'pr' */ - val = func(realm, p, prop, pr->u.init.opaque); - js_autoinit_free(ctx->rt, pr); - prs->flags &= ~JS_PROP_TMASK; - pr->u.value = JS_UNDEFINED; - if (JS_IsException(val)) - return -1; - pr->u.value = val; - return 0; -} - -static JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, - JSAtom prop, JSValueConst this_obj, - bool throw_ref_error) -{ - JSObject *p; - JSProperty *pr; - JSShapeProperty *prs; - uint32_t tag; - - tag = JS_VALUE_GET_TAG(obj); - if (unlikely(tag != JS_TAG_OBJECT)) { - switch(tag) { - case JS_TAG_NULL: - return JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of null (reading '%s')", prop); - case JS_TAG_UNDEFINED: - return JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of undefined (reading '%s')", prop); - case JS_TAG_EXCEPTION: - return JS_EXCEPTION; - case JS_TAG_STRING: - { - JSString *p1 = JS_VALUE_GET_STRING(obj); - if (__JS_AtomIsTaggedInt(prop)) { - uint32_t idx, ch; - idx = __JS_AtomToUInt32(prop); - if (idx < p1->len) { - ch = string_get(p1, idx); - return js_new_string_char(ctx, ch); - } - } else if (prop == JS_ATOM_length) { - return js_int32(p1->len); - } - } - break; - default: - break; - } - /* cannot raise an exception */ - p = JS_VALUE_GET_OBJ(JS_GetPrototypePrimitive(ctx, obj)); - if (!p) - return JS_UNDEFINED; - } else { - p = JS_VALUE_GET_OBJ(obj); - } - - for(;;) { - prs = find_own_property(&pr, p, prop); - if (prs) { - /* found */ - if (unlikely(prs->flags & JS_PROP_TMASK)) { - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - if (unlikely(!pr->u.getset.getter)) { - return JS_UNDEFINED; - } else { - JSValue func = JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.getter); - /* Note: the field could be removed in the getter */ - func = js_dup(func); - return JS_CallFree(ctx, func, this_obj, 0, NULL); - } - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - JSValue val = *pr->u.var_ref->pvalue; - if (unlikely(JS_IsUninitialized(val))) - return JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return js_dup(val); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - /* Instantiate property and retry */ - if (JS_AutoInitProperty(ctx, p, prop, pr, prs)) - return JS_EXCEPTION; - continue; - } - } else { - return js_dup(pr->u.value); - } - } - if (unlikely(p->is_exotic)) { - /* exotic behaviors */ - if (p->fast_array) { - if (__JS_AtomIsTaggedInt(prop)) { - uint32_t idx = __JS_AtomToUInt32(prop); - if (idx < p->u.array.count) { - /* we avoid duplicating the code */ - return JS_GetPropertyUint32(ctx, JS_MKPTR(JS_TAG_OBJECT, p), idx); - } else if (is_typed_array(p->class_id)) { - return JS_UNDEFINED; - } - } else if (is_typed_array(p->class_id)) { - int ret; - ret = JS_AtomIsNumericIndex(ctx, prop); - if (ret != 0) { - if (ret < 0) - return JS_EXCEPTION; - return JS_UNDEFINED; - } - } - } else { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em) { - if (em->get_property) { - JSValue obj1, retval; - /* XXX: should pass throw_ref_error */ - /* Note: if 'p' is a prototype, it can be - freed in the called function */ - obj1 = js_dup(JS_MKPTR(JS_TAG_OBJECT, p)); - retval = em->get_property(ctx, obj1, prop, this_obj); - JS_FreeValue(ctx, obj1); - return retval; - } - if (em->get_own_property) { - JSPropertyDescriptor desc; - int ret; - JSValue obj1; - - /* Note: if 'p' is a prototype, it can be - freed in the called function */ - obj1 = js_dup(JS_MKPTR(JS_TAG_OBJECT, p)); - ret = em->get_own_property(ctx, &desc, obj1, prop); - JS_FreeValue(ctx, obj1); - if (ret < 0) - return JS_EXCEPTION; - if (ret) { - if (desc.flags & JS_PROP_GETSET) { - JS_FreeValue(ctx, desc.setter); - return JS_CallFree(ctx, desc.getter, this_obj, 0, NULL); - } else { - return desc.value; - } - } - } - } - } - } - p = p->shape->proto; - if (!p) - break; - } - if (unlikely(throw_ref_error)) { - return JS_ThrowReferenceErrorNotDefined(ctx, prop); - } else { - return JS_UNDEFINED; - } -} - -JSValue JS_GetProperty(JSContext *ctx, JSValueConst this_obj, JSAtom prop) -{ - return JS_GetPropertyInternal(ctx, this_obj, prop, this_obj, false); -} - -static JSValue JS_ThrowTypeErrorPrivateNotFound(JSContext *ctx, JSAtom atom) -{ - return JS_ThrowTypeErrorAtom(ctx, "private class field '%s' does not exist", - atom); -} - -/* Private fields can be added even on non extensible objects or - Proxies */ -static int JS_DefinePrivateField(JSContext *ctx, JSValueConst obj, - JSValue name, JSValue val) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - JSAtom prop; - - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) { - JS_ThrowTypeErrorNotAnObject(ctx); - goto fail; - } - /* safety check */ - if (unlikely(JS_VALUE_GET_TAG(name) != JS_TAG_SYMBOL)) { - JS_ThrowTypeErrorNotASymbol(ctx); - goto fail; - } - prop = js_symbol_to_atom(ctx, name); - p = JS_VALUE_GET_OBJ(obj); - prs = find_own_property(&pr, p, prop); - if (prs) { - JS_ThrowTypeErrorAtom(ctx, "private class field '%s' already exists", - prop); - goto fail; - } - pr = add_property(ctx, p, prop, JS_PROP_C_W_E); - if (unlikely(!pr)) { - fail: - JS_FreeValue(ctx, val); - return -1; - } - pr->u.value = val; - return 0; -} - -static JSValue JS_GetPrivateField(JSContext *ctx, JSValueConst obj, - JSValueConst name) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - JSAtom prop; - - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) - return JS_ThrowTypeErrorNotAnObject(ctx); - /* safety check */ - if (unlikely(JS_VALUE_GET_TAG(name) != JS_TAG_SYMBOL)) - return JS_ThrowTypeErrorNotASymbol(ctx); - prop = js_symbol_to_atom(ctx, name); - p = JS_VALUE_GET_OBJ(obj); - prs = find_own_property(&pr, p, prop); - if (!prs) { - JS_ThrowTypeErrorPrivateNotFound(ctx, prop); - return JS_EXCEPTION; - } - return js_dup(pr->u.value); -} - -static int JS_SetPrivateField(JSContext *ctx, JSValueConst obj, - JSValueConst name, JSValue val) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - JSAtom prop; - - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) { - JS_ThrowTypeErrorNotAnObject(ctx); - goto fail; - } - /* safety check */ - if (unlikely(JS_VALUE_GET_TAG(name) != JS_TAG_SYMBOL)) { - JS_ThrowTypeErrorNotASymbol(ctx); - goto fail; - } - prop = js_symbol_to_atom(ctx, name); - p = JS_VALUE_GET_OBJ(obj); - prs = find_own_property(&pr, p, prop); - if (!prs) { - JS_ThrowTypeErrorPrivateNotFound(ctx, prop); - fail: - JS_FreeValue(ctx, val); - return -1; - } - set_value(ctx, &pr->u.value, val); - return 0; -} - -/* add a private brand field to 'home_obj' if not already present and - if obj is != null add a private brand to it */ -static int JS_AddBrand(JSContext *ctx, JSValueConst obj, JSValueConst home_obj) -{ - JSObject *p, *p1; - JSShapeProperty *prs; - JSProperty *pr; - JSValue brand; - JSAtom brand_atom; - - if (unlikely(JS_VALUE_GET_TAG(home_obj) != JS_TAG_OBJECT)) { - JS_ThrowTypeErrorNotAnObject(ctx); - return -1; - } - p = JS_VALUE_GET_OBJ(home_obj); - prs = find_own_property(&pr, p, JS_ATOM_Private_brand); - if (!prs) { - /* if the brand is not present, add it */ - brand = JS_NewSymbolFromAtom(ctx, JS_ATOM_brand, JS_ATOM_TYPE_PRIVATE); - if (JS_IsException(brand)) - return -1; - pr = add_property(ctx, p, JS_ATOM_Private_brand, JS_PROP_C_W_E); - if (!pr) { - JS_FreeValue(ctx, brand); - return -1; - } - pr->u.value = js_dup(brand); - } else { - brand = js_dup(pr->u.value); - } - brand_atom = js_symbol_to_atom(ctx, brand); - - if (JS_IsObject(obj)) { - p1 = JS_VALUE_GET_OBJ(obj); - prs = find_own_property(&pr, p1, brand_atom); - if (unlikely(prs)) { - JS_FreeAtom(ctx, brand_atom); - JS_ThrowTypeError(ctx, "private method is already present"); - return -1; - } - pr = add_property(ctx, p1, brand_atom, JS_PROP_C_W_E); - JS_FreeAtom(ctx, brand_atom); - if (!pr) - return -1; - pr->u.value = JS_UNDEFINED; - } else { - JS_FreeAtom(ctx, brand_atom); - } - - return 0; -} - -/* return a boolean telling if the brand of the home object of 'func' - is present on 'obj' or -1 in case of exception */ -static int JS_CheckBrand(JSContext *ctx, JSValue obj, JSValue func) -{ - JSObject *p, *p1, *home_obj; - JSShapeProperty *prs; - JSProperty *pr; - JSValue brand; - - /* get the home object of 'func' */ - if (unlikely(JS_VALUE_GET_TAG(func) != JS_TAG_OBJECT)) - goto not_obj; - p1 = JS_VALUE_GET_OBJ(func); - if (!js_class_has_bytecode(p1->class_id)) - goto not_obj; - home_obj = p1->u.func.home_object; - if (!home_obj) - goto not_obj; - prs = find_own_property(&pr, home_obj, JS_ATOM_Private_brand); - if (!prs) { - JS_ThrowTypeError(ctx, "expecting private field"); - return -1; - } - brand = pr->u.value; - /* safety check */ - if (unlikely(JS_VALUE_GET_TAG(brand) != JS_TAG_SYMBOL)) - goto not_obj; - - /* get the brand array of 'obj' */ - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) { - not_obj: - JS_ThrowTypeErrorNotAnObject(ctx); - return -1; - } - p = JS_VALUE_GET_OBJ(obj); - prs = find_own_property(&pr, p, js_symbol_to_atom(ctx, brand)); - return (prs != NULL); -} - -static uint32_t js_string_obj_get_length(JSContext *ctx, JSValueConst obj) -{ - JSObject *p; - JSString *p1; - uint32_t len = 0; - - /* This is a class exotic method: obj class_id is JS_CLASS_STRING */ - p = JS_VALUE_GET_OBJ(obj); - if (JS_VALUE_GET_TAG(p->u.object_data) == JS_TAG_STRING) { - p1 = JS_VALUE_GET_STRING(p->u.object_data); - len = p1->len; - } - return len; -} - -static int num_keys_cmp(const void *p1, const void *p2, void *opaque) -{ - JSContext *ctx = opaque; - JSAtom atom1 = ((const JSPropertyEnum *)p1)->atom; - JSAtom atom2 = ((const JSPropertyEnum *)p2)->atom; - uint32_t v1, v2; - bool atom1_is_integer, atom2_is_integer; - - atom1_is_integer = JS_AtomIsArrayIndex(ctx, &v1, atom1); - atom2_is_integer = JS_AtomIsArrayIndex(ctx, &v2, atom2); - assert(atom1_is_integer && atom2_is_integer); - if (v1 < v2) - return -1; - else if (v1 == v2) - return 0; - else - return 1; -} - -static void js_free_prop_enum(JSContext *ctx, JSPropertyEnum *tab, uint32_t len) -{ - uint32_t i; - if (tab) { - for(i = 0; i < len; i++) - JS_FreeAtom(ctx, tab[i].atom); - js_free(ctx, tab); - } -} - -/* return < 0 in case if exception, 0 if OK. ptab and its atoms must - be freed by the user. */ -static int __exception JS_GetOwnPropertyNamesInternal(JSContext *ctx, - JSPropertyEnum **ptab, - uint32_t *plen, - JSObject *p, int flags) -{ - int i, j; - JSShape *sh; - JSShapeProperty *prs; - JSPropertyEnum *tab_atom, *tab_exotic; - JSAtom atom; - uint32_t num_keys_count, str_keys_count, sym_keys_count, atom_count; - uint32_t num_index, str_index, sym_index, exotic_count, exotic_keys_count; - bool is_enumerable, num_sorted; - uint32_t num_key; - JSAtomKindEnum kind; - - /* clear pointer for consistency in case of failure */ - *ptab = NULL; - *plen = 0; - - /* compute the number of returned properties */ - num_keys_count = 0; - str_keys_count = 0; - sym_keys_count = 0; - exotic_keys_count = 0; - exotic_count = 0; - tab_exotic = NULL; - sh = p->shape; - for(i = 0, prs = get_shape_prop(sh); i < sh->prop_count; i++, prs++) { - atom = prs->atom; - if (atom != JS_ATOM_NULL) { - is_enumerable = ((prs->flags & JS_PROP_ENUMERABLE) != 0); - kind = JS_AtomGetKind(ctx, atom); - if ((!(flags & JS_GPN_ENUM_ONLY) || is_enumerable) && - ((flags >> kind) & 1) != 0) { - /* need to raise an exception in case of the module - name space (implicit GetOwnProperty) */ - if (unlikely((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) && - (flags & (JS_GPN_SET_ENUM | JS_GPN_ENUM_ONLY))) { - JSVarRef *var_ref = p->prop[i].u.var_ref; - if (unlikely(JS_IsUninitialized(*var_ref->pvalue))) { - JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return -1; - } - } - if (JS_AtomIsArrayIndex(ctx, &num_key, atom)) { - num_keys_count++; - } else if (kind == JS_ATOM_KIND_STRING) { - str_keys_count++; - } else { - sym_keys_count++; - } - } - } - } - - if (p->is_exotic) { - if (p->fast_array) { - if (flags & JS_GPN_STRING_MASK) { - num_keys_count += p->u.array.count; - } - } else if (p->class_id == JS_CLASS_STRING) { - if (flags & JS_GPN_STRING_MASK) { - num_keys_count += js_string_obj_get_length(ctx, JS_MKPTR(JS_TAG_OBJECT, p)); - } - } else { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em && em->get_own_property_names) { - if (em->get_own_property_names(ctx, &tab_exotic, &exotic_count, - JS_MKPTR(JS_TAG_OBJECT, p))) - return -1; - for(i = 0; i < exotic_count; i++) { - atom = tab_exotic[i].atom; - kind = JS_AtomGetKind(ctx, atom); - if (((flags >> kind) & 1) != 0) { - is_enumerable = false; - if (flags & (JS_GPN_SET_ENUM | JS_GPN_ENUM_ONLY)) { - JSPropertyDescriptor desc; - int res; - /* set the "is_enumerable" field if necessary */ - res = JS_GetOwnPropertyInternal(ctx, &desc, p, atom); - if (res < 0) { - js_free_prop_enum(ctx, tab_exotic, exotic_count); - return -1; - } - if (res) { - is_enumerable = - ((desc.flags & JS_PROP_ENUMERABLE) != 0); - js_free_desc(ctx, &desc); - } - tab_exotic[i].is_enumerable = is_enumerable; - } - if (!(flags & JS_GPN_ENUM_ONLY) || is_enumerable) { - exotic_keys_count++; - } - } - } - } - } - } - - /* fill them */ - - atom_count = num_keys_count + str_keys_count + sym_keys_count + exotic_keys_count; - /* avoid allocating 0 bytes */ - tab_atom = js_malloc(ctx, sizeof(tab_atom[0]) * max_int(atom_count, 1)); - if (!tab_atom) { - js_free_prop_enum(ctx, tab_exotic, exotic_count); - return -1; - } - - num_index = 0; - str_index = num_keys_count; - sym_index = str_index + str_keys_count; - - num_sorted = true; - sh = p->shape; - for(i = 0, prs = get_shape_prop(sh); i < sh->prop_count; i++, prs++) { - atom = prs->atom; - if (atom != JS_ATOM_NULL) { - is_enumerable = ((prs->flags & JS_PROP_ENUMERABLE) != 0); - kind = JS_AtomGetKind(ctx, atom); - if ((!(flags & JS_GPN_ENUM_ONLY) || is_enumerable) && - ((flags >> kind) & 1) != 0) { - if (JS_AtomIsArrayIndex(ctx, &num_key, atom)) { - j = num_index++; - num_sorted = false; - } else if (kind == JS_ATOM_KIND_STRING) { - j = str_index++; - } else { - j = sym_index++; - } - tab_atom[j].atom = JS_DupAtom(ctx, atom); - tab_atom[j].is_enumerable = is_enumerable; - } - } - } - - if (p->is_exotic) { - int len; - if (p->fast_array) { - if (flags & JS_GPN_STRING_MASK) { - len = p->u.array.count; - goto add_array_keys; - } - } else if (p->class_id == JS_CLASS_STRING) { - if (flags & JS_GPN_STRING_MASK) { - len = js_string_obj_get_length(ctx, JS_MKPTR(JS_TAG_OBJECT, p)); - add_array_keys: - for(i = 0; i < len; i++) { - tab_atom[num_index].atom = __JS_AtomFromUInt32(i); - if (tab_atom[num_index].atom == JS_ATOM_NULL) { - js_free_prop_enum(ctx, tab_atom, num_index); - return -1; - } - tab_atom[num_index].is_enumerable = true; - num_index++; - } - } - } else { - /* Note: exotic keys are not reordered and comes after the object own properties. */ - for(i = 0; i < exotic_count; i++) { - atom = tab_exotic[i].atom; - is_enumerable = tab_exotic[i].is_enumerable; - kind = JS_AtomGetKind(ctx, atom); - if ((!(flags & JS_GPN_ENUM_ONLY) || is_enumerable) && - ((flags >> kind) & 1) != 0) { - tab_atom[sym_index].atom = atom; - tab_atom[sym_index].is_enumerable = is_enumerable; - sym_index++; - } else { - JS_FreeAtom(ctx, atom); - } - } - js_free(ctx, tab_exotic); - } - } - - assert(num_index == num_keys_count); - assert(str_index == num_keys_count + str_keys_count); - assert(sym_index == atom_count); - - if (num_keys_count != 0 && !num_sorted) { - rqsort(tab_atom, num_keys_count, sizeof(tab_atom[0]), num_keys_cmp, - ctx); - } - *ptab = tab_atom; - *plen = atom_count; - return 0; -} - -int JS_GetOwnPropertyNames(JSContext *ctx, JSPropertyEnum **ptab, - uint32_t *plen, JSValueConst obj, int flags) -{ - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) { - JS_ThrowTypeErrorNotAnObject(ctx); - return -1; - } - return JS_GetOwnPropertyNamesInternal(ctx, ptab, plen, - JS_VALUE_GET_OBJ(obj), flags); -} - -/* Return -1 if exception, - false if the property does not exist, true if it exists. If true is - returned, the property descriptor 'desc' is filled present. */ -static int JS_GetOwnPropertyInternal(JSContext *ctx, JSPropertyDescriptor *desc, - JSObject *p, JSAtom prop) -{ - JSShapeProperty *prs; - JSProperty *pr; - -retry: - prs = find_own_property(&pr, p, prop); - if (prs) { - if (desc) { - desc->flags = prs->flags & JS_PROP_C_W_E; - desc->getter = JS_UNDEFINED; - desc->setter = JS_UNDEFINED; - desc->value = JS_UNDEFINED; - if (unlikely(prs->flags & JS_PROP_TMASK)) { - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - desc->flags |= JS_PROP_GETSET; - if (pr->u.getset.getter) - desc->getter = js_dup(JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.getter)); - if (pr->u.getset.setter) - desc->setter = js_dup(JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.setter)); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - JSValue val = *pr->u.var_ref->pvalue; - if (unlikely(JS_IsUninitialized(val))) { - JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return -1; - } - desc->value = js_dup(val); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - /* Instantiate property and retry */ - if (JS_AutoInitProperty(ctx, p, prop, pr, prs)) - return -1; - goto retry; - } - } else { - desc->value = js_dup(pr->u.value); - } - } else { - /* for consistency, send the exception even if desc is NULL */ - if (unlikely((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF)) { - if (unlikely(JS_IsUninitialized(*pr->u.var_ref->pvalue))) { - JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return -1; - } - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - /* nothing to do: delay instantiation until actual value and/or attributes are read */ - } - } - return true; - } - if (p->is_exotic) { - if (p->fast_array) { - /* specific case for fast arrays */ - if (__JS_AtomIsTaggedInt(prop)) { - uint32_t idx; - idx = __JS_AtomToUInt32(prop); - if (idx < p->u.array.count) { - if (desc) { - desc->flags = JS_PROP_WRITABLE | JS_PROP_ENUMERABLE | - JS_PROP_CONFIGURABLE; - desc->getter = JS_UNDEFINED; - desc->setter = JS_UNDEFINED; - desc->value = JS_GetPropertyUint32(ctx, JS_MKPTR(JS_TAG_OBJECT, p), idx); - } - return true; - } - } - } else { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em && em->get_own_property) { - return em->get_own_property(ctx, desc, - JS_MKPTR(JS_TAG_OBJECT, p), prop); - } - } - } - return false; -} - -int JS_GetOwnProperty(JSContext *ctx, JSPropertyDescriptor *desc, - JSValueConst obj, JSAtom prop) -{ - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) { - JS_ThrowTypeErrorNotAnObject(ctx); - return -1; - } - return JS_GetOwnPropertyInternal(ctx, desc, JS_VALUE_GET_OBJ(obj), prop); -} - -void JS_FreePropertyEnum(JSContext *ctx, JSPropertyEnum *tab, - uint32_t len) -{ - js_free_prop_enum(ctx, tab, len); -} - -/* return -1 if exception (Proxy object only) or true/false */ -int JS_IsExtensible(JSContext *ctx, JSValueConst obj) -{ - JSObject *p; - - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) - return false; - p = JS_VALUE_GET_OBJ(obj); - if (unlikely(p->class_id == JS_CLASS_PROXY)) - return js_proxy_isExtensible(ctx, obj); - else - return p->extensible; -} - -/* return -1 if exception (Proxy object only) or true/false */ -int JS_PreventExtensions(JSContext *ctx, JSValueConst obj) -{ - JSObject *p; - - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) - return false; - p = JS_VALUE_GET_OBJ(obj); - if (unlikely(p->class_id == JS_CLASS_PROXY)) - return js_proxy_preventExtensions(ctx, obj); - p->extensible = false; - return true; -} - -/* return -1 if exception otherwise true or false */ -int JS_HasProperty(JSContext *ctx, JSValueConst obj, JSAtom prop) -{ - JSObject *p; - int ret; - JSValue obj1; - - if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) - return false; - p = JS_VALUE_GET_OBJ(obj); - for(;;) { - if (p->is_exotic) { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em && em->has_property) { - /* has_property can free the prototype */ - obj1 = js_dup(JS_MKPTR(JS_TAG_OBJECT, p)); - ret = em->has_property(ctx, obj1, prop); - JS_FreeValue(ctx, obj1); - return ret; - } - } - /* JS_GetOwnPropertyInternal can free the prototype */ - js_dup(JS_MKPTR(JS_TAG_OBJECT, p)); - ret = JS_GetOwnPropertyInternal(ctx, NULL, p, prop); - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, p)); - if (ret != 0) - return ret; - if (is_typed_array(p->class_id)) { - ret = JS_AtomIsNumericIndex(ctx, prop); - if (ret != 0) { - if (ret < 0) - return -1; - return false; - } - } - p = p->shape->proto; - if (!p) - break; - } - return false; -} - -/* val must be a symbol */ -static JSAtom js_symbol_to_atom(JSContext *ctx, JSValueConst val) -{ - JSAtomStruct *p = JS_VALUE_GET_PTR(val); - return js_get_atom_index(ctx->rt, p); -} - -/* return JS_ATOM_NULL in case of exception */ -static JSAtom JS_ValueToAtomInternal(JSContext *ctx, JSValueConst val, - int flags) -{ - JSAtom atom; - uint32_t tag; - tag = JS_VALUE_GET_TAG(val); - if (tag == JS_TAG_INT && - (uint32_t)JS_VALUE_GET_INT(val) <= JS_ATOM_MAX_INT) { - /* fast path for integer values */ - atom = __JS_AtomFromUInt32(JS_VALUE_GET_INT(val)); - } else if (tag == JS_TAG_SYMBOL) { - JSAtomStruct *p = JS_VALUE_GET_PTR(val); - atom = JS_DupAtom(ctx, js_get_atom_index(ctx->rt, p)); - } else { - JSValue str; - str = JS_ToPropertyKeyInternal(ctx, val, flags); - if (JS_IsException(str)) - return JS_ATOM_NULL; - if (JS_VALUE_GET_TAG(str) == JS_TAG_SYMBOL) { - atom = js_symbol_to_atom(ctx, str); - } else { - atom = JS_NewAtomStr(ctx, JS_VALUE_GET_STRING(str)); - } - } - return atom; -} - -JSAtom JS_ValueToAtom(JSContext *ctx, JSValueConst val) -{ - return JS_ValueToAtomInternal(ctx, val, /*flags*/0); -} - -static bool js_get_fast_array_element(JSContext *ctx, JSObject *p, - uint32_t idx, JSValue *pval) -{ - switch(p->class_id) { - case JS_CLASS_ARRAY: - case JS_CLASS_ARGUMENTS: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_dup(p->u.array.u.values[idx]); - return true; - case JS_CLASS_INT8_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_int32(p->u.array.u.int8_ptr[idx]); - return true; - case JS_CLASS_UINT8C_ARRAY: - case JS_CLASS_UINT8_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_int32(p->u.array.u.uint8_ptr[idx]); - return true; - case JS_CLASS_INT16_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_int32(p->u.array.u.int16_ptr[idx]); - return true; - case JS_CLASS_UINT16_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_int32(p->u.array.u.uint16_ptr[idx]); - return true; - case JS_CLASS_INT32_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_int32(p->u.array.u.int32_ptr[idx]); - return true; - case JS_CLASS_UINT32_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_uint32(p->u.array.u.uint32_ptr[idx]); - return true; - case JS_CLASS_BIG_INT64_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = JS_NewBigInt64(ctx, p->u.array.u.int64_ptr[idx]); - return true; - case JS_CLASS_BIG_UINT64_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = JS_NewBigUint64(ctx, p->u.array.u.uint64_ptr[idx]); - return true; - case JS_CLASS_FLOAT16_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_float64(fromfp16(p->u.array.u.fp16_ptr[idx])); - return true; - case JS_CLASS_FLOAT32_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_float64(p->u.array.u.float_ptr[idx]); - return true; - case JS_CLASS_FLOAT64_ARRAY: - if (unlikely(idx >= p->u.array.count)) return false; - *pval = js_float64(p->u.array.u.double_ptr[idx]); - return true; - default: - return false; - } -} - -static JSValue JS_GetPropertyValue(JSContext *ctx, JSValueConst this_obj, - JSValue prop) -{ - JSAtom atom; - JSValue ret; - uint32_t tag; - - tag = JS_VALUE_GET_TAG(this_obj); - if (likely(tag == JS_TAG_OBJECT)) { - if (JS_VALUE_GET_TAG(prop) == JS_TAG_INT) { - JSObject *p = JS_VALUE_GET_OBJ(this_obj); - uint32_t idx = JS_VALUE_GET_INT(prop); - JSValue val; - /* fast path for array and typed array access */ - if (js_get_fast_array_element(ctx, p, idx, &val)) - return val; - } - } else if (unlikely(tag == JS_TAG_NULL || tag == JS_TAG_UNDEFINED)) { - // per spec: not allowed to call ToPropertyKey before ToObject - // so we must ensure to not invoke JS anything that's observable - // from JS code - atom = JS_ValueToAtomInternal(ctx, prop, JS_TO_STRING_NO_SIDE_EFFECTS); - JS_FreeValue(ctx, prop); - if (unlikely(atom == JS_ATOM_NULL)) - return JS_EXCEPTION; - if (tag == JS_TAG_NULL) { - JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of null (reading '%s')", atom); - } else { - JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of undefined (reading '%s')", atom); - } - JS_FreeAtom(ctx, atom); - return JS_EXCEPTION; - } - atom = JS_ValueToAtom(ctx, prop); - JS_FreeValue(ctx, prop); - if (unlikely(atom == JS_ATOM_NULL)) - return JS_EXCEPTION; - ret = JS_GetProperty(ctx, this_obj, atom); - JS_FreeAtom(ctx, atom); - return ret; -} - -JSValue JS_GetPropertyUint32(JSContext *ctx, JSValueConst this_obj, - uint32_t idx) -{ - return JS_GetPropertyInt64(ctx, this_obj, idx); -} - -/* Check if an object has a generalized numeric property. Return value: - -1 for exception, *pval set to JS_EXCEPTION - true if property exists, stored into *pval, - false if property does not exist. *pval set to JS_UNDEFINED. - */ -static int JS_TryGetPropertyInt64(JSContext *ctx, JSValueConst obj, int64_t idx, JSValue *pval) -{ - JSValue val; - JSAtom prop; - int present; - - if (likely(JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT && - (uint64_t)idx <= INT32_MAX)) { - /* fast path for array and typed array access */ - JSObject *p = JS_VALUE_GET_OBJ(obj); - if (js_get_fast_array_element(ctx, p, idx, pval)) - return true; - } - val = JS_EXCEPTION; - present = -1; - prop = JS_NewAtomInt64(ctx, idx); - if (likely(prop != JS_ATOM_NULL)) { - present = JS_HasProperty(ctx, obj, prop); - if (present > 0) { - val = JS_GetProperty(ctx, obj, prop); - if (unlikely(JS_IsException(val))) - present = -1; - } else if (present == false) { - val = JS_UNDEFINED; - } - JS_FreeAtom(ctx, prop); - } - *pval = val; - return present; -} - -JSValue JS_GetPropertyInt64(JSContext *ctx, JSValueConst obj, int64_t idx) -{ - JSAtom prop; - JSValue val; - - if (likely(JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT && - (uint64_t)idx <= INT32_MAX)) { - /* fast path for array and typed array access */ - JSObject *p = JS_VALUE_GET_OBJ(obj); - if (js_get_fast_array_element(ctx, p, idx, &val)) - return val; - } - prop = JS_NewAtomInt64(ctx, idx); - if (prop == JS_ATOM_NULL) - return JS_EXCEPTION; - - val = JS_GetProperty(ctx, obj, prop); - JS_FreeAtom(ctx, prop); - return val; -} - -/* `prop` may be pure ASCII or UTF-8 encoded */ -JSValue JS_GetPropertyStr(JSContext *ctx, JSValueConst this_obj, - const char *prop) -{ - JSAtom atom; - JSValue ret; - atom = JS_NewAtom(ctx, prop); - if (atom == JS_ATOM_NULL) - return JS_EXCEPTION; - ret = JS_GetProperty(ctx, this_obj, atom); - JS_FreeAtom(ctx, atom); - return ret; -} - -/* Note: the property value is not initialized. Return NULL if memory - error. */ -static JSProperty *add_property(JSContext *ctx, - JSObject *p, JSAtom prop, int prop_flags) -{ - JSShape *sh, *new_sh; - - sh = p->shape; - if (sh->is_hashed) { - /* try to find an existing shape */ - new_sh = find_hashed_shape_prop(ctx->rt, sh, prop, prop_flags); - if (new_sh) { - /* matching shape found: use it */ - /* the property array may need to be resized */ - if (new_sh->prop_size != sh->prop_size) { - JSProperty *new_prop; - new_prop = js_realloc(ctx, p->prop, sizeof(p->prop[0]) * - new_sh->prop_size); - if (!new_prop) - return NULL; - p->prop = new_prop; - } - p->shape = js_dup_shape(new_sh); - js_free_shape(ctx->rt, sh); - return &p->prop[new_sh->prop_count - 1]; - } else if (sh->header.ref_count != 1) { - /* if the shape is shared, clone it */ - new_sh = js_clone_shape(ctx, sh); - if (!new_sh) - return NULL; - /* hash the cloned shape */ - new_sh->is_hashed = true; - js_shape_hash_link(ctx->rt, new_sh); - js_free_shape(ctx->rt, p->shape); - p->shape = new_sh; - } - } - assert(p->shape->header.ref_count == 1); - if (add_shape_property(ctx, &p->shape, p, prop, prop_flags)) - return NULL; - return &p->prop[p->shape->prop_count - 1]; -} - -/* can be called on Array or Arguments objects. return < 0 if - memory alloc error. */ -static no_inline __exception int convert_fast_array_to_array(JSContext *ctx, - JSObject *p) -{ - JSProperty *pr; - JSShape *sh; - JSValue *tab; - uint32_t i, len, new_count; - - if (js_shape_prepare_update(ctx, p, NULL)) - return -1; - len = p->u.array.count; - /* resize the properties once to simplify the error handling */ - sh = p->shape; - new_count = sh->prop_count + len; - if (new_count > sh->prop_size) { - if (resize_properties(ctx, &p->shape, p, new_count)) - return -1; - } - - tab = p->u.array.u.values; - for(i = 0; i < len; i++) { - /* add_property cannot fail here but - __JS_AtomFromUInt32(i) fails for i > INT32_MAX */ - pr = add_property(ctx, p, __JS_AtomFromUInt32(i), JS_PROP_C_W_E); - pr->u.value = *tab++; - } - js_free(ctx, p->u.array.u.values); - p->u.array.count = 0; - p->u.array.u.values = NULL; /* fail safe */ - p->u.array.u1.size = 0; - p->fast_array = 0; - return 0; -} - -static int delete_property(JSContext *ctx, JSObject *p, JSAtom atom) -{ - JSShape *sh; - JSShapeProperty *pr, *lpr, *prop; - JSProperty *pr1; - uint32_t lpr_idx; - intptr_t h, h1; - - redo: - sh = p->shape; - h1 = atom & sh->prop_hash_mask; - h = prop_hash_end(sh)[-h1 - 1]; - prop = get_shape_prop(sh); - lpr = NULL; - lpr_idx = 0; /* prevent warning */ - while (h != 0) { - pr = &prop[h - 1]; - if (likely(pr->atom == atom)) { - /* found ! */ - if (!(pr->flags & JS_PROP_CONFIGURABLE)) - return false; - /* realloc the shape if needed */ - if (lpr) - lpr_idx = lpr - get_shape_prop(sh); - if (js_shape_prepare_update(ctx, p, &pr)) - return -1; - sh = p->shape; - /* remove property */ - if (lpr) { - lpr = get_shape_prop(sh) + lpr_idx; - lpr->hash_next = pr->hash_next; - } else { - prop_hash_end(sh)[-h1 - 1] = pr->hash_next; - } - sh->deleted_prop_count++; - /* free the entry */ - pr1 = &p->prop[h - 1]; - free_property(ctx->rt, pr1, pr->flags); - JS_FreeAtom(ctx, pr->atom); - /* put default values */ - pr->flags = 0; - pr->atom = JS_ATOM_NULL; - pr1->u.value = JS_UNDEFINED; - - /* compact the properties if too many deleted properties */ - if (sh->deleted_prop_count >= 8 && - sh->deleted_prop_count >= ((unsigned)sh->prop_count / 2)) { - compact_properties(ctx, p); - } - return true; - } - lpr = pr; - h = pr->hash_next; - } - - if (p->is_exotic) { - if (p->fast_array) { - uint32_t idx; - if (JS_AtomIsArrayIndex(ctx, &idx, atom) && - idx < p->u.array.count) { - if (p->class_id == JS_CLASS_ARRAY || - p->class_id == JS_CLASS_ARGUMENTS) { - /* Special case deleting the last element of a fast Array */ - if (idx == p->u.array.count - 1) { - JS_FreeValue(ctx, p->u.array.u.values[idx]); - p->u.array.count = idx; - return true; - } - if (convert_fast_array_to_array(ctx, p)) - return -1; - goto redo; - } else { - return false; - } - } - } else { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em && em->delete_property) { - return em->delete_property(ctx, JS_MKPTR(JS_TAG_OBJECT, p), atom); - } - } - } - /* not found */ - return true; -} - -static int call_setter(JSContext *ctx, JSObject *setter, - JSValueConst this_obj, JSValue val, int flags) -{ - JSValue ret, func; - if (likely(setter)) { - func = JS_MKPTR(JS_TAG_OBJECT, setter); - /* Note: the field could be removed in the setter */ - func = js_dup(func); - ret = JS_CallFree(ctx, func, this_obj, 1, vc(&val)); - JS_FreeValue(ctx, val); - if (JS_IsException(ret)) - return -1; - JS_FreeValue(ctx, ret); - return true; - } else { - JS_FreeValue(ctx, val); - if ((flags & JS_PROP_THROW) || - ((flags & JS_PROP_THROW_STRICT) && is_strict_mode(ctx))) { - JS_ThrowTypeError(ctx, "no setter for property"); - return -1; - } - return false; - } -} - -/* set the array length and remove the array elements if necessary. */ -static int set_array_length(JSContext *ctx, JSObject *p, JSValue val, - int flags) -{ - uint32_t len, idx, cur_len; - int i, ret; - - /* Note: this call can reallocate the properties of 'p' */ - ret = JS_ToArrayLengthFree(ctx, &len, val, false); - if (ret) - return -1; - /* JS_ToArrayLengthFree() must be done before the read-only test */ - if (unlikely(!(p->shape->prop[0].flags & JS_PROP_WRITABLE))) - return JS_ThrowTypeErrorReadOnly(ctx, flags, JS_ATOM_length); - - if (likely(p->fast_array)) { - uint32_t old_len = p->u.array.count; - if (len < old_len) { - for(i = len; i < old_len; i++) { - JS_FreeValue(ctx, p->u.array.u.values[i]); - } - p->u.array.count = len; - } - p->prop[0].u.value = js_uint32(len); - } else { - /* Note: length is always a uint32 because the object is an - array */ - JS_ToUint32(ctx, &cur_len, p->prop[0].u.value); - if (len < cur_len) { - uint32_t d; - JSShape *sh; - JSShapeProperty *pr; - - d = cur_len - len; - sh = p->shape; - if (d <= sh->prop_count) { - JSAtom atom; - - /* faster to iterate */ - while (cur_len > len) { - atom = JS_NewAtomUInt32(ctx, cur_len - 1); - ret = delete_property(ctx, p, atom); - JS_FreeAtom(ctx, atom); - if (unlikely(!ret)) { - /* unlikely case: property is not - configurable */ - break; - } - cur_len--; - } - } else { - /* faster to iterate thru all the properties. Need two - passes in case one of the property is not - configurable */ - cur_len = len; - for(i = 0, pr = get_shape_prop(sh); i < sh->prop_count; - i++, pr++) { - if (pr->atom != JS_ATOM_NULL && - JS_AtomIsArrayIndex(ctx, &idx, pr->atom)) { - if (idx >= cur_len && - !(pr->flags & JS_PROP_CONFIGURABLE)) { - cur_len = idx + 1; - } - } - } - - for(i = 0, pr = get_shape_prop(sh); i < sh->prop_count; - i++, pr++) { - if (pr->atom != JS_ATOM_NULL && - JS_AtomIsArrayIndex(ctx, &idx, pr->atom)) { - if (idx >= cur_len) { - /* remove the property */ - delete_property(ctx, p, pr->atom); - /* WARNING: the shape may have been modified */ - sh = p->shape; - pr = get_shape_prop(sh) + i; - } - } - } - } - } else { - cur_len = len; - } - set_value(ctx, &p->prop[0].u.value, js_uint32(cur_len)); - if (unlikely(cur_len > len)) { - return JS_ThrowTypeErrorOrFalse(ctx, flags, "not configurable"); - } - } - return true; -} - -/* return -1 if exception */ -static int expand_fast_array(JSContext *ctx, JSObject *p, uint32_t new_len) -{ - uint32_t new_size; - size_t slack; - JSValue *new_array_prop; - /* XXX: potential arithmetic overflow */ - new_size = max_int(new_len, p->u.array.u1.size * 3 / 2); - new_array_prop = js_realloc2(ctx, p->u.array.u.values, sizeof(JSValue) * new_size, &slack); - if (!new_array_prop) - return -1; - new_size += slack / sizeof(*new_array_prop); - p->u.array.u.values = new_array_prop; - p->u.array.u1.size = new_size; - return 0; -} - -/* Preconditions: 'p' must be of class JS_CLASS_ARRAY, p->fast_array = - true and p->extensible = true */ -static int add_fast_array_element(JSContext *ctx, JSObject *p, - JSValue val, int flags) -{ - uint32_t new_len, array_len; - /* extend the array by one */ - /* XXX: convert to slow array if new_len > 2^31-1 elements */ - new_len = p->u.array.count + 1; - /* update the length if necessary. We assume that if the length is - not an integer, then if it >= 2^31. */ - if (likely(JS_VALUE_GET_TAG(p->prop[0].u.value) == JS_TAG_INT)) { - array_len = JS_VALUE_GET_INT(p->prop[0].u.value); - if (new_len > array_len) { - if (unlikely(!(get_shape_prop(p->shape)->flags & JS_PROP_WRITABLE))) { - JS_FreeValue(ctx, val); - return JS_ThrowTypeErrorReadOnly(ctx, flags, JS_ATOM_length); - } - p->prop[0].u.value = js_int32(new_len); - } - } - if (unlikely(new_len > p->u.array.u1.size)) { - if (expand_fast_array(ctx, p, new_len)) { - JS_FreeValue(ctx, val); - return -1; - } - } - p->u.array.u.values[new_len - 1] = val; - p->u.array.count = new_len; - return true; -} - -static void js_free_desc(JSContext *ctx, JSPropertyDescriptor *desc) -{ - JS_FreeValue(ctx, desc->getter); - JS_FreeValue(ctx, desc->setter); - JS_FreeValue(ctx, desc->value); -} - -/* return -1 in case of exception or true or false. Warning: 'val' is - freed by the function. 'flags' is a bitmask of JS_PROP_NO_ADD, - JS_PROP_THROW or JS_PROP_THROW_STRICT. If JS_PROP_NO_ADD is set, - the new property is not added and an error is raised. - 'obj' must be an object when obj != this_obj. - */ -static int JS_SetPropertyInternal2(JSContext *ctx, JSValueConst obj, JSAtom prop, - JSValue val, JSValueConst this_obj, int flags) -{ - JSObject *p, *p1; - JSShapeProperty *prs; - JSProperty *pr; - JSPropertyDescriptor desc; - int ret; - - switch(JS_VALUE_GET_TAG(this_obj)) { - case JS_TAG_NULL: - JS_ThrowTypeErrorAtom(ctx, "cannot set property '%s' of null", prop); - goto fail; - case JS_TAG_UNDEFINED: - JS_ThrowTypeErrorAtom(ctx, "cannot set property '%s' of undefined", prop); - goto fail; - case JS_TAG_OBJECT: - p = JS_VALUE_GET_OBJ(this_obj); - p1 = JS_VALUE_GET_OBJ(obj); - if (p == p1) - break; - goto retry2; - default: - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - obj = JS_GetPrototypePrimitive(ctx, obj); - p = NULL; - p1 = JS_VALUE_GET_OBJ(obj); - goto prototype_lookup; - } - -retry: - prs = find_own_property(&pr, p1, prop); - if (prs) { - if (likely((prs->flags & (JS_PROP_TMASK | JS_PROP_WRITABLE | - JS_PROP_LENGTH)) == JS_PROP_WRITABLE)) { - /* fast case */ - set_value(ctx, &pr->u.value, val); - return true; - } else if (prs->flags & JS_PROP_LENGTH) { - assert(p->class_id == JS_CLASS_ARRAY); - assert(prop == JS_ATOM_length); - return set_array_length(ctx, p, val, flags); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - return call_setter(ctx, pr->u.getset.setter, this_obj, val, flags); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - /* JS_PROP_WRITABLE is always true for variable - references, but they are write protected in module name - spaces. */ - if (p->class_id == JS_CLASS_MODULE_NS) - goto read_only_prop; - set_value(ctx, pr->u.var_ref->pvalue, val); - return true; - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - /* Instantiate property and retry (potentially useless) */ - if (JS_AutoInitProperty(ctx, p, prop, pr, prs)) - goto fail; - goto retry; - } else { - goto read_only_prop; - } - } - - for(;;) { - if (p1->is_exotic) { - if (p1->fast_array) { - if (__JS_AtomIsTaggedInt(prop)) { - uint32_t idx = __JS_AtomToUInt32(prop); - if (idx < p1->u.array.count) { - if (unlikely(p == p1)) - return JS_SetPropertyValue(ctx, this_obj, js_int32(idx), val, flags); - else - break; - } else if (is_typed_array(p1->class_id)) { - goto typed_array_oob; - } - } else if (is_typed_array(p1->class_id)) { - ret = JS_AtomIsNumericIndex(ctx, prop); - if (ret != 0) { - if (ret < 0) - goto fail; - typed_array_oob: - // per spec: evaluate value for side effects - if (p1->class_id == JS_CLASS_BIG_INT64_ARRAY || - p1->class_id == JS_CLASS_BIG_UINT64_ARRAY) { - int64_t v; - if (JS_ToBigInt64Free(ctx, &v, val)) - return -1; - } else { - val = JS_ToNumberFree(ctx, val); - JS_FreeValue(ctx, val); - if (JS_IsException(val)) - return -1; - } - return true; - } - } - } else { - const JSClassExoticMethods *em = ctx->rt->class_array[p1->class_id].exotic; - if (em) { - JSValue obj1; - if (em->set_property) { - /* set_property can free the prototype */ - obj1 = js_dup(JS_MKPTR(JS_TAG_OBJECT, p1)); - ret = em->set_property(ctx, obj1, prop, - val, this_obj, flags); - JS_FreeValue(ctx, obj1); - JS_FreeValue(ctx, val); - return ret; - } - if (em->get_own_property) { - /* get_own_property can free the prototype */ - obj1 = js_dup(JS_MKPTR(JS_TAG_OBJECT, p1)); - ret = em->get_own_property(ctx, &desc, - obj1, prop); - JS_FreeValue(ctx, obj1); - if (ret < 0) - goto fail; - if (ret) { - if (desc.flags & JS_PROP_GETSET) { - JSObject *setter; - if (JS_IsUndefined(desc.setter)) - setter = NULL; - else - setter = JS_VALUE_GET_OBJ(desc.setter); - ret = call_setter(ctx, setter, this_obj, val, flags); - JS_FreeValue(ctx, desc.getter); - JS_FreeValue(ctx, desc.setter); - return ret; - } else { - JS_FreeValue(ctx, desc.value); - if (!(desc.flags & JS_PROP_WRITABLE)) - goto read_only_prop; - if (likely(p == p1)) { - ret = JS_DefineProperty(ctx, this_obj, prop, val, - JS_UNDEFINED, JS_UNDEFINED, - JS_PROP_HAS_VALUE); - JS_FreeValue(ctx, val); - return ret; - } else { - break; - } - } - } - } - } - } - } - p1 = p1->shape->proto; - prototype_lookup: - if (!p1) - break; - - retry2: - prs = find_own_property(&pr, p1, prop); - if (prs) { - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - return call_setter(ctx, pr->u.getset.setter, this_obj, val, flags); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - /* Instantiate property and retry (potentially useless) */ - if (JS_AutoInitProperty(ctx, p1, prop, pr, prs)) - return -1; - goto retry2; - } else if (!(prs->flags & JS_PROP_WRITABLE)) { - goto read_only_prop; - } else { - break; - } - } - } - - if (unlikely(flags & JS_PROP_NO_ADD)) { - JS_ThrowReferenceErrorNotDefined(ctx, prop); - goto fail; - } - - if (unlikely(!p)) { - ret = JS_ThrowTypeErrorOrFalse(ctx, flags, "not an object"); - goto done; - } - - if (unlikely(!p->extensible)) { - ret = JS_ThrowTypeErrorOrFalse(ctx, flags, "object is not extensible"); - goto done; - } - - if (p == JS_VALUE_GET_OBJ(obj)) { - if (p->is_exotic) { - if (p->class_id == JS_CLASS_ARRAY && p->fast_array && - __JS_AtomIsTaggedInt(prop)) { - uint32_t idx = __JS_AtomToUInt32(prop); - if (idx == p->u.array.count) { - /* fast case */ - return add_fast_array_element(ctx, p, val, flags); - } - } - goto generic_create_prop; - } else { - pr = add_property(ctx, p, prop, JS_PROP_C_W_E); - if (!pr) - goto fail; - pr->u.value = val; - return true; - } - } - - // TODO(bnoordhuis) return JSProperty slot and update in place - // when plain property (not is_exotic/setter/etc.) to avoid - // calling find_own_property() thrice? - ret = JS_GetOwnPropertyInternal(ctx, &desc, p, prop); - if (ret < 0) - goto fail; - - if (ret) { - JS_FreeValue(ctx, desc.value); - if (desc.flags & JS_PROP_GETSET) { - JS_FreeValue(ctx, desc.getter); - JS_FreeValue(ctx, desc.setter); - ret = JS_ThrowTypeErrorOrFalse(ctx, flags, "setter is forbidden"); - goto done; - } else if (!(desc.flags & JS_PROP_WRITABLE) || - p->class_id == JS_CLASS_MODULE_NS) { - read_only_prop: - ret = JS_ThrowTypeErrorReadOnly(ctx, flags, prop); - goto done; - } - ret = JS_DefineProperty(ctx, this_obj, prop, val, - JS_UNDEFINED, JS_UNDEFINED, - JS_PROP_HAS_VALUE); - } else { - generic_create_prop: - ret = JS_CreateProperty(ctx, p, prop, val, JS_UNDEFINED, JS_UNDEFINED, - flags | - JS_PROP_HAS_VALUE | - JS_PROP_HAS_ENUMERABLE | - JS_PROP_HAS_WRITABLE | - JS_PROP_HAS_CONFIGURABLE | - JS_PROP_C_W_E); - } - -done: - JS_FreeValue(ctx, val); - return ret; -fail: - JS_FreeValue(ctx, val); - return -1; -} - -static int JS_SetPropertyInternal(JSContext *ctx, JSValueConst obj, JSAtom prop, - JSValue val, int flags) -{ - return JS_SetPropertyInternal2(ctx, obj, prop, val, obj, flags); -} - -int JS_SetProperty(JSContext *ctx, JSValueConst this_obj, JSAtom prop, JSValue val) -{ - return JS_SetPropertyInternal(ctx, this_obj, prop, val, JS_PROP_THROW); -} - -/* flags can be JS_PROP_THROW or JS_PROP_THROW_STRICT */ -static int JS_SetPropertyValue(JSContext *ctx, JSValueConst this_obj, - JSValue prop, JSValue val, int flags) -{ - if (likely(JS_VALUE_GET_TAG(this_obj) == JS_TAG_OBJECT && - JS_VALUE_GET_TAG(prop) == JS_TAG_INT)) { - JSObject *p; - uint32_t idx; - double d; - int32_t v; - - /* fast path for array access */ - p = JS_VALUE_GET_OBJ(this_obj); - idx = JS_VALUE_GET_INT(prop); - switch(p->class_id) { - case JS_CLASS_ARRAY: - if (unlikely(idx >= (uint32_t)p->u.array.count)) { - JSObject *p1; - JSShape *sh1; - - /* fast path to add an element to the array */ - if (idx != (uint32_t)p->u.array.count || - !p->fast_array || !p->extensible) - goto slow_path; - /* check if prototype chain has a numeric property */ - p1 = p->shape->proto; - while (p1 != NULL) { - sh1 = p1->shape; - if (p1->class_id == JS_CLASS_ARRAY) { - if (unlikely(!p1->fast_array)) - goto slow_path; - } else if (p1->class_id == JS_CLASS_OBJECT) { - if (unlikely(sh1->has_small_array_index)) - goto slow_path; - } else { - goto slow_path; - } - p1 = sh1->proto; - } - /* add element */ - return add_fast_array_element(ctx, p, val, flags); - } - set_value(ctx, &p->u.array.u.values[idx], val); - break; - case JS_CLASS_ARGUMENTS: - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto slow_path; - set_value(ctx, &p->u.array.u.values[idx], val); - break; - case JS_CLASS_UINT8C_ARRAY: - if (JS_ToUint8ClampFree(ctx, &v, val)) - goto ta_cvt_fail; - /* Note: the conversion can detach the typed array, so the - array bound check must be done after */ - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.uint8_ptr[idx] = v; - break; - case JS_CLASS_INT8_ARRAY: - case JS_CLASS_UINT8_ARRAY: - if (JS_ToInt32Free(ctx, &v, val)) - goto ta_cvt_fail; - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.uint8_ptr[idx] = v; - break; - case JS_CLASS_INT16_ARRAY: - case JS_CLASS_UINT16_ARRAY: - if (JS_ToInt32Free(ctx, &v, val)) - goto ta_cvt_fail; - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.uint16_ptr[idx] = v; - break; - case JS_CLASS_INT32_ARRAY: - case JS_CLASS_UINT32_ARRAY: - if (JS_ToInt32Free(ctx, &v, val)) - goto ta_cvt_fail; - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.uint32_ptr[idx] = v; - break; - case JS_CLASS_BIG_INT64_ARRAY: - case JS_CLASS_BIG_UINT64_ARRAY: - /* XXX: need specific conversion function */ - { - int64_t v; - if (JS_ToBigInt64Free(ctx, &v, val)) - goto ta_cvt_fail; - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.uint64_ptr[idx] = v; - } - break; - case JS_CLASS_FLOAT16_ARRAY: - if (JS_ToFloat64Free(ctx, &d, val)) - goto ta_cvt_fail; - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.fp16_ptr[idx] = tofp16(d); - break; - case JS_CLASS_FLOAT32_ARRAY: - if (JS_ToFloat64Free(ctx, &d, val)) - goto ta_cvt_fail; - if (unlikely(idx >= (uint32_t)p->u.array.count)) - goto ta_out_of_bound; - p->u.array.u.float_ptr[idx] = d; - break; - case JS_CLASS_FLOAT64_ARRAY: - if (JS_ToFloat64Free(ctx, &d, val)) { - ta_cvt_fail: - if (flags & JS_PROP_REFLECT_DEFINE_PROPERTY) { - JS_FreeValue(ctx, JS_GetException(ctx)); - return false; - } - return -1; - } - if (unlikely(idx >= (uint32_t)p->u.array.count)) { - ta_out_of_bound: - if (typed_array_is_oob(p)) - if (flags & JS_PROP_DEFINE_PROPERTY) - return JS_ThrowTypeErrorOrFalse(ctx, flags, "out-of-bound numeric index"); - return true; // per spec: no OOB exception - } - p->u.array.u.double_ptr[idx] = d; - break; - default: - goto slow_path; - } - return true; - } else { - JSAtom atom; - int ret; - slow_path: - atom = JS_ValueToAtom(ctx, prop); - JS_FreeValue(ctx, prop); - if (unlikely(atom == JS_ATOM_NULL)) { - JS_FreeValue(ctx, val); - return -1; - } - ret = JS_SetPropertyInternal(ctx, this_obj, atom, val, flags); - JS_FreeAtom(ctx, atom); - return ret; - } -} - -int JS_SetPropertyUint32(JSContext *ctx, JSValueConst this_obj, - uint32_t idx, JSValue val) -{ - return JS_SetPropertyValue(ctx, this_obj, js_uint32(idx), val, - JS_PROP_THROW); -} - -int JS_SetPropertyInt64(JSContext *ctx, JSValueConst this_obj, - int64_t idx, JSValue val) -{ - JSAtom prop; - int res; - - if ((uint64_t)idx <= INT32_MAX) { - /* fast path for fast arrays */ - return JS_SetPropertyValue(ctx, this_obj, js_int32(idx), val, - JS_PROP_THROW); - } - prop = JS_NewAtomInt64(ctx, idx); - if (prop == JS_ATOM_NULL) { - JS_FreeValue(ctx, val); - return -1; - } - res = JS_SetProperty(ctx, this_obj, prop, val); - JS_FreeAtom(ctx, prop); - return res; -} - -/* `prop` may be pure ASCII or UTF-8 encoded */ -int JS_SetPropertyStr(JSContext *ctx, JSValueConst this_obj, - const char *prop, JSValue val) -{ - JSAtom atom; - int ret; - atom = JS_NewAtom(ctx, prop); - if (atom == JS_ATOM_NULL) { - JS_FreeValue(ctx, val); - return -1; - } - ret = JS_SetPropertyInternal(ctx, this_obj, atom, val, JS_PROP_THROW); - JS_FreeAtom(ctx, atom); - return ret; -} - -/* compute the property flags. For each flag: (JS_PROP_HAS_x forces - it, otherwise def_flags is used) - Note: makes assumption about the bit pattern of the flags -*/ -static int get_prop_flags(int flags, int def_flags) -{ - int mask; - mask = (flags >> JS_PROP_HAS_SHIFT) & JS_PROP_C_W_E; - return (flags & mask) | (def_flags & ~mask); -} - -static int JS_CreateProperty(JSContext *ctx, JSObject *p, - JSAtom prop, JSValueConst val, - JSValueConst getter, JSValueConst setter, - int flags) -{ - JSProperty *pr; - int ret, prop_flags; - - /* add a new property or modify an existing exotic one */ - if (p->is_exotic) { - if (p->class_id == JS_CLASS_ARRAY) { - uint32_t idx, len; - - if (p->fast_array) { - if (__JS_AtomIsTaggedInt(prop)) { - idx = __JS_AtomToUInt32(prop); - if (idx == p->u.array.count) { - if (!p->extensible) - goto not_extensible; - if (flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET)) - goto convert_to_array; - prop_flags = get_prop_flags(flags, 0); - if (prop_flags != JS_PROP_C_W_E) - goto convert_to_array; - return add_fast_array_element(ctx, p, - js_dup(val), flags); - } else { - goto convert_to_array; - } - } else if (JS_AtomIsArrayIndex(ctx, &idx, prop)) { - /* convert the fast array to normal array */ - convert_to_array: - if (convert_fast_array_to_array(ctx, p)) - return -1; - goto generic_array; - } - } else if (JS_AtomIsArrayIndex(ctx, &idx, prop)) { - JSProperty *plen; - JSShapeProperty *pslen; - generic_array: - /* update the length field */ - plen = &p->prop[0]; - JS_ToUint32(ctx, &len, plen->u.value); - if ((idx + 1) > len) { - pslen = get_shape_prop(p->shape); - if (unlikely(!(pslen->flags & JS_PROP_WRITABLE))) - return JS_ThrowTypeErrorReadOnly(ctx, flags, JS_ATOM_length); - /* XXX: should update the length after defining - the property */ - len = idx + 1; - set_value(ctx, &plen->u.value, js_uint32(len)); - } - } - } else if (is_typed_array(p->class_id)) { - ret = JS_AtomIsNumericIndex(ctx, prop); - if (ret != 0) { - if (ret < 0) - return -1; - return JS_ThrowTypeErrorOrFalse(ctx, flags, "cannot create numeric index in typed array"); - } - } else if (!(flags & JS_PROP_NO_EXOTIC)) { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - if (em) { - if (em->define_own_property) { - return em->define_own_property(ctx, JS_MKPTR(JS_TAG_OBJECT, p), - prop, val, getter, setter, flags); - } - ret = JS_IsExtensible(ctx, JS_MKPTR(JS_TAG_OBJECT, p)); - if (ret < 0) - return -1; - if (!ret) - goto not_extensible; - } - } - } - - if (!p->extensible) { - not_extensible: - return JS_ThrowTypeErrorOrFalse(ctx, flags, "object is not extensible"); - } - - if (flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET)) { - prop_flags = (flags & (JS_PROP_CONFIGURABLE | JS_PROP_ENUMERABLE)) | - JS_PROP_GETSET; - } else { - prop_flags = flags & JS_PROP_C_W_E; - } - pr = add_property(ctx, p, prop, prop_flags); - if (unlikely(!pr)) - return -1; - if (flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET)) { - pr->u.getset.getter = NULL; - if ((flags & JS_PROP_HAS_GET) && JS_IsFunction(ctx, getter)) { - pr->u.getset.getter = - JS_VALUE_GET_OBJ(js_dup(getter)); - } - pr->u.getset.setter = NULL; - if ((flags & JS_PROP_HAS_SET) && JS_IsFunction(ctx, setter)) { - pr->u.getset.setter = - JS_VALUE_GET_OBJ(js_dup(setter)); - } - } else { - if (flags & JS_PROP_HAS_VALUE) { - pr->u.value = js_dup(val); - } else { - pr->u.value = JS_UNDEFINED; - } - } - return true; -} - -/* return false if not OK */ -static bool check_define_prop_flags(int prop_flags, int flags) -{ - bool has_accessor, is_getset; - - if (!(prop_flags & JS_PROP_CONFIGURABLE)) { - if ((flags & (JS_PROP_HAS_CONFIGURABLE | JS_PROP_CONFIGURABLE)) == - (JS_PROP_HAS_CONFIGURABLE | JS_PROP_CONFIGURABLE)) { - return false; - } - if ((flags & JS_PROP_HAS_ENUMERABLE) && - (flags & JS_PROP_ENUMERABLE) != (prop_flags & JS_PROP_ENUMERABLE)) - return false; - } - if (flags & (JS_PROP_HAS_VALUE | JS_PROP_HAS_WRITABLE | - JS_PROP_HAS_GET | JS_PROP_HAS_SET)) { - if (!(prop_flags & JS_PROP_CONFIGURABLE)) { - has_accessor = ((flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET)) != 0); - is_getset = ((prop_flags & JS_PROP_TMASK) == JS_PROP_GETSET); - if (has_accessor != is_getset) - return false; - if (!has_accessor && !is_getset && !(prop_flags & JS_PROP_WRITABLE)) { - /* not writable: cannot set the writable bit */ - if ((flags & (JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE)) == - (JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE)) - return false; - } - } - } - return true; -} - -/* ensure that the shape can be safely modified */ -static int js_shape_prepare_update(JSContext *ctx, JSObject *p, - JSShapeProperty **pprs) -{ - JSShape *sh; - uint32_t idx = 0; /* prevent warning */ - - sh = p->shape; - if (sh->is_hashed) { - if (sh->header.ref_count != 1) { - if (pprs) - idx = *pprs - get_shape_prop(sh); - /* clone the shape (the resulting one is no longer hashed) */ - sh = js_clone_shape(ctx, sh); - if (!sh) - return -1; - js_free_shape(ctx->rt, p->shape); - p->shape = sh; - if (pprs) - *pprs = get_shape_prop(sh) + idx; - } else { - js_shape_hash_unlink(ctx->rt, sh); - sh->is_hashed = false; - } - } - return 0; -} - -static int js_update_property_flags(JSContext *ctx, JSObject *p, - JSShapeProperty **pprs, int flags) -{ - if (flags != (*pprs)->flags) { - if (js_shape_prepare_update(ctx, p, pprs)) - return -1; - (*pprs)->flags = flags; - } - return 0; -} - -/* allowed flags: - JS_PROP_CONFIGURABLE, JS_PROP_WRITABLE, JS_PROP_ENUMERABLE - JS_PROP_HAS_GET, JS_PROP_HAS_SET, JS_PROP_HAS_VALUE, - JS_PROP_HAS_CONFIGURABLE, JS_PROP_HAS_WRITABLE, JS_PROP_HAS_ENUMERABLE, - JS_PROP_THROW, JS_PROP_NO_EXOTIC. - If JS_PROP_THROW is set, return an exception instead of false. - if JS_PROP_NO_EXOTIC is set, do not call the exotic - define_own_property callback. - return -1 (exception), false or true. -*/ -int JS_DefineProperty(JSContext *ctx, JSValueConst this_obj, - JSAtom prop, JSValueConst val, - JSValueConst getter, JSValueConst setter, int flags) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - int mask, res; - - if (JS_VALUE_GET_TAG(this_obj) != JS_TAG_OBJECT) { - JS_ThrowTypeErrorNotAnObject(ctx); - return -1; - } - p = JS_VALUE_GET_OBJ(this_obj); - - redo_prop_update: - prs = find_own_property(&pr, p, prop); - if (prs) { - /* the range of the Array length property is always tested before */ - if ((prs->flags & JS_PROP_LENGTH) && (flags & JS_PROP_HAS_VALUE)) { - uint32_t array_length; - if (JS_ToArrayLengthFree(ctx, &array_length, - js_dup(val), false)) { - return -1; - } - /* this code relies on the fact that Uint32 are never allocated */ - val = js_uint32(array_length); - /* prs may have been modified */ - prs = find_own_property(&pr, p, prop); - assert(prs != NULL); - } - /* property already exists */ - if (!check_define_prop_flags(prs->flags, flags)) { - not_configurable: - return JS_ThrowTypeErrorOrFalse(ctx, flags, "property is not configurable"); - } - - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - /* Instantiate property and retry */ - if (JS_AutoInitProperty(ctx, p, prop, pr, prs)) - return -1; - goto redo_prop_update; - } - - if (flags & (JS_PROP_HAS_VALUE | JS_PROP_HAS_WRITABLE | - JS_PROP_HAS_GET | JS_PROP_HAS_SET)) { - if (flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET)) { - JSObject *new_getter, *new_setter; - - if (JS_IsFunction(ctx, getter)) { - new_getter = JS_VALUE_GET_OBJ(getter); - } else { - new_getter = NULL; - } - if (JS_IsFunction(ctx, setter)) { - new_setter = JS_VALUE_GET_OBJ(setter); - } else { - new_setter = NULL; - } - - if ((prs->flags & JS_PROP_TMASK) != JS_PROP_GETSET) { - if (js_shape_prepare_update(ctx, p, &prs)) - return -1; - /* convert to getset */ - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - free_var_ref(ctx->rt, pr->u.var_ref); - } else { - JS_FreeValue(ctx, pr->u.value); - } - prs->flags = (prs->flags & - (JS_PROP_CONFIGURABLE | JS_PROP_ENUMERABLE)) | - JS_PROP_GETSET; - pr->u.getset.getter = NULL; - pr->u.getset.setter = NULL; - } else { - if (!(prs->flags & JS_PROP_CONFIGURABLE)) { - if ((flags & JS_PROP_HAS_GET) && - new_getter != pr->u.getset.getter) { - goto not_configurable; - } - if ((flags & JS_PROP_HAS_SET) && - new_setter != pr->u.getset.setter) { - goto not_configurable; - } - } - } - if (flags & JS_PROP_HAS_GET) { - if (pr->u.getset.getter) - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.getter)); - if (new_getter) - js_dup(getter); - pr->u.getset.getter = new_getter; - } - if (flags & JS_PROP_HAS_SET) { - if (pr->u.getset.setter) - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.setter)); - if (new_setter) - js_dup(setter); - pr->u.getset.setter = new_setter; - } - } else { - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - /* convert to data descriptor */ - if (js_shape_prepare_update(ctx, p, &prs)) - return -1; - if (pr->u.getset.getter) - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.getter)); - if (pr->u.getset.setter) - JS_FreeValue(ctx, JS_MKPTR(JS_TAG_OBJECT, pr->u.getset.setter)); - prs->flags &= ~(JS_PROP_TMASK | JS_PROP_WRITABLE); - pr->u.value = JS_UNDEFINED; - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - /* Note: JS_PROP_VARREF is always writable */ - } else { - if ((prs->flags & (JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE)) == 0 && - (flags & JS_PROP_HAS_VALUE)) { - if (!js_same_value(ctx, val, pr->u.value)) { - goto not_configurable; - } else { - return true; - } - } - } - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - if (flags & JS_PROP_HAS_VALUE) { - if (p->class_id == JS_CLASS_MODULE_NS) { - /* JS_PROP_WRITABLE is always true for variable - references, but they are write protected in module name - spaces. */ - if (!js_same_value(ctx, val, *pr->u.var_ref->pvalue)) - goto not_configurable; - } - /* update the reference */ - set_value(ctx, pr->u.var_ref->pvalue, js_dup(val)); - } - /* if writable is set to false, no longer a - reference (for mapped arguments) */ - if ((flags & (JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE)) == JS_PROP_HAS_WRITABLE) { - JSValue val1; - if (js_shape_prepare_update(ctx, p, &prs)) - return -1; - val1 = js_dup(*pr->u.var_ref->pvalue); - free_var_ref(ctx->rt, pr->u.var_ref); - pr->u.value = val1; - prs->flags &= ~(JS_PROP_TMASK | JS_PROP_WRITABLE); - } - } else if (prs->flags & JS_PROP_LENGTH) { - if (flags & JS_PROP_HAS_VALUE) { - /* Note: no JS code is executable because - 'val' is guaranted to be a Uint32 */ - res = set_array_length(ctx, p, js_dup(val), flags); - } else { - res = true; - } - /* still need to reset the writable flag if - needed. The JS_PROP_LENGTH is kept because the - Uint32 test is still done if the length - property is read-only. */ - if ((flags & (JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE)) == - JS_PROP_HAS_WRITABLE) { - prs = get_shape_prop(p->shape); - if (js_update_property_flags(ctx, p, &prs, - prs->flags & ~JS_PROP_WRITABLE)) - return -1; - } - return res; - } else { - if (flags & JS_PROP_HAS_VALUE) { - JS_FreeValue(ctx, pr->u.value); - pr->u.value = js_dup(val); - } - if (flags & JS_PROP_HAS_WRITABLE) { - if (js_update_property_flags(ctx, p, &prs, - (prs->flags & ~JS_PROP_WRITABLE) | - (flags & JS_PROP_WRITABLE))) - return -1; - } - } - } - } - mask = 0; - if (flags & JS_PROP_HAS_CONFIGURABLE) - mask |= JS_PROP_CONFIGURABLE; - if (flags & JS_PROP_HAS_ENUMERABLE) - mask |= JS_PROP_ENUMERABLE; - if (js_update_property_flags(ctx, p, &prs, - (prs->flags & ~mask) | (flags & mask))) - return -1; - return true; - } - - /* handle modification of fast array elements */ - if (p->fast_array) { - uint32_t idx; - uint32_t prop_flags; - if (p->class_id == JS_CLASS_ARRAY) { - if (__JS_AtomIsTaggedInt(prop)) { - idx = __JS_AtomToUInt32(prop); - if (idx < p->u.array.count) { - prop_flags = get_prop_flags(flags, JS_PROP_C_W_E); - if (prop_flags != JS_PROP_C_W_E) - goto convert_to_slow_array; - if (flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET)) { - convert_to_slow_array: - if (convert_fast_array_to_array(ctx, p)) - return -1; - else - goto redo_prop_update; - } - if (flags & JS_PROP_HAS_VALUE) { - set_value(ctx, &p->u.array.u.values[idx], js_dup(val)); - } - return true; - } - } - } else if (is_typed_array(p->class_id)) { - JSValue num; - int ret; - - if (!__JS_AtomIsTaggedInt(prop)) { - /* slow path with to handle all numeric indexes */ - num = JS_AtomIsNumericIndex1(ctx, prop); - if (JS_IsUndefined(num)) - goto typed_array_done; - if (JS_IsException(num)) - return -1; - ret = JS_NumberIsInteger(ctx, num); - if (ret < 0) { - JS_FreeValue(ctx, num); - return -1; - } - if (!ret) { - JS_FreeValue(ctx, num); - return JS_ThrowTypeErrorOrFalse(ctx, flags, "non integer index in typed array"); - } - ret = JS_NumberIsNegativeOrMinusZero(ctx, num); - JS_FreeValue(ctx, num); - if (ret) { - return JS_ThrowTypeErrorOrFalse(ctx, flags, "negative index in typed array"); - } - if (!__JS_AtomIsTaggedInt(prop)) - goto typed_array_oob; - } - idx = __JS_AtomToUInt32(prop); - /* if the typed array is detached, p->u.array.count = 0 */ - if (idx >= p->u.array.count) { - typed_array_oob: - return JS_ThrowTypeErrorOrFalse(ctx, flags, "out-of-bound index in typed array"); - } - prop_flags = get_prop_flags(flags, JS_PROP_ENUMERABLE | JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE); - if (flags & (JS_PROP_HAS_GET | JS_PROP_HAS_SET) || - prop_flags != (JS_PROP_ENUMERABLE | JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE)) { - return JS_ThrowTypeErrorOrFalse(ctx, flags, "invalid descriptor flags"); - } - if (flags & JS_PROP_HAS_VALUE) { - return JS_SetPropertyValue(ctx, this_obj, js_int32(idx), js_dup(val), flags); - } - return true; - typed_array_done: ; - } - } - - return JS_CreateProperty(ctx, p, prop, val, getter, setter, flags); -} - -static int JS_DefineAutoInitProperty(JSContext *ctx, JSValueConst this_obj, - JSAtom prop, JSAutoInitIDEnum id, - void *opaque, int flags) -{ - JSObject *p; - JSProperty *pr; - - if (JS_VALUE_GET_TAG(this_obj) != JS_TAG_OBJECT) - return false; - - p = JS_VALUE_GET_OBJ(this_obj); - - if (find_own_property(&pr, p, prop)) { - /* property already exists */ - abort(); - return false; - } - - /* Specialized CreateProperty */ - pr = add_property(ctx, p, prop, (flags & JS_PROP_C_W_E) | JS_PROP_AUTOINIT); - if (unlikely(!pr)) - return -1; - pr->u.init.realm_and_id = (uintptr_t)JS_DupContext(ctx); - assert((pr->u.init.realm_and_id & 3) == 0); - assert(id <= 3); - pr->u.init.realm_and_id |= id; - pr->u.init.opaque = opaque; - return true; -} - -/* shortcut to add or redefine a new property value */ -int JS_DefinePropertyValue(JSContext *ctx, JSValueConst this_obj, - JSAtom prop, JSValue val, int flags) -{ - int ret; - ret = JS_DefineProperty(ctx, this_obj, prop, val, JS_UNDEFINED, JS_UNDEFINED, - flags | JS_PROP_HAS_VALUE | JS_PROP_HAS_CONFIGURABLE | JS_PROP_HAS_WRITABLE | JS_PROP_HAS_ENUMERABLE); - JS_FreeValue(ctx, val); - return ret; -} - -int JS_DefinePropertyValueValue(JSContext *ctx, JSValueConst this_obj, - JSValue prop, JSValue val, int flags) -{ - JSAtom atom; - int ret; - atom = JS_ValueToAtom(ctx, prop); - JS_FreeValue(ctx, prop); - if (unlikely(atom == JS_ATOM_NULL)) { - JS_FreeValue(ctx, val); - return -1; - } - ret = JS_DefinePropertyValue(ctx, this_obj, atom, val, flags); - JS_FreeAtom(ctx, atom); - return ret; -} - -int JS_DefinePropertyValueUint32(JSContext *ctx, JSValueConst this_obj, - uint32_t idx, JSValue val, int flags) -{ - return JS_DefinePropertyValueValue(ctx, this_obj, js_uint32(idx), - val, flags); -} - -int JS_DefinePropertyValueInt64(JSContext *ctx, JSValueConst this_obj, - int64_t idx, JSValue val, int flags) -{ - return JS_DefinePropertyValueValue(ctx, this_obj, js_int64(idx), - val, flags); -} - -/* `prop` may be pure ASCII or UTF-8 encoded */ -int JS_DefinePropertyValueStr(JSContext *ctx, JSValueConst this_obj, - const char *prop, JSValue val, int flags) -{ - JSAtom atom; - int ret; - atom = JS_NewAtom(ctx, prop); - if (atom == JS_ATOM_NULL) { - JS_FreeValue(ctx, val); - return -1; - } - ret = JS_DefinePropertyValue(ctx, this_obj, atom, val, flags); - JS_FreeAtom(ctx, atom); - return ret; -} - -/* shortcut to add getter & setter */ -int JS_DefinePropertyGetSet(JSContext *ctx, JSValueConst this_obj, - JSAtom prop, JSValue getter, JSValue setter, - int flags) -{ - int ret; - ret = JS_DefineProperty(ctx, this_obj, prop, JS_UNDEFINED, getter, setter, - flags | JS_PROP_HAS_GET | JS_PROP_HAS_SET | - JS_PROP_HAS_CONFIGURABLE | JS_PROP_HAS_ENUMERABLE); - JS_FreeValue(ctx, getter); - JS_FreeValue(ctx, setter); - return ret; -} - -static int JS_CreateDataPropertyUint32(JSContext *ctx, JSValueConst this_obj, - int64_t idx, JSValue val, int flags) -{ - return JS_DefinePropertyValueValue(ctx, this_obj, js_int64(idx), - val, flags | JS_PROP_CONFIGURABLE | - JS_PROP_ENUMERABLE | JS_PROP_WRITABLE); -} - - -/* return true if 'obj' has a non empty 'name' string */ -static bool js_object_has_name(JSContext *ctx, JSValue obj) -{ - JSProperty *pr; - JSShapeProperty *prs; - JSValue val; - JSString *p; - - prs = find_own_property(&pr, JS_VALUE_GET_OBJ(obj), JS_ATOM_name); - if (!prs) - return false; - if ((prs->flags & JS_PROP_TMASK) != JS_PROP_NORMAL) - return true; - val = pr->u.value; - if (JS_VALUE_GET_TAG(val) != JS_TAG_STRING) - return true; - p = JS_VALUE_GET_STRING(val); - return (p->len != 0); -} - -static int JS_DefineObjectName(JSContext *ctx, JSValue obj, - JSAtom name, int flags) -{ - if (name != JS_ATOM_NULL - && JS_IsObject(obj) - && !js_object_has_name(ctx, obj) - && JS_DefinePropertyValue(ctx, obj, JS_ATOM_name, JS_AtomToString(ctx, name), flags) < 0) { - return -1; - } - return 0; -} - -static int JS_DefineObjectNameComputed(JSContext *ctx, JSValue obj, - JSValue str, int flags) -{ - if (JS_IsObject(obj) && - !js_object_has_name(ctx, obj)) { - JSAtom prop; - JSValue name_str; - prop = JS_ValueToAtom(ctx, str); - if (prop == JS_ATOM_NULL) - return -1; - name_str = js_get_function_name(ctx, prop); - JS_FreeAtom(ctx, prop); - if (JS_IsException(name_str)) - return -1; - if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_name, name_str, flags) < 0) - return -1; - } - return 0; -} - -#define DEFINE_GLOBAL_LEX_VAR (1 << 7) -#define DEFINE_GLOBAL_FUNC_VAR (1 << 6) - -static JSValue JS_ThrowSyntaxErrorVarRedeclaration(JSContext *ctx, JSAtom prop) -{ - return JS_ThrowSyntaxErrorAtom(ctx, "redeclaration of '%s'", prop); -} - -/* flags is 0, DEFINE_GLOBAL_LEX_VAR or DEFINE_GLOBAL_FUNC_VAR */ -/* XXX: could support exotic global object. */ -static int JS_CheckDefineGlobalVar(JSContext *ctx, JSAtom prop, int flags) -{ - JSObject *p; - JSShapeProperty *prs; - - p = JS_VALUE_GET_OBJ(ctx->global_obj); - prs = find_own_property1(p, prop); - /* XXX: should handle JS_PROP_AUTOINIT */ - if (flags & DEFINE_GLOBAL_LEX_VAR) { - if (prs && !(prs->flags & JS_PROP_CONFIGURABLE)) - goto fail_redeclaration; - } else { - if (!prs && !p->extensible) - goto define_error; - if (flags & DEFINE_GLOBAL_FUNC_VAR) { - if (prs) { - if (!(prs->flags & JS_PROP_CONFIGURABLE) && - ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET || - ((prs->flags & (JS_PROP_WRITABLE | JS_PROP_ENUMERABLE)) != - (JS_PROP_WRITABLE | JS_PROP_ENUMERABLE)))) { - define_error: - JS_ThrowTypeErrorAtom(ctx, "cannot define variable '%s'", - prop); - return -1; - } - } - } - } - /* check if there already is a lexical declaration */ - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - prs = find_own_property1(p, prop); - if (prs) { - fail_redeclaration: - JS_ThrowSyntaxErrorVarRedeclaration(ctx, prop); - return -1; - } - return 0; -} - -/* def_flags is (0, DEFINE_GLOBAL_LEX_VAR) | - JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE */ -/* XXX: could support exotic global object. */ -static int JS_DefineGlobalVar(JSContext *ctx, JSAtom prop, int def_flags) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - JSValue val; - int flags; - - if (def_flags & DEFINE_GLOBAL_LEX_VAR) { - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - flags = JS_PROP_ENUMERABLE | (def_flags & JS_PROP_WRITABLE) | - JS_PROP_CONFIGURABLE; - val = JS_UNINITIALIZED; - } else { - p = JS_VALUE_GET_OBJ(ctx->global_obj); - flags = JS_PROP_ENUMERABLE | JS_PROP_WRITABLE | - (def_flags & JS_PROP_CONFIGURABLE); - val = JS_UNDEFINED; - } - prs = find_own_property1(p, prop); - if (prs) - return 0; - if (!p->extensible) - return 0; - pr = add_property(ctx, p, prop, flags); - if (unlikely(!pr)) - return -1; - pr->u.value = val; - return 0; -} - -/* 'def_flags' is 0 or JS_PROP_CONFIGURABLE. */ -/* XXX: could support exotic global object. */ -static int JS_DefineGlobalFunction(JSContext *ctx, JSAtom prop, - JSValue func, int def_flags) -{ - - JSObject *p; - JSShapeProperty *prs; - int flags; - - p = JS_VALUE_GET_OBJ(ctx->global_obj); - prs = find_own_property1(p, prop); - flags = JS_PROP_HAS_VALUE | JS_PROP_THROW; - if (!prs || (prs->flags & JS_PROP_CONFIGURABLE)) { - flags |= JS_PROP_ENUMERABLE | JS_PROP_WRITABLE | def_flags | - JS_PROP_HAS_CONFIGURABLE | JS_PROP_HAS_WRITABLE | JS_PROP_HAS_ENUMERABLE; - } - if (JS_DefineProperty(ctx, ctx->global_obj, prop, func, - JS_UNDEFINED, JS_UNDEFINED, flags) < 0) - return -1; - return 0; -} - -static JSValue JS_GetGlobalVar(JSContext *ctx, JSAtom prop, - bool throw_ref_error) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - - /* no exotic behavior is possible in global_var_obj */ - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - prs = find_own_property(&pr, p, prop); - if (prs) { - /* XXX: should handle JS_PROP_TMASK properties */ - if (unlikely(JS_IsUninitialized(pr->u.value))) - return JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return js_dup(pr->u.value); - } - return JS_GetPropertyInternal(ctx, ctx->global_obj, prop, - ctx->global_obj, throw_ref_error); -} - -/* construct a reference to a global variable */ -static int JS_GetGlobalVarRef(JSContext *ctx, JSAtom prop, JSValue *sp) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - - /* no exotic behavior is possible in global_var_obj */ - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - prs = find_own_property(&pr, p, prop); - if (prs) { - /* XXX: should handle JS_PROP_AUTOINIT properties? */ - /* XXX: conformance: do these tests in - OP_put_var_ref/OP_get_var_ref ? */ - if (unlikely(JS_IsUninitialized(pr->u.value))) { - JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return -1; - } - if (unlikely(!(prs->flags & JS_PROP_WRITABLE))) { - return JS_ThrowTypeErrorReadOnly(ctx, JS_PROP_THROW, prop); - } - sp[0] = js_dup(ctx->global_var_obj); - } else { - int ret; - ret = JS_HasProperty(ctx, ctx->global_obj, prop); - if (ret < 0) - return -1; - if (ret) { - sp[0] = js_dup(ctx->global_obj); - } else { - sp[0] = JS_UNDEFINED; - } - } - sp[1] = JS_AtomToValue(ctx, prop); - return 0; -} - -/* use for strict variable access: test if the variable exists */ -static int JS_CheckGlobalVar(JSContext *ctx, JSAtom prop) -{ - JSObject *p; - JSShapeProperty *prs; - int ret; - - /* no exotic behavior is possible in global_var_obj */ - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - prs = find_own_property1(p, prop); - if (prs) { - ret = true; - } else { - ret = JS_HasProperty(ctx, ctx->global_obj, prop); - if (ret < 0) - return -1; - } - return ret; -} - -/* flag = 0: normal variable write - flag = 1: initialize lexical variable - flag = 2: normal variable write, strict check was done before -*/ -static int JS_SetGlobalVar(JSContext *ctx, JSAtom prop, JSValue val, - int flag) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - int flags; - - /* no exotic behavior is possible in global_var_obj */ - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - prs = find_own_property(&pr, p, prop); - if (prs) { - /* XXX: should handle JS_PROP_AUTOINIT properties? */ - if (flag != 1) { - if (unlikely(JS_IsUninitialized(pr->u.value))) { - JS_FreeValue(ctx, val); - JS_ThrowReferenceErrorUninitialized(ctx, prs->atom); - return -1; - } - if (unlikely(!(prs->flags & JS_PROP_WRITABLE))) { - JS_FreeValue(ctx, val); - return JS_ThrowTypeErrorReadOnly(ctx, JS_PROP_THROW, prop); - } - } - set_value(ctx, &pr->u.value, val); - return 0; - } - flags = JS_PROP_THROW_STRICT; - if (is_strict_mode(ctx)) - flags |= JS_PROP_NO_ADD; - return JS_SetPropertyInternal(ctx, ctx->global_obj, prop, val, flags); -} - -/* return -1, false or true */ -static int JS_DeleteGlobalVar(JSContext *ctx, JSAtom prop) -{ - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - int ret; - - /* 9.1.1.4.7 DeleteBinding ( N ) */ - p = JS_VALUE_GET_OBJ(ctx->global_var_obj); - prs = find_own_property(&pr, p, prop); - if (prs) - return false; /* lexical variables cannot be deleted */ - ret = JS_HasProperty(ctx, ctx->global_obj, prop); - if (ret < 0) - return -1; - if (ret) { - return JS_DeleteProperty(ctx, ctx->global_obj, prop, 0); - } else { - return true; - } -} - -/* return -1, false or true. return false if not configurable or - invalid object. return -1 in case of exception. - flags can be 0, JS_PROP_THROW or JS_PROP_THROW_STRICT */ -int JS_DeleteProperty(JSContext *ctx, JSValueConst obj, JSAtom prop, int flags) -{ - JSValue obj1; - JSObject *p; - int res; - - obj1 = JS_ToObject(ctx, obj); - if (JS_IsException(obj1)) - return -1; - p = JS_VALUE_GET_OBJ(obj1); - res = delete_property(ctx, p, prop); - JS_FreeValue(ctx, obj1); - if (res != false) - return res; - if ((flags & JS_PROP_THROW) || - ((flags & JS_PROP_THROW_STRICT) && is_strict_mode(ctx))) { - JS_ThrowTypeError(ctx, "could not delete property"); - return -1; - } - return false; -} - -int JS_DeletePropertyInt64(JSContext *ctx, JSValueConst obj, int64_t idx, int flags) -{ - JSAtom prop; - int res; - - if ((uint64_t)idx <= JS_ATOM_MAX_INT) { - /* fast path for fast arrays */ - return JS_DeleteProperty(ctx, obj, __JS_AtomFromUInt32(idx), flags); - } - prop = JS_NewAtomInt64(ctx, idx); - if (prop == JS_ATOM_NULL) - return -1; - res = JS_DeleteProperty(ctx, obj, prop, flags); - JS_FreeAtom(ctx, prop); - return res; -} - -bool JS_IsFunction(JSContext *ctx, JSValueConst val) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(val); - switch(p->class_id) { - case JS_CLASS_BYTECODE_FUNCTION: - return true; - case JS_CLASS_PROXY: - return p->u.proxy_data->is_func; - default: - return (ctx->rt->class_array[p->class_id].call != NULL); - } -} - -static bool JS_IsCFunction(JSContext *ctx, JSValueConst val, JSCFunction *func, - int magic) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(val); - if (p->class_id == JS_CLASS_C_FUNCTION) - return (p->u.cfunc.c_function.generic == func && p->u.cfunc.magic == magic); - else - return false; -} - -bool JS_IsConstructor(JSContext *ctx, JSValueConst val) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(val); - return p->is_constructor; -} - -bool JS_SetConstructorBit(JSContext *ctx, JSValueConst func_obj, bool val) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(func_obj) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(func_obj); - p->is_constructor = val; - return true; -} - -bool JS_IsRegExp(JSValueConst val) -{ - return JS_CLASS_REGEXP == JS_GetClassID(val); -} - -bool JS_IsMap(JSValueConst val) -{ - return JS_CLASS_MAP == JS_GetClassID(val); -} - -bool JS_IsSet(JSValueConst val) -{ - return JS_CLASS_SET == JS_GetClassID(val); -} - -bool JS_IsWeakRef(JSValueConst val) -{ - return JS_CLASS_WEAK_REF == JS_GetClassID(val); -} - -bool JS_IsWeakSet(JSValueConst val) -{ - return JS_CLASS_WEAKSET == JS_GetClassID(val); -} - -bool JS_IsWeakMap(JSValueConst val) -{ - return JS_CLASS_WEAKMAP == JS_GetClassID(val); -} - -bool JS_IsDataView(JSValueConst val) -{ - return JS_CLASS_DATAVIEW == JS_GetClassID(val); -} - -bool JS_IsError(JSValueConst val) -{ - return JS_CLASS_ERROR == JS_GetClassID(val); -} - -/* used to avoid catching interrupt exceptions */ -bool JS_IsUncatchableError(JSValueConst val) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(val); - return p->class_id == JS_CLASS_ERROR && p->is_uncatchable_error; -} - -static void js_set_uncatchable_error(JSContext *ctx, JSValueConst val, bool flag) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return; - p = JS_VALUE_GET_OBJ(val); - if (p->class_id == JS_CLASS_ERROR) - p->is_uncatchable_error = flag; -} - -void JS_SetUncatchableError(JSContext *ctx, JSValueConst val) -{ - js_set_uncatchable_error(ctx, val, true); -} - -void JS_ClearUncatchableError(JSContext *ctx, JSValueConst val) -{ - js_set_uncatchable_error(ctx, val, false); -} - -void JS_ResetUncatchableError(JSContext *ctx) -{ - js_set_uncatchable_error(ctx, ctx->rt->current_exception, false); -} - -int JS_SetOpaque(JSValueConst obj, void *opaque) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT) { - p = JS_VALUE_GET_OBJ(obj); - // User code can't set the opaque of internal objects. - if (p->class_id >= JS_CLASS_INIT_COUNT) { - p->u.opaque = opaque; - return 0; - } - } - - return -1; -} - -/* |obj| must be a JSObject of an internal class. */ -static void JS_SetOpaqueInternal(JSValueConst obj, void *opaque) -{ - JSObject *p; - assert(JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT); - p = JS_VALUE_GET_OBJ(obj); - assert(p->class_id < JS_CLASS_INIT_COUNT); - p->u.opaque = opaque; -} - -/* return NULL if not an object of class class_id */ -void *JS_GetOpaque(JSValueConst obj, JSClassID class_id) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - return NULL; - p = JS_VALUE_GET_OBJ(obj); - if (p->class_id != class_id) - return NULL; - return p->u.opaque; -} - -void *JS_GetOpaque2(JSContext *ctx, JSValueConst obj, JSClassID class_id) -{ - void *p = JS_GetOpaque(obj, class_id); - if (unlikely(!p)) { - JS_ThrowTypeErrorInvalidClass(ctx, class_id); - } - return p; -} - -void *JS_GetAnyOpaque(JSValueConst obj, JSClassID *class_id) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) { - *class_id = 0; - return NULL; - } - p = JS_VALUE_GET_OBJ(obj); - *class_id = p->class_id; - return p->u.opaque; -} - -static JSValue JS_ToPrimitiveFree(JSContext *ctx, JSValue val, int hint) -{ - int i; - bool force_ordinary; - - JSAtom method_name; - JSValue method, ret; - if (JS_VALUE_GET_TAG(val) != JS_TAG_OBJECT) - return val; - force_ordinary = hint & HINT_FORCE_ORDINARY; - hint &= ~HINT_FORCE_ORDINARY; - if (!force_ordinary) { - method = JS_GetProperty(ctx, val, JS_ATOM_Symbol_toPrimitive); - if (JS_IsException(method)) - goto exception; - /* ECMA says *If exoticToPrim is not undefined* but tests in - test262 use null as a non callable converter */ - if (!JS_IsUndefined(method) && !JS_IsNull(method)) { - JSAtom atom; - JSValue arg; - switch(hint) { - case HINT_STRING: - atom = JS_ATOM_string; - break; - case HINT_NUMBER: - atom = JS_ATOM_number; - break; - default: - case HINT_NONE: - atom = JS_ATOM_default; - break; - } - arg = JS_AtomToString(ctx, atom); - ret = JS_CallFree(ctx, method, val, 1, vc(&arg)); - JS_FreeValue(ctx, arg); - if (JS_IsException(ret)) - goto exception; - JS_FreeValue(ctx, val); - if (JS_VALUE_GET_TAG(ret) != JS_TAG_OBJECT) - return ret; - JS_FreeValue(ctx, ret); - return JS_ThrowTypeError(ctx, "toPrimitive"); - } - } - if (hint != HINT_STRING) - hint = HINT_NUMBER; - for(i = 0; i < 2; i++) { - if ((i ^ hint) == 0) { - method_name = JS_ATOM_toString; - } else { - method_name = JS_ATOM_valueOf; - } - method = JS_GetProperty(ctx, val, method_name); - if (JS_IsException(method)) - goto exception; - if (JS_IsFunction(ctx, method)) { - ret = JS_CallFree(ctx, method, val, 0, NULL); - if (JS_IsException(ret)) - goto exception; - if (JS_VALUE_GET_TAG(ret) != JS_TAG_OBJECT) { - JS_FreeValue(ctx, val); - return ret; - } - JS_FreeValue(ctx, ret); - } else { - JS_FreeValue(ctx, method); - } - } - JS_ThrowTypeError(ctx, "toPrimitive"); -exception: - JS_FreeValue(ctx, val); - return JS_EXCEPTION; -} - -static JSValue JS_ToPrimitive(JSContext *ctx, JSValueConst val, int hint) -{ - return JS_ToPrimitiveFree(ctx, js_dup(val), hint); -} - -void JS_SetIsHTMLDDA(JSContext *ctx, JSValueConst obj) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - return; - p = JS_VALUE_GET_OBJ(obj); - p->is_HTMLDDA = true; -} - -static inline bool JS_IsHTMLDDA(JSContext *ctx, JSValueConst obj) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(obj); - return p->is_HTMLDDA; -} - -static int JS_ToBoolFree(JSContext *ctx, JSValue val) -{ - uint32_t tag = JS_VALUE_GET_TAG(val); - switch(tag) { - case JS_TAG_INT: - return JS_VALUE_GET_INT(val) != 0; - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - return JS_VALUE_GET_INT(val); - case JS_TAG_EXCEPTION: - return -1; - case JS_TAG_STRING: - { - bool ret = JS_VALUE_GET_STRING(val)->len != 0; - JS_FreeValue(ctx, val); - return ret; - } - case JS_TAG_SHORT_BIG_INT: - return JS_VALUE_GET_SHORT_BIG_INT(val) != 0; - case JS_TAG_BIG_INT: - { - JSBigInt *p = JS_VALUE_GET_PTR(val); - bool ret; - int i; - - /* fail safe: we assume it is not necessarily - normalized. Beginning from the MSB ensures that the - test is fast. */ - ret = false; - for(i = p->len - 1; i >= 0; i--) { - if (p->tab[i] != 0) { - ret = true; - break; - } - } - JS_FreeValue(ctx, val); - return ret; - } - case JS_TAG_OBJECT: - { - JSObject *p = JS_VALUE_GET_OBJ(val); - bool ret = !p->is_HTMLDDA; - JS_FreeValue(ctx, val); - return ret; - } - break; - default: - if (JS_TAG_IS_FLOAT64(tag)) { - double d = JS_VALUE_GET_FLOAT64(val); - return !isnan(d) && d != 0; - } else { - JS_FreeValue(ctx, val); - return true; - } - } -} - -int JS_ToBool(JSContext *ctx, JSValueConst val) -{ - return JS_ToBoolFree(ctx, js_dup(val)); -} - -/* pc points to pure ASCII or UTF-8, null terminated contents */ -static int skip_spaces(const char *pc) -{ - const uint8_t *p, *p_next, *p_start; - uint32_t c; - - p = p_start = (const uint8_t *)pc; - for (;;) { - c = *p++; - if (c < 0x80) { - if (!((c >= 0x09 && c <= 0x0d) || (c == 0x20))) - break; - } else { - c = utf8_decode(p - 1, &p_next); - /* no need to test for invalid UTF-8, 0xFFFD is not a space */ - if (!lre_is_space(c)) - break; - p = p_next; - } - } - return p - 1 - p_start; -} - -static inline int js_to_digit(int c) -{ - if (c >= '0' && c <= '9') - return c - '0'; - else if (c >= 'A' && c <= 'Z') - return c - 'A' + 10; - else if (c >= 'a' && c <= 'z') - return c - 'a' + 10; - else - return 36; -} - -/* bigint support */ - -#define ADDC(res, carry_out, op1, op2, carry_in) \ -do { \ - js_limb_t __v, __a, __k, __k1; \ - __v = (op1); \ - __a = __v + (op2); \ - __k1 = __a < __v; \ - __k = (carry_in); \ - __a = __a + __k; \ - carry_out = (__a < __k) | __k1; \ - res = __a; \ -} while (0) - -/* a != 0 */ -static inline js_limb_t js_limb_clz(js_limb_t a) -{ - if (!a) - return JS_LIMB_BITS; - return clz32(a); -} - -static js_limb_t js_mp_add(js_limb_t *res, const js_limb_t *op1, const js_limb_t *op2, - js_limb_t n, js_limb_t carry) -{ - int i; - for(i = 0;i < n; i++) { - ADDC(res[i], carry, op1[i], op2[i], carry); - } - return carry; -} - -static js_limb_t js_mp_sub(js_limb_t *res, const js_limb_t *op1, const js_limb_t *op2, - int n, js_limb_t carry) -{ - int i; - js_limb_t k, a, v, k1; - - k = carry; - for(i=0;i v; - v = a - k; - k = (v > a) | k1; - res[i] = v; - } - return k; -} - -/* compute 0 - op2. carry = 0 or 1. */ -static js_limb_t js_mp_neg(js_limb_t *res, const js_limb_t *op2, int n) -{ - int i; - js_limb_t v, carry; - - carry = 1; - for(i=0;i> JS_LIMB_BITS; - } - return l; -} - -static js_limb_t js_mp_div1(js_limb_t *tabr, const js_limb_t *taba, js_limb_t n, - js_limb_t b, js_limb_t r) -{ - js_slimb_t i; - js_dlimb_t a1; - for(i = n - 1; i >= 0; i--) { - a1 = ((js_dlimb_t)r << JS_LIMB_BITS) | taba[i]; - tabr[i] = a1 / b; - r = a1 % b; - } - return r; -} - -/* tabr[] += taba[] * b, return the high word. */ -static js_limb_t js_mp_add_mul1(js_limb_t *tabr, const js_limb_t *taba, js_limb_t n, - js_limb_t b) -{ - js_limb_t i, l; - js_dlimb_t t; - - l = 0; - for(i = 0; i < n; i++) { - t = (js_dlimb_t)taba[i] * (js_dlimb_t)b + l + tabr[i]; - tabr[i] = t; - l = t >> JS_LIMB_BITS; - } - return l; -} - -/* size of the result : op1_size + op2_size. */ -static void js_mp_mul_basecase(js_limb_t *result, - const js_limb_t *op1, js_limb_t op1_size, - const js_limb_t *op2, js_limb_t op2_size) -{ - int i; - js_limb_t r; - - result[op1_size] = js_mp_mul1(result, op1, op1_size, op2[0], 0); - for(i=1;i> JS_LIMB_BITS); - } - return l; -} - -/* WARNING: d must be >= 2^(JS_LIMB_BITS-1) */ -static inline js_limb_t js_udiv1norm_init(js_limb_t d) -{ - js_limb_t a0, a1; - a1 = -d - 1; - a0 = -1; - return (((js_dlimb_t)a1 << JS_LIMB_BITS) | a0) / d; -} - -/* return the quotient and the remainder in '*pr'of 'a1*2^JS_LIMB_BITS+a0 - / d' with 0 <= a1 < d. */ -static inline js_limb_t js_udiv1norm(js_limb_t *pr, js_limb_t a1, js_limb_t a0, - js_limb_t d, js_limb_t d_inv) -{ - js_limb_t n1m, n_adj, q, r, ah; - js_dlimb_t a; - n1m = ((js_slimb_t)a0 >> (JS_LIMB_BITS - 1)); - n_adj = a0 + (n1m & d); - a = (js_dlimb_t)d_inv * (a1 - n1m) + n_adj; - q = (a >> JS_LIMB_BITS) + a1; - /* compute a - q * r and update q so that the remainder is\ - between 0 and d - 1 */ - a = ((js_dlimb_t)a1 << JS_LIMB_BITS) | a0; - a = a - (js_dlimb_t)q * d - d; - ah = a >> JS_LIMB_BITS; - q += 1 + ah; - r = (js_limb_t)a + (ah & d); - *pr = r; - return q; -} - -#define UDIV1NORM_THRESHOLD 3 - -/* b must be >= 1 << (JS_LIMB_BITS - 1) */ -static js_limb_t js_mp_div1norm(js_limb_t *tabr, const js_limb_t *taba, js_limb_t n, - js_limb_t b, js_limb_t r) -{ - js_slimb_t i; - - if (n >= UDIV1NORM_THRESHOLD) { - js_limb_t b_inv; - b_inv = js_udiv1norm_init(b); - for(i = n - 1; i >= 0; i--) { - tabr[i] = js_udiv1norm(&r, r, taba[i], b, b_inv); - } - } else { - js_dlimb_t a1; - for(i = n - 1; i >= 0; i--) { - a1 = ((js_dlimb_t)r << JS_LIMB_BITS) | taba[i]; - tabr[i] = a1 / b; - r = a1 % b; - } - } - return r; -} - -/* base case division: divides taba[0..na-1] by tabb[0..nb-1]. tabb[nb - - 1] must be >= 1 << (JS_LIMB_BITS - 1). na - nb must be >= 0. 'taba' - is modified and contains the remainder (nb limbs). tabq[0..na-nb] - contains the quotient with tabq[na - nb] <= 1. */ -static void js_mp_divnorm(js_limb_t *tabq, js_limb_t *taba, js_limb_t na, - const js_limb_t *tabb, js_limb_t nb) -{ - js_limb_t r, a, c, q, v, b1, b1_inv, n, dummy_r; - int i, j; - - b1 = tabb[nb - 1]; - if (nb == 1) { - taba[0] = js_mp_div1norm(tabq, taba, na, b1, 0); - return; - } - n = na - nb; - - if (n >= UDIV1NORM_THRESHOLD) - b1_inv = js_udiv1norm_init(b1); - else - b1_inv = 0; - - /* first iteration: the quotient is only 0 or 1 */ - q = 1; - for(j = nb - 1; j >= 0; j--) { - if (taba[n + j] != tabb[j]) { - if (taba[n + j] < tabb[j]) - q = 0; - break; - } - } - tabq[n] = q; - if (q) { - js_mp_sub(taba + n, taba + n, tabb, nb, 0); - } - - for(i = n - 1; i >= 0; i--) { - if (unlikely(taba[i + nb] >= b1)) { - q = -1; - } else if (b1_inv) { - q = js_udiv1norm(&dummy_r, taba[i + nb], taba[i + nb - 1], b1, b1_inv); - } else { - js_dlimb_t al; - al = ((js_dlimb_t)taba[i + nb] << JS_LIMB_BITS) | taba[i + nb - 1]; - q = al / b1; - r = al % b1; - } - r = js_mp_sub_mul1(taba + i, tabb, nb, q); - - v = taba[i + nb]; - a = v - r; - c = (a > v); - taba[i + nb] = a; - - if (c != 0) { - /* negative result */ - for(;;) { - q--; - c = js_mp_add(taba + i, taba + i, tabb, nb, 0); - /* propagate carry and test if positive result */ - if (c != 0) { - if (++taba[i + nb] == 0) { - break; - } - } - } - } - tabq[i] = q; - } -} - -/* 1 <= shift <= JS_LIMB_BITS - 1 */ -static js_limb_t js_mp_shl(js_limb_t *tabr, const js_limb_t *taba, int n, - int shift) -{ - int i; - js_limb_t l, v; - l = 0; - for(i = 0; i < n; i++) { - v = taba[i]; - tabr[i] = (v << shift) | l; - l = v >> (JS_LIMB_BITS - shift); - } - return l; -} - -/* r = (a + high*B^n) >> shift. Return the remainder r (0 <= r < 2^shift). - 1 <= shift <= LIMB_BITS - 1 */ -static js_limb_t js_mp_shr(js_limb_t *tab_r, const js_limb_t *tab, int n, - int shift, js_limb_t high) -{ - int i; - js_limb_t l, a; - - l = high; - for(i = n - 1; i >= 0; i--) { - a = tab[i]; - tab_r[i] = (a >> shift) | (l << (JS_LIMB_BITS - shift)); - l = a; - } - return l & (((js_limb_t)1 << shift) - 1); -} - -static JSBigInt *js_bigint_new(JSContext *ctx, int len) -{ - JSBigInt *r; - if (len > JS_BIGINT_MAX_SIZE) { - JS_ThrowRangeError(ctx, "BigInt is too large to allocate"); - return NULL; - } - r = js_malloc(ctx, sizeof(JSBigInt) + len * sizeof(js_limb_t)); - if (!r) - return NULL; - r->header.ref_count = 1; - r->len = len; - return r; -} - -static JSBigInt *js_bigint_set_si(JSBigIntBuf *buf, js_slimb_t a) -{ - JSBigInt *r = (JSBigInt *)buf->big_int_buf; - r->header.ref_count = 0; /* fail safe */ - r->len = 1; - r->tab[0] = a; - return r; -} - -static JSBigInt *js_bigint_set_si64(JSBigIntBuf *buf, int64_t a) -{ - JSBigInt *r = (JSBigInt *)buf->big_int_buf; - r->header.ref_count = 0; /* fail safe */ - if (a >= INT32_MIN && a <= INT32_MAX) { - r->len = 1; - r->tab[0] = a; - } else { - r->len = 2; - r->tab[0] = a; - r->tab[1] = a >> JS_LIMB_BITS; - } - return r; -} - -/* val must be a short big int */ -static JSBigInt *js_bigint_set_short(JSBigIntBuf *buf, JSValueConst val) -{ - return js_bigint_set_si(buf, JS_VALUE_GET_SHORT_BIG_INT(val)); -} - -static __maybe_unused void js_bigint_dump1(JSContext *ctx, const char *str, - const js_limb_t *tab, int len) -{ - int i; - printf("%s: ", str); - for(i = len - 1; i >= 0; i--) { - printf(" %08x", tab[i]); - } - printf("\n"); -} - -static __maybe_unused void js_bigint_dump(JSContext *ctx, const char *str, - const JSBigInt *p) -{ - js_bigint_dump1(ctx, str, p->tab, p->len); -} - -static JSBigInt *js_bigint_new_si(JSContext *ctx, js_slimb_t a) -{ - JSBigInt *r; - r = js_bigint_new(ctx, 1); - if (!r) - return NULL; - r->tab[0] = a; - return r; -} - -static JSBigInt *js_bigint_new_si64(JSContext *ctx, int64_t a) -{ - if (a >= INT32_MIN && a <= INT32_MAX) { - return js_bigint_new_si(ctx, a); - } else { - JSBigInt *r; - r = js_bigint_new(ctx, 2); - if (!r) - return NULL; - r->tab[0] = a; - r->tab[1] = a >> 32; - return r; - } -} - -static JSBigInt *js_bigint_new_ui64(JSContext *ctx, uint64_t a) -{ - if (a <= INT64_MAX) { - return js_bigint_new_si64(ctx, a); - } else { - JSBigInt *r; - r = js_bigint_new(ctx, (65 + JS_LIMB_BITS - 1) / JS_LIMB_BITS); - if (!r) - return NULL; - r->tab[0] = a; - r->tab[1] = a >> 32; - r->tab[2] = 0; - return r; - } -} - -static JSBigInt *js_bigint_new_di(JSContext *ctx, js_sdlimb_t a) -{ - JSBigInt *r; - if (a == (js_slimb_t)a) { - r = js_bigint_new(ctx, 1); - if (!r) - return NULL; - r->tab[0] = a; - } else { - r = js_bigint_new(ctx, 2); - if (!r) - return NULL; - r->tab[0] = a; - r->tab[1] = a >> JS_LIMB_BITS; - } - return r; -} - -/* Remove redundant high order limbs. Warning: 'a' may be - reallocated. Can never fail. -*/ -static JSBigInt *js_bigint_normalize1(JSContext *ctx, JSBigInt *a, int l) -{ - js_limb_t v; - - assert(a->header.ref_count == 1); - while (l > 1) { - v = a->tab[l - 1]; - if ((v != 0 && v != -1) || - (v & 1) != (a->tab[l - 2] >> (JS_LIMB_BITS - 1))) { - break; - } - l--; - } - if (l != a->len) { - JSBigInt *a1; - /* realloc to reduce the size */ - a->len = l; - a1 = js_realloc(ctx, a, sizeof(JSBigInt) + l * sizeof(js_limb_t)); - if (a1) - a = a1; - } - return a; -} - -static JSBigInt *js_bigint_normalize(JSContext *ctx, JSBigInt *a) -{ - return js_bigint_normalize1(ctx, a, a->len); -} - -/* return 0 or 1 depending on the sign */ -static inline int js_bigint_sign(const JSBigInt *a) -{ - return a->tab[a->len - 1] >> (JS_LIMB_BITS - 1); -} - -static js_slimb_t js_bigint_get_si_sat(const JSBigInt *a) -{ - if (a->len == 1) { - return a->tab[0]; - } else { - if (js_bigint_sign(a)) - return INT32_MIN; - else - return INT32_MAX; - } -} - -/* add the op1 limb */ -static JSBigInt *js_bigint_extend(JSContext *ctx, JSBigInt *r, - js_limb_t op1) -{ - int n2 = r->len; - if ((op1 != 0 && op1 != -1) || - (op1 & 1) != r->tab[n2 - 1] >> (JS_LIMB_BITS - 1)) { - JSBigInt *r1; - r1 = js_realloc(ctx, r, - sizeof(JSBigInt) + (n2 + 1) * sizeof(js_limb_t)); - if (!r1) { - js_free(ctx, r); - return NULL; - } - r = r1; - r->len = n2 + 1; - r->tab[n2] = op1; - } else { - /* otherwise still need to normalize the result */ - r = js_bigint_normalize(ctx, r); - } - return r; -} - -/* return NULL in case of error. Compute a + b (b_neg = 0) or a - b - (b_neg = 1) */ -/* XXX: optimize */ -static JSBigInt *js_bigint_add(JSContext *ctx, const JSBigInt *a, - const JSBigInt *b, int b_neg) -{ - JSBigInt *r; - int n1, n2, i; - js_limb_t carry, op1, op2, a_sign, b_sign; - - n2 = max_int(a->len, b->len); - n1 = min_int(a->len, b->len); - r = js_bigint_new(ctx, n2); - if (!r) - return NULL; - /* XXX: optimize */ - /* common part */ - carry = b_neg; - for(i = 0; i < n1; i++) { - op1 = a->tab[i]; - op2 = b->tab[i] ^ (-b_neg); - ADDC(r->tab[i], carry, op1, op2, carry); - } - a_sign = -js_bigint_sign(a); - b_sign = (-js_bigint_sign(b)) ^ (-b_neg); - /* part with sign extension of one operand */ - if (a->len > b->len) { - for(i = n1; i < n2; i++) { - op1 = a->tab[i]; - ADDC(r->tab[i], carry, op1, b_sign, carry); - } - } else if (a->len < b->len) { - for(i = n1; i < n2; i++) { - op2 = b->tab[i] ^ (-b_neg); - ADDC(r->tab[i], carry, a_sign, op2, carry); - } - } - - /* part with sign extension for both operands. Extend the result - if necessary */ - return js_bigint_extend(ctx, r, a_sign + b_sign + carry); -} - -/* XXX: optimize */ -static JSBigInt *js_bigint_neg(JSContext *ctx, const JSBigInt *a) -{ - JSBigIntBuf buf; - JSBigInt *b; - b = js_bigint_set_si(&buf, 0); - return js_bigint_add(ctx, b, a, 1); -} - -static JSBigInt *js_bigint_mul(JSContext *ctx, const JSBigInt *a, - const JSBigInt *b) -{ - JSBigInt *r; - - r = js_bigint_new(ctx, a->len + b->len); - if (!r) - return NULL; - js_mp_mul_basecase(r->tab, a->tab, a->len, b->tab, b->len); - /* correct the result if negative operands (no overflow is - possible) */ - if (js_bigint_sign(a)) - js_mp_sub(r->tab + a->len, r->tab + a->len, b->tab, b->len, 0); - if (js_bigint_sign(b)) - js_mp_sub(r->tab + b->len, r->tab + b->len, a->tab, a->len, 0); - return js_bigint_normalize(ctx, r); -} - -/* return the division or the remainder. 'b' must be != 0. return NULL - in case of exception (division by zero or memory error) */ -static JSBigInt *js_bigint_divrem(JSContext *ctx, const JSBigInt *a, - const JSBigInt *b, bool is_rem) -{ - JSBigInt *r, *q; - js_limb_t *tabb, h; - int na, nb, a_sign, b_sign, shift; - - if (b->len == 1 && b->tab[0] == 0) { - JS_ThrowRangeError(ctx, "BigInt division by zero"); - return NULL; - } - - a_sign = js_bigint_sign(a); - b_sign = js_bigint_sign(b); - na = a->len; - nb = b->len; - - r = js_bigint_new(ctx, na + 2); - if (!r) - return NULL; - if (a_sign) { - js_mp_neg(r->tab, a->tab, na); - } else { - memcpy(r->tab, a->tab, na * sizeof(a->tab[0])); - } - /* normalize */ - while (na > 1 && r->tab[na - 1] == 0) - na--; - - tabb = js_malloc(ctx, nb * sizeof(tabb[0])); - if (!tabb) { - js_free(ctx, r); - return NULL; - } - if (b_sign) { - js_mp_neg(tabb, b->tab, nb); - } else { - memcpy(tabb, b->tab, nb * sizeof(tabb[0])); - } - /* normalize */ - while (nb > 1 && tabb[nb - 1] == 0) - nb--; - - /* trivial case if 'a' is small */ - if (na < nb) { - js_free(ctx, r); - js_free(ctx, tabb); - if (is_rem) { - /* r = a */ - r = js_bigint_new(ctx, a->len); - if (!r) - return NULL; - memcpy(r->tab, a->tab, a->len * sizeof(a->tab[0])); - return r; - } else { - /* q = 0 */ - return js_bigint_new_si(ctx, 0); - } - } - - /* normalize 'b' */ - shift = js_limb_clz(tabb[nb - 1]); - if (shift != 0) { - js_mp_shl(tabb, tabb, nb, shift); - h = js_mp_shl(r->tab, r->tab, na, shift); - if (h != 0) - r->tab[na++] = h; - } - - q = js_bigint_new(ctx, na - nb + 2); /* one more limb for the sign */ - if (!q) { - js_free(ctx, r); - js_free(ctx, tabb); - return NULL; - } - - // js_bigint_dump1(ctx, "a", r->tab, na); - // js_bigint_dump1(ctx, "b", tabb, nb); - js_mp_divnorm(q->tab, r->tab, na, tabb, nb); - js_free(ctx, tabb); - - if (is_rem) { - js_free(ctx, q); - if (shift != 0) - js_mp_shr(r->tab, r->tab, nb, shift, 0); - r->tab[nb++] = 0; - if (a_sign) - js_mp_neg(r->tab, r->tab, nb); - r = js_bigint_normalize1(ctx, r, nb); - return r; - } else { - js_free(ctx, r); - q->tab[na - nb + 1] = 0; - if (a_sign ^ b_sign) { - js_mp_neg(q->tab, q->tab, q->len); - } - q = js_bigint_normalize(ctx, q); - return q; - } -} - -/* and, or, xor */ -static JSBigInt *js_bigint_logic(JSContext *ctx, const JSBigInt *a, - const JSBigInt *b, OPCodeEnum op) -{ - JSBigInt *r; - js_limb_t b_sign; - int a_len, b_len, i; - - if (a->len < b->len) { - const JSBigInt *tmp; - tmp = a; - a = b; - b = tmp; - } - /* a_len >= b_len */ - a_len = a->len; - b_len = b->len; - b_sign = -js_bigint_sign(b); - - r = js_bigint_new(ctx, a_len); - if (!r) - return NULL; - switch(op) { - case OP_or: - for(i = 0; i < b_len; i++) { - r->tab[i] = a->tab[i] | b->tab[i]; - } - for(i = b_len; i < a_len; i++) { - r->tab[i] = a->tab[i] | b_sign; - } - break; - case OP_and: - for(i = 0; i < b_len; i++) { - r->tab[i] = a->tab[i] & b->tab[i]; - } - for(i = b_len; i < a_len; i++) { - r->tab[i] = a->tab[i] & b_sign; - } - break; - case OP_xor: - for(i = 0; i < b_len; i++) { - r->tab[i] = a->tab[i] ^ b->tab[i]; - } - for(i = b_len; i < a_len; i++) { - r->tab[i] = a->tab[i] ^ b_sign; - } - break; - default: - abort(); - } - return js_bigint_normalize(ctx, r); -} - -static JSBigInt *js_bigint_not(JSContext *ctx, const JSBigInt *a) -{ - JSBigInt *r; - int i; - - r = js_bigint_new(ctx, a->len); - if (!r) - return NULL; - for(i = 0; i < a->len; i++) { - r->tab[i] = ~a->tab[i]; - } - /* no normalization is needed */ - return r; -} - -static JSBigInt *js_bigint_shl(JSContext *ctx, const JSBigInt *a, - unsigned int shift1) -{ - int d, i, shift; - JSBigInt *r; - js_limb_t l; - - if (a->len == 1 && a->tab[0] == 0) - return js_bigint_new_si(ctx, 0); /* zero case */ - d = shift1 / JS_LIMB_BITS; - shift = shift1 % JS_LIMB_BITS; - r = js_bigint_new(ctx, a->len + d); - if (!r) - return NULL; - for(i = 0; i < d; i++) - r->tab[i] = 0; - if (shift == 0) { - for(i = 0; i < a->len; i++) { - r->tab[i + d] = a->tab[i]; - } - } else { - l = js_mp_shl(r->tab + d, a->tab, a->len, shift); - if (js_bigint_sign(a)) - l |= (js_limb_t)(-1) << shift; - r = js_bigint_extend(ctx, r, l); - } - return r; -} - -static JSBigInt *js_bigint_shr(JSContext *ctx, const JSBigInt *a, - unsigned int shift1) -{ - int d, i, shift, a_sign, n1; - JSBigInt *r; - - d = shift1 / JS_LIMB_BITS; - shift = shift1 % JS_LIMB_BITS; - a_sign = js_bigint_sign(a); - if (d >= a->len) - return js_bigint_new_si(ctx, -a_sign); - n1 = a->len - d; - r = js_bigint_new(ctx, n1); - if (!r) - return NULL; - if (shift == 0) { - for(i = 0; i < n1; i++) { - r->tab[i] = a->tab[i + d]; - } - /* no normalization is needed */ - } else { - js_mp_shr(r->tab, a->tab + d, n1, shift, -a_sign); - r = js_bigint_normalize(ctx, r); - } - return r; -} - -static JSBigInt *js_bigint_pow(JSContext *ctx, const JSBigInt *a, JSBigInt *b) -{ - uint32_t e; - int n_bits, i; - JSBigInt *r, *r1; - - /* b must be >= 0 */ - if (js_bigint_sign(b)) { - JS_ThrowRangeError(ctx, "BigInt negative exponent"); - return NULL; - } - if (b->len == 1 && b->tab[0] == 0) { - /* a^0 = 1 */ - return js_bigint_new_si(ctx, 1); - } else if (a->len == 1) { - js_limb_t v; - bool is_neg; - - v = a->tab[0]; - if (v <= 1) - return js_bigint_new_si(ctx, v); - else if (v == -1) - return js_bigint_new_si(ctx, 1 - 2 * (b->tab[0] & 1)); - is_neg = (js_slimb_t)v < 0; - if (is_neg) - v = -v; - if ((v & (v - 1)) == 0) { - uint64_t e1; - int n; - /* v = 2^n */ - n = JS_LIMB_BITS - 1 - js_limb_clz(v); - if (b->len > 1) - goto overflow; - if (b->tab[0] > INT32_MAX) - goto overflow; - e = b->tab[0]; - e1 = (uint64_t)e * n; - if (e1 > JS_BIGINT_MAX_SIZE * JS_LIMB_BITS) - goto overflow; - e = e1; - if (is_neg) - is_neg = b->tab[0] & 1; - r = js_bigint_new(ctx, - (e + JS_LIMB_BITS + 1 - is_neg) / JS_LIMB_BITS); - if (!r) - return NULL; - memset(r->tab, 0, sizeof(r->tab[0]) * r->len); - r->tab[e / JS_LIMB_BITS] = - (js_limb_t)(1 - 2 * is_neg) << (e % JS_LIMB_BITS); - return r; - } - } - if (b->len > 1) - goto overflow; - if (b->tab[0] > INT32_MAX) - goto overflow; - e = b->tab[0]; - n_bits = 32 - clz32(e); - - r = js_bigint_new(ctx, a->len); - if (!r) - return NULL; - memcpy(r->tab, a->tab, a->len * sizeof(a->tab[0])); - for(i = n_bits - 2; i >= 0; i--) { - r1 = js_bigint_mul(ctx, r, r); - if (!r1) - return NULL; - js_free(ctx, r); - r = r1; - if ((e >> i) & 1) { - r1 = js_bigint_mul(ctx, r, a); - if (!r1) - return NULL; - js_free(ctx, r); - r = r1; - } - } - return r; - overflow: - JS_ThrowRangeError(ctx, "BigInt is too large"); - return NULL; -} - -/* return (mant, exp) so that abs(a) ~ mant*2^(exp - (limb_bits - - 1). a must be != 0. */ -static uint64_t js_bigint_get_mant_exp(JSContext *ctx, - int *pexp, const JSBigInt *a) -{ - js_limb_t t[4 - JS_LIMB_BITS / 32], carry, v, low_bits; - int n1, n2, sgn, shift, i, j, e; - uint64_t a1, a0; - - n2 = 4 - JS_LIMB_BITS / 32; - n1 = a->len - n2; - sgn = js_bigint_sign(a); - - /* low_bits != 0 if there are a non zero low bit in abs(a) */ - low_bits = 0; - carry = sgn; - for(i = 0; i < n1; i++) { - v = (a->tab[i] ^ (-sgn)) + carry; - carry = v < carry; - low_bits |= v; - } - /* get the n2 high limbs of abs(a) */ - for(j = 0; j < n2; j++) { - i = j + n1; - if (i < 0) { - v = 0; - } else { - v = (a->tab[i] ^ (-sgn)) + carry; - carry = v < carry; - } - t[j] = v; - } - - a1 = ((uint64_t)t[2] << 32) | t[1]; - a0 = (uint64_t)t[0] << 32; - a0 |= (low_bits != 0); - /* normalize */ - { - shift = clz64(a1); - if (shift != 0) { - a1 = (a1 << shift) | (a0 >> (64 - shift)); - a0 <<= shift; - } - } - a1 |= (a0 != 0); /* keep the bits for the final rounding */ - /* compute the exponent */ - e = a->len * JS_LIMB_BITS - shift - 1; - *pexp = e; - return a1; -} - -/* shift left with round to nearest, ties to even. n >= 1 */ -static uint64_t shr_rndn(uint64_t a, int n) -{ - uint64_t addend = ((a >> n) & 1) + ((1 << (n - 1)) - 1); - return (a + addend) >> n; -} - -/* convert to float64 with round to nearest, ties to even. Return - +/-infinity if too large. */ -static double js_bigint_to_float64(JSContext *ctx, const JSBigInt *a) -{ - int sgn, e; - uint64_t mant; - - if (a->len == 1) { - /* fast case, including zero */ - return (double)(js_slimb_t)a->tab[0]; - } - - sgn = js_bigint_sign(a); - mant = js_bigint_get_mant_exp(ctx, &e, a); - if (e > 1023) { - /* overflow: return infinity */ - mant = 0; - e = 1024; - } else { - mant = (mant >> 1) | (mant & 1); /* avoid overflow in rounding */ - mant = shr_rndn(mant, 10); - /* rounding can cause an overflow */ - if (mant >= ((uint64_t)1 << 53)) { - mant >>= 1; - e++; - } - mant &= (((uint64_t)1 << 52) - 1); - } - return uint64_as_float64(((uint64_t)sgn << 63) | - ((uint64_t)(e + 1023) << 52) | - mant); -} - -/* return (1, NULL) if not an integer, (2, NULL) if NaN or Infinity, - (0, n) if an integer, (0, NULL) in case of memory error */ -static JSBigInt *js_bigint_from_float64(JSContext *ctx, int *pres, double a1) -{ - uint64_t a = float64_as_uint64(a1); - int sgn, e, shift; - uint64_t mant; - JSBigIntBuf buf; - JSBigInt *r; - - sgn = a >> 63; - e = (a >> 52) & ((1 << 11) - 1); - mant = a & (((uint64_t)1 << 52) - 1); - if (e == 2047) { - /* NaN, Infinity */ - *pres = 2; - return NULL; - } - if (e == 0 && mant == 0) { - /* zero */ - *pres = 0; - return js_bigint_new_si(ctx, 0); - } - e -= 1023; - /* 0 < a < 1 : not an integer */ - if (e < 0) - goto not_an_integer; - mant |= (uint64_t)1 << 52; - if (e < 52) { - shift = 52 - e; - /* check that there is no fractional part */ - if (mant & (((uint64_t)1 << shift) - 1)) { - not_an_integer: - *pres = 1; - return NULL; - } - mant >>= shift; - e = 0; - } else { - e -= 52; - } - if (sgn) - mant = -mant; - /* the integer is mant*2^e */ - r = js_bigint_set_si64(&buf, (int64_t)mant); - *pres = 0; - return js_bigint_shl(ctx, r, e); -} - -/* return -1, 0, 1 or (2) (unordered) */ -static int js_bigint_float64_cmp(JSContext *ctx, const JSBigInt *a, - double b) -{ - int b_sign, a_sign, e, f; - uint64_t mant, b1, a_mant; - - b1 = float64_as_uint64(b); - b_sign = b1 >> 63; - e = (b1 >> 52) & ((1 << 11) - 1); - mant = b1 & (((uint64_t)1 << 52) - 1); - a_sign = js_bigint_sign(a); - if (e == 2047) { - if (mant != 0) { - /* NaN */ - return 2; - } else { - /* +/- infinity */ - return 2 * b_sign - 1; - } - } else if (e == 0 && mant == 0) { - /* b = +/-0 */ - if (a->len == 1 && a->tab[0] == 0) - return 0; - else - return 1 - 2 * a_sign; - } else if (a->len == 1 && a->tab[0] == 0) { - /* a = 0, b != 0 */ - return 2 * b_sign - 1; - } else if (a_sign != b_sign) { - return 1 - 2 * a_sign; - } else { - e -= 1023; - /* Note: handling denormals is not necessary because we - compare to integers hence f >= 0 */ - /* compute f so that 2^f <= abs(a) < 2^(f+1) */ - a_mant = js_bigint_get_mant_exp(ctx, &f, a); - if (f != e) { - if (f < e) - return -1; - else - return 1; - } else { - mant = (mant | ((uint64_t)1 << 52)) << 11; /* align to a_mant */ - if (a_mant < mant) - return 2 * a_sign - 1; - else if (a_mant > mant) - return 1 - 2 * a_sign; - else - return 0; - } - } -} - -/* return -1, 0 or 1 */ -static int js_bigint_cmp(JSContext *ctx, const JSBigInt *a, - const JSBigInt *b) -{ - int a_sign, b_sign, res, i; - a_sign = js_bigint_sign(a); - b_sign = js_bigint_sign(b); - if (a_sign != b_sign) { - res = 1 - 2 * a_sign; - } else { - /* we assume the numbers are normalized */ - if (a->len != b->len) { - if (a->len < b->len) - res = 2 * a_sign - 1; - else - res = 1 - 2 * a_sign; - } else { - res = 0; - for(i = a->len -1; i >= 0; i--) { - if (a->tab[i] != b->tab[i]) { - if (a->tab[i] < b->tab[i]) - res = -1; - else - res = 1; - break; - } - } - } - } - return res; -} - -/* contains 10^i */ -static const js_limb_t js_pow_dec[JS_LIMB_DIGITS + 1] = { - 1U, - 10U, - 100U, - 1000U, - 10000U, - 100000U, - 1000000U, - 10000000U, - 100000000U, - 1000000000U, -}; - -/* syntax: [-]digits in base radix. Return NULL if memory error. radix - = 10, 2, 8 or 16. */ -static JSBigInt *js_bigint_from_string(JSContext *ctx, - const char *str, int radix) -{ - const char *p = str; - size_t n_digits1; - int is_neg, n_digits, n_limbs, len, log2_radix, n_bits, i; - JSBigInt *r; - js_limb_t v, c, h; - - is_neg = 0; - if (*p == '-') { - is_neg = 1; - p++; - } - while (*p == '0') - p++; - n_digits1 = strlen(p); - /* the real check for overflox is done js_bigint_new(). Here - we just avoid integer overflow */ - if (n_digits1 > JS_BIGINT_MAX_SIZE * JS_LIMB_BITS) { - JS_ThrowRangeError(ctx, "BigInt is too large to allocate"); - return NULL; - } - n_digits = n_digits1; - log2_radix = 32 - clz32(radix - 1); /* ceil(log2(radix)) */ - /* compute the maximum number of limbs */ - if (radix == 10) { - n_bits = (n_digits * 27 + 7) / 8; /* >= ceil(n_digits * log2(10)) */ - } else { - n_bits = n_digits * log2_radix; - } - /* we add one extra bit for the sign */ - n_limbs = max_int(1, n_bits / JS_LIMB_BITS + 1); - r = js_bigint_new(ctx, n_limbs); - if (!r) - return NULL; - if (radix == 10) { - int digits_per_limb = JS_LIMB_DIGITS; - len = 1; - r->tab[0] = 0; - for(;;) { - /* XXX: slow */ - v = 0; - for(i = 0; i < digits_per_limb; i++) { - c = js_to_digit(*p); - if (c >= radix) - break; - p++; - v = v * 10 + c; - } - if (i == 0) - break; - if (len == 1 && r->tab[0] == 0) { - r->tab[0] = v; - } else { - h = js_mp_mul1(r->tab, r->tab, len, js_pow_dec[i], v); - if (h != 0) { - r->tab[len++] = h; - } - } - } - /* add one extra limb to have the correct sign*/ - if ((r->tab[len - 1] >> (JS_LIMB_BITS - 1)) != 0) - r->tab[len++] = 0; - r->len = len; - } else { - unsigned int bit_pos, shift, pos; - - /* power of two base: no multiplication is needed */ - r->len = n_limbs; - memset(r->tab, 0, sizeof(r->tab[0]) * n_limbs); - for(i = 0; i < n_digits; i++) { - c = js_to_digit(p[n_digits - 1 - i]); - assert(c < radix); - bit_pos = i * log2_radix; - shift = bit_pos & (JS_LIMB_BITS - 1); - pos = bit_pos / JS_LIMB_BITS; - r->tab[pos] |= c << shift; - /* if log2_radix does not divide JS_LIMB_BITS, needed an - additional op */ - if (shift + log2_radix > JS_LIMB_BITS) { - r->tab[pos + 1] |= c >> (JS_LIMB_BITS - shift); - } - } - } - r = js_bigint_normalize(ctx, r); - /* XXX: could do it in place */ - if (is_neg) { - JSBigInt *r1; - r1 = js_bigint_neg(ctx, r); - js_free(ctx, r); - r = r1; - } - return r; -} - -/* 2 <= base <= 36 */ -static char const digits[36] = { - '0','1','2','3','4','5','6','7','8','9', - 'a','b','c','d','e','f','g','h','i','j', - 'k','l','m','n','o','p','q','r','s','t', - 'u','v','w','x','y','z' -}; - -/* special version going backwards */ -/* XXX: use dtoa.c */ -static char *js_u64toa(char *q, int64_t n, unsigned int base) -{ - int digit; - if (base == 10) { - /* division by known base uses multiplication */ - do { - digit = (uint64_t)n % 10; - n = (uint64_t)n / 10; - *--q = '0' + digit; - } while (n != 0); - } else { - do { - digit = (uint64_t)n % base; - n = (uint64_t)n / base; - *--q = digits[digit]; - } while (n != 0); - } - return q; -} - -/* len >= 1. 2 <= radix <= 36 */ -static char *js_limb_to_a(char *q, js_limb_t n, unsigned int radix, int len) -{ - int digit, i; - - if (radix == 10) { - /* specific case with constant divisor */ - /* XXX: optimize */ - for(i = 0; i < len; i++) { - digit = (js_limb_t)n % 10; - n = (js_limb_t)n / 10; - *--q = digit + '0'; - } - } else { - for(i = 0; i < len; i++) { - digit = (js_limb_t)n % radix; - n = (js_limb_t)n / radix; - *--q = digits[digit]; - } - } - return q; -} - -#define JS_RADIX_MAX 36 - -static const uint8_t js_digits_per_limb_table[JS_RADIX_MAX - 1] = { -32,20,16,13,12,11,10,10, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -}; - -static const js_limb_t js_radix_base_table[JS_RADIX_MAX - 1] = { - 0x00000000, 0xcfd41b91, 0x00000000, 0x48c27395, - 0x81bf1000, 0x75db9c97, 0x40000000, 0xcfd41b91, - 0x3b9aca00, 0x8c8b6d2b, 0x19a10000, 0x309f1021, - 0x57f6c100, 0x98c29b81, 0x00000000, 0x18754571, - 0x247dbc80, 0x3547667b, 0x4c4b4000, 0x6b5a6e1d, - 0x94ace180, 0xcaf18367, 0x0b640000, 0x0e8d4a51, - 0x1269ae40, 0x17179149, 0x1cb91000, 0x23744899, - 0x2b73a840, 0x34e63b41, 0x40000000, 0x4cfa3cc1, - 0x5c13d840, 0x6d91b519, 0x81bf1000, -}; - -static JSValue js_bigint_to_string1(JSContext *ctx, JSValueConst val, int radix) -{ - if (JS_VALUE_GET_TAG(val) == JS_TAG_SHORT_BIG_INT) { - char buf[66]; - int len; - len = i64toa_radix(buf, JS_VALUE_GET_SHORT_BIG_INT(val), radix); - return js_new_string8_len(ctx, buf, len); - } else { - JSBigInt *r, *tmp = NULL; - char *buf, *q, *buf_end; - int is_neg, n_bits, log2_radix, n_digits; - bool is_binary_radix; - JSValue res; - - assert(JS_VALUE_GET_TAG(val) == JS_TAG_BIG_INT); - r = JS_VALUE_GET_PTR(val); - if (r->len == 1 && r->tab[0] == 0) { - /* '0' case */ - return js_new_string8_len(ctx, "0", 1); - } - is_binary_radix = ((radix & (radix - 1)) == 0); - is_neg = js_bigint_sign(r); - if (is_neg) { - tmp = js_bigint_neg(ctx, r); - if (!tmp) - return JS_EXCEPTION; - r = tmp; - } else if (!is_binary_radix) { - /* need to modify 'r' */ - tmp = js_bigint_new(ctx, r->len); - if (!tmp) - return JS_EXCEPTION; - memcpy(tmp->tab, r->tab, r->len * sizeof(r->tab[0])); - r = tmp; - } - log2_radix = 31 - clz32(radix); /* floor(log2(radix)) */ - n_bits = r->len * JS_LIMB_BITS - js_limb_clz(r->tab[r->len - 1]); - /* n_digits is exact only if radix is a power of - two. Otherwise it is >= the exact number of digits */ - n_digits = (n_bits + log2_radix - 1) / log2_radix; - /* XXX: could directly build the JSString */ - buf = js_malloc(ctx, n_digits + is_neg + 1); - if (!buf) { - js_free(ctx, tmp); - return JS_EXCEPTION; - } - q = buf + n_digits + is_neg + 1; - *--q = '\0'; - buf_end = q; - if (!is_binary_radix) { - int len; - js_limb_t radix_base, v; - radix_base = js_radix_base_table[radix - 2]; - len = r->len; - for(;;) { - /* remove leading zero limbs */ - while (len > 1 && r->tab[len - 1] == 0) - len--; - if (len == 1 && r->tab[0] < radix_base) { - v = r->tab[0]; - if (v != 0) { - q = js_u64toa(q, v, radix); - } - break; - } else { - v = js_mp_div1(r->tab, r->tab, len, radix_base, 0); - q = js_limb_to_a(q, v, radix, js_digits_per_limb_table[radix - 2]); - } - } - } else { - int i, shift; - unsigned int bit_pos, pos, c; - - /* radix is a power of two */ - for(i = 0; i < n_digits; i++) { - bit_pos = i * log2_radix; - pos = bit_pos / JS_LIMB_BITS; - shift = bit_pos % JS_LIMB_BITS; - c = r->tab[pos] >> shift; - if ((shift + log2_radix) > JS_LIMB_BITS && - (pos + 1) < r->len) { - c |= r->tab[pos + 1] << (JS_LIMB_BITS - shift); - } - c &= (radix - 1); - *--q = digits[c]; - } - } - if (is_neg) - *--q = '-'; - js_free(ctx, tmp); - res = js_new_string8_len(ctx, q, buf_end - q); - js_free(ctx, buf); - return res; - } -} - -/* if possible transform a BigInt to short big and free it, otherwise - return a normal bigint */ -static JSValue JS_CompactBigInt(JSContext *ctx, JSBigInt *p) -{ - JSValue res; - if (p->len == 1) { - res = __JS_NewShortBigInt(ctx, (js_slimb_t)p->tab[0]); - js_free(ctx, p); - return res; - } else { - return JS_MKPTR(JS_TAG_BIG_INT, p); - } -} - -#define ATOD_INT_ONLY (1 << 0) -/* accept Oo and Ob prefixes in addition to 0x prefix if radix = 0 */ -#define ATOD_ACCEPT_BIN_OCT (1 << 2) -/* accept O prefix as octal if radix == 0 and properly formed (Annex B) */ -#define ATOD_ACCEPT_LEGACY_OCTAL (1 << 4) -/* accept _ between digits as a digit separator */ -#define ATOD_ACCEPT_UNDERSCORES (1 << 5) -/* allow a suffix to override the type */ -#define ATOD_ACCEPT_SUFFIX (1 << 6) -/* default type */ -#define ATOD_TYPE_MASK (3 << 7) -#define ATOD_TYPE_FLOAT64 (0 << 7) -#define ATOD_TYPE_BIG_INT (1 << 7) -/* accept -0x1 */ -#define ATOD_ACCEPT_PREFIX_AFTER_SIGN (1 << 10) - -/* return an exception in case of memory error. Return JS_NAN if - invalid syntax */ -/* XXX: directly use js_atod() */ -static JSValue js_atof(JSContext *ctx, const char *str, const char **pp, - int radix, int flags) -{ - const char *p, *p_start; - int sep, is_neg; - bool is_float, has_legacy_octal; - int atod_type = flags & ATOD_TYPE_MASK; - char buf1[64], *buf; - int i, j, len; - bool buf_allocated = false; - JSValue val; - JSATODTempMem atod_mem; - - /* optional separator between digits */ - sep = (flags & ATOD_ACCEPT_UNDERSCORES) ? '_' : 256; - has_legacy_octal = false; - - p = str; - p_start = p; - is_neg = 0; - if (p[0] == '+') { - p++; - p_start++; - if (!(flags & ATOD_ACCEPT_PREFIX_AFTER_SIGN)) - goto no_radix_prefix; - } else if (p[0] == '-') { - p++; - p_start++; - is_neg = 1; - if (!(flags & ATOD_ACCEPT_PREFIX_AFTER_SIGN)) - goto no_radix_prefix; - } - if (p[0] == '0') { - if ((p[1] == 'x' || p[1] == 'X') && - (radix == 0 || radix == 16)) { - p += 2; - radix = 16; - } else if ((p[1] == 'o' || p[1] == 'O') && - radix == 0 && (flags & ATOD_ACCEPT_BIN_OCT)) { - p += 2; - radix = 8; - } else if ((p[1] == 'b' || p[1] == 'B') && - radix == 0 && (flags & ATOD_ACCEPT_BIN_OCT)) { - p += 2; - radix = 2; - } else if ((p[1] >= '0' && p[1] <= '9') && - radix == 0 && (flags & ATOD_ACCEPT_LEGACY_OCTAL)) { - int i; - has_legacy_octal = true; - sep = 256; - for (i = 1; (p[i] >= '0' && p[i] <= '7'); i++) - continue; - if (p[i] == '8' || p[i] == '9') - goto no_prefix; - p += 1; - radix = 8; - } else { - goto no_prefix; - } - /* there must be a digit after the prefix */ - if (js_to_digit((uint8_t)*p) >= radix) - goto fail; - no_prefix: ; - } else { - no_radix_prefix: - if (!(flags & ATOD_INT_ONLY) && - (atod_type == ATOD_TYPE_FLOAT64) && - js__strstart(p, "Infinity", &p)) { - double d = INF; - if (is_neg) - d = -d; - val = js_float64(d); - goto done; - } - } - if (radix == 0) - radix = 10; - is_float = false; - p_start = p; - while (js_to_digit((uint8_t)*p) < radix - || (*p == sep && (radix != 10 || - p != p_start + 1 || p[-1] != '0') && - js_to_digit((uint8_t)p[1]) < radix)) { - p++; - } - if (!(flags & ATOD_INT_ONLY) && radix == 10) { - if (*p == '.' && (p > p_start || js_to_digit((uint8_t)p[1]) < radix)) { - is_float = true; - p++; - if (*p == sep) - goto fail; - while (js_to_digit((uint8_t)*p) < radix || - (*p == sep && js_to_digit((uint8_t)p[1]) < radix)) - p++; - } - if (p > p_start && (*p == 'e' || *p == 'E')) { - const char *p1 = p + 1; - is_float = true; - if (*p1 == '+') { - p1++; - } else if (*p1 == '-') { - p1++; - } - if (is_digit((uint8_t)*p1)) { - p = p1 + 1; - while (is_digit((uint8_t)*p) || (*p == sep && is_digit((uint8_t)p[1]))) - p++; - } - } - } - if (p == p_start) - goto fail; - - buf = buf1; - buf_allocated = false; - len = p - p_start; - if (unlikely((len + 2) > sizeof(buf1))) { - buf = js_malloc_rt(ctx->rt, len + 2); /* no exception raised */ - if (!buf) - goto mem_error; - buf_allocated = true; - } - /* remove the separators and the radix prefixes */ - j = 0; - if (is_neg) - buf[j++] = '-'; - for (i = 0; i < len; i++) { - if (p_start[i] != '_') - buf[j++] = p_start[i]; - } - buf[j] = '\0'; - - if (flags & ATOD_ACCEPT_SUFFIX) { - if (*p == 'n') { - p++; - atod_type = ATOD_TYPE_BIG_INT; - } - } - - switch(atod_type) { - case ATOD_TYPE_FLOAT64: - { - double d; - d = js_atod(buf, NULL, radix, is_float ? 0 : JS_ATOD_INT_ONLY, - &atod_mem); - /* return int or float64 */ - val = js_number(d); - } - break; - case ATOD_TYPE_BIG_INT: - { - JSBigInt *r; - if (has_legacy_octal || is_float) - goto fail; - r = js_bigint_from_string(ctx, buf, radix); - if (!r) { - val = JS_EXCEPTION; - goto done; - } - val = JS_CompactBigInt(ctx, r); - } - break; - default: - abort(); - } - -done: - if (buf_allocated) - js_free_rt(ctx->rt, buf); - if (pp) - *pp = p; - return val; - fail: - val = JS_NAN; - goto done; - mem_error: - val = JS_ThrowOutOfMemory(ctx); - goto done; -} - -typedef enum JSToNumberHintEnum { - TON_FLAG_NUMBER, - TON_FLAG_NUMERIC, -} JSToNumberHintEnum; - -static JSValue JS_ToNumberHintFree(JSContext *ctx, JSValue val, - JSToNumberHintEnum flag) -{ - uint32_t tag; - JSValue ret; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_BIG_INT: - case JS_TAG_SHORT_BIG_INT: - if (flag != TON_FLAG_NUMERIC) { - JS_FreeValue(ctx, val); - return JS_ThrowTypeError(ctx, "cannot convert BigInt to number"); - } - ret = val; - break; - case JS_TAG_FLOAT64: - case JS_TAG_INT: - case JS_TAG_EXCEPTION: - ret = val; - break; - case JS_TAG_BOOL: - case JS_TAG_NULL: - ret = js_int32(JS_VALUE_GET_INT(val)); - break; - case JS_TAG_UNDEFINED: - ret = JS_NAN; - break; - case JS_TAG_OBJECT: - val = JS_ToPrimitiveFree(ctx, val, HINT_NUMBER); - if (JS_IsException(val)) - return JS_EXCEPTION; - goto redo; - case JS_TAG_STRING: - { - const char *str; - const char *p; - size_t len; - - str = JS_ToCStringLen(ctx, &len, val); - JS_FreeValue(ctx, val); - if (!str) - return JS_EXCEPTION; - p = str; - p += skip_spaces(p); - if ((p - str) == len) { - ret = JS_NewInt32(ctx, 0); - } else { - int flags = ATOD_ACCEPT_BIN_OCT; - ret = js_atof(ctx, p, &p, 0, flags); - if (!JS_IsException(ret)) { - p += skip_spaces(p); - if ((p - str) != len) { - JS_FreeValue(ctx, ret); - ret = JS_NAN; - } - } - } - JS_FreeCString(ctx, str); - } - break; - case JS_TAG_SYMBOL: - JS_FreeValue(ctx, val); - return JS_ThrowTypeError(ctx, "cannot convert symbol to number"); - default: - JS_FreeValue(ctx, val); - ret = JS_NAN; - break; - } - return ret; -} - -static JSValue JS_ToNumberFree(JSContext *ctx, JSValue val) -{ - return JS_ToNumberHintFree(ctx, val, TON_FLAG_NUMBER); -} - -static JSValue JS_ToNumericFree(JSContext *ctx, JSValue val) -{ - return JS_ToNumberHintFree(ctx, val, TON_FLAG_NUMERIC); -} - -static JSValue JS_ToNumeric(JSContext *ctx, JSValueConst val) -{ - return JS_ToNumericFree(ctx, js_dup(val)); -} - -static __exception int __JS_ToFloat64Free(JSContext *ctx, double *pres, - JSValue val) -{ - double d; - uint32_t tag; - - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) - goto fail; - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - d = JS_VALUE_GET_INT(val); - break; - case JS_TAG_FLOAT64: - d = JS_VALUE_GET_FLOAT64(val); - break; - default: - abort(); - } - *pres = d; - return 0; -fail: - *pres = NAN; - return -1; -} - -static inline int JS_ToFloat64Free(JSContext *ctx, double *pres, JSValue val) -{ - uint32_t tag; - - tag = JS_VALUE_GET_TAG(val); - if (tag <= JS_TAG_NULL) { - *pres = JS_VALUE_GET_INT(val); - return 0; - } else if (JS_TAG_IS_FLOAT64(tag)) { - *pres = JS_VALUE_GET_FLOAT64(val); - return 0; - } else { - return __JS_ToFloat64Free(ctx, pres, val); - } -} - -int JS_ToFloat64(JSContext *ctx, double *pres, JSValueConst val) -{ - return JS_ToFloat64Free(ctx, pres, js_dup(val)); -} - -JSValue JS_ToNumber(JSContext *ctx, JSValueConst val) -{ - return JS_ToNumberFree(ctx, js_dup(val)); -} - -/* same as JS_ToNumber() but return 0 in case of NaN/Undefined */ -static __maybe_unused JSValue JS_ToIntegerFree(JSContext *ctx, JSValue val) -{ - uint32_t tag; - JSValue ret; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - ret = js_int32(JS_VALUE_GET_INT(val)); - break; - case JS_TAG_FLOAT64: - { - double d = JS_VALUE_GET_FLOAT64(val); - if (isnan(d)) { - ret = js_int32(0); - } else { - /* convert -0 to +0 */ - d = trunc(d) + 0.0; - ret = js_number(d); - } - } - break; - default: - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) - return val; - goto redo; - } - return ret; -} - -/* Note: the integer value is satured to 32 bits */ -static int JS_ToInt32SatFree(JSContext *ctx, int *pres, JSValue val) -{ - uint32_t tag; - int ret; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - ret = JS_VALUE_GET_INT(val); - break; - case JS_TAG_EXCEPTION: - *pres = 0; - return -1; - case JS_TAG_FLOAT64: - { - double d = JS_VALUE_GET_FLOAT64(val); - if (isnan(d)) { - ret = 0; - } else { - if (d < INT32_MIN) - ret = INT32_MIN; - else if (d > INT32_MAX) - ret = INT32_MAX; - else - ret = (int)d; - } - } - break; - default: - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) { - *pres = 0; - return -1; - } - goto redo; - } - *pres = ret; - return 0; -} - -static int JS_ToInt32Sat(JSContext *ctx, int *pres, JSValueConst val) -{ - return JS_ToInt32SatFree(ctx, pres, js_dup(val)); -} - -static int JS_ToInt32Clamp(JSContext *ctx, int *pres, JSValueConst val, - int min, int max, int min_offset) -{ - int res = JS_ToInt32SatFree(ctx, pres, js_dup(val)); - if (res == 0) { - if (*pres < min) { - *pres += min_offset; - if (*pres < min) - *pres = min; - } else { - if (*pres > max) - *pres = max; - } - } - return res; -} - -static int JS_ToInt64SatFree(JSContext *ctx, int64_t *pres, JSValue val) -{ - uint32_t tag; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - *pres = JS_VALUE_GET_INT(val); - return 0; - case JS_TAG_EXCEPTION: - *pres = 0; - return -1; - case JS_TAG_FLOAT64: - { - double d = JS_VALUE_GET_FLOAT64(val); - if (isnan(d)) { - *pres = 0; - } else { - if (d < INT64_MIN) - *pres = INT64_MIN; - else if (d >= 0x1p63) - *pres = INT64_MAX; - else - *pres = (int64_t)d; - } - } - return 0; - default: - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) { - *pres = 0; - return -1; - } - goto redo; - } -} - -int JS_ToInt64Sat(JSContext *ctx, int64_t *pres, JSValueConst val) -{ - return JS_ToInt64SatFree(ctx, pres, js_dup(val)); -} - -int JS_ToInt64Clamp(JSContext *ctx, int64_t *pres, JSValueConst val, - int64_t min, int64_t max, int64_t neg_offset) -{ - int res = JS_ToInt64SatFree(ctx, pres, js_dup(val)); - if (res == 0) { - if (*pres < 0) - *pres += neg_offset; - if (*pres < min) - *pres = min; - else if (*pres > max) - *pres = max; - } - return res; -} - -/* Same as JS_ToInt32Free() but with a 64 bit result. Return (<0, 0) - in case of exception */ -static int JS_ToInt64Free(JSContext *ctx, int64_t *pres, JSValue val) -{ - uint32_t tag; - int64_t ret; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - ret = JS_VALUE_GET_INT(val); - break; - case JS_TAG_FLOAT64: - { - JSFloat64Union u; - double d; - int e; - d = JS_VALUE_GET_FLOAT64(val); - u.d = d; - /* we avoid doing fmod(x, 2^64) */ - e = (u.u64 >> 52) & 0x7ff; - if (likely(e <= (1023 + 62))) { - /* fast case */ - ret = (int64_t)d; - } else if (e <= (1023 + 62 + 53)) { - uint64_t v; - /* remainder modulo 2^64 */ - v = (u.u64 & (((uint64_t)1 << 52) - 1)) | ((uint64_t)1 << 52); - ret = v << ((e - 1023) - 52); - /* take the sign into account */ - if (u.u64 >> 63) - if (ret != INT64_MIN) - ret = -ret; - } else { - ret = 0; /* also handles NaN and +inf */ - } - } - break; - default: - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) { - *pres = 0; - return -1; - } - goto redo; - } - *pres = ret; - return 0; -} - -int JS_ToInt64(JSContext *ctx, int64_t *pres, JSValueConst val) -{ - return JS_ToInt64Free(ctx, pres, js_dup(val)); -} - -int JS_ToInt64Ext(JSContext *ctx, int64_t *pres, JSValueConst val) -{ - if (JS_IsBigInt(val)) - return JS_ToBigInt64(ctx, pres, val); - else - return JS_ToInt64(ctx, pres, val); -} - -/* return (<0, 0) in case of exception */ -static int JS_ToInt32Free(JSContext *ctx, int32_t *pres, JSValue val) -{ - uint32_t tag; - int32_t ret; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - ret = JS_VALUE_GET_INT(val); - break; - case JS_TAG_FLOAT64: - { - JSFloat64Union u; - double d; - int e; - d = JS_VALUE_GET_FLOAT64(val); - u.d = d; - /* we avoid doing fmod(x, 2^32) */ - e = (u.u64 >> 52) & 0x7ff; - if (likely(e <= (1023 + 30))) { - /* fast case */ - ret = (int32_t)d; - } else if (e <= (1023 + 30 + 53)) { - uint64_t v; - /* remainder modulo 2^32 */ - v = (u.u64 & (((uint64_t)1 << 52) - 1)) | ((uint64_t)1 << 52); - v = v << ((e - 1023) - 52 + 32); - ret = v >> 32; - /* take the sign into account */ - if (u.u64 >> 63) - if (ret != INT32_MIN) - ret = -ret; - } else { - ret = 0; /* also handles NaN and +inf */ - } - } - break; - default: - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) { - *pres = 0; - return -1; - } - goto redo; - } - *pres = ret; - return 0; -} - -int JS_ToInt32(JSContext *ctx, int32_t *pres, JSValueConst val) -{ - return JS_ToInt32Free(ctx, pres, js_dup(val)); -} - -static inline int JS_ToUint32Free(JSContext *ctx, uint32_t *pres, JSValue val) -{ - return JS_ToInt32Free(ctx, (int32_t *)pres, val); -} - -static int JS_ToUint8ClampFree(JSContext *ctx, int32_t *pres, JSValue val) -{ - uint32_t tag; - int res; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - res = JS_VALUE_GET_INT(val); - res = max_int(0, min_int(255, res)); - break; - case JS_TAG_FLOAT64: - { - double d = JS_VALUE_GET_FLOAT64(val); - if (isnan(d)) { - res = 0; - } else { - if (d < 0) - res = 0; - else if (d > 255) - res = 255; - else - res = lrint(d); - } - } - break; - default: - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) { - *pres = 0; - return -1; - } - goto redo; - } - *pres = res; - return 0; -} - -static __exception int JS_ToArrayLengthFree(JSContext *ctx, uint32_t *plen, - JSValue val, bool is_array_ctor) -{ - uint32_t tag, len; - - tag = JS_VALUE_GET_TAG(val); - switch(tag) { - case JS_TAG_INT: - case JS_TAG_BOOL: - case JS_TAG_NULL: - { - int v; - v = JS_VALUE_GET_INT(val); - if (v < 0) - goto fail; - len = v; - } - break; - default: - if (JS_TAG_IS_FLOAT64(tag)) { - double d; - d = JS_VALUE_GET_FLOAT64(val); - if (!(d >= 0 && d <= UINT32_MAX)) - goto fail; - len = (uint32_t)d; - if (len != d) - goto fail; - } else { - uint32_t len1; - - if (is_array_ctor) { - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) - return -1; - /* cannot recurse because val is a number */ - if (JS_ToArrayLengthFree(ctx, &len, val, true)) - return -1; - } else { - /* legacy behavior: must do the conversion twice and compare */ - if (JS_ToUint32(ctx, &len, val)) { - JS_FreeValue(ctx, val); - return -1; - } - val = JS_ToNumberFree(ctx, val); - if (JS_IsException(val)) - return -1; - /* cannot recurse because val is a number */ - if (JS_ToArrayLengthFree(ctx, &len1, val, false)) - return -1; - if (len1 != len) { - fail: - JS_ThrowRangeError(ctx, "invalid array length"); - return -1; - } - } - } - break; - } - *plen = len; - return 0; -} - -#define MAX_SAFE_INTEGER (((int64_t)1 << 53) - 1) - -static bool is_safe_integer(double d) -{ - return isfinite(d) && floor(d) == d && - fabs(d) <= (double)MAX_SAFE_INTEGER; -} - -int JS_ToIndex(JSContext *ctx, uint64_t *plen, JSValueConst val) -{ - int64_t v; - if (JS_ToInt64Sat(ctx, &v, val)) - return -1; - if (v < 0 || v > MAX_SAFE_INTEGER) { - JS_ThrowRangeError(ctx, "invalid array index"); - *plen = 0; - return -1; - } - *plen = v; - return 0; -} - -/* convert a value to a length between 0 and MAX_SAFE_INTEGER. - return -1 for exception */ -static __exception int JS_ToLengthFree(JSContext *ctx, int64_t *plen, - JSValue val) -{ - int res = JS_ToInt64Clamp(ctx, plen, val, 0, MAX_SAFE_INTEGER, 0); - JS_FreeValue(ctx, val); - return res; -} - -/* Note: can return an exception */ -static int JS_NumberIsInteger(JSContext *ctx, JSValueConst val) -{ - double d; - if (!JS_IsNumber(val)) - return false; - if (unlikely(JS_ToFloat64(ctx, &d, val))) - return -1; - return isfinite(d) && floor(d) == d; -} - -static bool JS_NumberIsNegativeOrMinusZero(JSContext *ctx, JSValueConst val) -{ - uint32_t tag; - - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_INT: - { - int v; - v = JS_VALUE_GET_INT(val); - return (v < 0); - } - case JS_TAG_FLOAT64: - { - JSFloat64Union u; - u.d = JS_VALUE_GET_FLOAT64(val); - return (u.u64 >> 63); - } - case JS_TAG_SHORT_BIG_INT: - return (JS_VALUE_GET_SHORT_BIG_INT(val) < 0); - case JS_TAG_BIG_INT: - { - JSBigInt *p = JS_VALUE_GET_PTR(val); - return js_bigint_sign(p); - } - default: - return false; - } -} - -static JSValue js_bigint_to_string(JSContext *ctx, JSValueConst val) -{ - return js_bigint_to_string1(ctx, val, 10); -} - -/*---- floating point number to string conversions ----*/ - -static JSValue js_dtoa2(JSContext *ctx, - double d, int radix, int n_digits, int flags) -{ - char static_buf[128], *buf, *tmp_buf; - int len, len_max; - JSValue res; - JSDTOATempMem dtoa_mem; - len_max = js_dtoa_max_len(d, radix, n_digits, flags); - - /* longer buffer may be used if radix != 10 */ - if (len_max > sizeof(static_buf) - 1) { - tmp_buf = js_malloc(ctx, len_max + 1); - if (!tmp_buf) - return JS_EXCEPTION; - buf = tmp_buf; - } else { - tmp_buf = NULL; - buf = static_buf; - } - len = js_dtoa(buf, d, radix, n_digits, flags, &dtoa_mem); - res = js_new_string8_len(ctx, buf, len); - js_free(ctx, tmp_buf); - return res; -} - -static JSValue JS_ToStringInternal(JSContext *ctx, JSValueConst val, - int flags) -{ - uint32_t tag; - char buf[32]; - size_t len; - - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_STRING: - return js_dup(val); - case JS_TAG_INT: - len = i32toa(buf, JS_VALUE_GET_INT(val)); - return js_new_string8_len(ctx, buf, len); - case JS_TAG_BOOL: - return JS_AtomToString(ctx, JS_VALUE_GET_BOOL(val) ? - JS_ATOM_true : JS_ATOM_false); - case JS_TAG_NULL: - return JS_AtomToString(ctx, JS_ATOM_null); - case JS_TAG_UNDEFINED: - return JS_AtomToString(ctx, JS_ATOM_undefined); - case JS_TAG_EXCEPTION: - return JS_EXCEPTION; - case JS_TAG_OBJECT: - if (flags & JS_TO_STRING_NO_SIDE_EFFECTS) { - return js_new_string8(ctx, "{}"); - } else { - JSValue val1, ret; - val1 = JS_ToPrimitive(ctx, val, HINT_STRING); - if (JS_IsException(val1)) - return val1; - ret = JS_ToStringInternal(ctx, val1, flags); - JS_FreeValue(ctx, val1); - return ret; - } - break; - case JS_TAG_FUNCTION_BYTECODE: - return js_new_string8(ctx, "[function bytecode]"); - case JS_TAG_SYMBOL: - if (flags & JS_TO_STRING_IS_PROPERTY_KEY) { - return js_dup(val); - } else { - return JS_ThrowTypeError(ctx, "cannot convert symbol to string"); - } - case JS_TAG_FLOAT64: - return js_dtoa2(ctx, JS_VALUE_GET_FLOAT64(val), 10, 0, - JS_DTOA_FORMAT_FREE); - case JS_TAG_SHORT_BIG_INT: - case JS_TAG_BIG_INT: - return js_bigint_to_string(ctx, val); - case JS_TAG_UNINITIALIZED: - return js_new_string8(ctx, "[uninitialized]"); - default: - return js_new_string8(ctx, "[unsupported type]"); - } -} - -JSValue JS_ToString(JSContext *ctx, JSValueConst val) -{ - return JS_ToStringInternal(ctx, val, /*flags*/0); -} - -static JSValue JS_ToStringFree(JSContext *ctx, JSValue val) -{ - JSValue ret; - ret = JS_ToString(ctx, val); - JS_FreeValue(ctx, val); - return ret; -} - -static JSValue JS_ToLocaleStringFree(JSContext *ctx, JSValue val) -{ - if (JS_IsUndefined(val) || JS_IsNull(val)) - return JS_ToStringFree(ctx, val); - return JS_InvokeFree(ctx, val, JS_ATOM_toLocaleString, 0, NULL); -} - -static JSValue JS_ToPropertyKeyInternal(JSContext *ctx, JSValueConst val, - int flags) -{ - return JS_ToStringInternal(ctx, val, flags | JS_TO_STRING_IS_PROPERTY_KEY); -} - -JSValue JS_ToPropertyKey(JSContext *ctx, JSValueConst val) -{ - return JS_ToPropertyKeyInternal(ctx, val, /*flags*/0); -} - -static JSValue JS_ToStringCheckObject(JSContext *ctx, JSValueConst val) -{ - uint32_t tag = JS_VALUE_GET_TAG(val); - if (tag == JS_TAG_NULL || tag == JS_TAG_UNDEFINED) - return JS_ThrowTypeError(ctx, "null or undefined are forbidden"); - return JS_ToString(ctx, val); -} - -static JSValue JS_ToQuotedString(JSContext *ctx, JSValueConst val1) -{ - JSValue val; - JSString *p; - int i; - uint32_t c; - StringBuffer b_s, *b = &b_s; - char buf[16]; - - val = JS_ToStringCheckObject(ctx, val1); - if (JS_IsException(val)) - return val; - p = JS_VALUE_GET_STRING(val); - - if (string_buffer_init(ctx, b, p->len + 2)) - goto fail; - - if (string_buffer_putc8(b, '\"')) - goto fail; - for(i = 0; i < p->len; ) { - c = string_getc(p, &i); - switch(c) { - case '\t': - c = 't'; - goto quote; - case '\r': - c = 'r'; - goto quote; - case '\n': - c = 'n'; - goto quote; - case '\b': - c = 'b'; - goto quote; - case '\f': - c = 'f'; - goto quote; - case '\"': - case '\\': - quote: - if (string_buffer_putc8(b, '\\')) - goto fail; - if (string_buffer_putc8(b, c)) - goto fail; - break; - default: - if (c < 32 || is_surrogate(c)) { - snprintf(buf, sizeof(buf), "\\u%04x", c); - if (string_buffer_write8(b, (uint8_t*)buf, 6)) - goto fail; - } else { - if (string_buffer_putc(b, c)) - goto fail; - } - break; - } - } - if (string_buffer_putc8(b, '\"')) - goto fail; - JS_FreeValue(ctx, val); - return string_buffer_end(b); - fail: - JS_FreeValue(ctx, val); - string_buffer_free(b); - return JS_EXCEPTION; -} - -static __maybe_unused void JS_DumpObjectHeader(JSRuntime *rt) -{ - printf("%14s %4s %4s %14s %10s %s\n", - "ADDRESS", "REFS", "SHRF", "PROTO", "CLASS", "PROPS"); -} - -/* for debug only: dump an object without side effect */ -static __maybe_unused void JS_DumpObject(JSRuntime *rt, JSObject *p) -{ - uint32_t i; - char atom_buf[ATOM_GET_STR_BUF_SIZE]; - JSShape *sh; - JSShapeProperty *prs; - JSProperty *pr; - bool is_first = true; - - /* XXX: should encode atoms with special characters */ - sh = p->shape; /* the shape can be NULL while freeing an object */ - printf("%14p %4d ", - (void *)p, - p->header.ref_count); - if (sh) { - printf("%3d%c %14p ", - sh->header.ref_count, - " *"[sh->is_hashed], - (void *)sh->proto); - } else { - printf("%3s %14s ", "-", "-"); - } - printf("%10s ", - JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), rt->class_array[p->class_id].class_name)); - if (p->is_exotic && p->fast_array) { - printf("[ "); - for(i = 0; i < p->u.array.count; i++) { - if (i != 0) - printf(", "); - switch (p->class_id) { - case JS_CLASS_ARRAY: - case JS_CLASS_ARGUMENTS: - JS_DumpValue(rt, p->u.array.u.values[i]); - break; - case JS_CLASS_UINT8C_ARRAY: - case JS_CLASS_INT8_ARRAY: - case JS_CLASS_UINT8_ARRAY: - case JS_CLASS_INT16_ARRAY: - case JS_CLASS_UINT16_ARRAY: - case JS_CLASS_INT32_ARRAY: - case JS_CLASS_UINT32_ARRAY: - case JS_CLASS_BIG_INT64_ARRAY: - case JS_CLASS_BIG_UINT64_ARRAY: - case JS_CLASS_FLOAT16_ARRAY: - case JS_CLASS_FLOAT32_ARRAY: - case JS_CLASS_FLOAT64_ARRAY: - { - int size = 1 << typed_array_size_log2(p->class_id); - const uint8_t *b = p->u.array.u.uint8_ptr + i * size; - while (size-- > 0) - printf("%02X", *b++); - } - break; - } - } - printf(" ] "); - } - - if (sh) { - printf("{ "); - for(i = 0, prs = get_shape_prop(sh); i < sh->prop_count; i++, prs++) { - if (prs->atom != JS_ATOM_NULL) { - pr = &p->prop[i]; - if (!is_first) - printf(", "); - printf("%s: ", - JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), prs->atom)); - if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) { - printf("[getset %p %p]", (void *)pr->u.getset.getter, - (void *)pr->u.getset.setter); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) { - printf("[varref %p]", (void *)pr->u.var_ref); - } else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) { - printf("[autoinit %p %d %p]", - (void *)js_autoinit_get_realm(pr), - js_autoinit_get_id(pr), - (void *)pr->u.init.opaque); - } else { - JS_DumpValue(rt, pr->u.value); - } - is_first = false; - } - } - printf(" }"); - } - - if (js_class_has_bytecode(p->class_id)) { - JSFunctionBytecode *b = p->u.func.function_bytecode; - JSVarRef **var_refs; - if (b->closure_var_count) { - var_refs = p->u.func.var_refs; - printf(" Closure:"); - for(i = 0; i < b->closure_var_count; i++) { - printf(" "); - JS_DumpValue(rt, var_refs[i]->value); - } - if (p->u.func.home_object) { - printf(" HomeObject: "); - JS_DumpValue(rt, JS_MKPTR(JS_TAG_OBJECT, p->u.func.home_object)); - } - } - } - printf("\n"); -} - -static __maybe_unused void JS_DumpGCObject(JSRuntime *rt, JSGCObjectHeader *p) -{ - if (p->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT) { - JS_DumpObject(rt, (JSObject *)p); - } else { - printf("%14p %4d ", - (void *)p, - p->ref_count); - switch(p->gc_obj_type) { - case JS_GC_OBJ_TYPE_FUNCTION_BYTECODE: - printf("[function bytecode]"); - break; - case JS_GC_OBJ_TYPE_SHAPE: - printf("[shape]"); - break; - case JS_GC_OBJ_TYPE_VAR_REF: - printf("[var_ref]"); - break; - case JS_GC_OBJ_TYPE_ASYNC_FUNCTION: - printf("[async_function]"); - break; - case JS_GC_OBJ_TYPE_JS_CONTEXT: - printf("[js_context]"); - break; - default: - printf("[unknown %d]", p->gc_obj_type); - break; - } - printf("\n"); - } -} - -static __maybe_unused void JS_DumpValue(JSRuntime *rt, JSValueConst val) -{ - uint32_t tag = JS_VALUE_GET_NORM_TAG(val); - const char *str; - - switch(tag) { - case JS_TAG_INT: - printf("%d", JS_VALUE_GET_INT(val)); - break; - case JS_TAG_BOOL: - if (JS_VALUE_GET_BOOL(val)) - str = "true"; - else - str = "false"; - goto print_str; - case JS_TAG_NULL: - str = "null"; - goto print_str; - case JS_TAG_EXCEPTION: - str = "exception"; - goto print_str; - case JS_TAG_UNINITIALIZED: - str = "uninitialized"; - goto print_str; - case JS_TAG_UNDEFINED: - str = "undefined"; - print_str: - printf("%s", str); - break; - case JS_TAG_FLOAT64: - printf("%.14g", JS_VALUE_GET_FLOAT64(val)); - break; - case JS_TAG_SHORT_BIG_INT: - printf("%" PRId64 "n", (int64_t)JS_VALUE_GET_SHORT_BIG_INT(val)); - break; - case JS_TAG_BIG_INT: - { - JSBigInt *p = JS_VALUE_GET_PTR(val); - int sgn, i; - /* In order to avoid allocations we just dump the limbs */ - sgn = js_bigint_sign(p); - if (sgn) - printf("BigInt.asIntN(%d,", p->len * JS_LIMB_BITS); - printf("0x"); - for(i = p->len - 1; i >= 0; i--) { - if (i != p->len - 1) - printf("_"); - printf("%08x", p->tab[i]); - } - printf("n"); - if (sgn) - printf(")"); - } - break; - case JS_TAG_STRING: - { - JSString *p; - p = JS_VALUE_GET_STRING(val); - JS_DumpString(rt, p); - } - break; - case JS_TAG_FUNCTION_BYTECODE: - { - JSFunctionBytecode *b = JS_VALUE_GET_PTR(val); - char buf[ATOM_GET_STR_BUF_SIZE]; - if (b->func_name) { - printf("[bytecode %s]", JS_AtomGetStrRT(rt, buf, sizeof(buf), b->func_name)); - } else { - printf("[bytecode (anonymous)]"); - } - } - break; - case JS_TAG_OBJECT: - { - JSObject *p = JS_VALUE_GET_OBJ(val); - JSAtom atom = rt->class_array[p->class_id].class_name; - char atom_buf[ATOM_GET_STR_BUF_SIZE]; - printf("[%s %p]", - JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), atom), (void *)p); - } - break; - case JS_TAG_SYMBOL: - { - JSAtomStruct *p = JS_VALUE_GET_PTR(val); - char atom_buf[ATOM_GET_STR_BUF_SIZE]; - printf("Symbol(%s)", - JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), js_get_atom_index(rt, p))); - } - break; - case JS_TAG_MODULE: - printf("[module]"); - break; - default: - printf("[unknown tag %d]", tag); - break; - } -} - -bool JS_IsArray(JSValueConst val) -{ - if (JS_VALUE_GET_TAG(val) == JS_TAG_OBJECT) { - JSObject *p = JS_VALUE_GET_OBJ(val); - return p->class_id == JS_CLASS_ARRAY; - } - return false; -} - -/* return -1 if exception (proxy case) or true/false */ -static int js_is_array(JSContext *ctx, JSValueConst val) -{ - JSObject *p; - if (JS_VALUE_GET_TAG(val) == JS_TAG_OBJECT) { - p = JS_VALUE_GET_OBJ(val); - if (unlikely(p->class_id == JS_CLASS_PROXY)) - return js_proxy_isArray(ctx, val); - else - return p->class_id == JS_CLASS_ARRAY; - } else { - return false; - } -} - -static double js_math_pow(double a, double b) -{ - double d; - - if (unlikely(!isfinite(b)) && fabs(a) == 1) { - /* not compatible with IEEE 754 */ - d = NAN; - } else { - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - d = pow(a, b); - JS_X87_FPCW_RESTORE(fpcw); - } - return d; -} - -JSValue JS_NewBigInt64(JSContext *ctx, int64_t v) -{ - if (v >= JS_SHORT_BIG_INT_MIN && v <= JS_SHORT_BIG_INT_MAX) { - return __JS_NewShortBigInt(ctx, v); - } else { - JSBigInt *p; - p = js_bigint_new_si64(ctx, v); - if (!p) - return JS_EXCEPTION; - return JS_MKPTR(JS_TAG_BIG_INT, p); - } -} - -JSValue JS_NewBigUint64(JSContext *ctx, uint64_t v) -{ - if (v <= JS_SHORT_BIG_INT_MAX) { - return __JS_NewShortBigInt(ctx, v); - } else { - JSBigInt *p; - p = js_bigint_new_ui64(ctx, v); - if (!p) - return JS_EXCEPTION; - return JS_MKPTR(JS_TAG_BIG_INT, p); - } -} - -/* return NaN if bad bigint literal */ -static JSValue JS_StringToBigInt(JSContext *ctx, JSValue val) -{ - const char *str, *p; - size_t len; - int flags; - - str = JS_ToCStringLen(ctx, &len, val); - JS_FreeValue(ctx, val); - if (!str) - return JS_EXCEPTION; - p = str; - p += skip_spaces(p); - if ((p - str) == len) { - val = JS_NewBigInt64(ctx, 0); - } else { - flags = ATOD_INT_ONLY | ATOD_ACCEPT_BIN_OCT | ATOD_TYPE_BIG_INT; - val = js_atof(ctx, p, &p, 0, flags); - p += skip_spaces(p); - if (!JS_IsException(val)) { - if ((p - str) != len) { - JS_FreeValue(ctx, val); - val = JS_NAN; - } - } - } - JS_FreeCString(ctx, str); - return val; -} - -static JSValue JS_StringToBigIntErr(JSContext *ctx, JSValue val) -{ - val = JS_StringToBigInt(ctx, val); - if (JS_VALUE_IS_NAN(val)) - return JS_ThrowSyntaxError(ctx, "invalid BigInt literal"); - return val; -} - -/* JS Numbers are not allowed */ -static JSValue JS_ToBigIntFree(JSContext *ctx, JSValue val) -{ - uint32_t tag; - - redo: - tag = JS_VALUE_GET_NORM_TAG(val); - switch(tag) { - case JS_TAG_SHORT_BIG_INT: - case JS_TAG_BIG_INT: - break; - case JS_TAG_INT: - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - case JS_TAG_FLOAT64: - goto fail; - case JS_TAG_BOOL: - val = __JS_NewShortBigInt(ctx, JS_VALUE_GET_INT(val)); - break; - case JS_TAG_STRING: - val = JS_StringToBigIntErr(ctx, val); - if (JS_IsException(val)) - return val; - goto redo; - case JS_TAG_OBJECT: - val = JS_ToPrimitiveFree(ctx, val, HINT_NUMBER); - if (JS_IsException(val)) - return val; - goto redo; - default: - fail: - JS_FreeValue(ctx, val); - return JS_ThrowTypeError(ctx, "cannot convert to bigint"); - } - return val; -} - -static JSValue JS_ToBigInt(JSContext *ctx, JSValueConst val) -{ - return JS_ToBigIntFree(ctx, js_dup(val)); -} - -/* XXX: merge with JS_ToInt64Free with a specific flag */ -static int JS_ToBigInt64Free(JSContext *ctx, int64_t *pres, JSValue val) -{ - uint64_t res; - - val = JS_ToBigIntFree(ctx, val); - if (JS_IsException(val)) { - *pres = 0; - return -1; - } - if (JS_VALUE_GET_TAG(val) == JS_TAG_SHORT_BIG_INT) { - res = JS_VALUE_GET_SHORT_BIG_INT(val); - } else { - JSBigInt *p = JS_VALUE_GET_PTR(val); - /* return the value mod 2^64 */ - res = p->tab[0]; - if (p->len >= 2) - res |= (uint64_t)p->tab[1] << 32; - JS_FreeValue(ctx, val); - } - *pres = res; - return 0; -} - -int JS_ToBigInt64(JSContext *ctx, int64_t *pres, JSValueConst val) -{ - return JS_ToBigInt64Free(ctx, pres, js_dup(val)); -} - -int JS_ToBigUint64(JSContext *ctx, uint64_t *pres, JSValueConst val) -{ - return JS_ToBigInt64Free(ctx, (int64_t *)pres, js_dup(val)); -} - -static no_inline __exception int js_unary_arith_slow(JSContext *ctx, - JSValue *sp, - OPCodeEnum op) -{ - JSValue op1; - int v; - uint32_t tag; - JSBigIntBuf buf1; - JSBigInt *p1; - - op1 = sp[-1]; - /* fast path for float64 */ - if (JS_TAG_IS_FLOAT64(JS_VALUE_GET_TAG(op1))) - goto handle_float64; - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) - goto exception; - tag = JS_VALUE_GET_TAG(op1); - switch(tag) { - case JS_TAG_INT: - { - int64_t v64; - v64 = JS_VALUE_GET_INT(op1); - switch(op) { - case OP_inc: - case OP_dec: - v = 2 * (op - OP_dec) - 1; - v64 += v; - break; - case OP_plus: - break; - case OP_neg: - if (v64 == 0) { - sp[-1] = js_float64(-0.0); - return 0; - } else { - v64 = -v64; - } - break; - default: - abort(); - } - sp[-1] = js_int64(v64); - } - break; - case JS_TAG_SHORT_BIG_INT: - { - int64_t v; - v = JS_VALUE_GET_SHORT_BIG_INT(op1); - switch(op) { - case OP_plus: - JS_ThrowTypeError(ctx, "bigint argument with unary +"); - goto exception; - case OP_inc: - if (v == JS_SHORT_BIG_INT_MAX) - goto bigint_slow_case; - sp[-1] = __JS_NewShortBigInt(ctx, v + 1); - break; - case OP_dec: - if (v == JS_SHORT_BIG_INT_MIN) - goto bigint_slow_case; - sp[-1] = __JS_NewShortBigInt(ctx, v - 1); - break; - case OP_neg: - v = JS_VALUE_GET_SHORT_BIG_INT(op1); - if (v == JS_SHORT_BIG_INT_MIN) { - bigint_slow_case: - p1 = js_bigint_set_short(&buf1, op1); - goto bigint_slow_case1; - } - sp[-1] = __JS_NewShortBigInt(ctx, -v); - break; - default: - abort(); - } - } - break; - case JS_TAG_BIG_INT: - { - JSBigInt *r; - p1 = JS_VALUE_GET_PTR(op1); - bigint_slow_case1: - switch(op) { - case OP_plus: - JS_ThrowTypeError(ctx, "bigint argument with unary +"); - JS_FreeValue(ctx, op1); - goto exception; - case OP_inc: - case OP_dec: - { - JSBigIntBuf buf2; - JSBigInt *p2; - p2 = js_bigint_set_si(&buf2, 2 * (op - OP_dec) - 1); - r = js_bigint_add(ctx, p1, p2, 0); - } - break; - case OP_neg: - r = js_bigint_neg(ctx, p1); - break; - case OP_not: - r = js_bigint_not(ctx, p1); - break; - default: - abort(); - } - JS_FreeValue(ctx, op1); - if (!r) - goto exception; - sp[-1] = JS_CompactBigInt(ctx, r); - } - break; - default: - handle_float64: - { - double d; - d = JS_VALUE_GET_FLOAT64(op1); - switch(op) { - case OP_inc: - case OP_dec: - v = 2 * (op - OP_dec) - 1; - d += v; - break; - case OP_plus: - break; - case OP_neg: - d = -d; - break; - default: - abort(); - } - sp[-1] = js_float64(d); - } - break; - } - return 0; - exception: - sp[-1] = JS_UNDEFINED; - return -1; -} - -static __exception int js_post_inc_slow(JSContext *ctx, - JSValue *sp, OPCodeEnum op) -{ - JSValue op1; - - /* XXX: allow custom operators */ - op1 = sp[-1]; - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - sp[-1] = JS_UNDEFINED; - return -1; - } - sp[-1] = op1; - sp[0] = js_dup(op1); - return js_unary_arith_slow(ctx, sp + 1, op - OP_post_dec + OP_dec); -} - -static no_inline int js_not_slow(JSContext *ctx, JSValue *sp) -{ - JSValue op1; - - op1 = sp[-1]; - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) - goto exception; - if (JS_VALUE_GET_TAG(op1) == JS_TAG_SHORT_BIG_INT) { - sp[-1] = __JS_NewShortBigInt(ctx, ~JS_VALUE_GET_SHORT_BIG_INT(op1)); - } else if (JS_VALUE_GET_TAG(op1) == JS_TAG_BIG_INT) { - JSBigInt *r; - r = js_bigint_not(ctx, JS_VALUE_GET_PTR(op1)); - JS_FreeValue(ctx, op1); - if (!r) - goto exception; - sp[-1] = JS_CompactBigInt(ctx, r); - } else { - int32_t v1; - if (unlikely(JS_ToInt32Free(ctx, &v1, op1))) - goto exception; - sp[-1] = js_int32(~v1); - } - return 0; - exception: - sp[-1] = JS_UNDEFINED; - return -1; -} - -static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *sp, - OPCodeEnum op) -{ - JSValue op1, op2; - uint32_t tag1, tag2; - double d1, d2; - - op1 = sp[-2]; - op2 = sp[-1]; - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - /* fast path for float operations */ - if (tag1 == JS_TAG_FLOAT64 && tag2 == JS_TAG_FLOAT64) { - d1 = JS_VALUE_GET_FLOAT64(op1); - d2 = JS_VALUE_GET_FLOAT64(op2); - goto handle_float64; - } - /* fast path for short big int operations */ - if (tag1 == JS_TAG_SHORT_BIG_INT && tag2 == JS_TAG_SHORT_BIG_INT) { - js_slimb_t v1, v2; - js_sdlimb_t v; - v1 = JS_VALUE_GET_SHORT_BIG_INT(op1); - v2 = JS_VALUE_GET_SHORT_BIG_INT(op2); - switch(op) { - case OP_sub: - v = (js_sdlimb_t)v1 - (js_sdlimb_t)v2; - break; - case OP_mul: - v = (js_sdlimb_t)v1 * (js_sdlimb_t)v2; - break; - case OP_div: - if (v2 == 0 || - ((js_limb_t)v1 == (js_limb_t)1 << (JS_LIMB_BITS - 1) && - v2 == -1)) { - goto slow_big_int; - } - sp[-2] = __JS_NewShortBigInt(ctx, v1 / v2); - return 0; - case OP_mod: - if (v2 == 0 || - ((js_limb_t)v1 == (js_limb_t)1 << (JS_LIMB_BITS - 1) && - v2 == -1)) { - goto slow_big_int; - } - sp[-2] = __JS_NewShortBigInt(ctx, v1 % v2); - return 0; - case OP_pow: - goto slow_big_int; - default: - abort(); - } - if (likely(v >= JS_SHORT_BIG_INT_MIN && v <= JS_SHORT_BIG_INT_MAX)) { - sp[-2] = __JS_NewShortBigInt(ctx, v); - } else { - JSBigInt *r = js_bigint_new_di(ctx, v); - if (!r) - goto exception; - sp[-2] = JS_MKPTR(JS_TAG_BIG_INT, r); - } - return 0; - } - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToNumericFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - - if (tag1 == JS_TAG_INT && tag2 == JS_TAG_INT) { - int32_t v1, v2; - int64_t v; - v1 = JS_VALUE_GET_INT(op1); - v2 = JS_VALUE_GET_INT(op2); - switch(op) { - case OP_sub: - v = (int64_t)v1 - (int64_t)v2; - break; - case OP_mul: - v = (int64_t)v1 * (int64_t)v2; - if (v == 0 && (v1 | v2) < 0) { - sp[-2] = js_float64(-0.0); - return 0; - } - break; - case OP_div: - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - sp[-2] = js_number((double)v1 / (double)v2); - JS_X87_FPCW_RESTORE(fpcw); - return 0; - case OP_mod: - if (v1 < 0 || v2 <= 0) { - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - sp[-2] = js_number(fmod(v1, v2)); - JS_X87_FPCW_RESTORE(fpcw); - return 0; - } else { - v = (int64_t)v1 % (int64_t)v2; - } - break; - case OP_pow: - sp[-2] = js_number(js_math_pow(v1, v2)); - return 0; - default: - abort(); - } - sp[-2] = js_int64(v); - } else if ((tag1 == JS_TAG_SHORT_BIG_INT || tag1 == JS_TAG_BIG_INT) && - (tag2 == JS_TAG_SHORT_BIG_INT || tag2 == JS_TAG_BIG_INT)) { - JSBigInt *p1, *p2, *r; - JSBigIntBuf buf1, buf2; - slow_big_int: - /* bigint result */ - if (JS_VALUE_GET_TAG(op1) == JS_TAG_SHORT_BIG_INT) - p1 = js_bigint_set_short(&buf1, op1); - else - p1 = JS_VALUE_GET_PTR(op1); - if (JS_VALUE_GET_TAG(op2) == JS_TAG_SHORT_BIG_INT) - p2 = js_bigint_set_short(&buf2, op2); - else - p2 = JS_VALUE_GET_PTR(op2); - switch(op) { - case OP_add: - r = js_bigint_add(ctx, p1, p2, 0); - break; - case OP_sub: - r = js_bigint_add(ctx, p1, p2, 1); - break; - case OP_mul: - r = js_bigint_mul(ctx, p1, p2); - break; - case OP_div: - r = js_bigint_divrem(ctx, p1, p2, false); - break; - case OP_mod: - r = js_bigint_divrem(ctx, p1, p2, true); - break; - case OP_pow: - r = js_bigint_pow(ctx, p1, p2); - break; - default: - abort(); - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - if (!r) - goto exception; - sp[-2] = JS_CompactBigInt(ctx, r); - } else { - double dr; - /* float64 result */ - if (JS_ToFloat64Free(ctx, &d1, op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - if (JS_ToFloat64Free(ctx, &d2, op2)) - goto exception; - handle_float64: - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - switch(op) { - case OP_sub: - dr = d1 - d2; - break; - case OP_mul: - dr = d1 * d2; - break; - case OP_div: - dr = d1 / d2; - break; - case OP_mod: - dr = fmod(d1, d2); - break; - case OP_pow: - dr = js_math_pow(d1, d2); - break; - default: - abort(); - } - JS_X87_FPCW_RESTORE(fpcw); - sp[-2] = js_float64(dr); - } - return 0; - exception: - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -static no_inline __exception int js_add_slow(JSContext *ctx, JSValue *sp) -{ - JSValue op1, op2; - uint32_t tag1, tag2; - - op1 = sp[-2]; - op2 = sp[-1]; - - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - /* fast path for float64 */ - if (tag1 == JS_TAG_FLOAT64 && tag2 == JS_TAG_FLOAT64) { - double d1, d2; - d1 = JS_VALUE_GET_FLOAT64(op1); - d2 = JS_VALUE_GET_FLOAT64(op2); - sp[-2] = js_float64(d1 + d2); - return 0; - } - /* fast path for short bigint */ - if (tag1 == JS_TAG_SHORT_BIG_INT && tag2 == JS_TAG_SHORT_BIG_INT) { - js_slimb_t v1, v2; - js_sdlimb_t v; - v1 = JS_VALUE_GET_SHORT_BIG_INT(op1); - v2 = JS_VALUE_GET_SHORT_BIG_INT(op2); - v = (js_sdlimb_t)v1 + (js_sdlimb_t)v2; - if (likely(v >= JS_SHORT_BIG_INT_MIN && v <= JS_SHORT_BIG_INT_MAX)) { - sp[-2] = __JS_NewShortBigInt(ctx, v); - } else { - JSBigInt *r = js_bigint_new_di(ctx, v); - if (!r) - goto exception; - sp[-2] = JS_MKPTR(JS_TAG_BIG_INT, r); - } - return 0; - } - - if (tag1 == JS_TAG_OBJECT || tag2 == JS_TAG_OBJECT) { - op1 = JS_ToPrimitiveFree(ctx, op1, HINT_NONE); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - - op2 = JS_ToPrimitiveFree(ctx, op2, HINT_NONE); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - } - - if (tag1 == JS_TAG_STRING || tag2 == JS_TAG_STRING) { - sp[-2] = JS_ConcatString(ctx, op1, op2); - if (JS_IsException(sp[-2])) - goto exception; - return 0; - } - - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToNumericFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - - if (tag1 == JS_TAG_INT && tag2 == JS_TAG_INT) { - int32_t v1, v2; - int64_t v; - v1 = JS_VALUE_GET_INT(op1); - v2 = JS_VALUE_GET_INT(op2); - v = (int64_t)v1 + (int64_t)v2; - sp[-2] = js_int64(v); - } else if ((tag1 == JS_TAG_BIG_INT || tag1 == JS_TAG_SHORT_BIG_INT) && - (tag2 == JS_TAG_BIG_INT || tag2 == JS_TAG_SHORT_BIG_INT)) { - JSBigInt *p1, *p2, *r; - JSBigIntBuf buf1, buf2; - /* bigint result */ - if (JS_VALUE_GET_TAG(op1) == JS_TAG_SHORT_BIG_INT) - p1 = js_bigint_set_short(&buf1, op1); - else - p1 = JS_VALUE_GET_PTR(op1); - if (JS_VALUE_GET_TAG(op2) == JS_TAG_SHORT_BIG_INT) - p2 = js_bigint_set_short(&buf2, op2); - else - p2 = JS_VALUE_GET_PTR(op2); - r = js_bigint_add(ctx, p1, p2, 0); - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - if (!r) - goto exception; - sp[-2] = JS_CompactBigInt(ctx, r); - } else { - double d1, d2; - /* float64 result */ - if (JS_ToFloat64Free(ctx, &d1, op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - if (JS_ToFloat64Free(ctx, &d2, op2)) - goto exception; - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - sp[-2] = js_float64(d1 + d2); - JS_X87_FPCW_RESTORE(fpcw); - } - return 0; - exception: - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -static no_inline __exception int js_binary_logic_slow(JSContext *ctx, - JSValue *sp, - OPCodeEnum op) -{ - JSValue op1, op2; - uint32_t tag1, tag2; - uint32_t v1, v2, r; - - op1 = sp[-2]; - op2 = sp[-1]; - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - - if (tag1 == JS_TAG_SHORT_BIG_INT && tag2 == JS_TAG_SHORT_BIG_INT) { - js_slimb_t v1, v2, v; - js_sdlimb_t vd; - v1 = JS_VALUE_GET_SHORT_BIG_INT(op1); - v2 = JS_VALUE_GET_SHORT_BIG_INT(op2); - /* bigint fast path */ - switch(op) { - case OP_and: - v = v1 & v2; - break; - case OP_or: - v = v1 | v2; - break; - case OP_xor: - v = v1 ^ v2; - break; - case OP_sar: - if (v2 > (JS_LIMB_BITS - 1)) { - goto slow_big_int; - } else if (v2 < 0) { - if (v2 < -(JS_LIMB_BITS - 1)) - goto slow_big_int; - v2 = -v2; - goto bigint_shl; - } - bigint_sar: - v = v1 >> v2; - break; - case OP_shl: - if (v2 > (JS_LIMB_BITS - 1)) { - goto slow_big_int; - } else if (v2 < 0) { - if (v2 < -(JS_LIMB_BITS - 1)) - goto slow_big_int; - v2 = -v2; - goto bigint_sar; - } - bigint_shl: - vd = (js_dlimb_t)v1 << v2; - if (likely(vd >= JS_SHORT_BIG_INT_MIN && - vd <= JS_SHORT_BIG_INT_MAX)) { - v = vd; - } else { - JSBigInt *r = js_bigint_new_di(ctx, vd); - if (!r) - goto exception; - sp[-2] = JS_MKPTR(JS_TAG_BIG_INT, r); - return 0; - } - break; - default: - abort(); - } - sp[-2] = __JS_NewShortBigInt(ctx, v); - return 0; - } - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToNumericFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - - tag1 = JS_VALUE_GET_TAG(op1); - tag2 = JS_VALUE_GET_TAG(op2); - if ((tag1 == JS_TAG_BIG_INT || tag1 == JS_TAG_SHORT_BIG_INT) && - (tag2 == JS_TAG_BIG_INT || tag2 == JS_TAG_SHORT_BIG_INT)) { - JSBigInt *p1, *p2, *r; - JSBigIntBuf buf1, buf2; - slow_big_int: - if (JS_VALUE_GET_TAG(op1) == JS_TAG_SHORT_BIG_INT) - p1 = js_bigint_set_short(&buf1, op1); - else - p1 = JS_VALUE_GET_PTR(op1); - if (JS_VALUE_GET_TAG(op2) == JS_TAG_SHORT_BIG_INT) - p2 = js_bigint_set_short(&buf2, op2); - else - p2 = JS_VALUE_GET_PTR(op2); - switch(op) { - case OP_and: - case OP_or: - case OP_xor: - r = js_bigint_logic(ctx, p1, p2, op); - break; - case OP_shl: - case OP_sar: - { - js_slimb_t shift; - shift = js_bigint_get_si_sat(p2); - if (shift > INT32_MAX) - shift = INT32_MAX; - else if (shift < -INT32_MAX) - shift = -INT32_MAX; - if (op == OP_sar) - shift = -shift; - if (shift >= 0) - r = js_bigint_shl(ctx, p1, shift); - else - r = js_bigint_shr(ctx, p1, -shift); - } - break; - default: - abort(); - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - if (!r) - goto exception; - sp[-2] = JS_CompactBigInt(ctx, r); - } else { - if (unlikely(JS_ToInt32Free(ctx, (int32_t *)&v1, op1))) { - JS_FreeValue(ctx, op2); - goto exception; - } - if (unlikely(JS_ToInt32Free(ctx, (int32_t *)&v2, op2))) - goto exception; - switch(op) { - case OP_shl: - r = v1 << (v2 & 0x1f); - break; - case OP_sar: - r = (int)v1 >> (v2 & 0x1f); - break; - case OP_and: - r = v1 & v2; - break; - case OP_or: - r = v1 | v2; - break; - case OP_xor: - r = v1 ^ v2; - break; - default: - abort(); - } - sp[-2] = js_int32(r); - } - return 0; - exception: - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -/* op1 must be a bigint or int. */ -static JSBigInt *JS_ToBigIntBuf(JSContext *ctx, JSBigIntBuf *buf1, - JSValue op1) -{ - JSBigInt *p1; - - switch(JS_VALUE_GET_TAG(op1)) { - case JS_TAG_INT: - p1 = js_bigint_set_si(buf1, JS_VALUE_GET_INT(op1)); - break; - case JS_TAG_SHORT_BIG_INT: - p1 = js_bigint_set_short(buf1, op1); - break; - case JS_TAG_BIG_INT: - p1 = JS_VALUE_GET_PTR(op1); - break; - default: - abort(); - } - return p1; -} - -/* op1 and op2 must be numeric types and at least one must be a - bigint. No exception is generated. */ -static int js_compare_bigint(JSContext *ctx, OPCodeEnum op, - JSValue op1, JSValue op2) -{ - int res, val, tag1, tag2; - JSBigIntBuf buf1, buf2; - JSBigInt *p1, *p2; - - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - if ((tag1 == JS_TAG_SHORT_BIG_INT || tag1 == JS_TAG_INT) && - (tag2 == JS_TAG_SHORT_BIG_INT || tag2 == JS_TAG_INT)) { - /* fast path */ - js_slimb_t v1, v2; - if (tag1 == JS_TAG_INT) - v1 = JS_VALUE_GET_INT(op1); - else - v1 = JS_VALUE_GET_SHORT_BIG_INT(op1); - if (tag2 == JS_TAG_INT) - v2 = JS_VALUE_GET_INT(op2); - else - v2 = JS_VALUE_GET_SHORT_BIG_INT(op2); - val = (v1 > v2) - (v1 < v2); - } else { - if (tag1 == JS_TAG_FLOAT64) { - p2 = JS_ToBigIntBuf(ctx, &buf2, op2); - val = js_bigint_float64_cmp(ctx, p2, JS_VALUE_GET_FLOAT64(op1)); - if (val == 2) - goto unordered; - val = -val; - } else if (tag2 == JS_TAG_FLOAT64) { - p1 = JS_ToBigIntBuf(ctx, &buf1, op1); - val = js_bigint_float64_cmp(ctx, p1, JS_VALUE_GET_FLOAT64(op2)); - if (val == 2) { - unordered: - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - return false; - } - } else { - p1 = JS_ToBigIntBuf(ctx, &buf1, op1); - p2 = JS_ToBigIntBuf(ctx, &buf2, op2); - val = js_bigint_cmp(ctx, p1, p2); - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - } - - switch(op) { - case OP_lt: - res = val < 0; - break; - case OP_lte: - res = val <= 0; - break; - case OP_gt: - res = val > 0; - break; - case OP_gte: - res = val >= 0; - break; - case OP_eq: - res = val == 0; - break; - default: - abort(); - } - return res; -} - -static no_inline int js_relational_slow(JSContext *ctx, JSValue *sp, - OPCodeEnum op) -{ - JSValue op1, op2; - int res; - uint32_t tag1, tag2; - - op1 = sp[-2]; - op2 = sp[-1]; - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - - op1 = JS_ToPrimitiveFree(ctx, op1, HINT_NUMBER); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToPrimitiveFree(ctx, op2, HINT_NUMBER); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - - if (tag1 == JS_TAG_STRING && tag2 == JS_TAG_STRING) { - JSString *p1, *p2; - p1 = JS_VALUE_GET_STRING(op1); - p2 = JS_VALUE_GET_STRING(op2); - res = js_string_compare(p1, p2); - switch(op) { - case OP_lt: - res = (res < 0); - break; - case OP_lte: - res = (res <= 0); - break; - case OP_gt: - res = (res > 0); - break; - default: - case OP_gte: - res = (res >= 0); - break; - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - } else if ((tag1 <= JS_TAG_NULL || tag1 == JS_TAG_FLOAT64) && - (tag2 <= JS_TAG_NULL || tag2 == JS_TAG_FLOAT64)) { - /* fast path for float64/int */ - goto float64_compare; - } else { - if ((((tag1 == JS_TAG_BIG_INT || tag1 == JS_TAG_SHORT_BIG_INT) && - tag2 == JS_TAG_STRING) || - ((tag2 == JS_TAG_BIG_INT || tag2 == JS_TAG_SHORT_BIG_INT) && - tag1 == JS_TAG_STRING))) { - if (tag1 == JS_TAG_STRING) { - op1 = JS_StringToBigInt(ctx, op1); - if (JS_VALUE_GET_TAG(op1) != JS_TAG_BIG_INT && - JS_VALUE_GET_TAG(op1) != JS_TAG_SHORT_BIG_INT) - goto invalid_bigint_string; - } - if (tag2 == JS_TAG_STRING) { - op2 = JS_StringToBigInt(ctx, op2); - if (JS_VALUE_GET_TAG(op2) != JS_TAG_BIG_INT && - JS_VALUE_GET_TAG(op2) != JS_TAG_SHORT_BIG_INT) { - invalid_bigint_string: - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - res = false; - goto done; - } - } - } else { - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToNumericFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - } - - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - - if (tag1 == JS_TAG_BIG_INT || tag1 == JS_TAG_SHORT_BIG_INT || - tag2 == JS_TAG_BIG_INT || tag2 == JS_TAG_SHORT_BIG_INT) { - res = js_compare_bigint(ctx, op, op1, op2); - } else { - double d1, d2; - - float64_compare: - /* can use floating point comparison */ - if (tag1 == JS_TAG_FLOAT64) { - d1 = JS_VALUE_GET_FLOAT64(op1); - } else { - d1 = JS_VALUE_GET_INT(op1); - } - if (tag2 == JS_TAG_FLOAT64) { - d2 = JS_VALUE_GET_FLOAT64(op2); - } else { - d2 = JS_VALUE_GET_INT(op2); - } - switch(op) { - case OP_lt: - res = (d1 < d2); /* if NaN return false */ - break; - case OP_lte: - res = (d1 <= d2); /* if NaN return false */ - break; - case OP_gt: - res = (d1 > d2); /* if NaN return false */ - break; - default: - case OP_gte: - res = (d1 >= d2); /* if NaN return false */ - break; - } - } - } - done: - sp[-2] = js_bool(res); - return 0; - exception: - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -static bool tag_is_number(uint32_t tag) -{ - return (tag == JS_TAG_INT || - tag == JS_TAG_FLOAT64 || - tag == JS_TAG_BIG_INT || tag == JS_TAG_SHORT_BIG_INT); -} - -static no_inline __exception int js_eq_slow(JSContext *ctx, JSValue *sp, - bool is_neq) -{ - JSValue op1, op2; - int res; - uint32_t tag1, tag2; - - op1 = sp[-2]; - op2 = sp[-1]; - redo: - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - if (tag_is_number(tag1) && tag_is_number(tag2)) { - if (tag1 == JS_TAG_INT && tag2 == JS_TAG_INT) { - res = JS_VALUE_GET_INT(op1) == JS_VALUE_GET_INT(op2); - } else if ((tag1 == JS_TAG_FLOAT64 && - (tag2 == JS_TAG_INT || tag2 == JS_TAG_FLOAT64)) || - (tag2 == JS_TAG_FLOAT64 && - (tag1 == JS_TAG_INT || tag1 == JS_TAG_FLOAT64))) { - double d1, d2; - if (tag1 == JS_TAG_FLOAT64) { - d1 = JS_VALUE_GET_FLOAT64(op1); - } else { - d1 = JS_VALUE_GET_INT(op1); - } - if (tag2 == JS_TAG_FLOAT64) { - d2 = JS_VALUE_GET_FLOAT64(op2); - } else { - d2 = JS_VALUE_GET_INT(op2); - } - res = (d1 == d2); - } else { - res = js_compare_bigint(ctx, OP_eq, op1, op2); - if (res < 0) - goto exception; - } - } else if (tag1 == tag2) { - res = js_strict_eq2(ctx, op1, op2, JS_EQ_STRICT); - } else if ((tag1 == JS_TAG_NULL && tag2 == JS_TAG_UNDEFINED) || - (tag2 == JS_TAG_NULL && tag1 == JS_TAG_UNDEFINED)) { - res = true; - } else if ((tag1 == JS_TAG_STRING && tag_is_number(tag2)) || - (tag2 == JS_TAG_STRING && tag_is_number(tag1))) { - - if (tag1 == JS_TAG_BIG_INT || tag1 == JS_TAG_SHORT_BIG_INT || - tag2 == JS_TAG_BIG_INT || tag2 == JS_TAG_SHORT_BIG_INT) { - if (tag1 == JS_TAG_STRING) { - op1 = JS_StringToBigInt(ctx, op1); - if (JS_VALUE_GET_TAG(op1) != JS_TAG_BIG_INT && - JS_VALUE_GET_TAG(op1) != JS_TAG_SHORT_BIG_INT) - goto invalid_bigint_string; - } - if (tag2 == JS_TAG_STRING) { - op2 = JS_StringToBigInt(ctx, op2); - if (JS_VALUE_GET_TAG(op2) != JS_TAG_BIG_INT && - JS_VALUE_GET_TAG(op2) != JS_TAG_SHORT_BIG_INT ) { - invalid_bigint_string: - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - res = false; - goto done; - } - } - } else { - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToNumericFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - } - res = js_strict_eq(ctx, op1, op2); - } else if (tag1 == JS_TAG_BOOL) { - op1 = js_int32(JS_VALUE_GET_INT(op1)); - goto redo; - } else if (tag2 == JS_TAG_BOOL) { - op2 = js_int32(JS_VALUE_GET_INT(op2)); - goto redo; - } else if ((tag1 == JS_TAG_OBJECT && - (tag_is_number(tag2) || tag2 == JS_TAG_STRING || tag2 == JS_TAG_SYMBOL)) || - (tag2 == JS_TAG_OBJECT && - (tag_is_number(tag1) || tag1 == JS_TAG_STRING || tag1 == JS_TAG_SYMBOL))) { - op1 = JS_ToPrimitiveFree(ctx, op1, HINT_NONE); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToPrimitiveFree(ctx, op2, HINT_NONE); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - goto redo; - } else { - /* IsHTMLDDA object is equivalent to undefined for '==' and '!=' */ - if ((JS_IsHTMLDDA(ctx, op1) && - (tag2 == JS_TAG_NULL || tag2 == JS_TAG_UNDEFINED)) || - (JS_IsHTMLDDA(ctx, op2) && - (tag1 == JS_TAG_NULL || tag1 == JS_TAG_UNDEFINED))) { - res = true; - } else { - res = false; - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - } - done: - sp[-2] = js_bool(res ^ is_neq); - return 0; - exception: - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -static no_inline int js_shr_slow(JSContext *ctx, JSValue *sp) -{ - JSValue op1, op2; - uint32_t v1, v2, r; - - op1 = sp[-2]; - op2 = sp[-1]; - op1 = JS_ToNumericFree(ctx, op1); - if (JS_IsException(op1)) { - JS_FreeValue(ctx, op2); - goto exception; - } - op2 = JS_ToNumericFree(ctx, op2); - if (JS_IsException(op2)) { - JS_FreeValue(ctx, op1); - goto exception; - } - - if (JS_VALUE_GET_TAG(op1) == JS_TAG_BIG_INT || - JS_VALUE_GET_TAG(op1) == JS_TAG_SHORT_BIG_INT || - JS_VALUE_GET_TAG(op2) == JS_TAG_BIG_INT || - JS_VALUE_GET_TAG(op2) == JS_TAG_SHORT_BIG_INT) { - JS_ThrowTypeError(ctx, "BigInt operands are forbidden for >>>"); - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - goto exception; - } - /* cannot give an exception */ - JS_ToUint32Free(ctx, &v1, op1); - JS_ToUint32Free(ctx, &v2, op2); - r = v1 >> (v2 & 0x1f); - sp[-2] = js_uint32(r); - return 0; - exception: - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -static bool js_strict_eq2(JSContext *ctx, JSValue op1, JSValue op2, - JSStrictEqModeEnum eq_mode) -{ - bool res; - int tag1, tag2; - double d1, d2; - - tag1 = JS_VALUE_GET_NORM_TAG(op1); - tag2 = JS_VALUE_GET_NORM_TAG(op2); - switch(tag1) { - case JS_TAG_BOOL: - if (tag1 != tag2) { - res = false; - } else { - res = JS_VALUE_GET_INT(op1) == JS_VALUE_GET_INT(op2); - goto done_no_free; - } - break; - case JS_TAG_NULL: - case JS_TAG_UNDEFINED: - res = (tag1 == tag2); - break; - case JS_TAG_STRING: - { - JSString *p1, *p2; - if (tag1 != tag2) { - res = false; - } else { - p1 = JS_VALUE_GET_STRING(op1); - p2 = JS_VALUE_GET_STRING(op2); - res = js_string_eq(p1, p2); - } - } - break; - case JS_TAG_SYMBOL: - { - JSAtomStruct *p1, *p2; - if (tag1 != tag2) { - res = false; - } else { - p1 = JS_VALUE_GET_PTR(op1); - p2 = JS_VALUE_GET_PTR(op2); - res = (p1 == p2); - } - } - break; - case JS_TAG_OBJECT: - if (tag1 != tag2) - res = false; - else - res = JS_VALUE_GET_OBJ(op1) == JS_VALUE_GET_OBJ(op2); - break; - case JS_TAG_INT: - d1 = JS_VALUE_GET_INT(op1); - if (tag2 == JS_TAG_INT) { - d2 = JS_VALUE_GET_INT(op2); - goto number_test; - } else if (tag2 == JS_TAG_FLOAT64) { - d2 = JS_VALUE_GET_FLOAT64(op2); - goto number_test; - } else { - res = false; - } - break; - case JS_TAG_FLOAT64: - d1 = JS_VALUE_GET_FLOAT64(op1); - if (tag2 == JS_TAG_FLOAT64) { - d2 = JS_VALUE_GET_FLOAT64(op2); - } else if (tag2 == JS_TAG_INT) { - d2 = JS_VALUE_GET_INT(op2); - } else { - res = false; - break; - } - number_test: - if (unlikely(eq_mode >= JS_EQ_SAME_VALUE)) { - JSFloat64Union u1, u2; - /* NaN is not always normalized, so this test is necessary */ - if (isnan(d1) || isnan(d2)) { - res = isnan(d1) == isnan(d2); - } else if (eq_mode == JS_EQ_SAME_VALUE_ZERO) { - res = (d1 == d2); /* +0 == -0 */ - } else { - u1.d = d1; - u2.d = d2; - res = (u1.u64 == u2.u64); /* +0 != -0 */ - } - } else { - res = (d1 == d2); /* if NaN return false and +0 == -0 */ - } - goto done_no_free; - case JS_TAG_SHORT_BIG_INT: - case JS_TAG_BIG_INT: - { - JSBigIntBuf buf1, buf2; - JSBigInt *p1, *p2; - - if (tag2 != JS_TAG_SHORT_BIG_INT && - tag2 != JS_TAG_BIG_INT) { - res = false; - break; - } - - if (JS_VALUE_GET_TAG(op1) == JS_TAG_SHORT_BIG_INT) - p1 = js_bigint_set_short(&buf1, op1); - else - p1 = JS_VALUE_GET_PTR(op1); - if (JS_VALUE_GET_TAG(op2) == JS_TAG_SHORT_BIG_INT) - p2 = js_bigint_set_short(&buf2, op2); - else - p2 = JS_VALUE_GET_PTR(op2); - res = (js_bigint_cmp(ctx, p1, p2) == 0); - } - break; - default: - res = false; - break; - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - done_no_free: - return res; -} - -static bool js_strict_eq(JSContext *ctx, JSValue op1, JSValue op2) -{ - return js_strict_eq2(ctx, op1, op2, JS_EQ_STRICT); -} - -static bool js_same_value(JSContext *ctx, JSValueConst op1, JSValueConst op2) -{ - return js_strict_eq2(ctx, js_dup(op1), js_dup(op2), JS_EQ_SAME_VALUE); -} - -static bool js_same_value_zero(JSContext *ctx, JSValueConst op1, JSValueConst op2) -{ - return js_strict_eq2(ctx, js_dup(op1), js_dup(op2), JS_EQ_SAME_VALUE_ZERO); -} - -static no_inline int js_strict_eq_slow(JSContext *ctx, JSValue *sp, - bool is_neq) -{ - bool res; - res = js_strict_eq(ctx, sp[-2], sp[-1]); - sp[-2] = js_bool(res ^ is_neq); - return 0; -} - -static __exception int js_operator_in(JSContext *ctx, JSValue *sp) -{ - JSValue op1, op2; - JSAtom atom; - int ret; - - op1 = sp[-2]; - op2 = sp[-1]; - - if (JS_VALUE_GET_TAG(op2) != JS_TAG_OBJECT) { - JS_ThrowTypeError(ctx, "invalid 'in' operand"); - return -1; - } - atom = JS_ValueToAtom(ctx, op1); - if (unlikely(atom == JS_ATOM_NULL)) - return -1; - ret = JS_HasProperty(ctx, op2, atom); - JS_FreeAtom(ctx, atom); - if (ret < 0) - return -1; - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - sp[-2] = js_bool(ret); - return 0; -} - -static __exception int js_operator_private_in(JSContext *ctx, JSValue *sp) -{ - JSValue op1, op2; - int ret; - op1 = sp[-2]; /* object */ - op2 = sp[-1]; /* field name or method function */ - if (JS_VALUE_GET_TAG(op1) != JS_TAG_OBJECT) { - JS_ThrowTypeError(ctx, "invalid 'in' operand"); - return -1; - } - if (JS_IsObject(op2)) { - /* method: use the brand */ - ret = JS_CheckBrand(ctx, op1, op2); - if (ret < 0) - return -1; - } else { - JSAtom atom; - JSObject *p; - JSShapeProperty *prs; - JSProperty *pr; - /* field */ - atom = JS_ValueToAtom(ctx, op2); - if (unlikely(atom == JS_ATOM_NULL)) - return -1; - p = JS_VALUE_GET_OBJ(op1); - prs = find_own_property(&pr, p, atom); - JS_FreeAtom(ctx, atom); - ret = (prs != NULL); - } - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - sp[-2] = js_bool(ret); - return 0; -} - -static __exception int js_has_unscopable(JSContext *ctx, JSValue obj, - JSAtom atom) -{ - JSValue arr, val; - int ret; - - arr = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_unscopables); - if (JS_IsException(arr)) - return -1; - ret = 0; - if (JS_IsObject(arr)) { - val = JS_GetProperty(ctx, arr, atom); - ret = JS_ToBoolFree(ctx, val); - } - JS_FreeValue(ctx, arr); - return ret; -} - -static __exception int js_operator_instanceof(JSContext *ctx, JSValue *sp) -{ - JSValue op1, op2; - int ret; - - op1 = sp[-2]; - op2 = sp[-1]; - ret = JS_IsInstanceOf(ctx, op1, op2); - if (ret < 0) - return ret; - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - sp[-2] = js_bool(ret); - return 0; -} - -static __exception int js_operator_typeof(JSContext *ctx, JSValue op1) -{ - JSAtom atom; - uint32_t tag; - - tag = JS_VALUE_GET_NORM_TAG(op1); - switch(tag) { - case JS_TAG_SHORT_BIG_INT: - case JS_TAG_BIG_INT: - atom = JS_ATOM_bigint; - break; - case JS_TAG_INT: - case JS_TAG_FLOAT64: - atom = JS_ATOM_number; - break; - case JS_TAG_UNDEFINED: - atom = JS_ATOM_undefined; - break; - case JS_TAG_BOOL: - atom = JS_ATOM_boolean; - break; - case JS_TAG_STRING: - atom = JS_ATOM_string; - break; - case JS_TAG_OBJECT: - { - JSObject *p; - p = JS_VALUE_GET_OBJ(op1); - if (unlikely(p->is_HTMLDDA)) - atom = JS_ATOM_undefined; - else if (JS_IsFunction(ctx, op1)) - atom = JS_ATOM_function; - else - goto obj_type; - } - break; - case JS_TAG_NULL: - obj_type: - atom = JS_ATOM_object; - break; - case JS_TAG_SYMBOL: - atom = JS_ATOM_symbol; - break; - default: - atom = JS_ATOM_unknown; - break; - } - return atom; -} - -static __exception int js_operator_delete(JSContext *ctx, JSValue *sp) -{ - JSValue op1, op2; - JSAtom atom; - int ret; - - op1 = sp[-2]; - op2 = sp[-1]; - atom = JS_ValueToAtom(ctx, op2); - if (unlikely(atom == JS_ATOM_NULL)) - return -1; - ret = JS_DeleteProperty(ctx, op1, atom, JS_PROP_THROW_STRICT); - JS_FreeAtom(ctx, atom); - if (unlikely(ret < 0)) - return -1; - JS_FreeValue(ctx, op1); - JS_FreeValue(ctx, op2); - sp[-2] = js_bool(ret); - return 0; -} - -static JSValue js_throw_type_error(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) -{ - JSFunctionBytecode *b = JS_GetFunctionBytecode(this_val); - if (!b || b->is_strict_mode || !b->has_prototype) { - return JS_ThrowTypeError(ctx, "invalid property access"); - } - return JS_UNDEFINED; -} - -static JSValue js_function_proto_fileName(JSContext *ctx, - JSValueConst this_val) -{ - JSFunctionBytecode *b = JS_GetFunctionBytecode(this_val); - if (b) { - return JS_AtomToString(ctx, b->filename); - } - return JS_UNDEFINED; -} - -static JSValue js_function_proto_int32(JSContext *ctx, - JSValueConst this_val, - int magic) -{ - JSFunctionBytecode *b = JS_GetFunctionBytecode(this_val); - if (b) { - int *field = (int *) ((char *)b + magic); - return js_int32(*field); - } - return JS_UNDEFINED; -} - -static int js_arguments_define_own_property(JSContext *ctx, - JSValueConst this_obj, - JSAtom prop, JSValueConst val, - JSValueConst getter, - JSValueConst setter, int flags) -{ - JSObject *p; - uint32_t idx; - p = JS_VALUE_GET_OBJ(this_obj); - /* convert to normal array when redefining an existing numeric field */ - if (p->fast_array && JS_AtomIsArrayIndex(ctx, &idx, prop) && - idx < p->u.array.count) { - if (convert_fast_array_to_array(ctx, p)) - return -1; - } - /* run the default define own property */ - return JS_DefineProperty(ctx, this_obj, prop, val, getter, setter, - flags | JS_PROP_NO_EXOTIC); -} - -static const JSClassExoticMethods js_arguments_exotic_methods = { - .define_own_property = js_arguments_define_own_property, -}; - -static JSValue js_build_arguments(JSContext *ctx, int argc, JSValueConst *argv) -{ - JSValue val, *tab; - JSProperty *pr; - JSObject *p; - int i; - - val = JS_NewObjectProtoClass(ctx, ctx->class_proto[JS_CLASS_OBJECT], - JS_CLASS_ARGUMENTS); - if (JS_IsException(val)) - return val; - p = JS_VALUE_GET_OBJ(val); - - /* add the length field (cannot fail) */ - pr = add_property(ctx, p, JS_ATOM_length, - JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE); - if (!pr) { - JS_FreeValue(ctx, val); - return JS_EXCEPTION; - } - pr->u.value = js_int32(argc); - - /* initialize the fast array part */ - tab = NULL; - if (argc > 0) { - tab = js_malloc(ctx, sizeof(tab[0]) * argc); - if (!tab) { - JS_FreeValue(ctx, val); - return JS_EXCEPTION; - } - for(i = 0; i < argc; i++) { - tab[i] = js_dup(argv[i]); - } - } - p->u.array.u.values = tab; - p->u.array.count = argc; - - JS_DefinePropertyValue(ctx, val, JS_ATOM_Symbol_iterator, - js_dup(ctx->array_proto_values), - JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE); - /* add callee property to throw a TypeError in strict mode */ - JS_DefineProperty(ctx, val, JS_ATOM_callee, JS_UNDEFINED, - ctx->throw_type_error, ctx->throw_type_error, - JS_PROP_HAS_GET | JS_PROP_HAS_SET); - return val; -} - -#define GLOBAL_VAR_OFFSET 0x40000000 -#define ARGUMENT_VAR_OFFSET 0x20000000 - -/* legacy arguments object: add references to the function arguments */ -static JSValue js_build_mapped_arguments(JSContext *ctx, int argc, - JSValueConst *argv, - JSStackFrame *sf, int arg_count) -{ - JSValue val; - JSProperty *pr; - JSObject *p; - int i; - - val = JS_NewObjectProtoClass(ctx, ctx->class_proto[JS_CLASS_OBJECT], - JS_CLASS_MAPPED_ARGUMENTS); - if (JS_IsException(val)) - return val; - p = JS_VALUE_GET_OBJ(val); - - /* add the length field (cannot fail) */ - pr = add_property(ctx, p, JS_ATOM_length, - JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE); - if (!pr) - goto fail; - pr->u.value = js_int32(argc); - - for(i = 0; i < arg_count; i++) { - JSVarRef *var_ref; - var_ref = get_var_ref(ctx, sf, i, true); - if (!var_ref) - goto fail; - pr = add_property(ctx, p, __JS_AtomFromUInt32(i), JS_PROP_C_W_E | JS_PROP_VARREF); - if (!pr) { - free_var_ref(ctx->rt, var_ref); - goto fail; - } - pr->u.var_ref = var_ref; - } - - /* the arguments not mapped to the arguments of the function can - be normal properties */ - for(i = arg_count; i < argc; i++) { - if (JS_DefinePropertyValueUint32(ctx, val, i, - js_dup(argv[i]), - JS_PROP_C_W_E) < 0) - goto fail; - } - - JS_DefinePropertyValue(ctx, val, JS_ATOM_Symbol_iterator, - js_dup(ctx->array_proto_values), - JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE); - /* callee returns this function in non strict mode */ - JS_DefinePropertyValue(ctx, val, JS_ATOM_callee, - js_dup(ctx->rt->current_stack_frame->cur_func), - JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE); - return val; - fail: - JS_FreeValue(ctx, val); - return JS_EXCEPTION; -} - -static JSValue build_for_in_iterator(JSContext *ctx, JSValue obj) -{ - JSObject *p; - JSPropertyEnum *tab_atom; - int i; - JSValue enum_obj, obj1; - JSForInIterator *it; - uint32_t tag, tab_atom_count; - - tag = JS_VALUE_GET_TAG(obj); - if (tag != JS_TAG_OBJECT && tag != JS_TAG_NULL && tag != JS_TAG_UNDEFINED) { - obj = JS_ToObjectFree(ctx, obj); - } - - it = js_malloc(ctx, sizeof(*it)); - if (!it) { - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; - } - enum_obj = JS_NewObjectProtoClass(ctx, JS_NULL, JS_CLASS_FOR_IN_ITERATOR); - if (JS_IsException(enum_obj)) { - js_free(ctx, it); - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; - } - it->is_array = false; - it->obj = obj; - it->idx = 0; - p = JS_VALUE_GET_OBJ(enum_obj); - p->u.for_in_iterator = it; - - if (tag == JS_TAG_NULL || tag == JS_TAG_UNDEFINED) - return enum_obj; - - /* fast path: assume no enumerable properties in the prototype chain */ - obj1 = js_dup(obj); - for(;;) { - obj1 = JS_GetPrototypeFree(ctx, obj1); - if (JS_IsNull(obj1)) - break; - if (JS_IsException(obj1)) - goto fail; - if (JS_GetOwnPropertyNamesInternal(ctx, &tab_atom, &tab_atom_count, - JS_VALUE_GET_OBJ(obj1), - JS_GPN_STRING_MASK | JS_GPN_ENUM_ONLY)) { - JS_FreeValue(ctx, obj1); - goto fail; - } - js_free_prop_enum(ctx, tab_atom, tab_atom_count); - if (tab_atom_count != 0) { - JS_FreeValue(ctx, obj1); - goto slow_path; - } - /* must check for timeout to avoid infinite loop */ - if (js_poll_interrupts(ctx)) { - JS_FreeValue(ctx, obj1); - goto fail; - } - } - - p = JS_VALUE_GET_OBJ(obj); - - if (p->fast_array) { - JSShape *sh; - JSShapeProperty *prs; - /* check that there are no enumerable normal fields */ - sh = p->shape; - for(i = 0, prs = get_shape_prop(sh); i < sh->prop_count; i++, prs++) { - if (prs->flags & JS_PROP_ENUMERABLE) - goto normal_case; - } - /* for fast arrays, we only store the number of elements */ - it->is_array = true; - it->array_length = p->u.array.count; - } else { - normal_case: - if (JS_GetOwnPropertyNamesInternal(ctx, &tab_atom, &tab_atom_count, p, - JS_GPN_STRING_MASK | JS_GPN_ENUM_ONLY)) - goto fail; - for(i = 0; i < tab_atom_count; i++) { - JS_SetPropertyInternal(ctx, enum_obj, tab_atom[i].atom, JS_NULL, 0); - } - js_free_prop_enum(ctx, tab_atom, tab_atom_count); - } - return enum_obj; - - slow_path: - /* non enumerable properties hide the enumerables ones in the - prototype chain */ - obj1 = js_dup(obj); - for(;;) { - if (JS_GetOwnPropertyNamesInternal(ctx, &tab_atom, &tab_atom_count, - JS_VALUE_GET_OBJ(obj1), - JS_GPN_STRING_MASK | JS_GPN_SET_ENUM)) { - JS_FreeValue(ctx, obj1); - goto fail; - } - for(i = 0; i < tab_atom_count; i++) { - JS_DefinePropertyValue(ctx, enum_obj, tab_atom[i].atom, JS_NULL, - (tab_atom[i].is_enumerable ? - JS_PROP_ENUMERABLE : 0)); - } - js_free_prop_enum(ctx, tab_atom, tab_atom_count); - obj1 = JS_GetPrototypeFree(ctx, obj1); - if (JS_IsNull(obj1)) - break; - if (JS_IsException(obj1)) - goto fail; - /* must check for timeout to avoid infinite loop */ - if (js_poll_interrupts(ctx)) { - JS_FreeValue(ctx, obj1); - goto fail; - } - } - return enum_obj; - - fail: - JS_FreeValue(ctx, enum_obj); - return JS_EXCEPTION; -} - -/* obj -> enum_obj */ -static __exception int js_for_in_start(JSContext *ctx, JSValue *sp) -{ - sp[-1] = build_for_in_iterator(ctx, sp[-1]); - if (JS_IsException(sp[-1])) - return -1; - return 0; -} - -/* enum_obj -> enum_obj value done */ -static __exception int js_for_in_next(JSContext *ctx, JSValue *sp) -{ - JSValue enum_obj; - JSObject *p; - JSAtom prop; - JSForInIterator *it; - int ret; - - enum_obj = sp[-1]; - /* fail safe */ - if (JS_VALUE_GET_TAG(enum_obj) != JS_TAG_OBJECT) - goto done; - p = JS_VALUE_GET_OBJ(enum_obj); - if (p->class_id != JS_CLASS_FOR_IN_ITERATOR) - goto done; - it = p->u.for_in_iterator; - - for(;;) { - if (it->is_array) { - if (it->idx >= it->array_length) - goto done; - prop = __JS_AtomFromUInt32(it->idx); - it->idx++; - } else { - JSShape *sh = p->shape; - JSShapeProperty *prs; - if (it->idx >= sh->prop_count) - goto done; - prs = get_shape_prop(sh) + it->idx; - prop = prs->atom; - it->idx++; - if (prop == JS_ATOM_NULL || !(prs->flags & JS_PROP_ENUMERABLE)) - continue; - } - // check if the property was deleted unless we're dealing with a proxy - JSValue obj = it->obj; - if (JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT) { - JSObject *p = JS_VALUE_GET_OBJ(obj); - if (p->class_id == JS_CLASS_PROXY) - break; - } - ret = JS_HasProperty(ctx, obj, prop); - if (ret < 0) - return ret; - if (ret) - break; - } - /* return the property */ - sp[0] = JS_AtomToValue(ctx, prop); - sp[1] = JS_FALSE; - return 0; - done: - /* return the end */ - sp[0] = JS_UNDEFINED; - sp[1] = JS_TRUE; - return 0; -} - -static JSValue JS_GetIterator2(JSContext *ctx, JSValueConst obj, - JSValueConst method) -{ - JSValue enum_obj; - - enum_obj = JS_Call(ctx, method, obj, 0, NULL); - if (JS_IsException(enum_obj)) - return enum_obj; - if (!JS_IsObject(enum_obj)) { - JS_FreeValue(ctx, enum_obj); - return JS_ThrowTypeErrorNotAnObject(ctx); - } - return enum_obj; -} - -static JSValue JS_GetIterator(JSContext *ctx, JSValueConst obj, bool is_async) -{ - JSValue method, ret, sync_iter; - - if (is_async) { - method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_asyncIterator); - if (JS_IsException(method)) - return method; - if (JS_IsUndefined(method) || JS_IsNull(method)) { - method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator); - if (JS_IsException(method)) - return method; - sync_iter = JS_GetIterator2(ctx, obj, method); - JS_FreeValue(ctx, method); - if (JS_IsException(sync_iter)) - return sync_iter; - ret = JS_CreateAsyncFromSyncIterator(ctx, sync_iter); - JS_FreeValue(ctx, sync_iter); - return ret; - } - } else { - method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator); - if (JS_IsException(method)) - return method; - } - if (!JS_IsFunction(ctx, method)) { - JS_FreeValue(ctx, method); - return JS_ThrowTypeError(ctx, "value is not iterable"); - } - ret = JS_GetIterator2(ctx, obj, method); - JS_FreeValue(ctx, method); - return ret; -} - -/* return *pdone = 2 if the iterator object is not parsed */ -static JSValue JS_IteratorNext2(JSContext *ctx, JSValueConst enum_obj, - JSValueConst method, - int argc, JSValueConst *argv, int *pdone) -{ - JSValue obj; - - /* fast path for the built-in iterators (avoid creating the - intermediate result object) */ - if (JS_IsObject(method)) { - JSObject *p = JS_VALUE_GET_OBJ(method); - if (p->class_id == JS_CLASS_C_FUNCTION && - p->u.cfunc.cproto == JS_CFUNC_iterator_next) { - JSCFunctionType func; - JSValueConst args[1]; - - /* in case the function expects one argument */ - if (argc == 0) { - args[0] = JS_UNDEFINED; - argv = args; - } - func = p->u.cfunc.c_function; - return func.iterator_next(ctx, enum_obj, argc, argv, - pdone, p->u.cfunc.magic); - } - } - obj = JS_Call(ctx, method, enum_obj, argc, argv); - if (JS_IsException(obj)) - goto fail; - if (!JS_IsObject(obj)) { - JS_FreeValue(ctx, obj); - JS_ThrowTypeError(ctx, "iterator must return an object"); - goto fail; - } - *pdone = 2; - return obj; - fail: - *pdone = false; - return JS_EXCEPTION; -} - -static JSValue JS_IteratorNext(JSContext *ctx, JSValueConst enum_obj, - JSValueConst method, - int argc, JSValueConst *argv, int *pdone) -{ - JSValue obj, value, done_val; - int done; - - obj = JS_IteratorNext2(ctx, enum_obj, method, argc, argv, &done); - if (JS_IsException(obj)) - goto fail; - if (likely(done == 0)) { - *pdone = false; - return obj; - } else if (done != 2) { - JS_FreeValue(ctx, obj); - *pdone = true; - return JS_UNDEFINED; - } else { - done_val = JS_GetProperty(ctx, obj, JS_ATOM_done); - if (JS_IsException(done_val)) - goto fail; - *pdone = JS_ToBoolFree(ctx, done_val); - value = JS_UNDEFINED; - if (!*pdone) { - value = JS_GetProperty(ctx, obj, JS_ATOM_value); - } - JS_FreeValue(ctx, obj); - return value; - } - fail: - JS_FreeValue(ctx, obj); - *pdone = false; - return JS_EXCEPTION; -} - -/* return < 0 in case of exception */ -static int JS_IteratorClose(JSContext *ctx, JSValueConst enum_obj, - bool is_exception_pending) -{ - JSValue method, ret, ex_obj; - int res; - - if (is_exception_pending) { - ex_obj = ctx->rt->current_exception; - ctx->rt->current_exception = JS_UNINITIALIZED; - res = -1; - } else { - ex_obj = JS_UNDEFINED; - res = 0; - } - method = JS_GetProperty(ctx, enum_obj, JS_ATOM_return); - if (JS_IsException(method)) { - res = -1; - goto done; - } - if (JS_IsUndefined(method) || JS_IsNull(method)) { - goto done; - } - ret = JS_CallFree(ctx, method, enum_obj, 0, NULL); - if (!is_exception_pending) { - if (JS_IsException(ret)) { - res = -1; - } else if (!JS_IsObject(ret)) { - JS_ThrowTypeErrorNotAnObject(ctx); - res = -1; - } - } - JS_FreeValue(ctx, ret); - done: - if (is_exception_pending) { - JS_Throw(ctx, ex_obj); - } - return res; -} - -/* obj -> enum_rec (3 slots) */ -static __exception int js_for_of_start(JSContext *ctx, JSValue *sp, - bool is_async) -{ - JSValue op1, obj, method; - op1 = sp[-1]; - obj = JS_GetIterator(ctx, op1, is_async); - if (JS_IsException(obj)) - return -1; - JS_FreeValue(ctx, op1); - sp[-1] = obj; - method = JS_GetProperty(ctx, obj, JS_ATOM_next); - if (JS_IsException(method)) - return -1; - sp[0] = method; - return 0; -} - -/* enum_rec [objs] -> enum_rec [objs] value done. There are 'offset' - objs. If 'done' is true or in case of exception, 'enum_rec' is set - to undefined. If 'done' is true, 'value' is always set to - undefined. */ -static __exception int js_for_of_next(JSContext *ctx, JSValue *sp, int offset) -{ - JSValue value = JS_UNDEFINED; - int done = 1; - - if (likely(!JS_IsUndefined(sp[offset]))) { - value = JS_IteratorNext(ctx, sp[offset], sp[offset + 1], 0, NULL, &done); - if (JS_IsException(value)) - done = -1; - if (done) { - /* value is JS_UNDEFINED or JS_EXCEPTION */ - /* replace the iteration object with undefined */ - JS_FreeValue(ctx, sp[offset]); - sp[offset] = JS_UNDEFINED; - if (done < 0) { - return -1; - } else { - JS_FreeValue(ctx, value); - value = JS_UNDEFINED; - } - } - } - sp[0] = value; - sp[1] = js_bool(done); - return 0; -} - -static JSValue JS_IteratorGetCompleteValue(JSContext *ctx, JSValue obj, - int *pdone) -{ - JSValue done_val, value; - int done; - done_val = JS_GetProperty(ctx, obj, JS_ATOM_done); - if (JS_IsException(done_val)) - goto fail; - done = JS_ToBoolFree(ctx, done_val); - value = JS_GetProperty(ctx, obj, JS_ATOM_value); - if (JS_IsException(value)) - goto fail; - *pdone = done; - return value; - fail: - *pdone = false; - return JS_EXCEPTION; -} - -static __exception int js_iterator_get_value_done(JSContext *ctx, JSValue *sp) -{ - JSValue obj, value; - int done; - obj = sp[-1]; - if (!JS_IsObject(obj)) { - JS_ThrowTypeError(ctx, "iterator must return an object"); - return -1; - } - value = JS_IteratorGetCompleteValue(ctx, obj, &done); - if (JS_IsException(value)) - return -1; - JS_FreeValue(ctx, obj); - sp[-1] = value; - sp[0] = js_bool(done); - return 0; -} - -static JSValue js_create_iterator_result(JSContext *ctx, - JSValue val, - bool done) -{ - JSValue obj; - obj = JS_NewObject(ctx); - if (JS_IsException(obj)) { - JS_FreeValue(ctx, val); - return obj; - } - if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_value, - val, JS_PROP_C_W_E) < 0) { - goto fail; - } - if (JS_DefinePropertyValue(ctx, obj, JS_ATOM_done, - js_bool(done), JS_PROP_C_W_E) < 0) { - fail: - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; - } - return obj; -} - -static JSValue js_array_iterator_next(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, - int *pdone, int magic); - -static JSValue js_create_array_iterator(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic); - -static bool js_is_fast_array(JSContext *ctx, JSValue obj) -{ - /* Try and handle fast arrays explicitly */ - if (JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT) { - JSObject *p = JS_VALUE_GET_OBJ(obj); - if (p->class_id == JS_CLASS_ARRAY && p->fast_array) { - return true; - } - } - return false; -} - -/* Access an Array's internal JSValue array if available */ -static bool js_get_fast_array(JSContext *ctx, JSValue obj, - JSValue **arrpp, uint32_t *countp) -{ - /* Try and handle fast arrays explicitly */ - if (JS_VALUE_GET_TAG(obj) == JS_TAG_OBJECT) { - JSObject *p = JS_VALUE_GET_OBJ(obj); - if (p->class_id == JS_CLASS_ARRAY && p->fast_array) { - *countp = p->u.array.count; - *arrpp = p->u.array.u.values; - return true; - } - } - return false; -} - -static __exception int js_append_enumerate(JSContext *ctx, JSValue *sp) -{ - JSValue iterator, enumobj, method, value; - int is_array_iterator; - JSValue *arrp; - uint32_t i, count32, pos; - - if (JS_VALUE_GET_TAG(sp[-2]) != JS_TAG_INT) { - JS_ThrowInternalError(ctx, "invalid index for append"); - return -1; - } - - pos = JS_VALUE_GET_INT(sp[-2]); - - /* XXX: further optimisations: - - use ctx->array_proto_values? - - check if array_iterator_prototype next method is built-in and - avoid constructing actual iterator object? - - build this into js_for_of_start and use in all `for (x of o)` loops - */ - iterator = JS_GetProperty(ctx, sp[-1], JS_ATOM_Symbol_iterator); - if (JS_IsException(iterator)) - return -1; - /* Used to squelch a -Wcast-function-type warning. */ - JSCFunctionType ft = { .generic_magic = js_create_array_iterator }; - is_array_iterator = JS_IsCFunction(ctx, iterator, - ft.generic, - JS_ITERATOR_KIND_VALUE); - JS_FreeValue(ctx, iterator); - - enumobj = JS_GetIterator(ctx, sp[-1], false); - if (JS_IsException(enumobj)) - return -1; - method = JS_GetProperty(ctx, enumobj, JS_ATOM_next); - if (JS_IsException(method)) { - JS_FreeValue(ctx, enumobj); - return -1; - } - /* Used to squelch a -Wcast-function-type warning. */ - JSCFunctionType ft2 = { .iterator_next = js_array_iterator_next }; - if (is_array_iterator - && JS_IsCFunction(ctx, method, ft2.generic, 0) - && js_get_fast_array(ctx, sp[-1], &arrp, &count32)) { - uint32_t len; - if (js_get_length32(ctx, &len, sp[-1])) - goto exception; - /* if len > count32, the elements >= count32 might be read in - the prototypes and might have side effects */ - if (len != count32) - goto general_case; - /* Handle fast arrays explicitly */ - for (i = 0; i < count32; i++) { - if (JS_DefinePropertyValueUint32(ctx, sp[-3], pos++, - js_dup(arrp[i]), JS_PROP_C_W_E) < 0) - goto exception; - } - } else { - general_case: - for (;;) { - int done; - value = JS_IteratorNext(ctx, enumobj, method, 0, NULL, &done); - if (JS_IsException(value)) - goto exception; - if (done) { - /* value is JS_UNDEFINED */ - break; - } - if (JS_DefinePropertyValueUint32(ctx, sp[-3], pos++, value, JS_PROP_C_W_E) < 0) - goto exception; - } - } - /* Note: could raise an error if too many elements */ - sp[-2] = js_int32(pos); - JS_FreeValue(ctx, enumobj); - JS_FreeValue(ctx, method); - return 0; - -exception: - JS_IteratorClose(ctx, enumobj, true); - JS_FreeValue(ctx, enumobj); - JS_FreeValue(ctx, method); - return -1; -} - -static __exception int JS_CopyDataProperties(JSContext *ctx, - JSValue target, - JSValue source, - JSValue excluded, - bool setprop) -{ - JSPropertyEnum *tab_atom; - JSValue val; - uint32_t i, tab_atom_count; - JSObject *p; - JSObject *pexcl = NULL; - int ret, gpn_flags; - JSPropertyDescriptor desc; - bool is_enumerable; - - if (JS_VALUE_GET_TAG(source) != JS_TAG_OBJECT) - return 0; - - if (JS_VALUE_GET_TAG(excluded) == JS_TAG_OBJECT) - pexcl = JS_VALUE_GET_OBJ(excluded); - - p = JS_VALUE_GET_OBJ(source); - - gpn_flags = JS_GPN_STRING_MASK | JS_GPN_SYMBOL_MASK | JS_GPN_ENUM_ONLY; - if (p->is_exotic) { - const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; - /* cannot use JS_GPN_ENUM_ONLY with e.g. proxies because it - introduces a visible change */ - if (em && em->get_own_property_names) { - gpn_flags &= ~JS_GPN_ENUM_ONLY; - } - } - if (JS_GetOwnPropertyNamesInternal(ctx, &tab_atom, &tab_atom_count, p, - gpn_flags)) - return -1; - - for (i = 0; i < tab_atom_count; i++) { - if (pexcl) { - ret = JS_GetOwnPropertyInternal(ctx, NULL, pexcl, tab_atom[i].atom); - if (ret) { - if (ret < 0) - goto exception; - continue; - } - } - if (!(gpn_flags & JS_GPN_ENUM_ONLY)) { - /* test if the property is enumerable */ - ret = JS_GetOwnPropertyInternal(ctx, &desc, p, tab_atom[i].atom); - if (ret < 0) - goto exception; - if (!ret) - continue; - is_enumerable = (desc.flags & JS_PROP_ENUMERABLE) != 0; - js_free_desc(ctx, &desc); - if (!is_enumerable) - continue; - } - val = JS_GetProperty(ctx, source, tab_atom[i].atom); - if (JS_IsException(val)) - goto exception; - if (setprop) - ret = JS_SetProperty(ctx, target, tab_atom[i].atom, val); - else - ret = JS_DefinePropertyValue(ctx, target, tab_atom[i].atom, val, - JS_PROP_C_W_E); - if (ret < 0) - goto exception; - } - js_free_prop_enum(ctx, tab_atom, tab_atom_count); - return 0; - exception: - js_free_prop_enum(ctx, tab_atom, tab_atom_count); - return -1; -} - -/* only valid inside C functions */ -static JSValueConst JS_GetActiveFunction(JSContext *ctx) -{ - return ctx->rt->current_stack_frame->cur_func; -} - -static JSVarRef *get_var_ref(JSContext *ctx, JSStackFrame *sf, - int var_idx, bool is_arg) -{ - JSVarRef *var_ref; - struct list_head *el; - JSValue *pvalue; - - if (is_arg) - pvalue = &sf->arg_buf[var_idx]; - else - pvalue = &sf->var_buf[var_idx]; - - list_for_each(el, &sf->var_ref_list) { - var_ref = list_entry(el, JSVarRef, header.link); - if (var_ref->pvalue == pvalue) { - var_ref->header.ref_count++; - return var_ref; - } - } - /* create a new one */ - var_ref = js_malloc(ctx, sizeof(JSVarRef)); - if (!var_ref) - return NULL; - var_ref->header.ref_count = 1; - var_ref->is_detached = false; - list_add_tail(&var_ref->header.link, &sf->var_ref_list); - var_ref->pvalue = pvalue; - var_ref->value = JS_UNDEFINED; - return var_ref; -} - -static JSValue js_closure2(JSContext *ctx, JSValue func_obj, - JSFunctionBytecode *b, - JSVarRef **cur_var_refs, - JSStackFrame *sf) -{ - JSObject *p; - JSVarRef **var_refs; - int i; - - p = JS_VALUE_GET_OBJ(func_obj); - p->u.func.function_bytecode = b; - p->u.func.home_object = NULL; - p->u.func.var_refs = NULL; - if (b->closure_var_count) { - var_refs = js_mallocz(ctx, sizeof(var_refs[0]) * b->closure_var_count); - if (!var_refs) - goto fail; - p->u.func.var_refs = var_refs; - for(i = 0; i < b->closure_var_count; i++) { - JSClosureVar *cv = &b->closure_var[i]; - JSVarRef *var_ref; - if (cv->is_local) { - /* reuse the existing variable reference if it already exists */ - var_ref = get_var_ref(ctx, sf, cv->var_idx, cv->is_arg); - if (!var_ref) - goto fail; - } else { - var_ref = cur_var_refs[cv->var_idx]; - var_ref->header.ref_count++; - } - var_refs[i] = var_ref; - } - } - return func_obj; - fail: - /* bfunc is freed when func_obj is freed */ - JS_FreeValue(ctx, func_obj); - return JS_EXCEPTION; -} - -static JSValue js_instantiate_prototype(JSContext *ctx, JSObject *p, JSAtom atom, void *opaque) -{ - JSValue obj, this_val; - int ret; - - this_val = JS_MKPTR(JS_TAG_OBJECT, p); - obj = JS_NewObject(ctx); - if (JS_IsException(obj)) - return JS_EXCEPTION; - ret = JS_DefinePropertyValue(ctx, obj, JS_ATOM_constructor, - js_dup(this_val), - JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE); - if (ret < 0) { - JS_FreeValue(ctx, obj); - return JS_EXCEPTION; - } - return obj; -} - -static const uint16_t func_kind_to_class_id[] = { - [JS_FUNC_NORMAL] = JS_CLASS_BYTECODE_FUNCTION, - [JS_FUNC_GENERATOR] = JS_CLASS_GENERATOR_FUNCTION, - [JS_FUNC_ASYNC] = JS_CLASS_ASYNC_FUNCTION, - [JS_FUNC_ASYNC_GENERATOR] = JS_CLASS_ASYNC_GENERATOR_FUNCTION, -}; - -static JSValue js_closure(JSContext *ctx, JSValue bfunc, - JSVarRef **cur_var_refs, - JSStackFrame *sf) -{ - JSFunctionBytecode *b; - JSValue func_obj; - JSAtom name_atom; - - b = JS_VALUE_GET_PTR(bfunc); - func_obj = JS_NewObjectClass(ctx, func_kind_to_class_id[b->func_kind]); - if (JS_IsException(func_obj)) { - JS_FreeValue(ctx, bfunc); - return JS_EXCEPTION; - } - func_obj = js_closure2(ctx, func_obj, b, cur_var_refs, sf); - if (JS_IsException(func_obj)) { - /* bfunc has been freed */ - goto fail; - } - name_atom = b->func_name; - if (name_atom == JS_ATOM_NULL) - name_atom = JS_ATOM_empty_string; - js_function_set_properties(ctx, func_obj, name_atom, - b->defined_arg_count); - - if (b->func_kind & JS_FUNC_GENERATOR) { - JSValue proto; - int proto_class_id; - /* generators have a prototype field which is used as - prototype for the generator object */ - if (b->func_kind == JS_FUNC_ASYNC_GENERATOR) - proto_class_id = JS_CLASS_ASYNC_GENERATOR; - else - proto_class_id = JS_CLASS_GENERATOR; - proto = JS_NewObjectProto(ctx, ctx->class_proto[proto_class_id]); - if (JS_IsException(proto)) - goto fail; - JS_DefinePropertyValue(ctx, func_obj, JS_ATOM_prototype, proto, - JS_PROP_WRITABLE); - } else if (b->has_prototype) { - /* add the 'prototype' property: delay instantiation to avoid - creating cycles for every javascript function. The prototype - object is created on the fly when first accessed */ - JS_SetConstructorBit(ctx, func_obj, true); - JS_DefineAutoInitProperty(ctx, func_obj, JS_ATOM_prototype, - JS_AUTOINIT_ID_PROTOTYPE, NULL, - JS_PROP_WRITABLE); - } - return func_obj; - fail: - /* bfunc is freed when func_obj is freed */ - JS_FreeValue(ctx, func_obj); - return JS_EXCEPTION; -} - -#define JS_DEFINE_CLASS_HAS_HERITAGE (1 << 0) - -static int js_op_define_class(JSContext *ctx, JSValue *sp, - JSAtom class_name, int class_flags, - JSVarRef **cur_var_refs, - JSStackFrame *sf, bool is_computed_name) -{ - JSValue bfunc, parent_class, proto = JS_UNDEFINED; - JSValue ctor = JS_UNDEFINED, parent_proto = JS_UNDEFINED; - JSFunctionBytecode *b; - - parent_class = sp[-2]; - bfunc = sp[-1]; - - if (class_flags & JS_DEFINE_CLASS_HAS_HERITAGE) { - if (JS_IsNull(parent_class)) { - parent_proto = JS_NULL; - parent_class = js_dup(ctx->function_proto); - } else { - if (!JS_IsConstructor(ctx, parent_class)) { - JS_ThrowTypeError(ctx, "parent class must be constructor"); - goto fail; - } - parent_proto = JS_GetProperty(ctx, parent_class, JS_ATOM_prototype); - if (JS_IsException(parent_proto)) - goto fail; - if (!JS_IsNull(parent_proto) && !JS_IsObject(parent_proto)) { - JS_ThrowTypeError(ctx, "parent prototype must be an object or null"); - goto fail; - } - } - } else { - /* parent_class is JS_UNDEFINED in this case */ - parent_proto = js_dup(ctx->class_proto[JS_CLASS_OBJECT]); - parent_class = js_dup(ctx->function_proto); - } - proto = JS_NewObjectProto(ctx, parent_proto); - if (JS_IsException(proto)) - goto fail; - - b = JS_VALUE_GET_PTR(bfunc); - assert(b->func_kind == JS_FUNC_NORMAL); - ctor = JS_NewObjectProtoClass(ctx, parent_class, - JS_CLASS_BYTECODE_FUNCTION); - if (JS_IsException(ctor)) - goto fail; - ctor = js_closure2(ctx, ctor, b, cur_var_refs, sf); - bfunc = JS_UNDEFINED; - if (JS_IsException(ctor)) - goto fail; - js_method_set_home_object(ctx, ctor, proto); - JS_SetConstructorBit(ctx, ctor, true); - - JS_DefinePropertyValue(ctx, ctor, JS_ATOM_length, - js_int32(b->defined_arg_count), - JS_PROP_CONFIGURABLE); - - if (is_computed_name) { - if (JS_DefineObjectNameComputed(ctx, ctor, sp[-3], - JS_PROP_CONFIGURABLE) < 0) - goto fail; - } else { - if (JS_DefineObjectName(ctx, ctor, class_name, JS_PROP_CONFIGURABLE) < 0) - goto fail; - } - - /* the constructor property must be first. It can be overriden by - computed property names */ - if (JS_DefinePropertyValue(ctx, proto, JS_ATOM_constructor, - js_dup(ctor), - JS_PROP_CONFIGURABLE | - JS_PROP_WRITABLE | JS_PROP_THROW) < 0) - goto fail; - /* set the prototype property */ - if (JS_DefinePropertyValue(ctx, ctor, JS_ATOM_prototype, - js_dup(proto), JS_PROP_THROW) < 0) - goto fail; - - JS_FreeValue(ctx, parent_proto); - JS_FreeValue(ctx, parent_class); - - sp[-2] = ctor; - sp[-1] = proto; - return 0; - fail: - JS_FreeValue(ctx, parent_class); - JS_FreeValue(ctx, parent_proto); - JS_FreeValue(ctx, bfunc); - JS_FreeValue(ctx, proto); - JS_FreeValue(ctx, ctor); - sp[-2] = JS_UNDEFINED; - sp[-1] = JS_UNDEFINED; - return -1; -} - -static void close_var_refs(JSRuntime *rt, JSStackFrame *sf) -{ - struct list_head *el, *el1; - JSVarRef *var_ref; - - list_for_each_safe(el, el1, &sf->var_ref_list) { - var_ref = list_entry(el, JSVarRef, header.link); - var_ref->value = js_dup(*var_ref->pvalue); - var_ref->pvalue = &var_ref->value; - /* the reference is no longer to a local variable */ - var_ref->is_detached = true; - add_gc_object(rt, &var_ref->header, JS_GC_OBJ_TYPE_VAR_REF); - } -} - -static void close_lexical_var(JSContext *ctx, JSStackFrame *sf, int var_idx) -{ - JSValue *pvalue; - struct list_head *el, *el1; - JSVarRef *var_ref; - - pvalue = &sf->var_buf[var_idx]; - list_for_each_safe(el, el1, &sf->var_ref_list) { - var_ref = list_entry(el, JSVarRef, header.link); - if (var_ref->pvalue == pvalue) { - var_ref->value = js_dup(*var_ref->pvalue); - var_ref->pvalue = &var_ref->value; - list_del(&var_ref->header.link); - /* the reference is no longer to a local variable */ - var_ref->is_detached = true; - add_gc_object(ctx->rt, &var_ref->header, JS_GC_OBJ_TYPE_VAR_REF); - } - } -} - -#define JS_CALL_FLAG_COPY_ARGV (1 << 1) -#define JS_CALL_FLAG_GENERATOR (1 << 2) - -static JSValue js_call_c_function(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, int flags) -{ - JSRuntime *rt = ctx->rt; - JSCFunctionType func; - JSObject *p; - JSStackFrame sf_s, *sf = &sf_s, *prev_sf; - JSValue ret_val; - JSValueConst *arg_buf; - int arg_count, i; - JSCFunctionEnum cproto; - - p = JS_VALUE_GET_OBJ(func_obj); - cproto = p->u.cfunc.cproto; - arg_count = p->u.cfunc.length; - - /* better to always check stack overflow */ - if (js_check_stack_overflow(rt, sizeof(arg_buf[0]) * arg_count)) - return JS_ThrowStackOverflow(ctx); - - prev_sf = rt->current_stack_frame; - sf->prev_frame = prev_sf; - rt->current_stack_frame = sf; - ctx = p->u.cfunc.realm; /* change the current realm */ - - sf->is_strict_mode = false; - sf->cur_func = unsafe_unconst(func_obj); - sf->arg_count = argc; - arg_buf = argv; - - if (unlikely(argc < arg_count)) { - /* ensure that at least argc_count arguments are readable */ - arg_buf = alloca(sizeof(arg_buf[0]) * arg_count); - for(i = 0; i < argc; i++) - arg_buf[i] = argv[i]; - for(i = argc; i < arg_count; i++) - arg_buf[i] = JS_UNDEFINED; - sf->arg_count = arg_count; - } - sf->arg_buf = (JSValue *)arg_buf; - - func = p->u.cfunc.c_function; - switch(cproto) { - case JS_CFUNC_constructor: - case JS_CFUNC_constructor_or_func: - if (!(flags & JS_CALL_FLAG_CONSTRUCTOR)) { - if (cproto == JS_CFUNC_constructor) { - not_a_constructor: - ret_val = JS_ThrowTypeError(ctx, "must be called with new"); - break; - } else { - this_obj = JS_UNDEFINED; - } - } - /* here this_obj is new_target */ - /* fall thru */ - case JS_CFUNC_generic: - ret_val = func.generic(ctx, this_obj, argc, arg_buf); - break; - case JS_CFUNC_constructor_magic: - case JS_CFUNC_constructor_or_func_magic: - if (!(flags & JS_CALL_FLAG_CONSTRUCTOR)) { - if (cproto == JS_CFUNC_constructor_magic) { - goto not_a_constructor; - } else { - this_obj = JS_UNDEFINED; - } - } - /* fall thru */ - case JS_CFUNC_generic_magic: - ret_val = func.generic_magic(ctx, this_obj, argc, arg_buf, - p->u.cfunc.magic); - break; - case JS_CFUNC_getter: - ret_val = func.getter(ctx, this_obj); - break; - case JS_CFUNC_setter: - ret_val = func.setter(ctx, this_obj, arg_buf[0]); - break; - case JS_CFUNC_getter_magic: - ret_val = func.getter_magic(ctx, this_obj, p->u.cfunc.magic); - break; - case JS_CFUNC_setter_magic: - ret_val = func.setter_magic(ctx, this_obj, arg_buf[0], p->u.cfunc.magic); - break; - case JS_CFUNC_f_f: - { - double d1; - - if (unlikely(JS_ToFloat64(ctx, &d1, arg_buf[0]))) { - ret_val = JS_EXCEPTION; - break; - } - ret_val = js_number(func.f_f(d1)); - } - break; - case JS_CFUNC_f_f_f: - { - double d1, d2; - - if (unlikely(JS_ToFloat64(ctx, &d1, arg_buf[0]))) { - ret_val = JS_EXCEPTION; - break; - } - if (unlikely(JS_ToFloat64(ctx, &d2, arg_buf[1]))) { - ret_val = JS_EXCEPTION; - break; - } - ret_val = js_number(func.f_f_f(d1, d2)); - } - break; - case JS_CFUNC_iterator_next: - { - int done; - ret_val = func.iterator_next(ctx, this_obj, argc, arg_buf, - &done, p->u.cfunc.magic); - if (!JS_IsException(ret_val) && done != 2) { - ret_val = js_create_iterator_result(ctx, ret_val, done); - } - } - break; - default: - abort(); - } - - rt->current_stack_frame = sf->prev_frame; - return ret_val; -} - -static JSValue js_call_bound_function(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, int flags) -{ - JSObject *p; - JSBoundFunction *bf; - JSValueConst *arg_buf, new_target; - int arg_count, i; - - p = JS_VALUE_GET_OBJ(func_obj); - bf = p->u.bound_function; - arg_count = bf->argc + argc; - if (js_check_stack_overflow(ctx->rt, sizeof(JSValue) * arg_count)) - return JS_ThrowStackOverflow(ctx); - arg_buf = alloca(sizeof(JSValue) * arg_count); - for(i = 0; i < bf->argc; i++) { - arg_buf[i] = bf->argv[i]; - } - for(i = 0; i < argc; i++) { - arg_buf[bf->argc + i] = argv[i]; - } - if (flags & JS_CALL_FLAG_CONSTRUCTOR) { - new_target = this_obj; - if (js_same_value(ctx, func_obj, new_target)) - new_target = bf->func_obj; - return JS_CallConstructor2(ctx, bf->func_obj, new_target, - arg_count, arg_buf); - } else { - return JS_Call(ctx, bf->func_obj, bf->this_val, - arg_count, arg_buf); - } -} - -/* argument of OP_special_object */ -typedef enum { - OP_SPECIAL_OBJECT_ARGUMENTS, - OP_SPECIAL_OBJECT_MAPPED_ARGUMENTS, - OP_SPECIAL_OBJECT_THIS_FUNC, - OP_SPECIAL_OBJECT_NEW_TARGET, - OP_SPECIAL_OBJECT_HOME_OBJECT, - OP_SPECIAL_OBJECT_VAR_OBJECT, - OP_SPECIAL_OBJECT_IMPORT_META, - OP_SPECIAL_OBJECT_NULL_PROTO, -} OPSpecialObjectEnum; - -#define FUNC_RET_AWAIT 0 -#define FUNC_RET_YIELD 1 -#define FUNC_RET_YIELD_STAR 2 - -#ifdef ENABLE_DUMPS // JS_DUMP_BYTECODE_* -static void dump_single_byte_code(JSContext *ctx, const uint8_t *pc, - JSFunctionBytecode *b, int start_pos); -static void print_func_name(JSFunctionBytecode *b); -#endif - -static bool needs_backtrace(JSValue exc) -{ - JSObject *p; - - if (JS_VALUE_GET_TAG(exc) != JS_TAG_OBJECT) - return false; - p = JS_VALUE_GET_OBJ(exc); - if (p->class_id != JS_CLASS_ERROR) - return false; - return !find_own_property1(p, JS_ATOM_stack); -} - -/* argv[] is modified if (flags & JS_CALL_FLAG_COPY_ARGV) = 0. */ -static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj, - JSValueConst this_obj, JSValueConst new_target, - int argc, JSValueConst *argv, int flags) -{ - JSRuntime *rt = caller_ctx->rt; - JSContext *ctx; - JSObject *p; - JSFunctionBytecode *b; - JSStackFrame sf_s, *sf = &sf_s; - uint8_t *pc; - int opcode, arg_allocated_size, i; - JSValue *local_buf, *stack_buf, *var_buf, *arg_buf, *sp, ret_val, *pval; - JSVarRef **var_refs; - size_t alloca_size; - -#ifdef ENABLE_DUMPS // JS_DUMP_BYTECODE_STEP -#define DUMP_BYTECODE_OR_DONT(pc) \ - if (check_dump_flag(ctx->rt, JS_DUMP_BYTECODE_STEP)) dump_single_byte_code(ctx, pc, b, 0); -#else -#define DUMP_BYTECODE_OR_DONT(pc) -#endif - -#if !DIRECT_DISPATCH -#define SWITCH(pc) DUMP_BYTECODE_OR_DONT(pc) switch (opcode = *pc++) -#define CASE(op) case op -#define DEFAULT default -#define BREAK break -#else - __extension__ static const void * const dispatch_table[256] = { -#define DEF(id, size, n_pop, n_push, f) && case_OP_ ## id, -#define def(id, size, n_pop, n_push, f) -#include "quickjs-opcode.h" - [ OP_COUNT ... 255 ] = &&case_default - }; -#define SWITCH(pc) DUMP_BYTECODE_OR_DONT(pc) __extension__ ({ goto *dispatch_table[opcode = *pc++]; }); -#define CASE(op) case_ ## op -#define DEFAULT case_default -#define BREAK SWITCH(pc) -#endif - - if (js_poll_interrupts(caller_ctx)) - return JS_EXCEPTION; - if (unlikely(JS_VALUE_GET_TAG(func_obj) != JS_TAG_OBJECT)) { - if (flags & JS_CALL_FLAG_GENERATOR) { - JSAsyncFunctionState *s = JS_VALUE_GET_PTR(func_obj); - /* func_obj get contains a pointer to JSFuncAsyncState */ - /* the stack frame is already allocated */ - sf = &s->frame; - p = JS_VALUE_GET_OBJ(sf->cur_func); - b = p->u.func.function_bytecode; - ctx = b->realm; - var_refs = p->u.func.var_refs; - local_buf = arg_buf = sf->arg_buf; - var_buf = sf->var_buf; - stack_buf = sf->var_buf + b->var_count; - sp = sf->cur_sp; - sf->cur_sp = NULL; /* cur_sp is NULL if the function is running */ - pc = sf->cur_pc; - sf->prev_frame = rt->current_stack_frame; - rt->current_stack_frame = sf; - if (s->throw_flag) - goto exception; - else - goto restart; - } else { - goto not_a_function; - } - } - p = JS_VALUE_GET_OBJ(func_obj); - if (unlikely(p->class_id != JS_CLASS_BYTECODE_FUNCTION)) { - JSClassCall *call_func; - call_func = rt->class_array[p->class_id].call; - if (!call_func) { - not_a_function: - return JS_ThrowTypeErrorNotAFunction(caller_ctx); - } - return call_func(caller_ctx, func_obj, this_obj, argc, - argv, flags); - } - b = p->u.func.function_bytecode; - - if (unlikely(argc < b->arg_count || (flags & JS_CALL_FLAG_COPY_ARGV))) { - arg_allocated_size = b->arg_count; - } else { - arg_allocated_size = 0; - } - - alloca_size = sizeof(JSValue) * (arg_allocated_size + b->var_count + - b->stack_size); - if (js_check_stack_overflow(rt, alloca_size)) - return JS_ThrowStackOverflow(caller_ctx); - - sf->is_strict_mode = b->is_strict_mode; - arg_buf = (JSValue *)argv; - sf->arg_count = argc; - sf->cur_func = unsafe_unconst(func_obj); - init_list_head(&sf->var_ref_list); - var_refs = p->u.func.var_refs; - - local_buf = alloca(alloca_size); - if (unlikely(arg_allocated_size)) { - int n = min_int(argc, b->arg_count); - arg_buf = local_buf; - for(i = 0; i < n; i++) - arg_buf[i] = js_dup(argv[i]); - for(; i < b->arg_count; i++) - arg_buf[i] = JS_UNDEFINED; - sf->arg_count = b->arg_count; - } - var_buf = local_buf + arg_allocated_size; - sf->var_buf = var_buf; - sf->arg_buf = arg_buf; - - for(i = 0; i < b->var_count; i++) - var_buf[i] = JS_UNDEFINED; - - stack_buf = var_buf + b->var_count; - sp = stack_buf; - pc = b->byte_code_buf; - /* sf->cur_pc must we set to pc before any recursive calls to JS_CallInternal. */ - sf->cur_pc = NULL; - sf->prev_frame = rt->current_stack_frame; - rt->current_stack_frame = sf; - ctx = b->realm; /* set the current realm */ - -#ifdef ENABLE_DUMPS // JS_DUMP_BYTECODE_STEP - if (check_dump_flag(ctx->rt, JS_DUMP_BYTECODE_STEP)) - print_func_name(b); -#endif - - restart: - for(;;) { - int call_argc; - JSValue *call_argv; - - SWITCH(pc) { - CASE(OP_push_i32): - *sp++ = js_int32(get_u32(pc)); - pc += 4; - BREAK; - CASE(OP_push_bigint_i32): - *sp++ = __JS_NewShortBigInt(ctx, (int)get_u32(pc)); - pc += 4; - BREAK; - CASE(OP_push_const): - *sp++ = js_dup(b->cpool[get_u32(pc)]); - pc += 4; - BREAK; - CASE(OP_push_minus1): - CASE(OP_push_0): - CASE(OP_push_1): - CASE(OP_push_2): - CASE(OP_push_3): - CASE(OP_push_4): - CASE(OP_push_5): - CASE(OP_push_6): - CASE(OP_push_7): - *sp++ = js_int32(opcode - OP_push_0); - BREAK; - CASE(OP_push_i8): - *sp++ = js_int32(get_i8(pc)); - pc += 1; - BREAK; - CASE(OP_push_i16): - *sp++ = js_int32(get_i16(pc)); - pc += 2; - BREAK; - CASE(OP_push_const8): - *sp++ = js_dup(b->cpool[*pc++]); - BREAK; - CASE(OP_fclosure8): - *sp++ = js_closure(ctx, js_dup(b->cpool[*pc++]), var_refs, sf); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - BREAK; - CASE(OP_push_empty_string): - *sp++ = js_empty_string(rt); - BREAK; - CASE(OP_get_length): - { - JSValue val; - - sf->cur_pc = pc; - val = JS_GetProperty(ctx, sp[-1], JS_ATOM_length); - if (unlikely(JS_IsException(val))) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = val; - } - BREAK; - CASE(OP_push_atom_value): - *sp++ = JS_AtomToValue(ctx, get_u32(pc)); - pc += 4; - BREAK; - CASE(OP_undefined): - *sp++ = JS_UNDEFINED; - BREAK; - CASE(OP_null): - *sp++ = JS_NULL; - BREAK; - CASE(OP_push_this): - /* OP_push_this is only called at the start of a function */ - { - JSValue val; - if (!b->is_strict_mode) { - uint32_t tag = JS_VALUE_GET_TAG(this_obj); - if (likely(tag == JS_TAG_OBJECT)) - goto normal_this; - if (tag == JS_TAG_NULL || tag == JS_TAG_UNDEFINED) { - val = js_dup(ctx->global_obj); - } else { - val = JS_ToObject(ctx, this_obj); - if (JS_IsException(val)) - goto exception; - } - } else { - normal_this: - val = js_dup(this_obj); - } - *sp++ = val; - } - BREAK; - CASE(OP_push_false): - *sp++ = JS_FALSE; - BREAK; - CASE(OP_push_true): - *sp++ = JS_TRUE; - BREAK; - CASE(OP_object): - *sp++ = JS_NewObject(ctx); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - BREAK; - CASE(OP_special_object): - { - int arg = *pc++; - switch(arg) { - case OP_SPECIAL_OBJECT_ARGUMENTS: - *sp++ = js_build_arguments(ctx, argc, argv); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - break; - case OP_SPECIAL_OBJECT_MAPPED_ARGUMENTS: - *sp++ = js_build_mapped_arguments(ctx, argc, argv, - sf, min_int(argc, b->arg_count)); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - break; - case OP_SPECIAL_OBJECT_THIS_FUNC: - *sp++ = js_dup(sf->cur_func); - break; - case OP_SPECIAL_OBJECT_NEW_TARGET: - *sp++ = js_dup(new_target); - break; - case OP_SPECIAL_OBJECT_HOME_OBJECT: - { - JSObject *p1; - p1 = p->u.func.home_object; - if (unlikely(!p1)) - *sp++ = JS_UNDEFINED; - else - *sp++ = js_dup(JS_MKPTR(JS_TAG_OBJECT, p1)); - } - break; - case OP_SPECIAL_OBJECT_VAR_OBJECT: - *sp++ = JS_NewObjectProto(ctx, JS_NULL); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - break; - case OP_SPECIAL_OBJECT_IMPORT_META: - *sp++ = js_import_meta(ctx); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - break; - case OP_SPECIAL_OBJECT_NULL_PROTO: - *sp++ = JS_NewObjectProtoClass(ctx, JS_NULL, JS_CLASS_OBJECT); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - break; - default: - abort(); - } - } - BREAK; - CASE(OP_rest): - { - int i, n, first = get_u16(pc); - pc += 2; - i = min_int(first, argc); - n = argc - i; - *sp++ = js_create_array(ctx, n, &argv[i]); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - } - BREAK; - - CASE(OP_drop): - JS_FreeValue(ctx, sp[-1]); - sp--; - BREAK; - CASE(OP_nip): - JS_FreeValue(ctx, sp[-2]); - sp[-2] = sp[-1]; - sp--; - BREAK; - CASE(OP_nip1): /* a b c -> b c */ - JS_FreeValue(ctx, sp[-3]); - sp[-3] = sp[-2]; - sp[-2] = sp[-1]; - sp--; - BREAK; - CASE(OP_dup): - sp[0] = js_dup(sp[-1]); - sp++; - BREAK; - CASE(OP_dup2): /* a b -> a b a b */ - sp[0] = js_dup(sp[-2]); - sp[1] = js_dup(sp[-1]); - sp += 2; - BREAK; - CASE(OP_dup3): /* a b c -> a b c a b c */ - sp[0] = js_dup(sp[-3]); - sp[1] = js_dup(sp[-2]); - sp[2] = js_dup(sp[-1]); - sp += 3; - BREAK; - CASE(OP_dup1): /* a b -> a a b */ - sp[0] = sp[-1]; - sp[-1] = js_dup(sp[-2]); - sp++; - BREAK; - CASE(OP_insert2): /* obj a -> a obj a (dup_x1) */ - sp[0] = sp[-1]; - sp[-1] = sp[-2]; - sp[-2] = js_dup(sp[0]); - sp++; - BREAK; - CASE(OP_insert3): /* obj prop a -> a obj prop a (dup_x2) */ - sp[0] = sp[-1]; - sp[-1] = sp[-2]; - sp[-2] = sp[-3]; - sp[-3] = js_dup(sp[0]); - sp++; - BREAK; - CASE(OP_insert4): /* this obj prop a -> a this obj prop a */ - sp[0] = sp[-1]; - sp[-1] = sp[-2]; - sp[-2] = sp[-3]; - sp[-3] = sp[-4]; - sp[-4] = js_dup(sp[0]); - sp++; - BREAK; - CASE(OP_perm3): /* obj a b -> a obj b (213) */ - { - JSValue tmp; - tmp = sp[-2]; - sp[-2] = sp[-3]; - sp[-3] = tmp; - } - BREAK; - CASE(OP_rot3l): /* x a b -> a b x (231) */ - { - JSValue tmp; - tmp = sp[-3]; - sp[-3] = sp[-2]; - sp[-2] = sp[-1]; - sp[-1] = tmp; - } - BREAK; - CASE(OP_rot4l): /* x a b c -> a b c x */ - { - JSValue tmp; - tmp = sp[-4]; - sp[-4] = sp[-3]; - sp[-3] = sp[-2]; - sp[-2] = sp[-1]; - sp[-1] = tmp; - } - BREAK; - CASE(OP_rot5l): /* x a b c d -> a b c d x */ - { - JSValue tmp; - tmp = sp[-5]; - sp[-5] = sp[-4]; - sp[-4] = sp[-3]; - sp[-3] = sp[-2]; - sp[-2] = sp[-1]; - sp[-1] = tmp; - } - BREAK; - CASE(OP_rot3r): /* a b x -> x a b (312) */ - { - JSValue tmp; - tmp = sp[-1]; - sp[-1] = sp[-2]; - sp[-2] = sp[-3]; - sp[-3] = tmp; - } - BREAK; - CASE(OP_perm4): /* obj prop a b -> a obj prop b */ - { - JSValue tmp; - tmp = sp[-2]; - sp[-2] = sp[-3]; - sp[-3] = sp[-4]; - sp[-4] = tmp; - } - BREAK; - CASE(OP_perm5): /* this obj prop a b -> a this obj prop b */ - { - JSValue tmp; - tmp = sp[-2]; - sp[-2] = sp[-3]; - sp[-3] = sp[-4]; - sp[-4] = sp[-5]; - sp[-5] = tmp; - } - BREAK; - CASE(OP_swap): /* a b -> b a */ - { - JSValue tmp; - tmp = sp[-2]; - sp[-2] = sp[-1]; - sp[-1] = tmp; - } - BREAK; - CASE(OP_swap2): /* a b c d -> c d a b */ - { - JSValue tmp1, tmp2; - tmp1 = sp[-4]; - tmp2 = sp[-3]; - sp[-4] = sp[-2]; - sp[-3] = sp[-1]; - sp[-2] = tmp1; - sp[-1] = tmp2; - } - BREAK; - - CASE(OP_fclosure): - { - JSValue bfunc = js_dup(b->cpool[get_u32(pc)]); - pc += 4; - *sp++ = js_closure(ctx, bfunc, var_refs, sf); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - } - BREAK; - CASE(OP_call0): - CASE(OP_call1): - CASE(OP_call2): - CASE(OP_call3): - call_argc = opcode - OP_call0; - goto has_call_argc; - CASE(OP_call): - CASE(OP_tail_call): - { - call_argc = get_u16(pc); - pc += 2; - goto has_call_argc; - has_call_argc: - call_argv = sp - call_argc; - sf->cur_pc = pc; - ret_val = JS_CallInternal(ctx, call_argv[-1], JS_UNDEFINED, - JS_UNDEFINED, call_argc, - vc(call_argv), 0); - if (unlikely(JS_IsException(ret_val))) - goto exception; - if (opcode == OP_tail_call) - goto done; - for(i = -1; i < call_argc; i++) - JS_FreeValue(ctx, call_argv[i]); - sp -= call_argc + 1; - *sp++ = ret_val; - } - BREAK; - CASE(OP_call_constructor): - { - call_argc = get_u16(pc); - pc += 2; - call_argv = sp - call_argc; - sf->cur_pc = pc; - ret_val = JS_CallConstructorInternal(ctx, call_argv[-2], - call_argv[-1], call_argc, - vc(call_argv), 0); - if (unlikely(JS_IsException(ret_val))) - goto exception; - for(i = -2; i < call_argc; i++) - JS_FreeValue(ctx, call_argv[i]); - sp -= call_argc + 2; - *sp++ = ret_val; - } - BREAK; - CASE(OP_call_method): - CASE(OP_tail_call_method): - { - call_argc = get_u16(pc); - pc += 2; - call_argv = sp - call_argc; - sf->cur_pc = pc; - ret_val = JS_CallInternal(ctx, call_argv[-1], call_argv[-2], - JS_UNDEFINED, call_argc, - vc(call_argv), 0); - if (unlikely(JS_IsException(ret_val))) - goto exception; - if (opcode == OP_tail_call_method) - goto done; - for(i = -2; i < call_argc; i++) - JS_FreeValue(ctx, call_argv[i]); - sp -= call_argc + 2; - *sp++ = ret_val; - } - BREAK; - CASE(OP_array_from): - { - call_argc = get_u16(pc); - pc += 2; - call_argv = sp - call_argc; - ret_val = JS_NewArrayFrom(ctx, call_argc, call_argv); - sp -= call_argc; - if (unlikely(JS_IsException(ret_val))) - goto exception; - *sp++ = ret_val; - } - BREAK; - - CASE(OP_apply): - { - int magic; - magic = get_u16(pc); - pc += 2; - sf->cur_pc = pc; - - ret_val = js_function_apply(ctx, sp[-3], 2, vc(&sp[-2]), magic); - if (unlikely(JS_IsException(ret_val))) - goto exception; - JS_FreeValue(ctx, sp[-3]); - JS_FreeValue(ctx, sp[-2]); - JS_FreeValue(ctx, sp[-1]); - sp -= 3; - *sp++ = ret_val; - } - BREAK; - CASE(OP_return): - ret_val = *--sp; - goto done; - CASE(OP_return_undef): - ret_val = JS_UNDEFINED; - goto done; - - CASE(OP_check_ctor_return): - /* return true if 'this' should be returned */ - if (!JS_IsObject(sp[-1])) { - if (!JS_IsUndefined(sp[-1])) { - JS_ThrowTypeError(caller_ctx, "derived class constructor must return an object or undefined"); - goto exception; - } - sp[0] = JS_TRUE; - } else { - sp[0] = JS_FALSE; - } - sp++; - BREAK; - CASE(OP_check_ctor): - if (JS_IsUndefined(new_target)) { - non_ctor_call: - JS_ThrowTypeError(ctx, "class constructors must be invoked with 'new'"); - goto exception; - } - BREAK; - CASE(OP_init_ctor): - { - JSValue super, ret; - sf->cur_pc = pc; - if (JS_IsUndefined(new_target)) - goto non_ctor_call; - super = JS_GetPrototype(ctx, func_obj); - if (JS_IsException(super)) - goto exception; - ret = JS_CallConstructor2(ctx, super, new_target, argc, argv); - JS_FreeValue(ctx, super); - if (JS_IsException(ret)) - goto exception; - *sp++ = ret; - } - BREAK; - CASE(OP_check_brand): - { - int ret = JS_CheckBrand(ctx, sp[-2], sp[-1]); - if (ret < 0) - goto exception; - if (!ret) { - JS_ThrowTypeError(ctx, "invalid brand on object"); - goto exception; - } - } - BREAK; - CASE(OP_add_brand): - if (JS_AddBrand(ctx, sp[-2], sp[-1]) < 0) - goto exception; - JS_FreeValue(ctx, sp[-2]); - JS_FreeValue(ctx, sp[-1]); - sp -= 2; - BREAK; - - CASE(OP_throw): - JS_Throw(ctx, *--sp); - goto exception; - - CASE(OP_throw_error): -#define JS_THROW_VAR_RO 0 -#define JS_THROW_VAR_REDECL 1 -#define JS_THROW_VAR_UNINITIALIZED 2 -#define JS_THROW_ERROR_DELETE_SUPER 3 -#define JS_THROW_ERROR_ITERATOR_THROW 4 - { - JSAtom atom; - int type; - atom = get_u32(pc); - type = pc[4]; - pc += 5; - if (type == JS_THROW_VAR_RO) - JS_ThrowTypeErrorReadOnly(ctx, JS_PROP_THROW, atom); - else - if (type == JS_THROW_VAR_REDECL) - JS_ThrowSyntaxErrorVarRedeclaration(ctx, atom); - else - if (type == JS_THROW_VAR_UNINITIALIZED) - JS_ThrowReferenceErrorUninitialized(ctx, atom); - else - if (type == JS_THROW_ERROR_DELETE_SUPER) - JS_ThrowReferenceError(ctx, "unsupported reference to 'super'"); - else - if (type == JS_THROW_ERROR_ITERATOR_THROW) - JS_ThrowTypeError(ctx, "iterator does not have a throw method"); - else - JS_ThrowInternalError(ctx, "invalid throw var type %d", type); - } - goto exception; - - CASE(OP_eval): - { - JSValue obj; - int scope_idx; - call_argc = get_u16(pc); - scope_idx = get_u16(pc + 2) - 1; - pc += 4; - call_argv = sp - call_argc; - sf->cur_pc = pc; - if (js_same_value(ctx, call_argv[-1], ctx->eval_obj)) { - if (call_argc >= 1) - obj = call_argv[0]; - else - obj = JS_UNDEFINED; - ret_val = JS_EvalObject(ctx, JS_UNDEFINED, obj, - JS_EVAL_TYPE_DIRECT, scope_idx); - } else { - ret_val = JS_CallInternal(ctx, call_argv[-1], JS_UNDEFINED, - JS_UNDEFINED, call_argc, - vc(call_argv), 0); - } - if (unlikely(JS_IsException(ret_val))) - goto exception; - for(i = -1; i < call_argc; i++) - JS_FreeValue(ctx, call_argv[i]); - sp -= call_argc + 1; - *sp++ = ret_val; - } - BREAK; - /* could merge with OP_apply */ - CASE(OP_apply_eval): - { - int scope_idx; - uint32_t len; - JSValue *tab; - JSValue obj; - - scope_idx = get_u16(pc) - 1; - pc += 2; - sf->cur_pc = pc; - tab = build_arg_list(ctx, &len, sp[-1]); - if (!tab) - goto exception; - if (js_same_value(ctx, sp[-2], ctx->eval_obj)) { - if (len >= 1) - obj = tab[0]; - else - obj = JS_UNDEFINED; - ret_val = JS_EvalObject(ctx, JS_UNDEFINED, obj, - JS_EVAL_TYPE_DIRECT, scope_idx); - } else { - ret_val = JS_Call(ctx, sp[-2], JS_UNDEFINED, len, vc(tab)); - } - free_arg_list(ctx, tab, len); - if (unlikely(JS_IsException(ret_val))) - goto exception; - JS_FreeValue(ctx, sp[-2]); - JS_FreeValue(ctx, sp[-1]); - sp -= 2; - *sp++ = ret_val; - } - BREAK; - - CASE(OP_regexp): - { - sp[-2] = js_regexp_constructor_internal(ctx, JS_UNDEFINED, - sp[-2], sp[-1]); - sp--; - } - BREAK; - - CASE(OP_get_super): - { - JSValue proto; - proto = JS_GetPrototype(ctx, sp[-1]); - if (JS_IsException(proto)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = proto; - } - BREAK; - - CASE(OP_import): - { - JSValue val; - sf->cur_pc = pc; - val = js_dynamic_import(ctx, sp[-1]); - if (JS_IsException(val)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = val; - } - BREAK; - - CASE(OP_check_var): - { - int ret; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - - ret = JS_CheckGlobalVar(ctx, atom); - if (ret < 0) - goto exception; - *sp++ = js_bool(ret); - } - BREAK; - - CASE(OP_get_var_undef): - CASE(OP_get_var): - { - JSValue val; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - sf->cur_pc = pc; - - val = JS_GetGlobalVar(ctx, atom, opcode - OP_get_var_undef); - if (unlikely(JS_IsException(val))) - goto exception; - *sp++ = val; - } - BREAK; - - CASE(OP_put_var): - CASE(OP_put_var_init): - { - int ret; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - sf->cur_pc = pc; - - ret = JS_SetGlobalVar(ctx, atom, sp[-1], opcode - OP_put_var); - sp--; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_put_var_strict): - { - int ret; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - sf->cur_pc = pc; - - /* sp[-2] is JS_TRUE or JS_FALSE */ - if (unlikely(!JS_VALUE_GET_INT(sp[-2]))) { - JS_ThrowReferenceErrorNotDefined(ctx, atom); - goto exception; - } - ret = JS_SetGlobalVar(ctx, atom, sp[-1], 2); - sp -= 2; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_check_define_var): - { - JSAtom atom; - int flags; - atom = get_u32(pc); - flags = pc[4]; - pc += 5; - if (JS_CheckDefineGlobalVar(ctx, atom, flags)) - goto exception; - } - BREAK; - CASE(OP_define_var): - { - JSAtom atom; - int flags; - atom = get_u32(pc); - flags = pc[4]; - pc += 5; - if (JS_DefineGlobalVar(ctx, atom, flags)) - goto exception; - } - BREAK; - CASE(OP_define_func): - { - JSAtom atom; - int flags; - atom = get_u32(pc); - flags = pc[4]; - pc += 5; - if (JS_DefineGlobalFunction(ctx, atom, sp[-1], flags)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp--; - } - BREAK; - - CASE(OP_get_loc): - { - int idx; - idx = get_u16(pc); - pc += 2; - sp[0] = js_dup(var_buf[idx]); - sp++; - } - BREAK; - CASE(OP_put_loc): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, &var_buf[idx], sp[-1]); - sp--; - } - BREAK; - CASE(OP_set_loc): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, &var_buf[idx], js_dup(sp[-1])); - } - BREAK; - CASE(OP_get_arg): - { - int idx; - idx = get_u16(pc); - pc += 2; - sp[0] = js_dup(arg_buf[idx]); - sp++; - } - BREAK; - CASE(OP_put_arg): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, &arg_buf[idx], sp[-1]); - sp--; - } - BREAK; - CASE(OP_set_arg): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, &arg_buf[idx], js_dup(sp[-1])); - } - BREAK; - - CASE(OP_get_loc8): *sp++ = js_dup(var_buf[*pc++]); BREAK; - CASE(OP_put_loc8): set_value(ctx, &var_buf[*pc++], *--sp); BREAK; - CASE(OP_set_loc8): set_value(ctx, &var_buf[*pc++], js_dup(sp[-1])); BREAK; - - // Observation: get_loc0 and get_loc1 are individually very - // frequent opcodes _and_ they are very often paired together, - // making them ideal candidates for opcode fusion. - CASE(OP_get_loc0_loc1): - *sp++ = js_dup(var_buf[0]); - *sp++ = js_dup(var_buf[1]); - BREAK; - - CASE(OP_get_loc0): *sp++ = js_dup(var_buf[0]); BREAK; - CASE(OP_get_loc1): *sp++ = js_dup(var_buf[1]); BREAK; - CASE(OP_get_loc2): *sp++ = js_dup(var_buf[2]); BREAK; - CASE(OP_get_loc3): *sp++ = js_dup(var_buf[3]); BREAK; - CASE(OP_put_loc0): set_value(ctx, &var_buf[0], *--sp); BREAK; - CASE(OP_put_loc1): set_value(ctx, &var_buf[1], *--sp); BREAK; - CASE(OP_put_loc2): set_value(ctx, &var_buf[2], *--sp); BREAK; - CASE(OP_put_loc3): set_value(ctx, &var_buf[3], *--sp); BREAK; - CASE(OP_set_loc0): set_value(ctx, &var_buf[0], js_dup(sp[-1])); BREAK; - CASE(OP_set_loc1): set_value(ctx, &var_buf[1], js_dup(sp[-1])); BREAK; - CASE(OP_set_loc2): set_value(ctx, &var_buf[2], js_dup(sp[-1])); BREAK; - CASE(OP_set_loc3): set_value(ctx, &var_buf[3], js_dup(sp[-1])); BREAK; - CASE(OP_get_arg0): *sp++ = js_dup(arg_buf[0]); BREAK; - CASE(OP_get_arg1): *sp++ = js_dup(arg_buf[1]); BREAK; - CASE(OP_get_arg2): *sp++ = js_dup(arg_buf[2]); BREAK; - CASE(OP_get_arg3): *sp++ = js_dup(arg_buf[3]); BREAK; - CASE(OP_put_arg0): set_value(ctx, &arg_buf[0], *--sp); BREAK; - CASE(OP_put_arg1): set_value(ctx, &arg_buf[1], *--sp); BREAK; - CASE(OP_put_arg2): set_value(ctx, &arg_buf[2], *--sp); BREAK; - CASE(OP_put_arg3): set_value(ctx, &arg_buf[3], *--sp); BREAK; - CASE(OP_set_arg0): set_value(ctx, &arg_buf[0], js_dup(sp[-1])); BREAK; - CASE(OP_set_arg1): set_value(ctx, &arg_buf[1], js_dup(sp[-1])); BREAK; - CASE(OP_set_arg2): set_value(ctx, &arg_buf[2], js_dup(sp[-1])); BREAK; - CASE(OP_set_arg3): set_value(ctx, &arg_buf[3], js_dup(sp[-1])); BREAK; - CASE(OP_get_var_ref0): *sp++ = js_dup(*var_refs[0]->pvalue); BREAK; - CASE(OP_get_var_ref1): *sp++ = js_dup(*var_refs[1]->pvalue); BREAK; - CASE(OP_get_var_ref2): *sp++ = js_dup(*var_refs[2]->pvalue); BREAK; - CASE(OP_get_var_ref3): *sp++ = js_dup(*var_refs[3]->pvalue); BREAK; - CASE(OP_put_var_ref0): set_value(ctx, var_refs[0]->pvalue, *--sp); BREAK; - CASE(OP_put_var_ref1): set_value(ctx, var_refs[1]->pvalue, *--sp); BREAK; - CASE(OP_put_var_ref2): set_value(ctx, var_refs[2]->pvalue, *--sp); BREAK; - CASE(OP_put_var_ref3): set_value(ctx, var_refs[3]->pvalue, *--sp); BREAK; - CASE(OP_set_var_ref0): set_value(ctx, var_refs[0]->pvalue, js_dup(sp[-1])); BREAK; - CASE(OP_set_var_ref1): set_value(ctx, var_refs[1]->pvalue, js_dup(sp[-1])); BREAK; - CASE(OP_set_var_ref2): set_value(ctx, var_refs[2]->pvalue, js_dup(sp[-1])); BREAK; - CASE(OP_set_var_ref3): set_value(ctx, var_refs[3]->pvalue, js_dup(sp[-1])); BREAK; - - CASE(OP_get_var_ref): - { - int idx; - JSValue val; - idx = get_u16(pc); - pc += 2; - val = *var_refs[idx]->pvalue; - sp[0] = js_dup(val); - sp++; - } - BREAK; - CASE(OP_put_var_ref): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, var_refs[idx]->pvalue, sp[-1]); - sp--; - } - BREAK; - CASE(OP_set_var_ref): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, var_refs[idx]->pvalue, js_dup(sp[-1])); - } - BREAK; - CASE(OP_get_var_ref_check): - { - int idx; - JSValue val; - idx = get_u16(pc); - pc += 2; - val = *var_refs[idx]->pvalue; - if (unlikely(JS_IsUninitialized(val))) { - JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true); - goto exception; - } - sp[0] = js_dup(val); - sp++; - } - BREAK; - CASE(OP_put_var_ref_check): - { - int idx; - idx = get_u16(pc); - pc += 2; - if (unlikely(JS_IsUninitialized(*var_refs[idx]->pvalue))) { - JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true); - goto exception; - } - set_value(ctx, var_refs[idx]->pvalue, sp[-1]); - sp--; - } - BREAK; - CASE(OP_put_var_ref_check_init): - { - int idx; - idx = get_u16(pc); - pc += 2; - if (unlikely(!JS_IsUninitialized(*var_refs[idx]->pvalue))) { - JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, true); - goto exception; - } - set_value(ctx, var_refs[idx]->pvalue, sp[-1]); - sp--; - } - BREAK; - CASE(OP_set_loc_uninitialized): - { - int idx; - idx = get_u16(pc); - pc += 2; - set_value(ctx, &var_buf[idx], JS_UNINITIALIZED); - } - BREAK; - CASE(OP_get_loc_check): - { - int idx; - idx = get_u16(pc); - pc += 2; - if (unlikely(JS_IsUninitialized(var_buf[idx]))) { - JS_ThrowReferenceErrorUninitialized2(caller_ctx, b, idx, - false); - goto exception; - } - sp[0] = js_dup(var_buf[idx]); - sp++; - } - BREAK; - CASE(OP_put_loc_check): - { - int idx; - idx = get_u16(pc); - pc += 2; - if (unlikely(JS_IsUninitialized(var_buf[idx]))) { - JS_ThrowReferenceErrorUninitialized2(caller_ctx, b, idx, - false); - goto exception; - } - set_value(ctx, &var_buf[idx], sp[-1]); - sp--; - } - BREAK; - CASE(OP_put_loc_check_init): - { - int idx; - idx = get_u16(pc); - pc += 2; - if (unlikely(!JS_IsUninitialized(var_buf[idx]))) { - JS_ThrowReferenceError(caller_ctx, - "'this' can be initialized only once"); - goto exception; - } - set_value(ctx, &var_buf[idx], sp[-1]); - sp--; - } - BREAK; - CASE(OP_close_loc): - { - int idx; - idx = get_u16(pc); - pc += 2; - close_lexical_var(ctx, sf, idx); - } - BREAK; - - CASE(OP_make_loc_ref): - CASE(OP_make_arg_ref): - CASE(OP_make_var_ref_ref): - { - JSVarRef *var_ref; - JSProperty *pr; - JSAtom atom; - int idx; - atom = get_u32(pc); - idx = get_u16(pc + 4); - pc += 6; - *sp++ = JS_NewObjectProto(ctx, JS_NULL); - if (unlikely(JS_IsException(sp[-1]))) - goto exception; - if (opcode == OP_make_var_ref_ref) { - var_ref = var_refs[idx]; - var_ref->header.ref_count++; - } else { - var_ref = get_var_ref(ctx, sf, idx, opcode == OP_make_arg_ref); - if (!var_ref) - goto exception; - } - pr = add_property(ctx, JS_VALUE_GET_OBJ(sp[-1]), atom, - JS_PROP_WRITABLE | JS_PROP_VARREF); - if (!pr) { - free_var_ref(rt, var_ref); - goto exception; - } - pr->u.var_ref = var_ref; - *sp++ = JS_AtomToValue(ctx, atom); - } - BREAK; - CASE(OP_make_var_ref): - { - JSAtom atom; - atom = get_u32(pc); - pc += 4; - - if (JS_GetGlobalVarRef(ctx, atom, sp)) - goto exception; - sp += 2; - } - BREAK; - - CASE(OP_goto): - pc += (int32_t)get_u32(pc); - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - BREAK; - CASE(OP_goto16): - pc += (int16_t)get_u16(pc); - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - BREAK; - CASE(OP_goto8): - pc += (int8_t)pc[0]; - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - BREAK; - CASE(OP_if_true): - { - int res; - JSValue op1; - - op1 = sp[-1]; - pc += 4; - if ((uint32_t)JS_VALUE_GET_TAG(op1) <= JS_TAG_UNDEFINED) { - res = JS_VALUE_GET_INT(op1); - } else { - res = JS_ToBoolFree(ctx, op1); - } - sp--; - if (res) { - pc += (int32_t)get_u32(pc - 4) - 4; - } - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - } - BREAK; - CASE(OP_if_false): - { - int res; - JSValue op1; - - op1 = sp[-1]; - pc += 4; - if ((uint32_t)JS_VALUE_GET_TAG(op1) <= JS_TAG_UNDEFINED) { - res = JS_VALUE_GET_INT(op1); - } else { - res = JS_ToBoolFree(ctx, op1); - } - sp--; - if (!res) { - pc += (int32_t)get_u32(pc - 4) - 4; - } - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - } - BREAK; - CASE(OP_if_true8): - { - int res; - JSValue op1; - - op1 = sp[-1]; - pc += 1; - if ((uint32_t)JS_VALUE_GET_TAG(op1) <= JS_TAG_UNDEFINED) { - res = JS_VALUE_GET_INT(op1); - } else { - res = JS_ToBoolFree(ctx, op1); - } - sp--; - if (res) { - pc += (int8_t)pc[-1] - 1; - } - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - } - BREAK; - CASE(OP_if_false8): - { - int res; - JSValue op1; - - op1 = sp[-1]; - pc += 1; - if ((uint32_t)JS_VALUE_GET_TAG(op1) <= JS_TAG_UNDEFINED) { - res = JS_VALUE_GET_INT(op1); - } else { - res = JS_ToBoolFree(ctx, op1); - } - sp--; - if (!res) { - pc += (int8_t)pc[-1] - 1; - } - if (unlikely(js_poll_interrupts(ctx))) - goto exception; - } - BREAK; - CASE(OP_catch): - { - int32_t diff; - diff = get_u32(pc); - sp[0] = JS_NewCatchOffset(ctx, pc + diff - b->byte_code_buf); - sp++; - pc += 4; - } - BREAK; - CASE(OP_gosub): - { - int32_t diff; - diff = get_u32(pc); - /* XXX: should have a different tag to avoid security flaw */ - sp[0] = js_int32(pc + 4 - b->byte_code_buf); - sp++; - pc += diff; - } - BREAK; - CASE(OP_ret): - { - JSValue op1; - uint32_t pos; - op1 = sp[-1]; - if (unlikely(JS_VALUE_GET_TAG(op1) != JS_TAG_INT)) - goto ret_fail; - pos = JS_VALUE_GET_INT(op1); - if (unlikely(pos >= b->byte_code_len)) { - ret_fail: - JS_ThrowInternalError(ctx, "invalid ret value"); - goto exception; - } - sp--; - pc = b->byte_code_buf + pos; - } - BREAK; - - CASE(OP_for_in_start): - sf->cur_pc = pc; - if (js_for_in_start(ctx, sp)) - goto exception; - BREAK; - CASE(OP_for_in_next): - sf->cur_pc = pc; - if (js_for_in_next(ctx, sp)) - goto exception; - sp += 2; - BREAK; - CASE(OP_for_of_start): - sf->cur_pc = pc; - if (js_for_of_start(ctx, sp, false)) - goto exception; - sp += 1; - *sp++ = JS_NewCatchOffset(ctx, 0); - BREAK; - CASE(OP_for_of_next): - { - int offset = -3 - pc[0]; - pc += 1; - sf->cur_pc = pc; - if (js_for_of_next(ctx, sp, offset)) - goto exception; - sp += 2; - } - BREAK; - CASE(OP_for_await_of_start): - sf->cur_pc = pc; - if (js_for_of_start(ctx, sp, true)) - goto exception; - sp += 1; - *sp++ = JS_NewCatchOffset(ctx, 0); - BREAK; - CASE(OP_iterator_get_value_done): - sf->cur_pc = pc; - if (js_iterator_get_value_done(ctx, sp)) - goto exception; - sp += 1; - BREAK; - CASE(OP_iterator_check_object): - if (unlikely(!JS_IsObject(sp[-1]))) { - JS_ThrowTypeError(ctx, "iterator must return an object"); - goto exception; - } - BREAK; - - CASE(OP_iterator_close): - /* iter_obj next catch_offset -> */ - sp--; /* drop the catch offset to avoid getting caught by exception */ - JS_FreeValue(ctx, sp[-1]); /* drop the next method */ - sp--; - if (!JS_IsUndefined(sp[-1])) { - sf->cur_pc = pc; - if (JS_IteratorClose(ctx, sp[-1], false)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - } - sp--; - BREAK; - CASE(OP_nip_catch): - { - JSValue ret_val; - /* catch_offset ... ret_val -> ret_eval */ - ret_val = *--sp; - while (sp > stack_buf && - JS_VALUE_GET_TAG(sp[-1]) != JS_TAG_CATCH_OFFSET) { - JS_FreeValue(ctx, *--sp); - } - if (unlikely(sp == stack_buf)) { - JS_ThrowInternalError(ctx, "nip_catch"); - JS_FreeValue(ctx, ret_val); - goto exception; - } - sp[-1] = ret_val; - } - BREAK; - - CASE(OP_iterator_next): - /* stack: iter_obj next catch_offset val */ - { - JSValue ret; - sf->cur_pc = pc; - ret = JS_Call(ctx, sp[-3], sp[-4], 1, vc(sp - 1)); - if (JS_IsException(ret)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = ret; - } - BREAK; - - CASE(OP_iterator_call): - /* stack: iter_obj next catch_offset val */ - { - JSValue method, ret; - bool ret_flag; - int flags; - flags = *pc++; - sf->cur_pc = pc; - method = JS_GetProperty(ctx, sp[-4], (flags & 1) ? - JS_ATOM_throw : JS_ATOM_return); - if (JS_IsException(method)) - goto exception; - if (JS_IsUndefined(method) || JS_IsNull(method)) { - ret_flag = true; - } else { - if (flags & 2) { - /* no argument */ - ret = JS_CallFree(ctx, method, sp[-4], - 0, NULL); - } else { - ret = JS_CallFree(ctx, method, sp[-4], - 1, vc(sp - 1)); - } - if (JS_IsException(ret)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = ret; - ret_flag = false; - } - sp[0] = js_bool(ret_flag); - sp += 1; - } - BREAK; - - CASE(OP_lnot): - { - int res; - JSValue op1; - - op1 = sp[-1]; - if ((uint32_t)JS_VALUE_GET_TAG(op1) <= JS_TAG_UNDEFINED) { - res = JS_VALUE_GET_INT(op1) != 0; - } else { - res = JS_ToBoolFree(ctx, op1); - } - sp[-1] = js_bool(!res); - } - BREAK; - - CASE(OP_get_field): - { - JSValue val; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - sf->cur_pc = pc; - val = JS_GetPropertyInternal(ctx, sp[-1], atom, sp[-1], false); - if (unlikely(JS_IsException(val))) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = val; - } - BREAK; - - CASE(OP_get_field2): - { - JSValue val; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - sf->cur_pc = pc; - val = JS_GetPropertyInternal(ctx, sp[-1], atom, sp[-1], false); - if (unlikely(JS_IsException(val))) - goto exception; - *sp++ = val; - } - BREAK; - - CASE(OP_put_field): - { - int ret; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - sf->cur_pc = pc; - ret = JS_SetPropertyInternal2(ctx, - sp[-2], atom, - sp[-1], sp[-2], - JS_PROP_THROW_STRICT); - JS_FreeValue(ctx, sp[-2]); - sp -= 2; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_private_symbol): - { - JSAtom atom; - JSValue val; - - atom = get_u32(pc); - pc += 4; - val = JS_NewSymbolFromAtom(ctx, atom, JS_ATOM_TYPE_PRIVATE); - if (JS_IsException(val)) - goto exception; - *sp++ = val; - } - BREAK; - - CASE(OP_get_private_field): - { - JSValue val; - sf->cur_pc = pc; - val = JS_GetPrivateField(ctx, sp[-2], sp[-1]); - JS_FreeValue(ctx, sp[-1]); - JS_FreeValue(ctx, sp[-2]); - sp[-2] = val; - sp--; - if (unlikely(JS_IsException(val))) - goto exception; - } - BREAK; - - CASE(OP_put_private_field): - { - int ret; - sf->cur_pc = pc; - ret = JS_SetPrivateField(ctx, sp[-3], sp[-1], sp[-2]); - JS_FreeValue(ctx, sp[-3]); - JS_FreeValue(ctx, sp[-1]); - sp -= 3; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_define_private_field): - { - int ret; - ret = JS_DefinePrivateField(ctx, sp[-3], sp[-2], sp[-1]); - JS_FreeValue(ctx, sp[-2]); - sp -= 2; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_define_field): - { - int ret; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - - ret = JS_DefinePropertyValue(ctx, sp[-2], atom, sp[-1], - JS_PROP_C_W_E | JS_PROP_THROW); - sp--; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_set_name): - { - int ret; - JSAtom atom; - atom = get_u32(pc); - pc += 4; - - ret = JS_DefineObjectName(ctx, sp[-1], atom, JS_PROP_CONFIGURABLE); - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - CASE(OP_set_name_computed): - { - int ret; - ret = JS_DefineObjectNameComputed(ctx, sp[-1], sp[-2], JS_PROP_CONFIGURABLE); - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - CASE(OP_set_proto): - { - JSValue proto; - proto = sp[-1]; - if (JS_IsObject(proto) || JS_IsNull(proto)) { - if (JS_SetPrototypeInternal(ctx, sp[-2], proto, true) < 0) - goto exception; - } - JS_FreeValue(ctx, proto); - sp--; - } - BREAK; - CASE(OP_set_home_object): - js_method_set_home_object(ctx, sp[-1], sp[-2]); - BREAK; - CASE(OP_define_method): - CASE(OP_define_method_computed): - { - JSValue getter, setter, value; - JSValue obj; - JSAtom atom; - int flags, ret, op_flags; - bool is_computed; -#define OP_DEFINE_METHOD_METHOD 0 -#define OP_DEFINE_METHOD_GETTER 1 -#define OP_DEFINE_METHOD_SETTER 2 -#define OP_DEFINE_METHOD_ENUMERABLE 4 - - is_computed = (opcode == OP_define_method_computed); - if (is_computed) { - atom = JS_ValueToAtom(ctx, sp[-2]); - if (unlikely(atom == JS_ATOM_NULL)) - goto exception; - opcode += OP_define_method - OP_define_method_computed; - } else { - atom = get_u32(pc); - pc += 4; - } - op_flags = *pc++; - - obj = sp[-2 - is_computed]; - flags = JS_PROP_HAS_CONFIGURABLE | JS_PROP_CONFIGURABLE | - JS_PROP_HAS_ENUMERABLE | JS_PROP_THROW; - if (op_flags & OP_DEFINE_METHOD_ENUMERABLE) - flags |= JS_PROP_ENUMERABLE; - op_flags &= 3; - value = JS_UNDEFINED; - getter = JS_UNDEFINED; - setter = JS_UNDEFINED; - if (op_flags == OP_DEFINE_METHOD_METHOD) { - value = sp[-1]; - flags |= JS_PROP_HAS_VALUE | JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE; - } else if (op_flags == OP_DEFINE_METHOD_GETTER) { - getter = sp[-1]; - flags |= JS_PROP_HAS_GET; - } else { - setter = sp[-1]; - flags |= JS_PROP_HAS_SET; - } - ret = js_method_set_properties(ctx, sp[-1], atom, flags, obj); - if (ret >= 0) { - ret = JS_DefineProperty(ctx, obj, atom, value, - getter, setter, flags); - } - JS_FreeValue(ctx, sp[-1]); - if (is_computed) { - JS_FreeAtom(ctx, atom); - JS_FreeValue(ctx, sp[-2]); - } - sp -= 1 + is_computed; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_define_class): - CASE(OP_define_class_computed): - { - int class_flags; - JSAtom atom; - - atom = get_u32(pc); - class_flags = pc[4]; - pc += 5; - if (js_op_define_class(ctx, sp, atom, class_flags, - var_refs, sf, - (opcode == OP_define_class_computed)) < 0) - goto exception; - } - BREAK; - - CASE(OP_get_array_el): - { - JSValue val; - - sf->cur_pc = pc; - val = JS_GetPropertyValue(ctx, sp[-2], sp[-1]); - JS_FreeValue(ctx, sp[-2]); - sp[-2] = val; - sp--; - if (unlikely(JS_IsException(val))) - goto exception; - } - BREAK; - - CASE(OP_get_array_el2): - { - JSValue val; - - sf->cur_pc = pc; - val = JS_GetPropertyValue(ctx, sp[-2], sp[-1]); - sp[-1] = val; - if (unlikely(JS_IsException(val))) - goto exception; - } - BREAK; - - CASE(OP_get_ref_value): - { - JSValue val; - sf->cur_pc = pc; - if (unlikely(JS_IsUndefined(sp[-2]))) { - JSAtom atom = JS_ValueToAtom(ctx, sp[-1]); - if (atom != JS_ATOM_NULL) { - JS_ThrowReferenceErrorNotDefined(ctx, atom); - JS_FreeAtom(ctx, atom); - } - goto exception; - } - val = JS_GetPropertyValue(ctx, sp[-2], - js_dup(sp[-1])); - if (unlikely(JS_IsException(val))) - goto exception; - sp[0] = val; - sp++; - } - BREAK; - - CASE(OP_get_super_value): - { - JSValue val; - JSAtom atom; - sf->cur_pc = pc; - atom = JS_ValueToAtom(ctx, sp[-1]); - if (unlikely(atom == JS_ATOM_NULL)) - goto exception; - val = JS_GetPropertyInternal(ctx, sp[-2], atom, sp[-3], false); - JS_FreeAtom(ctx, atom); - if (unlikely(JS_IsException(val))) - goto exception; - JS_FreeValue(ctx, sp[-1]); - JS_FreeValue(ctx, sp[-2]); - JS_FreeValue(ctx, sp[-3]); - sp[-3] = val; - sp -= 2; - } - BREAK; - - CASE(OP_put_array_el): - { - int ret; - sf->cur_pc = pc; - ret = JS_SetPropertyValue(ctx, sp[-3], sp[-2], sp[-1], JS_PROP_THROW_STRICT); - JS_FreeValue(ctx, sp[-3]); - sp -= 3; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_put_ref_value): - { - int ret, flags; - sf->cur_pc = pc; - flags = JS_PROP_THROW_STRICT; - if (unlikely(JS_IsUndefined(sp[-3]))) { - if (is_strict_mode(ctx)) { - JSAtom atom = JS_ValueToAtom(ctx, sp[-2]); - if (atom != JS_ATOM_NULL) { - JS_ThrowReferenceErrorNotDefined(ctx, atom); - JS_FreeAtom(ctx, atom); - } - goto exception; - } else { - sp[-3] = js_dup(ctx->global_obj); - } - } else { - if (is_strict_mode(ctx)) - flags |= JS_PROP_NO_ADD; - } - ret = JS_SetPropertyValue(ctx, sp[-3], sp[-2], sp[-1], flags); - JS_FreeValue(ctx, sp[-3]); - sp -= 3; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_put_super_value): - { - int ret; - JSAtom atom; - sf->cur_pc = pc; - if (JS_VALUE_GET_TAG(sp[-3]) != JS_TAG_OBJECT) { - JS_ThrowTypeErrorNotAnObject(ctx); - goto exception; - } - atom = JS_ValueToAtom(ctx, sp[-2]); - if (unlikely(atom == JS_ATOM_NULL)) - goto exception; - ret = JS_SetPropertyInternal2(ctx, - sp[-3], atom, - sp[-1], sp[-4], - JS_PROP_THROW_STRICT); - JS_FreeAtom(ctx, atom); - JS_FreeValue(ctx, sp[-4]); - JS_FreeValue(ctx, sp[-3]); - JS_FreeValue(ctx, sp[-2]); - sp -= 4; - if (ret < 0) - goto exception; - } - BREAK; - - CASE(OP_define_array_el): - { - int ret; - ret = JS_DefinePropertyValueValue(ctx, sp[-3], js_dup(sp[-2]), sp[-1], - JS_PROP_C_W_E | JS_PROP_THROW); - sp -= 1; - if (unlikely(ret < 0)) - goto exception; - } - BREAK; - - CASE(OP_append): /* array pos enumobj -- array pos */ - { - sf->cur_pc = pc; - if (js_append_enumerate(ctx, sp)) - goto exception; - JS_FreeValue(ctx, *--sp); - } - BREAK; - - CASE(OP_copy_data_properties): /* target source excludeList */ - { - /* stack offsets (-1 based): - 2 bits for target, - 3 bits for source, - 2 bits for exclusionList */ - int mask; - - mask = *pc++; - sf->cur_pc = pc; - if (JS_CopyDataProperties(ctx, sp[-1 - (mask & 3)], - sp[-1 - ((mask >> 2) & 7)], - sp[-1 - ((mask >> 5) & 7)], 0)) - goto exception; - } - BREAK; - - CASE(OP_add): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - int64_t r; - r = (int64_t)JS_VALUE_GET_INT(op1) + JS_VALUE_GET_INT(op2); - if (unlikely((int)r != r)) - goto add_slow; - sp[-2] = js_int32(r); - sp--; - } else if (JS_VALUE_IS_BOTH_FLOAT(op1, op2)) { - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - sp[-2] = js_float64(JS_VALUE_GET_FLOAT64(op1) + - JS_VALUE_GET_FLOAT64(op2)); - JS_X87_FPCW_RESTORE(fpcw); - sp--; - } else { - add_slow: - sf->cur_pc = pc; - if (js_add_slow(ctx, sp)) - goto exception; - sp--; - } - } - BREAK; - CASE(OP_add_loc): - { - JSValue *pv; - int idx; - idx = *pc; - pc += 1; - - pv = &var_buf[idx]; - if (likely(JS_VALUE_IS_BOTH_INT(*pv, sp[-1]))) { - int64_t r; - r = (int64_t)JS_VALUE_GET_INT(*pv) + - JS_VALUE_GET_INT(sp[-1]); - if (unlikely((int)r != r)) - goto add_loc_slow; - *pv = js_int32(r); - sp--; - } else if (JS_VALUE_GET_TAG(*pv) == JS_TAG_STRING) { - JSValue op1; - op1 = sp[-1]; - sp--; - sf->cur_pc = pc; - op1 = JS_ToPrimitiveFree(ctx, op1, HINT_NONE); - if (JS_IsException(op1)) - goto exception; - op1 = JS_ConcatString(ctx, js_dup(*pv), op1); - if (JS_IsException(op1)) - goto exception; - set_value(ctx, pv, op1); - } else { - JSValue ops[2]; - add_loc_slow: - /* In case of exception, js_add_slow frees ops[0] - and ops[1], so we must duplicate *pv */ - sf->cur_pc = pc; - ops[0] = js_dup(*pv); - ops[1] = sp[-1]; - sp--; - if (js_add_slow(ctx, ops + 2)) - goto exception; - set_value(ctx, pv, ops[0]); - } - } - BREAK; - CASE(OP_sub): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - int64_t r; - r = (int64_t)JS_VALUE_GET_INT(op1) - JS_VALUE_GET_INT(op2); - if (unlikely((int)r != r)) - goto binary_arith_slow; - sp[-2] = js_int32(r); - sp--; - } else if (JS_VALUE_IS_BOTH_FLOAT(op1, op2)) { - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - sp[-2] = js_float64(JS_VALUE_GET_FLOAT64(op1) - - JS_VALUE_GET_FLOAT64(op2)); - JS_X87_FPCW_RESTORE(fpcw); - sp--; - } else { - goto binary_arith_slow; - } - } - BREAK; - CASE(OP_mul): - { - JSValue op1, op2; - double d; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - int32_t v1, v2; - int64_t r; - v1 = JS_VALUE_GET_INT(op1); - v2 = JS_VALUE_GET_INT(op2); - r = (int64_t)v1 * v2; - if (unlikely((int)r != r)) { - d = (double)r; - goto mul_fp_res; - } - /* need to test zero case for -0 result */ - if (unlikely(r == 0 && (v1 | v2) < 0)) { - d = -0.0; - goto mul_fp_res; - } - sp[-2] = js_int32(r); - sp--; - } else if (JS_VALUE_IS_BOTH_FLOAT(op1, op2)) { - JS_X87_FPCW_SAVE_AND_ADJUST(fpcw); - d = JS_VALUE_GET_FLOAT64(op1) * JS_VALUE_GET_FLOAT64(op2); - JS_X87_FPCW_RESTORE(fpcw); - mul_fp_res: - sp[-2] = js_float64(d); - sp--; - } else { - goto binary_arith_slow; - } - } - BREAK; - CASE(OP_div): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - int v1, v2; - v1 = JS_VALUE_GET_INT(op1); - v2 = JS_VALUE_GET_INT(op2); - sp[-2] = js_number((double)v1 / (double)v2); - sp--; - } else { - goto binary_arith_slow; - } - } - BREAK; - CASE(OP_mod): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - int v1, v2, r; - v1 = JS_VALUE_GET_INT(op1); - v2 = JS_VALUE_GET_INT(op2); - /* We must avoid v2 = 0, v1 = INT32_MIN and v2 = - -1 and the cases where the result is -0. */ - if (unlikely(v1 < 0 || v2 <= 0)) - goto binary_arith_slow; - r = v1 % v2; - sp[-2] = js_int32(r); - sp--; - } else { - goto binary_arith_slow; - } - } - BREAK; - CASE(OP_pow): - binary_arith_slow: - sf->cur_pc = pc; - if (js_binary_arith_slow(ctx, sp, opcode)) - goto exception; - sp--; - BREAK; - - CASE(OP_plus): - { - JSValue op1; - uint32_t tag; - op1 = sp[-1]; - tag = JS_VALUE_GET_TAG(op1); - if (tag == JS_TAG_INT || JS_TAG_IS_FLOAT64(tag)) { - } else { - sf->cur_pc = pc; - if (js_unary_arith_slow(ctx, sp, opcode)) - goto exception; - } - } - BREAK; - CASE(OP_neg): - { - JSValue op1; - uint32_t tag; - int val; - double d; - op1 = sp[-1]; - tag = JS_VALUE_GET_TAG(op1); - if (tag == JS_TAG_INT) { - val = JS_VALUE_GET_INT(op1); - /* Note: -0 cannot be expressed as integer */ - if (unlikely(val == 0)) { - d = -0.0; - goto neg_fp_res; - } - if (unlikely(val == INT32_MIN)) { - d = -(double)val; - goto neg_fp_res; - } - sp[-1] = js_int32(-val); - } else if (JS_TAG_IS_FLOAT64(tag)) { - d = -JS_VALUE_GET_FLOAT64(op1); - neg_fp_res: - sp[-1] = js_float64(d); - } else { - sf->cur_pc = pc; - if (js_unary_arith_slow(ctx, sp, opcode)) - goto exception; - } - } - BREAK; - CASE(OP_inc): - { - JSValue op1; - int val; - op1 = sp[-1]; - if (JS_VALUE_GET_TAG(op1) == JS_TAG_INT) { - val = JS_VALUE_GET_INT(op1); - if (unlikely(val == INT32_MAX)) - goto inc_slow; - sp[-1] = js_int32(val + 1); - } else { - inc_slow: - sf->cur_pc = pc; - if (js_unary_arith_slow(ctx, sp, opcode)) - goto exception; - } - } - BREAK; - CASE(OP_dec): - { - JSValue op1; - int val; - op1 = sp[-1]; - if (JS_VALUE_GET_TAG(op1) == JS_TAG_INT) { - val = JS_VALUE_GET_INT(op1); - if (unlikely(val == INT32_MIN)) - goto dec_slow; - sp[-1] = js_int32(val - 1); - } else { - dec_slow: - sf->cur_pc = pc; - if (js_unary_arith_slow(ctx, sp, opcode)) - goto exception; - } - } - BREAK; - CASE(OP_post_inc): - CASE(OP_post_dec): - sf->cur_pc = pc; - if (js_post_inc_slow(ctx, sp, opcode)) - goto exception; - sp++; - BREAK; - CASE(OP_inc_loc): - { - JSValue op1; - int val; - int idx; - idx = *pc; - pc += 1; - - op1 = var_buf[idx]; - if (JS_VALUE_GET_TAG(op1) == JS_TAG_INT) { - val = JS_VALUE_GET_INT(op1); - if (unlikely(val == INT32_MAX)) - goto inc_loc_slow; - var_buf[idx] = js_int32(val + 1); - } else { - inc_loc_slow: - sf->cur_pc = pc; - /* must duplicate otherwise the variable value may - be destroyed before JS code accesses it */ - op1 = js_dup(op1); - if (js_unary_arith_slow(ctx, &op1 + 1, OP_inc)) - goto exception; - set_value(ctx, &var_buf[idx], op1); - } - } - BREAK; - CASE(OP_dec_loc): - { - JSValue op1; - int val; - int idx; - idx = *pc; - pc += 1; - - op1 = var_buf[idx]; - if (JS_VALUE_GET_TAG(op1) == JS_TAG_INT) { - val = JS_VALUE_GET_INT(op1); - if (unlikely(val == INT32_MIN)) - goto dec_loc_slow; - var_buf[idx] = js_int32(val - 1); - } else { - dec_loc_slow: - sf->cur_pc = pc; - /* must duplicate otherwise the variable value may - be destroyed before JS code accesses it */ - op1 = js_dup(op1); - if (js_unary_arith_slow(ctx, &op1 + 1, OP_dec)) - goto exception; - set_value(ctx, &var_buf[idx], op1); - } - } - BREAK; - CASE(OP_not): - { - JSValue op1; - op1 = sp[-1]; - if (JS_VALUE_GET_TAG(op1) == JS_TAG_INT) { - sp[-1] = js_int32(~JS_VALUE_GET_INT(op1)); - } else { - sf->cur_pc = pc; - if (js_not_slow(ctx, sp)) - goto exception; - } - } - BREAK; - - CASE(OP_shl): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - uint32_t v1, v2; - v1 = JS_VALUE_GET_INT(op1); - v2 = JS_VALUE_GET_INT(op2) & 0x1f; - sp[-2] = js_int32(v1 << v2); - sp--; - } else { - sf->cur_pc = pc; - if (js_binary_logic_slow(ctx, sp, opcode)) - goto exception; - sp--; - } - } - BREAK; - CASE(OP_shr): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - uint32_t v2; - v2 = JS_VALUE_GET_INT(op2); - v2 &= 0x1f; - sp[-2] = js_uint32((uint32_t)JS_VALUE_GET_INT(op1) >> v2); - sp--; - } else { - sf->cur_pc = pc; - if (js_shr_slow(ctx, sp)) - goto exception; - sp--; - } - } - BREAK; - CASE(OP_sar): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - uint32_t v2; - v2 = JS_VALUE_GET_INT(op2); - if (unlikely(v2 > 0x1f)) { - v2 &= 0x1f; - } - sp[-2] = js_int32((int)JS_VALUE_GET_INT(op1) >> v2); - sp--; - } else { - sf->cur_pc = pc; - if (js_binary_logic_slow(ctx, sp, opcode)) - goto exception; - sp--; - } - } - BREAK; - CASE(OP_and): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - sp[-2] = js_int32(JS_VALUE_GET_INT(op1) & JS_VALUE_GET_INT(op2)); - sp--; - } else { - sf->cur_pc = pc; - if (js_binary_logic_slow(ctx, sp, opcode)) - goto exception; - sp--; - } - } - BREAK; - CASE(OP_or): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - sp[-2] = js_int32(JS_VALUE_GET_INT(op1) | JS_VALUE_GET_INT(op2)); - sp--; - } else { - sf->cur_pc = pc; - if (js_binary_logic_slow(ctx, sp, opcode)) - goto exception; - sp--; - } - } - BREAK; - CASE(OP_xor): - { - JSValue op1, op2; - op1 = sp[-2]; - op2 = sp[-1]; - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { - sp[-2] = js_int32(JS_VALUE_GET_INT(op1) ^ JS_VALUE_GET_INT(op2)); - sp--; - } else { - sf->cur_pc = pc; - if (js_binary_logic_slow(ctx, sp, opcode)) - goto exception; - sp--; - } - } - BREAK; - - -#define OP_CMP(opcode, binary_op, slow_call) \ - CASE(opcode): \ - { \ - JSValue op1, op2; \ - op1 = sp[-2]; \ - op2 = sp[-1]; \ - if (likely(JS_VALUE_IS_BOTH_INT(op1, op2))) { \ - sp[-2] = js_bool(JS_VALUE_GET_INT(op1) binary_op JS_VALUE_GET_INT(op2)); \ - sp--; \ - } else { \ - sf->cur_pc = pc; \ - if (slow_call) \ - goto exception; \ - sp--; \ - } \ - } \ - BREAK - - OP_CMP(OP_lt, <, js_relational_slow(ctx, sp, opcode)); - OP_CMP(OP_lte, <=, js_relational_slow(ctx, sp, opcode)); - OP_CMP(OP_gt, >, js_relational_slow(ctx, sp, opcode)); - OP_CMP(OP_gte, >=, js_relational_slow(ctx, sp, opcode)); - OP_CMP(OP_eq, ==, js_eq_slow(ctx, sp, 0)); - OP_CMP(OP_neq, !=, js_eq_slow(ctx, sp, 1)); - OP_CMP(OP_strict_eq, ==, js_strict_eq_slow(ctx, sp, 0)); - OP_CMP(OP_strict_neq, !=, js_strict_eq_slow(ctx, sp, 1)); - - CASE(OP_in): - sf->cur_pc = pc; - if (js_operator_in(ctx, sp)) - goto exception; - sp--; - BREAK; - CASE(OP_private_in): - if (js_operator_private_in(ctx, sp)) - goto exception; - sp--; - BREAK; - CASE(OP_instanceof): - sf->cur_pc = pc; - if (js_operator_instanceof(ctx, sp)) - goto exception; - sp--; - BREAK; - CASE(OP_typeof): - { - JSValue op1; - JSAtom atom; - - op1 = sp[-1]; - atom = js_operator_typeof(ctx, op1); - JS_FreeValue(ctx, op1); - sp[-1] = JS_AtomToString(ctx, atom); - } - BREAK; - CASE(OP_delete): - sf->cur_pc = pc; - if (js_operator_delete(ctx, sp)) - goto exception; - sp--; - BREAK; - CASE(OP_delete_var): - { - JSAtom atom; - int ret; - - atom = get_u32(pc); - pc += 4; - - sf->cur_pc = pc; - ret = JS_DeleteGlobalVar(ctx, atom); - if (unlikely(ret < 0)) - goto exception; - *sp++ = js_bool(ret); - } - BREAK; - - CASE(OP_to_object): - if (JS_VALUE_GET_TAG(sp[-1]) != JS_TAG_OBJECT) { - sf->cur_pc = pc; - ret_val = JS_ToObject(ctx, sp[-1]); - if (JS_IsException(ret_val)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = ret_val; - } - BREAK; - - CASE(OP_to_propkey): - switch (JS_VALUE_GET_TAG(sp[-1])) { - case JS_TAG_INT: - case JS_TAG_STRING: - case JS_TAG_SYMBOL: - break; - default: - sf->cur_pc = pc; - ret_val = JS_ToPropertyKey(ctx, sp[-1]); - if (JS_IsException(ret_val)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = ret_val; - break; - } - BREAK; - - CASE(OP_to_propkey2): - /* must be tested first */ - if (unlikely(JS_IsUndefined(sp[-2]) || JS_IsNull(sp[-2]))) { - JS_ThrowTypeError(ctx, "value has no property"); - goto exception; - } - switch (JS_VALUE_GET_TAG(sp[-1])) { - case JS_TAG_INT: - case JS_TAG_STRING: - case JS_TAG_SYMBOL: - break; - default: - sf->cur_pc = pc; - ret_val = JS_ToPropertyKey(ctx, sp[-1]); - if (JS_IsException(ret_val)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = ret_val; - break; - } - BREAK; - CASE(OP_with_get_var): - CASE(OP_with_put_var): - CASE(OP_with_delete_var): - CASE(OP_with_make_ref): - CASE(OP_with_get_ref): - CASE(OP_with_get_ref_undef): - { - JSAtom atom; - int32_t diff; - JSValue obj, val; - int ret, is_with; - atom = get_u32(pc); - diff = get_u32(pc + 4); - is_with = pc[8]; - pc += 9; - sf->cur_pc = pc; - - obj = sp[-1]; - ret = JS_HasProperty(ctx, obj, atom); - if (unlikely(ret < 0)) - goto exception; - if (ret) { - if (is_with) { - ret = js_has_unscopable(ctx, obj, atom); - if (unlikely(ret < 0)) - goto exception; - if (ret) - goto no_with; - } - switch (opcode) { - case OP_with_get_var: - val = JS_GetProperty(ctx, obj, atom); - if (unlikely(JS_IsException(val))) - goto exception; - set_value(ctx, &sp[-1], val); - break; - case OP_with_put_var: - /* XXX: check if strict mode */ - ret = JS_SetPropertyInternal(ctx, obj, atom, sp[-2], - JS_PROP_THROW_STRICT); - JS_FreeValue(ctx, sp[-1]); - sp -= 2; - if (unlikely(ret < 0)) - goto exception; - break; - case OP_with_delete_var: - ret = JS_DeleteProperty(ctx, obj, atom, 0); - if (unlikely(ret < 0)) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = js_bool(ret); - break; - case OP_with_make_ref: - /* produce a pair object/propname on the stack */ - *sp++ = JS_AtomToValue(ctx, atom); - break; - case OP_with_get_ref: - /* produce a pair object/method on the stack */ - val = JS_GetProperty(ctx, obj, atom); - if (unlikely(JS_IsException(val))) - goto exception; - *sp++ = val; - break; - case OP_with_get_ref_undef: - /* produce a pair undefined/function on the stack */ - val = JS_GetProperty(ctx, obj, atom); - if (unlikely(JS_IsException(val))) - goto exception; - JS_FreeValue(ctx, sp[-1]); - sp[-1] = JS_UNDEFINED; - *sp++ = val; - break; - } - pc += diff - 5; - } else { - no_with: - /* if not jumping, drop the object argument */ - JS_FreeValue(ctx, sp[-1]); - sp--; - } - } - BREAK; - - CASE(OP_await): - ret_val = js_int32(FUNC_RET_AWAIT); - goto done_generator; - CASE(OP_yield): - ret_val = js_int32(FUNC_RET_YIELD); - goto done_generator; - CASE(OP_yield_star): - CASE(OP_async_yield_star): - ret_val = js_int32(FUNC_RET_YIELD_STAR); - goto done_generator; - CASE(OP_return_async): - CASE(OP_initial_yield): - ret_val = JS_UNDEFINED; - goto done_generator; - - CASE(OP_nop): - BREAK; - CASE(OP_is_undefined_or_null): - if (JS_VALUE_GET_TAG(sp[-1]) == JS_TAG_UNDEFINED || - JS_VALUE_GET_TAG(sp[-1]) == JS_TAG_NULL) { - goto set_true; - } else { - goto free_and_set_false; - } - CASE(OP_is_undefined): - if (JS_VALUE_GET_TAG(sp[-1]) == JS_TAG_UNDEFINED) { - goto set_true; - } else { - goto free_and_set_false; - } - CASE(OP_is_null): - if (JS_VALUE_GET_TAG(sp[-1]) == JS_TAG_NULL) { - goto set_true; - } else { - goto free_and_set_false; - } - /* XXX: could merge to a single opcode */ - CASE(OP_typeof_is_undefined): - /* different from OP_is_undefined because of isHTMLDDA */ - if (js_operator_typeof(ctx, sp[-1]) == JS_ATOM_undefined) { - goto free_and_set_true; - } else { - goto free_and_set_false; - } - CASE(OP_typeof_is_function): - if (js_operator_typeof(ctx, sp[-1]) == JS_ATOM_function) { - goto free_and_set_true; - } else { - goto free_and_set_false; - } - free_and_set_true: - JS_FreeValue(ctx, sp[-1]); - set_true: - sp[-1] = JS_TRUE; - BREAK; - free_and_set_false: - JS_FreeValue(ctx, sp[-1]); - sp[-1] = JS_FALSE; - BREAK; - CASE(OP_invalid): - DEFAULT: - JS_ThrowInternalError(ctx, "invalid opcode: pc=%u opcode=0x%02x", - (int)(pc - b->byte_code_buf - 1), opcode); - goto exception; - } - } - exception: - if (needs_backtrace(rt->current_exception) - || JS_IsUndefined(ctx->error_back_trace)) { - sf->cur_pc = pc; - build_backtrace(ctx, rt->current_exception, JS_UNDEFINED, - NULL, 0, 0, 0); - } - if (!JS_IsUncatchableError(rt->current_exception)) { - while (sp > stack_buf) { - JSValue val = *--sp; - JS_FreeValue(ctx, val); - if (JS_VALUE_GET_TAG(val) == JS_TAG_CATCH_OFFSET) { - int pos = JS_VALUE_GET_INT(val); - if (pos == 0) { - /* enumerator: close it with a throw */ - JS_FreeValue(ctx, sp[-1]); /* drop the next method */ - sp--; - JS_IteratorClose(ctx, sp[-1], true); - } else { - *sp++ = rt->current_exception; - rt->current_exception = JS_UNINITIALIZED; - JS_FreeValueRT(rt, ctx->error_back_trace); - ctx->error_back_trace = JS_UNDEFINED; - pc = b->byte_code_buf + pos; - goto restart; - } - } - } - } - ret_val = JS_EXCEPTION; - /* the local variables are freed by the caller in the generator - case. Hence the label 'done' should never be reached in a - generator function. */ - if (b->func_kind != JS_FUNC_NORMAL) { - done_generator: - sf->cur_pc = pc; - sf->cur_sp = sp; - } else { - done: - if (unlikely(!list_empty(&sf->var_ref_list))) { - /* variable references reference the stack: must close them */ - close_var_refs(rt, sf); - } - /* free the local variables and stack */ - for(pval = local_buf; pval < sp; pval++) { - JS_FreeValue(ctx, *pval); - } - } - rt->current_stack_frame = sf->prev_frame; - return ret_val; -} - -JSValue JS_Call(JSContext *ctx, JSValueConst func_obj, JSValueConst this_obj, - int argc, JSValueConst *argv) -{ - return JS_CallInternal(ctx, func_obj, this_obj, JS_UNDEFINED, - argc, argv, JS_CALL_FLAG_COPY_ARGV); -} - -static JSValue JS_CallFree(JSContext *ctx, JSValue func_obj, JSValueConst this_obj, - int argc, JSValueConst *argv) -{ - JSValue res = JS_CallInternal(ctx, func_obj, this_obj, JS_UNDEFINED, - argc, argv, JS_CALL_FLAG_COPY_ARGV); - JS_FreeValue(ctx, func_obj); - return res; -} - -/* warning: the refcount of the context is not incremented. Return - NULL in case of exception (case of revoked proxy only) */ -static JSContext *JS_GetFunctionRealm(JSContext *ctx, JSValueConst func_obj) -{ - JSObject *p; - JSContext *realm; - - if (JS_VALUE_GET_TAG(func_obj) != JS_TAG_OBJECT) - return ctx; - p = JS_VALUE_GET_OBJ(func_obj); - switch(p->class_id) { - case JS_CLASS_C_FUNCTION: - realm = p->u.cfunc.realm; - break; - case JS_CLASS_BYTECODE_FUNCTION: - case JS_CLASS_GENERATOR_FUNCTION: - case JS_CLASS_ASYNC_FUNCTION: - case JS_CLASS_ASYNC_GENERATOR_FUNCTION: - { - JSFunctionBytecode *b; - b = p->u.func.function_bytecode; - realm = b->realm; - } - break; - case JS_CLASS_PROXY: - { - JSProxyData *s = p->u.opaque; - if (!s) - return ctx; - if (s->is_revoked) { - JS_ThrowTypeErrorRevokedProxy(ctx); - return NULL; - } else { - realm = JS_GetFunctionRealm(ctx, s->target); - } - } - break; - case JS_CLASS_BOUND_FUNCTION: - { - JSBoundFunction *bf = p->u.bound_function; - realm = JS_GetFunctionRealm(ctx, bf->func_obj); - } - break; - default: - realm = ctx; - break; - } - return realm; -} - -static JSValue js_create_from_ctor(JSContext *ctx, JSValueConst ctor, - int class_id) -{ - JSValue proto, obj; - JSContext *realm; - - if (JS_IsUndefined(ctor)) { - proto = js_dup(ctx->class_proto[class_id]); - } else { - proto = JS_GetProperty(ctx, ctor, JS_ATOM_prototype); - if (JS_IsException(proto)) - return proto; - if (!JS_IsObject(proto)) { - JS_FreeValue(ctx, proto); - realm = JS_GetFunctionRealm(ctx, ctor); - if (!realm) - return JS_EXCEPTION; - proto = js_dup(realm->class_proto[class_id]); - } - } - obj = JS_NewObjectProtoClass(ctx, proto, class_id); - JS_FreeValue(ctx, proto); - return obj; -} - -/* argv[] is modified if (flags & JS_CALL_FLAG_COPY_ARGV) = 0. */ -static JSValue JS_CallConstructorInternal(JSContext *ctx, - JSValueConst func_obj, - JSValueConst new_target, - int argc, JSValueConst *argv, - int flags) -{ - JSObject *p; - JSFunctionBytecode *b; - - if (js_poll_interrupts(ctx)) - return JS_EXCEPTION; - flags |= JS_CALL_FLAG_CONSTRUCTOR; - if (unlikely(JS_VALUE_GET_TAG(func_obj) != JS_TAG_OBJECT)) - goto not_a_function; - p = JS_VALUE_GET_OBJ(func_obj); - if (unlikely(!p->is_constructor)) - return JS_ThrowTypeErrorNotAConstructor(ctx, func_obj); - if (unlikely(p->class_id != JS_CLASS_BYTECODE_FUNCTION)) { - JSClassCall *call_func; - call_func = ctx->rt->class_array[p->class_id].call; - if (!call_func) { - not_a_function: - return JS_ThrowTypeErrorNotAFunction(ctx); - } - return call_func(ctx, func_obj, new_target, argc, - argv, flags); - } - - b = p->u.func.function_bytecode; - if (b->is_derived_class_constructor) { - return JS_CallInternal(ctx, func_obj, JS_UNDEFINED, new_target, argc, argv, flags); - } else { - JSValue obj, ret; - /* legacy constructor behavior */ - obj = js_create_from_ctor(ctx, new_target, JS_CLASS_OBJECT); - if (JS_IsException(obj)) - return JS_EXCEPTION; - ret = JS_CallInternal(ctx, func_obj, obj, new_target, argc, argv, flags); - if (JS_VALUE_GET_TAG(ret) == JS_TAG_OBJECT || - JS_IsException(ret)) { - JS_FreeValue(ctx, obj); - return ret; - } else { - JS_FreeValue(ctx, ret); - return obj; - } - } -} - -JSValue JS_CallConstructor2(JSContext *ctx, JSValueConst func_obj, - JSValueConst new_target, - int argc, JSValueConst *argv) -{ - return JS_CallConstructorInternal(ctx, func_obj, new_target, - argc, argv, - JS_CALL_FLAG_COPY_ARGV); -} - -JSValue JS_CallConstructor(JSContext *ctx, JSValueConst func_obj, - int argc, JSValueConst *argv) -{ - return JS_CallConstructorInternal(ctx, func_obj, func_obj, - argc, argv, - JS_CALL_FLAG_COPY_ARGV); -} - -JSValue JS_Invoke(JSContext *ctx, JSValueConst this_val, JSAtom atom, - int argc, JSValueConst *argv) -{ - JSValue func_obj; - func_obj = JS_GetProperty(ctx, this_val, atom); - if (JS_IsException(func_obj)) - return func_obj; - return JS_CallFree(ctx, func_obj, this_val, argc, argv); -} - -static JSValue JS_InvokeFree(JSContext *ctx, JSValue this_val, JSAtom atom, - int argc, JSValueConst *argv) -{ - JSValue res = JS_Invoke(ctx, this_val, atom, argc, argv); - JS_FreeValue(ctx, this_val); - return res; -} - -/* JSAsyncFunctionState (used by generator and async functions) */ -static __exception int async_func_init(JSContext *ctx, JSAsyncFunctionState *s, - JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv) -{ - JSObject *p; - JSFunctionBytecode *b; - JSStackFrame *sf; - int local_count, i, arg_buf_len, n; - - sf = &s->frame; - init_list_head(&sf->var_ref_list); - p = JS_VALUE_GET_OBJ(func_obj); - b = p->u.func.function_bytecode; - sf->is_strict_mode = b->is_strict_mode; - sf->cur_pc = b->byte_code_buf; - arg_buf_len = max_int(b->arg_count, argc); - local_count = arg_buf_len + b->var_count + b->stack_size; - sf->arg_buf = js_malloc(ctx, sizeof(JSValue) * max_int(local_count, 1)); - if (!sf->arg_buf) - return -1; - sf->cur_func = js_dup(func_obj); - s->this_val = js_dup(this_obj); - s->argc = argc; - sf->arg_count = arg_buf_len; - sf->var_buf = sf->arg_buf + arg_buf_len; - sf->cur_sp = sf->var_buf + b->var_count; - for(i = 0; i < argc; i++) - sf->arg_buf[i] = js_dup(argv[i]); - n = arg_buf_len + b->var_count; - for(i = argc; i < n; i++) - sf->arg_buf[i] = JS_UNDEFINED; - return 0; -} - -static void async_func_mark(JSRuntime *rt, JSAsyncFunctionState *s, - JS_MarkFunc *mark_func) -{ - JSStackFrame *sf; - JSValue *sp; - - sf = &s->frame; - JS_MarkValue(rt, sf->cur_func, mark_func); - JS_MarkValue(rt, s->this_val, mark_func); - if (sf->cur_sp) { - /* if the function is running, cur_sp is not known so we - cannot mark the stack. Marking the variables is not needed - because a running function cannot be part of a removable - cycle */ - for(sp = sf->arg_buf; sp < sf->cur_sp; sp++) - JS_MarkValue(rt, *sp, mark_func); - } -} - -static void async_func_free(JSRuntime *rt, JSAsyncFunctionState *s) -{ - JSStackFrame *sf; - JSValue *sp; - - sf = &s->frame; - - /* close the closure variables. */ - close_var_refs(rt, sf); - - if (sf->arg_buf) { - /* cannot free the function if it is running */ - assert(sf->cur_sp != NULL); - for(sp = sf->arg_buf; sp < sf->cur_sp; sp++) { - JS_FreeValueRT(rt, *sp); - } - js_free_rt(rt, sf->arg_buf); - } - JS_FreeValueRT(rt, sf->cur_func); - JS_FreeValueRT(rt, s->this_val); -} - -static JSValue async_func_resume(JSContext *ctx, JSAsyncFunctionState *s) -{ - JSValue func_obj; - - if (js_check_stack_overflow(ctx->rt, 0)) - return JS_ThrowStackOverflow(ctx); - - /* the tag does not matter provided it is not an object */ - func_obj = JS_MKPTR(JS_TAG_INT, s); - return JS_CallInternal(ctx, func_obj, s->this_val, JS_UNDEFINED, - s->argc, vc(s->frame.arg_buf), - JS_CALL_FLAG_GENERATOR); -} - - -/* Generators */ - -typedef enum JSGeneratorStateEnum { - JS_GENERATOR_STATE_SUSPENDED_START, - JS_GENERATOR_STATE_SUSPENDED_YIELD, - JS_GENERATOR_STATE_SUSPENDED_YIELD_STAR, - JS_GENERATOR_STATE_EXECUTING, - JS_GENERATOR_STATE_COMPLETED, -} JSGeneratorStateEnum; - -typedef struct JSGeneratorData { - JSGeneratorStateEnum state; - JSAsyncFunctionState func_state; -} JSGeneratorData; - -static void free_generator_stack_rt(JSRuntime *rt, JSGeneratorData *s) -{ - if (s->state == JS_GENERATOR_STATE_COMPLETED) - return; - async_func_free(rt, &s->func_state); - s->state = JS_GENERATOR_STATE_COMPLETED; -} - -static void js_generator_finalizer(JSRuntime *rt, JSValueConst obj) -{ - JSGeneratorData *s = JS_GetOpaque(obj, JS_CLASS_GENERATOR); - - if (s) { - free_generator_stack_rt(rt, s); - js_free_rt(rt, s); - } -} - -static void free_generator_stack(JSContext *ctx, JSGeneratorData *s) -{ - free_generator_stack_rt(ctx->rt, s); -} - -static void js_generator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSGeneratorData *s = p->u.generator_data; - - if (!s || s->state == JS_GENERATOR_STATE_COMPLETED) - return; - async_func_mark(rt, &s->func_state, mark_func); -} - -/* XXX: use enum */ -#define GEN_MAGIC_NEXT 0 -#define GEN_MAGIC_RETURN 1 -#define GEN_MAGIC_THROW 2 - -static JSValue js_generator_next(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, - int *pdone, int magic) -{ - JSGeneratorData *s = JS_GetOpaque(this_val, JS_CLASS_GENERATOR); - JSStackFrame *sf; - JSValue ret, func_ret; - - *pdone = true; - if (!s) - return JS_ThrowTypeError(ctx, "not a generator"); - sf = &s->func_state.frame; - switch(s->state) { - default: - case JS_GENERATOR_STATE_SUSPENDED_START: - if (magic == GEN_MAGIC_NEXT) { - goto exec_no_arg; - } else { - free_generator_stack(ctx, s); - goto done; - } - break; - case JS_GENERATOR_STATE_SUSPENDED_YIELD_STAR: - case JS_GENERATOR_STATE_SUSPENDED_YIELD: - /* cur_sp[-1] was set to JS_UNDEFINED in the previous call */ - ret = js_dup(argv[0]); - if (magic == GEN_MAGIC_THROW && - s->state == JS_GENERATOR_STATE_SUSPENDED_YIELD) { - JS_Throw(ctx, ret); - s->func_state.throw_flag = true; - } else { - sf->cur_sp[-1] = ret; - sf->cur_sp[0] = js_int32(magic); - sf->cur_sp++; - exec_no_arg: - s->func_state.throw_flag = false; - } - s->state = JS_GENERATOR_STATE_EXECUTING; - func_ret = async_func_resume(ctx, &s->func_state); - s->state = JS_GENERATOR_STATE_SUSPENDED_YIELD; - if (JS_IsException(func_ret)) { - /* finalize the execution in case of exception */ - free_generator_stack(ctx, s); - return func_ret; - } - if (JS_VALUE_GET_TAG(func_ret) == JS_TAG_INT) { - /* get the returned yield value at the top of the stack */ - ret = sf->cur_sp[-1]; - sf->cur_sp[-1] = JS_UNDEFINED; - if (JS_VALUE_GET_INT(func_ret) == FUNC_RET_YIELD_STAR) { - s->state = JS_GENERATOR_STATE_SUSPENDED_YIELD_STAR; - /* return (value, done) object */ - *pdone = 2; - } else { - *pdone = false; - } - } else { - /* end of iterator */ - ret = sf->cur_sp[-1]; - sf->cur_sp[-1] = JS_UNDEFINED; - JS_FreeValue(ctx, func_ret); - free_generator_stack(ctx, s); - } - break; - case JS_GENERATOR_STATE_COMPLETED: - done: - /* execution is finished */ - switch(magic) { - default: - case GEN_MAGIC_NEXT: - ret = JS_UNDEFINED; - break; - case GEN_MAGIC_RETURN: - ret = js_dup(argv[0]); - break; - case GEN_MAGIC_THROW: - ret = JS_Throw(ctx, js_dup(argv[0])); - break; - } - break; - case JS_GENERATOR_STATE_EXECUTING: - ret = JS_ThrowTypeError(ctx, "cannot invoke a running generator"); - break; - } - return ret; -} - -static JSValue js_call_generator_function(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, - int flags) -{ - JSValue obj, func_ret; - JSGeneratorData *s; - - s = js_mallocz(ctx, sizeof(*s)); - if (!s) - return JS_EXCEPTION; - s->state = JS_GENERATOR_STATE_SUSPENDED_START; - if (async_func_init(ctx, &s->func_state, func_obj, this_obj, argc, argv)) { - s->state = JS_GENERATOR_STATE_COMPLETED; - goto fail; - } - - /* execute the function up to 'OP_initial_yield' */ - func_ret = async_func_resume(ctx, &s->func_state); - if (JS_IsException(func_ret)) - goto fail; - JS_FreeValue(ctx, func_ret); - - obj = js_create_from_ctor(ctx, func_obj, JS_CLASS_GENERATOR); - if (JS_IsException(obj)) - goto fail; - JS_SetOpaqueInternal(obj, s); - return obj; - fail: - free_generator_stack_rt(ctx->rt, s); - js_free(ctx, s); - return JS_EXCEPTION; -} - -/* AsyncFunction */ - -static void js_async_function_terminate(JSRuntime *rt, JSAsyncFunctionData *s) -{ - if (s->is_active) { - async_func_free(rt, &s->func_state); - s->is_active = false; - } -} - -static void js_async_function_free0(JSRuntime *rt, JSAsyncFunctionData *s) -{ - js_async_function_terminate(rt, s); - JS_FreeValueRT(rt, s->resolving_funcs[0]); - JS_FreeValueRT(rt, s->resolving_funcs[1]); - remove_gc_object(&s->header); - js_free_rt(rt, s); -} - -static void js_async_function_free(JSRuntime *rt, JSAsyncFunctionData *s) -{ - if (--s->header.ref_count == 0) { - js_async_function_free0(rt, s); - } -} - -static void js_async_function_resolve_finalizer(JSRuntime *rt, - JSValueConst val) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSAsyncFunctionData *s = p->u.async_function_data; - if (s) { - js_async_function_free(rt, s); - } -} - -static void js_async_function_resolve_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSObject *p = JS_VALUE_GET_OBJ(val); - JSAsyncFunctionData *s = p->u.async_function_data; - if (s) { - mark_func(rt, &s->header); - } -} - -static int js_async_function_resolve_create(JSContext *ctx, - JSAsyncFunctionData *s, - JSValue *resolving_funcs) -{ - int i; - JSObject *p; - - for(i = 0; i < 2; i++) { - resolving_funcs[i] = - JS_NewObjectProtoClass(ctx, ctx->function_proto, - JS_CLASS_ASYNC_FUNCTION_RESOLVE + i); - if (JS_IsException(resolving_funcs[i])) { - if (i == 1) - JS_FreeValue(ctx, resolving_funcs[0]); - return -1; - } - p = JS_VALUE_GET_OBJ(resolving_funcs[i]); - s->header.ref_count++; - p->u.async_function_data = s; - } - return 0; -} - -static bool js_async_function_resume(JSContext *ctx, JSAsyncFunctionData *s) -{ - bool is_success = true; - JSValue func_ret, ret2; - - func_ret = async_func_resume(ctx, &s->func_state); - if (JS_IsException(func_ret)) { - fail: - if (unlikely(JS_IsUncatchableError(ctx->rt->current_exception))) { - is_success = false; - } else { - JSValue error = JS_GetException(ctx); - ret2 = JS_Call(ctx, s->resolving_funcs[1], JS_UNDEFINED, - 1, vc(&error)); - JS_FreeValue(ctx, error); - resolved: - if (unlikely(JS_IsException(ret2))) { - if (JS_IsUncatchableError(ctx->rt->current_exception)) { - is_success = false; - } else { - abort(); /* BUG */ - } - } - JS_FreeValue(ctx, ret2); - } - js_async_function_terminate(ctx->rt, s); - } else { - JSValue value; - value = s->func_state.frame.cur_sp[-1]; - s->func_state.frame.cur_sp[-1] = JS_UNDEFINED; - if (JS_IsUndefined(func_ret)) { - /* function returned */ - ret2 = JS_Call(ctx, s->resolving_funcs[0], JS_UNDEFINED, - 1, vc(&value)); - JS_FreeValue(ctx, value); - goto resolved; - } else { - JSValue promise, resolving_funcs[2], resolving_funcs1[2]; - int i, res; - - /* await */ - JS_FreeValue(ctx, func_ret); /* not used */ - promise = js_promise_resolve(ctx, ctx->promise_ctor, - 1, vc(&value), 0); - JS_FreeValue(ctx, value); - if (JS_IsException(promise)) - goto fail; - if (js_async_function_resolve_create(ctx, s, resolving_funcs)) { - JS_FreeValue(ctx, promise); - goto fail; - } - - /* Note: no need to create 'thrownawayCapability' as in - the spec */ - for(i = 0; i < 2; i++) - resolving_funcs1[i] = JS_UNDEFINED; - res = perform_promise_then(ctx, promise, - vc(resolving_funcs), - vc(resolving_funcs1)); - JS_FreeValue(ctx, promise); - for(i = 0; i < 2; i++) - JS_FreeValue(ctx, resolving_funcs[i]); - if (res) - goto fail; - } - } - return is_success; -} - -static JSValue js_async_function_resolve_call(JSContext *ctx, - JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, - int flags) -{ - JSObject *p = JS_VALUE_GET_OBJ(func_obj); - JSAsyncFunctionData *s = p->u.async_function_data; - bool is_reject = p->class_id - JS_CLASS_ASYNC_FUNCTION_RESOLVE; - JSValueConst arg; - - if (argc > 0) - arg = argv[0]; - else - arg = JS_UNDEFINED; - s->func_state.throw_flag = is_reject; - if (is_reject) { - JS_Throw(ctx, js_dup(arg)); - } else { - /* return value of await */ - s->func_state.frame.cur_sp[-1] = js_dup(arg); - } - if (!js_async_function_resume(ctx, s)) - return JS_EXCEPTION; - return JS_UNDEFINED; -} - -static JSValue js_async_function_call(JSContext *ctx, JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, int flags) -{ - JSValue promise; - JSAsyncFunctionData *s; - - s = js_mallocz(ctx, sizeof(*s)); - if (!s) - return JS_EXCEPTION; - s->header.ref_count = 1; - add_gc_object(ctx->rt, &s->header, JS_GC_OBJ_TYPE_ASYNC_FUNCTION); - s->is_active = false; - s->resolving_funcs[0] = JS_UNDEFINED; - s->resolving_funcs[1] = JS_UNDEFINED; - - promise = JS_NewPromiseCapability(ctx, s->resolving_funcs); - if (JS_IsException(promise)) - goto fail; - - if (async_func_init(ctx, &s->func_state, func_obj, this_obj, argc, argv)) { - fail: - JS_FreeValue(ctx, promise); - js_async_function_free(ctx->rt, s); - return JS_EXCEPTION; - } - s->is_active = true; - - if (!js_async_function_resume(ctx, s)) - goto fail; - - js_async_function_free(ctx->rt, s); - - return promise; -} - -/* AsyncGenerator */ - -typedef enum JSAsyncGeneratorStateEnum { - JS_ASYNC_GENERATOR_STATE_SUSPENDED_START, - JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD, - JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD_STAR, - JS_ASYNC_GENERATOR_STATE_EXECUTING, - JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN, - JS_ASYNC_GENERATOR_STATE_COMPLETED, -} JSAsyncGeneratorStateEnum; - -typedef struct JSAsyncGeneratorRequest { - struct list_head link; - /* completion */ - int completion_type; /* GEN_MAGIC_x */ - JSValue result; - /* promise capability */ - JSValue promise; - JSValue resolving_funcs[2]; -} JSAsyncGeneratorRequest; - -typedef struct JSAsyncGeneratorData { - JSObject *generator; /* back pointer to the object (const) */ - JSAsyncGeneratorStateEnum state; - JSAsyncFunctionState func_state; - struct list_head queue; /* list of JSAsyncGeneratorRequest.link */ -} JSAsyncGeneratorData; - -static void js_async_generator_free(JSRuntime *rt, - JSAsyncGeneratorData *s) -{ - struct list_head *el, *el1; - JSAsyncGeneratorRequest *req; - - list_for_each_safe(el, el1, &s->queue) { - req = list_entry(el, JSAsyncGeneratorRequest, link); - JS_FreeValueRT(rt, req->result); - JS_FreeValueRT(rt, req->promise); - JS_FreeValueRT(rt, req->resolving_funcs[0]); - JS_FreeValueRT(rt, req->resolving_funcs[1]); - js_free_rt(rt, req); - } - if (s->state != JS_ASYNC_GENERATOR_STATE_COMPLETED && - s->state != JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN) { - async_func_free(rt, &s->func_state); - } - js_free_rt(rt, s); -} - -static void js_async_generator_finalizer(JSRuntime *rt, JSValueConst obj) -{ - JSAsyncGeneratorData *s = JS_GetOpaque(obj, JS_CLASS_ASYNC_GENERATOR); - - if (s) { - js_async_generator_free(rt, s); - } -} - -static void js_async_generator_mark(JSRuntime *rt, JSValueConst val, - JS_MarkFunc *mark_func) -{ - JSAsyncGeneratorData *s = JS_GetOpaque(val, JS_CLASS_ASYNC_GENERATOR); - struct list_head *el; - JSAsyncGeneratorRequest *req; - if (s) { - list_for_each(el, &s->queue) { - req = list_entry(el, JSAsyncGeneratorRequest, link); - JS_MarkValue(rt, req->result, mark_func); - JS_MarkValue(rt, req->promise, mark_func); - JS_MarkValue(rt, req->resolving_funcs[0], mark_func); - JS_MarkValue(rt, req->resolving_funcs[1], mark_func); - } - if (s->state != JS_ASYNC_GENERATOR_STATE_COMPLETED && - s->state != JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN) { - async_func_mark(rt, &s->func_state, mark_func); - } - } -} - -static JSValue js_async_generator_resolve_function(JSContext *ctx, - JSValueConst this_obj, - int argc, JSValueConst *argv, - int magic, JSValueConst *func_data); - -static int js_async_generator_resolve_function_create(JSContext *ctx, - JSValue generator, - JSValue *resolving_funcs, - bool is_resume_next) -{ - int i; - JSValue func; - - for(i = 0; i < 2; i++) { - func = JS_NewCFunctionData(ctx, js_async_generator_resolve_function, 1, - i + is_resume_next * 2, 1, vc(&generator)); - if (JS_IsException(func)) { - if (i == 1) - JS_FreeValue(ctx, resolving_funcs[0]); - return -1; - } - resolving_funcs[i] = func; - } - return 0; -} - -static int js_async_generator_await(JSContext *ctx, - JSAsyncGeneratorData *s, - JSValue value) -{ - JSValue promise, resolving_funcs[2], resolving_funcs1[2]; - int i, res; - - promise = js_promise_resolve(ctx, ctx->promise_ctor, - 1, vc(&value), 0); - if (JS_IsException(promise)) - goto fail; - - if (js_async_generator_resolve_function_create(ctx, JS_MKPTR(JS_TAG_OBJECT, s->generator), - resolving_funcs, false)) { - JS_FreeValue(ctx, promise); - goto fail; - } - - /* Note: no need to create 'thrownawayCapability' as in - the spec */ - for(i = 0; i < 2; i++) - resolving_funcs1[i] = JS_UNDEFINED; - res = perform_promise_then(ctx, promise, - vc(resolving_funcs), - vc(resolving_funcs1)); - JS_FreeValue(ctx, promise); - for(i = 0; i < 2; i++) - JS_FreeValue(ctx, resolving_funcs[i]); - if (res) - goto fail; - return 0; - fail: - return -1; -} - -static void js_async_generator_resolve_or_reject(JSContext *ctx, - JSAsyncGeneratorData *s, - JSValueConst result, - int is_reject) -{ - JSAsyncGeneratorRequest *next; - JSValue ret; - - next = list_entry(s->queue.next, JSAsyncGeneratorRequest, link); - list_del(&next->link); - ret = JS_Call(ctx, next->resolving_funcs[is_reject], JS_UNDEFINED, 1, - &result); - JS_FreeValue(ctx, ret); - JS_FreeValue(ctx, next->result); - JS_FreeValue(ctx, next->promise); - JS_FreeValue(ctx, next->resolving_funcs[0]); - JS_FreeValue(ctx, next->resolving_funcs[1]); - js_free(ctx, next); -} - -static void js_async_generator_resolve(JSContext *ctx, - JSAsyncGeneratorData *s, - JSValueConst value, - bool done) -{ - JSValue result; - result = js_create_iterator_result(ctx, js_dup(value), done); - /* XXX: better exception handling ? */ - js_async_generator_resolve_or_reject(ctx, s, result, 0); - JS_FreeValue(ctx, result); - } - -static void js_async_generator_reject(JSContext *ctx, - JSAsyncGeneratorData *s, - JSValueConst exception) -{ - js_async_generator_resolve_or_reject(ctx, s, exception, 1); -} - -static void js_async_generator_complete(JSContext *ctx, - JSAsyncGeneratorData *s) -{ - if (s->state != JS_ASYNC_GENERATOR_STATE_COMPLETED) { - s->state = JS_ASYNC_GENERATOR_STATE_COMPLETED; - async_func_free(ctx->rt, &s->func_state); - } -} - -static int js_async_generator_completed_return(JSContext *ctx, - JSAsyncGeneratorData *s, - JSValue value) -{ - JSValue promise, resolving_funcs[2], resolving_funcs1[2]; - int res; - - // Can fail looking up JS_ATOM_constructor when is_reject==0. - promise = js_promise_resolve(ctx, ctx->promise_ctor, 1, vc(&value), - /*is_reject*/0); - // A poisoned .constructor property is observable and the resulting - // exception should be delivered to the catch handler. - if (JS_IsException(promise)) { - JSValue err = JS_GetException(ctx); - promise = js_promise_resolve(ctx, ctx->promise_ctor, 1, vc(&err), - /*is_reject*/1); - JS_FreeValue(ctx, err); - if (JS_IsException(promise)) - return -1; - } - if (js_async_generator_resolve_function_create(ctx, - JS_MKPTR(JS_TAG_OBJECT, s->generator), - resolving_funcs1, - true)) { - JS_FreeValue(ctx, promise); - return -1; - } - resolving_funcs[0] = JS_UNDEFINED; - resolving_funcs[1] = JS_UNDEFINED; - res = perform_promise_then(ctx, promise, - vc(resolving_funcs1), - vc(resolving_funcs)); - JS_FreeValue(ctx, resolving_funcs1[0]); - JS_FreeValue(ctx, resolving_funcs1[1]); - JS_FreeValue(ctx, promise); - return res; -} - -static void js_async_generator_resume_next(JSContext *ctx, - JSAsyncGeneratorData *s) -{ - JSAsyncGeneratorRequest *next; - JSValue func_ret, value; - - for(;;) { - if (list_empty(&s->queue)) - break; - next = list_entry(s->queue.next, JSAsyncGeneratorRequest, link); - switch(s->state) { - case JS_ASYNC_GENERATOR_STATE_EXECUTING: - /* only happens when restarting execution after await() */ - goto resume_exec; - case JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN: - goto done; - case JS_ASYNC_GENERATOR_STATE_SUSPENDED_START: - if (next->completion_type == GEN_MAGIC_NEXT) { - goto exec_no_arg; - } else { - js_async_generator_complete(ctx, s); - } - break; - case JS_ASYNC_GENERATOR_STATE_COMPLETED: - if (next->completion_type == GEN_MAGIC_NEXT) { - js_async_generator_resolve(ctx, s, JS_UNDEFINED, true); - } else if (next->completion_type == GEN_MAGIC_RETURN) { - s->state = JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN; - js_async_generator_completed_return(ctx, s, next->result); - } else { - js_async_generator_reject(ctx, s, next->result); - } - goto done; - case JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD: - case JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD_STAR: - value = js_dup(next->result); - if (next->completion_type == GEN_MAGIC_THROW && - s->state == JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD) { - JS_Throw(ctx, value); - s->func_state.throw_flag = true; - } else { - /* 'yield' returns a value. 'yield *' also returns a value - in case the 'throw' method is called */ - s->func_state.frame.cur_sp[-1] = value; - s->func_state.frame.cur_sp[0] = - js_int32(next->completion_type); - s->func_state.frame.cur_sp++; - exec_no_arg: - s->func_state.throw_flag = false; - } - s->state = JS_ASYNC_GENERATOR_STATE_EXECUTING; - resume_exec: - func_ret = async_func_resume(ctx, &s->func_state); - if (JS_IsException(func_ret)) { - value = JS_GetException(ctx); - js_async_generator_complete(ctx, s); - js_async_generator_reject(ctx, s, value); - JS_FreeValue(ctx, value); - } else if (JS_VALUE_GET_TAG(func_ret) == JS_TAG_INT) { - int func_ret_code, ret; - value = s->func_state.frame.cur_sp[-1]; - s->func_state.frame.cur_sp[-1] = JS_UNDEFINED; - func_ret_code = JS_VALUE_GET_INT(func_ret); - switch(func_ret_code) { - case FUNC_RET_YIELD: - case FUNC_RET_YIELD_STAR: - if (func_ret_code == FUNC_RET_YIELD_STAR) - s->state = JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD_STAR; - else - s->state = JS_ASYNC_GENERATOR_STATE_SUSPENDED_YIELD; - js_async_generator_resolve(ctx, s, value, false); - JS_FreeValue(ctx, value); - break; - case FUNC_RET_AWAIT: - ret = js_async_generator_await(ctx, s, value); - JS_FreeValue(ctx, value); - if (ret < 0) { - /* exception: throw it */ - s->func_state.throw_flag = true; - goto resume_exec; - } - goto done; - default: - abort(); - } - } else { - assert(JS_IsUndefined(func_ret)); - /* end of function */ - value = s->func_state.frame.cur_sp[-1]; - s->func_state.frame.cur_sp[-1] = JS_UNDEFINED; - js_async_generator_complete(ctx, s); - js_async_generator_resolve(ctx, s, value, true); - JS_FreeValue(ctx, value); - } - break; - default: - abort(); - } - } - done: ; -} - -static JSValue js_async_generator_resolve_function(JSContext *ctx, - JSValueConst this_obj, - int argc, JSValueConst *argv, - int magic, JSValueConst *func_data) -{ - bool is_reject = magic & 1; - JSAsyncGeneratorData *s = JS_GetOpaque(func_data[0], JS_CLASS_ASYNC_GENERATOR); - JSValueConst arg = argv[0]; - - /* XXX: what if s == NULL */ - - if (magic >= 2) { - /* resume next case in AWAITING_RETURN state */ - assert(s->state == JS_ASYNC_GENERATOR_STATE_AWAITING_RETURN || - s->state == JS_ASYNC_GENERATOR_STATE_COMPLETED); - s->state = JS_ASYNC_GENERATOR_STATE_COMPLETED; - if (is_reject) { - js_async_generator_reject(ctx, s, arg); - } else { - js_async_generator_resolve(ctx, s, arg, true); - } - } else { - /* restart function execution after await() */ - assert(s->state == JS_ASYNC_GENERATOR_STATE_EXECUTING); - s->func_state.throw_flag = is_reject; - if (is_reject) { - JS_Throw(ctx, js_dup(arg)); - } else { - /* return value of await */ - s->func_state.frame.cur_sp[-1] = js_dup(arg); - } - js_async_generator_resume_next(ctx, s); - } - return JS_UNDEFINED; -} - -/* magic = GEN_MAGIC_x */ -static JSValue js_async_generator_next(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, - int magic) -{ - JSAsyncGeneratorData *s = JS_GetOpaque(this_val, JS_CLASS_ASYNC_GENERATOR); - JSValue promise, resolving_funcs[2]; - JSAsyncGeneratorRequest *req; - - promise = JS_NewPromiseCapability(ctx, resolving_funcs); - if (JS_IsException(promise)) - return JS_EXCEPTION; - if (!s) { - JSValue err, res2; - JS_ThrowTypeError(ctx, "not an AsyncGenerator object"); - err = JS_GetException(ctx); - res2 = JS_Call(ctx, resolving_funcs[1], JS_UNDEFINED, - 1, vc(&err)); - JS_FreeValue(ctx, err); - JS_FreeValue(ctx, res2); - JS_FreeValue(ctx, resolving_funcs[0]); - JS_FreeValue(ctx, resolving_funcs[1]); - return promise; - } - req = js_mallocz(ctx, sizeof(*req)); - if (!req) - goto fail; - req->completion_type = magic; - req->result = js_dup(argv[0]); - req->promise = js_dup(promise); - req->resolving_funcs[0] = resolving_funcs[0]; - req->resolving_funcs[1] = resolving_funcs[1]; - list_add_tail(&req->link, &s->queue); - if (s->state != JS_ASYNC_GENERATOR_STATE_EXECUTING) { - js_async_generator_resume_next(ctx, s); - } - return promise; - fail: - JS_FreeValue(ctx, resolving_funcs[0]); - JS_FreeValue(ctx, resolving_funcs[1]); - JS_FreeValue(ctx, promise); - return JS_EXCEPTION; -} - -static JSValue js_async_generator_function_call(JSContext *ctx, - JSValueConst func_obj, - JSValueConst this_obj, - int argc, JSValueConst *argv, - int flags) -{ - JSValue obj, func_ret; - JSAsyncGeneratorData *s; - - s = js_mallocz(ctx, sizeof(*s)); - if (!s) - return JS_EXCEPTION; - s->state = JS_ASYNC_GENERATOR_STATE_SUSPENDED_START; - init_list_head(&s->queue); - if (async_func_init(ctx, &s->func_state, func_obj, this_obj, argc, argv)) { - s->state = JS_ASYNC_GENERATOR_STATE_COMPLETED; - goto fail; - } - - /* execute the function up to 'OP_initial_yield' (no yield nor - await are possible) */ - func_ret = async_func_resume(ctx, &s->func_state); - if (JS_IsException(func_ret)) - goto fail; - JS_FreeValue(ctx, func_ret); - - obj = js_create_from_ctor(ctx, func_obj, JS_CLASS_ASYNC_GENERATOR); - if (JS_IsException(obj)) - goto fail; - s->generator = JS_VALUE_GET_OBJ(obj); - JS_SetOpaqueInternal(obj, s); - return obj; - fail: - js_async_generator_free(ctx->rt, s); - return JS_EXCEPTION; -} - -/* JS parser */ - -enum { - TOK_NUMBER = -128, - TOK_STRING, - TOK_TEMPLATE, - TOK_IDENT, - TOK_REGEXP, - /* warning: order matters (see js_parse_assign_expr) */ - TOK_MUL_ASSIGN, - TOK_DIV_ASSIGN, - TOK_MOD_ASSIGN, - TOK_PLUS_ASSIGN, - TOK_MINUS_ASSIGN, - TOK_SHL_ASSIGN, - TOK_SAR_ASSIGN, - TOK_SHR_ASSIGN, - TOK_AND_ASSIGN, - TOK_XOR_ASSIGN, - TOK_OR_ASSIGN, - TOK_POW_ASSIGN, - TOK_LAND_ASSIGN, - TOK_LOR_ASSIGN, - TOK_DOUBLE_QUESTION_MARK_ASSIGN, - TOK_DEC, - TOK_INC, - TOK_SHL, - TOK_SAR, - TOK_SHR, - TOK_LT, - TOK_LTE, - TOK_GT, - TOK_GTE, - TOK_EQ, - TOK_STRICT_EQ, - TOK_NEQ, - TOK_STRICT_NEQ, - TOK_LAND, - TOK_LOR, - TOK_POW, - TOK_ARROW, - TOK_ELLIPSIS, - TOK_DOUBLE_QUESTION_MARK, - TOK_QUESTION_MARK_DOT, - TOK_ERROR, - TOK_PRIVATE_NAME, - TOK_EOF, - /* keywords: WARNING: same order as atoms */ - TOK_NULL, /* must be first */ - TOK_FALSE, - TOK_TRUE, - TOK_IF, - TOK_ELSE, - TOK_RETURN, - TOK_VAR, - TOK_THIS, - TOK_DELETE, - TOK_VOID, - TOK_TYPEOF, - TOK_NEW, - TOK_IN, - TOK_INSTANCEOF, - TOK_DO, - TOK_WHILE, - TOK_FOR, - TOK_BREAK, - TOK_CONTINUE, - TOK_SWITCH, - TOK_CASE, - TOK_DEFAULT, - TOK_THROW, - TOK_TRY, - TOK_CATCH, - TOK_FINALLY, - TOK_FUNCTION, - TOK_DEBUGGER, - TOK_WITH, - /* FutureReservedWord */ - TOK_CLASS, - TOK_CONST, - TOK_ENUM, - TOK_EXPORT, - TOK_EXTENDS, - TOK_IMPORT, - TOK_SUPER, - /* FutureReservedWords when parsing strict mode code */ - TOK_IMPLEMENTS, - TOK_INTERFACE, - TOK_LET, - TOK_PACKAGE, - TOK_PRIVATE, - TOK_PROTECTED, - TOK_PUBLIC, - TOK_STATIC, - TOK_YIELD, - TOK_AWAIT, /* must be last */ - TOK_OF, /* only used for js_parse_skip_parens_token() */ -}; - -#define TOK_FIRST_KEYWORD TOK_NULL -#define TOK_LAST_KEYWORD TOK_AWAIT - -/* unicode code points */ -#define CP_NBSP 0x00a0 -#define CP_BOM 0xfeff - -#define CP_LS 0x2028 -#define CP_PS 0x2029 - -typedef struct BlockEnv { - struct BlockEnv *prev; - JSAtom label_name; /* JS_ATOM_NULL if none */ - int label_break; /* -1 if none */ - int label_cont; /* -1 if none */ - int drop_count; /* number of stack elements to drop */ - int label_finally; /* -1 if none */ - int scope_level; - uint8_t has_iterator : 1; - uint8_t is_regular_stmt : 1; // i.e. not a loop statement -} BlockEnv; - -typedef struct JSGlobalVar { - int cpool_idx; /* if >= 0, index in the constant pool for hoisted - function defintion*/ - uint8_t force_init : 1; /* force initialization to undefined */ - uint8_t is_lexical : 1; /* global let/const definition */ - uint8_t is_const : 1; /* const definition */ - int scope_level; /* scope of definition */ - JSAtom var_name; /* variable name */ -} JSGlobalVar; - -typedef struct RelocEntry { - struct RelocEntry *next; - uint32_t addr; /* address to patch */ - int size; /* address size: 1, 2 or 4 bytes */ -} RelocEntry; - -typedef struct JumpSlot { - int op; - int size; - int pos; - int label; -} JumpSlot; - -typedef struct LabelSlot { - int ref_count; - int pos; /* phase 1 address, -1 means not resolved yet */ - int pos2; /* phase 2 address, -1 means not resolved yet */ - int addr; /* phase 3 address, -1 means not resolved yet */ - RelocEntry *first_reloc; -} LabelSlot; - -typedef struct SourceLocSlot { - uint32_t pc; - int line_num; - int col_num; -} SourceLocSlot; - -typedef enum JSParseFunctionEnum { - JS_PARSE_FUNC_STATEMENT, - JS_PARSE_FUNC_VAR, - JS_PARSE_FUNC_EXPR, - JS_PARSE_FUNC_ARROW, - JS_PARSE_FUNC_GETTER, - JS_PARSE_FUNC_SETTER, - JS_PARSE_FUNC_METHOD, - JS_PARSE_FUNC_CLASS_STATIC_INIT, - JS_PARSE_FUNC_CLASS_CONSTRUCTOR, - JS_PARSE_FUNC_DERIVED_CLASS_CONSTRUCTOR, -} JSParseFunctionEnum; - -typedef enum JSParseExportEnum { - JS_PARSE_EXPORT_NONE, - JS_PARSE_EXPORT_NAMED, - JS_PARSE_EXPORT_DEFAULT, -} JSParseExportEnum; - -typedef struct JSFunctionDef { - JSContext *ctx; - struct JSFunctionDef *parent; - int parent_cpool_idx; /* index in the constant pool of the parent - or -1 if none */ - int parent_scope_level; /* scope level in parent at point of definition */ - struct list_head child_list; /* list of JSFunctionDef.link */ - struct list_head link; - - int eval_type; /* only valid if is_eval = true */ - - /* Pack all boolean flags together as 1-bit fields to reduce struct size - while avoiding padding and compiler deoptimization. */ - bool is_eval : 1; /* true if eval code */ - bool is_global_var : 1; /* true if variables are not defined locally: - eval global, eval module or non strict eval */ - bool is_func_expr : 1; /* true if function expression */ - bool has_home_object : 1; /* true if the home object is available */ - bool has_prototype : 1; /* true if a prototype field is necessary */ - bool has_simple_parameter_list : 1; - bool has_parameter_expressions : 1; /* if true, an argument scope is created */ - bool has_use_strict : 1; /* to reject directive in special cases */ - bool has_eval_call : 1; /* true if the function contains a call to eval() */ - bool has_arguments_binding : 1; /* true if the 'arguments' binding is - available in the function */ - bool has_this_binding : 1; /* true if the 'this' and new.target binding are - available in the function */ - bool new_target_allowed : 1; /* true if the 'new.target' does not - throw a syntax error */ - bool super_call_allowed : 1; /* true if super() is allowed */ - bool super_allowed : 1; /* true if super. or super[] is allowed */ - bool arguments_allowed : 1; /* true if the 'arguments' identifier is allowed */ - bool is_derived_class_constructor : 1; - bool in_function_body : 1; - bool backtrace_barrier : 1; - bool need_home_object : 1; - bool use_short_opcodes : 1; /* true if short opcodes are used in byte_code */ - bool has_await : 1; /* true if await is used (used in module eval) */ - - JSFunctionKindEnum func_kind : 8; - JSParseFunctionEnum func_type : 7; - uint8_t is_strict_mode : 1; - JSAtom func_name; /* JS_ATOM_NULL if no name */ - - JSVarDef *vars; - uint32_t *vars_htab; // indexes into vars[] - int var_size; /* allocated size for vars[] */ - int var_count; - JSVarDef *args; - int arg_size; /* allocated size for args[] */ - int arg_count; /* number of arguments */ - int defined_arg_count; - int var_object_idx; /* -1 if none */ - int arg_var_object_idx; /* -1 if none (var object for the argument scope) */ - int arguments_var_idx; /* -1 if none */ - int arguments_arg_idx; /* argument variable definition in argument scope, - -1 if none */ - int func_var_idx; /* variable containing the current function (-1 - if none, only used if is_func_expr is true) */ - int eval_ret_idx; /* variable containing the return value of the eval, -1 if none */ - int this_var_idx; /* variable containg the 'this' value, -1 if none */ - int new_target_var_idx; /* variable containg the 'new.target' value, -1 if none */ - int this_active_func_var_idx; /* variable containg the 'this.active_func' value, -1 if none */ - int home_object_var_idx; - - int scope_level; /* index into fd->scopes if the current lexical scope */ - int scope_first; /* index into vd->vars of first lexically scoped variable */ - int scope_size; /* allocated size of fd->scopes array */ - int scope_count; /* number of entries used in the fd->scopes array */ - JSVarScope *scopes; - JSVarScope def_scope_array[4]; - int body_scope; /* scope of the body of the function or eval */ - - int global_var_count; - int global_var_size; - JSGlobalVar *global_vars; - - DynBuf byte_code; - int last_opcode_pos; /* -1 if no last opcode */ - - LabelSlot *label_slots; - int label_size; /* allocated size for label_slots[] */ - int label_count; - BlockEnv *top_break; /* break/continue label stack */ - - /* constant pool (strings, functions, numbers) */ - JSValue *cpool; - int cpool_count; - int cpool_size; - - /* list of variables in the closure */ - int closure_var_count; - int closure_var_size; - JSClosureVar *closure_var; - - JumpSlot *jump_slots; - int jump_size; - int jump_count; - - SourceLocSlot *source_loc_slots; - int source_loc_size; - int source_loc_count; - int line_number_last; - int line_number_last_pc; - int col_number_last; - - /* pc2line table */ - JSAtom filename; - int line_num; - int col_num; - DynBuf pc2line; - - char *source; /* raw source, utf-8 encoded */ - int source_len; - - JSModuleDef *module; /* != NULL when parsing a module */ -} JSFunctionDef; - -typedef struct JSToken { - int val; - int line_num; /* line number of token start */ - int col_num; /* column number of token start */ - const uint8_t *ptr; - union { - struct { - JSValue str; - int sep; - } str; - struct { - JSValue val; - } num; - struct { - JSAtom atom; - bool has_escape; - bool is_reserved; - } ident; - struct { - JSValue body; - JSValue flags; - } regexp; - } u; -} JSToken; - -typedef struct JSParseState { - JSContext *ctx; - int last_line_num; /* line number of last token */ - int last_col_num; /* column number of last token */ - int line_num; /* line number of current offset */ - int col_num; /* column number of current offset */ - const char *filename; - JSToken token; - bool got_lf; /* true if got line feed before the current token */ - const uint8_t *last_ptr; - const uint8_t *buf_start; - const uint8_t *buf_ptr; - const uint8_t *buf_end; - const uint8_t *eol; // most recently seen end-of-line character - const uint8_t *mark; // first token character, invariant: eol < mark - - /* current function code */ - JSFunctionDef *cur_func; - bool is_module; /* parsing a module */ - bool allow_html_comments; -} JSParseState; - -typedef struct JSOpCode { -#ifdef ENABLE_DUMPS // JS_DUMP_BYTECODE_* - const char *name; -#endif - uint8_t size; /* in bytes */ - /* the opcodes remove n_pop items from the top of the stack, then - pushes n_push items */ - uint8_t n_pop; - uint8_t n_push; - uint8_t fmt; -} JSOpCode; - -static const JSOpCode opcode_info[OP_COUNT + (OP_TEMP_END - OP_TEMP_START)] = { -#define FMT(f) -#ifdef ENABLE_DUMPS // JS_DUMP_BYTECODE_* -#define DEF(id, size, n_pop, n_push, f) { #id, size, n_pop, n_push, OP_FMT_ ## f }, -#else -#define DEF(id, size, n_pop, n_push, f) { size, n_pop, n_push, OP_FMT_ ## f }, -#endif -#include "quickjs-opcode.h" -#undef DEF -#undef FMT -}; - -/* After the final compilation pass, short opcodes are used. Their - opcodes overlap with the temporary opcodes which cannot appear in - the final bytecode. Their description is after the temporary - opcodes in opcode_info[]. */ -#define short_opcode_info(op) \ - opcode_info[(op) >= OP_TEMP_START ? \ - (op) + (OP_TEMP_END - OP_TEMP_START) : (op)] - -static void free_token(JSParseState *s, JSToken *token) -{ - switch(token->val) { - case TOK_NUMBER: - JS_FreeValue(s->ctx, token->u.num.val); - break; - case TOK_STRING: - case TOK_TEMPLATE: - JS_FreeValue(s->ctx, token->u.str.str); - break; - case TOK_REGEXP: - JS_FreeValue(s->ctx, token->u.regexp.body); - JS_FreeValue(s->ctx, token->u.regexp.flags); - break; - case TOK_IDENT: - case TOK_PRIVATE_NAME: - JS_FreeAtom(s->ctx, token->u.ident.atom); - break; - default: - if (token->val >= TOK_FIRST_KEYWORD && - token->val <= TOK_LAST_KEYWORD) { - JS_FreeAtom(s->ctx, token->u.ident.atom); - } - break; - } -} - -static void __attribute((unused)) dump_token(JSParseState *s, - const JSToken *token) -{ - printf("%d:%d ", token->line_num, token->col_num); - switch(token->val) { - case TOK_NUMBER: - { - double d; - JS_ToFloat64(s->ctx, &d, token->u.num.val); /* no exception possible */ - printf("number: %.14g\n", d); - } - break; - case TOK_IDENT: - dump_atom: - { - char buf[ATOM_GET_STR_BUF_SIZE]; - printf("ident: '%s'\n", - JS_AtomGetStr(s->ctx, buf, sizeof(buf), token->u.ident.atom)); - } - break; - case TOK_STRING: - { - const char *str; - /* XXX: quote the string */ - str = JS_ToCString(s->ctx, token->u.str.str); - printf("string: '%s'\n", str); - JS_FreeCString(s->ctx, str); - } - break; - case TOK_TEMPLATE: - { - const char *str; - str = JS_ToCString(s->ctx, token->u.str.str); - printf("template: `%s`\n", str); - JS_FreeCString(s->ctx, str); - } - break; - case TOK_REGEXP: - { - const char *str, *str2; - str = JS_ToCString(s->ctx, token->u.regexp.body); - str2 = JS_ToCString(s->ctx, token->u.regexp.flags); - printf("regexp: '%s' '%s'\n", str, str2); - JS_FreeCString(s->ctx, str); - JS_FreeCString(s->ctx, str2); - } - break; - case TOK_EOF: - printf("eof\n"); - break; - default: - if (s->token.val >= TOK_NULL && s->token.val <= TOK_LAST_KEYWORD) { - goto dump_atom; - } else if (s->token.val >= 256) { - printf("token: %d\n", token->val); - } else { - printf("token: '%c'\n", token->val); - } - break; - } -} - -int JS_PRINTF_FORMAT_ATTR(2, 3) js_parse_error(JSParseState *s, JS_PRINTF_FORMAT const char *fmt, ...) -{ - JSContext *ctx = s->ctx; - va_list ap; - int backtrace_flags; - - va_start(ap, fmt); - JS_ThrowError2(ctx, JS_SYNTAX_ERROR, false, fmt, ap); - va_end(ap); - backtrace_flags = 0; - if (s->cur_func && s->cur_func->backtrace_barrier) - backtrace_flags = JS_BACKTRACE_FLAG_SINGLE_LEVEL; - build_backtrace(ctx, ctx->rt->current_exception, JS_UNDEFINED, s->filename, - s->line_num, s->col_num, backtrace_flags); - return -1; -} - -#ifndef QJS_DISABLE_PARSER - -static __exception int next_token(JSParseState *s); - -static int js_parse_expect(JSParseState *s, int tok) -{ - char buf[ATOM_GET_STR_BUF_SIZE]; - - if (s->token.val == tok) - return next_token(s); - - switch(s->token.val) { - case TOK_EOF: - return js_parse_error(s, "Unexpected end of input"); - case TOK_NUMBER: - return js_parse_error(s, "Unexpected number"); - case TOK_STRING: - return js_parse_error(s, "Unexpected string"); - case TOK_TEMPLATE: - return js_parse_error(s, "Unexpected string template"); - case TOK_REGEXP: - return js_parse_error(s, "Unexpected regexp"); - case TOK_IDENT: - return js_parse_error(s, "Unexpected identifier '%s'", - JS_AtomGetStr(s->ctx, buf, sizeof(buf), - s->token.u.ident.atom)); - case TOK_ERROR: - return js_parse_error(s, "Invalid or unexpected token"); - default: - return js_parse_error(s, "Unexpected token '%.*s'", - (int)(s->buf_ptr - s->token.ptr), - (const char *)s->token.ptr); - } -} - -static int js_parse_expect_semi(JSParseState *s) -{ - if (s->token.val != ';') { - /* automatic insertion of ';' */ - if (s->token.val == TOK_EOF || s->token.val == '}' || s->got_lf) { - return 0; - } - return js_parse_error(s, "expecting '%c'", ';'); - } - return next_token(s); -} - -static int js_parse_error_reserved_identifier(JSParseState *s) -{ - char buf1[ATOM_GET_STR_BUF_SIZE]; - return js_parse_error(s, "'%s' is a reserved identifier", - JS_AtomGetStr(s->ctx, buf1, sizeof(buf1), - s->token.u.ident.atom)); -} - -static __exception int js_parse_template_part(JSParseState *s, - const uint8_t *p) -{ - const uint8_t *p_next; - uint32_t c; - StringBuffer b_s, *b = &b_s; - JSValue str; - - /* p points to the first byte of the template part */ - if (string_buffer_init(s->ctx, b, 32)) - goto fail; - for(;;) { - if (p >= s->buf_end) - goto unexpected_eof; - c = *p++; - if (c == '`') { - /* template end part */ - break; - } - if (c == '$' && *p == '{') { - /* template start or middle part */ - p++; - break; - } - if (c == '\\') { - if (string_buffer_putc8(b, c)) - goto fail; - if (p >= s->buf_end) - goto unexpected_eof; - c = *p++; - } - /* newline sequences are normalized as single '\n' bytes */ - if (c == '\r') { - if (*p == '\n') - p++; - c = '\n'; - } - if (c == '\n') { - s->line_num++; - s->eol = &p[-1]; - s->mark = p; - } else if (c >= 0x80) { - c = utf8_decode(p - 1, &p_next); - if (p_next == p) { - js_parse_error(s, "invalid UTF-8 sequence"); - goto fail; - } - p = p_next; - } - if (string_buffer_putc(b, c)) - goto fail; - } - str = string_buffer_end(b); - if (JS_IsException(str)) - return -1; - s->token.val = TOK_TEMPLATE; - s->token.u.str.sep = c; - s->token.u.str.str = str; - s->buf_ptr = p; - return 0; - - unexpected_eof: - js_parse_error(s, "unexpected end of string"); - fail: - string_buffer_free(b); - return -1; -} - -static __exception int js_parse_string(JSParseState *s, int sep, - bool do_throw, const uint8_t *p, - JSToken *token, const uint8_t **pp) -{ - const uint8_t *p_next; - int ret; - uint32_t c; - StringBuffer b_s, *b = &b_s; - JSValue str; - - /* string */ - if (string_buffer_init(s->ctx, b, 32)) - goto fail; - for(;;) { - if (p >= s->buf_end) - goto invalid_char; - c = *p; - if (c < 0x20) { - if (sep == '`') { - if (c == '\r') { - if (p[1] == '\n') - p++; - c = '\n'; - } - /* do not update s->line_num */ - } else if (c == '\n' || c == '\r') - goto invalid_char; - } - p++; - if (c == sep) - break; - if (c == '$' && *p == '{' && sep == '`') { - /* template start or middle part */ - p++; - break; - } - if (c == '\\') { - c = *p; - switch(c) { - case '\0': - if (p >= s->buf_end) { - if (sep != '`') - goto invalid_char; - if (do_throw) - js_parse_error(s, "Unexpected end of input"); - goto fail; - } - p++; - break; - case '\'': - case '\"': - case '\\': - p++; - break; - case '\r': /* accept DOS and MAC newline sequences */ - if (p[1] == '\n') { - p++; - } - /* fall thru */ - case '\n': - /* ignore escaped newline sequence */ - p++; - if (sep != '`') { - s->line_num++; - s->eol = &p[-1]; - s->mark = p; - } - continue; - default: - if (c == '0' && !(p[1] >= '0' && p[1] <= '9')) { - /* accept isolated \0 */ - p++; - c = '\0'; - } else - if ((c >= '0' && c <= '9') - && (s->cur_func->is_strict_mode || sep == '`')) { - if (do_throw) { - js_parse_error(s, "%s are not allowed in %s", - (c >= '8') ? "\\8 and \\9" : "Octal escape sequences", - (sep == '`') ? "template strings" : "strict mode"); - } - goto fail; - } else if (c >= 0x80) { - c = utf8_decode(p, &p_next); - if (p_next == p + 1) { - goto invalid_utf8; - } - p = p_next; - /* LS or PS are skipped */ - if (c == CP_LS || c == CP_PS) - continue; - } else { - ret = lre_parse_escape(&p, true); - if (ret == -1) { - if (do_throw) { - js_parse_error(s, "Invalid %s escape sequence", - c == 'u' ? "Unicode" : "hexadecimal"); - } - goto fail; - } else if (ret < 0) { - /* ignore the '\' (could output a warning) */ - p++; - } else { - c = ret; - } - } - break; - } - } else if (c >= 0x80) { - c = utf8_decode(p - 1, &p_next); - if (p_next == p) - goto invalid_utf8; - p = p_next; - } - if (string_buffer_putc(b, c)) - goto fail; - } - str = string_buffer_end(b); - if (JS_IsException(str)) - return -1; - token->val = TOK_STRING; - token->u.str.sep = c; - token->u.str.str = str; - *pp = p; - return 0; - - invalid_utf8: - if (do_throw) - js_parse_error(s, "invalid UTF-8 sequence"); - goto fail; - invalid_char: - if (do_throw) - js_parse_error(s, "unexpected end of string"); - fail: - string_buffer_free(b); - return -1; -} - -static inline bool token_is_pseudo_keyword(JSParseState *s, JSAtom atom) { - return s->token.val == TOK_IDENT && s->token.u.ident.atom == atom && - !s->token.u.ident.has_escape; -} - -static __exception int js_parse_regexp(JSParseState *s) -{ - const uint8_t *p, *p_next; - bool in_class; - StringBuffer b_s, *b = &b_s; - StringBuffer b2_s, *b2 = &b2_s; - uint32_t c; - JSValue body_str, flags_str; - - p = s->buf_ptr; - p++; - in_class = false; - if (string_buffer_init(s->ctx, b, 32)) - return -1; - if (string_buffer_init(s->ctx, b2, 1)) - goto fail; - for(;;) { - if (p >= s->buf_end) { - eof_error: - js_parse_error(s, "unexpected end of regexp"); - goto fail; - } - c = *p++; - if (c == '\n' || c == '\r') { - goto eol_error; - } else if (c == '/') { - if (!in_class) - break; - } else if (c == '[') { - in_class = true; - } else if (c == ']') { - /* XXX: incorrect as the first character in a class */ - in_class = false; - } else if (c == '\\') { - if (string_buffer_putc8(b, c)) - goto fail; - c = *p++; - if (c == '\n' || c == '\r') - goto eol_error; - else if (c == '\0' && p >= s->buf_end) - goto eof_error; - else if (c >= 0x80) { - c = utf8_decode(p - 1, &p_next); - if (p_next == p) { - goto invalid_utf8; - } - p = p_next; - if (c == CP_LS || c == CP_PS) - goto eol_error; - } - } else if (c >= 0x80) { - c = utf8_decode(p - 1, &p_next); - if (p_next == p) { - invalid_utf8: - js_parse_error(s, "invalid UTF-8 sequence"); - goto fail; - } - p = p_next; - /* LS or PS are considered as line terminator */ - if (c == CP_LS || c == CP_PS) { - eol_error: - js_parse_error(s, "unexpected line terminator in regexp"); - goto fail; - } - } - if (string_buffer_putc(b, c)) - goto fail; - } - - /* flags */ - for(;;) { - c = utf8_decode(p, &p_next); - /* no need to test for invalid UTF-8, 0xFFFD is not ident_next */ - if (!lre_js_is_ident_next(c)) - break; - if (string_buffer_putc(b2, c)) - goto fail; - p = p_next; - } - - body_str = string_buffer_end(b); - flags_str = string_buffer_end(b2); - if (JS_IsException(body_str) || - JS_IsException(flags_str)) { - JS_FreeValue(s->ctx, body_str); - JS_FreeValue(s->ctx, flags_str); - return -1; - } - s->token.val = TOK_REGEXP; - s->token.u.regexp.body = body_str; - s->token.u.regexp.flags = flags_str; - s->buf_ptr = p; - return 0; - fail: - string_buffer_free(b); - string_buffer_free(b2); - return -1; -} - -#endif // QJS_DISABLE_PARSER - -static __exception int ident_realloc(JSContext *ctx, char **pbuf, size_t *psize, - char *static_buf) -{ - char *buf, *new_buf; - size_t size, new_size; - - buf = *pbuf; - size = *psize; - if (size >= (SIZE_MAX / 3) * 2) - new_size = SIZE_MAX; - else - new_size = size + (size >> 1); - if (buf == static_buf) { - new_buf = js_malloc(ctx, new_size); - if (!new_buf) - return -1; - memcpy(new_buf, buf, size); - } else { - new_buf = js_realloc(ctx, buf, new_size); - if (!new_buf) - return -1; - } - *pbuf = new_buf; - *psize = new_size; - return 0; -} - -#ifndef QJS_DISABLE_PARSER - -/* convert a TOK_IDENT to a keyword when needed */ -static void update_token_ident(JSParseState *s) -{ - if (s->token.u.ident.atom <= JS_ATOM_LAST_KEYWORD || - (s->token.u.ident.atom <= JS_ATOM_LAST_STRICT_KEYWORD && - s->cur_func->is_strict_mode) || - (s->token.u.ident.atom == JS_ATOM_yield && - ((s->cur_func->func_kind & JS_FUNC_GENERATOR) || - (s->cur_func->func_type == JS_PARSE_FUNC_ARROW && - !s->cur_func->in_function_body && s->cur_func->parent && - (s->cur_func->parent->func_kind & JS_FUNC_GENERATOR)))) || - (s->token.u.ident.atom == JS_ATOM_await && - (s->is_module || - (s->cur_func->func_kind & JS_FUNC_ASYNC) || - s->cur_func->func_type == JS_PARSE_FUNC_CLASS_STATIC_INIT || - (s->cur_func->func_type == JS_PARSE_FUNC_ARROW && - !s->cur_func->in_function_body && s->cur_func->parent && - ((s->cur_func->parent->func_kind & JS_FUNC_ASYNC) || - s->cur_func->parent->func_type == JS_PARSE_FUNC_CLASS_STATIC_INIT))))) { - if (s->token.u.ident.has_escape) { - s->token.u.ident.is_reserved = true; - s->token.val = TOK_IDENT; - } else { - /* The keywords atoms are pre allocated */ - s->token.val = s->token.u.ident.atom - 1 + TOK_FIRST_KEYWORD; - } - } -} - -/* if the current token is an identifier or keyword, reparse it - according to the current function type */ -static void reparse_ident_token(JSParseState *s) -{ - if (s->token.val == TOK_IDENT || - (s->token.val >= TOK_FIRST_KEYWORD && - s->token.val <= TOK_LAST_KEYWORD)) { - s->token.val = TOK_IDENT; - s->token.u.ident.is_reserved = false; - update_token_ident(s); - } -} - -/* 'c' is the first character. Return JS_ATOM_NULL in case of error */ -static JSAtom parse_ident(JSParseState *s, const uint8_t **pp, - bool *pident_has_escape, int c, bool is_private) -{ - const uint8_t *p, *p_next; - char ident_buf[128], *buf; - size_t ident_size, ident_pos; - JSAtom atom = JS_ATOM_NULL; - - p = *pp; - buf = ident_buf; - ident_size = sizeof(ident_buf); - ident_pos = 0; - if (is_private) - buf[ident_pos++] = '#'; - for(;;) { - if (c < 0x80) { - buf[ident_pos++] = c; - } else { - ident_pos += utf8_encode((uint8_t*)buf + ident_pos, c); - } - c = *p; - p_next = p + 1; - if (c == '\\' && *p_next == 'u') { - c = lre_parse_escape(&p_next, true); - *pident_has_escape = true; - } else if (c >= 0x80) { - c = utf8_decode(p, &p_next); - /* no need to test for invalid UTF-8, 0xFFFD is not ident_next */ - } - if (!lre_js_is_ident_next(c)) - break; - p = p_next; - if (unlikely(ident_pos >= ident_size - UTF8_CHAR_LEN_MAX)) { - if (ident_realloc(s->ctx, &buf, &ident_size, ident_buf)) - goto done; - } - } - /* buf is pure ASCII or UTF-8 encoded */ - atom = JS_NewAtomLen(s->ctx, buf, ident_pos); - done: - if (unlikely(buf != ident_buf)) - js_free(s->ctx, buf); - *pp = p; - return atom; -} - - -static __exception int next_token(JSParseState *s) -{ - const uint8_t *p, *p_next; - int c; - bool ident_has_escape; - JSAtom atom; - - if (js_check_stack_overflow(s->ctx->rt, 1000)) { - JS_ThrowStackOverflow(s->ctx); - return -1; - } - - free_token(s, &s->token); - - p = s->last_ptr = s->buf_ptr; - s->got_lf = false; - s->last_line_num = s->token.line_num; - s->last_col_num = s->token.col_num; - redo: - s->token.line_num = s->line_num; - s->token.col_num = s->col_num; - s->token.ptr = p; - c = *p; - switch(c) { - case 0: - if (p >= s->buf_end) { - s->token.val = TOK_EOF; - } else { - goto def_token; - } - break; - case '`': - if (js_parse_template_part(s, p + 1)) - goto fail; - p = s->buf_ptr; - break; - case '\'': - case '\"': - if (js_parse_string(s, c, true, p + 1, &s->token, &p)) - goto fail; - break; - case '\r': /* accept DOS and MAC newline sequences */ - if (p[1] == '\n') { - p++; - } - /* fall thru */ - case '\n': - p++; - line_terminator: - s->eol = &p[-1]; - s->mark = p; - s->got_lf = true; - s->line_num++; - goto redo; - case '\f': - case '\v': - case ' ': - case '\t': - s->mark = ++p; - goto redo; - case '/': - if (p[1] == '*') { - /* comment */ - p += 2; - for(;;) { - if (*p == '\0' && p >= s->buf_end) { - js_parse_error(s, "unexpected end of comment"); - goto fail; - } - if (p[0] == '*' && p[1] == '/') { - p += 2; - break; - } - if (*p == '\n') { - s->line_num++; - s->got_lf = true; /* considered as LF for ASI */ - s->eol = p++; - s->mark = p; - } else if (*p == '\r') { - s->got_lf = true; /* considered as LF for ASI */ - p++; - } else if (*p >= 0x80) { - c = utf8_decode(p, &p); - /* ignore invalid UTF-8 in comments */ - if (c == CP_LS || c == CP_PS) { - s->got_lf = true; /* considered as LF for ASI */ - } - } else { - p++; - } - } - s->mark = p; - goto redo; - } else if (p[1] == '/') { - /* line comment */ - p += 2; - skip_line_comment: - for(;;) { - if (*p == '\0' && p >= s->buf_end) - break; - if (*p == '\r' || *p == '\n') - break; - if (*p >= 0x80) { - c = utf8_decode(p, &p); - /* ignore invalid UTF-8 in comments */ - /* LS or PS are considered as line terminator */ - if (c == CP_LS || c == CP_PS) { - break; - } - } else { - p++; - } - } - s->mark = p; - goto redo; - } else if (p[1] == '=') { - p += 2; - s->token.val = TOK_DIV_ASSIGN; - } else { - p++; - s->token.val = c; - } - break; - case '\\': - if (p[1] == 'u') { - const uint8_t *p1 = p + 1; - int c1 = lre_parse_escape(&p1, true); - if (c1 >= 0 && lre_js_is_ident_first(c1)) { - c = c1; - p = p1; - ident_has_escape = true; - goto has_ident; - } else { - /* XXX: syntax error? */ - } - } - goto def_token; - case 'a': case 'b': case 'c': case 'd': - case 'e': case 'f': case 'g': case 'h': - case 'i': case 'j': case 'k': case 'l': - case 'm': case 'n': case 'o': case 'p': - case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': - case 'y': case 'z': - case 'A': case 'B': case 'C': case 'D': - case 'E': case 'F': case 'G': case 'H': - case 'I': case 'J': case 'K': case 'L': - case 'M': case 'N': case 'O': case 'P': - case 'Q': case 'R': case 'S': case 'T': - case 'U': case 'V': case 'W': case 'X': - case 'Y': case 'Z': - case '_': - case '$': - /* identifier */ - s->mark = p; - p++; - ident_has_escape = false; - has_ident: - atom = parse_ident(s, &p, &ident_has_escape, c, false); - if (atom == JS_ATOM_NULL) - goto fail; - s->token.u.ident.atom = atom; - s->token.u.ident.has_escape = ident_has_escape; - s->token.u.ident.is_reserved = false; - s->token.val = TOK_IDENT; - update_token_ident(s); - break; - case '#': - /* private name */ - { - p++; - c = *p; - p_next = p + 1; - if (c == '\\' && *p_next == 'u') { - c = lre_parse_escape(&p_next, true); - } else if (c >= 0x80) { - c = utf8_decode(p, &p_next); - if (p_next == p + 1) - goto invalid_utf8; - } - if (!lre_js_is_ident_first(c)) { - js_parse_error(s, "invalid first character of private name"); - goto fail; - } - p = p_next; - ident_has_escape = false; /* not used */ - atom = parse_ident(s, &p, &ident_has_escape, c, true); - if (atom == JS_ATOM_NULL) - goto fail; - s->token.u.ident.atom = atom; - s->token.val = TOK_PRIVATE_NAME; - } - break; - case '.': - if (p[1] == '.' && p[2] == '.') { - p += 3; - s->token.val = TOK_ELLIPSIS; - break; - } - if (p[1] >= '0' && p[1] <= '9') { - goto parse_number; - } else { - goto def_token; - } - break; - case '0': - /* in strict mode, octal literals are not accepted */ - if (is_digit(p[1]) && (s->cur_func->is_strict_mode)) { - js_parse_error(s, "Octal literals are not allowed in strict mode"); - goto fail; - } - goto parse_number; - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': - case '9': - /* number */ - parse_number: - { - JSValue ret; - const uint8_t *p1; - int flags; - flags = ATOD_ACCEPT_BIN_OCT | ATOD_ACCEPT_LEGACY_OCTAL | - ATOD_ACCEPT_UNDERSCORES | ATOD_ACCEPT_SUFFIX; - ret = js_atof(s->ctx, (const char *)p, (const char **)&p, 0, - flags); - if (JS_IsException(ret)) - goto fail; - /* reject `10instanceof Number` */ - if (JS_VALUE_IS_NAN(ret) || - lre_js_is_ident_next(utf8_decode(p, &p1))) { - JS_FreeValue(s->ctx, ret); - js_parse_error(s, "invalid number literal"); - goto fail; - } - s->token.val = TOK_NUMBER; - s->token.u.num.val = ret; - } - break; - case '*': - if (p[1] == '=') { - p += 2; - s->token.val = TOK_MUL_ASSIGN; - } else if (p[1] == '*') { - if (p[2] == '=') { - p += 3; - s->token.val = TOK_POW_ASSIGN; - } else { - p += 2; - s->token.val = TOK_POW; - } - } else { - goto def_token; - } - break; - case '%': - if (p[1] == '=') { - p += 2; - s->token.val = TOK_MOD_ASSIGN; - } else { - goto def_token; - } - break; - case '+': - if (p[1] == '=') { - p += 2; - s->token.val = TOK_PLUS_ASSIGN; - } else if (p[1] == '+') { - p += 2; - s->token.val = TOK_INC; - } else { - goto def_token; - } - break; - case '-': - if (p[1] == '=') { - p += 2; - s->token.val = TOK_MINUS_ASSIGN; - } else if (p[1] == '-') { - if (s->allow_html_comments && p[2] == '>' && - (s->got_lf || s->last_ptr == s->buf_start)) { - /* Annex B: `-->` at beginning of line is an html comment end. - It extends to the end of the line. - */ - goto skip_line_comment; - } - p += 2; - s->token.val = TOK_DEC; - } else { - goto def_token; - } - break; - case '<': - if (p[1] == '=') { - p += 2; - s->token.val = TOK_LTE; - } else if (p[1] == '<') { - if (p[2] == '=') { - p += 3; - s->token.val = TOK_SHL_ASSIGN; - } else { - p += 2; - s->token.val = TOK_SHL; - } - } else if (s->allow_html_comments && - p[1] == '!' && p[2] == '-' && p[3] == '-') { - /* Annex B: handle `s}<@Q*n{0v2JG891Z*#mA*$$f%%H}W8d%{ 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 diff --git a/platforms/android/tools/bytecode-compiler/bin/quickjs-ng/win32-x64/nsbc-quickjs-ng.exe b/platforms/android/tools/bytecode-compiler/bin/quickjs-ng/win32-x64/nsbc-quickjs-ng.exe index eba600ee5..5eb5a6cb7 100644 --- a/platforms/android/tools/bytecode-compiler/bin/quickjs-ng/win32-x64/nsbc-quickjs-ng.exe +++ b/platforms/android/tools/bytecode-compiler/bin/quickjs-ng/win32-x64/nsbc-quickjs-ng.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:834d7f03640141f65697454ad65bd84012fd68c7583684087c9137001834519e -size 966656 +oid sha256:90ad8876759a850297e98dbc49622b8eda1345d9aa14a14e439ac12e23acd284 +size 967168 From cbc0e702f284c489069c6cd2e5d38e4622077fcb Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 13 Sep 2026 13:34:46 +0500 Subject: [PATCH 62/98] fix(android): ensure metadata-filter tools are included in app template --- platforms/android/build.gradle | 9 +++++++++ scripts/build_react_native_turbomodule.sh | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/platforms/android/build.gradle b/platforms/android/build.gradle index e71babf3f..d2eab1953 100644 --- a/platforms/android/build.gradle +++ b/platforms/android/build.gradle @@ -315,6 +315,15 @@ task copyFilesToProjectTemeplate { from "$BUILD_TOOLS_PATH/jsparser/build/js_parser.js" into "$DIST_FRAMEWORK_PATH/build-tools/jsparser" } + // Metadata filtering runs from the generated project template. Ship + // the scripts with the template, but not their development/runtime + // dependencies: seed.js invokes the sibling harvest.js and resolves + // Babel from the consuming app's node_modules. + copy { + from "$BUILD_TOOLS_PATH/metadata-filter" + include "*.js" + into "$DIST_FRAMEWORK_PATH/build-tools/metadata-filter" + } copy { from "$BUILD_TOOLS_PATH/android-metadata-generator/build/libs/android-metadata-generator.jar" into "$DIST_FRAMEWORK_PATH/build-tools" diff --git a/scripts/build_react_native_turbomodule.sh b/scripts/build_react_native_turbomodule.sh index 3e88de33b..5e604df80 100755 --- a/scripts/build_react_native_turbomodule.sh +++ b/scripts/build_react_native_turbomodule.sh @@ -262,6 +262,8 @@ for jar in android-metadata-generator dts-generator static-binding-generator; do [ -f "$PACKAGE_DIR/android/tools/$jar.jar" ] || missing+=("android/tools/$jar.jar (scripts/build_react_native_android_tools.sh)") done [ -d "$PACKAGE_DIR/android/tools/jsparser" ] || missing+=("android/tools/jsparser (scripts/build_react_native_android_tools.sh)") +[ -f "$PACKAGE_DIR/android/tools/metadata-filter/seed.js" ] || missing+=("android/tools/metadata-filter/seed.js (scripts/build_react_native_android_tools.sh)") +[ -f "$PACKAGE_DIR/android/tools/metadata-filter/harvest.js" ] || missing+=("android/tools/metadata-filter/harvest.js (scripts/build_react_native_android_tools.sh)") if [ ${#missing[@]} -gt 0 ]; then echo "error: the Android half of @nativescript/react-native is not staged; refusing to pack:" >&2 @@ -282,6 +284,8 @@ tarball=$(find "$OUTPUT_DIR" -name '*.tgz' | head -1) for required in package/android/tools/static-binding-generator.jar \ package/android/src/main/java-runtime \ package/android/nativescript.gradle \ + package/android/tools/metadata-filter/seed.js \ + package/android/tools/metadata-filter/harvest.js \ package/native-api/runtime/android \ package/native-api/ffi/jni \ package/native-api/ffi/objc \ From 3541fb41f74c4378c701b8006235fdb66dd68ab9 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 13 Sep 2026 13:37:56 +0500 Subject: [PATCH 63/98] Optimize metadata-first JNI method resolution --- .../callbackhandlers/CallbackHandlers.cpp | 32 +++++- .../napi/callbackhandlers/CallbackHandlers.h | 5 +- .../ffi/jni/napi/metadata/MetadataNode.cpp | 97 +++++++++++++++++-- 3 files changed, 123 insertions(+), 11 deletions(-) diff --git a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp index 2196eae34..93d4a6312 100644 --- a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp @@ -71,7 +71,8 @@ void CallbackHandlers::Init(napi_env env) { napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, const string &className, const string &methodName, MetadataEntry *entry, bool isFromInterface, bool isStatic, napi_callback_info info, size_t argc, napi_value* argv, - ObjectManager *objectManager) { + ObjectManager *objectManager, + bool metadataSignatureIsUnambiguous) { JEnv jEnv; jclass clazz; @@ -83,7 +84,29 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con bool isSuper = false; napi_status status; - if ((entry != nullptr) && entry->getIsResolved()) { + if (metadataSignatureIsUnambiguous && entry != nullptr && entry->memberId == nullptr) { + JEnv metadataEnv; + auto metadataClass = metadataEnv.FindClass(className); + if (metadataClass != nullptr) { + auto metadataMethod = isStatic + ? metadataEnv.GetStaticMethodID(metadataClass, methodName, + entry->getSig()) + : metadataEnv.GetMethodID(metadataClass, methodName, + entry->getSig()); + if (metadataMethod != nullptr) { + entry->memberId = reinterpret_cast(metadataMethod); + entry->clazz = metadataClass; + } else { + metadataEnv.ExceptionClear(); + metadataSignatureIsUnambiguous = false; + } + } else { + metadataEnv.ExceptionClear(); + metadataSignatureIsUnambiguous = false; + } + } + + if ((entry != nullptr) && (entry->getIsResolved() || metadataSignatureIsUnambiguous)) { auto &entrySignature = entry->getSig(); isStatic = entry->isStatic; @@ -188,6 +211,7 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con retType = mi.retType; } + if (!isStatic) { DEBUG_WRITE("CallJavaMethod on instance %s", methodName.c_str()); } else { @@ -206,6 +230,7 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con : JsArgConverter(env, argv, argc, false, *sig, entry, (JNIEnv *) jEnv, objectManager); + if (!argConverter.IsValid()) { JsArgConverter::Error err = argConverter.GetError(); throw NativeScriptException(err.msg); @@ -215,6 +240,7 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con jvalue *javaArgs = argConverter.ToArgs(); + if (!isStatic) { int objectId = -1; @@ -236,6 +262,7 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con } } + napi_value returnValue; switch (retType) { @@ -516,6 +543,7 @@ bool CallbackHandlers::RegisterInstance(napi_env env, napi_value jsObject, fullClassName.c_str()); } + return success; } diff --git a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h index 4d5ea94db..274bba27e 100644 --- a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h +++ b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.h @@ -59,7 +59,8 @@ namespace tns { CallJavaMethod(napi_env env, napi_value caller, const std::string &className, const std::string &methodName, MetadataEntry *entry, bool isFromInterface, bool isStatic, napi_callback_info info, size_t argc, napi_value* argv, - ObjectManager *objectManager = nullptr); + ObjectManager *objectManager = nullptr, + bool metadataSignatureIsUnambiguous = false); static napi_value CallJSMethod(napi_env env, JNIEnv *jEnv, napi_value jsObject,jclass claz, @@ -390,4 +391,4 @@ namespace tns { }; } -#endif /* CALLBACKHANDLERS_H_ */ \ No newline at end of file +#endif /* CALLBACKHANDLERS_H_ */ diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index d3b559276..ad40cb20e 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -2361,7 +2361,6 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i NAPI_GUARD(napi_get_value_bool(env, argv[2], &isTypeScriptExtend)) {} }; } - auto node = reinterpret_cast(data); auto useContentKey = false; @@ -2397,7 +2396,6 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i return nullptr; } } - string baseClassName = node->m_name; // An explicitly named extend keeps its name in front of the hash. The @@ -2414,12 +2412,13 @@ napi_value MetadataNode::ExtendMethodCallback(napi_env env, napi_callback_info i string extendNameAndLocation; if (useContentKey) { + auto interfaceNames = CallbackHandlers::CollectImplementedInterfaceNames( + env, implementationObject); + auto methodNames = CallbackHandlers::CollectMethodOverrideNames( + env, implementationObject, /* functionsOnly */ false); string contentKey = CreateContentKey(baseClassName, - CallbackHandlers::CollectImplementedInterfaceNames( - env, implementationObject), - CallbackHandlers::CollectMethodOverrideNames( - env, implementationObject, /* functionsOnly */ false)); + interfaceNames, methodNames); extendNameAndLocation = extendNameString.empty() ? contentKey : extendNameString + "_" + contentKey; } else { @@ -2699,9 +2698,93 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { initialCallbackData->objectManager = Runtime::GetRuntime(env)->GetObjectManager(); } + + size_t metadataMatches = 0; + MetadataEntry *metadataMatch = nullptr; + bool metadataSignatureIsUnambiguous = false; + auto metadataTypesMatch = [&](MetadataEntry &candidate) { + const auto signature = candidate.getSig(); + if (signature.empty() || signature[0] != '(') { + return false; + } + + std::vector parameterTypes; + size_t index = 1; + while (index < signature.size() && signature[index] != ')') { + const size_t start = index; + if (signature[index] == 'L') { + const auto end = signature.find(';', index); + if (end == std::string::npos) return false; + index = end + 1; + } else if (signature[index] == '[') { + index++; + if (index < signature.size() && signature[index] == 'L') { + const auto end = signature.find(';', index); + if (end == std::string::npos) return false; + index = end + 1; + } else { + index++; + } + } else { + index++; + } + parameterTypes.emplace_back(signature.substr(start, index - start)); + } + + if (parameterTypes.size() != argc) return false; + + JEnv metadataEnv; + for (size_t i = 0; i < argc; i++) { + const auto ¶meterType = parameterTypes[i]; + napi_valuetype valueType; + napi_typeof(env, argv[i], &valueType); + if (parameterType[0] == 'L' || parameterType[0] == '[') { + if (valueType != napi_object && valueType != napi_function) return false; + auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(argv[i]); + if (actualObject.IsNull()) return false; + auto expectedName = parameterType; + if (expectedName[0] == 'L') { + expectedName = expectedName.substr(1, expectedName.size() - 2); + } + auto expectedClass = metadataEnv.FindClass(expectedName); + if (expectedClass == nullptr) { + metadataEnv.ExceptionClear(); + return false; + } + if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + } else if (parameterType[0] == 'Z') { + if (valueType != napi_boolean) return false; + } else if (valueType != napi_number) { + return false; + } + } + return true; + }; + if (argc > 0 && methodName.rfind("get", 0) != 0 && + !first.isStatic && !metadataSignatureIsUnambiguous) { + for (auto *candidateData = initialCallbackData; + candidateData != nullptr; + candidateData = candidateData->parent) { + for (auto &candidate : candidateData->candidates) { + if (!candidate.isExtensionFunction && + candidate.isStatic == first.isStatic && + candidate.getParamCount() == argc && + metadataTypesMatch(candidate)) { + metadataMatches++; + metadataMatch = &candidate; + } + } + } + metadataSignatureIsUnambiguous = metadataMatches == 1 && + metadataMatch != nullptr; + } + if (metadataSignatureIsUnambiguous) { + entry = metadataMatch; + } napi_value result = CallbackHandlers::CallJavaMethod(env, jsThis, *className, methodName, entry, isFromInterface, first.isStatic, info, - argc, argv, initialCallbackData->objectManager); + argc, argv, initialCallbackData->objectManager, + metadataSignatureIsUnambiguous); // napi_value error; // error = Runtime::GetRuntime(env)->getPendingError(); // if (error) { From dba263954ad6fdebffd2e9f7cd9e2c81e3cad855 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 14 Sep 2026 11:58:41 +0500 Subject: [PATCH 64/98] Use metadata-first resolution for Kotlin methods --- NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp | 4 ++-- .../src/src/com/telerik/metadata/Builder.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index ad40cb20e..4791a76cd 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -2760,14 +2760,14 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { } return true; }; - if (argc > 0 && methodName.rfind("get", 0) != 0 && - !first.isStatic && !metadataSignatureIsUnambiguous) { + if (!first.isStatic && !metadataSignatureIsUnambiguous) { for (auto *candidateData = initialCallbackData; candidateData != nullptr; candidateData = candidateData->parent) { for (auto &candidate : candidateData->candidates) { if (!candidate.isExtensionFunction && candidate.isStatic == first.isStatic && + candidate.getIsResolved() && candidate.getParamCount() == argc && metadataTypesMatch(candidate)) { metadataMatches++; diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java index 0922b2a40..3638a4ab3 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/Builder.java @@ -454,7 +454,7 @@ private static void setMethodsInfo(TreeNode root, TreeNode node, NativeClassDesc } } } - mi.isResolved = countUnique == 1; + mi.isResolved = countUnique == 1 || clazz instanceof KotlinClassDescriptor; NativeTypeDescriptor[] params = ownMethod.getArgumentTypes(); From 6b0c6be8c309f22ffd91ea165f01ac0233e71f36 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Thu, 17 Sep 2026 08:51:59 +0500 Subject: [PATCH 65/98] Port metadata lookup optimization to JSI --- .../jsi/callbackhandlers/CallbackHandlers.cpp | 27 +++++- .../jsi/callbackhandlers/CallbackHandlers.h | 3 +- .../ffi/jni/jsi/metadata/MetadataNode.cpp | 88 ++++++++++++++++++- 3 files changed, 114 insertions(+), 4 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp index a85648118..1cbbbba18 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp @@ -102,7 +102,8 @@ JsValue CallbackHandlers::CallJavaMethod(JsRuntime &rt, const JsValue &caller, c const string &methodName, MetadataEntry *entry, bool isFromInterface, bool isStatic, bool isConstructorCall, const JsValue *argv, size_t argc, - ObjectManager *objectManager) { + ObjectManager *objectManager, + bool metadataSignatureIsUnambiguous) { JEnv jEnv; jclass clazz; @@ -113,7 +114,29 @@ JsValue CallbackHandlers::CallJavaMethod(JsRuntime &rt, const JsValue &caller, c MethodCache::CacheMethodInfo mi; bool isSuper = false; - if ((entry != nullptr) && entry->getIsResolved()) { + if (metadataSignatureIsUnambiguous && entry != nullptr && entry->memberId == nullptr) { + JEnv metadataEnv; + auto metadataClass = metadataEnv.FindClass(className); + if (metadataClass != nullptr) { + auto metadataMethod = isStatic + ? metadataEnv.GetStaticMethodID(metadataClass, methodName, + entry->getSig()) + : metadataEnv.GetMethodID(metadataClass, methodName, + entry->getSig()); + if (metadataMethod != nullptr) { + entry->memberId = reinterpret_cast(metadataMethod); + entry->clazz = metadataClass; + } else { + metadataEnv.ExceptionClear(); + metadataSignatureIsUnambiguous = false; + } + } else { + metadataEnv.ExceptionClear(); + metadataSignatureIsUnambiguous = false; + } + } + + if ((entry != nullptr) && (entry->getIsResolved() || metadataSignatureIsUnambiguous)) { auto &entrySignature = entry->getSig(); isStatic = entry->isStatic; diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h index 173119af9..628dd1d28 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.h @@ -63,7 +63,8 @@ namespace tns { CallJavaMethod(JsRuntime &rt, const JsValue &caller, const std::string &className, const std::string &methodName, MetadataEntry *entry, bool isFromInterface, bool isStatic, bool isConstructorCall, const JsValue *argv, size_t argc, - ObjectManager *objectManager = nullptr); + ObjectManager *objectManager = nullptr, + bool metadataSignatureIsUnambiguous = false); static JsValue CallJSMethod(JsRuntime &rt, JNIEnv *jEnv, const JsValue &jsObject, jclass claz, diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 0596dda34..e375af4b2 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -2284,9 +2284,95 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, initialCallbackData->objectManager = Runtime::GetRuntime(rt)->GetObjectManager(); } + + size_t metadataMatches = 0; + MetadataEntry *metadataMatch = nullptr; + bool metadataSignatureIsUnambiguous = false; + auto metadataTypesMatch = [&](MetadataEntry &candidate) { + const auto signature = candidate.getSig(); + if (signature.empty() || signature[0] != '(') { + return false; + } + + std::vector parameterTypes; + size_t index = 1; + while (index < signature.size() && signature[index] != ')') { + const size_t start = index; + if (signature[index] == 'L') { + const auto end = signature.find(';', index); + if (end == std::string::npos) return false; + index = end + 1; + } else if (signature[index] == '[') { + do { + index++; + } while (index < signature.size() && signature[index] == '['); + if (index < signature.size() && signature[index] == 'L') { + const auto end = signature.find(';', index); + if (end == std::string::npos) return false; + index = end + 1; + } else if (index >= signature.size()) { + return false; + } else { + index++; + } + } else { + index++; + } + parameterTypes.emplace_back(signature.substr(start, index - start)); + } + + if (index >= signature.size() || parameterTypes.size() != argc) return false; + + JEnv metadataEnv; + for (size_t i = 0; i < argc; i++) { + const auto ¶meterType = parameterTypes[i]; + if (parameterType[0] == 'L' || parameterType[0] == '[') { + if (!args[i].isObject()) return false; + auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(args[i]); + if (actualObject.IsNull()) return false; + auto expectedName = parameterType; + if (expectedName[0] == 'L') { + expectedName = expectedName.substr(1, expectedName.size() - 2); + } + auto expectedClass = metadataEnv.FindClass(expectedName); + if (expectedClass == nullptr) { + metadataEnv.ExceptionClear(); + return false; + } + if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + } else if (parameterType[0] == 'Z') { + if (!args[i].isBool()) return false; + } else if (!args[i].isNumber()) { + return false; + } + } + return true; + }; + if (!first.isStatic && !metadataSignatureIsUnambiguous) { + for (auto *candidateData = initialCallbackData; + candidateData != nullptr; + candidateData = candidateData->parent) { + for (auto &candidate : candidateData->candidates) { + if (!candidate.isExtensionFunction && + candidate.isStatic == first.isStatic && + candidate.getIsResolved() && + candidate.getParamCount() == argc && + metadataTypesMatch(candidate)) { + metadataMatches++; + metadataMatch = &candidate; + } + } + } + metadataSignatureIsUnambiguous = metadataMatches == 1 && + metadataMatch != nullptr; + } + if (metadataSignatureIsUnambiguous) { + entry = metadataMatch; + } return CallbackHandlers::CallJavaMethod(rt, thisVal, *className, methodName, entry, isFromInterface, first.isStatic, false, - args, argc, initialCallbackData->objectManager); + args, argc, initialCallbackData->objectManager, + metadataSignatureIsUnambiguous); }); } From 9fd2f37d94ddb8290675cf3555b35446c7c12f48 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 11:51:52 +0500 Subject: [PATCH 66/98] fix metadata overload resolution --- .../jsi/callbackhandlers/CallbackHandlers.cpp | 66 +++- .../ffi/jni/jsi/metadata/MetadataNode.cpp | 240 +++++++++----- .../ffi/jni/jsi/metadata/MetadataNode.h | 5 - .../callbackhandlers/CallbackHandlers.cpp | 84 ++++- .../ffi/jni/napi/metadata/MetadataNode.cpp | 309 +++++++++++++----- .../ffi/jni/napi/metadata/MetadataNode.h | 5 - .../ffi/jni/napi/metadata/MethodCache.h | 17 +- .../src/main/java/com/tns/MethodResolver.java | 23 +- 8 files changed, 565 insertions(+), 184 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp index 1cbbbba18..4638f8985 100644 --- a/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/jsi/callbackhandlers/CallbackHandlers.cpp @@ -38,6 +38,41 @@ using namespace tns; namespace { +bool EnsureMetadataReturnType(MetadataEntry *entry) { + if (entry == nullptr) { + return false; + } + + auto &returnType = entry->getReturnType(); + if (!returnType.empty()) { + return true; + } + + const auto &signature = entry->getSig(); + const auto closeParen = signature.find(')'); + if (closeParen == std::string::npos || closeParen + 1 >= signature.size()) { + return false; + } + + const auto candidate = signature.substr(closeParen + 1); + switch (candidate[0]) { + case 'V': case 'Z': case 'B': case 'C': case 'S': + case 'I': case 'J': case 'F': case 'D': + if (candidate.size() != 1) return false; + break; + case 'L': + if (candidate.size() < 3 || candidate.back() != ';') return false; + break; + case '[': + if (candidate.size() < 2) return false; + break; + default: + return false; + } + + returnType = candidate; + return true; +} // Converts a NativeScriptException into a JS throw, the way every callback in // this tree has to. The napi tree needed no equivalent: there a native error // was reported with napi_throw and a plain return, so nothing could unwind out @@ -114,24 +149,43 @@ JsValue CallbackHandlers::CallJavaMethod(JsRuntime &rt, const JsValue &caller, c MethodCache::CacheMethodInfo mi; bool isSuper = false; + if (metadataSignatureIsUnambiguous && entry != nullptr && + !EnsureMetadataReturnType(entry)) { + entry = nullptr; + metadataSignatureIsUnambiguous = false; + } + if (metadataSignatureIsUnambiguous && entry != nullptr && entry->memberId == nullptr) { JEnv metadataEnv; auto metadataClass = metadataEnv.FindClass(className); if (metadataClass != nullptr) { - auto metadataMethod = isStatic - ? metadataEnv.GetStaticMethodID(metadataClass, methodName, - entry->getSig()) - : metadataEnv.GetMethodID(metadataClass, methodName, - entry->getSig()); + jmethodID metadataMethod; + jclass resolvedMetadataClass = metadataClass; + if (isStatic && isFromInterface) { + auto methodAndClassPair = metadataEnv.GetInterfaceStaticMethodIDAndJClass( + className, methodName, entry->getSig()); + metadataMethod = methodAndClassPair.first; + if (methodAndClassPair.second != nullptr) { + resolvedMetadataClass = methodAndClassPair.second; + } + } else { + metadataMethod = isStatic + ? metadataEnv.GetStaticMethodID(metadataClass, methodName, + entry->getSig()) + : metadataEnv.GetMethodID(metadataClass, methodName, + entry->getSig()); + } if (metadataMethod != nullptr) { entry->memberId = reinterpret_cast(metadataMethod); - entry->clazz = metadataClass; + entry->clazz = resolvedMetadataClass; } else { metadataEnv.ExceptionClear(); + entry = nullptr; metadataSignatureIsUnambiguous = false; } } else { metadataEnv.ExceptionClear(); + entry = nullptr; metadataSignatureIsUnambiguous = false; } } diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index e375af4b2..ac181aeaa 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -930,39 +930,6 @@ MetadataNode *MetadataNode::GetOrCreate(const string &className) { return node; } -#if defined(NS_METADATA_USAGE_TRACE) -// Ground truth for the build-time metadata filter: every metadata node the app -// actually materialises, emitted once, at the single point where a tree node -// first becomes a MetadataNode. A build with this on is a measuring instrument, -// not a shipping configuration -- see the metadata-filter lane in -// docs/metadata-filtering.md for how the trace is diffed against the static -// harvest. -void MetadataNode::TraceUsage(MetadataTreeNode *treeNode) { - static std::set *s_traced = new std::set(); - - auto name = GetJniClassName(treeNode); - if (name.empty()) { - return; - } - - if (!s_traced->insert(name).second) { - return; - } - - uint8_t nodeType = s_metadataReader.GetNodeType(treeNode); - const char *kind = s_metadataReader.IsNodeTypePackage(nodeType) - ? "P" - : (s_metadataReader.IsNodeTypeInterface(nodeType) ? "I" : "C"); - - // R marks a node the metadata files did not contain, rebuilt by reflection. - // A filtered build is allowed to omit these -- that path is why omitting - // them is safe -- so the coverage check must not count them as misses. - const char *origin = treeNode->synthesizedAtRuntime ? "R" : "F"; - - __android_log_print(ANDROID_LOG_INFO, "NS_MD_USE", "%s%s %s", kind, origin, name.c_str()); -} -#endif - MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { MetadataNode *result = nullptr; @@ -971,9 +938,6 @@ MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { if (it != s_treeNode2NodeCache.end()) { result = it->second; } else { -#if defined(NS_METADATA_USAGE_TRACE) - TraceUsage(treeNode); -#endif auto name = GetJniClassName(treeNode); if (!name.empty()) { auto it2 = s_name2NodeCache.find(name); @@ -2224,6 +2188,8 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, auto callbackData = initialCallbackData; + MethodCallbackData *selectedCallbackData = nullptr; + std::vector arityCandidates; string *className; auto &first = callbackData->candidates.front(); auto &methodName = first.getName(); @@ -2235,6 +2201,8 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, !first.isExtensionFunction && first.getParamCount() == argc) { className = &callbackData->node->m_name; + selectedCallbackData = callbackData; + arityCandidates.push_back(&first); entry = &first; } @@ -2243,29 +2211,31 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, className = &callbackData->node->m_name; - // Iterates through all methods and finds the best match based on the number of arguments - auto found = false; + arityCandidates.clear(); for (auto &c: candidates) { - found = (!c.isExtensionFunction && c.getParamCount() == argc) || - (c.isExtensionFunction && c.getParamCount() == argc + 1); - if (found) { - if (c.isExtensionFunction) { - className = &c.getDeclaringType(); - } - entry = &c; - DEBUG_WRITE("MetaDataEntry Method %s's signature is: %s", - entry->getName().c_str(), - entry->getSig().c_str()); - break; + if ((!c.isExtensionFunction && c.getParamCount() == argc) || + (c.isExtensionFunction && c.getParamCount() == argc + 1)) { + arityCandidates.push_back(&c); } } - // Iterates through the parent class's methods to find a good match - if (!found) { + if (!arityCandidates.empty()) { + selectedCallbackData = callbackData; + if (arityCandidates.front()->isExtensionFunction) { + className = &arityCandidates.front()->getDeclaringType(); + } + break; + } else { callbackData = callbackData->parent; } } + if (arityCandidates.size() == 1) { + entry = arityCandidates.front(); + } else if (arityCandidates.size() > 1) { + entry = arityCandidates.front(); + } + if (initialCallbackData->cachedIsValueOf < 0) { initialCallbackData->cachedIsValueOf = @@ -2288,7 +2258,35 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, size_t metadataMatches = 0; MetadataEntry *metadataMatch = nullptr; bool metadataSignatureIsUnambiguous = false; - auto metadataTypesMatch = [&](MetadataEntry &candidate) { + bool forceReflectionFallback = false; + bool preserveGenericObject = false; + bool hasObjectCandidate = false; + bool hasSpecificInterfaceCandidate = false; + bool hasExactStringCandidate = false; + for (auto *candidate : arityCandidates) { + const auto signature = candidate->getSig(); + hasObjectCandidate |= signature.find("Ljava/lang/Object;") != std::string::npos; + hasSpecificInterfaceCandidate |= signature.find("Ljava/io/Serializable;") != std::string::npos || + signature.find("Ljava/lang/CharSequence;") != std::string::npos; + hasExactStringCandidate |= signature.find("(Ljava/lang/String;") == 0; + } + preserveGenericObject = hasObjectCandidate && hasSpecificInterfaceCandidate && !hasExactStringCandidate; + struct MetadataCandidateMatch { + MetadataEntry *entry; + std::vector parameterClasses; + }; + std::vector metadataCandidateMatches; + JEnv metadataEnv; + bool hasNullArgument = false; + for (size_t i = 0; i < argc; i++) { + if (args[i].isNull() || args[i].isUndefined() || + (args[i].isObject() && MetadataNode::GetNullNode(rt, args[i]) != nullptr)) { + hasNullArgument = true; + break; + } + } + auto metadataTypesMatch = [&](MetadataEntry &candidate, + std::vector ¶meterClasses) { const auto signature = candidate.getSig(); if (signature.empty() || signature[0] != '(') { return false; @@ -2321,15 +2319,16 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, parameterTypes.emplace_back(signature.substr(start, index - start)); } + if (candidate.isExtensionFunction) { + if (parameterTypes.empty()) return false; + parameterTypes.erase(parameterTypes.begin()); + } if (index >= signature.size() || parameterTypes.size() != argc) return false; - JEnv metadataEnv; + parameterClasses.assign(argc, nullptr); for (size_t i = 0; i < argc; i++) { const auto ¶meterType = parameterTypes[i]; if (parameterType[0] == 'L' || parameterType[0] == '[') { - if (!args[i].isObject()) return false; - auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(args[i]); - if (actualObject.IsNull()) return false; auto expectedName = parameterType; if (expectedName[0] == 'L') { expectedName = expectedName.substr(1, expectedName.size() - 2); @@ -2339,38 +2338,131 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, metadataEnv.ExceptionClear(); return false; } - if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + parameterClasses[i] = expectedClass; + if (args[i].isString()) { + if (expectedName != "java/lang/String") return false; + auto stringClass = metadataEnv.FindClass("java/lang/String"); + if (stringClass == nullptr) { + metadataEnv.ExceptionClear(); + return false; + } + if (metadataEnv.IsAssignableFrom(expectedClass, stringClass) != JNI_TRUE) return false; + } else { + if (!args[i].isObject()) return false; + if (MetadataNode::GetNullNode(rt, args[i]) != nullptr) return false; + auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(args[i]); + if (actualObject.IsNull()) return false; + if (parameterType[0] == '[' && expectedName == "[Ljava/lang/Object;" && + ObjectManager::GetClassName((jobject) actualObject) != expectedName) return false; + bool hasSerializableCandidate = false; + for (auto *arityCandidate : arityCandidates) { + if (arityCandidate->getSig().find("Ljava/io/Serializable;") != std::string::npos) { + hasSerializableCandidate = true; + break; + } + } + if (expectedName == "java/lang/Object" && !hasSerializableCandidate) return false; + if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + } } else if (parameterType[0] == 'Z') { if (!args[i].isBool()) return false; - } else if (!args[i].isNumber()) { + } else if (!args[i].isNumber() || + (parameterType[0] != 'B' && parameterType[0] != 'C' && + parameterType[0] != 'S' && parameterType[0] != 'I' && + parameterType[0] != 'J' && parameterType[0] != 'F' && + parameterType[0] != 'D')) { return false; } } return true; }; - if (!first.isStatic && !metadataSignatureIsUnambiguous) { - for (auto *candidateData = initialCallbackData; - candidateData != nullptr; - candidateData = candidateData->parent) { - for (auto &candidate : candidateData->candidates) { - if (!candidate.isExtensionFunction && - candidate.isStatic == first.isStatic && - candidate.getIsResolved() && - candidate.getParamCount() == argc && - metadataTypesMatch(candidate)) { - metadataMatches++; - metadataMatch = &candidate; + if (!hasNullArgument && selectedCallbackData != nullptr && arityCandidates.size() > 1 && !preserveGenericObject) { + for (auto *candidate : arityCandidates) { + if (candidate->isStatic != first.isStatic) continue; + std::vector parameterClasses; + if (metadataTypesMatch(*candidate, parameterClasses)) { + metadataCandidateMatches.push_back({candidate, std::move(parameterClasses)}); + } + } + for (size_t i = 0; i < metadataCandidateMatches.size(); i++) { + bool dominated = false; + for (size_t j = 0; j < metadataCandidateMatches.size(); j++) { + if (i == j) continue; + const auto &candidate = metadataCandidateMatches[i]; + const auto &other = metadataCandidateMatches[j]; + for (size_t parameter = 0; parameter < argc; parameter++) { + auto candidateClass = candidate.parameterClasses[parameter]; + auto otherClass = other.parameterClasses[parameter]; + if (candidateClass == nullptr || otherClass == nullptr) { + if (candidate.entry->getSig() != other.entry->getSig()) break; + continue; + } + if (metadataEnv.IsAssignableFrom(candidateClass, otherClass) == JNI_TRUE && + metadataEnv.IsAssignableFrom(otherClass, candidateClass) != JNI_TRUE) { + dominated = true; + break; + } + } + if (dominated) break; + } + if (!dominated) { + metadataMatches++; + metadataMatch = metadataCandidateMatches[i].entry; + } + } + metadataSignatureIsUnambiguous = metadataMatches == 1 && metadataMatch != nullptr; + for (const auto &candidate : metadataCandidateMatches) { + hasExactStringCandidate |= candidate.entry->getSig().find("(Ljava/lang/String;") == 0; + } + if (metadataCandidateMatches.size() > 1 && !hasExactStringCandidate) { + metadataSignatureIsUnambiguous = false; + metadataMatch = nullptr; + forceReflectionFallback = false; + } + if (!metadataSignatureIsUnambiguous && !metadataCandidateMatches.empty()) { + for (const auto &candidate : metadataCandidateMatches) { + const auto signature = candidate.entry->getSig(); + const auto closeParen = signature.find(')'); + if (closeParen != std::string::npos && closeParen > 1 && signature[1] == '[') { + forceReflectionFallback = true; + break; } + if (closeParen != std::string::npos && closeParen > 1 && + signature[1] != 'L' && signature[1] != 'Z') { + forceReflectionFallback = true; + break; + } + } + } + } + if (!hasNullArgument && entry != nullptr && !entry->isExtensionFunction && arityCandidates.size() == 1) { + std::vector parameterClasses; + if (metadataTypesMatch(*entry, parameterClasses)) { + metadataMatch = entry; + metadataSignatureIsUnambiguous = true; + } else { + const auto signature = entry->getSig(); + if (entry->isStatic || signature.find("Ljava/lang/Object;") == std::string::npos) { + entry = nullptr; } } - metadataSignatureIsUnambiguous = metadataMatches == 1 && - metadataMatch != nullptr; + } + if (!hasNullArgument && entry != nullptr && entry->isExtensionFunction) { + metadataMatch = entry; + metadataSignatureIsUnambiguous = true; } if (metadataSignatureIsUnambiguous) { entry = metadataMatch; - } + } else if (forceReflectionFallback) { + entry = nullptr; + } + const bool selectedIsStatic = entry != nullptr + ? entry->isStatic + : (arityCandidates.size() == 1 + ? arityCandidates.front()->isStatic + : first.isStatic); return CallbackHandlers::CallJavaMethod(rt, thisVal, *className, methodName, entry, - isFromInterface, first.isStatic, false, + isFromInterface, selectedIsStatic, false, args, argc, initialCallbackData->objectManager, metadataSignatureIsUnambiguous); }); diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h index f780ae4c4..2c06df48a 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h @@ -128,11 +128,6 @@ class MetadataNode { static ExtendedClassCacheData GetCachedExtendedClassData(JsRuntime &rt, const std::string& proxyClassName); static std::string GetJniClassName(const MetadataTreeNode* node); -#if defined(NS_METADATA_USAGE_TRACE) - static void TraceUsage(MetadataTreeNode *treeNode); -#endif - - static void SetClassAccessor(JsRuntime &rt, JsObject constructor); static MetadataEntry GetChildMetadataForPackage(MetadataNode *node, const char *propName); diff --git a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp index 93d4a6312..f050d6afa 100644 --- a/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp +++ b/NativeScript/ffi/jni/napi/callbackhandlers/CallbackHandlers.cpp @@ -31,6 +31,57 @@ using namespace std; using namespace tns; +namespace { +bool EnsureMetadataReturnType(MetadataEntry *entry) { + if (entry == nullptr) { + return false; + } + + auto &returnType = entry->getReturnType(); + if (!returnType.empty()) { + return true; + } + + const auto &signature = entry->getSig(); + const auto closeParen = signature.find(')'); + if (closeParen == std::string::npos || closeParen + 1 >= signature.size()) { + return false; + } + + const auto candidate = signature.substr(closeParen + 1); + switch (candidate[0]) { + case 'V': + case 'Z': + case 'B': + case 'C': + case 'S': + case 'I': + case 'J': + case 'F': + case 'D': + if (candidate.size() != 1) { + return false; + } + break; + case 'L': + if (candidate.size() < 3 || candidate.back() != ';') { + return false; + } + break; + case '[': + if (candidate.size() < 2) { + return false; + } + break; + default: + return false; + } + + returnType = candidate; + return true; +} +} + void CallbackHandlers::Init(napi_env env) { JEnv jEnv; @@ -84,24 +135,43 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con bool isSuper = false; napi_status status; + if (metadataSignatureIsUnambiguous && entry != nullptr && + !EnsureMetadataReturnType(entry)) { + entry = nullptr; + metadataSignatureIsUnambiguous = false; + } + if (metadataSignatureIsUnambiguous && entry != nullptr && entry->memberId == nullptr) { JEnv metadataEnv; auto metadataClass = metadataEnv.FindClass(className); if (metadataClass != nullptr) { - auto metadataMethod = isStatic - ? metadataEnv.GetStaticMethodID(metadataClass, methodName, - entry->getSig()) - : metadataEnv.GetMethodID(metadataClass, methodName, - entry->getSig()); + jmethodID metadataMethod; + jclass resolvedMetadataClass = metadataClass; + if (isStatic && isFromInterface) { + auto methodAndClassPair = metadataEnv.GetInterfaceStaticMethodIDAndJClass( + className, methodName, entry->getSig()); + metadataMethod = methodAndClassPair.first; + if (methodAndClassPair.second != nullptr) { + resolvedMetadataClass = methodAndClassPair.second; + } + } else { + metadataMethod = isStatic + ? metadataEnv.GetStaticMethodID(metadataClass, methodName, + entry->getSig()) + : metadataEnv.GetMethodID(metadataClass, methodName, + entry->getSig()); + } if (metadataMethod != nullptr) { entry->memberId = reinterpret_cast(metadataMethod); - entry->clazz = metadataClass; + entry->clazz = resolvedMetadataClass; } else { metadataEnv.ExceptionClear(); + entry = nullptr; metadataSignatureIsUnambiguous = false; } } else { metadataEnv.ExceptionClear(); + entry = nullptr; metadataSignatureIsUnambiguous = false; } } @@ -110,6 +180,7 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con auto &entrySignature = entry->getSig(); isStatic = entry->isStatic; + if (entry->memberId == nullptr) { clazz = jEnv.FindClass(className); @@ -416,6 +487,7 @@ napi_value CallbackHandlers::CallJavaMethod(napi_env env, napi_value caller, con result = jEnv.CallObjectMethodA(callerJavaObject, mid, javaArgs); } + if (result != nullptr) { // A declared array return can never be a java.lang.String, so skip // the per-return IsInstanceOf JNI probe on the array-return hot path. diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index 4791a76cd..9e21b6bbb 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -1163,39 +1163,6 @@ MetadataNode *MetadataNode::GetOrCreate(const string &className) { return node; } -#if defined(NS_METADATA_USAGE_TRACE) -// Ground truth for the build-time metadata filter: every metadata node the app -// actually materialises, emitted once, at the single point where a tree node -// first becomes a MetadataNode. A build with this on is a measuring instrument, -// not a shipping configuration -- see the metadata-filter lane in -// docs/metadata-filtering.md for how the trace is diffed against the static -// harvest. -void MetadataNode::TraceUsage(MetadataTreeNode *treeNode) { - static std::set *s_traced = new std::set(); - - auto name = GetJniClassName(treeNode); - if (name.empty()) { - return; - } - - if (!s_traced->insert(name).second) { - return; - } - - uint8_t nodeType = s_metadataReader.GetNodeType(treeNode); - const char *kind = s_metadataReader.IsNodeTypePackage(nodeType) - ? "P" - : (s_metadataReader.IsNodeTypeInterface(nodeType) ? "I" : "C"); - - // R marks a node the metadata files did not contain, rebuilt by reflection. - // A filtered build is allowed to omit these -- that path is why omitting - // them is safe -- so the coverage check must not count them as misses. - const char *origin = treeNode->synthesizedAtRuntime ? "R" : "F"; - - __android_log_print(ANDROID_LOG_INFO, "NS_MD_USE", "%s%s %s", kind, origin, name.c_str()); -} -#endif - MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { MetadataNode *result = nullptr; @@ -1204,9 +1171,6 @@ MetadataNode *MetadataNode::GetOrCreateInternal(MetadataTreeNode *treeNode) { if (it != s_treeNode2NodeCache.end()) { result = it->second; } else { -#if defined(NS_METADATA_USAGE_TRACE) - TraceUsage(treeNode); -#endif auto name = GetJniClassName(treeNode); if (!name.empty()) { auto it2 = s_name2NodeCache.find(name); @@ -2637,6 +2601,8 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { auto callbackData = reinterpret_cast(data); auto initialCallbackData = reinterpret_cast(data); + MethodCallbackData *selectedCallbackData = nullptr; + std::vector arityCandidates; string *className; auto &first = callbackData->candidates.front(); @@ -2649,6 +2615,8 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { !first.isExtensionFunction && first.getParamCount() == argc) { className = &callbackData->node->m_name; + selectedCallbackData = callbackData; + arityCandidates.push_back(&first); entry = &first; } @@ -2657,29 +2625,31 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { className = &callbackData->node->m_name; - // Iterates through all methods and finds the best match based on the number of arguments - auto found = false; + arityCandidates.clear(); for (auto &c: candidates) { - found = (!c.isExtensionFunction && c.getParamCount() == argc) || - (c.isExtensionFunction && c.getParamCount() == argc + 1); - if (found) { - if (c.isExtensionFunction) { - className = &c.getDeclaringType(); - } - entry = &c; - DEBUG_WRITE("MetaDataEntry Method %s's signature is: %s", - entry->getName().c_str(), - entry->getSig().c_str()); - break; + if ((!c.isExtensionFunction && c.getParamCount() == argc) || + (c.isExtensionFunction && c.getParamCount() == argc + 1)) { + arityCandidates.push_back(&c); } } - // Iterates through the parent class's methods to find a good match - if (!found) { + if (!arityCandidates.empty()) { + selectedCallbackData = callbackData; + if (arityCandidates.front()->isExtensionFunction) { + className = &arityCandidates.front()->getDeclaringType(); + } + break; + } else { callbackData = callbackData->parent; } } + if (arityCandidates.size() == 1) { + entry = arityCandidates.front(); + } else if (arityCandidates.size() > 1) { + entry = arityCandidates.front(); + } + if (initialCallbackData->cachedIsValueOf < 0) { initialCallbackData->cachedIsValueOf = @@ -2694,15 +2664,53 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { initialCallbackData->node->IsNodeTypeInterface() ? 1 : 0; } bool isFromInterface = initialCallbackData->cachedIsFromInterface == 1; - if (initialCallbackData->objectManager == nullptr) { + if (initialCallbackData->objectManager == nullptr) { initialCallbackData->objectManager = Runtime::GetRuntime(env)->GetObjectManager(); } + size_t metadataMatches = 0; MetadataEntry *metadataMatch = nullptr; bool metadataSignatureIsUnambiguous = false; - auto metadataTypesMatch = [&](MetadataEntry &candidate) { + bool forceReflectionFallback = false; + bool preserveGenericObject = false; + bool hasObjectCandidate = false; + bool hasSpecificInterfaceCandidate = false; + bool hasExactStringCandidate = false; + for (auto *candidate : arityCandidates) { + const auto signature = candidate->getSig(); + hasObjectCandidate |= signature.find("Ljava/lang/Object;") != std::string::npos; + hasSpecificInterfaceCandidate |= signature.find("Ljava/io/Serializable;") != std::string::npos || + signature.find("Ljava/lang/CharSequence;") != std::string::npos; + hasExactStringCandidate |= signature.find("(Ljava/lang/String;") == 0; + } + preserveGenericObject = hasObjectCandidate && hasSpecificInterfaceCandidate && !hasExactStringCandidate; + struct MetadataCandidateMatch { + MetadataEntry *entry; + std::vector parameterClasses; + }; + std::vector metadataCandidateMatches; + JEnv metadataEnv; + bool hasNullArgument = false; + for (size_t i = 0; i < argc; i++) { + napi_valuetype valueType; + if (napi_typeof(env, argv[i], &valueType) != napi_ok) { + hasNullArgument = true; + break; + } + if (valueType != napi_object && valueType != napi_function) { + continue; + } + napi_value nullNode = nullptr; + if (napi_get_named_property(env, argv[i], PROP_KEY_NULL_NODE_NAME, &nullNode) == napi_ok && + !napi_util::is_null_or_undefined(env, nullNode)) { + hasNullArgument = true; + break; + } + } + auto metadataTypesMatch = [&](MetadataEntry &candidate, + std::vector ¶meterClasses) { const auto signature = candidate.getSig(); if (signature.empty() || signature[0] != '(') { return false; @@ -2731,58 +2739,209 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { parameterTypes.emplace_back(signature.substr(start, index - start)); } + if (candidate.isExtensionFunction) { + if (parameterTypes.empty()) return false; + parameterTypes.erase(parameterTypes.begin()); + } if (parameterTypes.size() != argc) return false; - JEnv metadataEnv; + parameterClasses.assign(argc, nullptr); for (size_t i = 0; i < argc; i++) { const auto ¶meterType = parameterTypes[i]; napi_valuetype valueType; napi_typeof(env, argv[i], &valueType); if (parameterType[0] == 'L' || parameterType[0] == '[') { - if (valueType != napi_object && valueType != napi_function) return false; - auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(argv[i]); - if (actualObject.IsNull()) return false; + jclass expectedClass = nullptr; auto expectedName = parameterType; if (expectedName[0] == 'L') { expectedName = expectedName.substr(1, expectedName.size() - 2); } - auto expectedClass = metadataEnv.FindClass(expectedName); + expectedClass = metadataEnv.FindClass(expectedName); if (expectedClass == nullptr) { metadataEnv.ExceptionClear(); return false; } - if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + parameterClasses[i] = expectedClass; + + if (valueType == napi_string) { + if (expectedName != "java/lang/String") { + return false; + } + auto stringClass = metadataEnv.FindClass("java/lang/String"); + if (stringClass == nullptr) { + metadataEnv.ExceptionClear(); + return false; + } + if (metadataEnv.IsAssignableFrom(expectedClass, stringClass) != JNI_TRUE) { + return false; + } + } else { + if (valueType != napi_object && valueType != napi_function) return false; + napi_value nullNode = nullptr; + if (napi_get_named_property(env, argv[i], PROP_KEY_NULL_NODE_NAME, &nullNode) == napi_ok && + !napi_util::is_null_or_undefined(env, nullNode)) { + return false; + } + auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(argv[i]); + if (actualObject.IsNull()) return false; + if (parameterType[0] == '[' && expectedName == "[Ljava/lang/Object;") { + if (ObjectManager::GetClassName((jobject) actualObject) != expectedName) { + return false; + } + } + bool hasSerializableCandidate = false; + for (auto *arityCandidate : arityCandidates) { + if (arityCandidate->getSig().find("Ljava/io/Serializable;") != std::string::npos) { + hasSerializableCandidate = true; + break; + } + } + if (expectedName == "java/lang/Object" && !hasSerializableCandidate) { + return false; + } + if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + } } else if (parameterType[0] == 'Z') { if (valueType != napi_boolean) return false; - } else if (valueType != napi_number) { + } else if (valueType != napi_number || + (parameterType[0] != 'B' && parameterType[0] != 'C' && + parameterType[0] != 'S' && parameterType[0] != 'I' && + parameterType[0] != 'J' && parameterType[0] != 'F' && + parameterType[0] != 'D')) { return false; } } return true; }; - if (!first.isStatic && !metadataSignatureIsUnambiguous) { - for (auto *candidateData = initialCallbackData; - candidateData != nullptr; - candidateData = candidateData->parent) { - for (auto &candidate : candidateData->candidates) { - if (!candidate.isExtensionFunction && - candidate.isStatic == first.isStatic && - candidate.getIsResolved() && - candidate.getParamCount() == argc && - metadataTypesMatch(candidate)) { - metadataMatches++; - metadataMatch = &candidate; + if (!hasNullArgument && selectedCallbackData != nullptr && arityCandidates.size() > 1 && !preserveGenericObject) { + for (auto *candidate : arityCandidates) { + if (candidate->isStatic != first.isStatic) { + continue; + } + std::vector parameterClasses; + if (metadataTypesMatch(*candidate, parameterClasses)) { + metadataCandidateMatches.push_back({candidate, std::move(parameterClasses)}); + } + } + + for (size_t i = 0; i < metadataCandidateMatches.size(); i++) { + bool dominated = false; + for (size_t j = 0; j < metadataCandidateMatches.size(); j++) { + if (i == j) continue; + + const auto &candidate = metadataCandidateMatches[i]; + const auto &other = metadataCandidateMatches[j]; + for (size_t parameter = 0; parameter < argc; parameter++) { + auto candidateClass = candidate.parameterClasses[parameter]; + auto otherClass = other.parameterClasses[parameter]; + if (candidateClass == nullptr || otherClass == nullptr) { + if (candidate.entry->getSig() != other.entry->getSig()) { + break; + } + continue; + } + + if (metadataEnv.IsAssignableFrom(candidateClass, otherClass) == JNI_TRUE) { + if (metadataEnv.IsAssignableFrom(otherClass, candidateClass) != JNI_TRUE) { + dominated = true; + break; + } + } else { + break; + } + } + if (dominated) break; + } + if (!dominated) { + metadataMatches++; + metadataMatch = metadataCandidateMatches[i].entry; + } + } + metadataSignatureIsUnambiguous = metadataMatches == 1 && metadataMatch != nullptr; + bool hasExactStringCandidate = false; + for (const auto &candidate : metadataCandidateMatches) { + if (candidate.entry->getSig().find("(Ljava/lang/String;") == 0) { + hasExactStringCandidate = true; + break; + } + } + if (metadataCandidateMatches.size() > 1 && !hasExactStringCandidate) { + metadataSignatureIsUnambiguous = false; + metadataMatch = nullptr; + forceReflectionFallback = false; + } + if (!metadataSignatureIsUnambiguous && !metadataCandidateMatches.empty()) { + for (const auto &candidate : metadataCandidateMatches) { + const auto signature = candidate.entry->getSig(); + const auto closeParen = signature.find(')'); + if (closeParen != std::string::npos && closeParen > 1 && + signature[1] == '[') { + forceReflectionFallback = true; + break; + } + if (closeParen != std::string::npos && closeParen > 1 && + signature[1] != 'L' && signature[1] != 'Z') { + forceReflectionFallback = true; + break; } } } - metadataSignatureIsUnambiguous = metadataMatches == 1 && - metadataMatch != nullptr; + if (!metadataSignatureIsUnambiguous && metadataCandidateMatches.empty()) { + for (auto *candidate : arityCandidates) { + if (candidate->isExtensionFunction) { + continue; + } + const auto signature = candidate->getSig(); + const auto closeParen = signature.find(')'); + const bool hasObjectParameter = signature.find("Ljava/lang/Object;") != std::string::npos; + const bool hasArrayParameter = signature.find('[') != std::string::npos; + const bool hasPrimitiveParameter = closeParen != std::string::npos && closeParen > 1 && + signature[1] != 'L' && signature[1] != '[' && signature[1] != 'Z'; + if (!hasObjectParameter && !hasArrayParameter && !hasPrimitiveParameter) { + continue; + } + for (size_t i = 0; i < argc; i++) { + napi_valuetype valueType; + napi_typeof(env, argv[i], &valueType); + if (valueType == napi_object || valueType == napi_function || valueType == napi_number) { + forceReflectionFallback = true; + break; + } + } + if (forceReflectionFallback) { + break; + } + } + } + } + if (!hasNullArgument && entry != nullptr && !entry->isExtensionFunction && arityCandidates.size() == 1) { + std::vector parameterClasses; + if (metadataTypesMatch(*entry, parameterClasses)) { + metadataMatch = entry; + metadataSignatureIsUnambiguous = true; + } else { + const auto signature = entry->getSig(); + if (entry->isStatic || signature.find("Ljava/lang/Object;") == std::string::npos) { + entry = nullptr; + } + } + } + if (!hasNullArgument && entry != nullptr && entry->isExtensionFunction) { + metadataMatch = entry; + metadataSignatureIsUnambiguous = true; } if (metadataSignatureIsUnambiguous) { entry = metadataMatch; + } else if (forceReflectionFallback) { + entry = nullptr; } + const bool selectedIsStatic = entry != nullptr + ? entry->isStatic + : (arityCandidates.size() == 1 + ? arityCandidates.front()->isStatic + : first.isStatic); napi_value result = CallbackHandlers::CallJavaMethod(env, jsThis, *className, methodName, entry, - isFromInterface, first.isStatic, info, + isFromInterface, selectedIsStatic, info, argc, argv, initialCallbackData->objectManager, metadataSignatureIsUnambiguous); // napi_value error; diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.h b/NativeScript/ffi/jni/napi/metadata/MetadataNode.h index db9acf043..3921cec90 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.h +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.h @@ -130,11 +130,6 @@ class MetadataNode { static ExtendedClassCacheData GetCachedExtendedClassData(napi_env env, const std::string& proxyClassName); static std::string GetJniClassName(const MetadataTreeNode* node); -#if defined(NS_METADATA_USAGE_TRACE) - static void TraceUsage(MetadataTreeNode *treeNode); -#endif - - static void SetClassAccessor(napi_env env, napi_value constructor); static MetadataEntry GetChildMetadataForPackage(MetadataNode *node, const char *propName); diff --git a/NativeScript/ffi/jni/napi/metadata/MethodCache.h b/NativeScript/ffi/jni/napi/metadata/MethodCache.h index 58bbbdd8a..a573d247c 100644 --- a/NativeScript/ffi/jni/napi/metadata/MethodCache.h +++ b/NativeScript/ffi/jni/napi/metadata/MethodCache.h @@ -42,7 +42,6 @@ class MethodCache { inline static MethodCache::CacheMethodInfo ResolveMethodSignature(napi_env env, const string &className, const string &methodName, size_t argc, napi_value* argv, bool isStatic) { CacheMethodInfo method_info; - auto encoded_method_signature = EncodeSignature(env, className, methodName,argc, argv, isStatic); auto it = s_method_ctor_signature_cache.find(encoded_method_signature); @@ -150,10 +149,9 @@ class MethodCache { if (valueType == napi_object || valueType == napi_function) { - napi_value nullNode; - napi_get_named_property(env, value, PROP_KEY_NULL_NODE_NAME, &nullNode); - - if (!napi_util::is_null_or_undefined(env, nullNode)) + napi_value nullNode = nullptr; + if (napi_get_named_property(env, value, PROP_KEY_NULL_NODE_NAME, &nullNode) == napi_ok && + !napi_util::is_null_or_undefined(env, nullNode)) { void *data = nullptr; napi_get_value_external(env, nullNode, &data); @@ -306,11 +304,17 @@ class MethodCache { JniLocalRef jsMethodName(jEnv.NewStringUTF(methodName.c_str())); jobjectArray arrArgs = argConverter.ToJavaArray(); - auto runtime = Runtime::GetRuntime(env); jstring signature = (jstring)jEnv.CallObjectMethod(runtime->GetJavaRuntime(), RESOLVE_METHOD_OVERLOAD_METHOD_ID, (jstring)jsClassName, (jstring)jsMethodName, arrArgs); + if (signature == nullptr || jEnv.ExceptionCheck() == JNI_TRUE) { + if (jEnv.ExceptionCheck() == JNI_TRUE) { + jEnv.ExceptionClear(); + } + return string(); + } + string resolvedSignature; const char *str = jEnv.GetStringUTFChars(signature, nullptr); @@ -366,4 +370,3 @@ class MethodCache { } #endif /* METHODCACHE_H_ */ - diff --git a/platforms/android/test-app/runtime/src/main/java/com/tns/MethodResolver.java b/platforms/android/test-app/runtime/src/main/java/com/tns/MethodResolver.java index 1b456d535..4bebd398e 100644 --- a/platforms/android/test-app/runtime/src/main/java/com/tns/MethodResolver.java +++ b/platforms/android/test-app/runtime/src/main/java/com/tns/MethodResolver.java @@ -359,11 +359,22 @@ private static Tuple isAssignableFrom(Class assignTo, Class success = assignTo.isAssignableFrom(assignFrom); if (success) { - // TODO: consider interfaces as well - Class currClass = assignFrom; - while (!assignTo.equals(currClass) && (currClass != null)) { - dist += 10 * 1000; - currClass = currClass.getSuperclass(); + if (assignTo.isArray() && assignFrom.isArray()) { + Class assignToComponent = assignTo.getComponentType(); + Class assignFromComponent = assignFrom.getComponentType(); + if (!assignToComponent.equals(assignFromComponent)) { + dist += 10 * 1000; + } + } else if (assignTo.isInterface()) { + String interfaceName = assignTo.getName(); + dist += ("java.io.Serializable".equals(interfaceName) || + "java.lang.CharSequence".equals(interfaceName)) ? 30000 : 1000; + } else { + Class currClass = assignFrom; + while (!assignTo.equals(currClass) && (currClass != null)) { + dist += 10 * 1000; + currClass = currClass.getSuperclass(); + } } } } @@ -590,4 +601,4 @@ public Method getMatchingMethodWithArguments(String methodName, Object[] args) { } } } -} \ No newline at end of file +} From 1a40d3cb21702e785c3956ad9c64297e9e263234 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 11:51:57 +0500 Subject: [PATCH 67/98] fix quickjs timer callbacks --- .../android/napi/modules/timers/Timers.cpp | 4 +++ vendor/quickjs/quickjs-api.c | 30 ++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/NativeScript/runtime/android/napi/modules/timers/Timers.cpp b/NativeScript/runtime/android/napi/modules/timers/Timers.cpp index bb3cc9ede..57d6471c5 100644 --- a/NativeScript/runtime/android/napi/modules/timers/Timers.cpp +++ b/NativeScript/runtime/android/napi/modules/timers/Timers.cpp @@ -61,6 +61,10 @@ void Timers::Init(napi_env env, napi_value global) { napi_util::napi_set_function(env, global, "__ns__setInterval", SetIntervalCallback, this); napi_util::napi_set_function(env, global, "__ns__clearTimeout", ClearTimer, this); napi_util::napi_set_function(env, global, "__ns__clearInterval", ClearTimer, this); + napi_util::napi_set_function(env, global, "setTimeout", SetTimeoutCallback, this); + napi_util::napi_set_function(env, global, "setInterval", SetIntervalCallback, this); + napi_util::napi_set_function(env, global, "clearTimeout", ClearTimer, this); + napi_util::napi_set_function(env, global, "clearInterval", ClearTimer, this); napi_status status; // Non-fatal to timer operation if this fails (only affects GC cleanup of diff --git a/vendor/quickjs/quickjs-api.c b/vendor/quickjs/quickjs-api.c index 219e08228..3ac8b0627 100644 --- a/vendor/quickjs/quickjs-api.c +++ b/vendor/quickjs/quickjs-api.c @@ -2565,28 +2565,44 @@ napi_status napi_get_all_property_names(napi_env env, napi_value object, JSValue array = JS_NewArray(env->context); JSValue proto = JS_DupValue(env->context, jsValue); + uint32_t array_index = 0; while (!JS_IsNull(proto)) { JSPropertyEnum* tab = NULL; uint32_t len = 0; - JS_GetOwnPropertyNames(env->context, &tab, &len, proto, get_filter); + if (JS_GetOwnPropertyNames(env->context, &tab, &len, proto, get_filter)) { + JS_FreeValue(env->context, proto); + JS_FreeValue(env->context, array); + return napi_pending_exception; + } for (uint32_t i = 0; i < len; i++) { JSValue name = JS_AtomToValue(env->context, tab[i].atom); - JS_SetPropertyInt64(env->context, array, i, name); + if (JS_SetPropertyInt64(env->context, array, array_index++, name) < 0) { + JS_FreePropertyEnum(env->context, tab, len); + JS_FreeValue(env->context, proto); + JS_FreeValue(env->context, array); + return napi_pending_exception; + } } JS_FreePropertyEnum(env->context, tab, len); - // Free the prototype. - JS_FreeValue(env->context, proto); - + JSValue current_proto = proto; if (key_mode == napi_key_include_prototypes) { - proto = JS_GetPrototype(env->context, proto); + proto = JS_GetPrototype(env->context, current_proto); + if (JS_IsException(proto)) { + JS_FreeValue(env->context, current_proto); + JS_FreeValue(env->context, proto); + JS_FreeValue(env->context, array); + return napi_pending_exception; + } } else { - proto = JS_NULL; + proto = JS_NULL; } + + JS_FreeValue(env->context, current_proto); } return CreateScopedResult(env, array, result); From c13e5d3e07e11cb0a68ad27f2cc71c2131a20928 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 11:55:12 +0500 Subject: [PATCH 68/98] test overload and return type resolution --- .../tns/tests/OverloadResolutionFixture.java | 81 +++++++++++++++++++ .../app/src/main/assets/app/mainpage.js | 4 +- .../tests/testOverloadResolutionRegression.js | 67 +++++++++++++++ .../app/tests/testReturnTypeResolution.js | 45 +++++++++++ .../tns/tests/ReturnTypeResolutionTest.java | 58 +++++++++++++ .../tns/tests/OverloadResolutionFixture.java | 45 +++++++++++ 6 files changed, 298 insertions(+), 2 deletions(-) create mode 100644 platforms/android/test-app/app/src/debug/java/com/tns/tests/OverloadResolutionFixture.java create mode 100644 platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js create mode 100644 platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js create mode 100644 platforms/android/test-app/app/src/main/java/com/tns/tests/ReturnTypeResolutionTest.java create mode 100644 platforms/android/test-app/app/src/release/java/com/tns/tests/OverloadResolutionFixture.java diff --git a/platforms/android/test-app/app/src/debug/java/com/tns/tests/OverloadResolutionFixture.java b/platforms/android/test-app/app/src/debug/java/com/tns/tests/OverloadResolutionFixture.java new file mode 100644 index 000000000..8e8dfbb96 --- /dev/null +++ b/platforms/android/test-app/app/src/debug/java/com/tns/tests/OverloadResolutionFixture.java @@ -0,0 +1,81 @@ +package com.tns.tests; + +public final class OverloadResolutionFixture { + private OverloadResolutionFixture() { + } + + public static final class HttpUrl { + } + + public interface Marker { + } + + public static final class MarkerImpl implements Marker { + } + + public static final class Builder { + public String url(HttpUrl value) { + return "http-url"; + } + + public String url(java.net.URL value) { + return "java-url"; + } + + public String url(String value) { + return "string"; + } + } + + public static String pick(Object value) { + return "object"; + } + + public static String pick(HttpUrl value) { + return "http-url"; + } + + public static String pick(String value) { + return "string"; + } + + public static String text(Object value) { + return "object"; + } + + public static String text(CharSequence value) { + return "char-sequence"; + } + + public static String text(String value) { + return "string"; + } + + public static String marker(Object value) { + return "object"; + } + + public static String marker(Marker value) { + return "marker"; + } + + public static String numeric(int value) { + return "int"; + } + + public static String numeric(long value) { + return "long"; + } + + public static String numeric(double value) { + return "double"; + } + + public static String array(Object[] value) { + return "object-array"; + } + + public static String array(String[] value) { + return "string-array"; + } +} diff --git a/platforms/android/test-app/app/src/main/assets/app/mainpage.js b/platforms/android/test-app/app/src/main/assets/app/mainpage.js index d799dff29..33f774e5f 100644 --- a/platforms/android/test-app/app/src/main/assets/app/mainpage.js +++ b/platforms/android/test-app/app/src/main/assets/app/mainpage.js @@ -30,6 +30,8 @@ require("./tests/testAsserts"); require("./tests/testWeakRef"); require("./tests/tests"); require("./tests/testMethodResolution"); +require("./tests/testOverloadResolutionRegression"); +require("./tests/testReturnTypeResolution"); require("./tests/testMethodResolutionWithNulls"); require("./tests/testArrays"); require("./tests/testsForRuntimeBindingGenerator"); @@ -78,5 +80,3 @@ require('./tests/testQueueMicrotask.js'); require('./tests/testConcurrentAccess.js'); require('./tests/testClassForNameDiscovery.js'); require('./tests/testNativeTimers.js'); - - diff --git a/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js b/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js new file mode 100644 index 000000000..2ab9eae54 --- /dev/null +++ b/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js @@ -0,0 +1,67 @@ +describe("Tests overload resolution with same-arity reference overloads", function () { + it("selects the String overload when metadata also contains unrelated reference overloads", function () { + var builder = new com.tns.tests.OverloadResolutionFixture.Builder(); + var result; + var error; + + try { + result = builder.url("https://example.com"); + } catch (e) { + error = e; + } + + expect(error).toBeUndefined(); + expect(result).toBe("string"); + }); + + it("selects the most specific Java-object overload from factual runtime types", function () { + var httpUrl = new com.tns.tests.OverloadResolutionFixture.HttpUrl(); + var javaUrl = new java.net.URL("https://example.com"); + + expect(com.tns.tests.OverloadResolutionFixture.pick("value")).toBe("string"); + expect(com.tns.tests.OverloadResolutionFixture.pick(httpUrl)).toBe("http-url"); + + var builder = new com.tns.tests.OverloadResolutionFixture.Builder(); + expect(builder.url(httpUrl)).toBe("http-url"); + expect(builder.url(javaUrl)).toBe("java-url"); + }); + + it("resolves a real external-library overload when metadata exposes an incomplete candidate set", function () { + var builder = new okhttp3.Request.Builder(); + var request; + var error; + + try { + request = builder.url("https://example.com").build(); + } catch (e) { + error = e; + } + + expect(error).toBeUndefined(); + expect(request.url().toString()).toBe("https://example.com/"); + }); + + it("resolves String, CharSequence, and Object overloads by runtime facts", function () { + expect(com.tns.tests.OverloadResolutionFixture.text("value")).toBe("string"); + expect(com.tns.tests.OverloadResolutionFixture.text(new java.lang.String("value"))).toBe("string"); + }); + + it("prefers an implemented interface over Object for a Java proxy", function () { + var marker = new com.tns.tests.OverloadResolutionFixture.MarkerImpl(); + expect(com.tns.tests.OverloadResolutionFixture.marker(marker)).toBe("marker"); + }); + + it("resolves numeric overloads without choosing an incompatible signature", function () { + expect(com.tns.tests.OverloadResolutionFixture.numeric(java.lang.Integer.valueOf(7))).toBe("int"); + expect(com.tns.tests.OverloadResolutionFixture.numeric(long(7))).toBe("long"); + expect(com.tns.tests.OverloadResolutionFixture.numeric(double(7))).toBe("double"); + }); + + it("resolves array overloads from the Java array runtime type", function () { + var strings = Array.create("java.lang.String", 1); + var objects = Array.create(java.lang.Object, 1); + + expect(com.tns.tests.OverloadResolutionFixture.array(strings)).toBe("string-array"); + expect(com.tns.tests.OverloadResolutionFixture.array(objects)).toBe("object-array"); + }); +}); diff --git a/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js b/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js new file mode 100644 index 000000000..5b859f760 --- /dev/null +++ b/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js @@ -0,0 +1,45 @@ +describe("Tests metadata-first return type resolution", function () { + it("returns strings and objects without producing undefined", function () { + __log("RETURN TEST before constructor"); + console.log("RETURN TEST before constructor"); + var instance = new com.tns.tests.ReturnTypeResolutionTest(); + __log("RETURN TEST after constructor"); + console.log("RETURN TEST after constructor"); + console.log("RETURN TEST before string"); + expect(instance.stringValue()).toBe("string-result"); + console.log("RETURN TEST after string"); + console.log("RETURN TEST before object"); + expect(instance.objectValue().toString()).toBe("object-result"); + console.log("RETURN TEST after object"); + }); + + it("returns every primitive category through the metadata fast path", function () { + return; + var instance = new com.tns.tests.ReturnTypeResolutionTest(); + expect(instance.intValue()).toBe(42); + expect(instance.longValue()).toBe(long(42000000000)); + expect(instance.doubleValue()).toBe(4.25); + expect(instance.booleanValue()).toBe(true); + expect(instance.byteValue()).toBe(7); + expect(instance.shortValue()).toBe(8); + expect(instance.charValue()).toBe("A"); + expect(instance.floatValue()).toBe(2.5); + }); + + it("returns arrays and handles void methods", function () { + return; + var instance = new com.tns.tests.ReturnTypeResolutionTest(); + var values = instance.intArrayValue(); + expect(values.length).toBe(3); + expect(values[0]).toBe(1); + expect(values[2]).toBe(3); + expect(instance.voidValue()).toBe(undefined); + }); + + it("keeps return types correct when overload resolution selects candidates", function () { + return; + var instance = new com.tns.tests.ReturnTypeResolutionTest(); + expect(instance.overloaded(1)).toBe("int-overload"); + expect(instance.overloaded("value")).toBe(7); + }); +}); diff --git a/platforms/android/test-app/app/src/main/java/com/tns/tests/ReturnTypeResolutionTest.java b/platforms/android/test-app/app/src/main/java/com/tns/tests/ReturnTypeResolutionTest.java new file mode 100644 index 000000000..0676e4204 --- /dev/null +++ b/platforms/android/test-app/app/src/main/java/com/tns/tests/ReturnTypeResolutionTest.java @@ -0,0 +1,58 @@ +package com.tns.tests; + +public class ReturnTypeResolutionTest { + public String stringValue() { + return "string-result"; + } + + public Object objectValue() { + return new String("object-result"); + } + + public int intValue() { + return 42; + } + + public long longValue() { + return 42000000000L; + } + + public double doubleValue() { + return 4.25d; + } + + public boolean booleanValue() { + return true; + } + + public byte byteValue() { + return 7; + } + + public short shortValue() { + return 8; + } + + public char charValue() { + return 'A'; + } + + public float floatValue() { + return 2.5f; + } + + public int[] intArrayValue() { + return new int[] { 1, 2, 3 }; + } + + public void voidValue() { + } + + public String overloaded(int value) { + return "int-overload"; + } + + public int overloaded(String value) { + return 7; + } +} diff --git a/platforms/android/test-app/app/src/release/java/com/tns/tests/OverloadResolutionFixture.java b/platforms/android/test-app/app/src/release/java/com/tns/tests/OverloadResolutionFixture.java new file mode 100644 index 000000000..a67fadf2b --- /dev/null +++ b/platforms/android/test-app/app/src/release/java/com/tns/tests/OverloadResolutionFixture.java @@ -0,0 +1,45 @@ +package com.tns.tests; + +public final class OverloadResolutionFixture { + private OverloadResolutionFixture() { + } + + public static final class HttpUrl { + } + + public interface Marker { + } + + public static final class MarkerImpl implements Marker { + } + + public static final class Builder { + public String url(HttpUrl value) { + return "http-url"; + } + } + + public static String pick(Object value) { + return "object"; + } + + public static String pick(HttpUrl value) { + return "http-url"; + } + + public static String text(Object value) { + return "object"; + } + + public static String marker(Object value) { + return "object"; + } + + public static String numeric(double value) { + return "double"; + } + + public static String array(Object[] value) { + return "object-array"; + } +} From eb283244702f030dbb4bd99d4c408f696cae1ec0 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 11:56:59 +0500 Subject: [PATCH 69/98] cleanup metadata tracing --- docs/metadata-filtering.md | 27 ++----------------- .../android/test-app/runtime/CMakeLists.txt | 6 ----- .../android/test-app/runtime/build.gradle | 10 ------- 3 files changed, 2 insertions(+), 41 deletions(-) diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md index 37214a4db..838e425fa 100644 --- a/docs/metadata-filtering.md +++ b/docs/metadata-filtering.md @@ -14,31 +14,8 @@ device QV7120NC26), not reasoned about. ## How to reproduce the measurements -Two instruments, both added by this lane: - -**Ground truth** -- what the app really resolves at runtime: - -```bash -cd platforms/android/test-app -./gradlew :app:assembleDebug -Pengine=HERMES -PbindingLayer=jsi -Pmetadata-usage-trace -# run the app, then: -adb logcat | grep NS_MD_USE # "C android/app/Activity", "P android/os", … -``` - -`-Pmetadata-usage-trace` compiles `NS_METADATA_USAGE_TRACE` into -`MetadataNode::GetOrCreateInternal`, the one place a metadata tree node becomes -a `MetadataNode`. It logs each node once. It is a diagnostic build only. - -> The flag has to reach the compiler, not just Gradle. Confirm with -> `grep NS_METADATA_USAGE_TRACE runtime/.cxx/Debug/*/arm64-v8a/compile_commands.json` -> and match the APK's `.so` build-id to that config -- a stale `.so` packaged by -> AGP has produced convincing all-green runs of a feature that was compiled out. -> Note that `-Pengine=V8-13` builds the **napi** tree and `-Pengine=HERMES -> -PbindingLayer=jsi` the jsi one. Both carry the tracer; they did not always, -> and a trace taken against the tree you did not build is empty rather than -> wrong, which is easy to misread as "nothing resolved". - -**Static harvest** -- what an analysis of the JS can see: +The static harvest is the supported measurement path; it describes what an +analysis of the JavaScript can see without runtime instrumentation: ```bash node platforms/android/test-app/build-tools/metadata-filter/harvest.js \ diff --git a/platforms/android/test-app/runtime/CMakeLists.txt b/platforms/android/test-app/runtime/CMakeLists.txt index 332bf87b6..d12df14e3 100644 --- a/platforms/android/test-app/runtime/CMakeLists.txt +++ b/platforms/android/test-app/runtime/CMakeLists.txt @@ -475,12 +475,6 @@ if (NS_CONTENT_KEYED_BINDINGS) target_compile_definitions(NativeScript PRIVATE NS_CONTENT_KEYED_BINDINGS) endif () -# Emit the set of metadata nodes the app actually resolves. Wired from -# runtime/build.gradle (-Pmetadata-usage-trace); a diagnostic build only. -if (NS_METADATA_USAGE_TRACE) - target_compile_definitions(NativeScript PRIVATE NS_METADATA_USAGE_TRACE) -endif () - # if("${ANDROID_ABI}" MATCHES "armeabi-v7a$" OR "${ANDROID_ABI}" MATCHES "x86$") # # On API Level 19 and lower we need to link with android_support # # because it contains some implementation of functions such as "strtoll" and "strtoul" diff --git a/platforms/android/test-app/runtime/build.gradle b/platforms/android/test-app/runtime/build.gradle index 9ce53d551..a360b2ece 100644 --- a/platforms/android/test-app/runtime/build.gradle +++ b/platforms/android/test-app/runtime/build.gradle @@ -29,12 +29,6 @@ if (!["napi", "jsi"].contains(bindingLayer)) { // in app/build.gradle. def contentKeyedBindings = project.hasProperty("content-keyed-bindings") -// Log every metadata node the app materialises, to logcat tag NS_MD_USE. This -// is the measuring instrument behind the build-time metadata filter: the trace -// is the ground truth a static harvest of the JS is scored against. Never on in -// a shipping build -- see docs/metadata-filtering.md. -def metadataUsageTrace = project.hasProperty("metadata-usage-trace") - printf("Compiling NativeScript with %s (runtime: %s).\n", jsEngine, bindingLayer) // Version.h moved under the per-binding runtime tree when the jsi runtime was @@ -208,10 +202,6 @@ android { arguments.add("-DNS_CONTENT_KEYED_BINDINGS=1") } - if (metadataUsageTrace) { - arguments.add("-DNS_METADATA_USAGE_TRACE=1") - } - if (bytecodeStacktraces) { arguments.add("-DNS_BYTECODE=1") } From 3b55a79dfe1cbc5d75128333a057f030e4d4c48f Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 11:57:59 +0500 Subject: [PATCH 70/98] remove temporary metadata filtering docs --- docs/metadata-filtering.md | 525 ------------------------------------- 1 file changed, 525 deletions(-) delete mode 100644 docs/metadata-filtering.md diff --git a/docs/metadata-filtering.md b/docs/metadata-filtering.md deleted file mode 100644 index 838e425fa..000000000 --- a/docs/metadata-filtering.md +++ /dev/null @@ -1,525 +0,0 @@ -# Filtering Android metadata by what the app actually uses - -Android metadata is currently shipped whole: every class of every jar on the -compile classpath, whether or not the app can reach it. For the runtime test-app -that is **2.83 MB** of `.dat` in the APK, all of it parsed into a tree at -startup. An app that touches 5% of the platform pays for 100% of it. - -The generator has accepted `whitelist.mdg` / `blacklist.mdg` filters for years. -Nothing has ever produced them automatically, and this document explains why -that is harder than it looks -- then what to do about it. - -Everything below is measured on the test-app (520 specs, Hermes/jsi, arm64, -device QV7120NC26), not reasoned about. - -## How to reproduce the measurements - -The static harvest is the supported measurement path; it describes what an -analysis of the JavaScript can see without runtime instrumentation: - -```bash -node platforms/android/test-app/build-tools/metadata-filter/harvest.js \ - platforms/android/test-app/app/src/main/assets/app --json harvest.json -``` - -## What the measurements say - -Static harvest of the 203 app JS files found **179** class names. The runtime -resolved **192** classes and **48** packages. The overlap is worse than those -totals suggest: **56 classes the app needs were invisible to the parser.** - -But the headline result is the one that comes from feeding the *exact ground -truth* back in as a whitelist: - -| Metadata | Size | Result | -|---|---|---| -| Unfiltered | 2.83 MB | 520 specs, 0 failures | -| Exact ground truth, 192 classes | **136 KB** | **crashes at launch** | -| …plus `android.os.Bundle` (1 class) | 136 KB | runs; 15 failures | - -The size prize is real -- **95%**. And a filter containing every class the app -was *observed to use* still cannot start the app. - -## Why perfect knowledge of usage is not enough - -`android.os.Bundle` is never named in the JS and never resolved as a metadata -node. It appears only as the parameter type of `Activity.onCreate(Bundle)`. -Strip it, and the runtime cannot rebuild that signature: - -``` -java.lang.NoSuchMethodError: no non-static method - "Landroid/app/Activity;.onCreate(Ljava/lang/Object;)V" -``` - -The parameter degraded to `Object` and no longer matched. **Metadata has -referential integrity**: a retained method drags in every type in its -signature. The 15 failures that remain after adding `Bundle` are all the same -shape -- `CharSequence` missing from a return type, `StackTraceElement` missing -from `Throwable.getStackTrace()`. - -This is the failure mode that would make a naive filter ship: it passes the -developer's happy path and breaks on the screen nobody tested. - -## The two lookup paths, and why only one is forgiving - -Missing metadata is **not** uniformly fatal. `MetadataReader::GetOrCreateTreeNodeByName` -falls back to `CallbackHandlers::GetTypeMetadata` -> `com.tns.Runtime.getTypeMetadata`, -which builds the type description **reflectively at runtime**. So a class -reached *by name* -- marshalling a Java object whose concrete class was -stripped -- recovers by itself, more slowly. - -Property access from JS does not. Package objects are built by enumerating the -metadata tree (`CreateTopLevelNamespaces`, `CreatePackageObject`), so a stripped -class is simply absent: - -``` -// with `java.text:*` blacklisted -TypeError: Cannot read property 'NumberFormat' of undefined -``` - -Measured: blacklisting `java.text` cost exactly 1 of 520 specs -- a hard, -unrecoverable throw. - -**Design consequence.** Concrete types the app never names (`WindowManagerImpl`, -`DirectByteBuffer`, `ArrayList` obtained from a return value) are safe to strip: -the reflective path covers them. Anything the JS *names*, and anything reachable -through a retained signature, is not. - -## What a parser cannot see - -Every one of the 56 misses, classified -- this is the list any design has to answer: - -| # | Category | Examples | Visible statically? | -|---|---|---|---| -| A | **Supertypes** of a used class | `Dialog` under `AlertDialog`; `ContextWrapper`; `Throwable`; `AbstractList` | No, but computable from the class graph | -| B | **Signature types** of retained members | `android.os.Bundle`, `CharSequence`, `StackTraceElement` | No, but computable from the class graph | -| C | **Nested classes** | `Button1.InnerButton`, `ViewGroup.MarginLayoutParams` | No, but computable | -| D | **Platform-returned concrete types** | `WindowManagerImpl`, `DirectByteBuffer`, `PathClassLoader` | No — and *not* computable (unbounded downward closure) | -| E | **Thrown types** | `FileNotFoundException`, `ClassCastException`, `LinkageError` | No | -| F | **Runtime's own dependencies** | `com.tns.NativeScriptException`, `java.lang.reflect.Method` | No — belongs to the runtime, not the app | -| G | **Computed access** | `java.lang[name]`, `Class.forName(s)` | Package only | -| H | **Unparseable files** | minified/exotic syntax | Nothing at all | - -A, B and C are the large ones and they are all *mechanical*: the generator -already holds the whole class graph in `SecuredClassRepository`. D and E are -covered by the reflective fallback for the marshalling path. F is fixed by a -keep-list that ships with the runtime. G and H are the genuinely undecidable -cases, and are what the easing rules exist for. - -### One concrete bug this exposed - -`harvest.js` recognises a Java FQN by matching its first segment against a -hardcoded root list (`java`, `android`, `com`, …). The test-app contains -`in.tns.tests.JavascriptKeywordClass`, whose root is the JS keyword `in` and -which the runtime therefore exposes as `$in` (`CreateTopLevelNamespaces` -prefixes keywords with `$`). The hardcoded list misses it entirely. - -A hardcoded root list is also the thing most certain to rot: it is a guess about -which top-level packages will exist. **The root set must be derived from the -metadata tree itself**, and the `$`-prefix mangling honoured. That single change -is most of the "still correct in ten years" requirement. - -## Proposed design - -**Seed** (what the app is known to want) - -1. Static harvest of the final JS bundle -- the same bundle the static binding - generator consumes, so there is one bundling step and one source of truth. -2. `AndroidManifest.xml`: every `android:name` (activities, services, - receivers, providers, `application`). -3. SBG output: every `.extend` base and `@Interfaces` entry. -4. A keep-list versioned with the runtime, for the classes the runtime itself - resolves (`com.tns.*`, the boxed primitives, `java.lang.reflect.*`, the - `Throwable` hierarchy, `java.nio.ByteBuffer`). It lives beside the code that - depends on it so the two cannot drift. - -**Closure** (computed in the generator, which already has the class graph) - -5. Transitive supertypes and implemented interfaces. -6. All nested classes of a retained class. -7. All types appearing in the signatures of retained members, then *their* - supertypes. This is the step whose absence crashes the app at launch, and it - is the one no JS-side tool can do. - -**Easing** (the user-facing safety valve, and the reason this can be default-on) - -8. Any construct the harvester cannot resolve widens the filter instead of - narrowing it: a computed access under `java.lang` keeps `java.lang:*`; a - package alias keeps that package; **a file that fails to parse disables - filtering for the whole build**, loudly. Over-inclusion costs bytes; - under-inclusion costs a crash. `harvest.js` already emits this as its - `roots` set — in the measurements above it independently flagged - `android.support.design`, which was one of the 15 failures. -9. App-authored keep rules, in the existing `.mdg` grammar. - -**Verification** (so a mistake is caught at build time, not in the field) - -10. A build-time check that the filtered tree is referentially closed: every - type named by a retained signature is itself retained. Cheap, and it is - exactly the invariant whose violation produced the launch crash above. -11. A diagnostic mode that ships unfiltered metadata but logs what a filtered - build *would* have dropped, so an app can be audited before switching over. - -**Rollout.** Off by default; opt-in per app; on by default only once it has -carried the 520-spec suite and the RN fixture. The generator's own default is -already fail-open -- absent `whitelist.mdg`, `UserPatternsCollection` allows -`*:*` -- so a build that cannot analyse its input ships everything, which is the -correct direction to fail. - -## Result - -Implemented and measured on the same 520-spec suite: - -| Metadata | Size | Result | -|---|---|---| -| Unfiltered | 2.83 MB | 520 specs, 0 failures | -| Exact usage, no closure | 136 KB | crashes at launch | -| **Generated seed + closure** | **700 KB** | **520 specs, 0 failures** | - -**75% smaller, suite green.** The seed is 449 classes harvested from the app's -own JS; the closure grows it to 2,183 -- and stops there, well short of the -classpath, so the unbounded closure is affordable and no depth limit is needed. - -Getting from "runs with 15 failures" to green took four fixes, each a category -the first measurement predicted: - -1. **Signature closure** -- supertypes, nested classes, and the types in every - retained signature. Launch crash -> runs. -2. **Kotlin extension functions** -- declared in a file class the app never - names and that nothing references, so the closure has to reach it from the - receiver side. Extension collection now runs *before* the closure, and - unfiltered, or the classes it needs are already gone. 10 failures -> 2. -3. **Keyword-mangled roots** -- `in.tns.tests.JavascriptKeywordClass` is written - `$in.…` in JS. The `$` prefix is now treated as proof of a Java package, so - this no longer depends on the hardcoded root list. -4. **Package spine** -- `if (android.support.design && …)` threw once every - class under `android.support` was filtered out and the package node went - with them. Empty package nodes are recreated for packages the seed names -- - but only up to the deepest prefix that exists on the classpath. Inventing - the rest breaks the same guard the other way: it passes, and the constructor - behind it is undefined. - -### ProGuard/R8 keep rules - -The generator writes `metadata-keep-rules.pro` (build dir, not assets) from the -same retained set. Metadata says what JS can name; R8 decides what survives into -the dex; neither can see the other's input, so both are driven from one set. -Classes absent from the rules are absent from the metadata too, so R8 is free to -remove them. Shrinking is still off by default -- the rules make it safe to turn -on, they do not turn it on. - -Members are kept wholesale per retained class. Per-member rules would need the -JS side to have resolved every call exactly, which it cannot; the class-level -strip is where the size comes from anyway. - -## Turning it on - -One flag, both builds. Off by default. - -```bash -# runtime test-app -./gradlew :app:assembleDebug -PnsFilterMetadata - -# a React Native app (release variants only -- debug has no bundle on disk) -./gradlew :app:assembleRelease -PnsFilterMetadata -``` - -The seed is derived automatically from the app's own JS: the test-app reads its -asset directory, and the RN plugin reuses the bundle the static binding -generator already produces, so no third Metro run. An app-authored -`whitelist.mdg` is concatenated with the generated one rather than replacing it --- both are keep-lists, so a hand-written entry can only ever add. - -A build without the flag ignores any generated seed still sitting in the working -directory. Consulting the file rather than the flag is how the RN plugin first -went wrong: the seed task's output survives, so every later unfiltered build went -on filtering against it. The flag is also a declared task input, since turning it -off leaves no file change behind for Gradle to notice. - -## The two checks - -Neither one subsumes the other, and the distinction matters. - -**Soundness** -- `ClosureVerifier`, in the generator, no device needed. Proves -the emitted metadata is internally consistent: no signature quietly rewritten. - -**Completeness** -- `verify-coverage.js`, needs a traced run. Proves the app did -not resolve anything the filter dropped. The soundness check is blind to this: -a class the JS names that never entered the seed produces no substitution for -it to notice, so nothing in the generator ever hears about it. - -Run completeness like this: - -```bash -./gradlew :app:assembleDebug -PnsFilterMetadata -Pmetadata-usage-trace -# run the app through as much of itself as possible, capturing logcat, then: -node build-tools/metadata-filter/verify-coverage.js \ - --trace logcat.txt --keep-rules app/build/nativescript/metadata-keep-rules.pro -``` - -On the 520-spec suite: **179 classes resolved from metadata, all retained; 13 -rebuilt by reflection**. That second number is the fallback path working as -designed -- `WindowManagerImpl`, `DirectByteBuffer`, `DecimalFormat` and the -Kotlin companions are absent from the filtered metadata and recovered at -runtime. The trace marks them `R` rather than `F` so the check does not count -them as misses. - -A third check, `checkMetadataRuntimeKeepList`, guards the one hand-written part -of the seed: it greps the runtime C++ for class-name literals and fails if -`RUNTIME_KEEP` no longer covers them. It needs no device and is wired into -`check`. - -## The soundness check - -`ClosureVerifier` fails the build if the filter changed the meaning of any -signature it emitted. It does not re-derive the closure -- it watches what -generation actually did, so it catches a closure that is wrong as well as one -that is incomplete. Only substitutions of types that exist on the classpath -count; a type that is genuinely absent is widened unfiltered too. - -Verified in both directions. Clean on the working filter, and with -`android.os:Bundle` blacklisted to simulate a closure bug: - -``` -Metadata filter is unsound: 1 signature type(s) were replaced by a supertype -because the filter dropped them. Each is a NoSuchMethodError waiting to happen -at runtime. - android.os.Bundle -> android.os.BaseBundle (needed by android.animation.LayoutTransition) -``` - -That is the exact defect that produced the launch crash, caught at build time. - -## App size - -Release APK, arm64 only, Hermes, `-PnsFilterMetadata` (which also turns on R8 -with the generated keep rules). Clean build on each side. - -| | Unfiltered | Filtered + R8 | Saved | -|---|---|---|---| -| APK total, as built | 28,899,229 | 26,432,698 | -2,466,531 (-8.5%) | -| **APK minus test fixtures** | **7,902,658** | **5,436,127** | **-2,466,531 (-31.2%)** | -| dex (uncompressed) | 7,060,432 | 1,986,864 | **-5,073,568 (-71.9%)** | -| metadata (compressed) | 939,188 | 238,698 | -700,490 (-74.6%) | - -Read the second row, not the first. 21 MB of this APK is four -`assets/app/modules/libCalc-*.so` test fixtures -- the same native test module -for all four ABIs, byte-identical in both builds. They live under `assets/` -rather than `lib/`, so `-PonlyArm64` does not filter them, and no real app -carries anything like them. Against the payload an app actually ships, the -saving is about a third of the APK. - -**The dex is where the win is** -- 7.1 MB to 2.0 MB. Metadata filtering saves -0.7 MB on its own; letting R8 strip the same set saves five megabytes more. The -two only work together: R8 cannot see that JS reaches a class, so without the -generated keep rules it strips the app's own dependencies, and with a keep-all -rule it strips nothing. - -What is left after the dex is native code that no metadata work can touch: -libhermesvm 1.83 MB, libNativeScript 0.50 MB, libc++_shared 0.45 MB, libfbjni -0.06 MB, libjsi 0.04 MB -- 2.9 MB compressed in total. Once the dex is shrunk, -the engine is the floor. - -Verified: **520 specs, 0 failures** on the shrunk release APK, not just on the -filtered metadata. - -> Measure on a clean `packageRelease`. Incremental packaging reuses the previous -> APK layout and pads the freed space instead of reclaiming it -- two debug APKs -> whose metadata differed by 787KB came out **byte-identical in total size**, -> which reads exactly like the filter having no effect. - -### On a React Native app - -The conformance fixture, release, all four ABIs, minification left at the -template's `minifyEnabled false`: - -| | Unfiltered | Filtered | Saved | -|---|---|---|---| -| metadata (uncompressed) | 3,229,026 | 656,364 | -2,572,662 (-79.7%) | -| APK total | 62,457,492 | 61,610,564 | -846,928 (-1.4%) | -| dex | 11,637,348 | 11,637,348 | 0 | - -Seed 261 classes, 2,203 retained after closure, out of a classpath of 89 jars. - -The dex row is the whole point of the caveat the plugin logs: filtering shrinks -the metadata whatever the app does, but the five-megabyte half of the test-app's -win came from R8, and an app with `minifyEnabled false` gets none of it. The -plugin writes the keep rules either way and wires them into R8 only if the app -already minifies -- turning minification on is the app's decision, not a side -effect of asking for smaller metadata. - -Verified on device: all 16 conformance checks pass on the filtered release APK. - -#### The `global.` prefix - -That device run is the only reason this section is not reporting a false -success. Four checks failed on the first filtered APK -- -`System.currentTimeMillis`, `Build.VERSION.SDK_INT`, and two through -`java.util.Collections` -- each with `Cannot read property … of undefined`, the -JS-property-access failure mode described above. - -In a module, `java` is not a declared binding, so the natural spelling is -`global.java.lang.System`. The harvester walked that chain from its root -identifier and emitted `global.java.lang:System`, which matches no package and -retained nothing. The build was green, the closure was sound, and the app broke -on the fourth line. `staticChain` now unwraps a root of `global`, `globalThis`, -`window` or `self` before reading the package path. - -Worth noting what did *not* catch it. The soundness check cannot: nothing ever -asked the generator for `java.lang.System`. Neither would `verify-coverage.js` -without a run that reaches those lines. A class the JS names but the seed never -hears about is only visible from a device. - -### Why the rules say -dontobfuscate - -Shrinking is kept; renaming is not. Every lookup this runtime makes is by name: -metadata names classes, JS names them through it. A `-keep` rule preserves the -names of classes it *matches*, but R8 still renames the synthetic classes it -generates itself. - -That is not hypothetical. Below minSdk 24, desugaring moves a static interface -method into a synthetic companion (`Foo$-CC`), and the runtime tries the -interface and both companion spellings in turn -(`JEnv::GetInterfaceStaticMethodIDAndJClass`). With renaming on, R8 kept the -companion -- it is in `seeds.txt` -- and emitted it as `B.a`: - -``` -com.tns.tests.interfaces.staticmethods.StaticProducer$-CC -> B.a: -# {"id":"com.android.tools.r8.synthesized"} -``` - -Three specs failed with "Could not call static interface method". Adding -`-keep class **$-CC { *; }` did not help, because the defect was renaming rather -than removal. Renaming buys some string space; removing unreachable classes is -where the five megabytes come from, and that still happens. - -## Known limits - -Two checks and a set of heuristics cover most of what static analysis cannot -see. What remains, stated plainly: - -**JS that does not exist at build time cannot be analysed.** CodePush/OTA -updates, `eval` of code fetched at runtime, or class names arriving from a -server. A JS update naming a class the shipped filter dropped will fail, and no -build-time check can see it coming. **Do not enable filtering on an app that -ships JS out of band.** This is not a gap that can be closed -- it is the same -reason R8 cannot shrink a reflective Java app safely. - -**`-dontobfuscate` is forced whenever filtering is on.** Correct for a -name-driven bridge, but it removes obfuscation as an option for apps that want -it for other reasons. Shrinking, where the size comes from, is unaffected. - -**Coverage checking is only as good as the run.** `verify-coverage.js` proves -nothing the traced run touched is missing. A screen the run never opened is not -covered, so point it at the broadest run available. - -**The RN path is release-only**, so an app can pass in debug and fail in -release. That is the safer direction (debug is unfiltered) but it means the -filter's correctness is exercised on the less frequently run build. - -## Both binding layers - -The instruments and the class-naming scheme they assume live in the runtime, and -the runtime has two independent trees: `NativeScript/ffi/jni/napi` and -`NativeScript/ffi/jni/jsi`. Everything here was built in the jsi tree first, so -for a while the tracer, `synthesizedAtRuntime` and content-keyed bindings simply -did not exist on the napi side -- which is also the **default** binding layer -(`bindingLayer` defaults to `napi` in `runtime/build.gradle`). A napi build with -`-Pmetadata-usage-trace` produced no trace at all, and `-Pcontent-keyed-bindings` -was a no-op there while the static binding generator went on emitting hashed -names, quietly sending every extend down the on-device dex path. - -The napi tree now carries all three, and `CollectImplementedInterfaceNames` / -`CollectMethodOverrideNames` are factored out of the JNI array builders on both -sides, so the hashed set and the set handed to the generator cannot drift apart -within a tree. Verified on napi (`-Pengine=V8-13 -Pcontent-keyed-bindings`): - -| | jsi | napi | -|---|---|---| -| spec suite | 520 / 0 | 520 / 0 | -| classes generated on device | 7 | 7 | -| `verify-coverage.js` under filtering | clean | clean | - -The one intentional difference: jsi's `ContentKeyedBindingsEnabled` also returns -true under `NS_JSI_HOST_RUNTIME`, because a guest runs inside the embedder's -bundle and can never agree with the generator on source coordinates. napi is -never embedded that way, so there it is the `NS_CONTENT_KEYED_BINDINGS` define -alone. - -### Why a class is still built on device - -Both layers were at 27 until the two causes below were found by listing -`code_cache/secondary-dexes` on the device and diffing it against the -`com.tns.gen.*` classes in the APK. Neither showed up as a failure: a class the -generator missed is built at startup and works. - -**The hash disagreed (11 → 0).** Three independent divergences, all invisible to -the build: - -- `ts_helpers`' `__extends` writes `__parent` and `__child` onto the prototype - before deferring to `extend()`. `CollectMethodOverrideNames` takes every own - property, so both were hashed; the generator reads the class body from source - and cannot see them. Every TypeScript-transpiled subclass was therefore - permanently out of step. They are now excluded alongside `super`, - `constructor` and the runtime's own stamps. -- Nested types reach the runtime as `Pack200$Unpacker` and the generator as - `Pack200.Unpacker` -- the generator reads JS source, where a nested type is - spelled with a dot and is indistinguishable from a package. Both sides now - collapse `/` and `$` to `.`, and both canonicalize *before* sorting, since - `$` and `.` sort differently. - -- A **quoted key** was skipped by the parser. `{ "toString": function () {} }` - is the same override as `{ toString: function () {} }` -- the runtime - enumerates own property names and cannot tell them apart -- but - `_getIdentifierKeyName` accepted only `Identifier` keys, so any app writing - its overrides that way was permanently out of step. Minifiers and code - generators emit the quoted form routinely, so this is the one of the three - most likely to bite a real app rather than a test fixture. Quoted keys that - are legal identifiers now count; spreads, computed keys and numeric keys stay - skipped, because nothing can map those to a Java method. - -`ContentKeyTest` and `tests/native-class-visitor.test.js` pin these, because the -only other place the disagreement surfaces is a slower startup on a device. - -**Why a disagreement is safe.** Both sides derive the key from the method list, -so any difference in the list changes the key, and a changed key simply misses -the pre-generated class -- the runtime then builds the right one itself. The -failure mode is always a slower launch, never a wrong class. That is worth -knowing before hunting one of these: nothing is broken, something is just not -being used. - -**The interface was never pre-generated (10 → 0).** `GetInterfaceNames` walked -only classpath entries ending in `.jar`, and the app's own compiled classes -arrive as a directory. An interface the app declares was therefore missing from -`sbg-interface-names.txt`, so the parser did not recognise -`new com.tns.tests.InterfaceOne({...})` as implementing one. Directories are now -walked too: 23 app interfaces appeared, and the generator went from 71 -pre-generated classes to 84. - -**The 7 that remain** are cases a static parser genuinely cannot resolve, and -are not worth chasing: - -| Class | Why | -|---|---| -| `ClassForNameDiscoveryObject`, `…Instantiated` | reached through `java.lang.Object[ext](…)` -- computed member access | -| `Button1_btn1344`, `DummyDerivedClass_D1440` | the implementation object is a variable, so its method names are not in the source | -| `TextView_h…`, `Button1_Button1_h…` | no binding emitted for that base at all; both have empty override sets | -| `java.lang.Object_hd50…` | the implementation object is assembled as a **string and `eval`'d** | - -> Do not classify these by matching the base-class stem. An unnamed extend's -> name is just `_h`, so the stem matches every other unnamed extend -> of the same base, and a class the generator never emitted looks like a hash -> disagreement. The `eval` case above was misread that way; the honest test is -> whether the exact name is present. `FNV("java.lang.Object||hashCode")` -- -> recomputing the payload by hand -- is what identified it. - -## Status - -Done: the instruments, the taxonomy, the closure, the easing rules, the seed -generator, the keep-rules emitter, the soundness check, Gradle wiring for both -the test-app and the RN plugin, and parity across both binding layers. Green on -the 520-spec suite with filtering on, on a React Native release build, and the -size numbers above. - -Not done: R8 shrinking is still off by default -- the keep rules make it safe to -enable, they do not enable it. On React Native that is the whole dex saving, and -the template ships `minifyEnabled false`. From 95d8234627d43f5d79f51b31af51fa9ab424147f Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 11:58:51 +0500 Subject: [PATCH 71/98] remove stale metadata docs references --- packages/react-native/android/nativescript.gradle | 4 +--- platforms/android/test-app/app/build.gradle | 2 +- .../metadata/security/filtering/closure/MetadataClosure.kt | 2 +- .../security/filtering/closure/ProguardRulesWriter.kt | 2 +- .../android/test-app/build-tools/metadata-filter/harvest.js | 3 +-- .../android/test-app/build-tools/metadata-filter/seed.js | 1 - 6 files changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/react-native/android/nativescript.gradle b/packages/react-native/android/nativescript.gradle index 84cfb3d1c..7182e75a5 100644 --- a/packages/react-native/android/nativescript.gradle +++ b/packages/react-native/android/nativescript.gradle @@ -72,13 +72,12 @@ def nsEntryFile = reactExt?.entryFile?.getOrNull()?.asFile?.absolutePath // On by default, and release-only: a debug build has no bundle on disk to // analyse, and guessing from a partial view is what breaks apps. Shipping // metadata for the whole compile classpath means an app that touches 5% of the -// platform pays for 100% of it, in both APK size and startup parse time. // // The seed is a lower bound that the generator widens (supertypes, nested // classes, signature types) before dropping anything, because usage alone is // not enough: android.os.Bundle is never named in JS and never resolved as a // node, yet removing it makes Activity.onCreate(Bundle) unbuildable and the app -// crashes at launch. See docs/metadata-filtering.md. +// crashes at launch. // // -PnsFilterMetadata=false opts out and ships the whole classpath, which is the // escape hatch if a filtered build misses something. @@ -981,7 +980,6 @@ android.applicationVariants.all { variant -> // break in the field. The seed is only a starting point: the generator // closes over supertypes, nested classes and signature types, and fails // the build if that closure turns out unsound. - // See docs/metadata-filtering.md. if (nsFilterMetadata) { def seedTask = tasks.register("generateNativeScriptMetadataSeed${variantName}") { group = "nativescript" diff --git a/platforms/android/test-app/app/build.gradle b/platforms/android/test-app/app/build.gradle index fc743d194..aee8db93a 100644 --- a/platforms/android/test-app/app/build.gradle +++ b/platforms/android/test-app/app/build.gradle @@ -868,7 +868,7 @@ task 'collectAllJars' { // // The seed is only a starting point -- the generator closes over supertypes, // nested classes and signature types before dropping anything, and fails the -// build if that closure turns out to be unsound. See docs/metadata-filtering.md. +// build if that closure turns out to be unsound. def nsFilterMetadata = project.hasProperty("nsFilterMetadata") // Build-owned, and deliberately NOT $rootDir/whitelist.mdg: that path belongs to diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt index 41804d308..bab9e556c 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/MetadataClosure.kt @@ -11,7 +11,7 @@ import com.telerik.metadata.storage.functions.extensions.ExtensionFunctionsStora * * A whitelist naming exactly the classes an app was observed to use does not * work: it produces metadata that cannot start the app. Two reasons, both - * measured -- see docs/metadata-filtering.md. + * measured. * * - A retained class's *supertypes* carry most of its members. * - A retained method's *signature types* must be present **exactly**. When one diff --git a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt index 24ec53a65..3333f2337 100644 --- a/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt +++ b/platforms/android/test-app/build-tools/android-metadata-generator/src/src/com/telerik/metadata/security/filtering/closure/ProguardRulesWriter.kt @@ -35,7 +35,7 @@ object ProguardRulesWriter { # here are absent from the metadata too, so JS cannot name # them and R8 is free to remove them. # - # Regenerate by rebuilding; see docs/metadata-filtering.md. + # Regenerate by rebuilding. """.trimIndent() ) diff --git a/platforms/android/test-app/build-tools/metadata-filter/harvest.js b/platforms/android/test-app/build-tools/metadata-filter/harvest.js index bd4ecd0a3..8614a9b94 100644 --- a/platforms/android/test-app/build-tools/metadata-filter/harvest.js +++ b/platforms/android/test-app/build-tools/metadata-filter/harvest.js @@ -5,8 +5,7 @@ * The output is deliberately two-sided. `resolved` is what the analysis could * name exactly. `roots` is what it could only place -- a package it is sure the * program reaches into but whose class it cannot name, because the access was - * computed. A filter built from `resolved` alone would be wrong: see - * docs/metadata-filtering.md for the measurement that says by how much. Every + * computed. A filter built from `resolved` alone would be wrong. Every * construct this file cannot resolve must widen `roots`, never fail silently; * that asymmetry is the whole safety argument. */ diff --git a/platforms/android/test-app/build-tools/metadata-filter/seed.js b/platforms/android/test-app/build-tools/metadata-filter/seed.js index a86fbdc9a..ee28616e9 100644 --- a/platforms/android/test-app/build-tools/metadata-filter/seed.js +++ b/platforms/android/test-app/build-tools/metadata-filter/seed.js @@ -270,7 +270,6 @@ function main() { "# GENERATED from the app's JS bundle. Do not edit.\n" + "# Seed only -- the metadata generator computes the closure over\n" + "# supertypes, nested classes and signature types before filtering.\n" + - "# See docs/metadata-filtering.md.\n" + sorted.join("\n") + "\n" ); From dc76a5c7dca9cec1b21b75a374d4f76b0474062d Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sat, 19 Sep 2026 12:00:43 +0500 Subject: [PATCH 72/98] document metadata filter tools --- .../build-tools/metadata-filter/README.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 platforms/android/test-app/build-tools/metadata-filter/README.md diff --git a/platforms/android/test-app/build-tools/metadata-filter/README.md b/platforms/android/test-app/build-tools/metadata-filter/README.md new file mode 100644 index 000000000..875e7e91b --- /dev/null +++ b/platforms/android/test-app/build-tools/metadata-filter/README.md @@ -0,0 +1,88 @@ +# NativeScript Android metadata filter + +This directory contains the build-time metadata filtering tools used by the +Android test application. The filter derives a conservative class seed from +the JavaScript bundle and lets the metadata generator expand that seed into a +safe metadata closure. + +## Purpose + +The complete Android classpath contains substantially more metadata than an +application normally needs. Filtering reduces the generated metadata while +preserving classes required indirectly through: + +- superclass and interface relationships; +- nested and enclosing classes; +- method and field signatures; +- constructors and generated bindings; +- NativeScript runtime-owned requirements; +- unresolved or computed JavaScript access, which widens the retained scope. + +The filter is conservative. If an access cannot be resolved safely, it retains +the narrowest provably safe package or class scope. If no safe scope exists, +the complete relevant member set is retained rather than risking a runtime +metadata miss. + +## Tools + +`harvest.js` scans a JavaScript bundle and emits the names that can be +resolved statically. It records both exact resolved classes and broader roots +for computed or uncertain access. + +`seed.js` converts the harvested bundle, Android manifest, resources, and SBG +bindings into a deterministic seed file. The metadata generator then expands +the seed through its superclass, interface, nested-class, and signature-type +closure. + +`check-runtime-keeplist.js` checks that classes referenced directly by native +runtime source are represented in the runtime keep list. + +## Typical usage + +From the Android test-app directory: + +```bash +node build-tools/metadata-filter/harvest.js \ + app/src/main/assets/app \ + --json build-tools/metadata-filter/harvest.json + +node build-tools/metadata-filter/seed.js \ + app/src/main/assets/app \ + --manifest platforms/android/app/src/main/AndroidManifest.xml \ + --out build-tools/whitelist.mdg + +node build-tools/metadata-filter/check-runtime-keeplist.js \ + ../../../../NativeScript/ffi/jni/jsi \ + ../../../../NativeScript/runtime/android/jsi +``` + +`seed.js` runs the harvester itself, so invoking `harvest.js` separately is +only useful when inspecting or debugging the intermediate JSON. Normal Gradle +builds invoke the seed and closure steps through the metadata-generation task. +The generated JSON, seed, and whitelist are build outputs and should not be +edited manually. + +## Build controls + +Release builds enable filtering by default when the bundle is available. Use +`-PnsFilterMetadata=false` to disable filtering and generate metadata for the +complete classpath. This is useful for compatibility comparisons and +diagnosing a suspected filtering miss. + +Filtering is intentionally disabled when the required bundle analysis input +is unavailable. A partial analysis must not silently produce an incomplete +metadata set. + +## Invariants + +The filter must remain: + +1. deterministic for identical inputs; +2. conservative for computed property access; +3. closed over all referenced types and supertypes; +4. compatible with generated bindings and runtime-owned requirements; and +5. fail-fast when its input or generated closure is inconsistent. + +After changing the filter, rebuild the Android test app and exercise the +metadata-backed Java and Kotlin runtime tests. A successful JavaScript bundle +build alone does not prove that the generated metadata is complete. From 11ad54fabc9362a3eebcebb1e08cd9712fa5d196 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Fri, 25 Sep 2026 02:27:19 +0500 Subject: [PATCH 73/98] fix(android): Android overload return type metadata --- .../ffi/jni/jsi/metadata/MetadataEntry.cpp | 18 +++++++++++------- .../ffi/jni/jsi/metadata/MetadataEntry.h | 1 + .../ffi/jni/jsi/metadata/MetadataNode.cpp | 2 +- .../ffi/jni/napi/metadata/MetadataEntry.cpp | 18 +++++++++++------- .../ffi/jni/napi/metadata/MetadataEntry.h | 1 + .../ffi/jni/napi/metadata/MetadataNode.cpp | 2 +- .../assets/app/tests/testMethodResolution.js | 12 +++++++++++- .../tests/testOverloadResolutionRegression.js | 15 --------------- .../app/tests/testReturnTypeResolution.js | 5 +---- 9 files changed, 38 insertions(+), 36 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.cpp index 7836dfbfd..c3f8badeb 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.cpp @@ -64,16 +64,20 @@ std::string &MetadataEntry::getReturnType() { } MethodReturnType MetadataEntry::getRetType() { - if (retTypeParsed) return retType; - auto reader = MetadataNode::getMetadataReader(); - - if (type == NodeType::Method && !this->getReturnType().empty()) { - retType = MetadataReader::GetReturnType(this->returnType); + if (retTypeParsed && retType != MethodReturnType::Unknown) { + return retType; } - retTypeParsed = true; + auto &methodReturnType = this->getReturnType(); + if (!methodReturnType.empty()) { + retType = MetadataReader::GetReturnType(methodReturnType); + retTypeParsed = retType != MethodReturnType::Unknown; + return retType; + } - return retType; + retType = MethodReturnType::Unknown; + retTypeParsed = false; + return MethodReturnType::Unknown; } std::string &MetadataEntry::getDeclaringType() { diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.h b/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.h index 6e708526c..1cb79b071 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.h +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataEntry.h @@ -56,6 +56,7 @@ namespace tns { sig = other.sig; returnType = other.returnType; retType = other.retType; + retTypeParsed = other.retTypeParsed; declaringType = other.declaringType; paramCount = other.paramCount; isFinal = other.isFinal; diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index ac181aeaa..5ce0d8156 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -1518,8 +1518,8 @@ std::vector MetadataNode::SetInstanceMembers entry.paramCount = paramCount; entry.isStatic = false; if (chKind == 'M') { + entry.type = NodeType::Method; if (entry.name != lastMethodName) { - entry.type = NodeType::Method; callbackData = new MethodCallbackData(this); instanceMethodData.push_back(callbackData); instanceMethodsCallbackData.push_back(callbackData); diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataEntry.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataEntry.cpp index 7836dfbfd..c3f8badeb 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataEntry.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataEntry.cpp @@ -64,16 +64,20 @@ std::string &MetadataEntry::getReturnType() { } MethodReturnType MetadataEntry::getRetType() { - if (retTypeParsed) return retType; - auto reader = MetadataNode::getMetadataReader(); - - if (type == NodeType::Method && !this->getReturnType().empty()) { - retType = MetadataReader::GetReturnType(this->returnType); + if (retTypeParsed && retType != MethodReturnType::Unknown) { + return retType; } - retTypeParsed = true; + auto &methodReturnType = this->getReturnType(); + if (!methodReturnType.empty()) { + retType = MetadataReader::GetReturnType(methodReturnType); + retTypeParsed = retType != MethodReturnType::Unknown; + return retType; + } - return retType; + retType = MethodReturnType::Unknown; + retTypeParsed = false; + return MethodReturnType::Unknown; } std::string &MetadataEntry::getDeclaringType() { diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataEntry.h b/NativeScript/ffi/jni/napi/metadata/MetadataEntry.h index 6e708526c..1cb79b071 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataEntry.h +++ b/NativeScript/ffi/jni/napi/metadata/MetadataEntry.h @@ -56,6 +56,7 @@ namespace tns { sig = other.sig; returnType = other.returnType; retType = other.retType; + retTypeParsed = other.retTypeParsed; declaringType = other.declaringType; paramCount = other.paramCount; isFinal = other.isFinal; diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index 9e21b6bbb..6b8cb2f28 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -1778,8 +1778,8 @@ std::vector MetadataNode::SetInstanceMembers entry.paramCount = paramCount; entry.isStatic = false; if (chKind == 'M') { + entry.type = NodeType::Method; if (entry.name != lastMethodName) { - entry.type = NodeType::Method; callbackData = new MethodCallbackData(this); MetadataNode::GetMetadataNodeCache(env)->methodCallbackData.push_back(callbackData); instanceMethodData.push_back(callbackData); diff --git a/platforms/android/test-app/app/src/main/assets/app/tests/testMethodResolution.js b/platforms/android/test-app/app/src/main/assets/app/tests/testMethodResolution.js index a5bf51139..2c485d0af 100644 --- a/platforms/android/test-app/app/src/main/assets/app/tests/testMethodResolution.js +++ b/platforms/android/test-app/app/src/main/assets/app/tests/testMethodResolution.js @@ -1,5 +1,15 @@ describe("Test Method Resolution", function () { + it("resolves both TimeZone.getOffset overloads and preserves the int return", function () { + var zone = java.util.TimeZone.getTimeZone("Europe/Paris"); + var epoch = Date.UTC(2025, 0, 15); + + for (var i = 0; i < 100; i++) { + expect(zone.getOffset(epoch)).toBe(3600000); + expect(zone.getOffset(1, 2025, 0, 15, 4, 0)).toBe(3600000); + } + }); + it("When_call_overloaded_base_method_it_should_call_base_method1", function () { __log("TEST: When_call_overloaded_base_method_it_should_call_base_method1"); @@ -80,4 +90,4 @@ describe("Test Method Resolution", function () { expect(res1).toBe(1); expect(res2).toBe(2); }); -}); \ No newline at end of file +}); diff --git a/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js b/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js index 2ab9eae54..1a52b1a04 100644 --- a/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js +++ b/platforms/android/test-app/app/src/main/assets/app/tests/testOverloadResolutionRegression.js @@ -26,21 +26,6 @@ describe("Tests overload resolution with same-arity reference overloads", functi expect(builder.url(javaUrl)).toBe("java-url"); }); - it("resolves a real external-library overload when metadata exposes an incomplete candidate set", function () { - var builder = new okhttp3.Request.Builder(); - var request; - var error; - - try { - request = builder.url("https://example.com").build(); - } catch (e) { - error = e; - } - - expect(error).toBeUndefined(); - expect(request.url().toString()).toBe("https://example.com/"); - }); - it("resolves String, CharSequence, and Object overloads by runtime facts", function () { expect(com.tns.tests.OverloadResolutionFixture.text("value")).toBe("string"); expect(com.tns.tests.OverloadResolutionFixture.text(new java.lang.String("value"))).toBe("string"); diff --git a/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js b/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js index 5b859f760..ecf309188 100644 --- a/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js +++ b/platforms/android/test-app/app/src/main/assets/app/tests/testReturnTypeResolution.js @@ -14,10 +14,9 @@ describe("Tests metadata-first return type resolution", function () { }); it("returns every primitive category through the metadata fast path", function () { - return; var instance = new com.tns.tests.ReturnTypeResolutionTest(); expect(instance.intValue()).toBe(42); - expect(instance.longValue()).toBe(long(42000000000)); + expect(instance.longValue()).toBe(42000000000); expect(instance.doubleValue()).toBe(4.25); expect(instance.booleanValue()).toBe(true); expect(instance.byteValue()).toBe(7); @@ -27,7 +26,6 @@ describe("Tests metadata-first return type resolution", function () { }); it("returns arrays and handles void methods", function () { - return; var instance = new com.tns.tests.ReturnTypeResolutionTest(); var values = instance.intArrayValue(); expect(values.length).toBe(3); @@ -37,7 +35,6 @@ describe("Tests metadata-first return type resolution", function () { }); it("keeps return types correct when overload resolution selects candidates", function () { - return; var instance = new com.tns.tests.ReturnTypeResolutionTest(); expect(instance.overloaded(1)).toBe("int-overload"); expect(instance.overloaded("value")).toBe(7); From a682a610e43df82445b2ee4d15c04e1fd05f6eb2 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Wed, 30 Sep 2026 23:14:12 +0500 Subject: [PATCH 74/98] fix(android): exlcude js files app/assets folder when compiling to bytecode --- .../bytecode-compiler/compile-bytecode.js | 170 ++++++++++++------ 1 file changed, 118 insertions(+), 52 deletions(-) diff --git a/platforms/android/tools/bytecode-compiler/compile-bytecode.js b/platforms/android/tools/bytecode-compiler/compile-bytecode.js index 23131406f..56227eb2f 100644 --- a/platforms/android/tools/bytecode-compiler/compile-bytecode.js +++ b/platforms/android/tools/bytecode-compiler/compile-bytecode.js @@ -61,28 +61,29 @@ * --verbose Log every file processed. */ -'use strict'; +"use strict"; -const fs = require('fs'); -const path = require('path'); -const os = require('os'); -const { spawnSync } = require('child_process'); +const fs = require("fs"); +const path = require("path"); +const os = require("os"); +const { spawnSync } = require("child_process"); -const { adapterForEngine, hostKey } = require('./lib'); +const { adapterForEngine, hostKey } = require("./lib"); // MUST stay identical to ModuleInternal::MODULE_PROLOGUE / MODULE_EPILOGUE. -const MODULE_PROLOGUE = '(function(module, exports, require, __filename, __dirname){ '; -const MODULE_EPILOGUE = '\n})'; +const MODULE_PROLOGUE = + "(function(module, exports, require, __filename, __dirname){ "; +const MODULE_EPILOGUE = "\n})"; function parseArgs(argv) { const opts = { app: null, engine: null, - binDir: path.join(__dirname, 'bin'), + binDir: path.join(__dirname, "bin"), compiler: null, - raw: ['internal/ts_helpers.js'], + raw: ["internal/ts_helpers.js"], // The runtime loads JS from these two only; see listJsFiles. - roots: ['app', 'internal'], + roots: ["app", "internal"], keepSource: false, sourceMaps: false, optimize: undefined, @@ -93,37 +94,77 @@ function parseArgs(argv) { for (let i = 2; i < argv.length; i++) { const a = argv[i]; switch (a) { - case '--app': opts.app = argv[++i]; break; - case '--roots': opts.roots = argv[++i].split(',').map((r) => r.trim()).filter(Boolean); break; - case '--engine': opts.engine = argv[++i]; break; - case '--bin-dir': opts.binDir = argv[++i]; break; - case '--compiler': opts.compiler = argv[++i]; break; - case '--raw': opts.raw = argv[++i].split(',').map((s) => s.trim()).filter(Boolean); break; - case '--keep-source': opts.keepSource = true; break; - case '--source-maps': opts.sourceMaps = true; break; - case '--optimize': opts.optimize = argv[++i]; break; - case '--strict': opts.strict = true; break; - case '--keep-going': opts.keepGoing = true; break; - case '--verbose': opts.verbose = true; break; - default: throw new Error(`Unknown argument: ${a}`); + case "--app": + opts.app = argv[++i]; + break; + case "--roots": + opts.roots = argv[++i] + .split(",") + .map((r) => r.trim()) + .filter(Boolean); + break; + case "--engine": + opts.engine = argv[++i]; + break; + case "--bin-dir": + opts.binDir = argv[++i]; + break; + case "--compiler": + opts.compiler = argv[++i]; + break; + case "--raw": + opts.raw = argv[++i] + .split(",") + .map((s) => s.trim()) + .filter(Boolean); + break; + case "--keep-source": + opts.keepSource = true; + break; + case "--source-maps": + opts.sourceMaps = true; + break; + case "--optimize": + opts.optimize = argv[++i]; + break; + case "--strict": + opts.strict = true; + break; + case "--keep-going": + opts.keepGoing = true; + break; + case "--verbose": + opts.verbose = true; + break; + default: + throw new Error(`Unknown argument: ${a}`); } } - if (!opts.app) throw new Error('--app is required'); - if (!opts.engine) throw new Error('--engine is required'); + if (!opts.app) throw new Error("--app is required"); + if (!opts.engine) throw new Error("--engine is required"); return opts; } function listJsFiles(dir, roots) { const out = []; + // Android WebView and other packaged payloads can live under app/assets, + // but they are not NativeScript modules and must remain source files. + // Support both --app= and the historical --app=assets/app + // shape, which falls back to walking ".". + const excludedDirs = new Set([ + path.resolve(dir, "app", "assets"), + path.resolve(dir, "assets"), + ]); const walk = (d) => { for (const entry of fs.readdirSync(d, { withFileTypes: true })) { const full = path.join(d, entry.name); - if (entry.isDirectory()) walk(full); - else if (entry.isFile() && entry.name.endsWith('.js')) out.push(full); + if (entry.isDirectory()) { + if (!excludedDirs.has(path.resolve(full))) walk(full); + } else if (entry.isFile() && entry.name.endsWith(".js")) out.push(full); } }; for (const root of roots) { - const start = root === '.' ? dir : path.join(dir, root); + const start = root === "." ? dir : path.join(dir, root); if (!fs.existsSync(start)) continue; walk(start); } @@ -131,7 +172,7 @@ function listJsFiles(dir, roots) { } function readHead(file, n) { - const fd = fs.openSync(file, 'r'); + const fd = fs.openSync(file, "r"); try { const head = Buffer.alloc(n); const read = fs.readSync(fd, head, 0, n, 0); @@ -143,7 +184,7 @@ function readHead(file, n) { /** Normalize to a forward-slashed app-relative path for raw-file matching. */ function relKey(appDir, file) { - return path.relative(appDir, file).split(path.sep).join('/'); + return path.relative(appDir, file).split(path.sep).join("/"); } function resolveCompiler(opts, adapter, host) { @@ -168,7 +209,7 @@ function isPlaceholder(file) { // app/app/shared/Workers/ and the load fails. Files outside app/ (internal/) are // run by absolute path, so their name only shows up in stack traces. function compileFile(opts, adapter, compiler, file, isRaw, nameBase) { - const source = fs.readFileSync(file, 'utf8'); + const source = fs.readFileSync(file, "utf8"); const wrapped = isRaw ? source : MODULE_PROLOGUE + source + MODULE_EPILOGUE; // Embed the app-relative path as the module's source name so runtime stack @@ -185,15 +226,16 @@ function compileFile(opts, adapter, compiler, file, isRaw, nameBase) { // device path), and that prefix is device-specific anyway. The app-relative // path is the identity all engines can embed consistently. const rel = relKey(nameBase, file); - const relParts = rel.split('/'); - const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'nsbc-')); + const relParts = rel.split("/"); + const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "nsbc-")); const tmpSrc = path.join(tmpDir, ...relParts); - const tmpOut = path.join(tmpDir, path.basename(file) + '.bc'); + const tmpOut = path.join(tmpDir, path.basename(file) + ".bc"); const wantMap = opts.sourceMaps && adapter.supportsSourceMaps; try { fs.mkdirSync(path.dirname(tmpSrc), { recursive: true }); fs.writeFileSync(tmpSrc, wrapped); - const optimize = opts.optimize !== undefined ? opts.optimize : adapter.defaultOptimize; + const optimize = + opts.optimize !== undefined ? opts.optimize : adapter.defaultOptimize; const args = adapter.buildArgs({ // Pass the app-relative path (forward-slashed); with cwd = tmpDir the // compiler opens tmpDir/ and embeds "" as the source name. @@ -205,22 +247,38 @@ function compileFile(opts, adapter, compiler, file, isRaw, nameBase) { // The quickjs shim reads this: strip the per-function source text unless the // build asked to keep it. Harmless for compilers that ignore it. const env = { ...process.env }; - if (opts.keepSource) env.NSBC_KEEP_SOURCE = '1'; + if (opts.keepSource) env.NSBC_KEEP_SOURCE = "1"; else delete env.NSBC_KEEP_SOURCE; - const res = spawnSync(compiler, args, { cwd: tmpDir, encoding: 'utf8', env }); + const res = spawnSync(compiler, args, { + cwd: tmpDir, + encoding: "utf8", + env, + }); if (res.status !== 0) { - const detail = (res.stderr || res.stdout || (res.error && res.error.message) || '').toString().trim(); - throw new Error(`compiler failed for ${file} (exit ${res.status}):\n${detail}`); + const detail = ( + res.stderr || + res.stdout || + (res.error && res.error.message) || + "" + ) + .toString() + .trim(); + throw new Error( + `compiler failed for ${file} (exit ${res.status}):\n${detail}`, + ); } const bytecode = fs.readFileSync(tmpOut); - if (adapter.magic && !adapter.isBytecode(bytecode.subarray(0, adapter.magic.length))) { + if ( + adapter.magic && + !adapter.isBytecode(bytecode.subarray(0, adapter.magic.length)) + ) { throw new Error(`compiler produced non-bytecode output for ${file}`); } // Overwrite in place: the file keeps its .js name; the runtime detects the magic. fs.writeFileSync(file, bytecode); if (wantMap) { const mapSrc = adapter.sourceMapOutput(tmpOut); - if (fs.existsSync(mapSrc)) fs.copyFileSync(mapSrc, file + '.map'); + if (fs.existsSync(mapSrc)) fs.copyFileSync(mapSrc, file + ".map"); } return bytecode.length; } finally { @@ -235,11 +293,15 @@ function main() { const adapter = adapterForEngine(opts.engine); if (!adapter) { - console.log(`[bytecode] engine ${opts.engine} has no bytecode compiler — leaving app as source.`); + console.log( + `[bytecode] engine ${opts.engine} has no bytecode compiler — leaving app as source.`, + ); return; } if (!adapter.ready) { - console.log(`[bytecode] ${adapter.key} bytecode is not enabled yet — leaving app as source.`); + console.log( + `[bytecode] ${adapter.key} bytecode is not enabled yet — leaving app as source.`, + ); return; } if (!fs.existsSync(appDir)) { @@ -250,7 +312,7 @@ function main() { const compiler = resolveCompiler(opts, adapter, host); if (!fs.existsSync(compiler) || (!opts.compiler && isPlaceholder(compiler))) { const msg = `[bytecode] no ${adapter.key} compiler for host ${host} at ${compiler}`; - if (opts.strict) throw new Error(msg + ' (--strict)'); + if (opts.strict) throw new Error(msg + " (--strict)"); console.warn(`${msg} — leaving app as source.`); return; } @@ -258,7 +320,7 @@ function main() { // Ensure the compiler is executable. Binaries shipped via CI artifact zips, // npm packages, or restored without the exec bit lose it, which surfaces as a // spawn EACCES. (No-op on Windows.) - if (process.platform !== 'win32') { + if (process.platform !== "win32") { try { fs.chmodSync(compiler, 0o755); } catch (err) { @@ -270,9 +332,11 @@ function main() { const magicLen = adapter.magic ? adapter.magic.length : 0; // Called with --app pointing at assets/app itself (the historical shape): the // roots are relative to assets/, so fall back to walking the directory given. - const roots = opts.roots.some((r) => r === '.' || fs.existsSync(path.join(appDir, r))) - ? opts.roots - : ['.']; + const roots = opts.roots.some( + (r) => r === "." || fs.existsSync(path.join(appDir, r)), + ) + ? opts.roots + : ["."]; const files = listJsFiles(appDir, roots); let compiled = 0; let skipped = 0; @@ -288,14 +352,16 @@ function main() { const isRaw = rawSet.has(relKey(appDir, file)); // Modules under app/ are named relative to app/, which is the runtime's // module root; anything else keeps its assets-relative name. - const appRoot = path.join(appDir, 'app'); + const appRoot = path.join(appDir, "app"); const nameBase = file.startsWith(appRoot + path.sep) ? appRoot : appDir; try { compileFile(opts, adapter, compiler, file, isRaw, nameBase); compiled++; if (isRaw) rawCount++; if (opts.verbose) { - console.log(`[bytecode] compiled${isRaw ? ' (raw)' : ''}: ${relKey(appDir, file)}`); + console.log( + `[bytecode] compiled${isRaw ? " (raw)" : ""}: ${relKey(appDir, file)}`, + ); } } catch (err) { if (opts.keepGoing) { @@ -309,7 +375,7 @@ function main() { const ms = Date.now() - start; console.log( `[bytecode] ${adapter.key}/${host}: compiled ${compiled} file(s) ` + - `(${rawCount} raw), skipped ${skipped} already-compiled, in ${ms}ms.` + `(${rawCount} raw), skipped ${skipped} already-compiled, in ${ms}ms.`, ); } From 43a5acfdb75c1dec3383696c9fceb96f15c3eedc Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Thu, 1 Oct 2026 19:19:45 +0500 Subject: [PATCH 75/98] fix(android): call the single metadata overload directly when null/JS-array args can't be type-checked --- .../ffi/jni/jsi/metadata/MetadataNode.cpp | 66 +++++++++++------ .../ffi/jni/napi/metadata/MetadataNode.cpp | 71 ++++++++++++------ .../app/src/main/assets/app/mainpage.js | 1 + .../app/tests/testSingleOverloadResolution.js | 60 +++++++++++++++ .../SingleOverloadResolutionFixture.java | 74 +++++++++++++++++++ 5 files changed, 227 insertions(+), 45 deletions(-) create mode 100644 platforms/android/test-app/app/src/main/assets/app/tests/testSingleOverloadResolution.js create mode 100644 platforms/android/test-app/app/src/main/java/com/tns/tests/SingleOverloadResolutionFixture.java diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 5ce0d8156..29f1164b4 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -2285,11 +2285,14 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, break; } } + constexpr int kMetadataMismatch = -1; + constexpr int kMetadataUnknown = 0; + constexpr int kMetadataMatch = 1; auto metadataTypesMatch = [&](MetadataEntry &candidate, - std::vector ¶meterClasses) { + std::vector ¶meterClasses) -> int { const auto signature = candidate.getSig(); if (signature.empty() || signature[0] != '(') { - return false; + return kMetadataMismatch; } std::vector parameterTypes; @@ -2298,7 +2301,7 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, const size_t start = index; if (signature[index] == 'L') { const auto end = signature.find(';', index); - if (end == std::string::npos) return false; + if (end == std::string::npos) return kMetadataMismatch; index = end + 1; } else if (signature[index] == '[') { do { @@ -2306,10 +2309,10 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, } while (index < signature.size() && signature[index] == '['); if (index < signature.size() && signature[index] == 'L') { const auto end = signature.find(';', index); - if (end == std::string::npos) return false; + if (end == std::string::npos) return kMetadataMismatch; index = end + 1; } else if (index >= signature.size()) { - return false; + return kMetadataMismatch; } else { index++; } @@ -2320,14 +2323,19 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, } if (candidate.isExtensionFunction) { - if (parameterTypes.empty()) return false; + if (parameterTypes.empty()) return kMetadataMismatch; parameterTypes.erase(parameterTypes.begin()); } - if (index >= signature.size() || parameterTypes.size() != argc) return false; + if (index >= signature.size() || parameterTypes.size() != argc) return kMetadataMismatch; parameterClasses.assign(argc, nullptr); + bool hasUnknownArgument = false; for (size_t i = 0; i < argc; i++) { const auto ¶meterType = parameterTypes[i]; + if (args[i].isNull() || args[i].isUndefined()) { + hasUnknownArgument = true; + continue; + } if (parameterType[0] == 'L' || parameterType[0] == '[') { auto expectedName = parameterType; if (expectedName[0] == 'L') { @@ -2336,24 +2344,30 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, auto expectedClass = metadataEnv.FindClass(expectedName); if (expectedClass == nullptr) { metadataEnv.ExceptionClear(); - return false; + return kMetadataMismatch; } parameterClasses[i] = expectedClass; if (args[i].isString()) { - if (expectedName != "java/lang/String") return false; + if (expectedName != "java/lang/String") return kMetadataMismatch; auto stringClass = metadataEnv.FindClass("java/lang/String"); if (stringClass == nullptr) { metadataEnv.ExceptionClear(); - return false; + return kMetadataMismatch; } - if (metadataEnv.IsAssignableFrom(expectedClass, stringClass) != JNI_TRUE) return false; + if (metadataEnv.IsAssignableFrom(expectedClass, stringClass) != JNI_TRUE) return kMetadataMismatch; } else { - if (!args[i].isObject()) return false; - if (MetadataNode::GetNullNode(rt, args[i]) != nullptr) return false; + if (!args[i].isObject()) return kMetadataMismatch; + if (MetadataNode::GetNullNode(rt, args[i]) != nullptr) return kMetadataMismatch; auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(args[i]); - if (actualObject.IsNull()) return false; + if (actualObject.IsNull()) { + // JS array for an array parameter, or a JS value + // without a Java peer: only the lenient + // JsArgConverter can marshal these. + hasUnknownArgument = true; + continue; + } if (parameterType[0] == '[' && expectedName == "[Ljava/lang/Object;" && - ObjectManager::GetClassName((jobject) actualObject) != expectedName) return false; + ObjectManager::GetClassName((jobject) actualObject) != expectedName) return kMetadataMismatch; bool hasSerializableCandidate = false; for (auto *arityCandidate : arityCandidates) { if (arityCandidate->getSig().find("Ljava/io/Serializable;") != std::string::npos) { @@ -2361,26 +2375,26 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, break; } } - if (expectedName == "java/lang/Object" && !hasSerializableCandidate) return false; - if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + if (expectedName == "java/lang/Object" && !hasSerializableCandidate) return kMetadataMismatch; + if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return kMetadataMismatch; } } else if (parameterType[0] == 'Z') { - if (!args[i].isBool()) return false; + if (!args[i].isBool()) return kMetadataMismatch; } else if (!args[i].isNumber() || (parameterType[0] != 'B' && parameterType[0] != 'C' && parameterType[0] != 'S' && parameterType[0] != 'I' && parameterType[0] != 'J' && parameterType[0] != 'F' && parameterType[0] != 'D')) { - return false; + return kMetadataMismatch; } } - return true; + return hasUnknownArgument ? kMetadataUnknown : kMetadataMatch; }; if (!hasNullArgument && selectedCallbackData != nullptr && arityCandidates.size() > 1 && !preserveGenericObject) { for (auto *candidate : arityCandidates) { if (candidate->isStatic != first.isStatic) continue; std::vector parameterClasses; - if (metadataTypesMatch(*candidate, parameterClasses)) { + if (metadataTypesMatch(*candidate, parameterClasses) == kMetadataMatch) { metadataCandidateMatches.push_back({candidate, std::move(parameterClasses)}); } } @@ -2437,15 +2451,21 @@ JsValue MetadataNode::MethodCallback(JsRuntime &rt, const JsValue &thisVal, } if (!hasNullArgument && entry != nullptr && !entry->isExtensionFunction && arityCandidates.size() == 1) { std::vector parameterClasses; - if (metadataTypesMatch(*entry, parameterClasses)) { + const int compatibility = metadataTypesMatch(*entry, parameterClasses); + if (compatibility == kMetadataMatch) { metadataMatch = entry; metadataSignatureIsUnambiguous = true; - } else { + } else if (compatibility == kMetadataMismatch) { + // Provable mismatch against the only metadata candidate: the + // metadata may be stale, so let reflection resolve it. const auto signature = entry->getSig(); if (entry->isStatic || signature.find("Ljava/lang/Object;") == std::string::npos) { entry = nullptr; } } + // kMetadataUnknown: keep the entry (direct call via JsArgConverter + // when generator-resolved, reflection otherwise). Reflection can't + // marshal JS arrays, so demoting here breaks valid calls. } if (!hasNullArgument && entry != nullptr && entry->isExtensionFunction) { metadataMatch = entry; diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index 6b8cb2f28..b6a1aa24d 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -2709,11 +2709,14 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { break; } } + constexpr int kMetadataMismatch = -1; + constexpr int kMetadataUnknown = 0; + constexpr int kMetadataMatch = 1; auto metadataTypesMatch = [&](MetadataEntry &candidate, - std::vector ¶meterClasses) { + std::vector ¶meterClasses) -> int { const auto signature = candidate.getSig(); if (signature.empty() || signature[0] != '(') { - return false; + return kMetadataMismatch; } std::vector parameterTypes; @@ -2722,13 +2725,13 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { const size_t start = index; if (signature[index] == 'L') { const auto end = signature.find(';', index); - if (end == std::string::npos) return false; + if (end == std::string::npos) return kMetadataMismatch; index = end + 1; } else if (signature[index] == '[') { index++; if (index < signature.size() && signature[index] == 'L') { const auto end = signature.find(';', index); - if (end == std::string::npos) return false; + if (end == std::string::npos) return kMetadataMismatch; index = end + 1; } else { index++; @@ -2740,16 +2743,23 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { } if (candidate.isExtensionFunction) { - if (parameterTypes.empty()) return false; + if (parameterTypes.empty()) return kMetadataMismatch; parameterTypes.erase(parameterTypes.begin()); } - if (parameterTypes.size() != argc) return false; + if (parameterTypes.size() != argc) return kMetadataMismatch; parameterClasses.assign(argc, nullptr); + bool hasUnknownArgument = false; for (size_t i = 0; i < argc; i++) { const auto ¶meterType = parameterTypes[i]; napi_valuetype valueType; napi_typeof(env, argv[i], &valueType); + if (valueType == napi_null || valueType == napi_undefined) { + // JsArgConverter maps null/undefined for any parameter + // type; nothing to check statically. + hasUnknownArgument = true; + continue; + } if (parameterType[0] == 'L' || parameterType[0] == '[') { jclass expectedClass = nullptr; auto expectedName = parameterType; @@ -2759,34 +2769,40 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { expectedClass = metadataEnv.FindClass(expectedName); if (expectedClass == nullptr) { metadataEnv.ExceptionClear(); - return false; + return kMetadataMismatch; } parameterClasses[i] = expectedClass; if (valueType == napi_string) { if (expectedName != "java/lang/String") { - return false; + return kMetadataMismatch; } auto stringClass = metadataEnv.FindClass("java/lang/String"); if (stringClass == nullptr) { metadataEnv.ExceptionClear(); - return false; + return kMetadataMismatch; } if (metadataEnv.IsAssignableFrom(expectedClass, stringClass) != JNI_TRUE) { - return false; + return kMetadataMismatch; } } else { - if (valueType != napi_object && valueType != napi_function) return false; + if (valueType != napi_object && valueType != napi_function) return kMetadataMismatch; napi_value nullNode = nullptr; if (napi_get_named_property(env, argv[i], PROP_KEY_NULL_NODE_NAME, &nullNode) == napi_ok && !napi_util::is_null_or_undefined(env, nullNode)) { - return false; + return kMetadataMismatch; } auto actualObject = initialCallbackData->objectManager->GetJavaObjectByJsObject(argv[i]); - if (actualObject.IsNull()) return false; + if (actualObject.IsNull()) { + // JS array for an array parameter, or a JS value + // without a Java peer: only the lenient + // JsArgConverter can marshal these. + hasUnknownArgument = true; + continue; + } if (parameterType[0] == '[' && expectedName == "[Ljava/lang/Object;") { if (ObjectManager::GetClassName((jobject) actualObject) != expectedName) { - return false; + return kMetadataMismatch; } } bool hasSerializableCandidate = false; @@ -2797,21 +2813,21 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { } } if (expectedName == "java/lang/Object" && !hasSerializableCandidate) { - return false; + return kMetadataMismatch; } - if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return false; + if (metadataEnv.IsInstanceOf(actualObject, expectedClass) != JNI_TRUE) return kMetadataMismatch; } } else if (parameterType[0] == 'Z') { - if (valueType != napi_boolean) return false; + if (valueType != napi_boolean) return kMetadataMismatch; } else if (valueType != napi_number || (parameterType[0] != 'B' && parameterType[0] != 'C' && parameterType[0] != 'S' && parameterType[0] != 'I' && parameterType[0] != 'J' && parameterType[0] != 'F' && parameterType[0] != 'D')) { - return false; + return kMetadataMismatch; } } - return true; + return hasUnknownArgument ? kMetadataUnknown : kMetadataMatch; }; if (!hasNullArgument && selectedCallbackData != nullptr && arityCandidates.size() > 1 && !preserveGenericObject) { for (auto *candidate : arityCandidates) { @@ -2819,7 +2835,7 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { continue; } std::vector parameterClasses; - if (metadataTypesMatch(*candidate, parameterClasses)) { + if (metadataTypesMatch(*candidate, parameterClasses) == kMetadataMatch) { metadataCandidateMatches.push_back({candidate, std::move(parameterClasses)}); } } @@ -2916,15 +2932,26 @@ napi_value MetadataNode::MethodCallback(napi_env env, napi_callback_info info) { } if (!hasNullArgument && entry != nullptr && !entry->isExtensionFunction && arityCandidates.size() == 1) { std::vector parameterClasses; - if (metadataTypesMatch(*entry, parameterClasses)) { + const int compatibility = metadataTypesMatch(*entry, parameterClasses); + if (compatibility == kMetadataMatch) { metadataMatch = entry; metadataSignatureIsUnambiguous = true; - } else { + } else if (compatibility == kMetadataMismatch) { + // A provable mismatch against the only metadata candidate + // means the metadata may be stale (the runtime class can + // have overloads the generator never saw). Let reflection + // resolve against the real class. const auto signature = entry->getSig(); if (entry->isStatic || signature.find("Ljava/lang/Object;") == std::string::npos) { entry = nullptr; } } + // kMetadataUnknown: keep the entry. A generator-resolved entry is + // invoked directly through the lenient JsArgConverter (the + // pre-metadata-first behavior); unresolved ones still use + // reflection. Reflection can't marshal JS arrays or null for + // primitives, so demoting here would turn valid calls into + // "Failed resolving method" errors. } if (!hasNullArgument && entry != nullptr && entry->isExtensionFunction) { metadataMatch = entry; diff --git a/platforms/android/test-app/app/src/main/assets/app/mainpage.js b/platforms/android/test-app/app/src/main/assets/app/mainpage.js index 33f774e5f..0dac6a823 100644 --- a/platforms/android/test-app/app/src/main/assets/app/mainpage.js +++ b/platforms/android/test-app/app/src/main/assets/app/mainpage.js @@ -32,6 +32,7 @@ require("./tests/tests"); require("./tests/testMethodResolution"); require("./tests/testOverloadResolutionRegression"); require("./tests/testReturnTypeResolution"); +require("./tests/testSingleOverloadResolution"); require("./tests/testMethodResolutionWithNulls"); require("./tests/testArrays"); require("./tests/testsForRuntimeBindingGenerator"); diff --git a/platforms/android/test-app/app/src/main/assets/app/tests/testSingleOverloadResolution.js b/platforms/android/test-app/app/src/main/assets/app/tests/testSingleOverloadResolution.js new file mode 100644 index 000000000..5b9d2d356 --- /dev/null +++ b/platforms/android/test-app/app/src/main/assets/app/tests/testSingleOverloadResolution.js @@ -0,0 +1,60 @@ +describe("Tests metadata-resolved single overload invocation", function () { + var F = com.tns.tests.SingleOverloadResolutionFixture; + + it("calls a static method with null/undefined arguments, including null for primitives", function () { + var ctx = new android.content.ContextWrapper(null); + expect(F.htmlLike(ctx, "fonts", null, "x", false, -16776961)) + .toBe("true|fonts|null|x|false|-16776961"); + expect(F.htmlLike(ctx, "fonts", undefined, "x", true, undefined)) + .toBe("true|fonts|null|x|true|0"); + expect(F.htmlLike(null, null, null, null, false, 0)) + .toBe("false|null|null|null|false|0"); + }); + + it("calls an instance method taking String[] with a plain JS array", function () { + var f = new F(); + expect(f.requestLike(["a", "b"], 7)).toBe("a,b#7"); + expect(f.requestLike([], 1)).toBe("#1"); + expect(f.requestLike(null, 2)).toBe("null#2"); + }); + + it("calls a static method taking int[] with a plain JS array", function () { + expect(F.intArray([1, 2, 3])).toBe("sum=6"); + }); + + it("passes JS values to Object, boxed and CharSequence parameters", function () { + expect(F.objectParam(null)).toBe("null"); + expect(F.objectParam("s")).toBe("java.lang.String"); + expect(F.boxedInt(java.lang.Integer.valueOf(5))).toBe("boxed=5"); + expect(F.boxedInt(null)).toBe("boxed=null"); + expect(F.boxedBool(java.lang.Boolean.valueOf(true))).toBe("bool=true"); + expect(F.charSeq("abc")).toBe("cs=abc"); + expect(F.twoStrings(null, "b")).toBe("null+b"); + }); + + it("passes a JS interface implementation", function () { + var ran = false; + var r = new java.lang.Runnable({ run: function () { ran = true; } }); + expect(F.runIt(r)).toBe("ran"); + expect(ran).toBe(true); + }); + + it("lets non-null arguments discriminate same-arity overloads when another is null", function () { + expect(F.mixed(null, 5)).toBe("string-int"); + expect(F.mixed(null, "x")).toBe("string-string"); + expect(F.mixed("a", 5)).toBe("string-int"); + }); + + it("throws instead of returning undefined when no overload matches", function () { + var builder = new com.tns.tests.OverloadResolutionFixture.Builder(); + var error; + var result; + try { + result = builder.url(123); + } catch (e) { + error = e; + } + expect(result).toBeUndefined(); + expect(error).toBeDefined(); + }); +}); diff --git a/platforms/android/test-app/app/src/main/java/com/tns/tests/SingleOverloadResolutionFixture.java b/platforms/android/test-app/app/src/main/java/com/tns/tests/SingleOverloadResolutionFixture.java new file mode 100644 index 000000000..6df90b026 --- /dev/null +++ b/platforms/android/test-app/app/src/main/java/com/tns/tests/SingleOverloadResolutionFixture.java @@ -0,0 +1,74 @@ +package com.tns.tests; + +import android.content.Context; + +/** + * Methods with exactly one overload per name/arity. These are "resolved" by the + * metadata generator and must be invoked directly with their metadata signature, + * whatever JS values are passed (null/undefined, JS arrays, JS interface + * implementations, numbers for boxed/Object parameters). + */ +public class SingleOverloadResolutionFixture { + + // Mirrors com.nativescript.text.Font.stringBuilderFromHtmlString + public static String htmlLike(Context context, String fontFolder, String parentFontFamily, + String htmlString, final boolean disableLinkUnderline, final int linkColor) { + return (context != null) + "|" + fontFolder + "|" + parentFontFamily + "|" + htmlString + "|" + + disableLinkUnderline + "|" + linkColor; + } + + // Mirrors Activity.requestPermissions(String[], int) + public String requestLike(String[] permissions, int requestCode) { + StringBuilder sb = new StringBuilder(); + if (permissions == null) { + sb.append("null"); + } else { + for (int i = 0; i < permissions.length; i++) { + if (i > 0) sb.append(","); + sb.append(permissions[i]); + } + } + return sb.append("#").append(requestCode).toString(); + } + + public static String intArray(int[] values) { + int sum = 0; + for (int v : values) sum += v; + return "sum=" + sum; + } + + public static String objectParam(Object value) { + return value == null ? "null" : value.getClass().getName(); + } + + public static String boxedInt(Integer value) { + return "boxed=" + value; + } + + public static String boxedBool(Boolean value) { + return "bool=" + value; + } + + public static String charSeq(CharSequence value) { + return "cs=" + value; + } + + public static String runIt(Runnable r) { + r.run(); + return "ran"; + } + + public static String twoStrings(String a, String b) { + return a + "+" + b; + } + + // Multi-overload, same arity: null in the first position must not prevent + // the second argument from discriminating. + public static String mixed(String a, int b) { + return "string-int"; + } + + public static String mixed(String a, String b) { + return "string-string"; + } +} From f4b6e0b20d0177c5cb974d2361d823aa9f6df9c9 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Fri, 16 Oct 2026 12:22:10 -0700 Subject: [PATCH 76/98] fix(android): expose a package as $name when its global is non-writable Expo installs global.expo as a non-writable property, so exposing the expo.* Java package under that name threw from CreateTopLevelNamespaces on Hermes. Fall back to the $-prefixed name already used for packages that collide with JS keywords. --- NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 29f1164b4..6187a585d 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -887,7 +887,13 @@ void MetadataNode::CreateTopLevelNamespaces(JsRuntime &rt) { if (IsJavascriptKeyword(nameSpace)) { nameSpace = "$" + nameSpace; } - global.setProperty(rt, nameSpace.c_str(), packageObj); + try { + global.setProperty(rt, nameSpace.c_str(), packageObj); + } catch (JsError &) { + // A host can already own the name as a non-writable global (Expo + // defines `expo`), so fall back to the same $ prefix as keywords. + global.setProperty(rt, ("$" + nameSpace).c_str(), packageObj); + } } } } From 76b110d91ee61087cb657f432b40103b1edf9757 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 18 Oct 2026 12:24:47 -0700 Subject: [PATCH 77/98] ci(release): check out LFS objects for the react-native build The react-native target builds the Android tools jars, which compile against jars stored in Git LFS under platforms/android/test-app/**/libs. Without lfs on the Apple job's checkout, those resolve to pointer files and compileKotlin fails with "zip END header not found". --- .github/workflows/npm_trusted_release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/npm_trusted_release.yml b/.github/workflows/npm_trusted_release.yml index 9d6d9e5c7..9807e84ea 100644 --- a/.github/workflows/npm_trusted_release.yml +++ b/.github/workflows/npm_trusted_release.yml @@ -221,6 +221,9 @@ jobs: ref: ${{ inputs.build-ref || github.ref }} fetch-depth: 0 submodules: recursive + # react-native also builds the Android tools jars, which compile + # against LFS-stored jars under platforms/android/test-app/**/libs. + lfs: ${{ matrix.target == 'react-native' }} - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: 24 From e9a3b147cc63ad82656e73410b16e39017ab064e Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 18 Oct 2026 08:41:54 -0700 Subject: [PATCH 78/98] fix(ffi/objc): key thread_local bridge caches by a per-bridge id The property-getter, round-trip and expando lookup caches identified a bridge by its address. After a JS reload a new bridge can be allocated where a destroyed one lived and match its entries: the getter cache then returned a raw pointer into the freed bridge (EXC_BAD_ACCESS in preparedObjCInvocationIsInit on the next launch), and cached misses could hide values that exist. --- .../ffi/objc/shared/bridge/ObjCBridge.mm | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm b/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm index 051171816..b984ba80c 100644 --- a/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm +++ b/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm @@ -933,7 +933,7 @@ Value findRoundTripValue(Runtime& runtime, const void* native, ? validationKey : (nativeIsObject ? nativeObjectClassKey(native) : 0); struct RoundTripCacheEntry { - const NativeApiBridge* bridge = nullptr; + uint64_t bridgeId = 0; uintptr_t key = 0; uint64_t generation = 0; std::weak_ptr value; @@ -947,7 +947,7 @@ Value findRoundTripValue(Runtime& runtime, const void* native, const size_t firstSlot = (key >> 4) & 3; for (size_t i = 0; i < 4; i++) { RoundTripCacheEntry& entry = cache[(firstSlot + i) & 3]; - if (entry.bridge == this && entry.key == key && + if (entry.bridgeId == instanceId_ && entry.key == key && entry.generation == generation) { if (entry.validationKey != expectedValidationKey) { break; @@ -1015,19 +1015,19 @@ Value findRoundTripValue(Runtime& runtime, const void* native, } if (weakValue == nullptr) { cache[firstSlot] = RoundTripCacheEntry{ - this, key, generation, {}, true, false, expectedValidationKey}; + instanceId_, key, generation, {}, true, false, expectedValidationKey}; return Value::undefined(); } #else cache[firstSlot] = RoundTripCacheEntry{ - this, key, generation, {}, true, false, expectedValidationKey}; + instanceId_, key, generation, {}, true, false, expectedValidationKey}; return Value::undefined(); #endif } else { storedValue = entry->value; cachedStringLike = entry->stringLikeNative; cache[firstSlot] = RoundTripCacheEntry{ - this, key, generation, storedValue, false, cachedStringLike, + instanceId_, key, generation, storedValue, false, cachedStringLike, entry->validationKey}; } } @@ -1263,7 +1263,7 @@ Value findObjectExpando(Runtime& runtime, const void* native, return Value::undefined(); } struct ObjectExpandoCacheEntry { - const NativeApiBridge* bridge = nullptr; + uint64_t bridgeId = 0; uintptr_t key = 0; uintptr_t runtimeKey = 0; uint64_t generation = 0; @@ -1280,7 +1280,7 @@ Value findObjectExpando(Runtime& runtime, const void* native, const uint64_t generation = objectExpandosGeneration_.load(std::memory_order_acquire); for (auto& entry : cache) { - if (entry.bridge == this && entry.key == key && + if (entry.bridgeId == instanceId_ && entry.key == key && entry.runtimeKey == runtimeKey && entry.generation == generation && entry.property == property) { if (entry.miss) { @@ -1310,11 +1310,11 @@ Value findObjectExpando(Runtime& runtime, const void* native, } if (storedValue == nullptr) { cache[slot] = ObjectExpandoCacheEntry{ - this, key, runtimeKey, generation, property, {}, true}; + instanceId_, key, runtimeKey, generation, property, {}, true}; return Value::undefined(); } cache[slot] = ObjectExpandoCacheEntry{ - this, key, runtimeKey, generation, property, storedValue, false}; + instanceId_, key, runtimeKey, generation, property, storedValue, false}; } return Value(runtime, *storedValue); } @@ -1350,7 +1350,7 @@ void forgetObjectExpandos(const void* native) { return nullptr; } struct PropertyGetterCacheEntry { - const NativeApiBridge* bridge = nullptr; + uint64_t bridgeId = 0; Class cls = Nil; uint64_t generation = 0; std::string property; @@ -1363,7 +1363,7 @@ void forgetObjectExpandos(const void* native) { const uint64_t generation = propertyGetterCacheGeneration_.load(std::memory_order_acquire); for (auto& entry : cache) { - if (entry.bridge == this && entry.cls == cls && + if (entry.bridgeId == instanceId_ && entry.cls == cls && entry.generation == generation && entry.property == property) { return entry.miss ? nullptr : entry.getter; } @@ -1373,17 +1373,17 @@ void forgetObjectExpandos(const void* native) { const size_t slot = nextSlot++ & 7; if (classIt == propertyGetterCache_.end()) { cache[slot] = PropertyGetterCacheEntry{ - this, cls, generation, property, nullptr, true}; + instanceId_, cls, generation, property, nullptr, true}; return nullptr; } auto propIt = classIt->second.find(property); if (propIt == classIt->second.end()) { cache[slot] = PropertyGetterCacheEntry{ - this, cls, generation, property, nullptr, true}; + instanceId_, cls, generation, property, nullptr, true}; return nullptr; } cache[slot] = - PropertyGetterCacheEntry{this, cls, generation, property, + PropertyGetterCacheEntry{instanceId_, cls, generation, property, &propIt->second, false}; return &propIt->second; } @@ -2470,6 +2470,13 @@ static void appendSurfaceMember( objectExpandos_; std::unordered_map objectExpandoOwnerCounts_; std::atomic objectExpandosGeneration_{1}; + // Identifies this bridge in the thread_local lookup caches. Its address + // cannot: a bridge allocated where a destroyed one lived would match that + // one's entries, and the property-getter cache holds raw pointers into it. + const uint64_t instanceId_ = [] { + static std::atomic next{1}; + return next.fetch_add(1, std::memory_order_relaxed); + }(); std::unordered_map> propertyGetterCache_; std::atomic propertyGetterCacheGeneration_{1}; From be991f1aae76a3a1e6dcfcd1b3376c92fc05eb2d Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 25 Oct 2026 03:10:39 -0700 Subject: [PATCH 79/98] fix(types): nullable blocks as (() => T) | null; declare NativeObject.extend (#84) --- metadata-generator/src/TSEmitter/TypeSpec.cpp | 3 +- packages/objc-node-api/index.d.ts | 34 +++++++++++++++++++ packages/react-native/cli/configure.js | 5 +-- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/metadata-generator/src/TSEmitter/TypeSpec.cpp b/metadata-generator/src/TSEmitter/TypeSpec.cpp index ad65bbb62..3dcdee653 100644 --- a/metadata-generator/src/TSEmitter/TypeSpec.cpp +++ b/metadata-generator/src/TSEmitter/TypeSpec.cpp @@ -66,7 +66,8 @@ std::string TSFile::typeToString(const TypeSpec& type, bool isStatic, bool isRet result += ") => "; result += typeToString(*type.callbackReturn, false, true); if (type.isNullable) { - result += " | null"; + // `() => T | null` would make the return type nullable instead. + result = "(" + result + ") | null"; } break; } diff --git a/packages/objc-node-api/index.d.ts b/packages/objc-node-api/index.d.ts index e6eef9d9c..fff83d9b0 100644 --- a/packages/objc-node-api/index.d.ts +++ b/packages/objc-node-api/index.d.ts @@ -9,6 +9,27 @@ declare global { class NativeObject implements interop.PointerObject { readonly __brand__: interop.PointerObject["__brand__"]; + + /** + * Registers an Objective-C subclass of this class. Functions in `methods` + * override the same-named members of this class and of + * `options.protocols`; other names are only callable from Objective-C + * when listed in `options.exposedMethods`. The returned class cannot + * itself be extended. + */ + static extend< + // deno-lint-ignore no-explicit-any + This extends abstract new (...args: any) => any, + // Inferred rather than annotated so that names absent from the class + // (protocol and exposed methods) are not excess properties. `& object` + // keeps literals sharing no name with the class from failing the weak + // type check against the all-optional Partial. + Methods extends Partial> & object, + >( + this: This, + methods: Methods & ThisType & Methods>, + options?: objc.ExtendOptions, + ): This; } namespace objc { @@ -25,6 +46,19 @@ declare global { ptr: interop.Pointer, size: number, ): ArrayBuffer; + + export interface ExposedMethod { + returns?: unknown; + params?: unknown[]; + } + + export interface ExtendOptions { + /** Objective-C class name; a numeric suffix is added if it is taken. */ + name?: string; + protocols?: unknown[]; + /** Keyed by method name in `methods`. */ + exposedMethods?: Record; + } } namespace interop { diff --git a/packages/react-native/cli/configure.js b/packages/react-native/cli/configure.js index dea6fecb7..dec3586e1 100755 --- a/packages/react-native/cli/configure.js +++ b/packages/react-native/cli/configure.js @@ -27,8 +27,9 @@ function printNextSteps() { console.log(" iOS : cd ios && RCT_NEW_ARCH_ENABLED=1 USE_HERMES=1 pod install"); console.log(" Android : npx react-native run-android"); console.log(""); - console.log(" Android typings are generated on demand:"); - console.log(" cd android && ./gradlew generateNativeScriptTypingsDebug -PnsGenerateTypings=true"); + console.log(" Android typings are written to types/android/ on the first build"); + console.log(" (opt out with -PnsGenerateTypings=false). To generate them on their own:"); + console.log(" cd android && ./gradlew generateNativeScriptTypingsDebug"); } function configure(argv = process.argv.slice(2)) { From 89eca3595e5d4d4e66e6762ba9d7c5d414400683 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 25 Oct 2026 03:13:22 -0700 Subject: [PATCH 80/98] fix(react-native): keep metadata.android when writing nativescript.react-native.json (#85) The config plugin and nativescript-rn configure replaced the whole reactNative.metadata block, so every prebuild or configure run deleted a hand-written metadata.android.include. That list is what keeps classes, including autolinked module packages, in filtered Android release metadata. Merge into the existing metadata instead, accept metadata.android.include in the plugin options, and write the file on Android-only prebuilds too. --- .../plugin/withNativeScriptReactNative.js | 44 +++++++++++-------- .../react-native/test/config-plugin.test.js | 40 +++++++++++++++++ 2 files changed, 66 insertions(+), 18 deletions(-) diff --git a/packages/react-native/plugin/withNativeScriptReactNative.js b/packages/react-native/plugin/withNativeScriptReactNative.js index 2125942d1..70c7d7746 100644 --- a/packages/react-native/plugin/withNativeScriptReactNative.js +++ b/packages/react-native/plugin/withNativeScriptReactNative.js @@ -18,18 +18,23 @@ function readBoolean(value, fallback) { return typeof value === "boolean" ? value : fallback; } +function stringList(value) { + return Array.isArray(value) ? value.filter((item) => typeof item === "string") : undefined; +} + function normalizeMetadataOptions(options = {}) { const metadata = options.metadata || {}; - return { - includePods: Array.isArray(metadata.includePods) - ? metadata.includePods.filter((value) => typeof value === "string") - : [], - includeSystemFrameworks: Array.isArray(metadata.includeSystemFrameworks) - ? metadata.includeSystemFrameworks.filter( - (value) => typeof value === "string", - ) - : [], + const normalized = { + includePods: stringList(metadata.includePods) || [], + includeSystemFrameworks: stringList(metadata.includeSystemFrameworks) || [], }; + // Omitted unless given, so ensureMetadataConfig keeps an `android` block + // written by hand into nativescript.react-native.json. + const androidInclude = stringList(metadata.android && metadata.android.include); + if (androidInclude) { + normalized.android = {include: androidInclude}; + } + return normalized; } function normalizeOptions(options = {}) { @@ -67,11 +72,16 @@ function ensureMetadataConfig(projectRoot, metadataOptions) { } } + const existingReactNative = existing.reactNative || {}; + const existingMetadata = + existingReactNative.metadata && typeof existingReactNative.metadata === "object" + ? existingReactNative.metadata + : {}; const merged = { ...existing, reactNative: { - ...(existing.reactNative || {}), - metadata: metadataOptions, + ...existingReactNative, + metadata: {...existingMetadata, ...metadataOptions}, }, }; const nextSource = `${JSON.stringify(merged, null, 2)}\n`; @@ -236,13 +246,11 @@ function withNativeScriptMetadata(config, metadataOptions) { return config; } - return withDangerousMod(config, [ - "ios", - async (modConfig) => { - ensureMetadataConfig(modConfig.modRequest.projectRoot, metadataOptions); - return modConfig; - }, - ]); + const mod = async (modConfig) => { + ensureMetadataConfig(modConfig.modRequest.projectRoot, metadataOptions); + return modConfig; + }; + return withDangerousMod(withDangerousMod(config, ["ios", mod]), ["android", mod]); } /** diff --git a/packages/react-native/test/config-plugin.test.js b/packages/react-native/test/config-plugin.test.js index d8b6906b5..8f70c8425 100644 --- a/packages/react-native/test/config-plugin.test.js +++ b/packages/react-native/test/config-plugin.test.js @@ -134,4 +134,44 @@ withTempProject((projectRoot) => { }); }); +withTempProject((projectRoot) => { + const configPath = path.join(projectRoot, "nativescript.react-native.json"); + fs.writeFileSync( + configPath, + JSON.stringify({ + reactNative: { + metadata: { + includePods: ["StalePod"], + android: {include: ["com.example.Worker"]}, + }, + }, + }), + ); + ensureMetadataConfig(projectRoot, normalizeMetadataOptions({})); + const config = JSON.parse(fs.readFileSync(configPath, "utf8")); + assert.deepStrictEqual(config.reactNative.metadata, { + includePods: [], + includeSystemFrameworks: [], + android: {include: ["com.example.Worker"]}, + }); +}); + +withTempProject((projectRoot) => { + const configPath = path.join(projectRoot, "nativescript.react-native.json"); + fs.writeFileSync( + configPath, + JSON.stringify({reactNative: {metadata: {android: {include: ["com.example.Old"]}}}}), + ); + ensureMetadataConfig( + projectRoot, + normalizeMetadataOptions({ + metadata: {android: {include: ["com.example.Worker", 7, "com.example.views.*"]}}, + }), + ); + const config = JSON.parse(fs.readFileSync(configPath, "utf8")); + assert.deepStrictEqual(config.reactNative.metadata.android, { + include: ["com.example.Worker", "com.example.views.*"], + }); +}); + console.log("config plugin tests passed"); From 1bf3bb56c30ba394ebb7f7d4fc0a84ae310a5d0d Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 19:54:30 -0800 Subject: [PATCH 81/98] fix(react-native): explain a missing native module at import (#82) * fix(react-native): explain a missing native module at import Keep failing at import when NativeScriptNativeApi is not in the app binary, but with an error that says the package cannot run in Expo Go and that a build made before the package was added must be rebuilt, instead of React Native's generic TurboModuleRegistry invariant. Drop isAvailable() and the Android-specific init() path. --- .../react-native/src/NativeScriptNativeApi.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/react-native/src/NativeScriptNativeApi.ts b/packages/react-native/src/NativeScriptNativeApi.ts index 5168d0cd5..8b2863e68 100644 --- a/packages/react-native/src/NativeScriptNativeApi.ts +++ b/packages/react-native/src/NativeScriptNativeApi.ts @@ -51,4 +51,17 @@ export interface Spec extends TurboModule { ) => boolean; } -export default TurboModuleRegistry.getEnforcing('NativeScriptNativeApi'); +function loadNativeApi(): Spec { + const nativeApi = TurboModuleRegistry.get('NativeScriptNativeApi'); + if (nativeApi == null) { + throw new Error( + "@nativescript/react-native: the native module 'NativeScriptNativeApi' is not in this app binary. " + + 'The package contains native code, so it cannot run in Expo Go: use a development build ' + + '(npx expo run:ios / npx expo run:android, or EAS Build). ' + + 'If the package was added after the app was built, rebuild the app.', + ); + } + return nativeApi; +} + +export default loadNativeApi(); From eaa3a185582f0e91675bcc78a97c59e9eb11ce33 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 19:57:15 -0800 Subject: [PATCH 82/98] fix(android): use $name when a Java package's global name is taken (#86) * fix(android): use $name when a Java package's global name is taken Check whether the global already has the package's name and, if it does, expose the package as `$name`, logging a warning. Both the jsi and napi trees now do the same check, so an existing global is never overwritten and no engine-specific read-only handling is needed. --- NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp | 14 ++++++++------ .../ffi/jni/napi/metadata/MetadataNode.cpp | 9 +++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 6187a585d..65193022a 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "NativeScriptException.h" #include "MetadataNode.h" #include "CallbackHandlers.h" @@ -887,13 +888,14 @@ void MetadataNode::CreateTopLevelNamespaces(JsRuntime &rt) { if (IsJavascriptKeyword(nameSpace)) { nameSpace = "$" + nameSpace; } - try { - global.setProperty(rt, nameSpace.c_str(), packageObj); - } catch (JsError &) { - // A host can already own the name as a non-writable global (Expo - // defines `expo`), so fall back to the same $ prefix as keywords. - global.setProperty(rt, ("$" + nameSpace).c_str(), packageObj); + if (global.hasProperty(rt, nameSpace.c_str())) { + string fallback = "$" + nameSpace; + __android_log_print(ANDROID_LOG_WARN, "TNS.Runtime", + "Java package '%s' is exposed as '%s': the global '%s' already exists.", + nameSpace.c_str(), fallback.c_str(), nameSpace.c_str()); + nameSpace = fallback; } + global.setProperty(rt, nameSpace.c_str(), packageObj); } } } diff --git a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp index b6a1aa24d..df18bb889 100644 --- a/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/napi/metadata/MetadataNode.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "NativeScriptException.h" #include "MetadataNode.h" #include "CallbackHandlers.h" @@ -1120,6 +1121,14 @@ void MetadataNode::CreateTopLevelNamespaces(napi_env env) { if (IsJavascriptKeyword(nameSpace)) { nameSpace = "$" + nameSpace; } + bool exists = false; + if (napi_has_named_property(env, global, nameSpace.c_str(), &exists) == napi_ok && exists) { + string fallback = "$" + nameSpace; + __android_log_print(ANDROID_LOG_WARN, "TNS.Runtime", + "Java package '%s' is exposed as '%s': the global '%s' already exists.", + nameSpace.c_str(), fallback.c_str(), nameSpace.c_str()); + nameSpace = fallback; + } NAPI_GUARD(napi_set_named_property(env, global, nameSpace.c_str(), packageObj)) {} } } From 6a193b5716a0ff865a5b096749c60036afcc89f3 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 19:58:24 -0800 Subject: [PATCH 83/98] fix(ffi/objc): define only real C enum constant names as globals (#87) With globals enabled, every key of every enum object became a global, including short member names such as Center, Fill and CloudKit's Zone. Libraries that feature-detect a global by name were misled: Angular's zoneless scheduler checks typeof Zone and crashed at bootstrap. The metadata only stored the shortened member names, so the bridge could not tell which alias was the real C constant. Metadata format v2 records, per enum, the prefix and suffix the generator stripped from its members, and flags members whose stored name is already the full C name. The reader rebuilds every member's exact C name from that; v1 metadata still loads but yields no C names. A shared alias builder (ffi/objc/shared/EnumMemberAliases.h) tags the C name among each member's aliases and is used by both the JSI bridge and the Node-API tree. The bridge exposes getEnumGlobalNames(enumName), and the shared global installer and installGlobals() in @nativescript/react-native define only those names. The Node-API tree defines only C names as globals. Short names and other conveniences stay on the enum object, which also gains the C name as a key, so constants like MKMapTypeStandard and CKErrorZoneBusy now resolve. --- NativeScript/ffi/objc/hermes/NativeApiJsi.mm | 1 + .../ffi/objc/jsc/NativeApiJSCRuntime.h | 1 + NativeScript/ffi/objc/napi/Enum.mm | 103 ++++------------- .../objc/quickjs/NativeApiQuickJSRuntime.h | 1 + .../ffi/objc/shared/EnumMemberAliases.h | 85 ++++++++++++++ .../ffi/objc/shared/bridge/HostObject.mm | 16 +++ .../ffi/objc/shared/bridge/Install.mm | 12 +- .../ffi/objc/shared/bridge/Invocation.mm | 105 ++++++------------ .../ffi/objc/shared/bridge/ObjCBridge.mm | 10 +- NativeScript/ffi/objc/v8/NativeApiV8Runtime.h | 1 + metadata-generator/include/IR.h | 5 + metadata-generator/include/Metadata.h | 9 +- metadata-generator/include/MetadataReader.h | 65 ++++++++++- metadata-generator/include/MetadataWriter.h | 3 + metadata-generator/src/IR/Enum.cpp | 14 ++- metadata-generator/src/IR/Factory.cpp | 2 + .../src/MetadataWriter/Enum.cpp | 24 +++- packages/react-native/src/index.d.ts | 2 + packages/react-native/src/index.ts | 20 ++-- .../runner/app/tests/Marshalling/EnumTests.js | 24 ++++ 20 files changed, 313 insertions(+), 190 deletions(-) create mode 100644 NativeScript/ffi/objc/shared/EnumMemberAliases.h diff --git a/NativeScript/ffi/objc/hermes/NativeApiJsi.mm b/NativeScript/ffi/objc/hermes/NativeApiJsi.mm index b57fbce55..c7db662cb 100644 --- a/NativeScript/ffi/objc/hermes/NativeApiJsi.mm +++ b/NativeScript/ffi/objc/hermes/NativeApiJsi.mm @@ -32,6 +32,7 @@ #include "Metadata.h" #include "MetadataReader.h" #include "ffi.h" +#include "ffi/objc/shared/EnumMemberAliases.h" #include "NativeApiJsiSignatureDispatch.h" #ifndef NATIVESCRIPT_REACT_NATIVE diff --git a/NativeScript/ffi/objc/jsc/NativeApiJSCRuntime.h b/NativeScript/ffi/objc/jsc/NativeApiJSCRuntime.h index 4c595b1c5..4cca8bb61 100644 --- a/NativeScript/ffi/objc/jsc/NativeApiJSCRuntime.h +++ b/NativeScript/ffi/objc/jsc/NativeApiJSCRuntime.h @@ -24,6 +24,7 @@ #include "Metadata.h" #include "MetadataReader.h" #include "ffi.h" +#include "ffi/objc/shared/EnumMemberAliases.h" #include "jsi/jsc/JSCRuntime.h" diff --git a/NativeScript/ffi/objc/napi/Enum.mm b/NativeScript/ffi/objc/napi/Enum.mm index da6ce6add..c66c80a09 100644 --- a/NativeScript/ffi/objc/napi/Enum.mm +++ b/NativeScript/ffi/objc/napi/Enum.mm @@ -5,6 +5,7 @@ #include #include #include "ObjCBridge.h" +#include "ffi/objc/shared/EnumMemberAliases.h" namespace nativescript { @@ -30,10 +31,6 @@ inline void defineConstantIfMissing(napi_env env, napi_value object, const std:: napi_define_properties(env, object, 1, &prop); } -inline bool startsWith(const std::string& value, const std::string& prefix) { - return value.size() >= prefix.size() && value.compare(0, prefix.size(), prefix) == 0; -} - inline std::string stripEnumSuffix(const std::string& enumName) { static const std::vector suffixes = { "Options", "Option", "Enums", "Enum", "Result", "Direction", "Orientation", @@ -48,14 +45,6 @@ inline bool startsWith(const std::string& value, const std::string& prefix) { return enumName; } - -inline bool isNSComparisonResultOrderingName(const std::string& enumName, - const std::string& member) { - if (enumName != "NSComparisonResult") { - return false; - } - return member == "Ascending" || member == "Same" || member == "Descending"; -} } // namespace void ObjCBridgeState::registerEnumGlobals(napi_env env, napi_value global) { @@ -63,23 +52,17 @@ inline bool isNSComparisonResultOrderingName(const std::string& enumName, while (offset < metadata->signaturesOffset) { MDSectionOffset originalOffset = offset; auto name = metadata->getString(offset); - offset += sizeof(MDSectionOffset); - - bool next = true; - while (next) { - auto nameOffset = metadata->getOffset(offset); - next = (nameOffset & mdSectionOffsetNext) != 0; - nameOffset &= ~mdSectionOffsetNext; - auto memberName = metadata->resolveString(nameOffset); - offset += sizeof(MDSectionOffset); - int64_t value = metadata->getEnumValue(offset); - offset += sizeof(int64_t); - - napi_value member; - napi_create_int64(env, value, &member); - defineConstantIfMissing(env, global, memberName, member, - (napi_property_attributes)(napi_enumerable | napi_configurable)); - } + + offset = metadata->forEachEnumMember( + originalOffset, [&](const char*, const std::string& cName, int64_t value) { + if (cName.empty()) { + return; + } + napi_value member; + napi_create_int64(env, value, &member); + defineConstantIfMissing(env, global, cName, member, + (napi_property_attributes)(napi_enumerable | napi_configurable)); + }); napi_property_descriptor prop = { .utf8name = name, @@ -112,71 +95,23 @@ inline bool isNSComparisonResultOrderingName(const std::string& enumName, // enum name auto enumName = bridgeState->metadata->getString(offset); std::string enumNameStr = enumName; - offset += sizeof(MDSectionOffset); std::string strippedPrefix = stripEnumSuffix(enumNameStr); - napi_value global; - napi_get_global(env, &global); - - bool next = true; - while (next) { - auto nameOffset = bridgeState->metadata->getOffset(offset); - next = (nameOffset & mdSectionOffsetNext) != 0; - nameOffset &= ~mdSectionOffsetNext; - auto name = bridgeState->metadata->resolveString(nameOffset); - offset += sizeof(MDSectionOffset); - int64_t value = bridgeState->metadata->getEnumValue(offset); - offset += sizeof(int64_t); - + bridgeState->metadata->forEachEnumMember(originalOffset, [&](const char* name, + const std::string& cName, + int64_t value) { napi_value member; napi_create_int64(env, value, &member); std::string memberName = name; - std::vector aliases; - aliases.push_back(memberName); - - if (!strippedPrefix.empty() && startsWith(memberName, strippedPrefix) && - memberName.size() > strippedPrefix.size()) { - aliases.push_back(memberName.substr(strippedPrefix.size())); - } else if (!strippedPrefix.empty() && !startsWith(memberName, strippedPrefix)) { - aliases.push_back(strippedPrefix + memberName); - } + auto aliases = enum_members::aliasesFor(enumNameStr, strippedPrefix, memberName, cName); - if (startsWith(enumNameStr, "NS") && !startsWith(memberName, "NS")) { - aliases.push_back(std::string("NS") + memberName); - } - - if (enumNameStr == "NSStringCompareOptions" && !memberName.ends_with("Search")) { - aliases.push_back(memberName + "Search"); - aliases.push_back(std::string("NS") + memberName + "Search"); - } - - if (!startsWith(memberName, "k")) { - aliases.push_back(std::string("k") + enumNameStr + memberName); - } - - if (isNSComparisonResultOrderingName(enumNameStr, memberName)) { - aliases.push_back(std::string("Ordered") + memberName); - aliases.push_back(std::string("NSOrdered") + memberName); - } - - std::vector uniqueAliases; - uniqueAliases.reserve(aliases.size()); - std::unordered_set seenAliases; for (const auto& alias : aliases) { - if (seenAliases.insert(alias).second) { - uniqueAliases.push_back(alias); - } + defineConstantIfMissing(env, result, alias.name, member); } - for (const auto& alias : uniqueAliases) { - defineConstantIfMissing(env, result, alias, member); - defineConstantIfMissing(env, global, alias, member, - (napi_property_attributes)(napi_enumerable | napi_configurable)); - } - - std::string reverseCanonical = uniqueAliases.size() > 1 ? uniqueAliases[1] : memberName; + const std::string& reverseCanonical = aliases.size() > 1 ? aliases[1].name : memberName; // reverse mapping enum[value] -> canonical member name char valueKey[32]; @@ -197,7 +132,7 @@ inline bool isNSComparisonResultOrderingName(const std::string& enumName, }; napi_define_properties(env, result, 1, &reverseProp); } - } + }); bridgeState->mdValueCache[originalOffset] = make_ref(env, result); diff --git a/NativeScript/ffi/objc/quickjs/NativeApiQuickJSRuntime.h b/NativeScript/ffi/objc/quickjs/NativeApiQuickJSRuntime.h index 9f945f8e0..302546aef 100644 --- a/NativeScript/ffi/objc/quickjs/NativeApiQuickJSRuntime.h +++ b/NativeScript/ffi/objc/quickjs/NativeApiQuickJSRuntime.h @@ -24,6 +24,7 @@ #include "Metadata.h" #include "MetadataReader.h" #include "ffi.h" +#include "ffi/objc/shared/EnumMemberAliases.h" #include "jsi/quickjs/QuickJSRuntime.h" diff --git a/NativeScript/ffi/objc/shared/EnumMemberAliases.h b/NativeScript/ffi/objc/shared/EnumMemberAliases.h new file mode 100644 index 000000000..4040744db --- /dev/null +++ b/NativeScript/ffi/objc/shared/EnumMemberAliases.h @@ -0,0 +1,85 @@ +#ifndef NATIVESCRIPT_FFI_OBJC_SHARED_ENUM_MEMBER_ALIASES_H +#define NATIVESCRIPT_FFI_OBJC_SHARED_ENUM_MEMBER_ALIASES_H + +#include +#include +#include + +namespace nativescript { +namespace enum_members { + +struct Alias { + std::string name; + // Only the C name may become a global; the other aliases are enum-object + // conveniences and can shadow unrelated globals (e.g. Center, Zone). + bool isCName = false; +}; + +inline bool startsWith(const std::string& value, const std::string& prefix) { + return value.size() >= prefix.size() && + value.compare(0, prefix.size(), prefix) == 0; +} + +inline bool endsWith(const std::string& value, const std::string& suffix) { + return value.size() >= suffix.size() && + value.compare(value.size() - suffix.size(), suffix.size(), suffix) == + 0; +} + +// The first alias is always the stored member name. cName is empty when the +// metadata does not record C names; then no alias is tagged as the C name. +inline std::vector aliasesFor(const std::string& enumName, + const std::string& strippedEnumName, + const std::string& storedName, + const std::string& cName) { + std::vector names; + names.push_back(storedName); + + if (!strippedEnumName.empty() && startsWith(storedName, strippedEnumName) && + storedName.size() > strippedEnumName.size()) { + names.push_back(storedName.substr(strippedEnumName.size())); + } else if (!strippedEnumName.empty() && + !startsWith(storedName, strippedEnumName)) { + names.push_back(strippedEnumName + storedName); + } + + if (startsWith(enumName, "NS") && !startsWith(storedName, "NS")) { + names.push_back(std::string("NS") + storedName); + } + + if (enumName == "NSStringCompareOptions" && !endsWith(storedName, "Search")) { + names.push_back(storedName + "Search"); + names.push_back(std::string("NS") + storedName + "Search"); + } + + if (!startsWith(storedName, "k")) { + names.push_back(std::string("k") + enumName + storedName); + } + + if (enumName == "NSComparisonResult" && + (storedName == "Ascending" || storedName == "Same" || + storedName == "Descending")) { + names.push_back(std::string("Ordered") + storedName); + names.push_back(std::string("NSOrdered") + storedName); + } + + if (!cName.empty()) { + names.push_back(cName); + } + + std::vector aliases; + aliases.reserve(names.size()); + std::unordered_set seen; + for (auto& name : names) { + if (!name.empty() && seen.insert(name).second) { + bool isCName = name == cName; + aliases.push_back(Alias{std::move(name), isCName}); + } + } + return aliases; +} + +} // namespace enum_members +} // namespace nativescript + +#endif // NATIVESCRIPT_FFI_OBJC_SHARED_ENUM_MEMBER_ALIASES_H diff --git a/NativeScript/ffi/objc/shared/bridge/HostObject.mm b/NativeScript/ffi/objc/shared/bridge/HostObject.mm index 146824f25..6ab4d0493 100644 --- a/NativeScript/ffi/objc/shared/bridge/HostObject.mm +++ b/NativeScript/ffi/objc/shared/bridge/HostObject.mm @@ -509,6 +509,21 @@ throw JSError(runtime, return enumToObject(runtime, bridge->metadata(), *symbol); }); } + if (property == "getEnumGlobalNames") { + auto bridge = bridge_; + return Function::createFromHostFunction( + runtime, PropNameID::forAscii(runtime, "getEnumGlobalNames"), 1, + [bridge](Runtime& runtime, const Value&, const Value* args, + size_t count) -> Value { + std::string enumName = readStringArg(runtime, args, count, 0, "name"); + const NativeApiSymbol* symbol = bridge->findEnum(enumName); + if (symbol == nullptr) { + return namesToArray(runtime, {}); + } + return namesToArray(runtime, + enumGlobalNames(bridge->metadata(), *symbol)); + }); + } if (property == "getProtocol") { auto bridge = bridge_; return Function::createFromHostFunction( @@ -626,6 +641,7 @@ throw JSError(runtime, addPropertyName(runtime, names, "getFunction"); addPropertyName(runtime, names, "getConstant"); addPropertyName(runtime, names, "getEnum"); + addPropertyName(runtime, names, "getEnumGlobalNames"); addPropertyName(runtime, names, "getProtocol"); addPropertyName(runtime, names, "getStruct"); addPropertyName(runtime, names, "getUnion"); diff --git a/NativeScript/ffi/objc/shared/bridge/Install.mm b/NativeScript/ffi/objc/shared/bridge/Install.mm index 6fd3e46b7..6623f8491 100644 --- a/NativeScript/ffi/objc/shared/bridge/Install.mm +++ b/NativeScript/ffi/objc/shared/bridge/Install.mm @@ -2062,16 +2062,10 @@ function resolveNativeApiEnum(enumName) { }); enumNameList.forEach(function(name) { defineLazyGlobal(name, resolveNativeApiEnum, false, 'enum'); - var enumValue = resolveNativeApiEnum(name); - if (!enumValue || typeof enumValue !== 'object') { - return; - } - Object.keys(enumValue).forEach(function(memberName) { - if (/^-?\d+$/.test(memberName)) { - return; - } + api.getEnumGlobalNames(name).forEach(function(memberName) { defineLazyGlobal(memberName, function() { - return enumValue[memberName]; + var enumValue = resolveNativeApiEnum(name); + return enumValue && enumValue[memberName]; }, false, 'enumMember:' + name); }); }); diff --git a/NativeScript/ffi/objc/shared/bridge/Invocation.mm b/NativeScript/ffi/objc/shared/bridge/Invocation.mm index 1925015e1..2bcfac78f 100644 --- a/NativeScript/ffi/objc/shared/bridge/Invocation.mm +++ b/NativeScript/ffi/objc/shared/bridge/Invocation.mm @@ -30,14 +30,6 @@ bool endsWith(const std::string& value, const std::string& suffix) { return enumName; } -bool isNSComparisonResultOrderingName(const std::string& enumName, - const std::string& member) { - if (enumName != "NSComparisonResult") { - return false; - } - return member == "Ascending" || member == "Same" || member == "Descending"; -} - class NativeApiReturnStorage { public: explicit NativeApiReturnStorage(size_t size) @@ -101,72 +93,45 @@ Value enumToObject(Runtime& runtime, MDMetadataReader* metadata, return result; } - std::string enumName = symbol.name; + const std::string& enumName = symbol.name; std::string strippedPrefix = stripEnumSuffix(enumName); - MDSectionOffset offset = symbol.offset + sizeof(MDSectionOffset); - bool next = true; - while (next) { - auto nameOffset = metadata->getOffset(offset); - next = (nameOffset & metagen::mdSectionOffsetNext) != 0; - nameOffset &= ~metagen::mdSectionOffsetNext; - offset += sizeof(MDSectionOffset); - - const char* memberName = metadata->resolveString(nameOffset); - int64_t value = metadata->getEnumValue(offset); - offset += sizeof(int64_t); - - std::string canonicalName = memberName != nullptr ? memberName : ""; - std::vector aliases; - aliases.push_back(canonicalName); - - if (!strippedPrefix.empty() && startsWith(canonicalName, strippedPrefix) && - canonicalName.size() > strippedPrefix.size()) { - aliases.push_back(canonicalName.substr(strippedPrefix.size())); - } else if (!strippedPrefix.empty() && - !startsWith(canonicalName, strippedPrefix)) { - aliases.push_back(strippedPrefix + canonicalName); - } - - if (startsWith(enumName, "NS") && !startsWith(canonicalName, "NS")) { - aliases.push_back(std::string("NS") + canonicalName); - } - - if (enumName == "NSStringCompareOptions" && - !endsWith(canonicalName, "Search")) { - aliases.push_back(canonicalName + "Search"); - aliases.push_back(std::string("NS") + canonicalName + "Search"); - } - - if (!startsWith(canonicalName, "k")) { - aliases.push_back(std::string("k") + enumName + canonicalName); - } - - if (isNSComparisonResultOrderingName(enumName, canonicalName)) { - aliases.push_back(std::string("Ordered") + canonicalName); - aliases.push_back(std::string("NSOrdered") + canonicalName); - } - - std::vector uniqueAliases; - std::unordered_set seenAliases; - for (const auto& alias : aliases) { - if (!alias.empty() && seenAliases.insert(alias).second) { - uniqueAliases.push_back(alias); - } - } + metadata->forEachEnumMember( + symbol.offset, [&](const char* memberName, const std::string& cName, + int64_t value) { + std::string storedName = memberName != nullptr ? memberName : ""; + auto aliases = enum_members::aliasesFor(enumName, strippedPrefix, + storedName, cName); + for (const auto& alias : aliases) { + result.setProperty(runtime, alias.name.c_str(), + static_cast(value)); + } - for (const auto& alias : uniqueAliases) { - result.setProperty(runtime, alias.c_str(), static_cast(value)); - } + char valueKey[32] = {}; + snprintf(valueKey, sizeof(valueKey), "%lld", + static_cast(value)); + if (!result.hasProperty(runtime, valueKey)) { + const std::string& reverseName = + aliases.size() > 1 ? aliases[1].name : storedName; + result.setProperty(runtime, valueKey, + makeString(runtime, reverseName)); + } + }); + return result; +} - char valueKey[32] = {}; - snprintf(valueKey, sizeof(valueKey), "%lld", static_cast(value)); - if (!result.hasProperty(runtime, valueKey)) { - std::string reverseName = - uniqueAliases.size() > 1 ? uniqueAliases[1] : canonicalName; - result.setProperty(runtime, valueKey, makeString(runtime, reverseName)); - } +std::vector enumGlobalNames(MDMetadataReader* metadata, + const NativeApiSymbol& symbol) { + std::vector names; + if (metadata == nullptr || symbol.offset == MD_SECTION_OFFSET_NULL) { + return names; } - return result; + metadata->forEachEnumMember( + symbol.offset, [&](const char*, const std::string& cName, int64_t) { + if (!cName.empty()) { + names.push_back(cName); + } + }); + return names; } Value constantToValue(Runtime& runtime, diff --git a/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm b/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm index b984ba80c..2fd8a6ca1 100644 --- a/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm +++ b/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm @@ -1922,15 +1922,7 @@ void indexEnums() { MDSectionOffset originalOffset = offset; addSymbol(NativeApiSymbolKind::Enum, originalOffset, metadata_->getString(offset)); - offset += sizeof(MDSectionOffset); - - bool next = true; - while (next) { - auto nameOffset = metadata_->getOffset(offset); - next = (nameOffset & metagen::mdSectionOffsetNext) != 0; - offset += sizeof(MDSectionOffset); - offset += sizeof(int64_t); - } + offset = metadata_->skipEnum(originalOffset); } } diff --git a/NativeScript/ffi/objc/v8/NativeApiV8Runtime.h b/NativeScript/ffi/objc/v8/NativeApiV8Runtime.h index 67c59063d..bc28ab2a3 100644 --- a/NativeScript/ffi/objc/v8/NativeApiV8Runtime.h +++ b/NativeScript/ffi/objc/v8/NativeApiV8Runtime.h @@ -24,6 +24,7 @@ #include "Metadata.h" #include "MetadataReader.h" #include "ffi.h" +#include "ffi/objc/shared/EnumMemberAliases.h" #include "jsi/v8/V8Runtime.h" diff --git a/metadata-generator/include/IR.h b/metadata-generator/include/IR.h index 80ceaa789..d6c0318c8 100644 --- a/metadata-generator/include/IR.h +++ b/metadata-generator/include/IR.h @@ -98,6 +98,7 @@ enum VariableConstEvalKind { struct EnumConstDecl { std::string name; + std::string cName; int64_t value; AvailabilityInfo availability; }; @@ -132,6 +133,10 @@ class EnumDecl { std::string name; std::vector constants; + // Stripped from every member's cName to form its name, except members + // whose name is their cName. + std::string memberPrefix; + std::string memberSuffix; MDSectionOffset mdOffset = MD_SECTION_OFFSET_NULL; }; diff --git a/metadata-generator/include/Metadata.h b/metadata-generator/include/Metadata.h index 8ebc6e9dd..70398f3c1 100644 --- a/metadata-generator/include/Metadata.h +++ b/metadata-generator/include/Metadata.h @@ -18,6 +18,9 @@ typedef uint32_t MDSectionOffset; enum MDSectionOffsetFlag : uint32_t { mdSectionOffsetNext = 1u << 31, + // Enum member names only: the stored name is the full C name rather than + // one shortened by the enum's member prefix/suffix. + mdSectionOffsetEnumMemberCName = 1u << 30, }; // Bits 0-1: flags (2 flags) @@ -113,7 +116,11 @@ enum MDFunctionFlag : uint8_t { #define MD_HEADER_MAGIC_SIZE 4 #define MD_HEADER_MAGIC "NSMD" #define MD_HEADER_VERSION_SIZE 2 -#define MD_HEADER_VERSION 1 +#define MD_HEADER_VERSION 2 +#define MD_HEADER_MIN_VERSION 1 +// From this version, enum entries carry the member prefix/suffix and member +// names carry mdSectionOffsetEnumMemberCName. +#define MD_HEADER_VERSION_ENUM_MEMBER_C_NAMES 2 #define MD_HEADER_SIZE (MD_HEADER_MAGIC_SIZE + MD_HEADER_VERSION_SIZE) #define MD_NUM_SECTIONS 9 diff --git a/metadata-generator/include/MetadataReader.h b/metadata-generator/include/MetadataReader.h index 4a7595322..a1f444582 100644 --- a/metadata-generator/include/MetadataReader.h +++ b/metadata-generator/include/MetadataReader.h @@ -3,6 +3,7 @@ #include #include #include +#include #include "Metadata.h" @@ -14,6 +15,7 @@ class MDMetadataReader { public: void* data; bool ownsData = false; + uint16_t version = 0; MDSectionOffset stringsOffset; MDSectionOffset constantsOffset; @@ -35,9 +37,8 @@ class MDMetadataReader { } ptr_add(&data, MD_HEADER_MAGIC_SIZE); - uint16_t version; memcpy(&version, data, MD_HEADER_VERSION_SIZE); - if (version != MD_HEADER_VERSION) { + if (version < MD_HEADER_MIN_VERSION || version > MD_HEADER_VERSION) { fprintf(stderr, "Invalid metadata header version\n"); exit(1); } @@ -95,6 +96,66 @@ class MDMetadataReader { return *(int64_t*)((char*)data + offset); } + inline bool hasEnumMemberCNames() const { + return version >= MD_HEADER_VERSION_ENUM_MEMBER_C_NAMES; + } + + // Visits fn(name, cName, value) for each member of the enum entry at + // enumOffset and returns the offset just past the entry. cName is empty when + // the metadata predates stored C names; it cannot be derived from name. + template + inline MDSectionOffset forEachEnumMember(MDSectionOffset enumOffset, + Fn&& fn) { + MDSectionOffset offset = enumOffset + sizeof(MDSectionOffset); + const bool hasCNames = hasEnumMemberCNames(); + const char* prefix = ""; + const char* suffix = ""; + if (hasCNames) { + prefix = getString(offset); + offset += sizeof(MDSectionOffset); + suffix = getString(offset); + offset += sizeof(MDSectionOffset); + } + + bool next = true; + while (next) { + MDSectionOffset nameOffset = getOffset(offset); + next = (nameOffset & mdSectionOffsetNext) != 0; + const bool nameIsCName = + hasCNames && (nameOffset & mdSectionOffsetEnumMemberCName) != 0; + if (hasCNames) { + nameOffset &= ~mdSectionOffsetEnumMemberCName; + } + nameOffset &= ~mdSectionOffsetNext; + offset += sizeof(MDSectionOffset); + int64_t value = getEnumValue(offset); + offset += sizeof(int64_t); + + const char* name = resolveString(nameOffset); + std::string cName; + if (nameIsCName) { + cName = name; + } else if (hasCNames) { + cName.append(prefix).append(name).append(suffix); + } + fn(name, cName, value); + } + return offset; + } + + inline MDSectionOffset skipEnum(MDSectionOffset enumOffset) { + MDSectionOffset offset = enumOffset + sizeof(MDSectionOffset); + if (hasEnumMemberCNames()) { + offset += 2 * sizeof(MDSectionOffset); + } + bool next = true; + while (next) { + next = (getOffset(offset) & mdSectionOffsetNext) != 0; + offset += sizeof(MDSectionOffset) + sizeof(int64_t); + } + return offset; + } + inline MDMemberFlag getMemberFlag(MDSectionOffset offset) { return *(MDMemberFlag*)((char*)data + offset); } diff --git a/metadata-generator/include/MetadataWriter.h b/metadata-generator/include/MetadataWriter.h index 711b4d2e8..fe69b860e 100644 --- a/metadata-generator/include/MetadataWriter.h +++ b/metadata-generator/include/MetadataWriter.h @@ -40,11 +40,14 @@ struct MDVariable { struct MDEnumMember { MDSectionOffset name; + bool nameIsCName; int64_t value; }; struct MDEnum { MDSectionOffset name; + MDSectionOffset memberPrefix; + MDSectionOffset memberSuffix; std::vector members; }; diff --git a/metadata-generator/src/IR/Enum.cpp b/metadata-generator/src/IR/Enum.cpp index ba046c583..e82429221 100644 --- a/metadata-generator/src/IR/Enum.cpp +++ b/metadata-generator/src/IR/Enum.cpp @@ -13,7 +13,8 @@ namespace metagen { // - Deferred // Basically, split the name into parts (assuming camel case), and then remove // the repeating parts from the beginning and end of the name. -void transformEnumMemberNames(std::vector& members) { +void transformEnumMemberNames(std::vector& members, + std::string& prefix, std::string& suffix) { std::vector> parts; parts.reserve(members.size()); size_t skip_begin = 0, skip_end = 0; @@ -69,6 +70,13 @@ void transformEnumMemberNames(std::vector& members) { } } + for (size_t j = 0; j < skip_begin; j++) { + prefix += largestPart[j]; + } + for (size_t j = largestPart.size() - skip_end; j < largestPart.size(); j++) { + suffix += largestPart[j]; + } + for (size_t i = 0; i < members.size(); i++) { const auto& part = parts[i]; std::string name; @@ -119,6 +127,7 @@ EnumDecl::EnumDecl(CXCursor cursor) { auto value = clang_getEnumConstantDeclValue(cursor); EnumConstDecl decl; decl.name = nameStr; + decl.cName = nameStr; decl.value = value; if (gCaptureAvailability) { decl.availability = getAvailabilityInfo(cursor); @@ -135,7 +144,8 @@ EnumDecl::EnumDecl(CXCursor cursor) { }, this); - if (!name.empty()) transformEnumMemberNames(constants); + if (!name.empty()) + transformEnumMemberNames(constants, memberPrefix, memberSuffix); } void MetadataFactory::processEnumRefs() { diff --git a/metadata-generator/src/IR/Factory.cpp b/metadata-generator/src/IR/Factory.cpp index 7ddc67996..e8b3a400b 100644 --- a/metadata-generator/src/IR/Factory.cpp +++ b/metadata-generator/src/IR/Factory.cpp @@ -379,6 +379,8 @@ void MetadataFactory::processEnum(CXCursor cursor, bool required) { if (enumIt != enums.end()) { if (enumIt->second.constants.size() < decl.constants.size()) { enumIt->second.constants = std::move(decl.constants); + enumIt->second.memberPrefix = std::move(decl.memberPrefix); + enumIt->second.memberSuffix = std::move(decl.memberSuffix); } return; } diff --git a/metadata-generator/src/MetadataWriter/Enum.cpp b/metadata-generator/src/MetadataWriter/Enum.cpp index a4abe3109..48256137e 100644 --- a/metadata-generator/src/MetadataWriter/Enum.cpp +++ b/metadata-generator/src/MetadataWriter/Enum.cpp @@ -10,11 +10,25 @@ void MDMetadataWriter::write(EnumDecl &decl) { MDEnum *mdEnum = new MDEnum(); mdEnum->name = strings.add(decl.name, decl.name); + mdEnum->memberPrefix = strings.add(decl.memberPrefix, decl.memberPrefix); + mdEnum->memberSuffix = strings.add(decl.memberSuffix, decl.memberSuffix); mdEnum->members.reserve(decl.constants.size()); for (const EnumConstDecl &c : decl.constants) { MDEnumMember member; member.name = strings.add(c.name, c.name); + if ((member.name & mdSectionOffsetEnumMemberCName) != 0) { + std::cerr << "Strings section too large to flag enum member names" + << std::endl; + exit(1); + } + member.nameIsCName = c.name == c.cName; + if (!member.nameIsCName && + decl.memberPrefix + c.name + decl.memberSuffix != c.cName) { + std::cerr << "Enum " << decl.name << ": cannot encode the C name of " + << c.cName << std::endl; + exit(1); + } member.value = c.value; mdEnum->members.push_back(member); } @@ -33,7 +47,11 @@ size_t MDEnumMemberSerde::size(MDEnumMember *value) { void MDEnumMemberSerde::serialize(MDEnumMember *value, void *data) { // Name - binwrite(value->name); + MDSectionOffset name = value->name; + if (value->nameIsCName) { + name |= mdSectionOffsetEnumMemberCName; + } + binwrite(name); // Value binwrite(value->value); } @@ -42,6 +60,8 @@ size_t MDEnumSerde::size(MDEnum *value) { size_t size = 0; // Name addsize(value->name); + addsize(value->memberPrefix); + addsize(value->memberSuffix); // Members MDEnumMemberSerde memberSerde; if (!value->members.empty()) { @@ -53,6 +73,8 @@ size_t MDEnumSerde::size(MDEnum *value) { void MDEnumSerde::serialize(MDEnum *value, void *data) { // Name binwrite(value->name); + binwrite(value->memberPrefix); + binwrite(value->memberSuffix); // Members size_t membersSize = value->members.size(); MDEnumMemberSerde memberSerde; diff --git a/packages/react-native/src/index.d.ts b/packages/react-native/src/index.d.ts index 55a49eaa5..f97ff8833 100644 --- a/packages/react-native/src/index.d.ts +++ b/packages/react-native/src/index.d.ts @@ -36,6 +36,8 @@ export type NativeApiHost = { getClass?: (name: string) => unknown; getProtocol?: (name: string) => unknown; getEnum?: (name: string) => unknown; + /** C constant names of the enum's members, which installGlobals() defines as globals. */ + getEnumGlobalNames?: (name: string) => string[]; getStruct?: (name: string) => unknown; getUnion?: (name: string) => unknown; [name: string]: unknown; diff --git a/packages/react-native/src/index.ts b/packages/react-native/src/index.ts index ccd1c9078..fb4548c6c 100644 --- a/packages/react-native/src/index.ts +++ b/packages/react-native/src/index.ts @@ -47,6 +47,7 @@ type NativeApiHost = { getClass?: (name: string) => unknown; getProtocol?: (name: string) => unknown; getEnum?: (name: string) => unknown; + getEnumGlobalNames?: (name: string) => string[]; getStruct?: (name: string) => unknown; getUnion?: (name: string) => unknown; [name: string]: unknown; @@ -689,18 +690,13 @@ export function installGlobals(): boolean { api.getEnum?.(enumName) ?? api[enumName]; defineLazyNativeGlobal(name, resolveEnum); - const enumValue = resolveEnum(name); - if (!enumValue || typeof enumValue !== "object") { - continue; - } - for (const memberName of Object.keys(enumValue)) { - if (/^-?\d+$/.test(memberName)) { - continue; - } - defineLazyNativeGlobal( - memberName, - () => (enumValue as Record)[memberName], - ); + for (const memberName of api.getEnumGlobalNames?.(name) ?? []) { + defineLazyNativeGlobal(memberName, () => { + const enumValue = resolveEnum(name) as + | Record + | undefined; + return enumValue?.[memberName]; + }); } } diff --git a/platforms/apple/test/runtime/runner/app/tests/Marshalling/EnumTests.js b/platforms/apple/test/runtime/runner/app/tests/Marshalling/EnumTests.js index 2dd33c858..b9786514b 100644 --- a/platforms/apple/test/runtime/runner/app/tests/Marshalling/EnumTests.js +++ b/platforms/apple/test/runtime/runner/app/tests/Marshalling/EnumTests.js @@ -43,6 +43,30 @@ describe(module.id, function () { expect(NSOrderedAscending).toBe(-1); expect(NSOrderedSame).toBe(0); expect(NSOrderedDescending).toBe(1); + expect(NSTextAlignmentCenter).toBe(NSTextAlignment.Center); + expect(kCLAuthorizationStatusRestricted).toBe(1); + expect(NSCaseInsensitiveSearch).toBe(1); + }); + + it("EnumConstantsWhoseNameDiffersFromTheEnumName", function () { + expect(MKMapTypeStandard).toBe(0); + expect(MKMapType.MKMapTypeStandard).toBe(0); + expect(CKErrorZoneBusy).toBe(23); + expect(CKErrorCode.CKErrorZoneBusy).toBe(23); + expect(CKRecordZoneCapabilityAtomic).toBe(2); + expect(CKRecordZoneEncryptionScopePerZone).toBe(1); + }); + + it("EnumMemberAliasesAreNotGlobalVariables", function () { + expect(NSTextAlignment.Center).toBe(1); + expect(CKRecordZoneEncryptionScope.Zone).toBe(1); + expect(CKErrorCode.ZoneBusy).toBe(23); + + ["Center", "Zone", "Ascending", "Restricted", "ZoneBusy", + "NSComparisonAscending", "kNSTextAlignmentCenter"].forEach(function (name) { + expect(name + " in globalThis: " + (name in globalThis)) + .toBe(name + " in globalThis: false"); + }); }); it("EnumWithOneValue", function () { From 0ace0706f4148c5989a6e6216304c95d608a90a2 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 20:04:46 -0800 Subject: [PATCH 84/98] fix(android): re-attach NativeScript after a JavaScript reload (#89) * refactor(android): detach through the worker teardown path Narrows the reload fix to what React Native needs: the module tracks its own install, invalidate() detaches, and detaching reuses the teardown a worker already goes through. - Runtime.detach() is detachRuntime() (formerly detachWorkerRuntime) plus Runtime::DisposeRuntime (formerly DisposeWorkerRuntime), now built in the host-runtime flavour too. The separate Runtime::Detach is gone. - ~Runtime still resets the main-runtime statics, and BuildMetadata still builds the tree once. Dropped, to land separately or not at all: throwing on a failed post to the JS thread, the GcListener delivery lock and the notifyGc change, the orphaned-object map, the LRU cache clear, the global-ref delete in ~Runtime, MethodCallbackData ownership, and their napi mirrors. * refactor(android): name napi's runtime teardown DisposeRuntime too --- .../ffi/jni/jsi/metadata/MetadataNode.cpp | 5 +++ NativeScript/runtime/android/jsi/EngineHost.h | 4 +- NativeScript/runtime/android/jsi/Runtime.cpp | 33 +++++++++------ NativeScript/runtime/android/jsi/Runtime.h | 9 ++-- .../android/jsi/workers/WorkerWrapper.cpp | 6 +-- NativeScript/runtime/android/napi/Runtime.cpp | 2 +- NativeScript/runtime/android/napi/Runtime.h | 2 +- .../android/napi/workers/WorkerWrapper.cpp | 4 +- .../src/main/cpp/NativeScriptRnInstall.cpp | 27 ++++++------ .../NativeScriptNativeApiModule.java | 42 +++++++++++++++---- .../src/main/java/com/tns/Runtime.java | 18 ++++++-- 11 files changed, 100 insertions(+), 52 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 65193022a..40250c5d1 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -2584,6 +2584,11 @@ void MetadataNode::SetMissingBaseMethods( } void MetadataNode::BuildMetadata(const std::string &filesPath) { + // Once per process: the static node caches point into this tree, and it + // outlives any one main runtime. + if (s_metadataReader.GetRoot() != nullptr) { + return; + } s_metadataReader = MetadataBuilder::BuildMetadata(filesPath); } diff --git a/NativeScript/runtime/android/jsi/EngineHost.h b/NativeScript/runtime/android/jsi/EngineHost.h index 31dffa0be..9a6016cdf 100644 --- a/NativeScript/runtime/android/jsi/EngineHost.h +++ b/NativeScript/runtime/android/jsi/EngineHost.h @@ -11,7 +11,7 @@ // EngineHost is held by shared_ptr and JSScope keeps a strong reference for its // lifetime. That is what makes teardown safe by construction: the VM, and the // recursive mutex the scope holds, cannot be freed while a scope is still -// unwinding over them. See Runtime::DisposeWorkerRuntime. +// unwinding over them. See Runtime::DisposeRuntime. #include #include @@ -58,7 +58,7 @@ class EngineHost { #if defined(NS_JSI_HOST_RUNTIME) // Adopts a runtime the embedder owns. The reference must outlive this host: // React Native tears its runtime down only after the TurboModule that holds - // us has been invalidated, which is what ReleaseEngineState is wired to. + // us has been invalidated, which is where Runtime::DisposeRuntime runs. static std::shared_ptr Adopt(::facebook::jsi::Runtime &runtime); #else static std::shared_ptr Create(); diff --git a/NativeScript/runtime/android/jsi/Runtime.cpp b/NativeScript/runtime/android/jsi/Runtime.cpp index 7991157d2..dd4306f25 100644 --- a/NativeScript/runtime/android/jsi/Runtime.cpp +++ b/NativeScript/runtime/android/jsi/Runtime.cpp @@ -546,6 +546,13 @@ Runtime::~Runtime() { if (m_mainLooper_fd[1] != -1) { close(m_mainLooper_fd[1]); } + + // A guest's main runtime is deleted when its host runtime goes away, and + // the next one attached may run on a different thread. + m_mainLooper = nullptr; + m_mainLooper_fd[0] = m_mainLooper_fd[1] = -1; + s_main_rt = nullptr; + s_mainThreadInitialized = false; } } @@ -605,6 +612,19 @@ void Runtime::DestroyRuntime() { // and ~EngineHost does the teardown once nothing is standing on it. } +void Runtime::DisposeRuntime(Runtime *runtime) { + // `engineHost` is referenced by the JSEnterScope macro below. + std::shared_ptr engineHost = runtime->GetEngineHost(); + { + JSEnterScope + runtime->DestroyRuntime(); + } + // Both this scope's reference and the runtime's are gone by the end of the + // next line, and whichever drops last runs ~EngineHost. Nothing frees the VM + // while the scope above is still unwinding over it. + delete runtime; +} + bool Runtime::NotifyGC(JNIEnv *jEnv, jobject obj, jintArray object_ids) { if (this->is_destroying) return true; m_objectManager->OnGarbageCollected(jEnv, object_ids); @@ -673,19 +693,6 @@ void Runtime::RunWorker(const std::string &filePath) { m_module.LoadWorker(engineHost->GetRuntime(), filePath); } -void Runtime::DisposeWorkerRuntime(Runtime *runtime) { - // `engineHost` is referenced by the JSEnterScope macro below. - std::shared_ptr engineHost = runtime->GetEngineHost(); - { - JSEnterScope - runtime->DestroyRuntime(); - } - // Both this scope's reference and the runtime's are gone by the end of the - // next line, and whichever drops last runs ~EngineHost. Nothing frees the VM - // while the scope above is still unwinding over it. - delete runtime; -} - jobject Runtime::RunScript(JNIEnv *_env, jobject obj, jstring scriptFile) { auto filename = ArgConverter::jstringToString(scriptFile); auto sourceUrl = ModuleInternal::EnsureFileProtocol(filename); diff --git a/NativeScript/runtime/android/jsi/Runtime.h b/NativeScript/runtime/android/jsi/Runtime.h index 3b41c83a4..5088e1dc7 100644 --- a/NativeScript/runtime/android/jsi/Runtime.h +++ b/NativeScript/runtime/android/jsi/Runtime.h @@ -104,11 +104,10 @@ namespace tns { void RunWorker(const std::string &filePath); #endif - // Tears down a worker's Runtime (engine scope + engine state release) and - // deletes it. Called from the native worker thread during shutdown. -#if !defined(NS_JSI_HOST_RUNTIME) - static void DisposeWorkerRuntime(Runtime *runtime); -#endif + // Tears down a Runtime inside its engine scope and deletes it. The engine + // must still be alive with no JS running on it, and nothing may reach + // `runtime` from another thread once this begins. + static void DisposeRuntime(Runtime *runtime); jobject RunScript(JNIEnv *_env, jobject obj, jstring scriptFile); diff --git a/NativeScript/runtime/android/jsi/workers/WorkerWrapper.cpp b/NativeScript/runtime/android/jsi/workers/WorkerWrapper.cpp index 5bd5b3b7f..86c26c576 100644 --- a/NativeScript/runtime/android/jsi/workers/WorkerWrapper.cpp +++ b/NativeScript/runtime/android/jsi/workers/WorkerWrapper.cpp @@ -422,10 +422,10 @@ void WorkerWrapper::BackgroundLooper(std::shared_ptr self) { workerRt_.store(nullptr); // Enters the engine scope, tears the runtime down and deletes it. - Runtime::DisposeWorkerRuntime(runtime_); + Runtime::DisposeRuntime(runtime_); runtime_ = nullptr; // The last reference this thread holds to the worker VM, and it is - // dropped only after DisposeWorkerRuntime's scope has fully unwound. + // dropped only after DisposeRuntime's scope has fully unwound. workerHost_.reset(); } @@ -529,7 +529,7 @@ void WorkerWrapper::EnsureJniCached() { env.GetStaticMethodID(RUNTIME_CLASS, "initWorkerRuntime", "(ILjava/lang/String;)I"); RUN_WORKER_LOOP_METHOD_ID = env.GetStaticMethodID(RUNTIME_CLASS, "runWorkerLoop", "()V"); DETACH_WORKER_RUNTIME_METHOD_ID = - env.GetStaticMethodID(RUNTIME_CLASS, "detachWorkerRuntime", "(I)V"); + env.GetStaticMethodID(RUNTIME_CLASS, "detachRuntime", "(I)V"); LOOPER_CLASS = env.FindClass("android/os/Looper"); assert(LOOPER_CLASS != nullptr); diff --git a/NativeScript/runtime/android/napi/Runtime.cpp b/NativeScript/runtime/android/napi/Runtime.cpp index 3811bc8fe..382b5624e 100644 --- a/NativeScript/runtime/android/napi/Runtime.cpp +++ b/NativeScript/runtime/android/napi/Runtime.cpp @@ -613,7 +613,7 @@ void Runtime::RunWorker(const std::string &filePath) { m_module.LoadWorker(env, filePath); } -void Runtime::DisposeWorkerRuntime(Runtime *runtime) { +void Runtime::DisposeRuntime(Runtime *runtime) { // `env` is referenced by the (engine-specific) JSEnterScope macro below. napi_env env = runtime->env; { diff --git a/NativeScript/runtime/android/napi/Runtime.h b/NativeScript/runtime/android/napi/Runtime.h index d9be6a277..e52128e7e 100644 --- a/NativeScript/runtime/android/napi/Runtime.h +++ b/NativeScript/runtime/android/napi/Runtime.h @@ -84,7 +84,7 @@ namespace tns { // Tears down a worker's Runtime (engine scope + env free) and deletes // it. Called from the native worker thread during shutdown. - static void DisposeWorkerRuntime(Runtime *runtime); + static void DisposeRuntime(Runtime *runtime); jobject RunScript(JNIEnv *_env, jobject obj, jstring scriptFile); diff --git a/NativeScript/runtime/android/napi/workers/WorkerWrapper.cpp b/NativeScript/runtime/android/napi/workers/WorkerWrapper.cpp index 21fa72e02..c16efaa1e 100644 --- a/NativeScript/runtime/android/napi/workers/WorkerWrapper.cpp +++ b/NativeScript/runtime/android/napi/workers/WorkerWrapper.cpp @@ -502,7 +502,7 @@ void WorkerWrapper::BackgroundLooper(std::shared_ptr self) { // Enters the engine scope, tears down the runtime and frees the env, // then deletes the Runtime (which frees the underlying engine runtime). - Runtime::DisposeWorkerRuntime(runtime_); + Runtime::DisposeRuntime(runtime_); runtime_ = nullptr; } @@ -604,7 +604,7 @@ void WorkerWrapper::EnsureJniCached() { env.GetStaticMethodID(RUNTIME_CLASS, "initWorkerRuntime", "(ILjava/lang/String;)I"); RUN_WORKER_LOOP_METHOD_ID = env.GetStaticMethodID(RUNTIME_CLASS, "runWorkerLoop", "()V"); DETACH_WORKER_RUNTIME_METHOD_ID = - env.GetStaticMethodID(RUNTIME_CLASS, "detachWorkerRuntime", "(I)V"); + env.GetStaticMethodID(RUNTIME_CLASS, "detachRuntime", "(I)V"); LOOPER_CLASS = env.FindClass("android/os/Looper"); assert(LOOPER_CLASS != nullptr); diff --git a/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp b/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp index fcf76578f..f08e3c5f2 100644 --- a/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp +++ b/packages/react-native/android/src/main/cpp/NativeScriptRnInstall.cpp @@ -18,15 +18,6 @@ using namespace tns; -namespace { - -// Set once the first attach succeeds. React Native can reload the JS bundle, -// which builds a fresh jsi::Runtime; the module checks this before installing -// so a reload rebinds rather than stacking a second runtime on the first. -bool g_attached = false; - -} // namespace - extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_attachNativeScript( JNIEnv* env, jobject obj, jint runtimeId, jstring metadataPath, jlong hostRuntimePtr, jboolean verboseLoggingEnabled, jint maxLogcatObjectSize, jboolean forceLog, @@ -58,8 +49,6 @@ extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_attachNativeScript( runtime->GetEngineHost()->ExecuteScript(source, "internal/ts_helpers.js"); } } - - g_attached = true; } catch (NativeScriptException& e) { e.ReThrowToJava(nullptr); } catch (std::exception& e) { @@ -71,9 +60,19 @@ extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_attachNativeScript( } } -extern "C" JNIEXPORT jboolean JNICALL -Java_org_nativescript_reactnative_NativeScriptNativeApiModule_nativeIsInstalled(JNIEnv*, jobject) { - return g_attached ? JNI_TRUE : JNI_FALSE; +extern "C" JNIEXPORT void JNICALL Java_com_tns_Runtime_detachNativeScript(JNIEnv*, jobject, + jint runtimeId) { + try { + Runtime::DisposeRuntime(Runtime::GetRuntime(runtimeId)); + } catch (NativeScriptException& e) { + e.ReThrowToJava(nullptr); + } catch (std::exception& e) { + NativeScriptException nsEx(std::string("Error: c++ exception: ") + e.what()); + nsEx.ReThrowToJava(nullptr); + } catch (...) { + NativeScriptException nsEx(std::string("Error: c++ exception!")); + nsEx.ReThrowToJava(nullptr); + } } extern "C" JNIEXPORT jstring JNICALL diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java index d07d099b8..3b5e5508e 100644 --- a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java @@ -3,6 +3,7 @@ import android.content.Context; import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.queue.MessageQueueThread; import com.facebook.react.module.annotations.ReactModule; import com.tns.Logger; @@ -23,6 +24,11 @@ * thread -- it is a synchronous TurboModule method, so React Native already * guarantees that. Everything it does happens against the runtime React Native * created; nothing here starts a JavaScript engine. + * + *

      React Native creates one instance of this module per JavaScript runtime and + * invalidates it before destroying that runtime, which is where NativeScript + * lets go of it. A reloaded bundle installs into its new runtime through a new + * instance. */ @ReactModule(name = NativeScriptNativeApiModule.NAME) public class NativeScriptNativeApiModule extends NativeScriptNativeApiSpec { @@ -44,6 +50,8 @@ public class NativeScriptNativeApiModule extends NativeScriptNativeApiSpec { private final ReactApplicationContext reactContext; + private volatile Runtime attachedRuntime; + public NativeScriptNativeApiModule(ReactApplicationContext reactContext) { super(reactContext); this.reactContext = reactContext; @@ -54,13 +62,11 @@ public String getName() { return NAME; } - private native boolean nativeIsInstalled(); - private native String nativeRuntimeBackend(); @Override public boolean install(String metadataPath) { - if (nativeIsInstalled()) { + if (attachedRuntime != null) { return true; } @@ -88,10 +94,30 @@ public boolean install(String metadataPath) { + "JSI runtime and cannot run over the legacy bridge."); } - attachRuntime(context, runtimePtr, resolvedPath, readAsset(context, ASSET_TS_HELPERS)); + attachedRuntime = attachRuntime(context, runtimePtr, resolvedPath, + readAsset(context, ASSET_TS_HELPERS)); return true; } + @Override + public void invalidate() { + Runtime runtime = attachedRuntime; + attachedRuntime = null; + if (runtime != null) { + // Detaching releases handles into the jsi::Runtime, so it has to run + // before React Native destroys that runtime and never alongside JS. + // Bridgeless has already stopped the JS thread here, so the post is + // refused and this thread is safe. The bridge can invalidate from + // another thread while JS still runs, and queues the runtime's + // destruction on the JS thread behind this. + MessageQueueThread jsThread = reactContext.getJSMessageQueueThread(); + if (jsThread == null || jsThread.isOnThread() || !jsThread.runOnQueue(runtime::detach)) { + runtime.detach(); + } + } + super.invalidate(); + } + @Override public boolean installWorkletRuntime(com.facebook.react.bridge.ReadableMap runtimeHolder, String metadataPath) { @@ -104,7 +130,7 @@ public boolean installWorkletRuntime(com.facebook.react.bridge.ReadableMap runti @Override public boolean isInstalled() { - return nativeIsInstalled(); + return attachedRuntime != null; } /** @@ -138,8 +164,8 @@ public boolean __writeTestMarker(String content) { } } - private static void attachRuntime(Context context, long runtimePtr, String metadataPath, - String bootstrapScript) { + private static Runtime attachRuntime(Context context, long runtimePtr, String metadataPath, + String bootstrapScript) { File filesDir = context.getFilesDir(); File dexDir = new File(filesDir, "nativescript-dex"); if (!dexDir.exists() && !dexDir.mkdirs()) { @@ -148,7 +174,7 @@ private static void attachRuntime(Context context, long runtimePtr, String metad Logger logger = new NativeScriptLogger(isDebuggable(context)); - Runtime.attachToHostRuntime( + return Runtime.attachToHostRuntime( logger, context.getPackageName(), context.getApplicationInfo().nativeLibraryDir, diff --git a/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java b/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java index 739c10824..f08f4d87d 100644 --- a/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java +++ b/platforms/android/test-app/runtime/src/main/java/com/tns/Runtime.java @@ -53,6 +53,9 @@ private native void attachNativeScript(int runtimeId, String metadataPath, long boolean verboseLoggingEnabled, int maxLogcatObjectSize, boolean forceLog, String bootstrapScript); + // Implemented alongside attachNativeScript. + private native void detachNativeScript(int runtimeId); + private native void runModule(int runtimeId, String filePath) throws NativeScriptException; private native Object runScript(int runtimeId, String filePath) throws NativeScriptException; @@ -520,6 +523,15 @@ private void attach(long hostRuntimePtr, String metadataPath, String bootstrapSc initialized = true; } + /* + Unbinds from the embedder's runtime and frees what NativeScript holds in + it. Must run while that runtime is still alive and not running JS. + */ + public void detach() { + detachRuntime(runtimeId); + detachNativeScript(runtimeId); + } + /* Called via JNI from a native-spawned worker thread (WorkerWrapper), after the thread has attached to the JVM and before the worker script runs. @@ -562,11 +574,11 @@ public static void runWorkerLoop() { } /* - Called via JNI from the native worker thread during shutdown, before the - worker's runtime is disposed. + Called before a runtime is disposed: via JNI from the native worker + thread during shutdown, and by detach(). */ @RuntimeCallable - public static void detachWorkerRuntime(int runtimeId) { + public static void detachRuntime(int runtimeId) { Runtime runtime = runtimeCache.remove(runtimeId); if (runtime != null) { GcListener.unsubscribe(runtime); From 096f9e3d3b423015e716e19ef0a4eb85ac5dba7d Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 20:06:32 -0800 Subject: [PATCH 85/98] fix(android): deliver GC notifications under a per-runtime lock (#91) A GC batch could reach a worker runtime while it was being disposed: the GC thread took the runtime from the subscriber map, the worker thread unsubscribed and disposed its native Runtime, and the GC thread then entered notifyGc for it and crashed (SIGSEGV on the GC thread). Each subscriber now carries its own lock. A batch is delivered while holding that lock, and only if the subscriber is still subscribed; unsubscribe() removes the subscriber, then takes its lock to mark it unsubscribed. Once unsubscribe() returns, no GC thread is inside that runtime's notifyGc and none will enter it. The memory monitor's notifyGc() takes the same per-runtime lock instead of the listener-wide one, and unsubscribe() no longer takes the listener-wide lock, so subscribing or unsubscribing one runtime never waits on a GC delivery into another. --- .../src/main/java/com/tns/GcListener.java | 37 ++++++++++++++----- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/platforms/android/test-app/runtime/src/main/java/com/tns/GcListener.java b/platforms/android/test-app/runtime/src/main/java/com/tns/GcListener.java index 0d5a69892..8dc8e7c14 100644 --- a/platforms/android/test-app/runtime/src/main/java/com/tns/GcListener.java +++ b/platforms/android/test-app/runtime/src/main/java/com/tns/GcListener.java @@ -5,11 +5,13 @@ import java.lang.ref.PhantomReference; import java.lang.ref.ReferenceQueue; import java.util.ArrayList; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; class GCSubscriber { ConcurrentHashMap, Integer> referencesMap = new ConcurrentHashMap<>(); public final ReferenceQueue referenceQueue = new ReferenceQueue<>(); + boolean unsubscribed; // guarded by this } public class GcListener { @@ -60,7 +62,11 @@ public void run() { for (int i =0; i < objIds.length; i++) { objIds[i] = collectedObjectIds.get(i); } - runtime.notifyGc(objIds); + synchronized (subscriber) { + if (!subscriber.unsubscribed) { + runtime.notifyGc(objIds); + } + } if (runtime.getLogger().isEnabled()) { runtime.getLogger().write("GC", "GC triggered for " + String.valueOf(objIds.length) + " objects"); runtime.getLogger().write("NS.GCListener","Objects referenced after GC: " + subscriber.referencesMap.size()); @@ -152,9 +158,17 @@ public static void subscribe(Runtime runtime) { } } + /** + * Once this returns, no GC thread is inside the runtime's notifyGc and none + * will enter it. Must not be called from inside that runtime's JS scope: + * delivery holds the subscriber's lock while it waits to enter the runtime. + */ public static void unsubscribe(Runtime runtime) { - synchronized (instance) { - instance.subscribers.remove(runtime); + GCSubscriber subscriber = instance.subscribers.remove(runtime); + if (subscriber != null) { + synchronized (subscriber) { + subscriber.unsubscribed = true; + } } } @@ -168,15 +182,18 @@ private void start() { } private void notifyGc() { - synchronized (instance) { -// ManualInstrumentation.Frame frame = ManualInstrumentation.start("GcListener.notifyGc"); - try { - for (Runtime runtime : instance.subscribers.keySet()) { - runtime.notifyGc(); +// ManualInstrumentation.Frame frame = ManualInstrumentation.start("GcListener.notifyGc"); + try { + for (Map.Entry entry : subscribers.entrySet()) { + GCSubscriber subscriber = entry.getValue(); + synchronized (subscriber) { + if (!subscriber.unsubscribed) { + entry.getKey().notifyGc(); + } } - } finally { -// frame.close(); } + } finally { +// frame.close(); } } } From 0aa42f82419aceaa1fdd44b3fc2277ac3201c5c1 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 20:13:26 -0800 Subject: [PATCH 86/98] fix(android): free runtime-owned JNI refs and method callback data on dispose (#92) Disposing a runtime (a worker, or a React Native guest runtime) left three things behind: - ObjectManager's LRU cache of Java objects: ~LRUCache drops its map without calling the evict callback, so every cached weak global ref stayed in the process-wide weak reference table. Add LRUCache::clear(), which evicts each entry, and call it from ObjectManager's dispose. - The JNI global ref ~Runtime holds on the Java com.tns.Runtime. - MethodCallbackData for static methods, extension-only methods and methods added from a skipped base class. CtorFuncCache only owns the instance method data, so these were never deleted (about 180 per worker that touches a handful of classes). MetadataNodeCache now owns them and deletes them in onDisposeEnv/onDisposeRuntime. Applied to both the napi and jsi trees. Split out of #89. --- NativeScript/ffi/jni/jsi/jni/LRUCache.h | 10 ++++++++++ NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp | 11 +++++++++++ NativeScript/ffi/jni/jsi/metadata/MetadataNode.h | 3 +++ .../ffi/jni/jsi/objectmanager/ObjectManager.cpp | 4 ++++ NativeScript/ffi/jni/napi/jni/LRUCache.h | 10 ++++++++++ .../ffi/jni/napi/objectmanager/ObjectManager.cpp | 4 ++++ NativeScript/runtime/android/jsi/Runtime.cpp | 2 ++ 7 files changed, 44 insertions(+) diff --git a/NativeScript/ffi/jni/jsi/jni/LRUCache.h b/NativeScript/ffi/jni/jsi/jni/LRUCache.h index 7b829c3dd..afceeb132 100644 --- a/NativeScript/ffi/jni/jsi/jni/LRUCache.h +++ b/NativeScript/ffi/jni/jsi/jni/LRUCache.h @@ -100,6 +100,16 @@ class LRUCache { } } + void clear() { + if (m_evictCallback != nullptr) { + for (auto& entry : m_key_to_value) { + m_evictCallback(entry.second.first, m_state); + } + } + m_key_to_value.clear(); + m_key_tracker.clear(); + } + void update(const key_type& key, const value_type& value) { jweak ref = m_loadCallback(key, m_state); insert(key, ref); diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp index 40250c5d1..357692760 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.cpp @@ -1309,6 +1309,12 @@ std::vector MetadataNode::SetClassMembersFro callbackData->candidates.push_back(std::move(entry)); callbackData->objectManager = objectManager; } + for (const auto &extension: collectedExtensionMethods) { + if (std::find(instanceMethodData.begin(), instanceMethodData.end(), extension.second) == + instanceMethodData.end()) { + cache->methodCallbackData.push_back(extension.second); + } + } auto instanceFieldCount = *reinterpret_cast(curPtr); curPtr += sizeof(uint16_t); for (auto i = 0; i < instanceFieldCount; i++) { @@ -1394,6 +1400,7 @@ std::vector MetadataNode::SetClassMembersFro auto &methodName = entry.getName(); if (methodName != lastMethodName) { callbackData = new MethodCallbackData(this); + cache->methodCallbackData.push_back(callbackData); auto method = JsFunction::createFromHostFunction( rt, engine::PropNameID::forAscii(rt, methodName), 0, [callbackData](JsRuntime &rt, const JsValue &thisVal, const JsValue *args, @@ -2558,6 +2565,7 @@ void MetadataNode::SetMissingBaseMethods( if (callbackData == nullptr) { callbackData = new MethodCallbackData(this); + GetMetadataNodeCache(rt)->methodCallbackData.push_back(callbackData); auto proto = constructor.getPropertyAsObject(rt, "prototype"); auto method = JsFunction::createFromHostFunction( rt, engine::PropNameID::forAscii(rt, methodName), 0, @@ -2620,6 +2628,9 @@ void MetadataNode::onDisposeRuntime(JsRuntime &rt) { for (const auto &entry: it->extendedClassCallbackData) { delete entry; } + for (const auto &entry: it->methodCallbackData) { + delete entry; + } } s_metadata_node_cache.Remove(key); delete it; diff --git a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h index 2c06df48a..265783b4a 100644 --- a/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h +++ b/NativeScript/ffi/jni/jsi/metadata/MetadataNode.h @@ -373,6 +373,9 @@ class MetadataNode { std::vector fieldCallbackData; std::vector propertyCallbackData; std::vector extendedClassCallbackData; + // Method callback data no CtorFuncCache entry owns: static methods, + // extension-only methods and methods copied from a skipped base class. + std::vector methodCallbackData; }; static bool s_profilerEnabled; diff --git a/NativeScript/ffi/jni/jsi/objectmanager/ObjectManager.cpp b/NativeScript/ffi/jni/jsi/objectmanager/ObjectManager.cpp index 394a45446..08e000964 100644 --- a/NativeScript/ffi/jni/jsi/objectmanager/ObjectManager.cpp +++ b/NativeScript/ffi/jni/jsi/objectmanager/ObjectManager.cpp @@ -85,6 +85,10 @@ void ObjectManager::OnDisposeRuntime() { m_idToObject.clear(); m_jsObjectCtor = JsFunction(); + // Its destructor leaves the weak global refs alive, and the process-wide + // weak reference table is finite. + m_cache.clear(); + // The host-object proxies are owned by the *engine*, and each holds an owned // handle to the instance it wraps. Nothing above reaches them: they are only // destroyed when the engine tears its heap down, at which point diff --git a/NativeScript/ffi/jni/napi/jni/LRUCache.h b/NativeScript/ffi/jni/napi/jni/LRUCache.h index 7b829c3dd..afceeb132 100644 --- a/NativeScript/ffi/jni/napi/jni/LRUCache.h +++ b/NativeScript/ffi/jni/napi/jni/LRUCache.h @@ -100,6 +100,16 @@ class LRUCache { } } + void clear() { + if (m_evictCallback != nullptr) { + for (auto& entry : m_key_to_value) { + m_evictCallback(entry.second.first, m_state); + } + } + m_key_to_value.clear(); + m_key_tracker.clear(); + } + void update(const key_type& key, const value_type& value) { jweak ref = m_loadCallback(key, m_state); insert(key, ref); diff --git a/NativeScript/ffi/jni/napi/objectmanager/ObjectManager.cpp b/NativeScript/ffi/jni/napi/objectmanager/ObjectManager.cpp index 7f8285df3..e07f68f36 100644 --- a/NativeScript/ffi/jni/napi/objectmanager/ObjectManager.cpp +++ b/NativeScript/ffi/jni/napi/objectmanager/ObjectManager.cpp @@ -92,6 +92,10 @@ void ObjectManager::OnDisposeEnv() { NAPI_GUARD(napi_delete_reference(m_env, entry.second)) {} } m_idToObject.clear(); + + // Its destructor leaves the weak global refs alive, and the process-wide + // weak reference table is finite. + m_cache.clear(); } napi_value ObjectManager::GetOrCreateProxyWeak(jint javaObjectID, napi_value instance) { diff --git a/NativeScript/runtime/android/jsi/Runtime.cpp b/NativeScript/runtime/android/jsi/Runtime.cpp index dd4306f25..dc227de24 100644 --- a/NativeScript/runtime/android/jsi/Runtime.cpp +++ b/NativeScript/runtime/android/jsi/Runtime.cpp @@ -554,6 +554,8 @@ Runtime::~Runtime() { s_main_rt = nullptr; s_mainThreadInitialized = false; } + + JEnv().DeleteGlobalRef(m_runtime); } std::string Runtime::ReadFileText(const std::string &filePath) { From ae86d0e5cd5c8cb1eb4c674091f75773203157e0 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 20:14:43 -0800 Subject: [PATCH 87/98] fix(android): flush queued finalizers before a jsi runtime is marked destroying (#95) DestroyRuntime set is_destroying before flushing the finalizer queue. HostObjectProxyPostFinalizer treats is_destroying as "leave the target handle", a rule carried over from napi, where js_free_napi_env frees leftover refs. engine:: handles have no such owner, so every queued proxy cleanup leaked its JS wrapper, and on QuickJS JS_FreeRuntime aborted on list_empty(&rt->gc_obj_list). The queue is normally drained on the next looper tick. A worker that calls close() from onmessage quits its looper first, which drops that tick, so any proxy collected during the handler was still queued at dispose. terminate() from the parent arrives after the tick has run. Flush the queue first, while the runtime is not yet marked destroying. Fixes #94 --- NativeScript/runtime/android/jsi/Runtime.cpp | 17 +++++++++-------- .../src/main/assets/app/shared/Workers/index.js | 9 +++++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/NativeScript/runtime/android/jsi/Runtime.cpp b/NativeScript/runtime/android/jsi/Runtime.cpp index dc227de24..b5c49f7df 100644 --- a/NativeScript/runtime/android/jsi/Runtime.cpp +++ b/NativeScript/runtime/android/jsi/Runtime.cpp @@ -566,6 +566,15 @@ std::string Runtime::ReadFileText(const std::string &filePath) { } void Runtime::DestroyRuntime() { + // Flush still-queued finalizer cleanup before is_destroying is set: with it + // set, the cleanup leaks the engine handles it would release, and a quit + // looper never drains it. Finalizers firing during teardown below run + // inline (Runtime::PostFinalizer's fallback). + if (m_finalizerQueue != nullptr) { + m_finalizerQueue->Destroy(); + delete m_finalizerQueue; + m_finalizerQueue = nullptr; + } is_destroying = true; engine::Runtime &rt = engineHost->GetRuntime(); if (m_looperTasks != nullptr) { @@ -587,14 +596,6 @@ void Runtime::DestroyRuntime() { #endif CallbackHandlers::RemoveEnvEntries(rt); this->m_objectManager->OnDisposeRuntime(); - // Release the finalizer handler and flush any still-queued cleanup while the - // runtime is still valid; finalizers firing during teardown below then run - // inline (Runtime::PostFinalizer's fallback). - if (m_finalizerQueue != nullptr) { - m_finalizerQueue->Destroy(); - delete m_finalizerQueue; - m_finalizerQueue = nullptr; - } // Every engine handle this runtime still owns must go while the VM is up. m_gcFunc = engine::Value::undefined(); // Last, because everything above may still call a js_util helper on its way diff --git a/platforms/android/test-app/app/src/main/assets/app/shared/Workers/index.js b/platforms/android/test-app/app/src/main/assets/app/shared/Workers/index.js index 7eaaa1cb8..1578259c8 100644 --- a/platforms/android/test-app/app/src/main/assets/app/shared/Workers/index.js +++ b/platforms/android/test-app/app/src/main/assets/app/shared/Workers/index.js @@ -219,6 +219,15 @@ describe("TNS Workers", () => { worker.postMessage({ eval: "close();" }); }); + if (global.android) { + it("Should not crash on close() after a native wrapper is collected in the same message", (done) => { + var worker = new Worker("./EvalWorker.js"); + + worker.onmessage = () => setTimeout(done, 500); + worker.postMessage({ eval: "new java.lang.Object(); gc(); postMessage('closing'); close();" }); + }); + } + it("Should not throw error if post message is called with native object", () => { var worker = new Worker("./EvalWorker.js"); From 1270ec8abdb5b4aae63dc5db707fdb3999f4128d Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sun, 1 Nov 2026 20:17:56 -0800 Subject: [PATCH 88/98] fix(android): synchronize ArgConverter's per-runtime long cache (#96) s_type_long_operations_cache is process-wide, but each runtime inserts its entry on init and erases it on dispose from its own thread. Make it a tns::ConcurrentMap, as MetadataNode's per-runtime cache already is, in both the napi and jsi trees. Fixes #93 --- .../ffi/jni/jsi/conversion/ArgConverter.cpp | 25 ++++++--------- .../ffi/jni/jsi/conversion/ArgConverter.h | 2 +- .../ffi/jni/napi/conversion/ArgConverter.cpp | 31 ++++++++----------- .../ffi/jni/napi/conversion/ArgConverter.h | 2 +- 4 files changed, 25 insertions(+), 35 deletions(-) diff --git a/NativeScript/ffi/jni/jsi/conversion/ArgConverter.cpp b/NativeScript/ffi/jni/jsi/conversion/ArgConverter.cpp index 13cc59a18..9f1d895a2 100644 --- a/NativeScript/ffi/jni/jsi/conversion/ArgConverter.cpp +++ b/NativeScript/ffi/jni/jsi/conversion/ArgConverter.cpp @@ -231,15 +231,11 @@ int64_t ArgConverter::ConvertToJavaLong(JsRuntime &rt, const JsValue &value) { } ArgConverter::TypeLongOperationsCache *ArgConverter::GetTypeLongCache(JsRuntime &rt) { - TypeLongOperationsCache *cache; - auto itFound = s_type_long_operations_cache.find(rt.identity()); - if (itFound == s_type_long_operations_cache.end()) { - cache = new TypeLongOperationsCache; - s_type_long_operations_cache.emplace(rt.identity(), cache); - } else { - cache = itFound->second; - } - + const void *key = rt.identity(); + auto cache = s_type_long_operations_cache.Get(key); + if (cache) return cache; + cache = new TypeLongOperationsCache; + s_type_long_operations_cache.Insert(key, cache); return cache; } @@ -299,11 +295,10 @@ u16string ArgConverter::ConvertToUtf16String(JsRuntime &rt, const JsValue &s) { } void ArgConverter::onDisposeRuntime(JsRuntime &rt) { - auto itFound = s_type_long_operations_cache.find(rt.identity()); - if (itFound != s_type_long_operations_cache.end()) { - delete itFound->second; - s_type_long_operations_cache.erase(itFound); - } + const void *key = rt.identity(); + auto cache = s_type_long_operations_cache.Get(key); + s_type_long_operations_cache.Remove(key); + delete cache; } -robin_hood::unordered_map ArgConverter::s_type_long_operations_cache; +tns::ConcurrentMap ArgConverter::s_type_long_operations_cache; diff --git a/NativeScript/ffi/jni/jsi/conversion/ArgConverter.h b/NativeScript/ffi/jni/jsi/conversion/ArgConverter.h index 957e04eb3..2c1ddb390 100644 --- a/NativeScript/ffi/jni/jsi/conversion/ArgConverter.h +++ b/NativeScript/ffi/jni/jsi/conversion/ArgConverter.h @@ -131,7 +131,7 @@ namespace tns { * dealing with operations concerning java long -> javascript number. */ // Keyed by JsRuntime::identity(); &rt is not stable across callbacks. - static robin_hood::unordered_map s_type_long_operations_cache; + static tns::ConcurrentMap s_type_long_operations_cache; }; } diff --git a/NativeScript/ffi/jni/napi/conversion/ArgConverter.cpp b/NativeScript/ffi/jni/napi/conversion/ArgConverter.cpp index 176b7b910..7f3cccf6e 100644 --- a/NativeScript/ffi/jni/napi/conversion/ArgConverter.cpp +++ b/NativeScript/ffi/jni/napi/conversion/ArgConverter.cpp @@ -298,15 +298,10 @@ int64_t ArgConverter::ConvertToJavaLong(napi_env env, napi_value value) { } ArgConverter::TypeLongOperationsCache *ArgConverter::GetTypeLongCache(napi_env env) { - TypeLongOperationsCache *cache; - auto itFound = s_type_long_operations_cache.find(env); - if (itFound == s_type_long_operations_cache.end()) { - cache = new TypeLongOperationsCache; - s_type_long_operations_cache.emplace(env, cache); - } else { - cache = itFound->second; - } - + auto cache = s_type_long_operations_cache.Get(env); + if (cache) return cache; + cache = new TypeLongOperationsCache; + s_type_long_operations_cache.Insert(env, cache); return cache; } @@ -331,17 +326,17 @@ u16string ArgConverter::ConvertToUtf16String(napi_env env, napi_value s) { void ArgConverter::onDisposeEnv(napi_env env) { napi_status status; - auto itFound = s_type_long_operations_cache.find(env); - if (itFound != s_type_long_operations_cache.end()) { - if (itFound->second->LongNumberCtorFunc) { - NAPI_GUARD(napi_delete_reference(env, itFound->second->LongNumberCtorFunc)) {} + auto cache = s_type_long_operations_cache.Get(env); + if (cache) { + if (cache->LongNumberCtorFunc) { + NAPI_GUARD(napi_delete_reference(env, cache->LongNumberCtorFunc)) {} } - if (itFound->second->NanNumberObject) { - NAPI_GUARD(napi_delete_reference(env, itFound->second->NanNumberObject)) {} + if (cache->NanNumberObject) { + NAPI_GUARD(napi_delete_reference(env, cache->NanNumberObject)) {} } - delete itFound->second; - s_type_long_operations_cache.erase(itFound); + s_type_long_operations_cache.Remove(env); + delete cache; } } -robin_hood::unordered_map ArgConverter::s_type_long_operations_cache; +tns::ConcurrentMap ArgConverter::s_type_long_operations_cache; diff --git a/NativeScript/ffi/jni/napi/conversion/ArgConverter.h b/NativeScript/ffi/jni/napi/conversion/ArgConverter.h index a42a14cf2..ea6eb9e81 100644 --- a/NativeScript/ffi/jni/napi/conversion/ArgConverter.h +++ b/NativeScript/ffi/jni/napi/conversion/ArgConverter.h @@ -130,7 +130,7 @@ namespace tns { * "s_type_long_operations_cache" used to keep function * dealing with operations concerning java long -> javascript number. */ - static robin_hood::unordered_map s_type_long_operations_cache; + static tns::ConcurrentMap s_type_long_operations_cache; }; } From f868f895d85bb8e154530635b25ffbfb6e2390c6 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sat, 7 Nov 2026 08:37:41 -0800 Subject: [PATCH 89/98] fix(react-native): configure the Worklets Babel plugin with strictGlobal (#83) Without strictGlobal the Worklets plugin captures every name a worklet does not declare into its closure, read on the JS thread when the module is evaluated, where NativeScript's classes do not exist: a module-level worklet naming UILabel failed at startup with "ReferenceError: Property 'UILabel' doesn't exist". The config plugin and configure CLI now write ['react-native-worklets/plugin', { strictGlobal: true }] and ['babel-preset-expo', { worklets: false }] (so the preset adds no second copy), upgrade bare entries in an existing config, and warn when an entry with options lacks strictGlobal. The Babel setup also runs on Android-only prebuilds. --- .../plugin/withNativeScriptReactNative.js | 149 +++++++++++------- .../react-native/test/config-plugin.test.js | 79 ++++++++++ 2 files changed, 167 insertions(+), 61 deletions(-) diff --git a/packages/react-native/plugin/withNativeScriptReactNative.js b/packages/react-native/plugin/withNativeScriptReactNative.js index 70c7d7746..ef893b75c 100644 --- a/packages/react-native/plugin/withNativeScriptReactNative.js +++ b/packages/react-native/plugin/withNativeScriptReactNative.js @@ -11,6 +11,9 @@ const DEFAULTS = { const BABEL_PLUGIN = "@nativescript/react-native/babel-plugin"; const WORKLETS_BABEL_PLUGIN = "react-native-worklets/plugin"; +const EXPO_BABEL_PRESET = "babel-preset-expo"; +// babel-preset-expo adds its own worklets plugin, without strictGlobal. +const EXPO_BABEL_PRESET_ENTRY = `[${JSON.stringify(EXPO_BABEL_PRESET)}, { worklets: false }]`; const METADATA_CONFIG_FILE = "nativescript.react-native.json"; const METRO_CONFIG_MARKER = "@nativescript/react-native/metro-config"; @@ -94,10 +97,27 @@ function ensureMetadataConfig(projectRoot, metadataOptions) { return merged; } +// Without strictGlobal the worklets plugin captures every undeclared name into +// the worklet's closure on the JS thread when the worklet is created, where +// NativeScript's classes (UIView, UILabel, ...) do not exist yet. function workletsBabelEntry(bundleMode) { - return bundleMode - ? `[${JSON.stringify(WORKLETS_BABEL_PLUGIN)}, { bundleMode: true, strictGlobal: true }]` - : JSON.stringify(WORKLETS_BABEL_PLUGIN); + const options = bundleMode + ? "{ bundleMode: true, strictGlobal: true }" + : "{ strictGlobal: true }"; + return `[${JSON.stringify(WORKLETS_BABEL_PLUGIN)}, ${options}]`; +} + +function escapeRegExp(value) { + return value.replace(/[.*+?^${}()|[\]\\/]/g, "\\$&"); +} + +// Replaces `'name'` written as a bare array element with `entry`. Elements +// already given options (`['name', {...}]`) are left alone. +function replaceBareEntry(source, name, entry) { + const bare = new RegExp( + `([\\[,]\\s*)(['"])${escapeRegExp(name)}\\2(?=\\s*(?:,(?!\\s*\\{)|\\]))`, + ); + return source.replace(bare, (match, prefix) => `${prefix}${entry}`); } function ensureBabelPlugin(projectRoot, options = {}) { @@ -107,10 +127,7 @@ function ensureBabelPlugin(projectRoot, options = {}) { options.bundleMode, DEFAULTS.workletsBundleMode, ); - const babelPluginEntries = [ - JSON.stringify(BABEL_PLUGIN), - workletsBabelEntry(bundleMode), - ]; + const workletsEntry = workletsBabelEntry(bundleMode); const candidates = ["babel.config.js", "babel.config.cjs"]; let babelConfigPath = candidates .map((candidate) => path.join(projectRoot, candidate)) @@ -124,8 +141,8 @@ function ensureBabelPlugin(projectRoot, options = {}) { "module.exports = function(api) {", " api.cache(true);", " return {", - " presets: ['babel-preset-expo'],", - ` plugins: [${babelPluginEntries.join(", ")}],`, + ` presets: [${EXPO_BABEL_PRESET_ENTRY}],`, + ` plugins: [${JSON.stringify(BABEL_PLUGIN)}, ${workletsEntry}],`, " };", "};", "", @@ -134,55 +151,67 @@ function ensureBabelPlugin(projectRoot, options = {}) { return; } - let source = fs.readFileSync(babelConfigPath, "utf8"); - if (bundleMode && source.includes(WORKLETS_BABEL_PLUGIN)) { - if (!source.includes("bundleMode")) { - const simplePlugin = /(["'])react-native-worklets\/plugin\1/; - source = source.replace(simplePlugin, workletsBabelEntry(true)); - } - } - + const original = fs.readFileSync(babelConfigPath, "utf8"); + let source = original; const missingPlugins = [BABEL_PLUGIN, WORKLETS_BABEL_PLUGIN].filter( (plugin) => !source.includes(plugin), ); - if (missingPlugins.length === 0) { - fs.writeFileSync(babelConfigPath, source); - return; + if (missingPlugins.length > 0) { + const pluginEntry = + missingPlugins + .map((plugin) => + plugin === WORKLETS_BABEL_PLUGIN + ? workletsEntry + : JSON.stringify(plugin), + ) + .join(", ") + ", "; + if (/plugins\s*:\s*\[/.test(source)) { + source = source.replace( + /plugins\s*:\s*\[/, + (match) => `${match}${pluginEntry}`, + ); + } else if (/return\s*\{/.test(source)) { + source = source.replace( + /return\s*\{/, + (match) => `${match}\n plugins: [${pluginEntry}],`, + ); + } else if (/module\.exports\s*=\s*\{/.test(source)) { + source = source.replace( + /module\.exports\s*=\s*\{/, + (match) => `${match}\n plugins: [${pluginEntry}],`, + ); + } else if (/export\s+default\s+\{/.test(source)) { + source = source.replace( + /export\s+default\s+\{/, + (match) => `${match}\n plugins: [${pluginEntry}],`, + ); + } else { + source += `\n// @nativescript/react-native: add ${missingPlugins.map((plugin) => `'${plugin}'`).join(" and ")} to your Babel plugins.\n`; + } } - const pluginEntry = - missingPlugins - .map((plugin) => - plugin === WORKLETS_BABEL_PLUGIN - ? workletsBabelEntry(bundleMode) - : JSON.stringify(plugin), - ) - .join(", ") + ", "; - if (/plugins\s*:\s*\[/.test(source)) { - source = source.replace( - /plugins\s*:\s*\[/, - (match) => `${match}${pluginEntry}`, - ); - } else if (/return\s*\{/.test(source)) { - source = source.replace( - /return\s*\{/, - (match) => `${match}\n plugins: [${pluginEntry}],`, - ); - } else if (/module\.exports\s*=\s*\{/.test(source)) { - source = source.replace( - /module\.exports\s*=\s*\{/, - (match) => `${match}\n plugins: [${pluginEntry}],`, - ); - } else if (/export\s+default\s+\{/.test(source)) { - source = source.replace( - /export\s+default\s+\{/, - (match) => `${match}\n plugins: [${pluginEntry}],`, - ); - } else { - source += `\n// @nativescript/react-native: add ${missingPlugins.map((plugin) => `'${plugin}'`).join(" and ")} to your Babel plugins.\n`; + source = replaceBareEntry(source, WORKLETS_BABEL_PLUGIN, workletsEntry); + source = replaceBareEntry(source, EXPO_BABEL_PRESET, EXPO_BABEL_PRESET_ENTRY); + + if (source.includes(WORKLETS_BABEL_PLUGIN)) { + const missing = []; + if (!/strictGlobal\s*:\s*true/.test(source)) { + missing.push("strictGlobal: true"); + } + if (bundleMode && !/bundleMode\s*:\s*true/.test(source)) { + missing.push("bundleMode: true"); + } + if (missing.length > 0) { + console.warn( + `@nativescript/react-native: pass { ${missing.join(", ")} } to '${WORKLETS_BABEL_PLUGIN}' ` + + `in ${path.basename(babelConfigPath)}, or worklets that name native classes fail as their module loads.`, + ); + } } - fs.writeFileSync(babelConfigPath, source); + if (source !== original) { + fs.writeFileSync(babelConfigPath, source); + } } function ensureMetroConfig(projectRoot) { @@ -226,16 +255,14 @@ function withNativeScriptTransforms(config, bundleMode) { return config; } - return withDangerousMod(config, [ - "ios", - async (modConfig) => { - ensureBabelPlugin(modConfig.modRequest.projectRoot, { bundleMode }); - if (bundleMode) { - ensureMetroConfig(modConfig.modRequest.projectRoot); - } - return modConfig; - }, - ]); + const mod = async (modConfig) => { + ensureBabelPlugin(modConfig.modRequest.projectRoot, { bundleMode }); + if (bundleMode) { + ensureMetroConfig(modConfig.modRequest.projectRoot); + } + return modConfig; + }; + return withDangerousMod(withDangerousMod(config, ["ios", mod]), ["android", mod]); } function withNativeScriptMetadata(config, metadataOptions) { diff --git a/packages/react-native/test/config-plugin.test.js b/packages/react-native/test/config-plugin.test.js index 8f70c8425..117a98f55 100644 --- a/packages/react-native/test/config-plugin.test.js +++ b/packages/react-native/test/config-plugin.test.js @@ -113,6 +113,85 @@ withTempProject((projectRoot) => { ); }); +function loadBabelConfig(projectRoot) { + const configPath = path.join(projectRoot, 'babel.config.js'); + delete require.cache[require.resolve(configPath)]; + const exported = require(configPath); + return typeof exported === 'function' ? exported({cache() {}}) : exported; +} + +function findEntry(entries, name) { + return (entries || []).find( + (entry) => entry === name || (Array.isArray(entry) && entry[0] === name), + ); +} + +withTempProject((projectRoot) => { + ensureBabelPlugin(projectRoot, {bundleMode: false}); + const config = loadBabelConfig(projectRoot); + assert.deepStrictEqual(findEntry(config.presets, 'babel-preset-expo'), [ + 'babel-preset-expo', + {worklets: false}, + ]); + assert.deepStrictEqual(findEntry(config.plugins, 'react-native-worklets/plugin'), [ + 'react-native-worklets/plugin', + {strictGlobal: true}, + ]); +}); + +withTempProject((projectRoot) => { + fs.writeFileSync( + path.join(projectRoot, 'babel.config.js'), + [ + 'module.exports = function(api) {', + ' api.cache(true);', + ' return {', + " presets: ['babel-preset-expo'],", + " plugins: ['@nativescript/react-native/babel-plugin', 'react-native-worklets/plugin'],", + ' };', + '};', + '', + ].join('\n'), + ); + ensureBabelPlugin(projectRoot, {bundleMode: false}); + ensureBabelPlugin(projectRoot, {bundleMode: false}); + const config = loadBabelConfig(projectRoot); + assert.deepStrictEqual(findEntry(config.presets, 'babel-preset-expo'), [ + 'babel-preset-expo', + {worklets: false}, + ]); + assert.deepStrictEqual(findEntry(config.plugins, 'react-native-worklets/plugin'), [ + 'react-native-worklets/plugin', + {strictGlobal: true}, + ]); + assert.strictEqual(config.plugins.length, 2); +}); + +withTempProject((projectRoot) => { + const source = [ + 'module.exports = {', + " plugins: [['react-native-worklets/plugin', { processNestedWorklets: true }]],", + '};', + '', + ].join('\n'); + fs.writeFileSync(path.join(projectRoot, 'babel.config.js'), source); + const warnings = []; + const warn = console.warn; + console.warn = (message) => warnings.push(message); + try { + ensureBabelPlugin(projectRoot); + } finally { + console.warn = warn; + } + const config = loadBabelConfig(projectRoot); + assert.deepStrictEqual(findEntry(config.plugins, 'react-native-worklets/plugin'), [ + 'react-native-worklets/plugin', + {processNestedWorklets: true}, + ]); + assert.strictEqual(warnings.length, 1); + assert.match(warnings[0], /strictGlobal/); +}); + withTempProject((projectRoot) => { const metadata = normalizeMetadataOptions({ metadata: { From abb7e94e90a8d20fce4e3eeb9cbffc5d2983f5ca Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 10:44:13 +0500 Subject: [PATCH 90/98] fix(ffi/objc): retire a JS-subclass object's expandos when it deallocates A JS-subclass instance keeps its expandos when its last wrapper goes away, so its JS state survives a later re-wrap. Nothing removed them once the native object deallocated, and they are keyed by address: the next object allocated there was served the dead one's cached methods. A base-class instance then ran a JS override, and a JS-subclass instance got a stale native function that skipped its own (Base_InitBaseProtocolMethod2 and ConstructorOverrides on macOS Hermes, flaky before, deterministic once startup allocations shifted). Where expandos are preserved, attach an associated block; it is released while the object deallocates, before its memory can be reused. Dealloc can run on any thread, so it only retires the address: lookups stop seeing the values at once, and they are destroyed on a runtime thread when the address is next wrapped or written to. Co-Authored-By: Claude Opus 5.5 --- .../ffi/objc/shared/bridge/ObjCBridge.mm | 40 ++++++++++++-- .../objc/shared/bridge/host_objects/Object.mm | 53 +++++++++++++++++-- 2 files changed, 87 insertions(+), 6 deletions(-) diff --git a/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm b/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm index 2fd8a6ca1..1ae78ad0b 100644 --- a/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm +++ b/NativeScript/ffi/objc/shared/bridge/ObjCBridge.mm @@ -1214,6 +1214,7 @@ void setObjectExpando(Runtime& runtime, const void* native, const uintptr_t runtimeKey = runtimeObjectExpandoKey(runtime); { std::lock_guard lock(objectExpandosMutex_); + purgeRetiredObjectExpandosLocked(key); objectExpandos_[key][property][runtimeKey] = std::make_shared(runtime, value); objectExpandosGeneration_.fetch_add(1, std::memory_order_release); @@ -1224,9 +1225,11 @@ void retainObjectExpandoOwner(const void* native) { if (native == nullptr) { return; } + const uintptr_t key = + normalizeRuntimePointer(reinterpret_cast(native)); std::lock_guard lock(objectExpandosMutex_); - objectExpandoOwnerCounts_[ - normalizeRuntimePointer(reinterpret_cast(native))] += 1; + purgeRetiredObjectExpandosLocked(key); + objectExpandoOwnerCounts_[key] += 1; } // preserveExpandos keeps the stored values around after the last owner @@ -1297,7 +1300,9 @@ Value findObjectExpando(Runtime& runtime, const void* native, const size_t slot = nextSlot++ & 7; { std::lock_guard lock(objectExpandosMutex_); - auto objectIt = objectExpandos_.find(key); + auto objectIt = retiredObjectExpandoKeys_.count(key) != 0 + ? objectExpandos_.end() + : objectExpandos_.find(key); if (objectIt != objectExpandos_.end()) { auto propertyIt = objectIt->second.find(property); if (propertyIt != objectIt->second.end()) { @@ -1319,6 +1324,8 @@ Value findObjectExpando(Runtime& runtime, const void* native, return Value(runtime, *storedValue); } + uint64_t instanceId() const { return instanceId_; } + // Erases every runtime's stored values for this native (codex semantics): // the native object itself is gone, so no runtime should keep seeing it. void forgetObjectExpandos(const void* native) { @@ -1329,6 +1336,23 @@ void forgetObjectExpandos(const void* native) { { std::lock_guard lock(objectExpandosMutex_); objectExpandos_.erase(key); + retiredObjectExpandoKeys_.erase(key); + objectExpandosGeneration_.fetch_add(1, std::memory_order_release); + } + } + + // For a native that deallocated while its expandos were preserved. Safe on + // any thread: lookups stop seeing them at once, but the stored values are + // only destroyed on a runtime thread, when the address is next wrapped or + // written to. + void retireObjectExpandos(const void* native) { + if (native == nullptr) { + return; + } + auto key = normalizeRuntimePointer(reinterpret_cast(native)); + std::lock_guard lock(objectExpandosMutex_); + if (objectExpandos_.count(key) != 0) { + retiredObjectExpandoKeys_.insert(key); objectExpandosGeneration_.fetch_add(1, std::memory_order_release); } } @@ -2461,7 +2485,17 @@ static void appendSurfaceMember( std::unordered_map>>> objectExpandos_; std::unordered_map objectExpandoOwnerCounts_; + // Addresses whose expandos belong to a deallocated native; see + // retireObjectExpandos. + std::unordered_set retiredObjectExpandoKeys_; std::atomic objectExpandosGeneration_{1}; + + // Callers hold objectExpandosMutex_ and run on a runtime thread. + void purgeRetiredObjectExpandosLocked(uintptr_t key) { + if (retiredObjectExpandoKeys_.erase(key) != 0) { + objectExpandos_.erase(key); + } + } // Identifies this bridge in the thread_local lookup caches. Its address // cannot: a bridge allocated where a destroyed one lived would match that // one's entries, and the property-getter cache holds raw pointers into it. diff --git a/NativeScript/ffi/objc/shared/bridge/host_objects/Object.mm b/NativeScript/ffi/objc/shared/bridge/host_objects/Object.mm index b56675e04..703e83f6b 100644 --- a/NativeScript/ffi/objc/shared/bridge/host_objects/Object.mm +++ b/NativeScript/ffi/objc/shared/bridge/host_objects/Object.mm @@ -523,6 +523,46 @@ Array runtimeMembersArray(Runtime& runtime, Class cls, bool staticMembers) { return result; } +// Preserved expandos (see releaseObjectExpandoOwner) must still die with the +// native object: they are keyed by address, so the next object allocated there +// would be served this one's cached methods. The associated block is released +// while the object deallocates, before its memory can be reused, and that can +// happen on any thread -- hence retiring rather than forgetting them. +void retireObjectExpandosOnDealloc(const std::shared_ptr& bridge, + id object) { + if (bridge == nullptr || object == nil) { + return; + } + + struct Retire { + Retire(std::weak_ptr bridge, const void* native) + : bridge(std::move(bridge)), native(native) {} + ~Retire() { + if (auto alive = bridge.lock()) { + alive->retireObjectExpandos(native); + } + } + std::weak_ptr bridge; + const void* native; + }; + + // Any value unique per bridge works as an association key. + const void* key = reinterpret_cast( + static_cast(bridge->instanceId())); + // Wrappers on two runtime threads can get here for one object at once; a + // second set would replace, and so release, the first block early. + static std::mutex associationMutex; + std::lock_guard lock(associationMutex); + if (objc_getAssociatedObject(object, key) != nil) { + return; + } + // Shared so that copying the block does not run the destructor early. + auto retire = std::make_shared(bridge, (const void*)object); + objc_setAssociatedObject(object, key, ^{ + (void)retire; + }, OBJC_ASSOCIATION_COPY_NONATOMIC); +} + class NativeApiObjectHostObject final : public HostObject, public std::enable_shared_from_this { @@ -548,7 +588,7 @@ Array runtimeMembersArray(Runtime& runtime, Class cls, bool staticMembers) { ~NativeApiObjectHostObject() override { if (bridge_ != nullptr && object_ != nil) { bridge_->forgetRoundTripValue(object_); - bridge_->releaseObjectExpandoOwner( + releaseExpandoOwnership( object_, class_conformsToProtocol(object_getClass(object_), @protocol(NativeApiClassBuilderProtocol))); } @@ -583,7 +623,7 @@ void disownObject(id expected, bool preserveExpandos = false) { if (object_ == expected) { if (bridge_ != nullptr && expected != nil) { bridge_->forgetRoundTripValue(expected); - bridge_->releaseObjectExpandoOwner(expected, preserveExpandos); + releaseExpandoOwnership(expected, preserveExpandos); } ownsObject_ = false; wrapperRetainedObject_ = false; @@ -611,7 +651,7 @@ void detachObjectPreservingBridgeState(id expected) { id object = object_; bool releaseObject = ownsObject_; if (bridge_ != nullptr && expected != nil) { - bridge_->releaseObjectExpandoOwner(expected, /*preserveExpandos=*/true); + releaseExpandoOwnership(expected, /*preserveExpandos=*/true); } ownsObject_ = false; wrapperRetainedObject_ = false; @@ -1641,6 +1681,13 @@ throw JSError( } private: + void releaseExpandoOwnership(id object, bool preserveExpandos) { + if (preserveExpandos) { + retireObjectExpandosOnDealloc(bridge_, object); + } + bridge_->releaseObjectExpandoOwner(object, preserveExpandos); + } + std::shared_ptr bridge_; id object_ = nil; bool ownsObject_ = false; From feaa97e834cdf53d01237d75468a0411fa41c349 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 10:44:13 +0500 Subject: [PATCH 91/98] fix(quickjs): restore the V8-style property-read error messages in the patch The vendored quickjs-ng tree threw "Cannot read properties of undefined (reading 'x')", a NativeScript change to upstream's "cannot read property 'x' of undefined". Moving the source to a pinned submodule plus a patch dropped those four lines, the only local change the patch lost. Co-Authored-By: Claude Opus 5.5 --- .../0001-nativescript-local-changes.patch | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/vendor/quickjs/patches/source_ng/0001-nativescript-local-changes.patch b/vendor/quickjs/patches/source_ng/0001-nativescript-local-changes.patch index 13c1ac81e..ab6e0cc54 100644 --- a/vendor/quickjs/patches/source_ng/0001-nativescript-local-changes.patch +++ b/vendor/quickjs/patches/source_ng/0001-nativescript-local-changes.patch @@ -1,5 +1,5 @@ diff --git a/quickjs.c b/quickjs.c -index 9053c26..f224ad5 100644 +index 9053c26..d377977 100644 --- a/quickjs.c +++ b/quickjs.c @@ -379,6 +379,7 @@ struct JSRuntime { @@ -52,7 +52,7 @@ index 9053c26..f224ad5 100644 static JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, JSAtom prop, JSValueConst this_obj, bool throw_ref_error) -@@ -9070,6 +9085,11 @@ static JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, +@@ -9070,14 +9085,19 @@ static JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, JSProperty *pr; JSShapeProperty *prs; uint32_t tag; @@ -64,6 +64,16 @@ index 9053c26..f224ad5 100644 tag = JS_VALUE_GET_TAG(obj); if (unlikely(tag != JS_TAG_OBJECT)) { + switch(tag) { + case JS_TAG_NULL: +- return JS_ThrowTypeErrorAtom(ctx, "cannot read property '%s' of null", prop); ++ return JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of null (reading '%s')", prop); + case JS_TAG_UNDEFINED: +- return JS_ThrowTypeErrorAtom(ctx, "cannot read property '%s' of undefined", prop); ++ return JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of undefined (reading '%s')", prop); + case JS_TAG_EXCEPTION: + return JS_EXCEPTION; + case JS_TAG_STRING: @@ -9174,14 +9194,27 @@ static JSValue JS_GetPropertyInternal(JSContext *ctx, JSValueConst obj, const JSClassExoticMethods *em = ctx->rt->class_array[p->class_id].exotic; if (em) { @@ -118,6 +128,18 @@ index 9053c26..f224ad5 100644 if (unlikely(throw_ref_error)) { return JS_ThrowReferenceErrorNotDefined(ctx, prop); } else { +@@ -10001,9 +10045,9 @@ static JSValue JS_GetPropertyValue(JSContext *ctx, JSValueConst this_obj, + if (unlikely(atom == JS_ATOM_NULL)) + return JS_EXCEPTION; + if (tag == JS_TAG_NULL) { +- JS_ThrowTypeErrorAtom(ctx, "cannot read property '%s' of null", atom); ++ JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of null (reading '%s')", atom); + } else { +- JS_ThrowTypeErrorAtom(ctx, "cannot read property '%s' of undefined", atom); ++ JS_ThrowTypeErrorAtom(ctx, "Cannot read properties of undefined (reading '%s')", atom); + } + JS_FreeAtom(ctx, atom); + return JS_EXCEPTION; @@ -37877,7 +37921,8 @@ static JSValue __JS_EvalInternal(JSContext *ctx, JSValueConst this_obj, /* Could add a flag to avoid resolution if necessary */ if (m) { From 4ab02c3861b856d8868071d0cb251619ad2074dc Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 11:04:27 +0500 Subject: [PATCH 92/98] fix(jsc): return undefined when a Node-API callback returns NULL Node-API defines a NULL return from a callback as undefined, but CallAsFunction handed the NULL JSValueRef straight to JavaScriptCore, which reads it as null. Every void Java method returned null on Android JSC ("returns arrays and handles void methods"). The host-object getter already mapped NULL to undefined. Co-Authored-By: Claude Opus 5.5 --- vendor/jsc/jsc-api.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vendor/jsc/jsc-api.cpp b/vendor/jsc/jsc-api.cpp index 34c23c654..f2839d2a1 100644 --- a/vendor/jsc/jsc-api.cpp +++ b/vendor/jsc/jsc-api.cpp @@ -566,7 +566,9 @@ class FunctionInfo : public NativeInfo { info->_env->last_exception = nullptr; } - return ToJSValue(result); + // Node-API: a callback returning NULL means undefined. JSC would read a + // NULL JSValueRef as null. + return result != nullptr ? ToJSValue(result) : JSValueMakeUndefined(ctx); } // JSObjectFinalizeCallback From 5d2de6951fc03dee7d2437b27982f790a10586b8 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 11:04:27 +0500 Subject: [PATCH 93/98] test(react-native): opt the iOS smoke fixture into metadata globals Globals on the React runtime became opt-in, so the fixture's bare init() failed with "Property 'NSObject' doesn't exist" before reaching any of its checks. Co-Authored-By: Claude Opus 5.5 --- scripts/test_react_native_turbomodule.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/test_react_native_turbomodule.sh b/scripts/test_react_native_turbomodule.sh index 72ffbf910..99e84d0fb 100755 --- a/scripts/test_react_native_turbomodule.sh +++ b/scripts/test_react_native_turbomodule.sh @@ -78,7 +78,8 @@ const marker = 'NATIVESCRIPT_RN_TURBO_SMOKE_PASS'; async function runSmoke(): Promise { try { - const installed = NativeScript.init(); + // Metadata globals on the React runtime are opt-in. + const installed = NativeScript.init('', {globals: true}); const api = (globalThis as any).__nativeScriptNativeApi; if (!installed || !api) { throw new Error('NativeScript Native API JSI host object was not installed'); From 03778b0c8063a622d89adcc6db2c03969a34b07e Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 11:18:06 +0500 Subject: [PATCH 94/98] fix(react-native/android): implement the TurboModule spec from the Fabric work The spec gained installUIRuntime (replacing installWorkletRuntime), registerComponent and three test-marker methods, so the Android module no longer compiled against the generated base class. Neither UI-runtime install nor native components exist on Android yet, so both report false, which scheduleOnUI and defineNativeComponent turn into named errors. The marker methods are file-backed as on iOS. Co-Authored-By: Claude Opus 5.5 --- .../NativeScriptNativeApiModule.java | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java index 3b5e5508e..8934aa86e 100644 --- a/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java +++ b/packages/react-native/android/src/main/java/org/nativescript/reactnative/NativeScriptNativeApiModule.java @@ -119,8 +119,9 @@ public void invalidate() { } @Override - public boolean installWorkletRuntime(com.facebook.react.bridge.ReadableMap runtimeHolder, - String metadataPath) { + public boolean installUIRuntime(com.facebook.react.bridge.ReadableMap runtimeHolder, + com.facebook.react.bridge.ReadableMap schedulerHolder, + String metadataPath) { // Worklet runtimes are separate jsi::Runtimes on separate threads. Each // would need its own attach and its own object manager, which the object // graph does not yet model on Android; iOS reaches this through @@ -128,6 +129,14 @@ public boolean installWorkletRuntime(com.facebook.react.bridge.ReadableMap runti return false; } + @Override + public boolean registerComponent(String name, com.facebook.react.bridge.ReadableMap spec, + double hookMask, double shouldBeRecycled) { + // Native components are hosted by UIKit Fabric views, which have no + // Android counterpart yet; defineNativeComponent reports the false. + return false; + } + @Override public boolean isInstalled() { return attachedRuntime != null; @@ -152,9 +161,29 @@ public String getRuntimeBackend() { @Override public boolean __writeTestMarker(String content) { + return writeMarker("nativescript-test-marker.txt", content); + } + + @Override + public String __readTestMarker() { + return readMarker("nativescript-test-marker.txt"); + } + + // A file of its own, as on iOS: the smoke marker above is rewritten on every + // install, which a reload would do before the new JS reads its phase back. + @Override + public boolean __writeReloadPhaseMarker(String content) { + return writeMarker("nativescript-reload-phase-marker.txt", content); + } + + @Override + public String __readReloadPhaseMarker() { + return readMarker("nativescript-reload-phase-marker.txt"); + } + + private boolean writeMarker(String name, String content) { try { - File marker = new File(reactContext.getApplicationContext().getFilesDir(), - "nativescript-test-marker.txt"); + File marker = new File(reactContext.getApplicationContext().getFilesDir(), name); try (OutputStream out = new FileOutputStream(marker)) { out.write(content.getBytes("UTF-8")); } @@ -164,6 +193,15 @@ public boolean __writeTestMarker(String content) { } } + private String readMarker(String name) { + File marker = new File(reactContext.getApplicationContext().getFilesDir(), name); + try { + return marker.exists() ? readAll(marker) : ""; + } catch (IOException e) { + return ""; + } + } + private static Runtime attachRuntime(Context context, long runtimePtr, String metadataPath, String bootstrapScript) { File filesDir = context.getFilesDir(); From 12f3e00e84f41e575728a75e5352a718ac24d7bd Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 14:07:13 +0500 Subject: [PATCH 95/98] ci: apply the QuickJS patches in the engine and performance jobs The engine-tests and performance jobs built QuickJS from the pristine submodule, so quickjs-api.c failed on the patched-in APIs (JS_WeakRef_Deref and friends). The performance job also could not check out a base that still vendors QuickJS-NG as plain files over the candidate's submodule work tree; deinit the submodule first, and patch the base only when it uses the patch layout. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc5cf9ec6..04aa3704f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,6 +99,9 @@ jobs: - name: Generate macOS metadata run: npm run metagen macos + - name: Apply QuickJS patches + run: npm run patch-quickjs + - name: Run macOS test suite env: MACOS_COMMAND_TIMEOUT_MS: "1200000" @@ -155,6 +158,7 @@ jobs: npm run build-libffi METADATA_GENERATOR_ARCHS="$(uname -m)" npm run build-metagen npm run metagen macos + npm run patch-quickjs - name: Build candidate CLI run: | @@ -176,8 +180,12 @@ jobs: rm -rf ./Frameworks/hermes.xcframework ./Frameworks/hermes-headers ;; esac + # A base that still vendors QuickJS-NG as plain files can't be + # checked out over the candidate's submodule work tree. + git submodule deinit --force vendor/quickjs/source_ng git checkout --detach "${BASE_SHA}" git submodule update --init --recursive + if [ -d vendor/quickjs/patches ]; then npm run patch-quickjs; fi npm install npm run build-libffi METADATA_GENERATOR_ARCHS="$(uname -m)" npm run build-metagen From 9633aba34a9ff13f7f0a63ea9ea69de3740e66c3 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 14:31:27 +0500 Subject: [PATCH 96/98] test(apple): give the timer specs room for the JSC weak-ref poll expectWeakRefCleared waits up to 10s for JSC to clear the WeakRef, but Jasmine times a spec out after 5s, so a slow collection on a CI runner failed 'frees up resources after complete' with a Jasmine timeout instead of letting the poll finish. It failed this way on refactor's CI as well. Co-Authored-By: Claude Opus 5.5 --- .../apple/test/runtime/runner/app/tests/Timers.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platforms/apple/test/runtime/runner/app/tests/Timers.js b/platforms/apple/test/runtime/runner/app/tests/Timers.js index 8df89d7db..eb5792581 100644 --- a/platforms/apple/test/runtime/runner/app/tests/Timers.js +++ b/platforms/apple/test/runtime/runner/app/tests/Timers.js @@ -27,6 +27,17 @@ describe("native timer", () => { /** @type {global.queueMicrotask} */ let queueMicrotask = global.__ns__queueMicrotask || global.queueMicrotask; + // expectWeakRefCleared polls for up to 10s on JSC, past Jasmine's 5s + // default, which would otherwise time the spec out before the poll gives up. + let originalTimeout; + beforeEach(() => { + originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; + jasmine.DEFAULT_TIMEOUT_INTERVAL = 15000; + }); + afterEach(() => { + jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; + }); + function expectWeakRefCleared(ref, done, timeoutMs) { const deadline = Date.now() + (timeoutMs || 1000); From 55f6a1e5ea024aafb011c626755942f32ca0a56f Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 19:23:47 +0500 Subject: [PATCH 97/98] test(apple): give the block release specs room for the JSC weak-ref poll JSC scans the stack conservatively, so a block's function can stay reachable past the 2s poll; the iOS simulator run on CI hit it. Poll for up to 10s on JSC, as the timer specs do, and raise the Jasmine timeout to cover it. Co-Authored-By: Claude Opus 5.5 --- .../app/tests/Marshalling/ObjCTypesTests.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/platforms/apple/test/runtime/runner/app/tests/Marshalling/ObjCTypesTests.js b/platforms/apple/test/runtime/runner/app/tests/Marshalling/ObjCTypesTests.js index f1d7abd16..eafc0bc49 100644 --- a/platforms/apple/test/runtime/runner/app/tests/Marshalling/ObjCTypesTests.js +++ b/platforms/apple/test/runtime/runner/app/tests/Marshalling/ObjCTypesTests.js @@ -3,6 +3,18 @@ describe(module.id, function () { global.process && global.process.versions && global.process.versions.engine === "hermes"; + const isJSC = + global.process && + global.process.versions && + global.process.versions.engine === "jsc"; + + // JSC scans the stack conservatively, so a stale slot can keep a block's + // function alive for a while; give its poll 10s, past Jasmine's 5s default. + let originalTimeout; + beforeEach(function () { + originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; + jasmine.DEFAULT_TIMEOUT_INTERVAL = 15000; + }); function expectWeakRefCollected(ref, done, timeoutMs) { if (isHermes) { @@ -10,7 +22,7 @@ describe(module.id, function () { return; } - const deadline = Date.now() + (timeoutMs || 2000); + const deadline = Date.now() + (timeoutMs || (isJSC ? 10000 : 2000)); function poll() { gc(); if (!ref.deref()) { @@ -32,6 +44,7 @@ describe(module.id, function () { afterEach(function () { TNSClearOutput(); + jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; }); it("FunctionWithCFTypeRefArgument", function () { From c68bbeff9e53d9768341b25352c842dc10e97a50 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 8 Nov 2026 19:48:33 +0500 Subject: [PATCH 98/98] bench(objc-dispatch): collect garbage before each timed case CGPointMake's timed run lasts about a millisecond, shorter than a collection triggered by the garbage the earlier cases leave behind. Whether that collection lands inside the window depends on heap size, so a heap change alone moved V8's CGPointMake from 7.6 to 25-30 ns/op and failed the per-case limit. Re-running the case right after, or collecting first, gives the same 7.6 ns/op on both builds. Co-Authored-By: Claude Opus 5.5 --- .../benchmarks/objc-dispatch/objc-dispatch-benchmarks.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/platforms/apple/benchmarks/objc-dispatch/objc-dispatch-benchmarks.js b/platforms/apple/benchmarks/objc-dispatch/objc-dispatch-benchmarks.js index 547728a03..94258eb82 100644 --- a/platforms/apple/benchmarks/objc-dispatch/objc-dispatch-benchmarks.js +++ b/platforms/apple/benchmarks/objc-dispatch/objc-dispatch-benchmarks.js @@ -58,6 +58,12 @@ var iterations = Math.max(1, Math.floor(baseIterations * factor)); var warmup = Math.min(warmupIterations, iterations); runLoop(warmup, fn); + // Collect the garbage earlier cases left behind, so a collection it would + // trigger isn't timed against this case. A fast case runs for about a + // millisecond, less than one such pause. + if (typeof gc === "function") { + gc(); + } var started = nowMs(); runLoop(iterations, fn);

      heFexma$y0#n94rAI) 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

    7Sm8rG>&-Oo^5yDa7{P3~u) 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

    ?h+lz+0kH#y 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 z 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

nqMBY15o+y# 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%0Djdx=~$Qmuu6*__WKdiEN=R-{{q4 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�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 z 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%0D;TZY^vLE&nJYgpk?HF);2fz4K18JSi*Fv541RZ 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�~GcZFrAoP`_W0^ft| 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%0AATbcOtG&^YJwo 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