diff --git a/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.cc index 2653805758..25c06d3ace 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.cc @@ -138,7 +138,8 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fsecurity_2eproto: ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, name_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, group_), PROTOBUF_FIELD_OFFSET(::flyteidl::core::Secret, mount_requirement_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::core::OAuth2Client, _internal_metadata_), @@ -176,10 +177,10 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fcore_2fsecurity_2eproto: }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::core::Secret)}, - { 7, -1, sizeof(::flyteidl::core::OAuth2Client)}, - { 14, -1, sizeof(::flyteidl::core::Identity)}, - { 22, -1, sizeof(::flyteidl::core::OAuth2TokenRequest)}, - { 32, -1, sizeof(::flyteidl::core::SecurityContext)}, + { 8, -1, sizeof(::flyteidl::core::OAuth2Client)}, + { 15, -1, sizeof(::flyteidl::core::Identity)}, + { 23, -1, sizeof(::flyteidl::core::OAuth2TokenRequest)}, + { 33, -1, sizeof(::flyteidl::core::SecurityContext)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -198,30 +199,31 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fcore_2fsecurity_2eproto[] = "\n\034flyteidl/core/security.proto\022\rflyteidl" - ".core\"v\n\006Secret\022\014\n\004name\030\001 \001(\t\022:\n\021mount_r" - "equirement\030\002 \001(\0162\037.flyteidl.core.Secret." - "MountType\"\"\n\tMountType\022\013\n\007ENV_VAR\020\000\022\010\n\004F" - "ILE\020\001\"O\n\014OAuth2Client\022\021\n\tclient_id\030\001 \001(\t" - "\022,\n\rclient_secret\030\002 \001(\0132\025.flyteidl.core." - "Secret\"m\n\010Identity\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023" - "k8s_service_account\030\002 \001(\t\0222\n\roauth2_clie" - "nt\030\003 \001(\0132\033.flyteidl.core.OAuth2Client\"\335\001" - "\n\022OAuth2TokenRequest\022\014\n\004name\030\001 \001(\t\0224\n\004ty" - "pe\030\002 \001(\0162&.flyteidl.core.OAuth2TokenRequ" - "est.Type\022+\n\006client\030\003 \001(\0132\033.flyteidl.core" - ".OAuth2Client\022\036\n\026idp_discovery_endpoint\030" - "\004 \001(\t\022\026\n\016token_endpoint\030\005 \001(\t\"\036\n\004Type\022\026\n" - "\022CLIENT_CREDENTIALS\020\000\"\225\001\n\017SecurityContex" - "t\022\'\n\006run_as\030\001 \001(\0132\027.flyteidl.core.Identi" - "ty\022&\n\007secrets\030\002 \003(\0132\025.flyteidl.core.Secr" - "et\0221\n\006tokens\030\003 \003(\0132!.flyteidl.core.OAuth" - "2TokenRequestB6Z4github.com/flyteorg/fly" - "teidl/gen/pb-go/flyteidl/coreb\006proto3" + ".core\"\215\001\n\006Secret\022\013\n\003key\030\001 \001(\t\022\r\n\005group\030\002" + " \001(\t\022:\n\021mount_requirement\030\003 \001(\0162\037.flytei" + "dl.core.Secret.MountType\"+\n\tMountType\022\007\n" + "\003ANY\020\000\022\013\n\007ENV_VAR\020\001\022\010\n\004FILE\020\002\"O\n\014OAuth2C" + "lient\022\021\n\tclient_id\030\001 \001(\t\022,\n\rclient_secre" + "t\030\002 \001(\0132\025.flyteidl.core.Secret\"m\n\010Identi" + "ty\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023k8s_service_acco" + "unt\030\002 \001(\t\0222\n\roauth2_client\030\003 \001(\0132\033.flyte" + "idl.core.OAuth2Client\"\335\001\n\022OAuth2TokenReq" + "uest\022\014\n\004name\030\001 \001(\t\0224\n\004type\030\002 \001(\0162&.flyte" + "idl.core.OAuth2TokenRequest.Type\022+\n\006clie" + "nt\030\003 \001(\0132\033.flyteidl.core.OAuth2Client\022\036\n" + "\026idp_discovery_endpoint\030\004 \001(\t\022\026\n\016token_e" + "ndpoint\030\005 \001(\t\"\036\n\004Type\022\026\n\022CLIENT_CREDENTI" + "ALS\020\000\"\225\001\n\017SecurityContext\022\'\n\006run_as\030\001 \001(" + "\0132\027.flyteidl.core.Identity\022&\n\007secrets\030\002 " + "\003(\0132\025.flyteidl.core.Secret\0221\n\006tokens\030\003 \003" + "(\0132!.flyteidl.core.OAuth2TokenRequestB6Z" + "4github.com/flyteorg/flyteidl/gen/pb-go/" + "flyteidl/coreb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fcore_2fsecurity_2eproto = { false, InitDefaults_flyteidl_2fcore_2fsecurity_2eproto, descriptor_table_protodef_flyteidl_2fcore_2fsecurity_2eproto, - "flyteidl/core/security.proto", &assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto, 797, + "flyteidl/core/security.proto", &assign_descriptors_table_flyteidl_2fcore_2fsecurity_2eproto, 821, }; void AddDescriptors_flyteidl_2fcore_2fsecurity_2eproto() { @@ -243,6 +245,7 @@ bool Secret_MountType_IsValid(int value) { switch (value) { case 0: case 1: + case 2: return true; default: return false; @@ -250,6 +253,7 @@ bool Secret_MountType_IsValid(int value) { } #if !defined(_MSC_VER) || _MSC_VER >= 1900 +const Secret_MountType Secret::ANY; const Secret_MountType Secret::ENV_VAR; const Secret_MountType Secret::FILE; const Secret_MountType Secret::MountType_MIN; @@ -285,7 +289,8 @@ class Secret::HasBitSetters { }; #if !defined(_MSC_VER) || _MSC_VER >= 1900 -const int Secret::kNameFieldNumber; +const int Secret::kKeyFieldNumber; +const int Secret::kGroupFieldNumber; const int Secret::kMountRequirementFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 @@ -298,9 +303,13 @@ Secret::Secret(const Secret& from) : ::google::protobuf::Message(), _internal_metadata_(nullptr) { _internal_metadata_.MergeFrom(from._internal_metadata_); - name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - if (from.name().size() > 0) { - name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); + key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.key().size() > 0) { + key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_); + } + group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.group().size() > 0) { + group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_); } mount_requirement_ = from.mount_requirement_; // @@protoc_insertion_point(copy_constructor:flyteidl.core.Secret) @@ -309,7 +318,8 @@ Secret::Secret(const Secret& from) void Secret::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_Secret_flyteidl_2fcore_2fsecurity_2eproto.base); - name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); mount_requirement_ = 0; } @@ -319,7 +329,8 @@ Secret::~Secret() { } void Secret::SharedDtor() { - name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + key_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } void Secret::SetCachedSize(int size) const { @@ -337,7 +348,8 @@ void Secret::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); mount_requirement_ = 0; _internal_metadata_.Clear(); } @@ -355,13 +367,13 @@ const char* Secret::_InternalParse(const char* begin, const char* end, void* obj ptr = ::google::protobuf::io::Parse32(ptr, &tag); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); switch (tag >> 3) { - // string name = 1; + // string key = 1; case 1: { if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); - ctx->extra_parse_data().SetFieldName("flyteidl.core.Secret.name"); - object = msg->mutable_name(); + ctx->extra_parse_data().SetFieldName("flyteidl.core.Secret.key"); + object = msg->mutable_key(); if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; goto string_till_end; @@ -371,9 +383,25 @@ const char* Secret::_InternalParse(const char* begin, const char* end, void* obj ptr += size; break; } - // .flyteidl.core.Secret.MountType mount_requirement = 2; + // string group = 2; case 2: { - if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual; + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.core.Secret.group"); + object = msg->mutable_group(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // .flyteidl.core.Secret.MountType mount_requirement = 3; + case 3: { + if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual; ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr); msg->set_mount_requirement(static_cast<::flyteidl::core::Secret_MountType>(val)); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); @@ -413,24 +441,39 @@ bool Secret::MergePartialFromCodedStream( tag = p.first; if (!p.second) goto handle_unusual; switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // string name = 1; + // string key = 1; case 1: { if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_name())); + input, this->mutable_key())); DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->name().data(), static_cast(this->name().length()), + this->key().data(), static_cast(this->key().length()), ::google::protobuf::internal::WireFormatLite::PARSE, - "flyteidl.core.Secret.name")); + "flyteidl.core.Secret.key")); } else { goto handle_unusual; } break; } - // .flyteidl.core.Secret.MountType mount_requirement = 2; + // string group = 2; case 2: { - if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_group())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->group().data(), static_cast(this->group().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.core.Secret.group")); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.core.Secret.MountType mount_requirement = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) { int value = 0; DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( @@ -469,20 +512,30 @@ void Secret::SerializeWithCachedSizes( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // string name = 1; - if (this->name().size() > 0) { + // string key = 1; + if (this->key().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->name().data(), static_cast(this->name().length()), + this->key().data(), static_cast(this->key().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.core.Secret.name"); + "flyteidl.core.Secret.key"); ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 1, this->name(), output); + 1, this->key(), output); + } + + // string group = 2; + if (this->group().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->group().data(), static_cast(this->group().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Secret.group"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 2, this->group(), output); } - // .flyteidl.core.Secret.MountType mount_requirement = 2; + // .flyteidl.core.Secret.MountType mount_requirement = 3; if (this->mount_requirement() != 0) { ::google::protobuf::internal::WireFormatLite::WriteEnum( - 2, this->mount_requirement(), output); + 3, this->mount_requirement(), output); } if (_internal_metadata_.have_unknown_fields()) { @@ -498,21 +551,32 @@ ::google::protobuf::uint8* Secret::InternalSerializeWithCachedSizesToArray( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // string name = 1; - if (this->name().size() > 0) { + // string key = 1; + if (this->key().size() > 0) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( - this->name().data(), static_cast(this->name().length()), + this->key().data(), static_cast(this->key().length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, - "flyteidl.core.Secret.name"); + "flyteidl.core.Secret.key"); target = ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 1, this->name(), target); + 1, this->key(), target); } - // .flyteidl.core.Secret.MountType mount_requirement = 2; + // string group = 2; + if (this->group().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->group().data(), static_cast(this->group().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.core.Secret.group"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 2, this->group(), target); + } + + // .flyteidl.core.Secret.MountType mount_requirement = 3; if (this->mount_requirement() != 0) { target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( - 2, this->mount_requirement(), target); + 3, this->mount_requirement(), target); } if (_internal_metadata_.have_unknown_fields()) { @@ -536,14 +600,21 @@ size_t Secret::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // string name = 1; - if (this->name().size() > 0) { + // string key = 1; + if (this->key().size() > 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize( - this->name()); + this->key()); } - // .flyteidl.core.Secret.MountType mount_requirement = 2; + // string group = 2; + if (this->group().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->group()); + } + + // .flyteidl.core.Secret.MountType mount_requirement = 3; if (this->mount_requirement() != 0) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::EnumSize(this->mount_requirement()); @@ -576,9 +647,13 @@ void Secret::MergeFrom(const Secret& from) { ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - if (from.name().size() > 0) { + if (from.key().size() > 0) { - name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_); + key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_); + } + if (from.group().size() > 0) { + + group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_); } if (from.mount_requirement() != 0) { set_mount_requirement(from.mount_requirement()); @@ -610,7 +685,9 @@ void Secret::Swap(Secret* other) { void Secret::InternalSwap(Secret* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); - name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + key_.Swap(&other->key_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + group_.Swap(&other->group_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); swap(mount_requirement_, other->mount_requirement_); } diff --git a/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.h b/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.h index 03de4f35a0..988c88f4b8 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/core/security.pb.h @@ -81,13 +81,14 @@ namespace flyteidl { namespace core { enum Secret_MountType { - Secret_MountType_ENV_VAR = 0, - Secret_MountType_FILE = 1, + Secret_MountType_ANY = 0, + Secret_MountType_ENV_VAR = 1, + Secret_MountType_FILE = 2, Secret_MountType_Secret_MountType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(), Secret_MountType_Secret_MountType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max() }; bool Secret_MountType_IsValid(int value); -const Secret_MountType Secret_MountType_MountType_MIN = Secret_MountType_ENV_VAR; +const Secret_MountType Secret_MountType_MountType_MIN = Secret_MountType_ANY; const Secret_MountType Secret_MountType_MountType_MAX = Secret_MountType_FILE; const int Secret_MountType_MountType_ARRAYSIZE = Secret_MountType_MountType_MAX + 1; @@ -217,6 +218,8 @@ class Secret final : // nested types ---------------------------------------------------- typedef Secret_MountType MountType; + static const MountType ANY = + Secret_MountType_ANY; static const MountType ENV_VAR = Secret_MountType_ENV_VAR; static const MountType FILE = @@ -244,23 +247,37 @@ class Secret final : // accessors ------------------------------------------------------- - // string name = 1; - void clear_name(); - static const int kNameFieldNumber = 1; - const ::std::string& name() const; - void set_name(const ::std::string& value); + // string key = 1; + void clear_key(); + static const int kKeyFieldNumber = 1; + const ::std::string& key() const; + void set_key(const ::std::string& value); #if LANG_CXX11 - void set_name(::std::string&& value); + void set_key(::std::string&& value); #endif - void set_name(const char* value); - void set_name(const char* value, size_t size); - ::std::string* mutable_name(); - ::std::string* release_name(); - void set_allocated_name(::std::string* name); + void set_key(const char* value); + void set_key(const char* value, size_t size); + ::std::string* mutable_key(); + ::std::string* release_key(); + void set_allocated_key(::std::string* key); + + // string group = 2; + void clear_group(); + static const int kGroupFieldNumber = 2; + const ::std::string& group() const; + void set_group(const ::std::string& value); + #if LANG_CXX11 + void set_group(::std::string&& value); + #endif + void set_group(const char* value); + void set_group(const char* value, size_t size); + ::std::string* mutable_group(); + ::std::string* release_group(); + void set_allocated_group(::std::string* group); - // .flyteidl.core.Secret.MountType mount_requirement = 2; + // .flyteidl.core.Secret.MountType mount_requirement = 3; void clear_mount_requirement(); - static const int kMountRequirementFieldNumber = 2; + static const int kMountRequirementFieldNumber = 3; ::flyteidl::core::Secret_MountType mount_requirement() const; void set_mount_requirement(::flyteidl::core::Secret_MountType value); @@ -269,7 +286,8 @@ class Secret final : class HasBitSetters; ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; - ::google::protobuf::internal::ArenaStringPtr name_; + ::google::protobuf::internal::ArenaStringPtr key_; + ::google::protobuf::internal::ArenaStringPtr group_; int mount_requirement_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fcore_2fsecurity_2eproto; @@ -892,60 +910,113 @@ class SecurityContext final : #endif // __GNUC__ // Secret -// string name = 1; -inline void Secret::clear_name() { - name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +// string key = 1; +inline void Secret::clear_key() { + key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } -inline const ::std::string& Secret::name() const { - // @@protoc_insertion_point(field_get:flyteidl.core.Secret.name) - return name_.GetNoArena(); +inline const ::std::string& Secret::key() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Secret.key) + return key_.GetNoArena(); } -inline void Secret::set_name(const ::std::string& value) { +inline void Secret::set_key(const ::std::string& value) { - name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:flyteidl.core.Secret.name) + key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.core.Secret.key) } #if LANG_CXX11 -inline void Secret::set_name(::std::string&& value) { +inline void Secret::set_key(::std::string&& value) { - name_.SetNoArena( + key_.SetNoArena( &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Secret.name) + // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Secret.key) } #endif -inline void Secret::set_name(const char* value) { +inline void Secret::set_key(const char* value) { GOOGLE_DCHECK(value != nullptr); - name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:flyteidl.core.Secret.name) + key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.core.Secret.key) } -inline void Secret::set_name(const char* value, size_t size) { +inline void Secret::set_key(const char* value, size_t size) { - name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Secret.name) + // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Secret.key) } -inline ::std::string* Secret::mutable_name() { +inline ::std::string* Secret::mutable_key() { - // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.name) - return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.key) + return key_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } -inline ::std::string* Secret::release_name() { - // @@protoc_insertion_point(field_release:flyteidl.core.Secret.name) +inline ::std::string* Secret::release_key() { + // @@protoc_insertion_point(field_release:flyteidl.core.Secret.key) - return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + return key_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); } -inline void Secret::set_allocated_name(::std::string* name) { - if (name != nullptr) { +inline void Secret::set_allocated_key(::std::string* key) { + if (key != nullptr) { } else { } - name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name); - // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.name) + key_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), key); + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.key) +} + +// string group = 2; +inline void Secret::clear_group() { + group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& Secret::group() const { + // @@protoc_insertion_point(field_get:flyteidl.core.Secret.group) + return group_.GetNoArena(); +} +inline void Secret::set_group(const ::std::string& value) { + + group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.core.Secret.group) +} +#if LANG_CXX11 +inline void Secret::set_group(::std::string&& value) { + + group_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.core.Secret.group) +} +#endif +inline void Secret::set_group(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.core.Secret.group) +} +inline void Secret::set_group(const char* value, size_t size) { + + group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.core.Secret.group) +} +inline ::std::string* Secret::mutable_group() { + + // @@protoc_insertion_point(field_mutable:flyteidl.core.Secret.group) + return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* Secret::release_group() { + // @@protoc_insertion_point(field_release:flyteidl.core.Secret.group) + + return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void Secret::set_allocated_group(::std::string* group) { + if (group != nullptr) { + + } else { + + } + group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group); + // @@protoc_insertion_point(field_set_allocated:flyteidl.core.Secret.group) } -// .flyteidl.core.Secret.MountType mount_requirement = 2; +// .flyteidl.core.Secret.MountType mount_requirement = 3; inline void Secret::clear_mount_requirement() { mount_requirement_ = 0; } diff --git a/flyteidl/gen/pb-go/flyteidl/core/security.pb.go b/flyteidl/gen/pb-go/flyteidl/core/security.pb.go index 8961d3da13..e6614641d9 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/security.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/security.pb.go @@ -23,20 +23,24 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type Secret_MountType int32 const ( + // Default case, indicates the client can tolerate either mounting options. + Secret_ANY Secret_MountType = 0 // ENV_VAR indicates the secret needs to be mounted as an environment variable. - Secret_ENV_VAR Secret_MountType = 0 + Secret_ENV_VAR Secret_MountType = 1 // FILE indicates the secret needs to be mounted as a file. - Secret_FILE Secret_MountType = 1 + Secret_FILE Secret_MountType = 2 ) var Secret_MountType_name = map[int32]string{ - 0: "ENV_VAR", - 1: "FILE", + 0: "ANY", + 1: "ENV_VAR", + 2: "FILE", } var Secret_MountType_value = map[string]int32{ - "ENV_VAR": 0, - "FILE": 1, + "ANY": 0, + "ENV_VAR": 1, + "FILE": 2, } func (x Secret_MountType) String() string { @@ -79,12 +83,16 @@ func (OAuth2TokenRequest_Type) EnumDescriptor() ([]byte, []int) { type Secret struct { // The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation // of the secret management system to require case sensitivity. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // +required + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // The name of the secret group where to find the key referenced above. + // +optional + Group string `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"` // mount_requirement is optional. Indicates where the secret has to be mounted. If provided, the execution will fail // if the underlying key management system cannot satisfy that requirement. If not provided, the default location // will depend on the key management system. // +optional - MountRequirement Secret_MountType `protobuf:"varint,2,opt,name=mount_requirement,json=mountRequirement,proto3,enum=flyteidl.core.Secret_MountType" json:"mount_requirement,omitempty"` + MountRequirement Secret_MountType `protobuf:"varint,3,opt,name=mount_requirement,json=mountRequirement,proto3,enum=flyteidl.core.Secret_MountType" json:"mount_requirement,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -115,9 +123,16 @@ func (m *Secret) XXX_DiscardUnknown() { var xxx_messageInfo_Secret proto.InternalMessageInfo -func (m *Secret) GetName() string { +func (m *Secret) GetKey() string { if m != nil { - return m.Name + return m.Key + } + return "" +} + +func (m *Secret) GetGroup() string { + if m != nil { + return m.Group } return "" } @@ -126,15 +141,17 @@ func (m *Secret) GetMountRequirement() Secret_MountType { if m != nil { return m.MountRequirement } - return Secret_ENV_VAR + return Secret_ANY } // OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task. type OAuth2Client struct { // client_id is the public id for the client to use. The system will not perform any pre-auth validation that the // secret requested matches the client_id indicated here. + // +required ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` // client_secret is a reference to the secret used to authenticate the OAuth2 client. + // +required ClientSecret *Secret `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -249,10 +266,13 @@ func (m *Identity) GetOauth2Client() *OAuth2Client { type OAuth2TokenRequest struct { // name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for // environment variables and as a filename for mounting tokens as files. + // +required Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS. + // +required Type OAuth2TokenRequest_Type `protobuf:"varint,2,opt,name=type,proto3,enum=flyteidl.core.OAuth2TokenRequest_Type" json:"type,omitempty"` // client references the client_id/secret to use to request the OAuth2 token. + // +required Client *OAuth2Client `protobuf:"bytes,3,opt,name=client,proto3" json:"client,omitempty"` // idp_discovery_endpoint references the discovery endpoint used to retrieve token endpoint and other related // information. @@ -406,38 +426,40 @@ func init() { func init() { proto.RegisterFile("flyteidl/core/security.proto", fileDescriptor_0996009b6d39c02f) } var fileDescriptor_0996009b6d39c02f = []byte{ - // 528 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x5d, 0x6f, 0xd3, 0x30, - 0x14, 0x5d, 0xb6, 0xae, 0x1f, 0xb7, 0xed, 0xe8, 0x0c, 0x8c, 0xa0, 0x21, 0x28, 0x91, 0x40, 0x7b, - 0x21, 0x91, 0xba, 0x09, 0x8d, 0x3d, 0x51, 0xba, 0x20, 0x55, 0x2a, 0x45, 0x4a, 0xab, 0x3d, 0xf0, - 0x12, 0xa5, 0xc9, 0xa5, 0xb3, 0xda, 0xd8, 0xc1, 0x71, 0x26, 0xf2, 0x27, 0x78, 0x84, 0x5f, 0xc1, - 0x7f, 0x44, 0xb1, 0x93, 0x7d, 0xa9, 0x08, 0xde, 0x6c, 0x9f, 0x73, 0x7c, 0xcf, 0xfd, 0x82, 0x67, - 0x5f, 0xd7, 0xb9, 0x44, 0x1a, 0xad, 0x9d, 0x90, 0x0b, 0x74, 0x52, 0x0c, 0x33, 0x41, 0x65, 0x6e, - 0x27, 0x82, 0x4b, 0x4e, 0xba, 0x15, 0x6a, 0x17, 0xa8, 0xf5, 0xc3, 0x80, 0xfa, 0x0c, 0x43, 0x81, - 0x92, 0x10, 0xa8, 0xb1, 0x20, 0x46, 0xd3, 0xe8, 0x1b, 0x47, 0x2d, 0x4f, 0x9d, 0xc9, 0x04, 0xf6, - 0x63, 0x9e, 0x31, 0xe9, 0x0b, 0xfc, 0x96, 0x51, 0x81, 0x31, 0x32, 0x69, 0x6e, 0xf7, 0x8d, 0xa3, - 0xbd, 0xc1, 0x0b, 0xfb, 0xce, 0x4f, 0xb6, 0xfe, 0xc5, 0xfe, 0x54, 0xd0, 0xe7, 0x79, 0x82, 0x5e, - 0x4f, 0x29, 0xbd, 0x1b, 0xa1, 0x65, 0x41, 0xeb, 0x1a, 0x26, 0x6d, 0x68, 0xb8, 0xd3, 0x0b, 0xff, - 0x62, 0xe8, 0xf5, 0xb6, 0x48, 0x13, 0x6a, 0x1f, 0xc7, 0x13, 0xb7, 0x67, 0x58, 0x4b, 0xe8, 0x7c, - 0x1e, 0x66, 0xf2, 0x72, 0x30, 0x5a, 0x53, 0x64, 0x92, 0x1c, 0x42, 0x2b, 0x54, 0x27, 0x9f, 0x46, - 0xa5, 0xb5, 0xa6, 0x7e, 0x18, 0x47, 0xe4, 0x0c, 0xba, 0x25, 0x98, 0xaa, 0xe8, 0xca, 0x5a, 0x7b, - 0xf0, 0x78, 0xa3, 0x35, 0xaf, 0xa3, 0xb9, 0xfa, 0x66, 0xfd, 0x32, 0xa0, 0x39, 0x8e, 0x90, 0x49, - 0x2a, 0x73, 0xf2, 0x14, 0x9a, 0x34, 0x88, 0x7d, 0xc1, 0xd7, 0x55, 0xfe, 0x0d, 0x1a, 0xc4, 0x1e, - 0x5f, 0x23, 0xb1, 0xe1, 0xe1, 0xea, 0x34, 0xf5, 0x53, 0x14, 0x57, 0x34, 0x44, 0x3f, 0x08, 0xc3, - 0x22, 0x05, 0x15, 0xa9, 0xe5, 0xed, 0xaf, 0x4e, 0xd3, 0x99, 0x46, 0x86, 0x1a, 0x20, 0xef, 0xa1, - 0xcb, 0x83, 0x22, 0x01, 0x5f, 0x87, 0x33, 0x77, 0x94, 0xa7, 0xc3, 0x7b, 0x9e, 0x6e, 0x27, 0xe9, - 0x75, 0xb4, 0x42, 0xdf, 0xac, 0x9f, 0xdb, 0x40, 0x34, 0x3c, 0xe7, 0x2b, 0x64, 0x45, 0x05, 0x31, - 0xdd, 0xdc, 0x9f, 0x33, 0xa8, 0xc9, 0x3c, 0xc1, 0xb2, 0x25, 0xaf, 0x37, 0xc6, 0xb8, 0xfd, 0x89, - 0xad, 0x3a, 0xa3, 0x34, 0xe4, 0x18, 0xea, 0xff, 0xef, 0xb0, 0xa4, 0x92, 0x13, 0x38, 0xa0, 0x51, - 0xe2, 0x47, 0x34, 0x0d, 0xf9, 0x15, 0x8a, 0xdc, 0x47, 0x16, 0x25, 0x9c, 0x32, 0x69, 0xd6, 0x94, - 0xad, 0x47, 0x34, 0x4a, 0xce, 0x2b, 0xd0, 0x2d, 0x31, 0xf2, 0x0a, 0xf6, 0x64, 0xe1, 0xe2, 0x86, - 0xbd, 0xab, 0xd8, 0x5d, 0xf5, 0x5a, 0xd1, 0xac, 0xe7, 0x50, 0x53, 0xa3, 0x71, 0x00, 0x64, 0x34, - 0x19, 0xbb, 0xd3, 0xb9, 0x3f, 0xf2, 0xdc, 0x73, 0x77, 0x3a, 0x1f, 0x0f, 0x27, 0xb3, 0xde, 0x96, - 0xf5, 0xdb, 0x80, 0x07, 0xb3, 0x72, 0x9c, 0x47, 0x9c, 0x49, 0xfc, 0x2e, 0x89, 0x0d, 0x75, 0x91, - 0x31, 0x3f, 0x48, 0x55, 0x5d, 0xda, 0x83, 0x27, 0xf7, 0xb2, 0xa8, 0x5a, 0xec, 0xed, 0x8a, 0x8c, - 0x0d, 0x53, 0xe2, 0x40, 0x43, 0xcf, 0x4a, 0x6a, 0x6e, 0xf7, 0x77, 0xfe, 0x3e, 0x2c, 0x15, 0x8b, - 0xbc, 0x83, 0xba, 0x72, 0x99, 0x9a, 0x3b, 0x8a, 0xff, 0xf2, 0x9f, 0x45, 0xf6, 0x4a, 0xc1, 0x87, - 0xb7, 0x5f, 0x4e, 0x96, 0x54, 0x5e, 0x66, 0x0b, 0x3b, 0xe4, 0xb1, 0xa3, 0x64, 0x5c, 0x2c, 0x9d, - 0xeb, 0xfd, 0x5c, 0x22, 0x73, 0x92, 0xc5, 0x9b, 0x25, 0x77, 0xee, 0xac, 0xec, 0xa2, 0xae, 0x56, - 0xf5, 0xf8, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xe9, 0xb7, 0xcf, 0xca, 0x03, 0x00, 0x00, + // 558 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x6f, 0x6f, 0xd3, 0x3e, + 0x10, 0x5e, 0xda, 0xae, 0xed, 0xae, 0xeb, 0x7e, 0x99, 0x7f, 0x63, 0x04, 0x0d, 0x41, 0x89, 0x04, + 0x9a, 0x84, 0x48, 0xa4, 0x6c, 0x42, 0x63, 0xaf, 0x08, 0x5d, 0x90, 0x2a, 0x95, 0x22, 0xa5, 0xd5, + 0x24, 0x78, 0x13, 0xa5, 0x89, 0xc9, 0xac, 0x36, 0x76, 0x70, 0x9c, 0x89, 0x7c, 0x11, 0xf8, 0x10, + 0x88, 0xef, 0x88, 0x62, 0x27, 0xfb, 0xa7, 0x21, 0x78, 0x67, 0xfb, 0x79, 0x9e, 0xbb, 0xe7, 0xce, + 0x77, 0xf0, 0xf8, 0xcb, 0xba, 0x14, 0x98, 0xc4, 0x6b, 0x3b, 0x62, 0x1c, 0xdb, 0x39, 0x8e, 0x0a, + 0x4e, 0x44, 0x69, 0x65, 0x9c, 0x09, 0x86, 0x86, 0x0d, 0x6a, 0x55, 0xa8, 0xf9, 0x53, 0x83, 0xee, + 0x1c, 0x47, 0x1c, 0x0b, 0xa4, 0x43, 0x7b, 0x85, 0x4b, 0x43, 0x1b, 0x69, 0x87, 0x5b, 0x7e, 0x75, + 0x44, 0x7b, 0xb0, 0x99, 0x70, 0x56, 0x64, 0x46, 0x4b, 0xbe, 0xa9, 0x0b, 0x9a, 0xc2, 0x6e, 0xca, + 0x0a, 0x2a, 0x02, 0x8e, 0xbf, 0x16, 0x84, 0xe3, 0x14, 0x53, 0x61, 0xb4, 0x47, 0xda, 0xe1, 0x8e, + 0xf3, 0xd4, 0xba, 0x15, 0xdd, 0x52, 0x91, 0xad, 0x0f, 0x15, 0x7d, 0x51, 0x66, 0xd8, 0xd7, 0xa5, + 0xd2, 0xbf, 0x16, 0x9a, 0x2f, 0x61, 0xeb, 0x0a, 0x46, 0x3d, 0x68, 0xbb, 0xb3, 0x4f, 0xfa, 0x06, + 0x1a, 0x40, 0xcf, 0x9b, 0x9d, 0x07, 0xe7, 0xae, 0xaf, 0x6b, 0xa8, 0x0f, 0x9d, 0xf7, 0x93, 0xa9, + 0xa7, 0xb7, 0xcc, 0x04, 0xb6, 0x3f, 0xba, 0x85, 0xb8, 0x70, 0xc6, 0x6b, 0x82, 0xa9, 0x40, 0x07, + 0xb0, 0x15, 0xc9, 0x53, 0x40, 0xe2, 0xda, 0x78, 0x5f, 0x3d, 0x4c, 0x62, 0x74, 0x0a, 0xc3, 0x1a, + 0xcc, 0xa5, 0x0d, 0x59, 0xc5, 0xc0, 0x79, 0x70, 0xaf, 0x47, 0x7f, 0x5b, 0x71, 0xd5, 0xcd, 0xfc, + 0xa1, 0x41, 0x7f, 0x12, 0x63, 0x2a, 0x88, 0x28, 0xd1, 0x23, 0xe8, 0x93, 0x30, 0x0d, 0x38, 0x5b, + 0xe3, 0x3a, 0x49, 0x8f, 0x84, 0xa9, 0xcf, 0xd6, 0x18, 0x59, 0xf0, 0xff, 0xea, 0x24, 0x0f, 0x72, + 0xcc, 0x2f, 0x49, 0x84, 0x83, 0x30, 0x8a, 0xaa, 0x5a, 0xea, 0x7e, 0xed, 0xae, 0x4e, 0xf2, 0xb9, + 0x42, 0x5c, 0x05, 0xa0, 0xb7, 0x30, 0x64, 0x61, 0x55, 0x40, 0xa0, 0xd2, 0xc9, 0xbe, 0x0d, 0x9c, + 0x83, 0x3b, 0x9e, 0x6e, 0x16, 0xe9, 0x6f, 0x2b, 0x85, 0xba, 0x99, 0xdf, 0x5b, 0x80, 0x14, 0xbc, + 0x60, 0x2b, 0x4c, 0xab, 0x56, 0xe2, 0x5c, 0x20, 0x04, 0x1d, 0x1a, 0xa6, 0x8d, 0x3f, 0x79, 0x46, + 0xa7, 0xd0, 0x11, 0x65, 0x86, 0xa5, 0x9b, 0x1d, 0xe7, 0xc5, 0xbd, 0x39, 0x6e, 0x06, 0xb1, 0xe4, + 0x17, 0x49, 0x0d, 0x3a, 0x82, 0xee, 0xbf, 0x3b, 0xac, 0xa9, 0xe8, 0x18, 0xf6, 0x49, 0x9c, 0x05, + 0x31, 0xc9, 0x23, 0x76, 0x89, 0x79, 0x19, 0x60, 0x1a, 0x67, 0x8c, 0x50, 0x61, 0x74, 0xa4, 0xad, + 0x3d, 0x12, 0x67, 0x67, 0x0d, 0xe8, 0xd5, 0x18, 0x7a, 0x0e, 0x3b, 0xa2, 0x72, 0x71, 0xcd, 0xde, + 0x94, 0xec, 0xa1, 0x7c, 0x6d, 0x68, 0xe6, 0x13, 0xe8, 0xc8, 0x19, 0xd9, 0x07, 0x34, 0x9e, 0x4e, + 0xbc, 0xd9, 0x22, 0x18, 0xfb, 0xde, 0x99, 0x37, 0x5b, 0x4c, 0xdc, 0xe9, 0x5c, 0xdf, 0x30, 0x7f, + 0x69, 0xf0, 0xdf, 0xbc, 0x9e, 0xf5, 0x31, 0xa3, 0x02, 0x7f, 0x13, 0xc8, 0x82, 0x2e, 0x2f, 0x68, + 0x10, 0xe6, 0xb2, 0x2f, 0x03, 0xe7, 0xe1, 0x9d, 0x2a, 0x9a, 0x2f, 0xf6, 0x37, 0x79, 0x41, 0xdd, + 0x1c, 0xd9, 0xd0, 0x53, 0xb3, 0x92, 0x1b, 0xad, 0x51, 0xfb, 0xcf, 0xc3, 0xd2, 0xb0, 0xd0, 0x1b, + 0xe8, 0x4a, 0x97, 0xb9, 0xd1, 0x96, 0xfc, 0x67, 0x7f, 0x6d, 0xb2, 0x5f, 0x0b, 0xde, 0xbd, 0xfe, + 0x7c, 0x9c, 0x10, 0x71, 0x51, 0x2c, 0xad, 0x88, 0xa5, 0xb6, 0x94, 0x31, 0x9e, 0xd8, 0x57, 0xcb, + 0x9b, 0x60, 0x6a, 0x67, 0xcb, 0x57, 0x09, 0xb3, 0x6f, 0xed, 0xf3, 0xb2, 0x2b, 0xf7, 0xf8, 0xe8, + 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0xa1, 0x19, 0xf8, 0xe7, 0x03, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/core/security.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/core/security.pb.validate.go index daa8717e50..85a08a03c3 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/security.pb.validate.go +++ b/flyteidl/gen/pb-go/flyteidl/core/security.pb.validate.go @@ -43,7 +43,9 @@ func (m *Secret) Validate() error { return nil } - // no validation rules for Name + // no validation rules for Key + + // no validation rules for Group // no validation rules for MountRequirement diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index 7200691d35..6a4b6f35ef 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -2964,11 +2964,12 @@ "SecretMountType": { "type": "string", "enum": [ + "ANY", "ENV_VAR", "FILE" ], - "default": "ENV_VAR", - "description": " - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as an environment variable.\n - FILE: FILE indicates the secret needs to be mounted as a file." + "default": "ANY", + "description": " - ANY: Default case, indicates the client can tolerate either mounting options.\n - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as an environment variable.\n - FILE: FILE indicates the secret needs to be mounted as a file." }, "SortDirection": { "type": "string", @@ -5275,11 +5276,11 @@ "properties": { "client_id": { "type": "string", - "description": "client_id is the public id for the client to use. The system will not perform any pre-auth validation that the\nsecret requested matches the client_id indicated here." + "title": "client_id is the public id for the client to use. The system will not perform any pre-auth validation that the\nsecret requested matches the client_id indicated here.\n+required" }, "client_secret": { "$ref": "#/definitions/coreSecret", - "description": "client_secret is a reference to the secret used to authenticate the OAuth2 client." + "title": "client_secret is a reference to the secret used to authenticate the OAuth2 client.\n+required" } }, "description": "OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task." @@ -5289,15 +5290,15 @@ "properties": { "name": { "type": "string", - "description": "name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for\nenvironment variables and as a filename for mounting tokens as files." + "title": "name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for\nenvironment variables and as a filename for mounting tokens as files.\n+required" }, "type": { "$ref": "#/definitions/coreOAuth2TokenRequestType", - "description": "type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS." + "title": "type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.\n+required" }, "client": { "$ref": "#/definitions/coreOAuth2Client", - "description": "client references the client_id/secret to use to request the OAuth2 token." + "title": "client references the client_id/secret to use to request the OAuth2 token.\n+required" }, "idp_discovery_endpoint": { "type": "string", @@ -5531,9 +5532,13 @@ "coreSecret": { "type": "object", "properties": { - "name": { + "key": { + "type": "string", + "title": "The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation\nof the secret management system to require case sensitivity.\n+required" + }, + "group": { "type": "string", - "description": "The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation\nof the secret management system to require case sensitivity." + "title": "The name of the secret group where to find the key referenced above.\n+optional" }, "mount_requirement": { "$ref": "#/definitions/SecretMountType", diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index 8a5f7068e4..d1fd222442 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -2620,13 +2620,15 @@ definitions: type: {} SecretMountType: type: "string" - description: " - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as\ + description: " - ANY: Default case, indicates the client can tolerate either mounting\ + \ options.\n - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as\ \ an environment variable.\n - FILE: FILE indicates the secret needs to be mounted\ \ as a file." enum: + - "ANY" - "ENV_VAR" - "FILE" - default: "ENV_VAR" + default: "ANY" SortDirection: type: "string" enum: @@ -2921,7 +2923,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -2930,7 +2933,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -2939,15 +2943,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -3257,7 +3264,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -3266,7 +3274,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -3275,15 +3284,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -3424,7 +3436,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -3433,7 +3446,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -3442,15 +3456,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -3649,7 +3666,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -3658,7 +3676,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -3667,15 +3686,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -4019,7 +4041,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -4028,7 +4051,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -4037,15 +4061,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -4468,7 +4495,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -4477,7 +4505,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -4486,15 +4515,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -4756,7 +4788,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -4765,7 +4798,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -4774,15 +4808,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -5028,7 +5065,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -5037,7 +5075,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -5046,15 +5085,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" labels: values: key: "values" @@ -6286,7 +6328,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -6295,7 +6338,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -6304,15 +6348,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" adminTaskClosure: type: "object" properties: @@ -6462,7 +6509,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -6471,7 +6519,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -6480,15 +6529,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" adminTaskCreateRequest: type: "object" properties: @@ -6884,7 +6936,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -6893,7 +6946,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -6902,15 +6956,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" - id: domain: "domain" resource_type: {} @@ -7053,7 +7110,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -7062,7 +7120,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -7071,15 +7130,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" token: "token" adminTaskResourceAttributes: type: "object" @@ -8965,7 +9027,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -8974,7 +9037,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -8983,15 +9047,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" - template: container: args: @@ -9125,7 +9192,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -9134,7 +9202,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -9143,15 +9212,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" primary: template: outputs: @@ -11910,7 +11982,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -11919,7 +11992,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -11928,15 +12002,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" - template: container: args: @@ -12070,7 +12147,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -12079,7 +12157,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -12088,15 +12167,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" primary: template: outputs: @@ -14791,7 +14873,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -14800,7 +14883,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -14809,15 +14893,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" - template: container: args: @@ -14951,7 +15038,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -14960,7 +15048,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -14969,15 +15058,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" primary: template: outputs: @@ -17601,7 +17693,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -17610,7 +17703,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -17619,15 +17713,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" - template: container: args: @@ -17761,7 +17858,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -17770,7 +17868,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -17779,15 +17878,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" primary: template: outputs: @@ -19218,7 +19320,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -19227,7 +19330,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -19236,15 +19340,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" coreCompiledWorkflow: type: "object" properties: @@ -21897,7 +22004,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -21906,7 +22014,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -21915,15 +22024,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" - template: container: args: @@ -22057,7 +22169,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -22066,7 +22179,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -22075,15 +22189,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" primary: template: outputs: @@ -23198,7 +23315,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" coreIfBlock: @@ -23790,35 +23908,36 @@ definitions: properties: client_id: type: "string" - description: "client_id is the public id for the client to use. The system\ - \ will not perform any pre-auth validation that the\nsecret requested matches\ - \ the client_id indicated here." + title: "client_id is the public id for the client to use. The system will\ + \ not perform any pre-auth validation that the\nsecret requested matches\ + \ the client_id indicated here.\n+required" client_secret: - description: "client_secret is a reference to the secret used to authenticate\ - \ the OAuth2 client." + title: "client_secret is a reference to the secret used to authenticate the\ + \ OAuth2 client.\n+required" $ref: "#/definitions/coreSecret" description: "OAuth2Client encapsulates OAuth2 Client Credentials to be used when\ \ making calls on behalf of that task." example: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" coreOAuth2TokenRequest: type: "object" properties: name: type: "string" - description: "name indicates a unique id for the token request within this\ - \ task token requests. It'll be used as a suffix for\nenvironment variables\ - \ and as a filename for mounting tokens as files." + title: "name indicates a unique id for the token request within this task\ + \ token requests. It'll be used as a suffix for\nenvironment variables and\ + \ as a filename for mounting tokens as files.\n+required" type: - description: "type indicates the type of the request to make. Defaults to\ - \ CLIENT_CREDENTIALS." + title: "type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.\n\ + +required" $ref: "#/definitions/coreOAuth2TokenRequestType" client: - description: "client references the client_id/secret to use to request the\ - \ OAuth2 token." + title: "client references the client_id/secret to use to request the OAuth2\ + \ token.\n+required" $ref: "#/definitions/coreOAuth2Client" idp_discovery_endpoint: type: "string" @@ -23840,7 +23959,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -24257,11 +24377,15 @@ definitions: coreSecret: type: "object" properties: - name: + key: + type: "string" + title: "The name of the secret to mount. This has to match an existing secret\ + \ in the system. It's up to the implementation\nof the secret management\ + \ system to require case sensitivity.\n+required" + group: type: "string" - description: "The name of the secret to mount. This has to match an existing\ - \ secret in the system. It's up to the implementation\nof the secret management\ - \ system to require case sensitivity." + title: "The name of the secret group where to find the key referenced above.\n\ + +optional" mount_requirement: title: "mount_requirement is optional. Indicates where the secret has to be\ \ mounted. If provided, the execution will fail\nif the underlying key management\ @@ -24276,7 +24400,8 @@ definitions: \ if secrets\nare passed through file mounts." example: mount_requirement: {} - name: "name" + key: "key" + group: "group" coreSecurityContext: type: "object" properties: @@ -24313,7 +24438,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -24322,7 +24448,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -24331,15 +24458,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" coreSimpleType: type: "string" description: "Define a set of simple types." @@ -24648,7 +24778,8 @@ definitions: oauth2_client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" k8s_service_account: "k8s_service_account" tokens: @@ -24657,7 +24788,8 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" @@ -24666,15 +24798,18 @@ definitions: client: client_secret: mount_requirement: {} - name: "name" + key: "key" + group: "group" client_id: "client_id" type: {} token_endpoint: "token_endpoint" secrets: - mount_requirement: {} - name: "name" + key: "key" + group: "group" - mount_requirement: {} - name: "name" + key: "key" + group: "group" coreTypedInterface: type: "object" properties: diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_client.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_client.go index cbb4148fad..8413c9169f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_client.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_client.go @@ -11,8 +11,6 @@ package flyteadmin // OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task. type CoreOAuth2Client struct { - // client_id is the public id for the client to use. The system will not perform any pre-auth validation that the secret requested matches the client_id indicated here. ClientId string `json:"client_id,omitempty"` - // client_secret is a reference to the secret used to authenticate the OAuth2 client. ClientSecret *CoreSecret `json:"client_secret,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_token_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_token_request.go index ed8bbe2549..6dcdb2dddd 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_token_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_o_auth2_token_request.go @@ -11,11 +11,8 @@ package flyteadmin // OAuth2TokenRequest encapsulates information needed to request an OAuth2 token. FLYTE_TOKENS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if tokens are passed through environment variables. FLYTE_TOKENS_PATH_PREFIX will be passed to indicate the prefix of the path where secrets will be mounted if tokens are passed through file mounts. type CoreOAuth2TokenRequest struct { - // name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for environment variables and as a filename for mounting tokens as files. Name string `json:"name,omitempty"` - // type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS. Type_ *CoreOAuth2TokenRequestType `json:"type,omitempty"` - // client references the client_id/secret to use to request the OAuth2 token. Client *CoreOAuth2Client `json:"client,omitempty"` IdpDiscoveryEndpoint string `json:"idp_discovery_endpoint,omitempty"` TokenEndpoint string `json:"token_endpoint,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go index 7dacb3a9bc..4f88db3262 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_secret.go @@ -11,7 +11,7 @@ package flyteadmin // Secret encapsulates information about the secret a task needs to proceed. An environment variable FLYTE_SECRETS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if secrets are passed through environment variables. FLYTE_SECRETS_DEFAULT_DIR will be passed to indicate the prefix of the path where secrets will be mounted if secrets are passed through file mounts. type CoreSecret struct { - // The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation of the secret management system to require case sensitivity. - Name string `json:"name,omitempty"` + Key string `json:"key,omitempty"` + Group string `json:"group,omitempty"` MountRequirement *SecretMountType `json:"mount_requirement,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_type.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_type.go index a71e13a31a..4f76410bc7 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_type.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_secret_mount_type.go @@ -8,11 +8,12 @@ */ package flyteadmin -// SecretMountType : - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as an environment variable. - FILE: FILE indicates the secret needs to be mounted as a file. +// SecretMountType : - ANY: Default case, indicates the client can tolerate either mounting options. - ENV_VAR: ENV_VAR indicates the secret needs to be mounted as an environment variable. - FILE: FILE indicates the secret needs to be mounted as a file. type SecretMountType string // List of SecretMountType const ( + SecretMountTypeANY SecretMountType = "ANY" SecretMountTypeENV_VAR SecretMountType = "ENV_VAR" SecretMountTypeFILE SecretMountType = "FILE" ) diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 42efe896fa..27fd3f9186 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/openapi.go +++ b/flyteidl/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x73\x23\xb9\x95\x27\xfa\xbf\x3f\x05\xb6\x66\x23\xba\xca\x96\xa8\x6e\xcf\xd8\xe1\xd5\xc4\xc6\xbd\x2c\x89\x55\xcd\xdb\x2a\x49\x96\xa8\xae\xe9\x5d\x3a\x38\x60\x26\x48\xc2\x4a\x02\x6c\x00\x29\x15\xed\xf0\x77\xbf\x81\x73\x00\x24\x32\x99\xc9\xb7\x54\x52\x35\x67\x22\xdc\x2a\x66\x26\x9e\x07\x07\xe7\xf9\x3b\xff\xfc\x1d\x21\x6f\xf4\x23\x1d\x8f\x99\x7a\x73\x4a\xde\xfc\xb1\xf5\xfd\x9b\x23\xfb\x1b\x17\x23\xf9\xe6\x94\xd8\xe7\x84\xbc\x31\xdc\x64\xcc\x3e\x1f\x65\x73\xc3\x78\x9a\x9d\x68\xa6\x1e\x78\xc2\x4e\x68\x3a\xe5\xa2\x35\x53\xd2\x48\xf8\x90\x90\x37\x0f\x4c\x69\x2e\x85\x7d\xdd\xfd\x49\x84\x34\x44\x33\xf3\xe6\x77\x84\xfc\x0b\x9a\xd7\xc9\x84\x4d\x99\x7e\x73\x4a\xfe\x2f\x7e\x34\x31\x66\xe6\x1b\xb0\x7f\x6b\xfb\xee\xdf\xe0\xdd\x44\x0a\x9d\x97\x5e\xa6\xb3\x59\xc6\x13\x6a\xb8\x14\x27\x7f\xd7\x52\x14\xef\xce\x94\x4c\xf3\x64\xcd\x77\xa9\x99\xe8\x62\x8e\x27\x74\xc6\x4f\x1e\x7e\x38\xa1\x89\xe1\x0f\x6c\x90\xd1\x5c\x24\x93\xc1\x2c\xa3\x42\x9f\xfc\x93\xa7\x76\x8e\x7f\x67\x89\xf9\x17\xfc\x23\x95\x53\xca\x05\xfe\x2d\xe8\x94\xfd\x2b\xb4\x43\xc8\x9b\x31\x33\xd1\x3f\x09\x79\x93\x32\x9d\x28\x3e\x33\x6e\x55\x6e\x98\x51\x9c\x3d\x30\x62\x26\x8c\x60\x77\x04\xbb\x23\xb6\x3b\xe2\x57\x4d\xcf\x58\xc2\x47\x9c\xa5\x64\x38\x27\x5c\xcc\x72\x43\x14\xfb\x35\x67\xda\x90\x11\xcf\x0c\x53\xba\xe5\x96\x0c\x7a\x91\x33\xa6\x60\x9e\xdd\xd4\xf6\xf2\x91\x99\x36\xb4\x7d\x01\x4d\x5f\x67\x54\xc4\x6f\x2b\xa6\x67\x52\x68\xa6\x4b\x43\x25\xe4\xcd\x1f\xbf\xff\xbe\xf2\xd3\xe2\x0c\xda\x44\xe7\x49\xc2\xb4\x1e\xe5\x19\xf1\x2d\xc5\x83\x81\x8f\x60\x93\xe9\x42\x63\x84\xbc\xf9\x9f\x8a\x8d\x6c\x3b\xff\x76\x92\xb2\x11\x17\xdc\xb6\xab\x91\x96\xa2\xd1\x96\xbe\xfa\xd7\xef\xea\xfe\xfe\x57\x34\xa3\x19\x55\x74\xca\xec\xb2\x84\xdd\xc7\xff\xab\xcc\xc5\xee\x97\xed\xbc\xd8\xd3\xea\xc0\x2b\xb3\xbd\xa4\x53\x46\xe4\x08\xb6\xcb\x7d\x01\x7f\x2b\xa6\x65\xae\x12\x46\x86\x2c\x93\x62\xac\x89\x91\x0b\x6b\xc0\xa1\x05\x4b\x6a\xd5\x27\x76\x2b\xb9\x62\x76\xaf\x8c\xca\x59\xe5\xa9\x99\xcf\x60\x90\xda\x28\x2e\xc6\xf1\x52\xfc\xeb\x68\xad\xa9\x21\x85\x6e\x30\x33\xfc\xa0\x71\x62\x7d\xd1\xf6\xaf\x24\x54\x90\x21\x23\xf6\x5c\xf2\x94\x29\x96\x12\xaa\x09\x25\x3a\x1f\x6a\x66\xc8\x23\x37\x13\x2e\xec\xbf\x91\x7c\x13\xbf\x66\x2f\x67\x6d\xe0\xcf\xe5\x2b\x73\xa7\x99\xb2\x03\x7f\xe0\x29\x4b\xc9\x03\xcd\x72\x46\x46\x52\x95\x96\xa7\xd5\x17\xbd\x89\x5d\x87\xe9\x90\x0b\x38\x79\x76\x2d\x3d\x85\xfc\xc1\x2f\xd7\x1f\x88\xed\x8f\xe4\x82\xff\x9a\xb3\x6c\x4e\x78\xca\x84\xb1\xe7\x5a\x57\x5b\xfb\x83\x84\xfe\x69\x46\x8e\x89\x5d\x67\xa6\x0c\xac\xb7\x14\x86\x7d\x31\x9a\x1c\x93\x8c\xdf\x33\xf2\xdd\x05\xd7\x86\xb4\xaf\xbb\xdf\x1d\x91\xef\x2e\x0a\xc6\xa1\xbf\x7b\x86\x15\x0e\x7f\xff\x2d\x3a\x7a\x86\x8e\xab\x87\xee\x4d\xdb\x9e\xe6\x5b\xbc\x26\x8a\x16\xfe\xf6\xbb\xb8\x1d\xb7\x5f\xcb\x79\x6f\xc1\x78\x1d\xd7\xdd\x84\xd7\x7e\x60\x26\x99\xac\x60\xb4\x7a\x47\x4e\x6b\xb7\xa3\xca\x6a\xf5\xeb\xe2\xb5\x76\x0a\x4f\xcd\x6f\x77\x61\xb6\xd4\xc0\x29\xa0\x5c\xe0\xa1\x09\x67\xa8\xbc\x33\xe4\xeb\xb1\x95\x5d\xf8\x6d\x34\x9b\x88\xe5\x7a\x4e\x1a\xad\xc4\x0b\x99\x6b\xc6\xa7\x7c\xd5\x3e\x76\x45\x6a\xc5\x2e\xc7\xe4\x44\x3e\x1d\x32\x65\xa7\xee\xd9\x1d\xcc\x70\x68\xd9\x9f\xc9\x95\x60\x69\xc3\xd4\x7e\xcd\x99\x9a\x2f\x99\xdb\x88\x66\xba\x69\x72\x5c\x18\x66\xe5\xda\xca\xe3\x91\x54\x53\x6a\xdc\x0b\x7f\xfe\x8f\x4d\x27\x6f\xe4\x3d\x5b\xb5\xcf\x5d\xdc\xb5\x84\x6a\xd8\xee\x69\x9e\x19\x3e\xcb\x18\x99\xd1\x31\xd3\x6e\x15\xf2\xcc\xe8\x23\x78\xcd\xca\xd2\x4c\x1d\x87\xdb\x06\x7a\xf0\xb7\x6c\xae\xe1\x17\x32\x0a\x8c\x4c\xb0\x2f\x06\x5a\xea\x0b\xb8\x67\x61\x89\xe2\xdb\xe3\x09\x96\x72\x3b\x3a\xd1\x52\x99\xc1\x70\xde\xba\x67\x0b\xfd\x36\x52\x0b\x15\x84\x1a\xa3\xf8\x30\x37\xcc\xce\xdb\xb6\xe1\xef\x49\x60\x7d\x78\x19\x6b\x7b\xf9\x5e\x9d\x5f\xbd\xbd\xa7\x46\xc9\x31\x15\xef\x4e\x49\x3b\x4d\x09\x0e\xd4\xbe\xc3\x53\xbc\x92\x27\x4c\xb1\x16\xe9\x4d\xb8\x26\x7a\x22\xf3\x2c\x25\x82\x3d\x30\x65\xd7\x96\x4d\x67\x66\xfe\xe2\x56\x2b\xe5\x8a\x25\xb0\x30\x9b\x9c\xb0\xf0\x95\x5d\x34\xab\xf4\xcc\x71\xe9\xee\xd9\x1c\x04\x97\xc5\xe5\x7b\x06\x7a\xa9\x3c\x65\x22\x9f\x56\xee\x0a\xf8\xfd\xbc\x73\x7b\xd6\xb9\x3c\xef\x5e\x7e\xac\x7c\x61\xc5\x88\xf0\xa8\xf4\xe4\x6f\x0b\x6b\x33\xa2\x79\x06\xa7\x3a\x6a\xed\xd9\x04\x97\x64\xc2\xb3\x54\x31\x71\x62\xa8\xbe\x1f\xb0\x2f\x2c\xc9\xf1\x9e\xfd\x67\xf9\x87\x81\x95\x3e\x65\xca\xca\xbf\x94\xfe\x51\x88\x3b\x1b\x7f\x1a\xb4\xd2\x8d\xbf\x04\x1d\x76\xbd\xef\xe0\x17\x9e\xd6\xbe\x0d\xbf\xac\x98\x83\x7f\x67\xc9\x60\xfd\x2b\x8d\xa3\xf2\x2f\x38\x01\xae\xf6\x1d\xc5\x8c\x9a\x0f\xa8\x31\xf6\x94\x6f\x21\x33\xc2\x96\x12\x3b\x5b\x52\xec\xa7\x13\x1f\x51\x50\x04\xde\x1d\x24\x47\x3b\x82\xe2\xcd\x55\xf2\xe2\xa5\x4c\x59\x27\x34\xfb\x41\xaa\x1e\xd5\xf7\xaf\x41\x66\x2c\x0d\xfc\x39\xc4\xc6\x6d\x0f\xd0\x37\xa7\xd4\x6f\xc9\x0e\x0e\x26\x80\xdd\x57\x72\x5d\x83\x81\x54\x44\xcf\xb5\x61\xd3\x95\xa6\x83\xd7\xb3\x10\x8e\xdf\xbf\xd4\x01\x57\xae\x9c\xdf\xc0\xa9\x2f\x5f\xa0\x87\xe3\xbd\xc1\x92\xed\xcb\xf0\xf7\xd2\xe7\xe9\x5d\x30\xcb\xa7\x7a\xeb\xb7\xcf\x3b\x1c\x1c\x9d\xbc\xf8\x69\x96\x44\xbb\x7d\x0f\xf2\x89\xac\x06\x8d\x7b\xe5\x57\x7b\x00\x03\x58\xa1\xf2\x95\x4d\xc7\xe1\xfc\xd9\x4f\x63\xe3\x0a\x5a\xcc\x8c\xd5\x79\x9d\x6d\x89\x29\x92\x48\x85\xa2\x60\xea\x8e\x7b\x5f\x90\x63\x72\xde\xee\xb5\x6f\x3b\xbd\x53\xd2\x26\x29\x35\xd4\x9e\x6f\xc5\x66\x8a\x69\x26\x0c\x68\xe3\xf6\x73\x33\x27\x53\x99\xb2\x8c\xa5\x84\x0b\xf2\x21\x9b\x1b\x46\xce\xa9\xa1\x67\xd4\xd0\x4c\x8e\x5b\xa4\x0d\xff\xb4\x1f\x73\x4d\x68\xa6\x25\xa1\x9e\xaa\x58\xea\x9b\xa0\x22\xf5\x9c\x85\x92\x44\x4e\x67\x3c\x0b\x56\xf3\x60\x22\xe1\x22\xe5\x0f\x3c\xcd\x69\x46\xe4\xd0\x32\x15\xab\xaa\x76\x1e\x98\x30\x39\xcd\xb2\x39\xa1\x59\x46\x5c\xb7\xfe\x05\xaf\xd7\x0f\x59\x18\xa5\xe6\x53\x9e\x51\x65\x75\x61\x1c\xed\x95\x6b\x8b\xf4\x26\x2c\x8c\x15\xc6\x65\x17\x73\x4a\xef\x99\x26\xdc\x90\x99\xd4\x9a\x0f\xb3\xe2\xc8\xdf\x75\x09\x8c\xfb\xec\xa2\x0b\x8a\x75\x62\x88\x44\x16\xea\x3b\x77\x56\x18\xdf\xe3\x94\x0a\xc1\xa0\x63\x69\x26\x4c\xb9\xee\xdd\xcb\x5f\x5b\xd1\xbe\xbb\xbc\xbd\xee\x9c\x75\x3f\x74\x3b\xe7\x8b\x9a\x76\xaf\x7d\xfb\xd3\xe2\xaf\x9f\xaf\x6e\x7e\xfa\x70\x71\xf5\x79\xf1\xc9\x45\xfb\xee\xf2\xec\xc7\xc1\xf5\x45\xfb\x72\xf1\xa1\x23\xab\xb5\x95\xf6\x78\x64\x1b\x1e\xad\x83\x35\x72\x9f\xd6\xc8\xa3\x6f\xd7\x1c\xe9\x5c\x39\xeb\x9b\x22\x49\xc6\xb5\xb1\x0b\xe4\xbe\x24\x33\xaa\x35\x0a\x43\x38\x82\x56\x5f\x7c\x92\xca\x32\xad\x91\xb4\x7c\xc1\x0a\x4c\x46\xe5\x89\xe1\x62\x1c\x3e\x3a\x25\xfd\xfc\xfb\xef\xff\x3d\xb9\xe0\xe2\x1e\xfe\x62\x2f\x71\x71\x0e\xb6\xda\x6d\x56\xeb\x60\xab\x8d\x9f\xbd\x0e\x5b\xad\x15\x73\x4e\x62\x13\xed\xd3\x04\xf7\xa0\x1b\xd9\xca\x0e\x32\x37\xf6\x4f\xdb\x2f\x19\x29\x39\x05\xa9\xea\x0b\xd7\xc0\x25\x1e\xa5\xba\x1f\x65\xf2\x71\x3d\xd3\xe1\x47\x66\x82\xf1\xcd\x4a\x31\xaf\xc1\x62\xf8\xd9\xcd\x30\x0c\xfc\x23\x33\x76\xec\x37\xae\x97\x43\x9c\xcf\x21\xce\xe7\xeb\xc6\xf9\xbc\x28\xb3\xdd\xd3\xf3\xbe\xb2\x8d\x0f\x19\x60\x83\x0b\xaa\xd1\xc3\xd4\xe0\x40\x8a\xfc\x43\x4f\xc9\x34\xcb\x5e\x99\x15\x0c\xb3\xe4\xb1\x78\x2d\x4c\xb3\x34\xe8\xe7\x67\x98\xbf\x09\x87\xca\xc1\x5f\xb2\xe5\x42\xbd\x4a\xbe\xba\xe6\x95\xf1\x6c\xde\x8e\xa7\xe7\xf3\x0b\xb1\x08\x9b\x04\x1f\x6c\x10\x6d\xb0\x76\x78\xc1\x8a\x78\x82\xda\x00\x82\xba\x88\x81\xc5\x10\x81\xda\x98\x80\x9d\x82\x00\x36\xbd\x92\xd6\x77\xff\x7f\x64\xa6\x47\xf5\xfd\xab\xbb\x92\x4a\x83\x7e\xfe\x2b\xe9\x37\xea\xf5\x3f\xb8\xf9\x9f\x70\xe9\xbe\xf5\x8b\xec\xe5\x3a\xf2\x7f\x03\x9e\xfb\x83\xab\x7e\xa3\x35\xfa\xb6\x7c\xf3\xdf\xaa\x33\xfe\x75\x7a\xdf\x0f\xee\xf6\x83\xbb\xfd\xe0\x6e\x5f\xc3\xdd\xfe\xa4\x4a\x29\xb3\x64\xa5\xc1\xfc\x18\xeb\x36\x6f\x66\x52\x2f\xd7\xc5\xce\x14\xa3\xc6\x52\x71\xd9\xee\x47\xa0\x41\xa2\x58\x22\x55\x6a\x75\x30\x4a\x66\x13\xaa\x19\x31\x8a\x0a\xcd\x57\xe9\x61\xd8\x2a\x18\xda\x6c\x3b\xaf\x41\x05\x2b\x59\x05\x61\xd4\xcf\xa5\x80\x0d\x65\xba\x70\x66\xf0\x38\xd5\x3d\x59\xce\xeb\xf7\x36\x75\xc8\xd0\x5c\x67\xe6\x4f\x48\xcd\xf6\x5e\xd9\x92\x9a\xcb\x26\x83\xbd\x50\x33\xe8\xe8\xaf\x85\x9a\x4b\x06\x85\xdf\x16\x35\xd7\x4d\xfd\x25\x50\xb3\xf7\x46\x6f\x49\xd1\x8b\xce\xec\xbd\x50\x75\xf0\x20\xbf\x16\xca\x5e\x70\x79\xff\xb6\xa8\xbb\x69\xfa\x5f\x97\xc2\x83\x21\x7c\x5f\xb4\xbd\x9a\x70\xc3\x02\xbc\x06\xa2\x0d\x83\xc5\xb1\xff\x66\xa8\x75\x61\xde\x2f\x84\x4c\x4f\x14\xc3\x6c\xc3\x8d\xe8\xf5\xc6\x7d\xb4\x31\xc5\xfa\x0f\x0f\x34\xfb\x9a\x68\xd6\xef\xda\xcb\xa1\xda\xa6\x70\xba\xcd\x33\x70\x97\xc4\xc8\x69\x32\xa5\x26\x99\xd8\x87\xe8\x9f\x5b\x13\xa6\xa5\x48\xb9\x7d\x55\xd4\xfd\x1c\x79\xb6\xdf\xb6\x25\xfe\x60\x81\xff\x0d\xc2\x61\xbd\x98\x70\xf1\x43\x8a\xca\x1e\x53\x54\xb8\x3e\xa4\xa8\x1c\x52\x54\xd6\x5d\xa0\x43\x8a\xca\x21\x45\x25\x7a\xf6\x3a\x52\x54\x9e\x3e\x3b\x65\x3f\x29\x28\xaf\x4a\x88\x3e\x08\xd0\x07\x01\xfa\x90\x67\x12\xa6\xb6\x2f\x06\xe6\xbf\x7e\x93\xb2\x8c\x19\xb6\x94\xfd\xf4\x98\x9a\x5a\xdd\xa0\x04\x7d\x5d\xe3\x34\x28\x50\xb5\x02\x05\x81\x79\x63\x19\x5f\x0a\x6d\xbf\x4e\xee\x14\x86\x7f\x48\x8b\x3b\xb0\xab\x03\xbb\xda\x66\x6a\x2f\xc7\x2a\x1b\x1d\xe6\xaf\x6a\x96\x8d\x80\xb4\x07\x3c\xdd\x0f\x96\x76\x10\x1b\x63\x24\xed\x62\x29\x4a\x60\xc6\xdb\x19\x69\x0b\x58\xea\x6e\xfa\x2a\xec\xb4\x96\x8f\xa4\x1d\x88\xba\x0b\x21\x83\xea\x00\xa9\x7d\x80\xd4\x5e\x7f\xae\x07\x0b\xe1\x1e\x2d\x84\x07\x48\xed\x83\x0d\xec\x60\x03\x7b\x7a\x1b\xd8\xd7\x32\x68\x3f\xf3\xb1\x7c\x2e\x11\x6d\xbb\xc0\x24\x91\x12\xc5\xc6\x5c\x1b\xa6\xec\xea\xd5\x0a\x65\xab\x23\x95\x5e\x6b\x91\xa8\xb5\xe3\x3e\xe2\x6e\xdf\xfc\xc7\x1a\xc3\xbf\x71\xb7\x28\x1c\xf5\x21\x4d\x43\x45\x18\x10\x9d\xa6\x74\x4e\x26\xf4\x81\x91\x11\xe5\x19\x2a\x46\x8e\x3b\x2e\x99\xe1\xb2\x01\xfd\xaf\xcd\x06\x44\xcb\xc3\x51\x6c\xc4\x14\x13\x09\x72\x7b\x14\x7e\x12\x9a\xf9\x54\x10\x78\x67\x62\xd5\xd4\x4c\x31\x9a\xce\xc9\x90\x31\x11\xc8\xa6\x46\x52\x68\x18\xf3\x5e\x84\xd6\xaf\xae\xa6\x2d\x52\xcf\x4b\x51\xd2\x9e\x24\x7a\xa6\x9e\x25\xec\xae\x9c\xe9\x3f\xbe\x2e\x56\x71\x08\xa2\x39\x18\xd5\xbe\xbe\x51\xed\x10\x44\x73\x50\x91\x5f\x80\x8a\x7c\x08\xa2\x39\x04\xd1\x1c\x0c\x08\x6b\xaf\xd6\xc1\x80\x10\x3f\x7b\x1d\x41\x34\x4f\x58\xc1\xf9\xb9\x24\xec\x83\x80\xed\xdf\x3b\x08\xd8\x07\x01\xfb\x1b\x15\xb0\x5f\xc6\x0a\x1f\xa4\xeb\x83\x74\x7d\x90\xae\x0f\xd2\xf5\x41\xba\x3e\x48\xd7\xee\xab\x7d\x4a\xd7\xf0\x97\x87\x66\xdd\x39\x62\x7d\x73\x2f\xd7\x47\x66\x5e\xab\x8b\xeb\x20\x52\x1f\x44\xea\x97\x2d\x52\xbf\x98\x09\x7d\x7b\x50\x8b\x07\xb0\xc2\x03\x58\xe1\x01\xac\xf0\x69\xc1\x0a\xfd\xd7\x6f\x66\xf9\x72\x59\xe4\x6e\x96\xfa\xdc\x15\x6d\xa8\xc9\x41\xed\x5b\x43\x2e\x21\x6d\x43\xa6\xd2\x2a\x41\x82\x95\xde\xf1\x0c\x08\x23\x3a\xc6\xfc\x81\x09\xe2\x63\xb4\x8f\xdc\x35\x73\x04\x96\x88\x7f\x85\xd3\x81\x49\x33\xd4\x10\x4a\x0c\x9f\xb2\x16\xe9\x8e\xf0\x34\x27\x96\xfc\x35\x33\xba\x12\x06\x84\xa4\x09\x1f\x89\xb4\x18\xab\xef\x9b\x17\x51\x21\xf8\xda\x91\x67\x86\x79\x66\x90\x35\xfa\xc6\x1f\x79\x96\xd9\x31\x38\x0e\x02\x27\x61\xca\x54\xe6\xbf\x2c\x75\xeb\x5f\x9e\xd2\xd4\x9e\xdc\x68\x08\x45\x76\x4f\xfc\x3e\xdc\xb9\x5c\x87\xb8\x96\xd2\xf7\xf8\x75\x8b\x38\x25\x1c\x41\xc5\xd6\x1a\xc6\x84\xa6\xf6\x04\x26\x13\x96\xe6\x19\x23\x54\x6b\x99\x70\x6a\x2c\xb7\xc2\x3b\x9a\x70\xe3\x55\x76\xff\x92\xef\x3a\xe5\x9a\x0e\x33\x96\xba\x35\x66\x45\x98\xcd\xd2\x91\x73\x4d\x86\xcc\x2e\xb1\xe5\x23\xe5\xd5\x9f\xa0\x84\x50\x33\x9a\x68\x28\x6c\x71\x24\x4c\xe0\x40\x96\x48\xb8\x48\x9c\xaf\x55\xc8\xc5\xd1\x1f\x72\x9f\x0e\x22\xef\x41\xe4\xdd\x68\x42\xdf\x94\xc8\xfb\x82\x42\x03\x3d\x43\xfa\xaa\xa1\x81\xe0\x40\xb4\x9c\x7f\x10\x2c\x84\x7a\x3b\xe3\x49\x30\xc2\x7e\xf2\x4d\xb6\x43\x8b\x67\x52\x8c\xf8\x38\x57\x4e\xe0\x76\xd2\xf0\x0a\x2f\x65\x4d\x3b\xaf\xe2\xc6\xa9\x1f\xfa\x73\x5d\x3c\x9b\x28\x74\xe4\x98\x58\xb1\x7b\x70\xd3\xb9\xbd\xba\xbb\x39\xeb\x9c\x92\xf6\x6c\x96\x71\xf4\xb2\x24\xb9\x36\x72\xca\xff\x61\xa7\x81\x40\xc2\x81\x73\x3b\x31\x44\x83\xc0\x01\x6e\x1d\xab\x26\x91\x63\x72\x76\x71\x77\xdb\xeb\xdc\x34\x34\xe8\x88\x00\x6a\x19\xb1\xe9\x2c\x03\xa9\xe4\x3e\x1f\x32\x25\x98\x61\x9a\x24\x59\x0e\x31\xe6\xc1\xd9\x83\x8d\x76\xfe\xab\x73\x76\xd7\xeb\x5e\x5d\x0e\xfe\x7a\xd7\xb9\xeb\x9c\x12\x4f\x4d\xb6\x59\x3b\x2e\x3b\x8a\x74\x2e\xe8\xd4\xea\xa2\x65\xc4\xe3\x5f\x73\x96\x83\x10\xc4\xc7\x62\xca\x84\xa9\xb6\xe8\x07\x7c\xd1\x7e\xdf\xb9\x28\xb7\x3c\x61\xe4\xa7\xbf\x14\x83\xca\xe8\x90\x65\xce\xfb\x04\xce\x15\xcb\xb0\x8b\x8e\x9c\x5b\x2a\x47\xb5\xf6\xaf\x77\xed\x8b\x6e\xef\x97\xc1\xd5\x87\xc1\x6d\xe7\xe6\xe7\xee\x59\x67\xe0\x14\x8c\xb3\xb6\xed\xb7\xd4\x93\xd3\x43\xc8\xaf\x39\xcd\xac\xa2\x2a\x47\xe0\xda\xe1\x09\x23\x8f\x13\x26\x48\x2e\x80\xc6\x50\xfb\x05\x5d\x20\x4e\x62\xc7\x19\x5d\x5f\xdc\x7d\xec\x5e\x0e\xae\x7e\xee\xdc\xdc\x74\xcf\x3b\xa7\xe4\x96\x65\xa0\x1f\xfa\x45\x87\x5d\x9c\x65\xf9\x98\x0b\xc2\xa7\xb3\x8c\xd9\xd5\xc0\xe3\x38\x64\x13\xfa\xc0\xa5\x2a\xe9\x08\xb0\x8e\x96\x84\xbe\xba\x21\xbb\x44\xa1\x8b\xaa\x5e\x95\xe4\x16\xdf\xa8\xd0\xcf\xb2\x17\x4a\xe4\xb0\xf8\xe2\xaa\x6d\x5d\xfc\xa2\xb2\x2f\x6b\x2b\xa4\xe5\x49\x3f\xdb\x6d\x60\x99\x48\x3a\xf0\x86\x89\x93\x7f\x96\x98\xc9\xbf\x9e\x0c\x29\x86\x44\xe9\xad\xee\x76\x58\x55\x71\xb3\xf8\xe0\x35\xdc\x09\xf1\x70\xbf\x26\xff\xdf\x93\xcc\xf5\x4a\xec\x3d\x9b\x8b\xba\x07\x95\xed\xa0\xb2\xd5\xaf\xcc\x21\xf0\xa7\x61\x85\xf7\x75\x1f\x6d\x63\x22\x1d\x71\x96\xa5\x7a\xc1\xc6\x55\xba\x4f\x56\xda\xb3\x5e\xef\x55\xf2\xbc\x16\xad\x4d\x14\x8b\x9b\xe0\x09\x72\xae\x21\xbb\x5b\x53\x66\x28\x54\x36\x35\x92\xe4\x30\xf4\xc3\xf5\xe4\xfe\xef\x70\x3d\x1d\xae\xa7\xc3\xf5\xf4\x5b\x35\x09\xd6\xb0\xf4\xaf\x6a\x13\x5c\xa5\x05\xee\x04\xf1\x54\x63\x30\x5c\xd4\xfe\x34\xd1\x13\xaa\xb0\x98\x4f\x22\xa7\x53\x29\xa2\xe0\x82\xf9\x8c\x1d\x91\xe0\xc2\x04\xe3\x0f\x0c\x63\x95\x3d\xb1\xe8\x86\xbf\x0e\x4b\x62\xb4\x2e\xcf\x91\xf8\x70\xd0\x1c\xfd\xff\x6d\x7a\x35\x1f\x40\xb2\x0e\x20\x59\x87\x1c\x85\x03\x48\xd6\x72\x6a\x39\x44\xe1\x1f\xa2\xf0\xe3\x67\x07\x90\xac\x17\x04\x92\x25\x64\xca\x06\x15\x50\xfc\xf0\xcf\x41\xd5\xef\x51\x7a\x12\x3b\x41\x4a\x0f\x8a\xb4\x04\x68\x9d\xa7\xbb\xa7\x25\x94\xcb\x13\xaf\x72\x92\xc4\x05\x6d\x5f\xb8\xc0\x3b\xca\xe6\x86\xf1\x34\x5b\xac\xc4\xfb\x0c\x91\x5a\x75\x1b\xfd\x2d\x1a\x59\x6a\xc8\xf6\x60\x71\x59\xb9\x50\xdf\x2a\x98\x75\xc1\x97\x5e\x91\x9b\x60\x3d\xe6\xed\x01\xff\x07\x0d\x2c\xbc\xfe\x79\x60\xe4\xf5\x8f\x77\xc5\x70\x28\xf3\xee\x6d\xb1\x1b\x4a\xbc\xf1\x75\x98\x31\xe2\x11\x3f\x87\x21\x63\xe9\xee\x7f\x73\x7c\x7d\x19\x2d\x1f\xb8\xfb\x9a\xcb\xf5\xad\xf2\xf8\x83\x3d\x63\x9f\xf6\x8c\xa3\x6f\xd7\xa0\x71\xc0\x5c\x58\xb2\x38\x07\x6b\xcf\x36\xab\x75\xb0\xf6\xc4\xcf\x9e\xd3\xda\x83\xbe\xdb\xc1\x8c\x2a\x26\x4c\x8d\x7c\x5f\xbd\xd9\xe0\xf5\xc8\x56\x1f\x04\x20\x68\x00\x05\x57\x27\x1b\x84\x5b\xf3\xdb\x32\xff\x38\x19\x65\x80\x22\x4e\x94\x0b\x71\xf2\xcf\xe2\xef\x48\x81\x88\x7e\xac\xf1\x81\x6e\x10\xc2\xe4\xa3\xec\x59\x5a\x88\x5d\x45\xe3\x35\xa1\x4d\x6e\x0c\xc7\x5e\x18\x2b\xbc\xf9\x2b\x23\x9d\xae\xf1\xd3\x73\xf8\xf2\x75\x25\x55\x34\x0c\xfd\x79\x23\xa0\x16\x29\x61\xbd\x83\xe5\xf5\x08\x8e\x49\x03\x8f\x13\x0e\xe2\x01\x40\x38\xc1\x15\x1a\x6d\xb8\x4f\xc7\xa4\x90\x37\xd1\x24\x6b\x3d\xb7\x18\xb9\x40\xee\xeb\x4d\xdc\xd1\xe8\xeb\x9d\xf7\x57\x0f\x0d\x59\x41\xf7\x5f\x35\x4c\x64\x09\xcf\xdc\x4f\x84\xc8\xf3\xf1\xc7\x8f\xcc\x7c\x7b\xcc\xf1\x23\x33\xcf\xc5\x19\xb7\x65\x87\x4b\x59\x42\x51\x71\xe2\x85\x70\x83\xed\x58\xdf\xeb\x9a\xe3\x21\x7d\xf0\x90\x3e\x78\x48\x1f\x8c\xdf\x38\xa4\x0f\xee\x5a\x93\xf9\x1c\x5e\x79\xc6\xeb\x1c\x3b\xfc\xf6\x6e\x74\x9c\xd7\xe1\x52\x3f\x5c\xea\x9b\xcd\xf1\xa5\xaa\x31\x9e\x9e\x5f\x82\x1a\xb3\x11\xea\x05\x7a\x76\x8b\xea\x66\x9e\xfc\x57\x7a\x6f\xaf\x7d\x67\xaf\x87\x09\xe9\xa7\xe6\x33\xbb\xf8\xa8\xfc\xba\x1f\x5c\x54\x07\x58\xf0\x83\x8b\xea\xe0\xa2\x3a\xb8\xa8\xdc\xd3\x6f\x02\x16\x3c\x28\x19\x2b\x4b\xd5\xde\x14\xf5\x69\x6b\xc2\x4d\xaa\x37\xb1\x7f\xfb\x7a\x41\xc2\x7d\xe9\x97\xb1\x1f\xf9\x73\xe9\x00\x2f\x45\x72\x2c\xe6\xfd\x22\x64\xc5\x93\x7f\x56\x82\xb9\x17\x3c\x7e\x3a\x9f\x4e\xa9\x9a\xc3\xbd\xe5\x42\x9b\x5b\x30\xa1\x96\x9b\x51\x04\x1b\xec\xae\xa5\x61\x6e\xa2\x48\x2c\x6d\x09\x79\xc6\x94\x99\x47\x6f\x02\x17\xfd\xcf\xbe\xe0\x05\x78\x29\x1f\x0b\xa9\xd0\xb8\x63\x3f\x9e\x50\x91\x66\xf6\x1c\xe8\xd0\x4e\x42\x85\x90\x06\x6e\x7f\x70\x1b\xa4\xe4\x81\x53\x94\x15\xda\xd7\xdd\xd2\x39\xa9\xf7\x53\xae\x75\xa6\x4a\x2e\xc6\x57\x74\xa2\x9e\x1b\x16\xf4\xa0\x11\xc6\xab\xff\xb5\x0e\xb2\xa1\xfa\xbe\x9a\xee\x51\x8e\x22\x1e\x2c\x4d\x00\x59\xf1\x6e\x09\x17\x6b\xf9\xab\x95\x24\x91\xf2\x33\x97\x36\x02\x8f\x61\xc8\xd5\x71\xf8\x1f\xe3\x0e\xfd\x6f\x45\xcb\xfe\x17\x5f\x1d\x03\x7e\x54\xcc\xa8\xf9\x80\x1a\x63\x99\xca\xee\x99\x29\x65\xcb\xf9\x8a\xcc\x94\x1e\xd5\xf7\xaf\x32\x33\xa5\x3c\xf0\x27\x67\x16\x6b\xd2\xe4\x37\x17\xd3\xbc\xee\x09\x3b\xc4\x37\x6f\xb1\x74\xdf\x6a\xac\xf3\x32\x16\xfa\x62\x46\x58\xe1\xe2\xdf\xe2\xc9\x2d\xdf\x49\x87\x23\xba\x6c\x8d\xbe\x39\xb0\xf0\x8a\xa8\xb1\x62\x6e\xaf\x04\x34\xbc\x2a\x2d\xed\x7b\x54\x4f\x63\x5b\x8e\x76\xe3\x50\xe5\xe7\x50\xe5\xe7\x50\xe5\xe7\xa9\xab\xfc\xac\xa7\x69\xae\xad\x66\xae\xab\x63\xae\xa7\x60\x36\x6b\x97\x3b\xa4\xb4\x96\x95\xbe\x6d\x53\x5a\x4b\x4a\xd5\xab\x70\x8d\x96\x46\xfc\x1c\x29\xad\xbf\x51\x3d\xf0\xa0\x04\x3e\xc9\xba\x7d\xab\x1a\xe0\x0b\x57\xff\x0e\xc9\xb8\x7b\x8c\x74\xf8\x86\xc1\xc5\x0e\x81\x0e\x4b\x16\xe7\x10\xe8\xb0\xcd\x6a\x1d\x02\x1d\xe2\x67\x2f\x2e\xd0\xa1\x59\x73\xe0\xe9\xae\xe9\x54\x75\x22\x7b\x21\xd0\x96\x10\x3a\xb7\x17\xdf\xbb\xe9\xab\x90\xdb\x23\x44\xdd\x60\xe6\x50\xcf\x21\xbf\x1f\x10\x62\x0f\x08\xb1\x07\x21\xee\xb7\x24\xc4\x1d\xe4\x94\x6d\x56\xeb\x20\xa7\xc4\xcf\x0e\x08\xb1\x2f\x08\x22\xc4\x0a\x4e\xa5\x24\x91\x95\x41\xa9\x67\x8a\x41\xf8\x9c\x48\x43\xaa\x08\xa1\x55\x01\x6c\x99\x74\x85\x0d\x58\xf9\xea\x35\x08\x57\x76\x9c\x38\xe2\x35\xa2\xe9\xe2\x0e\xdf\xfc\xc7\x1a\x03\xbf\x71\x77\x25\x1c\xe8\x21\x4d\x43\x2d\x74\x10\x90\xa6\x74\x4e\x26\xf4\x81\x91\x11\xe5\x19\x9a\xa9\x1c\x0f\x5c\x32\xb7\x65\x03\xfa\x5f\x9b\x0d\x88\x96\x87\x53\x64\x80\x59\x9e\x8e\x22\x4e\x42\x33\xef\xa4\x82\x77\xa0\x50\xbb\x2b\x8b\x3f\x64\x4c\x44\xe9\x44\xeb\x8e\x79\x2f\xa2\xe9\x57\x0f\x05\x8c\xe9\xe6\xab\x46\xf7\xc2\x09\x6f\x2c\x72\xb9\x3f\x9d\x6b\x17\x45\x4b\xff\xf1\xb5\xb0\x82\xe7\x50\xab\xbe\x61\xd7\xc7\xc1\xbd\xf1\xdb\xac\x89\xf5\x62\x44\xf2\x83\xa2\xbb\x47\x45\xf7\x90\x97\x79\x70\x57\x1c\xcc\x00\x6b\xaf\xd6\xc1\x0c\x10\x3f\x7b\x3d\xee\x8a\x66\xe9\x79\xbb\x12\xf1\x4f\x28\x47\x1f\xc4\xe8\x83\x18\x7d\x10\xa3\xbf\x59\x31\xfa\x65\xac\xf0\x41\x86\x3e\xc8\xd0\x07\x19\xfa\x20\x43\x1f\x64\xe8\x83\x0c\xed\xbe\xda\x8b\x0c\x0d\x7f\xf9\x6c\xee\xfd\xa4\x6e\xaf\xe7\x91\x72\xb9\xdb\xaf\x45\x78\x3e\x08\xce\x07\xc1\xf9\x65\x0b\xce\x2f\x66\x42\xdf\x5e\xc2\xe6\x21\xe5\xf1\x90\xf2\x78\x48\x79\xfc\x0a\x29\x8f\xa1\xc4\xde\x16\x65\x74\x4a\xbf\xf9\x86\x9e\xbb\xb8\xce\x91\xbf\xa6\x2c\x89\xfa\x41\x6c\x54\x6a\xe7\xb3\xfb\xe8\x75\xc1\x4e\x2f\x8e\xfa\x50\x60\x87\x44\xbb\x76\x28\xb0\xf3\x84\xf3\xf6\xe7\x6c\xc5\xcc\x3d\x8d\xa2\x29\xf1\x95\x4e\xfb\xab\xc7\x5c\x35\x9f\xf4\xaf\x1a\x81\x55\x7b\x73\x2c\x64\xbf\x14\x05\x9a\x9f\xbf\xae\xd0\x2e\x57\xc3\x47\x66\xbe\x95\x7b\xe1\x50\x5b\xe8\x50\x86\x60\xeb\xd2\xcb\x1b\x71\xf8\xd7\x35\xc5\x43\xf9\xa4\x43\xf9\xa4\x43\xf9\xa4\xf8\x8d\x43\xf9\xa4\x17\x50\x3e\x69\x17\xa9\x05\xbb\xff\x56\x04\x97\x43\x09\xa5\x83\xec\x72\x90\x5d\x6a\xa7\xf8\x02\x95\xd2\x17\x51\x20\x2a\x28\xa5\xfb\xc2\x62\x88\x7d\xaf\x81\x19\xef\x15\x92\xc1\xaf\xe4\x01\x96\xc1\xfd\xdf\x01\x96\x61\x9d\xc9\x1d\x60\x19\x0e\x91\x76\x07\x58\x86\x43\x2c\xd9\x21\x96\xec\x00\xcb\xf0\x5a\x60\x19\xbc\x00\xb5\x0f\x68\x86\x1a\x61\x6c\x35\x3c\xc3\xe7\x45\xcd\xe0\xc5\x0a\x5a\x7e\xac\x07\x98\x86\x03\x4c\xc3\xae\xb4\xf3\x22\x74\xb2\x27\x81\x6b\xa8\x61\x03\xbb\x2a\x62\xaf\x03\xb6\xc1\x8f\xf6\x90\x73\x76\x08\x9d\x7d\xf9\xa1\xb3\x2f\x2e\xe7\xec\xc5\x88\xed\x07\x65\x78\x8f\xca\xf0\x21\xed\xec\x90\x76\x76\x30\x15\xac\xbd\x5a\x07\x53\x41\xfc\xec\x75\xa4\x9d\xad\x96\xa6\xf7\x02\xdf\xf0\x14\x72\xf5\x41\xac\xc6\xf7\x0e\x62\xf5\x41\xac\xfe\x46\xc5\xea\x97\xb1\xc2\x07\x99\xfa\x20\x53\x1f\x64\xea\x83\x4c\x7d\x90\xa9\x0f\x32\xb5\xfb\x6a\x6f\x32\xf5\x7e\xe1\x1c\x36\xf4\x62\x45\x59\x29\xaf\x49\x98\x3e\x08\xd2\x07\x41\xfa\x65\x0b\xd2\x2f\x66\x42\x07\x68\x87\x03\xb4\xc3\x01\xda\xe1\x00\xed\xb0\xb3\x54\xe3\xf8\xc8\x06\x60\x0c\xa5\x9c\xdb\x9f\x1d\x63\x79\xcb\x45\x92\xe5\x29\x64\xa2\x4d\x18\x79\x9f\xf3\x2c\x25\xa0\xdd\x58\x25\x95\x4b\xf1\x0e\x88\x09\xe8\x00\x06\xe9\x33\xb2\x96\x4b\x31\x3f\x2f\xb0\xb9\x17\x2b\xc4\x14\xa3\x7d\xae\x4c\x94\xaf\x1e\x3e\x12\x4f\xf9\x79\x43\x47\x7e\xe7\x56\xee\x4d\x34\xa6\x30\xf8\x37\xef\x33\x39\xec\xcd\x67\xcc\xfe\xf7\x9c\x4f\x99\xd0\xa0\x01\x71\x33\x8f\xe9\xbc\x81\x79\x2c\xb2\x8d\x37\xb7\xdd\xcb\x8f\x17\x71\x9a\xdb\x9b\x4f\x77\x17\xbd\xee\x75\xfb\x26\x1c\xed\x30\xab\xf8\x38\xbb\xef\x4a\xa7\xee\x4c\x4e\x67\x54\x71\x2d\x45\xe7\x8b\xbd\x60\xec\xd0\xae\x80\xee\xa5\xda\x6e\x74\x9d\xbf\xc6\x23\xbb\x2c\xff\xf3\x63\xaf\xfc\xaf\xd2\x2c\x2e\x7a\xe5\x7f\x75\x96\xce\x26\x6a\xb8\x7a\xac\x8e\xc9\xc7\xde\x29\xf9\x08\x51\x44\x8a\xf4\x26\x14\x6f\xd5\x8b\xde\x29\xb9\x60\x5a\xc3\x2f\xc5\xc7\x86\x9b\x0c\xe6\xf6\x9e\x0b\xaa\xe6\xc4\x4f\x1f\x13\x40\x29\xb8\x17\xfc\xd2\x54\x17\x4f\xfc\x3d\x17\xa0\x00\x17\xab\x77\x21\xc7\x3c\xa1\xd9\x6e\x8b\xd8\xbe\x8c\xef\x82\x37\x57\x37\x4b\x97\x22\x7e\x7b\x71\x2d\xda\x97\xe7\x90\x8e\xea\x87\x5a\x33\xf3\x4b\xa6\x0d\x4b\xad\x40\x9d\x22\xf1\xc2\x95\x3c\x8f\x04\xed\xbf\x4b\x48\x50\xcd\xb5\x65\xa9\xed\xcb\x73\x72\x42\xae\x6e\xfa\xe2\x4a\xa5\x68\x7f\x64\x56\x42\x45\xc1\x81\x6b\x22\xa4\x21\x7c\x3a\x93\xca\x50\x61\xac\x70\x0e\x77\xb3\x5b\x11\x4d\xa8\x62\xe4\x4c\x4e\xa7\xb9\xa1\x86\x3f\xb0\x85\x45\x15\x68\x54\xb8\x65\xa6\x9b\x82\x47\xa3\x66\x0d\xf1\xf2\x2e\xe6\x32\x53\xb6\x7d\x2b\x38\x94\x6f\x0b\x9e\x2e\x70\x66\xdf\x04\x55\x8a\x96\xf9\xd2\x1b\x6e\xd8\xb4\xfa\xfe\x9a\x91\xa7\xff\xaa\xbd\xd5\xac\x54\x73\x21\xa9\xbd\x89\x30\x23\xf8\x82\x1b\xa6\x68\xf6\x89\xce\x3e\x78\x83\xe9\x16\xf4\xf1\xff\xdd\x96\x92\x51\xdf\xfc\xd2\xfe\x14\xa7\xb3\xbe\xb9\xbe\xb9\xea\x5d\x2d\xa5\x99\x52\x0b\x8b\x44\x63\x1f\x9f\xc2\xff\x92\x13\x62\x5b\x0f\xc2\xd7\x94\x19\x6a\x85\x52\xf2\x16\x73\xcf\x42\x86\x0a\x17\x19\xd0\xc8\x4c\xf1\x29\xb7\xfb\xea\xac\x3e\xef\x50\xbe\x0b\x02\x6c\xa0\x12\xfc\x00\xf3\x48\x41\x72\x36\x54\xa4\x54\xa5\xe4\xef\xda\xe5\x3e\x5b\x39\x1a\x5f\xa7\xda\xff\xc0\x52\x72\x4c\x26\xc6\xcc\xf4\xe9\xc9\xc9\xe3\xe3\x63\xcb\xbe\xdd\x92\x6a\x7c\x62\xff\x38\x66\xa2\x35\x31\xd3\x0c\x93\xa6\xed\x2a\x9c\x92\x6b\x25\x8d\x04\x19\xd8\xde\xf2\x9c\x66\x90\xdd\x3a\xc4\xd3\x2e\x47\xe4\xbf\x13\xa9\x58\xab\xd8\x98\xff\x26\x51\x3e\xf6\xc8\x8a\x08\x3c\xcd\x4e\xec\x4b\x35\x47\xa7\xba\x9f\x24\x65\x09\x4f\x9d\x2e\xc0\x44\x22\x41\x08\x41\xb9\xc3\xb6\xe7\x13\xf6\x98\xf3\x46\x86\xe5\x8c\xe4\x65\x9a\x32\x42\x1f\x28\xcf\x30\x35\x5f\xa2\xd5\x1b\xd7\x99\x29\x2b\x7b\x77\x51\x71\xca\xad\x92\x08\xe1\xa3\x20\x45\xf8\x57\x67\x76\xc2\x89\xcc\xc8\x30\x1f\x59\x25\x23\xba\x95\x8e\xac\x40\xcd\x35\x51\x2c\x91\xd3\x29\x13\x68\x17\xb7\x0d\xc1\x97\xb0\x62\x6e\xb4\xad\xbe\x80\xfd\xb7\x92\x36\x50\x40\x2a\xe1\x60\x0b\x66\x15\x6e\x31\xc7\x6e\x86\xf9\xa8\xe4\x6c\x35\x92\x28\x46\x53\xc2\x4d\x5f\xb4\x33\x2b\xd5\x4c\xa5\x61\x71\x1c\x2c\x78\x66\x4a\x0b\x0e\x0c\x41\xb1\x59\x46\x13\x9f\x57\x9c\xc9\x84\x66\x64\xc4\x33\xa6\xe7\xda\xb0\x69\xdc\xc0\x5b\xb0\x16\xd8\x35\xe3\x9a\xa4\xf2\x51\x64\x92\xba\x79\x54\x3f\x7b\x57\xe6\x2d\x1d\x9f\x59\xdf\x51\x4a\x2a\xf8\x9f\x9f\xb8\x48\xb7\x3b\x83\x77\x97\x3f\x5d\x5e\x7d\x2e\x1d\xc3\xbb\xdb\xce\x4d\xfc\xef\xdb\x5f\x6e\x7b\x9d\x4f\x4b\xcf\x61\xb5\x95\x82\xb2\x60\x78\xa0\x45\x9e\x92\x5b\x5c\x04\xa9\xc8\x9d\x66\xaa\x61\x52\x9f\x1c\x29\x15\x3f\xc8\x94\x6d\x37\xb7\x4f\xed\xcb\xbb\x76\x89\xa3\xdc\x9e\xfd\xd8\x39\xbf\xbb\x28\xe9\x28\x7e\x7e\xd1\x2f\x37\x1d\xd4\x40\xe2\xdf\xce\x7e\xec\x5e\x9c\x0f\x82\xce\xb2\x6c\x35\x2a\xfd\x56\xf9\x52\x0f\xf9\xcf\x44\xa6\x64\x38\x8f\x73\x5f\x0b\xc8\x84\x47\xaa\x49\x06\xbe\x3d\x96\x7a\x75\x1a\x5b\x3d\x05\x36\xe4\xc1\x18\x8a\x2f\xac\x7a\x7a\xe4\xde\x01\xe8\x04\xd4\xe4\xa9\x29\x63\x31\xc4\x0d\xdb\xde\xa9\x88\xd4\x62\x04\x69\x08\x6b\x64\x15\x77\x2b\xc2\xa6\xb9\x3d\xbf\x8a\x8f\xc7\x60\xa5\xaa\x0c\x15\x5b\x73\x9f\xc2\x4a\xc2\x77\xb8\xd5\x33\x25\xe1\x48\xdb\x6e\x9d\x66\x10\x74\x60\xfc\x10\x95\x9b\x52\x8b\x8a\x82\x7a\x5b\x33\x34\xbf\x2f\xa7\xe8\x94\x68\x98\x16\x1c\xbd\x22\x48\x1d\x38\x94\x46\xe3\xda\x4c\xb1\x07\x2e\xf3\xe8\x53\x87\x08\x52\xda\xdc\xda\xe6\x8b\x05\x80\x65\x43\x15\xbc\x68\xa6\x4c\xcd\xdd\xab\x5b\xa3\xa8\x61\xe3\xf9\xb9\x3b\xd9\xdb\x53\xf1\xf9\xd5\xe7\xcb\x8b\xab\xf6\xf9\xa0\xd3\xfe\x58\x3e\x98\xe1\xc9\x6d\xef\xa6\xd3\xfe\x54\x7e\x34\xb8\xbc\xea\x0d\xfc\x1b\x4b\xc9\xb5\xa1\x83\xc5\xeb\xb4\xfc\xe2\x29\xb1\x9c\x11\x38\x98\x07\x0f\x8b\xd8\xd8\x90\x8d\xa4\x42\x76\x3c\xf5\x6e\x6c\x60\xfc\x24\xac\x2c\x4b\xd1\x4c\x54\x9e\xc5\x29\xd8\x50\xea\x9a\x44\xf3\xa8\x51\x8c\x4e\x81\x9d\x53\x41\x3a\x22\x3d\xbe\x1a\x1d\xdf\xe2\x8f\x53\xaa\xee\x99\x0a\x9f\x3e\x2a\x6e\x0c\x03\xaf\x0e\x77\x0e\x1f\xb0\xf1\xc0\x90\xed\x7d\x03\x69\x0a\x45\x07\x2d\x72\x63\xd9\xb3\x7d\x3f\xdc\x3d\x96\x50\x53\x66\x28\xcf\xb4\x1b\x6c\x69\x5d\x4f\xc9\x05\x55\xe3\xc2\x62\xf3\x56\x8e\x46\xd8\xd8\x3b\x1c\x86\xbd\x6a\x4a\xb3\xa8\x61\x91\x96\x34\xfc\xf5\x05\xfd\xb9\x97\x83\x90\xb6\x48\x55\x77\xb3\xdd\x68\xea\xee\x1a\x56\xfc\xea\x72\xd0\xf9\xaf\x6e\x49\x61\x71\x4f\x6a\x68\x0d\x26\x8e\x8f\x97\xdf\x05\xf5\x6d\x2f\x92\x53\xf9\xc5\x1a\x72\xca\x67\x7e\xe7\x47\x56\x05\xaa\xa1\x25\xf6\x85\x1b\xdc\x98\x78\xdc\x15\x12\x2a\x9a\x01\x43\x1c\x9d\xcd\x18\x55\xba\x6e\xb7\xcb\xd2\x5a\xc3\xde\x63\x4f\x71\x1f\x6e\x93\x7d\x3f\x47\x44\x8a\x6c\x1e\xdf\xf5\x15\x8a\x5c\x83\x06\xb0\xad\x05\x0a\xb8\x06\x68\x9c\xab\x07\xa6\x14\x4f\xd9\x27\xae\xad\x26\x83\x3f\xbe\x77\xf8\x38\xdb\x11\xc4\x87\x76\xf7\xa2\x22\x03\x0c\xce\x3b\x1f\xda\x77\x17\xcb\xb5\xf1\xd2\x77\x35\xc0\x4d\x51\x3b\xa7\xf6\xd6\x77\xd6\x65\xb8\x1d\x8e\x3d\xea\x0f\x4b\xc3\x85\x56\x06\xfd\xa9\x70\xd5\x6b\xf4\x80\xb8\xff\xdc\x1a\x6a\xb6\x24\xff\xf6\x59\xaf\xfb\x73\x49\x6b\x6f\xdf\x9c\xfd\xd8\xfd\xb9\x4e\x2e\x18\x7c\xec\x5c\x76\x6e\xda\xbd\xce\x72\xaa\xaf\x34\x59\x77\xe7\x6b\x3b\xe0\xaa\x07\x8c\xeb\x10\xc4\x61\xc9\x5a\xc9\x8c\x70\xa3\xc9\x03\xd7\x7c\xc8\x01\x68\xc9\x79\x93\xee\xba\xc0\xf4\xc0\x3d\xcf\xcd\xdc\x4b\x05\xd8\xef\x29\x79\x3f\xf7\x6b\x78\x04\x4c\xce\xb5\x8f\x6a\x6a\xec\x63\x4a\xac\x52\x83\xb7\x9e\x9f\xf4\x29\x69\xab\x64\xc2\x1f\x40\xed\x89\x3e\x13\x56\x14\x15\x63\xa6\x70\x38\x60\x42\x8f\xc7\x12\x3d\xb7\xa3\x8a\x65\x80\x62\xd5\x82\xd8\x37\x66\xc2\xaa\xce\x71\x27\x28\x9f\x28\x26\xbe\xb3\xa2\xcc\x2c\xe3\x09\x37\xd9\x9c\x24\x60\xf3\x48\xad\xa0\x38\xa5\x82\x8e\xdd\x9d\x0b\x8a\x42\x85\x24\xfe\x8a\x68\x54\x57\x23\x67\xdc\xea\x71\xb6\xe5\x09\xb8\xbb\x3c\xef\x7c\xe8\x5e\x96\x49\xe0\xc7\xee\xc7\x92\x10\xf8\xa9\x73\xde\xbd\x2b\x5d\xb4\xab\x64\xc1\xc5\x66\xeb\x4e\x89\x7f\xe9\x94\x9c\xe3\xa7\xa7\x76\x71\x6b\xa0\xb6\x82\xfa\x58\x59\x87\x1b\x1f\x39\xe5\xff\xe8\x08\xa3\x6a\x2d\x73\xeb\x9a\x1c\x9c\x41\xb4\x64\x73\xa8\x37\x5b\x2e\xf4\x7d\x59\x75\x0c\x2e\x5a\xbb\x9d\x33\xc9\x76\xd2\x2a\x2c\x11\xb1\xe1\x16\xd4\xee\x26\xa3\x47\x8d\x6f\xa2\xe0\xa5\x3f\x83\x9b\x71\x9a\x6b\x83\xfe\x20\x20\x4e\x72\xff\x17\x6d\x17\x14\xfc\x45\x2d\x72\xcb\x58\x5f\x78\xfd\x7b\xcc\xcd\x24\x1f\xb6\x12\x39\x3d\x29\x70\xde\x4e\xe8\x8c\x4f\xa9\x15\x50\x99\x9a\x9f\x0c\x33\x39\x3c\x99\x52\x6d\x98\x3a\x99\xdd\x8f\xc1\xcc\xef\x5d\x62\x27\xa1\xd9\xb1\xfc\xb7\x8b\x7f\xff\xfe\xf8\xe2\x2f\xdf\xbf\x59\xb4\xa8\x34\xed\x7f\x47\x24\x74\xa6\xf3\xcc\x05\x39\xa9\x78\x6d\xfc\x91\xcf\xd9\xaa\xfd\xbe\x2c\x6f\xd7\x6e\x1a\xe0\xd9\xf5\x5d\xc9\xc2\x59\xfe\xe7\xa7\xce\xa7\xab\x9b\x5f\x4a\x9c\xb2\x77\x75\xd3\xfe\xb8\xdc\xd2\xb9\xa0\x22\x56\x96\xe1\x27\x21\x1f\x45\x79\xf6\xba\x3a\xe9\x5c\x18\x3e\x65\x5e\x43\x74\xff\xec\xe1\x4c\xb7\x98\xf9\x55\xef\xc7\xb2\x90\xf3\xe1\xe2\x97\x5e\x67\x70\x7b\xfe\xd3\xd2\x99\xe0\x67\xa5\x91\xdd\x82\xa5\xff\x4c\x66\xf9\x54\xc4\x7f\x6f\x3f\xb6\xee\x65\xaf\xf3\xb1\x3a\xba\xab\x76\xaf\xbc\xec\x37\xe5\xc0\x9f\x37\xef\xaf\xae\x2e\x3a\x25\xa7\xd9\x9b\xf3\x76\xaf\xd3\xeb\x7e\x2a\xdd\x76\xe7\x77\x37\x88\x04\xb7\x6c\x9a\x7e\x04\x35\x13\xb5\xd3\x8a\xa7\xb9\x6f\x3e\xb3\xd6\x31\x6f\xbb\xa0\x5a\x3c\x28\xc7\x11\xe2\x0a\xfa\x5d\xc0\xe8\x70\x1c\x2c\x7e\x09\x8e\xb4\x96\xd7\x98\xf2\x36\x91\x66\x5e\xb7\x74\xa3\x97\xb1\xbc\x5e\x18\x02\xe2\x15\xa2\x8a\x49\xb3\x4c\x3e\x62\x68\xe3\x94\xdb\x2b\xcf\xc1\x5f\xd9\x57\x34\x49\x72\xa5\x98\x30\xd9\xbc\x55\xc3\x4e\xca\xdb\xc2\x12\xc5\xcc\x27\x99\x0b\xb3\x3d\xc9\x75\x2e\x7f\x1e\xfc\xdc\x2e\x93\x5c\xf7\x62\x85\xff\xa2\xf2\x4d\xcd\xe5\xe6\x5e\x39\xf5\x7f\x04\x65\xcc\xc9\x82\x30\x74\xb0\xc7\xf9\xb0\xdf\xa9\x9d\x87\x53\xf8\x04\x61\xe2\x81\x2b\x09\xb8\x98\xe4\x81\x2a\x4e\x87\x99\x93\x5f\xec\xe8\x4e\xe1\x7f\x37\x6b\x13\x4c\x6b\x15\xde\x72\x2b\x95\x39\x0f\xe1\x83\xdb\x29\xea\x75\xb1\x78\x8b\x51\x78\xf5\x3a\x78\x25\xf2\xce\x0f\xab\x47\xf5\xfd\x82\x69\xac\x2b\xb4\xa1\x22\x61\x67\x19\xd5\x7a\xdb\xb1\xa2\x6c\x7f\x54\xe6\x38\x37\x37\x77\xd7\xbd\xee\xfb\x15\x9b\x5e\xfd\x78\x31\xbc\x32\xc9\x72\x6f\x3d\x1e\x2a\x49\x53\x62\xf7\x46\x8e\xd1\x52\xed\x6e\xd5\x02\x9f\x14\xe3\x9c\x43\xc4\x49\x09\x1b\x35\x04\x93\x78\x25\x22\x36\x7f\x71\xb7\x10\x24\xb1\x2b\x41\x22\x7d\xc2\x9f\x7a\x30\x7c\x23\xa8\xb9\xd3\xea\x66\x19\x35\x23\xa9\xa6\x48\x42\xa5\x49\x63\xe3\xcb\x1b\xe5\xc2\x30\xa5\xf2\x99\xe1\x1e\x70\xb6\x7a\x4b\x41\x31\x52\x39\xfe\xc4\xb4\xa6\x63\xb6\x8b\x7f\xa4\xee\x66\xbe\xfd\x39\xfe\x27\xf8\x3f\xd6\xb9\x75\x4b\x23\xf4\xa1\x81\x9e\x9e\xae\xc4\x07\xca\xb3\x5c\xb1\x6b\x99\xf1\x64\x4b\x7f\xae\xd5\x04\x07\xdd\x4f\x56\x42\x6e\xf7\x3a\x17\x25\xf9\x00\x9e\xb5\x3f\xf4\x3a\x37\x03\x44\x31\x6d\xbf\xbf\xe8\x0c\x2e\xaf\xce\x3b\xb7\x83\xb3\xab\x4f\xd7\x17\x9d\x15\x6e\xd2\xc6\xc6\x17\xad\x0a\xd5\x57\x4f\x17\x7e\x81\x1d\x56\x39\x2a\x20\x5e\x19\x85\x28\x7a\xca\x33\xf0\xd1\x48\xf4\xd5\x50\x22\xac\x5a\x6e\x7f\xd6\x5e\xf5\xf1\x41\xa3\x2d\xd2\x35\xdf\x65\x19\xa1\xb9\x91\x53\x0a\x96\xc6\x6c\xde\x17\x74\x28\x95\x01\x05\x2c\x30\x6f\xa2\x72\x21\xb8\x18\x43\x63\x08\x46\x9c\x64\x8c\x0a\x92\xcf\xa2\x84\x07\x67\x2f\x1b\x71\x01\xb1\x48\x53\xaa\xee\x7d\xdc\x47\x88\x53\x0d\x87\x42\x13\xaa\xfb\x02\xb1\x41\x1c\x2b\x5c\x63\x85\x4f\xd7\x7a\xab\x71\x75\xa6\xf4\x9e\xd9\x55\x99\xe6\xc9\xc4\xaa\x70\x63\xc5\xb4\x76\x36\x95\x84\x0a\xf4\x8f\xb9\xd7\x1f\x79\x96\xf5\x85\x90\x76\x29\xbc\xe9\x26\x65\x33\x26\x52\x26\x12\x8e\x69\x0e\xe0\x5a\x0a\x26\xd6\xb1\xa2\xb3\x09\xd1\x12\x7c\x32\xb0\xec\xa0\x1c\xe2\x47\x3e\x30\xca\xa1\xa1\xc0\xe3\xd8\xf2\xa2\x72\xcb\x27\xae\xc0\x24\x8b\xab\x0c\x1f\x7b\xb3\x8b\x37\x37\xa2\x92\x3d\x9d\x65\xcc\x20\xa2\x30\x2c\x39\x6c\x86\x5d\xeb\xd2\x7e\xd8\x6d\xaa\xdb\x84\xbe\x28\xc6\x4c\xb5\x1b\x51\xab\xc6\xa2\xe3\x8e\x14\xf9\x91\x8a\x34\xb3\xad\x78\xdb\x5d\xf9\x2c\x42\xcc\x47\xdb\x52\x8d\x3f\x8d\xbb\x08\x53\x09\xcd\xf5\x46\xd2\xd4\xf2\xdc\x14\x54\xb9\x8f\x0b\x9f\x25\x90\xb7\x4b\x4c\x81\xd5\x9d\x59\x16\x49\x33\xe9\x56\x09\x5f\xcf\xb1\x86\x04\x81\xd1\x34\xa8\x77\x33\xc5\x45\xc2\x67\x34\xdb\x4a\xf6\xab\x44\x2b\xba\x28\xc0\xb7\x7c\x64\xc9\xe7\xdd\x82\xab\xc1\x30\x35\x85\x24\x2d\x37\xcc\xb0\x85\xab\xe4\x2a\xdc\x1d\x4b\xc8\xb4\x1c\x0e\xb3\xc5\xde\xa0\x1f\xb9\x69\xba\x95\x56\x5c\xef\x18\xc8\x40\xb3\xeb\xfa\x36\xeb\x16\x2c\x7a\xf8\xaf\x65\x5b\xfd\x89\xce\xec\x16\x23\x52\x32\xa1\xc5\x1c\x9d\xc0\xe4\x0a\x81\x78\x6f\x6c\xe4\x9e\x09\x71\xae\xeb\xeb\xb8\xc5\x12\x3a\x77\xfa\x62\x27\x25\x37\x55\x94\x16\xe7\x48\x72\x94\x1b\x7b\x9a\x28\x38\xba\xc8\x5b\xd6\x1a\xb7\x88\xc7\xab\x3e\x22\xed\xeb\xeb\xce\xe5\xf9\x11\x61\x26\x79\xe7\xe3\x3d\x9c\xfb\xbb\x2f\x8c\x74\xc2\xc5\x9c\x4c\xe4\x23\xb0\x32\xa6\xc6\xac\x34\x67\xef\x2b\x07\xb0\xa3\x31\xd7\x46\x39\x8f\xbd\x48\x63\xf8\x74\x3e\xad\xca\x8d\x48\x21\xb9\x99\xec\x42\x1a\x54\xeb\x7c\x6a\xe5\xda\x01\xa7\xd3\x81\x92\xd9\xaa\x33\x5c\x7b\xa4\x0a\xdb\xc5\xc0\x99\x8b\x06\x34\x49\xac\xdc\xbb\x76\x6b\xab\xf6\xf1\x1c\x96\x49\x93\x99\x3d\x50\x10\x28\xb4\x08\xa6\x1d\xdd\x52\xde\x90\x37\x9c\x23\xcb\xc8\x8a\x74\x45\x8f\x0a\x7f\xce\x66\x8a\x59\xe9\xb0\x6a\xd1\x0a\x0b\x7b\x53\x5e\x8e\x6f\x68\x71\x03\x3b\xdb\x6c\x59\x4b\xab\x76\x44\x66\x19\xb3\xec\x3a\xd7\x0c\x23\x12\x6e\x59\x92\x2b\x6e\xe6\x67\x98\x38\x5a\xb3\xaa\x67\x58\x2c\xc0\x9b\x8e\x22\xa8\xf2\x5d\x96\xb9\xae\x95\x65\x2d\x91\x27\x67\x71\x67\xc8\xdb\xea\x10\xe0\xd1\xeb\x5e\x29\x7a\x04\x41\x1d\x95\xea\x0e\x48\xc3\x10\x8d\x0b\x3c\xe7\xd7\x5c\x1a\xaa\xdf\xb5\xfa\xc2\x32\xd0\x7b\x36\x47\x53\xb9\x65\x51\xbf\xb7\xd7\xe6\xb1\x66\x42\x43\xe0\xd0\xef\xd1\x86\x65\x99\xac\x57\x5b\x51\x8a\xc4\xa2\x12\x65\x70\x7a\x08\xf6\x70\x8d\x3a\x0e\x59\x84\xd2\x14\x88\xf6\xfe\x19\x0e\x7f\xcc\x0c\xa4\x8b\x18\x6e\x40\xbc\x49\xb1\x6a\xc5\xc2\xd0\x57\x9a\x0f\x90\x2a\x94\x04\x93\x46\x9a\xef\x76\xde\xf4\x62\x1b\x75\x9b\x58\x7f\xb1\xdf\xba\xe8\xa9\x13\xaf\xe2\x25\x4a\x2e\x94\x82\xa0\x96\x5f\xdb\x9d\x1e\x22\x6f\xf1\x76\x5c\x26\x5a\x8f\xfc\x9e\xcf\x58\xca\x29\xc4\x52\xd9\x7f\x9d\xd8\x79\xfd\xdb\xd9\xcd\xd5\xe5\xa0\x88\x80\xfc\xcf\xbe\x68\x67\x5a\x12\x2b\xaa\x48\x65\x34\x11\x52\x84\xc0\xad\x99\x62\xfe\x3a\x70\x73\xb1\xab\x1a\x59\x81\xfa\xa2\x69\x04\xa9\x4c\x74\x8b\x3e\xea\x16\x9d\xd2\x7f\x48\x01\x26\xe5\x36\xfc\x79\x96\xc9\x3c\xfd\x4c\x4d\x32\x39\x01\x4b\xaf\x39\x61\x0f\x4c\x18\xb4\x28\xd9\xe5\x4a\x21\x13\x41\x43\xdc\xd7\xbf\xd9\x31\x17\xc1\x98\xda\x0a\x9d\x09\x9b\x19\xf2\xff\x2a\x36\x94\xd2\xd4\xb3\x28\x39\x1a\x69\xb6\x8a\x1d\x35\xc8\x53\xb7\x57\xe4\x2f\x7f\xfe\xfe\x07\x4b\x42\xdb\xac\x71\xf7\xf6\x6a\x60\xbf\xff\xb7\x73\xf7\xbd\x5e\x8b\xe4\xce\x31\xbb\x6a\xa7\xc0\xc8\x6d\x98\xf9\xa6\x36\xc7\xea\x2d\xc8\xf5\x2c\xa3\xf3\x05\xef\xc5\xaa\xdb\xf3\xd2\xf2\x83\x19\x4d\x58\x91\xdd\xe5\xdd\x80\x89\x9c\x4e\xc1\x6b\xec\x9d\x81\x29\x1f\x81\xfb\xd8\xd8\x2b\x80\x0c\x99\x79\x84\x60\x05\xff\x6b\x70\x08\x79\x6b\x85\x65\x1e\xc0\xa0\xfa\x76\xad\xd2\x1c\xec\x58\xfd\x37\x47\xa4\xff\x26\x65\x0f\x2c\x93\x33\x7b\x7e\xec\x0f\xcc\x24\x75\x57\x6d\x67\x4a\x79\x76\x29\x4d\xf0\x7f\xef\xb2\x2d\x8a\x25\x7c\xc6\x2d\x3d\x0f\x98\x6d\xf7\x49\x83\x57\x57\x99\x5d\x7d\xda\x38\x8c\x84\xd0\x34\xb5\xc7\x0a\x0a\x0b\xf8\x41\x16\x56\x28\x11\x2d\xc0\x7a\x6c\x33\x58\xe7\xf6\x4b\xc6\xf5\xe6\x67\x7b\xc1\x7b\xeb\x4d\xe8\xb8\x80\x82\x5f\x4a\xb5\xae\xb0\x44\x01\x58\xee\x95\xf0\x45\xfb\x42\x83\xce\x66\x45\xb6\xf5\xc6\x59\x5e\x99\x5b\xfb\xdd\xd2\xa1\xe9\x18\xe1\x20\x14\x03\x0a\x12\xb8\x0b\xe1\xaa\x46\x8d\xb1\x95\x23\x4e\x32\xa9\x73\xb5\xa6\x6d\xbf\x3c\xe8\x33\xf7\xe9\xb2\x71\x77\x62\x85\x25\xcf\x8c\xde\x48\x27\xaa\x59\xf8\x4a\x82\x1c\x1e\x6e\xe3\xa4\x40\xf7\xf6\x11\x29\xd2\x82\x68\x56\xc4\xb7\x89\x94\x14\xd2\x54\x5f\x84\x90\x5c\xaa\xc9\x23\xcb\xc0\xb0\x95\xc8\xe9\x0c\x24\x05\x37\x5c\xd7\x92\xbd\xe8\x0c\x35\xec\x88\xc8\xdc\xd8\xc6\x8e\xb0\x58\x95\xdb\x82\xe3\x21\x05\x98\x85\xa2\x04\x65\x5f\xdc\x69\x6f\x4b\x0f\xd9\xf1\x48\xeb\xc8\xc0\xb8\x20\x1f\x99\x81\x56\x00\xae\x24\x9e\x20\x16\xe5\xaa\x65\x41\xd5\xb5\xdf\xe1\x44\xb9\x99\x6c\xb0\xf3\x45\x24\xef\xfb\x4c\x0e\x97\xee\x7b\x9b\x4c\x51\x7b\x76\xbd\x78\xe3\x60\x61\x37\x89\x32\xa2\x56\xd1\x28\x53\xaa\x14\xb5\xb3\xe2\xf8\x97\xa3\x7f\x97\x93\x27\xc4\xde\x46\xf9\x62\x8b\xe3\x74\x16\xb5\x55\x63\x04\xbb\xcf\xe0\xf5\x58\x97\x70\xbc\xd3\x45\x8b\xda\x2a\x22\x28\x5b\xe2\x9e\x7a\x32\x70\x40\xcc\x84\x71\x45\xd6\x9a\x96\x3f\xbf\x03\x3c\xf3\xeb\x13\x4d\x41\xdb\x4d\x02\x20\x32\x91\xc0\x20\xec\xc0\x1c\xbc\x4a\xa9\x82\x5c\xab\x2f\x2a\x83\x70\x26\x5a\x4d\x80\xbc\xfc\x69\x28\xf1\xfe\x23\x32\xe2\x5f\x5c\xa3\x85\xeb\xc6\xbf\x1a\x19\x05\x1a\x4c\x85\x13\xba\x48\x76\x1b\xdc\x8f\xd7\xf0\xfd\x52\x5b\x98\xd4\xc6\x8a\x03\x56\xb0\x52\x2c\x91\xca\xb2\x44\xe8\x36\x38\x92\x56\xde\x8d\x86\x2a\xbb\x28\x74\x23\x01\xbc\x80\x1b\x4a\xa9\x61\xc7\x86\xaf\x0c\x9c\xb1\xea\x8a\x65\xb0\x53\xab\xce\x46\x79\x18\x05\x87\x1d\xb2\x31\x15\xde\xe9\xd0\x30\x5a\xcf\xda\x77\x38\xcc\x56\xb2\xa2\xe0\x55\x05\x39\xc2\x0e\xa8\x3c\x0e\x3d\x83\xe5\x5c\x3a\x0e\x67\x20\x7a\xae\x55\x33\x4b\x96\xed\x91\x06\x7b\x55\xc3\x60\x73\xa8\xfc\xfb\x62\x06\x9b\x51\x6d\x88\x1b\x53\xc3\x88\x63\x69\x76\x0f\x09\x64\xcb\x2a\x13\xc5\x8a\xc3\x26\xc2\x79\x3c\x44\xa2\x99\x31\xdc\x55\xd0\xc9\x35\x73\x71\xbf\x53\xa6\xc6\x5e\xe0\x43\x50\xf5\x70\xb4\x5d\x8a\xac\xe7\xa3\x31\x2f\x01\xf7\xd3\x62\xd3\x2d\xd2\x16\x0b\xd9\x0b\xde\xc6\x56\x5a\x2f\xe4\xda\x34\x7b\xa4\x73\x4d\x66\x0a\x83\x85\xd1\x27\xe5\x27\x0f\xb6\xe5\xf2\x47\xc1\x72\x60\xbc\x53\x10\xea\x61\xc6\x23\x6b\xd8\xac\xa8\x7c\xd6\xfa\xcc\x6e\x4d\xd9\xbf\xe2\x2f\xa9\x2b\xa6\x15\x54\xa0\x5a\x4e\xd7\x6c\xbb\x2c\x85\xaf\x39\x1c\x0c\x90\x2d\x9d\x76\xd1\x29\xfb\x5a\x9a\x04\x3e\xb0\xba\x5d\xd0\x21\xcb\x76\xf6\xb1\x6c\x65\x01\x81\xae\x1d\x42\x89\x55\xbf\x19\xfa\x8c\xa0\xb8\xa9\xaa\xb2\x36\x6f\x37\x54\xf9\x7a\x1e\xa4\x62\x9e\xa5\x9a\x00\x3b\x4c\xd4\x43\xee\x6c\xcf\xbf\x9b\xe0\x78\xe2\x8b\xa4\xc0\xe3\xa9\xbf\x45\xaa\xe6\x9b\x5d\xc6\x10\x01\xe7\xd4\x0e\x61\x1f\xc8\x39\x7b\x31\x06\x05\x92\x59\x13\x25\xb2\x3b\x22\x42\x0a\x46\xb8\x2e\x5e\x36\x65\x57\x79\x88\x8d\xb6\x62\x24\xaa\xe9\x8b\x35\x68\x9e\x59\x27\x6f\x07\x5d\x92\x8c\x38\xcb\x52\x4d\x04\xb3\x2a\x0d\x55\x73\xc8\x51\x44\x7e\xb6\x8e\x68\xb4\x2f\x61\xb5\xe6\xf6\x70\x52\xa4\x87\x61\x00\xd4\x3b\x2b\x88\x55\xc6\x45\x30\x87\xd3\xbd\xe4\x3e\x72\x01\xc2\x7d\x11\x94\x60\x20\x3f\xae\xad\x72\xd7\x22\xb0\x6d\xa6\xf8\x0a\x03\xde\x4d\xd8\xc3\x23\x2f\xca\x6a\xc4\x8c\xdb\x44\xf5\xf7\xd7\x56\xb1\x8e\xe5\x24\x3d\x9f\x4b\x8c\x45\x8e\xeb\x6a\xd3\x7a\xa2\xc8\x4a\x56\xc8\xe5\x4c\xc7\x01\x68\xbc\x00\x33\xd5\xfa\x2b\x65\x37\x39\x5f\x30\x5c\x61\x89\x9a\x42\xc7\x8e\x72\x06\x62\x4d\xc5\xe5\x17\x63\x89\x51\xaa\xc9\xef\x85\x34\xbf\x8f\x32\xb0\xbd\x36\x8c\x35\x8e\x9c\x65\xe2\xa8\x04\x6e\xc4\x7d\x3e\x99\x23\x12\x42\xa3\x3c\x86\x95\x2b\xbf\x6b\xda\x7f\xe1\xf3\x7b\x52\xe1\xad\xb3\x18\x0e\xd1\x04\xa7\x82\x00\xa7\x7b\x33\x01\x3c\x47\x75\x3d\x82\x64\xa0\x98\xcf\x69\x99\x4a\xc5\x2a\x20\xab\xc8\xbc\x43\xbc\x10\x82\x5b\xae\x4f\xa5\x35\xd6\x30\x04\x8e\x2c\x8e\x79\xc9\x0a\xb6\xdc\xfa\xb5\x8f\x40\xa0\x69\x39\x35\x70\x09\x05\xac\x48\xbc\xae\xd7\xc8\xb7\x09\xde\x69\x12\x49\x83\x1d\x3a\xae\x26\xd5\x94\x6e\xdc\xea\x8b\x0f\x52\xb9\xbb\x53\x3b\x24\x8f\x21\x4d\xee\x8f\x99\x48\x09\xcd\xcd\x04\xd3\x7e\x9d\xe9\x78\xee\x76\xd6\xca\x05\x40\x02\x21\xad\x94\xeb\x84\x2a\xc7\xf4\x47\xf4\x41\xfa\x51\xf4\x45\xd4\x08\x60\x85\x00\xbe\x19\xb8\xd2\x9b\x04\x08\x06\x78\x92\x4d\x6b\x51\x87\x34\xbc\x80\x33\xbc\xfc\xcc\xc4\xb1\xcd\x7d\xe8\x8f\xa5\x82\x69\xdd\x7f\x83\xa3\xae\xac\x50\xd7\x9b\xa3\xbc\x7a\xa3\xe3\x9a\x6d\xe1\xcd\x23\x17\x96\x87\x06\x19\x37\x0b\x2b\xa6\x7c\xef\x79\x67\x29\x09\x7a\x94\x2b\x08\xb0\xab\x6b\xf3\x6d\x32\xe1\x59\x61\xa2\x7e\x77\xe4\xce\x23\x36\x99\xb1\x07\x96\x21\x56\x46\xa2\xc0\x8f\x8b\x3e\xc5\xef\xc9\xff\x46\x04\x5e\xf2\x43\x5f\x7c\x04\xb6\x9a\x65\xf3\x23\xc2\x47\x45\xcb\xd4\x54\x9a\xb9\xaf\x1d\x80\xdd\x32\xe4\x2c\xa5\x81\xe0\x7e\x4f\xe8\x03\xeb\x0b\xdf\xcc\xff\x26\xf7\xe4\x0f\xe4\x87\x26\x3b\x8e\x77\xc7\x3e\xb1\x9a\x0f\x54\xec\xfb\x8a\x38\xc3\x91\x13\x1f\x81\x73\x78\x2b\x40\xc9\x04\x57\x13\x32\x1d\xb2\xf4\xb9\x78\x90\x8b\xce\xab\xf8\xe4\x52\xc5\x84\x19\x08\x99\xb2\x01\xab\xf1\x5c\x2d\x61\x14\xf6\x52\xbf\x94\x29\x5b\xe9\x77\x0a\x02\xf2\x67\xb0\x5c\xe8\x7c\x18\xb6\x03\x22\x37\x83\xce\x5d\x26\xb0\xfa\x01\x87\x2c\xda\x6d\x86\xbb\xad\xab\xec\xca\x49\x57\x47\xc0\xd1\xdd\x00\xea\xdd\x35\x19\x35\x3e\x48\xae\x7a\x0a\xab\x06\x62\xfb\xb2\x9d\xb9\xbb\x73\xa2\xfc\x60\x00\x16\x52\x7c\xcc\xad\xb4\xbd\xbe\x3b\x0e\x98\xe0\x36\x56\x6e\xcc\xc8\x5c\xcb\xcc\x5d\x2c\x85\x0f\x9c\x3f\x0e\x64\x57\xb8\x98\x86\x32\xaf\xca\xdc\x6e\x01\xb8\x8e\xc3\xf7\x9c\x78\x3d\xb7\x2c\x78\x8c\xa1\x61\x6c\xc2\x31\x97\xbf\x7d\x76\x41\xec\xa1\x90\x53\x86\xf8\xcb\x76\xd1\x72\x33\x91\x8a\xff\xa3\xd1\x1f\xdb\x2c\x61\x17\x7e\xb4\x22\xea\x07\xc7\x59\x96\xb5\x81\x46\x51\x32\x30\x25\x45\xa2\x4e\xc3\x21\xc3\x1c\x12\x56\x2d\x77\x1d\xe5\x19\xe2\xc4\x24\x52\xa5\x58\x0d\x40\x97\x62\x8c\xec\x7b\x54\x6b\x3e\x76\x81\x85\xbe\x41\xee\xf2\xfa\x1c\x12\x4d\x32\xa1\x62\xbc\x5c\x8e\xfc\x6b\xce\xf2\x3d\x85\x69\x39\x74\xb8\xaf\xe4\x8d\xa7\x63\x5d\xa4\x7d\xe0\xda\x58\x96\x5c\xac\xef\xaf\x76\xa6\xce\x1f\x4f\xf5\x7d\x61\x4f\x0b\xe9\x5d\xa8\x46\x57\xf5\xf9\x35\x6c\x2f\x37\xee\xf8\xed\xc1\xfa\xf2\x1c\xee\xfa\x45\xf9\xa8\x86\xff\x00\xfd\x39\x04\x96\x67\xb5\x6e\x04\x1e\x5e\x91\x3b\xf6\x6d\xe9\xd8\x40\x93\xf6\x83\x72\x23\x74\xcc\x75\xd1\xb7\x59\x4f\x1d\xb7\x65\x3b\xca\xc6\x24\x81\x7d\x0f\xc0\x8b\xb5\xb3\xf5\x36\xb2\x4a\x16\x01\xb3\x18\x31\xed\x73\x19\x9e\xd6\xd4\x52\xf6\x0b\x96\x63\xb6\x23\xb7\x60\x53\x2c\x7d\x34\xa2\x2d\x6e\xa7\x45\x45\xa8\x7e\x6c\xfe\xf1\xba\x43\x59\xea\x0d\x59\xd3\xb7\x01\x1a\xfd\xb2\x63\x7b\xe1\x82\x8d\xca\x5e\x01\x8c\xa0\x90\x91\x5f\x14\x1c\x04\xb9\x26\x46\x51\x88\x17\x85\x28\xbf\xcf\x28\xc5\x72\x8d\xfa\xa2\xc3\x20\x04\x75\xd4\x21\x9e\x01\xf3\x74\x00\x49\x66\x42\x85\x4b\x97\xa9\xf3\x40\x04\x14\xf2\x70\x12\x62\x1f\x44\x5d\x67\xd0\x91\x13\xdd\x6b\x9b\xf4\x0b\x1d\xc7\x71\x57\x62\x68\x9b\x4c\xc5\x5c\x43\x08\x36\xcd\x1a\x75\xc6\xa1\x94\x19\xa3\xa2\x49\xac\xae\x7d\xbc\x60\x2d\xe2\x71\xdc\xac\xd5\xfa\xac\x64\xa6\x72\x66\x75\x0a\x8a\x09\x43\xd1\xbc\x28\x14\x0b\x31\x01\x40\x0e\x15\x43\x3b\xd0\x74\x85\x3f\xe4\x28\x3e\xf9\x43\x96\x6d\x14\x68\x82\x1f\x2c\xa5\x22\x78\xa5\xa8\x47\xb1\x56\x12\x46\x1c\xff\x50\x9b\xb2\xb2\x6a\x60\x71\xa2\xcb\x52\xd3\x70\x39\x59\x64\xcb\x21\xe6\x66\x52\x1b\x8d\xbf\x6c\x80\x3e\x1d\x60\x1d\x89\xf5\x14\xa4\x47\x22\x1d\x58\x4e\x34\xd2\x75\x76\x55\xbb\x28\xfa\x81\xd3\xfd\xd7\xe7\xa9\xd5\xf8\xfb\xf5\xc6\xea\xfb\xf3\xb6\x86\x6d\xc7\xed\x30\x43\x06\x72\xe4\xf3\x14\xd6\x1f\x79\x15\x4c\x65\x03\xab\x84\x42\x2c\x06\x32\x53\x5c\x2a\x87\x59\xd2\xe8\x1b\x58\x75\xa9\xb7\x2b\xf1\x23\x80\x40\x39\x85\x7b\x47\x17\x08\x5e\xde\xfe\x17\x6e\xfd\xd2\xea\x40\x36\x22\x7c\x9c\x4a\xa6\x23\x41\x1b\x16\x16\xb9\x18\x1f\x31\x3b\xe8\xbe\xb0\x9a\x46\xac\x14\x60\x52\xa3\xcf\x71\xb4\x9d\x26\x4a\x6a\xed\x42\x42\xb0\x1d\xdd\x5a\x2a\x4f\xf4\x5c\xca\xd9\x3e\x9c\x7d\xcf\x17\x1d\xba\x58\xa0\x2c\x02\xcd\xaf\x97\x3f\x87\x2c\xa4\xd7\x35\x72\xff\x5d\x03\xc7\xfc\x31\x21\x8a\x51\xed\x2c\x20\x10\x5f\x55\x89\x2c\xd9\x40\x5a\x0c\x63\xc6\x38\xcb\xe3\x90\xd0\x1a\x91\x90\xc3\x68\xc0\xda\x40\x5c\x13\xae\x14\x03\x6c\x77\x44\x20\xe8\x56\xa8\x86\x17\x05\xf0\x8b\x15\x09\xca\x3e\xf6\x0c\xb7\xa5\xe6\x53\x7b\x9e\x01\x9c\x46\xc8\x63\x39\x03\xed\xb1\xfa\x16\x64\x23\xf3\x91\xa5\xc4\xb8\xfe\xbe\x15\xb1\x8f\xa1\x86\x0d\x13\xa6\xce\xdd\xe1\x1b\x01\xf7\x08\x00\x20\x4c\x98\xa3\xdc\xfe\x9b\xf6\xfb\xab\x9b\x5e\xe7\xbc\xff\xa6\xf0\x61\xfb\x78\x27\x7f\xb9\x87\x64\x49\x29\xfa\x22\xb8\xa2\x42\x71\x3a\xd8\x4b\x42\xd3\xb4\xc8\x0d\xc4\x28\xc8\x01\x9a\xd4\xd7\x3d\x15\x2b\xbd\x51\x8b\xcd\x7c\xe0\x5f\x58\x7a\xd3\x80\xfa\xb5\x97\x10\x81\xb5\x6c\xb5\xb5\x24\x9e\x0b\xbe\xe6\x1d\x51\x9e\xca\x9d\xfd\x6e\x7d\x0a\xc6\x93\x00\x7b\xe5\x8d\x7e\xda\x32\x5f\x42\x0d\xa1\xa1\x66\xe0\x08\x68\x40\x24\xf3\x23\x02\x39\x01\x96\x6a\xe7\xe4\x8f\x64\xca\x05\xc4\xef\x2e\x5b\xdb\xbb\xf2\x44\x36\x81\x5b\xed\x5e\xde\x95\xb1\xd0\x7f\xbc\xba\x2b\x83\x08\xb6\x7f\x59\x0e\x9c\x5a\x6e\x61\x99\x51\xa7\x98\x63\x14\x23\x25\x71\x29\xc2\xd2\xd4\x4d\x74\x11\x5f\x7f\x0d\x62\x2a\xa2\x5d\x40\x16\xf7\x47\xcc\x6e\x43\x54\x50\x61\x79\x67\xbb\xbb\x5f\x1d\x40\x1c\x28\x99\x6c\xb0\x58\x65\x62\x15\xd1\x2d\x16\x7e\x88\xa7\xd6\x73\xf0\xcc\x4a\x66\x20\xd9\xb3\x50\xe0\x26\x8a\x20\x6e\xc5\xd5\x26\xa8\x48\x83\x05\xd4\x5e\xd0\x52\xd8\xbd\xe9\xc3\xdb\x01\xed\xb9\x68\x4e\x8e\xf0\xe3\xb5\xc2\x8a\x6e\x62\x47\x9a\x6d\xab\x58\x4a\xd2\xbe\xee\xd6\xac\xf5\x45\x55\x0e\xff\xb6\x32\xb4\xb3\xa0\x12\xec\x3b\x39\x3b\x0a\x7d\x7a\x11\x79\xd9\x6e\xa6\xbb\xa5\x64\xa3\xe5\xe4\xba\x6c\x8e\x79\x52\xc9\xab\x36\xbe\x61\xfb\x48\x9d\x62\x02\x60\x9a\xaa\x97\xab\x36\x4e\x6f\x29\x5a\xf5\x39\x16\x1b\x88\xe5\xa4\xf8\xda\x1b\xf8\xb4\xf3\x71\xcc\xa8\x43\xab\x04\xd1\xca\x27\xb8\xd6\x41\x97\xb4\xfa\x22\xae\x5a\x8b\xc2\x90\xa5\x01\x9f\xf0\xcc\xc5\x98\x48\xcb\x2e\x14\x7a\xea\xc3\x3d\x77\x14\xa7\xba\x54\x43\x35\xcd\x84\xcc\x65\xae\x42\x8f\x0b\xfd\x38\xea\xd3\x13\xea\xa3\x79\xbc\x02\xe1\x7c\xcd\x71\xe2\x3a\xb4\x17\xe5\x81\xba\x8e\xd9\x03\x13\xe4\x71\xc2\x44\xe4\x7a\xec\x8b\x28\x88\xd2\xea\x1a\xe2\x3b\x13\x42\xa5\x78\x36\x07\xef\x23\xa1\xc1\xcf\x5a\x58\x52\x35\xe5\xae\xe5\xe5\x04\xbc\x87\x6c\x18\x5d\xc1\x4a\xdd\x80\xf8\xe0\xcb\x26\xe3\xa0\x43\x55\xb6\x34\x10\x9b\x2a\x31\x62\xbf\x96\x64\xd9\x97\x19\x4b\xb6\x49\x61\xb8\xf6\x85\x7c\x96\x19\x2b\xcb\x20\x60\x60\x88\x73\x5b\x67\xa4\x37\x9d\x56\x47\xbb\x62\x9c\x1b\x25\x12\xd9\x81\xfe\xec\x92\xbd\x37\x1c\xa7\x4f\x25\x1a\x29\x39\x5d\x6f\x88\xcf\x13\x3c\xdf\x5b\x08\x43\x2f\x59\xff\x5e\x48\xd4\xfc\xea\x51\x36\x85\xcb\xaf\xe2\x7a\x3f\xe3\xbd\x18\x32\x63\x00\xcb\xc2\x03\x8b\x79\x9f\xa8\x8b\x54\x8f\xfb\x8c\xef\xac\xe0\x1d\xf4\x51\x64\x95\x53\x50\xf2\x3b\x0e\x19\x71\x62\x2e\x46\x8e\xd7\x87\xbc\xc3\xf5\x59\xe7\xf0\x88\x42\x27\x5c\xe2\x9f\x5d\x3c\x6d\xe8\x34\x20\x0b\x54\xa1\x25\x2a\xcb\xb5\x82\x1b\xed\x2b\x84\xf9\x09\xc2\xdc\xeb\x8c\x18\xa5\xd0\x7b\x17\x63\xb4\x9f\xfc\xd6\xca\x0d\xbd\x74\x60\xa5\x04\xd7\x78\x40\x0e\x60\x3c\x4e\xea\x5c\xdc\xca\xd2\xcd\x87\x95\x07\xbc\x5f\x65\x4b\xf3\x07\x52\x27\x53\x95\xcc\x04\x12\xdf\xf1\x60\x3d\x9b\xd2\x79\x14\xfb\xe8\xd0\xb3\xe0\x72\xe6\x22\xfc\xab\xcc\x6a\x3d\x31\xc7\x24\x5a\x17\x7f\xd4\x8a\x40\xab\xc1\xac\x97\xc5\xf7\x35\x56\x53\xc1\x51\xa2\x37\x03\xf1\xb3\xbb\x97\x08\x79\x0d\x71\x7d\x73\x99\x93\x47\xae\xad\xea\xd7\x17\x60\xee\x0f\x38\xdb\x46\x3a\x6c\xec\x23\x78\x0b\xa2\x7d\x75\x3e\x9c\x72\xab\x28\x17\x93\xbc\x03\x8e\x70\xe3\x63\x3f\xf1\x1c\xdb\x0f\xe0\xda\xf6\x51\xa5\x75\xf9\x1b\x2b\xce\xc7\x16\xf6\x8d\xa2\x91\x5d\x03\x47\x23\x6f\xe4\xd3\x86\x8e\x46\x62\x76\xac\xd6\xd4\x1e\xaf\x43\xec\x68\xfd\xa1\x2c\xe7\x4f\x43\x92\x3b\xd7\xa6\x72\x99\x34\x67\x4d\x17\x5b\xb0\x8f\xc0\xd1\x26\xf4\x96\x65\xd1\x44\xfe\x93\x7a\x69\xe7\x36\x94\x90\xa9\x15\xc1\xae\x1b\xe5\x9b\x97\x96\xbd\x16\x55\xcb\xda\xda\xc7\xbb\x89\xba\x55\x24\x60\xc4\xa4\x10\x05\x18\x95\x13\x17\x58\x95\x75\x0b\x69\x20\xb8\x22\x01\x10\xca\x85\xc8\xa6\xbe\xa8\x97\x1b\x96\xd3\xd8\xae\x71\x12\x7b\xcd\x72\x8b\xac\x45\x7e\x16\xce\x22\xf2\x39\x04\x86\xa2\x32\x1a\xea\x16\xb3\xca\xb9\xf2\x86\xf5\x06\x2d\x00\xc4\x85\x6d\x42\xec\x6a\x4e\xe5\x9a\x51\x0c\x2b\xcf\x85\xbb\x32\x9f\x46\x83\xda\x31\xdc\x03\x12\xbd\xf7\x9f\x9e\x0e\xd6\xe9\x23\x70\x7d\x38\xbf\x28\xc5\x72\x14\x01\x17\x64\xad\x95\x5b\x03\xfc\xad\x81\x87\xc1\xc3\x52\x25\x21\x38\x3c\x32\x0b\x55\x5b\x2a\xdc\x2d\x88\x3b\xb9\x48\x99\x12\x8c\x9a\xc9\xf3\x85\x0f\x9c\xed\x6a\x32\x7c\xb6\x50\x82\xb3\xbd\xc0\x4f\x56\xc2\x0a\x36\x8c\x28\xd8\xc0\xcd\x5d\x00\xf4\x2d\x28\x51\x75\x28\xbd\x45\x16\x83\xd3\xb3\xca\x18\x88\x4f\x11\x19\x51\xaf\xd8\x3c\x4d\x30\x43\x8d\x41\x63\x21\x8c\xc1\x9e\xcd\x18\xd6\x70\xc5\x92\xbc\xde\xa0\x86\x98\xcd\xd0\x47\x67\x36\x1a\x58\xce\x3e\x40\x40\xa3\x0d\x76\xf3\x86\x3e\x5e\xc1\xf7\x50\x09\x1f\xbf\x5e\x5f\x70\x58\xa6\x6c\x06\x4b\x25\xc0\x50\x97\x80\x96\x90\xeb\xaf\xb8\xfd\xb7\xaf\xb9\xe4\xf5\xb6\xd8\x1f\xe8\x7e\x71\x3f\x34\x54\xa1\x58\x51\x59\x29\xd6\x21\xc5\xbc\x6a\x82\xa1\x2a\xcd\x98\x06\xed\x00\xd5\xc2\x8a\x02\xb0\x4c\x3d\xed\x8b\x1f\xe5\x23\x7b\x60\xea\x88\x50\x43\xa6\xd2\x0a\x7d\x91\x57\x0c\x62\xfa\x4b\x80\x03\xe8\xfd\xa0\xe4\x92\x4e\x59\xda\x01\xd1\x21\x8a\xe2\x75\x4a\xb2\x33\x40\xd7\x25\x75\x42\xa2\xa2\x2b\x37\xeb\x06\xda\x17\x58\xb0\x09\xfd\xbb\x40\x8d\xdc\x4f\x0c\x58\xe5\xef\x83\x79\xfc\xf7\x2d\xd2\xb3\x32\x0e\xd7\xe5\xf1\x46\xc9\x21\x4d\x63\xeb\x8b\xb1\x92\xf9\x2c\x28\x31\x72\x08\xda\x13\x9a\xc9\x6b\xcc\xe3\x30\x18\x6f\x1b\x4f\x68\x6a\x25\xa8\xe5\x84\x53\x52\xb3\x5f\x98\xd5\xa8\x1c\x69\x1d\x13\x90\x65\x5e\xc1\xb5\xec\xc2\x87\x80\x8c\x9a\x41\x60\xf6\x67\x66\x5f\x80\xde\xd5\x20\xbf\x07\xeb\x46\x29\xec\xae\xe1\x56\xd9\xc0\x22\xe4\xad\x27\xf5\xf1\xa2\x45\xb7\xce\xaf\xeb\x6b\x22\xd4\x15\x27\x6a\xd8\xfb\xf5\x1d\xe0\x95\x51\x5e\xe7\x6a\x26\x21\xe1\x22\x9b\xfb\x20\x55\x97\x44\x32\x93\xb3\x1c\x1d\xd0\x3c\xf6\x47\xd6\x0e\x88\x6b\xf3\x89\x9a\x64\x62\x45\xc7\x22\x99\x62\x4f\x8e\xf9\x82\x91\x3e\xad\xaa\x5a\x33\x83\xb3\xb8\xf7\x06\x33\xcc\xda\x56\x08\x4c\xad\x8e\x03\x1c\x68\x96\x91\xa9\xed\xb5\x84\x2d\x1b\xa1\xc1\xd5\xae\x75\x09\x4b\x6d\xef\x3e\xf9\x1d\x54\x09\x28\xdb\xc8\x05\x89\x0a\x37\x3b\x67\x43\xed\x91\xce\x15\xdf\x4a\x63\x70\xc6\x2a\x00\x79\x2d\x74\xcf\x29\x9d\x11\x6e\xf9\xb6\xbd\x79\xd4\x98\x1d\x91\x47\x7b\xe2\x4c\xae\x2c\x6f\xce\x15\xf7\x27\x0c\x14\xc6\x25\xdb\x57\xd6\xd8\x4e\x50\xda\xc0\xb8\xc8\x84\x46\x30\x82\xae\x74\x5e\x62\x72\x1a\x5c\xfc\xb0\xc3\x19\x17\xf7\xb6\x33\x84\x37\xf1\x8e\x01\x65\xf9\x9b\x54\x3e\xbd\xa0\xb4\xa7\x2b\x29\x6f\x87\x5d\x6e\x06\x8f\x5e\x75\x14\xb8\x18\x47\x89\x51\xf5\xfa\xf2\x3a\x30\x25\xb5\x5f\xae\x87\xb2\x52\xfb\xa9\x97\x27\xb6\xf9\x76\x49\x2e\xc9\xd6\xc8\xed\xa5\xd8\x29\x17\x52\xe2\x24\x92\x38\x65\xcd\x69\x5d\x90\x70\xca\xb1\x0c\xb3\x93\x50\xfe\x33\xfc\x85\xe0\x70\xb8\x34\xff\x49\xa4\xea\x0b\xfc\xfd\x28\xe0\xc8\xd8\x17\x8a\x9c\xcf\x06\x94\x84\x40\x4f\x1e\x87\x7c\x3b\xb9\xb2\xd7\xbe\xfd\x69\x70\xd3\xb9\xbd\xba\xbb\x39\x2b\x09\x97\x67\x17\x77\xb7\xbd\xce\x4d\xed\x33\xac\x7e\xd2\xbd\xba\x1c\xfc\xf5\xae\x73\xd7\xf0\xc8\x37\x70\xd1\x7e\xdf\x29\x15\x47\xfd\xeb\x5d\xfb\xa2\xdb\xfb\x65\x70\xf5\x61\x70\xdb\xb9\xf9\xb9\x7b\xd6\x19\xdc\x5e\x77\xce\xba\x1f\xba\x67\x58\x56\x2d\x7a\xf7\xfa\xe2\xee\x63\xf7\x72\xe0\x43\x62\x96\xca\xba\xf5\x53\x69\xc2\xe0\x8f\x4a\x05\x02\x7f\x29\x50\x71\xfc\xdd\x3c\x9c\xbb\x9d\xe6\xff\x00\x73\x89\x2b\x9c\x7a\x7c\xe4\xff\x42\xfc\xe5\x63\xcb\x11\xbc\xc1\xac\x38\x4c\x7d\x11\x2c\x9a\x81\xfd\x1b\x3a\xd6\xbe\x22\x53\x69\xb4\xa7\xa4\x3d\x73\x35\xc7\x65\xb9\x53\x28\xe7\x14\x46\xea\x0d\xd9\x40\x22\x50\xf4\x4c\xbb\x0a\xdc\x95\xdd\x2a\x37\xe8\xe6\x04\x43\x70\x06\xbd\x94\x14\x90\xfc\x0b\xa8\xed\xae\xd1\xca\x36\x9f\x12\xcf\xb0\x6c\xb3\x76\x5c\x90\x86\x39\x17\x74\xba\x50\x77\x0a\x33\x11\x5d\x8e\xe2\x94\x09\x53\x6d\xb1\x44\x1d\xe5\x96\x27\x8c\xfc\xf4\x97\x62\x50\x60\x86\x71\x66\x8d\x7c\x01\x51\xd1\x3d\x50\x39\xae\xea\x2a\xda\x2a\xf5\xe4\x15\x9f\x9a\x42\xa1\x10\xa5\x92\x8b\x28\x19\xa8\x14\xc8\xe5\xaa\x2f\x90\x63\x52\x21\xd0\x53\x72\xcb\x32\x28\xce\x1a\x84\x1a\xbb\x8b\x33\xa8\x31\x5c\x05\x62\x1f\xba\x9a\xc3\x4e\x6a\x40\xb8\x1a\x58\x47\xa8\x71\xd7\x74\xe8\xcb\x3c\x7b\xa7\x64\x56\x7d\x3f\xf0\x7b\x3e\xd8\xea\x12\xe9\x51\x7d\x5f\x53\x08\xa1\x96\x2f\xbb\x0d\xdd\xb1\xc7\xe6\xea\x0b\xb5\x9d\x86\x3d\x1b\x00\x45\x6e\xd7\x67\x63\x26\xf1\x8a\x2e\xfd\x8c\xb3\x0a\x30\xdb\xda\xfd\x95\x80\xdd\x9e\xde\xb6\x53\x7f\x8b\x03\xed\x0e\x7c\x42\xcd\x26\xeb\x56\xae\xb7\xbd\x89\xf7\x06\xe0\x2c\x78\x12\xd5\x2a\x87\x53\x1f\xc0\xf2\x3c\x7a\x33\x56\x7a\x74\x86\x25\x3a\x94\x0f\xa5\x14\xf2\x29\x16\x91\xab\x95\xb1\x23\x4d\x7e\x97\x33\x14\x88\x79\xfd\x22\x98\x76\xe9\x3d\xf9\x42\xb9\xc9\xda\x65\x5f\x57\x53\xaf\x4e\x66\x55\x1c\xe5\x16\xce\x98\xa8\xf5\xe0\x8d\x59\x47\xb8\x3e\x77\x15\x10\x74\x09\x44\x19\xb1\xfa\x41\x05\x8f\xcd\x29\x47\x45\xd4\x89\xab\x57\xed\xc5\xa1\x13\x2f\x21\x91\x13\xb4\xf1\x9c\x44\x57\xf7\x7c\x66\xef\xec\xe9\xd0\xa5\x5c\x2c\xdf\xe8\x68\x6d\x76\xd8\xf2\xa7\x03\x0f\x0c\xd3\xfa\x6a\xd8\x81\x75\x23\x78\xb5\xd0\x81\x18\x92\x1f\x68\xc3\x4e\xd7\xaf\xf6\x1f\xfc\x8c\xfe\x80\x24\x95\x37\xe4\x6f\x45\xad\x85\xfc\x7a\x72\x0c\x95\x6e\x5c\xb2\x88\xb3\xd4\x6b\x72\x4c\x32\x7e\xcf\xc8\x77\xe0\xde\x6e\x5f\x77\xbf\x3b\x22\xdf\xc5\x21\xb4\xdf\x6d\xc0\xfe\x0a\x54\x50\x37\x6e\x87\x21\x08\x92\x6a\x29\x3a\x0b\x52\x02\xe2\x61\xb6\xa3\x02\x36\x90\x9b\x65\x98\x42\xa4\x3b\x08\xc9\x09\x61\x1f\xce\x0e\xbb\x8a\x37\x16\x47\x66\x67\x34\x36\xdb\xde\x62\x80\xff\x9e\x43\x11\x96\x33\xc2\x15\x29\x03\xed\x50\xec\xa2\xc0\xaf\xd3\x0d\xc4\x7b\x08\xc7\xa9\x9b\x55\x49\x4f\xf6\x8b\x59\xbb\x29\xab\x08\xef\xb5\x91\xdb\x1a\x81\x2f\xed\xba\x15\x71\x81\x4b\x0d\xb2\xe4\x81\xca\x9e\x96\xca\xf6\x11\xf3\x55\x1e\xdc\xe6\xb7\xd9\x19\x0a\x44\x51\x33\x3e\x61\xda\x4a\xb8\x9e\x4f\x97\x61\xfe\x56\x03\xdb\x6e\xe8\x4b\x89\xd6\x64\xb5\x33\xe5\x16\x9d\x70\xe8\xd4\x58\x1c\x6b\x75\xa8\x6d\xe3\x80\x87\x24\xc7\xa8\x6c\xc3\xa7\xec\x88\x40\xc1\xa6\xc2\x71\xe8\xce\x2b\x90\x1b\x5c\x55\xae\xb2\x03\x76\xa2\x92\x09\x7f\xa8\x0f\x3d\x5f\xba\xc1\x3b\xb8\x5c\x2f\xdb\x9f\x3a\xe7\x83\xce\x65\xaf\xdb\xfb\x65\xb0\xe8\x7d\x2d\x3f\xbe\x39\xfb\xb1\xfb\x73\xe7\x3c\x7e\xe1\xf6\x97\xdb\x5e\xe7\xd3\xe0\x63\xe7\xb2\x73\xd3\xee\x75\xce\x97\x1a\xaf\x96\x75\x56\x87\xea\xea\x62\xe3\x64\x81\xd1\x9a\x7a\x04\x48\x8f\x73\x82\x96\x1f\xc8\x20\xe4\x46\x93\x07\xae\xb9\xcb\x32\x72\xc2\xde\x5d\xd7\x1b\xa3\x6a\x7a\x3f\x8d\xc2\x8b\x8f\x10\xfc\xa3\xe8\x84\x3b\x6b\x77\x2c\x08\x3a\x47\xab\x48\x31\x66\x87\x44\x75\xb3\x5a\x35\x9d\xb8\x05\x3b\x25\x6d\xb7\xb5\x75\xed\x0b\x49\xac\x18\xca\x14\x8e\x1e\xbd\xb0\x61\xe8\xe4\x98\x54\xd7\xf8\x94\x20\x38\x5b\x04\x33\x1b\x1a\x04\xe1\x89\x2a\x26\xbe\x33\x84\x7d\x99\x65\x3c\xe1\x26\x82\xbe\x95\x8a\x4c\xa9\xa0\x63\xaf\x7e\xe4\x9a\xa9\x15\xdc\x63\x6f\x6e\xd9\x7d\x68\x91\x4d\xa1\x7d\xb1\xa6\xe4\xc8\x25\x20\xcf\x19\xe9\x72\x3a\x9e\x4c\x07\x6d\x70\xef\x2c\xa0\x73\xad\x3b\xa4\x3d\xa9\xaf\x2b\x82\x09\x5d\x30\xb1\xf3\xeb\x52\xed\xae\xbb\x47\xbc\xb8\x5e\x86\x87\xb8\x86\x0e\xbf\xb2\x8b\xb8\x04\x6f\xb9\xb7\x22\x54\x83\xd5\x3e\xc4\x5a\x4a\xd9\x63\x61\xa8\x22\x7f\x7d\xa1\x24\x94\x57\x3b\x2f\x9b\xd1\x7e\x37\xab\xbf\x53\x5a\xc4\xd5\xb5\x77\xa0\x42\x1f\xd5\x0d\x85\x77\x00\x02\x2b\x7d\x29\xe5\x77\x16\xb3\xcc\xca\x83\xfb\xca\xb5\x77\x2a\x83\x79\x39\x05\x78\x56\xae\xdb\xcb\x4d\x23\xac\x19\xe8\x1a\x85\x77\x42\x94\x3b\x00\xed\x6e\xc6\xf2\x21\xb3\x90\xa7\x19\x70\x24\xef\x96\xb3\x87\xaa\xc6\x74\x19\x2b\x5a\x54\xdf\xef\xdc\x5d\x8f\xea\xfb\x86\xae\x56\x5d\x14\x67\x25\x43\x77\x65\xd9\x5c\x96\x9b\x43\x8c\x88\x4b\x25\x36\xf3\x5f\xa8\x87\xbb\x17\xd1\x04\x9a\xa8\x49\x38\x58\xcf\x54\x87\x28\x95\xdd\xf3\x82\x23\x05\x5c\xf7\xc8\xed\x6a\x14\x4d\x00\xce\x16\x0b\xb5\x3a\x57\x46\x93\x83\xc5\x4e\x6d\xbd\xed\x81\x57\x17\xd7\x65\x45\xa8\x98\x5b\xed\x02\x96\xb7\x08\x43\x91\x49\x92\x2b\xb5\x59\x0e\x6c\x49\x08\x10\x29\x80\x10\x45\xb5\x95\x50\x2e\xad\xee\x39\xf6\x39\xa1\xba\xda\xe5\xca\x2d\xdf\x22\x75\xae\xd4\xcc\x47\x06\x81\xb3\x7b\xa9\x78\xb1\x41\x26\x03\x0c\xe4\x4e\x65\x2b\xcb\x47\xde\x22\x24\x70\xae\xb2\xc2\x1c\x41\xb1\x78\x7b\x14\x95\x04\x09\x46\xa5\x15\xc5\xc1\x34\xb0\x9c\xcd\x0b\x5e\x3e\xe5\x50\xdd\x68\x1a\xc6\x6a\xc5\xb4\xbd\x25\x89\x34\x02\x56\x47\xbd\xa0\xa5\x06\xf4\xf5\xb2\x44\x08\xb2\xfb\x1c\x21\x9d\x41\xe9\xa3\xb1\xe8\xaa\xf9\x3f\xec\xcd\xaa\x98\x9e\xc8\xac\x89\xd7\x43\x37\x1b\xa3\x04\x6c\x37\x1b\x0f\x12\xb0\xef\xe9\xac\x66\x00\x2e\x3c\x50\x1b\x95\x27\x80\xf8\x62\xb9\x61\xfd\xa9\x73\x18\x66\x70\x85\x3a\xf7\xa7\x2e\x25\x30\x7b\xa4\x03\x08\x1a\xa8\x15\xef\x9a\xcf\xf6\xae\x56\xd5\x32\xf2\xfd\x93\x19\x57\x4b\xb7\x6a\x69\x02\x87\x3c\xd9\x6d\x4d\xa6\x0e\xd6\x2e\x50\x20\xa4\xb1\x1b\xc5\x19\xe0\xab\x64\x21\x29\xb3\x7c\x0b\x39\xe3\xc9\x4a\xc2\xb2\x22\xcf\xf9\x8e\x86\x54\x3b\x9c\xf9\x00\x62\xe9\x77\xf1\x6c\x96\x66\x80\x76\x24\x68\x93\xa5\xae\xd8\x2a\x42\xe4\xb8\xd9\x07\x1b\x1a\xd6\x76\xe8\x8b\x1b\x3b\x0a\xfc\x02\x4c\x69\x28\xc0\x04\x00\x75\x56\x40\x8c\x8e\x08\x75\x5f\xc1\xb2\x35\xd5\xef\xd2\x83\xa8\x6c\x44\xd3\xc4\xb6\x81\xef\x0d\x42\xd6\x7b\x7c\x4a\x46\x19\x1d\xfb\x14\x3b\x28\x46\x32\x2a\x84\x70\x2b\x49\x60\x75\x0f\xfb\x4f\xed\x18\x1c\x6f\x88\xdb\xd5\x33\x96\xa0\x38\xbc\xa5\xdc\x07\xbb\xc0\xd3\x60\xa0\x84\x7f\x8a\xfa\x52\x0d\x0e\xbe\x71\x4a\x67\x10\xae\x86\x94\x2e\x47\x21\xa8\xae\xe7\x62\xd6\x5a\x30\xf2\xff\xfb\x5f\x7f\x6b\xf1\x74\x4d\x14\xb4\xc2\x4f\x50\xa4\x03\x47\x01\x22\x51\x01\x0a\x0a\xec\x78\x69\xbd\xc5\x7d\x95\xf7\x07\x0d\xfd\xc9\x78\xe7\x92\x22\xbe\x31\xef\x5c\xcf\x0f\x8a\x43\xc5\x48\x67\x7b\x21\xe5\x9a\x29\x34\xd1\x87\x04\xbe\x1a\xc0\xeb\xc6\xb0\x05\x36\xa5\x7c\xa3\x40\x28\xfb\x7e\x69\xd9\xeb\xa9\x0d\x7d\x21\xe4\xed\x03\xcd\xb8\x55\x2c\x5b\x3e\x5f\xfb\x1d\xf9\xdf\x00\x60\xfd\x9f\x0d\xb6\x19\x3a\x66\x6a\x90\xe6\xa5\x18\xa0\x55\x83\xba\xb6\x1f\x9d\xe7\x66\x5e\x9f\xf7\x5e\x3a\x46\x19\x4d\xee\x37\xc1\x02\xb0\xef\x37\x34\xbb\x9a\xc3\x47\x4e\xb1\xb2\xa0\xd1\x90\x69\xcf\x2a\x99\xf6\x2e\x64\x22\xee\x1f\x99\x9d\x00\x7c\xf3\x48\x14\x72\xdc\x10\x70\x0c\x5b\xe4\x03\x82\xd8\x81\x48\x86\x5d\x24\x32\xcf\xd2\xbe\x60\x5f\x66\x52\xb3\x52\xfc\x69\x0d\xf0\x98\x0b\xa7\x76\x3d\xd5\xdf\x34\x15\x08\xf9\x9d\x24\x98\xaf\x0e\x8b\xb0\xb8\xa7\x8b\x53\xae\x27\xb2\x9d\x2e\xd7\x84\xcf\xb8\x25\x8f\x41\xed\x29\x7c\xb6\x2a\x26\x67\x56\x99\x15\x26\x9b\x1f\x91\x30\xc9\x0a\x59\x64\xec\x81\x29\x3a\xb6\x62\x0e\xe5\x59\x0c\x32\x57\x56\x9d\xd7\xf3\x06\x96\xa3\x10\x77\x0e\x98\xad\x73\xd1\x6c\x20\x9e\xb4\x63\x60\xbc\x39\x33\x84\x7d\x31\x4c\xa0\x73\xab\xe7\x63\x7f\xa3\xf8\x93\xa6\x4a\x54\x18\x95\xd9\x7c\x3b\x3f\xf9\x3e\xb6\x7d\x02\x84\x0f\x6e\x4e\xb5\xbb\x24\x5c\x09\x81\x09\x15\xa9\x8b\x60\xd7\xa1\xd0\x1a\xce\x4e\x68\xc3\x68\x10\x0e\x7c\x1c\x76\x84\x57\x84\x6d\x22\x0c\x39\xdc\x45\x5e\xf0\xb5\x22\x1b\xb8\x22\xa4\xb2\xf2\x4b\x2e\x0c\xcf\xac\x18\xe6\xc6\x60\xd5\xa2\x5c\x84\xec\x68\x88\x96\x6a\x58\x41\xc8\xa9\x16\xe3\x81\x5b\x49\x1f\x8c\xbd\x1e\xb7\x2e\xd3\xd4\x27\x6c\x0a\x7f\x7c\xef\x1b\x5a\x6e\x63\xc2\x2c\x04\x3b\xfd\x10\x06\x0e\x41\xe7\x42\xfa\xc9\x04\x28\xbb\xb0\xd7\xa5\xba\x16\x30\xd1\x4d\x54\x00\x10\xb2\x16\xd3\x90\x0a\xbe\xae\x89\x86\xe0\x75\x0c\xae\x85\xb8\x31\xd3\x10\xbb\xae\x1b\x62\xd6\x01\xd8\xd4\xcb\x5a\x0e\xff\x34\x40\xf1\x57\xc2\xdf\xa9\xef\xce\x85\xb8\xd1\x2c\x1b\xd2\xe4\x3e\x60\x4d\x06\x9d\x4a\x2a\x8f\xda\x65\xe5\x3f\x00\xc8\x45\xe2\xb2\x03\x4d\x40\x40\x29\xca\x4c\xa7\x2e\xd1\xd3\x0d\xbb\xe8\xdc\x55\x03\x11\x58\x9f\x02\xb4\x2f\x1c\x3d\x86\xd0\xa5\x6c\x96\xc9\xf9\xb4\xe1\x06\xaa\x46\x32\xef\xe2\xd5\x6a\x0a\xa4\xde\xeb\xe5\x53\x61\x7a\x1b\x5f\x3f\x0b\x31\xae\x7b\x48\x35\x5e\xc7\x6b\xb7\x69\x4c\x68\xf5\x5c\x71\x3d\xcb\x68\xa9\xaa\x6f\xb5\x07\x0c\xfc\x7c\xda\xd5\xc7\xcc\xa0\xd5\xb6\x8a\xf5\x43\x87\x6a\x3f\x7f\x92\xda\x29\xfe\xee\x75\x45\x54\x80\x0b\x39\x7b\x0c\xcb\x5a\xd0\x4c\x0b\x63\xb8\x5b\x33\x25\xed\xdd\x2c\xfb\xc2\xd0\xb1\x8f\xad\x75\x52\x9d\x7c\x14\x4c\xe9\x09\x9f\x95\xf0\xaf\x77\x0e\x56\x72\x84\xe9\xfe\x83\xd1\x3d\x1b\xb0\x40\x39\x3b\xc6\x3a\x98\x96\x40\xf4\x8c\x26\x85\x91\x26\xc9\xa8\xd6\x7c\x34\x27\x29\x1f\x81\x87\xde\x14\xa1\x23\x10\xd9\x1b\xb0\x71\xcb\x18\xca\xb5\xb6\x91\x52\x86\xd8\x7e\xb2\x75\x76\x0f\x3b\x77\xbe\x18\x1f\x03\xcd\xd3\x38\x43\x1f\x6a\xff\x2c\x64\x34\xae\x59\x9e\x68\xd7\x68\x74\x37\x32\x17\x93\xbd\xbf\x81\xf9\xcc\xbb\xed\xd2\x7e\x96\x66\xc8\xae\xe4\x9d\xd5\xbd\x3f\x67\x19\xdb\x4b\xb0\xd0\x53\x10\xc2\xd2\xb5\x2e\x60\xbe\x9e\x6d\xff\x77\x1b\xcf\x16\xe1\x54\x0d\x39\xb5\x7b\xd8\xef\xaf\x1c\x94\xd3\x30\xba\x8f\x6c\x1d\x4f\xe1\x4a\x5a\xdc\xea\x5c\x35\x31\xc7\x1d\x16\x7b\x6f\x91\x78\x4f\x3c\xa1\xa6\xbd\xbe\x65\x46\x7b\x43\x48\x44\xe9\x28\x64\xbb\x73\x7a\xec\x93\x70\x8a\x94\x96\x0d\x36\xfc\x85\xc4\x88\xb9\xd1\xdd\x38\x55\xef\xe9\xd8\xe1\xea\xed\xda\x84\xde\x8a\xf1\x6e\xe1\x5d\x77\x6d\xac\xbd\x03\x8d\x2d\xec\x43\x7e\x78\x62\xb5\xa3\xba\xb4\x07\x2f\xdd\x7a\x46\xaa\x3a\xcc\xb2\xdd\x43\x27\x33\x57\xce\x7c\x30\x53\x6c\xc4\xbf\x6c\xe5\xc9\xb9\x86\x4f\x9d\x44\x66\x67\x2f\x47\xa3\x4c\x52\xbb\x8c\x08\xbc\x69\x15\x04\x28\x97\x5f\x08\xc8\x7e\x01\x1e\x15\x37\x86\x89\xbe\x00\x68\x2f\xfd\xef\xa7\x27\x27\xc3\x3c\xb9\x67\xe6\xe4\x9e\xcd\xa1\x5c\x75\xf4\xd3\x56\xf9\x71\x4c\x63\xdf\x9a\x19\xc3\xc5\x58\x93\x19\xe6\xe5\x39\xbc\xc9\xca\x58\xdf\xf2\x16\x6b\x91\xf7\x99\x1c\xea\x23\x72\x9b\x4c\xd8\x94\x1e\xe1\xee\xc2\x73\xa8\xb4\xd2\x7a\xd7\xea\x8b\x5b\xc6\xc8\xc4\x98\x99\x3e\x3d\x39\x19\x73\x33\xc9\x87\x56\xe7\x41\xbf\xb4\x54\x63\xfc\xe3\x84\x6b\x9d\x33\x7d\xf2\xc7\x1f\x7e\x80\xe5\x01\x7a\x18\xd2\xe4\x7e\xac\xc0\x08\xb5\xa8\xf8\x94\xb6\xfc\x76\x11\x2b\x78\x73\xe8\x24\x25\xc5\x80\x7d\x99\x29\xa6\xeb\xaa\x19\xad\x9b\x4d\xa9\x49\xfb\xf3\x2d\xd1\x73\x61\xe8\x97\x53\xd2\x7f\xf3\x09\x2b\x5d\x91\x1f\x65\xae\x34\x39\xa7\xf3\x63\x39\x3a\x9e\x4a\x61\x26\xe4\x13\xfc\xaf\xfb\xe9\x91\xb1\x7b\xf2\x0b\xa3\xaa\xff\xc6\xed\x31\xde\x58\x01\x34\x0d\x4c\x70\x2a\x17\xda\x15\xd1\xfa\xe1\x4f\xbe\x8a\x96\xed\xe6\xfb\x93\x1f\xfe\x44\x7e\x0f\xff\xff\xff\x90\xdf\xf7\xdf\x34\xe1\x01\x6e\x94\xc9\x52\x94\x39\xab\x6d\x0d\x56\x6c\x0b\x98\xe6\x33\x25\x8b\x1d\xab\x6d\xf9\x9e\x27\xf7\x72\x34\x1a\x18\x3e\x65\x18\x38\x33\xa0\x6a\x01\xb7\x70\xcb\x1c\x5d\xee\xa0\x65\xb1\x38\x46\x01\x89\xe4\x3a\xc5\x28\x56\x7f\xec\x74\x5e\xc0\x7f\x3e\x62\x9d\xda\x08\x52\x95\x6b\xf8\x8a\xa5\xf6\x74\x6c\x62\x40\xf4\x46\xcb\x45\xe0\xfa\x22\x1e\x3a\x06\x4a\x0e\x46\xfb\xd8\xd5\x24\x57\x55\x18\x5b\xf4\x81\x7d\x63\x5e\x0f\x98\xe0\x93\x7a\x3c\x6e\xa5\xda\x49\xa4\xba\x67\x0b\xfe\xd0\x8d\xae\x66\x8f\x02\x1a\xe3\x6d\x43\xf4\xa3\x54\x21\xd1\x1d\x03\xa2\x1c\x6a\x66\x5f\xf4\xae\xce\xaf\xde\xde\x53\xa3\xe4\x98\x8a\x77\xa7\xa4\x9d\xa6\xae\xb4\x39\x71\x4e\x5d\x4b\x3c\xf6\xfe\x69\x91\xb8\x4e\xb1\xb0\x0b\x57\x7b\xd7\xc6\xfa\x29\x57\x68\x67\x5e\xef\xbc\xdb\xe5\x3b\x0f\x9f\xd4\x33\xcd\x32\xd4\x69\xe8\xa0\x40\x16\x84\xb9\xda\x5b\xce\x72\xc4\xc5\xf9\x6e\x53\xad\xfd\x76\xc6\x12\xce\x34\x36\x0d\xfe\x0f\x08\xf2\x10\x3e\x7c\xc7\x05\xd6\xd6\x1e\x2a\xc8\x8a\xda\x47\xb6\xe3\x02\xba\xc9\x0e\x94\xf2\x19\xb4\xfc\x82\x37\x78\xc8\x9f\x72\x31\x5a\xa2\xa8\x65\x1b\x5b\x26\x88\xba\xea\xf9\x71\xd1\x6f\x2b\x30\x1c\x8f\x68\x62\x57\x2f\xe4\x1d\x61\xb4\x6f\xcc\xaa\xea\xd6\xb1\x47\xf5\xfd\x7e\x8d\xe2\x3b\xe3\x6f\xf2\xb4\xc0\xab\x43\x6a\x74\x21\x4b\x7c\x21\xc9\xca\x50\x7d\xdf\x94\xc9\xb0\x71\x2d\x34\xbb\x14\x3e\xc9\x67\xd9\xf8\x5c\xcb\x11\x78\x8b\x2b\x43\x0c\x8a\x62\x84\x6b\xe0\xe3\x7f\xb0\x4e\x0a\xcf\x58\x5a\x4d\x28\xad\x8e\x7f\x15\x19\xa0\x67\x27\xb2\xdb\x42\xca\xe2\xd4\xaa\xb1\xe0\x7c\x9c\x52\x31\xc7\x83\x64\x2f\x2c\xaa\xef\x75\x00\x81\x25\x7a\x4a\xb3\xec\x88\x28\x96\x43\x45\xf3\x23\xa2\x59\x36\x3a\xf6\x78\x34\x29\xc9\xe4\x98\x27\x34\x23\xc3\x4c\x26\xf7\xba\x2f\xec\x0d\x22\xc6\x78\xf1\xcd\x94\x4c\x98\xd6\xd1\x95\x5b\x84\x6f\xce\x94\x4c\xf3\x04\x4b\x9a\x61\xad\x58\xae\x0d\x4f\x2a\x75\xac\x2c\x47\x04\xbf\xa9\xd5\x51\x12\x89\xb8\xb5\x30\x5c\x2b\x02\x30\xcc\x67\xcc\x7d\x51\x79\xc0\xdb\xa0\x19\xff\x07\x84\xd0\xa3\x37\xb1\x89\x7a\xf7\x90\x97\xe5\xb7\x67\x60\xca\xa7\x61\x05\x3d\x9f\xb9\xcf\xe0\x0c\x2d\xa3\x98\x9b\x32\x39\x07\x6a\x08\x64\x1e\x60\x31\x3c\x51\x14\xbe\x52\x0f\x3d\x82\xaf\x78\x85\xef\x85\xa5\xef\xc0\x90\x1b\x92\x76\x56\xd1\xf4\x19\x56\xd2\x72\x00\x6c\x91\x41\x1c\x5a\xf7\xb5\x86\x1c\x22\xa5\xbd\x22\x1e\x2c\x91\xf8\xe5\xb1\x6b\x6f\xaf\x91\xa3\x50\xde\x8a\x6a\xe7\x2a\x3d\x0e\xa8\x2d\x96\x1f\xf6\x05\x80\x17\xdb\x4e\x2a\xb5\x92\x16\x29\xea\x05\x97\xb4\xda\x0f\x73\xdc\xb0\xb2\x95\x5f\xe4\x4d\x88\xbc\x4c\xb7\x90\x2b\xb3\x21\xb3\x2b\xc5\x7f\xa9\xba\x70\x5f\xa4\x36\x78\xfa\xc0\x0b\x10\xee\xa8\xa3\xc6\xbd\xdd\xda\x6a\x58\x19\xd5\x42\x1c\x3c\x1f\x21\x91\xc1\xd8\x20\x14\xcd\xd5\xdd\x6e\x1a\xd1\x57\x49\x30\x5d\xb6\x91\xd7\xd4\x60\xed\x64\x36\x95\x06\xa1\x67\x11\x05\xd6\x9b\x4b\x10\x5c\x76\x98\xc9\x21\xdc\x2b\x00\x10\xeb\x43\x73\xa3\x10\x3c\x9c\x37\x4b\xc9\xdb\xe8\x9a\x08\xe1\xfe\xef\x9a\x22\x2a\xf7\x97\xe5\x5a\xb5\xb1\x34\xe6\xba\x96\xa1\x1e\x5b\xe4\xba\x92\x41\x11\xcd\x6a\x44\x2d\xe7\x6e\x8a\x61\xda\x2c\x33\xb6\xb4\xfb\x7b\xc8\x8c\xad\x4c\xa3\xc1\xc5\x2e\xc7\x4f\x1a\xa9\x6b\x27\x75\x21\xd7\xd7\x23\x31\x39\x0d\xe5\x8f\xd2\xe6\x78\x32\x9b\xd7\x6d\xd1\xcb\xca\xfa\xad\x40\x85\x7e\xdd\xac\xdf\xca\x60\x5e\x72\xd6\x6f\x65\xa8\x2f\x37\xeb\xb7\x66\xa0\x6b\x64\xfd\xa2\xfb\x6b\x60\x89\x7a\x3d\xa6\x00\xe1\x27\xc3\x7c\x74\x0b\xb7\xc9\xd2\x31\xba\x42\x39\xc8\x9c\xbd\x9c\xe3\xc0\x16\x60\xb4\x2e\xe0\x70\xeb\x8c\xdd\xca\x94\xd7\xcc\xd8\x2d\xb1\xb4\x43\xc6\x6e\xc8\xd8\x5d\x5c\x97\x97\x98\xb1\x5b\xd9\xf3\xf5\x32\x76\xeb\xb6\x7c\x0b\x8f\x60\xa9\x99\x6f\x26\x63\xb7\xb2\xa2\x2f\x39\x63\xb7\x32\xd4\x43\xc6\xee\x93\xcc\xe6\x85\x65\xec\xd6\x9f\xba\xcd\x32\x76\x6b\x45\xb3\xe6\xb3\xbd\x6b\xbe\x0b\xe4\x2c\x3c\x73\xc6\x6e\x69\x02\x87\x58\x80\x1d\x2b\xdb\x96\x49\xd0\x8d\x00\xaa\x6f\xb9\x24\xbd\xea\x3d\xb4\x24\x67\x17\xd4\x8d\x3d\x50\xd4\xd3\x46\x91\x80\x85\x70\x5d\x8d\xa8\x5d\x5a\x07\xed\xea\xc1\x58\xd1\xc4\xe7\xb9\xa1\xc7\x29\xf6\x8d\x1c\x28\x70\x63\x8b\x52\xc3\x22\x07\xcb\x22\x06\x86\x37\x90\x5c\x0d\x5a\xff\x0e\x04\xe8\xf2\x85\xb6\xad\x53\x00\xa6\xb9\x7a\x65\x1f\x2a\x6a\xec\xa7\xd9\xdf\xc5\xff\x6d\x5c\x90\x5d\xeb\x01\x27\xb3\x7c\x9b\xc4\x81\xf1\x76\x9f\x4d\xd9\x54\xaa\x55\xae\xe1\x06\x53\x83\x54\x74\xbc\x2a\xb3\x63\xdd\xd5\xdb\x75\xd5\x7c\x11\x94\xcd\x6c\x4f\x3e\x0d\x7d\xb9\x32\xec\x0b\x26\xc7\xde\x09\xd0\x17\x6a\xfd\x5f\xc1\xfd\xb8\xa5\x87\xab\x21\xe9\x77\xb1\x43\x30\x7d\x6b\xa6\x8e\x63\xf1\xa8\x64\x73\x5e\x1c\x41\x69\xdd\xbd\xf0\xbc\xc3\xb2\xe7\xaa\x31\xfe\x62\x9d\xc4\x49\xac\xc2\x65\x25\xf3\x18\x13\xb1\x4a\x69\xc3\x79\x4d\xec\xee\x7a\xe6\x0e\x2e\xcc\x9f\xff\x63\x23\xa3\xbd\x95\x2f\xdd\xba\x8d\x78\xc6\x08\x4d\x12\xa6\x31\x97\xd3\xc5\xe7\x60\x4d\x8a\x5c\x65\xbb\xec\x2a\x17\x63\x98\xb7\x15\x26\xa3\xc2\xb9\x81\x78\xf0\xce\x98\x28\x99\x8f\x27\x5e\x03\xb6\x54\x68\xa7\x56\xb7\x97\x3f\xa3\x5b\x75\x97\xbd\x7c\x9f\xf3\x6c\x3b\xfb\xc2\x2d\x52\x9d\xa3\xc9\x8f\xdd\x1e\xd1\x93\x40\xff\x43\x68\xb6\x76\x63\x17\x07\xbd\x7e\x9f\xee\xdb\x60\xc1\x86\x6e\x8e\x7c\x0c\xc9\x48\x66\x99\x7c\x84\x7c\xc4\xe9\x43\x53\xdd\x0c\x98\x70\x8f\x6f\x59\xb1\x00\xbe\x06\xa3\xa3\x36\x74\x3a\x5b\x0b\xbd\xe2\x1a\xe5\x03\x4d\xfc\xe8\xab\xb6\x78\x74\x94\x4b\xc1\x44\x9d\x85\xe0\xf3\x62\x09\xb5\x57\xe6\x91\xab\x94\xd4\xaf\xee\xc8\xe6\x21\x0b\x7e\x49\x9e\x39\x6c\xa1\x6e\x1e\x1b\xb0\x80\x52\xf0\x5e\xc1\xe3\xbd\x23\x09\x45\x4f\x80\x62\xe8\x8b\x76\x29\xcc\xcf\x43\x1b\x0f\xe7\x45\xb8\x10\xca\x6f\x31\x27\x01\x38\x1c\xa7\xa2\x42\x89\x76\xfb\x17\xc8\x9a\x98\x63\x8d\x01\x0d\x3e\x68\x01\x22\x9d\x58\x7a\x4c\x93\x79\x92\xf1\x24\xd2\x3b\xc6\x8a\xce\x26\x75\xec\x66\xb1\x38\xda\x4b\x4b\x7f\xfa\xd6\xf3\xe0\xd6\x2c\xa7\xb8\x34\x56\x2b\x2e\x48\xf8\xaa\xf3\xf3\x16\xc9\xf1\x90\x9a\xb7\x01\x49\xee\x36\x9e\xbd\x53\xe2\x6b\xca\x14\x6c\xa6\xbc\xaf\x9c\x95\xb5\x38\xb0\xaf\x99\x1f\x58\x73\x5f\x6c\xb7\xba\x5f\x37\x2b\x70\xad\x69\x34\xed\xeb\x3a\x09\x81\xa5\xea\xf7\xe1\xde\x5f\x91\x1e\xd8\xbc\x4a\x2f\x84\x06\xf7\x19\xa0\xd8\xc4\x6d\x56\x07\x29\x6e\x22\x2a\x6e\x16\xaf\x18\x36\xea\x75\xc5\x2c\x86\x61\x6f\x19\xb7\xd8\x8e\x6a\x39\x4e\x64\x06\x20\x8c\xa5\xd5\x0a\x1d\x84\xd0\xa7\xb0\x40\x7e\x33\xac\xea\x88\xa2\x6b\x81\xe6\xb7\x2c\x3a\x31\x6c\xe2\xb7\x11\xa1\xb8\x42\x1f\xda\x30\x4a\x31\x5e\xd4\xdd\x22\x15\x77\xd4\x6f\x36\x8b\x56\xac\x74\xb6\x74\xbf\xb7\xf0\xab\x2f\x20\x27\x1e\xa2\x32\x42\x54\x46\xfd\xda\xbc\xc4\xc8\x8c\xa2\xaa\xd4\x86\xd1\x19\x4d\xdb\xbf\x0f\x4a\xda\x63\x94\xc6\x57\x8e\x7d\x58\x37\xec\xe1\xeb\x06\x93\xac\x19\x47\x72\x88\xcd\xf8\x36\x62\x33\x9a\xcf\xdb\x46\xf1\x19\x2b\x12\xc0\x7c\x2f\xbb\x3a\xd1\x43\x52\xd2\x93\x3a\xd2\x83\x0d\x38\xfa\x62\x4d\x67\x7a\x91\x35\x75\x70\xa8\x3f\xa9\x43\xbd\x66\xa1\x57\x3b\xd5\x4b\xc2\xdb\xb3\x7a\x42\xab\xa0\xdc\x4f\xe9\x0d\x5d\x25\xf0\xe6\xc3\xc1\x93\x9f\xa3\xda\x39\xaf\x7b\x9c\x3e\x87\xbd\xf5\xc5\x07\x09\x9b\x0e\x59\x9a\x82\x42\x6c\xa4\xc3\xb5\x2c\x48\x40\x30\x24\x56\xcb\x49\xa9\xb6\x94\x4b\xa1\x0e\x37\x4f\x59\x04\x52\x5f\xc8\x37\x18\xc2\xdc\x17\xb0\xbf\x59\xc6\x94\xd7\xa7\x14\x79\xab\xb9\x48\x58\xac\x63\x29\x92\x4a\xa6\xc5\x77\x06\xeb\x6b\x52\x31\x27\xf7\x42\x3e\x66\x2c\x1d\xc3\x0e\x55\x07\x73\x4c\x38\x3b\x22\xdc\x84\xcf\x14\xa3\xc9\xc4\xb2\xcb\xbe\x1d\x3b\xb8\x1c\x50\x10\x63\xee\xdb\x08\xc1\x35\x34\xf3\xae\x45\x48\x57\x90\x11\x4d\xcc\x11\xd1\xf9\xb0\x68\x3f\x95\x08\xc9\xf9\xc0\x44\x3c\xf1\xa2\x91\x27\xf3\x84\xd7\x7a\xbe\x1b\x34\x0b\x4b\x00\xed\x8c\xd3\x9d\x9c\x16\x0f\x74\x97\x3c\xe9\x4f\xb9\x36\x04\x6c\xe5\x44\x8a\x70\x98\x5c\xc6\x47\xc0\x84\x00\x48\x43\xc4\x57\x58\x52\x8e\x80\x56\xa6\xb2\xe9\x58\x0a\x0f\x93\x43\x52\x74\xea\x2a\xb4\x8b\xcb\x9d\xca\x47\xa1\x8d\x62\x74\xea\x6a\x0d\x58\x4e\x0c\xa6\x58\xf4\x2f\xb9\xca\xae\x70\x03\x6f\xb2\xc5\x17\x5c\xdc\xdb\xdd\x2d\x50\x30\x00\x5f\x16\x7a\xae\xd9\xb4\xf7\x5c\xd0\x52\xb4\xca\x16\xbb\x96\xe5\x1b\xf9\x7b\xa3\x82\x0d\xf3\x26\x00\x12\x43\x57\x61\x82\x6c\x62\x54\xd1\x00\xaa\x4b\x6c\x77\x04\x58\x1d\xa2\x6f\x52\x62\x28\x00\xe0\x4c\x58\x36\x8b\x10\x2d\x67\x54\x99\x50\xf1\xc2\xa5\xc6\x27\x72\x3a\xcd\x05\xa0\x19\x38\x3d\xed\xd1\xe5\x40\x3b\x9b\x5d\xd1\x78\xab\x2f\xba\xe6\x3b\x6d\xcf\x97\x14\xe3\x6c\x4e\x68\xfa\xc0\x75\x81\x48\x92\x48\xa1\xf3\x29\x53\x15\xbc\x67\x84\xbb\x26\xd4\xd3\x8a\x1d\x9b\x15\xbc\x3c\x5c\xbf\xbb\x1b\xc6\x64\xc8\x46\xf6\xd2\x9d\x51\xa5\xbd\x7d\xa8\xc6\xb6\xe3\x36\x37\xb5\x6b\xf5\xd5\xce\xe4\xcf\xf1\xb1\x23\xd3\xe2\x84\x52\xa7\x6f\x9c\x54\xcf\x67\x54\x0a\xa3\x29\x76\x65\x61\x52\x64\xf9\xc5\xe4\x56\xe1\x7c\xa1\xa4\x69\x55\x0d\xf7\x95\x55\x35\x1c\x1a\xdb\x8f\x17\x68\x70\x70\x1b\x59\xf2\x2a\x13\x74\xa3\x46\xf3\x4c\x7c\x36\x19\x87\x4b\x41\x1b\x6a\x78\xe2\xcb\x7a\x84\xa2\x45\xf8\x75\xf3\xd6\xee\x5a\x4d\x46\x27\x34\x5b\xdc\xe1\xe6\xb5\xbc\xc5\xf7\x97\xf3\x3e\x77\xdc\xb0\xed\xa5\x71\x48\x89\xcc\xb2\x4d\x40\x47\x2a\x33\x3f\x2b\x3e\x5f\x3e\xa2\xa2\x1f\xbb\x01\x7e\x2f\xe0\xd4\x20\x50\x0a\xcd\x9c\x64\xa1\x8d\xdb\xa5\xf8\x25\xe4\xa1\x73\x22\xf2\xe9\x90\xa9\xbe\x90\x23\xc0\xa2\xc9\x9a\xb4\xe5\x99\x92\x53\xbe\x49\xd6\x26\xa2\x9a\xdd\x78\x47\xdc\x0a\x4b\xa3\x77\xd7\x01\x6e\x38\x92\x97\xeb\x11\xab\x32\x0b\x94\x33\x96\x9c\xa1\x29\x5d\x28\x1e\xb4\xd6\x82\xaf\x52\x7e\xdb\x64\x8a\x66\x05\xb7\x7a\x1a\xc1\xe9\xef\x19\x14\xdc\xa6\xd9\x23\x9d\x17\xd1\x5a\x9b\x1c\xa7\x22\x1e\xca\x9d\x17\xea\xa9\x2c\x3a\x31\xc1\x91\x89\xfb\x85\xab\xb0\xce\x09\x3a\xab\x23\xc3\x8d\xcf\x92\x9f\xf3\x53\x0a\xd9\xf1\xb1\x8f\xe5\xeb\x4d\x6e\xc3\xf2\x61\x88\x5a\x24\x30\x9c\xe5\x4b\xf5\xa9\x44\x39\x7b\x5f\xa3\x4a\x3b\x04\x75\x39\xef\xc7\xb8\xae\x6f\xf5\x19\xd6\xcc\x91\xf5\x5a\x8b\xb5\x63\x00\xe8\x66\xa5\x55\x7d\x8f\xcb\x0b\xb7\x6e\x52\x1d\x7a\xb5\x0e\x31\xb2\xb2\x8b\x2b\x5b\x10\xa0\x03\x5d\x5c\xc1\x88\x67\x4c\xb7\x48\xb7\x46\x9f\x30\x51\x71\x75\xcc\xfd\x07\x2f\x95\x97\x77\x72\xc5\x23\xfc\x44\x2f\xd5\x10\xee\x2a\xee\x14\x26\x07\xc5\xec\x98\x81\x80\x41\x92\x9f\x58\x15\x6f\x82\x0d\x40\x6d\x0b\x2b\x5e\x1a\xb0\x9e\x59\x5e\xc0\x5d\x5d\x0c\x2c\x6b\x16\x3e\xb0\x32\xb6\x61\x8a\x26\xc6\xd7\xc1\x70\xa3\x6a\xd8\xd2\x7d\xc0\x42\xad\x1f\x3f\xe1\x7b\x85\xa2\xf5\x8b\x7b\x53\x3b\xc2\x5e\xb9\xf5\x8d\x47\x17\xe4\xf2\xcd\x1d\x2f\x1f\xe0\x53\x6f\x4c\xa2\x64\xa4\x18\xd8\x1b\xa7\x21\x30\x57\xa4\x4c\x69\x23\x25\xdc\x50\xb7\xe7\x3f\x9d\xdc\x75\x09\x33\x09\x80\xc6\xf7\x45\xa2\x1f\x8e\xac\x40\xfb\x6b\xce\x8c\xfd\xb9\x09\xa1\x6c\xca\x84\x06\x4e\xc0\xd7\x2d\x46\xe5\x17\xc6\xfe\xf7\xbc\xfc\xfd\x12\x92\x0f\x13\x0b\x25\x48\x2c\xed\x86\x1a\x24\x96\x4c\x01\xaa\x02\x97\x56\xd7\x50\x0c\x16\x9b\xeb\xd4\x81\x4e\x6e\xe1\xa9\x17\x7f\xcf\xc5\x86\x62\xd2\x59\xf1\x51\x34\x8a\x06\x29\x6c\x3a\xa3\x8a\xeb\xcd\x9a\xf7\xdf\xd4\xb6\xbe\x8a\x89\xf8\x75\xa5\xc4\x15\xed\x23\x05\x3e\x27\x31\x8a\x31\x60\x21\x81\x9e\xdc\x5d\xef\xc2\x79\xc3\xc4\xa2\x8f\x5a\x7d\xf1\xc9\xdb\x3f\x8b\x5f\x43\x99\x14\x8c\xf7\x60\x29\xc9\x41\x67\x2a\xb7\x02\xcd\xa6\x5c\x87\x1f\x00\xa8\x44\xe7\x99\x41\xdc\xb8\x11\x14\xe2\xf3\x03\xc5\x27\x75\x5c\x42\x51\x91\x4c\x2e\xe5\x6e\xe5\x93\xf8\x68\xc0\xb2\x4d\x64\xc7\xee\xa8\x93\x69\x4b\xdf\xc9\x7d\xc3\xe9\xfc\x83\xc7\x9b\xdc\x60\x83\x8a\xc9\x80\xe4\xe6\xd1\xb3\x50\x2b\x41\x3b\x5d\x86\x28\x74\x8c\x80\x91\xad\x1a\xb8\x81\x81\xae\x76\x17\x9d\x6c\xed\xab\x42\x2a\x99\x11\x6f\x96\x1b\x42\x2f\x84\x9a\xbe\x50\xb9\x00\xb8\x89\x60\x3f\xa7\x44\x33\x5f\x7a\x32\x91\x02\x65\x00\x67\x3c\x19\x5b\x36\x61\x25\x3f\x70\xa2\x48\x01\x1a\x95\xcc\xb5\xe5\x21\x74\xca\x8c\xbd\xa0\xde\x02\xd4\x2a\x7a\x30\x8e\xc8\x4c\xf1\xa9\xe1\x0f\x2c\x60\xc4\xc4\x3b\x77\x46\x0d\xcd\xe4\xb8\xad\x0c\x1f\xd1\xc4\xf4\xe8\x4e\x2a\x33\x75\xcd\x6c\xeb\xc5\xf6\xc3\x20\xdd\x73\xbb\xf6\x63\x26\x98\x82\x79\x42\xd9\x97\xda\x13\xbc\x69\x41\x98\x82\x71\x03\xf8\x5b\x82\x70\x59\x3a\x98\x18\x68\x6e\xe4\xd4\x2a\xa4\x34\xcb\xe6\x00\x83\x65\x9f\x4c\xa8\x9e\xf8\x7d\x46\xec\xac\x75\xae\x26\xb7\xb8\x67\x34\x99\xb0\x5b\x28\xa1\x57\xb7\xb8\x95\x51\xbe\x61\x22\x9f\xbe\x39\x25\xff\xb7\x98\xe3\x59\xfb\xec\xc7\xce\xe0\xbc\x7b\xdb\x7e\x7f\xd1\x39\x8f\xe6\xe3\x9e\x7c\xea\xde\xde\x2e\xfe\xfa\x63\xb7\xb7\xf8\xe3\xf5\xd5\xf5\xdd\x45\xbb\x57\xd7\xca\xc5\xd5\xd5\x4f\x77\xd7\x83\x0f\xed\xee\xc5\xdd\x4d\xa7\xe6\xd3\xbb\x5e\x78\xe8\x9e\xfd\x2d\x3a\x43\x90\x73\x67\xe7\xd3\x30\xda\xea\x31\x3b\x26\xe5\x17\x4f\xc9\x9d\xf3\xc4\xb8\x0a\xa5\xde\x66\x44\x21\x88\x17\xe2\x8a\x52\x34\x26\xa5\x7d\x41\xfc\xe7\x76\xee\x4d\x9f\xa2\x8b\x28\x99\x30\x92\x49\x79\x9f\xcf\x1c\x03\xc3\x68\x33\x21\xd1\x20\xc3\x74\xd4\xda\x8f\xdd\xde\x69\xf0\x08\x2d\x36\x16\x25\xd7\x78\x52\x87\x71\x51\xcf\x34\xb1\xe6\xab\x62\x0f\x70\x24\x83\xa7\x30\xea\x21\x6c\xc0\xb2\x7e\xb0\x35\x2a\x4c\xa5\x9b\x34\x75\xc8\xb9\x7e\x62\x51\xc3\xe5\xed\x5b\xb6\x9a\x61\x39\x10\x7d\x89\x0c\x59\x42\x73\x74\xa4\xd9\xdb\x48\x29\xa9\xe2\x01\x17\xdb\xbe\x63\xa3\x6f\x16\x85\x8c\x32\x4c\x2a\x96\x99\xb4\x9f\x44\x27\xc7\xaa\xcb\xa0\x4a\x2b\x46\xb5\x14\xe4\x71\x32\x47\xdb\x94\xaf\xd8\x35\x1d\x32\xf4\x97\x40\xfa\xbd\xe5\xdb\x5e\x60\x25\x1c\x1c\x73\xd4\x90\x47\x06\x11\x87\xb9\xc3\x77\x42\xfd\xd8\x1e\x40\xed\x8b\x1a\xeb\x80\x78\x57\x8a\x44\x6c\xe4\x98\xfb\x10\x8a\xed\xf7\x9a\xd5\x71\xcb\xcd\xc3\xc6\x0a\xb9\x0d\x1b\x05\x16\xea\xbd\xa4\x30\xe2\x06\x7b\xbf\x67\xd9\x35\x76\xe7\x25\x32\xd0\xe2\xb5\xb1\x82\xa3\x1b\x28\x3d\xbc\x7a\x3c\x3e\xde\xba\x04\x4b\xb0\x59\x22\x66\xf0\xf0\xaf\x5c\xab\x9e\x4c\xe9\xdc\x12\x07\x84\x27\xe8\x7c\x36\x93\xca\x90\x86\x36\x08\x1c\x74\x1c\x1f\x5c\x0c\x6e\x1e\x81\x43\x41\x23\x56\x0a\xd0\x35\x90\x3f\x4b\x83\x7b\xc3\x80\xdc\xba\x16\xc7\x3e\xce\xe9\x02\x65\x2d\xa0\x13\x4d\x4b\x6a\x6f\x89\x42\xeb\x04\xd4\x5d\xa2\x89\x66\xf6\x16\x5e\x17\x46\xae\xae\xf7\x2b\xdf\x42\xed\x96\x67\x6c\x64\x06\xb5\xbe\x94\x25\x66\x43\xdb\xa2\x68\x48\x05\x54\x7c\x3c\xd9\x43\x8b\xeb\x4b\xf2\x7f\x74\xbe\x2e\x2b\xbe\x47\x5a\xbc\x92\xd2\xa0\x0c\x59\xe8\x19\xc4\xaf\x26\x98\x00\x5c\xa7\x08\x3d\x6b\x05\x35\x0e\x92\x9a\x95\xcb\xef\x85\x7c\x14\xc1\x5e\xae\x5b\x7d\xd1\xa1\x80\x86\x1c\x94\x05\x17\x7b\x80\x92\xfa\x4a\x19\xbd\x04\xaf\xfa\x42\x92\xa3\x0b\xba\x77\x90\xf1\xd9\x9c\x14\x10\xba\xa5\xef\xd6\x39\x3d\x68\x4b\xf6\x72\x1a\x4e\xd8\xa1\x46\x1a\x36\x73\xf6\x6e\x9c\x67\x11\x54\x0b\x2e\x53\xdb\x55\x8b\x7c\xf6\xd6\x19\x08\xed\x28\xa0\x9f\x0d\x5e\x38\x19\x9d\xfb\xec\xcf\xba\x85\xdd\x47\x42\xe5\xbe\xe3\x2d\x96\x2f\x70\xc8\x94\xa9\x59\xe5\x92\x92\x2c\x04\x5a\x4d\x37\x88\x19\x3b\x0b\x1f\xdd\xb2\xe5\x31\xa0\x1f\x00\x46\x12\xca\x89\x66\x70\x43\x5b\x3e\xfa\x3f\x70\xb3\x20\x91\x12\xca\xec\x3b\x0b\x7f\xe4\x97\xb4\xe7\x07\xfc\x6a\x56\x0a\x18\x42\x86\x35\x56\xee\x6c\x91\x36\x00\x21\x03\xc4\xad\xbd\x0a\x7d\x40\x0e\x1f\x0b\xb9\x2a\x6c\xa0\x81\x98\x92\x88\x98\x6e\x9b\x89\x49\x03\x35\x85\x48\x81\x3d\x51\xd4\x1e\x52\x1e\x2c\x6f\xa1\x8b\xd8\x0c\xeb\x27\x3a\x6c\xa0\x60\x7f\x8d\x10\x9c\x85\xe1\x46\x1f\xfe\xab\x7e\xe8\x1f\x73\xaa\xa8\x30\x10\x58\xe2\x04\x6f\xc5\xa2\x68\x45\xf6\x05\x22\xb0\x04\x1a\x6b\xe1\xa7\x78\x73\xbd\x23\x1d\x8b\xc4\xf2\xf4\x88\xf0\x16\x6b\x1d\xb9\x42\x26\x3a\x1f\x16\x6f\x4e\xac\xe4\xd0\x17\x0b\x81\xfb\x2d\xd2\xce\xb4\x74\x5f\x30\x91\x64\x00\x3c\x1e\xc5\xc0\x04\xca\x77\xae\x9f\xe1\x1c\xd4\x0b\xd8\xca\xa2\x79\xe9\x1e\x44\x1f\xf6\x05\xd5\xe8\x69\xce\xe0\xa4\x17\xbf\xd7\x15\x16\x28\x45\x1f\x3c\x21\x78\xcf\xc2\x35\xf4\x64\x9b\x84\x08\xda\xcb\x36\x08\xde\x80\x8d\x29\x12\x2a\xfa\x22\x90\x33\x79\x4b\x4d\xc6\xa8\x36\xe4\x87\x77\x1b\x05\x5c\xf8\xf9\x15\xcc\xd5\x9d\xde\x22\xb4\xd4\x87\xb3\x35\xd5\x45\x01\xdc\x55\x42\x89\x60\x51\x80\xfa\x91\xdd\x66\x23\xc9\x03\xd7\x39\x40\xb9\x47\x61\xec\x08\xc6\xcd\x8d\xf6\xb8\x92\xa8\x30\x35\xb0\x11\x0f\x6b\xe0\x7c\x92\x6e\x58\x35\x84\xe5\x74\x27\x8e\xca\x19\x64\x92\x15\x81\x65\x13\x6a\xfa\xc2\x31\x56\x1f\x8b\x11\x61\xfe\xb6\xb3\xac\x1c\xcc\x65\x05\x9c\x94\x09\x3b\x61\x00\xa2\x6f\x85\x05\xba\x04\xed\x2b\xc4\xff\x94\x6b\xd1\x84\xb3\x62\x15\xb5\xbe\x08\xd9\x40\x71\xdb\xb5\xc2\x4e\x9d\x09\xf8\x19\x65\xe0\x9a\xee\x2f\xb0\x22\xc0\x1a\xb2\x70\x73\xc1\xa6\x25\x2e\x93\x05\xb3\xfb\x12\xd1\x78\xdf\x1d\xac\x2f\x29\xd7\x9b\xb0\xe1\x96\x7d\x94\x35\x16\xf1\x86\xcd\x8d\x44\x8b\x5d\xf4\xef\x10\x88\xf6\x5c\x4e\xd9\xd2\xd0\xbb\x29\x44\x89\xaf\x66\x82\x45\xd4\xb5\x67\x1d\x60\x8b\xe6\x69\x14\x37\x1a\x05\xd5\x41\x78\xb0\xe7\x7b\xee\xcd\x06\xe7\xe8\xec\x75\x4f\xff\xa8\x98\xbf\x9f\x4a\x88\x2c\x5b\x9c\x78\xb3\xac\xd7\x4e\xff\x4e\x13\x26\x92\x39\xf6\xe4\x61\x60\x0a\x39\xae\xe7\x0c\x4e\x1e\x31\x83\x82\xbd\xbd\x56\x3a\x74\xc5\x3d\x5a\xa4\x03\xf7\x8c\xaf\xf5\x41\x47\xde\x67\x10\xbd\xdc\x17\x56\x31\xb1\x57\xbc\xc6\x41\xfb\xf6\xcb\x24\x5e\x77\x02\x30\x55\x72\x27\x77\xcb\x74\x35\xe2\x56\x93\x32\xe1\x33\x35\xa1\x0d\x80\x2f\x22\x9d\xf1\x29\x49\x65\x72\xcf\xd4\x89\x62\x29\xd7\xa7\xe0\xfe\x36\x8d\x7e\xb7\xa9\x55\xb6\x77\x16\x34\xb6\x2d\xb7\x85\xfd\xbb\x88\x62\xbc\xb7\x98\x95\x10\x46\xa0\x4d\xf8\x4c\x01\x4c\x1f\x70\xb6\x6d\xc2\x84\x51\xf3\x99\xe4\xc2\x04\x4b\x56\x65\x21\xbc\xa2\x61\x65\xb6\xa6\xf8\x5a\xb5\x8f\x30\x99\x2d\xa7\xdd\x9b\x30\xcd\x7c\x4c\x00\x4e\xca\x48\x82\x9e\x10\x64\x17\x33\x6a\x26\x1a\x72\x1d\xca\x6b\xe0\x74\x2e\xf8\xd4\xae\x10\x9d\x41\x48\x01\x1a\x29\x8a\x8f\x42\x10\xbf\x36\x3c\xcb\xfa\x42\x30\x96\x6a\x2c\x0f\xff\x5d\x6d\x4e\x8d\xfd\xf4\x88\xd0\x34\x25\xff\xf3\xed\x87\x8b\x5f\x7a\x9d\x41\xf7\x12\x2c\xce\xdd\x8b\xce\xbb\xa3\xf0\xe3\xd5\x5d\x2f\xfc\x8a\x06\x96\x07\xa6\xc8\x94\xde\x83\x86\x27\x34\x8a\x7f\x10\xea\x1e\x8f\xd4\x67\x1b\xd9\x27\x9a\xf9\xf0\x51\x27\xa6\x84\x04\x63\xb7\x87\x2b\x20\x20\x36\xd0\x7d\x6f\xc2\x27\xcb\x69\xd0\x13\x4f\xe8\xc2\x8b\x81\x53\x26\x8c\xe5\x31\xce\xd8\x57\xa8\xbe\x05\xc1\x31\x31\xe6\xa2\x29\xc8\x8d\x89\x87\xa7\x94\xe1\x7f\x62\xf3\x9f\xad\x76\x7d\x4d\xb9\x5a\x9b\xf6\x3a\xe2\x81\x2b\x29\x60\x6a\xc1\xaa\x55\x94\x24\x64\xc6\xfb\xda\xa2\x43\xa5\x51\x16\x86\x30\x8a\x59\x63\x20\x65\xa5\x18\xea\xcb\x98\x6e\x1b\x5d\xbf\xec\x8b\x51\x3e\xaf\x4d\x3b\x76\x43\x1f\x28\xcf\x20\x08\xd6\x5f\x34\x05\x0d\x62\xa5\xbb\x53\xc2\x32\x3a\x94\x0a\x52\x63\x30\x6a\xc7\x37\xe1\x16\x0c\x6a\x3e\x85\x86\x5a\x7d\x71\xce\x66\x8a\x25\x14\xb8\xd8\xcc\x6a\x2e\xc0\x85\x4a\x36\xb4\x16\xb6\x41\xb8\xbd\x75\x68\x63\xd5\x0d\xa9\x9e\xae\x08\x70\xe9\xf2\xba\x96\x6a\x9d\xeb\xdf\xbe\x06\x4b\x27\x67\x56\x8f\xab\x70\x5e\x77\x37\x8f\x18\xc5\x7a\x31\xe8\x14\x72\xa6\x7c\x17\x15\x9a\x65\x25\xf8\x5b\x7b\x70\x74\xcb\x79\xc9\x8b\x37\xa5\x20\x3f\xfd\x45\x93\x61\x6e\xfa\xa2\xdc\x86\x14\x50\xff\xf4\x3d\x35\xc9\xe4\x5d\x5f\x5c\x59\x2d\xf3\xa7\xbf\x34\x64\x4d\xa7\xd4\xd0\x41\x3d\x51\x36\xaf\xc9\x39\x35\xf4\x42\xd2\x94\x8b\xb1\x2b\xee\x5b\xbf\x16\xef\x3b\xbd\xf6\x29\xf1\x89\x96\x21\x5f\xb2\xc8\xb5\x8f\x1a\x02\x86\x0c\x13\xf1\x5c\x04\x58\xb9\x08\xac\xdf\x59\xc8\x40\x7a\xb2\x17\x56\x5f\xc0\x52\x22\x57\xe5\x86\xcc\xa4\xc3\x2a\xb4\x5a\x99\x24\x2a\x17\xce\x92\xed\x0c\x89\x76\x75\x80\x8c\xc3\x66\x38\x79\x0c\xe4\x99\x45\x66\xdf\x17\xa0\x9f\x87\xec\xb5\x4c\x26\x34\x83\xb0\xb9\xe3\xc8\xa4\x67\xb5\x76\x99\x43\x0e\x12\xc4\xab\x88\x79\x39\xba\xd5\x23\x49\x17\x42\x59\xbc\x51\xa0\xff\xc3\x3e\x3a\x57\xea\x54\x5a\x8e\xd3\xea\x8b\xee\x08\xa3\xea\x32\x5c\x1d\xfb\x21\x13\xe0\x4d\xf6\xcb\x62\x9f\x7a\x7e\x04\x85\x40\xd0\xab\x48\x13\xb0\xde\x8b\x39\xc4\x44\x03\xbe\x99\x84\xe8\x8c\x82\x3b\x3b\xa2\x5c\xd8\xc5\x70\x27\x46\x9f\xf5\x05\x06\xf3\x95\xf6\x25\xce\xfc\x8d\x7a\x97\x02\x62\x0d\x8b\xeb\x32\x08\x18\x33\x17\x7b\xe8\x64\xfd\x99\x62\xc7\xbe\x5e\x9c\xfd\x35\x5a\x53\x7b\xc3\xb6\xc8\x4d\xac\x5e\xa7\x32\xc9\xa7\x1e\x77\x04\x72\xb5\x5c\x90\x9a\xbb\x44\x03\x85\xe0\xc5\x5e\x4b\xf1\xbf\x8b\xff\x5b\x2b\x9b\x5e\xef\x58\x65\x34\x50\xd5\x60\x56\x6e\xa9\xd4\x1a\x17\x86\x8d\xab\x0e\xbe\x4d\x30\x3b\x2f\x21\xb2\xdd\x4a\xf2\xe0\xfc\x33\xd2\x6a\x9f\x12\xcc\xd0\x98\x52\x27\xd3\xef\x34\xe9\x5e\x5b\x21\xc5\x2a\xa5\xe1\x98\xe4\xda\x60\x88\x16\xa4\xa9\xe0\xd7\x18\x26\x7f\x44\xbe\x27\xfd\xfc\xfb\xef\xff\x3d\x21\x5f\xfc\x1f\x7f\xfe\xd3\x9f\xfe\xfd\xcf\xdb\x54\xd3\x85\x76\x8b\x35\x0a\xc8\x8e\x65\xa9\x25\xde\x81\x45\x66\xb2\xc3\x2e\xb8\x33\xd2\xb4\xfc\x4e\x63\x6f\x4c\x73\xaa\x7b\x1c\x85\xe0\xd0\xb1\x3b\x84\x3a\x3e\x3c\xa4\x74\x7a\x0a\x57\xbf\x66\xe6\xa8\x7c\x88\x83\x3c\xea\x84\xee\xff\xb1\x04\x68\x60\x60\xa9\x79\xbb\x50\x21\x9e\x05\x09\xd8\x36\x42\xde\x3a\x13\x9d\x01\x17\xdf\x3b\x7f\x07\xc9\x2c\x65\x0a\xc7\x14\xac\x6a\xc1\xd6\x07\xe7\x97\x7d\x99\x65\xd2\x05\x71\x50\xa2\xd9\x8c\xc2\x1d\x6f\xcf\x6b\xab\x2f\x3a\x5f\xa8\x65\xae\x47\xbe\x4e\x16\x16\x75\x06\xdf\xc8\x88\x26\x8c\xa0\x34\xfd\xf6\xcb\xa9\xfd\xed\x88\xcc\x4f\x21\x14\xf3\x88\xfc\xe3\xd4\x65\x40\x53\x65\x06\xf6\xa7\x77\x5e\x1c\x76\x4d\xc0\xa0\xb9\x26\xfd\x37\x27\x0f\x54\xf9\xea\xe4\x08\xe4\xf8\xc6\xb1\xbf\x00\x52\x1b\x0b\xd0\x99\x94\xf7\x2e\x50\x75\xe1\x4b\xf7\x9f\x16\x12\x78\xf0\x6d\xe0\xe6\xbb\x98\x63\x2b\xec\x1d\xc3\x0b\x8c\xb4\x66\x43\xd2\xfa\xbb\x96\x82\xb4\xe6\x74\x9a\xb9\x5f\xfd\x53\x17\x47\x4b\xb5\xcb\x06\x4b\x43\x18\x4d\x36\x47\x73\xe6\xfb\x4c\x0e\x61\x5e\x9f\xfc\x5c\x31\x12\x15\x06\x5a\x5c\x11\xc5\xad\xe2\x26\xe2\xc4\x1d\xcc\x0a\x87\x1a\x6c\xbe\xec\xbd\xae\x9b\xd5\x97\x30\xa4\xff\x42\xdf\x2d\x2c\x8a\x4f\x5f\x43\x0b\x6e\x08\x03\xb3\x8d\x7e\x21\x6f\x1d\x13\x7a\x67\x2f\x02\x17\xf6\x8b\xcb\x50\xd7\xc1\x3c\x74\xf0\x4b\xd4\x01\x17\x04\x13\x12\x97\x7c\xf9\x8f\x93\x56\xab\x15\xbe\xbe\xb4\x53\xf9\x3f\x84\x1b\xcd\xb2\x11\xb6\xe4\xaf\x99\x79\x5f\x7c\xb2\x9a\x4e\x6c\x61\x2e\x20\x56\xa0\x2e\x52\x22\x33\x72\x5c\x58\x5d\x53\x99\x68\xf2\x6f\x56\xf6\x8c\x96\x12\x7e\xb4\xca\x56\xfd\xa9\x72\xe5\xf1\x9e\xe9\x58\x39\xab\x75\xf5\x60\xc5\xe0\x0c\x41\xfb\xa4\x1a\x22\x94\x1e\x78\x9a\x7b\x5a\xb0\x94\x73\xe2\x00\x1c\xa0\x72\x9d\x61\x5f\x0c\x3c\x6a\x40\xca\xa8\x0d\x09\xaf\x97\xe0\x16\x18\x6e\x01\x98\x81\x64\xdd\xb0\x00\x0e\xc5\xc0\xf1\x06\x9c\xe7\x51\xec\xe2\xb0\xd7\x8b\x88\xd1\xac\x74\x3e\x9d\x52\x35\x3f\x29\x4e\xdb\x22\x71\x16\xa0\x86\xc0\x65\x32\xbf\x00\xe0\x66\xcd\xdc\xd1\x72\x91\x06\x51\x81\xed\x49\x48\x20\x20\x29\x4b\x00\x58\x18\x42\xde\x10\x56\x9b\x89\x44\xa6\x8e\xae\x8b\xbc\xcb\xb2\x58\x11\xde\x59\x14\x28\x7c\xd4\x8a\x2e\x2c\x66\xc2\x60\x32\xb6\x7b\xc3\x7f\xdc\xc0\xc0\xe5\x40\x1b\xcb\x2a\xc7\x1b\xb8\x30\xbb\x57\xb7\xfe\x9b\xf5\xaf\x5d\x58\x87\xb2\x5c\x4d\xbd\x2a\xe7\xcd\x06\x8a\x3e\x16\x17\x30\xc4\x5f\xa0\x09\x25\x0f\x59\xa9\xf8\xef\x33\x79\xcd\x33\x7b\x6f\x01\x8d\xb7\xfa\xa2\xf4\xf3\x11\x61\x19\x9f\x72\x11\xc2\xdf\x90\xbd\xcb\x11\x8a\xb8\xf7\xdc\xd8\x2d\xd3\xe9\xbd\xe5\x60\x3e\xc1\x3f\xd2\x7b\xda\x62\xee\x49\x27\x78\x8f\x9c\x99\x20\xd7\x76\x5c\x85\x22\x6d\x25\x4e\xdb\xc4\xb1\x93\x1a\x79\x44\x78\x70\x7e\xfb\xc2\xb6\xe6\xcf\x52\x11\x77\x1b\xb5\x17\x35\x77\x0c\x42\x3a\xf7\x29\x78\xd0\x02\xf4\x51\x0a\x9e\x0d\x42\x6a\x8d\x88\xd2\xa9\x94\xa5\xdc\x3c\x63\x03\xa2\x0c\x07\x42\xa6\x6c\xc3\x60\xe3\x9a\xb2\x7f\xce\x54\xec\x3d\x8c\x8a\x61\x56\x0d\xf0\x89\xa6\x34\x42\xa6\xf5\x86\xe6\xd3\xda\xfa\x99\xae\x1d\x40\x67\x7f\xdc\xb6\x86\x79\xc1\xd3\xa0\x15\xaf\x14\x44\x59\x90\xa5\xb5\x2f\xd7\xf8\xdc\x49\x42\x4f\xb7\x33\x20\xe3\xdc\x13\x58\xf6\x10\x01\x4a\xc9\x58\xc9\x7c\x16\x52\x85\x7d\xd2\x14\x6e\x83\xbb\xd1\xba\x62\x24\x4f\x9d\x4c\x7d\xc1\xc5\x3d\xde\x85\x4f\xb5\x47\xa1\x9a\x66\xf4\xbb\xe7\x60\xb8\xe2\xc7\xae\xa4\xb2\x1d\xb5\x36\x34\xb9\x47\x88\xb5\x65\xd5\x58\x37\xad\x27\x5b\xdc\x97\x79\x96\xb9\x6e\x0b\xf6\x59\x54\x14\x78\xe0\x94\x50\x72\x77\xd3\xad\xef\xfb\x9e\x2f\xda\xdb\xeb\x79\x67\x99\x40\xe0\x7f\x7e\xe2\x1b\x45\xc6\x55\x20\x01\x59\x89\xd4\x83\xfe\xdf\x04\xa4\x54\xe1\xdd\x3b\x3a\xf8\x2c\x0f\x1a\x4c\x6b\x28\xb5\x7e\xf2\x45\xc7\xe7\xee\xe3\x4f\xf6\xdb\xfa\x1d\xf9\x04\x29\x21\x21\x6f\x7e\x4a\x85\x9d\xa0\xef\xb5\xc1\x40\x84\x6c\x71\xab\x21\xdd\xcd\xb6\x1a\x10\xf6\xb8\x5e\x04\xaa\xef\xca\xb7\xf2\x88\x16\x23\x9a\xa1\xba\x65\x26\x20\x87\x1f\x91\xdb\x64\xc2\xa6\x14\xa2\x12\xa6\x65\x79\x1c\xe4\x92\xb7\x19\x55\x63\x94\x12\x34\x33\xfa\x5d\xcd\x0e\x17\xc1\xb9\x3b\xec\xf0\x16\x00\xcd\xb1\x85\x1e\x12\x07\x97\x71\x80\x30\xca\x32\x30\x4c\x60\x4e\xbe\x7f\x7f\x77\x58\x65\x15\x3f\x81\x1b\x53\x61\x49\xeb\xd4\x8a\x62\xcd\x19\xf3\x3b\x62\x82\x5f\xd2\x69\xc8\x2e\xf5\xc0\xe0\x2e\x8b\x00\xc7\x36\x64\x00\x12\xd4\x3c\x86\x9d\x51\xc0\xe3\x21\x38\xd0\xe1\xa6\x11\xf4\x45\xdb\xbf\x12\x32\xd4\x40\xbe\x51\xe8\x57\x85\x38\x26\x8c\xda\x03\x19\x23\x2a\xc8\xea\x26\xd7\x30\x89\x4d\x33\x81\xaa\x40\xe6\x56\xc6\x09\x10\x61\xa8\xdd\x79\x61\xd7\xcf\xa3\xa1\xe7\x87\xcd\x4b\x8f\xd4\x27\xf9\x27\xd5\xd2\x10\x75\x1d\xaf\x62\xbe\x9d\x90\x7d\xec\x1a\x8a\xab\x51\x60\xac\x53\x36\x2f\x22\x6b\xec\x8a\xa3\x5c\x5a\xe9\x6c\xf1\xb0\x9a\x9d\x98\x31\xa7\xd3\x81\x92\xd9\x2e\x7b\xe4\x9b\x28\xe9\x38\x90\xab\x61\xe5\xcd\x5f\x73\x9a\xa1\x3d\x56\x38\x72\xf4\xc3\x06\x81\xe1\x8f\x7f\x26\x6d\xb8\x2d\xc9\x27\x60\x8b\xe0\x89\x82\xd6\x8c\x24\x7c\x3a\x63\x4a\x4b\x2b\x8c\x37\x6c\xf2\xfd\x5f\xf4\xc0\xe1\xa5\x0e\x68\x92\xc8\x7c\x11\x1b\x75\x83\x99\xd4\xb4\x16\x4f\x8a\x92\xfb\x7c\xc8\x94\x60\x06\x1c\x9c\xf0\x1e\xf1\xef\xad\x35\x5c\x49\x73\x33\xf9\xe3\x20\xc9\xf8\xda\x20\xae\x10\x05\xdf\xb6\x9f\x9d\xe1\x57\xcb\x26\x50\x6a\xbf\x34\x74\x41\xf0\x19\xc1\x67\x2d\xf2\x9e\x26\xf7\x4c\xa4\xae\x86\x32\x26\xa6\xc2\x05\x05\xdc\x32\x32\x51\x94\x27\x86\xfa\x0e\xb6\x6f\x6f\xa1\xbe\x98\xd2\x7b\x7b\x0b\xb1\x2f\x2e\x58\xd8\xaa\x19\x7a\x93\xa3\x11\xe8\x61\x21\x43\xdf\x67\x51\x6a\x96\xe4\xca\xbe\x81\xe7\xc3\xe0\xf9\x00\xa3\x42\x82\x55\xc8\x09\x85\x24\xff\xef\x34\xc9\x67\x5e\xf3\x05\x6d\x37\x03\x07\x01\x4e\x12\x8a\xa2\x70\x2b\x0d\x4e\x58\x5f\x40\xd0\x95\x6f\x71\x1e\xb8\x4a\xec\x93\x0a\xbe\xd1\xba\xc3\x37\xc2\x14\xd7\xdd\x6c\xe9\x68\x43\xd8\x7b\x40\x99\x99\x30\x01\x6a\xd8\xfa\x2d\x43\x9e\xf0\xfa\x9b\x56\x0a\x1e\xc3\x59\x14\x56\x83\xb0\x84\xb9\xe0\x0e\x36\xd8\x19\x8a\xa2\xb8\x0e\x6f\x4f\x2d\xbe\xe7\x9a\x68\x6a\xb8\x1e\xf1\x5a\xf5\x34\x4e\x2c\xde\x65\xd5\xe9\x66\xd9\xcc\x35\x99\xcc\x95\xb5\x08\xf1\xa9\x2d\xf2\x81\x2b\x6d\xa2\x29\x19\x19\xf2\x82\x9b\x58\x82\x99\xb0\x46\x48\xab\x7d\x78\x76\xfd\x0c\xa2\xf7\x97\xfa\xc8\x43\x2c\x72\x8b\xb4\x0b\x1b\x17\x66\x46\xa3\xf5\x6a\xc5\x8c\x58\xa6\xd9\x36\xc4\xb7\x96\x41\x00\x3c\x41\x40\x40\x04\x64\x15\x6d\x7f\x2f\xe0\xf5\xc2\x30\x1f\x21\xdd\x87\xde\x33\xb1\x4c\xeb\x5b\x7f\x84\x9d\x52\xae\x64\xdd\x10\xdb\x41\xdf\x97\xa8\xf2\x6f\x33\xc0\xf5\x8f\x5d\x91\x8c\xce\x47\x27\x76\xc9\xad\x9c\x9f\xdc\xbb\x28\xe3\x11\xd0\xa1\x4b\x67\x7f\x9c\x48\x1d\x9f\x33\xbf\x7f\xb0\x99\x46\xe5\xcc\x47\x13\x43\x90\x76\x58\x60\x74\xcf\x0a\x19\x67\xbb\xc3\xa8\xc3\x21\xc5\x28\xa4\xb0\xdf\xc4\xb3\x50\x58\x06\xb0\x95\xfa\xa6\x16\x4f\x73\x29\x7e\x63\x87\xe3\x7c\xcf\x56\xd5\xb6\x5c\xb6\x69\xe1\xe4\x36\xc8\x90\x9b\x62\x09\x36\x9e\xa5\x8d\xc2\xd5\xc1\xd4\xc7\x13\xc0\xa9\x42\x99\x77\x46\x79\x9d\x53\xd1\x99\xb4\x77\x59\xbf\xa7\x44\x5c\xdb\x37\xd4\x9a\x9b\xee\x96\x30\x6b\x19\x7e\xed\x0d\xf0\xf2\xd1\xc3\xab\xed\x03\x94\x6c\x4d\x34\xee\x80\xdc\x84\xc4\xa3\xb1\x22\x34\x8e\x6b\x33\x1a\x29\x2d\x31\xfa\x64\x5c\xc8\x85\x86\xf0\x0c\xcc\x7d\x94\xa3\x80\x21\x87\x91\x35\x08\x37\x29\x47\x35\x7f\xbc\xcf\xe4\x50\xbf\x0b\x19\xd7\x54\xfb\x3e\x8a\x14\xc8\x66\x12\xdc\x0f\x64\x99\x5f\x8a\xa7\xbc\x0f\xfd\x99\x89\xef\xc3\x4d\x16\xbe\x9e\xa8\x8a\xc0\x17\xcc\x00\xa1\x4a\xe6\xc2\x43\x3e\x49\xc1\xe4\x08\x5c\x12\xe0\xe5\xf3\x46\x37\x10\xba\x85\x34\x51\xb6\x87\x62\x33\x8c\x35\x06\xf5\xb0\x79\xb9\x77\x84\x3d\x5b\xb5\xce\x4f\x01\x7b\xb6\xeb\xba\xbb\x83\xf3\x95\x16\x7c\x57\x30\x2b\x3c\x4a\x1b\xb0\x59\x78\x7f\xa5\x25\x2c\xf0\x01\x30\x7d\xc5\x45\x45\x30\xb9\x19\xc2\x95\xd8\xb1\x91\xc7\x90\x25\x07\xb9\x57\x08\x44\xd8\x04\xcf\x0d\x16\xc4\x4d\xae\x03\xfb\xfe\x1a\xe3\xc4\x10\xb5\x2f\xd1\x40\xdd\xdd\xab\x89\x2f\x28\x08\xc2\x8c\x10\x4c\x39\xe3\xc8\xca\x9b\x63\x43\xfb\x62\xbc\x95\xcb\x1d\x0c\x0e\x64\xab\x02\x12\x17\x82\x0b\x68\xc4\x04\x5a\x04\xe2\xb0\x26\x72\x2a\xed\xb5\x6d\xd5\xd5\xe2\x21\xc6\xf1\xc1\x65\xb3\xa4\x9c\xe2\x0c\xb3\xe2\xbf\xde\x6c\xec\xd1\xb2\x8f\x50\x76\x8c\x5f\x5a\x8d\x94\x19\xcd\x64\x58\x46\x1a\x5c\x31\xfe\x00\x11\xb7\x9c\x6e\xc0\x7a\x3d\x05\x5d\x1d\x00\xd0\x1d\xf0\x13\xff\x87\xd5\x20\x2d\x49\x85\x98\x39\x9f\x67\xe7\xa2\x5c\x10\xfc\xa1\xae\xf4\x72\xa3\xf7\x70\x13\xa0\x43\x60\x2c\xc3\x7c\x74\x0b\xa8\xe5\x2b\x94\x97\x90\x34\x5d\x04\xab\xd8\x45\x0e\x01\x03\x3e\xa5\x2f\x7c\xf8\x50\xa0\xef\xcf\x67\xec\x88\x0c\x73\x78\x7e\x79\xd5\x8b\x0d\xb3\x5c\xc0\xe3\xe3\x64\xc2\x92\x7b\x08\x2e\x45\xa6\x88\xcb\xe5\xcb\x28\x0c\xe7\x7d\x51\x60\x3c\x1b\xe9\xad\x8c\xf3\x00\xa2\x15\x80\xe4\xa4\x22\x29\xd7\xb3\x8c\xce\xc1\x9e\x23\xd0\x2d\x5d\x2e\x60\xec\x07\xb5\xa5\xda\x02\x20\xd4\x8e\x0b\x78\x39\x0c\xfe\xe5\x27\x11\xea\x20\x85\x10\xab\x3a\xb1\x63\x67\x58\xb3\x5d\xdc\xd3\x4d\x70\xea\x51\xf5\x2f\xdc\xd1\xd8\x4f\x11\xb2\x9f\x44\x25\x8d\xa9\xff\xc6\x07\x7d\x81\x05\xa5\xef\x0b\x05\xd9\x7f\x63\x31\x0b\xa6\x1e\x58\xda\x17\xe5\xfc\x32\x77\x95\x15\xbb\x4c\x0a\x98\xdd\x26\xd6\xb9\x39\x96\x67\x8c\xdc\xb3\xdc\x73\x0e\x31\xf5\x45\x32\x7d\x08\x6c\x5a\x02\xfb\x5b\x5f\xc0\xe7\x09\xf0\x69\xd7\x36\x7e\x14\xb8\xbe\x0e\x94\xd3\xa1\x6e\x97\xac\x89\x81\x30\x43\xf6\x0c\xa6\xd6\x86\x80\x0f\x17\x00\xb2\x10\x8a\x5c\xd7\x46\x5f\xf8\x98\xd5\x51\x9e\x65\x08\x97\xd0\xb0\x5c\x3e\x9b\xce\x07\x58\x7c\xbd\x94\xa5\xa0\xd7\x92\x08\x08\x39\x58\xfd\x52\x36\x4b\x21\xcc\x30\x99\x17\x85\xcf\x80\x78\x99\xd0\x39\x04\xe2\x79\x10\x54\x88\x0d\x1f\x33\x43\xac\xdc\x91\xe6\x19\x06\x61\x82\x41\x17\x52\xf3\x68\x96\x11\x6e\x74\x5f\x84\x4c\x42\x84\x85\x82\xab\xc0\x47\xbd\xa7\x4e\x16\x84\x2e\xa0\x59\x57\x2a\x03\x2e\x08\x9e\x70\x53\x1a\x12\x58\x2a\xe7\x31\x72\xe0\x6c\xc6\x28\x86\x0c\xf9\x3a\xda\xb1\x34\x58\xdd\x06\x17\x5f\x03\x15\x0c\x16\x13\x90\xf6\x49\xbd\x58\xc1\x62\xe3\x4d\x69\x91\x36\xce\xce\x8a\x82\x1e\xc6\x1f\x47\xeb\x02\x95\x9d\x33\xcf\xca\x5b\x46\x87\x7a\x60\x41\xa2\x9e\x51\x65\x78\x92\x67\x54\x65\x00\xcf\x35\xca\x33\xc2\x47\x51\x45\x02\xd8\x04\x4c\x24\x83\xaa\x7f\x12\xee\x08\x6f\x78\xd7\x74\xca\xa2\x00\x59\xa7\x78\x66\x91\x11\x11\xc1\x71\xd0\x3a\x65\xdb\x7a\xd7\x22\xe7\xd5\xfa\x13\x70\x2c\xa2\x04\x74\xae\x91\x03\x86\xf1\x46\x91\x5d\x58\xc7\x82\x8f\xac\xb0\xfb\x5d\x74\xf0\x9a\x0a\x1d\x51\x7d\xbf\xa1\x85\xd2\xa3\x98\xad\x28\x80\x54\x17\xd9\xd9\x83\xfa\x39\x25\xbb\x65\x38\x11\x2b\x0a\x2e\x6f\x38\xc8\x38\x79\x7f\x8b\x81\x7e\x8e\x0a\xd4\x54\x07\x3b\x5d\x52\x00\x01\xf6\x71\xc3\xa1\x46\xe0\xa4\x9b\x0f\x34\xa2\x9c\xd8\x1e\xdd\xb8\xb2\xab\x95\xcb\xcf\x25\x98\x50\x62\xc7\x65\x05\x7b\x86\x1e\x8c\x4a\x5d\x3a\x18\x83\xc3\x13\x05\xf8\xa7\x70\xd8\x86\x8c\x64\x5c\xdc\xfb\x50\x72\xbb\xf3\x47\x84\x16\xad\xc3\xe1\xc3\xd1\x23\x31\x37\x48\x36\x75\x60\x69\x3b\x08\x3b\xeb\x05\xe4\xd5\x6e\x6e\x98\xf7\x46\x78\x78\x0b\x65\xdd\xa2\x79\xac\xbf\x2d\x4b\x7d\xe6\x41\x88\xf5\x8e\x72\xbc\x60\x22\xef\x9d\xe1\xa1\xd0\x57\xe3\xfa\x5e\x4f\x68\x7d\x51\xc7\xd5\xf8\x9f\x77\x97\xe7\x9d\x0f\xdd\xcb\x32\x68\xe7\x5f\xef\x3a\x77\xe5\x5f\x6e\xee\x2e\x2f\xbb\x97\x1f\xe3\x9f\x6e\xef\xce\xce\x3a\x9d\xf3\xf2\x7b\x1f\xda\xdd\x8b\xca\x7b\xf6\xa7\xf2\x4b\xed\xf7\x57\x37\x15\x98\xd0\xdb\x9f\xba\xd7\xd7\xe5\x9f\x7a\xdd\x4f\x9d\xf3\xc1\xd5\x5d\x6f\x29\x22\x68\x31\xfe\xda\x25\xda\x07\x94\xe2\xd6\x30\xb0\x6d\x32\x52\x9c\x89\x34\x9b\x63\xd4\x80\xd7\x3b\x2a\x4e\xca\x98\xa5\xf3\x29\x93\xf9\x2e\xce\x7f\xab\xfa\xca\x07\xab\x52\x67\xc4\xb5\xe6\x42\x1e\xa9\xbe\x6f\x4c\x43\x36\x6a\xd1\x0c\xb6\x34\xc4\xc9\xa8\x79\x08\xa2\x5b\x1a\xbc\x13\x32\xa0\x5c\x27\x64\xc6\xd4\xb2\xb1\xc0\x85\xab\xf2\x99\xe1\xc3\xe6\x70\x8e\x35\x33\x83\x36\xd7\xec\x30\xa5\xb6\x3e\xb5\xe1\xb2\x9e\xd1\x95\xa2\x1a\x76\x71\xe8\x42\x0b\xbb\x05\x1c\x87\x36\xbc\x2b\x6c\x96\x0f\x33\x9e\x10\x9e\x16\xe9\xc0\x18\xf4\x80\x11\x78\x68\x29\xa9\xe6\xdf\xcf\x98\x02\x39\xc8\x8a\x97\x33\xc5\x8e\x69\x6e\x26\xbe\x5e\x52\x28\x74\x8b\xf9\xf0\x2c\x51\xcc\xf8\x7a\x8c\x2c\xf5\xa8\xb7\x51\x4f\x30\x18\x17\x87\x9b\x42\xc2\x47\x93\x3d\x0c\x5f\xc7\x26\x37\xb0\xdc\xe1\xfb\x6b\xac\x8a\x1b\x2c\xd7\xd5\x9a\x26\x20\xec\xe1\x43\x0f\x9b\x6b\xa7\x6c\x59\x6f\xe2\x63\x45\x70\x97\x7d\xd8\xc9\x06\x94\x15\x93\x47\x39\x34\xc4\x35\xe9\x1e\x9d\x29\x06\x57\x81\xf3\xec\x78\x7d\x18\x42\x24\x5d\x6c\x0a\x84\xa4\x58\xb9\x7f\xc8\x26\x34\x1b\xa1\x69\xc5\x6e\x45\x71\x9a\x16\x09\xb3\x27\xef\x99\xd8\x43\x0d\xe9\x1d\x23\xe0\x04\x0a\xd3\x45\x3c\x76\xb0\x35\x14\xd6\x18\xa8\x9c\xe9\x2b\x4b\xbb\x08\x3d\x2c\xe4\x85\xa2\x67\xf4\x18\xc3\x64\x0a\x40\x0c\x1f\xdc\x37\x1a\xf1\x2f\xb6\xc1\xbe\x60\xb5\x90\x00\x50\x1a\xc3\xe7\x45\x05\x9e\x0c\x29\xb1\x98\x5c\x72\xcf\x04\xa0\xf5\x62\xc1\x8d\x06\x26\xbd\x91\x81\x73\x71\x1b\x56\x9a\x0b\xc1\x90\xc4\x4b\xf0\xc5\xb1\x35\x53\x15\x75\xa8\xa7\xf4\x9e\xb5\xc8\x39\x5e\x87\x40\x38\x67\x17\xdd\xce\x65\x6f\x70\x76\xd3\x39\xef\x5c\xf6\xba\xed\x8b\xdb\xa5\xe7\xed\x09\xa2\xb7\x16\xc3\xb6\x4a\xdc\xe0\xc4\x1d\xb5\x22\x92\xb8\x28\x26\x1e\xce\x19\x6c\x44\xd3\x0d\x91\xce\x06\x29\xd7\x89\xbd\xe5\xe6\x03\x26\x52\x80\x4d\xd9\xea\x82\xae\x6f\xaa\x3a\xf4\xf0\x06\x09\x6f\x78\x3e\x81\x97\xda\x83\x27\xde\xf0\x1c\xf2\xaa\x5d\x59\x4a\x28\x49\xdc\x17\xd1\xa5\xd2\x5a\x0d\x95\x67\x9b\xdb\x6d\x6e\xe5\x26\xaa\x73\xc2\xf1\x72\xad\x73\x6a\xb9\xa0\x7f\x0d\xd2\x62\x1b\x56\xc5\x25\xca\xc6\xd8\x2d\x3c\x2a\x0d\x40\xac\x66\x3b\xa5\x22\xa5\x46\xaa\x79\xc3\x14\xd7\xe3\x96\xf1\x61\x29\xf3\xcc\xf8\x66\xb6\x6a\xbb\xdf\x05\x7c\x95\x8a\x32\xfd\xf4\x05\x22\xbc\xf4\xae\x7e\xea\x5c\xde\x0e\x3a\x97\x3f\x0f\xae\x6f\x3a\x1f\xba\xff\x15\x32\xe0\x5c\xa1\xd3\x32\xea\x38\xb3\xb7\x9e\x65\x24\x3e\x1b\xa3\x96\x95\x20\xf6\xb7\x6f\xc7\xe1\xbd\xf2\x51\x5f\x78\x26\xa2\x8a\xe6\x27\x4a\xe6\xe3\x49\x7d\x43\xd5\x51\x5e\xb7\x7b\x3f\x6e\x35\x4c\xc8\x94\x42\x80\x60\x3c\x62\x8b\x39\xff\x7c\xe4\x58\x1c\x02\x05\x54\x86\x07\xf9\x7e\xf0\x6a\x9d\xa9\xba\x81\x8f\x6d\xa5\x74\x2c\x32\xa9\xa5\x32\x7e\xcd\xeb\x4d\x04\xd4\x8b\xf8\x64\xe9\xc6\x00\x0c\x0a\x84\x9e\x5f\x68\xed\xb4\xe6\xb7\xd2\x65\xf5\xc7\xe3\x8c\x8d\xc7\x2c\x45\xf2\xaa\x36\xec\x2c\x38\x8e\xef\x25\xc5\x45\x5e\xb7\x8a\x0e\x09\x7a\x87\x9b\x38\xc4\x31\xac\xcf\xbb\xaf\xc3\x27\xf5\xbc\xe2\xcc\x57\x84\x49\xa4\xd0\x86\x8a\x06\x64\xad\x0d\xab\x56\x16\x70\xb7\xaa\xa8\x1d\xeb\xec\x1a\xde\xe6\x5c\x9c\x83\x6d\xfc\x30\x0e\xf1\x5a\x38\x43\x45\x84\x84\x1d\x95\xb0\xa9\xd9\x84\x4a\x5d\xc0\x27\xb7\x49\x2c\xd5\x90\x5c\x82\x20\x18\x0a\x11\x72\xd4\xc1\x8b\xa0\x11\x07\x70\x7c\x1b\x03\xbb\xf6\x5c\x46\x34\x18\x2a\x8b\x1a\x88\xa1\xaa\xa6\x97\xd3\x36\x37\x4b\x55\x2a\x08\x46\xd5\x15\xd3\x3c\x71\x38\x3a\xd8\x6c\xe1\xb9\x75\x76\x28\x7f\xc1\xa6\xe4\x38\xae\xda\x9a\x1e\x43\xaa\x57\x5f\x34\xf9\x23\x6a\x2a\x9e\xc6\x14\x70\xed\x6f\xad\x5d\xf6\xbe\x66\xf5\x9b\x8f\xa0\x5f\xec\xf5\x42\x70\x89\x7f\x1d\x84\xbb\x06\xc7\xb7\xdb\x97\x21\x45\x87\x63\xf9\x3a\x6e\xca\xc6\x09\x5c\x75\x33\xff\xfc\x5a\xbe\x79\x5a\x86\xff\xc1\x2b\x72\x42\x35\x4a\xaa\xbe\x04\x7e\x51\xa6\xb5\xa8\xcf\xdb\x64\xe2\x0e\x08\xd0\x7b\x84\x08\x69\xf2\x37\x1c\xa1\xd2\x1c\x4a\xed\xc7\xb0\xb9\x01\x02\x7c\x33\xc2\x8f\x85\xa3\xa0\xa7\x20\xdf\x03\x86\x95\xd1\x5c\x24\x13\x32\xcb\x28\x86\x9d\x4f\xa8\x46\x92\xf6\x2e\x6d\x3a\xe4\x19\x37\x90\x30\x87\xce\xa0\xca\x0a\x5b\xe5\x85\xaa\x7b\x0f\xd4\x40\x8b\x74\xed\x65\x44\xbf\x63\xd8\x55\x51\x0d\xea\x39\x03\xaf\x8a\x23\x1b\x7d\xb1\xd4\x93\x54\x90\xa5\x0b\xba\x2a\xb6\x03\xeb\x95\x1b\x19\x55\xb6\xda\x6c\x67\x5d\x8b\xd7\xd5\xcf\x4b\xeb\x5d\x73\x51\x6f\xee\xe1\x77\x18\x44\x1b\xb0\xf9\x2a\x42\x51\xed\xc9\x1a\x65\x92\x36\xd4\xb1\xf0\x6d\x23\xe0\x50\x53\xdb\xa9\xcc\x87\x4d\x00\x17\x38\xaa\xe5\xad\x2f\x33\xd7\xfb\x73\xbb\x2f\xf3\x5f\xcc\x00\xa9\x61\x86\x6f\x66\xcb\x88\x26\x4d\x0d\x3b\x86\xcf\xeb\x1b\x77\xb0\x0e\x6b\xcf\x79\x81\xd0\x0a\x64\xba\x00\xa3\x61\x45\xda\x9a\x5a\x88\x7f\xcd\xa1\xde\xe2\xd5\xe8\x16\x53\xb8\x76\x21\x32\xc3\x17\x29\xac\xfe\x24\x56\x7b\xed\x95\x7d\x21\x31\x0d\xcc\x58\xb2\xfe\x35\x53\x6d\xf7\xd6\x7e\xbd\xfe\x81\x2c\xd7\x7a\x9a\x29\x2e\x21\xd1\xca\x15\x88\x5a\x92\x0b\x5e\xdb\xef\x0e\x2b\xf9\x6b\xce\x72\x66\x69\x7f\x98\xa7\xe3\x45\x3b\xe6\x06\xd2\x59\x31\xa5\x89\x7c\x24\xd3\x3c\x99\x10\xdf\x38\x49\x59\x46\xe7\xa5\xa9\x81\xbc\x64\x64\x06\xd8\x1a\x5b\x42\x3d\x24\xb9\x36\x72\x0a\x21\x69\x45\xbb\x2a\x17\x40\xf0\x84\x1a\xa3\xf8\x30\x37\xb5\x71\x4c\xa5\x9c\xe7\x2d\xfd\x50\xb7\xd7\x9d\xb3\xee\x87\x6e\xc5\x09\xd4\xbe\xfd\x29\xfe\xf7\xe7\xab\x9b\x9f\x3e\x5c\x5c\x7d\x8e\x7f\xbb\x68\xdf\x5d\x9e\xfd\x38\xb8\xbe\x68\x5f\xc6\x3f\x9f\xb7\x7b\xed\xdb\xce\x2a\xef\xd1\x62\xaf\xcd\x1b\x41\xa3\x94\x6c\x2b\xbb\x38\x1b\x25\x38\xee\xbc\x76\xe9\x7a\x3d\x25\x6d\x9f\xa0\x1e\x57\xf0\xa0\xde\xa3\x07\x9e\x68\x2c\x29\xe2\x1c\x7f\x50\x31\x1b\x4b\x34\xb5\x48\x9b\xf8\x52\x5b\x10\xb6\xa8\xad\xb0\xe0\xd2\x77\xed\xee\x60\x13\x56\x62\x48\x0a\xcd\xad\x80\x89\x96\x23\x97\x37\x9f\xb1\x18\xab\xc8\x95\x55\x6d\xf5\x45\xe7\x81\x09\x93\x03\x90\x0a\xcd\x32\x5f\x11\xcd\xbf\x10\x65\xb9\xf9\x51\x6a\x3e\xe5\x19\x55\x05\xa2\xef\x95\x6b\x0b\x04\x76\x3f\xd6\x90\xd5\xb8\x08\xf3\xe8\x95\x87\xbb\x2e\x81\x71\x9f\x5d\x74\x41\x04\x4a\x8c\xc7\xc2\xf3\x9d\xf7\x05\x26\x66\xbb\x1e\xa7\x14\x42\x69\x8d\x74\xf6\x34\xec\xbe\xb1\x42\xec\x4d\x0d\xa2\xee\x16\x89\xff\x68\x64\x7e\xaa\xa0\x98\x30\x48\xff\x47\x47\x18\x35\xdf\x04\x69\x99\xa4\x4c\x83\x6c\xea\xe2\x5f\xca\x28\xbf\x68\xee\x20\xbe\xf5\x4b\x10\x76\x7c\x7c\x96\x33\xbc\x07\xfb\x3a\x03\x5c\xf2\x06\xf9\x3b\xb3\x97\xd0\x4b\x5d\x87\x38\x8b\x0c\x56\x61\x28\x73\x91\xfa\x12\xa5\x53\x2e\x4e\xa6\xf4\xcb\x3b\x3f\xd3\xc7\x09\x77\x0a\x48\x91\x71\xcb\x32\xab\x89\xcc\x2d\x93\x5b\xbe\x5c\x7d\xb1\x64\xbd\x56\x4b\x8b\x9e\xb3\x82\xda\x53\xe8\xa8\x18\x73\xf4\xc0\xe6\x75\xfb\xb7\x00\xc6\x88\x71\x4d\xee\xc0\x43\x23\x33\xc5\xa0\x22\x77\x88\x68\xca\x30\x52\x2d\xfc\x1b\x22\x66\x4b\xa0\xce\xf5\xcc\x3b\xf6\xe6\xee\x74\x6e\x6a\xfd\xc8\x4f\x00\xa7\xe9\x7a\xb2\x9b\x86\x5e\x65\x6f\xe9\x74\x11\xc2\xce\x71\x66\x77\xeb\xef\x72\x08\x75\x23\xb5\xaf\xd9\xa2\x18\x58\xb6\x61\x2f\x3c\xfe\x0f\x24\x66\x2e\xb8\xaa\x3d\x0d\x64\x4c\x83\xbd\x17\x6a\x1a\xb3\x5f\x73\xe7\xa3\xfb\xe1\xfb\xcd\x2e\x5a\xa3\xe6\xc4\x23\x8d\xc5\x01\xdd\x2e\x9f\xc1\x5d\xba\x30\xae\x5c\xf0\xba\x6c\xed\x1b\xac\xe6\xfb\xbc\x45\xd3\x2b\x9d\xba\x7f\xae\x74\x62\x79\x4b\xac\xab\x40\xfc\x64\xf0\x16\x3f\x57\x50\x2d\x5c\x77\x10\xca\xea\x5a\x8f\x6f\xb4\x21\x4d\xee\x1f\xa9\x4a\xd1\x58\x08\x51\x06\x2d\xf2\xa3\x7c\x64\x0f\x4c\x1d\x91\x84\x29\x43\x5d\xc2\xab\x06\x87\x2b\x1c\x28\xd7\x4e\x5f\x40\x74\x37\x66\x0f\x0b\xa8\x77\x63\xf8\x78\x62\x15\xca\xc8\x3d\x2e\x95\xe5\x47\x06\xd1\x04\x66\x2c\xc1\xb0\xfe\x26\x67\xe2\x28\xa3\x0f\x8b\x19\xbc\xdb\x24\x67\x46\xa5\xbd\xbd\x7b\xca\xf9\x6a\x96\x86\x35\xf8\x0a\xd1\xc8\x35\x67\x73\x33\x91\xe2\x88\x8c\x65\x46\xc5\xb8\xd5\x6a\x11\x66\x92\xd6\xbb\x8d\x08\xdd\x35\x18\x3b\xbc\x42\x4c\x66\x26\x35\xcb\xe6\x01\x87\x33\xc4\xce\xdb\x55\x86\x58\x7d\xcd\xd1\xe4\x51\x43\xfd\xb7\xd5\x1c\xcf\xe7\x35\x9d\xd7\x6b\xaa\x1b\x27\x8b\x34\xb4\x03\xf8\x9c\x1b\xb4\x84\xef\xd7\x6b\x5e\x1b\x24\x3f\x79\xc4\xeb\x22\x09\xaa\x01\x00\x47\x8a\x4d\x33\x7b\x7e\x96\x4d\xa5\x61\xb6\x4a\x5a\xaf\x6d\xc9\xa5\x18\x6f\x95\xeb\xb2\x48\xd1\x35\x14\x17\xd2\xc2\x76\x02\xc8\xc8\xf2\xe9\x62\x7d\xc3\x7d\x49\x51\xc5\x20\xf1\xaf\x33\xe8\x6e\x6d\x29\xaa\xa8\x80\x23\x15\xe6\xe3\xb8\xf1\xa2\x2d\x14\x89\x09\xb8\xa5\xe2\x1a\x52\xf5\xb7\x49\x99\x09\xcd\x60\xd3\xe0\xb2\x81\x12\xc9\x50\x93\x4c\x49\x31\xce\xe6\x98\x05\xe4\x4d\xfc\xee\x13\x8d\xa2\x0e\xf8\x79\x9a\x39\x43\x35\x68\xe8\xb9\xc3\x5b\x40\x7e\x88\x70\xaa\x8a\x18\x07\xf0\xa7\x3a\xfe\x57\x32\x85\xc3\x85\xcf\x31\xa9\xd9\x87\x26\x89\xa8\x1e\xca\x02\x10\x4c\x39\x4d\xac\x2f\xca\x5d\x4d\x0b\xdc\x21\x17\xcf\xe5\x1c\xe3\x5c\x31\xc4\x6f\xd0\x96\xb9\x1a\xfe\x50\x2c\x61\xf5\x34\xc1\x58\x07\x51\x9d\x90\xf5\xce\x15\xae\xfe\x27\xfb\xf1\xa2\x54\x10\x0c\x5a\x0b\x8d\xdb\xeb\xa0\x88\xf5\x2f\xb4\xec\xa2\xc6\xad\x9b\x9a\x5b\xb6\xc2\x8f\x5d\x53\x43\xa6\x30\x58\x80\x24\x68\x05\xbe\xbe\x70\xd0\x2c\x91\x7f\xe8\x9e\xcd\x6b\x56\xca\xe5\x20\x21\x20\xc4\xbc\x94\xd6\x09\xb0\x39\xbe\xd8\x41\x7d\xe9\x1e\x8f\xf8\xec\x4a\xd6\x61\xda\x9e\xd7\x6a\x6b\x3b\xdc\x32\x38\x02\xd7\xb9\x39\x20\xa2\xb8\xd3\xdd\xc2\x39\x70\x21\xc4\x7e\x45\x71\x20\x61\x76\xf9\xda\xa2\x36\x16\xc1\x47\x22\xdc\x76\xce\x6e\x3a\xbd\x67\x0b\x98\xf0\xd1\x0a\x1b\x47\x4c\xf8\x71\x9e\x77\x3e\xb4\xef\x2e\x7a\x83\xf3\xee\xcd\x53\x84\x4c\xb8\x47\x5b\xc4\x4c\xdc\x3a\xc4\xa7\x33\x29\x0c\xfb\xb2\x13\x83\x52\xb9\x18\xd0\x0d\x42\x74\x03\xaa\xda\x32\xb6\x85\x8d\x2e\x22\x56\x05\x38\x29\x4a\x66\x32\xf5\xd2\x73\x00\xa8\x8a\x6a\x31\x8d\x78\x96\x41\x22\x4c\x30\x38\xb9\xe8\x76\xbb\xa8\x47\x84\x87\x20\x3d\xcf\xc6\xfa\x62\x58\x82\xec\x02\x25\x78\x22\xa5\xc6\xfd\xa1\x33\xbb\x00\x8a\x43\x1e\xc4\x32\x50\x2b\xab\xcc\x16\xc3\x40\x9c\xf6\x5c\x10\xd9\x14\x35\xe6\x36\xf1\x29\xf3\x9c\xdc\x2d\xb4\xee\xc5\xeb\x29\xae\x44\x9f\xfe\x2e\xf6\x0f\xc3\x0c\xf1\x10\x73\x81\xb7\x74\xe9\x34\xdf\xd6\x93\xee\x49\x71\x04\x60\xdd\xed\x4e\x52\xb0\xca\x01\x14\x7a\xb1\x91\x6e\x23\x10\x4e\xb2\x30\xd7\xdd\x73\xf4\x2b\xcb\x51\x65\x9d\x2d\x2b\xb4\x6b\xcd\xc1\x76\x47\x11\x52\x9a\x24\x59\xae\xad\x26\x84\x7a\x44\xfb\xf3\x6d\x5f\x60\x51\x1b\xa0\x02\xed\x21\x07\xb1\x0b\xf4\x6a\xca\x52\xff\x46\x92\x11\xf3\x4e\x62\xc7\xc1\xde\xa2\xd5\x66\xca\xa8\xd0\x58\xa8\x22\xcb\x98\x2a\x28\x03\xc7\xc3\x58\xea\xc0\x6a\xa1\xe0\x48\xf1\xbd\xab\x55\x20\xe1\xd4\xda\xf1\xba\xa7\x0e\xab\xbf\x4a\x4f\x4d\xf1\x9e\x10\x32\xf5\x94\x94\x53\x13\xaa\xbb\x2e\x15\xb9\x68\xb3\x5a\x22\x2a\x87\xcc\xae\x45\x4b\x3d\x6c\xee\x40\x4a\x7b\x24\xa5\x35\xee\xf5\xf8\x96\x20\x13\x69\x19\x68\x40\x0b\x2c\x1c\x2f\x21\xcf\x33\x83\x88\x00\xa8\xa7\x5c\x77\xeb\x14\xa0\x1b\x5b\xb9\x62\x2e\xaf\x2e\x3b\xb1\x23\xa5\x7b\xd9\xeb\x7c\xec\xdc\x94\x72\x7a\x2e\xae\xda\xbd\x52\xfe\x4e\xef\xa6\x92\xf6\xf3\xfe\xea\xea\xa2\xb3\xe0\x91\xe9\xf4\xba\x9f\x4a\x8d\x9f\xdf\xdd\xb4\x7b\xdd\xab\xd2\x7b\xef\xbb\x97\xed\x9b\x5f\xe2\x5f\x3a\x37\x37\x57\x37\x95\xfe\xee\xce\x96\xfb\x76\x4a\xd3\xa8\xd7\x4b\x0a\xd3\x71\x84\x3f\x52\xb7\xa4\x3d\xaa\xef\xf7\x9c\xcd\x06\xd9\x9b\x9b\x64\xa3\xd5\x26\x9f\x95\x54\xf4\x94\x0d\xb6\x4b\x74\x6b\x4a\xd6\xab\xed\x47\x31\xa3\xe6\x03\x6a\x0c\x9b\xce\x76\x2b\x9d\xb4\xfe\x11\xd9\x2c\x87\x0e\xf8\xcb\x1a\x39\x74\xa5\x5d\x7d\x39\x39\x74\x35\xe9\x71\x8b\x39\x74\xdd\xcb\x6e\xaf\xdb\xbe\xe8\xfe\x9f\x4a\x8b\x9f\xdb\xdd\x5e\xf7\xf2\xe3\xe0\xc3\xd5\xcd\xe0\xa6\x73\x7b\x75\x77\x73\xd6\x59\x1e\x5d\xbb\x38\xfa\x42\x69\x3b\x26\x71\x3f\xa7\xa4\x17\x89\xd3\x68\x23\x75\xda\x9a\x5d\x71\x40\x5c\xe5\x06\x60\x4d\xb8\x18\x1f\x41\x71\x9f\x53\xd2\x51\xaa\x3b\xa5\x63\x76\x9d\x67\xd9\x11\x09\x25\xbc\xce\x14\xa3\x06\x5e\xbb\x96\x69\x37\xfa\x0e\xdc\xa8\xb5\xd3\x80\xfe\x5d\xa9\x2c\xec\xfe\xc8\xf5\x1f\xa9\x78\xc1\x45\xeb\xe2\xd5\x43\x21\xc3\x53\x00\x8b\x95\x23\x87\xfa\x7f\x14\x1c\x3e\xe4\xd7\x5c\x1a\x4a\xd8\x97\x04\x22\xca\xeb\xe9\xe4\x42\xee\x54\xea\x6a\x35\x2e\x7f\xfd\x99\x5e\x6d\x96\xa8\xd7\xe4\x11\x29\x6a\xb0\x49\xa5\x19\x37\xcb\x4f\xf8\xa9\x2b\x2e\x53\x2f\x10\x99\x6c\x0f\x11\x2e\x17\x72\x5c\x8f\xca\x02\xd9\x3e\x0e\x4a\xa6\x00\x45\x87\x78\x39\x39\x26\x9a\x8b\xfb\xbe\xf8\x3c\x61\x82\xc8\x5c\xe1\x4f\x46\x2a\x00\xf8\x19\x65\xb9\x9e\x30\x28\x69\x77\x44\x1e\x19\x99\xd2\x39\xc6\xcd\x4d\xa5\x8a\x70\x6a\x80\x64\x2c\x71\xc2\xd7\x19\x17\x96\x5b\xcc\xb8\xb7\xa7\x56\xb7\x7e\x1f\xee\x16\x9f\x4f\x41\x77\xcf\x6a\x5c\x2f\x68\xe4\x71\xc2\xc0\x5f\x5e\x18\x94\x42\x6d\x7e\xe4\xdc\x80\xd9\x27\xe5\xbd\xd5\xcc\x7c\x92\xd5\x77\x1e\x95\x00\x96\xfb\x41\xf2\x94\xa4\xf9\x2c\xe3\x49\xe0\xbb\x8f\x52\x35\x66\x91\xa2\xdd\x7f\x83\x2c\xd2\x8a\x37\x6b\xd9\xc4\x6a\x9c\x0a\x91\xbd\x63\x49\x3e\xe9\x13\x67\xd4\x46\x25\x3a\x72\xcd\xd4\xb1\x51\x7c\x3c\x06\x2b\xaa\x77\x51\xbe\xfc\x94\xdb\x22\xd7\x67\x77\x6f\x5c\x1c\x2c\x93\xc9\x31\x4f\x68\xf0\xc2\x01\x4d\x05\xd9\x35\xe4\xf5\xf9\x63\x3f\xcb\x15\x96\x46\x1c\x15\x09\x57\x8d\x41\xcc\xbe\x1e\xed\x00\xab\x9e\xec\x5e\x8d\xa5\x3b\xc2\x0a\x80\x0e\x37\xbc\x88\x26\xf3\x95\x17\xfc\x0d\x57\xf4\xed\x61\xaa\x10\x21\x16\x2a\x0d\x12\xf9\x08\x55\x9b\xac\x36\x62\x85\x73\x3b\x53\x21\x41\x36\x09\xd0\x55\xc1\x70\xeb\xc1\xbd\x46\x1e\xf1\xd2\x79\xfc\xb1\x58\xf6\xd7\x4f\x91\x0e\x8c\x1a\x90\x3f\xc2\x29\xad\x65\x91\xbb\xe2\x58\x85\x0c\x81\x6d\x25\xe2\xe5\x1e\x8e\x71\x26\x87\x58\x36\x6a\x01\xe1\x2a\xbe\x75\x36\x73\xe7\x8f\x1c\x0e\x59\xf9\xce\xf2\x99\xe2\x10\x4c\x2e\x97\x20\x07\xc7\xd5\x93\x77\x0a\x10\x7e\x82\x05\xcb\x8d\x8c\x0a\x75\xd9\xc9\x75\x43\xbd\x2e\xef\x9d\x00\xaa\xe8\xa6\xb5\x55\x1f\x8a\x13\xe3\x57\x7e\x83\x54\xda\x8d\x10\xcc\x66\x8a\x79\x5f\xf2\x9c\x99\xe0\x42\xce\x3c\x5e\x0d\x64\xd2\x86\x59\x97\x63\x68\xbc\x97\x3c\xc4\x3d\x42\xc6\x7b\x28\x22\x37\x9d\x49\xc1\x84\x33\x6e\x08\xd9\x17\xae\x71\x8f\x87\x18\xea\x79\x94\xdc\x36\x47\x4e\x07\x71\x95\x23\xb5\xcc\x1e\x9c\x9d\x32\xca\x64\x06\xbc\x22\x3b\xc0\x33\xcb\xce\xad\xf0\x42\x45\x5a\x94\xcd\x9f\xb0\xbe\xa8\x80\x02\x2a\x36\xe6\xda\xc0\xc5\xe2\x29\x36\xfe\x7e\x6f\x40\x69\x25\x79\x67\xd9\xd2\x37\x02\xa5\xad\x62\x5c\x23\x9a\x6c\x02\x58\x34\x9f\xb1\xb4\x1b\xbe\x5b\x4e\x0c\x25\x47\x62\x1a\x05\x5a\x95\x0e\x39\xd2\x80\x2f\x0d\x0b\x51\x85\x3a\x64\x23\x87\x4d\x0a\x15\x62\x3c\x88\x11\x6c\xd1\x98\xe6\x54\x51\x61\x18\xd3\x7d\x81\x21\x97\x18\x0f\x5e\x0a\x00\x19\x95\xa0\xf1\x0a\x59\x2a\x91\xda\x60\xb4\x19\x7c\x32\xa2\x3c\xcb\x55\xa3\x88\x80\x64\xb9\x95\x6b\x7b\xd9\x32\x9d\x41\xb3\xa4\x6e\xd7\x42\x94\x46\x74\x8c\x42\x84\x86\xaf\x62\xe1\x2b\x6d\x94\x9d\x95\x4d\x18\xa7\x4e\xd9\x5b\x7f\xc3\x83\x7e\xb8\x04\xf3\xca\x6e\xef\x2a\x59\x65\xb5\x01\xe2\xdf\xff\xb8\x1a\xee\xb2\x91\x53\x00\x8d\x4c\xa8\x48\xa1\x76\x15\x35\x91\xb9\x01\xf7\xd6\x51\x1c\x80\x88\x19\xcf\x8a\x9a\x7d\x13\x60\xea\x1b\x24\x0b\x7e\xa2\x15\xab\x55\x75\x30\xad\xf0\x37\x94\x7a\x29\xbb\x7d\xea\xcc\x8d\x45\x2c\xa2\x43\xb3\x0b\xc7\xa3\x79\xbf\x6b\x4a\xd3\xef\x9e\x15\xb4\x2e\xbe\x5f\x51\xab\x6c\x91\x2f\x25\x8e\xee\xdd\x6d\x11\x10\xfd\x76\xa4\x7c\x2c\x71\xae\x59\x29\xf7\xaa\x2f\x1c\xdc\x25\x56\x10\x02\xcc\x54\x0c\x2f\xd4\xe4\x87\xe0\x3b\xfc\xe1\x4f\x3e\xb8\x6c\x4e\x46\xb0\xd6\x10\xc1\x29\x93\x24\x57\x00\x2f\xe8\xab\xda\x31\xbc\x09\x36\x49\x91\x6d\xe3\xfd\xa7\x81\x1f\x40\xa0\x5a\x73\x85\x26\xa7\xc7\x94\x26\xd5\x03\xf1\x15\x81\x3b\xc3\xcd\xe3\x90\x33\x94\x36\x44\x1b\x36\xab\x65\x01\x25\x11\xa7\xcc\xbc\x77\xca\x82\xaa\x83\xd8\x5c\x9d\x6d\xf9\x89\xce\x96\xa1\x1f\xee\xdc\xe2\xaa\x6d\x08\xe1\x2f\xd5\x9b\x09\x90\xff\xa2\xea\xfb\x35\xab\x17\x32\x46\x9f\x25\xca\x73\x13\x2c\xe6\x90\x38\xec\x50\xcc\x97\xf1\xb6\xf2\xa7\x9b\xe7\x8e\x17\xe1\x8d\xae\xf8\x35\x36\x38\xc4\x6c\xdf\x38\x41\x79\x9b\x04\xf2\xea\xc6\xf8\xb6\x96\x6c\xc7\x8e\xc9\x93\x45\xbe\xfb\x33\xe6\x4e\xfe\xbc\xb0\x44\x9b\xa6\x4e\x3e\xc4\xb9\xe2\x20\x2e\x15\xe1\x18\x6b\x29\x91\x21\x65\xf2\xe7\x72\xc2\x7f\x69\x89\x25\x5f\x0b\x19\x61\xb1\xba\x1e\xdc\x50\x29\x13\xd2\x30\x42\x89\xe0\xd9\x89\xc8\xb3\xec\xe4\x52\x0a\xcb\x98\x35\x1f\x63\x08\x09\x56\xc6\x87\x30\xd2\xa2\xe4\x44\xc9\x7a\x1c\x1d\x01\x60\xce\x76\x48\x68\xd8\x36\x96\x63\xda\x2d\xc8\xe6\x7d\x61\xbf\xc0\x7b\x04\x91\xfa\x79\x08\xbd\xc5\xde\x42\x15\x7e\xec\x0b\xf2\xd0\xe6\x71\xe3\x35\x04\xb6\x0c\x6d\x70\xa7\x98\xd7\x43\x0d\xc8\x17\x53\x03\x52\xaa\x50\x94\x7e\xfd\x6a\x90\xcd\x87\x6a\xeb\x72\x8c\x41\x37\x09\x62\xeb\x1a\xf4\xf8\x35\x3d\x64\x4f\x89\x3d\xb9\x33\xd0\xa4\x5f\xa9\x7d\x38\x0a\x7e\xc5\x84\xd4\x81\x1c\xf9\x1a\x8e\xdb\x27\xd1\xae\x69\xa9\x8d\xb3\x00\xe2\xd4\xd9\x45\x22\x69\x52\x55\xa5\x18\x38\x65\x76\xbd\xc1\x56\x17\xec\x4a\x7c\xc0\xcf\xaf\x65\xc6\x93\xe5\xe6\x6d\x7f\x35\x01\xb2\xf9\x82\x73\x03\x6a\x00\xb8\xca\xc2\xd4\x6b\xd8\x68\xb7\x35\x2c\x31\x85\xb5\x66\x71\x72\x9b\x58\xff\xbc\xba\x10\x5a\x01\x94\x96\xa2\x34\x83\xbd\x56\x20\xe4\x16\xf2\x40\x50\x90\x06\x90\x70\x3a\x03\x77\x8a\xd3\x2f\x4a\x03\x01\xde\xf4\x38\x91\x19\x3b\x42\x73\x10\xd8\x8e\xfb\x62\xc6\x54\x22\xad\x92\x06\xc5\x9f\x31\x5e\x8e\x67\x69\x91\x6d\xf9\x16\x5c\x59\x60\x70\x7e\xe7\x20\x25\x8a\xf2\xfa\x01\xa0\x7f\x35\xd9\x7a\x18\xb9\x5d\xe1\x0a\xf6\x65\x9b\x5e\x46\x05\x9f\x9d\x7b\x0b\x97\xc2\x01\x6a\x57\xec\x2e\x76\xd1\x4b\xe3\xd9\x6c\x87\x59\xc8\xa3\x83\x0b\x06\xab\x39\x98\xca\xbe\x3a\x58\xfd\xea\x52\x12\x69\x49\x94\x07\x07\x82\xfd\x88\x82\x0b\x92\xa2\x18\x52\x44\xa8\xba\x4d\xed\x8b\xc2\xd4\xf4\x9d\x8e\x45\x92\xda\x7d\x6e\x91\x0f\x52\x11\x0e\x68\x4d\x09\x3b\x22\xdf\x95\x26\xfa\x1d\xc4\x4c\x0b\x09\xfd\x39\x03\x45\x69\x69\x80\x5c\x8f\x08\x37\x7d\xc1\x35\x52\xa6\x62\x19\x7b\xa0\xae\x1e\xaa\xd7\x0a\x9d\xf9\xda\xe5\xf9\x86\x69\x83\x03\x95\xba\x28\xed\x34\xa0\x0f\x42\x74\x92\x8a\x63\x6f\x29\xc4\x78\x01\xca\x7a\x2e\x20\x8d\x8e\x7d\x41\x2c\x7b\xab\xe8\x3e\x30\xa5\x78\x9a\xda\xee\x8a\x22\x0b\x0e\xf0\x08\xaa\xf6\xcd\x65\x8e\xa5\x67\x52\x70\x95\xd0\x90\x58\x15\x02\xa1\x38\x0a\xa3\x43\x69\x26\x65\xf0\x6f\x44\x44\xc1\x93\xc4\xac\x8a\x6d\xa0\x36\x0f\xac\xab\x60\xd4\x4c\x08\x37\x47\x10\xc1\xe6\x19\x47\x5f\xd0\xd4\x01\xca\xb9\xe6\xec\xd2\x00\xdd\x2f\xd9\x67\xf7\x7c\x28\x1f\x96\xc9\x74\xbb\xfa\x47\xf0\x54\xcf\x32\x2a\x06\xc8\x50\xbf\x82\x87\x24\x02\xab\x69\xb2\x63\xe5\xc3\x41\xc0\x7c\xdf\xcb\x38\x83\xa4\x73\x53\x82\x90\xb2\x22\x9c\xef\xe8\xa8\x5a\x99\xd5\x4b\xe6\x90\x56\xe9\x4d\xf9\x3c\x83\x9a\xe9\x68\x25\x5b\x9f\x0b\x14\x5e\x1e\x5a\xb1\xe9\x7a\x6a\x5d\xe5\xe6\xf1\x14\xf0\x52\x5d\x3d\xeb\xec\x7c\xe5\x0e\xa9\x6e\xfb\xe6\x5e\x86\x05\x81\x69\x2b\x4f\xc3\x8a\x61\x3d\xad\xb7\xa1\xd1\x84\xb0\xe8\x75\xf8\x1c\x6a\xe4\x04\x9b\x32\x46\x0d\x30\xa2\xa5\xd5\x6b\xbc\x85\xa3\x1e\x8c\xa8\x12\xe2\xf7\xa4\x81\xc8\x65\x64\xf2\xb5\x33\xc7\xb0\x58\x0f\xe9\x0a\xe2\x2d\x15\x47\xa4\xff\x06\x29\x4b\xf7\xdf\x20\xe6\xb2\xc7\xb4\xf2\x95\x80\xdc\xf9\x49\x4b\xf5\xde\x82\xa5\x1d\xdd\xe5\xc5\x81\x73\x15\x6a\x36\xb2\xe6\x7d\xcd\x12\x3c\x51\x5a\x1d\x46\xd4\x0c\xb1\x01\x77\x4d\xa2\xce\x39\xf7\xf5\x79\x00\x77\x51\xe5\x89\x29\x26\x1c\xca\x99\xbc\xf7\x1f\xda\x25\x9a\xe5\xee\x46\x0d\xe5\x43\xa4\xea\x0b\xdf\x5a\x51\x55\xb0\x9d\x65\x0b\x4d\x2d\x56\xf2\x89\x68\x15\x6c\xd4\x3e\xe1\x1d\x80\x14\x8a\x00\xf1\x2a\x1f\x00\x9b\xf7\x90\x15\x68\x7c\x2d\x52\xd4\x92\x02\xd1\xa3\x52\xb4\x26\xae\x59\x93\x65\xbe\x60\x0b\x4a\x6d\x51\x95\x0e\x9d\x43\xe4\x35\x56\xdc\x8f\xc2\xd3\xfb\x02\xea\x17\x8d\xb8\x3d\x24\x7e\x5d\xfa\xe2\x93\x74\x61\xee\x20\x5e\xf9\x49\xfa\xd0\x75\xb7\x6c\xdf\x85\xbc\x7f\xf7\xc3\x39\x5c\xdb\x23\x74\x0d\x57\x90\x20\x21\xa4\x03\x02\xcf\x8e\xac\xec\xa1\x8a\x49\x25\x54\xf4\xc5\xdf\xed\xf2\xf8\xa2\x3c\x6e\x5b\xe5\x08\x0f\xb1\x47\xce\x24\x6f\xff\x1b\x1b\x7d\xfb\xa7\x77\xff\xfd\x0e\x4b\x9e\xe5\x1a\xb0\x56\x8e\xca\x57\x48\xc8\x54\xca\xb3\x0c\xc2\x1e\xfd\x0c\x46\x4a\x4e\x11\x12\x25\x74\xb1\x14\xbe\xdf\x69\x39\xfb\x2e\x56\x5d\x58\x5e\xdb\x24\xa1\x26\x99\x1c\x7b\x69\x2e\x2e\x54\xc4\x75\x51\x0a\xfd\xff\x67\xef\xca\x7a\xe3\x36\x92\xf0\x7b\x7e\x45\x63\x5f\x22\x03\xf4\x08\x48\xb0\x2f\x7e\x13\x7c\x20\x32\x04\x5b\xb0\xac\xec\x02\x61\x30\xea\x21\x5b\x1c\x42\x9c\xe6\xa0\x49\x46\xab\x05\xf6\xbf\x2f\xba\xaa\xfa\xe2\x34\x8f\x39\xa4\xcd\x3a\x7e\x08\x62\x68\x48\xf6\x5d\x5d\xc7\x57\x5f\x69\xcd\x51\xeb\x5a\xf1\x64\x1d\x6d\x81\xa9\x8d\xe5\x32\x0c\xf6\x8b\x1e\x02\xc4\x4d\xbe\x06\xbb\xd2\x67\x0c\xc5\xcd\xe9\x68\x04\x9d\xa6\x67\x1f\x37\x44\x0a\xce\x5d\x4a\x2e\x62\xc9\x37\x22\x67\x29\x26\x1e\xa7\x7f\x33\xcb\x9f\xca\xed\x6a\x51\x3d\xdd\xb7\x0b\xc8\x3b\x58\xe8\x69\x59\x40\xb6\xf1\xc4\x4d\xb7\xcc\x77\x4d\xa5\x89\xe9\x1e\x34\xb6\xe2\xfa\x8e\x9d\x1d\xdb\xd2\x7c\xa5\x05\x5d\x3c\x76\x7e\x6e\xc2\x18\x50\x98\xec\x05\xa5\x5d\xa8\x10\x8d\x56\x72\x3d\xc5\xca\x9d\x4f\xac\x06\xc0\x9a\x96\xb7\x65\x86\xac\x41\x92\x57\x4f\x40\x67\x92\xa4\x32\x2f\x15\x9a\xd6\x3c\x7b\xca\xaa\x32\xa3\xa2\x32\xa1\x2e\x24\xfe\x10\xb2\x0d\x70\xe6\x40\x42\xf4\x52\xea\xd0\x10\xc2\x3d\x3e\xfb\xb7\x03\xaa\x90\x2d\x00\x16\x7a\xcd\xfa\xdb\x84\x88\x4d\xd5\x9e\xc4\xb0\x8e\xba\x1b\x52\xf0\x8c\x3d\x5b\xab\xb2\x28\x25\x6f\x6b\xc5\xce\xae\x4d\xde\xca\x2b\x9b\x6b\x09\xb3\x18\xef\x46\xcf\x5f\xb7\xcf\x14\xa1\xaf\x2f\x7e\xd9\x42\x7c\x52\xe4\xcb\x5d\x60\xf1\xbe\x24\x7a\x93\xf1\x77\xfd\x54\xd3\xf2\xcd\xd6\x27\xd1\xb2\xd4\x2e\x34\x33\x15\x4e\x02\x33\x1d\x03\xb3\xae\x6c\x1c\x82\x29\x95\xe4\x0c\xc1\x75\xab\x55\x84\x1d\xb6\x3f\x4a\x10\x1c\xcb\x03\x61\xdb\x54\x5b\x6d\xfa\xed\x51\x87\xf1\x97\x2b\xe3\x23\x72\x17\x41\x20\x59\x61\xa0\x42\x66\x70\x4e\x01\x9e\xba\x0e\x10\xb2\xa9\x74\xe8\xd4\xb7\x55\xdd\xe5\x8c\xdc\xe5\xe4\x7c\x56\x0b\x56\x8a\x45\xc2\x9a\x9f\xdf\x9c\x9f\x2f\x16\x03\x33\xb1\x2f\x5b\x83\x3d\xdf\xf0\x5e\x7c\x87\xc3\x6f\x51\xf4\xf7\xc4\xd1\x0a\x4a\x8a\x2d\xf7\xb3\x3c\x0c\xd7\x05\xec\x16\xdf\x32\x0f\xb1\x8d\xfd\x26\x6d\x99\xb5\x63\x9a\x33\x20\xc9\xf1\xa6\xb6\x5c\x09\xd9\x2e\xa1\xc5\xfd\x1a\x83\x46\xae\xe1\xf5\x20\xab\x65\x96\x85\xf5\xdb\xd7\x1a\x0d\x67\x03\x6d\xfd\xdd\x2b\x88\x48\xbc\x59\xbc\x79\x60\x67\x25\xc4\xb1\x3c\x27\xe3\x54\x05\x38\x1a\xd0\x01\xb3\xe7\x0d\x28\x10\x4c\xb3\x06\xe4\x7a\x8f\x59\xde\xb6\xda\x9f\x45\xf7\x69\x41\x61\xfe\xe6\x3c\xc0\x88\xdc\x74\xee\x6e\xc6\x5b\xaa\x40\xff\x6f\xa1\x6a\x97\xb2\x48\x5c\xbc\xde\x87\x47\x60\xde\x4f\xcb\x42\xd5\xdd\x4e\x11\xfe\x59\x37\x01\x92\x46\xc1\xfb\x41\x2a\x3b\xfc\x85\xd0\xc3\x78\x4d\xaf\x9e\x0c\xdc\x7b\x98\x8e\x73\x79\x00\x5b\xb9\xed\x8a\xbb\x34\x7d\xe9\x69\x2c\x09\x2b\x8a\xcd\x01\x3d\x07\x25\x40\x2b\x74\x65\xc3\x36\x7c\x4b\x31\x63\x2a\xd6\xdc\xf7\x8a\x2c\x60\x10\xbf\xfd\xf3\xf7\xc5\x10\x67\x0c\x74\xfd\xe0\x4a\x5c\x1f\x4c\x1d\x2e\x25\x78\xee\x38\xcf\x7d\x4a\xf3\x29\x3e\x98\xc9\x0d\x79\x0c\xfb\xc8\x11\xeb\xb2\xab\xab\x58\x72\x03\xb7\xc5\xcb\xdc\x27\xfc\xb3\x1b\x9c\x96\xc7\x52\x5e\xd7\xf7\x0c\x74\xe0\x01\x6d\x69\x41\xfd\x8c\xb4\xb0\xc7\xec\xc5\xe5\xd3\x0b\xe9\x81\x43\x89\x9c\x73\xba\x1f\xbc\x7b\xb4\xf6\x7a\x4c\xfe\xe7\x68\x5c\xef\x9d\x9f\x66\x0d\x4e\x99\xac\xde\xac\xb4\x06\x89\xf4\x28\xe4\x15\x05\xd1\x74\x61\x72\x81\x6c\x22\x83\x11\x31\xc8\x43\xde\xcb\xa4\xb4\x21\x65\x3f\x53\xc1\xdf\x67\xd1\x60\xda\xc0\x7d\x70\xda\x54\xd5\xf8\xe1\xb8\xe8\x8f\xc0\x55\x81\x7f\x28\xb3\x07\xa1\xb7\xf2\xbd\xab\x3f\xe0\xab\x56\x56\xb9\xb6\xa9\x1b\x44\xf0\xd2\x11\x55\x05\x8d\xa5\xa4\x12\x34\x95\xc9\xbe\x77\x18\xef\x1f\x9b\xf8\xe4\x3c\x77\x5e\x6d\x7c\x2e\xe0\xfb\x36\xfb\x8b\xd8\x0e\x03\x18\x64\x82\xea\xe0\x4f\x0e\xbd\x2a\xb2\x5a\xda\x8c\xb1\x93\x58\x19\x91\x9c\xdb\x78\x77\xe1\xb7\x1d\x9a\xc4\x29\x93\xe7\x48\xcb\xcb\x93\x6d\xaa\xce\x88\xf6\xb1\x65\x40\x55\x03\xd3\x04\x6d\x27\x6c\xc3\x4b\x49\xc7\xa0\x55\x3c\xd3\xba\xd3\xaa\x2b\x8a\x41\x83\xa0\xaa\x8b\x67\xf5\x4e\x9a\x0c\xd5\x41\xef\xa4\x1d\x61\x35\x96\x75\x39\xb1\x43\xbf\x21\xcb\x6f\x34\x4b\xe1\x14\xb6\xdb\xa5\x69\x09\x3d\x50\xf7\x65\x25\x5e\xc6\x5c\x3b\x91\xed\x79\x39\xc7\xf6\x34\x2e\x4c\x80\x51\xe1\x38\xac\x93\xe9\x2f\x64\x94\x22\xb4\x7c\xa9\xdf\x7c\xd6\x74\x0d\x9b\x60\x06\x87\x95\xb8\x4e\x1a\x21\xf3\x06\x68\x4d\x4f\x9f\xbf\x01\xb2\xfd\xf8\x4c\x8b\x09\x5a\xdf\x9b\x7a\x23\x18\x34\xd5\x20\x67\x00\x23\x1c\x58\x02\x21\x0f\x3d\x40\x47\x2f\x05\x07\x9e\x7c\xfa\xd9\x9a\xcb\x42\xe4\x2e\x36\x78\x26\xc5\x23\xd3\xb2\x36\xf1\x7d\xc0\xde\xf2\x24\x4c\xb4\xd9\x2b\xad\xdb\x04\x21\x63\x25\xb2\x5a\xe5\x90\xb4\x5b\x70\x95\x03\x50\x81\x36\x7c\xc5\xb3\x07\xa8\x1d\x02\xd7\x11\xb6\x48\x7e\x6a\x93\xd7\x8a\xb1\x13\xf7\xb5\x52\x66\x48\x1c\x67\xeb\x77\x9a\xfe\xe1\xeb\x0d\xe3\x99\xaa\x1b\x2a\x2e\x48\x25\x23\xa8\x56\x81\x47\xd7\x0e\x2d\x9e\x24\xe4\xba\xab\xbd\xce\xb2\xa2\x5d\x12\x85\x82\x78\xd0\xba\x7e\x34\xb8\x90\x47\xee\xdc\xfe\xfb\xa0\x6a\xae\x69\xcf\x1a\xc4\xa5\x17\x24\x00\x41\x1e\x70\xc6\x7e\xa8\x15\xa5\xd1\xc2\xa6\xb8\x26\x6a\xda\x5f\xca\x3f\x44\xc2\x6e\xb6\x5c\x3d\x24\xec\xdd\x93\xe4\x9b\x32\xfb\x58\xaf\x62\xfe\xe6\xd3\x9b\x1a\x04\xb8\x59\x66\x15\x6f\x66\x7a\xff\xa3\x9d\xb8\xa4\x0f\xbd\x85\xef\xcc\x9f\xc0\x5f\x80\x1b\x68\x33\x73\x65\x52\xf9\xf5\xf3\xbb\xcf\x67\x0f\xbc\x55\x75\xc1\xe5\xab\x37\xec\xbd\x96\x0c\x44\x8b\x87\x21\xe8\x7b\x25\x04\x38\xf8\x09\x3b\x7a\xb6\x6e\xdb\x6d\xf3\xe6\xfc\xbc\x28\xdb\x75\xb7\x5a\x64\xf5\x06\x5d\x59\xb5\x2a\xf0\x1f\xe7\x65\xd3\x74\xa2\x39\xff\xf9\xa7\xbf\xbf\x8a\xcd\xfa\x0e\x70\xf4\x68\x5b\xe9\xf4\xe5\xdb\xe3\x37\xc0\x3f\x76\x40\x81\x6c\xc8\x1f\xf1\xff\xe9\xe3\x1f\xc0\xf4\x7e\xeb\xda\xde\x04\x52\xe4\xbb\xbb\xfe\xa4\x9a\x51\xd4\x83\x62\xbc\xe1\x3c\xdf\x94\x32\x30\xe2\xff\x54\x21\xc0\xfe\xa2\xc6\x30\xf4\xc1\x2d\x3d\xcb\xed\x71\x0a\x93\xe2\x9a\x43\xe5\x51\x43\x38\x07\xe2\xbf\x69\x6b\x25\x88\x02\x09\xed\x8c\x55\x55\xaf\x80\x37\x47\xff\x32\x54\x55\x2f\xab\xea\x66\x36\x56\x7b\x77\xc1\xde\xd2\xeb\xa3\x6a\x6b\xbd\xd9\x02\x26\x40\x89\x06\xc0\xa1\xbb\x86\xfc\x4e\x30\xf5\x24\xba\xce\x6e\x77\xf5\x95\xfb\x6e\x47\xd7\xd9\x4d\x15\xd5\x5b\x1a\xfc\xff\xef\x47\xf6\xf4\xd0\xbd\xfc\xde\x8f\xaa\x73\xa0\x01\x6e\xa1\xe8\x04\x7a\xca\x9a\x52\x16\x95\xe8\x8d\xd7\x10\x93\xa5\xf2\x02\x7f\xf1\x0b\x05\x39\x02\x02\xeb\x62\x27\x0e\x1a\x1b\x9f\xc7\x30\x3b\xbb\x30\xb0\x59\x80\x67\x72\xf2\xe4\x58\x85\x19\x34\xa8\xc4\x54\x1e\x52\x82\x49\x48\xe9\x4d\x65\xd3\xad\x5e\x3b\x10\x65\xad\x40\xba\x02\xc6\x76\xcb\x15\x10\x7c\xad\xcb\x2a\x7f\x1d\x01\xca\xa3\xfa\xeb\x52\x9b\x4d\x9e\x0d\xaf\x2a\x58\xf1\xad\xd0\xeb\x8c\x18\x1e\x3b\x76\xfb\x9d\x55\xd7\x32\xc1\xb3\xb5\xc5\x8f\xa0\x57\xb1\xa7\x49\x04\xf2\x22\x50\xa1\xfe\xd7\xae\xe2\x69\x79\x31\xc4\x2f\xf2\xed\xcb\x89\x60\xce\xe6\xc8\x89\xaf\xa1\x7b\xd6\x9c\x1a\x2e\xad\xe4\x18\x9a\xaa\x66\x89\xbe\xd5\x17\x48\x32\x70\xac\x10\xcd\x96\x3f\x4a\x82\x2e\xee\x55\x31\x72\x9e\x7c\x88\x13\x17\x6a\xf9\xd0\xfb\x25\x2c\x29\x86\x56\x49\x5b\x5a\xb6\x96\xc4\xa3\xa5\xe2\x55\xe5\xe7\x1b\x3b\xbb\x38\x95\xce\x8c\x68\xd8\xa3\xa8\x2a\xfd\xff\xac\x2f\xb8\xc9\x4e\xc8\x01\xfe\x23\x12\x83\xb3\xa3\x1c\x15\xb2\x5e\x5f\xaf\x38\x54\x37\x1d\xaa\x11\xb7\x73\x9a\x83\x58\xf8\x11\x07\x3a\xe3\xd9\x5a\x2c\x75\xd7\xba\x3d\xc0\x58\x54\xf0\xec\xad\x7e\xf9\x06\xdf\x1d\xbd\xcc\xf8\xb6\xed\x14\x45\x93\xb1\x2d\x08\x95\xf1\x0c\x72\x0a\xac\x0f\x7d\xea\x78\x67\xd8\xec\xf2\x41\xec\x51\xe9\x83\xfa\x1a\xb7\xd8\x1d\x47\x13\xd4\x6a\xb0\x48\xaf\x8c\x2b\x65\xc2\xdf\xd4\x2a\xe3\xaa\x2d\xef\x79\x16\x18\xd9\xb3\xb2\x0c\x83\x1b\x12\xbf\xd8\x80\xcf\xcf\x95\xd4\x32\xa2\x9c\x33\xcb\x06\x35\xbc\xfe\x51\xe8\xc5\x29\xac\xc3\xcb\x13\x19\x87\x7b\x4f\x0a\x67\x41\xa2\x47\x74\xe8\x5e\x85\x95\x23\xc6\x7a\x20\x20\x69\x3f\x1e\x00\xaf\xec\xc9\x7c\x09\xb7\x43\xbf\x43\x25\x3f\xc0\xd5\x96\x7b\x45\xac\x03\x78\x27\x4c\xa1\x2b\xf2\x6d\xa1\xaf\x5e\xfe\x93\xbe\xa2\x78\x21\xd8\x46\xe4\x65\xd7\xa7\x99\x18\x07\xd9\x7c\x17\x2c\x7f\x22\xc1\x32\xbc\x6e\xcf\x26\x10\x4e\xe6\x2e\x9a\x23\x11\x3e\xd4\xca\x81\x6e\x3f\x81\x91\xff\x28\x90\x51\xbc\xad\xd1\x8b\x1d\x67\xaf\xf4\x92\x8a\x78\xfb\x63\x63\xd1\x55\xe1\x4e\x37\x31\x83\xab\xb2\x69\x7f\xed\x15\x56\x3e\x80\x85\xa2\xea\x9e\x2f\x93\xc4\x74\x15\xbb\xe9\xbd\x31\x9a\x31\xf1\x85\xec\x06\xf2\xa7\x6b\xe1\x80\xce\x5d\x40\x1c\x1b\x7e\x0e\xdd\xef\x7d\x14\xaf\x3b\x3b\x5f\x77\x78\x41\x3d\x2a\xbe\xdd\x0a\x65\x5c\xa7\xdc\xda\x2b\xae\x5d\x6a\x25\x95\x68\xe8\x7c\xbc\xf9\xfc\xc9\x69\x5c\xce\xff\xd1\xfb\x34\x3c\x06\x53\xb7\x88\xaf\xdc\xa7\xae\xaa\x06\x57\x6e\x06\x2d\xfb\xed\xd5\xd5\xf2\xd7\x8b\xab\xdb\xf7\xa3\x79\xea\xde\x63\x83\x73\x62\x7b\x42\x73\x82\xea\x67\x0b\x2a\x67\xb7\x11\x14\x91\x00\x23\xc2\x14\x6a\x81\x5b\xbe\xab\xaa\x90\xaf\x20\x95\x77\xf4\x1d\x48\xa7\xe8\x24\x9a\x87\xa9\x64\xa3\x13\x17\xb6\x0f\x8f\xdd\xe9\x8f\xdf\x99\x2a\xba\x6e\x10\x6f\xd8\x27\xdb\xea\xc0\xbc\x52\x14\xed\x88\xe3\x80\xae\xef\x97\x62\x64\x39\xec\x78\xdc\x4a\x53\x9f\x8b\x88\x54\x4e\x72\x3a\x70\xee\xee\x42\xd7\x83\x15\xf7\x39\xde\xcf\xf0\xdd\x04\x79\x34\xb0\x60\x95\xa5\x9a\x48\x25\x95\x55\xe0\x00\x50\x1c\xec\x13\xbb\x94\x98\x27\x53\x71\x59\x74\xbc\x10\x4d\xc2\x4c\xe3\xa9\xdc\x94\xc5\x1a\x12\x8f\x88\x09\x15\xd3\xd7\x39\x93\x1c\x2a\xa0\x87\x5b\x08\x03\x43\xe2\x5f\x7c\xb3\x85\x98\xba\x4c\x25\x8d\x49\x16\xee\xf3\x18\x33\xfa\x78\x63\x87\xa3\x77\x9a\xfd\x10\x51\x81\xc8\x54\xe2\xe2\x62\x7e\xb3\xb1\xc9\xc0\x71\xcb\xdb\xfe\xd6\xe5\x4a\x18\xf6\x21\x90\xe9\x05\x58\x87\x58\x1a\xd6\x60\x46\xb4\xa4\xf7\xd8\x5c\x31\x82\x88\x5d\x9a\x96\x27\x66\x31\xcc\x99\xa0\xbe\xc5\x77\xfd\xd1\x77\x80\x3e\x70\xf1\x12\xfd\xe3\xdb\xd6\x89\xb1\x09\x69\xee\x36\x94\xec\x1f\x61\xd6\x47\x77\x02\x1a\x29\xde\x1b\x33\x2e\x7c\x66\x30\xd8\x50\x77\xab\x6a\x8f\x2e\xe1\xf3\xa3\x9d\x42\x91\x3c\xde\xa9\x19\x0e\x99\x2f\xbd\xa3\xa5\xb7\xe9\x58\xb3\xab\xba\x1e\x58\x97\x13\xba\x36\x82\x4e\xd1\x0b\x53\x93\xd1\x65\xed\x21\xfb\x65\x06\xc8\xa1\x3f\x45\x46\xfa\x8c\x75\xa8\x2a\x9b\x83\xba\xe3\xf4\xa7\xd9\x3d\xb2\x1a\x02\x5d\x76\x7b\x49\x58\xba\xe7\x02\x01\x3b\x20\x26\xc9\xa0\x26\x77\xaa\x28\x51\xbc\x48\xa8\x9b\xc0\x09\xb1\x97\xd8\x4d\x94\xb8\x95\x4b\xb0\xac\x71\xa7\x1a\x2d\x2e\x49\xde\x91\xd4\xd6\xe6\x69\x2a\x4d\x32\xaa\x11\xc7\x17\xcc\x04\x30\xed\x5f\x11\x38\xb2\xc5\x54\x2e\xd0\x58\x5b\x56\x4b\x61\xa4\x61\x2a\x81\xf1\x4b\x82\xeb\x67\xd5\x40\x2e\x3e\xf1\x5a\xd1\x0f\x1e\x6f\x36\x97\xb6\xb4\xf2\x84\xcc\xeb\xa9\x01\xc1\x3d\xff\x83\xfe\xef\x3f\x3f\xfc\x37\x00\x00\xff\xff\x73\xb6\x3d\xcb\x60\x83\x03\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x73\x23\xb9\x95\x27\xfa\xbf\x3f\x05\xb6\x66\x23\xaa\xcb\x96\xa8\x6e\x7b\xc6\xe1\xd5\xc4\xc6\xbd\x2c\x89\x55\xcd\xdb\x2a\x49\x96\xa8\xae\xe9\x1d\x3a\xb8\x60\x26\x48\xc2\x4a\x02\x6c\x00\x29\x15\xed\xf0\x77\xbf\x81\x73\x00\x24\x32\x99\xc9\xb7\x54\x52\x35\x67\x22\xdc\x2a\x66\x26\x9e\x07\x07\xe7\xf9\x3b\xff\xfc\x1d\x21\x6f\xf4\x23\x1d\x8f\x99\x7a\x73\x4a\xde\xfc\xb1\xf5\xfd\x9b\x23\xfb\x1b\x17\x23\xf9\xe6\x94\xd8\xe7\x84\xbc\x31\xdc\x64\xcc\x3e\x1f\x65\x73\xc3\x78\x9a\x9d\x68\xa6\x1e\x78\xc2\x4e\x68\x3a\xe5\xa2\x35\x53\xd2\x48\xf8\x90\x90\x37\x0f\x4c\x69\x2e\x85\x7d\xdd\xfd\x49\x84\x34\x44\x33\xf3\xe6\x77\x84\xfc\x0b\x9a\xd7\xc9\x84\x4d\x99\x7e\x73\x4a\xfe\x1b\x3f\x9a\x18\x33\xf3\x0d\xd8\xbf\xb5\x7d\xf7\x6f\xf0\x6e\x22\x85\xce\x4b\x2f\xd3\xd9\x2c\xe3\x09\x35\x5c\x8a\x93\xbf\x6b\x29\x8a\x77\x67\x4a\xa6\x79\xb2\xe6\xbb\xd4\x4c\x74\x31\xc7\x13\x3a\xe3\x27\x0f\x3f\x9c\xd0\xc4\xf0\x07\x36\xc8\x68\x2e\x92\xc9\x60\x96\x51\xa1\x4f\xfe\xc9\x53\x3b\xc7\xbf\xb3\xc4\xfc\x0b\xfe\x91\xca\x29\xe5\x02\xff\x16\x74\xca\xfe\x15\xda\x21\xe4\xcd\x98\x99\xe8\x9f\x84\xbc\x49\x99\x4e\x14\x9f\x19\xb7\x2a\x37\xcc\x28\xce\x1e\x18\x31\x13\x46\xb0\x3b\x82\xdd\x11\xdb\x1d\xf1\xab\xa6\x67\x2c\xe1\x23\xce\x52\x32\x9c\x13\x2e\x66\xb9\x21\x8a\xfd\x9a\x33\x6d\xc8\x88\x67\x86\x29\xdd\x72\x4b\x06\xbd\xc8\x19\x53\x30\xcf\x6e\x6a\x7b\xf9\xc8\x4c\x1b\xda\xbe\x80\xa6\xaf\x33\x2a\xe2\xb7\x15\xd3\x33\x29\x34\xd3\xa5\xa1\x12\xf2\xe6\x8f\xdf\x7f\x5f\xf9\x69\x71\x06\x6d\xa2\xf3\x24\x61\x5a\x8f\xf2\x8c\xf8\x96\xe2\xc1\xc0\x47\xb0\xc9\x74\xa1\x31\x42\xde\xfc\x4f\xc5\x46\xb6\x9d\x7f\x3b\x49\xd9\x88\x0b\x6e\xdb\xd5\x48\x4b\xd1\x68\x4b\x5f\xfd\xeb\x77\x75\x7f\xff\x2b\x9a\xd1\x8c\x2a\x3a\x65\x76\x59\xc2\xee\xe3\xff\x55\xe6\x62\xf7\xcb\x76\x5e\xec\x69\x75\xe0\x95\xd9\x5e\xd2\x29\x23\x72\x04\xdb\xe5\xbe\x80\xbf\x15\xd3\x32\x57\x09\x23\x43\x96\x49\x31\xd6\xc4\xc8\x85\x35\xe0\xd0\x82\x25\xb5\xea\x13\xbb\x95\x5c\x31\xbb\x57\x46\xe5\xac\xf2\xd4\xcc\x67\x30\x48\x6d\x14\x17\xe3\x78\x29\xfe\x75\xb4\xd6\xd4\x90\x42\x37\x98\x19\x7e\xd0\x38\xb1\xbe\x68\xfb\x57\x12\x2a\xc8\x90\x11\x7b\x2e\x79\xca\x14\x4b\x09\xd5\x84\x12\x9d\x0f\x35\x33\xe4\x91\x9b\x09\x17\xf6\xdf\x48\xbe\x89\x5f\xb3\x97\xb3\x36\xf0\xe7\xf2\x95\xb9\xd3\x4c\xd9\x81\x3f\xf0\x94\xa5\xe4\x81\x66\x39\x23\x23\xa9\x4a\xcb\xd3\xea\x8b\xde\xc4\xae\xc3\x74\xc8\x05\x9c\x3c\xbb\x96\x9e\x42\xfe\xe0\x97\xeb\x0f\xc4\xf6\x47\x72\xc1\x7f\xcd\x59\x36\x27\x3c\x65\xc2\xd8\x73\xad\xab\xad\xfd\x41\x42\xff\x34\x23\xc7\xc4\xae\x33\x53\x06\xd6\x5b\x0a\xc3\xbe\x18\x4d\x8e\x49\xc6\xef\x19\x79\x7b\xc1\xb5\x21\xed\xeb\xee\xdb\x23\xf2\xf6\xa2\x60\x1c\xfa\xed\x33\xac\x70\xf8\xfb\x6f\xd1\xd1\x33\x74\x5c\x3d\x74\x6f\xda\xf6\x34\xdf\xe2\x35\x51\xb4\xf0\xb7\xdf\xc5\xed\xb8\xfd\x5a\xce\x7b\x0b\xc6\xeb\xb8\xee\x26\xbc\xf6\x03\x33\xc9\x64\x05\xa3\xd5\x3b\x72\x5a\xbb\x1d\x55\x56\xab\x5f\x17\xaf\xb5\x53\x78\x6a\x7e\xbb\x0b\xb3\xa5\x06\x4e\x01\xe5\x02\x0f\x4d\x38\x43\xe5\x9d\x21\x5f\x8f\xad\xec\xc2\x6f\xa3\xd9\x44\x2c\xd7\x73\xd2\x68\x25\x5e\xc8\x5c\x33\x3e\xe5\xab\xf6\xb1\x2b\x52\x2b\x76\x39\x26\x27\xf2\xe9\x90\x29\x3b\x75\xcf\xee\x60\x86\x43\xcb\xfe\x4c\xae\x04\x4b\x1b\xa6\xf6\x6b\xce\xd4\x7c\xc9\xdc\x46\x34\xd3\x4d\x93\xe3\xc2\x30\x2b\xd7\x56\x1e\x8f\xa4\x9a\x52\xe3\x5e\xf8\xf3\xbf\x6f\x3a\x79\x23\xef\xd9\xaa\x7d\xee\xe2\xae\x25\x54\xc3\x76\x4f\xf3\xcc\xf0\x59\xc6\xc8\x8c\x8e\x99\x76\xab\x90\x67\x46\x1f\xc1\x6b\x56\x96\x66\xea\x38\xdc\x36\xd0\x83\xbf\x65\x73\x0d\xbf\x90\x51\x60\x64\x82\x7d\x31\xd0\x52\x5f\xc0\x3d\x0b\x4b\x14\xdf\x1e\x4f\xb0\x94\xdb\xd1\x89\x96\xca\x0c\x86\xf3\xd6\x3d\x5b\xe8\xb7\x91\x5a\xa8\x20\xd4\x18\xc5\x87\xb9\x61\x76\xde\xb6\x0d\x7f\x4f\x02\xeb\xc3\xcb\x58\xdb\xcb\xf7\xea\xfc\xea\xbb\x7b\x6a\x94\x1c\x53\xf1\xee\x94\xb4\xd3\x94\xe0\x40\xed\x3b\x3c\xc5\x2b\x79\xc2\x14\x6b\x91\xde\x84\x6b\xa2\x27\x32\xcf\x52\x22\xd8\x03\x53\x76\x6d\xd9\x74\x66\xe6\x2f\x6e\xb5\x52\xae\x58\x02\x0b\xb3\xc9\x09\x0b\x5f\xd9\x45\xb3\x4a\xcf\x1c\x97\xee\x9e\xcd\x41\x70\x59\x5c\xbe\x67\xa0\x97\xca\x53\x26\xf2\x69\xe5\xae\x80\xdf\xcf\x3b\xb7\x67\x9d\xcb\xf3\xee\xe5\xc7\xca\x17\x56\x8c\x08\x8f\x4a\x4f\xfe\xb6\xb0\x36\x23\x9a\x67\x70\xaa\xa3\xd6\x9e\x4d\x70\x49\x26\x3c\x4b\x15\x13\x27\x86\xea\xfb\x01\xfb\xc2\x92\x1c\xef\xd9\x7f\x96\x7f\x18\x58\xe9\x53\xa6\xac\xfc\x4b\xe9\x1f\x85\xb8\xb3\xf1\xa7\x41\x2b\xdd\xf8\x4b\xd0\x61\xd7\xfb\x0e\x7e\xe1\x69\xed\xdb\xf0\xcb\x8a\x39\xf8\x77\x96\x0c\xd6\xbf\xd2\x38\x2a\xff\x82\x13\xe0\x6a\xdf\x51\xcc\xa8\xf9\x80\x1a\x63\x4f\xf9\x16\x32\x23\x6c\x29\xb1\xb3\x25\xc5\x7e\x3a\xf1\x11\x05\x45\xe0\xdd\x41\x72\xb4\x23\x28\xde\x5c\x25\x2f\x5e\xca\x94\x75\x42\xb3\x1f\xa4\xea\x51\x7d\xff\x1a\x64\xc6\xd2\xc0\x9f\x43\x6c\xdc\xf6\x00\x7d\x73\x4a\xfd\x96\xec\xe0\x60\x02\xd8\x7d\x25\xd7\x35\x18\x48\x45\xf4\x5c\x1b\x36\x5d\x69\x3a\x78\x3d\x0b\xe1\xf8\xfd\x4b\x1d\x70\xe5\xca\xf9\x0d\x9c\xfa\xf2\x05\x7a\x38\xde\x1b\x2c\xd9\xbe\x0c\x7f\x2f\x7d\x9e\xde\x05\xb3\x7c\xaa\xb7\x7e\xfb\xbc\xc3\xc1\xd1\xc9\x8b\x9f\x66\x49\xb4\xdb\xf7\x20\x9f\xc8\x6a\xd0\xb8\x57\x7e\xb5\x07\x30\x80\x15\x2a\x5f\xd9\x74\x1c\xce\x9f\xfd\x34\x36\xae\xa0\xc5\xcc\x58\x9d\xd7\xd9\x96\x98\x22\x89\x54\x28\x0a\xa6\xee\xb8\xf7\x05\x39\x26\xe7\xed\x5e\xfb\xb6\xd3\x3b\x25\x6d\x92\x52\x43\xed\xf9\x56\x6c\xa6\x98\x66\xc2\x80\x36\x6e\x3f\x37\x73\x32\x95\x29\xcb\x58\x4a\xb8\x20\x1f\xb2\xb9\x61\xe4\x9c\x1a\x7a\x46\x0d\xcd\xe4\xb8\x45\xda\xf0\x4f\xfb\x31\xd7\x84\x66\x5a\x12\xea\xa9\x8a\xa5\xbe\x09\x2a\x52\xcf\x59\x28\x49\xe4\x74\xc6\xb3\x60\x35\x0f\x26\x12\x2e\x52\xfe\xc0\xd3\x9c\x66\x44\x0e\x2d\x53\xb1\xaa\x6a\xe7\x81\x09\x93\xd3\x2c\x9b\x13\x9a\x65\xc4\x75\xeb\x5f\xf0\x7a\xfd\x90\x85\x51\x6a\x3e\xe5\x19\x55\x56\x17\xc6\xd1\x5e\xb9\xb6\x48\x6f\xc2\xc2\x58\x61\x5c\x76\x31\xa7\xf4\x9e\x69\xc2\x0d\x99\x49\xad\xf9\x30\x2b\x8e\xfc\x5d\x97\xc0\xb8\xcf\x2e\xba\xa0\x58\x27\x86\x48\x64\xa1\xbe\x73\x67\x85\xf1\x3d\x4e\xa9\x10\x0c\x3a\x96\x66\xc2\x94\xeb\xde\xbd\xfc\xb5\x15\xed\xbb\xcb\xdb\xeb\xce\x59\xf7\x43\xb7\x73\xbe\xa8\x69\xf7\xda\xb7\x3f\x2d\xfe\xfa\xf9\xea\xe6\xa7\x0f\x17\x57\x9f\x17\x9f\x5c\xb4\xef\x2e\xcf\x7e\x1c\x5c\x5f\xb4\x2f\x17\x1f\x3a\xb2\x5a\x5b\x69\x8f\x47\xb6\xe1\xd1\x3a\x58\x23\xf7\x69\x8d\x3c\xfa\x76\xcd\x91\xce\x95\xb3\xbe\x29\x92\x64\x5c\x1b\xbb\x40\xee\x4b\x32\xa3\x5a\xa3\x30\x84\x23\x68\xf5\xc5\x27\xa9\x2c\xd3\x1a\x49\xcb\x17\xac\xc0\x64\x54\x9e\x18\x2e\xc6\xe1\xa3\x53\xd2\xcf\xbf\xff\xfe\x4f\xc9\x05\x17\xf7\xf0\x17\x7b\x89\x8b\x73\xb0\xd5\x6e\xb3\x5a\x07\x5b\x6d\xfc\xec\x75\xd8\x6a\xad\x98\x73\x12\x9b\x68\x9f\x26\xb8\x07\xdd\xc8\x56\x76\x90\xb9\xb1\x7f\xda\x7e\xc9\x48\xc9\x29\x48\x55\x5f\xb8\x06\x2e\xf1\x28\xd5\xfd\x28\x93\x8f\xeb\x99\x0e\x3f\x32\x13\x8c\x6f\x56\x8a\x79\x0d\x16\xc3\xcf\x6e\x86\x61\xe0\x1f\x99\xb1\x63\xbf\x71\xbd\x1c\xe2\x7c\x0e\x71\x3e\x5f\x37\xce\xe7\x45\x99\xed\x9e\x9e\xf7\x95\x6d\x7c\xc8\x00\x1b\x5c\x50\x8d\x1e\xa6\x06\x07\x52\xe4\x1f\x7a\x4a\xa6\x59\xf6\xca\xac\x60\x98\x25\x8f\xc5\x6b\x61\x9a\xa5\x41\x3f\x3f\xc3\xfc\x4d\x38\x54\x0e\xfe\x92\x2d\x17\xea\x55\xf2\xd5\x35\xaf\x8c\x67\xf3\x76\x3c\x3d\x9f\x5f\x88\x45\xd8\x24\xf8\x60\x83\x68\x83\xb5\xc3\x0b\x56\xc4\x13\xd4\x06\x10\xd4\x45\x0c\x2c\x86\x08\xd4\xc6\x04\xec\x14\x04\xb0\xe9\x95\xb4\xbe\xfb\xff\x23\x33\x3d\xaa\xef\x5f\xdd\x95\x54\x1a\xf4\xf3\x5f\x49\xbf\x51\xaf\xff\xc1\xcd\xff\x84\x4b\xf7\xad\x5f\x64\x2f\xd7\x91\xff\x1b\xf0\xdc\x1f\x5c\xf5\x1b\xad\xd1\xb7\xe5\x9b\xff\x56\x9d\xf1\xaf\xd3\xfb\x7e\x70\xb7\x1f\xdc\xed\x07\x77\xfb\x1a\xee\xf6\x27\x55\x4a\x99\x25\x2b\x0d\xe6\xc7\x58\xb7\x79\x33\x93\x7a\xb9\x2e\x76\xa6\x18\x35\x96\x8a\xcb\x76\x3f\x02\x0d\x12\xc5\x12\xa9\x52\xab\x83\x51\x32\x9b\x50\xcd\x88\x51\x54\x68\xbe\x4a\x0f\xc3\x56\xc1\xd0\x66\xdb\x79\x0d\x2a\x58\xc9\x2a\x08\xa3\x7e\x2e\x05\x6c\x28\xd3\x85\x33\x83\xc7\xa9\xee\xc9\x72\x5e\xbf\xb7\xa9\x43\x86\xe6\x3a\x33\x7f\x42\x6a\xb6\xf7\xca\x96\xd4\x5c\x36\x19\xec\x85\x9a\x41\x47\x7f\x2d\xd4\x5c\x32\x28\xfc\xb6\xa8\xb9\x6e\xea\x2f\x81\x9a\xbd\x37\x7a\x4b\x8a\x5e\x74\x66\xef\x85\xaa\x83\x07\xf9\xb5\x50\xf6\x82\xcb\xfb\xb7\x45\xdd\x4d\xd3\xff\xba\x14\x1e\x0c\xe1\xfb\xa2\xed\xd5\x84\x1b\x16\xe0\x35\x10\x6d\x18\x2c\x8e\xfd\x37\x43\xad\x0b\xf3\x7e\x21\x64\x7a\xa2\x18\x66\x1b\x6e\x44\xaf\x37\xee\xa3\x8d\x29\xd6\x7f\x78\xa0\xd9\xd7\x44\xb3\x7e\xd7\x5e\x0e\xd5\x36\x85\xd3\x6d\x9e\x81\xbb\x24\x46\x4e\x93\x29\x35\xc9\xc4\x3e\x44\xff\xdc\x9a\x30\x2d\x45\xca\xed\xab\xa2\xee\xe7\xc8\xb3\xfd\xb6\x2d\xf1\x07\x0b\xfc\x6f\x10\x0e\xeb\xc5\x84\x8b\x1f\x52\x54\xf6\x98\xa2\xc2\xf5\x21\x45\xe5\x90\xa2\xb2\xee\x02\x1d\x52\x54\x0e\x29\x2a\xd1\xb3\xd7\x91\xa2\xf2\xf4\xd9\x29\xfb\x49\x41\x79\x55\x42\xf4\x41\x80\x3e\x08\xd0\x87\x3c\x93\x30\xb5\x7d\x31\x30\xff\xf5\x9b\x94\x65\xcc\xb0\xa5\xec\xa7\xc7\xd4\xd4\xea\x06\x25\xe8\xeb\x1a\xa7\x41\x81\xaa\x15\x28\x08\xcc\x1b\xcb\xf8\x52\x68\xfb\x75\x72\xa7\x30\xfc\x43\x5a\xdc\x81\x5d\x1d\xd8\xd5\x36\x53\x7b\x39\x56\xd9\xe8\x30\x7f\x55\xb3\x6c\x04\xa4\x3d\xe0\xe9\x7e\xb0\xb4\x83\xd8\x18\x23\x69\x17\x4b\x51\x02\x33\xde\xce\x48\x5b\xc0\x52\x77\xd3\x57\x61\xa7\xb5\x7c\x24\xed\x40\xd4\x5d\x08\x19\x54\x07\x48\xed\x03\xa4\xf6\xfa\x73\x3d\x58\x08\xf7\x68\x21\x3c\x40\x6a\x1f\x6c\x60\x07\x1b\xd8\xd3\xdb\xc0\xbe\x96\x41\xfb\x99\x8f\xe5\x73\x89\x68\xdb\x05\x26\x89\x94\x28\x36\xe6\xda\x30\x65\x57\xaf\x56\x28\x5b\x1d\xa9\xf4\x5a\x8b\x44\xad\x1d\xf7\x11\x77\xfb\xe6\xdf\xd7\x18\xfe\x8d\xbb\x45\xe1\xa8\x0f\x69\x1a\x2a\xc2\x80\xe8\x34\xa5\x73\x32\xa1\x0f\x8c\x8c\x28\xcf\x50\x31\x72\xdc\x71\xc9\x0c\x97\x0d\xe8\x7f\x6d\x36\x20\x5a\x1e\x8e\x62\x23\xa6\x98\x48\x90\xdb\xa3\xf0\x93\xd0\xcc\xa7\x82\xc0\x3b\x13\xab\xa6\x66\x8a\xd1\x74\x4e\x86\x8c\x89\x40\x36\x35\x92\x42\xc3\x98\xf7\x22\xb4\x7e\x75\x35\x6d\x91\x7a\x5e\x8a\x92\xf6\x24\xd1\x33\xf5\x2c\x61\x77\xe5\x4c\xff\xf1\x75\xb1\x8a\x43\x10\xcd\xc1\xa8\xf6\xf5\x8d\x6a\x87\x20\x9a\x83\x8a\xfc\x02\x54\xe4\x43\x10\xcd\x21\x88\xe6\x60\x40\x58\x7b\xb5\x0e\x06\x84\xf8\xd9\xeb\x08\xa2\x79\xc2\x0a\xce\xcf\x25\x61\x1f\x04\x6c\xff\xde\x41\xc0\x3e\x08\xd8\xdf\xa8\x80\xfd\x32\x56\xf8\x20\x5d\x1f\xa4\xeb\x83\x74\x7d\x90\xae\x0f\xd2\xf5\x41\xba\x76\x5f\xed\x53\xba\x86\xbf\x3c\x34\xeb\xce\x11\xeb\x9b\x7b\xb9\x3e\x32\xf3\x5a\x5d\x5c\x07\x91\xfa\x20\x52\xbf\x6c\x91\xfa\xc5\x4c\xe8\xdb\x83\x5a\x3c\x80\x15\x1e\xc0\x0a\x0f\x60\x85\x4f\x0b\x56\xe8\xbf\x7e\x33\xcb\x97\xcb\x22\x77\xb3\xd4\xe7\xae\x68\x43\x4d\x0e\x6a\xdf\x1a\x72\x09\x69\x1b\x32\x95\x56\x09\x12\xac\xf4\x8e\x67\x40\x18\xd1\x31\xe6\x0f\x4c\x10\x1f\xa3\x7d\xe4\xae\x99\x23\xb0\x44\xfc\x2b\x9c\x0e\x4c\x9a\xa1\x86\x50\x62\xf8\x94\xb5\x48\x77\x84\xa7\x39\xb1\xe4\xaf\x99\xd1\x95\x30\x20\x24\x4d\xf8\x48\xa4\xc5\x58\x7d\xdf\xbc\x88\x0a\xc1\xd7\x8e\x3c\x33\xcc\x33\x83\xac\xd1\x37\xfe\xc8\xb3\xcc\x8e\xc1\x71\x10\x38\x09\x53\xa6\x32\xff\x65\xa9\x5b\xff\xf2\x94\xa6\xf6\xe4\x46\x43\x28\xb2\x7b\xe2\xf7\xe1\xce\xe5\x3a\xc4\xb5\x94\xbe\xc7\xaf\x5b\xc4\x29\xe1\x08\x2a\xb6\xd6\x30\x26\x34\xb5\x27\x30\x99\xb0\x34\xcf\x18\xa1\x5a\xcb\x84\x53\x63\xb9\x15\xde\xd1\x84\x1b\xaf\xb2\xfb\x97\x7c\xd7\x29\xd7\x74\x98\xb1\xd4\xad\x31\x2b\xc2\x6c\x96\x8e\x9c\x6b\x32\x64\x76\x89\x2d\x1f\x29\xaf\xfe\x04\x25\x84\x9a\xd1\x44\x43\x61\x8b\x23\x61\x02\x07\xb2\x44\xc2\x45\xe2\x7c\xad\x42\x2e\x8e\xfe\x90\xfb\x74\x10\x79\x0f\x22\xef\x46\x13\xfa\xa6\x44\xde\x17\x14\x1a\xe8\x19\xd2\x57\x0d\x0d\x04\x07\xa2\xe5\xfc\x83\x60\x21\xd4\xdb\x19\x4f\x82\x11\xf6\x93\x6f\xb2\x1d\x5a\x3c\x93\x62\xc4\xc7\xb9\x72\x02\xb7\x93\x86\x57\x78\x29\x6b\xda\x79\x15\x37\x4e\xfd\xd0\x9f\xeb\xe2\xd9\x44\xa1\x23\xc7\xc4\x8a\xdd\x83\x9b\xce\xed\xd5\xdd\xcd\x59\xe7\x94\xb4\x67\xb3\x8c\xa3\x97\x25\xc9\xb5\x91\x53\xfe\x0f\x3b\x0d\x04\x12\x0e\x9c\xdb\x89\x21\x1a\x04\x0e\x70\xeb\x58\x35\x89\x1c\x93\xb3\x8b\xbb\xdb\x5e\xe7\xa6\xa1\x41\x47\x04\x50\xcb\x88\x4d\x67\x19\x48\x25\xf7\xf9\x90\x29\xc1\x0c\xd3\x24\xc9\x72\x88\x31\x0f\xce\x1e\x6c\xb4\xf3\x5f\x9d\xb3\xbb\x5e\xf7\xea\x72\xf0\xd7\xbb\xce\x5d\xe7\x94\x78\x6a\xb2\xcd\xda\x71\xd9\x51\xa4\x73\x41\xa7\x56\x17\x2d\x23\x1e\xff\x9a\xb3\x1c\x84\x20\x3e\x16\x53\x26\x4c\xb5\x45\x3f\xe0\x8b\xf6\xfb\xce\x45\xb9\xe5\x09\x23\x3f\xfd\xa5\x18\x54\x46\x87\x2c\x73\xde\x27\x70\xae\x58\x86\x5d\x74\xe4\xdc\x52\x39\xaa\xb5\x7f\xbd\x6b\x5f\x74\x7b\xbf\x0c\xae\x3e\x0c\x6e\x3b\x37\x3f\x77\xcf\x3a\x03\xa7\x60\x9c\xb5\x6d\xbf\xa5\x9e\x9c\x1e\x42\x7e\xcd\x69\x66\x15\x55\x39\x02\xd7\x0e\x4f\x18\x79\x9c\x30\x41\x72\x01\x34\x86\xda\x2f\xe8\x02\x71\x12\x3b\xce\xe8\xfa\xe2\xee\x63\xf7\x72\x70\xf5\x73\xe7\xe6\xa6\x7b\xde\x39\x25\xb7\x2c\x03\xfd\xd0\x2f\x3a\xec\xe2\x2c\xcb\xc7\x5c\x10\x3e\x9d\x65\xcc\xae\x06\x1e\xc7\x21\x9b\xd0\x07\x2e\x55\x49\x47\x80\x75\xb4\x24\xf4\xd5\x0d\xd9\x25\x0a\x5d\x54\xf5\xaa\x24\xb7\xf8\x46\x85\x7e\x96\xbd\x50\x22\x87\xc5\x17\x57\x6d\xeb\xe2\x17\x95\x7d\x59\x5b\x21\x2d\x4f\xfa\xd9\x6e\x03\xcb\x44\xd2\x81\x37\x4c\x9c\xfc\xb3\xc4\x4c\xfe\xf5\x64\x48\x31\x24\x4a\x6f\x75\xb7\xc3\xaa\x8a\x9b\xc5\x07\xaf\xe1\x4e\x88\x87\xfb\x35\xf9\xff\x9e\x64\xae\x57\x62\xef\xd9\x5c\xd4\x3d\xa8\x6c\x07\x95\xad\x7e\x65\x0e\x81\x3f\x0d\x2b\xbc\xaf\xfb\x68\x1b\x13\xe9\x88\xb3\x2c\xd5\x0b\x36\xae\xd2\x7d\xb2\xd2\x9e\xf5\x7a\xaf\x92\xe7\xb5\x68\x6d\xa2\x58\xdc\x04\x4f\x90\x73\x0d\xd9\xdd\x9a\x32\x43\xa1\xb2\xa9\x91\x24\x87\xa1\x1f\xae\x27\xf7\x7f\x87\xeb\xe9\x70\x3d\x1d\xae\xa7\xdf\xaa\x49\xb0\x86\xa5\x7f\x55\x9b\xe0\x2a\x2d\x70\x27\x88\xa7\x1a\x83\xe1\xa2\xf6\xa7\x89\x9e\x50\x85\xc5\x7c\x12\x39\x9d\x4a\x11\x05\x17\xcc\x67\xec\x88\x04\x17\x26\x18\x7f\x60\x18\xab\xec\x89\x45\x37\xfc\x75\x58\x12\xa3\x75\x79\x8e\xc4\x87\x83\xe6\xe8\xff\x6f\xd3\xab\xf9\x00\x92\x75\x00\xc9\x3a\xe4\x28\x1c\x40\xb2\x96\x53\xcb\x21\x0a\xff\x10\x85\x1f\x3f\x3b\x80\x64\xbd\x20\x90\x2c\x21\x53\x36\xa8\x80\xe2\x87\x7f\x0e\xaa\x7e\x8f\xd2\x93\xd8\x09\x52\x7a\x50\xa4\x25\x40\xeb\x3c\xdd\x3d\x2d\xa1\x5c\x9e\x78\x95\x93\x24\x2e\x68\xfb\xc2\x05\xde\x51\x36\x37\x8c\xa7\xd9\x62\x25\xde\x67\x88\xd4\xaa\xdb\xe8\x6f\xd1\xc8\x52\x43\xb6\x07\x8b\xcb\xca\x85\xfa\x56\xc1\xac\x0b\xbe\xf4\x8a\xdc\x04\xeb\x31\x6f\x0f\xf8\x3f\x68\x60\xe1\xf5\xcf\x03\x23\xaf\x7f\xbc\x2b\x86\x43\x99\x77\x6f\x8b\xdd\x50\xe2\x8d\xaf\xc3\x8c\x11\x8f\xf8\x39\x0c\x19\x4b\x77\xff\x9b\xe3\xeb\xcb\x68\xf9\xc0\xdd\xd7\x5c\xae\x6f\x95\xc7\x1f\xec\x19\xfb\xb4\x67\x1c\x7d\xbb\x06\x8d\x03\xe6\xc2\x92\xc5\x39\x58\x7b\xb6\x59\xad\x83\xb5\x27\x7e\xf6\x9c\xd6\x1e\xf4\xdd\x0e\x66\x54\x31\x61\x6a\xe4\xfb\xea\xcd\x06\xaf\x47\xb6\xfa\x20\x00\x41\x03\x28\xb8\x3a\xd9\x20\xdc\x9a\xdf\x96\xf9\xc7\xc9\x28\x03\x14\x71\xa2\x5c\x88\x93\x7f\x16\x7f\x47\x0a\x44\xf4\x63\x8d\x0f\x74\x83\x10\x26\x1f\x65\xcf\xd2\x42\xec\x2a\x1a\xaf\x09\x6d\x72\x63\x38\xf6\xc2\x58\xe1\xcd\x5f\x19\xe9\x74\x8d\x9f\x9e\xc3\x97\xaf\x2b\xa9\xa2\x61\xe8\xcf\x1b\x01\xb5\x48\x09\xeb\x1d\x2c\xaf\x47\x70\x4c\x1a\x78\x9c\x70\x10\x0f\x00\xc2\x09\xae\xd0\x68\xc3\x7d\x3a\x26\x85\xbc\x89\x26\x59\xeb\xb9\xc5\xc8\x05\x72\x5f\x6f\xe2\x8e\x46\x5f\xef\xbc\xbf\x7a\x68\xc8\x0a\xba\xff\xaa\x61\x22\x4b\x78\xe6\x7e\x22\x44\x9e\x8f\x3f\x7e\x64\xe6\xdb\x63\x8e\x1f\x99\x79\x2e\xce\xb8\x2d\x3b\x5c\xca\x12\x8a\x8a\x13\x2f\x84\x1b\x6c\xc7\xfa\x5e\xd7\x1c\x0f\xe9\x83\x87\xf4\xc1\x43\xfa\x60\xfc\xc6\x21\x7d\x70\xd7\x9a\xcc\xe7\xf0\xca\x33\x5e\xe7\xd8\xe1\xb7\x77\xa3\xe3\xbc\x0e\x97\xfa\xe1\x52\xdf\x6c\x8e\x2f\x55\x8d\xf1\xf4\xfc\x12\xd4\x98\x8d\x50\x2f\xd0\xb3\x5b\x54\x37\xf3\xe4\xbf\xd2\x7b\x7b\xed\x3b\x7b\x3d\x4c\x48\x3f\x35\x9f\xd9\xc5\x47\xe5\xd7\xfd\xe0\xa2\x3a\xc0\x82\x1f\x5c\x54\x07\x17\xd5\xc1\x45\xe5\x9e\x7e\x13\xb0\xe0\x41\xc9\x58\x59\xaa\xf6\xa6\xa8\x4f\x5b\x13\x6e\x52\xbd\x89\xfd\xdb\xd7\x0b\x12\xee\x4b\xbf\x8c\xfd\xc8\x9f\x4b\x07\x78\x29\x92\x63\x31\xef\x17\x21\x2b\x9e\xfc\xb3\x12\xcc\xbd\xe0\xf1\xd3\xf9\x74\x4a\xd5\x1c\xee\x2d\x17\xda\xdc\x82\x09\xb5\xdc\x8c\x22\xd8\x60\x77\x2d\x0d\x73\x13\x45\x62\x69\x4b\xc8\x33\xa6\xcc\x3c\x7a\x13\xb8\xe8\x7f\xf6\x05\x2f\xc0\x4b\xf9\x58\x48\x85\xc6\x1d\xfb\xf1\x84\x8a\x34\xb3\xe7\x40\x87\x76\x12\x2a\x84\x34\x70\xfb\x83\xdb\x20\x25\x0f\x9c\xa2\xac\xd0\xbe\xee\x96\xce\x49\xbd\x9f\x72\xad\x33\x55\x72\x31\xbe\xa2\x13\xf5\xdc\xb0\xa0\x07\x8d\x30\x5e\xfd\xaf\x75\x90\x0d\xd5\xf7\xd5\x74\x8f\x72\x14\xf1\x60\x69\x02\xc8\x8a\x77\x4b\xb8\x58\xcb\x5f\xad\x24\x89\x94\x9f\xb9\xb4\x11\x78\x0c\x43\xae\x8e\xc3\xff\x18\x77\xe8\x7f\x2b\x5a\xf6\xbf\xf8\xea\x18\xf0\xa3\x62\x46\xcd\x07\xd4\x18\xcb\x54\x76\xcf\x4c\x29\x5b\xce\x57\x64\xa6\xf4\xa8\xbe\x7f\x95\x99\x29\xe5\x81\x3f\x39\xb3\x58\x93\x26\xbf\xb9\x98\xe6\x75\x4f\xd8\x21\xbe\x79\x8b\xa5\xfb\x56\x63\x9d\x97\xb1\xd0\x17\x33\xc2\x0a\x17\xff\x16\x4f\x6e\xf9\x4e\x3a\x1c\xd1\x65\x6b\xf4\xcd\x81\x85\x57\x44\x8d\x15\x73\x7b\x25\xa0\xe1\x55\x69\x69\xdf\xa3\x7a\x1a\xdb\x72\xb4\x1b\x87\x2a\x3f\x87\x2a\x3f\x87\x2a\x3f\x4f\x5d\xe5\x67\x3d\x4d\x73\x6d\x35\x73\x5d\x1d\x73\x3d\x05\xb3\x59\xbb\xdc\x21\xa5\xb5\xac\xf4\x6d\x9b\xd2\x5a\x52\xaa\x5e\x85\x6b\xb4\x34\xe2\xe7\x48\x69\xfd\x8d\xea\x81\x07\x25\xf0\x49\xd6\xed\x5b\xd5\x00\x5f\xb8\xfa\x77\x48\xc6\xdd\x63\xa4\xc3\x37\x0c\x2e\x76\x08\x74\x58\xb2\x38\x87\x40\x87\x6d\x56\xeb\x10\xe8\x10\x3f\x7b\x71\x81\x0e\xcd\x9a\x03\x4f\x77\x4d\xa7\xaa\x13\xd9\x0b\x81\xb6\x84\xd0\xb9\xbd\xf8\xde\x4d\x5f\x85\xdc\x1e\x21\xea\x06\x33\x87\x7a\x0e\xf9\xfd\x80\x10\x7b\x40\x88\x3d\x08\x71\xbf\x25\x21\xee\x20\xa7\x6c\xb3\x5a\x07\x39\x25\x7e\x76\x40\x88\x7d\x41\x10\x21\x56\x70\x2a\x25\x89\xac\x0c\x4a\x3d\x53\x0c\xc2\xe7\x44\x1a\x52\x45\x08\xad\x0a\x60\xcb\xa4\x2b\x6c\xc0\xca\x57\xaf\x41\xb8\xb2\xe3\xc4\x11\xaf\x11\x4d\x17\x77\xf8\xe6\xdf\xd7\x18\xf8\x8d\xbb\x2b\xe1\x40\x0f\x69\x1a\x6a\xa1\x83\x80\x34\xa5\x73\x32\xa1\x0f\x8c\x8c\x28\xcf\xd0\x4c\xe5\x78\xe0\x92\xb9\x2d\x1b\xd0\xff\xda\x6c\x40\xb4\x3c\x9c\x22\x03\xcc\xf2\x74\x14\x71\x12\x9a\x79\x27\x15\xbc\x03\x85\xda\x5d\x59\xfc\x21\x63\x22\x4a\x27\x5a\x77\xcc\x7b\x11\x4d\xbf\x7a\x28\x60\x4c\x37\x5f\x35\xba\x17\x4e\x78\x63\x91\xcb\xfd\xe9\x5c\xbb\x28\x5a\xfa\x8f\xaf\x85\x15\x3c\x87\x5a\xf5\x0d\xbb\x3e\x0e\xee\x8d\xdf\x66\x4d\xac\x17\x23\x92\x1f\x14\xdd\x3d\x2a\xba\x87\xbc\xcc\x83\xbb\xe2\x60\x06\x58\x7b\xb5\x0e\x66\x80\xf8\xd9\xeb\x71\x57\x34\x4b\xcf\xdb\x95\x88\x7f\x42\x39\xfa\x20\x46\x1f\xc4\xe8\x83\x18\xfd\xcd\x8a\xd1\x2f\x63\x85\x0f\x32\xf4\x41\x86\x3e\xc8\xd0\x07\x19\xfa\x20\x43\x1f\x64\x68\xf7\xd5\x5e\x64\x68\xf8\xcb\x67\x73\xef\x27\x75\x7b\x3d\x8f\x94\xcb\xdd\x7e\x2d\xc2\xf3\x41\x70\x3e\x08\xce\x2f\x5b\x70\x7e\x31\x13\xfa\xf6\x12\x36\x0f\x29\x8f\x87\x94\xc7\x43\xca\xe3\x57\x48\x79\x0c\x25\xf6\xb6\x28\xa3\x53\xfa\xcd\x37\xf4\xdc\xc5\x75\x8e\xfc\x35\x65\x49\xd4\x0f\x62\xa3\x52\x3b\x9f\xdd\x47\xaf\x0b\x76\x7a\x71\xd4\x87\x02\x3b\x24\xda\xb5\x43\x81\x9d\x27\x9c\xb7\x3f\x67\x2b\x66\xee\x69\x14\x4d\x89\xaf\x74\xda\x5f\x3d\xe6\xaa\xf9\xa4\x7f\xd5\x08\xac\xda\x9b\x63\x21\xfb\xa5\x28\xd0\xfc\xfc\x75\x85\x76\xb9\x1a\x3e\x32\xf3\xad\xdc\x0b\x87\xda\x42\x87\x32\x04\x5b\x97\x5e\xde\x88\xc3\xbf\xae\x29\x1e\xca\x27\x1d\xca\x27\x1d\xca\x27\xc5\x6f\x1c\xca\x27\xbd\x80\xf2\x49\xbb\x48\x2d\xd8\xfd\xb7\x22\xb8\x1c\x4a\x28\x1d\x64\x97\x83\xec\x52\x3b\xc5\x17\xa8\x94\xbe\x88\x02\x51\x41\x29\xdd\x17\x16\x43\xec\x7b\x0d\xcc\x78\xaf\x90\x0c\x7e\x25\x0f\xb0\x0c\xee\xff\x0e\xb0\x0c\xeb\x4c\xee\x00\xcb\x70\x88\xb4\x3b\xc0\x32\x1c\x62\xc9\x0e\xb1\x64\x07\x58\x86\xd7\x02\xcb\xe0\x05\xa8\x7d\x40\x33\xd4\x08\x63\xab\xe1\x19\x3e\x2f\x6a\x06\x2f\x56\xd0\xf2\x63\x3d\xc0\x34\x1c\x60\x1a\x76\xa5\x9d\x17\xa1\x93\x3d\x09\x5c\x43\x0d\x1b\xd8\x55\x11\x7b\x1d\xb0\x0d\x7e\xb4\x87\x9c\xb3\x43\xe8\xec\xcb\x0f\x9d\x7d\x71\x39\x67\x2f\x46\x6c\x3f\x28\xc3\x7b\x54\x86\x0f\x69\x67\x87\xb4\xb3\x83\xa9\x60\xed\xd5\x3a\x98\x0a\xe2\x67\xaf\x23\xed\x6c\xb5\x34\xbd\x17\xf8\x86\xa7\x90\xab\x0f\x62\x35\xbe\x77\x10\xab\x0f\x62\xf5\x37\x2a\x56\xbf\x8c\x15\x3e\xc8\xd4\x07\x99\xfa\x20\x53\x1f\x64\xea\x83\x4c\x7d\x90\xa9\xdd\x57\x7b\x93\xa9\xf7\x0b\xe7\xb0\xa1\x17\x2b\xca\x4a\x79\x4d\xc2\xf4\x41\x90\x3e\x08\xd2\x2f\x5b\x90\x7e\x31\x13\x3a\x40\x3b\x1c\xa0\x1d\x0e\xd0\x0e\x07\x68\x87\x9d\xa5\x1a\xc7\x47\x36\x00\x63\x28\xe5\xdc\xfe\xec\x18\xcb\x77\x5c\x24\x59\x9e\x42\x26\xda\x84\x91\xf7\x39\xcf\x52\x02\xda\x8d\x55\x52\xb9\x14\xef\x80\x98\x80\x0e\x60\x90\x3e\x23\x6b\xb9\x14\xf3\xf3\x02\x9b\x7b\xb1\x42\x4c\x31\xda\xe7\xca\x44\xf9\xea\xe1\x23\xf1\x94\x9f\x37\x74\xe4\x77\x6e\xe5\xde\x44\x63\x0a\x83\x7f\xf3\x3e\x93\xc3\xde\x7c\xc6\xec\x7f\xcf\xf9\x94\x09\x0d\x1a\x10\x37\xf3\x98\xce\x1b\x98\xc7\x22\xdb\x78\x73\xdb\xbd\xfc\x78\x11\xa7\xb9\xbd\xf9\x74\x77\xd1\xeb\x5e\xb7\x6f\xc2\xd1\x0e\xb3\x8a\x8f\xb3\xfb\xae\x74\xea\xce\xe4\x74\x46\x15\xd7\x52\x74\xbe\xd8\x0b\xc6\x0e\xed\x0a\xe8\x5e\xaa\xed\x46\xd7\xf9\x6b\x3c\xb2\xcb\xf2\x3f\x3f\xf6\xca\xff\x2a\xcd\xe2\xa2\x57\xfe\x57\x67\xe9\x6c\xa2\x86\xab\xc7\xea\x98\x7c\xec\x9d\x92\x8f\x10\x45\xa4\x48\x6f\x42\xf1\x56\xbd\xe8\x9d\x92\x0b\xa6\x35\xfc\x52\x7c\x6c\xb8\xc9\x60\x6e\xef\xb9\xa0\x6a\x4e\xfc\xf4\x31\x01\x94\x82\x7b\xc1\x2f\x4d\x75\xf1\xc4\xdf\x73\x01\x0a\x70\xb1\x7a\x17\x72\xcc\x13\x9a\xed\xb6\x88\xed\xcb\xf8\x2e\x78\x73\x75\xb3\x74\x29\xe2\xb7\x17\xd7\xa2\x7d\x79\x0e\xe9\xa8\x7e\xa8\x35\x33\xbf\x64\xda\xb0\xd4\x0a\xd4\x29\x12\x2f\x5c\xc9\xf3\x48\xd0\xfe\xbb\x84\x04\xd5\x5c\x5b\x96\xda\xbe\x3c\x27\x27\xe4\xea\xa6\x2f\xae\x54\x8a\xf6\x47\x66\x25\x54\x14\x1c\xb8\x26\x42\x1a\xc2\xa7\x33\xa9\x0c\x15\xc6\x0a\xe7\x70\x37\xbb\x15\xd1\x84\x2a\x46\xce\xe4\x74\x9a\x1b\x6a\xf8\x03\x5b\x58\x54\x81\x46\x85\x5b\x66\xba\x29\x78\x34\x6a\xd6\x10\x2f\xef\x62\x2e\x33\x65\xdb\xb7\x82\x43\xf9\xb6\xe0\xe9\x02\x67\xf6\x4d\x50\xa5\x68\x99\x2f\xbd\xe1\x86\x4d\xab\xef\xaf\x19\x79\xfa\xaf\xda\x5b\xcd\x4a\x35\x17\x92\xda\x9b\x08\x33\x82\x2f\xb8\x61\x8a\x66\x9f\xe8\xec\x83\x37\x98\x6e\x41\x1f\xff\xdf\x6d\x29\x19\xf5\xcd\x2f\xed\x4f\x71\x3a\xeb\x9b\xeb\x9b\xab\xde\xd5\x52\x9a\x29\xb5\xb0\x48\x34\xf6\xf1\x29\xfc\x2f\x39\x21\xb6\xf5\x20\x7c\x4d\x99\xa1\x56\x28\x25\xdf\x61\xee\x59\xc8\x50\xe1\x22\x03\x1a\x99\x29\x3e\xe5\x76\x5f\x9d\xd5\xe7\x1d\xca\x77\x41\x80\x0d\x54\x82\x1f\x60\x1e\x29\x48\xce\x86\x8a\x94\xaa\x94\xfc\x5d\xbb\xdc\x67\x2b\x47\xe3\xeb\x54\xfb\x1f\x58\x4a\x8e\xc9\xc4\x98\x99\x3e\x3d\x39\x79\x7c\x7c\x6c\xd9\xb7\x5b\x52\x8d\x4f\xec\x1f\xc7\x4c\xb4\x26\x66\x9a\x61\xd2\xb4\x5d\x85\x53\x72\xad\xa4\x91\x20\x03\xdb\x5b\x9e\xd3\x0c\xb2\x5b\x87\x78\xda\xe5\x88\xfc\xdf\x44\x2a\xd6\x2a\x36\xe6\xff\x92\x28\x1f\x7b\x64\x45\x04\x9e\x66\x27\xf6\xa5\x9a\xa3\x53\xdd\x4f\x92\xb2\x84\xa7\x4e\x17\x60\x22\x91\x20\x84\xa0\xdc\x61\xdb\xf3\x09\x7b\xcc\x79\x23\xc3\x72\x46\xf2\x32\x4d\x19\xa1\x0f\x94\x67\x98\x9a\x2f\xd1\xea\x8d\xeb\xcc\x94\x95\xbd\xbb\xa8\x38\xe5\x56\x49\x84\xf0\x51\x90\x22\xfc\xab\x33\x3b\xe1\x44\x66\x64\x98\x8f\xac\x92\x11\xdd\x4a\x47\x56\xa0\xe6\x9a\x28\x96\xc8\xe9\x94\x09\xb4\x8b\xdb\x86\xe0\x4b\x58\x31\x37\xda\x56\x5f\xc0\xfe\x5b\x49\x1b\x28\x20\x95\x70\xb0\x05\xb3\x0a\xb7\x98\x63\x37\xc3\x7c\x54\x72\xb6\x1a\x49\x14\xa3\x29\xe1\xa6\x2f\xda\x99\x95\x6a\xa6\xd2\xb0\x38\x0e\x16\x3c\x33\xa5\x05\x07\x86\xa0\xd8\x2c\xa3\x89\xcf\x2b\xce\x64\x42\x33\x32\xe2\x19\xd3\x73\x6d\xd8\x34\x6e\xe0\x3b\xb0\x16\xd8\x35\xe3\x9a\xa4\xf2\x51\x64\x92\xba\x79\x54\x3f\x7b\x57\xe6\x2d\x1d\x9f\x59\xdf\x51\x4a\x2a\xf8\x9f\x9f\xb8\x48\xb7\x3b\x83\x77\x97\x3f\x5d\x5e\x7d\x2e\x1d\xc3\xbb\xdb\xce\x4d\xfc\xef\xdb\x5f\x6e\x7b\x9d\x4f\x4b\xcf\x61\xb5\x95\x82\xb2\x60\x78\xa0\x45\x9e\x92\x5b\x5c\x04\xa9\xc8\x9d\x66\xaa\x61\x52\x9f\x1c\x29\x15\x3f\xc8\x94\x6d\x37\xb7\x4f\xed\xcb\xbb\x76\x89\xa3\xdc\x9e\xfd\xd8\x39\xbf\xbb\x28\xe9\x28\x7e\x7e\xd1\x2f\x37\x1d\xd4\x40\xe2\xdf\xce\x7e\xec\x5e\x9c\x0f\x82\xce\xb2\x6c\x35\x2a\xfd\x56\xf9\x52\x0f\xf9\xcf\x44\xa6\x64\x38\x8f\x73\x5f\x0b\xc8\x84\x47\xaa\x49\x06\xbe\x3d\x96\x7a\x75\x1a\x5b\x3d\x05\x36\xe4\xc1\x18\x8a\x2f\xac\x7a\x7a\xe4\xde\x01\xe8\x04\xd4\xe4\xa9\x29\x63\x31\xc4\x0d\xdb\xde\xa9\x88\xd4\x62\x04\x69\x08\x6b\x64\x15\x77\x2b\xc2\xa6\xb9\x3d\xbf\x8a\x8f\xc7\x60\xa5\xaa\x0c\x15\x5b\x73\x9f\xc2\x4a\xc2\x77\xb8\xd5\x33\x25\xe1\x48\xdb\x6e\x9d\x66\x10\x74\x60\xfc\x10\x95\x9b\x52\x8b\x8a\x82\x7a\x5b\x33\x34\xbf\x2f\xa7\xe8\x94\x68\x98\x16\x1c\xbd\x22\x48\x1d\x38\x94\x46\xe3\xda\x4c\xb1\x07\x2e\xf3\xe8\x53\x87\x08\x52\xda\xdc\xda\xe6\x8b\x05\x80\x65\x43\x15\xbc\x68\xa6\x4c\xcd\xdd\xab\x5b\xa3\xa8\x61\xe3\xf9\xb9\x3b\xd9\xdb\x53\xf1\xf9\xd5\xe7\xcb\x8b\xab\xf6\xf9\xa0\xd3\xfe\x58\x3e\x98\xe1\xc9\x6d\xef\xa6\xd3\xfe\x54\x7e\x34\xb8\xbc\xea\x0d\xfc\x1b\x4b\xc9\xb5\xa1\x83\xc5\xeb\xb4\xfc\xe2\x29\xb1\x9c\x11\x38\x98\x07\x0f\x8b\xd8\xd8\x90\x8d\xa4\x42\x76\x3c\xf5\x6e\x6c\x60\xfc\x24\xac\x2c\x4b\xd1\x4c\x54\x9e\xc5\x29\xd8\x50\xea\x9a\x44\xf3\xa8\x51\x8c\x4e\x81\x9d\x53\x41\x3a\x22\x3d\xbe\x1a\x1d\xdf\xe2\x8f\x53\xaa\xee\x99\x0a\x9f\x3e\x2a\x6e\x0c\x03\xaf\x0e\x77\x0e\x1f\xb0\xf1\xc0\x90\xed\x7d\x03\x69\x0a\x45\x07\x2d\x72\x63\xd9\xb3\x7d\x3f\xdc\x3d\x96\x50\x53\x66\x28\xcf\xb4\x1b\x6c\x69\x5d\x4f\xc9\x05\x55\xe3\xc2\x62\xf3\x9d\x1c\x8d\xb0\xb1\x77\x38\x0c\x7b\xd5\x94\x66\x51\xc3\x22\x2d\x69\xf8\xeb\x0b\xfa\x73\x2f\x07\x21\x6d\x91\xaa\xee\x66\xbb\xd1\xd4\xdd\x35\xac\xf8\xd5\xe5\xa0\xf3\x5f\xdd\x92\xc2\xe2\x9e\xd4\xd0\x1a\x4c\x1c\x1f\x2f\xbf\x0b\xea\xdb\x5e\x24\xa7\xf2\x8b\x35\xe4\x94\xcf\xfc\xce\x8f\xac\x0a\x54\x43\x4b\xec\x0b\x37\xb8\x31\xf1\xb8\x2b\x24\x54\x34\x03\x86\x38\x3a\x9b\x31\xaa\x74\xdd\x6e\x97\xa5\xb5\x86\xbd\xc7\x9e\xe2\x3e\xdc\x26\xfb\x7e\x8e\x88\x14\xd9\x3c\xbe\xeb\x2b\x14\xb9\x06\x0d\x60\x5b\x0b\x14\x70\x0d\xd0\x38\x57\x0f\x4c\x29\x9e\xb2\x4f\x5c\x5b\x4d\x06\x7f\x7c\xef\xf0\x71\xb6\x23\x88\x0f\xed\xee\x45\x45\x06\x18\x9c\x77\x3e\xb4\xef\x2e\x96\x6b\xe3\xa5\xef\x6a\x80\x9b\xa2\x76\x4e\xed\xad\xef\xac\xcb\x70\x3b\x1c\x7b\xd4\x1f\x96\x86\x0b\xad\x0c\xfa\x53\xe1\xaa\xd7\xe8\x01\x71\xff\xb9\x35\xd4\x6c\x49\xfe\xed\xb3\x5e\xf7\xe7\x92\xd6\xde\xbe\x39\xfb\xb1\xfb\x73\x9d\x5c\x30\xf8\xd8\xb9\xec\xdc\xb4\x7b\x9d\xe5\x54\x5f\x69\xb2\xee\xce\xd7\x76\xc0\x55\x0f\x18\xd7\x21\x88\xc3\x92\xb5\x92\x19\xe1\x46\x93\x07\xae\xf9\x90\x03\xd0\x92\xf3\x26\xdd\x75\x81\xe9\x81\x7b\x9e\x9b\xb9\x97\x0a\xb0\xdf\x53\xf2\x7e\xee\xd7\xf0\x08\x98\x9c\x6b\x1f\xd5\xd4\xd8\xc7\x94\x58\xa5\x06\x6f\x3d\x3f\xe9\x53\xd2\x56\xc9\x84\x3f\x80\xda\x13\x7d\x26\xac\x28\x2a\xc6\x4c\xe1\x70\xc0\x84\x1e\x8f\x25\x7a\x6e\x47\x15\xcb\x00\xc5\xaa\x05\xb1\x6f\xcc\x84\x55\x9d\xe3\x4e\x50\x3e\x51\x4c\xbc\xb5\xa2\xcc\x2c\xe3\x09\x37\xd9\x9c\x24\x60\xf3\x48\xad\xa0\x38\xa5\x82\x8e\xdd\x9d\x0b\x8a\x42\x85\x24\xfe\x8a\x68\x54\x57\x23\x67\xdc\xea\x71\xb6\xe5\x09\xb8\xbb\x3c\xef\x7c\xe8\x5e\x96\x49\xe0\xc7\xee\xc7\x92\x10\xf8\xa9\x73\xde\xbd\x2b\x5d\xb4\xab\x64\xc1\xc5\x66\xeb\x4e\x89\x7f\xe9\x94\x9c\xe3\xa7\xa7\x76\x71\x6b\xa0\xb6\x82\xfa\x58\x59\x87\x1b\x1f\x39\xe5\xff\xe8\x08\xa3\x6a\x2d\x73\xeb\x9a\x1c\x9c\x41\xb4\x64\x73\xa8\x37\x5b\x2e\xf4\x7d\x59\x75\x0c\x2e\x5a\xbb\x9d\x33\xc9\x76\xd2\x2a\x2c\x11\xb1\xe1\x16\xd4\xee\x26\xa3\x47\x8d\x6f\xa2\xe0\xa5\x3f\x83\x9b\x71\x9a\x6b\x83\xfe\x20\x20\x4e\x72\xff\x17\x6d\x17\x14\xfc\x45\x2d\x72\xcb\x58\x5f\x78\xfd\x7b\xcc\xcd\x24\x1f\xb6\x12\x39\x3d\x29\x70\xde\x4e\xe8\x8c\x4f\xa9\x15\x50\x99\x9a\x9f\x0c\x33\x39\x3c\x99\x52\x6d\x98\x3a\x99\xdd\x8f\xc1\xcc\xef\x5d\x62\x27\xa1\xd9\xb1\xfc\xb7\x8b\x3f\x7d\x7f\x7c\xf1\x97\xef\xdf\x2c\x5a\x54\x9a\xf6\xbf\x23\x12\x3a\xd3\x79\xe6\x82\x9c\x54\xbc\x36\xfe\xc8\xe7\x6c\xd5\x7e\x5f\x96\xb7\x6b\x37\x0d\xf0\xec\xfa\xae\x64\xe1\x2c\xff\xf3\x53\xe7\xd3\xd5\xcd\x2f\x25\x4e\xd9\xbb\xba\x69\x7f\x5c\x6e\xe9\x5c\x50\x11\x2b\xcb\xf0\x93\x90\x8f\xa2\x3c\x7b\x5d\x9d\x74\x2e\x0c\x9f\x32\xaf\x21\xba\x7f\xf6\x70\xa6\x5b\xcc\xfc\xaa\xf7\x63\x59\xc8\xf9\x70\xf1\x4b\xaf\x33\xb8\x3d\xff\x69\xe9\x4c\xf0\xb3\xd2\xc8\x6e\xc1\xd2\x7f\x26\xb3\x7c\x2a\xe2\xbf\xb7\x1f\x5b\xf7\xb2\xd7\xf9\x58\x1d\xdd\x55\xbb\x57\x5e\xf6\x9b\x72\xe0\xcf\x9b\xf7\x57\x57\x17\x9d\x92\xd3\xec\xcd\x79\xbb\xd7\xe9\x75\x3f\x95\x6e\xbb\xf3\xbb\x1b\x44\x82\x5b\x36\x4d\x3f\x82\x9a\x89\xda\x69\xc5\xd3\xdc\x37\x9f\x59\xeb\x98\xb7\x5d\x50\x2d\x1e\x94\xe3\x08\x71\x05\xfd\x2e\x60\x74\x38\x0e\x16\xbf\x04\x47\x5a\xcb\x6b\x4c\x79\x9b\x48\x33\xaf\x5b\xba\xd1\xcb\x58\x5e\x2f\x0c\x01\xf1\x0a\x51\xc5\xa4\x59\x26\x1f\x31\xb4\x71\xca\xed\x95\xe7\xe0\xaf\xec\x2b\x9a\x24\xb9\x52\x4c\x98\x6c\xde\xaa\x61\x27\xe5\x6d\x61\x89\x62\xe6\x93\xcc\x85\xd9\x9e\xe4\xda\x97\xa5\x43\xdd\xb9\xfc\x79\xf0\x73\xbb\x4c\x81\xdd\x8b\xe5\x87\x3c\x6e\xa2\xe6\x9e\x6b\x5f\xfe\x12\x6e\x38\x08\x80\x3d\x0a\x9a\x19\x0a\x86\x49\xc6\x99\x30\x60\xb1\x37\x32\x03\x71\x81\x30\x0e\xaa\xf6\xd4\x4e\x8e\x8b\x31\xc1\xd8\x3b\x8f\xba\x89\x83\x3c\xf5\x7f\x54\xda\xd3\xb0\x2e\x60\xec\xf3\x31\xc5\xd0\x8e\xd3\x26\x05\x61\xe2\x81\x2b\x09\xa0\x9b\xe4\x81\x2a\x4e\x87\x99\x13\x8e\xec\x5c\x4f\xe1\x7f\x37\x6b\x13\xec\x76\x15\xc6\x75\x2b\x95\x39\x0f\xb1\x89\xdb\x59\x01\xea\x02\xfd\x16\x43\xfc\xea\x15\xfc\x4a\x58\x9f\x1f\x56\x8f\xea\xfb\x05\xbb\x5b\x57\x68\x43\x45\xc2\xce\x32\xaa\xf5\xb6\x63\x45\xc5\xe1\xa8\xcc\xce\x6e\x6e\xee\xae\x7b\xdd\xf7\x2b\x48\xa8\xfa\xf1\x62\xec\x66\x92\xe5\xde\x34\x3d\x54\x92\xa6\xc4\xee\x8d\x1c\xa3\x19\xdc\x5d\xd9\x05\xf8\x29\x06\x51\x87\x70\x96\x12\xf0\x6a\x88\x54\xf1\x1a\x4a\x6c\x5b\xe3\x6e\x21\x48\x62\x57\x82\x44\xca\x8a\x67\x29\x60\x55\x47\xc4\x74\xa7\x32\xce\x32\x6a\x46\x52\x4d\x91\x84\x4a\x93\xc6\xc6\x97\x37\xca\x85\x61\x4a\xe5\x33\xc3\x3d\x9a\x6d\xf5\x0a\x84\x4a\xa7\x72\xfc\x89\x69\x4d\xc7\x6c\x17\xe7\x4b\xdd\xb5\x7f\xfb\x73\xfc\x4f\x70\xae\xac\x73\xa5\x97\x46\xe8\xe3\x0e\x3d\x3d\x5d\x89\x0f\x94\x67\xb9\x62\xd7\x32\xe3\xc9\x96\xce\x62\xab\x66\x0e\xba\x9f\xac\xf8\xdd\xee\x75\x2e\x4a\x7c\x0a\x9e\xb5\x3f\xf4\x3a\x37\x03\x84\x48\x6d\xbf\xbf\xe8\x0c\x2e\xaf\xce\x3b\xb7\x83\xb3\xab\x4f\xd7\x17\x9d\x15\x3e\xd8\xc6\xc6\x17\x4d\x16\xd5\x57\x4f\x17\x7e\x81\x1d\x56\x39\x6a\x37\x5e\xd3\x85\x10\x7d\xca\x33\x70\x00\x49\x74\x04\x51\x22\xac\xce\x6f\x7f\xd6\x5e\xaf\xf2\x11\xa9\x2d\xd2\x35\x6f\xb3\x8c\xd0\xdc\xc8\x29\x05\x33\x66\x36\xef\x0b\x3a\x94\xca\x80\x76\x17\x6e\x06\xa2\x72\x21\x2c\x57\xb4\x8d\x21\xd2\x71\x92\x31\x2a\x48\x3e\x8b\xb2\x29\x9c\x31\x6e\xc4\x05\x04\x3a\x4d\xa9\xba\xf7\x41\x25\x21\x08\x36\x1c\x0a\x4d\xa8\xee\x0b\x04\x1e\x71\xac\x70\x8d\x15\x3e\x5d\xeb\xad\xc6\xd5\x99\xd2\x7b\x66\x57\x65\x9a\x27\x13\xab\x1f\x8e\x15\xd3\xda\x19\x6c\x12\x2a\xd0\xf9\xe6\x5e\x7f\xe4\x59\xd6\x17\x42\xda\xa5\xf0\x76\xa1\x94\xcd\x98\x48\x99\x48\x38\xe6\x50\x80\xdf\x2a\xd8\x6f\xc7\x8a\xce\x26\x44\x4b\x70\xf8\xc0\xb2\x83\xe6\x89\x1f\xf9\xa8\x2b\x07\xb5\x02\x8f\x63\xb3\x8e\xca\x2d\x9f\xb8\x82\x4b\x08\x57\x19\x3e\xf6\x36\x1d\x6f\xcb\x44\x0d\x7e\x3a\xcb\x98\x41\xb8\x62\x58\x72\xd8\x0c\xbb\xd6\xa5\xfd\xb0\xdb\x54\xb7\x09\x7d\x51\x8c\x99\x6a\x37\xa2\x56\x8d\xb9\xc8\x1d\x29\xf2\x23\x15\x69\x66\x5b\xf1\x86\xc1\xf2\x59\x84\x80\x92\xb6\xa5\x1a\x7f\x1a\x77\x91\xd4\x12\x9a\xeb\x8d\x44\xb5\xe5\x89\x2f\xa8\xcf\x1f\x17\x0e\x51\x20\x6f\x97\xf5\x02\xab\x3b\xb3\x2c\x92\x66\xd2\xad\x12\xbe\x9e\x63\x81\x0a\x02\xa3\x69\xd0\x1d\x67\x8a\x8b\x84\xcf\x68\xb6\x95\x60\x59\x09\x85\x74\x21\x86\xdf\xf1\x91\x25\x9f\x77\x0b\x7e\x0c\xc3\xd4\x14\x32\xc0\xdc\x30\xc3\x16\xae\x12\xda\x70\x77\x2c\x21\xd3\x72\xac\xcd\x16\x7b\x83\x4e\xea\xa6\xe9\x56\x5a\x71\xbd\x63\x94\x04\xcd\xae\xeb\xdb\xac\x5b\xb0\xe8\xe1\xbf\x96\x6d\xf5\x27\x3a\xb3\x5b\x8c\x30\xcc\x84\x16\x73\x74\x02\x93\xab\x32\xe2\x5d\xbd\x91\xef\x27\x04\xd1\xae\xaf\x40\x17\x4b\xe8\x7c\xf5\x8b\x9d\x94\x7c\x60\x51\xce\x9d\x23\xc9\x51\x6e\xec\x69\xa2\xe0\x45\x23\xdf\xb1\xd6\xb8\x45\x3c\x18\xf6\x11\x69\x5f\x5f\x77\x2e\xcf\x8f\x08\x33\xc9\x3b\x1f\x4c\xe2\x7c\xeb\x7d\x61\xa4\x13\x2e\xe6\x64\x22\x1f\x81\x95\x31\x35\x66\xa5\x39\x7b\x47\x3c\x20\x29\x8d\xb9\x36\xca\x85\x03\x88\x34\xc6\x66\xe7\xd3\xaa\xdc\x88\x14\x92\x9b\xc9\x2e\xa4\x41\xb5\xce\xa7\x56\xae\x1d\x70\x3a\x1d\x28\x99\xad\x3a\xc3\xb5\x47\xaa\x30\x8c\x0c\x9c\x2d\x6a\x40\x93\xc4\xca\xbd\x6b\xb7\xb6\x6a\x1f\xcf\x61\x99\x34\x99\xd9\x03\x05\x51\x48\x8b\x48\xdd\xd1\x2d\xe5\xad\x84\xc3\x39\xb2\x8c\xac\xc8\x85\xf4\x90\xf3\xe7\x6c\xa6\x98\x95\x0e\xab\xe6\xb2\xb0\xb0\x37\xe5\xe5\xf8\x86\x16\x37\xb0\xb3\xcd\x96\xb5\xb4\x6a\x47\x64\x96\x31\xcb\xae\x73\xcd\x30\xdc\xe1\x96\x25\xb9\xe2\x66\x7e\x86\x59\xa9\x35\xab\x7a\x86\x95\x08\xbc\x5d\x2a\xc2\x41\xdf\x65\x99\xeb\x5a\x59\xd6\x12\x79\x72\x16\x77\x86\xbc\xad\x0e\x5e\x1e\x5d\xfa\x95\x8a\x4a\x10\x31\x52\x29\x1d\x81\x34\x0c\xa1\xbe\xc0\x73\x7e\xcd\xa5\xa1\xfa\x5d\xab\x2f\x2c\x03\xbd\x67\x73\xb4\xc3\x5b\x16\xf5\x7b\x7b\x6d\x1e\x6b\x26\x34\x44\x25\xfd\x1e\x0d\x64\x96\xc9\x7a\xb5\x15\xa5\x48\xac\x58\x51\x46\xbe\x87\x48\x12\xd7\xa8\xe3\x90\x45\x9c\x4e\x01\x97\xef\x9f\xe1\xf0\xc7\xcc\x40\x2e\x8a\xe1\x06\xc4\x9b\x14\x4b\x62\x2c\x0c\x7d\xa5\x6d\x02\xa9\x42\x49\xb0\x97\xa4\xf9\x6e\xe7\x4d\x2f\xb6\x51\xb7\x89\xf5\x17\xfb\xad\x0b\xcd\x3a\xf1\x2a\x5e\xa2\xe4\x42\x9d\x09\x6a\xf9\xb5\xdd\xe9\x21\xf2\x16\x6f\x24\x66\xa2\xf5\xc8\xef\xf9\x8c\xa5\x9c\x42\xa0\x96\xfd\xd7\x89\x9d\xd7\xbf\x9d\xdd\x5c\x5d\x0e\x8a\xf0\xca\xff\xec\x8b\x76\xa6\x25\xb1\xa2\x8a\x54\x46\x13\x21\x45\x88\x0a\x9b\x29\xe6\xaf\x03\x37\x17\xbb\xaa\x91\x89\xa9\x2f\x9a\x46\x90\xca\x44\xb7\xe8\xa3\x6e\xd1\x29\xfd\x87\x14\x60\xaf\x6e\xc3\x9f\x67\x99\xcc\xd3\xcf\xd4\x24\x93\x13\x30\x23\x9b\x13\xf6\xc0\x84\x41\x73\x95\x5d\xae\x14\xd2\x1c\x34\x04\x95\xfd\x9b\x1d\x73\x11\xe9\xa9\xad\xd0\x99\xb0\x99\x21\xff\xaf\x62\x43\x29\x4d\x3d\x8b\x92\xa3\x91\x66\xab\xd8\x51\x83\x3c\x75\x7b\x45\xfe\xf2\xe7\xef\x7f\xb0\x24\xb4\xcd\x1a\x77\x6f\xaf\x06\xf6\xfb\x7f\x3b\x77\xdf\xeb\xb5\x48\xee\x1c\x53\xb7\x76\x8a\xba\xdc\x86\x99\x6f\x6a\xd0\xac\xde\x82\x5c\xcf\x32\x3a\x5f\x70\x8d\xac\xba\x3d\x2f\x2d\x3f\x98\xd1\x84\x15\xa9\x63\xde\xc7\x98\xc8\xe9\x14\x5c\xd2\xde\xd3\x98\xf2\x11\xf8\xa6\x8d\xbd\x02\xc8\x90\x99\x47\x88\x84\xf0\xbf\x06\x6f\x93\xb7\x56\x58\xe6\x01\x0c\xaa\x6f\xd7\x2a\xcd\xc1\x8e\xd5\x7f\x73\x44\xfa\x6f\x52\xf6\xc0\x32\x39\xb3\xe7\xc7\xfe\xc0\x4c\x52\x77\xd5\x76\xa6\x94\x67\x97\xd2\x04\xe7\xfa\x2e\xdb\xa2\x58\xc2\x67\xdc\xd2\xf3\x80\xd9\x76\x9f\x34\x32\x76\x95\x4d\xd7\xe7\xa4\xc3\x48\x08\x4d\x53\x7b\xac\xa0\x6a\x81\x1f\x64\x61\x85\x12\xd1\x02\xac\xc7\x36\x83\x75\x6e\xbf\x64\x5c\x6f\xdb\xb6\x17\xbc\xb7\xde\x84\x8e\x0b\x9c\xf9\xa5\x54\xeb\xaa\x56\x14\x68\xe8\x5e\x09\x5f\xb4\x2f\x34\xe8\x6c\x56\x64\x5b\x6f\x9c\xe5\x95\xb9\xb5\xdf\x2d\x1d\x9a\x8e\xe1\x13\x42\xa5\xa1\x20\x81\xbb\xf8\xb0\x6a\x48\x1a\x5b\x39\xe2\x24\x93\x3a\x57\x6b\x3a\x0e\xca\x83\x3e\x73\x9f\x2e\x1b\x77\x27\x56\x58\xf2\xcc\xe8\x8d\x74\xa2\x9a\x85\xaf\x64\xdf\xe1\xe1\x36\x4e\x0a\x74\x6f\x1f\x91\x22\xe7\x88\x66\x45\xf0\x9c\x48\x49\x21\x4d\xf5\x45\x88\xf7\xa5\x9a\x3c\xb2\x0c\x0c\x5b\x89\x9c\xce\x40\x52\x70\xc3\x75\x2d\xd9\x8b\xce\x50\xc3\x8e\x88\xcc\x8d\x6d\xec\x08\x2b\x61\xb9\x2d\x38\x1e\x52\xc0\x70\x28\xea\x5b\xf6\xc5\x9d\xf6\xb6\xf4\x90\x7a\x8f\xb4\x8e\x0c\x8c\x0b\xf2\x91\x19\x68\x05\xb0\x50\xe2\x09\x62\xc5\xaf\x5a\x16\x54\x5d\xfb\x1d\x4e\x94\x9b\xc9\x06\x3b\x5f\x84\x09\xbf\xcf\xe4\x70\xe9\xbe\xb7\xc9\x14\xb5\x67\xd7\x8b\x37\x0e\x16\x76\x93\x28\xdd\x6a\x15\x8d\x32\xa5\x4a\x21\x41\x2b\x8e\x7f\x39\xb4\x78\x39\x79\x42\x60\x6f\x94\x8c\xb6\x38\x4e\x67\x51\x5b\x35\x46\xb0\xfb\x0c\x5e\x8f\x75\x09\xc7\x3b\x5d\xb4\xa8\xad\x22\x82\xb2\x25\xee\xa9\x27\x03\x07\xc4\x4c\x18\x57\x64\xad\x69\xf9\xf3\x3b\xc0\x33\xbf\x3e\xd1\x14\xb4\xdd\x24\x00\x22\x13\x09\x0c\xc2\x0e\xcc\x61\xb7\x94\xca\xd3\xb5\xfa\xa2\x32\x08\x67\xa2\xd5\x04\xc8\xcb\x9f\x86\x12\xef\x3f\x22\x23\xfe\xc5\x35\x5a\xb8\x6e\xfc\xab\x91\x51\xa0\xc1\x54\x38\xa1\x8b\x64\xb7\xc1\xfd\x78\x0d\xdf\x2f\xb5\x85\x49\x6d\xac\x38\x60\x05\x2b\xc5\x12\xa9\x2c\x4b\x84\x6e\x83\x23\x69\xe5\xdd\x68\xa8\xb2\x8b\x42\x37\x12\xc0\x0b\x2c\xa3\x94\x1a\x76\x6c\xf8\xca\xa8\x1c\xab\xae\x58\x06\x3b\xb5\xea\x6c\x94\xe4\x51\x70\xd8\x21\x1b\x53\xe1\x9d\x0e\x0d\xa3\xf5\xac\x7d\x87\xc3\x6c\x25\x2b\x0a\x5e\x55\x90\x23\xec\x80\xca\xe3\xd0\x33\x58\xce\xa5\xe3\x70\x06\xa2\xe7\x5a\x35\xb3\x64\xd9\x1e\x69\xb0\x57\x35\x0c\x36\x87\xb2\xc2\x2f\x66\xb0\x19\xd5\x86\xb8\x31\x35\x8c\x38\x96\x66\xf7\x90\x9d\xb6\xac\xec\x51\xac\x38\x6c\x22\x9c\xc7\x43\x24\x9a\x19\xc3\x5d\x79\x9e\x5c\x33\x17\x54\x3c\x65\x6a\xec\x05\x3e\x44\x6c\x0f\x47\xdb\xe5\xdf\x7a\x3e\x1a\xf3\x12\x70\x3f\x2d\x36\xdd\x22\x6d\xb1\x90\x1a\xe1\x6d\x6c\xa5\xf5\x42\xae\x4d\xb3\x47\x3a\xd7\x64\xa6\x30\x12\x19\x7d\x52\x7e\xf2\x60\x5b\x2e\x7f\x14\x2c\x07\xc6\x3b\x05\xa1\xd8\x66\x3c\xb2\x86\xcd\x8a\x6a\x73\xad\xcf\xec\xd6\x94\xfd\x2b\xfe\x92\xba\x4a\x5d\x41\x05\xaa\xe5\x74\xcd\xb6\xcb\x52\x6c\x9c\x03\xd9\x00\xd9\xd2\x69\x17\x9d\xb2\xaf\xa5\x49\xe0\x03\xab\xdb\x05\x1d\xb2\x6c\x67\x1f\xcb\x56\x16\x10\xe8\xda\xc1\x9f\x58\xf5\x9b\xa1\xcf\x08\x2a\xa7\xaa\x2a\x6b\xf3\x76\x43\x95\xaf\xe7\x41\x2a\xe6\x59\x2a\x38\xb0\xc3\x44\x3d\x9e\xcf\xf6\xfc\xbb\x09\xeb\x27\xbe\x48\x0a\xb0\x9f\xfa\x5b\xa4\x6a\xbe\xd9\x65\x0c\x11\x2a\x4f\xed\x10\xf6\x01\xcb\xb3\x17\x63\x50\x20\x99\x35\x21\x28\xbb\x23\x22\xa4\x60\x84\xeb\xe2\x65\x53\x76\x95\x87\xc0\x6b\x2b\x46\xa2\x9a\xbe\x58\xe0\xe6\x99\x75\xf2\x76\xd0\x25\xc9\x88\xb3\x2c\xd5\x44\x30\xab\xd2\x50\x35\x87\x04\x48\xe4\x67\xeb\x88\x46\xfb\x12\x56\x6b\x6e\x0f\x27\x45\x7a\x8c\x07\x80\xd4\xb3\x82\x58\x65\x5c\x04\x13\x44\xdd\x4b\xee\x23\x17\x7d\xdc\x17\x41\x09\x06\xf2\xe3\xda\x2a\x77\x2d\x02\xdb\x66\x8a\xaf\x30\x9a\xde\x84\x3d\x3c\xf2\xa2\xac\x46\x40\xba\x4d\x54\x7f\x7f\x6d\x15\xeb\x58\xce\x00\xf4\x89\xca\x58\x41\xb9\xae\xf0\xad\x27\x8a\xac\x64\x85\x5c\xce\x74\x1c\x3a\xc7\x0b\x30\x53\xad\xbf\x52\x76\x93\xf3\x05\xc3\x15\xd6\xbf\x29\x74\xec\x28\x21\x21\xd6\x54\x5c\xf2\x32\xd6\x2f\xa5\x9a\xfc\x5e\x48\xf3\xfb\x28\xbd\xdb\x6b\xc3\x58\x40\xc9\x59\x26\x8e\x4a\xc8\x49\xdc\x27\xab\x39\x22\x21\x34\x4a\x92\x58\xb9\xf2\xbb\x62\x0a\x14\x3e\xbf\x27\x15\xde\x3a\x8b\xe1\x10\x4d\x58\x2d\x88\x9e\xba\x37\x13\xc0\x73\x94\xee\x23\x48\x06\x8a\xf9\x84\x99\xa9\x54\xac\x82\xe0\x8a\xcc\x3b\xc4\x0b\x21\x72\xe6\xfa\x54\x5a\x63\x0d\x43\x54\xca\xe2\x98\x97\xac\x60\xcb\xad\x5f\xfb\x08\x04\x9a\x96\xf3\x0e\x97\x50\xc0\x8a\xac\xee\x7a\x8d\x7c\x9b\xe0\x9d\x26\x91\x34\xd8\xa1\xe3\x52\x55\x4d\xb9\xcc\xad\xbe\xf8\x20\x95\xbb\x3b\xb5\x83\x09\x19\xd2\xe4\xfe\x98\x89\x94\xd0\xdc\x4c\x30\xa7\xd8\x99\x8e\xe7\x6e\x67\xad\x5c\x00\x24\x10\x72\x56\xb9\x4e\xa8\x72\x4c\x7f\x44\x1f\xa4\x1f\x45\x5f\x44\x8d\x00\x10\x09\x80\xa7\x81\x2b\xbd\x49\x80\x60\x00\x56\xd9\xb4\x16\x75\x30\xc6\x0b\x20\xc6\xcb\xcf\x4c\x1c\xdb\xdc\x87\xfe\x58\x2a\x98\xd6\xfd\x37\x38\xea\xca\x0a\x75\xbd\x39\xca\xab\x37\x3a\x2e\x08\x17\xde\x3c\x72\x61\x79\x68\x90\x71\xb3\xb0\x62\xca\xf7\x9e\x77\x96\x32\xac\x47\xb9\x82\x00\xbb\xba\x36\xbf\x4b\x26\x3c\x2b\x4c\xd4\xef\x8e\xdc\x79\xc4\x26\x33\xf6\xc0\x32\x04\xe2\x48\x14\xf8\x71\xd1\xa7\xf8\x3d\xf9\xdf\x08\xef\x4b\x7e\xe8\x8b\x8f\xc0\x56\xb3\x6c\x7e\x44\xf8\xa8\x68\x99\x9a\x4a\x33\xf7\xb5\x03\xb0\x5b\x86\x9c\xa5\x34\x10\xdc\xef\x09\x7d\x60\x7d\xe1\x9b\xf9\xdf\xe4\x9e\xfc\x81\xfc\xd0\x64\xc7\xf1\xee\xd8\x27\x56\xf3\x81\x8a\x7d\x5f\x11\x67\x38\x72\xe2\x23\x70\x0e\x6f\x05\x28\x99\xe0\x6a\x42\xa6\x03\x04\x00\x17\x0f\x72\xd1\x79\x15\x9f\x5c\xaa\x98\x30\x03\x21\x53\x36\x60\x35\x9e\xab\x25\x8c\xc2\x5e\xea\x97\x32\x65\x2b\xfd\x4e\x41\x40\xfe\x0c\x96\x0b\x9d\x0f\xc3\x76\x40\xe4\x66\xd0\xb9\xcb\x04\x56\x3f\xe0\x90\xa2\xbb\xcd\x70\xb7\x75\x95\x5d\x39\xe9\xea\x08\x38\xba\x1b\x40\xbd\xbb\x26\xa3\xc6\x07\xc9\x55\x4f\x61\xd5\x40\x6c\x5f\xb6\x33\x77\x77\x4e\x94\x7c\x0c\xa8\x45\x8a\x8f\xb9\x95\xb6\xd7\x77\xc7\x01\x13\xdc\xc6\xca\x8d\xe9\x9e\x6b\x99\xb9\x8b\xa5\xf0\x81\xf3\xc7\x81\xec\x0a\x17\xd3\x50\xe6\x55\x99\xdb\x2d\x00\xd7\x71\xf8\x9e\x13\xaf\xe7\x96\x05\x8f\x31\x34\x8c\x4d\x38\x02\x05\xb4\xcf\x2e\x88\x3d\x14\x72\xca\x10\xdc\xd9\x2e\x5a\x6e\x26\x52\xf1\x7f\x34\xfa\x63\x9b\x25\xec\xc2\x8f\x56\x44\xfd\xe0\x38\xcb\xb2\x36\xd0\x28\x4a\x06\xa6\xa4\x48\xd4\x69\x38\x64\x98\x43\x36\xac\xe5\xae\xa3\x3c\x43\x10\x9a\x44\xaa\x14\x4b\x0d\xe8\x52\x8c\x91\x7d\x8f\x6a\xcd\xc7\x2e\xb0\xd0\x37\xc8\x5d\xd2\xa0\x83\xb9\x49\x26\x54\x8c\x97\xcb\x91\x7f\xcd\x59\xbe\xa7\x30\x2d\x07\x3d\xf7\x95\xbc\xf1\x74\xac\x8b\xb4\x0f\x5c\x1b\xcb\x92\x8b\xf5\xfd\xd5\xce\xd4\xf9\xe3\xa9\xbe\x2f\xec\x69\x21\x77\x0c\xd5\xe8\xaa\x3e\xbf\x86\xed\xe5\xc6\x1d\xbf\x3d\x58\x5f\x9e\xc3\x5d\xbf\x28\x1f\xd5\xf0\x1f\xa0\x3f\x07\xef\xf2\xac\xd6\x8d\xc0\xc3\x2b\x72\xc7\xbe\x2d\x1d\x1b\x68\xd2\x7e\x50\x6e\x84\x8e\xb9\x2e\xfa\x36\xeb\xa9\xe3\xb6\x6c\x47\xd9\x98\x24\xb0\xef\x01\x78\xb1\x76\xb6\xde\x46\x56\xc9\x22\x60\x16\x23\xa6\x7d\x2e\xc3\xd3\x9a\x5a\xca\x7e\xc1\x72\xcc\x76\xe4\x16\x6c\x8a\xa5\x8f\x46\xb4\xc5\xed\xb4\xa8\x08\xd5\x8f\xcd\x3f\x5e\x77\x28\x4b\xbd\x21\x6b\xfa\x36\x40\xa3\x5f\x76\x6c\x2f\x5c\xb0\x51\xd9\x2b\x80\x11\x14\x32\xf2\x8b\x82\x83\x20\xd7\xc4\x28\x0a\xf1\xa2\x10\xe5\xf7\x19\xa5\x58\xae\x51\x5f\x74\x00\x87\xa0\x8e\x3a\x38\x35\x60\x9e\x0e\x7d\xc9\x4c\xa8\x70\xe9\x32\x75\x1e\x88\x00\x71\x1e\x4e\x42\xec\x83\xa8\xeb\x0c\x3a\x72\xa2\x7b\x6d\x93\x7e\xa1\xe3\x38\xee\x4a\x0c\x6d\x93\xa9\x98\x6b\x08\xc1\xa6\x59\xa3\xce\x38\x94\x32\x63\x54\x34\x89\xd5\xb5\x8f\x17\xac\x45\x3c\x8e\x9b\xb5\x5a\x9f\x95\xcc\x54\xce\xac\x4e\x41\x31\x61\x28\x9a\x17\x85\x4a\x24\x26\xa0\xd3\xa1\x62\x68\x07\x9a\xae\xf0\x87\x1c\xc5\x27\x7f\xc8\xb2\x8d\x02\x4d\xf0\x83\xa5\x54\x04\xaf\x14\xc5\x2e\xd6\x4a\xc2\x88\xe3\x1f\x6a\x53\x56\x56\x0d\x2c\x4e\x74\x59\x6a\x1a\x2e\x27\x8b\x6c\x39\xc4\xdc\x4c\x6a\xa3\xf1\x97\x0d\xd0\xa7\x03\xac\x23\xb1\x9e\x82\xf4\x48\xa4\x43\xe2\x89\x46\xba\xce\xae\x6a\x17\x45\x3f\x70\xba\xff\xfa\x3c\xb5\x1a\x7f\xbf\xde\x58\x7d\x7f\xde\xd6\xb0\xed\xb8\x1d\x20\xc9\x40\x8e\x7c\x9e\xc2\xfa\x23\xaf\x22\xb5\x6c\x60\x95\x50\x08\xf4\x40\x66\x8a\x4b\xe5\x00\x51\x1a\x7d\x03\xab\x2e\xf5\x76\x25\x7e\x04\xe0\x2d\xa7\x70\xef\xe8\x02\x1e\xcc\xdb\xff\xc2\xad\x5f\x5a\x1d\xc8\x46\x84\x8f\x53\xc9\x74\x24\x68\xc3\xc2\x22\x17\xe3\x23\x66\x07\xdd\x17\x56\xd3\x88\x95\x02\x4c\x6a\xf4\x39\x8e\xb6\xd3\x44\x49\xad\x5d\x48\x08\xb6\xa3\x5b\x4b\xe5\x89\x9e\x4b\x39\xdb\x87\xb3\xef\xf9\xa2\x43\x17\xab\x9f\x45\x88\xfc\xf5\xf2\xe7\x90\x85\xf4\xba\x46\xee\xbf\x6b\xe0\x98\x3f\x26\x44\x31\xaa\x9d\x05\x04\xe2\xab\x2a\x91\x25\x1b\x48\x8b\x61\xcc\x18\x67\x79\x1c\x12\x5a\x23\x12\x72\x00\x10\x58\x78\x88\x6b\xc2\x95\x62\x00\x1c\x8f\x08\x04\xdd\x0a\xd5\xf0\xa2\xba\x7e\xb1\x22\x41\xd9\xc7\x9e\xe1\xb6\xd4\x7c\x6a\xcf\x33\x20\xdf\x08\x79\x2c\x67\xa0\x3d\x56\xdf\x82\x6c\x64\x3e\xb2\x94\x18\x17\xf7\xb7\x22\xf6\x31\x14\xc8\x61\xc2\xd4\xb9\x3b\x7c\x23\xe0\x1e\x01\x00\x84\x09\x73\x94\xdb\x7f\xd3\x7e\x7f\x75\xd3\xeb\x9c\xf7\xdf\x14\x3e\x6c\x1f\xef\xe4\x2f\xf7\x90\x2c\x29\x45\x5f\x04\x57\x54\xa8\x7c\x07\x7b\x49\x68\x9a\x16\xb9\x81\x18\x05\x39\x40\x93\xfa\xba\xa7\x62\xa5\x37\x6a\xb1\x99\x0f\xfc\x0b\x4b\x6f\x1a\x20\xc5\xf6\x12\x22\xb0\x96\xad\xb6\x96\xc4\x73\xc1\xd7\xbc\x23\xca\x53\xb9\xb3\xdf\xad\x4f\xc1\x78\x12\x60\xaf\xbc\xd1\x4f\x5b\xe6\x4b\xa8\x21\x34\x14\x24\x1c\x01\x0d\x88\x64\x7e\x44\x20\x27\xc0\x52\xed\x9c\xfc\x91\x4c\xb9\x80\xf8\xdd\x65\x6b\x7b\x57\x9e\xc8\x26\x58\xae\xdd\xcb\xbb\x32\xd0\xfa\x8f\x57\x77\x65\x84\xc2\xf6\x2f\xcb\x51\x59\xcb\x2d\x2c\x33\xea\x14\x73\x8c\x62\xa4\x24\x2e\x45\x58\x9a\xba\x89\x2e\x82\xf7\xaf\x41\x4c\x45\xb4\x0b\xc8\xe2\xfe\x88\xd9\x6d\x88\xaa\x35\x2c\xef\x6c\x77\xf7\xab\x43\x9f\x03\x25\x93\x0d\x16\x4b\x58\xac\x22\xba\xc5\xaa\x12\xf1\xd4\x7a\x0e\xfb\x59\xc9\x0c\x24\x7b\x16\xaa\xe7\x44\x11\xc4\xad\xb8\x94\x05\x15\x69\xb0\x80\xda\x0b\x5a\x0a\xbb\x37\x7d\x78\x3b\x40\x49\x17\xcd\xc9\x11\x7e\xbc\x56\x58\xd1\x4d\xec\x48\xb3\x6d\x15\x4b\x49\xda\xd7\xdd\x9a\xb5\xbe\xa8\xca\xe1\xdf\x56\x86\x76\x16\x54\x82\x7d\x27\x67\x47\xa1\x4f\x2f\x22\x2f\xdb\xcd\x74\xb7\x94\x6c\xb4\x9c\x5c\x97\xcd\x31\x4f\x2a\x79\xd5\xc6\x37\x6c\x1f\xa9\x53\x4c\x00\x4c\x53\xf5\x72\xd5\xc6\xe9\x2d\x45\xab\x3e\xc7\x62\x03\xb1\x9c\x14\x5f\x7b\x03\x9f\xc3\x84\xa2\x33\xea\xa0\x30\x41\xb4\xf2\x09\xae\x75\xd0\x25\xad\xbe\x88\x4b\xe2\xa2\x30\x64\x69\xc0\x27\x3c\x03\x80\x94\x65\x17\x0a\x3d\xf5\xe1\x9e\x3b\x8a\x53\x5d\xaa\xa1\x9a\x66\x42\xe6\x32\x57\xa1\xc7\x85\x7e\x1c\xf5\xe9\x09\xf5\xd1\x3c\x5e\x81\x70\xbe\xe6\x38\x71\x1d\xda\x8b\xf2\x40\x5d\xc7\xec\x81\x09\xf2\x38\x61\x22\x72\x3d\xf6\x45\x14\x44\x69\x75\x0d\xf1\xd6\x84\x50\x29\x9e\xcd\xc1\xfb\x48\x68\xf0\xb3\x16\x96\x54\x4d\xb9\x6b\x79\x39\x01\xef\x21\x1b\x46\x57\x80\x58\x37\x20\x3e\xf8\xb2\xc9\x38\xe8\x20\x9b\x2d\x0d\xc4\xa6\x4a\x8c\xd8\xaf\x25\x59\xf6\x65\xc6\x92\x6d\x52\x18\xae\x7d\x95\xa0\x65\xc6\xca\x32\x08\x18\x18\xe2\xdc\xd6\x19\xe9\x4d\xa7\xd5\xd1\xae\x18\xe7\x46\x89\x44\x76\xa0\x3f\xbb\x64\xef\x0d\xc7\xe9\x53\x89\x46\x4a\x4e\xd7\x1b\xe2\xf3\x04\xcf\xf7\x16\xc2\xd0\x4b\xd6\xbf\x17\x12\x35\xbf\x7a\x94\x4d\xe1\xf2\xab\xb8\xde\xcf\x78\x2f\x86\xcc\x18\xc0\xb2\xf0\xc0\x62\xde\x27\xea\x22\xd5\xe3\x3e\xe3\x3b\x2b\x78\x07\x7d\x14\x59\xe5\x14\x94\xfc\x8e\x43\x46\x9c\x98\x8b\x91\xe3\xf5\x21\xef\x70\x7d\xd6\x39\x3c\xa2\xd0\x09\x97\xf8\x67\x17\x4f\x1b\x3a\x0d\xc8\x02\x55\x68\x89\xca\x72\xad\xe0\x46\xfb\x0a\x61\x7e\x82\x30\xf7\x3a\x23\x46\x29\xf4\xde\xc5\x18\xed\x27\xbf\xb5\x72\x43\x2f\x1d\x58\x29\xc1\x35\x1e\x90\x43\x2f\x8f\x93\x3a\x17\xb7\xb2\x74\xf3\x61\x59\x03\xef\x57\xd9\xd2\xfc\x81\xd4\xc9\x54\x25\x33\x81\xc4\x77\x3c\x58\xcf\xa6\x74\x1e\xc5\x3e\x3a\xf4\x2c\xb8\x9c\xb9\x08\xff\x2a\xb3\x5a\x4f\xcc\x31\x89\xd6\xc5\x1f\xb5\x22\x44\x6c\x30\xeb\x65\xf1\x7d\x8d\xa5\x5a\x70\x94\xe8\xcd\x40\x70\xee\xee\x25\xe2\x69\x43\x5c\xdf\x5c\xe6\xe4\x91\x6b\xab\xfa\xf5\x05\x98\xfb\x03\x88\xb7\x91\x0e\x78\xfb\x08\xde\x82\x68\x5f\x9d\x0f\xa7\xdc\x2a\xca\xc5\x24\xef\x80\x23\xdc\xf8\xd8\x4f\x3c\xc7\xf6\x03\xb8\xb6\x7d\x54\x69\x5d\xfe\xc6\x8a\xf3\xb1\x85\x7d\xa3\x68\x64\xd7\xc0\xd1\xc8\x1b\xf9\xb4\xa1\xa3\x91\x98\x1d\xab\x35\xb5\xc7\xeb\x10\x3b\x5a\x7f\x28\xcb\xf9\xd3\x90\xe4\xce\xb5\xa9\x5c\x26\xcd\x59\xd3\xc5\x16\xec\x23\x70\xb4\x09\xbd\x65\x59\x34\x91\xff\xa4\x5e\xda\xb9\x0d\xf5\x69\x6a\x45\xb0\xeb\x46\xf9\xe6\xa5\x65\xaf\x45\xa5\xb8\xb6\xf6\xf1\x6e\xa2\x6e\x15\x09\x18\x31\x29\x44\x01\x46\xe5\xc4\x05\x56\x65\xdd\x42\x1a\x08\xae\x48\x00\x84\x72\x21\xb2\xa9\x2f\xea\xe5\x86\xe5\x34\xb6\x6b\x9c\xc4\x5e\xb3\xdc\x22\x6b\x91\x9f\x85\xb3\x88\x7c\x0e\x81\xa1\xa8\x8c\x86\xa2\xc8\xac\x72\xae\xbc\x61\xbd\x41\x0b\x00\x71\x61\x9b\x10\xbb\x9a\x53\xb9\x66\x14\xc3\xca\x73\xe1\xae\xcc\xa7\xd1\xa0\x76\x0c\xf7\x80\x44\xef\xfd\xa7\xa7\x83\x75\xfa\x08\x5c\x1f\xce\x2f\x4a\xb1\xd6\x45\xc0\x05\x59\x6b\xe5\xd6\x00\x7f\x6b\xe0\x61\xf0\xb0\x54\xa6\x08\x0e\x8f\xcc\x42\x49\x98\x0a\x77\x0b\xe2\x4e\x2e\x52\xa6\x04\xa3\x66\xf2\x7c\xe1\x03\x67\xbb\x9a\x0c\x9f\x2d\x94\xe0\x6c\x2f\xf0\x93\x95\xb0\x82\x0d\x23\x0a\x36\x70\x73\x17\x00\x7d\x0b\x4a\x54\x1d\x4a\x6f\x91\xc5\xe0\xf4\xac\x32\x06\xe2\x53\x44\x46\xd4\x2b\x36\x4f\x13\xcc\x50\x63\xd0\x58\x08\x63\xb0\x67\x33\x86\x35\x5c\xb1\x24\xaf\x37\xa8\x21\x66\x33\xf4\xd1\x99\x8d\x06\x96\xb3\x0f\x10\xd0\x68\x83\xdd\xbc\xa1\x8f\x57\xf0\x3d\x94\xd9\xc7\xaf\xd7\x17\x1c\x96\x29\x9b\xc1\x52\x09\x30\xd4\x25\xa0\x25\xe4\xfa\x2b\x6e\xff\xed\x0b\x3a\x79\xbd\x2d\xf6\x07\xba\x5f\xdc\x0f\x0d\x25\x2e\x56\x94\x6d\x8a\x75\x48\x31\xaf\x9a\x60\xa8\x4a\x33\xa6\x41\x3b\x40\xb5\xb0\xa2\x00\x2c\x53\x4f\xfb\xe2\x47\xf9\xc8\x1e\x98\x3a\x22\xd4\x90\xa9\xb4\x42\x5f\xe4\x15\x83\x98\xfe\x12\xe0\x00\x7a\x3f\x28\xb9\xa4\x53\x96\x76\x40\x74\x88\xa2\x78\x9d\x92\xec\x0c\xd0\x75\x49\x9d\x90\xa8\xe8\x6a\xd9\xba\x81\xf6\x05\x56\x83\x42\xff\x2e\x50\x23\xf7\x13\x03\x56\xf9\xfb\x60\x1e\xff\x7d\x8b\xf4\xac\x8c\xc3\x75\x79\xbc\x51\x72\x48\xd3\xd8\xfa\x62\xac\x64\x3e\x0b\x4a\x8c\x1c\x82\xf6\x84\x66\xf2\x1a\xf3\x38\x0c\xc6\xdb\xc6\x13\x9a\x5a\x09\x6a\x39\xe1\x94\xd4\xec\x17\x66\x35\x2a\x47\x5a\xc7\x04\x64\x99\x57\x70\x2d\xbb\xf0\x21\x20\xa3\x66\x10\x98\xfd\x99\xd9\x17\xa0\x77\x35\xc8\xef\xc1\xba\x51\x0a\xbb\x6b\xb8\x55\x36\xb0\x08\x79\xeb\x49\x7d\xbc\x68\xd1\xad\xf3\xeb\xfa\x9a\x08\x75\x95\x8f\x1a\xf6\x7e\x7d\x07\x78\x65\x94\xd7\xb9\x9a\x49\x48\xb8\xc8\xe6\x3e\x48\xd5\x25\x91\xcc\xe4\x2c\x47\x07\x34\x8f\xfd\x91\xb5\x03\xe2\xda\x7c\xa2\x26\x99\x58\xd1\xb1\x48\xa6\xd8\x93\x63\xbe\x60\xa4\x4f\xab\xaa\xd6\xcc\xe0\x2c\xee\xbd\xc1\x0c\xb3\xb6\x15\x02\x53\xab\xe3\x00\x07\x9a\x65\x64\x6a\x7b\x2d\x61\xcb\x46\x68\x70\xb5\x6b\x5d\xc2\x52\xdb\xbb\x4f\x7e\x07\x55\x02\x6a\x42\x72\x41\xa2\xaa\xd0\xce\xd9\x50\x7b\xa4\x73\xc5\xb7\xd2\x18\x9c\xb1\x0a\x40\x5e\x0b\xdd\x73\x4a\x67\x84\x5b\xbe\x6d\x6f\x1e\x35\x66\x47\xe4\xd1\x9e\x38\x93\x2b\xcb\x9b\x73\xc5\xfd\x09\x03\x85\x71\xc9\xf6\x95\x35\xb6\x13\x94\x36\x30\x2e\x32\xa1\x11\x8c\xa0\xab\xcb\x97\x98\x9c\x06\x17\x3f\xec\x70\xc6\xc5\xbd\xed\x0c\xe1\x4d\xbc\x63\x40\x59\xfe\x26\x95\x4f\x2f\x28\xed\xe9\x4a\xca\xdb\x61\x97\x9b\xc1\xa3\x57\x1d\x05\x2e\xc6\x51\x62\x54\xbd\xbe\xbc\x0e\x4c\x49\xed\x97\xeb\xa1\xac\xd4\x7e\xea\xe5\x89\x6d\xbe\x5d\x92\x4b\xb2\x35\x72\x7b\x29\x76\xca\x85\x94\x38\x89\x24\x4e\x59\x73\x5a\x17\x24\x9c\x62\x51\x27\xea\x24\x94\xff\x0c\x7f\x21\x38\x1c\x2e\xcd\x7f\x12\xa9\xfa\x02\x7f\x3f\x0a\x38\x32\xf6\x85\x22\xe7\xb3\x01\x25\x21\xd0\x93\xc7\x21\xdf\x4e\xae\xec\xb5\x6f\x7f\x1a\xdc\x74\x6e\xaf\xee\x6e\xce\x4a\xc2\xe5\xd9\xc5\xdd\x6d\xaf\x73\x53\xfb\x0c\xab\x9f\x74\xaf\x2e\x07\x7f\xbd\xeb\xdc\x35\x3c\xf2\x0d\x5c\xb4\xdf\x77\x4a\x95\x57\xff\x7a\xd7\xbe\xe8\xf6\x7e\x19\x5c\x7d\x18\xdc\x76\x6e\x7e\xee\x9e\x75\x06\xb7\xd7\x9d\xb3\xee\x87\xee\x19\xd6\x6c\x8b\xde\xbd\xbe\xb8\xfb\xd8\xbd\x1c\xf8\x90\x98\xa5\xb2\x6e\xfd\x54\x9a\x30\xf8\xa3\x3a\x84\xc0\x5f\x0a\x54\x1c\x7f\x37\x0f\xe7\x6e\xa7\xf9\x3f\xc0\x5c\xe2\xaa\xb2\x1e\x1f\xf9\xbf\x10\x7f\xf9\xd8\x72\x04\x6f\x30\x2b\x0e\x53\x5f\x04\x8b\x66\x60\xff\x86\x8e\xb5\xaf\xc8\x54\x1a\xed\x29\x69\xcf\x5c\x41\x73\x59\xee\x14\xca\x39\x85\x91\x7a\x43\x36\x90\x08\x54\x54\x73\x55\xc2\xaa\xbb\x55\x6e\xd0\xcd\x09\x86\xe0\x0c\x7a\x29\x29\x20\xf9\x17\x50\xdb\x7d\xe9\xb1\xf2\x36\x9f\x12\xcf\xb0\x6c\xb3\x76\x5c\x90\x86\x39\x17\x74\xba\x50\x77\x0a\x33\x11\x5d\x8e\xe2\x94\x09\x53\x6d\xb1\x44\x1d\xe5\x96\x27\x8c\xfc\xf4\x97\x62\x50\x60\x86\x71\x66\x8d\x7c\x01\x51\xd1\x3d\x50\x39\xae\xea\x2a\xda\x2a\xf5\xe4\x15\x9f\x9a\x2a\xa4\x10\xa5\x92\x8b\x28\x19\xa8\x14\xc8\xe5\xaa\x2f\x90\x63\x52\x21\xd0\x53\x72\xcb\x32\xa8\xfc\x1a\x84\x1a\xbb\x8b\x33\x28\x60\x5c\x05\x62\x1f\xba\x82\xc6\x4e\x6a\x40\xb8\x1a\x58\x47\x28\xa0\xd7\x74\xe8\xcb\x3c\x7b\xa7\x64\x56\x7d\x3f\xf0\x7b\x3e\xd8\xea\x12\xe9\x51\x7d\x5f\x53\x08\xa1\x96\x2f\xbb\x0d\xdd\xb1\xc7\xe6\xea\x0b\xb5\x9d\x86\x3d\x1b\x00\x45\x6e\xd7\x67\x63\x26\xf1\x8a\x2e\xfd\x8c\xb3\x0a\x30\xdb\xda\xfd\x95\x80\xdd\x9e\xde\xb6\x53\x7f\x8b\x03\xed\x0e\x7c\x42\xcd\x26\xeb\x56\x2e\xe6\xbd\x89\xf7\x06\xe0\x2c\x78\x12\x15\x42\x87\x53\x1f\xc0\xf2\x3c\x7a\x33\x96\x91\x74\x86\x25\x3a\x94\x0f\xa5\x14\xf2\x29\x16\x91\xab\x95\xb1\x23\x4d\x7e\x97\x33\x14\x88\x79\xfd\x0a\x9b\x76\xe9\x3d\xf9\x42\x2d\xcb\xda\x65\x5f\x57\x53\xaf\x4e\x66\x55\x1c\xe5\x16\xce\x98\xa8\xf5\xe0\x8d\x59\x47\xb8\x3e\x77\x15\x10\x74\x09\x44\x19\xb1\xfa\x41\x05\x8f\xcd\x29\x47\x45\xd4\x89\x2b\x86\xed\xc5\xa1\x13\x2f\x21\x91\x13\xb4\xf1\x9c\x44\x57\xf7\x7c\x66\xef\xec\xe9\xd0\xa5\x5c\x2c\xdf\xe8\x68\x6d\x76\xd8\xf2\xa7\x03\x0f\x0c\xd3\xfa\x6a\xd8\x81\x75\x23\x78\xb5\xd0\x81\x18\x92\x1f\x68\xc3\x4e\xd7\xaf\xf6\x1f\xfc\x8c\xfe\x80\x24\x95\x37\xe4\x6f\x45\xad\x85\xfc\x7a\x72\x0c\x95\x6e\x5c\xb2\x88\xb3\xd4\x6b\x72\x4c\x32\x7e\xcf\xc8\x5b\x70\x6f\xb7\xaf\xbb\x6f\x8f\xc8\xdb\x38\x84\xf6\xed\x06\xec\xaf\x40\x05\x75\xe3\x76\x18\x82\x20\xa9\x96\xa2\xb3\x20\x25\x20\x1e\x66\x3b\x2a\x60\x03\xb9\x59\x86\x29\x44\xba\x83\x90\x9c\x10\xf6\xe1\xec\xb0\xab\x78\x63\x71\x64\x76\x46\x63\xb3\xed\x2d\x06\xf8\xef\x39\x14\x61\x39\x23\x5c\x91\x32\xd0\x0e\xc5\x2e\x0a\xfc\x3a\xdd\x40\xbc\x87\x70\x9c\xba\x59\x95\xf4\x64\xbf\x98\xb5\x9b\xb2\x8a\xf0\x5e\x1b\xb9\xad\x11\xf8\xd2\xae\x5b\x11\x17\xb8\xd4\x20\x4b\x1e\xa8\xec\x69\xa9\x6c\x1f\x31\x5f\xe5\xc1\x6d\x7e\x9b\x9d\xa1\x40\x14\x35\xe3\x13\xa6\xad\x84\xeb\xf9\x74\x19\xe6\x6f\x35\xb0\xed\x86\xbe\x94\x68\x4d\x56\x3b\x53\x6e\xd1\x09\x87\x4e\x8d\xc5\xb1\x56\x87\xda\x36\x0e\x78\x48\x72\x8c\xca\x36\x7c\xca\x8e\x08\x14\x6c\x2a\x1c\x87\xee\xbc\x02\xb9\xc1\x55\xe5\x2a\x3b\x60\x27\x2a\x99\xf0\x87\xfa\xd0\xf3\xa5\x1b\xbc\x83\xcb\xf5\xb2\xfd\xa9\x73\x3e\xe8\x5c\xf6\xba\xbd\x5f\x06\x8b\xde\xd7\xf2\xe3\x9b\xb3\x1f\xbb\x3f\x77\xce\xe3\x17\x6e\x7f\xb9\xed\x75\x3e\x0d\x3e\x76\x2e\x3b\x37\xed\x5e\xe7\x7c\xa9\xf1\x6a\x59\x67\x75\xa8\xae\x2e\x36\x4e\x16\x18\xad\xa9\x47\x80\xf4\x38\x27\x68\xf9\x81\x0c\x42\x6e\x34\x79\xe0\x9a\xbb\x2c\x23\x27\xec\xdd\x75\xbd\x31\xaa\xa6\xf7\xd3\x28\xbc\xf8\x08\xc1\x3f\x8a\x4e\xb8\xb3\x76\xc7\x82\xa0\x73\xb4\x8a\x14\x63\x76\x48\x54\x37\xab\x55\xd3\x89\x5b\xb0\x53\xd2\x76\x5b\x5b\xd7\xbe\x90\xc4\x8a\xa1\x4c\xe1\xe8\xd1\x0b\x1b\x86\x4e\x8e\x49\x75\x8d\x4f\x09\x82\xb3\x45\x30\xb3\xa1\x41\x10\x9e\xa8\x62\xe2\xad\x21\xec\xcb\x2c\xe3\x09\x37\x11\xf4\xad\x54\x64\x4a\x05\x1d\x7b\xf5\x23\xd7\x4c\xad\xe0\x1e\x7b\x73\xcb\xee\x43\x8b\x6c\x0a\xed\x8b\x35\x25\x47\x2e\x01\x79\xce\x48\x97\xd3\xf1\x64\x3a\x68\x83\x7b\x67\x01\x9d\x6b\xdd\x21\xed\x49\x7d\x5d\x11\x4c\xe8\x82\x89\x9d\x5f\x97\x6a\x77\xdd\x3d\xe2\xc5\xf5\x32\x3c\xc4\x35\x74\xf8\x95\x5d\xc4\x25\x78\xcb\xbd\x15\xa1\x1a\xac\xf6\x21\xd6\x52\xca\x1e\x0b\x43\x15\xf9\xeb\x0b\x25\xa1\xbc\xda\x79\xd9\x8c\xf6\xbb\x59\xfd\x9d\xd2\x22\xae\xae\xbd\x03\x15\xfa\xa8\x6e\x28\xbc\x03\x10\x58\xe9\x4b\x29\xbf\xb3\x98\x65\x56\x1e\xdc\x57\xae\xbd\x53\x19\xcc\xcb\x29\xc0\xb3\x72\xdd\x5e\x6e\x1a\x61\xcd\x40\xd7\x28\xbc\x13\xa2\xdc\x01\x68\x77\x33\x96\x0f\x99\x85\x3c\xcd\x80\x23\x79\xb7\x9c\x3d\x54\x35\xa6\xcb\x58\xd1\xa2\xfa\x7e\xe7\xee\x7a\x54\xdf\x37\x74\xb5\xea\xa2\x38\x2b\x19\xba\x2b\xcb\xe6\xb2\xdc\x1c\x62\x44\x5c\x2a\xb1\x99\xff\x42\x3d\xdc\xbd\x88\x26\xd0\x44\x4d\xc2\xc1\x7a\xa6\x3a\x44\xa9\xec\x9e\x17\x1c\x29\xe0\xba\x47\x6e\x57\xa3\x68\x02\x70\xb6\x58\xa8\xd5\xb9\x32\x9a\x1c\x2c\x76\x6a\xeb\x6d\x0f\xbc\xba\xb8\x2e\x2b\x42\xc5\xdc\x6a\x17\xb0\xbc\x45\x18\x8a\x4c\x92\x5c\xa9\xcd\x72\x60\x4b\x42\x80\x48\x01\x84\x28\xaa\xad\x84\x72\x69\x75\xcf\xb1\xcf\x09\xd5\xd5\x2e\x57\x6e\xf9\x16\xa9\x73\xa5\x66\x3e\x32\x08\x9c\xdd\x4b\xc5\x8b\x0d\x32\x19\x60\x20\x77\x2a\x5b\x59\x3e\xf2\x16\x21\x81\x73\x95\x15\xe6\x08\x8a\xc5\xdb\xa3\xa8\x24\x48\x30\x2a\xad\x28\x0e\xa6\x81\xe5\x6c\x5e\xf0\xf2\x29\x87\xea\x46\xd3\x30\x56\x2b\xa6\xed\x2d\x49\xa4\x11\xb0\x3a\xea\x05\x2d\x35\xa0\xaf\x97\x25\x42\x90\xdd\xe7\x08\xe9\x0c\x4a\x1f\x8d\x45\x57\xcd\xff\x61\x6f\x56\xc5\xf4\x44\x66\x4d\xbc\x1e\xba\xd9\x18\x25\x60\xbb\xd9\x78\x90\x80\x7d\x4f\x67\x35\x03\x70\xe1\x81\xda\xa8\x3c\x01\xc4\x17\xcb\x0d\xeb\x4f\x9d\xc3\x30\x83\x2b\xd4\xb9\x3f\x75\x29\x81\xd9\x23\x1d\x40\xd0\x40\xad\x78\xd7\x7c\xb6\x77\xb5\xaa\x96\x91\xef\x9f\xcc\xb8\x5a\xba\x55\x4b\x13\x38\xe4\xc9\x6e\x6b\x32\x75\xb0\x76\x81\x02\x21\x8d\xdd\x28\xce\x00\x5f\x25\x0b\x49\x99\xe5\x5b\xc8\x19\x4f\x56\x12\x96\x15\x79\xce\x77\x34\xa4\xda\xe1\xcc\x07\x10\x4b\xbf\x8b\x67\xb3\x34\x03\xb4\x23\x41\x9b\x2c\x75\xc5\x56\x11\x22\xc7\xcd\x3e\xd8\xd0\xb0\xb6\x43\x5f\xdc\xd8\x51\xe0\x17\x60\x4a\x43\x01\x26\x00\xa8\xb3\x02\x62\x74\x44\xa8\xfb\x0a\x96\xad\xa9\x7e\x97\x1e\x44\x65\x23\x9a\x26\xb6\x0d\x7c\x6f\x10\xb2\xde\xe3\x53\x32\xca\xe8\xd8\xa7\xd8\x41\x31\x92\x51\x21\x84\x5b\x49\x02\xab\x7b\xd8\x7f\x6a\xc7\xe0\x78\x43\xdc\xae\x9e\xb1\x04\xc5\xe1\x2d\xe5\x3e\xd8\x05\x9e\x06\x03\x25\xfc\x53\xd4\x97\x6a\x70\xf0\x8d\x53\x3a\x83\x70\x35\xa4\x74\x39\x0a\x41\x75\x3d\x17\xb3\xd6\x82\x91\xff\xf7\x7f\xfd\xad\xc5\xd3\x35\x51\xd0\x0a\x3f\x41\x91\x0e\x1c\x05\x88\x44\x05\x28\x28\xb0\xe3\xa5\xf5\x16\xf7\x55\xde\x1f\x34\xf4\x27\xe3\x9d\x4b\x8a\xf8\xc6\xbc\x73\x3d\x3f\x28\x0e\x15\x23\x9d\xed\x85\x94\x6b\xa6\xd0\x44\x1f\x12\xf8\x6a\x00\xaf\x1b\xc3\x16\xd8\x94\xf2\x8d\x02\xa1\xec\xfb\xa5\x65\xaf\xa7\x36\xf4\x85\x90\xef\x1e\x68\xc6\xad\x62\xd9\xf2\xf9\xda\xef\xc8\xff\x06\x00\xeb\xff\x6c\xb0\xcd\xd0\x31\x53\x83\x34\x2f\xc5\x00\xad\x1a\xd4\xb5\xfd\xe8\x3c\x37\xf3\xfa\xbc\xf7\xd2\x31\xca\x68\x72\xbf\x09\x16\x80\x7d\xbf\xa1\xd9\xd5\x1c\x3e\x72\x8a\x95\x05\x8d\x86\x4c\x7b\x56\xc9\xb4\x77\x21\x13\x71\xff\xc8\xec\x04\xe0\x9b\x47\xa2\x90\xe3\x86\x80\x63\xd8\x22\x1f\x10\xc4\x0e\x44\x32\xec\x22\x91\x79\x96\xf6\x05\xfb\x32\x93\x9a\x95\xe2\x4f\x6b\x80\xc7\x5c\x38\xb5\xeb\xa9\xfe\xa6\xa9\x40\xc8\xef\x24\xc1\x7c\x75\x58\x84\xc5\x3d\x5d\x9c\x72\x3d\x91\xed\x74\xb9\x26\x7c\xc6\x2d\x79\x0c\x6a\x4f\xe1\xb3\x55\x31\x39\xb3\xca\xac\x30\xd9\xfc\x88\x84\x49\x56\xc8\x22\x63\x0f\x4c\xd1\xb1\x15\x73\x28\xcf\x62\x90\xb9\xb2\xea\xbc\x9e\x37\xb0\x1c\x85\xb8\x73\xc0\x6c\x9d\x8b\x66\x03\xf1\xa4\x1d\x03\xe3\xcd\x99\x21\xec\x8b\x61\x02\x9d\x5b\x3d\x1f\xfb\x1b\xc5\x9f\x34\x55\xa2\xc2\xa8\xcc\xe6\xdb\xf9\xc9\xf7\xb1\xed\x13\x20\x7c\x70\x73\xaa\xdd\x25\xe1\x4a\x08\x4c\xa8\x48\x5d\x04\xbb\x0e\x85\xd6\x70\x76\x42\x1b\x46\x83\x70\xe0\xe3\xb0\x23\xbc\x22\x6c\x13\x61\xc8\xe1\x2e\xf2\x82\xaf\x15\xd9\xc0\x15\x21\x95\x95\x5f\x72\x61\x78\x66\xc5\x30\x37\x06\xab\x16\xe5\x22\x64\x47\x43\xb4\x54\xc3\x0a\x42\x4e\xb5\x18\x0f\xdc\x4a\xfa\x60\xec\xf5\xb8\x75\x99\xa6\x3e\x61\x53\xf8\xe3\x7b\xdf\xd0\x72\x1b\x13\x66\x21\xd8\xe9\x87\x30\x70\x08\x3a\x17\xd2\x4f\x26\x40\xd9\x85\xbd\x2e\xd5\xb5\x80\x89\x6e\xa2\x02\x80\x90\xb5\x98\x86\x54\xf0\x75\x4d\x34\x04\xaf\x63\x70\x2d\xc4\x8d\x99\x86\xd8\x75\xdd\x10\xb3\x0e\xc0\xa6\x5e\xd6\x72\xf8\xa7\x01\x8a\xbf\x12\xfe\x4e\x7d\x77\x2e\xc4\x8d\x66\xd9\x90\x26\xf7\x01\x6b\x32\xe8\x54\x52\x79\xd4\x2e\x2b\xff\x01\x40\x2e\x12\x97\x1d\x68\x02\x02\x4a\x51\x66\x3a\x75\x89\x9e\x6e\xd8\x45\xe7\xae\x1a\x88\xc0\xfa\x14\xa0\x7d\xe1\xe8\x31\x84\x2e\x65\xb3\x4c\xce\xa7\x0d\x37\x50\x35\x92\x79\x17\xaf\x56\x53\x20\xf5\x5e\x2f\x9f\x0a\xd3\xdb\xf8\xfa\x59\x88\x71\xdd\x43\xaa\xf1\x3a\x5e\xbb\x4d\x63\x42\xab\xe7\x8a\xeb\x59\x46\x4b\x55\x7d\xab\x3d\x60\xe0\xe7\xd3\xae\x3e\x66\x06\xad\xb6\x55\xac\x1f\x3a\x54\xfb\xf9\x93\xd4\x4e\xf1\x77\xaf\x2b\xa2\x02\x5c\xc8\xd9\x63\x58\xd6\x82\x66\x5a\x18\xc3\xdd\x9a\x29\x69\xef\x66\xd9\x17\x86\x8e\x7d\x6c\xad\x93\xea\xe4\xa3\x60\x4a\x4f\xf8\xac\x84\x7f\xbd\x73\xb0\x92\x23\x4c\xf7\x1f\x8c\xee\xd9\x80\x05\xca\xd9\x31\xd6\xc1\xb4\x04\xa2\x67\x34\x29\x8c\x34\x49\x46\xb5\xe6\xa3\x39\x49\xf9\x08\x3c\xf4\xa6\x08\x1d\x81\xc8\xde\x80\x8d\x5b\xc6\x50\xae\xb5\x8d\x94\x32\xc4\xf6\x93\xad\xb3\x7b\xd8\xb9\xf3\xc5\xf8\x18\x68\x9e\xc6\x19\xfa\x50\xfb\x67\x21\xa3\x71\xcd\xf2\x44\xbb\x46\xa3\xbb\x91\xb9\x98\xec\xfd\x0d\xcc\x67\xde\x6d\x97\xf6\xb3\x34\x43\x76\x25\xef\xac\xee\xfd\x39\xcb\xd8\x5e\x82\x85\x9e\x82\x10\x96\xae\x75\x01\xf3\xf5\x6c\xfb\xbf\xdb\x78\xb6\x08\xa7\x6a\xc8\xa9\xdd\xc3\x7e\x7f\xe5\xa0\x9c\x86\xd1\x7d\x64\xeb\x78\x0a\x57\xd2\xe2\x56\xe7\xaa\x89\x39\xee\xb0\xd8\x7b\x8b\xc4\x7b\xe2\x09\x35\xed\xf5\x2d\x33\xda\x1b\x42\x22\x4a\x47\x21\xdb\x9d\xd3\x63\x9f\x84\x53\xa4\xb4\x6c\xb0\xe1\x2f\x24\x46\xcc\x8d\xee\xc6\xa9\x7a\x4f\xc7\x0e\x57\x6f\xd7\x26\xf4\x56\x8c\x77\x0b\xef\xba\x6b\x63\xed\x1d\x68\x6c\x61\x1f\xf2\xc3\x13\xab\x1d\xd5\xa5\x3d\x78\xe9\xd6\x33\x52\xd5\x61\x96\xed\x1e\x3a\x99\xb9\x72\xe6\x83\x99\x62\x23\xfe\x65\x2b\x4f\xce\x35\x7c\xea\x24\x32\x3b\x7b\x39\x1a\x65\x92\xda\x65\x44\xe0\x4d\xab\x20\x40\xb9\xfc\x42\x40\xf6\x0b\xf0\xa8\xb8\x31\x4c\xf4\x05\x40\x7b\xe9\x3f\x9d\x9e\x9c\x0c\xf3\xe4\x9e\x99\x93\x7b\x36\x87\x72\xd5\xd1\x4f\x5b\xe5\xc7\x31\x8d\x7d\x6b\x66\x0c\x17\x63\x4d\x66\x98\x97\xe7\xf0\x26\x2b\x63\xfd\x8e\xb7\x58\x8b\xbc\xcf\xe4\x50\x1f\x91\xdb\x64\xc2\xa6\xf4\x08\x77\x17\x9e\x43\xa5\x95\xd6\xbb\x56\x5f\xdc\x32\x46\x26\xc6\xcc\xf4\xe9\xc9\xc9\x98\x9b\x49\x3e\xb4\x3a\x0f\xfa\xa5\xa5\x1a\xe3\x1f\x27\x5c\xeb\x9c\xe9\x93\x3f\xfe\xf0\x03\x2c\x0f\xd0\xc3\x90\x26\xf7\x63\x05\x46\xa8\x45\xc5\xa7\xb4\xe5\xb7\x8b\x58\xc1\x9b\x43\x27\x29\x29\x06\xec\xcb\x4c\x31\x5d\x57\xcd\x68\xdd\x6c\x4a\x4d\xda\x9f\x6f\x89\x9e\x0b\x43\xbf\x9c\x92\xfe\x9b\x4f\x58\xe9\x8a\xfc\x28\x73\xa5\xc9\x39\x9d\x1f\xcb\xd1\xf1\x54\x0a\x33\x21\x9f\xe0\x7f\xdd\x4f\x8f\x8c\xdd\x93\x5f\x18\x55\xfd\x37\x6e\x8f\xf1\xc6\x0a\xa0\x69\x60\x82\x53\xb9\xd0\xae\x88\xd6\x0f\xff\xe1\xab\x68\xd9\x6e\xbe\x3f\xf9\xe1\x3f\xc8\xef\xe1\xff\xff\x1f\xf2\xfb\xfe\x9b\x26\x3c\xc0\x8d\x32\x59\x8a\x32\x67\xb5\xad\xc1\x8a\x6d\x01\xd3\x7c\xa6\x64\xb1\x63\xb5\x2d\xdf\xf3\xe4\x5e\x8e\x46\x03\xc3\xa7\x0c\x03\x67\x06\x54\x2d\xe0\x16\x6e\x99\xa3\xcb\x1d\xb4\x2c\x16\xc7\x28\x20\x91\x5c\xa7\x18\xc5\xea\x8f\x9d\xce\x0b\xf8\xcf\x47\xac\x53\x1b\x41\xaa\x72\x0d\x5f\xb1\xd4\x9e\x8e\x4d\x0c\x88\xde\x68\xb9\x08\x5c\x5f\xc4\x43\xc7\x40\xc9\xc1\x68\x1f\xbb\x9a\xe4\xaa\x0a\x63\x8b\x3e\xb0\x6f\xcc\xeb\x01\x13\x7c\x52\x8f\xc7\xad\x54\x3b\x89\x54\xf7\x6c\xc1\x1f\xba\xd1\xd5\xec\x51\x40\x63\xbc\x6d\x88\x7e\x94\x2a\x24\xba\x63\x40\x94\x43\xcd\xec\x8b\xde\xd5\xf9\xd5\x77\xf7\xd4\x28\x39\xa6\xe2\xdd\x29\x69\xa7\xa9\x2b\x6d\x4e\x9c\x53\xd7\x12\x8f\xbd\x7f\x5a\x24\xae\x53\x2c\xec\xc2\xd5\xde\xb5\xb1\x7e\xca\x15\xda\x99\xd7\x3b\xef\x76\xf9\xce\xc3\x27\xf5\x4c\xb3\x0c\x75\x1a\x3a\x28\x90\x05\x61\xae\xf6\x96\xb3\x1c\x71\x71\xbe\xdb\x54\x6b\xbf\x9d\xb1\x84\x33\x8d\x4d\x83\xff\x03\x82\x3c\x84\x0f\xdf\x71\x81\xb5\xb5\x87\x0a\xb2\xa2\xf6\x91\xed\xb8\x80\x6e\xb2\x03\xa5\x7c\x06\x2d\xbf\xe0\x0d\x1e\xf2\xa7\x5c\x8c\x96\x28\x6a\xd9\xc6\x96\x09\xa2\xae\x7a\x7e\x5c\xf4\xdb\x0a\x0c\xc7\x23\x9a\xd8\xd5\x0b\x79\x47\x18\xed\x1b\xb3\xaa\xba\x75\xec\x51\x7d\xbf\x5f\xa3\xf8\xce\xf8\x9b\x3c\x2d\xf0\xea\x90\x1a\x5d\xc8\x12\x5f\x48\xb2\x32\x54\xdf\x37\x65\x32\x6c\x5c\x0b\xcd\x2e\x85\x4f\xf2\x59\x36\x3e\xd7\x72\x04\xde\xe2\xca\x10\x83\xa2\x18\xe1\x1a\xf8\xf8\x1f\xac\x93\xc2\x33\x96\x56\x13\x4a\xab\xe3\x5f\x45\x06\xe8\xd9\x89\xec\xb6\x90\xb2\x38\xb5\x6a\x2c\x38\x1f\xa7\x54\xcc\xf1\x20\xd9\x0b\x8b\xea\x7b\x1d\x40\x60\x89\x9e\xd2\x2c\x3b\x22\x8a\xe5\x50\xd1\xfc\x88\x68\x96\x8d\x8e\x3d\x1e\x4d\x4a\x32\x39\xe6\x09\xcd\xc8\x30\x93\xc9\xbd\xee\x0b\x7b\x83\x88\x31\x5e\x7c\x33\x25\x13\xa6\x75\x74\xe5\x16\xe1\x9b\x33\x25\xd3\x3c\xc1\x92\x66\x58\x2b\x96\x6b\xc3\x93\x4a\x1d\x2b\xcb\x11\xc1\x6f\x6a\x75\x94\x44\x22\x6e\x2d\x0c\xd7\x8a\x00\x0c\xf3\x19\x73\x5f\x54\x1e\xf0\x36\x68\xc6\xff\x01\x21\xf4\xe8\x4d\x6c\xa2\xde\x3d\xe4\x65\xf9\xed\x19\x98\xf2\x69\x58\x41\xcf\x67\xee\x33\x38\x43\xcb\x28\xe6\xa6\x4c\xce\x81\x1a\x02\x99\x07\x58\x0c\x4f\x14\x85\xaf\xd4\x43\x8f\xe0\x2b\x5e\xe1\x7b\x61\xe9\x3b\x30\xe4\x86\xa4\x9d\x55\x34\x7d\x86\x95\xb4\x1c\x00\x5b\x64\x10\x87\xd6\x7d\xad\x21\x87\x48\x69\xaf\x88\x07\x4b\x24\x7e\x79\xec\xda\xdb\x6b\xe4\x28\x94\xb7\xa2\xda\xb9\x4a\x8f\x03\x6a\x8b\xe5\x87\x7d\x01\xe0\xc5\xb6\x93\x4a\xad\xa4\x45\x8a\x7a\xc1\x25\xad\xf6\xc3\x1c\x37\xac\x6c\xe5\x17\x79\x13\x22\x2f\xd3\x2d\xe4\xca\x6c\xc8\xec\x4a\xf1\x5f\xaa\x2e\xdc\x17\xa9\x0d\x9e\x3e\xf0\x02\x84\x3b\xea\xa8\x71\x6f\xb7\xb6\x1a\x56\x46\xb5\x10\x07\xcf\x47\x48\x64\x30\x36\x08\x45\x73\x75\xb7\x9b\x46\xf4\x55\x12\x4c\x97\x6d\xe4\x35\x35\x58\x3b\x99\x4d\xa5\x41\xe8\x59\x44\x81\xf5\xe6\x12\x04\x97\x1d\x66\x72\x08\xf7\x0a\x00\xc4\xfa\xd0\xdc\x28\x04\x0f\xe7\xcd\x52\xf2\x5d\x74\x4d\x84\x70\xff\x77\x4d\x11\x95\xfb\xcb\x72\xad\xda\x58\x1a\x73\x5d\xcb\x50\x8f\x2d\x72\x5d\xc9\xa0\x88\x66\x35\xa2\x96\x73\x37\xc5\x30\x6d\x96\x19\x5b\xda\xfd\x3d\x64\xc6\x56\xa6\xd1\xe0\x62\x97\xe3\x27\x8d\xd4\xb5\x93\xba\x90\xeb\xeb\x91\x98\x9c\x86\xf2\x47\x69\x73\x3c\x99\xcd\xeb\xb6\xe8\x65\x65\xfd\x56\xa0\x42\xbf\x6e\xd6\x6f\x65\x30\x2f\x39\xeb\xb7\x32\xd4\x97\x9b\xf5\x5b\x33\xd0\x35\xb2\x7e\xd1\xfd\x35\xb0\x44\xbd\x1e\x53\x80\xf0\x93\x61\x3e\xba\x85\xdb\x64\xe9\x18\x5d\xa1\x1c\x64\xce\x5e\xce\x71\x60\x0b\x30\x5a\x17\x70\xb8\x75\xc6\x6e\x65\xca\x6b\x66\xec\x96\x58\xda\x21\x63\x37\x64\xec\x2e\xae\xcb\x4b\xcc\xd8\xad\xec\xf9\x7a\x19\xbb\x75\x5b\xbe\x85\x47\xb0\xd4\xcc\x37\x93\xb1\x5b\x59\xd1\x97\x9c\xb1\x5b\x19\xea\x21\x63\xf7\x49\x66\xf3\xc2\x32\x76\xeb\x4f\xdd\x66\x19\xbb\xb5\xa2\x59\xf3\xd9\xde\x35\xdf\x05\x72\x16\x9e\x39\x63\xb7\x34\x81\x43\x2c\xc0\x8e\x95\x6d\xcb\x24\xe8\x46\x00\xd5\xb7\x5c\x92\x5e\xf5\x1e\x5a\x92\xb3\x0b\xea\xc6\x1e\x28\xea\x69\xa3\x48\xc0\x42\xb8\xae\x46\xd4\x2e\xad\x83\x76\xf5\x60\xac\x68\xe2\xf3\xdc\xd0\xe3\x14\xfb\x46\x0e\x14\xb8\xb1\x45\xa9\x61\x91\x83\x65\x11\x03\xc3\x1b\x48\xae\x06\xad\x7f\x07\x02\x74\xf9\x42\xdb\xd6\x29\x00\xd3\x5c\xbd\xb2\x0f\x15\x35\xf6\xd3\xec\xef\xe2\xff\x36\x2e\xc8\xae\xf5\x80\x93\x59\xbe\x4d\xe2\xc0\x78\xbb\xcf\xa6\x6c\x2a\xd5\x2a\xd7\x70\x83\xa9\x41\x2a\x3a\x5e\x95\xd9\xb1\xee\xea\xed\xba\x6a\xbe\x08\xca\x66\xb6\x27\x9f\x86\xbe\x5c\x19\xf6\x05\x93\x63\xef\x04\xe8\x0b\xb5\xfe\xaf\xe0\x7e\xdc\xd2\xc3\xd5\x90\xf4\xbb\xd8\x21\x98\xbe\x35\x53\xc7\xb1\x78\x54\xb2\x39\x2f\x8e\xa0\xb4\xee\x5e\x78\xde\x61\xd9\x73\xd5\x18\x7f\xb1\x4e\xe2\x24\x56\xe1\xb2\x92\x79\x8c\x89\x58\xa5\xb4\xe1\xbc\x26\x76\x77\x3d\x73\x07\x17\xe6\xcf\xff\xbe\x91\xd1\xde\xca\x97\x6e\xdd\x46\x3c\x63\x84\x26\x09\xd3\x98\xcb\xe9\xe2\x73\xb0\x26\x45\xae\xb2\x5d\x76\x95\x8b\x31\xcc\xdb\x0a\x93\x51\xe1\xdc\x40\x3c\x78\x67\x4c\x94\xcc\xc7\x13\xaf\x01\x5b\x2a\xb4\x53\xab\xdb\xcb\x9f\xd1\xad\xba\xcb\x5e\xbe\xcf\x79\xb6\x9d\x7d\xe1\x16\xa9\xce\xd1\xe4\xc7\x6e\x8f\xe8\x49\xa0\xff\x21\x34\x5b\xbb\xb1\x8b\x83\x5e\xbf\x4f\xf7\x6d\xb0\x60\x43\x37\x47\x3e\x86\x64\x24\xb3\x4c\x3e\x42\x3e\xe2\xf4\xa1\xa9\x6e\x06\x4c\xb8\xc7\xb7\xac\x58\x00\x5f\x83\xd1\x51\x1b\x3a\x9d\xad\x85\x5e\x71\x8d\xf2\x81\x26\x7e\xf4\x55\x5b\x3c\x3a\xca\xa5\x60\xa2\xce\x42\xf0\x79\xb1\x84\xda\x2b\xf3\xc8\x55\x4a\xea\x57\x77\x64\xf3\x90\x05\xbf\x24\xcf\x1c\xb6\x50\x37\x8f\x0d\x58\x40\x29\x78\xaf\xe0\xf1\xde\x91\x84\xa2\x27\x40\x31\xf4\x45\xbb\x14\xe6\xe7\xa1\x8d\x87\xf3\x22\x5c\x08\xe5\xb7\x98\x93\x00\x1c\x8e\x53\x51\xa1\x44\xbb\xfd\x0b\x64\x4d\xcc\xb1\xc6\x80\x06\x1f\xb4\x00\x91\x4e\x2c\x3d\xa6\xc9\x3c\xc9\x78\x12\xe9\x1d\x63\x45\x67\x93\x3a\x76\xb3\x58\x1c\xed\xa5\xa5\x3f\x7d\xeb\x79\x70\x6b\x96\x53\x5c\x1a\xab\x15\x17\x24\x7c\xd5\xf9\x79\x8b\xe4\x78\x48\xcd\xdb\x80\x24\x77\x1b\xcf\xde\x29\xf1\x35\x65\x0a\x36\x53\xde\x57\xce\xca\x5a\x1c\xd8\xd7\xcc\x0f\xac\xb9\x2f\xb6\x5b\xdd\xaf\x9b\x15\xb8\xd6\x34\x9a\xf6\x75\x9d\x84\xc0\x52\xf5\xfb\x70\xef\xaf\x48\x0f\x6c\x5e\xa5\x17\x42\x83\xfb\x0c\x50\x6c\xe2\x36\xab\x83\x14\x37\x11\x15\x37\x8b\x57\x0c\x1b\xf5\xba\x62\x16\xc3\xb0\xb7\x8c\x5b\x6c\x47\xb5\x1c\x27\x32\x03\x10\xc6\xd2\x6a\x85\x0e\x42\xe8\x53\x58\x20\xbf\x19\x56\x75\x44\xd1\xb5\x40\xf3\x5b\x16\x9d\x18\x36\xf1\xdb\x88\x50\x5c\xa1\x0f\x6d\x18\xa5\x18\x2f\xea\x6e\x91\x8a\x3b\xea\x37\x9b\x45\x2b\x56\x3a\x5b\xba\xdf\x5b\xf8\xd5\x17\x90\x13\x0f\x51\x19\x21\x2a\xa3\x7e\x6d\x5e\x62\x64\x46\x51\x55\x6a\xc3\xe8\x8c\xa6\xed\xdf\x07\x25\xed\x31\x4a\xe3\x2b\xc7\x3e\xac\x1b\xf6\xf0\x75\x83\x49\xd6\x8c\x23\x39\xc4\x66\x7c\x1b\xb1\x19\xcd\xe7\x6d\xa3\xf8\x8c\x15\x09\x60\xbe\x97\x5d\x9d\xe8\x21\x29\xe9\x49\x1d\xe9\xc1\x06\x1c\x7d\xb1\xa6\x33\xbd\xc8\x9a\x3a\x38\xd4\x9f\xd4\xa1\x5e\xb3\xd0\xab\x9d\xea\x25\xe1\xed\x59\x3d\xa1\x55\x50\xee\xa7\xf4\x86\xae\x12\x78\xf3\xe1\xe0\xc9\xcf\x51\xed\x9c\xd7\x3d\x4e\x9f\xc3\xde\xfa\xe2\x83\x84\x4d\x87\x2c\x4d\x41\x21\x36\xd2\xe1\x5a\x16\x24\x20\x18\x12\xab\xe5\xa4\x54\x5b\xca\xa5\x50\x87\x9b\xa7\x2c\x02\xa9\x2f\xe4\x1b\x0c\x61\xee\x0b\xd8\xdf\x2c\x63\xca\xeb\x53\x8a\x7c\xa7\xb9\x48\x58\xac\x63\x29\x92\x4a\xa6\xc5\x5b\x83\xf5\x35\xa9\x98\x93\x7b\x21\x1f\x33\x96\x8e\x61\x87\xaa\x83\x39\x26\x9c\x1d\x11\x6e\xc2\x67\x8a\xd1\x64\x62\xd9\x65\xdf\x8e\x1d\x5c\x0e\x28\x88\x31\xf7\x6d\x84\xe0\x1a\x9a\x79\xd7\x22\xa4\x2b\xc8\x88\x26\xe6\x88\xe8\x7c\x58\xb4\x9f\x4a\x84\xe4\x7c\x60\x22\x9e\x78\xd1\xc8\x93\x79\xc2\x6b\x3d\xdf\x0d\x9a\x85\x25\x80\x76\xc6\xe9\x4e\x4e\x8b\x07\xba\x4b\x9e\xf4\xa7\x5c\x1b\x02\xb6\x72\x22\x45\x38\x4c\x2e\xe3\x23\x60\x42\x00\xa4\x21\xe2\x2b\x2c\x29\x47\x40\x2b\x53\xd9\x74\x2c\x85\x87\xc9\x21\x29\x3a\x75\x15\xda\xc5\xe5\x4e\xe5\xa3\xd0\x46\x31\x3a\x75\xb5\x06\x2c\x27\x06\x53\x2c\xfa\x97\x5c\x65\x57\xb8\x81\x37\xd9\xe2\x0b\x2e\xee\xed\xee\x16\x28\x18\x80\x2f\x0b\x3d\xd7\x6c\xda\x7b\x2e\x68\x29\x5a\x65\x8b\x5d\xcb\xf2\x8d\xfc\xbd\x51\xc1\x86\x79\x13\x00\x89\xa1\xab\x30\x41\x36\x31\xaa\x68\x00\xd5\x25\xb6\x3b\x02\xac\x0e\xd1\x37\x29\x31\x14\x00\x70\x26\x2c\x9b\x45\x88\x96\x33\xaa\x4c\xa8\x78\xe1\x52\xe3\x13\x39\x9d\xe6\x02\xd0\x0c\x9c\x9e\xf6\xe8\x72\xa0\x9d\xcd\xae\x68\xbc\xd5\x17\x5d\xf3\x56\xdb\xf3\x25\xc5\x38\x9b\x13\x9a\x3e\x70\x5d\x20\x92\x24\x52\xe8\x7c\xca\x54\x05\xef\x19\xe1\xae\x09\xf5\xb4\x62\xc7\x66\x05\x2f\x0f\xd7\xef\xee\x86\x31\x19\xb2\x91\xbd\x74\x67\x54\x69\x6f\x1f\xaa\xb1\xed\xb8\xcd\x4d\xed\x5a\x7d\xb5\x33\xf9\x73\x7c\xec\xc8\xb4\x38\xa1\xd4\xe9\x1b\x27\xd5\xf3\x19\x95\xc2\x68\x8a\x5d\x59\x98\x14\x59\x7e\x31\xb9\x55\x38\x5f\x28\x69\x5a\x55\xc3\x7d\x65\x55\x0d\x87\xc6\xf6\xe3\x05\x1a\x1c\xdc\x46\x96\xbc\xca\x04\xdd\xa8\xd1\x3c\x13\x9f\x4d\xc6\xe1\x52\xd0\x86\x1a\x9e\xf8\xb2\x1e\xa1\x68\x11\x7e\xdd\xbc\xb5\xbb\x56\x93\xd1\x09\xcd\x16\x77\xb8\x79\x2d\x6f\xf1\xfd\xe5\xbc\xcf\x1d\x37\x6c\x7b\x69\x1c\x52\x22\xb3\x6c\x13\xd0\x91\xca\xcc\xcf\x8a\xcf\x97\x8f\xa8\xe8\xc7\x6e\x80\xdf\x0b\x38\x35\x08\x94\x42\x33\x27\x59\x68\xe3\x76\x29\x7e\x09\x79\xe8\x9c\x88\x7c\x3a\x64\xaa\x2f\xe4\x08\xb0\x68\xb2\x26\x6d\x79\xa6\xe4\x94\x6f\x92\xb5\x89\xa8\x66\x37\xde\x11\xb7\xc2\xd2\xe8\xdd\x75\x80\x1b\x8e\xe4\xe5\x7a\xc4\xaa\xcc\x02\xe5\x8c\x25\x67\x68\x4a\x17\x8a\x07\xad\xb5\xe0\xab\x94\xdf\x36\x99\xa2\x59\xc1\xad\x9e\x46\x70\xfa\x7b\x06\x05\xb7\x69\xf6\x48\xe7\x45\xb4\xd6\x26\xc7\xa9\x88\x87\x72\xe7\x85\x7a\x2a\x8b\x4e\x4c\x70\x64\xe2\x7e\xe1\x2a\xac\x73\x82\xce\xea\xc8\x70\xe3\xb3\xe4\xe7\xfc\x94\x42\x76\x7c\xec\x63\xf9\x7a\x93\xdb\xb0\x7c\x18\xa2\x16\x09\x0c\x67\xf9\x52\x7d\x2a\x51\xce\xde\xd7\xa8\xd2\x0e\x41\x5d\xce\xfb\x31\xae\xeb\x5b\x7d\x86\x35\x73\x64\xbd\xd6\x62\xed\x18\x00\xba\x59\x69\x55\xdf\xe3\xf2\xc2\xad\x9b\x54\x87\x5e\xad\x43\x8c\xac\xec\xe2\xca\x16\x04\xe8\x40\x17\x57\x30\xe2\x19\xd3\x2d\xd2\xad\xd1\x27\x4c\x54\x5c\x1d\x73\xff\xc1\x4b\xe5\xe5\x9d\x5c\xf1\x08\x3f\xd1\x4b\x35\x84\xbb\x8a\x3b\x85\xc9\x41\x31\x3b\x66\x20\x60\x90\xe4\x27\x56\xc5\x9b\x60\x03\x50\xdb\xc2\x8a\x97\x06\xac\x67\x96\x17\x70\x57\x17\x03\xcb\x9a\x85\x0f\xac\x8c\x6d\x98\xa2\x89\xf1\x75\x30\xdc\xa8\x1a\xb6\x74\x1f\xb0\x50\xeb\xc7\x4f\xf8\x5e\xa1\x68\xfd\xe2\xde\xd4\x8e\xb0\x57\x6e\x7d\xe3\xd1\x05\xb9\x7c\x73\xc7\xcb\x07\xf8\xd4\x1b\x93\x28\x19\x29\x06\xf6\xc6\x69\x08\xcc\x15\x29\x53\xda\x48\x09\x37\xd4\xed\xf9\x4f\x27\x77\x5d\xc2\x4c\x02\xa0\xf1\x7d\x91\xe8\x87\x23\x2b\xd0\xfe\x9a\x33\x63\x7f\x6e\x42\x28\x9b\x32\xa1\x81\x13\xf0\x75\x8b\x51\xf9\x85\xb1\xff\x3d\x2f\x7f\xbf\x84\xe4\xc3\xc4\x42\x09\x12\x4b\xbb\xa1\x06\x89\x25\x53\x80\xaa\xc0\xa5\xd5\x35\x14\x83\xc5\xe6\x3a\x75\xa0\x93\x5b\x78\xea\xc5\xdf\x73\xb1\xa1\x98\x74\x56\x7c\x14\x8d\xa2\x41\x0a\x9b\xce\xa8\xe2\x7a\xb3\xe6\xfd\x37\xb5\xad\xaf\x62\x22\x7e\x5d\x29\x71\x45\xfb\x48\x81\xcf\x49\x8c\x62\x0c\x58\x48\xa0\x27\x77\xd7\xbb\x70\xde\x30\xb1\xe8\xa3\x56\x5f\x7c\xf2\xf6\xcf\xe2\xd7\x50\x26\x05\xe3\x3d\x58\x4a\x72\xd0\x99\xca\xad\x40\xb3\x29\xd7\xe1\x07\x00\x2a\xd1\x79\x66\x10\x37\x6e\x04\x85\xf8\xfc\x40\xf1\x49\x1d\x97\x50\x54\x24\x93\x4b\xb9\x5b\xf9\x24\x3e\x1a\xb0\x6c\x13\xd9\xb1\x3b\xea\x64\xda\xd2\x77\x72\xdf\x70\x3a\xff\xe0\xf1\x26\x37\xd8\xa0\x62\x32\x20\xb9\x79\xf4\x2c\xd4\x4a\xd0\x4e\x97\x21\x0a\x1d\x23\x60\x64\xab\x06\x6e\x60\xa0\xab\xdd\x45\x27\x5b\xfb\xaa\x90\x4a\x66\xc4\x9b\xe5\x86\xd0\x0b\xa1\xa6\x2f\x54\x2e\x00\x6e\x22\xd8\xcf\x29\xd1\xcc\x97\x9e\x4c\xa4\x40\x19\xc0\x19\x4f\xc6\x96\x4d\x58\xc9\x0f\x9c\x28\x52\x80\x46\x25\x73\x6d\x79\x08\x9d\x32\x63\x2f\xa8\xef\x00\x6a\x15\x3d\x18\x47\x64\xa6\xf8\xd4\xf0\x07\x16\x30\x62\xe2\x9d\x3b\xa3\x86\x66\x72\xdc\x56\x86\x8f\x68\x62\x7a\x74\x27\x95\x99\xba\x66\xb6\xf5\x62\xfb\x61\x90\xee\xb9\x5d\xfb\x31\x13\x4c\xc1\x3c\xa1\xec\x4b\xed\x09\xde\xb4\x20\x4c\xc1\xb8\x01\xfc\x2d\x41\xb8\x2c\x1d\x4c\x0c\x34\x37\x72\x6a\x15\x52\x9a\x65\x73\x80\xc1\xb2\x4f\x26\x54\x4f\xfc\x3e\x23\x76\xd6\x3a\x57\x93\x5b\xdc\x33\x9a\x4c\xd8\x2d\x94\xd0\xab\x5b\xdc\xca\x28\xdf\x30\x91\x4f\xdf\x9c\x92\xff\x2e\xe6\x78\xd6\x3e\xfb\xb1\x33\x38\xef\xde\xb6\xdf\x5f\x74\xce\xa3\xf9\xb8\x27\x9f\xba\xb7\xb7\x8b\xbf\xfe\xd8\xed\x2d\xfe\x78\x7d\x75\x7d\x77\xd1\xee\xd5\xb5\x72\x71\x75\xf5\xd3\xdd\xf5\xe0\x43\xbb\x7b\x71\x77\xd3\xa9\xf9\xf4\xae\x17\x1e\xba\x67\x7f\x8b\xce\x10\xe4\xdc\xd9\xf9\x34\x8c\xb6\x7a\xcc\x8e\x49\xf9\xc5\x53\x72\xe7\x3c\x31\xae\x42\xa9\xb7\x19\x51\x08\xe2\x85\xb8\xa2\x14\x8d\x49\x69\x5f\x10\xff\xb9\x9d\x7b\xd3\xa7\xe8\x22\x4a\x26\x8c\x64\x52\xde\xe7\x33\xc7\xc0\x30\xda\x4c\x48\x34\xc8\x30\x1d\xb5\xf6\x63\xb7\x77\x1a\x3c\x42\x8b\x8d\x45\xc9\x35\x9e\xd4\x61\x5c\xd4\x33\x4d\xac\xf9\xaa\xd8\x03\x1c\xc9\xe0\x29\x8c\x7a\x08\x1b\xb0\xac\x1f\x6c\x8d\x0a\x53\xe9\x26\x4d\x1d\x72\xae\x9f\x58\xd4\x70\x79\xfb\x96\xad\x66\x58\x0e\x44\x5f\x22\x43\x96\xd0\x1c\x1d\x69\xf6\x36\x52\x4a\xaa\x78\xc0\xc5\xb6\xef\xd8\xe8\x9b\x45\x21\xa3\x0c\x93\x8a\x65\x26\xed\x27\xd1\xc9\xb1\xea\x32\xa8\xd2\x8a\x51\x2d\x05\x79\x9c\xcc\xd1\x36\xe5\x2b\x76\x4d\x87\x0c\xfd\x25\x90\x7e\x6f\xf9\xb6\x17\x58\x09\x07\xc7\x1c\x35\xe4\x91\x41\xc4\x61\xee\xf0\x9d\x50\x3f\xb6\x07\x50\xfb\xa2\xc6\x3a\x20\xde\x95\x22\x11\x1b\x39\xe6\x3e\x84\x62\xfb\xbd\x66\x75\xdc\x72\xf3\xb0\xb1\x42\x6e\xc3\x46\x81\x85\x7a\x2f\x29\x8c\xb8\xc1\xde\xef\x59\x76\x8d\xdd\x79\x89\x0c\xb4\x78\x6d\xac\xe0\xe8\x06\x4a\x0f\xaf\x1e\x8f\x8f\xb7\x2e\xc1\x12\x6c\x96\x88\x19\x3c\xfc\x2b\xd7\xaa\x27\x53\x3a\xb7\xc4\x01\xe1\x09\x3a\x9f\xcd\xa4\x32\xa4\xa1\x0d\x02\x07\x1d\xc7\x07\x17\x83\x9b\x47\xe0\x50\xd0\x88\x95\x02\x74\x0d\xe4\xcf\xd2\xe0\xde\x30\x20\xb7\xae\xc5\xb1\x8f\x73\xba\x40\x59\x0b\xe8\x44\xd3\x92\xda\x5b\xa2\xd0\x3a\x01\x75\x97\x68\xa2\x99\xbd\x85\xd7\x85\x91\xab\xeb\xfd\xca\xb7\x50\xbb\xe5\x19\x1b\x99\x41\xad\x2f\x65\x89\xd9\xd0\xb6\x28\x1a\x52\x01\x15\x1f\x4f\xf6\xd0\xe2\xfa\x92\xfc\x1f\x9d\xaf\xcb\x8a\xef\x91\x16\xaf\xa4\x34\x28\x43\x16\x7a\x06\xf1\xab\x09\x26\x00\xd7\x29\x42\xcf\x5a\x41\x8d\x83\xa4\x66\xe5\xf2\x7b\x21\x1f\x45\xb0\x97\xeb\x56\x5f\x74\x28\xa0\x21\x07\x65\xc1\xc5\x1e\xa0\xa4\xbe\x52\x46\x2f\xc1\xab\xbe\x90\xe4\xe8\x82\xee\x1d\x64\x7c\x36\x27\x05\x84\x6e\xe9\xbb\x75\x4e\x0f\xda\x92\xbd\x9c\x86\x13\x76\xa8\x91\x86\xcd\x9c\xbd\x1b\xe7\x59\x04\xd5\x82\xcb\xd4\x76\xd5\x22\x9f\xbd\x75\x06\x42\x3b\x0a\xe8\x67\x83\x17\x4e\x46\xe7\x3e\xfb\xb3\x6e\x61\xf7\x91\x50\xb9\xef\x78\x8b\xe5\x0b\x1c\x32\x65\x6a\x56\xb9\xa4\x24\x0b\x81\x56\xd3\x0d\x62\xc6\xce\xc2\x47\xb7\x6c\x79\x0c\xe8\x07\x80\x91\x84\x72\xa2\x19\xdc\xd0\x96\x8f\xfe\x0f\xdc\x2c\x48\xa4\x84\x32\xfb\xce\xc2\x1f\xf9\x25\xed\xf9\x01\xbf\x9a\x95\x02\x86\x90\x61\x8d\x95\x3b\x5b\xa4\x0d\x40\xc8\x00\x71\x6b\xaf\x42\x1f\x90\xc3\xc7\x42\xae\x0a\x1b\x68\x20\xa6\x24\x22\xa6\xdb\x66\x62\xd2\x40\x4d\x21\x52\x60\x4f\x14\xb5\x87\x94\x07\xcb\x5b\xe8\x22\x36\xc3\xfa\x89\x0e\x1b\x28\xd8\x5f\x23\x04\x67\x61\xb8\xd1\x87\xff\xaa\x1f\xfa\xc7\x9c\x2a\x2a\x0c\x04\x96\x38\xc1\x5b\xb1\x28\x5a\x91\x7d\x81\x08\x2c\x81\xc6\x5a\xf8\x29\xde\x5c\xef\x48\xc7\x22\xb1\x3c\x3d\x22\xbc\xc5\x5a\x47\xae\x90\x89\xce\x87\xc5\x9b\x13\x2b\x39\xf4\xc5\x42\xe0\x7e\x8b\xb4\x33\x2d\xdd\x17\x4c\x24\x19\x00\x8f\x47\x31\x30\x81\xf2\x9d\xeb\x67\x38\x07\xf5\x02\xb6\xb2\x68\x5e\xba\x07\xd1\x87\x7d\x41\x35\x7a\x9a\x33\x38\xe9\xc5\xef\x75\x85\x05\x4a\xd1\x07\x4f\x08\xde\xb3\x70\x0d\x3d\xd9\x26\x21\x82\xf6\xb2\x0d\x82\x37\x60\x63\x8a\x84\x8a\xbe\x08\xe4\x4c\xbe\xa3\x26\x63\x54\x1b\xf2\xc3\xbb\x8d\x02\x2e\xfc\xfc\x0a\xe6\xea\x4e\x6f\x11\x5a\xea\xc3\xd9\x9a\xea\xa2\x00\xee\x2a\xa1\x44\xb0\x28\x40\xfd\xc8\x6e\xb3\x91\xe4\x81\xeb\x1c\xa0\xdc\xa3\x30\x76\x04\xe3\xe6\x46\x7b\x5c\x49\x54\x98\x1a\xd8\x88\x87\x35\x70\x3e\x49\x37\xac\x1a\xc2\x72\xba\x13\x47\xe5\x0c\x32\xc9\x8a\xc0\xb2\x09\x35\x7d\xe1\x18\xab\x8f\xc5\x88\x30\x7f\xdb\x59\x56\x0e\xe6\xb2\x02\x4e\xca\x84\x9d\x30\x00\xd1\xb7\xc2\x02\x5d\x82\xf6\x15\xe2\x7f\xca\xb5\x68\xc2\x59\xb1\x8a\x5a\x5f\x84\x6c\xa0\xb8\xed\x5a\x61\xa7\xce\x04\xfc\x8c\x32\x70\x4d\xf7\x17\x58\x11\x60\x0d\x59\xb8\xb9\x60\xd3\x12\x97\xc9\x82\xd9\x7d\x89\x68\xbc\xef\x0e\xd6\x97\x94\xeb\x4d\xd8\x70\xcb\x3e\xca\x1a\x8b\x78\xc3\xe6\x46\xa2\xc5\x2e\xfa\x77\x08\x44\x7b\x2e\xa7\x6c\x69\xe8\xdd\x14\xa2\xc4\x57\x33\xc1\x22\xea\xda\xb3\x0e\xb0\x45\xf3\x34\x8a\x1b\x8d\x82\xea\x20\x3c\xd8\xf3\x3d\xf7\x66\x83\x73\x74\xf6\xba\xa7\x7f\x54\xcc\xdf\x4f\x25\x44\x96\x2d\x4e\xbc\x59\xd6\x6b\xa7\x7f\xa7\x09\x13\xc9\x1c\x7b\xf2\x30\x30\x85\x1c\xd7\x73\x06\x27\x8f\x98\x41\xc1\xde\x5e\x2b\x1d\xba\xe2\x1e\x2d\xd2\x81\x7b\xc6\xd7\xfa\xa0\x23\xef\x33\x88\x5e\xee\x0b\xab\x98\xd8\x2b\x5e\xe3\xa0\x7d\xfb\x65\x12\xaf\x3b\x01\x98\x2a\xb9\x93\xbb\x65\xba\x1a\x71\xab\x49\x99\xf0\x99\x9a\xd0\x06\xc0\x17\x91\xce\xf8\x94\xa4\x32\xb9\x67\xea\x44\xb1\x94\xeb\x53\x70\x7f\x9b\x46\xbf\xdb\xd4\x2a\xdb\x3b\x0b\x1a\xdb\x96\xdb\xc2\xfe\x5d\x44\x31\xde\x5b\xcc\x4a\x08\x23\xd0\x26\x7c\xa6\x00\xa6\x0f\x38\xdb\x36\x61\xc2\xa8\xf9\x4c\x72\x61\x82\x25\xab\xb2\x10\x5e\xd1\xb0\x32\x5b\x53\x7c\xad\xda\x47\x98\xcc\x96\xd3\xee\x4d\x98\x66\x3e\x26\x00\x27\x65\x24\x41\x4f\x08\xb2\x8b\x19\x35\x13\x0d\xb9\x0e\xe5\x35\x70\x3a\x17\x7c\x6a\x57\x88\xce\x20\xa4\x00\x8d\x14\xc5\x47\x21\x88\x5f\x1b\x9e\x65\x7d\x21\x18\x4b\x35\x96\x87\x7f\x5b\x9b\x53\x63\x3f\x3d\x22\x34\x4d\xc9\xff\xfc\xee\xc3\xc5\x2f\xbd\xce\xa0\x7b\x09\x16\xe7\xee\x45\xe7\xdd\x51\xf8\xf1\xea\xae\x17\x7e\x45\x03\xcb\x03\x53\x64\x4a\xef\x41\xc3\x13\x1a\xc5\x3f\x08\x75\x8f\x47\xea\xb3\x8d\xec\x13\xcd\x7c\xf8\xa8\x13\x53\x42\x82\xb1\xdb\xc3\x15\x10\x10\x1b\xe8\xbe\x37\xe1\x93\xe5\x34\xe8\x89\x27\x74\xe1\xc5\xc0\x29\x13\xc6\xf2\x18\x67\xec\x2b\x54\xdf\x82\xe0\x98\x18\x73\xd1\x14\xe4\xc6\xc4\xc3\x53\xca\xf0\x3f\xb1\xf9\xcf\x56\xbb\xbe\xa6\x5c\xad\x4d\x7b\x1d\xf1\xc0\x95\x14\x30\xb5\x60\xd5\x2a\x4a\x12\x32\xe3\x7d\x6d\xd1\xa1\xd2\x28\x0b\x43\x18\xc5\xac\x31\x90\xb2\x52\x0c\xf5\x65\x4c\xb7\x8d\xae\x5f\xf6\xc5\x28\x9f\xd7\xa6\x1d\xbb\xa1\x0f\x94\x67\x10\x04\xeb\x2f\x9a\x82\x06\xb1\xd2\xdd\x29\x61\x19\x1d\x4a\x05\xa9\x31\x18\xb5\xe3\x9b\x70\x0b\x06\x35\x9f\x42\x43\xad\xbe\x38\x67\x33\xc5\x12\x0a\x5c\x6c\x66\x35\x17\xe0\x42\x25\x1b\x5a\x0b\xdb\x20\xdc\xde\x3a\xb4\xb1\xea\x86\x54\x4f\x57\x04\xb8\x74\x79\x5d\x4b\xb5\xce\xf5\x6f\x5f\x83\xa5\x93\x33\xab\xc7\x55\x38\xaf\xbb\x9b\x47\x8c\x62\xbd\x18\x74\x0a\x39\x53\xbe\x8b\x0a\xcd\xb2\x12\xfc\xad\x3d\x38\xba\xe5\xbc\xe4\xc5\x9b\x52\x90\x9f\xfe\xa2\xc9\x30\x37\x7d\x51\x6e\x43\x0a\xa8\x7f\xfa\x9e\x9a\x64\xf2\xae\x2f\xae\xac\x96\xf9\xd3\x5f\x1a\xb2\xa6\x53\x6a\xe8\xa0\x9e\x28\x9b\xd7\xe4\x9c\x1a\x7a\x21\x69\xca\xc5\xd8\x15\xf7\xad\x5f\x8b\xf7\x9d\x5e\xfb\x94\xf8\x44\xcb\x90\x2f\x59\xe4\xda\x47\x0d\x01\x43\x86\x89\x78\x2e\x02\xac\x5c\x04\xd6\xef\x2c\x64\x20\x3d\xd9\x0b\xab\x2f\x60\x29\x91\xab\x72\x43\x66\xd2\x61\x15\x5a\xad\x4c\x12\x95\x0b\x67\xc9\x76\x86\x44\xbb\x3a\x40\xc6\x61\x33\x9c\x3c\x06\xf2\xcc\x22\xb3\xef\x0b\xd0\xcf\x43\xf6\x5a\x26\x13\x9a\x41\xd8\xdc\x71\x64\xd2\xb3\x5a\xbb\xcc\x21\x07\x09\xe2\x55\xc4\xbc\x1c\xdd\xea\x91\xa4\x0b\xa1\x2c\xde\x28\xd0\xff\x61\x1f\x9d\x2b\x75\x2a\x2d\xc7\x69\xf5\x45\x77\x84\x51\x75\x19\xae\x8e\xfd\x90\x09\xf0\x26\xfb\x65\xb1\x4f\x3d\x3f\x82\x42\x20\xe8\x55\xa4\x09\x58\xef\xc5\x1c\x62\xa2\x01\xdf\x4c\x42\x74\x46\xc1\x9d\x1d\x51\x2e\xec\x62\xb8\x13\xa3\xcf\xfa\x02\x83\xf9\x4a\xfb\x12\x67\xfe\x46\xbd\x4b\x01\xb1\x86\xc5\x75\x19\x04\x8c\x99\x8b\x3d\x74\xb2\xfe\x4c\xb1\x63\x5f\x2f\xce\xfe\x1a\xad\xa9\xbd\x61\x5b\xe4\x26\x56\xaf\x53\x99\xe4\x53\x8f\x3b\x02\xb9\x5a\x2e\x48\xcd\x5d\xa2\x81\x42\xf0\x62\xaf\xa5\xf8\xdf\xc5\xff\xad\x95\x4d\xaf\x77\xac\x32\x1a\xa8\x6a\x30\x2b\xb7\x54\x6a\x8d\x0b\xc3\xc6\x55\x07\xdf\x26\x98\x9d\x97\x10\xd9\x6e\x25\x79\x70\xfe\x19\x69\xb5\x4f\x09\x66\x68\x4c\xa9\x93\xe9\x5b\x4d\xba\xd7\x56\x48\xb1\x4a\x69\x38\x26\xb9\x36\x18\xa2\x05\x69\x2a\xf8\x35\x86\xc9\x1f\x91\xef\x49\x3f\xff\xfe\xfb\x3f\x25\xe4\x8b\xff\xe3\xcf\xff\xf1\x1f\x7f\xfa\xf3\x36\xd5\x74\xa1\xdd\x62\x8d\x02\xb2\x63\x59\x6a\x89\x77\x60\x91\x99\xec\xb0\x0b\xee\x8c\x34\x2d\xbf\xd3\xd8\x1b\xd3\x9c\xea\x1e\x47\x21\x38\x74\xec\x0e\xa1\x8e\x0f\x0f\x29\x9d\x9e\xc2\xd5\xaf\x99\x39\x2a\x1f\xe2\x20\x8f\x3a\xa1\xfb\x7f\x2c\x01\x1a\x18\x58\x6a\xde\x2e\x54\x88\x67\x41\x02\xb6\x8d\x90\xef\x9c\x89\xce\x80\x8b\xef\x9d\xbf\x83\x64\x96\x32\x85\x63\x0a\x56\xb5\x60\xeb\x83\xf3\xcb\xbe\xcc\x32\xe9\x82\x38\x28\xd1\x6c\x46\xe1\x8e\xb7\xe7\xb5\xd5\x17\x9d\x2f\xd4\x32\xd7\x23\x5f\x27\x0b\x8b\x3a\x83\x6f\x64\x44\x13\x46\x50\x9a\xfe\xee\xcb\xa9\xfd\xed\x88\xcc\x4f\x21\x14\xf3\x88\xfc\xe3\xd4\x65\x40\x53\x65\x06\xf6\xa7\x77\x5e\x1c\x76\x4d\xc0\xa0\xb9\x26\xfd\x37\x27\x0f\x54\xf9\xea\xe4\x08\xe4\xf8\xc6\xb1\xbf\x00\x52\x1b\x0b\xd0\x99\x94\xf7\x2e\x50\x75\xe1\x4b\xf7\x9f\x16\x12\x78\xf0\x6d\xe0\xe6\xbb\x98\x63\x2b\xec\x1d\xc3\x0b\x8c\xb4\x66\x43\xd2\xfa\xbb\x96\x82\xb4\xe6\x74\x9a\xb9\x5f\xfd\x53\x17\x47\x4b\xb5\xcb\x06\x4b\x43\x18\x4d\x36\x47\x73\xe6\xfb\x4c\x0e\x61\x5e\x9f\xfc\x5c\x31\x12\x15\x06\x5a\x5c\x11\xc5\xad\xe2\x26\xe2\xc4\x1d\xcc\x0a\x87\x1a\x6c\xbe\xec\xbd\xae\x9b\xd5\x97\x30\xa4\xff\x42\xdf\x2d\x2c\x8a\x4f\x5f\x43\x0b\x6e\x08\x03\xb3\x8d\x7e\x21\xdf\x39\x26\xf4\xce\x5e\x04\x2e\xec\x17\x97\xa1\xae\x83\x79\xe8\xe0\x97\xa8\x03\x2e\x08\x26\x24\x2e\xf9\xf2\x1f\x27\xad\x56\x2b\x7c\x7d\x69\xa7\xf2\x7f\x08\x37\x9a\x65\x23\x6c\xc9\x5f\x33\xf3\xbe\xf8\x64\x35\x9d\xd8\xc2\x5c\x40\xac\x40\x5d\xa4\x44\x66\xe4\xb8\xb0\xba\xa6\x32\xd1\xe4\xdf\xac\xec\x19\x2d\x25\xfc\x68\x95\xad\xfa\x53\xe5\xca\xe3\x3d\xd3\xb1\x72\x56\xeb\xea\xc1\x8a\xc1\x19\x82\xf6\x49\x35\x44\x28\x3d\xf0\x34\xf7\xb4\x60\x29\xe7\xc4\x01\x38\x40\xe5\x3a\xc3\xbe\x18\x78\xd4\x80\x94\x51\x1b\x12\x5e\x2f\xc1\x2d\x30\xdc\x02\x30\x03\xc9\xba\x61\x01\x1c\x8a\x81\xe3\x0d\x38\xcf\xa3\xd8\xc5\x61\xaf\x17\x11\xa3\x59\xe9\x7c\x3a\xa5\x6a\x7e\x52\x9c\xb6\x45\xe2\x2c\x40\x0d\x81\xcb\x64\x7e\x01\xc0\xcd\x9a\xb9\xa3\xe5\x22\x0d\xa2\x02\xdb\x93\x90\x40\x40\x52\x96\x00\xb0\x30\x84\xbc\x21\xac\x36\x13\x89\x4c\x1d\x5d\x17\x79\x97\x65\xb1\x22\xbc\xb3\x28\x50\xf8\xa8\x15\x5d\x58\xcc\x84\xc1\x64\x6c\xf7\x86\xff\xb8\x81\x81\xcb\x81\x36\x96\x55\x8e\x37\x70\x61\x76\xaf\x6e\xfd\x37\xeb\x5f\xbb\xb0\x0e\x65\xb9\x9a\x7a\x55\xce\x9b\x0d\x14\x7d\x2c\x2e\x60\x88\xbf\x40\x13\x4a\x1e\xb2\x52\xf1\xdf\x67\xf2\x9a\x67\xf6\xde\x02\x1a\x6f\xf5\x45\xe9\xe7\x23\xc2\x32\x3e\xe5\x22\x84\xbf\x21\x7b\x97\x23\x14\x71\xef\xb9\xb1\x5b\xa6\xd3\x7b\xcb\xc1\x7c\x82\x7f\xa4\xf7\xb4\xc5\xdc\x93\x4e\xf0\x1e\x39\x33\x41\xae\xed\xb8\x0a\x45\xda\x4a\x9c\xb6\x89\x63\x27\x35\xf2\x88\xf0\xe0\xfc\xf6\x85\x6d\xcd\x9f\xa5\x22\xee\x36\x6a\x2f\x6a\xee\x18\x84\x74\xee\x53\xf0\xa0\x05\xe8\xa3\x14\x3c\x1b\x84\xd4\x1a\x11\xa5\x53\x29\x4b\xb9\x79\xc6\x06\x44\x19\x0e\x84\x4c\xd9\x86\xc1\xc6\x35\x65\xff\x9c\xa9\xd8\x7b\x18\x15\xc3\xac\x1a\xe0\x13\x4d\x69\x84\x4c\xeb\x0d\xcd\xa7\xb5\xf5\x33\x5d\x3b\x80\xce\xfe\xb8\x6d\x0d\xf3\x82\xa7\x41\x2b\x5e\x29\x88\xb2\x20\x4b\x6b\x5f\xae\xf1\xb9\x93\x84\x9e\x6e\x67\x40\xc6\xb9\x27\xb0\xec\x21\x02\x94\x92\xb1\x92\xf9\x2c\xa4\x0a\xfb\xa4\x29\xdc\x06\x77\xa3\x75\xc5\x48\x9e\x3a\x99\xfa\x82\x8b\x7b\xbc\x0b\x9f\x6a\x8f\x42\x35\xcd\xe8\x77\xcf\xc1\x70\xc5\x8f\x5d\x49\x65\x3b\x6a\x6d\x68\x72\x8f\x10\x6b\xcb\xaa\xb1\x6e\x5a\x4f\xb6\xb8\x2f\xf3\x2c\x73\xdd\x16\xec\xb3\xa8\x28\xf0\xc0\x29\xa1\xe4\xee\xa6\x5b\xdf\xf7\x3d\x5f\xb4\xb7\xd7\xf3\xce\x32\x81\xc0\xff\xfc\xc4\x37\x8a\x8c\xab\x40\x02\xb2\x12\xa9\x07\xfd\xbf\x09\x48\xa9\xc2\xbb\x77\x74\xf0\x59\x1e\x34\x98\xd6\x50\x6a\xfd\xe4\x8b\x8e\xcf\xdd\xc7\x9f\xec\xb7\xf5\x3b\xf2\x09\x52\x42\x42\xde\xfc\x94\x0a\x3b\x41\xdf\x6b\x83\x81\x08\xd9\xe2\x56\x43\xba\x9b\x6d\x35\x20\xec\x71\xbd\x08\x54\xdf\x95\x6f\xe5\x11\x2d\x46\x34\x43\x75\xcb\x4c\x40\x0e\x3f\x22\xb7\xc9\x84\x4d\x29\x44\x25\x4c\xcb\xf2\x38\xc8\x25\xdf\x65\x54\x8d\x51\x4a\xd0\xcc\xe8\x77\x35\x3b\x5c\x04\xe7\xee\xb0\xc3\x5b\x00\x34\xc7\x16\x7a\x48\x1c\x5c\xc6\x01\xc2\x28\xcb\xc0\x30\x81\x39\xf9\xfe\xfd\xdd\x61\x95\x55\xfc\x04\x6e\x4c\x85\x25\xad\x53\x2b\x8a\x35\x67\xcc\xef\x88\x09\x7e\x49\xa7\x21\xbb\xd4\x03\x83\xbb\x2c\x02\x1c\xdb\x90\x01\x48\x50\xf3\x18\x76\x46\x01\x8f\x87\xe0\x40\x87\x9b\x46\xd0\x17\x6d\xff\x4a\xc8\x50\x03\xf9\x46\xa1\x5f\x15\xe2\x98\x30\x6a\x0f\x64\x8c\xa8\x20\xab\x9b\x5c\xc3\x24\x36\xcd\x04\xaa\x02\x99\x5b\x19\x27\x40\x84\xa1\x76\xe7\x85\x5d\x3f\x8f\x86\x9e\x1f\x36\x2f\x3d\x52\x9f\xe4\x9f\x54\x4b\x43\xd4\x75\xbc\x8a\xf9\x76\x42\xf6\xb1\x6b\x28\xae\x46\x81\xb1\x4e\xd9\xbc\x88\xac\xb1\x2b\x8e\x72\x69\xa5\xb3\xc5\xc3\x6a\x76\x62\xc6\x9c\x4e\x07\x4a\x66\xbb\xec\x91\x6f\xa2\xa4\xe3\x40\xae\x86\x95\x37\x7f\xcd\x69\x86\xf6\x58\xe1\xc8\xd1\x0f\x1b\x04\x86\x3f\xfe\x99\xb4\xe1\xb6\x24\x9f\x80\x2d\x82\x27\x0a\x5a\x33\x92\xf0\xe9\x8c\x29\x2d\xad\x30\xde\xb0\xc9\xf7\x7f\xd1\x03\x87\x97\x3a\xa0\x49\x22\xf3\x45\x6c\xd4\x0d\x66\x52\xd3\x5a\x3c\x29\x4a\xee\xf3\x21\x53\x82\x19\x70\x70\xc2\x7b\xc4\xbf\xb7\xd6\x70\x25\xcd\xcd\xe4\x8f\x83\x24\xe3\x6b\x83\xb8\x42\x14\x7c\xdb\x7e\x76\x86\x5f\x2d\x9b\x40\xa9\xfd\xd2\xd0\x05\xc1\x67\x04\x9f\xb5\xc8\x7b\x9a\xdc\x33\x91\xba\x1a\xca\x98\x98\x0a\x17\x14\x70\xcb\xc8\x44\x51\x9e\x18\xea\x3b\xd8\xbe\xbd\x85\xfa\x62\x4a\xef\xed\x2d\xc4\xbe\xb8\x60\x61\xab\x66\xe8\x4d\x8e\x46\xa0\x87\x85\x0c\x7d\x9f\x45\xa9\x59\x92\x2b\xfb\x06\x9e\x0f\x83\xe7\x03\x8c\x0a\x09\x56\x21\x27\x14\x92\xfc\xdf\x6a\x92\xcf\xbc\xe6\x0b\xda\x6e\x06\x0e\x02\x9c\x24\x14\x45\xe1\x56\x1a\x9c\xb0\xbe\x80\xa0\x2b\xdf\xe2\x3c\x70\x95\xd8\x27\x15\x7c\xa3\x75\x87\x6f\x84\x29\xae\xbb\xd9\xd2\xd1\x86\xb0\xf7\x80\x32\x33\x61\x02\xd4\xb0\xf5\x5b\x86\x3c\xe1\xf5\x37\xad\x14\x3c\x86\xb3\x28\xac\x06\x61\x09\x73\xc1\x1d\x6c\xb0\x33\x14\x45\x71\x1d\xde\x9e\x5a\x7c\xcf\x35\xd1\xd4\x70\x3d\xe2\xb5\xea\x69\x9c\x58\xbc\xcb\xaa\xd3\xcd\xb2\x99\x6b\x32\x99\x2b\x6b\x11\xe2\x53\x5b\xe4\x03\x57\xda\x44\x53\x32\x32\xe4\x05\x37\xb1\x04\x33\x61\x8d\x90\x56\xfb\xf0\xec\xfa\x19\x44\xef\x2f\xf5\x91\x87\x58\xe4\x16\x69\x17\x36\x2e\xcc\x8c\x46\xeb\xd5\x8a\x19\xb1\x4c\xb3\x6d\x88\x6f\x2d\x83\x00\x78\x82\x80\x80\x08\xc8\x2a\xda\xfe\x5e\xc0\xeb\x85\x61\x3e\x42\xba\x0f\xbd\x67\x62\x99\xd6\xb7\xfe\x08\x3b\xa5\x5c\xc9\xba\x21\xb6\x83\xbe\x2f\x51\xe5\xdf\x66\x80\xeb\x1f\xbb\x22\x19\x9d\x8f\x4e\xec\x92\x5b\x39\x3f\xb9\x77\x51\xc6\x23\xa0\x43\x97\xce\xfe\x38\x91\x3a\x3e\x67\x7e\xff\x60\x33\x8d\xca\x99\x8f\x26\x86\x20\xed\xb0\xc0\xe8\x9e\x15\x32\xce\x76\x87\x51\x87\x43\x8a\x51\x48\x61\xbf\x89\x67\xa1\xb0\x0c\x60\x2b\xf5\x4d\x2d\x9e\xe6\x52\xfc\xc6\x0e\xc7\xf9\x9e\xad\xaa\x6d\xb9\x6c\xd3\xc2\xc9\x6d\x90\x21\x37\xc5\x12\x6c\x3c\x4b\x1b\x85\xab\x83\xa9\x8f\x27\x80\x53\x85\x32\xef\x8c\xf2\x3a\xa7\xa2\x33\x69\xef\xb2\x7e\x4f\x89\xb8\xb6\x6f\xa8\x35\x37\xdd\x2d\x61\xd6\x32\xfc\xda\x1b\xe0\xe5\xa3\x87\x57\xdb\x07\x28\xd9\x9a\x68\xdc\x01\xb9\x09\x89\x47\x63\x45\x68\x1c\xd7\x66\x34\x52\x5a\x62\xf4\xc9\xb8\x90\x0b\x0d\xe1\x19\x98\xfb\x28\x47\x01\x43\x0e\x23\x6b\x10\x6e\x52\x8e\x6a\xfe\x78\x9f\xc9\xa1\x7e\x17\x32\xae\xa9\xf6\x7d\x14\x29\x90\xcd\x24\xb8\x1f\xc8\x32\xbf\x14\x4f\x79\x1f\xfa\x33\x13\xdf\x87\x9b\x2c\x7c\x3d\x51\x15\x81\x2f\x98\x01\x42\x95\xcc\x85\x87\x7c\x92\x82\xc9\x11\xb8\x24\xc0\xcb\xe7\x8d\x6e\x20\x74\x0b\x69\xa2\x6c\x0f\xc5\x66\x18\x6b\x0c\xea\x61\xf3\x72\xef\x08\x7b\xb6\x6a\x9d\x9f\x02\xf6\x6c\xd7\x75\x77\x07\xe7\x2b\x2d\xf8\xae\x60\x56\x78\x94\x36\x60\xb3\xf0\xfe\x4a\x4b\x58\xe0\x03\x60\xfa\x8a\x8b\x8a\x60\x72\x33\x84\x2b\xb1\x63\x23\x8f\x21\x4b\x0e\x72\xaf\x10\x88\xb0\x09\x9e\x1b\x2c\x88\x9b\x5c\x07\xf6\xfd\x35\xc6\x89\x21\x6a\x5f\xa2\x81\xba\xbb\x57\x13\x5f\x50\x10\x84\x19\x21\x98\x72\xc6\x91\x95\x37\xc7\x86\xf6\xc5\x78\x2b\x97\x3b\x18\x1c\xc8\x56\x05\x24\x2e\x04\x17\xd0\x88\x09\xb4\x08\xc4\x61\x4d\xe4\x54\xda\x6b\xdb\xaa\xab\xc5\x43\x8c\xe3\x83\xcb\x66\x49\x39\xc5\x19\x66\xc5\x7f\xbd\xd9\xd8\xa3\x65\x1f\xa1\xec\x18\xbf\xb4\x1a\x29\x33\x9a\xc9\xb0\x8c\x34\xb8\x62\xfc\x01\x22\x6e\x39\xdd\x80\xf5\x7a\x0a\xba\x3a\x00\xa0\x3b\xe0\x27\xfe\x0f\xab\x41\x5a\x92\x0a\x31\x73\x3e\xcf\xce\x45\xb9\x20\xf8\x43\x5d\xe9\xe5\x46\xef\xe1\x26\x40\x87\xc0\x58\x86\xf9\xe8\x16\x50\xcb\x57\x28\x2f\x21\x69\xba\x08\x56\xb1\x8b\x1c\x02\x06\x7c\x4a\x5f\xf8\xf0\xa1\x40\xdf\x9f\xcf\xd8\x11\x19\xe6\xf0\xfc\xf2\xaa\x17\x1b\x66\xb9\x80\xc7\xc7\xc9\x84\x25\xf7\x10\x5c\x8a\x4c\x11\x97\xcb\x97\x51\x18\xce\xfb\xa2\xc0\x78\x36\xd2\x5b\x19\xe7\x01\x44\x2b\x00\xc9\x49\x45\x52\xae\x67\x19\x9d\x83\x3d\x47\xa0\x5b\xba\x5c\xc0\xd8\x0f\x6a\x4b\xb5\x05\x40\xa8\x1d\x17\xf0\x72\x18\xfc\xcb\x4f\x22\xd4\x41\x0a\x21\x56\x75\x62\xc7\xce\xb0\x66\xbb\xb8\xa7\x9b\xe0\xd4\xa3\xea\x5f\xb8\xa3\xb1\x9f\x22\x64\x3f\x89\x4a\x1a\x53\xff\x8d\x0f\xfa\x02\x0b\x4a\xdf\x17\x0a\xb2\xff\xc6\x62\x16\x4c\x3d\xb0\xb4\x2f\xca\xf9\x65\xee\x2a\x2b\x76\x99\x14\x30\xbb\x4d\xac\x73\x73\x2c\xcf\x18\xb9\x67\xb9\xe7\x1c\x62\xea\x8b\x64\xfa\x10\xd8\xb4\x04\xf6\xb7\xbe\x80\xcf\x13\xe0\xd3\xae\x6d\xfc\x28\x70\x7d\x1d\x28\xa7\x43\xdd\x2e\x59\x13\x03\x61\x86\xec\x19\x4c\xad\x0d\x01\x1f\x2e\x00\x64\x21\x14\xb9\xae\x8d\xbe\xf0\x31\xab\xa3\x3c\xcb\x10\x2e\xa1\x61\xb9\x7c\x36\x9d\x0f\xb0\xf8\x7a\x29\x4b\x41\xaf\x25\x11\x10\x72\xb0\xfa\xa5\x6c\x96\x42\x98\x61\x32\x2f\x0a\x9f\x01\xf1\x32\xa1\x73\x08\xc4\xf3\x20\xa8\x10\x1b\x3e\x66\x86\x58\xb9\x23\xcd\x33\x0c\xc2\x04\x83\x2e\xa4\xe6\xd1\x2c\x23\xdc\xe8\xbe\x08\x99\x84\x08\x0b\x05\x57\x81\x8f\x7a\x4f\x9d\x2c\x08\x5d\x40\xb3\xae\x54\x06\x5c\x10\x3c\xe1\xa6\x34\x24\xb0\x54\xce\x63\xe4\xc0\xd9\x8c\x51\x0c\x19\xf2\x75\xb4\x63\x69\xb0\xba\x0d\x2e\xbe\x06\x2a\x18\x2c\x26\x20\xed\x93\x7a\xb1\x82\xc5\xc6\x9b\xd2\x22\x6d\x9c\x9d\x15\x05\x3d\x8c\x3f\x8e\xd6\x05\x2a\x3b\x67\x9e\x95\xb7\x8c\x0e\xf5\xc0\x82\x44\x3d\xa3\xca\xf0\x24\xcf\xa8\xca\x00\x9e\x6b\x94\x67\x84\x8f\xa2\x8a\x04\xb0\x09\x98\x48\x06\x55\xff\x24\xdc\x11\xde\xf0\xae\xe9\x94\x45\x01\xb2\x4e\xf1\xcc\x22\x23\x22\x82\xe3\xa0\x75\xca\xb6\xf5\xae\x45\xce\xab\xf5\x27\xe0\x58\x44\x09\xe8\x5c\x23\x07\x0c\xe3\x8d\x22\xbb\xb0\x8e\x05\x1f\x59\x61\xf7\x6d\x74\xf0\x9a\x0a\x1d\x51\x7d\xbf\xa1\x85\xd2\xa3\x98\xad\x28\x80\x54\x17\xd9\xd9\x83\xfa\x39\x25\xbb\x65\x38\x11\x2b\x0a\x2e\x6f\x38\xc8\x38\x79\x7f\x8b\x81\x7e\x8e\x0a\xd4\x54\x07\x3b\x5d\x52\x00\x01\xf6\x71\xc3\xa1\x46\xe0\xa4\x9b\x0f\x34\xa2\x9c\xd8\x1e\xdd\xb8\xb2\xab\x95\xcb\xcf\x25\x98\x50\x62\xc7\x65\x05\x7b\x86\x1e\x8c\x4a\x5d\x3a\x18\x83\xc3\x13\x05\xf8\xa7\x70\xd8\x86\x8c\x64\x5c\xdc\xfb\x50\x72\xbb\xf3\x47\x84\x16\xad\xc3\xe1\xc3\xd1\x23\x31\x37\x48\x36\x75\x60\x69\x3b\x08\x3b\xeb\x05\xe4\xd5\x6e\x6e\x98\xf7\x46\x78\x78\x0b\x65\xdd\xa2\x79\xac\xbf\x2d\x4b\x7d\xe6\x41\x88\xf5\x8e\x72\xbc\x60\x22\xef\x9d\xe1\xa1\xd0\x57\xe3\xfa\x5e\x4f\x68\x7d\x51\xc7\xd5\xf8\x9f\x77\x97\xe7\x9d\x0f\xdd\xcb\x32\x68\xe7\x5f\xef\x3a\x77\xe5\x5f\x6e\xee\x2e\x2f\xbb\x97\x1f\xe3\x9f\x6e\xef\xce\xce\x3a\x9d\xf3\xf2\x7b\x1f\xda\xdd\x8b\xca\x7b\xf6\xa7\xf2\x4b\xed\xf7\x57\x37\x15\x98\xd0\xdb\x9f\xba\xd7\xd7\xe5\x9f\x7a\xdd\x4f\x9d\xf3\xc1\xd5\x5d\x6f\x29\x22\x68\x31\xfe\xda\x25\xda\x07\x94\xe2\xd6\x30\xb0\x6d\x32\x52\x9c\x89\x34\x9b\x63\xd4\x80\xd7\x3b\x2a\x4e\xca\x98\xa5\xf3\x29\x93\xf9\x2e\xce\x7f\xab\xfa\xca\x07\xab\x52\x67\xc4\xb5\xe6\x42\x1e\xa9\xbe\x6f\x4c\x43\x36\x6a\xd1\x0c\xb6\x34\xc4\xc9\xa8\x79\x08\xa2\x5b\x1a\xbc\x13\x32\xa0\x5c\x27\x64\xc6\xd4\xb2\xb1\xc0\x85\xab\xf2\x99\xe1\xc3\xe6\x70\x8e\x35\x33\x83\x36\xd7\xec\x30\xa5\xb6\x3e\xb5\xe1\xb2\x9e\xd1\x95\xa2\x1a\x76\x71\xe8\x42\x0b\xdb\xa2\x1b\x87\xaf\xbd\x13\x6c\x96\x0f\x33\x9e\x10\x9e\x16\x89\xc0\x18\xee\x80\xb1\x77\x68\x23\xa9\x66\xde\xcf\x98\x02\x09\xc8\x0a\x96\x33\xc5\x8e\x69\x6e\x26\xbe\x52\x52\x28\x71\x8b\x99\xf0\x2c\x51\xcc\xf8\x4a\x8c\x2c\xf5\x78\xb7\x51\x4f\x30\x18\x17\x81\x9b\x42\xaa\x47\x2b\x02\x41\x6a\x30\x8a\xe1\x97\xd8\xfa\x06\xe6\x3b\x7c\x7f\xe9\xd2\xb8\x11\x73\x5d\x2d\x69\x02\xb2\x1e\x3e\xf4\xa8\xb9\x76\xde\x96\xf3\x26\x3e\x54\x04\x37\xd9\x47\x9d\xd4\x4f\x63\x15\x8d\xc5\x84\x52\x0e\x12\x71\xad\xbb\x47\x67\x8a\xc1\xa5\xe0\x7c\x3c\x5e\x33\x86\x60\x49\x17\xa5\x02\xc1\x29\x56\x03\x18\xb2\x09\xcd\x46\x68\x64\xb1\x5b\x53\x9c\xab\x45\x12\xed\xc9\x7b\x26\xf6\x50\x4d\x7a\x6b\x76\x28\x50\xa0\x2e\x62\xb2\x83\xbd\xa1\xb0\xc8\x40\xf5\x4c\x5f\x5d\xda\x45\xe9\x61\x31\x2f\x14\x3f\xa3\xc7\x18\x2a\x53\x80\x62\xf8\x00\xbf\xd1\x88\x7f\xb1\x0d\xf6\x05\xab\x85\x05\x80\xf2\x18\x3e\x37\x2a\xf0\x65\x48\x8b\xc5\x04\x93\x7b\x26\x00\xb1\x17\x8b\x6e\xac\xa4\xd9\xcd\xec\x9d\x8b\x7b\xb1\x68\x3d\x0c\x2b\x06\x16\x25\x5e\xc2\x31\x8e\xcd\x9a\xaa\x28\x48\x3d\xa5\xf7\xac\x45\xce\xf1\x5e\x04\xba\x39\xbb\xe8\x76\x2e\x7b\x83\xb3\x9b\xce\x79\xe7\xb2\xd7\x6d\x5f\xdc\xae\x7b\xfc\xf6\x11\xd1\x55\x39\x7d\xd5\xa0\xba\xc0\x21\x4e\xdc\xc9\x2b\xe2\x8a\x8b\xd2\xe2\xe1\xd8\xc1\x96\xac\x1e\x3d\x4f\x67\x83\x94\xeb\xc4\x5e\x7f\xf3\x01\x13\x29\xe0\xa9\x6c\x45\xaa\xf5\x4d\x55\x67\x11\xde\x20\xe1\x0d\xcf\x41\xf0\xb6\x7b\xf0\x14\x1d\x9e\x43\xc2\xb5\xab\x57\x09\xb5\x8a\xfb\x22\xba\x6d\x5a\xab\x31\xf4\x6c\x73\xbb\xcd\xad\xdc\x44\x75\x4e\x38\x5e\xae\x75\x4e\x2d\x7f\xf4\xaf\x41\xbe\x6c\xc3\xaa\xb8\x0c\xda\x18\xd4\x85\x47\x35\x03\x88\x55\x79\xa7\x54\xa4\xd4\x48\x35\x6f\x98\xe2\x7a\xcc\x33\x3e\x36\x65\x16\x1a\x5f\xd9\x56\x9f\xf7\xbb\x80\xaf\x52\x51\x25\x25\x84\x7e\xe9\x5d\xfd\xd4\xb9\xbc\x1d\x74\x2e\x7f\x1e\x5c\xdf\x74\x3e\x74\xff\x2b\xa4\xc6\xb9\x0a\xa8\x65\x38\x72\x66\x2f\x45\xcb\x5d\x7c\x9a\x46\x2d\x7f\x41\x50\x70\xdf\x8e\x03\x82\xe5\xa3\xbe\xf0\x9c\x45\x15\xcd\x4f\x94\xcc\xc7\x93\xfa\x86\xaa\xa3\xbc\x6e\xf7\x7e\xdc\x6a\x98\x90\x42\x85\xc8\xc1\x78\xda\x16\xc1\x00\xf8\xc8\xf1\x3d\x44\x10\xa8\x0c\x0f\x12\x01\xe1\xd5\x3a\x1b\x76\x03\x47\xdb\x4a\x1b\x59\x64\x5a\x4b\x85\xff\x9a\xd7\x9b\x08\xa8\x17\xf1\xcd\xd2\x35\x02\xe0\x14\x88\x49\xbf\xd0\xda\x69\xcd\x6f\xa5\x1b\xec\x8f\xc7\x19\x1b\x8f\x59\x8a\xe4\x55\x6d\xd8\x99\x76\x1c\x0b\x4c\x8a\x7b\xbd\x6e\x15\x1d\x44\xf4\x0e\x17\x73\x08\x70\x58\x9f\x81\x5f\x87\x4f\xea\x79\xc5\x99\x2f\x15\x93\x48\xa1\x0d\x15\x0d\x90\x5b\x1b\x96\xb3\x2c\x70\x70\x55\x51\x54\xd6\x19\x3c\xbc\x31\xba\x38\x07\xdb\x38\x68\x1c\x14\xb6\x70\x16\x8c\x08\x22\x3b\xaa\x6d\x53\xb3\x09\x95\x82\x81\x4f\x6e\xac\x58\xaa\x3a\xb9\xcc\x41\xb0\x20\x22\x16\xa9\xc3\x1d\x41\xeb\x0e\x00\xfc\x36\x46\x7c\xed\xb9\xbe\x68\xb0\x60\x16\xc5\x11\x43\xb9\x4d\x2f\xbc\x6d\x6e\xaf\xaa\x94\x16\x8c\xca\x2e\xa6\x79\xe2\x00\x76\xb0\xd9\xc2\xa5\xeb\x0c\x54\xfe\x82\x4d\xc9\x71\x5c\xce\x35\x3d\x86\x1c\xb0\xbe\x68\x72\x54\xd4\x94\x42\x8d\x29\xe0\xda\xdf\x5a\xbb\xec\x7d\xcd\xea\x37\x1f\x41\xbf\xd8\xeb\xc5\xe6\x12\xff\x3a\x08\x7b\x0d\x1e\x71\xb7\x2f\x43\x8a\x9e\xc8\xf2\x75\xdc\x94\xa6\x13\xb8\xea\x66\x8e\xfb\xb5\x9c\xf6\xb4\x8c\x0b\x84\x57\xe4\x84\x6a\x94\x5c\x7d\x6d\xfc\xa2\x7e\x6b\x51\xb8\xb7\xc9\xf6\x1d\x24\xc1\x3d\x62\x87\x34\x39\x22\x8e\x50\xa7\x0e\x35\xf8\x63\x3c\xdd\x80\x0d\xbe\x19\xe1\xc7\xc2\x51\x50\x5e\x90\xef\x01\xc3\xca\x68\x2e\x92\x09\x99\x65\x14\xe3\xd1\x27\x54\x23\x49\x7b\x5f\x37\x1d\xf2\x8c\x1b\xc8\xa4\x43\x2f\x51\x65\x85\xad\x46\x43\xd5\xbd\x47\x70\xa0\x45\x1e\xf7\x32\xa2\xdf\x31\x1e\xab\x28\x13\xf5\x9c\x11\x59\xc5\x91\x8d\xbe\x58\xea\x62\x2a\xc8\xd2\x45\x63\x15\xdb\x81\x85\xcc\x8d\x8c\x4a\x5e\x6d\xb6\xb3\xae\xc5\xeb\xea\xe7\xa5\xf5\xae\xb9\xa8\x37\x77\xfd\x3b\x70\xa2\x0d\xd8\x7c\x15\xba\xa8\xf6\x64\x8d\x32\x49\x1b\x0a\x5c\xf8\xb6\x11\x89\xa8\xa9\xed\x54\xe6\xc3\x26\xe4\x0b\x1c\xd5\xf2\xd6\x97\xd9\xf1\xfd\xb9\xdd\x97\x5d\x30\x66\x80\xd4\x30\xc3\x37\x33\x6d\x44\x93\xa6\x86\x1d\xc3\xe7\xf5\x8d\x3b\xbc\x87\xb5\xe7\xbc\x40\x68\x05\x64\x5d\xc0\xd7\xb0\x22\x6d\x4d\x91\xc4\xbf\xe6\x50\x88\xf1\x6a\x74\x8b\xb9\x5d\xbb\x10\x99\xe1\x8b\x14\x56\x7f\x12\xab\xbd\xf6\xca\x4e\x92\x98\x06\x66\x2c\x59\xff\x9a\xa9\xb6\x7b\x6b\xbf\x5e\xff\x40\x96\x8b\x40\xcd\x14\x97\x90\x81\xe5\x2a\x47\x2d\x49\x12\xaf\xed\x77\x87\x95\xfc\x35\x67\x39\xb3\xb4\x3f\xcc\xd3\xf1\xa2\x6d\x73\x03\xe9\xac\x98\xd2\x44\x3e\x92\x69\x9e\x4c\x88\x6f\x9c\xa4\x2c\xa3\xf3\xd2\xd4\x40\x5e\x32\x32\x03\xd0\x8d\x2d\x31\x20\x92\x5c\x1b\x39\x85\x58\xb5\xa2\x5d\x95\x0b\x20\x78\x42\x8d\x51\x7c\x98\x9b\xda\x00\xa7\x52\x32\xf4\x96\x0e\xaa\xdb\xeb\xce\x59\xf7\x43\xb7\xe2\x1d\x6a\xdf\xfe\x14\xff\xfb\xf3\xd5\xcd\x4f\x1f\x2e\xae\x3e\xc7\xbf\x5d\xb4\xef\x2e\xcf\x7e\x1c\x5c\x5f\xb4\x2f\xe3\x9f\xcf\xdb\xbd\xf6\x6d\x67\x95\x5b\x69\xb1\xd7\xe6\x8d\xa0\x51\xae\xb6\x95\x5d\x9c\xe1\x12\x3c\x7a\x5e\xbb\x74\xbd\x9e\x92\xb6\xcf\x5c\x8f\x4b\x7b\x50\xef\xea\x03\x17\x35\xd6\x1a\x71\x1e\x41\x28\xa5\x8d\xb5\x9b\x5a\xa4\x4d\x7c\x0d\x2e\x88\x67\xd4\x56\x58\x70\x79\xbd\x76\x77\xb0\x09\x2b\x31\x24\x85\xe6\x56\xe0\x47\xcb\x91\x4b\xa8\xcf\x58\x0c\x62\xe4\xea\xad\xb6\xfa\xa2\xf3\xc0\x84\xc9\x01\x61\x85\x66\x99\x2f\x95\xe6\x5f\x88\xd2\xdf\xfc\x28\x35\x9f\xf2\x8c\xaa\x02\xea\xf7\xca\xb5\x05\x02\xbb\x1f\x6b\x48\x77\x5c\xc4\x7f\xf4\xca\xc3\x5d\x97\xc0\xb8\xcf\x2e\xba\x20\x02\x25\xc6\x83\xe4\xf9\xce\xfb\x02\x33\xb6\x5d\x8f\x53\x0a\x31\xb6\x46\x3a\x7b\x1a\x76\xdf\x58\x3a\xf6\xa6\x06\x6a\x77\x0b\x44\x00\xb4\x3c\x3f\x55\xb4\x4c\x18\xa4\xff\xa3\x23\x8c\x9a\x6f\x02\xc1\x4c\x52\xa6\x41\x36\x75\x81\x31\x65\xf8\x5f\x34\x77\x10\xdf\xfa\x25\x08\x3b\x3e\x70\xcb\x59\xe3\x83\xd1\x9d\x01\x60\x79\x83\xfc\x9d\xd9\x4b\xe8\xa5\xae\x43\x9c\x5e\x06\xab\x30\x94\xb9\x48\x7d\xed\xd2\x29\x17\x27\x53\xfa\xe5\x9d\x9f\xe9\xe3\x84\x3b\x05\xa4\x48\xc5\x65\x99\xd5\x44\xe6\x96\xc9\x2d\x5f\xae\xbe\x58\xb2\x5e\xab\xa5\x45\xcf\x59\x41\xed\x29\x74\x54\x0c\x46\x7a\x60\xf3\xba\xfd\x5b\x40\x69\xc4\x80\x27\x77\xe0\xa1\x91\x99\x62\x50\xaa\x3b\x84\x3a\x65\x18\xc2\x16\xfe\x0d\xa1\xb4\x25\xb4\xe7\x7a\xe6\x1d\xbb\x79\x77\x3a\x37\xb5\x0e\xe6\x27\xc0\xd9\x74\x3d\xd9\x4d\x43\x77\xb3\xb7\x74\xba\xd0\x61\xe7\x47\xb3\xbb\xf5\x77\x39\x84\x82\x92\xda\x17\x73\x51\x0c\x2c\xdb\xb0\x17\x1e\x18\x08\x32\x36\x17\x7c\xd8\x9e\x06\x32\xa6\xc1\xde\x0b\xc5\x8e\xd9\xaf\xb9\x73\xd9\xfd\xf0\xfd\x66\x17\xad\x51\x73\xe2\x21\xc8\xe2\x48\x6f\x97\xe8\xe0\x2e\x5d\x18\x57\x2e\x78\x5d\x1a\xf7\x0d\x96\xf9\x7d\xde\x6a\xea\x95\x4e\xdd\x3f\x57\x06\xc3\x7b\x4b\xac\x2b\x4d\xfc\x64\xb8\x17\x3f\x57\xe0\x2e\x5c\x77\x10\xe3\xea\x5a\x8f\x6f\xb4\x21\x4d\xee\x1f\xa9\x4a\xd1\x58\x08\xe1\x07\x2d\xf2\xa3\x7c\x64\x0f\x4c\x1d\x91\x84\x29\x43\x5d\x26\xac\x06\xff\x2b\x1c\x28\xd7\x4e\x5f\x40\xd8\x37\xa6\x15\x0b\x28\x84\x63\xf8\x78\x62\x15\xca\xc8\x7b\x2e\x95\xe5\x47\x06\x61\x06\x66\x2c\xc1\x78\xff\xa6\x20\xe7\x51\x46\x1f\x16\x53\x7b\xb7\xc9\xda\x8c\x6a\x7e\x7b\xf7\x94\xf3\xd5\x2c\x8d\x77\xf0\xa5\xa3\x91\x6b\xce\xe6\x66\x22\xc5\x11\x19\xcb\x8c\x8a\x71\xab\xd5\x22\xcc\x24\xad\x77\x1b\x11\xba\x6b\x30\x76\x78\x85\x60\xcd\x4c\x6a\x96\xcd\x03\x40\x67\x08\xaa\xb7\xab\x0c\x41\xfc\x9a\xa3\xc9\xa3\x86\xfa\x6f\xab\xc9\x9f\xcf\x6b\x3a\xaf\xd7\x54\x37\xce\x22\x69\x68\x07\x80\x3b\x37\x68\x09\xdf\xaf\xd7\xbc\x36\xc8\x8a\xf2\x50\xd8\x45\x76\x54\x03\x32\x8e\x14\x9b\xa6\xfc\xfc\x2c\x9b\x6a\xc6\x6c\x95\xcd\x5e\xdb\x92\xcb\x3d\xde\x2a\x09\x66\x91\xa2\x6b\x28\x2e\xe4\x8b\xed\x84\x9c\x91\xe5\xd3\xc5\xc2\x87\xfb\x92\xa2\x8a\x41\xe2\x5f\x67\xd0\xdd\xda\x52\x54\x51\x1a\x47\x2a\x4c\xd4\x71\xe3\x45\x5b\x28\x12\x13\x70\x4b\xc5\x35\xe4\xf0\x6f\x93\x4b\x13\x9a\xc1\xa6\xc1\x65\x03\xb5\x93\xa1\x58\x99\x92\x62\x9c\xcd\x31\x3d\xc8\x9b\xf8\xdd\x27\x1a\x45\x1d\xf0\xf3\x34\x73\x86\x6a\x20\xd1\x53\x27\xe6\x17\xe5\x7f\x27\x2c\x40\x05\x45\x11\x46\x46\xa2\x23\xd5\x31\xbe\x92\x0d\x1c\x6e\x7a\x8e\x69\xce\x3e\x5a\x49\x44\x15\x52\x16\xa0\x61\xca\x89\x63\x7d\x51\xee\x6a\x5a\x20\x11\xb9\x38\x2f\xe7\x11\xe7\x8a\x21\xa2\x83\xb6\x5c\xd5\xf0\x07\xbb\x76\x2b\xa3\x2b\x00\x40\x71\x9f\x4b\x01\x0d\xfa\x8a\xb6\x92\x8c\x7c\x8a\xca\x3d\x8b\x50\xf9\x53\x7b\x21\x3d\xb0\xd5\x81\x11\xb0\xaa\x83\xa8\xc6\xc9\x7a\x47\x1f\x09\xe4\x93\xfd\x78\x49\x1c\xce\x42\xe3\xf6\xc6\x2a\xf2\x14\x0a\x43\x40\x51\x9f\xd7\x4d\xd2\x6d\x70\xe1\x6a\xaf\xa9\x7f\x53\xd8\x54\x40\x58\xb5\x32\x69\x5f\x38\x58\x99\xc8\x85\x65\xd7\x65\x71\x4f\x5d\xfe\x14\x82\x59\xcc\x4b\x29\xa9\x00\xf9\xe3\x0b\x35\xd4\x97\x1d\xf2\x68\xd5\xae\xdc\x1e\xa6\x1c\x7a\xc5\xbb\xb6\xc3\x2d\xe3\x37\x70\x9d\x9b\x63\x36\x0a\xb1\xc3\x2d\x9c\x03\x46\x42\xdc\x5a\x94\x58\x12\x66\x97\xaf\x2d\x6a\xc3\x25\x7c\xb0\xc4\x6d\xe7\xec\xa6\xd3\x7b\xb6\x98\x0e\x1f\x50\xb1\x71\x50\x87\x1f\xe7\x79\xe7\x43\xfb\xee\xa2\x37\x38\xef\xde\x3c\x45\x54\x87\x7b\xb4\x45\x58\xc7\xad\x43\xab\x3a\x93\xc2\xb0\x2f\x3b\xf1\x50\x95\x8b\x01\xdd\x20\xbc\x38\x20\xc2\x2d\xbb\x9e\xb0\xd1\x45\xb4\xad\x00\x85\x45\xc9\x4c\xa6\x5e\xc0\x0f\xe0\x5a\x51\x1d\xa9\x11\xcf\x32\x48\xe2\x09\x36\x31\x17\x99\x6f\x17\xf5\x88\xf0\x10\x5c\xe8\x19\x6e\x5f\x0c\x4b\x70\x63\xa0\xa7\x4f\xa4\xd4\xb8\x3f\x74\x66\x17\x40\x71\xc8\xe1\x58\x06\xc8\x65\xf5\xed\x62\x18\x88\x31\x9f\x0b\x22\x9b\x40\x7e\xdc\x26\x3e\x65\x8e\x96\xbb\x28\xd7\x95\x0d\x3c\xc5\x95\xe8\xd3\x8b\x0b\xfe\x61\x98\x21\x1e\x62\x2e\x50\x90\x28\x9d\xe6\xdb\x7a\xd2\x3d\x29\x8e\x00\xac\xbb\xdd\x49\x0a\x86\x43\x80\x71\x2f\x36\xd2\x6d\x04\x42\x61\x16\x16\xc5\x7b\x8e\xae\x6f\x39\xaa\xac\xb3\x65\x85\x76\xad\x39\x98\x17\x29\xc2\x61\x93\x24\xcb\xb5\x55\xd6\x50\xd5\x69\x7f\xbe\xed\x0b\x2c\xc8\x03\x54\xa0\x3d\x5c\x22\x76\x81\x8e\x57\x59\xea\xdf\xde\x5f\xcc\xfb\xb1\x1d\x07\xfb\x0e\x0d\x4b\x53\x46\x85\xc6\x22\x1b\x59\xc6\x54\x41\x19\x38\x1e\x66\xaf\x38\x80\x0e\x84\x62\x29\xc5\xf7\xae\xce\x82\x84\x53\x6b\xc7\xeb\x9e\xba\x3a\x03\x55\x7a\x6a\xca\x11\x83\xa8\xae\xa7\xa4\x9c\x9a\xe0\xe2\x75\xa9\xc8\x05\xc4\xd5\x12\x51\x39\xd4\x77\x2d\x5a\xea\x61\x73\x07\x52\xda\x23\x29\xad\x71\xaf\xc7\xb7\x04\x99\x48\xcb\x40\x03\xd2\x61\xe1\x1b\x0a\x39\xaa\x19\x04\x2d\x40\x2d\xe8\xba\x5b\xa7\x00\x0c\xd9\xca\x5b\x74\x79\x75\xd9\x89\x7d\x3d\xdd\xcb\x5e\xe7\x63\xe7\xa6\x94\x8f\x74\x71\xd5\xee\x95\x72\x8f\x7a\x37\x95\x94\xa5\xf7\x57\x57\x17\x9d\x05\xa7\x51\xa7\xd7\xfd\x54\x6a\xfc\xfc\xee\xa6\xdd\xeb\x5e\x95\xde\x7b\xdf\xbd\x6c\xdf\xfc\x12\xff\xd2\xb9\xb9\xb9\xba\xa9\xf4\x77\x77\xb6\xdc\xfd\x54\x9a\x46\xbd\xea\x54\x58\xb7\x23\xec\x94\xba\x25\xed\x51\x7d\xbf\xe7\x4c\x3c\xc8\x3c\xdd\x24\x93\xae\x36\x71\xae\x64\x45\x48\xd9\x60\xbb\x24\xbd\xa6\x44\xc3\xda\x7e\x14\x33\x6a\x3e\xa0\xc6\xb0\xe9\x6c\xb7\xb2\x4f\xeb\x1f\x91\xcd\xf2\xff\x80\xbf\xac\x91\xff\x57\xda\xd5\x97\x93\xff\x57\x93\xda\xb7\x98\xff\xd7\xbd\xec\xf6\xba\xed\x8b\xee\xff\xa9\xb4\xf8\xb9\xdd\xed\x75\x2f\x3f\x0e\x3e\x5c\xdd\x0c\x6e\x3a\xb7\x57\x77\x37\x67\x9d\xe5\x01\xc0\x8b\xa3\x2f\x94\xb6\x63\x12\xf7\x73\x4a\x7a\x91\x38\x8d\x66\x5c\xa7\xad\xd9\x15\x07\xb4\x58\x6e\x00\x92\x85\x8b\xf1\x11\x14\x26\x3a\x25\x1d\xa5\xba\x53\x3a\x66\xd7\x79\x96\x1d\x91\x50\x7e\xec\x4c\x31\x6a\xe0\xb5\x6b\x99\x76\xa3\xef\xc0\xd3\x5b\x3b\x0d\xe8\xdf\x95\xf9\xc2\xee\x8f\x5c\xff\x91\x8a\x17\xbc\xc8\x2e\xa4\x3e\x14\x61\x3c\x05\xa0\x5b\x39\x72\x15\x0b\x8e\x82\x4f\x8a\xfc\x9a\x4b\x43\x09\xfb\x92\x40\xd0\x7b\x3d\x9d\x5c\xc8\x9d\xca\x74\xad\xae\x29\x50\x7f\xa6\x57\xe7\x09\xd5\x6b\xf2\x88\x72\x35\xd8\xa4\x4a\x8e\x9b\xe5\x27\xfc\xd4\x15\xc6\xa9\x17\x88\x4c\xb6\x87\x20\x9c\x0b\x39\xae\x47\x94\x81\x2c\x25\x07\x83\x53\x00\xba\x43\x48\x9f\x1c\x13\xcd\xc5\x7d\x5f\x7c\x9e\x30\x41\x64\xae\xf0\x27\x23\x15\x80\x13\x8d\xb2\x5c\x4f\x18\x94\xe3\x3b\x22\x8f\x8c\x4c\xe9\x1c\x43\xfb\xa6\x52\x45\x18\x3b\x40\x32\x96\x38\xe1\xeb\x8c\x0b\xcb\x2d\x66\xdc\x9b\x7c\xab\x5b\xbf\x0f\x8f\x90\x4f\xf9\xa0\xbb\x67\x64\xae\x17\xd7\xf2\x38\x61\xe0\xd2\x2f\x4c\x5f\x5e\x8d\x73\x9c\x1b\xf0\x06\xa5\xbc\xb7\x9a\x99\x4f\x0e\x7b\xeb\x11\x15\x60\xb9\x1f\x24\x4f\x49\x9a\xcf\x32\x9e\x04\xbe\xfb\x28\x55\x63\x06\x2c\xba\x26\x36\xc8\x80\xad\x38\xdc\x96\x4d\xac\xc6\xef\x11\xd9\x3b\x96\xe4\xc2\x3e\x71\x36\x70\x54\x5e\x24\xd7\x4c\x1d\x1b\xc5\xc7\x63\x30\xf4\x7a\x2f\xea\xcb\x4f\x17\x2e\xd2\x91\x76\x77\x18\xc6\xf1\x3c\x99\x1c\xf3\x84\x06\x47\x21\xd0\x54\x90\x5d\x43\x3e\xa2\x3f\xf6\xb3\x5c\x61\x59\xc7\x51\x91\x13\xd6\x18\x67\xed\x6b\xe9\x0e\xb0\x62\xcb\xee\x95\x64\xba\x23\xac\x5e\xe8\x30\xcf\x8b\x80\x37\x5f\x35\xc2\xdf\x70\x45\xdf\x1e\x62\x0b\xd1\x6d\xa1\x4a\x22\x91\x8f\x50\x71\xca\x6a\x23\x56\x38\xb7\x33\x15\x12\x64\x93\x00\xbb\x15\x4c\xcc\x1e\x98\x6c\xe4\xd1\x3a\x5d\x50\x02\x16\xfa\xfe\xfa\xe9\xdd\x85\xed\xd9\x4e\x3d\x9c\xd2\x5a\x16\xb9\x2b\x06\x57\xb0\x55\x6f\x2b\x11\x2f\x77\xc2\x8c\x33\x39\xc4\x92\x57\x0b\xe8\x5c\xf1\xad\xb3\x59\xc4\xc1\xc8\x61\xa8\x95\xef\x2c\x9f\xe5\x0e\xf1\xee\x72\x09\xea\x71\x5c\xf9\x79\xa7\x18\xe6\x27\x58\xb0\xdc\xc8\xa8\xc8\x98\x9d\x5c\x37\xd4\x1a\xf3\x7e\x14\xa0\x8a\x6e\x5a\x5b\xb1\xa2\x38\x31\x7e\xe5\x9b\xb8\x73\x8d\xd3\x73\x23\xf4\xb5\x99\x62\xde\xdd\x3d\x67\x26\x78\xb9\x33\x8f\xb5\x03\xc9\xbf\x61\xd6\xe5\x30\x1f\xef\xc8\x0f\xa1\x99\x90\xb3\x1f\x0a\xe0\x4d\x67\x52\x30\xe1\x8c\x1b\x42\xf6\x85\x6b\xdc\x63\x39\x86\x5a\x24\x25\x07\xd3\x91\xd3\x41\x5c\xd5\x4b\x2d\xb3\x07\x67\xa7\x8c\x32\xb0\x01\x6b\xc9\x0e\xf0\xcc\xb2\x73\x2b\xbc\x50\x91\x16\x25\xff\x27\xac\x2f\x2a\x80\x86\x8a\x8d\xb9\x36\x70\xb1\x78\x8a\x8d\xbf\xdf\x1b\xc8\x5b\x49\xde\x59\xb6\xf4\x8d\x20\x6f\xab\x18\xd7\x88\x26\x9b\x80\x2d\xcd\x67\x2c\xed\x86\xef\x96\x13\x43\xc9\xd7\x99\x46\xb1\x60\xa5\x43\x8e\x34\xe0\xcb\xda\x42\xe0\xa3\x0e\xb9\xd3\x61\x93\x42\x75\x1b\x0f\xc0\x04\x5b\x34\xa6\x39\x55\x54\x18\xc6\x74\x5f\x60\x54\x28\x86\xac\x97\x62\x54\x46\x25\x58\xbf\x42\x96\x4a\xa4\x36\x18\x10\x07\x9f\x8c\x28\xcf\x72\xd5\x28\x22\x20\x59\x6e\xe5\x7d\x5f\xb6\x4c\x67\xd0\x2c\xa9\xdb\xb5\x10\x48\x12\x1d\xa3\x10\x44\xe2\x2b\x70\xf8\x2a\x21\x65\xb7\x6a\x13\x3e\xab\x53\xf6\xd6\xdf\xf0\xa0\x1f\x2e\xc1\xeb\xb2\xdb\xbb\x4a\x56\x59\x6d\x80\xf8\xd3\x1f\x57\x43\x75\x36\x72\x0a\xa0\x91\x09\x15\x29\xd4\xdd\xa2\x26\x32\x37\xe0\xde\x3a\x8a\x03\x00\x34\xe3\x59\x51\xb3\x6f\x02\x4c\x7d\x83\x64\xc1\x4f\xb4\x62\xb5\xaa\x0e\xa6\x15\xfe\x86\x52\x2f\x65\xb7\x4f\x9d\xb9\xb1\x08\x97\x74\x48\x7c\xe1\x78\x34\xef\x77\x4d\x59\xfd\xdd\x13\x97\xd6\xc5\x26\x2c\xea\xac\x2d\xf2\xa5\xc4\xd1\xbd\xbb\x2d\x02\x1a\xe1\x8e\x94\x8f\xe5\xd9\x35\x2b\xa5\x87\xf5\x85\x83\xea\x84\x17\x11\xef\x15\x23\x20\x35\xf9\x21\xf8\x0e\x7f\xf8\x0f\x1f\xff\x36\x27\x23\x58\x6b\x08\x32\x95\x49\x92\x2b\x80\x46\xf4\x15\xf9\x18\xde\x04\x9b\x64\xf1\xb6\xf1\xfe\xd3\xc0\x0f\x20\x96\xae\xb9\xba\x94\xd3\x63\x4a\x93\xea\x81\xf8\x8a\xa0\xa3\xe1\xe6\x71\x88\x1f\x4a\x1b\xa2\x0d\x9b\xd5\xb2\x80\x92\x88\x53\x66\xde\x3b\x25\x6a\xd5\xc1\x83\xae\x4e\x08\xfd\x44\x67\xcb\x90\x1b\x77\x6e\x71\xd5\x36\x84\x08\x9d\xea\xcd\x04\xa8\x85\x00\x64\xe1\x10\x17\x17\x57\x2f\x24\xb5\x3e\x4b\x20\xea\x26\x38\xd2\x21\xb7\xd9\x21\xb0\x2f\xe3\x6d\xe5\x4f\x37\x0f\x7c\x29\x22\x30\x5d\xe1\x6e\x6c\x70\x88\x09\xc9\x71\x0e\xf5\x36\x39\xee\xd5\x8d\xf1\x6d\x2d\xd9\x8e\x1d\xf3\x3b\x8b\x94\xfc\x67\x4c\xef\xfc\x79\x61\x89\x36\xcd\xee\x7c\x88\xd3\xd9\x41\x5c\x2a\xc2\x31\xd6\x52\x22\x43\x56\xe7\xcf\x65\x4c\x82\xd2\x12\x4b\xbe\x16\x78\xc3\x62\x65\x40\xb8\xa1\x52\x26\xa4\x61\x84\x12\xc1\xb3\x13\x91\x67\xd9\xc9\xa5\x14\x96\x31\x6b\x3e\xc6\x10\x12\xac\xea\x0f\x91\xae\x45\xb9\x8c\x92\xf5\x38\x3a\x02\xc0\x9c\xed\x90\xd0\xb0\x6d\x2c\xc7\xb4\x5b\x90\xcd\xfb\xc2\x7e\x81\xf7\x08\x56\x19\xe0\x21\x3a\x18\x7b\xf3\xb0\x8f\xae\x2f\x48\x95\x9b\xc7\x8d\xd7\x10\xd8\x32\xa4\xc4\x9d\xc2\x72\x0f\xf5\x2b\x5f\x4c\xfd\x4a\xa9\x42\x41\xfd\xf5\x2b\x59\x36\x1f\xaa\xad\x4b\x49\x06\xdd\x24\x88\xad\x6b\xd0\xe3\xd7\xf4\x90\x3d\x25\x6e\xe6\xce\x20\x99\x7e\xa5\xf6\xe1\x28\xf8\x15\x73\x66\x07\x72\xe4\xeb\x4f\x6e\x9f\xe7\xbb\xa6\xa5\x36\x4e\x54\x88\xb3\x7b\x17\x89\xa4\x49\x55\x95\x62\xe0\x94\xd9\xf5\x06\x5b\x5d\xb0\x2b\xf1\x01\x3f\xbf\x96\x19\x4f\x96\x9b\xb7\xfd\xd5\x04\xa8\xec\x0b\xce\x0d\xa8\x5f\xe0\xaa\x22\x53\xaf\x61\xa3\xdd\xd6\xb0\xc4\x14\xd6\x9a\xc5\xc9\x6d\x62\xfd\xf3\xea\x42\x68\x05\x80\x64\x8a\xb2\x12\xf6\x5a\x81\xe0\x60\x48\x55\x41\x41\x1a\x00\xce\xe9\x0c\xdc\x29\x4e\xbf\x28\x0d\x04\x78\xd3\xe3\x44\x66\xec\x08\xcd\x41\x60\x3b\xee\x8b\x19\x53\x89\xb4\x4a\x1a\x14\xae\xc6\x78\x39\x9e\xa5\x45\x42\xe8\x77\xe0\xca\x02\x83\xf3\x3b\x87\x7a\xc1\x82\xb9\x2e\x14\x17\x58\x4d\xb6\x1e\xf9\x6e\x57\x44\x85\x7d\xd9\xa6\x97\x51\xc1\x67\xe7\xde\xc2\xa5\x70\x60\xe0\x15\xbb\x8b\x5d\xf4\xd2\x78\x36\xdb\x61\x16\x52\xfd\xe0\x82\xc1\x4a\x14\xa6\xb2\xaf\x2e\xde\xba\xba\x94\x44\x5a\x12\xe5\xc1\x81\x60\x3f\xa2\xe0\x82\xa4\x28\x86\x14\x11\xaa\x6e\x53\xfb\xa2\x30\x35\xbd\xd5\xb1\x48\x52\xbb\xcf\x2d\xf2\x41\x2a\xc2\x01\x50\x2a\x61\x47\xe4\x6d\x69\xa2\x6f\x21\x66\x5a\x48\xe8\xcf\x19\x28\x4a\x4b\x03\xe4\x7a\x44\xb8\xe9\x0b\xae\x91\x32\x15\xcb\xd8\x03\x75\xb5\x5c\xbd\x56\xe8\xcc\xd7\x2e\x15\x39\x4c\x1b\x1c\xa8\xd4\x45\x69\xa7\x01\x30\x11\xa2\x93\x54\x1c\x7b\x4b\x21\xc6\x0b\x10\xe2\x73\x01\x99\x7e\xec\x0b\xe2\xf0\x5b\x45\xf7\x81\x29\xc5\xd3\xd4\x76\x57\x14\x88\x70\x98\x4c\x50\x71\x70\x2e\x73\x2c\x9b\x93\x82\xab\x84\x86\xdc\xaf\x10\x08\xc5\x51\x18\x1d\x4a\x33\x29\x03\x97\x23\x68\x0b\x9e\x24\x66\x55\x6c\x03\x75\x85\x60\x5d\x05\xa3\x66\x42\xb8\x39\x82\x08\x36\xcf\x38\xfa\x82\xa6\x0e\xf3\xce\x35\x67\x97\x06\xe8\x7e\xc9\x3e\xbb\xe7\x10\x60\xdf\x7c\xc4\x76\xf5\x8f\xe0\xa9\x9e\x65\x54\x0c\x90\xa1\x7e\x05\x0f\x49\x84\xa7\xd3\x64\xc7\xca\x87\x83\x80\x57\xbf\x97\x71\x06\x49\xe7\xa6\x84\x72\x65\x45\x38\xdf\xd1\x51\xb5\xaa\xac\x97\xcc\x21\xf3\xd3\x9b\xf2\x79\x06\xf5\xde\xd1\x4a\xb6\x3e\x17\x28\xbc\x3c\xb4\x62\xd3\xf5\xd4\xba\xca\xcd\xe3\x29\xe0\xa5\xba\x7a\xd6\xd9\xf9\xca\x1d\x52\xdd\xf6\xcd\xbd\x0c\x0b\x02\xd3\x56\x9e\x86\x15\xc3\x7a\x5a\x6f\x43\xa3\x09\x61\xd1\xeb\xf0\x39\xd4\xf7\x09\x36\x65\x8c\x1a\x60\x44\x4b\xab\xd7\x78\x0b\x47\x3d\x5e\x52\x25\xc4\xef\x49\x03\x91\xcb\xa8\xea\x6b\x27\xb7\x61\xa1\x21\xd2\x15\xc4\x5b\x2a\x8e\x48\xff\x0d\x52\x96\xee\xbf\x41\xc0\x68\x0f\xbb\xe5\xab\x18\xb9\xf3\x93\x96\x6a\xd5\x05\x4b\x3b\xba\xcb\x8b\x03\xe7\xaa\xeb\x6c\x64\xcd\xfb\x9a\xe5\x83\xa2\xcc\x3f\x8c\xa8\x19\x62\x03\xee\x9a\x44\x9d\x73\xee\x6b\x0b\x01\x34\xa4\xca\x13\x53\x4c\x38\x94\x62\x79\xef\x3f\xb4\x4b\x34\xcb\xdd\x8d\x1a\x4a\x9f\x48\xd5\x17\xbe\xb5\xa2\x22\x62\x3b\xcb\x16\x9a\x5a\xac\x42\x14\xd1\x2a\xd8\xa8\x7d\x4e\x3e\x60\x3d\x14\x01\xe2\x55\x3e\x00\x36\xef\x21\x2b\x00\x03\x5b\xa4\xa8\x83\x05\xa2\x47\xa5\xe0\x4e\x5c\x6f\x27\xcb\x7c\xb1\x19\x94\xda\xa2\x0a\x23\x3a\x87\xc8\xeb\x51\x6e\xd9\x51\x14\x9e\xde\x17\x50\x7b\x69\xc4\xed\x21\xf1\xeb\xd2\x17\x9f\xa4\x0b\x73\x07\xf1\xca\x4f\xd2\x87\xae\xbb\x65\x7b\x1b\xa0\x09\xdc\x0f\xe7\x70\x6d\x8f\xd0\x35\x5c\x01\xab\x84\x90\x0e\x08\x3c\x3b\xb2\xb2\x87\x2a\x26\x95\x50\xd1\x17\x7f\xb7\xcb\xe3\x0b\x0a\xb9\x6d\x95\xa3\xff\x9f\xbd\x6b\xeb\x6d\xdb\xc8\xc2\xef\xfd\x15\x83\x7d\xa9\x0d\x30\x32\xd0\xa2\x2f\x79\x33\x72\x41\x1d\x18\x89\x11\x27\xdd\x05\xca\x42\x1e\x51\x63\x89\x30\x39\x14\x66\xc8\x78\xbd\xc0\xfe\xf7\xc5\x9c\x73\xe6\x46\xf1\x26\x89\xf6\x76\xb3\x7d\x28\x1a\x58\x24\xe7\x7e\xe6\x5c\xbe\xf3\x1d\x3c\xc4\x96\xdc\x93\x9d\xdd\xe1\x47\xcf\x7e\x39\xbf\x3b\xc7\x72\x6d\x8d\x06\x3a\x98\x24\xbe\x42\x5c\xa6\x52\x53\x14\x00\x7b\xb4\x23\xb8\x57\x55\x89\xac\x2d\xae\x89\xc1\xd2\x03\x64\xe5\xcc\x5d\x68\xdb\x7b\x5e\x2f\x59\xc6\xeb\x6c\xfb\xca\x6a\x73\x61\x91\xa5\x5c\xfb\x32\xee\x46\x73\x34\xba\x56\x77\xb2\x8e\xb1\xc0\x54\xe9\xe8\x16\xa3\xfd\x62\x86\x00\x71\x93\x2f\xd1\xae\x0c\x49\x4d\x71\x73\x7a\xa6\x43\xaf\xe9\xb9\xc7\x2d\xd7\x83\x77\x97\x92\x8b\x58\xf2\x52\xac\x59\x8a\xb9\xd1\xe9\xdf\xec\xf2\xa7\x72\xb7\x5a\x14\x4f\xf7\xf5\x02\xf2\x0e\x16\x66\x5a\x16\x90\x10\x3d\x72\xd3\x2d\xd7\xfb\xa6\xd2\xc8\x74\xf7\x1a\x5b\xdd\xfa\x8e\x9b\x1d\xd7\xd2\x74\xa5\x05\x5d\x3c\x6e\x7e\x6e\xe3\x18\x50\x9c\xec\x05\x65\x69\xa8\x88\x8e\x51\x72\x03\xc5\xca\x9f\x4f\xac\x67\xc0\x74\xcd\xeb\x3c\x43\x62\x23\xc9\x8b\x27\x60\x5c\x49\x52\xb9\xce\x15\x9a\xd6\x3c\x7b\xca\x8a\x3c\xa3\x82\x38\xb1\x2e\x24\xbe\x09\x59\x47\x38\x73\xe0\x49\x7a\x29\x75\xa8\x0f\xe1\xde\x3d\xfb\x5f\x7b\x54\x21\x57\xbc\x2c\xf6\x9a\xb5\xb7\x09\x71\xaf\xaa\x63\x0b\x51\x60\x0a\x9e\xb5\x67\x2b\x95\x6f\x72\xc9\xeb\x4a\xb1\xb3\x1b\x9b\xb7\x72\xee\x72\x2d\x61\x16\xbb\xbb\xd1\xf2\xd7\x1d\x32\x45\xe8\xeb\xeb\xbe\x6c\x21\x3e\x29\xd6\xcb\x7d\x60\xf1\xa1\x3c\x7f\xa3\xf1\x77\xf3\x94\xae\x79\xb9\x0b\x79\xbe\x1c\xfb\x0c\xcd\x4c\x81\x93\xc0\x6c\xc7\xc0\xac\xcb\xb5\x47\x30\xa5\x92\x9c\x21\xb8\x6e\x95\xea\x20\xb0\x6d\x8f\x12\x04\xc7\xf2\x48\xd8\x36\xd5\x85\x1b\x7f\x7b\xd0\x61\xfc\xf9\xda\xfa\x88\xfc\x45\x10\x49\x56\x18\xa8\x90\x19\x9c\x53\x80\xa7\x6e\x23\x84\x6c\x2a\x3d\x3a\xf5\x4d\x51\x35\x6b\x46\xee\x72\x72\x3e\xab\x05\xcb\xc5\x22\x61\xfa\xe7\xd7\x17\x17\x8b\x45\xcf\x4c\x1c\x4a\x28\xe1\xce\x37\xbc\xd7\xbd\xc3\xe1\xb7\x4e\xf4\xf7\xc8\xd1\x8a\xca\xa1\x2d\x0f\xb3\x3c\x2c\x1d\x07\xec\x96\xd0\x32\x8f\xb1\x8d\xed\x26\x5d\x89\xb8\x53\x9a\xb3\x20\xc9\xe1\xa6\x76\x5c\x09\x59\x2f\xa1\xc5\xc3\x1a\x83\x46\x6e\xe0\xf5\x28\xab\x65\x92\x85\xf5\xfb\x97\x0a\x0d\x67\x0b\x6d\xfd\x23\x28\xe6\x48\xd4\x5e\x5c\x3f\xb0\xb3\x1c\xe2\x58\x81\x93\x71\xac\x7a\x1d\x0d\xe8\x88\xd9\x0b\x06\x14\x09\xa6\x49\x03\xf2\xbd\xc7\x2c\x6f\x57\xa9\xd0\xa1\xfb\x8c\xa0\xb0\x7f\xf3\x1e\x60\x44\x6e\x7a\x77\x37\xe3\x35\x55\xcf\xff\x97\x50\x95\x4f\x59\x24\xba\xe0\xe0\xc3\x03\x30\xef\xa7\xe5\xf1\xb4\x0f\xc8\x6b\x85\x2c\x0f\x61\x2a\x3b\xfc\x85\xd0\xc3\x78\x4d\xaf\x9e\x2c\xdc\xbb\x9f\x31\x74\x79\x04\xa1\xba\xeb\x8a\xbf\x34\x43\xe9\x69\x2d\x09\x27\x8a\xed\x01\xbd\x00\x25\xc0\x28\x74\xb9\x66\x25\xdf\x51\xcc\x98\x0a\x4d\xb7\xbd\x22\x0b\x18\xc4\xef\xff\xf8\x63\xd1\x47\x6b\x03\x5d\x3f\xba\x6c\xce\x7b\x5b\x43\x4c\x09\xbe\xf6\xb4\xec\x21\xeb\xfa\x18\x65\xcd\xe8\x86\x3c\x41\x93\x39\x65\x5d\xf6\x75\x15\x47\x6e\xe0\xb7\x78\xbe\x0e\x39\x09\xdd\x06\xa7\xe5\x71\xac\xdc\xd5\x3d\x03\x1d\xb8\x47\x5b\x5a\x50\x3f\x3b\x5a\x38\x60\xf6\xba\xe5\xd3\x0b\xe9\x81\x7d\x89\x9c\x53\xba\x1f\xbd\x7b\xb2\xf6\x7a\x4a\xfe\xe7\x60\x5c\xef\x6d\x98\x66\x0d\x4e\x99\xac\x2a\x57\x46\x83\x44\x7a\x14\xf2\x8a\x82\x68\xba\xb4\xb9\x40\x2e\x91\xc1\x8a\x18\xa4\x4a\x6f\x65\x52\xba\x90\x72\x98\xa9\x10\xee\xb3\xce\x60\x5a\xcf\x7d\x30\x6f\xaa\x6a\xf7\xe1\xb8\x6c\x8f\xc0\x57\xb0\x7f\xc8\xb3\x07\x61\xb6\xf2\xbd\x2f\x91\x10\xaa\x56\x4e\xb9\x76\xa9\x1b\x44\xf0\xd2\x10\x55\x05\x8d\x25\xa7\x2a\x39\x85\xcd\xbe\xf7\x18\xef\x1f\x75\xf7\xe4\x3c\x77\x5e\x6d\xf7\x5c\xc0\xf7\x5d\xf6\x17\x11\x32\x46\x30\xc8\x04\xd5\xc1\x9f\x3c\x7a\x55\x64\x95\x74\x19\x63\xb3\x58\x19\x1d\x39\xb7\xdd\xdd\x85\xdf\xf6\x98\x1c\xc7\x4c\x9e\x13\x2d\xaf\x40\xb6\xa9\x2a\x23\x66\xca\x9a\x01\x55\x0d\x4c\x13\xb4\x9d\xb0\x92\xe7\x92\x8e\x41\xad\x78\x66\x74\xa7\x55\xb3\xd9\xf4\x1a\x04\x45\xb5\x79\x56\xef\xa4\xcd\x50\xed\xf5\x4e\xba\x11\x16\x43\x59\x97\x23\x3b\xf4\x3b\xb2\xfc\x06\xb3\x14\xe6\xb0\xdd\xae\x6c\x4b\xe8\x81\xba\xcf\x0b\xf1\x32\xe6\xda\x4c\xb6\xe7\xd5\x14\xdb\xd3\xba\x30\x01\x46\x85\xe3\x70\x4e\xa6\xff\x23\xa3\x14\xa1\xe5\x4b\xf3\xe6\xb3\xa6\x6b\xb8\x04\x33\x38\xac\xc4\x75\xa2\x85\x5c\x6b\x60\x5e\x9d\x3f\x7f\x03\x64\xfb\xe9\x99\x16\x23\xcc\xc3\xb7\x55\x29\x18\x34\xa5\x91\x33\x80\x11\x0e\x2c\x81\x90\x87\x19\xa0\xa7\x97\x82\x03\x4f\x3e\xfd\x6c\xcb\xe5\x46\xac\x7d\x6c\xf0\x4c\x8a\x47\x66\x64\x6d\x12\xfa\x80\x83\xe5\x49\x98\xa8\xb3\x73\xa3\xdb\x44\x21\x63\x25\xb2\x4a\xad\x21\x69\x77\xc3\xd5\x1a\x80\x0a\xb4\xe1\x0b\x9e\x3d\x40\x79\x13\xb8\x8e\xb0\x45\xf2\x53\xdb\xbc\x56\x8c\x9d\xf8\xaf\xe5\x32\x43\xe2\x38\x57\x71\xd4\xf6\x0f\x5f\xd7\x8c\x67\xaa\xd2\x54\xff\x90\xaa\x5a\x50\x39\x85\x80\x51\x1e\x5a\x9c\x25\xe4\xba\xaf\xbd\x4e\xb2\xa2\x7d\x12\x85\x82\x78\xd0\xb6\x7a\xb4\xb8\x90\x47\xee\xdd\xfe\x87\xa0\x6a\x6e\x68\xcf\x5a\xc4\x65\x10\x24\x00\x41\x1e\xd1\xda\xbe\xaf\x14\xa5\xd1\xc2\xa6\xb8\x21\xf6\xdc\x5f\xf3\x6f\x22\x61\xb7\x3b\xae\x1e\x12\xf6\xf6\x49\xf2\x32\xcf\x3e\x54\xab\x2e\x7f\xf3\xfc\xa6\x06\x01\x6e\x96\x59\xc1\xf5\x44\xef\x7f\x67\x27\xae\xe8\x43\x6f\xe0\x3b\xd3\x27\xf0\x57\xe0\x06\x2a\x27\xae\x4c\x2a\xbf\x7c\x7a\xfb\xe9\xec\x81\xd7\xaa\xda\x70\x79\xfe\x9a\xbd\x33\x92\x81\x68\xf1\x30\x04\x7d\xaf\x84\x00\x07\x3f\x61\x47\xcf\xb6\x75\xbd\xd3\xaf\x2f\x2e\x36\x79\xbd\x6d\x56\x8b\xac\x2a\xd1\x95\x55\xa9\x0d\xfe\xe3\x22\xd7\xba\x11\xfa\xe2\xe7\x9f\x7e\x39\xef\x9a\xf5\x3d\xe0\xe8\xc9\xb6\xd2\xfc\xa5\xe7\xbb\x6f\x80\xbf\xef\x81\x02\x59\x9f\x3f\xe2\x7f\xd3\xc7\xdf\x83\xe9\xfd\xde\xb5\xbd\x11\xa4\xc8\x5f\xee\xfa\x59\x35\xa3\x4e\x0f\x8a\xf5\x86\xf3\x75\x99\xcb\xc8\x88\xff\x53\x85\x00\xdb\x8b\xda\x85\xa1\x8f\x6e\xe9\x49\x6e\x8f\x39\x4c\x8a\x1b\x0e\xc5\x51\x2d\xe1\x1c\x88\x7f\x5d\x57\x4a\x10\x05\x12\xda\x19\xab\xa2\x5a\x01\x6f\x8e\xf9\xa5\xaf\xf0\x5f\x56\x54\x7a\x32\x56\x7b\x7f\xc1\xde\xd0\xeb\x83\x6a\x6b\x55\xee\x00\x13\xa0\x84\x06\x70\xe8\xbe\x21\xbf\x17\x4c\x9d\x45\xd7\xd9\xef\xae\xb9\x72\xdf\xee\xe9\x3a\xfb\xa9\xa2\x66\x4b\x83\xff\xff\xdd\xc0\x9e\xee\xbb\x97\xdf\x85\x51\x75\x0e\x34\xc0\x35\xd4\xc5\x40\x4f\x99\xce\xe5\xa6\x10\xad\xf1\x5a\x62\xb2\x54\x5e\xe2\x2f\x61\x2d\x23\x4f\x40\xe0\x5c\xec\xc4\x41\xe3\xe2\xf3\x18\x66\x67\x97\x16\x36\x0b\xf0\x4c\x4e\x9e\x1c\xa7\x30\x83\x06\x95\xd8\xe2\x48\x4a\x30\x09\x29\xbd\xa9\xd4\xcd\xea\x95\x07\x51\x56\x0a\xa4\x2b\x60\x6c\x77\x5c\x01\xc1\xd7\x36\x2f\xd6\xaf\x3a\x80\xf2\xa8\xfe\xfa\xd4\x66\x9b\x67\xc3\x8b\x02\x56\x7c\x27\xcc\x3a\x23\x86\xc7\x8d\xdd\x7d\x67\xd5\xd4\x4c\xf0\x6c\xeb\xf0\x23\xe8\x55\x6c\x69\x12\x91\xbc\x88\x54\xa8\xff\xb6\xab\x78\x5c\x5e\xf4\xf1\x8b\x7c\xff\x72\x22\x9a\xb3\x29\x72\xe2\x4b\xec\x9e\xb5\xa7\x86\x4b\x27\x39\xfa\xa6\x4a\x2f\xd1\xb7\xfa\x02\x49\x06\x9e\x15\x42\xef\xf8\xa3\x24\xe8\xe2\x41\x45\x2d\xa7\xc9\x87\x6e\xe2\x42\x23\x1f\x5a\xbf\xc4\x55\xcf\xd0\x2a\xa9\x73\xc7\xd6\x92\x04\xb4\x54\xbc\x28\xc2\x7c\x63\x6f\x17\xa7\xd2\x9b\x11\x9a\x3d\x8a\xa2\x30\xff\xcf\xda\x82\x9b\xec\x84\x35\xc0\x7f\x44\x62\x71\x76\x94\xa3\x42\xd6\xeb\xab\x15\x87\x02\xac\x7d\x65\xec\xf6\x4e\x73\x14\x0b\x3f\xe1\x40\x67\x3c\xdb\x8a\xa5\xe9\x5a\x73\x00\x18\x8b\x6a\xb2\xbd\x31\x2f\xdf\xe2\xbb\x83\x97\x19\xdf\xd5\x8d\xa2\x68\x32\xb6\x05\xa1\x32\x9e\x41\x4e\x81\xf3\xa1\x8f\x1d\xef\x0c\x9b\x5d\x76\xd4\x43\x18\xed\x6b\xb7\xc5\x1e\xd4\x07\x80\xc3\x6c\x91\x5e\x19\x57\xca\x86\xbf\xa9\x55\xc6\x55\x9d\xdf\xf3\x2c\x32\xb2\x27\x65\x19\x46\x37\x24\x7e\x51\x83\xcf\xcf\x57\xfd\xb2\xa2\x9c\x33\xc7\x06\xd5\xbf\xfe\x9d\xd0\x8b\x39\xac\xc3\xab\x99\x8c\xc3\x83\x27\x85\xb3\x28\xd1\xa3\x73\xe8\x41\x11\x98\x13\xc6\x7a\x24\x20\xe9\x30\x1e\x80\xa0\x32\xcb\x74\x09\xb7\x47\xbf\x43\x55\x49\xc0\xd5\xb6\x0e\xea\x6c\x47\xf0\x4e\x98\x42\x5f\x87\xdc\x41\x5f\x83\xfc\x27\x73\x45\xf1\x8d\x60\xa5\x58\xe7\x4d\x9b\x66\x62\x18\x64\xf3\x97\x60\xf9\x13\x09\x96\xfe\x75\x7b\x36\x81\x30\x9b\xbb\x68\x8a\x44\x78\x5f\x29\x0f\xba\xfd\x08\x46\xfe\xa3\x40\x46\xf1\xba\x42\x2f\x76\x37\x7b\x65\x90\x54\xc4\xeb\x1f\xb5\x43\x57\xc5\x3b\xdd\xc6\x0c\xae\x73\x5d\xff\xd6\xaa\xfd\x7c\x04\x0b\x45\xd1\x3c\x5f\x26\x89\xed\x2a\x76\x33\x78\x63\x30\x63\xe2\x33\xd9\x0d\xe4\x4f\x37\xc2\x01\x9d\xbb\x80\x38\xb6\xfc\x1c\xa6\xdf\x87\x28\x5e\x77\x6e\xbe\xee\xf0\x82\x7a\x54\x7c\xb7\x13\xca\xba\x4e\xb9\xb3\x57\x7c\xbb\xd4\x4a\x2a\xd1\xd0\xf9\x70\xfb\xe9\xa3\xd7\xb8\xbc\xff\xa3\xf5\x69\x78\x0c\xa6\x6e\xd1\xbd\x72\x1f\x9b\xa2\xe8\x5d\xb9\x09\xb4\xec\x5f\xaf\xaf\x97\xbf\x5d\x5e\x7f\x7d\x37\x98\xa7\x1e\x3c\xd6\x3b\x27\xae\x27\x34\x27\xa8\x7e\xd6\xa0\x72\x36\xa5\xa0\x88\x04\x18\x11\xb6\x50\x0b\xdc\xf2\x4d\x51\xc4\x7c\x05\xa9\xbc\xa3\xef\x40\x3a\x45\x23\xd1\x3c\x4c\x25\x1b\x9c\xb8\xb8\x7d\x78\xec\xce\x7c\xfc\xce\x16\xfa\xf5\x83\x78\xcd\x3e\xba\x56\x7b\xe6\x95\xa2\x68\x27\x1c\x07\x74\x7d\xbf\x14\x23\xcb\x71\xc7\xe3\xab\xb4\x25\xc4\x88\x48\x65\x96\xd3\x81\x73\x77\x17\xbb\x1e\x9c\xb8\x5f\xe3\xfd\x0c\xdf\x4d\x90\x47\x03\x4b\x6b\x39\xaa\x89\x54\x52\x59\x05\x0e\x00\xc5\xde\x3e\xb1\x2b\x89\x79\x32\x05\x97\x9b\x86\x6f\x84\x4e\x98\x6d\x3c\x95\x65\xbe\xd9\x42\xe2\x11\x31\xa1\x62\xfa\x3a\x67\x92\x43\x91\xf6\x78\x0b\x61\x60\x48\xfc\x93\x97\x3b\x88\xa9\xcb\x54\xd2\x98\xe4\xc6\x7f\x1e\x63\x46\x1f\x6e\xdd\x70\xcc\x4e\x73\x1f\x22\x2a\x10\x99\x4a\x5c\x5c\xcc\x6f\xb6\x36\x19\x38\x6e\x79\xdd\xde\xba\x5c\x09\xcb\x3e\x04\x32\x7d\x03\xd6\x21\x56\xaf\xb5\x98\x11\x23\xe9\x03\x36\x57\x8c\x20\x62\x97\xc6\xe5\x89\x5d\x0c\x7b\x26\xa8\x6f\xdd\xbb\xfe\xe4\x3b\xc0\x1c\xb8\xe5\xb7\xd6\x57\x26\x6c\x5b\x2f\xc6\x46\xa4\xb9\xdf\x50\xb2\x7d\x84\x59\x1b\xdd\x09\x68\xa4\xee\xde\xd8\x71\xe1\x33\xbd\xc1\x86\xaa\x59\x15\x07\x74\x09\x9f\x1f\xec\x14\x8a\xe4\xe1\x4e\x4d\x70\xc8\x7c\x6e\x1d\x2d\xb3\x4d\x87\x9a\x5d\x55\x55\xcf\xba\xcc\xe8\xda\x88\x3a\x45\x2f\x8c\x4d\x46\x93\xd5\xc7\xec\x97\x09\x20\x87\xf6\x14\x59\xe9\x33\xd4\xa1\x22\xd7\x47\x75\xc7\xeb\x4f\x93\x7b\xe4\x34\x04\xba\xec\x0e\x92\xb0\x74\xcf\x45\x02\xb6\x47\x4c\x92\x41\x4d\xee\x54\x91\xa3\x78\x91\x50\x37\x81\x13\x62\x2f\x71\x9b\x28\xf1\x2b\x97\x60\xe5\xe5\x46\x69\x23\x2e\x49\xde\x91\xd4\x36\xe6\x69\x2a\x6d\x32\xaa\x15\xc7\x97\xcc\x06\x30\xdd\x5f\x11\x38\xb2\xc3\x54\x2e\xd0\x58\x6b\x56\x49\x61\xa5\x61\x2a\x81\xf1\x4b\x82\xeb\x67\xa5\x21\x17\x9f\x78\xad\xe8\x87\x80\x37\x9b\x4b\x57\xfd\x79\x44\xe6\xb5\xd4\x80\xe8\x9e\xff\xc1\xfc\xf7\xef\x1f\xfe\x13\x00\x00\xff\xff\xe8\x25\xa3\x6d\x79\x84\x03\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 230240, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 230521, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-java/flyteidl/core/Security.java b/flyteidl/gen/pb-java/flyteidl/core/Security.java index 5a7b7c881d..b5f7de48f0 100644 --- a/flyteidl/gen/pb-java/flyteidl/core/Security.java +++ b/flyteidl/gen/pb-java/flyteidl/core/Security.java @@ -22,21 +22,43 @@ public interface SecretOrBuilder extends *
      * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
      * of the secret management system to require case sensitivity.
+     * +required
      * 
* - * string name = 1; + * string key = 1; */ - java.lang.String getName(); + java.lang.String getKey(); /** *
      * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
      * of the secret management system to require case sensitivity.
+     * +required
      * 
* - * string name = 1; + * string key = 1; */ com.google.protobuf.ByteString - getNameBytes(); + getKeyBytes(); + + /** + *
+     * The name of the secret group where to find the key referenced above.
+     * +optional
+     * 
+ * + * string group = 2; + */ + java.lang.String getGroup(); + /** + *
+     * The name of the secret group where to find the key referenced above.
+     * +optional
+     * 
+ * + * string group = 2; + */ + com.google.protobuf.ByteString + getGroupBytes(); /** *
@@ -46,7 +68,7 @@ public interface SecretOrBuilder extends
      * +optional
      * 
* - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ int getMountRequirementValue(); /** @@ -57,7 +79,7 @@ public interface SecretOrBuilder extends * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ flyteidl.core.Security.Secret.MountType getMountRequirement(); } @@ -82,7 +104,8 @@ private Secret(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Secret() { - name_ = ""; + key_ = ""; + group_ = ""; mountRequirement_ = 0; } @@ -113,10 +136,16 @@ private Secret( case 10: { java.lang.String s = input.readStringRequireUtf8(); - name_ = s; + key_ = s; break; } - case 16: { + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + group_ = s; + break; + } + case 24: { int rawValue = input.readEnum(); mountRequirement_ = rawValue; @@ -159,41 +188,57 @@ private Secret( */ public enum MountType implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+       * Default case, indicates the client can tolerate either mounting options.
+       * 
+ * + * ANY = 0; + */ + ANY(0), /** *
        * ENV_VAR indicates the secret needs to be mounted as an environment variable.
        * 
* - * ENV_VAR = 0; + * ENV_VAR = 1; */ - ENV_VAR(0), + ENV_VAR(1), /** *
        * FILE indicates the secret needs to be mounted as a file.
        * 
* - * FILE = 1; + * FILE = 2; */ - FILE(1), + FILE(2), UNRECOGNIZED(-1), ; + /** + *
+       * Default case, indicates the client can tolerate either mounting options.
+       * 
+ * + * ANY = 0; + */ + public static final int ANY_VALUE = 0; /** *
        * ENV_VAR indicates the secret needs to be mounted as an environment variable.
        * 
* - * ENV_VAR = 0; + * ENV_VAR = 1; */ - public static final int ENV_VAR_VALUE = 0; + public static final int ENV_VAR_VALUE = 1; /** *
        * FILE indicates the secret needs to be mounted as a file.
        * 
* - * FILE = 1; + * FILE = 2; */ - public static final int FILE_VALUE = 1; + public static final int FILE_VALUE = 2; public final int getNumber() { @@ -214,8 +259,9 @@ public static MountType valueOf(int value) { public static MountType forNumber(int value) { switch (value) { - case 0: return ENV_VAR; - case 1: return FILE; + case 0: return ANY; + case 1: return ENV_VAR; + case 2: return FILE; default: return null; } } @@ -268,25 +314,26 @@ private MountType(int value) { // @@protoc_insertion_point(enum_scope:flyteidl.core.Secret.MountType) } - public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; /** *
      * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
      * of the secret management system to require case sensitivity.
+     * +required
      * 
* - * string name = 1; + * string key = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - name_ = s; + key_ = s; return s; } } @@ -294,25 +341,70 @@ public java.lang.String getName() { *
      * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
      * of the secret management system to require case sensitivity.
+     * +required
      * 
* - * string name = 1; + * string key = 1; */ public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - name_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int MOUNT_REQUIREMENT_FIELD_NUMBER = 2; + public static final int GROUP_FIELD_NUMBER = 2; + private volatile java.lang.Object group_; + /** + *
+     * The name of the secret group where to find the key referenced above.
+     * +optional
+     * 
+ * + * string group = 2; + */ + public java.lang.String getGroup() { + java.lang.Object ref = group_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + group_ = s; + return s; + } + } + /** + *
+     * The name of the secret group where to find the key referenced above.
+     * +optional
+     * 
+ * + * string group = 2; + */ + public com.google.protobuf.ByteString + getGroupBytes() { + java.lang.Object ref = group_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + group_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MOUNT_REQUIREMENT_FIELD_NUMBER = 3; private int mountRequirement_; /** *
@@ -322,7 +414,7 @@ public java.lang.String getName() {
      * +optional
      * 
* - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public int getMountRequirementValue() { return mountRequirement_; @@ -335,7 +427,7 @@ public int getMountRequirementValue() { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public flyteidl.core.Security.Secret.MountType getMountRequirement() { @SuppressWarnings("deprecation") @@ -357,11 +449,14 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); + } + if (!getGroupBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, group_); } - if (mountRequirement_ != flyteidl.core.Security.Secret.MountType.ENV_VAR.getNumber()) { - output.writeEnum(2, mountRequirement_); + if (mountRequirement_ != flyteidl.core.Security.Secret.MountType.ANY.getNumber()) { + output.writeEnum(3, mountRequirement_); } unknownFields.writeTo(output); } @@ -372,12 +467,15 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); + } + if (!getGroupBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, group_); } - if (mountRequirement_ != flyteidl.core.Security.Secret.MountType.ENV_VAR.getNumber()) { + if (mountRequirement_ != flyteidl.core.Security.Secret.MountType.ANY.getNumber()) { size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, mountRequirement_); + .computeEnumSize(3, mountRequirement_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -394,8 +492,10 @@ public boolean equals(final java.lang.Object obj) { } flyteidl.core.Security.Secret other = (flyteidl.core.Security.Secret) obj; - if (!getName() - .equals(other.getName())) return false; + if (!getKey() + .equals(other.getKey())) return false; + if (!getGroup() + .equals(other.getGroup())) return false; if (mountRequirement_ != other.mountRequirement_) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; @@ -408,8 +508,10 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + GROUP_FIELD_NUMBER; + hash = (53 * hash) + getGroup().hashCode(); hash = (37 * hash) + MOUNT_REQUIREMENT_FIELD_NUMBER; hash = (53 * hash) + mountRequirement_; hash = (29 * hash) + unknownFields.hashCode(); @@ -553,7 +655,9 @@ private void maybeForceBuilderInitialization() { @java.lang.Override public Builder clear() { super.clear(); - name_ = ""; + key_ = ""; + + group_ = ""; mountRequirement_ = 0; @@ -583,7 +687,8 @@ public flyteidl.core.Security.Secret build() { @java.lang.Override public flyteidl.core.Security.Secret buildPartial() { flyteidl.core.Security.Secret result = new flyteidl.core.Security.Secret(this); - result.name_ = name_; + result.key_ = key_; + result.group_ = group_; result.mountRequirement_ = mountRequirement_; onBuilt(); return result; @@ -633,8 +738,12 @@ public Builder mergeFrom(com.google.protobuf.Message other) { public Builder mergeFrom(flyteidl.core.Security.Secret other) { if (other == flyteidl.core.Security.Secret.getDefaultInstance()) return this; - if (!other.getName().isEmpty()) { - name_ = other.name_; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); + } + if (!other.getGroup().isEmpty()) { + group_ = other.group_; onChanged(); } if (other.mountRequirement_ != 0) { @@ -669,22 +778,23 @@ public Builder mergeFrom( return this; } - private java.lang.Object name_ = ""; + private java.lang.Object key_ = ""; /** *
        * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
        * of the secret management system to require case sensitivity.
+       * +required
        * 
* - * string name = 1; + * string key = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - name_ = s; + key_ = s; return s; } else { return (java.lang.String) ref; @@ -694,18 +804,19 @@ public java.lang.String getName() { *
        * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
        * of the secret management system to require case sensitivity.
+       * +required
        * 
* - * string name = 1; + * string key = 1; */ public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - name_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -715,17 +826,18 @@ public java.lang.String getName() { *
        * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
        * of the secret management system to require case sensitivity.
+       * +required
        * 
* - * string name = 1; + * string key = 1; */ - public Builder setName( + public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - name_ = value; + key_ = value; onChanged(); return this; } @@ -733,13 +845,14 @@ public Builder setName( *
        * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
        * of the secret management system to require case sensitivity.
+       * +required
        * 
* - * string name = 1; + * string key = 1; */ - public Builder clearName() { + public Builder clearKey() { - name_ = getDefaultInstance().getName(); + key_ = getDefaultInstance().getKey(); onChanged(); return this; } @@ -747,18 +860,113 @@ public Builder clearName() { *
        * The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation
        * of the secret management system to require case sensitivity.
+       * +required
        * 
* - * string name = 1; + * string key = 1; */ - public Builder setNameBytes( + public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - name_ = value; + key_ = value; + onChanged(); + return this; + } + + private java.lang.Object group_ = ""; + /** + *
+       * The name of the secret group where to find the key referenced above.
+       * +optional
+       * 
+ * + * string group = 2; + */ + public java.lang.String getGroup() { + java.lang.Object ref = group_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + group_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * The name of the secret group where to find the key referenced above.
+       * +optional
+       * 
+ * + * string group = 2; + */ + public com.google.protobuf.ByteString + getGroupBytes() { + java.lang.Object ref = group_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + group_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * The name of the secret group where to find the key referenced above.
+       * +optional
+       * 
+ * + * string group = 2; + */ + public Builder setGroup( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + group_ = value; + onChanged(); + return this; + } + /** + *
+       * The name of the secret group where to find the key referenced above.
+       * +optional
+       * 
+ * + * string group = 2; + */ + public Builder clearGroup() { + + group_ = getDefaultInstance().getGroup(); + onChanged(); + return this; + } + /** + *
+       * The name of the secret group where to find the key referenced above.
+       * +optional
+       * 
+ * + * string group = 2; + */ + public Builder setGroupBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + group_ = value; onChanged(); return this; } @@ -772,7 +980,7 @@ public Builder setNameBytes( * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public int getMountRequirementValue() { return mountRequirement_; @@ -785,7 +993,7 @@ public int getMountRequirementValue() { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public Builder setMountRequirementValue(int value) { mountRequirement_ = value; @@ -800,7 +1008,7 @@ public Builder setMountRequirementValue(int value) { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public flyteidl.core.Security.Secret.MountType getMountRequirement() { @SuppressWarnings("deprecation") @@ -815,7 +1023,7 @@ public flyteidl.core.Security.Secret.MountType getMountRequirement() { * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public Builder setMountRequirement(flyteidl.core.Security.Secret.MountType value) { if (value == null) { @@ -834,7 +1042,7 @@ public Builder setMountRequirement(flyteidl.core.Security.Secret.MountType value * +optional * * - * .flyteidl.core.Secret.MountType mount_requirement = 2; + * .flyteidl.core.Secret.MountType mount_requirement = 3; */ public Builder clearMountRequirement() { @@ -903,6 +1111,7 @@ public interface OAuth2ClientOrBuilder extends *
      * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
      * secret requested matches the client_id indicated here.
+     * +required
      * 
* * string client_id = 1; @@ -912,6 +1121,7 @@ public interface OAuth2ClientOrBuilder extends *
      * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
      * secret requested matches the client_id indicated here.
+     * +required
      * 
* * string client_id = 1; @@ -922,6 +1132,7 @@ public interface OAuth2ClientOrBuilder extends /** *
      * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+     * +required
      * 
* * .flyteidl.core.Secret client_secret = 2; @@ -930,6 +1141,7 @@ public interface OAuth2ClientOrBuilder extends /** *
      * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+     * +required
      * 
* * .flyteidl.core.Secret client_secret = 2; @@ -938,6 +1150,7 @@ public interface OAuth2ClientOrBuilder extends /** *
      * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+     * +required
      * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1045,6 +1258,7 @@ private OAuth2Client( *
      * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
      * secret requested matches the client_id indicated here.
+     * +required
      * 
* * string client_id = 1; @@ -1065,6 +1279,7 @@ public java.lang.String getClientId() { *
      * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
      * secret requested matches the client_id indicated here.
+     * +required
      * 
* * string client_id = 1; @@ -1088,6 +1303,7 @@ public java.lang.String getClientId() { /** *
      * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+     * +required
      * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1098,6 +1314,7 @@ public boolean hasClientSecret() { /** *
      * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+     * +required
      * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1108,6 +1325,7 @@ public flyteidl.core.Security.Secret getClientSecret() { /** *
      * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+     * +required
      * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1457,6 +1675,7 @@ public Builder mergeFrom( *
        * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
        * secret requested matches the client_id indicated here.
+       * +required
        * 
* * string client_id = 1; @@ -1477,6 +1696,7 @@ public java.lang.String getClientId() { *
        * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
        * secret requested matches the client_id indicated here.
+       * +required
        * 
* * string client_id = 1; @@ -1498,6 +1718,7 @@ public java.lang.String getClientId() { *
        * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
        * secret requested matches the client_id indicated here.
+       * +required
        * 
* * string client_id = 1; @@ -1516,6 +1737,7 @@ public Builder setClientId( *
        * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
        * secret requested matches the client_id indicated here.
+       * +required
        * 
* * string client_id = 1; @@ -1530,6 +1752,7 @@ public Builder clearClientId() { *
        * client_id is the public id for the client to use. The system will not perform any pre-auth validation that the
        * secret requested matches the client_id indicated here.
+       * +required
        * 
* * string client_id = 1; @@ -1552,6 +1775,7 @@ public Builder setClientIdBytes( /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1562,6 +1786,7 @@ public boolean hasClientSecret() { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1576,6 +1801,7 @@ public flyteidl.core.Security.Secret getClientSecret() { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1596,6 +1822,7 @@ public Builder setClientSecret(flyteidl.core.Security.Secret value) { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1614,6 +1841,7 @@ public Builder setClientSecret( /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1636,6 +1864,7 @@ public Builder mergeClientSecret(flyteidl.core.Security.Secret value) { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1654,6 +1883,7 @@ public Builder clearClientSecret() { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1666,6 +1896,7 @@ public flyteidl.core.Security.Secret.Builder getClientSecretBuilder() { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -1681,6 +1912,7 @@ public flyteidl.core.Security.SecretOrBuilder getClientSecretOrBuilder() { /** *
        * client_secret is a reference to the secret used to authenticate the OAuth2 client.
+       * +required
        * 
* * .flyteidl.core.Secret client_secret = 2; @@ -2796,6 +3028,7 @@ public interface OAuth2TokenRequestOrBuilder extends *
      * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
      * environment variables and as a filename for mounting tokens as files.
+     * +required
      * 
* * string name = 1; @@ -2805,6 +3038,7 @@ public interface OAuth2TokenRequestOrBuilder extends *
      * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
      * environment variables and as a filename for mounting tokens as files.
+     * +required
      * 
* * string name = 1; @@ -2815,6 +3049,7 @@ public interface OAuth2TokenRequestOrBuilder extends /** *
      * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+     * +required
      * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -2823,6 +3058,7 @@ public interface OAuth2TokenRequestOrBuilder extends /** *
      * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+     * +required
      * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -2832,6 +3068,7 @@ public interface OAuth2TokenRequestOrBuilder extends /** *
      * client references the client_id/secret to use to request the OAuth2 token.
+     * +required
      * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -2840,6 +3077,7 @@ public interface OAuth2TokenRequestOrBuilder extends /** *
      * client references the client_id/secret to use to request the OAuth2 token.
+     * +required
      * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -2848,6 +3086,7 @@ public interface OAuth2TokenRequestOrBuilder extends /** *
      * client references the client_id/secret to use to request the OAuth2 token.
+     * +required
      * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3125,6 +3364,7 @@ private Type(int value) { *
      * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
      * environment variables and as a filename for mounting tokens as files.
+     * +required
      * 
* * string name = 1; @@ -3145,6 +3385,7 @@ public java.lang.String getName() { *
      * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
      * environment variables and as a filename for mounting tokens as files.
+     * +required
      * 
* * string name = 1; @@ -3168,6 +3409,7 @@ public java.lang.String getName() { /** *
      * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+     * +required
      * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3178,6 +3420,7 @@ public int getTypeValue() { /** *
      * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+     * +required
      * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3193,6 +3436,7 @@ public flyteidl.core.Security.OAuth2TokenRequest.Type getType() { /** *
      * client references the client_id/secret to use to request the OAuth2 token.
+     * +required
      * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3203,6 +3447,7 @@ public boolean hasClient() { /** *
      * client references the client_id/secret to use to request the OAuth2 token.
+     * +required
      * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3213,6 +3458,7 @@ public flyteidl.core.Security.OAuth2Client getClient() { /** *
      * client references the client_id/secret to use to request the OAuth2 token.
+     * +required
      * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3708,6 +3954,7 @@ public Builder mergeFrom( *
        * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
        * environment variables and as a filename for mounting tokens as files.
+       * +required
        * 
* * string name = 1; @@ -3728,6 +3975,7 @@ public java.lang.String getName() { *
        * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
        * environment variables and as a filename for mounting tokens as files.
+       * +required
        * 
* * string name = 1; @@ -3749,6 +3997,7 @@ public java.lang.String getName() { *
        * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
        * environment variables and as a filename for mounting tokens as files.
+       * +required
        * 
* * string name = 1; @@ -3767,6 +4016,7 @@ public Builder setName( *
        * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
        * environment variables and as a filename for mounting tokens as files.
+       * +required
        * 
* * string name = 1; @@ -3781,6 +4031,7 @@ public Builder clearName() { *
        * name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for
        * environment variables and as a filename for mounting tokens as files.
+       * +required
        * 
* * string name = 1; @@ -3801,6 +4052,7 @@ public Builder setNameBytes( /** *
        * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+       * +required
        * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3811,6 +4063,7 @@ public int getTypeValue() { /** *
        * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+       * +required
        * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3823,6 +4076,7 @@ public Builder setTypeValue(int value) { /** *
        * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+       * +required
        * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3835,6 +4089,7 @@ public flyteidl.core.Security.OAuth2TokenRequest.Type getType() { /** *
        * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+       * +required
        * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3851,6 +4106,7 @@ public Builder setType(flyteidl.core.Security.OAuth2TokenRequest.Type value) { /** *
        * type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS.
+       * +required
        * 
* * .flyteidl.core.OAuth2TokenRequest.Type type = 2; @@ -3868,6 +4124,7 @@ public Builder clearType() { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3878,6 +4135,7 @@ public boolean hasClient() { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3892,6 +4150,7 @@ public flyteidl.core.Security.OAuth2Client getClient() { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3912,6 +4171,7 @@ public Builder setClient(flyteidl.core.Security.OAuth2Client value) { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3930,6 +4190,7 @@ public Builder setClient( /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3952,6 +4213,7 @@ public Builder mergeClient(flyteidl.core.Security.OAuth2Client value) { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3970,6 +4232,7 @@ public Builder clearClient() { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3982,6 +4245,7 @@ public flyteidl.core.Security.OAuth2Client.Builder getClientBuilder() { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -3997,6 +4261,7 @@ public flyteidl.core.Security.OAuth2ClientOrBuilder getClientOrBuilder() { /** *
        * client references the client_id/secret to use to request the OAuth2 token.
+       * +required
        * 
* * .flyteidl.core.OAuth2Client client = 3; @@ -6120,25 +6385,26 @@ public flyteidl.core.Security.SecurityContext getDefaultInstanceForType() { static { java.lang.String[] descriptorData = { "\n\034flyteidl/core/security.proto\022\rflyteidl" + - ".core\"v\n\006Secret\022\014\n\004name\030\001 \001(\t\022:\n\021mount_r" + - "equirement\030\002 \001(\0162\037.flyteidl.core.Secret." + - "MountType\"\"\n\tMountType\022\013\n\007ENV_VAR\020\000\022\010\n\004F" + - "ILE\020\001\"O\n\014OAuth2Client\022\021\n\tclient_id\030\001 \001(\t" + - "\022,\n\rclient_secret\030\002 \001(\0132\025.flyteidl.core." + - "Secret\"m\n\010Identity\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023" + - "k8s_service_account\030\002 \001(\t\0222\n\roauth2_clie" + - "nt\030\003 \001(\0132\033.flyteidl.core.OAuth2Client\"\335\001" + - "\n\022OAuth2TokenRequest\022\014\n\004name\030\001 \001(\t\0224\n\004ty" + - "pe\030\002 \001(\0162&.flyteidl.core.OAuth2TokenRequ" + - "est.Type\022+\n\006client\030\003 \001(\0132\033.flyteidl.core" + - ".OAuth2Client\022\036\n\026idp_discovery_endpoint\030" + - "\004 \001(\t\022\026\n\016token_endpoint\030\005 \001(\t\"\036\n\004Type\022\026\n" + - "\022CLIENT_CREDENTIALS\020\000\"\225\001\n\017SecurityContex" + - "t\022\'\n\006run_as\030\001 \001(\0132\027.flyteidl.core.Identi" + - "ty\022&\n\007secrets\030\002 \003(\0132\025.flyteidl.core.Secr" + - "et\0221\n\006tokens\030\003 \003(\0132!.flyteidl.core.OAuth" + - "2TokenRequestB6Z4github.com/flyteorg/fly" + - "teidl/gen/pb-go/flyteidl/coreb\006proto3" + ".core\"\215\001\n\006Secret\022\013\n\003key\030\001 \001(\t\022\r\n\005group\030\002" + + " \001(\t\022:\n\021mount_requirement\030\003 \001(\0162\037.flytei" + + "dl.core.Secret.MountType\"+\n\tMountType\022\007\n" + + "\003ANY\020\000\022\013\n\007ENV_VAR\020\001\022\010\n\004FILE\020\002\"O\n\014OAuth2C" + + "lient\022\021\n\tclient_id\030\001 \001(\t\022,\n\rclient_secre" + + "t\030\002 \001(\0132\025.flyteidl.core.Secret\"m\n\010Identi" + + "ty\022\020\n\010iam_role\030\001 \001(\t\022\033\n\023k8s_service_acco" + + "unt\030\002 \001(\t\0222\n\roauth2_client\030\003 \001(\0132\033.flyte" + + "idl.core.OAuth2Client\"\335\001\n\022OAuth2TokenReq" + + "uest\022\014\n\004name\030\001 \001(\t\0224\n\004type\030\002 \001(\0162&.flyte" + + "idl.core.OAuth2TokenRequest.Type\022+\n\006clie" + + "nt\030\003 \001(\0132\033.flyteidl.core.OAuth2Client\022\036\n" + + "\026idp_discovery_endpoint\030\004 \001(\t\022\026\n\016token_e" + + "ndpoint\030\005 \001(\t\"\036\n\004Type\022\026\n\022CLIENT_CREDENTI" + + "ALS\020\000\"\225\001\n\017SecurityContext\022\'\n\006run_as\030\001 \001(" + + "\0132\027.flyteidl.core.Identity\022&\n\007secrets\030\002 " + + "\003(\0132\025.flyteidl.core.Secret\0221\n\006tokens\030\003 \003" + + "(\0132!.flyteidl.core.OAuth2TokenRequestB6Z" + + "4github.com/flyteorg/flyteidl/gen/pb-go/" + + "flyteidl/coreb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -6157,7 +6423,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_core_Secret_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_core_Secret_descriptor, - new java.lang.String[] { "Name", "MountRequirement", }); + new java.lang.String[] { "Key", "Group", "MountRequirement", }); internal_static_flyteidl_core_OAuth2Client_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_core_OAuth2Client_fieldAccessorTable = new diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 68c1ff2989..fa49941ff9 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -4537,8 +4537,11 @@ export namespace flyteidl { /** Properties of a Secret. */ interface ISecret { - /** Secret name */ - name?: (string|null); + /** Secret key */ + key?: (string|null); + + /** Secret group */ + group?: (string|null); /** Secret mountRequirement */ mountRequirement?: (flyteidl.core.Secret.MountType|null); @@ -4553,8 +4556,11 @@ export namespace flyteidl { */ constructor(properties?: flyteidl.core.ISecret); - /** Secret name. */ - public name: string; + /** Secret key. */ + public key: string; + + /** Secret group. */ + public group: string; /** Secret mountRequirement. */ public mountRequirement: flyteidl.core.Secret.MountType; @@ -4596,8 +4602,9 @@ export namespace flyteidl { /** MountType enum. */ enum MountType { - ENV_VAR = 0, - FILE = 1 + ANY = 0, + ENV_VAR = 1, + FILE = 2 } } diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index d88624cc39..8de9ba0c3b 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -10893,7 +10893,8 @@ export const flyteidl = $root.flyteidl = (() => { * Properties of a Secret. * @memberof flyteidl.core * @interface ISecret - * @property {string|null} [name] Secret name + * @property {string|null} [key] Secret key + * @property {string|null} [group] Secret group * @property {flyteidl.core.Secret.MountType|null} [mountRequirement] Secret mountRequirement */ @@ -10913,12 +10914,20 @@ export const flyteidl = $root.flyteidl = (() => { } /** - * Secret name. - * @member {string} name + * Secret key. + * @member {string} key * @memberof flyteidl.core.Secret * @instance */ - Secret.prototype.name = ""; + Secret.prototype.key = ""; + + /** + * Secret group. + * @member {string} group + * @memberof flyteidl.core.Secret + * @instance + */ + Secret.prototype.group = ""; /** * Secret mountRequirement. @@ -10952,10 +10961,12 @@ export const flyteidl = $root.flyteidl = (() => { Secret.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.key != null && message.hasOwnProperty("key")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.key); + if (message.group != null && message.hasOwnProperty("group")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.group); if (message.mountRequirement != null && message.hasOwnProperty("mountRequirement")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.mountRequirement); + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.mountRequirement); return writer; }; @@ -10978,9 +10989,12 @@ export const flyteidl = $root.flyteidl = (() => { let tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.key = reader.string(); break; case 2: + message.group = reader.string(); + break; + case 3: message.mountRequirement = reader.int32(); break; default: @@ -11002,15 +11016,19 @@ export const flyteidl = $root.flyteidl = (() => { Secret.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.group != null && message.hasOwnProperty("group")) + if (!$util.isString(message.group)) + return "group: string expected"; if (message.mountRequirement != null && message.hasOwnProperty("mountRequirement")) switch (message.mountRequirement) { default: return "mountRequirement: enum value expected"; case 0: case 1: + case 2: break; } return null; @@ -11020,13 +11038,15 @@ export const flyteidl = $root.flyteidl = (() => { * MountType enum. * @name flyteidl.core.Secret.MountType * @enum {string} - * @property {number} ENV_VAR=0 ENV_VAR value - * @property {number} FILE=1 FILE value + * @property {number} ANY=0 ANY value + * @property {number} ENV_VAR=1 ENV_VAR value + * @property {number} FILE=2 FILE value */ Secret.MountType = (function() { const valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "ENV_VAR"] = 0; - values[valuesById[1] = "FILE"] = 1; + values[valuesById[0] = "ANY"] = 0; + values[valuesById[1] = "ENV_VAR"] = 1; + values[valuesById[2] = "FILE"] = 2; return values; })(); diff --git a/flyteidl/gen/pb-protodoc/flyteidl/core/security.proto.rst b/flyteidl/gen/pb-protodoc/flyteidl/core/security.proto.rst index 6471886592..4fbd5a4eff 100644 --- a/flyteidl/gen/pb-protodoc/flyteidl/core/security.proto.rst +++ b/flyteidl/gen/pb-protodoc/flyteidl/core/security.proto.rst @@ -19,15 +19,24 @@ are passed through file mounts. .. code-block:: json { - "name": "...", + "key": "...", + "group": "...", "mount_requirement": "..." } -.. _api_field_flyteidl.core.Secret.name: +.. _api_field_flyteidl.core.Secret.key: -name +key (`string `_) The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation of the secret management system to require case sensitivity. + +required + + +.. _api_field_flyteidl.core.Secret.group: + +group + (`string `_) The name of the secret group where to find the key referenced above. + +optional .. _api_field_flyteidl.core.Secret.mount_requirement: @@ -48,10 +57,16 @@ Enum flyteidl.core.Secret.MountType `[flyteidl.core.Secret.MountType proto] `_ +.. _api_enum_value_flyteidl.core.Secret.MountType.ANY: + +ANY + *(DEFAULT)* ⁣Default case, indicates the client can tolerate either mounting options. + + .. _api_enum_value_flyteidl.core.Secret.MountType.ENV_VAR: ENV_VAR - *(DEFAULT)* ⁣ENV_VAR indicates the secret needs to be mounted as an environment variable. + ⁣ENV_VAR indicates the secret needs to be mounted as an environment variable. .. _api_enum_value_flyteidl.core.Secret.MountType.FILE: @@ -66,7 +81,7 @@ FILE flyteidl.core.OAuth2Client -------------------------- -`[flyteidl.core.OAuth2Client proto] `_ +`[flyteidl.core.OAuth2Client proto] `_ OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task. @@ -82,12 +97,14 @@ OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls client_id (`string `_) client_id is the public id for the client to use. The system will not perform any pre-auth validation that the secret requested matches the client_id indicated here. + +required .. _api_field_flyteidl.core.OAuth2Client.client_secret: client_secret (:ref:`flyteidl.core.Secret `) client_secret is a reference to the secret used to authenticate the OAuth2 client. + +required @@ -97,7 +114,7 @@ client_secret flyteidl.core.Identity ---------------------- -`[flyteidl.core.Identity proto] `_ +`[flyteidl.core.Identity proto] `_ Identity encapsulates the various security identities a task can run as. It's up to the underlying plugin to pick the right identity for the execution environment. @@ -136,7 +153,7 @@ oauth2_client flyteidl.core.OAuth2TokenRequest -------------------------------- -`[flyteidl.core.OAuth2TokenRequest proto] `_ +`[flyteidl.core.OAuth2TokenRequest proto] `_ OAuth2TokenRequest encapsulates information needed to request an OAuth2 token. FLYTE_TOKENS_ENV_PREFIX will be passed to indicate the prefix of the environment variables that will be present if @@ -159,18 +176,21 @@ are passed through file mounts. name (`string `_) name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for environment variables and as a filename for mounting tokens as files. + +required .. _api_field_flyteidl.core.OAuth2TokenRequest.type: type (:ref:`flyteidl.core.OAuth2TokenRequest.Type `) type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS. + +required .. _api_field_flyteidl.core.OAuth2TokenRequest.client: client (:ref:`flyteidl.core.OAuth2Client `) client references the client_id/secret to use to request the OAuth2 token. + +required .. _api_field_flyteidl.core.OAuth2TokenRequest.idp_discovery_endpoint: @@ -195,7 +215,7 @@ token_endpoint Enum flyteidl.core.OAuth2TokenRequest.Type ------------------------------------------ -`[flyteidl.core.OAuth2TokenRequest.Type proto] `_ +`[flyteidl.core.OAuth2TokenRequest.Type proto] `_ Type of the token requested. @@ -211,7 +231,7 @@ CLIENT_CREDENTIALS flyteidl.core.SecurityContext ----------------------------- -`[flyteidl.core.SecurityContext proto] `_ +`[flyteidl.core.SecurityContext proto] `_ SecurityContext holds security attributes that apply to tasks. diff --git a/flyteidl/gen/pb_python/flyteidl/core/security_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/security_pb2.py index f4b9a90c6a..efeb809c35 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/security_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/security_pb2.py @@ -20,7 +20,7 @@ package='flyteidl.core', syntax='proto3', serialized_options=_b('Z4github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/core'), - serialized_pb=_b('\n\x1c\x66lyteidl/core/security.proto\x12\rflyteidl.core\"v\n\x06Secret\x12\x0c\n\x04name\x18\x01 \x01(\t\x12:\n\x11mount_requirement\x18\x02 \x01(\x0e\x32\x1f.flyteidl.core.Secret.MountType\"\"\n\tMountType\x12\x0b\n\x07\x45NV_VAR\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\"O\n\x0cOAuth2Client\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12,\n\rclient_secret\x18\x02 \x01(\x0b\x32\x15.flyteidl.core.Secret\"m\n\x08Identity\x12\x10\n\x08iam_role\x18\x01 \x01(\t\x12\x1b\n\x13k8s_service_account\x18\x02 \x01(\t\x12\x32\n\roauth2_client\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2Client\"\xdd\x01\n\x12OAuth2TokenRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x04type\x18\x02 \x01(\x0e\x32&.flyteidl.core.OAuth2TokenRequest.Type\x12+\n\x06\x63lient\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2Client\x12\x1e\n\x16idp_discovery_endpoint\x18\x04 \x01(\t\x12\x16\n\x0etoken_endpoint\x18\x05 \x01(\t\"\x1e\n\x04Type\x12\x16\n\x12\x43LIENT_CREDENTIALS\x10\x00\"\x95\x01\n\x0fSecurityContext\x12\'\n\x06run_as\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.Identity\x12&\n\x07secrets\x18\x02 \x03(\x0b\x32\x15.flyteidl.core.Secret\x12\x31\n\x06tokens\x18\x03 \x03(\x0b\x32!.flyteidl.core.OAuth2TokenRequestB6Z4github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/coreb\x06proto3') + serialized_pb=_b('\n\x1c\x66lyteidl/core/security.proto\x12\rflyteidl.core\"\x8d\x01\n\x06Secret\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05group\x18\x02 \x01(\t\x12:\n\x11mount_requirement\x18\x03 \x01(\x0e\x32\x1f.flyteidl.core.Secret.MountType\"+\n\tMountType\x12\x07\n\x03\x41NY\x10\x00\x12\x0b\n\x07\x45NV_VAR\x10\x01\x12\x08\n\x04\x46ILE\x10\x02\"O\n\x0cOAuth2Client\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12,\n\rclient_secret\x18\x02 \x01(\x0b\x32\x15.flyteidl.core.Secret\"m\n\x08Identity\x12\x10\n\x08iam_role\x18\x01 \x01(\t\x12\x1b\n\x13k8s_service_account\x18\x02 \x01(\t\x12\x32\n\roauth2_client\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2Client\"\xdd\x01\n\x12OAuth2TokenRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x04type\x18\x02 \x01(\x0e\x32&.flyteidl.core.OAuth2TokenRequest.Type\x12+\n\x06\x63lient\x18\x03 \x01(\x0b\x32\x1b.flyteidl.core.OAuth2Client\x12\x1e\n\x16idp_discovery_endpoint\x18\x04 \x01(\t\x12\x16\n\x0etoken_endpoint\x18\x05 \x01(\t\"\x1e\n\x04Type\x12\x16\n\x12\x43LIENT_CREDENTIALS\x10\x00\"\x95\x01\n\x0fSecurityContext\x12\'\n\x06run_as\x18\x01 \x01(\x0b\x32\x17.flyteidl.core.Identity\x12&\n\x07secrets\x18\x02 \x03(\x0b\x32\x15.flyteidl.core.Secret\x12\x31\n\x06tokens\x18\x03 \x03(\x0b\x32!.flyteidl.core.OAuth2TokenRequestB6Z4github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/coreb\x06proto3') ) @@ -32,18 +32,22 @@ file=DESCRIPTOR, values=[ _descriptor.EnumValueDescriptor( - name='ENV_VAR', index=0, number=0, + name='ANY', index=0, number=0, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='FILE', index=1, number=1, + name='ENV_VAR', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FILE', index=2, number=2, serialized_options=None, type=None), ], containing_type=None, serialized_options=None, - serialized_start=131, - serialized_end=165, + serialized_start=146, + serialized_end=189, ) _sym_db.RegisterEnumDescriptor(_SECRET_MOUNTTYPE) @@ -60,8 +64,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=551, - serialized_end=581, + serialized_start=575, + serialized_end=605, ) _sym_db.RegisterEnumDescriptor(_OAUTH2TOKENREQUEST_TYPE) @@ -74,15 +78,22 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='name', full_name='flyteidl.core.Secret.name', index=0, + name='key', full_name='flyteidl.core.Secret.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='mount_requirement', full_name='flyteidl.core.Secret.mount_requirement', index=1, - number=2, type=14, cpp_type=8, label=1, + name='group', full_name='flyteidl.core.Secret.group', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mount_requirement', full_name='flyteidl.core.Secret.mount_requirement', index=2, + number=3, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -100,8 +111,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=47, - serialized_end=165, + serialized_start=48, + serialized_end=189, ) @@ -138,8 +149,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=167, - serialized_end=246, + serialized_start=191, + serialized_end=270, ) @@ -183,8 +194,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=248, - serialized_end=357, + serialized_start=272, + serialized_end=381, ) @@ -243,8 +254,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=360, - serialized_end=581, + serialized_start=384, + serialized_end=605, ) @@ -288,8 +299,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=584, - serialized_end=733, + serialized_start=608, + serialized_end=757, ) _SECRET.fields_by_name['mount_requirement'].enum_type = _SECRET_MOUNTTYPE diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_client.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_client.py index 2eb3aca2cd..520dfdee32 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_client.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_client.py @@ -58,7 +58,6 @@ def __init__(self, client_id=None, client_secret=None): # noqa: E501 def client_id(self): """Gets the client_id of this CoreOAuth2Client. # noqa: E501 - client_id is the public id for the client to use. The system will not perform any pre-auth validation that the secret requested matches the client_id indicated here. # noqa: E501 :return: The client_id of this CoreOAuth2Client. # noqa: E501 :rtype: str @@ -69,7 +68,6 @@ def client_id(self): def client_id(self, client_id): """Sets the client_id of this CoreOAuth2Client. - client_id is the public id for the client to use. The system will not perform any pre-auth validation that the secret requested matches the client_id indicated here. # noqa: E501 :param client_id: The client_id of this CoreOAuth2Client. # noqa: E501 :type: str @@ -81,7 +79,6 @@ def client_id(self, client_id): def client_secret(self): """Gets the client_secret of this CoreOAuth2Client. # noqa: E501 - client_secret is a reference to the secret used to authenticate the OAuth2 client. # noqa: E501 :return: The client_secret of this CoreOAuth2Client. # noqa: E501 :rtype: CoreSecret @@ -92,7 +89,6 @@ def client_secret(self): def client_secret(self, client_secret): """Sets the client_secret of this CoreOAuth2Client. - client_secret is a reference to the secret used to authenticate the OAuth2 client. # noqa: E501 :param client_secret: The client_secret of this CoreOAuth2Client. # noqa: E501 :type: CoreSecret diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_token_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_token_request.py index a3cb6b159e..22ea5676cf 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_token_request.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_o_auth2_token_request.py @@ -74,7 +74,6 @@ def __init__(self, name=None, type=None, client=None, idp_discovery_endpoint=Non def name(self): """Gets the name of this CoreOAuth2TokenRequest. # noqa: E501 - name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for environment variables and as a filename for mounting tokens as files. # noqa: E501 :return: The name of this CoreOAuth2TokenRequest. # noqa: E501 :rtype: str @@ -85,7 +84,6 @@ def name(self): def name(self, name): """Sets the name of this CoreOAuth2TokenRequest. - name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for environment variables and as a filename for mounting tokens as files. # noqa: E501 :param name: The name of this CoreOAuth2TokenRequest. # noqa: E501 :type: str @@ -97,7 +95,6 @@ def name(self, name): def type(self): """Gets the type of this CoreOAuth2TokenRequest. # noqa: E501 - type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS. # noqa: E501 :return: The type of this CoreOAuth2TokenRequest. # noqa: E501 :rtype: CoreOAuth2TokenRequestType @@ -108,7 +105,6 @@ def type(self): def type(self, type): """Sets the type of this CoreOAuth2TokenRequest. - type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS. # noqa: E501 :param type: The type of this CoreOAuth2TokenRequest. # noqa: E501 :type: CoreOAuth2TokenRequestType @@ -120,7 +116,6 @@ def type(self, type): def client(self): """Gets the client of this CoreOAuth2TokenRequest. # noqa: E501 - client references the client_id/secret to use to request the OAuth2 token. # noqa: E501 :return: The client of this CoreOAuth2TokenRequest. # noqa: E501 :rtype: CoreOAuth2Client @@ -131,7 +126,6 @@ def client(self): def client(self, client): """Sets the client of this CoreOAuth2TokenRequest. - client references the client_id/secret to use to request the OAuth2 token. # noqa: E501 :param client: The client of this CoreOAuth2TokenRequest. # noqa: E501 :type: CoreOAuth2Client diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py index 5765e9322f..3ab6c2d552 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_secret.py @@ -33,49 +33,73 @@ class CoreSecret(object): and the value is json key in definition. """ swagger_types = { - 'name': 'str', + 'key': 'str', + 'group': 'str', 'mount_requirement': 'SecretMountType' } attribute_map = { - 'name': 'name', + 'key': 'key', + 'group': 'group', 'mount_requirement': 'mount_requirement' } - def __init__(self, name=None, mount_requirement=None): # noqa: E501 + def __init__(self, key=None, group=None, mount_requirement=None): # noqa: E501 """CoreSecret - a model defined in Swagger""" # noqa: E501 - self._name = None + self._key = None + self._group = None self._mount_requirement = None self.discriminator = None - if name is not None: - self.name = name + if key is not None: + self.key = key + if group is not None: + self.group = group if mount_requirement is not None: self.mount_requirement = mount_requirement @property - def name(self): - """Gets the name of this CoreSecret. # noqa: E501 + def key(self): + """Gets the key of this CoreSecret. # noqa: E501 - The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation of the secret management system to require case sensitivity. # noqa: E501 - :return: The name of this CoreSecret. # noqa: E501 + :return: The key of this CoreSecret. # noqa: E501 :rtype: str """ - return self._name + return self._key - @name.setter - def name(self, name): - """Sets the name of this CoreSecret. + @key.setter + def key(self, key): + """Sets the key of this CoreSecret. - The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation of the secret management system to require case sensitivity. # noqa: E501 - :param name: The name of this CoreSecret. # noqa: E501 + :param key: The key of this CoreSecret. # noqa: E501 :type: str """ - self._name = name + self._key = key + + @property + def group(self): + """Gets the group of this CoreSecret. # noqa: E501 + + + :return: The group of this CoreSecret. # noqa: E501 + :rtype: str + """ + return self._group + + @group.setter + def group(self, group): + """Sets the group of this CoreSecret. + + + :param group: The group of this CoreSecret. # noqa: E501 + :type: str + """ + + self._group = group @property def mount_requirement(self): diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_type.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_type.py index 8ee028b194..2331d3ba26 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_type.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/secret_mount_type.py @@ -26,6 +26,7 @@ class SecretMountType(object): """ allowed enum values """ + ANY = "ANY" ENV_VAR = "ENV_VAR" FILE = "FILE" diff --git a/flyteidl/package.json b/flyteidl/package.json index 0791d768c4..b9ecd74306 100644 --- a/flyteidl/package.json +++ b/flyteidl/package.json @@ -1,6 +1,6 @@ { "name": "@flyteorg/flyteidl", - "version": "0.18.17", + "version": "0.18.18", "description": "Compiled protocol buffers and gRPC service clients/servers for Flyte IDLs", "repository": { "type": "git", diff --git a/flyteidl/protos/flyteidl/core/security.proto b/flyteidl/protos/flyteidl/core/security.proto index 1f2aa95580..d307093354 100644 --- a/flyteidl/protos/flyteidl/core/security.proto +++ b/flyteidl/protos/flyteidl/core/security.proto @@ -11,31 +11,41 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/core"; // are passed through file mounts. message Secret { enum MountType { + // Default case, indicates the client can tolerate either mounting options. + ANY = 0; + // ENV_VAR indicates the secret needs to be mounted as an environment variable. - ENV_VAR = 0; + ENV_VAR = 1; // FILE indicates the secret needs to be mounted as a file. - FILE = 1; + FILE = 2; } // The name of the secret to mount. This has to match an existing secret in the system. It's up to the implementation // of the secret management system to require case sensitivity. - string name = 1; + // +required + string key = 1; + + // The name of the secret group where to find the key referenced above. + // +optional + string group = 2; // mount_requirement is optional. Indicates where the secret has to be mounted. If provided, the execution will fail // if the underlying key management system cannot satisfy that requirement. If not provided, the default location // will depend on the key management system. // +optional - MountType mount_requirement = 2; + MountType mount_requirement = 3; } // OAuth2Client encapsulates OAuth2 Client Credentials to be used when making calls on behalf of that task. message OAuth2Client { // client_id is the public id for the client to use. The system will not perform any pre-auth validation that the // secret requested matches the client_id indicated here. + // +required string client_id = 1; // client_secret is a reference to the secret used to authenticate the OAuth2 client. + // +required Secret client_secret = 2; } @@ -67,12 +77,15 @@ message OAuth2TokenRequest { // name indicates a unique id for the token request within this task token requests. It'll be used as a suffix for // environment variables and as a filename for mounting tokens as files. + // +required string name = 1; // type indicates the type of the request to make. Defaults to CLIENT_CREDENTIALS. + // +required Type type = 2; // client references the client_id/secret to use to request the OAuth2 token. + // +required OAuth2Client client = 3; // idp_discovery_endpoint references the discovery endpoint used to retrieve token endpoint and other related diff --git a/flyteidl/setup.py b/flyteidl/setup.py index 8bd96808f5..83cf67e168 100644 --- a/flyteidl/setup.py +++ b/flyteidl/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -__version__ = '0.18.17' +__version__ = '0.18.18' setup( name='flyteidl',