From 87545c31d7d5c16ad021ffb816a4ee572911e26a Mon Sep 17 00:00:00 2001 From: Federico Cecchetto Date: Tue, 7 Sep 2021 00:40:37 +0200 Subject: [PATCH] Client --- .gitmodules | 18 + deps/WinToast | 1 + deps/extra/udis86/libudis86/itab.c | 5946 +++++++++++++++++ deps/extra/udis86/libudis86/itab.h | 939 +++ deps/libtomcrypt | 1 + deps/libtommath | 1 + deps/premake/libtomcrypt.lua | 61 + deps/premake/libtommath.lua | 52 + deps/premake/minizip.lua | 43 + deps/premake/protobuf.lua | 60 + deps/premake/udis86.lua | 37 + deps/premake/wintoast.lua | 32 + deps/premake/zlib.lua | 39 + deps/protobuf | 1 + deps/udis86 | 1 + deps/zlib | 1 + generate.bat | 2 +- premake5.lua | 322 +- src/{ => client}/component/branding.cpp | 10 +- src/{ => client}/component/chat.cpp | 2 +- src/{ => client}/component/chat.hpp | 0 src/{ => client}/component/command.cpp | 2 +- src/{ => client}/component/command.hpp | 0 src/client/component/console.cpp | 41 + src/{ => client}/component/discord.cpp | 2 +- src/client/component/exception.cpp | 244 + src/{ => client}/component/fastfiles.cpp | 2 +- src/{ => client}/component/fastfiles.hpp | 0 src/{ => client}/component/fps.cpp | 5 +- src/{ => client}/component/game_console.cpp | 4 +- src/{ => client}/component/game_console.hpp | 0 src/{ => client}/component/images.cpp | 2 +- src/{ => client}/component/images.hpp | 0 src/{ => client}/component/input.cpp | 2 +- .../component/localized_strings.cpp | 2 +- .../component/localized_strings.hpp | 0 src/{ => client}/component/lui.cpp | 2 +- src/{ => client}/component/notifies.cpp | 2 +- src/{ => client}/component/notifies.hpp | 0 src/{ => client}/component/patches.cpp | 35 +- src/{ => client}/component/renderer.cpp | 2 +- src/{ => client}/component/scheduler.cpp | 17 +- src/{ => client}/component/scheduler.hpp | 2 + src/{ => client}/component/scripting.cpp | 2 +- src/{ => client}/component/scripting.hpp | 0 src/{ => client}/game/dvars.cpp | 5 +- src/{ => client}/game/dvars.hpp | 3 +- src/client/game/game.cpp | 81 + src/{ => client}/game/game.hpp | 15 + src/{ => client}/game/scripting/entity.cpp | 2 +- src/{ => client}/game/scripting/entity.hpp | 0 src/{ => client}/game/scripting/event.hpp | 0 src/{ => client}/game/scripting/execution.cpp | 2 +- src/{ => client}/game/scripting/execution.hpp | 0 .../game/scripting/function_tables.cpp | 2 +- src/{ => client}/game/scripting/functions.cpp | 2 +- src/{ => client}/game/scripting/functions.hpp | 0 .../game/scripting/lua/context.cpp | 2 +- .../game/scripting/lua/context.hpp | 0 .../game/scripting/lua/engine.cpp | 2 +- .../game/scripting/lua/engine.hpp | 0 src/{ => client}/game/scripting/lua/error.cpp | 2 +- src/{ => client}/game/scripting/lua/error.hpp | 0 .../game/scripting/lua/event_handler.cpp | 2 +- .../game/scripting/lua/event_handler.hpp | 0 .../game/scripting/lua/scheduler.cpp | 2 +- .../game/scripting/lua/scheduler.hpp | 0 .../game/scripting/lua/value_conversion.cpp | 2 +- .../game/scripting/lua/value_conversion.hpp | 0 .../game/scripting/safe_execution.cpp | 2 +- .../game/scripting/safe_execution.hpp | 0 .../game/scripting/script_value.cpp | 2 +- .../game/scripting/script_value.hpp | 0 .../game/scripting/stack_isolation.cpp | 2 +- .../game/scripting/stack_isolation.hpp | 0 .../game/scripting/variable_value.cpp | 2 +- .../game/scripting/variable_value.hpp | 0 src/{ => client}/game/scripting/vector.cpp | 2 +- src/{ => client}/game/scripting/vector.hpp | 0 src/{ => client}/game/structs.hpp | 35 + src/{ => client}/game/symbols.hpp | 4 + .../launcher/html/doc_host_ui_handler.cpp | 115 + .../launcher/html/doc_host_ui_handler.hpp | 47 + src/client/launcher/html/html_argument.cpp | 48 + src/client/launcher/html/html_argument.hpp | 20 + src/client/launcher/html/html_dispatch.cpp | 61 + src/client/launcher/html/html_dispatch.hpp | 24 + src/client/launcher/html/html_frame.cpp | 295 + src/client/launcher/html/html_frame.hpp | 67 + src/client/launcher/html/html_window.cpp | 29 + src/client/launcher/html/html_window.hpp | 15 + src/client/launcher/html/ole_client_site.cpp | 77 + src/client/launcher/html/ole_client_site.hpp | 24 + .../launcher/html/ole_in_place_frame.cpp | 82 + .../launcher/html/ole_in_place_frame.hpp | 30 + .../launcher/html/ole_in_place_site.cpp | 105 + .../launcher/html/ole_in_place_site.hpp | 32 + src/client/launcher/launcher.cpp | 66 + src/client/launcher/launcher.hpp | 32 + src/client/launcher/window.cpp | 208 + src/client/launcher/window.hpp | 44 + .../loader/component_interface.hpp | 0 src/{ => client}/loader/component_loader.cpp | 2 +- src/{ => client}/loader/component_loader.hpp | 0 src/client/loader/loader.cpp | 208 + src/client/loader/loader.hpp | 21 + src/client/loader/seh.cpp | 151 + src/client/loader/seh.hpp | 38 + src/client/loader/tls.cpp | 34 + src/client/loader/tls.hpp | 6 + src/client/main.cpp | 202 + src/client/resource.hpp | 22 + src/client/resource.rc | 128 + src/client/resources/icon.ico | Bin 0 -> 204862 bytes src/client/resources/icon.png | Bin 0 -> 23340 bytes src/client/resources/main.html | 488 ++ src/client/std_include.cpp | 32 + src/client/std_include.hpp | 101 + src/common/exception/minidump.cpp | 93 + src/common/exception/minidump.hpp | 8 + src/common/utils/binary_resource.cpp | 75 + src/common/utils/binary_resource.hpp | 20 + src/common/utils/compression.cpp | 169 + src/common/utils/compression.hpp | 28 + src/{ => common}/utils/concurrency.hpp | 0 src/common/utils/cryptography.cpp | 640 ++ src/common/utils/cryptography.hpp | 118 + src/common/utils/flags.cpp | 52 + src/common/utils/flags.hpp | 8 + src/{ => common}/utils/hook.cpp | 20 +- src/{ => common}/utils/hook.hpp | 53 + src/common/utils/http.cpp | 48 + src/common/utils/http.hpp | 11 + src/{ => common}/utils/image.cpp | 2 +- src/{ => common}/utils/image.hpp | 0 src/common/utils/info_string.cpp | 65 + src/common/utils/info_string.hpp | 24 + src/{ => common}/utils/io.cpp | 13 +- src/{ => common}/utils/io.hpp | 2 + src/common/utils/memory.cpp | 165 + src/{ => common}/utils/memory.hpp | 17 +- src/common/utils/nt.cpp | 254 + src/common/utils/nt.hpp | 110 + src/common/utils/signature.cpp | 212 + src/common/utils/signature.hpp | 73 + src/common/utils/smbios.cpp | 94 + src/common/utils/smbios.hpp | 8 + src/{ => common}/utils/string.cpp | 53 +- src/{ => common}/utils/string.hpp | 10 + src/common/utils/thread.cpp | 128 + src/common/utils/thread.hpp | 25 + src/common/utils/toast.cpp | 109 + src/common/utils/toast.hpp | 19 + src/dllmain.cpp | 47 - src/game/game.cpp | 12 - src/runner/debugger.cpp | 95 + src/runner/debugger.hpp | 15 + src/runner/resource.rc | 100 + src/runner/runner.cpp | 26 + src/stdinc.cpp | 1 - src/stdinc.hpp | 43 - src/tlsdll/dllmain.cpp | 7 + src/tlsdll/resource.rc | 100 + src/utils/memory.cpp | 98 - tools/{windows => }/premake5.exe | Bin 1362432 -> 1388032 bytes tools/protoc.exe | Bin 0 -> 3781120 bytes 166 files changed, 13918 insertions(+), 316 deletions(-) create mode 160000 deps/WinToast create mode 100644 deps/extra/udis86/libudis86/itab.c create mode 100644 deps/extra/udis86/libudis86/itab.h create mode 160000 deps/libtomcrypt create mode 160000 deps/libtommath create mode 100644 deps/premake/libtomcrypt.lua create mode 100644 deps/premake/libtommath.lua create mode 100644 deps/premake/minizip.lua create mode 100644 deps/premake/protobuf.lua create mode 100644 deps/premake/udis86.lua create mode 100644 deps/premake/wintoast.lua create mode 100644 deps/premake/zlib.lua create mode 160000 deps/protobuf create mode 160000 deps/udis86 create mode 160000 deps/zlib rename src/{ => client}/component/branding.cpp (81%) rename src/{ => client}/component/chat.cpp (98%) rename src/{ => client}/component/chat.hpp (100%) rename src/{ => client}/component/command.cpp (99%) rename src/{ => client}/component/command.hpp (100%) create mode 100644 src/client/component/console.cpp rename src/{ => client}/component/discord.cpp (98%) create mode 100644 src/client/component/exception.cpp rename src/{ => client}/component/fastfiles.cpp (98%) rename src/{ => client}/component/fastfiles.hpp (100%) rename src/{ => client}/component/fps.cpp (97%) rename src/{ => client}/component/game_console.cpp (99%) rename src/{ => client}/component/game_console.hpp (100%) rename src/{ => client}/component/images.cpp (99%) rename src/{ => client}/component/images.hpp (100%) rename src/{ => client}/component/input.cpp (97%) rename src/{ => client}/component/localized_strings.cpp (97%) rename src/{ => client}/component/localized_strings.hpp (100%) rename src/{ => client}/component/lui.cpp (96%) rename src/{ => client}/component/notifies.cpp (98%) rename src/{ => client}/component/notifies.hpp (100%) rename src/{ => client}/component/patches.cpp (84%) rename src/{ => client}/component/renderer.cpp (98%) rename src/{ => client}/component/scheduler.cpp (91%) rename src/{ => client}/component/scheduler.hpp (83%) rename src/{ => client}/component/scripting.cpp (99%) rename src/{ => client}/component/scripting.hpp (100%) rename src/{ => client}/game/dvars.cpp (99%) rename src/{ => client}/game/dvars.hpp (96%) create mode 100644 src/client/game/game.cpp rename src/{ => client}/game/game.hpp (67%) rename src/{ => client}/game/scripting/entity.cpp (98%) rename src/{ => client}/game/scripting/entity.hpp (100%) rename src/{ => client}/game/scripting/event.hpp (100%) rename src/{ => client}/game/scripting/execution.cpp (99%) rename src/{ => client}/game/scripting/execution.hpp (100%) rename src/{ => client}/game/scripting/function_tables.cpp (99%) rename src/{ => client}/game/scripting/functions.cpp (98%) rename src/{ => client}/game/scripting/functions.hpp (100%) rename src/{ => client}/game/scripting/lua/context.cpp (99%) rename src/{ => client}/game/scripting/lua/context.hpp (100%) rename src/{ => client}/game/scripting/lua/engine.cpp (97%) rename src/{ => client}/game/scripting/lua/engine.hpp (100%) rename src/{ => client}/game/scripting/lua/error.cpp (96%) rename src/{ => client}/game/scripting/lua/error.hpp (100%) rename src/{ => client}/game/scripting/lua/event_handler.cpp (99%) rename src/{ => client}/game/scripting/lua/event_handler.hpp (100%) rename src/{ => client}/game/scripting/lua/scheduler.cpp (99%) rename src/{ => client}/game/scripting/lua/scheduler.hpp (100%) rename src/{ => client}/game/scripting/lua/value_conversion.cpp (99%) rename src/{ => client}/game/scripting/lua/value_conversion.hpp (100%) rename src/{ => client}/game/scripting/safe_execution.cpp (98%) rename src/{ => client}/game/scripting/safe_execution.hpp (100%) rename src/{ => client}/game/scripting/script_value.cpp (99%) rename src/{ => client}/game/scripting/script_value.hpp (100%) rename src/{ => client}/game/scripting/stack_isolation.cpp (96%) rename src/{ => client}/game/scripting/stack_isolation.hpp (100%) rename src/{ => client}/game/scripting/variable_value.cpp (97%) rename src/{ => client}/game/scripting/variable_value.hpp (100%) rename src/{ => client}/game/scripting/vector.cpp (97%) rename src/{ => client}/game/scripting/vector.hpp (100%) rename src/{ => client}/game/structs.hpp (94%) rename src/{ => client}/game/symbols.hpp (97%) create mode 100644 src/client/launcher/html/doc_host_ui_handler.cpp create mode 100644 src/client/launcher/html/doc_host_ui_handler.hpp create mode 100644 src/client/launcher/html/html_argument.cpp create mode 100644 src/client/launcher/html/html_argument.hpp create mode 100644 src/client/launcher/html/html_dispatch.cpp create mode 100644 src/client/launcher/html/html_dispatch.hpp create mode 100644 src/client/launcher/html/html_frame.cpp create mode 100644 src/client/launcher/html/html_frame.hpp create mode 100644 src/client/launcher/html/html_window.cpp create mode 100644 src/client/launcher/html/html_window.hpp create mode 100644 src/client/launcher/html/ole_client_site.cpp create mode 100644 src/client/launcher/html/ole_client_site.hpp create mode 100644 src/client/launcher/html/ole_in_place_frame.cpp create mode 100644 src/client/launcher/html/ole_in_place_frame.hpp create mode 100644 src/client/launcher/html/ole_in_place_site.cpp create mode 100644 src/client/launcher/html/ole_in_place_site.hpp create mode 100644 src/client/launcher/launcher.cpp create mode 100644 src/client/launcher/launcher.hpp create mode 100644 src/client/launcher/window.cpp create mode 100644 src/client/launcher/window.hpp rename src/{ => client}/loader/component_interface.hpp (100%) rename src/{ => client}/loader/component_loader.cpp (98%) rename src/{ => client}/loader/component_loader.hpp (100%) create mode 100644 src/client/loader/loader.cpp create mode 100644 src/client/loader/loader.hpp create mode 100644 src/client/loader/seh.cpp create mode 100644 src/client/loader/seh.hpp create mode 100644 src/client/loader/tls.cpp create mode 100644 src/client/loader/tls.hpp create mode 100644 src/client/main.cpp create mode 100644 src/client/resource.hpp create mode 100644 src/client/resource.rc create mode 100644 src/client/resources/icon.ico create mode 100644 src/client/resources/icon.png create mode 100644 src/client/resources/main.html create mode 100644 src/client/std_include.cpp create mode 100644 src/client/std_include.hpp create mode 100644 src/common/exception/minidump.cpp create mode 100644 src/common/exception/minidump.hpp create mode 100644 src/common/utils/binary_resource.cpp create mode 100644 src/common/utils/binary_resource.hpp create mode 100644 src/common/utils/compression.cpp create mode 100644 src/common/utils/compression.hpp rename src/{ => common}/utils/concurrency.hpp (100%) create mode 100644 src/common/utils/cryptography.cpp create mode 100644 src/common/utils/cryptography.hpp create mode 100644 src/common/utils/flags.cpp create mode 100644 src/common/utils/flags.hpp rename src/{ => common}/utils/hook.cpp (92%) rename src/{ => common}/utils/hook.hpp (72%) create mode 100644 src/common/utils/http.cpp create mode 100644 src/common/utils/http.hpp rename src/{ => common}/utils/image.cpp (97%) rename src/{ => common}/utils/image.hpp (100%) create mode 100644 src/common/utils/info_string.cpp create mode 100644 src/common/utils/info_string.hpp rename src/{ => common}/utils/io.cpp (90%) rename src/{ => common}/utils/io.hpp (86%) create mode 100644 src/common/utils/memory.cpp rename src/{ => common}/utils/memory.hpp (73%) create mode 100644 src/common/utils/nt.cpp create mode 100644 src/common/utils/nt.hpp create mode 100644 src/common/utils/signature.cpp create mode 100644 src/common/utils/signature.hpp create mode 100644 src/common/utils/smbios.cpp create mode 100644 src/common/utils/smbios.hpp rename src/{ => common}/utils/string.cpp (68%) rename src/{ => common}/utils/string.hpp (87%) create mode 100644 src/common/utils/thread.cpp create mode 100644 src/common/utils/thread.hpp create mode 100644 src/common/utils/toast.cpp create mode 100644 src/common/utils/toast.hpp delete mode 100644 src/dllmain.cpp delete mode 100644 src/game/game.cpp create mode 100644 src/runner/debugger.cpp create mode 100644 src/runner/debugger.hpp create mode 100644 src/runner/resource.rc create mode 100644 src/runner/runner.cpp delete mode 100644 src/stdinc.cpp delete mode 100644 src/stdinc.hpp create mode 100644 src/tlsdll/dllmain.cpp create mode 100644 src/tlsdll/resource.rc delete mode 100644 src/utils/memory.cpp rename tools/{windows => }/premake5.exe (56%) create mode 100644 tools/protoc.exe diff --git a/.gitmodules b/.gitmodules index 14658e84..940663cc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,21 @@ [submodule "deps/asmjit"] path = deps/asmjit url = https://github.com/asmjit/asmjit.git +[submodule "deps/protobuf"] + path = deps/protobuf + url = https://github.com/google/protobuf.git +[submodule "deps/udis86"] + path = deps/udis86 + url = https://github.com/vmt/udis86.git +[submodule "deps/WinToast"] + path = deps/WinToast + url = https://github.com/mohabouje/WinToast.git +[submodule "deps/libtomcrypt"] + path = deps/libtomcrypt + url = https://github.com/libtom/libtomcrypt.git +[submodule "deps/libtommath"] + path = deps/libtommath + url = https://github.com/libtom/libtommath.git +[submodule "deps/zlib"] + path = deps/zlib + url = https://github.com/madler/zlib.git diff --git a/deps/WinToast b/deps/WinToast new file mode 160000 index 00000000..5e441fd0 --- /dev/null +++ b/deps/WinToast @@ -0,0 +1 @@ +Subproject commit 5e441fd03543b999edb663caf8df7be37c0d575c diff --git a/deps/extra/udis86/libudis86/itab.c b/deps/extra/udis86/libudis86/itab.c new file mode 100644 index 00000000..953f3e52 --- /dev/null +++ b/deps/extra/udis86/libudis86/itab.c @@ -0,0 +1,5946 @@ +/* itab.c -- generated by udis86:scripts/ud_itab.py, do no edit */ +#include "decode.h" + +#define GROUP(n) (0x8000 | (n)) +#define INVALID 0 + + +const uint16_t ud_itab__0[] = { + /* 0 */ 15, 16, 17, 18, + /* 4 */ 19, 20, GROUP(1), GROUP(2), + /* 8 */ 964, 965, 966, 967, + /* c */ 968, 969, GROUP(3), GROUP(4), + /* 10 */ 5, 6, 7, 8, + /* 14 */ 9, 10, GROUP(284), GROUP(285), + /* 18 */ 1336, 1337, 1338, 1339, + /* 1c */ 1340, 1341, GROUP(286), GROUP(287), + /* 20 */ 49, 50, 51, 52, + /* 24 */ 53, 54, INVALID, GROUP(288), + /* 28 */ 1407, 1408, 1409, 1410, + /* 2c */ 1411, 1412, INVALID, GROUP(289), + /* 30 */ 1487, 1488, 1489, 1490, + /* 34 */ 1491, 1492, INVALID, GROUP(290), + /* 38 */ 100, 101, 102, 103, + /* 3c */ 104, 105, INVALID, GROUP(291), + /* 40 */ 699, 700, 701, 702, + /* 44 */ 703, 704, 705, 706, + /* 48 */ 175, 176, 177, 178, + /* 4c */ 179, 180, 181, 182, + /* 50 */ 1246, 1247, 1248, 1249, + /* 54 */ 1250, 1251, 1252, 1253, + /* 58 */ 1101, 1102, 1103, 1104, + /* 5c */ 1105, 1106, 1107, 1108, + /* 60 */ GROUP(292), GROUP(295), GROUP(298), GROUP(299), + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ 1254, 697, 1256, 698, + /* 6c */ 709, GROUP(300), 982, GROUP(301), + /* 70 */ 726, 728, 730, 732, + /* 74 */ 734, 736, 738, 740, + /* 78 */ 742, 744, 746, 748, + /* 7c */ 750, 752, 754, 756, + /* 80 */ GROUP(302), GROUP(303), GROUP(304), GROUP(313), + /* 84 */ 1433, 1434, 1475, 1476, + /* 88 */ 828, 829, 830, 831, + /* 8c */ 832, 770, 833, GROUP(314), + /* 90 */ 1477, 1478, 1479, 1480, + /* 94 */ 1481, 1482, 1483, 1484, + /* 98 */ GROUP(315), GROUP(316), GROUP(317), 1470, + /* 9c */ GROUP(318), GROUP(322), 1310, 766, + /* a0 */ 834, 835, 836, 837, + /* a4 */ 922, GROUP(326), 114, GROUP(327), + /* a8 */ 1435, 1436, 1402, GROUP(328), + /* ac */ 790, GROUP(329), 1346, GROUP(330), + /* b0 */ 838, 839, 840, 841, + /* b4 */ 842, 843, 844, 845, + /* b8 */ 846, 847, 848, 849, + /* bc */ 850, 851, 852, 853, + /* c0 */ GROUP(331), GROUP(332), 1301, 1302, + /* c4 */ GROUP(333), GROUP(403), GROUP(405), GROUP(406), + /* c8 */ 200, 776, 1303, 1304, + /* cc */ 713, 714, GROUP(407), GROUP(408), + /* d0 */ GROUP(409), GROUP(410), GROUP(411), GROUP(412), + /* d4 */ GROUP(413), GROUP(414), GROUP(415), 1486, + /* d8 */ GROUP(416), GROUP(419), GROUP(422), GROUP(425), + /* dc */ GROUP(428), GROUP(431), GROUP(434), GROUP(437), + /* e0 */ 794, 795, 796, GROUP(440), + /* e4 */ 690, 691, 978, 979, + /* e8 */ 72, 763, GROUP(441), 765, + /* ec */ 692, 693, 980, 981, + /* f0 */ 789, 712, 1299, 1300, + /* f4 */ 687, 83, GROUP(442), GROUP(443), + /* f8 */ 77, 1395, 81, 1398, + /* fc */ 78, 1396, GROUP(444), GROUP(445), +}; + +static const uint16_t ud_itab__1[] = { + /* 0 */ 1240, INVALID, +}; + +static const uint16_t ud_itab__2[] = { + /* 0 */ 1096, INVALID, +}; + +static const uint16_t ud_itab__3[] = { + /* 0 */ 1241, INVALID, +}; + +static const uint16_t ud_itab__4[] = { + /* 0 */ GROUP(5), GROUP(6), 767, 797, + /* 4 */ INVALID, 1426, 82, 1431, + /* 8 */ 716, 1471, INVALID, 1444, + /* c */ INVALID, GROUP(27), 430, GROUP(28), + /* 10 */ GROUP(29), GROUP(30), GROUP(31), GROUP(34), + /* 14 */ GROUP(35), GROUP(36), GROUP(37), GROUP(40), + /* 18 */ GROUP(41), 955, 956, 957, + /* 1c */ 958, 959, 960, 961, + /* 20 */ 854, 855, 856, 857, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ GROUP(42), GROUP(43), GROUP(44), GROUP(45), + /* 2c */ GROUP(46), GROUP(47), GROUP(48), GROUP(49), + /* 30 */ 1472, 1297, 1295, 1296, + /* 34 */ GROUP(50), GROUP(52), INVALID, 1514, + /* 38 */ GROUP(54), INVALID, GROUP(116), INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ 84, 85, 86, 87, + /* 44 */ 88, 89, 90, 91, + /* 48 */ 92, 93, 94, 95, + /* 4c */ 96, 97, 98, 99, + /* 50 */ GROUP(143), GROUP(144), GROUP(145), GROUP(146), + /* 54 */ GROUP(147), GROUP(148), GROUP(149), GROUP(150), + /* 58 */ GROUP(151), GROUP(152), GROUP(153), GROUP(154), + /* 5c */ GROUP(155), GROUP(156), GROUP(157), GROUP(158), + /* 60 */ GROUP(159), GROUP(160), GROUP(161), GROUP(162), + /* 64 */ GROUP(163), GROUP(164), GROUP(165), GROUP(166), + /* 68 */ GROUP(167), GROUP(168), GROUP(169), GROUP(170), + /* 6c */ GROUP(171), GROUP(172), GROUP(173), GROUP(176), + /* 70 */ GROUP(177), GROUP(178), GROUP(182), GROUP(186), + /* 74 */ GROUP(191), GROUP(192), GROUP(193), 199, + /* 78 */ GROUP(194), GROUP(195), INVALID, INVALID, + /* 7c */ GROUP(196), GROUP(197), GROUP(198), GROUP(201), + /* 80 */ 727, 729, 731, 733, + /* 84 */ 735, 737, 739, 741, + /* 88 */ 743, 745, 747, 749, + /* 8c */ 751, 753, 755, 757, + /* 90 */ 1350, 1351, 1352, 1353, + /* 94 */ 1354, 1355, 1356, 1357, + /* 98 */ 1358, 1359, 1360, 1361, + /* 9c */ 1362, 1363, 1364, 1365, + /* a0 */ 1245, 1100, 131, 1670, + /* a4 */ 1375, 1376, GROUP(202), GROUP(207), + /* a8 */ 1244, 1099, 1305, 1675, + /* ac */ 1377, 1378, GROUP(215), 694, + /* b0 */ 122, 123, 775, 1673, + /* b4 */ 772, 773, 940, 941, + /* b8 */ GROUP(221), INVALID, GROUP(222), 1671, + /* bc */ 1659, 1660, 930, 931, + /* c0 */ 1473, 1474, GROUP(223), 904, + /* c4 */ GROUP(224), GROUP(225), GROUP(226), GROUP(227), + /* c8 */ 1661, 1662, 1663, 1664, + /* cc */ 1665, 1666, 1667, 1668, + /* d0 */ GROUP(236), GROUP(237), GROUP(238), GROUP(239), + /* d4 */ GROUP(240), GROUP(241), GROUP(242), GROUP(243), + /* d8 */ GROUP(244), GROUP(245), GROUP(246), GROUP(247), + /* dc */ GROUP(248), GROUP(249), GROUP(250), GROUP(251), + /* e0 */ GROUP(252), GROUP(253), GROUP(254), GROUP(255), + /* e4 */ GROUP(256), GROUP(257), GROUP(258), GROUP(259), + /* e8 */ GROUP(260), GROUP(261), GROUP(262), GROUP(263), + /* ec */ GROUP(264), GROUP(265), GROUP(266), GROUP(267), + /* f0 */ GROUP(268), GROUP(269), GROUP(270), GROUP(271), + /* f4 */ GROUP(272), GROUP(273), GROUP(274), GROUP(275), + /* f8 */ GROUP(277), GROUP(278), GROUP(279), GROUP(280), + /* fc */ GROUP(281), GROUP(282), GROUP(283), INVALID, +}; + +static const uint16_t ud_itab__5[] = { + /* 0 */ 1384, 1406, 786, 798, + /* 4 */ 1453, 1454, INVALID, INVALID, +}; + +static const uint16_t ud_itab__6[] = { + /* 0 */ GROUP(7), GROUP(8), +}; + +static const uint16_t ud_itab__7[] = { + /* 0 */ 1374, 1383, 785, 774, + /* 4 */ 1385, INVALID, 787, 719, +}; + +static const uint16_t ud_itab__8[] = { + /* 0 */ GROUP(9), GROUP(14), GROUP(15), GROUP(16), + /* 4 */ 1386, INVALID, 788, GROUP(25), +}; + +static const uint16_t ud_itab__9[] = { + /* 0 */ INVALID, GROUP(10), GROUP(11), GROUP(12), + /* 4 */ GROUP(13), INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__10[] = { + /* 0 */ INVALID, 1455, INVALID, +}; + +static const uint16_t ud_itab__11[] = { + /* 0 */ INVALID, 1461, INVALID, +}; + +static const uint16_t ud_itab__12[] = { + /* 0 */ INVALID, 1462, INVALID, +}; + +static const uint16_t ud_itab__13[] = { + /* 0 */ INVALID, 1463, INVALID, +}; + +static const uint16_t ud_itab__14[] = { + /* 0 */ 824, 952, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__15[] = { + /* 0 */ 1485, 1508, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__16[] = { + /* 0 */ GROUP(17), GROUP(18), GROUP(19), GROUP(20), + /* 4 */ GROUP(21), GROUP(22), GROUP(23), GROUP(24), +}; + +static const uint16_t ud_itab__17[] = { + /* 0 */ 1466, INVALID, INVALID, +}; + +static const uint16_t ud_itab__18[] = { + /* 0 */ 1467, INVALID, INVALID, +}; + +static const uint16_t ud_itab__19[] = { + /* 0 */ 1468, INVALID, INVALID, +}; + +static const uint16_t ud_itab__20[] = { + /* 0 */ 1469, INVALID, INVALID, +}; + +static const uint16_t ud_itab__21[] = { + /* 0 */ 1397, INVALID, INVALID, +}; + +static const uint16_t ud_itab__22[] = { + /* 0 */ 80, INVALID, INVALID, +}; + +static const uint16_t ud_itab__23[] = { + /* 0 */ 1399, INVALID, INVALID, +}; + +static const uint16_t ud_itab__24[] = { + /* 0 */ 720, INVALID, INVALID, +}; + +static const uint16_t ud_itab__25[] = { + /* 0 */ 1425, GROUP(26), INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__26[] = { + /* 0 */ 1298, INVALID, INVALID, +}; + +static const uint16_t ud_itab__27[] = { + /* 0 */ 1119, 1120, 1121, 1122, + /* 4 */ 1123, 1124, 1125, 1126, +}; + +static const uint16_t ud_itab__28[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, + /* 8 */ INVALID, INVALID, INVALID, INVALID, + /* c */ 1216, 1217, INVALID, INVALID, + /* 10 */ INVALID, INVALID, INVALID, INVALID, + /* 14 */ INVALID, INVALID, INVALID, INVALID, + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ 1218, 1219, INVALID, INVALID, + /* 20 */ INVALID, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ INVALID, INVALID, INVALID, INVALID, + /* 2c */ INVALID, INVALID, INVALID, INVALID, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ INVALID, INVALID, INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ INVALID, INVALID, INVALID, INVALID, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ INVALID, INVALID, INVALID, INVALID, + /* 5c */ INVALID, INVALID, INVALID, INVALID, + /* 60 */ INVALID, INVALID, INVALID, INVALID, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ INVALID, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, INVALID, INVALID, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, 1220, INVALID, + /* 8c */ INVALID, INVALID, 1221, INVALID, + /* 90 */ 1222, INVALID, INVALID, INVALID, + /* 94 */ 1223, INVALID, 1224, 1225, + /* 98 */ INVALID, INVALID, 1226, INVALID, + /* 9c */ INVALID, INVALID, 1227, INVALID, + /* a0 */ 1228, INVALID, INVALID, INVALID, + /* a4 */ 1229, INVALID, 1230, 1231, + /* a8 */ INVALID, INVALID, 1232, INVALID, + /* ac */ INVALID, INVALID, 1233, INVALID, + /* b0 */ 1234, INVALID, INVALID, INVALID, + /* b4 */ 1235, INVALID, 1236, 1237, + /* b8 */ INVALID, INVALID, INVALID, 1238, + /* bc */ INVALID, INVALID, INVALID, 1239, + /* c0 */ INVALID, INVALID, INVALID, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, INVALID, + /* dc */ INVALID, INVALID, INVALID, INVALID, + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, INVALID, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ INVALID, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__29[] = { + /* 0 */ 936, 925, 928, 932, +}; + +static const uint16_t ud_itab__30[] = { + /* 0 */ 938, 926, 929, 934, +}; + +static const uint16_t ud_itab__31[] = { + /* 0 */ GROUP(32), GROUP(33), +}; + +static const uint16_t ud_itab__32[] = { + /* 0 */ 892, 1563, 1571, 888, +}; + +static const uint16_t ud_itab__33[] = { + /* 0 */ 896, 1561, 1569, INVALID, +}; + +static const uint16_t ud_itab__34[] = { + /* 0 */ 894, INVALID, INVALID, 890, +}; + +static const uint16_t ud_itab__35[] = { + /* 0 */ 1449, INVALID, INVALID, 1451, +}; + +static const uint16_t ud_itab__36[] = { + /* 0 */ 1447, INVALID, INVALID, 1445, +}; + +static const uint16_t ud_itab__37[] = { + /* 0 */ GROUP(38), GROUP(39), +}; + +static const uint16_t ud_itab__38[] = { + /* 0 */ 882, INVALID, 1567, 878, +}; + +static const uint16_t ud_itab__39[] = { + /* 0 */ 886, INVALID, 1565, INVALID, +}; + +static const uint16_t ud_itab__40[] = { + /* 0 */ 884, INVALID, INVALID, 880, +}; + +static const uint16_t ud_itab__41[] = { + /* 0 */ 1127, 1128, 1129, 1130, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__42[] = { + /* 0 */ 862, INVALID, INVALID, 858, +}; + +static const uint16_t ud_itab__43[] = { + /* 0 */ 864, INVALID, INVALID, 860, +}; + +static const uint16_t ud_itab__44[] = { + /* 0 */ 141, 152, 154, 142, +}; + +static const uint16_t ud_itab__45[] = { + /* 0 */ 907, INVALID, INVALID, 905, +}; + +static const uint16_t ud_itab__46[] = { + /* 0 */ 165, 166, 168, 162, +}; + +static const uint16_t ud_itab__47[] = { + /* 0 */ 147, 148, 158, 138, +}; + +static const uint16_t ud_itab__48[] = { + /* 0 */ 1442, INVALID, INVALID, 1440, +}; + +static const uint16_t ud_itab__49[] = { + /* 0 */ 129, INVALID, INVALID, 127, +}; + +static const uint16_t ud_itab__50[] = { + /* 0 */ 1427, GROUP(51), +}; + +static const uint16_t ud_itab__51[] = { + /* 0 */ INVALID, 1428, INVALID, +}; + +static const uint16_t ud_itab__52[] = { + /* 0 */ 1429, GROUP(53), +}; + +static const uint16_t ud_itab__53[] = { + /* 0 */ INVALID, 1430, INVALID, +}; + +static const uint16_t ud_itab__54[] = { + /* 0 */ GROUP(67), GROUP(68), GROUP(63), GROUP(64), + /* 4 */ GROUP(65), GROUP(66), GROUP(86), GROUP(90), + /* 8 */ GROUP(69), GROUP(70), GROUP(71), GROUP(72), + /* c */ INVALID, INVALID, INVALID, INVALID, + /* 10 */ GROUP(73), INVALID, INVALID, INVALID, + /* 14 */ GROUP(75), GROUP(76), INVALID, GROUP(77), + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ GROUP(78), GROUP(79), GROUP(80), INVALID, + /* 20 */ GROUP(81), GROUP(82), GROUP(83), GROUP(84), + /* 24 */ GROUP(85), GROUP(108), INVALID, INVALID, + /* 28 */ GROUP(87), GROUP(88), GROUP(89), GROUP(74), + /* 2c */ INVALID, INVALID, INVALID, INVALID, + /* 30 */ GROUP(91), GROUP(92), GROUP(93), GROUP(94), + /* 34 */ GROUP(95), GROUP(96), INVALID, GROUP(97), + /* 38 */ GROUP(98), GROUP(99), GROUP(100), GROUP(101), + /* 3c */ GROUP(102), GROUP(103), GROUP(104), GROUP(105), + /* 40 */ GROUP(106), GROUP(107), INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ INVALID, INVALID, INVALID, INVALID, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ INVALID, INVALID, INVALID, INVALID, + /* 5c */ INVALID, INVALID, INVALID, INVALID, + /* 60 */ INVALID, INVALID, INVALID, INVALID, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ INVALID, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, INVALID, INVALID, + /* 80 */ GROUP(55), GROUP(59), INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, INVALID, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, GROUP(109), + /* dc */ GROUP(110), GROUP(111), GROUP(112), GROUP(113), + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, INVALID, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ GROUP(114), GROUP(115), INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__55[] = { + /* 0 */ INVALID, INVALID, INVALID, GROUP(56), +}; + +static const uint16_t ud_itab__56[] = { + /* 0 */ GROUP(57), GROUP(58), +}; + +static const uint16_t ud_itab__57[] = { + /* 0 */ INVALID, 717, INVALID, +}; + +static const uint16_t ud_itab__58[] = { + /* 0 */ INVALID, 718, INVALID, +}; + +static const uint16_t ud_itab__59[] = { + /* 0 */ INVALID, INVALID, INVALID, GROUP(60), +}; + +static const uint16_t ud_itab__60[] = { + /* 0 */ GROUP(61), GROUP(62), +}; + +static const uint16_t ud_itab__61[] = { + /* 0 */ INVALID, 721, INVALID, +}; + +static const uint16_t ud_itab__62[] = { + /* 0 */ INVALID, 722, INVALID, +}; + +static const uint16_t ud_itab__63[] = { + /* 0 */ 1588, INVALID, INVALID, 1589, +}; + +static const uint16_t ud_itab__64[] = { + /* 0 */ 1591, INVALID, INVALID, 1592, +}; + +static const uint16_t ud_itab__65[] = { + /* 0 */ 1594, INVALID, INVALID, 1595, +}; + +static const uint16_t ud_itab__66[] = { + /* 0 */ 1597, INVALID, INVALID, 1598, +}; + +static const uint16_t ud_itab__67[] = { + /* 0 */ 1582, INVALID, INVALID, 1583, +}; + +static const uint16_t ud_itab__68[] = { + /* 0 */ 1585, INVALID, INVALID, 1586, +}; + +static const uint16_t ud_itab__69[] = { + /* 0 */ 1606, INVALID, INVALID, 1607, +}; + +static const uint16_t ud_itab__70[] = { + /* 0 */ 1612, INVALID, INVALID, 1613, +}; + +static const uint16_t ud_itab__71[] = { + /* 0 */ 1609, INVALID, INVALID, 1610, +}; + +static const uint16_t ud_itab__72[] = { + /* 0 */ 1615, INVALID, INVALID, 1616, +}; + +static const uint16_t ud_itab__73[] = { + /* 0 */ INVALID, INVALID, INVALID, 1621, +}; + +static const uint16_t ud_itab__74[] = { + /* 0 */ INVALID, INVALID, INVALID, 1683, +}; + +static const uint16_t ud_itab__75[] = { + /* 0 */ INVALID, INVALID, INVALID, 1657, +}; + +static const uint16_t ud_itab__76[] = { + /* 0 */ INVALID, INVALID, INVALID, 1656, +}; + +static const uint16_t ud_itab__77[] = { + /* 0 */ INVALID, INVALID, INVALID, 1711, +}; + +static const uint16_t ud_itab__78[] = { + /* 0 */ 1573, INVALID, INVALID, 1574, +}; + +static const uint16_t ud_itab__79[] = { + /* 0 */ 1576, INVALID, INVALID, 1577, +}; + +static const uint16_t ud_itab__80[] = { + /* 0 */ 1579, INVALID, INVALID, 1580, +}; + +static const uint16_t ud_itab__81[] = { + /* 0 */ INVALID, INVALID, INVALID, 1685, +}; + +static const uint16_t ud_itab__82[] = { + /* 0 */ INVALID, INVALID, INVALID, 1687, +}; + +static const uint16_t ud_itab__83[] = { + /* 0 */ INVALID, INVALID, INVALID, 1689, +}; + +static const uint16_t ud_itab__84[] = { + /* 0 */ INVALID, INVALID, INVALID, 1691, +}; + +static const uint16_t ud_itab__85[] = { + /* 0 */ INVALID, INVALID, INVALID, 1693, +}; + +static const uint16_t ud_itab__86[] = { + /* 0 */ 1600, INVALID, INVALID, 1601, +}; + +static const uint16_t ud_itab__87[] = { + /* 0 */ INVALID, INVALID, INVALID, 1622, +}; + +static const uint16_t ud_itab__88[] = { + /* 0 */ INVALID, INVALID, INVALID, 1708, +}; + +static const uint16_t ud_itab__89[] = { + /* 0 */ INVALID, INVALID, INVALID, 1681, +}; + +static const uint16_t ud_itab__90[] = { + /* 0 */ 1603, INVALID, INVALID, 1604, +}; + +static const uint16_t ud_itab__91[] = { + /* 0 */ INVALID, INVALID, INVALID, 1696, +}; + +static const uint16_t ud_itab__92[] = { + /* 0 */ INVALID, INVALID, INVALID, 1698, +}; + +static const uint16_t ud_itab__93[] = { + /* 0 */ INVALID, INVALID, INVALID, 1700, +}; + +static const uint16_t ud_itab__94[] = { + /* 0 */ INVALID, INVALID, INVALID, 1702, +}; + +static const uint16_t ud_itab__95[] = { + /* 0 */ INVALID, INVALID, INVALID, 1704, +}; + +static const uint16_t ud_itab__96[] = { + /* 0 */ INVALID, INVALID, INVALID, 1706, +}; + +static const uint16_t ud_itab__97[] = { + /* 0 */ INVALID, INVALID, INVALID, 1717, +}; + +static const uint16_t ud_itab__98[] = { + /* 0 */ INVALID, INVALID, INVALID, 1624, +}; + +static const uint16_t ud_itab__99[] = { + /* 0 */ INVALID, INVALID, INVALID, 1626, +}; + +static const uint16_t ud_itab__100[] = { + /* 0 */ INVALID, INVALID, INVALID, 1628, +}; + +static const uint16_t ud_itab__101[] = { + /* 0 */ INVALID, INVALID, INVALID, 1630, +}; + +static const uint16_t ud_itab__102[] = { + /* 0 */ INVALID, INVALID, INVALID, 1632, +}; + +static const uint16_t ud_itab__103[] = { + /* 0 */ INVALID, INVALID, INVALID, 1634, +}; + +static const uint16_t ud_itab__104[] = { + /* 0 */ INVALID, INVALID, INVALID, 1638, +}; + +static const uint16_t ud_itab__105[] = { + /* 0 */ INVALID, INVALID, INVALID, 1636, +}; + +static const uint16_t ud_itab__106[] = { + /* 0 */ INVALID, INVALID, INVALID, 1640, +}; + +static const uint16_t ud_itab__107[] = { + /* 0 */ INVALID, INVALID, INVALID, 1642, +}; + +static const uint16_t ud_itab__108[] = { + /* 0 */ INVALID, INVALID, INVALID, 1695, +}; + +static const uint16_t ud_itab__109[] = { + /* 0 */ INVALID, INVALID, INVALID, 45, +}; + +static const uint16_t ud_itab__110[] = { + /* 0 */ INVALID, INVALID, INVALID, 41, +}; + +static const uint16_t ud_itab__111[] = { + /* 0 */ INVALID, INVALID, INVALID, 43, +}; + +static const uint16_t ud_itab__112[] = { + /* 0 */ INVALID, INVALID, INVALID, 37, +}; + +static const uint16_t ud_itab__113[] = { + /* 0 */ INVALID, INVALID, INVALID, 39, +}; + +static const uint16_t ud_itab__114[] = { + /* 0 */ 1723, 1725, INVALID, INVALID, +}; + +static const uint16_t ud_itab__115[] = { + /* 0 */ 1724, 1726, INVALID, INVALID, +}; + +static const uint16_t ud_itab__116[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, + /* 8 */ GROUP(117), GROUP(118), GROUP(119), GROUP(120), + /* c */ GROUP(121), GROUP(122), GROUP(123), GROUP(124), + /* 10 */ INVALID, INVALID, INVALID, INVALID, + /* 14 */ GROUP(125), GROUP(126), GROUP(127), GROUP(129), + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ GROUP(130), GROUP(131), GROUP(132), INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ INVALID, INVALID, INVALID, INVALID, + /* 2c */ INVALID, INVALID, INVALID, INVALID, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ GROUP(134), GROUP(135), GROUP(136), INVALID, + /* 44 */ GROUP(137), INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ INVALID, INVALID, INVALID, INVALID, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ INVALID, INVALID, INVALID, INVALID, + /* 5c */ INVALID, INVALID, INVALID, INVALID, + /* 60 */ GROUP(139), GROUP(140), GROUP(141), GROUP(142), + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ INVALID, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, INVALID, INVALID, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, INVALID, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, INVALID, + /* dc */ INVALID, INVALID, INVALID, GROUP(138), + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, INVALID, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ INVALID, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__117[] = { + /* 0 */ INVALID, INVALID, INVALID, 1644, +}; + +static const uint16_t ud_itab__118[] = { + /* 0 */ INVALID, INVALID, INVALID, 1646, +}; + +static const uint16_t ud_itab__119[] = { + /* 0 */ INVALID, INVALID, INVALID, 1648, +}; + +static const uint16_t ud_itab__120[] = { + /* 0 */ INVALID, INVALID, INVALID, 1650, +}; + +static const uint16_t ud_itab__121[] = { + /* 0 */ INVALID, INVALID, INVALID, 1654, +}; + +static const uint16_t ud_itab__122[] = { + /* 0 */ INVALID, INVALID, INVALID, 1652, +}; + +static const uint16_t ud_itab__123[] = { + /* 0 */ INVALID, INVALID, INVALID, 1677, +}; + +static const uint16_t ud_itab__124[] = { + /* 0 */ 1618, INVALID, INVALID, 1619, +}; + +static const uint16_t ud_itab__125[] = { + /* 0 */ INVALID, INVALID, INVALID, 1045, +}; + +static const uint16_t ud_itab__126[] = { + /* 0 */ INVALID, INVALID, INVALID, 1056, +}; + +static const uint16_t ud_itab__127[] = { + /* 0 */ INVALID, INVALID, INVALID, GROUP(128), +}; + +static const uint16_t ud_itab__128[] = { + /* 0 */ 1047, 1049, 1051, +}; + +static const uint16_t ud_itab__129[] = { + /* 0 */ INVALID, INVALID, INVALID, 201, +}; + +static const uint16_t ud_itab__130[] = { + /* 0 */ INVALID, INVALID, INVALID, 1058, +}; + +static const uint16_t ud_itab__131[] = { + /* 0 */ INVALID, INVALID, INVALID, 1557, +}; + +static const uint16_t ud_itab__132[] = { + /* 0 */ INVALID, INVALID, INVALID, GROUP(133), +}; + +static const uint16_t ud_itab__133[] = { + /* 0 */ 1062, 1063, 1064, +}; + +static const uint16_t ud_itab__134[] = { + /* 0 */ INVALID, INVALID, INVALID, 197, +}; + +static const uint16_t ud_itab__135[] = { + /* 0 */ INVALID, INVALID, INVALID, 195, +}; + +static const uint16_t ud_itab__136[] = { + /* 0 */ INVALID, INVALID, INVALID, 1679, +}; + +static const uint16_t ud_itab__137[] = { + /* 0 */ INVALID, INVALID, INVALID, 1512, +}; + +static const uint16_t ud_itab__138[] = { + /* 0 */ INVALID, INVALID, INVALID, 47, +}; + +static const uint16_t ud_itab__139[] = { + /* 0 */ INVALID, INVALID, INVALID, 1715, +}; + +static const uint16_t ud_itab__140[] = { + /* 0 */ INVALID, INVALID, INVALID, 1713, +}; + +static const uint16_t ud_itab__141[] = { + /* 0 */ INVALID, INVALID, INVALID, 1721, +}; + +static const uint16_t ud_itab__142[] = { + /* 0 */ INVALID, INVALID, INVALID, 1719, +}; + +static const uint16_t ud_itab__143[] = { + /* 0 */ 900, INVALID, INVALID, 898, +}; + +static const uint16_t ud_itab__144[] = { + /* 0 */ 1387, 1391, 1393, 1389, +}; + +static const uint16_t ud_itab__145[] = { + /* 0 */ 1306, INVALID, 1308, INVALID, +}; + +static const uint16_t ud_itab__146[] = { + /* 0 */ 1291, INVALID, 1293, INVALID, +}; + +static const uint16_t ud_itab__147[] = { + /* 0 */ 61, INVALID, INVALID, 59, +}; + +static const uint16_t ud_itab__148[] = { + /* 0 */ 65, INVALID, INVALID, 63, +}; + +static const uint16_t ud_itab__149[] = { + /* 0 */ 976, INVALID, INVALID, 974, +}; + +static const uint16_t ud_itab__150[] = { + /* 0 */ 1499, INVALID, INVALID, 1497, +}; + +static const uint16_t ud_itab__151[] = { + /* 0 */ 27, 29, 31, 25, +}; + +static const uint16_t ud_itab__152[] = { + /* 0 */ 946, 948, 950, 944, +}; + +static const uint16_t ud_itab__153[] = { + /* 0 */ 145, 150, 156, 139, +}; + +static const uint16_t ud_itab__154[] = { + /* 0 */ 134, INVALID, 163, 143, +}; + +static const uint16_t ud_itab__155[] = { + /* 0 */ 1419, 1421, 1423, 1417, +}; + +static const uint16_t ud_itab__156[] = { + /* 0 */ 818, 820, 822, 816, +}; + +static const uint16_t ud_itab__157[] = { + /* 0 */ 189, 191, 193, 187, +}; + +static const uint16_t ud_itab__158[] = { + /* 0 */ 802, 804, 806, 800, +}; + +static const uint16_t ud_itab__159[] = { + /* 0 */ 1209, INVALID, INVALID, 1207, +}; + +static const uint16_t ud_itab__160[] = { + /* 0 */ 1212, INVALID, INVALID, 1210, +}; + +static const uint16_t ud_itab__161[] = { + /* 0 */ 1215, INVALID, INVALID, 1213, +}; + +static const uint16_t ud_itab__162[] = { + /* 0 */ 987, INVALID, INVALID, 985, +}; + +static const uint16_t ud_itab__163[] = { + /* 0 */ 1038, INVALID, INVALID, 1036, +}; + +static const uint16_t ud_itab__164[] = { + /* 0 */ 1041, INVALID, INVALID, 1039, +}; + +static const uint16_t ud_itab__165[] = { + /* 0 */ 1044, INVALID, INVALID, 1042, +}; + +static const uint16_t ud_itab__166[] = { + /* 0 */ 993, INVALID, INVALID, 991, +}; + +static const uint16_t ud_itab__167[] = { + /* 0 */ 1200, INVALID, INVALID, 1198, +}; + +static const uint16_t ud_itab__168[] = { + /* 0 */ 1203, INVALID, INVALID, 1201, +}; + +static const uint16_t ud_itab__169[] = { + /* 0 */ 1206, INVALID, INVALID, 1204, +}; + +static const uint16_t ud_itab__170[] = { + /* 0 */ 990, INVALID, INVALID, 988, +}; + +static const uint16_t ud_itab__171[] = { + /* 0 */ INVALID, INVALID, INVALID, 1547, +}; + +static const uint16_t ud_itab__172[] = { + /* 0 */ INVALID, INVALID, INVALID, 1545, +}; + +static const uint16_t ud_itab__173[] = { + /* 0 */ GROUP(174), INVALID, INVALID, GROUP(175), +}; + +static const uint16_t ud_itab__174[] = { + /* 0 */ 866, 867, 910, +}; + +static const uint16_t ud_itab__175[] = { + /* 0 */ 868, 870, 911, +}; + +static const uint16_t ud_itab__176[] = { + /* 0 */ 920, INVALID, 1522, 1517, +}; + +static const uint16_t ud_itab__177[] = { + /* 0 */ 1134, 1537, 1535, 1539, +}; + +static const uint16_t ud_itab__178[] = { + /* 0 */ INVALID, INVALID, GROUP(179), INVALID, + /* 4 */ GROUP(180), INVALID, GROUP(181), INVALID, +}; + +static const uint16_t ud_itab__179[] = { + /* 0 */ 1159, INVALID, INVALID, 1163, +}; + +static const uint16_t ud_itab__180[] = { + /* 0 */ 1152, INVALID, INVALID, 1150, +}; + +static const uint16_t ud_itab__181[] = { + /* 0 */ 1138, INVALID, INVALID, 1137, +}; + +static const uint16_t ud_itab__182[] = { + /* 0 */ INVALID, INVALID, GROUP(183), INVALID, + /* 4 */ GROUP(184), INVALID, GROUP(185), INVALID, +}; + +static const uint16_t ud_itab__183[] = { + /* 0 */ 1165, INVALID, INVALID, 1169, +}; + +static const uint16_t ud_itab__184[] = { + /* 0 */ 1153, INVALID, INVALID, 1157, +}; + +static const uint16_t ud_itab__185[] = { + /* 0 */ 1142, INVALID, INVALID, 1141, +}; + +static const uint16_t ud_itab__186[] = { + /* 0 */ INVALID, INVALID, GROUP(187), GROUP(188), + /* 4 */ INVALID, INVALID, GROUP(189), GROUP(190), +}; + +static const uint16_t ud_itab__187[] = { + /* 0 */ 1171, INVALID, INVALID, 1175, +}; + +static const uint16_t ud_itab__188[] = { + /* 0 */ INVALID, INVALID, INVALID, 1543, +}; + +static const uint16_t ud_itab__189[] = { + /* 0 */ 1146, INVALID, INVALID, 1145, +}; + +static const uint16_t ud_itab__190[] = { + /* 0 */ INVALID, INVALID, INVALID, 1541, +}; + +static const uint16_t ud_itab__191[] = { + /* 0 */ 1027, INVALID, INVALID, 1028, +}; + +static const uint16_t ud_itab__192[] = { + /* 0 */ 1030, INVALID, INVALID, 1031, +}; + +static const uint16_t ud_itab__193[] = { + /* 0 */ 1033, INVALID, INVALID, 1034, +}; + +static const uint16_t ud_itab__194[] = { + /* 0 */ INVALID, 1464, INVALID, +}; + +static const uint16_t ud_itab__195[] = { + /* 0 */ INVALID, 1465, INVALID, +}; + +static const uint16_t ud_itab__196[] = { + /* 0 */ INVALID, 1551, INVALID, 1549, +}; + +static const uint16_t ud_itab__197[] = { + /* 0 */ INVALID, 1555, INVALID, 1553, +}; + +static const uint16_t ud_itab__198[] = { + /* 0 */ GROUP(199), INVALID, 916, GROUP(200), +}; + +static const uint16_t ud_itab__199[] = { + /* 0 */ 872, 873, 913, +}; + +static const uint16_t ud_itab__200[] = { + /* 0 */ 874, 876, 914, +}; + +static const uint16_t ud_itab__201[] = { + /* 0 */ 921, INVALID, 1524, 1515, +}; + +static const uint16_t ud_itab__202[] = { + /* 0 */ INVALID, GROUP(203), +}; + +static const uint16_t ud_itab__203[] = { + /* 0 */ GROUP(204), GROUP(205), GROUP(206), INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__204[] = { + /* 0 */ 825, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__205[] = { + /* 0 */ 1509, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__206[] = { + /* 0 */ 1510, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__207[] = { + /* 0 */ INVALID, GROUP(208), +}; + +static const uint16_t ud_itab__208[] = { + /* 0 */ GROUP(209), GROUP(210), GROUP(211), GROUP(212), + /* 4 */ GROUP(213), GROUP(214), INVALID, INVALID, +}; + +static const uint16_t ud_itab__209[] = { + /* 0 */ 1511, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__210[] = { + /* 0 */ 1501, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__211[] = { + /* 0 */ 1502, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__212[] = { + /* 0 */ 1503, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__213[] = { + /* 0 */ 1504, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__214[] = { + /* 0 */ 1505, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__215[] = { + /* 0 */ GROUP(216), GROUP(217), +}; + +static const uint16_t ud_itab__216[] = { + /* 0 */ 683, 682, 768, 1400, + /* 4 */ 1507, 1506, INVALID, 79, +}; + +static const uint16_t ud_itab__217[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, GROUP(218), GROUP(219), GROUP(220), +}; + +static const uint16_t ud_itab__218[] = { + /* 0 */ 777, 778, 779, 780, + /* 4 */ 781, 782, 783, 784, +}; + +static const uint16_t ud_itab__219[] = { + /* 0 */ 808, 809, 810, 811, + /* 4 */ 812, 813, 814, 815, +}; + +static const uint16_t ud_itab__220[] = { + /* 0 */ 1366, 1367, 1368, 1369, + /* 4 */ 1370, 1371, 1372, 1373, +}; + +static const uint16_t ud_itab__221[] = { + /* 0 */ INVALID, INVALID, 1710, INVALID, +}; + +static const uint16_t ud_itab__222[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ 1669, 1676, 1674, 1672, +}; + +static const uint16_t ud_itab__223[] = { + /* 0 */ 112, 117, 120, 110, +}; + +static const uint16_t ud_itab__224[] = { + /* 0 */ 1059, INVALID, INVALID, 1060, +}; + +static const uint16_t ud_itab__225[] = { + /* 0 */ 1055, INVALID, INVALID, 1053, +}; + +static const uint16_t ud_itab__226[] = { + /* 0 */ 1381, INVALID, INVALID, 1379, +}; + +static const uint16_t ud_itab__227[] = { + /* 0 */ GROUP(228), GROUP(235), +}; + +static const uint16_t ud_itab__228[] = { + /* 0 */ INVALID, GROUP(229), INVALID, INVALID, + /* 4 */ INVALID, INVALID, GROUP(230), GROUP(234), +}; + +static const uint16_t ud_itab__229[] = { + /* 0 */ 124, 125, 126, +}; + +static const uint16_t ud_itab__230[] = { + /* 0 */ GROUP(231), INVALID, GROUP(232), GROUP(233), +}; + +static const uint16_t ud_itab__231[] = { + /* 0 */ INVALID, 1459, INVALID, +}; + +static const uint16_t ud_itab__232[] = { + /* 0 */ INVALID, 1458, INVALID, +}; + +static const uint16_t ud_itab__233[] = { + /* 0 */ INVALID, 1457, INVALID, +}; + +static const uint16_t ud_itab__234[] = { + /* 0 */ INVALID, 1460, INVALID, +}; + +static const uint16_t ud_itab__235[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, 1456, INVALID, +}; + +static const uint16_t ud_itab__236[] = { + /* 0 */ INVALID, 35, INVALID, 33, +}; + +static const uint16_t ud_itab__237[] = { + /* 0 */ 1160, INVALID, INVALID, 1161, +}; + +static const uint16_t ud_itab__238[] = { + /* 0 */ 1166, INVALID, INVALID, 1167, +}; + +static const uint16_t ud_itab__239[] = { + /* 0 */ 1172, INVALID, INVALID, 1173, +}; + +static const uint16_t ud_itab__240[] = { + /* 0 */ 1527, INVALID, INVALID, 1528, +}; + +static const uint16_t ud_itab__241[] = { + /* 0 */ 1093, INVALID, INVALID, 1094, +}; + +static const uint16_t ud_itab__242[] = { + /* 0 */ INVALID, 1521, 1526, 918, +}; + +static const uint16_t ud_itab__243[] = { + /* 0 */ 1086, INVALID, INVALID, 1084, +}; + +static const uint16_t ud_itab__244[] = { + /* 0 */ 1192, INVALID, INVALID, 1193, +}; + +static const uint16_t ud_itab__245[] = { + /* 0 */ 1195, INVALID, INVALID, 1196, +}; + +static const uint16_t ud_itab__246[] = { + /* 0 */ 1083, INVALID, INVALID, 1081, +}; + +static const uint16_t ud_itab__247[] = { + /* 0 */ 1017, INVALID, INVALID, 1015, +}; + +static const uint16_t ud_itab__248[] = { + /* 0 */ 1009, INVALID, INVALID, 1010, +}; + +static const uint16_t ud_itab__249[] = { + /* 0 */ 1012, INVALID, INVALID, 1013, +}; + +static const uint16_t ud_itab__250[] = { + /* 0 */ 1075, INVALID, INVALID, 1076, +}; + +static const uint16_t ud_itab__251[] = { + /* 0 */ 1020, INVALID, INVALID, 1018, +}; + +static const uint16_t ud_itab__252[] = { + /* 0 */ 1023, INVALID, INVALID, 1021, +}; + +static const uint16_t ud_itab__253[] = { + /* 0 */ 1147, INVALID, INVALID, 1148, +}; + +static const uint16_t ud_itab__254[] = { + /* 0 */ 1156, INVALID, INVALID, 1154, +}; + +static const uint16_t ud_itab__255[] = { + /* 0 */ 1026, INVALID, INVALID, 1024, +}; + +static const uint16_t ud_itab__256[] = { + /* 0 */ 1087, INVALID, INVALID, 1088, +}; + +static const uint16_t ud_itab__257[] = { + /* 0 */ 1092, INVALID, INVALID, 1090, +}; + +static const uint16_t ud_itab__258[] = { + /* 0 */ INVALID, 136, 132, 160, +}; + +static const uint16_t ud_itab__259[] = { + /* 0 */ 909, INVALID, INVALID, 902, +}; + +static const uint16_t ud_itab__260[] = { + /* 0 */ 1186, INVALID, INVALID, 1187, +}; + +static const uint16_t ud_itab__261[] = { + /* 0 */ 1189, INVALID, INVALID, 1190, +}; + +static const uint16_t ud_itab__262[] = { + /* 0 */ 1080, INVALID, INVALID, 1078, +}; + +static const uint16_t ud_itab__263[] = { + /* 0 */ 1118, INVALID, INVALID, 1116, +}; + +static const uint16_t ud_itab__264[] = { + /* 0 */ 1003, INVALID, INVALID, 1004, +}; + +static const uint16_t ud_itab__265[] = { + /* 0 */ 1006, INVALID, INVALID, 1007, +}; + +static const uint16_t ud_itab__266[] = { + /* 0 */ 1074, INVALID, INVALID, 1072, +}; + +static const uint16_t ud_itab__267[] = { + /* 0 */ 1266, INVALID, INVALID, 1264, +}; + +static const uint16_t ud_itab__268[] = { + /* 0 */ INVALID, 1559, INVALID, INVALID, +}; + +static const uint16_t ud_itab__269[] = { + /* 0 */ 1136, INVALID, INVALID, 1135, +}; + +static const uint16_t ud_itab__270[] = { + /* 0 */ 1140, INVALID, INVALID, 1139, +}; + +static const uint16_t ud_itab__271[] = { + /* 0 */ 1144, INVALID, INVALID, 1143, +}; + +static const uint16_t ud_itab__272[] = { + /* 0 */ 1533, INVALID, INVALID, 1534, +}; + +static const uint16_t ud_itab__273[] = { + /* 0 */ 1069, INVALID, INVALID, 1070, +}; + +static const uint16_t ud_itab__274[] = { + /* 0 */ 1133, INVALID, INVALID, 1131, +}; + +static const uint16_t ud_itab__275[] = { + /* 0 */ INVALID, GROUP(276), +}; + +static const uint16_t ud_itab__276[] = { + /* 0 */ 799, INVALID, INVALID, 1519, +}; + +static const uint16_t ud_itab__277[] = { + /* 0 */ 1179, INVALID, INVALID, 1177, +}; + +static const uint16_t ud_itab__278[] = { + /* 0 */ 1182, INVALID, INVALID, 1180, +}; + +static const uint16_t ud_itab__279[] = { + /* 0 */ 1183, INVALID, INVALID, 1184, +}; + +static const uint16_t ud_itab__280[] = { + /* 0 */ 1532, INVALID, INVALID, 1530, +}; + +static const uint16_t ud_itab__281[] = { + /* 0 */ 996, INVALID, INVALID, 994, +}; + +static const uint16_t ud_itab__282[] = { + /* 0 */ 997, INVALID, INVALID, 998, +}; + +static const uint16_t ud_itab__283[] = { + /* 0 */ 1000, INVALID, INVALID, 1001, +}; + +static const uint16_t ud_itab__284[] = { + /* 0 */ 1242, INVALID, +}; + +static const uint16_t ud_itab__285[] = { + /* 0 */ 1097, INVALID, +}; + +static const uint16_t ud_itab__286[] = { + /* 0 */ 1243, INVALID, +}; + +static const uint16_t ud_itab__287[] = { + /* 0 */ 1098, INVALID, +}; + +static const uint16_t ud_itab__288[] = { + /* 0 */ 173, INVALID, +}; + +static const uint16_t ud_itab__289[] = { + /* 0 */ 174, INVALID, +}; + +static const uint16_t ud_itab__290[] = { + /* 0 */ 1, INVALID, +}; + +static const uint16_t ud_itab__291[] = { + /* 0 */ 4, INVALID, +}; + +static const uint16_t ud_itab__292[] = { + /* 0 */ GROUP(293), GROUP(294), INVALID, +}; + +static const uint16_t ud_itab__293[] = { + /* 0 */ 1257, INVALID, +}; + +static const uint16_t ud_itab__294[] = { + /* 0 */ 1258, INVALID, +}; + +static const uint16_t ud_itab__295[] = { + /* 0 */ GROUP(296), GROUP(297), INVALID, +}; + +static const uint16_t ud_itab__296[] = { + /* 0 */ 1110, INVALID, +}; + +static const uint16_t ud_itab__297[] = { + /* 0 */ 1111, INVALID, +}; + +static const uint16_t ud_itab__298[] = { + /* 0 */ 1658, INVALID, +}; + +static const uint16_t ud_itab__299[] = { + /* 0 */ 67, 68, +}; + +static const uint16_t ud_itab__300[] = { + /* 0 */ 710, 711, INVALID, +}; + +static const uint16_t ud_itab__301[] = { + /* 0 */ 983, 984, INVALID, +}; + +static const uint16_t ud_itab__302[] = { + /* 0 */ 21, 970, 11, 1342, + /* 4 */ 55, 1413, 1493, 106, +}; + +static const uint16_t ud_itab__303[] = { + /* 0 */ 23, 971, 13, 1343, + /* 4 */ 57, 1414, 1494, 108, +}; + +static const uint16_t ud_itab__304[] = { + /* 0 */ GROUP(305), GROUP(306), GROUP(307), GROUP(308), + /* 4 */ GROUP(309), GROUP(310), GROUP(311), GROUP(312), +}; + +static const uint16_t ud_itab__305[] = { + /* 0 */ 22, INVALID, +}; + +static const uint16_t ud_itab__306[] = { + /* 0 */ 972, INVALID, +}; + +static const uint16_t ud_itab__307[] = { + /* 0 */ 12, INVALID, +}; + +static const uint16_t ud_itab__308[] = { + /* 0 */ 1344, INVALID, +}; + +static const uint16_t ud_itab__309[] = { + /* 0 */ 56, INVALID, +}; + +static const uint16_t ud_itab__310[] = { + /* 0 */ 1415, INVALID, +}; + +static const uint16_t ud_itab__311[] = { + /* 0 */ 1495, INVALID, +}; + +static const uint16_t ud_itab__312[] = { + /* 0 */ 107, INVALID, +}; + +static const uint16_t ud_itab__313[] = { + /* 0 */ 24, 973, 14, 1345, + /* 4 */ 58, 1416, 1496, 109, +}; + +static const uint16_t ud_itab__314[] = { + /* 0 */ 1109, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__315[] = { + /* 0 */ 74, 75, 76, +}; + +static const uint16_t ud_itab__316[] = { + /* 0 */ 170, 171, 172, +}; + +static const uint16_t ud_itab__317[] = { + /* 0 */ 73, INVALID, +}; + +static const uint16_t ud_itab__318[] = { + /* 0 */ GROUP(319), GROUP(320), GROUP(321), +}; + +static const uint16_t ud_itab__319[] = { + /* 0 */ 1259, 1260, +}; + +static const uint16_t ud_itab__320[] = { + /* 0 */ 1261, 1262, +}; + +static const uint16_t ud_itab__321[] = { + /* 0 */ INVALID, 1263, +}; + +static const uint16_t ud_itab__322[] = { + /* 0 */ GROUP(323), GROUP(324), GROUP(325), +}; + +static const uint16_t ud_itab__323[] = { + /* 0 */ 1112, INVALID, +}; + +static const uint16_t ud_itab__324[] = { + /* 0 */ 1113, 1114, +}; + +static const uint16_t ud_itab__325[] = { + /* 0 */ INVALID, 1115, +}; + +static const uint16_t ud_itab__326[] = { + /* 0 */ 923, 924, 927, +}; + +static const uint16_t ud_itab__327[] = { + /* 0 */ 115, 116, 119, +}; + +static const uint16_t ud_itab__328[] = { + /* 0 */ 1403, 1404, 1405, +}; + +static const uint16_t ud_itab__329[] = { + /* 0 */ 791, 792, 793, +}; + +static const uint16_t ud_itab__330[] = { + /* 0 */ 1347, 1348, 1349, +}; + +static const uint16_t ud_itab__331[] = { + /* 0 */ 1279, 1286, 1267, 1275, + /* 4 */ 1327, 1334, 1318, 1313, +}; + +static const uint16_t ud_itab__332[] = { + /* 0 */ 1284, 1287, 1268, 1274, + /* 4 */ 1323, 1330, 1319, 1315, +}; + +static const uint16_t ud_itab__333[] = { + /* 0 */ GROUP(334), GROUP(335), INVALID, INVALID, + /* 4 */ INVALID, GROUP(341), GROUP(357), GROUP(369), + /* 8 */ INVALID, GROUP(394), INVALID, INVALID, + /* c */ INVALID, GROUP(399), INVALID, INVALID, +}; + +static const uint16_t ud_itab__334[] = { + /* 0 */ 771, INVALID, +}; + +static const uint16_t ud_itab__335[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, + /* 8 */ INVALID, INVALID, INVALID, INVALID, + /* c */ INVALID, INVALID, INVALID, INVALID, + /* 10 */ 937, 939, GROUP(336), 895, + /* 14 */ 1450, 1448, GROUP(337), 885, + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ INVALID, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ 863, 865, INVALID, 908, + /* 2c */ INVALID, INVALID, 1443, 130, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ INVALID, INVALID, INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ 901, 1388, 1307, 1292, + /* 54 */ 62, 66, 977, 1500, + /* 58 */ 28, 947, 146, 135, + /* 5c */ 1420, 819, 190, 803, + /* 60 */ INVALID, INVALID, INVALID, INVALID, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ INVALID, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, GROUP(340), + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, INVALID, INVALID, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, GROUP(338), INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, 113, INVALID, + /* c4 */ INVALID, INVALID, 1382, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, INVALID, + /* dc */ INVALID, INVALID, INVALID, INVALID, + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, INVALID, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ INVALID, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__336[] = { + /* 0 */ 893, 897, +}; + +static const uint16_t ud_itab__337[] = { + /* 0 */ 883, 887, +}; + +static const uint16_t ud_itab__338[] = { + /* 0 */ GROUP(339), INVALID, +}; + +static const uint16_t ud_itab__339[] = { + /* 0 */ INVALID, INVALID, INVALID, 1401, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__340[] = { + /* 0 */ 1742, 1743, +}; + +static const uint16_t ud_itab__341[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, + /* 8 */ INVALID, INVALID, INVALID, INVALID, + /* c */ INVALID, INVALID, INVALID, INVALID, + /* 10 */ 933, 935, GROUP(342), 891, + /* 14 */ 1452, 1446, GROUP(343), 881, + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ INVALID, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ 859, 861, INVALID, 906, + /* 2c */ INVALID, INVALID, 1441, 128, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ INVALID, INVALID, INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ 899, 1390, INVALID, INVALID, + /* 54 */ 60, 64, 975, 1498, + /* 58 */ 26, 945, 140, 144, + /* 5c */ 1418, 817, 188, 801, + /* 60 */ 1208, 1211, 1214, 986, + /* 64 */ 1037, 1040, 1043, 992, + /* 68 */ 1199, 1202, 1205, 989, + /* 6c */ 1548, 1546, GROUP(344), 1518, + /* 70 */ 1540, GROUP(345), GROUP(347), GROUP(349), + /* 74 */ 1029, 1032, 1035, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ 1550, 1554, GROUP(351), 1516, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, 111, INVALID, + /* c4 */ 1061, 1054, 1380, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ 34, 1162, 1168, 1174, + /* d4 */ 1529, 1095, 919, GROUP(352), + /* d8 */ 1194, 1197, 1082, 1016, + /* dc */ 1011, 1014, 1077, 1019, + /* e0 */ 1022, 1149, 1155, 1025, + /* e4 */ 1089, 1091, 161, 903, + /* e8 */ 1188, 1191, 1079, 1117, + /* ec */ 1005, 1008, 1073, 1265, + /* f0 */ INVALID, GROUP(353), GROUP(354), GROUP(355), + /* f4 */ INVALID, 1071, 1132, GROUP(356), + /* f8 */ 1178, 1181, 1185, 1531, + /* fc */ 995, 999, 1002, INVALID, +}; + +static const uint16_t ud_itab__342[] = { + /* 0 */ 889, INVALID, +}; + +static const uint16_t ud_itab__343[] = { + /* 0 */ 879, INVALID, +}; + +static const uint16_t ud_itab__344[] = { + /* 0 */ 869, 871, 912, +}; + +static const uint16_t ud_itab__345[] = { + /* 0 */ INVALID, INVALID, 1164, INVALID, + /* 4 */ 1151, INVALID, GROUP(346), INVALID, +}; + +static const uint16_t ud_itab__346[] = { + /* 0 */ 1756, INVALID, +}; + +static const uint16_t ud_itab__347[] = { + /* 0 */ INVALID, INVALID, 1170, INVALID, + /* 4 */ 1158, INVALID, GROUP(348), INVALID, +}; + +static const uint16_t ud_itab__348[] = { + /* 0 */ 1758, INVALID, +}; + +static const uint16_t ud_itab__349[] = { + /* 0 */ INVALID, INVALID, 1176, 1544, + /* 4 */ INVALID, INVALID, GROUP(350), 1542, +}; + +static const uint16_t ud_itab__350[] = { + /* 0 */ 1760, INVALID, +}; + +static const uint16_t ud_itab__351[] = { + /* 0 */ 875, 877, 915, +}; + +static const uint16_t ud_itab__352[] = { + /* 0 */ 1085, INVALID, +}; + +static const uint16_t ud_itab__353[] = { + /* 0 */ 1755, INVALID, +}; + +static const uint16_t ud_itab__354[] = { + /* 0 */ 1757, INVALID, +}; + +static const uint16_t ud_itab__355[] = { + /* 0 */ 1759, INVALID, +}; + +static const uint16_t ud_itab__356[] = { + /* 0 */ INVALID, 1520, +}; + +static const uint16_t ud_itab__357[] = { + /* 0 */ 1584, 1587, 1590, 1593, + /* 4 */ 1596, 1599, 1602, 1605, + /* 8 */ 1608, 1614, 1611, 1617, + /* c */ GROUP(358), GROUP(359), GROUP(360), GROUP(361), + /* 10 */ INVALID, INVALID, INVALID, INVALID, + /* 14 */ INVALID, INVALID, INVALID, 1712, + /* 18 */ GROUP(362), GROUP(363), INVALID, INVALID, + /* 1c */ 1575, 1578, 1581, INVALID, + /* 20 */ 1686, 1688, 1690, 1692, + /* 24 */ 1694, INVALID, INVALID, INVALID, + /* 28 */ 1623, 1709, 1682, 1684, + /* 2c */ GROUP(365), GROUP(366), GROUP(367), GROUP(368), + /* 30 */ 1697, 1699, 1701, 1703, + /* 34 */ 1705, 1707, INVALID, 1718, + /* 38 */ 1625, 1627, 1629, 1631, + /* 3c */ 1633, 1635, 1639, 1637, + /* 40 */ 1641, 1643, INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ INVALID, INVALID, INVALID, INVALID, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ INVALID, INVALID, INVALID, INVALID, + /* 5c */ INVALID, INVALID, INVALID, INVALID, + /* 60 */ INVALID, INVALID, INVALID, INVALID, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ INVALID, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, INVALID, INVALID, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, INVALID, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, 46, + /* dc */ 42, 44, 38, 40, + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, INVALID, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ INVALID, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__358[] = { + /* 0 */ 1737, INVALID, +}; + +static const uint16_t ud_itab__359[] = { + /* 0 */ 1735, INVALID, +}; + +static const uint16_t ud_itab__360[] = { + /* 0 */ 1740, INVALID, +}; + +static const uint16_t ud_itab__361[] = { + /* 0 */ 1741, INVALID, +}; + +static const uint16_t ud_itab__362[] = { + /* 0 */ 1727, INVALID, +}; + +static const uint16_t ud_itab__363[] = { + /* 0 */ GROUP(364), INVALID, +}; + +static const uint16_t ud_itab__364[] = { + /* 0 */ INVALID, 1728, +}; + +static const uint16_t ud_itab__365[] = { + /* 0 */ 1731, INVALID, +}; + +static const uint16_t ud_itab__366[] = { + /* 0 */ 1733, INVALID, +}; + +static const uint16_t ud_itab__367[] = { + /* 0 */ 1732, INVALID, +}; + +static const uint16_t ud_itab__368[] = { + /* 0 */ 1734, INVALID, +}; + +static const uint16_t ud_itab__369[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ GROUP(370), GROUP(371), GROUP(372), INVALID, + /* 8 */ 1645, 1647, 1649, 1651, + /* c */ 1655, 1653, 1678, 1620, + /* 10 */ INVALID, INVALID, INVALID, INVALID, + /* 14 */ GROUP(374), 1057, GROUP(375), 202, + /* 18 */ GROUP(379), GROUP(381), INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ GROUP(383), 1558, GROUP(385), INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ INVALID, INVALID, INVALID, INVALID, + /* 2c */ INVALID, INVALID, INVALID, INVALID, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ 198, 196, 1680, INVALID, + /* 44 */ 1513, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, GROUP(391), GROUP(392), + /* 4c */ GROUP(393), INVALID, INVALID, INVALID, + /* 50 */ INVALID, INVALID, INVALID, INVALID, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ INVALID, INVALID, INVALID, INVALID, + /* 5c */ INVALID, INVALID, INVALID, INVALID, + /* 60 */ 1716, 1714, 1722, 1720, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ INVALID, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, INVALID, INVALID, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, INVALID, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, INVALID, + /* dc */ INVALID, INVALID, INVALID, 48, + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, INVALID, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ INVALID, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__370[] = { + /* 0 */ 1738, INVALID, +}; + +static const uint16_t ud_itab__371[] = { + /* 0 */ 1736, INVALID, +}; + +static const uint16_t ud_itab__372[] = { + /* 0 */ GROUP(373), INVALID, +}; + +static const uint16_t ud_itab__373[] = { + /* 0 */ INVALID, 1739, +}; + +static const uint16_t ud_itab__374[] = { + /* 0 */ 1046, INVALID, +}; + +static const uint16_t ud_itab__375[] = { + /* 0 */ GROUP(376), GROUP(377), GROUP(378), +}; + +static const uint16_t ud_itab__376[] = { + /* 0 */ 1048, INVALID, +}; + +static const uint16_t ud_itab__377[] = { + /* 0 */ 1050, INVALID, +}; + +static const uint16_t ud_itab__378[] = { + /* 0 */ INVALID, 1052, +}; + +static const uint16_t ud_itab__379[] = { + /* 0 */ GROUP(380), INVALID, +}; + +static const uint16_t ud_itab__380[] = { + /* 0 */ INVALID, 1730, +}; + +static const uint16_t ud_itab__381[] = { + /* 0 */ GROUP(382), INVALID, +}; + +static const uint16_t ud_itab__382[] = { + /* 0 */ INVALID, 1729, +}; + +static const uint16_t ud_itab__383[] = { + /* 0 */ GROUP(384), INVALID, +}; + +static const uint16_t ud_itab__384[] = { + /* 0 */ 1065, INVALID, +}; + +static const uint16_t ud_itab__385[] = { + /* 0 */ GROUP(386), GROUP(388), +}; + +static const uint16_t ud_itab__386[] = { + /* 0 */ GROUP(387), INVALID, +}; + +static const uint16_t ud_itab__387[] = { + /* 0 */ 1066, INVALID, +}; + +static const uint16_t ud_itab__388[] = { + /* 0 */ GROUP(389), GROUP(390), +}; + +static const uint16_t ud_itab__389[] = { + /* 0 */ 1067, INVALID, +}; + +static const uint16_t ud_itab__390[] = { + /* 0 */ 1068, INVALID, +}; + +static const uint16_t ud_itab__391[] = { + /* 0 */ 1745, INVALID, +}; + +static const uint16_t ud_itab__392[] = { + /* 0 */ 1744, INVALID, +}; + +static const uint16_t ud_itab__393[] = { + /* 0 */ 1754, INVALID, +}; + +static const uint16_t ud_itab__394[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, + /* 8 */ INVALID, INVALID, INVALID, INVALID, + /* c */ INVALID, INVALID, INVALID, INVALID, + /* 10 */ GROUP(395), GROUP(396), GROUP(397), INVALID, + /* 14 */ INVALID, INVALID, GROUP(398), INVALID, + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ INVALID, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ INVALID, INVALID, 155, INVALID, + /* 2c */ 169, 159, INVALID, INVALID, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ INVALID, INVALID, INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ INVALID, 1394, 1309, 1294, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ 32, 951, 157, 164, + /* 5c */ 1424, 823, 194, 807, + /* 60 */ INVALID, INVALID, INVALID, INVALID, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, 1523, + /* 70 */ 1536, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ INVALID, INVALID, 917, 1525, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, 121, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ INVALID, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, INVALID, + /* dc */ INVALID, INVALID, INVALID, INVALID, + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, 133, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ INVALID, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__395[] = { + /* 0 */ 1751, 1750, +}; + +static const uint16_t ud_itab__396[] = { + /* 0 */ 1753, 1752, +}; + +static const uint16_t ud_itab__397[] = { + /* 0 */ 1572, 1570, +}; + +static const uint16_t ud_itab__398[] = { + /* 0 */ 1568, 1566, +}; + +static const uint16_t ud_itab__399[] = { + /* 0 */ INVALID, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, + /* 8 */ INVALID, INVALID, INVALID, INVALID, + /* c */ INVALID, INVALID, INVALID, INVALID, + /* 10 */ GROUP(402), GROUP(400), GROUP(401), INVALID, + /* 14 */ INVALID, INVALID, INVALID, INVALID, + /* 18 */ INVALID, INVALID, INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ INVALID, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ INVALID, INVALID, 153, INVALID, + /* 2c */ 167, 149, INVALID, INVALID, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, + /* 40 */ INVALID, INVALID, INVALID, INVALID, + /* 44 */ INVALID, INVALID, INVALID, INVALID, + /* 48 */ INVALID, INVALID, INVALID, INVALID, + /* 4c */ INVALID, INVALID, INVALID, INVALID, + /* 50 */ INVALID, 1392, INVALID, INVALID, + /* 54 */ INVALID, INVALID, INVALID, INVALID, + /* 58 */ 30, 949, 151, INVALID, + /* 5c */ 1422, 821, 192, 805, + /* 60 */ INVALID, INVALID, INVALID, INVALID, + /* 64 */ INVALID, INVALID, INVALID, INVALID, + /* 68 */ INVALID, INVALID, INVALID, INVALID, + /* 6c */ INVALID, INVALID, INVALID, INVALID, + /* 70 */ 1538, INVALID, INVALID, INVALID, + /* 74 */ INVALID, INVALID, INVALID, INVALID, + /* 78 */ INVALID, INVALID, INVALID, INVALID, + /* 7c */ 1552, 1556, INVALID, INVALID, + /* 80 */ INVALID, INVALID, INVALID, INVALID, + /* 84 */ INVALID, INVALID, INVALID, INVALID, + /* 88 */ INVALID, INVALID, INVALID, INVALID, + /* 8c */ INVALID, INVALID, INVALID, INVALID, + /* 90 */ INVALID, INVALID, INVALID, INVALID, + /* 94 */ INVALID, INVALID, INVALID, INVALID, + /* 98 */ INVALID, INVALID, INVALID, INVALID, + /* 9c */ INVALID, INVALID, INVALID, INVALID, + /* a0 */ INVALID, INVALID, INVALID, INVALID, + /* a4 */ INVALID, INVALID, INVALID, INVALID, + /* a8 */ INVALID, INVALID, INVALID, INVALID, + /* ac */ INVALID, INVALID, INVALID, INVALID, + /* b0 */ INVALID, INVALID, INVALID, INVALID, + /* b4 */ INVALID, INVALID, INVALID, INVALID, + /* b8 */ INVALID, INVALID, INVALID, INVALID, + /* bc */ INVALID, INVALID, INVALID, INVALID, + /* c0 */ INVALID, INVALID, 118, INVALID, + /* c4 */ INVALID, INVALID, INVALID, INVALID, + /* c8 */ INVALID, INVALID, INVALID, INVALID, + /* cc */ INVALID, INVALID, INVALID, INVALID, + /* d0 */ 36, INVALID, INVALID, INVALID, + /* d4 */ INVALID, INVALID, INVALID, INVALID, + /* d8 */ INVALID, INVALID, INVALID, INVALID, + /* dc */ INVALID, INVALID, INVALID, INVALID, + /* e0 */ INVALID, INVALID, INVALID, INVALID, + /* e4 */ INVALID, INVALID, 137, INVALID, + /* e8 */ INVALID, INVALID, INVALID, INVALID, + /* ec */ INVALID, INVALID, INVALID, INVALID, + /* f0 */ 1560, INVALID, INVALID, INVALID, + /* f4 */ INVALID, INVALID, INVALID, INVALID, + /* f8 */ INVALID, INVALID, INVALID, INVALID, + /* fc */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__400[] = { + /* 0 */ 1749, 1748, +}; + +static const uint16_t ud_itab__401[] = { + /* 0 */ 1564, 1562, +}; + +static const uint16_t ud_itab__402[] = { + /* 0 */ 1747, 1746, +}; + +static const uint16_t ud_itab__403[] = { + /* 0 */ GROUP(404), GROUP(335), INVALID, INVALID, + /* 4 */ INVALID, GROUP(341), GROUP(357), GROUP(369), + /* 8 */ INVALID, GROUP(394), INVALID, INVALID, + /* c */ INVALID, GROUP(399), INVALID, INVALID, +}; + +static const uint16_t ud_itab__404[] = { + /* 0 */ 769, INVALID, +}; + +static const uint16_t ud_itab__405[] = { + /* 0 */ 826, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__406[] = { + /* 0 */ 827, INVALID, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__407[] = { + /* 0 */ 715, INVALID, +}; + +static const uint16_t ud_itab__408[] = { + /* 0 */ 723, 724, 725, +}; + +static const uint16_t ud_itab__409[] = { + /* 0 */ 1280, 1285, 1269, 1273, + /* 4 */ 1326, 1333, 1320, 1314, +}; + +static const uint16_t ud_itab__410[] = { + /* 0 */ 1281, 1288, 1272, 1276, + /* 4 */ 1325, 1332, 1329, 1312, +}; + +static const uint16_t ud_itab__411[] = { + /* 0 */ 1282, 1289, 1270, 1277, + /* 4 */ 1324, 1331, 1321, 1316, +}; + +static const uint16_t ud_itab__412[] = { + /* 0 */ 1283, 1290, 1271, 1278, + /* 4 */ 1328, 1335, 1322, 1317, +}; + +static const uint16_t ud_itab__413[] = { + /* 0 */ 3, INVALID, +}; + +static const uint16_t ud_itab__414[] = { + /* 0 */ 2, INVALID, +}; + +static const uint16_t ud_itab__415[] = { + /* 0 */ 1311, INVALID, +}; + +static const uint16_t ud_itab__416[] = { + /* 0 */ GROUP(417), GROUP(418), +}; + +static const uint16_t ud_itab__417[] = { + /* 0 */ 206, 503, 307, 357, + /* 4 */ 587, 630, 387, 413, +}; + +static const uint16_t ud_itab__418[] = { + /* 0 */ 215, 216, 217, 218, + /* 4 */ 219, 220, 221, 222, + /* 8 */ 504, 505, 506, 507, + /* c */ 508, 509, 510, 511, + /* 10 */ 309, 310, 311, 312, + /* 14 */ 313, 314, 315, 316, + /* 18 */ 359, 360, 361, 362, + /* 1c */ 363, 364, 365, 366, + /* 20 */ 589, 590, 591, 592, + /* 24 */ 593, 594, 595, 596, + /* 28 */ 614, 615, 616, 617, + /* 2c */ 618, 619, 620, 621, + /* 30 */ 388, 389, 390, 391, + /* 34 */ 392, 393, 394, 395, + /* 38 */ 414, 415, 416, 417, + /* 3c */ 418, 419, 420, 421, +}; + +static const uint16_t ud_itab__419[] = { + /* 0 */ GROUP(420), GROUP(421), +}; + +static const uint16_t ud_itab__420[] = { + /* 0 */ 476, INVALID, 573, 540, + /* 4 */ 493, 492, 584, 583, +}; + +static const uint16_t ud_itab__421[] = { + /* 0 */ 477, 478, 479, 480, + /* 4 */ 481, 482, 483, 484, + /* 8 */ 658, 659, 660, 661, + /* c */ 662, 663, 664, 665, + /* 10 */ 522, INVALID, INVALID, INVALID, + /* 14 */ INVALID, INVALID, INVALID, INVALID, + /* 18 */ 549, 550, 551, 552, + /* 1c */ 553, 554, 555, 556, + /* 20 */ 233, 204, INVALID, INVALID, + /* 24 */ 639, 657, INVALID, INVALID, + /* 28 */ 485, 486, 487, 488, + /* 2c */ 489, 490, 491, INVALID, + /* 30 */ 203, 685, 529, 526, + /* 34 */ 684, 528, 377, 454, + /* 38 */ 527, 686, 537, 536, + /* 3c */ 530, 534, 535, 376, +}; + +static const uint16_t ud_itab__422[] = { + /* 0 */ GROUP(423), GROUP(424), +}; + +static const uint16_t ud_itab__423[] = { + /* 0 */ 456, 520, 448, 450, + /* 4 */ 462, 464, 460, 458, +}; + +static const uint16_t ud_itab__424[] = { + /* 0 */ 235, 236, 237, 238, + /* 4 */ 239, 240, 241, 242, + /* 8 */ 243, 244, 245, 246, + /* c */ 247, 248, 249, 250, + /* 10 */ 251, 252, 253, 254, + /* 14 */ 255, 256, 257, 258, + /* 18 */ 259, 260, 261, 262, + /* 1c */ 263, 264, 265, 266, + /* 20 */ INVALID, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ INVALID, 656, INVALID, INVALID, + /* 2c */ INVALID, INVALID, INVALID, INVALID, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__425[] = { + /* 0 */ GROUP(426), GROUP(427), +}; + +static const uint16_t ud_itab__426[] = { + /* 0 */ 453, 471, 467, 470, + /* 4 */ INVALID, 474, INVALID, 538, +}; + +static const uint16_t ud_itab__427[] = { + /* 0 */ 267, 268, 269, 270, + /* 4 */ 271, 272, 273, 274, + /* 8 */ 275, 276, 277, 278, + /* c */ 279, 280, 281, 282, + /* 10 */ 283, 284, 285, 286, + /* 14 */ 287, 288, 289, 290, + /* 18 */ 291, 292, 293, 294, + /* 1c */ 295, 296, 297, 298, + /* 20 */ 524, 523, 234, 455, + /* 24 */ 525, 532, INVALID, INVALID, + /* 28 */ 299, 300, 301, 302, + /* 2c */ 303, 304, 305, 306, + /* 30 */ 333, 334, 335, 336, + /* 34 */ 337, 338, 339, 340, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__428[] = { + /* 0 */ GROUP(429), GROUP(430), +}; + +static const uint16_t ud_itab__429[] = { + /* 0 */ 205, 494, 308, 358, + /* 4 */ 588, 613, 378, 404, +}; + +static const uint16_t ud_itab__430[] = { + /* 0 */ 207, 208, 209, 210, + /* 4 */ 211, 212, 213, 214, + /* 8 */ 495, 496, 497, 498, + /* c */ 499, 500, 501, 502, + /* 10 */ 317, 318, 319, 320, + /* 14 */ 321, 322, 323, 324, + /* 18 */ 325, 326, 327, 328, + /* 1c */ 329, 330, 331, 332, + /* 20 */ 622, 623, 624, 625, + /* 24 */ 626, 627, 628, 629, + /* 28 */ 597, 598, 599, 600, + /* 2c */ 601, 602, 603, 604, + /* 30 */ 405, 406, 407, 408, + /* 34 */ 409, 410, 411, 412, + /* 38 */ 379, 380, 381, 382, + /* 3c */ 383, 384, 385, 386, +}; + +static const uint16_t ud_itab__431[] = { + /* 0 */ GROUP(432), GROUP(433), +}; + +static const uint16_t ud_itab__432[] = { + /* 0 */ 475, 472, 574, 539, + /* 4 */ 531, INVALID, 533, 585, +}; + +static const uint16_t ud_itab__433[] = { + /* 0 */ 431, 432, 433, 434, + /* 4 */ 435, 436, 437, 438, + /* 8 */ 666, 667, 668, 669, + /* c */ 670, 671, 672, 673, + /* 10 */ 575, 576, 577, 578, + /* 14 */ 579, 580, 581, 582, + /* 18 */ 541, 542, 543, 544, + /* 1c */ 545, 546, 547, 548, + /* 20 */ 640, 641, 642, 643, + /* 24 */ 644, 645, 646, 647, + /* 28 */ 648, 649, 650, 651, + /* 2c */ 652, 653, 654, 655, + /* 30 */ INVALID, INVALID, INVALID, INVALID, + /* 34 */ INVALID, INVALID, INVALID, INVALID, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__434[] = { + /* 0 */ GROUP(435), GROUP(436), +}; + +static const uint16_t ud_itab__435[] = { + /* 0 */ 457, 521, 447, 449, + /* 4 */ 463, 465, 461, 459, +}; + +static const uint16_t ud_itab__436[] = { + /* 0 */ 223, 224, 225, 226, + /* 4 */ 227, 228, 229, 230, + /* 8 */ 512, 513, 514, 515, + /* c */ 516, 517, 518, 519, + /* 10 */ 367, 368, 369, 370, + /* 14 */ 371, 372, 373, 374, + /* 18 */ INVALID, 375, INVALID, INVALID, + /* 1c */ INVALID, INVALID, INVALID, INVALID, + /* 20 */ 631, 632, 633, 634, + /* 24 */ 635, 636, 637, 638, + /* 28 */ 605, 606, 607, 608, + /* 2c */ 609, 610, 611, 612, + /* 30 */ 422, 423, 424, 425, + /* 34 */ 426, 427, 428, 429, + /* 38 */ 396, 397, 398, 399, + /* 3c */ 400, 401, 402, 403, +}; + +static const uint16_t ud_itab__437[] = { + /* 0 */ GROUP(438), GROUP(439), +}; + +static const uint16_t ud_itab__438[] = { + /* 0 */ 451, 473, 466, 468, + /* 4 */ 231, 452, 232, 469, +}; + +static const uint16_t ud_itab__439[] = { + /* 0 */ 439, 440, 441, 442, + /* 4 */ 443, 444, 445, 446, + /* 8 */ 674, 675, 676, 677, + /* c */ 678, 679, 680, 681, + /* 10 */ 557, 558, 559, 560, + /* 14 */ 561, 562, 563, 564, + /* 18 */ 565, 566, 567, 568, + /* 1c */ 569, 570, 571, 572, + /* 20 */ 586, INVALID, INVALID, INVALID, + /* 24 */ INVALID, INVALID, INVALID, INVALID, + /* 28 */ 341, 342, 343, 344, + /* 2c */ 345, 346, 347, 348, + /* 30 */ 349, 350, 351, 352, + /* 34 */ 353, 354, 355, 356, + /* 38 */ INVALID, INVALID, INVALID, INVALID, + /* 3c */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__440[] = { + /* 0 */ 758, 759, 760, +}; + +static const uint16_t ud_itab__441[] = { + /* 0 */ 764, INVALID, +}; + +static const uint16_t ud_itab__442[] = { + /* 0 */ 1432, 1437, 962, 953, + /* 4 */ 942, 695, 186, 689, +}; + +static const uint16_t ud_itab__443[] = { + /* 0 */ 1438, 1439, 963, 954, + /* 4 */ 943, 696, 185, 688, +}; + +static const uint16_t ud_itab__444[] = { + /* 0 */ 708, 183, INVALID, INVALID, + /* 4 */ INVALID, INVALID, INVALID, INVALID, +}; + +static const uint16_t ud_itab__445[] = { + /* 0 */ 707, 184, GROUP(446), 71, + /* 4 */ 761, 762, 1255, INVALID, +}; + +static const uint16_t ud_itab__446[] = { + /* 0 */ 69, 70, +}; + + +struct ud_lookup_table_list_entry ud_lookup_table_list[] = { + /* 000 */ { ud_itab__0, UD_TAB__OPC_TABLE, "opctbl" }, + /* 001 */ { ud_itab__1, UD_TAB__OPC_MODE, "/m" }, + /* 002 */ { ud_itab__2, UD_TAB__OPC_MODE, "/m" }, + /* 003 */ { ud_itab__3, UD_TAB__OPC_MODE, "/m" }, + /* 004 */ { ud_itab__4, UD_TAB__OPC_TABLE, "opctbl" }, + /* 005 */ { ud_itab__5, UD_TAB__OPC_REG, "/reg" }, + /* 006 */ { ud_itab__6, UD_TAB__OPC_MOD, "/mod" }, + /* 007 */ { ud_itab__7, UD_TAB__OPC_REG, "/reg" }, + /* 008 */ { ud_itab__8, UD_TAB__OPC_REG, "/reg" }, + /* 009 */ { ud_itab__9, UD_TAB__OPC_RM, "/rm" }, + /* 010 */ { ud_itab__10, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 011 */ { ud_itab__11, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 012 */ { ud_itab__12, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 013 */ { ud_itab__13, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 014 */ { ud_itab__14, UD_TAB__OPC_RM, "/rm" }, + /* 015 */ { ud_itab__15, UD_TAB__OPC_RM, "/rm" }, + /* 016 */ { ud_itab__16, UD_TAB__OPC_RM, "/rm" }, + /* 017 */ { ud_itab__17, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 018 */ { ud_itab__18, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 019 */ { ud_itab__19, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 020 */ { ud_itab__20, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 021 */ { ud_itab__21, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 022 */ { ud_itab__22, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 023 */ { ud_itab__23, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 024 */ { ud_itab__24, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 025 */ { ud_itab__25, UD_TAB__OPC_RM, "/rm" }, + /* 026 */ { ud_itab__26, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 027 */ { ud_itab__27, UD_TAB__OPC_REG, "/reg" }, + /* 028 */ { ud_itab__28, UD_TAB__OPC_3DNOW, "/3dnow" }, + /* 029 */ { ud_itab__29, UD_TAB__OPC_SSE, "/sse" }, + /* 030 */ { ud_itab__30, UD_TAB__OPC_SSE, "/sse" }, + /* 031 */ { ud_itab__31, UD_TAB__OPC_MOD, "/mod" }, + /* 032 */ { ud_itab__32, UD_TAB__OPC_SSE, "/sse" }, + /* 033 */ { ud_itab__33, UD_TAB__OPC_SSE, "/sse" }, + /* 034 */ { ud_itab__34, UD_TAB__OPC_SSE, "/sse" }, + /* 035 */ { ud_itab__35, UD_TAB__OPC_SSE, "/sse" }, + /* 036 */ { ud_itab__36, UD_TAB__OPC_SSE, "/sse" }, + /* 037 */ { ud_itab__37, UD_TAB__OPC_MOD, "/mod" }, + /* 038 */ { ud_itab__38, UD_TAB__OPC_SSE, "/sse" }, + /* 039 */ { ud_itab__39, UD_TAB__OPC_SSE, "/sse" }, + /* 040 */ { ud_itab__40, UD_TAB__OPC_SSE, "/sse" }, + /* 041 */ { ud_itab__41, UD_TAB__OPC_REG, "/reg" }, + /* 042 */ { ud_itab__42, UD_TAB__OPC_SSE, "/sse" }, + /* 043 */ { ud_itab__43, UD_TAB__OPC_SSE, "/sse" }, + /* 044 */ { ud_itab__44, UD_TAB__OPC_SSE, "/sse" }, + /* 045 */ { ud_itab__45, UD_TAB__OPC_SSE, "/sse" }, + /* 046 */ { ud_itab__46, UD_TAB__OPC_SSE, "/sse" }, + /* 047 */ { ud_itab__47, UD_TAB__OPC_SSE, "/sse" }, + /* 048 */ { ud_itab__48, UD_TAB__OPC_SSE, "/sse" }, + /* 049 */ { ud_itab__49, UD_TAB__OPC_SSE, "/sse" }, + /* 050 */ { ud_itab__50, UD_TAB__OPC_MODE, "/m" }, + /* 051 */ { ud_itab__51, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 052 */ { ud_itab__52, UD_TAB__OPC_MODE, "/m" }, + /* 053 */ { ud_itab__53, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 054 */ { ud_itab__54, UD_TAB__OPC_TABLE, "opctbl" }, + /* 055 */ { ud_itab__55, UD_TAB__OPC_SSE, "/sse" }, + /* 056 */ { ud_itab__56, UD_TAB__OPC_MODE, "/m" }, + /* 057 */ { ud_itab__57, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 058 */ { ud_itab__58, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 059 */ { ud_itab__59, UD_TAB__OPC_SSE, "/sse" }, + /* 060 */ { ud_itab__60, UD_TAB__OPC_MODE, "/m" }, + /* 061 */ { ud_itab__61, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 062 */ { ud_itab__62, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 063 */ { ud_itab__63, UD_TAB__OPC_SSE, "/sse" }, + /* 064 */ { ud_itab__64, UD_TAB__OPC_SSE, "/sse" }, + /* 065 */ { ud_itab__65, UD_TAB__OPC_SSE, "/sse" }, + /* 066 */ { ud_itab__66, UD_TAB__OPC_SSE, "/sse" }, + /* 067 */ { ud_itab__67, UD_TAB__OPC_SSE, "/sse" }, + /* 068 */ { ud_itab__68, UD_TAB__OPC_SSE, "/sse" }, + /* 069 */ { ud_itab__69, UD_TAB__OPC_SSE, "/sse" }, + /* 070 */ { ud_itab__70, UD_TAB__OPC_SSE, "/sse" }, + /* 071 */ { ud_itab__71, UD_TAB__OPC_SSE, "/sse" }, + /* 072 */ { ud_itab__72, UD_TAB__OPC_SSE, "/sse" }, + /* 073 */ { ud_itab__73, UD_TAB__OPC_SSE, "/sse" }, + /* 074 */ { ud_itab__74, UD_TAB__OPC_SSE, "/sse" }, + /* 075 */ { ud_itab__75, UD_TAB__OPC_SSE, "/sse" }, + /* 076 */ { ud_itab__76, UD_TAB__OPC_SSE, "/sse" }, + /* 077 */ { ud_itab__77, UD_TAB__OPC_SSE, "/sse" }, + /* 078 */ { ud_itab__78, UD_TAB__OPC_SSE, "/sse" }, + /* 079 */ { ud_itab__79, UD_TAB__OPC_SSE, "/sse" }, + /* 080 */ { ud_itab__80, UD_TAB__OPC_SSE, "/sse" }, + /* 081 */ { ud_itab__81, UD_TAB__OPC_SSE, "/sse" }, + /* 082 */ { ud_itab__82, UD_TAB__OPC_SSE, "/sse" }, + /* 083 */ { ud_itab__83, UD_TAB__OPC_SSE, "/sse" }, + /* 084 */ { ud_itab__84, UD_TAB__OPC_SSE, "/sse" }, + /* 085 */ { ud_itab__85, UD_TAB__OPC_SSE, "/sse" }, + /* 086 */ { ud_itab__86, UD_TAB__OPC_SSE, "/sse" }, + /* 087 */ { ud_itab__87, UD_TAB__OPC_SSE, "/sse" }, + /* 088 */ { ud_itab__88, UD_TAB__OPC_SSE, "/sse" }, + /* 089 */ { ud_itab__89, UD_TAB__OPC_SSE, "/sse" }, + /* 090 */ { ud_itab__90, UD_TAB__OPC_SSE, "/sse" }, + /* 091 */ { ud_itab__91, UD_TAB__OPC_SSE, "/sse" }, + /* 092 */ { ud_itab__92, UD_TAB__OPC_SSE, "/sse" }, + /* 093 */ { ud_itab__93, UD_TAB__OPC_SSE, "/sse" }, + /* 094 */ { ud_itab__94, UD_TAB__OPC_SSE, "/sse" }, + /* 095 */ { ud_itab__95, UD_TAB__OPC_SSE, "/sse" }, + /* 096 */ { ud_itab__96, UD_TAB__OPC_SSE, "/sse" }, + /* 097 */ { ud_itab__97, UD_TAB__OPC_SSE, "/sse" }, + /* 098 */ { ud_itab__98, UD_TAB__OPC_SSE, "/sse" }, + /* 099 */ { ud_itab__99, UD_TAB__OPC_SSE, "/sse" }, + /* 100 */ { ud_itab__100, UD_TAB__OPC_SSE, "/sse" }, + /* 101 */ { ud_itab__101, UD_TAB__OPC_SSE, "/sse" }, + /* 102 */ { ud_itab__102, UD_TAB__OPC_SSE, "/sse" }, + /* 103 */ { ud_itab__103, UD_TAB__OPC_SSE, "/sse" }, + /* 104 */ { ud_itab__104, UD_TAB__OPC_SSE, "/sse" }, + /* 105 */ { ud_itab__105, UD_TAB__OPC_SSE, "/sse" }, + /* 106 */ { ud_itab__106, UD_TAB__OPC_SSE, "/sse" }, + /* 107 */ { ud_itab__107, UD_TAB__OPC_SSE, "/sse" }, + /* 108 */ { ud_itab__108, UD_TAB__OPC_SSE, "/sse" }, + /* 109 */ { ud_itab__109, UD_TAB__OPC_SSE, "/sse" }, + /* 110 */ { ud_itab__110, UD_TAB__OPC_SSE, "/sse" }, + /* 111 */ { ud_itab__111, UD_TAB__OPC_SSE, "/sse" }, + /* 112 */ { ud_itab__112, UD_TAB__OPC_SSE, "/sse" }, + /* 113 */ { ud_itab__113, UD_TAB__OPC_SSE, "/sse" }, + /* 114 */ { ud_itab__114, UD_TAB__OPC_SSE, "/sse" }, + /* 115 */ { ud_itab__115, UD_TAB__OPC_SSE, "/sse" }, + /* 116 */ { ud_itab__116, UD_TAB__OPC_TABLE, "opctbl" }, + /* 117 */ { ud_itab__117, UD_TAB__OPC_SSE, "/sse" }, + /* 118 */ { ud_itab__118, UD_TAB__OPC_SSE, "/sse" }, + /* 119 */ { ud_itab__119, UD_TAB__OPC_SSE, "/sse" }, + /* 120 */ { ud_itab__120, UD_TAB__OPC_SSE, "/sse" }, + /* 121 */ { ud_itab__121, UD_TAB__OPC_SSE, "/sse" }, + /* 122 */ { ud_itab__122, UD_TAB__OPC_SSE, "/sse" }, + /* 123 */ { ud_itab__123, UD_TAB__OPC_SSE, "/sse" }, + /* 124 */ { ud_itab__124, UD_TAB__OPC_SSE, "/sse" }, + /* 125 */ { ud_itab__125, UD_TAB__OPC_SSE, "/sse" }, + /* 126 */ { ud_itab__126, UD_TAB__OPC_SSE, "/sse" }, + /* 127 */ { ud_itab__127, UD_TAB__OPC_SSE, "/sse" }, + /* 128 */ { ud_itab__128, UD_TAB__OPC_OSIZE, "/o" }, + /* 129 */ { ud_itab__129, UD_TAB__OPC_SSE, "/sse" }, + /* 130 */ { ud_itab__130, UD_TAB__OPC_SSE, "/sse" }, + /* 131 */ { ud_itab__131, UD_TAB__OPC_SSE, "/sse" }, + /* 132 */ { ud_itab__132, UD_TAB__OPC_SSE, "/sse" }, + /* 133 */ { ud_itab__133, UD_TAB__OPC_OSIZE, "/o" }, + /* 134 */ { ud_itab__134, UD_TAB__OPC_SSE, "/sse" }, + /* 135 */ { ud_itab__135, UD_TAB__OPC_SSE, "/sse" }, + /* 136 */ { ud_itab__136, UD_TAB__OPC_SSE, "/sse" }, + /* 137 */ { ud_itab__137, UD_TAB__OPC_SSE, "/sse" }, + /* 138 */ { ud_itab__138, UD_TAB__OPC_SSE, "/sse" }, + /* 139 */ { ud_itab__139, UD_TAB__OPC_SSE, "/sse" }, + /* 140 */ { ud_itab__140, UD_TAB__OPC_SSE, "/sse" }, + /* 141 */ { ud_itab__141, UD_TAB__OPC_SSE, "/sse" }, + /* 142 */ { ud_itab__142, UD_TAB__OPC_SSE, "/sse" }, + /* 143 */ { ud_itab__143, UD_TAB__OPC_SSE, "/sse" }, + /* 144 */ { ud_itab__144, UD_TAB__OPC_SSE, "/sse" }, + /* 145 */ { ud_itab__145, UD_TAB__OPC_SSE, "/sse" }, + /* 146 */ { ud_itab__146, UD_TAB__OPC_SSE, "/sse" }, + /* 147 */ { ud_itab__147, UD_TAB__OPC_SSE, "/sse" }, + /* 148 */ { ud_itab__148, UD_TAB__OPC_SSE, "/sse" }, + /* 149 */ { ud_itab__149, UD_TAB__OPC_SSE, "/sse" }, + /* 150 */ { ud_itab__150, UD_TAB__OPC_SSE, "/sse" }, + /* 151 */ { ud_itab__151, UD_TAB__OPC_SSE, "/sse" }, + /* 152 */ { ud_itab__152, UD_TAB__OPC_SSE, "/sse" }, + /* 153 */ { ud_itab__153, UD_TAB__OPC_SSE, "/sse" }, + /* 154 */ { ud_itab__154, UD_TAB__OPC_SSE, "/sse" }, + /* 155 */ { ud_itab__155, UD_TAB__OPC_SSE, "/sse" }, + /* 156 */ { ud_itab__156, UD_TAB__OPC_SSE, "/sse" }, + /* 157 */ { ud_itab__157, UD_TAB__OPC_SSE, "/sse" }, + /* 158 */ { ud_itab__158, UD_TAB__OPC_SSE, "/sse" }, + /* 159 */ { ud_itab__159, UD_TAB__OPC_SSE, "/sse" }, + /* 160 */ { ud_itab__160, UD_TAB__OPC_SSE, "/sse" }, + /* 161 */ { ud_itab__161, UD_TAB__OPC_SSE, "/sse" }, + /* 162 */ { ud_itab__162, UD_TAB__OPC_SSE, "/sse" }, + /* 163 */ { ud_itab__163, UD_TAB__OPC_SSE, "/sse" }, + /* 164 */ { ud_itab__164, UD_TAB__OPC_SSE, "/sse" }, + /* 165 */ { ud_itab__165, UD_TAB__OPC_SSE, "/sse" }, + /* 166 */ { ud_itab__166, UD_TAB__OPC_SSE, "/sse" }, + /* 167 */ { ud_itab__167, UD_TAB__OPC_SSE, "/sse" }, + /* 168 */ { ud_itab__168, UD_TAB__OPC_SSE, "/sse" }, + /* 169 */ { ud_itab__169, UD_TAB__OPC_SSE, "/sse" }, + /* 170 */ { ud_itab__170, UD_TAB__OPC_SSE, "/sse" }, + /* 171 */ { ud_itab__171, UD_TAB__OPC_SSE, "/sse" }, + /* 172 */ { ud_itab__172, UD_TAB__OPC_SSE, "/sse" }, + /* 173 */ { ud_itab__173, UD_TAB__OPC_SSE, "/sse" }, + /* 174 */ { ud_itab__174, UD_TAB__OPC_OSIZE, "/o" }, + /* 175 */ { ud_itab__175, UD_TAB__OPC_OSIZE, "/o" }, + /* 176 */ { ud_itab__176, UD_TAB__OPC_SSE, "/sse" }, + /* 177 */ { ud_itab__177, UD_TAB__OPC_SSE, "/sse" }, + /* 178 */ { ud_itab__178, UD_TAB__OPC_REG, "/reg" }, + /* 179 */ { ud_itab__179, UD_TAB__OPC_SSE, "/sse" }, + /* 180 */ { ud_itab__180, UD_TAB__OPC_SSE, "/sse" }, + /* 181 */ { ud_itab__181, UD_TAB__OPC_SSE, "/sse" }, + /* 182 */ { ud_itab__182, UD_TAB__OPC_REG, "/reg" }, + /* 183 */ { ud_itab__183, UD_TAB__OPC_SSE, "/sse" }, + /* 184 */ { ud_itab__184, UD_TAB__OPC_SSE, "/sse" }, + /* 185 */ { ud_itab__185, UD_TAB__OPC_SSE, "/sse" }, + /* 186 */ { ud_itab__186, UD_TAB__OPC_REG, "/reg" }, + /* 187 */ { ud_itab__187, UD_TAB__OPC_SSE, "/sse" }, + /* 188 */ { ud_itab__188, UD_TAB__OPC_SSE, "/sse" }, + /* 189 */ { ud_itab__189, UD_TAB__OPC_SSE, "/sse" }, + /* 190 */ { ud_itab__190, UD_TAB__OPC_SSE, "/sse" }, + /* 191 */ { ud_itab__191, UD_TAB__OPC_SSE, "/sse" }, + /* 192 */ { ud_itab__192, UD_TAB__OPC_SSE, "/sse" }, + /* 193 */ { ud_itab__193, UD_TAB__OPC_SSE, "/sse" }, + /* 194 */ { ud_itab__194, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 195 */ { ud_itab__195, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 196 */ { ud_itab__196, UD_TAB__OPC_SSE, "/sse" }, + /* 197 */ { ud_itab__197, UD_TAB__OPC_SSE, "/sse" }, + /* 198 */ { ud_itab__198, UD_TAB__OPC_SSE, "/sse" }, + /* 199 */ { ud_itab__199, UD_TAB__OPC_OSIZE, "/o" }, + /* 200 */ { ud_itab__200, UD_TAB__OPC_OSIZE, "/o" }, + /* 201 */ { ud_itab__201, UD_TAB__OPC_SSE, "/sse" }, + /* 202 */ { ud_itab__202, UD_TAB__OPC_MOD, "/mod" }, + /* 203 */ { ud_itab__203, UD_TAB__OPC_REG, "/reg" }, + /* 204 */ { ud_itab__204, UD_TAB__OPC_RM, "/rm" }, + /* 205 */ { ud_itab__205, UD_TAB__OPC_RM, "/rm" }, + /* 206 */ { ud_itab__206, UD_TAB__OPC_RM, "/rm" }, + /* 207 */ { ud_itab__207, UD_TAB__OPC_MOD, "/mod" }, + /* 208 */ { ud_itab__208, UD_TAB__OPC_REG, "/reg" }, + /* 209 */ { ud_itab__209, UD_TAB__OPC_RM, "/rm" }, + /* 210 */ { ud_itab__210, UD_TAB__OPC_RM, "/rm" }, + /* 211 */ { ud_itab__211, UD_TAB__OPC_RM, "/rm" }, + /* 212 */ { ud_itab__212, UD_TAB__OPC_RM, "/rm" }, + /* 213 */ { ud_itab__213, UD_TAB__OPC_RM, "/rm" }, + /* 214 */ { ud_itab__214, UD_TAB__OPC_RM, "/rm" }, + /* 215 */ { ud_itab__215, UD_TAB__OPC_MOD, "/mod" }, + /* 216 */ { ud_itab__216, UD_TAB__OPC_REG, "/reg" }, + /* 217 */ { ud_itab__217, UD_TAB__OPC_REG, "/reg" }, + /* 218 */ { ud_itab__218, UD_TAB__OPC_RM, "/rm" }, + /* 219 */ { ud_itab__219, UD_TAB__OPC_RM, "/rm" }, + /* 220 */ { ud_itab__220, UD_TAB__OPC_RM, "/rm" }, + /* 221 */ { ud_itab__221, UD_TAB__OPC_SSE, "/sse" }, + /* 222 */ { ud_itab__222, UD_TAB__OPC_REG, "/reg" }, + /* 223 */ { ud_itab__223, UD_TAB__OPC_SSE, "/sse" }, + /* 224 */ { ud_itab__224, UD_TAB__OPC_SSE, "/sse" }, + /* 225 */ { ud_itab__225, UD_TAB__OPC_SSE, "/sse" }, + /* 226 */ { ud_itab__226, UD_TAB__OPC_SSE, "/sse" }, + /* 227 */ { ud_itab__227, UD_TAB__OPC_MOD, "/mod" }, + /* 228 */ { ud_itab__228, UD_TAB__OPC_REG, "/reg" }, + /* 229 */ { ud_itab__229, UD_TAB__OPC_OSIZE, "/o" }, + /* 230 */ { ud_itab__230, UD_TAB__OPC_SSE, "/sse" }, + /* 231 */ { ud_itab__231, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 232 */ { ud_itab__232, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 233 */ { ud_itab__233, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 234 */ { ud_itab__234, UD_TAB__OPC_VENDOR, "/vendor" }, + /* 235 */ { ud_itab__235, UD_TAB__OPC_REG, "/reg" }, + /* 236 */ { ud_itab__236, UD_TAB__OPC_SSE, "/sse" }, + /* 237 */ { ud_itab__237, UD_TAB__OPC_SSE, "/sse" }, + /* 238 */ { ud_itab__238, UD_TAB__OPC_SSE, "/sse" }, + /* 239 */ { ud_itab__239, UD_TAB__OPC_SSE, "/sse" }, + /* 240 */ { ud_itab__240, UD_TAB__OPC_SSE, "/sse" }, + /* 241 */ { ud_itab__241, UD_TAB__OPC_SSE, "/sse" }, + /* 242 */ { ud_itab__242, UD_TAB__OPC_SSE, "/sse" }, + /* 243 */ { ud_itab__243, UD_TAB__OPC_SSE, "/sse" }, + /* 244 */ { ud_itab__244, UD_TAB__OPC_SSE, "/sse" }, + /* 245 */ { ud_itab__245, UD_TAB__OPC_SSE, "/sse" }, + /* 246 */ { ud_itab__246, UD_TAB__OPC_SSE, "/sse" }, + /* 247 */ { ud_itab__247, UD_TAB__OPC_SSE, "/sse" }, + /* 248 */ { ud_itab__248, UD_TAB__OPC_SSE, "/sse" }, + /* 249 */ { ud_itab__249, UD_TAB__OPC_SSE, "/sse" }, + /* 250 */ { ud_itab__250, UD_TAB__OPC_SSE, "/sse" }, + /* 251 */ { ud_itab__251, UD_TAB__OPC_SSE, "/sse" }, + /* 252 */ { ud_itab__252, UD_TAB__OPC_SSE, "/sse" }, + /* 253 */ { ud_itab__253, UD_TAB__OPC_SSE, "/sse" }, + /* 254 */ { ud_itab__254, UD_TAB__OPC_SSE, "/sse" }, + /* 255 */ { ud_itab__255, UD_TAB__OPC_SSE, "/sse" }, + /* 256 */ { ud_itab__256, UD_TAB__OPC_SSE, "/sse" }, + /* 257 */ { ud_itab__257, UD_TAB__OPC_SSE, "/sse" }, + /* 258 */ { ud_itab__258, UD_TAB__OPC_SSE, "/sse" }, + /* 259 */ { ud_itab__259, UD_TAB__OPC_SSE, "/sse" }, + /* 260 */ { ud_itab__260, UD_TAB__OPC_SSE, "/sse" }, + /* 261 */ { ud_itab__261, UD_TAB__OPC_SSE, "/sse" }, + /* 262 */ { ud_itab__262, UD_TAB__OPC_SSE, "/sse" }, + /* 263 */ { ud_itab__263, UD_TAB__OPC_SSE, "/sse" }, + /* 264 */ { ud_itab__264, UD_TAB__OPC_SSE, "/sse" }, + /* 265 */ { ud_itab__265, UD_TAB__OPC_SSE, "/sse" }, + /* 266 */ { ud_itab__266, UD_TAB__OPC_SSE, "/sse" }, + /* 267 */ { ud_itab__267, UD_TAB__OPC_SSE, "/sse" }, + /* 268 */ { ud_itab__268, UD_TAB__OPC_SSE, "/sse" }, + /* 269 */ { ud_itab__269, UD_TAB__OPC_SSE, "/sse" }, + /* 270 */ { ud_itab__270, UD_TAB__OPC_SSE, "/sse" }, + /* 271 */ { ud_itab__271, UD_TAB__OPC_SSE, "/sse" }, + /* 272 */ { ud_itab__272, UD_TAB__OPC_SSE, "/sse" }, + /* 273 */ { ud_itab__273, UD_TAB__OPC_SSE, "/sse" }, + /* 274 */ { ud_itab__274, UD_TAB__OPC_SSE, "/sse" }, + /* 275 */ { ud_itab__275, UD_TAB__OPC_MOD, "/mod" }, + /* 276 */ { ud_itab__276, UD_TAB__OPC_SSE, "/sse" }, + /* 277 */ { ud_itab__277, UD_TAB__OPC_SSE, "/sse" }, + /* 278 */ { ud_itab__278, UD_TAB__OPC_SSE, "/sse" }, + /* 279 */ { ud_itab__279, UD_TAB__OPC_SSE, "/sse" }, + /* 280 */ { ud_itab__280, UD_TAB__OPC_SSE, "/sse" }, + /* 281 */ { ud_itab__281, UD_TAB__OPC_SSE, "/sse" }, + /* 282 */ { ud_itab__282, UD_TAB__OPC_SSE, "/sse" }, + /* 283 */ { ud_itab__283, UD_TAB__OPC_SSE, "/sse" }, + /* 284 */ { ud_itab__284, UD_TAB__OPC_MODE, "/m" }, + /* 285 */ { ud_itab__285, UD_TAB__OPC_MODE, "/m" }, + /* 286 */ { ud_itab__286, UD_TAB__OPC_MODE, "/m" }, + /* 287 */ { ud_itab__287, UD_TAB__OPC_MODE, "/m" }, + /* 288 */ { ud_itab__288, UD_TAB__OPC_MODE, "/m" }, + /* 289 */ { ud_itab__289, UD_TAB__OPC_MODE, "/m" }, + /* 290 */ { ud_itab__290, UD_TAB__OPC_MODE, "/m" }, + /* 291 */ { ud_itab__291, UD_TAB__OPC_MODE, "/m" }, + /* 292 */ { ud_itab__292, UD_TAB__OPC_OSIZE, "/o" }, + /* 293 */ { ud_itab__293, UD_TAB__OPC_MODE, "/m" }, + /* 294 */ { ud_itab__294, UD_TAB__OPC_MODE, "/m" }, + /* 295 */ { ud_itab__295, UD_TAB__OPC_OSIZE, "/o" }, + /* 296 */ { ud_itab__296, UD_TAB__OPC_MODE, "/m" }, + /* 297 */ { ud_itab__297, UD_TAB__OPC_MODE, "/m" }, + /* 298 */ { ud_itab__298, UD_TAB__OPC_MODE, "/m" }, + /* 299 */ { ud_itab__299, UD_TAB__OPC_MODE, "/m" }, + /* 300 */ { ud_itab__300, UD_TAB__OPC_OSIZE, "/o" }, + /* 301 */ { ud_itab__301, UD_TAB__OPC_OSIZE, "/o" }, + /* 302 */ { ud_itab__302, UD_TAB__OPC_REG, "/reg" }, + /* 303 */ { ud_itab__303, UD_TAB__OPC_REG, "/reg" }, + /* 304 */ { ud_itab__304, UD_TAB__OPC_REG, "/reg" }, + /* 305 */ { ud_itab__305, UD_TAB__OPC_MODE, "/m" }, + /* 306 */ { ud_itab__306, UD_TAB__OPC_MODE, "/m" }, + /* 307 */ { ud_itab__307, UD_TAB__OPC_MODE, "/m" }, + /* 308 */ { ud_itab__308, UD_TAB__OPC_MODE, "/m" }, + /* 309 */ { ud_itab__309, UD_TAB__OPC_MODE, "/m" }, + /* 310 */ { ud_itab__310, UD_TAB__OPC_MODE, "/m" }, + /* 311 */ { ud_itab__311, UD_TAB__OPC_MODE, "/m" }, + /* 312 */ { ud_itab__312, UD_TAB__OPC_MODE, "/m" }, + /* 313 */ { ud_itab__313, UD_TAB__OPC_REG, "/reg" }, + /* 314 */ { ud_itab__314, UD_TAB__OPC_REG, "/reg" }, + /* 315 */ { ud_itab__315, UD_TAB__OPC_OSIZE, "/o" }, + /* 316 */ { ud_itab__316, UD_TAB__OPC_OSIZE, "/o" }, + /* 317 */ { ud_itab__317, UD_TAB__OPC_MODE, "/m" }, + /* 318 */ { ud_itab__318, UD_TAB__OPC_OSIZE, "/o" }, + /* 319 */ { ud_itab__319, UD_TAB__OPC_MODE, "/m" }, + /* 320 */ { ud_itab__320, UD_TAB__OPC_MODE, "/m" }, + /* 321 */ { ud_itab__321, UD_TAB__OPC_MODE, "/m" }, + /* 322 */ { ud_itab__322, UD_TAB__OPC_OSIZE, "/o" }, + /* 323 */ { ud_itab__323, UD_TAB__OPC_MODE, "/m" }, + /* 324 */ { ud_itab__324, UD_TAB__OPC_MODE, "/m" }, + /* 325 */ { ud_itab__325, UD_TAB__OPC_MODE, "/m" }, + /* 326 */ { ud_itab__326, UD_TAB__OPC_OSIZE, "/o" }, + /* 327 */ { ud_itab__327, UD_TAB__OPC_OSIZE, "/o" }, + /* 328 */ { ud_itab__328, UD_TAB__OPC_OSIZE, "/o" }, + /* 329 */ { ud_itab__329, UD_TAB__OPC_OSIZE, "/o" }, + /* 330 */ { ud_itab__330, UD_TAB__OPC_OSIZE, "/o" }, + /* 331 */ { ud_itab__331, UD_TAB__OPC_REG, "/reg" }, + /* 332 */ { ud_itab__332, UD_TAB__OPC_REG, "/reg" }, + /* 333 */ { ud_itab__333, UD_TAB__OPC_VEX, "/vex" }, + /* 334 */ { ud_itab__334, UD_TAB__OPC_MODE, "/m" }, + /* 335 */ { ud_itab__335, UD_TAB__OPC_TABLE, "opctbl" }, + /* 336 */ { ud_itab__336, UD_TAB__OPC_MOD, "/mod" }, + /* 337 */ { ud_itab__337, UD_TAB__OPC_MOD, "/mod" }, + /* 338 */ { ud_itab__338, UD_TAB__OPC_MOD, "/mod" }, + /* 339 */ { ud_itab__339, UD_TAB__OPC_REG, "/reg" }, + /* 340 */ { ud_itab__340, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 341 */ { ud_itab__341, UD_TAB__OPC_TABLE, "opctbl" }, + /* 342 */ { ud_itab__342, UD_TAB__OPC_MOD, "/mod" }, + /* 343 */ { ud_itab__343, UD_TAB__OPC_MOD, "/mod" }, + /* 344 */ { ud_itab__344, UD_TAB__OPC_OSIZE, "/o" }, + /* 345 */ { ud_itab__345, UD_TAB__OPC_REG, "/reg" }, + /* 346 */ { ud_itab__346, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 347 */ { ud_itab__347, UD_TAB__OPC_REG, "/reg" }, + /* 348 */ { ud_itab__348, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 349 */ { ud_itab__349, UD_TAB__OPC_REG, "/reg" }, + /* 350 */ { ud_itab__350, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 351 */ { ud_itab__351, UD_TAB__OPC_OSIZE, "/o" }, + /* 352 */ { ud_itab__352, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 353 */ { ud_itab__353, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 354 */ { ud_itab__354, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 355 */ { ud_itab__355, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 356 */ { ud_itab__356, UD_TAB__OPC_MOD, "/mod" }, + /* 357 */ { ud_itab__357, UD_TAB__OPC_TABLE, "opctbl" }, + /* 358 */ { ud_itab__358, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 359 */ { ud_itab__359, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 360 */ { ud_itab__360, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 361 */ { ud_itab__361, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 362 */ { ud_itab__362, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 363 */ { ud_itab__363, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 364 */ { ud_itab__364, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 365 */ { ud_itab__365, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 366 */ { ud_itab__366, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 367 */ { ud_itab__367, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 368 */ { ud_itab__368, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 369 */ { ud_itab__369, UD_TAB__OPC_TABLE, "opctbl" }, + /* 370 */ { ud_itab__370, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 371 */ { ud_itab__371, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 372 */ { ud_itab__372, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 373 */ { ud_itab__373, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 374 */ { ud_itab__374, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 375 */ { ud_itab__375, UD_TAB__OPC_OSIZE, "/o" }, + /* 376 */ { ud_itab__376, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 377 */ { ud_itab__377, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 378 */ { ud_itab__378, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 379 */ { ud_itab__379, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 380 */ { ud_itab__380, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 381 */ { ud_itab__381, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 382 */ { ud_itab__382, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 383 */ { ud_itab__383, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 384 */ { ud_itab__384, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 385 */ { ud_itab__385, UD_TAB__OPC_MODE, "/m" }, + /* 386 */ { ud_itab__386, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 387 */ { ud_itab__387, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 388 */ { ud_itab__388, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 389 */ { ud_itab__389, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 390 */ { ud_itab__390, UD_TAB__OPC_VEX_L, "/vexl" }, + /* 391 */ { ud_itab__391, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 392 */ { ud_itab__392, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 393 */ { ud_itab__393, UD_TAB__OPC_VEX_W, "/vexw" }, + /* 394 */ { ud_itab__394, UD_TAB__OPC_TABLE, "opctbl" }, + /* 395 */ { ud_itab__395, UD_TAB__OPC_MOD, "/mod" }, + /* 396 */ { ud_itab__396, UD_TAB__OPC_MOD, "/mod" }, + /* 397 */ { ud_itab__397, UD_TAB__OPC_MOD, "/mod" }, + /* 398 */ { ud_itab__398, UD_TAB__OPC_MOD, "/mod" }, + /* 399 */ { ud_itab__399, UD_TAB__OPC_TABLE, "opctbl" }, + /* 400 */ { ud_itab__400, UD_TAB__OPC_MOD, "/mod" }, + /* 401 */ { ud_itab__401, UD_TAB__OPC_MOD, "/mod" }, + /* 402 */ { ud_itab__402, UD_TAB__OPC_MOD, "/mod" }, + /* 403 */ { ud_itab__403, UD_TAB__OPC_VEX, "/vex" }, + /* 404 */ { ud_itab__404, UD_TAB__OPC_MODE, "/m" }, + /* 405 */ { ud_itab__405, UD_TAB__OPC_REG, "/reg" }, + /* 406 */ { ud_itab__406, UD_TAB__OPC_REG, "/reg" }, + /* 407 */ { ud_itab__407, UD_TAB__OPC_MODE, "/m" }, + /* 408 */ { ud_itab__408, UD_TAB__OPC_OSIZE, "/o" }, + /* 409 */ { ud_itab__409, UD_TAB__OPC_REG, "/reg" }, + /* 410 */ { ud_itab__410, UD_TAB__OPC_REG, "/reg" }, + /* 411 */ { ud_itab__411, UD_TAB__OPC_REG, "/reg" }, + /* 412 */ { ud_itab__412, UD_TAB__OPC_REG, "/reg" }, + /* 413 */ { ud_itab__413, UD_TAB__OPC_MODE, "/m" }, + /* 414 */ { ud_itab__414, UD_TAB__OPC_MODE, "/m" }, + /* 415 */ { ud_itab__415, UD_TAB__OPC_MODE, "/m" }, + /* 416 */ { ud_itab__416, UD_TAB__OPC_MOD, "/mod" }, + /* 417 */ { ud_itab__417, UD_TAB__OPC_REG, "/reg" }, + /* 418 */ { ud_itab__418, UD_TAB__OPC_X87, "/x87" }, + /* 419 */ { ud_itab__419, UD_TAB__OPC_MOD, "/mod" }, + /* 420 */ { ud_itab__420, UD_TAB__OPC_REG, "/reg" }, + /* 421 */ { ud_itab__421, UD_TAB__OPC_X87, "/x87" }, + /* 422 */ { ud_itab__422, UD_TAB__OPC_MOD, "/mod" }, + /* 423 */ { ud_itab__423, UD_TAB__OPC_REG, "/reg" }, + /* 424 */ { ud_itab__424, UD_TAB__OPC_X87, "/x87" }, + /* 425 */ { ud_itab__425, UD_TAB__OPC_MOD, "/mod" }, + /* 426 */ { ud_itab__426, UD_TAB__OPC_REG, "/reg" }, + /* 427 */ { ud_itab__427, UD_TAB__OPC_X87, "/x87" }, + /* 428 */ { ud_itab__428, UD_TAB__OPC_MOD, "/mod" }, + /* 429 */ { ud_itab__429, UD_TAB__OPC_REG, "/reg" }, + /* 430 */ { ud_itab__430, UD_TAB__OPC_X87, "/x87" }, + /* 431 */ { ud_itab__431, UD_TAB__OPC_MOD, "/mod" }, + /* 432 */ { ud_itab__432, UD_TAB__OPC_REG, "/reg" }, + /* 433 */ { ud_itab__433, UD_TAB__OPC_X87, "/x87" }, + /* 434 */ { ud_itab__434, UD_TAB__OPC_MOD, "/mod" }, + /* 435 */ { ud_itab__435, UD_TAB__OPC_REG, "/reg" }, + /* 436 */ { ud_itab__436, UD_TAB__OPC_X87, "/x87" }, + /* 437 */ { ud_itab__437, UD_TAB__OPC_MOD, "/mod" }, + /* 438 */ { ud_itab__438, UD_TAB__OPC_REG, "/reg" }, + /* 439 */ { ud_itab__439, UD_TAB__OPC_X87, "/x87" }, + /* 440 */ { ud_itab__440, UD_TAB__OPC_ASIZE, "/a" }, + /* 441 */ { ud_itab__441, UD_TAB__OPC_MODE, "/m" }, + /* 442 */ { ud_itab__442, UD_TAB__OPC_REG, "/reg" }, + /* 443 */ { ud_itab__443, UD_TAB__OPC_REG, "/reg" }, + /* 444 */ { ud_itab__444, UD_TAB__OPC_REG, "/reg" }, + /* 445 */ { ud_itab__445, UD_TAB__OPC_REG, "/reg" }, + /* 446 */ { ud_itab__446, UD_TAB__OPC_MODE, "/m" }, +}; + +/* itab entry operand definitions (for readability) */ +#define O_AL { OP_AL, SZ_B } +#define O_AX { OP_AX, SZ_W } +#define O_Av { OP_A, SZ_V } +#define O_C { OP_C, SZ_NA } +#define O_CL { OP_CL, SZ_B } +#define O_CS { OP_CS, SZ_NA } +#define O_CX { OP_CX, SZ_W } +#define O_D { OP_D, SZ_NA } +#define O_DL { OP_DL, SZ_B } +#define O_DS { OP_DS, SZ_NA } +#define O_DX { OP_DX, SZ_W } +#define O_E { OP_E, SZ_NA } +#define O_ES { OP_ES, SZ_NA } +#define O_Eb { OP_E, SZ_B } +#define O_Ed { OP_E, SZ_D } +#define O_Eq { OP_E, SZ_Q } +#define O_Ev { OP_E, SZ_V } +#define O_Ew { OP_E, SZ_W } +#define O_Ey { OP_E, SZ_Y } +#define O_Ez { OP_E, SZ_Z } +#define O_FS { OP_FS, SZ_NA } +#define O_Fv { OP_F, SZ_V } +#define O_G { OP_G, SZ_NA } +#define O_GS { OP_GS, SZ_NA } +#define O_Gb { OP_G, SZ_B } +#define O_Gd { OP_G, SZ_D } +#define O_Gq { OP_G, SZ_Q } +#define O_Gv { OP_G, SZ_V } +#define O_Gw { OP_G, SZ_W } +#define O_Gy { OP_G, SZ_Y } +#define O_Gz { OP_G, SZ_Z } +#define O_H { OP_H, SZ_X } +#define O_Hqq { OP_H, SZ_QQ } +#define O_Hx { OP_H, SZ_X } +#define O_I1 { OP_I1, SZ_NA } +#define O_I3 { OP_I3, SZ_NA } +#define O_Ib { OP_I, SZ_B } +#define O_Iv { OP_I, SZ_V } +#define O_Iw { OP_I, SZ_W } +#define O_Iz { OP_I, SZ_Z } +#define O_Jb { OP_J, SZ_B } +#define O_Jv { OP_J, SZ_V } +#define O_Jz { OP_J, SZ_Z } +#define O_L { OP_L, SZ_O } +#define O_Lx { OP_L, SZ_X } +#define O_M { OP_M, SZ_NA } +#define O_Mb { OP_M, SZ_B } +#define O_MbRd { OP_MR, SZ_BD } +#define O_MbRv { OP_MR, SZ_BV } +#define O_Md { OP_M, SZ_D } +#define O_MdRy { OP_MR, SZ_DY } +#define O_MdU { OP_MU, SZ_DO } +#define O_Mdq { OP_M, SZ_DQ } +#define O_Mo { OP_M, SZ_O } +#define O_Mq { OP_M, SZ_Q } +#define O_MqU { OP_MU, SZ_QO } +#define O_Ms { OP_M, SZ_W } +#define O_Mt { OP_M, SZ_T } +#define O_Mv { OP_M, SZ_V } +#define O_Mw { OP_M, SZ_W } +#define O_MwRd { OP_MR, SZ_WD } +#define O_MwRv { OP_MR, SZ_WV } +#define O_MwRy { OP_MR, SZ_WY } +#define O_MwU { OP_MU, SZ_WO } +#define O_N { OP_N, SZ_Q } +#define O_NONE { OP_NONE, SZ_NA } +#define O_Ob { OP_O, SZ_B } +#define O_Ov { OP_O, SZ_V } +#define O_Ow { OP_O, SZ_W } +#define O_P { OP_P, SZ_Q } +#define O_Q { OP_Q, SZ_Q } +#define O_R { OP_R, SZ_RDQ } +#define O_R0b { OP_R0, SZ_B } +#define O_R0v { OP_R0, SZ_V } +#define O_R0w { OP_R0, SZ_W } +#define O_R0y { OP_R0, SZ_Y } +#define O_R0z { OP_R0, SZ_Z } +#define O_R1b { OP_R1, SZ_B } +#define O_R1v { OP_R1, SZ_V } +#define O_R1w { OP_R1, SZ_W } +#define O_R1y { OP_R1, SZ_Y } +#define O_R1z { OP_R1, SZ_Z } +#define O_R2b { OP_R2, SZ_B } +#define O_R2v { OP_R2, SZ_V } +#define O_R2w { OP_R2, SZ_W } +#define O_R2y { OP_R2, SZ_Y } +#define O_R2z { OP_R2, SZ_Z } +#define O_R3b { OP_R3, SZ_B } +#define O_R3v { OP_R3, SZ_V } +#define O_R3w { OP_R3, SZ_W } +#define O_R3y { OP_R3, SZ_Y } +#define O_R3z { OP_R3, SZ_Z } +#define O_R4b { OP_R4, SZ_B } +#define O_R4v { OP_R4, SZ_V } +#define O_R4w { OP_R4, SZ_W } +#define O_R4y { OP_R4, SZ_Y } +#define O_R4z { OP_R4, SZ_Z } +#define O_R5b { OP_R5, SZ_B } +#define O_R5v { OP_R5, SZ_V } +#define O_R5w { OP_R5, SZ_W } +#define O_R5y { OP_R5, SZ_Y } +#define O_R5z { OP_R5, SZ_Z } +#define O_R6b { OP_R6, SZ_B } +#define O_R6v { OP_R6, SZ_V } +#define O_R6w { OP_R6, SZ_W } +#define O_R6y { OP_R6, SZ_Y } +#define O_R6z { OP_R6, SZ_Z } +#define O_R7b { OP_R7, SZ_B } +#define O_R7v { OP_R7, SZ_V } +#define O_R7w { OP_R7, SZ_W } +#define O_R7y { OP_R7, SZ_Y } +#define O_R7z { OP_R7, SZ_Z } +#define O_S { OP_S, SZ_W } +#define O_SS { OP_SS, SZ_NA } +#define O_ST0 { OP_ST0, SZ_NA } +#define O_ST1 { OP_ST1, SZ_NA } +#define O_ST2 { OP_ST2, SZ_NA } +#define O_ST3 { OP_ST3, SZ_NA } +#define O_ST4 { OP_ST4, SZ_NA } +#define O_ST5 { OP_ST5, SZ_NA } +#define O_ST6 { OP_ST6, SZ_NA } +#define O_ST7 { OP_ST7, SZ_NA } +#define O_U { OP_U, SZ_O } +#define O_Ux { OP_U, SZ_X } +#define O_V { OP_V, SZ_DQ } +#define O_Vdq { OP_V, SZ_DQ } +#define O_Vqq { OP_V, SZ_QQ } +#define O_Vsd { OP_V, SZ_Q } +#define O_Vx { OP_V, SZ_X } +#define O_W { OP_W, SZ_DQ } +#define O_Wdq { OP_W, SZ_DQ } +#define O_Wqq { OP_W, SZ_QQ } +#define O_Wsd { OP_W, SZ_Q } +#define O_Wx { OP_W, SZ_X } +#define O_eAX { OP_eAX, SZ_Z } +#define O_eCX { OP_eCX, SZ_Z } +#define O_eDX { OP_eDX, SZ_Z } +#define O_rAX { OP_rAX, SZ_V } +#define O_rCX { OP_rCX, SZ_V } +#define O_rDX { OP_rDX, SZ_V } +#define O_sIb { OP_sI, SZ_B } +#define O_sIv { OP_sI, SZ_V } +#define O_sIz { OP_sI, SZ_Z } + +struct ud_itab_entry ud_itab[] = { + /* 0000 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0001 */ { UD_Iaaa, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0002 */ { UD_Iaad, O_Ib, O_NONE, O_NONE, O_NONE, P_none }, + /* 0003 */ { UD_Iaam, O_Ib, O_NONE, O_NONE, O_NONE, P_none }, + /* 0004 */ { UD_Iaas, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0005 */ { UD_Iadc, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0006 */ { UD_Iadc, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0007 */ { UD_Iadc, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0008 */ { UD_Iadc, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0009 */ { UD_Iadc, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 0010 */ { UD_Iadc, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0011 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0012 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0013 */ { UD_Iadc, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0014 */ { UD_Iadc, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0015 */ { UD_Iadd, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0016 */ { UD_Iadd, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0017 */ { UD_Iadd, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0018 */ { UD_Iadd, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0019 */ { UD_Iadd, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 0020 */ { UD_Iadd, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0021 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0022 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0023 */ { UD_Iadd, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0024 */ { UD_Iadd, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0025 */ { UD_Iaddpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0026 */ { UD_Ivaddpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0027 */ { UD_Iaddps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0028 */ { UD_Ivaddps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0029 */ { UD_Iaddsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0030 */ { UD_Ivaddsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0031 */ { UD_Iaddss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0032 */ { UD_Ivaddss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0033 */ { UD_Iaddsubpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0034 */ { UD_Ivaddsubpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0035 */ { UD_Iaddsubps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0036 */ { UD_Ivaddsubps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0037 */ { UD_Iaesdec, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0038 */ { UD_Ivaesdec, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0039 */ { UD_Iaesdeclast, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0040 */ { UD_Ivaesdeclast, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0041 */ { UD_Iaesenc, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0042 */ { UD_Ivaesenc, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0043 */ { UD_Iaesenclast, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0044 */ { UD_Ivaesenclast, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0045 */ { UD_Iaesimc, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0046 */ { UD_Ivaesimc, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0047 */ { UD_Iaeskeygenassist, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0048 */ { UD_Ivaeskeygenassist, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0049 */ { UD_Iand, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0050 */ { UD_Iand, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0051 */ { UD_Iand, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0052 */ { UD_Iand, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0053 */ { UD_Iand, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 0054 */ { UD_Iand, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0055 */ { UD_Iand, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0056 */ { UD_Iand, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0057 */ { UD_Iand, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0058 */ { UD_Iand, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0059 */ { UD_Iandpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0060 */ { UD_Ivandpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0061 */ { UD_Iandps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0062 */ { UD_Ivandps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0063 */ { UD_Iandnpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0064 */ { UD_Ivandnpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0065 */ { UD_Iandnps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0066 */ { UD_Ivandnps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0067 */ { UD_Iarpl, O_Ew, O_Gw, O_NONE, O_NONE, P_aso }, + /* 0068 */ { UD_Imovsxd, O_Gq, O_Ed, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexx|P_rexr|P_rexb }, + /* 0069 */ { UD_Icall, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0070 */ { UD_Icall, O_Eq, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0071 */ { UD_Icall, O_Fv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0072 */ { UD_Icall, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0073 */ { UD_Icall, O_Av, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0074 */ { UD_Icbw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0075 */ { UD_Icwde, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0076 */ { UD_Icdqe, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0077 */ { UD_Iclc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0078 */ { UD_Icld, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0079 */ { UD_Iclflush, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0080 */ { UD_Iclgi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0081 */ { UD_Icli, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0082 */ { UD_Iclts, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0083 */ { UD_Icmc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0084 */ { UD_Icmovo, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0085 */ { UD_Icmovno, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0086 */ { UD_Icmovb, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0087 */ { UD_Icmovae, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0088 */ { UD_Icmovz, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0089 */ { UD_Icmovnz, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0090 */ { UD_Icmovbe, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0091 */ { UD_Icmova, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0092 */ { UD_Icmovs, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0093 */ { UD_Icmovns, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0094 */ { UD_Icmovp, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0095 */ { UD_Icmovnp, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0096 */ { UD_Icmovl, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0097 */ { UD_Icmovge, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0098 */ { UD_Icmovle, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0099 */ { UD_Icmovg, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0100 */ { UD_Icmp, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0101 */ { UD_Icmp, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0102 */ { UD_Icmp, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0103 */ { UD_Icmp, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0104 */ { UD_Icmp, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 0105 */ { UD_Icmp, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0106 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0107 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0108 */ { UD_Icmp, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0109 */ { UD_Icmp, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0110 */ { UD_Icmppd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0111 */ { UD_Ivcmppd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0112 */ { UD_Icmpps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0113 */ { UD_Ivcmpps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0114 */ { UD_Icmpsb, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_seg }, + /* 0115 */ { UD_Icmpsw, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw|P_seg }, + /* 0116 */ { UD_Icmpsd, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw|P_seg }, + /* 0117 */ { UD_Icmpsd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0118 */ { UD_Ivcmpsd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0119 */ { UD_Icmpsq, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw|P_seg }, + /* 0120 */ { UD_Icmpss, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0121 */ { UD_Ivcmpss, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0122 */ { UD_Icmpxchg, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0123 */ { UD_Icmpxchg, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0124 */ { UD_Icmpxchg8b, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0125 */ { UD_Icmpxchg8b, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0126 */ { UD_Icmpxchg16b, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0127 */ { UD_Icomisd, O_Vsd, O_Wsd, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0128 */ { UD_Ivcomisd, O_Vsd, O_Wsd, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0129 */ { UD_Icomiss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0130 */ { UD_Ivcomiss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0131 */ { UD_Icpuid, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0132 */ { UD_Icvtdq2pd, O_V, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0133 */ { UD_Ivcvtdq2pd, O_Vx, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0134 */ { UD_Icvtdq2ps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0135 */ { UD_Ivcvtdq2ps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0136 */ { UD_Icvtpd2dq, O_Vdq, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0137 */ { UD_Ivcvtpd2dq, O_Vdq, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0138 */ { UD_Icvtpd2pi, O_P, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0139 */ { UD_Icvtpd2ps, O_Vdq, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0140 */ { UD_Ivcvtpd2ps, O_Vdq, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0141 */ { UD_Icvtpi2ps, O_V, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0142 */ { UD_Icvtpi2pd, O_V, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0143 */ { UD_Icvtps2dq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0144 */ { UD_Ivcvtps2dq, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0145 */ { UD_Icvtps2pd, O_V, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0146 */ { UD_Ivcvtps2pd, O_Vx, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0147 */ { UD_Icvtps2pi, O_P, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0148 */ { UD_Icvtsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0149 */ { UD_Ivcvtsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0150 */ { UD_Icvtsd2ss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0151 */ { UD_Ivcvtsd2ss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0152 */ { UD_Icvtsi2sd, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0153 */ { UD_Ivcvtsi2sd, O_Vx, O_Hx, O_Ey, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0154 */ { UD_Icvtsi2ss, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0155 */ { UD_Ivcvtsi2ss, O_Vx, O_Hx, O_Ey, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0156 */ { UD_Icvtss2sd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0157 */ { UD_Ivcvtss2sd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0158 */ { UD_Icvtss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0159 */ { UD_Ivcvtss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0160 */ { UD_Icvttpd2dq, O_Vdq, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0161 */ { UD_Ivcvttpd2dq, O_Vdq, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0162 */ { UD_Icvttpd2pi, O_P, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0163 */ { UD_Icvttps2dq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0164 */ { UD_Ivcvttps2dq, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0165 */ { UD_Icvttps2pi, O_P, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0166 */ { UD_Icvttsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0167 */ { UD_Ivcvttsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0168 */ { UD_Icvttss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0169 */ { UD_Ivcvttss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0170 */ { UD_Icwd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0171 */ { UD_Icdq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0172 */ { UD_Icqo, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0173 */ { UD_Idaa, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0174 */ { UD_Idas, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0175 */ { UD_Idec, O_R0z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0176 */ { UD_Idec, O_R1z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0177 */ { UD_Idec, O_R2z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0178 */ { UD_Idec, O_R3z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0179 */ { UD_Idec, O_R4z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0180 */ { UD_Idec, O_R5z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0181 */ { UD_Idec, O_R6z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0182 */ { UD_Idec, O_R7z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0183 */ { UD_Idec, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0184 */ { UD_Idec, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0185 */ { UD_Idiv, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0186 */ { UD_Idiv, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0187 */ { UD_Idivpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0188 */ { UD_Ivdivpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0189 */ { UD_Idivps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0190 */ { UD_Ivdivps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0191 */ { UD_Idivsd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0192 */ { UD_Ivdivsd, O_Vx, O_Hx, O_MqU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0193 */ { UD_Idivss, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0194 */ { UD_Ivdivss, O_Vx, O_Hx, O_MdU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0195 */ { UD_Idppd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0196 */ { UD_Ivdppd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0197 */ { UD_Idpps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0198 */ { UD_Ivdpps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0199 */ { UD_Iemms, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0200 */ { UD_Ienter, O_Iw, O_Ib, O_NONE, O_NONE, P_def64 }, + /* 0201 */ { UD_Iextractps, O_MdRy, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 0202 */ { UD_Ivextractps, O_MdRy, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 0203 */ { UD_If2xm1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0204 */ { UD_Ifabs, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0205 */ { UD_Ifadd, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0206 */ { UD_Ifadd, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0207 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0208 */ { UD_Ifadd, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0209 */ { UD_Ifadd, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0210 */ { UD_Ifadd, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0211 */ { UD_Ifadd, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0212 */ { UD_Ifadd, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0213 */ { UD_Ifadd, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0214 */ { UD_Ifadd, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0215 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0216 */ { UD_Ifadd, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0217 */ { UD_Ifadd, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0218 */ { UD_Ifadd, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0219 */ { UD_Ifadd, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0220 */ { UD_Ifadd, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0221 */ { UD_Ifadd, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0222 */ { UD_Ifadd, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0223 */ { UD_Ifaddp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0224 */ { UD_Ifaddp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0225 */ { UD_Ifaddp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0226 */ { UD_Ifaddp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0227 */ { UD_Ifaddp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0228 */ { UD_Ifaddp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0229 */ { UD_Ifaddp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0230 */ { UD_Ifaddp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0231 */ { UD_Ifbld, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0232 */ { UD_Ifbstp, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0233 */ { UD_Ifchs, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0234 */ { UD_Ifclex, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0235 */ { UD_Ifcmovb, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0236 */ { UD_Ifcmovb, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0237 */ { UD_Ifcmovb, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0238 */ { UD_Ifcmovb, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0239 */ { UD_Ifcmovb, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0240 */ { UD_Ifcmovb, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0241 */ { UD_Ifcmovb, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0242 */ { UD_Ifcmovb, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0243 */ { UD_Ifcmove, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0244 */ { UD_Ifcmove, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0245 */ { UD_Ifcmove, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0246 */ { UD_Ifcmove, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0247 */ { UD_Ifcmove, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0248 */ { UD_Ifcmove, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0249 */ { UD_Ifcmove, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0250 */ { UD_Ifcmove, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0251 */ { UD_Ifcmovbe, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0252 */ { UD_Ifcmovbe, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0253 */ { UD_Ifcmovbe, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0254 */ { UD_Ifcmovbe, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0255 */ { UD_Ifcmovbe, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0256 */ { UD_Ifcmovbe, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0257 */ { UD_Ifcmovbe, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0258 */ { UD_Ifcmovbe, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0259 */ { UD_Ifcmovu, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0260 */ { UD_Ifcmovu, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0261 */ { UD_Ifcmovu, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0262 */ { UD_Ifcmovu, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0263 */ { UD_Ifcmovu, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0264 */ { UD_Ifcmovu, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0265 */ { UD_Ifcmovu, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0266 */ { UD_Ifcmovu, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0267 */ { UD_Ifcmovnb, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0268 */ { UD_Ifcmovnb, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0269 */ { UD_Ifcmovnb, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0270 */ { UD_Ifcmovnb, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0271 */ { UD_Ifcmovnb, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0272 */ { UD_Ifcmovnb, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0273 */ { UD_Ifcmovnb, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0274 */ { UD_Ifcmovnb, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0275 */ { UD_Ifcmovne, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0276 */ { UD_Ifcmovne, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0277 */ { UD_Ifcmovne, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0278 */ { UD_Ifcmovne, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0279 */ { UD_Ifcmovne, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0280 */ { UD_Ifcmovne, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0281 */ { UD_Ifcmovne, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0282 */ { UD_Ifcmovne, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0283 */ { UD_Ifcmovnbe, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0284 */ { UD_Ifcmovnbe, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0285 */ { UD_Ifcmovnbe, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0286 */ { UD_Ifcmovnbe, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0287 */ { UD_Ifcmovnbe, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0288 */ { UD_Ifcmovnbe, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0289 */ { UD_Ifcmovnbe, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0290 */ { UD_Ifcmovnbe, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0291 */ { UD_Ifcmovnu, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0292 */ { UD_Ifcmovnu, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0293 */ { UD_Ifcmovnu, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0294 */ { UD_Ifcmovnu, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0295 */ { UD_Ifcmovnu, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0296 */ { UD_Ifcmovnu, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0297 */ { UD_Ifcmovnu, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0298 */ { UD_Ifcmovnu, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0299 */ { UD_Ifucomi, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0300 */ { UD_Ifucomi, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0301 */ { UD_Ifucomi, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0302 */ { UD_Ifucomi, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0303 */ { UD_Ifucomi, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0304 */ { UD_Ifucomi, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0305 */ { UD_Ifucomi, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0306 */ { UD_Ifucomi, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0307 */ { UD_Ifcom, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0308 */ { UD_Ifcom, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0309 */ { UD_Ifcom, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0310 */ { UD_Ifcom, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0311 */ { UD_Ifcom, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0312 */ { UD_Ifcom, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0313 */ { UD_Ifcom, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0314 */ { UD_Ifcom, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0315 */ { UD_Ifcom, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0316 */ { UD_Ifcom, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0317 */ { UD_Ifcom2, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0318 */ { UD_Ifcom2, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0319 */ { UD_Ifcom2, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0320 */ { UD_Ifcom2, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0321 */ { UD_Ifcom2, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0322 */ { UD_Ifcom2, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0323 */ { UD_Ifcom2, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0324 */ { UD_Ifcom2, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0325 */ { UD_Ifcomp3, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0326 */ { UD_Ifcomp3, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0327 */ { UD_Ifcomp3, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0328 */ { UD_Ifcomp3, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0329 */ { UD_Ifcomp3, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0330 */ { UD_Ifcomp3, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0331 */ { UD_Ifcomp3, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0332 */ { UD_Ifcomp3, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0333 */ { UD_Ifcomi, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0334 */ { UD_Ifcomi, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0335 */ { UD_Ifcomi, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0336 */ { UD_Ifcomi, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0337 */ { UD_Ifcomi, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0338 */ { UD_Ifcomi, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0339 */ { UD_Ifcomi, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0340 */ { UD_Ifcomi, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0341 */ { UD_Ifucomip, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0342 */ { UD_Ifucomip, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0343 */ { UD_Ifucomip, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0344 */ { UD_Ifucomip, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0345 */ { UD_Ifucomip, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0346 */ { UD_Ifucomip, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0347 */ { UD_Ifucomip, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0348 */ { UD_Ifucomip, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0349 */ { UD_Ifcomip, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0350 */ { UD_Ifcomip, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0351 */ { UD_Ifcomip, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0352 */ { UD_Ifcomip, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0353 */ { UD_Ifcomip, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0354 */ { UD_Ifcomip, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0355 */ { UD_Ifcomip, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0356 */ { UD_Ifcomip, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0357 */ { UD_Ifcomp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0358 */ { UD_Ifcomp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0359 */ { UD_Ifcomp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0360 */ { UD_Ifcomp, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0361 */ { UD_Ifcomp, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0362 */ { UD_Ifcomp, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0363 */ { UD_Ifcomp, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0364 */ { UD_Ifcomp, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0365 */ { UD_Ifcomp, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0366 */ { UD_Ifcomp, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0367 */ { UD_Ifcomp5, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0368 */ { UD_Ifcomp5, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0369 */ { UD_Ifcomp5, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0370 */ { UD_Ifcomp5, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0371 */ { UD_Ifcomp5, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0372 */ { UD_Ifcomp5, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0373 */ { UD_Ifcomp5, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0374 */ { UD_Ifcomp5, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0375 */ { UD_Ifcompp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0376 */ { UD_Ifcos, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0377 */ { UD_Ifdecstp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0378 */ { UD_Ifdiv, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0379 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0380 */ { UD_Ifdiv, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0381 */ { UD_Ifdiv, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0382 */ { UD_Ifdiv, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0383 */ { UD_Ifdiv, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0384 */ { UD_Ifdiv, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0385 */ { UD_Ifdiv, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0386 */ { UD_Ifdiv, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0387 */ { UD_Ifdiv, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0388 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0389 */ { UD_Ifdiv, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0390 */ { UD_Ifdiv, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0391 */ { UD_Ifdiv, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0392 */ { UD_Ifdiv, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0393 */ { UD_Ifdiv, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0394 */ { UD_Ifdiv, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0395 */ { UD_Ifdiv, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0396 */ { UD_Ifdivp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0397 */ { UD_Ifdivp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0398 */ { UD_Ifdivp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0399 */ { UD_Ifdivp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0400 */ { UD_Ifdivp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0401 */ { UD_Ifdivp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0402 */ { UD_Ifdivp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0403 */ { UD_Ifdivp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0404 */ { UD_Ifdivr, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0405 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0406 */ { UD_Ifdivr, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0407 */ { UD_Ifdivr, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0408 */ { UD_Ifdivr, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0409 */ { UD_Ifdivr, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0410 */ { UD_Ifdivr, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0411 */ { UD_Ifdivr, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0412 */ { UD_Ifdivr, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0413 */ { UD_Ifdivr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0414 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0415 */ { UD_Ifdivr, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0416 */ { UD_Ifdivr, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0417 */ { UD_Ifdivr, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0418 */ { UD_Ifdivr, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0419 */ { UD_Ifdivr, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0420 */ { UD_Ifdivr, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0421 */ { UD_Ifdivr, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0422 */ { UD_Ifdivrp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0423 */ { UD_Ifdivrp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0424 */ { UD_Ifdivrp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0425 */ { UD_Ifdivrp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0426 */ { UD_Ifdivrp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0427 */ { UD_Ifdivrp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0428 */ { UD_Ifdivrp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0429 */ { UD_Ifdivrp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0430 */ { UD_Ifemms, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0431 */ { UD_Iffree, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0432 */ { UD_Iffree, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0433 */ { UD_Iffree, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0434 */ { UD_Iffree, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0435 */ { UD_Iffree, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0436 */ { UD_Iffree, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0437 */ { UD_Iffree, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0438 */ { UD_Iffree, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0439 */ { UD_Iffreep, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0440 */ { UD_Iffreep, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0441 */ { UD_Iffreep, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0442 */ { UD_Iffreep, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0443 */ { UD_Iffreep, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0444 */ { UD_Iffreep, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0445 */ { UD_Iffreep, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0446 */ { UD_Iffreep, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0447 */ { UD_Ificom, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0448 */ { UD_Ificom, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0449 */ { UD_Ificomp, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0450 */ { UD_Ificomp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0451 */ { UD_Ifild, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0452 */ { UD_Ifild, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0453 */ { UD_Ifild, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0454 */ { UD_Ifincstp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0455 */ { UD_Ifninit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0456 */ { UD_Ifiadd, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0457 */ { UD_Ifiadd, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0458 */ { UD_Ifidivr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0459 */ { UD_Ifidivr, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0460 */ { UD_Ifidiv, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0461 */ { UD_Ifidiv, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0462 */ { UD_Ifisub, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0463 */ { UD_Ifisub, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0464 */ { UD_Ifisubr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0465 */ { UD_Ifisubr, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0466 */ { UD_Ifist, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0467 */ { UD_Ifist, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0468 */ { UD_Ifistp, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0469 */ { UD_Ifistp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0470 */ { UD_Ifistp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0471 */ { UD_Ifisttp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0472 */ { UD_Ifisttp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0473 */ { UD_Ifisttp, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0474 */ { UD_Ifld, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0475 */ { UD_Ifld, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0476 */ { UD_Ifld, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0477 */ { UD_Ifld, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0478 */ { UD_Ifld, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0479 */ { UD_Ifld, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0480 */ { UD_Ifld, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0481 */ { UD_Ifld, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0482 */ { UD_Ifld, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0483 */ { UD_Ifld, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0484 */ { UD_Ifld, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0485 */ { UD_Ifld1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0486 */ { UD_Ifldl2t, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0487 */ { UD_Ifldl2e, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0488 */ { UD_Ifldpi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0489 */ { UD_Ifldlg2, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0490 */ { UD_Ifldln2, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0491 */ { UD_Ifldz, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0492 */ { UD_Ifldcw, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0493 */ { UD_Ifldenv, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0494 */ { UD_Ifmul, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0495 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0496 */ { UD_Ifmul, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0497 */ { UD_Ifmul, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0498 */ { UD_Ifmul, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0499 */ { UD_Ifmul, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0500 */ { UD_Ifmul, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0501 */ { UD_Ifmul, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0502 */ { UD_Ifmul, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0503 */ { UD_Ifmul, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0504 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0505 */ { UD_Ifmul, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0506 */ { UD_Ifmul, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0507 */ { UD_Ifmul, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0508 */ { UD_Ifmul, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0509 */ { UD_Ifmul, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0510 */ { UD_Ifmul, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0511 */ { UD_Ifmul, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0512 */ { UD_Ifmulp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0513 */ { UD_Ifmulp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0514 */ { UD_Ifmulp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0515 */ { UD_Ifmulp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0516 */ { UD_Ifmulp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0517 */ { UD_Ifmulp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0518 */ { UD_Ifmulp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0519 */ { UD_Ifmulp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0520 */ { UD_Ifimul, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0521 */ { UD_Ifimul, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0522 */ { UD_Ifnop, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0523 */ { UD_Ifndisi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0524 */ { UD_Ifneni, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0525 */ { UD_Ifnsetpm, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0526 */ { UD_Ifpatan, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0527 */ { UD_Ifprem, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0528 */ { UD_Ifprem1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0529 */ { UD_Ifptan, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0530 */ { UD_Ifrndint, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0531 */ { UD_Ifrstor, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0532 */ { UD_Ifrstpm, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0533 */ { UD_Ifnsave, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0534 */ { UD_Ifscale, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0535 */ { UD_Ifsin, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0536 */ { UD_Ifsincos, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0537 */ { UD_Ifsqrt, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0538 */ { UD_Ifstp, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0539 */ { UD_Ifstp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0540 */ { UD_Ifstp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0541 */ { UD_Ifstp, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0542 */ { UD_Ifstp, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0543 */ { UD_Ifstp, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0544 */ { UD_Ifstp, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0545 */ { UD_Ifstp, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0546 */ { UD_Ifstp, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0547 */ { UD_Ifstp, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0548 */ { UD_Ifstp, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0549 */ { UD_Ifstp1, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0550 */ { UD_Ifstp1, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0551 */ { UD_Ifstp1, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0552 */ { UD_Ifstp1, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0553 */ { UD_Ifstp1, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0554 */ { UD_Ifstp1, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0555 */ { UD_Ifstp1, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0556 */ { UD_Ifstp1, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0557 */ { UD_Ifstp8, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0558 */ { UD_Ifstp8, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0559 */ { UD_Ifstp8, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0560 */ { UD_Ifstp8, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0561 */ { UD_Ifstp8, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0562 */ { UD_Ifstp8, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0563 */ { UD_Ifstp8, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0564 */ { UD_Ifstp8, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0565 */ { UD_Ifstp9, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0566 */ { UD_Ifstp9, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0567 */ { UD_Ifstp9, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0568 */ { UD_Ifstp9, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0569 */ { UD_Ifstp9, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0570 */ { UD_Ifstp9, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0571 */ { UD_Ifstp9, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0572 */ { UD_Ifstp9, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0573 */ { UD_Ifst, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0574 */ { UD_Ifst, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0575 */ { UD_Ifst, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0576 */ { UD_Ifst, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0577 */ { UD_Ifst, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0578 */ { UD_Ifst, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0579 */ { UD_Ifst, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0580 */ { UD_Ifst, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0581 */ { UD_Ifst, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0582 */ { UD_Ifst, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0583 */ { UD_Ifnstcw, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0584 */ { UD_Ifnstenv, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0585 */ { UD_Ifnstsw, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0586 */ { UD_Ifnstsw, O_AX, O_NONE, O_NONE, O_NONE, P_none }, + /* 0587 */ { UD_Ifsub, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0588 */ { UD_Ifsub, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0589 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0590 */ { UD_Ifsub, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0591 */ { UD_Ifsub, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0592 */ { UD_Ifsub, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0593 */ { UD_Ifsub, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0594 */ { UD_Ifsub, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0595 */ { UD_Ifsub, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0596 */ { UD_Ifsub, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0597 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0598 */ { UD_Ifsub, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0599 */ { UD_Ifsub, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0600 */ { UD_Ifsub, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0601 */ { UD_Ifsub, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0602 */ { UD_Ifsub, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0603 */ { UD_Ifsub, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0604 */ { UD_Ifsub, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0605 */ { UD_Ifsubp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0606 */ { UD_Ifsubp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0607 */ { UD_Ifsubp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0608 */ { UD_Ifsubp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0609 */ { UD_Ifsubp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0610 */ { UD_Ifsubp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0611 */ { UD_Ifsubp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0612 */ { UD_Ifsubp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0613 */ { UD_Ifsubr, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0614 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0615 */ { UD_Ifsubr, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0616 */ { UD_Ifsubr, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0617 */ { UD_Ifsubr, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0618 */ { UD_Ifsubr, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0619 */ { UD_Ifsubr, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0620 */ { UD_Ifsubr, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0621 */ { UD_Ifsubr, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0622 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0623 */ { UD_Ifsubr, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0624 */ { UD_Ifsubr, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0625 */ { UD_Ifsubr, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0626 */ { UD_Ifsubr, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0627 */ { UD_Ifsubr, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0628 */ { UD_Ifsubr, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0629 */ { UD_Ifsubr, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0630 */ { UD_Ifsubr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0631 */ { UD_Ifsubrp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0632 */ { UD_Ifsubrp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0633 */ { UD_Ifsubrp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, + /* 0634 */ { UD_Ifsubrp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, + /* 0635 */ { UD_Ifsubrp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, + /* 0636 */ { UD_Ifsubrp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, + /* 0637 */ { UD_Ifsubrp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, + /* 0638 */ { UD_Ifsubrp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, + /* 0639 */ { UD_Iftst, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0640 */ { UD_Ifucom, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0641 */ { UD_Ifucom, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0642 */ { UD_Ifucom, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0643 */ { UD_Ifucom, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0644 */ { UD_Ifucom, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0645 */ { UD_Ifucom, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0646 */ { UD_Ifucom, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0647 */ { UD_Ifucom, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0648 */ { UD_Ifucomp, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0649 */ { UD_Ifucomp, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0650 */ { UD_Ifucomp, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0651 */ { UD_Ifucomp, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0652 */ { UD_Ifucomp, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0653 */ { UD_Ifucomp, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0654 */ { UD_Ifucomp, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0655 */ { UD_Ifucomp, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0656 */ { UD_Ifucompp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0657 */ { UD_Ifxam, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0658 */ { UD_Ifxch, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, + /* 0659 */ { UD_Ifxch, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, + /* 0660 */ { UD_Ifxch, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, + /* 0661 */ { UD_Ifxch, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, + /* 0662 */ { UD_Ifxch, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, + /* 0663 */ { UD_Ifxch, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, + /* 0664 */ { UD_Ifxch, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, + /* 0665 */ { UD_Ifxch, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, + /* 0666 */ { UD_Ifxch4, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0667 */ { UD_Ifxch4, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0668 */ { UD_Ifxch4, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0669 */ { UD_Ifxch4, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0670 */ { UD_Ifxch4, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0671 */ { UD_Ifxch4, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0672 */ { UD_Ifxch4, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0673 */ { UD_Ifxch4, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0674 */ { UD_Ifxch7, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, + /* 0675 */ { UD_Ifxch7, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0676 */ { UD_Ifxch7, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0677 */ { UD_Ifxch7, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0678 */ { UD_Ifxch7, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, + /* 0679 */ { UD_Ifxch7, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, + /* 0680 */ { UD_Ifxch7, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, + /* 0681 */ { UD_Ifxch7, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, + /* 0682 */ { UD_Ifxrstor, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0683 */ { UD_Ifxsave, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0684 */ { UD_Ifxtract, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0685 */ { UD_Ifyl2x, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0686 */ { UD_Ifyl2xp1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0687 */ { UD_Ihlt, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0688 */ { UD_Iidiv, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0689 */ { UD_Iidiv, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0690 */ { UD_Iin, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 0691 */ { UD_Iin, O_eAX, O_Ib, O_NONE, O_NONE, P_oso }, + /* 0692 */ { UD_Iin, O_AL, O_DX, O_NONE, O_NONE, P_none }, + /* 0693 */ { UD_Iin, O_eAX, O_DX, O_NONE, O_NONE, P_oso }, + /* 0694 */ { UD_Iimul, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0695 */ { UD_Iimul, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0696 */ { UD_Iimul, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0697 */ { UD_Iimul, O_Gv, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0698 */ { UD_Iimul, O_Gv, O_Ev, O_sIb, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0699 */ { UD_Iinc, O_R0z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0700 */ { UD_Iinc, O_R1z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0701 */ { UD_Iinc, O_R2z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0702 */ { UD_Iinc, O_R3z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0703 */ { UD_Iinc, O_R4z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0704 */ { UD_Iinc, O_R5z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0705 */ { UD_Iinc, O_R6z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0706 */ { UD_Iinc, O_R7z, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0707 */ { UD_Iinc, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0708 */ { UD_Iinc, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0709 */ { UD_Iinsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, + /* 0710 */ { UD_Iinsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, + /* 0711 */ { UD_Iinsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, + /* 0712 */ { UD_Iint1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0713 */ { UD_Iint3, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0714 */ { UD_Iint, O_Ib, O_NONE, O_NONE, O_NONE, P_none }, + /* 0715 */ { UD_Iinto, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0716 */ { UD_Iinvd, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0717 */ { UD_Iinvept, O_Gd, O_Mo, O_NONE, O_NONE, P_none }, + /* 0718 */ { UD_Iinvept, O_Gq, O_Mo, O_NONE, O_NONE, P_none }, + /* 0719 */ { UD_Iinvlpg, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0720 */ { UD_Iinvlpga, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0721 */ { UD_Iinvvpid, O_Gd, O_Mo, O_NONE, O_NONE, P_none }, + /* 0722 */ { UD_Iinvvpid, O_Gq, O_Mo, O_NONE, O_NONE, P_none }, + /* 0723 */ { UD_Iiretw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0724 */ { UD_Iiretd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0725 */ { UD_Iiretq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0726 */ { UD_Ijo, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0727 */ { UD_Ijo, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0728 */ { UD_Ijno, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0729 */ { UD_Ijno, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0730 */ { UD_Ijb, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0731 */ { UD_Ijb, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0732 */ { UD_Ijae, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0733 */ { UD_Ijae, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0734 */ { UD_Ijz, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0735 */ { UD_Ijz, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0736 */ { UD_Ijnz, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0737 */ { UD_Ijnz, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0738 */ { UD_Ijbe, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0739 */ { UD_Ijbe, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0740 */ { UD_Ija, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0741 */ { UD_Ija, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0742 */ { UD_Ijs, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0743 */ { UD_Ijs, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0744 */ { UD_Ijns, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0745 */ { UD_Ijns, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0746 */ { UD_Ijp, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0747 */ { UD_Ijp, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0748 */ { UD_Ijnp, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0749 */ { UD_Ijnp, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0750 */ { UD_Ijl, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0751 */ { UD_Ijl, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0752 */ { UD_Ijge, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0753 */ { UD_Ijge, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0754 */ { UD_Ijle, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0755 */ { UD_Ijle, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0756 */ { UD_Ijg, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0757 */ { UD_Ijg, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0758 */ { UD_Ijcxz, O_Jb, O_NONE, O_NONE, O_NONE, P_aso }, + /* 0759 */ { UD_Ijecxz, O_Jb, O_NONE, O_NONE, O_NONE, P_aso }, + /* 0760 */ { UD_Ijrcxz, O_Jb, O_NONE, O_NONE, O_NONE, P_aso }, + /* 0761 */ { UD_Ijmp, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0762 */ { UD_Ijmp, O_Fv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0763 */ { UD_Ijmp, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0764 */ { UD_Ijmp, O_Av, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0765 */ { UD_Ijmp, O_Jb, O_NONE, O_NONE, O_NONE, P_def64 }, + /* 0766 */ { UD_Ilahf, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0767 */ { UD_Ilar, O_Gv, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0768 */ { UD_Ildmxcsr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0769 */ { UD_Ilds, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso }, + /* 0770 */ { UD_Ilea, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0771 */ { UD_Iles, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso }, + /* 0772 */ { UD_Ilfs, O_Gz, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0773 */ { UD_Ilgs, O_Gz, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0774 */ { UD_Ilidt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0775 */ { UD_Ilss, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0776 */ { UD_Ileave, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0777 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0778 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0779 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0780 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0781 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0782 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0783 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0784 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0785 */ { UD_Ilgdt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0786 */ { UD_Illdt, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0787 */ { UD_Ilmsw, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0788 */ { UD_Ilmsw, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0789 */ { UD_Ilock, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0790 */ { UD_Ilodsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, + /* 0791 */ { UD_Ilodsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 0792 */ { UD_Ilodsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 0793 */ { UD_Ilodsq, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 0794 */ { UD_Iloopne, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0795 */ { UD_Iloope, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0796 */ { UD_Iloop, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0797 */ { UD_Ilsl, O_Gv, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0798 */ { UD_Iltr, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0799 */ { UD_Imaskmovq, O_P, O_N, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0800 */ { UD_Imaxpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0801 */ { UD_Ivmaxpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0802 */ { UD_Imaxps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0803 */ { UD_Ivmaxps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0804 */ { UD_Imaxsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0805 */ { UD_Ivmaxsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0806 */ { UD_Imaxss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0807 */ { UD_Ivmaxss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0808 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0809 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0810 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0811 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0812 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0813 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0814 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0815 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0816 */ { UD_Iminpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0817 */ { UD_Ivminpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0818 */ { UD_Iminps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0819 */ { UD_Ivminps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0820 */ { UD_Iminsd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0821 */ { UD_Ivminsd, O_Vx, O_Hx, O_MqU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0822 */ { UD_Iminss, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0823 */ { UD_Ivminss, O_Vx, O_Hx, O_MdU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0824 */ { UD_Imonitor, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0825 */ { UD_Imontmul, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0826 */ { UD_Imov, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0827 */ { UD_Imov, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0828 */ { UD_Imov, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0829 */ { UD_Imov, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0830 */ { UD_Imov, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0831 */ { UD_Imov, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0832 */ { UD_Imov, O_MwRv, O_S, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0833 */ { UD_Imov, O_S, O_MwRv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0834 */ { UD_Imov, O_AL, O_Ob, O_NONE, O_NONE, P_none }, + /* 0835 */ { UD_Imov, O_rAX, O_Ov, O_NONE, O_NONE, P_aso|P_oso|P_rexw }, + /* 0836 */ { UD_Imov, O_Ob, O_AL, O_NONE, O_NONE, P_none }, + /* 0837 */ { UD_Imov, O_Ov, O_rAX, O_NONE, O_NONE, P_aso|P_oso|P_rexw }, + /* 0838 */ { UD_Imov, O_R0b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0839 */ { UD_Imov, O_R1b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0840 */ { UD_Imov, O_R2b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0841 */ { UD_Imov, O_R3b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0842 */ { UD_Imov, O_R4b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0843 */ { UD_Imov, O_R5b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0844 */ { UD_Imov, O_R6b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0845 */ { UD_Imov, O_R7b, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 0846 */ { UD_Imov, O_R0v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0847 */ { UD_Imov, O_R1v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0848 */ { UD_Imov, O_R2v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0849 */ { UD_Imov, O_R3v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0850 */ { UD_Imov, O_R4v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0851 */ { UD_Imov, O_R5v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0852 */ { UD_Imov, O_R6v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0853 */ { UD_Imov, O_R7v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0854 */ { UD_Imov, O_R, O_C, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, + /* 0855 */ { UD_Imov, O_R, O_D, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, + /* 0856 */ { UD_Imov, O_C, O_R, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, + /* 0857 */ { UD_Imov, O_D, O_R, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, + /* 0858 */ { UD_Imovapd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0859 */ { UD_Ivmovapd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0860 */ { UD_Imovapd, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0861 */ { UD_Ivmovapd, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0862 */ { UD_Imovaps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0863 */ { UD_Ivmovaps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0864 */ { UD_Imovaps, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0865 */ { UD_Ivmovaps, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0866 */ { UD_Imovd, O_P, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0867 */ { UD_Imovd, O_P, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0868 */ { UD_Imovd, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0869 */ { UD_Ivmovd, O_Vx, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0870 */ { UD_Imovd, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0871 */ { UD_Ivmovd, O_Vx, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0872 */ { UD_Imovd, O_Ey, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0873 */ { UD_Imovd, O_Ey, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0874 */ { UD_Imovd, O_Ey, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0875 */ { UD_Ivmovd, O_Ey, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0876 */ { UD_Imovd, O_Ey, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0877 */ { UD_Ivmovd, O_Ey, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0878 */ { UD_Imovhpd, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0879 */ { UD_Ivmovhpd, O_Vx, O_Hx, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0880 */ { UD_Imovhpd, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0881 */ { UD_Ivmovhpd, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0882 */ { UD_Imovhps, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0883 */ { UD_Ivmovhps, O_Vx, O_Hx, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0884 */ { UD_Imovhps, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0885 */ { UD_Ivmovhps, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0886 */ { UD_Imovlhps, O_V, O_U, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0887 */ { UD_Ivmovlhps, O_Vx, O_Hx, O_Ux, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0888 */ { UD_Imovlpd, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0889 */ { UD_Ivmovlpd, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0890 */ { UD_Imovlpd, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0891 */ { UD_Ivmovlpd, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0892 */ { UD_Imovlps, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0893 */ { UD_Ivmovlps, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0894 */ { UD_Imovlps, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0895 */ { UD_Ivmovlps, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0896 */ { UD_Imovhlps, O_V, O_U, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0897 */ { UD_Ivmovhlps, O_Vx, O_Ux, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0898 */ { UD_Imovmskpd, O_Gd, O_U, O_NONE, O_NONE, P_oso|P_rexr|P_rexb }, + /* 0899 */ { UD_Ivmovmskpd, O_Gd, O_Ux, O_NONE, O_NONE, P_oso|P_rexr|P_rexb|P_vexl }, + /* 0900 */ { UD_Imovmskps, O_Gd, O_U, O_NONE, O_NONE, P_oso|P_rexr|P_rexb }, + /* 0901 */ { UD_Ivmovmskps, O_Gd, O_Ux, O_NONE, O_NONE, P_oso|P_rexr|P_rexb }, + /* 0902 */ { UD_Imovntdq, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0903 */ { UD_Ivmovntdq, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0904 */ { UD_Imovnti, O_M, O_Gy, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0905 */ { UD_Imovntpd, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0906 */ { UD_Ivmovntpd, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0907 */ { UD_Imovntps, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0908 */ { UD_Ivmovntps, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0909 */ { UD_Imovntq, O_M, O_P, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0910 */ { UD_Imovq, O_P, O_Eq, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0911 */ { UD_Imovq, O_V, O_Eq, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0912 */ { UD_Ivmovq, O_Vx, O_Eq, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0913 */ { UD_Imovq, O_Eq, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0914 */ { UD_Imovq, O_Eq, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0915 */ { UD_Ivmovq, O_Eq, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0916 */ { UD_Imovq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0917 */ { UD_Ivmovq, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0918 */ { UD_Imovq, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0919 */ { UD_Ivmovq, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0920 */ { UD_Imovq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0921 */ { UD_Imovq, O_Q, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0922 */ { UD_Imovsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, + /* 0923 */ { UD_Imovsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 0924 */ { UD_Imovsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 0925 */ { UD_Imovsd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0926 */ { UD_Imovsd, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0927 */ { UD_Imovsq, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 0928 */ { UD_Imovss, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0929 */ { UD_Imovss, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0930 */ { UD_Imovsx, O_Gv, O_Eb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0931 */ { UD_Imovsx, O_Gy, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0932 */ { UD_Imovupd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0933 */ { UD_Ivmovupd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0934 */ { UD_Imovupd, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0935 */ { UD_Ivmovupd, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0936 */ { UD_Imovups, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0937 */ { UD_Ivmovups, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0938 */ { UD_Imovups, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0939 */ { UD_Ivmovups, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0940 */ { UD_Imovzx, O_Gv, O_Eb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0941 */ { UD_Imovzx, O_Gy, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0942 */ { UD_Imul, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0943 */ { UD_Imul, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0944 */ { UD_Imulpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0945 */ { UD_Ivmulpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0946 */ { UD_Imulps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0947 */ { UD_Ivmulps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0948 */ { UD_Imulsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0949 */ { UD_Ivmulsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0950 */ { UD_Imulss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0951 */ { UD_Ivmulss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0952 */ { UD_Imwait, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 0953 */ { UD_Ineg, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0954 */ { UD_Ineg, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0955 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0956 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0957 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0958 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0959 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0960 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0961 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0962 */ { UD_Inot, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0963 */ { UD_Inot, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0964 */ { UD_Ior, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0965 */ { UD_Ior, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0966 */ { UD_Ior, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0967 */ { UD_Ior, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0968 */ { UD_Ior, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 0969 */ { UD_Ior, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0970 */ { UD_Ior, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0971 */ { UD_Ior, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0972 */ { UD_Ior, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0973 */ { UD_Ior, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0974 */ { UD_Iorpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0975 */ { UD_Ivorpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0976 */ { UD_Iorps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0977 */ { UD_Ivorps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0978 */ { UD_Iout, O_Ib, O_AL, O_NONE, O_NONE, P_none }, + /* 0979 */ { UD_Iout, O_Ib, O_eAX, O_NONE, O_NONE, P_oso }, + /* 0980 */ { UD_Iout, O_DX, O_AL, O_NONE, O_NONE, P_none }, + /* 0981 */ { UD_Iout, O_DX, O_eAX, O_NONE, O_NONE, P_oso }, + /* 0982 */ { UD_Ioutsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, + /* 0983 */ { UD_Ioutsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, + /* 0984 */ { UD_Ioutsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, + /* 0985 */ { UD_Ipacksswb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0986 */ { UD_Ivpacksswb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0987 */ { UD_Ipacksswb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0988 */ { UD_Ipackssdw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0989 */ { UD_Ivpackssdw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0990 */ { UD_Ipackssdw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0991 */ { UD_Ipackuswb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0992 */ { UD_Ivpackuswb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0993 */ { UD_Ipackuswb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0994 */ { UD_Ipaddb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0995 */ { UD_Ivpaddb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 0996 */ { UD_Ipaddb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0997 */ { UD_Ipaddw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0998 */ { UD_Ipaddw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0999 */ { UD_Ivpaddw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1000 */ { UD_Ipaddd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1001 */ { UD_Ipaddd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1002 */ { UD_Ivpaddd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1003 */ { UD_Ipaddsb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1004 */ { UD_Ipaddsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1005 */ { UD_Ivpaddsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1006 */ { UD_Ipaddsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1007 */ { UD_Ipaddsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1008 */ { UD_Ivpaddsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1009 */ { UD_Ipaddusb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1010 */ { UD_Ipaddusb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1011 */ { UD_Ivpaddusb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1012 */ { UD_Ipaddusw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1013 */ { UD_Ipaddusw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1014 */ { UD_Ivpaddusw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1015 */ { UD_Ipand, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1016 */ { UD_Ivpand, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1017 */ { UD_Ipand, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1018 */ { UD_Ipandn, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1019 */ { UD_Ivpandn, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1020 */ { UD_Ipandn, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1021 */ { UD_Ipavgb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1022 */ { UD_Ivpavgb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1023 */ { UD_Ipavgb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1024 */ { UD_Ipavgw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1025 */ { UD_Ivpavgw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1026 */ { UD_Ipavgw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1027 */ { UD_Ipcmpeqb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1028 */ { UD_Ipcmpeqb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1029 */ { UD_Ivpcmpeqb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1030 */ { UD_Ipcmpeqw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1031 */ { UD_Ipcmpeqw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1032 */ { UD_Ivpcmpeqw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1033 */ { UD_Ipcmpeqd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1034 */ { UD_Ipcmpeqd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1035 */ { UD_Ivpcmpeqd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1036 */ { UD_Ipcmpgtb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1037 */ { UD_Ivpcmpgtb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1038 */ { UD_Ipcmpgtb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1039 */ { UD_Ipcmpgtw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1040 */ { UD_Ivpcmpgtw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1041 */ { UD_Ipcmpgtw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1042 */ { UD_Ipcmpgtd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1043 */ { UD_Ivpcmpgtd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1044 */ { UD_Ipcmpgtd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1045 */ { UD_Ipextrb, O_MbRv, O_V, O_Ib, O_NONE, P_aso|P_rexx|P_rexr|P_rexb|P_def64 }, + /* 1046 */ { UD_Ivpextrb, O_MbRv, O_Vx, O_Ib, O_NONE, P_aso|P_rexx|P_rexr|P_rexb|P_def64 }, + /* 1047 */ { UD_Ipextrd, O_Ed, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, + /* 1048 */ { UD_Ivpextrd, O_Ed, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, + /* 1049 */ { UD_Ipextrd, O_Ed, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, + /* 1050 */ { UD_Ivpextrd, O_Ed, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, + /* 1051 */ { UD_Ipextrq, O_Eq, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexb|P_def64 }, + /* 1052 */ { UD_Ivpextrq, O_Eq, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexb|P_def64 }, + /* 1053 */ { UD_Ipextrw, O_Gd, O_U, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexb }, + /* 1054 */ { UD_Ivpextrw, O_Gd, O_Ux, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexb }, + /* 1055 */ { UD_Ipextrw, O_Gd, O_N, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1056 */ { UD_Ipextrw, O_MwRd, O_V, O_Ib, O_NONE, P_aso|P_rexw|P_rexx|P_rexr|P_rexb }, + /* 1057 */ { UD_Ivpextrw, O_MwRd, O_Vx, O_Ib, O_NONE, P_aso|P_rexw|P_rexx|P_rexr|P_rexb }, + /* 1058 */ { UD_Ipinsrb, O_V, O_MbRd, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1059 */ { UD_Ipinsrw, O_P, O_MwRy, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1060 */ { UD_Ipinsrw, O_V, O_MwRy, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1061 */ { UD_Ivpinsrw, O_Vx, O_MwRy, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1062 */ { UD_Ipinsrd, O_V, O_Ed, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1063 */ { UD_Ipinsrd, O_V, O_Ed, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1064 */ { UD_Ipinsrq, O_V, O_Eq, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1065 */ { UD_Ivpinsrb, O_V, O_H, O_MbRd, O_Ib, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1066 */ { UD_Ivpinsrd, O_V, O_H, O_Ed, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1067 */ { UD_Ivpinsrd, O_V, O_H, O_Ed, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1068 */ { UD_Ivpinsrq, O_V, O_H, O_Eq, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1069 */ { UD_Ipmaddwd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1070 */ { UD_Ipmaddwd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1071 */ { UD_Ivpmaddwd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1072 */ { UD_Ipmaxsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1073 */ { UD_Ivpmaxsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1074 */ { UD_Ipmaxsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1075 */ { UD_Ipmaxub, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1076 */ { UD_Ipmaxub, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1077 */ { UD_Ivpmaxub, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1078 */ { UD_Ipminsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1079 */ { UD_Ivpminsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1080 */ { UD_Ipminsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1081 */ { UD_Ipminub, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1082 */ { UD_Ivpminub, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1083 */ { UD_Ipminub, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1084 */ { UD_Ipmovmskb, O_Gd, O_U, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexb }, + /* 1085 */ { UD_Ivpmovmskb, O_Gd, O_Ux, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexb }, + /* 1086 */ { UD_Ipmovmskb, O_Gd, O_N, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexb }, + /* 1087 */ { UD_Ipmulhuw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1088 */ { UD_Ipmulhuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1089 */ { UD_Ivpmulhuw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1090 */ { UD_Ipmulhw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1091 */ { UD_Ivpmulhw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1092 */ { UD_Ipmulhw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1093 */ { UD_Ipmullw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1094 */ { UD_Ipmullw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1095 */ { UD_Ivpmullw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1096 */ { UD_Ipop, O_ES, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1097 */ { UD_Ipop, O_SS, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1098 */ { UD_Ipop, O_DS, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1099 */ { UD_Ipop, O_GS, O_NONE, O_NONE, O_NONE, P_none }, + /* 1100 */ { UD_Ipop, O_FS, O_NONE, O_NONE, O_NONE, P_none }, + /* 1101 */ { UD_Ipop, O_R0v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1102 */ { UD_Ipop, O_R1v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1103 */ { UD_Ipop, O_R2v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1104 */ { UD_Ipop, O_R3v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1105 */ { UD_Ipop, O_R4v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1106 */ { UD_Ipop, O_R5v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1107 */ { UD_Ipop, O_R6v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1108 */ { UD_Ipop, O_R7v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1109 */ { UD_Ipop, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1110 */ { UD_Ipopa, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 1111 */ { UD_Ipopad, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 1112 */ { UD_Ipopfw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, + /* 1113 */ { UD_Ipopfd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, + /* 1114 */ { UD_Ipopfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 1115 */ { UD_Ipopfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 1116 */ { UD_Ipor, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1117 */ { UD_Ivpor, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1118 */ { UD_Ipor, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1119 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1120 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1121 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1122 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1123 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1124 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1125 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1126 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1127 */ { UD_Iprefetchnta, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1128 */ { UD_Iprefetcht0, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1129 */ { UD_Iprefetcht1, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1130 */ { UD_Iprefetcht2, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1131 */ { UD_Ipsadbw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1132 */ { UD_Ivpsadbw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1133 */ { UD_Ipsadbw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1134 */ { UD_Ipshufw, O_P, O_Q, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1135 */ { UD_Ipsllw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1136 */ { UD_Ipsllw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1137 */ { UD_Ipsllw, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1138 */ { UD_Ipsllw, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1139 */ { UD_Ipslld, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1140 */ { UD_Ipslld, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1141 */ { UD_Ipslld, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1142 */ { UD_Ipslld, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1143 */ { UD_Ipsllq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1144 */ { UD_Ipsllq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1145 */ { UD_Ipsllq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1146 */ { UD_Ipsllq, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1147 */ { UD_Ipsraw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1148 */ { UD_Ipsraw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1149 */ { UD_Ivpsraw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1150 */ { UD_Ipsraw, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1151 */ { UD_Ivpsraw, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1152 */ { UD_Ipsraw, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1153 */ { UD_Ipsrad, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1154 */ { UD_Ipsrad, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1155 */ { UD_Ivpsrad, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1156 */ { UD_Ipsrad, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1157 */ { UD_Ipsrad, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1158 */ { UD_Ivpsrad, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1159 */ { UD_Ipsrlw, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1160 */ { UD_Ipsrlw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1161 */ { UD_Ipsrlw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1162 */ { UD_Ivpsrlw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1163 */ { UD_Ipsrlw, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1164 */ { UD_Ivpsrlw, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1165 */ { UD_Ipsrld, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1166 */ { UD_Ipsrld, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1167 */ { UD_Ipsrld, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1168 */ { UD_Ivpsrld, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1169 */ { UD_Ipsrld, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1170 */ { UD_Ivpsrld, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1171 */ { UD_Ipsrlq, O_N, O_Ib, O_NONE, O_NONE, P_none }, + /* 1172 */ { UD_Ipsrlq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1173 */ { UD_Ipsrlq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1174 */ { UD_Ivpsrlq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1175 */ { UD_Ipsrlq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1176 */ { UD_Ivpsrlq, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1177 */ { UD_Ipsubb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1178 */ { UD_Ivpsubb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1179 */ { UD_Ipsubb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1180 */ { UD_Ipsubw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1181 */ { UD_Ivpsubw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1182 */ { UD_Ipsubw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1183 */ { UD_Ipsubd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1184 */ { UD_Ipsubd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1185 */ { UD_Ivpsubd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1186 */ { UD_Ipsubsb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1187 */ { UD_Ipsubsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1188 */ { UD_Ivpsubsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1189 */ { UD_Ipsubsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1190 */ { UD_Ipsubsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1191 */ { UD_Ivpsubsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1192 */ { UD_Ipsubusb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1193 */ { UD_Ipsubusb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1194 */ { UD_Ivpsubusb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1195 */ { UD_Ipsubusw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1196 */ { UD_Ipsubusw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1197 */ { UD_Ivpsubusw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1198 */ { UD_Ipunpckhbw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1199 */ { UD_Ivpunpckhbw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1200 */ { UD_Ipunpckhbw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1201 */ { UD_Ipunpckhwd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1202 */ { UD_Ivpunpckhwd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1203 */ { UD_Ipunpckhwd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1204 */ { UD_Ipunpckhdq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1205 */ { UD_Ivpunpckhdq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1206 */ { UD_Ipunpckhdq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1207 */ { UD_Ipunpcklbw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1208 */ { UD_Ivpunpcklbw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1209 */ { UD_Ipunpcklbw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1210 */ { UD_Ipunpcklwd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1211 */ { UD_Ivpunpcklwd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1212 */ { UD_Ipunpcklwd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1213 */ { UD_Ipunpckldq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1214 */ { UD_Ivpunpckldq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1215 */ { UD_Ipunpckldq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1216 */ { UD_Ipi2fw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1217 */ { UD_Ipi2fd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1218 */ { UD_Ipf2iw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1219 */ { UD_Ipf2id, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1220 */ { UD_Ipfnacc, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1221 */ { UD_Ipfpnacc, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1222 */ { UD_Ipfcmpge, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1223 */ { UD_Ipfmin, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1224 */ { UD_Ipfrcp, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1225 */ { UD_Ipfrsqrt, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1226 */ { UD_Ipfsub, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1227 */ { UD_Ipfadd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1228 */ { UD_Ipfcmpgt, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1229 */ { UD_Ipfmax, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1230 */ { UD_Ipfrcpit1, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1231 */ { UD_Ipfrsqit1, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1232 */ { UD_Ipfsubr, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1233 */ { UD_Ipfacc, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1234 */ { UD_Ipfcmpeq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1235 */ { UD_Ipfmul, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1236 */ { UD_Ipfrcpit2, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1237 */ { UD_Ipmulhrw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1238 */ { UD_Ipswapd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1239 */ { UD_Ipavgusb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1240 */ { UD_Ipush, O_ES, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1241 */ { UD_Ipush, O_CS, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1242 */ { UD_Ipush, O_SS, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1243 */ { UD_Ipush, O_DS, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1244 */ { UD_Ipush, O_GS, O_NONE, O_NONE, O_NONE, P_none }, + /* 1245 */ { UD_Ipush, O_FS, O_NONE, O_NONE, O_NONE, P_none }, + /* 1246 */ { UD_Ipush, O_R0v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1247 */ { UD_Ipush, O_R1v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1248 */ { UD_Ipush, O_R2v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1249 */ { UD_Ipush, O_R3v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1250 */ { UD_Ipush, O_R4v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1251 */ { UD_Ipush, O_R5v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1252 */ { UD_Ipush, O_R6v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1253 */ { UD_Ipush, O_R7v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, + /* 1254 */ { UD_Ipush, O_sIz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 1255 */ { UD_Ipush, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1256 */ { UD_Ipush, O_sIb, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 1257 */ { UD_Ipusha, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 1258 */ { UD_Ipushad, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 1259 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, + /* 1260 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, + /* 1261 */ { UD_Ipushfd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, + /* 1262 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, + /* 1263 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, + /* 1264 */ { UD_Ipxor, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1265 */ { UD_Ivpxor, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1266 */ { UD_Ipxor, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1267 */ { UD_Ircl, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1268 */ { UD_Ircl, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1269 */ { UD_Ircl, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1270 */ { UD_Ircl, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1271 */ { UD_Ircl, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1272 */ { UD_Ircl, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1273 */ { UD_Ircr, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1274 */ { UD_Ircr, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1275 */ { UD_Ircr, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1276 */ { UD_Ircr, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1277 */ { UD_Ircr, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1278 */ { UD_Ircr, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1279 */ { UD_Irol, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1280 */ { UD_Irol, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1281 */ { UD_Irol, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1282 */ { UD_Irol, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1283 */ { UD_Irol, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1284 */ { UD_Irol, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1285 */ { UD_Iror, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1286 */ { UD_Iror, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1287 */ { UD_Iror, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1288 */ { UD_Iror, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1289 */ { UD_Iror, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1290 */ { UD_Iror, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1291 */ { UD_Ircpps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1292 */ { UD_Ivrcpps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1293 */ { UD_Ircpss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1294 */ { UD_Ivrcpss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1295 */ { UD_Irdmsr, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1296 */ { UD_Irdpmc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1297 */ { UD_Irdtsc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1298 */ { UD_Irdtscp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1299 */ { UD_Irepne, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1300 */ { UD_Irep, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1301 */ { UD_Iret, O_Iw, O_NONE, O_NONE, O_NONE, P_none }, + /* 1302 */ { UD_Iret, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1303 */ { UD_Iretf, O_Iw, O_NONE, O_NONE, O_NONE, P_none }, + /* 1304 */ { UD_Iretf, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1305 */ { UD_Irsm, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1306 */ { UD_Irsqrtps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1307 */ { UD_Ivrsqrtps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1308 */ { UD_Irsqrtss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1309 */ { UD_Ivrsqrtss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1310 */ { UD_Isahf, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1311 */ { UD_Isalc, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 1312 */ { UD_Isar, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1313 */ { UD_Isar, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1314 */ { UD_Isar, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1315 */ { UD_Isar, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1316 */ { UD_Isar, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1317 */ { UD_Isar, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1318 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1319 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1320 */ { UD_Ishl, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1321 */ { UD_Ishl, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1322 */ { UD_Ishl, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1323 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1324 */ { UD_Ishl, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1325 */ { UD_Ishl, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1326 */ { UD_Ishl, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1327 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1328 */ { UD_Ishl, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1329 */ { UD_Ishl, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1330 */ { UD_Ishr, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1331 */ { UD_Ishr, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1332 */ { UD_Ishr, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1333 */ { UD_Ishr, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1334 */ { UD_Ishr, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1335 */ { UD_Ishr, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1336 */ { UD_Isbb, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1337 */ { UD_Isbb, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1338 */ { UD_Isbb, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1339 */ { UD_Isbb, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1340 */ { UD_Isbb, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 1341 */ { UD_Isbb, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 1342 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1343 */ { UD_Isbb, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1344 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 1345 */ { UD_Isbb, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1346 */ { UD_Iscasb, O_NONE, O_NONE, O_NONE, O_NONE, P_strz }, + /* 1347 */ { UD_Iscasw, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw }, + /* 1348 */ { UD_Iscasd, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw }, + /* 1349 */ { UD_Iscasq, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw }, + /* 1350 */ { UD_Iseto, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1351 */ { UD_Isetno, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1352 */ { UD_Isetb, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1353 */ { UD_Isetae, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1354 */ { UD_Isetz, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1355 */ { UD_Isetnz, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1356 */ { UD_Isetbe, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1357 */ { UD_Iseta, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1358 */ { UD_Isets, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1359 */ { UD_Isetns, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1360 */ { UD_Isetp, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1361 */ { UD_Isetnp, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1362 */ { UD_Isetl, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1363 */ { UD_Isetge, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1364 */ { UD_Isetle, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1365 */ { UD_Isetg, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1366 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1367 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1368 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1369 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1370 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1371 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1372 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1373 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1374 */ { UD_Isgdt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1375 */ { UD_Ishld, O_Ev, O_Gv, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1376 */ { UD_Ishld, O_Ev, O_Gv, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1377 */ { UD_Ishrd, O_Ev, O_Gv, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1378 */ { UD_Ishrd, O_Ev, O_Gv, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1379 */ { UD_Ishufpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1380 */ { UD_Ivshufpd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1381 */ { UD_Ishufps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1382 */ { UD_Ivshufps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1383 */ { UD_Isidt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1384 */ { UD_Isldt, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1385 */ { UD_Ismsw, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1386 */ { UD_Ismsw, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1387 */ { UD_Isqrtps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1388 */ { UD_Ivsqrtps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1389 */ { UD_Isqrtpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1390 */ { UD_Ivsqrtpd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1391 */ { UD_Isqrtsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1392 */ { UD_Ivsqrtsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1393 */ { UD_Isqrtss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1394 */ { UD_Ivsqrtss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1395 */ { UD_Istc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1396 */ { UD_Istd, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1397 */ { UD_Istgi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1398 */ { UD_Isti, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1399 */ { UD_Iskinit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1400 */ { UD_Istmxcsr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1401 */ { UD_Ivstmxcsr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1402 */ { UD_Istosb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, + /* 1403 */ { UD_Istosw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 1404 */ { UD_Istosd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 1405 */ { UD_Istosq, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, + /* 1406 */ { UD_Istr, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1407 */ { UD_Isub, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1408 */ { UD_Isub, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1409 */ { UD_Isub, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1410 */ { UD_Isub, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1411 */ { UD_Isub, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 1412 */ { UD_Isub, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 1413 */ { UD_Isub, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1414 */ { UD_Isub, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1415 */ { UD_Isub, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 1416 */ { UD_Isub, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1417 */ { UD_Isubpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1418 */ { UD_Ivsubpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1419 */ { UD_Isubps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1420 */ { UD_Ivsubps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1421 */ { UD_Isubsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1422 */ { UD_Ivsubsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1423 */ { UD_Isubss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1424 */ { UD_Ivsubss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1425 */ { UD_Iswapgs, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1426 */ { UD_Isyscall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1427 */ { UD_Isysenter, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1428 */ { UD_Isysenter, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1429 */ { UD_Isysexit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1430 */ { UD_Isysexit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1431 */ { UD_Isysret, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1432 */ { UD_Itest, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1433 */ { UD_Itest, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1434 */ { UD_Itest, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1435 */ { UD_Itest, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 1436 */ { UD_Itest, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 1437 */ { UD_Itest, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1438 */ { UD_Itest, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1439 */ { UD_Itest, O_Ev, O_Iz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1440 */ { UD_Iucomisd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1441 */ { UD_Ivucomisd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1442 */ { UD_Iucomiss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1443 */ { UD_Ivucomiss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1444 */ { UD_Iud2, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1445 */ { UD_Iunpckhpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1446 */ { UD_Ivunpckhpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1447 */ { UD_Iunpckhps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1448 */ { UD_Ivunpckhps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1449 */ { UD_Iunpcklps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1450 */ { UD_Ivunpcklps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1451 */ { UD_Iunpcklpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1452 */ { UD_Ivunpcklpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1453 */ { UD_Iverr, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1454 */ { UD_Iverw, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1455 */ { UD_Ivmcall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1456 */ { UD_Irdrand, O_R, O_NONE, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1457 */ { UD_Ivmclear, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1458 */ { UD_Ivmxon, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1459 */ { UD_Ivmptrld, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1460 */ { UD_Ivmptrst, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1461 */ { UD_Ivmlaunch, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1462 */ { UD_Ivmresume, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1463 */ { UD_Ivmxoff, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1464 */ { UD_Ivmread, O_Ey, O_Gy, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1465 */ { UD_Ivmwrite, O_Gy, O_Ey, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1466 */ { UD_Ivmrun, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1467 */ { UD_Ivmmcall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1468 */ { UD_Ivmload, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1469 */ { UD_Ivmsave, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1470 */ { UD_Iwait, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1471 */ { UD_Iwbinvd, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1472 */ { UD_Iwrmsr, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1473 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 1474 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1475 */ { UD_Ixchg, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1476 */ { UD_Ixchg, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1477 */ { UD_Ixchg, O_R0v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1478 */ { UD_Ixchg, O_R1v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1479 */ { UD_Ixchg, O_R2v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1480 */ { UD_Ixchg, O_R3v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1481 */ { UD_Ixchg, O_R4v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1482 */ { UD_Ixchg, O_R5v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1483 */ { UD_Ixchg, O_R6v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1484 */ { UD_Ixchg, O_R7v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1485 */ { UD_Ixgetbv, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1486 */ { UD_Ixlatb, O_NONE, O_NONE, O_NONE, O_NONE, P_rexw|P_seg }, + /* 1487 */ { UD_Ixor, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1488 */ { UD_Ixor, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1489 */ { UD_Ixor, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1490 */ { UD_Ixor, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1491 */ { UD_Ixor, O_AL, O_Ib, O_NONE, O_NONE, P_none }, + /* 1492 */ { UD_Ixor, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, + /* 1493 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1494 */ { UD_Ixor, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1495 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 1496 */ { UD_Ixor, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1497 */ { UD_Ixorpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1498 */ { UD_Ivxorpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1499 */ { UD_Ixorps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1500 */ { UD_Ivxorps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1501 */ { UD_Ixcryptecb, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1502 */ { UD_Ixcryptcbc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1503 */ { UD_Ixcryptctr, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1504 */ { UD_Ixcryptcfb, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1505 */ { UD_Ixcryptofb, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1506 */ { UD_Ixrstor, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1507 */ { UD_Ixsave, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1508 */ { UD_Ixsetbv, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1509 */ { UD_Ixsha1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1510 */ { UD_Ixsha256, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1511 */ { UD_Ixstore, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1512 */ { UD_Ipclmulqdq, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1513 */ { UD_Ivpclmulqdq, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1514 */ { UD_Igetsec, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1515 */ { UD_Imovdqa, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1516 */ { UD_Ivmovdqa, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1517 */ { UD_Imovdqa, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1518 */ { UD_Ivmovdqa, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1519 */ { UD_Imaskmovdqu, O_V, O_U, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1520 */ { UD_Ivmaskmovdqu, O_Vx, O_Ux, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1521 */ { UD_Imovdq2q, O_P, O_U, O_NONE, O_NONE, P_aso|P_rexb }, + /* 1522 */ { UD_Imovdqu, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1523 */ { UD_Ivmovdqu, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1524 */ { UD_Imovdqu, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1525 */ { UD_Ivmovdqu, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1526 */ { UD_Imovq2dq, O_V, O_N, O_NONE, O_NONE, P_aso|P_rexr }, + /* 1527 */ { UD_Ipaddq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1528 */ { UD_Ipaddq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1529 */ { UD_Ivpaddq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1530 */ { UD_Ipsubq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1531 */ { UD_Ivpsubq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1532 */ { UD_Ipsubq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1533 */ { UD_Ipmuludq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1534 */ { UD_Ipmuludq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1535 */ { UD_Ipshufhw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1536 */ { UD_Ivpshufhw, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1537 */ { UD_Ipshuflw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1538 */ { UD_Ivpshuflw, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1539 */ { UD_Ipshufd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1540 */ { UD_Ivpshufd, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1541 */ { UD_Ipslldq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1542 */ { UD_Ivpslldq, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1543 */ { UD_Ipsrldq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, + /* 1544 */ { UD_Ivpsrldq, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, + /* 1545 */ { UD_Ipunpckhqdq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1546 */ { UD_Ivpunpckhqdq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1547 */ { UD_Ipunpcklqdq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1548 */ { UD_Ivpunpcklqdq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1549 */ { UD_Ihaddpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1550 */ { UD_Ivhaddpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1551 */ { UD_Ihaddps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1552 */ { UD_Ivhaddps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1553 */ { UD_Ihsubpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1554 */ { UD_Ivhsubpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1555 */ { UD_Ihsubps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1556 */ { UD_Ivhsubps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1557 */ { UD_Iinsertps, O_V, O_Md, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1558 */ { UD_Ivinsertps, O_Vx, O_Hx, O_Md, O_Ib, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1559 */ { UD_Ilddqu, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1560 */ { UD_Ivlddqu, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1561 */ { UD_Imovddup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1562 */ { UD_Ivmovddup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1563 */ { UD_Imovddup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1564 */ { UD_Ivmovddup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1565 */ { UD_Imovshdup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1566 */ { UD_Ivmovshdup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1567 */ { UD_Imovshdup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1568 */ { UD_Ivmovshdup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1569 */ { UD_Imovsldup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1570 */ { UD_Ivmovsldup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1571 */ { UD_Imovsldup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1572 */ { UD_Ivmovsldup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1573 */ { UD_Ipabsb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1574 */ { UD_Ipabsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1575 */ { UD_Ivpabsb, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1576 */ { UD_Ipabsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1577 */ { UD_Ipabsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1578 */ { UD_Ivpabsw, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1579 */ { UD_Ipabsd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1580 */ { UD_Ipabsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1581 */ { UD_Ivpabsd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1582 */ { UD_Ipshufb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1583 */ { UD_Ipshufb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1584 */ { UD_Ivpshufb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1585 */ { UD_Iphaddw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1586 */ { UD_Iphaddw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1587 */ { UD_Ivphaddw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1588 */ { UD_Iphaddd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1589 */ { UD_Iphaddd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1590 */ { UD_Ivphaddd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1591 */ { UD_Iphaddsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1592 */ { UD_Iphaddsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1593 */ { UD_Ivphaddsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1594 */ { UD_Ipmaddubsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1595 */ { UD_Ipmaddubsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1596 */ { UD_Ivpmaddubsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1597 */ { UD_Iphsubw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1598 */ { UD_Iphsubw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1599 */ { UD_Ivphsubw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1600 */ { UD_Iphsubd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1601 */ { UD_Iphsubd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1602 */ { UD_Ivphsubd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1603 */ { UD_Iphsubsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1604 */ { UD_Iphsubsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1605 */ { UD_Ivphsubsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1606 */ { UD_Ipsignb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1607 */ { UD_Ipsignb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1608 */ { UD_Ivpsignb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1609 */ { UD_Ipsignd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1610 */ { UD_Ipsignd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1611 */ { UD_Ivpsignd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1612 */ { UD_Ipsignw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1613 */ { UD_Ipsignw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1614 */ { UD_Ivpsignw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1615 */ { UD_Ipmulhrsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1616 */ { UD_Ipmulhrsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1617 */ { UD_Ivpmulhrsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1618 */ { UD_Ipalignr, O_P, O_Q, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1619 */ { UD_Ipalignr, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1620 */ { UD_Ivpalignr, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1621 */ { UD_Ipblendvb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1622 */ { UD_Ipmuldq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1623 */ { UD_Ivpmuldq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1624 */ { UD_Ipminsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1625 */ { UD_Ivpminsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1626 */ { UD_Ipminsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1627 */ { UD_Ivpminsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1628 */ { UD_Ipminuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1629 */ { UD_Ivpminuw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1630 */ { UD_Ipminud, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1631 */ { UD_Ivpminud, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1632 */ { UD_Ipmaxsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1633 */ { UD_Ivpmaxsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1634 */ { UD_Ipmaxsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1635 */ { UD_Ivpmaxsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1636 */ { UD_Ipmaxud, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1637 */ { UD_Ivpmaxud, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1638 */ { UD_Ipmaxuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1639 */ { UD_Ivpmaxuw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1640 */ { UD_Ipmulld, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1641 */ { UD_Ivpmulld, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1642 */ { UD_Iphminposuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1643 */ { UD_Ivphminposuw, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1644 */ { UD_Iroundps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1645 */ { UD_Ivroundps, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1646 */ { UD_Iroundpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1647 */ { UD_Ivroundpd, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1648 */ { UD_Iroundss, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1649 */ { UD_Ivroundss, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1650 */ { UD_Iroundsd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1651 */ { UD_Ivroundsd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1652 */ { UD_Iblendpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1653 */ { UD_Ivblendpd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1654 */ { UD_Iblendps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1655 */ { UD_Ivblendps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1656 */ { UD_Iblendvpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1657 */ { UD_Iblendvps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1658 */ { UD_Ibound, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso }, + /* 1659 */ { UD_Ibsf, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1660 */ { UD_Ibsr, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1661 */ { UD_Ibswap, O_R0y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1662 */ { UD_Ibswap, O_R1y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1663 */ { UD_Ibswap, O_R2y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1664 */ { UD_Ibswap, O_R3y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1665 */ { UD_Ibswap, O_R4y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1666 */ { UD_Ibswap, O_R5y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1667 */ { UD_Ibswap, O_R6y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1668 */ { UD_Ibswap, O_R7y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 1669 */ { UD_Ibt, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1670 */ { UD_Ibt, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1671 */ { UD_Ibtc, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1672 */ { UD_Ibtc, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1673 */ { UD_Ibtr, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1674 */ { UD_Ibtr, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1675 */ { UD_Ibts, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1676 */ { UD_Ibts, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1677 */ { UD_Ipblendw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1678 */ { UD_Ivpblendw, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1679 */ { UD_Impsadbw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1680 */ { UD_Ivmpsadbw, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1681 */ { UD_Imovntdqa, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1682 */ { UD_Ivmovntdqa, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb|P_vexl }, + /* 1683 */ { UD_Ipackusdw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1684 */ { UD_Ivpackusdw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb|P_vexl }, + /* 1685 */ { UD_Ipmovsxbw, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1686 */ { UD_Ivpmovsxbw, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1687 */ { UD_Ipmovsxbd, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1688 */ { UD_Ivpmovsxbd, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1689 */ { UD_Ipmovsxbq, O_V, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1690 */ { UD_Ivpmovsxbq, O_Vx, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1691 */ { UD_Ipmovsxwd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1692 */ { UD_Ivpmovsxwd, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1693 */ { UD_Ipmovsxwq, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1694 */ { UD_Ivpmovsxwq, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1695 */ { UD_Ipmovsxdq, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1696 */ { UD_Ipmovzxbw, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1697 */ { UD_Ivpmovzxbw, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1698 */ { UD_Ipmovzxbd, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1699 */ { UD_Ivpmovzxbd, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1700 */ { UD_Ipmovzxbq, O_V, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1701 */ { UD_Ivpmovzxbq, O_Vx, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1702 */ { UD_Ipmovzxwd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1703 */ { UD_Ivpmovzxwd, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1704 */ { UD_Ipmovzxwq, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1705 */ { UD_Ivpmovzxwq, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1706 */ { UD_Ipmovzxdq, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1707 */ { UD_Ivpmovzxdq, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1708 */ { UD_Ipcmpeqq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1709 */ { UD_Ivpcmpeqq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1710 */ { UD_Ipopcnt, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1711 */ { UD_Iptest, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1712 */ { UD_Ivptest, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb|P_vexl }, + /* 1713 */ { UD_Ipcmpestri, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1714 */ { UD_Ivpcmpestri, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1715 */ { UD_Ipcmpestrm, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1716 */ { UD_Ivpcmpestrm, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1717 */ { UD_Ipcmpgtq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1718 */ { UD_Ivpcmpgtq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1719 */ { UD_Ipcmpistri, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1720 */ { UD_Ivpcmpistri, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1721 */ { UD_Ipcmpistrm, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1722 */ { UD_Ivpcmpistrm, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1723 */ { UD_Imovbe, O_Gv, O_Mv, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1724 */ { UD_Imovbe, O_Mv, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1725 */ { UD_Icrc32, O_Gy, O_Eb, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1726 */ { UD_Icrc32, O_Gy, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, + /* 1727 */ { UD_Ivbroadcastss, O_V, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1728 */ { UD_Ivbroadcastsd, O_Vqq, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1729 */ { UD_Ivextractf128, O_Wdq, O_Vqq, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1730 */ { UD_Ivinsertf128, O_Vqq, O_Hqq, O_Wdq, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1731 */ { UD_Ivmaskmovps, O_V, O_H, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1732 */ { UD_Ivmaskmovps, O_M, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1733 */ { UD_Ivmaskmovpd, O_V, O_H, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1734 */ { UD_Ivmaskmovpd, O_M, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1735 */ { UD_Ivpermilpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1736 */ { UD_Ivpermilpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1737 */ { UD_Ivpermilps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1738 */ { UD_Ivpermilps, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1739 */ { UD_Ivperm2f128, O_Vqq, O_Hqq, O_Wqq, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1740 */ { UD_Ivtestps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1741 */ { UD_Ivtestpd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1742 */ { UD_Ivzeroupper, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1743 */ { UD_Ivzeroall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, + /* 1744 */ { UD_Ivblendvpd, O_Vx, O_Hx, O_Wx, O_Lx, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1745 */ { UD_Ivblendvps, O_Vx, O_Hx, O_Wx, O_Lx, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, + /* 1746 */ { UD_Ivmovsd, O_V, O_H, O_U, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1747 */ { UD_Ivmovsd, O_V, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1748 */ { UD_Ivmovsd, O_U, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1749 */ { UD_Ivmovsd, O_Mq, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1750 */ { UD_Ivmovss, O_V, O_H, O_U, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1751 */ { UD_Ivmovss, O_V, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1752 */ { UD_Ivmovss, O_U, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1753 */ { UD_Ivmovss, O_Md, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1754 */ { UD_Ivpblendvb, O_V, O_H, O_W, O_L, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1755 */ { UD_Ivpsllw, O_V, O_H, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1756 */ { UD_Ivpsllw, O_H, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1757 */ { UD_Ivpslld, O_V, O_H, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1758 */ { UD_Ivpslld, O_H, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1759 */ { UD_Ivpsllq, O_V, O_H, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1760 */ { UD_Ivpsllq, O_H, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, +}; + + +const char* ud_mnemonics_str[] = { + "aaa", + "aad", + "aam", + "aas", + "adc", + "add", + "addpd", + "addps", + "addsd", + "addss", + "addsubpd", + "addsubps", + "aesdec", + "aesdeclast", + "aesenc", + "aesenclast", + "aesimc", + "aeskeygenassist", + "and", + "andnpd", + "andnps", + "andpd", + "andps", + "arpl", + "blendpd", + "blendps", + "blendvpd", + "blendvps", + "bound", + "bsf", + "bsr", + "bswap", + "bt", + "btc", + "btr", + "bts", + "call", + "cbw", + "cdq", + "cdqe", + "clc", + "cld", + "clflush", + "clgi", + "cli", + "clts", + "cmc", + "cmova", + "cmovae", + "cmovb", + "cmovbe", + "cmovg", + "cmovge", + "cmovl", + "cmovle", + "cmovno", + "cmovnp", + "cmovns", + "cmovnz", + "cmovo", + "cmovp", + "cmovs", + "cmovz", + "cmp", + "cmppd", + "cmpps", + "cmpsb", + "cmpsd", + "cmpsq", + "cmpss", + "cmpsw", + "cmpxchg", + "cmpxchg16b", + "cmpxchg8b", + "comisd", + "comiss", + "cpuid", + "cqo", + "crc32", + "cvtdq2pd", + "cvtdq2ps", + "cvtpd2dq", + "cvtpd2pi", + "cvtpd2ps", + "cvtpi2pd", + "cvtpi2ps", + "cvtps2dq", + "cvtps2pd", + "cvtps2pi", + "cvtsd2si", + "cvtsd2ss", + "cvtsi2sd", + "cvtsi2ss", + "cvtss2sd", + "cvtss2si", + "cvttpd2dq", + "cvttpd2pi", + "cvttps2dq", + "cvttps2pi", + "cvttsd2si", + "cvttss2si", + "cwd", + "cwde", + "daa", + "das", + "dec", + "div", + "divpd", + "divps", + "divsd", + "divss", + "dppd", + "dpps", + "emms", + "enter", + "extractps", + "f2xm1", + "fabs", + "fadd", + "faddp", + "fbld", + "fbstp", + "fchs", + "fclex", + "fcmovb", + "fcmovbe", + "fcmove", + "fcmovnb", + "fcmovnbe", + "fcmovne", + "fcmovnu", + "fcmovu", + "fcom", + "fcom2", + "fcomi", + "fcomip", + "fcomp", + "fcomp3", + "fcomp5", + "fcompp", + "fcos", + "fdecstp", + "fdiv", + "fdivp", + "fdivr", + "fdivrp", + "femms", + "ffree", + "ffreep", + "fiadd", + "ficom", + "ficomp", + "fidiv", + "fidivr", + "fild", + "fimul", + "fincstp", + "fist", + "fistp", + "fisttp", + "fisub", + "fisubr", + "fld", + "fld1", + "fldcw", + "fldenv", + "fldl2e", + "fldl2t", + "fldlg2", + "fldln2", + "fldpi", + "fldz", + "fmul", + "fmulp", + "fndisi", + "fneni", + "fninit", + "fnop", + "fnsave", + "fnsetpm", + "fnstcw", + "fnstenv", + "fnstsw", + "fpatan", + "fprem", + "fprem1", + "fptan", + "frndint", + "frstor", + "frstpm", + "fscale", + "fsin", + "fsincos", + "fsqrt", + "fst", + "fstp", + "fstp1", + "fstp8", + "fstp9", + "fsub", + "fsubp", + "fsubr", + "fsubrp", + "ftst", + "fucom", + "fucomi", + "fucomip", + "fucomp", + "fucompp", + "fxam", + "fxch", + "fxch4", + "fxch7", + "fxrstor", + "fxsave", + "fxtract", + "fyl2x", + "fyl2xp1", + "getsec", + "haddpd", + "haddps", + "hlt", + "hsubpd", + "hsubps", + "idiv", + "imul", + "in", + "inc", + "insb", + "insd", + "insertps", + "insw", + "int", + "int1", + "int3", + "into", + "invd", + "invept", + "invlpg", + "invlpga", + "invvpid", + "iretd", + "iretq", + "iretw", + "ja", + "jae", + "jb", + "jbe", + "jcxz", + "jecxz", + "jg", + "jge", + "jl", + "jle", + "jmp", + "jno", + "jnp", + "jns", + "jnz", + "jo", + "jp", + "jrcxz", + "js", + "jz", + "lahf", + "lar", + "lddqu", + "ldmxcsr", + "lds", + "lea", + "leave", + "les", + "lfence", + "lfs", + "lgdt", + "lgs", + "lidt", + "lldt", + "lmsw", + "lock", + "lodsb", + "lodsd", + "lodsq", + "lodsw", + "loop", + "loope", + "loopne", + "lsl", + "lss", + "ltr", + "maskmovdqu", + "maskmovq", + "maxpd", + "maxps", + "maxsd", + "maxss", + "mfence", + "minpd", + "minps", + "minsd", + "minss", + "monitor", + "montmul", + "mov", + "movapd", + "movaps", + "movbe", + "movd", + "movddup", + "movdq2q", + "movdqa", + "movdqu", + "movhlps", + "movhpd", + "movhps", + "movlhps", + "movlpd", + "movlps", + "movmskpd", + "movmskps", + "movntdq", + "movntdqa", + "movnti", + "movntpd", + "movntps", + "movntq", + "movq", + "movq2dq", + "movsb", + "movsd", + "movshdup", + "movsldup", + "movsq", + "movss", + "movsw", + "movsx", + "movsxd", + "movupd", + "movups", + "movzx", + "mpsadbw", + "mul", + "mulpd", + "mulps", + "mulsd", + "mulss", + "mwait", + "neg", + "nop", + "not", + "or", + "orpd", + "orps", + "out", + "outsb", + "outsd", + "outsw", + "pabsb", + "pabsd", + "pabsw", + "packssdw", + "packsswb", + "packusdw", + "packuswb", + "paddb", + "paddd", + "paddq", + "paddsb", + "paddsw", + "paddusb", + "paddusw", + "paddw", + "palignr", + "pand", + "pandn", + "pavgb", + "pavgusb", + "pavgw", + "pblendvb", + "pblendw", + "pclmulqdq", + "pcmpeqb", + "pcmpeqd", + "pcmpeqq", + "pcmpeqw", + "pcmpestri", + "pcmpestrm", + "pcmpgtb", + "pcmpgtd", + "pcmpgtq", + "pcmpgtw", + "pcmpistri", + "pcmpistrm", + "pextrb", + "pextrd", + "pextrq", + "pextrw", + "pf2id", + "pf2iw", + "pfacc", + "pfadd", + "pfcmpeq", + "pfcmpge", + "pfcmpgt", + "pfmax", + "pfmin", + "pfmul", + "pfnacc", + "pfpnacc", + "pfrcp", + "pfrcpit1", + "pfrcpit2", + "pfrsqit1", + "pfrsqrt", + "pfsub", + "pfsubr", + "phaddd", + "phaddsw", + "phaddw", + "phminposuw", + "phsubd", + "phsubsw", + "phsubw", + "pi2fd", + "pi2fw", + "pinsrb", + "pinsrd", + "pinsrq", + "pinsrw", + "pmaddubsw", + "pmaddwd", + "pmaxsb", + "pmaxsd", + "pmaxsw", + "pmaxub", + "pmaxud", + "pmaxuw", + "pminsb", + "pminsd", + "pminsw", + "pminub", + "pminud", + "pminuw", + "pmovmskb", + "pmovsxbd", + "pmovsxbq", + "pmovsxbw", + "pmovsxdq", + "pmovsxwd", + "pmovsxwq", + "pmovzxbd", + "pmovzxbq", + "pmovzxbw", + "pmovzxdq", + "pmovzxwd", + "pmovzxwq", + "pmuldq", + "pmulhrsw", + "pmulhrw", + "pmulhuw", + "pmulhw", + "pmulld", + "pmullw", + "pmuludq", + "pop", + "popa", + "popad", + "popcnt", + "popfd", + "popfq", + "popfw", + "por", + "prefetch", + "prefetchnta", + "prefetcht0", + "prefetcht1", + "prefetcht2", + "psadbw", + "pshufb", + "pshufd", + "pshufhw", + "pshuflw", + "pshufw", + "psignb", + "psignd", + "psignw", + "pslld", + "pslldq", + "psllq", + "psllw", + "psrad", + "psraw", + "psrld", + "psrldq", + "psrlq", + "psrlw", + "psubb", + "psubd", + "psubq", + "psubsb", + "psubsw", + "psubusb", + "psubusw", + "psubw", + "pswapd", + "ptest", + "punpckhbw", + "punpckhdq", + "punpckhqdq", + "punpckhwd", + "punpcklbw", + "punpckldq", + "punpcklqdq", + "punpcklwd", + "push", + "pusha", + "pushad", + "pushfd", + "pushfq", + "pushfw", + "pxor", + "rcl", + "rcpps", + "rcpss", + "rcr", + "rdmsr", + "rdpmc", + "rdrand", + "rdtsc", + "rdtscp", + "rep", + "repne", + "ret", + "retf", + "rol", + "ror", + "roundpd", + "roundps", + "roundsd", + "roundss", + "rsm", + "rsqrtps", + "rsqrtss", + "sahf", + "salc", + "sar", + "sbb", + "scasb", + "scasd", + "scasq", + "scasw", + "seta", + "setae", + "setb", + "setbe", + "setg", + "setge", + "setl", + "setle", + "setno", + "setnp", + "setns", + "setnz", + "seto", + "setp", + "sets", + "setz", + "sfence", + "sgdt", + "shl", + "shld", + "shr", + "shrd", + "shufpd", + "shufps", + "sidt", + "skinit", + "sldt", + "smsw", + "sqrtpd", + "sqrtps", + "sqrtsd", + "sqrtss", + "stc", + "std", + "stgi", + "sti", + "stmxcsr", + "stosb", + "stosd", + "stosq", + "stosw", + "str", + "sub", + "subpd", + "subps", + "subsd", + "subss", + "swapgs", + "syscall", + "sysenter", + "sysexit", + "sysret", + "test", + "ucomisd", + "ucomiss", + "ud2", + "unpckhpd", + "unpckhps", + "unpcklpd", + "unpcklps", + "vaddpd", + "vaddps", + "vaddsd", + "vaddss", + "vaddsubpd", + "vaddsubps", + "vaesdec", + "vaesdeclast", + "vaesenc", + "vaesenclast", + "vaesimc", + "vaeskeygenassist", + "vandnpd", + "vandnps", + "vandpd", + "vandps", + "vblendpd", + "vblendps", + "vblendvpd", + "vblendvps", + "vbroadcastsd", + "vbroadcastss", + "vcmppd", + "vcmpps", + "vcmpsd", + "vcmpss", + "vcomisd", + "vcomiss", + "vcvtdq2pd", + "vcvtdq2ps", + "vcvtpd2dq", + "vcvtpd2ps", + "vcvtps2dq", + "vcvtps2pd", + "vcvtsd2si", + "vcvtsd2ss", + "vcvtsi2sd", + "vcvtsi2ss", + "vcvtss2sd", + "vcvtss2si", + "vcvttpd2dq", + "vcvttps2dq", + "vcvttsd2si", + "vcvttss2si", + "vdivpd", + "vdivps", + "vdivsd", + "vdivss", + "vdppd", + "vdpps", + "verr", + "verw", + "vextractf128", + "vextractps", + "vhaddpd", + "vhaddps", + "vhsubpd", + "vhsubps", + "vinsertf128", + "vinsertps", + "vlddqu", + "vmaskmovdqu", + "vmaskmovpd", + "vmaskmovps", + "vmaxpd", + "vmaxps", + "vmaxsd", + "vmaxss", + "vmcall", + "vmclear", + "vminpd", + "vminps", + "vminsd", + "vminss", + "vmlaunch", + "vmload", + "vmmcall", + "vmovapd", + "vmovaps", + "vmovd", + "vmovddup", + "vmovdqa", + "vmovdqu", + "vmovhlps", + "vmovhpd", + "vmovhps", + "vmovlhps", + "vmovlpd", + "vmovlps", + "vmovmskpd", + "vmovmskps", + "vmovntdq", + "vmovntdqa", + "vmovntpd", + "vmovntps", + "vmovq", + "vmovsd", + "vmovshdup", + "vmovsldup", + "vmovss", + "vmovupd", + "vmovups", + "vmpsadbw", + "vmptrld", + "vmptrst", + "vmread", + "vmresume", + "vmrun", + "vmsave", + "vmulpd", + "vmulps", + "vmulsd", + "vmulss", + "vmwrite", + "vmxoff", + "vmxon", + "vorpd", + "vorps", + "vpabsb", + "vpabsd", + "vpabsw", + "vpackssdw", + "vpacksswb", + "vpackusdw", + "vpackuswb", + "vpaddb", + "vpaddd", + "vpaddq", + "vpaddsb", + "vpaddsw", + "vpaddusb", + "vpaddusw", + "vpaddw", + "vpalignr", + "vpand", + "vpandn", + "vpavgb", + "vpavgw", + "vpblendvb", + "vpblendw", + "vpclmulqdq", + "vpcmpeqb", + "vpcmpeqd", + "vpcmpeqq", + "vpcmpeqw", + "vpcmpestri", + "vpcmpestrm", + "vpcmpgtb", + "vpcmpgtd", + "vpcmpgtq", + "vpcmpgtw", + "vpcmpistri", + "vpcmpistrm", + "vperm2f128", + "vpermilpd", + "vpermilps", + "vpextrb", + "vpextrd", + "vpextrq", + "vpextrw", + "vphaddd", + "vphaddsw", + "vphaddw", + "vphminposuw", + "vphsubd", + "vphsubsw", + "vphsubw", + "vpinsrb", + "vpinsrd", + "vpinsrq", + "vpinsrw", + "vpmaddubsw", + "vpmaddwd", + "vpmaxsb", + "vpmaxsd", + "vpmaxsw", + "vpmaxub", + "vpmaxud", + "vpmaxuw", + "vpminsb", + "vpminsd", + "vpminsw", + "vpminub", + "vpminud", + "vpminuw", + "vpmovmskb", + "vpmovsxbd", + "vpmovsxbq", + "vpmovsxbw", + "vpmovsxwd", + "vpmovsxwq", + "vpmovzxbd", + "vpmovzxbq", + "vpmovzxbw", + "vpmovzxdq", + "vpmovzxwd", + "vpmovzxwq", + "vpmuldq", + "vpmulhrsw", + "vpmulhuw", + "vpmulhw", + "vpmulld", + "vpmullw", + "vpor", + "vpsadbw", + "vpshufb", + "vpshufd", + "vpshufhw", + "vpshuflw", + "vpsignb", + "vpsignd", + "vpsignw", + "vpslld", + "vpslldq", + "vpsllq", + "vpsllw", + "vpsrad", + "vpsraw", + "vpsrld", + "vpsrldq", + "vpsrlq", + "vpsrlw", + "vpsubb", + "vpsubd", + "vpsubq", + "vpsubsb", + "vpsubsw", + "vpsubusb", + "vpsubusw", + "vpsubw", + "vptest", + "vpunpckhbw", + "vpunpckhdq", + "vpunpckhqdq", + "vpunpckhwd", + "vpunpcklbw", + "vpunpckldq", + "vpunpcklqdq", + "vpunpcklwd", + "vpxor", + "vrcpps", + "vrcpss", + "vroundpd", + "vroundps", + "vroundsd", + "vroundss", + "vrsqrtps", + "vrsqrtss", + "vshufpd", + "vshufps", + "vsqrtpd", + "vsqrtps", + "vsqrtsd", + "vsqrtss", + "vstmxcsr", + "vsubpd", + "vsubps", + "vsubsd", + "vsubss", + "vtestpd", + "vtestps", + "vucomisd", + "vucomiss", + "vunpckhpd", + "vunpckhps", + "vunpcklpd", + "vunpcklps", + "vxorpd", + "vxorps", + "vzeroall", + "vzeroupper", + "wait", + "wbinvd", + "wrmsr", + "xadd", + "xchg", + "xcryptcbc", + "xcryptcfb", + "xcryptctr", + "xcryptecb", + "xcryptofb", + "xgetbv", + "xlatb", + "xor", + "xorpd", + "xorps", + "xrstor", + "xsave", + "xsetbv", + "xsha1", + "xsha256", + "xstore", + "invalid", + "3dnow", + "none", + "db", + "pause" +}; diff --git a/deps/extra/udis86/libudis86/itab.h b/deps/extra/udis86/libudis86/itab.h new file mode 100644 index 00000000..3d54c435 --- /dev/null +++ b/deps/extra/udis86/libudis86/itab.h @@ -0,0 +1,939 @@ +#ifndef UD_ITAB_H +#define UD_ITAB_H + +/* itab.h -- generated by udis86:scripts/ud_itab.py, do no edit */ + +/* ud_table_type -- lookup table types (see decode.c) */ +enum ud_table_type { + UD_TAB__OPC_VEX, + UD_TAB__OPC_TABLE, + UD_TAB__OPC_X87, + UD_TAB__OPC_MOD, + UD_TAB__OPC_RM, + UD_TAB__OPC_OSIZE, + UD_TAB__OPC_MODE, + UD_TAB__OPC_VEX_L, + UD_TAB__OPC_3DNOW, + UD_TAB__OPC_REG, + UD_TAB__OPC_ASIZE, + UD_TAB__OPC_VEX_W, + UD_TAB__OPC_SSE, + UD_TAB__OPC_VENDOR +}; + +/* ud_mnemonic -- mnemonic constants */ +enum ud_mnemonic_code { + UD_Iaaa, + UD_Iaad, + UD_Iaam, + UD_Iaas, + UD_Iadc, + UD_Iadd, + UD_Iaddpd, + UD_Iaddps, + UD_Iaddsd, + UD_Iaddss, + UD_Iaddsubpd, + UD_Iaddsubps, + UD_Iaesdec, + UD_Iaesdeclast, + UD_Iaesenc, + UD_Iaesenclast, + UD_Iaesimc, + UD_Iaeskeygenassist, + UD_Iand, + UD_Iandnpd, + UD_Iandnps, + UD_Iandpd, + UD_Iandps, + UD_Iarpl, + UD_Iblendpd, + UD_Iblendps, + UD_Iblendvpd, + UD_Iblendvps, + UD_Ibound, + UD_Ibsf, + UD_Ibsr, + UD_Ibswap, + UD_Ibt, + UD_Ibtc, + UD_Ibtr, + UD_Ibts, + UD_Icall, + UD_Icbw, + UD_Icdq, + UD_Icdqe, + UD_Iclc, + UD_Icld, + UD_Iclflush, + UD_Iclgi, + UD_Icli, + UD_Iclts, + UD_Icmc, + UD_Icmova, + UD_Icmovae, + UD_Icmovb, + UD_Icmovbe, + UD_Icmovg, + UD_Icmovge, + UD_Icmovl, + UD_Icmovle, + UD_Icmovno, + UD_Icmovnp, + UD_Icmovns, + UD_Icmovnz, + UD_Icmovo, + UD_Icmovp, + UD_Icmovs, + UD_Icmovz, + UD_Icmp, + UD_Icmppd, + UD_Icmpps, + UD_Icmpsb, + UD_Icmpsd, + UD_Icmpsq, + UD_Icmpss, + UD_Icmpsw, + UD_Icmpxchg, + UD_Icmpxchg16b, + UD_Icmpxchg8b, + UD_Icomisd, + UD_Icomiss, + UD_Icpuid, + UD_Icqo, + UD_Icrc32, + UD_Icvtdq2pd, + UD_Icvtdq2ps, + UD_Icvtpd2dq, + UD_Icvtpd2pi, + UD_Icvtpd2ps, + UD_Icvtpi2pd, + UD_Icvtpi2ps, + UD_Icvtps2dq, + UD_Icvtps2pd, + UD_Icvtps2pi, + UD_Icvtsd2si, + UD_Icvtsd2ss, + UD_Icvtsi2sd, + UD_Icvtsi2ss, + UD_Icvtss2sd, + UD_Icvtss2si, + UD_Icvttpd2dq, + UD_Icvttpd2pi, + UD_Icvttps2dq, + UD_Icvttps2pi, + UD_Icvttsd2si, + UD_Icvttss2si, + UD_Icwd, + UD_Icwde, + UD_Idaa, + UD_Idas, + UD_Idec, + UD_Idiv, + UD_Idivpd, + UD_Idivps, + UD_Idivsd, + UD_Idivss, + UD_Idppd, + UD_Idpps, + UD_Iemms, + UD_Ienter, + UD_Iextractps, + UD_If2xm1, + UD_Ifabs, + UD_Ifadd, + UD_Ifaddp, + UD_Ifbld, + UD_Ifbstp, + UD_Ifchs, + UD_Ifclex, + UD_Ifcmovb, + UD_Ifcmovbe, + UD_Ifcmove, + UD_Ifcmovnb, + UD_Ifcmovnbe, + UD_Ifcmovne, + UD_Ifcmovnu, + UD_Ifcmovu, + UD_Ifcom, + UD_Ifcom2, + UD_Ifcomi, + UD_Ifcomip, + UD_Ifcomp, + UD_Ifcomp3, + UD_Ifcomp5, + UD_Ifcompp, + UD_Ifcos, + UD_Ifdecstp, + UD_Ifdiv, + UD_Ifdivp, + UD_Ifdivr, + UD_Ifdivrp, + UD_Ifemms, + UD_Iffree, + UD_Iffreep, + UD_Ifiadd, + UD_Ificom, + UD_Ificomp, + UD_Ifidiv, + UD_Ifidivr, + UD_Ifild, + UD_Ifimul, + UD_Ifincstp, + UD_Ifist, + UD_Ifistp, + UD_Ifisttp, + UD_Ifisub, + UD_Ifisubr, + UD_Ifld, + UD_Ifld1, + UD_Ifldcw, + UD_Ifldenv, + UD_Ifldl2e, + UD_Ifldl2t, + UD_Ifldlg2, + UD_Ifldln2, + UD_Ifldpi, + UD_Ifldz, + UD_Ifmul, + UD_Ifmulp, + UD_Ifndisi, + UD_Ifneni, + UD_Ifninit, + UD_Ifnop, + UD_Ifnsave, + UD_Ifnsetpm, + UD_Ifnstcw, + UD_Ifnstenv, + UD_Ifnstsw, + UD_Ifpatan, + UD_Ifprem, + UD_Ifprem1, + UD_Ifptan, + UD_Ifrndint, + UD_Ifrstor, + UD_Ifrstpm, + UD_Ifscale, + UD_Ifsin, + UD_Ifsincos, + UD_Ifsqrt, + UD_Ifst, + UD_Ifstp, + UD_Ifstp1, + UD_Ifstp8, + UD_Ifstp9, + UD_Ifsub, + UD_Ifsubp, + UD_Ifsubr, + UD_Ifsubrp, + UD_Iftst, + UD_Ifucom, + UD_Ifucomi, + UD_Ifucomip, + UD_Ifucomp, + UD_Ifucompp, + UD_Ifxam, + UD_Ifxch, + UD_Ifxch4, + UD_Ifxch7, + UD_Ifxrstor, + UD_Ifxsave, + UD_Ifxtract, + UD_Ifyl2x, + UD_Ifyl2xp1, + UD_Igetsec, + UD_Ihaddpd, + UD_Ihaddps, + UD_Ihlt, + UD_Ihsubpd, + UD_Ihsubps, + UD_Iidiv, + UD_Iimul, + UD_Iin, + UD_Iinc, + UD_Iinsb, + UD_Iinsd, + UD_Iinsertps, + UD_Iinsw, + UD_Iint, + UD_Iint1, + UD_Iint3, + UD_Iinto, + UD_Iinvd, + UD_Iinvept, + UD_Iinvlpg, + UD_Iinvlpga, + UD_Iinvvpid, + UD_Iiretd, + UD_Iiretq, + UD_Iiretw, + UD_Ija, + UD_Ijae, + UD_Ijb, + UD_Ijbe, + UD_Ijcxz, + UD_Ijecxz, + UD_Ijg, + UD_Ijge, + UD_Ijl, + UD_Ijle, + UD_Ijmp, + UD_Ijno, + UD_Ijnp, + UD_Ijns, + UD_Ijnz, + UD_Ijo, + UD_Ijp, + UD_Ijrcxz, + UD_Ijs, + UD_Ijz, + UD_Ilahf, + UD_Ilar, + UD_Ilddqu, + UD_Ildmxcsr, + UD_Ilds, + UD_Ilea, + UD_Ileave, + UD_Iles, + UD_Ilfence, + UD_Ilfs, + UD_Ilgdt, + UD_Ilgs, + UD_Ilidt, + UD_Illdt, + UD_Ilmsw, + UD_Ilock, + UD_Ilodsb, + UD_Ilodsd, + UD_Ilodsq, + UD_Ilodsw, + UD_Iloop, + UD_Iloope, + UD_Iloopne, + UD_Ilsl, + UD_Ilss, + UD_Iltr, + UD_Imaskmovdqu, + UD_Imaskmovq, + UD_Imaxpd, + UD_Imaxps, + UD_Imaxsd, + UD_Imaxss, + UD_Imfence, + UD_Iminpd, + UD_Iminps, + UD_Iminsd, + UD_Iminss, + UD_Imonitor, + UD_Imontmul, + UD_Imov, + UD_Imovapd, + UD_Imovaps, + UD_Imovbe, + UD_Imovd, + UD_Imovddup, + UD_Imovdq2q, + UD_Imovdqa, + UD_Imovdqu, + UD_Imovhlps, + UD_Imovhpd, + UD_Imovhps, + UD_Imovlhps, + UD_Imovlpd, + UD_Imovlps, + UD_Imovmskpd, + UD_Imovmskps, + UD_Imovntdq, + UD_Imovntdqa, + UD_Imovnti, + UD_Imovntpd, + UD_Imovntps, + UD_Imovntq, + UD_Imovq, + UD_Imovq2dq, + UD_Imovsb, + UD_Imovsd, + UD_Imovshdup, + UD_Imovsldup, + UD_Imovsq, + UD_Imovss, + UD_Imovsw, + UD_Imovsx, + UD_Imovsxd, + UD_Imovupd, + UD_Imovups, + UD_Imovzx, + UD_Impsadbw, + UD_Imul, + UD_Imulpd, + UD_Imulps, + UD_Imulsd, + UD_Imulss, + UD_Imwait, + UD_Ineg, + UD_Inop, + UD_Inot, + UD_Ior, + UD_Iorpd, + UD_Iorps, + UD_Iout, + UD_Ioutsb, + UD_Ioutsd, + UD_Ioutsw, + UD_Ipabsb, + UD_Ipabsd, + UD_Ipabsw, + UD_Ipackssdw, + UD_Ipacksswb, + UD_Ipackusdw, + UD_Ipackuswb, + UD_Ipaddb, + UD_Ipaddd, + UD_Ipaddq, + UD_Ipaddsb, + UD_Ipaddsw, + UD_Ipaddusb, + UD_Ipaddusw, + UD_Ipaddw, + UD_Ipalignr, + UD_Ipand, + UD_Ipandn, + UD_Ipavgb, + UD_Ipavgusb, + UD_Ipavgw, + UD_Ipblendvb, + UD_Ipblendw, + UD_Ipclmulqdq, + UD_Ipcmpeqb, + UD_Ipcmpeqd, + UD_Ipcmpeqq, + UD_Ipcmpeqw, + UD_Ipcmpestri, + UD_Ipcmpestrm, + UD_Ipcmpgtb, + UD_Ipcmpgtd, + UD_Ipcmpgtq, + UD_Ipcmpgtw, + UD_Ipcmpistri, + UD_Ipcmpistrm, + UD_Ipextrb, + UD_Ipextrd, + UD_Ipextrq, + UD_Ipextrw, + UD_Ipf2id, + UD_Ipf2iw, + UD_Ipfacc, + UD_Ipfadd, + UD_Ipfcmpeq, + UD_Ipfcmpge, + UD_Ipfcmpgt, + UD_Ipfmax, + UD_Ipfmin, + UD_Ipfmul, + UD_Ipfnacc, + UD_Ipfpnacc, + UD_Ipfrcp, + UD_Ipfrcpit1, + UD_Ipfrcpit2, + UD_Ipfrsqit1, + UD_Ipfrsqrt, + UD_Ipfsub, + UD_Ipfsubr, + UD_Iphaddd, + UD_Iphaddsw, + UD_Iphaddw, + UD_Iphminposuw, + UD_Iphsubd, + UD_Iphsubsw, + UD_Iphsubw, + UD_Ipi2fd, + UD_Ipi2fw, + UD_Ipinsrb, + UD_Ipinsrd, + UD_Ipinsrq, + UD_Ipinsrw, + UD_Ipmaddubsw, + UD_Ipmaddwd, + UD_Ipmaxsb, + UD_Ipmaxsd, + UD_Ipmaxsw, + UD_Ipmaxub, + UD_Ipmaxud, + UD_Ipmaxuw, + UD_Ipminsb, + UD_Ipminsd, + UD_Ipminsw, + UD_Ipminub, + UD_Ipminud, + UD_Ipminuw, + UD_Ipmovmskb, + UD_Ipmovsxbd, + UD_Ipmovsxbq, + UD_Ipmovsxbw, + UD_Ipmovsxdq, + UD_Ipmovsxwd, + UD_Ipmovsxwq, + UD_Ipmovzxbd, + UD_Ipmovzxbq, + UD_Ipmovzxbw, + UD_Ipmovzxdq, + UD_Ipmovzxwd, + UD_Ipmovzxwq, + UD_Ipmuldq, + UD_Ipmulhrsw, + UD_Ipmulhrw, + UD_Ipmulhuw, + UD_Ipmulhw, + UD_Ipmulld, + UD_Ipmullw, + UD_Ipmuludq, + UD_Ipop, + UD_Ipopa, + UD_Ipopad, + UD_Ipopcnt, + UD_Ipopfd, + UD_Ipopfq, + UD_Ipopfw, + UD_Ipor, + UD_Iprefetch, + UD_Iprefetchnta, + UD_Iprefetcht0, + UD_Iprefetcht1, + UD_Iprefetcht2, + UD_Ipsadbw, + UD_Ipshufb, + UD_Ipshufd, + UD_Ipshufhw, + UD_Ipshuflw, + UD_Ipshufw, + UD_Ipsignb, + UD_Ipsignd, + UD_Ipsignw, + UD_Ipslld, + UD_Ipslldq, + UD_Ipsllq, + UD_Ipsllw, + UD_Ipsrad, + UD_Ipsraw, + UD_Ipsrld, + UD_Ipsrldq, + UD_Ipsrlq, + UD_Ipsrlw, + UD_Ipsubb, + UD_Ipsubd, + UD_Ipsubq, + UD_Ipsubsb, + UD_Ipsubsw, + UD_Ipsubusb, + UD_Ipsubusw, + UD_Ipsubw, + UD_Ipswapd, + UD_Iptest, + UD_Ipunpckhbw, + UD_Ipunpckhdq, + UD_Ipunpckhqdq, + UD_Ipunpckhwd, + UD_Ipunpcklbw, + UD_Ipunpckldq, + UD_Ipunpcklqdq, + UD_Ipunpcklwd, + UD_Ipush, + UD_Ipusha, + UD_Ipushad, + UD_Ipushfd, + UD_Ipushfq, + UD_Ipushfw, + UD_Ipxor, + UD_Ircl, + UD_Ircpps, + UD_Ircpss, + UD_Ircr, + UD_Irdmsr, + UD_Irdpmc, + UD_Irdrand, + UD_Irdtsc, + UD_Irdtscp, + UD_Irep, + UD_Irepne, + UD_Iret, + UD_Iretf, + UD_Irol, + UD_Iror, + UD_Iroundpd, + UD_Iroundps, + UD_Iroundsd, + UD_Iroundss, + UD_Irsm, + UD_Irsqrtps, + UD_Irsqrtss, + UD_Isahf, + UD_Isalc, + UD_Isar, + UD_Isbb, + UD_Iscasb, + UD_Iscasd, + UD_Iscasq, + UD_Iscasw, + UD_Iseta, + UD_Isetae, + UD_Isetb, + UD_Isetbe, + UD_Isetg, + UD_Isetge, + UD_Isetl, + UD_Isetle, + UD_Isetno, + UD_Isetnp, + UD_Isetns, + UD_Isetnz, + UD_Iseto, + UD_Isetp, + UD_Isets, + UD_Isetz, + UD_Isfence, + UD_Isgdt, + UD_Ishl, + UD_Ishld, + UD_Ishr, + UD_Ishrd, + UD_Ishufpd, + UD_Ishufps, + UD_Isidt, + UD_Iskinit, + UD_Isldt, + UD_Ismsw, + UD_Isqrtpd, + UD_Isqrtps, + UD_Isqrtsd, + UD_Isqrtss, + UD_Istc, + UD_Istd, + UD_Istgi, + UD_Isti, + UD_Istmxcsr, + UD_Istosb, + UD_Istosd, + UD_Istosq, + UD_Istosw, + UD_Istr, + UD_Isub, + UD_Isubpd, + UD_Isubps, + UD_Isubsd, + UD_Isubss, + UD_Iswapgs, + UD_Isyscall, + UD_Isysenter, + UD_Isysexit, + UD_Isysret, + UD_Itest, + UD_Iucomisd, + UD_Iucomiss, + UD_Iud2, + UD_Iunpckhpd, + UD_Iunpckhps, + UD_Iunpcklpd, + UD_Iunpcklps, + UD_Ivaddpd, + UD_Ivaddps, + UD_Ivaddsd, + UD_Ivaddss, + UD_Ivaddsubpd, + UD_Ivaddsubps, + UD_Ivaesdec, + UD_Ivaesdeclast, + UD_Ivaesenc, + UD_Ivaesenclast, + UD_Ivaesimc, + UD_Ivaeskeygenassist, + UD_Ivandnpd, + UD_Ivandnps, + UD_Ivandpd, + UD_Ivandps, + UD_Ivblendpd, + UD_Ivblendps, + UD_Ivblendvpd, + UD_Ivblendvps, + UD_Ivbroadcastsd, + UD_Ivbroadcastss, + UD_Ivcmppd, + UD_Ivcmpps, + UD_Ivcmpsd, + UD_Ivcmpss, + UD_Ivcomisd, + UD_Ivcomiss, + UD_Ivcvtdq2pd, + UD_Ivcvtdq2ps, + UD_Ivcvtpd2dq, + UD_Ivcvtpd2ps, + UD_Ivcvtps2dq, + UD_Ivcvtps2pd, + UD_Ivcvtsd2si, + UD_Ivcvtsd2ss, + UD_Ivcvtsi2sd, + UD_Ivcvtsi2ss, + UD_Ivcvtss2sd, + UD_Ivcvtss2si, + UD_Ivcvttpd2dq, + UD_Ivcvttps2dq, + UD_Ivcvttsd2si, + UD_Ivcvttss2si, + UD_Ivdivpd, + UD_Ivdivps, + UD_Ivdivsd, + UD_Ivdivss, + UD_Ivdppd, + UD_Ivdpps, + UD_Iverr, + UD_Iverw, + UD_Ivextractf128, + UD_Ivextractps, + UD_Ivhaddpd, + UD_Ivhaddps, + UD_Ivhsubpd, + UD_Ivhsubps, + UD_Ivinsertf128, + UD_Ivinsertps, + UD_Ivlddqu, + UD_Ivmaskmovdqu, + UD_Ivmaskmovpd, + UD_Ivmaskmovps, + UD_Ivmaxpd, + UD_Ivmaxps, + UD_Ivmaxsd, + UD_Ivmaxss, + UD_Ivmcall, + UD_Ivmclear, + UD_Ivminpd, + UD_Ivminps, + UD_Ivminsd, + UD_Ivminss, + UD_Ivmlaunch, + UD_Ivmload, + UD_Ivmmcall, + UD_Ivmovapd, + UD_Ivmovaps, + UD_Ivmovd, + UD_Ivmovddup, + UD_Ivmovdqa, + UD_Ivmovdqu, + UD_Ivmovhlps, + UD_Ivmovhpd, + UD_Ivmovhps, + UD_Ivmovlhps, + UD_Ivmovlpd, + UD_Ivmovlps, + UD_Ivmovmskpd, + UD_Ivmovmskps, + UD_Ivmovntdq, + UD_Ivmovntdqa, + UD_Ivmovntpd, + UD_Ivmovntps, + UD_Ivmovq, + UD_Ivmovsd, + UD_Ivmovshdup, + UD_Ivmovsldup, + UD_Ivmovss, + UD_Ivmovupd, + UD_Ivmovups, + UD_Ivmpsadbw, + UD_Ivmptrld, + UD_Ivmptrst, + UD_Ivmread, + UD_Ivmresume, + UD_Ivmrun, + UD_Ivmsave, + UD_Ivmulpd, + UD_Ivmulps, + UD_Ivmulsd, + UD_Ivmulss, + UD_Ivmwrite, + UD_Ivmxoff, + UD_Ivmxon, + UD_Ivorpd, + UD_Ivorps, + UD_Ivpabsb, + UD_Ivpabsd, + UD_Ivpabsw, + UD_Ivpackssdw, + UD_Ivpacksswb, + UD_Ivpackusdw, + UD_Ivpackuswb, + UD_Ivpaddb, + UD_Ivpaddd, + UD_Ivpaddq, + UD_Ivpaddsb, + UD_Ivpaddsw, + UD_Ivpaddusb, + UD_Ivpaddusw, + UD_Ivpaddw, + UD_Ivpalignr, + UD_Ivpand, + UD_Ivpandn, + UD_Ivpavgb, + UD_Ivpavgw, + UD_Ivpblendvb, + UD_Ivpblendw, + UD_Ivpclmulqdq, + UD_Ivpcmpeqb, + UD_Ivpcmpeqd, + UD_Ivpcmpeqq, + UD_Ivpcmpeqw, + UD_Ivpcmpestri, + UD_Ivpcmpestrm, + UD_Ivpcmpgtb, + UD_Ivpcmpgtd, + UD_Ivpcmpgtq, + UD_Ivpcmpgtw, + UD_Ivpcmpistri, + UD_Ivpcmpistrm, + UD_Ivperm2f128, + UD_Ivpermilpd, + UD_Ivpermilps, + UD_Ivpextrb, + UD_Ivpextrd, + UD_Ivpextrq, + UD_Ivpextrw, + UD_Ivphaddd, + UD_Ivphaddsw, + UD_Ivphaddw, + UD_Ivphminposuw, + UD_Ivphsubd, + UD_Ivphsubsw, + UD_Ivphsubw, + UD_Ivpinsrb, + UD_Ivpinsrd, + UD_Ivpinsrq, + UD_Ivpinsrw, + UD_Ivpmaddubsw, + UD_Ivpmaddwd, + UD_Ivpmaxsb, + UD_Ivpmaxsd, + UD_Ivpmaxsw, + UD_Ivpmaxub, + UD_Ivpmaxud, + UD_Ivpmaxuw, + UD_Ivpminsb, + UD_Ivpminsd, + UD_Ivpminsw, + UD_Ivpminub, + UD_Ivpminud, + UD_Ivpminuw, + UD_Ivpmovmskb, + UD_Ivpmovsxbd, + UD_Ivpmovsxbq, + UD_Ivpmovsxbw, + UD_Ivpmovsxwd, + UD_Ivpmovsxwq, + UD_Ivpmovzxbd, + UD_Ivpmovzxbq, + UD_Ivpmovzxbw, + UD_Ivpmovzxdq, + UD_Ivpmovzxwd, + UD_Ivpmovzxwq, + UD_Ivpmuldq, + UD_Ivpmulhrsw, + UD_Ivpmulhuw, + UD_Ivpmulhw, + UD_Ivpmulld, + UD_Ivpmullw, + UD_Ivpor, + UD_Ivpsadbw, + UD_Ivpshufb, + UD_Ivpshufd, + UD_Ivpshufhw, + UD_Ivpshuflw, + UD_Ivpsignb, + UD_Ivpsignd, + UD_Ivpsignw, + UD_Ivpslld, + UD_Ivpslldq, + UD_Ivpsllq, + UD_Ivpsllw, + UD_Ivpsrad, + UD_Ivpsraw, + UD_Ivpsrld, + UD_Ivpsrldq, + UD_Ivpsrlq, + UD_Ivpsrlw, + UD_Ivpsubb, + UD_Ivpsubd, + UD_Ivpsubq, + UD_Ivpsubsb, + UD_Ivpsubsw, + UD_Ivpsubusb, + UD_Ivpsubusw, + UD_Ivpsubw, + UD_Ivptest, + UD_Ivpunpckhbw, + UD_Ivpunpckhdq, + UD_Ivpunpckhqdq, + UD_Ivpunpckhwd, + UD_Ivpunpcklbw, + UD_Ivpunpckldq, + UD_Ivpunpcklqdq, + UD_Ivpunpcklwd, + UD_Ivpxor, + UD_Ivrcpps, + UD_Ivrcpss, + UD_Ivroundpd, + UD_Ivroundps, + UD_Ivroundsd, + UD_Ivroundss, + UD_Ivrsqrtps, + UD_Ivrsqrtss, + UD_Ivshufpd, + UD_Ivshufps, + UD_Ivsqrtpd, + UD_Ivsqrtps, + UD_Ivsqrtsd, + UD_Ivsqrtss, + UD_Ivstmxcsr, + UD_Ivsubpd, + UD_Ivsubps, + UD_Ivsubsd, + UD_Ivsubss, + UD_Ivtestpd, + UD_Ivtestps, + UD_Ivucomisd, + UD_Ivucomiss, + UD_Ivunpckhpd, + UD_Ivunpckhps, + UD_Ivunpcklpd, + UD_Ivunpcklps, + UD_Ivxorpd, + UD_Ivxorps, + UD_Ivzeroall, + UD_Ivzeroupper, + UD_Iwait, + UD_Iwbinvd, + UD_Iwrmsr, + UD_Ixadd, + UD_Ixchg, + UD_Ixcryptcbc, + UD_Ixcryptcfb, + UD_Ixcryptctr, + UD_Ixcryptecb, + UD_Ixcryptofb, + UD_Ixgetbv, + UD_Ixlatb, + UD_Ixor, + UD_Ixorpd, + UD_Ixorps, + UD_Ixrstor, + UD_Ixsave, + UD_Ixsetbv, + UD_Ixsha1, + UD_Ixsha256, + UD_Ixstore, + UD_Iinvalid, + UD_I3dnow, + UD_Inone, + UD_Idb, + UD_Ipause, + UD_MAX_MNEMONIC_CODE +}; + +extern const char * ud_mnemonics_str[]; + +#endif /* UD_ITAB_H */ diff --git a/deps/libtomcrypt b/deps/libtomcrypt new file mode 160000 index 00000000..165c795b --- /dev/null +++ b/deps/libtomcrypt @@ -0,0 +1 @@ +Subproject commit 165c795b65e3281040be2edc41be38cf3536d8cd diff --git a/deps/libtommath b/deps/libtommath new file mode 160000 index 00000000..eda0bd6a --- /dev/null +++ b/deps/libtommath @@ -0,0 +1 @@ +Subproject commit eda0bd6ae5705ab90b866dfb52c5f15c23687f81 diff --git a/deps/premake/libtomcrypt.lua b/deps/premake/libtomcrypt.lua new file mode 100644 index 00000000..6c6f28d1 --- /dev/null +++ b/deps/premake/libtomcrypt.lua @@ -0,0 +1,61 @@ +libtomcrypt = { + source = path.join(dependencies.basePath, "libtomcrypt"), +} + +function libtomcrypt.import() + links { + "libtomcrypt" + } + + libtomcrypt.includes() +end + +function libtomcrypt.includes() + includedirs { + path.join(libtomcrypt.source, "src/headers") + } + + defines { + "LTC_NO_FAST", + "LTC_NO_PROTOTYPES", + "LTC_NO_RSA_BLINDING", + } +end + +function libtomcrypt.project() + project "libtomcrypt" + language "C" + + libtomcrypt.includes() + libtommath.import() + + files { + path.join(libtomcrypt.source, "src/**.c"), + } + + removefiles { + path.join(libtomcrypt.source, "src/**/*tab.c"), + path.join(libtomcrypt.source, "src/encauth/ocb3/**.c"), + } + + defines { + "_CRT_SECURE_NO_WARNINGS", + "LTC_SOURCE", + "_LIB", + "USE_LTM" + } + + removedefines { + "_DLL", + "_USRDLL" + } + + linkoptions { + "-IGNORE:4221" + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, libtomcrypt) diff --git a/deps/premake/libtommath.lua b/deps/premake/libtommath.lua new file mode 100644 index 00000000..ab4cdde3 --- /dev/null +++ b/deps/premake/libtommath.lua @@ -0,0 +1,52 @@ +libtommath = { + source = path.join(dependencies.basePath, "libtommath"), +} + +function libtommath.import() + links { + "libtommath" + } + + libtommath.includes() +end + +function libtommath.includes() + includedirs { + libtommath.source + } + + defines { + "LTM_DESC", + "__STDC_IEC_559__", + "MP_NO_DEV_URANDOM", + } +end + +function libtommath.project() + project "libtommath" + language "C" + + libtommath.includes() + + files { + path.join(libtommath.source, "*.c"), + } + + defines { + "_LIB" + } + + removedefines { + "_DLL", + "_USRDLL" + } + + linkoptions { + "-IGNORE:4221" + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, libtommath) diff --git a/deps/premake/minizip.lua b/deps/premake/minizip.lua new file mode 100644 index 00000000..4a5754bc --- /dev/null +++ b/deps/premake/minizip.lua @@ -0,0 +1,43 @@ +minizip = { + source = path.join(dependencies.basePath, "zlib/contrib/minizip"), +} + +function minizip.import() + links { "minizip" } + zlib.import() + minizip.includes() +end + +function minizip.includes() + includedirs { + minizip.source + } + + zlib.includes() +end + +function minizip.project() + project "minizip" + language "C" + + minizip.includes() + + files { + path.join(minizip.source, "*.h"), + path.join(minizip.source, "*.c"), + } + + removefiles { + path.join(minizip.source, "miniunz.c"), + path.join(minizip.source, "minizip.c"), + } + + defines { + "_CRT_SECURE_NO_DEPRECATE", + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, minizip) diff --git a/deps/premake/protobuf.lua b/deps/premake/protobuf.lua new file mode 100644 index 00000000..1c58972c --- /dev/null +++ b/deps/premake/protobuf.lua @@ -0,0 +1,60 @@ +protobuf = { + source = path.join(dependencies.basePath, "protobuf"), +} + +function protobuf.import() + links { + "protobuf" + } + + protobuf.includes() +end + +function protobuf.includes() + includedirs { + path.join(protobuf.source, "src"), + } +end + +function protobuf.project() + project "protobuf" + language "C++" + + protobuf.includes() + + files { + path.join(protobuf.source, "src/**.cc"), + "./src/**.proto", + } + + removefiles { + path.join(protobuf.source, "src/**/*test.cc"), + path.join(protobuf.source, "src/google/protobuf/*test*.cc"), + + path.join(protobuf.source, "src/google/protobuf/testing/**.cc"), + path.join(protobuf.source, "src/google/protobuf/compiler/**.cc"), + + path.join(protobuf.source, "src/google/protobuf/arena_nc.cc"), + path.join(protobuf.source, "src/google/protobuf/util/internal/error_listener.cc"), + path.join(protobuf.source, "**/*_gcc.cc"), + } + + rules { + "ProtobufCompiler" + } + + defines { + "_SCL_SECURE_NO_WARNINGS", + "_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS", + "_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS", + } + + linkoptions { + "-IGNORE:4221" + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, protobuf) diff --git a/deps/premake/udis86.lua b/deps/premake/udis86.lua new file mode 100644 index 00000000..896ec8b7 --- /dev/null +++ b/deps/premake/udis86.lua @@ -0,0 +1,37 @@ +udis86 = { + source = path.join(dependencies.basePath, "udis86"), +} + +function udis86.import() + links { + "udis86" + } + + udis86.includes() +end + +function udis86.includes() + includedirs { + udis86.source, + path.join(udis86.source, "libudis86"), + path.join(dependencies.basePath, "extra/udis86"), + path.join(dependencies.basePath, "extra/udis86/libudis86"), + } +end + +function udis86.project() + project "udis86" + language "C" + + udis86.includes() + + files { + path.join(udis86.source, "libudis86/*.c"), + path.join(dependencies.basePath, "extra/udis86/libudis86/*.c"), + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, udis86) diff --git a/deps/premake/wintoast.lua b/deps/premake/wintoast.lua new file mode 100644 index 00000000..c13ceadf --- /dev/null +++ b/deps/premake/wintoast.lua @@ -0,0 +1,32 @@ +wintoast = { + source = path.join(dependencies.basePath, "WinToast"), +} + +function wintoast.import() + links { "WinToast" } + wintoast.includes() +end + +function wintoast.includes() + includedirs { + path.join(wintoast.source, "src"), + } +end + +function wintoast.project() + project "WinToast" + language "C++" + + wintoast.includes() + rapidjson.import(); + + files { + path.join(wintoast.source, "src/*.h"), + path.join(wintoast.source, "src/*.cpp"), + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, wintoast) diff --git a/deps/premake/zlib.lua b/deps/premake/zlib.lua new file mode 100644 index 00000000..566a707b --- /dev/null +++ b/deps/premake/zlib.lua @@ -0,0 +1,39 @@ +zlib = { + source = path.join(dependencies.basePath, "zlib"), +} + +function zlib.import() + links { "zlib" } + zlib.includes() +end + +function zlib.includes() + includedirs { + zlib.source + } + + defines { + "ZLIB_CONST", + } +end + +function zlib.project() + project "zlib" + language "C" + + zlib.includes() + + files { + path.join(zlib.source, "*.h"), + path.join(zlib.source, "*.c"), + } + + defines { + "_CRT_SECURE_NO_DEPRECATE", + } + + warnings "Off" + kind "StaticLib" +end + +table.insert(dependencies, zlib) diff --git a/deps/protobuf b/deps/protobuf new file mode 160000 index 00000000..7956ad20 --- /dev/null +++ b/deps/protobuf @@ -0,0 +1 @@ +Subproject commit 7956ad20d6a1a43d2b2f7758636b72d4427681c7 diff --git a/deps/udis86 b/deps/udis86 new file mode 160000 index 00000000..56ff6c87 --- /dev/null +++ b/deps/udis86 @@ -0,0 +1 @@ +Subproject commit 56ff6c87c11de0ffa725b14339004820556e343d diff --git a/deps/zlib b/deps/zlib new file mode 160000 index 00000000..cacf7f1d --- /dev/null +++ b/deps/zlib @@ -0,0 +1 @@ +Subproject commit cacf7f1d4e3d44d871b605da3b647f07d718623f diff --git a/generate.bat b/generate.bat index 62971d28..b9ffdf6f 100644 --- a/generate.bat +++ b/generate.bat @@ -1,3 +1,3 @@ @echo off git submodule update --init --recursive -tools\windows\premake5.exe vs2019 +tools\premake5 %* vs2019 \ No newline at end of file diff --git a/premake5.lua b/premake5.lua index d45321a3..a2736dc1 100644 --- a/premake5.lua +++ b/premake5.lua @@ -66,56 +66,300 @@ function dependencies.projects() end end +newoption { + trigger = "copy-to", + description = "Optional, copy the EXE to a custom folder after build, define the path here if wanted.", + value = "PATH" +} + +newoption { + trigger = "dev-build", + description = "Enable development builds of the client." +} + +newaction { + trigger = "version", + description = "Returns the version string for the current commit of the source code.", + onWorkspace = function(wks) + -- get current version via git + local proc = assert(io.popen(gitVersioningCommand, "r")) + local gitDescribeOutput = assert(proc:read('*a')):gsub("%s+", "") + proc:close() + local version = gitDescribeOutput + + proc = assert(io.popen(gitCurrentBranchCommand, "r")) + local gitCurrentBranchOutput = assert(proc:read('*a')):gsub("%s+", "") + local gitCurrentBranchSuccess = proc:close() + if gitCurrentBranchSuccess then + -- We got a branch name, check if it is a feature branch + if gitCurrentBranchOutput ~= "develop" and gitCurrentBranchOutput ~= "master" then + version = version .. "-" .. gitCurrentBranchOutput + end + end + + print(version) + os.exit(0) + end +} + +newaction { + trigger = "generate-buildinfo", + description = "Sets up build information file like version.h.", + onWorkspace = function(wks) + -- get old version number from version.hpp if any + local oldVersion = "(none)" + local oldVersionHeader = io.open(wks.location .. "/src/version.h", "r") + if oldVersionHeader ~= nil then + local oldVersionHeaderContent = assert(oldVersionHeader:read('*l')) + while oldVersionHeaderContent do + m = string.match(oldVersionHeaderContent, "#define GIT_DESCRIBE (.+)%s*$") + if m ~= nil then + oldVersion = m + end + + oldVersionHeaderContent = oldVersionHeader:read('*l') + end + end + + -- get current version via git + local proc = assert(io.popen(gitVersioningCommand, "r")) + local gitDescribeOutput = assert(proc:read('*a')):gsub("%s+", "") + proc:close() + + -- generate version.hpp with a revision number if not equal + gitDescribeOutputQuoted = cstrquote(gitDescribeOutput) + if oldVersion ~= gitDescribeOutputQuoted then + -- get current git hash and write to version.txt (used by the preliminary updater) + -- TODO - remove once proper updater and release versioning exists + local proc = assert(io.popen("git rev-parse HEAD", "r")) + local gitCommitHash = assert(proc:read('*a')):gsub("%s+", "") + proc:close() + + -- get whether this is a clean revision (no uncommitted changes) + proc = assert(io.popen("git status --porcelain", "r")) + local revDirty = (assert(proc:read('*a')) ~= "") + if revDirty then revDirty = 1 else revDirty = 0 end + proc:close() + + -- get current tag name + proc = assert(io.popen("git describe --tags --abbrev=0")) + local tagName = proc:read('*l') + + -- get current branch name + proc = assert(io.popen("git branch --show-current")) + local branchName = proc:read('*l') + + -- branch for ci + if branchName == nil or branchName == '' then + proc = assert(io.popen("git show -s --pretty=%d HEAD")) + local branchInfo = proc:read('*l') + m = string.match(branchInfo, ".+,.+, ([^)]+)") + if m ~= nil then + branchName = m + end + end + + if branchName == nil then + branchName = "develop" + end + + print("Detected branch: " .. branchName) + + -- get revision number via git + local proc = assert(io.popen("git rev-list --count HEAD", "r")) + local revNumber = assert(proc:read('*a')):gsub("%s+", "") + + print ("Update " .. oldVersion .. " -> " .. gitDescribeOutputQuoted) + + -- write to version.txt for preliminary updater + -- NOTE - remove this once we have a proper updater and proper release versioning + local versionFile = assert(io.open(wks.location .. "/version.txt", "w")) + versionFile:write(gitCommitHash) + versionFile:close() + + -- write version header + local versionHeader = assert(io.open(wks.location .. "/src/version.h", "w")) + versionHeader:write("/*\n") + versionHeader:write(" * Automatically generated by premake5.\n") + versionHeader:write(" * Do not touch!\n") + versionHeader:write(" */\n") + versionHeader:write("\n") + versionHeader:write("#define GIT_DESCRIBE " .. gitDescribeOutputQuoted .. "\n") + versionHeader:write("#define GIT_DIRTY " .. revDirty .. "\n") + versionHeader:write("#define GIT_HASH " .. cstrquote(gitCommitHash) .. "\n") + versionHeader:write("#define GIT_TAG " .. cstrquote(tagName) .. "\n") + versionHeader:write("#define GIT_BRANCH " .. cstrquote(branchName) .. "\n") + versionHeader:write("\n") + versionHeader:write("// Version transformed for RC files\n") + versionHeader:write("#define VERSION_PRODUCT_RC " .. table.concat(vertonumarr(tagName, revNumber, 3), ",") .. "\n") + versionHeader:write("#define VERSION_PRODUCT " .. cstrquote(table.concat(vertonumarr(tagName, revNumber, 3), ".")) .. "\n") + versionHeader:write("#define VERSION_FILE_RC " .. table.concat(vertonumarr(tagName, revNumber, 4), ",") .. "\n") + versionHeader:write("#define VERSION_FILE " .. cstrquote(table.concat(vertonumarr(tagName, revNumber, 4), ".")) .. "\n") + versionHeader:write("\n") + versionHeader:write("// Alias definitions\n") + versionHeader:write("#define VERSION GIT_DESCRIBE\n") + versionHeader:write("#define SHORTVERSION VERSION_PRODUCT\n") + versionHeader:close() + local versionHeader = assert(io.open(wks.location .. "/src/version.hpp", "w")) + versionHeader:write("/*\n") + versionHeader:write(" * Automatically generated by premake5.\n") + versionHeader:write(" * Do not touch!\n") + versionHeader:write(" *\n") + versionHeader:write(" * This file exists for reasons of complying with our coding standards.\n") + versionHeader:write(" *\n") + versionHeader:write(" * The Resource Compiler will ignore any content from C++ header files if they're not from STDInclude.hpp.\n") + versionHeader:write(" * That's the reason why we now place all version info in version.h instead.\n") + versionHeader:write(" */\n") + versionHeader:write("\n") + versionHeader:write("#include \".\\version.h\"\n") + versionHeader:close() + end + end +} + dependencies.load() workspace "h2-mod" - location "./build" - objdir "%{wks.location}/obj/%{cfg.buildcfg}" - targetdir "%{wks.location}/bin/%{cfg.buildcfg}" - targetname "%{prj.name}" +startproject "client" +location "./build" +objdir "%{wks.location}/obj" +targetdir "%{wks.location}/bin/%{cfg.platform}/%{cfg.buildcfg}" - language "C++" +configurations {"Debug", "Release"} - architecture "x64" - platforms "x64" +architecture "x64" +platforms "x64" - buildoptions "/std:c++latest" - systemversion "latest" +buildoptions "/std:c++latest" +systemversion "latest" +symbols "On" +staticruntime "On" +editandcontinue "Off" +warnings "Extra" +characterset "ASCII" - flags - { - "NoIncrementalLink", - "MultiProcessorCompile", - } +if _OPTIONS["dev-build"] then + defines {"DEV_BUILD"} +end - configurations { "Debug", "Release", } +if os.getenv("CI") then + defines {"CI"} +end - symbols "On" - - configuration "Release" - optimize "Full" - defines { "NDEBUG" } - configuration{} +flags {"NoIncrementalLink", "NoMinimalRebuild", "MultiProcessorCompile", "No64BitChecks"} - configuration "Debug" - optimize "Debug" - defines { "DEBUG", "_DEBUG" } - configuration {} - startproject "h2-mod" +configuration "windows" +defines {"_WINDOWS", "WIN32"} - project "h2-mod" - kind "SharedLib" - language "C++" +configuration "Release" +optimize "Size" +buildoptions {"/GL"} +linkoptions { "/IGNORE:4702", "/LTCG" } - pchheader "stdinc.hpp" - pchsource "src/stdinc.cpp" +defines {"NDEBUG"} - includedirs { "src" } - - files { "src/**.h", "src/**.hpp", "src/**.cpp" } - - dependencies.imports() - - group "Dependencies" - dependencies.projects() \ No newline at end of file +flags {"FatalCompileWarnings"} + +configuration "Debug" +optimize "Debug" + +defines {"DEBUG", "_DEBUG"} + +configuration {} + +project "common" +kind "StaticLib" +language "C++" + +files {"./src/common/**.hpp", "./src/common/**.cpp"} + +includedirs {"./src/common", "%{prj.location}/src"} + +resincludedirs {"$(ProjectDir)src"} + +dependencies.imports() + +project "runner" +kind "WindowedApp" +language "C++" + +files {"./src/runner/**.rc", "./src/runner/**.hpp", "./src/runner/**.cpp", "./src/runner/resources/**.*"} + +includedirs {"./src/runner", "./src/common", "%{prj.location}/src"} + +resincludedirs {"$(ProjectDir)src"} + +links {"common"} + +dependencies.imports() + +project "client" +kind "ConsoleApp" +language "C++" + +targetname "h2-mod" + +pchheader "std_include.hpp" +pchsource "src/client/std_include.cpp" + +linkoptions {"/IGNORE:4254", "/DYNAMICBASE:NO", "/SAFESEH:NO", "/LARGEADDRESSAWARE", "/LAST:.main", "/PDBCompress"} + +files {"./src/client/**.rc", "./src/client/**.hpp", "./src/client/**.cpp", "./src/client/resources/**.*"} + +includedirs {"./src/client", "./src/common", "%{prj.location}/src"} + +resincludedirs {"$(ProjectDir)src"} + +dependson {"tlsdll", "runner"} + +links {"common"} + +prebuildcommands {"pushd %{_MAIN_SCRIPT_DIR}", "tools\\premake5 generate-buildinfo", "popd"} + +if _OPTIONS["copy-to"] then + postbuildcommands {"copy /y \"$(TargetPath)\" \"" .. _OPTIONS["copy-to"] .. "\""} +end + +dependencies.imports() + +project "tlsdll" +kind "SharedLib" +language "C++" + +files {"./src/tlsdll/**.rc", "./src/tlsdll/**.hpp", "./src/tlsdll/**.cpp", "./src/tlsdll/resources/**.*"} + +includedirs {"./src/tlsdll", "%{prj.location}/src"} + +links {"common"} + +resincludedirs {"$(ProjectDir)src"} + +project "runner" +kind "WindowedApp" +language "C++" + +files {"./src/runner/**.rc", "./src/runner/**.hpp", "./src/runner/**.cpp", "./src/runner/resources/**.*"} + +includedirs {"./src/runner", "./src/common", "%{prj.location}/src"} + +links {"common"} + +resincludedirs {"$(ProjectDir)src"} + +links {"common"} + +dependencies.imports() + +group "Dependencies" +dependencies.projects() + +rule "ProtobufCompiler" +display "Protobuf compiler" +location "./build" +fileExtension ".proto" +buildmessage "Compiling %(Identity) with protoc..." +buildcommands {'@echo off', 'path "$(SolutionDir)\\..\\tools"', + 'if not exist "$(ProjectDir)\\src\\proto" mkdir "$(ProjectDir)\\src\\proto"', + 'protoc --error_format=msvs -I=%(RelativeDir) --cpp_out=src\\proto %(Identity)'} +buildoutputs {'$(ProjectDir)\\src\\proto\\%(Filename).pb.cc', '$(ProjectDir)\\src\\proto\\%(Filename).pb.h'} diff --git a/src/component/branding.cpp b/src/client/component/branding.cpp similarity index 81% rename from src/component/branding.cpp rename to src/client/component/branding.cpp index ca73df1b..56578dc3 100644 --- a/src/component/branding.cpp +++ b/src/client/component/branding.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "localized_strings.hpp" #include "scheduler.hpp" @@ -15,14 +15,14 @@ namespace branding public: void post_unpack() override { - localized_strings::override("MENU_SP_CAMPAIGN", "Campaign [h2-mod]"); + localized_strings::override("MENU_SP_CAMPAIGN", "H2-Mod"); scheduler::loop([]() { - const auto x = 4; - const auto y = 4; + const auto x = 15.f; + const auto y = 15.f; const auto scale = 1.0f; - float color[4] = {0.9f, 0.9f, 0.5f, 1.0f}; + float color[4] = {0.9f, 0.9f, 0.5f, 1.f}; const auto* text = "h2-mod"; auto* font = game::R_RegisterFont("fonts/defaultBold.otf", 22); diff --git a/src/component/chat.cpp b/src/client/component/chat.cpp similarity index 98% rename from src/component/chat.cpp rename to src/client/component/chat.cpp index f32ad7de..4520436a 100644 --- a/src/component/chat.cpp +++ b/src/client/component/chat.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/component/chat.hpp b/src/client/component/chat.hpp similarity index 100% rename from src/component/chat.hpp rename to src/client/component/chat.hpp diff --git a/src/component/command.cpp b/src/client/component/command.cpp similarity index 99% rename from src/component/command.cpp rename to src/client/component/command.cpp index 31954e99..9520d2f6 100644 --- a/src/component/command.cpp +++ b/src/client/component/command.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/component/command.hpp b/src/client/component/command.hpp similarity index 100% rename from src/component/command.hpp rename to src/client/component/command.hpp diff --git a/src/client/component/console.cpp b/src/client/component/console.cpp new file mode 100644 index 00000000..327b43bf --- /dev/null +++ b/src/client/component/console.cpp @@ -0,0 +1,41 @@ +#include +#include "loader/component_loader.hpp" + +#include "game_console.hpp" + +#include "game/game.hpp" +#include "game/dvars.hpp" + +#include + +namespace console +{ + namespace + { + DWORD WINAPI console(LPVOID) + { + ShowWindow(GetConsoleWindow(), SW_SHOW); + + std::string cmd; + + while (true) + { + std::getline(std::cin, cmd); + game_console::execute(cmd.data()); + } + + return 0; + } + } + + class component final : public component_interface + { + public: + void post_unpack() override + { + CreateThread(0, 0, console, 0, 0, 0); + } + }; +} + +REGISTER_COMPONENT(console::component) diff --git a/src/component/discord.cpp b/src/client/component/discord.cpp similarity index 98% rename from src/component/discord.cpp rename to src/client/component/discord.cpp index 7936e573..85eafccb 100644 --- a/src/component/discord.cpp +++ b/src/client/component/discord.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/client/component/exception.cpp b/src/client/component/exception.cpp new file mode 100644 index 00000000..45cd29ab --- /dev/null +++ b/src/client/component/exception.cpp @@ -0,0 +1,244 @@ +#include +#include "loader/component_loader.hpp" +#include "scheduler.hpp" + +#include "game/game.hpp" + +#include +#include +#include +#include +#include + +#include + +#include + +#include "game/dvars.hpp" + +namespace exception +{ + namespace + { + thread_local struct + { + DWORD code = 0; + PVOID address = nullptr; + } exception_data; + + struct + { + std::chrono::time_point last_recovery{}; + std::atomic recovery_counts = {0}; + } recovery_data; + + bool is_game_thread() + { + static std::vector allowed_threads = + { + game::THREAD_CONTEXT_MAIN, + }; + + const auto self_id = GetCurrentThreadId(); + for (const auto& index : allowed_threads) + { + if (game::threadIds[index] == self_id) + { + return true; + } + } + + return false; + } + + bool is_exception_interval_too_short() + { + const auto delta = std::chrono::high_resolution_clock::now() - recovery_data.last_recovery; + return delta < 1min; + } + + bool too_many_exceptions_occured() + { + return recovery_data.recovery_counts >= 3; + } + + volatile bool& is_initialized() + { + static volatile bool initialized = false; + return initialized; + } + + bool is_recoverable() + { + return is_initialized() + && is_game_thread() + && !is_exception_interval_too_short() + && !too_many_exceptions_occured(); + } + + void show_mouse_cursor() + { + while (ShowCursor(TRUE) < 0); + } + + void display_error_dialog() + { + std::string error_str = utils::string::va("Fatal error (0x%08X) at 0x%p.\n" + "A minidump has been written.\n\n", + exception_data.code, (uint64_t)exception_data.address - game::base_address); + + error_str += "Make sure to update your graphics card drivers and install operating system updates!"; + + utils::thread::suspend_other_threads(); + show_mouse_cursor(); + + MessageBoxA(nullptr, error_str.data(), "H2-Mod ERROR", MB_ICONERROR); + TerminateProcess(GetCurrentProcess(), exception_data.code); + } + + void reset_state() + { + if (dvars::cg_legacyCrashHandling && dvars::cg_legacyCrashHandling->current.enabled) + { + display_error_dialog(); + } + + if (is_recoverable()) + { + recovery_data.last_recovery = std::chrono::high_resolution_clock::now(); + ++recovery_data.recovery_counts; + game::Com_Error(game::ERR_DROP, "Fatal error (0x%08X) at 0x%p.\nA minidump has been written.\n\n" + "H2-Mod has tried to recover your game, but it might not run stable anymore.\n\n" + "Make sure to update your graphics card drivers and install operating system updates!\n", + exception_data.code, exception_data.address); + } + else + { + display_error_dialog(); + } + } + + size_t get_reset_state_stub() + { + static auto* stub = utils::hook::assemble([](utils::hook::assembler& a) + { + a.sub(rsp, 0x10); + a.or_(rsp, 0x8); + a.jmp(reset_state); + }); + + return reinterpret_cast(stub); + } + + std::string get_timestamp() + { + tm ltime{}; + char timestamp[MAX_PATH] = {0}; + const auto time = _time64(nullptr); + + _localtime64_s(<ime, &time); + strftime(timestamp, sizeof(timestamp) - 1, "%Y-%m-%d-%H-%M-%S", <ime); + + return timestamp; + } + + std::string generate_crash_info(const LPEXCEPTION_POINTERS exceptioninfo) + { + std::string info{}; + const auto line = [&info](const std::string& text) + { + info.append(text); + info.append("\r\n"); + }; + + line("H2-MOD Crash Dump"); + line(""); + line("Version: "s + VERSION); + line("Environment: "s + game::environment::get_string()); + line("Timestamp: "s + get_timestamp()); + line(utils::string::va("Exception: 0x%08X", exceptioninfo->ExceptionRecord->ExceptionCode)); + line(utils::string::va("Address: 0x%llX", (uint64_t)exceptioninfo->ExceptionRecord->ExceptionAddress - game::base_address)); + line(utils::string::va("Base: 0x%llX", game::base_address)); + +#pragma warning(push) +#pragma warning(disable: 4996) + OSVERSIONINFOEXA version_info; + ZeroMemory(&version_info, sizeof(version_info)); + version_info.dwOSVersionInfoSize = sizeof(version_info); + GetVersionExA(reinterpret_cast(&version_info)); +#pragma warning(pop) + + line(utils::string::va("OS Version: %u.%u", version_info.dwMajorVersion, version_info.dwMinorVersion)); + + return info; + } + + void write_minidump(const LPEXCEPTION_POINTERS exceptioninfo) + { + const std::string crash_name = utils::string::va("minidumps/h2-mod-crash-%d-%s.zip", + game::environment::get_real_mode(), + get_timestamp().data()); + + utils::compression::zip::archive zip_file{}; + zip_file.add("crash.dmp", create_minidump(exceptioninfo)); + zip_file.add("info.txt", generate_crash_info(exceptioninfo)); + zip_file.write(crash_name, "H2-Mod Crash Dump"); + } + + bool is_harmless_error(const LPEXCEPTION_POINTERS exceptioninfo) + { + const auto code = exceptioninfo->ExceptionRecord->ExceptionCode; + return code == STATUS_INTEGER_OVERFLOW || code == STATUS_FLOAT_OVERFLOW || code == STATUS_SINGLE_STEP; + } + + LONG WINAPI exception_filter(const LPEXCEPTION_POINTERS exceptioninfo) + { + if (is_harmless_error(exceptioninfo)) + { + return EXCEPTION_CONTINUE_EXECUTION; + } + + write_minidump(exceptioninfo); + + exception_data.code = exceptioninfo->ExceptionRecord->ExceptionCode; + exception_data.address = exceptioninfo->ExceptionRecord->ExceptionAddress; + exceptioninfo->ContextRecord->Rip = get_reset_state_stub(); + + return EXCEPTION_CONTINUE_EXECUTION; + } + + LPTOP_LEVEL_EXCEPTION_FILTER WINAPI set_unhandled_exception_filter_stub(LPTOP_LEVEL_EXCEPTION_FILTER) + { + // Don't register anything here... + return &exception_filter; + } + } + + class component final : public component_interface + { + public: + component() + { + SetUnhandledExceptionFilter(exception_filter); + } + + void post_load() override + { + SetUnhandledExceptionFilter(exception_filter); + utils::hook::jump(SetUnhandledExceptionFilter, set_unhandled_exception_filter_stub, true); + + scheduler::on_game_initialized([]() + { + is_initialized() = true; + }); + } + + void post_unpack() override + { + dvars::cg_legacyCrashHandling = dvars::register_bool("cg_legacyCrashHandling", false, + game::DVAR_FLAG_SAVED, "Disable new crash handling"); + } + }; +} + +REGISTER_COMPONENT(exception::component) diff --git a/src/component/fastfiles.cpp b/src/client/component/fastfiles.cpp similarity index 98% rename from src/component/fastfiles.cpp rename to src/client/component/fastfiles.cpp index 42d0b782..01b9ce94 100644 --- a/src/component/fastfiles.cpp +++ b/src/client/component/fastfiles.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "fastfiles.hpp" diff --git a/src/component/fastfiles.hpp b/src/client/component/fastfiles.hpp similarity index 100% rename from src/component/fastfiles.hpp rename to src/client/component/fastfiles.hpp diff --git a/src/component/fps.cpp b/src/client/component/fps.cpp similarity index 97% rename from src/component/fps.cpp rename to src/client/component/fps.cpp index bd773243..3fdcea90 100644 --- a/src/component/fps.cpp +++ b/src/client/component/fps.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" @@ -18,7 +18,6 @@ namespace fps { namespace { - std::chrono::nanoseconds frametime; auto lastframe = std::chrono::high_resolution_clock::now(); game::dvar_t* cg_drawfps; @@ -128,7 +127,7 @@ namespace fps const auto frametime = now - lastframe; lastframe = now; - const int fps = 1000000000 / frametime.count(); + const int fps = (int)(1000000000 / (int)frametime.count()); if (index >= history_count) { diff --git a/src/component/game_console.cpp b/src/client/component/game_console.cpp similarity index 99% rename from src/component/game_console.cpp rename to src/client/component/game_console.cpp index 07a76775..541d31b4 100644 --- a/src/component/game_console.cpp +++ b/src/client/component/game_console.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" @@ -710,8 +710,6 @@ namespace game_console history.clear(); }); - char a2[1] = {}; - // add our dvars dvars::con_inputBoxColor = dvars::register_vec4( "con_inputBoxColor", diff --git a/src/component/game_console.hpp b/src/client/component/game_console.hpp similarity index 100% rename from src/component/game_console.hpp rename to src/client/component/game_console.hpp diff --git a/src/component/images.cpp b/src/client/component/images.cpp similarity index 99% rename from src/component/images.cpp rename to src/client/component/images.cpp index c71b09ca..531a3e44 100644 --- a/src/component/images.cpp +++ b/src/client/component/images.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" #include "images.hpp" diff --git a/src/component/images.hpp b/src/client/component/images.hpp similarity index 100% rename from src/component/images.hpp rename to src/client/component/images.hpp diff --git a/src/component/input.cpp b/src/client/component/input.cpp similarity index 97% rename from src/component/input.cpp rename to src/client/component/input.cpp index a636350a..11cd8d6c 100644 --- a/src/component/input.cpp +++ b/src/client/component/input.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/component/localized_strings.cpp b/src/client/component/localized_strings.cpp similarity index 97% rename from src/component/localized_strings.cpp rename to src/client/component/localized_strings.cpp index 01e2253d..60d988b1 100644 --- a/src/component/localized_strings.cpp +++ b/src/client/component/localized_strings.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "localized_strings.hpp" #include diff --git a/src/component/localized_strings.hpp b/src/client/component/localized_strings.hpp similarity index 100% rename from src/component/localized_strings.hpp rename to src/client/component/localized_strings.hpp diff --git a/src/component/lui.cpp b/src/client/component/lui.cpp similarity index 96% rename from src/component/lui.cpp rename to src/client/component/lui.cpp index cf2b9ba9..1a9d4e15 100644 --- a/src/component/lui.cpp +++ b/src/client/component/lui.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/component/notifies.cpp b/src/client/component/notifies.cpp similarity index 98% rename from src/component/notifies.cpp rename to src/client/component/notifies.cpp index 36651638..ab7441cb 100644 --- a/src/component/notifies.cpp +++ b/src/client/component/notifies.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "scheduler.hpp" diff --git a/src/component/notifies.hpp b/src/client/component/notifies.hpp similarity index 100% rename from src/component/notifies.hpp rename to src/client/component/notifies.hpp diff --git a/src/component/patches.cpp b/src/client/component/patches.cpp similarity index 84% rename from src/component/patches.cpp rename to src/client/component/patches.cpp index 3f4ee378..62779d45 100644 --- a/src/component/patches.cpp +++ b/src/client/component/patches.cpp @@ -1,8 +1,6 @@ -#include +#include #include "loader/component_loader.hpp" -#include "scheduler.hpp" - #include "game/game.hpp" #include "game/dvars.hpp" @@ -21,6 +19,18 @@ namespace patches pm_crashland_hook.invoke(ps, pm); } } + + uint64_t off_11C52460; + void* sub_46148() + { + off_11C52460 = game::base_address + 0xAD0C58; + return &off_11C52460; + } + + bool _true() + { + return true; + } } class component final : public component_interface @@ -28,23 +38,16 @@ namespace patches public: void post_unpack() override { + // Not sure but it works + utils::hook::jump(game::base_address + 0x633080, _true, true); + utils::hook::jump(game::base_address + 0x272F70, _true, true); + utils::hook::jump(game::base_address + 0x46148, sub_46148, true); + // Unlock fps in main menu utils::hook::set(game::base_address + 0x3D8E1B, 0xEB); // Disable battle net popup - utils::hook::set(game::base_address + 0xBE7F83C, true); - - // Allow kbam input when gamepad is enabled - utils::hook::nop(game::base_address + 0x3D2F8E, 2); - utils::hook::nop(game::base_address + 0x3D0C9C, 6); - - scheduler::once([]() - { - if (game::Menu_IsMenuOpenAndVisible(0, "bnet_error_popup")) - { - game::LUI_OpenMenu(0, "", 1, 0, 0); - } - }, scheduler::pipeline::main); + utils::hook::nop(game::base_address + 0x5F4496, 5); pm_crashland_hook.create(game::base_address + 0x688A20, pm_crashland_stub); dvars::jump_enableFallDamage = dvars::register_bool("jump_enableFallDamage", 1, game::DVAR_FLAG_REPLICATED); diff --git a/src/component/renderer.cpp b/src/client/component/renderer.cpp similarity index 98% rename from src/component/renderer.cpp rename to src/client/component/renderer.cpp index f7bf6612..eb8c5a6e 100644 --- a/src/component/renderer.cpp +++ b/src/client/component/renderer.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/component/scheduler.cpp b/src/client/component/scheduler.cpp similarity index 91% rename from src/component/scheduler.cpp rename to src/client/component/scheduler.cpp index 7ea2074e..8077ab8e 100644 --- a/src/component/scheduler.cpp +++ b/src/client/component/scheduler.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "scheduler.hpp" @@ -145,6 +145,21 @@ namespace scheduler }, type, delay); } + void on_game_initialized(const std::function& callback, const pipeline type, + const std::chrono::milliseconds delay) + { + schedule([=]() + { + if (game::Sys_IsDatabaseReady2()) + { + once(callback, type, delay); + return cond_end; + } + + return cond_continue; + }, pipeline::main); + } + class component final : public component_interface { public: diff --git a/src/component/scheduler.hpp b/src/client/component/scheduler.hpp similarity index 83% rename from src/component/scheduler.hpp rename to src/client/component/scheduler.hpp index 7332248d..f674475e 100644 --- a/src/component/scheduler.hpp +++ b/src/client/component/scheduler.hpp @@ -28,4 +28,6 @@ namespace scheduler std::chrono::milliseconds delay = 0ms); void once(const std::function& callback, pipeline type = pipeline::async, std::chrono::milliseconds delay = 0ms); + void on_game_initialized(const std::function& callback, pipeline type = pipeline::async, + std::chrono::milliseconds delay = 0ms); } diff --git a/src/component/scripting.cpp b/src/client/component/scripting.cpp similarity index 99% rename from src/component/scripting.cpp rename to src/client/component/scripting.cpp index 03a4d386..2d13a13f 100644 --- a/src/component/scripting.cpp +++ b/src/client/component/scripting.cpp @@ -1,4 +1,4 @@ -#include +#include #include "loader/component_loader.hpp" #include "game/game.hpp" diff --git a/src/component/scripting.hpp b/src/client/component/scripting.hpp similarity index 100% rename from src/component/scripting.hpp rename to src/client/component/scripting.hpp diff --git a/src/game/dvars.cpp b/src/client/game/dvars.cpp similarity index 99% rename from src/game/dvars.cpp rename to src/client/game/dvars.cpp index a8419c1e..e2c31f6e 100644 --- a/src/game/dvars.cpp +++ b/src/client/game/dvars.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include "game.hpp" @@ -18,7 +18,8 @@ namespace dvars game::dvar_t* jump_enableFallDamage; game::dvar_t* r_fullbright; - game::dvar_t* r_chams; + + game::dvar_t* cg_legacyCrashHandling; std::string dvar_get_vector_domain(const int components, const game::dvar_limits& domain) { diff --git a/src/game/dvars.hpp b/src/client/game/dvars.hpp similarity index 96% rename from src/game/dvars.hpp rename to src/client/game/dvars.hpp index 571ad402..f65b21e5 100644 --- a/src/game/dvars.hpp +++ b/src/client/game/dvars.hpp @@ -19,7 +19,8 @@ namespace dvars extern game::dvar_t* jump_enableFallDamage; extern game::dvar_t* r_fullbright; - extern game::dvar_t* r_chams; + + extern game::dvar_t* cg_legacyCrashHandling; extern std::vector dvar_list; diff --git a/src/client/game/game.cpp b/src/client/game/game.cpp new file mode 100644 index 00000000..63b2cf7b --- /dev/null +++ b/src/client/game/game.cpp @@ -0,0 +1,81 @@ +#include +#include "game.hpp" + +namespace game +{ + uint64_t base_address; + + void load_base_address() + { + const auto module = GetModuleHandle(NULL); + base_address = uint64_t(module); + } + + namespace environment + { + launcher::mode mode = launcher::mode::none; + + launcher::mode translate_surrogate(const launcher::mode _mode) + { + switch (_mode) + { + case launcher::mode::survival: + case launcher::mode::zombies: + return launcher::mode::multiplayer; + default: + return _mode; + } + } + + launcher::mode get_real_mode() + { + if (mode == launcher::mode::none) + { + throw std::runtime_error("Launcher mode not valid. Something must be wrong."); + } + + return mode; + } + + launcher::mode get_mode() + { + return translate_surrogate(get_real_mode()); + } + + bool is_sp() + { + return get_mode() == launcher::mode::singleplayer; + } + + bool is_mp() + { + return get_mode() == launcher::mode::multiplayer; + } + + bool is_dedi() + { + return get_mode() == launcher::mode::server; + } + + void set_mode(const launcher::mode _mode) + { + mode = _mode; + } + + std::string get_string() + { + const auto current_mode = get_real_mode(); + switch (current_mode) + { + case launcher::mode::singleplayer: + return "Singleplayer"; + + case launcher::mode::none: + return "None"; + + default: + return "Unknown (" + std::to_string(static_cast(mode)) + ")"; + } + } + } +} \ No newline at end of file diff --git a/src/game/game.hpp b/src/client/game/game.hpp similarity index 67% rename from src/game/game.hpp rename to src/client/game/game.hpp index 229bc46f..1a208510 100644 --- a/src/game/game.hpp +++ b/src/client/game/game.hpp @@ -1,6 +1,7 @@ #pragma once #include "structs.hpp" +#include "launcher/launcher.hpp" namespace game { @@ -8,6 +9,20 @@ namespace game void load_base_address(); + namespace environment + { + launcher::mode get_mode(); + launcher::mode get_real_mode(); + + bool is_sp(); + bool is_mp(); + bool is_dedi(); + + void set_mode(launcher::mode mode); + + std::string get_string(); + } + template class symbol { diff --git a/src/game/scripting/entity.cpp b/src/client/game/scripting/entity.cpp similarity index 98% rename from src/game/scripting/entity.cpp rename to src/client/game/scripting/entity.cpp index f495ce64..b81dea1b 100644 --- a/src/game/scripting/entity.cpp +++ b/src/client/game/scripting/entity.cpp @@ -1,4 +1,4 @@ -#include +#include #include "entity.hpp" #include "script_value.hpp" #include "execution.hpp" diff --git a/src/game/scripting/entity.hpp b/src/client/game/scripting/entity.hpp similarity index 100% rename from src/game/scripting/entity.hpp rename to src/client/game/scripting/entity.hpp diff --git a/src/game/scripting/event.hpp b/src/client/game/scripting/event.hpp similarity index 100% rename from src/game/scripting/event.hpp rename to src/client/game/scripting/event.hpp diff --git a/src/game/scripting/execution.cpp b/src/client/game/scripting/execution.cpp similarity index 99% rename from src/game/scripting/execution.cpp rename to src/client/game/scripting/execution.cpp index f3580b8c..45b10d10 100644 --- a/src/game/scripting/execution.cpp +++ b/src/client/game/scripting/execution.cpp @@ -1,4 +1,4 @@ -#include +#include #include "execution.hpp" #include "safe_execution.hpp" #include "stack_isolation.hpp" diff --git a/src/game/scripting/execution.hpp b/src/client/game/scripting/execution.hpp similarity index 100% rename from src/game/scripting/execution.hpp rename to src/client/game/scripting/execution.hpp diff --git a/src/game/scripting/function_tables.cpp b/src/client/game/scripting/function_tables.cpp similarity index 99% rename from src/game/scripting/function_tables.cpp rename to src/client/game/scripting/function_tables.cpp index 1eb7ca39..bbaf071f 100644 --- a/src/game/scripting/function_tables.cpp +++ b/src/client/game/scripting/function_tables.cpp @@ -1,4 +1,4 @@ -#include +#include // This file has been generated. // Do not touch! diff --git a/src/game/scripting/functions.cpp b/src/client/game/scripting/functions.cpp similarity index 98% rename from src/game/scripting/functions.cpp rename to src/client/game/scripting/functions.cpp index ced9d6bc..c6977ad1 100644 --- a/src/game/scripting/functions.cpp +++ b/src/client/game/scripting/functions.cpp @@ -1,4 +1,4 @@ -#include +#include #include "functions.hpp" #include diff --git a/src/game/scripting/functions.hpp b/src/client/game/scripting/functions.hpp similarity index 100% rename from src/game/scripting/functions.hpp rename to src/client/game/scripting/functions.hpp diff --git a/src/game/scripting/lua/context.cpp b/src/client/game/scripting/lua/context.cpp similarity index 99% rename from src/game/scripting/lua/context.cpp rename to src/client/game/scripting/lua/context.cpp index c913b535..f7b0982d 100644 --- a/src/game/scripting/lua/context.cpp +++ b/src/client/game/scripting/lua/context.cpp @@ -1,4 +1,4 @@ -#include +#include #include "context.hpp" #include "error.hpp" #include "value_conversion.hpp" diff --git a/src/game/scripting/lua/context.hpp b/src/client/game/scripting/lua/context.hpp similarity index 100% rename from src/game/scripting/lua/context.hpp rename to src/client/game/scripting/lua/context.hpp diff --git a/src/game/scripting/lua/engine.cpp b/src/client/game/scripting/lua/engine.cpp similarity index 97% rename from src/game/scripting/lua/engine.cpp rename to src/client/game/scripting/lua/engine.cpp index 9e23d415..9d5d8edb 100644 --- a/src/game/scripting/lua/engine.cpp +++ b/src/client/game/scripting/lua/engine.cpp @@ -1,4 +1,4 @@ -#include +#include #include "engine.hpp" #include "context.hpp" diff --git a/src/game/scripting/lua/engine.hpp b/src/client/game/scripting/lua/engine.hpp similarity index 100% rename from src/game/scripting/lua/engine.hpp rename to src/client/game/scripting/lua/engine.hpp diff --git a/src/game/scripting/lua/error.cpp b/src/client/game/scripting/lua/error.cpp similarity index 96% rename from src/game/scripting/lua/error.cpp rename to src/client/game/scripting/lua/error.cpp index ee3e98de..9b7d7bdb 100644 --- a/src/game/scripting/lua/error.cpp +++ b/src/client/game/scripting/lua/error.cpp @@ -1,4 +1,4 @@ -#include +#include #include "error.hpp" #include "../execution.hpp" diff --git a/src/game/scripting/lua/error.hpp b/src/client/game/scripting/lua/error.hpp similarity index 100% rename from src/game/scripting/lua/error.hpp rename to src/client/game/scripting/lua/error.hpp diff --git a/src/game/scripting/lua/event_handler.cpp b/src/client/game/scripting/lua/event_handler.cpp similarity index 99% rename from src/game/scripting/lua/event_handler.cpp rename to src/client/game/scripting/lua/event_handler.cpp index 2178ffbd..6c9286bb 100644 --- a/src/game/scripting/lua/event_handler.cpp +++ b/src/client/game/scripting/lua/event_handler.cpp @@ -1,4 +1,4 @@ -#include "stdinc.hpp" +#include "std_include.hpp" #include "context.hpp" #include "error.hpp" #include "value_conversion.hpp" diff --git a/src/game/scripting/lua/event_handler.hpp b/src/client/game/scripting/lua/event_handler.hpp similarity index 100% rename from src/game/scripting/lua/event_handler.hpp rename to src/client/game/scripting/lua/event_handler.hpp diff --git a/src/game/scripting/lua/scheduler.cpp b/src/client/game/scripting/lua/scheduler.cpp similarity index 99% rename from src/game/scripting/lua/scheduler.cpp rename to src/client/game/scripting/lua/scheduler.cpp index 2aaaac5b..bceac3a3 100644 --- a/src/game/scripting/lua/scheduler.cpp +++ b/src/client/game/scripting/lua/scheduler.cpp @@ -1,4 +1,4 @@ -#include "stdinc.hpp" +#include "std_include.hpp" #include "context.hpp" #include "error.hpp" diff --git a/src/game/scripting/lua/scheduler.hpp b/src/client/game/scripting/lua/scheduler.hpp similarity index 100% rename from src/game/scripting/lua/scheduler.hpp rename to src/client/game/scripting/lua/scheduler.hpp diff --git a/src/game/scripting/lua/value_conversion.cpp b/src/client/game/scripting/lua/value_conversion.cpp similarity index 99% rename from src/game/scripting/lua/value_conversion.cpp rename to src/client/game/scripting/lua/value_conversion.cpp index c6ba8546..8de8cc97 100644 --- a/src/game/scripting/lua/value_conversion.cpp +++ b/src/client/game/scripting/lua/value_conversion.cpp @@ -1,4 +1,4 @@ -#include +#include #include "value_conversion.hpp" #include "../functions.hpp" #include "../execution.hpp" diff --git a/src/game/scripting/lua/value_conversion.hpp b/src/client/game/scripting/lua/value_conversion.hpp similarity index 100% rename from src/game/scripting/lua/value_conversion.hpp rename to src/client/game/scripting/lua/value_conversion.hpp diff --git a/src/game/scripting/safe_execution.cpp b/src/client/game/scripting/safe_execution.cpp similarity index 98% rename from src/game/scripting/safe_execution.cpp rename to src/client/game/scripting/safe_execution.cpp index e58eb228..92daa3b7 100644 --- a/src/game/scripting/safe_execution.cpp +++ b/src/client/game/scripting/safe_execution.cpp @@ -1,4 +1,4 @@ -#include +#include #include "safe_execution.hpp" #pragma warning(push) diff --git a/src/game/scripting/safe_execution.hpp b/src/client/game/scripting/safe_execution.hpp similarity index 100% rename from src/game/scripting/safe_execution.hpp rename to src/client/game/scripting/safe_execution.hpp diff --git a/src/game/scripting/script_value.cpp b/src/client/game/scripting/script_value.cpp similarity index 99% rename from src/game/scripting/script_value.cpp rename to src/client/game/scripting/script_value.cpp index f41e4a89..5fd70461 100644 --- a/src/game/scripting/script_value.cpp +++ b/src/client/game/scripting/script_value.cpp @@ -1,4 +1,4 @@ -#include +#include #include "script_value.hpp" #include "entity.hpp" diff --git a/src/game/scripting/script_value.hpp b/src/client/game/scripting/script_value.hpp similarity index 100% rename from src/game/scripting/script_value.hpp rename to src/client/game/scripting/script_value.hpp diff --git a/src/game/scripting/stack_isolation.cpp b/src/client/game/scripting/stack_isolation.cpp similarity index 96% rename from src/game/scripting/stack_isolation.cpp rename to src/client/game/scripting/stack_isolation.cpp index 25fd621c..646e2584 100644 --- a/src/game/scripting/stack_isolation.cpp +++ b/src/client/game/scripting/stack_isolation.cpp @@ -1,4 +1,4 @@ -#include +#include #include "stack_isolation.hpp" namespace scripting diff --git a/src/game/scripting/stack_isolation.hpp b/src/client/game/scripting/stack_isolation.hpp similarity index 100% rename from src/game/scripting/stack_isolation.hpp rename to src/client/game/scripting/stack_isolation.hpp diff --git a/src/game/scripting/variable_value.cpp b/src/client/game/scripting/variable_value.cpp similarity index 97% rename from src/game/scripting/variable_value.cpp rename to src/client/game/scripting/variable_value.cpp index 583daab2..69a20023 100644 --- a/src/game/scripting/variable_value.cpp +++ b/src/client/game/scripting/variable_value.cpp @@ -1,4 +1,4 @@ -#include +#include #include "variable_value.hpp" namespace scripting diff --git a/src/game/scripting/variable_value.hpp b/src/client/game/scripting/variable_value.hpp similarity index 100% rename from src/game/scripting/variable_value.hpp rename to src/client/game/scripting/variable_value.hpp diff --git a/src/game/scripting/vector.cpp b/src/client/game/scripting/vector.cpp similarity index 97% rename from src/game/scripting/vector.cpp rename to src/client/game/scripting/vector.cpp index 7410ddb5..e3b66dcd 100644 --- a/src/game/scripting/vector.cpp +++ b/src/client/game/scripting/vector.cpp @@ -1,4 +1,4 @@ -#include +#include #include "vector.hpp" namespace scripting diff --git a/src/game/scripting/vector.hpp b/src/client/game/scripting/vector.hpp similarity index 100% rename from src/game/scripting/vector.hpp rename to src/client/game/scripting/vector.hpp diff --git a/src/game/structs.hpp b/src/client/game/structs.hpp similarity index 94% rename from src/game/structs.hpp rename to src/client/game/structs.hpp index 949ce5d6..a5b6661e 100644 --- a/src/game/structs.hpp +++ b/src/client/game/structs.hpp @@ -239,6 +239,41 @@ namespace game K_LAST_KEY = 0xDF }; + enum errorParm + { + ERR_FATAL = 0, + ERR_DROP = 1, + ERR_SERVERDISCONNECT = 2, + ERR_DISCONNECT = 3, + ERR_SCRIPT = 4, + ERR_SCRIPT_DROP = 5, + ERR_LOCALIZATION = 6, + ERR_MAPLOADERRORSUMMARY = 7, + }; + + enum threadType + { + THREAD_CONTEXT_MAIN = 0x0, + THREAD_CONTEXT_BACKEND = 0x1, + THREAD_CONTEXT_WORKER0 = 0x2, + THREAD_CONTEXT_WORKER1 = 0x3, + THREAD_CONTEXT_WORKER2 = 0x4, + THREAD_CONTEXT_WORKER3 = 0x5, + THREAD_CONTEXT_WORKER4 = 0x6, + THREAD_CONTEXT_WORKER5 = 0x7, + THREAD_CONTEXT_WORKER6 = 0x8, + THREAD_CONTEXT_WORKER7 = 0x9, + THREAD_CONTEXT_SERVER = 0xA, + THREAD_CONTEXT_TRACE_COUNT = 0xB, + THREAD_CONTEXT_TRACE_LAST = 0xA, + THREAD_CONTEXT_CINEMATIC = 0xB, + THREAD_CONTEXT_DATABASE = 0xC, + THREAD_CONTEXT_STREAM = 0xD, + THREAD_CONTEXT_SNDSTREAMPACKETCALLBACK = 0xE, + THREAD_CONTEXT_STATS_WRITE = 0xF, + THREAD_CONTEXT_COUNT = 0x10, + }; + struct KeyState { int down; diff --git a/src/game/symbols.hpp b/src/client/game/symbols.hpp similarity index 97% rename from src/game/symbols.hpp rename to src/client/game/symbols.hpp index c1978da2..7a785a72 100644 --- a/src/game/symbols.hpp +++ b/src/client/game/symbols.hpp @@ -20,6 +20,7 @@ namespace game WEAK symbol Cmd_AddCommandInternal{0x59A5F0}; WEAK symbol Cmd_ExecuteSingleCommand{0x59ABA0}; + WEAK symbol Com_Error{0x5A2D80}; WEAK symbol Com_Quit_f{0x5A50D0}; WEAK symbol @@ -95,6 +96,7 @@ namespace game WEAK symbol SV_Loaded{0x6B3860}; WEAK symbol Sys_ShowConsole{0x633080}; + WEAK symbol Sys_IsDatabaseReady2{0x5A9FE0}; WEAK symbol UI_SafeTranslateString{0x5A2930}; @@ -111,6 +113,8 @@ namespace game WEAK symbol g_entities{0x52DDDA0}; + WEAK symbol threadIds{0xB11DC80}; + WEAK symbol gfxDrawMethod{0xEDF9E00}; WEAK symbol keyCatchers{0x203F3C0}; diff --git a/src/client/launcher/html/doc_host_ui_handler.cpp b/src/client/launcher/html/doc_host_ui_handler.cpp new file mode 100644 index 00000000..2ec43a22 --- /dev/null +++ b/src/client/launcher/html/doc_host_ui_handler.cpp @@ -0,0 +1,115 @@ +#include +#include "html_frame.hpp" + +doc_host_ui_handler::doc_host_ui_handler(html_frame* frame): frame_(frame) +{ +} + +HRESULT doc_host_ui_handler::QueryInterface(REFIID riid, LPVOID* ppvObj) +{ + auto client_site = this->frame_->get_client_site(); + if (client_site) + { + return client_site->QueryInterface(riid, ppvObj); + } + + return E_NOINTERFACE; +} + +ULONG doc_host_ui_handler::AddRef() +{ + return 1; +} + +ULONG doc_host_ui_handler::Release() +{ + return 1; +} + +HRESULT doc_host_ui_handler::ShowContextMenu(DWORD /*dwID*/, POINT* /*ppt*/, IUnknown* /*pcmdtReserved*/, + IDispatch* /*pdispReserved*/) +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::ShowUI(DWORD /*dwID*/, IOleInPlaceActiveObject* /*pActiveObject*/, + IOleCommandTarget* /*pCommandTarget*/, + IOleInPlaceFrame* /*pFrame*/, IOleInPlaceUIWindow* /*pDoc*/) +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::HideUI() +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::UpdateUI() +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::EnableModeless(BOOL /*fEnable*/) +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::OnDocWindowActivate(BOOL /*fActivate*/) +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::OnFrameWindowActivate(BOOL /*fActivate*/) +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::ResizeBorder(LPCRECT /*prcBorder*/, IOleInPlaceUIWindow* /*pUIWindow*/, + BOOL /*fRameWindow*/) +{ + return S_OK; +} + +HRESULT doc_host_ui_handler::TranslateAcceleratorA(LPMSG /*lpMsg*/, const GUID* pguidCmdGroup, DWORD /*nCmdID*/) +{ + pguidCmdGroup = nullptr; + return S_FALSE; +} + +HRESULT doc_host_ui_handler::GetOptionKeyPath(LPOLESTR* /*pchKey*/, DWORD /*dw*/) +{ + return S_FALSE; +} + +HRESULT doc_host_ui_handler::GetDropTarget(IDropTarget* /*pDropTarget*/, IDropTarget** /*ppDropTarget*/) +{ + return S_FALSE; +} + +HRESULT doc_host_ui_handler::GetExternal(IDispatch** ppDispatch) +{ + *ppDispatch = this->frame_->get_html_dispatch(); + return (*ppDispatch) ? S_OK : S_FALSE; +} + +HRESULT doc_host_ui_handler::FilterDataObject(IDataObject* /*pDO*/, IDataObject** ppDORet) +{ + *ppDORet = nullptr; + return S_FALSE; +} + +HRESULT STDMETHODCALLTYPE doc_host_ui_handler::TranslateUrl(DWORD /*dwTranslate*/, OLECHAR __RPC_FAR* /*pchURLIn*/, + OLECHAR __RPC_FAR* __RPC_FAR* ppchURLOut) +{ + *ppchURLOut = nullptr; + return S_FALSE; +} + +HRESULT doc_host_ui_handler::GetHostInfo(DOCHOSTUIINFO __RPC_FAR * pInfo) +{ + pInfo->cbSize = sizeof(DOCHOSTUIINFO); + pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_DPI_AWARE /*| DOCHOSTUIFLAG_SCROLL_NO*/; + pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT; + + return S_OK; +} diff --git a/src/client/launcher/html/doc_host_ui_handler.hpp b/src/client/launcher/html/doc_host_ui_handler.hpp new file mode 100644 index 00000000..0b538b41 --- /dev/null +++ b/src/client/launcher/html/doc_host_ui_handler.hpp @@ -0,0 +1,47 @@ +#pragma once + +class html_frame; + +class doc_host_ui_handler final : public IDocHostUIHandler +{ +public: + doc_host_ui_handler(html_frame* frame); + virtual ~doc_host_ui_handler() = default; + +private: + html_frame* frame_; + +public: // IDocHostUIHandler interface + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID* ppvObj) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + HRESULT STDMETHODCALLTYPE ShowContextMenu( + DWORD dwID, + POINT __RPC_FAR * ppt, + IUnknown __RPC_FAR * pcmdtReserved, + IDispatch __RPC_FAR * pdispReserved) override; + HRESULT STDMETHODCALLTYPE ShowUI( + DWORD dwID, + IOleInPlaceActiveObject __RPC_FAR * pActiveObject, + IOleCommandTarget __RPC_FAR * pCommandTarget, + IOleInPlaceFrame __RPC_FAR * pFrame, + IOleInPlaceUIWindow __RPC_FAR * pDoc) override; + HRESULT STDMETHODCALLTYPE GetHostInfo(DOCHOSTUIINFO __RPC_FAR * pInfo) override; + HRESULT STDMETHODCALLTYPE HideUI() override; + HRESULT STDMETHODCALLTYPE UpdateUI() override; + HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) override; + HRESULT STDMETHODCALLTYPE OnDocWindowActivate(BOOL fActivate) override; + HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(BOOL fActivate) override; + HRESULT STDMETHODCALLTYPE ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow __RPC_FAR * pUIWindow, + BOOL fRameWindow) override; + HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpMsg, const GUID __RPC_FAR * pguidCmdGroup, DWORD nCmdID) + override; + HRESULT STDMETHODCALLTYPE GetOptionKeyPath(LPOLESTR __RPC_FAR * pchKey, DWORD dw) override; + HRESULT STDMETHODCALLTYPE GetDropTarget(IDropTarget __RPC_FAR * pDropTarget, + IDropTarget __RPC_FAR *__RPC_FAR * ppDropTarget) override; + HRESULT STDMETHODCALLTYPE GetExternal(IDispatch __RPC_FAR *__RPC_FAR * ppDispatch) override; + HRESULT STDMETHODCALLTYPE TranslateUrl(DWORD dwTranslate, OLECHAR __RPC_FAR * pchURLIn, + OLECHAR __RPC_FAR *__RPC_FAR * ppchURLOut) override; + HRESULT STDMETHODCALLTYPE FilterDataObject(IDataObject __RPC_FAR * pDO, IDataObject __RPC_FAR *__RPC_FAR * ppDORet) + override; +}; diff --git a/src/client/launcher/html/html_argument.cpp b/src/client/launcher/html/html_argument.cpp new file mode 100644 index 00000000..181dc6e5 --- /dev/null +++ b/src/client/launcher/html/html_argument.cpp @@ -0,0 +1,48 @@ +#include +#include "html_argument.hpp" + +html_argument::html_argument(VARIANT* val) : value_(val) +{ +} + +bool html_argument::is_empty() const +{ + return this->value_ == nullptr || this->value_->vt == VT_EMPTY; +} + +bool html_argument::is_string() const +{ + if (this->is_empty()) return false; + return this->value_->vt == VT_BSTR; +} + +bool html_argument::is_number() const +{ + if (this->is_empty()) return false; + return this->value_->vt == VT_I4; +} + +bool html_argument::is_bool() const +{ + if (this->is_empty()) return false; + return this->value_->vt == VT_BOOL; +} + +std::string html_argument::get_string() const +{ + if (!this->is_string()) return {}; + std::wstring wide_string(this->value_->bstrVal); + return std::string(wide_string.begin(), wide_string.end()); +} + +int html_argument::get_number() const +{ + if (!this->is_number()) return 0; + return this->value_->intVal; +} + +bool html_argument::get_bool() const +{ + if (!this->is_bool()) return false; + return this->value_->boolVal != FALSE; +} diff --git a/src/client/launcher/html/html_argument.hpp b/src/client/launcher/html/html_argument.hpp new file mode 100644 index 00000000..6e460e29 --- /dev/null +++ b/src/client/launcher/html/html_argument.hpp @@ -0,0 +1,20 @@ +#pragma once + +class html_argument final +{ +public: + html_argument(VARIANT* val); + + bool is_empty() const; + + bool is_string() const; + bool is_number() const; + bool is_bool() const; + + std::string get_string() const; + int get_number() const; + bool get_bool() const; + +private: + VARIANT* value_; +}; diff --git a/src/client/launcher/html/html_dispatch.cpp b/src/client/launcher/html/html_dispatch.cpp new file mode 100644 index 00000000..0cbea58d --- /dev/null +++ b/src/client/launcher/html/html_dispatch.cpp @@ -0,0 +1,61 @@ +#include +#include "html_frame.hpp" + +html_dispatch::html_dispatch(html_frame* frame) : frame_(frame) +{ +} + +HRESULT html_dispatch::QueryInterface(const IID& riid, LPVOID* ppvObj) +{ + if (!memcmp(&riid, &IID_IUnknown, sizeof(GUID)) || + !memcmp(&riid, &IID_IDispatch, sizeof(GUID))) + { + *ppvObj = this; + this->AddRef(); + return S_OK; + } + + *ppvObj = nullptr; + return E_NOINTERFACE; +} + +ULONG html_dispatch::AddRef() +{ + return 1; +} + +ULONG html_dispatch::Release() +{ + return 1; +} + +HRESULT html_dispatch::GetTypeInfoCount(UINT* pctinfo) +{ + return S_FALSE; +} + +HRESULT html_dispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) +{ + return S_FALSE; +} + +HRESULT html_dispatch::GetIDsOfNames(const IID& riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) +{ + for (unsigned int i = 0; i < cNames; ++i) + { + std::wstring wide_name(rgszNames[i]); + std::string name(wide_name.begin(), wide_name.end()); + + rgDispId[i] = this->frame_->get_callback_id(name); + } + + return S_OK; +} + +HRESULT html_dispatch::Invoke(DISPID dispIdMember, const IID& riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, + VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) +{ + html_frame::callback_params params(pDispParams, pVarResult); + this->frame_->invoke_callback(dispIdMember, ¶ms); + return S_OK; +} diff --git a/src/client/launcher/html/html_dispatch.hpp b/src/client/launcher/html/html_dispatch.hpp new file mode 100644 index 00000000..869af7a8 --- /dev/null +++ b/src/client/launcher/html/html_dispatch.hpp @@ -0,0 +1,24 @@ +#pragma once + +class html_frame; + +class html_dispatch final : public IDispatch +{ +public: + html_dispatch(html_frame* frame); + virtual ~html_dispatch() = default; + +private: + html_frame* frame_; + +public: // IDispatch interface + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID FAR* ppvObj) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT* pctinfo) override; + HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) override; + HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) + override; + HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, + VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) override; +}; diff --git a/src/client/launcher/html/html_frame.cpp b/src/client/launcher/html/html_frame.cpp new file mode 100644 index 00000000..d844ffec --- /dev/null +++ b/src/client/launcher/html/html_frame.cpp @@ -0,0 +1,295 @@ +#include +#include "html_frame.hpp" + +#include + +std::atomic html_frame::frame_count_ = 0; + +html_frame::callback_params::callback_params(DISPPARAMS* params, VARIANT* res) : result(res) +{ + for (auto i = params->cArgs; i > 0; --i) + { + auto* param = ¶ms->rgvarg[i - 1]; + this->arguments.emplace_back(param); + } +} + +html_frame::html_frame() + : in_place_frame_(this) + , in_place_site_(this) + , ui_handler_(this) + , client_site_(this) + , html_dispatch_(this) +{ + if (frame_count_++ == 0 && OleInitialize(nullptr) != S_OK) + { + throw std::runtime_error("Unable to initialize the OLE library"); + } + + auto needs_restart = false; + needs_restart |= set_browser_feature("FEATURE_BROWSER_EMULATION", 11000); + needs_restart |= set_browser_feature("FEATURE_GPU_RENDERING", 1); + + if (needs_restart) + { + utils::nt::relaunch_self(); + utils::nt::terminate(0); + } +} + +html_frame::~html_frame() +{ + if (--frame_count_ <= 0) + { + frame_count_ = 0; + OleUninitialize(); + } +} + +void html_frame::object_deleter(IUnknown* object) +{ + if (object) + { + object->Release(); + } +} + +HWND html_frame::get_window() const +{ + return this->window_; +} + +std::shared_ptr html_frame::get_browser_object() const +{ + return this->browser_object_; +} + +ole_in_place_frame* html_frame::get_in_place_frame() +{ + return &this->in_place_frame_; +} + +ole_in_place_site* html_frame::get_in_place_site() +{ + return &this->in_place_site_; +} + +doc_host_ui_handler* html_frame::get_ui_handler() +{ + return &this->ui_handler_; +} + +ole_client_site* html_frame::get_client_site() +{ + return &this->client_site_; +} + +html_dispatch* html_frame::get_html_dispatch() +{ + return &this->html_dispatch_; +} + +std::shared_ptr html_frame::get_web_browser() const +{ + if (!this->browser_object_) return {}; + + IWebBrowser2* web_browser = nullptr; + if (FAILED(this->browser_object_->QueryInterface(IID_IWebBrowser2, reinterpret_cast(&web_browser))) + || !web_browser) + return {}; + + return std::shared_ptr(web_browser, object_deleter); +} + +std::shared_ptr html_frame::get_dispatch() const +{ + const auto web_browser = this->get_web_browser(); + if (!web_browser) return {}; + + IDispatch* dispatch = nullptr; + if (FAILED(web_browser->get_Document(&dispatch)) || !dispatch) return {}; + + return std::shared_ptr(dispatch, object_deleter); +} + +std::shared_ptr html_frame::get_document() const +{ + const auto dispatch = this->get_dispatch(); + if (!dispatch) return {}; + + IHTMLDocument2* document = nullptr; + if (FAILED(dispatch->QueryInterface(IID_IHTMLDocument2, reinterpret_cast(&document))) + || !document) + return {}; + + return std::shared_ptr(document, object_deleter); +} + +void html_frame::initialize(const HWND window) +{ + if (this->window_) return; + this->window_ = window; + + this->create_browser(); + this->initialize_browser(); +} + +void html_frame::create_browser() +{ + LPCLASSFACTORY class_factory = nullptr; + if (FAILED( + CoGetClassObject(CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, nullptr, IID_IClassFactory, + reinterpret_cast(&class_factory))) || !class_factory) + { + throw std::runtime_error("Unable to get the class factory"); + } + + IOleObject* browser_object = nullptr; + class_factory->CreateInstance(nullptr, IID_IOleObject, reinterpret_cast(&browser_object)); + class_factory->Release(); + + if (!browser_object) + { + throw std::runtime_error("Unable to create browser object"); + } + + this->browser_object_ = std::shared_ptr(browser_object, [](IOleObject* browser_object) + { + if (browser_object) + { + browser_object->Close(OLECLOSE_NOSAVE); + object_deleter(browser_object); + } + }); +} + +void html_frame::initialize_browser() +{ + this->browser_object_->SetClientSite(this->get_client_site()); + this->browser_object_->SetHostNames(L"Hostname", nullptr); + + RECT rect; + GetClientRect(this->get_window(), &rect); + OleSetContainedObject(this->browser_object_.get(), TRUE); + + this->browser_object_->DoVerb(OLEIVERB_SHOW, nullptr, this->get_client_site(), -1, this->get_window(), &rect); + this->resize(rect.right, rect.bottom); +} + +bool html_frame::set_browser_feature(const std::string& feature, DWORD value) +{ + const auto registry_path = R"(SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\)" + feature; + + HKEY key = nullptr; + if (RegCreateKeyA(HKEY_CURRENT_USER, registry_path.data(), &key) == ERROR_SUCCESS) + { + RegCloseKey(key); + } + + key = nullptr; + if (RegOpenKeyExA( + HKEY_CURRENT_USER, registry_path.data(), 0, + KEY_ALL_ACCESS, &key) != ERROR_SUCCESS) + { + return false; // Error :( + } + + const utils::nt::library self; + const auto name = self.get_name(); + + DWORD type{}; + auto is_new = true; + if (RegQueryValueExA(key, name.data(), nullptr, &type, nullptr, nullptr) == ERROR_SUCCESS) + { + is_new = false; + } + + RegSetValueExA(key, name.data(), 0, REG_DWORD, reinterpret_cast(&value), sizeof(value)); + RegCloseKey(key); + + return is_new; +} + +void html_frame::resize(const DWORD width, const DWORD height) const +{ + auto web_browser = this->get_web_browser(); + if (web_browser) + { + web_browser->put_Left(0); + web_browser->put_Top(0); + web_browser->put_Width(width); + web_browser->put_Height(height); + } +} + +bool html_frame::load_url(const std::string& url) const +{ + auto web_browser = this->get_web_browser(); + if (!web_browser) return false; + + std::wstring wide_url(url.begin(), url.end()); + + VARIANT my_url; + VariantInit(&my_url); + my_url.vt = VT_BSTR; + my_url.bstrVal = SysAllocString(wide_url.data()); + + const auto _ = gsl::finally([&my_url]() { VariantClear(&my_url); }); + if (!my_url.bstrVal) return false; + + return SUCCEEDED(web_browser->Navigate2(&my_url, nullptr, nullptr, nullptr, nullptr)); +} + +bool html_frame::load_html(const std::string& html) const +{ + if (!this->load_url("about:blank")) return false; + + const auto document = this->get_document(); + if (!document) return false; + + SAFEARRAYBOUND safe_array_bound = {1, 0}; + auto safe_array = SafeArrayCreate(VT_VARIANT, 1, &safe_array_bound); + if (!safe_array) return false; + + const auto _ = gsl::finally([safe_array]() { SafeArrayDestroy(safe_array); }); + + VARIANT* variant = nullptr; + if (FAILED(SafeArrayAccessData(safe_array, reinterpret_cast(&variant))) || !variant) return false; + + std::wstring wide_html(html.begin(), html.end()); + + variant->vt = VT_BSTR; + variant->bstrVal = SysAllocString(wide_html.data()); + if (!variant->bstrVal) return false; + + document->write(safe_array); + document->close(); + + return true; +} + +int html_frame::get_callback_id(const std::string& name) +{ + for (auto i = 0u; i < this->callbacks_.size(); ++i) + { + if (this->callbacks_[i].first == name) + { + return i; + } + } + + return -1; +} + +void html_frame::invoke_callback(const int id, callback_params* params) +{ + if (id >= 0 && static_cast(id) < this->callbacks_.size()) + { + this->callbacks_[id].second(params); + } +} + +void html_frame::register_callback(const std::string& name, const std::function& callback) +{ + this->callbacks_.emplace_back(name, callback); +} diff --git a/src/client/launcher/html/html_frame.hpp b/src/client/launcher/html/html_frame.hpp new file mode 100644 index 00000000..04d8108c --- /dev/null +++ b/src/client/launcher/html/html_frame.hpp @@ -0,0 +1,67 @@ +#pragma once +#include "ole_in_place_frame.hpp" +#include "ole_in_place_site.hpp" +#include "doc_host_ui_handler.hpp" +#include "ole_client_site.hpp" +#include "html_dispatch.hpp" +#include "html_argument.hpp" + +class html_frame +{ +public: + class callback_params final + { + public: + callback_params(DISPPARAMS* params, VARIANT* res); + + std::vector arguments; + html_argument result; + }; + + html_frame(); + virtual ~html_frame(); + + void initialize(HWND window); + + void resize(DWORD width, DWORD height) const; + bool load_url(const std::string& url) const; + bool load_html(const std::string& html) const; + + HWND get_window() const; + + std::shared_ptr get_browser_object() const; + std::shared_ptr get_web_browser() const; + std::shared_ptr get_dispatch() const; + std::shared_ptr get_document() const; + + ole_in_place_frame* get_in_place_frame(); + ole_in_place_site* get_in_place_site(); + doc_host_ui_handler* get_ui_handler(); + ole_client_site* get_client_site(); + html_dispatch* get_html_dispatch(); + + int get_callback_id(const std::string& name); + void invoke_callback(int id, callback_params* params); + + void register_callback(const std::string& name, const std::function& callback); + +private: + HWND window_ = nullptr; + std::shared_ptr browser_object_; + + ole_in_place_frame in_place_frame_; + ole_in_place_site in_place_site_; + doc_host_ui_handler ui_handler_; + ole_client_site client_site_; + html_dispatch html_dispatch_; + + std::vector>> callbacks_; + + void create_browser(); + void initialize_browser(); + + static bool set_browser_feature(const std::string& feature, DWORD value); + static void object_deleter(IUnknown* object); + + static std::atomic frame_count_; +}; diff --git a/src/client/launcher/html/html_window.cpp b/src/client/launcher/html/html_window.cpp new file mode 100644 index 00000000..bf01098c --- /dev/null +++ b/src/client/launcher/html/html_window.cpp @@ -0,0 +1,29 @@ +#include +#include "html_window.hpp" + +window* html_window::get_window() +{ + return this; +} + +html_frame* html_window::get_html_frame() +{ + return this; +} + +LRESULT html_window::processor(const UINT message, const WPARAM w_param, const LPARAM l_param) +{ + if (message == WM_SIZE) + { + this->resize(LOWORD(l_param), HIWORD(l_param)); + return 0; + } + + if (message == WM_CREATE) + { + this->initialize(*this); + return 0; + } + + return window::processor(message, w_param, l_param); +} diff --git a/src/client/launcher/html/html_window.hpp b/src/client/launcher/html/html_window.hpp new file mode 100644 index 00000000..5b9f25be --- /dev/null +++ b/src/client/launcher/html/html_window.hpp @@ -0,0 +1,15 @@ +#pragma once +#include "../window.hpp" +#include "html_frame.hpp" + +class html_window final : public window, public html_frame +{ +public: + ~html_window() = default; + + window* get_window(); + html_frame* get_html_frame(); + +private: + LRESULT processor(UINT message, WPARAM w_param, LPARAM l_param) override; +}; diff --git a/src/client/launcher/html/ole_client_site.cpp b/src/client/launcher/html/ole_client_site.cpp new file mode 100644 index 00000000..6e3914ea --- /dev/null +++ b/src/client/launcher/html/ole_client_site.cpp @@ -0,0 +1,77 @@ +#include +#include "html_frame.hpp" + +ole_client_site::ole_client_site(html_frame* frame): frame_(frame) +{ +} + +HRESULT ole_client_site::QueryInterface(REFIID riid, LPVOID* ppvObject) +{ + if (!memcmp(&riid, &IID_IUnknown, sizeof(GUID)) || + !memcmp(&riid, &IID_IOleClientSite, sizeof(GUID))) + { + *ppvObject = this; + this->AddRef(); + return S_OK; + } + + if (!memcmp(&riid, &IID_IOleInPlaceSite, sizeof(GUID))) + { + auto in_place_site = this->frame_->get_in_place_site(); + in_place_site->AddRef(); + *ppvObject = in_place_site; + return S_OK; + } + + if (!memcmp(&riid, &IID_IDocHostUIHandler, sizeof(GUID))) + { + auto ui_handler = this->frame_->get_ui_handler(); + ui_handler->AddRef(); + *ppvObject = ui_handler; + return S_OK; + } + + *ppvObject = nullptr; + return E_NOINTERFACE; +} + +ULONG ole_client_site::AddRef() +{ + return 1; +} + +ULONG ole_client_site::Release() +{ + return 1; +} + +HRESULT ole_client_site::SaveObject() +{ + return E_NOTIMPL; +} + +HRESULT ole_client_site::GetMoniker(DWORD /*dwAssign*/, DWORD /*dwWhichMoniker*/, IMoniker** /*ppmk*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_client_site::GetContainer(LPOLECONTAINER* ppContainer) +{ + *ppContainer = nullptr; + return E_NOINTERFACE; +} + +HRESULT ole_client_site::ShowObject() +{ + return NOERROR; +} + +HRESULT ole_client_site::OnShowWindow(BOOL /*fShow*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_client_site::RequestNewObjectLayout() +{ + return E_NOTIMPL; +} diff --git a/src/client/launcher/html/ole_client_site.hpp b/src/client/launcher/html/ole_client_site.hpp new file mode 100644 index 00000000..d0adc80d --- /dev/null +++ b/src/client/launcher/html/ole_client_site.hpp @@ -0,0 +1,24 @@ +#pragma once + +class html_frame; + +class ole_client_site final : public IOleClientSite +{ +public: + ole_client_site(html_frame* frame); + virtual ~ole_client_site() = default; + +private: + html_frame* frame_; + +public: + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID* ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + HRESULT STDMETHODCALLTYPE SaveObject() override; + HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) override; + HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER FAR* ppContainer) override; + HRESULT STDMETHODCALLTYPE ShowObject() override; + HRESULT STDMETHODCALLTYPE OnShowWindow(BOOL fShow) override; + HRESULT STDMETHODCALLTYPE RequestNewObjectLayout() override; +}; diff --git a/src/client/launcher/html/ole_in_place_frame.cpp b/src/client/launcher/html/ole_in_place_frame.cpp new file mode 100644 index 00000000..172e5db0 --- /dev/null +++ b/src/client/launcher/html/ole_in_place_frame.cpp @@ -0,0 +1,82 @@ +#include +#include "html_frame.hpp" + +ole_in_place_frame::ole_in_place_frame(html_frame* frame): frame_(frame) +{ +} + +HRESULT ole_in_place_frame::QueryInterface(REFIID /*riid*/, LPVOID* /*ppvObj*/) +{ + return E_NOTIMPL; +} + +ULONG ole_in_place_frame::AddRef() +{ + return 1; +} + +ULONG ole_in_place_frame::Release() +{ + return 1; +} + +HRESULT ole_in_place_frame::GetWindow(HWND* lphwnd) +{ + *lphwnd = this->frame_->get_window(); + return S_OK; +} + +HRESULT ole_in_place_frame::ContextSensitiveHelp(BOOL /*fEnterMode*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_frame::GetBorder(LPRECT /*lprectBorder*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_frame::RequestBorderSpace(LPCBORDERWIDTHS /*pborderwidths*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_frame::SetBorderSpace(LPCBORDERWIDTHS /*pborderwidths*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_frame::SetActiveObject(IOleInPlaceActiveObject* /*pActiveObject*/, LPCOLESTR /*pszObjName*/) +{ + return S_OK; +} + +HRESULT ole_in_place_frame::InsertMenus(HMENU /*hmenuShared*/, LPOLEMENUGROUPWIDTHS /*lpMenuWidths*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_frame::SetMenu(HMENU /*hmenuShared*/, HOLEMENU /*holemenu*/, HWND /*hwndActiveObject*/) +{ + return S_OK; +} + +HRESULT ole_in_place_frame::RemoveMenus(HMENU /*hmenuShared*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_frame::SetStatusText(LPCOLESTR /*pszStatusText*/) +{ + return S_OK; +} + +HRESULT ole_in_place_frame::EnableModeless(BOOL /*fEnable*/) +{ + return S_OK; +} + +HRESULT ole_in_place_frame::TranslateAcceleratorA(LPMSG /*lpmsg*/, WORD /*wID*/) +{ + return E_NOTIMPL; +} diff --git a/src/client/launcher/html/ole_in_place_frame.hpp b/src/client/launcher/html/ole_in_place_frame.hpp new file mode 100644 index 00000000..4a39d7f3 --- /dev/null +++ b/src/client/launcher/html/ole_in_place_frame.hpp @@ -0,0 +1,30 @@ +#pragma once + +class html_frame; + +class ole_in_place_frame final : public IOleInPlaceFrame +{ +public: + ole_in_place_frame(html_frame* frame); + virtual ~ole_in_place_frame() = default; + +private: + html_frame* frame_; + +public: // IOleInPlaceFrame interface + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID FAR* ppvObj) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + HRESULT STDMETHODCALLTYPE GetWindow(HWND FAR* lphwnd) override; + HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) override; + HRESULT STDMETHODCALLTYPE GetBorder(LPRECT lprectBorder) override; + HRESULT STDMETHODCALLTYPE RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) override; + HRESULT STDMETHODCALLTYPE SetBorderSpace(LPCBORDERWIDTHS pborderwidths) override; + HRESULT STDMETHODCALLTYPE SetActiveObject(IOleInPlaceActiveObject* pActiveObject, LPCOLESTR pszObjName) override; + HRESULT STDMETHODCALLTYPE InsertMenus(HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) override; + HRESULT STDMETHODCALLTYPE SetMenu(HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject) override; + HRESULT STDMETHODCALLTYPE RemoveMenus(HMENU hmenuShared) override; + HRESULT STDMETHODCALLTYPE SetStatusText(LPCOLESTR pszStatusText) override; + HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) override; + HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg, WORD wID) override; +}; diff --git a/src/client/launcher/html/ole_in_place_site.cpp b/src/client/launcher/html/ole_in_place_site.cpp new file mode 100644 index 00000000..d6cd3d82 --- /dev/null +++ b/src/client/launcher/html/ole_in_place_site.cpp @@ -0,0 +1,105 @@ +#include +#include "html_frame.hpp" + +ole_in_place_site::ole_in_place_site(html_frame* frame) : frame_(frame) +{ +} + +HRESULT ole_in_place_site::QueryInterface(REFIID riid, LPVOID FAR* ppvObj) +{ + auto client_site = this->frame_->get_client_site(); + if (client_site) + { + return client_site->QueryInterface(riid, ppvObj); + } + + return E_NOINTERFACE; +} + +ULONG ole_in_place_site::AddRef() +{ + return 1; +} + +ULONG ole_in_place_site::Release() +{ + return 1; +} + +HRESULT ole_in_place_site::GetWindow(HWND* lphwnd) +{ + *lphwnd = this->frame_->get_window(); + return S_OK; +} + +HRESULT ole_in_place_site::ContextSensitiveHelp(BOOL /*fEnterMode*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_site::CanInPlaceActivate() +{ + return S_OK; +} + +HRESULT ole_in_place_site::OnInPlaceActivate() +{ + return S_OK; +} + +HRESULT ole_in_place_site::OnUIActivate() +{ + return S_OK; +} + +HRESULT ole_in_place_site::GetWindowContext(LPOLEINPLACEFRAME* lplpFrame, LPOLEINPLACEUIWINDOW* lplpDoc, + LPRECT /*lprcPosRect*/, LPRECT /*lprcClipRect*/, + LPOLEINPLACEFRAMEINFO lpFrameInfo) +{ + *lplpFrame = this->frame_->get_in_place_frame(); + *lplpDoc = nullptr; + + lpFrameInfo->fMDIApp = FALSE; + lpFrameInfo->hwndFrame = this->frame_->get_window(); + lpFrameInfo->haccel = nullptr; + lpFrameInfo->cAccelEntries = 0; + + return S_OK; +} + +HRESULT ole_in_place_site::Scroll(SIZE /*scrollExtent*/) +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_site::OnUIDeactivate(BOOL /*fUndoable*/) +{ + return S_OK; +} + +HRESULT ole_in_place_site::OnInPlaceDeactivate() +{ + return S_OK; +} + +HRESULT ole_in_place_site::DiscardUndoState() +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_site::DeactivateAndUndo() +{ + return E_NOTIMPL; +} + +HRESULT ole_in_place_site::OnPosRectChange(LPCRECT lprcPosRect) +{ + IOleInPlaceObject* in_place = nullptr; + if (!this->frame_->get_browser_object()->QueryInterface(IID_IOleInPlaceObject, reinterpret_cast(&in_place))) + { + in_place->SetObjectRects(lprcPosRect, lprcPosRect); + in_place->Release(); + } + + return S_OK; +} diff --git a/src/client/launcher/html/ole_in_place_site.hpp b/src/client/launcher/html/ole_in_place_site.hpp new file mode 100644 index 00000000..3dad18cf --- /dev/null +++ b/src/client/launcher/html/ole_in_place_site.hpp @@ -0,0 +1,32 @@ +#pragma once + +class html_frame; + +class ole_in_place_site final : public IOleInPlaceSite +{ +public: + ole_in_place_site(html_frame* frame); + virtual ~ole_in_place_site() = default; + +private: + html_frame* frame_; + +public: // IOleInPlaceSite interface + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID FAR* ppvObj) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + HRESULT STDMETHODCALLTYPE GetWindow(HWND FAR* lphwnd) override; + HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) override; + HRESULT STDMETHODCALLTYPE CanInPlaceActivate() override; + HRESULT STDMETHODCALLTYPE OnInPlaceActivate() override; + HRESULT STDMETHODCALLTYPE OnUIActivate() override; + HRESULT STDMETHODCALLTYPE GetWindowContext(LPOLEINPLACEFRAME FAR* lplpFrame, LPOLEINPLACEUIWINDOW FAR* lplpDoc, + LPRECT lprcPosRect, LPRECT lprcClipRect, + LPOLEINPLACEFRAMEINFO lpFrameInfo) override; + HRESULT STDMETHODCALLTYPE Scroll(SIZE scrollExtent) override; + HRESULT STDMETHODCALLTYPE OnUIDeactivate(BOOL fUndoable) override; + HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate() override; + HRESULT STDMETHODCALLTYPE DiscardUndoState() override; + HRESULT STDMETHODCALLTYPE DeactivateAndUndo() override; + HRESULT STDMETHODCALLTYPE OnPosRectChange(LPCRECT lprcPosRect) override; +}; diff --git a/src/client/launcher/launcher.cpp b/src/client/launcher/launcher.cpp new file mode 100644 index 00000000..0cf32ea2 --- /dev/null +++ b/src/client/launcher/launcher.cpp @@ -0,0 +1,66 @@ +#include +#include "launcher.hpp" + +#include + +launcher::launcher() +{ + this->create_main_menu(); +} + +void launcher::create_main_menu() +{ + this->main_window_.register_callback("openUrl", [](html_frame::callback_params* params) + { + if (params->arguments.empty()) return; + + const auto param = params->arguments[0]; + if (!param.is_string()) return; + + const auto url = param.get_string(); + ShellExecuteA(nullptr, "open", url.data(), nullptr, nullptr, SW_SHOWNORMAL); + }); + + this->main_window_.register_callback("selectMode", [this](html_frame::callback_params* params) + { + if (params->arguments.empty()) return; + + const auto param = params->arguments[0]; + if (!param.is_number()) return; + + const auto number = static_cast(param.get_number()); + this->select_mode(number); + }); + + this->main_window_.set_callback( + [](window* window, const UINT message, const WPARAM w_param, const LPARAM l_param) -> LRESULT + { + if (message == WM_CLOSE) + { + window::close_all(); + } + + return DefWindowProcA(*window, message, w_param, l_param); + }); + + this->main_window_.create("H2-Mod", 750, 500); + this->main_window_.load_html(load_content(MENU_MAIN)); + this->main_window_.show(); +} + +launcher::mode launcher::run() const +{ + window::run(); + return this->mode_; +} + +void launcher::select_mode(const mode mode) +{ + this->mode_ = mode; + this->main_window_.close(); +} + +std::string launcher::load_content(const int res) +{ + return utils::nt::load_resource(res); +} diff --git a/src/client/launcher/launcher.hpp b/src/client/launcher/launcher.hpp new file mode 100644 index 00000000..1808376c --- /dev/null +++ b/src/client/launcher/launcher.hpp @@ -0,0 +1,32 @@ +#pragma once +#include "html/html_window.hpp" + +class launcher final +{ +public: + enum class mode + { + none, + singleplayer, + multiplayer, + server, + // Surrogates + survival, + zombies, + }; + + launcher(); + + mode run() const; + +private: + mode mode_ = mode::none; + + html_window main_window_; + + void select_mode(mode mode); + + void create_main_menu(); + + static std::string load_content(int res); +}; diff --git a/src/client/launcher/window.cpp b/src/client/launcher/window.cpp new file mode 100644 index 00000000..b9390612 --- /dev/null +++ b/src/client/launcher/window.cpp @@ -0,0 +1,208 @@ +#include +#include "window.hpp" + +#include + +std::mutex window::mutex_; +std::vector window::windows_; + +window::window() +{ + ZeroMemory(&this->wc_, sizeof(this->wc_)); + + this->classname_ = "window-base-" + std::to_string(time(nullptr)); + + this->wc_.cbSize = sizeof(this->wc_); + this->wc_.style = CS_HREDRAW | CS_VREDRAW; + this->wc_.lpfnWndProc = static_processor; + this->wc_.hInstance = GetModuleHandle(nullptr); + this->wc_.hCursor = LoadCursor(nullptr, IDC_ARROW); + this->wc_.hIcon = LoadIcon(this->wc_.hInstance, MAKEINTRESOURCE(102)); + this->wc_.hIconSm = this->wc_.hIcon; + this->wc_.hbrBackground = HBRUSH(COLOR_WINDOW); + this->wc_.lpszClassName = this->classname_.data(); + RegisterClassEx(&this->wc_); +} + +void window::create(const std::string& title, const int width, const int height, const long flags) +{ + { + std::lock_guard _(mutex_); + windows_.push_back(this); + } + + const auto x = (GetSystemMetrics(SM_CXSCREEN) - width) / 2; + const auto y = (GetSystemMetrics(SM_CYSCREEN) - height) / 2; + + this->handle_ = CreateWindowExA(NULL, this->wc_.lpszClassName, title.data(), flags, x, y, width, height, nullptr, + nullptr, this->wc_.hInstance, this); + + SendMessageA(this->handle_, WM_DPICHANGED, 0, 0); +} + +window::~window() +{ + this->close(); + UnregisterClass(this->wc_.lpszClassName, this->wc_.hInstance); +} + +void window::close() +{ + if (!this->handle_) return; + + SendMessageA(this->handle_, WM_KILL_WINDOW, NULL, NULL); + this->handle_ = nullptr; +} + +void window::run() +{ + MSG msg; + while (GetMessage(&msg, nullptr, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +} + +void window::close_all() +{ + std::unique_lock lock(mutex_); + auto window_list = windows_; + lock.unlock(); + + const auto current_thread_id = GetCurrentThreadId(); + for (auto& window : window_list) + { + const auto thread_id = GetWindowThreadProcessId(*window, nullptr); + + if (thread_id == current_thread_id) + { + window->close(); + } + } +} + +void window::remove_window(const window* window) +{ + std::lock_guard _(mutex_); + + for (auto i = windows_.begin(); i != windows_.end(); ++i) + { + if (*i == window) + { + windows_.erase(i); + break; + } + } +} + +int window::get_window_count() +{ + std::lock_guard _(mutex_); + + auto count = 0; + const auto current_thread_id = GetCurrentThreadId(); + + for (const auto& window : windows_) + { + const auto thread_id = GetWindowThreadProcessId(*window, nullptr); + + if (thread_id == current_thread_id) + { + ++count; + } + } + + return count; +} + +void window::show() const +{ + ShowWindow(this->handle_, SW_SHOW); + UpdateWindow(this->handle_); +} + +void window::hide() const +{ + ShowWindow(this->handle_, SW_HIDE); + UpdateWindow(this->handle_); +} + +void window::set_callback(const std::function& callback) +{ + this->callback_ = callback; +} + +LRESULT window::processor(const UINT message, const WPARAM w_param, const LPARAM l_param) +{ + if (message == WM_DPICHANGED) + { + const utils::nt::library user32{"user32.dll"}; + const auto get_dpi = user32 ? user32.get_proc("GetDpiForWindow") : nullptr; + + if (get_dpi) + { + const auto dpi = get_dpi(*this); + if (dpi != this->last_dpi_) + { + RECT rect; + GetWindowRect(*this, &rect); + + const auto scale = dpi * 1.0 / this->last_dpi_; + this->last_dpi_ = dpi; + + const auto width = rect.right - rect.left; + const auto height = rect.bottom - rect.top; + + MoveWindow(*this, rect.left, rect.top, int(width * scale), int(height * scale), TRUE); + } + } + } + + if (message == WM_DESTROY) + { + remove_window(this); + + if (get_window_count() == 0) + { + PostQuitMessage(0); + } + + return TRUE; + } + + if (message == WM_KILL_WINDOW) + { + DestroyWindow(*this); + return 0; + } + + if (this->callback_) + { + return this->callback_(this, message, w_param, l_param); + } + + return DefWindowProc(*this, message, w_param, l_param); +} + +LRESULT CALLBACK window::static_processor(HWND hwnd, UINT message, WPARAM w_param, LPARAM l_param) +{ + if (message == WM_CREATE) + { + auto data = reinterpret_cast(l_param); + SetWindowLongPtrA(hwnd, GWLP_USERDATA, LONG_PTR(data->lpCreateParams)); + + static_cast(data->lpCreateParams)->handle_ = hwnd; + } + + const auto self = reinterpret_cast(GetWindowLongPtr(hwnd, GWLP_USERDATA)); + if (self) return self->processor(message, w_param, l_param); + + return DefWindowProc(hwnd, message, w_param, l_param); +} + + +window::operator HWND() const +{ + return this->handle_; +} diff --git a/src/client/launcher/window.hpp b/src/client/launcher/window.hpp new file mode 100644 index 00000000..4dea45d6 --- /dev/null +++ b/src/client/launcher/window.hpp @@ -0,0 +1,44 @@ +#pragma once + +#define WM_KILL_WINDOW (WM_USER+0) + +class window +{ +public: + window(); + virtual ~window(); + + void create(const std::string& title, int width, int height, + long flags = (WS_OVERLAPPEDWINDOW & ~(WS_THICKFRAME | WS_MAXIMIZEBOX))); + + void close(); + + void show() const; + void hide() const; + + void set_callback(const std::function& callback); + + operator HWND() const; + + static void run(); + static void close_all(); + +protected: + virtual LRESULT processor(UINT message, WPARAM w_param, LPARAM l_param); + +private: + uint32_t last_dpi_ = 96; + + WNDCLASSEX wc_{}; + HWND handle_ = nullptr; + std::string classname_; + std::function callback_; + + static LRESULT CALLBACK static_processor(HWND hwnd, UINT message, WPARAM w_param, LPARAM l_param); + + static std::mutex mutex_; + static std::vector windows_; + + static void remove_window(const window* window); + static int get_window_count(); +}; diff --git a/src/loader/component_interface.hpp b/src/client/loader/component_interface.hpp similarity index 100% rename from src/loader/component_interface.hpp rename to src/client/loader/component_interface.hpp diff --git a/src/loader/component_loader.cpp b/src/client/loader/component_loader.cpp similarity index 98% rename from src/loader/component_loader.cpp rename to src/client/loader/component_loader.cpp index d6a0090f..60418086 100644 --- a/src/loader/component_loader.cpp +++ b/src/client/loader/component_loader.cpp @@ -1,4 +1,4 @@ -#include +#include #include "component_loader.hpp" void component_loader::register_component(std::unique_ptr&& component_) diff --git a/src/loader/component_loader.hpp b/src/client/loader/component_loader.hpp similarity index 100% rename from src/loader/component_loader.hpp rename to src/client/loader/component_loader.hpp diff --git a/src/client/loader/loader.cpp b/src/client/loader/loader.cpp new file mode 100644 index 00000000..4ec12c7c --- /dev/null +++ b/src/client/loader/loader.cpp @@ -0,0 +1,208 @@ +#include +#include "loader.hpp" +#include "seh.hpp" +#include "tls.hpp" + +#include +#include + +FARPROC loader::load(const utils::nt::library& library, const std::string& buffer) const +{ + if (buffer.empty()) return nullptr; + + const utils::nt::library source(HMODULE(buffer.data())); + if (!source) return nullptr; + + this->load_sections(library, source); + this->load_imports(library, source); + this->load_exception_table(library, source); + this->load_tls(library, source); + + DWORD old_protect; + VirtualProtect(library.get_nt_headers(), 0x1000, PAGE_EXECUTE_READWRITE, &old_protect); + + library.get_optional_header()->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT] = source + .get_optional_header()->DataDirectory[ + IMAGE_DIRECTORY_ENTRY_IMPORT]; + std::memmove(library.get_nt_headers(), source.get_nt_headers(), + sizeof(IMAGE_NT_HEADERS) + source.get_nt_headers()->FileHeader.NumberOfSections * sizeof( + IMAGE_SECTION_HEADER)); + + return FARPROC(library.get_ptr() + source.get_relative_entry_point()); +} + +FARPROC loader::load_library(const std::string& filename, uint64_t* base_address) const +{ + const auto target = utils::nt::library::load(filename); + if (!target) + { + throw std::runtime_error{"Failed to map binary!"}; + } + + const auto base = size_t(target.get_ptr()); + *base_address = base; + + this->load_imports(target, target); + this->load_tls(target, target); + + return FARPROC(target.get_ptr() + target.get_relative_entry_point()); +} + +void loader::set_import_resolver(const std::function& resolver) +{ + this->import_resolver_ = resolver; +} + +void loader::load_section(const utils::nt::library& target, const utils::nt::library& source, + IMAGE_SECTION_HEADER* section) +{ + void* target_ptr = target.get_ptr() + section->VirtualAddress; + const void* source_ptr = source.get_ptr() + section->PointerToRawData; + + if (PBYTE(target_ptr) >= (target.get_ptr() + BINARY_PAYLOAD_SIZE)) + { + throw std::runtime_error("Section exceeds the binary payload size, please increase it!"); + } + + if (section->SizeOfRawData > 0) + { + std::memmove(target_ptr, source_ptr, section->SizeOfRawData); + + DWORD old_protect; + VirtualProtect(target_ptr, section->Misc.VirtualSize, PAGE_EXECUTE_READWRITE, &old_protect); + } +} + +void loader::load_sections(const utils::nt::library& target, const utils::nt::library& source) const +{ + for (auto& section : source.get_section_headers()) + { + this->load_section(target, source, section); + } +} + +void loader::load_imports(const utils::nt::library& target, const utils::nt::library& source) const +{ + auto* const import_directory = &source.get_optional_header()->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; + + auto* descriptor = PIMAGE_IMPORT_DESCRIPTOR(target.get_ptr() + import_directory->VirtualAddress); + + while (descriptor->Name) + { + std::string name = LPSTR(target.get_ptr() + descriptor->Name); + + auto* name_table_entry = reinterpret_cast(target.get_ptr() + descriptor->OriginalFirstThunk); + auto* address_table_entry = reinterpret_cast(target.get_ptr() + descriptor->FirstThunk); + + if (!descriptor->OriginalFirstThunk) + { + name_table_entry = reinterpret_cast(target.get_ptr() + descriptor->FirstThunk); + } + + while (*name_table_entry) + { + FARPROC function = nullptr; + std::string function_name; + const char* function_procname; + + if (IMAGE_SNAP_BY_ORDINAL(*name_table_entry)) + { + function_name = "#" + std::to_string(IMAGE_ORDINAL(*name_table_entry)); + function_procname = MAKEINTRESOURCEA(IMAGE_ORDINAL(*name_table_entry)); + } + else + { + auto* import = PIMAGE_IMPORT_BY_NAME(target.get_ptr() + *name_table_entry); + function_name = import->Name; + function_procname = function_name.data(); + } + + if (this->import_resolver_) function = FARPROC(this->import_resolver_(name, function_name)); + if (!function) + { + auto library = utils::nt::library::load(name); + if (library) + { + function = GetProcAddress(library, function_procname); + } + } + + if (!function) + { + throw std::runtime_error(utils::string::va("Unable to load import '%s' from library '%s'", + function_name.data(), name.data())); + } + + utils::hook::set(address_table_entry, reinterpret_cast(function)); + + name_table_entry++; + address_table_entry++; + } + + descriptor++; + } +} + +void loader::load_exception_table(const utils::nt::library& target, const utils::nt::library& source) const +{ + auto* exception_directory = &source.get_optional_header()->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION]; + + auto* function_list = PRUNTIME_FUNCTION(target.get_ptr() + exception_directory->VirtualAddress); + const auto entry_count = ULONG(exception_directory->Size / sizeof(RUNTIME_FUNCTION)); + + if (!RtlAddFunctionTable(function_list, entry_count, DWORD64(target.get_ptr()))) + { + MessageBoxA(nullptr, "Setting exception handlers failed.", "Error", MB_OK | MB_ICONERROR); + } + + { + const utils::nt::library ntdll("ntdll.dll"); + + auto* const table_list_head = ntdll.invoke_pascal("RtlGetFunctionTableListHead"); + auto* table_list_entry = table_list_head->Flink; + + while (table_list_entry != table_list_head) + { + auto* const function_table = CONTAINING_RECORD(table_list_entry, DYNAMIC_FUNCTION_TABLE, Links); + + if (function_table->BaseAddress == ULONG_PTR(target.get_handle())) + { + function_table->EntryCount = entry_count; + function_table->FunctionTable = function_list; + } + + table_list_entry = function_table->Links.Flink; + } + } + + seh::setup_handler(target.get_ptr(), target.get_ptr() + source.get_optional_header()->SizeOfImage, function_list, + entry_count); +} + +void loader::load_tls(const utils::nt::library& target, const utils::nt::library& source) const +{ + if (source.get_optional_header()->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size) + { + auto* target_tls = tls::allocate_tls_index(); + /* target_tls = reinterpret_cast(library.get_ptr() + library.get_optional_header() + ->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress); */ + auto* const source_tls = reinterpret_cast(target.get_ptr() + source.get_optional_header() + ->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress); + + const auto tls_size = source_tls->EndAddressOfRawData - source_tls->StartAddressOfRawData; + const auto tls_index = *reinterpret_cast(target_tls->AddressOfIndex); + utils::hook::set(source_tls->AddressOfIndex, tls_index); + + DWORD old_protect; + VirtualProtect(PVOID(target_tls->StartAddressOfRawData), + source_tls->EndAddressOfRawData - source_tls->StartAddressOfRawData, PAGE_READWRITE, + &old_protect); + + auto* const tls_base = *reinterpret_cast(__readgsqword(0x58) + 8ull * tls_index); + std::memmove(tls_base, PVOID(source_tls->StartAddressOfRawData), tls_size); + std::memmove(PVOID(target_tls->StartAddressOfRawData), PVOID(source_tls->StartAddressOfRawData), tls_size); + + VirtualProtect(target_tls, sizeof(*target_tls), PAGE_READWRITE, &old_protect); + *target_tls = *source_tls; + } +} diff --git a/src/client/loader/loader.hpp b/src/client/loader/loader.hpp new file mode 100644 index 00000000..0c0b5a12 --- /dev/null +++ b/src/client/loader/loader.hpp @@ -0,0 +1,21 @@ +#pragma once +#include + +class loader final +{ +public: + FARPROC load(const utils::nt::library& library, const std::string& buffer) const; + FARPROC load_library(const std::string& filename, uint64_t* base_address) const; + + void set_import_resolver(const std::function& resolver); + +private: + std::function import_resolver_; + + static void load_section(const utils::nt::library& target, const utils::nt::library& source, + IMAGE_SECTION_HEADER* section); + void load_sections(const utils::nt::library& target, const utils::nt::library& source) const; + void load_imports(const utils::nt::library& target, const utils::nt::library& source) const; + void load_exception_table(const utils::nt::library& target, const utils::nt::library& source) const; + void load_tls(const utils::nt::library& target, const utils::nt::library& source) const; +}; diff --git a/src/client/loader/seh.cpp b/src/client/loader/seh.cpp new file mode 100644 index 00000000..a3364a8f --- /dev/null +++ b/src/client/loader/seh.cpp @@ -0,0 +1,151 @@ +#include + +#include +#include + +#include "seh.hpp" + +namespace seh +{ + namespace + { + void*(*rtlpx_lookup_function_table)(void*, FUNCTION_TABLE_DATA*); + void*(*rtlpx_lookup_function_table_down_level)(void*, PDWORD64, PULONG); + + FUNCTION_TABLE_DATA overridden_table; + + DWORD64 override_end; + DWORD64 override_start; + + void* find_call_from_address(void* method_ptr, ud_mnemonic_code mnemonic = UD_Icall) + { + ud_t ud; + ud_init(&ud); + ud_set_mode(&ud, 64); + ud_set_pc(&ud, reinterpret_cast(method_ptr)); + ud_set_input_buffer(&ud, static_cast(method_ptr), INT32_MAX); + + void* retval = nullptr; + while (true) + { + ud_disassemble(&ud); + + if (ud_insn_mnemonic(&ud) == UD_Iint3) break; + if (ud_insn_mnemonic(&ud) == mnemonic) + { + const auto* const operand = ud_insn_opr(&ud, 0); + if (operand->type == UD_OP_JIMM) + { + if (!retval) retval = reinterpret_cast(ud_insn_len(&ud) + ud_insn_off(&ud) + operand-> + lval.sdword); + else + { + retval = nullptr; + break; + } + } + } + } + + return retval; + } + + void* rtlpx_lookup_function_table_override(void* exception_address, FUNCTION_TABLE_DATA* out_data) + { + ZeroMemory(out_data, sizeof(*out_data)); + + auto* retval = seh::rtlpx_lookup_function_table(exception_address, out_data); + + const auto address_num = DWORD64(exception_address); + if (address_num >= seh::override_start && address_num <= seh::override_end) + { + if (address_num != 0) + { + *out_data = seh::overridden_table; + retval = PVOID(seh::overridden_table.TableAddress); + } + } + + return retval; + } + + void* rtlpx_lookup_function_table_override_down_level(void* exception_address, const PDWORD64 image_base, + const PULONG length) + { + auto* retval = seh::rtlpx_lookup_function_table_down_level(exception_address, image_base, length); + + const auto address_num = DWORD64(exception_address); + if (address_num >= seh::override_start && address_num <= seh::override_end) + { + if (address_num != 0) + { + *image_base = seh::overridden_table.ImageBase; + *length = seh::overridden_table.Size; + + retval = PVOID(seh::overridden_table.TableAddress); + } + } + + return retval; + } + } + + void setup_handler(void* module_base, void* module_end, PRUNTIME_FUNCTION runtime_functions, const DWORD entryCount) + { + const utils::nt::library ntdll("ntdll.dll"); + + seh::override_start = DWORD64(module_base); + seh::override_end = DWORD64(module_end); + + seh::overridden_table.ImageBase = seh::override_start; + seh::overridden_table.TableAddress = DWORD64(runtime_functions); + seh::overridden_table.Size = entryCount * sizeof(RUNTIME_FUNCTION); + + if (IsWindows8Point1OrGreater()) + { + struct + { + DWORD64 field0; + DWORD imageSize; + DWORD fieldC; + DWORD64 field10; + } query_result = {0, 0, 0, 0}; + + ntdll.invoke_pascal("NtQueryVirtualMemory", GetCurrentProcess(), module_base, 6, &query_result, + sizeof(query_result), nullptr); + seh::overridden_table.ImageSize = query_result.imageSize; + } + + auto* base_address = ntdll.get_proc("RtlLookupFunctionTable"); + auto* internal_address = find_call_from_address(base_address); + + void* patch_function = rtlpx_lookup_function_table_override; + auto** patch_original = reinterpret_cast(&seh::rtlpx_lookup_function_table); + + if (!internal_address) + { + if (!IsWindows8Point1OrGreater()) + { + internal_address = find_call_from_address(base_address, UD_Ijmp); + patch_function = rtlpx_lookup_function_table_override_down_level; + patch_original = reinterpret_cast(&seh::rtlpx_lookup_function_table_down_level); + } + + if (!internal_address) + { + if (IsWindows8OrGreater()) + { + // TODO: Catch the error + } + + internal_address = base_address; + patch_function = rtlpx_lookup_function_table_override_down_level; + patch_original = reinterpret_cast(&seh::rtlpx_lookup_function_table_down_level); + } + } + + static utils::hook::detour hook{}; + hook = utils::hook::detour(internal_address, patch_function); + *patch_original = hook.get_original(); + } +} diff --git a/src/client/loader/seh.hpp b/src/client/loader/seh.hpp new file mode 100644 index 00000000..232dca47 --- /dev/null +++ b/src/client/loader/seh.hpp @@ -0,0 +1,38 @@ +#pragma once + +struct FUNCTION_TABLE_DATA +{ + DWORD64 TableAddress; + DWORD64 ImageBase; + DWORD ImageSize; // field +8 in ZwQueryVirtualMemory class 6 + DWORD Size; +}; + +typedef enum _FUNCTION_TABLE_TYPE +{ + RF_SORTED, + RF_UNSORTED, + RF_CALLBACK +} FUNCTION_TABLE_TYPE; + +typedef struct _DYNAMIC_FUNCTION_TABLE +{ + LIST_ENTRY Links; + PRUNTIME_FUNCTION FunctionTable; + LARGE_INTEGER TimeStamp; + + ULONG_PTR MinimumAddress; + ULONG_PTR MaximumAddress; + ULONG_PTR BaseAddress; + + PGET_RUNTIME_FUNCTION_CALLBACK Callback; + PVOID Context; + PWSTR OutOfProcessCallbackDll; + FUNCTION_TABLE_TYPE Type; + ULONG EntryCount; +} DYNAMIC_FUNCTION_TABLE, *PDYNAMIC_FUNCTION_TABLE; + +namespace seh +{ + void setup_handler(void* module_base, void* module_end, PRUNTIME_FUNCTION runtime_functions, DWORD entryCount); +} diff --git a/src/client/loader/tls.cpp b/src/client/loader/tls.cpp new file mode 100644 index 00000000..5a106956 --- /dev/null +++ b/src/client/loader/tls.cpp @@ -0,0 +1,34 @@ +#include +#include "tls.hpp" + +#include +#include + +namespace tls +{ + namespace + { + utils::binary_resource tls_dll_file(TLS_DLL, "h2-mod-tlsdll.dll"); + } + + PIMAGE_TLS_DIRECTORY allocate_tls_index() + { + static auto already_allocated = false; + if (already_allocated) + { + throw std::runtime_error("Currently only a single allocation is supported!"); + } + + already_allocated = true; + + const auto dll_path = tls_dll_file.get_extracted_file(); + const auto tls_dll = utils::nt::library::load(dll_path); + if (!tls_dll) + { + throw std::runtime_error("Failed to load TLS DLL"); + } + + return reinterpret_cast(tls_dll.get_ptr() + tls_dll.get_optional_header() + ->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress); + } +} diff --git a/src/client/loader/tls.hpp b/src/client/loader/tls.hpp new file mode 100644 index 00000000..1b7c68d2 --- /dev/null +++ b/src/client/loader/tls.hpp @@ -0,0 +1,6 @@ +#pragma once + +namespace tls +{ + PIMAGE_TLS_DIRECTORY allocate_tls_index(); +} diff --git a/src/client/main.cpp b/src/client/main.cpp new file mode 100644 index 00000000..faf34028 --- /dev/null +++ b/src/client/main.cpp @@ -0,0 +1,202 @@ +#include +#include "launcher/launcher.hpp" +#include "loader/loader.hpp" +#include "loader/component_loader.hpp" +#include "game/game.hpp" + +#include +#include +#include + +DECLSPEC_NORETURN void WINAPI exit_hook(const int code) +{ + component_loader::pre_destroy(); + exit(code); +} + +BOOL WINAPI system_parameters_info_a(const UINT uiAction, const UINT uiParam, const PVOID pvParam, const UINT fWinIni) +{ + return SystemParametersInfoA(uiAction, uiParam, pvParam, fWinIni); +} + +FARPROC WINAPI get_proc_address(const HMODULE hModule, const LPCSTR lpProcName) +{ + if (lpProcName == "InitializeCriticalSectionEx"s) + { + component_loader::post_unpack(); + } + + return GetProcAddress(hModule, lpProcName); +} + +launcher::mode detect_mode_from_arguments() +{ + if (utils::flags::has_flag("singleplayer")) + { + return launcher::mode::singleplayer; + } + + return launcher::mode::none; +} + + +FARPROC load_binary(const launcher::mode mode, uint64_t* base_address) +{ + loader loader; + utils::nt::library self; + + loader.set_import_resolver([self](const std::string& library, const std::string& function) -> void* + { + if (function == "ExitProcess") + { + return exit_hook; + } + else if (function == "SystemParametersInfoA") + { + return system_parameters_info_a; + } + else if (function == "GetProcAddress") + { + return get_proc_address; + } + + return component_loader::load_import(library, function); + }); + + std::string binary; + switch (mode) + { + case launcher::mode::singleplayer: + binary = "MW2CR.exe"; + break; + case launcher::mode::none: + default: + throw std::runtime_error("Invalid game mode!"); + } + + std::string data; + if (!utils::io::read_file(binary, &data)) + { + throw std::runtime_error(utils::string::va( + "Failed to read game binary (%s)!\nPlease copy the h2-mod.exe into your Call of Duty: Modern Warfare 2 Campaign Remastered installation folder and run it from there.", + binary.data())); + } + + return loader.load_library(binary, base_address); +} + +void remove_crash_file() +{ + utils::io::remove_file("__h2Exe"); +} + +void enable_dpi_awareness() +{ + const utils::nt::library user32{"user32.dll"}; + const auto set_dpi = user32 + ? user32.get_proc("SetProcessDpiAwarenessContext") + : nullptr; + if (set_dpi) + { + set_dpi(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + } +} + +void limit_parallel_dll_loading() +{ + const utils::nt::library self; + const auto registry_path = R"(Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\)" + self. + get_name(); + + HKEY key = nullptr; + if (RegCreateKeyA(HKEY_LOCAL_MACHINE, registry_path.data(), &key) == ERROR_SUCCESS) + { + RegCloseKey(key); + } + + key = nullptr; + if (RegOpenKeyExA( + HKEY_LOCAL_MACHINE, registry_path.data(), 0, + KEY_ALL_ACCESS, &key) != ERROR_SUCCESS) + { + return; + } + + DWORD value = 1; + RegSetValueExA(key, "MaxLoaderThreads", 0, REG_DWORD, reinterpret_cast(&value), sizeof(value)); + + RegCloseKey(key); +} + +int main() +{ + ShowWindow(GetConsoleWindow(), SW_HIDE); + + FARPROC entry_point; + enable_dpi_awareness(); + + limit_parallel_dll_loading(); + + srand(uint32_t(time(nullptr))); + remove_crash_file(); + + { + auto premature_shutdown = true; + const auto _ = gsl::finally([&premature_shutdown]() + { + if (premature_shutdown) + { + component_loader::pre_destroy(); + } + }); + + try + { + if (!component_loader::post_start()) + { + return 0; + } + + auto mode = detect_mode_from_arguments(); + if (mode == launcher::mode::none) + { + const launcher launcher; + mode = launcher.run(); + if (mode == launcher::mode::none) + { + return 0; + } + } + + game::environment::set_mode(mode); + + uint64_t base_address{}; + entry_point = load_binary(mode, &base_address); + if (!entry_point) + { + throw std::runtime_error("Unable to load binary into memory"); + } + + game::base_address = base_address; + + if (!component_loader::post_load()) + { + return 0; + } + + premature_shutdown = false; + } + catch (std::exception& e) + { + MessageBoxA(nullptr, e.what(), "ERROR", MB_ICONERROR); + return 1; + } + } + + return static_cast(entry_point()); +} + +int __stdcall WinMain(HINSTANCE, HINSTANCE, PSTR, int) +{ + return main(); +} diff --git a/src/client/resource.hpp b/src/client/resource.hpp new file mode 100644 index 00000000..c2ce9b6a --- /dev/null +++ b/src/client/resource.hpp @@ -0,0 +1,22 @@ +#pragma once + +#define ID_ICON 102 + +#define IMAGE_SPLASH 300 +#define IMAGE_LOGO 301 + +#define DW_ENTITLEMENT_CONFIG 302 +#define DW_SOCIAL_CONFIG 303 +#define DW_MM_CONFIG 304 +#define DW_LOOT_CONFIG 305 +#define DW_STORE_CONFIG 306 +#define DW_MOTD 307 +#define DW_FASTFILE 308 +#define DW_PLAYLISTS 309 + +#define MENU_MAIN 310 + +#define TLS_DLL 311 +#define RUNNER 312 + +#define ICON_IMAGE 313 diff --git a/src/client/resource.rc b/src/client/resource.rc new file mode 100644 index 00000000..1b461518 --- /dev/null +++ b/src/client/resource.rc @@ -0,0 +1,128 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "windows.h" +#include "version.h" +#include "resource.hpp" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "#include ""windows.h""\r\n" + "\0" +END + +2 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_FILE_RC + PRODUCTVERSION VERSION_PRODUCT_RC + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else +#ifdef PRERELEASE + FILEFLAGS VS_FF_PRERELEASE +#else +#ifndef CI + FILEFLAGS VS_FF_PRIVATEBUILD +#else + FILEFLAGS 0x0L +#endif +#endif +#endif + FILEOS 0x40004L + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "fed" + VALUE "FileDescription", "H2-Mod" + VALUE "FileVersion", VERSION_FILE + VALUE "InternalName", "H2-Mod" + VALUE "LegalCopyright", "Copyright (C) 2021 fed. All rights reserved." + VALUE "Licence", "GPLv3" + VALUE "Info", "https://github.com/fedddddd/h2-mod" + VALUE "OriginalFilename", "h2-mod.exe" + VALUE "ProductName", "h2-mod" + VALUE "ProductVersion", VERSION_PRODUCT + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +///////////////////////////////////////////////////////////////////////////// +// +// Binary Data +// + +ID_ICON ICON "resources/icon.ico" + +MENU_MAIN RCDATA "resources/main.html" + +#ifdef _DEBUG +TLS_DLL RCDATA "../../build/bin/x64/Debug/tlsdll.dll" +#else +TLS_DLL RCDATA "../../build/bin/x64/Release/tlsdll.dll" +#endif + +#ifdef _DEBUG +RUNNER RCDATA "../../build/bin/x64/Debug/runner.exe" +#else +RUNNER RCDATA "../../build/bin/x64/Release/runner.exe" +#endif + +ICON_IMAGE RCDATA "resources/icon.png" + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/client/resources/icon.ico b/src/client/resources/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..255503b161db4a77fe7a8733f4e5d79d5651f3a3 GIT binary patch literal 204862 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 x-9!$l?29ak{BNQBe{T5yFtj}W=!JgkZ(rnA + + + + + + H2-Mod + + + + + + +
+
+ + + +
+
+ + + + + diff --git a/src/client/std_include.cpp b/src/client/std_include.cpp new file mode 100644 index 00000000..a5497531 --- /dev/null +++ b/src/client/std_include.cpp @@ -0,0 +1,32 @@ +#include + +#pragma comment(linker, "/base:0x7FFF00000000") + +extern "C" +{ + __declspec(dllexport) DWORD NvOptimusEnablement = 1; + __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 1; +}; + +extern "C" +{ + int s_read_arc4random(void*, size_t) + { + return -1; + } + + int s_read_getrandom(void*, size_t) + { + return -1; + } + + int s_read_urandom(void*, size_t) + { + return -1; + } + + int s_read_ltm_rng(void*, size_t) + { + return -1; + } +} diff --git a/src/client/std_include.hpp b/src/client/std_include.hpp new file mode 100644 index 00000000..279d6e41 --- /dev/null +++ b/src/client/std_include.hpp @@ -0,0 +1,101 @@ +#pragma once + +#define BINARY_PAYLOAD_SIZE 0x12000000 + +#pragma warning(push) +#pragma warning(disable: 4100) +#pragma warning(disable: 4127) +#pragma warning(disable: 4244) +#pragma warning(disable: 4458) +#pragma warning(disable: 4702) +#pragma warning(disable: 4996) +#pragma warning(disable: 5054) +#pragma warning(disable: 6011) +#pragma warning(disable: 6297) +#pragma warning(disable: 6385) +#pragma warning(disable: 6386) +#pragma warning(disable: 6387) +#pragma warning(disable: 26110) +#pragma warning(disable: 26451) +#pragma warning(disable: 26444) +#pragma warning(disable: 26451) +#pragma warning(disable: 26489) +#pragma warning(disable: 26495) +#pragma warning(disable: 26498) +#pragma warning(disable: 26812) +#pragma warning(disable: 28020) + +#define WIN32_LEAN_AND_MEAN + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// min and max is required by gdi, therefore NOMINMAX won't work +#ifdef max +#undef max +#endif + +#ifdef min +#undef min +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include + +#pragma warning(pop) +#pragma warning(disable: 4100) + +#pragma comment(lib, "ntdll.lib") +#pragma comment(lib, "ws2_32.lib") +#pragma comment(lib, "urlmon.lib" ) +#pragma comment(lib, "iphlpapi.lib") +#pragma comment(lib, "Crypt32.lib") + +#include "resource.hpp" + +using namespace std::literals; diff --git a/src/common/exception/minidump.cpp b/src/common/exception/minidump.cpp new file mode 100644 index 00000000..22c553da --- /dev/null +++ b/src/common/exception/minidump.cpp @@ -0,0 +1,93 @@ +#include "minidump.hpp" + +#include +#pragma comment(lib, "dbghelp.lib") + +#include + +namespace exception +{ + namespace + { + constexpr MINIDUMP_TYPE get_minidump_type() + { + const auto type = MiniDumpIgnoreInaccessibleMemory // + | MiniDumpWithHandleData // + | MiniDumpScanMemory // + | MiniDumpWithProcessThreadData // + | MiniDumpWithFullMemoryInfo // + | MiniDumpWithThreadInfo // + | MiniDumpWithUnloadedModules; + + return static_cast(type); + } + + std::string get_temp_filename() + { + char filename[MAX_PATH] = {0}; + char pathname[MAX_PATH] = {0}; + + GetTempPathA(sizeof(pathname), pathname); + GetTempFileNameA(pathname, "H2-Mod-", 0, filename); + return filename; + } + + HANDLE write_dump_to_temp_file(const LPEXCEPTION_POINTERS exceptioninfo) + { + MINIDUMP_EXCEPTION_INFORMATION minidump_exception_info = {GetCurrentThreadId(), exceptioninfo, FALSE}; + + auto* const file_handle = CreateFileA(get_temp_filename().data(), GENERIC_WRITE | GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_ALWAYS, + FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE, + nullptr); + + if (!MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), file_handle, get_minidump_type(), + &minidump_exception_info, + nullptr, + nullptr)) + { + MessageBoxA(nullptr, "There was an error creating the minidump! Hit OK to close the program.", + "Minidump Error", MB_OK | MB_ICONERROR); + TerminateProcess(GetCurrentProcess(), 123); + } + + return file_handle; + } + + std::string read_file(HANDLE file_handle) + { + FlushFileBuffers(file_handle); + SetFilePointer(file_handle, 0, nullptr, FILE_BEGIN); + + std::string buffer{}; + + DWORD bytes_read = 0; + char temp_bytes[0x2000]; + + do + { + if (!ReadFile(file_handle, temp_bytes, sizeof(temp_bytes), &bytes_read, nullptr)) + { + return {}; + } + + buffer.append(temp_bytes, bytes_read); + } + while (bytes_read == sizeof(temp_bytes)); + + return buffer; + } + } + + std::string create_minidump(const LPEXCEPTION_POINTERS exceptioninfo) + { + auto* const file_handle = write_dump_to_temp_file(exceptioninfo); + + const auto _ = gsl::finally([file_handle]() + { + CloseHandle(file_handle); + }); + + return read_file(file_handle); + } +} diff --git a/src/common/exception/minidump.hpp b/src/common/exception/minidump.hpp new file mode 100644 index 00000000..42b3a46a --- /dev/null +++ b/src/common/exception/minidump.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include "../utils/nt.hpp" + +namespace exception +{ + std::string create_minidump(LPEXCEPTION_POINTERS exceptioninfo); +} diff --git a/src/common/utils/binary_resource.cpp b/src/common/utils/binary_resource.cpp new file mode 100644 index 00000000..d780db69 --- /dev/null +++ b/src/common/utils/binary_resource.cpp @@ -0,0 +1,75 @@ +#include "binary_resource.hpp" + +#include +#include "nt.hpp" +#include "io.hpp" + +namespace utils +{ + namespace + { + std::string get_temp_folder() + { + char path[MAX_PATH] = {0}; + if (!GetTempPathA(sizeof(path), path)) + { + throw std::runtime_error("Unable to get temp path"); + } + + return path; + } + + std::string write_exitisting_temp_file(const std::string& file, const std::string& data, + const bool fatal_if_overwrite_fails) + { + const auto temp = get_temp_folder(); + auto file_path = temp + file; + + std::string current_data; + if (!io::read_file(file_path, ¤t_data)) + { + if (!io::write_file(file_path, data)) + { + throw std::runtime_error("Failed to write file: " + file_path); + } + + return file_path; + } + + if (current_data == data || io::write_file(file_path, data) || !fatal_if_overwrite_fails) + { + return file_path; + } + + throw std::runtime_error( + "Temporary file was already written, but differs. It can't be overwritten as it's still in use: " + + file_path); + } + } + + binary_resource::binary_resource(const int id, std::string file) + : filename_(std::move(file)) + { + this->resource_ = nt::load_resource(id); + + if (this->resource_.empty()) + { + throw std::runtime_error("Unable to load resource: " + std::to_string(id)); + } + } + + std::string binary_resource::get_extracted_file(const bool fatal_if_overwrite_fails) + { + if (this->path_.empty()) + { + this->path_ = write_exitisting_temp_file(this->filename_, this->resource_, fatal_if_overwrite_fails); + } + + return this->path_; + } + + const std::string& binary_resource::get_data() const + { + return this->resource_; + } +} diff --git a/src/common/utils/binary_resource.hpp b/src/common/utils/binary_resource.hpp new file mode 100644 index 00000000..da19af1a --- /dev/null +++ b/src/common/utils/binary_resource.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include + +namespace utils +{ + class binary_resource + { + public: + binary_resource(int id, std::string file); + + std::string get_extracted_file(bool fatal_if_overwrite_fails = false); + const std::string& get_data() const; + + private: + std::string resource_; + std::string filename_; + std::string path_; + }; +} diff --git a/src/common/utils/compression.cpp b/src/common/utils/compression.cpp new file mode 100644 index 00000000..1688cee5 --- /dev/null +++ b/src/common/utils/compression.cpp @@ -0,0 +1,169 @@ +#include "memory.hpp" +#include "compression.hpp" + +#include +#include + +#include + +#include "io.hpp" + +namespace utils::compression +{ + namespace zlib + { + namespace + { + class zlib_stream + { + public: + zlib_stream() + { + memset(&stream_, 0, sizeof(stream_)); + valid_ = inflateInit(&stream_) == Z_OK; + } + + zlib_stream(zlib_stream&&) = delete; + zlib_stream(const zlib_stream&) = delete; + zlib_stream& operator=(zlib_stream&&) = delete; + zlib_stream& operator=(const zlib_stream&) = delete; + + ~zlib_stream() + { + if (valid_) + { + inflateEnd(&stream_); + } + } + + z_stream& get() + { + return stream_; // + } + + bool is_valid() const + { + return valid_; + } + + private: + bool valid_{false}; + z_stream stream_{}; + }; + } + + std::string decompress(const std::string& data) + { + std::string buffer{}; + zlib_stream stream_container{}; + if (!stream_container.is_valid()) + { + return {}; + } + + int ret{}; + size_t offset = 0; + static thread_local uint8_t dest[CHUNK] = {0}; + auto& stream = stream_container.get(); + + do + { + const auto input_size = std::min(sizeof(dest), data.size() - offset); + stream.avail_in = static_cast(input_size); + stream.next_in = reinterpret_cast(data.data()) + offset; + offset += stream.avail_in; + + do + { + stream.avail_out = sizeof(dest); + stream.next_out = dest; + + ret = inflate(&stream, Z_NO_FLUSH); + if (ret != Z_OK && ret != Z_STREAM_END) + { + return {}; + } + + buffer.insert(buffer.end(), dest, dest + sizeof(dest) - stream.avail_out); + } + while (stream.avail_out == 0); + } + while (ret != Z_STREAM_END); + + return buffer; + } + + std::string compress(const std::string& data) + { + std::string result{}; + auto length = compressBound(static_cast(data.size())); + result.resize(length); + + if (compress2(reinterpret_cast(result.data()), &length, + reinterpret_cast(data.data()), static_cast(data.size()), + Z_BEST_COMPRESSION) != Z_OK) + { + return {}; + } + + result.resize(length); + return result; + } + } + + namespace zip + { + namespace + { + bool add_file(zipFile& zip_file, const std::string& filename, const std::string& data) + { + const auto zip_64 = data.size() > 0xffffffff ? 1 : 0; + if (ZIP_OK != zipOpenNewFileInZip64(zip_file, filename.data(), nullptr, nullptr, 0, nullptr, 0, nullptr, + Z_DEFLATED, Z_BEST_COMPRESSION, zip_64)) + { + return false; + } + + const auto _ = gsl::finally([&zip_file]() + { + zipCloseFileInZip(zip_file); + }); + + return ZIP_OK == zipWriteInFileInZip(zip_file, data.data(), static_cast(data.size())); + } + } + + void archive::add(std::string filename, std::string data) + { + this->files_[std::move(filename)] = std::move(data); + } + + bool archive::write(const std::string& filename, const std::string& comment) + { + // Hack to create the directory :3 + io::write_file(filename, {}); + io::remove_file(filename); + + auto* zip_file = zipOpen64(filename.data(), 0); + if (!zip_file) + { + return false; + } + + const auto _ = gsl::finally([&zip_file, &comment]() + { + zipClose(zip_file, comment.empty() ? nullptr : comment.data()); + }); + + for (const auto& file : this->files_) + { + if (!add_file(zip_file, file.first, file.second)) + { + return false; + } + } + + return true; + } + } +} diff --git a/src/common/utils/compression.hpp b/src/common/utils/compression.hpp new file mode 100644 index 00000000..dfe36ada --- /dev/null +++ b/src/common/utils/compression.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +#define CHUNK 16384u + +namespace utils::compression +{ + namespace zlib + { + std::string compress(const std::string& data); + std::string decompress(const std::string& data); + } + + namespace zip + { + class archive + { + public: + void add(std::string filename, std::string data); + bool write(const std::string& filename, const std::string& comment = {}); + + private: + std::unordered_map files_; + }; + } +}; diff --git a/src/utils/concurrency.hpp b/src/common/utils/concurrency.hpp similarity index 100% rename from src/utils/concurrency.hpp rename to src/common/utils/concurrency.hpp diff --git a/src/common/utils/cryptography.cpp b/src/common/utils/cryptography.cpp new file mode 100644 index 00000000..2e2065a6 --- /dev/null +++ b/src/common/utils/cryptography.cpp @@ -0,0 +1,640 @@ +#include "string.hpp" +#include "cryptography.hpp" +#include "nt.hpp" +#include + +#undef max +using namespace std::string_literals; + +/// http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-55010/Source/libtomcrypt/doc/libTomCryptDoc.pdf + +namespace utils::cryptography +{ + namespace + { + struct __ + { + __() + { + ltc_mp = ltm_desc; + + register_cipher(&aes_desc); + register_cipher(&des3_desc); + + register_prng(&sprng_desc); + register_prng(&fortuna_desc); + register_prng(&yarrow_desc); + + register_hash(&sha1_desc); + register_hash(&sha256_desc); + register_hash(&sha512_desc); + } + } ___; + + [[maybe_unused]] const char* cs(const uint8_t* data) + { + return reinterpret_cast(data); + } + + [[maybe_unused]] char* cs(uint8_t* data) + { + return reinterpret_cast(data); + } + + [[maybe_unused]] const uint8_t* cs(const char* data) + { + return reinterpret_cast(data); + } + + [[maybe_unused]] uint8_t* cs(char* data) + { + return reinterpret_cast(data); + } + + [[maybe_unused]] unsigned long ul(const size_t value) + { + return static_cast(value); + } + + class prng + { + public: + prng(const ltc_prng_descriptor& descriptor, const bool autoseed = true) + : state_(std::make_unique()) + , descriptor_(descriptor) + { + this->id_ = register_prng(&descriptor); + if (this->id_ == -1) + { + throw std::runtime_error("PRNG "s + this->descriptor_.name + " could not be registered!"); + } + + if (autoseed) + { + this->auto_seed(); + } + else + { + this->descriptor_.start(this->state_.get()); + } + } + + ~prng() + { + this->descriptor_.done(this->state_.get()); + } + + prng_state* get_state() const + { + this->descriptor_.ready(this->state_.get()); + return this->state_.get(); + } + + int get_id() const + { + return this->id_; + } + + void add_entropy(const void* data, const size_t length) const + { + this->descriptor_.add_entropy(static_cast(data), ul(length), this->state_.get()); + } + + void read(void* data, const size_t length) const + { + this->descriptor_.read(static_cast(data), ul(length), this->get_state()); + } + + private: + int id_; + std::unique_ptr state_; + const ltc_prng_descriptor& descriptor_; + + void auto_seed() const + { + rng_make_prng(128, this->id_, this->state_.get(), nullptr); + + int i[4]; // uninitialized data + auto* i_ptr = &i; + this->add_entropy(reinterpret_cast(&i), sizeof(i)); + this->add_entropy(reinterpret_cast(&i_ptr), sizeof(i_ptr)); + + auto t = time(nullptr); + this->add_entropy(reinterpret_cast(&t), sizeof(t)); + } + }; + + const prng prng_(fortuna_desc); + } + + ecc::key::key() + { + ZeroMemory(&this->key_storage_, sizeof(this->key_storage_)); + } + + ecc::key::~key() + { + this->free(); + } + + ecc::key::key(key&& obj) noexcept + : key() + { + this->operator=(std::move(obj)); + } + + ecc::key::key(const key& obj) + : key() + { + this->operator=(obj); + } + + ecc::key& ecc::key::operator=(key&& obj) noexcept + { + if (this != &obj) + { + std::memmove(&this->key_storage_, &obj.key_storage_, sizeof(this->key_storage_)); + ZeroMemory(&obj.key_storage_, sizeof(obj.key_storage_)); + } + + return *this; + } + + ecc::key& ecc::key::operator=(const key& obj) + { + if (this != &obj && obj.is_valid()) + { + this->deserialize(obj.serialize(obj.key_storage_.type)); + } + + return *this; + } + + bool ecc::key::is_valid() const + { + return (!memory::is_set(&this->key_storage_, 0, sizeof(this->key_storage_))); + } + + ecc_key& ecc::key::get() + { + return this->key_storage_; + } + + const ecc_key& ecc::key::get() const + { + return this->key_storage_; + } + + std::string ecc::key::get_public_key() const + { + uint8_t buffer[512] = {0}; + unsigned long length = sizeof(buffer); + + if (ecc_ansi_x963_export(&this->key_storage_, buffer, &length) == CRYPT_OK) + { + return std::string(cs(buffer), length); + } + + return {}; + } + + void ecc::key::set(const std::string& pub_key_buffer) + { + this->free(); + + if (ecc_ansi_x963_import(cs(pub_key_buffer.data()), + ul(pub_key_buffer.size()), + &this->key_storage_) != CRYPT_OK) + { + ZeroMemory(&this->key_storage_, sizeof(this->key_storage_)); + } + } + + void ecc::key::deserialize(const std::string& key) + { + this->free(); + + if (ecc_import(cs(key.data()), ul(key.size()), + &this->key_storage_) != CRYPT_OK + ) + { + ZeroMemory(&this->key_storage_, sizeof(this->key_storage_)); + } + } + + std::string ecc::key::serialize(const int type) const + { + uint8_t buffer[4096] = {0}; + unsigned long length = sizeof(buffer); + + if (ecc_export(buffer, &length, type, &this->key_storage_) == CRYPT_OK) + { + return std::string(cs(buffer), length); + } + + return ""; + } + + void ecc::key::free() + { + if (this->is_valid()) + { + ecc_free(&this->key_storage_); + } + + ZeroMemory(&this->key_storage_, sizeof(this->key_storage_)); + } + + bool ecc::key::operator==(key& key) const + { + return (this->is_valid() && key.is_valid() && this->serialize(PK_PUBLIC) == key.serialize(PK_PUBLIC)); + } + + uint64_t ecc::key::get_hash() const + { + const auto hash = sha1::compute(this->get_public_key()); + if (hash.size() >= 8) + { + return *reinterpret_cast(hash.data()); + } + + return 0; + } + + ecc::key ecc::generate_key(const int bits) + { + key key; + ecc_make_key(prng_.get_state(), prng_.get_id(), bits / 8, &key.get()); + + return key; + } + + ecc::key ecc::generate_key(const int bits, const std::string& entropy) + { + key key{}; + const prng yarrow(yarrow_desc, false); + yarrow.add_entropy(entropy.data(), entropy.size()); + + ecc_make_key(yarrow.get_state(), yarrow.get_id(), bits / 8, &key.get()); + + return key; + } + + std::string ecc::sign_message(const key& key, const std::string& message) + { + if (!key.is_valid()) return ""; + + uint8_t buffer[512]; + unsigned long length = sizeof(buffer); + + ecc_sign_hash(cs(message.data()), ul(message.size()), buffer, &length, prng_.get_state(), prng_.get_id(), + &key.get()); + + return std::string(cs(buffer), length); + } + + bool ecc::verify_message(const key& key, const std::string& message, const std::string& signature) + { + if (!key.is_valid()) return false; + + auto result = 0; + return (ecc_verify_hash(cs(signature.data()), + ul(signature.size()), + cs(message.data()), + ul(message.size()), &result, + &key.get()) == CRYPT_OK && result != 0); + } + + bool ecc::encrypt(const key& key, std::string& data) + { + std::string out_data{}; + out_data.resize(std::max(ul(data.size() * 3), ul(0x100))); + + auto out_len = ul(out_data.size()); + auto crypt = [&]() + { + return ecc_encrypt_key(cs(data.data()), ul(data.size()), cs(out_data.data()), &out_len, + prng_.get_state(), prng_.get_id(), find_hash("sha512"), &key.get()); + }; + + auto res = crypt(); + + if (res == CRYPT_BUFFER_OVERFLOW) + { + out_data.resize(out_len); + res = crypt(); + } + + if (res != CRYPT_OK) + { + return false; + } + + out_data.resize(out_len); + data = std::move(out_data); + return true; + } + + bool ecc::decrypt(const key& key, std::string& data) + { + std::string out_data{}; + out_data.resize(std::max(ul(data.size() * 3), ul(0x100))); + + auto out_len = ul(out_data.size()); + auto crypt = [&]() + { + return ecc_decrypt_key(cs(data.data()), ul(data.size()), cs(out_data.data()), &out_len, &key.get()); + }; + + auto res = crypt(); + + if (res == CRYPT_BUFFER_OVERFLOW) + { + out_data.resize(out_len); + res = crypt(); + } + + if (res != CRYPT_OK) + { + return false; + } + + out_data.resize(out_len); + data = std::move(out_data); + return true; + } + + std::string rsa::encrypt(const std::string& data, const std::string& hash, const std::string& key) + { + rsa_key new_key; + rsa_import(cs(key.data()), ul(key.size()), &new_key); + const auto _ = gsl::finally([&]() + { + rsa_free(&new_key); + }); + + + std::string out_data{}; + out_data.resize(std::max(ul(data.size() * 3), ul(0x100))); + + auto out_len = ul(out_data.size()); + auto crypt = [&]() + { + return rsa_encrypt_key(cs(data.data()), ul(data.size()), cs(out_data.data()), &out_len, cs(hash.data()), + ul(hash.size()), prng_.get_state(), prng_.get_id(), find_hash("sha512"), &new_key); + }; + + auto res = crypt(); + + if (res == CRYPT_BUFFER_OVERFLOW) + { + out_data.resize(out_len); + res = crypt(); + } + + if (res == CRYPT_OK) + { + out_data.resize(out_len); + return out_data; + } + + return {}; + } + + std::string des3::encrypt(const std::string& data, const std::string& iv, const std::string& key) + { + std::string enc_data; + enc_data.resize(data.size()); + + symmetric_CBC cbc; + const auto des3 = find_cipher("3des"); + + cbc_start(des3, cs(iv.data()), cs(key.data()), static_cast(key.size()), 0, &cbc); + cbc_encrypt(cs(data.data()), cs(enc_data.data()), ul(data.size()), &cbc); + cbc_done(&cbc); + + return enc_data; + } + + std::string des3::decrypt(const std::string& data, const std::string& iv, const std::string& key) + { + std::string dec_data; + dec_data.resize(data.size()); + + symmetric_CBC cbc; + const auto des3 = find_cipher("3des"); + + cbc_start(des3, cs(iv.data()), cs(key.data()), static_cast(key.size()), 0, &cbc); + cbc_decrypt(cs(data.data()), cs(dec_data.data()), ul(data.size()), &cbc); + cbc_done(&cbc); + + return dec_data; + } + + std::string tiger::compute(const std::string& data, const bool hex) + { + return compute(cs(data.data()), data.size(), hex); + } + + std::string tiger::compute(const uint8_t* data, const size_t length, const bool hex) + { + uint8_t buffer[24] = {0}; + + hash_state state; + tiger_init(&state); + tiger_process(&state, data, ul(length)); + tiger_done(&state, buffer); + + std::string hash(cs(buffer), sizeof(buffer)); + if (!hex) return hash; + + return string::dump_hex(hash, ""); + } + + std::string aes::encrypt(const std::string& data, const std::string& iv, const std::string& key) + { + std::string enc_data; + enc_data.resize(data.size()); + + symmetric_CBC cbc; + const auto aes = find_cipher("aes"); + + cbc_start(aes, cs(iv.data()), cs(key.data()), + static_cast(key.size()), 0, &cbc); + cbc_encrypt(cs(data.data()), + cs(enc_data.data()), + ul(data.size()), &cbc); + cbc_done(&cbc); + + return enc_data; + } + + std::string aes::decrypt(const std::string& data, const std::string& iv, const std::string& key) + { + std::string dec_data; + dec_data.resize(data.size()); + + symmetric_CBC cbc; + const auto aes = find_cipher("aes"); + + cbc_start(aes, cs(iv.data()), cs(key.data()), + static_cast(key.size()), 0, &cbc); + cbc_decrypt(cs(data.data()), + cs(dec_data.data()), + ul(data.size()), &cbc); + cbc_done(&cbc); + + return dec_data; + } + + std::string hmac_sha1::compute(const std::string& data, const std::string& key) + { + std::string buffer; + buffer.resize(20); + + hmac_state state; + hmac_init(&state, find_hash("sha1"), cs(key.data()), ul(key.size())); + hmac_process(&state, cs(data.data()), static_cast(data.size())); + + auto out_len = ul(buffer.size()); + hmac_done(&state, cs(buffer.data()), &out_len); + + buffer.resize(out_len); + return buffer; + } + + std::string sha1::compute(const std::string& data, const bool hex) + { + return compute(cs(data.data()), data.size(), hex); + } + + std::string sha1::compute(const uint8_t* data, const size_t length, const bool hex) + { + uint8_t buffer[20] = {0}; + + hash_state state; + sha1_init(&state); + sha1_process(&state, data, ul(length)); + sha1_done(&state, buffer); + + std::string hash(cs(buffer), sizeof(buffer)); + if (!hex) return hash; + + return string::dump_hex(hash, ""); + } + + std::string sha256::compute(const std::string& data, const bool hex) + { + return compute(cs(data.data()), data.size(), hex); + } + + std::string sha256::compute(const uint8_t* data, const size_t length, const bool hex) + { + uint8_t buffer[32] = {0}; + + hash_state state; + sha256_init(&state); + sha256_process(&state, data, ul(length)); + sha256_done(&state, buffer); + + std::string hash(cs(buffer), sizeof(buffer)); + if (!hex) return hash; + + return string::dump_hex(hash, ""); + } + + std::string sha512::compute(const std::string& data, const bool hex) + { + return compute(cs(data.data()), data.size(), hex); + } + + std::string sha512::compute(const uint8_t* data, const size_t length, const bool hex) + { + uint8_t buffer[64] = {0}; + + hash_state state; + sha512_init(&state); + sha512_process(&state, data, ul(length)); + sha512_done(&state, buffer); + + std::string hash(cs(buffer), sizeof(buffer)); + if (!hex) return hash; + + return string::dump_hex(hash, ""); + } + + std::string base64::encode(const uint8_t* data, const size_t len) + { + std::string result; + result.resize((len + 2) * 2); + + auto out_len = ul(result.size()); + if (base64_encode(data, ul(len), result.data(), &out_len) != CRYPT_OK) + { + return {}; + } + + result.resize(out_len); + return result; + } + + std::string base64::encode(const std::string& data) + { + return base64::encode(cs(data.data()), static_cast(data.size())); + } + + std::string base64::decode(const std::string& data) + { + std::string result; + result.resize((data.size() + 2) * 2); + + auto out_len = ul(result.size()); + if (base64_decode(data.data(), ul(data.size()), cs(result.data()), &out_len) != CRYPT_OK) + { + return {}; + } + + result.resize(out_len); + return result; + } + + unsigned int jenkins_one_at_a_time::compute(const std::string& data) + { + return compute(data.data(), data.size()); + } + + unsigned int jenkins_one_at_a_time::compute(const char* key, const size_t len) + { + unsigned int hash, i; + for (hash = i = 0; i < len; ++i) + { + hash += key[i]; + hash += (hash << 10); + hash ^= (hash >> 6); + } + hash += (hash << 3); + hash ^= (hash >> 11); + hash += (hash << 15); + return hash; + } + + uint32_t random::get_integer() + { + uint32_t result; + random::get_data(&result, sizeof(result)); + return result; + } + + std::string random::get_challenge() + { + std::string result; + result.resize(sizeof(uint32_t)); + random::get_data(result.data(), result.size()); + return string::dump_hex(result, ""); + } + + void random::get_data(void* data, const size_t size) + { + prng_.read(data, size); + } +} diff --git a/src/common/utils/cryptography.hpp b/src/common/utils/cryptography.hpp new file mode 100644 index 00000000..9538c5eb --- /dev/null +++ b/src/common/utils/cryptography.hpp @@ -0,0 +1,118 @@ +#pragma once + +#include +#include + +namespace utils::cryptography +{ + namespace ecc + { + class key final + { + public: + key(); + ~key(); + + key(key&& obj) noexcept; + key(const key& obj); + key& operator=(key&& obj) noexcept; + key& operator=(const key& obj); + + bool is_valid() const; + + ecc_key& get(); + const ecc_key& get() const; + + std::string get_public_key() const; + + void set(const std::string& pub_key_buffer); + + void deserialize(const std::string& key); + + std::string serialize(int type = PK_PRIVATE) const; + + void free(); + + bool operator==(key& key) const; + + uint64_t get_hash() const; + + private: + ecc_key key_storage_{}; + }; + + key generate_key(int bits); + key generate_key(int bits, const std::string& entropy); + std::string sign_message(const key& key, const std::string& message); + bool verify_message(const key& key, const std::string& message, const std::string& signature); + + bool encrypt(const key& key, std::string& data); + bool decrypt(const key& key, std::string& data); + } + + namespace rsa + { + std::string encrypt(const std::string& data, const std::string& hash, const std::string& key); + } + + namespace des3 + { + std::string encrypt(const std::string& data, const std::string& iv, const std::string& key); + std::string decrypt(const std::string& data, const std::string& iv, const std::string& key); + } + + namespace tiger + { + std::string compute(const std::string& data, bool hex = false); + std::string compute(const uint8_t* data, size_t length, bool hex = false); + } + + namespace aes + { + std::string encrypt(const std::string& data, const std::string& iv, const std::string& key); + std::string decrypt(const std::string& data, const std::string& iv, const std::string& key); + } + + namespace hmac_sha1 + { + std::string compute(const std::string& data, const std::string& key); + } + + namespace sha1 + { + std::string compute(const std::string& data, bool hex = false); + std::string compute(const uint8_t* data, size_t length, bool hex = false); + } + + namespace sha256 + { + std::string compute(const std::string& data, bool hex = false); + std::string compute(const uint8_t* data, size_t length, bool hex = false); + } + + namespace sha512 + { + std::string compute(const std::string& data, bool hex = false); + std::string compute(const uint8_t* data, size_t length, bool hex = false); + } + + namespace base64 + { + std::string encode(const uint8_t* data, size_t len); + std::string encode(const std::string& data); + std::string decode(const std::string& data); + } + + namespace jenkins_one_at_a_time + { + unsigned int compute(const std::string& data); + unsigned int compute(const char* key, size_t len); + }; + + namespace random + { + uint32_t get_integer(); + std::string get_challenge(); + void get_data(void* data, size_t size); + } +} diff --git a/src/common/utils/flags.cpp b/src/common/utils/flags.cpp new file mode 100644 index 00000000..cbada183 --- /dev/null +++ b/src/common/utils/flags.cpp @@ -0,0 +1,52 @@ +#include "flags.hpp" +#include "string.hpp" +#include "nt.hpp" + +#include + +namespace utils::flags +{ + void parse_flags(std::vector& flags) + { + int num_args; + auto* const argv = CommandLineToArgvW(GetCommandLineW(), &num_args); + + flags.clear(); + + if (argv) + { + for (auto i = 0; i < num_args; ++i) + { + std::wstring wide_flag(argv[i]); + if (wide_flag[0] == L'-') + { + wide_flag.erase(wide_flag.begin()); + flags.emplace_back(string::convert(wide_flag)); + } + } + + LocalFree(argv); + } + } + + bool has_flag(const std::string& flag) + { + static auto parsed = false; + static std::vector enabled_flags; + + if (!parsed) + { + parse_flags(enabled_flags); + } + + for (const auto& entry : enabled_flags) + { + if (string::to_lower(entry) == string::to_lower(flag)) + { + return true; + } + } + + return false; + } +} diff --git a/src/common/utils/flags.hpp b/src/common/utils/flags.hpp new file mode 100644 index 00000000..cf304b20 --- /dev/null +++ b/src/common/utils/flags.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include + +namespace utils::flags +{ + bool has_flag(const std::string& flag); +} diff --git a/src/utils/hook.cpp b/src/common/utils/hook.cpp similarity index 92% rename from src/utils/hook.cpp rename to src/common/utils/hook.cpp index a5a2bb31..be05cb96 100644 --- a/src/utils/hook.cpp +++ b/src/common/utils/hook.cpp @@ -1,8 +1,8 @@ -#include - #include "hook.hpp" #include "string.hpp" +#include + namespace utils::hook { namespace @@ -153,6 +153,22 @@ namespace utils::hook return this->original_; } + bool iat(const nt::library& library, const std::string& target_library, const std::string& process, void* stub) + { + if (!library.is_valid()) return false; + + auto* const ptr = library.get_iat_entry(target_library, process); + if (!ptr) return false; + + DWORD protect; + VirtualProtect(ptr, sizeof(*ptr), PAGE_EXECUTE_READWRITE, &protect); + + *ptr = stub; + + VirtualProtect(ptr, sizeof(*ptr), protect, &protect); + return true; + } + void nop(void* place, const size_t length) { DWORD old_protect{}; diff --git a/src/utils/hook.hpp b/src/common/utils/hook.hpp similarity index 72% rename from src/utils/hook.hpp rename to src/common/utils/hook.hpp index e08df944..bb24f8ce 100644 --- a/src/utils/hook.hpp +++ b/src/common/utils/hook.hpp @@ -1,4 +1,6 @@ #pragma once +#include "signature.hpp" + #include #include @@ -6,6 +8,55 @@ using namespace asmjit::x86; namespace utils::hook { + namespace detail + { + template + std::vector get_iota_functions() + { + if constexpr (entries == 0) + { + std::vector functions; + return functions; + } + else + { + auto functions = get_iota_functions(); + functions.emplace_back([]() + { + return entries - 1; + }); + return functions; + } + } + } + + // Gets the pointer to the entry in the v-table. + // It seems otherwise impossible to get this. + // This is ugly as fuck and only safely works on x64 + // Example: + // ID3D11Device* device = ... + // auto entry = get_vtable_entry(device, &ID3D11Device::CreateTexture2D); + template + void** get_vtable_entry(Class* obj, T (Class::* entry)(Args ...)) + { + union + { + decltype(entry) func; + void* pointer; + }; + + func = entry; + + auto iota_functions = detail::get_iota_functions(); + auto* object = iota_functions.data(); + + using FakeFunc = size_t(__thiscall*)(void* self); + auto index = static_cast(pointer)(&object); + + void** obj_v_table = *reinterpret_cast(obj); + return &obj_v_table[index]; + } + class assembler : public Assembler { public: @@ -89,6 +140,8 @@ namespace utils::hook void* original_{}; }; + bool iat(const nt::library& library, const std::string& target_library, const std::string& process, void* stub); + void nop(void* place, size_t length); void nop(size_t place, size_t length); diff --git a/src/common/utils/http.cpp b/src/common/utils/http.cpp new file mode 100644 index 00000000..3cb59991 --- /dev/null +++ b/src/common/utils/http.cpp @@ -0,0 +1,48 @@ +#include "http.hpp" +#include "nt.hpp" +#include + +namespace utils::http +{ + std::optional get_data(const std::string& url) + { + CComPtr stream; + + if (FAILED(URLOpenBlockingStreamA(nullptr, url.data(), &stream, 0, nullptr))) + { + return {}; + } + + char buffer[0x1000]; + std::string result; + + HRESULT status{}; + + do + { + DWORD bytes_read = 0; + status = stream->Read(buffer, sizeof(buffer), &bytes_read); + + if (bytes_read > 0) + { + result.append(buffer, bytes_read); + } + } + while (SUCCEEDED(status) && status != S_FALSE); + + if (FAILED(status)) + { + return {}; + } + + return {result}; + } + + std::future> get_data_async(const std::string& url) + { + return std::async(std::launch::async, [url]() + { + return get_data(url); + }); + } +} diff --git a/src/common/utils/http.hpp b/src/common/utils/http.hpp new file mode 100644 index 00000000..65628a9f --- /dev/null +++ b/src/common/utils/http.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include +#include +#include + +namespace utils::http +{ + std::optional get_data(const std::string& url); + std::future> get_data_async(const std::string& url); +} diff --git a/src/utils/image.cpp b/src/common/utils/image.cpp similarity index 97% rename from src/utils/image.cpp rename to src/common/utils/image.cpp index dccd160e..33f865e2 100644 --- a/src/utils/image.cpp +++ b/src/common/utils/image.cpp @@ -1,8 +1,8 @@ -#include #include "image.hpp" #define STB_IMAGE_IMPLEMENTATION #include +#include namespace utils { diff --git a/src/utils/image.hpp b/src/common/utils/image.hpp similarity index 100% rename from src/utils/image.hpp rename to src/common/utils/image.hpp diff --git a/src/common/utils/info_string.cpp b/src/common/utils/info_string.cpp new file mode 100644 index 00000000..3b0287e3 --- /dev/null +++ b/src/common/utils/info_string.cpp @@ -0,0 +1,65 @@ +#include "info_string.hpp" +#include "string.hpp" + +namespace utils +{ + info_string::info_string(const std::string& buffer) + { + this->parse(buffer); + } + + info_string::info_string(const std::string_view& buffer) + : info_string(std::string{buffer}) + { + } + + void info_string::set(const std::string& key, const std::string& value) + { + this->key_value_pairs_[key] = value; + } + + std::string info_string::get(const std::string& key) const + { + const auto value = this->key_value_pairs_.find(key); + if (value != this->key_value_pairs_.end()) + { + return value->second; + } + + return ""; + } + + void info_string::parse(std::string buffer) + { + if (buffer[0] == '\\') + { + buffer = buffer.substr(1); + } + + auto key_values = string::split(buffer, '\\'); + for (size_t i = 0; !key_values.empty() && i < (key_values.size() - 1); i += 2) + { + const auto& key = key_values[i]; + const auto& value = key_values[i + 1]; + this->key_value_pairs_[key] = value; + } + } + + std::string info_string::build() const + { + //auto first = true; + std::string info_string; + for (auto i = this->key_value_pairs_.begin(); i != this->key_value_pairs_.end(); ++i) + { + //if (first) first = false; + /*else*/ + info_string.append("\\"); + + info_string.append(i->first); // Key + info_string.append("\\"); + info_string.append(i->second); // Value + } + + return info_string; + } +} diff --git a/src/common/utils/info_string.hpp b/src/common/utils/info_string.hpp new file mode 100644 index 00000000..73910411 --- /dev/null +++ b/src/common/utils/info_string.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +namespace utils +{ + class info_string + { + public: + info_string() = default; + info_string(const std::string& buffer); + info_string(const std::string_view& buffer); + + void set(const std::string& key, const std::string& value); + std::string get(const std::string& key) const; + std::string build() const; + + private: + std::unordered_map key_value_pairs_{}; + + void parse(std::string buffer); + }; +} diff --git a/src/utils/io.cpp b/src/common/utils/io.cpp similarity index 90% rename from src/utils/io.cpp rename to src/common/utils/io.cpp index 3d479d00..4968f449 100644 --- a/src/utils/io.cpp +++ b/src/common/utils/io.cpp @@ -1,10 +1,19 @@ -#include - #include "io.hpp" +#include "nt.hpp" #include namespace utils::io { + bool remove_file(const std::string& file) + { + return DeleteFileA(file.data()) == TRUE; + } + + bool move_file(const std::string& src, const std::string& target) + { + return MoveFileA(src.data(), target.data()) == TRUE; + } + bool file_exists(const std::string& file) { return std::ifstream(file).good(); diff --git a/src/utils/io.hpp b/src/common/utils/io.hpp similarity index 86% rename from src/utils/io.hpp rename to src/common/utils/io.hpp index e82a416c..ab4ebaa4 100644 --- a/src/utils/io.hpp +++ b/src/common/utils/io.hpp @@ -6,6 +6,8 @@ namespace utils::io { + bool remove_file(const std::string& file); + bool move_file(const std::string& src, const std::string& target); bool file_exists(const std::string& file); bool write_file(const std::string& file, const std::string& data, bool append = false); bool read_file(const std::string& file, std::string* data); diff --git a/src/common/utils/memory.cpp b/src/common/utils/memory.cpp new file mode 100644 index 00000000..52d46771 --- /dev/null +++ b/src/common/utils/memory.cpp @@ -0,0 +1,165 @@ +#include "memory.hpp" +#include "nt.hpp" + +namespace utils +{ + memory::allocator memory::mem_allocator_; + + memory::allocator::~allocator() + { + this->clear(); + } + + void memory::allocator::clear() + { + std::lock_guard _(this->mutex_); + + for (auto& data : this->pool_) + { + memory::free(data); + } + + this->pool_.clear(); + } + + void memory::allocator::free(void* data) + { + std::lock_guard _(this->mutex_); + + const auto j = std::find(this->pool_.begin(), this->pool_.end(), data); + if (j != this->pool_.end()) + { + memory::free(data); + this->pool_.erase(j); + } + } + + void memory::allocator::free(const void* data) + { + this->free(const_cast(data)); + } + + void* memory::allocator::allocate(const size_t length) + { + std::lock_guard _(this->mutex_); + + const auto data = memory::allocate(length); + this->pool_.push_back(data); + return data; + } + + bool memory::allocator::empty() const + { + return this->pool_.empty(); + } + + char* memory::allocator::duplicate_string(const std::string& string) + { + std::lock_guard _(this->mutex_); + + const auto data = memory::duplicate_string(string); + this->pool_.push_back(data); + return data; + } + + void* memory::allocate(const size_t length) + { + return calloc(length, 1); + } + + char* memory::duplicate_string(const std::string& string) + { + const auto new_string = allocate_array(string.size() + 1); + std::memcpy(new_string, string.data(), string.size()); + return new_string; + } + + void memory::free(void* data) + { + if (data) + { + ::free(data); + } + } + + void memory::free(const void* data) + { + free(const_cast(data)); + } + + bool memory::is_set(const void* mem, const char chr, const size_t length) + { + const auto mem_arr = static_cast(mem); + + for (size_t i = 0; i < length; ++i) + { + if (mem_arr[i] != chr) + { + return false; + } + } + + return true; + } + + bool memory::is_bad_read_ptr(const void* ptr) + { + MEMORY_BASIC_INFORMATION mbi = {}; + if (VirtualQuery(ptr, &mbi, sizeof(mbi))) + { + const DWORD mask = (PAGE_READONLY | PAGE_READWRITE | PAGE_WRITECOPY | PAGE_EXECUTE_READ | + PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY); + auto b = !(mbi.Protect & mask); + // check the page is not a guard page + if (mbi.Protect & (PAGE_GUARD | PAGE_NOACCESS)) b = true; + + return b; + } + return true; + } + + bool memory::is_bad_code_ptr(const void* ptr) + { + MEMORY_BASIC_INFORMATION mbi = {}; + if (VirtualQuery(ptr, &mbi, sizeof(mbi))) + { + const DWORD mask = (PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY); + auto b = !(mbi.Protect & mask); + // check the page is not a guard page + if (mbi.Protect & (PAGE_GUARD | PAGE_NOACCESS)) b = true; + + return b; + } + return true; + } + + bool memory::is_rdata_ptr(void* pointer) + { + const std::string rdata = ".rdata"; + const auto pointer_lib = utils::nt::library::get_by_address(pointer); + + for (const auto& section : pointer_lib.get_section_headers()) + { + const auto size = sizeof(section->Name); + char name[size + 1]; + name[size] = 0; + std::memcpy(name, section->Name, size); + + if (name == rdata) + { + const auto target = size_t(pointer); + const size_t source_start = size_t(pointer_lib.get_ptr()) + section->PointerToRawData; + const size_t source_end = source_start + section->SizeOfRawData; + + return target >= source_start && target <= source_end; + } + } + + return false; + } + + memory::allocator* memory::get_allocator() + { + return &memory::mem_allocator_; + } +} diff --git a/src/utils/memory.hpp b/src/common/utils/memory.hpp similarity index 73% rename from src/utils/memory.hpp rename to src/common/utils/memory.hpp index e783e962..5af5645e 100644 --- a/src/utils/memory.hpp +++ b/src/common/utils/memory.hpp @@ -1,7 +1,8 @@ -// https://github.com/momo5502/open-iw5 - #pragma once +#include +#include + namespace utils { class memory final @@ -21,19 +22,21 @@ namespace utils void* allocate(size_t length); template - T* allocate() + inline T* allocate() { return this->allocate_array(1); } template - T* allocate_array(const size_t count = 1) + inline T* allocate_array(const size_t count = 1) { return static_cast(this->allocate(count * sizeof(T))); } bool empty() const; + char* duplicate_string(const std::string& string); + private: std::mutex mutex_; std::vector pool_; @@ -53,11 +56,17 @@ namespace utils return static_cast(allocate(count * sizeof(T))); } + static char* duplicate_string(const std::string& string); + static void free(void* data); static void free(const void* data); static bool is_set(const void* mem, char chr, size_t length); + static bool is_bad_read_ptr(const void* ptr); + static bool is_bad_code_ptr(const void* ptr); + static bool is_rdata_ptr(void* ptr); + static allocator* get_allocator(); private: diff --git a/src/common/utils/nt.cpp b/src/common/utils/nt.cpp new file mode 100644 index 00000000..5fc5273c --- /dev/null +++ b/src/common/utils/nt.cpp @@ -0,0 +1,254 @@ +#include "nt.hpp" + +namespace utils::nt +{ + library library::load(const std::string& name) + { + return library(LoadLibraryA(name.data())); + } + + library library::load(const std::filesystem::path& path) + { + return library::load(path.generic_string()); + } + + library library::get_by_address(void* address) + { + HMODULE handle = nullptr; + GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, static_cast(address), &handle); + return library(handle); + } + + library::library() + { + this->module_ = GetModuleHandleA(nullptr); + } + + library::library(const std::string& name) + { + this->module_ = GetModuleHandleA(name.data()); + } + + library::library(const HMODULE handle) + { + this->module_ = handle; + } + + bool library::operator==(const library& obj) const + { + return this->module_ == obj.module_; + } + + library::operator bool() const + { + return this->is_valid(); + } + + library::operator HMODULE() const + { + return this->get_handle(); + } + + PIMAGE_NT_HEADERS library::get_nt_headers() const + { + if (!this->is_valid()) return nullptr; + return reinterpret_cast(this->get_ptr() + this->get_dos_header()->e_lfanew); + } + + PIMAGE_DOS_HEADER library::get_dos_header() const + { + return reinterpret_cast(this->get_ptr()); + } + + PIMAGE_OPTIONAL_HEADER library::get_optional_header() const + { + if (!this->is_valid()) return nullptr; + return &this->get_nt_headers()->OptionalHeader; + } + + std::vector library::get_section_headers() const + { + std::vector headers; + + auto nt_headers = this->get_nt_headers(); + auto section = IMAGE_FIRST_SECTION(nt_headers); + + for (uint16_t i = 0; i < nt_headers->FileHeader.NumberOfSections; ++i, ++section) + { + if (section) headers.push_back(section); + else OutputDebugStringA("There was an invalid section :O"); + } + + return headers; + } + + std::uint8_t* library::get_ptr() const + { + return reinterpret_cast(this->module_); + } + + void library::unprotect() const + { + if (!this->is_valid()) return; + + DWORD protection; + VirtualProtect(this->get_ptr(), this->get_optional_header()->SizeOfImage, PAGE_EXECUTE_READWRITE, + &protection); + } + + size_t library::get_relative_entry_point() const + { + if (!this->is_valid()) return 0; + return this->get_nt_headers()->OptionalHeader.AddressOfEntryPoint; + } + + void* library::get_entry_point() const + { + if (!this->is_valid()) return nullptr; + return this->get_ptr() + this->get_relative_entry_point(); + } + + bool library::is_valid() const + { + return this->module_ != nullptr && this->get_dos_header()->e_magic == IMAGE_DOS_SIGNATURE; + } + + std::string library::get_name() const + { + if (!this->is_valid()) return ""; + + auto path = this->get_path(); + const auto pos = path.find_last_of("/\\"); + if (pos == std::string::npos) return path; + + return path.substr(pos + 1); + } + + std::string library::get_path() const + { + if (!this->is_valid()) return ""; + + char name[MAX_PATH] = {0}; + GetModuleFileNameA(this->module_, name, sizeof name); + + return name; + } + + std::string library::get_folder() const + { + if (!this->is_valid()) return ""; + + const auto path = std::filesystem::path(this->get_path()); + return path.parent_path().generic_string(); + } + + void library::free() + { + if (this->is_valid()) + { + FreeLibrary(this->module_); + this->module_ = nullptr; + } + } + + HMODULE library::get_handle() const + { + return this->module_; + } + + void** library::get_iat_entry(const std::string& module_name, const std::string& proc_name) const + { + if (!this->is_valid()) return nullptr; + + const library other_module(module_name); + if (!other_module.is_valid()) return nullptr; + + auto* const target_function = other_module.get_proc(proc_name); + if (!target_function) return nullptr; + + auto* header = this->get_optional_header(); + if (!header) return nullptr; + + auto* import_descriptor = reinterpret_cast(this->get_ptr() + header->DataDirectory + [IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); + + while (import_descriptor->Name) + { + if (!_stricmp(reinterpret_cast(this->get_ptr() + import_descriptor->Name), module_name.data())) + { + auto* original_thunk_data = reinterpret_cast(import_descriptor-> + OriginalFirstThunk + this->get_ptr()); + auto* thunk_data = reinterpret_cast(import_descriptor->FirstThunk + this-> + get_ptr()); + + while (original_thunk_data->u1.AddressOfData) + { + const size_t ordinal_number = original_thunk_data->u1.AddressOfData & 0xFFFFFFF; + + if (ordinal_number > 0xFFFF) continue; + + if (GetProcAddress(other_module.module_, reinterpret_cast(ordinal_number)) == + target_function) + { + return reinterpret_cast(&thunk_data->u1.Function); + } + + ++original_thunk_data; + ++thunk_data; + } + + //break; + } + + ++import_descriptor; + } + + return nullptr; + } + + void raise_hard_exception() + { + int data = false; + const library ntdll("ntdll.dll"); + ntdll.invoke_pascal("RtlAdjustPrivilege", 19, true, false, &data); + ntdll.invoke_pascal("NtRaiseHardError", 0xC000007B, 0, nullptr, nullptr, 6, &data); + } + + std::string load_resource(const int id) + { + auto* const res = FindResource(library(), MAKEINTRESOURCE(id), RT_RCDATA); + if (!res) return {}; + + auto* const handle = LoadResource(nullptr, res); + if (!handle) return {}; + + return std::string(LPSTR(LockResource(handle)), SizeofResource(nullptr, res)); + } + + void relaunch_self() + { + const utils::nt::library self; + + STARTUPINFOA startup_info; + PROCESS_INFORMATION process_info; + + ZeroMemory(&startup_info, sizeof(startup_info)); + ZeroMemory(&process_info, sizeof(process_info)); + startup_info.cb = sizeof(startup_info); + + char current_dir[MAX_PATH]; + GetCurrentDirectoryA(sizeof(current_dir), current_dir); + auto* const command_line = GetCommandLineA(); + + CreateProcessA(self.get_path().data(), command_line, nullptr, nullptr, false, NULL, nullptr, current_dir, + &startup_info, &process_info); + + if (process_info.hThread && process_info.hThread != INVALID_HANDLE_VALUE) CloseHandle(process_info.hThread); + if (process_info.hProcess && process_info.hProcess != INVALID_HANDLE_VALUE) CloseHandle(process_info.hProcess); + } + + void terminate(const uint32_t code) + { + TerminateProcess(GetCurrentProcess(), code); + } +} diff --git a/src/common/utils/nt.hpp b/src/common/utils/nt.hpp new file mode 100644 index 00000000..86001bea --- /dev/null +++ b/src/common/utils/nt.hpp @@ -0,0 +1,110 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN +#include + +// min and max is required by gdi, therefore NOMINMAX won't work +#ifdef max +#undef max +#endif + +#ifdef min +#undef min +#endif + +#include +#include +#include + +namespace utils::nt +{ + class library final + { + public: + static library load(const std::string& name); + static library load(const std::filesystem::path& path); + static library get_by_address(void* address); + + library(); + explicit library(const std::string& name); + explicit library(HMODULE handle); + + library(const library& a) : module_(a.module_) + { + } + + bool operator!=(const library& obj) const { return !(*this == obj); }; + bool operator==(const library& obj) const; + + operator bool() const; + operator HMODULE() const; + + void unprotect() const; + void* get_entry_point() const; + size_t get_relative_entry_point() const; + + bool is_valid() const; + std::string get_name() const; + std::string get_path() const; + std::string get_folder() const; + std::uint8_t* get_ptr() const; + void free(); + + HMODULE get_handle() const; + + template + T get_proc(const std::string& process) const + { + if (!this->is_valid()) T{}; + return reinterpret_cast(GetProcAddress(this->module_, process.data())); + } + + template + std::function get(const std::string& process) const + { + if (!this->is_valid()) return std::function(); + return static_cast(this->get_proc(process)); + } + + template + T invoke(const std::string& process, Args ... args) const + { + auto method = this->get(process); + if (method) return method(args...); + return T(); + } + + template + T invoke_pascal(const std::string& process, Args ... args) const + { + auto method = this->get(process); + if (method) return method(args...); + return T(); + } + + template + T invoke_this(const std::string& process, void* this_ptr, Args ... args) const + { + auto method = this->get(this_ptr, process); + if (method) return method(args...); + return T(); + } + + std::vector get_section_headers() const; + + PIMAGE_NT_HEADERS get_nt_headers() const; + PIMAGE_DOS_HEADER get_dos_header() const; + PIMAGE_OPTIONAL_HEADER get_optional_header() const; + + void** get_iat_entry(const std::string& module_name, const std::string& proc_name) const; + + private: + HMODULE module_; + }; + + __declspec(noreturn) void raise_hard_exception(); + std::string load_resource(int id); + + void relaunch_self(); + __declspec(noreturn) void terminate(uint32_t code = 0); +} diff --git a/src/common/utils/signature.cpp b/src/common/utils/signature.cpp new file mode 100644 index 00000000..9bb8c621 --- /dev/null +++ b/src/common/utils/signature.cpp @@ -0,0 +1,212 @@ +#include "signature.hpp" +#include +#include + +#include + +namespace utils::hook +{ + void signature::load_pattern(const std::string& pattern) + { + this->mask_.clear(); + this->pattern_.clear(); + + uint8_t nibble = 0; + auto has_nibble = false; + + for (auto val : pattern) + { + if (val == ' ') continue; + if (val == '?') + { + this->mask_.push_back(val); + this->pattern_.push_back(0); + } + else + { + if ((val < '0' || val > '9') && (val < 'A' || val > 'F') && (val < 'a' || val > 'f')) + { + throw std::runtime_error("Invalid pattern"); + } + + char str[] = {val, 0}; + const auto current_nibble = static_cast(strtol(str, nullptr, 16)); + + if (!has_nibble) + { + has_nibble = true; + nibble = current_nibble; + } + else + { + has_nibble = false; + const uint8_t byte = current_nibble | (nibble << 4); + + this->mask_.push_back('x'); + this->pattern_.push_back(byte); + } + } + } + + while (!this->mask_.empty() && this->mask_.back() == '?') + { + this->mask_.pop_back(); + this->pattern_.pop_back(); + } + + if (this->has_sse_support()) + { + while (this->pattern_.size() < 16) + { + this->pattern_.push_back(0); + } + } + + if (has_nibble) + { + throw std::runtime_error("Invalid pattern"); + } + } + + std::vector signature::process_range(uint8_t* start, const size_t length) const + { + if (this->has_sse_support()) return this->process_range_vectorized(start, length); + return this->process_range_linear(start, length); + } + + std::vector signature::process_range_linear(uint8_t* start, const size_t length) const + { + std::vector result; + + for (size_t i = 0; i < length; ++i) + { + const auto address = start + i; + + size_t j = 0; + for (; j < this->mask_.size(); ++j) + { + if (this->mask_[j] != '?' && this->pattern_[j] != address[j]) + { + break; + } + } + + if (j == this->mask_.size()) + { + result.push_back(size_t(address)); + } + } + + return result; + } + + std::vector signature::process_range_vectorized(uint8_t* start, const size_t length) const + { + std::vector result; + __declspec(align(16)) char desired_mask[16] = {0}; + + for (size_t i = 0; i < this->mask_.size(); i++) + { + desired_mask[i / 8] |= (this->mask_[i] == '?' ? 0 : 1) << i % 8; + } + + const auto mask = _mm_load_si128(reinterpret_cast(desired_mask)); + const auto comparand = _mm_loadu_si128(reinterpret_cast(this->pattern_.data())); + + for (size_t i = 0; i < length; ++i) + { + const auto address = start + i; + const auto value = _mm_loadu_si128(reinterpret_cast(address)); + const auto comparison = _mm_cmpestrm(value, 16, comparand, static_cast(this->mask_.size()), + _SIDD_CMP_EQUAL_EACH); + + const auto matches = _mm_and_si128(mask, comparison); + const auto equivalence = _mm_xor_si128(mask, matches); + + if (_mm_test_all_zeros(equivalence, equivalence)) + { + result.push_back(size_t(address)); + } + } + + return result; + } + + signature::signature_result signature::process() const + { + const auto range = this->length_ - this->mask_.size(); + const auto cores = std::max(1u, std::thread::hardware_concurrency()); + + if (range <= cores * 10ull) return this->process_serial(); + return this->process_parallel(); + } + + signature::signature_result signature::process_serial() const + { + const auto sub = this->has_sse_support() ? 16 : this->mask_.size(); + return {this->process_range(this->start_, this->length_ - sub)}; + } + + signature::signature_result signature::process_parallel() const + { + const auto sub = this->has_sse_support() ? 16 : this->mask_.size(); + const auto range = this->length_ - sub; + const auto cores = std::max(1u, std::thread::hardware_concurrency() / 2); + // Only use half of the available cores + const auto grid = range / cores; + + std::mutex mutex; + std::vector result; + std::vector threads; + + for (auto i = 0u; i < cores; ++i) + { + const auto start = this->start_ + (grid * i); + const auto length = (i + 1 == cores) ? (this->start_ + this->length_ - sub) - start : grid; + threads.emplace_back([&, start, length]() + { + auto local_result = this->process_range(start, length); + if (local_result.empty()) return; + + std::lock_guard _(mutex); + for (const auto& address : local_result) + { + result.push_back(address); + } + }); + } + + for (auto& t : threads) + { + if (t.joinable()) + { + t.join(); + } + } + + std::sort(result.begin(), result.end()); + return {std::move(result)}; + } + + bool signature::has_sse_support() const + { + if (this->mask_.size() <= 16) + { + int cpu_id[4]; + __cpuid(cpu_id, 0); + + if (cpu_id[0] >= 1) + { + __cpuidex(cpu_id, 1, 0); + return (cpu_id[2] & (1 << 20)) != 0; + } + } + + return false; + } +} + +utils::hook::signature::signature_result operator"" _sig(const char* str, const size_t len) +{ + return utils::hook::signature(std::string(str, len)).process(); +} diff --git a/src/common/utils/signature.hpp b/src/common/utils/signature.hpp new file mode 100644 index 00000000..a3728327 --- /dev/null +++ b/src/common/utils/signature.hpp @@ -0,0 +1,73 @@ +#pragma once +#include "nt.hpp" +#include + +namespace utils::hook +{ + class signature final + { + public: + class signature_result + { + public: + signature_result(std::vector&& matches) : matches_(std::move(matches)) + { + } + + [[nodiscard]] uint8_t* get(const size_t index) const + { + if (index >= this->count()) + { + throw std::runtime_error("Invalid index"); + } + + return reinterpret_cast(this->matches_[index]); + } + + [[nodiscard]] size_t count() const + { + return this->matches_.size(); + } + + private: + std::vector matches_; + }; + + explicit signature(const std::string& pattern, const nt::library library = {}) + : signature(pattern, library.get_ptr(), library.get_optional_header()->SizeOfImage) + { + } + + signature(const std::string& pattern, void* start, void* end) + : signature(pattern, start, size_t(end) - size_t(start)) + { + } + + signature(const std::string& pattern, void* start, const size_t length) + : start_(static_cast(start)), length_(length) + { + this->load_pattern(pattern); + } + + signature_result process() const; + + private: + std::string mask_; + std::basic_string pattern_; + + uint8_t* start_; + size_t length_; + + void load_pattern(const std::string& pattern); + + signature_result process_parallel() const; + signature_result process_serial() const; + std::vector process_range(uint8_t* start, size_t length) const; + std::vector process_range_linear(uint8_t* start, size_t length) const; + std::vector process_range_vectorized(uint8_t* start, size_t length) const; + + bool has_sse_support() const; + }; +} + +utils::hook::signature::signature_result operator"" _sig(const char* str, size_t len); diff --git a/src/common/utils/smbios.cpp b/src/common/utils/smbios.cpp new file mode 100644 index 00000000..a3282c28 --- /dev/null +++ b/src/common/utils/smbios.cpp @@ -0,0 +1,94 @@ +#include "smbios.hpp" +#include "memory.hpp" + +#define WIN32_LEAN_AND_MEAN +#include +#include + +namespace utils::smbios +{ + namespace + { +#pragma warning(push) +#pragma warning(disable: 4200) + struct RawSMBIOSData + { + BYTE Used20CallingMethod; + BYTE SMBIOSMajorVersion; + BYTE SMBIOSMinorVersion; + BYTE DmiRevision; + DWORD Length; + BYTE SMBIOSTableData[]; + }; + + typedef struct + { + BYTE type; + BYTE length; + WORD handle; + } dmi_header; +#pragma warning(pop) + + std::vector get_smbios_data() + { + DWORD size = 0; + std::vector data{}; + + size = GetSystemFirmwareTable('RSMB', 0, nullptr, size); + data.resize(size); + GetSystemFirmwareTable('RSMB', 0, data.data(), size); + + return data; + } + + std::string parse_uuid(const uint8_t* data) + { + if (utils::memory::is_set(data, 0, 16) || utils::memory::is_set(data, -1, 16)) + { + return {}; + } + + char uuid[16] = {0}; + *reinterpret_cast(uuid + 0) = + _byteswap_ulong(*reinterpret_cast(data + 0)); + *reinterpret_cast(uuid + 4) = + _byteswap_ushort(*reinterpret_cast(data + 4)); + *reinterpret_cast(uuid + 6) = + _byteswap_ushort(*reinterpret_cast(data + 6)); + memcpy(uuid + 8, data + 8, 8); + + return std::string(uuid, sizeof(uuid)); + } + } + + std::string get_uuid() + { + auto smbios_data = get_smbios_data(); + auto* raw_data = reinterpret_cast(smbios_data.data()); + + auto* data = raw_data->SMBIOSTableData; + for (DWORD i = 0; i + sizeof(dmi_header) < raw_data->Length;) + { + auto* header = reinterpret_cast(data + i); + if (header->length < 4) + { + return {}; + } + + if (header->type == 0x01 && header->length >= 0x19) + { + return parse_uuid(data + i + 0x8); + } + + i += header->length; + while ((i + 1) < raw_data->Length && *reinterpret_cast(data + i) != 0) + { + ++i; + } + + i += 2; + } + + return {}; + } +} diff --git a/src/common/utils/smbios.hpp b/src/common/utils/smbios.hpp new file mode 100644 index 00000000..bbd1939d --- /dev/null +++ b/src/common/utils/smbios.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include + +namespace utils::smbios +{ + std::string get_uuid(); +} diff --git a/src/utils/string.cpp b/src/common/utils/string.cpp similarity index 68% rename from src/utils/string.cpp rename to src/common/utils/string.cpp index 3db2aff1..653ecff2 100644 --- a/src/utils/string.cpp +++ b/src/common/utils/string.cpp @@ -1,7 +1,9 @@ -// iw6x-client - -#include #include "string.hpp" +#include +#include +#include + +#include "nt.hpp" namespace utils::string { @@ -36,7 +38,7 @@ namespace utils::string { std::transform(text.begin(), text.end(), text.begin(), [](const char input) { - return CHAR(tolower(input)); + return static_cast(tolower(input)); }); return text; @@ -46,7 +48,7 @@ namespace utils::string { std::transform(text.begin(), text.end(), text.begin(), [](const char input) { - return CHAR(toupper(input)); + return static_cast(toupper(input)); }); return text; @@ -57,6 +59,12 @@ namespace utils::string return text.find(substring) == 0; } + bool ends_with(const std::string& text, const std::string& substring) + { + if (substring.size() > text.size()) return false; + return std::equal(substring.rbegin(), substring.rend(), text.rbegin()); + } + std::string dump_hex(const std::string& data, const std::string& separator) { std::string result; @@ -76,14 +84,14 @@ namespace utils::string std::string get_clipboard_data() { - if (OpenClipboard(0)) + if (OpenClipboard(nullptr)) { std::string data; - const auto clipboard_data = GetClipboardData(1u); + auto* const clipboard_data = GetClipboardData(1u); if (clipboard_data) { - const auto cliptext = static_cast(GlobalLock(clipboard_data)); + auto* const cliptext = static_cast(GlobalLock(clipboard_data)); if (cliptext) { data.append(cliptext); @@ -123,6 +131,35 @@ namespace utils::string *out = '\0'; } +#pragma warning(push) +#pragma warning(disable: 4100) + std::string convert(const std::wstring& wstr) + { + std::string result; + result.reserve(wstr.size()); + + for (const auto& chr : wstr) + { + result.push_back(static_cast(chr)); + } + + return result; + } + + std::wstring convert(const std::string& str) + { + std::wstring result; + result.reserve(str.size()); + + for (const auto& chr : str) + { + result.push_back(static_cast(chr)); + } + + return result; + } +#pragma warning(pop) + std::string replace(std::string str, const std::string& from, const std::string& to) { if (from.empty()) diff --git a/src/utils/string.hpp b/src/common/utils/string.hpp similarity index 87% rename from src/utils/string.hpp rename to src/common/utils/string.hpp index 09291939..20fa4827 100644 --- a/src/utils/string.hpp +++ b/src/common/utils/string.hpp @@ -1,5 +1,11 @@ #pragma once #include "memory.hpp" +#include + +#ifndef ARRAYSIZE +template +size_t ARRAYSIZE(Type (&)[n]) { return n; } +#endif namespace utils::string { @@ -79,6 +85,7 @@ namespace utils::string std::string to_lower(std::string text); std::string to_upper(std::string text); bool starts_with(const std::string& text, const std::string& substring); + bool ends_with(const std::string& text, const std::string& substring); std::string dump_hex(const std::string& data, const std::string& separator = " "); @@ -86,5 +93,8 @@ namespace utils::string void strip(const char* in, char* out, int max); + std::string convert(const std::wstring& wstr); + std::wstring convert(const std::string& str); + std::string replace(std::string str, const std::string& from, const std::string& to); } diff --git a/src/common/utils/thread.cpp b/src/common/utils/thread.cpp new file mode 100644 index 00000000..7239b536 --- /dev/null +++ b/src/common/utils/thread.cpp @@ -0,0 +1,128 @@ +#include "thread.hpp" +#include "string.hpp" + +#include + +#include + +namespace utils::thread +{ + bool set_name(const HANDLE t, const std::string& name) + { + const nt::library kernel32("kernel32.dll"); + if (!kernel32) + { + return false; + } + + const auto set_description = kernel32.get_proc("SetThreadDescription"); + if (!set_description) + { + return false; + } + + return SUCCEEDED(set_description(t, string::convert(name).data())); + } + + bool set_name(const DWORD id, const std::string& name) + { + auto* const t = OpenThread(THREAD_SET_LIMITED_INFORMATION, FALSE, id); + if (!t) return false; + + const auto _ = gsl::finally([t]() + { + CloseHandle(t); + }); + + return set_name(t, name); + } + + bool set_name(std::thread& t, const std::string& name) + { + return set_name(t.native_handle(), name); + } + + bool set_name(const std::string& name) + { + return set_name(GetCurrentThread(), name); + } + + std::vector get_thread_ids() + { + auto* const h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, GetCurrentProcessId()); + if (h == INVALID_HANDLE_VALUE) + { + return {}; + } + + const auto _ = gsl::finally([h]() + { + CloseHandle(h); + }); + + THREADENTRY32 entry{}; + entry.dwSize = sizeof(entry); + if (!Thread32First(h, &entry)) + { + return {}; + } + + std::vector ids{}; + + do + { + const auto check_size = entry.dwSize < FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) + + sizeof(entry.th32OwnerProcessID); + entry.dwSize = sizeof(entry); + + if (check_size && entry.th32OwnerProcessID == GetCurrentProcessId()) + { + ids.emplace_back(entry.th32ThreadID); + } + } + while (Thread32Next(h, &entry)); + + return ids; + } + + void for_each_thread(const std::function& callback) + { + const auto ids = get_thread_ids(); + + for (const auto& id : ids) + { + auto* const thread = OpenThread(THREAD_ALL_ACCESS, FALSE, id); + if (thread != nullptr) + { + const auto _ = gsl::finally([thread]() + { + CloseHandle(thread); + }); + + callback(thread); + } + } + } + + void suspend_other_threads() + { + for_each_thread([](const HANDLE thread) + { + if (GetThreadId(thread) != GetCurrentThreadId()) + { + SuspendThread(thread); + } + }); + } + + void resume_other_threads() + { + for_each_thread([](const HANDLE thread) + { + if (GetThreadId(thread) != GetCurrentThreadId()) + { + ResumeThread(thread); + } + }); + } +} diff --git a/src/common/utils/thread.hpp b/src/common/utils/thread.hpp new file mode 100644 index 00000000..4ea3598c --- /dev/null +++ b/src/common/utils/thread.hpp @@ -0,0 +1,25 @@ +#pragma once +#include +#include "nt.hpp" + +namespace utils::thread +{ + bool set_name(HANDLE t, const std::string& name); + bool set_name(DWORD id, const std::string& name); + bool set_name(std::thread& t, const std::string& name); + bool set_name(const std::string& name); + + template + std::thread create_named_thread(const std::string& name, Args&&... args) + { + auto t = std::thread(std::forward(args)...); + set_name(t, name); + return t; + } + + std::vector get_thread_ids(); + void for_each_thread(const std::function& callback); + + void suspend_other_threads(); + void resume_other_threads(); +} diff --git a/src/common/utils/toast.cpp b/src/common/utils/toast.cpp new file mode 100644 index 00000000..85187ef6 --- /dev/null +++ b/src/common/utils/toast.cpp @@ -0,0 +1,109 @@ +#include "toast.hpp" +#include "string.hpp" + +#pragma warning(push) +#pragma warning(disable: 6387) +#include +#pragma warning(pop) + +namespace utils +{ + namespace + { + bool initialize() + { + static bool initialized = false; + static bool success = false; + if (initialized) + { + return success; + } + + initialized = true; + auto* instance = WinToastLib::WinToast::instance(); + if (!instance) + { + success = false; + return success; + } + + instance->setAppName(L"H2-Mod"); + instance->setAppUserModelId( + WinToastLib::WinToast::configureAUMI(L"fed", L"h2-mod", L"", L"20201212")); + + WinToastLib::WinToast::WinToastError error; + success = instance->initialize(&error); + + return success; + } + + class toast_handler : public WinToastLib::IWinToastHandler + { + public: + void toastActivated() const override + { + } + + void toastActivated(const int /*actionIndex*/) const override + { + } + + void toastFailed() const override + { + } + + void toastDismissed(WinToastDismissalReason /*state*/) const override + { + } + }; + } + + toast::toast(const int64_t id) + : id_(id) + { + } + + toast::operator bool() const + { + return this->id_ >= 0; + } + + void toast::hide() const + { + if (this->operator bool()) + { + WinToastLib::WinToast::instance()->hideToast(this->id_); + } + } + + toast toast::show(const std::string& title, const std::string& text) + { + if (!initialize()) + { + return toast{-1}; + } + + WinToastLib::WinToastTemplate toast_template(WinToastLib::WinToastTemplate::Text02); + toast_template.setTextField(string::convert(title), WinToastLib::WinToastTemplate::FirstLine); + toast_template.setTextField(string::convert(text), WinToastLib::WinToastTemplate::SecondLine); + toast_template.setDuration(WinToastLib::WinToastTemplate::Long); + + return toast{WinToastLib::WinToast::instance()->showToast(toast_template, new toast_handler())}; + } + + toast toast::show(const std::string& title, const std::string& text, const std::string& image) + { + if (!initialize()) + { + return {-1}; + } + + WinToastLib::WinToastTemplate toast_template(WinToastLib::WinToastTemplate::ImageAndText02); + toast_template.setTextField(string::convert(title), WinToastLib::WinToastTemplate::FirstLine); + toast_template.setTextField(string::convert(text), WinToastLib::WinToastTemplate::SecondLine); + toast_template.setDuration(WinToastLib::WinToastTemplate::Long); + toast_template.setImagePath(string::convert(image)); + + return {WinToastLib::WinToast::instance()->showToast(toast_template, new toast_handler())}; + } +} diff --git a/src/common/utils/toast.hpp b/src/common/utils/toast.hpp new file mode 100644 index 00000000..739c5c86 --- /dev/null +++ b/src/common/utils/toast.hpp @@ -0,0 +1,19 @@ +#pragma once +#include + +namespace utils +{ + class toast + { + public: + static toast show(const std::string& title, const std::string& text); + static toast show(const std::string& title, const std::string& text, const std::string& image); + + operator bool() const; + void hide() const; + + private: + toast(int64_t id); + int64_t id_; + }; +} diff --git a/src/dllmain.cpp b/src/dllmain.cpp deleted file mode 100644 index 154ab1bc..00000000 --- a/src/dllmain.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include "loader/component_loader.hpp" - -#include "game/game.hpp" - -#include "component/game_console.hpp" - -#pragma warning(disable:4996) - -DWORD WINAPI console(LPVOID) -{ - AllocConsole(); - AttachConsole(GetCurrentProcessId()); - - freopen("CONIN$", "r", stdin); - freopen("CONOUT$", "w", stdout); - - std::string cmd; - - while (true) - { - std::getline(std::cin, cmd); - - game_console::execute(cmd.data()); - } - - return 0; -} - -void init() -{ - CreateThread(0, 0, console, 0, 0, 0); - - game::load_base_address(); - - component_loader::post_unpack(); -} - -BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) -{ - if (reason == DLL_PROCESS_ATTACH) - { - init(); - } - - return TRUE; -} \ No newline at end of file diff --git a/src/game/game.cpp b/src/game/game.cpp deleted file mode 100644 index 4c39ee27..00000000 --- a/src/game/game.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdinc.hpp" - -namespace game -{ - uint64_t base_address; - - void load_base_address() - { - const auto module = GetModuleHandle(NULL); - base_address = uint64_t(module); - } -} \ No newline at end of file diff --git a/src/runner/debugger.cpp b/src/runner/debugger.cpp new file mode 100644 index 00000000..d58149b7 --- /dev/null +++ b/src/runner/debugger.cpp @@ -0,0 +1,95 @@ +#define WIN32_LEAN_AND_MEAN +#include +#include "debugger.hpp" + +namespace +{ + bool acquire_debug_privilege() + { + TOKEN_PRIVILEGES token_privileges; + ZeroMemory(&token_privileges, sizeof(token_privileges)); + token_privileges.PrivilegeCount = 1; + + HANDLE token; + if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &token)) + { + return false; + } + + if (!LookupPrivilegeValue(nullptr, SE_DEBUG_NAME, &token_privileges.Privileges[0].Luid)) + { + CloseHandle(token); + return false; + } + + token_privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; + + DWORD size; + if (!AdjustTokenPrivileges(token, FALSE, &token_privileges, 0, nullptr, &size)) + { + CloseHandle(token); + return false; + } + + return CloseHandle(token) != FALSE; + } +} + +debugger::debugger(const unsigned long process_id, const bool start) +{ + if (!start) + { + return; + } + + this->runner_ = std::thread([this, process_id]() + { + this->terminate_ = false; + this->run(process_id); + }); +} + +debugger::~debugger() +{ + this->terminate_ = true; + if (this->runner_.joinable()) + { + this->runner_.join(); + } +} + +void debugger::run(const unsigned long process_id) const +{ + acquire_debug_privilege(); + if (!DebugActiveProcess(process_id)) + { + return; + } + + SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); + + DEBUG_EVENT event; + while (!this->terminate_ && WaitForDebugEvent(&event,INFINITE)) + { + if (event.dwDebugEventCode == EXCEPTION_DEBUG_EVENT) + { + ContinueDebugEvent(event.dwProcessId, event.dwThreadId, DBG_EXCEPTION_NOT_HANDLED); + continue; + } + + if (event.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT) + { + ContinueDebugEvent(event.dwProcessId, event.dwThreadId, DBG_CONTINUE); + break; + } + +#ifdef DEV_BUILD + if (event.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT) + { + OutputDebugStringA("Debugger attached!\n"); + } +#endif + + ContinueDebugEvent(event.dwProcessId, event.dwThreadId, DBG_CONTINUE); + } +} diff --git a/src/runner/debugger.hpp b/src/runner/debugger.hpp new file mode 100644 index 00000000..99d1073e --- /dev/null +++ b/src/runner/debugger.hpp @@ -0,0 +1,15 @@ +#pragma once +#include + +class debugger +{ +public: + debugger(unsigned long process_id, bool start); + ~debugger(); + +private: + volatile bool terminate_ = false; + std::thread runner_; + + void run(unsigned long process_id) const; +}; diff --git a/src/runner/resource.rc b/src/runner/resource.rc new file mode 100644 index 00000000..ba86c6f4 --- /dev/null +++ b/src/runner/resource.rc @@ -0,0 +1,100 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "windows.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "#include ""windows.h""\r\n" + "\0" +END + +2 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "X Labs" + VALUE "FileDescription", "Steam mod runner" + VALUE "FileVersion", "1.0.0.0" + VALUE "InternalName", "Runner" + VALUE "LegalCopyright", "All rights reserved." + VALUE "OriginalFilename", "runner.exe" + VALUE "ProductName", "runner" + VALUE "ProductVersion", "1.0.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +///////////////////////////////////////////////////////////////////////////// +// +// Binary Data +// + +102 ICON "../client/resources/icon.ico" + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/runner/runner.cpp b/src/runner/runner.cpp new file mode 100644 index 00000000..01c32d2e --- /dev/null +++ b/src/runner/runner.cpp @@ -0,0 +1,26 @@ +#define WIN32_LEAN_AND_MEAN +#include +#include + +#include "debugger.hpp" + +int __stdcall WinMain(HINSTANCE, HINSTANCE, PSTR, int) +{ + const auto* const command = "-proc "; + const char* parent_proc = strstr(GetCommandLineA(), command); + + if (parent_proc) + { + const auto pid = DWORD(atoi(parent_proc + strlen(command))); + auto* const process_handle = OpenProcess(SYNCHRONIZE, FALSE, pid); + if (process_handle) + { + //debugger _(pid, strstr(GetCommandLineA(), "-debug ") != nullptr); + WaitForSingleObject(process_handle, INFINITE); + CloseHandle(process_handle); + return 0; + } + } + + return 1; +} diff --git a/src/stdinc.cpp b/src/stdinc.cpp deleted file mode 100644 index ea7961be..00000000 --- a/src/stdinc.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "stdinc.hpp" \ No newline at end of file diff --git a/src/stdinc.hpp b/src/stdinc.hpp deleted file mode 100644 index 8d08152a..00000000 --- a/src/stdinc.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once - -#pragma warning(disable: 4244) -#pragma warning(disable: 26812) - -#define WIN32_LEAN_AND_MEAN -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef max -#undef max -#endif - -#ifdef min -#undef min -#endif - -#include -#include - -#include -#include - -using namespace std::literals; \ No newline at end of file diff --git a/src/tlsdll/dllmain.cpp b/src/tlsdll/dllmain.cpp new file mode 100644 index 00000000..56d31a66 --- /dev/null +++ b/src/tlsdll/dllmain.cpp @@ -0,0 +1,7 @@ +#define TLS_PAYLOAD_SIZE 0x2000 +thread_local char tls_data[TLS_PAYLOAD_SIZE]; + +__declspec(dllexport) void* get_tls_data() +{ + return &tls_data[0]; +} diff --git a/src/tlsdll/resource.rc b/src/tlsdll/resource.rc new file mode 100644 index 00000000..2a778f5f --- /dev/null +++ b/src/tlsdll/resource.rc @@ -0,0 +1,100 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "windows.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "#include ""windows.h""\r\n" + "\0" +END + +2 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "X Labs" + VALUE "FileDescription", "TLS index allocation dll" + VALUE "FileVersion", "1.0.0.0" + VALUE "InternalName", "TLS DLL" + VALUE "LegalCopyright", "All rights reserved." + VALUE "OriginalFilename", "tlsdll.dll" + VALUE "ProductName", "tlsdll" + VALUE "ProductVersion", "1.0.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +///////////////////////////////////////////////////////////////////////////// +// +// Binary Data +// + +// Nothing here + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/utils/memory.cpp b/src/utils/memory.cpp deleted file mode 100644 index bc256c11..00000000 --- a/src/utils/memory.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// https://github.com/momo5502/open-iw5 - -#include - -#include "memory.hpp" - -namespace utils -{ - memory::allocator memory::mem_allocator_; - - memory::allocator::~allocator() - { - this->clear(); - } - - void memory::allocator::clear() - { - std::lock_guard _(this->mutex_); - - for (auto& data : this->pool_) - { - memory::free(data); - } - - this->pool_.clear(); - } - - void memory::allocator::free(void* data) - { - std::lock_guard _(this->mutex_); - - const auto j = std::find(this->pool_.begin(), this->pool_.end(), data); - if (j != this->pool_.end()) - { - memory::free(data); - this->pool_.erase(j); - } - } - - void memory::allocator::free(const void* data) - { - this->free(const_cast(data)); - } - - void* memory::allocator::allocate(const size_t length) - { - std::lock_guard _(this->mutex_); - - const auto data = memory::allocate(length); - this->pool_.push_back(data); - return data; - } - - bool memory::allocator::empty() const - { - return this->pool_.empty(); - } - - void* memory::allocate(const size_t length) - { - const auto data = calloc(length, 1); - assert(data != nullptr); - return data; - } - - void memory::free(void* data) - { - if (data) - { - ::free(data); - } - } - - void memory::free(const void* data) - { - free(const_cast(data)); - } - - bool memory::is_set(const void* mem, const char chr, const size_t length) - { - const auto mem_arr = static_cast(mem); - - for (size_t i = 0; i < length; ++i) - { - if (mem_arr[i] != chr) - { - return false; - } - } - - return true; - } - - memory::allocator* memory::get_allocator() - { - return &memory::mem_allocator_; - } -} diff --git a/tools/windows/premake5.exe b/tools/premake5.exe similarity index 56% rename from tools/windows/premake5.exe rename to tools/premake5.exe index 9048d51e09da5bde02e6337dcfaa603a2cebf292..0e4954fd99feafac6315506ec4c727a53fdaaeb8 100644 GIT binary patch delta 365464 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%0AVOU zq3}BZ9LwNZBJMkItKmltvJheOkk)SqKW1A-SB-NU3I*2|z<(f<*YNCy2xz5Q8`%6u zrfkp9{D4TK@Qj0_1g_%wCfpvllW;fTLjHoA((oLB=NPy=xB|E?aAAN0U-+Ncxo+90 zgaWv|fVamp0Zyry;9wose#MNu!;35uTCa&O;@Ht;{>+OkGu!yI21lDNfKO;F{e>m9 z;^%4Cz#3grOi)+xCHz(uZ^tj0S*R)|DX3;#24cm4e`qWTUbWcl=ec$xGa8j(B(hU5 z>Ch&;N!@U;Y0yUKCqK-mZ)B;h8r)=r@w{|s3!l3Yr`bQ+$hx&U;010~fIk7)cC`ZZ z>>;HdT5#r3oBZ@<7XnIuo;?3St^&z_yCw<59>(TV5BmHoy#62f`ycoD?}At%;(r5wUlnao&?86N@kah?R_T-e zJbPZJU#k1~&3*}AAW!^x_IyOY}{#<2_$tiMp)!c-|}Quc%z@ zt87%~umV(7_9ZeD20L5UORiO4x>jA2KR(VMeU+u_3|aioud)+5(^$S>D~s0k8q1}v zxKx0R<$vAE@*)@RqRo;p)Ai!qGx` zJQ6Em2~*I%hF#nUZCyxW z1&n$|AfZZBm&t%%+(Xe-91?tHCqSt0q;oK5x#xu5bW+qlH-I>>_57>@4`Fqu0~C#5 zkMOPzcB;mvA@8A5;p?CtG8%zw#lyk=z1G?pyRPwji%=kBEw;|q1*Z$~0vC_SdpE&j z|91T7O-H?E>_a69xzJ#%R@#DRPF}8g7eeIAOV(3GMc_1OjK=aTnPRlXStAM$zXb}w z0YCEv3RU|I)S}FqOB7)=B1j=1Nt8c^bOWun2qm{6w_#(&8gGt8xVla_m|~4?^w3$` znCJF>(SuhHKk`x{y!{ZuDo5Dk+)Q|IE zqxiGiVA6odB42(OOc>+B($GX*>RV^Z~wX~J`=$Z}B@K0rv(r61Cb1tpf4_QUtk8*EC#r*sXS3m;xg zzj{YcKyVL85BFx`U2BfeueZ1Isox@99~RsFmDk&fv`wt-88s_vQ$MS#yMbWw#n)f(SvwGEP>H^5R5pMUz@v6|PPL+TP^hBK``4QfBvcB4$y!1`h)fO%NS+Gsz z29x$usQm9V!4msP<5T69!w?M!6^@cJ8qNF}DxmO?+RQXi!aM*%pu`bpu0 zmR}W^^hIw{l$9}^G}r;M--mxnG5zWtuAun{yqUVW(%Iz&YLrEYBH0^6So+mFW&wi3 zx`UL4a7&^go_|7VD%viy9}*2=(LMUZj_UiuarrTvzle2b+Gc>^tK zKNO960oqOYC(HNHq1A0etm#*t_`^wMkJ+ zC&YBX#RZNP_y!sW$vH4o8w29S8`?XI(EUvBV13wJi^GZ8K9tKG^Ci*S&N-Fd_CCVc z57CH*oNdKN-CKwr2^Q2I0~@i~u2RVk%4OkpTD^T4mgVmu1lc!^t?NW)n~{RBNS%fg z)i7#~rb&~IRKWl>j@fx$hE+vjYd;N<1_Rw-VGwZuOcE~2k14hoYT_gy$a5^o5pSTN zumc^dL4Tz(qaumYQoxY)_9AFR(RD;L2*%eghd+Jr-fy#B!A6uJflqv!8Euhb+sMna z_EaD{<{gw0qQ%GqMEYT{3J1Kf^m3VUk93Skc7n$8HeM&xcEfpab13XM6k(1*-Jg z=}TOEMV9RT!^7TT$+{hDc;-7eF!%v~<{dV0oMI_hY-RTaMYxMetNQQS5}2*AU;x&_ za^hWZpHA>A*-R`p@kGgbVysdb^-hG+7Y@@vbBN!5hn>t7;$EmrF%qWId;!#~XiH73 zBwKsdr6itHk|{A%786P`&R28|6!f9C_6i=2hd(O}{Kp-vOS1<<;TQETOMsY^^DcWt zpSBfw^2(q|Tlu^1;@U1HRgy*(sa0gcPuPTc#z&8lWk&mrcr2<26HTsZ4d!(?K3NIN zpOvQHp<+naQIQ@Dh+yW8N-*fwkCQc}P*8XmbL1D)bmQ!z=}2t%t+bR^P7udL?`0se~sTc#J{mZp7XB(irUex~S6M{wcrj(0`JhiIZNdK)=27l~Y~S^Gd{ z3xfC0fgj3C1OK&T-u*om)#e63O2Orfcljglv92*;SA3vIf!#pZ-M0yQB>eK_U)FHf zdu+Jw(XaVG-eV6BSO+BXZ$s6yvetnGt)T0*g@CdT*u}g9fP6V`4UgT)lJy6#Qt&Xz z+E8V>mHZxmb|;Ip#RENTxb6}B{G$AXH#TlU!(y2TIv7DLuSW%6V9oJkp7=L5 zxc#0lMKie5wRt#C4>OPduHw)AjSbb^kLQ2?8=Dl>RS8fTG_WqMYlXd93sgNl<-Rk) z(I1F)h!G#K0`$`zAFv+Ajg?-U(#%kpaJ%7VNjdVWO8(6UFo3Ug*eam|hRk>s&8C=7 zi-I~<3W9cRqt2)(p=qUu2Ukqc9H1ZU6?Iold`!EAdl!1cWD=%deW2HCKZf)6RvAaG z&9Y#&T~-NHd(o)A9-GOR?_#6+cHE8W-g-f1G~=Z4nSzaR2~om+I29dJr!U&B9rB%904s5FPOf|zh5~%4k*#@~WQ_=n2z!b?l2DJH z3w|if=&93hSXPnNP{|9EAJ;qR4wQn2a^zDV0)0JI1;&v*03IMdHzm(}ji_m6dtqA+ zMQLxoE}H47=WT++9H7cAXyrDA=7?6F+8Yz`X`!ep*i=RA)5EEMCWnUWb$%zR>Sb7JEZ_?N9 z@mgV5rZgy>icv5;FYdDZ>@GfVH|v|Z8$t9@X;4#M+FgH$jm$Bp5{CZ16vH!NktOBl zCEu!sD}G1F9umxjA7Vq*z?xnBwcTvQh@S>h?x90s2~V-!hqPw8QMkf0z|zjWTq}?) zZ7Z$1Rr?rfVD_wCS|J$tBm{2!i1kmMiW3VZA#R(tv;{C_BERw*8OV?;Wd0jjc+Pia zvezHMOG##k+p!X(agLna8qL;i(PF;lBbFHH9m(|$nCsQJU!pMkCQzB49l+0g#8N}w zZsix=H+JhCZd8SNI)$9xia-7_OKj)GWgTapNAQSNd>i2473c7gESS@3YQM!# zK?uBy$a{vLH)d40rbUB$T?#1rI`SXUpZ{qOGiGd}kM7>UR+HfKTM5|G2TTya?F76P zuV%;EC(pbSkSX%qW&DRdtY2u2_!_v3N0p<*8VSe_n{QO=vCkk!k#wE3xMtGA2^6OQm z>*6&R_ekCM@X7mx5N6-U#zfN9;!^hYq;tghaM!`fI)mA3ih_T$kEOR)8GHy~5R9kr zG9S91MYmBrJYdnZx;Sq?%Zb9iAMC=DsrFDe>ylF4)zjm|dhCk7ma3HriZMf3<-+XkeP1!*uWsm3r2 z2U(X0o$zUZ72HZ@giSVqcjQ54Y{lqPmjCe}i))ibwOdX+6n7T!Z3nRw z{x+{X2;&%k;k5_Zs`(2M0Ono_!l2^*1m++ZxDPCZh)KZGGMb3)r#j2=>?Xl;ui*ws z0Y{5Y;B-d=LhW6F_yFLO64|>_{glM%B~OC65CHj4{PZWn^2INoV3F`zXFmK88xZ;t zyr#%kpW%xRu}+~|#Mj|xc-bMAj*2{g2&<3(9YX}zJ!3v@aZvbsw~#<8yf62CT2NPM zrWP#3GF;q{8V;i?{uH@xj6X%*m;brYN0B$*;yVw+CeAn`KYN&U%ZR>86nS4>CW3_7 zPhpA^mhWo3HmuP+4cSZ)rwp<&jxZM_4(oZvx=3OLOw5;k%PkdbXf#z4X3Y;)lX*JQ zl3(PfD#(b5axshq+s$8!h7CHx`fK0hgO0$~&6$pT{1KL;n{$=Fc7%0G-CLk^m-bUC zowPpGxPT5zL)L4K+biN>YgQ?VtDKe~DxI`oq?K0}@cJVxH(UC`WxbJfPBDdMYQVCZ zVnP%|uG$XGhtW_!gQ0pd4zUV9)^HdM%|1)ULUA7hEX?GL;blizr(_<@6!V~_8*zK- zDlx_I`pZp?3`^GfAeabk5A&e7!{~&k^-uiEqpYh|;tfYx^dlQ7vk(9`5`EE)1$$|k zNBcT^HpS1lm_bS5b&aNCDS~Izr>r@N>)adle)kwlYqd*Frqu$Tew?KarV9XI+GrndCM=ZMpb*K z(~i|*It>;vu8NJ-6DBkiWeJaZzO9ONii(g*w&GhV6jYOa8b-|OV69B#0!GXDl`2>= zEa&&D*ihgZT+O1pB4z5rcA73grWujvvWuxUSu=mOn$h-B3BuWGl;R>R?hf&LzvlN| z@As~9c!c+9Hb5I1nG<6X1iZ#`Po`_W@kz;y>3SfbhW9zay3eYC`92JO(kc92gS(R> z7r;6niNywV3daZtUCE|9mZv45%kSA;fhh{O@o8c=*Puc!q}~Qvt7}6NYJI6Db-1OI z;GDlF@^?-M>q#e1u=shqUREU>3rVArJqwsnKXhf5sz<9R{17f1q_4umGl?B3hF^s> zeYayL;AHrjZ6jP^0KgQ9@FVDd|I8mdiA|!fJMrgE!X(zgPJHW0*4?%hCUboy`Wi8E zbKFiMnVekrON2pw-ao`AfJpY^NF3RV@ynhVhTEGjpzKrRu}=uTUt20di&divOI!cY z^@x7XeEn)`RF&-(M%9NQY-XHdiL~=c`JuVn1cHv!nCq!R``_Xl;IGaXrF!g3+?F=R zqN1cSYH7JO^c88f^mX(Y`vLOMSUV_wu$cV=l>f+gE%~mxp|Kk5tLn+B?HRcpsei&8 zp+ZlR^@d2@5{(nbIQ%Hu_I6sD!J?-S;R*?3&&+y5%C6_np2ksr6?VdvT`wI$#`SoC zKL)B{wGiOJX=LPv?u*ZppMY8}L=xBnQ#U}tDMh~`lKKVP3BZaqw*ELMEaK#X{S6Rt z>YKz7-J0SY`Lz`yabkgvb6o#VG;-QnKH#4$s_#UcfgLrBQ;)=^k>F*Xa_Y-Cmqfpu z5~h6c!hd4tC8N?w{8>{s%qKIUD%9-x&l$l25X^56cYc*qEbD0!D@x1gt>}ccKV}+z zOPsX2SR(M2IEiRWoU}J0nJyp>`5_zN8!alGkJ|91Rb(2}x7O0S2p2q6ir`wRJGtP$ z)QhOhg*dxC%pQR@w)FN`{kXzzf;Dy;(>3Zb*$8bvKuX^txF18=O+at(VGL6a3g2CX zkMxGG@wOE6>?WW$Jc8Fy@E`B;S3YIEQ^NFWCtlrA5!B4pLfk5vsYnqK`jYL~Dywup zMFp*N&Jg7VgR$0ZJ_9OZG`KbPchZSKFG)5V{NYk{U92dvk1wd<444A=Vj~o`?W8JK z35_52!xRSGqAilAqq;5eBJ}!7bDJQ`R`@y}HOS?*@eJyd(Ur)8=OV6_D zVEJS~E<));?#vuvh?Q7YCg%-j*%0kBeBe3OBUS91}=PBCbdf!F8@*zNig>eX%fMT``;#Yk}}M}E9oG&sa$ zYvHQfm@!<^JH#dnT@WzwxUyr&5mPEA4GML;H;uM#!QKJK21kbZzF?&vKT4QbxChe0ZcwZs-4h@iQVCCY5LMumEF8n3>{`i7>7uf@~&-HR~c zUC29s&Jsso$Te>lWr>(3D&2fbe1(XwP;mEy`;m_6_@PIEvI-9K{LVPJXs!|Au1@9a zK4+atUq+HvAX#eMjVtjY9l=qdwv%(sgK1K~aU6Mt)#*LEPlKeWqw!0hBO6S zrI=RbaHOqx1D>=sxPB7>K84+59()BRioaimn#)A>`{)!FM@%MTDS1dXVO=6~*u&8VMSL_cRFNRSg zVDZ}8&NIYZf?9$O$3%YrD;D2YVIO`b9Qd%S%%qEt;e}UO&RBSRmZ?So=vF#KZeC{a zzNl6pJj>JtQ`%uv!>ASjgm}O^eGT>Q!RWNuID(PJX_s8t7vyO$LypE*^mQst4Vr@F zCa3RRGwW%YG6uY(a8)Sy@MCy0mten9J$Z)t5_7G(MHe^zLd|0hD@e(c>v7p$X*dcD zqsJHuaq(T6rtogGg&+T#wKvu4ql!@dxar63sDao}*#hRjccM=6D#f=({)1Q#61z3) zwxG48&)tt`=Wi(0jS)+)XWi}^9(fG|Pv6o^&&1SdOIT`4Yd1U@o^2q5v?TaA1g@(r zYC~z@Zlzn;Ztm$G>j^rlEP#emj)DvCwzRga)M&Eo|Iu3ON}u$Uwvg_)R^0##Y_B2= zRaOqHBpBIWz+D-R&B%P={So?ZVwq4Wg`bR=j_c{Do1M9a#r59Ee_?V@t2V6wH{RyR zX?GwquDXs3K}pC?2Sag9iHy6m7qXSDt4U5dsxSKvOn+r)%1?Uxmw3Yz7>ocXbjBMI zvNi?yARJ}5U!rpDtEL|J9kzQg;I^zxPtev5M;z6&=Gv4o8u^6JH&I*L4ZfH)kI*}? z67CHb31XGsRDvb=o1IX~@!>bD{enEC=1MozR-w3A+GVMu^AcmYvlL<`!^$sA_RHnyhYa0+p`rSQ=NTtPCA{8vj#od)|x+iK& zLumc@Zro2Pcb4>piD#)Yt}5s#ZVNWm$g?$~`r4)3fe3AJNv4`Y-1aiSQi$AHZ{U6c z!L(Q`*J+=y| ztlCxm!^YS3Ls%QN?O+OgTnXI6-%5xNaWrC5WzanolIcr&9feo1MLq;C?nNj#NV(no z4S~c={j}N!T0|EPg`OT-VAU-}j)#DS^Eh{)p;&-B1hylP(v=DQH-OfjMec&mw1XPP#x^=@W#=4Z7uhq-oc12sZnA>m#lyM%VaAYs;#1 zBN|Rq*TZqb7PAtjRF-zfBs|?HqTA9V#WUTAAeyT5NO}~mYCv;u#GCzv2o1=}M3b=& z{yk5SMsMJ?zYwOeJ|(S+fTGO2f>HVM)zvCF>K)gBfmV&BRRTnUxg{;`PNq9k3tVFR zKL%_qJ&X$c1p?>g=g0&9gt|%(L#M4|AsT6XnB0bI|Bc&=6#h+lv$j&$1F72hHn!w$8E3?uP#!#7kNP4;e{gy>WjLe`X;8_S$fld_pEj%RjOji zS@fk^h*1#I!U|fMQ$cKbRVJG5Y2;~NQ_Z0K))w|kSXxQc7LM#?Sy#{|PcBs|4HZul z{(@GvJb6VE5O(?Y?|cpF9~eykj9ww;#88FA1|oLkzC*W_R>|1;RK@_MO;1saHH7HJ zVItgWq6skxW}?ju?Dr0`x=%f^b}nA_XMGa|OF*B>o9|PXqEkxgF|}FnkvpQ`237}r4!WL3czuYM#z8&qd)9fT zcZi1omM!M}6<9e$(`#I#4PvWSzXyinm78xHkW-OS{;Mye33U@_NXV02^`f>h7=Xdo z4HbFgZ+y=>La^BTJ?mwoe2GCzf2aaOB`Q~5D=syIM4>PG8+_Fv>T9f6rlBIO-2+yJ z(nZMc(Rsyv8cMBS!Y6LJ(L2uI1)_TC#8AwB+a^ymVD&)QF47l$1TS03_(7=SYp51! z2y|+)J=Btardoc1NfQ~w;7#{Lv6Sn4CPql$(I+g+K_tti8hN?!v@9&mj2WIDW1UyG z02~G!9JGggyH{($p@vFdla$a{z&D}suZT?H14`4i?iaMu*Wln^*R{s}rX>VI1A%5j z+`pBk(3T?s9Isa6;jL=1fmC;w_p8N%+;wRP&AVfW&{tir-G|D8wv4v$g+b`Ag{udF zqr47wCWW|yJj)tQYWd_T>W^OeOT4Qhn0QyEF!3JUIN64Vm%2p4TB!0Euc>8yrzpHa zx~gvc|4wf~ zS}(|VNAt}8z=pvWT9f8?xK28g<~O+ZK_*Qs+$cDb>D5cYOJ|0aYoS4nTUu{orKe;S z-4QXe(d3fg^MX_+p>-X%_mbr$7_3rRER4;ds4lV$rY|B+flI-HF;`y|5n7oRitw<1 zg?RhS*KzSqrRaG!Ylj>;<0!Qy<`{_{Z2cnDy8fU5tZ`+BmOKgzRMIgr9h zC-3`Av_DKNV<(es+t9;lxW&o^V-=`j7gnm!zklc9JF8UU8xAl4*u1F3HRBY~OKT@x z+1FCe=-19c8u@wH6p&8|$|m8$F&@B_Ro761sY3_q9jW+i#9yE-NDk18>`XP49vvX{ zWJWt|sI85NO^mmxNR%l=qUFL5X*Lm;GAR>9;vO&>?wb11_*XPa!~$%wEl?7{=?R0l5XxTVv4l%uo287+ zY>Z2r^7)dR61V-t+IUy^O${n5^DOfp6#OjvdFS!yaUSnfUcCRW0jP1JKN+M?A^NE`L+$sAgU>>dMnfC%J&*ZyqvZ3rr zEJpFCZ{cE*)<3g{!f)VHIg+TVA$wL^hc{*Kfc8fY9>I9wer$Of8xc^SI0 zI-_ZzMTufmNxu0KB~j1c_?g8l*zhkb%wSb`_5g^S$HN-=t{96?gJhIhC2bJq%bS4@ zNz|^#7Z|pA-nTS1^%8MI1$zVgU#tZ3>@EV&G#4Vs6uEvVA8-o?1(i-w)dKOA%V+qE zTeut=V4N8`&g83*ul$-Zo%dK5+>u|u#r`gKWW~K3RmHx0IMDL^{a;v?wu;~Wh4pN? zu)T?H0i52R_qdHcv2T#du+>M=?+( zSB=5?5aib`=mAW+SJy!r%cL{tr!AY<10|tlC)7M$$ztj;^O$#3d>jLa$1=w=R9fCh z$bMxP3_|)H(ZBSMjyUn&`N02-%e&oSNRt&|ZZm##eXQww7Ni ze%p=QagV*weTJ6NvSbJq6Bh9QbRVH5R|9_K(OSm4|H_Qrdk2IW3@Jf!CE!yS#hk(NhzmK&=z_ z!cyu=hot;K3QT!P7o6CgHds7EimvRX{T9;4$G~ddiMH}2$XnxInjBn`N5w*!sAQrJ zFq|$${P8r0Jn%ZmUE|)p1rO_(QakOV?o)6kUD;1Kv9Go17=BC;-5Mq1$lig7M z9Pe5+$OZRCK^=$a1152h4I#YnPjtaax*JdOo4VlM>genOW$24&4-4`YS!14xf=#K) zGysAs^Os^Q7VL%smv6jnG>rxw4KMok0RxAsQN6UK%? zgYNY(HbtC8eI3Rw>IR?Z4F&+#$-gnMG~IjW`0yUAa6po3aC6pqh<3g@DGWPLX*b{6 zgQcaO?ix6xPGU`R91>c0)(LRrDPRqZD>JleXmi;n)=aJoXJbO;)-VX(_{4Aw(sp5` zwe}g9_4jYcEJ$r0*O485*)%xVSW*^-uN8g$8^(CK8EkF_h;953N*QKxo$qrU}i5 z>Ne@i5An>6gTZta_Hv}uS2b10@bgZ4i%j7D6%`gL%OKy4;SBlDC`{Gv!+}%>K<2ha z;1bt?|ErDQ??kZ4r0P=C1vN-`11G>l!cfy*=3r zan)#Sk^INKg1(^0iDe;{%_3~;UjDmYEH+&;L2z1~<3RvJER>!UWJ?1%aFw?0y7MEG zvoXYDyWYyx{FEkjFK_I{ru5jZlu$Z>>y2!+uB4f-HL@~o8~+@iJ(80}`Rx<-EsVmH z)U8bBTl=u&Sm}=Io-oe>ee3;K8Zuz*8tQB`sA2qkANF9Vc`O*5M1DtKwruKNyr0J3 z9}>aH;Ms`3i}+iE@5k^r6MswbHx++#@n^xGW-R{-d1u~8GHa5?nKkf0p!pO24&iSO z{=UWE8T|D_Tr8ds;co)|!ths&KM8+x#_^5OZ0e{yU?=dmM160;lm3pW&vWDX`Divw z7yUT@Ihu{qmh$+1EX^p7z&L4ca>cvQ>xg@>ADf|F#NR+%_#z*vlfYR-3IDzy>#r^0 zhW_mK=#tiOsS`Gt<+xtY;?2>*c|i%kzduVxf@k`(A&L1g`z)tRTtl2KWFcHa7M_wz zPyUy3ge?9QREE8UC5?aCpFNEF77t+Ycsx3QO&?TBG}t!?iLV~U^*@lJwgC+6_DcEj z0W3eE6l87+t$lr**H}f*TH5cWe1LjNTW_n4%wM2!esz_;_}myaG^!*ZEdi8(G@sjI zSPH6oErun}U*z`NzghtB@-g@_V5?p#nExDP&#xibaT4ZD4k;(XbxUsiO31KCs*d*?tlVdf&=50DC|t)@FLP~IBi4Nl=54Jo0O8qd{uP$R)0 zQ1ggS*xy#kn+CEmV+dC7_W0{ax}Jn2xv-vH13TnJ@vC8YTe__fe8Iv(GDV9U#73}1 z056|s4PqnhB}m-|wzZ`OTLcck`Zns4=PzhYMQ`Q9aCrsvs-qLH(bqP_%$tuSS1DZV z#s*Qos6bL%g!hpf6h{H5c_k{z#R+kQY1<^QEzDu)RNMn6ptwy`^@IXoKFC_8PHHFw+*}VB=^a zlsPC0y;jl%`iHc^4RklWVtg(}2|`wQH;Zn{K>8JF4eOJ|X~SMkF$PVb-QJ)4cFG-0 zE0CaMSa%u`xmR3z0!MFjWvLZmz-&pyyRt$9Ak)nNO}`Z&UpPXX|6x}S>#al42ZL@x zzn$CzhatsW;QpTrXc(TZ&(rKqP^Fn&BRv50d8~^7tz>Qn;fyM;0k>^Ca}&7kCy@&B zkS#UD6yDn39D!+N6p?&mFW>~7GB*@M|QJk|_m^FpsS(Bi@m3}#cOmf-NkUB6+} zjJfEMIx~KZc@X4mBf4*m-%u=rm&FPg71B8dQwoE};y$%u9v?k~nXo|T4`Kau+rQ@b z4`Gko5m)+?AA_pI>xyqi`2gR7j5V(KT6~c*Tpmo$F}1sQQwf58rN!rb!}$22EUrYO z#1k>2X?^9e$r|QK_W9r;gvKwf-Luj6=lEWQ=il*Mj@4UnB)6?T1*axc%$lbrnKixB z%$o7|roX0C{>o5R7`F{!VB`U5q}Ln`qtGaHlGr@R&-30URs=@FViIibUrp?GU2;1A z(Zq&opW=gtu_Oc0L1Gs99m80E)maj3D{#SHK;J5AVZnZ6+Bl4j)`tB`CY1mEFg7^U zDP_YtmPZd~nNgn&2XRu^Vj)c8_YG%DbkBdy>xZ-WUY&4VK@3K_U?lkE;Vf78MH_cP%FvZraWM{s}gKH;-Wb^EMI@73!-v$?L@+fx75Pyl-m!ph_k7i>RXNj-3^dz8&1jDtk*s@Xt*_jBc%|uPhVQF7^a7VV{ zfYLUAc6IPWg>QK}OstR-bka7!QY~_t8TX84uh~aAHs)w-{S%8!7@elrx$&SshH`z{ zClBkS58>}bx$tF*#Gl9Z*o#4vU*O+MVn*!A{@p{=j!}i1oC}Pu_rt^%c55e|pukbm zTvNo{c-uYF+=Pg^Nwz!X_b>SUiBDOv(UYV#`1R!WhT|0DgCG82{O1RkjmvsMYmOgH zU?a6Q{#^nV(}8@*7?z$o3I)O=M=y9!0c%eXTOR`~#zy?XVh;5~BNY4k)oW>77ziMA zrTahp$uVr^{N2c-F`Cx8r_{}CP;o1>~CP*3 zpLZeS4Jn(}4HMSj**Hu6r`QN*YcR--=vyf>0}*4cz%P<@1PGeRvK=W3m4k0y<&iqdNmV5;?7 zv`5=I92t?nTV6Q(u$aE3Tv`4be18&~*gGR$V8L;)p6WNcL-_S17Bm0f_;7B_)finQ zz)+zxx-0M@-4P`Kz>o;NW=qmhT$JG6&q-71}g67iDAJFuJ!sJ)XsjyFOjelMi&s33(kUd4q1il9UF0 zoYXK63|1Uv`3O>Pk+o6#@x^L);CLk8 zvPcv$;Ah@6femM`5gX52C$RZ(OK8Gcqnul4OPqrx{JKmNpWhX>r zC)sAn<^0QJHdF{%LMF1Y*w~Dp$YQiQo{g_zt*4-HlU*(yr-hX}0H@RRv$Sa^=K8Y> z^X2jm{^UfKY>LBZh;|(44MakrJrWOVpSq4&NL?RJQT(fkY<#bsU_%a$MG|z#?jQM( zNo?S}7)dyFf^kNaHLUh1QnV&IrA{O=spY{K0_8bHsaJeo<2?-}t{Yt2iNyJZ2L~ao ze8-R6F^MJG5`}>N=F3kYCDNhGOd9a@ z2#n+7QrNJCBsMW_p}W&Ti~DLkTMT$Lx=j>tPyl9h^~HztptyYAHp!xKVAuy1X^*&* z9y_%`mS&8BB6<8Zz9WSVw5!~vw25G-iPOP1*IX3&Q@Cw@qu$UnQ~9or)2g-Drb?T( zV~oRt7Jfk$qNO7v@Jj?F7A=Z)9?^P4obx2qu_f*}#?J;9Ss2tjKQ4gH%HH z9cx#TQP(nt%E(l!y6ZG+Rc5F%~;EHZUo zV-+nzS~>3ue{Bkzk-fPRhn`kwJ^J^Oq9tn0Ez=g}%XcHldDH~#MPnI743$r?-i@t+ z0taA#^6E(^3@mc_xT$Pp$}Nbt_K@?TK7x_c$G<*FI__VeATNMO3iKmLIJkEza}9c| zAEp6h;gO!a4(ByJT{HRcf%1A<62o&lB6^hw3-@;~bMW4EzEb4G*g zqfCnZ6n!o?9m99Ub&V%G!&96E%ba3(Jh4WA+(--JJvz^Py;K~7kPSc<5Je&U>}?RJ zeEJvu(`{_x{3NOze$Rm^`X|@_Ac!80c5ym70+XDo(xEE<`Yh=q|N0F1i}j*e6b@Gr zxZs=yoY7Ux*QJ6%Kg?fDg;3-#{75QG(0%zD{}-P2`M_#9IUsRn5Poly8l__Wh{Mu? ztVD@eHcSht!Fv0`BLDjMXZ`C(n!hWy+4Nt6*PH4!h*ucx!*9!CK!#?0Sxr2)^cjnZXhg%SO^f!Qd0xK#rNStbNKR6v}<$y9ZN9 z=1BhY43?{Xo6n!g#`bDf5=fn8vkK({{PCIW@v#CodK~Xy%Jl25fg7AIkRf;E%R8p> z@w3OFk4S_$-!cOuWAC$pH8jgux+Siw7XRzNQ@ZAiSfX5dZ zZ2DlOx?+n4zU7KM2kU|P#!W}@tCi1v$ERennWlV1)#l)*X%oD2XwZ6LVr5xGS>(sQ z<4>4qfnHSIh8_e?fPEZ^a?*~$J^1Q*LmI7pI0{ky4nv8QdH&2HB|!PDok!@BWb zJ)H$U{v1!vVl#T;AY!UC#{faTXPKUF&tl^S;Q&Q^;kiaH^kx0ok)GQypt;r<8qNQn z#a1DEx|w-nM0+CX=F03ysTnwwmWjRWzAw$Jr`B#OES7(yJt|0+0iHzDI?HdfXQbU3 zRi11gFZFEyZJx$cWbkZ^#F??AgT~NoJrl+{zDZvwio{`6E2Lz+VQ>TEWGZ_8#DgH#md$%*vjKb^x)MJ$Lyv7l(E zgMXgGes}A!#GUh4o^Hys{Iz*3A-n}BCB2lCulR*|Y#zC;5yO)<*w;~CQ?^)oXfJ#p z&zR2!l70vcU-Na)CfEB&qUdw*HS<}&0sBDnmBHJ;EWA;p$spU4AzuFcd{%rb9NOC< zn87jE?QA92crs5U5ofq@Vhpgl$J- z>|x^@P1;Z7kZXPEEuuk=fI*U&X~wOaftB(ePXE2es!Bo-RJeO#-7S_6{vLGpqeR$F zmZisDE-H}!MFCggM6#mOxbv#M;h*|MTSu(;&^7#17xIJD*q6VP3&}0EksX#Kw6UxQ zonX8R-qm?DKG51Db^GRf)?WScP^fu4SskLaN3N<3HAkYQ=h0TQl%lDnzi1`^NU0Aw zhgPD2#y38TYWOY+SaP4TFDN%u`oASxrLn0KR;eA=OFZM9} z>D@s1LWrk2iY-||V0#E)<5XZF`zQ%U{reMYN30!AnxkdG?Y^6 z_fsU{m!HtHA@(+mm2j675Z0B-rQnm=Ro6Da?y$9{{y3Q2i^d>-S3}ufK-ZHFgKx#@R7mx`3HS9C#u`Q&DPB16Ju(K`{?{NBRt}Uit8D`1|dG_ix`r09#r^hZB zHPUl;qxmN|JluoEZLxsU!g1MQPsMfV>DBmv;bP)pPhK-5YR%mwYMQibxVg9~u>s-r z2(Q0vELqlUOlW|XSY8W$wwRDv9=0n4dSg-M7Gv=TtBeyGJmzCCxLg;81m=^iJxKxV zEROWVr?iFi$)u-Aw@m(7WLyTDv@c#&i{L{SVnY^4-XcA%Cs?;=sGb9A@)r4dB=>Ae zrl=;*)06RhcG{*E6lsf`_Vgt@jV=$3zb#Y^8m{$-SdWNH+d^fQV>>{g*at~ZQ|W1k z*BNloFWxg?=}l!H_PqDSS$ctA_sw6tfj5uqi(T}1?~98RzJ>6eiH#c`&TF9+bG(_f zOSp}HS;!{Yedp0V2rlo1C4jmLJtLim?ZbscB|j{1n}Yp4dke-vGfvaY*Arc$+5j`$ z?8&>{_eU%|5l~cw?gX8`kr9sMI!?eKH9e%w#|gq%1<(!Y_R_E!w|O!(>r$|UHOq^D zGAZx6^ci(Sy=)c;U&f+@DRNXEx>oe8JmAkEnpUW42^PH|UtaCSEt{bH7^yGg)w9Wf zN<2?<<07`)up8sNNY40-uUo`M>K^$se_;_D5W50JC_U_KGbkO7O7-z__MiC)Bq$w^ z1c(xW{=M~Rj{h^?eb|mUDtt}D5#3HemI@iBfjH%BNB6co{H0+yi2WFST$GryJxZ>leC43E}$9wY*!gE@cSn%egmE| zNZkW2BQXCKUj!sqj${~lN)ekJK0~Cw?pb`4KUBo}r47M1R<6A?RQ-E}wk2d9018VS zQnj@%abEyj{Qy^Q$y_Vty{AUywef}`)_3~08kLeX;iW4Ze4ip^8?uP7cRc2!l6g0V zvXpl;?OJ&cX=w-VRm=w6b}ZI>wzU_?i69e_`5h^5H=N4kZI_??0p1A;z20(kjqJvU z-*(oUSM9eQlh^;imlv}n?J>T&n5Ec{g=`{pddz40imBttI|iud+p&a$dTQ1UCLDro zecz)j)5lPfyc-`_>synMbSV5u`Gtz$N({Op#0cW(Rg?6P%sZ(+%{%;iBT|6U>y{=Gyn{}WlPwd;8W|CusGT-kj#Np zC1aa16}~ys5Cva`OIUi$5AaDNg*EASgJ{5J$@WhvOz7h9%sW|C%4zu2L012Q=-@e* zVkTf+1H~!zbPJfrws3JFz|WUo;XmEUVpGq+i;s|GSR?(}T`QalCKQqaCtO`366LJ! zj=P}o^3}Key}Q`+1COEmu&A96YE418!d zH?**j2IIl-*(nWaXV(5F<rTBr=2Ko$7K#^N|Xdi!Vzr9@buiFUv^}sc(DLLk=!&d9&Uu(I%C+1M>03e2}($0saj{bMig2;^rlRbAiO%>pxJ^b48MJw2FyRC%3PLIX^ETW9_< zQSU$^wU*YgQWd|tf=!70BkCa2s1D<%XZWPM+3=Fg#Kj%4d7Z}UN{TX6{&+GB7yhnS zJ?`5cR2|&g?o++8+t!1g?`WsJ_3u6q2L;M~88|T-sll$(xV=FU?EmR*mN@;}Bjh?& zXmANjgnkwmWmVwP$_7yawqYqZd0i*Yp8M}+4{0O$L-()@?MM8rd)Pe~S^e&1!&DEb zo)<|;1S=7dU^=bNy%&lzHQaeGD=?f!Ek*L>CVuf=a3%?bHA|yvo9B|1G;U>C-08Y- zuo_>+tVUrCBEhB9#SpC6GIiFsj4&pKJ$;F zfF`pzRj<{fOH{W_Q2jnwk0>cJs#b$w)M5A9+KarlsGP;i4K4w-cbK3VP-!<(~J}e*S&C zZw}ra0;e~i7V6wismJ>?b5tE^=b>y88rldBbEm*X-E~yjm=USPTG&J#s%f1VBn$dl zaNz-Yp0m?n8&mTsPKG@=lB06QA$gtQdw7b3^~P30l<3t_HjaTMVP7iS6&|IjvU(x;+qe6|B#INc#lSSsbX__&Tun==*O%b+@1 z7ln2-LVs)$)&<}K)C?{Qti#C$@4`=nQKCtGixM02EiN5;XH%W%oz`$*E2v2;Bh3SL zGGWX+i`BWM0Mr;B2C(NfzzdlC^#MR@le;tv;y{mP!TIGcN5E#PV+87u@}e*Ziah#h z!M;b2I@1AnFL4ugaLdpibI^r|Ry``Wwd~;WA7bYV8d# zLDcn7dwrWO%7)tO+Xg(LwKudj^GzjzgvBTaEP_X=t#raRHMXRG3T^ z_EIYJ1}ZeVFCmXo>4lpr)kvI%NG%48T_Xu+lp#%ZnhekYVy&DSROYT+}V8p{4 zW>P4aiKBag;iu>oA_8HMt7uKBCtolMNjwfN<$8X>Lb(KDc6BCCqd~ItI$16KgOtV0 z?f&GzTB^5;i7dK;2odm}g+XIMt#Z*m>QF31kr)^rZJNvo3>1GiJ5#0Rm5W<)j(V?z&J^P?wL$+8q1{ zT2q1-_-~azYJli;F~rZ&jz=Rk%Z=OXmx=yTEP7`?!1n2y*7K_musiG-QUe^07D7&%q7-9Il&Xm? zN!y4hNysNi9is5xaS>r4H7mVNT3lMkNYymvq-_L_EQ(fOsyt$>(nE*U%6q^qpY)I)!h%VF@-n5ZtUHIC(%f1gBAPDuNA8BX~3{54h~4(*(cfh$F1lnShW3 zrTCG~7_-iaN?2`A%>X#hdyD$=M3dQoc+9Iy z^dLKzi=;hbJ{!>c%{yzIV|V;G!#b1vmY#qeia~z=%8WpY8P+snnSkbSWas0T?}&7S>!b6oJO7e@4J80oo@lk8o(A0V~6mqr(_$?;Eb~0Q!NL$4L@&H=qa|}{L zA`FS1BcnIknhO7;pfbE-4NKKt<$Kq#>2^>&ED`SdN8%*gC1TFb5{7T!fc-48;T)Dc z#k8j(dozrc!i?E@9f_X^b|cbJn?e0zbkQ^`E-2bB`oCG8Cuk{o=ApYLzC{u#EX39U zuLq!+j@kqz(_0k2bsCA5$&utvJPU3;n0IHPm(`>BtiQr8>Rk$eAs389`0j@wNT%y0+PQK^%McDa@g!!AH#~S9TrBoP0iH)8@ zq=Su`?3q)VQqT9SWkU;4eq=4RP2FcSR%tQi>GJZWvf_ANoI!P26b1Ps+GdD<*sV)> zk>15oMa6RdU-^)SS&}&0YQ)qOR<+>PrYdW*V1@arhuQR7PpIB}m@Szg&btgaIKE&d z1Lg5p)s=j$FzM{3kZOxo3YuzVBSH!_T3%{}gkTuoY=tr4(kFO>l`YlX*v3sZ_GIxA zsfq~Q40w0aSf|e5^q8PBYqn9pzWuWGn!bhfx2&Pn;_2N=%Z@w&Hksb7v{=dUJaiqK z6b^`0b5cHg9ZNE{z5-m&Nd*}jlP_PG$1B$1$nY4ZE8J7P!~eC8nRwKCcJGij1mQM^ z6EbdEQOGk?Vg>W}l|_GT{5 zILx(+=TGO{NsRdg&4AHiwC?lUz^pQ6OQrMQY&Miv=Y}zb-?GYBIi`&EpJjzD)Sc!z_ELrB}M`8W9 zi9hft8$T(7bbbq!~w* zEaLXZSbzJ@RoFCh~ z**CBbu8)OLk7F-1+7Z!)R=4({w+?zU&>Lw6NTHI0HYKPw2E%os>aa+&ztc_#jlfnR z3%ADQt_qCL-hexXZl)I*Y-d_cLR-x`uN~IxPkkuRV4ZM;TRWO4FMX#FIPZsRyp?XN^(oBxWRD0GU!E} zG4iNDoksV|g!Y^I>6Aj@Fr-3^E)pQ9!^-IT9X_yx1N}h(nbCcx78^dtK`}*bGn|J? z5gl%HB_b`Z2gNTwhKP*07(BEab{X-BUP905jGJ}%XsjXyPOamR(Bm|^df^MhE}

mwS2Rh$WxVIr+zV7Iv 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
Jg}6ph z1LpR2Hr~H}yO;hdrXK+qH^FJ?7C>;8bcZv1 zt*Hyk56&7HMDy#wPyo$hg6|K4l*51jN9?%TN`JNfmV>v{f1+D}=xKcaS3I4X8H8Yp z3IX9sKv32P%5QX}Ex&OuuoUfdzqcd9hKE7cm zn^O27&i$YwaHj6!83Yas)+es4YO1=ZQT{m_4S_kW5K|3qau&o?W62d1XcJtDq8+|L zKk+Yi;&`E4gsxCSJK#$Z4DC2?bCoPIuC89b;RiU3wOK>tHRY#6Hvx( zpgZI)%+~}mTa8^<_w9zGm#(I*x-|{8%(t1+kOHk}*6ctU+rX|yjHAGj$^co0)@L9$uXkWAbkd|FN_2}=mC;Qrqr!I> zT^$(m)q?l%!Oe+ZXa?GbIE9L}4nCLaMS-JGAc|_NB28~CR!j3yr6oz!GQpsvoJ!?W z`104;fbjm(aqklN`pVL9`|GS`l|u_Zw;nH_Kfs+3hMadZ?H5&iAebLM*crXF-Sw7krOo8Yij zQSAw#UVy;4;`%`1=%M3?OMrUHPg4?=%@_zhM+An;m0f{G*S$zxWXYvgH->2BerQdN znHc@*klOxe=kh6vC7osaL1LP&R0zb>&Y~zKMm@xHs+97Da3Dz-evm+fZ#XXLCC4Gors+YNvzz+iyZE}#O# z=-C>FU+aJes@f1Ggfu6}Enm-de9vw+WB8j-fe@-r`2#m7ifbDHzrro^s6A|2pEu|N zinHzu8>e~ou|ms*-?fJg>`CD`?@+Gp;+1#xfi z#Y^61(geC&117Rmm2vOvkbL~;=tqkmUA`q1HG9qNjplaf0OreSyw5vqt}f#te&;(Z ziK>U&PgVbEW1O-rdF~xHNw;$?KmHC|05!)U@3Ogg-1jaf$~j*1E}J^mg*$No@mlN( z#*k71uE0>r_+??=y~{??T~omu1Prab_<$kMEo1iLT8`CgdCp$8oGd@pDWrH4q8n*o z`T71{HUKsMeJ@*}t6s}T?PF62@Sw`Kp*37V)9?1N0so~*`(UC=#bb-A$0;Bzy6Mg+ zD1M6-LG1!t?;w=8()KQ)8y@Oi05MafN9)aw_6%*x79$ESkaQY7e85F|a5U1CAp+$L z5b45zv0tzxgVZQWI;Mk7!;D&S-^ksyEG1?^PGG^$#DxwpIWX?UUUgayf1{QqXsh|( zYvJ-fi_fcri>9aFTxwZKBeeh3+ybr#GA9jS{{l8B*D8dy|}vC(9vHCyAs?pVvHN813M|DWYFp#!Fb_L3AjXr z_a2O)LU|8yYj4xKiL3UM3kai|guxM&ObQL%t_t+nPSd9MN5~gYO0i`%ijY^pp9J*) zydE1}A0i4SMfPT~)FW^n?Wnkh z7Pa&8_t@z0PHaBF!<~Rq{9oT=DdFvkN&#BLzk3g=?DeoXvTR2^#qy(Az^NT3iK?=O zgHS2GrAM0JJE3<>577m00sFr{pk&fhcyEMT=vWETJGC%!CFs6}X)7)6D9HCZ>ChBL zQt}Ks(QJ3xmHs-11Zs6;8U)7CK?7BgbLki!P$g@53KIucaX;0JZ&+dBy!4duB^;V= z3~@H=aCB?!OF!ZGvGqy&#F+b`)Bx9;ho41S$9XNWXV3*9?eLxTA&FJDqEksNGm168ddzDW`C(w)pG;LZtLGVbOg`+Ctb>(KzZCcmY>h!6F-1P<=4Z( zBQ?Vf6bx``g}cWlT3??H;*bz{Hsq{yr0?a3Mx$#0AOhMp8}S4J!J;#~!G#IT%B023 zXeRE&g2)HzalisRiQ8^>UxDVBvGOM>cWu}Kdcb@queqqO%x{-RYz9}i6!*lEM{}e5 z--xxuT!jN&!cw8fCd&n@1%u$rpiRTlHp0#%yiPM8HE!{P^h%2_!KQk)XYnQH4eiGJ zrNt+uykiQo$=wUY=|HwM-g(&XS$xv@i64$ojMa4d3Ha?eU;QVQk=NlX1AW8OYpzEV zq|chn^?*Pl-@8zd5pm%DkeYNBCAFQN>zEY|N@wknjT(G(U#;Un27ZB$c55^|pTSi- zK0bosQJ#X36zDgkJ~ahtjK4qZJgl=rsico|0t&f7B`vs~J6!-ciscUuylAjk4HJ_&|8ed6I-v(8uc?Z%J%D}VJba>e$?B|$XI!UxK-X3+pzG0X$P&4>U2xa9#!}!k)&U*6aX|v8)75jFxu`Ai0ly0Rm{xAZ(0o6_DLy z3e@SQS-oJc(@%n*iuQo!{|R|kAc^&{n(RK_^?ib(u0QL5+Ct;!@o4fN@0LlcC?&wy( zu)~_sEr0+ThwmUji~tIX5N8kNZAaLM*;$>mzPu^~)lt~q*$lX|+ggMP6`}MfVKHaJ3|$utK@?e!li78*5kdS013TN+XTPV#P&8 zTAnJbn2qj@h{NnYNMxC&IL&NZi**Q8MxO!2D3rfj1zLhV4%Er^(8A-J204gnrW(_HwzkpvGfL7rQp4@WtdnFHiyN$G<8s%&cMvYnM8B=C#U(OsLq?zn zcUt52D{xwsf&)W#-x-K?)I`4t)NkmDmuzxtvhzR&+N7~Q05Jj3rLnHS`e@0ak{cc1 z!R&C0Izg!c=~2G?#Aan3cmTMfwfA%6uRK7wCJZ5kwLtEPNlFA^Cek1zwNji{OasrS zZJlOWjncb_=pLo?)<1%RT26yeD3o7BkiaELzd>kQtI5}wb&2x;F?rw>EAi`mBvm8r zp#{!rO53v?PosMoejRmiy+er#@Mx?QAJQ2)_Rbr0nXCmH1Tbz*Rg{qgM!p4jk%H#w zn8=y{6YIXe!*BP)yV)Wd5eni^vPL%DC)SXzTs^1^5bE3Dy~*;9Xv0OMfdQAw;lPoq zx>fFyBEi0x_7N%z6lBY9zQM!(UlIk&3mAxkr|BxX`+mH@(jvx5t^#yzDq5hzQee@G zu|DyaQI_kX6$9)d%FsO*koido25UtJd^D#^*{S3W+t7v4)(}J~^MytP#6|cO9XLYm zKv1LMYVtvAGnCOq)c$_kG1iGv#3@%*&PW-JH8e?@fq^;zBVRh~E5sx1taT(-+DRC{ ziDyG_dt#&(=WjNH51zFBH(@j{D#YB${U5O82Rd-u_hPuZ>6Dz*$Jh-(bV!pR7UWUk zq|NZ#S)?%2U;_n{4K}d&|A(D!L)r46X~a(R${Vb&?(PACe_j#f{ortq*uS>c#2bezxcg&Ollvm@qSrQb8mORZ_ZRrA_WlFEMi=42YmUM-F$IwS zhU0V*GlRMyvKGJurX3ymhr{X{NwOiw!RP|5RGi}*FurD?8H!?T0aPxaL<+U8f*7y+ zc~nuBkq_Twb+pdN$H*NTttkfF@ZV${;Q)F-P5Oca;}adF=*b*DkWui<16`l4`>cg8EeQp@4)-Vnl++ zyH|BzPt;Xx*)C!pSk7NN#)ga;vx{=WVII}rq`0smD*$oRTF?>zSmkZU*yFl`%lVp* z*&uB@mp*3Gbe843@nfiZ)bWmw*)T)KkJL5aFXe-ev(eMuX*0vmPkX51zlu6nbnFI^ z=%Z3GKTsn^DD_XiW#cNngDCD=UU8gd_IXC6%UMe4Orn*%@;IB(r(J|!6ZyM`Z}^ES z|I4l6MTYAXepk0}6;+lfQBo#iZb70&7C0LHD>1IqR9eqcu06^6j+MVNYZ6+`n)Uc= z#9zRP06pPIpt9{KMnz!}1`wZl5=s)C#_eW5cnQx^xRjI?9P4J|@cCLIX71va)Ji(i zw#Eo4NUi|-?!>I-&aRz0|zl*0b zWLTPs5VI)(#C_YYIYcr?TTWBklI4|XTUYPo-X(;j z^-7XWKe3iL!g`VN~N_c}~H<6dv&&ydwL=x~{mdnH0}K13I-iQ!z(WRAY6t)xwp z*O`y4|BoAj?Hy=w5S&xxsY`D7z1d-1vl$YiSj#g?5>RFiwaGbc5e@Rz!n7J%%^O`;>@*1?UhhezJtyKV`A@ zZvlHc6!WDsDIdrsccE=!lXnuqmZTemn?kJoUEL!vn~p+PA_aI>EMaL<#U=O!oh&tj zss!nY^ce<=_tAi@DUv3B22ZJt0$6ReKxym1@hKmGv=eArh$P#ndyox<(nZzL5G=VL zM_j)Aw;hD_c0T(w8(myUAMh~)>WYqt4kPhL2W}n#MBcnh1q;1iDi98=$SQTa;F&Iw z7>~NtW}9a2u&wzO)V1>Z(-5V;CmKDln7S?sJr$rN)goMr@LP~!DG@Q>7X2b7-H&Bo zpeP*YkhRbI3pF-Y+m7V82Wa0f(_5PTg%g1B7k(K<{*+WiF>RwjipDk`4xRXpzq5fW zQfcp&*8+?{qtka0SR@riD7}HoV7YtEPOVXH(!2udLo49`Ty2l2eVOhLHtKuF$@C+MnTJ<@td_ZMzgu)WVhrCp0>WWi_q{rKY|Yau zqHRaI=1i29+VsRCzUwnKC%V&{7hT}Zz9PXjoV!Mh&vV@W8T+jvN2L3oLT)|F%;7G4 zk>jUzh5X1__NKj7#MUn)(DDU5fx(pw7fyw8V}Sr#B`84(BW_G5LK-{~v($=atwTv& z%@VEhx-$qK%Vd#YF%kqjA$2tl5Q*fKin!?ljL2HTT>y+`K^jcIEY?yYVnTlA*d3>e4rOWYgtQ*D*^Y{Q#%uwr-JhWr}EC z*{ovuwJKs~AUE#>nFwiwv`ANM+3@dq8hI8!exCJDFQxYpIGz@S5cW?^AwH;o;2!8= zOD+&ChjowB`DpJcov6)6)HXis75!+QeSsN67g5qZyz~Ma)1wsc-3P?^II=mfEP0EGprN-)|ejMG$aH6H`5kV%W6*v%3z_QRWK)zi4soGISR}qrd2#~$+65yofTZs(DgZ1#ANZs*}OB9V}udY#4 z`o2!NLPC48K?NbOD2cC>qYzd7n5*5&kn^f9U%|@#g?pLij*i`=o zGz=_MquHqOr6Lk1`Bsk7y&LHw=dE3pf9X^!H@Y_U10twe-2+QB5YK8*CMDgDPv@V(^HFR;Y6E(RG#)5)G4WLG*1 z{_z5gO|M?S)-v{j^J`seN+7>i$sZ>2lx@U-*j}XP?wm9mjI%Tu95f>>~dG`wSnBWo+`G#_T2z|1C21c{ueKeVVZ1T z8(uIRecSN_B>sW4$;R3zKh#2%)8+Q+0Oj*q*ofZb6c77MgY;QhD1-_)L91wC3A*=& z@>g5fOkMd<{w=;o{dSE2od)4SG;aSJaE|Bob^=QID}195qW4e!mQVSTnRJmudGVJl zF@tE^Ty&sbQ5J8Si{k;2bco_%Ps)h*pM)ZU(&dy+xgpm(M~hi%J;x7!$;Rn=KE=QP zk`3=)GYk&+K`}17E?LbrQ>$%$*A;6zAM+I(ADOzi)7GQrZf)jV_!L<66`OG%HX}q` z4AOZxJr>?1$JO+O72#-1`O)5-mmJpyuGb}*yz|9dh~qoc^ux9o!s{J#us!({2M^)! zxktm~uBAt6`qtpyBP90DZb44t-m}KNhilGo`&Vp8M7LXc`LeIsZieWW;EW$W*E}!`g8&P;5k-9F5 z=YX?H*Al+6jV{weFLt)2ib^d zZZgBF#_x})2j!+0sD`A}7dubjM|( z0&?0tyn^raGoAH%xJ*PEr~O)3`8l9~a#z4n{16Ezrdh$+7y{U+IL=m=? zn1fQ@=?rIs9;*goot=^8pCd6L$@vp_;{zuj$6a6M(=6xeub;e7DgAOR;A7vXrj@TVqj?%OCp)4lTXWqc#4UY zPYBtikwA-*S-TGEC7+Y9S~HS}2Kjm|x&OOoT1+4U?QHqG=E{~Bj+ zSN!V`bwkSGs8Vm%weKpvH+b}asi+T%YgWD@JmI24O!%`zs%z&PKEzF#a|0*pW;Rm^ zM#o&&uRce1Qsx!M%;XOpw;j&wdI%fga1PMP3K0rP>z;BtAtKIsS}mfX;<`aOd0T~u z3WDp}E3M_;d-87O(>Sc--SA?H1=rWj(xs-OKTOfgrQ^UmJsI#w-D{Nz5*~~;h}n44 z<)Q?oX@~V%b1AtF0X*hX6CTiO*7@!W)@W9QdEoT(dqd=5^Kb|rPQV^n6Ib!%wVOfBG62W;q@DE!Vc8jb!LGS})fQ;X&z8qE zsd)U6ZhWHGFu{5DD4nRK=u0n@XKJo}AJpX8I1>eRe%GCO>d5^--n9l8y}fW%2MOyG zbh2qTj!=Tm*RM4kp;N^us8+s>0|@kXj^5~@sq=L@!SVXKA1Q_FE9?jH*;5m0KzQb~ zGtd?fJ?xtRLIm8&*B_3-=CP)ggdMq6!|Athl7oeRY=yd=@Rl?m;{IsOp;s1Z9zZPa7n*A<7Xg!`YP+dNxZp0)6* zZ-=#ckE!WkQR>MYCDZjwhOpm{6%!i2VD~E zu1o1t^qqjSB1=yzWPM8(hPG{?QP3=L~$t zmd(|N%kWTqY#CS~sbFyuAOejMaJEJnn~6N+vSFyPP`>3S@zl$P&QXtqq-*H+IexYH zZO899{Py8@FeII?xNNxJ+=L|L^WOY;nooQ%hW~WgFa;GEc}1S#S#ZUW*jb_m`@Mmb z!R=^dYZ$}dx?-54+qRsWelhe5KPN*=Mg!(UWc>v33&Lr}FNWQwN1Y@Xz?{q^p5WJh zf$L@t=iJ#6i0F~By;^l2TUChF;KO}D0)7r8=}t8eI6*De zP>OFJ{d}LjbZeIFupgBDBl(Zl3@M%FQqkCqfi@!{U93&uDb1Lo-#|PN>KT!X35GR? zpdTX3GPNzsHbu=Yv>0jCT&Q2UHHSA7Rt9bM)1a8VVNsCbsyg$qGcszuxPlW8}cn-I9IM4(sYd`{?T_{2TQc^6K_c)p)Wz74{&^^=` zLX)%`>ahuY-EW34(C8Dtq0imTkNgJ8zeDEoT0H;hH$#_@GI|4J6t52BmK%nl*5`mk zPg=7&tt!aA1z^Wo67<(VyV=|UYj^s9Au3P?n#WnU&7Q&@zVJj6#{%{NeC-Xx;Qs5a zs5NLCKBt>8I#3MEo;tV0vXujl20j1q1{MooK97yEPXqI!)X$GUS8k zc?WidU%KZH27O?E5pCDK(?MM*aPtJ*on+Csek7idb^tbDV*|YygFO>8Mb+`0<1Yv^=t`Ny;+ElAtF5XYOX^0(SA@TPlE!m^if*bJG z48CXyRB3B#l|KI$fBkouDz+|5|Dgutc$8`|6L+-+QwRcb#N`K1M^3PU95Y<+LTn2% zPl4lKNN%)4WeR+)6&JyGR7VU6(sMurDjkXHM`UHs0!@WvQqRRKYqYuSU249P*Kn1Y zx1y*kW;ukSf6*skCo#2SKlEt4sd28`an!m9D|#K0Fpirfa;q5jCKzG92Mmy@8+e8TyUd4qdSo$F73+ zl6#M3gC)SXu&*niV|)w~v*kzQ;Yi*)G^lg@#b#IIY-ER1b&WY5Q!$WI@wGnaOfE>> z(efVky~ph=L;Km|$Jt+XL3Tc0%epzK!z(Fws|RtAuS--jKH+N6!?EM= zn~F{W;UA~czeS%yK;;;Hl_!ZfKx%(0hmsC^!EuqUqq^MM2pA_D$_Sei9?viu+7?x5xW&@D&cvrE0H;gJCQBuce1H z0imfW5z<-QRYE#Rr5A-!YBaeCXv(qzUs&Mu9gwCNPH|+KpFmbSuv0qC1ecs8@>8-) zE>Xe9gcZkTDb+Yj2>C@xb+Kmc2cE*L8+j2+BylY2Nq`kc%A8 z&>-H2a%|(MaTCO|1Cb~#0_2GBY7MQBPVxRpwL7ue3e`vt-Wq8PB6%mE@lDuKqh=H@ za$4fh^5^?JHHh`^qz>pP9(`h*x#M~UV>l)(f32z?L%tyJqpH_oI{lSxwq#EH= z6-N(h8jS_zRF%m3XvH_sk78i*_E-zmh%w7HfWB%sPirFiOq`ZqsYQJUnr;9OxX}lj z3haycj0yqUO35V(2cs$J1&KvD4aH9dt*Kdf55}Tk^^we2Gzn<=jBSpbi8v5Z2V+`J zW+|YW0k#=bviNH(Hw3dgiAd1F$sHQy*%|Tq>R^_9$1C^CRs(4g8nv67hzzo9cA2=g z577$XF#%2uKHx^*ZO_Qhuj4adMZr@Hj-}`$DG>jcSZyROW{b!AaI=vO(tgLs8d=nm zb23S4AV&)v;G`L=OJwy4o$GwPgW7=}NLOw%b)+1^C~^_HjZq0k&KRU{*oO|~6HLd| zl;+Z|1khfY;9oKPxRDKT{(6}vBNjJOnM+Rs&9*D}o`9o}fCBM!jM_w|b-u1tWC`&l zq9YaObV@v&sXQGZtL9L^JF+jO z)p$T(RdR{4&^BC^$c&)LU2nqPM66*{2NQ|gq9v?Td&~Ma+@P^7EkgMeiy11hiy{Al zFm0PHqxF{2Obx`-0-ezr=#Ag_^EiT!ws8{qm!j2dU!b6KGUzLR&|?%-NI})X)Tu<3 z|HFg$5MTx9Lb3v|S)k~*cB{wL1alg|v?Vn41fw77HR?xdLR1Hy+2O?yygAstS#m2y zMLgJD@(1QgzhV)6Z7!OYoG$wu7V+CX{LT;-HTJ2sDq)>64LmNX90qQki43*K{=e)6 zYSaHSiXRPOv-zU?v<4n-Vp+y1NR}nyqxe!2OQJsdqKOUeR$WiHEx|XeHHs&r2wSx3 z?&Lq3*er@RDU^}k+!o44IeqxvIuWhIv2=1CiYXoVjv*=kqP=^z=wA0boo{Bf?UR6> z=}CE7U}2hn!*znD1{(VqTciB;8otRBxX_!_DX_Z8(J~uWZ9wHT9O-yu2R6=3GD5bT z6sQ~Z{@j6$2Y}CaV8e0yv;&*jBUWl=?BSkty_L4o*n*0I*3rIjO(9P)vp%}`LcZ9{ z2I`^<`BpQFh>j+4KAjW=batwq-q-@_-5_>f_~1f*+RR3_PXX{(E8zGB2Z31F=m?q; zRW#_J;P&XJ#Z}|vvJ}L|WOufO4RSsSh!bk0`aVHjoZ1u_m2kEAxABg475`+ZQ0sg9 z9noya*6dGJ?dir=+Cw*`(y~msx#jr;_K2R) zg2m$G$pQn-di#VDuZ#3f`Y+=RXo>fmiQ+|gyPE@fM9XiCGWp8HU+cvB0i;hlvFCL5 zNd91FHn7(#H1uQ|Rg@_i(7!|J^aui>bUK&7D>}1Y?PHV-Xxc4i&ob`o%))chC{0Ef zjWT!Ou?j~!deR!Phc(x~{3vEs(zMv*&WLvB#*&p;7ueB3hw11bM!=hlD>24g(wlOb zbE7%~D=M(nZ{mLrW5XlJ>K#G2Y9`BVK{s4;jJ}3Fe190r?b_TOU1rV=5I9uf)M1O7 z!5&xhUg2y&H|p&!XDmiib7`=e4T^xIFF%H} zZXv3qMO9nDJ9S}+9ZX2(Iw7rB%_Rr;+%7C@{3N(PCQ;~#{Zig>boQH&UTN7WlzAm< zmU;x$`(i*h$u*^!1UBOHZ@RD|?H&BCt}M&BWb5T&>6(r4&?4biHauPPdP2J94DO?F zpM~EatQ=j9Ghi+Y6+Miz0?R#V&9HU`$eX2%?=V3=zG_~-4}dHAVKDXxcRfT0s6LGV zXFFH2#=M^9$ORT(xYJHT12*XB$RrFaIV}E`_x6JexG1N=b38Po>Y>gx^1?RKNw(nYTfq=C%b zxn$}R>bedCMQs8U2^}Zv!Ce&?1K4%$M0Zj`hw?y$R~Zl6F7l{uEMel4pQ7GUK>_*h zL|+Z8K*noQz-Ze;hp!ES>fXD_zga=rUg%{tk*B(!lRw&xMRk%UsjiF7z?)}I80|9S z<=t3xrwdr5AcR{mM$v(#P_T8P7N5?osEcTZ5VS2Y|1nR!*Z2tA|wM(cjPK{ zLYu*hy0iXqh}ULsu2H!OHAz;&`GPxg#P5i#R>WKolOulQA9QDZJ5t7V)Z*uXY6*a$ z2OHOOYB-HrI2`qcScC!i*4@&4K@T=iTgS_KuqbvBGP$Vduk>I&oO6*1ln3wFY0X)- zhw(-N&HGeIC~v~ZVCE)?@Gz*y9#J~yy)gvV9#L`+E0_jW0GqAiS$}-Fv-l|DL5S1@*>CP5KPPoP6dS6s_d{+} zk1OG`pXkZLv=uzOCmZH`l;UPYf?}erwn#E&2*5P6ZI%TT4IVvx_CdZelubOMs_5v~ zHr^x|k9u&OS8fI-Hy*acw)tN5qe3EB*C~kqy(gPwdJB3EphszHxTxiwdolP|ZV5R+ z+@nZ#is`-B2xr9kC@Jfn-I-bI61y z7kaX=QC6GGo5?4Mvpt#JnAh(ivIZBDOb87{JDf{iMZv1g2JBYX8jsju+*O@!(4&Dg zk2Q7e@3fEfq&)+djz_R~DyiFCx`=>Hd#<&snoBZe&;cz>fYT0l#O@4fq^5Jnqf#(6 z!7f*v=vj^SYS@a5We@hQw2{;gqkd3Efz~Qc0YD<3a{C=v6!&B{5=ZBIqL{^LAU8fL zZDFZEe1nP-{N;`TxkA4y@X{mq4>{TbIXd=`*^3_pqUrYl1?a5w0<~=BaC&-P*CV-Fy0w#W~Lw2==R zbdwaTeJkJTxHp!KfT+={FB>L(YN%8X2P1F62LU{qU^uv|FYAveN?+Dp*Z4W#)0YjR6A!6@ z^2rMcqI}ht4auh}kvN_s7yPjJM`womSN^gv2#jg7F;4AJzLn@~e%@A{ZUF(oJ;=XV zK&fNGJ^k3$Ig>Ymvfz}(F_~;IBogFQ0lCMu$=%(nZO-lmmbSUN7Z`IJ9!Kp9jH>pZ z&+N~}T2$R+gs(PRwRYs&`?JyW)ljTZ{9nKyz!HWzYCCfDRQ7Lm z`hSZtPljqUMkU^$9x54GZ*Y;^>>TmH3}Q|ZprR^0uNlBX(YT)uV3VAWftwtjj7IRw zAV~}29XO`k0!wjQSs9E$W3GYzFjSi$#YA8ld1)irG(}{C&G?eHN_L zlWu|KQh9;VojzD)*i>}7)HIF7cc~oy1OwRxD;i%GMYQQ#IXFO_bSgAar<*2*=F-1Q zijXDVK8VF@JMiK`EUNtt!~*jW2Q~b~LG0n4lE^KyFiNb1H};4uqO96%7V(C1B^SU8U!%0m5p;=eYBRHyMR_>`z>9X|Y4mCD)y|0`6rVrpb{ z`T&?l1SSa*bt41s{M1l3Bp$3Ur#gK~AdncL5gvltPK$1N=BX7yVLW^o>lkz#m>D>X zjqGGj@QVue-g0Du=b{IOu~9(k^TXH(BXu?yX3XSY4Pz5J1yC&Ur?Z_xCd1;HYucvc zq}-`PquF-gf*nM2VR>M?BJCYB@z`QQA4&FRt=zKh{sQ#kPW-ocmfoL=0Y%ed>~^Kj z-)%E@Q=g;#HmYJsN#*wqXUXJS>BZr!w{GQc{OoX+pi6~!z7Z^z8nyoj)|2k(BQUbS zgWw1jZ{7z@xcN|BwmbhB*~1QxV7;{8^G`>B14gVRCbFISU?}=vTi$`iFU(etQZ>UO zTB~`r8Jx_~80bY|x7MzOwaBqiN!yLC6%wdD_=+taS>=k?kqKJvurnAf>1TMh68VX@ z&0mTl)Q8*V@$b3*Cm7n|+csAgF|wry>1v9^o&OKZn9_}E_~Er%&}8zy(gtbz0KjnO zN-OZUVy$f>kn8|G53FA;$kuD7XPXa5v)bxqT?%e3C#+!(1P9xG`EBN{-%JfjBvrJw zo!-+mZ5v#u1fT&h;HN}uJY*Cbx-j@KHNG7M2Wb2sSE=1Bx56uF+vnIO#V6ZVS^a%7 zqOmRV5yQ4$etZoU97x2sk798>FCyq@6E3hz_8Jb4+=t$0({v{s{^=K9KMGtAQ4OP6 z-}o+v2%eGn7J%m>a{4!TY%^r))4%X}NQG`)JeoyXK9fQdJWpY~v{32$MzdJ|A*wL@ zLugNbMGnY{P?R4=t4l8CF>GM2@gSA{aGTOUxgzU98Dp4kNk(HKvS88-X{a|54a9}0%!?D72PF|6}#H(*bQ84l<< zC~aR5oPjz{0R|jmig1}0U;YSbb=m=9r`2iu=+;vAnTZ%p!D${!1gF`3g+H6f#wRUC zjcFmY=puH^kugD*?SMq~;LEZ@Hw?w>Bl$Dh?T7g%cKZ1o^{}-adWDB2vEI^%#g7Z2 zd`y#9?2go1#R@(%i48KU6#d*KUYx`t1{!-14XnQ;TezWwG=`4rzHpVBm0QX0NZLNh z&?=HxPwhYXS4k|3Xl2A$mJoaX4Qj1L$Rj{2Fa8YOdD;PW3McsqcaLQ;qY7m?4+Osc zJ0~b_xI~CaLuC$Z(v+n&1CzXdEbHP_lg1+Ht;lWYM$@g#16iB2YII`m;C`FZnxP;I zKC%Nvdd=gsM-JfO=xJPVG(eW^qJ-p^pQy&IE*ou$GWbMOODRyx5V18l-^9Grc0o44 z4txejZFr7?)Hd-TNFnAX?kWRjm&MLA2FFmk#N6bn>+oBb47DKKm{3nbj8E8v>&~S492urY{|B zh|OckmzQ7U@#9$-w~l9t?X2_DNll$HpFcXDC867&8IQ4WkC+a>hq}5mZ;*8|Up!SUgvlKSk zLarzj}l5AU^nlJ14RJVWZL20%J18lZlT`VmbY;yqv9p4-eOaz(#S>JcsGX zeMorp0bIP=)U3D17Bfn^JFMKk0dG*+U z6%Qv}70K_fSg@&ES^n?EzYWFGjGYx1{XW<+Qk%+aC&TI`+_T0PbiH_Dyo25D`d;h! zMM98VwW4crA}VlrB)~k8NEKl3jKeL(8rM|%QBH2wEY){{+)W4!nop$p=yKEQncN;f zBYq4&y*1mGLRJ0sJXICPElKi%9>cdx@5u~m7GLvwr?75tzo}WaAYHQyzu)jPFHG0; z#&0x!A1+GQ%)tE|erzFsX$p(swNqF>9lOSxr?9BlZ?1y+iq3g5kHf1Hb(6HFTv3Za zJbNv~9Y11ImLoI{&KbvDz>1Skx7KjP(#Uxl zn+)nYpT@@G)+L?gX+69!okjJ$Uv5>`d#1-LwK-y8;4OvTviQDqAa&wz(85iQNWm>f z3{qn#&EyBs0g?I&{5E-}TSP~HQtVdwG)DvlqM0pejXBDv$lu&?aRO)21W666#}oZk zgJuI^7yVBlG<%Lx3vHozkH=4CvD&?S4&7Y*!Kvsaf0l*|t-EYnneEw}+=Q#1H99zl zEz7uxE3`=q$z5z&hL3J|y`5ahmIc!lZ&*W|6jYXh!xtw7!6^zt!r{8zRjqg3Oj&+p zVU@lEj@i&IsB~2YwY+r0o37=pGQIVY51Gay2fcZT2#-{@M;jx-qdyQIZkN_@C4ESv z3N<4dYEFH&*u+;%W78(>Mo%zje3(N%EVg|u$FbrQWzcMB>~XoaQ`ArH|3peSFR2*vP~YomADc3g5qUt}v|lGp`%ChU%Cgv}D4 zc^m7KT(72!4Wy&@hS4bhXsinUQ(Ofxr^&V=*Iznn88BzhHXz7rX+? z`K<+0GFi6xjq9c(Ws{n6Ss*37`&0J(Z&E(b=T1lOZdOzF3Z$fWf68~i@|VeTU9cl^-Nd&Bp@?$J|f^)P9j&LVV%CjRSm)@!6ijlVV!pWgjB4+`Wg(WoMUsPqj! zeFk8PP*cVQQqsFW<)>c;V0vT*>lGWV#%ws@hl$?(F&}SS*QQ)j5ZdmOMSHOTNb?sD z`Cb#5UsLZK@^U8DLdmef_7}0*Uh*g0iPRSw$+)@Pc^mtMT(qiHZ(jf`? zlWPNMy_!vYAe%;+&DZDKVpwKlrEHQ~vf+DfXXcR_m=A&(G#vBS(}edN@zgD;NmYwV z&MA>K?A6FG%w)YSzj@U*^H=Hu?_ouyqSgHF3FMb3^XsnW=Ska2jv~@7V)f`#$hoZ~ zAOVaf02jjZgj&yHAh1n6=c+lI13BL02T6#>uN4Fuh_!D)V%o{<~D5Oen zY+amhQ`7xwP5U49x5-xQY0nXLpS9MM@5o|PMvNP8H!c`aE~OtB+H9&F7vl)tl%pfp zNC`FLVqjUD9`t_6M=;tt;X^OA-_9+wSl4!qOQqOax0J`vViR$6y5>cMyn^2@{I=tF z6h93gUaRZMpP9ub@N2W!k9|Kd6=(~54#_&YR1wK8S#W^p`hX1^-dJOBMI^sCT za)*9Id48o>k)frR_E?r2hwwaa!+vdkCFV25*Fy1N6z9#TV4lBzuJHspX3j=Ou*inBy*EUy%bR%4yH=Oi zqx@QJpERRH2Bkg?vR8whbyI;7IN9`}p5kA?w^b~_{y>okn3X0`v_K1g;O=;V-AL4V z7C_=yasHno7CJp!*EQ)Hf#bn^;yl{gDi*<+M;_rWOZ*KviSN|r3$fL&L`3+l*W`(E zEc}aObWtdZ^F!3%DyGb!Z*(Xr@;8W&VJIdJQ3Jms(c{oo76glpDCDeIiAV|MmEueK z45!OT{Zc+sR~CfX>IlKZ068j@3DsO4?e?~Ud5wTWkMCTIZ{YM31ec{<*jWsWCDf!w z!K+lsFvI}V)7+sHYHM0PO=GLYMZB8E*X6M8&a)J9ib5t6IpkFvC?ZKbUc;u(kTp4) zfhnFZPy8V9mf%a8VDFJ594ZiYi!wSFo>G+eec|QE#`lRhBjX`f=NxgnKb8>+=6&Cy zVa3Z6vGcT9{28Sw@#3y|xaa1;Ti5Gzu2U`71DyBSs@T z=yb%TZwTRez;S~e8Ioq8?`~9F<7$j`h3acT;sx!+&W$=?52uYHt!r@;8V9O_gc?uL zg>3V4%H{d)VD~CLOm(pLBo{W)7vQi8)8%#7mf9EJ2d^Qc?peBcnl$aI9~GUkc&S5f z;ZIT1df>+m);BlYEA%1NA#lWa+gvt25g@oe(7MO(#RCj~7nFBVX=xhU>AW0=A$}RdSUh*Pp#n%>d|DGq~!kjJ7A^oJ=(w zRG@|*hADq-pSt8aa=q4gv>xHet6hP`j$ z&){`9J#1GW$RY>+LuI5U4-`c3><4cW6*ZMgD6%~}pCvjYh(JDE=nf6T!-C4gniPWQ zFaYy~??%eX{n|#{8|5My#RBpEBl0$c?@>0V9G%T8r8kU+8V}(itwsv|=Icx{-hRFkvv=`sx zV4{*7D6ZprmEsC?dG8I}RsIEyhsWs}eweO3572ege!7m|hwGBf;dSyBdRE?g?v*#g zZh7mwL*9lwgWEG(47Io^X_{T9obo}x>oo43G~=#w^e*YS+F-%67XNnA$6aU9B-Ms; zTnX}O!znyb7q2$d`kxB)bMGzJR2QGaJ9TgMothdj&M-9Ny`o;D$d;yeTl9))Pb^^3 zPSd(Jo$LR%s#49;{#etCSPjVj-&GJSz+FalB>3Td3w*q$@+@|R7}0z5FjjDl-+keb zZvnIEv=kdy+|Xye^1D(oT&qv=LvrYY!y1QQf#`3)cPsKqR9 zz>dG@G~o5{qP($Qc;bRzsgDAmxMrQp(41D=wma6-EFn?R$1GoAgt(39P#vPZ!(sV>#X2z=Vd~KAy~s1mScKCLU1rnW zZg4?-MaQlo^rA(5b4>Xsjnq>~GPIAlmEHE1?6$|cwPBLmM&Lp6TQeRc$HmD>2_!H- zh2g?oXdzC!MLvd!+aZXNXH}tJixB=~8B4#HBxZ1%brWYzo?LJ5v~FVN?YOsJH<7Ar z@8Rt%Iw7uWb%bWEQ3T`BH#I^s^Gfk6dX{^&1&6SRAL+3$OuRZBC5U>wxymh-;#2t$ z=3m_Bo+T_PjC$ybc9&lw3RSLGnveF?*YeMouvOaHL$m(OVzd#DY)FTk67JAx7R-0u z)Y#)alcTMo9-gypEXI71z&Qnv(8}a6;nDNAZEQd=;d6Ysg*V#Rz?PTDd)N?X{a3Sb zsH0W9nL^}FBTzfwn?#yVu^qJ1H9i`Y=yL=?>dc1zfE>yAMo}0fw9O>O)#br)hrKI| zrt%7W>L>9kK1f+upK#tgDW_lnq_dlS5V;AVSM8m0{P8vzu%%x{?38dm+aE}$Jmlqh z^~#qCS93%p!L@)&2HRbzRL-xo&D;oqnl{SqA~^EM+@AWQjjCc534yYM1)enCZ_qDy zQbfeFcd&}TBB3i()(TUIn97{ocZ~HAhp$2rvjY=XeXl>f*0@pKi|ED@vci*-_BJ(k;G|>fW@J&(BcE-r1IOBVlKIL z4mQFW#fsl~;Zhc^4dEM>Vor#&>>+t3oTm*V@Gt$XXBu@6hy(?iS+?*^=^8kR+ei3Y zFh9RiLC*KZ8fVeT-(g}m*as?0J*tgnR$6l-{Twn1vE?BL$uuaBd}Kl!KEOrw*HU4T zj-E330oGA>@<%@L0hZ9=PQw3pZZw}ni?06WH5si@~eyoo| zemMn@=paW&hDw~S=3K`BY;-9Iw#63FJpQ#jzYt>YNR@$oXG@YWER}5xg8n$U$mH0J z&GAm+GD_9PAaJ!{#2iVPS9t|7o-|`lu4i27eFRi6_Pi!n+2bJD4D>m0x{5_i1Q#Ys zrn6Q|kP=k)E_SAz-e~sfH;$pL_fl%W4qCuv8%Y;>f}HeM;^1J!797E1$2z;Qb*h9k z3-Wz^4*(DVkz=z`vZ-{TCv>YnAuUqkv?@8XhtJi(EX&LAgmi&o7g4IYbfKpLo#_8> zNe8t}d$>(nJ0-i1F7yOxxRJklAL}we<6>p~&XSzr4KUvXso*@imE>FoHi|GMh3?=HxHf{ra22H}l12x2 z2VtUteQK**+z-RFf`ZP5bZpysD$xZeU z&s4qKtHG@+SV-3=JSsx6vTvaB%2Z=Qrb(<6eEABNs{K1Zu!7yI&EwH_)|IE&*(egq zwdVDY(1i70;0G8u_Fmv_JL_pyztm%3kb#HZva@|!-Id4qT`SqB?pGco^^`}yEnTyf zE++gU@Eg31zp;|d(bjU~DmJ!D$Mh@sSX63Y>^l(_q zX>SO6+tmuAJyMy<2R+E57h!lcm(Z3tvY3Aqci*ZoNE28HlMP~WIm7gh92fj&!aJ_f z3RS|`M(U4l=1oziMkFnaaP)yRG7tR=M_7bWoGj5*MzQ9I*&X;x53|FgZhS_N>MO_W!R-CLzRJdV@&*Aq%z^UgCKVvtDE2*c1a= z(uzoPDfx*ITc8k6Dzw0zB*q!B4sXg_i&%qu6+EFSDR58?s|0h2F^IqZFpGD7Leb)7 zqDcEaq8}wli9|0HJ@5!`D%tMBNU;GG$%B^3k%1G6lE#=HNk%f|eF&{ehTax^0gQ5n zRxheBoRY7!82Xyolb0j$6f-{LLb^0jC9wT??CyX1--DjAU!R zrPd<{kB*0w;JyGpO3uHR-|uopY8)0NBf3K9_G<0)3ql)BM6Zw%9MD zqi)_P)R_()am1q1G#UcHSz-$;gzyzSS&AJre1U~3KZ|}qNi{o-p@Fz0M9#CWJ8^zo zh3ihEraDz$ix1UW`Ye?xwD}HBP50v66|HeC(re)L!ssd=0jnxH%quU?pNl6|U#+ER zaKB37a=Jh~i2MwF{*Ms1$GeSs-Q9L?9Y=2S4wwupFI({4Fnbu|5;h(Mf3Kw$7b@ktRM3 zl4D__^8i{xRY4{qiEB}`bm)PNduerO*9gr2vc(ttYZuGW=J3Q4Hm!3B9Ns`T{0))d zY4=o%xbGXjt%OaS|NPhZ0B+IQRdk$mU}Q#_E8O)2X=Q=_aQsqC|IG7s8lgpE*J==Z zPl82kL#GozT%-&!Nr2nPsgdF~5Q=#FAy5zf@qwk-26BSo)xbFW?4sU5yryUN%Hj(=nP|f+0c+ zHG~GUUW(DxpwG#IzPT`3d0$zL4GXHcvw##;SA&gq!!c6z!MX~}mX^v2;MmVb3>=3Z z!(z-AeimJFA?l(^;(WB7P5fUE>Ie3!gZhEJa!@~o+g7@q#jg&(#=W-;>Wf~)_d;A& z<5z~?GcO(*>S6ghXDW6%6qsy1 zbZ(^ze7^0>9nAx8oY<6w%G#N3!z7|w z(*-$-Lp*#de1u%)qqeeDmWiNO*WxQ0k7qZmF|lFl_*NE~a=%i#os2Up9fL}*t{#|t zd1YU3o>ICQVIdXv>9jGp^y(UYnb{i}h-sf*W(vmfG?dFO9`PuPjX8qK*5IgQSbxId z&EEqt9fu2UE-0H3<@3J57d;9EQ8nN4D2vx^9?L5pW#N$;fCOFrn_BlF4Ju_7gMh%i zO_exsw}xMN6e8O|KKd^p{+s;Hzc2?5)&2A@NWO3;Z}%7*+pFfJMMD#_Mw~j8cr7hjm64X;4?m~Mhl(PZR)P9D*v*?69F^~j$VBgUKi@B71eTw$T-cPoxM)K9$*`S^r zvut;IBplw_kHh1@s%n^VE;)c%3y#6i@^`kw5a}^ul>HH~s68HfxfcxZ_Qu;_(3O`C zj+#af!Fag9f95P{=0D$r2QK_H$fg~Bo$%|5Uo?IL@w)}gC@41m2Q8c z*twk#@gMav_|hZ1de_VdAJi{3JnSjfNBb|H_!R3Kb^r~8ro>1&KHJ}BjeOZttas># zgIb`NFr5GGDHb=2b~ve#M|#pDtbqhc&_OEcmQBW#vYEr(=@yVyn7F?+`RDOe39k-? z&j*1NuNgkblQqB|JWD*!BcEp3p;rdB6m@6(p@*M_&HjLeK-{>Qj(!UK%FgR^5~r$} zOS^yu+*y(01uRAQo2K)jhn{BbwEUyLvT3?AMxM2U#f5Z&*2ViF(TbjL+`(c7kA+6W zyBh&-Lm>1%?V1^F$u7VsDDI$`3LfmBR_}T|4COnYWnOJ1_xueTE|c2xFLtt+4kfC4 zA!rTX7sre|^f}fuG*1m9mDcuVV z%m>qlW3HwLn~R1-2d#;F!ASEVGYF_tRr)yXhYj8i1*|%K0warhh;0N*!|zEq~1_I00$Lk z`766XiT5E7D>8T%8DPfJoNW~^^KW-yr_xex*v)!tU*r9E!(_FF-@lthXgBc?`FE}>5>83^Nx&hi6cP<{}@2Jl6DSXijGS4%NV zWBIy0taIqskOcfxJ~Ni@+{2=b?ZEr;j!gZSpWeeFb+&)*?O`In zHO;$yc;CHjMUN+{&}o|?_CgA#*@PTTAgYn_@s1Z+qOP0BRQ%eDY_ZOChA()DP1SzP_q@ag z_x~GsC`hFrR8(+t^TQo-I z(~v;;wwGCApD!R7`v?5MB#X2Nt+II6i~Q%8VF)$^>GJ$B^BeN;wzCAP%AA5Acp`EH zAEsqKFH5e1<$cvI`a-)>UhYZjw7bgiDjK7tp42s--ZYN50)38q6h#!JZDLj38p{As z7gXjZ_=cTGftJayLieOcTSYVMVRlkp%BL0AnS116rP@_L@!r#kivDpl?D2gp#)%}3 z*J!mw6+!MzGbS1+A5v21h#YVk@pFn6stlQtZzL0*RDZ5{ik`X3qoHXfB|Mn{-!wVu ze4}Jt3%s%HPnC5s^I54^ z7zEg3{IOR+P1*eLE3DVTPLeMEP1=>BF6m}585?ZdPq{8_$u$g>P;-^w%7*epZosqx z-r|!l+i%BN#@N|3#wxn;xL2W%ybkdJUr|f%O94UqKNWl$NJGIUTP+oQa$j5VeFO4R z3x~i(hu~ojq{;h_GJGew{MJ^8&*5Lc%2GPMg}i9N6NUv2SgKs9;UiyTO1oyt5vEjK z`03YJ()fQ-iQZv2{F?9qYV3_&%Udf%2-Gf}as)?gtM~$7_?L{zy+K4)upZMw=$x=0 z=J+1U0@R&i+G-Ur_5v5uqm${$7zC^o6EROFnhXyxZ)o&jc13&9$f!YJcU7PVkyQ8V zO-HDBJB<1p1R9MOt|C{*CWqQC&ep7mgbw2Ci51Q4-WpJ8DX|^%!70W8t_k%iP}i2V zq!Pb$2UTJfu^__ML@2)FCAERbjx7QczAj?Ej4bCar+JsxS+CGbm}KNZ1&Y2a=J3?l zS)}uqjzAP9|Fnb^m+Uawjb*){xN+y#2U@u=kr!EVw4F{>VqwzlxG=80y;e!PnBsj! z$*-qeAE6S|u9V-904(_hYb?^@6qKhsw=fwazz2$*=m#m5t*C~{W;uvz*yuR*#es?5 zV9G8q(HlvC(1bq#+5d5(r)`BMt92Gp3VSmMZ`6|%p791VcLk#8U{*L15S<`M!SNS) z&8XoIyuqReb`>W<=>Ab+SU1ADRG_)YPc9wJk?_&A%gIfv>iE$&*q?L*PV!!FVxBmG zPk57!Za0d^#wwof#Eaf!19S-!`JOl7bL%vML9GRryry=>xG%BCrt+G@)bKiQdXx1G z3lr&R7Jrd%LU{%v<9!aWVa{SnN0+9K;EEHC_DAj?U~)uzK-g*NufIhPIx zF$J)d?!@dHieoI`#|t`fNSSF&I8T^M)|$6ficN?Mz%Th}KK(6b zqCq+Dt-zq1jzKwGRAYAG&wFGSzWpsW#km3~UQk1XwV!a6^L$%eHIpfxB&<<1&xHEr z>!^fL&tRW;p5%V zf8xyai#RqND_C{{0tUk}rE(hUZ(m1AT$zt<10)Hf=vtujh92E6U$@uuJqOvSfpaKb zB@AforZy&xc~Eoyp_lUC4zfY9lsLcg@DBAxb;KKG?H_~g4NZBJPdfztz(KAY0+DqF z=KQUPF=!V>-9?$~qO`lze1scAva8%!Suns>NOeouB~7IB>w4#(eO+6Y`5jiA3XBVr zuQ?;^qde(8+GZ9rm9G8i>PYj3xo(EoySr|h?d@GR!`6;;-R$B7i$3W@@nEjr38JVM zlw(j~l0Ot9=%wM$VAQ^Z9Pu@xsEhXEb5l#pXLN@2R|lX*)S!HLzj7_E)s)oOLxAg9 zqk*$cnJ_{jUdm^?BYQKs6Aqn51 z7wx6|$0O*8(EQ-cG{8-cZR|fOLF4ytou+XN@Qs=REQpUgB0o1Rc%M^4Z1mYG4jd&q zFeyRMD!&DW09_Bx3bMcE$ucTBNGGnFI&;Ynz|Osf6cw#FSIC_7;0;H6_XyWXljpW( z?+@6U>ujh&Bsx>@JGi$_s|R5K`rwgNDqMQ{$Q`;b+%dLz{8rGn#xWd9(bqr1)GoYs znLJjdU6p~pXuVxU6lMol=$1w(ZuX{@@^qMT#W{>Lpjic{|J1?QsIR|E6G`cuAETM6 zQ~+#;qQ4$nKcTj&YiVL^7!ctAu>_u_YKeNPyggupu!-^}P@l(2O5coYq7va@DU@ULV02grmS_sQ1u#c+Au~UN zZ^8jBNHgvoA53?0b3}0`R5mZUdd25iBsl>5tHb@(&k^we@mA6DKh@g+T~J^Q#Clcu zXI%R>OLd+A#j8pgGfXuUGn~b~OHu&p6r2)N<^2T^Hxa~t`D;rPj0wPS%Uo#$z>&5R zZ3dbD1W*#?5*ZkkA(-WW6?PWmpkq;6;wAo%w=os?nO}dK4IgnHS`amSS}3|(mAB(8 zRAXNI0LF1zupF5K=uQab3s0ckenj_z8&m&)kl*kvjqRl3&2Oj%L1O%hCko4ZrnNy9 zpeTQXoI#7CL6%^C0KxMc?1i=0GI11@2M|_WS_^jf|mnEH*maj1&uD7#mZKTE?>RTBpMo>OWA~ktA;t=(6I$kzE zgAi9ph|73NA`VRe42O$ptpFS(DgprG)Txsx2c;W@o$~NvSiPtbUwHZFf=TDF`RZl&TXpA5897jYVsZIyUOqbQ}S;qM>~?7HeDTg%Z=?4bzlBtvO<5#N&X zE%utE{4o2e#3-ysm-*B8jrUe!*%SRvjG@BF<^!4#Ox#qIfo{UYI=-a>+a;IrnhMrq zC__>jvs(l|OjIBqT>K-erIfFI&y6QpuYNSTW4Q&ZtgW&Vm|B?F2|b6u(K@u_Gf%Rp z*)Wt01pU)UorR`71drZT59?fiS33Y)s`I5eWWo|I=nxWrPA?-Fu%BP)Dllr-w3{U! zR;tHkjJEy}I|VqR-j)xprz-1KBNWl6hSv2?E_S?LQWN5EqQMy9s2v;Rm1pVD%E zpx!?qEv@=u)&Xz%3cps#*6OTl`KnWFsBZRJzULGh(8~iU0qA9iuRva}bd`ryiU$Kh zO||@oQ>;%{?7YB~(_i&OMu;YM#|QqM#YQ~(oP-w~>KG7-Nt?rxloqz?RlfM|Y`OLr zulqZkFBphmtYXp?8rX>CpSM22l&1!7TXTzL4!2H8m95js#qUqEw#~mk0ExE1=hmkzurDr!7Tl%V~nfF z49GG;9NwX3`8xQozZ$*tRE<9pqS}_zv92zMc_eP5klTRNwD{lbE+T^N0%&{!f{R9} z_8vmH*a4IyV)@2u)+;0)an(-uEZ<+vBF5YxRSkJY@xojPmSTnP{fJBp;mGl%iB|7Z%TZd-TA1st13CP}nMe;p>9R_Ui%Y(%;^c*j??BUOz zhS$ccyozpu|9F~3rftFajd2W_c2Q+Ct5{DWlaLNOHQte6CCM44l_seL2Uv(1?OSDn zZ@B_rPJ!eM)A{W+Y*?1RQ$vee06(NKJ9?Me^vcnO-@$mSM!QM$$Lu8GBjli+R9tj} zd==wlu$@-0lHZk+lpK@j;Xp^|4A@*GbJ;kfIJkK_==WX}r$0LsqyUj9y7%Sl74% zc=cqOvUA1S&-@@2;Z$va?YHuFwn^SjFA1Sf?O%d5J~)Ufl()TBtSeTh?VcxZJ8I?ana|~Id$d{O#K&!eNb8ZdHH8!_X`7{f zC9SL;YO(6HlJDiM*aG>gy7Xbxw7Yy-O;4z9L3|#Xq@Bx$C1V;dmL&gdUQfnBOOoFr zysT(%K2#M~(U2>Hn#?Zf9563!mhoUw<3vQqmF4F_^D+ox7=<)0uTe6E4C$kWTwHz# zQ&kxPc1>|EEPo!e9~lBbDCFGo$8h+o459fPLe4H<2Wul4a$XHNWnOnF<4{W6ryHW7E9dHp~cx>ts})X?4L_0<2A%pC|_z6|l6 zF|XIkknI$*5Fy*l>wh8w&)iBOnFw)iHn0Ce29;4zGJ;CX>(9uLVhR}uL=xIpL^qI* z8gGPpiB=r<1+_0}m`Uq82#9tyr!H^rYM!^sfU~N-MqFGtusW13L9X(8S9y($4xT`4 zcydAeg-#qJ+5olvAhsFf>XtiVEn=0n3h zS=0yAG4L9WO^eS1yyo@yqjd_#&Rvq+6lnV#gd8DQ>H94Nkg9b`j9yv(Nq_*LR3#iY zEm-w_~yU)44^xBQU+0eq*1oHef}d5o{UV$cDU&M6TkismNI$|%}Ucw1t8f@ zuLOyro$A(Z$~2NPFVSeXh=Z6B`HSuI3orbH^1@a_a1PPprT*yS#yf4ArxZ0_jv3-0QGXYHFhL8wJRS5ZqUx=ia*U?G- z$6~xu{OcUj(%jK<7$yF+-d|!@@e8K9{ucNX75FaB5IN}`LnC-SR3B8-HcE>Dot~Ej zimg|!t3oU2)+exPO)4rJrF84!69ic3%qZbqd}AH#7VhIO*0COAyNa2ucS9Wt!~z_Ijpn30V^NSh&j{BG*$`BYbM0q1EeHz>b3S9k$I1!N6x|RVZKY|J zlKCP`#n7k?+Xy7Rhhh{ztQ(*yN`hcYn>R*daaMfH%Rgg1wBz`N&tS?N$1R_;@PR+$ zWEAoP@HzRpYYzIg^T$f{0$5q9ZR%=_Mjs;hdU5OLs>#99&)L$jaY%-Yvm2UGB%BvO z)Aa#w`W&@&@lNO21lVk3oo9Ct(660m12R&Xj8CpiAmU%A?Koj#FaqPMdVCs`X6ii0 z(z+^hI07<*IDxNHQ<*?^cG(1kl}BH|xk4Wr`1A`bx+~Qa^OIQoqO(N?#&pH>7D`-y zflcjtPO3-ECHo0Lz)Hrs5Zw9K7noi9AesR1Hi+Rmguq>jR^ng-#qc&KyV&k#W!A~EPImE9siAm4&CIlm zrJ0r0rlBG=1#k2Jto^<-V4cqS{+{RW^WePie)o0lwbx#I?RAM1Z-3|Oe?k*jOrW#f zJqo8i+!^kq7pPb+4Hpl#XKNFL?Cuzt0Mac$>EPhbo_>93rb4gqw%K z&%^oVp6`uQ?Pi+X!OH+J&>U5*p;H35b??pYO@SDCN7=#uyxCnv#k~t?9H~RoSySvi z>GAYR7oXxsL!L3^-l@`zZ zD9Mn7hPH1;NgU~d)q*`@7Mk##1mVo6!%6T)yr7GJJ_(Y<6n7yVPJ*|g4S5puLL`e2 z&DKLyeS;bjV10vM4Ir0(ko^Hsgl%RzL1Pb~ar=Fk_KFa`{s&`N_!#5{2=dztz4rs} z^^-AXSQ1t|x=nL+$#Dh7td??5k=P(H+Dq_eb7$<)JS_0)VezYpePyIKbkh2fa2LejHoG@G0Krs%hfoz&WU?4dV%@q%Uiix^Ml!uCA+$<1}v)srR31iPm-(evrd!Y!3 zdv~X0pmRz>ZN1Y1JHS+@WoSFJWySBY_KIIP{^yDdWX1ZE{7wO912g$*RNvXRNo8Z7 z;5&se+HmqNKJ{m~EuI{}SNv>@x3845A%j%|RoN>_AVV&~4tKKD znTxn+$Hhp1W*R;nMYlb+Ptk2L07=mKbLJ*^mL{YB9@`=KR2E@KMo0zHghc}wky#u9 zBkS0c4frf`M=plO@J$%ORfFFL z$Y_I4kb_SWTlmSJjorha!xuorl}i?780NjO}i}Opt(HCM149 z@^?Yc@s|YDk2WLMB)+2=9jCN8Q9737{u|Vgw{0Sa7(+h{h)fCX8@E)96k@ z)H*BePO(CdbmB2UG9hk+@cI|yQ2kDR!!O2x`iJ>LzZi!be%0~4zZm0FVB6P`9NB~7Gyt#M}gIB;l>kKhQVJ+^rty;M6GJ6CKJfU1cwr|iZ2 z0Gm`1=CgR|K(RZKwDN1HF2=9CvTDFUM+G#{w zbMlhY#`yV$zh+;4m>S)H|Nqix*55R`9qM9#>iQ5_%MJV(S}|ZrUOa8IcC!L!l%uZd zLl9OM!W=m7bH3_~F`3eKCJ8O&_I^ZZkR=MK`}ZFcaKa9unN;^6nvFi$%ExA*|BR3M!`R)>au+ZD!`ScoKbN~lmU|Wd zUtKN+bQ6q^ztZB4guQeiO(q%a|6M&@Wj$m5Qcw8b*OPM2nAj%>ums)GmIAiPP#1hq zgU%3HdRzO*mz{(0Q#OC=oUvbQPpqcmV)zCSFM`=2alF!El>+&_{2%9yv4Nu^h}b|Z zAAR09A~O<<;rXM|17L%DGFFIlhA=Zv#5@}FAWoIh2UDyti|8}0z9I`DQ^ zT_{|78~td=4Tm4B_AmaFAj&`DC(j$7)Gy%ov>Jznr64D~2q5YcV(u&r1sVRB?`}1Y z?)K$dfBMkGp?Vt6uWiFZi08B0j6LknOTz9|4G>Kb$2#ibybyXGWD_f0qi3Y+w;yo~ zO9C^$GF9P>L0XmY|9eWz#kKMWBwES*W=a1_icFUSo2(C&N;*%QwuA?os^ z&MSCLtE=I?FXK#X3g_AM8wo}C%f>-TMV?I?@SW(5_zK{5>`4N7@K=twyP3AkXr-VD zLA-~@7(IKQvb+7H-LZE#l+kuVotyon$Fu4p_3rAvJ%KE0-?rnaL*HJ7%nJ<3Mpk>C$W*T};Dg#uMr^8*_1t zjH+eICpbsu;UF1>V_8^l#dY^tOxbPWJF! zHRoU3J+Vd|OSyq6bo^bm4c=@RS)j=OyKIZS*&vJx6p??IEz6sYTyTkRzxbO`7`1F= zmB4h$xk1fo_d-v@*Dfl))=83BQtzD>&#=nFIPohRB^%%+4p*1?x3`QoL0Xxj|5j!{ zahb)%P^hK3(n|FGZzVqV7NA+v3j6_0`3^Me>TZ4N?UpuwTA5vH8B$l57D$4#xE&8;NfF^eIfw6Kc+ z8!<>%IqI`jU!Hh#t$tP8@)n1`{lgV(q^>gW>m|Dj3t_oa`S=q$n7`J13qHBz((Ki@ z?px?Irqwwu{@JsgQv%)3@)H3p8rEm60W7KazIw5KGkKbaR%&3od?O1_`1oN^CCPdt1_;C}wr)b~_Kju6KK_`IP42QP z)XTed6OP^dS0hWDs-eF;h+rPXXwb`cfJ)eeLZB8YhPBuC!d{*3%U_%52CJ~>eQ<8N z!m`oOFA|+%_zjHp?$JtobTMg0_oe@O(SLDY=LCKoa5Ql`U&mOa;q7St9%C^DpFus6 z?zpXeU^4u5Kq{S7prP>foTNZ15SLUQ3C8>ka?v3!9%+_>0wjw?K)8{x8S!iHZW0+RzK)0v>KpCY^dY62eBToF548uqJrQU!~|BdSiZ)v9_=smEpuS| zw~`q3MO|mBnnQ8iZx>NRb_nz%{RV$bTZBmez}M%O{!J*D?e6VzwcskG0C!VBr2*)f zMN5HJ9KSP|MK65V;$xG+u|Vqx60L(p;+N;?8p~AG1j?;I=?q3N&9$B2Mc*Bu7-4x^ z?#j5*W_OmL%```=FyAqp}J6;e{t3BKyxNQ0q9P;w zM_a0`>t?;|kIaAs>+jsziA|nW(PH(hfw0y%mdu2ywEHap3kL_aBFUmn%oalRytg$>;@67;K^>#oKUV)_;N(AE@S(Tlt4Ro1lbhY*TgAkUO zLolaJpmqR?)qa*OdsTTk#mZ_ws=PeN7L2|kt#-fDSbK&55VnN?;7df`t-nzh(|GDV z%-`Po)?>k2^nOQIT{MRy@^P1rdEFb|FF+!Stms_XmSGQsdjLn>A$MZ!u7L}(qL-=f zueihTKF0U1-o86pgO^-g**5B);ry|xbGB#z0hYtZ4|we0cut|Ku$s9j;h=u0KY-!S z5SbUO3o7mK1r#tf^MdUUyiU{lIdOm~ZF(c;tZy_u zkf9q;BISZJ%DLPh2-!3PCyesIrhNJdYRV<^iE={|X{8mqaxPlTi0ml|VAG)XB%F$L zZnxaa2>sIz(^W&Qsdm?h+Ud#!oi%Vo?M(dIW=TxD-f67CH^&7(+c$*;80Ps8F_`$Y z!*Y3Gth;JVBWmZU1t-@oq>|TNT{6J-4Hf(V1oX;`nQX~X_wr{7Q#N-e8A`^?8w-t*DtRR1!0ez@|_inaJs&YGOG1dNs5NhP}{rpE0n}&Ty!j0%gpafiqvcEQd#FJHOFQ2SY_?%ESB-pCGuTc0Cq3qh8 zK?Cx@OA&)AjieEZ&eOHv?=t=p`seAU;_o*6J%hhj@wWwk zU-akk-B|b7K`Fi(o$?O91h?z5f$e;1H&(7c%-`$AZpfH`mS^JcCj2?@_YD5t$KPT6 zeT%;q{FzXfJV(O5OX*_Tf}Q)8Mm{5q^}SA43qN{g^xq!*Cu(sTI#7AHzs}~Tz%jh8 z>?JJTGMVWlWy-?1#ZBA!n_=ud{X%|QIE%7N?I9Tvd%WMS^Iww3?)+A`_;eDRb^a)< zCmpTXCdVHDh-*B>9I49|g`a{A0MXm;sPj1UPm#sPCs-KH{NoUDwxk^vLy#e{u_5QO zKJoKTyKzn2VDm$aszm7R?oZ4Yo%RwLm5IqEp7fF^xPi|aXj%*ZGETxR=7(* zu&eYEj}4}r)?uP0giq+s5_w((_S}Xee0~Iry1A?uPOYa^<)~$W2(*6xP3W^y5}H!d zoKkXjQWLy8Viw_hDqQpimcdh-p=khR$!~6gO12JGLrzHPb?3hVHFaFbUL1t5YiFAF zV616%u8E#(45i-@{!IkyF)i?jI;1OC4e3f^&Pf{5@eV`sjp!7ONOT<0<@OOZbdn>= z@K{6AOD@|2(o3#b4R7m}{Ig1<^0|2CFo{Z)({N|t!FHjqh{ptQeo4O43&Xo@bTMl|~Uw^_)gcCE)Yo#E(67y2RGR(@IX9vbS=% zzs?#a3Q*K+f#4lrdLL>b?ylm-4oSyV8TjO`lRX{1bj~sUFsyxyw?wfBHV|5RBr^+%X0hSh&cPv+)3pgdj*~qcbvS$zt>&b0$UXq}tM&0^*b%4@2+kv|{JA~N@V zpxggcCfvnB5z%fE}Wx*0F7YH}e-BK`aVfUjZK zNrPFD*`Os;orPj9|LSxwqh>XyU!z%s%|%XG8etxwlZ!wP4}1ocS2i1|vg&iZGM4q3 z_{b)8KrR~UCcV=|kW^%ko8G}LmHE5Pzjl}V7bs%4!nZ6MKmXzmf*nClJ^*rgfZRp? zTP&Msxbg;7r;xAfT-8VU&UhAMxaoEN6@Jr> zBDD~}qk%csQl7E{pcrNqmBfJ8!5r2%O{3F>M{g|zFsAZPVp(Fh$9yo>{|Lgez` zw8O>ce|J_(=d+L9~qmz7Y0*guMIvI^>I79vVdz|@#FNkG*GpQ?1iTeN) zp3M>%Ds;@kvhnXR=1smkmd)(-Kft;BRf!`#R>|{oXj&aKC}Pac>Z{u2U-n|j{DU}_ z(`^SKtm%`8lnx# z4qBnP*p#YcRpfhW1OHbd>oJ{XD5YAG0XbWy>RURXqcz8eil%Bh48RQRPopMitAJJ! zQ1suxdnU0yc~`;aFS$;=EazlMT~iL>sEXx|muO8xGswM=u=W*T?dycKy~9jZcOjb( zb(cf~ZR?U)Y+-vV=!Km6t2#3o%_!AGmq7zPn~5@;wp7x&%PiLYs%=e8(Om(kDoG(7 zFKy?8`>^;i?@(69CMZ2Al17tv@fYZAjY`WgD{JQfR3HL7B$}Ugt|2gHt|1z4stS_y zyK4vfO*(w%f8wiN4-E5Db{yyX`mjNEwf|I+ultlwgXIu1*C*ml89=;IGiLdYw0(d~ zl+u{y(O0=ByP6@)GX_LPAjf3KMcM+kuWkQ0R_(6)+IEV9N#P$1VUhOtUh-Cf#?mk( z(-z~co?yS$F}dpCw5@5g9GcuBh*TZGQdf4R9WD=+i=8N#g2i4(y#%xh{?}qhKDlY| z(gfCRpbd!de_QmK)A)pbEGfPncG}!G-9_}j4FRrpH95G_kC}&g7d8RnYC1_E6_a0- zbkYyyR2Xj3H+l3tG?`tK$?%QfQAY|@KD6&JRfSED5z{6oCmWkZ)icDqVU0e z#{B=Y#5;9Z;{37x*gsv!c!bCg?a30NP9V!~rah zuS{k=!)W6ELFv^r5@HpK`L2E}!oH-#+U_t&S9J$`yjL19g<{nX>9}esJFQxitb*QD zBJrP4I$f-uKF)Xej{{j=kDkwY zF{$IWp*74W4r0l(|3`JSGhd{wxSC2~)=c+hVFsX#C5aw!0@VK17*1Kms%QB}gIGVX zB7Y2GV>O)gayRO>^Jnfx+jfpQ*X+e;!QB95Vf;y<3@4cD;vc5G?BhQ)N9{EUP$kaL8JoIEm>Et}sy%k4V^!Ah&^rKbt1 z|9OXq6mo|!G))Jo)aL#elpoKz6R=&#^@Hu=*HnOaJMVri>usmCXu6+{x6r3OU7q0h zspqa=1K?=GxtX@`l#f+Ie$n6ifP9#t6w&J zP}adsh$}okWv|mk*_>+*;eW@4C9ra9TZ%w=Zo`l|JKjwX{0tb9^Xl*L>$tFZaZvf< zS!#CZO79>-;kbYuYBfG9r(rNfb0ay7l+&(|H=Qn;^~?*4Z$=;@eDvwlec zyu(pP66I_q?x1ceav(>9;-aaaf8-}c7Vp%ks0}swtMy@lP&-qnXdUo)pb096?OvnE zp(qkU5Y$4n>XMn$>dtILuprqAt-H+X?flsxtb6;s6O~v{h0EA>D&ZoeQRG&vRMRG| zo{mx)aTcRD@_suk^U%^kiad;ER?~K_aR#bKVig;_Y(h~}ARnH_#zM{Q-ZYjtkOnOr zn>)@LK~zIwnl+job=LTSG)jS6nah+lR8AUFrK2hXA~& zKJdaiN8a2`60h1>l>lpH%G-NhODD{?p@0R>V2F0*=j`LQ(Tz6Ms zYiHArGxTgoJLhOfP+SCv%-@%eO!=LRFc5^}a5kh>o8HDHK%J*SR-|_v_9QkY9_h5( z%G4Ctf+|Ol?Gy*ry{!*}R7av)AwAup^j5_|CuL4pcdo^Pj8WRpIK{ zOat{o*D|d@T=<&SZIpZX|8YhNT$0m=zwvLWV0af?6shWKzYQR5lbf$&qxA{=Zy>0HlE!&xsra5zrC2Oi^(4`=Ed~F6B zW%zz0|2l&W%bfF?UPmGl$A=_?vK_|-m9u0!1Xs?Sy6SVw%uwFKJWVhc!oBSIPWjDr zM|2YU(<1RTK79lm8Bdoa@T>xc>>Re78Mt{;O7_4tI2?mG^PBmm5o}V=+{FPI72B4K zMuwpzmW5g59_n+O>uHqM@$gKxAf7Jj$WMJq;21<^_gfO@D)e`S-{&^UO#GotHaB$| zl;t~IOo^jw(fIhu=nve@;$9@?dA#Rbf*P^B71+mnWzuPqOF#~Nw^Qr0*wC26r(_BQnsC2}i@!^_C!$NI1K;uAv)E*V z`FlQkB%5n!`Hnv~lJy+$F-VzO?YG}kwc$-4U^BFMFR}vmzC1xk<CU|2(te$u9LkcEz6BqRgu=dRC)euJtaH^I95)*wTzI_?qa@35|Ad}cY z&IV-$$f4lwOSvFEKn}l#urJz$Md*hbe($WRD49l%+|IK4idJ%3 z)^9^Mpyc4}Ox=XwJZ>k!phDfW|a7B9?4Y8LMb5x|A{@LWeVif$l19e zfcm9JP_qX7fAxUiUaVOm2ZNn4Sh(krp*LS##-Gh*eL4@0msV@g+zJ#A@I%=wO}Y$| zHu?r>rY3;RnhmS8)d5@9|v`axTH>XqNQvDQh<+kHD-@ApohQujxl%~WMGc2!bkg16w{ChQ@ozQ z421}NxdAu7sg|Gt|S&P?zcueTDzO7E}?!$Yj0E489Zo?ZO9=9qAiG5T&O^LCi;;)R=`RDuyc*| zhqANi?yComv)mYZYu=7E_aV$$o>5Aov$YRo`LBWGwd@7KZ37Yzh z;by{c5I6le7S^Kz;z-a$3=>PFyR{HQv`(R^yCmFBe(g9GkvGYg1%|)fp)r6gaqiC2 zQ0>W5s!VCMh>HrI$h`}!{pp|Bf&>*A9nIn5;%oe&ajaj!B5Wu7_>OUGSbu0#yjMkc z{i=n7hGiXfet-BDb)u)_wji^QlcYtO&hNzGeqW~C9Sv0iWtYfh!J-_N zI=kCCqQ~V6eZ*L=CiqiAN=xho(ek`XogJdLYWy@vyjOpxd0e|v0qHA}1W+u&4zAgDoOJT3x$Gmu zrI&ep9u5Qpcy1m`Fm!p2m*I8lFp%PXi?4Cq8=_m0QC+vfXiuy5EV)K>ffnIR9qPehZ(0cEcUmf1f;_D?YMDEKye;#qz&k41If`7AiL)+pP{@cpu$2aIP! zX5CJ-9l^0p_uYsmcN{2w)Cx4cq+7LTMHkaU`AEfA2T9#fTNZ2tLr@DM;N^fBDm zS!0SU*!YIas2sXClLJf5X>I*H}1*8e&Gcsz?3QHKPoa2tNL3hitELxry* z(b0+uAEE-N@Btn_fer06jVese{MdBgcwRDrMUEheGhQ9Z_@!WpYV0I&1pEXUIaKU5 zJ1agFSH1?KK*}T!jINwd%_8aq|JMW-(`kAae373H^CJ^jp9x96gcpbp$~oY&!ROr} zq=@}dK&?cmO(iO-$H)`T=vU`nL-wV_qq zGl|88JnKsdsp9=6vwqp%{5JE^rCr5B?*}+hswbiboo3vH;(7);JYq9al#;W!$Ah^^ z__oRdm@vc4wNMOvivMFW>k*W?0oUvS?*aGUnaq+6$DiaUCbPI}cRs0yI{<*+nHzY% zsa%(Gv^*>J0z87egb$9=1f=`lT9=h_6#Q|#3_39=A9shh;j7Z(%FQ){B@=4Lm$Bzb^`@tD8N#U8bAau~mWzr$Ait5+5}Ma#k1WlQRYa z*@2o!e|eyaY3IteVPB^ZszN+s^-{+mx#w)f96%7+Bf}=tqdRD~5Px7xQ(DfSD2_c> zoap-OXs1t$;j>P59!3w2@aDqv>^mH+5&M7b>V zPn@arE}@d9^O#3%@Tuej;M_{Qw}K+W_QzRr2pxj@RQ#v#-RVRO@sg7@C8xv|%7Y+- z2!R3jIq~=K^;21r{l2SGf4&=COw}CUphrhVe*lHd9n(uLscQBPbfY-E2!5_b$;v2rb#kVQT&gPnq%+XVOiP>NzxYU2N~i<6_567= zn`ht`xW0g;hlZ^naFgcPME6+no0Cr{V6nlwky_|vg4y{U1*~uPjVrydmU<>d<%2C^ za5#Up0LQbuTK-`Hi?g2uWF)6x3x&XliFA}1LLRS5>Q#PYxUUk@RZ;vm9{{t6hLhlw z32voy;_|%`)71|m3)!_y=%Cj~sQ|1~pxAeliD0Rn zG>e-IAii++1x6bVM!VwZB!MVaQvKBEhhhziJJNLs6Rl81u)96!vChU&U>LWMr%q?# zaks~z2jwAi-DyrUf-#?Rn*HhjP^I(u@A&-bY~bHI^*c^>5z9k8Hbn3pN8=z*hkNFr zaU66J2%S(a?bx=X_{nT2iuE{ty6kB5Lja5ifO`PCYpMU(;>>SszwD$eX`XGTWX{-Q zj_)r!>M7$~%EydJ)`I1Zcty$$n#$jYY$vC+A~1z zuBVo0^(vzqq+?TY&zHo_v^q;#%@j$i3#gmbPt0yb+SVS(WrAn%#!corIC;O9Q`DSzUj24S{%U5a?N;T$^hLNrb zAvMS)>Kfn2Uij#MZN6fBlB9gr7>oGrsH_$dFLN&W<(%bvEiB6Jco=)95&j}OIqI?; zjeDF%#}UZ^!aK&x4`Bx<5n--Bw1kK)4EqYnW-5{knZ(^8TA5t`_Ckw&g#y(=QL<31 zEChG(R4B^PD8Njh5T94Xm|^5YysU`b*_R9!RSGs~xt9!D#5aFnvT3Uh!xFQ=j~wm7 zY&7zUw^#Alnb=EQt1!_B);b>cN@U( zb0%<>4(a7T6}xgnT6&?4TS_Pm(wS6?C{drUSd%QG0MAP6E{_qDM9IZ)2>^cpcEx`O z*~a?qfrzuM}Am^7Ewh_OHbO=*VRUvGPq2S6pt_RaixCfXj)y< zx2Q$6)*+J^A^;SLthl&T2`qJnY68U|v6|3=ou# z6LKWC1rZ;Vpqt-6Kzvk5Yf<^Qc_5yT(LS>e=W|6GG!vBIpV3+ISYu9|4kc`m?p=Z( z@9S|tL}K1%Y;!xnDde=ecOs`=854!C$Yb?W#(=p!q=fy`~*Y+=VWt)osK-SI$wTLV)dm%v@M#E|ku03dCTzVsz|D z#&BX`j*p`N81|gAo(SoUAO}|Y{?2&ve9|iNtZ2a9N!wiAx!~_a8qz43Vv3dP=dkGB zWORzn>k_=lN%<7jGFN)=Q)$yDhgt1(y>tm*I*0YOJDNjbS1tLASHV6= zHXFN7U{f2Q0M|S!lhPB=QNy;Isy-+12szi65V5exEW}OTxrY4#q&d5g1EG*A&LWsA zP2X7=4$@+F-(wM*@QscOv1O-FMVXy;N{cvm*#~{>syIA%oIIF+LmwYv{#wKJayn?M zgaXWfL*6R-A?H9|iOuN6yxUwh&~J%B&&SMVy+UYnlosj3;AiI!e6qKIdq>c!7I9J{ z5zJ4ZOVXM0IgtmkT>TG@amshP>?6HvaLHz(GvDbXO$0%V55fUiuh%M#Rw~pv?t7hg|Y^7MsfLR4xcv-8dkODn*S;{2hrp@`f)SMWx_g9>k9$ zLFKOWIDEhj^aGN+3(aiAHhnvNPWQJ4i5u|*w!5>KB_H7B35|CopSZL7vw-(@*}bmR zJ(UWTG%acaaSth5O=ASAb`VeQDIiqED9FfsD9!c%i+EBzS-^jv$D%?G6=Gbu{*Wv0 ze1u2LXPJ@3i{vC672WXwG(KkQw7PRL*c)RQcT!7`D!Vx%dDqnO1>uHZ7fczE0 zFpeRAv0qQ2JxU(=qzPDBU6FDHBxc=sY%&b*xD;=8A5Y> z45ZM8pM{2-zQ)pNH0nXW-KNG|T1be_+Gq^o>_&E5SUrhsmT%P$+2^*oa<0G@ek#BJ zMmGG~+rfalaR|zx-@as|jW7_D`7QPNZF>HvMJV)(eR(1O^+uKv*n)*#Bvvov*DPcM z0?*2~`|jfl7UJUhl6+fuAGgz+|AUk>_ddRMA%xApF7)+!_N_V{?1&+?)P}EW{?qu& z4YSG4nohRt!@;DcC8nNH_Dk|&iNB2=8-dId}koDzkK zS-y--b%b&yfsTt;kbb>PCt4!aZJ>Hpvj#7jJ<3jT*Uc;{pIEDN2!^D$-XWQv17>j! z2LKWdVDo$FrI#uzPU@^TND9*c@>PtZi4@#?zJR($`0XA?%U`a|(>Jre{qCATSS{Ab z4AitRpznWS)3y#PgZ{5S*;MkGx3KBtxZz*7uxn!u&hrgA6M}c&-Sy1#yzLftyP<9| zFDqyD^gHNQmO{U?wBHAA#T_-?kKc;BYy6sSW0UB2&TTBMi}kvcGq|5$OTk3kethk1 zY&Lzna2p#*zZti)ZIRn&``Ye*1L#lpnI-k>mjA>9?_mATj_K#i-bB|SV3o-mRw%+Z^XKniktH%Xm0dZwtIg=lKdCejzk4X% zIpetI3-8=G1EyuJMZ7Gz%MU$T+-Zd0&^SHBG&wg;50^2W#VfO@<8ssJg8gzl55JT3 z&M`hkG+Zq5eH35MmvrhcG@mSR3&18o?xeJ$C*Z@;8D%JVZ+_REY+`ppl!kGk{q^p_ zA(b`bx+hD%oPTmBRIZWdmpj?87#SHT^gY0!6s}#{udv2G!AC8El6*U|b+U-VfC;e7 z-9-#3_VyhzDjX-g+fyV#?Y{*bu6crnr-{rEPgaF+gg6M^-;tmbU*cB-$^tkXi_K9z zjx8DaA3TmVFJgV{IMI0E7-x}I{$5{sA?8ZBdFhoDNEV4ra%RA8kjB%Lbu>Px<=TSI zRibA)+{MB@vn}pi_I$myJ3LRVLUu6jEn+#9E6!}N?ky6x(KBwT!Q-WoAZd&0i%4lH z61!-8%EykMMgvD~{UTinajDbLHCadUK8tvw8iAC6EVFA?Y4ywF(uQj=*=aqWV1&QT43qkC=qtr2QvEK^# zXe5;gCxX_vQyPpq@e>jnbzLzqah$&C+~Jgb2+!)dZ&V4*SNo;ECN&5bugj7+fPjIC zDdC>QEJnYL$1K4)$nSfigSeT4;SOH+#3_C}H$Ar4vhV@FJ#b7kW&%Xc4cD^zte)QXMz~{?QT^Xh^)C53V=% z_+O6um&_mlU>G`aayDkNgX8`O;M*4DTy@+}JqC|NL{xJZ4~pXvQ7HKLyns84sHVi_ zk|s9_sA$cfwz9rqw`Ssrft@R;(8Ie?Tea?(< zlNSonS%k;{&!ctxpR*)T+%}5JZT$fv^6(;YEs(nyLZ&#E3w#v>0^(S2zQ)Fe1m&9` zYRRt>jr@>}^%^n>9n*Gfa)_A^!+GseMSOu>4D>_04D=Zp^XHec$kh4Z?z9ekR7`up zpKXda05Cuz7@CveWW ztzlU+DagQCD0~?)wYB+e?r7y8u7vam;C*Hp>#wikJ(jaY`Y`^FNF4qpVMLMURoV-$$wigU4u;1Ax-2J3(1@88YhqW6WMg}pWT zZ8arV$Xqv~A?J!7EhD(y-K(9&g;K!WP$duJ3KxfwwZ^a3 zZ^ZqTYAyHIP%SCQy%nEwYy2EnVAx8*1bz#{BGc^R$n(hzY;Wbv{c9AxOu$RpJ}7ZM zw#()30(+)&f58W>0Gqj5t=I7w)jJWR8;g3!)-cCKnA(yp?7gU0gLbHdcDP8OUa_oX zYkx9qr6@~Ro4h`a`svFSe1XX;uG|TRKcf$pq8cXN$Gg|$wYRi+jiSB>xJz-3a}z#x zw0XVUjsL!a4cD*W{VQ0HWZz*$y?R&9)UpxxZ_r@#8jYbF9j%7*MHQ@H_!HWP=Y1b8 z2l9;-te5^p{!s;szNK!GZ)psgCfTk-N=ws?;7_3dfbay{#Nrs-#I{QtQn%aCvZY4xhS`_0?a?m#$>9^q=!j zRfD=V1lr2ofjdj5`}TBo@di)=$MgzlR)Jr-{cW@NSi? z4BincD%s!=3j~|kS3FD0#4Wt%D!4~zB~#@2#K%Jo7}^p)P_~w{zHBQfTko-heL1|0 z1$i_09g~wjcd#wXk$aoJGUYa<_!17J(IRua584~1Xg5Xsc+Dy{F#K8^sv7)s;&dKm z!OGOR-{X5%v9YGFaGWB^AT9S(LdRq7W8=FX>x>~o0};*vc6ZukstVy>IpFN!SN`yQ zEGp{@--aNaEBsw|PUQN!Gbz7gcj9?~1M~1`F5kHdb`F^icB8&0f6l=MbX|(Bkr!pS zJd+Lk%ZB5AM2nRx2kUHINN!3_X-}mcE_HT=`Nu~*tcvwE7>f9C{B|yari4a}_e|oY zRjgm<#P+1sllW6r?5FO_Fnc)QH_-oqN*B)}I_rPWc{R&1B-{CkYUsiT*t!0GHYEKR zK!-`?SYo#WJ@C`W6E$#%2`EgOR<<<-yUK~4l;lk;j=#x>*dX2#!4{M~@R zGW^|vzs2}lj=$;ntH7VM2p5m@#u{u%{;k+=56*3R9JdRqAb_H(iUs^q4eK4^ZuX() z(|mxF^$hS!bCa7sROuz@ zj(9Np2OD#f0ZQH6*-fAEnF@PFeARDLOxAm|u*y<-$?|(Uu+g~uobbBA~Z{lwY{yxB8{mcB1huA%n z@-loF`p#%t7WJF-^^Oc3BxM8JKRu~_a@-BZ=qF@Q#!!UaFcH+AW$9@C-fG;5tc6Gl z5Kh}ynh|2I=tQ${2?VDm=W_YznWbQ_mE1Bjv?Le#ljbgIp^7Hd4zDKIUQ10oKU55J zXO|+1UrxBgVDMl}`*w$8N+|@u7!a5-w^@`$mmp&b7q_ST`u^1@>brZ4!+%$l=*n+= zn9b2Y%j+Iy#ly|S2RlCkA1qz#cGmovdLlwe-Sd?^Ov5&!ec}t8;mMs0U7>z5mzy79 zQOR}4a?ce35Uwz=xXZ-6l#H7o3swnNAgjRvL1F)_JqJ%0Uv%zBopH*74x)ZL>CW$ zU;1@E_`Q@x`=N}2LtLwXE)q^kP}oK{2DoIsD&>Y0R zJq#$Gc8*#cwuOkYJh9}*LAyMFB30{27UKR^_5oE0(hSvxLMj~t^0tOO2C_a_!u*S3 z=iESdsOK(!xXo`@=Ecre453#OG%m1F(|L-|U&E3{j2P-YX>A~IG&Ehn8Y&WxeFgbF z$^3Su0%;w8_Z(XwSFtrEP7`IT*4CswR8@{#080Y7&;cJQD%YCLcL=oW!72! z@C;x)_yzF(-mmz-o?!8j{^(NTzxSG&Ys8yWYyvy-R=>E|e&HkX~sZVkKTZ!>Bs33(LhbjEW0dT_8T| zC>@;(78X>pp5E%4mf_J(_Yp+)YW8%LH4T_az1Qv|wh=}9f4YxIqv9l4SVUD1x~l4r zi#k+26d3XUSohH)zUyhQIS_Q7dYa`XBNGkK&GhpjbTi9Bb-&sFu?( zEUv3h5D+M>55z2fY%LocV7yGa&!NvkE{L21pJkc$07|NF3|NTCBQJ*7T-73k2#x+p z(qLf~o{RBC48(G$?H3G=3?vTe`?YkZ*yT(5-;Ul}1Uw1j`S%wjdjyUEE_1}K`>%K< zCpTp+!>2zJjC~Gio)+6z$*f|QzbGN^)?9juw1vTS8@doG)?VhwQDv5{g z<``K63Qe2fg>V`pygRmM7cx7<%?W7Fx0=?|8xo}r2!fv{;nneN&m;WP=UC_jdec^( z1}x=Z+AwdPgCOnX=^IfII@moFdkHITPxs?2SiC;zJ3i=nHf*3e<(FU`1q)T%DM_wm z_lZIkxg(WPAUa*tjf$^+9x5(z*dW)_M&pS{pvNpcV(zxlu28>?AV(%IEwq-7?xba^ z-V@${>GMi?yJ3d@B#u^%X5d~;r+TjajVd`rl{|_{Kx1%p$iU&Y*zT=x#s8&3l$uPX zWc+%nE!S6Da{8ZQ^hW z03NBdfb)7bQH-Xx!&S63AaZV%Vb+Tf_7$U&5Lt5fVMT}bfM@bew`UMuR zKf>p}z^=1r14a)7(g#`2Q8(EvCc9CHvX1$gO3N)q=e6jVN){ckFS6yLjWPnbh(rE$ z^aQWWN=*&A>g+rpZYPyMXXi@fRkHopkHc@hthBjFt367<86AqKAcinAMEMUX4~dq<(bbaBR#L9UPzOp>lZ+=%R|3^&>}Nl(Ee3W`MCr?PiE^c~hc zxE>R8Ag%7*?Cxj*9;Ly_Xeoq$x^z|xFdgRO5_DnN|`O`&j4rOALE zw5fVJvMMgB#Hnw(4lkl?h;A0lm(378MY+aDIi=4c*Auf`W_YnYPvyS)6`qi&|4Lhvd>CsKO!^x}Z(b1T*Pb z3d&L_MzUX1)on6WHYZNz!laXMekKx2mFiS<0_(_B^#FQr+Pb%c$MN#?S&lZFZH#HF zi+qN3_~K}@QYcFo&V5%Wm)gQgGuGf_>#+rwI(9%r;L%wTHDd=Q4Kh`Kk48%E8Efc+ zsT!LDux7^y%4MqFi??kQao62hgN%~1K?DYgtzsdGh+r?ES-QWlr3>92c`5uoefSTrutdYxW>({q8-yT0Q$zRI!#M?&TUE9HIs z^;co(9n^<6yozIb0hciv^F>*tD8{>kKgR^lxl(;3ciDu{sOGL1wstkRH>H zI@gXv3Q@ILe9LPr$rMf-h6p%?QRCxK-t-zvjUb>kR%dHvi!7cr@m)_o_;nU}EmdQq zh2ECgX6@>cnH=>Yt1c3>R@N(Pha!Wc-XNh}C|t+*(%0G0;e0=J5-gUf+C~f3|GJTg zYOXUmh$$uHdobWE3c9N4f8Z&#T?EbOZ(nDl2mFQsU?-#>S2fjdE}!A59#0RFSZJjz z;!8g6Uu+eEC^r0yO)zti9kKvYoiNONlQ2^_-nxR-p)w#T3GE;~1%S2h3EGAbO8c{O zZ4ypW;@SRu!5b_^{|I-z!Cp5!+>>W*V&g-;$?;**EWUaZ8=}9P*KcC`O?1Y9+-LJR zD!ly*{>+XG8fjFzNL>r;IzF3~UXw z!FA^OWbsEF&SBQ`Nurq^w3<)G@y&0s4EudbHFZ~o&O&6+I2Gd2r2@3M%s*6@KnD$7N>0+JWasmgt&Vf_?;PbuKYtvy)%EW z!%nKvdz6b~9Ugy^qZXI}p{X^zEEzaDP1wK{A~){$_qrpL{jR%wyHCz`+u4+ZpR_4C zd-D|AUPsQ}5U2T)D|{l!diO|8HiKf@<`9Fd-ATY6;tqi>Y*@ zPe}k1>{uRXpj!(#?WGGQ92EnI`6~}K3%`18-P>TgT;kgpLSnqQCG`Pds4_RuX0|I+ z{9R+Nz&pXRoC2H!mU)LYya)#aEJe?C#Hw!E?X9y9l3foaARE5SC=idUU*-WLgH_K% z?IvVTMgOVEBD86$ei(y8U|fUERBo`NO%mx!AfzDG&$blKp~=tVz2y+-teHq0?Q&88 zlsfsvc@B@?;%^a|%GW!UErxi`*T+m~eU%V)q;>9Du|J>_|a(jK8SyF7z- zQhSb_!)yKaZPcH-PSBcy{`uR+m(zjC?49ZiB3OTE@VfudU~e_;Do`OPgnI0~%h#YK z?OaiY4Ka{VFTk)&DuSDZ3;d;7EQ0N%3W<>1Ok2p}6KX^-+?KSi8;4`%YVRQ&S2`5b zTMs4Lf51#ZySKa;i81f>l+?dVnIF)XWY=#Sk0+8lguajS>9m)xc*Om^ugdex+d|;G``K}wzt`U!Izt83Y|vb3H6HZZ%0!Uk`xC(swqf(i9B#CA0Q6# zkKSe}-Ns-jSLyns@!)r0Iv0e3-t&AM$ypE4)&NyK3j${r-P#Jx!Lx7{MiL8Ua(a|A zUmy-MScH(u%wQXAs%eo!qfX2;jqS-i#ZVef)vV@PpH;DO)z?9OZ9rhHeWCC;^xw1ek>YOk++n2n2ql zzZ1lUFU`zpHdXb?KaPq|mND@APOH*RHpNsm<7%Ce)to9L`f zweXm}%e1p{IbK0VLy_zIt!!unVR+3rQwq7x?}|-d38_ZGf!kP2UKkE@zyTa^Q_es& z%|ZcC=%^#ET#x?ZS|kcu8{NEjdB1f6SB7QpPDCx4C!k4mWuFpGmASUz_IV$Fc^mGe z@f!Lr9K)v)9hkR{VuHN;t;4-shG|6e$g?Ps4>q982k{&atQGRQH#4TR=9!m^97NidQ#~}Xtd#rfi za=iCS6;=4rXz=eQD5=wNLaBfjObFHi0=lV6#zWp`y;IWAWqC{3f{YONH{l1PcG{XD z=8hHdvZfG#0va{;_n~ONeJtwAM^u(jO>fpY&XhoRw9`#V@URXy>;5#?@4wF`MiaCf z#`z5h#=xz1WKv36)X(wTS-&3ic^-O%EGd-5mf11O4cl4baLR%X&ubW`9~fLH2A{!Y z1ooP{C}X}_7cM_m=n>w$gt#0@7UwVG+qbiX*d%b=K=Gbl%)Aqd$b=4Lk$HYQ8#F?r zpR+*HGxAR@o92gT?Wh>nGc*RO*no;(0r4|fBR^@P%>~lJ=0fo!pSy!ar6l110${m+ z5T|iWcEd1@;+>WU%!9d5q_}MKA=fuXzHSGLANT>12)FmQe;N)AB@%ym{l%9V0%XyXN-cWq90VeRy%Facp{Q9HaN7(sVQ{jZx^XNeJ2}1i^{r_jYmZD z9XsKww1!{Y2_t-@#(jX-PxvhQxx}CNfKAjd<==n6lJwnpU>%Dy{1L+Y)Q&7g{a|e~shq4IYJ97OEj*G#zi1N;}3q=F}a2JcU6U3ZG%?3l2o636;i)et4 zD4OgU$`!|tQg!}Zx@NXoxgr%4lO>+&24u{h?AW#eFoRN6`{({TYY!s#T8hV-8s&+Y zkG4>u&&dv`W>>mL+7=QH1pln3Uc&vJ-73(Y-py_$2n5!%r2ev-e&CPk=A9hnTzSIB zA#V$%;uj#HrD^L>Jcd6~4}S`%;|%H;|Cc%L_Gr_ZM;sQx|ANzjwu3 zop=V1XrTi+<=?-{5>talN#Z$Q{VZ;6FL4w%B3KB2BA$Fw14|A!Y1w0B_U`B+9HBkX zz~TubUv6Lnx>cnU-Gb9(SH-D~mW>-lXa0Qy8x>9tFOd!xDykMB?eBb8BTMde0*lwZ z8v$QIHwvMVyA`5O_gn4n-}9A?uw#r;iAa#d?Tw9Wz|1;mrE8nU3wU&*nmiD*L=t#$0q{xpxl}fIC`)FJCHw3vuk<{Hc$i-ED&G z1@OQPkHP8ZX!Tz?T6}yCeN1&2O?GcgwJaE`|5MP-p|K zds3bh#ZxF$K47jhwX))@j-q4=$2v2Zn9Jn$X5PMf6k}9uP7Om_Uo}!REjYfK2T~0k zG&AlAA(IF%D%YDW1>zyl8&$ccbB67bZ9Pi7;`DRBq(a}(dXH`OpSlsNbt9a*(Hq?m z_W{A07V)(QS!7q$C1ALQH|t(JzV+V+q2jGSzV)Y%*+%^hi-=CP)zH+?UHEfYtg6ln z9H8RXT*)5a;`!ef>?rvas{1Zh>mXJXbrCIh#;Pm+AC)dpU1$D6rKyvvsn(w!@DAJMt(CT)F?3~}s_0QQ zobCS4s@0kwIx=_v991a5l_MPNGzo)MIYYb1awo1_}~+mt%KMyPOwUdiFxG|l`-0}bc(3K zk!c-2B{NY<;28Z!l6-^F$GjZU1Q6i5^eM&*^I{o4WiH?LDl{IW_+_W5- zNNO`wFK+vxK$zt*Lcz^pS`M4Kx9!G!nF3;HA`}<`3aZapi1CE<=AEl(wKP3x>I}xI zV+a)`uA`7N(GSO7roAk~8Tkt$0XjOiCOeFn4ExVgP5_4eB$yUAq@Y63Ki<;XCuEhzhg_|FfLhxK z{v=eq_0DEZMw)c-ENacPkANVN?7&c&(WG-G$`?H;mAzIr72=QbkP%arrlMwdfR+j| zfSUF{M|KP0iT@ngmZpA(uWbkRohxkyHos+L-$Jr9@e_0#+KlWPnYZo8E=Nr3$c|B( zyAinnU+)>&?zfd;%~{ttK_!Yhs#Keui^1eJs0>}g)+jDZF|`Ae9Z)jUZiftzY%~qN zk6yfhEM_0dqeymP(_n>qTRojCvNI$LH<3(8aUpF%SXKIvNB*o02qrNu<9~kr<0U@z zXRS48`Pa=3+XSzKWZz}}fUTJ1#5=Qe(zR@++>-JV~s)uw6!7@u?!8pcA)m!3rY zH(I{wBt+$_`O%Zm&AM;HDX{BC?&srA;fAY4&v6Doh=!X^X(J*7gk88`d*)x5Cm_4k z6(Dy+k^0i+U3}*$7{PpjpFIVI@iLHQK^VWt2c6dbtJfRbS57&4lUev*1rT_~f&=iuruUSDw`-sMqt-vk;uyjCCf*$%O`_t^xR-;SXXD zWNH(SEb#(tHh7~uGpj3#s&V5r`c$g>jj4ozm0J#@`hEabv|G0`FUS^JjKUn|8)`R) z%{|dNxHt*pC@G0|T;|P8cM`9Jl#O+(aI13A_i!+9QbmQ3s~jx{uz_V_*O*+x5LK)$3%#2EIFh$E@xgVQ(F z+p1poei<$VCy#o7NVl27W(U(=^7r4Wv63G8SXZK0#KxOX^w!pC;3CaX$NUa>iDa_X}k7pq$56T8HQLZD%%5=kU!Up z5F<(x(Cy=Uulo)DSOPE#Yryfp$KZCwnyib+TS0lz9B>V+tLScsjnP3b4u)fw zyi4yum@3^1n_+oD_0$=XAeA?kxazF>TpC>O9N*n&Nzqa)1n3T9%>l9KNrg)K93e6J zhYS^piMWcmW1MhW(v->%|Cb8wDZY+@qJy*55!Hhi|L0#pp6~IF2x?M$XQE~Mf5`GtK`dQzVKKYB^U7z+-Y#IGf z$Pg$F@aErPny!eOkKU#U-V*1No-Rw^mJ8abVPrfU<@iC8J~7W*S3CnCNm1LV0Hf!ITvr6M zG61g1KrFSot&>937cRhD6Ye{5PaDGkX3>-!+98Cd_&~Xz_WNo#6cQ|#6P%^gMP$b8 zKYln)+Js-72rY?uvt75#9QGzU=uSTrGK30P-~c9raYK0>v2?7547XhDeOOcL0XSg2 zsP*YRnDWHZ4}}b2qU-<2$jdKk{k!`Du*o)(IHglsU@kytl1mO#Fy3?#R&JpwaHw7z zGU^1*bo6Zm?xt9X3XFwI$|VUorPX@8;NJTrz7ACOp@Fzayrs;_ESz-hMuy!i(|4=%2+{C zv`u!IEq`v7qemI78L1JGbAQW8AIdU}bPaoehMEAN3#F;9&}>!QN4V4ndX^F%jdG zv@K)l{RTS2=!ZfEACb#b|Iqq{D4Avdsq&4jmD_p#A5a0gw{!vqC_P>&J;>FPGLj;s zCEX%`>*|-?pPHqpS}_z3H}%-esE^be2?i?AA%|L4l82Uc61%YsT(ca&!|YlgS0hl2 zQqp#mgfifGL6#xXT=oBBRrrxbf6TNXk}TTot>klezLHhaGa(e3K_bH z$M}K<7$$a3hE$!}OT9?XxkjlP>4!pw5HVQxNm=FX+wNZR0JJ-STD%N&z7K+8H2qAc zpGW9tCH=faKU?YN8~SOWpC9m3e+NH)U(z{MN)RsYSmJ)EkH9_u)b>bUj41OcmC@Hc z3W&I4sG>9oJEigjrVOUKxg?VT3UDl)x{DVnr!LN(0IVr_`E? z7YhH>2FxRc3di8>;?yy~O1f>hIg-!gE5NM#c5_)I27D&wRmM=d<7WVG<(oNbyK21s zbr;JXS2vvU;Mm@SO>q04+5u`454i;NMvwl*T?b2XBUn$MBms8efCzGUY`nl{T++r2 zpaiIJ3MwR^j3L-~0hq^iW8|ZiK^eBvcznlwni}NrL8ebGX@h$>GwEd};2nAzf!`m6 zY}j?64hrH?&i}lm4WHFYheuAOkzBo>^)xw#*JT0y69yYLphq0|N9DEO1s zN#5(OmwTEbL^=0r1j%qck8jj2=~awt98gxMmYBTL#4_d0z&0s_6m&SI{T4T|2&^_1@7EZ zu*?+X|7&i&qU{?NND;}RME-m z45@KAzQqxnZ_kmB#LA_e#B;6RZ}Z7lwO#r!GNJ_TWuv{HW0|jhnm#p04JIhAb+E@d z64z;Jxr=rpaG~3#udsT}k#s-AID)s(+XdybiBoxjzz3 zC5ng_K>6CibdHShH8}|Uxh`5k07T{JvOp8-cXl|jmUsD!c zjs2KhIv65IqJ!riDa(<}BO8Va8>*g!Q>{sS-*s4f8PCISXgjz2<4X)Q95C(Wqi$$p z#_gn6f`G&1nWnro8+&6;af5sX?{HuOvtGg`Kh=%Sgmqmf({Y~Dx-S3dhW3+)Cm^)p zT&bszDb;78dSGa_l=Gqof2Ij|NB{TvTTR+&esAIeCCUA|VzPol;D@{4guR;;yx&dj zfR3aD;QXF|B`@ajMK`rWeHu`p!X@w#p?v#Im~5!#Ki$+0nZDsww6r22D`=UUH92S` zZIh+pVjFI?u=G6>@*CfYx8w^E&3%pn0zC!GEU93q!;%qMlf#z5FqmM5#OMK;8(eRn z;PY;2L%pU^Hc4wQ zCPt?6XK!m)=WoO8L5{H6enHvz4bc)ymkd#&zhZ%eis$w>lbpl9@o)~Q_OKjM`+Xz@ zAYo6VTm~kc0=nT@1c@{4r>-Y^7g&>P;Ao((nRGP4X|N>MI071!RTFoVOzMHg_DVLKBYDiIJLpB6c=2*&7^)`P1Tsh!=P;Tz$ogx!(HX!-M;0C9mFejgMh*GXSRH4{lJwPFeZ)?`Zq;e{* zLR|Vzsre?J&P>?{F{Otb5Gwgkh)Osp$VbX93;`JqVjY=~y67lMdAI{!4V9Cpb@r$6 zsSa)TvDA}-g#)ASwvg;vT15N%L4YPKbm!ggo=>o~rF`PM9ok3Zk|8b0vLOiAIorHk zGaNHJ<}Gtm@G>`Zd7W(xBxU39Cs#0xY+YCfXNJ{mB>g6-{GCU2oy zzvp{^)VbEG*-rlH%d_QT&X>qL4I2n=x?LUGsKw}Zb%unQ?Y=!qH}*!t2zHewX0Hie zd`u@=h;{&{Uy^JixPVI{bvyT8cTah6%OsT=Xoh5y6|6^7*0`%->515|-mvwx3p4Cg zWshrco#efV%?c@*ITbB?xVqZmC?&|0RiPLT&#F(sD_^W;UGklKzl-SHnxV**L7I+o z(h@t1zxTEj`JgL>{ZYC58pXC3u-=oexkN^Mhz^KZms00L(x8_o!JdFUS_eY9T{WM7ZGL!WHR!Pi$49zLi53~PCQMQ)1tS-_4#NnJIj`GJfY=C+ae^bK- zw%?7}%p{g*H9w_c5&49>nycb*xL-*ZtLWpr+2CRWb3a0R^u3H`M&OW;saoQ zhIRy}gJ@Cw$L5e2E{Jtq?I?%5TQq~(2r;U>x`bqw8<9ZPCviC#D1ES5$PPSz!i@z7 zy)BcO%aS%z@(K2@0f$hGj&F2hA>%1e8!VjmpQNJ#qkY6_0CEA^a+Zjgw>{+{D5dS- z$kCju#z8O^*26b&wL6PmD6n{~E@8Yo7JLR}#~vtFm9=dC90UQ02 zvUoQ|QWH&b;`pIC+i9!@rek!p;v|3GorTS%Rs+0ar%V^*a7lJok}Z3hJ*b;W)^p{* zd8P^A2AGiw$k{jnS!GhR8m2*A7nyZf)uab?&pl>?2aC|rz2y3Mz{ZZiaP?2}{vNEK z6jZDv1F%jBDGT<#^=!QX%Xvb55Pr$yidIBH{KBcptPrI!nh!fi6CzO%d{S(N*0@lL z>*L%|(>QakTad#zQvA6dKndOnyT_HqG{S+&C30YL2{)^g9?Z9^GR$(e%~Oy8O6!55 z?Aw+xew%xFve1W%5ko+KUCS5y*y8Hty%K$BfR;qGF^2CP8$}|>(>jj9dx1!H=GV96 z7vJndyGZied4`h@Gya?>8>u$)gPv@_gH3Rp>1OiH5O0pg2*7ldr}?&KrFy)W)}5Fo zP}YF?G}unFCGUgUGjXIzv&a{42fn!UBHIgF7>qB0>fBvO$q^1t!fxVr zJ#ZWq8O z6jKw_&^WPJCX*wuTn6O`{9Z;m$Sd7El4Vm(qlwZ0F?pgr)6cVmDG9M|bQ)g5R{h~@ zR0J7hT#4}@7fiCx=SA8^+2{I4u;&W$8X@VOg%BBDN}w1S^ZER z?!~%K*yqnvjjI`+;Vs1toI>QHP0pda+m@jXA0Ux|R@Y z=9AZ(d8`J+X(u`hU$89_U{pm=2Dq92klOJVJGgrXHe8*`M|WVo1D^c};PNyUdw7-G zL6F+)etMD2^E$A;u)X;~2i8?x%MW&7Bh;_+b~@H0U^nECtaos?m|vxJrO)SMb*%rQ zxYP2s7eS+tkQ`|muGhm#AsD`*5ToQWw$wL6EXQtv5vers1O=>>wuc%pK*~t(nnJyn zT*FX^MTjYs#D2m#n-~DtaBLJ6W?rXb5$azz__Dx$&OT#)al`Cn7OXJ-%o$>%>&48k z0kv9&zAr(yWM9^|>tqt5BkPZ+Gwtm_5YesegPm^8g598%J|Hi|@E3hqil%Nc|HYSm z9yaSZJ_6F6C+_17G^t7@I}gE%z_0kH9odS2eaDdG8VCb(sytl-vzm|Y#3rd{a!V&R zwDV_^S{9LsK;yTX zSNXA?eWpR&09;giP=*LX5T<0H;tWBJ{owMP85;ytN$$$IxOH~+XVFy57=Jcd{T#RX zvtZ4jReY;I>(ys5Fneb)LlJB#<^s_5Gh-uLi^=0R{aK$bClH@$zHp-+9vgAic2D-* z>TdKkxQnm($N<(&{R*ES!1`&9yvLsp0J?Gn@Yy~H6tLP$r-RScUEk;Nbodz$d@T!L z{_V*#vz?uRhh}~@fK60?$$JH|H=_rkKd9sG^$K5O$Lqid*z=$rTn%9lhBXpi_4FuU2_v_hhJ}&b+1L|XlZ^M9N3J{0p9*F1 z@eneBt~cAG`*;SkSDEYfSa3l?_#X(9f)Avg$-8svSKXfEJJtMTDC<4kwbN1{@#THJ z97xQmes!3@Q(1RjyI#(WzOS9DQ)1xZ`!&2=FZZQ14e#;MVJrgPVC6fzJwO5y9PYRUk1#H-l!b^-$>+ z(3oL=1%~MO`fwH*`T=ll_>NJ-{@L~M6kTD6EuHZ=EE0WL&X0w&K9N`6ah)Jy-Zmr# zeQ74<9Kg|*vQKO^^3VttrOxAHBG`+NFF6sxhHJVuaNkJQTLbb=Vk8@?{+2%#$&4Dd zg^Ng*5_Aiq1d<#Hk+8fvxVp40cfhp!+dQQ!i_m!Q;g5G^NkK`QiJ$`Fvcq^x#K{-B z9c<#2U0IaIeKT+9%EG*Ue;cVJohFU@cVj*CoufvOKA_+qc+7)HOiDb;J+{hYD@LPW zF`;Hv9@`Mc3RP8kY)7c^GPE2#zCb7la*Y+G^tGatzEqS_u8K|cO_?CbBjGL?Acmv# zs(i)f_j_AGwUiD4D5nLEB%E;7mAC^XR??8hsJb5fLb-u7l9iQvtlKq&J^&dawHZ?bWZ%;>rlmTT_yf?16X>9MA738D zdZ^#$Z$`2H2~W$Ynbv?P49BKe{8%T4&PzO!*E#X~+|6;MeC7N?07 zUHO6@EU;5wVC8_PgTJAxL)v)JxhuEyU_<(o3s}S}_&Ut5dzc~<8&`&!FKO+aaj$5H z9Bs1lh90b2exPLt^hTJ$gHSk2=z^}q6kMF^GHgQzzML4zPpvn zWGj3;RC9WIID9Cjz0*i~$@TS6ZK=KG@Sr%E$`VEk$G*vR!??bMIyu&fL&9R947!RO<+L$Uh4z|0KQXc8jB{zzM;K}GRRCAl) zwrn)?)S>%;;$ZIS5>M&Pda+1k#oHd9+naUG_W)y>2IiXht4Rqp3cC!^5Gm@}Wtb!g zv*KD%*g&4sT9IzE4=pH%tr$un4zmv}U6Kv^nl?q8BQ1vjGc+-v!S1k(q+aQTVLc9R znpoht-`wHheOSjKdr<+XiJ+y!wd^x^vG+`K?4Vq*UV&ez!$iBX8Qs$DaHck66JOYe zMdr7swF$jy@(P+RdLVDB368r12^ED%`OI&y@J7ToJ2n~7`E{tfKcq2ERUk2~_Lf+0 zaT&EWIy@+ui_`*Uoa&!=19JaPxhwp^%Z;bf&kaDgAVY>PMO+ud!v81p?L3maz>{KF zPfd0R&xv98Yr2H&`XYu2wPycI{LOxBU{DwCIymYFVF)wQa+U+GKw{%!KNjgJ!|B|o zzbhQe5Iybq<6&-kbPnV*|j^&^4q z;-+Su7-YWbxwNwoFT0u`W^kVY>;X;gRz7zC%keKlQ|g0JrWID|Op)n@&1m+?0W8L| zfEqcId&QzLGTfgJp|EVQJD(TJp3&{Zg2T>=yRIiIza4meEDKeC$2|wKenBP358u{} z%RRm%69!77Q$-M;JdiC>|H$_YWXCmYxAOIaSgdv}oKU5SSNMTJte1K*zdDHhtfgFO z;2|H4L!5!%jAMf}x2Ev{gIPbNL2CZsVD^BP8VC6=UOE`*aLXFZgxCISxZ;Bw-vm{_ z<3m_dapr%KinU@Agpk9^F;83}e&PW&GwamXSa3Gpzmg(=t-w zdS3r2Mi}1WbVWZStIa*cHjyQkhm>_MHztjQlNHr6XmM@Bq`|$lAPYMr;iBBi%$3X@ zt`}opqHTq**jc(Fi~LMiM*BJHC-NAVgRrf!!5TE&9Tv=2^TYAXyW_j4*xmv1bLknW zq%2j=8{*mE0iAxvg5R#TJ+!ao8au1I++dLM2a7k;nsvH<3EeN_Q1VYaHG!pS7h<3@ zVD#Yq1eV1X%a_Nhc!%L2MgF;K*l@N&4dd3ICbBMZGqHh1n8mf|29?!MM2z!B98F{c z2JEV zulPj1Nd9Z+b3~1S(E?}))wnc-DrS>ALG174w7(aJHNzA9MQjlwM0COsDKet)V-SnE zfTOXji!O)(nT`JxS%s)l9Hdqim6Q<5@4O`t+lctg0V2G$MOGM11-@%v!B353Vfo$| zXv2VXYm?9*1n_A+3m~=<&M=D$P?=$Px~T64YKfwLvH0F27#12rS$}I*(oS9 zhzwL9?f(*~EoU9gOqvK;Ln~gM#(gn{gzp5wG>5sP5=WAodfPJ^5n|)djbb6X1*ntg zZ^js`7U9QBN3l`)3sH!(ATIs?D7?KDiA_Ich;eJF8wVWr9wHBg;Bv!Fqgha9 z7m808e)IsTtQ4PI$2}xCT1ZWgNzZBlVgT|w5%t&c86#f}o)0XU{|>g0`_lH}b`gd> zQf2><*Npi@%V>`T^J7lLST`%;FM*Z5}y_tpWO= z_^t<|_=LPF8N0%I257N~w~bm*1eSxmmw45vMPdqCvxNOV7vq_mF=_Xv>*-8q4}-3q zX~exBWg!bu3hd6HXOl6#m>$9p#b_D6MrWvqqiL_O_iK}xl83fQ?%O80J0-8gU_iDN zyG$kK-frf*$FT0i<^5$0=r-U3-5JAz)TepCeJoPfXEkt$WMVnO9k}?2kGqd0Qkug1 z*b`p6OEAxCpb8BR*4_Kq;7}5Qb6zO3>Yv4n6Oc&S*aKr(q<3*)%amW?&x~c^ezOq+ z541(6On%O_P|mlFWdlNk@xdIgF?BP{Nf(cXD{J25j|~Z~@r|)8*1!AH*nChfq_bacuCA#i3MQVw15ymG_|QEfPfZ?5gDR zb5yW_g?tbpB=s6)BlhGq<5*nB=UQVfVtK$ES!gngNc)DuU*yX+8?ywLp#WnV%D1gl ziXp`3vJ&m;2+9rAh^wpGqXj zprnKkK@jfEAW5kZW#@|T0@{!+;p`m@VOUj$GYruOZOF`ogxUNHo`LgUd=`otwqyaS zFB3UgsESlyQTiCrz(dnnm;Y3aC) zqst-a8^p1QB`miUw0BVBTvS=qlIKdHtWpo1AF8sOH7k^AgMN>!aCS?DK`j+dXvw@o z$=pe)P>SBp=08qiiI2Jl&xsqhh?0xZn4wk{MT?LF=nQ1KfR0#2lp!OhJs>rFOz6cX z9O;<3du1O~5ZuKc?jx4+y!%;~Q6H33xsix+n@DTLMQgs=QKCM+Ij<0QFvu5c$rOZB z+)oSxEKt_*I|cl?$!t_?U(ji!RRaXfJ{>pD=84PnvE4p=Du z5^IO}@1<1Rle*U0macHs24A0(+347tlFa@8u`-{wmCfamQ&=y8t&^s(i1uHGqHem= zHu0yXuo}&XMSMyMOX}7QxGFFauf4{VxF*uN@I_4by@(^pEN?M}f1JW1)sg&g3hNT` z9Z(+EN8^r4t;QbU%=RI7pUS4F=ke63tP6xOl}o2v9$z+S}6h7_-Z|ily+j)fLp$GqUo8UvK7nVh#eNF(#2I?rf2?-co`x75O2l=8mEem zcmWidK>G=X`eAYy5?taX@b@H8FhL$C?@kw(?S){+^(7L5llYzjDAUD@AGaBm&s+*6 z3PC1FLL1%q!Cq)at>r|1vI4JKpT)`1-S5w z6F&v<(lihcr|`3BtXmgKS~9Lkbv7HImTN8x*uj0JU>4r&sf_fH2|nyNK71OeYF zyZ{)J4>>cN>4d>E(@Ms>e6PME{=f-kJ%XWt2%Tw=tGhvqF{J-o)Gjt!76(CLPL9IW+_X_IhCch~U7)!>^(!Lc-`; z=aQaJRpjGGY`5f{2A~;~As*y2XRz>b?-?-Ake`=W8z2+p<3F{+3YqD&7y-ea%nH{v z=D!QegPtOK^6fLgmyF;?X0RZ?)gZ*f2_~SUL-z^PP}4*vzdZvOTx~}ln9c@xzyG)k zMs+sv)O0oqdwpFx>*Y19<-%<6RtFa_GDzLBgE4wP-iQyOu|!yJw?&AnU_<0zEx8o;HO|8< z+1nF!>%br0mchc+J^6tQ_81s;@iW=e$-iS(arBqUqyKBXD7$>VIH-I$f)C!}?UoM{ z60)L<;o@WED`5;#pby=c37H&*lg3&j@dGg4o_-2*DDR*^7HY(!%IiULz+@^DbLe%h zwSrLP=p5CznEzZg))(=DO)=teC=%dyB39t(L|rdD2?+Eb=4&b-muOk;Zi%<1@Yga~ z`;b^?&cxQ7Tagpu6y>}ulMS12M45^fvDFW0_1Hfa)(>cJSxl!BZ$ND10AdwC(c&Wn zEr2@bm8*xeZ@2tOK57>0;xxdej<&e0{>@SMmO=jHEao2)fHEN@0J+H+YbEW73!@)B zr0fX3aTW_u@8vsZfi_T$r?`SU?}p>U1#)oEo$`LnI+US8bAM$Dl!KrV^Me%pjOfTk~o%#Ao=P z={&98dII<^x6NhY@nEkt;Ff0cjk_*(55pu$E>kCQI;UlFCLy&w)tYrJVF`mwsL4B3 zoN?!U=dkoBCxWAB^a5>R8GBTqKxT-s$OARr@$SOGx6WZB@}=QNvYiSmnt<2Rwm*a> z+el36cEv$t(l*{HLRlGU-3v>}F_orvz{otz^=i{$Kp2kXSsX7MMA#BhEs#;PYhKy{u#1!Oys19_#LoO+&3gTV~rs zi-7afKXE6=bu}$)cm<`9w9MfLA;}^B#hV{webnc9?|-q`$!VBV@Gf$&=Rtpp#v5H0 zY}@dDqb8&bolCuOq_z_sm39OgZcV z+uYaaMJ9YtqY!(jGjk_r<_a%HBAU>){vz6Vr z>mrr_id+`guv$QGwT)-we|0ogB6`mKn>-`<%!gPPuK^1sDDo6bvU%P^IJU?0?GLeT zQ$uC3l`wap9Hm+Hi7v`ZVMAYKsGS!w09BifWX`3?IrKULURMs9j;?KRhDTY{cHnpu1vQ5XnCt}699^#mNBiF8D+yLOk3NYHDCmY~Cg@ZfSR z`T%aYa2yy%`6qLSbV`%q2}evqCVnuRg?Q$I9V9OEKeJh|X90zeaqov&cssDWpz0Va zzTj~WvoZN!fG7zsPTQ5oHswK-$`+_dAOYlr1${B3JxWj#(UZ+h&8ALO9`p)A57>ic z7z%q|bJN{>qxVsCfVt@oOsXbdYt3LyViJq+2KBmCqDq~^g55f*nt50bP_+|$WDXlj z>;_W~7*CM+dLxHDu6a9@`#gfr&Ai_upfLQzXFS4eV;ZistOs)g43J7ciex^YE_u&k zym9nkML-bKI%#6!7_8FzR@LSa5CE#5i&v2EqiHF0!jd8E_&nCNVuNNiSz9r7NLV%n zO!;LK!LnFnhe;?fl;R&{QF3a5mRaWWhaLrsejV;OAlUzhaJv`@?U{oGBiGVgnnqN4 zkS!Z(bCm}zl=(kXh?dXHpU{elfSA&08A)#472fjL@~!ls+-g|Uk>A8a09ty%(0Z3+ zG4r6ddOK2>5&)A46J5e;K+)F~ZO33k8St>R3KoeIUdgH9{U3uY-2TOU=3^|j$B#%^ zKOSj_Y(*A1D&CH$5(D& z$#u4Z@w#xQu{F{Kp)Op zlg|4-0dn&Mp8N!h=<^nxFQ*d1$d#e#nS?BFV`xH{bV}(jKI=(vTUWFNV+T6Xb5F3q zDK|0!@ukN}k$_q;VoF|J5gF4_vYKG$0Fo>RWm4%Bv4blqz3GakA}JhP^2R4vKyVOR zfGtLHiA}|2%O6MxHcoa7F2p@Nd@<|Z{^Q@t4`A{&@g|?Vn2q&Xpu9JU)Y<&i#VkyN za!T>cubhcRA}P?u@fcFDEz(6zhHN4ZpP7Ie*2}U>fTlYlKe-nn{S?Sg(Ch#9DUbv3yz~?ss_5VUoN2zq5={)=^I%lQMFoW& z$o0tYd`%bK=xiaA2%RzPt!nth#KIUP5jByNYP@rD2tvJm5&Mkp^C~gn88lm-R!-|M z=3gS>hEUnZ`yFayY36^a_nt=?Q>YAHb4wfM(_4&5b)kQs@Wv&KtKZ@!Mi!d?!F()@ ziBq5x16Q{|jT;^$0198ZI8vM&(cCbzm1ZxMLa?zcri0eo5GJ!eM@YCOs}6d17SmQs z*0$nmu&V)Bfjd~TjwA$`LZu52RjMs{E6})xG`b}~kr#YRH~4>$`{A+aawQ)T+cD_| z&7K160_gQAvFF9VDOQ~!k`ZBTO0(qEh}AMGhZ2hZO1e7nloCk*O#~~Er$rVb&HF|q zWF65J>Cmo(tn<1ePXw$fr;GE^*xT4;V51gY#WNwRPFM5?0@jKWcLpXqipu?468e`y zC{cl#x}yD*B3YQ5JansfBaCYVv_l|CzjS)xO2vX^5JawX3NSWiQDBJFi!L}(0TSRU zW5%WUtV_liRKMmv9<`M9%1=3MTV05xX;78?%7MU`Y5HlYQgp_#Q;u)Si8QfOBEV4u zc6!PB>!k5Z%H%=0Q}rOtpU5FgM@p_VVQ$TG4LyNQr%X+~(ksQAPFs@mcM~pts)M8_ zQt{PF+PGupy!~oh2}v@+BfND+jU}ZN>Xf#x3J_B=E8mj$MM-9UNrdf7im>EuFNx5t z`W`{oAY^z@YpgeMrMIo2S`7u?ev10B~I$?9~V8|adJF&)^1&rF9Tmw%` zkVf_(iT`Yin>7n5f=kpT?z%B>XE2fmXXQbAjxA3P;)76HS~Ecnsk(IC&S6mSvzYcJ zHZB`eXa{cWu*^7ND?~Xex5}8K)|7p=!Asx<##&RV6z&Nnx)Sd$C0;&bbUP=g$0qJy zc>#UopDbfB0iRK8t+%eelbQX_7Tb3D*2Mo>hHK1LC|+7utw*_gsPLF7xap8luQ=aU zff`pnTACdn0RF+i~ZB5<{WBtjcmR0NI+ZPsDoHcp7Wfc`-g{IMXcYBn> zbVLlN!k`>72+s`BH_ZVI+f*l_@EUgtMUN$_T_E0o&D%#J_v3b34Ek)O;&Zka~KkM~XVh;+uh zsKodudPF&63Y3_jM2~1^%;QQ-Xrf17XUrTWCNj|@)){lZ5)+l^G1wUsuf)VBdQ3dJ zK&if`5;Y>xV~R78zY>#_=%IJUXq1?7i5}CPF^#FR(GwFrW;$ceDlteAq|-O8O}5g6SQ6L zrz-5n&0lZBfZ{kOr&uz_`KhiP*F=w&9G%idP^zOlATB(|>tx=&R+$%e5cGzC3_u>z znD(2>k3J2A;7*E4<<$uIY%YUDY@qA&?Yr>C^^ae&?cYg%YNs{3vVkH|#qqYz6_CH{Jkn+TY>D-B>_!H6Dpc| znywo(qa*}+2?1=x`lskxG^3H9&t(H)kt8sWt!O_O-yBPFMc=9X)jSrm(0QaPC?^~q z!Z4<qBO|8I&i$-5kshG zlE~D-MRf{)b0q-6{m6uL_fb0M`oA-UlBIzN<|P^_EL}~Rdy#yK_1oG94beNO|iaU!quSVNgD6;sv;=Xsr#p;of(qS%kA`Y|8hvYNg`vArWg}}u0 zNs|ilX<`v7CRvk*@Wh5S!|DLQS*nIVeM;5nDG%=R3?we>jEMwUwngq+( z*iAI_ma&8Dv-yAm)?57q&n#dAH5bGA+5$F06F!lDUjXHZyA!y*09g6i3A}wF3)PfO z;L(L_)TDw5bgjPQRfE2w4|1#?L!4I)Ho8X<1`z6H&T*KIco5l?PhZ^gDPaQtq!4Io zy9xYUA-2Jl@l=Fu)f7yb-Vp67;gmC4FQa?AqW2-1wiPmLq+$&b@(ZTu180UUGCI-~ z{gN}9&=Y-*8xg3TbGkx);Y*%n{`vD-i=8ejjL0CTHx1CebLJ<%nRp{<5eMUKKZLx_~X#44o(irB^nSuILC_V!(wx4*SqHKGcByl25MdY~$k%xCw;G zU=9U4QBWR#w6@&w=GeIrxy6eUDM&pPt7VXSCvp+At)kJUGJgaZu&q)m(~By+nfHye zt!kjpD0`>;9E#@SEnjSvuQUf#)xYuP*hwQHqGkEidl4ps)ML>}2Io^yi=cU5wCipG zQaNaGagKzqsUarqxBDUJY9F7o5NUBDtxcw#OWV~L2rB9$s0cpAxMvaTkiTOB-M*9T zQ5jXMXg?x{N^C@ArsMP1Dg2B(us0dRCB2m&kP5y9;rss3sWkcE{^gU9;%$lm*}E^9 znE>Ayhz5N7fIx4I02x0-N|cB-Nv^9#(|9zhGM{9!Dqt1rsI@ZNJRI~g^Il0ExB{~8 z50YFOa}t(D{IV^QdVoUXiFnXpABci`S`R67dwfMc_*R81?q6z!dGR~$Eodb63GT6O zNI~L|Sr}s~wG$c`cg&#gm2H_mrg>)lQp77Q{9`m)*sXpxA|w$YtG)w*d_ob+h-|s^ zgtoo(5Uqt2nBzL|vLY6vxo+Zr7O~!eJ?CLRk}_m?t1@JLGVfc=y80jf1q%yTZH0P9 zDE6}^zMz=-wfDtU6GnQ3u<(^g=@I!85H9|1F;pmz^TuMRq)y>st3Z@H%15qZUB~8) zL-Q0swe2!ZtaViZ<_$v;WR8bEjb6-dO)>g9rEo0G72{hY6Zs|-lo*Vdf1s|OGRlRz zHjSm4*3zQ*6G0qnj-7Ieyv*;eVx2?C&10BVi< z_#JbFySd62t`9+`F>Oy5D=1!B2qfAdIbz1Z!kdsAU%8q^ccIm647SSkNz(Zp(#2>H zjo{vZm#qdZ3h8QAvxhJ~qe_6WmC${8!%^kFEGp?_^C7#^w&hcbrFD1EfMC4JG!lnZ z#6zf>?$VASpa8uXkNlNxy(f$}w$rP5w`6Rx_!m`5X+5t{G9PO<1PD?YmgZ6#f7jz^*PtIllX#+0NZ?Y}w+k3qzCTK7B)=(}DiBhb(e z$SyQpHX$QjI{?!pjmWtkZX6&mar}8`Wxm7PuVX`8q*B;)k*9;WGnS{VV}m_Dgc8OC zzIGi83hQ|jjAjo}iU)vu!gyvH1of&M0iJ~D#LL&Q0Nphx``Eq3DkbGS{`)%CwY_9D zv_oSGxbF*)uK^i3?ge&#i0`khivZ&X@0ik9T^dZn@K;`d3}P`Tc{GrQd1>PAk-KtO zO&tvV)5KrSH)DVyDb1j@t&YS7(2MCxh6Kf>ePOe7KoVr|kW&M+P?&#dSx8VyXpg9L zaek+aa}v=cU{M55hv|h8!{<^~x_4bk>J>PYW3XLnL<1h_*3v1s)xkN>;ul%Z9%L~U z!|u^ln*>Ttu{U6w-mzr5aDQA`AMiB?sok$%WKkXe*iY-uWkoatK3}f9$a?kI`3d&h zeG8rTp_AElmAgq}iEpu11OlY+=c8U?3%m|}N?UUdCFLKy1k`Os5+D5%>&EZA!~(s# ze$o0hY(1OQqh;qhdvR*C?8ON@T)p^P!=HSS^@yZynBQS&J$j=nI)QO+)0qp8@+0e6 zpCF~Px}q1_e%6c4ywl6L!Sv+gUWO)qEH8YSjShCDJ%BlHDGCx@244Fz%T#aXaU0lx zj?=*1plxJ|$iOB~2Rn7i1~w?Z=XY&}>Ysbv*_)D)vNwfzxO($8KevJPbXKj*$$~a@ zzskco>#ci&7`#*`I2dr5;mRwu+gvB^vDZCJtDIZQTDAHZEQ13GQ^sckDw_ z#cKm-llE0MsWsVKaW}je#6BgV6g}`!Fbvoirftz;OG&pY1$2Sz#F8yL`S-6tQs@a@ z{|XeG$34Y$ud+UVH*kVwCRVo4dXbS&eU%LuH5x2h32p*bc-WRW>~6Ma)QQb24-O)E zFJK_RYQPjMcXulXpUnckko{s?pz+PCth4{>;n)FXdRrc(8(^&CLwJ}na`7tb?eh^d zIVS3Jng|NS^6-DN-uYK)ivzke>V+BG+zh)TnY!X~>;zvU>@K2oGAEm9_p3^7q|?n2K<0iyVT9Ar zYjLt#lb<3%D;Im4c@TT zx7a?E(|;p7r};dZ>o!4Is+teq#CrSYpdG*{A%WHej$LXrU$Tiko}Ugi9ECGuhRV>$ zxKnl?pfkhG&F(O);MP1g!BAmE0Og$7IGwI^0!N0XI%S7;olfV*z zS%+#keQj?SH_Accb;$5}zU6HeecxDv=JPtc|BZ5$s?K2=Qi#Rnt6J92;P!dr+ze~; zn)32`Mf1tspCC0`LGw?9zQKCXJ6tN{0Q?!B2s#QAq^GY(ER4Ac)$o7_KWSvr~) zC>kPNca&Lt?q-NOe-+7BZ)S@_Z$Ov;J(~xW0N2f{uwfz4LprSew%{PV*ozOPXWwX^ zxrNQ{Jgy`SD<#xC-(5AWJ_phSWR^or;s>^{E}_%#4kTDt)YlaVbp^b+`W?2^?_o?t zYU-KLD6uG-&{E+!ny-0>&C=Ak@dNL(uAPZ+kD)B`SqEs6SmYCnS=1Gu<>BwLA-x_2 zE^A%;280P56V30e#pY94ipg^GjU$%gEqLm_DL1+$?aF37F=zTiEUrJm3E`yhLC-&OuT za9T~?ZeH~P`%&}m*Zj>7S)w|OpZpLvgXy?r-neWjrjo7STWq;_(&6+Vj$doj_6@pk0FO|ke3q_Mdd#}`Z@-C`OT zw<^6T<4d-&KAks!=4y6e%-^BFH*>J9K#6^Yf3Xc>rl zk@h+TTxsk1zdnNHppW^RA7SGOUiA^nNxluZU>@an9?6x({J>&rAumX}}0FR_+3QRl9gx&^ORWz4{`g12*+tFxW3@KvASj2_M_K4H;8>oCILLE%70 zz-pr+i5X|+ZrdRzoxulehb;b3uHVjryN>yvqmHZTO-pep@4t<8iP^HVb?{5ku>U>y z27Y)u8`61^Yw%5S@M&RU@N;;`r)+SyIK)|tDbC!qM2Fiv$PR0ZX+b+=Y<(yGE;03eJH-k3HnY>kh8o}e&AE~+W)U9`QpD#$%8Z-0iUyJ8V?75OjYUIw9P_A*d-> z;gK^F55OC%Z9N*5D&B>|VdbvS&b~cIPicN}sbJ;#xe#GsopFw@e?#-(Kj+n$z1GH~ z&4w9{!GEvYPo**O^%iF_5k^1YBy$NTS*cFEz48bhD6nSn_j;tn(ZKymA&aqi7oS(k z!Xu2R&oCoR7&>EllIrR8l>v#(c_2ZN5cF35IuhlZJGq)c3RRHHM}2UcOG+8beMizx zTGGzy{@r4f)y7JxLN-A$NbU$Al8F&OOW;VU|! zvlG8x5~bUD^tyZg48y!{PIzIw+UT8_>}}k2?n{=ZR#)$u z_ci$LILB}9W)q?wx{Co$YlKICRmR38&Bk>?!N{QZ$i#bY zBwhM5ehuER?E_h67{hF~5>7T+4{?$zw+hHiPSLtnXA&P(&IU&fZjX6)iha43X+yh~ z_0cex+W1O2n-sXJSl0UmapB% zf)hLtkuDI2L{jQj;yUtP1xXDM9ud4Le#3nMc6-y(Em}*4yEuVYKJb=jp8%&HaHvp{ z`E*FY!#4j0zV?>qxTrgBEhFnA3LJNVV|rtw*q@db`JgTS4uqMn-SX`2eiICL9&+2W zTil^7&1lU}%6LNz>uGVj88aF00sfG?EW!sxh?|H^x5kT)kdQCF?b$hhLqZ!xsJ>|; zGzlGoSg60m^i7+^4rHlP$=n>lwmuN(HJ;?fFkLmIYB>po5h$)wuvw{2McSMJ;t5%b zRQf+nOMpyDVI~YdE#}&TP$9R@WnITh1yFy{tu@Q@$U>rypyd%;xRdZ~{k8<(>>ddw z_7pH)d$Lpf`^$q|{~a6Y0TYM*Tlo6#V4kL(MyimIrU(<~uv`@Y9xWOXcB++ni%Ps$ zO~BEK5Cq4t=vcrPxCFIojQoV@X`?YxMX&eBwh@WRDQ=4s0JV{a)zVnV7W2{|q5|$YwV6r_ULr+rB-IKwJ zc2Ma}VgsnWkYy*@_6rmEUzMPOSHDCXL9WQchIN>E+TcB_*qDezga_>Nw-g)c{4X<( zr<+AztfLHzn|M;gS5-lv`2In19)TzpllUn#Fd9*YA|VWat3ZVDO8tP%#~q7NkeGdM zvAUw&NI^yKa5VGlRV;FDgpvYP!kU`(hQ$q5*U1Nal^Wv*y_aR?CXH!?QmE(c(VxeEU6boA}QxQLF0fZ?8416YspfZ4?WB`n*l+NVvv>h zxH3>ONK$W;{0faq9AM4hl9SdEKk_~6?1x;AfJl@>GI*wbv}*XR?^$?qn-2h(E#i8q zjVK&I*;7;@gyu`}Jh^ri)9%p2eFzK~$5MCk-DRG20A#Xi{=xz1B^B`Z4zRBMA#x{m zP1}j*4=aEIci-xYgZKP1kDOUQ9g@d`c$r(f7#?+yC1}`5KJOq4(rv@Et8~SEp~+_R zQPuEO2TAgB?|3rF4^2U%}ikEdL?jtO{oZx}uYS)>KKq znD-H~tFG!+j*D{7)KmM6wgBmO*&t<>UOtLy%ZrbDZx!#Cms|cN~*2 z%CgcOAdqNohW0QEC|3oBFRl!u%C(2teck3OeF<2sJj0GC&mINJbI7_H{^(&A+I~Ky z4bb0G{Yn19VK#qwB!(03HTVmNmElZuH}h1sZszwCmxQ=0@;$oWMp;(o--!QUdkv2{ z!ooHBT0Z#*OLnWPnZ!RF(XN-5t08CrKQp3TNM96C@l`!~Xn!DE*C~J+c11V$2*N%p zeEW)F&g>ZaPCkt_yS$IGj%v;PS{`wX4bT{Bx&9bSqW2e%u_5%VKE^`2&PTq=VuEyT z7454{pPZ>V)sNyTYRhVWIn{4vE%!LiCTm`-<x|5%_tFz=rRHockN=T9N6T&hk1V{?2^8D@Pot)`u6?x;mP;?x@}?hInnrb! zr~JemQ~I8qq^hm1y?dsX>OLJ7ig%d8e6tkSPt}sD(>@~*Vc&DcBkCUs{apz$GODF- zp7t4hlE3mZ%$h#H&-@I_mfL9)q-Pj?9YdyLsvQAjdj#sG9(#V+#e-{DeA0AS7po^Z zPfJQ2Ok~JcGN^)Z*#~K=`U@yn`6OSX#g`{|2eas zEGSkb%VhPRwx+#a!^Vf@qF8${avLe&i$DVfv%v#pFgLKUGGm)ZG#h!Y;u9o?G z>(Nlcj1OZQ@Uj{fG_*C9msn9x7)>`+1%s<+!dnQ-WTgLFy5^+kjK;nelgDg0$s$H2 z0wbE33Fj}GWpKG5LcqU(0ap70{G9Qq=?h^ixM+4x2`kY-x9SH@P^8Vjn~Y~Gqq&qHRiO> z;$J5b)oMl)5w5TzsQoAFDG4R;FlgY@RYJZqF!<~|{!z-8D(-&@$|taaJK_|}q$fYc z^dooSM1~#NWZ%rpnxoeJWIK0^$?r_n;oEWd!>to z2+^FuVVQU&(RnzLx0Uidph>@HS$~_Ypf7TqYVVxMYC>mWy156zB1eyH_;rGJVr(a~ zxMRSz_%mnN?H zD6++4u}VZ0VD1kwqubuE09xY%q zFzGkewadc`H>*@s-+8Lj)FTKE$XmFnLmBbwy2B35KY;l;SFE3!`ud=9BSXP41}LOXupJ?z=3c z)}sJP&eboCv>r6?Ycij2I^!K>b&sup8E_Jk&BK9GAQ7vXeeHWiwMeP1XN5-5C$O;CT37f4Jtd)QHwg}va+Ic ztgxuCtW6$I;-w<9!m`qib*QYctk5jYNZ;>Tdk+kT)p_6FU%$_5pQrD$)_R_GdG^}t z@~pLo>Tt2z;i&c~u){5m;cnHgL%rWP$V41+SJhqhWO;Aifr$=Nv%FZZyemLnn!E2TBq!&QAu)MZuZ@S#Cllh8&7lNx_7RI54@nC0I9ICp;j%o$j?fdCHqM9FXKaFpKWr>HK@=`czYI?r$ArG9A-!}aw zdKI2}?XPz+*SQ!EFj&>F)PLZ;#By=L?Y|hcw_U&>i0hml&U~`)3;DP)!P=Ly;bKbm z9Mj>{;Agzw&_3F}Sv8aP3h;NtQ4emKS7Nf4a~^s53;B4afYp1l@8AkYF{y4$lP4z2 zp%DC~q@aX?a&QGFQ&1%)tDvyfrJ#j^c5sCuOhK2JtaHvMC%=?WU{&&ig5Tf@FJnI4 znC73D?2i(re23NR3jhYskm>lYyx3yb7eipUr zaL5lIT>kHnztOmG%n8r4o<|c;Xm97?Ir03#^Svt(55MAvnKYFV5nX`7g~1i*?rvk+#l+-`&bg%GYx(#nYQbNi@XKHd zHH$W;^(H3wLih~`kE6m@Abe#|VGkTj?O%HOIjmwgrhT56{5jOj-$-SA3AHZ=ReN+} z+ERKKq@F3rq^yLM0nsBaypCU`B`G}XUOvc@??hm0$N`T zo@Wm|$w>P$G5Jd<6nrNsoQA^b!4>|-6uwSO{u&A|yA-~K!ncDfOkxV(B_@9dh2Za{ z63#;5?BEI~exX%5mzaDG3Ts^oKSJTh!4=jqg`X0W;hQ2SzZWf^{4>n-^WX}@n8KyR zdZ5rVxWZ(na5gddEZT70IjIfjp>Te1g@0e9Rr)b8`A3xSz&WW67ol)*a0U8@ zgEyxAoS6JG6fQww1hsT86nY0&7;%xz{Xrh=e?P1>;SHRUKDvLi3f~pL;^#=+5AxPJ z{8XkQgS%Iq!C7<}T$dq(djjEjgg@6}Pk?Y1!XKz`5d`5;2!GFKaBC1YA>5(Q;O;{> z6yY~D8QcnlCnCI0nZZ>etU>s=JcC=rikMilBTO#tw^q=Hm zkyLO(dwO5S0k2-VrG44iUr|@LN?iU?9!hTcNj{M&zVwsaG)hwJuTr1pfZ9Magvc&P znv*ZcC)ByuZSzBDH@ni3&-tv=zxs3KezZIMfNa^>%krDs4{8^*pVN-UWsc!+EqT4Q z4YkGZ&ZbXkDqukJ74OFWPE3-W*YD!v)_`pUv^eeDc`O z@MDNIfD@`4gc1rP>9b0lz8LE{@be zVC^OOj(nOABF}*igWf%-U3`Ih(u_>8;4H#WD!78eX|9l6+=cLEguQ8La3Fm}D@F@~ zrz-S)S{KJJa%V&%i}9yEy?`dhn<85oE^J3!EULhf);Kbtk$EP2Xo?me)U>39TPGFe-A=>jg z>Wm)(l*3(U2+&FCLC9kIWqHMr_EDmxI~j_W?iiI%_Fo>%(lJ+H=~_`GwhUs_(w=rO zw_lMj@hfC0j!xM*tqzShM0SoM9pm|FT9>J5E6k(v@1MbknV>$vq%>QXNs%K=x|o^t z{tbNbka`y3{|+@tBjZhxO~~jnUleL(Vf#0!^x@F}N{1jV9Zy=uPxgd15oCOfU#qAZ z+bE(pvLHXn`0<`*Fk?LU^O3FZV%pIfuo1`c2{oCzoyi&kAc8s>yb~ar>dAK$TcX%w zq74m5XMF5Y*cu*7Ls%gTFJ|6Lt0;G(RO|o7tp{|gLTLrNZvSis8WU?q;%4ur)O>FL zXWpI%;Ppfvix1-QtIMMDNtG8L?xBk!jo0xh8l#wz5uI%!7ezk3j-N{=dh=nPjgXw@ z&6fx3Otg-si9L{{rZS4*FtdrYC-C9qk~bf!v9QR6sE;YuY9gx1{BX~v%zP3znIEC) zWSaj*C$E~=6-Aaz=3~fXKD^nZJ&JTp=F3Q;FJIs>^=)#$FCQMb4OyY8?R&5p>mSWZl5&SPD4K8fj+hk3Sw+0FBd z6s~%hqshsse9$Bns!y9#1}%5*F|D7=dt3>0&T$L! zx}rk!ZtI}UyI0YQblU&hN0X1I@nZwK3RpPi4$648!{+gK^eiT0HT>kE@-Z}D-G6Y( z@!_aa?W?atGd~hJkXtppUma&-^^duOGE}u7{tjI^&2D~VJF8Mb4-}3di}#Sld&7~% zL8KbI#f%q!3Vxang+yM#tbcpEEb=ni1e3(vVZ4du?avsR^Q-1HH0S(R@v?Q}rM+~H z_{`uTS7Ji6~ z!X*9*eSCA}llcgb&e7zFWW2f8cu*${e3B=fQeR{HUYRP&h>eiZ5S zX|%l6Z2|kM|>be}1Jhh&9mQZG|Q8^5;{v$kHWG>qt)e^R=Evq%H{H z$Fc(Nq6}(9{u#hWdwjExd>O#6xQ<$M#t(p?qkZ1<{^I_kZf)Nhh*yq~U~Y@gZnTEI`u!&%8E!*WXKv$d4_I!A}$O z-*_T{+#1F&3#o?$-p#ODh6_=_0#-@HlgnXzypo-@YB&7sItnE>4&!y9tq?~+F!NRC zpIy+~I*eZu*Tgbh42ix2&=cRm9tXlYks`zRz!+32tQ|TdhVyF`+-@AM;6U#13G&2n z^rv@TAV-JuAs*kpK)xH!5Az>|ug9ix|6bYl@0HJ9zpwzm+xPh{Vl?sz`j1wLDJ(jq zJ8~B(H}dm_r0l}E1%?w2SF-CLPe5n6OwWGF`$qn6Sp~8A1J2*l5vJ#Fj`)-6GVtHT zynaVD_ES_JXSY{LTO{dKJ}1?MSVF!yg3tBvY9o9&KglEOIg%94&-HabsP?Y$J{`%E z(-C~6YGvuIQzPm;oZj91E^;ZH4;d;QNLQl5d+2$^X0;s!oL;eu#Es-lc?Vi?Hzs5! z+!|cXIp&?N`G#7m9cPSex72r}tr(a?x99U$u3RrI;ORNbz|-?GRH_E$;m`Da>>ts6 zAByRw#pB5M;AZ%wyQd*0_n{M0Bb@zp{`t8pS8%q_Gs7|FMECLipwB*eEhKm3NnsIIdeCsBL5pGPKtu0@w1>6RJ$-QR1sXc=1c1^ron zu|>B*d0>lT5hJ!JLwX86Ct~IFi1iA6`ZtI5wPG_=tIZ?fE9Wy8wB) z9?q*`cYB3)x8L5NXo93$Zru+c_r4nxt}7bxQG8_J@fLVEI;^xW_4WQOEu<=nAL_BQ zh5R*&ADKM^GW9r`#F=^DQ+NY$o7J6Ind}Lp_4PuDeTgjt6T9z5;`OxW%DWR<$S+a+ z6p!Ag$#o`va-bbg1C!svkBj6V%Wgm9q?hM?TF75ad^)`y&}rg>>i+&T4pO^LKLq&r z_=)b*_tEhF?qMkRMArtKJ3I{EC5}zq-@Mbi5r-4}-s2~BvGJp3$Vv4vRQK|J8vDr! z+N)|jF7H41@p0FC*!L3RL{t0hVw_*$v@f!ryzR+{(GEOwc;AEm?5V3C^k&2i-hnS) z)q(dyau2QiW_2MZfYUD{%sTLw(R@Ti-vjTnX5~Qn?&VLDxY7I&|1%hPPL~?#j=!(w ztpApvuJ0pW>Xe^BZs5zd88KpAv)nr*Ubb_ruERe*-dFk_$nHUAbnK(G6%b~%?H5Wf8kj!>w-el5B8`xNOC+3_V);$i^ouk-Ni!Je z7eVfb>-US$QeB&PS|HXkqF+QF$KM*RV=pLxk#~MCK4NH;WFDPSl?{L{LQnhsXr-_E`Q?598xxmzkfSXhkLI(yr}E@|~F< zsX%jCc-xaCWE{U>h-If}Vk<+@#OXUF6Ym{2n2DJqaPt}YYyu#7}M2w6CRw+C{pj-n$($9PkuaVPoD1imV? zlSxaC5E{U8j5$KkFwqeLZP5{87FA=VEWC|KppFoa)@EVoL|!TLc=}OlykY(ZwPca#5;3gxDeC!{u4!js(dp6o)KyLoD@zoe z9)(X)r$@Pmv>fdRUwS(7Dy$9CGOf}SRCPvJ-N9FlM`PyRHK zCGt@oT~CqGiF{6o8PTX$SfhxM77-^}pB{9tzcjH+6kyx@9>x#c=5sBq3e25RD5f)a zh8-DVn;%J*bjo>h+f;s(N7K{fsj0k4VHUFtXndM({6k_p5O&}2HzMrX@VA3^+wiwO zO(Lf8IbMsmVZd5?R6dqGF^!K^7*Po{KET}aN8A2Dk}#bgIkcA5`s%$uviak^znQ6C zYws^+Ebjg5A^Cs3_n+d4tmw9XG+8-=zs{q!<&XCMQ6$8|4~x?=TZmgziNB@;z}mtb z03P-hvK6|Xg(#A3^nbGOV>~P^WMmTmw4a6L=(f*qYN7l5ICrxTP3D)lhuP*H8T{Vn z{*z=r$pepUL<$Nsw$Q!(5?Uy>_0#z#6pH@4t%aOV;cr$nusRsL+gnI&DxcwLL`|`2 z4<%ix{9KR57BXQbA4@Y^Hj^*(P&bl8Gx_rCX#20;uK%%3r0u#LMPR!gOP){T{amKm zN^Y3NKkU)gLig=shBTu9j5*$|z|-{09r_BkwvZX={NZBVGc1t}NI{J6ACSx}EDlIU zQEu=ZJBP$;3`hyjNCQ$=i#Q z&yd?@^N}8J-9>iJ=7*am-*x56PApjJYlfe=)VGdlLF^vfPoe7=WN>=tU8H9=AMByI zi>T)CVS}u@at3O2r~j2?&Ec(+>shV(9RrOlEIJ077%w^oI>Gll23pZz<``&4^fep< z$B{I^G0^pl=oml(bqr*X1zCJdF!wAQF~TlF91pP1JHS0l9?s%N&TeePB`f*nWYxym zXC`!XbIM<@wC&xEHuEEYy@EfIe)=EDxCH1DX@|(i3PjBA1@|7fHh=sfmeVK0f4w5; zv-!Ws>Uv-G=Z=F$AMod$r3<^Fhl%cF+b;6Q~W;0r~{g3-W;S8B{13 z82A?Aj`(w*fj$5o0qp@j0on$-4O9Wj1*L(;gTg^7(D^t0xi3NQf)2b{=g&P0W*g`> zP&FtSndgH_KxU8~bRR0<|GGb?dCi}T08Ij=g64xtKu*vtpud0~0lfq|208<}45~*S z5zwCkvVtl=8$kEf;eStn4uC!YodfAQP+QPcP%fwpbQ@?Js0Gvp>H?hsT>{D9@aGJm z2v9sI4RizOM$pZmZJ;MWFM*DOdO%)>{W&A(#yI>h6_gJu1=WHYKwCl2gI)o3f<6PC z19`wg8c;AO1~eUH1r>tmzen(h+CYav^dI)x^>B>WXTM6abNOK&*S|_CfyFnX{}9CE zOTKzv5S7(QI_nWX##f=h))vm z8`&bB2f`7@d94=HbwD44gQReTgk~VkF9AsPQ-S#1ojT4c3EYEgi1goLgmG_;D*;l4 z3LrgvZ+|e4{`4%jS3qO}6t+W-raL991=5CWkiwReqI`oCt~f>I>+pj?U}yoG zkU+6f!Yx4RXw#h$<14m_8Eli%cS{9tm%^=5xJe4{0MZH-o)h((rT7+?JWWUW+-^y* zO~Snrwo7%b_t^`OO92=zY4k>&{3ZDXwM7n%U21gw?5kMm_9SC;;R|XsfY?RVlfauQLULb8i z`HEodr`R&X&e61V{v0c?@N$ADuH=GKbx zp+F;o7GOBA1ZV;_uC2>pzka?K5%hDL<3QS*yMgf7alJtFQqI*mWfg zELv%E*o%s7QIKkZR5$42*BNBSYJLf+&BO8P?mXT;x&FC)Zh2E0w{u4tH?ML+g z&|Xj{=sZY%H%tHuI*`YifC->fP(G*xhfQjg~q}SB;gBuI`;|a zzS=ZKR}|^o0%baP?(THX^PY4jy9=`K|1gV_ou9=m=hC^?L3g&zV)BLtQHBcAJm|lp zQr>%jG;S@hNaTGvnTMyBw-34ZJI|41{O$a8q`}S`)3)6w4suDTR1Zo8WrFfSg`f(M6Vw3O z1Zo6r0c`_q2Q`6qfSN%qpjOasP|W@4VIT`A9Yp1=_hV=%K%fv*26BSdff_(tK-)mu zLCv7OAUbl>e;wdELB~N|pl(nP=pu;Qn!)KnMvxhl3Mv4Vf!2XGfHr})fVOYN(69qc z3urfJFX#~H2ER|2X9Z31lpZ3nf2j)TsCW*1e~ z6jiU`(rnAB8G}Y-6;&6P3BNk{7d*1lx1kPr*BgNCAo&BRFlaZ3jsZPD^Me^&1*jQx z5oCP`1_E`1Fh+2_K>2pWZzq>m@uj3`HSbR%*5E|eSjz_s=T`HNbv;ygr)&{g!t>!AKmX9+d>?p4+18~Jv4j>7>lUGJMiz>$>s4Acoa*-V~q;K$eLp2^^5 za@idH&LhH&Pj}-hBt8i;8^C9CnOrjXEmAxkA)3Kok3o$NWvvoV$D=mzDTvJj-{B^6 zMvSjx3I5ND%2Xi%JXOdCUkKh+*gEj8iZ)3+tx%i9XM#U2@w7rc5>G4Y|D32x^N*4E z+2Avu!;45Wy&i!QDS_6sQQ~PO4oN&6^iN7WwbpqzUe%hxrE$5;DlrmIE0HPjv~qTd zr}=LJpNf)`=o+m>3Q&b(5>FK_N<3BY-__p&GkCoJ%yOCFv$-4;4Qsja8zep(@y+0^ zkf)Y727V?qX`UCs*Uk)~kkETcBX)9H`#RBLfh?n?<;PWMZKKNSj zdE9(F5{}yjo|>Arcn6co=4j$yz&{1>|d;7h=}3aEACH-WdJ3e-wF zz|+>v0lypk^{6IoX(#wOQeWtHi}!k|KRy&ZW>rXu)`)er%z^|LUkKjSdTJ&YKZK0f z%=-z(&HQ3MtcG)PrCb8?p(aZ~?eIg>EH0KyAh&MCO}-V&`TI%pRz9Mx@fC5uvJL17 z!6u*=uo+0l-Zr2QupQ_N>;TGvoj@LV97uO|T|l~K?gpxWJwQ69Uj))Ip4%tx0^~qC zw(EcxlIyr2Fa|^zfqp;}kZw=RzyM$ZkdD*b)1x5kefYHEq;Amh6 za15{$7y~>Gq^q+o;8YOs>3fn6q`l4xq+@0QkoLSnAbkzWfV4N+fwT|Q0_i(g4_p9j0M^l$ zxDkvExQ#{t&m6^`7oDI9VGm#n&=c4O^a7s5EaeS6gs=~=6X;9hfpTCskO$I*juLnt zVHJ?uk3IoZ0X4v&{aEg4!9*ZJ2Q&lqKsp^7fOIwGy!E1s0d95rqXnvm8Jt1({vLmMALz_ zG#$9%b-e$w7}SU+0JqZwU^7r=#(PTRf$cONc!b8s<29x6z*96H*hAwJU@;m7$~zFA z3X1_1KqC!XU@;m7CQwX8MLSGj(os_yk%^j8wBmgQdac9z3JeBr=n%eqm^XL`y^r!| zd}*g)gCt#^(cv9c=33v$;BEra36=iai|}z^2k;}{G2kv>7qAI<26zwfBJdrcS7!$I zK2QgI7Z?iM2{Zv;2F3#q0WF;{+DR~(h@jI$0q_X01h@}q2X+AId_?D~bqGHM+yYzy z+=h5M0k$AqOv9+K4A_P+Y{DG^t_OAk1t47!cmTT*o(XJw1%sv+nDdCB^ALA5gS!(z zmk8cK6~eG7TPo0{LlDA$2Sxzz1)71>MpJ<=0Mmg_1L^cb=e>M{Hv;Jr!xvbBFrDA% zQbP{3*CFB`VAcWO0yY3!fLnlX0GojK0b783fNj86fro&*ft|n)fG2^Sz;56i;CWy> zkb5_Sdk;X@G(1p+@KIn8@MBBe;Y=V0lg9y!2s?mu)usf-AiM>b0DK&n3Var51!mDT z!eTHlA)*Yp7f9C>(}7Ne8-R3eLKi*t2-DYvE(2A-O$gJqi5%&4k+cnAC$In&#gN49 zK=?UeE08WtIK!4muHJMASJQM51n zwqtnz{{p5A5sAPZ5ZD0JA#4V=BK$CLFK{)m16Tt*2Al^pp#TH03*oK6Gr)Y{MIZs1 zk?sfddLKW|3$!5LNkARKw*V9N)rl+gP(;k90#FD5nh;(9j0bL`@xV<$EAUZZA+Q;k z4*5W!9pM6+j_?rRI)oR}coaAl*nsdIz%9Thfla_wz?M2N+rbnz=OaZU@MUO0FG#Y4)`X}2z(t_2K`{58R5mi4H*4D2Tn!!05Bi;FJN5- zm?x+J@ByG5iXp)52tNpH1}*`b(2@zj-3Z?dqzi2eupQyQ0<8!q06P(`2Noba8F&)m zTYeG znjs%g5#dLG>AV{tWC;8&nMT)>&RKs*=L$iVvx59(zFqF`-dm!dMM3vzN(C3(g#P0pCLbY^yHMiL#6m`r9yHk}6;pEWNtKSRulg>z@-<;=@X znYlDGqco4cFErD%d6}6@`%+S8=B4CjSo3poU77SH<<6WtFC%wm*39huJmf$#p!##A zN=aunoO6xcMs-&eRn*vo^27Y2GNL-(e(p)WY=u3m>y^y+Hfp7Eb;>u-U@tfb~ElunA}e_5kZ4 z*Yvc7OGUW#Sqo*x=kM8=I1`om|C-l#)^fStgLK#Lyf$j551a4KLA z4YPlBSQ{Zicia_$5djK?Z&=8&CmM#CRuK0yH;RxFDb%;Rs+O!e$!&i-ns?)BlP`1hm|3;WB|;_gJ`m zVEZNuR|u@LZ$`~&!o3#G32eF#EdUych1)>mA4JW8om(tiGYwbvTfm5)!9RlI$<(i~ zd{Ekhvv`q^A-5Jqww@D1-}ax-EvV1vJS_gv1;10x7{i_aYHZt#b|Hx2H&tKn^P%J3Gnti@LFS@>H*(6 zbq=@D7pskpd0hRv+1xBOW)blAiB=5HNQg(^;@CVcT8Y7x3cWdp`(PSoe=0Q9$~}#m z;%^ypWvO$xTOr>--3Mc`uyLT?P z3(B?N3sSAzFg(jm;7wQ+2SC0FJm<*e=Hqef2Cteko2?oUA z&I6eyfNzVN&CSJZnhCyX?_6#TI$#M^cr%x)9*Is0K4E+=_ZlYFP2f$L=&)GfZ3nNb z%;Js(W9b3DxhR)A?}h#WzURd`+(SA{;NUHt*<6eno69E9J@E5CRb9eHX z#g8TU(e+N zN1$ckEuYTjPGRwM9(<5BhdYMG$p41ck3pqil~C}7BlEZ|XmA2}Q{7{^9Q}4U69HWX z1`r4pf;U>M%=zb}LWy}?5#k%bHyzGp%g}A$gC5J|%&^LC@Vfn3T+5x<{eicuvbcBr zP%wsPOM51l4*nG4TOZEkY$)p@_-%Nsv++WZf)o5~;Xs2rIgG@QH3SJUFR6c!g*uGW zjBD2`DyoW$Dvafhq+)tE1aZ#l8XIXWGz3q|i#C>2NdilqHiy#@W3*LQLuO^%a+@=s z#w;jzmSvRKDxKw}<+f^5QT1~2*z@WkWX4xIK7r}bEQ^*^*y3)iDz7w2*@)RiD{Pe| zitVPrETc#N+%PWk|GF#;z)Pk7X)TzclDvngPsmI{Y*o{4= z3=p1eQ@46-{Z2bd`0h)-Nh`eaq&_Z`952=d`>!moT)rCBw#PZEswy0D%ZrN@WZ4yd z{4nz)=%^qIC>>-46@W@W_D9I!iRw{8`WUT;oHQO(`w;6BYMiT^4ESZ|hEPSQq029s zYu6>?x?eJ92VoI+gH>@Th)D~rZ)&E>>WWHAk}4{yR@+KU;U%_ZHOrUVs>5T9;q%KK zHANM9&YF_)s!aOK!lM=TxFUOb+@I0NwXLjj+Wv$}R(~lAY|E0Xv8+V-|4mU)%d=Il zDlbNHeeTbus8L7C?-N;6T)KR4xtLcJFXy=xP4lK@m*XX){2!E0MShzx zVoA_GMFie7w1&x$v(G5TlDB4R#tBdDQ|$L3Wk2yjLem~?x(^9@No^3jZBv5QKOki9 z4opIz4p1lPBj1j{BS-$N7$&}_^ zq@w~yW}H=o2~!s+Yki4X?-%6Pgr#-^u9jL_#DS;vnLOb?Hz@D$)y5#k3@St_)qLRw zWs-2FSl6sq$0IrcM3p#FRH_^*Hn%ZK87%z$1fQT5K3l8&I%rhGiH*#J89BE_8AmeT(U}ChQSo=3%uf8qDaPuiEO*o_GesGr@a8REY>X0;#wiY{ zWOl)8x?;VIcudj;s%BQ$R$`LKx79kMN&O7PMj9RDWvg)5XfTwFv7oE{R`jq1X*Cwb zTqaLmvnX-~ky@Xm2qG~_iY!rTO_HLQNh#fmC5~jpGBN%AWW|4eCtdJQRb;A2_k4Az zuxW#CgAN@JGwpkM-!| zC$8L)ZCjmIRlTyvX|1lh(N^pZy zx!RvxDOLND?T@PzaiFO{zL&(N-TioR#B@f8;bfAS5@2MoS2<$&a`R_Pphk{ zSHvhtY^N%SRF$ho4|B=XIBW~-r7;S(W)wSCk)&FkU$jdG0}ST#R9k6LO@%Y1YNZ_m zPX>JzVifBY^pOfE`&pSU3s#m0`^(iPS)4Qwx@G)(_7S>oRKF@CBVtt{q<6mBDOe|{ z_S%KT=TwPafy-*jD@t;06-CbSRW@spvy9o5@E24IeX4EFn(9ij;({uY_<6#{5B{XG zlg10GjA4$7%JF9N#JIuLg{})Kr3YDeLd}zVep1N|jtuh4F{oXJk4)gZ7)uyOO$LO_@j`gGSSgy=m87u8o)lRw&i*(@S`Tgp} zu)(ONro6;8wP4(w93CCOEH15&N^EwT9cIS6M=L_qcp)pwD_7)HR;-DNCWWu6hSSzsrV?xye z^$1TTTlS4*%Rtg_y?UxpwZbsdN636n)2UaEiyI%8fB`{;0pYoK6;Z+?k7>91kkBtQ z7T$6jhG`Hd%&bw*@go5tN#PH$E1j*MC(IpBGnG^c!XM~sdB_suPiCAHkHt21DO%2Hj&;)bvk)_I#z8@ zN2nEADuVUnDx0aaPsUfOpRjP0dWDv}Gf^EabUvfYROsvBYjff=3;M6pwz{a8oE>iP z6WVW9hRehigZ;Rw%}+Rfz1qu1VIDVrLj1%@*Ck9Qm%r7Tgu8#@3%tD9wt@`r#ihvL zU-(GcYaKP1JhM?n*S4StmVmbt&5tXts&p2WS2|36La^EBaB(1%UJcjgpl{1#FLF9< z)pW-r<-(@1fjQ8n3G(q#lww!1lstA)8C$OOHb)h<%H__o{+tjtE$z!GTB?Bq zcQn+Cnb5 z!3~75bP$^i(5aJbBATQ>iE_sBO4Po*T6z$og$A>YOD$UQyGC(|#jxgym5Z#rhG7QS zh0L`n{Q{{z_N;3aea`~VXel{>E``5|{?#vhn2L@+u6K~^cj$gkY5EYB&mvc~mbjGv zNHH>mzQziwmsV5h+Gw*ljDELX=KWckgAL_m`Y(Jf$$D2gihT47A1hl=9?Mh*2t#`L zEKhQ3wAM0`9*59>*SeN(@yr*#|A$I18{#(EN|QGXuy#G!^|C5}gx;)^3!#szW_hq# z;m@sG=r~1J#n@~ucf>8QriqirQoAW?sx)33^Ga4s3(qPquC8)al{(|HXXeKtDo#43 zNVPduIIHa8)1zQ`EEW_??QwsoEK1X9gDx+YJ*m>l$OErx)Fk^ol|k6ltZLPcrY{KH zYPmIfkQD}9API?Ws>7;iH06)w>57dUeq9ypNoSEwr}$`+nyxXB4?7H+NaXPQr47&) zFayt(js88^^z`nnfn}>eS@fohr3( z&)cf^WaQ&lRPylOZz;`z6m_a@{%@YcN1dv9o-_W`b6_>ZC=86Fvk?0XO0-hkG1c{b zRaOeykEy&o{)<|WT_37K$*`Z*_yf%!s)7XmLsgcHtoTsnA2@jbA^XhAD7|ZEU+P*< z@@9-~0qqPClrgN7~Dj_tq7c*@{;bx#o$rid0srTkNz{)FV-?m9R<;GE0PNzIvJTw$}>@gkNxj5WY2V+jZHRa{aoZz0~aM&im%z0PGlh)U@K`K!jGV$=>{_95NFdrR;xRLag zF2+k-4mU2-sQPKUU z1~l_>M-j2E)C6N)T$ELW9Tb*(Svm8QXVR);)3VHlI$LwBDcSin#$IJFuB1KPnv#ht z9W1K2Vr5MQqB5_SgeqOsboiM`ep_ za0n{WvXW?^bY+nkV8aGNw43Ip=4P`Oy1JygvIG(9#icaPR`6bbmfX+Lg`sWus0cbUL8t&)e0SH{7Dgk%S>}GD8fijjz&(57sS|TGVg+7982fp z1G=$7xKcmOV<>&S;Jhn>(};SFa*}7yOv%rf zKQo2gq}H25u9!IGr^K<|qjR$?_m zG`rx(wdd&*h}DJ_P*Z_E-Iw;Xa^o~1EMK1+#vGs~yMBRBR#Hk%UIDq&t~UvlH|aaE zGu2N9cuUsp)KlOp2&GM{oFx(e*VJLSe4F)_`d`%6g%0|9aqGY?FEL5^z_2brALa! zX*UQ
wq|1L8=|yEq=({4pM$eX?eV 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 T<(q$gGg32gbLM3=)P(;Ff8ws? delta 346400 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

#RS*Ysa(aZDX*CBtFm=yjD#xs+d2U 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 diff --git a/tools/protoc.exe b/tools/protoc.exe new file mode 100644 index 0000000000000000000000000000000000000000..c0e17da5c9af9ad425f4d23fe9dcfa501e43e60c GIT binary patch literal 3781120 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�Ig1WTnDZ3P(`EkOLoEODIsQ-kvJtw^9AZ2ecV& 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 )qiE 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