diff --git a/.gitignore b/.gitignore index 4dbca94..16c938c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,6 @@ tests/node_modules tests/lib tests/yarn-error.log tests/elfs/* -tests/snapshots/tmp/* +tests/snapshots-tmp .vscode diff --git a/CHANGELOG.md b/CHANGELOG.md index 89e3920..fba9db8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [1.9.7](https://github.com/ledgerhq/app-ethereum/compare/1.9.6...1.9.7) - 2021-9-30 + +### Fixed + +- Fixed a bug where amounts displayed where wrong when the amount was huge (>=2^87) + +## [1.9.6](https://github.com/ledgerhq/app-ethereum/compare/1.9.5...1.9.6) - 2021-9-29 + +### Fixed + +- Fixed a bug where fees displayed were wrong on Starkware transactions + +## [1.9.5](https://github.com/ledgerhq/app-ethereum/compare/1.9.4...1.9.5) - 2021-9-27 + +### Changed + +- "Contract Data" is now replaced with "Blind sign", which carries more meaning for regular users. + +### Added + +- When blind signing is disabled in settings, and a transaction with smart conract interactions is sent to the app, a new warning screen pops to let the user know that the setting must be enabled to sign this kind of transactions. + +## [1.9.4](https://github.com/ledgerhq/app-ethereum/compare/1.9.3...1.9.4) - 2021-9-14 + +### Added + +- Added Arbitrum network + ## [1.9.3](https://github.com/ledgerhq/app-ethereum/compare/1.9.2...1.9.3) - 2021-9-03 ### Added diff --git a/Makefile b/Makefile index 83d10a0..5c857be 100755 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ APP_LOAD_PARAMS += --path "1517992542'/1101353413'" APPVERSION_M=1 APPVERSION_N=9 -APPVERSION_P=3 +APPVERSION_P=7 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION) diff --git a/README.md b/README.md index 9186c17..417c5bb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ To compile it and load it on a device, please check out our [developer portal](h # Plugins -This app support external plugins. More info in [doc/ethapp_plugin.asc](https://github.com/LedgerHQ/app-ethereum/blob/master/doc/ethapp_plugins.asc). If you wish to have a look at an existing plugin, feel free to check out the [ParaSwap plugin](https://github.com/LedgerHQ/app-plugin-paraswap). +This app support external plugins. More info in [doc/ethapp_plugin.asc](https://github.com/LedgerHQ/app-ethereum/blob/master/doc/ethapp_plugins.asc). If you wish to have a look at an existing plugin, feel free to check out the [Boilerplate plugin](https://github.com/LedgerHQ/app-plugin-boilerplate). # Testing diff --git a/ethereum-plugin-sdk b/ethereum-plugin-sdk index 3d9433e..116ca51 160000 --- a/ethereum-plugin-sdk +++ b/ethereum-plugin-sdk @@ -1 +1 @@ -Subproject commit 3d9433e3a0e4c034938f767fe8be928d554536de +Subproject commit 116ca51519756ab1b0dfaecf2affabeee35ba6b4 diff --git a/src/main.c b/src/main.c index 9637342..1f93ce2 100644 --- a/src/main.c +++ b/src/main.c @@ -92,6 +92,10 @@ void ui_idle(void) { ux_flow_init(0, ux_idle_flow, NULL); } +void ui_warning_contract_data(void) { + ux_flow_init(0, ux_warning_contract_data_flow, NULL); +} + unsigned int io_seproxyhal_touch_exit(__attribute__((unused)) const bagl_element_t *e) { // Go back to the dashboard os_sched_exit(0); diff --git a/src/shared_context.h b/src/shared_context.h index 8631c35..09aa7d4 100644 --- a/src/shared_context.h +++ b/src/shared_context.h @@ -166,7 +166,7 @@ typedef enum { typedef struct txStringProperties_t { char fullAddress[43]; - char fullAmount[50]; + char fullAmount[67]; char maxFee[50]; char nonce[8]; // 10M tx per account ought to be enough for everybody char network_name[NETWORK_STRING_MAX_SIZE]; diff --git a/src/tokens.c b/src/tokens.c index 26fe188..1df92b8 100644 --- a/src/tokens.c +++ b/src/tokens.c @@ -46,4415 +46,21 @@ const tokenDefinition_t const TOKENS_EXTRA[NUM_TOKENS_EXTRA] = { #include "tokens.h" -const tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA] = {}; - +// Example of custom tokens (not actually used by the main ethereum app). +// Format of a token is: `{address, ticker, decimals}`. const tokenDefinition_t const TOKENS_ETHEREUM[NUM_TOKENS_ETHEREUM] = { - {{0x4E, 0x84, 0xE9, 0xe5, 0xfb, 0x0A, 0x97, 0x26, 0x28, 0xCf, - 0x45, 0x68, 0xc4, 0x03, 0x16, 0x7E, 0xF1, 0xD4, 0x04, 0x31}, - "$FFC ", - 18}, - {{0xa0, 0x24, 0xe8, 0x05, 0x7e, 0xec, 0x47, 0x4a, 0x9b, 0x23, - 0x56, 0x83, 0x37, 0x07, 0xdd, 0x05, 0x79, 0xe2, 0x6e, 0xf3}, - "$FYX ", - 18}, - {{0xcd, 0xb7, 0xec, 0xfd, 0x34, 0x03, 0xee, 0xf3, 0x88, 0x2c, - 0x65, 0xb7, 0x61, 0xef, 0x9b, 0x50, 0x54, 0x89, 0x0a, 0x47}, - "$HUR ", - 18}, - {{0x0d, 0xb8, 0xd8, 0xb7, 0x6b, 0xc3, 0x61, 0xba, 0xcb, 0xb7, - 0x2e, 0x2c, 0x49, 0x1e, 0x06, 0x08, 0x5a, 0x97, 0xab, 0x31}, - "$IQN ", - 18}, - {{0x7d, 0xd7, 0xf5, 0x6d, 0x69, 0x7c, 0xc0, 0xf2, 0xb5, 0x2b, - 0xd5, 0x5c, 0x05, 0x7f, 0x37, 0x8f, 0x1f, 0xe6, 0xab, 0x4b}, - "$TEAK ", - 18}, - {{0xB6, 0xeD, 0x76, 0x44, 0xC6, 0x94, 0x16, 0xd6, 0x7B, 0x52, - 0x2e, 0x20, 0xbC, 0x29, 0x4A, 0x9a, 0x9B, 0x40, 0x5B, 0x31}, - "0xBTC ", - 8}, - {{0xAf, 0x30, 0xD2, 0xa7, 0xE9, 0x0d, 0x7D, 0xC3, 0x61, 0xc8, - 0xC4, 0x58, 0x5e, 0x9B, 0xB7, 0xD2, 0xF6, 0xf1, 0x5b, 0xc7}, - "1ST ", - 18}, - {{0xfd, 0xbc, 0x1a, 0xdc, 0x26, 0xf0, 0xf8, 0xf8, 0x60, 0x6a, - 0x5d, 0x63, 0xb7, 0xd3, 0xa3, 0xcd, 0x21, 0xc2, 0x2b, 0x23}, - "1WO ", - 8}, - {{0x00, 0x73, 0xe5, 0xE5, 0x2E, 0x2B, 0x4f, 0xE2, 0x18, 0xD7, - 0x5d, 0x99, 0x4e, 0xE2, 0xB3, 0xc8, 0x2f, 0x9C, 0x87, 0xEA}, - "22x ", - 8}, - {{0x9f, 0xC0, 0x58, 0x32, 0x20, 0xeB, 0x44, 0xfA, 0xeE, 0x9e, - 0x2d, 0xc1, 0xE6, 0x3F, 0x39, 0x20, 0x4D, 0xDD, 0x90, 0x90}, - "2DC ", - 18}, - {{0xaE, 0xc9, 0x8A, 0x70, 0x88, 0x10, 0x41, 0x48, 0x78, 0xc3, - 0xBC, 0xDF, 0x46, 0xAa, 0xd3, 0x1d, 0xEd, 0x4a, 0x45, 0x57}, - "300 ", - 18}, - {{0x43, 0x02, 0x41, 0x36, 0x8c, 0x1D, 0x29, 0x3f, 0xdA, 0x21, - 0xDB, 0xa8, 0xBb, 0x7a, 0xF3, 0x20, 0x07, 0xc5, 0x91, 0x09}, - "3LT ", - 8}, - {{0xBa, 0x7D, 0xCB, 0xa2, 0xAd, 0xe3, 0x19, 0xBc, 0x77, 0x2D, - 0xB4, 0xdf, 0x75, 0xA7, 0x6B, 0xA0, 0x0d, 0xFb, 0x31, 0xb0}, - "A18 ", - 18}, - {{0xcc, 0x7d, 0x26, 0xd8, 0xea, 0x62, 0x81, 0xbb, 0x36, 0x3c, - 0x84, 0x48, 0x51, 0x5f, 0x2c, 0x61, 0xf7, 0xbc, 0x19, 0xf0}, - "ABCH ", - 18}, - {{0xb9, 0x8d, 0x4c, 0x97, 0x42, 0x5d, 0x99, 0x08, 0xe6, 0x6e, - 0x53, 0xa6, 0xfd, 0xf6, 0x73, 0xac, 0xca, 0x0b, 0xe9, 0x86}, - "ABT ", - 18}, - {{0x0e, 0x8d, 0x6b, 0x47, 0x1e, 0x33, 0x2f, 0x14, 0x0e, 0x7d, - 0x9d, 0xbb, 0x99, 0xe5, 0xe3, 0x82, 0x2f, 0x72, 0x8d, 0xa6}, - "ABYSS ", - 18}, - {{0x13, 0xf1, 0xb7, 0xfd, 0xfb, 0xe1, 0xfc, 0x66, 0x67, 0x6d, - 0x56, 0x48, 0x3e, 0x21, 0xb1, 0xec, 0xb4, 0x0b, 0x58, 0xe2}, - "ACC ", - 18}, - {{0x06, 0x14, 0x71, 0x10, 0x02, 0x2b, 0x76, 0x8b, 0xa8, 0xf9, - 0x9a, 0x8f, 0x38, 0x5d, 0xf1, 0x1a, 0x15, 0x1a, 0x9c, 0xc8}, - "ACE ", - 0}, - {{0x2b, 0xaa, 0xc9, 0x33, 0x0c, 0xf9, 0xac, 0x47, 0x9d, 0x81, - 0x91, 0x95, 0x79, 0x4d, 0x79, 0xad, 0x0c, 0x76, 0x16, 0xe3}, - "ADB ", - 18}, - {{0xE6, 0x9a, 0x35, 0x3b, 0x31, 0x52, 0xDd, 0x7b, 0x70, 0x6f, - 0xf7, 0xdD, 0x40, 0xfe, 0x1d, 0x18, 0xb7, 0x80, 0x2d, 0x31}, - "ADH ", - 18}, - {{0x88, 0x10, 0xC6, 0x34, 0x70, 0xd3, 0x86, 0x39, 0x95, 0x4c, - 0x6B, 0x41, 0xAa, 0xC5, 0x45, 0x84, 0x8C, 0x46, 0x48, 0x4a}, - "ADI ", - 18}, - {{0x66, 0x0e, 0x71, 0x48, 0x37, 0x85, 0xf6, 0x61, 0x33, 0x54, - 0x8b, 0x10, 0xf6, 0x92, 0x6d, 0xc3, 0x32, 0xb0, 0x6e, 0x61}, - "ADL ", - 18}, - {{0x42, 0x28, 0x66, 0xa8, 0xF0, 0xb0, 0x32, 0xc5, 0xcf, 0x1D, - 0xfB, 0xDE, 0xf3, 0x1A, 0x20, 0xF4, 0x50, 0x95, 0x62, 0xb0}, - "ADST ", - 0}, - {{0xD0, 0xD6, 0xD6, 0xC5, 0xFe, 0x4a, 0x67, 0x7D, 0x34, 0x3c, - 0xC4, 0x33, 0x53, 0x6B, 0xB7, 0x17, 0xbA, 0xe1, 0x67, 0xdD}, - "ADT ", - 9}, - {{0x44, 0x70, 0xBB, 0x87, 0xd7, 0x7b, 0x96, 0x3A, 0x01, 0x3D, - 0xB9, 0x39, 0xBE, 0x33, 0x2f, 0x92, 0x7f, 0x2b, 0x99, 0x2e}, - "ADX ", - 4}, - {{0x5c, 0xa9, 0xa7, 0x1b, 0x1d, 0x01, 0x84, 0x9c, 0x0a, 0x95, - 0x49, 0x0c, 0xc0, 0x05, 0x59, 0x71, 0x7f, 0xcf, 0x0d, 0x1d}, - "AE ", - 18}, - {{0x8e, 0xB2, 0x43, 0x19, 0x39, 0x37, 0x16, 0x66, 0x8D, 0x76, - 0x8d, 0xCE, 0xC2, 0x93, 0x56, 0xae, 0x9C, 0xfF, 0xe2, 0x85}, - "AGI ", - 8}, - {{0x51, 0x21, 0xe3, 0x48, 0xe8, 0x97, 0xda, 0xef, 0x1e, 0xef, - 0x23, 0x95, 0x9a, 0xb2, 0x90, 0xe5, 0x55, 0x7c, 0xf2, 0x74}, - "AI ", - 18}, - {{0x37, 0xe8, 0x78, 0x9b, 0xb9, 0x99, 0x6c, 0xac, 0x91, 0x56, - 0xcd, 0x5f, 0x5f, 0xd3, 0x25, 0x99, 0xe6, 0xb9, 0x12, 0x89}, - "AID ", - 18}, - {{0x4C, 0xEd, 0xA7, 0x90, 0x6a, 0x5E, 0xd2, 0x17, 0x97, 0x85, - 0xCd, 0x3A, 0x40, 0xA6, 0x9e, 0xe8, 0xbc, 0x99, 0xC4, 0x66}, - "AION ", - 8}, - {{0x27, 0xdc, 0xe1, 0xec, 0x4d, 0x3f, 0x72, 0xc3, 0xe4, 0x57, - 0xcc, 0x50, 0x35, 0x4f, 0x1f, 0x97, 0x5d, 0xde, 0xf4, 0x88}, - "AIR ", - 8}, - {{0x10, 0x63, 0xce, 0x52, 0x42, 0x65, 0xd5, 0xa3, 0xA6, 0x24, - 0xf4, 0x91, 0x4a, 0xcd, 0x57, 0x3d, 0xD8, 0x9c, 0xe9, 0x88}, - "AIX ", - 18}, - {{0x1c, 0xa4, 0x3a, 0x17, 0x0b, 0xad, 0x61, 0x93, 0x22, 0xe6, - 0xf5, 0x4d, 0x46, 0xb5, 0x7e, 0x50, 0x4d, 0xb6, 0x63, 0xaa}, - "AKC ", - 18}, - {{0x18, 0x1a, 0x63, 0x74, 0x6d, 0x3a, 0xdc, 0xf3, 0x56, 0xcb, - 0xc7, 0x3a, 0xce, 0x22, 0x83, 0x2f, 0xfb, 0xb1, 0xee, 0x5a}, - "ALCO ", - 8}, - {{0x42, 0x89, 0xc0, 0x43, 0xa1, 0x23, 0x92, 0xf1, 0x02, 0x73, - 0x07, 0xfb, 0x58, 0x27, 0x2d, 0x8e, 0xbd, 0x85, 0x39, 0x12}, - "ALI ", - 18}, - {{0xEA, 0x61, 0x0B, 0x11, 0x53, 0x47, 0x77, 0x20, 0x74, 0x8D, - 0xC1, 0x3E, 0xD3, 0x78, 0x00, 0x39, 0x41, 0xd8, 0x4f, 0xAB}, - "ALIS ", - 18}, - {{0x63, 0x8a, 0xc1, 0x49, 0xea, 0x8e, 0xf9, 0xa1, 0x28, 0x6c, - 0x41, 0xb9, 0x77, 0x01, 0x7a, 0xa7, 0x35, 0x9e, 0x6c, 0xfa}, - "ALTS ", - 18}, - {{0x49, 0xb1, 0x27, 0xbc, 0x33, 0xce, 0x7e, 0x15, 0x86, 0xec, - 0x28, 0xce, 0xc6, 0xa6, 0x5b, 0x11, 0x25, 0x96, 0xc8, 0x22}, - "ALX ", - 18}, - {{0x4d, 0xc3, 0x64, 0x3d, 0xbc, 0x64, 0x2b, 0x72, 0xc1, 0x58, - 0xe7, 0xf3, 0xd2, 0xff, 0x23, 0x2d, 0xf6, 0x1c, 0xb6, 0xce}, - "AMB ", - 18}, - {{0x94, 0x9b, 0xed, 0x88, 0x6c, 0x73, 0x9f, 0x1a, 0x32, 0x73, - 0x62, 0x9b, 0x33, 0x20, 0xdb, 0x0c, 0x50, 0x24, 0xc7, 0x19}, - "AMIS ", - 9}, - {{0xca, 0x0e, 0x72, 0x69, 0x60, 0x0d, 0x35, 0x3f, 0x70, 0xb1, - 0x4a, 0xd1, 0x18, 0xa4, 0x95, 0x75, 0x45, 0x5c, 0x0f, 0x2f}, - "AMLT ", - 18}, - {{0x73, 0x7f, 0x98, 0xac, 0x8c, 0xa5, 0x9f, 0x2c, 0x68, 0xad, - 0x65, 0x8e, 0x3c, 0x3d, 0x8c, 0x89, 0x63, 0xe4, 0x0a, 0x4c}, - "AMN ", - 18}, - {{0x38, 0xc8, 0x7a, 0xa8, 0x9b, 0x2b, 0x8c, 0xd9, 0xb9, 0x5b, - 0x73, 0x6e, 0x1f, 0xa7, 0xb6, 0x12, 0xea, 0x97, 0x21, 0x69}, - "AMO ", - 18}, - {{0x84, 0x93, 0x6c, 0xF7, 0x63, 0x0A, 0xA3, 0xe2, 0x7D, 0xd9, - 0xAf, 0xF9, 0x68, 0xb1, 0x40, 0xd5, 0xAE, 0xE4, 0x9F, 0x5a}, - "AMTC ", - 8}, - {{0x96, 0x0b, 0x23, 0x6A, 0x07, 0xcf, 0x12, 0x26, 0x63, 0xc4, - 0x30, 0x33, 0x50, 0x60, 0x9A, 0x66, 0xA7, 0xB2, 0x88, 0xC0}, - "ANT ", - 18}, - {{0x9a, 0xb1, 0x65, 0xd7, 0x95, 0x01, 0x9b, 0x6d, 0x8b, 0x3e, - 0x97, 0x1d, 0xda, 0x91, 0x07, 0x14, 0x21, 0x30, 0x5e, 0x5a}, - "AOA ", - 18}, - {{0x4c, 0x0f, 0xbe, 0x1b, 0xb4, 0x66, 0x12, 0x91, 0x5e, 0x79, - 0x67, 0xd2, 0xc3, 0x21, 0x3c, 0xd4, 0xd8, 0x72, 0x57, 0xad}, - "APIS ", - 18}, - {{0x1a, 0x7a, 0x8b, 0xd9, 0x10, 0x6f, 0x2b, 0x8d, 0x97, 0x7e, - 0x08, 0x58, 0x2d, 0xc7, 0xd2, 0x4c, 0x72, 0x3a, 0xb0, 0xdb}, - "APPC ", - 18}, - {{0x23, 0xae, 0x3c, 0x5b, 0x39, 0xb1, 0x2f, 0x06, 0x93, 0xe0, - 0x54, 0x35, 0xee, 0xaa, 0x1e, 0x51, 0xd8, 0xc6, 0x15, 0x30}, - "APT ", - 18}, - {{0xaf, 0xbe, 0xc4, 0xd6, 0x5b, 0xc7, 0xb1, 0x16, 0xd8, 0x51, - 0x07, 0xfd, 0x05, 0xd9, 0x12, 0x49, 0x10, 0x29, 0xbf, 0x46}, - "ARB ", - 18}, - {{0xAc, 0x70, 0x9F, 0xcB, 0x44, 0xa4, 0x3c, 0x35, 0xF0, 0xDA, - 0x4e, 0x31, 0x63, 0xb1, 0x17, 0xA1, 0x7F, 0x37, 0x70, 0xf5}, - "ARC ", - 18}, - {{0x12, 0x45, 0xef, 0x80, 0xf4, 0xd9, 0xe0, 0x2e, 0xd9, 0x42, - 0x53, 0x75, 0xe8, 0xf6, 0x49, 0xb9, 0x22, 0x1b, 0x31, 0xd8}, - "ARCT ", - 8}, - {{0x75, 0xaa, 0x7b, 0x0d, 0x02, 0x53, 0x2f, 0x38, 0x33, 0xb6, - 0x6c, 0x7f, 0x0a, 0xd3, 0x53, 0x76, 0xd3, 0x73, 0xdd, 0xf8}, - "ARD ", - 18}, - {{0xBA, 0x5F, 0x11, 0xb1, 0x6B, 0x15, 0x57, 0x92, 0xCf, 0x3B, - 0x2E, 0x68, 0x80, 0xE8, 0x70, 0x68, 0x59, 0xA8, 0xAE, 0xB6}, - "ARN ", - 8}, - {{0xfe, 0xc0, 0xcF, 0x7f, 0xE0, 0x78, 0xa5, 0x00, 0xab, 0xf1, - 0x5F, 0x12, 0x84, 0x95, 0x8F, 0x22, 0x04, 0x9c, 0x2C, 0x7e}, - "ART ", - 18}, - {{0x77, 0x05, 0xFa, 0xA3, 0x4B, 0x16, 0xEB, 0x6d, 0x77, 0xDf, - 0xc7, 0x81, 0x2b, 0xe2, 0x36, 0x7b, 0xa6, 0xB0, 0x24, 0x8e}, - "ARX ", - 8}, - {{0xb0, 0xD9, 0x26, 0xc1, 0xBC, 0x3d, 0x78, 0x06, 0x4F, 0x3e, - 0x10, 0x75, 0xD5, 0xbD, 0x9A, 0x24, 0xF3, 0x5A, 0xe6, 0xC5}, - "ARXT ", - 18}, - {{0xa5, 0xf8, 0xfc, 0x09, 0x21, 0x88, 0x0c, 0xb7, 0x34, 0x23, - 0x68, 0xbd, 0x12, 0x8e, 0xb8, 0x05, 0x04, 0x42, 0xb1, 0xa1}, - "ARY ", - 18}, - {{0x27, 0x05, 0x4b, 0x13, 0xb1, 0xB7, 0x98, 0xB3, 0x45, 0xb5, - 0x91, 0xa4, 0xd2, 0x2e, 0x65, 0x62, 0xd4, 0x7e, 0xA7, 0x5a}, - "AST ", - 4}, - {{0x7b, 0x22, 0x93, 0x8c, 0xa8, 0x41, 0xaa, 0x39, 0x2c, 0x93, - 0xdb, 0xb7, 0xf4, 0xc4, 0x21, 0x78, 0xe3, 0xd6, 0x5e, 0x88}, - "ASTRO ", - 4}, - {{0x15, 0x43, 0xd0, 0xF8, 0x34, 0x89, 0xe8, 0x2A, 0x13, 0x44, - 0xDF, 0x68, 0x27, 0xB2, 0x3d, 0x54, 0x1F, 0x23, 0x5A, 0x50}, - "Aigatha ", - 18}, - {{0x17, 0x05, 0x2d, 0x51, 0xE9, 0x54, 0x59, 0x2C, 0x10, 0x46, - 0x32, 0x0c, 0x23, 0x71, 0xAb, 0xaB, 0x6C, 0x73, 0xEf, 0x10}, - "Athenian ", - 18}, - {{0x78, 0xB7, 0xFA, 0xDA, 0x55, 0xA6, 0x4d, 0xD8, 0x95, 0xD8, - 0xc8, 0xc3, 0x57, 0x79, 0xDD, 0x8b, 0x67, 0xfA, 0x8a, 0x05}, - "ATL ", - 18}, - {{0x9B, 0x11, 0xEF, 0xcA, 0xAA, 0x18, 0x90, 0xf6, 0xeE, 0x52, - 0xC6, 0xbB, 0x7C, 0xF8, 0x15, 0x3a, 0xC5, 0xd7, 0x41, 0x39}, - "ATM ", - 8}, - {{0x97, 0xAE, 0xB5, 0x06, 0x6E, 0x1A, 0x59, 0x0e, 0x86, 0x8b, - 0x51, 0x14, 0x57, 0xBE, 0xb6, 0xFE, 0x99, 0xd3, 0x29, 0xF5}, - "ATMI ", - 18}, - {{0x2d, 0xAE, 0xE1, 0xAA, 0x61, 0xD6, 0x0A, 0x25, 0x2D, 0xC8, - 0x05, 0x64, 0x49, 0x9A, 0x69, 0x80, 0x28, 0x53, 0x58, 0x3A}, - "ATS ", - 4}, - {{0x88, 0x78, 0x34, 0xd3, 0xb8, 0xd4, 0x50, 0xb6, 0xba, 0xb1, - 0x09, 0xc2, 0x52, 0xdf, 0x3d, 0xa2, 0x86, 0xd7, 0x3c, 0xe4}, - "ATT ", - 18}, - {{0x63, 0x39, 0x78, 0x4d, 0x94, 0x78, 0xda, 0x43, 0x10, 0x6a, - 0x42, 0x91, 0x96, 0x77, 0x2a, 0x02, 0x9c, 0x2f, 0x17, 0x7d}, - "ATTN ", - 18}, - {{0x1a, 0x0f, 0x2a, 0xb4, 0x6e, 0xc6, 0x30, 0xf9, 0xfd, 0x63, - 0x80, 0x29, 0x02, 0x7b, 0x55, 0x2a, 0xfa, 0x64, 0xb9, 0x4c}, - "ATX ", - 18}, - {{0xc1, 0x2d, 0x09, 0x9b, 0xe3, 0x15, 0x67, 0xad, 0xd4, 0xe4, - 0xe4, 0xd0, 0xd4, 0x56, 0x91, 0xc3, 0xf5, 0x8f, 0x56, 0x63}, - "AUC ", - 18}, - {{0xcd, 0xcf, 0xc0, 0xf6, 0x6c, 0x52, 0x2f, 0xd0, 0x86, 0xa1, - 0xb7, 0x25, 0xea, 0x3c, 0x0e, 0xeb, 0x9f, 0x9e, 0x88, 0x14}, - "AURA ", - 18}, - {{0x62, 0x2d, 0xFf, 0xCc, 0x4e, 0x83, 0xC6, 0x4b, 0xa9, 0x59, - 0x53, 0x0A, 0x5a, 0x55, 0x80, 0x68, 0x7a, 0x57, 0x58, 0x1b}, - "AUTO ", - 18}, - {{0xeD, 0x24, 0x79, 0x80, 0x39, 0x6B, 0x10, 0x16, 0x9B, 0xB1, - 0xd3, 0x6f, 0x6e, 0x27, 0x8e, 0xD1, 0x67, 0x00, 0xa6, 0x0f}, - "AVA ", - 4}, - {{0x0d, 0x88, 0xed, 0x6e, 0x74, 0xbb, 0xfd, 0x96, 0xb8, 0x31, - 0x23, 0x16, 0x38, 0xb6, 0x6c, 0x05, 0x57, 0x1e, 0x82, 0x4f}, - "AVT ", - 18}, - {{0xcd, 0x4b, 0x4b, 0x0f, 0x32, 0x84, 0xa3, 0x3a, 0xc4, 0x9c, - 0x67, 0x96, 0x1e, 0xc6, 0xe1, 0x11, 0x70, 0x83, 0x18, 0xcf}, - "AX1 ", - 5}, - {{0xC3, 0x9E, 0x62, 0x6A, 0x04, 0xC5, 0x97, 0x1D, 0x77, 0x0e, - 0x31, 0x97, 0x60, 0xD7, 0x92, 0x65, 0x02, 0x97, 0x5e, 0x47}, - "AXPR ", - 18}, - {{0x5d, 0x51, 0xfc, 0xce, 0xd3, 0x11, 0x4a, 0x8b, 0xb5, 0xe9, - 0x0c, 0xdd, 0x0f, 0x9d, 0x68, 0x2b, 0xcb, 0xcc, 0x53, 0x93}, - "B2BX ", - 18}, - {{0x99, 0x8b, 0x3b, 0x82, 0xbc, 0x9d, 0xba, 0x17, 0x39, 0x90, - 0xbe, 0x7a, 0xfb, 0x77, 0x27, 0x88, 0xb5, 0xac, 0xb8, 0xbd}, - "BANCA ", - 18}, - {{0xf8, 0x7f, 0x0d, 0x91, 0x53, 0xfe, 0xa5, 0x49, 0xc7, 0x28, - 0xad, 0x61, 0xcb, 0x80, 0x15, 0x95, 0xa6, 0x8b, 0x73, 0xde}, - "BANX ", - 18}, - {{0x2a, 0x05, 0xd2, 0x2d, 0xb0, 0x79, 0xbc, 0x40, 0xc2, 0xf7, - 0x7a, 0x1d, 0x1f, 0xf7, 0x03, 0xa5, 0x6e, 0x63, 0x1c, 0xc1}, - "BAS ", - 8}, - {{0x0D, 0x87, 0x75, 0xF6, 0x48, 0x43, 0x06, 0x79, 0xA7, 0x09, - 0xE9, 0x8d, 0x2b, 0x0C, 0xb6, 0x25, 0x0d, 0x28, 0x87, 0xEF}, - "BAT ", - 18}, - {{0x9a, 0x02, 0x42, 0xb7, 0xa3, 0x3d, 0xac, 0xbe, 0x40, 0xed, - 0xb9, 0x27, 0x83, 0x4f, 0x96, 0xeb, 0x39, 0xf8, 0xfb, 0xcb}, - "BAX ", - 18}, - {{0xe7, 0xD3, 0xe4, 0x41, 0x3E, 0x29, 0xae, 0x35, 0xB0, 0x89, - 0x31, 0x40, 0xF4, 0x50, 0x09, 0x65, 0xc7, 0x43, 0x65, 0xe5}, - "BBC ", - 18}, - {{0x37, 0xd4, 0x05, 0x10, 0xa2, 0xf5, 0xbc, 0x98, 0xaa, 0x7a, - 0x0f, 0x7b, 0xf4, 0xb3, 0x45, 0x3b, 0xcf, 0xb9, 0x0a, 0xc1}, - "BBI ", - 18}, - {{0x4a, 0x60, 0x58, 0x66, 0x6c, 0xf1, 0x05, 0x7e, 0xaC, 0x3C, - 0xD3, 0xA5, 0xa6, 0x14, 0x62, 0x05, 0x47, 0x55, 0x9f, 0xc9}, - "BBK ", - 18}, - {{0x35, 0xa6, 0x96, 0x42, 0x85, 0x70, 0x83, 0xba, 0x2f, 0x30, - 0xbf, 0xab, 0x73, 0x5d, 0xac, 0xc7, 0xf0, 0xba, 0xc9, 0x69}, - "BBN ", - 18}, - {{0x84, 0xf7, 0xc4, 0x4b, 0x6f, 0xed, 0x10, 0x80, 0xf6, 0x47, - 0xe3, 0x54, 0xd5, 0x52, 0x59, 0x5b, 0xe2, 0xcc, 0x60, 0x2f}, - "BBO ", - 18}, - {{0x2e, 0xcb, 0x13, 0xa8, 0xc4, 0x58, 0xc3, 0x79, 0xc4, 0xd9, - 0xa7, 0x25, 0x9e, 0x20, 0x2d, 0xe0, 0x3c, 0x8f, 0x3d, 0x19}, - "BC ", - 18}, - {{0x1f, 0x41, 0xe4, 0x2d, 0x0a, 0x9e, 0x3c, 0x0d, 0xd3, 0xba, - 0x15, 0xb5, 0x27, 0x34, 0x27, 0x83, 0xb4, 0x32, 0x00, 0xa9}, - "BCAP ", - 0}, - {{0x73, 0x67, 0xa6, 0x80, 0x39, 0xd4, 0x70, 0x4f, 0x30, 0xbf, - 0xbf, 0x6d, 0x94, 0x80, 0x20, 0xc3, 0xb0, 0x7d, 0xfc, 0x59}, - "BCBC ", - 18}, - {{0x1e, 0x79, 0x7C, 0xe9, 0x86, 0xC3, 0xCF, 0xF4, 0x47, 0x2F, - 0x7D, 0x38, 0xd5, 0xC4, 0xab, 0xa5, 0x5D, 0xfE, 0xFE, 0x40}, - "BCDN ", - 15}, - {{0xac, 0xfa, 0x20, 0x9f, 0xb7, 0x3b, 0xf3, 0xdd, 0x5b, 0xbf, - 0xb1, 0x10, 0x1b, 0x9b, 0xc9, 0x99, 0xc4, 0x90, 0x62, 0xa5}, - "BCDT ", - 18}, - {{0xbc, 0x12, 0x34, 0x55, 0x2E, 0xBe, 0xa3, 0x2B, 0x51, 0x21, - 0x19, 0x03, 0x56, 0xbB, 0xa6, 0xD3, 0xBb, 0x22, 0x5b, 0xb5}, - "BCL ", - 18}, - {{0x1c, 0x44, 0x81, 0x75, 0x0d, 0xaa, 0x5F, 0xf5, 0x21, 0xA2, - 0xa7, 0x49, 0x0d, 0x99, 0x81, 0xeD, 0x46, 0x46, 0x5D, 0xbd}, - "BCPT ", - 18}, - {{0x10, 0x14, 0x61, 0x3e, 0x2b, 0x3c, 0xbc, 0x4d, 0x57, 0x50, - 0x54, 0xd4, 0x98, 0x2e, 0x58, 0x0d, 0x9b, 0x99, 0xd7, 0xb1}, - "BCV ", - 8}, - {{0x19, 0x61, 0xB3, 0x33, 0x19, 0x69, 0xeD, 0x52, 0x77, 0x07, - 0x51, 0xfC, 0x71, 0x8e, 0xf5, 0x30, 0x83, 0x8b, 0x6d, 0xEE}, - "BDG ", - 18}, - {{0x4D, 0x8f, 0xc1, 0x45, 0x3a, 0x0F, 0x35, 0x9e, 0x99, 0xc9, - 0x67, 0x59, 0x54, 0xe6, 0x56, 0xD8, 0x0d, 0x99, 0x6F, 0xbF}, - "BEE ", - 18}, - {{0x74, 0xC1, 0xE4, 0xb8, 0xca, 0xE5, 0x92, 0x69, 0xec, 0x1D, - 0x85, 0xD3, 0xD4, 0xF3, 0x24, 0x39, 0x60, 0x48, 0xF4, 0xac}, - "BeerCoin ", - 0}, - {{0x6a, 0xeb, 0x95, 0xf0, 0x6c, 0xda, 0x84, 0xca, 0x34, 0x5c, - 0x2d, 0xe0, 0xf3, 0xb7, 0xf9, 0x69, 0x23, 0xa4, 0x4f, 0x4c}, - "BERRY ", - 14}, - {{0x8a, 0xA3, 0x3A, 0x78, 0x99, 0xFC, 0xC8, 0xeA, 0x5f, 0xBe, - 0x6A, 0x60, 0x8A, 0x10, 0x9c, 0x38, 0x93, 0xA1, 0xB8, 0xb2}, - "BET ", - 18}, - {{0x14, 0xC9, 0x26, 0xF2, 0x29, 0x00, 0x44, 0xB6, 0x47, 0xe1, - 0xBf, 0x20, 0x72, 0xe6, 0x7B, 0x49, 0x5e, 0xff, 0x19, 0x05}, - "BETHER ", - 18}, - {{0x76, 0x31, 0x86, 0xeb, 0x8d, 0x48, 0x56, 0xd5, 0x36, 0xed, - 0x44, 0x78, 0x30, 0x29, 0x71, 0x21, 0x4f, 0xeb, 0xc6, 0xa9}, - "BETR ", - 18}, - {{0xee, 0x74, 0x11, 0x0f, 0xb5, 0xa1, 0x00, 0x7b, 0x06, 0x28, - 0x2e, 0x0d, 0xe5, 0xd7, 0x3a, 0x61, 0xbf, 0x41, 0xd9, 0xcd}, - "BHPC ", - 18}, - {{0xfe, 0x5d, 0x90, 0x8c, 0x9a, 0xd8, 0x5f, 0x65, 0x11, 0x85, - 0xda, 0xa6, 0xa4, 0x77, 0x07, 0x26, 0xe2, 0xb2, 0x7d, 0x09}, - "BHR ", - 18}, - {{0x08, 0xb4, 0xc8, 0x66, 0xaE, 0x9D, 0x1b, 0xE5, 0x6a, 0x06, - 0xe0, 0xC3, 0x02, 0x05, 0x4B, 0x4F, 0xFe, 0x06, 0x7b, 0x43}, - "BITCAR ", - 8}, - {{0xf3, 0xd2, 0x9f, 0xb9, 0x8d, 0x2d, 0xc5, 0xe7, 0x8c, 0x87, - 0x19, 0x8d, 0xee, 0xf9, 0x93, 0x77, 0x34, 0x5f, 0xd6, 0xf1}, - "BITPARK ", - 8}, - {{0xb3, 0x10, 0x4b, 0x4b, 0x9d, 0xa8, 0x20, 0x25, 0xe8, 0xb9, - 0xf8, 0xfb, 0x28, 0xb3, 0x55, 0x3c, 0xe2, 0xf6, 0x70, 0x69}, - "BIX ", - 18}, - {{0xb2, 0xbf, 0xeb, 0x70, 0xb9, 0x03, 0xf1, 0xba, 0xac, 0x7f, - 0x2b, 0xa2, 0xc6, 0x29, 0x34, 0xc7, 0xe5, 0xb9, 0x74, 0xc4}, - "BKB ", - 8}, - {{0x3c, 0xf9, 0xe0, 0xc3, 0x85, 0xa5, 0xab, 0xec, 0x9f, 0xd2, - 0xa7, 0x17, 0x90, 0xaa, 0x34, 0x4c, 0x4e, 0x8e, 0x35, 0x70}, - "BKRx ", - 18}, - {{0x45, 0x24, 0x5b, 0xc5, 0x92, 0x19, 0xee, 0xaa, 0xf6, 0xcd, - 0x3f, 0x38, 0x2e, 0x07, 0x8a, 0x46, 0x1f, 0xf9, 0xde, 0x7b}, - "BKX ", - 18}, - {{0xca, 0x29, 0xdb, 0x42, 0x21, 0xc1, 0x11, 0x88, 0x8a, 0x7e, - 0x80, 0xb1, 0x2e, 0xac, 0x8a, 0x26, 0x6d, 0xa3, 0xee, 0x0d}, - "BLN ", - 18}, - {{0x10, 0x7c, 0x45, 0x04, 0xcd, 0x79, 0xC5, 0xd2, 0x69, 0x6E, - 0xa0, 0x03, 0x0a, 0x8d, 0xD4, 0xe9, 0x26, 0x01, 0xB8, 0x2e}, - "BLT ", - 18}, - {{0x53, 0x9e, 0xfe, 0x69, 0xbc, 0xdd, 0x21, 0xa8, 0x3e, 0xfd, - 0x91, 0x22, 0x57, 0x1a, 0x64, 0xcc, 0x25, 0xe0, 0x28, 0x2b}, - "BLUE ", - 8}, - {{0xce, 0x59, 0xd2, 0x9b, 0x09, 0xaa, 0xe5, 0x65, 0xfe, 0xee, - 0xf8, 0xe5, 0x2f, 0x47, 0xc3, 0xcd, 0x53, 0x68, 0xc6, 0x63}, - "BLX bull ", - 18}, - {{0xE5, 0xa7, 0xc1, 0x29, 0x72, 0xf3, 0xbb, 0xFe, 0x70, 0xed, - 0x29, 0x52, 0x1C, 0x89, 0x49, 0xb8, 0xAf, 0x6a, 0x09, 0x70}, - "BLX ico ", - 18}, - {{0x57, 0x32, 0x04, 0x6A, 0x88, 0x37, 0x04, 0x40, 0x4F, 0x28, - 0x4C, 0xe4, 0x1F, 0xfA, 0xDd, 0x5b, 0x00, 0x7F, 0xD6, 0x68}, - "BLZ ", - 18}, - {{0xdf, 0x6e, 0xf3, 0x43, 0x35, 0x07, 0x80, 0xbf, 0x8c, 0x34, - 0x10, 0xbf, 0x06, 0x2e, 0x0c, 0x01, 0x5b, 0x1d, 0xd6, 0x71}, - "BMC ", - 8}, - {{0xf0, 0x28, 0xad, 0xee, 0x51, 0x53, 0x3b, 0x1b, 0x47, 0xbe, - 0xaa, 0x89, 0x0f, 0xeb, 0x54, 0xa4, 0x57, 0xf5, 0x1e, 0x89}, - "BMT ", - 18}, - {{0x98, 0x6E, 0xE2, 0xB9, 0x44, 0xc4, 0x2D, 0x01, 0x7F, 0x52, - 0xAf, 0x21, 0xc4, 0xc6, 0x9B, 0x84, 0xDB, 0xeA, 0x35, 0xd8}, - "BMX ", - 18}, - {{0xb8, 0xc7, 0x74, 0x82, 0xe4, 0x5f, 0x1f, 0x44, 0xde, 0x17, - 0x45, 0xf5, 0x2c, 0x74, 0x42, 0x6c, 0x63, 0x1b, 0xdd, 0x52}, - "BNB ", - 18}, - {{0xdD, 0x6B, 0xf5, 0x6C, 0xA2, 0xad, 0xa2, 0x4c, 0x68, 0x3F, - 0xAC, 0x50, 0xE3, 0x77, 0x83, 0xe5, 0x5B, 0x57, 0xAF, 0x9F}, - "BNC ", - 12}, - {{0xef, 0x51, 0xc9, 0x37, 0x7f, 0xeb, 0x29, 0x85, 0x6e, 0x61, - 0x62, 0x5c, 0xaf, 0x93, 0x90, 0xbd, 0x0b, 0x67, 0xea, 0x18}, - "BNC ", - 8}, - {{0xdA, 0x2C, 0x42, 0x4F, 0xc9, 0x8c, 0x74, 0x1c, 0x2d, 0x4e, - 0xf2, 0xf4, 0x28, 0x97, 0xCE, 0xfe, 0xd8, 0x97, 0xCA, 0x75}, - "BNFT ", - 9}, - {{0xda, 0x80, 0xb2, 0x00, 0x38, 0xbd, 0xf9, 0x68, 0xc7, 0x30, - 0x7b, 0xb5, 0x90, 0x7a, 0x46, 0x94, 0x82, 0xcf, 0x62, 0x51}, - "BNN ", - 8}, - {{0x1F, 0x57, 0x3D, 0x6F, 0xb3, 0xF1, 0x3d, 0x68, 0x9F, 0xF8, - 0x44, 0xB4, 0xcE, 0x37, 0x79, 0x4d, 0x79, 0xa7, 0xFF, 0x1C}, - "BNT ", - 18}, - {{0xd2, 0xd6, 0x15, 0x86, 0x83, 0xae, 0xe4, 0xcc, 0x83, 0x80, - 0x67, 0x72, 0x72, 0x09, 0xa0, 0xaa, 0xf4, 0x35, 0x9d, 0xe3}, - "BNTY ", - 18}, - {{0xDF, 0x34, 0x79, 0x11, 0x91, 0x0b, 0x6c, 0x9A, 0x42, 0x86, - 0xbA, 0x8E, 0x2E, 0xE5, 0xea, 0x4a, 0x39, 0xeB, 0x21, 0x34}, - "BOB ", - 18}, - {{0xCc, 0x34, 0x36, 0x6E, 0x38, 0x42, 0xcA, 0x1B, 0xD3, 0x6c, - 0x1f, 0x32, 0x4d, 0x15, 0x25, 0x79, 0x60, 0xfC, 0xC8, 0x01}, - "BON ", - 18}, - {{0x7f, 0x1e, 0x2c, 0x7d, 0x6a, 0x69, 0xbf, 0x34, 0x82, 0x4d, - 0x72, 0xc5, 0x3b, 0x45, 0x50, 0xe8, 0x95, 0xc0, 0xd8, 0xc2}, - "BOP ", - 8}, - {{0xC2, 0xC6, 0x3F, 0x23, 0xec, 0x5E, 0x97, 0xef, 0xbD, 0x75, - 0x65, 0xdF, 0x9E, 0xc7, 0x64, 0xFD, 0xc7, 0xd4, 0xe9, 0x1d}, - "BOU ", - 18}, - {{0x13, 0x9d, 0x93, 0x97, 0x27, 0x4b, 0xb9, 0xe2, 0xc2, 0x9a, - 0x9a, 0xa8, 0xaa, 0x0b, 0x58, 0x74, 0xd3, 0x0d, 0x62, 0xe3}, - "BOUTS ", - 18}, - {{0x63, 0xf5, 0x84, 0xfa, 0x56, 0xe6, 0x0e, 0x4d, 0x0f, 0xe8, - 0x80, 0x2b, 0x27, 0xc7, 0xe6, 0xe3, 0xb3, 0x3e, 0x00, 0x7f}, - "BOX ", - 18}, - {{0xe1, 0xA1, 0x78, 0xB6, 0x81, 0xBD, 0x05, 0x96, 0x4d, 0x3e, - 0x3E, 0xd3, 0x3A, 0xE7, 0x31, 0x57, 0x7d, 0x9d, 0x96, 0xdD}, - "BOX ", - 18}, - {{0x78, 0x01, 0x16, 0xd9, 0x1e, 0x55, 0x92, 0xe5, 0x8a, 0x3b, - 0x3c, 0x76, 0xa3, 0x51, 0x57, 0x1b, 0x39, 0xab, 0xce, 0xc6}, - "BOXX ", - 15}, - {{0x32, 0x76, 0x82, 0x77, 0x9b, 0xAB, 0x2B, 0xF4, 0xd1, 0x33, - 0x7e, 0x89, 0x74, 0xab, 0x9d, 0xE8, 0x27, 0x5A, 0x7C, 0xa8}, - "BPT ", - 18}, - {{0x9E, 0x77, 0xD5, 0xa1, 0x25, 0x1b, 0x6F, 0x7D, 0x45, 0x67, - 0x22, 0xA6, 0xea, 0xC6, 0xD2, 0xd5, 0x98, 0x0b, 0xd8, 0x91}, - "BRAT ", - 8}, - {{0x55, 0x8e, 0xc3, 0x15, 0x2e, 0x2e, 0xb2, 0x17, 0x49, 0x05, - 0xcd, 0x19, 0xae, 0xa4, 0xe3, 0x4a, 0x23, 0xde, 0x9a, 0xd6}, - "BRD ", - 18}, - {{0xf2, 0x6e, 0xf5, 0xe0, 0x54, 0x53, 0x84, 0xb7, 0xdc, 0xc0, - 0xf2, 0x97, 0xf2, 0x67, 0x41, 0x89, 0x58, 0x68, 0x30, 0xdf}, - "BSDC ", - 18}, - {{0x50, 0x9A, 0x38, 0xb7, 0xa1, 0xcC, 0x0d, 0xcd, 0x83, 0xAa, - 0x9d, 0x06, 0x21, 0x46, 0x63, 0xD9, 0xeC, 0x7c, 0x7F, 0x4a}, - "BST ", - 18}, - {{0x02, 0x72, 0x58, 0x36, 0xeb, 0xf3, 0xec, 0xdb, 0x1c, 0xdf, - 0x1c, 0x7b, 0x02, 0xfc, 0xbb, 0xfa, 0xa2, 0x73, 0x6a, 0xf8}, - "BTCA ", - 8}, - {{0x08, 0x86, 0x94, 0x9c, 0x1b, 0x8C, 0x41, 0x28, 0x60, 0xc4, - 0x26, 0x4C, 0xeb, 0x80, 0x83, 0xd1, 0x36, 0x5e, 0x86, 0xCF}, - "BTCE ", - 8}, - {{0x5a, 0xcD, 0x19, 0xb9, 0xc9, 0x1e, 0x59, 0x6b, 0x1f, 0x06, - 0x2f, 0x18, 0xe3, 0xD0, 0x2d, 0xa7, 0xeD, 0x8D, 0x1e, 0x50}, - "BTCL ", - 8}, - {{0x87, 0xf5, 0xe8, 0xc3, 0x42, 0x52, 0x18, 0x83, 0x7f, 0x3c, - 0xb6, 0x7d, 0xb9, 0x41, 0xaf, 0x0c, 0x01, 0x32, 0x3e, 0x56}, - "BTCONE ", - 18}, - {{0x6a, 0xac, 0x8c, 0xb9, 0x86, 0x1e, 0x42, 0xbf, 0x82, 0x59, - 0xf5, 0xab, 0xdc, 0x6a, 0xe3, 0xae, 0x89, 0x90, 0x9e, 0x11}, - "BTCR ", - 8}, - {{0x73, 0xdd, 0x06, 0x9c, 0x29, 0x9a, 0x5d, 0x69, 0x1e, 0x98, - 0x36, 0x24, 0x3b, 0xca, 0xec, 0x9c, 0x8c, 0x1d, 0x87, 0x34}, - "BTE ", - 8}, - {{0xfa, 0xd5, 0x72, 0xdb, 0x56, 0x6e, 0x52, 0x34, 0xac, 0x9f, - 0xc3, 0xd5, 0x70, 0xc4, 0xed, 0xc0, 0x05, 0x0e, 0xaa, 0x92}, - "BTH ", - 18}, - {{0xdb, 0x86, 0x46, 0xf5, 0xb4, 0x87, 0xb5, 0xdd, 0x97, 0x9f, - 0xac, 0x61, 0x83, 0x50, 0xe8, 0x50, 0x18, 0xf5, 0x57, 0xd4}, - "BTK ", - 18}, - {{0x2a, 0xcc, 0xaB, 0x9c, 0xb7, 0xa4, 0x8c, 0x3E, 0x82, 0x28, - 0x6F, 0x0b, 0x2f, 0x87, 0x98, 0xD2, 0x01, 0xF4, 0xeC, 0x3f}, - "Battle ", - 18}, - {{0x92, 0x68, 0x5E, 0x93, 0x95, 0x65, 0x37, 0xc2, 0x5B, 0xb7, - 0x5D, 0x5d, 0x47, 0xfc, 0xa4, 0x26, 0x6d, 0xd6, 0x28, 0xB8}, - "Bitlle ", - 4}, - {{0xcb, 0x97, 0xe6, 0x5f, 0x07, 0xda, 0x24, 0xd4, 0x6b, 0xcd, - 0xd0, 0x78, 0xeb, 0xeb, 0xd7, 0xc6, 0xe6, 0xe3, 0xd7, 0x50}, - "BTM ", - 8}, - {{0x36, 0x90, 0x5f, 0xc9, 0x32, 0x80, 0xf5, 0x23, 0x62, 0xa1, - 0xcb, 0xab, 0x15, 0x1f, 0x25, 0xdc, 0x46, 0x74, 0x2f, 0xb5}, - "BTO ", - 18}, - {{0x16, 0xB0, 0xE6, 0x2a, 0xC1, 0x3a, 0x2f, 0xAe, 0xD3, 0x6D, - 0x18, 0xbc, 0xe2, 0x35, 0x6d, 0x25, 0xAb, 0x3C, 0xfA, 0xD3}, - "BTQ ", - 18}, - {{0x49, 0x9a, 0x6b, 0x77, 0xbc, 0x25, 0xc2, 0x6b, 0xcf, 0x82, - 0x65, 0xe2, 0x10, 0x2b, 0x1b, 0x3d, 0xd1, 0x61, 0x70, 0x24}, - "BTR ", - 18}, - {{0x03, 0xc7, 0x80, 0xcd, 0x55, 0x45, 0x98, 0x59, 0x2b, 0x97, - 0xb7, 0x25, 0x6d, 0xda, 0xad, 0x75, 0x99, 0x45, 0xb1, 0x25}, - "BTRN ", - 18}, - {{0x08, 0x0a, 0xa0, 0x7e, 0x2c, 0x71, 0x85, 0x15, 0x0d, 0x7e, - 0x4d, 0xa9, 0x88, 0x38, 0xa8, 0xd2, 0xfe, 0xac, 0x3d, 0xfc}, - "Bit eth ", - 0}, - {{0xFA, 0x45, 0x6C, 0xf5, 0x52, 0x50, 0xA8, 0x39, 0x08, 0x8b, - 0x27, 0xEE, 0x32, 0xA4, 0x24, 0xd7, 0xDA, 0xcB, 0x54, 0xFf}, - "BlkTrade ", - 18}, - {{0xb6, 0x83, 0xD8, 0x3a, 0x53, 0x2e, 0x2C, 0xb7, 0xDF, 0xa5, - 0x27, 0x5e, 0xED, 0x36, 0x98, 0x43, 0x63, 0x71, 0xcc, 0x9f}, - "BTU ", - 18}, - {{0xE5, 0xf8, 0x67, 0xdE, 0x1E, 0xA8, 0x13, 0x46, 0xdf, 0x51, - 0x81, 0xb8, 0xb4, 0x8D, 0xD6, 0xB0, 0xBB, 0x33, 0x57, 0xB0}, - "BTZ ", - 18}, - {{0xca, 0x3c, 0x18, 0xa6, 0x5b, 0x80, 0x2e, 0xc2, 0x67, 0xf8, - 0xf4, 0x80, 0x25, 0x45, 0xe7, 0xf5, 0x3d, 0x24, 0xc7, 0x5e}, - "BUC ", - 18}, - {{0xbd, 0x16, 0x8c, 0xbf, 0x9d, 0x3a, 0x37, 0x5b, 0x38, 0xdc, - 0x51, 0xa2, 0x02, 0xb5, 0xe8, 0xa4, 0xe5, 0x20, 0x69, 0xed}, - "BWX ", - 18}, - {{0x43, 0x75, 0xe7, 0xad, 0x8a, 0x01, 0xb8, 0xec, 0x3e, 0xd0, - 0x41, 0x39, 0x9f, 0x62, 0xd9, 0xcd, 0x12, 0x0e, 0x00, 0x63}, - "BZ ", - 18}, - {{0xe1, 0xae, 0xe9, 0x84, 0x95, 0x36, 0x5f, 0xc1, 0x79, 0x69, - 0x9c, 0x1b, 0xb3, 0xe7, 0x61, 0xfa, 0x71, 0x6b, 0xee, 0x62}, - "BZNT ", - 18}, - {{0x38, 0x39, 0xd8, 0xba, 0x31, 0x27, 0x51, 0xaa, 0x02, 0x48, - 0xfe, 0xd6, 0xa8, 0xba, 0xcb, 0x84, 0x30, 0x8e, 0x20, 0xed}, - "Bez ", - 18}, - {{0x26, 0xE7, 0x53, 0x07, 0xFc, 0x0C, 0x02, 0x14, 0x72, 0xfE, - 0xb8, 0xF7, 0x27, 0x83, 0x95, 0x31, 0xF1, 0x12, 0xf3, 0x17}, - "C20 ", - 18}, - {{0xd4, 0x2d, 0xeb, 0xE4, 0xeD, 0xc9, 0x2B, 0xd5, 0xa3, 0xFB, - 0xb4, 0x24, 0x3e, 0x1e, 0xcC, 0xf6, 0xd6, 0x3A, 0x4A, 0x5d}, - "C8 ", - 18}, - {{0x7d, 0x4b, 0x8C, 0xce, 0x05, 0x91, 0xC9, 0x04, 0x4a, 0x22, - 0xee, 0x54, 0x35, 0x33, 0xb7, 0x2E, 0x97, 0x6E, 0x36, 0xC3}, - "CAG ", - 18}, - {{0x1d, 0x46, 0x24, 0x14, 0xfe, 0x14, 0xcf, 0x48, 0x9c, 0x7A, - 0x21, 0xCa, 0xC7, 0x85, 0x09, 0xf4, 0xbF, 0x8C, 0xD7, 0xc0}, - "CAN ", - 6}, - {{0x04, 0xf2, 0xe7, 0x22, 0x1f, 0xdb, 0x1b, 0x52, 0xa6, 0x81, - 0x69, 0xb2, 0x57, 0x93, 0xe5, 0x14, 0x78, 0xff, 0x03, 0x29}, - "CAPP ", - 2}, - {{0x42, 0x3e, 0x43, 0x22, 0xcd, 0xda, 0x29, 0x15, 0x6b, 0x49, - 0xa1, 0x7d, 0xfb, 0xd2, 0xac, 0xc4, 0xb2, 0x80, 0x60, 0x0d}, - "CAR ", - 9}, - {{0x4d, 0x9e, 0x23, 0xa3, 0x84, 0x2f, 0xe7, 0xeb, 0x76, 0x82, - 0xb9, 0x72, 0x5c, 0xf6, 0xc5, 0x07, 0xc4, 0x24, 0xa4, 0x1b}, - "Carblock ", - 18}, - {{0xa5, 0x17, 0xa4, 0x6b, 0xaa, 0xd6, 0xb0, 0x54, 0xa7, 0x6b, - 0xd1, 0x9c, 0x46, 0x84, 0x4f, 0x71, 0x7f, 0xe6, 0x9f, 0xea}, - "CARB ", - 8}, - {{0x95, 0x4b, 0x89, 0x07, 0x04, 0x69, 0x3a, 0xf2, 0x42, 0x61, - 0x3e, 0xde, 0xf1, 0xb6, 0x03, 0x82, 0x5a, 0xfc, 0xd7, 0x08}, - "CARD ", - 18}, - {{0xbf, 0x18, 0xf2, 0x46, 0xb9, 0x30, 0x1f, 0x23, 0x1e, 0x95, - 0x61, 0xb3, 0x5a, 0x38, 0x79, 0x76, 0x9b, 0xb4, 0x63, 0x75}, - "CARE ", - 18}, - {{0xe8, 0x78, 0x0B, 0x48, 0xbd, 0xb0, 0x5F, 0x92, 0x86, 0x97, - 0xA5, 0xe8, 0x15, 0x5f, 0x67, 0x2E, 0xD9, 0x14, 0x62, 0xF7}, - "CAS ", - 18}, - {{0x12, 0x34, 0x56, 0x74, 0x61, 0xd3, 0xf8, 0xdb, 0x74, 0x96, - 0x58, 0x17, 0x74, 0xbd, 0x86, 0x9c, 0x83, 0xd5, 0x1c, 0x93}, - "BitClv ", - 18}, - {{0x56, 0xba, 0x2E, 0xe7, 0x89, 0x04, 0x61, 0xf4, 0x63, 0xF7, - 0xbe, 0x02, 0xaA, 0xC3, 0x09, 0x9f, 0x6d, 0x58, 0x11, 0xA8}, - "Blockcat ", - 18}, - {{0x68, 0xe1, 0x4b, 0xb5, 0xA4, 0x5B, 0x96, 0x81, 0x32, 0x7E, - 0x16, 0xE5, 0x28, 0x08, 0x4B, 0x9d, 0x96, 0x2C, 0x1a, 0x39}, - "BitClvs2 ", - 18}, - {{0x26, 0xdb, 0x54, 0x39, 0xf6, 0x51, 0xca, 0xf4, 0x91, 0xa8, - 0x7d, 0x48, 0x79, 0x9d, 0xa8, 0x1f, 0x19, 0x1b, 0xdb, 0x6b}, - "CBC ", - 8}, - {{0x95, 0xef, 0xd1, 0xfe, 0x60, 0x99, 0xf6, 0x5a, 0x7e, 0xd5, - 0x24, 0xde, 0xf4, 0x87, 0x48, 0x32, 0x21, 0x09, 0x49, 0x47}, - "CBM ", - 18}, - {{0x07, 0x6C, 0x97, 0xe1, 0xc8, 0x69, 0x07, 0x2e, 0xE2, 0x2f, - 0x8c, 0x91, 0x97, 0x8C, 0x99, 0xB4, 0xbc, 0xB0, 0x25, 0x91}, - "CBT ", - 18}, - {{0xc1, 0x66, 0x03, 0x87, 0x05, 0xFF, 0xBA, 0xb3, 0x79, 0x41, - 0x85, 0xb3, 0xa9, 0xD9, 0x25, 0x63, 0x2A, 0x1D, 0xF3, 0x7D}, - "CC3 ", - 18}, - {{0x28, 0x57, 0x7A, 0x6d, 0x31, 0x55, 0x9b, 0xd2, 0x65, 0xCe, - 0x3A, 0xDB, 0x62, 0xd0, 0x45, 0x85, 0x50, 0xF7, 0xb8, 0xa7}, - "CrashCs ", - 18}, - {{0xbe, 0x11, 0xee, 0xb1, 0x86, 0xe6, 0x24, 0xb8, 0xf2, 0x6a, - 0x50, 0x45, 0x57, 0x5a, 0x13, 0x40, 0xe4, 0x05, 0x45, 0x52}, - "CCC ico ", - 18}, - {{0x37, 0x89, 0x03, 0xa0, 0x3f, 0xb2, 0xc3, 0xac, 0x76, 0xbb, - 0x52, 0x77, 0x3e, 0x3c, 0xe1, 0x13, 0x40, 0x37, 0x7a, 0x32}, - "CCCX ", - 18}, - {{0xd3, 0x48, 0xe0, 0x7a, 0x28, 0x06, 0x50, 0x5b, 0x85, 0x61, - 0x23, 0x04, 0x5d, 0x27, 0xae, 0xed, 0x90, 0x92, 0x4b, 0x50}, - "CCLC ", - 8}, - {{0x67, 0x9b, 0xad, 0xc5, 0x51, 0x62, 0x6e, 0x01, 0xb2, 0x3c, - 0xee, 0xce, 0xfb, 0xc9, 0xb8, 0x77, 0xea, 0x18, 0xfc, 0x46}, - "CCO ", - 18}, - {{0x31, 0x5c, 0xe5, 0x9f, 0xaf, 0xd3, 0xa8, 0xd5, 0x62, 0xb7, - 0xec, 0x1c, 0x85, 0x42, 0x38, 0x2d, 0x27, 0x10, 0xb0, 0x6c}, - "CCS ", - 18}, - {{0x33, 0x6f, 0x64, 0x6f, 0x87, 0xd9, 0xf6, 0xbc, 0x6e, 0xd4, - 0x2d, 0xd4, 0x6e, 0x8b, 0x3f, 0xd9, 0xdb, 0xd1, 0x5c, 0x22}, - "CCT ", - 18}, - {{0x8a, 0x95, 0xca, 0x44, 0x8A, 0x52, 0xC0, 0xAD, 0xf0, 0x05, - 0x4b, 0xB3, 0x40, 0x2d, 0xC5, 0xe0, 0x9C, 0xD6, 0xB2, 0x32}, - "CDL ", - 18}, - {{0x17, 0x7d, 0x39, 0xAC, 0x67, 0x6E, 0xD1, 0xC6, 0x7A, 0x2b, - 0x26, 0x8A, 0xD7, 0xF1, 0xE5, 0x88, 0x26, 0xE5, 0xB0, 0xaf}, - "CDT ", - 18}, - {{0x2c, 0xb1, 0x01, 0xd7, 0xda, 0x0e, 0xba, 0xa5, 0x7d, 0x3f, - 0x2f, 0xef, 0x46, 0xd7, 0xff, 0xb7, 0xbb, 0x64, 0x59, 0x2b}, - "CDX C$X ", - 0}, - {{0x6f, 0xFF, 0x38, 0x06, 0xBb, 0xac, 0x52, 0xA2, 0x0e, 0x0d, - 0x79, 0xBC, 0x53, 0x8d, 0x52, 0x7f, 0x6a, 0x22, 0xc9, 0x6b}, - "CDX Net ", - 18}, - {{0xb0, 0x56, 0xc3, 0x8f, 0x6b, 0x7d, 0xc4, 0x06, 0x43, 0x67, - 0x40, 0x3e, 0x26, 0x42, 0x4c, 0xd2, 0xc6, 0x06, 0x55, 0xe1}, - "CEEK ", - 18}, - {{0x11, 0x22, 0xb6, 0xa0, 0xe0, 0x0d, 0xce, 0x05, 0x63, 0x08, - 0x2b, 0x6e, 0x29, 0x53, 0xf3, 0xa9, 0x43, 0x85, 0x5c, 0x1f}, - "CENNZ ", - 18}, - {{0xf6, 0x60, 0xca, 0x1e, 0x22, 0x8e, 0x7b, 0xe1, 0xfa, 0x8b, - 0x4f, 0x55, 0x83, 0x14, 0x5e, 0x31, 0x14, 0x7f, 0xb5, 0x77}, - "CET ", - 18}, - {{0x5d, 0xff, 0x89, 0xa2, 0xca, 0xa4, 0xd7, 0x6b, 0xc2, 0x86, - 0xf7, 0x4d, 0x67, 0xbd, 0x71, 0x8e, 0xb8, 0x34, 0xda, 0x61}, - "CFC ", - 18}, - {{0x12, 0xFE, 0xF5, 0xe5, 0x7b, 0xF4, 0x58, 0x73, 0xCd, 0x9B, - 0x62, 0xE9, 0xDB, 0xd7, 0xBF, 0xb9, 0x9e, 0x32, 0xD7, 0x3e}, - "CFI ", - 18}, - {{0x69, 0x56, 0x98, 0x3f, 0x8b, 0x3c, 0xe1, 0x73, 0xb4, 0xab, - 0x84, 0x36, 0x1a, 0xa0, 0xad, 0x52, 0xf3, 0x8d, 0x93, 0x6f}, - "CFTY ", - 8}, - {{0xf3, 0xdb, 0x75, 0x60, 0xe8, 0x20, 0x83, 0x46, 0x58, 0xb5, - 0x90, 0xc9, 0x62, 0x34, 0xc3, 0x33, 0xcd, 0x3d, 0x5e, 0x5e}, - "CHP ", - 18}, - {{0xba, 0x9d, 0x41, 0x99, 0xfa, 0xb4, 0xf2, 0x6e, 0xfe, 0x35, - 0x51, 0xd4, 0x90, 0xe3, 0x82, 0x14, 0x86, 0xf1, 0x35, 0xba}, - "CHSB ", - 8}, - {{0x14, 0x60, 0xa5, 0x80, 0x96, 0xd8, 0x0a, 0x50, 0xa2, 0xf1, - 0xf9, 0x56, 0xdd, 0xa4, 0x97, 0x61, 0x1f, 0xa4, 0xf1, 0x65}, - "CHX ", - 18}, - {{0x3a, 0xbd, 0xff, 0x32, 0xf7, 0x6b, 0x42, 0xe7, 0x63, 0x5b, - 0xdb, 0x7e, 0x42, 0x5f, 0x02, 0x31, 0xa5, 0xf3, 0xab, 0x17}, - "CJT ", - 18}, - {{0x06, 0x01, 0x2c, 0x8c, 0xf9, 0x7b, 0xea, 0xd5, 0xde, 0xae, - 0x23, 0x70, 0x70, 0xf9, 0x58, 0x7f, 0x8e, 0x7a, 0x26, 0x6d}, - "CK ", - 0}, - {{0xe8, 0x1d, 0x72, 0xd1, 0x4b, 0x15, 0x16, 0xe6, 0x8a, 0xc3, - 0x19, 0x0a, 0x46, 0xc9, 0x33, 0x02, 0xcc, 0x8e, 0xd6, 0x0f}, - "CL ", - 18}, - {{0xb1, 0xc1, 0xcb, 0x8c, 0x7c, 0x19, 0x92, 0xdb, 0xa2, 0x4e, - 0x62, 0x8b, 0xf7, 0xd3, 0x8e, 0x71, 0xda, 0xd4, 0x6a, 0xeb}, - "CLB ", - 18}, - {{0x3d, 0xc9, 0xa4, 0x2f, 0xa7, 0xaf, 0xe5, 0x7b, 0xe0, 0x3c, - 0x58, 0xfd, 0x7f, 0x44, 0x11, 0xb1, 0xe4, 0x66, 0xc5, 0x08}, - "CLL ", - 18}, - {{0x41, 0x62, 0x17, 0x8B, 0x78, 0xD6, 0x98, 0x54, 0x80, 0xA3, - 0x08, 0xB2, 0x19, 0x0E, 0xE5, 0x51, 0x74, 0x60, 0x40, 0x6D}, - "CLN ", - 18}, - {{0x7f, 0xce, 0x28, 0x56, 0x89, 0x9a, 0x68, 0x06, 0xee, 0xef, - 0x70, 0x80, 0x79, 0x85, 0xfc, 0x75, 0x54, 0xc6, 0x63, 0x40}, - "CLP ", - 9}, - {{0x3e, 0xdd, 0x23, 0x5c, 0x3e, 0x84, 0x0c, 0x1f, 0x29, 0x28, - 0x6b, 0x2e, 0x39, 0x37, 0x0a, 0x25, 0x5c, 0x7b, 0x6f, 0xdb}, - "CMBT ", - 8}, - {{0x7e, 0x66, 0x75, 0x25, 0x52, 0x1c, 0xF6, 0x13, 0x52, 0xe2, - 0xE0, 0x1b, 0x50, 0xFa, 0xaa, 0xE7, 0xDf, 0x39, 0x74, 0x9a}, - "CMC ", - 18}, - {{0x47, 0xbc, 0x01, 0x59, 0x77, 0x98, 0xdc, 0xd7, 0x50, 0x6d, - 0xcc, 0xa3, 0x6a, 0xc4, 0x30, 0x2f, 0xc9, 0x3a, 0x8c, 0xfb}, - "CMCT ", - 8}, - {{0xf8, 0x5f, 0xEe, 0xa2, 0xFd, 0xD8, 0x1d, 0x51, 0x17, 0x7F, - 0x6b, 0x8F, 0x35, 0xF0, 0xe6, 0x73, 0x4C, 0xe4, 0x5F, 0x5F}, - "CMT ", - 18}, - {{0xEB, 0xf2, 0xF9, 0xE8, 0xDe, 0x96, 0x0f, 0x64, 0xec, 0x0f, - 0xDC, 0xDa, 0x6C, 0xb2, 0x82, 0x42, 0x31, 0x33, 0x34, 0x7B}, - "CNB ", - 8}, - {{0xd4, 0xc4, 0x35, 0xf5, 0xb0, 0x9f, 0x85, 0x5c, 0x33, 0x17, - 0xc8, 0x52, 0x4c, 0xb1, 0xf5, 0x86, 0xe4, 0x27, 0x95, 0xfa}, - "CND ", - 18}, - {{0x87, 0x13, 0xd2, 0x66, 0x37, 0xcf, 0x49, 0xe1, 0xb6, 0xb4, - 0xa7, 0xce, 0x57, 0x10, 0x6a, 0xab, 0xc9, 0x32, 0x53, 0x43}, - "CNN ", - 18}, - {{0xB4, 0xb1, 0xD2, 0xC2, 0x17, 0xEC, 0x07, 0x76, 0x58, 0x4C, - 0xE0, 0x8D, 0x3D, 0xD9, 0x8F, 0x90, 0xED, 0xed, 0xA4, 0x4b}, - "CO2 ", - 18}, - {{0x57, 0x4b, 0x36, 0xbc, 0xed, 0x44, 0x33, 0x38, 0x87, 0x5d, - 0x17, 0x1c, 0xc3, 0x77, 0xe6, 0x91, 0xf7, 0xd4, 0xf8, 0x87}, - "CO2Bit ", - 18}, - {{0xb2, 0xf7, 0xeb, 0x1f, 0x2c, 0x37, 0x64, 0x5b, 0xe6, 0x1d, - 0x73, 0x95, 0x30, 0x35, 0x36, 0x0e, 0x76, 0x8d, 0x81, 0xe6}, - "COB ", - 18}, - {{0x31, 0x36, 0xeF, 0x85, 0x15, 0x92, 0xaC, 0xf4, 0x9C, 0xA4, - 0xC8, 0x25, 0x13, 0x1E, 0x36, 0x41, 0x70, 0xFA, 0x32, 0xb3}, - "COFI ", - 18}, - {{0x0c, 0x91, 0xb0, 0x15, 0xab, 0xa6, 0xf7, 0xb4, 0x73, 0x8d, - 0xcd, 0x36, 0xe7, 0x41, 0x01, 0x38, 0xb2, 0x9a, 0xdc, 0x29}, - "COIL ", - 8}, - {{0xeb, 0x54, 0x7e, 0xd1, 0xd8, 0xa3, 0xff, 0x14, 0x61, 0xab, - 0xaa, 0x7f, 0x00, 0x22, 0xfe, 0xd4, 0x83, 0x6e, 0x00, 0xa4}, - "COIN ", - 18}, - {{0xc4, 0xbc, 0xd6, 0x4c, 0xb2, 0x16, 0xd4, 0x9f, 0xd3, 0xc6, - 0x43, 0xa3, 0x27, 0x62, 0xf3, 0x46, 0x26, 0xb4, 0x5a, 0x1a}, - "COSM ", - 18}, - {{0x65, 0x29, 0x2e, 0xea, 0xdf, 0x14, 0x26, 0xcd, 0x2d, 0xf1, - 0xc4, 0x79, 0x3a, 0x3d, 0x75, 0x19, 0xf2, 0x53, 0x91, 0x3b}, - "COSS ", - 18}, - {{0x9e, 0x96, 0x60, 0x44, 0x45, 0xec, 0x19, 0xff, 0xed, 0x9a, - 0x5e, 0x8d, 0xd7, 0xb5, 0x0a, 0x29, 0xc8, 0x99, 0xa1, 0x0c}, - "COSS.io ", - 18}, - {{0xE2, 0xFB, 0x65, 0x29, 0xEF, 0x56, 0x6a, 0x08, 0x0e, 0x6d, - 0x23, 0xdE, 0x0b, 0xd3, 0x51, 0x31, 0x10, 0x87, 0xD5, 0x67}, - "COV ", - 18}, - {{0x0E, 0xbb, 0x61, 0x42, 0x04, 0xE4, 0x7c, 0x09, 0xB6, 0xC3, - 0xFe, 0xB9, 0xAA, 0xeC, 0xad, 0x8E, 0xE0, 0x60, 0xE2, 0x3E}, - "CPAY ", - 0}, - {{0xfA, 0xE4, 0xEe, 0x59, 0xCD, 0xd8, 0x6e, 0x3B, 0xe9, 0xe8, - 0xb9, 0x0b, 0x53, 0xAA, 0x86, 0x63, 0x27, 0xD7, 0xc0, 0x90}, - "CPC ", - 18}, - {{0xb7, 0x87, 0xd4, 0xea, 0xc8, 0x89, 0x97, 0x30, 0xbb, 0x8c, - 0x57, 0xfc, 0x3c, 0x99, 0x8c, 0x49, 0xc5, 0x24, 0x4e, 0xc0}, - "CPEX ", - 8}, - {{0x70, 0x64, 0xaA, 0xb3, 0x9A, 0x0F, 0xcf, 0x72, 0x21, 0xc3, - 0x39, 0x67, 0x19, 0xD0, 0x91, 0x7a, 0x65, 0xE3, 0x55, 0x15}, - "CPOLLO ", - 18}, - {{0x88, 0xd5, 0x0b, 0x46, 0x6b, 0xe5, 0x52, 0x22, 0x01, 0x9d, - 0x71, 0xf9, 0xe8, 0xfa, 0xe1, 0x7f, 0x5f, 0x45, 0xfc, 0xa1}, - "CPT ", - 8}, - {{0xf4, 0x47, 0x45, 0xfb, 0xd4, 0x1f, 0x6a, 0x1b, 0xa1, 0x51, - 0xdf, 0x19, 0x0d, 0xb0, 0x56, 0x4c, 0x5f, 0xcc, 0x44, 0x10}, - "CPY ", - 18}, - {{0x7f, 0x58, 0x5b, 0x91, 0x30, 0xc6, 0x4e, 0x9e, 0x9f, 0x47, - 0x0b, 0x61, 0x8a, 0x7b, 0xad, 0xd0, 0x3d, 0x79, 0xca, 0x7e}, - "CR7 ", - 18}, - {{0xAe, 0xf3, 0x8f, 0xBF, 0xBF, 0x93, 0x2D, 0x1A, 0xeF, 0x3B, - 0x80, 0x8B, 0xc8, 0xfB, 0xd8, 0xCd, 0x8E, 0x1f, 0x8B, 0xC5}, - "CRB ", - 8}, - {{0x2c, 0xf6, 0x18, 0xc1, 0x90, 0x41, 0xd9, 0xdb, 0x33, 0x0d, - 0x82, 0x22, 0xb8, 0x60, 0xa6, 0x24, 0x02, 0x1f, 0x30, 0xfb}, - "CRBT ", - 18}, - {{0xf4, 0x1e, 0x5f, 0xbc, 0x2f, 0x6a, 0xac, 0x20, 0x0d, 0xd8, - 0x61, 0x9e, 0x12, 0x1c, 0xe1, 0xf0, 0x5d, 0x15, 0x00, 0x77}, - "CRC ", - 18}, - {{0x67, 0x2a, 0x1A, 0xD4, 0xf6, 0x67, 0xFB, 0x18, 0xA3, 0x33, - 0xAf, 0x13, 0x66, 0x7a, 0xa0, 0xAf, 0x1F, 0x5b, 0x5b, 0xDD}, - "CRED ", - 18}, - {{0x4e, 0x06, 0x03, 0xe2, 0xa2, 0x7a, 0x30, 0x48, 0x0e, 0x5e, - 0x3a, 0x4f, 0xe5, 0x48, 0xe2, 0x9e, 0xf1, 0x2f, 0x64, 0xbe}, - "CREDO ", - 18}, - {{0xf4, 0x9c, 0xdd, 0x50, 0xad, 0x40, 0x8d, 0x38, 0x7d, 0x61, - 0x1f, 0x88, 0xa6, 0x47, 0x17, 0x9c, 0x3d, 0xe3, 0x49, 0x2b}, - "CRGO ", - 18}, - {{0x92, 0x38, 0xbf, 0xb7, 0x81, 0xa5, 0x5e, 0xac, 0xc3, 0xcf, - 0x05, 0xf7, 0xdf, 0x94, 0x03, 0x8c, 0x19, 0x8c, 0xd9, 0xb9}, - "CRMT ", - 8}, - {{0x80, 0xa7, 0xe0, 0x48, 0xf3, 0x7a, 0x50, 0x50, 0x03, 0x51, - 0xc2, 0x04, 0xcb, 0x40, 0x77, 0x66, 0xfa, 0x3b, 0xae, 0x7f}, - "CRPT ", - 18}, - {{0xF0, 0xda, 0x11, 0x86, 0xa4, 0x97, 0x72, 0x26, 0xb9, 0x13, - 0x5d, 0x06, 0x13, 0xee, 0x72, 0xe2, 0x29, 0xEC, 0x3F, 0x4d}, - "CRT ", - 18}, - {{0x46, 0xb9, 0xad, 0x94, 0x4d, 0x10, 0x59, 0x45, 0x0d, 0xa1, - 0x16, 0x35, 0x11, 0x06, 0x9c, 0x71, 0x8f, 0x69, 0x9d, 0x31}, - "CS ", - 6}, - {{0x29, 0xd7, 0x52, 0x77, 0xac, 0x7f, 0x03, 0x35, 0xb2, 0x16, - 0x5d, 0x08, 0x95, 0xe8, 0x72, 0x5c, 0xbf, 0x65, 0x8d, 0x73}, - "CSNO ", - 8}, - {{0xbb, 0x49, 0xa5, 0x1e, 0xe5, 0xa6, 0x6c, 0xa3, 0xa8, 0xcb, - 0xe5, 0x29, 0x37, 0x9b, 0xa4, 0x4b, 0xa6, 0x7e, 0x67, 0x71}, - "CST ", - 18}, - {{0x45, 0x45, 0x75, 0x0F, 0x39, 0xaF, 0x6B, 0xe4, 0xF2, 0x37, - 0xB6, 0x86, 0x9D, 0x4E, 0xcc, 0xA9, 0x28, 0xFd, 0x5A, 0x85}, - "CTF ", - 18}, - {{0xc8, 0x7c, 0x5d, 0xd8, 0x6a, 0x3d, 0x56, 0x7f, 0xf2, 0x87, - 0x01, 0x88, 0x6f, 0xb0, 0x74, 0x5a, 0xaa, 0x89, 0x8d, 0xa4}, - "CTG ", - 18}, - {{0x9e, 0x7d, 0x29, 0xbd, 0x49, 0x9b, 0x6c, 0x7d, 0xa2, 0xa5, - 0xb2, 0xea, 0xfc, 0xf4, 0xa3, 0x9d, 0x3b, 0xd8, 0x45, 0xd1}, - "CTGC ", - 18}, - {{0xbf, 0x4c, 0xfd, 0x7d, 0x1e, 0xde, 0xee, 0xa5, 0xf6, 0x60, - 0x08, 0x27, 0x41, 0x1b, 0x41, 0xa2, 0x1e, 0xb0, 0x8a, 0xbd}, - "CTL ", - 2}, - {{0x96, 0xA6, 0x56, 0x09, 0xa7, 0xB8, 0x4E, 0x88, 0x42, 0x73, - 0x2D, 0xEB, 0x08, 0xf5, 0x6C, 0x3E, 0x21, 0xaC, 0x6f, 0x8a}, - "CTR ", - 18}, - {{0xE3, 0xFa, 0x17, 0x7A, 0xce, 0xcf, 0xB8, 0x67, 0x21, 0xCf, - 0x6f, 0x9f, 0x42, 0x06, 0xbd, 0x3B, 0xd6, 0x72, 0xD7, 0xd5}, - "CTT ", - 18}, - {{0x66, 0x2a, 0xBc, 0xAd, 0x0b, 0x7f, 0x34, 0x5A, 0xB7, 0xFf, - 0xB1, 0xb1, 0xfb, 0xb9, 0xDf, 0x78, 0x94, 0xf1, 0x8e, 0x66}, - "CTX ", - 18}, - {{0xea, 0x11, 0x75, 0x5a, 0xe4, 0x1d, 0x88, 0x9c, 0xee, 0xc3, - 0x9a, 0x63, 0xe6, 0xff, 0x75, 0xa0, 0x2b, 0xc1, 0xc0, 0x0d}, - "CTXC ", - 18}, - {{0xdA, 0x6c, 0xb5, 0x8A, 0x0D, 0x0C, 0x01, 0x61, 0x0a, 0x29, - 0xc5, 0xA6, 0x5c, 0x30, 0x3e, 0x13, 0xe8, 0x85, 0x88, 0x7C}, - "cV ", - 18}, - {{0x41, 0xe5, 0x56, 0x00, 0x54, 0x82, 0x4e, 0xa6, 0xb0, 0x73, - 0x2e, 0x65, 0x6e, 0x3a, 0xd6, 0x4e, 0x20, 0xe9, 0x4e, 0x45}, - "CVC ", - 8}, - {{0xbe, 0x42, 0x8c, 0x38, 0x67, 0xf0, 0x5d, 0xea, 0x2a, 0x89, - 0xfc, 0x76, 0xa1, 0x02, 0xb5, 0x44, 0xea, 0xc7, 0xf7, 0x72}, - "CVT ", - 18}, - {{0x21, 0x34, 0x05, 0x7c, 0x0b, 0x46, 0x1f, 0x89, 0x8d, 0x37, - 0x5c, 0xea, 0xd6, 0x52, 0xac, 0xae, 0x62, 0xb5, 0x95, 0x41}, - "CXC ", - 18}, - {{0xb6, 0xEE, 0x96, 0x68, 0x77, 0x1a, 0x79, 0xbe, 0x79, 0x67, - 0xee, 0x29, 0xa6, 0x3D, 0x41, 0x84, 0xF8, 0x09, 0x71, 0x43}, - "CXO ", - 18}, - {{0x3f, 0x06, 0xB5, 0xD7, 0x84, 0x06, 0xcD, 0x97, 0xbd, 0xf1, - 0x0f, 0x5C, 0x42, 0x0B, 0x24, 0x1D, 0x32, 0x75, 0x9c, 0x80}, - "CYFM ", - 18}, - {{0x78, 0xc2, 0x92, 0xd1, 0x44, 0x5e, 0x6b, 0x95, 0x58, 0xbf, - 0x42, 0xe8, 0xbc, 0x36, 0x92, 0x71, 0xde, 0xd0, 0x62, 0xea}, - "CYMT ", - 8}, - {{0x02, 0x23, 0xfc, 0x70, 0x57, 0x42, 0x14, 0xf6, 0x58, 0x13, - 0xfe, 0x33, 0x6d, 0x87, 0x0a, 0xc4, 0x7e, 0x14, 0x7f, 0xae}, - "CZR ", - 18}, - {{0xE4, 0xc9, 0x4d, 0x45, 0xf7, 0xAe, 0xf7, 0x01, 0x8a, 0x5D, - 0x66, 0xf4, 0x4a, 0xF7, 0x80, 0xec, 0x60, 0x23, 0x37, 0x8e}, - "CrCarbon ", - 6}, - {{0x05, 0xc3, 0x61, 0x7c, 0xbf, 0x13, 0x04, 0xb9, 0x26, 0x0a, - 0xa6, 0x1e, 0xc9, 0x60, 0xf1, 0x15, 0xd6, 0x7b, 0xec, 0xea}, - "Cubrix ", - 18}, - {{0xda, 0xb0, 0xC3, 0x1B, 0xF3, 0x4C, 0x89, 0x7F, 0xb0, 0xFe, - 0x90, 0xD1, 0x2E, 0xC9, 0x40, 0x1c, 0xaf, 0x5c, 0x36, 0xEc}, - "DAB ", - 0}, - {{0xa3, 0x11, 0x08, 0xe5, 0xba, 0xb5, 0x49, 0x45, 0x60, 0xdb, - 0x34, 0xc9, 0x54, 0x92, 0x65, 0x8a, 0xf2, 0x39, 0x35, 0x7c}, - "DACS ", - 18}, - {{0xfb, 0x2f, 0x26, 0xf2, 0x66, 0xfb, 0x28, 0x05, 0xa3, 0x87, - 0x23, 0x0f, 0x2a, 0xa0, 0xa3, 0x31, 0xb4, 0xd9, 0x6f, 0xba}, - "DADI ", - 18}, - {{0x89, 0xd2, 0x4A, 0x6b, 0x4C, 0xcB, 0x1B, 0x6f, 0xAA, 0x26, - 0x25, 0xfE, 0x56, 0x2b, 0xDD, 0x9a, 0x23, 0x26, 0x03, 0x59}, - "DAI ", - 18}, - {{0x07, 0xd9, 0xe4, 0x9e, 0xa4, 0x02, 0x19, 0x4b, 0xf4, 0x8a, - 0x82, 0x76, 0xda, 0xfb, 0x16, 0xe4, 0xed, 0x63, 0x33, 0x17}, - "DALC ", - 8}, - {{0x9B, 0x70, 0x74, 0x0e, 0x70, 0x8a, 0x08, 0x3C, 0x6f, 0xF3, - 0x8D, 0xf5, 0x22, 0x97, 0x02, 0x0f, 0x5D, 0xfA, 0xa5, 0xEE}, - "DAN ", - 10}, - {{0xBB, 0x9b, 0xc2, 0x44, 0xD7, 0x98, 0x12, 0x3f, 0xDe, 0x78, - 0x3f, 0xCc, 0x1C, 0x72, 0xd3, 0xBb, 0x8C, 0x18, 0x94, 0x13}, - "DAO ", - 16}, - {{0x81, 0xc9, 0x15, 0x1d, 0xe0, 0xc8, 0xba, 0xfc, 0xd3, 0x25, - 0xa5, 0x7e, 0x3d, 0xb5, 0xa5, 0xdf, 0x1c, 0xeb, 0xf7, 0x9c}, - "DAT ", - 18}, - {{0x1b, 0x5f, 0x21, 0xee, 0x98, 0xee, 0xd4, 0x8d, 0x29, 0x2e, - 0x8e, 0x2d, 0x3e, 0xd8, 0x2b, 0x40, 0xa9, 0x72, 0x8a, 0x22}, - "DATABrkr ", - 18}, - {{0x0c, 0xf0, 0xee, 0x63, 0x78, 0x8a, 0x08, 0x49, 0xfe, 0x52, - 0x97, 0xf3, 0x40, 0x7f, 0x70, 0x1e, 0x12, 0x2c, 0xc0, 0x23}, - "DATACoin ", - 18}, - {{0xab, 0xbb, 0xb6, 0x44, 0x7b, 0x68, 0xff, 0xd6, 0x14, 0x1d, - 0xa7, 0x7c, 0x18, 0xc7, 0xb5, 0x87, 0x6e, 0xd6, 0xc5, 0xab}, - "DATx ", - 18}, - {{0xd8, 0x2D, 0xf0, 0xAB, 0xD3, 0xf5, 0x14, 0x25, 0xEb, 0x15, - 0xef, 0x75, 0x80, 0xfD, 0xA5, 0x57, 0x27, 0x87, 0x5f, 0x14}, - "DAV ", - 18}, - {{0x0b, 0x4b, 0xdc, 0x47, 0x87, 0x91, 0x89, 0x72, 0x74, 0x65, - 0x2d, 0xc1, 0x5e, 0xf5, 0xc1, 0x35, 0xca, 0xe6, 0x1e, 0x60}, - "DAX ", - 18}, - {{0x61, 0x72, 0x5f, 0x3d, 0xb4, 0x00, 0x4a, 0xfe, 0x01, 0x47, - 0x45, 0xb2, 0x1d, 0xab, 0x1e, 0x16, 0x77, 0xcc, 0x32, 0x8b}, - "DAXT ", - 18}, - {{0x9b, 0x68, 0xbf, 0xae, 0x21, 0xdf, 0x5a, 0x51, 0x09, 0x31, - 0xa2, 0x62, 0xce, 0xcf, 0x63, 0xf4, 0x13, 0x38, 0xf2, 0x64}, - "DBET ", - 18}, - {{0x38, 0x6F, 0xaa, 0x47, 0x03, 0xa3, 0x4a, 0x7F, 0xdb, 0x19, - 0xBe, 0xc2, 0xe1, 0x4F, 0xd4, 0x27, 0xC9, 0x63, 0x84, 0x16}, - "DCA ", - 18}, - {{0xff, 0xa9, 0x3a, 0xac, 0xf4, 0x92, 0x97, 0xd5, 0x1e, 0x21, - 0x18, 0x17, 0x45, 0x28, 0x39, 0x05, 0x2f, 0xdf, 0xb9, 0x61}, - "DCC ", - 18}, - {{0x39, 0x9A, 0x0e, 0x6F, 0xbE, 0xb3, 0xd7, 0x4c, 0x85, 0x35, - 0x74, 0x39, 0xf4, 0xc8, 0xAe, 0xD9, 0x67, 0x8a, 0x5c, 0xbF}, - "DCL ", - 3}, - {{0x08, 0xd3, 0x2b, 0x0d, 0xa6, 0x3e, 0x2C, 0x3b, 0xcF, 0x80, - 0x19, 0xc9, 0xc5, 0xd8, 0x49, 0xd7, 0xa9, 0xd7, 0x91, 0xe6}, - "DCN ", - 0}, - {{0xcC, 0x4e, 0xF9, 0xEE, 0xAF, 0x65, 0x6a, 0xC1, 0xa2, 0xAb, - 0x88, 0x67, 0x43, 0xE9, 0x8e, 0x97, 0xE0, 0x90, 0xed, 0x38}, - "DDF ", - 18}, - {{0x15, 0x12, 0x02, 0xC9, 0xc1, 0x8e, 0x49, 0x56, 0x56, 0xf3, - 0x72, 0x28, 0x1F, 0x49, 0x3E, 0xB7, 0x69, 0x89, 0x61, 0xD5}, - "DEB ", - 18}, - {{0xde, 0x1e, 0x0a, 0xe6, 0x10, 0x1b, 0x46, 0x52, 0x0c, 0xf6, - 0x6f, 0xdc, 0x0b, 0x10, 0x59, 0xc5, 0xcc, 0x3d, 0x10, 0x6c}, - "DELTA ", - 8}, - {{0x35, 0x97, 0xbf, 0xd5, 0x33, 0xa9, 0x9c, 0x9a, 0xa0, 0x83, - 0x58, 0x7b, 0x07, 0x44, 0x34, 0xe6, 0x1e, 0xb0, 0xa2, 0x58}, - "DENT ", - 8}, - {{0x7c, 0xF2, 0x71, 0x96, 0x6F, 0x36, 0x34, 0x3B, 0xf0, 0x15, - 0x0F, 0x25, 0xE5, 0x36, 0x4f, 0x79, 0x61, 0xc5, 0x82, 0x01}, - "DEPO ", - 0}, - {{0x89, 0xcb, 0xea, 0xc5, 0xe8, 0xa1, 0x3f, 0x0e, 0xbb, 0x4c, - 0x74, 0xfa, 0xdf, 0xc6, 0x9b, 0xe8, 0x1a, 0x50, 0x11, 0x06}, - "DeposNet ", - 18}, - {{0xdd, 0x94, 0xDe, 0x9c, 0xFE, 0x06, 0x35, 0x77, 0x05, 0x1A, - 0x5e, 0xb7, 0x46, 0x5D, 0x08, 0x31, 0x7d, 0x88, 0x08, 0xB6}, - "Devcon2 ", - 0}, - {{0x20, 0xe9, 0x48, 0x67, 0x79, 0x4d, 0xba, 0x03, 0x0e, 0xe2, - 0x87, 0xf1, 0x40, 0x6e, 0x10, 0x0d, 0x03, 0xc8, 0x4c, 0xd3}, - "DEW ", - 18}, - {{0x49, 0x7b, 0xAE, 0xF2, 0x94, 0xc1, 0x1a, 0x5f, 0x0f, 0x5B, - 0xea, 0x3f, 0x2A, 0xdB, 0x30, 0x73, 0xDB, 0x44, 0x8B, 0x56}, - "DEX ", - 18}, - {{0xE0, 0xB7, 0x92, 0x7c, 0x4a, 0xF2, 0x37, 0x65, 0xCb, 0x51, - 0x31, 0x4A, 0x0E, 0x05, 0x21, 0xA9, 0x64, 0x5F, 0x0E, 0x2A}, - "DGD ", - 9}, - {{0xf6, 0xcF, 0xe5, 0x3d, 0x6F, 0xEb, 0xaE, 0xEA, 0x05, 0x1f, - 0x40, 0x0f, 0xf5, 0xfc, 0x14, 0xF0, 0xcB, 0xBD, 0xac, 0xA1}, - "DGPT ", - 18}, - {{0x6a, 0xED, 0xbF, 0x8d, 0xFF, 0x31, 0x43, 0x72, 0x20, 0xdF, - 0x35, 0x19, 0x50, 0xBa, 0x2a, 0x33, 0x62, 0x16, 0x8d, 0x1b}, - "DGS ", - 8}, - {{0x1c, 0x83, 0x50, 0x14, 0x78, 0xf1, 0x32, 0x09, 0x77, 0x04, - 0x70, 0x08, 0x49, 0x6d, 0xac, 0xbd, 0x60, 0xbb, 0x15, 0xef}, - "DGTX ", - 18}, - {{0x4f, 0x3a, 0xfe, 0xc4, 0xe5, 0xa3, 0xf2, 0xa6, 0xa1, 0xa4, - 0x11, 0xde, 0xf7, 0xd7, 0xdf, 0xe5, 0x0e, 0xe0, 0x57, 0xbf}, - "DGX ", - 9}, - {{0x55, 0xb9, 0xa1, 0x1c, 0x2e, 0x83, 0x51, 0xb4, 0xFf, 0xc7, - 0xb1, 0x15, 0x61, 0x14, 0x8b, 0xfa, 0xC9, 0x97, 0x78, 0x55}, - "DGX1 ", - 9}, - {{0x2e, 0x07, 0x1D, 0x29, 0x66, 0xAa, 0x7D, 0x8d, 0xEC, 0xB1, - 0x00, 0x58, 0x85, 0xbA, 0x19, 0x77, 0xD6, 0x03, 0x8A, 0x65}, - "DICE ", - 16}, - {{0xc7, 0x19, 0xd0, 0x10, 0xB6, 0x3E, 0x5b, 0xbF, 0x2C, 0x05, - 0x51, 0x87, 0x2C, 0xD5, 0x31, 0x6E, 0xD2, 0x6A, 0xcD, 0x83}, - "DecInsur ", - 18}, - {{0xf1, 0x49, 0x22, 0x00, 0x1a, 0x2f, 0xb8, 0x54, 0x1a, 0x43, - 0x39, 0x05, 0x43, 0x7a, 0xe9, 0x54, 0x41, 0x9c, 0x24, 0x39}, - "DIT ", - 8}, - {{0x13, 0xf1, 0x1C, 0x99, 0x05, 0xA0, 0x8c, 0xa7, 0x6e, 0x3e, - 0x85, 0x3b, 0xE6, 0x3D, 0x4f, 0x09, 0x44, 0x32, 0x6C, 0x72}, - "DIVX ", - 18}, - {{0x07, 0xe3, 0xc7, 0x06, 0x53, 0x54, 0x8b, 0x04, 0xf0, 0xa7, - 0x59, 0x70, 0xc1, 0xf8, 0x1b, 0x4c, 0xbb, 0xfb, 0x60, 0x6f}, - "DLT ", - 18}, - {{0x2c, 0xcb, 0xFF, 0x3A, 0x04, 0x2c, 0x68, 0x71, 0x6E, 0xd2, - 0xa2, 0xCb, 0x0c, 0x54, 0x4A, 0x9f, 0x1d, 0x19, 0x35, 0xE1}, - "DMT ", - 8}, - {{0x82, 0xb0, 0xe5, 0x04, 0x78, 0xee, 0xaf, 0xde, 0x39, 0x2d, - 0x45, 0xd1, 0x25, 0x9e, 0xd1, 0x07, 0x1b, 0x6f, 0xda, 0x81}, - "DNA ", - 18}, - {{0x0a, 0xbd, 0xac, 0xe7, 0x0d, 0x37, 0x90, 0x23, 0x5a, 0xf4, - 0x48, 0xc8, 0x85, 0x47, 0x60, 0x3b, 0x94, 0x56, 0x04, 0xea}, - "DNT ", - 18}, - {{0xE4, 0x3E, 0x20, 0x41, 0xdc, 0x37, 0x86, 0xe1, 0x66, 0x96, - 0x1e, 0xD9, 0x48, 0x4a, 0x55, 0x39, 0x03, 0x3d, 0x10, 0xfB}, - "DNX ", - 18}, - {{0xe5, 0xda, 0xda, 0x80, 0xaa, 0x64, 0x77, 0xe8, 0x5d, 0x09, - 0x74, 0x7f, 0x28, 0x42, 0xf7, 0x99, 0x3d, 0x0d, 0xf7, 0x1c}, - "DOCK ", - 18}, - {{0x90, 0x6b, 0x3f, 0x8b, 0x78, 0x45, 0x84, 0x01, 0x88, 0xea, - 0xb5, 0x3c, 0x3f, 0x5a, 0xd3, 0x48, 0xa7, 0x87, 0x75, 0x2f}, - "DOR ", - 15}, - {{0xac, 0x32, 0x11, 0xa5, 0x02, 0x54, 0x14, 0xaf, 0x28, 0x66, - 0xff, 0x09, 0xc2, 0x3f, 0xc1, 0x8b, 0xc9, 0x7e, 0x79, 0xb1}, - "DOV ", - 18}, - {{0x76, 0x97, 0x4c, 0x7b, 0x79, 0xdc, 0x8a, 0x6a, 0x10, 0x9f, - 0xd7, 0x1f, 0xd7, 0xce, 0xb9, 0xe4, 0x0e, 0xff, 0x53, 0x82}, - "DOW ", - 18}, - {{0x01, 0xb3, 0xEc, 0x4a, 0xAe, 0x1B, 0x87, 0x29, 0x52, 0x9B, - 0xEB, 0x49, 0x65, 0xF2, 0x7d, 0x00, 0x87, 0x88, 0xB0, 0xEB}, - "DPP ", - 18}, - {{0x41, 0x9c, 0x4d, 0xb4, 0xb9, 0xe2, 0x5d, 0x6d, 0xb2, 0xad, - 0x96, 0x91, 0xcc, 0xb8, 0x32, 0xc8, 0xd9, 0xfd, 0xa0, 0x5e}, - "DRGN ", - 18}, - {{0x46, 0x72, 0xba, 0xd5, 0x27, 0x10, 0x74, 0x71, 0xcb, 0x50, - 0x67, 0xa8, 0x87, 0xf4, 0x65, 0x6d, 0x58, 0x5a, 0x8a, 0x31}, - "DROPil ", - 18}, - {{0x3c, 0x75, 0x22, 0x65, 0x55, 0xFC, 0x49, 0x61, 0x68, 0xd4, - 0x8B, 0x88, 0xDF, 0x83, 0xB9, 0x5F, 0x16, 0x77, 0x1F, 0x37}, - "DROPlex ", - 0}, - {{0x62, 0x1d, 0x78, 0xf2, 0xef, 0x2f, 0xd9, 0x37, 0xbf, 0xca, - 0x69, 0x6c, 0xab, 0xaf, 0x9a, 0x77, 0x9f, 0x59, 0xb3, 0xed}, - "DRP ", - 2}, - {{0x27, 0x99, 0xd9, 0x0c, 0x6d, 0x44, 0xcb, 0x9a, 0xa5, 0xfb, - 0xc3, 0x77, 0x17, 0x7f, 0x16, 0xc3, 0x3e, 0x05, 0x6b, 0x82}, - "DripCoin ", - 0}, - {{0xe3, 0x0e, 0x02, 0xf0, 0x49, 0x95, 0x7e, 0x2a, 0x59, 0x07, - 0x58, 0x9e, 0x06, 0xba, 0x64, 0x6f, 0xb2, 0xc3, 0x21, 0xba}, - "DRPU ", - 8}, - {{0x9a, 0xf4, 0xf2, 0x69, 0x41, 0x67, 0x7c, 0x70, 0x6c, 0xfe, - 0xcf, 0x6d, 0x33, 0x79, 0xff, 0x01, 0xbb, 0x85, 0xd5, 0xab}, - "DRT ", - 8}, - {{0x62, 0xd4, 0xc0, 0x46, 0x44, 0x31, 0x4f, 0x35, 0x86, 0x8b, - 0xa4, 0xc6, 0x5c, 0xc2, 0x7a, 0x77, 0x68, 0x1d, 0xe7, 0xa9}, - "DRVH ", - 18}, - {{0x03, 0xe3, 0xf0, 0xc2, 0x59, 0x65, 0xf1, 0x3D, 0xbb, 0xC5, - 0x82, 0x46, 0x73, 0x8C, 0x18, 0x3E, 0x27, 0xb2, 0x6a, 0x56}, - "DSCP ", - 18}, - {{0x5a, 0xdc, 0x96, 0x1D, 0x6A, 0xC3, 0xf7, 0x06, 0x2D, 0x2e, - 0xA4, 0x5F, 0xEF, 0xB8, 0xD8, 0x16, 0x7d, 0x44, 0xb1, 0x90}, - "DTH ", - 18}, - {{0xd2, 0x34, 0xbf, 0x24, 0x10, 0xa0, 0x00, 0x9d, 0xf9, 0xc3, - 0xc6, 0x3b, 0x61, 0x0c, 0x09, 0x73, 0x8f, 0x18, 0xcc, 0xd7}, - "DTR ", - 8}, - {{0xc2, 0x04, 0x64, 0xe0, 0xc3, 0x73, 0x48, 0x6d, 0x2b, 0x33, - 0x35, 0x57, 0x6e, 0x83, 0xa2, 0x18, 0xb1, 0x61, 0x8a, 0x5e}, - "DTRC ", - 18}, - {{0xf9, 0xF7, 0xc2, 0x9C, 0xFd, 0xf1, 0x9F, 0xCf, 0x1f, 0x2A, - 0xA6, 0xB8, 0x4a, 0xA3, 0x67, 0xBc, 0xf1, 0xbD, 0x16, 0x76}, - "DTT ", - 18}, - {{0x76, 0x5f, 0x0c, 0x16, 0xd1, 0xdd, 0xc2, 0x79, 0x29, 0x5c, - 0x1a, 0x7c, 0x24, 0xb0, 0x88, 0x3f, 0x62, 0xd3, 0x3f, 0x75}, - "DTX ", - 18}, - {{0x82, 0xfd, 0xed, 0xfB, 0x76, 0x35, 0x44, 0x1a, 0xA5, 0xA9, - 0x27, 0x91, 0xD0, 0x01, 0xfA, 0x73, 0x88, 0xda, 0x80, 0x25}, - "DTx ", - 18}, - {{0xEd, 0x7f, 0xEA, 0x78, 0xC3, 0x93, 0xcF, 0x7B, 0x17, 0xB1, - 0x52, 0xA8, 0xc2, 0xD0, 0xCD, 0x97, 0xaC, 0x31, 0x79, 0x0B}, - "DUBI ", - 18}, - {{0x8d, 0xb5, 0x4c, 0xa5, 0x69, 0xd3, 0x01, 0x9a, 0x2b, 0xa1, - 0x26, 0xd0, 0x3c, 0x37, 0xc4, 0x4b, 0x5e, 0xf8, 0x1e, 0xf6}, - "DXT ", - 8}, - {{0xce, 0x5c, 0x60, 0x3c, 0x78, 0xd0, 0x47, 0xef, 0x43, 0x03, - 0x2e, 0x96, 0xb5, 0xb7, 0x85, 0x32, 0x4f, 0x75, 0x3a, 0x4f}, - "E4ROW ", - 2}, - {{0x99, 0x4f, 0x0d, 0xff, 0xdb, 0xae, 0x0b, 0xbf, 0x09, 0xb6, - 0x52, 0xd6, 0xf1, 0x1a, 0x49, 0x3f, 0xd3, 0x3f, 0x42, 0xb9}, - "EAGLE ", - 18}, - {{0x90, 0x0b, 0x44, 0x49, 0x23, 0x6a, 0x7b, 0xb2, 0x6b, 0x28, - 0x66, 0x01, 0xdd, 0x14, 0xd2, 0xbd, 0xe7, 0xa6, 0xac, 0x6c}, - "EARTH ", - 8}, - {{0x31, 0xf3, 0xd9, 0xd1, 0xbe, 0xce, 0x0c, 0x03, 0x3f, 0xf7, - 0x8f, 0xa6, 0xda, 0x60, 0xa6, 0x04, 0x8f, 0x3e, 0x13, 0xc5}, - "EBC ", - 18}, - {{0xaf, 0xc3, 0x97, 0x88, 0xc5, 0x1f, 0x0c, 0x1f, 0xf7, 0xb5, - 0x53, 0x17, 0xf3, 0xe7, 0x02, 0x99, 0xe5, 0x21, 0xff, 0xf6}, - "eBCH ", - 8}, - {{0xa5, 0x78, 0xac, 0xc0, 0xcb, 0x78, 0x75, 0x78, 0x1b, 0x78, - 0x80, 0x90, 0x3f, 0x45, 0x94, 0xd1, 0x3c, 0xfa, 0x8b, 0x98}, - "ECN ", - 2}, - {{0x17, 0xF9, 0x34, 0x75, 0xd2, 0xA9, 0x78, 0xf5, 0x27, 0xc3, - 0xf7, 0xc4, 0x4a, 0xBf, 0x44, 0xAd, 0xfB, 0xa6, 0x0D, 0x5C}, - "ECO2 ", - 2}, - {{0x17, 0x1d, 0x75, 0x0d, 0x42, 0xd6, 0x61, 0xb6, 0x2c, 0x27, - 0x7a, 0x6b, 0x48, 0x6a, 0xdb, 0x82, 0x34, 0x8c, 0x3e, 0xca}, - "ECOM ", - 18}, - {{0x88, 0x69, 0xb1, 0xf9, 0xbc, 0x8b, 0x24, 0x6a, 0x4d, 0x72, - 0x20, 0xf8, 0x34, 0xe5, 0x6d, 0xdf, 0xdd, 0x82, 0x55, 0xe7}, - "ECP ", - 18}, - {{0xfa, 0x1d, 0xe2, 0xee, 0x97, 0xe4, 0xc1, 0x0c, 0x94, 0xc9, - 0x1c, 0xb2, 0xb5, 0x06, 0x2b, 0x89, 0xfb, 0x14, 0x0b, 0x82}, - "EDC ", - 6}, - {{0x08, 0x71, 0x1D, 0x3B, 0x02, 0xC8, 0x75, 0x8F, 0x2F, 0xB3, - 0xab, 0x4e, 0x80, 0x22, 0x84, 0x18, 0xa7, 0xF8, 0xe3, 0x9c}, - "EDG ", - 0}, - {{0xce, 0xd4, 0xe9, 0x31, 0x98, 0x73, 0x4d, 0xda, 0xff, 0x84, - 0x92, 0xd5, 0x25, 0xbd, 0x25, 0x8d, 0x49, 0xeb, 0x38, 0x8e}, - "EDO ", - 18}, - {{0xc5, 0x28, 0xc2, 0x8F, 0xEC, 0x0A, 0x90, 0xC0, 0x83, 0x32, - 0x8B, 0xC4, 0x5f, 0x58, 0x7e, 0xE2, 0x15, 0x76, 0x0A, 0x0F}, - "EDR ", - 18}, - {{0x2a, 0x22, 0xe5, 0xcc, 0xa0, 0x0a, 0x3d, 0x63, 0x30, 0x8f, - 0xa3, 0x9f, 0x29, 0x20, 0x2e, 0xb1, 0xb3, 0x9e, 0xef, 0x52}, - "EDU ", - 18}, - {{0xeb, 0x7c, 0x20, 0x02, 0x71, 0x72, 0xe5, 0xd1, 0x43, 0xfb, - 0x03, 0x0d, 0x50, 0xf9, 0x1c, 0xec, 0xe2, 0xd1, 0x48, 0x5d}, - "eBTC ", - 8}, - {{0xb5, 0x3a, 0x96, 0xbc, 0xbd, 0xd9, 0xcf, 0x78, 0xdf, 0xf2, - 0x0b, 0xab, 0x6c, 0x2b, 0xe7, 0xba, 0xec, 0x8f, 0x00, 0xf8}, - "eGAS ", - 8}, - {{0x8e, 0x1b, 0x44, 0x8E, 0xC7, 0xaD, 0xFc, 0x7F, 0xa3, 0x5F, - 0xC2, 0xe8, 0x85, 0x67, 0x8b, 0xD3, 0x23, 0x17, 0x6E, 0x34}, - "EGT ", - 18}, - {{0x5d, 0xba, 0xc2, 0x4e, 0x98, 0xe2, 0xa4, 0xf4, 0x3a, 0xdc, - 0x0d, 0xc8, 0x2a, 0xf4, 0x03, 0xfc, 0xa0, 0x63, 0xce, 0x2c}, - "EGT ", - 18}, - {{0xf9, 0xF0, 0xFC, 0x71, 0x67, 0xc3, 0x11, 0xDd, 0x2F, 0x1e, - 0x21, 0xE9, 0x20, 0x4F, 0x87, 0xEB, 0xA9, 0x01, 0x2f, 0xB2}, - "EHT ", - 8}, - {{0xa6, 0xa8, 0x40, 0xe5, 0x0b, 0xca, 0xa5, 0x0d, 0xa0, 0x17, - 0xb9, 0x1a, 0x0d, 0x86, 0xb8, 0xb2, 0xd4, 0x11, 0x56, 0xee}, - "EKO ", - 18}, - {{0xba, 0xb1, 0x65, 0xdf, 0x94, 0x55, 0xaa, 0x0f, 0x2a, 0xed, - 0x1f, 0x25, 0x65, 0x52, 0x0b, 0x91, 0xdd, 0xad, 0xb4, 0xc8}, - "EKT ", - 8}, - {{0xd4, 0x9f, 0xf1, 0x36, 0x61, 0x45, 0x13, 0x13, 0xca, 0x15, - 0x53, 0xfd, 0x69, 0x54, 0xbd, 0x1d, 0x9b, 0x6e, 0x02, 0xb9}, - "ELEC ", - 18}, - {{0xbf, 0x21, 0x79, 0x85, 0x9f, 0xc6, 0xd5, 0xbe, 0xe9, 0xbf, - 0x91, 0x58, 0x63, 0x2d, 0xc5, 0x16, 0x78, 0xa4, 0x10, 0x0e}, - "ELF ", - 18}, - {{0xc8, 0xC6, 0xA3, 0x1A, 0x4A, 0x80, 0x6d, 0x37, 0x10, 0xA7, - 0xB3, 0x8b, 0x7B, 0x29, 0x6D, 0x2f, 0xAB, 0xCC, 0xDB, 0xA8}, - "ELIX ", - 18}, - {{0x44, 0x19, 0x7a, 0x4c, 0x44, 0xd6, 0xa0, 0x59, 0x29, 0x7c, - 0xaf, 0x6b, 0xe4, 0xf7, 0xe1, 0x72, 0xbd, 0x56, 0xca, 0xaf}, - "ELTCOIN ", - 8}, - {{0xa9, 0x55, 0x92, 0xDC, 0xFf, 0xA3, 0xC0, 0x80, 0xB4, 0xB4, - 0x0E, 0x45, 0x9c, 0x5f, 0x56, 0x92, 0xF6, 0x7D, 0xB7, 0xF8}, - "ELY ", - 18}, - {{0xb6, 0x7b, 0x88, 0xa2, 0x57, 0x08, 0xa3, 0x5a, 0xe7, 0xc2, - 0xd7, 0x36, 0xd3, 0x98, 0xd2, 0x68, 0xce, 0x4f, 0x7f, 0x83}, - "EMON ", - 8}, - {{0x95, 0xda, 0xaa, 0xb9, 0x80, 0x46, 0x84, 0x6b, 0xf4, 0xb2, - 0x85, 0x3e, 0x23, 0xcb, 0xa2, 0x36, 0xfa, 0x39, 0x4a, 0x31}, - "EMONT ", - 8}, - {{0x95, 0x01, 0xBF, 0xc4, 0x88, 0x97, 0xDC, 0xEE, 0xad, 0xf7, - 0x31, 0x13, 0xEF, 0x63, 0x5d, 0x2f, 0xF7, 0xee, 0x4B, 0x97}, - "EMT ", - 18}, - {{0xB8, 0x02, 0xb2, 0x4E, 0x06, 0x37, 0xc2, 0xB8, 0x7D, 0x2E, - 0x8b, 0x77, 0x84, 0xC0, 0x55, 0xBB, 0xE9, 0x21, 0x01, 0x1a}, - "EMV ", - 2}, - {{0x03, 0x9f, 0x50, 0x50, 0xde, 0x49, 0x08, 0xf9, 0xb5, 0xdd, - 0xf4, 0x0a, 0x4f, 0x3a, 0xa3, 0xf3, 0x29, 0x08, 0x63, 0x87}, - "ENC ", - 18}, - {{0xf0, 0xee, 0x6b, 0x27, 0xb7, 0x59, 0xc9, 0x89, 0x3c, 0xe4, - 0xf0, 0x94, 0xb4, 0x9a, 0xd2, 0x8f, 0xd1, 0x5a, 0x23, 0xe4}, - "ENG ", - 8}, - {{0xF6, 0x29, 0xcB, 0xd9, 0x4d, 0x37, 0x91, 0xC9, 0x25, 0x01, - 0x52, 0xBD, 0x8d, 0xfB, 0xDF, 0x38, 0x0E, 0x2a, 0x3B, 0x9c}, - "ENJ ", - 18}, - {{0x5B, 0xC7, 0xe5, 0xf0, 0xAb, 0x8b, 0x2E, 0x10, 0xD2, 0xD0, - 0xa3, 0xF2, 0x17, 0x39, 0xFC, 0xe6, 0x24, 0x59, 0xae, 0xF3}, - "ENTRP ", - 18}, - {{0x86, 0xfa, 0x04, 0x98, 0x57, 0xe0, 0x20, 0x9a, 0xa7, 0xd9, - 0xe6, 0x16, 0xf7, 0xeb, 0x3b, 0x3b, 0x78, 0xec, 0xfd, 0xb0}, - "EOS ", - 18}, - {{0x7e, 0x9e, 0x43, 0x1a, 0x0b, 0x8c, 0x4d, 0x53, 0x2c, 0x74, - 0x5b, 0x10, 0x43, 0xc7, 0xfa, 0x29, 0xa4, 0x8d, 0x4f, 0xba}, - "eosDAC ", - 18}, - {{0x35, 0xBA, 0xA7, 0x20, 0x38, 0xF1, 0x27, 0xf9, 0xf8, 0xC8, - 0xf9, 0xB4, 0x91, 0x04, 0x9f, 0x64, 0xf3, 0x77, 0x91, 0x4d}, - "EPX ", - 4}, - {{0x50, 0xee, 0x67, 0x46, 0x89, 0xd7, 0x5c, 0x0f, 0x88, 0xe8, - 0xf8, 0x3c, 0xfe, 0x8c, 0x4b, 0x69, 0xe8, 0xfd, 0x59, 0x0d}, - "EPY ", - 8}, - {{0x47, 0xdd, 0x62, 0xd4, 0xd0, 0x75, 0xde, 0xad, 0x71, 0xd0, - 0xe0, 0x02, 0x99, 0xfc, 0x56, 0xa2, 0xd7, 0x47, 0xbe, 0xbb}, - "EQL ", - 18}, - {{0x74, 0xce, 0xda, 0x77, 0x28, 0x1b, 0x33, 0x91, 0x42, 0xa3, - 0x68, 0x17, 0xfa, 0x5f, 0x9e, 0x29, 0x41, 0x2b, 0xab, 0x85}, - "ERO ", - 8}, - {{0x92, 0xA5, 0xB0, 0x4D, 0x0E, 0xD5, 0xD9, 0x4D, 0x7a, 0x19, - 0x3d, 0x1d, 0x33, 0x4D, 0x3D, 0x16, 0x99, 0x6f, 0x4E, 0x13}, - "ERT ", - 18}, - {{0xe8, 0xa1, 0xdf, 0x95, 0x8b, 0xe3, 0x79, 0x04, 0x5e, 0x2b, - 0x46, 0xa3, 0x1a, 0x98, 0xb9, 0x3a, 0x2e, 0xcd, 0xfd, 0xed}, - "ESZ ", - 18}, - {{0x1b, 0x97, 0x43, 0xf5, 0x56, 0xd6, 0x5e, 0x75, 0x7c, 0x4c, - 0x65, 0x0b, 0x45, 0x55, 0xba, 0xf3, 0x54, 0xcb, 0x8b, 0xd3}, - "ETBS ", - 12}, - {{0xdd, 0x74, 0xa7, 0xa3, 0x76, 0x9f, 0xa7, 0x25, 0x61, 0xb3, - 0xa6, 0x9e, 0x65, 0x96, 0x8f, 0x49, 0x74, 0x8c, 0x69, 0x0c}, - "ETCH ", - 18}, - {{0x28, 0xc8, 0xd0, 0x1f, 0xf6, 0x33, 0xea, 0x9c, 0xd8, 0xfc, - 0x6a, 0x45, 0x1d, 0x74, 0x57, 0x88, 0x9e, 0x69, 0x8d, 0xe6}, - "ETG ", - 0}, - {{0x3a, 0x26, 0x74, 0x6D, 0xdb, 0x79, 0xB1, 0xB8, 0xe4, 0x45, - 0x0e, 0x3F, 0x4F, 0xFE, 0x32, 0x85, 0xA3, 0x07, 0x38, 0x7E}, - "ETHB ", - 8}, - {{0xdb, 0xfb, 0x42, 0x3e, 0x9b, 0xbf, 0x16, 0x29, 0x43, 0x88, - 0xe0, 0x76, 0x96, 0xa5, 0x12, 0x0e, 0x4c, 0xeb, 0xa0, 0xc5}, - "ETHD ", - 18}, - {{0x5A, 0xf2, 0xBe, 0x19, 0x3a, 0x6A, 0xBC, 0xa9, 0xc8, 0x81, - 0x70, 0x01, 0xF4, 0x57, 0x44, 0x77, 0x7D, 0xb3, 0x07, 0x56}, - "ETHOS ", - 8}, - {{0x3c, 0x4a, 0x3f, 0xfd, 0x81, 0x3a, 0x10, 0x7f, 0xeb, 0xd5, - 0x7b, 0x2f, 0x01, 0xbc, 0x34, 0x42, 0x64, 0xd9, 0x0f, 0xde}, - "ETK ", - 2}, - {{0x69, 0x27, 0xC6, 0x9f, 0xb4, 0xda, 0xf2, 0x04, 0x3f, 0xbB, - 0x1C, 0xb7, 0xb8, 0x6c, 0x56, 0x61, 0x41, 0x6b, 0xea, 0x29}, - "ETR ", - 18}, {{0xdb, 0x25, 0xf2, 0x11, 0xab, 0x05, 0xb1, 0xc9, 0x7d, 0x59, 0x55, 0x16, 0xf4, 0x57, 0x94, 0x52, 0x8a, 0x80, 0x7a, 0xd8}, "EURS ", 2}, - {{0xab, 0xdf, 0x14, 0x78, 0x70, 0x23, 0x5f, 0xcf, 0xc3, 0x41, - 0x53, 0x82, 0x8c, 0x76, 0x9a, 0x70, 0xb3, 0xfa, 0xe0, 0x1f}, - "EURT ", - 6}, - {{0xb6, 0x2d, 0x18, 0xde, 0xa7, 0x40, 0x45, 0xe8, 0x22, 0x35, - 0x2c, 0xe4, 0xb3, 0xee, 0x77, 0x31, 0x9d, 0xc5, 0xff, 0x2f}, - "EVC ", - 18}, - {{0x92, 0x31, 0x08, 0xa4, 0x39, 0xC4, 0xe8, 0xC2, 0x31, 0x5c, - 0x4f, 0x65, 0x21, 0xE5, 0xcE, 0x95, 0xB4, 0x4e, 0x9B, 0x4c}, - "EVE ", - 18}, - {{0x68, 0x90, 0x9e, 0x58, 0x6e, 0xea, 0xc8, 0xf4, 0x73, 0x15, - 0xe8, 0x4b, 0x4c, 0x97, 0x88, 0xdd, 0x54, 0xef, 0x65, 0xbb}, - "EVN ", - 18}, - {{0xd7, 0x80, 0xAe, 0x2B, 0xf0, 0x4c, 0xD9, 0x6E, 0x57, 0x7D, - 0x3D, 0x01, 0x47, 0x62, 0xf8, 0x31, 0xd9, 0x71, 0x29, 0xd0}, - "EVN ", - 18}, - {{0xf3, 0xdb, 0x5f, 0xa2, 0xc6, 0x6b, 0x7a, 0xf3, 0xeb, 0x0c, - 0x0b, 0x78, 0x25, 0x10, 0x81, 0x6c, 0xbe, 0x48, 0x13, 0xb8}, - "EVX ", - 4}, - {{0x44, 0x49, 0x97, 0xb7, 0xe7, 0xfC, 0x83, 0x0E, 0x20, 0x08, - 0x9a, 0xfe, 0xa3, 0x07, 0x8c, 0xd5, 0x18, 0xfC, 0xF2, 0xA2}, - "EWO ", - 18}, - {{0x00, 0xc4, 0xb3, 0x98, 0x50, 0x06, 0x45, 0xeb, 0x5d, 0xa0, - 0x0a, 0x1a, 0x37, 0x9a, 0x88, 0xb1, 0x16, 0x83, 0xba, 0x01}, - "EXC ", - 18}, - {{0xc9, 0x8e, 0x06, 0x39, 0xc6, 0xd2, 0xec, 0x03, 0x7a, 0x61, - 0x53, 0x41, 0xc3, 0x69, 0x66, 0x6b, 0x11, 0x0e, 0x80, 0xe5}, - "EXMR ", - 8}, - {{0xe4, 0x69, 0xc4, 0x47, 0x3a, 0xf8, 0x22, 0x17, 0xb3, 0x0c, - 0xf1, 0x7b, 0x10, 0xbc, 0xdb, 0x6c, 0x8c, 0x79, 0x6e, 0x75}, - "EXRN ", - 0}, - {{0x5c, 0x74, 0x3a, 0x35, 0xe9, 0x03, 0xf6, 0xc5, 0x84, 0x51, - 0x4e, 0xc6, 0x17, 0xac, 0xee, 0x06, 0x11, 0xcf, 0x44, 0xf3}, - "EXY ", - 18}, - {{0x5e, 0x60, 0x16, 0xae, 0x7d, 0x7c, 0x49, 0xd3, 0x47, 0xdc, - 0xf8, 0x34, 0x86, 0x0b, 0x9f, 0x3e, 0xe2, 0x82, 0x81, 0x2b}, - "EZT ", - 8}, - {{0xb6, 0x77, 0x34, 0x52, 0x1e, 0xAb, 0xBE, 0x9C, 0x77, 0x37, - 0x29, 0xdB, 0x73, 0xE1, 0x6C, 0xC2, 0xdf, 0xb2, 0x0A, 0x58}, - "ERupee ", - 2}, - {{0x1c, 0xca, 0xa0, 0xf2, 0xa7, 0x21, 0x0d, 0x76, 0xe1, 0xfd, - 0xec, 0x74, 0x0d, 0x5f, 0x32, 0x3e, 0x2e, 0x1b, 0x16, 0x72}, - "FACE ", - 18}, - {{0x19, 0x0e, 0x56, 0x9b, 0xE0, 0x71, 0xF4, 0x0c, 0x70, 0x4e, - 0x15, 0x82, 0x5F, 0x28, 0x54, 0x81, 0xCB, 0x74, 0xB6, 0xcC}, - "FAM ", - 12}, - {{0x90, 0x16, 0x2f, 0x41, 0x88, 0x6c, 0x09, 0x46, 0xd0, 0x99, - 0x99, 0x73, 0x6f, 0x1c, 0x15, 0xc8, 0xa1, 0x05, 0xa4, 0x21}, - "FAN ", - 18}, - {{0x7d, 0xcb, 0x3b, 0x23, 0x56, 0xc8, 0x22, 0xd3, 0x57, 0x7d, - 0x4d, 0x06, 0x0d, 0x0d, 0x5d, 0x78, 0xc8, 0x60, 0x48, 0x8c}, - "FANX ", - 18}, - {{0x23, 0x35, 0x20, 0x36, 0xe9, 0x11, 0xa2, 0x2c, 0xfc, 0x69, - 0x2b, 0x5e, 0x2e, 0x19, 0x66, 0x92, 0x65, 0x8a, 0xde, 0xd9}, - "FDZ ", - 18}, - {{0xd9, 0xa8, 0xcf, 0xe2, 0x1c, 0x23, 0x2d, 0x48, 0x50, 0x65, - 0xcb, 0x62, 0xa9, 0x68, 0x66, 0x79, 0x9d, 0x46, 0x45, 0xf7}, - "FGP ", - 18}, - {{0x52, 0xfb, 0x36, 0xc8, 0x3a, 0xd3, 0x3c, 0x18, 0x24, 0x91, - 0x2f, 0xc8, 0x10, 0x71, 0xca, 0x5e, 0xeb, 0x8a, 0xb3, 0x90}, - "FID ", - 18}, - {{0x00, 0x9e, 0x86, 0x49, 0x23, 0xb4, 0x92, 0x63, 0xc7, 0xF1, - 0x0D, 0x19, 0xB7, 0xf8, 0xAb, 0x7a, 0x9A, 0x5A, 0xAd, 0x33}, - "FKX ", - 18}, - {{0xf0, 0x4a, 0x8a, 0xc5, 0x53, 0xFc, 0xeD, 0xB5, 0xBA, 0x99, - 0xA6, 0x47, 0x99, 0x15, 0x58, 0x26, 0xC1, 0x36, 0xb0, 0xBe}, - "FLIXX ", - 18}, - {{0x04, 0xcC, 0x78, 0x3b, 0x45, 0x0b, 0x8D, 0x11, 0xF3, 0xC7, - 0xd0, 0x0D, 0xD0, 0x3f, 0xDF, 0x7F, 0xB5, 0x1f, 0xE9, 0xF2}, - "FLMC ", - 18}, - {{0x04, 0x93, 0x99, 0xa6, 0xb0, 0x48, 0xd5, 0x29, 0x71, 0xf7, - 0xd1, 0x22, 0xae, 0x21, 0xa1, 0x53, 0x27, 0x22, 0x28, 0x5f}, - "FLOT ", - 18}, - {{0x3a, 0x1B, 0xda, 0x28, 0xAd, 0xB5, 0xB0, 0xa8, 0x12, 0xa7, - 0xCF, 0x10, 0xA1, 0x95, 0x0c, 0x92, 0x0F, 0x79, 0xBc, 0xD3}, - "FLP ", - 18}, - {{0x9a, 0xeF, 0xBE, 0x0b, 0x3C, 0x3b, 0xa9, 0xEa, 0xb2, 0x62, - 0xCB, 0x98, 0x56, 0xE8, 0x15, 0x7A, 0xB7, 0x64, 0x8e, 0x09}, - "FLR ", - 18}, - {{0x95, 0x4b, 0x5d, 0xe0, 0x9a, 0x55, 0xe5, 0x97, 0x55, 0xac, - 0xbd, 0xa2, 0x9e, 0x1e, 0xb7, 0x4a, 0x45, 0xd3, 0x01, 0x75}, - "FLUZ ", - 18}, - {{0x70, 0xb1, 0x47, 0xe0, 0x1e, 0x92, 0x85, 0xe7, 0xce, 0x68, - 0xb9, 0xba, 0x43, 0x7f, 0xe3, 0xa9, 0x19, 0x0e, 0x75, 0x6a}, - "FLX ", - 18}, - {{0x4d, 0xf4, 0x7b, 0x49, 0x69, 0xb2, 0x91, 0x1c, 0x96, 0x65, - 0x06, 0xe3, 0x59, 0x2c, 0x41, 0x38, 0x94, 0x93, 0x95, 0x3b}, - "FND ", - 18}, - {{0x07, 0x07, 0x68, 0x1f, 0x34, 0x4d, 0xeb, 0x24, 0x18, 0x40, - 0x37, 0xfc, 0x02, 0x28, 0x85, 0x6f, 0x21, 0x37, 0xb0, 0x2e}, - "FNKOS ", - 18}, - {{0xbd, 0x4b, 0x60, 0xa1, 0x38, 0xb3, 0xfc, 0xe3, 0x58, 0x4e, - 0xa0, 0x1f, 0x50, 0xc0, 0x90, 0x8c, 0x18, 0xf9, 0x67, 0x7a}, - "FNTB ", - 8}, - {{0x2a, 0x09, 0x3B, 0xcF, 0x0C, 0x98, 0xEf, 0x74, 0x4B, 0xb6, - 0xF6, 0x9D, 0x74, 0xf2, 0xF8, 0x56, 0x05, 0x32, 0x42, 0x90}, - "FOOD ", - 8}, - {{0x42, 0x70, 0xbb, 0x23, 0x8f, 0x6d, 0xd8, 0xb1, 0xc3, 0xca, - 0x01, 0xf9, 0x6c, 0xa6, 0x5b, 0x26, 0x47, 0xc0, 0x6d, 0x3c}, - "FOTA ", - 18}, - {{0x0A, 0xBe, 0xFb, 0x76, 0x11, 0xCb, 0x3A, 0x01, 0xEA, 0x3F, - 0xaD, 0x85, 0xf3, 0x3C, 0x3C, 0x93, 0x4F, 0x8e, 0x2c, 0xF4}, - "FRD ", - 18}, - {{0x17, 0xe6, 0x7d, 0x1c, 0xb4, 0xe3, 0x49, 0xb9, 0xca, 0x4b, - 0xc3, 0xe1, 0x7c, 0x7d, 0xf2, 0xa3, 0x97, 0xa7, 0xbb, 0x64}, - "FREC ", - 18}, - {{0x48, 0xdf, 0x4e, 0x02, 0x96, 0xf9, 0x08, 0xce, 0xab, 0x04, - 0x28, 0xa5, 0x18, 0x2d, 0x19, 0xb3, 0x1f, 0xc0, 0x37, 0xd6}, - "FRV ", - 8}, - {{0xd0, 0x35, 0x2a, 0x01, 0x9e, 0x9a, 0xb9, 0xd7, 0x57, 0x77, - 0x6f, 0x53, 0x23, 0x77, 0xaa, 0xeb, 0xd3, 0x6f, 0xd5, 0x41}, - "FSN ", - 18}, - {{0x78, 0xa7, 0x3B, 0x6C, 0xBc, 0x5D, 0x18, 0x3C, 0xE5, 0x6e, - 0x78, 0x6f, 0x6e, 0x90, 0x5C, 0xaD, 0xEC, 0x63, 0x54, 0x7B}, - "FT ", - 18}, - {{0xe6, 0xf7, 0x4d, 0xcf, 0xa0, 0xe2, 0x08, 0x83, 0x00, 0x8d, - 0x8c, 0x16, 0xb6, 0xd9, 0xa3, 0x29, 0x18, 0x9d, 0x0c, 0x30}, - "FTC ", - 2}, - {{0x94, 0x3e, 0xd8, 0x52, 0xda, 0xdb, 0x5c, 0x39, 0x38, 0xec, - 0xdc, 0x68, 0x83, 0x71, 0x8d, 0xf8, 0x14, 0x2d, 0xe4, 0xc8}, - "FTI ", - 18}, - {{0x20, 0x23, 0xDC, 0xf7, 0xc4, 0x38, 0xc8, 0xC8, 0xC0, 0xB0, - 0xF2, 0x8d, 0xBa, 0xE1, 0x55, 0x20, 0xB4, 0xf3, 0xEe, 0x20}, - "FTR ", - 18}, - {{0x2A, 0xEC, 0x18, 0xc5, 0x50, 0x0f, 0x21, 0x35, 0x9C, 0xE1, - 0xBE, 0xA5, 0xDc, 0x17, 0x77, 0x34, 0x4d, 0xF4, 0xC0, 0xDc}, - "FTT ", - 18}, - {{0xd5, 0x59, 0xf2, 0x02, 0x96, 0xff, 0x48, 0x95, 0xda, 0x39, - 0xb5, 0xbd, 0x9a, 0xdd, 0x54, 0xb4, 0x42, 0x59, 0x6a, 0x61}, - "FTX ", - 18}, - {{0x41, 0x87, 0x5c, 0x23, 0x32, 0xb0, 0x87, 0x7c, 0xdf, 0xaa, - 0x69, 0x9b, 0x64, 0x14, 0x02, 0xb7, 0xd4, 0x64, 0x2c, 0x32}, - "FTXT ", - 8}, - {{0x65, 0xbe, 0x44, 0xc7, 0x47, 0x98, 0x8f, 0xbf, 0x60, 0x62, - 0x07, 0x69, 0x8c, 0x94, 0x4d, 0xf4, 0x44, 0x2e, 0xfe, 0x19}, - "FUCK ", - 4}, - {{0xEA, 0x38, 0xeA, 0xa3, 0xC8, 0x6c, 0x8F, 0x9B, 0x75, 0x15, - 0x33, 0xBa, 0x2E, 0x56, 0x2d, 0xeb, 0x9a, 0xcD, 0xED, 0x40}, - "FUEL ", - 18}, - {{0x41, 0x9D, 0x0d, 0x8B, 0xdD, 0x9a, 0xF5, 0xe6, 0x06, 0xAe, - 0x22, 0x32, 0xed, 0x28, 0x5A, 0xff, 0x19, 0x0E, 0x71, 0x1b}, - "FUN ", - 8}, - {{0x18, 0x29, 0xaa, 0x04, 0x5e, 0x21, 0xe0, 0xd5, 0x95, 0x80, - 0x02, 0x4a, 0x95, 0x1d, 0xb4, 0x80, 0x96, 0xe0, 0x17, 0x82}, - "FXT ", - 18}, - {{0x88, 0xFC, 0xFB, 0xc2, 0x2C, 0x6d, 0x3d, 0xBa, 0xa2, 0x5a, - 0xF4, 0x78, 0xC5, 0x78, 0x97, 0x83, 0x39, 0xBD, 0xe7, 0x7a}, - "FYN ", - 18}, - {{0x8f, 0x09, 0x21, 0xf3, 0x05, 0x55, 0x62, 0x41, 0x43, 0xd4, - 0x27, 0xb3, 0x40, 0xb1, 0x15, 0x69, 0x14, 0x88, 0x2c, 0x10}, - "FYP ", - 18}, - {{0xf6, 0x74, 0x51, 0xdc, 0x84, 0x21, 0xf0, 0xe0, 0xaf, 0xeb, - 0x52, 0xfa, 0xa8, 0x10, 0x10, 0x34, 0xed, 0x08, 0x1e, 0xd9}, - "GAM ", - 8}, - {{0xc0, 0xEA, 0x63, 0x06, 0xF6, 0x36, 0x0F, 0xE7, 0xdC, 0xAB, - 0x65, 0xD1, 0x6B, 0xf1, 0xa3, 0xAF, 0x92, 0xC7, 0x9A, 0xa2}, - "GANA ", - 18}, - {{0x68, 0x71, 0x74, 0xf8, 0xc4, 0x9c, 0xeb, 0x77, 0x29, 0xd9, - 0x25, 0xc3, 0xa9, 0x61, 0x50, 0x7e, 0xa4, 0xac, 0x7b, 0x28}, - "GAT ", - 18}, - {{0x70, 0x88, 0x76, 0xf4, 0x86, 0xe4, 0x48, 0xee, 0x89, 0xeb, - 0x33, 0x2b, 0xfb, 0xc8, 0xe5, 0x93, 0x55, 0x30, 0x58, 0xb9}, - "GAVEL ", - 18}, - {{0x75, 0x85, 0xF8, 0x35, 0xae, 0x2d, 0x52, 0x27, 0x22, 0xd2, - 0x68, 0x43, 0x23, 0xa0, 0xba, 0x83, 0x40, 0x1f, 0x32, 0xf5}, - "GBT ", - 18}, - {{0x12, 0xfC, 0xd6, 0x46, 0x3E, 0x66, 0x97, 0x4c, 0xF7, 0xbB, - 0xC2, 0x4F, 0xFC, 0x4d, 0x40, 0xd6, 0xbE, 0x45, 0x82, 0x83}, - "GBX ", - 8}, - {{0xdb, 0x0F, 0x69, 0x30, 0x6F, 0xF8, 0xF9, 0x49, 0xf2, 0x58, - 0xE8, 0x3f, 0x6b, 0x87, 0xee, 0x5D, 0x05, 0x2d, 0x0b, 0x23}, - "GCP ", - 18}, - {{0x4F, 0x4f, 0x0D, 0xb4, 0xde, 0x90, 0x3B, 0x88, 0xf2, 0xB1, - 0xa2, 0x84, 0x79, 0x71, 0xE2, 0x31, 0xD5, 0x4F, 0x8f, 0xd3}, - "GEE ", - 8}, - {{0x24, 0x08, 0x3b, 0xb3, 0x00, 0x72, 0x64, 0x3c, 0x3b, 0xb9, - 0x0b, 0x44, 0xb7, 0x28, 0x58, 0x60, 0xa7, 0x55, 0xe6, 0x87}, - "GELD ", - 18}, - {{0xc7, 0xbb, 0xa5, 0xb7, 0x65, 0x58, 0x1e, 0xfb, 0x2c, 0xdd, - 0x26, 0x79, 0xdb, 0x5b, 0xea, 0x9e, 0xe7, 0x9b, 0x20, 0x1f}, - "GEM ", - 18}, - {{0x54, 0x3F, 0xf2, 0x27, 0xF6, 0x4A, 0xa1, 0x7e, 0xA1, 0x32, - 0xBf, 0x98, 0x86, 0xcA, 0xb5, 0xDB, 0x55, 0xDC, 0xAd, 0xdf}, - "GEN ", - 18}, - {{0x8a, 0x85, 0x42, 0x88, 0xa5, 0x97, 0x60, 0x36, 0xa7, 0x25, - 0x87, 0x91, 0x64, 0xca, 0x3e, 0x91, 0xd3, 0x0c, 0x6a, 0x1b}, - "GET ", - 18}, - {{0xFc, 0xD8, 0x62, 0x98, 0x56, 0x28, 0xb2, 0x54, 0x06, 0x1F, - 0x7A, 0x91, 0x80, 0x35, 0xB8, 0x03, 0x40, 0xD0, 0x45, 0xd3}, - "GIF ", - 18}, - {{0xaE, 0x4f, 0x56, 0xF0, 0x72, 0xc3, 0x4C, 0x0a, 0x65, 0xB3, - 0xae, 0x3E, 0x4D, 0xB7, 0x97, 0xD8, 0x31, 0x43, 0x9D, 0x93}, - "GIM ", - 8}, - {{0x71, 0xd0, 0x1d, 0xb8, 0xd6, 0xa2, 0xfb, 0xea, 0x7f, 0x8d, - 0x43, 0x45, 0x99, 0xc2, 0x37, 0x98, 0x0c, 0x23, 0x4e, 0x4c}, - "GLA ", - 8}, - {{0xb3, 0xBd, 0x49, 0xE2, 0x8f, 0x8F, 0x83, 0x2b, 0x8d, 0x1E, - 0x24, 0x61, 0x06, 0x99, 0x1e, 0x54, 0x6c, 0x32, 0x35, 0x02}, - "GMT ", - 18}, - {{0x68, 0x10, 0xe7, 0x76, 0x88, 0x0C, 0x02, 0x93, 0x3D, 0x47, - 0xDB, 0x1b, 0x9f, 0xc0, 0x59, 0x08, 0xe5, 0x38, 0x6b, 0x96}, - "GNO ", - 18}, {{0xa7, 0x44, 0x76, 0x44, 0x31, 0x19, 0xA9, 0x42, 0xdE, 0x49, 0x85, 0x90, 0xFe, 0x1f, 0x24, 0x54, 0xd7, 0xD4, 0xaC, 0x0d}, "GNT ", 18}, - {{0x6e, 0xc8, 0xa2, 0x4c, 0xab, 0xdc, 0x33, 0x9a, 0x06, 0xa1, - 0x72, 0xf8, 0x22, 0x3e, 0xa5, 0x57, 0x05, 0x5a, 0xda, 0xa5}, - "GNX ", - 9}, - {{0x24, 0x75, 0x51, 0xF2, 0xEB, 0x33, 0x62, 0xE2, 0x22, 0xc7, - 0x42, 0xE9, 0xc7, 0x88, 0xB8, 0x95, 0x7D, 0x9B, 0xC8, 0x7e}, - "GNY ", - 18}, - {{0xeA, 0xb4, 0x31, 0x93, 0xCF, 0x06, 0x23, 0x07, 0x3C, 0xa8, - 0x9D, 0xB9, 0xB7, 0x12, 0x79, 0x63, 0x56, 0xFA, 0x74, 0x14}, - "GOLDX ", - 18}, - {{0x42, 0x3b, 0x5f, 0x62, 0xb3, 0x28, 0xd0, 0xd6, 0xd4, 0x48, - 0x70, 0xf4, 0xee, 0xe3, 0x16, 0xbe, 0xfa, 0x0b, 0x2d, 0xf5}, - "GOT ", - 18}, - {{0x12, 0xb1, 0x9d, 0x3e, 0x2c, 0xcc, 0x14, 0xda, 0x04, 0xfa, - 0xe3, 0x3e, 0x63, 0x65, 0x2c, 0xe4, 0x69, 0xb3, 0xf2, 0xfd}, - "GRID ", - 12}, - {{0xb4, 0x44, 0x20, 0x8c, 0xb0, 0x51, 0x6c, 0x15, 0x01, 0x78, - 0xfc, 0xf9, 0xa5, 0x26, 0x04, 0xbc, 0x04, 0xa1, 0xac, 0xea}, - "GRMD ", - 18}, - {{0xC1, 0x71, 0x95, 0xbd, 0xe4, 0x9D, 0x70, 0xCe, 0xfC, 0xF8, - 0xA9, 0xF2, 0xee, 0x17, 0x59, 0xFF, 0xC2, 0x7B, 0xF0, 0xB1}, - "GROO ", - 18}, - {{0x0a, 0x9A, 0x9c, 0xe6, 0x00, 0xD0, 0x8B, 0xF9, 0xb7, 0x6F, - 0x49, 0xFA, 0x4e, 0x7b, 0x38, 0xA6, 0x7E, 0xBE, 0xB1, 0xE6}, - "GROW ", - 8}, - {{0x22, 0x8b, 0xa5, 0x14, 0x30, 0x9f, 0xfd, 0xf0, 0x3a, 0x81, - 0xa2, 0x05, 0xa6, 0xd0, 0x40, 0xe4, 0x29, 0xd6, 0xe8, 0x0c}, - "GSC ", - 18}, - {{0xe5, 0x30, 0x44, 0x1f, 0x4f, 0x73, 0xbD, 0xB6, 0xDC, 0x2f, - 0xA5, 0xaF, 0x7c, 0x3f, 0xC5, 0xfD, 0x55, 0x1E, 0xc8, 0x38}, - "GSE ", - 4}, - {{0xB7, 0x08, 0x35, 0xD7, 0x82, 0x2e, 0xBB, 0x94, 0x26, 0xB5, - 0x65, 0x43, 0xE3, 0x91, 0x84, 0x6C, 0x10, 0x7b, 0xd3, 0x2C}, - "GTC ", - 18}, - {{0x02, 0x5a, 0xba, 0xd9, 0xe5, 0x18, 0x51, 0x6f, 0xda, 0xaf, - 0xbd, 0xcd, 0xb9, 0x70, 0x1b, 0x37, 0xfb, 0x7e, 0xf0, 0xfa}, - "GTKT ", - 0}, - {{0xc5, 0xbb, 0xae, 0x50, 0x78, 0x1b, 0xe1, 0x66, 0x93, 0x06, - 0xb9, 0xe0, 0x01, 0xef, 0xf5, 0x7a, 0x29, 0x57, 0xb0, 0x9d}, - "GTO ", - 5}, - {{0xbd, 0xcf, 0xbf, 0x5c, 0x4d, 0x91, 0xab, 0xc0, 0xbc, 0x97, - 0x09, 0xc7, 0x28, 0x6d, 0x00, 0x06, 0x3c, 0x0e, 0x6f, 0x22}, - "GUESS ", - 2}, - {{0x98, 0x47, 0x34, 0x5d, 0xe8, 0xb6, 0x14, 0xc9, 0x56, 0x14, - 0x6b, 0xbe, 0xa5, 0x49, 0x33, 0x6d, 0x9c, 0x8d, 0x26, 0xb6}, - "GULD ", - 8}, - {{0xf7, 0xB0, 0x98, 0x29, 0x8f, 0x7C, 0x69, 0xFc, 0x14, 0x61, - 0x0b, 0xf7, 0x1d, 0x5e, 0x02, 0xc6, 0x07, 0x92, 0x89, 0x4C}, - "GUP ", - 3}, - {{0x10, 0x3c, 0x3A, 0x20, 0x9d, 0xa5, 0x9d, 0x3E, 0x7C, 0x4A, - 0x89, 0x30, 0x7e, 0x66, 0x52, 0x1e, 0x08, 0x1C, 0xFD, 0xF0}, - "GVT ", - 18}, - {{0x58, 0xca, 0x30, 0x65, 0xc0, 0xf2, 0x4c, 0x7c, 0x96, 0xae, - 0xe8, 0xd6, 0x05, 0x6b, 0x5b, 0x5d, 0xec, 0xf9, 0xc2, 0xf8}, - "GXC ", - 10}, - {{0x22, 0xF0, 0xAF, 0x8D, 0x78, 0x85, 0x1b, 0x72, 0xEE, 0x79, - 0x9e, 0x05, 0xF5, 0x4A, 0x77, 0x00, 0x15, 0x86, 0xB1, 0x8A}, - "GXVC ", - 10}, - {{0x8C, 0x65, 0xe9, 0x92, 0x29, 0x7d, 0x5f, 0x09, 0x2A, 0x75, - 0x6d, 0xEf, 0x24, 0xF4, 0x78, 0x1a, 0x28, 0x01, 0x98, 0xFf}, - "GZE ", - 18}, - {{0xE6, 0x38, 0xdc, 0x39, 0xb6, 0xaD, 0xBE, 0xE8, 0x52, 0x6b, - 0x5C, 0x22, 0x38, 0x0b, 0x4b, 0x45, 0xdA, 0xf4, 0x6d, 0x8e}, - "GZR ", - 6}, - {{0x48, 0xc1, 0xb2, 0xf3, 0xef, 0xa8, 0x5f, 0xba, 0xfb, 0x2a, - 0xb9, 0x51, 0xbf, 0x4b, 0xa8, 0x60, 0xa0, 0x8c, 0xdb, 0xb7}, - "HAND ", - 0}, - {{0x5a, 0x56, 0x7e, 0x28, 0xdb, 0xfa, 0x2b, 0xbd, 0x3e, 0xf1, - 0x3c, 0x0a, 0x01, 0xbe, 0x11, 0x47, 0x45, 0x34, 0x96, 0x57}, - "HAPPY ", - 2}, - {{0x90, 0x02, 0xD4, 0x48, 0x5b, 0x75, 0x94, 0xe3, 0xE8, 0x50, - 0xF0, 0xa2, 0x06, 0x71, 0x3B, 0x30, 0x51, 0x13, 0xf6, 0x9e}, - "HAT ", - 12}, - {{0xC0, 0x11, 0xA7, 0x24, 0x00, 0xE5, 0x8e, 0xcD, 0x99, 0xEe, - 0x49, 0x7C, 0xF8, 0x9E, 0x37, 0x75, 0xd4, 0xbd, 0x73, 0x2F}, - "SNX ", - 18}, - {{0xe2, 0x49, 0x2f, 0x8d, 0x2a, 0x26, 0x18, 0xd8, 0x70, 0x9c, - 0xa9, 0x9b, 0x1d, 0x8d, 0x75, 0x71, 0x3b, 0xd8, 0x40, 0x89}, - "HB ", - 18}, - {{0xdd, 0x6c, 0x68, 0xbb, 0x32, 0x46, 0x2e, 0x01, 0x70, 0x50, - 0x11, 0xa4, 0xe2, 0xad, 0x1a, 0x60, 0x74, 0x0f, 0x21, 0x7f}, - "HBT ", - 15}, - {{0xe3, 0x4e, 0x19, 0x44, 0xe7, 0x76, 0xf3, 0x9b, 0x92, 0x52, - 0x79, 0x0a, 0x05, 0x27, 0xeb, 0xda, 0x64, 0x7a, 0xe6, 0x68}, - "HBZ ", - 18}, - {{0xff, 0xe8, 0x19, 0x6b, 0xc2, 0x59, 0xe8, 0xde, 0xdc, 0x54, - 0x4d, 0x93, 0x57, 0x86, 0xaa, 0x47, 0x09, 0xec, 0x3e, 0x64}, - "HDG ", - 18}, - {{0x95, 0xC4, 0xbe, 0x85, 0x34, 0xd6, 0x9C, 0x24, 0x8C, 0x06, - 0x23, 0xc4, 0xC9, 0xa7, 0xA2, 0xa0, 0x01, 0xc1, 0x73, 0x37}, - "HDL ", - 18}, - {{0x49, 0x1c, 0x9a, 0x23, 0xdb, 0x85, 0x62, 0x3e, 0xed, 0x45, - 0x5a, 0x8e, 0xfd, 0xd6, 0xab, 0xa9, 0xb9, 0x11, 0xc5, 0xdf}, - "HER ", - 18}, - {{0xba, 0x21, 0x84, 0x52, 0x0A, 0x1c, 0xC4, 0x9a, 0x61, 0x59, - 0xc5, 0x7e, 0x61, 0xE1, 0x84, 0x4E, 0x08, 0x56, 0x15, 0xB6}, - "HGT ", - 8}, - {{0x9b, 0xb1, 0xdb, 0x14, 0x45, 0xb8, 0x32, 0x13, 0xa5, 0x6d, - 0x90, 0xd3, 0x31, 0x89, 0x4b, 0x3f, 0x26, 0x21, 0x8e, 0x4e}, - "HIBT ", - 18}, - {{0xa9, 0x24, 0x0f, 0xBC, 0xAC, 0x1F, 0x0b, 0x9A, 0x6a, 0xDf, - 0xB0, 0x4a, 0x53, 0xc8, 0xE3, 0xB0, 0xcC, 0x1D, 0x14, 0x44}, - "HIG ", - 18}, - {{0x14, 0xF3, 0x7B, 0x57, 0x42, 0x42, 0xD3, 0x66, 0x55, 0x8d, - 0xB6, 0x1f, 0x33, 0x35, 0x28, 0x9a, 0x50, 0x35, 0xc5, 0x06}, - "HKG ", - 3}, - {{0x9e, 0x6b, 0x2b, 0x11, 0x54, 0x2f, 0x2b, 0xc5, 0x2f, 0x30, - 0x29, 0x07, 0x7a, 0xce, 0x37, 0xe8, 0xfd, 0x83, 0x8d, 0x7f}, - "HKN ", - 8}, - {{0x88, 0xac, 0x94, 0xd5, 0xd1, 0x75, 0x13, 0x03, 0x47, 0xfc, - 0x95, 0xe1, 0x09, 0xd7, 0x7a, 0xc0, 0x9d, 0xbf, 0x5a, 0xb7}, - "HKY ", - 18}, - {{0x66, 0xeb, 0x65, 0xD7, 0xAb, 0x8e, 0x95, 0x67, 0xba, 0x0f, - 0xa6, 0xE3, 0x7c, 0x30, 0x59, 0x56, 0xc5, 0x34, 0x15, 0x74}, - "HLX ", - 5}, - {{0xAa, 0x0b, 0xb1, 0x0C, 0xEc, 0x1f, 0xa3, 0x72, 0xeb, 0x3A, - 0xbc, 0x17, 0xC9, 0x33, 0xFC, 0x6b, 0xa8, 0x63, 0xDD, 0x9E}, - "HMC ", - 18}, - {{0xcb, 0xCC, 0x0F, 0x03, 0x6E, 0xD4, 0x78, 0x8F, 0x63, 0xFC, - 0x0f, 0xEE, 0x32, 0x87, 0x3d, 0x6A, 0x74, 0x87, 0xb9, 0x08}, - "HMQ ", - 8}, - {{0xb4, 0x5d, 0x7B, 0xc4, 0xcE, 0xBc, 0xAB, 0x98, 0xaD, 0x09, - 0xBA, 0xBD, 0xF8, 0xC8, 0x18, 0xB2, 0x29, 0x2B, 0x67, 0x2c}, - "HODL ", - 18}, - {{0x5B, 0x07, 0x51, 0x71, 0x3b, 0x25, 0x27, 0xd7, 0xf0, 0x02, - 0xc0, 0xc4, 0xe2, 0xa3, 0x7e, 0x12, 0x19, 0x61, 0x0A, 0x6B}, - "HORSE ", - 18}, - {{0x6c, 0x6e, 0xe5, 0xe3, 0x1d, 0x82, 0x8d, 0xe2, 0x41, 0x28, - 0x2b, 0x96, 0x06, 0xc8, 0xe9, 0x8e, 0xa4, 0x85, 0x26, 0xe2}, - "HoloTkn ", - 18}, - {{0x9a, 0xf8, 0x39, 0x68, 0x7f, 0x6c, 0x94, 0x54, 0x2a, 0xc5, - 0xec, 0xe2, 0xe3, 0x17, 0xda, 0xae, 0x35, 0x54, 0x93, 0xa1}, - "Hydro ", - 18}, - {{0x38, 0xc6, 0xa6, 0x83, 0x04, 0xcd, 0xef, 0xb9, 0xbe, 0xc4, - 0x8b, 0xbf, 0xaa, 0xba, 0x5c, 0x5b, 0x47, 0x81, 0x8b, 0xb2}, - "HPB ", - 18}, - {{0x55, 0x4C, 0x20, 0xB7, 0xc4, 0x86, 0xbe, 0xeE, 0x43, 0x92, - 0x77, 0xb4, 0x54, 0x0A, 0x43, 0x45, 0x66, 0xdC, 0x4C, 0x02}, - "HST ", - 18}, - {{0x6f, 0x25, 0x96, 0x37, 0xdc, 0xd7, 0x4c, 0x76, 0x77, 0x81, - 0xe3, 0x7b, 0xc6, 0x13, 0x3c, 0xd6, 0xa6, 0x8a, 0xa1, 0x61}, - "HT ", - 18}, - {{0xC0, 0xEb, 0x85, 0x28, 0x5d, 0x83, 0x21, 0x7C, 0xD7, 0xc8, - 0x91, 0x70, 0x2b, 0xcb, 0xC0, 0xFC, 0x40, 0x1E, 0x2D, 0x9D}, - "HVN ", - 8}, - {{0xeb, 0xbd, 0xf3, 0x02, 0xc9, 0x40, 0xc6, 0xbf, 0xd4, 0x9c, - 0x6b, 0x16, 0x5f, 0x45, 0x7f, 0xdb, 0x32, 0x46, 0x49, 0xbc}, - "HYDRO ", - 18}, - {{0xe9, 0xff, 0x07, 0x80, 0x9c, 0xcf, 0xf0, 0x5d, 0xae, 0x74, - 0x99, 0x0e, 0x25, 0x83, 0x1d, 0x0b, 0xc5, 0xcb, 0xe5, 0x75}, - "Hdp ", - 18}, - {{0x84, 0x54, 0x3f, 0x86, 0x8e, 0xc1, 0xb1, 0xfa, 0xc5, 0x10, - 0xd4, 0x9d, 0x13, 0xc0, 0x69, 0xf6, 0x4c, 0xd2, 0xd5, 0xf9}, - "Hdp2 ", - 18}, - {{0x5a, 0x84, 0x96, 0x9b, 0xb6, 0x63, 0xfb, 0x64, 0xF6, 0xd0, - 0x15, 0xDc, 0xF9, 0xF6, 0x22, 0xAe, 0xdc, 0x79, 0x67, 0x50}, - "ICE ", - 18}, - {{0x88, 0x86, 0x66, 0xCA, 0x69, 0xE0, 0xf1, 0x78, 0xDE, 0xD6, - 0xD7, 0x5b, 0x57, 0x26, 0xCe, 0xe9, 0x9A, 0x87, 0xD6, 0x98}, - "ICN ", - 18}, - {{0xa3, 0x3e, 0x72, 0x9b, 0xf4, 0xfd, 0xeb, 0x86, 0x8b, 0x53, - 0x4e, 0x1f, 0x20, 0x52, 0x34, 0x63, 0xd9, 0xc4, 0x6b, 0xee}, - "ICO ", - 10}, - {{0x01, 0x4B, 0x50, 0x46, 0x65, 0x90, 0x34, 0x0D, 0x41, 0x30, - 0x7C, 0xc5, 0x4D, 0xCe, 0xe9, 0x90, 0xc8, 0xD5, 0x8a, 0xa8}, - "ICOS ", - 6}, - {{0xb5, 0xa5, 0xf2, 0x26, 0x94, 0x35, 0x2c, 0x15, 0xb0, 0x03, - 0x23, 0x84, 0x4a, 0xd5, 0x45, 0xab, 0xb2, 0xb1, 0x10, 0x28}, - "ICX ", - 18}, - {{0x81, 0x4c, 0xaf, 0xd4, 0x78, 0x2d, 0x2e, 0x72, 0x81, 0x70, - 0xfd, 0xa6, 0x82, 0x57, 0x98, 0x3f, 0x03, 0x32, 0x1c, 0x58}, - "IDEA ", - 0}, - {{0x51, 0x36, 0xc9, 0x8a, 0x80, 0x81, 0x1c, 0x3f, 0x46, 0xbd, - 0xda, 0x8b, 0x5c, 0x45, 0x55, 0xcf, 0xd9, 0xf8, 0x12, 0xf0}, - "IDH ", - 6}, - {{0xcc, 0x13, 0xfc, 0x62, 0x7e, 0xff, 0xd6, 0xe3, 0x5d, 0x2d, - 0x27, 0x06, 0xea, 0x3c, 0x4d, 0x73, 0x96, 0xc6, 0x10, 0xea}, - "IDXM ", - 8}, - {{0x85, 0x9a, 0x9c, 0x0b, 0x44, 0xcb, 0x70, 0x66, 0xd9, 0x56, - 0xa9, 0x58, 0xb0, 0xb8, 0x2e, 0x54, 0xc9, 0xe4, 0x4b, 0x4b}, - "iETH ", - 8}, - {{0x76, 0x54, 0x91, 0x5a, 0x1b, 0x82, 0xd6, 0xd2, 0xd0, 0xaf, - 0xc3, 0x7c, 0x52, 0xaf, 0x55, 0x6e, 0xa8, 0x98, 0x3c, 0x7e}, - "IFT ", - 18}, - {{0x8a, 0x88, 0xf0, 0x4e, 0x0c, 0x90, 0x50, 0x54, 0xd2, 0xf3, - 0x3b, 0x26, 0xbb, 0x3a, 0x46, 0xd7, 0x09, 0x1a, 0x03, 0x9a}, - "IG ", - 18}, - {{0xed, 0xa8, 0xb0, 0x16, 0xef, 0xa8, 0xb1, 0x16, 0x12, 0x08, - 0xcf, 0x04, 0x1c, 0xd8, 0x69, 0x72, 0xee, 0xe0, 0xf3, 0x1e}, - "IHT ", - 18}, - {{0x16, 0x66, 0x2f, 0x73, 0xdf, 0x3e, 0x79, 0xe5, 0x4c, 0x6c, - 0x59, 0x38, 0xb4, 0x31, 0x3f, 0x92, 0xc5, 0x24, 0xc1, 0x20}, - "IIC ", - 18}, - {{0x88, 0xAE, 0x96, 0x84, 0x5e, 0x15, 0x75, 0x58, 0xef, 0x59, - 0xe9, 0xFf, 0x90, 0xE7, 0x66, 0xE2, 0x2E, 0x48, 0x03, 0x90}, - "IKB ", - 0}, - {{0xe3, 0x83, 0x1c, 0x5A, 0x98, 0x2B, 0x27, 0x9A, 0x19, 0x84, - 0x56, 0xD5, 0x77, 0xcf, 0xb9, 0x04, 0x24, 0xcb, 0x63, 0x40}, - "IMC ", - 6}, - {{0x22, 0xE5, 0xF6, 0x2D, 0x0F, 0xA1, 0x99, 0x74, 0x74, 0x9f, - 0xaa, 0x19, 0x4e, 0x3d, 0x3e, 0xF6, 0xd8, 0x9c, 0x08, 0xd7}, - "IMT Immo ", - 0}, - {{0x13, 0x11, 0x9E, 0x34, 0xE1, 0x40, 0x09, 0x7a, 0x50, 0x7B, - 0x07, 0xa5, 0x56, 0x4b, 0xDe, 0x1b, 0xC3, 0x75, 0xD9, 0xe6}, - "IMT Mony ", - 18}, - {{0xf8, 0xe3, 0x86, 0xED, 0xa8, 0x57, 0x48, 0x4f, 0x5a, 0x12, - 0xe4, 0xB5, 0xDA, 0xa9, 0x98, 0x4E, 0x06, 0xE7, 0x37, 0x05}, - "IND ", - 18}, - {{0x24, 0xdd, 0xff, 0x6d, 0x8b, 0x8a, 0x42, 0xd8, 0x35, 0xaf, - 0x3b, 0x44, 0x0d, 0xe9, 0x1f, 0x33, 0x86, 0x55, 0x4a, 0xa4}, - "ING ", - 18}, - {{0x48, 0xe5, 0x41, 0x3b, 0x73, 0xad, 0xd2, 0x43, 0x4e, 0x47, - 0x50, 0x4E, 0x2a, 0x22, 0xd1, 0x49, 0x40, 0xdB, 0xFe, 0x78}, - "INRM ", - 3}, - {{0x5b, 0x2e, 0x4a, 0x70, 0x0d, 0xfb, 0xc5, 0x60, 0x06, 0x1e, - 0x95, 0x7e, 0xde, 0xc8, 0xf6, 0xee, 0xeb, 0x74, 0xa3, 0x20}, - "INS ", - 10}, - {{0xc7, 0x2f, 0xe8, 0xe3, 0xdd, 0x5b, 0xef, 0x0f, 0x9f, 0x31, - 0xf2, 0x59, 0x39, 0x9f, 0x30, 0x12, 0x72, 0xef, 0x2a, 0x2d}, - "INSTAR ", - 18}, - {{0x0b, 0x76, 0x54, 0x4f, 0x6c, 0x41, 0x3a, 0x55, 0x5f, 0x30, - 0x9b, 0xf7, 0x62, 0x60, 0xd1, 0xe0, 0x23, 0x77, 0xc0, 0x2a}, - "INT ", - 6}, - {{0xec, 0xe8, 0x36, 0x17, 0xdb, 0x20, 0x8a, 0xd2, 0x55, 0xad, - 0x4f, 0x45, 0xda, 0xf8, 0x1e, 0x25, 0x13, 0x75, 0x35, 0xbb}, - "INV ", - 8}, - {{0xa8, 0x00, 0x6c, 0x4c, 0xa5, 0x6f, 0x24, 0xd6, 0x83, 0x67, - 0x27, 0xd1, 0x06, 0x34, 0x93, 0x20, 0xdb, 0x7f, 0xef, 0x82}, - "INXT ", - 8}, - {{0xFA, 0x1a, 0x85, 0x6C, 0xfa, 0x34, 0x09, 0xCF, 0xa1, 0x45, - 0xFa, 0x4e, 0x20, 0xEb, 0x27, 0x0d, 0xF3, 0xEB, 0x21, 0xab}, - "IOST ", - 18}, - {{0x6f, 0xb3, 0xe0, 0xa2, 0x17, 0x40, 0x7e, 0xff, 0xf7, 0xca, - 0x06, 0x2d, 0x46, 0xc2, 0x6e, 0x5d, 0x60, 0xa1, 0x4d, 0x69}, - "IOTX ", - 18}, - {{0x64, 0xCd, 0xF8, 0x19, 0xd3, 0xE7, 0x5A, 0xc8, 0xeC, 0x21, - 0x7B, 0x34, 0x96, 0xd7, 0xcE, 0x16, 0x7B, 0xe4, 0x2e, 0x80}, - "IPL ", - 18}, - {{0x00, 0x1f, 0x0a, 0xa5, 0xda, 0x15, 0x58, 0x5e, 0x5b, 0x23, - 0x05, 0xdb, 0xab, 0x2b, 0xac, 0x42, 0x5e, 0xa7, 0x10, 0x07}, - "IPSX ", - 18}, - {{0x0c, 0xf7, 0x13, 0xb1, 0x1c, 0x9b, 0x98, 0x6e, 0xc4, 0x0d, - 0x65, 0xbd, 0x4f, 0x7f, 0xbd, 0x50, 0xf6, 0xff, 0x2d, 0x64}, - "IST34 ", - 18}, - {{0x5e, 0x6b, 0x6d, 0x9a, 0xba, 0xd9, 0x09, 0x3f, 0xdc, 0x86, - 0x1e, 0xa1, 0x60, 0x0e, 0xba, 0x1b, 0x35, 0x5c, 0xd9, 0x40}, - "ITC ", - 18}, - {{0x0a, 0xeF, 0x06, 0xDc, 0xCC, 0xC5, 0x31, 0xe5, 0x81, 0xf0, - 0x44, 0x00, 0x59, 0xE6, 0xFf, 0xCC, 0x20, 0x60, 0x39, 0xEE}, - "ITT ", - 8}, - {{0xA4, 0xeA, 0x68, 0x7A, 0x2A, 0x7F, 0x29, 0xcF, 0x2d, 0xc6, - 0x6B, 0x39, 0xc6, 0x8e, 0x44, 0x11, 0xC0, 0xD0, 0x0C, 0x49}, - "IVY ", - 18}, - {{0xfc, 0xa4, 0x79, 0x62, 0xd4, 0x5a, 0xdf, 0xdf, 0xd1, 0xab, - 0x2d, 0x97, 0x23, 0x15, 0xdb, 0x4c, 0xe7, 0xcc, 0xf0, 0x94}, - "IXT ", - 8}, - {{0xc3, 0x4b, 0x21, 0xf6, 0xf8, 0xe5, 0x1c, 0xc9, 0x65, 0xc2, - 0x39, 0x3b, 0x3c, 0xcf, 0xa3, 0xb8, 0x2b, 0xeb, 0x24, 0x03}, - "IoT ", - 6}, - {{0x0d, 0x26, 0x2e, 0x5d, 0xc4, 0xa0, 0x6a, 0x0f, 0x1c, 0x90, - 0xce, 0x79, 0xc7, 0xa6, 0x0c, 0x09, 0xdf, 0xc8, 0x84, 0xe4}, - "J8T ", - 8}, - {{0x88, 0x4e, 0x39, 0x02, 0xC4, 0xd5, 0xcF, 0xA8, 0x6d, 0xe4, - 0xaC, 0xE7, 0xA9, 0x6A, 0xA9, 0x1E, 0xbC, 0x25, 0xC0, 0xFf}, - "JBX ", - 0}, - {{0xe2, 0xd8, 0x2d, 0xc7, 0xda, 0x0e, 0x6f, 0x88, 0x2e, 0x96, - 0x84, 0x64, 0x51, 0xf4, 0xfa, 0xbc, 0xc8, 0xf9, 0x05, 0x28}, - "JC ", - 18}, - {{0x87, 0x27, 0xc1, 0x12, 0xc7, 0x12, 0xc4, 0xa0, 0x33, 0x71, - 0xac, 0x87, 0xa7, 0x4d, 0xd6, 0xab, 0x10, 0x4a, 0xf7, 0x68}, - "JET ", - 18}, - {{0xa5, 0xFd, 0x1A, 0x79, 0x1C, 0x4d, 0xfc, 0xaa, 0xcC, 0x96, - 0x3D, 0x4F, 0x73, 0xc6, 0xAe, 0x58, 0x24, 0x14, 0x9e, 0xA7}, - "JNT ", - 18}, - {{0xdb, 0x45, 0x5c, 0x71, 0xc1, 0xbc, 0x2d, 0xe4, 0xe8, 0x0c, - 0xa4, 0x51, 0x18, 0x40, 0x41, 0xef, 0x32, 0x05, 0x40, 0x01}, - "JOT ", - 18}, - {{0xDD, 0xe1, 0x2a, 0x12, 0xA6, 0xf6, 0x71, 0x56, 0xe0, 0xDA, - 0x67, 0x2b, 0xe0, 0x5c, 0x37, 0x4e, 0x1B, 0x0a, 0x3e, 0x57}, - "JOY ", - 6}, - {{0x77, 0x34, 0x50, 0x33, 0x5e, 0xD4, 0xec, 0x3D, 0xB4, 0x5a, - 0xF7, 0x4f, 0x34, 0xF2, 0xc8, 0x53, 0x48, 0x64, 0x5D, 0x39}, - "JetCoins ", - 18}, - {{0x14, 0x10, 0x43, 0x4b, 0x03, 0x46, 0xf5, 0xbe, 0x67, 0x8d, - 0x0f, 0xb5, 0x54, 0xe5, 0xc7, 0xab, 0x62, 0x0f, 0x8f, 0x4a}, - "KAN ", - 18}, - {{0x0D, 0x6D, 0xD9, 0xf6, 0x8d, 0x24, 0xEC, 0x1d, 0x5f, 0xE2, - 0x17, 0x4f, 0x3E, 0xC8, 0xDA, 0xB5, 0x2B, 0x52, 0xBa, 0xF5}, - "KC ", - 18}, - {{0x72, 0xD3, 0x2a, 0xc1, 0xc5, 0xE6, 0x6B, 0xfC, 0x5b, 0x08, - 0x80, 0x62, 0x71, 0xf8, 0xeE, 0xF9, 0x15, 0x54, 0x51, 0x64}, - "KEE ", - 0}, - {{0x4c, 0xd9, 0x88, 0xaf, 0xba, 0xd3, 0x72, 0x89, 0xba, 0xaf, - 0x53, 0xc1, 0x3e, 0x98, 0xe2, 0xbd, 0x46, 0xaa, 0xea, 0x8c}, - "BihuKey ", - 18}, - {{0x4C, 0xC1, 0x93, 0x56, 0xf2, 0xD3, 0x73, 0x38, 0xb9, 0x80, - 0x2a, 0xa8, 0xE8, 0xfc, 0x58, 0xB0, 0x37, 0x32, 0x96, 0xE7}, - "SelfKey ", - 18}, - {{0x27, 0x69, 0x5E, 0x09, 0x14, 0x9A, 0xdC, 0x73, 0x8A, 0x97, - 0x8e, 0x9A, 0x67, 0x8F, 0x99, 0xE4, 0xc3, 0x9e, 0x9e, 0xb9}, - "KICK ", - 8}, - {{0x81, 0x8F, 0xc6, 0xC2, 0xEc, 0x59, 0x86, 0xbc, 0x6E, 0x2C, - 0xBf, 0x00, 0x93, 0x9d, 0x90, 0x55, 0x6a, 0xB1, 0x2c, 0xe5}, - "KIN ", - 18}, - {{0x46, 0x18, 0x51, 0x9d, 0xe4, 0xc3, 0x04, 0xf3, 0x44, 0x4f, - 0xfa, 0x7f, 0x81, 0x2d, 0xdd, 0xc2, 0x97, 0x1c, 0xc6, 0x88}, - "KIND ", - 8}, - {{0xdd, 0x97, 0x4D, 0x5C, 0x2e, 0x29, 0x28, 0xde, 0xA5, 0xF7, - 0x1b, 0x98, 0x25, 0xb8, 0xb6, 0x46, 0x68, 0x6B, 0xD2, 0x00}, - "KNC ", - 18}, - {{0x8e, 0x56, 0x10, 0xab, 0x5e, 0x39, 0xd2, 0x68, 0x28, 0x16, - 0x76, 0x40, 0xea, 0x29, 0x82, 0x3f, 0xe1, 0xdd, 0x58, 0x43}, - "KNDC ", - 8}, - {{0xff, 0x5c, 0x25, 0xd2, 0xf4, 0x0b, 0x47, 0xc4, 0xa3, 0x7f, - 0x98, 0x9d, 0xe9, 0x33, 0xe2, 0x65, 0x62, 0xef, 0x0a, 0xc0}, - "KNT ", - 16}, - {{0xb5, 0xc3, 0x3f, 0x96, 0x5c, 0x88, 0x99, 0xd2, 0x55, 0xc3, - 0x4c, 0xdd, 0x2a, 0x3e, 0xfa, 0x8a, 0xbc, 0xbb, 0x3d, 0xea}, - "KPR ", - 18}, - {{0x46, 0x4e, 0xbe, 0x77, 0xc2, 0x93, 0xe4, 0x73, 0xb4, 0x8c, - 0xfe, 0x96, 0xdd, 0xcf, 0x88, 0xfc, 0xf7, 0xbf, 0xda, 0xc0}, - "KRL ", - 18}, - {{0xdf, 0x13, 0x38, 0xFb, 0xAf, 0xe7, 0xaF, 0x17, 0x89, 0x15, - 0x16, 0x27, 0xB8, 0x86, 0x78, 0x1b, 0xa5, 0x56, 0xeF, 0x9a}, - "KUE ", - 18}, - {{0x24, 0x1b, 0xa6, 0x72, 0x57, 0x4a, 0x78, 0xa3, 0xa6, 0x04, - 0xcd, 0xd0, 0xa9, 0x44, 0x29, 0xa7, 0x3a, 0x84, 0xa3, 0x24}, - "KWATT ", - 18}, - {{0x95, 0x41, 0xFD, 0x8B, 0x9b, 0x5F, 0xA9, 0x73, 0x81, 0x78, - 0x37, 0x83, 0xCe, 0xBF, 0x2F, 0x5f, 0xA7, 0x93, 0xC2, 0x62}, - "KZN ", - 8}, - {{0xE5, 0x03, 0x65, 0xf5, 0xD6, 0x79, 0xCB, 0x98, 0xa1, 0xdd, - 0x62, 0xD6, 0xF6, 0xe5, 0x8e, 0x59, 0x32, 0x1B, 0xcd, 0xDf}, - "LA ", - 18}, - {{0xfD, 0x10, 0x7B, 0x47, 0x3A, 0xB9, 0x0e, 0x8F, 0xbd, 0x89, - 0x87, 0x21, 0x44, 0xa3, 0xDC, 0x92, 0xC4, 0x0F, 0xa8, 0xC9}, - "LALA ", - 18}, - {{0x2f, 0x85, 0xe5, 0x02, 0xa9, 0x88, 0xaf, 0x76, 0xf7, 0xee, - 0x6d, 0x83, 0xb7, 0xdb, 0x8d, 0x6c, 0x0a, 0x82, 0x3b, 0xf9}, - "LATX ", - 8}, - {{0xfe, 0x5f, 0x14, 0x1b, 0xf9, 0x4f, 0xe8, 0x4b, 0xc2, 0x8d, - 0xed, 0x0a, 0xb9, 0x66, 0xc1, 0x6b, 0x17, 0x49, 0x06, 0x57}, - "LBA ", - 18}, - {{0xaa, 0x19, 0x96, 0x1b, 0x6b, 0x85, 0x8d, 0x9f, 0x18, 0xa1, - 0x15, 0xf2, 0x5a, 0xa1, 0xd9, 0x8a, 0xbc, 0x1f, 0xdb, 0xa8}, - "LCS ", - 18}, - {{0x4a, 0x37, 0xa9, 0x1e, 0xec, 0x4c, 0x97, 0xf9, 0x09, 0x0c, - 0xe6, 0x6d, 0x21, 0xd3, 0xb3, 0xaa, 0xdf, 0x1a, 0xe5, 0xad}, - "LCT ", - 18}, - {{0x05, 0xc7, 0x06, 0x5d, 0x64, 0x40, 0x96, 0xa4, 0xe4, 0xc3, - 0xfe, 0x24, 0xaf, 0x86, 0xe3, 0x6d, 0xe0, 0x21, 0x07, 0x4b}, - "LCT ", - 18}, - {{0x51, 0x02, 0x79, 0x1c, 0xa0, 0x2f, 0xc3, 0x59, 0x53, 0x98, - 0x40, 0x0b, 0xfe, 0x0e, 0x33, 0xd7, 0xb6, 0xc8, 0x22, 0x67}, - "LDC ", - 18}, - {{0x5b, 0x26, 0xC5, 0xD0, 0x77, 0x2E, 0x5b, 0xba, 0xC8, 0xb3, - 0x18, 0x2A, 0xE9, 0xa1, 0x3f, 0x9B, 0xB2, 0xD0, 0x37, 0x65}, - "LEDU ", - 8}, - {{0x60, 0xC2, 0x44, 0x07, 0xd0, 0x17, 0x82, 0xC2, 0x17, 0x5D, - 0x32, 0xfe, 0x7C, 0x89, 0x21, 0xed, 0x73, 0x23, 0x71, 0xD1}, - "LEMO ", - 18}, - {{0x80, 0xfB, 0x78, 0x4B, 0x7e, 0xD6, 0x67, 0x30, 0xe8, 0xb1, - 0xDB, 0xd9, 0x82, 0x0a, 0xFD, 0x29, 0x93, 0x1a, 0xab, 0x03}, - "LEND ", - 18}, - {{0x0f, 0x4c, 0xa9, 0x26, 0x60, 0xef, 0xad, 0x97, 0xa9, 0xa7, - 0x0c, 0xb0, 0xfe, 0x96, 0x9c, 0x75, 0x54, 0x39, 0x77, 0x2c}, - "LEV ", - 9}, - {{0xc7, 0x98, 0xcd, 0x1c, 0x49, 0xdb, 0x0e, 0x29, 0x73, 0x12, - 0xe4, 0xc6, 0x82, 0x75, 0x26, 0x68, 0xce, 0x1d, 0xb2, 0xad}, - "LFR ", - 5}, - {{0xc5, 0x20, 0xF3, 0xAc, 0x30, 0x3a, 0x10, 0x7D, 0x8F, 0x4B, - 0x08, 0xb3, 0x26, 0xB6, 0xea, 0x66, 0xA4, 0xf9, 0x61, 0xcd}, - "LG ", - 18}, - {{0x59, 0x06, 0x1b, 0x6f, 0x26, 0xBB, 0x4A, 0x9c, 0xE5, 0x82, - 0x8A, 0x19, 0xd3, 0x5C, 0xFD, 0x5A, 0x4B, 0x80, 0xF0, 0x56}, - "LGD ", - 8}, - {{0x12, 0x3a, 0xb1, 0x95, 0xdd, 0x38, 0xb1, 0xb4, 0x05, 0x10, - 0xd4, 0x67, 0xa6, 0xa3, 0x59, 0xb2, 0x01, 0xaf, 0x05, 0x6f}, - "LGO ", - 8}, - {{0x2e, 0xb8, 0x6e, 0x8f, 0xc5, 0x20, 0xe0, 0xf6, 0xbb, 0x5d, - 0x9a, 0xf0, 0x8f, 0x92, 0x4f, 0xe7, 0x05, 0x58, 0xab, 0x89}, - "LGR ", - 8}, - {{0xe6, 0xdf, 0xbf, 0x1f, 0xac, 0xa9, 0x50, 0x36, 0xb8, 0xe7, - 0x6e, 0x1f, 0xb2, 0x89, 0x33, 0xd0, 0x25, 0xb7, 0x6c, 0xc0}, - "LIBER ", - 18}, - {{0xEB, 0x99, 0x51, 0x02, 0x16, 0x98, 0xB4, 0x2e, 0x43, 0x99, - 0xf9, 0xcB, 0xb6, 0x26, 0x7A, 0xa3, 0x5F, 0x82, 0xD5, 0x9D}, - "LIF ", - 18}, - {{0xff, 0x18, 0xdb, 0xc4, 0x87, 0xb4, 0xc2, 0xe3, 0x22, 0x2d, - 0x11, 0x59, 0x52, 0xba, 0xbf, 0xda, 0x8b, 0xa5, 0x2f, 0x5f}, - "LIFE ", - 18}, - {{0x02, 0xf6, 0x1f, 0xd2, 0x66, 0xda, 0x6e, 0x8b, 0x10, 0x2d, - 0x41, 0x21, 0xf5, 0xce, 0x7b, 0x99, 0x26, 0x40, 0xcf, 0x98}, - "LIKE ", - 18}, - {{0x51, 0x49, 0x10, 0x77, 0x1a, 0xf9, 0xca, 0x65, 0x6a, 0xf8, - 0x40, 0xdf, 0xf8, 0x3e, 0x82, 0x64, 0xec, 0xf9, 0x86, 0xca}, - "ChainLnk ", - 18}, - {{0xe2, 0xe6, 0xd4, 0xbe, 0x08, 0x6c, 0x69, 0x38, 0xb5, 0x3b, - 0x22, 0x14, 0x48, 0x55, 0xee, 0xf6, 0x74, 0x28, 0x16, 0x39}, - "LINK ptf ", - 18}, - {{0x24, 0xA7, 0x7c, 0x1F, 0x17, 0xC5, 0x47, 0x10, 0x5E, 0x14, - 0x81, 0x3e, 0x51, 0x7b, 0xe0, 0x6b, 0x00, 0x40, 0xaa, 0x76}, - "LIVE ", - 18}, - {{0x49, 0xbd, 0x2d, 0xa7, 0x5b, 0x1f, 0x7a, 0xf1, 0xe4, 0xdf, - 0xd6, 0xb1, 0x12, 0x5f, 0xec, 0xde, 0x59, 0xdb, 0xec, 0x58}, - "LKY ", - 18}, - {{0x25, 0xB6, 0x32, 0x5f, 0x5B, 0xB1, 0xc1, 0xE0, 0x3c, 0xfb, - 0xC3, 0xe5, 0x3F, 0x47, 0x0E, 0x1F, 0x1c, 0xa0, 0x22, 0xE3}, - "LML ", - 18}, - {{0x63, 0xe6, 0x34, 0x33, 0x0A, 0x20, 0x15, 0x0D, 0xbB, 0x61, - 0xB1, 0x56, 0x48, 0xbC, 0x73, 0x85, 0x5d, 0x6C, 0xCF, 0x07}, - "LNC ", - 18}, - {{0x6b, 0xeb, 0x41, 0x8f, 0xc6, 0xe1, 0x95, 0x82, 0x04, 0xac, - 0x8b, 0xad, 0xdc, 0xf1, 0x09, 0xb8, 0xe9, 0x69, 0x49, 0x66}, - "LinkCoin ", - 18}, - {{0x09, 0x47, 0xb0, 0xe6, 0xD8, 0x21, 0x37, 0x88, 0x05, 0xc9, - 0x59, 0x82, 0x91, 0x38, 0x5C, 0xE7, 0xc7, 0x91, 0xA6, 0xB2}, - "LND ", - 18}, - {{0x5e, 0x33, 0x46, 0x44, 0x40, 0x10, 0x13, 0x53, 0x22, 0x26, - 0x8a, 0x46, 0x30, 0xd2, 0xed, 0x5f, 0x8d, 0x09, 0x44, 0x6c}, - "LOC ", - 18}, - {{0x9c, 0x23, 0xd6, 0x7a, 0xea, 0x7b, 0x95, 0xd8, 0x09, 0x42, - 0xe3, 0x83, 0x6b, 0xcd, 0xf7, 0xe7, 0x08, 0xa7, 0x47, 0xc2}, - "LOCI ", - 18}, - {{0xC6, 0x45, 0x00, 0xDD, 0x7B, 0x0f, 0x17, 0x94, 0x80, 0x7e, - 0x67, 0x80, 0x2F, 0x8A, 0xbb, 0xf5, 0xF8, 0xFf, 0xb0, 0x54}, - "LOCUS ", - 18}, - {{0x25, 0x3c, 0x7d, 0xd0, 0x74, 0xf4, 0xba, 0xcb, 0x30, 0x53, - 0x87, 0xf9, 0x22, 0x22, 0x5a, 0x4f, 0x73, 0x7c, 0x08, 0xbd}, - "LOOK ", - 18}, - {{0x21, 0xae, 0x23, 0xb8, 0x82, 0xa3, 0x40, 0xa2, 0x22, 0x82, - 0x16, 0x20, 0x86, 0xbc, 0x98, 0xd3, 0xe2, 0xb7, 0x30, 0x18}, - "LOOK old ", - 18}, - {{0xa4, 0xe8, 0xc3, 0xec, 0x45, 0x61, 0x07, 0xea, 0x67, 0xd3, - 0x07, 0x5b, 0xf9, 0xe3, 0xdf, 0x3a, 0x75, 0x82, 0x3d, 0xb0}, - "LOOM ", - 18}, - {{0xEF, 0x68, 0xe7, 0xC6, 0x94, 0xF4, 0x0c, 0x82, 0x02, 0x82, - 0x1e, 0xDF, 0x52, 0x5d, 0xE3, 0x78, 0x24, 0x58, 0x63, 0x9f}, - "LRC ", - 18}, - {{0x5d, 0xbe, 0x29, 0x6f, 0x97, 0xb2, 0x3c, 0x4a, 0x6a, 0xa6, - 0x18, 0x3d, 0x73, 0xe5, 0x74, 0xd0, 0x2b, 0xa5, 0xc7, 0x19}, - "LUC ", - 18}, - {{0xFB, 0x12, 0xe3, 0xCc, 0xA9, 0x83, 0xB9, 0xf5, 0x9D, 0x90, - 0x91, 0x2F, 0xd1, 0x7F, 0x8D, 0x74, 0x5A, 0x8B, 0x29, 0x53}, - "LUCK ", - 0}, - {{0xa8, 0x9b, 0x59, 0x34, 0x86, 0x34, 0x47, 0xf6, 0xe4, 0xfc, - 0x53, 0xb3, 0x15, 0xa9, 0x3e, 0x87, 0x3b, 0xda, 0x69, 0xa3}, - "LUM ", - 18}, - {{0xfa, 0x05, 0xA7, 0x3F, 0xfE, 0x78, 0xef, 0x8f, 0x1a, 0x73, - 0x94, 0x73, 0xe4, 0x62, 0xc5, 0x4b, 0xae, 0x65, 0x67, 0xD9}, - "LUN ", - 18}, - {{0x57, 0xad, 0x67, 0xac, 0xf9, 0xbf, 0x01, 0x5e, 0x48, 0x20, - 0xfb, 0xd6, 0x6e, 0xa1, 0xa2, 0x1b, 0xed, 0x88, 0x52, 0xec}, - "LYM ", - 18}, - {{0x3f, 0x4b, 0x72, 0x66, 0x68, 0xda, 0x46, 0xf5, 0xe0, 0xe7, - 0x5a, 0xa5, 0xd4, 0x78, 0xac, 0xec, 0x9f, 0x38, 0x21, 0x0f}, - "M-ETH ", - 18}, - {{0x5b, 0x09, 0xa0, 0x37, 0x1c, 0x1d, 0xa4, 0x4a, 0x8e, 0x24, - 0xd3, 0x6b, 0xf5, 0xde, 0xb1, 0x14, 0x1a, 0x84, 0xd8, 0x75}, - "MAD ", - 18}, - {{0xe2, 0x5b, 0xCe, 0xc5, 0xD3, 0x80, 0x1c, 0xE3, 0xa7, 0x94, - 0x07, 0x9B, 0xF9, 0x4a, 0xdF, 0x1B, 0x8c, 0xCD, 0x80, 0x2D}, - "MAN ", - 18}, - {{0x0F, 0x5D, 0x2f, 0xB2, 0x9f, 0xb7, 0xd3, 0xCF, 0xeE, 0x44, - 0x4a, 0x20, 0x02, 0x98, 0xf4, 0x68, 0x90, 0x8c, 0xC9, 0x42}, - "MANA ", - 18}, - {{0xfd, 0xcc, 0x07, 0xAb, 0x60, 0x66, 0x0d, 0xe5, 0x33, 0xb5, - 0xAd, 0x26, 0xe1, 0x45, 0x7b, 0x56, 0x5a, 0x9D, 0x59, 0xBd}, - "MART ", - 18}, - {{0x38, 0x64, 0x67, 0xf1, 0xf3, 0xdd, 0xbe, 0x83, 0x24, 0x48, - 0x65, 0x04, 0x18, 0x31, 0x1a, 0x47, 0x9e, 0xec, 0xfc, 0x57}, - "MBRS ", - 0}, - {{0x93, 0xE6, 0x82, 0x10, 0x7d, 0x1E, 0x9d, 0xef, 0xB0, 0xb5, - 0xee, 0x70, 0x1C, 0x71, 0x70, 0x7a, 0x4B, 0x2E, 0x46, 0xBc}, - "MCAP ", - 8}, - {{0x13, 0x8A, 0x87, 0x52, 0x09, 0x3F, 0x4f, 0x9a, 0x79, 0xAa, - 0xeD, 0xF4, 0x8d, 0x4B, 0x92, 0x48, 0xfa, 0xb9, 0x3c, 0x9C}, - "MCI ", - 18}, - {{0xB6, 0x3B, 0x60, 0x6A, 0xc8, 0x10, 0xa5, 0x2c, 0xCa, 0x15, - 0xe4, 0x4b, 0xB6, 0x30, 0xfd, 0x42, 0xD8, 0xd1, 0xd8, 0x3d}, - "MCO ", - 8}, - {{0x51, 0xDB, 0x5A, 0xd3, 0x5C, 0x67, 0x1a, 0x87, 0x20, 0x7d, - 0x88, 0xfC, 0x11, 0xd5, 0x93, 0xAC, 0x0C, 0x84, 0x15, 0xbd}, - "MDA ", - 18}, - {{0x66, 0x18, 0x60, 0x08, 0xC1, 0x05, 0x06, 0x27, 0xF9, 0x79, - 0xd4, 0x64, 0xeA, 0xBb, 0x25, 0x88, 0x60, 0x56, 0x3d, 0xbE}, - "MDS ", - 18}, - {{0x81, 0x4e, 0x09, 0x08, 0xb1, 0x2a, 0x99, 0xfe, 0xcf, 0x5b, - 0xc1, 0x01, 0xbb, 0x5d, 0x0b, 0x8b, 0x5c, 0xdf, 0x7d, 0x26}, - "MDT ", - 18}, - {{0xfd, 0x1e, 0x80, 0x50, 0x8f, 0x24, 0x3e, 0x64, 0xce, 0x23, - 0x4e, 0xa8, 0x8a, 0x5f, 0xd2, 0x82, 0x7c, 0x71, 0xd4, 0xb7}, - "MEDX ", - 8}, - {{0xf0, 0x30, 0x45, 0xa4, 0xc8, 0x07, 0x7e, 0x38, 0xf3, 0xb8, - 0xe2, 0xed, 0x33, 0xb8, 0xae, 0xe6, 0x9e, 0xdf, 0x86, 0x9f}, - "MESH ", - 18}, - {{0x01, 0xf2, 0xac, 0xf2, 0x91, 0x48, 0x60, 0x33, 0x1c, 0x1c, - 0xb1, 0xa9, 0xac, 0xec, 0xda, 0x74, 0x75, 0xe0, 0x6a, 0xf8}, - "MESH ", - 18}, - {{0x5b, 0x8d, 0x43, 0xff, 0xde, 0x4a, 0x29, 0x82, 0xb9, 0xa5, - 0x38, 0x7c, 0xdf, 0x21, 0xd5, 0x4e, 0xad, 0x64, 0xac, 0x8d}, - "MEST ", - 18}, - {{0xa3, 0xd5, 0x8c, 0x4e, 0x56, 0xfe, 0xdc, 0xae, 0x3a, 0x7c, - 0x43, 0xa7, 0x25, 0xae, 0xe9, 0xa7, 0x1f, 0x0e, 0xce, 0x4e}, - "MET ", - 18}, - {{0xfe, 0xf3, 0x88, 0x4b, 0x60, 0x3c, 0x33, 0xef, 0x8e, 0xd4, - 0x18, 0x33, 0x46, 0xe0, 0x93, 0xa1, 0x73, 0xc9, 0x4d, 0xa6}, - "METM ", - 18}, - {{0x67, 0x10, 0xc6, 0x34, 0x32, 0xa2, 0xde, 0x02, 0x95, 0x4f, - 0xc0, 0xf8, 0x51, 0xdb, 0x07, 0x14, 0x6a, 0x6c, 0x03, 0x12}, - "MFG ", - 18}, - {{0xDF, 0x2C, 0x72, 0x38, 0x19, 0x8A, 0xd8, 0xB3, 0x89, 0x66, - 0x65, 0x74, 0xf2, 0xd8, 0xbc, 0x41, 0x1A, 0x4b, 0x74, 0x28}, - "MFT ", - 18}, - {{0x05, 0xD4, 0x12, 0xCE, 0x18, 0xF2, 0x40, 0x40, 0xbB, 0x3F, - 0xa4, 0x5C, 0xF2, 0xC6, 0x9e, 0x50, 0x65, 0x86, 0xD8, 0xe8}, - "MFTU ", - 18}, - {{0x40, 0x39, 0x50, 0x44, 0xac, 0x3c, 0x0c, 0x57, 0x05, 0x19, - 0x06, 0xda, 0x93, 0x8b, 0x54, 0xbd, 0x65, 0x57, 0xf2, 0x12}, - "MGO ", - 8}, - {{0x3a, 0x12, 0x37, 0xd3, 0x8d, 0x0f, 0xb9, 0x45, 0x13, 0xf8, - 0x5d, 0x61, 0x67, 0x9c, 0xad, 0x7f, 0x38, 0x50, 0x72, 0x42}, - "MIC ", - 18}, - {{0xe2, 0x3c, 0xd1, 0x60, 0x76, 0x1f, 0x63, 0xFC, 0x3a, 0x1c, - 0xF7, 0x8A, 0xa0, 0x34, 0xb6, 0xcd, 0xF9, 0x7d, 0x3E, 0x0C}, - "Mainstrt ", - 18}, - {{0xad, 0x8d, 0xd4, 0xc7, 0x25, 0xde, 0x1d, 0x31, 0xb9, 0xe8, - 0xf8, 0xd1, 0x46, 0x08, 0x9e, 0x9d, 0xc6, 0x88, 0x20, 0x93}, - "Mychat ", - 6}, - {{0x4a, 0x52, 0x7d, 0x8f, 0xc1, 0x3c, 0x52, 0x03, 0xab, 0x24, - 0xba, 0x09, 0x44, 0xf4, 0xcb, 0x14, 0x65, 0x8d, 0x1d, 0xb6}, - "MITx ", - 18}, - {{0x9f, 0x8F, 0x72, 0xaA, 0x93, 0x04, 0xc8, 0xB5, 0x93, 0xd5, - 0x55, 0xF1, 0x2e, 0xF6, 0x58, 0x9c, 0xC3, 0xA5, 0x79, 0xA2}, - "MKR ", - 18}, - {{0x79, 0x39, 0x88, 0x2b, 0x54, 0xfc, 0xf0, 0xbc, 0xae, 0x6b, - 0x53, 0xde, 0xc3, 0x9a, 0xd6, 0xe8, 0x06, 0x17, 0x64, 0x42}, - "MKT ", - 8}, - {{0xBE, 0xB9, 0xeF, 0x51, 0x4a, 0x37, 0x9B, 0x99, 0x7e, 0x07, - 0x98, 0xFD, 0xcC, 0x90, 0x1E, 0xe4, 0x74, 0xB6, 0xD9, 0xA1}, - "MLN ", - 18}, - {{0x1a, 0x95, 0xB2, 0x71, 0xB0, 0x53, 0x5D, 0x15, 0xfa, 0x49, - 0x93, 0x2D, 0xab, 0xa3, 0x1B, 0xA6, 0x12, 0xb5, 0x29, 0x46}, - "MNE ", - 8}, - {{0xA9, 0x87, 0x7b, 0x1e, 0x05, 0xD0, 0x35, 0x89, 0x91, 0x31, - 0xDB, 0xd1, 0xe4, 0x03, 0x82, 0x51, 0x66, 0xD0, 0x9f, 0x92}, - "MNT ", - 18}, - {{0x83, 0xce, 0xe9, 0xe0, 0x86, 0xa7, 0x7e, 0x49, 0x2e, 0xe0, - 0xbb, 0x93, 0xc2, 0xb0, 0x43, 0x7a, 0xd6, 0xfd, 0xec, 0xcc}, - "MNTP ", - 18}, - {{0x86, 0x5e, 0xc5, 0x8b, 0x06, 0xbf, 0x63, 0x05, 0xb8, 0x86, - 0x79, 0x3a, 0xa2, 0x0a, 0x2d, 0xa3, 0x1d, 0x03, 0x4e, 0x68}, - "MOC ", - 18}, - {{0x95, 0x7c, 0x30, 0xaB, 0x04, 0x26, 0xe0, 0xC9, 0x3C, 0xD8, - 0x24, 0x1E, 0x2c, 0x60, 0x39, 0x2d, 0x08, 0xc6, 0xaC, 0x8e}, - "MOD ", - 0}, - {{0x50, 0x12, 0x62, 0x28, 0x1b, 0x2b, 0xa0, 0x43, 0xe2, 0xfb, - 0xf1, 0x49, 0x04, 0x98, 0x06, 0x89, 0xcd, 0xdb, 0x0c, 0x78}, - "MORE ", - 2}, - {{0x26, 0x3c, 0x61, 0x84, 0x80, 0xdb, 0xe3, 0x5c, 0x30, 0x0d, - 0x8d, 0x5e, 0xcd, 0xa1, 0x9b, 0xbb, 0x98, 0x6a, 0xca, 0xed}, - "MOT ", - 18}, - {{0xfb, 0xd0, 0xd1, 0xc7, 0x7b, 0x50, 0x17, 0x96, 0xa3, 0x5d, - 0x86, 0xcf, 0x91, 0xd6, 0x5d, 0x97, 0x78, 0xee, 0xe6, 0x95}, - "MOVED ", - 3}, - {{0x44, 0xbf, 0x22, 0x94, 0x9f, 0x9c, 0xc8, 0x4b, 0x61, 0xb9, - 0x32, 0x8a, 0x9d, 0x88, 0x5d, 0x1b, 0x5c, 0x80, 0x6b, 0x41}, - "MOZO ", - 2}, - {{0xf4, 0x53, 0xb5, 0xb9, 0xd4, 0xe0, 0xb5, 0xc6, 0x2f, 0xfb, - 0x25, 0x6b, 0xb2, 0x37, 0x8c, 0xc2, 0xbc, 0x8e, 0x8a, 0x89}, - "MRK ", - 8}, - {{0x82, 0x12, 0x5A, 0xFe, 0x01, 0x81, 0x9D, 0xff, 0x15, 0x35, - 0xD0, 0xD6, 0x27, 0x6d, 0x57, 0x04, 0x52, 0x91, 0xB6, 0xc0}, - "MRL ", - 18}, - {{0x21, 0xf0, 0xF0, 0xfD, 0x31, 0x41, 0xEe, 0x9E, 0x11, 0xB3, - 0xd7, 0xf1, 0x3a, 0x10, 0x28, 0xCD, 0x51, 0x5f, 0x45, 0x9c}, - "MRP ", - 18}, - {{0xAB, 0x6C, 0xF8, 0x7a, 0x50, 0xF1, 0x7d, 0x7F, 0x5E, 0x1F, - 0xEa, 0xf8, 0x1B, 0x6f, 0xE9, 0xFf, 0xBe, 0x8E, 0xBF, 0x84}, - "MRV ", - 18}, - {{0x68, 0xAA, 0x3F, 0x23, 0x2d, 0xA9, 0xbd, 0xC2, 0x34, 0x34, - 0x65, 0x54, 0x57, 0x94, 0xef, 0x3e, 0xEa, 0x52, 0x09, 0xBD}, - "MSP ", - 18}, - {{0x90, 0x5E, 0x33, 0x7c, 0x6c, 0x86, 0x45, 0x26, 0x3D, 0x35, - 0x21, 0x20, 0x5A, 0xa3, 0x7b, 0xf4, 0xd0, 0x34, 0xe7, 0x45}, - "MTC Med ", - 18}, - {{0xdf, 0xdc, 0x0d, 0x82, 0xd9, 0x6f, 0x8f, 0xd4, 0x0c, 0xa0, - 0xcf, 0xb4, 0xa2, 0x88, 0x95, 0x5b, 0xec, 0xec, 0x20, 0x88}, - "MTC Mesh ", - 18}, - {{0xaF, 0x4D, 0xcE, 0x16, 0xDa, 0x28, 0x77, 0xf8, 0xc9, 0xe0, - 0x05, 0x44, 0xc9, 0x3B, 0x62, 0xAc, 0x40, 0x63, 0x1F, 0x16}, - "MTH ", - 5}, - {{0xF4, 0x33, 0x08, 0x93, 0x66, 0x89, 0x9D, 0x83, 0xa9, 0xf2, - 0x6A, 0x77, 0x3D, 0x59, 0xec, 0x7e, 0xCF, 0x30, 0x35, 0x5e}, - "MTL ", - 8}, - {{0x41, 0xdb, 0xec, 0xc1, 0xcd, 0xc5, 0x51, 0x7c, 0x6f, 0x76, - 0xf6, 0xa6, 0xe8, 0x36, 0xad, 0xbe, 0xe2, 0x75, 0x4d, 0xe3}, - "MTN ", - 18}, - {{0x7F, 0xC4, 0x08, 0x01, 0x11, 0x65, 0x76, 0x0e, 0xE3, 0x1b, - 0xE2, 0xBF, 0x20, 0xdA, 0xf4, 0x50, 0x35, 0x66, 0x92, 0xAf}, - "MTR ", - 8}, - {{0x1e, 0x49, 0xfF, 0x77, 0xc3, 0x55, 0xA3, 0xe3, 0x8D, 0x66, - 0x51, 0xce, 0x84, 0x04, 0xAF, 0x0E, 0x48, 0xc5, 0x39, 0x5f}, - "MTRc ", - 18}, - {{0x0A, 0xF4, 0x4e, 0x27, 0x84, 0x63, 0x72, 0x18, 0xdD, 0x1D, - 0x32, 0xA3, 0x22, 0xD4, 0x4e, 0x60, 0x3A, 0x8f, 0x0c, 0x6A}, - "MTX ", - 18}, - {{0x51, 0x56, 0x69, 0xd3, 0x08, 0xf8, 0x87, 0xfd, 0x83, 0xa4, - 0x71, 0xc7, 0x76, 0x4f, 0x5d, 0x08, 0x48, 0x86, 0xd3, 0x4d}, - "MUXE ", - 18}, - {{0xa8, 0x49, 0xea, 0xae, 0x99, 0x4f, 0xb8, 0x6a, 0xfa, 0x73, - 0x38, 0x2e, 0x9b, 0xd8, 0x8c, 0x2b, 0x6b, 0x18, 0xdc, 0x71}, - "MVL ", - 18}, - {{0x8a, 0x77, 0xe4, 0x09, 0x36, 0xbb, 0xc2, 0x7e, 0x80, 0xe9, - 0xa3, 0xf5, 0x26, 0x36, 0x8c, 0x96, 0x78, 0x69, 0xc8, 0x6d}, - "MVP ", - 18}, - {{0x64, 0x25, 0xc6, 0xbe, 0x90, 0x2d, 0x69, 0x2a, 0xe2, 0xdb, - 0x75, 0x2b, 0x3c, 0x26, 0x8a, 0xfa, 0xdb, 0x09, 0x9d, 0x3b}, - "MWAT ", - 18}, - {{0xf7, 0xe9, 0x83, 0x78, 0x16, 0x09, 0x01, 0x23, 0x07, 0xf2, - 0x51, 0x4f, 0x63, 0xD5, 0x26, 0xD8, 0x3D, 0x24, 0xF4, 0x66}, - "MYD ", - 16}, - {{0xa6, 0x45, 0x26, 0x4C, 0x56, 0x03, 0xE9, 0x6c, 0x3b, 0x0B, - 0x07, 0x8c, 0xda, 0xb6, 0x87, 0x33, 0x79, 0x4B, 0x0A, 0x71}, - "MYST ", - 8}, - {{0x8d, 0x80, 0xde, 0x8A, 0x78, 0x19, 0x83, 0x96, 0x32, 0x9d, - 0xfA, 0x76, 0x9a, 0xD5, 0x4d, 0x24, 0xbF, 0x90, 0xE7, 0xaa}, - "NAC ", - 18}, - {{0xff, 0xe0, 0x2e, 0xe4, 0xc6, 0x9e, 0xdf, 0x1b, 0x34, 0x0f, - 0xca, 0xd6, 0x4f, 0xbd, 0x6b, 0x37, 0xa7, 0xb9, 0xe2, 0x65}, - "NANJ ", - 8}, - {{0x5d, 0x65, 0xD9, 0x71, 0x89, 0x5E, 0xdc, 0x43, 0x8f, 0x46, - 0x5c, 0x17, 0xDB, 0x69, 0x92, 0x69, 0x8a, 0x52, 0x31, 0x8D}, - "NAS ", - 18}, - {{0x58, 0x80, 0x47, 0x36, 0x5d, 0xf5, 0xba, 0x58, 0x9f, 0x92, - 0x36, 0x04, 0xaa, 0xc2, 0x3d, 0x67, 0x35, 0x55, 0xc6, 0x23}, - "NAVI ", - 18}, - {{0x17, 0xf8, 0xaF, 0xB6, 0x3D, 0xfc, 0xDc, 0xC9, 0x0e, 0xbE, - 0x6e, 0x84, 0xF0, 0x60, 0xCc, 0x30, 0x6A, 0x98, 0x25, 0x7D}, - "NBAI ", - 18}, - {{0x9f, 0x19, 0x56, 0x17, 0xfa, 0x8f, 0xba, 0xd9, 0x54, 0x0c, - 0x5d, 0x11, 0x3a, 0x99, 0xa0, 0xa0, 0x17, 0x2a, 0xae, 0xdc}, - "NBC ", - 18}, - {{0x80, 0x98, 0x26, 0xcc, 0xea, 0xb6, 0x8c, 0x38, 0x77, 0x26, - 0xaf, 0x96, 0x27, 0x13, 0xb6, 0x4c, 0xb5, 0xcb, 0x3c, 0xca}, - "NCASH ", - 18}, - {{0x5d, 0x48, 0xf2, 0x93, 0xba, 0xed, 0x24, 0x7a, 0x2d, 0x01, - 0x89, 0x05, 0x8b, 0xa3, 0x7a, 0xa2, 0x38, 0xbd, 0x47, 0x25}, - "NCC Neur ", - 18}, - {{0x93, 0x44, 0xb3, 0x83, 0xb1, 0xD5, 0x9b, 0x5c, 0xe3, 0x46, - 0x8B, 0x23, 0x4D, 0xAB, 0x43, 0xC7, 0x19, 0x0b, 0xa7, 0x35}, - "NCC Need ", - 18}, - {{0x9e, 0x46, 0xa3, 0x8f, 0x5d, 0xaa, 0xbe, 0x86, 0x83, 0xe1, - 0x07, 0x93, 0xb0, 0x67, 0x49, 0xee, 0xf7, 0xd7, 0x33, 0xd1}, - "NCT ", - 18}, - {{0xa5, 0x4d, 0xdc, 0x7b, 0x3c, 0xce, 0x7f, 0xc8, 0xb1, 0xe3, - 0xfa, 0x02, 0x56, 0xd0, 0xdb, 0x80, 0xd2, 0xc1, 0x09, 0x70}, - "NDC ", - 18}, - {{0xcc, 0x80, 0xc0, 0x51, 0x05, 0x7b, 0x77, 0x4c, 0xd7, 0x50, - 0x67, 0xdc, 0x48, 0xf8, 0x98, 0x7c, 0x4e, 0xb9, 0x7a, 0x5e}, - "NEC ", - 18}, - {{0xd8, 0x44, 0x62, 0x36, 0xFA, 0x95, 0xb9, 0xb5, 0xf9, 0xfd, - 0x0f, 0x8E, 0x7D, 0xf1, 0xa9, 0x44, 0x82, 0x3c, 0x68, 0x3d}, - "NEEO ", - 18}, - {{0xcf, 0xb9, 0x86, 0x37, 0xbc, 0xae, 0x43, 0xC1, 0x33, 0x23, - 0xEA, 0xa1, 0x73, 0x1c, 0xED, 0x2B, 0x71, 0x69, 0x62, 0xfD}, - "NET ", - 18}, - {{0xa8, 0x23, 0xe6, 0x72, 0x20, 0x06, 0xaf, 0xe9, 0x9e, 0x91, - 0xc3, 0x0f, 0xf5, 0x29, 0x50, 0x52, 0xfe, 0x6b, 0x8e, 0x32}, - "NEU ", - 18}, - {{0x81, 0x49, 0x64, 0xb1, 0xbc, 0xeA, 0xf2, 0x4e, 0x26, 0x29, - 0x6D, 0x03, 0x1E, 0xaD, 0xf1, 0x34, 0xa2, 0xCa, 0x41, 0x05}, - "NEWB ", - 0}, - {{0xb6, 0x21, 0x32, 0xe3, 0x5a, 0x6c, 0x13, 0xee, 0x1e, 0xe0, - 0xf8, 0x4d, 0xc5, 0xd4, 0x0b, 0xad, 0x8d, 0x81, 0x52, 0x06}, - "NEXO ", - 18}, - {{0x72, 0xdd, 0x4b, 0x6b, 0xd8, 0x52, 0xa3, 0xaa, 0x17, 0x2b, - 0xe4, 0xd6, 0xc5, 0xa6, 0xdb, 0xec, 0x58, 0x8c, 0xf1, 0x31}, - "NGC ", - 18}, - {{0xe2, 0x65, 0x17, 0xA9, 0x96, 0x72, 0x99, 0x45, 0x3d, 0x3F, - 0x1B, 0x48, 0xAa, 0x00, 0x5E, 0x61, 0x27, 0xe6, 0x72, 0x10}, - "NIMFA ", - 18}, - {{0x55, 0x54, 0xe0, 0x4e, 0x76, 0x53, 0x3e, 0x1d, 0x14, 0xc5, - 0x2f, 0x05, 0xbe, 0xef, 0x6c, 0x9d, 0x32, 0x9e, 0x1e, 0x30}, - "NIO ", - 0}, - {{0x17, 0x76, 0xe1, 0xF2, 0x6f, 0x98, 0xb1, 0xA5, 0xdF, 0x9c, - 0xD3, 0x47, 0x95, 0x3a, 0x26, 0xdd, 0x3C, 0xb4, 0x66, 0x71}, - "NMR ", - 18}, - {{0x58, 0xa4, 0x88, 0x41, 0x82, 0xd9, 0xe8, 0x35, 0x59, 0x7f, - 0x40, 0x5e, 0x5f, 0x25, 0x82, 0x90, 0xe4, 0x6a, 0xe7, 0xc2}, - "NOAH ", - 18}, - {{0xf4, 0xfa, 0xea, 0x45, 0x55, 0x75, 0x35, 0x4d, 0x26, 0x99, - 0xbc, 0x20, 0x9b, 0x0a, 0x65, 0xca, 0x99, 0xf6, 0x99, 0x82}, - "NOBS ", - 18}, - {{0xec, 0x46, 0xf8, 0x20, 0x7d, 0x76, 0x60, 0x12, 0x45, 0x4c, - 0x40, 0x8d, 0xe2, 0x10, 0xbc, 0xbc, 0x22, 0x43, 0xe7, 0x1c}, - "NOX ", - 18}, - {{0x4c, 0xe6, 0xb3, 0x62, 0xbc, 0x77, 0xa2, 0x49, 0x66, 0xdd, - 0xa9, 0x07, 0x8f, 0x9c, 0xef, 0x81, 0xb3, 0xb8, 0x86, 0xa7}, - "NPER ", - 18}, - {{0x28, 0xb5, 0xe1, 0x2c, 0xce, 0x51, 0xf1, 0x55, 0x94, 0xb0, - 0xb9, 0x1d, 0x5b, 0x5a, 0xda, 0xa7, 0x0f, 0x68, 0x4a, 0x02}, - "NPX ", - 2}, - {{0xa1, 0x5c, 0x7e, 0xbe, 0x1f, 0x07, 0xca, 0xf6, 0xbf, 0xf0, - 0x97, 0xd8, 0xa5, 0x89, 0xfb, 0x8a, 0xc4, 0x9a, 0xe5, 0xb3}, - "NPXS ", - 18}, - {{0x69, 0xbe, 0xab, 0x40, 0x34, 0x38, 0x25, 0x3f, 0x13, 0xb6, - 0xe9, 0x2d, 0xb9, 0x1f, 0x7f, 0xb8, 0x49, 0x25, 0x82, 0x63}, - "NTK ", - 18}, - {{0x5d, 0x4d, 0x57, 0xcd, 0x06, 0xfa, 0x7f, 0xe9, 0x9e, 0x26, - 0xfd, 0xc4, 0x81, 0xb4, 0x68, 0xf7, 0x7f, 0x05, 0x07, 0x3c}, - "NTK ", - 18}, - {{0x8a, 0x99, 0xed, 0x8a, 0x1b, 0x20, 0x49, 0x03, 0xee, 0x46, - 0xe7, 0x33, 0xf2, 0xc1, 0x28, 0x6f, 0x6d, 0x20, 0xb1, 0x77}, - "NTO ", - 18}, - {{0x22, 0x33, 0x79, 0x9e, 0xe2, 0x68, 0x3d, 0x75, 0xdf, 0xef, - 0xac, 0xbc, 0xd2, 0xa2, 0x6c, 0x78, 0xd3, 0x4b, 0x47, 0x0d}, - "NTWK ", - 18}, - {{0x24, 0x5e, 0xf4, 0x7d, 0x4d, 0x05, 0x05, 0xec, 0xf3, 0xac, - 0x46, 0x3f, 0x4d, 0x81, 0xf4, 0x1a, 0xde, 0x8f, 0x1f, 0xd1}, - "NUG ", - 18}, - {{0xb9, 0x13, 0x18, 0xf3, 0x5b, 0xdb, 0x26, 0x2e, 0x94, 0x23, - 0xbc, 0x7c, 0x7c, 0x2a, 0x3a, 0x93, 0xdd, 0x93, 0xc9, 0x2c}, - "NULS ", - 18}, - {{0x57, 0xAb, 0x1E, 0x02, 0xfE, 0xE2, 0x37, 0x74, 0x58, 0x0C, - 0x11, 0x97, 0x40, 0x12, 0x9e, 0xAC, 0x70, 0x81, 0xe9, 0xD3}, - "sUSD ", - 18}, - {{0x76, 0x27, 0xde, 0x4b, 0x93, 0x26, 0x3a, 0x6a, 0x75, 0x70, - 0xb8, 0xda, 0xfa, 0x64, 0xba, 0xe8, 0x12, 0xe5, 0xc3, 0x94}, - "NXX ", - 8}, - {{0x5c, 0x61, 0x83, 0xd1, 0x0A, 0x00, 0xCD, 0x74, 0x7a, 0x6D, - 0xbb, 0x5F, 0x65, 0x8a, 0xD5, 0x14, 0x38, 0x3e, 0x94, 0x19}, - "NXX OLD ", - 8}, - {{0x45, 0xe4, 0x2D, 0x65, 0x9D, 0x9f, 0x94, 0x66, 0xcD, 0x5D, - 0xF6, 0x22, 0x50, 0x60, 0x33, 0x14, 0x5a, 0x9b, 0x89, 0xBc}, - "NxC ", - 3}, - {{0x5e, 0x88, 0x8B, 0x83, 0xB7, 0x28, 0x7E, 0xED, 0x4f, 0xB7, - 0xDA, 0x7b, 0x7d, 0x0A, 0x0D, 0x4c, 0x73, 0x5d, 0x94, 0xb3}, - "OAK ", - 18}, - {{0x70, 0x1C, 0x24, 0x4b, 0x98, 0x8a, 0x51, 0x3c, 0x94, 0x59, - 0x73, 0xdE, 0xFA, 0x05, 0xde, 0x93, 0x3b, 0x23, 0xFe, 0x1D}, - "OAX ", - 18}, - {{0x02, 0x35, 0xfe, 0x62, 0x4e, 0x04, 0x4a, 0x05, 0xee, 0xd7, - 0xa4, 0x3e, 0x16, 0xe3, 0x08, 0x3b, 0xc8, 0xa4, 0x28, 0x7a}, - "OCC ", - 18}, - {{0x40, 0x92, 0x67, 0x8e, 0x4e, 0x78, 0x23, 0x0f, 0x46, 0xa1, - 0x53, 0x4c, 0x0f, 0xbc, 0x8f, 0xa3, 0x97, 0x80, 0x89, 0x2b}, - "OCN ", - 18}, - {{0xbf, 0x52, 0xf2, 0xab, 0x39, 0xe2, 0x6e, 0x09, 0x51, 0xd2, - 0xa0, 0x2b, 0x49, 0xb7, 0x70, 0x2a, 0xbe, 0x30, 0x40, 0x6a}, - "ODE ", - 18}, - {{0x6f, 0x53, 0x9a, 0x94, 0x56, 0xa5, 0xbc, 0xb6, 0x33, 0x4a, - 0x1a, 0x41, 0x20, 0x7c, 0x37, 0x88, 0xf5, 0x82, 0x52, 0x07}, - "OHNI ", - 18}, - {{0xc6, 0x6e, 0xa8, 0x02, 0x71, 0x7b, 0xfb, 0x98, 0x33, 0x40, - 0x02, 0x64, 0xdd, 0x12, 0xc2, 0xbc, 0xea, 0xa3, 0x4a, 0x6d}, - "OLD_MKR ", - 18}, - {{0x9d, 0x92, 0x23, 0x43, 0x6d, 0xdd, 0x46, 0x6f, 0xc2, 0x47, - 0xe9, 0xdb, 0xbd, 0x20, 0x20, 0x7e, 0x64, 0x0f, 0xef, 0x58}, - "OLE ", - 18}, - {{0x64, 0xA6, 0x04, 0x93, 0xD8, 0x88, 0x72, 0x8C, 0xf4, 0x26, - 0x16, 0xe0, 0x34, 0xa0, 0xdf, 0xEA, 0xe3, 0x8E, 0xFC, 0xF0}, - "OLT ", - 18}, - {{0xd2, 0x61, 0x14, 0xcd, 0x6E, 0xE2, 0x89, 0xAc, 0xcF, 0x82, - 0x35, 0x0c, 0x8d, 0x84, 0x87, 0xfe, 0xdB, 0x8A, 0x0C, 0x07}, - "OMG ", - 18}, - {{0xb5, 0xdb, 0xc6, 0xd3, 0xcf, 0x38, 0x00, 0x79, 0xdf, 0x3b, - 0x27, 0x13, 0x56, 0x64, 0xb6, 0xbc, 0xf4, 0x5d, 0x18, 0x69}, - "OMX ", - 8}, - {{0xb2, 0x3b, 0xe7, 0x35, 0x73, 0xbc, 0x7e, 0x03, 0xdb, 0x6e, - 0x5d, 0xfc, 0x62, 0x40, 0x53, 0x68, 0x71, 0x6d, 0x28, 0xa8}, - "ONEK ", - 18}, - {{0xd3, 0x41, 0xd1, 0x68, 0x0e, 0xee, 0xe3, 0x25, 0x5b, 0x8c, - 0x4c, 0x75, 0xbc, 0xce, 0x7e, 0xb5, 0x7f, 0x14, 0x4d, 0xae}, - "onG ", - 18}, - {{0x68, 0x63, 0xbe, 0x0e, 0x7c, 0xf7, 0xce, 0x86, 0x0a, 0x57, - 0x47, 0x60, 0xe9, 0x02, 0x0d, 0x51, 0x9a, 0x8b, 0xdc, 0x47}, - "ONL ", - 18}, - {{0x69, 0xc4, 0xBB, 0x24, 0x0c, 0xF0, 0x5D, 0x51, 0xee, 0xab, - 0x69, 0x85, 0xBa, 0xb3, 0x55, 0x27, 0xd0, 0x4a, 0x8C, 0x64}, - "OPEN ", - 8}, - {{0x43, 0x55, 0xfC, 0x16, 0x0f, 0x74, 0x32, 0x8f, 0x9b, 0x38, - 0x3d, 0xF2, 0xEC, 0x58, 0x9b, 0xB3, 0xdF, 0xd8, 0x2B, 0xa0}, - "OPT ", - 18}, - {{0x83, 0x29, 0x04, 0x86, 0x39, 0x78, 0xb9, 0x48, 0x02, 0x12, - 0x31, 0x06, 0xe6, 0xeb, 0x49, 0x1b, 0xdf, 0x0d, 0xf9, 0x28}, - "OPTI ", - 18}, - {{0xff, 0x56, 0xCc, 0x6b, 0x1E, 0x6d, 0xEd, 0x34, 0x7a, 0xA0, - 0xB7, 0x67, 0x6C, 0x85, 0xAB, 0x0B, 0x3D, 0x08, 0xB0, 0xFA}, - "ORBS ", - 18}, - {{0x6F, 0x59, 0xe0, 0x46, 0x1A, 0xe5, 0xE2, 0x79, 0x9F, 0x1f, - 0xB3, 0x84, 0x7f, 0x05, 0xa6, 0x3B, 0x16, 0xd0, 0xDb, 0xF8}, - "ORCA ", - 18}, - {{0xd2, 0xfa, 0x8f, 0x92, 0xea, 0x72, 0xab, 0xb3, 0x5d, 0xbd, - 0x6d, 0xec, 0xa5, 0x71, 0x73, 0xd2, 0x2d, 0xb2, 0xba, 0x49}, - "ORI ", - 18}, - {{0x51, 0x6E, 0x54, 0x36, 0xbA, 0xfd, 0xc1, 0x10, 0x83, 0x65, - 0x4D, 0xE7, 0xBb, 0x9b, 0x95, 0x38, 0x2d, 0x08, 0xd5, 0xDE}, - "ORME ", - 8}, - {{0xeb, 0x9a, 0x4b, 0x18, 0x58, 0x16, 0xc3, 0x54, 0xdb, 0x92, - 0xdb, 0x09, 0xcc, 0x3b, 0x50, 0xbe, 0x60, 0xb9, 0x01, 0xb6}, - "ORS ", - 18}, - {{0x2C, 0x4e, 0x8f, 0x2D, 0x74, 0x61, 0x13, 0xd0, 0x69, 0x6c, - 0xE8, 0x9B, 0x35, 0xF0, 0xd8, 0xbF, 0x88, 0xE0, 0xAE, 0xcA}, - "OST ", - 18}, - {{0x88, 0x1e, 0xf4, 0x82, 0x11, 0x98, 0x2d, 0x01, 0xe2, 0xcb, - 0x70, 0x92, 0xc9, 0x15, 0xe6, 0x47, 0xcd, 0x40, 0xd8, 0x5c}, - "OTN ", - 18}, - {{0x17, 0x0b, 0x27, 0x5c, 0xed, 0x08, 0x9f, 0xff, 0xae, 0xbf, - 0xe9, 0x27, 0xf4, 0x45, 0xa3, 0x50, 0xed, 0x91, 0x60, 0xdc}, - "OWN ", - 8}, - {{0x65, 0xa1, 0x50, 0x14, 0x96, 0x4f, 0x21, 0x02, 0xff, 0x58, - 0x64, 0x7e, 0x16, 0xa1, 0x6a, 0x6b, 0x9e, 0x14, 0xbc, 0xf6}, - "Ox Fina ", - 3}, - {{0xb9, 0xbb, 0x08, 0xab, 0x7e, 0x9f, 0xa0, 0xa1, 0x35, 0x6b, - 0xd4, 0xa3, 0x9e, 0xc0, 0xca, 0x26, 0x7e, 0x03, 0xb0, 0xb3}, - "PAI ", - 18}, - {{0xfe, 0xDA, 0xE5, 0x64, 0x26, 0x68, 0xf8, 0x63, 0x6A, 0x11, - 0x98, 0x7F, 0xf3, 0x86, 0xbf, 0xd2, 0x15, 0xF9, 0x42, 0xEE}, - "PAL ", - 18}, - {{0xea, 0x5f, 0x88, 0xe5, 0x4d, 0x98, 0x2c, 0xbb, 0x0c, 0x44, - 0x1c, 0xde, 0x4e, 0x79, 0xbc, 0x30, 0x5e, 0x5b, 0x43, 0xbc}, - "PARETO ", - 18}, - {{0x6d, 0xd4, 0xe4, 0xaa, 0xd2, 0x9a, 0x40, 0xed, 0xd6, 0xa4, - 0x09, 0xb9, 0xc1, 0x62, 0x51, 0x86, 0xc9, 0x85, 0x5b, 0x4d}, - "PARKGEN ", - 8}, - {{0x77, 0x76, 0x1e, 0x63, 0xc0, 0x5a, 0xee, 0x66, 0x48, 0xfd, - 0xae, 0xaa, 0x9b, 0x94, 0x24, 0x83, 0x51, 0xaf, 0x9b, 0xcd}, - "PASS ", - 18}, - {{0xF3, 0xb3, 0xCa, 0xd0, 0x94, 0xB8, 0x93, 0x92, 0xfc, 0xE5, - 0xfa, 0xFD, 0x40, 0xbC, 0x03, 0xb8, 0x0F, 0x2B, 0xc6, 0x24}, - "PAT ", - 18}, - {{0x69, 0x44, 0x04, 0x59, 0x5e, 0x30, 0x75, 0xa9, 0x42, 0x39, - 0x7f, 0x46, 0x6a, 0xac, 0xd4, 0x62, 0xff, 0x1a, 0x7b, 0xd0}, - "PATENTS ", - 18}, - {{0xF8, 0x13, 0xF3, 0x90, 0x2b, 0xBc, 0x00, 0xA6, 0xDC, 0xe3, - 0x78, 0x63, 0x4d, 0x3B, 0x79, 0xD8, 0x4F, 0x98, 0x03, 0xd7}, - "PATH ", - 18}, - {{0x8e, 0x87, 0x0d, 0x67, 0xf6, 0x60, 0xd9, 0x5d, 0x5b, 0xe5, - 0x30, 0x38, 0x0d, 0x0e, 0xc0, 0xbd, 0x38, 0x82, 0x89, 0xe1}, - "PAX ", - 18}, - {{0xB9, 0x70, 0x48, 0x62, 0x8D, 0xB6, 0xB6, 0x61, 0xD4, 0xC2, - 0xaA, 0x83, 0x3e, 0x95, 0xDb, 0xe1, 0xA9, 0x05, 0xB2, 0x80}, - "PAY ", - 18}, - {{0x55, 0x64, 0x8d, 0xe1, 0x98, 0x36, 0x33, 0x85, 0x49, 0x13, - 0x0b, 0x1a, 0xf5, 0x87, 0xf1, 0x6b, 0xea, 0x46, 0xf6, 0x6b}, - "PBL ", - 18}, - {{0xF4, 0xc0, 0x7b, 0x18, 0x65, 0xbC, 0x32, 0x6A, 0x3c, 0x01, - 0x33, 0x94, 0x92, 0xCa, 0x75, 0x38, 0xFD, 0x03, 0x8C, 0xc0}, - "PBT ", - 4}, - {{0xfc, 0xAC, 0x7A, 0x75, 0x15, 0xe9, 0xA9, 0xd7, 0x61, 0x9f, - 0xA7, 0x7A, 0x1f, 0xa7, 0x38, 0x11, 0x1f, 0x66, 0x72, 0x7e}, - "PCH ", - 18}, - {{0xe3, 0xf4, 0xb4, 0xa5, 0xd9, 0x1e, 0x5c, 0xb9, 0x43, 0x5b, - 0x94, 0x7f, 0x09, 0x0a, 0x31, 0x97, 0x37, 0x03, 0x63, 0x12}, - "PCH ", - 18}, - {{0x36, 0x18, 0x51, 0x6F, 0x45, 0xCD, 0x3c, 0x91, 0x3F, 0x81, - 0xF9, 0x98, 0x7A, 0xF4, 0x10, 0x77, 0x93, 0x2B, 0xc4, 0x0d}, - "PCL ", - 8}, - {{0x53, 0x14, 0x8B, 0xb4, 0x55, 0x17, 0x07, 0xed, 0xF5, 0x1a, - 0x1e, 0x8d, 0x7A, 0x93, 0x69, 0x8d, 0x18, 0x93, 0x12, 0x25}, - "PCLOLD ", - 8}, - {{0x0d, 0xb0, 0x3B, 0x6C, 0xDe, 0x0B, 0x2d, 0x42, 0x7C, 0x64, - 0xa0, 0x4F, 0xeA, 0xfd, 0x82, 0x59, 0x38, 0x36, 0x8f, 0x1F}, - "PDATA ", - 18}, - {{0x8A, 0xe5, 0x6a, 0x68, 0x50, 0xa7, 0xcb, 0xea, 0xC3, 0xc3, - 0xAb, 0x2c, 0xB3, 0x11, 0xe7, 0x62, 0x01, 0x67, 0xeA, 0xC8}, - "PEG ", - 18}, - {{0x58, 0x84, 0x96, 0x9E, 0xc0, 0x48, 0x05, 0x56, 0xE1, 0x1d, - 0x11, 0x99, 0x80, 0x13, 0x6a, 0x4C, 0x17, 0xeD, 0xDE, 0xd1}, - "PET ", - 18}, - {{0xec, 0x18, 0xf8, 0x98, 0xb4, 0x07, 0x6a, 0x3e, 0x18, 0xf1, - 0x08, 0x9d, 0x33, 0x37, 0x6c, 0xc3, 0x80, 0xbd, 0xe6, 0x1d}, - "PETRO ", - 18}, - {{0x55, 0xc2, 0xA0, 0xC1, 0x71, 0xD9, 0x20, 0x84, 0x35, 0x60, - 0x59, 0x4d, 0xE3, 0xd6, 0xEE, 0xcC, 0x09, 0xeF, 0xc0, 0x98}, - "PEXT ", - 4}, - {{0x2f, 0xa3, 0x2a, 0x39, 0xfc, 0x1c, 0x39, 0x9e, 0x0c, 0xc7, - 0xb2, 0x93, 0x58, 0x68, 0xf5, 0x16, 0x5d, 0xe7, 0xce, 0x97}, - "PFR ", - 8}, - {{0x13, 0xc2, 0xfa, 0xb6, 0x35, 0x4d, 0x37, 0x90, 0xd8, 0xec, - 0xe4, 0xf0, 0xf1, 0xa3, 0x28, 0x0b, 0x4a, 0x25, 0xad, 0x96}, - "PHI ", - 18}, - {{0xE6, 0x45, 0x09, 0xF0, 0xbf, 0x07, 0xce, 0x2d, 0x29, 0xA7, - 0xeF, 0x19, 0xA8, 0xA9, 0xbc, 0x06, 0x54, 0x77, 0xC1, 0xB4}, - "PIPL ", - 8}, - {{0x0f, 0xf1, 0x61, 0x07, 0x1e, 0x62, 0x7a, 0x0e, 0x6d, 0xe1, - 0x38, 0x10, 0x5c, 0x73, 0x97, 0x0f, 0x86, 0xca, 0x79, 0x22}, - "PIT ", - 18}, - {{0x8e, 0xFF, 0xd4, 0x94, 0xeB, 0x69, 0x8c, 0xc3, 0x99, 0xAF, - 0x62, 0x31, 0xfC, 0xcd, 0x39, 0xE0, 0x8f, 0xd2, 0x0B, 0x15}, - "PIX ", - 0}, - {{0x02, 0xf2, 0xd4, 0xa0, 0x4e, 0x6e, 0x01, 0xac, 0xe8, 0x8b, - 0xd2, 0xcd, 0x63, 0x28, 0x75, 0x54, 0x3b, 0x2e, 0xf5, 0x77}, - "PKG ", - 18}, - {{0x26, 0x04, 0xfa, 0x40, 0x6b, 0xe9, 0x57, 0xe5, 0x42, 0xbe, - 0xb8, 0x9e, 0x67, 0x54, 0xfc, 0xde, 0x68, 0x15, 0xe8, 0x3f}, - "PKT ", - 18}, - {{0x59, 0x41, 0x6A, 0x25, 0x62, 0x8A, 0x76, 0xb4, 0x73, 0x0e, - 0xC5, 0x14, 0x86, 0x11, 0x4c, 0x32, 0xE0, 0xB5, 0x82, 0xA1}, - "PLASMA ", - 6}, - {{0xE4, 0x77, 0x29, 0x2f, 0x1B, 0x32, 0x68, 0x68, 0x7A, 0x29, - 0x37, 0x61, 0x16, 0xB0, 0xED, 0x27, 0xA9, 0xc7, 0x61, 0x70}, - "PLAY ", - 18}, - {{0x0A, 0xfF, 0xa0, 0x6e, 0x7F, 0xbe, 0x5b, 0xC9, 0xa7, 0x64, - 0xC9, 0x79, 0xaA, 0x66, 0xE8, 0x25, 0x6A, 0x63, 0x1f, 0x02}, - "PLBT ", - 6}, - {{0xe3, 0x81, 0x85, 0x04, 0xc1, 0xB3, 0x2b, 0xF1, 0x55, 0x7b, - 0x16, 0xC2, 0x38, 0xB2, 0xE0, 0x1F, 0xd3, 0x14, 0x9C, 0x17}, - "PLR ", - 18}, - {{0xD8, 0x91, 0x2C, 0x10, 0x68, 0x1D, 0x8B, 0x21, 0xFd, 0x37, - 0x42, 0x24, 0x4f, 0x44, 0x65, 0x8d, 0xBA, 0x12, 0x26, 0x4E}, - "PLU ", - 18}, - {{0x84, 0x6c, 0x66, 0xcf, 0x71, 0xc4, 0x3f, 0x80, 0x40, 0x3b, - 0x51, 0xfe, 0x39, 0x06, 0xb3, 0x59, 0x9d, 0x63, 0x33, 0x6f}, - "PMA ", - 18}, - {{0x81, 0xb4, 0xd0, 0x86, 0x45, 0xda, 0x11, 0x37, 0x4a, 0x03, - 0x74, 0x9a, 0xb1, 0x70, 0x83, 0x6e, 0x4e, 0x53, 0x97, 0x67}, - "PMNT ", - 9}, - {{0x93, 0xed, 0x3f, 0xbe, 0x21, 0x20, 0x7e, 0xc2, 0xe8, 0xf2, - 0xd3, 0xc3, 0xde, 0x6e, 0x05, 0x8c, 0xb7, 0x3b, 0xc0, 0x4d}, - "PNK ", - 18}, - {{0x67, 0x58, 0xb7, 0xd4, 0x41, 0xa9, 0x73, 0x9b, 0x98, 0x55, - 0x2b, 0x37, 0x37, 0x03, 0xd8, 0xd3, 0xd1, 0x4f, 0x9e, 0x62}, - "POA20 ", - 18}, - {{0x0e, 0x09, 0x89, 0xb1, 0xf9, 0xb8, 0xa3, 0x89, 0x83, 0xc2, - 0xba, 0x80, 0x53, 0x26, 0x9c, 0xa6, 0x2e, 0xc9, 0xb1, 0x95}, - "POE ", - 8}, - {{0x43, 0xf6, 0xa1, 0xbe, 0x99, 0x2d, 0xee, 0x40, 0x87, 0x21, - 0x74, 0x84, 0x90, 0x77, 0x2b, 0x15, 0x14, 0x3c, 0xe0, 0xa7}, - "POIN ", - 0}, - {{0x70, 0x5E, 0xE9, 0x6c, 0x1c, 0x16, 0x08, 0x42, 0xC9, 0x2c, - 0x1a, 0xeC, 0xfC, 0xFf, 0xcc, 0xc9, 0xC4, 0x12, 0xe3, 0xD9}, - "POLL ", - 18}, - {{0x99, 0x92, 0xeC, 0x3c, 0xF6, 0xA5, 0x5b, 0x00, 0x97, 0x8c, - 0xdD, 0xF2, 0xb2, 0x7B, 0xC6, 0x88, 0x2d, 0x88, 0xD1, 0xeC}, - "POLY ", - 18}, - {{0x77, 0x9B, 0x7b, 0x71, 0x3C, 0x86, 0xe3, 0xE6, 0x77, 0x4f, - 0x50, 0x40, 0xD9, 0xcC, 0xC2, 0xD4, 0x3a, 0xd3, 0x75, 0xF8}, - "POOL ", - 8}, - {{0xee, 0x60, 0x9f, 0xe2, 0x92, 0x12, 0x8c, 0xad, 0x03, 0xb7, - 0x86, 0xdb, 0xb9, 0xbc, 0x26, 0x34, 0xcc, 0xdb, 0xe7, 0xfc}, - "POS ", - 18}, - {{0x59, 0x58, 0x32, 0xf8, 0xfc, 0x6b, 0xf5, 0x9c, 0x85, 0xc5, - 0x27, 0xfe, 0xc3, 0x74, 0x0a, 0x1b, 0x7a, 0x36, 0x12, 0x69}, - "POWR ", - 6}, - {{0xc4, 0x22, 0x09, 0xac, 0xcc, 0x14, 0x02, 0x9c, 0x10, 0x12, - 0xfb, 0x56, 0x80, 0xd9, 0x5f, 0xbd, 0x60, 0x36, 0xe2, 0xa0}, - "PPP ", - 18}, - {{0xd4, 0xfa, 0x14, 0x60, 0xF5, 0x37, 0xbb, 0x90, 0x85, 0xd2, - 0x2C, 0x7b, 0xcC, 0xB5, 0xDD, 0x45, 0x0E, 0xf2, 0x8e, 0x3a}, - "PPT ", - 8}, - {{0x88, 0xa3, 0xe4, 0xf3, 0x5d, 0x64, 0xaa, 0xd4, 0x1a, 0x6d, - 0x40, 0x30, 0xac, 0x9a, 0xfe, 0x43, 0x56, 0xcb, 0x84, 0xfa}, - "PRE ", - 18}, - {{0x77, 0x28, 0xdf, 0xef, 0x5a, 0xbd, 0x46, 0x86, 0x69, 0xeb, - 0x7f, 0x9b, 0x48, 0xa7, 0xf7, 0x0a, 0x50, 0x1e, 0xd2, 0x9d}, - "PRG ", - 6}, - {{0x3a, 0xdf, 0xc4, 0x99, 0x9f, 0x77, 0xd0, 0x4c, 0x83, 0x41, - 0xba, 0xc5, 0xf3, 0xa7, 0x6f, 0x58, 0xdf, 0xf5, 0xb3, 0x7a}, - "PRIX ", - 8}, - {{0x18, 0x44, 0xb2, 0x15, 0x93, 0x26, 0x26, 0x68, 0xb7, 0x24, - 0x8d, 0x0f, 0x57, 0xa2, 0x20, 0xca, 0xab, 0xa4, 0x6a, 0xb9}, - "PRL ", - 18}, - {{0x90, 0x41, 0xfe, 0x5b, 0x3f, 0xde, 0xa0, 0xf5, 0xe4, 0xaf, - 0xdc, 0x17, 0xe7, 0x51, 0x80, 0x73, 0x8d, 0x87, 0x7a, 0x01}, - "PRO ", - 18}, - {{0x22, 0x6b, 0xb5, 0x99, 0xa1, 0x2C, 0x82, 0x64, 0x76, 0xe3, - 0xA7, 0x71, 0x45, 0x46, 0x97, 0xEA, 0x52, 0xE9, 0xE2, 0x20}, - "PRO ", - 8}, - {{0xA3, 0x14, 0x9E, 0x0f, 0xA0, 0x06, 0x1A, 0x90, 0x07, 0xfA, - 0xf3, 0x07, 0x07, 0x4c, 0xdC, 0xd2, 0x90, 0xf0, 0xe2, 0xFd}, - "PRON ", - 8}, - {{0xE4, 0x0C, 0x37, 0x4d, 0x88, 0x05, 0xb1, 0xdD, 0x58, 0xCD, - 0xcE, 0xFf, 0x99, 0x8A, 0x2F, 0x69, 0x20, 0xCb, 0x52, 0xFD}, - "PRPS ", - 18}, - {{0x16, 0x37, 0x33, 0xbc, 0xc2, 0x8d, 0xbf, 0x26, 0xB4, 0x1a, - 0x8C, 0xfA, 0x83, 0xe3, 0x69, 0xb5, 0xB3, 0xaf, 0x74, 0x1b}, - "PRS ", - 18}, - {{0x0c, 0x04, 0xd4, 0xf3, 0x31, 0xda, 0x8d, 0xf7, 0x5f, 0x9e, - 0x2e, 0x27, 0x1e, 0x3f, 0x3f, 0x14, 0x94, 0xc6, 0x6c, 0x36}, - "PRSP ", - 9}, - {{0x5d, 0x4a, 0xbc, 0x77, 0xb8, 0x40, 0x5a, 0xd1, 0x77, 0xd8, - 0xac, 0x66, 0x82, 0xd5, 0x84, 0xec, 0xbf, 0xd4, 0x6c, 0xec}, - "PST ", - 18}, - {{0x66, 0x49, 0x7a, 0x28, 0x3e, 0x0a, 0x00, 0x7b, 0xa3, 0x97, - 0x4e, 0x83, 0x77, 0x84, 0xc6, 0xae, 0x32, 0x34, 0x47, 0xde}, - "PT ", - 18}, - {{0x2a, 0x8E, 0x98, 0xe2, 0x56, 0xf3, 0x22, 0x59, 0xb5, 0xE5, - 0xCb, 0x55, 0xDd, 0x63, 0xC8, 0xe8, 0x91, 0x95, 0x06, 0x66}, - "PTC ", - 18}, - {{0x49, 0x46, 0x58, 0x3c, 0x5b, 0x86, 0xe0, 0x1c, 0xcd, 0x30, - 0xc7, 0x1a, 0x05, 0x61, 0x7d, 0x06, 0xe3, 0xe7, 0x30, 0x60}, - "PTON ", - 18}, - {{0x8A, 0xe4, 0xBF, 0x2C, 0x33, 0xa8, 0xe6, 0x67, 0xde, 0x34, - 0xB5, 0x49, 0x38, 0xB0, 0xcc, 0xD0, 0x3E, 0xb8, 0xCC, 0x06}, - "PTOY ", - 8}, - {{0x46, 0x89, 0xa4, 0xe1, 0x69, 0xeb, 0x39, 0xcc, 0x90, 0x78, - 0xc0, 0x94, 0x0e, 0x21, 0xff, 0x1a, 0xa8, 0xa3, 0x9b, 0x9c}, - "PTT ", - 18}, - {{0x55, 0x12, 0xe1, 0xd6, 0xa7, 0xbe, 0x42, 0x4b, 0x43, 0x23, - 0x12, 0x6b, 0x4f, 0x9e, 0x86, 0xd0, 0x23, 0xf9, 0x57, 0x64}, - "PTWO ", - 18}, - {{0xef, 0x6b, 0x4c, 0xe8, 0xc9, 0xbc, 0x83, 0x74, 0x4f, 0xbc, - 0xde, 0x26, 0x57, 0xb3, 0x2e, 0xc1, 0x87, 0x90, 0x45, 0x8a}, - "PUC ", - 0}, - {{0xc1, 0x48, 0x30, 0xe5, 0x3a, 0xa3, 0x44, 0xe8, 0xc1, 0x46, - 0x03, 0xa9, 0x12, 0x29, 0xa0, 0xb9, 0x25, 0xb0, 0xb2, 0x62}, - "PXT ", - 8}, - {{0x77, 0x03, 0xc3, 0x5c, 0xff, 0xdc, 0x5c, 0xda, 0x8d, 0x27, - 0xaa, 0x3d, 0xf2, 0xf9, 0xba, 0x69, 0x64, 0x54, 0x4b, 0x6e}, - "PYLNT ", - 18}, - {{0x61, 0x8e, 0x75, 0xac, 0x90, 0xb1, 0x2c, 0x60, 0x49, 0xba, - 0x3b, 0x27, 0xf5, 0xd5, 0xf8, 0x65, 0x1b, 0x00, 0x37, 0xf6}, - "QASH ", - 6}, - {{0x67, 0x1A, 0xbB, 0xe5, 0xCE, 0x65, 0x24, 0x91, 0x98, 0x53, - 0x42, 0xe8, 0x54, 0x28, 0xEB, 0x1b, 0x07, 0xbC, 0x6c, 0x64}, - "QAU ", - 8}, - {{0xcb, 0x5e, 0xa3, 0xc1, 0x90, 0xd8, 0xf8, 0x2d, 0xea, 0xdf, - 0x7c, 0xe5, 0xaf, 0x85, 0x5d, 0xdb, 0xf3, 0x3e, 0x39, 0x62}, - "QBIT ", - 6}, - {{0x24, 0x67, 0xaa, 0x6b, 0x5a, 0x23, 0x51, 0x41, 0x6f, 0xd4, - 0xc3, 0xde, 0xf8, 0x46, 0x2d, 0x84, 0x1f, 0xee, 0xec, 0xec}, - "QBX ", - 18}, - {{0xea, 0x26, 0xc4, 0xac, 0x16, 0xd4, 0xa5, 0xa1, 0x06, 0x82, - 0x0b, 0xc8, 0xae, 0xe8, 0x5f, 0xd0, 0xb7, 0xb2, 0xb6, 0x64}, - "QKC ", - 18}, - {{0x4a, 0x22, 0x0E, 0x60, 0x96, 0xB2, 0x5E, 0xAD, 0xb8, 0x83, - 0x58, 0xcb, 0x44, 0x06, 0x8A, 0x32, 0x48, 0x25, 0x46, 0x75}, - "QNT ", - 18}, - {{0xFF, 0xAA, 0x5f, 0xfc, 0x45, 0x5d, 0x91, 0x31, 0xf8, 0xA2, - 0x71, 0x3A, 0x74, 0x1f, 0xD1, 0x96, 0x03, 0x30, 0x50, 0x8B}, - "QRG ", - 18}, - {{0x69, 0x7b, 0xea, 0xc2, 0x8B, 0x09, 0xE1, 0x22, 0xC4, 0x33, - 0x2D, 0x16, 0x39, 0x85, 0xe8, 0xa7, 0x31, 0x21, 0xb9, 0x7F}, - "QRL ", - 8}, - {{0x99, 0xea, 0x4d, 0xB9, 0xEE, 0x77, 0xAC, 0xD4, 0x0B, 0x11, - 0x9B, 0xD1, 0xdC, 0x4E, 0x33, 0xe1, 0xC0, 0x70, 0xb8, 0x0d}, - "QSP ", - 18}, - {{0x2C, 0x3C, 0x1F, 0x05, 0x18, 0x7d, 0xBa, 0x7A, 0x5f, 0x2D, - 0xd4, 0x7D, 0xca, 0x57, 0x28, 0x1C, 0x4d, 0x4F, 0x18, 0x3F}, - "QTQ ", - 18}, - {{0x9a, 0x64, 0x2d, 0x6b, 0x33, 0x68, 0xdd, 0xc6, 0x62, 0xCA, - 0x24, 0x4b, 0xAd, 0xf3, 0x2c, 0xDA, 0x71, 0x60, 0x05, 0xBC}, - "QTUM ", - 18}, - {{0x26, 0x4d, 0xc2, 0xde, 0xdc, 0xdc, 0xbb, 0x89, 0x75, 0x61, - 0xa5, 0x7c, 0xba, 0x50, 0x85, 0xca, 0x41, 0x6f, 0xb7, 0xb4}, - "QUN ", - 18}, - {{0x11, 0x83, 0xf9, 0x2a, 0x56, 0x24, 0xd6, 0x8e, 0x85, 0xff, - 0xb9, 0x17, 0x0f, 0x16, 0xbf, 0x04, 0x43, 0xb4, 0xc2, 0x42}, - "QVT ", - 18}, - {{0x48, 0xf7, 0x75, 0xef, 0xbe, 0x4f, 0x5e, 0xce, 0x6e, 0x0d, - 0xf2, 0xf7, 0xb5, 0x93, 0x2d, 0xf5, 0x68, 0x23, 0xb9, 0x90}, - "R ", - 0}, - {{0x45, 0xed, 0xb5, 0x35, 0x94, 0x2a, 0x8c, 0x84, 0xd9, 0xf4, - 0xb5, 0xd3, 0x7e, 0x1b, 0x25, 0xf9, 0x1e, 0xa4, 0x80, 0x4c}, - "RAO ", - 18}, - {{0xfc, 0x2c, 0x4d, 0x8f, 0x95, 0x00, 0x2c, 0x14, 0xed, 0x0a, - 0x7a, 0xa6, 0x51, 0x02, 0xca, 0xc9, 0xe5, 0x95, 0x3b, 0x5e}, - "RBLX ", - 18}, - {{0xf9, 0x70, 0xb8, 0xe3, 0x6e, 0x23, 0xf7, 0xfc, 0x3f, 0xd7, - 0x52, 0xee, 0xa8, 0x6f, 0x8b, 0xe8, 0xd8, 0x33, 0x75, 0xa6}, - "RCN ", - 18}, - {{0x13, 0xf2, 0x5c, 0xd5, 0x2b, 0x21, 0x65, 0x0c, 0xaa, 0x82, - 0x25, 0xc9, 0x94, 0x23, 0x37, 0xd9, 0x14, 0xc9, 0xb0, 0x30}, - "RCT ", - 18}, - {{0x25, 0x5a, 0xa6, 0xdf, 0x07, 0x54, 0x0c, 0xb5, 0xd3, 0xd2, - 0x97, 0xf0, 0xd0, 0xd4, 0xd8, 0x4c, 0xb5, 0x2b, 0xc8, 0xe6}, - "RDN ", - 18}, - {{0x76, 0x7b, 0xA2, 0x91, 0x5E, 0xC3, 0x44, 0x01, 0x5a, 0x79, - 0x38, 0xE3, 0xeE, 0xDf, 0xeC, 0x27, 0x85, 0x19, 0x5D, 0x05}, - "REA ", - 18}, - {{0x92, 0x14, 0xec, 0x02, 0xcb, 0x71, 0xcb, 0xa0, 0xad, 0xa6, - 0x89, 0x6b, 0x8d, 0xa2, 0x60, 0x73, 0x6a, 0x67, 0xab, 0x10}, - "REAL ", - 18}, - {{0x5f, 0x53, 0xf7, 0xa8, 0x07, 0x56, 0x14, 0xb6, 0x99, 0xba, - 0xad, 0x0b, 0xc2, 0xc8, 0x99, 0xf4, 0xba, 0xd8, 0xfb, 0xbf}, - "REBL ", - 18}, - {{0x76, 0x96, 0x0d, 0xcc, 0xd5, 0xa1, 0xfe, 0x79, 0x9f, 0x7c, - 0x29, 0xbe, 0x9f, 0x19, 0xce, 0xb4, 0x62, 0x7a, 0xeb, 0x2f}, - "RED ", - 18}, - {{0xB5, 0x63, 0x30, 0x0A, 0x3B, 0xAc, 0x79, 0xFC, 0x09, 0xB9, - 0x3b, 0x6F, 0x84, 0xCE, 0x0d, 0x44, 0x65, 0xA2, 0xAC, 0x27}, - "REDC ", - 18}, - {{0x89, 0x30, 0x35, 0x00, 0xa7, 0xab, 0xfb, 0x17, 0x8b, 0x27, - 0x4f, 0xd8, 0x9f, 0x24, 0x69, 0xc2, 0x64, 0x95, 0x1e, 0x1f}, - "REF ", - 8}, - {{0x83, 0x98, 0x4d, 0x61, 0x42, 0x93, 0x4b, 0xb5, 0x35, 0x79, - 0x3a, 0x82, 0xad, 0xb0, 0xa4, 0x6e, 0xf0, 0xf6, 0x6b, 0x6d}, - "REM ", - 4}, - {{0x40, 0x8e, 0x41, 0x87, 0x6c, 0xCC, 0xDC, 0x0F, 0x92, 0x21, - 0x06, 0x00, 0xef, 0x50, 0x37, 0x26, 0x56, 0x05, 0x2a, 0x38}, - "REN ", - 18}, - {{0x19, 0x85, 0x36, 0x5e, 0x9f, 0x78, 0x35, 0x9a, 0x9B, 0x6A, - 0xD7, 0x60, 0xe3, 0x24, 0x12, 0xf4, 0xa4, 0x45, 0xE8, 0x62}, - "REP ", - 18}, - {{0x8f, 0x82, 0x21, 0xaF, 0xbB, 0x33, 0x99, 0x8d, 0x85, 0x84, - 0xA2, 0xB0, 0x57, 0x49, 0xbA, 0x73, 0xc3, 0x7a, 0x93, 0x8a}, - "REQ ", - 18}, - {{0xf0, 0x5a, 0x93, 0x82, 0xA4, 0xC3, 0xF2, 0x9E, 0x27, 0x84, - 0x50, 0x27, 0x54, 0x29, 0x3D, 0x88, 0xb8, 0x35, 0x10, 0x9C}, - "REX ", - 18}, - {{0xd0, 0x92, 0x9d, 0x41, 0x19, 0x54, 0xc4, 0x74, 0x38, 0xdc, - 0x1d, 0x87, 0x1d, 0xd6, 0x08, 0x1f, 0x5c, 0x5e, 0x14, 0x9c}, - "RFR ", - 4}, - {{0x4c, 0x38, 0x3b, 0xdc, 0xae, 0x52, 0xa6, 0xe1, 0xcb, 0x81, - 0x0c, 0x76, 0xc7, 0x0d, 0x6f, 0x31, 0xa2, 0x49, 0xec, 0x9b}, - "RGS ", - 8}, - {{0x16, 0x82, 0x96, 0xbb, 0x09, 0xe2, 0x4a, 0x88, 0x80, 0x5c, - 0xb9, 0xc3, 0x33, 0x56, 0x53, 0x6b, 0x98, 0x0d, 0x3f, 0xc5}, - "RHOC ", - 8}, - {{0x94, 0x69, 0xD0, 0x13, 0x80, 0x5b, 0xFf, 0xB7, 0xD3, 0xDE, - 0xBe, 0x5E, 0x78, 0x39, 0x23, 0x7e, 0x53, 0x5e, 0xc4, 0x83}, - "RING ", - 18}, - {{0xdd, 0x00, 0x72, 0x78, 0xb6, 0x67, 0xf6, 0xbe, 0xf5, 0x2f, - 0xd0, 0xa4, 0xc2, 0x36, 0x04, 0xaa, 0x1f, 0x96, 0x03, 0x9a}, - "RIPT ", - 8}, - {{0x0b, 0x17, 0x24, 0xcc, 0x9f, 0xda, 0x01, 0x86, 0x91, 0x1e, - 0xf6, 0xa7, 0x59, 0x49, 0xe9, 0xc0, 0xd3, 0xf0, 0xf2, 0xf3}, - "RIYA ", - 8}, - {{0x10, 0x6a, 0xa4, 0x92, 0x95, 0xb5, 0x25, 0xfc, 0xf9, 0x59, - 0xaa, 0x75, 0xec, 0x3f, 0x7d, 0xcb, 0xf5, 0x35, 0x2f, 0x1c}, - "RKT ", - 18}, - {{0x60, 0x7F, 0x4C, 0x5B, 0xB6, 0x72, 0x23, 0x0e, 0x86, 0x72, - 0x08, 0x55, 0x32, 0xf7, 0xe9, 0x01, 0x54, 0x4a, 0x73, 0x75}, - "RLC ", - 9}, - {{0xcC, 0xeD, 0x5B, 0x82, 0x88, 0x08, 0x6B, 0xE8, 0xc3, 0x8E, - 0x23, 0x56, 0x7e, 0x68, 0x4C, 0x37, 0x40, 0xbe, 0x4D, 0x48}, - "RLT ", - 10}, - {{0xbe, 0x99, 0xB0, 0x97, 0x09, 0xfc, 0x75, 0x3b, 0x09, 0xBC, - 0xf5, 0x57, 0xA9, 0x92, 0xF6, 0x60, 0x5D, 0x59, 0x97, 0xB0}, - "RLTY ", - 8}, - {{0x4a, 0x42, 0xd2, 0xc5, 0x80, 0xf8, 0x3d, 0xce, 0x40, 0x4a, - 0xca, 0xd1, 0x8d, 0xab, 0x26, 0xdb, 0x11, 0xa1, 0x75, 0x0e}, - "RLX ", - 18}, - {{0x7d, 0xc4, 0xf4, 0x12, 0x94, 0x69, 0x7a, 0x79, 0x03, 0xc4, - 0x02, 0x7f, 0x6a, 0xc5, 0x28, 0xc5, 0xd1, 0x4c, 0xd7, 0xeb}, - "RMC ", - 8}, - {{0x8d, 0x56, 0x82, 0x94, 0x1c, 0xe4, 0x56, 0x90, 0x0b, 0x12, - 0xd4, 0x7a, 0xc0, 0x6a, 0x88, 0xb4, 0x7c, 0x76, 0x4c, 0xe1}, - "RMESH ", - 18}, - {{0x09, 0x96, 0xbf, 0xb5, 0xd0, 0x57, 0xfa, 0xa2, 0x37, 0x64, - 0x0e, 0x25, 0x06, 0xbe, 0x7b, 0x4f, 0x9c, 0x46, 0xde, 0x0b}, - "RNDR ", - 18}, - {{0xff, 0x60, 0x3f, 0x43, 0x94, 0x6a, 0x3a, 0x28, 0xdf, 0x5e, - 0x6a, 0x73, 0x17, 0x25, 0x55, 0xd8, 0xc8, 0xb0, 0x23, 0x86}, - "RNT ", - 18}, - {{0x1f, 0xe7, 0x0b, 0xe7, 0x34, 0xe4, 0x73, 0xe5, 0x72, 0x1e, - 0xa5, 0x7c, 0x8b, 0x5b, 0x01, 0xe6, 0xca, 0xa5, 0x26, 0x86}, - "RNTB ", - 18}, - {{0x1b, 0xcb, 0xc5, 0x41, 0x66, 0xf6, 0xba, 0x14, 0x99, 0x34, - 0x87, 0x0b, 0x60, 0x50, 0x61, 0x99, 0xb6, 0xc9, 0xdb, 0x6d}, - "ROC ", - 10}, - {{0xA4, 0x01, 0x06, 0x13, 0x4c, 0x5b, 0xF4, 0xc4, 0x14, 0x11, - 0x55, 0x4e, 0x6d, 0xb9, 0x9B, 0x95, 0xA1, 0x5e, 0xd9, 0xd8}, - "ROCK ", - 18}, - {{0xC1, 0x6b, 0x54, 0x2f, 0xf4, 0x90, 0xe0, 0x1f, 0xcc, 0x0D, - 0xC5, 0x8a, 0x60, 0xe1, 0xEF, 0xdc, 0x3e, 0x35, 0x7c, 0xA6}, - "ROCK2 ", - 0}, - {{0x0E, 0x3d, 0xe3, 0xB0, 0xE3, 0xD6, 0x17, 0xFD, 0x8D, 0x1D, - 0x80, 0x88, 0x63, 0x9b, 0xA8, 0x77, 0xfe, 0xb4, 0xd7, 0x42}, - "ROCK2PAY ", - 18}, - {{0xc9, 0xde, 0x4b, 0x7f, 0x0c, 0x3d, 0x99, 0x1e, 0x96, 0x71, - 0x58, 0xe4, 0xd4, 0xbf, 0xa4, 0xb5, 0x1e, 0xc0, 0xb1, 0x14}, - "ROK ", - 18}, - {{0x49, 0x93, 0xCB, 0x95, 0xc7, 0x44, 0x3b, 0xdC, 0x06, 0x15, - 0x5c, 0x5f, 0x56, 0x88, 0xBe, 0x9D, 0x8f, 0x69, 0x99, 0xa5}, - "ROUND ", - 18}, - {{0xb4, 0xef, 0xd8, 0x5c, 0x19, 0x99, 0x9d, 0x84, 0x25, 0x13, - 0x04, 0xbd, 0xa9, 0x9e, 0x90, 0xb9, 0x23, 0x00, 0xbd, 0x93}, - "RPL ", - 18}, - {{0xec, 0x49, 0x1c, 0x10, 0x88, 0xea, 0xe9, 0x92, 0xb7, 0xa2, - 0x14, 0xef, 0xb0, 0xa2, 0x66, 0xad, 0x09, 0x27, 0xa7, 0x2a}, - "RTB ", - 18}, - {{0x3f, 0xd8, 0xf3, 0x9a, 0x96, 0x2e, 0xfd, 0xa0, 0x49, 0x56, - 0x98, 0x1c, 0x31, 0xab, 0x89, 0xfa, 0xb5, 0xfb, 0x8b, 0xc8}, - "RTH ", - 18}, - {{0x54, 0xb2, 0x93, 0x22, 0x60, 0x00, 0xcc, 0xBF, 0xC0, 0x4D, - 0xF9, 0x02, 0xeE, 0xC5, 0x67, 0xCB, 0x4C, 0x35, 0xa9, 0x03}, - "RTN ", - 18}, - {{0xf2, 0x78, 0xc1, 0xca, 0x96, 0x90, 0x95, 0xff, 0xdd, 0xde, - 0xd0, 0x20, 0x29, 0x0c, 0xf8, 0xb5, 0xc4, 0x24, 0xac, 0xe2}, - "RUFF ", - 18}, - {{0xdE, 0xE0, 0x2D, 0x94, 0xbe, 0x49, 0x29, 0xd2, 0x6f, 0x67, - 0xB6, 0x4A, 0xda, 0x7a, 0xCf, 0x19, 0x14, 0x00, 0x7F, 0x10}, - "RUNE ", - 18}, - {{0x3d, 0x1b, 0xa9, 0xbe, 0x9f, 0x66, 0xb8, 0xee, 0x10, 0x19, - 0x11, 0xbc, 0x36, 0xd3, 0xfb, 0x56, 0x2e, 0xac, 0x22, 0x44}, - "RVT ", - 18}, - {{0xe8, 0x66, 0x3a, 0x64, 0xa9, 0x61, 0x69, 0xff, 0x4d, 0x95, - 0xb4, 0x29, 0x9e, 0x7a, 0xe9, 0xa7, 0x6b, 0x90, 0x5b, 0x31}, - "Rating ", - 8}, - {{0x1e, 0xc8, 0xfe, 0x51, 0xa9, 0xb6, 0xa3, 0xa6, 0xc4, 0x27, - 0xd1, 0x7d, 0x9e, 0xcc, 0x30, 0x60, 0xfb, 0xc4, 0xa4, 0x5c}, - "S-A-PAT ", - 18}, - {{0x3e, 0xb9, 0x1d, 0x23, 0x7e, 0x49, 0x1e, 0x0d, 0xee, 0x85, - 0x82, 0xc4, 0x02, 0xd8, 0x5c, 0xb4, 0x40, 0xfb, 0x6b, 0x54}, - "S-ETH ", - 18}, - {{0x41, 0x56, 0xD3, 0x34, 0x2D, 0x5c, 0x38, 0x5a, 0x87, 0xD2, - 0x64, 0xF9, 0x06, 0x53, 0x73, 0x35, 0x92, 0x00, 0x05, 0x81}, - "SALT ", - 8}, - {{0x7C, 0x5A, 0x0C, 0xE9, 0x26, 0x7E, 0xD1, 0x9B, 0x22, 0xF8, - 0xca, 0xe6, 0x53, 0xF1, 0x98, 0xe3, 0xE8, 0xda, 0xf0, 0x98}, - "SAN ", - 18}, - {{0x78, 0xfe, 0x18, 0xe4, 0x1f, 0x43, 0x6e, 0x19, 0x81, 0xa3, - 0xa6, 0x0d, 0x15, 0x57, 0xc8, 0xa7, 0xa9, 0x37, 0x04, 0x61}, - "SCANDI ", - 2}, - {{0xd7, 0x63, 0x17, 0x87, 0xb4, 0xdc, 0xc8, 0x7b, 0x12, 0x54, - 0xcf, 0xd1, 0xe5, 0xce, 0x48, 0xe9, 0x68, 0x23, 0xde, 0xe8}, - "SCL ", - 8}, - {{0x24, 0xdc, 0xc8, 0x81, 0xe7, 0xdd, 0x73, 0x05, 0x46, 0x83, - 0x44, 0x52, 0xf2, 0x18, 0x72, 0xd5, 0xcb, 0x4b, 0x52, 0x93}, - "SCRL ", - 18}, - {{0xa1, 0x3f, 0x07, 0x43, 0x95, 0x1b, 0x4f, 0x6e, 0x3e, 0x3a, - 0xa0, 0x39, 0xf6, 0x82, 0xe1, 0x72, 0x79, 0xf5, 0x2b, 0xc3}, - "SENC ", - 18}, - {{0x67, 0x45, 0xfA, 0xB6, 0x80, 0x1e, 0x37, 0x6c, 0xD2, 0x4F, - 0x03, 0x57, 0x2B, 0x9C, 0x9B, 0x0D, 0x4E, 0xdD, 0xDC, 0xcf}, - "SENSE ", - 8}, - {{0xa4, 0x4e, 0x51, 0x37, 0x29, 0x3e, 0x85, 0x5b, 0x1b, 0x7b, - 0xc7, 0xe2, 0xc6, 0xf8, 0xcd, 0x79, 0x6f, 0xfc, 0xb0, 0x37}, - "SENT ", - 8}, - {{0xe0, 0x6e, 0xda, 0x74, 0x35, 0xba, 0x74, 0x9b, 0x04, 0x73, - 0x80, 0xce, 0xd4, 0x91, 0x21, 0xdd, 0xe9, 0x33, 0x34, 0xae}, - "SET ", - 0}, - {{0x98, 0xf5, 0xe9, 0xb7, 0xf0, 0xe3, 0x39, 0x56, 0xc0, 0x44, - 0x3e, 0x81, 0xbf, 0x7d, 0xeb, 0x8b, 0x5b, 0x1e, 0xd5, 0x45}, - "SEXY ", - 18}, - {{0xa1, 0xcc, 0xc1, 0x66, 0xfa, 0xf0, 0xE9, 0x98, 0xb3, 0xE3, - 0x32, 0x25, 0xA1, 0xA0, 0x30, 0x1B, 0x1C, 0x86, 0x11, 0x9D}, - "SGEL ", - 18}, - {{0xb2, 0x13, 0x5a, 0xb9, 0x69, 0x5a, 0x76, 0x78, 0xdd, 0x59, - 0x0b, 0x1a, 0x99, 0x6c, 0xb0, 0xf3, 0x7b, 0xcb, 0x07, 0x18}, - "SGN ", - 9}, - {{0x33, 0xc6, 0x23, 0xa2, 0xba, 0xaf, 0xeb, 0x8d, 0x15, 0xdf, - 0xaf, 0x3c, 0xe4, 0x40, 0x95, 0xef, 0xec, 0x83, 0xd7, 0x2c}, - "SGP ", - 18}, - {{0xcb, 0x5a, 0x05, 0xbe, 0xf3, 0x25, 0x76, 0x13, 0xe9, 0x84, - 0xc1, 0x7d, 0xbc, 0xf0, 0x39, 0x95, 0x2b, 0x6d, 0x88, 0x3f}, - "SGR ", - 8}, - {{0x37, 0x42, 0x75, 0x76, 0x32, 0x4f, 0xE1, 0xf3, 0x62, 0x5c, - 0x91, 0x02, 0x67, 0x47, 0x72, 0xd7, 0xCF, 0x71, 0x37, 0x7d}, - "SelfieYo ", - 18}, - {{0xd2, 0x48, 0xB0, 0xD4, 0x8E, 0x44, 0xaa, 0xF9, 0xc4, 0x9a, - 0xea, 0x03, 0x12, 0xbe, 0x7E, 0x13, 0xa6, 0xdc, 0x14, 0x68}, - "StatusGn ", - 1}, - {{0xe2, 0x5b, 0x0b, 0xba, 0x01, 0xdc, 0x56, 0x30, 0x31, 0x2b, - 0x6a, 0x21, 0x92, 0x7e, 0x57, 0x80, 0x61, 0xa1, 0x3f, 0x55}, - "SHIP ", - 18}, - {{0xEF, 0x2E, 0x99, 0x66, 0xeb, 0x61, 0xBB, 0x49, 0x4E, 0x53, - 0x75, 0xd5, 0xDf, 0x8d, 0x67, 0xB7, 0xdB, 0x8A, 0x78, 0x0D}, - "SHIT ", - 0}, - {{0x85, 0x42, 0x32, 0x5b, 0x72, 0xc6, 0xd9, 0xfc, 0x0a, 0xd2, - 0xca, 0x96, 0x5a, 0x78, 0x43, 0x54, 0x13, 0xa9, 0x15, 0xa0}, - "SHL ", - 18}, - {{0xef, 0x24, 0x63, 0x09, 0x93, 0x60, 0xa0, 0x85, 0xf1, 0xf1, - 0x0b, 0x07, 0x6e, 0xd7, 0x2e, 0xf6, 0x25, 0x49, 0x7a, 0x06}, - "SHP ", - 18}, - {{0x8a, 0x18, 0x7d, 0x52, 0x85, 0xd3, 0x16, 0xbc, 0xbc, 0x9a, - 0xda, 0xfc, 0x08, 0xb5, 0x1d, 0x70, 0xa0, 0xd8, 0xe0, 0x00}, - "SIFT ", - 0}, - {{0x68, 0x88, 0xa1, 0x6e, 0xA9, 0x79, 0x2c, 0x15, 0xA4, 0xDC, - 0xF2, 0xf6, 0xC6, 0x23, 0xD0, 0x55, 0xc8, 0xeD, 0xe7, 0x92}, - "SIG ", - 18}, - {{0x4a, 0xf3, 0x28, 0xc5, 0x29, 0x21, 0x70, 0x6d, 0xcb, 0x73, - 0x9f, 0x25, 0x78, 0x62, 0x10, 0x49, 0x91, 0x69, 0xaf, 0xe6}, - "SKB ", - 8}, - {{0x13, 0xDB, 0x74, 0xB3, 0xcf, 0x51, 0x2F, 0x65, 0xC4, 0xb9, - 0x16, 0x83, 0x94, 0x0B, 0x4f, 0x39, 0x55, 0xE0, 0x50, 0x85}, - "SKE ", - 8}, - {{0x2b, 0xDC, 0x0D, 0x42, 0x99, 0x60, 0x17, 0xfC, 0xe2, 0x14, - 0xb2, 0x16, 0x07, 0xa5, 0x15, 0xDA, 0x41, 0xA9, 0xE0, 0xC5}, - "SKIN ", - 6}, - {{0xd9, 0x9b, 0x8a, 0x7f, 0xa4, 0x8e, 0x25, 0xcc, 0xe8, 0x3b, - 0x81, 0x81, 0x22, 0x20, 0xa3, 0xe0, 0x3b, 0xf6, 0x4e, 0x5f}, - "SKM ", - 18}, - {{0x49, 0x94, 0xe8, 0x18, 0x97, 0xa9, 0x20, 0xc0, 0xFE, 0xA2, - 0x35, 0xeb, 0x8C, 0xEd, 0xEE, 0xd3, 0xc6, 0xfF, 0xF6, 0x97}, - "SKO1 ", - 18}, - {{0x4c, 0x38, 0x2F, 0x8E, 0x09, 0x61, 0x5A, 0xC8, 0x6E, 0x08, - 0xCE, 0x58, 0x26, 0x6C, 0xC2, 0x27, 0xe7, 0xd4, 0xD9, 0x13}, - "SKR ", - 6}, - {{0xfd, 0xFE, 0x8b, 0x7a, 0xB6, 0xCF, 0x1b, 0xD1, 0xE3, 0xd1, - 0x45, 0x38, 0xEf, 0x40, 0x68, 0x62, 0x96, 0xC4, 0x20, 0x52}, - "SKRP ", - 18}, - {{0x6E, 0x34, 0xd8, 0xd8, 0x47, 0x64, 0xD4, 0x0f, 0x6D, 0x7b, - 0x39, 0xcd, 0x56, 0x9F, 0xd0, 0x17, 0xbF, 0x53, 0x17, 0x7D}, - "SKRP 1 ", - 18}, - {{0x32, 0x4a, 0x48, 0xeb, 0xcb, 0xb4, 0x6e, 0x61, 0x99, 0x39, - 0x31, 0xef, 0x9d, 0x35, 0xf6, 0x69, 0x7c, 0xd2, 0x90, 0x1b}, - "SKRP 1-E ", - 18}, - {{0x7A, 0x5f, 0xF2, 0x95, 0xDc, 0x82, 0x39, 0xd5, 0xC2, 0x37, - 0x4E, 0x4D, 0x89, 0x42, 0x02, 0xaA, 0xF0, 0x29, 0xCa, 0xb6}, - "SLT ", - 3}, - {{0x79, 0x28, 0xc8, 0xaB, 0xF1, 0xF7, 0x4e, 0xF9, 0xF9, 0x6D, - 0x4D, 0x0a, 0x44, 0xe3, 0xb4, 0x20, 0x9d, 0x36, 0x07, 0x85}, - "SLY ", - 18}, - {{0x6F, 0x6D, 0xEb, 0x5d, 0xb0, 0xC4, 0x99, 0x4A, 0x82, 0x83, - 0xA0, 0x1D, 0x6C, 0xFe, 0xEB, 0x27, 0xFc, 0x3b, 0xBe, 0x9C}, - "SMART ", - 0}, - {{0x39, 0x01, 0x3f, 0x96, 0x1c, 0x37, 0x8f, 0x02, 0xc2, 0xb8, - 0x2a, 0x6e, 0x1d, 0x31, 0xe9, 0x81, 0x27, 0x86, 0xfd, 0x9d}, - "SMS ", - 3}, - {{0x2d, 0xcf, 0xaa, 0xc1, 0x1c, 0x9e, 0xeb, 0xd8, 0xc6, 0xc4, - 0x21, 0x03, 0xfe, 0x9e, 0x2a, 0x6a, 0xd2, 0x37, 0xaf, 0x27}, - "SmartNod ", - 18}, - {{0x55, 0xf9, 0x39, 0x85, 0x43, 0x1f, 0xc9, 0x30, 0x40, 0x77, - 0x68, 0x7a, 0x35, 0xa1, 0xba, 0x10, 0x3d, 0xc1, 0xe0, 0x81}, - "SmartMsh ", - 18}, - {{0x78, 0xEb, 0x8D, 0xC6, 0x41, 0x07, 0x7F, 0x04, 0x9f, 0x91, - 0x06, 0x59, 0xb6, 0xd5, 0x80, 0xE8, 0x0d, 0xC4, 0xd2, 0x37}, - "SocialMk ", - 8}, - {{0x19, 0x8a, 0x87, 0xb3, 0x11, 0x41, 0x43, 0x91, 0x3d, 0x42, - 0x29, 0xfb, 0x0f, 0x6d, 0x4b, 0xcb, 0x44, 0xaa, 0x8a, 0xff}, - "SNBL ", - 8}, - {{0xF4, 0x13, 0x41, 0x46, 0xAF, 0x2d, 0x51, 0x1D, 0xd5, 0xEA, - 0x8c, 0xDB, 0x1C, 0x4A, 0xC8, 0x8C, 0x57, 0xD6, 0x04, 0x04}, - "SNC ", - 18}, - {{0xf3, 0x33, 0xb2, 0xAc, 0xe9, 0x92, 0xac, 0x2b, 0xBD, 0x87, - 0x98, 0xbF, 0x57, 0xBc, 0x65, 0xa0, 0x61, 0x84, 0xaf, 0xBa}, - "SND ", - 0}, - {{0xcF, 0xD6, 0xAe, 0x8B, 0xF1, 0x3f, 0x42, 0xDE, 0x14, 0x86, - 0x73, 0x51, 0xeA, 0xff, 0x7A, 0x8A, 0x3b, 0x9F, 0xbB, 0xe7}, - "SNG ", - 8}, - {{0xae, 0xC2, 0xE8, 0x7E, 0x0A, 0x23, 0x52, 0x66, 0xD9, 0xC5, - 0xAD, 0xc9, 0xDE, 0xb4, 0xb2, 0xE2, 0x9b, 0x54, 0xD0, 0x09}, - "SNGLS ", - 0}, - {{0x44, 0xF5, 0x88, 0xaE, 0xeB, 0x8C, 0x44, 0x47, 0x14, 0x39, - 0xD1, 0x27, 0x0B, 0x36, 0x03, 0xc6, 0x6a, 0x92, 0x62, 0xF1}, - "SNIP ", - 18}, - {{0x98, 0x3F, 0x6d, 0x60, 0xdb, 0x79, 0xea, 0x8c, 0xA4, 0xeB, - 0x99, 0x68, 0xC6, 0xaF, 0xf8, 0xcf, 0xA0, 0x4B, 0x3c, 0x63}, - "SNM ", - 18}, - {{0xbd, 0xc5, 0xba, 0xc3, 0x9d, 0xbe, 0x13, 0x2b, 0x1e, 0x03, - 0x0e, 0x89, 0x8a, 0xe3, 0x83, 0x00, 0x17, 0xd7, 0xd9, 0x69}, - "SNOV ", - 18}, - {{0x74, 0x4d, 0x70, 0xFD, 0xBE, 0x2B, 0xa4, 0xCF, 0x95, 0x13, - 0x16, 0x26, 0x61, 0x4a, 0x17, 0x63, 0xDF, 0x80, 0x5B, 0x9E}, - "SNT ", - 18}, - {{0x28, 0x59, 0x02, 0x1e, 0xe7, 0xf2, 0xcb, 0x10, 0x16, 0x2e, - 0x67, 0xf3, 0x3a, 0xf2, 0xd2, 0x27, 0x64, 0xb3, 0x1a, 0xff}, - "SNTR ", - 4}, - {{0x2d, 0x0e, 0x95, 0xbd, 0x47, 0x95, 0xd7, 0xac, 0xe0, 0xda, - 0x3c, 0x0f, 0xf7, 0xb7, 0x06, 0xa5, 0x97, 0x0e, 0xb9, 0xd3}, - "SOC ", - 18}, - {{0x1f, 0x54, 0x63, 0x8b, 0x77, 0x37, 0x19, 0x3f, 0xfd, 0x86, - 0xc1, 0x9e, 0xc5, 0x19, 0x07, 0xa7, 0xc4, 0x17, 0x55, 0xd8}, - "SOL ", - 6}, - {{0x1c, 0x62, 0xac, 0xa2, 0xb7, 0x60, 0x5d, 0xb3, 0x60, 0x6e, - 0xac, 0xda, 0x7b, 0xc6, 0x7a, 0x18, 0x57, 0xdd, 0xb8, 0xff}, - "SONIQ ", - 18}, - {{0x42, 0xd6, 0x62, 0x2d, 0xec, 0xe3, 0x94, 0xb5, 0x49, 0x99, - 0xfb, 0xd7, 0x3d, 0x10, 0x81, 0x23, 0x80, 0x6f, 0x6a, 0x18}, - "SPANK ", - 18}, - {{0x58, 0xbf, 0x7d, 0xf5, 0x7d, 0x9D, 0xA7, 0x11, 0x3c, 0x4c, - 0xCb, 0x49, 0xd8, 0x46, 0x3D, 0x49, 0x08, 0xC7, 0x35, 0xcb}, - "SPARC ", - 18}, - {{0x24, 0xae, 0xf3, 0xbf, 0x1a, 0x47, 0x56, 0x15, 0x00, 0xf9, - 0x43, 0x0d, 0x74, 0xed, 0x40, 0x97, 0xc4, 0x7f, 0x51, 0xf2}, - "SPARTA ", - 4}, - {{0x1d, 0xea, 0x97, 0x9a, 0xe7, 0x6f, 0x26, 0x07, 0x18, 0x70, - 0xf8, 0x24, 0x08, 0x8d, 0xa7, 0x89, 0x79, 0xeb, 0x91, 0xc8}, - "SPD ", - 18}, - {{0x85, 0x08, 0x93, 0x89, 0xC1, 0x4B, 0xd9, 0xc7, 0x7F, 0xC2, - 0xb8, 0xF0, 0xc3, 0xd1, 0xdC, 0x33, 0x63, 0xBf, 0x06, 0xEf}, - "SPF ", - 18}, - {{0x38, 0x33, 0xdd, 0xa0, 0xae, 0xb6, 0x94, 0x7b, 0x98, 0xce, - 0x45, 0x4d, 0x89, 0x36, 0x6c, 0xba, 0x8c, 0xc5, 0x55, 0x28}, - "SPHTX ", - 18}, - {{0x03, 0x24, 0xdd, 0x19, 0x5d, 0x0c, 0xd5, 0x3f, 0x9f, 0x07, - 0xbe, 0xe6, 0xa4, 0x8e, 0xe7, 0xa2, 0x0b, 0xad, 0x73, 0x8f}, - "SPICE ", - 8}, - {{0x20, 0xF7, 0xA3, 0xDd, 0xF2, 0x44, 0xdc, 0x92, 0x99, 0x97, - 0x5b, 0x4D, 0xa1, 0xC3, 0x9F, 0x8D, 0x5D, 0x75, 0xf0, 0x5A}, - "SPN ", - 6}, - {{0x05, 0xaa, 0xaa, 0x82, 0x9a, 0xfa, 0x40, 0x7d, 0x83, 0x31, - 0x5c, 0xde, 0xd1, 0xd4, 0x5e, 0xb1, 0x60, 0x25, 0x91, 0x0c}, - "SPX ", - 18}, - {{0x68, 0xd5, 0x7c, 0x9a, 0x1C, 0x35, 0xf6, 0x3E, 0x2c, 0x83, - 0xeE, 0x8e, 0x49, 0xA6, 0x4e, 0x9d, 0x70, 0x52, 0x8D, 0x25}, - "SRN ", - 18}, - {{0xbb, 0xFF, 0x86, 0x2d, 0x90, 0x6E, 0x34, 0x8E, 0x99, 0x46, - 0xBf, 0xb2, 0x13, 0x2e, 0xcB, 0x15, 0x7D, 0xa3, 0xD4, 0xb4}, - "SS shard ", - 18}, - {{0x6e, 0x20, 0x50, 0xCB, 0xFB, 0x3e, 0xD8, 0xA4, 0xd3, 0x9b, - 0x64, 0xcC, 0x9f, 0x47, 0xE7, 0x11, 0xa0, 0x3a, 0x5a, 0x89}, - "SSH ", - 18}, - {{0x62, 0x4d, 0x52, 0x0b, 0xab, 0x2e, 0x4a, 0xd8, 0x39, 0x35, - 0xfa, 0x50, 0x3f, 0xb1, 0x30, 0x61, 0x43, 0x74, 0xe8, 0x50}, - "SSP ", - 4}, - {{0x9a, 0x00, 0x5c, 0x9a, 0x89, 0xbd, 0x72, 0xa4, 0xbd, 0x27, - 0x72, 0x1e, 0x7a, 0x09, 0xa3, 0xc1, 0x1d, 0x2b, 0x03, 0xc4}, - "STAC ", - 18}, - {{0xF7, 0x0a, 0x64, 0x2b, 0xD3, 0x87, 0xF9, 0x43, 0x80, 0xfF, - 0xb9, 0x04, 0x51, 0xC2, 0xc8, 0x1d, 0x4E, 0xb8, 0x2C, 0xBc}, - "STAR ", - 18}, - {{0x09, 0xbc, 0xa6, 0xeb, 0xab, 0x05, 0xee, 0x2a, 0xe9, 0x45, - 0xbe, 0x4e, 0xda, 0x51, 0x39, 0x3d, 0x94, 0xbf, 0x7b, 0x99}, - "STB ", - 4}, - {{0x62, 0x9a, 0xEe, 0x55, 0xed, 0x49, 0x58, 0x1C, 0x33, 0xab, - 0x27, 0xf9, 0x40, 0x3F, 0x79, 0x92, 0xA2, 0x89, 0xff, 0xd5}, - "STC ", - 18}, - {{0xaE, 0x73, 0xB3, 0x8d, 0x1c, 0x9A, 0x8b, 0x27, 0x41, 0x27, - 0xec, 0x30, 0x16, 0x0a, 0x49, 0x27, 0xC4, 0xd7, 0x18, 0x24}, - "STK ", - 18}, - {{0x59, 0x93, 0x46, 0x77, 0x9e, 0x90, 0xfc, 0x3F, 0x5F, 0x99, - 0x7b, 0x5e, 0xa7, 0x15, 0x34, 0x98, 0x20, 0xF9, 0x15, 0x71}, - "STN ", - 4}, - {{0xB6, 0x4e, 0xf5, 0x1C, 0x88, 0x89, 0x72, 0xc9, 0x08, 0xCF, - 0xac, 0xf5, 0x9B, 0x47, 0xC1, 0xAf, 0xBC, 0x0A, 0xb8, 0xaC}, - "STORJ ", - 8}, - {{0xD0, 0xa4, 0xb8, 0x94, 0x6C, 0xb5, 0x2f, 0x06, 0x61, 0x27, - 0x3b, 0xfb, 0xC6, 0xfD, 0x0E, 0x0C, 0x75, 0xFc, 0x64, 0x33}, - "STORM ", - 18}, - {{0xec, 0xd5, 0x70, 0xbB, 0xf7, 0x47, 0x61, 0xb9, 0x60, 0xFa, - 0x04, 0xCc, 0x10, 0xfe, 0x2c, 0x4e, 0x86, 0xFf, 0xDA, 0x36}, - "STP ", - 8}, - {{0x5c, 0x3a, 0x22, 0x85, 0x10, 0xd2, 0x46, 0xb7, 0x8a, 0x37, - 0x65, 0xc2, 0x02, 0x21, 0xcb, 0xf3, 0x08, 0x2b, 0x44, 0xa4}, - "STQ ", - 18}, - {{0xBA, 0xE2, 0x35, 0x82, 0x3D, 0x72, 0x55, 0xD9, 0xD4, 0x86, - 0x35, 0xcE, 0xd4, 0x73, 0x52, 0x27, 0x24, 0x4C, 0xd5, 0x83}, - "STR ", - 18}, - {{0x46, 0x49, 0x24, 0x73, 0x75, 0x5e, 0x8d, 0xF9, 0x60, 0xF8, - 0x03, 0x48, 0x77, 0xF6, 0x17, 0x32, 0xD7, 0x18, 0xCE, 0x96}, - "STRC ", - 8}, - {{0x03, 0x71, 0xa8, 0x2e, 0x4a, 0x9d, 0x0a, 0x43, 0x12, 0xf3, - 0xee, 0x2a, 0xc9, 0xc6, 0x95, 0x85, 0x12, 0x89, 0x13, 0x72}, - "STU ", - 18}, - {{0x00, 0x6B, 0xeA, 0x43, 0xBa, 0xa3, 0xf7, 0xA6, 0xf7, 0x65, - 0xF1, 0x4f, 0x10, 0xA1, 0xa1, 0xb0, 0x83, 0x34, 0xEF, 0x45}, - "STX ", - 18}, - {{0x12, 0x48, 0x0E, 0x24, 0xeb, 0x5b, 0xec, 0x1a, 0x9D, 0x43, - 0x69, 0xCa, 0xB6, 0xa8, 0x0c, 0xaD, 0x3c, 0x0A, 0x37, 0x7A}, - "SUB ", - 2}, - {{0xe1, 0x20, 0xc1, 0xec, 0xbf, 0xdf, 0xea, 0x7f, 0x0a, 0x8f, - 0x0e, 0xe3, 0x00, 0x63, 0x49, 0x1e, 0x8c, 0x26, 0xfe, 0xdf}, - "SUR ", - 8}, - {{0xbd, 0xeb, 0x4b, 0x83, 0x25, 0x1f, 0xb1, 0x46, 0x68, 0x7f, - 0xa1, 0x9d, 0x1c, 0x66, 0x0f, 0x99, 0x41, 0x1e, 0xef, 0xe3}, - "SVD ", - 18}, - {{0x0b, 0xb2, 0x17, 0xe4, 0x0f, 0x8a, 0x5c, 0xb7, 0x9a, 0xdf, - 0x04, 0xe1, 0xaa, 0xb6, 0x0e, 0x5a, 0xbd, 0x0d, 0xfc, 0x1e}, - "SWFTC ", - 8}, - {{0x9e, 0x88, 0x61, 0x34, 0x18, 0xcf, 0x03, 0xdc, 0xa5, 0x4d, - 0x6a, 0x2c, 0xf6, 0xad, 0x93, 0x4a, 0x78, 0xc7, 0xa1, 0x7a}, - "SWM ", - 18}, - {{0xB9, 0xe7, 0xF8, 0x56, 0x8e, 0x08, 0xd5, 0x65, 0x9f, 0x5D, - 0x29, 0xC4, 0x99, 0x71, 0x73, 0xd8, 0x4C, 0xdF, 0x26, 0x07}, - "SWT ", - 18}, - {{0x12, 0xb3, 0x06, 0xfa, 0x98, 0xf4, 0xcb, 0xb8, 0xd4, 0x45, - 0x7f, 0xdf, 0xf3, 0xa0, 0xa0, 0xa5, 0x6f, 0x07, 0xcc, 0xdf}, - "SXDT ", - 18}, - {{0x2c, 0x82, 0xc7, 0x3d, 0x5b, 0x34, 0xaa, 0x01, 0x59, 0x89, - 0x46, 0x2b, 0x29, 0x48, 0xcd, 0x61, 0x6a, 0x37, 0x64, 0x1f}, - "SXUT ", - 18}, - {{0x10, 0xb1, 0x23, 0xfd, 0xdd, 0xe0, 0x03, 0x24, 0x31, 0x99, - 0xaa, 0xd0, 0x35, 0x22, 0x06, 0x5d, 0xc0, 0x58, 0x27, 0xa0}, - "SYN ", - 18}, - {{0xb1, 0xee, 0xf1, 0x47, 0x02, 0x8e, 0x9f, 0x48, 0x0d, 0xbc, - 0x5c, 0xca, 0xa3, 0x27, 0x7d, 0x41, 0x7d, 0x1b, 0x85, 0xf0}, - "Seele ", - 18}, - {{0x4c, 0xa7, 0x41, 0x85, 0x53, 0x2d, 0xc1, 0x78, 0x95, 0x27, - 0x19, 0x4e, 0x5b, 0x9c, 0x86, 0x6d, 0xd3, 0x3f, 0x4e, 0x82}, - "SenSatoI ", - 18}, - {{0xD6, 0x59, 0x60, 0xFA, 0xcb, 0x8E, 0x4a, 0x2d, 0xFc, 0xb2, - 0xC2, 0x21, 0x2c, 0xb2, 0xe4, 0x4a, 0x02, 0xe2, 0xa5, 0x7E}, - "Soar ", - 6}, - {{0x1d, 0x4c, 0xcc, 0x31, 0xda, 0xb6, 0xea, 0x20, 0xf4, 0x61, - 0xd3, 0x29, 0xa0, 0x56, 0x2c, 0x1c, 0x58, 0x41, 0x25, 0x15}, - "TALAO ", - 18}, - {{0xc2, 0x7a, 0x2f, 0x05, 0xfa, 0x57, 0x7a, 0x83, 0xba, 0x0f, - 0xdb, 0x4c, 0x38, 0x44, 0x3c, 0x07, 0x18, 0x35, 0x65, 0x01}, - "TAU ", - 18}, - {{0xFA, 0xCC, 0xD5, 0xFc, 0x83, 0xc3, 0xE4, 0xC3, 0xc1, 0xAC, - 0x1E, 0xF3, 0x5D, 0x15, 0xad, 0xf0, 0x6b, 0xCF, 0x20, 0x9C}, - "TBC2 ", - 8}, - {{0xAF, 0xe6, 0x05, 0x11, 0x34, 0x1a, 0x37, 0x48, 0x8d, 0xe2, - 0x5B, 0xef, 0x35, 0x19, 0x52, 0x56, 0x2E, 0x31, 0xfC, 0xc1}, - "TBT ", - 8}, - {{0x3a, 0x92, 0xbd, 0x39, 0x6a, 0xef, 0x82, 0xaf, 0x98, 0xeb, - 0xc0, 0xaa, 0x90, 0x30, 0xd2, 0x5a, 0x23, 0xb1, 0x1c, 0x6b}, - "TBX ", - 18}, - {{0xfA, 0x0e, 0xF5, 0xE0, 0x34, 0xCa, 0xE1, 0xAE, 0x75, 0x2d, - 0x59, 0xbd, 0xb8, 0xaD, 0xcD, 0xe3, 0x7E, 0xd7, 0xaB, 0x97}, - "TCA ", - 18}, - {{0x99, 0x72, 0xa0, 0xf2, 0x41, 0x94, 0x44, 0x7e, 0x73, 0xa7, - 0xe8, 0xb6, 0xcd, 0x26, 0xa5, 0x2e, 0x02, 0xdd, 0xfa, 0xd5}, - "TCH ", - 0}, - {{0x2a, 0x1d, 0xba, 0xbe, 0x65, 0xc5, 0x95, 0xB0, 0x02, 0x2e, - 0x75, 0x20, 0x8C, 0x34, 0x01, 0x41, 0x39, 0xd5, 0xd3, 0x57}, - "TDH ", - 18}, - {{0x1c, 0x79, 0xab, 0x32, 0xc6, 0x6a, 0xca, 0xa1, 0xe9, 0xe8, - 0x19, 0x52, 0xb8, 0xaa, 0xa5, 0x81, 0xb4, 0x3e, 0x54, 0xe7}, - "TEAM ", - 4}, - {{0xEc, 0x32, 0xA9, 0x72, 0x5C, 0x59, 0x85, 0x5d, 0x84, 0x1b, - 0xa7, 0xd8, 0xD9, 0xc9, 0x9c, 0x84, 0xff, 0x75, 0x46, 0x88}, - "TEL Medi ", - 18}, - {{0x85, 0xe0, 0x76, 0x36, 0x1c, 0xc8, 0x13, 0xa9, 0x08, 0xff, - 0x67, 0x2f, 0x9b, 0xad, 0x15, 0x41, 0x47, 0x44, 0x02, 0xb2}, - "TEL ", - 2}, - {{0xdd, 0x16, 0xec, 0x0f, 0x66, 0xe5, 0x4d, 0x45, 0x3e, 0x67, - 0x56, 0x71, 0x3e, 0x53, 0x33, 0x55, 0x98, 0x90, 0x40, 0xe4}, - "TEN ", - 18}, - {{0xe5, 0xf1, 0x66, 0xc0, 0xd8, 0x87, 0x2b, 0x68, 0x79, 0x00, - 0x61, 0x31, 0x7b, 0xb6, 0xcc, 0xa0, 0x45, 0x82, 0xc9, 0x12}, - "TFD ", - 18}, - {{0xa7, 0xf9, 0x76, 0xC3, 0x60, 0xeb, 0xBe, 0xD4, 0x46, 0x5c, - 0x28, 0x55, 0x68, 0x4D, 0x1A, 0xAE, 0x52, 0x71, 0xeF, 0xa9}, - "TFL ", - 8}, - {{0xf8, 0xe0, 0x6e, 0x4e, 0x4a, 0x80, 0x28, 0x7f, 0xdc, 0xa5, - 0xb0, 0x2d, 0xcc, 0xec, 0xaa, 0x9d, 0x09, 0x54, 0x84, 0x0f}, - "TGAME ", - 18}, - {{0xac, 0x3d, 0xa5, 0x87, 0xea, 0xc2, 0x29, 0xc9, 0x89, 0x6d, - 0x91, 0x9a, 0xbc, 0x23, 0x5c, 0xa4, 0xfd, 0x7f, 0x72, 0xc1}, - "TGT ", - 1}, - {{0x1c, 0xb3, 0x20, 0x9d, 0x45, 0xb2, 0xa6, 0x0b, 0x7f, 0xbc, - 0xa1, 0xcc, 0xdb, 0xf8, 0x7f, 0x67, 0x42, 0x37, 0xa4, 0xaa}, - "THR ", - 4}, - {{0x4f, 0x27, 0x05, 0x3f, 0x32, 0xed, 0xa8, 0xaf, 0x84, 0x95, - 0x64, 0x37, 0xbc, 0x00, 0xe5, 0xff, 0xa7, 0x00, 0x32, 0x87}, - "THRT ", - 18}, - {{0xfe, 0x7B, 0x91, 0x5A, 0x0b, 0xAA, 0x0E, 0x79, 0xf8, 0x5c, - 0x55, 0x53, 0x26, 0x65, 0x13, 0xF7, 0xC1, 0xc0, 0x3E, 0xd0}, - "THUG ", - 18}, - {{0x72, 0x43, 0x0a, 0x61, 0x2a, 0xdc, 0x00, 0x7c, 0x50, 0xe3, - 0xb6, 0x94, 0x6d, 0xbb, 0x1b, 0xb0, 0xfd, 0x31, 0x01, 0xd1}, - "TIC ", - 8}, - {{0x7F, 0x4B, 0x2A, 0x69, 0x06, 0x05, 0xA7, 0xcb, 0xb6, 0x6F, - 0x7A, 0xA6, 0x88, 0x5E, 0xbD, 0x90, 0x6a, 0x5e, 0x2E, 0x9E}, - "TICO ", - 8}, - {{0x99, 0x99, 0x67, 0xe2, 0xec, 0x8a, 0x74, 0xb7, 0xc8, 0xe9, - 0xdb, 0x19, 0xe0, 0x39, 0xd9, 0x20, 0xb3, 0x1d, 0x39, 0xd0}, - "TIE ", - 18}, - {{0xee, 0xe2, 0xd0, 0x0e, 0xb7, 0xde, 0xb8, 0xdd, 0x69, 0x24, - 0x18, 0x7f, 0x5a, 0xa3, 0x49, 0x6b, 0x7d, 0x06, 0xe6, 0x2a}, - "TIG ", - 18}, - {{0x65, 0x31, 0xf1, 0x33, 0xe6, 0xDe, 0xeB, 0xe7, 0xF2, 0xdc, - 0xE5, 0xA0, 0x44, 0x1a, 0xA7, 0xef, 0x33, 0x0B, 0x4e, 0x53}, - "TIME ", - 8}, - {{0x80, 0xbc, 0x55, 0x12, 0x56, 0x1c, 0x7f, 0x85, 0xa3, 0xa9, - 0x50, 0x8c, 0x7d, 0xf7, 0x90, 0x1b, 0x37, 0x0f, 0xa1, 0xdf}, - "TIO ", - 18}, - {{0xEa, 0x1f, 0x34, 0x6f, 0xaF, 0x02, 0x3F, 0x97, 0x4E, 0xb5, - 0xad, 0xaf, 0x08, 0x8B, 0xbC, 0xdf, 0x02, 0xd7, 0x61, 0xF4}, - "TIX ", - 18}, - {{0xda, 0xe1, 0xba, 0xf2, 0x49, 0x96, 0x4b, 0xc4, 0xb6, 0xac, - 0x98, 0xc3, 0x12, 0x2f, 0x0e, 0x3e, 0x78, 0x5f, 0xd2, 0x79}, - "TKA ", - 18}, - {{0x06, 0x75, 0xda, 0xa9, 0x47, 0x25, 0xa5, 0x28, 0xb0, 0x5a, - 0x3a, 0x88, 0x63, 0x5c, 0x03, 0xea, 0x96, 0x4b, 0xfa, 0x7e}, - "TKLN ", - 18}, - {{0xaA, 0xAf, 0x91, 0xD9, 0xb9, 0x0d, 0xF8, 0x00, 0xDf, 0x4F, - 0x55, 0xc2, 0x05, 0xfd, 0x69, 0x89, 0xc9, 0x77, 0xE7, 0x3a}, - "TKN ", - 8}, - {{0xb4, 0x5a, 0x50, 0x54, 0x5b, 0xee, 0xab, 0x73, 0xf3, 0x8f, - 0x31, 0xe5, 0x97, 0x37, 0x68, 0xc4, 0x21, 0x80, 0x5e, 0x5e}, - "TKR ", - 18}, - {{0xb3, 0x61, 0x65, 0x50, 0xab, 0xc8, 0xaf, 0x79, 0xc7, 0xa5, - 0x90, 0x2d, 0xef, 0x9e, 0xfa, 0x3b, 0xc9, 0xa9, 0x52, 0x00}, - "TLX ", - 8}, - {{0x32, 0x09, 0xf9, 0x8b, 0xeb, 0xf0, 0x14, 0x9b, 0x76, 0x9c, - 0xe2, 0x6d, 0x71, 0xf7, 0xae, 0xa8, 0xe4, 0x35, 0xef, 0xea}, - "TMT ", - 18}, - {{0xb0, 0x28, 0x07, 0x43, 0xb4, 0x4b, 0xf7, 0xdb, 0x4b, 0x6b, - 0xe4, 0x82, 0xb2, 0xba, 0x7b, 0x75, 0xe5, 0xda, 0x09, 0x6c}, - "TNS ", - 18}, - {{0x08, 0xf5, 0xa9, 0x23, 0x5b, 0x08, 0x17, 0x3b, 0x75, 0x69, - 0xf8, 0x36, 0x45, 0xd2, 0xc7, 0xfb, 0x55, 0xe8, 0xcc, 0xd8}, - "TNT ", - 8}, - {{0x8b, 0x35, 0x30, 0x21, 0x18, 0x93, 0x75, 0x59, 0x17, 0x23, - 0xe7, 0x38, 0x42, 0x62, 0xf4, 0x57, 0x09, 0xa3, 0xc3, 0xdc}, - "TOMO ", - 18}, - {{0x8e, 0xb9, 0x65, 0xee, 0x9c, 0xCF, 0xBC, 0xE7, 0x6c, 0x0a, - 0x06, 0x26, 0x44, 0x92, 0xc0, 0xaf, 0xEf, 0xc2, 0x82, 0x6d}, - "TOOR ", - 18}, - {{0xaa, 0x7a, 0x9c, 0xa8, 0x7d, 0x36, 0x94, 0xb5, 0x75, 0x5f, - 0x21, 0x3b, 0x5d, 0x04, 0x09, 0x4b, 0x8d, 0x0f, 0x0a, 0x6f}, - "TRAC ", - 18}, - {{0x12, 0x75, 0x95, 0x12, 0xd3, 0x26, 0x30, 0x3b, 0x45, 0xf1, - 0xce, 0xc8, 0xf7, 0xb6, 0xfd, 0x96, 0xf3, 0x87, 0x77, 0x8e}, - "TRAK ", - 18}, - {{0xcB, 0x3F, 0x90, 0x2b, 0xf9, 0x76, 0x26, 0x39, 0x1b, 0xF8, - 0xbA, 0x87, 0x26, 0x4b, 0xbC, 0x3D, 0xC1, 0x34, 0x69, 0xbe}, - "TRC ", - 18}, - {{0x56, 0x6F, 0xd7, 0x99, 0x9B, 0x1F, 0xc3, 0x98, 0x80, 0x22, - 0xbD, 0x38, 0x50, 0x7A, 0x48, 0xF0, 0xbC, 0xf2, 0x2c, 0x77}, - "TRCN ", - 18}, - {{0x30, 0xce, 0xCB, 0x54, 0x61, 0xA4, 0x49, 0xA9, 0x00, 0x81, - 0xF5, 0xa5, 0xF5, 0x5d, 0xb4, 0xe0, 0x48, 0x39, 0x7B, 0xAB}, - "TRCT ", - 8}, - {{0x33, 0xf9, 0x0d, 0xee, 0x07, 0xc6, 0xe8, 0xb9, 0x68, 0x2d, - 0xd2, 0x0f, 0x73, 0xe6, 0xc3, 0x58, 0xb2, 0xed, 0x0f, 0x03}, - "TRDT ", - 0}, - {{0xcb, 0x94, 0xbe, 0x6f, 0x13, 0xa1, 0x18, 0x2e, 0x4a, 0x4b, - 0x61, 0x40, 0xcb, 0x7b, 0xf2, 0x02, 0x5d, 0x28, 0xe4, 0x1b}, - "TRST ", - 6}, - {{0xf2, 0x30, 0xb7, 0x90, 0xe0, 0x53, 0x90, 0xfc, 0x82, 0x95, - 0xf4, 0xd3, 0xf6, 0x03, 0x32, 0xc9, 0x3b, 0xed, 0x42, 0xe2}, - "TRX ", - 6}, - {{0x6B, 0x87, 0x99, 0x9b, 0xE8, 0x73, 0x58, 0x06, 0x5b, 0xBd, - 0xE4, 0x1e, 0x8a, 0x0f, 0xe0, 0xB7, 0xb1, 0xcd, 0x25, 0x14}, - "TSW ", - 18}, - {{0xaa, 0xb6, 0x06, 0x81, 0x78, 0x09, 0x84, 0x1e, 0x8b, 0x11, - 0x68, 0xbe, 0x87, 0x79, 0xee, 0xaf, 0x67, 0x44, 0xef, 0x64}, - "TTA ", - 18}, - {{0x93, 0x89, 0x43, 0x48, 0x52, 0xb9, 0x4b, 0xba, 0xd4, 0xc8, - 0xaf, 0xed, 0x5b, 0x7b, 0xdb, 0xc5, 0xff, 0x0c, 0x22, 0x75}, - "TTC ", - 18}, - {{0x9c, 0xda, 0x8a, 0x60, 0xdd, 0x5a, 0xfa, 0x15, 0x6c, 0x95, - 0xbd, 0x97, 0x44, 0x28, 0xd9, 0x1a, 0x08, 0x12, 0xe0, 0x54}, - "TTU ", - 18}, - {{0x8d, 0xd5, 0xfb, 0xce, 0x2f, 0x6a, 0x95, 0x6c, 0x30, 0x22, - 0xba, 0x36, 0x63, 0x75, 0x90, 0x11, 0xdd, 0x51, 0xe7, 0x3e}, - "TUSD ", - 18}, - {{0x2e, 0xF1, 0xaB, 0x8a, 0x26, 0x18, 0x7C, 0x58, 0xBB, 0x8a, - 0xAe, 0xB1, 0x1B, 0x2f, 0xC6, 0xD2, 0x5C, 0x5c, 0x07, 0x16}, - "TWN ", - 18}, - {{0xE7, 0x77, 0x5A, 0x6e, 0x9B, 0xcf, 0x90, 0x4e, 0xb3, 0x9D, - 0xA2, 0xb6, 0x8c, 0x5e, 0xfb, 0x4F, 0x93, 0x60, 0xe0, 0x8C}, - "TaaS ", - 6}, - {{0x84, 0x00, 0xd9, 0x4a, 0x5c, 0xb0, 0xfa, 0x0d, 0x04, 0x1a, - 0x37, 0x88, 0xe3, 0x95, 0x28, 0x5d, 0x61, 0xc9, 0xee, 0x5e}, - "UBT ", - 8}, - {{0x92, 0xe5, 0x2a, 0x1a, 0x23, 0x5d, 0x9a, 0x10, 0x3d, 0x97, - 0x09, 0x01, 0x06, 0x6c, 0xe9, 0x10, 0xaa, 0xce, 0xfd, 0x37}, - "UCASH ", - 8}, - {{0xaa, 0xf3, 0x70, 0x55, 0x18, 0x8f, 0xee, 0xe4, 0x86, 0x9d, - 0xe6, 0x34, 0x64, 0x93, 0x7e, 0x68, 0x3d, 0x61, 0xb2, 0xa1}, - "UCN ", - 18}, - {{0xea, 0x09, 0x7a, 0x2b, 0x1d, 0xb0, 0x06, 0x27, 0xb2, 0xfa, - 0x17, 0x46, 0x0a, 0xd2, 0x60, 0xc0, 0x16, 0x01, 0x69, 0x77}, - "UFR ", - 18}, - {{0x24, 0x69, 0x27, 0x91, 0xbc, 0x44, 0x4c, 0x5c, 0xd0, 0xb8, - 0x1e, 0x3c, 0xbc, 0xab, 0xa4, 0xb0, 0x4a, 0xcd, 0x1f, 0x3b}, - "UKG ", - 18}, - {{0x8e, 0x5a, 0xfc, 0x69, 0xf6, 0x22, 0x7a, 0x3a, 0xd7, 0x5e, - 0xd3, 0x46, 0xc8, 0x72, 0x3b, 0xc6, 0x2c, 0xe9, 0x71, 0x23}, - "UMKA ", - 4}, - {{0x6b, 0xa4, 0x60, 0xab, 0x75, 0xcd, 0x2c, 0x56, 0x34, 0x3b, - 0x35, 0x17, 0xff, 0xeb, 0xa6, 0x07, 0x48, 0x65, 0x4d, 0x26}, - "UP ", - 8}, - {{0xc8, 0x6d, 0x05, 0x48, 0x09, 0x62, 0x34, 0x32, 0x21, 0x0c, - 0x10, 0x7a, 0xf2, 0xe3, 0xf6, 0x19, 0xdc, 0xfb, 0xf6, 0x52}, - "UPP ", - 18}, - {{0xd0, 0x1d, 0xb7, 0x3e, 0x04, 0x78, 0x55, 0xef, 0xb4, 0x14, - 0xe6, 0x20, 0x20, 0x98, 0xc4, 0xbe, 0x4c, 0xd2, 0x42, 0x3b}, - "UQC ", - 18}, - {{0x93, 0x16, 0x84, 0x13, 0x9f, 0x75, 0x6C, 0x24, 0xeC, 0x07, - 0x31, 0xE9, 0xF7, 0x4F, 0xE5, 0x0e, 0x55, 0x48, 0xdD, 0xeF}, - "URB ", - 18}, - {{0xa0, 0xb8, 0x69, 0x91, 0xc6, 0x21, 0x8b, 0x36, 0xc1, 0xd1, - 0x9d, 0x4a, 0x2e, 0x9e, 0xb0, 0xce, 0x36, 0x06, 0xeb, 0x48}, - "USDC ", - 6}, - {{0xD7, 0x60, 0xAD, 0xdF, 0xb2, 0x4D, 0x9C, 0x01, 0xFe, 0x4B, - 0xfe, 0xa7, 0x47, 0x5C, 0x5e, 0x36, 0x36, 0x68, 0x40, 0x58}, - "USDM ", - 2}, - {{0xda, 0xc1, 0x7f, 0x95, 0x8d, 0x2e, 0xe5, 0x23, 0xa2, 0x20, - 0x62, 0x06, 0x99, 0x45, 0x97, 0xc1, 0x3d, 0x83, 0x1e, 0xc7}, - "USDT ", - 6}, - {{0x70, 0xa7, 0x28, 0x33, 0xd6, 0xbf, 0x7f, 0x50, 0x8c, 0x82, - 0x24, 0xce, 0x59, 0xea, 0x1e, 0xf3, 0xd0, 0xea, 0x3a, 0x38}, - "UTK ", - 18}, - {{0x9e, 0x33, 0x19, 0x63, 0x6e, 0x21, 0x26, 0xe3, 0xc0, 0xbc, - 0x9e, 0x31, 0x34, 0xAE, 0xC5, 0xe1, 0x50, 0x8A, 0x46, 0xc7}, - "UTN-P ", - 18}, - {{0x16, 0xf8, 0x12, 0xbe, 0x7f, 0xff, 0x02, 0xca, 0xf6, 0x62, - 0xb8, 0x5d, 0x5d, 0x58, 0xa5, 0xda, 0x65, 0x72, 0xd4, 0xdf}, - "UTT ", - 8}, - {{0x35, 0x43, 0x63, 0x8e, 0xD4, 0xa9, 0x00, 0x6E, 0x48, 0x40, - 0xB1, 0x05, 0x94, 0x42, 0x71, 0xBc, 0xea, 0x15, 0x60, 0x5D}, - "UUU ", - 18}, - {{0x89, 0x20, 0x5A, 0x3A, 0x3b, 0x2A, 0x69, 0xDe, 0x6D, 0xbf, - 0x7f, 0x01, 0xED, 0x13, 0xB2, 0x10, 0x8B, 0x2c, 0x43, 0xe7}, - "Unicorn ", - 0}, - {{0x57, 0xC7, 0x5E, 0xCC, 0xc8, 0x55, 0x71, 0x36, 0xD3, 0x26, - 0x19, 0xa1, 0x91, 0xfB, 0xCD, 0xc8, 0x85, 0x60, 0xd7, 0x11}, - "VDG ", - 0}, - {{0x82, 0xBD, 0x52, 0x6b, 0xDB, 0x71, 0x8C, 0x6d, 0x4D, 0xD2, - 0x29, 0x1E, 0xd0, 0x13, 0xA5, 0x18, 0x6c, 0xAE, 0x2D, 0xCa}, - "VDOC ", - 18}, - {{0x34, 0x0d, 0x2b, 0xde, 0x5e, 0xb2, 0x8c, 0x1e, 0xed, 0x91, - 0xb2, 0xf7, 0x90, 0x72, 0x3e, 0x3b, 0x16, 0x06, 0x13, 0xb7}, - "VEE ", - 18}, - {{0xD8, 0x50, 0x94, 0x2e, 0xF8, 0x81, 0x1f, 0x2A, 0x86, 0x66, - 0x92, 0xA6, 0x23, 0x01, 0x1b, 0xDE, 0x52, 0xa4, 0x62, 0xC1}, - "VEN ", - 18}, - {{0xEb, 0xeD, 0x4f, 0xF9, 0xfe, 0x34, 0x41, 0x3d, 0xb8, 0xfC, - 0x82, 0x94, 0x55, 0x6B, 0xBD, 0x15, 0x28, 0xa4, 0xDA, 0xca}, - "VENUS ", - 3}, - {{0x8f, 0x34, 0x70, 0xA7, 0x38, 0x8c, 0x05, 0xeE, 0x4e, 0x7A, - 0xF3, 0xd0, 0x1D, 0x8C, 0x72, 0x2b, 0x0F, 0xF5, 0x23, 0x74}, - "VERI ", - 18}, - {{0x2C, 0x97, 0x4B, 0x2d, 0x0B, 0xA1, 0x71, 0x6E, 0x64, 0x4c, - 0x1F, 0xC5, 0x99, 0x82, 0xa8, 0x9D, 0xDD, 0x2f, 0xF7, 0x24}, - "VIB ", - 18}, - {{0xe8, 0xff, 0x5c, 0x9c, 0x75, 0xde, 0xb3, 0x46, 0xac, 0xac, - 0x49, 0x3c, 0x46, 0x3c, 0x89, 0x50, 0xbe, 0x03, 0xdf, 0xba}, - "VIBE ", - 18}, - {{0x88, 0x24, 0x48, 0xf8, 0x3d, 0x90, 0xb2, 0xbf, 0x47, 0x7a, - 0xf2, 0xea, 0x79, 0x32, 0x7f, 0xde, 0xa1, 0x33, 0x5d, 0x93}, - "VIBEX ", - 18}, - {{0xf0, 0x3f, 0x8d, 0x65, 0xba, 0xfa, 0x59, 0x86, 0x11, 0xc3, - 0x49, 0x51, 0x24, 0x09, 0x3c, 0x56, 0xe8, 0xf6, 0x38, 0xf0}, - "VIEW ", - 18}, - {{0xd2, 0x94, 0x6b, 0xe7, 0x86, 0xf3, 0x5c, 0x3c, 0xc4, 0x02, - 0xc2, 0x9b, 0x32, 0x36, 0x47, 0xab, 0xda, 0x79, 0x90, 0x71}, - "VIKKY ", - 8}, - {{0xf3, 0xe0, 0x14, 0xfe, 0x81, 0x26, 0x78, 0x70, 0x62, 0x41, - 0x32, 0xef, 0x3a, 0x64, 0x6b, 0x8e, 0x83, 0x85, 0x3a, 0x96}, - "VIN ", - 18}, - {{0x23, 0xb7, 0x5B, 0xc7, 0xAa, 0xF2, 0x8e, 0x2d, 0x66, 0x28, - 0xC3, 0xf4, 0x24, 0xB3, 0x88, 0x2F, 0x8f, 0x07, 0x2a, 0x3c}, - "VIT ", - 18}, - {{0x1b, 0x79, 0x3e, 0x49, 0x23, 0x77, 0x58, 0xdb, 0xd8, 0xb7, - 0x52, 0xaf, 0xc9, 0xeb, 0x4b, 0x32, 0x9d, 0x5d, 0xa0, 0x16}, - "VITE ", - 18}, - {{0x51, 0x94, 0x75, 0xb3, 0x16, 0x53, 0xe4, 0x6d, 0x20, 0xcd, - 0x09, 0xf9, 0xfd, 0xcf, 0x3b, 0x12, 0xbd, 0xac, 0xb4, 0xf5}, - "VIU ", - 18}, - {{0x92, 0x2a, 0xc4, 0x73, 0xa3, 0xcc, 0x24, 0x1f, 0xd3, 0xa0, - 0x04, 0x9e, 0xd1, 0x45, 0x36, 0x45, 0x2d, 0x58, 0xd7, 0x3c}, - "VLD ", - 18}, - {{0xc3, 0xbc, 0x9e, 0xb7, 0x1f, 0x75, 0xec, 0x43, 0x9a, 0x6b, - 0x6c, 0x8e, 0x8b, 0x74, 0x6f, 0xcf, 0x5b, 0x62, 0xf7, 0x03}, - "VOC ", - 18}, - {{0x83, 0xeE, 0xA0, 0x0D, 0x83, 0x8f, 0x92, 0xdE, 0xC4, 0xD1, - 0x47, 0x56, 0x97, 0xB9, 0xf4, 0xD3, 0x53, 0x7b, 0x56, 0xE3}, - "VOISE ", - 8}, - {{0xeD, 0xBa, 0xF3, 0xc5, 0x10, 0x03, 0x02, 0xdC, 0xdd, 0xA5, - 0x32, 0x69, 0x32, 0x2f, 0x37, 0x30, 0xb1, 0xF0, 0x41, 0x6d}, - "VRS ", - 5}, - {{0x92, 0xe7, 0x8d, 0xae, 0x13, 0x15, 0x06, 0x7a, 0x88, 0x19, - 0xef, 0xd6, 0xdc, 0xa4, 0x32, 0xde, 0x9d, 0xcd, 0xe2, 0xe9}, - "VRS ", - 6}, - {{0x5c, 0x54, 0x3e, 0x7A, 0xE0, 0xA1, 0x10, 0x4f, 0x78, 0x40, - 0x6C, 0x34, 0x0E, 0x9C, 0x64, 0xFD, 0x9f, 0xCE, 0x51, 0x70}, - "VSL ", - 18}, - {{0x97, 0x20, 0xb4, 0x67, 0xa7, 0x10, 0x38, 0x2A, 0x23, 0x2a, - 0x32, 0xF5, 0x40, 0xbD, 0xCe, 0xd7, 0xd6, 0x62, 0xa1, 0x0B}, - "VZT ", - 18}, - {{0x4b, 0xbb, 0xc5, 0x7a, 0xf2, 0x70, 0x13, 0x8e, 0xf2, 0xff, - 0x2c, 0x50, 0xdb, 0xfa, 0xd6, 0x84, 0xe9, 0xe0, 0xe6, 0x04}, - "WAB ", - 18}, - {{0x82, 0x9A, 0x4c, 0xA1, 0x30, 0x33, 0x83, 0xF1, 0x08, 0x2B, - 0x6B, 0x1f, 0xB9, 0x37, 0x11, 0x6e, 0x4b, 0x3b, 0x56, 0x05}, - "WATT ", - 18}, - {{0x39, 0xBb, 0x25, 0x9F, 0x66, 0xE1, 0xC5, 0x9d, 0x5A, 0xBE, - 0xF8, 0x83, 0x75, 0x97, 0x9b, 0x4D, 0x20, 0xD9, 0x80, 0x22}, - "WAX ", - 8}, - {{0x74, 0x95, 0x1B, 0x67, 0x7d, 0xe3, 0x2D, 0x59, 0x6E, 0xE8, - 0x51, 0xA2, 0x33, 0x33, 0x69, 0x26, 0xe6, 0xA2, 0xcd, 0x09}, - "WBA ", - 7}, - {{0x6a, 0x0a, 0x97, 0xe4, 0x7d, 0x15, 0xaa, 0xd1, 0xd1, 0x32, - 0xa1, 0xac, 0x79, 0xa4, 0x80, 0xe3, 0xf2, 0x07, 0x90, 0x63}, - "WCT ", - 18}, - {{0x84, 0x0f, 0xe7, 0x5a, 0xbf, 0xad, 0xc0, 0xf2, 0xd5, 0x40, - 0x37, 0x82, 0x95, 0x71, 0xb2, 0x78, 0x2e, 0x91, 0x9c, 0xe4}, - "WEB ", - 18}, - {{0xC0, 0x2a, 0xaA, 0x39, 0xb2, 0x23, 0xFE, 0x8D, 0x0A, 0x0e, - 0x5C, 0x4F, 0x27, 0xeA, 0xD9, 0x08, 0x3C, 0x75, 0x6C, 0xc2}, - "WETH ", - 18}, - {{0xf4, 0xfe, 0x95, 0x60, 0x38, 0x81, 0xd0, 0xe0, 0x79, 0x54, - 0xfd, 0x76, 0x05, 0xe0, 0xe9, 0xa9, 0x16, 0xe4, 0x2c, 0x44}, - "WHEN ", - 18}, - {{0xe9, 0x33, 0xc0, 0xCd, 0x97, 0x84, 0x41, 0x4d, 0x5F, 0x27, - 0x8C, 0x11, 0x49, 0x04, 0xF5, 0xA8, 0x4b, 0x39, 0x69, 0x19}, - "WHO ", - 18}, - {{0x62, 0xcd, 0x07, 0xd4, 0x14, 0xec, 0x50, 0xb6, 0x8c, 0x7e, - 0xca, 0xa8, 0x63, 0xa2, 0x3d, 0x34, 0x4f, 0x2d, 0x06, 0x2f}, - "WIC ", - 0}, - {{0xD3, 0xC0, 0x07, 0x72, 0xB2, 0x4D, 0x99, 0x7A, 0x81, 0x22, - 0x49, 0xca, 0x63, 0x7a, 0x92, 0x1e, 0x81, 0x35, 0x77, 0x01}, - "WILD ", - 18}, - {{0x89, 0x93, 0x38, 0xb8, 0x4d, 0x25, 0xac, 0x50, 0x5a, 0x33, - 0x2a, 0xdc, 0xe7, 0x40, 0x2d, 0x69, 0x7d, 0x94, 0x74, 0x94}, - "WIN ", - 8}, - {{0x66, 0x70, 0x88, 0xb2, 0x12, 0xce, 0x3d, 0x06, 0xa1, 0xb5, - 0x53, 0xa7, 0x22, 0x1E, 0x1f, 0xD1, 0x90, 0x00, 0xd9, 0xaF}, - "WINGS ", - 18}, - {{0x1b, 0x22, 0xc3, 0x2c, 0xd9, 0x36, 0xcb, 0x97, 0xc2, 0x8c, - 0x56, 0x90, 0xa0, 0x69, 0x5a, 0x82, 0xab, 0xf6, 0x88, 0xe6}, - "WISH ", - 18}, - {{0xF6, 0xB5, 0x5a, 0xcB, 0xBC, 0x49, 0xf4, 0x52, 0x4A, 0xa4, - 0x8D, 0x19, 0x28, 0x1A, 0x9A, 0x77, 0xc5, 0x4D, 0xE1, 0x0f}, - "WLK ", - 18}, - {{0xbf, 0xbe, 0x53, 0x32, 0xf1, 0x72, 0xd7, 0x78, 0x11, 0xbc, - 0x6c, 0x27, 0x28, 0x44, 0xf3, 0xe5, 0x4a, 0x7b, 0x23, 0xbb}, - "WMK ", - 18}, - {{0xd7, 0x3A, 0x66, 0xB8, 0xFB, 0x26, 0xBe, 0x8B, 0x0A, 0xcD, - 0x7c, 0x52, 0xBd, 0x32, 0x50, 0x54, 0xAc, 0x7d, 0x46, 0x8b}, - "WNK ", - 18}, - {{0x72, 0x87, 0x81, 0xE7, 0x57, 0x35, 0xdc, 0x09, 0x62, 0xDf, - 0x3a, 0x51, 0xd7, 0xEf, 0x47, 0xE7, 0x98, 0xA7, 0x10, 0x7E}, - "WOLK ", - 18}, - {{0xa6, 0x86, 0x51, 0x4f, 0xaf, 0x7d, 0x54, 0x28, 0x92, 0x66, - 0xf4, 0x83, 0xd1, 0xe4, 0x85, 0x2c, 0x99, 0xe1, 0x3e, 0xc7}, - "WORK ", - 8}, - {{0x4C, 0xF4, 0x88, 0x38, 0x7F, 0x03, 0x5F, 0xF0, 0x8c, 0x37, - 0x15, 0x15, 0x56, 0x2C, 0xBa, 0x71, 0x2f, 0x90, 0x15, 0xd4}, - "WPR ", - 18}, - {{0x72, 0xad, 0xad, 0xb4, 0x47, 0x78, 0x4d, 0xd7, 0xab, 0x1f, - 0x47, 0x24, 0x67, 0x75, 0x0f, 0xc4, 0x85, 0xe4, 0xcb, 0x2d}, - "WRC ", - 6}, - {{0x71, 0xe8, 0xd7, 0x4f, 0xf1, 0xc9, 0x23, 0xe3, 0x69, 0xd0, - 0xe7, 0x0d, 0xfb, 0x09, 0x86, 0x66, 0x29, 0xc4, 0xdd, 0x35}, - "WRK ", - 18}, - {{0xb7, 0xcb, 0x1c, 0x96, 0xdb, 0x6b, 0x22, 0xb0, 0xd3, 0xd9, - 0x53, 0x6e, 0x01, 0x08, 0xd0, 0x62, 0xbd, 0x48, 0x8f, 0x74}, - "WTC ", - 18}, - {{0x84, 0x11, 0x9c, 0xb3, 0x3e, 0x8f, 0x59, 0x0d, 0x75, 0xc2, - 0xd6, 0xea, 0x4e, 0x6b, 0x07, 0x41, 0xa7, 0x49, 0x4e, 0xda}, - "WTT ", - 0}, - {{0xd8, 0x95, 0x0f, 0xDe, 0xaa, 0x10, 0x30, 0x4B, 0x7A, 0x7F, - 0xd0, 0x3a, 0x2F, 0xC6, 0x6B, 0xC3, 0x9f, 0x3c, 0x71, 0x1a}, - "WYS ", - 18}, - {{0x05, 0x60, 0x17, 0xc5, 0x5a, 0xE7, 0xAE, 0x32, 0xd1, 0x2A, - 0xeF, 0x7C, 0x67, 0x9d, 0xF8, 0x3A, 0x85, 0xca, 0x75, 0xFf}, - "WYV ", - 18}, - {{0x28, 0x6B, 0xDA, 0x14, 0x13, 0xa2, 0xDf, 0x81, 0x73, 0x1D, - 0x49, 0x30, 0xce, 0x2F, 0x86, 0x2a, 0x35, 0xA6, 0x09, 0xfE}, - "WaBi ", - 18}, - {{0x5e, 0x4A, 0xBE, 0x64, 0x19, 0x65, 0x0C, 0xA8, 0x39, 0xCe, - 0x5B, 0xB7, 0xDb, 0x42, 0x2b, 0x88, 0x1a, 0x60, 0x64, 0xbB}, - "WiC ", - 18}, - {{0x91, 0x0D, 0xfc, 0x18, 0xD6, 0xEA, 0x3D, 0x6a, 0x71, 0x24, - 0xA6, 0xF8, 0xB5, 0x45, 0x8F, 0x28, 0x10, 0x60, 0xfa, 0x4c}, - "X8X ", - 18}, - {{0x4D, 0xF8, 0x12, 0xF6, 0x06, 0x4d, 0xef, 0x1e, 0x5e, 0x02, - 0x9f, 0x1c, 0xa8, 0x58, 0x77, 0x7C, 0xC9, 0x8D, 0x2D, 0x81}, - "XAUR ", - 8}, - {{0x49, 0xae, 0xc0, 0x75, 0x2e, 0x68, 0xd0, 0x28, 0x2d, 0xb5, - 0x44, 0xc6, 0x77, 0xf6, 0xba, 0x40, 0x7b, 0xa1, 0x7e, 0xd7}, - "XBL ", - 18}, - {{0x28, 0xde, 0xe0, 0x1d, 0x53, 0xfe, 0xd0, 0xed, 0xf5, 0xf6, - 0xe3, 0x10, 0xbf, 0x8e, 0xf9, 0x31, 0x15, 0x13, 0xae, 0x40}, - "XBP ", - 18}, - {{0x4d, 0x82, 0x9f, 0x8c, 0x92, 0xa6, 0x69, 0x1c, 0x56, 0x30, - 0x0d, 0x02, 0x0c, 0x9e, 0x0d, 0xb9, 0x84, 0xcf, 0xe2, 0xba}, - "XCC ", - 18}, - {{0x1e, 0x26, 0xb3, 0xd0, 0x7e, 0x57, 0xf4, 0x53, 0xca, 0xe3, - 0x0f, 0x7d, 0xdd, 0x2f, 0x94, 0x5f, 0x5b, 0xf3, 0xef, 0x33}, - "XCLR ", - 8}, - {{0x41, 0xab, 0x1b, 0x6f, 0xcb, 0xb2, 0xfa, 0x9d, 0xce, 0xd8, - 0x1a, 0xcb, 0xde, 0xc1, 0x3e, 0xa6, 0x31, 0x5f, 0x2b, 0xf2}, - "XDCE ", - 18}, - {{0xa0, 0x17, 0xac, 0x5f, 0xac, 0x59, 0x41, 0xf9, 0x50, 0x10, - 0xb1, 0x25, 0x70, 0xb8, 0x12, 0xc9, 0x74, 0x46, 0x9c, 0x2c}, - "XES ", - 18}, - {{0x05, 0x4c, 0x64, 0x74, 0x1d, 0xba, 0xfd, 0xc1, 0x97, 0x84, - 0x50, 0x54, 0x94, 0x02, 0x98, 0x23, 0xd8, 0x9c, 0x3b, 0x13}, - "XET ", - 8}, - {{0x16, 0xaF, 0x5b, 0xfb, 0x4A, 0xe7, 0xE4, 0x75, 0xb9, 0xaD, - 0xC3, 0xBf, 0x5C, 0xb2, 0xf1, 0xE6, 0xa5, 0x0d, 0x79, 0x40}, - "XFS ", - 8}, - {{0xf6, 0xb6, 0xaa, 0x0e, 0xf0, 0xf5, 0xed, 0xc2, 0xc1, 0xc5, - 0xd9, 0x25, 0x47, 0x7f, 0x97, 0xea, 0xf6, 0x63, 0x03, 0xe7}, - "XGG ", - 8}, - {{0x53, 0x3e, 0xf0, 0x98, 0x4b, 0x2F, 0xAA, 0x22, 0x7A, 0xcC, - 0x62, 0x0C, 0x67, 0xcc, 0xe1, 0x2a, 0xA3, 0x9C, 0xD8, 0xCD}, - "XGM ", - 8}, - {{0x30, 0xf4, 0xA3, 0xe0, 0xaB, 0x7a, 0x76, 0x73, 0x3D, 0x8b, - 0x60, 0xb8, 0x9D, 0xD9, 0x3c, 0x3D, 0x0b, 0x4c, 0x9E, 0x2f}, - "XGT ", - 18}, - {{0xB1, 0x10, 0xeC, 0x7B, 0x1d, 0xcb, 0x8F, 0xAB, 0x8d, 0xED, - 0xbf, 0x28, 0xf5, 0x3B, 0xc6, 0x3e, 0xA5, 0xBE, 0xdd, 0x84}, - "XID ", - 8}, - {{0x44, 0x44, 0x9F, 0xa4, 0xd6, 0x07, 0xF8, 0x07, 0xd1, 0xeD, - 0x4a, 0x69, 0xad, 0x94, 0x29, 0x71, 0x72, 0x83, 0x91, 0xC8}, - "XMCT ", - 18}, - {{0x0f, 0x8c, 0x45, 0xb8, 0x96, 0x78, 0x4a, 0x1e, 0x40, 0x85, - 0x26, 0xb9, 0x30, 0x05, 0x19, 0xef, 0x86, 0x60, 0x20, 0x9c}, - "XMX ", - 8}, - {{0xBC, 0x86, 0x72, 0x7E, 0x77, 0x0d, 0xe6, 0x8B, 0x10, 0x60, - 0xC9, 0x1f, 0x6B, 0xB6, 0x94, 0x5c, 0x73, 0xe1, 0x03, 0x88}, - "XNK ", - 18}, - {{0xab, 0x95, 0xe9, 0x15, 0xc1, 0x23, 0xfd, 0xed, 0x5b, 0xdf, - 0xb6, 0x32, 0x5e, 0x35, 0xef, 0x55, 0x15, 0xf1, 0xea, 0x69}, - "XNN ", - 18}, - {{0x57, 0x2e, 0x6f, 0x31, 0x80, 0x56, 0xba, 0x0c, 0x5d, 0x47, - 0xa4, 0x22, 0x65, 0x31, 0x13, 0x84, 0x3d, 0x25, 0x06, 0x91}, - "XNT ", - 0}, - {{0x15, 0x3e, 0xd9, 0xcc, 0x1b, 0x79, 0x29, 0x79, 0xd2, 0xbd, - 0xe0, 0xbb, 0xf4, 0x5c, 0xc2, 0xa7, 0xe4, 0x36, 0xa5, 0xf9}, - "XOV ", - 18}, - {{0x90, 0x52, 0x8a, 0xeb, 0x3a, 0x2b, 0x73, 0x6b, 0x78, 0x0f, - 0xd1, 0xb6, 0xc4, 0x78, 0xbb, 0x7e, 0x1d, 0x64, 0x31, 0x70}, - "XPA ", - 18}, - {{0xBB, 0x1f, 0xA4, 0xFd, 0xEB, 0x34, 0x59, 0x73, 0x3b, 0xF6, - 0x7E, 0xbC, 0x6f, 0x89, 0x30, 0x03, 0xfA, 0x97, 0x6a, 0x82}, - "XPAT ", - 18}, - {{0xB2, 0x47, 0x54, 0xbE, 0x79, 0x28, 0x15, 0x53, 0xdc, 0x1a, - 0xdC, 0x16, 0x0d, 0xdF, 0x5C, 0xd9, 0xb7, 0x43, 0x61, 0xa4}, - "XRL ", - 9}, - {{0x0F, 0x51, 0x3f, 0xFb, 0x49, 0x26, 0xff, 0x82, 0xD7, 0xF6, - 0x0A, 0x05, 0x06, 0x90, 0x47, 0xAc, 0xA2, 0x95, 0xC4, 0x13}, - "XSC ", - 18}, - {{0x55, 0x29, 0x6f, 0x69, 0xf4, 0x0e, 0xa6, 0xd2, 0x0e, 0x47, - 0x85, 0x33, 0xc1, 0x5a, 0x6b, 0x08, 0xb6, 0x54, 0xe7, 0x58}, - "XYO ", - 18}, - {{0x92, 0x21, 0x05, 0xfa, 0xd8, 0x15, 0x3f, 0x51, 0x6b, 0xcf, - 0xb8, 0x29, 0xf5, 0x6d, 0xc0, 0x97, 0xa0, 0xe1, 0xd7, 0x05}, - "YEE ", - 18}, - {{0xca, 0x27, 0x96, 0xf9, 0xf6, 0x1d, 0xc7, 0xb2, 0x38, 0xaa, - 0xb0, 0x43, 0x97, 0x1e, 0x49, 0xc6, 0x16, 0x4d, 0xf3, 0x75}, - "YEED ", - 18}, - {{0xcb, 0xea, 0xec, 0x69, 0x94, 0x31, 0x85, 0x7f, 0xdb, 0x4d, - 0x37, 0xad, 0xdb, 0xbd, 0xc2, 0x0e, 0x13, 0x2d, 0x49, 0x03}, - "YOYOW ", - 18}, - {{0xd9, 0xa1, 0x2c, 0xde, 0x03, 0xa8, 0x6e, 0x80, 0x04, 0x96, - 0x46, 0x98, 0x58, 0xde, 0x85, 0x81, 0xd3, 0xa5, 0x35, 0x3d}, - "YUP ", - 18}, - {{0x0F, 0x33, 0xbb, 0x20, 0xa2, 0x82, 0xA7, 0x64, 0x9C, 0x7B, - 0x3A, 0xFf, 0x64, 0x4F, 0x08, 0x4a, 0x93, 0x48, 0xe9, 0x33}, - "YUPIE ", - 18}, - {{0x67, 0x81, 0xa0, 0xf8, 0x4c, 0x7e, 0x9e, 0x84, 0x6d, 0xcb, - 0x84, 0xa9, 0xa5, 0xbd, 0x49, 0x33, 0x30, 0x67, 0xb1, 0x04}, - "ZAP ", - 18}, - {{0xb9, 0xEF, 0x77, 0x0B, 0x6A, 0x5e, 0x12, 0xE4, 0x59, 0x83, - 0xC5, 0xD8, 0x05, 0x45, 0x25, 0x8a, 0xA3, 0x8F, 0x3B, 0x78}, - "ZCN ", - 10}, - {{0x20, 0x08, 0xe3, 0x05, 0x7b, 0xd7, 0x34, 0xe1, 0x0a, 0xd1, - 0x3c, 0x9e, 0xae, 0x45, 0xff, 0x13, 0x2a, 0xbc, 0x17, 0x22}, - "ZCO ", - 8}, - {{0x05, 0xf4, 0xa4, 0x2e, 0x25, 0x1f, 0x2d, 0x52, 0xb8, 0xed, - 0x15, 0xE9, 0xFE, 0xdA, 0xac, 0xFc, 0xEF, 0x1F, 0xAD, 0x27}, - "ZIL ", - 12}, - {{0x4a, 0xac, 0x46, 0x1c, 0x86, 0xab, 0xfa, 0x71, 0xe9, 0xd0, - 0x0d, 0x9a, 0x2c, 0xde, 0x8d, 0x74, 0xe4, 0xe1, 0xae, 0xea}, - "ZINC ", - 18}, - {{0xa9, 0xd2, 0x92, 0x7d, 0x3a, 0x04, 0x30, 0x9e, 0x00, 0x8b, - 0x6a, 0xf6, 0xe2, 0xe2, 0x82, 0xae, 0x29, 0x52, 0xe7, 0xfd}, - "ZIP ", - 18}, - {{0xed, 0xd7, 0xc9, 0x4f, 0xd7, 0xb4, 0x97, 0x1b, 0x91, 0x6d, - 0x15, 0x06, 0x7b, 0xc4, 0x54, 0xb9, 0xe1, 0xba, 0xd9, 0x80}, - "ZIPT ", - 18}, - {{0xfd, 0x89, 0x71, 0xd5, 0xe8, 0xe1, 0x74, 0x0c, 0xe2, 0xd0, - 0xa8, 0x40, 0x95, 0xfc, 0xa4, 0xde, 0x72, 0x9d, 0x0c, 0x16}, - "ZLA ", - 18}, - {{0x55, 0x4f, 0xfc, 0x77, 0xf4, 0x25, 0x1a, 0x9f, 0xb3, 0xc0, - 0xe3, 0x59, 0x0a, 0x6a, 0x20, 0x5f, 0x8d, 0x4e, 0x06, 0x7d}, - "ZMN ", - 18}, - {{0xb5, 0xb8, 0xf5, 0x61, 0x6f, 0xe4, 0x2d, 0x5c, 0xec, 0xa3, - 0xe8, 0x7f, 0x3f, 0xdd, 0xbd, 0xd8, 0xf4, 0x96, 0xd7, 0x60}, - "ZPR ", - 18}, - {{0xE4, 0x1d, 0x24, 0x89, 0x57, 0x1d, 0x32, 0x21, 0x89, 0x24, - 0x6D, 0xaF, 0xA5, 0xeb, 0xDe, 0x1F, 0x46, 0x99, 0xF4, 0x98}, - "ZRX ", - 18}, - {{0x7A, 0x41, 0xe0, 0x51, 0x7a, 0x5e, 0xcA, 0x4F, 0xdb, 0xC7, - 0xFb, 0xeb, 0xA4, 0xD4, 0xc4, 0x7B, 0x9f, 0xF6, 0xDC, 0x63}, - "ZSC ", - 18}, - {{0xe3, 0x86, 0xb1, 0x39, 0xed, 0x37, 0x15, 0xca, 0x4b, 0x18, - 0xfd, 0x52, 0x67, 0x1b, 0xdc, 0xea, 0x1c, 0xdf, 0xe4, 0xb1}, - "ZST ", - 8}, - {{0xE8, 0xF9, 0xfa, 0x97, 0x7e, 0xa5, 0x85, 0x59, 0x1d, 0x9F, - 0x39, 0x46, 0x81, 0x31, 0x8C, 0x16, 0x55, 0x25, 0x77, 0xfB}, - "ZTX ", - 18}, - {{0x83, 0xe2, 0xbe, 0x8d, 0x11, 0x4f, 0x96, 0x61, 0x22, 0x13, - 0x84, 0xb3, 0xa5, 0x0d, 0x24, 0xb9, 0x6a, 0x56, 0x53, 0xf5}, - "ZXC ", - 18}, - {{0xab, 0xC1, 0x28, 0x0A, 0x01, 0x87, 0xa2, 0x02, 0x0c, 0xC6, - 0x75, 0x43, 0x7a, 0xed, 0x40, 0x01, 0x85, 0xF8, 0x6D, 0xb6}, - "SAC ", - 18}, - {{0xf3, 0xC0, 0x92, 0xcA, 0x8C, 0xD6, 0xD3, 0xd4, 0xca, 0x00, - 0x4D, 0xc1, 0xd0, 0xf1, 0xfe, 0x8C, 0xcA, 0xB5, 0x35, 0x99}, - "ZIX ", - 18}, }; +const tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA] = {}; + const tokenDefinition_t const TOKENS_ELLAISM[NUM_TOKENS_ELLAISM] = { {{0x99, 0x1e, 0x7f, 0xe4, 0xb0, 0x5f, 0x2b, 0x3d, 0xb1, 0xd7, 0x88, 0xe7, 0x05, 0x96, 0x3f, 0x5d, 0x64, 0x7b, 0x00, 0x44}, diff --git a/src/tokens.h b/src/tokens.h index 06df7f0..1a5ef6b 100644 --- a/src/tokens.h +++ b/src/tokens.h @@ -64,9 +64,11 @@ static const uint8_t LEDGER_SIGNATURE_PUBLIC_KEY[] = { #else +// These defines need to follow tokens.c + #define NUM_TOKENS_AKROMA 0 #define NUM_TOKENS_ELLAISM 1 -#define NUM_TOKENS_ETHEREUM 1102 +#define NUM_TOKENS_ETHEREUM 2 #define NUM_TOKENS_ETHEREUM_CLASSIC 4 #define NUM_TOKENS_ETHERSOCIAL 0 #define NUM_TOKENS_ETHER1 0 diff --git a/src/ui_callbacks.h b/src/ui_callbacks.h index 26702bc..8b0a15a 100644 --- a/src/ui_callbacks.h +++ b/src/ui_callbacks.h @@ -16,6 +16,7 @@ unsigned int io_seproxyhal_touch_signMessage712_v0_cancel(const bagl_element_t * unsigned int io_seproxyhal_touch_eth2_address_ok(const bagl_element_t *e); void ui_idle(void); +void ui_warning_contract_data(void); void io_seproxyhal_send_status(uint32_t sw); void format_signature_out(const uint8_t *signature); diff --git a/src/ui_flow.c b/src/ui_flow.c index d88732f..b6b2fa3 100644 --- a/src/ui_flow.c +++ b/src/ui_flow.c @@ -2,7 +2,7 @@ #include "ui_callbacks.h" void display_settings(const ux_flow_step_t* const start_step); -void switch_settings_contract_data(void); +void switch_settings_blind_signing(void); void switch_settings_display_data(void); void switch_settings_display_nonce(void); @@ -54,9 +54,9 @@ UX_FLOW(ux_idle_flow, UX_STEP_CB( ux_settings_flow_1_step, bnnn_paging, - switch_settings_contract_data(), + switch_settings_blind_signing(), { - .title = "Contract data", + .title = "Blind signing", .text = strings.common.fullAddress, }); @@ -83,11 +83,11 @@ UX_STEP_CB( UX_STEP_CB( ux_settings_flow_1_step, bnnn, - switch_settings_contract_data(), + switch_settings_blind_signing(), { - "Contract data", - "Allow contract data", - "in transactions", + "Blind signing", + "Enable transaction", + "blind signing", strings.common.fullAddress, }); @@ -132,7 +132,7 @@ UX_FLOW(ux_settings_flow, &ux_settings_flow_4_step); void display_settings(const ux_flow_step_t* const start_step) { - strlcpy(strings.common.fullAddress, (N_storage.dataAllowed ? "Allowed" : "NOT Allowed"), 12); + strlcpy(strings.common.fullAddress, (N_storage.dataAllowed ? "Enabled" : "NOT Enabled"), 12); strlcpy(strings.common.fullAddress + 12, (N_storage.contractDetails ? "Displayed" : "NOT Displayed"), 26 - 12); @@ -142,7 +142,7 @@ void display_settings(const ux_flow_step_t* const start_step) { ux_flow_init(0, ux_settings_flow, start_step); } -void switch_settings_contract_data() { +void switch_settings_blind_signing() { uint8_t value = (N_storage.dataAllowed ? 0 : 1); nvm_write((void*) &N_storage.dataAllowed, (void*) &value, sizeof(uint8_t)); display_settings(&ux_settings_flow_1_step); @@ -159,3 +159,29 @@ void switch_settings_display_nonce() { nvm_write((void*) &N_storage.displayNonce, (void*) &value, sizeof(uint8_t)); display_settings(&ux_settings_flow_3_step); } + +////////////////////////////////////////////////////////////////////// +// clang-format off +#if defined(TARGET_NANOS) +UX_STEP_CB( + ux_warning_contract_data_step, + bnnn_paging, + ui_idle(), + { + "Error", + "Blind signing must be enabled in Settings", + }); +#elif defined(TARGET_NANOX) +UX_STEP_CB( + ux_warning_contract_data_step, + pnn, + ui_idle(), + { + &C_icon_crossmark, + "Blind signing must be", + "enabled in Settings", + }); +#endif +// clang-format on + +UX_FLOW(ux_warning_contract_data_flow, &ux_warning_contract_data_step); \ No newline at end of file diff --git a/src/ui_flow.h b/src/ui_flow.h index 927f5e2..8797b95 100644 --- a/src/ui_flow.h +++ b/src/ui_flow.h @@ -5,6 +5,8 @@ extern const ux_flow_step_t* const ux_idle_flow[]; +extern const ux_flow_step_t* const ux_warning_contract_data_flow[]; + extern const ux_flow_step_t* const ux_settings_flow[]; extern const ux_flow_step_t* const ux_display_public_flow[]; diff --git a/src/utils.c b/src/utils.c index 5048119..40575da 100644 --- a/src/utils.c +++ b/src/utils.c @@ -118,10 +118,8 @@ void amountToString(const uint8_t *amount, uint8_t out_buffer_size) { char tmp_buffer[100] = {0}; - bool success = uint256_to_decimal(amount, amount_size, tmp_buffer, sizeof(tmp_buffer)); - - if (!success) { - THROW(0x6504); + if (uint256_to_decimal(amount, amount_size, tmp_buffer, sizeof(tmp_buffer)) == false) { + THROW(EXCEPTION_OVERFLOW); } uint8_t amount_len = strnlen(tmp_buffer, sizeof(tmp_buffer)); @@ -129,11 +127,14 @@ void amountToString(const uint8_t *amount, memcpy(out_buffer, ticker, MIN(out_buffer_size, ticker_len)); - adjustDecimals(tmp_buffer, - amount_len, - out_buffer + ticker_len, - out_buffer_size - ticker_len - 1, - decimals); + if (adjustDecimals(tmp_buffer, + amount_len, + out_buffer + ticker_len, + out_buffer_size - ticker_len - 1, + decimals) == false) { + THROW(EXCEPTION_OVERFLOW); + } + out_buffer[out_buffer_size - 1] = '\0'; } diff --git a/src_common/network.c b/src_common/network.c index eee88c6..f568855 100644 --- a/src_common/network.c +++ b/src_common/network.c @@ -19,6 +19,7 @@ const network_info_t NETWORK_MAPPING[] = { {.chain_id = 100, .name = "xDai", .ticker = "xDAI "}, {.chain_id = 137, .name = "Polygon", .ticker = "MATIC "}, {.chain_id = 250, .name = "Fantom", .ticker = "FTM "}, + {.chain_id = 42161, .name = "Arbitrum", .ticker = "AETH "}, {.chain_id = 42220, .name = "Celo", .ticker = "CELO "}, {.chain_id = 43114, .name = "Avalanche", .ticker = "AVAX "}, {.chain_id = 44787, .name = "Celo Alfajores", .ticker = "aCELO "}, diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index cec6536..ad0a1f6 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -81,6 +81,7 @@ customStatus_e customProcessor(txContext_t *context) { if (fieldPos == 0) { // not reached if a plugin is available if (!N_storage.dataAllowed) { PRINTF("Data field forbidden\n"); + ui_warning_contract_data(); return CUSTOM_FAULT; } if (!N_storage.contractDetails) { @@ -407,6 +408,7 @@ void finalizeParsing(bool direct) { if (tmpContent.txContent.dataPresent && !N_storage.dataAllowed) { reportFinalizeError(direct); + ui_warning_contract_data(); if (!direct) { return; } @@ -438,7 +440,7 @@ void finalizeParsing(bool direct) { displayBuffer, sizeof(displayBuffer)); compareOrCopy(strings.common.fullAmount, - sizeof(strings.common.fullAddress), + sizeof(strings.common.fullAmount), displayBuffer, called_from_swap); } diff --git a/src_features/signTx/ui_flow_signTx.c b/src_features/signTx/ui_flow_signTx.c index b508ee5..8f6a974 100644 --- a/src_features/signTx/ui_flow_signTx.c +++ b/src_features/signTx/ui_flow_signTx.c @@ -187,12 +187,12 @@ UX_STEP_NOCB( .text = strings.common.nonce, }); -UX_STEP_NOCB(ux_approval_data_warning_step, +UX_STEP_NOCB(ux_approval_blind_signing_warning_step, pbb, { &C_icon_warning, - "Data", - "Present", + "Blind", + "Signing", }); // clang-format on @@ -203,7 +203,7 @@ void ux_approve_tx(bool fromPlugin) { ux_approval_tx_flow[step++] = &ux_approval_review_step; if (!fromPlugin && tmpContent.txContent.dataPresent && !N_storage.contractDetails) { - ux_approval_tx_flow[step++] = &ux_approval_data_warning_step; + ux_approval_tx_flow[step++] = &ux_approval_blind_signing_warning_step; } if (fromPlugin) { diff --git a/src_plugins/starkware/starkware_plugin.c b/src_plugins/starkware/starkware_plugin.c index 872ea0d..31abfb5 100644 --- a/src_plugins/starkware/starkware_plugin.c +++ b/src_plugins/starkware/starkware_plugin.c @@ -167,6 +167,9 @@ typedef struct starkware_parameters_t { } starkware_parameters_t; +#define STARK_KEY_LENGTH (2 + length * 2 + 1) +#define VAULT_ID_LENGTH 10 + bool is_deversify_contract(const uint8_t *address) { uint32_t offset = 0; uint8_t i; @@ -271,12 +274,21 @@ bool starkware_verify_nft_token_id(uint8_t *tokenId) { return true; } -void starkware_print_vault_id(uint32_t vaultId, char *destination) { - snprintf(destination, 10, "%d", vaultId); +void starkware_print_vault_id(uint32_t vaultId, char *destination, size_t max_length) { + if (VAULT_ID_LENGTH > max_length) { + os_sched_exit(EXCEPTION_OVERFLOW); + } + snprintf(destination, max_length, "%d", vaultId); } -void starkware_print_stark_key(uint8_t *starkKey, char *destination) { - snprintf(destination, 70, "0x%.*H", 32, starkKey); +void starkware_print_stark_key(uint8_t *starkKey, + size_t length, + char *destination, + size_t max_length) { + if (STARK_KEY_LENGTH > max_length) { + os_sched_exit(EXCEPTION_OVERFLOW); + } + snprintf(destination, max_length, "0x%.*H", length, starkKey); } // TODO : rewrite as independant code @@ -741,7 +753,10 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_WITHDRAW_NFT: case STARKWARE_WITHDRAW_NFT_TO: strlcpy(msg->title, "Master Account", msg->titleLength); - starkware_print_stark_key(context->starkKey, msg->msg); + starkware_print_stark_key(context->starkKey, + sizeof(context->starkKey), + msg->msg, + msg->msgLength); break; default: PRINTF("Unexpected screen %d for %d\n", @@ -758,7 +773,10 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN: case STARKWARE_REGISTER_AND_DEPOSIT_ETH: strlcpy(msg->title, "Master Account", msg->titleLength); - starkware_print_stark_key(context->starkKey, msg->msg); + starkware_print_stark_key(context->starkKey, + sizeof(context->starkKey), + msg->msg, + msg->msgLength); break; case STARKWARE_DEPOSIT_TOKEN: @@ -772,7 +790,9 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_DEPOSIT_NFT: case STARKWARE_DEPOSIT_NFT_RECLAIM: strlcpy(msg->title, "Token Account", msg->titleLength); - starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg); + starkware_print_vault_id(U4BE(context->vaultId, 0), + msg->msg, + msg->msgLength); break; case STARKWARE_WITHDRAW: case STARKWARE_WITHDRAW_NFT: @@ -806,7 +826,9 @@ void starkware_plugin_call(int message, void *parameters) { switch (context->selectorIndex) { case STARKWARE_ESCAPE: strlcpy(msg->title, "Token Account", msg->titleLength); - starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg); + starkware_print_vault_id(U4BE(context->vaultId, 0), + msg->msg, + msg->msgLength); break; case STARKWARE_DEPOSIT_TOKEN: case STARKWARE_DEPOSIT_ETH: @@ -839,7 +861,9 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN: case STARKWARE_REGISTER_AND_DEPOSIT_ETH: strlcpy(msg->title, "Token Account", msg->titleLength); - starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg); + starkware_print_vault_id(U4BE(context->vaultId, 0), + msg->msg, + msg->msgLength); break; default: @@ -858,7 +882,10 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_DEPOSIT_NFT: case STARKWARE_DEPOSIT_NFT_RECLAIM: strlcpy(msg->title, "TokenID", msg->titleLength); - starkware_print_stark_key(dataContext.tokenContext.quantum, msg->msg); + starkware_print_stark_key(dataContext.tokenContext.quantum, + sizeof(dataContext.tokenContext.quantum), + msg->msg, + msg->msgLength); break; case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN: diff --git a/tests/build_local_test_elfs.sh b/tests/build_local_test_elfs.sh index 38777eb..dd84b45 100755 --- a/tests/build_local_test_elfs.sh +++ b/tests/build_local_test_elfs.sh @@ -1,8 +1,8 @@ #!/bin/bash # FILL THESE WITH YOUR OWN SDKs PATHS -NANOS_SDK=$TWO -NANOX_SDK=$X +# NANOS_SDK= +# NANOX_SDK= # list of apps required by tests that we want to build here appnames=("ethereum" "ethereum_classic") diff --git a/tests/snapshots/deposit/nanos/data_present.png b/tests/snapshots/deposit/nanos/data_present.png deleted file mode 100644 index 3bb21d5..0000000 Binary files a/tests/snapshots/deposit/nanos/data_present.png and /dev/null differ diff --git a/tests/snapshots/deposit/nanox/data_present.png b/tests/snapshots/deposit/nanox/data_present.png deleted file mode 100644 index dd2bbf9..0000000 Binary files a/tests/snapshots/deposit/nanox/data_present.png and /dev/null differ diff --git a/tests/snapshots/approve/nanos/review.png b/tests/snapshots/nanos_approve_dai_tokens/00000.png similarity index 100% rename from tests/snapshots/approve/nanos/review.png rename to tests/snapshots/nanos_approve_dai_tokens/00000.png diff --git a/tests/snapshots/approve/nanos/type.png b/tests/snapshots/nanos_approve_dai_tokens/00001.png similarity index 100% rename from tests/snapshots/approve/nanos/type.png rename to tests/snapshots/nanos_approve_dai_tokens/00001.png diff --git a/tests/snapshots/approve/nanos/amount.png b/tests/snapshots/nanos_approve_dai_tokens/00002.png similarity index 100% rename from tests/snapshots/approve/nanos/amount.png rename to tests/snapshots/nanos_approve_dai_tokens/00002.png diff --git a/tests/snapshots/approve/nanos/address_1.png b/tests/snapshots/nanos_approve_dai_tokens/00003.png similarity index 100% rename from tests/snapshots/approve/nanos/address_1.png rename to tests/snapshots/nanos_approve_dai_tokens/00003.png diff --git a/tests/snapshots/approve/nanos/address_2.png b/tests/snapshots/nanos_approve_dai_tokens/00004.png similarity index 100% rename from tests/snapshots/approve/nanos/address_2.png rename to tests/snapshots/nanos_approve_dai_tokens/00004.png diff --git a/tests/snapshots/approve/nanos/address_3.png b/tests/snapshots/nanos_approve_dai_tokens/00005.png similarity index 100% rename from tests/snapshots/approve/nanos/address_3.png rename to tests/snapshots/nanos_approve_dai_tokens/00005.png diff --git a/tests/snapshots/approve/nanos/fees.png b/tests/snapshots/nanos_approve_dai_tokens/00006.png similarity index 100% rename from tests/snapshots/approve/nanos/fees.png rename to tests/snapshots/nanos_approve_dai_tokens/00006.png diff --git a/tests/snapshots/approve/nanos/accept.png b/tests/snapshots/nanos_approve_dai_tokens/00007.png similarity index 100% rename from tests/snapshots/approve/nanos/accept.png rename to tests/snapshots/nanos_approve_dai_tokens/00007.png diff --git a/tests/snapshots/nanos_approve_dai_tokens/00008.png b/tests/snapshots/nanos_approve_dai_tokens/00008.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_approve_dai_tokens/00008.png differ diff --git a/tests/snapshots/chainid/nanos/review.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00000.png similarity index 100% rename from tests/snapshots/chainid/nanos/review.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00000.png diff --git a/tests/snapshots/nanos_deposit_eth_compound_blind/00001.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00001.png new file mode 100644 index 0000000..942f5a6 Binary files /dev/null and b/tests/snapshots/nanos_deposit_eth_compound_blind/00001.png differ diff --git a/tests/snapshots/deposit/nanos/amount.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00002.png similarity index 100% rename from tests/snapshots/deposit/nanos/amount.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00002.png diff --git a/tests/snapshots/deposit/nanos/address_1.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00003.png similarity index 100% rename from tests/snapshots/deposit/nanos/address_1.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00003.png diff --git a/tests/snapshots/deposit/nanos/address_2.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00004.png similarity index 100% rename from tests/snapshots/deposit/nanos/address_2.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00004.png diff --git a/tests/snapshots/deposit/nanos/address_3.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00005.png similarity index 100% rename from tests/snapshots/deposit/nanos/address_3.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00005.png diff --git a/tests/snapshots/deposit/nanos/fees.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00006.png similarity index 100% rename from tests/snapshots/deposit/nanos/fees.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00006.png diff --git a/tests/snapshots/chainid/nanos/accept.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00007.png similarity index 100% rename from tests/snapshots/chainid/nanos/accept.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00007.png diff --git a/tests/snapshots/nanos_deposit_eth_compound_blind/00008.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00008.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_deposit_eth_compound_blind/00008.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00000.png b/tests/snapshots/nanos_disable_blind_signing/00000.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00000.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00001.png b/tests/snapshots/nanos_disable_blind_signing/00001.png new file mode 100644 index 0000000..29a6bd3 Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00001.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00002.png b/tests/snapshots/nanos_disable_blind_signing/00002.png new file mode 100644 index 0000000..d4bd8ad Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00002.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00003.png b/tests/snapshots/nanos_disable_blind_signing/00003.png new file mode 100644 index 0000000..7b3e0ea Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00003.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00004.png b/tests/snapshots/nanos_disable_blind_signing/00004.png new file mode 100644 index 0000000..e4ad84f Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00004.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00005.png b/tests/snapshots/nanos_disable_blind_signing/00005.png new file mode 100644 index 0000000..28e70e8 Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00005.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00006.png b/tests/snapshots/nanos_disable_blind_signing/00006.png new file mode 100644 index 0000000..c844a37 Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00006.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00007.png b/tests/snapshots/nanos_disable_blind_signing/00007.png new file mode 100644 index 0000000..be02838 Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00007.png differ diff --git a/tests/snapshots/nanos_disable_blind_signing/00008.png b/tests/snapshots/nanos_disable_blind_signing/00008.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_disable_blind_signing/00008.png differ diff --git a/tests/snapshots/deposit/nanos/review.png b/tests/snapshots/nanos_starkware_usdt_deposit/00000.png similarity index 100% rename from tests/snapshots/deposit/nanos/review.png rename to tests/snapshots/nanos_starkware_usdt_deposit/00000.png diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00001.png b/tests/snapshots/nanos_starkware_usdt_deposit/00001.png new file mode 100644 index 0000000..888cad3 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00001.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00002.png b/tests/snapshots/nanos_starkware_usdt_deposit/00002.png new file mode 100644 index 0000000..637a898 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00002.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00003.png b/tests/snapshots/nanos_starkware_usdt_deposit/00003.png new file mode 100644 index 0000000..ef02a09 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00003.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00004.png b/tests/snapshots/nanos_starkware_usdt_deposit/00004.png new file mode 100644 index 0000000..3372d18 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00004.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00005.png b/tests/snapshots/nanos_starkware_usdt_deposit/00005.png new file mode 100644 index 0000000..0805b33 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00005.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00006.png b/tests/snapshots/nanos_starkware_usdt_deposit/00006.png new file mode 100644 index 0000000..d7891ee Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00006.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00007.png b/tests/snapshots/nanos_starkware_usdt_deposit/00007.png new file mode 100644 index 0000000..5bf1130 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00007.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00008.png b/tests/snapshots/nanos_starkware_usdt_deposit/00008.png new file mode 100644 index 0000000..a0286ff Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00008.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00009.png b/tests/snapshots/nanos_starkware_usdt_deposit/00009.png new file mode 100644 index 0000000..c602bbd Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00009.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00010.png b/tests/snapshots/nanos_starkware_usdt_deposit/00010.png new file mode 100644 index 0000000..c81ed09 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00010.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00011.png b/tests/snapshots/nanos_starkware_usdt_deposit/00011.png new file mode 100644 index 0000000..d762697 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00011.png differ diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00012.png b/tests/snapshots/nanos_starkware_usdt_deposit/00012.png new file mode 100644 index 0000000..a595174 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00012.png differ diff --git a/tests/snapshots/deposit/nanos/accept.png b/tests/snapshots/nanos_starkware_usdt_deposit/00013.png similarity index 100% rename from tests/snapshots/deposit/nanos/accept.png rename to tests/snapshots/nanos_starkware_usdt_deposit/00013.png diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00014.png b/tests/snapshots/nanos_starkware_usdt_deposit/00014.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_starkware_usdt_deposit/00014.png differ diff --git a/tests/snapshots/eip1559/nanos/review.png b/tests/snapshots/nanos_transfer_112233445566_network/00000.png similarity index 100% rename from tests/snapshots/eip1559/nanos/review.png rename to tests/snapshots/nanos_transfer_112233445566_network/00000.png diff --git a/tests/snapshots/chainid/nanos/amount_1.png b/tests/snapshots/nanos_transfer_112233445566_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_112233445566_network/00001.png diff --git a/tests/snapshots/chainid/nanos/amount_2.png b/tests/snapshots/nanos_transfer_112233445566_network/00002.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_112233445566_network/00002.png diff --git a/tests/snapshots/chainid/nanos/amount_3.png b/tests/snapshots/nanos_transfer_112233445566_network/00003.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_112233445566_network/00003.png diff --git a/tests/snapshots/chainid/nanos/address_1.png b/tests/snapshots/nanos_transfer_112233445566_network/00004.png similarity index 100% rename from tests/snapshots/chainid/nanos/address_1.png rename to tests/snapshots/nanos_transfer_112233445566_network/00004.png diff --git a/tests/snapshots/chainid/nanos/address_2.png b/tests/snapshots/nanos_transfer_112233445566_network/00005.png similarity index 100% rename from tests/snapshots/chainid/nanos/address_2.png rename to tests/snapshots/nanos_transfer_112233445566_network/00005.png diff --git a/tests/snapshots/chainid/nanos/address_3.png b/tests/snapshots/nanos_transfer_112233445566_network/00006.png similarity index 100% rename from tests/snapshots/chainid/nanos/address_3.png rename to tests/snapshots/nanos_transfer_112233445566_network/00006.png diff --git a/tests/snapshots/chainid/nanos/network.png b/tests/snapshots/nanos_transfer_112233445566_network/00007.png similarity index 100% rename from tests/snapshots/chainid/nanos/network.png rename to tests/snapshots/nanos_transfer_112233445566_network/00007.png diff --git a/tests/snapshots/chainid/nanos/fees.png b/tests/snapshots/nanos_transfer_112233445566_network/00008.png similarity index 100% rename from tests/snapshots/chainid/nanos/fees.png rename to tests/snapshots/nanos_transfer_112233445566_network/00008.png diff --git a/tests/snapshots/eip1559/nanos/accept.png b/tests/snapshots/nanos_transfer_112233445566_network/00009.png similarity index 100% rename from tests/snapshots/eip1559/nanos/accept.png rename to tests/snapshots/nanos_transfer_112233445566_network/00009.png diff --git a/tests/snapshots/nanos_transfer_112233445566_network/00010.png b/tests/snapshots/nanos_transfer_112233445566_network/00010.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_112233445566_network/00010.png differ diff --git a/tests/snapshots/send/nanos/review.png b/tests/snapshots/nanos_transfer_bsc/00000.png similarity index 100% rename from tests/snapshots/send/nanos/review.png rename to tests/snapshots/nanos_transfer_bsc/00000.png diff --git a/tests/snapshots/send_bsc/nanos/amount_1.png b/tests/snapshots/nanos_transfer_bsc/00001.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_bsc/00001.png diff --git a/tests/snapshots/send/nanos/amount_2.png b/tests/snapshots/nanos_transfer_bsc/00002.png similarity index 100% rename from tests/snapshots/send/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_bsc/00002.png diff --git a/tests/snapshots/send/nanos/amount_3.png b/tests/snapshots/nanos_transfer_bsc/00003.png similarity index 100% rename from tests/snapshots/send/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_bsc/00003.png diff --git a/tests/snapshots/send/nanos/address_1.png b/tests/snapshots/nanos_transfer_bsc/00004.png similarity index 100% rename from tests/snapshots/send/nanos/address_1.png rename to tests/snapshots/nanos_transfer_bsc/00004.png diff --git a/tests/snapshots/send/nanos/address_2.png b/tests/snapshots/nanos_transfer_bsc/00005.png similarity index 100% rename from tests/snapshots/send/nanos/address_2.png rename to tests/snapshots/nanos_transfer_bsc/00005.png diff --git a/tests/snapshots/send/nanos/address_3.png b/tests/snapshots/nanos_transfer_bsc/00006.png similarity index 100% rename from tests/snapshots/send/nanos/address_3.png rename to tests/snapshots/nanos_transfer_bsc/00006.png diff --git a/tests/snapshots/send_bsc/nanos/network.png b/tests/snapshots/nanos_transfer_bsc/00007.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/network.png rename to tests/snapshots/nanos_transfer_bsc/00007.png diff --git a/tests/snapshots/send_bsc/nanos/fees.png b/tests/snapshots/nanos_transfer_bsc/00008.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/fees.png rename to tests/snapshots/nanos_transfer_bsc/00008.png diff --git a/tests/snapshots/send/nanos/accept.png b/tests/snapshots/nanos_transfer_bsc/00009.png similarity index 100% rename from tests/snapshots/send/nanos/accept.png rename to tests/snapshots/nanos_transfer_bsc/00009.png diff --git a/tests/snapshots/nanos_transfer_bsc/00010.png b/tests/snapshots/nanos_transfer_bsc/00010.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_bsc/00010.png differ diff --git a/tests/snapshots/send_bsc/nanos/review.png b/tests/snapshots/nanos_transfer_eip1559/00000.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/review.png rename to tests/snapshots/nanos_transfer_eip1559/00000.png diff --git a/tests/snapshots/eip1559/nanos/amount.png b/tests/snapshots/nanos_transfer_eip1559/00001.png similarity index 100% rename from tests/snapshots/eip1559/nanos/amount.png rename to tests/snapshots/nanos_transfer_eip1559/00001.png diff --git a/tests/snapshots/eip1559/nanos/address_1.png b/tests/snapshots/nanos_transfer_eip1559/00002.png similarity index 100% rename from tests/snapshots/eip1559/nanos/address_1.png rename to tests/snapshots/nanos_transfer_eip1559/00002.png diff --git a/tests/snapshots/eip1559/nanos/address_2.png b/tests/snapshots/nanos_transfer_eip1559/00003.png similarity index 100% rename from tests/snapshots/eip1559/nanos/address_2.png rename to tests/snapshots/nanos_transfer_eip1559/00003.png diff --git a/tests/snapshots/eip1559/nanos/address_3.png b/tests/snapshots/nanos_transfer_eip1559/00004.png similarity index 100% rename from tests/snapshots/eip1559/nanos/address_3.png rename to tests/snapshots/nanos_transfer_eip1559/00004.png diff --git a/tests/snapshots/eip1559/nanos/fees.png b/tests/snapshots/nanos_transfer_eip1559/00005.png similarity index 100% rename from tests/snapshots/eip1559/nanos/fees.png rename to tests/snapshots/nanos_transfer_eip1559/00005.png diff --git a/tests/snapshots/send_bsc/nanos/accept.png b/tests/snapshots/nanos_transfer_eip1559/00006.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/accept.png rename to tests/snapshots/nanos_transfer_eip1559/00006.png diff --git a/tests/snapshots/nanos_transfer_eip1559/00007.png b/tests/snapshots/nanos_transfer_eip1559/00007.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_eip1559/00007.png differ diff --git a/tests/snapshots/send_etc/nanos/review.png b/tests/snapshots/nanos_transfer_ethereum/00000.png similarity index 100% rename from tests/snapshots/send_etc/nanos/review.png rename to tests/snapshots/nanos_transfer_ethereum/00000.png diff --git a/tests/snapshots/send/nanos/amount_1.png b/tests/snapshots/nanos_transfer_ethereum/00001.png similarity index 100% rename from tests/snapshots/send/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_ethereum/00001.png diff --git a/tests/snapshots/send_bsc/nanos/amount_2.png b/tests/snapshots/nanos_transfer_ethereum/00002.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_ethereum/00002.png diff --git a/tests/snapshots/send_bsc/nanos/amount_3.png b/tests/snapshots/nanos_transfer_ethereum/00003.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_ethereum/00003.png diff --git a/tests/snapshots/send_bsc/nanos/address_1.png b/tests/snapshots/nanos_transfer_ethereum/00004.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/address_1.png rename to tests/snapshots/nanos_transfer_ethereum/00004.png diff --git a/tests/snapshots/send_bsc/nanos/address_2.png b/tests/snapshots/nanos_transfer_ethereum/00005.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/address_2.png rename to tests/snapshots/nanos_transfer_ethereum/00005.png diff --git a/tests/snapshots/send_bsc/nanos/address_3.png b/tests/snapshots/nanos_transfer_ethereum/00006.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/address_3.png rename to tests/snapshots/nanos_transfer_ethereum/00006.png diff --git a/tests/snapshots/send/nanos/fees.png b/tests/snapshots/nanos_transfer_ethereum/00007.png similarity index 100% rename from tests/snapshots/send/nanos/fees.png rename to tests/snapshots/nanos_transfer_ethereum/00007.png diff --git a/tests/snapshots/send_etc/nanos/accept.png b/tests/snapshots/nanos_transfer_ethereum/00008.png similarity index 100% rename from tests/snapshots/send_etc/nanos/accept.png rename to tests/snapshots/nanos_transfer_ethereum/00008.png diff --git a/tests/snapshots/nanos_transfer_ethereum/00009.png b/tests/snapshots/nanos_transfer_ethereum/00009.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum/00009.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00000.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00000.png new file mode 100644 index 0000000..2994983 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_5234_network/00000.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00001.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00001.png new file mode 100644 index 0000000..4cd3e38 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_5234_network/00001.png differ diff --git a/tests/snapshots/send_etc/nanos/amount_2.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00002.png similarity index 100% rename from tests/snapshots/send_etc/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00002.png diff --git a/tests/snapshots/send_etc/nanos/amount_3.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00003.png similarity index 100% rename from tests/snapshots/send_etc/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00003.png diff --git a/tests/snapshots/send_etc/nanos/address_1.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00004.png similarity index 100% rename from tests/snapshots/send_etc/nanos/address_1.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00004.png diff --git a/tests/snapshots/send_etc/nanos/address_2.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00005.png similarity index 100% rename from tests/snapshots/send_etc/nanos/address_2.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00005.png diff --git a/tests/snapshots/send_etc/nanos/address_3.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00006.png similarity index 100% rename from tests/snapshots/send_etc/nanos/address_3.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00006.png diff --git a/tests/snapshots/send/nanos/network.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00007.png similarity index 100% rename from tests/snapshots/send/nanos/network.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00007.png diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00008.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00008.png new file mode 100644 index 0000000..8b996b5 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_5234_network/00008.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00009.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00009.png new file mode 100644 index 0000000..3158ea6 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_5234_network/00009.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00010.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00010.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_5234_network/00010.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00000.png b/tests/snapshots/nanos_transfer_ethereum_clone/00000.png new file mode 100644 index 0000000..2994983 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00000.png differ diff --git a/tests/snapshots/send_etc/nanos/amount_1.png b/tests/snapshots/nanos_transfer_ethereum_clone/00001.png similarity index 100% rename from tests/snapshots/send_etc/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_ethereum_clone/00001.png diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00002.png b/tests/snapshots/nanos_transfer_ethereum_clone/00002.png new file mode 100644 index 0000000..11ae75e Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00002.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00003.png b/tests/snapshots/nanos_transfer_ethereum_clone/00003.png new file mode 100644 index 0000000..e042010 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00003.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00004.png b/tests/snapshots/nanos_transfer_ethereum_clone/00004.png new file mode 100644 index 0000000..f979f71 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00004.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00005.png b/tests/snapshots/nanos_transfer_ethereum_clone/00005.png new file mode 100644 index 0000000..93c90c5 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00005.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00006.png b/tests/snapshots/nanos_transfer_ethereum_clone/00006.png new file mode 100644 index 0000000..402c20d Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00006.png differ diff --git a/tests/snapshots/send_etc/nanos/fees.png b/tests/snapshots/nanos_transfer_ethereum_clone/00007.png similarity index 100% rename from tests/snapshots/send_etc/nanos/fees.png rename to tests/snapshots/nanos_transfer_ethereum_clone/00007.png diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00008.png b/tests/snapshots/nanos_transfer_ethereum_clone/00008.png new file mode 100644 index 0000000..3158ea6 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00008.png differ diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00009.png b/tests/snapshots/nanos_transfer_ethereum_clone/00009.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_ethereum_clone/00009.png differ diff --git a/tests/snapshots/nanos_transfer_palm_network/00000.png b/tests/snapshots/nanos_transfer_palm_network/00000.png new file mode 100644 index 0000000..2994983 Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00000.png differ diff --git a/tests/snapshots/chainid/nanos/amount_1_palm.png b/tests/snapshots/nanos_transfer_palm_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_1_palm.png rename to tests/snapshots/nanos_transfer_palm_network/00001.png diff --git a/tests/snapshots/nanos_transfer_palm_network/00002.png b/tests/snapshots/nanos_transfer_palm_network/00002.png new file mode 100644 index 0000000..11ae75e Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00002.png differ diff --git a/tests/snapshots/nanos_transfer_palm_network/00003.png b/tests/snapshots/nanos_transfer_palm_network/00003.png new file mode 100644 index 0000000..e042010 Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00003.png differ diff --git a/tests/snapshots/nanos_transfer_palm_network/00004.png b/tests/snapshots/nanos_transfer_palm_network/00004.png new file mode 100644 index 0000000..f979f71 Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00004.png differ diff --git a/tests/snapshots/nanos_transfer_palm_network/00005.png b/tests/snapshots/nanos_transfer_palm_network/00005.png new file mode 100644 index 0000000..93c90c5 Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00005.png differ diff --git a/tests/snapshots/nanos_transfer_palm_network/00006.png b/tests/snapshots/nanos_transfer_palm_network/00006.png new file mode 100644 index 0000000..402c20d Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00006.png differ diff --git a/tests/snapshots/chainid/nanos/palm.png b/tests/snapshots/nanos_transfer_palm_network/00007.png similarity index 100% rename from tests/snapshots/chainid/nanos/palm.png rename to tests/snapshots/nanos_transfer_palm_network/00007.png diff --git a/tests/snapshots/chainid/nanos/fees_palm.png b/tests/snapshots/nanos_transfer_palm_network/00008.png similarity index 100% rename from tests/snapshots/chainid/nanos/fees_palm.png rename to tests/snapshots/nanos_transfer_palm_network/00008.png diff --git a/tests/snapshots/nanos_transfer_palm_network/00009.png b/tests/snapshots/nanos_transfer_palm_network/00009.png new file mode 100644 index 0000000..3158ea6 Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00009.png differ diff --git a/tests/snapshots/nanos_transfer_palm_network/00010.png b/tests/snapshots/nanos_transfer_palm_network/00010.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_transfer_palm_network/00010.png differ diff --git a/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png new file mode 100644 index 0000000..e47d648 Binary files /dev/null and b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png differ diff --git a/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png new file mode 100644 index 0000000..b4443b6 Binary files /dev/null and b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png differ diff --git a/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png new file mode 100644 index 0000000..0bef4f3 Binary files /dev/null and b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png differ diff --git a/tests/snapshots/approve/nanox/review.png b/tests/snapshots/nanox_approve_dai_tokens/00000.png similarity index 100% rename from tests/snapshots/approve/nanox/review.png rename to tests/snapshots/nanox_approve_dai_tokens/00000.png diff --git a/tests/snapshots/approve/nanox/type.png b/tests/snapshots/nanox_approve_dai_tokens/00001.png similarity index 100% rename from tests/snapshots/approve/nanox/type.png rename to tests/snapshots/nanox_approve_dai_tokens/00001.png diff --git a/tests/snapshots/approve/nanox/amount.png b/tests/snapshots/nanox_approve_dai_tokens/00002.png similarity index 100% rename from tests/snapshots/approve/nanox/amount.png rename to tests/snapshots/nanox_approve_dai_tokens/00002.png diff --git a/tests/snapshots/approve/nanox/address.png b/tests/snapshots/nanox_approve_dai_tokens/00003.png similarity index 100% rename from tests/snapshots/approve/nanox/address.png rename to tests/snapshots/nanox_approve_dai_tokens/00003.png diff --git a/tests/snapshots/approve/nanox/fees.png b/tests/snapshots/nanox_approve_dai_tokens/00004.png similarity index 100% rename from tests/snapshots/approve/nanox/fees.png rename to tests/snapshots/nanox_approve_dai_tokens/00004.png diff --git a/tests/snapshots/approve/nanox/accept.png b/tests/snapshots/nanox_approve_dai_tokens/00005.png similarity index 100% rename from tests/snapshots/approve/nanox/accept.png rename to tests/snapshots/nanox_approve_dai_tokens/00005.png diff --git a/tests/snapshots/nanox_approve_dai_tokens/00006.png b/tests/snapshots/nanox_approve_dai_tokens/00006.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_approve_dai_tokens/00006.png differ diff --git a/tests/snapshots/chainid/nanox/review.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00000.png similarity index 100% rename from tests/snapshots/chainid/nanox/review.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00000.png diff --git a/tests/snapshots/nanox_deposit_eth_compound_blind/00001.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00001.png new file mode 100644 index 0000000..2d580d8 Binary files /dev/null and b/tests/snapshots/nanox_deposit_eth_compound_blind/00001.png differ diff --git a/tests/snapshots/deposit/nanox/amount.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00002.png similarity index 100% rename from tests/snapshots/deposit/nanox/amount.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00002.png diff --git a/tests/snapshots/deposit/nanox/address.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00003.png similarity index 100% rename from tests/snapshots/deposit/nanox/address.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00003.png diff --git a/tests/snapshots/deposit/nanox/fees.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00004.png similarity index 100% rename from tests/snapshots/deposit/nanox/fees.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00004.png diff --git a/tests/snapshots/chainid/nanox/accept.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00005.png similarity index 100% rename from tests/snapshots/chainid/nanox/accept.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00005.png diff --git a/tests/snapshots/nanox_deposit_eth_compound_blind/00006.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00006.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_deposit_eth_compound_blind/00006.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00000.png b/tests/snapshots/nanox_disable_blind_signing/00000.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00000.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00001.png b/tests/snapshots/nanox_disable_blind_signing/00001.png new file mode 100644 index 0000000..bf49b96 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00001.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00002.png b/tests/snapshots/nanox_disable_blind_signing/00002.png new file mode 100644 index 0000000..9230349 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00002.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00003.png b/tests/snapshots/nanox_disable_blind_signing/00003.png new file mode 100644 index 0000000..75f5f7c Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00003.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00004.png b/tests/snapshots/nanox_disable_blind_signing/00004.png new file mode 100644 index 0000000..ed04d70 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00004.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00005.png b/tests/snapshots/nanox_disable_blind_signing/00005.png new file mode 100644 index 0000000..ed01866 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00005.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00006.png b/tests/snapshots/nanox_disable_blind_signing/00006.png new file mode 100644 index 0000000..9ce4343 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00006.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00007.png b/tests/snapshots/nanox_disable_blind_signing/00007.png new file mode 100644 index 0000000..bc8064a Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00007.png differ diff --git a/tests/snapshots/nanox_disable_blind_signing/00008.png b/tests/snapshots/nanox_disable_blind_signing/00008.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_disable_blind_signing/00008.png differ diff --git a/tests/snapshots/deposit/nanox/review.png b/tests/snapshots/nanox_starkware_usdt_deposit/00000.png similarity index 100% rename from tests/snapshots/deposit/nanox/review.png rename to tests/snapshots/nanox_starkware_usdt_deposit/00000.png diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00001.png b/tests/snapshots/nanox_starkware_usdt_deposit/00001.png new file mode 100644 index 0000000..c1ca56b Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00001.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00002.png b/tests/snapshots/nanox_starkware_usdt_deposit/00002.png new file mode 100644 index 0000000..0329541 Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00002.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00003.png b/tests/snapshots/nanox_starkware_usdt_deposit/00003.png new file mode 100644 index 0000000..51b084f Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00003.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00004.png b/tests/snapshots/nanox_starkware_usdt_deposit/00004.png new file mode 100644 index 0000000..214f330 Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00004.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00005.png b/tests/snapshots/nanox_starkware_usdt_deposit/00005.png new file mode 100644 index 0000000..b062f58 Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00005.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00006.png b/tests/snapshots/nanox_starkware_usdt_deposit/00006.png new file mode 100644 index 0000000..5c759f5 Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00006.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00007.png b/tests/snapshots/nanox_starkware_usdt_deposit/00007.png new file mode 100644 index 0000000..882d04d Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00007.png differ diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00008.png b/tests/snapshots/nanox_starkware_usdt_deposit/00008.png new file mode 100644 index 0000000..7d24221 Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00008.png differ diff --git a/tests/snapshots/deposit/nanox/accept.png b/tests/snapshots/nanox_starkware_usdt_deposit/00009.png similarity index 100% rename from tests/snapshots/deposit/nanox/accept.png rename to tests/snapshots/nanox_starkware_usdt_deposit/00009.png diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00010.png b/tests/snapshots/nanox_starkware_usdt_deposit/00010.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_starkware_usdt_deposit/00010.png differ diff --git a/tests/snapshots/eip1559/nanox/review.png b/tests/snapshots/nanox_transfer_112233445566_network/00000.png similarity index 100% rename from tests/snapshots/eip1559/nanox/review.png rename to tests/snapshots/nanox_transfer_112233445566_network/00000.png diff --git a/tests/snapshots/chainid/nanox/amount.png b/tests/snapshots/nanox_transfer_112233445566_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanox/amount.png rename to tests/snapshots/nanox_transfer_112233445566_network/00001.png diff --git a/tests/snapshots/chainid/nanox/address.png b/tests/snapshots/nanox_transfer_112233445566_network/00002.png similarity index 100% rename from tests/snapshots/chainid/nanox/address.png rename to tests/snapshots/nanox_transfer_112233445566_network/00002.png diff --git a/tests/snapshots/chainid/nanox/network.png b/tests/snapshots/nanox_transfer_112233445566_network/00003.png similarity index 100% rename from tests/snapshots/chainid/nanox/network.png rename to tests/snapshots/nanox_transfer_112233445566_network/00003.png diff --git a/tests/snapshots/chainid/nanox/fees.png b/tests/snapshots/nanox_transfer_112233445566_network/00004.png similarity index 100% rename from tests/snapshots/chainid/nanox/fees.png rename to tests/snapshots/nanox_transfer_112233445566_network/00004.png diff --git a/tests/snapshots/eip1559/nanox/accept.png b/tests/snapshots/nanox_transfer_112233445566_network/00005.png similarity index 100% rename from tests/snapshots/eip1559/nanox/accept.png rename to tests/snapshots/nanox_transfer_112233445566_network/00005.png diff --git a/tests/snapshots/nanox_transfer_112233445566_network/00006.png b/tests/snapshots/nanox_transfer_112233445566_network/00006.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_112233445566_network/00006.png differ diff --git a/tests/snapshots/send/nanox/review.png b/tests/snapshots/nanox_transfer_bsc/00000.png similarity index 100% rename from tests/snapshots/send/nanox/review.png rename to tests/snapshots/nanox_transfer_bsc/00000.png diff --git a/tests/snapshots/send_bsc/nanox/amount.png b/tests/snapshots/nanox_transfer_bsc/00001.png similarity index 100% rename from tests/snapshots/send_bsc/nanox/amount.png rename to tests/snapshots/nanox_transfer_bsc/00001.png diff --git a/tests/snapshots/send/nanox/address.png b/tests/snapshots/nanox_transfer_bsc/00002.png similarity index 100% rename from tests/snapshots/send/nanox/address.png rename to tests/snapshots/nanox_transfer_bsc/00002.png diff --git a/tests/snapshots/send_bsc/nanox/network.png b/tests/snapshots/nanox_transfer_bsc/00003.png similarity index 100% rename from tests/snapshots/send_bsc/nanox/network.png rename to tests/snapshots/nanox_transfer_bsc/00003.png diff --git a/tests/snapshots/send_bsc/nanox/fees.png b/tests/snapshots/nanox_transfer_bsc/00004.png similarity index 100% rename from tests/snapshots/send_bsc/nanox/fees.png rename to tests/snapshots/nanox_transfer_bsc/00004.png diff --git a/tests/snapshots/send/nanox/accept.png b/tests/snapshots/nanox_transfer_bsc/00005.png similarity index 100% rename from tests/snapshots/send/nanox/accept.png rename to tests/snapshots/nanox_transfer_bsc/00005.png diff --git a/tests/snapshots/nanox_transfer_bsc/00006.png b/tests/snapshots/nanox_transfer_bsc/00006.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_bsc/00006.png differ diff --git a/tests/snapshots/send_bsc/nanox/review.png b/tests/snapshots/nanox_transfer_eip1559/00000.png similarity index 100% rename from tests/snapshots/send_bsc/nanox/review.png rename to tests/snapshots/nanox_transfer_eip1559/00000.png diff --git a/tests/snapshots/eip1559/nanox/amount.png b/tests/snapshots/nanox_transfer_eip1559/00001.png similarity index 100% rename from tests/snapshots/eip1559/nanox/amount.png rename to tests/snapshots/nanox_transfer_eip1559/00001.png diff --git a/tests/snapshots/eip1559/nanox/address.png b/tests/snapshots/nanox_transfer_eip1559/00002.png similarity index 100% rename from tests/snapshots/eip1559/nanox/address.png rename to tests/snapshots/nanox_transfer_eip1559/00002.png diff --git a/tests/snapshots/eip1559/nanox/fees.png b/tests/snapshots/nanox_transfer_eip1559/00003.png similarity index 100% rename from tests/snapshots/eip1559/nanox/fees.png rename to tests/snapshots/nanox_transfer_eip1559/00003.png diff --git a/tests/snapshots/send_bsc/nanox/accept.png b/tests/snapshots/nanox_transfer_eip1559/00004.png similarity index 100% rename from tests/snapshots/send_bsc/nanox/accept.png rename to tests/snapshots/nanox_transfer_eip1559/00004.png diff --git a/tests/snapshots/nanox_transfer_eip1559/00005.png b/tests/snapshots/nanox_transfer_eip1559/00005.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_eip1559/00005.png differ diff --git a/tests/snapshots/send_etc/nanox/review.png b/tests/snapshots/nanox_transfer_ethereum/00000.png similarity index 100% rename from tests/snapshots/send_etc/nanox/review.png rename to tests/snapshots/nanox_transfer_ethereum/00000.png diff --git a/tests/snapshots/send/nanox/amount.png b/tests/snapshots/nanox_transfer_ethereum/00001.png similarity index 100% rename from tests/snapshots/send/nanox/amount.png rename to tests/snapshots/nanox_transfer_ethereum/00001.png diff --git a/tests/snapshots/send_bsc/nanox/address.png b/tests/snapshots/nanox_transfer_ethereum/00002.png similarity index 100% rename from tests/snapshots/send_bsc/nanox/address.png rename to tests/snapshots/nanox_transfer_ethereum/00002.png diff --git a/tests/snapshots/send/nanox/fees.png b/tests/snapshots/nanox_transfer_ethereum/00003.png similarity index 100% rename from tests/snapshots/send/nanox/fees.png rename to tests/snapshots/nanox_transfer_ethereum/00003.png diff --git a/tests/snapshots/send_etc/nanox/accept.png b/tests/snapshots/nanox_transfer_ethereum/00004.png similarity index 100% rename from tests/snapshots/send_etc/nanox/accept.png rename to tests/snapshots/nanox_transfer_ethereum/00004.png diff --git a/tests/snapshots/nanox_transfer_ethereum/00005.png b/tests/snapshots/nanox_transfer_ethereum/00005.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum/00005.png differ diff --git a/tests/snapshots/nanox_transfer_ethereum_5234_network/00000.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00000.png new file mode 100644 index 0000000..4a982c5 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_5234_network/00000.png differ diff --git a/tests/snapshots/nanox_transfer_ethereum_5234_network/00001.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00001.png new file mode 100644 index 0000000..a5592a6 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_5234_network/00001.png differ diff --git a/tests/snapshots/send_etc/nanox/address.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00002.png similarity index 100% rename from tests/snapshots/send_etc/nanox/address.png rename to tests/snapshots/nanox_transfer_ethereum_5234_network/00002.png diff --git a/tests/snapshots/send/nanox/network.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00003.png similarity index 100% rename from tests/snapshots/send/nanox/network.png rename to tests/snapshots/nanox_transfer_ethereum_5234_network/00003.png diff --git a/tests/snapshots/nanox_transfer_ethereum_5234_network/00004.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00004.png new file mode 100644 index 0000000..a67fa25 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_5234_network/00004.png differ diff --git a/tests/snapshots/nanox_transfer_ethereum_5234_network/00005.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00005.png new file mode 100644 index 0000000..a2cb8f9 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_5234_network/00005.png differ diff --git a/tests/snapshots/nanox_transfer_ethereum_5234_network/00006.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00006.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_5234_network/00006.png differ diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00000.png b/tests/snapshots/nanox_transfer_ethereum_clone/00000.png new file mode 100644 index 0000000..4a982c5 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_clone/00000.png differ diff --git a/tests/snapshots/send_etc/nanox/amount.png b/tests/snapshots/nanox_transfer_ethereum_clone/00001.png similarity index 100% rename from tests/snapshots/send_etc/nanox/amount.png rename to tests/snapshots/nanox_transfer_ethereum_clone/00001.png diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00002.png b/tests/snapshots/nanox_transfer_ethereum_clone/00002.png new file mode 100644 index 0000000..4228ae1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_clone/00002.png differ diff --git a/tests/snapshots/send_etc/nanox/fees.png b/tests/snapshots/nanox_transfer_ethereum_clone/00003.png similarity index 100% rename from tests/snapshots/send_etc/nanox/fees.png rename to tests/snapshots/nanox_transfer_ethereum_clone/00003.png diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00004.png b/tests/snapshots/nanox_transfer_ethereum_clone/00004.png new file mode 100644 index 0000000..a2cb8f9 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_clone/00004.png differ diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00005.png b/tests/snapshots/nanox_transfer_ethereum_clone/00005.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_ethereum_clone/00005.png differ diff --git a/tests/snapshots/nanox_transfer_palm_network/00000.png b/tests/snapshots/nanox_transfer_palm_network/00000.png new file mode 100644 index 0000000..4a982c5 Binary files /dev/null and b/tests/snapshots/nanox_transfer_palm_network/00000.png differ diff --git a/tests/snapshots/chainid/nanox/amount_palm.png b/tests/snapshots/nanox_transfer_palm_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanox/amount_palm.png rename to tests/snapshots/nanox_transfer_palm_network/00001.png diff --git a/tests/snapshots/nanox_transfer_palm_network/00002.png b/tests/snapshots/nanox_transfer_palm_network/00002.png new file mode 100644 index 0000000..4228ae1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_palm_network/00002.png differ diff --git a/tests/snapshots/chainid/nanox/palm.png b/tests/snapshots/nanox_transfer_palm_network/00003.png similarity index 100% rename from tests/snapshots/chainid/nanox/palm.png rename to tests/snapshots/nanox_transfer_palm_network/00003.png diff --git a/tests/snapshots/chainid/nanox/fees_palm.png b/tests/snapshots/nanox_transfer_palm_network/00004.png similarity index 100% rename from tests/snapshots/chainid/nanox/fees_palm.png rename to tests/snapshots/nanox_transfer_palm_network/00004.png diff --git a/tests/snapshots/nanox_transfer_palm_network/00005.png b/tests/snapshots/nanox_transfer_palm_network/00005.png new file mode 100644 index 0000000..a2cb8f9 Binary files /dev/null and b/tests/snapshots/nanox_transfer_palm_network/00005.png differ diff --git a/tests/snapshots/nanox_transfer_palm_network/00006.png b/tests/snapshots/nanox_transfer_palm_network/00006.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_transfer_palm_network/00006.png differ diff --git a/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png b/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png new file mode 100644 index 0000000..d5722b0 Binary files /dev/null and b/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png differ diff --git a/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png b/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png new file mode 100644 index 0000000..7a77cb1 Binary files /dev/null and b/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png differ diff --git a/tests/src/approve.test.js b/tests/src/approve.test.js index ec5e01e..fea24a5 100644 --- a/tests/src/approve.test.js +++ b/tests/src/approve.test.js @@ -1,175 +1,37 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Approve DAI tokens', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/approve/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_approve_dai_tokens', [7, 0]); -test("Approve DAI tokens nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); + await expect(tx).resolves.toEqual({ + "r": "92243511396b65a4faa735a5472ea99b3ce0f7f2338eab426206730bc0ddc57f", + "s": "161bc0f861064d840de4f4304cfd19a571017e62df7d8f70cf605c0f025593b6", + "v": "25", + }); +})); - let tmpPath = getTmpPath(expect.getState().currentTestName); +test('[Nano X] Approve DAI tokens', zemu("nanox", async (sim, eth) => { - try { - await sim.start(sim_options_nanos); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080', + ); - let transport = await sim.getTransport(); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_approve_dai_tokens', [5, 0]); - // Token provisioning - let buffer = Buffer.from("034441496B175474E89094C44DA98B954EEDEAC495271D0F00000012000000013045022100B3AA979633284EB0F55459099333AB92CF06FDD58DC90E9C070000C8E968864C02207B10EC7D6609F51DDA53D083A6E165A0ABF3A77E13250E6F260772809B49AFF5", "hex"); - let tx = transport.send(0xe0, 0x0a, 0x00, 0x00, buffer); - - // Send transaction - buffer = Buffer.from("058000002C8000003C800000010000000000000000F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Type - filename = "type.png"; - await sim.clickRight(tmpPath + filename); - const type = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_type = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(type).toMatchSnapshot(expected_type); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([37, 146, 36, 53, 17, 57, 107, 101, 164, 250, 167, 53, 165, 71, 46, 169, 155, 60, 224, 247, 242, 51, 142, 171, 66, 98, 6, 115, 11, 192, 221, 197, 127, 22, 27, 192, 248, 97, 6, 77, 132, 13, 228, 244, 48, 76, 253, 25, 165, 113, 1, 126, 98, 223, 125, 143, 112, 207, 96, 92, 15, 2, 85, 147, 182, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - -test("Approve DAI token nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - // Token provisioning - let buffer = Buffer.from("034441496B175474E89094C44DA98B954EEDEAC495271D0F00000012000000013045022100B3AA979633284EB0F55459099333AB92CF06FDD58DC90E9C070000C8E968864C02207B10EC7D6609F51DDA53D083A6E165A0ABF3A77E13250E6F260772809B49AFF5", "hex"); - let tx = transport.send(0xe0, 0x0a, 0x00, 0x00, buffer); - - // Send transaction - buffer = Buffer.from("058000002C8000003C800000010000000000000000F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Type - filename = "type.png"; - await sim.clickRight(tmpPath + filename); - const type = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_type = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(type).toMatchSnapshot(expected_type); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([37, 146, 36, 53, 17, 57, 107, 101, 164, 250, 167, 53, 165, 71, 46, 169, 155, 60, 224, 247, 242, 51, 142, 171, 66, 98, 6, 115, 11, 192, 221, 197, 127, 22, 27, 192, 248, 97, 6, 77, 132, 13, 228, 244, 48, 76, 253, 25, 165, 113, 1, 126, 98, 223, 125, 143, 112, 207, 96, 92, 15, 2, 85, 147, 182, 144, 0]) - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "92243511396b65a4faa735a5472ea99b3ce0f7f2338eab426206730bc0ddc57f", + "s": "161bc0f861064d840de4f4304cfd19a571017e62df7d8f70cf605c0f025593b6", + "v": "25", + }); +})); diff --git a/tests/src/blind_compound_deposit.test.js b/tests/src/blind_compound_deposit.test.js new file mode 100644 index 0000000..537ed8d --- /dev/null +++ b/tests/src/blind_compound_deposit.test.js @@ -0,0 +1,37 @@ +import "core-js/stable"; +import "regenerator-runtime/runtime"; +import { waitForAppScreen, zemu } from './test.fixture'; + +test('[Nano S] Deposit ETH on compound, blind sign', zemu("nanos", async (sim, eth) => { + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f897430000000000000000000000000000000000000000000000000000000000000000018080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_deposit_eth_compound_blind', [7, 0]); + + await expect(tx).resolves.toEqual({ + "r": "b5ae3a011eb50e7d1fe9f5e6f6d91ca9f4dfca5f73805fc4866d49e72ead2f5c", + "s": "3c6e55db5925586bb58e434b58b2c04756f662131597f98c1aa2418b16992b81", + "v": "26", + }); +})); + +test('[Nano X] Deposit ETH on compound, blind sign', zemu("nanox", async (sim, eth) => { + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f897430000000000000000000000000000000000000000000000000000000000000000018080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_deposit_eth_compound_blind', [5, 0]); + + await expect(tx).resolves.toEqual({ + "r": "b5ae3a011eb50e7d1fe9f5e6f6d91ca9f4dfca5f73805fc4866d49e72ead2f5c", + "s": "3c6e55db5925586bb58e434b58b2c04756f662131597f98c1aa2418b16992b81", + "v": "26", + }); +})); diff --git a/tests/src/chainid.test.js b/tests/src/chainid.test.js index e62da55..7461c83 100644 --- a/tests/src/chainid.test.js +++ b/tests/src/chainid.test.js @@ -1,370 +1,71 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer on network 112233445566 on Ethereum', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/chainid/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_112233445566_network', [9, 0]); -test("Transfer on network 112233445566 on Ethereum nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); + await expect(tx).resolves.toEqual({ + "r": "509981d8dfb66757e25ff47c009b9b5bc5db0f169473e4735f5212b144f1c069", + "s": "5db989d81025de3c846e41a9ce01a3f9fd0982e2d827f1b88ffc95d73a48d04c", + "v": "344344f19f", + }); +})); - try { - await sim.start(sim_options_nanos); +test('[Nano S] Transfer on palm network on Ethereum', zemu("nanos", async (sim, eth) => { - let transport = await sim.getTransport(); - let eth = new Eth(transport); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080', + ); - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080" - ) - let filename; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_palm_network', [9, 0]); - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); + await expect(tx).resolves.toEqual({ + "r": "946700c4972b3da24ddaa95e590ad25a8f905da62e2bd053285a4cc17f93f490", + "s": "3698e84564e58477a49f7a9cea572ef5d672a5538db08f3ee42df5eb75a1b907", + "v": "0542b8613d", + }); +})); - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); +test('[Nano X] Transfer on network 112233445566 on Ethereum', zemu("nanox", async (sim, eth) => { - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080', + ); - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_112233445566_network', [5, 0]); - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); + await expect(tx).resolves.toEqual({ + "r": "509981d8dfb66757e25ff47c009b9b5bc5db0f169473e4735f5212b144f1c069", + "s": "5db989d81025de3c846e41a9ce01a3f9fd0982e2d827f1b88ffc95d73a48d04c", + "v": "344344f19f", + }); +})); - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); +test('[Nano X] Transfer on palm network on Ethereum', zemu("nanox", async (sim, eth) => { - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080', + ); - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(network).toMatchSnapshot(expected_network); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_palm_network', [5, 0]); - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "31fca443b3cad62f3ce18e287f3cf4892ac2669379cc21b5cf198561f0511d1e", - "s": "3cf21485cd8b86e1acddbcc641e16a3efad18aaeb5ae96a650f1a8b291078494", - "v": "344344f1a0", - } - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on palm network on Ethereum nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - let eth = new Eth(transport); - - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080" - ); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1_palm.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Network - filename = "palm.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees_palm.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "f9b5d903c47c34027156e869bda5aa002233d6cca583ad53d125612fc0795f3b", - "s": "00da038129414e5ae6f7c1529c6067e82484e3694c84c16d575e77162f631c27", - "v": "0542b8613d", - } - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on network 112233445566 on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let eth = new Eth(transport); - - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080" - ) - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "31fca443b3cad62f3ce18e287f3cf4892ac2669379cc21b5cf198561f0511d1e", - "s": "3cf21485cd8b86e1acddbcc641e16a3efad18aaeb5ae96a650f1a8b291078494", - "v": "344344f1a0", - } - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on palm network on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let eth = new Eth(transport); - - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080" - ); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount_palm.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network - filename = "palm.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees_palm.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "f9b5d903c47c34027156e869bda5aa002233d6cca583ad53d125612fc0795f3b", - "s": "00da038129414e5ae6f7c1529c6067e82484e3694c84c16d575e77162f631c27", - "v": "0542b8613d", - } - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "946700c4972b3da24ddaa95e590ad25a8f905da62e2bd053285a4cc17f93f490", + "s": "3698e84564e58477a49f7a9cea572ef5d672a5538db08f3ee42df5eb75a1b907", + "v": "0542b8613d", + }); +})); \ No newline at end of file diff --git a/tests/src/contract_data_warning.test.js b/tests/src/contract_data_warning.test.js new file mode 100644 index 0000000..2ebb16f --- /dev/null +++ b/tests/src/contract_data_warning.test.js @@ -0,0 +1,38 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +import { expect } from "../jest"; +import { TransportStatusError } from "@ledgerhq/errors"; +import { waitForAppScreen, zemu } from './test.fixture'; +import Zemu from '@zondax/zemu'; + +test('[Nano S] Try to blind sign with setting disabled', zemu("nanos", async (sim, eth) => { + // disable blind signing + await sim.navigateAndCompareSnapshots('.', 'nanos_disable_blind_signing', [-2, 0, 0, 3, 0]); + + // we can't use eth.signTransaction because it detects that contract data is disabled and fails early + let transport = await sim.getTransport(); + let buffer = Buffer.from("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080", "hex"); + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + + await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); + + await Zemu.sleep(1000); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_try_to_blind_sign_with_setting_disabled', [1, 0]); +})); + +test('[Nano X] Try to blind sign with setting disabled', zemu("nanox", async (sim, eth) => { + // disable blind signing + await sim.navigateAndCompareSnapshots('.', 'nanox_disable_blind_signing', [-2, 0, 0, 3, 0]); + + // we can't use eth.signTransaction because it detects that contract data is disabled and fails early + let transport = await sim.getTransport(); + let buffer = Buffer.from("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080", "hex"); + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + + await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); + + await Zemu.sleep(1000); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_try_to_blind_sign_with_setting_disabled', [0]); +})); \ No newline at end of file diff --git a/tests/src/deposit.test.js b/tests/src/deposit.test.js deleted file mode 100644 index 2aa054d..0000000 --- a/tests/src/deposit.test.js +++ /dev/null @@ -1,171 +0,0 @@ -import "core-js/stable"; -import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; - -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); - -// Adapt this prefix. -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/deposit/"; - -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; - -test("Deposit ETH nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002c8000003c800000010000000000000000f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f8974300000000000000000000000000000000", "hex"); - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - buffer = Buffer.from("00000000000000000000000000000000018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x80, 0x00, buffer); - - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Data present - filename = "data_present.png"; - await sim.clickRight(tmpPath + filename); - const data_present = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_data_present = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(data_present).toMatchSnapshot(expected_data_present); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([38, 181, 174, 58, 1, 30, 181, 14, 125, 31, 233, 245, 230, 246, 217, 28, 169, 244, 223, 202, 95, 115, 128, 95, 196, 134, 109, 73, 231, 46, 173, 47, 92, 60, 110, 85, 219, 89, 37, 88, 107, 181, 142, 67, 75, 88, 178, 192, 71, 86, 246, 98, 19, 21, 151, 249, 140, 26, 162, 65, 139, 22, 153, 43, 129, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - -test("Deposit ETH nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002c8000003c800000010000000000000000f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f8974300000000000000000000000000000000", "hex"); - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - buffer = Buffer.from("00000000000000000000000000000000018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x80, 0x00, buffer); - - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Data present - filename = "data_present.png"; - await sim.clickRight(tmpPath + filename); - const data_present = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_data_present = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(data_present).toMatchSnapshot(expected_data_present); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([38, 181, 174, 58, 1, 30, 181, 14, 125, 31, 233, 245, 230, 246, 217, 28, 169, 244, 223, 202, 95, 115, 128, 95, 196, 134, 109, 73, 231, 46, 173, 47, 92, 60, 110, 85, 219, 89, 37, 88, 107, 181, 142, 67, 75, 88, 178, 192, 71, 86, 246, 98, 19, 21, 151, 249, 140, 26, 162, 65, 139, 22, 153, 43, 129, 144, 0]) - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file diff --git a/tests/src/eip1559.test.js b/tests/src/eip1559.test.js index 4ad9427..10831c6 100644 --- a/tests/src/eip1559.test.js +++ b/tests/src/eip1559.test.js @@ -1,152 +1,39 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer eip1559', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/eip1559/"; + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + '02f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_eip1559', [6, 0]); -test("Transfer nanos eip1559", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); + await expect(tx).resolves.toEqual({ + "r": "3d6dfabc6c52374bfa34cb2c433856a0bcd9484870dd1b50249f7164a5fce052", + "s": "0548a774dd0b63930d83cb2e1a836fe3ef24444e8b758b00585d9a076c0e98a8", + "v": "01" + }); - try { - await sim.start(sim_options_nanos); +})); - let transport = await sim.getTransport(); +test('[Nano X] Transfer eip1559', zemu("nanox", async (sim, eth) => { - // From this test: https://github.com/ethereum/tests/blob/5d534e37b80e9310e8c7751f805ca481a451123e/GeneralStateTests/stEIP1559/outOfFunds.json#L35 - let buffer = Buffer.from("058000002c8000003c80000000000000000000000002f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830", "hex"); + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + '02f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830', + ); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_eip1559', [4, 0]); - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); + await expect(tx).resolves.toEqual({ + "r": "3d6dfabc6c52374bfa34cb2c433856a0bcd9484870dd1b50249f7164a5fce052", + "s": "0548a774dd0b63930d83cb2e1a836fe3ef24444e8b758b00585d9a076c0e98a8", + "v": "01" + }); - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([1, 61, 109, 250, 188, 108, 82, 55, 75, 250, 52, 203, 44, 67, 56, 86, 160, 188, 217, 72, 72, 112, 221, 27, 80, 36, 159, 113, 100, 165, 252, 224, 82, 5, 72, 167, 116, 221, 11, 99, 147, 13, 131, 203, 46, 26, 131, 111, 227, 239, 36, 68, 78, 139, 117, 139, 0, 88, 93, 154, 7, 108, 14, 152, 168, 144, 0])); - } finally { - await sim.close(); - } -}); - -test("Transfer nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - // From this test: https://github.com/ethereum/tests/blob/5d534e37b80e9310e8c7751f805ca481a451123e/GeneralStateTests/stEIP1559/outOfFunds.json#L35 - let buffer = Buffer.from("058000002c8000003c80000000000000000000000002f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([1, 61, 109, 250, 188, 108, 82, 55, 75, 250, 52, 203, 44, 67, 56, 86, 160, 188, 217, 72, 72, 112, 221, 27, 80, 36, 159, 113, 100, 165, 252, 224, 82, 5, 72, 167, 116, 221, 11, 99, 147, 13, 131, 203, 46, 26, 131, 111, 227, 239, 36, 68, 78, 139, 117, 139, 0, 88, 93, 154, 7, 108, 14, 152, 168, 144, 0])); - } finally { - await sim.close(); - } -}); \ No newline at end of file +})); \ No newline at end of file diff --git a/tests/src/generic.js b/tests/src/generic.js deleted file mode 100644 index dff7566..0000000 --- a/tests/src/generic.js +++ /dev/null @@ -1,53 +0,0 @@ -import fs from "fs"; - -const sim_options_nanos = { - model: "nanos", - logging: true, - start_delay: 2000, - X11: true, - custom: "", -}; - -const sim_options_nanox = { - model: "nanox", - logging: true, - start_delay: 2000, - X11: true, - custom: "", -}; - -const Resolve = require("path").resolve; -const NANOS_ELF_PATH = Resolve("elfs/ethereum_nanos.elf"); -const NANOX_ELF_PATH = Resolve("elfs/ethereum_nanox.elf"); - -const NANOS_ETH_LIB = { "Ethereum": NANOS_ELF_PATH }; -const NANOX_ETH_LIB = { "Ethereum": NANOX_ELF_PATH }; - -const NANOS_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanos.elf"); -const NANOX_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanox.elf"); - -const TIMEOUT = 1000000; - -const getTmpPath = (testName) => { - let date = new Date(); - let tmpPath = `snapshots/tmp/${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}@${testName}/`; - fs.mkdir(tmpPath, { recursive:true }, (err) => { - if(err) { - console.log("couldn't create tmp folder at path: " + tmpPath) - } - }); - return tmpPath; -} - -module.exports = { - NANOS_ELF_PATH, - NANOX_ELF_PATH, - NANOS_ETH_LIB, - NANOX_ETH_LIB, - NANOS_CLONE_ELF_PATH, - NANOX_CLONE_ELF_PATH, - sim_options_nanos, - sim_options_nanox, - TIMEOUT, - getTmpPath, -} \ No newline at end of file diff --git a/tests/src/send.test.js b/tests/src/send.test.js index 1ba03de..cb82ef4 100644 --- a/tests/src/send.test.js +++ b/tests/src/send.test.js @@ -1,332 +1,82 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; +import { waitForAppScreen, zemu } from './test.fixture'; import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer Ether on Ethereum app', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_ethereum', [8, 0]); -test("Transfer Ether on Ethereum app nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); + await expect(tx).resolves.toEqual({ + "r": "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49", + "s": "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd", + "v": "26", + }); +})); - try { - await sim.start(sim_options_nanos); +test('[Nano S] Transfer amount >= 2^87 Eth on Ethereum app should fail', zemu("nanos", async (sim, eth) => { - let transport = await sim.getTransport(); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f83f268e02cc9be5c53ea44bd43c289dcddc82520894dac17f958d2ee523a2206206994597c13d831ec7928db8b0861b8f7fe5df83cd553a829878000080018080', + ); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080", "hex"); + await expect(tx).rejects.toEqual(new TransportStatusError(0x6807)); +})); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; +test('[Nano S] Transfer Ether on network 5234 on Ethereum app', zemu("nanos", async (sim, eth) => { - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_ethereum_5234_network', [9, 0]); - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); + await expect(tx).resolves.toEqual({ + "r": "07a7982dfd16360c96a03467877d0cf9c36f799deff4dace250cdb18e28a3b90", + "s": "773318a93da2e32c1cf308ddd6add1e8c0d285973e541520a05fb4dc720e4fb1", + "v": "2908", + }); +})); - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); +test('[Nano X] Transfer Ether on Ethereum app', zemu("nanox", async (sim, eth) => { - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080', + ); - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_ethereum', [4, 0]); - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); + await expect(tx).resolves.toEqual({ + "r": "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49", + "s": "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd", + "v": "26", + }); +})); - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); +test('[Nano X] Transfer Ether on network 5234 on Ethereum app', zemu("nanox", async (sim, eth) => { - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); - await sim.clickBoth(); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_ethereum_5234_network', [5, 0]); - await expect(tx).resolves.toEqual( - Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on network 5234 on Ethereum nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from("08f3449bbc245669e26dd076986e11aa3117e2405ffe2ddc7a7e220f81326fbd91150515605c78119367be311345e9ff40c4e4ddb9ec0fd81f37035c3828f4c8b29000", 'hex') - ); - } finally { - await sim.close(); - } -}); - -test("Transfer Ether on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - - -test("Transfer on network 5234 on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from("08f3449bbc245669e26dd076986e11aa3117e2405ffe2ddc7a7e220f81326fbd91150515605c78119367be311345e9ff40c4e4ddb9ec0fd81f37035c3828f4c8b29000", 'hex') - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "07a7982dfd16360c96a03467877d0cf9c36f799deff4dace250cdb18e28a3b90", + "s": "773318a93da2e32c1cf308ddd6add1e8c0d285973e541520a05fb4dc720e4fb1", + "v": "2908", + }); +})); diff --git a/tests/src/send_bsc.test.js b/tests/src/send_bsc.test.js index 8339b69..4e1bfa9 100644 --- a/tests/src/send_bsc.test.js +++ b/tests/src/send_bsc.test.js @@ -1,182 +1,37 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer bsc', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send_bsc/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_bsc', [9, 0]); + await expect(tx).resolves.toEqual({ + "r": "f667cc34e9815df4f052fb3463cdbe355fff5c1acf4e919b3539806521a059ad", + "s": "6b35492b7108d9d9e1cc7aede536ed6b3173197b56dd873cbc3b43e041d6f407", + "v": "93", + }); +})); -test("Transfer bsc nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); +test('[Nano X] Transfer bsc', zemu("nanox", async (sim, eth) => { - try { - await sim.start(sim_options_nanos); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080', + ); - let transport = await sim.getTransport(); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_bsc', [5, 0]); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Network name - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const chainid = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_chainid = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(chainid).toMatchSnapshot(expected_chainid); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([147, 246, 103, 204, 52, 233, 129, 93, 244, 240, 82, 251, 52, 99, 205, 190, 53, 95, 255, 92, 26, 207, 78, 145, 155, 53, 57, 128, 101, 33, 160, 89, 173, 107, 53, 73, 43, 113, 8, 217, 217, 225, 204, 122, 237, 229, 54, 237, 107, 49, 115, 25, 123, 86, 221, 135, 60, 188, 59, 67, 224, 65, 214, 244, 7, 144, 0]), - ); - - } finally { - await sim.close(); - } -}); - -test("Transfer bsc nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network name - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const chainid = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_chainid = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(chainid).toMatchSnapshot(expected_chainid); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([147, 246, 103, 204, 52, 233, 129, 93, 244, 240, 82, 251, 52, 99, 205, 190, 53, 95, 255, 92, 26, 207, 78, 145, 155, 53, 57, 128, 101, 33, 160, 89, 173, 107, 53, 73, 43, 113, 8, 217, 217, 225, 204, 122, 237, 229, 54, 237, 107, 49, 115, 25, 123, 86, 221, 135, 60, 188, 59, 67, 224, 65, 214, 244, 7, 144, 0]), - ); - - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "f667cc34e9815df4f052fb3463cdbe355fff5c1acf4e919b3539806521a059ad", + "s": "6b35492b7108d9d9e1cc7aede536ed6b3173197b56dd873cbc3b43e041d6f407", + "v": "93", + }); +})); \ No newline at end of file diff --git a/tests/src/send_etc.test.js b/tests/src/send_etc.test.js index 0407144..5a2d76c 100644 --- a/tests/src/send_etc.test.js +++ b/tests/src/send_etc.test.js @@ -1,109 +1,13 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; +import { EthAppPleaseEnableContractData } from "@ledgerhq/errors"; import { expect } from "../jest"; -const {NANOS_ETH_LIB, NANOX_ETH_LIB, NANOS_CLONE_ELF_PATH, NANOX_CLONE_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +import { waitForAppScreen, NANOS_ETH_LIB, NANOX_ETH_LIB, NANOS_CLONE_ELF_PATH, NANOX_CLONE_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT} from './test.fixture'; -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send_etc/"; - -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; - - -test("Transfer on Ethereum clone app nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_CLONE_ELF_PATH, NANOS_ETH_LIB); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - await expect(tx).resolves.toEqual( - Buffer.from("9e52b80e10cb82f3dc8345005e3da3f9cae1fb3f2b9a5df05b7cedba786c685fed381875af27d121beaa9efd8a7450975f9d45a26ba5aa331b7a8b26bcce95e6d09000", 'hex') - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on network 5234 on Ethereum clone nanos", async () => { +test("[Nano S] Transfer on Ethereum clone app", async () => { jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOS_CLONE_ELF_PATH, NANOS_ETH_LIB); @@ -112,81 +16,51 @@ test("Transfer on network 5234 on Ethereum clone nanos", async () => { let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); + const eth = new Eth(transport); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); - - } finally { - await sim.close(); - } -}); - -test("Transfer on Ethereum clone nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_CLONE_ELF_PATH, NANOX_ETH_LIB); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from("9e52b80e10cb82f3dc8345005e3da3f9cae1fb3f2b9a5df05b7cedba786c685fed381875af27d121beaa9efd8a7450975f9d45a26ba5aa331b7a8b26bcce95e6d09000", 'hex') + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080', ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_ethereum_clone', [8, 0]); + + await expect(tx).resolves.toEqual({ + "r": "60df850d297e355596f87dc313a742032de4b59c5579186b3d59bdf31402fec0", + "s": "23c3a2beacabc1943d487a2e1d545e4c46c718b1e70e9d1c11a98828c9338927", + "v": "9e", + }); } finally { await sim.close(); } }); +test("[Nano S] Transfer on network 5234 on Ethereum clone", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOS_CLONE_ELF_PATH, NANOS_ETH_LIB); -test("Transfer on network 5234 on Ethereum clone nanox", async () => { + try { + await sim.start(sim_options_nanos); + + let transport = await sim.getTransport(); + + const eth = new Eth(transport); + + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); + + await expect(tx).rejects.toEqual(new EthAppPleaseEnableContractData( + "Please enable Contract data on the Ethereum app Settings" + )); + } finally { + await sim.close(); + } +}); + +test("[Nano X] Transfer on Ethereum clone app", async () => { jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOX_CLONE_ELF_PATH, NANOX_ETH_LIB); @@ -195,12 +69,45 @@ test("Transfer on network 5234 on Ethereum clone nanox", async () => { let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); + const eth = new Eth(transport); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080', + ); - await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_ethereum_clone', [4, 0]); + + await expect(tx).resolves.toEqual({ + "r": "60df850d297e355596f87dc313a742032de4b59c5579186b3d59bdf31402fec0", + "s": "23c3a2beacabc1943d487a2e1d545e4c46c718b1e70e9d1c11a98828c9338927", + "v": "9e", + }); + } finally { + await sim.close(); + } +}); + +test("[Nano X] Transfer on network 5234 on Ethereum clone", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOX_CLONE_ELF_PATH, NANOX_ETH_LIB); + + try { + await sim.start(sim_options_nanox); + + let transport = await sim.getTransport(); + + const eth = new Eth(transport); + + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); + + await expect(tx).rejects.toEqual(new EthAppPleaseEnableContractData( + "Please enable Contract data on the Ethereum app Settings" + )); } finally { await sim.close(); } diff --git a/tests/src/starkware.test.js b/tests/src/starkware.test.js new file mode 100644 index 0000000..84bb16e --- /dev/null +++ b/tests/src/starkware.test.js @@ -0,0 +1,65 @@ +import "core-js/stable"; +import "regenerator-runtime/runtime"; +import { waitForAppScreen, zemu } from './test.fixture'; +import { byContractAddressAndChainId } from '@ledgerhq/hw-app-eth/erc20' +import { BigNumber } from "bignumber.js"; + +test('[Nano S] Transfer Ether on Ethereum app', zemu("nanos", async (sim, eth) => { + + // Provide USDT token info to the app + const usdt_info = byContractAddressAndChainId("0xdac17f958d2ee523a2206206994597c13d831ec7", 1); + await eth.provideERC20TokenInformation(usdt_info); + + // Provide Stark quantum + const quantization = new BigNumber(1); + await eth.starkProvideQuantum_v2( + "0xdac17f958d2ee523a2206206994597c13d831ec7", + "erc20", + quantization, + null + ) + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8b5018a0472698b413b43200000825208940102030405060708090a0b0c0d0e0f1011121314872bd72a24874000b8842505c3d9010101010101010102020202020202020303030303030303040404040404040402ce625e94458d39dd0bf3b45a843544dd4a14b8169045a3a3d15aa564b936c500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000030d40808080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_starkware_usdt_deposit', [13, 0]); + + await expect(tx).resolves.toEqual({ + "r": "14c368c0d32e399470d6113cf796c5f4cd70300766337d8b0ba71ecad21b3d52", + "s": "4207c027959e84fc2242a1f4fd955603f137ba28f67268ffc91fef5d65071b0a", + "v": "1c", + }); +})); + +test('[Nano X] Transfer Ether on Ethereum app', zemu("nanox", async (sim, eth) => { + + // Provide USDT token info to the app + const usdt_info = byContractAddressAndChainId("0xdac17f958d2ee523a2206206994597c13d831ec7", 1); + await eth.provideERC20TokenInformation(usdt_info); + + // Provide Stark quantum + const quantization = new BigNumber(1); + await eth.starkProvideQuantum_v2( + "0xdac17f958d2ee523a2206206994597c13d831ec7", + "erc20", + quantization, + null + ) + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8b5018a0472698b413b43200000825208940102030405060708090a0b0c0d0e0f1011121314872bd72a24874000b8842505c3d9010101010101010102020202020202020303030303030303040404040404040402ce625e94458d39dd0bf3b45a843544dd4a14b8169045a3a3d15aa564b936c500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000030d40808080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_starkware_usdt_deposit', [9, 0]); + + await expect(tx).resolves.toEqual({ + "r": "14c368c0d32e399470d6113cf796c5f4cd70300766337d8b0ba71ecad21b3d52", + "s": "4207c027959e84fc2242a1f4fd955603f137ba28f67268ffc91fef5d65071b0a", + "v": "1c", + }); +})); diff --git a/tests/src/test.fixture.js b/tests/src/test.fixture.js new file mode 100644 index 0000000..fcad8f7 --- /dev/null +++ b/tests/src/test.fixture.js @@ -0,0 +1,75 @@ +import Zemu from '@zondax/zemu'; +import Eth from '@ledgerhq/hw-app-eth'; + +const transactionUploadDelay = 60000; + +async function waitForAppScreen(sim) { + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot(), transactionUploadDelay); +} + +const sim_options_nanos = { + model: 'nanos', + logging: true, + X11: true, + startDelay: 5000, + custom: '', +}; + +const sim_options_nanox = { + model: 'nanox', + logging: true, + X11: true, + startDelay: 5000, + custom: '', +}; + +const Resolve = require('path').resolve; + +const NANOS_ELF_PATH = Resolve('elfs/ethereum_nanos.elf'); +const NANOX_ELF_PATH = Resolve('elfs/ethereum_nanox.elf'); + +const NANOS_ETH_LIB = { "Ethereum": NANOS_ELF_PATH }; +const NANOX_ETH_LIB = { "Ethereum": NANOX_ELF_PATH }; + +const NANOS_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanos.elf"); +const NANOX_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanox.elf"); + +const TIMEOUT = 1000000; + +function zemu(device, func) { + return async () => { + jest.setTimeout(TIMEOUT); + let zemu_args; + let sim_options; + if(device === "nanos") { + zemu_args = [NANOS_ELF_PATH]; + sim_options = sim_options_nanos; + } + else { + zemu_args = [NANOX_ELF_PATH]; + sim_options = sim_options_nanox; + } + const sim = new Zemu(...zemu_args); + try { + await sim.start(sim_options); + const transport = await sim.getTransport(); + await func(sim, new Eth(transport)); + } finally { + await sim.close(); + } + }; +} + +module.exports = { + zemu, + waitForAppScreen, + NANOS_ELF_PATH, + NANOX_ELF_PATH, + NANOS_ETH_LIB, + NANOX_ETH_LIB, + NANOS_CLONE_ELF_PATH, + NANOX_CLONE_ELF_PATH, + sim_options_nanos, + sim_options_nanox, + TIMEOUT +} \ No newline at end of file