diff --git a/driver/js/include/driver/scope.h b/driver/js/include/driver/scope.h index d34c1eb94c6..bfed62e896b 100644 --- a/driver/js/include/driver/scope.h +++ b/driver/js/include/driver/scope.h @@ -275,24 +275,7 @@ class Scope : public std::enable_shared_from_this { inline void SetUriLoader(std::weak_ptr loader) { loader_ = loader; - auto the_loader = loader_.lock(); - if (the_loader) { - the_loader->SetRequestTimePerformanceCallback([WEAK_THIS](const string_view& uri, const TimePoint& start, const TimePoint& end) { - DEFINE_AND_CHECK_SELF(Scope) - auto runner = self->GetTaskRunner(); - if (runner) { - auto task = [weak_this, uri, start, end]() { - DEFINE_AND_CHECK_SELF(Scope) - auto entry = self->GetPerformance()->PerformanceResource(uri); - if (entry) { - entry->SetLoadSourceStart(start); - entry->SetLoadSourceEnd(end); - } - }; - runner->PostTask(std::move(task)); - } - }); - } + SetCallbackForUriLoader(); } inline std::weak_ptr GetUriLoader() { return loader_; } @@ -327,6 +310,8 @@ class Scope : public std::enable_shared_from_this { return performance_; } + void HandleUriLoaderError(const string_view& uri, const int32_t ret_code, const string_view& error_msg); + #ifdef ENABLE_INSPECTOR inline void SetDevtoolsDataSource(std::shared_ptr devtools_data_source) { devtools_data_source_ = devtools_data_source; @@ -472,6 +457,7 @@ class Scope : public std::enable_shared_from_this { friend class Engine; void BindModule(); void Bootstrap(); + void SetCallbackForUriLoader(); private: std::weak_ptr engine_; diff --git a/driver/js/include/driver/vm/js_vm.h b/driver/js/include/driver/vm/js_vm.h index 318b029f4ef..b5c88f0a1c1 100644 --- a/driver/js/include/driver/vm/js_vm.h +++ b/driver/js/include/driver/vm/js_vm.h @@ -84,7 +84,8 @@ class VM { return uncaught_exception_callback_; } - static void HandleUncaughtException(const std::shared_ptr& ctx, const std::shared_ptr& exception); + static void HandleException(const std::shared_ptr& ctx, const string_view& event_name, const std::shared_ptr& exception); + virtual std::shared_ptr ParseJson(const std::shared_ptr& ctx, const string_view& json) = 0; virtual std::shared_ptr CreateContext() = 0; private: diff --git a/driver/js/lib/global/Others.js b/driver/js/lib/global/Others.js index c20f4dfef34..e51040538fa 100644 --- a/driver/js/lib/global/Others.js +++ b/driver/js/lib/global/Others.js @@ -23,6 +23,16 @@ global.__GLOBAL__ = { globalEventHandle: {}, }; +class ErrorEvent { + constructor(message, filename, lineno, colno, error) { + this.message = message; + this.filename = filename; + this.lineno = lineno; + this.colno = colno; + this.error = error; + } +} + /** * Register the Hippy app entry function, the native will trigger an event to execute the function * and start the app. @@ -99,15 +109,38 @@ function emit(eventName, ...args) { if (typeof eventName !== 'string') { throw new TypeError('Hippy.emit() only accept a string as event name'); } + + let isErr = eventName === 'error'; + let errObj = new Error(); + if (isErr) { + let arr = args[0]; + if (!(arr instanceof Array)) { + throw new TypeError('Hippy.emit() error event, args0 must be array'); + } + if (arr.length !== 5) { + throw new TypeError('Hippy.emit() error event, args0 length must be 5'); + } + errObj.message = JSON.stringify(arr[4]); + if (Hippy.onerror) { + Hippy.onerror(arr[0], arr[1], arr[2], arr[3], errObj); + } + } + const eventListeners = __GLOBAL__.globalEventHandle[eventName]; if (!eventListeners) { - if (eventName === 'uncaughtException' && args[0]) { + if (args[0]) { console.error(args[0].toString()); } return; } try { - eventListeners.forEach(listener => listener(...args)); + if (isErr) { + let arr = args[0]; + let event = new ErrorEvent(arr[0], arr[1], arr[2], arr[3], errObj); + eventListeners.forEach(listener => listener(event)); + } else { + eventListeners.forEach(listener => listener(...args)); + } } catch (err) { /* eslint-disable-next-line no-console */ console.error(err); @@ -122,3 +155,6 @@ Hippy.register = { Hippy.on = on; Hippy.off = off; Hippy.emit = emit; +Hippy.addEventListener = on; +Hippy.removeEventListener = off; +Hippy.onerror = undefined; diff --git a/driver/js/lib/modules/ExceptionHandle.js b/driver/js/lib/modules/ExceptionHandle.js index a7500413a2a..87f65e48090 100644 --- a/driver/js/lib/modules/ExceptionHandle.js +++ b/driver/js/lib/modules/ExceptionHandle.js @@ -18,11 +18,11 @@ * limitations under the License. */ -(function exceptionHandler(eventName, err) { +(function exceptionHandler(eventName, exception) { if (global.Hippy) { - global.Hippy.emit('uncaughtException', err); + global.Hippy.emit(eventName, exception); } else { /* eslint-disable-next-line no-console */ - console.error(eventName, err); + console.error(eventName, exception); } }); diff --git a/driver/js/src/js_driver_utils.cc b/driver/js/src/js_driver_utils.cc index dd42b720484..78913d2ff12 100644 --- a/driver/js/src/js_driver_utils.cc +++ b/driver/js/src/js_driver_utils.cc @@ -103,7 +103,7 @@ void AsyncInitializeEngine(const std::shared_ptr& engine, auto scope = scope_wrapper->scope.lock(); FOOTSTONE_CHECK(scope); auto exception = info[0]; - V8VM::HandleUncaughtException(scope->GetContext(), exception); + V8VM::HandleException(scope->GetContext(), "uncaughtException", exception); auto engine = scope->GetEngine().lock(); FOOTSTONE_CHECK(engine); auto callback = engine->GetVM()->GetUncaughtExceptionCallback(); diff --git a/driver/js/src/scope.cc b/driver/js/src/scope.cc index 1c0a54b7185..878911ca008 100644 --- a/driver/js/src/scope.cc +++ b/driver/js/src/scope.cc @@ -599,5 +599,45 @@ void Scope::UnloadInstance(const std::shared_ptr& value) { } } +void Scope::SetCallbackForUriLoader() { + auto the_loader = loader_.lock(); + if (the_loader) { + the_loader->SetRequestResultCallback([WEAK_THIS](const string_view& uri, + const TimePoint& start, const TimePoint& end, + const int32_t ret_code, const string_view& error_msg) { + DEFINE_AND_CHECK_SELF(Scope) + auto runner = self->GetTaskRunner(); + if (runner) { + auto task = [weak_this, uri, start, end, ret_code, error_msg]() { + DEFINE_AND_CHECK_SELF(Scope) + auto entry = self->GetPerformance()->PerformanceResource(uri); + if (entry) { + entry->SetLoadSourceStart(start); + entry->SetLoadSourceEnd(end); + } + if (ret_code != 0) { + self->HandleUriLoaderError(uri, ret_code, error_msg); + } + }; + runner->PostTask(std::move(task)); + } + }); + } +} + +void Scope::HandleUriLoaderError(const string_view& uri, const int32_t ret_code, const string_view& error_msg) { + std::unordered_map> error_map; + error_map["code"] = context_->CreateNumber(static_cast(ret_code)); + error_map["message"] = context_->CreateString(error_msg); + auto event = context_->CreateString("vfs error"); + auto source = context_->CreateString(uri); + auto lineno = context_->CreateNumber(0); + auto colno = context_->CreateNumber(0); + auto error = context_->CreateObject(error_map); + std::shared_ptr arr[5] = {event, source, lineno, colno, error}; + auto exception = context_->CreateArray(5, arr); + VM::HandleException(context_, "error", exception); +} + } } diff --git a/driver/js/src/vm/js_vm.cc b/driver/js/src/vm/js_vm.cc index c77e292f8a6..0b3b05725d9 100644 --- a/driver/js/src/vm/js_vm.cc +++ b/driver/js/src/vm/js_vm.cc @@ -30,21 +30,21 @@ namespace hippy { inline namespace driver { inline namespace vm { -constexpr char kEventName[] = "uncaughtException"; -constexpr char kErrorHandlerJSName[] = "ExceptionHandle.js"; -constexpr char kHippyErrorHandlerName[] = "HippyExceptionHandler"; +constexpr char kExceptionHandlerJSName[] = "ExceptionHandle.js"; +constexpr char kHippyExceptionHandlerName[] = "HippyExceptionHandler"; using Ctx = hippy::Ctx; using CtxValue = hippy::CtxValue; -void VM::HandleUncaughtException(const std::shared_ptr& ctx, - const std::shared_ptr& exception) { +void VM::HandleException(const std::shared_ptr& ctx, + const string_view& event_name, + const std::shared_ptr& exception) { auto global_object = ctx->GetGlobalObject(); - string_view error_handle_name(kHippyErrorHandlerName); + string_view error_handle_name(kHippyExceptionHandlerName); auto error_handle_key = ctx->CreateString(error_handle_name); auto exception_handler = ctx->GetProperty(global_object, error_handle_key); if (!ctx->IsFunction(exception_handler)) { - const auto& source_code = hippy::GetNativeSourceCode(kErrorHandlerJSName); + const auto& source_code = hippy::GetNativeSourceCode(kExceptionHandlerJSName); FOOTSTONE_DCHECK(source_code.data_ && source_code.length_); string_view str_view(source_code.data_, source_code.length_); exception_handler = ctx->RunScript(str_view, error_handle_name); @@ -52,7 +52,7 @@ void VM::HandleUncaughtException(const std::shared_ptr& ctx, } std::shared_ptr argv[2]; - argv[0] = ctx->CreateString(kEventName); + argv[0] = ctx->CreateString(event_name); argv[1] = exception; auto try_catch = CreateTryCatchScope(true, ctx); @@ -63,7 +63,6 @@ void VM::HandleUncaughtException(const std::shared_ptr& ctx, } } - } } } diff --git a/driver/js/src/vm/jsc/native_source_code_ios.cc b/driver/js/src/vm/jsc/native_source_code_ios.cc index 7f1a126bcf5..ae758254c98 100644 --- a/driver/js/src/vm/jsc/native_source_code_ios.cc +++ b/driver/js/src/vm/jsc/native_source_code_ios.cc @@ -28,8 +28,8 @@ namespace { const uint8_t k_bootstrap[] = { 34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,102,117,110,99,116,105,111,110,32,95,99,108,97,115,115,67,97,108,108,67,104,101,99,107,40,105,110,115,116,97,110,99,101,44,32,67,111,110,115,116,114,117,99,116,111,114,41,32,123,32,105,102,32,40,33,40,105,110,115,116,97,110,99,101,32,105,110,115,116,97,110,99,101,111,102,32,67,111,110,115,116,114,117,99,116,111,114,41,41,32,123,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,67,97,110,110,111,116,32,99,97,108,108,32,97,32,99,108,97,115,115,32,97,115,32,97,32,102,117,110,99,116,105,111,110,34,41,59,32,125,32,125,10,102,117,110,99,116,105,111,110,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,105,101,115,40,116,97,114,103,101,116,44,32,112,114,111,112,115,41,32,123,32,102,111,114,32,40,118,97,114,32,105,32,61,32,48,59,32,105,32,60,32,112,114,111,112,115,46,108,101,110,103,116,104,59,32,105,43,43,41,32,123,32,118,97,114,32,100,101,115,99,114,105,112,116,111,114,32,61,32,112,114,111,112,115,91,105,93,59,32,100,101,115,99,114,105,112,116,111,114,46,101,110,117,109,101,114,97,98,108,101,32,61,32,100,101,115,99,114,105,112,116,111,114,46,101,110,117,109,101,114,97,98,108,101,32,124,124,32,102,97,108,115,101,59,32,100,101,115,99,114,105,112,116,111,114,46,99,111,110,102,105,103,117,114,97,98,108,101,32,61,32,116,114,117,101,59,32,105,102,32,40,34,118,97,108,117,101,34,32,105,110,32,100,101,115,99,114,105,112,116,111,114,41,32,100,101,115,99,114,105,112,116,111,114,46,119,114,105,116,97,98,108,101,32,61,32,116,114,117,101,59,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,116,97,114,103,101,116,44,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,100,101,115,99,114,105,112,116,111,114,46,107,101,121,41,44,32,100,101,115,99,114,105,112,116,111,114,41,59,32,125,32,125,10,102,117,110,99,116,105,111,110,32,95,99,114,101,97,116,101,67,108,97,115,115,40,67,111,110,115,116,114,117,99,116,111,114,44,32,112,114,111,116,111,80,114,111,112,115,44,32,115,116,97,116,105,99,80,114,111,112,115,41,32,123,32,105,102,32,40,112,114,111,116,111,80,114,111,112,115,41,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,105,101,115,40,67,111,110,115,116,114,117,99,116,111,114,46,112,114,111,116,111,116,121,112,101,44,32,112,114,111,116,111,80,114,111,112,115,41,59,32,105,102,32,40,115,116,97,116,105,99,80,114,111,112,115,41,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,105,101,115,40,67,111,110,115,116,114,117,99,116,111,114,44,32,115,116,97,116,105,99,80,114,111,112,115,41,59,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,67,111,110,115,116,114,117,99,116,111,114,44,32,34,112,114,111,116,111,116,121,112,101,34,44,32,123,32,119,114,105,116,97,98,108,101,58,32,102,97,108,115,101,32,125,41,59,32,114,101,116,117,114,110,32,67,111,110,115,116,114,117,99,116,111,114,59,32,125,10,102,117,110,99,116,105,111,110,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,97,114,103,41,32,123,32,118,97,114,32,107,101,121,32,61,32,95,116,111,80,114,105,109,105,116,105,118,101,40,97,114,103,44,32,34,115,116,114,105,110,103,34,41,59,32,114,101,116,117,114,110,32,95,116,121,112,101,111,102,40,107,101,121,41,32,61,61,61,32,34,115,121,109,98,111,108,34,32,63,32,107,101,121,32,58,32,83,116,114,105,110,103,40,107,101,121,41,59,32,125,10,102,117,110,99,116,105,111,110,32,95,116,111,80,114,105,109,105,116,105,118,101,40,105,110,112,117,116,44,32,104,105,110,116,41,32,123,32,105,102,32,40,95,116,121,112,101,111,102,40,105,110,112,117,116,41,32,33,61,61,32,34,111,98,106,101,99,116,34,32,124,124,32,105,110,112,117,116,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,105,110,112,117,116,59,32,118,97,114,32,112,114,105,109,32,61,32,105,110,112,117,116,91,83,121,109,98,111,108,46,116,111,80,114,105,109,105,116,105,118,101,93,59,32,105,102,32,40,112,114,105,109,32,33,61,61,32,117,110,100,101,102,105,110,101,100,41,32,123,32,118,97,114,32,114,101,115,32,61,32,112,114,105,109,46,99,97,108,108,40,105,110,112,117,116,44,32,104,105,110,116,32,124,124,32,34,100,101,102,97,117,108,116,34,41,59,32,105,102,32,40,95,116,121,112,101,111,102,40,114,101,115,41,32,33,61,61,32,34,111,98,106,101,99,116,34,41,32,114,101,116,117,114,110,32,114,101,115,59,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,64,64,116,111,80,114,105,109,105,116,105,118,101,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,112,114,105,109,105,116,105,118,101,32,118,97,108,117,101,46,34,41,59,32,125,32,114,101,116,117,114,110,32,40,104,105,110,116,32,61,61,61,32,34,115,116,114,105,110,103,34,32,63,32,83,116,114,105,110,103,32,58,32,78,117,109,98,101,114,41,40,105,110,112,117,116,41,59,32,125,10,102,117,110,99,116,105,111,110,32,95,116,121,112,101,111,102,40,111,98,106,41,32,123,32,34,64,98,97,98,101,108,47,104,101,108,112,101,114,115,32,45,32,116,121,112,101,111,102,34,59,32,114,101,116,117,114,110,32,95,116,121,112,101,111,102,32,61,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,83,121,109,98,111,108,32,38,38,32,34,115,121,109,98,111,108,34,32,61,61,32,116,121,112,101,111,102,32,83,121,109,98,111,108,46,105,116,101,114,97,116,111,114,32,63,32,102,117,110,99,116,105,111,110,32,40,111,98,106,41,32,123,32,114,101,116,117,114,110,32,116,121,112,101,111,102,32,111,98,106,59,32,125,32,58,32,102,117,110,99,116,105,111,110,32,40,111,98,106,41,32,123,32,114,101,116,117,114,110,32,111,98,106,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,83,121,109,98,111,108,32,38,38,32,111,98,106,46,99,111,110,115,116,114,117,99,116,111,114,32,61,61,61,32,83,121,109,98,111,108,32,38,38,32,111,98,106,32,33,61,61,32,83,121,109,98,111,108,46,112,114,111,116,111,116,121,112,101,32,63,32,34,115,121,109,98,111,108,34,32,58,32,116,121,112,101,111,102,32,111,98,106,59,32,125,44,32,95,116,121,112,101,111,102,40,111,98,106,41,59,32,125,10,40,102,117,110,99,116,105,111,110,32,40,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,10,32,32,103,108,111,98,97,108,46,72,105,112,112,121,32,61,32,103,108,111,98,97,108,46,72,105,112,112,121,32,124,124,32,123,125,59,10,32,32,118,97,114,32,98,105,110,100,105,110,103,79,98,106,32,61,32,123,125,59,10,32,32,118,97,114,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,32,61,32,102,117,110,99,116,105,111,110,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,32,123,10,32,32,32,32,105,102,32,40,95,116,121,112,101,111,102,40,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,41,32,33,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,32,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,61,32,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,59,10,32,32,125,59,10,32,32,118,97,114,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,32,32,118,97,114,32,78,97,116,105,118,101,77,111,100,117,108,101,32,61,32,102,117,110,99,116,105,111,110,32,40,41,32,123,10,32,32,32,32,102,117,110,99,116,105,111,110,32,78,97,116,105,118,101,77,111,100,117,108,101,40,102,105,108,101,110,97,109,101,41,32,123,10,32,32,32,32,32,32,95,99,108,97,115,115,67,97,108,108,67,104,101,99,107,40,116,104,105,115,44,32,78,97,116,105,118,101,77,111,100,117,108,101,41,59,10,32,32,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,32,32,116,104,105,115,46,101,120,112,111,114,116,115,32,61,32,123,125,59,10,32,32,32,32,125,10,32,32,32,32,95,99,114,101,97,116,101,67,108,97,115,115,40,78,97,116,105,118,101,77,111,100,117,108,101,44,32,91,123,10,32,32,32,32,32,32,107,101,121,58,32,34,99,111,109,112,105,108,101,34,44,10,32,32,32,32,32,32,118,97,108,117,101,58,32,102,117,110,99,116,105,111,110,32,99,111,109,112,105,108,101,40,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,102,110,32,61,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,46,82,117,110,73,110,84,104,105,115,67,111,110,116,101,120,116,40,116,104,105,115,46,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,32,32,102,110,40,116,104,105,115,46,101,120,112,111,114,116,115,44,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,44,32,123,10,32,32,32,32,32,32,107,101,121,58,32,34,99,97,99,104,101,34,44,10,32,32,32,32,32,32,118,97,108,117,101,58,32,102,117,110,99,116,105,111,110,32,99,97,99,104,101,40,41,32,123,10,32,32,32,32,32,32,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,116,104,105,115,46,102,105,108,101,110,97,109,101,93,32,61,32,116,104,105,115,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,93,44,32,91,123,10,32,32,32,32,32,32,107,101,121,58,32,34,114,101,113,117,105,114,101,34,44,10,32,32,32,32,32,32,118,97,108,117,101,58,32,102,117,110,99,116,105,111,110,32,114,101,113,117,105,114,101,40,102,105,108,101,80,97,116,104,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,102,105,108,101,80,97,116,104,65,114,114,32,61,32,102,105,108,101,80,97,116,104,46,115,112,108,105,116,40,39,47,39,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,80,97,116,104,65,114,114,91,102,105,108,101,80,97,116,104,65,114,114,46,108,101,110,103,116,104,32,45,32,49,93,59,10,32,32,32,32,32,32,32,32,118,97,114,32,99,97,99,104,101,100,32,61,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,102,105,108,101,110,97,109,101,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,99,97,99,104,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,97,99,104,101,100,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,118,97,114,32,110,97,116,105,118,101,77,111,100,117,108,101,32,61,32,110,101,119,32,78,97,116,105,118,101,77,111,100,117,108,101,40,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,40,41,59,10,32,32,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,111,109,112,105,108,101,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,97,116,105,118,101,77,111,100,117,108,101,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,93,41,59,10,32,32,32,32,114,101,116,117,114,110,32,78,97,116,105,118,101,77,111,100,117,108,101,59,10,32,32,125,40,41,59,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,32,61,32,123,125,59,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,104,105,112,112,121,46,106,115,39,41,59,10,125,41,59,0 }; // NOLINT const uint8_t k_hippy[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,79,116,104,101,114,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,121,110,97,109,105,99,76,111,97,100,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,80,108,97,116,102,111,114,109,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,105,111,115,47,106,115,50,110,97,116,105,118,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,84,105,109,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,105,111,115,47,112,114,111,109,105,115,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,67,111,110,115,111,108,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,78,101,116,119,111,114,107,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,83,116,111,114,97,103,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,105,109,101,110,115,105,111,110,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,116,105,108,115,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,105,111,115,47,103,108,111,98,97,108,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,105,111,115,47,110,97,116,105,118,101,50,106,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,69,118,101,110,116,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,105,111,115,47,84,117,114,98,111,46,106,115,39,41,59,10,103,108,111,98,97,108,46,108,111,99,97,108,83,116,111,114,97,103,101,32,61,32,72,105,112,112,121,46,97,115,121,110,99,83,116,111,114,97,103,101,59,10,103,108,111,98,97,108,46,116,117,114,98,111,80,114,111,109,105,115,101,32,61,32,72,105,112,112,121,46,116,117,114,98,111,80,114,111,109,105,115,101,59,125,41,59,0 }; // NOLINT - const uint8_t k_ExceptionHandle[] = { 34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,114,114,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,39,117,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,39,44,32,101,114,114,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,114,114,41,59,10,32,32,125,10,125,41,59,0 }; // NOLINT - const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,118,97,114,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,118,97,114,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,41,32,123,10,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,97,114,103,115,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,32,62,32,49,32,63,32,95,108,101,110,32,45,32,49,32,58,32,48,41,44,32,95,107,101,121,32,61,32,49,59,32,95,107,101,121,32,60,32,95,108,101,110,59,32,95,107,101,121,43,43,41,32,123,10,32,32,32,32,97,114,103,115,91,95,107,101,121,32,45,32,49,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,93,59,10,32,32,125,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,118,97,114,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,117,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,39,32,38,38,32,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,102,117,110,99,116,105,111,110,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,105,115,116,101,110,101,114,46,97,112,112,108,121,40,118,111,105,100,32,48,44,32,97,114,103,115,41,59,10,32,32,32,32,125,41,59,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,125,41,59,0 }; // NOLINT + const uint8_t k_ExceptionHandle[] = { 34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,10,125,41,59,0 }; // NOLINT + const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,102,117,110,99,116,105,111,110,32,95,116,121,112,101,111,102,40,111,98,106,41,32,123,32,34,64,98,97,98,101,108,47,104,101,108,112,101,114,115,32,45,32,116,121,112,101,111,102,34,59,32,114,101,116,117,114,110,32,95,116,121,112,101,111,102,32,61,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,83,121,109,98,111,108,32,38,38,32,34,115,121,109,98,111,108,34,32,61,61,32,116,121,112,101,111,102,32,83,121,109,98,111,108,46,105,116,101,114,97,116,111,114,32,63,32,102,117,110,99,116,105,111,110,32,40,111,98,106,41,32,123,32,114,101,116,117,114,110,32,116,121,112,101,111,102,32,111,98,106,59,32,125,32,58,32,102,117,110,99,116,105,111,110,32,40,111,98,106,41,32,123,32,114,101,116,117,114,110,32,111,98,106,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,83,121,109,98,111,108,32,38,38,32,111,98,106,46,99,111,110,115,116,114,117,99,116,111,114,32,61,61,61,32,83,121,109,98,111,108,32,38,38,32,111,98,106,32,33,61,61,32,83,121,109,98,111,108,46,112,114,111,116,111,116,121,112,101,32,63,32,34,115,121,109,98,111,108,34,32,58,32,116,121,112,101,111,102,32,111,98,106,59,32,125,44,32,95,116,121,112,101,111,102,40,111,98,106,41,59,32,125,10,102,117,110,99,116,105,111,110,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,105,101,115,40,116,97,114,103,101,116,44,32,112,114,111,112,115,41,32,123,32,102,111,114,32,40,118,97,114,32,105,32,61,32,48,59,32,105,32,60,32,112,114,111,112,115,46,108,101,110,103,116,104,59,32,105,43,43,41,32,123,32,118,97,114,32,100,101,115,99,114,105,112,116,111,114,32,61,32,112,114,111,112,115,91,105,93,59,32,100,101,115,99,114,105,112,116,111,114,46,101,110,117,109,101,114,97,98,108,101,32,61,32,100,101,115,99,114,105,112,116,111,114,46,101,110,117,109,101,114,97,98,108,101,32,124,124,32,102,97,108,115,101,59,32,100,101,115,99,114,105,112,116,111,114,46,99,111,110,102,105,103,117,114,97,98,108,101,32,61,32,116,114,117,101,59,32,105,102,32,40,34,118,97,108,117,101,34,32,105,110,32,100,101,115,99,114,105,112,116,111,114,41,32,100,101,115,99,114,105,112,116,111,114,46,119,114,105,116,97,98,108,101,32,61,32,116,114,117,101,59,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,116,97,114,103,101,116,44,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,100,101,115,99,114,105,112,116,111,114,46,107,101,121,41,44,32,100,101,115,99,114,105,112,116,111,114,41,59,32,125,32,125,10,102,117,110,99,116,105,111,110,32,95,99,114,101,97,116,101,67,108,97,115,115,40,67,111,110,115,116,114,117,99,116,111,114,44,32,112,114,111,116,111,80,114,111,112,115,44,32,115,116,97,116,105,99,80,114,111,112,115,41,32,123,32,105,102,32,40,112,114,111,116,111,80,114,111,112,115,41,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,105,101,115,40,67,111,110,115,116,114,117,99,116,111,114,46,112,114,111,116,111,116,121,112,101,44,32,112,114,111,116,111,80,114,111,112,115,41,59,32,105,102,32,40,115,116,97,116,105,99,80,114,111,112,115,41,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,105,101,115,40,67,111,110,115,116,114,117,99,116,111,114,44,32,115,116,97,116,105,99,80,114,111,112,115,41,59,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,67,111,110,115,116,114,117,99,116,111,114,44,32,34,112,114,111,116,111,116,121,112,101,34,44,32,123,32,119,114,105,116,97,98,108,101,58,32,102,97,108,115,101,32,125,41,59,32,114,101,116,117,114,110,32,67,111,110,115,116,114,117,99,116,111,114,59,32,125,10,102,117,110,99,116,105,111,110,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,97,114,103,41,32,123,32,118,97,114,32,107,101,121,32,61,32,95,116,111,80,114,105,109,105,116,105,118,101,40,97,114,103,44,32,34,115,116,114,105,110,103,34,41,59,32,114,101,116,117,114,110,32,95,116,121,112,101,111,102,40,107,101,121,41,32,61,61,61,32,34,115,121,109,98,111,108,34,32,63,32,107,101,121,32,58,32,83,116,114,105,110,103,40,107,101,121,41,59,32,125,10,102,117,110,99,116,105,111,110,32,95,116,111,80,114,105,109,105,116,105,118,101,40,105,110,112,117,116,44,32,104,105,110,116,41,32,123,32,105,102,32,40,95,116,121,112,101,111,102,40,105,110,112,117,116,41,32,33,61,61,32,34,111,98,106,101,99,116,34,32,124,124,32,105,110,112,117,116,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,105,110,112,117,116,59,32,118,97,114,32,112,114,105,109,32,61,32,105,110,112,117,116,91,83,121,109,98,111,108,46,116,111,80,114,105,109,105,116,105,118,101,93,59,32,105,102,32,40,112,114,105,109,32,33,61,61,32,117,110,100,101,102,105,110,101,100,41,32,123,32,118,97,114,32,114,101,115,32,61,32,112,114,105,109,46,99,97,108,108,40,105,110,112,117,116,44,32,104,105,110,116,32,124,124,32,34,100,101,102,97,117,108,116,34,41,59,32,105,102,32,40,95,116,121,112,101,111,102,40,114,101,115,41,32,33,61,61,32,34,111,98,106,101,99,116,34,41,32,114,101,116,117,114,110,32,114,101,115,59,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,64,64,116,111,80,114,105,109,105,116,105,118,101,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,112,114,105,109,105,116,105,118,101,32,118,97,108,117,101,46,34,41,59,32,125,32,114,101,116,117,114,110,32,40,104,105,110,116,32,61,61,61,32,34,115,116,114,105,110,103,34,32,63,32,83,116,114,105,110,103,32,58,32,78,117,109,98,101,114,41,40,105,110,112,117,116,41,59,32,125,10,102,117,110,99,116,105,111,110,32,95,99,108,97,115,115,67,97,108,108,67,104,101,99,107,40,105,110,115,116,97,110,99,101,44,32,67,111,110,115,116,114,117,99,116,111,114,41,32,123,32,105,102,32,40,33,40,105,110,115,116,97,110,99,101,32,105,110,115,116,97,110,99,101,111,102,32,67,111,110,115,116,114,117,99,116,111,114,41,41,32,123,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,67,97,110,110,111,116,32,99,97,108,108,32,97,32,99,108,97,115,115,32,97,115,32,97,32,102,117,110,99,116,105,111,110,34,41,59,32,125,32,125,10,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,118,97,114,32,69,114,114,111,114,69,118,101,110,116,32,61,32,95,99,114,101,97,116,101,67,108,97,115,115,40,102,117,110,99,116,105,111,110,32,69,114,114,111,114,69,118,101,110,116,40,109,101,115,115,97,103,101,44,32,102,105,108,101,110,97,109,101,44,32,108,105,110,101,110,111,44,32,99,111,108,110,111,44,32,101,114,114,111,114,41,32,123,10,32,32,95,99,108,97,115,115,67,97,108,108,67,104,101,99,107,40,116,104,105,115,44,32,69,114,114,111,114,69,118,101,110,116,41,59,10,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,109,101,115,115,97,103,101,59,10,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,116,104,105,115,46,108,105,110,101,110,111,32,61,32,108,105,110,101,110,111,59,10,32,32,116,104,105,115,46,99,111,108,110,111,32,61,32,99,111,108,110,111,59,10,32,32,116,104,105,115,46,101,114,114,111,114,32,61,32,101,114,114,111,114,59,10,125,41,59,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,118,97,114,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,118,97,114,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,41,32,123,10,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,97,114,103,115,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,32,62,32,49,32,63,32,95,108,101,110,32,45,32,49,32,58,32,48,41,44,32,95,107,101,121,32,61,32,49,59,32,95,107,101,121,32,60,32,95,108,101,110,59,32,95,107,101,121,43,43,41,32,123,10,32,32,32,32,97,114,103,115,91,95,107,101,121,32,45,32,49,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,93,59,10,32,32,125,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,118,97,114,32,105,115,69,114,114,32,61,32,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,101,114,114,111,114,39,59,10,32,32,118,97,114,32,101,114,114,79,98,106,32,61,32,110,101,119,32,69,114,114,111,114,40,41,59,10,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,118,97,114,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,105,102,32,40,33,40,97,114,114,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,41,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,109,117,115,116,32,98,101,32,97,114,114,97,121,39,41,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,97,114,114,46,108,101,110,103,116,104,32,33,61,61,32,53,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,53,39,41,59,10,32,32,32,32,125,10,32,32,32,32,101,114,114,79,98,106,46,109,101,115,115,97,103,101,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,97,114,114,91,52,93,41,59,10,32,32,32,32,105,102,32,40,72,105,112,112,121,46,111,110,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,72,105,112,112,121,46,111,110,101,114,114,111,114,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,118,97,114,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,32,32,118,97,114,32,95,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,32,32,118,97,114,32,101,118,101,110,116,32,61,32,110,101,119,32,69,114,114,111,114,69,118,101,110,116,40,95,97,114,114,91,48,93,44,32,95,97,114,114,91,49,93,44,32,95,97,114,114,91,50,93,44,32,95,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,102,117,110,99,116,105,111,110,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,105,115,116,101,110,101,114,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,102,117,110,99,116,105,111,110,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,105,115,116,101,110,101,114,46,97,112,112,108,121,40,118,111,105,100,32,48,44,32,97,114,103,115,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,10,72,105,112,112,121,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,110,59,10,72,105,112,112,121,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,102,102,59,10,72,105,112,112,121,46,111,110,101,114,114,111,114,32,61,32,117,110,100,101,102,105,110,101,100,59,125,41,59,0 }; // NOLINT const uint8_t k_DynamicLoad[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,118,97,114,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,103,108,111,98,97,108,46,100,121,110,97,109,105,99,76,111,97,100,32,61,32,102,117,110,99,116,105,111,110,32,40,112,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,32,123,10,32,32,118,97,114,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,112,97,116,104,32,124,124,32,39,39,59,10,32,32,118,97,114,32,105,115,83,99,104,101,109,97,32,61,32,47,94,40,46,43,58,92,47,92,47,41,124,94,40,92,47,92,47,41,47,46,116,101,115,116,40,112,97,116,104,41,59,10,32,32,105,102,32,40,33,105,115,83,99,104,101,109,97,41,32,123,10,32,32,32,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,103,108,111,98,97,108,46,95,95,72,73,80,80,89,67,85,82,68,73,82,95,95,32,43,32,112,97,116,104,59,10,32,32,125,10,32,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,46,76,111,97,100,85,110,116,114,117,115,116,101,100,67,111,110,116,101,110,116,40,114,101,113,117,101,115,116,80,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,59,10,125,59,125,41,59,0 }; // NOLINT const uint8_t k_Platform[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,32,61,32,123,125,59,10,105,102,32,40,116,121,112,101,111,102,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,118,97,114,32,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,123,10,32,32,32,32,99,111,117,110,116,114,121,58,32,39,39,44,10,32,32,32,32,108,97,110,103,117,97,103,101,58,32,39,39,44,10,32,32,32,32,100,105,114,101,99,116,105,111,110,58,32,48,10,32,32,125,59,10,32,32,105,102,32,40,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,41,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,68,101,118,105,99,101,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,68,101,118,105,99,101,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,10,125,125,41,59,0 }; // NOLINT const uint8_t k_UIManagerModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,34,117,115,101,32,115,116,114,105,99,116,34,59,10,10,118,97,114,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,39,41,59,10,72,105,112,112,121,46,100,111,99,117,109,101,110,116,32,61,32,123,10,32,32,99,114,101,97,116,101,78,111,100,101,58,32,102,117,110,99,116,105,111,110,32,99,114,101,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,117,112,100,97,116,101,78,111,100,101,58,32,102,117,110,99,116,105,111,110,32,117,112,100,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,100,101,108,101,116,101,78,111,100,101,58,32,102,117,110,99,116,105,111,110,32,100,101,108,101,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,102,108,117,115,104,66,97,116,99,104,58,32,102,117,110,99,116,105,111,110,32,102,108,117,115,104,66,97,116,99,104,40,41,32,123,125,44,10,32,32,101,110,100,66,97,116,99,104,58,32,102,117,110,99,116,105,111,110,32,101,110,100,66,97,116,99,104,40,41,32,123,125,44,10,32,32,99,97,108,108,85,73,70,117,110,99,116,105,111,110,58,32,102,117,110,99,116,105,111,110,32,99,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,32,123,10,32,32,32,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,67,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,59,10,32,32,125,44,10,32,32,115,101,110,100,82,101,110,100,101,114,69,114,114,111,114,58,32,102,117,110,99,116,105,111,110,32,115,101,110,100,82,101,110,100,101,114,69,114,114,111,114,40,101,114,114,111,114,41,32,123,10,32,32,32,32,105,102,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,101,114,114,111,114,59,10,32,32,32,32,125,10,32,32,125,10,125,59,125,41,59,0 }; // NOLINT diff --git a/driver/js/src/vm/v8/native_source_code_android.cc b/driver/js/src/vm/v8/native_source_code_android.cc index ffc4858e4ce..d92bf6f741b 100644 --- a/driver/js/src/vm/v8/native_source_code_android.cc +++ b/driver/js/src/vm/v8/native_source_code_android.cc @@ -28,8 +28,8 @@ namespace { const uint8_t k_bootstrap[] = { 40,102,117,110,99,116,105,111,110,32,40,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,10,32,32,103,108,111,98,97,108,46,72,105,112,112,121,32,61,32,103,108,111,98,97,108,46,72,105,112,112,121,32,124,124,32,123,125,59,10,32,32,99,111,110,115,116,32,98,105,110,100,105,110,103,79,98,106,32,61,32,123,125,59,10,32,32,99,111,110,115,116,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,32,61,32,102,117,110,99,116,105,111,110,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,33,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,32,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,61,32,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,59,10,32,32,125,59,10,32,32,99,111,110,115,116,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,32,32,99,108,97,115,115,32,78,97,116,105,118,101,77,111,100,117,108,101,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,102,105,108,101,110,97,109,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,32,32,116,104,105,115,46,101,120,112,111,114,116,115,32,61,32,123,125,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,114,101,113,117,105,114,101,40,102,105,108,101,80,97,116,104,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,105,108,101,80,97,116,104,65,114,114,32,61,32,102,105,108,101,80,97,116,104,46,115,112,108,105,116,40,39,47,39,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,80,97,116,104,65,114,114,91,102,105,108,101,80,97,116,104,65,114,114,46,108,101,110,103,116,104,32,45,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,97,99,104,101,100,32,61,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,102,105,108,101,110,97,109,101,93,59,10,32,32,32,32,32,32,105,102,32,40,99,97,99,104,101,100,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,97,99,104,101,100,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,116,105,118,101,77,111,100,117,108,101,32,61,32,110,101,119,32,78,97,116,105,118,101,77,111,100,117,108,101,40,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,40,41,59,10,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,111,109,112,105,108,101,40,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,110,97,116,105,118,101,77,111,100,117,108,101,46,101,120,112,111,114,116,115,59,10,32,32,32,32,125,10,32,32,32,32,99,111,109,112,105,108,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,110,32,61,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,46,82,117,110,73,110,84,104,105,115,67,111,110,116,101,120,116,40,116,104,105,115,46,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,102,110,40,116,104,105,115,46,101,120,112,111,114,116,115,44,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,99,104,101,40,41,32,123,10,32,32,32,32,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,116,104,105,115,46,102,105,108,101,110,97,109,101,93,32,61,32,116,104,105,115,59,10,32,32,32,32,125,10,32,32,125,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,32,61,32,123,125,59,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,104,105,112,112,121,46,106,115,39,41,59,10,125,41,59,0 }; // NOLINT const uint8_t k_hippy[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,79,116,104,101,114,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,121,110,97,109,105,99,76,111,97,100,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,80,108,97,116,102,111,114,109,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,97,110,100,114,111,105,100,47,106,115,50,110,97,116,105,118,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,84,105,109,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,67,111,110,115,111,108,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,78,101,116,119,111,114,107,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,83,116,111,114,97,103,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,105,109,101,110,115,105,111,110,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,116,105,108,115,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,97,110,100,114,111,105,100,47,103,108,111,98,97,108,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,97,110,100,114,111,105,100,47,110,97,116,105,118,101,50,106,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,69,118,101,110,116,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,97,110,100,114,111,105,100,47,84,117,114,98,111,46,106,115,39,41,59,10,103,108,111,98,97,108,46,108,111,99,97,108,83,116,111,114,97,103,101,32,61,32,72,105,112,112,121,46,97,115,121,110,99,83,116,111,114,97,103,101,59,10,103,108,111,98,97,108,46,116,117,114,98,111,80,114,111,109,105,115,101,32,61,32,72,105,112,112,121,46,116,117,114,98,111,80,114,111,109,105,115,101,59,125,41,59,0 }; // NOLINT - const uint8_t k_ExceptionHandle[] = { 40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,114,114,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,39,117,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,39,44,32,101,114,114,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,114,114,41,59,10,32,32,125,10,125,41,59,0 }; // NOLINT - const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,108,101,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,46,46,46,97,114,103,115,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,117,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,39,32,38,38,32,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,46,46,46,97,114,103,115,41,41,59,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,125,41,59,0 }; // NOLINT + const uint8_t k_ExceptionHandle[] = { 40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,10,125,41,59,0 }; // NOLINT + const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,99,108,97,115,115,32,69,114,114,111,114,69,118,101,110,116,32,123,10,32,32,99,111,110,115,116,114,117,99,116,111,114,40,109,101,115,115,97,103,101,44,32,102,105,108,101,110,97,109,101,44,32,108,105,110,101,110,111,44,32,99,111,108,110,111,44,32,101,114,114,111,114,41,32,123,10,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,109,101,115,115,97,103,101,59,10,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,116,104,105,115,46,108,105,110,101,110,111,32,61,32,108,105,110,101,110,111,59,10,32,32,32,32,116,104,105,115,46,99,111,108,110,111,32,61,32,99,111,108,110,111,59,10,32,32,32,32,116,104,105,115,46,101,114,114,111,114,32,61,32,101,114,114,111,114,59,10,32,32,125,10,125,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,108,101,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,46,46,46,97,114,103,115,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,108,101,116,32,105,115,69,114,114,32,61,32,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,101,114,114,111,114,39,59,10,32,32,108,101,116,32,101,114,114,79,98,106,32,61,32,110,101,119,32,69,114,114,111,114,40,41,59,10,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,108,101,116,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,105,102,32,40,33,40,97,114,114,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,41,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,109,117,115,116,32,98,101,32,97,114,114,97,121,39,41,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,97,114,114,46,108,101,110,103,116,104,32,33,61,61,32,53,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,53,39,41,59,10,32,32,32,32,125,10,32,32,32,32,101,114,114,79,98,106,46,109,101,115,115,97,103,101,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,97,114,114,91,52,93,41,59,10,32,32,32,32,105,102,32,40,72,105,112,112,121,46,111,110,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,72,105,112,112,121,46,111,110,101,114,114,111,114,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,32,32,108,101,116,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,32,32,108,101,116,32,101,118,101,110,116,32,61,32,110,101,119,32,69,114,114,111,114,69,118,101,110,116,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,101,118,101,110,116,41,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,46,46,46,97,114,103,115,41,41,59,10,32,32,32,32,125,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,10,72,105,112,112,121,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,110,59,10,72,105,112,112,121,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,102,102,59,10,72,105,112,112,121,46,111,110,101,114,114,111,114,32,61,32,117,110,100,101,102,105,110,101,100,59,125,41,59,0 }; // NOLINT const uint8_t k_DynamicLoad[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,103,108,111,98,97,108,46,100,121,110,97,109,105,99,76,111,97,100,32,61,32,40,112,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,32,61,62,32,123,10,32,32,108,101,116,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,112,97,116,104,32,124,124,32,39,39,59,10,32,32,99,111,110,115,116,32,105,115,83,99,104,101,109,97,32,61,32,47,94,40,46,43,58,92,47,92,47,41,124,94,40,92,47,92,47,41,47,46,116,101,115,116,40,112,97,116,104,41,59,10,32,32,105,102,32,40,33,105,115,83,99,104,101,109,97,41,32,123,10,32,32,32,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,103,108,111,98,97,108,46,95,95,72,73,80,80,89,67,85,82,68,73,82,95,95,32,43,32,112,97,116,104,59,10,32,32,125,10,32,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,46,76,111,97,100,85,110,116,114,117,115,116,101,100,67,111,110,116,101,110,116,40,114,101,113,117,101,115,116,80,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,59,10,125,59,125,41,59,0 }; // NOLINT const uint8_t k_Platform[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,32,61,32,123,125,59,10,105,102,32,40,116,121,112,101,111,102,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,99,111,110,115,116,32,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,123,10,32,32,32,32,99,111,117,110,116,114,121,58,32,39,39,44,10,32,32,32,32,108,97,110,103,117,97,103,101,58,32,39,39,44,10,32,32,32,32,100,105,114,101,99,116,105,111,110,58,32,48,10,32,32,125,59,10,32,32,105,102,32,40,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,41,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,68,101,118,105,99,101,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,68,101,118,105,99,101,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,10,125,125,41,59,0 }; // NOLINT const uint8_t k_UIManagerModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,39,41,59,10,72,105,112,112,121,46,100,111,99,117,109,101,110,116,32,61,32,123,10,32,32,99,114,101,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,117,112,100,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,100,101,108,101,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,102,108,117,115,104,66,97,116,99,104,40,41,32,123,125,44,10,32,32,101,110,100,66,97,116,99,104,40,41,32,123,125,44,10,32,32,99,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,32,123,10,32,32,32,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,67,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,59,10,32,32,125,44,10,32,32,115,101,110,100,82,101,110,100,101,114,69,114,114,111,114,40,101,114,114,111,114,41,32,123,10,32,32,32,32,105,102,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,101,114,114,111,114,59,10,32,32,32,32,125,10,32,32,125,10,125,59,125,41,59,0 }; // NOLINT diff --git a/framework/android/connector/driver/js/src/main/cpp/include/connector/js_driver_jni.h b/framework/android/connector/driver/js/src/main/cpp/include/connector/js_driver_jni.h index 522e7d28632..2f3b8b3b28a 100644 --- a/framework/android/connector/driver/js/src/main/cpp/include/connector/js_driver_jni.h +++ b/framework/android/connector/driver/js/src/main/cpp/include/connector/js_driver_jni.h @@ -88,7 +88,7 @@ void OnNativeInitEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jlong sta void OnFirstFrameEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jlong time); -void OnResourceLoadEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jstring j_uri, jlong j_start_time, jlong j_end_time); +void OnResourceLoadEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jstring j_uri, jlong j_start_time, jlong j_end_time, jlong j_ret_code, jstring j_error_msg); } } diff --git a/framework/android/connector/driver/js/src/main/cpp/src/js_driver_jni.cc b/framework/android/connector/driver/js/src/main/cpp/src/js_driver_jni.cc index a14ee04c95d..90d3a6914ff 100644 --- a/framework/android/connector/driver/js/src/main/cpp/src/js_driver_jni.cc +++ b/framework/android/connector/driver/js/src/main/cpp/src/js_driver_jni.cc @@ -114,7 +114,7 @@ REGISTER_JNI("com/openhippy/connector/JsDriver", // NOLINT(cert-err58-cpp) REGISTER_JNI("com/openhippy/connector/JsDriver", // NOLINT(cert-err58-cpp) "onResourceLoadEnd", - "(ILjava/lang/String;JJ)V", + "(ILjava/lang/String;JJJLjava/lang/String;)V", OnResourceLoadEnd) using string_view = footstone::stringview::string_view; @@ -190,16 +190,19 @@ void OnFirstFrameEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jlong tim } } -void OnResourceLoadEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jstring j_uri, jlong j_start_time, jlong j_end_time) { +void OnResourceLoadEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jstring j_uri, + jlong j_start_time, jlong j_end_time, jlong j_ret_code, jstring j_error_msg) { if (!j_uri) { return; } auto uri = JniUtils::ToStrView(j_env, j_uri); + auto ret_code = static_cast(j_ret_code); + auto error_msg = j_error_msg ? JniUtils::ToStrView(j_env, j_error_msg) : string_view(""); auto scope = GetScope(j_scope_id); auto runner = scope->GetEngine().lock()->GetJsTaskRunner(); if (runner) { std::weak_ptr weak_scope = scope; - auto task = [weak_scope, uri, j_start_time, j_end_time]() { + auto task = [weak_scope, uri, j_start_time, j_end_time, ret_code, error_msg]() { auto scope = weak_scope.lock(); if (scope) { auto entry = scope->GetPerformance()->PerformanceResource(uri); @@ -207,6 +210,9 @@ void OnResourceLoadEnd(JNIEnv* j_env, jobject j_object, jint j_scope_id, jstring entry->SetLoadSourceStart(footstone::TimePoint::FromEpochDelta(footstone::TimeDelta::FromMilliseconds(j_start_time))); entry->SetLoadSourceEnd(footstone::TimePoint::FromEpochDelta(footstone::TimeDelta::FromMilliseconds(j_end_time))); } + if (ret_code != 0) { + scope->HandleUriLoaderError(uri, ret_code, error_msg); + } } }; runner->PostTask(std::move(task)); diff --git a/framework/android/connector/driver/js/src/main/java/com/openhippy/connector/JsDriver.java b/framework/android/connector/driver/js/src/main/java/com/openhippy/connector/JsDriver.java index 560633b5f86..954391c9d19 100644 --- a/framework/android/connector/driver/js/src/main/java/com/openhippy/connector/JsDriver.java +++ b/framework/android/connector/driver/js/src/main/java/com/openhippy/connector/JsDriver.java @@ -77,8 +77,9 @@ public void recordFirstFrameEndTime(long time) { onFirstFrameEnd(mInstanceId, time); } - public void recordResourceLoadEndTime(@NonNull String uri, long startTime, long endTime) { - onResourceLoadEnd(mInstanceId, uri, startTime, endTime); + public void doRecordResourceLoadResult(@NonNull String uri, long startTime, long endTime, + long retCode, @Nullable String errorMsg) { + onResourceLoadEnd(mInstanceId, uri, startTime, endTime, retCode, errorMsg); } public void onResourceReady(ByteBuffer output, long resId) { @@ -109,7 +110,8 @@ public void callFunction(String action, NativeCallback callback, public boolean runScriptFromUri(String uri, AssetManager assetManager, boolean canUseCodeCache, String codeCacheDir, int vfsId, NativeCallback callback) { - return runScriptFromUri(mInstanceId, uri, assetManager, canUseCodeCache, codeCacheDir, vfsId, + return runScriptFromUri(mInstanceId, uri, assetManager, canUseCodeCache, codeCacheDir, + vfsId, callback); } @@ -146,7 +148,8 @@ private native int onCreate(byte[] globalConfig, boolean useLowMemoryMode, private native void onDestroy(int instanceId, boolean useLowMemoryMode, boolean isReload, NativeCallback callback); - private native void loadInstance(int instanceId, byte[] buffer, int offset, int length, NativeCallback callback); + private native void loadInstance(int instanceId, byte[] buffer, int offset, int length, + NativeCallback callback); private native void unloadInstance(int instanceId, byte[] buffer, int offset, int length); @@ -165,5 +168,6 @@ private native void callFunction(int instanceId, String action, NativeCallback c private native void onFirstFrameEnd(int instanceId, long time); - private native void onResourceLoadEnd(int instanceId, String uri, long startTime, long endTime); + private native void onResourceLoadEnd(int instanceId, String uri, long startTime, long endTime, + long retCode, String errorMsg); } diff --git a/framework/android/src/main/java/com/tencent/mtt/hippy/PerformanceProcessor.java b/framework/android/src/main/java/com/tencent/mtt/hippy/PerformanceProcessor.java index f2bb7ce0de8..f1fc19516d2 100644 --- a/framework/android/src/main/java/com/tencent/mtt/hippy/PerformanceProcessor.java +++ b/framework/android/src/main/java/com/tencent/mtt/hippy/PerformanceProcessor.java @@ -58,8 +58,8 @@ public void handleResponseAsync(@NonNull ResourceDataHolder holder, @NonNull ProcessorCallback callback) { HippyEngineContext engineContext = mEngineContextRef.get(); if (shouldDoRecord(holder) && engineContext != null) { - engineContext.getJsDriver().recordResourceLoadEndTime(holder.uri, holder.loadStartTime, - System.currentTimeMillis()); + engineContext.getJsDriver().doRecordResourceLoadResult(holder.uri, holder.loadStartTime, + System.currentTimeMillis(), holder.resultCode, holder.errorMessage); } super.handleResponseAsync(holder, callback); } @@ -68,8 +68,8 @@ public void handleResponseAsync(@NonNull ResourceDataHolder holder, public void handleResponseSync(@NonNull ResourceDataHolder holder) { HippyEngineContext engineContext = mEngineContextRef.get(); if (shouldDoRecord(holder) && engineContext != null) { - engineContext.getJsDriver().recordResourceLoadEndTime(holder.uri, holder.loadStartTime, - System.currentTimeMillis()); + engineContext.getJsDriver().doRecordResourceLoadResult(holder.uri, holder.loadStartTime, + System.currentTimeMillis(), holder.resultCode, holder.errorMessage); } super.handleResponseSync(holder); } diff --git a/framework/voltron/core/src/bridge/native_source_code_flutter.cc b/framework/voltron/core/src/bridge/native_source_code_flutter.cc index 8454e18acaa..b1589c606cd 100644 --- a/framework/voltron/core/src/bridge/native_source_code_flutter.cc +++ b/framework/voltron/core/src/bridge/native_source_code_flutter.cc @@ -28,8 +28,8 @@ namespace { const uint8_t k_bootstrap[] = { 40,102,117,110,99,116,105,111,110,32,40,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,10,32,32,103,108,111,98,97,108,46,72,105,112,112,121,32,61,32,103,108,111,98,97,108,46,72,105,112,112,121,32,124,124,32,123,125,59,10,32,32,99,111,110,115,116,32,98,105,110,100,105,110,103,79,98,106,32,61,32,123,125,59,10,32,32,99,111,110,115,116,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,32,61,32,102,117,110,99,116,105,111,110,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,33,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,32,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,61,32,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,59,10,32,32,125,59,10,32,32,99,111,110,115,116,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,32,32,99,108,97,115,115,32,78,97,116,105,118,101,77,111,100,117,108,101,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,102,105,108,101,110,97,109,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,32,32,116,104,105,115,46,101,120,112,111,114,116,115,32,61,32,123,125,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,114,101,113,117,105,114,101,40,102,105,108,101,80,97,116,104,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,105,108,101,80,97,116,104,65,114,114,32,61,32,102,105,108,101,80,97,116,104,46,115,112,108,105,116,40,39,47,39,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,80,97,116,104,65,114,114,91,102,105,108,101,80,97,116,104,65,114,114,46,108,101,110,103,116,104,32,45,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,97,99,104,101,100,32,61,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,102,105,108,101,110,97,109,101,93,59,10,32,32,32,32,32,32,105,102,32,40,99,97,99,104,101,100,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,97,99,104,101,100,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,116,105,118,101,77,111,100,117,108,101,32,61,32,110,101,119,32,78,97,116,105,118,101,77,111,100,117,108,101,40,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,40,41,59,10,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,111,109,112,105,108,101,40,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,110,97,116,105,118,101,77,111,100,117,108,101,46,101,120,112,111,114,116,115,59,10,32,32,32,32,125,10,32,32,32,32,99,111,109,112,105,108,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,110,32,61,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,46,82,117,110,73,110,84,104,105,115,67,111,110,116,101,120,116,40,116,104,105,115,46,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,102,110,40,116,104,105,115,46,101,120,112,111,114,116,115,44,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,99,104,101,40,41,32,123,10,32,32,32,32,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,116,104,105,115,46,102,105,108,101,110,97,109,101,93,32,61,32,116,104,105,115,59,10,32,32,32,32,125,10,32,32,125,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,32,61,32,123,125,59,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,104,105,112,112,121,46,106,115,39,41,59,10,125,41,59,0 }; // NOLINT const uint8_t k_hippy[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,79,116,104,101,114,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,121,110,97,109,105,99,76,111,97,100,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,80,108,97,116,102,111,114,109,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,102,108,117,116,116,101,114,47,106,115,50,110,97,116,105,118,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,84,105,109,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,67,111,110,115,111,108,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,78,101,116,119,111,114,107,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,83,116,111,114,97,103,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,102,108,117,116,116,101,114,47,68,105,109,101,110,115,105,111,110,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,116,105,108,115,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,102,108,117,116,116,101,114,47,103,108,111,98,97,108,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,102,108,117,116,116,101,114,47,110,97,116,105,118,101,50,106,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,69,118,101,110,116,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,46,106,115,39,41,59,10,103,108,111,98,97,108,46,108,111,99,97,108,83,116,111,114,97,103,101,32,61,32,72,105,112,112,121,46,97,115,121,110,99,83,116,111,114,97,103,101,59,125,41,59,0 }; // NOLINT - const uint8_t k_ExceptionHandle[] = { 40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,114,114,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,39,117,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,39,44,32,101,114,114,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,114,114,41,59,10,32,32,125,10,125,41,59,0 }; // NOLINT - const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,108,101,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,46,46,46,97,114,103,115,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,117,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,39,32,38,38,32,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,46,46,46,97,114,103,115,41,41,59,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,125,41,59,0 }; // NOLINT + const uint8_t k_ExceptionHandle[] = { 40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,10,125,41,59,0 }; // NOLINT + const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,99,108,97,115,115,32,69,114,114,111,114,69,118,101,110,116,32,123,10,32,32,99,111,110,115,116,114,117,99,116,111,114,40,109,101,115,115,97,103,101,44,32,102,105,108,101,110,97,109,101,44,32,108,105,110,101,110,111,44,32,99,111,108,110,111,44,32,101,114,114,111,114,41,32,123,10,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,109,101,115,115,97,103,101,59,10,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,116,104,105,115,46,108,105,110,101,110,111,32,61,32,108,105,110,101,110,111,59,10,32,32,32,32,116,104,105,115,46,99,111,108,110,111,32,61,32,99,111,108,110,111,59,10,32,32,32,32,116,104,105,115,46,101,114,114,111,114,32,61,32,101,114,114,111,114,59,10,32,32,125,10,125,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,108,101,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,46,46,46,97,114,103,115,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,108,101,116,32,105,115,69,114,114,32,61,32,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,101,114,114,111,114,39,59,10,32,32,108,101,116,32,101,114,114,79,98,106,32,61,32,110,101,119,32,69,114,114,111,114,40,41,59,10,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,108,101,116,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,105,102,32,40,33,40,97,114,114,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,41,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,109,117,115,116,32,98,101,32,97,114,114,97,121,39,41,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,97,114,114,46,108,101,110,103,116,104,32,33,61,61,32,53,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,53,39,41,59,10,32,32,32,32,125,10,32,32,32,32,101,114,114,79,98,106,46,109,101,115,115,97,103,101,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,97,114,114,91,52,93,41,59,10,32,32,32,32,105,102,32,40,72,105,112,112,121,46,111,110,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,72,105,112,112,121,46,111,110,101,114,114,111,114,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,32,32,108,101,116,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,32,32,108,101,116,32,101,118,101,110,116,32,61,32,110,101,119,32,69,114,114,111,114,69,118,101,110,116,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,101,118,101,110,116,41,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,46,46,46,97,114,103,115,41,41,59,10,32,32,32,32,125,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,10,72,105,112,112,121,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,110,59,10,72,105,112,112,121,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,102,102,59,10,72,105,112,112,121,46,111,110,101,114,114,111,114,32,61,32,117,110,100,101,102,105,110,101,100,59,125,41,59,0 }; // NOLINT const uint8_t k_DynamicLoad[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,103,108,111,98,97,108,46,100,121,110,97,109,105,99,76,111,97,100,32,61,32,40,112,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,32,61,62,32,123,10,32,32,108,101,116,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,112,97,116,104,32,124,124,32,39,39,59,10,32,32,99,111,110,115,116,32,105,115,83,99,104,101,109,97,32,61,32,47,94,40,46,43,58,92,47,92,47,41,124,94,40,92,47,92,47,41,47,46,116,101,115,116,40,112,97,116,104,41,59,10,32,32,105,102,32,40,33,105,115,83,99,104,101,109,97,41,32,123,10,32,32,32,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,103,108,111,98,97,108,46,95,95,72,73,80,80,89,67,85,82,68,73,82,95,95,32,43,32,112,97,116,104,59,10,32,32,125,10,32,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,46,76,111,97,100,85,110,116,114,117,115,116,101,100,67,111,110,116,101,110,116,40,114,101,113,117,101,115,116,80,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,59,10,125,59,125,41,59,0 }; // NOLINT const uint8_t k_Platform[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,32,61,32,123,125,59,10,105,102,32,40,116,121,112,101,111,102,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,99,111,110,115,116,32,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,123,10,32,32,32,32,99,111,117,110,116,114,121,58,32,39,39,44,10,32,32,32,32,108,97,110,103,117,97,103,101,58,32,39,39,44,10,32,32,32,32,100,105,114,101,99,116,105,111,110,58,32,48,10,32,32,125,59,10,32,32,105,102,32,40,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,41,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,68,101,118,105,99,101,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,68,101,118,105,99,101,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,10,125,125,41,59,0 }; // NOLINT const uint8_t k_UIManagerModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,39,41,59,10,72,105,112,112,121,46,100,111,99,117,109,101,110,116,32,61,32,123,10,32,32,99,114,101,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,117,112,100,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,100,101,108,101,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,102,108,117,115,104,66,97,116,99,104,40,41,32,123,125,44,10,32,32,101,110,100,66,97,116,99,104,40,41,32,123,125,44,10,32,32,99,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,32,123,10,32,32,32,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,67,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,59,10,32,32,125,44,10,32,32,115,101,110,100,82,101,110,100,101,114,69,114,114,111,114,40,101,114,114,111,114,41,32,123,10,32,32,32,32,105,102,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,101,114,114,111,114,59,10,32,32,32,32,125,10,32,32,125,10,125,59,125,41,59,0 }; // NOLINT diff --git a/modules/vfs/ios/VFSUriLoader.mm b/modules/vfs/ios/VFSUriLoader.mm index 438be059332..d393244f29a 100644 --- a/modules/vfs/ios/VFSUriLoader.mm +++ b/modules/vfs/ios/VFSUriLoader.mm @@ -145,7 +145,8 @@ VFSHandlerCompletionBlock callback = ^(NSData *data, NSURLResponse *response, NSError *error) { auto endPoint = footstone::TimePoint::SystemNow(); string_view uri(NSStringToU16StringView([[response URL] absoluteString])); - DoRequestTimePerformanceCallback(uri, startPoint, endPoint); + string_view msg([error.localizedDescription UTF8String]?:""); + DoRequestResultCallback(uri, startPoint, endPoint, static_cast(error.code), msg); if (completion) { completion(data, response, error); } diff --git a/modules/vfs/native/include/vfs/uri_loader.h b/modules/vfs/native/include/vfs/uri_loader.h index 4d784b5ad5d..4947e1e4cd7 100644 --- a/modules/vfs/native/include/vfs/uri_loader.h +++ b/modules/vfs/native/include/vfs/uri_loader.h @@ -42,7 +42,9 @@ class UriLoader: public std::enable_shared_from_this { using WorkerManager = footstone::WorkerManager; using bytes = vfs::UriHandler::bytes; using RetCode = vfs::JobResponse::RetCode; - using RequestTimePerformanceCallback = std::function; + using RequestResultCallback = std::function; UriLoader(); virtual ~UriLoader() = default; @@ -75,10 +77,12 @@ class UriLoader: public std::enable_shared_from_this { void Terminate(); - void SetRequestTimePerformanceCallback(const RequestTimePerformanceCallback& cb) { on_request_time_performance_ = cb; } + void SetRequestResultCallback(const RequestResultCallback& cb) { on_request_result_ = cb; } protected: - void DoRequestTimePerformanceCallback(const string_view& uri, const TimePoint& start, const TimePoint& end); + void DoRequestResultCallback(const string_view& uri, + const TimePoint& start, const TimePoint& end, + const int32_t ret_code, const string_view& error_msg); private: std::shared_ptr GetNextHandler(std::list>::iterator& cur, @@ -94,7 +98,7 @@ class UriLoader: public std::enable_shared_from_this { std::list> interceptor_; std::mutex mutex_; - RequestTimePerformanceCallback on_request_time_performance_; + RequestResultCallback on_request_result_; }; } diff --git a/modules/vfs/native/src/uri_loader.cc b/modules/vfs/native/src/uri_loader.cc index fa2cae7121e..cfd2f7ad929 100644 --- a/modules/vfs/native/src/uri_loader.cc +++ b/modules/vfs/native/src/uri_loader.cc @@ -107,11 +107,12 @@ void UriLoader::RequestUntrustedContent(const std::shared_ptr& reque std::function()> next = [this, &cur_it, end_it]() -> std::shared_ptr { return this->GetNextHandler(cur_it, end_it); }; - (*cur_it)->RequestUntrustedContent(request, std::move(response), next); + (*cur_it)->RequestUntrustedContent(request, response, next); // performance end time auto end_time = TimePoint::SystemNow(); - DoRequestTimePerformanceCallback(request->GetUri(), start_time, end_time); + DoRequestResultCallback(request->GetUri(), start_time, end_time, + static_cast(response->GetRetCode()), response->GetErrorMessage()); } void UriLoader::RequestUntrustedContent(const std::shared_ptr& request, @@ -154,7 +155,8 @@ void UriLoader::RequestUntrustedContent(const std::shared_ptr& reque // performance end time auto end_time = TimePoint::SystemNow(); - self->DoRequestTimePerformanceCallback(request->GetUri(), start_time, end_time); + self->DoRequestResultCallback(request->GetUri(), start_time, end_time, + static_cast(response->GetRetCode()), response->GetErrorMessage()); orig_cb(response); }; @@ -182,9 +184,11 @@ std::string UriLoader::GetScheme(const UriLoader::string_view& uri) { return {}; } -void UriLoader::DoRequestTimePerformanceCallback(const string_view& uri, const TimePoint& start, const TimePoint& end) { - if (on_request_time_performance_ != nullptr) { - on_request_time_performance_(uri, start, end); +void UriLoader::DoRequestResultCallback(const string_view& uri, + const TimePoint& start, const TimePoint& end, + const int32_t ret_code, const string_view& error_msg) { + if (on_request_result_ != nullptr) { + on_request_result_(uri, start, end, ret_code, error_msg); } }