diff --git a/src/test/app/SetJSHook_test.cpp b/src/test/app/SetJSHook_test.cpp index 5258e655d..625793bcc 100644 --- a/src/test/app/SetJSHook_test.cpp +++ b/src/test/app/SetJSHook_test.cpp @@ -1505,6 +1505,3003 @@ public: env.close(); } + void + test_float_compare(FeatureBitset features) + { + testcase("Test float_compare"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x15U, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x1aU, + 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, + 0x4cU, 0x4fU, 0x41U, 0x54U, 0x04U, 0x45U, 0x51U, 0x04U, 0x4cU, + 0x54U, 0x04U, 0x47U, 0x54U, 0x06U, 0x4cU, 0x54U, 0x45U, 0x06U, + 0x47U, 0x54U, 0x45U, 0x06U, 0x4eU, 0x45U, 0x51U, 0x08U, 0x48U, + 0x6fU, 0x6fU, 0x6bU, 0x28U, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, + 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, 0x30U, 0x2dU, + 0x67U, 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, + 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, + 0x61U, 0x72U, 0x67U, 0x1cU, 0x6cU, 0x61U, 0x72U, 0x67U, 0x65U, + 0x5fU, 0x6eU, 0x65U, 0x67U, 0x61U, 0x74U, 0x69U, 0x76U, 0x65U, + 0x1cU, 0x73U, 0x6dU, 0x61U, 0x6cU, 0x6cU, 0x5fU, 0x6eU, 0x65U, + 0x67U, 0x61U, 0x74U, 0x69U, 0x76U, 0x65U, 0x1cU, 0x73U, 0x6dU, + 0x61U, 0x6cU, 0x6cU, 0x5fU, 0x70U, 0x6fU, 0x73U, 0x69U, 0x74U, + 0x69U, 0x76U, 0x65U, 0x1cU, 0x6cU, 0x61U, 0x72U, 0x67U, 0x65U, + 0x5fU, 0x70U, 0x6fU, 0x73U, 0x69U, 0x74U, 0x69U, 0x76U, 0x65U, + 0x1aU, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x63U, 0x6fU, + 0x6dU, 0x70U, 0x61U, 0x72U, 0x65U, 0x12U, 0x66U, 0x6cU, 0x6fU, + 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x0cU, 0x61U, 0x63U, + 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, + 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0xc5U, 0x01U, + 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3fU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3fU, 0xe8U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe9U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3fU, 0xeaU, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3fU, 0xebU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xecU, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3eU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe8U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe9U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3eU, 0xeaU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xebU, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xecU, 0x00U, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, + 0xb8U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xb9U, 0x39U, 0xe7U, + 0x00U, 0x00U, 0x00U, 0xbbU, 0x39U, 0xe8U, 0x00U, 0x00U, 0x00U, + 0xbaU, 0x39U, 0xe9U, 0x00U, 0x00U, 0x00U, 0xbcU, 0x39U, 0xeaU, + 0x00U, 0x00U, 0x00U, 0xbdU, 0x39U, 0xebU, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x01U, 0x4dU, 0xecU, 0x00U, 0x00U, 0x00U, 0x39U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xdaU, 0x03U, 0x01U, 0x11U, + 0x00U, 0x3cU, 0x01U, 0x00U, 0x3cU, 0x0cU, 0x3fU, 0x26U, 0x2bU, + 0x21U, 0x21U, 0x21U, 0x21U, 0x21U, 0x00U, 0x06U, 0x6eU, 0x0cU, + 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, + 0x00U, 0x16U, 0x01U, 0xdcU, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, + 0x97U, 0xecU, 0x12U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xd3U, + 0x42U, 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, + 0xf2U, 0x0eU, 0x29U, 0xdaU, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, + 0x59U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x04U, 0x01U, + 0x05U, 0x00U, 0x04U, 0xa7U, 0x08U, 0x05U, 0xe0U, 0x03U, 0x00U, + 0x01U, 0x00U, 0xe2U, 0x03U, 0x04U, 0x00U, 0x30U, 0xe4U, 0x03U, + 0x04U, 0x01U, 0x30U, 0xe6U, 0x03U, 0x04U, 0x02U, 0x30U, 0xe8U, + 0x03U, 0x04U, 0x03U, 0x30U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0xb6U, 0xbfU, 0xfeU, 0x38U, + 0xe6U, 0x00U, 0x00U, 0x00U, 0xf3U, 0x38U, 0xe5U, 0x00U, 0x00U, + 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xbfU, 0xfeU, 0x38U, + 0xe6U, 0x00U, 0x00U, 0x00U, 0xf3U, 0x38U, 0xe5U, 0x00U, 0x00U, + 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0xb6U, 0xb7U, 0x38U, 0xe6U, + 0x00U, 0x00U, 0x00U, 0xf3U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, + 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xf5U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xb7U, 0xbfU, 0x08U, 0xf3U, + 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, + 0xb7U, 0xb7U, 0xbfU, 0x10U, 0xf3U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xb7U, 0xbeU, 0x96U, + 0xf3U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xaaU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, + 0x00U, 0xb7U, 0xb7U, 0xbeU, 0xf3U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xb7U, 0xb7U, 0xf3U, + 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x61U, + 0x03U, 0x00U, 0x61U, 0x02U, 0x00U, 0x61U, 0x01U, 0x00U, 0x61U, + 0x00U, 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, + 0x00U, 0x00U, 0x00U, 0xb7U, 0xb7U, 0x38U, 0xe6U, 0x00U, 0x00U, + 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0xb7U, 0x38U, 0xf6U, 0x00U, + 0x00U, 0x00U, 0xf0U, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0xf3U, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, + 0x00U, 0x00U, 0x00U, 0xb7U, 0x38U, 0xf6U, 0x00U, 0x00U, 0x00U, + 0xf0U, 0x38U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, + 0x00U, 0x00U, 0x00U, 0xb7U, 0x38U, 0xf6U, 0x00U, 0x00U, 0x00U, + 0xf0U, 0x38U, 0xeaU, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, + 0x00U, 0x00U, 0x00U, 0xb7U, 0x38U, 0xf6U, 0x00U, 0x00U, 0x00U, + 0xf0U, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, + 0x00U, 0xb7U, 0x38U, 0xf6U, 0x00U, 0x00U, 0x00U, 0xf0U, 0x38U, + 0xebU, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0xc1U, 0x00U, + 0xcbU, 0xc1U, 0x01U, 0xccU, 0xc1U, 0x02U, 0xcdU, 0xc1U, 0x03U, + 0xceU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x38U, + 0xe7U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x38U, 0xe9U, 0x00U, 0x00U, + 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x62U, + 0x01U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x38U, + 0xe8U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, + 0x00U, 0x62U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x38U, 0xeaU, + 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, + 0x62U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x38U, 0xe6U, 0x00U, + 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x00U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x62U, + 0x03U, 0x00U, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, + 0xebU, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x00U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, 0xe8U, 0x00U, 0x00U, + 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, + 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, 0xeaU, 0x00U, 0x00U, 0x00U, + 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, + 0x62U, 0x03U, 0x00U, 0x38U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xf3U, + 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x62U, + 0x02U, 0x00U, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x62U, 0x02U, 0x00U, 0x38U, + 0xe9U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x01U, 0x00U, 0x62U, 0x02U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x62U, + 0x02U, 0x00U, 0x38U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, + 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x62U, 0x02U, + 0x00U, 0x38U, 0xeaU, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, + 0x00U, 0x00U, 0x00U, 0x62U, 0x01U, 0x00U, 0x62U, 0x02U, 0x00U, + 0x38U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, + 0xe7U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x02U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, 0xe9U, 0x00U, 0x00U, + 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0x62U, + 0x03U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, + 0xe8U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, + 0x00U, 0x62U, 0x02U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, 0xeaU, + 0x00U, 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, + 0x62U, 0x02U, 0x00U, 0x62U, 0x03U, 0x00U, 0x38U, 0xe6U, 0x00U, + 0x00U, 0x00U, 0xf3U, 0xb7U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x01U, 0x00U, 0xb7U, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0xf3U, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, + 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0xb7U, 0x38U, 0xe7U, + 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x62U, 0x02U, + 0x00U, 0xb7U, 0x38U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xf3U, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0x62U, 0x03U, 0x00U, 0xb7U, 0x38U, 0xe8U, 0x00U, + 0x00U, 0x00U, 0xf3U, 0xf1U, 0x0eU, 0x38U, 0xf7U, 0x00U, 0x00U, + 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xdaU, 0x03U, 0x0fU, 0x31U, + 0x04U, 0x8aU, 0x8aU, 0x87U, 0x76U, 0x76U, 0x76U, 0x71U, 0x72U, + 0x3fU, 0x67U, 0x80U, 0x8aU, 0x8aU, 0x80U, 0x80U, 0x12U, 0x12U, + 0x12U, 0x12U, 0x7bU, 0x7bU, 0x7bU, 0x85U, 0x85U, 0x85U, 0x7bU, + 0x7bU, 0x7bU, 0x85U, 0x85U, 0x85U, 0x7bU, 0x7bU, 0x7bU, 0x85U, + 0x85U, 0x85U, 0x7bU, 0x7bU, 0x7bU, 0x85U, 0x85U, 0x85U, 0x71U, + 0x71U, 0x71U, 0x72U, 0x2bU, 0x06U, 0xa4U, 0xa1U, 0x11U, 0x53U, + 0x80U, 0x85U, 0xb6U, 0x43U, 0x06U, 0x06U, 0xb3U, 0xd3U, 0xedU, + 0x15U, 0xc4U, 0xb2U, 0x43U, 0x06U, 0x3fU, 0x30U, 0xf0U, 0x16U, + 0xf6U, 0xd2U, 0xd3U, 0x43U, 0x06U, 0xd3U, 0x87U, 0x96U, 0x66U, + 0xdfU, 0xe2U, 0xdaU, 0x43U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var INVALID_FLOAT = -10024 + // var EQ = 1 + // var LT = 2 + // var GT = 4 + // var LTE = 3 + // var GTE = 5 + // var NEQ = 6 + // var Hook = (arg) => { + // { + // ASSERT(float_compare(-1, -2, EQ) == INVALID_FLOAT) + // ASSERT(float_compare(0, -2, EQ) == INVALID_FLOAT) + // ASSERT(float_compare(-1, 0, EQ) == INVALID_FLOAT) + // } + // { + // ASSERT(float_compare(0, 0, 8) == INVALID_ARGUMENT) + // ASSERT(float_compare(0, 0, 16) == INVALID_ARGUMENT) + // ASSERT(float_compare(0, 0, ~7) == INVALID_ARGUMENT) + // ASSERT(float_compare(0, 0, 7) == INVALID_ARGUMENT) + // ASSERT(float_compare(0, 0, 0) == INVALID_ARGUMENT) + // } + // { + // ASSERT(float_compare(0, 0, EQ)) + // ASSERT(float_compare(0, float_one(), LT)) + // ASSERT(float_compare(0, float_one(), GT) == 0) + // ASSERT(float_compare(0, float_one(), GTE) == 0) + // ASSERT(float_compare(0, float_one(), LTE)) + // ASSERT(float_compare(0, float_one(), NEQ)) + // const large_negative = 1622844335003378700 + // const small_negative = 1352229899321149e3 + // const small_positive = 5713898440837103e3 + // const large_positive = 7749425685711506e3 + // ASSERT(float_compare(large_negative, small_negative, LT)) + // ASSERT(float_compare(large_negative, small_negative, LTE)) + // ASSERT(float_compare(large_negative, small_negative, NEQ)) + // ASSERT(float_compare(large_negative, small_negative, GT) == 0) + // ASSERT(float_compare(large_negative, small_negative, GTE) == 0) + // ASSERT(float_compare(large_negative, small_negative, EQ) == 0) + // ASSERT(float_compare(large_negative, large_positive, LT)) + // ASSERT(float_compare(large_negative, large_positive, LTE)) + // ASSERT(float_compare(large_negative, large_positive, NEQ)) + // ASSERT(float_compare(large_negative, large_positive, GT) == 0) + // ASSERT(float_compare(large_negative, large_positive, GTE) == 0) + // ASSERT(float_compare(large_negative, large_positive, EQ) == 0) + // ASSERT(float_compare(small_negative, small_positive, LT)) + // ASSERT(float_compare(small_negative, small_positive, LTE)) + // ASSERT(float_compare(small_negative, small_positive, NEQ)) + // ASSERT(float_compare(small_negative, small_positive, GT) == 0) + // ASSERT(float_compare(small_negative, small_positive, GTE) == 0) + // ASSERT(float_compare(small_negative, small_positive, EQ) == 0) + // ASSERT(float_compare(small_positive, large_positive, LT)) + // ASSERT(float_compare(small_positive, large_positive, LTE)) + // ASSERT(float_compare(small_positive, large_positive, NEQ)) + // ASSERT(float_compare(small_positive, large_positive, GT) == 0) + // ASSERT(float_compare(small_positive, large_positive, GTE) == 0) + // ASSERT(float_compare(small_positive, large_positive, EQ) == 0) + // ASSERT(float_compare(small_negative, 0, LT)) + // ASSERT(float_compare(large_negative, 0, LT)) + // ASSERT(float_compare(small_positive, 0, GT)) + // ASSERT(float_compare(large_positive, 0, GT)) + // } + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_compare"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_compare"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_divide(FeatureBitset features) + { + testcase("Test float_divide"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x21U, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x0aU, 0x66U, 0x72U, 0x65U, 0x78U, 0x70U, 0x1aU, 0x66U, 0x6cU, + 0x6fU, 0x61U, 0x74U, 0x4dU, 0x61U, 0x6eU, 0x74U, 0x69U, 0x73U, + 0x73U, 0x61U, 0x1aU, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x45U, + 0x78U, 0x70U, 0x6fU, 0x6eU, 0x65U, 0x6eU, 0x74U, 0x18U, 0x41U, + 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, 0x5fU, 0x45U, 0x51U, 0x55U, + 0x41U, 0x4cU, 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, + 0x44U, 0x5fU, 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, + 0x54U, 0x20U, 0x44U, 0x49U, 0x56U, 0x49U, 0x53U, 0x49U, 0x4fU, + 0x4eU, 0x5fU, 0x42U, 0x59U, 0x5fU, 0x5aU, 0x45U, 0x52U, 0x4fU, + 0x18U, 0x58U, 0x46U, 0x4cU, 0x5fU, 0x4fU, 0x56U, 0x45U, 0x52U, + 0x46U, 0x4cU, 0x4fU, 0x57U, 0x1aU, 0x49U, 0x4eU, 0x56U, 0x41U, + 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, 0x4cU, 0x4fU, 0x41U, 0x54U, + 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x28U, 0x77U, 0x61U, 0x73U, + 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, + 0x31U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, + 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, + 0x6bU, 0x08U, 0x64U, 0x61U, 0x74U, 0x61U, 0x08U, 0x62U, 0x69U, + 0x74U, 0x73U, 0x10U, 0x65U, 0x78U, 0x70U, 0x6fU, 0x6eU, 0x65U, + 0x6eU, 0x74U, 0x10U, 0x6dU, 0x61U, 0x6eU, 0x74U, 0x69U, 0x73U, + 0x73U, 0x61U, 0x14U, 0x73U, 0x65U, 0x74U, 0x46U, 0x6cU, 0x6fU, + 0x61U, 0x74U, 0x36U, 0x34U, 0x12U, 0x67U, 0x65U, 0x74U, 0x55U, + 0x69U, 0x6eU, 0x74U, 0x33U, 0x32U, 0x06U, 0x70U, 0x6fU, 0x77U, + 0x02U, 0x79U, 0x04U, 0x70U, 0x78U, 0x04U, 0x70U, 0x79U, 0x04U, + 0x6dU, 0x78U, 0x04U, 0x6dU, 0x79U, 0x0eU, 0x64U, 0x69U, 0x66U, + 0x66U, 0x65U, 0x78U, 0x70U, 0x0eU, 0x64U, 0x69U, 0x66U, 0x66U, + 0x6dU, 0x61U, 0x6eU, 0x06U, 0x61U, 0x62U, 0x73U, 0x06U, 0x61U, + 0x72U, 0x67U, 0x18U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, + 0x64U, 0x69U, 0x76U, 0x69U, 0x64U, 0x65U, 0x12U, 0x66U, 0x6cU, + 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x18U, 0x66U, + 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6eU, 0x65U, 0x67U, 0x61U, + 0x74U, 0x65U, 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, + 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, + 0x01U, 0x00U, 0x06U, 0xb7U, 0x01U, 0x01U, 0xa4U, 0x01U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe4U, 0x00U, 0x00U, 0x00U, 0x40U, 0x3fU, 0xe5U, 0x00U, 0x00U, + 0x00U, 0x40U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x40U, 0x3fU, + 0xe7U, 0x00U, 0x00U, 0x00U, 0x40U, 0x3fU, 0xe8U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe9U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xeaU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xebU, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xecU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x01U, 0x40U, 0xe4U, + 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x02U, 0x40U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0x00U, 0xc2U, 0x03U, 0x40U, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0xc2U, 0x04U, 0x40U, 0xe7U, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3eU, 0xe8U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe9U, + 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xeaU, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3eU, 0xebU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xecU, + 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, + 0x39U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xe7U, 0x39U, 0xe9U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xe2U, 0x39U, 0xeaU, 0x00U, 0x00U, + 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xebU, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x05U, 0x4dU, 0xecU, 0x00U, 0x00U, 0x00U, 0x39U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xdaU, 0x03U, 0x01U, 0x10U, + 0x00U, 0x3cU, 0x01U, 0x00U, 0x44U, 0x0cU, 0x00U, 0x0cU, 0x4cU, + 0x26U, 0x26U, 0x26U, 0x00U, 0x08U, 0xb8U, 0x03U, 0x0cU, 0x02U, + 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, 0x00U, + 0x16U, 0x01U, 0xdcU, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, + 0xecU, 0x12U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xd3U, 0x42U, + 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, 0xf2U, + 0x0eU, 0x29U, 0xdaU, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x59U, + 0x0cU, 0x43U, 0x06U, 0x00U, 0xc8U, 0x03U, 0x01U, 0x04U, 0x01U, + 0x08U, 0x00U, 0x00U, 0xcdU, 0x01U, 0x05U, 0x82U, 0x01U, 0x00U, + 0x01U, 0x00U, 0xe0U, 0x03U, 0x01U, 0x00U, 0x30U, 0xe2U, 0x03U, + 0x01U, 0x01U, 0x20U, 0xe4U, 0x03U, 0x01U, 0x02U, 0x30U, 0xe6U, + 0x03U, 0x01U, 0x03U, 0x30U, 0x61U, 0x03U, 0x00U, 0x61U, 0x02U, + 0x00U, 0x61U, 0x01U, 0x00U, 0x61U, 0x00U, 0x00U, 0xd3U, 0x38U, + 0xb4U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf1U, 0xacU, 0xecU, 0x07U, + 0xb7U, 0xb7U, 0x26U, 0x02U, 0x00U, 0x28U, 0x38U, 0xb3U, 0x00U, + 0x00U, 0x00U, 0x11U, 0x38U, 0xa6U, 0x00U, 0x00U, 0x00U, 0x11U, + 0xbfU, 0x08U, 0x21U, 0x01U, 0x00U, 0x21U, 0x01U, 0x00U, 0xcbU, + 0x62U, 0x00U, 0x00U, 0x42U, 0xf4U, 0x00U, 0x00U, 0x00U, 0xb7U, + 0x38U, 0x9aU, 0x00U, 0x00U, 0x00U, 0xd3U, 0xf1U, 0x24U, 0x02U, + 0x00U, 0x0eU, 0x62U, 0x00U, 0x00U, 0x42U, 0xf5U, 0x00U, 0x00U, + 0x00U, 0xb7U, 0x24U, 0x01U, 0x00U, 0xbfU, 0x14U, 0xa3U, 0xc0U, + 0xffU, 0x07U, 0xaeU, 0xccU, 0x62U, 0x01U, 0x00U, 0xb7U, 0xacU, + 0xecU, 0x41U, 0x62U, 0x00U, 0x00U, 0x42U, 0xf4U, 0x00U, 0x00U, + 0x00U, 0xb7U, 0x38U, 0x9aU, 0x00U, 0x00U, 0x00U, 0xd3U, 0xf1U, + 0x38U, 0x9fU, 0x00U, 0x00U, 0x00U, 0x42U, 0xf6U, 0x00U, 0x00U, + 0x00U, 0xb9U, 0xbfU, 0x40U, 0x24U, 0x02U, 0x00U, 0x9bU, 0x24U, + 0x02U, 0x00U, 0x0eU, 0x62U, 0x00U, 0x00U, 0x42U, 0xf5U, 0x00U, + 0x00U, 0x00U, 0xb7U, 0x24U, 0x01U, 0x00U, 0xbfU, 0x14U, 0xa3U, + 0xc0U, 0xffU, 0x07U, 0xaeU, 0xbfU, 0x40U, 0x9fU, 0x11U, 0x63U, + 0x01U, 0x00U, 0x0eU, 0x62U, 0x01U, 0x00U, 0xc0U, 0xfeU, 0x03U, + 0x9fU, 0xcdU, 0x38U, 0x9aU, 0x00U, 0x00U, 0x00U, 0xd3U, 0xf1U, + 0x38U, 0x9fU, 0x00U, 0x00U, 0x00U, 0x42U, 0xf6U, 0x00U, 0x00U, + 0x00U, 0xb9U, 0x62U, 0x02U, 0x00U, 0x24U, 0x02U, 0x00U, 0x9cU, + 0xceU, 0x62U, 0x03U, 0x00U, 0x62U, 0x02U, 0x00U, 0x26U, 0x02U, + 0x00U, 0x28U, 0xdaU, 0x03U, 0x07U, 0x0aU, 0x3fU, 0x58U, 0x6cU, + 0x67U, 0x67U, 0x26U, 0xbcU, 0x8bU, 0x2bU, 0x85U, 0x0cU, 0x43U, + 0x06U, 0x00U, 0xcaU, 0x03U, 0x01U, 0x02U, 0x01U, 0x05U, 0x00U, + 0x00U, 0x43U, 0x03U, 0xdcU, 0x03U, 0x00U, 0x01U, 0x00U, 0xe6U, + 0x03U, 0x01U, 0x00U, 0x30U, 0xe4U, 0x03U, 0x01U, 0x01U, 0x30U, + 0x61U, 0x01U, 0x00U, 0x61U, 0x00U, 0x00U, 0xd3U, 0x38U, 0xb4U, + 0x00U, 0x00U, 0x00U, 0xb7U, 0xf1U, 0xacU, 0xecU, 0x03U, 0xb7U, + 0x28U, 0x06U, 0x11U, 0xf4U, 0xedU, 0x0dU, 0x7fU, 0x82U, 0x00U, + 0x0eU, 0xcbU, 0x82U, 0x00U, 0x0eU, 0xccU, 0x85U, 0xeeU, 0x0bU, + 0x0eU, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xd3U, 0xf1U, 0xeeU, + 0xebU, 0x62U, 0x00U, 0x00U, 0x38U, 0x9fU, 0x00U, 0x00U, 0x00U, + 0x42U, 0xf6U, 0x00U, 0x00U, 0x00U, 0xb9U, 0xbfU, 0x34U, 0x24U, + 0x02U, 0x00U, 0x9bU, 0x28U, 0xdaU, 0x03U, 0x14U, 0x03U, 0x21U, + 0x44U, 0x8aU, 0x0cU, 0x43U, 0x06U, 0x00U, 0xccU, 0x03U, 0x01U, + 0x02U, 0x01U, 0x05U, 0x00U, 0x00U, 0x32U, 0x03U, 0xdcU, 0x03U, + 0x00U, 0x01U, 0x00U, 0xe6U, 0x03U, 0x01U, 0x00U, 0x30U, 0xe4U, + 0x03U, 0x01U, 0x01U, 0x30U, 0x61U, 0x01U, 0x00U, 0x61U, 0x00U, + 0x00U, 0xd3U, 0x38U, 0xb4U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf1U, + 0xacU, 0xecU, 0x03U, 0xb7U, 0x28U, 0x06U, 0x11U, 0xf4U, 0xedU, + 0x0dU, 0x7fU, 0x82U, 0x00U, 0x0eU, 0xcbU, 0x82U, 0x00U, 0x0eU, + 0xccU, 0x85U, 0xeeU, 0x0bU, 0x0eU, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xd3U, 0xf1U, 0xeeU, 0xebU, 0x62U, 0x01U, 0x00U, 0x28U, + 0xdaU, 0x03U, 0x19U, 0x03U, 0x21U, 0x44U, 0x8aU, 0x0cU, 0x43U, + 0x06U, 0x00U, 0xceU, 0x03U, 0x02U, 0x06U, 0x02U, 0x03U, 0x00U, + 0x00U, 0xbeU, 0x01U, 0x08U, 0xdcU, 0x03U, 0x00U, 0x01U, 0x00U, + 0xeeU, 0x03U, 0x00U, 0x01U, 0x00U, 0xf0U, 0x03U, 0x01U, 0x00U, + 0x30U, 0xf2U, 0x03U, 0x01U, 0x01U, 0x30U, 0xf4U, 0x03U, 0x01U, + 0x02U, 0x20U, 0xf6U, 0x03U, 0x01U, 0x03U, 0x20U, 0xf8U, 0x03U, + 0x01U, 0x04U, 0x30U, 0xfaU, 0x03U, 0x01U, 0x05U, 0x20U, 0x61U, + 0x05U, 0x00U, 0x61U, 0x04U, 0x00U, 0x61U, 0x03U, 0x00U, 0x61U, + 0x02U, 0x00U, 0x61U, 0x01U, 0x00U, 0x61U, 0x00U, 0x00U, 0xd3U, + 0xcbU, 0xd4U, 0xccU, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0x62U, + 0x00U, 0x00U, 0xf1U, 0xcdU, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, + 0x62U, 0x01U, 0x00U, 0xf1U, 0xceU, 0x38U, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x62U, 0x00U, 0x00U, 0xf1U, 0x38U, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x62U, 0x01U, 0x00U, 0xf1U, 0x9fU, 0xc5U, 0x04U, 0x62U, + 0x04U, 0x00U, 0xb8U, 0xacU, 0xecU, 0x0cU, 0x62U, 0x02U, 0x00U, + 0xbfU, 0x0aU, 0x9bU, 0x11U, 0x63U, 0x02U, 0x00U, 0x0eU, 0x62U, + 0x04U, 0x00U, 0xb6U, 0xacU, 0xecU, 0x0cU, 0x62U, 0x03U, 0x00U, + 0xbfU, 0x0aU, 0x9bU, 0x11U, 0x63U, 0x03U, 0x00U, 0x0eU, 0x62U, + 0x02U, 0x00U, 0x62U, 0x03U, 0x00U, 0x9fU, 0xc5U, 0x05U, 0x62U, + 0x05U, 0x00U, 0xb7U, 0xa4U, 0xecU, 0x0bU, 0x62U, 0x05U, 0x00U, + 0xb6U, 0x9bU, 0x11U, 0x63U, 0x05U, 0x00U, 0x0eU, 0x38U, 0x9fU, + 0x00U, 0x00U, 0x00U, 0x42U, 0xfeU, 0x00U, 0x00U, 0x00U, 0x62U, + 0x04U, 0x00U, 0x24U, 0x01U, 0x00U, 0xb8U, 0xa6U, 0x11U, 0xedU, + 0x1dU, 0x0eU, 0x62U, 0x05U, 0x00U, 0x01U, 0x40U, 0x4bU, 0x4cU, + 0x00U, 0xa6U, 0x11U, 0xedU, 0x10U, 0x0eU, 0x62U, 0x02U, 0x00U, + 0xb7U, 0xa4U, 0x11U, 0xedU, 0x07U, 0x0eU, 0x62U, 0x03U, 0x00U, + 0xb7U, 0xa4U, 0xecU, 0x0eU, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, + 0x04U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, + 0xdaU, 0x03U, 0x1eU, 0x0eU, 0x5dU, 0x0dU, 0x0dU, 0x35U, 0x35U, + 0x6cU, 0x5dU, 0x5dU, 0x30U, 0x58U, 0x00U, 0x33U, 0x02U, 0x45U, + 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x05U, + 0x00U, 0x4aU, 0xa6U, 0x06U, 0x01U, 0xfeU, 0x03U, 0x00U, 0x01U, + 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, + 0x00U, 0x00U, 0x06U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, + 0xf2U, 0x38U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, + 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0x06U, 0xf2U, + 0x38U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, + 0xb6U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, + 0xebU, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0x38U, + 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xb7U, 0xf2U, 0x38U, 0xe9U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xb7U, 0x38U, + 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0xb7U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, + 0x00U, 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0x38U, + 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, 0x01U, 0x01U, + 0x00U, 0x00U, 0xf0U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0x38U, 0x01U, + 0x01U, 0x00U, 0x00U, 0xf0U, 0x38U, 0x02U, 0x01U, 0x00U, 0x00U, + 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0xf2U, 0x38U, + 0x02U, 0x01U, 0x00U, 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, + 0xf0U, 0xf1U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0x38U, 0x02U, 0x01U, + 0x00U, 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf1U, + 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, 0x02U, + 0x01U, 0x00U, 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, + 0xf1U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0x38U, 0x02U, 0x01U, 0x00U, + 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0x38U, + 0x02U, 0x01U, 0x00U, 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, + 0xf0U, 0xf1U, 0xf2U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, 0xf0U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, + 0x00U, 0x01U, 0x00U, 0x00U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, + 0xf0U, 0xc1U, 0x00U, 0xf2U, 0xc1U, 0x01U, 0xf2U, 0x0eU, 0x38U, + 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, + 0xc1U, 0x02U, 0xc1U, 0x03U, 0xf2U, 0xc1U, 0x04U, 0xf2U, 0x0eU, + 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, + 0x00U, 0xc1U, 0x05U, 0xc1U, 0x06U, 0xf2U, 0xc1U, 0x07U, 0xf2U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, + 0x00U, 0x00U, 0xc1U, 0x08U, 0x38U, 0x01U, 0x01U, 0x00U, 0x00U, + 0xf0U, 0xf2U, 0xc1U, 0x09U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, + 0x0aU, 0xc1U, 0x0bU, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, + 0xc1U, 0x0cU, 0xc1U, 0x0dU, 0xf2U, 0x38U, 0xeaU, 0x00U, 0x00U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, + 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x0eU, 0xc1U, 0x0fU, + 0xf2U, 0xc1U, 0x10U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x11U, 0xc1U, + 0x12U, 0xf2U, 0xc1U, 0x13U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, + 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x14U, + 0xc1U, 0x15U, 0xf2U, 0xc1U, 0x16U, 0xf2U, 0x0eU, 0x38U, 0xe7U, + 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, + 0x17U, 0xc1U, 0x18U, 0xf2U, 0xc1U, 0x19U, 0xf2U, 0x0eU, 0x38U, + 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, + 0xc1U, 0x1aU, 0xc1U, 0x1bU, 0xf2U, 0xc1U, 0x1cU, 0xf2U, 0x0eU, + 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, + 0x00U, 0xc1U, 0x1dU, 0xc1U, 0x1eU, 0xf2U, 0xc1U, 0x1fU, 0xf2U, + 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, + 0x00U, 0x00U, 0xc1U, 0x20U, 0xc1U, 0x21U, 0xf2U, 0xc1U, 0x22U, + 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, + 0x01U, 0x00U, 0x00U, 0xc1U, 0x23U, 0xc1U, 0x24U, 0xf2U, 0xc1U, + 0x25U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, + 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x26U, 0xc1U, 0x27U, 0xf2U, + 0xc1U, 0x28U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, + 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x29U, 0xc1U, 0x2aU, + 0xf2U, 0xc1U, 0x2bU, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x2cU, 0xc1U, + 0x2dU, 0xf2U, 0xc1U, 0x2eU, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, + 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x2fU, + 0xc1U, 0x30U, 0xf2U, 0xc1U, 0x31U, 0xf2U, 0x0eU, 0x38U, 0xe7U, + 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, + 0x32U, 0xc1U, 0x33U, 0xf2U, 0xc1U, 0x34U, 0xf2U, 0x0eU, 0x38U, + 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, + 0xc1U, 0x35U, 0xc1U, 0x36U, 0xf2U, 0xc1U, 0x37U, 0xf2U, 0x0eU, + 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, + 0x00U, 0xc1U, 0x38U, 0xc1U, 0x39U, 0xf2U, 0xc1U, 0x3aU, 0xf2U, + 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, 0x01U, + 0x00U, 0x00U, 0xc1U, 0x3bU, 0xc1U, 0x3cU, 0xf2U, 0xc1U, 0x3dU, + 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, 0x00U, + 0x01U, 0x00U, 0x00U, 0xc1U, 0x3eU, 0xc1U, 0x3fU, 0xf2U, 0xc1U, + 0x40U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0x38U, + 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x41U, 0xc1U, 0x42U, 0xf2U, + 0xc1U, 0x43U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, + 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x44U, 0xc1U, 0x45U, + 0xf2U, 0xc1U, 0x46U, 0xf2U, 0x0eU, 0x38U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc1U, 0x47U, 0xc1U, + 0x48U, 0xf2U, 0xc1U, 0x49U, 0xf2U, 0x0eU, 0x38U, 0x03U, 0x01U, + 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xdaU, 0x03U, 0x30U, + 0x88U, 0x01U, 0x03U, 0x85U, 0x85U, 0x85U, 0x85U, 0x71U, 0xa3U, + 0x1cU, 0x7bU, 0x44U, 0x0dU, 0x1cU, 0x7bU, 0x44U, 0x0dU, 0x1cU, + 0x99U, 0x26U, 0x0dU, 0x1cU, 0x54U, 0x0dU, 0x1cU, 0x40U, 0x0dU, + 0x1cU, 0x40U, 0x0dU, 0x1cU, 0x58U, 0x0dU, 0x62U, 0x1cU, 0x53U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, + 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, + 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x14U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x14U, 0x0dU, 0x2bU, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, + 0xfdU, 0x1aU, 0x87U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, + 0x49U, 0xfdU, 0x1aU, 0x87U, 0xa8U, 0x0aU, 0x88U, 0x02U, 0x07U, + 0xb1U, 0x11U, 0x79U, 0xaaU, 0xc5U, 0x08U, 0xadU, 0x0aU, 0x88U, + 0x02U, 0x07U, 0xe0U, 0xf0U, 0x44U, 0x38U, 0x88U, 0x8bU, 0xaaU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xa0U, 0xdeU, 0x62U, 0x17U, 0x83U, + 0x0cU, 0x36U, 0xabU, 0x0aU, 0x80U, 0x02U, 0x08U, 0xc0U, 0xa2U, + 0xa9U, 0xecU, 0x80U, 0x67U, 0x23U, 0xa4U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xb8U, 0xfbU, 0x64U, 0x9bU, 0x2eU, 0xa0U, 0x09U, 0xbeU, + 0x0aU, 0xfcU, 0x01U, 0x08U, 0xe0U, 0xb5U, 0xb6U, 0xeaU, 0x6eU, + 0xb0U, 0x0aU, 0x9eU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xe8U, 0x3fU, + 0x68U, 0xb0U, 0xa4U, 0xe7U, 0xc0U, 0x80U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xe8U, 0x3fU, 0x68U, 0xb0U, 0xa4U, 0xe7U, 0xc0U, 0x80U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xe8U, 0x3fU, 0x68U, 0xb0U, 0xa4U, + 0xe7U, 0xc0U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x60U, 0x2fU, + 0xb9U, 0xbeU, 0x97U, 0x10U, 0x8aU, 0xceU, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xb8U, 0xfbU, 0x64U, 0x9bU, 0x2eU, 0xa0U, 0x09U, 0xbeU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xe8U, 0x3fU, 0x68U, 0xb0U, 0xa4U, + 0xe7U, 0xc0U, 0x80U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x50U, 0xbfU, + 0x65U, 0xf5U, 0x58U, 0x8cU, 0x43U, 0xadU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0xd0U, 0x8dU, 0x59U, 0xa9U, 0xeeU, 0x1eU, 0x0eU, 0xedU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xccU, 0x2bU, 0xf3U, 0xe7U, 0x5fU, + 0x89U, 0x23U, 0xc4U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x80U, 0xcdU, + 0x57U, 0x81U, 0x75U, 0xa9U, 0x4eU, 0x89U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x68U, 0xdbU, 0xbcU, 0xd2U, 0xddU, 0x39U, 0xb0U, 0xb0U, + 0x0aU, 0x80U, 0x02U, 0x08U, 0x18U, 0x7fU, 0x73U, 0x24U, 0x6aU, + 0xcbU, 0xe7U, 0xf2U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x40U, 0x8cU, + 0x7bU, 0xc1U, 0xffU, 0x5eU, 0x8bU, 0xbeU, 0x0aU, 0x84U, 0x02U, + 0x08U, 0x20U, 0xcbU, 0xa1U, 0x91U, 0x12U, 0xbeU, 0x2eU, 0xaeU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x22U, 0xbeU, 0xb0U, 0x78U, 0xd2U, + 0x97U, 0x8aU, 0x81U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, 0x9dU, + 0x0eU, 0x9eU, 0x53U, 0xfbU, 0x4eU, 0xb0U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x44U, 0x7bU, 0xa5U, 0x56U, 0x74U, 0xe8U, 0xaeU, 0xa4U, + 0x0aU, 0x80U, 0x02U, 0x08U, 0xb0U, 0x85U, 0xabU, 0x63U, 0x5fU, + 0xa3U, 0x77U, 0xc0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xa4U, 0x1eU, + 0xb9U, 0x35U, 0x57U, 0x7bU, 0x39U, 0xa3U, 0x0aU, 0x80U, 0x02U, + 0x08U, 0xf8U, 0xd5U, 0xefU, 0x65U, 0xf7U, 0x31U, 0x11U, 0x9bU, + 0x0aU, 0x80U, 0x02U, 0x08U, 0x28U, 0x46U, 0x17U, 0xbfU, 0x17U, + 0x34U, 0xefU, 0x94U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xb2U, 0x8aU, + 0x27U, 0x82U, 0xc8U, 0xe9U, 0x88U, 0x9aU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x20U, 0x36U, 0x66U, 0xcbU, 0x90U, 0x91U, 0x94U, 0xf2U, + 0x0aU, 0xf4U, 0x01U, 0x08U, 0xc0U, 0xf9U, 0x0dU, 0x6dU, 0x43U, + 0xa4U, 0x21U, 0xd2U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xbcU, 0x07U, + 0x74U, 0x55U, 0xc2U, 0x52U, 0x8aU, 0xcbU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0xf0U, 0x20U, 0x07U, 0xc5U, 0x36U, 0x6bU, 0xf2U, 0xc2U, + 0x0aU, 0x84U, 0x02U, 0x08U, 0x54U, 0x9bU, 0xdeU, 0x5bU, 0xdbU, + 0x34U, 0x18U, 0x87U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x10U, 0xefU, + 0x6dU, 0x90U, 0x1dU, 0xceU, 0x2aU, 0x82U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xc0U, 0xa6U, 0x97U, 0x68U, 0xf0U, 0xa0U, 0xbdU, 0xb9U, + 0x0aU, 0xf8U, 0x01U, 0x08U, 0x40U, 0x69U, 0x5fU, 0x1bU, 0x48U, + 0x68U, 0xc5U, 0xf8U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x50U, 0xf0U, + 0x66U, 0xdaU, 0x67U, 0x7fU, 0x55U, 0x80U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x78U, 0x79U, 0x07U, 0x91U, 0xc2U, 0xabU, 0x45U, 0xb2U, + 0x0aU, 0xf4U, 0x01U, 0x08U, 0xc0U, 0xbeU, 0x49U, 0xeaU, 0xf1U, + 0xc7U, 0x5cU, 0xd1U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xd0U, 0x06U, + 0x44U, 0x62U, 0x3cU, 0x78U, 0xa3U, 0xa7U, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x90U, 0xeaU, 0x05U, 0x4bU, 0x93U, 0x63U, 0x1bU, 0xebU, + 0x0aU, 0xfcU, 0x01U, 0x08U, 0x80U, 0x67U, 0xe1U, 0xd2U, 0x29U, + 0x96U, 0x1cU, 0xadU, 0x0aU, 0x80U, 0x02U, 0x08U, 0xe8U, 0xe0U, + 0xeeU, 0x9eU, 0x17U, 0x99U, 0x46U, 0x96U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x74U, 0xaeU, 0x73U, 0x18U, 0x3eU, 0x77U, 0x0cU, 0xb3U, + 0x0aU, 0xfcU, 0x01U, 0x08U, 0xb0U, 0xcaU, 0x83U, 0x92U, 0x1cU, + 0x7bU, 0x50U, 0xdcU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x72U, 0x2dU, + 0xf5U, 0xe7U, 0x4eU, 0xf7U, 0x23U, 0xb1U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xb6U, 0xdfU, 0xe6U, 0x80U, 0x15U, 0x1cU, 0x27U, 0x95U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x8eU, 0x18U, 0x99U, 0x41U, 0xc8U, + 0x57U, 0xc1U, 0xc4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x78U, 0x49U, + 0x20U, 0x43U, 0xf7U, 0x60U, 0x5cU, 0xe4U, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x50U, 0x94U, 0x06U, 0x58U, 0x08U, 0xd1U, 0xcaU, 0xc2U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xfcU, 0xb0U, 0xc5U, 0xb1U, 0x1fU, + 0x5dU, 0x20U, 0xb1U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xecU, 0xd3U, + 0x0bU, 0x6fU, 0x96U, 0x2eU, 0x0bU, 0x9fU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x18U, 0xb6U, 0x3cU, 0xaeU, 0xe6U, 0xd5U, 0xb1U, 0xb8U, + 0x0aU, 0xfcU, 0x01U, 0x08U, 0x30U, 0x60U, 0xf8U, 0xf0U, 0xf0U, + 0xf7U, 0x8eU, 0xccU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x5cU, 0xa2U, + 0x93U, 0xc6U, 0xbdU, 0x5fU, 0x09U, 0xadU, 0x0aU, 0x84U, 0x02U, + 0x08U, 0x40U, 0x5cU, 0x99U, 0xe6U, 0x61U, 0xd4U, 0x3eU, 0x9fU, + 0x0aU, 0xf4U, 0x01U, 0x07U, 0x8bU, 0x47U, 0x7fU, 0x25U, 0x78U, + 0xa6U, 0xc2U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x0cU, 0x3bU, 0xe6U, + 0xdeU, 0x60U, 0x32U, 0x63U, 0x95U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x10U, 0x1eU, 0xdeU, 0x29U, 0x87U, 0x08U, 0x3aU, 0xcdU, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x78U, 0xcfU, 0x33U, 0xefU, 0x40U, 0xe8U, + 0xf2U, 0x98U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x4eU, 0x98U, 0x39U, + 0x8dU, 0xdaU, 0x2aU, 0xb7U, 0x8eU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x92U, 0xbeU, 0x5cU, 0x61U, 0xc8U, 0x20U, 0x08U, 0x95U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x80U, 0x69U, 0xacU, 0x3eU, 0xfdU, 0x39U, + 0xb0U, 0xa2U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xc0U, 0x9eU, 0x5cU, + 0x67U, 0x0fU, 0xf0U, 0xbaU, 0x8dU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x64U, 0x31U, 0xb8U, 0x69U, 0x8dU, 0xdeU, 0x43U, 0x8fU, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x70U, 0xd9U, 0x80U, 0xd4U, 0x9fU, 0xdcU, + 0xe7U, 0xacU, 0x0aU, 0x80U, 0x02U, 0x08U, 0x68U, 0x76U, 0xcdU, + 0x41U, 0xe9U, 0x15U, 0x20U, 0xdeU, 0x0aU, 0x80U, 0x02U, 0x08U, + 0x80U, 0x8bU, 0xb9U, 0x64U, 0x17U, 0xacU, 0xc5U, 0xe8U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0xb6U, 0x81U, 0x1dU, 0x10U, 0x88U, 0x88U, + 0x0bU, 0xa6U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x60U, 0x1bU, 0x31U, + 0x09U, 0x72U, 0xaaU, 0x36U, 0x8eU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x36U, 0xaeU, 0xb7U, 0xf5U, 0xfdU, 0x6bU, 0x0bU, 0x90U, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x40U, 0xaeU, 0x9dU, 0x9dU, 0x45U, 0x42U, + 0xb0U, 0xaaU}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // function frexp(value) { + // if (value === BigInt(0)) return [0, 0] + // const data = new DataView(new ArrayBuffer(8)) + // data.setFloat64(0, Number(value)) + // let bits = (data.getUint32(0) >>> 20) & 2047 + // if (bits === 0) { + // data.setFloat64(0, Number(value) * Math.pow(2, 64)) + // bits = ((data.getUint32(0) >>> 20) & 2047) - 64 + // } + // const exponent = bits - 1022 + // const mantissa = Number(value) / Math.pow(2, exponent) + // return [mantissa, exponent] + // } + // function floatMantissa(x) { + // if (x === BigInt(0)) return 0 + // const [mantissa, exponent] = frexp(x) + // return mantissa * Math.pow(2, 52) + // } + // function floatExponent(x) { + // if (x === BigInt(0)) return 0 + // const [mantissa, exponent] = frexp(x) + // return exponent + // } + // function ASSERT_EQUAL(x, y) { + // const px = x + // const py = y + // let mx = floatMantissa(px) + // let my = floatMantissa(py) + // const diffexp = floatExponent(px) - floatExponent(py) + // if (diffexp === 1) mx *= 10 + // if (diffexp === -1) my *= 10 + // let diffman = mx - my + // if (diffman < 0) diffman *= -1 + // if (Math.abs(diffexp) > 1 || diffman > 5e6 || mx < 0 || my < 0) { + // rollback('x', 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var DIVISION_BY_ZERO = -25 + // var XFL_OVERFLOW = -30 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_divide(void 0, float_one()) === INVALID_ARGUMENT) + // ASSERT(float_divide(float_one(), void 0) === INVALID_ARGUMENT) + // ASSERT(float_divide(-1, float_one()) === INVALID_FLOAT) + // ASSERT(float_divide(float_one(), 0) === DIVISION_BY_ZERO) + // ASSERT(float_divide(0, float_one()) === 0) + // ASSERT(float_divide(float_one(), float_one()) === float_one()) + // ASSERT( + // float_divide(float_one(), float_negate(float_one())) === + // float_negate(float_one()) + // ) + // ASSERT( + // float_divide(float_negate(float_one()), float_one()) === + // float_negate(float_one()) + // ) + // ASSERT( + // float_divide(float_negate(float_one()), float_negate(float_one())) === + // float_one() + // ) + // ASSERT_EQUAL( + // float_divide(float_one(), 6107881094714392576n), + // 6071852297695428608n + // ) + // ASSERT_EQUAL( + // float_divide(6234216452170766464n, 6144532891733356544n), + // 6168530993200328528n + // ) + // ASSERT_EQUAL( + // float_divide(1478426356228633688n, 6846826132016365020n), + // 711756787386903390n + // ) + // ASSERT( + // float_divide(4638834963451748340n, float_one()) === 4638834963451748340n + // ) + // ASSERT(float_divide(4638834963451748340n, 7441363081262569392n) === 0) + // ASSERT( + // float_divide(6846826132016365020n, 4638834963451748340n) === XFL_OVERFLOW + // ) + // ASSERT_EQUAL( + // float_divide( + // 3121244226425810900n, + // 2135203055881892282n + // /* -9.50403176301817e+36 */ + // ), + // 7066645550312560102n + // /* 5.001334595622374e+54 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 2473507938381460320n, + // 6365869885731270068n + // /* 6787211884129716 */ + // ), + // 2187897766692155363n + // /* -8.155547044835299e+39 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 1716271542690607496n, + // 3137794549622534856n + // /* -3.28920897266964e+92 */ + // ), + // 4667220053951274769n + // /* 1.490839995440913e-79 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 1588045991926420391n, + // 5933338827267685794n + // /* 6.601717648113058e-9 */ + // ), + // 1733591650950017206n + // /* -420939403974674.2 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 5880783758174228306n, + // 1396720886139976383n + // /* -0.00009612200909863615 */ + // ), + // 1341481714205255877n + // /* -8.416224503589061e-8 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 5567703563029955929n, + // 2184969513100691140n + // /* -5.227293453371076e+39 */ + // ), + // 236586937995245543n + // /* -2.399757371979751e-69 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 7333313065548121054n, + // 1755926008837497886n + // /* -8529353417745438 */ + // ), + // 2433647177826281173n + // /* -1.703379046213333e+53 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 1172441975040622050n, + // 6692015311011173216n + // /* 8.673463993357152e+33 */ + // ), + // 560182767210134346n + // /* -1.736413416192842e-51 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 577964843368607493n, + // 6422931182144699580n + // /* 9805312769113276000 */ + // ), + // 235721135837751035n + // /* -1.533955214485243e-69 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 6039815413139899240n, + // 2117655488444284242n + // /* -9.970862834892113e+35 */ + // ), + // 779625635892827768n + // /* -5.006499985102456e-39 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 1353563835098586141n, + // 6450909070545770298n + // /* 175440415122002600000 */ + // ), + // 992207753070525611n + // /* -1.415835049016491e-27 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 6382158843584616121n, + // 5373794957212741595n + // /* 5.504201387110363e-40 */ + // ), + // 7088854809772330055n + // /* 9.196195545910343e+55 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 2056891719200540975n, + // 1754532627802542730n + // /* -7135972382790282 */ + // ), + // 6381651867337939070n + // /* 45547949813167340 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 5730152450208688630n, + // 1663581695074866883n + // /* -62570322025.24355 */ + // ), + // 921249452789827075n + // /* -2.515128806245891e-31 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 6234301156018475310n, + // 2868710604383082256n + // /* -4.4212413754468e+77 */ + // ), + // 219156721749007916n + // /* -2.983939635224108e-70 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 2691125731495874243n, + // 7394070851520237320n + // /* 8.16746263262388e+72 */ + // ), + // 1377640825464715759n + // /* -0.000008546538744084975 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 5141867696142208039n, + // 5369434678231981897n + // /* 1.143922406350665e-40 */ + // ), + // 5861466794943198400n + // /* 6.7872793615536e-13 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 638296190872832492n, + // 5161669734904371378n + // /* 9.551761192523954e-52 */ + // ), + // 1557396184145861422n + // /* -81579.12330410798 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 2000727145906286285n, + // 2096625200460673392n + // /* -6.954973360763248e+34 */ + // ), + // 5982403476503576795n + // /* 0.000001623171355558107 */ + // ) + // ASSERT_EQUAL( + // float_divide( + // 640472838055334326n, + // 5189754252349396763n + // /* 1.607481618585371e-50 */ + // ), + // 1537425431139169736n + // /* -6201.557833201096 */ + // ) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_divide"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_divide"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_int(FeatureBitset features) + { + testcase("Test float_int"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0eU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x0eU, 0x54U, 0x4fU, 0x4fU, 0x5fU, 0x42U, 0x49U, 0x47U, 0x20U, + 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x41U, + 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x28U, 0x43U, + 0x41U, 0x4eU, 0x54U, 0x5fU, 0x52U, 0x45U, 0x54U, 0x55U, 0x52U, + 0x4eU, 0x5fU, 0x4eU, 0x45U, 0x47U, 0x41U, 0x54U, 0x49U, 0x56U, + 0x45U, 0x1aU, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, + 0x5fU, 0x46U, 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, 0x48U, 0x6fU, + 0x6fU, 0x6bU, 0x28U, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, + 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, 0x32U, 0x2dU, 0x67U, + 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, + 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, 0x61U, + 0x72U, 0x67U, 0x02U, 0x69U, 0x12U, 0x66U, 0x6cU, 0x6fU, 0x61U, + 0x74U, 0x5fU, 0x69U, 0x6eU, 0x74U, 0x12U, 0x66U, 0x6cU, 0x6fU, + 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x0cU, 0x61U, 0x63U, + 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, + 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x7fU, 0x01U, + 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe8U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe8U, 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, + 0xfdU, 0x39U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, + 0xe5U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xdfU, 0x39U, 0xe6U, 0x00U, + 0x00U, 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0xc2U, 0x01U, 0x4dU, 0xe8U, 0x00U, 0x00U, 0x00U, 0x39U, + 0xe8U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xd2U, 0x03U, 0x01U, + 0x0cU, 0xb5U, 0x00U, 0x24U, 0x0cU, 0x3fU, 0x26U, 0x26U, 0x26U, + 0x00U, 0x08U, 0x84U, 0x01U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, + 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, 0x00U, 0x16U, 0x01U, 0xd4U, + 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, 0x38U, + 0xebU, 0x00U, 0x00U, 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, 0x00U, + 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xd2U, + 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, 0x06U, + 0x00U, 0x00U, 0x01U, 0x01U, 0x01U, 0x05U, 0x00U, 0x3cU, 0x9bU, + 0x0bU, 0x02U, 0xd8U, 0x03U, 0x00U, 0x01U, 0x00U, 0xdaU, 0x03U, + 0x02U, 0x00U, 0x20U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0x06U, 0xb8U, 0xb8U, 0xf3U, 0x38U, + 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xb8U, + 0x06U, 0xb8U, 0xf3U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xb8U, 0xb8U, 0x06U, 0xf3U, 0x38U, 0xe5U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xb6U, 0xb7U, + 0xb7U, 0xf3U, 0x38U, 0xe7U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, + 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xb7U, + 0xb7U, 0xf3U, 0xb8U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, + 0xb7U, 0xb7U, 0xf3U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x01U, 0xbfU, 0x0fU, 0xb7U, 0xf3U, 0xb7U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x02U, 0xbfU, 0x10U, 0xb7U, 0xf3U, 0x38U, 0xe5U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, + 0x00U, 0x00U, 0x00U, 0xf0U, 0xbfU, 0x0fU, 0xb7U, 0xf3U, 0xc1U, + 0x03U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xbfU, 0x0eU, 0xb7U, 0xf3U, 0xc1U, 0x04U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xf0U, + 0xbfU, 0x0dU, 0xb7U, 0xf3U, 0xc1U, 0x05U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xbfU, 0x0cU, + 0xb7U, 0xf3U, 0xc1U, 0x06U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, + 0xefU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xbfU, 0x0bU, 0xb7U, 0xf3U, + 0xc1U, 0x07U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xbfU, 0x0aU, 0xb7U, 0xf3U, 0xc1U, 0x08U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xbfU, 0x09U, 0xb7U, 0xf3U, 0x01U, 0x00U, 0xcaU, 0x9aU, + 0x3bU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xbfU, 0x08U, 0xb7U, 0xf3U, 0x01U, 0x00U, 0xe1U, + 0xf5U, 0x05U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xbeU, 0xb7U, 0xf3U, 0x01U, 0x80U, 0x96U, + 0x98U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xbdU, 0xb7U, 0xf3U, 0x01U, 0x40U, 0x42U, + 0x0fU, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xbcU, 0xb7U, 0xf3U, 0x01U, 0xa0U, 0x86U, + 0x01U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xbbU, 0xb7U, 0xf3U, 0xc0U, 0x10U, 0x27U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xbaU, 0xb7U, 0xf3U, 0xc0U, 0xe8U, 0x03U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, + 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xb9U, + 0xb7U, 0xf3U, 0xbfU, 0x64U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, + 0xefU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xb8U, 0xb7U, 0xf3U, 0xbfU, + 0x0aU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xefU, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xb7U, 0xb7U, 0xf3U, 0xb8U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x09U, 0xb7U, 0xb7U, 0xf3U, 0xc1U, 0x0aU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x0bU, 0xb8U, 0xb7U, 0xf3U, 0x38U, + 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x0cU, 0xbfU, 0x0fU, 0xb7U, 0xf3U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x0dU, 0xb7U, 0xb7U, + 0xf3U, 0xb8U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x0eU, 0xb8U, + 0xb7U, 0xf3U, 0xbfU, 0x0cU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x0fU, 0xb9U, 0xb7U, 0xf3U, 0xbfU, 0x7bU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x10U, 0xbaU, 0xb7U, 0xf3U, 0xc0U, 0xd2U, 0x04U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x11U, 0xbbU, 0xb7U, 0xf3U, + 0xc0U, 0x39U, 0x30U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x12U, + 0xbcU, 0xb7U, 0xf3U, 0x01U, 0x40U, 0xe2U, 0x01U, 0x00U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x13U, 0xbdU, 0xb7U, 0xf3U, 0x01U, + 0x87U, 0xd6U, 0x12U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x14U, 0xbeU, 0xb7U, 0xf3U, 0x01U, 0x4fU, 0x61U, 0xbcU, 0x00U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x15U, 0xbfU, 0x08U, 0xb7U, + 0xf3U, 0x01U, 0x1eU, 0xcdU, 0x5bU, 0x07U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x16U, 0xbfU, 0x09U, 0xb7U, 0xf3U, 0x01U, 0x2dU, + 0x03U, 0x96U, 0x49U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x17U, + 0xbfU, 0x0aU, 0xb7U, 0xf3U, 0xc1U, 0x18U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x19U, 0xbfU, 0x0bU, 0xb7U, 0xf3U, 0xc1U, 0x1aU, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x1bU, 0xbfU, 0x0cU, 0xb7U, + 0xf3U, 0xc1U, 0x1cU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x1dU, + 0xbfU, 0x0dU, 0xb7U, 0xf3U, 0xc1U, 0x1eU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x1fU, 0xbfU, 0x0eU, 0xb7U, 0xf3U, 0xc1U, 0x20U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x21U, 0xbfU, 0x0fU, 0xb7U, + 0xf3U, 0xc1U, 0x22U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x23U, + 0xb7U, 0xb8U, 0xf3U, 0xb8U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x24U, 0xb8U, 0xb8U, 0xf3U, 0xbfU, 0x0cU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x25U, 0xb9U, 0xb8U, 0xf3U, 0xbfU, 0x7bU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x26U, 0xbaU, 0xb8U, 0xf3U, 0xc0U, + 0xd2U, 0x04U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x27U, 0xbbU, + 0xb8U, 0xf3U, 0xc0U, 0x39U, 0x30U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x28U, 0xbcU, 0xb8U, 0xf3U, 0x01U, 0x40U, 0xe2U, 0x01U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x29U, 0xbdU, 0xb8U, + 0xf3U, 0x01U, 0x87U, 0xd6U, 0x12U, 0x00U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x2aU, 0xbeU, 0xb8U, 0xf3U, 0x01U, 0x4fU, 0x61U, + 0xbcU, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x2bU, 0xbfU, + 0x08U, 0xb8U, 0xf3U, 0x01U, 0x1eU, 0xcdU, 0x5bU, 0x07U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x2cU, 0xbfU, 0x09U, 0xb8U, 0xf3U, + 0x01U, 0x2dU, 0x03U, 0x96U, 0x49U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x2dU, 0xbfU, 0x0aU, 0xb8U, 0xf3U, 0xc1U, 0x2eU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x2fU, 0xbfU, 0x0bU, 0xb8U, 0xf3U, + 0xc1U, 0x30U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x31U, 0xbfU, + 0x0cU, 0xb8U, 0xf3U, 0xc1U, 0x32U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x33U, 0xbfU, 0x0dU, 0xb8U, 0xf3U, 0xc1U, 0x34U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x35U, 0xbfU, 0x0eU, 0xb8U, 0xf3U, + 0xc1U, 0x36U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x37U, 0xbfU, + 0x0fU, 0xb8U, 0xf3U, 0xc1U, 0x38U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x39U, 0xbfU, 0x0fU, 0xb7U, 0xf3U, 0x38U, 0xe6U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x3aU, 0xbfU, + 0x0fU, 0xb7U, 0xf3U, 0xb8U, 0xacU, 0xf1U, 0x0eU, 0x61U, 0x00U, + 0x00U, 0xb8U, 0xcbU, 0x62U, 0x00U, 0x00U, 0xbfU, 0x0fU, 0xa4U, + 0xecU, 0x21U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x3bU, 0x62U, 0x00U, 0x00U, 0xb7U, + 0xf3U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x62U, 0x00U, 0x00U, 0x90U, + 0x11U, 0x63U, 0x00U, 0x00U, 0x0eU, 0xeeU, 0xd9U, 0x38U, 0xf0U, + 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xd2U, 0x03U, + 0x0bU, 0x41U, 0x03U, 0x71U, 0x71U, 0x71U, 0x71U, 0x76U, 0x62U, + 0x67U, 0x7bU, 0x80U, 0x80U, 0x80U, 0x80U, 0x80U, 0x80U, 0x8fU, + 0x8fU, 0x8aU, 0x8aU, 0x8aU, 0x80U, 0x80U, 0x7bU, 0x7bU, 0x76U, + 0x67U, 0x76U, 0x7bU, 0x62U, 0x67U, 0x67U, 0x6cU, 0x6cU, 0x76U, + 0x76U, 0x76U, 0x7bU, 0x7bU, 0x6cU, 0x6cU, 0x6cU, 0x6cU, 0x6cU, + 0x6cU, 0x62U, 0x67U, 0x67U, 0x6cU, 0x6cU, 0x76U, 0x76U, 0x76U, + 0x7bU, 0x7bU, 0x6cU, 0x6cU, 0x6cU, 0x6cU, 0x6cU, 0x6cU, 0x7bU, + 0x67U, 0x44U, 0xa3U, 0x2bU, 0x0aU, 0x88U, 0x02U, 0x07U, 0xc0U, + 0x25U, 0x62U, 0x5bU, 0xbdU, 0x08U, 0x9fU, 0x0aU, 0x88U, 0x02U, + 0x07U, 0xc0U, 0x25U, 0x62U, 0x5bU, 0xbdU, 0x08U, 0x9fU, 0x0aU, + 0x88U, 0x02U, 0x07U, 0xc0U, 0x25U, 0x62U, 0x5bU, 0xbdU, 0x08U, + 0x9fU, 0x06U, 0x00U, 0x00U, 0x34U, 0x26U, 0xf5U, 0x6bU, 0x0cU, + 0x43U, 0x06U, 0x00U, 0x00U, 0x90U, 0x1eU, 0xc4U, 0xbcU, 0xd6U, + 0x42U, 0x06U, 0x00U, 0x00U, 0x40U, 0xe5U, 0x9cU, 0x30U, 0xa2U, + 0x42U, 0x06U, 0x00U, 0x00U, 0x00U, 0xa2U, 0x94U, 0x1aU, 0x6dU, + 0x42U, 0x06U, 0x00U, 0x00U, 0x00U, 0xe8U, 0x76U, 0x48U, 0x37U, + 0x42U, 0x06U, 0x00U, 0x00U, 0x00U, 0x20U, 0x5fU, 0xa0U, 0x02U, + 0x42U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x88U, 0xb0U, 0x06U, 0x1cU, 0xe6U, 0xe3U, 0x07U, + 0x55U, 0x8bU, 0x11U, 0x43U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x88U, 0xb0U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x88U, + 0xb0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, + 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, + 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, + 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x06U, 0x00U, + 0x00U, 0x20U, 0xfeU, 0xe0U, 0xfeU, 0x06U, 0x42U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, + 0xa9U, 0x06U, 0x00U, 0x00U, 0xabU, 0x3dU, 0x99U, 0xbeU, 0x3cU, + 0x42U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x06U, 0x00U, 0x20U, 0x8bU, 0xc6U, + 0x1fU, 0xf7U, 0x71U, 0x42U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x06U, 0x00U, + 0xf2U, 0x2dU, 0xb8U, 0xe7U, 0x74U, 0xa6U, 0x42U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x08U, + 0xa9U, 0x06U, 0x00U, 0x70U, 0x39U, 0xa6U, 0x21U, 0x12U, 0xdcU, + 0x42U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x08U, 0xa9U, 0x06U, 0x1cU, 0xe6U, 0xe3U, 0x07U, + 0x55U, 0x8bU, 0x11U, 0x43U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, + 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, + 0xa4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, + 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, + 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, + 0xa4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, + 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, + 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, + 0xa4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, + 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, + 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, 0xa4U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, + 0xa4U, 0x06U, 0x00U, 0x00U, 0x20U, 0xfeU, 0xe0U, 0xfeU, 0x06U, + 0x42U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, + 0xaaU, 0x16U, 0x23U, 0xa4U, 0x06U, 0x00U, 0x00U, 0xabU, 0x3dU, + 0x99U, 0xbeU, 0x3cU, 0x42U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, + 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, 0xa4U, 0x06U, 0x00U, + 0x20U, 0x8bU, 0xc6U, 0x1fU, 0xf7U, 0x71U, 0x42U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, + 0xa4U, 0x06U, 0x00U, 0xf2U, 0x2dU, 0xb8U, 0xe7U, 0x74U, 0xa6U, + 0x42U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, + 0xaaU, 0x16U, 0x23U, 0xa4U, 0x06U, 0x00U, 0x70U, 0x39U, 0xa6U, + 0x21U, 0x12U, 0xdcU, 0x42U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x38U, + 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, 0xa4U, 0x06U, 0x1cU, + 0xe6U, 0xe3U, 0x07U, 0x55U, 0x8bU, 0x11U, 0x43U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0xccU, 0xc7U, 0x0fU, 0xaaU, 0x16U, 0x23U, + 0xa4U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, 0xf3U, 0xf1U, 0x83U, + 0xaaU, 0xc5U, 0x88U, 0xa1U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0eU, + 0xf3U, 0xf1U, 0x83U, 0xaaU, 0xc5U, 0x88U, 0xa1U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var TOO_BIG = -3 + // var INVALID_ARGUMENT = -7 + // var CANT_RETURN_NEGATIVE = -33 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_int(void 0, 1, 1) === INVALID_ARGUMENT) + // ASSERT(float_int(1, void 0, 1) === INVALID_ARGUMENT) + // ASSERT(float_int(1, 1, void 0) === INVALID_ARGUMENT) + // ASSERT(float_int(-1, 0, 0) === INVALID_FLOAT) + // ASSERT(float_int(float_one(), 0, 0) === 1) + // ASSERT(float_int(5729808726015270912n, 0, 0) === 0) + // ASSERT(float_int(5729808726015270912n, 15, 0) === 0) + // ASSERT(float_int(5729808726015270912n, 16, 0) === INVALID_ARGUMENT) + // ASSERT(float_int(float_one(), 15, 0) === 1e15) + // ASSERT(float_int(float_one(), 14, 0) === 1e14) + // ASSERT(float_int(float_one(), 13, 0) === 1e13) + // ASSERT(float_int(float_one(), 12, 0) === 1e12) + // ASSERT(float_int(float_one(), 11, 0) === 1e11) + // ASSERT(float_int(float_one(), 10, 0) === 1e10) + // ASSERT(float_int(float_one(), 9, 0) === 1e9) + // ASSERT(float_int(float_one(), 8, 0) === 1e8) + // ASSERT(float_int(float_one(), 7, 0) === 1e7) + // ASSERT(float_int(float_one(), 6, 0) === 1e6) + // ASSERT(float_int(float_one(), 5, 0) === 1e5) + // ASSERT(float_int(float_one(), 4, 0) === 1e4) + // ASSERT(float_int(float_one(), 3, 0) === 1e3) + // ASSERT(float_int(float_one(), 2, 0) === 100) + // ASSERT(float_int(float_one(), 1, 0) === 10) + // ASSERT(float_int(float_one(), 0, 0) === 1) + // ASSERT(float_int(6360317241828374919n, 0, 0) === 1234567981234567) + // ASSERT(float_int(6360317241828374919n, 1, 0) === TOO_BIG) + // ASSERT(float_int(6360317241828374919n, 15, 0) === TOO_BIG) + // ASSERT(float_int(6090101264186145159n, 0, 0) === 1) + // ASSERT(float_int(6090101264186145159n, 1, 0) === 12) + // ASSERT(float_int(6090101264186145159n, 2, 0) === 123) + // ASSERT(float_int(6090101264186145159n, 3, 0) === 1234) + // ASSERT(float_int(6090101264186145159n, 4, 0) === 12345) + // ASSERT(float_int(6090101264186145159n, 5, 0) === 123456) + // ASSERT(float_int(6090101264186145159n, 6, 0) === 1234567) + // ASSERT(float_int(6090101264186145159n, 7, 0) === 12345679) + // ASSERT(float_int(6090101264186145159n, 8, 0) === 123456798) + // ASSERT(float_int(6090101264186145159n, 9, 0) === 1234567981) + // ASSERT(float_int(6090101264186145159n, 10, 0) === 12345679812) + // ASSERT(float_int(6090101264186145159n, 11, 0) === 123456798123) + // ASSERT(float_int(6090101264186145159n, 12, 0) === 1234567981234) + // ASSERT(float_int(6090101264186145159n, 13, 0) === 12345679812345) + // ASSERT(float_int(6090101264186145159n, 14, 0) === 123456798123456) + // ASSERT(float_int(6090101264186145159n, 15, 0) === 1234567981234567) + // ASSERT(float_int(1478415245758757255n, 0, 1) === 1) + // ASSERT(float_int(1478415245758757255n, 1, 1) === 12) + // ASSERT(float_int(1478415245758757255n, 2, 1) === 123) + // ASSERT(float_int(1478415245758757255n, 3, 1) === 1234) + // ASSERT(float_int(1478415245758757255n, 4, 1) === 12345) + // ASSERT(float_int(1478415245758757255n, 5, 1) === 123456) + // ASSERT(float_int(1478415245758757255n, 6, 1) === 1234567) + // ASSERT(float_int(1478415245758757255n, 7, 1) === 12345679) + // ASSERT(float_int(1478415245758757255n, 8, 1) === 123456798) + // ASSERT(float_int(1478415245758757255n, 9, 1) === 1234567981) + // ASSERT(float_int(1478415245758757255n, 10, 1) === 12345679812) + // ASSERT(float_int(1478415245758757255n, 11, 1) === 123456798123) + // ASSERT(float_int(1478415245758757255n, 12, 1) === 1234567981234) + // ASSERT(float_int(1478415245758757255n, 13, 1) === 12345679812345) + // ASSERT(float_int(1478415245758757255n, 14, 1) === 123456798123456) + // ASSERT(float_int(1478415245758757255n, 15, 1) === 1234567981234567) + // ASSERT(float_int(1478415245758757255n, 15, 0) === CANT_RETURN_NEGATIVE) + // ASSERT(float_int(5819885286543915399n, 15, 0) === 1) + // for (let i = 1; i < 15; ++i) + // ASSERT(float_int(5819885286543915399n, i, 0) === 0) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_int"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_int"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_invert(FeatureBitset features) + { + testcase("Test float_invert"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0cU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x20U, + 0x44U, 0x49U, 0x56U, 0x49U, 0x53U, 0x49U, 0x4fU, 0x4eU, 0x5fU, + 0x42U, 0x59U, 0x5fU, 0x5aU, 0x45U, 0x52U, 0x4fU, 0x1aU, 0x49U, + 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, 0x4cU, + 0x4fU, 0x41U, 0x54U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x28U, + 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, + 0x73U, 0x74U, 0x2dU, 0x33U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, + 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, + 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, 0x61U, 0x72U, 0x67U, 0x18U, + 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x69U, 0x6eU, 0x76U, + 0x65U, 0x72U, 0x74U, 0x12U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, + 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, + 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, + 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x6cU, 0x01U, 0xa4U, 0x01U, + 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe5U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3fU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xbfU, 0xe7U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xc0U, + 0xd8U, 0xd8U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x01U, + 0x4dU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0xc7U, 0x28U, 0xd0U, 0x03U, 0x01U, 0x0aU, 0x97U, 0x00U, + 0x1eU, 0x0cU, 0x3fU, 0x26U, 0x26U, 0x00U, 0x08U, 0x16U, 0x0cU, + 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, + 0x00U, 0x16U, 0x01U, 0xd2U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, + 0x97U, 0xecU, 0x12U, 0x38U, 0xeaU, 0x00U, 0x00U, 0x00U, 0xd3U, + 0x42U, 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, + 0xf2U, 0x0eU, 0x29U, 0xd0U, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, + 0x59U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, + 0x03U, 0x00U, 0x08U, 0xa7U, 0x01U, 0x01U, 0xd6U, 0x03U, 0x00U, + 0x01U, 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0x06U, 0xf1U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf1U, 0x38U, 0xe5U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xb6U, 0xf1U, + 0x38U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0x38U, 0xedU, + 0x00U, 0x00U, 0x00U, 0xf0U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x00U, 0xf1U, 0xc1U, 0x01U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x02U, 0xf1U, 0xc1U, 0x03U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x04U, 0xf1U, 0xc1U, 0x05U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x06U, 0xf1U, 0xc1U, 0x07U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xd0U, 0x03U, + 0x0aU, 0x0aU, 0x03U, 0x67U, 0x67U, 0x67U, 0x85U, 0x5dU, 0x5dU, + 0x5dU, 0x5dU, 0x2bU, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, + 0xfdU, 0x1aU, 0x87U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, + 0x49U, 0xfdU, 0x1aU, 0x87U, 0xa8U, 0x0aU, 0x88U, 0x02U, 0x07U, + 0xc0U, 0x25U, 0x62U, 0x5bU, 0xbdU, 0x08U, 0xaaU, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x90U, 0x29U, 0xdcU, 0x1fU, 0x88U, 0xc4U, 0xb9U, + 0xa7U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xfeU, 0xddU, 0x42U, 0x7aU, + 0xaaU, 0xc5U, 0x88U, 0xb0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x44U, + 0xb2U, 0x53U, 0x6eU, 0xd0U, 0x8dU, 0x39U, 0xa1U, 0x0aU, 0x88U, + 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0x80U, 0x0aU, + 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0xd1U}; + // TestHook hook = wasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var DIVISION_BY_ZERO = -25 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_invert(void 0) === INVALID_ARGUMENT) + // ASSERT(float_invert(0) === DIVISION_BY_ZERO) + // ASSERT(float_invert(-1) === INVALID_FLOAT) + // ASSERT(float_invert(float_one()) === float_one()) + // ASSERT(float_invert(6107881094714392576n) === 6071852297695428608n) + // ASSERT(float_invert(6126125493223874560n) === 6042953581977277640n) + // ASSERT(float_invert(6360317241747140351n) === 5808736320061298978n) + // ASSERT(float_invert(4630700416936869888n) === 7549032975472951296n) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_invert"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_invert"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_log(FeatureBitset features) + { + testcase("Test float_log"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0aU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x2aU, + 0x43U, 0x4fU, 0x4dU, 0x50U, 0x4cU, 0x45U, 0x58U, 0x5fU, 0x4eU, + 0x4fU, 0x54U, 0x5fU, 0x53U, 0x55U, 0x50U, 0x50U, 0x4fU, 0x52U, + 0x54U, 0x45U, 0x44U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x28U, + 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, + 0x73U, 0x74U, 0x2dU, 0x34U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, + 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, + 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, 0x61U, 0x72U, 0x67U, 0x12U, + 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6cU, 0x6fU, 0x67U, + 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, + 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, + 0x02U, 0x58U, 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xd9U, 0x39U, 0xe5U, 0x00U, 0x00U, + 0x00U, 0xc2U, 0x01U, 0x4dU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x39U, + 0xe6U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xceU, 0x03U, 0x01U, + 0x09U, 0x79U, 0x00U, 0x18U, 0x0cU, 0x3fU, 0x26U, 0x00U, 0x07U, + 0x18U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, + 0x03U, 0x00U, 0x00U, 0x16U, 0x01U, 0xd0U, 0x03U, 0x00U, 0x01U, + 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, 0x38U, 0xe9U, 0x00U, 0x00U, + 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, 0x00U, + 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xceU, 0x03U, 0x02U, 0x03U, + 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, + 0x00U, 0x01U, 0x03U, 0x00U, 0x0bU, 0xb0U, 0x01U, 0x01U, 0xd4U, + 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0x06U, 0xf1U, 0x38U, 0xe4U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xb7U, 0xf1U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, + 0xadU, 0xecU, 0x0eU, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0x04U, + 0x02U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x00U, 0xf1U, 0xc1U, 0x01U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xebU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x02U, 0xf1U, 0x38U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0xadU, 0xecU, 0x0eU, 0x38U, 0xe9U, 0x00U, 0x00U, + 0x00U, 0x04U, 0x02U, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x03U, 0xf1U, 0xc1U, 0x04U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x05U, 0xf1U, 0xc1U, 0x06U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x07U, 0xf1U, 0xc1U, 0x08U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x09U, 0xf1U, 0xc1U, 0x0aU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, + 0xceU, 0x03U, 0x09U, 0x0bU, 0x03U, 0x67U, 0x8fU, 0x5dU, 0x53U, + 0x44U, 0x5dU, 0x5dU, 0x5dU, 0x5dU, 0x2bU, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x3cU, 0x10U, 0xcdU, 0x85U, 0xfeU, 0x25U, 0x3cU, 0xb0U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x84U, 0x0dU, 0x2fU, 0x20U, 0x52U, + 0x9bU, 0x8aU, 0xa9U, 0x0aU, 0x80U, 0x02U, 0x06U, 0x34U, 0x26U, + 0xf5U, 0x6bU, 0x1cU, 0xaaU, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, + 0x49U, 0xfdU, 0x1aU, 0x87U, 0xaaU, 0x0aU, 0x88U, 0x02U, 0x06U, + 0xa7U, 0xdcU, 0xf7U, 0x50U, 0x15U, 0xa9U, 0x0aU, 0x88U, 0x02U, + 0x07U, 0xa8U, 0xb0U, 0xcfU, 0x32U, 0xfcU, 0x87U, 0xa8U, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x60U, 0xddU, 0x2bU, 0xcbU, 0x2eU, 0xcfU, + 0x0dU, 0xa3U, 0x0aU, 0x88U, 0x02U, 0x07U, 0x60U, 0x2aU, 0xa0U, + 0xb9U, 0xfaU, 0x87U, 0xa0U, 0x0aU, 0x80U, 0x02U, 0x08U, 0xf0U, + 0xf2U, 0xf6U, 0xcaU, 0x78U, 0x2cU, 0x30U, 0xa6U, 0x0aU, 0x88U, + 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x07U, 0xc8U, 0x0aU, + 0x88U, 0x02U, 0x06U, 0x37U, 0xfbU, 0xbbU, 0x0dU, 0xacU, 0xa9U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var COMPLEX_NOT_SUPPORTED = -39 + // var Hook = (arg) => { + // ASSERT(float_log(void 0) === INVALID_ARGUMENT) + // if (float_log(0) !== INVALID_ARGUMENT) rollback('false', 0) + // ASSERT(float_log(6349533412187342878n) === 6108373858112734914n) + // if (float_log(1532223873305968640n) !== COMPLEX_NOT_SUPPORTED) + // rollback('false', 0) + // ASSERT(float_log(6143909891733356544n) === 6091866696204910592n) + // ASSERT(float_log(6071976107695428608n) === 1468659350345448364n) + // ASSERT(float_log(5783744921543716864n) === 1496890038311378526n) + // ASSERT(float_log(7206759403792793600n) === 6113081094714392576n) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_log"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_log"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_mantissa(FeatureBitset features) + { + testcase("Test float_mantissa"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0cU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x1aU, + 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, + 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, + 0x28U, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, + 0x65U, 0x73U, 0x74U, 0x2dU, 0x35U, 0x2dU, 0x67U, 0x65U, 0x6eU, + 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, + 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, 0x61U, 0x72U, 0x67U, + 0x1cU, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6dU, 0x61U, + 0x6eU, 0x74U, 0x69U, 0x73U, 0x73U, 0x61U, 0x12U, 0x66U, 0x6cU, + 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x18U, 0x66U, + 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6eU, 0x65U, 0x67U, 0x61U, + 0x74U, 0x65U, 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, + 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, + 0x01U, 0x00U, 0x02U, 0x59U, 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, + 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe4U, + 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, + 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, + 0x39U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, + 0xe5U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x01U, 0x4dU, 0xe6U, 0x00U, + 0x00U, 0x00U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, + 0xceU, 0x03U, 0x01U, 0x0aU, 0x79U, 0x00U, 0x18U, 0x0cU, 0x3fU, + 0x26U, 0x00U, 0x08U, 0x8eU, 0x02U, 0x0cU, 0x02U, 0x06U, 0x00U, + 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, 0x00U, 0x16U, 0x01U, + 0xd0U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, + 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, + 0x00U, 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, + 0xceU, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, + 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x04U, 0x00U, 0x2bU, + 0xf1U, 0x03U, 0x01U, 0xd4U, 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, + 0x06U, 0xf1U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xb6U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xebU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0x8dU, 0xf1U, 0x38U, + 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0xb7U, + 0xf1U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xf1U, 0xc1U, 0x01U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xf1U, 0xf1U, 0xc1U, 0x02U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x03U, 0xf1U, 0xc1U, 0x04U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x05U, 0xf1U, 0xc1U, 0x06U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x07U, 0xf1U, 0xc1U, 0x08U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x09U, 0xf1U, 0xc1U, 0x0aU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x0bU, 0xf1U, 0xc1U, 0x0cU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x0dU, 0xf1U, 0xc1U, 0x0eU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x0fU, 0xf1U, 0xc1U, 0x10U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x11U, 0xf1U, 0xc1U, 0x12U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x13U, 0xf1U, 0xc1U, 0x14U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x15U, 0xf1U, 0xc1U, 0x16U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x17U, 0xf1U, 0xc1U, 0x18U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x19U, 0xf1U, 0xc1U, 0x1aU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x1bU, 0xf1U, 0xc1U, 0x1cU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x1dU, 0xf1U, 0xc1U, 0x1eU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x1fU, 0xf1U, 0xc1U, 0x20U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x21U, 0xf1U, 0xc1U, 0x22U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x23U, 0xf1U, 0xc1U, 0x24U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x25U, 0xf1U, 0xc1U, 0x26U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x27U, 0xf1U, 0xc1U, 0x28U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x29U, 0xf1U, 0xc1U, 0x2aU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, + 0x29U, 0xceU, 0x03U, 0x09U, 0x58U, 0x03U, 0x68U, 0x67U, 0x72U, + 0x54U, 0x71U, 0x91U, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, + 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, + 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, + 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, + 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, + 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, + 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, + 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, + 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, + 0x17U, 0x0eU, 0x2bU, 0x0aU, 0x94U, 0x01U, 0x05U, 0xc0U, 0x8bU, + 0x8cU, 0x10U, 0xa4U, 0x0aU, 0xd4U, 0x01U, 0x05U, 0xa0U, 0x31U, + 0xa9U, 0x5fU, 0xe3U, 0x0aU, 0xd4U, 0x01U, 0x05U, 0xa0U, 0x31U, + 0xa9U, 0x5fU, 0xe3U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xfaU, 0x07U, + 0x9aU, 0xbfU, 0x1dU, 0xc8U, 0x35U, 0x84U, 0x0aU, 0xe0U, 0x01U, + 0x07U, 0xe8U, 0x1fU, 0x68U, 0xfeU, 0x76U, 0x20U, 0xd7U, 0x0aU, + 0xfcU, 0x01U, 0x08U, 0xe0U, 0xa8U, 0xcfU, 0xa8U, 0xa6U, 0x1cU, + 0x87U, 0x94U, 0x0aU, 0xdcU, 0x01U, 0x07U, 0xe0U, 0xa8U, 0xcfU, + 0xa8U, 0xa6U, 0x1cU, 0x87U, 0x0aU, 0xfcU, 0x01U, 0x07U, 0x6dU, + 0x3cU, 0xedU, 0xefU, 0xcdU, 0xaaU, 0xd5U, 0x0aU, 0xe0U, 0x01U, + 0x07U, 0x80U, 0x36U, 0x9eU, 0xf6U, 0xf7U, 0x66U, 0xd5U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x08U, 0x1cU, 0xf4U, 0xdcU, 0x7aU, 0xe4U, + 0x9aU, 0xcbU, 0x0aU, 0xdcU, 0x01U, 0x07U, 0x40U, 0xe0U, 0xa0U, + 0xe7U, 0xd6U, 0x23U, 0xd7U, 0x0aU, 0x84U, 0x02U, 0x08U, 0xc8U, + 0x84U, 0x56U, 0xe0U, 0x0aU, 0x48U, 0x87U, 0x9dU, 0x0aU, 0xe4U, + 0x01U, 0x07U, 0xc8U, 0x84U, 0x56U, 0xe0U, 0x0aU, 0x48U, 0x87U, + 0x0aU, 0x84U, 0x02U, 0x08U, 0xe8U, 0x1cU, 0xb3U, 0xcbU, 0x92U, + 0x3eU, 0x1bU, 0x91U, 0x0aU, 0xd8U, 0x01U, 0x07U, 0x40U, 0xe7U, + 0x98U, 0x5dU, 0x96U, 0xf4U, 0xd9U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x46U, 0xf5U, 0xf9U, 0x1eU, 0xbeU, 0x18U, 0x91U, 0x85U, 0x0aU, + 0xdcU, 0x01U, 0x07U, 0x30U, 0xaaU, 0xcfU, 0xf7U, 0xf0U, 0xc5U, + 0x88U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x88U, 0xa1U, 0x9cU, 0x65U, + 0x15U, 0x10U, 0xacU, 0x8eU, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x20U, + 0x86U, 0x72U, 0x96U, 0x55U, 0x40U, 0xb0U, 0x0aU, 0xfcU, 0x01U, + 0x07U, 0x08U, 0xc2U, 0xb7U, 0x94U, 0x88U, 0xbaU, 0xf9U, 0x0aU, + 0xe0U, 0x01U, 0x06U, 0x04U, 0xe1U, 0x5bU, 0x4aU, 0x44U, 0xddU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xe2U, 0x1dU, 0x27U, 0x6aU, 0x7cU, + 0xe2U, 0x40U, 0x92U, 0x0aU, 0xe4U, 0x01U, 0x07U, 0xc4U, 0x3bU, + 0x4eU, 0xd4U, 0xf8U, 0xc4U, 0x81U, 0x0aU, 0x80U, 0x02U, 0x08U, + 0x80U, 0x85U, 0xaeU, 0x92U, 0xb2U, 0x59U, 0xedU, 0xfeU, 0x0aU, + 0xe0U, 0x01U, 0x07U, 0x80U, 0x85U, 0xaeU, 0x92U, 0xb2U, 0x59U, + 0xedU, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x60U, 0xf1U, 0x44U, 0x2fU, + 0x5dU, 0xbdU, 0x24U, 0xf5U, 0x0aU, 0xe0U, 0x01U, 0x07U, 0xb0U, + 0x78U, 0xa2U, 0x97U, 0xaeU, 0x5eU, 0x92U, 0x0aU, 0x84U, 0x02U, + 0x08U, 0xa0U, 0x73U, 0xb9U, 0x0eU, 0xd1U, 0x90U, 0x64U, 0x95U, + 0x0aU, 0xe0U, 0x01U, 0x07U, 0x40U, 0xe7U, 0x72U, 0x1dU, 0xa2U, + 0x21U, 0xc9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x94U, 0x36U, 0x6cU, + 0x37U, 0x31U, 0x4cU, 0xadU, 0xa9U, 0x0aU, 0xe0U, 0x01U, 0x07U, + 0x50U, 0xdaU, 0xb0U, 0xddU, 0xc4U, 0x30U, 0xb5U, 0x0aU, 0xf8U, + 0x01U, 0x08U, 0x40U, 0xf5U, 0x34U, 0xa1U, 0x63U, 0x2aU, 0x6aU, + 0x8aU, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x50U, 0x3dU, 0x4dU, 0xe8U, + 0x98U, 0x8aU, 0x9aU, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xe0U, 0xacU, + 0xbaU, 0xd2U, 0x95U, 0xfeU, 0x83U, 0xb0U, 0x0aU, 0xdcU, 0x01U, + 0x07U, 0xe0U, 0xacU, 0xbaU, 0xd2U, 0x95U, 0xfeU, 0x83U, 0x0aU, + 0xf4U, 0x01U, 0x08U, 0x80U, 0xd3U, 0x63U, 0xb3U, 0x01U, 0x28U, + 0xabU, 0xb5U, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x70U, 0x7aU, 0x6cU, + 0x36U, 0x00U, 0x65U, 0xb5U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xbeU, + 0xb0U, 0x2eU, 0xe5U, 0xf5U, 0xebU, 0x93U, 0x98U, 0x0aU, 0xdcU, + 0x01U, 0x07U, 0xf0U, 0x85U, 0x75U, 0x29U, 0xafU, 0x5fU, 0x9fU, + 0x0aU, 0x80U, 0x02U, 0x08U, 0x50U, 0xf5U, 0xfcU, 0x7eU, 0x52U, + 0x09U, 0x03U, 0xa1U, 0x0aU, 0xe4U, 0x01U, 0x07U, 0xa8U, 0x7aU, + 0x7eU, 0x3fU, 0xa9U, 0x84U, 0x81U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x58U, 0x1dU, 0xcaU, 0xb2U, 0x2bU, 0x28U, 0xa4U, 0xcfU, 0x0aU, + 0xe0U, 0x01U, 0x07U, 0x60U, 0x75U, 0x28U, 0xcbU, 0xaeU, 0xa0U, + 0x90U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_mantissa(void 0) === INVALID_ARGUMENT) + // { + // ASSERT(float_mantissa(-1) === INVALID_FLOAT) + // ASSERT(float_mantissa(-11010191919n) === INVALID_FLOAT) + // } + // ASSERT(float_mantissa(0) === 0) + // { + // ASSERT(float_mantissa(float_one()) === 1000000000000000n) + // ASSERT(float_mantissa(float_negate(float_one())) === 1000000000000000n) + // } + // { + // ASSERT( + // float_mantissa( + // 4763370308433150973n + // /* 7.569101929907197e-74 */ + // ) === 7569101929907197n + // ) + // ASSERT( + // float_mantissa( + // 668909658849475214n + // /* -2.376913998641806e-45 */ + // ) === 2376913998641806n + // ) + // ASSERT( + // float_mantissa( + // 962271544155031248n + // /* -7.508423152486096e-29 */ + // ) === 7508423152486096n + // ) + // ASSERT( + // float_mantissa( + // 7335644976228470276n + // /* 3.784782869302788e+69 */ + // ) === 3784782869302788n + // ) + // ASSERT( + // float_mantissa( + // 2837780149340315954n + // /* -9.519583351644467e+75 */ + // ) === 9519583351644466n + // ) + // ASSERT( + // float_mantissa( + // 2614004940018599738n + // /* -1.917156143712058e+63 */ + // ) === 1917156143712058n + // ) + // ASSERT( + // float_mantissa( + // 4812250541755005603n + // /* 2.406139723315875e-71 */ + // ) === 2406139723315875n + // ) + // ASSERT( + // float_mantissa( + // 5140304866732560580n + // /* 6.20129153019514e-53 */ + // ) === 6201291530195140n + // ) + // ASSERT( + // float_mantissa( + // 1124677839589482624n + // /* -7.785132001599617e-20 */ + // ) === 7785132001599616n + // ) + // ASSERT( + // float_mantissa( + // 5269336076015865585n + // /* 9.131711247126257e-46 */ + // ) === 9131711247126257n + // ) + // ASSERT( + // float_mantissa( + // 2296179634826760368n + // /* -8.3510241225484e+45 */ + // ) === 8351024122548400n + // ) + // ASSERT( + // float_mantissa( + // 1104028240398536470n + // /* -5.149931320135446e-21 */ + // ) === 5149931320135446n + // ) + // ASSERT( + // float_mantissa( + // 2691222059222981864n + // /* -7.076681310166248e+67 */ + // ) === 7076681310166248n + // ) + // ASSERT( + // float_mantissa( + // 6113256168823855946n + // /* 63.7507410946337 */ + // ) === 6375074109463370n + // ) + // ASSERT( + // float_mantissa( + // 311682216630003626n + // /* -5.437441968809898e-65 */ + // ) === 5437441968809898n + // ) + // ASSERT( + // float_mantissa( + // 794955605753965262n + // /* -2.322071336757966e-38 */ + // ) === 2322071336757966n + // ) + // ASSERT( + // float_mantissa( + // 204540636400815950n + // /* -6.382252796514126e-71 */ + // ) === 6382252796514126n + // ) + // ASSERT( + // float_mantissa( + // 5497195278343034975n + // /* 2.803732951029855e-33 */ + // ) === 2803732951029855n + // ) + // ASSERT( + // float_mantissa( + // 1450265914369875626n + // /* -0.09114033611316906 */ + // ) === 9114033611316906n + // ) + // ASSERT( + // float_mantissa( + // 7481064015089962668n + // /* 5.088633654939308e+77 */ + // ) === 5088633654939308n + // ) + // } + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_mantissa"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_mantissa"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_mulratio(FeatureBitset features) + { + testcase("Test float_mulratio"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0dU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x18U, + 0x58U, 0x46U, 0x4cU, 0x5fU, 0x4fU, 0x56U, 0x45U, 0x52U, 0x46U, + 0x4cU, 0x4fU, 0x57U, 0x1aU, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, + 0x49U, 0x44U, 0x5fU, 0x46U, 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, + 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x28U, 0x77U, 0x61U, 0x73U, 0x6dU, + 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, 0x36U, + 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, + 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, + 0x06U, 0x61U, 0x72U, 0x67U, 0x1cU, 0x66U, 0x6cU, 0x6fU, 0x61U, + 0x74U, 0x5fU, 0x6dU, 0x75U, 0x6cU, 0x72U, 0x61U, 0x74U, 0x69U, + 0x6fU, 0x12U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, + 0x6eU, 0x65U, 0x18U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, + 0x6eU, 0x65U, 0x67U, 0x61U, 0x74U, 0x65U, 0x0cU, 0x61U, 0x63U, + 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, + 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x6cU, 0x01U, + 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe7U, 0x00U, 0x00U, + 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xe2U, 0x39U, 0xe5U, 0x00U, 0x00U, + 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x01U, 0x4dU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe7U, + 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xd0U, 0x03U, 0x01U, 0x0bU, + 0x97U, 0x00U, 0x1eU, 0x0cU, 0x3fU, 0x26U, 0x26U, 0x00U, 0x08U, + 0xcaU, 0x01U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, + 0x01U, 0x03U, 0x00U, 0x00U, 0x16U, 0x01U, 0xd2U, 0x03U, 0x00U, + 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, 0x38U, 0xeaU, 0x00U, + 0x00U, 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, + 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xd0U, 0x03U, 0x02U, + 0x03U, 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, + 0x01U, 0x00U, 0x01U, 0x06U, 0x00U, 0x42U, 0xa6U, 0x07U, 0x01U, + 0xd6U, 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x06U, 0xb8U, 0xb8U, + 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0x06U, 0xb8U, 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, 0xe4U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, + 0x00U, 0x00U, 0x00U, 0xf0U, 0xb8U, 0x06U, 0xb8U, 0x22U, 0x04U, + 0x00U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xb8U, 0xb8U, + 0x06U, 0x22U, 0x04U, 0x00U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xb6U, 0xb7U, 0xb8U, 0xb8U, 0x22U, + 0x04U, 0x00U, 0x38U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xb7U, + 0xb7U, 0xb8U, 0x22U, 0x04U, 0x00U, 0xb7U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xb7U, 0xb7U, 0xb8U, 0xb8U, 0x22U, 0x04U, 0x00U, 0xb7U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xb7U, 0xb8U, 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, 0xedU, + 0x00U, 0x00U, 0x00U, 0xf0U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xf1U, 0xb7U, 0xb8U, 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xf1U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0xb7U, + 0xc1U, 0x01U, 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x02U, 0xb7U, + 0xbfU, 0x0aU, 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x03U, 0xb7U, + 0xbfU, 0x0aU, 0xb8U, 0x22U, 0x04U, 0x00U, 0x38U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x04U, 0xb7U, + 0xb8U, 0xb8U, 0x22U, 0x04U, 0x00U, 0xc1U, 0x05U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x06U, 0xb7U, 0xc1U, 0x07U, 0xc1U, 0x08U, + 0x22U, 0x04U, 0x00U, 0xc1U, 0x09U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x0aU, 0xb7U, 0xc1U, 0x0bU, 0xc1U, 0x0cU, 0x22U, 0x04U, + 0x00U, 0xc1U, 0x0dU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x0eU, + 0xb7U, 0xc1U, 0x0fU, 0x01U, 0x23U, 0xaaU, 0x20U, 0x2eU, 0x22U, + 0x04U, 0x00U, 0xc1U, 0x10U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x11U, 0xb7U, 0xc1U, 0x12U, 0x01U, 0x44U, 0x8fU, 0x79U, 0x74U, + 0x22U, 0x04U, 0x00U, 0xc1U, 0x13U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x14U, 0xb7U, 0xc1U, 0x15U, 0xc1U, 0x16U, 0x22U, 0x04U, + 0x00U, 0xc1U, 0x17U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x18U, + 0xb7U, 0x01U, 0xfaU, 0xe0U, 0x13U, 0x29U, 0xc1U, 0x19U, 0x22U, + 0x04U, 0x00U, 0xc1U, 0x1aU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x1bU, 0xb7U, 0x01U, 0x31U, 0x1fU, 0x6fU, 0x66U, 0xc1U, 0x1cU, + 0x22U, 0x04U, 0x00U, 0xc1U, 0x1dU, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x1eU, 0xb7U, 0x01U, 0x8fU, 0x2cU, 0xd5U, 0x54U, 0x01U, + 0xbfU, 0x4fU, 0xc1U, 0x4fU, 0x22U, 0x04U, 0x00U, 0xc1U, 0x1fU, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x20U, 0xb7U, 0x01U, 0x0aU, + 0x93U, 0x93U, 0x14U, 0xc1U, 0x21U, 0x22U, 0x04U, 0x00U, 0xc1U, + 0x22U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x23U, 0xb7U, 0x01U, + 0xe2U, 0x37U, 0x86U, 0x13U, 0x01U, 0x9fU, 0x95U, 0x06U, 0x47U, + 0x22U, 0x04U, 0x00U, 0xc1U, 0x24U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x25U, 0xb7U, 0x01U, 0xf1U, 0x2dU, 0xbbU, 0x4dU, 0xc1U, + 0x26U, 0x22U, 0x04U, 0x00U, 0xc1U, 0x27U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x28U, 0xb7U, 0x01U, 0xe2U, 0x85U, 0x60U, 0x71U, + 0xc1U, 0x29U, 0x22U, 0x04U, 0x00U, 0xc1U, 0x2aU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x2bU, 0xb7U, 0x01U, 0xc8U, 0x0dU, 0x7cU, + 0x36U, 0x01U, 0x95U, 0xceU, 0x77U, 0x06U, 0x22U, 0x04U, 0x00U, + 0xc1U, 0x2cU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x2dU, 0xb7U, + 0x01U, 0x6eU, 0x48U, 0x8aU, 0x4fU, 0x01U, 0xb1U, 0x54U, 0x6fU, + 0x32U, 0x22U, 0x04U, 0x00U, 0xc1U, 0x2eU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x2fU, 0xb7U, 0xc1U, 0x30U, 0x01U, 0x77U, 0x61U, + 0x1cU, 0x0eU, 0x22U, 0x04U, 0x00U, 0xc1U, 0x31U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x32U, 0xb7U, 0x01U, 0x82U, 0x5dU, 0xccU, + 0x02U, 0xc1U, 0x33U, 0x22U, 0x04U, 0x00U, 0xc1U, 0x34U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x35U, 0xb7U, 0x01U, 0x15U, 0xc4U, + 0x7cU, 0x34U, 0x01U, 0x34U, 0x5aU, 0xfdU, 0x19U, 0x22U, 0x04U, + 0x00U, 0xc1U, 0x36U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x37U, + 0xb7U, 0xc1U, 0x38U, 0xc1U, 0x39U, 0x22U, 0x04U, 0x00U, 0xc1U, + 0x3aU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x3bU, 0xb7U, 0xc1U, + 0x3cU, 0xc1U, 0x3dU, 0x22U, 0x04U, 0x00U, 0xc1U, 0x3eU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x3fU, 0xb7U, 0x01U, 0x86U, 0xb0U, + 0x2eU, 0x3bU, 0xc1U, 0x40U, 0x22U, 0x04U, 0x00U, 0xc1U, 0x41U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xc3U, + 0xb7U, 0xf2U, 0x29U, 0xd0U, 0x03U, 0x0aU, 0x64U, 0x03U, 0x80U, + 0x99U, 0x99U, 0x99U, 0x80U, 0x85U, 0x6cU, 0x9eU, 0x1cU, 0x76U, + 0x44U, 0x0dU, 0x1cU, 0x67U, 0x0dU, 0x8aU, 0x8aU, 0x76U, 0x1cU, + 0x58U, 0x08U, 0x0dU, 0x1cU, 0x58U, 0x08U, 0x0dU, 0x1cU, 0x67U, + 0x08U, 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, 0x1cU, 0x58U, 0x08U, + 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, + 0x1cU, 0x76U, 0x08U, 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, 0x1cU, + 0x76U, 0x08U, 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, 0x1cU, 0x67U, + 0x08U, 0x0dU, 0x1cU, 0x76U, 0x08U, 0x0dU, 0x1cU, 0x76U, 0x08U, + 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, + 0x1cU, 0x76U, 0x08U, 0x0dU, 0x1cU, 0x58U, 0x08U, 0x0dU, 0x1cU, + 0x58U, 0x08U, 0x0dU, 0x1cU, 0x67U, 0x08U, 0x0dU, 0x2bU, 0x0aU, + 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0xd8U, + 0x06U, 0x00U, 0x00U, 0xe0U, 0xffU, 0xffU, 0xffU, 0xefU, 0x41U, + 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, + 0xd8U, 0x0aU, 0x84U, 0x02U, 0x06U, 0x1aU, 0x93U, 0xfaU, 0x35U, + 0x0eU, 0xb1U, 0x0aU, 0x84U, 0x02U, 0x06U, 0x1aU, 0x93U, 0xfaU, + 0x35U, 0x0eU, 0xb1U, 0x0aU, 0x84U, 0x02U, 0x06U, 0x1aU, 0x93U, + 0xfaU, 0x35U, 0x0eU, 0xb1U, 0x0aU, 0x80U, 0x02U, 0x08U, 0xc0U, + 0x51U, 0xa9U, 0x6bU, 0xcfU, 0xfcU, 0xebU, 0xfeU, 0x06U, 0x00U, + 0x00U, 0x60U, 0xddU, 0xd1U, 0x78U, 0xe0U, 0x41U, 0x06U, 0x00U, + 0x00U, 0x40U, 0xe8U, 0xfaU, 0xf7U, 0xe4U, 0x41U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0xb0U, 0xf8U, 0x44U, 0x25U, 0x51U, 0x61U, 0xb9U, + 0xfeU, 0x0aU, 0xf8U, 0x01U, 0x08U, 0xe0U, 0x62U, 0xbdU, 0x30U, + 0x6eU, 0x91U, 0x20U, 0xfbU, 0x06U, 0x00U, 0x00U, 0x60U, 0x19U, + 0x0bU, 0xafU, 0xe1U, 0x41U, 0x06U, 0x00U, 0x00U, 0x00U, 0x52U, + 0x71U, 0x52U, 0xefU, 0x41U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0x20U, + 0x7bU, 0x5bU, 0x70U, 0xdcU, 0xfbU, 0xc3U, 0xf9U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0x4dU, 0x7eU, 0x58U, 0xc4U, 0x8bU, 0x8aU, + 0xfeU, 0x06U, 0x00U, 0x00U, 0x60U, 0x66U, 0x55U, 0x9eU, 0xe7U, + 0x41U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x90U, 0x02U, 0xd4U, 0xe7U, + 0x27U, 0x60U, 0x1cU, 0x80U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x30U, + 0x45U, 0x26U, 0x35U, 0xa2U, 0x17U, 0x68U, 0xa8U, 0x06U, 0x00U, + 0x00U, 0x80U, 0x05U, 0x27U, 0x55U, 0xecU, 0x41U, 0x0aU, 0xfcU, + 0x01U, 0x08U, 0xb0U, 0xedU, 0x6cU, 0x5aU, 0x84U, 0x90U, 0xcaU, + 0xa8U, 0x0aU, 0x84U, 0x02U, 0x08U, 0xc8U, 0xefU, 0xc3U, 0xb5U, + 0xf7U, 0x64U, 0x12U, 0xaaU, 0x06U, 0x00U, 0x00U, 0xe0U, 0x7cU, + 0xfaU, 0x85U, 0xe5U, 0x41U, 0x06U, 0x00U, 0x00U, 0x00U, 0x5aU, + 0xf2U, 0xb6U, 0xeeU, 0x41U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x54U, + 0x72U, 0x9cU, 0xabU, 0x33U, 0xe6U, 0x80U, 0xa9U, 0x0aU, 0xfcU, + 0x01U, 0x08U, 0x80U, 0x30U, 0x56U, 0x20U, 0x53U, 0x51U, 0x46U, + 0xd8U, 0x06U, 0x00U, 0x00U, 0x40U, 0xd9U, 0xb6U, 0x02U, 0xe8U, + 0x41U, 0x0aU, 0xfcU, 0x01U, 0x07U, 0x15U, 0xd7U, 0x42U, 0x20U, + 0x60U, 0x96U, 0xd4U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x84U, 0x90U, + 0x12U, 0xdeU, 0x6aU, 0xabU, 0x54U, 0xa5U, 0x06U, 0x00U, 0x00U, + 0xc0U, 0xd6U, 0x6aU, 0x9eU, 0xe4U, 0x41U, 0x0aU, 0x84U, 0x02U, + 0x08U, 0x2cU, 0x41U, 0x24U, 0xdfU, 0x67U, 0x94U, 0x34U, 0xa5U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x20U, 0xa5U, 0xa6U, 0x2bU, 0x55U, + 0xd0U, 0x8cU, 0xb6U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x7aU, 0x31U, + 0x1aU, 0x97U, 0x2cU, 0xa1U, 0x8dU, 0xb6U, 0x0aU, 0x84U, 0x02U, + 0x08U, 0xf0U, 0x57U, 0x1cU, 0xd3U, 0xe3U, 0x3eU, 0x24U, 0x94U, + 0x06U, 0x00U, 0x00U, 0x00U, 0x30U, 0xd3U, 0xbbU, 0xefU, 0x41U, + 0x0aU, 0x84U, 0x02U, 0x08U, 0xacU, 0x9bU, 0x38U, 0xd9U, 0xa9U, + 0x60U, 0x1dU, 0x93U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xd0U, 0xb3U, + 0x2aU, 0xf6U, 0x51U, 0xbfU, 0xbaU, 0x90U, 0x0aU, 0xfcU, 0x01U, + 0x08U, 0x70U, 0x7fU, 0x9dU, 0x59U, 0xbeU, 0x59U, 0x01U, 0x8eU, + 0x0aU, 0x84U, 0x02U, 0x08U, 0xacU, 0x9aU, 0x39U, 0xcdU, 0xd0U, + 0xa6U, 0x22U, 0xafU, 0x06U, 0x00U, 0x00U, 0xa0U, 0x11U, 0xf3U, + 0x87U, 0xe6U, 0x41U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x94U, 0x5dU, + 0xedU, 0xecU, 0x7dU, 0xf1U, 0x0eU, 0xafU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x80U, 0x46U, 0x7cU, 0xfeU, 0x0aU, 0x85U, 0x36U, 0xbeU, + 0x06U, 0x00U, 0x00U, 0xa0U, 0xe5U, 0xddU, 0xceU, 0xe5U, 0x41U, + 0x0aU, 0x80U, 0x02U, 0x08U, 0xd8U, 0x98U, 0xdcU, 0x34U, 0x15U, + 0x6eU, 0x23U, 0xbeU, 0x0aU, 0x84U, 0x02U, 0x07U, 0xf1U, 0x60U, + 0xb1U, 0x96U, 0xf1U, 0x83U, 0x81U, 0x0aU, 0x84U, 0x02U, 0x08U, + 0xe4U, 0xd1U, 0xb6U, 0x4bU, 0x4bU, 0x25U, 0x6fU, 0x82U, 0x0aU, + 0xfcU, 0x01U, 0x08U, 0xe0U, 0x0bU, 0x70U, 0x6cU, 0x13U, 0x42U, + 0x26U, 0xddU, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xd0U, 0x29U, 0xc5U, + 0xcbU, 0x07U, 0x12U, 0xd0U, 0xddU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0xf4U, 0xcbU, 0xe1U, 0xdaU, 0xb1U, 0xeaU, 0x31U, 0xaeU, 0x06U, + 0x00U, 0x00U, 0xa0U, 0xdfU, 0xdbU, 0xd2U, 0xe3U, 0x41U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x02U, 0x6aU, 0x0aU, 0x66U, 0xbcU, 0x19U, + 0xb8U, 0xaeU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x26U, 0xc2U, 0xf1U, + 0xe8U, 0xccU, 0xf0U, 0x88U, 0xcbU, 0x06U, 0x00U, 0x00U, 0x00U, + 0x33U, 0xb5U, 0x78U, 0xe2U, 0x41U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x0cU, 0x11U, 0xf4U, 0xd5U, 0x35U, 0xeeU, 0x90U, 0xcaU, 0x0aU, + 0x84U, 0x02U, 0x08U, 0xb0U, 0x3aU, 0x45U, 0x39U, 0x5dU, 0x03U, + 0x80U, 0x9fU, 0x0aU, 0x84U, 0x02U, 0x08U, 0x58U, 0x82U, 0xbeU, + 0xc4U, 0x55U, 0xdaU, 0x19U, 0xa0U, 0x0aU, 0x80U, 0x02U, 0x08U, + 0x28U, 0x31U, 0x06U, 0x39U, 0xcbU, 0x2dU, 0xebU, 0xd6U, 0x06U, + 0x00U, 0x00U, 0x00U, 0x71U, 0xebU, 0x45U, 0xe7U, 0x41U, 0x06U, + 0x00U, 0x00U, 0xe0U, 0x55U, 0xa5U, 0x36U, 0xecU, 0x41U, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x38U, 0xcbU, 0xa9U, 0x31U, 0x6bU, 0xffU, + 0xc1U, 0xd6U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xecU, 0x07U, 0x99U, + 0xbeU, 0x0eU, 0x32U, 0x37U, 0xc9U, 0x06U, 0x00U, 0x00U, 0xe0U, + 0xfaU, 0x34U, 0xb9U, 0xe1U, 0x41U, 0x06U, 0x00U, 0x00U, 0xc0U, + 0x93U, 0x57U, 0xc1U, 0xe0U, 0x41U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x30U, 0x6fU, 0x5eU, 0x86U, 0x94U, 0x62U, 0x3aU, 0xc9U, 0x0aU, + 0xf8U, 0x01U, 0x08U, 0x80U, 0xcbU, 0x12U, 0xd8U, 0xe7U, 0x36U, + 0x1dU, 0x8aU, 0x06U, 0x00U, 0x00U, 0x00U, 0x21U, 0xa0U, 0x21U, + 0xe2U, 0x41U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0xe0U, 0x34U, 0xe3U, + 0xe5U, 0x59U, 0xd2U, 0xdcU, 0x88U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var XFL_OVERFLOW = -30 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_mulratio(void 0, 1, 1, 1) === INVALID_ARGUMENT) + // ASSERT(float_mulratio(float_one(), void 0, 1, 1) === INVALID_ARGUMENT) + // ASSERT(float_mulratio(float_one(), 1, void 0, 1) === INVALID_ARGUMENT) + // ASSERT(float_mulratio(float_one(), 1, 1, void 0) === INVALID_ARGUMENT) + // ASSERT(float_mulratio(-1, 0, 1, 1) === INVALID_FLOAT) + // ASSERT(float_mulratio(float_one(), 0, 0, 1) === 0) + // ASSERT(float_mulratio(0, 0, 1, 1) === 0) + // ASSERT(float_mulratio(float_one(), 0, 1, 1) === float_one()) + // ASSERT( + // float_mulratio(float_negate(float_one()), 0, 1, 1) === + // float_negate(float_one()) + // ) + // ASSERT( + // float_mulratio(7801234554605699072n, 0, 4294967295, 1) === XFL_OVERFLOW + // ) + // ASSERT(float_mulratio(7801234554605699072n, 0, 10, 1) === XFL_OVERFLOW) + // ASSERT(float_mulratio(3189548536178311168n, 0, 10, 1) === XFL_OVERFLOW) + // ASSERT(float_mulratio(3189548536178311168n, 0, 1, 1) === 3189548536178311168n) + // ASSERT( + // float_mulratio(2296131684119423544n, 0, 2210828011, 2814367554) === + // 2294351094683836182n + // ) + // ASSERT( + // float_mulratio(565488225163275031n, 0, 2373474507, 4203973264) === + // 562422045628095449n + // ) + // ASSERT( + // float_mulratio(2292703263479286183n, 0, 3170020147, 773892643) === + // 2307839765178024100n + // ) + // ASSERT( + // float_mulratio(758435948837102675n, 0, 3802740780, 1954123588) === + // 760168290112163547n + // ) + // ASSERT( + // float_mulratio(3063742137774439410n, 0, 2888815591, 4122448592) === + // 3053503824756415637n + // ) + // ASSERT( + // float_mulratio(974014561126802184n, 0, 689168634, 3222648522) === + // 957408554638995792n + // ) + // ASSERT( + // float_mulratio(2978333847445611553n, 0, 1718558513, 2767410870) === + // 2976075722223325259n + // ) + // ASSERT( + // float_mulratio(6577058837932757648n, 0, 1423256719, 1338068927) === + // 6577173649752398013n + // ) + // ASSERT( + // float_mulratio(2668681541248816636n, 0, 345215754, 4259223936) === + // 2650183845127530219n + // ) + // ASSERT( + // float_mulratio(651803640367065917n, 0, 327563234, 1191613855) === + // 639534906402789367n + // ) + // ASSERT( + // float_mulratio(3154958130393015979n, 0, 1304112625, 3024066701) === + // 3153571282364880741n + // ) + // ASSERT( + // float_mulratio(1713286099776800976n, 0, 1902151138, 2927030061) === + // 1712614441093927707n + // ) + // ASSERT( + // float_mulratio(2333142120591277120n, 0, 914099656, 108514965) === + // 2349692988167140473n + // ) + // ASSERT( + // float_mulratio(995968561418010814n, 0, 1334462574, 846156977) === + // 998955931389416093n + // ) + // ASSERT( + // float_mulratio(6276035843030312442n, 0, 2660687613, 236740983) === + // 6294920527635363073n + // ) + // ASSERT( + // float_mulratio(7333118474702086419n, 0, 46947714, 2479204760) === + // 7298214153648998534n + // ) + // ASSERT( + // float_mulratio(2873297486994296492n, 0, 880591893, 436034100) === + // 2884122995598532758n + // ) + // ASSERT( + // float_mulratio(1935815261812737573n, 0, 3123665800, 3786746543) === + // 1934366328810191207n + // ) + // ASSERT( + // float_mulratio(7249556282125616118n, 0, 2378803159, 2248850590) === + // 7250005170160875416n + // ) + // ASSERT( + // float_mulratio(311005347529659996n, 0, 992915590, 2433548552) === + // 308187142737041831n + // ) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_mulratio"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_mulratio"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_multiply(FeatureBitset features) + { + testcase("Test float_multiply"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0dU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x18U, + 0x58U, 0x46U, 0x4cU, 0x5fU, 0x4fU, 0x56U, 0x45U, 0x52U, 0x46U, + 0x4cU, 0x4fU, 0x57U, 0x1aU, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, + 0x49U, 0x44U, 0x5fU, 0x46U, 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, + 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x28U, 0x77U, 0x61U, 0x73U, 0x6dU, + 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, 0x37U, + 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, + 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, + 0x06U, 0x61U, 0x72U, 0x67U, 0x1cU, 0x66U, 0x6cU, 0x6fU, 0x61U, + 0x74U, 0x5fU, 0x6dU, 0x75U, 0x6cU, 0x74U, 0x69U, 0x70U, 0x6cU, + 0x79U, 0x12U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, + 0x6eU, 0x65U, 0x18U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, + 0x6eU, 0x65U, 0x67U, 0x61U, 0x74U, 0x65U, 0x0cU, 0x61U, 0x63U, + 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, + 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x6cU, 0x01U, + 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe7U, 0x00U, 0x00U, + 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xe2U, 0x39U, 0xe5U, 0x00U, 0x00U, + 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x01U, 0x4dU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe7U, + 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xd0U, 0x03U, 0x01U, 0x0bU, + 0x97U, 0x00U, 0x1eU, 0x0cU, 0x3fU, 0x26U, 0x26U, 0x00U, 0x08U, + 0xd2U, 0x05U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, + 0x01U, 0x03U, 0x00U, 0x00U, 0x16U, 0x01U, 0xd2U, 0x03U, 0x00U, + 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, 0x38U, 0xeaU, 0x00U, + 0x00U, 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, + 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xd0U, 0x03U, 0x02U, + 0x03U, 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, + 0x01U, 0x00U, 0x01U, 0x05U, 0x00U, 0x84U, 0x01U, 0xd1U, 0x09U, + 0x01U, 0xd6U, 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x06U, 0x38U, + 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, 0xe4U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0x06U, 0xf2U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xb6U, 0x38U, 0xedU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, 0xe6U, 0x00U, 0x00U, 0x00U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xb7U, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xb7U, + 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0xb7U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, + 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, 0xedU, + 0x00U, 0x00U, 0x00U, 0xf0U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, + 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0x38U, 0xeeU, 0x00U, 0x00U, + 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0xf2U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xf1U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, + 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, + 0xf1U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0x38U, + 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xf1U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, + 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf1U, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xf1U, 0xf2U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0xc1U, 0x01U, + 0xf2U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x02U, 0xc1U, 0x03U, 0xf2U, 0x38U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x04U, 0xc1U, + 0x05U, 0xf2U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x06U, 0xc1U, 0x07U, 0xf2U, 0x38U, 0xe5U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x08U, + 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf2U, 0xc1U, 0x09U, + 0xf2U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, + 0xc1U, 0x0aU, 0xf2U, 0xc1U, 0x0bU, 0xf2U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x0cU, 0xc1U, 0x0dU, 0xf2U, 0xc1U, 0x0eU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x0fU, 0xc1U, 0x10U, 0xf2U, 0xc1U, 0x11U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x12U, 0xc1U, 0x13U, 0xf2U, 0xc1U, + 0x14U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x15U, 0xc1U, 0x16U, + 0xf2U, 0xc1U, 0x17U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x18U, + 0xc1U, 0x19U, 0xf2U, 0xc1U, 0x1aU, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x1bU, 0xc1U, 0x1cU, 0xf2U, 0xc1U, 0x1dU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x1eU, 0xc1U, 0x1fU, 0xf2U, 0xc1U, 0x20U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x21U, 0xc1U, 0x22U, 0xf2U, + 0xc1U, 0x23U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x24U, 0xc1U, + 0x25U, 0xf2U, 0xc1U, 0x26U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x27U, 0xc1U, 0x28U, 0xf2U, 0xc1U, 0x29U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x2aU, 0xc1U, 0x2bU, 0xf2U, 0xc1U, 0x2cU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x2dU, 0xc1U, 0x2eU, 0xf2U, 0xc1U, + 0x2fU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x30U, 0xc1U, 0x31U, + 0xf2U, 0xc1U, 0x32U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x33U, + 0xc1U, 0x34U, 0xf2U, 0xc1U, 0x35U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x36U, 0xc1U, 0x37U, 0xf2U, 0xc1U, 0x38U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x39U, 0xc1U, 0x3aU, 0xf2U, 0xc1U, 0x3bU, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x3cU, 0xc1U, 0x3dU, 0xf2U, + 0xc1U, 0x3eU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x3fU, 0xc1U, + 0x40U, 0xf2U, 0xc1U, 0x41U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x42U, 0xc1U, 0x43U, 0xf2U, 0xc1U, 0x44U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x45U, 0xc1U, 0x46U, 0xf2U, 0xc1U, 0x47U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x48U, 0xc1U, 0x49U, 0xf2U, 0xc1U, + 0x4aU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x4bU, 0xc1U, 0x4cU, + 0xf2U, 0xc1U, 0x4dU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x4eU, + 0xc1U, 0x4fU, 0xf2U, 0xc1U, 0x50U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x51U, 0xc1U, 0x52U, 0xf2U, 0xc1U, 0x53U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x54U, 0xc1U, 0x55U, 0xf2U, 0xc1U, 0x56U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x57U, 0xc1U, 0x58U, 0xf2U, + 0xc1U, 0x59U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x5aU, 0xc1U, + 0x5bU, 0xf2U, 0xc1U, 0x5cU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x5dU, 0xc1U, 0x5eU, 0xf2U, 0xc1U, 0x5fU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x60U, 0xc1U, 0x61U, 0xf2U, 0xc1U, 0x62U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x63U, 0xc1U, 0x64U, 0xf2U, 0xc1U, + 0x65U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x66U, 0xc1U, 0x67U, + 0xf2U, 0xc1U, 0x68U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x69U, + 0xc1U, 0x6aU, 0xf2U, 0xc1U, 0x6bU, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xc1U, 0x6cU, 0xc1U, 0x6dU, 0xf2U, 0xc1U, 0x6eU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xc1U, 0x6fU, 0xc1U, 0x70U, 0xf2U, 0xc1U, 0x71U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x72U, 0xc1U, 0x73U, 0xf2U, + 0xc1U, 0x74U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x75U, 0xc1U, + 0x76U, 0xf2U, 0xc1U, 0x77U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, + 0x78U, 0xc1U, 0x79U, 0xf2U, 0xc1U, 0x7aU, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xc1U, 0x7bU, 0xc1U, 0x7cU, 0xf2U, 0xc1U, 0x7dU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x7eU, 0xc1U, 0x7fU, 0xf2U, 0xc1U, + 0x80U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x81U, 0xc1U, 0x82U, + 0xf2U, 0xc1U, 0x83U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xefU, 0x00U, + 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xd0U, 0x03U, 0x0aU, + 0xeeU, 0x01U, 0x03U, 0x85U, 0x85U, 0x85U, 0x71U, 0x71U, 0xa3U, + 0x1cU, 0x7bU, 0x44U, 0x0dU, 0x1cU, 0x7bU, 0x44U, 0x0dU, 0x1cU, + 0x99U, 0x26U, 0x0dU, 0x1cU, 0x53U, 0x0dU, 0x1cU, 0x53U, 0x0dU, + 0x1cU, 0x53U, 0x0dU, 0x1cU, 0x53U, 0x0dU, 0x1cU, 0x54U, 0x0dU, + 0x1cU, 0x54U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, + 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, + 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, + 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, + 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, + 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, + 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, + 0x26U, 0x0fU, 0x18U, 0x0dU, 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, + 0x1cU, 0x26U, 0x0fU, 0x18U, 0x0dU, 0x2bU, 0x0aU, 0x88U, 0x02U, + 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0xd8U, 0x0aU, 0x88U, + 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0xd8U, 0x0aU, + 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0xd8U, + 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, + 0xa9U, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, + 0x87U, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, + 0x1aU, 0x87U, 0xd8U, 0x0aU, 0x84U, 0x02U, 0x06U, 0x1aU, 0x93U, + 0xfaU, 0x35U, 0x0eU, 0xb1U, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, + 0x49U, 0xfdU, 0x1aU, 0x87U, 0xa9U, 0x0aU, 0x84U, 0x02U, 0x06U, + 0x1aU, 0x93U, 0xfaU, 0x35U, 0x0eU, 0xb1U, 0x0aU, 0x84U, 0x02U, + 0x06U, 0x1aU, 0x93U, 0xfaU, 0x35U, 0x0eU, 0xb1U, 0x0aU, 0x84U, + 0x02U, 0x06U, 0x1aU, 0x93U, 0xfaU, 0x35U, 0x0eU, 0xb1U, 0x0aU, + 0x84U, 0x02U, 0x06U, 0x1aU, 0x93U, 0xfaU, 0x35U, 0x0eU, 0xb1U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x5eU, 0x40U, 0x49U, 0x17U, 0x37U, + 0xc4U, 0x43U, 0xd8U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xc8U, 0x60U, + 0xa1U, 0xffU, 0x75U, 0x5cU, 0x17U, 0x84U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xc2U, 0x85U, 0xa6U, 0xfdU, 0xbbU, 0x47U, 0x96U, 0xb3U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x1eU, 0x14U, 0x1dU, 0xa5U, 0x35U, + 0xe7U, 0x21U, 0xd1U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x70U, 0xe2U, + 0x3bU, 0xf7U, 0x85U, 0x75U, 0x04U, 0xe2U, 0x0aU, 0x84U, 0x02U, + 0x08U, 0x68U, 0x8dU, 0xa3U, 0xebU, 0x3dU, 0x9bU, 0x3dU, 0x89U, + 0x0aU, 0x84U, 0x02U, 0x08U, 0x58U, 0x41U, 0x8fU, 0xc0U, 0xfaU, + 0x54U, 0x35U, 0x9cU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x68U, 0x71U, + 0x8fU, 0xf6U, 0xe1U, 0xdbU, 0xbcU, 0x89U, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x58U, 0x44U, 0xdeU, 0x6bU, 0xe9U, 0x5bU, 0x5bU, 0xbcU, + 0x0aU, 0x80U, 0x02U, 0x08U, 0xa0U, 0x9aU, 0xa2U, 0x79U, 0x12U, + 0x30U, 0xe4U, 0xeeU, 0x0aU, 0xf8U, 0x01U, 0x08U, 0x80U, 0xe6U, + 0xd7U, 0x00U, 0x92U, 0xc9U, 0x5aU, 0xc2U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x9aU, 0xbbU, 0xd8U, 0xe8U, 0x4dU, 0x3fU, 0x1eU, 0x9fU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x48U, 0x91U, 0xe8U, 0x20U, 0x3eU, + 0x33U, 0x23U, 0x97U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xf8U, 0x68U, + 0xa4U, 0x50U, 0xc6U, 0x09U, 0xb0U, 0xd7U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xe8U, 0x45U, 0xf2U, 0xf6U, 0x4bU, 0xccU, 0x17U, 0xc6U, + 0x0aU, 0x84U, 0x02U, 0x08U, 0xd4U, 0x10U, 0xbdU, 0x3eU, 0x10U, + 0x0eU, 0x2aU, 0x8dU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x2aU, 0xddU, + 0xebU, 0x49U, 0xe5U, 0x02U, 0x18U, 0xafU, 0x0aU, 0x84U, 0x02U, + 0x08U, 0x94U, 0x8aU, 0xf8U, 0xb3U, 0x2aU, 0x36U, 0x0eU, 0x9aU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x4eU, 0x67U, 0x68U, 0x18U, 0x66U, + 0x90U, 0x44U, 0x8bU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xe8U, 0x5aU, + 0xbfU, 0x36U, 0xddU, 0xc7U, 0x39U, 0xb7U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xa6U, 0xf5U, 0xfeU, 0x61U, 0x75U, 0xc1U, 0xb7U, 0x99U, + 0x0aU, 0xfcU, 0x01U, 0x08U, 0x30U, 0xc7U, 0x44U, 0x78U, 0x69U, + 0xcaU, 0x28U, 0xc6U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x60U, 0xeeU, + 0x5bU, 0x55U, 0x73U, 0x2aU, 0x53U, 0xa0U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xd4U, 0xe6U, 0xebU, 0xe3U, 0x21U, 0x38U, 0x14U, 0x98U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x5aU, 0x6bU, 0xdbU, 0x0bU, 0x6cU, + 0xa6U, 0x23U, 0xc3U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0x80U, 0xc7U, + 0x8dU, 0x95U, 0x92U, 0x8fU, 0x12U, 0x84U, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x50U, 0x73U, 0xf8U, 0x1fU, 0x67U, 0xc5U, 0x82U, 0x8aU, + 0x0aU, 0x80U, 0x02U, 0x08U, 0x90U, 0xffU, 0xbaU, 0xedU, 0xbcU, + 0x6dU, 0xbeU, 0x92U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x1cU, 0x5bU, + 0xeeU, 0x34U, 0xf4U, 0x32U, 0x1aU, 0x88U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0xc0U, 0x7aU, 0x61U, 0x11U, 0xdeU, 0xc6U, 0x08U, 0xc0U, + 0x0aU, 0x80U, 0x02U, 0x08U, 0xf0U, 0x33U, 0xe4U, 0xabU, 0x4bU, + 0xb9U, 0x34U, 0xe4U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x08U, 0x18U, + 0xc7U, 0x0eU, 0x5fU, 0xafU, 0xe9U, 0xe6U, 0x0aU, 0x88U, 0x02U, + 0x08U, 0x48U, 0xfcU, 0xf8U, 0xceU, 0x63U, 0xd6U, 0x0aU, 0xcaU, + 0x0aU, 0x84U, 0x02U, 0x08U, 0x88U, 0x1eU, 0x7aU, 0xf6U, 0x0aU, + 0xb9U, 0x70U, 0x87U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x32U, 0x6eU, + 0x40U, 0xf0U, 0x92U, 0xb2U, 0xa8U, 0x82U, 0x0aU, 0xfcU, 0x01U, + 0x08U, 0xa0U, 0x1dU, 0x40U, 0x4fU, 0x77U, 0x41U, 0x02U, 0xedU, + 0x0aU, 0x88U, 0x02U, 0x07U, 0x1fU, 0x3eU, 0x78U, 0x52U, 0x56U, + 0x35U, 0xb0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x7cU, 0xdcU, 0xf6U, + 0x8aU, 0x84U, 0xddU, 0xb0U, 0xb3U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0xeaU, 0x63U, 0xb0U, 0xc1U, 0x52U, 0xaeU, 0x24U, 0xbbU, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x80U, 0x4eU, 0x77U, 0x76U, 0x08U, 0x66U, + 0x5bU, 0x80U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0x60U, 0xffU, 0xa7U, + 0xb3U, 0xf5U, 0xf4U, 0x39U, 0x9cU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x94U, 0x01U, 0x3cU, 0x1dU, 0xf9U, 0xbeU, 0x15U, 0x81U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x96U, 0xa6U, 0xf1U, 0x8fU, 0xd5U, 0x50U, + 0x9eU, 0xa0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x94U, 0x4eU, 0xe5U, + 0x4aU, 0x8aU, 0x1bU, 0x88U, 0xadU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x6aU, 0x09U, 0xf7U, 0xb0U, 0x6cU, 0x97U, 0x22U, 0xa5U, 0x0aU, + 0x80U, 0x02U, 0x08U, 0xc0U, 0xe8U, 0x27U, 0x82U, 0x8eU, 0x82U, + 0xb9U, 0xe6U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x80U, 0xa8U, 0x69U, + 0x84U, 0xc7U, 0x55U, 0x91U, 0xb8U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0xdeU, 0x92U, 0x48U, 0x0fU, 0x1aU, 0xb7U, 0x17U, 0xbfU, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x80U, 0x1aU, 0x6fU, 0xc5U, 0xdbU, 0xf9U, + 0x7aU, 0xcaU, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x20U, 0xb6U, 0x44U, + 0x7eU, 0xa7U, 0xf7U, 0xbeU, 0xf8U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x42U, 0x67U, 0x54U, 0xffU, 0x1bU, 0x54U, 0x0aU, 0xa9U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x8cU, 0x7fU, 0xbbU, 0xe9U, 0x6eU, 0x2cU, + 0xaeU, 0xb7U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x8cU, 0x78U, 0xc2U, + 0x1aU, 0x65U, 0x00U, 0xb1U, 0xabU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x3cU, 0x82U, 0xddU, 0x0dU, 0xcaU, 0xd7U, 0x9fU, 0xbaU, 0x0aU, + 0xf8U, 0x01U, 0x08U, 0xc0U, 0xc7U, 0xf6U, 0xbaU, 0xd0U, 0x05U, + 0x4eU, 0x94U, 0x0aU, 0x80U, 0x02U, 0x08U, 0xb0U, 0xd4U, 0x1eU, + 0x51U, 0x83U, 0x57U, 0xc1U, 0xacU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x04U, 0xcdU, 0x16U, 0xa2U, 0x9cU, 0xdaU, 0xaeU, 0x8bU, 0x0aU, + 0x84U, 0x02U, 0x08U, 0x2cU, 0x35U, 0xa5U, 0xfeU, 0xb8U, 0x35U, + 0x2cU, 0x81U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xb0U, 0x40U, 0x64U, + 0xc9U, 0x50U, 0x7fU, 0x19U, 0x9dU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0xcaU, 0x33U, 0x7eU, 0xdaU, 0x5aU, 0xf2U, 0x8aU, 0xabU, 0x0aU, + 0x80U, 0x02U, 0x08U, 0xe8U, 0x0cU, 0xc0U, 0x6fU, 0xa7U, 0x17U, + 0x1cU, 0x8dU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xcaU, 0x0cU, 0xccU, + 0x45U, 0x35U, 0xbaU, 0xb6U, 0x93U, 0x0aU, 0xf8U, 0x01U, 0x08U, + 0x20U, 0x85U, 0xc4U, 0x42U, 0xfbU, 0x40U, 0x6bU, 0xe3U, 0x0aU, + 0x80U, 0x02U, 0x08U, 0x58U, 0x4dU, 0x9bU, 0x8fU, 0xf0U, 0x6fU, + 0x1fU, 0xd6U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xd0U, 0x90U, 0x78U, + 0xd4U, 0x12U, 0x6cU, 0xc4U, 0x80U, 0x0aU, 0xf8U, 0x01U, 0x08U, + 0x40U, 0x79U, 0x87U, 0xfeU, 0x41U, 0x17U, 0x79U, 0xd8U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0xf0U, 0x7fU, 0xe2U, 0x9bU, 0xa9U, 0x6eU, + 0x32U, 0xa7U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x90U, 0x3eU, 0x4aU, + 0x8dU, 0x82U, 0xfeU, 0xafU, 0xd1U, 0x0aU, 0xfcU, 0x01U, 0x08U, + 0x10U, 0xbbU, 0x8eU, 0xe6U, 0xf4U, 0x9dU, 0x32U, 0xc5U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x86U, 0xbcU, 0x23U, 0x9dU, 0xdeU, 0xc6U, + 0xa3U, 0xb6U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x84U, 0xe4U, 0x2aU, + 0x57U, 0x7bU, 0x1fU, 0x18U, 0xabU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x20U, 0xefU, 0xe6U, 0x51U, 0x71U, 0x25U, 0x0cU, 0xb9U, 0x0aU, + 0x84U, 0x02U, 0x08U, 0x90U, 0xecU, 0x4bU, 0x6fU, 0x88U, 0x3bU, + 0x14U, 0x8cU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x02U, 0x2dU, 0xa3U, + 0x0aU, 0x2aU, 0x6aU, 0xc5U, 0xa2U, 0x0aU, 0x84U, 0x02U, 0x08U, + 0x08U, 0xf5U, 0x07U, 0x0bU, 0x04U, 0xc4U, 0x13U, 0x80U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0xe2U, 0x66U, 0x7aU, 0x22U, 0x38U, 0xb7U, + 0xa5U, 0xbbU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xdaU, 0x24U, 0xc0U, + 0x34U, 0x0fU, 0xf4U, 0x30U, 0xa5U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0x6cU, 0x4cU, 0x9cU, 0x88U, 0x08U, 0xfcU, 0x19U, 0xb8U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0xdeU, 0xa1U, 0x92U, 0xe1U, 0x9dU, 0x91U, + 0x40U, 0xb4U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0x80U, 0x65U, 0x56U, + 0xf7U, 0x05U, 0xf1U, 0xccU, 0xfaU, 0x0aU, 0xfcU, 0x01U, 0x07U, + 0xb5U, 0x8bU, 0x08U, 0x5eU, 0xc0U, 0x45U, 0xd9U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0xdcU, 0xb5U, 0x05U, 0xc7U, 0x41U, 0x9eU, 0x9aU, + 0xbbU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x30U, 0x39U, 0xd7U, 0xddU, + 0x23U, 0x1aU, 0x0fU, 0x83U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xb8U, + 0x11U, 0x67U, 0x1fU, 0x3fU, 0x93U, 0xb8U, 0x95U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0xc8U, 0x82U, 0xf7U, 0xfbU, 0xa7U, 0xb0U, 0xdaU, + 0x88U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x8cU, 0xdfU, 0x4bU, 0x46U, + 0xfaU, 0x94U, 0x13U, 0xbfU, 0x0aU, 0x80U, 0x02U, 0x08U, 0x18U, + 0x7dU, 0xa0U, 0x35U, 0xe3U, 0x44U, 0x3cU, 0xe2U, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x38U, 0x4bU, 0xcfU, 0xcaU, 0xacU, 0x86U, 0x81U, + 0x9eU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xa4U, 0x66U, 0xb5U, 0x53U, + 0x83U, 0x92U, 0x8eU, 0x87U, 0x0aU, 0xf4U, 0x01U, 0x08U, 0x80U, + 0xd6U, 0x02U, 0xdaU, 0x5fU, 0x21U, 0x4dU, 0xc8U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x8eU, 0xa8U, 0x49U, 0xa6U, 0xadU, 0xa2U, 0x30U, + 0xa2U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x5cU, 0xeaU, 0x94U, 0x37U, + 0x96U, 0x68U, 0x1eU, 0x92U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x30U, + 0xbcU, 0xbcU, 0x63U, 0x6bU, 0xd0U, 0x94U, 0x8bU, 0x0aU, 0x88U, + 0x02U, 0x08U, 0xd8U, 0x6dU, 0xf1U, 0x9fU, 0xb0U, 0xb9U, 0x99U, + 0xa7U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x64U, 0x06U, 0x56U, 0xe7U, + 0xe7U, 0xa9U, 0xb5U, 0xceU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xb8U, + 0x6cU, 0x9fU, 0x8fU, 0xd6U, 0x6dU, 0x93U, 0xcdU, 0x0aU, 0xfcU, + 0x01U, 0x08U, 0xa0U, 0x22U, 0x59U, 0xefU, 0x1fU, 0x1dU, 0xa0U, + 0xd0U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xe0U, 0xadU, 0x28U, 0xfaU, + 0xa2U, 0xf4U, 0x4fU, 0xf4U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xf0U, + 0xf9U, 0xf3U, 0xd1U, 0xe1U, 0x26U, 0x9cU, 0x8fU, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x22U, 0xddU, 0x81U, 0x7aU, 0x52U, 0xd0U, 0x0aU, + 0x9eU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x46U, 0x3aU, 0xfdU, 0x44U, + 0x48U, 0xafU, 0xacU, 0x99U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x1cU, + 0x90U, 0xf4U, 0x26U, 0x75U, 0x01U, 0xc4U, 0x8eU, 0x0aU, 0xfcU, + 0x01U, 0x08U, 0xb0U, 0x8cU, 0xb4U, 0x2dU, 0x08U, 0x8aU, 0x63U, + 0x85U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x10U, 0xaaU, 0x88U, 0x85U, + 0x65U, 0xd5U, 0xb5U, 0xafU, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xd0U, + 0x20U, 0xa1U, 0x91U, 0xedU, 0x5eU, 0x0dU, 0xbdU, 0x0aU, 0x80U, + 0x02U, 0x08U, 0x30U, 0xe6U, 0xa6U, 0x8cU, 0x0dU, 0xd1U, 0x5cU, + 0xd0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x44U, 0xa3U, 0xe5U, 0x62U, + 0x7dU, 0x34U, 0x9aU, 0x86U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xc0U, + 0x0bU, 0x73U, 0x1cU, 0x4dU, 0x76U, 0x44U, 0x90U, 0x0aU, 0x84U, + 0x02U, 0x08U, 0xdcU, 0xf2U, 0x30U, 0x8aU, 0x53U, 0x59U, 0x32U, + 0xa7U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x58U, 0x59U, 0xacU, 0x06U, + 0x13U, 0x6cU, 0xf1U, 0xacU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x3aU, + 0xb2U, 0xfaU, 0x33U, 0x48U, 0x62U, 0x15U, 0xd6U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0x68U, 0xb4U, 0x26U, 0xc4U, 0xc5U, 0x7aU, 0xa5U, + 0x95U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xe0U, 0xbcU, 0x57U, 0x15U, + 0x03U, 0x65U, 0x2fU, 0xe2U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0xa0U, + 0x98U, 0x81U, 0x18U, 0x0bU, 0x23U, 0x4eU, 0x92U, 0x0aU, 0x84U, + 0x02U, 0x07U, 0xc0U, 0x5bU, 0x49U, 0xa6U, 0xf8U, 0x43U, 0x9cU, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x0aU, 0x5dU, 0xa6U, 0xc4U, 0xa6U, + 0xd0U, 0x35U, 0x89U, 0x0aU, 0x80U, 0x02U, 0x08U, 0xc8U, 0x45U, + 0xadU, 0xaeU, 0xc9U, 0xf5U, 0x66U, 0xbaU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0xf0U, 0x52U, 0xa1U, 0xd3U, 0xa5U, 0x2fU, 0xefU, 0x98U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xaeU, 0xa9U, 0xdfU, 0x61U, 0xebU, + 0xbdU, 0xc6U, 0xd5U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x44U, 0x84U, + 0x14U, 0x84U, 0x37U, 0x11U, 0x77U, 0xa6U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var XFL_OVERFLOW = -30 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_multiply(void 0, float_one()) === INVALID_ARGUMENT) + // ASSERT(float_multiply(float_one(), void 0) === INVALID_ARGUMENT) + // ASSERT(float_multiply(-1, float_one()) === INVALID_FLOAT) + // ASSERT(float_multiply(float_one(), 0) === 0) + // ASSERT(float_multiply(0, float_one()) === 0) + // ASSERT(float_multiply(float_one(), float_one()) === float_one()) + // ASSERT( + // float_multiply(float_one(), float_negate(float_one())) === + // float_negate(float_one()) + // ) + // ASSERT( + // float_multiply(float_negate(float_one()), float_one()) === + // float_negate(float_one()) + // ) + // ASSERT( + // float_multiply(float_negate(float_one()), float_negate(float_one())) === + // float_one() + // ) + // ASSERT( + // float_multiply(7801234554605699072n, 7801234554605699072n) === XFL_OVERFLOW + // ) + // ASSERT( + // float_multiply(7801234554605699072n, 6107881094714392576n) === XFL_OVERFLOW + // ) + // ASSERT( + // float_multiply(6107881094714392576n, 7801234554605699072n) === XFL_OVERFLOW + // ) + // ASSERT( + // float_multiply(3189548536178311168n, 6107881094714392576n) === XFL_OVERFLOW + // ) + // ASSERT( + // float_multiply(3189548536178311168n, float_one()), + // 3189548536178311168n + // ) + // ASSERT( + // float_multiply(float_one(), 3189548536178311168n), + // 3189548536178311168n + // ) + // ASSERT( + // float_multiply( + // 7791757438262485039n, + // 4759088999670263908n + // /* 3.287793167020132e-74 */ + // ) === 6470304726017852129n + // /* 3.135661113819873e+21 */ + // ) + // ASSERT( + // float_multiply( + // 7534790022873909775n, + // 1017891960669847079n + // /* -9.085644138855975e-26 */ + // ) === 2472307761756037978n + // /* -4.335165957006171e+55 */ + // ) + // ASSERT( + // float_multiply( + // 2813999069907898454n, + // 4962524721184225460n + // /* 8.56513107667986e-63 */ + // ) === 1696567870013294731n + // /* -3214410121988.235 */ + // ) + // ASSERT( + // float_multiply( + // 2151742066453140308n, + // 437647738130579252n + // /* -5.302173903011636e-58 */ + // ) === 5732835652591705549n + // /* 4.256926576434637e-20 */ + // ) + // ASSERT( + // float_multiply( + // 5445302332922546340n, + // 7770966530708354172n + // /* 6.760773121619068e+93 */ + // ) === 7137051085305881332n + // /* 3.349275551015668e+58 */ + // ) + // ASSERT( + // float_multiply( + // 2542989542826132533n, + // 6308418769944702613n + // /* 3379291626008.213 */ + // ) === 2775217422137696933n + // /* -1.000051677471398e+72 */ + // ) + // ASSERT( + // float_multiply( + // 5017652318929433511n, + // 6601401767766764916n + // /* 8.131913296358772e+28 */ + // ) === 5538267259220228819n + // /* 7.846916809259732e-31 */ + // ) + // ASSERT( + // float_multiply( + // 892430323307269235n, + // 1444078017997143500n + // /* -0.0292613723858478 */ + // ) === 5479222755754111850n + // /* 2.845608871588714e-34 */ + // ) + // ASSERT( + // float_multiply( + // 7030632722283214253n, + // 297400838197636668n + // /* -9.170462045924924e-66 */ + // ) === 1247594596364389994n + // /* -4.601099210133098e-13 */ + // ) + // ASSERT( + // float_multiply( + // 1321751204165279730n, + // 2451801790748530375n + // /* -1.843593458980551e+54 */ + // ) === 6918764256086244704n + // /* 1.235228445162848e+46 */ + // ) + // ASSERT( + // float_multiply( + // 2055496484261758590n, + // 2079877890137711361n + // /* -8.222061547283201e+33 */ + // ) === 7279342234795540004n + // /* 1.525236964818469e+66 */ + // ) + // ASSERT( + // float_multiply( + // 2439875962311968674n, + // 4707485682591872793n + // /* 5.727671617074969e-77 */ + // ) === 1067392794851803610n + // /* -4.543282792366554e-23 */ + // ) + // ASSERT( + // float_multiply( + // 6348574818322812800n, + // 6474046245013515838n + // /* 6.877180109483582e+21 */ + // ) === 6742547427357110773n + // /* 5.162384810848757e+36 */ + // ) + // ASSERT( + // float_multiply( + // 1156137305783593424n, + // 351790564990861307n + // /* -9.516993310703611e-63 */ + // ) === 4650775291275116746n + // /* 3.060475828764875e-80 */ + // ) + // ASSERT( + // float_multiply( + // 5786888485280994123n, + // 6252137323085080394n + // /* 1141040294.831946 */ + // ) === 5949619829273756853n + // /* 4.868321144702132e-8 */ + // ) + // ASSERT( + // float_multiply( + // 2078182880999439640n, + // 1662438186251269392n + // /* -51135233789.26864 */ + // ) === 6884837854131013999n + // /* 3.33762350889611e+44 */ + // ) + // ASSERT( + // float_multiply( + // 1823781083140711248n, + // 1120252241608199010n + // /* -3.359534020316002e-20 */ + // ) === 6090320310700749729n + // /* 1.453614495839137 */ + // ) + // ASSERT( + // float_multiply( + // 6617782604883935174n, + // 6185835042802056262n + // /* 689635.404973575 */ + // ) === 6723852137583788318n + // /* 4.481493547008287e+35 */ + // ) + // ASSERT( + // float_multiply( + // 333952667495151166n, + // 1556040883317758614n + // /* -68026.1150230799 */ + // ) === 5032611291744396930n + // /* 6.594107598923394e-59 */ + // ) + // ASSERT( + // float_multiply( + // 2326968399632616779n, + // 707513695207834635n + // /* -4.952153338037259e-43 */ + // ) === 6180479299649214949n + // /* 154061.0896894437 */ + // ) + // ASSERT( + // float_multiply( + // 1271003508324696477n, + // 5321949753651889765n + // /* 7.702193354704484e-43 */ + // ) === 512101972406838313n + // /* -7.698814141342762e-54 */ + // ) + // ASSERT( + // float_multiply( + // 1928646740923345323n, + // 4639329980209973352n + // /* 9.629563273103463e-81 */ + // ) === 487453886143282122n + // /* -1.065126387268554e-55 */ + // ) + // ASSERT( + // float_multiply( + // 6023906813956669432n, + // 944348444470060009n + // /* -7.599721976996842e-30 */ + // ) === 888099590592064433n + // /* -5.394063627447218e-33 */ + // ) + // ASSERT( + // float_multiply( + // 6580290597764062787n, + // 6164319297265300034n + // /* 33950.07022461506 */ + // ) === 6667036882686408592n + // /* 1.709434178074513e+32 */ + // ) + // ASSERT( + // float_multiply( + // 2523439530503240484n, + // 5864448766677980801n + // /* 9.769251096336e-13 */ + // ) === 2307233895764065602n + // /* -1.39088655037165e+46 */ + // ) + // ASSERT( + // float_multiply( + // 6760707453987140465n, + // 5951641080643457645n + // /* 6.889572514402925e-8 */ + // ) === 6632955645489194550n + // /* 3.656993999824438e+30 */ + // ) + // ASSERT( + // float_multiply( + // 6494270716308443375n, + // 564752637895553836n + // /* -6.306284101612332e-51 */ + // ) === 978508199357889360n + // /* -5.730679845862224e-28 */ + // ) + // ASSERT( + // float_multiply( + // 6759145618427534062n, + // 4721897842483633304n + // /* 2.125432999353496e-76 */ + // ) === 5394267403342547164n + // /* 7.962249007433949e-39 */ + // ) + // ASSERT( + // float_multiply( + // 1232673571201806425n, + // 6884256144221925318n + // /* 2.75591359980743e+44 */ + // ) === 2037747561727791011n + // /* -2.12053015632682e+31 */ + // ) + // ASSERT( + // float_multiply( + // 1427694775835421031n, + // 4883952867277976402n + // /* 2.050871208358738e-67 */ + // ) === 225519204318055258n + // /* -9.34642220427145e-70 */ + // ) + // ASSERT( + // float_multiply( + // 5843509949864662087n, + // 5264483986612843822n + // /* 4.279621844104494e-46 */ + // ) === 5028946513739275800n + // /* 2.929329593802264e-59 */ + // ) + // ASSERT( + // float_multiply( + // 6038444022009738988n, + // 7447499078040748850n + // /* 7.552493624689458e+75 */ + // ) === 7406652183825856092n + // /* 2.734396428760669e+73 */ + // ) + // ASSERT( + // float_multiply( + // 939565473697468970n, + // 1100284903077087966n + // /* -1.406593998686942e-21 */ + // ) === 5174094397561240824n + // /* 3.962025339911417e-51 */ + // ) + // ASSERT( + // float_multiply( + // 5694071830210473617n, + // 5536709154363579683n + // /* 6.288811952610595e-31 */ + // ) === 5143674525748709390n + // /* 9.570950546343951e-53 */ + // ) + // ASSERT( + // float_multiply( + // 600729862341871819n, + // 6330630279715378440n + // /* 75764028872020.56 */ + // ) === 851415551394320909n + // /* -4.738821448667662e-35 */ + // ) + // ASSERT( + // float_multiply( + // 1876763139233864902n, + // 4849561230315278754n + // /* 3.688031264625058e-69 */ + // ) === 649722744589988028n + // /* -1.204398248636604e-46 */ + // ) + // ASSERT( + // float_multiply( + // 3011947542126279863n, + // 1557732559110376235n + // /* -84942.87294925611 */ + // ) === 7713172080438368541n + // /* 3.009518380079389e+90 */ + // ) + // ASSERT( + // float_multiply( + // 5391579936313268788n, + // 1018647290024655822n + // /* -9.840973493664718e-26 */ + // ) === 329450072133864645n + // /* -5.190898963188932e-64 */ + // ) + // ASSERT( + // float_multiply( + // 2815029221608845312n, + // 4943518985822088837n + // /* 7.57379422402522e-64 */ + // ) === 1678961648155863225n + // /* -362258677403.8713 */ + // ) + // ASSERT( + // float_multiply( + // 1377509900308195934n, + // 7702104197062186199n + // /* 9.95603351337903e+89 */ + // ) === 2998768765665354001n + // /* -8.378613091344656e+84 */ + // ) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_multiply"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_multiply"), fee(XRP(1))); + env.close(); + } + } + // void // test_emit(FeatureBitset features) @@ -1554,6 +4551,668 @@ public: env(pay(alice, bob, XRP(1)), M("test otxn_field"), fee(XRP(1))); } + void + test_float_negate(FeatureBitset features) + { + testcase("Test float_negate"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0bU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x1aU, + 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, + 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, + 0x28U, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, + 0x65U, 0x73U, 0x74U, 0x2dU, 0x39U, 0x2dU, 0x67U, 0x65U, 0x6eU, + 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, + 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, 0x61U, 0x72U, 0x67U, + 0x18U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6eU, 0x65U, + 0x67U, 0x61U, 0x74U, 0x65U, 0x12U, 0x66U, 0x6cU, 0x6fU, 0x61U, + 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x0cU, 0x61U, 0x63U, 0x63U, + 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, 0x01U, + 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x59U, 0x01U, 0xa4U, + 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe5U, + 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, + 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, + 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x00U, + 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xc0U, + 0xd8U, 0xd8U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x01U, + 0x4dU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe6U, 0x00U, 0x00U, + 0x00U, 0xc7U, 0x28U, 0xceU, 0x03U, 0x01U, 0x09U, 0x79U, 0x00U, + 0x18U, 0x0cU, 0x3fU, 0x26U, 0x00U, 0x08U, 0x24U, 0x0cU, 0x02U, + 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, 0x00U, + 0x16U, 0x01U, 0xd0U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, + 0xecU, 0x12U, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0xd3U, 0x42U, + 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, 0xf2U, + 0x0eU, 0x29U, 0xceU, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x59U, + 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x04U, + 0x00U, 0x06U, 0xcbU, 0x01U, 0x01U, 0xd4U, 0x03U, 0x00U, 0x01U, + 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, + 0x00U, 0x00U, 0x06U, 0xf1U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xebU, 0x00U, 0x00U, 0x00U, 0xb6U, 0xf1U, 0x38U, 0xe5U, 0x00U, + 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0x8dU, + 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, + 0x00U, 0xb7U, 0xf1U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xf0U, 0xadU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xf0U, + 0xf1U, 0xf1U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, + 0x00U, 0x00U, 0x00U, 0xc1U, 0x01U, 0xf1U, 0xc1U, 0x02U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xebU, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xf0U, + 0xf1U, 0xc1U, 0x03U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xebU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x04U, + 0xf1U, 0xc1U, 0x05U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xedU, 0x00U, + 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xceU, 0x03U, 0x09U, + 0x0bU, 0x03U, 0x68U, 0x67U, 0x72U, 0x54U, 0x85U, 0xa5U, 0x5dU, + 0x71U, 0x5eU, 0x2bU, 0x0aU, 0x94U, 0x01U, 0x05U, 0xc0U, 0x8bU, + 0x8cU, 0x10U, 0xa4U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xf0U, 0x08U, + 0x2bU, 0xdaU, 0x06U, 0x9cU, 0x18U, 0xb4U, 0x0aU, 0x80U, 0x02U, + 0x08U, 0xc0U, 0x23U, 0xacU, 0x68U, 0x1bU, 0x70U, 0x62U, 0xd0U, + 0x0aU, 0x80U, 0x02U, 0x06U, 0x34U, 0x26U, 0xf5U, 0x6bU, 0x1cU, + 0xa4U, 0x0aU, 0x80U, 0x02U, 0x07U, 0x46U, 0x48U, 0x23U, 0x5eU, + 0xbbU, 0x20U, 0xccU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x80U, 0x11U, + 0xd2U, 0x88U, 0xd7U, 0x2eU, 0x08U, 0xb3U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback(x.toString(), 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_negate(void 0) === INVALID_ARGUMENT) + // { + // ASSERT(float_negate(-1) === INVALID_FLOAT) + // ASSERT(float_negate(-11010191919n) === INVALID_FLOAT) + // } + // ASSERT(float_negate(0) === 0) + // { + // ASSERT(float_negate(float_one()) !== float_one()) + // ASSERT(float_negate(float_negate(float_one())) === float_one()) + // } + // { + // ASSERT(float_negate(6488646939756037240n) === 1876960921328649336n) + // ASSERT(float_negate(float_one()) === 1478180677777522688n) + // ASSERT(float_negate(1838620299498162368n) === 6450306317925550272n) + // } + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_negate"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_negate"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_one(FeatureBitset features) + { + testcase("Test float_one"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x07U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x2aU, 0x77U, + 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, + 0x74U, 0x2dU, 0x31U, 0x30U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, + 0x6aU, 0x73U, 0x06U, 0x61U, 0x72U, 0x67U, 0x02U, 0x66U, 0x12U, + 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, + 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, 0x10U, 0x72U, + 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x0cU, 0x00U, + 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, + 0x01U, 0x1aU, 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xc8U, 0x03U, + 0x01U, 0x04U, 0x1fU, 0x00U, 0x06U, 0x0aU, 0x0cU, 0x02U, 0x06U, + 0x00U, 0x00U, 0x01U, 0x01U, 0x01U, 0x03U, 0x00U, 0x01U, 0x25U, + 0x02U, 0xcaU, 0x03U, 0x00U, 0x01U, 0x00U, 0xccU, 0x03U, 0x01U, + 0x00U, 0x30U, 0x61U, 0x00U, 0x00U, 0x38U, 0xe7U, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xcbU, 0x62U, 0x00U, 0x00U, 0xc1U, 0x00U, 0xacU, + 0xecU, 0x0bU, 0x38U, 0xe8U, 0x00U, 0x00U, 0x00U, 0xc3U, 0xb9U, + 0xf2U, 0xeeU, 0x09U, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0xc3U, + 0xb8U, 0xf2U, 0x29U, 0xc8U, 0x03U, 0x02U, 0x03U, 0x12U, 0x26U, + 0x85U, 0x0aU, 0x88U, 0x02U, 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, + 0x07U, 0xa9U}; + // TestHook hook = jswasm[R"[test.hook]( + // var Hook = (arg) => { + // const f = float_one() + // f === 6089866696204910592n ? accept('', 2) : rollback('', 1) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_one"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_one"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_root(FeatureBitset features) + { + testcase("Test float_root"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0cU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x2aU, + 0x43U, 0x4fU, 0x4dU, 0x50U, 0x4cU, 0x45U, 0x58U, 0x5fU, 0x4eU, + 0x4fU, 0x54U, 0x5fU, 0x53U, 0x55U, 0x50U, 0x50U, 0x4fU, 0x52U, + 0x54U, 0x45U, 0x44U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x2aU, + 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, + 0x73U, 0x74U, 0x2dU, 0x31U, 0x31U, 0x2dU, 0x67U, 0x65U, 0x6eU, + 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, + 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x18U, 0x41U, 0x53U, 0x53U, + 0x45U, 0x52U, 0x54U, 0x2eU, 0x65U, 0x72U, 0x72U, 0x6fU, 0x72U, + 0x06U, 0x61U, 0x72U, 0x67U, 0x14U, 0x66U, 0x6cU, 0x6fU, 0x61U, + 0x74U, 0x5fU, 0x72U, 0x6fU, 0x6fU, 0x74U, 0x12U, 0x66U, 0x6cU, + 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x0cU, 0x61U, + 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, + 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x58U, + 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, + 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, + 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xbfU, 0xd9U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xc2U, + 0x01U, 0x4dU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe6U, 0x00U, + 0x00U, 0x00U, 0xc7U, 0x28U, 0xceU, 0x03U, 0x01U, 0x09U, 0x79U, + 0x00U, 0x18U, 0x0cU, 0x3fU, 0x26U, 0x00U, 0x07U, 0x14U, 0x0cU, + 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, + 0x00U, 0x12U, 0x01U, 0xd0U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, + 0x97U, 0xecU, 0x0eU, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0x04U, + 0xeaU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xceU, + 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x45U, 0x0cU, 0x02U, 0x06U, + 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x04U, 0x00U, 0x05U, 0x9bU, + 0x01U, 0x01U, 0xd6U, 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x06U, + 0xb7U, 0xf2U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xb7U, 0x06U, 0xf2U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, + 0x00U, 0xf0U, 0xb9U, 0xf2U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, + 0xf0U, 0xf2U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0xb9U, 0xf2U, 0xc1U, + 0x01U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x02U, 0xbaU, 0xf2U, + 0xc1U, 0x03U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x04U, 0xb9U, + 0xf2U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, + 0x00U, 0xb7U, 0xbfU, 0x0aU, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, + 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, + 0xceU, 0x03U, 0x09U, 0x09U, 0x03U, 0x6cU, 0x6cU, 0x85U, 0x62U, + 0x62U, 0x71U, 0x5dU, 0x2bU, 0x0aU, 0x88U, 0x02U, 0x06U, 0xf5U, + 0x95U, 0xe7U, 0xf2U, 0x3fU, 0xa9U, 0x0aU, 0x88U, 0x02U, 0x06U, + 0xa7U, 0xdcU, 0xf7U, 0x50U, 0x15U, 0xa9U, 0x0aU, 0x88U, 0x02U, + 0x06U, 0x8dU, 0x49U, 0xfdU, 0x1aU, 0x87U, 0xaaU, 0x0aU, 0x88U, + 0x02U, 0x08U, 0xfcU, 0xffU, 0x81U, 0xdfU, 0xe4U, 0x0dU, 0x47U, + 0xa9U, 0x0aU, 0x80U, 0x02U, 0x06U, 0x34U, 0x26U, 0xf5U, 0x6bU, + 0x1cU, 0xa4U}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback('ASSERT.error', 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var COMPLEX_NOT_SUPPORTED = -39 + // var Hook = (arg) => { + // ASSERT(float_root(void 0, 0) === INVALID_ARGUMENT) + // ASSERT(float_root(0, void 0) === INVALID_ARGUMENT) + // ASSERT(float_root(float_one(), 2), float_one()) + // ASSERT(float_root(6097866696204910592n, 2) === 6091866696204910592n) + // ASSERT(float_root(6143909891733356544n, 3) === 6098866696204910590n) + // ASSERT(float_root(1478180677777522688n, 2) === COMPLEX_NOT_SUPPORTED) + // ASSERT(float_root(0, 10) === 0) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_root"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_root"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_set(FeatureBitset features) + { + testcase("Test float_set"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { + 0x43U, 0x0bU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, + 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, + 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x1aU, + 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, + 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, + 0x2aU, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, + 0x65U, 0x73U, 0x74U, 0x2dU, 0x31U, 0x32U, 0x2dU, 0x67U, 0x65U, + 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, + 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x18U, 0x41U, 0x53U, + 0x53U, 0x45U, 0x52U, 0x54U, 0x2eU, 0x65U, 0x72U, 0x72U, 0x6fU, + 0x72U, 0x06U, 0x61U, 0x72U, 0x67U, 0x12U, 0x66U, 0x6cU, 0x6fU, + 0x61U, 0x74U, 0x5fU, 0x73U, 0x65U, 0x74U, 0x0cU, 0x61U, 0x63U, + 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, + 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x59U, 0x01U, + 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, + 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, + 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, + 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, 0x00U, 0x00U, 0x00U, + 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xc2U, + 0x01U, 0x4dU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe6U, 0x00U, + 0x00U, 0x00U, 0xc7U, 0x28U, 0xceU, 0x03U, 0x01U, 0x09U, 0x79U, + 0x00U, 0x18U, 0x0cU, 0x3fU, 0x26U, 0x00U, 0x08U, 0x40U, 0x0cU, + 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, + 0x00U, 0x12U, 0x01U, 0xd0U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, + 0x97U, 0xecU, 0x0eU, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0x04U, + 0xeaU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xceU, + 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x45U, 0x0cU, 0x02U, 0x06U, + 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x04U, 0x00U, 0x29U, 0xd2U, + 0x04U, 0x01U, 0xd6U, 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x06U, + 0xb7U, 0xf2U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xb7U, 0x06U, 0xf2U, 0x38U, 0xe4U, 0x00U, 0x00U, + 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0xb7U, 0xf2U, + 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0xfbU, 0xb7U, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0x32U, 0xb7U, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0xceU, 0xb7U, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xb7U, 0xb7U, 0xf2U, 0xb7U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, + 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, + 0x9fU, 0xb8U, 0xf2U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xbfU, 0x61U, 0xb8U, 0xf2U, 0x38U, 0xe5U, + 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0xfbU, + 0xc1U, 0x01U, 0xf2U, 0xc1U, 0x02U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0xadU, 0xc1U, 0x03U, 0xf2U, 0xc1U, 0x04U, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xbfU, 0x4cU, 0xc1U, 0x05U, 0xf2U, 0xc1U, 0x06U, + 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, + 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0x25U, 0xc1U, 0x07U, 0x8dU, + 0xf2U, 0xc1U, 0x08U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0x32U, + 0xc1U, 0x09U, 0xf2U, 0xc1U, 0x0aU, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0xbaU, 0xc1U, 0x0bU, 0xf2U, 0xc1U, 0x0cU, 0xacU, 0xf1U, + 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, + 0x00U, 0x00U, 0xbfU, 0xe6U, 0xc1U, 0x0dU, 0x8dU, 0xf2U, 0xc1U, + 0x0eU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0x24U, 0xc1U, 0x0fU, + 0xf2U, 0xc1U, 0x10U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0x23U, + 0xc1U, 0x11U, 0xf2U, 0xc1U, 0x12U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0x11U, 0xc1U, 0x13U, 0x8dU, 0xf2U, 0xc1U, 0x14U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xbfU, 0xcbU, 0xc1U, 0x15U, 0xf2U, 0xc1U, + 0x16U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0xc4U, 0xc1U, 0x17U, + 0xf2U, 0xc1U, 0x18U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0x29U, + 0xc1U, 0x19U, 0xf2U, 0xc1U, 0x1aU, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0xcaU, 0xc1U, 0x1bU, 0x8dU, 0xf2U, 0xc1U, 0x1cU, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xbfU, 0x15U, 0xc1U, 0x1dU, 0xf2U, 0xc1U, + 0x1eU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, + 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0xe9U, 0xc1U, 0x1fU, + 0xf2U, 0xc1U, 0x20U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, + 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0xdfU, + 0xc1U, 0x21U, 0xf2U, 0xc1U, 0x22U, 0xacU, 0xf1U, 0x0eU, 0x38U, + 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, + 0xbfU, 0xb8U, 0xc1U, 0x23U, 0x8dU, 0xf2U, 0xc1U, 0x24U, 0xacU, + 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, + 0x00U, 0x00U, 0x00U, 0xbfU, 0x47U, 0xc1U, 0x25U, 0x8dU, 0xf2U, + 0xc1U, 0x26U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, + 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xbfU, 0x1cU, 0xc1U, + 0x27U, 0xf2U, 0xc1U, 0x28U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xedU, + 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xceU, 0x03U, + 0x09U, 0x1fU, 0x03U, 0x6cU, 0x6cU, 0x71U, 0x5dU, 0x5dU, 0x5dU, + 0x58U, 0x71U, 0x71U, 0x67U, 0x67U, 0x67U, 0x6cU, 0x67U, 0x67U, + 0x6cU, 0x67U, 0x67U, 0x6cU, 0x67U, 0x67U, 0x67U, 0x6cU, 0x67U, + 0x67U, 0x67U, 0x6cU, 0x6cU, 0x67U, 0x2bU, 0x06U, 0x00U, 0x00U, + 0x00U, 0x00U, 0x00U, 0x00U, 0xe0U, 0x41U, 0x0aU, 0xe0U, 0x01U, + 0x07U, 0x18U, 0xcdU, 0xa1U, 0x41U, 0x30U, 0xebU, 0xb9U, 0x0aU, + 0x88U, 0x02U, 0x08U, 0x46U, 0x73U, 0x68U, 0x10U, 0xccU, 0x7aU, + 0x2eU, 0xaeU, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x30U, 0x04U, 0x1dU, + 0x16U, 0x32U, 0xb5U, 0xe0U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x0cU, + 0x41U, 0x87U, 0x85U, 0x4cU, 0x2dU, 0x38U, 0x87U, 0x0aU, 0xe0U, + 0x01U, 0x07U, 0x28U, 0xffU, 0x34U, 0xb6U, 0x83U, 0x4aU, 0x87U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xcaU, 0x3fU, 0x8dU, 0xedU, 0xa0U, + 0xd2U, 0xa1U, 0xd6U, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x30U, 0xd9U, + 0xbaU, 0x3dU, 0xb3U, 0xecU, 0xe3U, 0x0aU, 0x84U, 0x02U, 0x08U, + 0x98U, 0x6cU, 0xddU, 0x9eU, 0x59U, 0xf6U, 0x71U, 0x86U, 0x0aU, + 0xe0U, 0x01U, 0x06U, 0x29U, 0xceU, 0x51U, 0x4bU, 0x3dU, 0x92U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0x40U, 0x8aU, 0x73U, 0xd4U, 0x52U, + 0x8fU, 0xa4U, 0xc9U, 0x0aU, 0xdcU, 0x01U, 0x06U, 0x03U, 0x38U, + 0xfdU, 0x37U, 0x64U, 0xf9U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x60U, + 0x00U, 0xa7U, 0xffU, 0x86U, 0x2cU, 0x9fU, 0x8dU, 0x0aU, 0xd8U, + 0x01U, 0x07U, 0x80U, 0x8aU, 0xb5U, 0x86U, 0xf3U, 0x77U, 0xc7U, + 0x0aU, 0x80U, 0x02U, 0x08U, 0xa0U, 0x62U, 0xadU, 0xe1U, 0xfcU, + 0xddU, 0x31U, 0x8eU, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x80U, 0xeaU, + 0x3dU, 0x11U, 0x3aU, 0xd0U, 0xeaU, 0x0aU, 0x88U, 0x02U, 0x08U, + 0xa0U, 0x7aU, 0x4fU, 0x84U, 0x0eU, 0xb4U, 0xbaU, 0xc2U, 0x0aU, + 0xe0U, 0x01U, 0x07U, 0x80U, 0x89U, 0x06U, 0x37U, 0x4bU, 0xaeU, + 0xe2U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x60U, 0xa2U, 0xc1U, 0xcdU, + 0x92U, 0xabU, 0x38U, 0xc2U, 0x0aU, 0xdcU, 0x01U, 0x07U, 0xc0U, + 0x30U, 0x3eU, 0x09U, 0xb8U, 0x8eU, 0xfeU, 0x0aU, 0x80U, 0x02U, + 0x08U, 0x60U, 0x18U, 0x9fU, 0x04U, 0x5cU, 0x47U, 0x7fU, 0xe4U, + 0x0aU, 0xe0U, 0x01U, 0x07U, 0x58U, 0xd5U, 0xe5U, 0xb0U, 0xd1U, + 0x81U, 0x9cU, 0x0aU, 0x88U, 0x02U, 0x08U, 0x56U, 0x75U, 0x39U, + 0x6cU, 0x74U, 0x20U, 0x27U, 0x96U, 0x0aU, 0xe0U, 0x01U, 0x07U, + 0x50U, 0x3fU, 0xe8U, 0x41U, 0x1aU, 0x86U, 0x91U, 0x0aU, 0x88U, + 0x02U, 0x08U, 0xd4U, 0x0fU, 0x7aU, 0x90U, 0x86U, 0x61U, 0xa4U, + 0x92U, 0x0aU, 0xe0U, 0x01U, 0x07U, 0xb8U, 0x37U, 0x04U, 0x67U, + 0x2fU, 0x1dU, 0x93U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xeeU, 0x0dU, + 0xc1U, 0xd9U, 0x4bU, 0xc7U, 0x24U, 0xc5U, 0x0aU, 0xdcU, 0x01U, + 0x07U, 0xb0U, 0xf9U, 0xc7U, 0xc2U, 0x91U, 0xb2U, 0xc5U, 0x0aU, + 0xfcU, 0x01U, 0x08U, 0xb0U, 0xf9U, 0xc7U, 0xc2U, 0x91U, 0xb2U, + 0xc5U, 0xacU, 0x0aU, 0xe0U, 0x01U, 0x07U, 0x38U, 0x56U, 0x30U, + 0xe1U, 0x2eU, 0x56U, 0xb4U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x8eU, + 0x15U, 0x4cU, 0xb8U, 0x8bU, 0x15U, 0x2dU, 0xbbU, 0x0aU, 0xe0U, + 0x01U, 0x07U, 0x98U, 0x3aU, 0x0aU, 0xaaU, 0x25U, 0xb6U, 0x90U, + 0x0aU, 0x88U, 0x02U, 0x08U, 0xa6U, 0x8eU, 0x82U, 0x6aU, 0x89U, + 0x2dU, 0x24U, 0xa5U, 0x0aU, 0xe0U, 0x01U, 0x07U, 0xf0U, 0xb2U, + 0x29U, 0x9fU, 0x24U, 0x70U, 0xd5U, 0x0aU, 0x88U, 0x02U, 0x08U, + 0xbcU, 0x6cU, 0xcaU, 0x27U, 0x09U, 0x5cU, 0x35U, 0xa0U, 0x0aU, + 0xd8U, 0x01U, 0x07U, 0x80U, 0x23U, 0xa8U, 0x02U, 0x3dU, 0x11U, + 0xd2U, 0x0aU, 0xf8U, 0x01U, 0x08U, 0x80U, 0x23U, 0xa8U, 0x02U, + 0x3dU, 0x11U, 0xd2U, 0xc8U, 0x0aU, 0xe4U, 0x01U, 0x07U, 0x90U, + 0xc8U, 0xccU, 0xfcU, 0x5aU, 0xddU, 0x81U, 0x0aU, 0x84U, 0x02U, + 0x08U, 0x90U, 0xc8U, 0xccU, 0xfcU, 0x5aU, 0xddU, 0x81U, 0xa8U, + 0x0aU, 0xe0U, 0x01U, 0x07U, 0xd0U, 0x1bU, 0xd5U, 0xd9U, 0xcdU, + 0x3aU, 0x8cU, 0x0aU, 0x88U, 0x02U, 0x08U, 0xf4U, 0x46U, 0x75U, + 0x76U, 0xb3U, 0x0eU, 0xa3U, 0xbeU}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback('ASSERT.error', 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_set(void 0, 0) === INVALID_ARGUMENT) + // ASSERT(float_set(0, void 0) === INVALID_ARGUMENT) + // ASSERT(float_set(2147483648, 0) === INVALID_ARGUMENT) + // ASSERT(float_set(-5, 0) === 0) + // ASSERT(float_set(50, 0) === 0) + // ASSERT(float_set(-50, 0) === 0) + // ASSERT(float_set(0, 0) === 0) + // ASSERT(float_set(-97, 1) === INVALID_FLOAT) + // ASSERT(float_set(97, 1) === INVALID_FLOAT) + // ASSERT(float_set(-5, 6541432897943971n) === 6275552114197674403n) + // ASSERT(float_set(-83, 7906202688397446n) === 4871793800248533126n) + // ASSERT(float_set(76, 4760131426754533n) === 7732937091994525669n) + // ASSERT(float_set(37, -8019384286534438n) === 2421948784557120294n) + // ASSERT(float_set(50, 5145342538007840n) === 7264947941859247392n) + // ASSERT(float_set(-70, 4387341302202416n) === 5102462119485603888n) + // ASSERT(float_set(-26, -1754544005819476n) === 1280776838179040340n) + // ASSERT(float_set(36, 8261761545780560n) === 7015862781734272336n) + // ASSERT(float_set(35, 7975622850695472n) === 6997562244529705264n) + // ASSERT(float_set(17, -4478222822793996n) === 2058119652903740172n) + // ASSERT(float_set(-53, 5506604247857835n) === 5409826157092453035n) + // ASSERT(float_set(-60, 5120164869507050n) === 5283338928147728362n) + // ASSERT(float_set(41, 5176113875683063n) === 7102849126611584759n) + // ASSERT(float_set(-54, -3477931844992923n) === 778097067752718235n) + // ASSERT(float_set(21, 6345031894305479n) === 6743730074440567495n) + // ASSERT(float_set(-23, 5091583691147091n) === 5949843091820201811n) + // ASSERT(float_set(-33, 7509684078851678n) === 5772117207113086558n) + // ASSERT(float_set(-72, -1847771838890268n) === 452207734575939868n) + // ASSERT(float_set(71, -9138413713437220n) === 3035557363306410532n) + // ASSERT(float_set(28, 4933894067102586n) === 6868419726179738490n) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_set"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_set"), fee(XRP(1))); + env.close(); + } + } + + void + test_float_sign(FeatureBitset features) + { + testcase("Test float_sign"); + using namespace jtx; + Env env{*this, features}; + + auto const alice = Account{"alice"}; + auto const bob = Account{"bob"}; + env.fund(XRP(10000), alice); + env.fund(XRP(10000), bob); + + { + TestHook hook = { +0x43U, 0x0dU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x1aU, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x46U, 0x4cU, 0x4fU, 0x41U, 0x54U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x2aU, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, 0x31U, 0x33U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x18U, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, 0x2eU, 0x65U, 0x72U, 0x72U, 0x6fU, 0x72U, 0x06U, 0x61U, 0x72U, 0x67U, 0x14U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x73U, 0x69U, 0x67U, 0x6eU, 0x12U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6fU, 0x6eU, 0x65U, 0x18U, 0x66U, 0x6cU, 0x6fU, 0x61U, 0x74U, 0x5fU, 0x6eU, 0x65U, 0x67U, 0x61U, 0x74U, 0x65U, 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, 0x01U, 0x00U, 0x02U, 0x59U, 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xc0U, 0xd8U, 0xd8U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x01U, 0x4dU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xceU, 0x03U, 0x01U, 0x0aU, 0x79U, 0x00U, 0x18U, 0x0cU, 0x3fU, 0x26U, 0x00U, 0x08U, 0x86U, 0x02U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, 0x00U, 0x12U, 0x01U, 0xd0U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x0eU, 0x38U, 0xe9U, 0x00U, 0x00U, 0x00U, 0x04U, 0xeaU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xceU, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x45U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x04U, 0x00U, 0x2cU, 0xf2U, 0x03U, 0x01U, 0xd6U, 0x03U, 0x00U, 0x01U, 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x06U, 0xf1U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xb6U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x00U, 0x8dU, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf1U, 0xc1U, 0x01U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0xc1U, 0x02U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0x38U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x38U, 0xedU, 0x00U, 0x00U, 0x00U, 0xf0U, 0xf1U, 0xf1U, 0xc1U, 0x03U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x04U, 0xf1U, 0xc1U, 0x05U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x06U, 0xf1U, 0xc1U, 0x07U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x08U, 0xf1U, 0xc1U, 0x09U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x0aU, 0xf1U, 0xc1U, 0x0bU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x0cU, 0xf1U, 0xc1U, 0x0dU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x0eU, 0xf1U, 0xc1U, 0x0fU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x10U, 0xf1U, 0xc1U, 0x11U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x12U, 0xf1U, 0xc1U, 0x13U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x14U, 0xf1U, 0xc1U, 0x15U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x16U, 0xf1U, 0xc1U, 0x17U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x18U, 0xf1U, 0xc1U, 0x19U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x1aU, 0xf1U, 0xc1U, 0x1bU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x1cU, 0xf1U, 0xc1U, 0x1dU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x1eU, 0xf1U, 0xc1U, 0x1fU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x20U, 0xf1U, 0xc1U, 0x21U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x22U, 0xf1U, 0xc1U, 0x23U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x24U, 0xf1U, 0xc1U, 0x25U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x26U, 0xf1U, 0xc1U, 0x27U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x28U, 0xf1U, 0xc1U, 0x29U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xecU, 0x00U, 0x00U, 0x00U, 0xc1U, 0x2aU, 0xf1U, 0xc1U, 0x2bU, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xefU, 0x00U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0xf2U, 0x29U, 0xceU, 0x03U, 0x09U, 0x58U, 0x03U, 0x68U, 0x67U, 0x72U, 0x58U, 0x71U, 0x8fU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x1cU, 0x28U, 0x17U, 0x0dU, 0x2bU, 0x0aU, 0x94U, 0x01U, 0x05U, 0xc0U, 0x8bU, 0x8cU, 0x10U, 0xa4U, 0x0aU, 0x00U, 0x0aU, 0x00U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xecU, 0x35U, 0x7cU, 0x44U, 0x92U, 0x39U, 0x2fU, 0xc9U, 0x0aU, 0x00U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xa0U, 0xe4U, 0x93U, 0x32U, 0x2cU, 0x8aU, 0x9aU, 0xc5U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xfaU, 0x22U, 0xa4U, 0x25U, 0x92U, 0x90U, 0x07U, 0xa5U, 0x0aU, 0x00U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xbeU, 0x11U, 0x90U, 0xaeU, 0xf3U, 0x2eU, 0x2cU, 0xadU, 0x0aU, 0x00U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x30U, 0xe0U, 0x3bU, 0x39U, 0x26U, 0xb2U, 0x16U, 0xc2U, 0x0aU, 0x00U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xbeU, 0xbeU, 0xedU, 0x84U, 0xd7U, 0x5dU, 0x0bU, 0xbfU, 0x0aU, 0x00U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x80U, 0xf0U, 0x16U, 0x6eU, 0x55U, 0x39U, 0xaaU, 0xc5U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x88U, 0xf6U, 0x02U, 0x3eU, 0x07U, 0x9dU, 0x94U, 0x87U, 0x0aU, 0x00U, 0x0aU, 0x84U, 0x02U, 0x08U, 0x28U, 0xd8U, 0xb3U, 0x0dU, 0x99U, 0xeeU, 0x3aU, 0x95U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xc0U, 0x18U, 0x7eU, 0xa7U, 0xa3U, 0xfeU, 0x0fU, 0x86U, 0x0aU, 0x00U, 0x0aU, 0xf8U, 0x01U, 0x07U, 0xfcU, 0xecU, 0x5dU, 0x07U, 0xefU, 0xa3U, 0x82U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x58U, 0x24U, 0xb4U, 0x06U, 0x61U, 0xc7U, 0x46U, 0xd3U, 0x0aU, 0x00U, 0x0aU, 0x88U, 0x02U, 0x08U, 0xeaU, 0x49U, 0x7dU, 0xeaU, 0xf4U, 0xc9U, 0xbeU, 0xd0U, 0x0aU, 0x00U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x14U, 0xffU, 0xcfU, 0x01U, 0x90U, 0xd1U, 0x32U, 0x85U, 0x0aU, 0x00U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0x10U, 0x8fU, 0x0aU, 0xbcU, 0x97U, 0x07U, 0x2aU, 0x99U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x34U, 0xfdU, 0x58U, 0x37U, 0xfeU, 0x4eU, 0x42U, 0x99U, 0x0aU, 0x00U, 0x0aU, 0xfcU, 0x01U, 0x08U, 0xa0U, 0x0eU, 0x95U, 0xd1U, 0xaeU, 0x41U, 0xd1U, 0xa1U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x80U, 0x02U, 0x08U, 0xd0U, 0x0aU, 0x86U, 0x13U, 0x6fU, 0xc8U, 0x58U, 0xfcU, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x80U, 0x02U, 0x08U, 0x30U, 0xdcU, 0xa7U, 0xf5U, 0x15U, 0xf0U, 0x81U, 0xa0U, 0x0aU, 0x10U, 0x01U, 0x80U, 0x0aU, 0x88U, 0x02U, 0x08U, 0x68U, 0x30U, 0x22U, 0xf4U, 0x18U, 0xf4U, 0xc4U, 0x8bU, 0x0aU, 0x00U +}; + // TestHook hook = jswasm[R"[test.hook]( + // var ASSERT = (x) => { + // if (!x) { + // rollback('ASSERT.error', 0) + // } + // } + // var INVALID_ARGUMENT = -7 + // var INVALID_FLOAT = -10024 + // var Hook = (arg) => { + // ASSERT(float_sign(void 0) === INVALID_ARGUMENT) + // { + // ASSERT(float_sign(-1) === INVALID_FLOAT) + // ASSERT(float_sign(-11010191919n) === INVALID_FLOAT) + // } + // ASSERT(float_sign(0) === 0n) + // ASSERT(float_sign(float_one()) === 0n) + // ASSERT(float_sign(float_negate(float_one())) === 1n) + // ASSERT( + // float_sign( + // 7248434512952957686n + // /* 6.646312141200119e+64 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 889927818394811978n + // /* -7.222291430194763e-33 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 5945816149233111421n + // /* 1.064641104056701e-8 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 6239200145838704863n + // /* 621826155.7938399 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 6992780785042190360n + // /* 3.194163363180568e+50 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 6883099933108789087n + // /* 1.599702486671199e+44 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 890203738162163464n + // /* -7.498211197546248e-33 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 4884803073052080964n + // /* 2.9010769824633e-67 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 2688292350356944394n + // /* -4.146972444128778e+67 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 4830109852288093280n + // /* 2.251051746921568e-70 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 294175951907940320n + // /* -5.945575756228576e-66 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 7612037404955382316n + // /* 9.961233953985069e+84 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 7520840929603658997n + // /* 8.83675114967167e+79 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 4798982086157926282n + // /* 7.152082635718538e-72 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 689790136568817905n + // /* -5.242993208502513e-44 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 5521738045011558042n + // /* 9.332101110070938e-32 */ + // ) === 0n + // ) + // ASSERT( + // float_sign( + // 728760820583452906n + // /* -8.184880204173546e-42 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 2272937984362856794n + // /* -3.12377216812681e+44 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 1445723661896317830n + // /* -0.0457178113775911 */ + // ) === 1n + // ) + // ASSERT( + // float_sign( + // 5035721527359772724n + // /* 9.704343214299189e-59 */ + // ) === 0n + // ) + // accept('', 0) + // } + // )[test.hook]"]; + + env(ripple::test::jtx::hook(alice, {{hsov1(hook, 1, HSDROPS, overrideFlag)}}, 0), + M("set float_sign"), + HSFEE); + env.close(); + + env(pay(bob, alice, XRP(1)), M("test float_sign"), fee(XRP(1))); + env.close(); + } + } + void test_hook_account(FeatureBitset features) { @@ -2122,7 +5781,10 @@ public: { testcase("Test hook_param"); using namespace jtx; - Env env{*this, features}; + // Env env{*this, features}; + Env env{*this, envconfig(), features, nullptr, + beast::severities::kTrace + }; Account const alice{"alice"}; Account const bob{"bob"}; @@ -2130,180 +5792,72 @@ public: env.fund(XRP(10000), bob); TestHook hook = { - 0x43U, 0x33U, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, - 0x18U, 0x44U, 0x4fU, 0x45U, 0x53U, 0x4eU, 0x54U, 0x5fU, 0x45U, - 0x58U, 0x49U, 0x53U, 0x54U, 0x0aU, 0x6eU, 0x61U, 0x6dU, 0x65U, - 0x73U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x0cU, 0x70U, 0x61U, - 0x72U, 0x61U, 0x6dU, 0x30U, 0x0cU, 0x70U, 0x61U, 0x72U, 0x61U, - 0x6dU, 0x31U, 0x0cU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x32U, - 0x0cU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x33U, 0x0cU, 0x70U, - 0x61U, 0x72U, 0x61U, 0x6dU, 0x34U, 0x0cU, 0x70U, 0x61U, 0x72U, - 0x61U, 0x6dU, 0x35U, 0x0cU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, - 0x36U, 0x0cU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x37U, 0x0cU, - 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x38U, 0x0cU, 0x70U, 0x61U, - 0x72U, 0x61U, 0x6dU, 0x39U, 0x0eU, 0x70U, 0x61U, 0x72U, 0x61U, - 0x6dU, 0x31U, 0x30U, 0x0eU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, - 0x31U, 0x31U, 0x0eU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x31U, - 0x32U, 0x0eU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x31U, 0x33U, - 0x0eU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x31U, 0x34U, 0x0eU, - 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x31U, 0x35U, 0x0cU, 0x76U, - 0x61U, 0x6cU, 0x75U, 0x65U, 0x30U, 0x0cU, 0x76U, 0x61U, 0x6cU, - 0x75U, 0x65U, 0x31U, 0x0cU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, - 0x32U, 0x0cU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x33U, 0x0cU, - 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x34U, 0x0cU, 0x76U, 0x61U, - 0x6cU, 0x75U, 0x65U, 0x35U, 0x0cU, 0x76U, 0x61U, 0x6cU, 0x75U, - 0x65U, 0x36U, 0x0cU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x37U, - 0x0cU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x38U, 0x0cU, 0x76U, - 0x61U, 0x6cU, 0x75U, 0x65U, 0x39U, 0x0eU, 0x76U, 0x61U, 0x6cU, - 0x75U, 0x65U, 0x31U, 0x30U, 0x0eU, 0x76U, 0x61U, 0x6cU, 0x75U, - 0x65U, 0x31U, 0x31U, 0x0eU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, - 0x31U, 0x32U, 0x0eU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x31U, - 0x33U, 0x0eU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x31U, 0x34U, - 0x0eU, 0x76U, 0x61U, 0x6cU, 0x75U, 0x65U, 0x31U, 0x35U, 0x28U, - 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, - 0x73U, 0x74U, 0x2dU, 0x35U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, - 0x6aU, 0x73U, 0x02U, 0x78U, 0x08U, 0x63U, 0x6fU, 0x64U, 0x65U, - 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, - 0x06U, 0x61U, 0x72U, 0x67U, 0x02U, 0x69U, 0x02U, 0x73U, 0x06U, - 0x62U, 0x75U, 0x66U, 0x14U, 0x68U, 0x6fU, 0x6fU, 0x6bU, 0x5fU, - 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x02U, 0x76U, 0x02U, 0x61U, - 0x02U, 0x6cU, 0x02U, 0x75U, 0x02U, 0x65U, 0x0cU, 0x61U, 0x63U, - 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, - 0x01U, 0x00U, 0x01U, 0x00U, 0x10U, 0x00U, 0x02U, 0x8dU, 0x02U, - 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, - 0x00U, 0x00U, 0x80U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x80U, - 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x80U, 0x3fU, 0x6cU, 0x00U, - 0x00U, 0x00U, 0x80U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x80U, - 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x80U, 0x3eU, 0xe4U, 0x00U, - 0x00U, 0x00U, 0x80U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x80U, - 0x3eU, 0x6cU, 0x00U, 0x00U, 0x00U, 0x80U, 0x3eU, 0xe6U, 0x00U, - 0x00U, 0x00U, 0x80U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, - 0x00U, 0x3aU, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xfbU, 0x3aU, - 0xe4U, 0x00U, 0x00U, 0x00U, 0x04U, 0xe7U, 0x00U, 0x00U, 0x00U, - 0x04U, 0xe8U, 0x00U, 0x00U, 0x00U, 0x04U, 0xe9U, 0x00U, 0x00U, - 0x00U, 0x04U, 0xeaU, 0x00U, 0x00U, 0x00U, 0x04U, 0xebU, 0x00U, - 0x00U, 0x00U, 0x04U, 0xecU, 0x00U, 0x00U, 0x00U, 0x04U, 0xedU, - 0x00U, 0x00U, 0x00U, 0x04U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x04U, - 0xefU, 0x00U, 0x00U, 0x00U, 0x04U, 0xf0U, 0x00U, 0x00U, 0x00U, - 0x04U, 0xf1U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf2U, 0x00U, 0x00U, - 0x00U, 0x04U, 0xf3U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf4U, 0x00U, - 0x00U, 0x00U, 0x04U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf6U, - 0x00U, 0x00U, 0x00U, 0x26U, 0x10U, 0x00U, 0x3aU, 0xe5U, 0x00U, - 0x00U, 0x00U, 0x04U, 0xf7U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf8U, - 0x00U, 0x00U, 0x00U, 0x04U, 0xf9U, 0x00U, 0x00U, 0x00U, 0x04U, - 0xfaU, 0x00U, 0x00U, 0x00U, 0x04U, 0xfbU, 0x00U, 0x00U, 0x00U, - 0x04U, 0xfcU, 0x00U, 0x00U, 0x00U, 0x04U, 0xfdU, 0x00U, 0x00U, - 0x00U, 0x04U, 0xfeU, 0x00U, 0x00U, 0x00U, 0x04U, 0xffU, 0x00U, - 0x00U, 0x00U, 0x04U, 0x00U, 0x01U, 0x00U, 0x00U, 0x04U, 0x01U, - 0x01U, 0x00U, 0x00U, 0x04U, 0x02U, 0x01U, 0x00U, 0x00U, 0x04U, - 0x03U, 0x01U, 0x00U, 0x00U, 0x04U, 0x04U, 0x01U, 0x00U, 0x00U, - 0x04U, 0x05U, 0x01U, 0x00U, 0x00U, 0x04U, 0x06U, 0x01U, 0x00U, - 0x00U, 0x26U, 0x10U, 0x00U, 0x3aU, 0x6cU, 0x00U, 0x00U, 0x00U, - 0xc2U, 0x01U, 0x4dU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x3aU, 0xe6U, - 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0x8eU, 0x04U, 0x01U, 0x2cU, - 0x97U, 0x00U, 0x1eU, 0x0cU, 0x40U, 0x27U, 0x1cU, 0x1cU, 0x1cU, - 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, - 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x12U, 0x1cU, 0x1cU, 0x1cU, 0x1cU, - 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, - 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x12U, 0x00U, 0x05U, 0x2aU, 0x0cU, - 0x02U, 0x06U, 0x00U, 0x00U, 0x02U, 0x00U, 0x02U, 0x03U, 0x00U, - 0x00U, 0x16U, 0x02U, 0x90U, 0x04U, 0x00U, 0x01U, 0x00U, 0x92U, - 0x04U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, 0x38U, - 0x0aU, 0x01U, 0x00U, 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, 0x00U, - 0x00U, 0x24U, 0x00U, 0x00U, 0xd4U, 0xf2U, 0x0eU, 0x29U, 0x8eU, - 0x04U, 0x02U, 0x03U, 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, 0x06U, - 0x00U, 0x00U, 0x01U, 0x03U, 0x01U, 0x05U, 0x00U, 0x00U, 0xccU, - 0x01U, 0x04U, 0x96U, 0x04U, 0x00U, 0x01U, 0x00U, 0x98U, 0x04U, - 0x00U, 0x00U, 0x00U, 0x9aU, 0x04U, 0x00U, 0x01U, 0x00U, 0x9cU, - 0x04U, 0x00U, 0x02U, 0x00U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, - 0x38U, 0x0fU, 0x01U, 0x00U, 0x00U, 0xc3U, 0xf1U, 0x38U, 0xe4U, - 0x00U, 0x00U, 0x00U, 0xaaU, 0xf1U, 0x0eU, 0xb7U, 0xcbU, 0xc7U, - 0xbfU, 0x10U, 0xa4U, 0x6aU, 0xa7U, 0x00U, 0x00U, 0x00U, 0xbdU, - 0xc7U, 0xbfU, 0x0aU, 0xa4U, 0xecU, 0x04U, 0xb7U, 0xeeU, 0x02U, - 0xb8U, 0x9eU, 0xccU, 0x38U, 0x0fU, 0x01U, 0x00U, 0x00U, 0x38U, - 0xe5U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x47U, 0xf1U, 0xcdU, 0x38U, - 0xe3U, 0x00U, 0x00U, 0x00U, 0xc9U, 0xebU, 0xc8U, 0xaaU, 0xf1U, - 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xc9U, 0xb7U, 0x47U, - 0x04U, 0x10U, 0x01U, 0x00U, 0x00U, 0xaaU, 0x11U, 0xecU, 0x32U, - 0x0eU, 0xc9U, 0xb8U, 0x47U, 0x04U, 0x11U, 0x01U, 0x00U, 0x00U, - 0xaaU, 0x11U, 0xecU, 0x25U, 0x0eU, 0xc9U, 0xb9U, 0x47U, 0x04U, - 0x12U, 0x01U, 0x00U, 0x00U, 0xaaU, 0x11U, 0xecU, 0x18U, 0x0eU, - 0xc9U, 0xbaU, 0x47U, 0x04U, 0x13U, 0x01U, 0x00U, 0x00U, 0xaaU, - 0x11U, 0xecU, 0x0bU, 0x0eU, 0xc9U, 0xbbU, 0x47U, 0x04U, 0x14U, - 0x01U, 0x00U, 0x00U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, - 0x00U, 0x00U, 0xc9U, 0xc9U, 0xebU, 0xb8U, 0x9fU, 0x47U, 0x38U, - 0x6cU, 0x00U, 0x00U, 0x00U, 0xc7U, 0x47U, 0xc9U, 0xebU, 0xb8U, - 0x9fU, 0x47U, 0xaaU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, - 0x00U, 0xc9U, 0xc9U, 0xebU, 0xb9U, 0x9fU, 0x47U, 0x38U, 0x6cU, - 0x00U, 0x00U, 0x00U, 0xc7U, 0x47U, 0xc9U, 0xebU, 0xb9U, 0x9fU, - 0x47U, 0xaaU, 0xf1U, 0x0eU, 0x94U, 0x00U, 0xefU, 0x56U, 0xffU, - 0x38U, 0x15U, 0x01U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0x23U, 0x02U, - 0x00U, 0x8eU, 0x04U, 0x2fU, 0x10U, 0x03U, 0x68U, 0x3aU, 0x44U, - 0x49U, 0x3bU, 0x1cU, 0x44U, 0x44U, 0x44U, 0x44U, 0x30U, 0x0dU, - 0x85U, 0x85U, 0x1cU}; +0x43U, 0x1eU, 0x0cU, 0x41U, 0x53U, 0x53U, 0x45U, 0x52U, 0x54U, 0x18U, 0x44U, 0x4fU, 0x45U, 0x53U, 0x4eU, 0x54U, 0x5fU, 0x45U, 0x58U, 0x49U, 0x53U, 0x54U, 0x20U, 0x49U, 0x4eU, 0x56U, 0x41U, 0x4cU, 0x49U, 0x44U, 0x5fU, 0x41U, 0x52U, 0x47U, 0x55U, 0x4dU, 0x45U, 0x4eU, 0x54U, 0x0aU, 0x6eU, 0x61U, 0x6dU, 0x65U, 0x73U, 0x08U, 0x48U, 0x6fU, 0x6fU, 0x6bU, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x30U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x32U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x33U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x34U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x35U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x36U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x37U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x38U, 0x18U, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x39U, 0x1cU, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x33U, 0x30U, 0x1cU, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x33U, 0x31U, 0x1cU, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x33U, 0x32U, 0x1cU, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x33U, 0x33U, 0x1cU, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x33U, 0x34U, 0x1cU, 0x37U, 0x30U, 0x36U, 0x31U, 0x37U, 0x32U, 0x36U, 0x31U, 0x36U, 0x64U, 0x33U, 0x31U, 0x33U, 0x35U, 0x2aU, 0x77U, 0x61U, 0x73U, 0x6dU, 0x6aU, 0x73U, 0x2fU, 0x74U, 0x65U, 0x73U, 0x74U, 0x2dU, 0x31U, 0x38U, 0x2dU, 0x67U, 0x65U, 0x6eU, 0x2eU, 0x6aU, 0x73U, 0x02U, 0x78U, 0x10U, 0x72U, 0x6fU, 0x6cU, 0x6cU, 0x62U, 0x61U, 0x63U, 0x6bU, 0x06U, 0x61U, 0x72U, 0x67U, 0x02U, 0x69U, 0x02U, 0x73U, 0x06U, 0x62U, 0x75U, 0x66U, 0x14U, 0x68U, 0x6fU, 0x6fU, 0x6bU, 0x5fU, 0x70U, 0x61U, 0x72U, 0x61U, 0x6dU, 0x0cU, 0x61U, 0x63U, 0x63U, 0x65U, 0x70U, 0x74U, 0x0cU, 0x00U, 0x06U, 0x00U, 0xa2U, 0x01U, 0x00U, 0x01U, 0x00U, 0x16U, 0x00U, 0x02U, 0xccU, 0x03U, 0x01U, 0xa4U, 0x01U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0x6cU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3fU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe5U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe6U, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0x6cU, 0x00U, 0x00U, 0x00U, 0x00U, 0x3eU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x00U, 0xc2U, 0x00U, 0x4dU, 0xe3U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe3U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xfbU, 0x39U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xbfU, 0xf9U, 0x39U, 0xe5U, 0x00U, 0x00U, 0x00U, 0x04U, 0xe8U, 0x00U, 0x00U, 0x00U, 0x04U, 0xe9U, 0x00U, 0x00U, 0x00U, 0x04U, 0xeaU, 0x00U, 0x00U, 0x00U, 0x04U, 0xebU, 0x00U, 0x00U, 0x00U, 0x04U, 0xecU, 0x00U, 0x00U, 0x00U, 0x04U, 0xedU, 0x00U, 0x00U, 0x00U, 0x04U, 0xeeU, 0x00U, 0x00U, 0x00U, 0x04U, 0xefU, 0x00U, 0x00U, 0x00U, 0x04U, 0xf0U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf1U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf2U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf3U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf4U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf5U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf6U, 0x00U, 0x00U, 0x00U, 0x04U, 0xf7U, 0x00U, 0x00U, 0x00U, 0x26U, 0x10U, 0x00U, 0x39U, 0xe6U, 0x00U, 0x00U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x30U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x32U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x33U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x34U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x35U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x36U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x37U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x38U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x39U, 0x26U, 0x06U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0xbfU, 0x30U, 0x26U, 0x07U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0xbfU, 0x31U, 0x26U, 0x07U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0xbfU, 0x32U, 0x26U, 0x07U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0xbfU, 0x33U, 0x26U, 0x07U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0xbfU, 0x34U, 0x26U, 0x07U, 0x00U, 0xbfU, 0x76U, 0xbfU, 0x61U, 0xbfU, 0x6cU, 0xbfU, 0x75U, 0xbfU, 0x65U, 0xbfU, 0x31U, 0xbfU, 0x35U, 0x26U, 0x07U, 0x00U, 0x26U, 0x10U, 0x00U, 0x39U, 0x6cU, 0x00U, 0x00U, 0x00U, 0xc2U, 0x01U, 0x4dU, 0xe7U, 0x00U, 0x00U, 0x00U, 0x39U, 0xe7U, 0x00U, 0x00U, 0x00U, 0xc7U, 0x28U, 0xf0U, 0x03U, 0x01U, 0x2cU, 0xb5U, 0x00U, 0x24U, 0x0cU, 0x3fU, 0x26U, 0x26U, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x1cU, 0x12U, 0x1dU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x4eU, 0x58U, 0x58U, 0x58U, 0x58U, 0x58U, 0x67U, 0x00U, 0x05U, 0x30U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x00U, 0x01U, 0x03U, 0x00U, 0x00U, 0x16U, 0x01U, 0xf2U, 0x03U, 0x00U, 0x01U, 0x00U, 0xd3U, 0x97U, 0xecU, 0x12U, 0x38U, 0xfaU, 0x00U, 0x00U, 0x00U, 0xd3U, 0x42U, 0x38U, 0x00U, 0x00U, 0x00U, 0x24U, 0x00U, 0x00U, 0xb7U, 0xf2U, 0x0eU, 0x29U, 0xf0U, 0x03U, 0x02U, 0x03U, 0x03U, 0x17U, 0x59U, 0x0cU, 0x02U, 0x06U, 0x00U, 0x00U, 0x01U, 0x03U, 0x01U, 0x05U, 0x00U, 0x00U, 0xdbU, 0x02U, 0x04U, 0xf6U, 0x03U, 0x00U, 0x01U, 0x00U, 0xf8U, 0x03U, 0x02U, 0x00U, 0x20U, 0xfaU, 0x03U, 0x03U, 0x01U, 0x30U, 0xfcU, 0x03U, 0x03U, 0x02U, 0x30U, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0xb7U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0xc3U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0x26U, 0x00U, 0x00U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0x06U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0x07U, 0xf1U, 0x38U, 0xe5U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0xb7U, 0x26U, 0x01U, 0x00U, 0xf1U, 0x38U, 0xe4U, 0x00U, 0x00U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x61U, 0x00U, 0x00U, 0xb7U, 0xcbU, 0x62U, 0x00U, 0x00U, 0xbfU, 0x10U, 0xa4U, 0x6aU, 0xc8U, 0x00U, 0x00U, 0x00U, 0x61U, 0x02U, 0x00U, 0x61U, 0x01U, 0x00U, 0xbdU, 0x62U, 0x00U, 0x00U, 0xbfU, 0x0aU, 0xa4U, 0xecU, 0x04U, 0xb7U, 0xeeU, 0x02U, 0xb8U, 0x9eU, 0xccU, 0x38U, 0xffU, 0x00U, 0x00U, 0x00U, 0x38U, 0xe6U, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x47U, 0xf1U, 0xcdU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0xebU, 0x62U, 0x01U, 0x00U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0xb7U, 0x47U, 0xbfU, 0x76U, 0xacU, 0x11U, 0xecU, 0x2eU, 0x0eU, 0x62U, 0x02U, 0x00U, 0xb8U, 0x47U, 0xbfU, 0x61U, 0xacU, 0x11U, 0xecU, 0x22U, 0x0eU, 0x62U, 0x02U, 0x00U, 0xb9U, 0x47U, 0xbfU, 0x6cU, 0xacU, 0x11U, 0xecU, 0x16U, 0x0eU, 0x62U, 0x02U, 0x00U, 0xbaU, 0x47U, 0xbfU, 0x75U, 0xacU, 0x11U, 0xecU, 0x0aU, 0x0eU, 0x62U, 0x02U, 0x00U, 0xbbU, 0x47U, 0xbfU, 0x65U, 0xacU, 0xbdU, 0xf2U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0x62U, 0x02U, 0x00U, 0xebU, 0xb8U, 0x9fU, 0x47U, 0x38U, 0x6cU, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x47U, 0x62U, 0x02U, 0x00U, 0xebU, 0xb8U, 0x9fU, 0x47U, 0xacU, 0xf1U, 0x0eU, 0x38U, 0xe3U, 0x00U, 0x00U, 0x00U, 0x62U, 0x02U, 0x00U, 0x62U, 0x02U, 0x00U, 0xebU, 0xb9U, 0x9fU, 0x47U, 0x38U, 0x6cU, 0x00U, 0x00U, 0x00U, 0x62U, 0x00U, 0x00U, 0x47U, 0x62U, 0x02U, 0x00U, 0xebU, 0xb9U, 0x9fU, 0x47U, 0xacU, 0xf1U, 0x0eU, 0x62U, 0x00U, 0x00U, 0x90U, 0x11U, 0x63U, 0x00U, 0x00U, 0x0eU, 0xefU, 0x33U, 0xffU, 0x38U, 0x00U, 0x01U, 0x00U, 0x00U, 0xc3U, 0xb7U, 0x23U, 0x02U, 0x00U, 0xf0U, 0x03U, 0x2dU, 0x15U, 0x03U, 0x67U, 0x67U, 0x71U, 0x67U, 0x67U, 0x76U, 0x71U, 0x4eU, 0x53U, 0x4eU, 0x1cU, 0x3fU, 0x3fU, 0x3fU, 0x3fU, 0x31U, 0x0dU, 0xadU, 0xadU, 0x3fU +}; // TestHook hook = jswasm[R"[test.hook]( - // const ASSERT = (x, code) => { + // var ASSERT = (x) => { // if (!x) { - // rollback(x.toString(), code) + // rollback(x.toString(), 0) // } // } - - // const DOESNT_EXIST = -5 - - // const names = [ - // 'param0', - // 'param1', - // 'param2', - // 'param3', - // 'param4', - // 'param5', - // 'param6', - // 'param7', - // 'param8', - // 'param9', - // 'param10', - // 'param11', - // 'param12', - // 'param13', - // 'param14', - // 'param15', + // var DOESNT_EXIST = -5 + // var INVALID_ARGUMENT = -7 + // var names = [ + // '706172616d30', + // '706172616d31', + // '706172616d32', + // '706172616d33', + // '706172616d34', + // '706172616d35', + // '706172616d36', + // '706172616d37', + // '706172616d38', + // '706172616d39', + // '706172616d3130', + // '706172616d3131', + // '706172616d3132', + // '706172616d3133', + // '706172616d3134', + // '706172616d3135', // ] - // const values = [ - // 'value0', - // 'value1', - // 'value2', - // 'value3', - // 'value4', - // 'value5', - // 'value6', - // 'value7', - // 'value8', - // 'value9', - // 'value10', - // 'value11', - // 'value12', - // 'value13', - // 'value14', - // 'value15', + // var values = [ + // [118, 97, 108, 117, 101, 48], + // [118, 97, 108, 117, 101, 49], + // [118, 97, 108, 117, 101, 50], + // [118, 97, 108, 117, 101, 51], + // [118, 97, 108, 117, 101, 52], + // [118, 97, 108, 117, 101, 53], + // [118, 97, 108, 117, 101, 54], + // [118, 97, 108, 117, 101, 55], + // [118, 97, 108, 117, 101, 56], + // [118, 97, 108, 117, 101, 57], + // [118, 97, 108, 117, 101, 49, 48], + // [118, 97, 108, 117, 101, 49, 49], + // [118, 97, 108, 117, 101, 49, 50], + // [118, 97, 108, 117, 101, 49, 51], + // [118, 97, 108, 117, 101, 49, 52], + // [118, 97, 108, 117, 101, 49, 53], // ] - - // const Hook = (arg) => { - // ASSERT(hook_param('') == DOESNT_EXIST) - - // for (var i = 0; i < 16; ++i) { - // var s = 6 + (i < 10 ? 0 : 1) - // var buf = hook_param(names[i]) - // ASSERT(buf.length == s) - + // var Hook = (arg) => { + // ASSERT(hook_param(0) === INVALID_ARGUMENT) + // ASSERT(hook_param('') === INVALID_ARGUMENT) + // ASSERT(hook_param([]) === INVALID_ARGUMENT) + // ASSERT(hook_param(void 0) === INVALID_ARGUMENT) + // ASSERT(hook_param(null) === INVALID_ARGUMENT) + // ASSERT(hook_param([0]) === DOESNT_EXIST) + // for (let i = 0; i < 16; ++i) { + // const s = 6 + (i < 10 ? 0 : 1) + // const buf = hook_param(names[i]) + // ASSERT(buf.length === s) // ASSERT( - // buf[0] == 'v' && - // buf[1] == 'a' && - // buf[2] == 'l' && - // buf[3] == 'u' && - // buf[4] == 'e' + // buf[0] === 118 && + // buf[1] === 97 && + // buf[2] === 108 && + // buf[3] === 117 && + // buf[4] === 101 // ) - // ASSERT(buf[buf.length - 1] == values[i][buf.length - 1]) - // ASSERT(buf[buf.length - 2] == values[i][buf.length - 2]) + // ASSERT(buf[buf.length - 1] === values[i][buf.length - 1]) + // ASSERT(buf[buf.length - 2] === values[i][buf.length - 2]) // } // return accept('', 0) // } @@ -15158,9 +18712,9 @@ public: testHooksOwnerDir(features); testHooksDisabled(features); testTxStructure(features); - // testInferHookSetOperation(); // Not Version Specific - // testParams(features); // Not Version Specific - // testGrants(features); // Not Version Specific + // // testInferHookSetOperation(); // Not Version Specific + // // testParams(features); // Not Version Specific + // // testGrants(features); // Not Version Specific testInstall(features); testDelete(features); @@ -15174,23 +18728,22 @@ public: test_accept(features); test_rollback(features); - // testGuards(features); // Not Used in JSHooks + // // testGuards(features); // Not Used in JSHooks - // test_emit(features); // - // / test_prepare(features); // NEW + // // test_emit(features); // + // // test_prepare(features); // JS ONLY // // test_etxn_burden(features); // tested above // // test_etxn_generation(features); // tested above // // test_otxn_burden(features); // tested above // // test_otxn_generation(features); // tested above - // test_etxn_details(features); // - // test_etxn_fee_base(features); // - // test_etxn_nonce(features); // - // test_etxn_reserve(features); // - // test_fee_base(features); // - + // // test_etxn_details(features); // C ONLY + // // test_etxn_fee_base(features); // + // // test_etxn_nonce(features); // C ONLY + // // test_etxn_reserve(features); // + + // // test_fee_base(features); // // test_otxn_field(features); // - - // test_ledger_keylet(features); // + // // test_ledger_keylet(features); // // test_float_compare(features); // // test_float_divide(features); // @@ -15205,66 +18758,66 @@ public: // test_float_root(features); // // test_float_set(features); // // test_float_sign(features); // - // test_float_sto(features); // - // test_float_sto_set(features); // - // test_float_sum(features); // + // // test_float_sto(features); // + // // test_float_sto_set(features); // + // // test_float_sum(features); // - test_hook_account(features); // - test_hook_again(features); // - test_hook_hash(features); // - test_hook_param(features); // - test_hook_param_set(features); // - test_hook_pos(features); // - test_hook_skip(features); // + // test_hook_account(features); // + // test_hook_again(features); // + // test_hook_hash(features); // + // test_hook_param(features); // + // test_hook_param_set(features); // + // test_hook_pos(features); // + // test_hook_skip(features); // - test_ledger_last_hash(features); // - test_ledger_last_time(features); // - test_ledger_nonce(features); // - test_ledger_seq(features); // + // test_ledger_last_hash(features); // + // test_ledger_last_time(features); // + // test_ledger_nonce(features); // + // test_ledger_seq(features); // - // test_meta_slot(features); // - // test_xpop_slot(features); // + // // test_meta_slot(features); // + // // test_xpop_slot(features); // - test_otxn_id(features); // - test_otxn_slot(features); // - test_otxn_type(features); // - test_otxn_param(features); // - test_otxn_json(features); // + // test_otxn_id(features); // + // test_otxn_slot(features); // + // test_otxn_type(features); // + // test_otxn_param(features); // + // test_otxn_json(features); // JS ONLY - test_slot(features); // - test_slot_clear(features); // - test_slot_count(features); // - test_slot_float(features); // - test_slot_set(features); // - test_slot_size(features); // - test_slot_subarray(features); // - test_slot_subfield(features); // - test_slot_type(features); // - test_slot_json(features); // + // test_slot(features); // + // test_slot_clear(features); // + // test_slot_count(features); // + // test_slot_float(features); // + // test_slot_set(features); // + // test_slot_size(features); // + // test_slot_subarray(features); // + // test_slot_subfield(features); // + // test_slot_type(features); // + // test_slot_json(features); // JS ONLY - test_state(features); // - test_state_foreign(features); // - test_state_foreign_set(features); // - // test_state_foreign_set_max(features); // Not Version Specific - test_state_set(features); // + // test_state(features); // + // test_state_foreign(features); // + // test_state_foreign_set(features); // + // // test_state_foreign_set_max(features); // Not Version Specific + // test_state_set(features); // - // test_sto_emplace(features); // - // test_sto_erase(features); // - // test_sto_subarray(features); // - // test_sto_subfield(features); // - // test_sto_validate(features); // - // test_sto_to_json(features); // NEW - // test_sto_from_json(features); // NEW + // // test_sto_emplace(features); // + // // test_sto_erase(features); // + // // test_sto_subarray(features); // + // // test_sto_subfield(features); // + // // test_sto_validate(features); // + // // test_sto_to_json(features); // JS ONLY + // // test_sto_from_json(features); // JS ONLY - test_trace(features); // - // test_trace_float(features); // Not Used in JSHooks - // test_trace_num(features); // Not Used in JSHooks + // test_trace(features); // + // // test_trace_float(features); // C ONLY + // // test_trace_num(features); // C ONLY - test_util_accid(features); // - test_util_keylet(features); // - test_util_raddr(features); // - test_util_sha512h(features); // - test_util_verify(features); // + // test_util_accid(features); // + // test_util_keylet(features); // + // test_util_raddr(features); // + // test_util_sha512h(features); // + // test_util_verify(features); // } void