more governance debugging

This commit is contained in:
Richard Holland
2023-09-05 20:19:26 +00:00
parent 571ad5c60d
commit 5e96402770
6 changed files with 618 additions and 477 deletions

View File

@@ -47,19 +47,19 @@ static const std::vector<uint8_t> 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,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,
0x01U,0x7FU,0x01U,0x41U,0xE0U,0x98U,0x04U,0x0BU,0x07U,0x08U,
0x01U,0x04U,0x68U,0x6FU,0x6FU,0x6BU,0x00U,0x16U,0x0AU,0x8BU,
0xAAU,0x00U,0x01U,0x87U,0xAAU,0x00U,0x03U,0x07U,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,0x90U,
0x0AU,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x04U,0x41U,0x14U,0x41U,
0x0AU,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x03U,0x41U,0x14U,0x41U,
0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU,0x20U,0x00U,0x41U,0xF0U,
0x09U,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x08U,0x41U,0x14U,0x10U,
0x09U,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x07U,0x41U,0x14U,0x10U,
0x05U,0x1AU,0x02U,0x40U,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,
0x22U,0x0AU,0x20U,0x00U,0x29U,0x03U,0x9CU,0x0AU,0x51U,0x04U,
0x22U,0x09U,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,
@@ -71,117 +71,119 @@ static const std::vector<uint8_t> GovernanceHook =
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,0xFCU,0x09U,0x21U,0x0AU,0x0BU,
0x0BU,0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x20U,0x0AU,0x51U,
0x0BU,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,0x21U,0x09U,0x0BU,
0x0BU,0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x20U,0x09U,0x51U,
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,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,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,
0x08U,0x29U,0x03U,0x00U,0x51U,0x04U,0x7FU,0x20U,0x00U,0x28U,
0x02U,0x8CU,0x0AU,0x41U,0x90U,0x08U,0x28U,0x02U,0x00U,0x46U,
0x04U,0x7FU,0x41U,0x81U,0x09U,0x41U,0x33U,0x41U,0x00U,0x41U,
0x00U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x41U,0x01U,0x05U,0x41U,
0x00U,0x0BU,0x05U,0x41U,0x00U,0x0BU,0x05U,0x41U,0x00U,0x0BU,
0x21U,0x02U,0x41U,0x00U,0x41U,0x00U,0x41U,0xB4U,0x09U,0x41U,
0x02U,0x10U,0x07U,0x22U,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,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,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x41U,
0xEDU,0x0DU,0x41U,0x01U,0x10U,0x0CU,0x21U,0x09U,0x20U,0x00U,
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,
0x0BU,0x41U,0xEFU,0x0DU,0x41U,0x3DU,0x42U,0xE6U,0x01U,0x10U,
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,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,
0x1AU,0x42U,0x9BU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x41U,0x93U,
0x0AU,0x41U,0x0CU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x22U,
0x04U,0xADU,0x42U,0xFFU,0x01U,0x83U,0x22U,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,
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,0x04U,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,0x09U,0x10U,0x0AU,
0x1AU,0x41U,0x00U,0x41U,0x00U,0x20U,0x03U,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,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x41U,0xEDU,0x0DU,
0x41U,0x01U,0x10U,0x0CU,0x21U,0x08U,0x20U,0x00U,0x2DU,0x00U,
0xEEU,0x09U,0x21U,0x03U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,
0xEFU,0x09U,0x22U,0x01U,0x3AU,0x00U,0xEDU,0x09U,0x02U,0x40U,
0x20U,0x08U,0x42U,0x02U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,
0x03U,0x41U,0xC8U,0x00U,0x6BU,0x22U,0x04U,0x41U,0x0BU,0x4BU,
0x0DU,0x00U,0x41U,0x01U,0x20U,0x04U,0x74U,0x41U,0x81U,0x18U,
0x71U,0x0DU,0x02U,0x0BU,0x0BU,0x41U,0xEFU,0x0DU,0x41U,0x3DU,
0x42U,0xE6U,0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U,
0xEDU,0x09U,0x21U,0x01U,0x0BU,0x02U,0x40U,0x20U,0x03U,0x41U,
0xD3U,0x00U,0x46U,0x04U,0x40U,0x20U,0x01U,0x41U,0x14U,0x4FU,
0x04U,0x40U,0x41U,0xACU,0x0EU,0x41U,0x30U,0x42U,0xEAU,0x01U,
0x10U,0x09U,0x1AU,0x41U,0x00U,0x21U,0x04U,0x41U,0x01U,0x21U,
0x05U,0x0CU,0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U,0xC8U,0x00U,
0x46U,0x04U,0x40U,0x20U,0x01U,0x41U,0x0BU,0x4FU,0x04U,0x40U,
0x41U,0xDCU,0x0EU,0x41U,0x2FU,0x42U,0xEDU,0x01U,0x10U,0x09U,
0x1AU,0x41U,0x01U,0x21U,0x05U,0x41U,0x01U,0x21U,0x04U,0x0CU,
0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U,0xC8U,0x00U,0x46U,0x21U,
0x04U,0x41U,0x01U,0x21U,0x05U,0x20U,0x03U,0x41U,0xD2U,0x00U,
0x47U,0x0DU,0x00U,0x41U,0x00U,0x21U,0x05U,0x20U,0x01U,0x41U,
0xC4U,0x00U,0x46U,0x20U,0x01U,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,
0xECU,0x09U,0x20U,0x02U,0x45U,0x04U,0x40U,0x02U,0x40U,0x20U,
0x00U,0x41U,0xECU,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,0xECU,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,0xECU,0x09U,0x21U,
0x01U,0x0BU,0x20U,0x00U,0x20U,0x01U,0x41U,0x30U,0x6BU,0x22U,
0x01U,0x3AU,0x00U,0xECU,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,0x04U,
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,0x08U,0x52U,0x04U,0x40U,0x41U,0x81U,0x11U,0x41U,
0xC3U,0x00U,0x42U,0x8FU,0x02U,0x10U,0x09U,0x1AU,0x0BU,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,0x92U,0x0AU,0x20U,0x00U,
0x20U,0x00U,0x2DU,0x00U,0xECU,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,
0x05U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU,0x41U,0x20U,0x10U,
0x07U,0x22U,0x0AU,0x20U,0x08U,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,
@@ -189,153 +191,155 @@ static const std::vector<uint8_t> GovernanceHook =
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,
0x20U,0x06U,0x20U,0x05U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU,
0x41U,0x20U,0x10U,0x0BU,0x20U,0x08U,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,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,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,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,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,
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,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,
0x0BU,0x41U,0x00U,0x21U,0x01U,0x02U,0x40U,0x20U,0x0AU,0x42U,
0x01U,0x59U,0x04U,0x40U,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,0x92U,
0x09U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0xECU,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,0x08U,0x20U,0x00U,0x41U,
0xC3U,0x00U,0x3AU,0x00U,0xB0U,0x09U,0x20U,0x00U,0x20U,0x00U,
0x2DU,0x00U,0xECU,0x09U,0x3AU,0x00U,0xB3U,0x09U,0x20U,0x00U,
0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,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,0x04U,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,0x04U,0x41U,0x20U,0x10U,0x0BU,0x42U,0x00U,0x57U,0x04U,
0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xCAU,0x02U,0x10U,
0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U,0x08U,0x37U,0x03U,0xB0U,
0x09U,0x41U,0x00U,0x21U,0x04U,0x02U,0x40U,0x20U,0x08U,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,
0x04U,0x0BU,0x0BU,0x41U,0x83U,0x12U,0x41U,0x0FU,0x20U,0x04U,
0xADU,0x10U,0x0AU,0x1AU,0x41U,0x93U,0x12U,0x41U,0x05U,0x20U,
0x00U,0x31U,0x00U,0x8FU,0x09U,0x10U,0x0AU,0x1AU,0x41U,0x93U,
0x0AU,0x41U,0x0CU,0x20U,0x09U,0x10U,0x0AU,0x1AU,0x41U,0x99U,
0x12U,0x41U,0x06U,0x20U,0x00U,0x41U,0xEEU,0x09U,0x6AU,0x41U,
0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U,0x09U,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,0x08U,0x20U,0x00U,0x2DU,0x00U,0xECU,0x09U,
0x41U,0x01U,0x47U,0x21U,0x02U,0x20U,0x0CU,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,0x80U,0x80U,
0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x7FU,0x0BU,0x21U,0x0AU,
0x02U,0x40U,0x20U,0x02U,0x04U,0x40U,0x20U,0x00U,0x31U,0x00U,
0x8FU,0x09U,0x21U,0x0AU,0x20U,0x08U,0x42U,0x02U,0x20U,0x08U,
0x42U,0x02U,0x55U,0x1BU,0x22U,0x0BU,0x20U,0x01U,0xADU,0x57U,
0x04U,0x40U,0x02U,0x40U,0x20U,0x0AU,0x20U,0x0BU,0x59U,0x0DU,
0x00U,0x41U,0xDBU,0x12U,0x41U,0x3EU,0x41U,0x00U,0x41U,0x00U,
0x41U,0x00U,0x10U,0x06U,0x1AU,0x42U,0x01U,0x21U,0x08U,0x0CU,
0x03U,0x0BU,0x0BU,0x42U,0x00U,0x21U,0x08U,0x20U,0x0AU,0x20U,
0x0BU,0x59U,0x0DU,0x01U,0x41U,0x99U,0x13U,0x41U,0xC7U,0x00U,
0x42U,0xFCU,0x02U,0x10U,0x03U,0x1AU,0x05U,0x42U,0x00U,0x21U,
0x08U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x20U,0x0AU,0x42U,
0x02U,0x20U,0x0AU,0x42U,0x02U,0x55U,0x1BU,0x20U,0x09U,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,0xECU,0x09U,0x41U,0x02U,0x46U,0x04U,0x40U,0x10U,0x0DU,
0x21U,0x0AU,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,0x0AU,
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,
0x00U,0x2DU,0x00U,0xEDU,0x09U,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,0x08U,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,0x08U,0x3CU,
0x00U,0xA1U,0x01U,0x20U,0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,
0x99U,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x08U,0x88U,0x3CU,
0x00U,0xA0U,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x10U,0x88U,
0x3CU,0x00U,0x9FU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x18U,
0x88U,0x3CU,0x00U,0x9EU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,
0x20U,0x88U,0x3CU,0x00U,0x9DU,0x01U,0x20U,0x00U,0x20U,0x08U,
0x42U,0x28U,0x88U,0x3CU,0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,
0x08U,0x42U,0x30U,0x88U,0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,
0x20U,0x08U,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,
0x08U,0x10U,0x0AU,0x1AU,0x20U,0x08U,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,0x06U,0x20U,0x05U,0x20U,0x00U,
0x41U,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x10U,0x0BU,0x22U,0x08U,
0x10U,0x0AU,0x1AU,0x20U,0x08U,0x42U,0x00U,0x57U,0x04U,0x40U,
0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xDCU,0x03U,0x10U,0x09U,
0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,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,
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,0x00U,0x2DU,0x00U,
0xEDU,0x09U,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,
@@ -353,72 +357,48 @@ static const std::vector<uint8_t> GovernanceHook =
0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U,0x41U,0x22U,0x41U,0x09U,
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,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,
0x20U,0x00U,0x41U,0x20U,0x6AU,0x20U,0x00U,0x2DU,0x00U,0xEDU,
0x09U,0x41U,0x02U,0x74U,0x6AU,0x41U,0x7FU,0x20U,0x00U,0x41U,
0xB0U,0x09U,0x6AU,0x20U,0x04U,0x1BU,0x36U,0x02U,0x00U,0x10U,
0x0DU,0x21U,0x08U,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,0x08U,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,
@@ -430,7 +410,7 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,
@@ -442,7 +422,7 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,
@@ -455,7 +435,7 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,
@@ -467,7 +447,7 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,
@@ -479,7 +459,7 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,
@@ -491,7 +471,7 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,
@@ -503,81 +483,115 @@ static const std::vector<uint8_t> GovernanceHook =
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,
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,0x08U,0x3CU,0x00U,0xA1U,0x01U,0x20U,
0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,0x99U,0x01U,0x20U,0x00U,
0x20U,0x08U,0x42U,0x08U,0x88U,0x3CU,0x00U,0xA0U,0x01U,0x20U,
0x00U,0x20U,0x08U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x9FU,0x01U,
0x20U,0x00U,0x20U,0x08U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x9EU,
0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x20U,0x88U,0x3CU,0x00U,
0x9DU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x28U,0x88U,0x3CU,
0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x30U,0x88U,
0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x08U,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,0x08U,
0x10U,0x0AU,0x1AU,0x20U,0x08U,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,0x00U,0x41U,0xEDU,
0x09U,0x6AU,0x41U,0x01U,0x10U,0x07U,0x22U,0x0AU,0x42U,0x14U,
0x52U,0x22U,0x01U,0x20U,0x04U,0x72U,0x04U,0x40U,0x02U,0x40U,
0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x01U,0x04U,0x7EU,0x42U,
0x01U,0x05U,0x41U,0xE0U,0x17U,0x41U,0x12U,0x20U,0x00U,0x41U,
0x80U,0x01U,0x6AU,0x41U,0x20U,0x41U,0x01U,0x10U,0x06U,0x1AU,
0x42U,0x7FU,0x0BU,0x20U,0x09U,0x7CU,0x22U,0x09U,0x10U,0x0AU,
0x1AU,0x20U,0x09U,0x42U,0x01U,0x57U,0x04U,0x40U,0x41U,0xF9U,
0x09U,0x41U,0x1AU,0x42U,0xB9U,0x04U,0x10U,0x09U,0x1AU,0x0BU,
0x20U,0x00U,0x20U,0x09U,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,0xBCU,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x05U,0x41U,
0xBBU,0x17U,0x41U,0x25U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,
0x10U,0x06U,0x1AU,0x0BU,0x20U,0x0AU,0x42U,0x14U,0x51U,0x04U,
0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xD6U,0x00U,0x3AU,0x00U,
0x80U,0x01U,0x41U,0x01U,0x21U,0x01U,0x03U,0x40U,0x41U,0xC4U,
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,0xDCU,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,0xD7U,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,0xE1U,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x0BU,
0x20U,0x01U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU,0x00U,0x0BU,
0x00U,0x0BU,0x0BU,0x02U,0x40U,0x20U,0x04U,0x04U,0x40U,0x41U,
0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0xEDU,0x09U,0x6AU,0x41U,
0x01U,0x10U,0x0BU,0x50U,0x45U,0x04U,0x40U,0x41U,0xF9U,0x09U,
0x41U,0x1AU,0x42U,0xEAU,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x41U,
0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,
0x0CU,0x72U,0x41U,0x14U,0x10U,0x0BU,0x50U,0x0DU,0x01U,0x41U,
0xF9U,0x09U,0x41U,0x1AU,0x42U,0xEDU,0x04U,0x10U,0x09U,0x1AU,
0x05U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,0x14U,0x20U,
0x00U,0x41U,0xEDU,0x09U,0x6AU,0x41U,0x01U,0x10U,0x0BU,0x42U,
0x14U,0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,
0xF4U,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U,
0xEDU,0x09U,0x41U,0x01U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,
0x41U,0x0CU,0x72U,0x41U,0x14U,0x10U,0x0BU,0x42U,0x14U,0x51U,
0x0DU,0x01U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xF7U,0x04U,
0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0xF2U,0x17U,0x41U,0x22U,
0x42U,0xFAU,0x04U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0x94U,0x18U,
0x41U,0x22U,0x42U,0xFEU,0x04U,0x10U,0x09U,0x1AU,0x20U,0x00U,
0x41U,0xB0U,0x0AU,0x6AU,0x24U,0x00U,0x20U,0x09U,0x0BU,0x0BU,
0xC3U,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,0x8FU,0x10U,0x47U,0x6FU,0x76U,0x65U,
0x41U,0x94U,0x08U,0x0BU,0xA1U,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,
@@ -777,13 +791,15 @@ static const std::vector<uint8_t> GovernanceHook =
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
0x6FU,0x00U,0x50U,0x72U,0x65U,0x76U,0x69U,0x6FU,0x75U,0x73U,
0x20U,0x70U,0x72U,0x65U,0x73U,0x65U,0x6EU,0x74U,0x3AU,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<uint8_t> RewardHook =

View File

@@ -283,14 +283,14 @@ Change::preCompute()
inline
std::pair<
std::map<std::string, XRPAmount>,
std::map<std::vector<uint8_t>, std::vector<uint8_t>>>
std::vector<std::pair<std::string, XRPAmount>>,
std::vector<std::pair<std::vector<uint8_t>, std::vector<uint8_t>>>>
normalizeXahauGenesis(
std::map<std::string, XRPAmount> const& entries,
std::map<std::vector<uint8_t>, std::vector<uint8_t>> params,
std::vector<std::pair<std::string, XRPAmount>> const& entries,
std::vector<std::pair<std::vector<uint8_t>, std::vector<uint8_t>>> params,
beast::Journal const& j)
{
std::map<std::string, XRPAmount> amounts;
std::vector<std::pair<std::string, XRPAmount>> amounts;
uint8_t mc = 0;
for (auto const& [rn, x]: entries)
{
@@ -321,14 +321,14 @@ normalizeXahauGenesis(
std::string& idStr = parsed->first;
AccountID& id = parsed->second;
amounts.emplace(idStr, x);
amounts.emplace_back(idStr, x);
JLOG(j.warn())
<< "featureXahauGenesis: "
<< "initial validator: " << rn
<< " =>accid: " << idStr;
// initial member enumeration
params.emplace(
params.emplace_back(
std::vector<uint8_t>{'I', 'S', mc++},
std::vector<uint8_t>(id.data(), id.data() + 20));
continue;
@@ -339,7 +339,7 @@ normalizeXahauGenesis(
}
// initial member count
params.emplace(
params.emplace_back(
std::vector<uint8_t>{'I', 'M', 'C'},
std::vector<uint8_t>{mc});
@@ -365,9 +365,10 @@ Change::activateXahauGenesis()
std::tuple<
uint256, // hook on
std::vector<uint8_t>, // hook code
std::map<
std::vector<uint8_t>, // param name
std::vector<uint8_t>>>> // param value
std::vector<
std::pair<
std::vector<uint8_t>, // param name
std::vector<uint8_t>>>>> // param value
genesis_hooks =
{
{

View File

@@ -272,7 +272,14 @@ Transactor::calculateBaseFee(ReadView const& view, STTx const& tx)
// The computation has two parts:
// * The base fee, which is the same for most transactions.
// * The additional cost of each multisignature on the transaction.
XRPAmount const baseFee = view.fees().base;
XRPAmount baseFee = view.fees().base;
if (tx.getFieldU16(sfTransactionType) == ttIMPORT)
{
XRPAmount const importFee = baseFee * 10;
if (importFee > baseFee)
baseFee = importFee;
}
// Each signer adds one more baseFee to the minimum required fee
// for the transaction.

View File

@@ -10,7 +10,7 @@ namespace XahauGenesis
constexpr XRPAmount ExchangeAmount { 2'000'000 * DROPS_PER_XRP };
inline
std::map<std::string, XRPAmount> const
std::vector<std::pair<std::string, XRPAmount>> const
Distribution
{
{"rMYm3TY5D3rXYVAz6Zr2PDqEcjsTYbNiAT", InfraAmount},
@@ -30,8 +30,7 @@ namespace XahauGenesis
// if the ttEnableAmendment has an optional flag (that cannot be added in production)
// then whatever is in this array is used
inline
std::map<std::string, XRPAmount>
TestDistribution;
std::vector<std::pair<std::string, XRPAmount>> TestDistribution;
// For the Governance Hook: HookOn is set to ttINVOKE only
@@ -40,7 +39,7 @@ namespace XahauGenesis
GovernanceHookOn("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFBFFFFF");
inline
std::map<std::vector<uint8_t>, std::vector<uint8_t>> const
std::vector<std::pair<std::vector<uint8_t>, std::vector<uint8_t>>> const
GovernanceParameters
{
// 1.003274 -xfl-> 6089869970204910592 -le-> 0x00E461EE78908354

View File

@@ -160,7 +160,8 @@ struct XahauGenesis_test : public beast::unit_test::suite
// check distribution amounts and hook parameters
{
uint8_t member_count = 0;
std::map<std::vector<uint8_t>, std::vector<uint8_t>> params = XahauGenesis::GovernanceParameters;
std::vector<std::pair<std::vector<uint8_t>, std::vector<uint8_t>>> params =
XahauGenesis::GovernanceParameters;
for (auto const& [rn, x]: XahauGenesis::Distribution)
{
const char first = rn.c_str()[0];
@@ -178,7 +179,7 @@ struct XahauGenesis_test : public beast::unit_test::suite
auto bal = acc->getFieldAmount(sfBalance);
BEAST_EXPECT(bal == STAmount(x));
params.emplace(
params.emplace_back(
std::vector<uint8_t>{'I', 'S', member_count++},
std::vector<uint8_t>(id.data(), id.data() + 20));
continue;
@@ -195,13 +196,13 @@ struct XahauGenesis_test : public beast::unit_test::suite
BEAST_EXPECT(bal == STAmount(x));
// initial member enumeration
params.emplace(
params.emplace_back(
std::vector<uint8_t>{'I', 'S', member_count++},
std::vector<uint8_t>(id.data(), id.data() + 20));
}
// initial member count
params.emplace(
params.emplace_back(
std::vector<uint8_t>{'I', 'M', 'C'},
std::vector<uint8_t>{member_count});
@@ -212,6 +213,7 @@ struct XahauGenesis_test : public beast::unit_test::suite
// these should be recorded in the same order
std::set<std::vector<uint8_t>> keys_used;
int counter = 0;
for (auto& param : leParams)
{
auto key = param.getFieldVL(sfHookParameterName);
@@ -220,14 +222,14 @@ struct XahauGenesis_test : public beast::unit_test::suite
// no duplicates allowed
BEAST_EXPECT(keys_used.find(key) == keys_used.end());
// should be in our precomputed params
BEAST_EXPECT(params.find(key) != params.end());
BEAST_EXPECT(counter < leParams.size());
// value should match
BEAST_EXPECT(params[key] == val);
BEAST_EXPECT(params[counter].first == key);
BEAST_EXPECT(params[counter].second == val);
// add key to used set
keys_used.emplace(key);
counter++;
}
}
@@ -314,7 +316,7 @@ struct XahauGenesis_test : public beast::unit_test::suite
for (auto& m: members)
{
std::string acc = toBase58(m);
XahauGenesis::TestDistribution[acc] = XRPAmount(10000000000);
XahauGenesis::TestDistribution.emplace_back(acc, XRPAmount(10000000000));
}
activate(env, true, true, true);
@@ -357,11 +359,31 @@ struct XahauGenesis_test : public beast::unit_test::suite
auto const david = Account("david");
auto const edward = Account("edward");
env.fund(XRP(10000), alice, bob, carol, david, edward);
auto const m6 = Account("m6");
auto const m7 = Account("m7");
auto const m8 = Account("m8");
auto const m9 = Account("m9");
auto const m10 = Account("m10");
auto const m11 = Account("m11");
auto const m12 = Account("m12");
auto const m13 = Account("m13");
auto const m14 = Account("m14");
auto const m15 = Account("m15");
auto const m16 = Account("m16");
auto const m17 = Account("m17");
auto const m18 = Account("m18");
auto const m19 = Account("m19");
auto const m20 = Account("m20");
env.fund(XRP(10000), alice, bob, carol, david, edward,
m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20);
env.close();
setupGov(env, {alice.id(), bob.id(), carol.id(), david.id(), edward.id()});
std::vector<Account> initial_members {alice, bob, carol, david, edward};
std::vector<AccountID> initial_members_ids { alice.id(), bob.id(), carol.id(), david.id(), edward.id() };
setupGov(env, initial_members_ids);
auto vote = [&](
Account const& acc,
@@ -436,11 +458,42 @@ struct XahauGenesis_test : public beast::unit_test::suite
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};
bool isZero = true;
for (auto& x: vote_data)
if (x != 0)
{
isZero = false;
break;
}
bool isOldDataZero = true;
for (auto& x : old_data)
if (x != 0)
{
isOldDataZero = false;
break;
}
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 == 'S' ? 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) ||
auto entry = env.le(keylet::hookState(env.master.id(), uint256::fromVoid(key), beast::zero));
std::cout
<< "topic vote precheck: \n"
<< "\tacc: " << acc.human() << " shouldAction: " << (actioned ? "true": "false")
<< "\tshouldFail: " << (shouldFail ? "true": "false") << "\n"
<< "\ttopic: " << topic1 << "," << (topic2 < 48 ? topic2 + '1' : topic2) << "\n"
<< "\tisOldDataZero: " << (isOldDataZero ? "true" : "false") << "\n"
<< "\tisVoteDataZero: " << (isZero ? "true" : "false") << "\n"
<< "\told_data: " << strHex(old_data) << "\n"
<< "\tlgr_data: " << (!entry ? "doesn't exist" : strHex(entry->getFieldVL(sfHookStateData))) << "\n"
<< "\tnew_data: " << strHex(vote_data) << "\n"
<< "\t(isOldDataZero && !entry): " << (isOldDataZero && !entry ? "true" : "false") << "\n"
<< "\t(entry && entry->getFieldVL(sfHookStateData) == old_data): " <<
(entry && entry->getFieldVL(sfHookStateData) == old_data ? "true" : "false") << "\n";
BEAST_EXPECT((isOldDataZero && !entry) ||
(entry && entry->getFieldVL(sfHookStateData) == old_data));
}
@@ -462,23 +515,15 @@ struct XahauGenesis_test : public beast::unit_test::suite
}
// check actioning
if (!shouldFail)
{
// 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)
if (!actioned && isOldDataZero)
{
isZero = false;
break;
}
if (!actioned && old_data.empty())
{
BEAST_EXPECT(!entry);
BEAST_EXPECT(!entry || entry->getFieldVL(sfHookStateData) == old_data);
return;
}
@@ -487,17 +532,33 @@ struct XahauGenesis_test : public beast::unit_test::suite
if (isZero)
BEAST_EXPECT(!entry);
else
{
std::cout << "new data: " << strHex(vote_data) << "\n";
std::cout << "lgr data: " <<
(!entry ? "<doesn't exist>" : strHex(entry->getFieldVL(sfHookStateData))) << "\n";
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);
if (!!entry)
{
std::cout << "old data: " << strHex(entry->getFieldVL(sfHookStateData)) << "\n";
}
BEAST_EXPECT(!!entry && entry->getFieldVL(sfHookStateData) == old_data);
}
}
};
auto vecFromAcc = [](Account const& acc) -> std::vector<uint8_t>
{
uint8_t const* data = acc.id().data();
std::vector<uint8_t> ret(data, data+20);
std::cout << "ret: `" << strHex(ret) << "`, size: " << ret.size() << "\n";
return ret;
};
// 100% vote for a different reward rate
{
// this will be the new reward rate
@@ -524,19 +585,19 @@ struct XahauGenesis_test : public beast::unit_test::suite
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<uint8_t> 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<uint8_t> 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<uint8_t> id;
id.reserve(20);
memcpy(id.data(), alice.id().data(), 20);
std::vector<uint8_t> id = vecFromAcc(alice);
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(),
@@ -548,14 +609,17 @@ struct XahauGenesis_test : public beast::unit_test::suite
// continue to remove members (david)
{
std::vector<uint8_t> id;
id.reserve(20);
memcpy(id.data(), david.id().data(), 20);
std::vector<uint8_t> id = vecFromAcc(david);
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);
}
{
// RH TODO: check all david's previous votes were correctly removed
// check expected hookstate count
}
// check the membercount is now 3
{
auto entry = env.le(keylet::hookState(env.master.id(),
@@ -567,9 +631,7 @@ struct XahauGenesis_test : public beast::unit_test::suite
// continue to remove members (carol)
{
std::vector<uint8_t> id;
id.reserve(20);
memcpy(id.data(), carol.id().data(), 20);
std::vector<uint8_t> id = vecFromAcc(carol);
doL1Vote(bob, 'S', 2, null_acc_id, id, false);
doL1Vote(edward, 'S', 2, null_acc_id, id, true);
}
@@ -586,10 +648,8 @@ struct XahauGenesis_test : public beast::unit_test::suite
// member count can't fall below 2
// try to vote out edward using 2/2 votes
{
std::vector<uint8_t> id;
id.reserve(20);
memcpy(id.data(), edward.id().data(), 20);
doL1Vote(bob, 'S', 4, null_acc_id, id, true);
std::vector<uint8_t> id = vecFromAcc(edward);
doL1Vote(bob, 'S', 4, null_acc_id, id, false);
doL1Vote(edward, 'S', 4, null_acc_id, id, false, true);
}
@@ -604,9 +664,7 @@ struct XahauGenesis_test : public beast::unit_test::suite
// try to remove bob using 1/2 votes
{
std::vector<uint8_t> id;
id.reserve(20);
memcpy(id.data(), bob.id().data(), 20);
std::vector<uint8_t> id = vecFromAcc(bob);
doL1Vote(bob, 'S', 1, null_acc_id, id, false, false);
}
@@ -619,6 +677,52 @@ struct XahauGenesis_test : public beast::unit_test::suite
BEAST_REQUIRE(!!entry);
BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data);
}
// replace edward with alice
{
std::vector<uint8_t> id = vecFromAcc(alice);
doL1Vote(bob, 'S', 4, null_acc_id, id, false);
doL1Vote(edward, 'S', 4, null_acc_id, id, true);
// subsequent edward vote should fail because he's not a member anymore
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<uint8_t> const expected_data {0x02U};
BEAST_REQUIRE(!!entry);
BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data);
}
auto doSeatVote = [&](uint8_t seat_no, uint8_t final_count,
AccountID const& candidate, AccountID const& previous,
std::vector<Account const*> const& voters)
{
std::vector<uint8_t> previd { 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0} ;
memcpy(previd.data(), previous.data(), 20);
std::vector<uint8_t> id { 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0} ;
memcpy(id.data(), candidate.data(), 20);
int count = voters.size();
for (Account const* voter : voters)
doL1Vote(*voter, 'S', seat_no, id, previd, --count <= 0);
{
auto entry = env.le(keylet::hookState(env.master.id(),
uint256::fromVoid(member_count_key), beast::zero));
std::vector<uint8_t> const expected_data {final_count};
BEAST_REQUIRE(!!entry);
BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data);
}
};
std::cout << "Put edward back into seat 0\n";
// put edward into seat 0 previously occupied by alice
doSeatVote(0, 3, edward.id(), noAccount(), {&alice, &bob});
}