diff --git a/binding-mri/modloader-binding.cpp b/binding-mri/modloader-binding.cpp index aa8dc0e..38161a8 100644 --- a/binding-mri/modloader-binding.cpp +++ b/binding-mri/modloader-binding.cpp @@ -8,6 +8,7 @@ #include "ruby/encoding.h" #include "ruby/intern.h" #include "ruby/thread.h" +#include "modloader.h" #include #include #include @@ -60,4 +61,6 @@ void ModLoaderBindingInit(){ Debug() << "[MODLOADER] initalizing binding..."; VALUE klass = rb_define_module("ModLoader"); rb_define_module_function(klass, "hooks", RUBY_METHOD_FUNC(hooks), -1); + rb_define_const(klass, "IS_ENABLED", modloader_is_enabled ? Qtrue : Qfalse); + rb_define_const(klass, "COUNT", INT2NUM(mods_count)); } diff --git a/binding-mri/module_rpg1.rb b/binding-mri/module_rpg1.rb index e33f1f9..040f850 100644 --- a/binding-mri/module_rpg1.rb +++ b/binding-mri/module_rpg1.rb @@ -1275,8 +1275,10 @@ module RPG class Mod def self.exec_hooks(path, b) - ModLoader.hooks(path).each do |item| - eval(File.read(item), b) + if ModLoader::IS_ENABLED + ModLoader.hooks(path).each do |item| + eval(File.read(item), b) + end end end end diff --git a/binding-mri/module_rpg1.rb.xxd b/binding-mri/module_rpg1.rb.xxd index 564f9a0..dd2611f 100644 --- a/binding-mri/module_rpg1.rb.xxd +++ b/binding-mri/module_rpg1.rb.xxd @@ -2784,446 +2784,449 @@ unsigned char module_rpg1[] = { 0x6c, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x6f, 0x64, 0x0a, 0x09, 0x64, 0x65, 0x66, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x28, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20, - 0x62, 0x29, 0x0a, 0x09, 0x20, 0x20, 0x4d, 0x6f, 0x64, 0x4c, 0x6f, 0x61, - 0x64, 0x65, 0x72, 0x2e, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x28, 0x70, 0x61, - 0x74, 0x68, 0x29, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x20, 0x64, 0x6f, 0x20, - 0x7c, 0x69, 0x74, 0x65, 0x6d, 0x7c, 0x0a, 0x09, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x76, 0x61, 0x6c, 0x28, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x72, 0x65, - 0x61, 0x64, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x2c, 0x20, 0x62, 0x29, - 0x0a, 0x09, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x09, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x69, 0x6c, 0x65, 0x73, 0x65, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, - 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x74, - 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x61, 0x75, 0x74, 0x6f, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x22, 0x22, 0x5d, 0x2a, 0x37, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x6e, 0x6f, 0x72, - 0x61, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x6e, - 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, 0x75, 0x65, 0x20, 0x3d, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x68, 0x75, - 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, - 0x20, 0x3d, 0x20, 0x36, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x7a, 0x6f, 0x6f, 0x6d, 0x20, - 0x3d, 0x20, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x73, - 0x79, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e, 0x65, - 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, - 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5b, - 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e, - 0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6e, 0x61, 0x6d, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x69, 0x6c, - 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x74, 0x69, 0x6c, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, - 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, 0x75, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, - 0x66, 0x6f, 0x67, 0x5f, 0x68, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, 0x63, 0x69, - 0x74, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, - 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, - 0x7a, 0x6f, 0x6f, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, - 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x79, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x61, - 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, - 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, 0x3d, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x3d, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, - 0x20, 0x5b, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x77, 0x5d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, - 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, 0x69, - 0x73, 0x74, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x57, - 0x6f, 0x72, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x67, - 0x6f, 0x6c, 0x64, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x68, 0x70, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, - 0x70, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x72, 0x20, 0x3d, 0x20, 0x22, 0x22, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x64, 0x65, - 0x78, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x61, 0x67, 0x69, 0x20, 0x3d, 0x20, 0x22, 0x22, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x6e, - 0x74, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x61, 0x74, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x22, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x64, - 0x65, 0x66, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, 0x64, 0x65, 0x66, 0x20, 0x3d, 0x20, - 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, - 0x6f, 0x72, 0x31, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, + 0x62, 0x29, 0x0a, 0x09, 0x20, 0x20, 0x69, 0x66, 0x20, 0x4d, 0x6f, 0x64, + 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x3a, 0x3a, 0x49, 0x53, 0x5f, 0x45, + 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x0a, 0x09, 0x20, 0x20, 0x09, 0x4d, + 0x6f, 0x64, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x28, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x64, 0x6f, 0x20, 0x7c, 0x69, 0x74, 0x65, 0x6d, 0x7c, 0x0a, + 0x09, 0x20, 0x20, 0x20, 0x20, 0x09, 0x65, 0x76, 0x61, 0x6c, 0x28, 0x46, + 0x69, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x28, 0x69, 0x74, 0x65, + 0x6d, 0x29, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x09, 0x20, 0x20, 0x09, 0x65, + 0x6e, 0x64, 0x0a, 0x09, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x09, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, + 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x69, 0x6c, 0x65, + 0x73, 0x65, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, 0x20, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x20, 0x3d, 0x20, - 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x67, 0x75, 0x61, 0x72, 0x64, 0x20, 0x3d, 0x20, 0x22, 0x22, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x74, - 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x71, 0x75, 0x69, 0x70, 0x20, 0x3d, - 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67, - 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x40, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x61, 0x75, 0x74, 0x6f, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x22, 0x22, 0x5d, 0x2a, + 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x6e, + 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, + 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, 0x75, 0x65, 0x20, + 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, + 0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, + 0x68, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x20, 0x3d, 0x20, 0x36, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x7a, 0x6f, 0x6f, + 0x6d, 0x20, 0x3d, 0x20, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x20, 0x3d, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, + 0x5f, 0x73, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x63, + 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, + 0x6e, 0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e, + 0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x68, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x73, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x73, 0x74, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x64, 0x65, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x61, 0x67, 0x69, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x6b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x64, 0x65, 0x66, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x64, 0x65, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x65, - 0x61, 0x70, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, - 0x6d, 0x6f, 0x72, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x6b, - 0x69, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x74, 0x65, 0x6d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x65, 0x73, 0x74, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x5f, - 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, 0x5f, 0x69, - 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x5f, 0x69, 0x64, - 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, 0x64, 0x20, - 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x65, 0x61, 0x70, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x5f, 0x69, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, - 0x6d, 0x6f, 0x72, 0x32, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x5f, - 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, - 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, 0x61, 0x67, - 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x3d, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x72, - 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x3d, - 0x20, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x5b, - 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x3d, 0x20, 0x5b, 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x6e, 0x69, 0x6c, - 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x20, 0x3d, 0x20, - 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, - 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, - 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, - 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, - 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, - 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x67, - 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x20, 0x3d, - 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, - 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x40, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x5f, 0x73, 0x65, - 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, - 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, - 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x40, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x20, 0x3d, - 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, - 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, - 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, - 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, - 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, - 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x71, 0x75, - 0x69, 0x70, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, - 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, - 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x73, - 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, - 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, - 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, - 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, - 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, - 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, - 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, - 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, - 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, 0x65, 0x20, - 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, - 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, - 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, - 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x20, - 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, - 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x77, 0x6f, 0x72, 0x64, 0x73, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, - 0x3a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x3a, 0x3a, 0x57, 0x6f, 0x72, - 0x64, 0x73, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x6f, - 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, - 0x61, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x78, - 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, - 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75, 0x65, 0x20, - 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, - 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x76, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x5f, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67, - 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, - 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x64, - 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, - 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5f, 0x73, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x61, 0x76, 0x65, - 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x6e, 0x65, 0x6d, 0x79, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x6f, 0x72, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, - 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x70, - 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, - 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, - 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x64, 0x69, 0x74, 0x5f, - 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, - 0x2c, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x31, - 0x30, 0x30, 0x2c, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x20, 0x3d, 0x20, - 0x31, 0x30, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x20, 0x3d, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x69, 0x74, 0x63, 0x68, 0x20, - 0x3d, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x3a, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, + 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x74, + 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, + 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x20, 0x3a, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, + 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x68, 0x75, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, + 0x66, 0x6f, 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, + 0x67, 0x5f, 0x7a, 0x6f, 0x6f, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x79, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, + 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, + 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x3d, 0x20, 0x5b, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x6e, 0x65, + 0x77, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, + 0x6c, 0x69, 0x73, 0x74, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, + 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x20, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x67, 0x6f, 0x6c, 0x64, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x68, 0x70, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x73, 0x70, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x72, 0x20, 0x3d, 0x20, + 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x64, 0x65, 0x78, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x67, 0x69, 0x20, 0x3d, 0x20, + 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x69, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x74, 0x6b, 0x20, 0x3d, 0x20, + 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x70, 0x64, 0x65, 0x66, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, 0x64, 0x65, 0x66, 0x20, + 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, + 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, + 0x72, 0x32, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x20, + 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x20, 0x3d, 0x20, 0x22, + 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x6b, 0x69, 0x6c, + 0x6c, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x67, 0x75, 0x61, 0x72, 0x64, 0x20, 0x3d, 0x20, + 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x69, 0x74, 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x71, 0x75, 0x69, 0x70, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, - 0x3a, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x65, 0x6e, 0x64, 0x0a + 0x3a, 0x67, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x68, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x73, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x73, 0x74, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x64, 0x65, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x67, 0x69, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x6b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x64, 0x65, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x64, + 0x65, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, + 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, + 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, + 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, + 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x74, 0x65, 0x6d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, + 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x65, 0x73, + 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x20, + 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x77, 0x65, 0x61, 0x70, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, + 0x31, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, + 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x5f, + 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, + 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x65, + 0x61, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x5f, + 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, + 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, + 0x33, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, + 0x61, 0x67, 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, + 0x61, 0x72, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x20, 0x3d, 0x20, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x3d, + 0x20, 0x5b, 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, + 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x6e, + 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x20, + 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x62, + 0x67, 0x6d, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x52, + 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x40, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x5f, + 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, + 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, + 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x40, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x73, 0x65, + 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, + 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x20, 0x3d, + 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, + 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, + 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, + 0x71, 0x75, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, + 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x61, 0x76, 0x65, + 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, + 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x20, + 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, + 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, + 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, + 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, + 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, + 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x6e, 0x65, 0x6d, + 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, + 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, + 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x20, 0x3d, 0x20, 0x52, 0x50, + 0x47, 0x3a, 0x3a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x3a, 0x3a, 0x57, + 0x6f, 0x72, 0x64, 0x73, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x20, 0x3d, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75, + 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x40, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, + 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x61, 0x67, 0x69, + 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x20, 0x3a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x6f, + 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, + 0x67, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5f, + 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x61, + 0x76, 0x65, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x6e, 0x65, + 0x6d, 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, + 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x6f, + 0x72, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x65, 0x73, 0x74, + 0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, + 0x61, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, + 0x22, 0x22, 0x2c, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0x3d, + 0x20, 0x31, 0x30, 0x30, 0x2c, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x20, + 0x3d, 0x20, 0x31, 0x30, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x40, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x69, 0x74, 0x63, + 0x68, 0x20, 0x3d, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, + 0x3a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x20, 0x3a, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a }; -unsigned int module_rpg1_len = 38705; +unsigned int module_rpg1_len = 38743; diff --git a/scripts/Scene_Title.rb b/scripts/Scene_Title.rb index d8b5b11..c007a1d 100644 --- a/scripts/Scene_Title.rb +++ b/scripts/Scene_Title.rb @@ -85,6 +85,9 @@ class Scene_Title @debug.bitmap.draw_text(5, 5, 200, 20, tr("Ruby #{RUBY_VERSION}")) @debug.bitmap.draw_text(5, 25, 200, 20, tr("SDL #{SDLVer}")) @debug.bitmap.draw_text(5, 45, 200, 20, tr("Sunshine #{SunshineVer}")) + if ModLoader::IS_ENABLED + @debug.bitmap.draw_text(5, 65, 200, 20, tr("Mods loaded: #{ModLoader::COUNT}")) + end if $game_switches[160] && $game_switches[152] @menu.bitmap.draw_text(MENU_X, MENU_Y + 75, 150, 24, tr("...")) diff --git a/src/modloader.cpp b/src/modloader.cpp index 8bd6f86..36c6348 100644 --- a/src/modloader.cpp +++ b/src/modloader.cpp @@ -34,6 +34,8 @@ std::string getCacheDir(){ return SDL_getenv("Temp"); #elif defined(__linux__) return std::string(SDL_getenv("HOME")) + "/.cache"; +#elif __APPLE__ + return "~/Library/Caches"; #else return "idk"; #endif @@ -93,12 +95,16 @@ std::string sha256_file(const std::string &fn) { } std::string ModLoader(Config conf){ - //"mods" by defailt std::string path = conf.ModsDirPath; - if (!std::filesystem::exists(path) || !std::filesystem::is_directory(path)) { + if (!fs::exists(path) || !std::filesystem::is_directory(path)) { Debug() << "[MODLOADER] Mods directory not found, skip."; return ""; } + + if (fs::is_empty(path)){ + Debug() << "[MODLOADER] Mods directory empty, skip."; + return ""; + } //buildID - unique ID of a certain combination of mods std::string buildID = ""; @@ -117,20 +123,17 @@ std::string ModLoader(Config conf){ std::string full = p.string(); Debug() << "[MODLOADER] " << full; mod_list.push_back(full); + mods_count++; - try { - auto h = sha256_file(full); - buildID_tmp.append(h); - }catch (const std::exception &e) { - Debug() << "[MODLOADER] sha256 failed for " << full << ", ex: " << e.what(); - continue; - } + auto h = sha256_file(full); + buildID_tmp.append(h); } buildID = sha512(buildID_tmp); Debug() << "[MODLOADER] BuildID: " << buildID; std::string path3 = getCacheDir() + "/sunshine-" + buildID; int err = 0; + modloader_is_enabled = true; if(!std::filesystem::exists(path3)){ std::error_code ec; fs::create_directory(path3, ec); @@ -143,7 +146,6 @@ std::string ModLoader(Config conf){ crash(Exception::ModLoaderError, "Copy error: %s", ec.message().c_str()); } - char state2[1024]; //Extracting zipsodpsofspo idk for (size_t i = 0; i < mod_list.size(); ++i){ zip_t* za = zip_open(mod_list[i].c_str(), ZIP_RDONLY, &err); @@ -204,7 +206,7 @@ std::string ModLoader(Config conf){ return path3; }else{ return path3; - } + } }catch(const std::exception& e){ crash(Exception::ModLoaderError, "Something is wrong, Exception: %s ", e.what()); } diff --git a/src/modloader.h b/src/modloader.h index 4898da9..f4460b8 100644 --- a/src/modloader.h +++ b/src/modloader.h @@ -1,4 +1,7 @@ -//modloader wow +//modloader bruh #include #include "config.h" std::string ModLoader(Config conf); + +inline bool modloader_is_enabled = false; +inline unsigned int mods_count = 0;