Added the code to embed the binary schema to the source (--bfbs-gen-embed). (#5701)

* Added the code to embed the binary schema to the source.
This is pulled forward from a old PR #5162 that will be closed.

* Update idl_gen_cpp.cpp

Added a small comment to trigger a new build. The build was failing in a strange location and doesn't look like it has anything to do with the code.

* Moved the EscapeAndWrapBuffer to util.cpp and did some formating.

* One more camelCases removed and renamed some variables.

* wrapped_line_xxx should have been passed as a const reference in the first place.

* Moved the bfbs embed sample to it's own file.

* Missed moving the namespace back.

* Moved the embedded bfbs to test.cpp instead of using a sample.

* Missed adding the generation of embedded bfbs to the build.

* See if this makes the build happier.

* Fixed a in-compatable cpp output of the generated header.

* Did some changes to reflect the code review comments.
1. Update the EscapeAndWrapBuffer to BufferToHexText and fixed a variable name.
2. Moved the include of the embedded binary schema to all the other includes.

* Moved some code to inline the instead of using a local variable.

* Moved the BufferToHexText back to be a inline function in util.h
This commit is contained in:
sjoblom65
2020-01-24 17:55:34 -05:00
committed by Wouter van Oortmerssen
parent 3f677f2414
commit 47026ea6ba
11 changed files with 856 additions and 35 deletions

View File

@@ -149,6 +149,8 @@ set(FlatBuffers_Tests_SRCS
${CMAKE_CURRENT_BINARY_DIR}/tests/native_type_test_generated.h ${CMAKE_CURRENT_BINARY_DIR}/tests/native_type_test_generated.h
# file generate by running compiler on tests/monster_extra.fbs # file generate by running compiler on tests/monster_extra.fbs
${CMAKE_CURRENT_BINARY_DIR}/tests/monster_extra_generated.h ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_extra_generated.h
# file generate by running compiler on tests/monster_test.fbs
${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_bfbs_generated.h
) )
set(FlatBuffers_Tests_CPP17_SRCS set(FlatBuffers_Tests_CPP17_SRCS
@@ -409,6 +411,31 @@ function(compile_flatbuffers_schema_to_binary SRC_FBS)
register_generated_output(${GEN_BINARY_SCHEMA}) register_generated_output(${GEN_BINARY_SCHEMA})
endfunction() endfunction()
function(compile_flatbuffers_schema_to_embedded_binary SRC_FBS OPT)
if(FLATBUFFERS_BUILD_LEGACY)
set(OPT ${OPT};--cpp-std c++0x)
else()
# --cpp-std is defined by flatc default settings.
endif()
message(STATUS "`${SRC_FBS}`: add generation of C++ embedded binary schema code with '${OPT}'")
get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH)
string(REGEX REPLACE "\\.fbs$" "_bfbs_generated.h" GEN_BFBS_HEADER ${SRC_FBS})
# For details about flags see generate_code.bat(sh)
add_custom_command(
OUTPUT ${GEN_BFBS_HEADER}
COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}"
--cpp --gen-mutable --gen-object-api --reflect-names
--cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs
${OPT}
--bfbs-comments --bfbs-builtins --bfbs-gen-embed
-I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test"
-o "${SRC_FBS_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}"
DEPENDS flatc
COMMENT "Run generation: '${GEN_BFBS_HEADER}'")
register_generated_output(${GEN_BFBS_HEADER})
endfunction()
if(FLATBUFFERS_BUILD_TESTS) if(FLATBUFFERS_BUILD_TESTS)
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
@@ -422,6 +449,7 @@ if(FLATBUFFERS_BUILD_TESTS)
compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "")
compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare")
compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs) compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs)
compile_flatbuffers_schema_to_embedded_binary(tests/monster_test.fbs "--no-includes;--gen-compare")
if(NOT (MSVC AND (MSVC_VERSION LESS 1900))) if(NOT (MSVC AND (MSVC_VERSION LESS 1900)))
compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF. compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF.
endif() endif()

View File

@@ -545,6 +545,7 @@ struct IDLOptions {
bool keep_include_path; bool keep_include_path;
bool binary_schema_comments; bool binary_schema_comments;
bool binary_schema_builtins; bool binary_schema_builtins;
bool binary_schema_gen_embed;
bool skip_flatbuffers_import; bool skip_flatbuffers_import;
std::string go_import; std::string go_import;
std::string go_namespace; std::string go_namespace;
@@ -632,6 +633,7 @@ struct IDLOptions {
keep_include_path(false), keep_include_path(false),
binary_schema_comments(false), binary_schema_comments(false),
binary_schema_builtins(false), binary_schema_builtins(false),
binary_schema_gen_embed(false),
skip_flatbuffers_import(false), skip_flatbuffers_import(false),
reexport_ts_modules(true), reexport_ts_modules(true),
js_ts_short_names(false), js_ts_short_names(false),

View File

@@ -636,6 +636,32 @@ inline bool EscapeString(const char *s, size_t length, std::string *_text,
return true; return true;
} }
inline std::string BufferToHexText(const void *buffer, size_t buffer_size, size_t max_length,
const std::string &wrapped_line_prefix,
const std::string &wrapped_line_suffix) {
std::string text = wrapped_line_prefix;
size_t start_offset = 0;
const char *s = reinterpret_cast<const char *>(buffer);
for (size_t i = 0; s && i < buffer_size; i++) {
// Last iteration or do we have more?
bool have_more= i + 1 < buffer_size;
text += "0x";
text += IntToStringHex(static_cast<uint8_t>(s[i]), 2);
if (have_more) {
text += ',';
}
// If we have more to process and we reached max_length
if (have_more && text.size() + wrapped_line_suffix.size() >= start_offset + max_length) {
text += wrapped_line_suffix;
text += '\n';
start_offset = text.size();
text += wrapped_line_prefix;
}
}
text += wrapped_line_suffix;
return text;
}
// Remove paired quotes in a string: "text"|'text' -> text. // Remove paired quotes in a string: "text"|'text' -> text.
std::string RemoveStringQuotes(const std::string &s); std::string RemoveStringQuotes(const std::string &s);

View File

@@ -70,6 +70,9 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const {
ss << " " << full_name.str() << " " << name << " " << help << ".\n"; ss << " " << full_name.str() << " " << name << " " << help << ".\n";
} }
// clang-format off // clang-format off
// Output width
// 12345678901234567890123456789012345678901234567890123456789012345678901234567890
ss << ss <<
" -o PATH Prefix PATH to all generated files.\n" " -o PATH Prefix PATH to all generated files.\n"
" -I PATH Search for includes in the specified path.\n" " -I PATH Search for includes in the specified path.\n"
@@ -141,6 +144,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const {
" --schema Serialize schemas instead of JSON (use with -b).\n" " --schema Serialize schemas instead of JSON (use with -b).\n"
" --bfbs-comments Add doc comments to the binary schema files.\n" " --bfbs-comments Add doc comments to the binary schema files.\n"
" --bfbs-builtins Add builtin attributes to the binary schema files.\n" " --bfbs-builtins Add builtin attributes to the binary schema files.\n"
" --bfbs-gen-embed Generate code to embed the bfbs schema to the source.\n"
" --conform FILE Specify a schema the following schemas should be\n" " --conform FILE Specify a schema the following schemas should be\n"
" an evolution of. Gives errors if not.\n" " an evolution of. Gives errors if not.\n"
" --conform-includes Include path for the schema given with --conform PATH\n" " --conform-includes Include path for the schema given with --conform PATH\n"
@@ -166,6 +170,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const {
"Output files are named using the base file name of the input,\n" "Output files are named using the base file name of the input,\n"
"and written to the current directory or the path given by -o.\n" "and written to the current directory or the path given by -o.\n"
"example: " << program_name << " -c -b schema1.fbs schema2.fbs data.json\n"; "example: " << program_name << " -c -b schema1.fbs schema2.fbs data.json\n";
// 12345678901234567890123456789012345678901234567890123456789012345678901234567890
// clang-format on // clang-format on
return ss.str(); return ss.str();
} }
@@ -201,22 +206,22 @@ int FlatCompiler::Compile(int argc, const char **argv) {
output_path = flatbuffers::ConCatPathFileName( output_path = flatbuffers::ConCatPathFileName(
flatbuffers::PosixPath(argv[argi]), ""); flatbuffers::PosixPath(argv[argi]), "");
} else if (arg == "-I") { } else if (arg == "-I") {
if (++argi >= argc) Error("missing path following" + arg, true); if (++argi >= argc) Error("missing path following: " + arg, true);
include_directories_storage.push_back( include_directories_storage.push_back(
flatbuffers::PosixPath(argv[argi])); flatbuffers::PosixPath(argv[argi]));
include_directories.push_back( include_directories.push_back(
include_directories_storage.back().c_str()); include_directories_storage.back().c_str());
} else if (arg == "--conform") { } else if (arg == "--conform") {
if (++argi >= argc) Error("missing path following" + arg, true); if (++argi >= argc) Error("missing path following: " + arg, true);
conform_to_schema = flatbuffers::PosixPath(argv[argi]); conform_to_schema = flatbuffers::PosixPath(argv[argi]);
} else if (arg == "--conform-includes") { } else if (arg == "--conform-includes") {
if (++argi >= argc) Error("missing path following" + arg, true); if (++argi >= argc) Error("missing path following: " + arg, true);
include_directories_storage.push_back( include_directories_storage.push_back(
flatbuffers::PosixPath(argv[argi])); flatbuffers::PosixPath(argv[argi]));
conform_include_directories.push_back( conform_include_directories.push_back(
include_directories_storage.back().c_str()); include_directories_storage.back().c_str());
} else if (arg == "--include-prefix") { } else if (arg == "--include-prefix") {
if (++argi >= argc) Error("missing path following" + arg, true); if (++argi >= argc) Error("missing path following: " + arg, true);
opts.include_prefix = flatbuffers::ConCatPathFileName( opts.include_prefix = flatbuffers::ConCatPathFileName(
flatbuffers::PosixPath(argv[argi]), ""); flatbuffers::PosixPath(argv[argi]), "");
} else if (arg == "--keep-prefix") { } else if (arg == "--keep-prefix") {
@@ -261,13 +266,13 @@ int FlatCompiler::Compile(int argc, const char **argv) {
} else if (arg == "--gen-compare") { } else if (arg == "--gen-compare") {
opts.gen_compare = true; opts.gen_compare = true;
} else if (arg == "--cpp-include") { } else if (arg == "--cpp-include") {
if (++argi >= argc) Error("missing include following" + arg, true); if (++argi >= argc) Error("missing include following: " + arg, true);
opts.cpp_includes.push_back(argv[argi]); opts.cpp_includes.push_back(argv[argi]);
} else if (arg == "--cpp-ptr-type") { } else if (arg == "--cpp-ptr-type") {
if (++argi >= argc) Error("missing type following" + arg, true); if (++argi >= argc) Error("missing type following: " + arg, true);
opts.cpp_object_api_pointer_type = argv[argi]; opts.cpp_object_api_pointer_type = argv[argi];
} else if (arg == "--cpp-str-type") { } else if (arg == "--cpp-str-type") {
if (++argi >= argc) Error("missing type following" + arg, true); if (++argi >= argc) Error("missing type following: " + arg, true);
opts.cpp_object_api_string_type = argv[argi]; opts.cpp_object_api_string_type = argv[argi];
} else if (arg == "--cpp-str-flex-ctor") { } else if (arg == "--cpp-str-flex-ctor") {
opts.cpp_object_api_string_flexible_constructor = true; opts.cpp_object_api_string_flexible_constructor = true;
@@ -278,10 +283,10 @@ int FlatCompiler::Compile(int argc, const char **argv) {
} else if (arg == "--gen-generated") { } else if (arg == "--gen-generated") {
opts.gen_generated = true; opts.gen_generated = true;
} else if (arg == "--object-prefix") { } else if (arg == "--object-prefix") {
if (++argi >= argc) Error("missing prefix following" + arg, true); if (++argi >= argc) Error("missing prefix following: " + arg, true);
opts.object_prefix = argv[argi]; opts.object_prefix = argv[argi];
} else if (arg == "--object-suffix") { } else if (arg == "--object-suffix") {
if (++argi >= argc) Error("missing suffix following" + arg, true); if (++argi >= argc) Error("missing suffix following: " + arg, true);
opts.object_suffix = argv[argi]; opts.object_suffix = argv[argi];
} else if (arg == "--gen-all") { } else if (arg == "--gen-all") {
opts.generate_all = true; opts.generate_all = true;
@@ -319,6 +324,8 @@ int FlatCompiler::Compile(int argc, const char **argv) {
opts.binary_schema_comments = true; opts.binary_schema_comments = true;
} else if (arg == "--bfbs-builtins") { } else if (arg == "--bfbs-builtins") {
opts.binary_schema_builtins = true; opts.binary_schema_builtins = true;
} else if (arg == "--bfbs-gen-embed") {
opts.binary_schema_gen_embed= true;
} else if (arg == "--no-fb-import") { } else if (arg == "--no-fb-import") {
opts.skip_flatbuffers_import = true; opts.skip_flatbuffers_import = true;
} else if (arg == "--no-ts-reexport") { } else if (arg == "--no-ts-reexport") {
@@ -330,7 +337,7 @@ int FlatCompiler::Compile(int argc, const char **argv) {
} else if (arg == "--reflect-names") { } else if (arg == "--reflect-names") {
opts.mini_reflect = IDLOptions::kTypesAndNames; opts.mini_reflect = IDLOptions::kTypesAndNames;
} else if (arg == "--root-type") { } else if (arg == "--root-type") {
if (++argi >= argc) Error("missing type following" + arg, true); if (++argi >= argc) Error("missing type following: " + arg, true);
opts.root_type = argv[argi]; opts.root_type = argv[argi];
} else if (arg == "--force-defaults") { } else if (arg == "--force-defaults") {
opts.force_defaults = true; opts.force_defaults = true;
@@ -466,8 +473,10 @@ int FlatCompiler::Compile(int argc, const char **argv) {
auto err = parser->ConformTo(conform_parser); auto err = parser->ConformTo(conform_parser);
if (!err.empty()) Error("schemas don\'t conform: " + err); if (!err.empty()) Error("schemas don\'t conform: " + err);
} }
if (schema_binary) { if (schema_binary || opts.binary_schema_gen_embed) {
parser->Serialize(); parser->Serialize();
}
if (schema_binary) {
parser->file_extension_ = reflection::SchemaExtension(); parser->file_extension_ = reflection::SchemaExtension();
} }
} }

View File

@@ -53,6 +53,33 @@ static std::string GeneratedFileName(const std::string &path,
return path + file_name + "_generated.h"; return path + file_name + "_generated.h";
} }
static std::string GenIncludeGuard(const std::string &file_name,
const Namespace &name_space,
const std::string &postfix= "") {
// Generate include guard.
std::string guard = file_name;
// Remove any non-alpha-numeric characters that may appear in a filename.
struct IsAlnum {
bool operator()(char c) const { return !is_alnum(c); }
};
guard.erase(std::remove_if(guard.begin(), guard.end(), IsAlnum()),
guard.end());
guard = "FLATBUFFERS_GENERATED_" + guard;
guard += "_";
// For further uniqueness, also add the namespace.
for (auto it = name_space.components.begin();
it != name_space.components.end(); ++it) {
guard += *it + "_";
}
// Anything extra to add to the guard?
if (!postfix.empty()) {
guard += postfix + "_";
}
guard += "H_";
std::transform(guard.begin(), guard.end(), guard.begin(), ToUpper);
return guard;
}
namespace cpp { namespace cpp {
enum CppStandard { CPP_STD_X0 = 0, CPP_STD_11, CPP_STD_17 }; enum CppStandard { CPP_STD_X0 = 0, CPP_STD_11, CPP_STD_17 };
@@ -182,28 +209,6 @@ class CppGenerator : public BaseGenerator {
for (auto kw = keywords; *kw; kw++) keywords_.insert(*kw); for (auto kw = keywords; *kw; kw++) keywords_.insert(*kw);
} }
std::string GenIncludeGuard() const {
// Generate include guard.
std::string guard = file_name_;
// Remove any non-alpha-numeric characters that may appear in a filename.
struct IsAlnum {
bool operator()(char c) const { return !is_alnum(c); }
};
guard.erase(std::remove_if(guard.begin(), guard.end(), IsAlnum()),
guard.end());
guard = "FLATBUFFERS_GENERATED_" + guard;
guard += "_";
// For further uniqueness, also add the namespace.
auto name_space = parser_.current_namespace_;
for (auto it = name_space->components.begin();
it != name_space->components.end(); ++it) {
guard += *it + "_";
}
guard += "H_";
std::transform(guard.begin(), guard.end(), guard.begin(), ToUpper);
return guard;
}
void GenIncludeDependencies() { void GenIncludeDependencies() {
int num_includes = 0; int num_includes = 0;
for (auto it = parser_.native_included_files_.begin(); for (auto it = parser_.native_included_files_.begin();
@@ -241,13 +246,73 @@ class CppGenerator : public BaseGenerator {
std::string Name(const EnumVal &ev) const { return EscapeKeyword(ev.name); } std::string Name(const EnumVal &ev) const { return EscapeKeyword(ev.name); }
bool generate_bfbs_embed() {
code_.Clear();
code_ += "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n";
// If we don't have a root struct definition,
if (!parser_.root_struct_def_) {
// put a comment in the output why there is no code generated.
code_ += "// Binary schema not generated, no root struct found";
} else {
auto &struct_def = *parser_.root_struct_def_;
const auto include_guard = GenIncludeGuard(file_name_, *struct_def.defined_namespace, "bfbs");
code_ += "#ifndef " + include_guard;
code_ += "#define " + include_guard;
code_ += "";
if (parser_.opts.gen_nullable) {
code_ += "#pragma clang system_header\n\n";
}
SetNameSpace(struct_def.defined_namespace);
auto name = Name(struct_def);
code_.SetValue("STRUCT_NAME", name);
// Create code to return the binary schema data.
auto binary_schema_hex_text = BufferToHexText(parser_.builder_.GetBufferPointer(),
parser_.builder_.GetSize(), 105, " ", "");
code_ += "struct {{STRUCT_NAME}}BinarySchema {";
code_ += " static const uint8_t *data() {";
code_ += " // Buffer containing the binary schema.";
code_ += " static const uint8_t bfbsData[" + NumToString(parser_.builder_.GetSize()) + "] = {";
code_ += binary_schema_hex_text;
code_ += " };";
code_ += " return bfbsData;";
code_ += " }";
code_ += " static size_t size() {";
code_ += " return " + NumToString(parser_.builder_.GetSize()) + ";";
code_ += " }";
code_ += " const uint8_t *begin() {";
code_ += " return data();";
code_ += " }";
code_ += " const uint8_t *end() {";
code_ += " return data() + size();";
code_ += " }";
code_ += "};";
code_ += "";
if (cur_name_space_) SetNameSpace(nullptr);
// Close the include guard.
code_ += "#endif // " + include_guard;
}
// We are just adding "_bfbs" to the generated filename.
const auto file_path = GeneratedFileName(path_, file_name_ + "_bfbs");
const auto final_code = code_.ToString();
return SaveFile(file_path.c_str(), final_code, false);
}
// Iterate through all definitions we haven't generate code for (enums, // Iterate through all definitions we haven't generate code for (enums,
// structs, and tables) and output them to a single file. // structs, and tables) and output them to a single file.
bool generate() { bool generate() {
code_.Clear(); code_.Clear();
code_ += "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; code_ += "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n";
const auto include_guard = GenIncludeGuard(); const auto include_guard = GenIncludeGuard(file_name_, *parser_.current_namespace_);
code_ += "#ifndef " + include_guard; code_ += "#ifndef " + include_guard;
code_ += "#define " + include_guard; code_ += "#define " + include_guard;
code_ += ""; code_ += "";
@@ -519,7 +584,10 @@ class CppGenerator : public BaseGenerator {
const auto file_path = GeneratedFileName(path_, file_name_); const auto file_path = GeneratedFileName(path_, file_name_);
const auto final_code = code_.ToString(); const auto final_code = code_.ToString();
return SaveFile(file_path.c_str(), final_code, false);
// Save the file and optionally generate the binary schema code.
return SaveFile(file_path.c_str(), final_code, false) &&
(!parser_.opts.binary_schema_gen_embed || generate_bfbs_embed());
} }
private: private:

View File

@@ -274,4 +274,5 @@ void SetupDefaultCRTReportMode() {
// clang-format on // clang-format on
} }
} // namespace flatbuffers } // namespace flatbuffers

View File

@@ -19,6 +19,7 @@ cc_test(
"test_builder.cpp", "test_builder.cpp",
"test_builder.h", "test_builder.h",
"union_vector/union_vector_generated.h", "union_vector/union_vector_generated.h",
"monster_test_bfbs_generated.h",
], ],
copts = [ copts = [
"-DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE", "-DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE",

View File

@@ -43,6 +43,7 @@ set TEST_NOINCL_FLAGS=%TEST_BASE_FLAGS% --no-includes --no-fb-import
..\%buildtype%\flatc.exe --rust -I include_test -o include_test include_test/include_test1.fbs || goto FAIL ..\%buildtype%\flatc.exe --rust -I include_test -o include_test include_test/include_test1.fbs || goto FAIL
..\%buildtype%\flatc.exe --rust -I include_test -o include_test/sub include_test/sub/include_test2.fbs || goto FAIL ..\%buildtype%\flatc.exe --rust -I include_test -o include_test/sub include_test/sub/include_test2.fbs || goto FAIL
..\%buildtype%\flatc.exe -b --schema --bfbs-comments --bfbs-builtins -I include_test monster_test.fbs || goto FAIL ..\%buildtype%\flatc.exe -b --schema --bfbs-comments --bfbs-builtins -I include_test monster_test.fbs || goto FAIL
..\%buildtype%\flatc.exe --cpp --bfbs-comments --bfbs-builtins --bfbs-gen-embed %TEST_NOINCL_FLAGS% %TEST_CPP_FLAGS% -I include_test monster_test.fbs || goto FAIL
..\%buildtype%\flatc.exe -b --schema --bfbs-comments --bfbs-builtins -I include_test arrays_test.fbs || goto FAIL ..\%buildtype%\flatc.exe -b --schema --bfbs-comments --bfbs-builtins -I include_test arrays_test.fbs || goto FAIL
..\%buildtype%\flatc.exe --jsonschema --schema -I include_test monster_test.fbs || goto FAIL ..\%buildtype%\flatc.exe --jsonschema --schema -I include_test monster_test.fbs || goto FAIL
..\%buildtype%\flatc.exe --cpp --java --csharp --jsonschema %TEST_NOINCL_FLAGS% %TEST_CPP_FLAGS% --scoped-enums arrays_test.fbs || goto FAIL ..\%buildtype%\flatc.exe --cpp --java --csharp --jsonschema %TEST_NOINCL_FLAGS% %TEST_CPP_FLAGS% --scoped-enums arrays_test.fbs || goto FAIL

View File

@@ -40,6 +40,7 @@ $TEST_NOINCL_FLAGS $TEST_CPP_FLAGS -o namespace_test namespace_test/namespace_te
../flatc --rust -I include_test -o include_test include_test/include_test1.fbs ../flatc --rust -I include_test -o include_test include_test/include_test1.fbs
../flatc --rust -I include_test -o include_test/sub include_test/sub/include_test2.fbs ../flatc --rust -I include_test -o include_test/sub include_test/sub/include_test2.fbs
../flatc -b --schema --bfbs-comments --bfbs-builtins -I include_test monster_test.fbs ../flatc -b --schema --bfbs-comments --bfbs-builtins -I include_test monster_test.fbs
../flatc --cpp --bfbs-comments --bfbs-builtins --bfbs-gen-embed $TEST_NOINCL_FLAGS $TEST_CPP_FLAGS -I include_test monster_test.fbs
../flatc -b --schema --bfbs-comments --bfbs-builtins -I include_test arrays_test.fbs ../flatc -b --schema --bfbs-comments --bfbs-builtins -I include_test arrays_test.fbs
../flatc --jsonschema --schema -I include_test monster_test.fbs ../flatc --jsonschema --schema -I include_test monster_test.fbs
../flatc --cpp --java --kotlin --csharp --python $TEST_NOINCL_FLAGS $TEST_CPP_FLAGS monster_extra.fbs monsterdata_extra.json ../flatc --cpp --java --kotlin --csharp --python $TEST_NOINCL_FLAGS $TEST_CPP_FLAGS monster_extra.fbs monsterdata_extra.json

View File

@@ -0,0 +1,640 @@
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_BFBS_H_
#define FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_BFBS_H_
namespace MyGame {
namespace Example {
struct MonsterBinarySchema {
static const uint8_t *data() {
// Buffer containing the binary schema.
static const uint8_t bfbsData[12176] = {
0x18,0x00,0x00,0x00,0x42,0x46,0x42,0x53,0x10,0x00,0x1C,0x00,0x04,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,
0x14,0x00,0x18,0x00,0x10,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
0x14,0x00,0x00,0x00,0xF8,0x0B,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,0x6D,0x6F,0x6E,0x00,0x04,0x00,0x00,0x00,0x4D,0x4F,0x4E,0x53,0x00,0x00,0x00,0x00,
0x06,0x00,0x00,0x00,0xCC,0x04,0x00,0x00,0x50,0x02,0x00,0x00,0x78,0x03,0x00,0x00,0x18,0x07,0x00,0x00,
0x0C,0x06,0x00,0x00,0xE0,0x08,0x00,0x00,0x0D,0x00,0x00,0x00,0xDC,0x28,0x00,0x00,0xB0,0x0B,0x00,0x00,
0x44,0x27,0x00,0x00,0x14,0x28,0x00,0x00,0x54,0x2C,0x00,0x00,0x50,0x2B,0x00,0x00,0x4C,0x09,0x00,0x00,
0xB4,0x29,0x00,0x00,0xF0,0x2C,0x00,0x00,0x24,0x2D,0x00,0x00,0xC4,0x2D,0x00,0x00,0x64,0x2E,0x00,0x00,
0x54,0x2D,0x00,0x00,0x0C,0x00,0x10,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,
0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x88,0x01,0x00,0x00,0xF4,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,
0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,0x6F,0x6E,0x73,0x74,
0x65,0x72,0x53,0x74,0x6F,0x72,0x61,0x67,0x65,0x00,0x00,0x00,0xBA,0xFE,0xFF,0xFF,0x48,0x00,0x00,0x00,
0x20,0x0B,0x00,0x00,0x88,0x27,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0xD5,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x62,0x69,0x64,0x69,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,
0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x47,0x65,0x74,0x4D,0x69,0x6E,0x4D,0x61,
0x78,0x48,0x69,0x74,0x50,0x6F,0x69,0x6E,0x74,0x73,0x00,0x00,0x1E,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,
0xBC,0x0A,0x00,0x00,0x24,0x27,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0xD5,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x06,0x00,0x00,0x00,0x63,0x6C,0x69,0x65,0x6E,0x74,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,
0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x47,0x65,0x74,0x4D,0x61,0x78,0x48,0x69,
0x74,0x50,0x6F,0x69,0x6E,0x74,0x00,0x00,0x7E,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0xC8,0x26,0x00,0x00,
0x58,0x0A,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xCC,0xD5,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x06,0x00,0x00,0x00,0x73,0x65,0x72,0x76,0x65,0x72,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,
0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,0xF4,0xD5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x69,0x64,0x65,0x6D,0x70,0x6F,0x74,0x65,
0x6E,0x74,0x00,0x00,0x08,0x00,0x00,0x00,0x52,0x65,0x74,0x72,0x69,0x65,0x76,0x65,0x00,0x00,0x0E,0x00,
0x18,0x00,0x04,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x0E,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
0xCC,0x09,0x00,0x00,0x34,0x26,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x58,0xD6,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x65,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,
0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x53,0x74,0x6F,0x72,0x65,0x00,0x00,0x00,
0x98,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF2,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xDC,0x00,0x00,0x00,0xA4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,
0x22,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,
0x6E,0x79,0x41,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x41,0x6C,0x69,0x61,0x73,0x65,0x73,0x00,0x00,
0x66,0xFE,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x10,0x09,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0xD4,0xFF,0xFF,
0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x33,0x00,0x00,0x9E,0xFE,0xFF,0xFF,
0x2C,0x00,0x00,0x00,0xD8,0x08,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x32,0x00,0x00,0x76,0xFD,0xFF,0xFF,0x28,0x00,0x00,0x00,
0xA0,0x08,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xCA,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x4D,0x31,0x00,0x00,0x16,0xFA,0xFF,0xFF,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0xFA,0xFF,0xFF,0x04,0x00,0x00,0x00,0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,
0xC4,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xEC,0x00,0x00,0x00,0xB0,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
0x1F,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,
0x6E,0x79,0x55,0x6E,0x69,0x71,0x75,0x65,0x41,0x6C,0x69,0x61,0x73,0x65,0x73,0x00,0x8E,0xFF,0xFF,0xFF,
0x2C,0x00,0x00,0x00,0x44,0x29,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x08,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x32,0x00,0x00,0xC6,0xFF,0xFF,0xFF,0x2C,0x00,0x00,0x00,
0x60,0x27,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBE,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x05,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x54,0x53,0x00,0x00,0x00,0x00,0x0E,0x00,0x20,0x00,0x04,0x00,0x14,0x00,0x08,0x00,
0x0C,0x00,0x10,0x00,0x0E,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x68,0x07,0x00,0x00,0x18,0x00,0x00,0x00,
0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x06,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4D,0x00,0x00,0x00,
0x52,0xFB,0xFF,0xFF,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x44,0xFB,0xFF,0xFF,0x04,0x00,0x00,0x00,0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,0x10,0x00,0x18,0x00,
0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x00,0x00,0x14,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x34,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x6A,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
0xC4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,0x6E,0x79,0x00,0x00,0x6E,0xFF,0xFF,0xFF,
0x28,0x00,0x00,0x00,0x04,0x28,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC2,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x08,0x00,0x00,0x00,
0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x5F,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x32,0x5F,
0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0xB6,0xFF,0xFF,0xFF,0x28,0x00,0x00,0x00,0x10,0x26,0x00,0x00,
0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0A,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x05,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x54,0x65,0x73,0x74,
0x53,0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57,0x69,0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,
0x00,0x00,0x0E,0x00,0x1C,0x00,0x04,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,0x0E,0x00,0x00,0x00,
0x28,0x00,0x00,0x00,0x08,0x06,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,
0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0xB2,0xFC,0xFF,0xFF,0x14,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xFC,0xFF,0xFF,0x04,0x00,0x00,0x00,
0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,0x38,0xFD,0xFF,0xFF,0x34,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB6,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x03,
0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
0x1C,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
0x6C,0x65,0x2E,0x52,0x61,0x63,0x65,0x00,0xBE,0xFD,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xFD,0xFF,0xFF,
0x03,0x00,0x00,0x00,0x45,0x6C,0x66,0x00,0xE6,0xFD,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0xFD,0xFF,0xFF,
0x05,0x00,0x00,0x00,0x44,0x77,0x61,0x72,0x66,0x00,0x00,0x00,0x7A,0xFD,0xFF,0xFF,0x14,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xFD,0xFF,0xFF,0x05,0x00,0x00,0x00,
0x48,0x75,0x6D,0x61,0x6E,0x00,0x00,0x00,0xBE,0xFE,0xFF,0xFF,0x20,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
0x10,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x9C,0xFD,0xFF,0xFF,0x04,0x00,0x00,0x00,0x4E,0x6F,0x6E,0x65,0x00,0x00,0x00,0x00,0x10,0x00,0x18,0x00,
0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x10,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
0x7C,0x00,0x00,0x00,0x6C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x20,0x43,0x6F,0x6D,0x70,0x6F,0x73,0x69,0x74,0x65,0x20,0x63,
0x6F,0x6D,0x70,0x6F,0x6E,0x65,0x6E,0x74,0x73,0x20,0x6F,0x66,0x20,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,
0x20,0x63,0x6F,0x6C,0x6F,0x72,0x2E,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB0,0xDB,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x09,0x00,0x00,0x00,
0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67,0x73,0x00,0x00,0x00,0x1E,0xD9,0xFF,0xFF,0x00,0x00,0x00,0x04,
0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
0x14,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x43,
0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x00,0x26,0xFF,0xFF,0xFF,0x44,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x1C,0x00,0x00,0x00,0x20,0x5C,0x62,0x72,0x69,0x65,0x66,0x20,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x42,0x6C,
0x75,0x65,0x20,0x28,0x31,0x75,0x20,0x3C,0x3C,0x20,0x33,0x29,0x00,0x00,0x00,0x00,0xB0,0xFE,0xFF,0xFF,
0x04,0x00,0x00,0x00,0x42,0x6C,0x75,0x65,0x00,0x00,0x0E,0x00,0x1C,0x00,0x04,0x00,0x10,0x00,0x00,0x00,
0x08,0x00,0x0C,0x00,0x0E,0x00,0x00,0x00,0x6C,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x20,0x47,0x72,0x65,0x65,0x6E,0x20,0x69,0x73,0x20,0x62,0x69,
0x74,0x5F,0x66,0x6C,0x61,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x28,0x31,
0x75,0x20,0x3C,0x3C,0x20,0x31,0x29,0x00,0x13,0x00,0x00,0x00,0x20,0x5C,0x62,0x72,0x69,0x65,0x66,0x20,
0x63,0x6F,0x6C,0x6F,0x72,0x20,0x47,0x72,0x65,0x65,0x6E,0x00,0x38,0xFF,0xFF,0xFF,0x05,0x00,0x00,0x00,
0x47,0x72,0x65,0x65,0x6E,0x00,0x0E,0x00,0x18,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,
0x0E,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x52,0x65,0x64,0x00,
0x10,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,
0x28,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x8E,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x09,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
0x21,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,
0x53,0x70,0x61,0x63,0x65,0x2E,0x46,0x72,0x6F,0x6D,0x49,0x6E,0x63,0x6C,0x75,0x64,0x65,0x00,0x0E,0x00,
0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,0x0E,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,
0x0A,0x00,0x00,0x00,0x49,0x6E,0x63,0x6C,0x75,0x64,0x65,0x56,0x61,0x6C,0x00,0x00,0x8A,0xDB,0xFF,0xFF,
0x48,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0xCC,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,0xB4,0x01,0x00,0x00,0x60,0x01,0x00,0x00,
0x0C,0x01,0x00,0x00,0xF8,0x01,0x00,0x00,0x7C,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0xD4,0x00,0x00,0x00,
0xC0,0x01,0x00,0x00,0x54,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,0x79,0x70,0x65,0x41,0x6C,0x69,0x61,0x73,
0x65,0x73,0x00,0x00,0x26,0xDD,0xFF,0xFF,0x0B,0x00,0x1A,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xE5,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x04,0x00,0x00,0x00,
0x76,0x66,0x36,0x34,0x00,0x00,0x00,0x00,0x52,0xDD,0xFF,0xFF,0x0A,0x00,0x18,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA8,0xE5,0xFF,0xFF,0x00,0x00,0x0E,0x03,
0x02,0x00,0x00,0x00,0x76,0x38,0x00,0x00,0x7A,0xDD,0xFF,0xFF,0x09,0x00,0x16,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x0C,
0x03,0x00,0x00,0x00,0x66,0x36,0x34,0x00,0xA2,0xDD,0xFF,0xFF,0x08,0x00,0x14,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x0B,
0x03,0x00,0x00,0x00,0x66,0x33,0x32,0x00,0xCA,0xDD,0xFF,0xFF,0x07,0x00,0x12,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x0A,
0x03,0x00,0x00,0x00,0x75,0x36,0x34,0x00,0xF2,0xDD,0xFF,0xFF,0x06,0x00,0x10,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x09,
0x03,0x00,0x00,0x00,0x69,0x36,0x34,0x00,0x1A,0xDE,0xFF,0xFF,0x05,0x00,0x0E,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD2,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x08,
0x03,0x00,0x00,0x00,0x75,0x33,0x32,0x00,0x42,0xDE,0xFF,0xFF,0x04,0x00,0x0C,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFA,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x07,
0x03,0x00,0x00,0x00,0x69,0x33,0x32,0x00,0x6A,0xDE,0xFF,0xFF,0x03,0x00,0x0A,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xDC,0xFF,0xFF,0x00,0x00,0x00,0x06,
0x03,0x00,0x00,0x00,0x75,0x31,0x36,0x00,0x92,0xDE,0xFF,0xFF,0x02,0x00,0x08,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xDC,0xFF,0xFF,0x00,0x00,0x00,0x05,
0x03,0x00,0x00,0x00,0x69,0x31,0x36,0x00,0xBA,0xDE,0xFF,0xFF,0x01,0x00,0x06,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x72,0xDC,0xFF,0xFF,0x00,0x00,0x00,0x04,
0x02,0x00,0x00,0x00,0x75,0x38,0x00,0x00,0x5E,0xDD,0xFF,0xFF,0x00,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0xDC,0xFF,0xFF,0x00,0x00,0x00,0x03,
0x02,0x00,0x00,0x00,0x69,0x38,0x00,0x00,0xDA,0xDD,0xFF,0xFF,0x18,0x01,0x00,0x00,0x4C,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,
0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x74,0x3A,0x20,0x6D,0x6F,0x6E,0x73,0x74,
0x65,0x72,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,
0x1C,0x02,0x00,0x00,0x7C,0x02,0x00,0x00,0xD4,0x02,0x00,0x00,0xB0,0x06,0x00,0x00,0x90,0x17,0x00,0x00,
0xEC,0x14,0x00,0x00,0x04,0x0C,0x00,0x00,0x78,0x18,0x00,0x00,0xD8,0x19,0x00,0x00,0xF8,0x17,0x00,0x00,
0x48,0x1A,0x00,0x00,0x2C,0x19,0x00,0x00,0x34,0x04,0x00,0x00,0x6C,0x0A,0x00,0x00,0xB0,0x1A,0x00,0x00,
0xBC,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0xA8,0x16,0x00,0x00,0x40,0x16,0x00,0x00,0x78,0x0B,0x00,0x00,
0xF4,0x16,0x00,0x00,0x54,0x0E,0x00,0x00,0x40,0x0C,0x00,0x00,0xCC,0x15,0x00,0x00,0xA0,0x0C,0x00,0x00,
0xF4,0x14,0x00,0x00,0x4C,0x13,0x00,0x00,0xA0,0x13,0x00,0x00,0xD8,0x0D,0x00,0x00,0x5C,0x0D,0x00,0x00,
0xE8,0x0C,0x00,0x00,0xB0,0x12,0x00,0x00,0x88,0x10,0x00,0x00,0x98,0x11,0x00,0x00,0x0C,0x0F,0x00,0x00,
0x18,0x12,0x00,0x00,0x90,0x0F,0x00,0x00,0x00,0x11,0x00,0x00,0x70,0x0E,0x00,0x00,0xCC,0x13,0x00,0x00,
0xE4,0x04,0x00,0x00,0x64,0x0A,0x00,0x00,0xB4,0x00,0x00,0x00,0xBC,0x0A,0x00,0x00,0x8C,0x02,0x00,0x00,
0x84,0x09,0x00,0x00,0xF0,0x06,0x00,0x00,0x98,0x07,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x00,
0x00,0x00,0x1A,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x30,0x00,0x64,0x00,0x4C,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x88,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0xEE,0xDE,0xFF,0xFF,0x00,0x00,0x00,0x03,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x73,0x69,0x67,0x6E,
0x65,0x64,0x5F,0x65,0x6E,0x75,0x6D,0x00,0x5A,0xE9,0xFF,0xFF,0x2F,0x00,0x62,0x00,0x44,0x00,0x00,0x00,
0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xE4,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x34,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD2,0xEA,0xFF,0xFF,0x00,0x00,0x0E,0x04,
0x03,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x65,0x6E,
0x75,0x6D,0x73,0x00,0xBA,0xE9,0xFF,0xFF,0x2E,0x00,0x60,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x44,0xE2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x36,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xAA,0xDF,0xFF,0xFF,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,
0x0D,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x00,0x00,0x00,
0x1A,0xEA,0xFF,0xFF,0x2D,0x00,0x5E,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA4,0xE2,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x35,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x0A,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,
0x7E,0xEA,0xFF,0xFF,0x2C,0x00,0x5C,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0xE3,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x34,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x6E,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,
0x61,0x6E,0x79,0x5F,0x75,0x6E,0x69,0x71,0x75,0x65,0x00,0x00,0xDA,0xEA,0xFF,0xFF,0x2B,0x00,0x5A,0x00,
0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x64,0xE3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x34,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xCA,0xE0,0xFF,0xFF,
0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x75,0x6E,0x69,0x71,
0x75,0x65,0x5F,0x74,0x79,0x70,0x65,0x00,0x3A,0xEB,0xFF,0xFF,0x2A,0x00,0x58,0x00,0xFC,0x00,0x00,0x00,
0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0xD4,0xE3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x32,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xF0,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x18,0xE4,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,
0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x44,0xE4,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,
0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0x70,0xE4,0xFF,0xFF,
0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
0xDC,0xEB,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x1F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,
0x66,0x5F,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,
0x63,0x65,0x73,0x00,0x62,0xEC,0xFF,0xFF,0x29,0x00,0x56,0x00,0xFC,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB0,0x00,0x00,0x00,
0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xFC,0xE4,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x31,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x18,0xE5,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
0x00,0x00,0x00,0x00,0x40,0xE5,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,
0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,
0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x6C,0xE5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,
0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0x98,0xE5,0xFF,0xFF,0x14,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x66,0xE2,0xFF,0xFF,
0x00,0x00,0x00,0x0A,0x14,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,
0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x00,0x82,0xED,0xFF,0xFF,0x28,0x00,0x54,0x00,
0x0C,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x05,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x1C,0xE6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x34,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x38,0xE6,0xFF,0xFF,0x18,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x60,0xE6,0xFF,0xFF,0x18,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,
0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x8C,0xE6,0xFF,0xFF,
0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2E,0x67,0x65,0x74,0x28,0x29,0x00,0x00,
0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,
0x00,0x00,0x00,0x00,0xBC,0xE6,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
0x34,0xEE,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x1E,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,
0x66,0x5F,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,
0x65,0x73,0x00,0x00,0xBA,0xEE,0xFF,0xFF,0x27,0x00,0x52,0x00,0xCC,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x50,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0x6C,0xE7,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,
0x94,0xE7,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,
0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,
0x00,0x00,0x00,0x00,0xC0,0xE7,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,
0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x8E,0xE4,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x13,0x00,0x00,0x00,
0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,
0xA6,0xEF,0xFF,0xFF,0x26,0x00,0x50,0x00,0x80,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x34,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x38,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x50,0xE8,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,
0x00,0x00,0x00,0x00,0x5A,0xF1,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x73,0x74,0x72,0x6F,0x6E,0x67,0x5F,0x72,0x65,0x66,
0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0x52,0xF0,0xFF,0xFF,0x25,0x00,0x4E,0x00,
0xCC,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0xE8,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x37,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x04,0xE9,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x2C,0xE9,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,
0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x58,0xE9,0xFF,0xFF,0x14,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xC4,0xF0,0xFF,0xFF,
0x00,0x00,0x0E,0x0A,0x19,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x77,0x65,
0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0x00,0x46,0xF1,0xFF,0xFF,
0x24,0x00,0x4C,0x00,0xCC,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xDC,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x33,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xF8,0xE9,0xFF,0xFF,0x18,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x20,0xEA,0xFF,0xFF,0x18,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,
0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x4C,0xEA,0xFF,0xFF,
0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,
0x1A,0xE7,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x15,0x00,0x00,0x00,0x73,0x69,0x6E,0x67,0x6C,0x65,0x5F,0x77,
0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x36,0xF2,0xFF,0xFF,
0x23,0x00,0x4A,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xC0,0xEA,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0xAE,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x76,0x65,0x63,0x74,
0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,
0x9E,0xF2,0xFF,0xFF,0x22,0x00,0x48,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x28,0xEB,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x34,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x8E,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x09,0x00,0x00,0x00,0x15,0x00,0x00,0x00,
0x70,0x61,0x72,0x65,0x6E,0x74,0x5F,0x6E,0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x5F,0x74,0x65,0x73,
0x74,0x00,0x00,0x00,0x06,0xF3,0xFF,0xFF,0x21,0x00,0x46,0x00,0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x90,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x33,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xEC,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x11,0x00,0x00,0x00,
0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x64,0x6F,0x75,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,
0x66,0xF3,0xFF,0xFF,0x20,0x00,0x44,0x00,0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF0,0xEB,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x32,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x4C,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x09,0x0F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,
0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6C,0x6F,0x6E,0x67,0x73,0x00,0xC2,0xF3,0xFF,0xFF,0x1F,0x00,0x42,0x00,
0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4C,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x33,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3A,0xF5,0xFF,0xFF,
0x00,0x00,0x0E,0x0F,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x35,0x00,0x00,0x00,
0x1A,0xF4,0xFF,0xFF,0x1E,0x00,0x40,0x00,0x68,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0xA8,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x30,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,0x62,0x75,0x66,0x66,
0x65,0x72,0x00,0x00,0x28,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x04,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,
0x00,0x00,0x00,0x00,0x96,0xF4,0xFF,0xFF,0x1D,0x00,0x3E,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x20,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x39,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0E,0xF6,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x00,0x00,0x00,0x00,
0x17,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x6F,0x72,0x74,0x65,
0x64,0x73,0x74,0x72,0x75,0x63,0x74,0x00,0xFE,0xF4,0xFF,0xFF,0x1C,0x00,0x3C,0x00,0x40,0x00,0x00,0x00,
0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x88,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x32,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xE4,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0D,
0x12,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E,
0x67,0x32,0x00,0x00,0x5E,0xF5,0xFF,0xFF,0x1B,0x00,0x3A,0x00,0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0xE8,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x37,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA6,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x06,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x66,0x33,0x00,0x00,0x00,0x00,0x1A,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,
0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
0x1A,0x00,0x38,0x00,0x48,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x60,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x36,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x1E,0xEB,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x06,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x66,0x32,0x00,0x00,0x00,0x00,0x1A,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,
0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
0x19,0x00,0x36,0x00,0x4C,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x6E,0x86,0x1B,0xF0,0xF9,0x21,0x09,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xDC,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x32,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x9A,0xEB,0xFF,0xFF,0x00,0x00,0x00,0x0B,
0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x00,0x00,0x00,0xA6,0xF6,0xFF,0xFF,0x18,0x00,0x34,0x00,
0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x30,0xEF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x32,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x8C,0xF6,0xFF,0xFF,
0x00,0x00,0x0E,0x02,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x62,
0x6F,0x6F,0x6C,0x73,0x00,0x00,0x00,0x00,0x06,0xF7,0xFF,0xFF,0x17,0x00,0x32,0x00,0x6C,0x00,0x00,0x00,
0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x94,0xEF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x32,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xB0,0xEF,0xFF,0xFF,
0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x7A,0xEC,0xFF,0xFF,
0x00,0x00,0x00,0x0A,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,
0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0x92,0xF7,0xFF,0xFF,0x16,0x00,0x30,0x00,0x6C,0x00,0x00,0x00,
0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x32,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3C,0xF0,0xFF,0xFF,
0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x06,0xED,0xFF,0xFF,
0x00,0x00,0x00,0x09,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,
0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0x1E,0xF8,0xFF,0xFF,0x15,0x00,0x2E,0x00,0xC8,0x00,0x00,0x00,
0xBC,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x7C,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB4,0xF0,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x31,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0xD0,0xF0,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
0x66,0x6E,0x76,0x31,0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
0x00,0x00,0x00,0x00,0xF8,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,
0x00,0x00,0x00,0x00,0x20,0xF1,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,
0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xEE,0xED,0xFF,0xFF,0x00,0x00,0x00,0x08,0x11,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,
0x06,0xF9,0xFF,0xFF,0x14,0x00,0x2C,0x00,0x6C,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x94,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x30,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xB0,0xF1,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x7A,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x07,0x11,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,
0x92,0xF9,0xFF,0xFF,0x13,0x00,0x2A,0x00,0x68,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x20,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x39,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3C,0xF2,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,
0x00,0x00,0x00,0x00,0x02,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x1A,0xFA,0xFF,0xFF,
0x12,0x00,0x28,0x00,0x68,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA8,0xF2,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x38,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0xC4,0xF2,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,
0x8A,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x09,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,
0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0xA2,0xFA,0xFF,0xFF,0x11,0x00,0x26,0x00,
0x68,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x30,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0x4C,0xF3,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,
0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x12,0xF0,0xFF,0xFF,
0x00,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x33,0x32,0x5F,
0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x2A,0xFB,0xFF,0xFF,0x10,0x00,0x24,0x00,0x68,0x00,0x00,0x00,
0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB8,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x31,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD4,0xF3,0xFF,0xFF,
0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x33,0x32,0x00,
0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x9A,0xF0,0xFF,0xFF,0x00,0x00,0x00,0x07,
0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,
0x00,0x00,0x00,0x00,0xB2,0xFB,0xFF,0xFF,0x0F,0x00,0x22,0x00,0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x3C,0xF4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x35,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xFA,0xF0,0xFF,0xFF,0x00,0x00,0x00,0x02,0x08,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x62,0x6F,0x6F,0x6C,0x00,0x00,0x00,0x00,0x0A,0xFC,0xFF,0xFF,0x0E,0x00,0x20,0x00,
0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x94,0xF4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x31,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xFA,0xF1,0xFF,0xFF,
0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x65,0x6D,0x70,0x74,
0x79,0x00,0x00,0x00,0x66,0xFC,0xFF,0xFF,0x0D,0x00,0x1E,0x00,0x74,0x00,0x00,0x00,0x68,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0xF4,0xF4,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66,
0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x24,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0x80,0xFC,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x14,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x6E,0x65,0x73,0x74,
0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x00,0xFE,0xFC,0xFF,0xFF,
0x0C,0x00,0x1C,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x88,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0xEE,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x65,0x6E,0x65,0x6D,
0x79,0x00,0x00,0x00,0x56,0xFD,0xFF,0xFF,0x0B,0x00,0x1A,0x00,0xB0,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,
0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x0E,0x00,0x00,0x00,0x20,0x6D,0x75,0x6C,0x74,0x69,0x6C,0x69,0x6E,0x65,0x20,0x74,0x6F,0x6F,0x00,0x00,
0x49,0x00,0x00,0x00,0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x6F,0x63,0x75,
0x6D,0x65,0x6E,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x74,0x3A,0x20,0x74,
0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x65,0x6E,0x64,0x20,0x75,0x70,0x20,0x69,0x6E,0x20,0x74,
0x68,0x65,0x20,0x67,0x65,0x6E,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x63,0x6F,0x64,0x65,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4C,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3A,0xFF,0xFF,0xFF,
0x00,0x00,0x0E,0x0F,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,
0x79,0x6F,0x66,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x26,0xFE,0xFF,0xFF,0x0A,0x00,0x18,0x00,
0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB0,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x31,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xFE,0xFF,0xFF,
0x00,0x00,0x0E,0x0D,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,
0x74,0x72,0x69,0x6E,0x67,0x00,0x00,0x00,0x86,0xFE,0xFF,0xFF,0x09,0x00,0x16,0x00,0x50,0x00,0x00,0x00,
0x40,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x10,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x39,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0x00,0x0A,0x00,0x0C,0x00,0x06,0x00,
0x07,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x34,0x00,0x00,0x00,0xEA,0xFE,0xFF,0xFF,0x08,0x00,0x14,0x00,0x44,0x00,0x00,0x00,
0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x74,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xDA,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x10,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x00,0x00,0x00,0x00,0x42,0xFF,0xFF,0xFF,
0x07,0x00,0x12,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xCC,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,
0x32,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x4A,0xFD,0xFF,0xFF,0x06,0x00,0x10,0x00,0x50,0x00,0x00,0x00,
0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0xF8,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x9A,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x05,0x00,0x00,0x00,
0x63,0x6F,0x6C,0x6F,0x72,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x05,0x00,0x0E,0x00,
0x48,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA4,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x08,0x00,0x08,0x00,
0x06,0x00,0x07,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0E,0x04,0x09,0x00,0x00,0x00,0x69,0x6E,0x76,0x65,
0x6E,0x74,0x6F,0x72,0x79,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,
0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x04,0x00,0x0C,0x00,0x90,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x28,0xF9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x70,0x72,0x69,0x6F,0x72,0x69,0x74,0x79,0x00,0x00,0x00,0x00,0x4C,0xF9,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x68,0xF9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x00,0x00,
0x2E,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x02,0x08,0x00,0x00,0x00,0x66,0x72,0x69,0x65,0x6E,0x64,0x6C,0x79,
0x00,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x06,0x00,0x07,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x00,0x0A,0x00,
0x88,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xEC,0xF9,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x00,0x00,0x00,0x00,0x10,0xFA,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,
0x2C,0xFA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xEA,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x0D,0x04,0x00,0x00,0x00,
0x6E,0x61,0x6D,0x65,0x00,0x00,0x00,0x00,0xA2,0xFF,0xFF,0xFF,0x02,0x00,0x08,0x00,0x4C,0x00,0x00,0x00,
0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xFA,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x4A,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x68,0x70,0x00,0x00,
0x00,0x00,0x1A,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x4C,0x00,0x00,0x00,
0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0xFB,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0xC2,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0x6D,0x61,0x6E,0x61,
0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x44,0x00,0x00,0x00,
0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x70,0xFB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD6,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x70,0x6F,0x73,0x00,0x72,0xF9,0xFF,0xFF,0x1C,0x00,0x00,0x00,
0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
0x6C,0x65,0x2E,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,
0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x10,0x00,0x14,0x00,
0x1A,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x6C,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x20,0xFC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x3C,0xFC,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x06,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x02,0x00,0x00,0x00,
0x69,0x64,0x00,0x00,0x46,0xFA,0xFF,0xFF,0x24,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x74,0x00,0x00,0x00,
0x48,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
0x6C,0x65,0x2E,0x53,0x74,0x61,0x74,0x00,0xB6,0xFB,0xFF,0xFF,0x02,0x00,0x08,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x06,
0x05,0x00,0x00,0x00,0x63,0x6F,0x75,0x6E,0x74,0x00,0x00,0x00,0xE2,0xFB,0xFF,0xFF,0x01,0x00,0x06,0x00,
0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0xF9,0xFF,0xFF,
0x00,0x00,0x00,0x09,0x03,0x00,0x00,0x00,0x76,0x61,0x6C,0x00,0x86,0xFA,0xFF,0xFF,0x00,0x00,0x04,0x00,
0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC2,0xF9,0xFF,0xFF,
0x00,0x00,0x00,0x0D,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x5E,0xFA,0xFF,0xFF,0x00,0x00,0x00,0x01,
0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x16,0x00,0x00,0x00,
0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,0x62,0x69,0x6C,0x69,
0x74,0x79,0x00,0x00,0x7A,0xFC,0xFF,0xFF,0x01,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0xFA,0xFF,0xFF,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,
0x64,0x69,0x73,0x74,0x61,0x6E,0x63,0x65,0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,
0xA2,0xFA,0xFF,0xFF,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0x00,0x12,0x00,
0x20,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x1C,0x00,0x12,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x64,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x50,0xFE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
0x0B,0x00,0x00,0x00,0x66,0x6F,0x72,0x63,0x65,0x5F,0x61,0x6C,0x69,0x67,0x6E,0x00,0x06,0x00,0x00,0x00,
0x90,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xD4,0x00,0x00,0x00,
0xA8,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,
0x6C,0x65,0x2E,0x56,0x65,0x63,0x33,0x00,0xAA,0xFD,0xFF,0xFF,0x05,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x33,0x00,0x00,0x00,0xDA,0xFD,0xFF,0xFF,
0x04,0x00,0x18,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3A,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,
0x32,0x00,0x00,0x00,0x0A,0xFE,0xFF,0xFF,0x03,0x00,0x10,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC2,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x05,0x00,0x00,0x00,
0x74,0x65,0x73,0x74,0x31,0x00,0x00,0x00,0x36,0xFE,0xFF,0xFF,0x02,0x00,0x08,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,
0x01,0x00,0x00,0x00,0x7A,0x00,0x00,0x00,0x5E,0xFE,0xFF,0xFF,0x01,0x00,0x04,0x00,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x0B,
0x01,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x56,0xFC,0xFF,0xFF,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,
0x78,0x00,0x12,0x00,0x18,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x14,0x00,
0x12,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0xE0,0xFF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
0x07,0x00,0x00,0x00,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x08,0x00,
0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
0x0E,0x00,0x00,0x00,0x63,0x73,0x68,0x61,0x72,0x70,0x5F,0x70,0x61,0x72,0x74,0x69,0x61,0x6C,0x00,0x00,
0x01,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,
0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x53,0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,
0x6C,0x65,0x57,0x69,0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x08,0x00,
0x0C,0x00,0x00,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,
0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEA,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x04,
0x03,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0xE6,0xFD,0xFF,0xFF,
0x00,0x00,0x00,0x01,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,
0x65,0x73,0x74,0x00,0x00,0x00,0x1A,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x01,0x00,0x02,0x00,
0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD2,0xFD,0xFF,0xFF,
0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x12,0xFE,0xFF,0xFF,0x18,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF6,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x05,
0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x36,0xFF,0xFF,0xFF,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x32,0x2E,0x4D,0x6F,0x6E,0x73,
0x74,0x65,0x72,0x00,0x6E,0xFF,0xFF,0xFF,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
0x6D,0x65,0x2E,0x49,0x6E,0x50,0x61,0x72,0x65,0x6E,0x74,0x4E,0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,
0x00,0x00,0x00,0x00,0xAA,0xFF,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,
0x54,0x61,0x62,0x6C,0x65,0x41,0x00,0x00,0x82,0xFF,0xFF,0xFF,0x00,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x0F,
0x0A,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x12,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00,
0x0C,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x12,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,
0x53,0x70,0x61,0x63,0x65,0x2E,0x54,0x61,0x62,0x6C,0x65,0x42,0x00,0x00,0x1A,0x00,0x14,0x00,0x08,0x00,
0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,
0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x12,0x00,0x1C,0x00,0x08,0x00,
0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,
0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x55,0x6E,
0x75,0x73,0x65,0x64,0x00,0x00,0x1A,0x00,0x10,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1A,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x08,0x00,0x07,0x00,
0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00
};
return bfbsData;
}
static size_t size() {
return 12176;
}
const uint8_t *begin() {
return data();
}
const uint8_t *end() {
return data() + size();
}
};
} // namespace Example
} // namespace MyGame
#endif // FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_BFBS_H_

View File

@@ -45,6 +45,7 @@
#include "test_assert.h" #include "test_assert.h"
#include "flatbuffers/flexbuffers.h" #include "flatbuffers/flexbuffers.h"
#include "monster_test_bfbs_generated.h" // Generated using --bfbs-comments --bfbs-builtins --cpp --bfbs-gen-embed
// clang-format off // clang-format off
// Check that char* and uint8_t* are interoperable types. // Check that char* and uint8_t* are interoperable types.
@@ -3288,6 +3289,48 @@ void FixedLengthArrayJsonTest(bool binary) {
#endif #endif
} }
void TestEmbeddedBinarySchema() {
// load JSON from disk
std::string jsonfile;
TEST_EQ(flatbuffers::LoadFile((test_data_path + "monsterdata_test.golden").c_str(),
false, &jsonfile), true);
// parse schema first, so we can use it to parse the data after
flatbuffers::Parser parserOrg, parserGen;
flatbuffers::Verifier verifier(MyGame::Example::MonsterBinarySchema::data(),
MyGame::Example::MonsterBinarySchema::size());
TEST_EQ(reflection::VerifySchemaBuffer(verifier), true);
TEST_EQ(parserOrg.Deserialize(MyGame::Example::MonsterBinarySchema::data(),
MyGame::Example::MonsterBinarySchema::size()), true);
TEST_EQ(parserGen.Deserialize(MyGame::Example::MonsterBinarySchema::data(),
MyGame::Example::MonsterBinarySchema::size()), true);
TEST_EQ(parserOrg.Parse(jsonfile.c_str()), true);
// First, verify it, just in case:
flatbuffers::Verifier verifierOrg(parserOrg.builder_.GetBufferPointer(),
parserOrg.builder_.GetSize());
TEST_EQ(VerifyMonsterBuffer(verifierOrg), true);
// Export to JSON
std::string jsonGen;
TEST_EQ(GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen), true);
// Import from JSON
TEST_EQ(parserGen.Parse(jsonGen.c_str()), true);
// Verify buffer from generated JSON
flatbuffers::Verifier verifierGen(parserGen.builder_.GetBufferPointer(),
parserGen.builder_.GetSize());
TEST_EQ(VerifyMonsterBuffer(verifierGen), true);
// Compare generated buffer to original
TEST_EQ(parserOrg.builder_.GetSize(), parserGen.builder_.GetSize());
TEST_EQ(std::memcmp(parserOrg.builder_.GetBufferPointer(),
parserGen.builder_.GetBufferPointer(),
parserOrg.builder_.GetSize()),
0);
}
int FlatBufferTests() { int FlatBufferTests() {
// clang-format off // clang-format off
@@ -3332,6 +3375,7 @@ int FlatBufferTests() {
UnionVectorTest(); UnionVectorTest();
LoadVerifyBinaryTest(); LoadVerifyBinaryTest();
GenerateTableTextTest(); GenerateTableTextTest();
TestEmbeddedBinarySchema();
#endif #endif
// clang-format on // clang-format on