From 571ad5c60d1e7d68fd54f6d8fe7a2ec4618caf9f Mon Sep 17 00:00:00 2001 From: Richard Holland Date: Mon, 4 Sep 2023 14:59:15 +0000 Subject: [PATCH] add more governance testcases, governance bug fixes --- hook/govern.c | 49 +- src/ripple/app/hook/xahau.h | 1074 ++++++++++++++-------------- src/ripple/protocol/impl/STTx.cpp | 41 ++ src/test/app/XahauGenesis_test.cpp | 231 ++++-- 4 files changed, 817 insertions(+), 578 deletions(-) diff --git a/hook/govern.c b/hook/govern.c index 2a4d9c4d5..10c869cba 100644 --- a/hook/govern.c +++ b/hook/govern.c @@ -1,6 +1,6 @@ #include "hookapi.h" #define ASSERT(x)\ - if ((x) < 0)\ + if (!(x))\ rollback(SBUF("Govern: Assertion failed."),__LINE__); #define SEAT_COUNT 20 @@ -152,7 +152,7 @@ int64_t hook(uint32_t r) TRACEVAR(imc); // set member count - ASSERT(state_set(SVAR(imc), "MC", 2)); + ASSERT(0 < state_set(SVAR(imc), "MC", 2)); member_count = imc; TRACEVAR(member_count); @@ -176,10 +176,10 @@ int64_t hook(uint32_t r) NOPE("Governance: Initial Reward Delay must be > 0."); // set reward rate - ASSERT(state_set(SVAR(irr), "RR", 2)); + ASSERT(0 < state_set(SVAR(irr), "RR", 2)); // set reward delay - ASSERT(state_set(SVAR(ird), "RD", 2)); + ASSERT(0 < state_set(SVAR(ird), "RD", 2)); } for (uint8_t i = 0; GUARD(SEAT_COUNT), i < member_count; ++i) @@ -327,7 +327,7 @@ int64_t hook(uint32_t r) state(&votes, 1, topic_data, 32); votes++; - ASSERT(state_set(&votes, 1, topic_data, 32)); + ASSERT(0 < state_set(&votes, 1, topic_data, 32)); // restore the saved bytes *((uint64_t*)topic_data) = saved_data; @@ -335,8 +335,12 @@ int64_t hook(uint32_t r) // set this flag if the topic data is all zeros - uint8_t zero[32]; - int topic_data_zero = BUFFER_EQUAL_32(topic_data, zero); + int topic_data_zero = + *((uint64_t*)topic_data + 0) == 0 && + *((uint64_t*)topic_data + 8) == 0 && + *((uint64_t*)topic_data + 16) == 0 && + *((uint64_t*)topic_data + 24) == 0; + if (DEBUG) { @@ -353,21 +357,27 @@ int64_t hook(uint32_t r) int64_t q80 = member_count * 0.8; int64_t q51 = member_count * 0.51; - if (l == 2) + if (q80 < 2) + q80 = 2; + + if (q51 < 2) + q51 = 2; + + if (l == 1) { if (votes < (t == 'S' ? q80 // L1s have 80% threshold for membership/seat voting : member_count)) // L1s have 100% threshold for all other voting - DONE("Governance: Vote for L2 topic recorded. Not yet enough votes to action."); + DONE("Governance: L1 vote record. Not yet enough votes to action."); } - else // l == 1 + else // l == 2 { lost_majority = previous_votes >= q51 && votes < q51; if (lost_majority) - trace(SBUF("Governance: Majority lost, undoing L1 vote."),0,0,0); + trace(SBUF("Governance: L2 vote recorded. Majority lost, undoing L1 vote."),0,0,0); else if (votes < q51) - DONE("Governance: Vote for L1 topic recorded. Not yet enough votes to action."); + DONE("Governance: L2 vote recorded. Not yet enough votes to action L1 vote.."); } @@ -461,7 +471,9 @@ int64_t hook(uint32_t r) case 'R': { // reward topics - ASSERT(state_set(topic_data + padding, topic_size, SBUF(topic))); + int64_t result = state_set(topic_data + padding, topic_size, SBUF(topic)); + TRACEVAR(result); + ASSERT(0 < result); if (n == 'R') DONE("Governance: Reward rate change actioned!"); @@ -537,7 +549,7 @@ int64_t hook(uint32_t r) if (previous_present && !topic_data_zero) { // we will not change member count, we're adding a member and removing a member - + trace(SBUF("previous_present && !topic_data_zero"),0,0,0); // pass } else @@ -547,10 +559,13 @@ int64_t hook(uint32_t r) member_count--; else member_count++; - - ASSERT(member_count > 0); // just bail out if the last member is trying to self remove + + TRACEVAR(member_count); - ASSERT(state_set(&member_count, 1, SBUF(zero)) == 1); + ASSERT(member_count > 1); // just bail out if the second last member is being removed + + uint8_t mc = member_count; + ASSERT(state_set(&mc, 1, "MC", 2) == 1); } // we need to garbage collect all their votes diff --git a/src/ripple/app/hook/xahau.h b/src/ripple/app/hook/xahau.h index 56c7e7820..70c47cdbd 100644 --- a/src/ripple/app/hook/xahau.h +++ b/src/ripple/app/hook/xahau.h @@ -47,97 +47,98 @@ static const std::vector GovernanceHook = 0x62U,0x61U,0x72U,0x72U,0x61U,0x79U,0x00U,0x04U,0x03U,0x65U, 0x6EU,0x76U,0x04U,0x73U,0x6CU,0x6FU,0x74U,0x00U,0x04U,0x03U, 0x02U,0x01U,0x01U,0x05U,0x03U,0x01U,0x00U,0x02U,0x06U,0x08U, - 0x01U,0x7FU,0x01U,0x41U,0xA0U,0x98U,0x04U,0x0BU,0x07U,0x08U, - 0x01U,0x04U,0x68U,0x6FU,0x6FU,0x6BU,0x00U,0x16U,0x0AU,0xDDU, - 0xA6U,0x00U,0x01U,0xD9U,0xA6U,0x00U,0x03U,0x08U,0x7FU,0x03U, - 0x7EU,0x02U,0x7CU,0x23U,0x00U,0x41U,0xC0U,0x0AU,0x6BU,0x22U, + 0x01U,0x7FU,0x01U,0x41U,0xD0U,0x98U,0x04U,0x0BU,0x07U,0x08U, + 0x01U,0x04U,0x68U,0x6FU,0x6FU,0x6BU,0x00U,0x16U,0x0AU,0xFFU, + 0xA8U,0x00U,0x01U,0xFBU,0xA8U,0x00U,0x03U,0x08U,0x7FU,0x04U, + 0x7EU,0x02U,0x7CU,0x23U,0x00U,0x41U,0xB0U,0x0AU,0x6BU,0x22U, 0x00U,0x24U,0x00U,0x41U,0x01U,0x41U,0x01U,0x10U,0x00U,0x1AU, 0x41U,0x01U,0x10U,0x01U,0x1AU,0x10U,0x02U,0x42U,0xE3U,0x00U, 0x52U,0x04U,0x40U,0x41U,0x94U,0x08U,0x41U,0xCCU,0x00U,0x42U, - 0xF7U,0x00U,0x10U,0x03U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0xA0U, + 0xF7U,0x00U,0x10U,0x03U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x90U, 0x0AU,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x04U,0x41U,0x14U,0x41U, - 0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU,0x20U,0x00U,0x41U,0x80U, - 0x0AU,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x07U,0x41U,0x14U,0x10U, - 0x05U,0x1AU,0x02U,0x40U,0x20U,0x00U,0x29U,0x03U,0x8CU,0x0AU, - 0x22U,0x0AU,0x20U,0x00U,0x29U,0x03U,0xACU,0x0AU,0x51U,0x04U, - 0x40U,0x20U,0x00U,0x28U,0x02U,0x9CU,0x0AU,0x20U,0x00U,0x28U, - 0x02U,0xBCU,0x0AU,0x47U,0x20U,0x00U,0x29U,0x03U,0x94U,0x0AU, - 0x20U,0x00U,0x29U,0x03U,0xB4U,0x0AU,0x52U,0x72U,0x0DU,0x01U, + 0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU,0x20U,0x00U,0x41U,0xF0U, + 0x09U,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x08U,0x41U,0x14U,0x10U, + 0x05U,0x1AU,0x02U,0x40U,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U, + 0x22U,0x0AU,0x20U,0x00U,0x29U,0x03U,0x9CU,0x0AU,0x51U,0x04U, + 0x40U,0x20U,0x00U,0x28U,0x02U,0x8CU,0x0AU,0x20U,0x00U,0x28U, + 0x02U,0xACU,0x0AU,0x47U,0x20U,0x00U,0x29U,0x03U,0x84U,0x0AU, + 0x20U,0x00U,0x29U,0x03U,0xA4U,0x0AU,0x52U,0x72U,0x0DU,0x01U, 0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x14U,0x41U,0x83U, 0x80U,0x20U,0x10U,0x04U,0x42U,0x14U,0x51U,0x04U,0x40U,0x02U, - 0x40U,0x20U,0x00U,0x29U,0x03U,0x8CU,0x0AU,0x20U,0x00U,0x29U, + 0x40U,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,0x20U,0x00U,0x29U, 0x03U,0x80U,0x01U,0x51U,0x04U,0x40U,0x20U,0x00U,0x29U,0x03U, - 0x94U,0x0AU,0x20U,0x00U,0x29U,0x03U,0x88U,0x01U,0x51U,0x04U, - 0x40U,0x20U,0x00U,0x28U,0x02U,0x9CU,0x0AU,0x20U,0x00U,0x28U, + 0x84U,0x0AU,0x20U,0x00U,0x29U,0x03U,0x88U,0x01U,0x51U,0x04U, + 0x40U,0x20U,0x00U,0x28U,0x02U,0x8CU,0x0AU,0x20U,0x00U,0x28U, 0x02U,0x90U,0x01U,0x46U,0x0DU,0x02U,0x0BU,0x0BU,0x41U,0xE0U, 0x08U,0x41U,0x21U,0x42U,0x85U,0x01U,0x10U,0x03U,0x1AU,0x0BU, - 0x0BU,0x20U,0x00U,0x29U,0x03U,0x8CU,0x0AU,0x21U,0x0AU,0x0BU, + 0x0BU,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,0x21U,0x0AU,0x0BU, 0x0BU,0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x20U,0x0AU,0x51U, - 0x04U,0x7FU,0x20U,0x00U,0x29U,0x03U,0x94U,0x0AU,0x41U,0x88U, + 0x04U,0x7FU,0x20U,0x00U,0x29U,0x03U,0x84U,0x0AU,0x41U,0x88U, 0x08U,0x29U,0x03U,0x00U,0x51U,0x04U,0x7FU,0x02U,0x7FU,0x41U, - 0x00U,0x20U,0x00U,0x28U,0x02U,0x9CU,0x0AU,0x41U,0x90U,0x08U, + 0x00U,0x20U,0x00U,0x28U,0x02U,0x8CU,0x0AU,0x41U,0x90U,0x08U, 0x28U,0x02U,0x00U,0x47U,0x0DU,0x00U,0x1AU,0x41U,0x81U,0x09U, 0x41U,0x33U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,0x10U,0x06U, 0x1AU,0x41U,0x01U,0x0BU,0x05U,0x41U,0x00U,0x0BU,0x05U,0x41U, - 0x00U,0x0BU,0x21U,0x02U,0x20U,0x00U,0x41U,0x00U,0x41U,0x00U, - 0x41U,0xB4U,0x09U,0x41U,0x02U,0x10U,0x07U,0x22U,0x09U,0x37U, - 0x03U,0xF8U,0x09U,0x20U,0x09U,0x42U,0x7BU,0x51U,0x04U,0x40U, - 0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x41U,0x01U,0x41U,0xB7U, - 0x09U,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U,0x04U,0x40U, - 0x41U,0xBBU,0x09U,0x41U,0x3AU,0x42U,0x97U,0x01U,0x10U,0x09U, - 0x1AU,0x0BU,0x41U,0xF5U,0x09U,0x41U,0x03U,0x20U,0x00U,0x31U, - 0x00U,0x90U,0x09U,0x10U,0x0AU,0x1AU,0x20U,0x00U,0x41U,0x90U, - 0x09U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U,0x02U,0x10U, - 0x0BU,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U, - 0x1AU,0x42U,0x9BU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U, - 0x20U,0x00U,0x31U,0x00U,0x90U,0x09U,0x22U,0x09U,0x37U,0x03U, - 0xF8U,0x09U,0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x09U,0x10U, - 0x0AU,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x22U,0x01U, - 0x45U,0x04U,0x40U,0x41U,0xA0U,0x0AU,0x41U,0x2EU,0x42U,0xA2U, - 0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U, - 0x21U,0x01U,0x0BU,0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U,0x41U, - 0x15U,0x4FU,0x04U,0x40U,0x41U,0xCEU,0x0AU,0x41U,0x3DU,0x42U, - 0xA5U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x02U,0x04U,0x40U, - 0x02U,0x40U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,0x08U, - 0x41U,0x8BU,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U, - 0x04U,0x40U,0x41U,0x8FU,0x0BU,0x41U,0x39U,0x42U,0xAAU,0x01U, - 0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U, - 0x08U,0x41U,0xC8U,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU, - 0x57U,0x04U,0x40U,0x41U,0xCCU,0x0BU,0x41U,0x37U,0x42U,0xADU, - 0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x29U,0x03U,0x20U, - 0x50U,0x04U,0x40U,0x41U,0x83U,0x0CU,0x41U,0x2EU,0x42U,0xB0U, - 0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0xB0U,0x09U, - 0x6AU,0x41U,0x08U,0x41U,0xB1U,0x0CU,0x41U,0x02U,0x10U,0x0BU, - 0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU, - 0x42U,0xB3U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U, - 0x20U,0x6AU,0x41U,0x08U,0x41U,0xB4U,0x0CU,0x41U,0x02U,0x10U, - 0x0BU,0x42U,0x7FU,0x55U,0x0DU,0x00U,0x41U,0xF9U,0x09U,0x41U, - 0x1AU,0x42U,0xB6U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U, - 0x00U,0x21U,0x01U,0x03U,0x40U,0x41U,0xB9U,0x81U,0x80U,0x80U, - 0x78U,0x41U,0x15U,0x10U,0x00U,0x1AU,0x02U,0x40U,0x20U,0x00U, - 0x20U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x29U,0x03U,0xF8U, - 0x09U,0x20U,0x00U,0x2DU,0x00U,0x00U,0x22U,0x01U,0xADU,0x42U, - 0xFFU,0x01U,0x83U,0x57U,0x0DU,0x00U,0x20U,0x00U,0x20U,0x01U, - 0x3AU,0x00U,0x52U,0x20U,0x00U,0x41U,0xC9U,0xA6U,0x01U,0x3BU, - 0x00U,0x50U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x14U, - 0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x03U,0x10U,0x08U, - 0x42U,0x14U,0x52U,0x04U,0x40U,0x41U,0xB7U,0x0CU,0x41U,0x3FU, - 0x42U,0xBEU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x41U,0xF6U,0x0CU, - 0x41U,0x08U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x22U,0x01U, - 0x41U,0x14U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U,0x01U,0x41U, - 0x14U,0x20U,0x00U,0x41U,0x01U,0x10U,0x0BU,0x1AU,0x20U,0x00U, - 0x41U,0x01U,0x20U,0x01U,0x41U,0x14U,0x10U,0x0BU,0x1AU,0x20U, - 0x00U,0x2DU,0x00U,0x00U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU, - 0x01U,0x0BU,0x0BU,0x41U,0xFEU,0x0CU,0x41U,0x2AU,0x42U,0xCBU, - 0x01U,0x10U,0x03U,0x1AU,0x20U,0x00U,0x29U,0x03U,0xF8U,0x09U, - 0x21U,0x09U,0x0BU,0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x09U, + 0x00U,0x0BU,0x21U,0x02U,0x41U,0x00U,0x41U,0x00U,0x41U,0xB4U, + 0x09U,0x41U,0x02U,0x10U,0x07U,0x22U,0x0AU,0x42U,0x7BU,0x51U, + 0x04U,0x40U,0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x41U,0x01U, + 0x41U,0xB7U,0x09U,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U, + 0x04U,0x40U,0x41U,0xBBU,0x09U,0x41U,0x3AU,0x42U,0x97U,0x01U, + 0x10U,0x09U,0x1AU,0x0BU,0x41U,0xF5U,0x09U,0x41U,0x03U,0x20U, + 0x00U,0x31U,0x00U,0x90U,0x09U,0x10U,0x0AU,0x1AU,0x20U,0x00U, + 0x41U,0x90U,0x09U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U, + 0x02U,0x10U,0x0BU,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U, + 0x09U,0x41U,0x1AU,0x42U,0x9BU,0x01U,0x10U,0x09U,0x1AU,0x0BU, + 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x00U,0x2DU,0x00U,0x90U, + 0x09U,0x22U,0x03U,0xADU,0x42U,0xFFU,0x01U,0x83U,0x22U,0x0AU, + 0x10U,0x0AU,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x22U, + 0x01U,0x45U,0x04U,0x40U,0x41U,0xA0U,0x0AU,0x41U,0x2EU,0x42U, + 0xA2U,0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U, + 0x09U,0x21U,0x01U,0x0BU,0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U, + 0x41U,0x15U,0x4FU,0x04U,0x40U,0x41U,0xCEU,0x0AU,0x41U,0x3DU, + 0x42U,0xA5U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x02U,0x04U, + 0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U, + 0x08U,0x41U,0x8BU,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU, + 0x57U,0x04U,0x40U,0x41U,0x8FU,0x0BU,0x41U,0x39U,0x42U,0xAAU, + 0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x20U,0x6AU, + 0x41U,0x08U,0x41U,0xC8U,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U, + 0x7FU,0x57U,0x04U,0x40U,0x41U,0xCCU,0x0BU,0x41U,0x37U,0x42U, + 0xADU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x29U,0x03U, + 0x20U,0x50U,0x04U,0x40U,0x41U,0x83U,0x0CU,0x41U,0x2EU,0x42U, + 0xB0U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0xB0U, + 0x09U,0x6AU,0x41U,0x08U,0x41U,0xB1U,0x0CU,0x41U,0x02U,0x10U, + 0x0BU,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U, + 0x1AU,0x42U,0xB3U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U, + 0x41U,0x20U,0x6AU,0x41U,0x08U,0x41U,0xB4U,0x0CU,0x41U,0x02U, + 0x10U,0x0BU,0x42U,0x00U,0x55U,0x0DU,0x00U,0x41U,0xF9U,0x09U, + 0x41U,0x1AU,0x42U,0xB6U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x0BU, + 0x41U,0x00U,0x21U,0x01U,0x03U,0x40U,0x41U,0xB9U,0x81U,0x80U, + 0x80U,0x78U,0x41U,0x15U,0x10U,0x00U,0x1AU,0x02U,0x40U,0x20U, + 0x00U,0x20U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x2DU,0x00U, + 0x00U,0x22U,0x01U,0x20U,0x03U,0x4FU,0x0DU,0x00U,0x20U,0x00U, + 0x20U,0x01U,0x3AU,0x00U,0x52U,0x20U,0x00U,0x41U,0xC9U,0xA6U, + 0x01U,0x3BU,0x00U,0x50U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, + 0x41U,0x14U,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x03U, + 0x10U,0x08U,0x42U,0x14U,0x52U,0x04U,0x40U,0x41U,0xB7U,0x0CU, + 0x41U,0x3FU,0x42U,0xBEU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x41U, + 0xF6U,0x0CU,0x41U,0x08U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, + 0x22U,0x01U,0x41U,0x14U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U, + 0x01U,0x41U,0x14U,0x20U,0x00U,0x41U,0x01U,0x10U,0x0BU,0x42U, + 0x14U,0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U, + 0xC4U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x01U, + 0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x14U,0x10U,0x0BU, + 0x42U,0x01U,0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU, + 0x42U,0xC8U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU, + 0x00U,0x00U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU,0x01U,0x0BU, + 0x0BU,0x41U,0xFEU,0x0CU,0x41U,0x2AU,0x42U,0xCBU,0x01U,0x10U, + 0x03U,0x1AU,0x0BU,0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x0AU, 0x10U,0x0AU,0x1AU,0x41U,0x00U,0x41U,0x00U,0x20U,0x04U,0x41U, 0x14U,0x10U,0x07U,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U,0xA8U, 0x0DU,0x41U,0xC5U,0x00U,0x42U,0xD7U,0x01U,0x10U,0x09U,0x1AU, - 0x0BU,0x20U,0x00U,0x41U,0xF6U,0x09U,0x6AU,0x41U,0x02U,0x41U, + 0x0BU,0x20U,0x00U,0x41U,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x41U, 0xEDU,0x0DU,0x41U,0x01U,0x10U,0x0CU,0x21U,0x09U,0x20U,0x00U, - 0x2DU,0x00U,0xF7U,0x09U,0x21U,0x04U,0x20U,0x00U,0x2DU,0x00U, - 0xF6U,0x09U,0x21U,0x03U,0x02U,0x40U,0x20U,0x09U,0x42U,0x02U, + 0x2DU,0x00U,0xEFU,0x09U,0x21U,0x04U,0x20U,0x00U,0x2DU,0x00U, + 0xEEU,0x09U,0x21U,0x03U,0x02U,0x40U,0x20U,0x09U,0x42U,0x02U, 0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x03U,0x41U,0xC8U,0x00U, 0x6BU,0x22U,0x01U,0x41U,0x0BU,0x4BU,0x0DU,0x00U,0x41U,0x01U, 0x20U,0x01U,0x74U,0x41U,0x81U,0x18U,0x71U,0x0DU,0x02U,0x0BU, @@ -145,410 +146,438 @@ static const std::vector GovernanceHook = 0x09U,0x1AU,0x0BU,0x02U,0x40U,0x20U,0x03U,0x41U,0xD3U,0x00U, 0x46U,0x04U,0x40U,0x20U,0x04U,0x41U,0x14U,0x4FU,0x04U,0x40U, 0x41U,0xACU,0x0EU,0x41U,0x30U,0x42U,0xEAU,0x01U,0x10U,0x09U, - 0x1AU,0x41U,0x00U,0x21U,0x01U,0x41U,0x01U,0x21U,0x05U,0x0CU, - 0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U,0xC8U,0x00U,0x46U,0x04U, - 0x40U,0x20U,0x04U,0x41U,0x0BU,0x4FU,0x04U,0x40U,0x41U,0xDCU, - 0x0EU,0x41U,0x2FU,0x42U,0xEDU,0x01U,0x10U,0x09U,0x1AU,0x41U, - 0x01U,0x21U,0x05U,0x41U,0x01U,0x21U,0x01U,0x0CU,0x02U,0x0BU, - 0x0BU,0x20U,0x03U,0x41U,0xC8U,0x00U,0x46U,0x21U,0x01U,0x41U, - 0x01U,0x21U,0x05U,0x20U,0x03U,0x41U,0xD2U,0x00U,0x47U,0x0DU, - 0x00U,0x41U,0x00U,0x21U,0x05U,0x20U,0x04U,0x41U,0xC4U,0x00U, - 0x46U,0x20U,0x04U,0x41U,0xD2U,0x00U,0x46U,0x72U,0x0DU,0x00U, - 0x41U,0x8BU,0x0FU,0x41U,0x3CU,0x42U,0xF0U,0x01U,0x10U,0x09U, - 0x1AU,0x0BU,0x20U,0x00U,0x41U,0x01U,0x3AU,0x00U,0xF5U,0x09U, - 0x20U,0x02U,0x45U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x41U, - 0xF5U,0x09U,0x6AU,0x41U,0x01U,0x41U,0xC7U,0x0FU,0x41U,0x01U, - 0x10U,0x0CU,0x42U,0x01U,0x52U,0x04U,0x40U,0x41U,0xC9U,0x0FU, - 0x41U,0xC1U,0x00U,0x42U,0xF8U,0x01U,0x10U,0x09U,0x1AU,0x0BU, - 0x20U,0x00U,0x2DU,0x00U,0xF5U,0x09U,0x22U,0x02U,0x41U,0x31U, - 0x6BU,0x41U,0xFFU,0x01U,0x71U,0x41U,0x02U,0x4FU,0x04U,0x40U, - 0x41U,0x8AU,0x10U,0x41U,0x30U,0x42U,0xFBU,0x01U,0x10U,0x09U, - 0x1AU,0x20U,0x00U,0x2DU,0x00U,0xF5U,0x09U,0x21U,0x02U,0x0BU, - 0x20U,0x00U,0x20U,0x02U,0x41U,0x30U,0x6BU,0x22U,0x02U,0x3AU, - 0x00U,0xF5U,0x09U,0x20U,0x02U,0x41U,0xFFU,0x01U,0x71U,0x41U, - 0x02U,0x47U,0x20U,0x05U,0x72U,0x0DU,0x00U,0x41U,0xBAU,0x10U, - 0x41U,0xC5U,0x00U,0x42U,0x81U,0x02U,0x10U,0x09U,0x1AU,0x0BU, - 0x0BU,0x41U,0x20U,0x41U,0x20U,0x41U,0x14U,0x41U,0x08U,0x20U, - 0x03U,0x41U,0xD3U,0x00U,0x46U,0x1BU,0x20U,0x01U,0x1BU,0x22U, - 0x05U,0x6BU,0x41U,0xFCU,0x01U,0x71U,0x22U,0x01U,0x20U,0x00U, - 0x41U,0xB0U,0x09U,0x6AU,0x6AU,0x22U,0x06U,0x20U,0x05U,0x41U, - 0xFFU,0x10U,0x41U,0x01U,0x10U,0x0CU,0x20U,0x05U,0xADU,0x22U, - 0x09U,0x52U,0x04U,0x40U,0x41U,0x81U,0x11U,0x41U,0xC3U,0x00U, - 0x42U,0x8FU,0x02U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U, - 0x04U,0x3AU,0x00U,0xA2U,0x0AU,0x20U,0x00U,0x20U,0x03U,0x3AU, - 0x00U,0xA1U,0x0AU,0x20U,0x00U,0x41U,0xD6U,0x00U,0x3AU,0x00U, - 0xA0U,0x0AU,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0xF5U,0x09U, - 0x3AU,0x00U,0xA3U,0x0AU,0x20U,0x09U,0x20U,0x01U,0x20U,0x00U, - 0x41U,0x90U,0x09U,0x6AU,0x6AU,0x20U,0x05U,0x20U,0x00U,0x41U, - 0xA0U,0x0AU,0x6AU,0x41U,0x20U,0x10U,0x07U,0x22U,0x09U,0x51U, - 0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x29U,0x03U,0x90U,0x09U, - 0x20U,0x00U,0x29U,0x03U,0xB0U,0x09U,0x52U,0x20U,0x00U,0x29U, - 0x03U,0x98U,0x09U,0x20U,0x00U,0x29U,0x03U,0xB8U,0x09U,0x52U, - 0x72U,0x20U,0x00U,0x29U,0x03U,0xA0U,0x09U,0x20U,0x00U,0x29U, - 0x03U,0xC0U,0x09U,0x52U,0x20U,0x00U,0x29U,0x03U,0xA8U,0x09U, - 0x20U,0x00U,0x29U,0x03U,0xC8U,0x09U,0x52U,0x72U,0x72U,0x0DU, - 0x00U,0x41U,0xC4U,0x11U,0x41U,0x3FU,0x42U,0xA0U,0x02U,0x10U, - 0x03U,0x1AU,0x0BU,0x0BU,0x20U,0x06U,0x20U,0x05U,0x20U,0x00U, - 0x41U,0xA0U,0x0AU,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x1AU,0x41U, - 0x00U,0x21U,0x01U,0x02U,0x40U,0x20U,0x09U,0x42U,0x01U,0x59U, - 0x04U,0x40U,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U,0x92U,0x09U, - 0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0x91U,0x09U,0x20U,0x00U, - 0x41U,0xC3U,0x00U,0x3AU,0x00U,0x90U,0x09U,0x20U,0x00U,0x41U, - 0x00U,0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U,0x20U,0x00U,0x2DU, - 0x00U,0xF5U,0x09U,0x3AU,0x00U,0x93U,0x09U,0x20U,0x00U,0x41U, - 0x80U,0x01U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U,0x90U,0x09U, - 0x6AU,0x41U,0x20U,0x10U,0x07U,0x50U,0x0DU,0x01U,0x20U,0x00U, - 0x2DU,0x00U,0x80U,0x01U,0x22U,0x02U,0x45U,0x0DU,0x01U,0x20U, - 0x00U,0x20U,0x02U,0x41U,0x01U,0x6BU,0x22U,0x01U,0x3AU,0x00U, - 0x80U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x00U, - 0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U,0x22U,0x01U,0x1BU,0x20U, - 0x01U,0x41U,0x00U,0x47U,0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU, - 0x41U,0x20U,0x10U,0x0BU,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U, + 0x1AU,0x41U,0x01U,0x21U,0x05U,0x0CU,0x02U,0x0BU,0x0BU,0x20U, + 0x03U,0x41U,0xC8U,0x00U,0x46U,0x04U,0x40U,0x20U,0x04U,0x41U, + 0x0BU,0x4FU,0x04U,0x40U,0x41U,0xDCU,0x0EU,0x41U,0x2FU,0x42U, + 0xEDU,0x01U,0x10U,0x09U,0x1AU,0x41U,0x01U,0x21U,0x05U,0x41U, + 0x01U,0x21U,0x06U,0x0CU,0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U, + 0xC8U,0x00U,0x46U,0x21U,0x06U,0x41U,0x01U,0x21U,0x05U,0x20U, + 0x03U,0x41U,0xD2U,0x00U,0x47U,0x0DU,0x00U,0x41U,0x00U,0x21U, + 0x05U,0x20U,0x04U,0x41U,0xC4U,0x00U,0x46U,0x20U,0x04U,0x41U, + 0xD2U,0x00U,0x46U,0x72U,0x0DU,0x00U,0x41U,0x8BU,0x0FU,0x41U, + 0x3CU,0x42U,0xF0U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U, + 0x41U,0x01U,0x3AU,0x00U,0xEDU,0x09U,0x20U,0x02U,0x45U,0x04U, + 0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xEDU,0x09U,0x6AU,0x41U, + 0x01U,0x41U,0xC7U,0x0FU,0x41U,0x01U,0x10U,0x0CU,0x42U,0x01U, + 0x52U,0x04U,0x40U,0x41U,0xC9U,0x0FU,0x41U,0xC1U,0x00U,0x42U, + 0xF8U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U, + 0xEDU,0x09U,0x22U,0x01U,0x41U,0x31U,0x6BU,0x41U,0xFFU,0x01U, + 0x71U,0x41U,0x02U,0x4FU,0x04U,0x40U,0x41U,0x8AU,0x10U,0x41U, + 0x30U,0x42U,0xFBU,0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU, + 0x00U,0xEDU,0x09U,0x21U,0x01U,0x0BU,0x20U,0x00U,0x20U,0x01U, + 0x41U,0x30U,0x6BU,0x22U,0x01U,0x3AU,0x00U,0xEDU,0x09U,0x20U, + 0x01U,0x41U,0xFFU,0x01U,0x71U,0x41U,0x02U,0x47U,0x20U,0x05U, + 0x72U,0x0DU,0x00U,0x41U,0xBAU,0x10U,0x41U,0xC5U,0x00U,0x42U, + 0x81U,0x02U,0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0x20U,0x41U, + 0x20U,0x41U,0x14U,0x41U,0x08U,0x20U,0x03U,0x41U,0xD3U,0x00U, + 0x46U,0x1BU,0x20U,0x06U,0x1BU,0x22U,0x06U,0x6BU,0x41U,0xFCU, + 0x01U,0x71U,0x22U,0x01U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU, + 0x6AU,0x22U,0x07U,0x20U,0x06U,0x41U,0xFFU,0x10U,0x41U,0x01U, + 0x10U,0x0CU,0x20U,0x06U,0xADU,0x22U,0x09U,0x52U,0x04U,0x40U, + 0x41U,0x81U,0x11U,0x41U,0xC3U,0x00U,0x42U,0x8FU,0x02U,0x10U, + 0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U,0x92U, + 0x0AU,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0x91U,0x0AU,0x20U, + 0x00U,0x41U,0xD6U,0x00U,0x3AU,0x00U,0x90U,0x0AU,0x20U,0x00U, + 0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0x93U,0x0AU, + 0x20U,0x01U,0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x6AU,0x20U, + 0x06U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU,0x41U,0x20U,0x10U, + 0x07U,0x22U,0x0BU,0x20U,0x09U,0x51U,0x04U,0x40U,0x02U,0x40U, + 0x20U,0x00U,0x29U,0x03U,0x90U,0x09U,0x20U,0x00U,0x29U,0x03U, + 0xB0U,0x09U,0x52U,0x20U,0x00U,0x29U,0x03U,0x98U,0x09U,0x20U, + 0x00U,0x29U,0x03U,0xB8U,0x09U,0x52U,0x72U,0x20U,0x00U,0x29U, + 0x03U,0xA0U,0x09U,0x20U,0x00U,0x29U,0x03U,0xC0U,0x09U,0x52U, + 0x20U,0x00U,0x29U,0x03U,0xA8U,0x09U,0x20U,0x00U,0x29U,0x03U, + 0xC8U,0x09U,0x52U,0x72U,0x72U,0x0DU,0x00U,0x41U,0xC4U,0x11U, + 0x41U,0x3FU,0x42U,0xA0U,0x02U,0x10U,0x03U,0x1AU,0x0BU,0x0BU, + 0x20U,0x07U,0x20U,0x06U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU, + 0x41U,0x20U,0x10U,0x0BU,0x20U,0x09U,0x52U,0x04U,0x40U,0x41U, + 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xA7U,0x02U,0x10U,0x09U,0x1AU, + 0x0BU,0x41U,0x00U,0x21U,0x01U,0x02U,0x40U,0x20U,0x0BU,0x42U, + 0x01U,0x59U,0x04U,0x40U,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U, + 0x92U,0x09U,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0x91U,0x09U, + 0x20U,0x00U,0x41U,0xC3U,0x00U,0x3AU,0x00U,0x90U,0x09U,0x20U, + 0x00U,0x41U,0x00U,0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U,0x20U, + 0x00U,0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0x93U,0x09U,0x20U, + 0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U, + 0x90U,0x09U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x50U,0x0DU,0x01U, + 0x20U,0x00U,0x2DU,0x00U,0x80U,0x01U,0x22U,0x02U,0x45U,0x0DU, + 0x01U,0x20U,0x00U,0x20U,0x02U,0x41U,0x01U,0x6BU,0x22U,0x01U, + 0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, + 0x41U,0x00U,0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U,0x22U,0x01U, + 0x1BU,0x20U,0x01U,0x41U,0x00U,0x47U,0x20U,0x00U,0x41U,0x90U, + 0x09U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x50U,0x04U,0x40U,0x41U, 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xB9U,0x02U,0x10U,0x09U,0x1AU, 0x0BU,0x20U,0x02U,0x21U,0x01U,0x0BU,0x0BU,0x20U,0x00U,0x41U, 0x00U,0x3AU,0x00U,0x8FU,0x09U,0x20U,0x00U,0x29U,0x03U,0xB0U, 0x09U,0x21U,0x09U,0x20U,0x00U,0x41U,0xC3U,0x00U,0x3AU,0x00U, - 0xB0U,0x09U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0xF5U,0x09U, + 0xB0U,0x09U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U, 0x3AU,0x00U,0xB3U,0x09U,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U, 0xB2U,0x09U,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0xB1U,0x09U, 0x20U,0x00U,0x41U,0x8FU,0x09U,0x6AU,0x22U,0x02U,0x41U,0x01U, - 0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x22U,0x08U,0x41U,0x20U, + 0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x22U,0x05U,0x41U,0x20U, 0x10U,0x07U,0x1AU,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0x8FU, 0x09U,0x41U,0x01U,0x6AU,0x3AU,0x00U,0x8FU,0x09U,0x20U,0x02U, - 0x41U,0x01U,0x20U,0x08U,0x41U,0x20U,0x10U,0x0BU,0x42U,0x7FU, + 0x41U,0x01U,0x20U,0x05U,0x41U,0x20U,0x10U,0x0BU,0x42U,0x00U, 0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xCAU, 0x02U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U,0x09U,0x37U, - 0x03U,0xB0U,0x09U,0x41U,0x83U,0x12U,0x41U,0x0FU,0x42U,0x00U, - 0x10U,0x0AU,0x1AU,0x41U,0x93U,0x12U,0x41U,0x05U,0x20U,0x00U, - 0x31U,0x00U,0x8FU,0x09U,0x10U,0x0AU,0x1AU,0x41U,0x93U,0x0AU, - 0x41U,0x0CU,0x20U,0x00U,0x29U,0x03U,0xF8U,0x09U,0x22U,0x0AU, - 0x10U,0x0AU,0x1AU,0x41U,0x99U,0x12U,0x41U,0x06U,0x20U,0x00U, - 0x41U,0xF6U,0x09U,0x6AU,0x41U,0x02U,0x41U,0x01U,0x10U,0x06U, - 0x1AU,0x20U,0x00U,0x2DU,0x00U,0xF5U,0x09U,0x41U,0x02U,0x47U, - 0x21U,0x02U,0x20U,0x0AU,0xB9U,0x22U,0x0CU,0x44U,0x52U,0xB8U, - 0x1EU,0x85U,0xEBU,0x51U,0xE0U,0x3FU,0xA2U,0x22U,0x0DU,0x99U, - 0x44U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0xE0U,0x43U,0x63U, - 0x04U,0x7EU,0x20U,0x0DU,0xB0U,0x05U,0x42U,0x80U,0x80U,0x80U, - 0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x7FU,0x0BU,0x21U,0x09U, - 0x02U,0x40U,0x20U,0x02U,0x04U,0x40U,0x20U,0x00U,0x31U,0x00U, - 0x8FU,0x09U,0x21U,0x0AU,0x20U,0x09U,0x20U,0x01U,0xADU,0x57U, - 0x04U,0x40U,0x02U,0x40U,0x20U,0x09U,0x20U,0x0AU,0x57U,0x0DU, - 0x00U,0x41U,0xE7U,0x12U,0x41U,0x2CU,0x41U,0x00U,0x41U,0x00U, - 0x41U,0x00U,0x10U,0x06U,0x1AU,0x42U,0x01U,0x21U,0x0BU,0x0CU, - 0x03U,0x0BU,0x0BU,0x20U,0x09U,0x20U,0x0AU,0x57U,0x0DU,0x01U, - 0x41U,0x93U,0x13U,0x41U,0xC8U,0x00U,0x42U,0xF2U,0x02U,0x10U, - 0x03U,0x1AU,0x05U,0x20U,0x03U,0x41U,0xD3U,0x00U,0x46U,0x21U, - 0x01U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x20U,0x0CU,0x44U, + 0x03U,0xB0U,0x09U,0x41U,0x00U,0x21U,0x05U,0x02U,0x40U,0x20U, + 0x09U,0x50U,0x04U,0x40U,0x20U,0x00U,0x41U,0xF0U,0x09U,0x6AU, + 0x29U,0x03U,0x00U,0x42U,0x00U,0x52U,0x20U,0x00U,0x41U,0xB0U, + 0x0AU,0x6AU,0x29U,0x03U,0x00U,0x42U,0x00U,0x52U,0x72U,0x0DU, + 0x01U,0x20U,0x00U,0x41U,0xF0U,0x0AU,0x6AU,0x29U,0x03U,0x00U, + 0x50U,0x21U,0x05U,0x0BU,0x0BU,0x41U,0x83U,0x12U,0x41U,0x0FU, + 0x20U,0x05U,0xADU,0x10U,0x0AU,0x1AU,0x41U,0x93U,0x12U,0x41U, + 0x05U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x10U,0x0AU,0x1AU, + 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x0AU,0x10U,0x0AU,0x1AU, + 0x41U,0x99U,0x12U,0x41U,0x06U,0x20U,0x00U,0x41U,0xEEU,0x09U, + 0x6AU,0x41U,0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U,0x0AU, + 0xB9U,0x22U,0x0DU,0x44U,0x52U,0xB8U,0x1EU,0x85U,0xEBU,0x51U, + 0xE0U,0x3FU,0xA2U,0x22U,0x0EU,0x99U,0x44U,0x00U,0x00U,0x00U, + 0x00U,0x00U,0x00U,0xE0U,0x43U,0x63U,0x04U,0x7EU,0x20U,0x0EU, + 0xB0U,0x05U,0x42U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U, + 0x80U,0x80U,0x7FU,0x0BU,0x21U,0x09U,0x20U,0x00U,0x2DU,0x00U, + 0xEDU,0x09U,0x41U,0x01U,0x47U,0x21U,0x02U,0x20U,0x0DU,0x44U, 0x9AU,0x99U,0x99U,0x99U,0x99U,0x99U,0xE9U,0x3FU,0xA2U,0x22U, - 0x0CU,0x99U,0x44U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0xE0U, - 0x43U,0x63U,0x04U,0x7EU,0x20U,0x0CU,0xB0U,0x05U,0x42U,0x80U, + 0x0DU,0x99U,0x44U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0xE0U, + 0x43U,0x63U,0x04U,0x7EU,0x20U,0x0DU,0xB0U,0x05U,0x42U,0x80U, 0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x7FU,0x0BU, - 0x20U,0x0AU,0x20U,0x01U,0x1BU,0x59U,0x0DU,0x01U,0x41U,0x9FU, - 0x12U,0x41U,0xC8U,0x00U,0x42U,0xEAU,0x02U,0x10U,0x03U,0x1AU, - 0x0BU,0x0BU,0x41U,0xDBU,0x13U,0x41U,0x11U,0x41U,0xEDU,0x13U, - 0x41U,0x10U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x20U,0x00U,0x2DU, - 0x00U,0xF5U,0x09U,0x41U,0x02U,0x46U,0x04U,0x40U,0x10U,0x0DU, - 0x21U,0x09U,0x20U,0x00U,0x41U,0x9EU,0x01U,0x6AU,0x42U,0x80U, - 0x80U,0x80U,0x80U,0xB0U,0x8EU,0xC0U,0xC0U,0x14U,0x37U,0x00U, - 0x00U,0x20U,0x00U,0x41U,0xE8U,0x80U,0x01U,0x3BU,0x00U,0x99U, - 0x01U,0x20U,0x00U,0x41U,0xA0U,0x36U,0x3BU,0x00U,0x93U,0x01U, - 0x20U,0x00U,0x41U,0xA0U,0x34U,0x3BU,0x00U,0x8DU,0x01U,0x20U, - 0x00U,0x41U,0x00U,0x36U,0x00U,0x89U,0x01U,0x20U,0x00U,0x41U, - 0x24U,0x3AU,0x00U,0x88U,0x01U,0x20U,0x00U,0x42U,0x92U,0x80U, - 0x8CU,0x93U,0x82U,0x10U,0x37U,0x03U,0x80U,0x01U,0x20U,0x00U, - 0x41U,0x00U,0x36U,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x09U, - 0xA7U,0x22U,0x02U,0x41U,0x05U,0x6AU,0x22U,0x01U,0x3AU,0x00U, - 0x98U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU, - 0x00U,0x97U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U, - 0x3AU,0x00U,0x96U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U, - 0x76U,0x3AU,0x00U,0x95U,0x01U,0x20U,0x00U,0x20U,0x02U,0x41U, - 0x01U,0x6AU,0x22U,0x01U,0x3AU,0x00U,0x92U,0x01U,0x20U,0x00U, - 0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U,0x91U,0x01U,0x20U, - 0x00U,0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U,0x90U,0x01U, - 0x20U,0x00U,0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU,0x00U,0x8FU, - 0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0x8CU,0x0AU,0x37U, - 0x03U,0xA6U,0x01U,0x20U,0x00U,0x41U,0x83U,0x29U,0x3BU,0x01U, - 0xBAU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0x94U,0x0AU, - 0x37U,0x03U,0xAEU,0x01U,0x20U,0x00U,0x20U,0x00U,0x28U,0x02U, - 0x9CU,0x0AU,0x36U,0x02U,0xB6U,0x01U,0x20U,0x00U,0x41U,0x80U, - 0x08U,0x29U,0x03U,0x00U,0x37U,0x03U,0xBCU,0x01U,0x20U,0x00U, - 0x41U,0x88U,0x08U,0x29U,0x03U,0x00U,0x37U,0x03U,0xC4U,0x01U, - 0x20U,0x00U,0x41U,0x90U,0x08U,0x28U,0x02U,0x00U,0x36U,0x02U, - 0xCCU,0x01U,0x20U,0x00U,0x41U,0xD0U,0x01U,0x6AU,0x22U,0x01U, - 0x41U,0x80U,0x04U,0x10U,0x0EU,0xA7U,0x20U,0x01U,0x6AU,0x22U, - 0x01U,0x41U,0xF0U,0xB2U,0x08U,0x36U,0x02U,0x08U,0x20U,0x01U, - 0x42U,0xF0U,0xA7U,0x80U,0xBFU,0x81U,0x8EU,0xC6U,0x80U,0xD4U, - 0x00U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x0BU,0x6AU,0x20U, - 0x04U,0x20U,0x03U,0x41U,0x04U,0x74U,0x6AU,0x3AU,0x00U,0x00U, - 0x20U,0x01U,0x41U,0x15U,0x6AU,0x20U,0x05U,0x3AU,0x00U,0x00U, - 0x20U,0x01U,0x41U,0x14U,0x6AU,0x41U,0x19U,0x3AU,0x00U,0x00U, - 0x20U,0x01U,0x41U,0x0CU,0x6AU,0x42U,0xE1U,0xC1U,0xDFU,0x80U, - 0x87U,0xA3U,0x80U,0xABU,0xF0U,0x00U,0x37U,0x03U,0x00U,0x20U, - 0x01U,0x41U,0x16U,0x6AU,0x21U,0x01U,0x20U,0x0BU,0x50U,0x04U, - 0x40U,0x20U,0x01U,0x20U,0x06U,0x29U,0x03U,0x00U,0x37U,0x03U, - 0x00U,0x20U,0x01U,0x20U,0x06U,0x29U,0x03U,0x08U,0x37U,0x03U, - 0x08U,0x20U,0x01U,0x41U,0x10U,0x6AU,0x20U,0x06U,0x29U,0x03U, - 0x10U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x18U,0x6AU,0x20U, - 0x06U,0x29U,0x03U,0x18U,0x37U,0x03U,0x00U,0x0BU,0x20U,0x01U, - 0x20U,0x05U,0x6AU,0x22U,0x01U,0x41U,0xE1U,0xE3U,0x03U,0x3BU, - 0x01U,0x00U,0x20U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, - 0x22U,0x01U,0x6BU,0x21U,0x02U,0x20U,0x00U,0x20U,0x01U,0x20U, - 0x02U,0x10U,0x0FU,0x22U,0x09U,0x3CU,0x00U,0xA1U,0x01U,0x20U, - 0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,0x99U,0x01U,0x20U,0x00U, - 0x20U,0x09U,0x42U,0x08U,0x88U,0x3CU,0x00U,0xA0U,0x01U,0x20U, - 0x00U,0x20U,0x09U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x9FU,0x01U, - 0x20U,0x00U,0x20U,0x09U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x9EU, - 0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x20U,0x88U,0x3CU,0x00U, - 0x9DU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x28U,0x88U,0x3CU, - 0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x30U,0x88U, - 0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x38U, - 0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U,0xC0U,0x00U,0x72U,0x3AU, - 0x00U,0x9AU,0x01U,0x41U,0xFDU,0x13U,0x41U,0x22U,0x20U,0x01U, - 0x20U,0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x41U,0x9FU,0x14U, - 0x41U,0x18U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x20U, - 0x01U,0x20U,0x02U,0x10U,0x10U,0x22U,0x0AU,0x10U,0x0AU,0x1AU, - 0x20U,0x0AU,0x42U,0x20U,0x51U,0x04U,0x40U,0x41U,0xB7U,0x14U, - 0x41U,0x2AU,0x42U,0xC6U,0x03U,0x10U,0x03U,0x1AU,0x0BU,0x41U, - 0xE1U,0x14U,0x41U,0x25U,0x42U,0xC8U,0x03U,0x10U,0x09U,0x1AU, - 0x0BU,0x02U,0x40U,0x02U,0x40U,0x20U,0x03U,0x41U,0xD2U,0x00U, - 0x6BU,0x22U,0x01U,0x41U,0x01U,0x4DU,0x04U,0x40U,0x20U,0x01U, - 0x41U,0x01U,0x46U,0x0DU,0x01U,0x20U,0x06U,0x20U,0x05U,0x20U, - 0x00U,0x41U,0xF6U,0x09U,0x6AU,0x41U,0x02U,0x10U,0x0BU,0x42U, - 0x7FU,0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U, - 0xD0U,0x03U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x04U,0x41U,0xD2U, - 0x00U,0x46U,0x04U,0x40U,0x41U,0x86U,0x15U,0x41U,0x29U,0x42U, - 0xD2U,0x03U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0xAFU,0x15U,0x41U, - 0x2AU,0x42U,0xD4U,0x03U,0x10U,0x03U,0x1AU,0x05U,0x20U,0x03U, - 0x41U,0xC8U,0x00U,0x47U,0x0DU,0x02U,0x0BU,0x20U,0x00U,0x41U, - 0xD0U,0x00U,0x6AU,0x22U,0x01U,0x41U,0x22U,0x41U,0x01U,0x20U, - 0x07U,0x41U,0x14U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,0x41U, - 0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U,0x41U,0x22U,0x41U,0x05U, - 0x10U,0x12U,0x1AU,0x41U,0x05U,0x41U,0x8BU,0x80U,0x3CU,0x41U, - 0x06U,0x10U,0x13U,0x1AU,0x41U,0x06U,0x20U,0x04U,0x41U,0x07U, - 0x10U,0x14U,0x42U,0x07U,0x51U,0x04U,0x40U,0x02U,0x40U,0x41U, - 0x07U,0x41U,0x9FU,0x80U,0x14U,0x41U,0x08U,0x10U,0x13U,0x1AU, - 0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x20U,0x41U,0x08U, - 0x10U,0x15U,0x1AU,0x20U,0x00U,0x29U,0x03U,0x80U,0x01U,0x20U, + 0x21U,0x0BU,0x02U,0x40U,0x20U,0x02U,0x04U,0x40U,0x20U,0x00U, + 0x31U,0x00U,0x8FU,0x09U,0x21U,0x0BU,0x20U,0x09U,0x42U,0x02U, + 0x20U,0x09U,0x42U,0x02U,0x55U,0x1BU,0x22U,0x0CU,0x20U,0x01U, + 0xADU,0x57U,0x04U,0x40U,0x02U,0x40U,0x20U,0x0BU,0x20U,0x0CU, + 0x59U,0x0DU,0x00U,0x41U,0xDBU,0x12U,0x41U,0x3EU,0x41U,0x00U, + 0x41U,0x00U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x42U,0x01U,0x21U, + 0x09U,0x0CU,0x03U,0x0BU,0x0BU,0x42U,0x00U,0x21U,0x09U,0x20U, + 0x0BU,0x20U,0x0CU,0x59U,0x0DU,0x01U,0x41U,0x99U,0x13U,0x41U, + 0xC7U,0x00U,0x42U,0xFCU,0x02U,0x10U,0x03U,0x1AU,0x05U,0x42U, + 0x00U,0x21U,0x09U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x20U, + 0x0BU,0x42U,0x02U,0x20U,0x0BU,0x42U,0x02U,0x55U,0x1BU,0x20U, + 0x0AU,0x20U,0x03U,0x41U,0xD3U,0x00U,0x46U,0x1BU,0x59U,0x0DU, + 0x01U,0x41U,0x9FU,0x12U,0x41U,0x3CU,0x42U,0xF4U,0x02U,0x10U, + 0x03U,0x1AU,0x0BU,0x0BU,0x41U,0xE0U,0x13U,0x41U,0x11U,0x41U, + 0xF2U,0x13U,0x41U,0x10U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x20U, + 0x00U,0x2DU,0x00U,0xEDU,0x09U,0x41U,0x02U,0x46U,0x04U,0x40U, + 0x10U,0x0DU,0x21U,0x0BU,0x20U,0x00U,0x41U,0x9EU,0x01U,0x6AU, + 0x42U,0x80U,0x80U,0x80U,0x80U,0xB0U,0x8EU,0xC0U,0xC0U,0x14U, + 0x37U,0x00U,0x00U,0x20U,0x00U,0x41U,0xE8U,0x80U,0x01U,0x3BU, + 0x00U,0x99U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x36U,0x3BU,0x00U, + 0x93U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x34U,0x3BU,0x00U,0x8DU, + 0x01U,0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x89U,0x01U,0x20U, + 0x00U,0x41U,0x24U,0x3AU,0x00U,0x88U,0x01U,0x20U,0x00U,0x42U, + 0x92U,0x80U,0x8CU,0x93U,0x82U,0x10U,0x37U,0x03U,0x80U,0x01U, + 0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x9BU,0x01U,0x20U,0x00U, + 0x20U,0x0BU,0xA7U,0x22U,0x02U,0x41U,0x05U,0x6AU,0x22U,0x01U, + 0x3AU,0x00U,0x98U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U, + 0x76U,0x3AU,0x00U,0x97U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U, + 0x10U,0x76U,0x3AU,0x00U,0x96U,0x01U,0x20U,0x00U,0x20U,0x01U, + 0x41U,0x18U,0x76U,0x3AU,0x00U,0x95U,0x01U,0x20U,0x00U,0x20U, + 0x02U,0x41U,0x01U,0x6AU,0x22U,0x01U,0x3AU,0x00U,0x92U,0x01U, + 0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U,0x91U, + 0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U, + 0x90U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU, + 0x00U,0x8FU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0xFCU, + 0x09U,0x37U,0x03U,0xA6U,0x01U,0x20U,0x00U,0x41U,0x83U,0x29U, + 0x3BU,0x01U,0xBAU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U, + 0x84U,0x0AU,0x37U,0x03U,0xAEU,0x01U,0x20U,0x00U,0x20U,0x00U, + 0x28U,0x02U,0x8CU,0x0AU,0x36U,0x02U,0xB6U,0x01U,0x20U,0x00U, + 0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x37U,0x03U,0xBCU,0x01U, + 0x20U,0x00U,0x41U,0x88U,0x08U,0x29U,0x03U,0x00U,0x37U,0x03U, + 0xC4U,0x01U,0x20U,0x00U,0x41U,0x90U,0x08U,0x28U,0x02U,0x00U, + 0x36U,0x02U,0xCCU,0x01U,0x20U,0x00U,0x41U,0xD0U,0x01U,0x6AU, + 0x22U,0x01U,0x41U,0x80U,0x04U,0x10U,0x0EU,0xA7U,0x20U,0x01U, + 0x6AU,0x22U,0x01U,0x41U,0xF0U,0xB2U,0x08U,0x36U,0x02U,0x08U, + 0x20U,0x01U,0x42U,0xF0U,0xA7U,0x80U,0xBFU,0x81U,0x8EU,0xC6U, + 0x80U,0xD4U,0x00U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x0BU, + 0x6AU,0x20U,0x04U,0x20U,0x03U,0x41U,0x04U,0x74U,0x6AU,0x3AU, + 0x00U,0x00U,0x20U,0x01U,0x41U,0x15U,0x6AU,0x20U,0x06U,0x3AU, + 0x00U,0x00U,0x20U,0x01U,0x41U,0x14U,0x6AU,0x41U,0x19U,0x3AU, + 0x00U,0x00U,0x20U,0x01U,0x41U,0x0CU,0x6AU,0x42U,0xE1U,0xC1U, + 0xDFU,0x80U,0x87U,0xA3U,0x80U,0xABU,0xF0U,0x00U,0x37U,0x03U, + 0x00U,0x20U,0x01U,0x41U,0x16U,0x6AU,0x21U,0x01U,0x20U,0x09U, + 0x50U,0x04U,0x40U,0x20U,0x01U,0x20U,0x07U,0x29U,0x03U,0x00U, + 0x37U,0x03U,0x00U,0x20U,0x01U,0x20U,0x07U,0x29U,0x03U,0x08U, + 0x37U,0x03U,0x08U,0x20U,0x01U,0x41U,0x10U,0x6AU,0x20U,0x07U, + 0x29U,0x03U,0x10U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x18U, + 0x6AU,0x20U,0x07U,0x29U,0x03U,0x18U,0x37U,0x03U,0x00U,0x0BU, + 0x20U,0x01U,0x20U,0x06U,0x6AU,0x22U,0x01U,0x41U,0xE1U,0xE3U, + 0x03U,0x3BU,0x01U,0x00U,0x20U,0x01U,0x20U,0x00U,0x41U,0x80U, + 0x01U,0x6AU,0x22U,0x01U,0x6BU,0x21U,0x02U,0x20U,0x00U,0x20U, + 0x01U,0x20U,0x02U,0x10U,0x0FU,0x22U,0x09U,0x3CU,0x00U,0xA1U, + 0x01U,0x20U,0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,0x99U,0x01U, + 0x20U,0x00U,0x20U,0x09U,0x42U,0x08U,0x88U,0x3CU,0x00U,0xA0U, + 0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x10U,0x88U,0x3CU,0x00U, + 0x9FU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x18U,0x88U,0x3CU, + 0x00U,0x9EU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x20U,0x88U, + 0x3CU,0x00U,0x9DU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x28U, + 0x88U,0x3CU,0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U, + 0x30U,0x88U,0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x09U, + 0x42U,0x38U,0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U,0xC0U,0x00U, + 0x72U,0x3AU,0x00U,0x9AU,0x01U,0x41U,0x82U,0x14U,0x41U,0x22U, + 0x20U,0x01U,0x20U,0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x41U, + 0xA4U,0x14U,0x41U,0x18U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U, + 0x20U,0x20U,0x01U,0x20U,0x02U,0x10U,0x10U,0x22U,0x09U,0x10U, + 0x0AU,0x1AU,0x20U,0x09U,0x42U,0x20U,0x51U,0x04U,0x40U,0x41U, + 0xBCU,0x14U,0x41U,0x2AU,0x42U,0xD0U,0x03U,0x10U,0x03U,0x1AU, + 0x0BU,0x41U,0xE6U,0x14U,0x41U,0x25U,0x42U,0xD2U,0x03U,0x10U, + 0x09U,0x1AU,0x0BU,0x02U,0x40U,0x02U,0x40U,0x20U,0x03U,0x41U, + 0xD2U,0x00U,0x6BU,0x22U,0x01U,0x41U,0x01U,0x4DU,0x04U,0x40U, + 0x20U,0x01U,0x41U,0x01U,0x46U,0x0DU,0x01U,0x41U,0x8BU,0x15U, + 0x41U,0x06U,0x20U,0x07U,0x20U,0x06U,0x20U,0x00U,0x41U,0xEEU, + 0x09U,0x6AU,0x41U,0x02U,0x10U,0x0BU,0x22U,0x09U,0x10U,0x0AU, + 0x1AU,0x20U,0x09U,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U, + 0x09U,0x41U,0x1AU,0x42U,0xDCU,0x03U,0x10U,0x09U,0x1AU,0x0BU, + 0x20U,0x04U,0x41U,0xD2U,0x00U,0x46U,0x04U,0x40U,0x41U,0x92U, + 0x15U,0x41U,0x29U,0x42U,0xDEU,0x03U,0x10U,0x03U,0x1AU,0x0BU, + 0x41U,0xBBU,0x15U,0x41U,0x2AU,0x42U,0xE0U,0x03U,0x10U,0x03U, + 0x1AU,0x05U,0x20U,0x03U,0x41U,0xC8U,0x00U,0x47U,0x0DU,0x02U, + 0x0BU,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x22U,0x01U,0x41U, + 0x22U,0x41U,0x01U,0x20U,0x08U,0x41U,0x14U,0x41U,0x00U,0x41U, + 0x00U,0x41U,0x00U,0x41U,0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U, + 0x41U,0x22U,0x41U,0x05U,0x10U,0x12U,0x1AU,0x41U,0x05U,0x41U, + 0x8BU,0x80U,0x3CU,0x41U,0x06U,0x10U,0x13U,0x1AU,0x41U,0x06U, + 0x20U,0x04U,0x41U,0x07U,0x10U,0x14U,0x42U,0x07U,0x51U,0x04U, + 0x40U,0x02U,0x40U,0x41U,0x07U,0x41U,0x9FU,0x80U,0x14U,0x41U, + 0x08U,0x10U,0x13U,0x1AU,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, + 0x41U,0x20U,0x41U,0x08U,0x10U,0x15U,0x42U,0x20U,0x52U,0x04U, + 0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xF6U,0x03U,0x10U, + 0x09U,0x1AU,0x0BU,0x20U,0x00U,0x29U,0x03U,0x80U,0x01U,0x20U, 0x00U,0x29U,0x03U,0xB0U,0x09U,0x52U,0x20U,0x00U,0x29U,0x03U, 0x88U,0x01U,0x20U,0x00U,0x29U,0x03U,0xB8U,0x09U,0x52U,0x72U, 0x20U,0x00U,0x29U,0x03U,0x90U,0x01U,0x20U,0x00U,0x29U,0x03U, 0xC0U,0x09U,0x52U,0x20U,0x00U,0x29U,0x03U,0x98U,0x01U,0x20U, 0x00U,0x29U,0x03U,0xC8U,0x09U,0x52U,0x72U,0x72U,0x0DU,0x00U, - 0x41U,0xD9U,0x15U,0x41U,0x3DU,0x42U,0xEEU,0x03U,0x10U,0x03U, + 0x41U,0xE5U,0x15U,0x41U,0x3DU,0x42U,0xFAU,0x03U,0x10U,0x03U, 0x1AU,0x0BU,0x0BU,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x22U, 0x01U,0x41U,0x22U,0x41U,0x18U,0x20U,0x00U,0x41U,0xB0U,0x09U, 0x6AU,0x41U,0x20U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,0x41U, 0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U,0x41U,0x22U,0x41U,0x09U, - 0x10U,0x12U,0x42U,0x09U,0x52U,0x04U,0x40U,0x41U,0x96U,0x16U, - 0x41U,0xC3U,0x00U,0x42U,0xF6U,0x03U,0x10U,0x09U,0x1AU,0x0BU, + 0x10U,0x12U,0x42U,0x09U,0x52U,0x04U,0x40U,0x41U,0xA2U,0x16U, + 0x41U,0xC3U,0x00U,0x42U,0x82U,0x04U,0x10U,0x09U,0x1AU,0x0BU, 0x20U,0x00U,0x41U,0x20U,0x6AU,0x20U,0x04U,0x41U,0x02U,0x74U, - 0x6AU,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x36U,0x02U,0x00U, - 0x10U,0x0DU,0x21U,0x09U,0x20U,0x00U,0x41U,0x14U,0x10U,0x05U, - 0x1AU,0x20U,0x00U,0x41U,0x9EU,0x01U,0x6AU,0x42U,0x80U,0x80U, - 0x80U,0x80U,0xB0U,0x8EU,0xC0U,0xC0U,0x14U,0x37U,0x00U,0x00U, - 0x20U,0x00U,0x41U,0xE8U,0x80U,0x01U,0x3BU,0x00U,0x99U,0x01U, - 0x20U,0x00U,0x41U,0xA0U,0x36U,0x3BU,0x00U,0x93U,0x01U,0x20U, - 0x00U,0x41U,0xA0U,0x34U,0x3BU,0x00U,0x8DU,0x01U,0x20U,0x00U, - 0x41U,0x00U,0x36U,0x00U,0x89U,0x01U,0x20U,0x00U,0x41U,0x24U, - 0x3AU,0x00U,0x88U,0x01U,0x20U,0x00U,0x42U,0x92U,0x80U,0xD8U, - 0x90U,0x82U,0x10U,0x37U,0x03U,0x80U,0x01U,0x20U,0x00U,0x41U, - 0x00U,0x36U,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x09U,0xA7U, - 0x22U,0x02U,0x41U,0x05U,0x6AU,0x22U,0x01U,0x3AU,0x00U,0x98U, - 0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U, - 0x97U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU, - 0x00U,0x96U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U,0x76U, - 0x3AU,0x00U,0x95U,0x01U,0x20U,0x00U,0x20U,0x02U,0x41U,0x01U, - 0x6AU,0x22U,0x01U,0x3AU,0x00U,0x92U,0x01U,0x20U,0x00U,0x20U, - 0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U,0x91U,0x01U,0x20U,0x00U, - 0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U,0x90U,0x01U,0x20U, - 0x00U,0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU,0x00U,0x8FU,0x01U, - 0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0x00U,0x37U,0x03U,0xA6U, - 0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0x08U,0x37U,0x03U, - 0xAEU,0x01U,0x20U,0x00U,0x20U,0x00U,0x28U,0x02U,0x10U,0x36U, - 0x02U,0xB6U,0x01U,0x20U,0x00U,0x41U,0xBAU,0x01U,0x6AU,0x22U, - 0x01U,0x41U,0xC6U,0x07U,0x10U,0x0EU,0xA7U,0x20U,0x01U,0x6AU, - 0x22U,0x01U,0x41U,0xFBU,0xDDU,0x03U,0x3BU,0x00U,0x00U,0x20U, - 0x01U,0x41U,0x02U,0x6AU,0x21U,0x01U,0x20U,0x00U,0x28U,0x02U, - 0x20U,0x22U,0x02U,0x04U,0x40U,0x20U,0x01U,0x41U,0x22U,0x36U, - 0x00U,0x00U,0x20U,0x01U,0x41U,0x04U,0x6AU,0x41U,0x01U,0x3AU, - 0x00U,0x00U,0x20U,0x01U,0x41U,0x06U,0x6AU,0x21U,0x03U,0x20U, - 0x01U,0x41U,0x05U,0x6AU,0x21U,0x01U,0x20U,0x02U,0x41U,0x7FU, - 0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x00U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x01U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x09U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x11U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x19U, - 0x20U,0x03U,0x41U,0x20U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU, - 0x00U,0x3BU,0x00U,0x00U,0x20U,0x03U,0x41U,0x01U,0x6AU,0x0BU, - 0x21U,0x01U,0x0BU,0x20U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U, - 0x00U,0x20U,0x00U,0x28U,0x02U,0x24U,0x21U,0x02U,0x20U,0x01U, - 0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU, - 0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U, - 0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U, - 0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U, - 0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU, - 0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U, - 0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U, - 0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x28U,0x21U,0x02U, - 0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U, - 0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U, - 0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU, - 0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U, - 0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU, - 0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU, - 0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U, - 0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x2CU, - 0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U, - 0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U, - 0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U, - 0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU, - 0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U, - 0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U, - 0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U, - 0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U, - 0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U, - 0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U, - 0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U, - 0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U, - 0x02U,0x30U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU, - 0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U, - 0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U, - 0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U, - 0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U, - 0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U, - 0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU, - 0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U, - 0x00U,0x28U,0x02U,0x34U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU, - 0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U, - 0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U, - 0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U, - 0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U, - 0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U, - 0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U, - 0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U, - 0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U, - 0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U, - 0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U, - 0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U, - 0x00U,0x20U,0x00U,0x28U,0x02U,0x38U,0x21U,0x02U,0x20U,0x01U, - 0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU, - 0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U, - 0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U, - 0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U, - 0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U, - 0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU, - 0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U, - 0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U, - 0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x3CU,0x21U,0x02U, - 0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U, - 0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U, - 0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU, - 0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U, - 0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U, - 0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU, - 0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU, - 0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U, - 0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x40U, - 0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U, - 0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U, - 0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U, - 0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU, - 0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U, - 0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U, - 0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U, - 0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U, - 0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U, - 0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U, - 0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U, - 0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U, - 0x02U,0x44U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU, - 0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U, - 0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U, - 0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U, - 0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U, - 0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U, - 0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U, - 0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU, - 0x0BU,0x22U,0x01U,0x41U,0xE1U,0xE3U,0x03U,0x3BU,0x00U,0x00U, - 0x20U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x22U,0x02U, - 0x6BU,0x41U,0x02U,0x6AU,0x21U,0x01U,0x20U,0x00U,0x20U,0x02U, - 0x20U,0x01U,0x10U,0x0FU,0x22U,0x09U,0x3CU,0x00U,0xA1U,0x01U, - 0x20U,0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,0x99U,0x01U,0x20U, - 0x00U,0x20U,0x09U,0x42U,0x08U,0x88U,0x3CU,0x00U,0xA0U,0x01U, - 0x20U,0x00U,0x20U,0x09U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x9FU, - 0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x18U,0x88U,0x3CU,0x00U, - 0x9EU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x20U,0x88U,0x3CU, - 0x00U,0x9DU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x28U,0x88U, - 0x3CU,0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x30U, - 0x88U,0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U, - 0x38U,0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U,0xC0U,0x00U,0x72U, - 0x3AU,0x00U,0x9AU,0x01U,0x41U,0xD9U,0x16U,0x41U,0x0BU,0x20U, - 0x00U,0x41U,0x20U,0x20U,0x02U,0x20U,0x01U,0x10U,0x10U,0x22U, - 0x0AU,0x10U,0x0AU,0x1AU,0x20U,0x01U,0xADU,0x20U,0x0AU,0x52U, - 0x04U,0x40U,0x41U,0xE5U,0x16U,0x41U,0x2FU,0x42U,0x8EU,0x04U, - 0x10U,0x09U,0x1AU,0x0BU,0x41U,0x94U,0x17U,0x41U,0x1BU,0x42U, - 0x90U,0x04U,0x10U,0x03U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x20U, - 0x6AU,0x41U,0x0CU,0x72U,0x41U,0x14U,0x20U,0x04U,0x41U,0x01U, - 0x10U,0x07U,0x42U,0x14U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U, - 0x00U,0x41U,0xD6U,0x00U,0x3AU,0x00U,0x20U,0x41U,0x01U,0x21U, - 0x01U,0x03U,0x40U,0x41U,0xB1U,0x84U,0x80U,0x80U,0x78U,0x41U, - 0x21U,0x10U,0x00U,0x1AU,0x20U,0x01U,0x41U,0x20U,0x46U,0x0DU, - 0x01U,0x20U,0x00U,0x41U,0xD2U,0x00U,0x41U,0xC8U,0x00U,0x41U, - 0xD3U,0x00U,0x20U,0x01U,0x41U,0x0CU,0x49U,0x22U,0x02U,0x1BU, - 0x20U,0x01U,0x41U,0x02U,0x49U,0x22U,0x03U,0x1BU,0x3AU,0x00U, - 0x21U,0x20U,0x00U,0x41U,0x00U,0x41U,0xFEU,0x01U,0x41U,0xF4U, - 0x01U,0x20U,0x02U,0x1BU,0x20U,0x03U,0x1BU,0x20U,0x01U,0x6AU, - 0x3AU,0x00U,0x22U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U, - 0x20U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x10U,0x07U, - 0x42U,0x20U,0x51U,0x04U,0x40U,0x20U,0x00U,0x41U,0xC3U,0x00U, - 0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U, - 0x50U,0x20U,0x00U,0x20U,0x00U,0x2FU,0x00U,0x21U,0x3BU,0x00U, - 0x81U,0x01U,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x01U, - 0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x20U,0x10U,0x07U, - 0x42U,0x01U,0x51U,0x04U,0x40U,0x20U,0x00U,0x2DU,0x00U,0x50U, - 0x22U,0x02U,0x41U,0x01U,0x4BU,0x04U,0x40U,0x20U,0x00U,0x20U, - 0x02U,0x41U,0x01U,0x6BU,0x3AU,0x00U,0x50U,0x20U,0x00U,0x41U, - 0xD0U,0x00U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U, - 0x6AU,0x41U,0x20U,0x10U,0x0BU,0x1AU,0x05U,0x41U,0x00U,0x41U, - 0x00U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x20U,0x10U, - 0x0BU,0x1AU,0x0BU,0x0BU,0x41U,0x00U,0x41U,0x00U,0x20U,0x00U, - 0x41U,0x20U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x1AU,0x0BU,0x20U, - 0x01U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU,0x00U,0x0BU,0x00U, - 0x0BU,0x05U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0xF8U,0x09U, - 0x42U,0x01U,0x7CU,0x37U,0x03U,0xF8U,0x09U,0x20U,0x00U,0x41U, - 0xF8U,0x09U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U, - 0x6AU,0x41U,0x20U,0x10U,0x0BU,0x1AU,0x0BU,0x20U,0x00U,0x41U, - 0xB0U,0x09U,0x6AU,0x22U,0x01U,0x41U,0x14U,0x20U,0x04U,0x41U, - 0x01U,0x10U,0x0BU,0x1AU,0x20U,0x04U,0x41U,0x01U,0x20U,0x01U, - 0x41U,0x20U,0x10U,0x0BU,0x1AU,0x41U,0xAFU,0x17U,0x41U,0x22U, - 0x42U,0xDDU,0x04U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0xD1U,0x17U, - 0x41U,0x22U,0x42U,0xE1U,0x04U,0x10U,0x09U,0x1AU,0x20U,0x00U, - 0x41U,0xC0U,0x0AU,0x6AU,0x24U,0x00U,0x20U,0x0AU,0x0BU,0x0BU, - 0x80U,0x10U,0x02U,0x00U,0x41U,0x80U,0x08U,0x0BU,0x14U,0xB5U, + 0x6AU,0x41U,0x7FU,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x20U, + 0x05U,0x1BU,0x36U,0x02U,0x00U,0x10U,0x0DU,0x21U,0x09U,0x20U, + 0x00U,0x41U,0x14U,0x10U,0x05U,0x1AU,0x20U,0x00U,0x41U,0x9EU, + 0x01U,0x6AU,0x42U,0x80U,0x80U,0x80U,0x80U,0xB0U,0x8EU,0xC0U, + 0xC0U,0x14U,0x37U,0x00U,0x00U,0x20U,0x00U,0x41U,0xE8U,0x80U, + 0x01U,0x3BU,0x00U,0x99U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x36U, + 0x3BU,0x00U,0x93U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x34U,0x3BU, + 0x00U,0x8DU,0x01U,0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x89U, + 0x01U,0x20U,0x00U,0x41U,0x24U,0x3AU,0x00U,0x88U,0x01U,0x20U, + 0x00U,0x42U,0x92U,0x80U,0xD8U,0x90U,0x82U,0x10U,0x37U,0x03U, + 0x80U,0x01U,0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x9BU,0x01U, + 0x20U,0x00U,0x20U,0x09U,0xA7U,0x22U,0x02U,0x41U,0x05U,0x6AU, + 0x22U,0x01U,0x3AU,0x00U,0x98U,0x01U,0x20U,0x00U,0x20U,0x01U, + 0x41U,0x08U,0x76U,0x3AU,0x00U,0x97U,0x01U,0x20U,0x00U,0x20U, + 0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U,0x96U,0x01U,0x20U,0x00U, + 0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU,0x00U,0x95U,0x01U,0x20U, + 0x00U,0x20U,0x02U,0x41U,0x01U,0x6AU,0x22U,0x01U,0x3AU,0x00U, + 0x92U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU, + 0x00U,0x91U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U, + 0x3AU,0x00U,0x90U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U, + 0x76U,0x3AU,0x00U,0x8FU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U, + 0x03U,0x00U,0x37U,0x03U,0xA6U,0x01U,0x20U,0x00U,0x20U,0x00U, + 0x29U,0x03U,0x08U,0x37U,0x03U,0xAEU,0x01U,0x20U,0x00U,0x20U, + 0x00U,0x28U,0x02U,0x10U,0x36U,0x02U,0xB6U,0x01U,0x20U,0x00U, + 0x41U,0xBAU,0x01U,0x6AU,0x22U,0x01U,0x41U,0xC6U,0x07U,0x10U, + 0x0EU,0xA7U,0x20U,0x01U,0x6AU,0x22U,0x01U,0x41U,0xFBU,0xDDU, + 0x03U,0x3BU,0x00U,0x00U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x21U, + 0x01U,0x20U,0x00U,0x28U,0x02U,0x20U,0x22U,0x02U,0x04U,0x40U, + 0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x00U,0x20U,0x01U,0x41U, + 0x04U,0x6AU,0x41U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x01U,0x41U, + 0x06U,0x6AU,0x21U,0x03U,0x20U,0x01U,0x41U,0x05U,0x6AU,0x21U, + 0x01U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U, + 0x41U,0x1FU,0x3AU,0x00U,0x00U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x00U,0x37U,0x03U,0x01U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x08U,0x37U,0x03U,0x09U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x10U,0x37U,0x03U,0x11U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x18U,0x37U,0x03U,0x19U,0x20U,0x03U,0x41U,0x20U,0x6AU, + 0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x00U,0x20U, + 0x03U,0x41U,0x01U,0x6AU,0x0BU,0x21U,0x01U,0x0BU,0x20U,0x01U, + 0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U, + 0x24U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U, + 0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU, + 0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U, + 0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU, + 0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U, + 0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U, + 0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U, + 0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U, + 0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U, + 0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U, + 0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU, + 0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U, + 0x28U,0x02U,0x28U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U, + 0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U, + 0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U, + 0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U, + 0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU, + 0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U, + 0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U, + 0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U, + 0x20U,0x00U,0x28U,0x02U,0x2CU,0x21U,0x02U,0x20U,0x01U,0x41U, + 0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U, + 0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U, + 0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU, + 0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U, + 0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U, + 0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U, + 0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU, + 0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x30U,0x21U,0x02U,0x20U, + 0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U, + 0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U, + 0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U, + 0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U, + 0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U, + 0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U, + 0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U, + 0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x34U,0x21U, + 0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U, + 0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U, + 0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U, + 0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U, + 0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U, + 0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U, + 0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U, + 0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U, + 0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U, + 0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU, + 0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U, + 0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U, + 0x38U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U, + 0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU, + 0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U, + 0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU, + 0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U, + 0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U, + 0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U, + 0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U, + 0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U, + 0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U, + 0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU, + 0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U, + 0x28U,0x02U,0x3CU,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U, + 0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U, + 0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U, + 0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U, + 0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U, + 0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU, + 0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U, + 0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U, + 0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U, + 0x20U,0x00U,0x28U,0x02U,0x40U,0x21U,0x02U,0x20U,0x01U,0x41U, + 0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U, + 0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U, + 0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU, + 0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U, + 0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U, + 0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U, + 0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U, + 0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU, + 0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x44U,0x21U,0x02U,0x20U, + 0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U, + 0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U, + 0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U, + 0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x08U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x10U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x18U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x20U,0x20U, + 0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U, + 0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U, + 0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U, + 0xE3U,0x03U,0x3BU,0x00U,0x00U,0x20U,0x01U,0x20U,0x00U,0x41U, + 0x80U,0x01U,0x6AU,0x22U,0x02U,0x6BU,0x41U,0x02U,0x6AU,0x21U, + 0x01U,0x20U,0x00U,0x20U,0x02U,0x20U,0x01U,0x10U,0x0FU,0x22U, + 0x09U,0x3CU,0x00U,0xA1U,0x01U,0x20U,0x00U,0x41U,0xE8U,0x00U, + 0x3AU,0x00U,0x99U,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x08U, + 0x88U,0x3CU,0x00U,0xA0U,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U, + 0x10U,0x88U,0x3CU,0x00U,0x9FU,0x01U,0x20U,0x00U,0x20U,0x09U, + 0x42U,0x18U,0x88U,0x3CU,0x00U,0x9EU,0x01U,0x20U,0x00U,0x20U, + 0x09U,0x42U,0x20U,0x88U,0x3CU,0x00U,0x9DU,0x01U,0x20U,0x00U, + 0x20U,0x09U,0x42U,0x28U,0x88U,0x3CU,0x00U,0x9CU,0x01U,0x20U, + 0x00U,0x20U,0x09U,0x42U,0x30U,0x88U,0x3CU,0x00U,0x9BU,0x01U, + 0x20U,0x00U,0x20U,0x09U,0x42U,0x38U,0x88U,0xA7U,0x41U,0x3FU, + 0x71U,0x41U,0xC0U,0x00U,0x72U,0x3AU,0x00U,0x9AU,0x01U,0x41U, + 0xE5U,0x16U,0x41U,0x0BU,0x20U,0x00U,0x41U,0x20U,0x20U,0x02U, + 0x20U,0x01U,0x10U,0x10U,0x22U,0x09U,0x10U,0x0AU,0x1AU,0x20U, + 0x09U,0x20U,0x01U,0xADU,0x52U,0x04U,0x40U,0x41U,0xF1U,0x16U, + 0x41U,0x2FU,0x42U,0x9AU,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x41U, + 0xA0U,0x17U,0x41U,0x1BU,0x42U,0x9CU,0x04U,0x10U,0x03U,0x1AU, + 0x0BU,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x0CU,0x72U, + 0x41U,0x14U,0x20U,0x04U,0x41U,0x01U,0x10U,0x07U,0x22U,0x09U, + 0x42U,0x14U,0x52U,0x20U,0x05U,0x72U,0x04U,0x40U,0x02U,0x40U, + 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x42U,0x7FU,0x42U,0x01U,0x20U, + 0x09U,0x42U,0x14U,0x51U,0x1BU,0x20U,0x0AU,0x7CU,0x22U,0x0AU, + 0x10U,0x0AU,0x1AU,0x20U,0x0AU,0x42U,0x01U,0x57U,0x04U,0x40U, + 0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xB5U,0x04U,0x10U,0x09U, + 0x1AU,0x0BU,0x20U,0x00U,0x20U,0x0AU,0x3CU,0x00U,0x20U,0x20U, + 0x00U,0x41U,0x20U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U, + 0x02U,0x10U,0x0BU,0x42U,0x01U,0x51U,0x0DU,0x00U,0x41U,0xF9U, + 0x09U,0x41U,0x1AU,0x42U,0xB8U,0x04U,0x10U,0x09U,0x1AU,0x0BU, + 0x05U,0x41U,0xBBU,0x17U,0x41U,0x25U,0x41U,0x00U,0x41U,0x00U, + 0x41U,0x00U,0x10U,0x06U,0x1AU,0x0BU,0x20U,0x09U,0x42U,0x14U, + 0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xD6U,0x00U, + 0x3AU,0x00U,0x80U,0x01U,0x41U,0x01U,0x21U,0x01U,0x03U,0x40U, + 0x41U,0xC0U,0x84U,0x80U,0x80U,0x78U,0x41U,0x21U,0x10U,0x00U, + 0x1AU,0x20U,0x01U,0x41U,0x20U,0x46U,0x0DU,0x01U,0x20U,0x00U, + 0x41U,0xD2U,0x00U,0x41U,0xC8U,0x00U,0x41U,0xD3U,0x00U,0x20U, + 0x01U,0x41U,0x0CU,0x49U,0x22U,0x02U,0x1BU,0x20U,0x01U,0x41U, + 0x02U,0x49U,0x22U,0x03U,0x1BU,0x3AU,0x00U,0x81U,0x01U,0x20U, + 0x00U,0x41U,0x00U,0x41U,0xFEU,0x01U,0x41U,0xF4U,0x01U,0x20U, + 0x02U,0x1BU,0x20U,0x03U,0x1BU,0x20U,0x01U,0x6AU,0x3AU,0x00U, + 0x82U,0x01U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x20U, + 0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x42U, + 0x20U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xC3U, + 0x00U,0x3AU,0x00U,0x20U,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U, + 0x50U,0x20U,0x00U,0x20U,0x00U,0x2FU,0x00U,0x81U,0x01U,0x3BU, + 0x00U,0x21U,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x01U, + 0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x42U, + 0x01U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x2DU,0x00U, + 0x50U,0x22U,0x02U,0x41U,0x01U,0x4BU,0x04U,0x40U,0x20U,0x00U, + 0x20U,0x02U,0x41U,0x01U,0x6BU,0x3AU,0x00U,0x50U,0x20U,0x00U, + 0x41U,0xD0U,0x00U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U,0x20U, + 0x6AU,0x41U,0x20U,0x10U,0x0BU,0x42U,0x01U,0x51U,0x0DU,0x01U, + 0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xD8U,0x04U,0x10U,0x09U, + 0x1AU,0x05U,0x41U,0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0x20U, + 0x6AU,0x41U,0x20U,0x10U,0x0BU,0x50U,0x0DU,0x01U,0x41U,0xF9U, + 0x09U,0x41U,0x1AU,0x42U,0xD3U,0x04U,0x10U,0x09U,0x1AU,0x0BU, + 0x0BU,0x0BU,0x41U,0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0x80U, + 0x01U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x50U,0x0DU,0x00U,0x41U, + 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xDDU,0x04U,0x10U,0x09U,0x1AU, + 0x0BU,0x0BU,0x20U,0x01U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU, + 0x00U,0x0BU,0x00U,0x0BU,0x0BU,0x20U,0x05U,0x45U,0x04U,0x40U, + 0x02U,0x40U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,0x14U, + 0x20U,0x04U,0x41U,0x01U,0x10U,0x0BU,0x42U,0x14U,0x52U,0x04U, + 0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xE6U,0x04U,0x10U, + 0x09U,0x1AU,0x0BU,0x20U,0x04U,0x41U,0x01U,0x20U,0x00U,0x41U, + 0xB0U,0x09U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x42U,0x14U,0x51U, + 0x0DU,0x00U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xE9U,0x04U, + 0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0xE0U,0x17U,0x41U,0x22U, + 0x42U,0xECU,0x04U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0x82U,0x18U, + 0x41U,0x22U,0x42U,0xF0U,0x04U,0x10U,0x09U,0x1AU,0x20U,0x00U, + 0x41U,0xB0U,0x0AU,0x6AU,0x24U,0x00U,0x20U,0x0AU,0x0BU,0x0BU, + 0xB1U,0x10U,0x02U,0x00U,0x41U,0x80U,0x08U,0x0BU,0x14U,0xB5U, 0xF7U,0x62U,0x79U,0x8AU,0x53U,0xD5U,0x43U,0xA0U,0x14U,0xCAU, 0xF8U,0xB2U,0x97U,0xCFU,0xF8U,0xF2U,0xF9U,0x37U,0xE8U,0x00U, - 0x41U,0x94U,0x08U,0x0BU,0xDEU,0x0FU,0x47U,0x6FU,0x76U,0x65U, + 0x41U,0x94U,0x08U,0x0BU,0x8FU,0x10U,0x47U,0x6FU,0x76U,0x65U, 0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x50U,0x61U, 0x73U,0x73U,0x69U,0x6EU,0x67U,0x20U,0x6EU,0x6FU,0x6EU,0x2DU, 0x49U,0x6EU,0x76U,0x6FU,0x6BU,0x65U,0x20U,0x74U,0x78U,0x6EU, @@ -678,78 +707,83 @@ static const std::vector GovernanceHook = 0x6FU,0x70U,0x69U,0x63U,0x5FU,0x64U,0x61U,0x74U,0x61U,0x5FU, 0x7AU,0x65U,0x72U,0x6FU,0x00U,0x76U,0x6FU,0x74U,0x65U,0x73U, 0x00U,0x74U,0x6FU,0x70U,0x69U,0x63U,0x00U,0x47U,0x6FU,0x76U, - 0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x56U, - 0x6FU,0x74U,0x65U,0x20U,0x66U,0x6FU,0x72U,0x20U,0x4CU,0x32U, - 0x20U,0x74U,0x6FU,0x70U,0x69U,0x63U,0x20U,0x72U,0x65U,0x63U, - 0x6FU,0x72U,0x64U,0x65U,0x64U,0x2EU,0x20U,0x4EU,0x6FU,0x74U, - 0x20U,0x79U,0x65U,0x74U,0x20U,0x65U,0x6EU,0x6FU,0x75U,0x67U, - 0x68U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x73U,0x20U,0x74U,0x6FU, - 0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x2EU,0x00U,0x47U, - 0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU, - 0x20U,0x4DU,0x61U,0x6AU,0x6FU,0x72U,0x69U,0x74U,0x79U,0x20U, - 0x6CU,0x6FU,0x73U,0x74U,0x2CU,0x20U,0x75U,0x6EU,0x64U,0x6FU, - 0x69U,0x6EU,0x67U,0x20U,0x4CU,0x31U,0x20U,0x76U,0x6FU,0x74U, - 0x65U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U, - 0x6EU,0x63U,0x65U,0x3AU,0x20U,0x56U,0x6FU,0x74U,0x65U,0x20U, - 0x66U,0x6FU,0x72U,0x20U,0x4CU,0x31U,0x20U,0x74U,0x6FU,0x70U, - 0x69U,0x63U,0x20U,0x72U,0x65U,0x63U,0x6FU,0x72U,0x64U,0x65U, - 0x64U,0x2EU,0x20U,0x4EU,0x6FU,0x74U,0x20U,0x79U,0x65U,0x74U, - 0x20U,0x65U,0x6EU,0x6FU,0x75U,0x67U,0x68U,0x20U,0x76U,0x6FU, - 0x74U,0x65U,0x73U,0x20U,0x74U,0x6FU,0x20U,0x61U,0x63U,0x74U, - 0x69U,0x6FU,0x6EU,0x2EU,0x00U,0x22U,0x41U,0x63U,0x74U,0x69U, - 0x6FU,0x6EU,0x69U,0x6EU,0x67U,0x20U,0x76U,0x6FU,0x74U,0x65U, - 0x73U,0x22U,0x00U,0x41U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x69U, - 0x6EU,0x67U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x73U,0x00U,0x47U, - 0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU, - 0x20U,0x45U,0x6DU,0x69U,0x74U,0x74U,0x69U,0x6EU,0x67U,0x20U, - 0x69U,0x6EU,0x76U,0x6FU,0x6BU,0x65U,0x20U,0x74U,0x6FU,0x20U, - 0x4CU,0x31U,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U, - 0x6EU,0x63U,0x65U,0x3AU,0x20U,0x45U,0x6DU,0x69U,0x74U,0x20U, - 0x72U,0x65U,0x73U,0x75U,0x6CU,0x74U,0x00U,0x47U,0x6FU,0x76U, - 0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x53U, - 0x75U,0x63U,0x63U,0x65U,0x73U,0x73U,0x66U,0x75U,0x6CU,0x6CU, - 0x79U,0x20U,0x65U,0x6DU,0x69U,0x74U,0x74U,0x65U,0x64U,0x20U, + 0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x4CU, + 0x31U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x20U,0x72U,0x65U,0x63U, + 0x6FU,0x72U,0x64U,0x2EU,0x20U,0x4EU,0x6FU,0x74U,0x20U,0x79U, + 0x65U,0x74U,0x20U,0x65U,0x6EU,0x6FU,0x75U,0x67U,0x68U,0x20U, + 0x76U,0x6FU,0x74U,0x65U,0x73U,0x20U,0x74U,0x6FU,0x20U,0x61U, + 0x63U,0x74U,0x69U,0x6FU,0x6EU,0x2EU,0x00U,0x47U,0x6FU,0x76U, + 0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x4CU, + 0x32U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x20U,0x72U,0x65U,0x63U, + 0x6FU,0x72U,0x64U,0x65U,0x64U,0x2EU,0x20U,0x4DU,0x61U,0x6AU, + 0x6FU,0x72U,0x69U,0x74U,0x79U,0x20U,0x6CU,0x6FU,0x73U,0x74U, + 0x2CU,0x20U,0x75U,0x6EU,0x64U,0x6FU,0x69U,0x6EU,0x67U,0x20U, 0x4CU,0x31U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x2EU,0x00U,0x47U, 0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU, - 0x20U,0x4CU,0x31U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x20U,0x65U, - 0x6DU,0x69U,0x73U,0x73U,0x69U,0x6FU,0x6EU,0x20U,0x66U,0x61U, - 0x69U,0x6CU,0x65U,0x64U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U, - 0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x52U,0x65U, - 0x77U,0x61U,0x72U,0x64U,0x20U,0x72U,0x61U,0x74U,0x65U,0x20U, - 0x63U,0x68U,0x61U,0x6EU,0x67U,0x65U,0x20U,0x61U,0x63U,0x74U, - 0x69U,0x6FU,0x6EU,0x65U,0x64U,0x21U,0x00U,0x47U,0x6FU,0x76U, - 0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x52U, - 0x65U,0x77U,0x61U,0x72U,0x64U,0x20U,0x64U,0x65U,0x6CU,0x61U, - 0x79U,0x20U,0x63U,0x68U,0x61U,0x6EU,0x67U,0x65U,0x20U,0x61U, + 0x20U,0x4CU,0x32U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x20U,0x72U, + 0x65U,0x63U,0x6FU,0x72U,0x64U,0x65U,0x64U,0x2EU,0x20U,0x4EU, + 0x6FU,0x74U,0x20U,0x79U,0x65U,0x74U,0x20U,0x65U,0x6EU,0x6FU, + 0x75U,0x67U,0x68U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x73U,0x20U, + 0x74U,0x6FU,0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x20U, + 0x4CU,0x31U,0x20U,0x76U,0x6FU,0x74U,0x65U,0x2EU,0x2EU,0x00U, + 0x22U,0x41U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x69U,0x6EU,0x67U, + 0x20U,0x76U,0x6FU,0x74U,0x65U,0x73U,0x22U,0x00U,0x41U,0x63U, + 0x74U,0x69U,0x6FU,0x6EU,0x69U,0x6EU,0x67U,0x20U,0x76U,0x6FU, + 0x74U,0x65U,0x73U,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU, + 0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x45U,0x6DU,0x69U,0x74U, + 0x74U,0x69U,0x6EU,0x67U,0x20U,0x69U,0x6EU,0x76U,0x6FU,0x6BU, + 0x65U,0x20U,0x74U,0x6FU,0x20U,0x4CU,0x31U,0x00U,0x47U,0x6FU, + 0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U, + 0x45U,0x6DU,0x69U,0x74U,0x20U,0x72U,0x65U,0x73U,0x75U,0x6CU, + 0x74U,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU, + 0x63U,0x65U,0x3AU,0x20U,0x53U,0x75U,0x63U,0x63U,0x65U,0x73U, + 0x73U,0x66U,0x75U,0x6CU,0x6CU,0x79U,0x20U,0x65U,0x6DU,0x69U, + 0x74U,0x74U,0x65U,0x64U,0x20U,0x4CU,0x31U,0x20U,0x76U,0x6FU, + 0x74U,0x65U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU, + 0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x4CU,0x31U,0x20U,0x76U, + 0x6FU,0x74U,0x65U,0x20U,0x65U,0x6DU,0x69U,0x73U,0x73U,0x69U, + 0x6FU,0x6EU,0x20U,0x66U,0x61U,0x69U,0x6CU,0x65U,0x64U,0x2EU, + 0x00U,0x72U,0x65U,0x73U,0x75U,0x6CU,0x74U,0x00U,0x47U,0x6FU, + 0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U, + 0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x20U,0x72U,0x61U,0x74U, + 0x65U,0x20U,0x63U,0x68U,0x61U,0x6EU,0x67U,0x65U,0x20U,0x61U, 0x63U,0x74U,0x69U,0x6FU,0x6EU,0x65U,0x64U,0x21U,0x00U,0x47U, - 0x6FU,0x76U,0x65U,0x72U,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U, - 0x54U,0x61U,0x72U,0x67U,0x65U,0x74U,0x20U,0x68U,0x6FU,0x6FU, - 0x6BU,0x20U,0x69U,0x73U,0x20U,0x61U,0x6CU,0x72U,0x65U,0x61U, - 0x64U,0x79U,0x20U,0x74U,0x68U,0x65U,0x20U,0x73U,0x61U,0x6DU, - 0x65U,0x20U,0x61U,0x73U,0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU, - 0x6EU,0x65U,0x64U,0x20U,0x68U,0x6FU,0x6FU,0x6BU,0x2EU,0x00U, - 0x47U,0x6FU,0x76U,0x65U,0x72U,0x61U,0x6EU,0x63U,0x65U,0x3AU, - 0x20U,0x48U,0x6FU,0x6FU,0x6BU,0x20U,0x48U,0x61U,0x73U,0x68U, - 0x20U,0x64U,0x6FU,0x65U,0x73U,0x6EU,0x27U,0x74U,0x20U,0x65U, - 0x78U,0x69U,0x73U,0x74U,0x20U,0x6FU,0x6EU,0x20U,0x6CU,0x65U, - 0x64U,0x67U,0x65U,0x72U,0x20U,0x77U,0x68U,0x69U,0x6CU,0x65U, - 0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x69U,0x6EU,0x67U, - 0x20U,0x68U,0x6FU,0x6FU,0x6BU,0x2EU,0x00U,0x65U,0x6DU,0x69U, - 0x74U,0x5FU,0x72U,0x65U,0x73U,0x75U,0x6CU,0x74U,0x00U,0x47U, 0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU, - 0x20U,0x45U,0x6DU,0x69U,0x74U,0x20U,0x66U,0x61U,0x69U,0x6CU, - 0x65U,0x64U,0x20U,0x64U,0x75U,0x72U,0x69U,0x6EU,0x67U,0x20U, - 0x68U,0x6FU,0x6FU,0x6BU,0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU, - 0x6EU,0x69U,0x6EU,0x67U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U, - 0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x48U,0x6FU, - 0x6FU,0x6BU,0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x65U, - 0x64U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U, - 0x6EU,0x63U,0x65U,0x3AU,0x20U,0x41U,0x63U,0x74U,0x69U,0x6FU, - 0x6EU,0x20U,0x6DU,0x65U,0x6DU,0x62U,0x65U,0x72U,0x20U,0x63U, - 0x68U,0x61U,0x6EU,0x67U,0x65U,0x2EU,0x00U,0x47U,0x6FU,0x76U, - 0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x49U, - 0x6EU,0x74U,0x65U,0x72U,0x6EU,0x61U,0x6CU,0x20U,0x6CU,0x6FU, - 0x67U,0x69U,0x63U,0x20U,0x65U,0x72U,0x72U,0x6FU,0x72U,0x2EU + 0x20U,0x52U,0x65U,0x77U,0x61U,0x72U,0x64U,0x20U,0x64U,0x65U, + 0x6CU,0x61U,0x79U,0x20U,0x63U,0x68U,0x61U,0x6EU,0x67U,0x65U, + 0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x65U,0x64U,0x21U, + 0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x61U,0x6EU,0x63U,0x65U, + 0x3AU,0x20U,0x54U,0x61U,0x72U,0x67U,0x65U,0x74U,0x20U,0x68U, + 0x6FU,0x6FU,0x6BU,0x20U,0x69U,0x73U,0x20U,0x61U,0x6CU,0x72U, + 0x65U,0x61U,0x64U,0x79U,0x20U,0x74U,0x68U,0x65U,0x20U,0x73U, + 0x61U,0x6DU,0x65U,0x20U,0x61U,0x73U,0x20U,0x61U,0x63U,0x74U, + 0x69U,0x6FU,0x6EU,0x65U,0x64U,0x20U,0x68U,0x6FU,0x6FU,0x6BU, + 0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x61U,0x6EU,0x63U, + 0x65U,0x3AU,0x20U,0x48U,0x6FU,0x6FU,0x6BU,0x20U,0x48U,0x61U, + 0x73U,0x68U,0x20U,0x64U,0x6FU,0x65U,0x73U,0x6EU,0x27U,0x74U, + 0x20U,0x65U,0x78U,0x69U,0x73U,0x74U,0x20U,0x6FU,0x6EU,0x20U, + 0x6CU,0x65U,0x64U,0x67U,0x65U,0x72U,0x20U,0x77U,0x68U,0x69U, + 0x6CU,0x65U,0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x69U, + 0x6EU,0x67U,0x20U,0x68U,0x6FU,0x6FU,0x6BU,0x2EU,0x00U,0x65U, + 0x6DU,0x69U,0x74U,0x5FU,0x72U,0x65U,0x73U,0x75U,0x6CU,0x74U, + 0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U, + 0x65U,0x3AU,0x20U,0x45U,0x6DU,0x69U,0x74U,0x20U,0x66U,0x61U, + 0x69U,0x6CU,0x65U,0x64U,0x20U,0x64U,0x75U,0x72U,0x69U,0x6EU, + 0x67U,0x20U,0x68U,0x6FU,0x6FU,0x6BU,0x20U,0x61U,0x63U,0x74U, + 0x69U,0x6FU,0x6EU,0x69U,0x6EU,0x67U,0x2EU,0x00U,0x47U,0x6FU, + 0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U, + 0x48U,0x6FU,0x6FU,0x6BU,0x20U,0x61U,0x63U,0x74U,0x69U,0x6FU, + 0x6EU,0x65U,0x64U,0x2EU,0x00U,0x70U,0x72U,0x65U,0x76U,0x69U, + 0x6FU,0x75U,0x73U,0x5FU,0x70U,0x72U,0x65U,0x73U,0x65U,0x6EU, + 0x74U,0x20U,0x26U,0x26U,0x20U,0x21U,0x74U,0x6FU,0x70U,0x69U, + 0x63U,0x5FU,0x64U,0x61U,0x74U,0x61U,0x5FU,0x7AU,0x65U,0x72U, + 0x6FU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU, + 0x63U,0x65U,0x3AU,0x20U,0x41U,0x63U,0x74U,0x69U,0x6FU,0x6EU, + 0x20U,0x6DU,0x65U,0x6DU,0x62U,0x65U,0x72U,0x20U,0x63U,0x68U, + 0x61U,0x6EU,0x67U,0x65U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U, + 0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x49U,0x6EU, + 0x74U,0x65U,0x72U,0x6EU,0x61U,0x6CU,0x20U,0x6CU,0x6FU,0x67U, + 0x69U,0x63U,0x20U,0x65U,0x72U,0x72U,0x6FU,0x72U,0x2EU }; static const std::vector RewardHook = diff --git a/src/ripple/protocol/impl/STTx.cpp b/src/ripple/protocol/impl/STTx.cpp index 2bee74c05..eec02240d 100644 --- a/src/ripple/protocol/impl/STTx.cpp +++ b/src/ripple/protocol/impl/STTx.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -425,6 +426,46 @@ STTx::checkMultiSign( static bool isMemoOkay(STObject const& st, std::string& reason) { + + auto const maxKey = hook::maxHookParameterKeySize(); + auto const maxVal = hook::maxHookParameterValueSize(); + + // piggyback otxn hookparameter checking here + if (st.isFieldPresent(sfHookParameters)) + { + auto const& params = st.getFieldArray(sfHookParameters); + if (params.size() > 16) + { + reason = "hookParameter count must be less than 17."; + return false; + } + + for (auto const& param : params) + { + auto paramObj = dynamic_cast(¶m); + + if (!paramObj || (paramObj->getFName() != sfHookParameter)) + { + reason = "A HookParameters array may contain only HookParameter objects."; + return false; + } + + if (!paramObj->isFieldPresent(sfHookParameterName) || + paramObj->getFieldVL(sfHookParameterName).size() > maxKey) + { + reason = "HookParameterName cannot exceed 32 bytes."; + return false; + } + + if (!paramObj->isFieldPresent(sfHookParameterValue) || + paramObj->getFieldVL(sfHookParameterValue).size() > maxVal) + { + reason = "HookParameterValue cannot exceed 128 bytes."; + return false; + } + } + } + if (!st.isFieldPresent(sfMemos)) return true; diff --git a/src/test/app/XahauGenesis_test.cpp b/src/test/app/XahauGenesis_test.cpp index e79af8e1c..104255330 100644 --- a/src/test/app/XahauGenesis_test.cpp +++ b/src/test/app/XahauGenesis_test.cpp @@ -427,49 +427,198 @@ struct XahauGenesis_test : public beast::unit_test::suite }; - auto const kl = - keylet::hookState(env.master.id(), makeStateKey('V', 'R', 'R', 1, alice.id()), - uint256("0000000000000000000000000000000000000000000000000000000000000000")); - auto entry = env.le(kl); - BEAST_EXPECT(!entry); - - // alice votes for a different reward rate - - std::vector vote_data{0x00U,0x81U,0xC6U,0xA4U,0x7EU,0x8DU,0x43U,0x54U}; - env(vote(alice, 'R', 'R', vote_data), fee(XRP(1))); - env.close(); - - //VRR...000...alice.id - - //hookState(AccountID const& id, uint256 const& key, uint256 const& ns) noexcept; - entry = env.le(kl); - - BEAST_REQUIRE(!!entry); - - auto data = entry->getFieldVL(sfHookStateData); - BEAST_EXPECT(data.size() == 8); - - BEAST_EXPECT(data == vote_data); - - auto doL1Vote = [&](Account const& acc, char topic1, char topic2, std::vector const& data) -> void + auto doL1Vote = [&](Account const& acc, char topic1, char topic2, + std::vector const& vote_data, + std::vector const& old_data, + bool actioned = true, bool const shouldFail = false) { - env(vote(acc, 'R', 'R', vote_data), fee(XRP(1))); - env.close(); - auto entry = env.le(keylet::hookState(env.master.id(), makeStateKey('V', 'R', 'R', 1, acc.id()), - uint256("0000000000000000000000000000000000000000000000000000000000000000"))); - BEAST_REQUIRE(!!entry); - auto lgr_data = entry->getFieldVL(sfHookStateData); - BEAST_EXPECT(lgr_data.size() == vote_data.size()); - BEAST_EXPECT(lgr_data == vote_data); - }; - // bob votes the same way - doL1Vote(bob, 'R', 'R', vote_data); - - // ... etc until 100% - doL1Vote(carol, 'R', 'R', vote_data); - doL1Vote(david, 'R', 'R', vote_data); - doL1Vote(edward, 'R', 'R', vote_data); + if (shouldFail) + actioned = false; + + uint8_t const key[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, topic1, topic2}; + // check actioning prior to vote + { + auto entry = env.le(keylet::hookState(env.master.id(), uint256::fromVoid(key), beast::zero)); + BEAST_EXPECT((old_data.empty() && !entry) || + (entry && entry->getFieldVL(sfHookStateData) == old_data)); + } + + // perform and check vote + { + env(vote(acc, topic1, topic2, vote_data), fee(XRP(1)), + shouldFail ? ter(tecHOOK_REJECTED) : ter(tesSUCCESS)); + env.close(); + auto entry = + env.le(keylet::hookState(env.master.id(), makeStateKey('V', topic1, topic2, 1, acc.id()), + beast::zero)); + if (!shouldFail) + { + BEAST_REQUIRE(!!entry); + auto lgr_data = entry->getFieldVL(sfHookStateData); + BEAST_EXPECT(lgr_data.size() == vote_data.size()); + BEAST_EXPECT(lgr_data == vote_data); + } + } + + // check actioning + { + // if the vote count isn't high enough it will be hte old value if it's high enough it will be the + // new value + auto entry = env.le(keylet::hookState(env.master.id(), uint256::fromVoid(key), beast::zero)); + + bool isZero = true; + for (auto& x: vote_data) + if (x != 0) + { + isZero = false; + break; + } + + + if (!actioned && old_data.empty()) + { + BEAST_EXPECT(!entry); + return; + } + + if (actioned) + { + if (isZero) + BEAST_EXPECT(!entry); + else + BEAST_EXPECT(!!entry && entry->getFieldVL(sfHookStateData) == vote_data); + } + else + { + std::cout << "old data: " << strHex(entry->getFieldVL(sfHookStateData)) << "\n"; + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == old_data); + } + } + }; + + + // 100% vote for a different reward rate + { + // this will be the new reward rate + std::vector vote_data {0x00U,0x81U,0xC6U,0xA4U,0x7EU,0x8DU,0x43U,0x54U}; + + // this is the default reward rate + std::vector const original_data {0x00U,0xE4U,0x61U,0xEEU,0x78U,0x90U,0x83U,0x54U}; + + doL1Vote(alice, 'R', 'R', vote_data, original_data, false); + doL1Vote(bob, 'R', 'R', vote_data, original_data, false); + doL1Vote(carol, 'R', 'R', vote_data, original_data, false); + doL1Vote(david, 'R', 'R', vote_data, original_data, false); + doL1Vote(edward, 'R', 'R', vote_data, original_data, true); + + // reverting a vote should not undo the action + doL1Vote(carol, 'R', 'R', original_data, vote_data, false); + + // submitting a null vote should delete the vote, and should not undo the action + std::vector const null_data {0,0,0,0,0,0,0,0}; + doL1Vote(david, 'R', 'R', null_data, vote_data, false); + } + + + uint8_t const member_count_key[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'M','C'}; + std::vector const null_acc_id {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + + // four of the 5 vote to remove alice + { + std::vector const null_acc_id {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + std::vector id; + id.reserve(20); + memcpy(id.data(), alice.id().data(), 20); + doL1Vote(bob, 'S', 0, null_acc_id, id, false); + doL1Vote(carol, 'S', 0, null_acc_id, id, false); + doL1Vote(david, 'S', 0, null_acc_id, id, false); + doL1Vote(edward, 'S', 0, null_acc_id, id, true); + } + + + // check the membercount is now 4 + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {0x04U}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } + + // continue to remove members (david) + { + std::vector id; + id.reserve(20); + memcpy(id.data(), david.id().data(), 20); + doL1Vote(bob, 'S', 3, null_acc_id, id, false); + doL1Vote(carol, 'S', 3, null_acc_id, id, false); + doL1Vote(edward, 'S', 3, null_acc_id, id, true); + } + + // check the membercount is now 3 + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {0x03U}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } + + // continue to remove members (carol) + { + std::vector id; + id.reserve(20); + memcpy(id.data(), carol.id().data(), 20); + doL1Vote(bob, 'S', 2, null_acc_id, id, false); + doL1Vote(edward, 'S', 2, null_acc_id, id, true); + } + + // check the membercount is now 2 + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {0x02U}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } + + // member count can't fall below 2 + // try to vote out edward using 2/2 votes + { + std::vector id; + id.reserve(20); + memcpy(id.data(), edward.id().data(), 20); + doL1Vote(bob, 'S', 4, null_acc_id, id, true); + doL1Vote(edward, 'S', 4, null_acc_id, id, false, true); + } + + // check the membercount is now 2 + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {0x02U}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } + + // try to remove bob using 1/2 votes + { + std::vector id; + id.reserve(20); + memcpy(id.data(), bob.id().data(), 20); + doL1Vote(bob, 'S', 1, null_acc_id, id, false, false); + } + + // that shoul fail + // check the membercount is now 2 + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {0x02U}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } }