From eda206336968334d717985af4c71374fa8c43e01 Mon Sep 17 00:00:00 2001 From: Tobias Schottdorf Date: Mon, 10 Feb 2020 15:58:22 +0100 Subject: [PATCH 1/3] batcheval: make Scan and ReverseScan twins The code is now identical (mod a `Reverse: true`). It's tempting to merge them into one method, but I assume there is a reason they're separated. Release note: None --- pkg/storage/batcheval/cmd_reverse_scan.go | 20 +++++++++----------- pkg/storage/batcheval/cmd_scan.go | 18 +++++++++--------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/pkg/storage/batcheval/cmd_reverse_scan.go b/pkg/storage/batcheval/cmd_reverse_scan.go index 3a78f94e9f67..ce250daa59c2 100644 --- a/pkg/storage/batcheval/cmd_reverse_scan.go +++ b/pkg/storage/batcheval/cmd_reverse_scan.go @@ -37,26 +37,23 @@ func ReverseScan( var res engine.MVCCScanResult var err error + opts := engine.MVCCScanOptions{ + Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, + Txn: h.Txn, + Reverse: true, + } + switch args.ScanFormat { case roachpb.BATCH_RESPONSE: res, err = engine.MVCCScanToBytes( - ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, - engine.MVCCScanOptions{ - Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, - Txn: h.Txn, - Reverse: true, - }) + ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, opts) if err != nil { return result.Result{}, err } reply.BatchResponses = res.KVData case roachpb.KEY_VALUES: res, err = engine.MVCCScan( - ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, engine.MVCCScanOptions{ - Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, - Txn: h.Txn, - Reverse: true, - }) + ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, opts) if err != nil { return result.Result{}, err } @@ -66,6 +63,7 @@ func ReverseScan( } reply.NumKeys = res.NumKeys + if res.ResumeSpan != nil { reply.ResumeSpan = res.ResumeSpan reply.ResumeReason = roachpb.RESUME_KEY_LIMIT diff --git a/pkg/storage/batcheval/cmd_scan.go b/pkg/storage/batcheval/cmd_scan.go index 6f504b61cd53..ad8c09ebd63f 100644 --- a/pkg/storage/batcheval/cmd_scan.go +++ b/pkg/storage/batcheval/cmd_scan.go @@ -37,24 +37,23 @@ func Scan( var res engine.MVCCScanResult var err error + opts := engine.MVCCScanOptions{ + Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, + Txn: h.Txn, + Reverse: false, + } + switch args.ScanFormat { case roachpb.BATCH_RESPONSE: res, err = engine.MVCCScanToBytes( - ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, - engine.MVCCScanOptions{ - Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, - Txn: h.Txn, - }) + ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, opts) if err != nil { return result.Result{}, err } reply.BatchResponses = res.KVData case roachpb.KEY_VALUES: res, err = engine.MVCCScan( - ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, engine.MVCCScanOptions{ - Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, - Txn: h.Txn, - }) + ctx, reader, args.Key, args.EndKey, cArgs.MaxKeys, h.Timestamp, opts) if err != nil { return result.Result{}, err } @@ -62,6 +61,7 @@ func Scan( default: panic(fmt.Sprintf("Unknown scanFormat %d", args.ScanFormat)) } + reply.NumKeys = res.NumKeys if res.ResumeSpan != nil { From 417aa0843dbc1b816d7326cf223e141aa817bd30 Mon Sep 17 00:00:00 2001 From: Tobias Schottdorf Date: Mon, 10 Feb 2020 15:36:27 +0100 Subject: [PATCH 2/3] roachpb: add TargetBytes to batch header Also adds NumBytes to the response header. Release note: None --- c-deps/libroach/protos/roachpb/api.pb.cc | 86 +- c-deps/libroach/protos/roachpb/api.pb.h | 42 + pkg/roachpb/api.pb.go | 1229 ++++++++++++---------- pkg/roachpb/api.proto | 11 + 4 files changed, 775 insertions(+), 593 deletions(-) diff --git a/c-deps/libroach/protos/roachpb/api.pb.cc b/c-deps/libroach/protos/roachpb/api.pb.cc index 68454f0ee711..8cfb888e56c4 100644 --- a/c-deps/libroach/protos/roachpb/api.pb.cc +++ b/c-deps/libroach/protos/roachpb/api.pb.cc @@ -3523,6 +3523,7 @@ const int ResponseHeader::kTxnFieldNumber; const int ResponseHeader::kResumeSpanFieldNumber; const int ResponseHeader::kResumeReasonFieldNumber; const int ResponseHeader::kNumKeysFieldNumber; +const int ResponseHeader::kNumBytesFieldNumber; const int ResponseHeader::kRangeInfosFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 @@ -3549,15 +3550,15 @@ ResponseHeader::ResponseHeader(const ResponseHeader& from) resume_span_ = NULL; } ::memcpy(&num_keys_, &from.num_keys_, - static_cast(reinterpret_cast(&resume_reason_) - - reinterpret_cast(&num_keys_)) + sizeof(resume_reason_)); + static_cast(reinterpret_cast(&num_bytes_) - + reinterpret_cast(&num_keys_)) + sizeof(num_bytes_)); // @@protoc_insertion_point(copy_constructor:cockroach.roachpb.ResponseHeader) } void ResponseHeader::SharedCtor() { ::memset(&txn_, 0, static_cast( - reinterpret_cast(&resume_reason_) - - reinterpret_cast(&txn_)) + sizeof(resume_reason_)); + reinterpret_cast(&num_bytes_) - + reinterpret_cast(&txn_)) + sizeof(num_bytes_)); } ResponseHeader::~ResponseHeader() { @@ -3595,8 +3596,8 @@ void ResponseHeader::Clear() { } resume_span_ = NULL; ::memset(&num_keys_, 0, static_cast( - reinterpret_cast(&resume_reason_) - - reinterpret_cast(&num_keys_)) + sizeof(resume_reason_)); + reinterpret_cast(&num_bytes_) - + reinterpret_cast(&num_keys_)) + sizeof(num_bytes_)); _internal_metadata_.Clear(); } @@ -3680,6 +3681,20 @@ bool ResponseHeader::MergePartialFromCodedStream( break; } + // int64 num_bytes = 8; + case 8: { + if (static_cast< ::google::protobuf::uint8>(tag) == + static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) { + + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>( + input, &num_bytes_))); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -3737,6 +3752,11 @@ void ResponseHeader::SerializeWithCachedSizes( 7, this->resume_reason(), output); } + // int64 num_bytes = 8; + if (this->num_bytes() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteInt64(8, this->num_bytes(), output); + } + output->WriteRaw((::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()).data(), static_cast((::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()).size())); // @@protoc_insertion_point(serialize_end:cockroach.roachpb.ResponseHeader) @@ -3785,6 +3805,13 @@ size_t ResponseHeader::ByteSizeLong() const { ::google::protobuf::internal::WireFormatLite::EnumSize(this->resume_reason()); } + // int64 num_bytes = 8; + if (this->num_bytes() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int64Size( + this->num_bytes()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -3815,6 +3842,9 @@ void ResponseHeader::MergeFrom(const ResponseHeader& from) { if (from.resume_reason() != 0) { set_resume_reason(from.resume_reason()); } + if (from.num_bytes() != 0) { + set_num_bytes(from.num_bytes()); + } } void ResponseHeader::CopyFrom(const ResponseHeader& from) { @@ -3839,6 +3869,7 @@ void ResponseHeader::InternalSwap(ResponseHeader* other) { swap(resume_span_, other->resume_span_); swap(num_keys_, other->num_keys_); swap(resume_reason_, other->resume_reason_); + swap(num_bytes_, other->num_bytes_); _internal_metadata_.Swap(&other->_internal_metadata_); } @@ -35146,6 +35177,7 @@ const int Header::kUserPriorityFieldNumber; const int Header::kTxnFieldNumber; const int Header::kReadConsistencyFieldNumber; const int Header::kMaxSpanRequestKeysFieldNumber; +const int Header::kTargetBytesFieldNumber; const int Header::kDistinctSpansFieldNumber; const int Header::kReturnRangeInfoFieldNumber; const int Header::kGatewayNodeIdFieldNumber; @@ -35180,15 +35212,15 @@ Header::Header(const Header& from) txn_ = NULL; } ::memcpy(&range_id_, &from.range_id_, - static_cast(reinterpret_cast(&defer_write_too_old_error_) - - reinterpret_cast(&range_id_)) + sizeof(defer_write_too_old_error_)); + static_cast(reinterpret_cast(&target_bytes_) - + reinterpret_cast(&range_id_)) + sizeof(target_bytes_)); // @@protoc_insertion_point(copy_constructor:cockroach.roachpb.Header) } void Header::SharedCtor() { ::memset(×tamp_, 0, static_cast( - reinterpret_cast(&defer_write_too_old_error_) - - reinterpret_cast(×tamp_)) + sizeof(defer_write_too_old_error_)); + reinterpret_cast(&target_bytes_) - + reinterpret_cast(×tamp_)) + sizeof(target_bytes_)); } Header::~Header() { @@ -35230,8 +35262,8 @@ void Header::Clear() { } txn_ = NULL; ::memset(&range_id_, 0, static_cast( - reinterpret_cast(&defer_write_too_old_error_) - - reinterpret_cast(&range_id_)) + sizeof(defer_write_too_old_error_)); + reinterpret_cast(&target_bytes_) - + reinterpret_cast(&range_id_)) + sizeof(target_bytes_)); _internal_metadata_.Clear(); } @@ -35409,6 +35441,20 @@ bool Header::MergePartialFromCodedStream( break; } + // int64 target_bytes = 15; + case 15: { + if (static_cast< ::google::protobuf::uint8>(tag) == + static_cast< ::google::protobuf::uint8>(120u /* 120 & 0xFF */)) { + + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>( + input, &target_bytes_))); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -35494,6 +35540,11 @@ void Header::SerializeWithCachedSizes( ::google::protobuf::internal::WireFormatLite::WriteBool(14, this->defer_write_too_old_error(), output); } + // int64 target_bytes = 15; + if (this->target_bytes() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteInt64(15, this->target_bytes(), output); + } + output->WriteRaw((::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()).data(), static_cast((::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()).size())); // @@protoc_insertion_point(serialize_end:cockroach.roachpb.Header) @@ -35573,6 +35624,13 @@ size_t Header::ByteSizeLong() const { total_size += 1 + 1; } + // int64 target_bytes = 15; + if (this->target_bytes() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int64Size( + this->target_bytes()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -35626,6 +35684,9 @@ void Header::MergeFrom(const Header& from) { if (from.defer_write_too_old_error() != 0) { set_defer_write_too_old_error(from.defer_write_too_old_error()); } + if (from.target_bytes() != 0) { + set_target_bytes(from.target_bytes()); + } } void Header::CopyFrom(const Header& from) { @@ -35657,6 +35718,7 @@ void Header::InternalSwap(Header* other) { swap(return_range_info_, other->return_range_info_); swap(async_consensus_, other->async_consensus_); swap(defer_write_too_old_error_, other->defer_write_too_old_error_); + swap(target_bytes_, other->target_bytes_); _internal_metadata_.Swap(&other->_internal_metadata_); } diff --git a/c-deps/libroach/protos/roachpb/api.pb.h b/c-deps/libroach/protos/roachpb/api.pb.h index 52ca4e43d13d..ae9d3168c9d3 100644 --- a/c-deps/libroach/protos/roachpb/api.pb.h +++ b/c-deps/libroach/protos/roachpb/api.pb.h @@ -1031,6 +1031,12 @@ class ResponseHeader : public ::google::protobuf::MessageLite /* @@protoc_insert ::cockroach::roachpb::ResponseHeader_ResumeReason resume_reason() const; void set_resume_reason(::cockroach::roachpb::ResponseHeader_ResumeReason value); + // int64 num_bytes = 8; + void clear_num_bytes(); + static const int kNumBytesFieldNumber = 8; + ::google::protobuf::int64 num_bytes() const; + void set_num_bytes(::google::protobuf::int64 value); + // @@protoc_insertion_point(class_scope:cockroach.roachpb.ResponseHeader) private: @@ -1040,6 +1046,7 @@ class ResponseHeader : public ::google::protobuf::MessageLite /* @@protoc_insert ::cockroach::roachpb::Span* resume_span_; ::google::protobuf::int64 num_keys_; int resume_reason_; + ::google::protobuf::int64 num_bytes_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::protobuf_roachpb_2fapi_2eproto::TableStruct; }; @@ -15718,6 +15725,12 @@ class Header : public ::google::protobuf::MessageLite /* @@protoc_insertion_poin bool defer_write_too_old_error() const; void set_defer_write_too_old_error(bool value); + // int64 target_bytes = 15; + void clear_target_bytes(); + static const int kTargetBytesFieldNumber = 15; + ::google::protobuf::int64 target_bytes() const; + void set_target_bytes(::google::protobuf::int64 value); + // @@protoc_insertion_point(class_scope:cockroach.roachpb.Header) private: @@ -15734,6 +15747,7 @@ class Header : public ::google::protobuf::MessageLite /* @@protoc_insertion_poin bool return_range_info_; bool async_consensus_; bool defer_write_too_old_error_; + ::google::protobuf::int64 target_bytes_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::protobuf_roachpb_2fapi_2eproto::TableStruct; }; @@ -17099,6 +17113,20 @@ inline void ResponseHeader::set_num_keys(::google::protobuf::int64 value) { // @@protoc_insertion_point(field_set:cockroach.roachpb.ResponseHeader.num_keys) } +// int64 num_bytes = 8; +inline void ResponseHeader::clear_num_bytes() { + num_bytes_ = GOOGLE_LONGLONG(0); +} +inline ::google::protobuf::int64 ResponseHeader::num_bytes() const { + // @@protoc_insertion_point(field_get:cockroach.roachpb.ResponseHeader.num_bytes) + return num_bytes_; +} +inline void ResponseHeader::set_num_bytes(::google::protobuf::int64 value) { + + num_bytes_ = value; + // @@protoc_insertion_point(field_set:cockroach.roachpb.ResponseHeader.num_bytes) +} + inline int ResponseHeader::range_infos_size() const { return range_infos_.size(); } @@ -33282,6 +33310,20 @@ inline void Header::set_max_span_request_keys(::google::protobuf::int64 value) { // @@protoc_insertion_point(field_set:cockroach.roachpb.Header.max_span_request_keys) } +// int64 target_bytes = 15; +inline void Header::clear_target_bytes() { + target_bytes_ = GOOGLE_LONGLONG(0); +} +inline ::google::protobuf::int64 Header::target_bytes() const { + // @@protoc_insertion_point(field_get:cockroach.roachpb.Header.target_bytes) + return target_bytes_; +} +inline void Header::set_target_bytes(::google::protobuf::int64 value) { + + target_bytes_ = value; + // @@protoc_insertion_point(field_set:cockroach.roachpb.Header.target_bytes) +} + // bool distinct_spans = 9; inline void Header::clear_distinct_spans() { distinct_spans_ = false; diff --git a/pkg/roachpb/api.pb.go b/pkg/roachpb/api.pb.go index 7d707e34ae81..32c33028caaf 100644 --- a/pkg/roachpb/api.pb.go +++ b/pkg/roachpb/api.pb.go @@ -71,7 +71,7 @@ func (x ReadConsistencyType) String() string { return proto.EnumName(ReadConsistencyType_name, int32(x)) } func (ReadConsistencyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{0} + return fileDescriptor_api_5f9585d414efb90d, []int{0} } // ScanFormat is an enumeration of the available response formats for MVCCScan @@ -99,7 +99,7 @@ func (x ScanFormat) String() string { return proto.EnumName(ScanFormat_name, int32(x)) } func (ScanFormat) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{1} + return fileDescriptor_api_5f9585d414efb90d, []int{1} } type ChecksumMode int32 @@ -146,7 +146,7 @@ func (x ChecksumMode) String() string { return proto.EnumName(ChecksumMode_name, int32(x)) } func (ChecksumMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{2} + return fileDescriptor_api_5f9585d414efb90d, []int{2} } // PushTxnType determines what action to take when pushing a transaction. @@ -177,7 +177,7 @@ func (x PushTxnType) String() string { return proto.EnumName(PushTxnType_name, int32(x)) } func (PushTxnType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{3} + return fileDescriptor_api_5f9585d414efb90d, []int{3} } type ExternalStorageProvider int32 @@ -215,7 +215,7 @@ func (x ExternalStorageProvider) String() string { return proto.EnumName(ExternalStorageProvider_name, int32(x)) } func (ExternalStorageProvider) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{4} + return fileDescriptor_api_5f9585d414efb90d, []int{4} } type MVCCFilter int32 @@ -238,7 +238,7 @@ func (x MVCCFilter) String() string { return proto.EnumName(MVCCFilter_name, int32(x)) } func (MVCCFilter) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{5} + return fileDescriptor_api_5f9585d414efb90d, []int{5} } type ResponseHeader_ResumeReason int32 @@ -264,7 +264,7 @@ func (x ResponseHeader_ResumeReason) String() string { return proto.EnumName(ResponseHeader_ResumeReason_name, int32(x)) } func (ResponseHeader_ResumeReason) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{2, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{2, 0} } type CheckConsistencyResponse_Status int32 @@ -306,7 +306,7 @@ func (x CheckConsistencyResponse_Status) String() string { return proto.EnumName(CheckConsistencyResponse_Status_name, int32(x)) } func (CheckConsistencyResponse_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{26, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{26, 0} } // RangeInfo describes a range which executed a request. It contains @@ -320,7 +320,7 @@ func (m *RangeInfo) Reset() { *m = RangeInfo{} } func (m *RangeInfo) String() string { return proto.CompactTextString(m) } func (*RangeInfo) ProtoMessage() {} func (*RangeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{0} + return fileDescriptor_api_5f9585d414efb90d, []int{0} } func (m *RangeInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -363,7 +363,7 @@ func (m *RequestHeader) Reset() { *m = RequestHeader{} } func (m *RequestHeader) String() string { return proto.CompactTextString(m) } func (*RequestHeader) ProtoMessage() {} func (*RequestHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{1} + return fileDescriptor_api_5f9585d414efb90d, []int{1} } func (m *RequestHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -416,6 +416,11 @@ type ResponseHeader struct { ResumeReason ResponseHeader_ResumeReason `protobuf:"varint,7,opt,name=resume_reason,json=resumeReason,proto3,enum=cockroach.roachpb.ResponseHeader_ResumeReason" json:"resume_reason,omitempty"` // The number of keys operated on. NumKeys int64 `protobuf:"varint,5,opt,name=num_keys,json=numKeys,proto3" json:"num_keys,omitempty"` + // The number of bytes returned. Only populated for requests that support it + // (at the time of writing, Scan and ReverseScan). The number returned here + // corresponds to the (Header).TargetBytes field and loosely measures the + // bytes in the timestamps, keys, and values of the returned rows. + NumBytes int64 `protobuf:"varint,8,opt,name=num_bytes,json=numBytes,proto3" json:"num_bytes,omitempty"` // Range or list of ranges used to execute the request. Multiple // ranges may be returned for Scan, ReverseScan or DeleteRange. RangeInfos []RangeInfo `protobuf:"bytes,6,rep,name=range_infos,json=rangeInfos,proto3" json:"range_infos"` @@ -425,7 +430,7 @@ func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } func (m *ResponseHeader) String() string { return proto.CompactTextString(m) } func (*ResponseHeader) ProtoMessage() {} func (*ResponseHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{2} + return fileDescriptor_api_5f9585d414efb90d, []int{2} } func (m *ResponseHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -459,7 +464,7 @@ func (m *GetRequest) Reset() { *m = GetRequest{} } func (m *GetRequest) String() string { return proto.CompactTextString(m) } func (*GetRequest) ProtoMessage() {} func (*GetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{3} + return fileDescriptor_api_5f9585d414efb90d, []int{3} } func (m *GetRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -497,7 +502,7 @@ func (m *GetResponse) Reset() { *m = GetResponse{} } func (m *GetResponse) String() string { return proto.CompactTextString(m) } func (*GetResponse) ProtoMessage() {} func (*GetResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{4} + return fileDescriptor_api_5f9585d414efb90d, []int{4} } func (m *GetResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -540,7 +545,7 @@ func (m *PutRequest) Reset() { *m = PutRequest{} } func (m *PutRequest) String() string { return proto.CompactTextString(m) } func (*PutRequest) ProtoMessage() {} func (*PutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{5} + return fileDescriptor_api_5f9585d414efb90d, []int{5} } func (m *PutRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -574,7 +579,7 @@ func (m *PutResponse) Reset() { *m = PutResponse{} } func (m *PutResponse) String() string { return proto.CompactTextString(m) } func (*PutResponse) ProtoMessage() {} func (*PutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{6} + return fileDescriptor_api_5f9585d414efb90d, []int{6} } func (m *PutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -628,7 +633,7 @@ func (m *ConditionalPutRequest) Reset() { *m = ConditionalPutRequest{} } func (m *ConditionalPutRequest) String() string { return proto.CompactTextString(m) } func (*ConditionalPutRequest) ProtoMessage() {} func (*ConditionalPutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{7} + return fileDescriptor_api_5f9585d414efb90d, []int{7} } func (m *ConditionalPutRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -663,7 +668,7 @@ func (m *ConditionalPutResponse) Reset() { *m = ConditionalPutResponse{} func (m *ConditionalPutResponse) String() string { return proto.CompactTextString(m) } func (*ConditionalPutResponse) ProtoMessage() {} func (*ConditionalPutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{8} + return fileDescriptor_api_5f9585d414efb90d, []int{8} } func (m *ConditionalPutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -709,7 +714,7 @@ func (m *InitPutRequest) Reset() { *m = InitPutRequest{} } func (m *InitPutRequest) String() string { return proto.CompactTextString(m) } func (*InitPutRequest) ProtoMessage() {} func (*InitPutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{9} + return fileDescriptor_api_5f9585d414efb90d, []int{9} } func (m *InitPutRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -743,7 +748,7 @@ func (m *InitPutResponse) Reset() { *m = InitPutResponse{} } func (m *InitPutResponse) String() string { return proto.CompactTextString(m) } func (*InitPutResponse) ProtoMessage() {} func (*InitPutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{10} + return fileDescriptor_api_5f9585d414efb90d, []int{10} } func (m *InitPutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -783,7 +788,7 @@ func (m *IncrementRequest) Reset() { *m = IncrementRequest{} } func (m *IncrementRequest) String() string { return proto.CompactTextString(m) } func (*IncrementRequest) ProtoMessage() {} func (*IncrementRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{11} + return fileDescriptor_api_5f9585d414efb90d, []int{11} } func (m *IncrementRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -820,7 +825,7 @@ func (m *IncrementResponse) Reset() { *m = IncrementResponse{} } func (m *IncrementResponse) String() string { return proto.CompactTextString(m) } func (*IncrementResponse) ProtoMessage() {} func (*IncrementResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{12} + return fileDescriptor_api_5f9585d414efb90d, []int{12} } func (m *IncrementResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -854,7 +859,7 @@ func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRequest) ProtoMessage() {} func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{13} + return fileDescriptor_api_5f9585d414efb90d, []int{13} } func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -888,7 +893,7 @@ func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } func (*DeleteResponse) ProtoMessage() {} func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{14} + return fileDescriptor_api_5f9585d414efb90d, []int{14} } func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -940,7 +945,7 @@ func (m *DeleteRangeRequest) Reset() { *m = DeleteRangeRequest{} } func (m *DeleteRangeRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRangeRequest) ProtoMessage() {} func (*DeleteRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{15} + return fileDescriptor_api_5f9585d414efb90d, []int{15} } func (m *DeleteRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -977,7 +982,7 @@ func (m *DeleteRangeResponse) Reset() { *m = DeleteRangeResponse{} } func (m *DeleteRangeResponse) String() string { return proto.CompactTextString(m) } func (*DeleteRangeResponse) ProtoMessage() {} func (*DeleteRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{16} + return fileDescriptor_api_5f9585d414efb90d, []int{16} } func (m *DeleteRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1024,7 +1029,7 @@ func (m *ClearRangeRequest) Reset() { *m = ClearRangeRequest{} } func (m *ClearRangeRequest) String() string { return proto.CompactTextString(m) } func (*ClearRangeRequest) ProtoMessage() {} func (*ClearRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{17} + return fileDescriptor_api_5f9585d414efb90d, []int{17} } func (m *ClearRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1058,7 +1063,7 @@ func (m *ClearRangeResponse) Reset() { *m = ClearRangeResponse{} } func (m *ClearRangeResponse) String() string { return proto.CompactTextString(m) } func (*ClearRangeResponse) ProtoMessage() {} func (*ClearRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{18} + return fileDescriptor_api_5f9585d414efb90d, []int{18} } func (m *ClearRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1099,7 +1104,7 @@ func (m *RevertRangeRequest) Reset() { *m = RevertRangeRequest{} } func (m *RevertRangeRequest) String() string { return proto.CompactTextString(m) } func (*RevertRangeRequest) ProtoMessage() {} func (*RevertRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{19} + return fileDescriptor_api_5f9585d414efb90d, []int{19} } func (m *RevertRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1133,7 +1138,7 @@ func (m *RevertRangeResponse) Reset() { *m = RevertRangeResponse{} } func (m *RevertRangeResponse) String() string { return proto.CompactTextString(m) } func (*RevertRangeResponse) ProtoMessage() {} func (*RevertRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{20} + return fileDescriptor_api_5f9585d414efb90d, []int{20} } func (m *RevertRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1173,7 +1178,7 @@ func (m *ScanRequest) Reset() { *m = ScanRequest{} } func (m *ScanRequest) String() string { return proto.CompactTextString(m) } func (*ScanRequest) ProtoMessage() {} func (*ScanRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{21} + return fileDescriptor_api_5f9585d414efb90d, []int{21} } func (m *ScanRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1220,7 +1225,7 @@ func (m *ScanResponse) Reset() { *m = ScanResponse{} } func (m *ScanResponse) String() string { return proto.CompactTextString(m) } func (*ScanResponse) ProtoMessage() {} func (*ScanResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{22} + return fileDescriptor_api_5f9585d414efb90d, []int{22} } func (m *ScanResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1260,7 +1265,7 @@ func (m *ReverseScanRequest) Reset() { *m = ReverseScanRequest{} } func (m *ReverseScanRequest) String() string { return proto.CompactTextString(m) } func (*ReverseScanRequest) ProtoMessage() {} func (*ReverseScanRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{23} + return fileDescriptor_api_5f9585d414efb90d, []int{23} } func (m *ReverseScanRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1307,7 +1312,7 @@ func (m *ReverseScanResponse) Reset() { *m = ReverseScanResponse{} } func (m *ReverseScanResponse) String() string { return proto.CompactTextString(m) } func (*ReverseScanResponse) ProtoMessage() {} func (*ReverseScanResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{24} + return fileDescriptor_api_5f9585d414efb90d, []int{24} } func (m *ReverseScanResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1360,7 +1365,7 @@ func (m *CheckConsistencyRequest) Reset() { *m = CheckConsistencyRequest func (m *CheckConsistencyRequest) String() string { return proto.CompactTextString(m) } func (*CheckConsistencyRequest) ProtoMessage() {} func (*CheckConsistencyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{25} + return fileDescriptor_api_5f9585d414efb90d, []int{25} } func (m *CheckConsistencyRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1397,7 +1402,7 @@ func (m *CheckConsistencyResponse) Reset() { *m = CheckConsistencyRespon func (m *CheckConsistencyResponse) String() string { return proto.CompactTextString(m) } func (*CheckConsistencyResponse) ProtoMessage() {} func (*CheckConsistencyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{26} + return fileDescriptor_api_5f9585d414efb90d, []int{26} } func (m *CheckConsistencyResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1441,7 +1446,7 @@ func (m *CheckConsistencyResponse_Result) Reset() { *m = CheckConsistenc func (m *CheckConsistencyResponse_Result) String() string { return proto.CompactTextString(m) } func (*CheckConsistencyResponse_Result) ProtoMessage() {} func (*CheckConsistencyResponse_Result) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{26, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{26, 0} } func (m *CheckConsistencyResponse_Result) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1489,7 +1494,7 @@ func (m *RecomputeStatsRequest) Reset() { *m = RecomputeStatsRequest{} } func (m *RecomputeStatsRequest) String() string { return proto.CompactTextString(m) } func (*RecomputeStatsRequest) ProtoMessage() {} func (*RecomputeStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{27} + return fileDescriptor_api_5f9585d414efb90d, []int{27} } func (m *RecomputeStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1525,7 +1530,7 @@ func (m *RecomputeStatsResponse) Reset() { *m = RecomputeStatsResponse{} func (m *RecomputeStatsResponse) String() string { return proto.CompactTextString(m) } func (*RecomputeStatsResponse) ProtoMessage() {} func (*RecomputeStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{28} + return fileDescriptor_api_5f9585d414efb90d, []int{28} } func (m *RecomputeStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1620,7 +1625,7 @@ func (m *EndTxnRequest) Reset() { *m = EndTxnRequest{} } func (m *EndTxnRequest) String() string { return proto.CompactTextString(m) } func (*EndTxnRequest) ProtoMessage() {} func (*EndTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{29} + return fileDescriptor_api_5f9585d414efb90d, []int{29} } func (m *EndTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1666,7 +1671,7 @@ func (m *EndTxnResponse) Reset() { *m = EndTxnResponse{} } func (m *EndTxnResponse) String() string { return proto.CompactTextString(m) } func (*EndTxnResponse) ProtoMessage() {} func (*EndTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{30} + return fileDescriptor_api_5f9585d414efb90d, []int{30} } func (m *EndTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1727,7 +1732,7 @@ func (m *AdminSplitRequest) Reset() { *m = AdminSplitRequest{} } func (m *AdminSplitRequest) String() string { return proto.CompactTextString(m) } func (*AdminSplitRequest) ProtoMessage() {} func (*AdminSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{31} + return fileDescriptor_api_5f9585d414efb90d, []int{31} } func (m *AdminSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1762,7 +1767,7 @@ func (m *AdminSplitResponse) Reset() { *m = AdminSplitResponse{} } func (m *AdminSplitResponse) String() string { return proto.CompactTextString(m) } func (*AdminSplitResponse) ProtoMessage() {} func (*AdminSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{32} + return fileDescriptor_api_5f9585d414efb90d, []int{32} } func (m *AdminSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1801,7 +1806,7 @@ func (m *AdminUnsplitRequest) Reset() { *m = AdminUnsplitRequest{} } func (m *AdminUnsplitRequest) String() string { return proto.CompactTextString(m) } func (*AdminUnsplitRequest) ProtoMessage() {} func (*AdminUnsplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{33} + return fileDescriptor_api_5f9585d414efb90d, []int{33} } func (m *AdminUnsplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1836,7 +1841,7 @@ func (m *AdminUnsplitResponse) Reset() { *m = AdminUnsplitResponse{} } func (m *AdminUnsplitResponse) String() string { return proto.CompactTextString(m) } func (*AdminUnsplitResponse) ProtoMessage() {} func (*AdminUnsplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{34} + return fileDescriptor_api_5f9585d414efb90d, []int{34} } func (m *AdminUnsplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1879,7 +1884,7 @@ func (m *AdminMergeRequest) Reset() { *m = AdminMergeRequest{} } func (m *AdminMergeRequest) String() string { return proto.CompactTextString(m) } func (*AdminMergeRequest) ProtoMessage() {} func (*AdminMergeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{35} + return fileDescriptor_api_5f9585d414efb90d, []int{35} } func (m *AdminMergeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1914,7 +1919,7 @@ func (m *AdminMergeResponse) Reset() { *m = AdminMergeResponse{} } func (m *AdminMergeResponse) String() string { return proto.CompactTextString(m) } func (*AdminMergeResponse) ProtoMessage() {} func (*AdminMergeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{36} + return fileDescriptor_api_5f9585d414efb90d, []int{36} } func (m *AdminMergeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1952,7 +1957,7 @@ func (m *AdminTransferLeaseRequest) Reset() { *m = AdminTransferLeaseReq func (m *AdminTransferLeaseRequest) String() string { return proto.CompactTextString(m) } func (*AdminTransferLeaseRequest) ProtoMessage() {} func (*AdminTransferLeaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{37} + return fileDescriptor_api_5f9585d414efb90d, []int{37} } func (m *AdminTransferLeaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1985,7 +1990,7 @@ func (m *AdminTransferLeaseResponse) Reset() { *m = AdminTransferLeaseRe func (m *AdminTransferLeaseResponse) String() string { return proto.CompactTextString(m) } func (*AdminTransferLeaseResponse) ProtoMessage() {} func (*AdminTransferLeaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{38} + return fileDescriptor_api_5f9585d414efb90d, []int{38} } func (m *AdminTransferLeaseResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2020,7 +2025,7 @@ func (m *ReplicationChange) Reset() { *m = ReplicationChange{} } func (m *ReplicationChange) String() string { return proto.CompactTextString(m) } func (*ReplicationChange) ProtoMessage() {} func (*ReplicationChange) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{39} + return fileDescriptor_api_5f9585d414efb90d, []int{39} } func (m *ReplicationChange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2078,7 +2083,7 @@ func (m *AdminChangeReplicasRequest) Reset() { *m = AdminChangeReplicasR func (m *AdminChangeReplicasRequest) String() string { return proto.CompactTextString(m) } func (*AdminChangeReplicasRequest) ProtoMessage() {} func (*AdminChangeReplicasRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{40} + return fileDescriptor_api_5f9585d414efb90d, []int{40} } func (m *AdminChangeReplicasRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2113,7 +2118,7 @@ func (m *AdminChangeReplicasResponse) Reset() { *m = AdminChangeReplicas func (m *AdminChangeReplicasResponse) String() string { return proto.CompactTextString(m) } func (*AdminChangeReplicasResponse) ProtoMessage() {} func (*AdminChangeReplicasResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{41} + return fileDescriptor_api_5f9585d414efb90d, []int{41} } func (m *AdminChangeReplicasResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2150,7 +2155,7 @@ func (m *AdminRelocateRangeRequest) Reset() { *m = AdminRelocateRangeReq func (m *AdminRelocateRangeRequest) String() string { return proto.CompactTextString(m) } func (*AdminRelocateRangeRequest) ProtoMessage() {} func (*AdminRelocateRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{42} + return fileDescriptor_api_5f9585d414efb90d, []int{42} } func (m *AdminRelocateRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2183,7 +2188,7 @@ func (m *AdminRelocateRangeResponse) Reset() { *m = AdminRelocateRangeRe func (m *AdminRelocateRangeResponse) String() string { return proto.CompactTextString(m) } func (*AdminRelocateRangeResponse) ProtoMessage() {} func (*AdminRelocateRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{43} + return fileDescriptor_api_5f9585d414efb90d, []int{43} } func (m *AdminRelocateRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2222,7 +2227,7 @@ func (m *HeartbeatTxnRequest) Reset() { *m = HeartbeatTxnRequest{} } func (m *HeartbeatTxnRequest) String() string { return proto.CompactTextString(m) } func (*HeartbeatTxnRequest) ProtoMessage() {} func (*HeartbeatTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{44} + return fileDescriptor_api_5f9585d414efb90d, []int{44} } func (m *HeartbeatTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2259,7 +2264,7 @@ func (m *HeartbeatTxnResponse) Reset() { *m = HeartbeatTxnResponse{} } func (m *HeartbeatTxnResponse) String() string { return proto.CompactTextString(m) } func (*HeartbeatTxnResponse) ProtoMessage() {} func (*HeartbeatTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{45} + return fileDescriptor_api_5f9585d414efb90d, []int{45} } func (m *HeartbeatTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2297,7 +2302,7 @@ func (m *GCRequest) Reset() { *m = GCRequest{} } func (m *GCRequest) String() string { return proto.CompactTextString(m) } func (*GCRequest) ProtoMessage() {} func (*GCRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{46} + return fileDescriptor_api_5f9585d414efb90d, []int{46} } func (m *GCRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2331,7 +2336,7 @@ func (m *GCRequest_GCKey) Reset() { *m = GCRequest_GCKey{} } func (m *GCRequest_GCKey) String() string { return proto.CompactTextString(m) } func (*GCRequest_GCKey) ProtoMessage() {} func (*GCRequest_GCKey) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{46, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{46, 0} } func (m *GCRequest_GCKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2365,7 +2370,7 @@ func (m *GCResponse) Reset() { *m = GCResponse{} } func (m *GCResponse) String() string { return proto.CompactTextString(m) } func (*GCResponse) ProtoMessage() {} func (*GCResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{47} + return fileDescriptor_api_5f9585d414efb90d, []int{47} } func (m *GCResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2434,7 +2439,7 @@ func (m *PushTxnRequest) Reset() { *m = PushTxnRequest{} } func (m *PushTxnRequest) String() string { return proto.CompactTextString(m) } func (*PushTxnRequest) ProtoMessage() {} func (*PushTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{48} + return fileDescriptor_api_5f9585d414efb90d, []int{48} } func (m *PushTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2477,7 +2482,7 @@ func (m *PushTxnResponse) Reset() { *m = PushTxnResponse{} } func (m *PushTxnResponse) String() string { return proto.CompactTextString(m) } func (*PushTxnResponse) ProtoMessage() {} func (*PushTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{49} + return fileDescriptor_api_5f9585d414efb90d, []int{49} } func (m *PushTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2524,7 +2529,7 @@ func (m *RecoverTxnRequest) Reset() { *m = RecoverTxnRequest{} } func (m *RecoverTxnRequest) String() string { return proto.CompactTextString(m) } func (*RecoverTxnRequest) ProtoMessage() {} func (*RecoverTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{50} + return fileDescriptor_api_5f9585d414efb90d, []int{50} } func (m *RecoverTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2560,7 +2565,7 @@ func (m *RecoverTxnResponse) Reset() { *m = RecoverTxnResponse{} } func (m *RecoverTxnResponse) String() string { return proto.CompactTextString(m) } func (*RecoverTxnResponse) ProtoMessage() {} func (*RecoverTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{51} + return fileDescriptor_api_5f9585d414efb90d, []int{51} } func (m *RecoverTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2604,7 +2609,7 @@ func (m *QueryTxnRequest) Reset() { *m = QueryTxnRequest{} } func (m *QueryTxnRequest) String() string { return proto.CompactTextString(m) } func (*QueryTxnRequest) ProtoMessage() {} func (*QueryTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{52} + return fileDescriptor_api_5f9585d414efb90d, []int{52} } func (m *QueryTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2643,7 +2648,7 @@ func (m *QueryTxnResponse) Reset() { *m = QueryTxnResponse{} } func (m *QueryTxnResponse) String() string { return proto.CompactTextString(m) } func (*QueryTxnResponse) ProtoMessage() {} func (*QueryTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{53} + return fileDescriptor_api_5f9585d414efb90d, []int{53} } func (m *QueryTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2703,7 +2708,7 @@ func (m *QueryIntentRequest) Reset() { *m = QueryIntentRequest{} } func (m *QueryIntentRequest) String() string { return proto.CompactTextString(m) } func (*QueryIntentRequest) ProtoMessage() {} func (*QueryIntentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{54} + return fileDescriptor_api_5f9585d414efb90d, []int{54} } func (m *QueryIntentRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2739,7 +2744,7 @@ func (m *QueryIntentResponse) Reset() { *m = QueryIntentResponse{} } func (m *QueryIntentResponse) String() string { return proto.CompactTextString(m) } func (*QueryIntentResponse) ProtoMessage() {} func (*QueryIntentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{55} + return fileDescriptor_api_5f9585d414efb90d, []int{55} } func (m *QueryIntentResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2785,7 +2790,7 @@ func (m *ResolveIntentRequest) Reset() { *m = ResolveIntentRequest{} } func (m *ResolveIntentRequest) String() string { return proto.CompactTextString(m) } func (*ResolveIntentRequest) ProtoMessage() {} func (*ResolveIntentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{56} + return fileDescriptor_api_5f9585d414efb90d, []int{56} } func (m *ResolveIntentRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2820,7 +2825,7 @@ func (m *ResolveIntentResponse) Reset() { *m = ResolveIntentResponse{} } func (m *ResolveIntentResponse) String() string { return proto.CompactTextString(m) } func (*ResolveIntentResponse) ProtoMessage() {} func (*ResolveIntentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{57} + return fileDescriptor_api_5f9585d414efb90d, []int{57} } func (m *ResolveIntentResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2870,7 +2875,7 @@ func (m *ResolveIntentRangeRequest) Reset() { *m = ResolveIntentRangeReq func (m *ResolveIntentRangeRequest) String() string { return proto.CompactTextString(m) } func (*ResolveIntentRangeRequest) ProtoMessage() {} func (*ResolveIntentRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{58} + return fileDescriptor_api_5f9585d414efb90d, []int{58} } func (m *ResolveIntentRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2905,7 +2910,7 @@ func (m *ResolveIntentRangeResponse) Reset() { *m = ResolveIntentRangeRe func (m *ResolveIntentRangeResponse) String() string { return proto.CompactTextString(m) } func (*ResolveIntentRangeResponse) ProtoMessage() {} func (*ResolveIntentRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{59} + return fileDescriptor_api_5f9585d414efb90d, []int{59} } func (m *ResolveIntentRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2942,7 +2947,7 @@ func (m *MergeRequest) Reset() { *m = MergeRequest{} } func (m *MergeRequest) String() string { return proto.CompactTextString(m) } func (*MergeRequest) ProtoMessage() {} func (*MergeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{60} + return fileDescriptor_api_5f9585d414efb90d, []int{60} } func (m *MergeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2976,7 +2981,7 @@ func (m *MergeResponse) Reset() { *m = MergeResponse{} } func (m *MergeResponse) String() string { return proto.CompactTextString(m) } func (*MergeResponse) ProtoMessage() {} func (*MergeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{61} + return fileDescriptor_api_5f9585d414efb90d, []int{61} } func (m *MergeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3021,7 +3026,7 @@ func (m *TruncateLogRequest) Reset() { *m = TruncateLogRequest{} } func (m *TruncateLogRequest) String() string { return proto.CompactTextString(m) } func (*TruncateLogRequest) ProtoMessage() {} func (*TruncateLogRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{62} + return fileDescriptor_api_5f9585d414efb90d, []int{62} } func (m *TruncateLogRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3055,7 +3060,7 @@ func (m *TruncateLogResponse) Reset() { *m = TruncateLogResponse{} } func (m *TruncateLogResponse) String() string { return proto.CompactTextString(m) } func (*TruncateLogResponse) ProtoMessage() {} func (*TruncateLogResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{63} + return fileDescriptor_api_5f9585d414efb90d, []int{63} } func (m *TruncateLogResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3099,7 +3104,7 @@ func (m *RequestLeaseRequest) Reset() { *m = RequestLeaseRequest{} } func (m *RequestLeaseRequest) String() string { return proto.CompactTextString(m) } func (*RequestLeaseRequest) ProtoMessage() {} func (*RequestLeaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{64} + return fileDescriptor_api_5f9585d414efb90d, []int{64} } func (m *RequestLeaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3148,7 +3153,7 @@ func (m *TransferLeaseRequest) Reset() { *m = TransferLeaseRequest{} } func (m *TransferLeaseRequest) String() string { return proto.CompactTextString(m) } func (*TransferLeaseRequest) ProtoMessage() {} func (*TransferLeaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{65} + return fileDescriptor_api_5f9585d414efb90d, []int{65} } func (m *TransferLeaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3185,7 +3190,7 @@ func (m *LeaseInfoRequest) Reset() { *m = LeaseInfoRequest{} } func (m *LeaseInfoRequest) String() string { return proto.CompactTextString(m) } func (*LeaseInfoRequest) ProtoMessage() {} func (*LeaseInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{66} + return fileDescriptor_api_5f9585d414efb90d, []int{66} } func (m *LeaseInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3222,7 +3227,7 @@ func (m *LeaseInfoResponse) Reset() { *m = LeaseInfoResponse{} } func (m *LeaseInfoResponse) String() string { return proto.CompactTextString(m) } func (*LeaseInfoResponse) ProtoMessage() {} func (*LeaseInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{67} + return fileDescriptor_api_5f9585d414efb90d, []int{67} } func (m *LeaseInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3257,7 +3262,7 @@ func (m *RequestLeaseResponse) Reset() { *m = RequestLeaseResponse{} } func (m *RequestLeaseResponse) String() string { return proto.CompactTextString(m) } func (*RequestLeaseResponse) ProtoMessage() {} func (*RequestLeaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{68} + return fileDescriptor_api_5f9585d414efb90d, []int{68} } func (m *RequestLeaseResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3312,7 +3317,7 @@ func (m *ComputeChecksumRequest) Reset() { *m = ComputeChecksumRequest{} func (m *ComputeChecksumRequest) String() string { return proto.CompactTextString(m) } func (*ComputeChecksumRequest) ProtoMessage() {} func (*ComputeChecksumRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{69} + return fileDescriptor_api_5f9585d414efb90d, []int{69} } func (m *ComputeChecksumRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3349,7 +3354,7 @@ func (m *ComputeChecksumResponse) Reset() { *m = ComputeChecksumResponse func (m *ComputeChecksumResponse) String() string { return proto.CompactTextString(m) } func (*ComputeChecksumResponse) ProtoMessage() {} func (*ComputeChecksumResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{70} + return fileDescriptor_api_5f9585d414efb90d, []int{70} } func (m *ComputeChecksumResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3388,7 +3393,7 @@ func (m *ExternalStorage) Reset() { *m = ExternalStorage{} } func (m *ExternalStorage) String() string { return proto.CompactTextString(m) } func (*ExternalStorage) ProtoMessage() {} func (*ExternalStorage) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71} + return fileDescriptor_api_5f9585d414efb90d, []int{71} } func (m *ExternalStorage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3422,7 +3427,7 @@ func (m *ExternalStorage_LocalFilePath) Reset() { *m = ExternalStorage_L func (m *ExternalStorage_LocalFilePath) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_LocalFilePath) ProtoMessage() {} func (*ExternalStorage_LocalFilePath) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{71, 0} } func (m *ExternalStorage_LocalFilePath) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3455,7 +3460,7 @@ func (m *ExternalStorage_Http) Reset() { *m = ExternalStorage_Http{} } func (m *ExternalStorage_Http) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_Http) ProtoMessage() {} func (*ExternalStorage_Http) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71, 1} + return fileDescriptor_api_5f9585d414efb90d, []int{71, 1} } func (m *ExternalStorage_Http) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3495,7 +3500,7 @@ func (m *ExternalStorage_S3) Reset() { *m = ExternalStorage_S3{} } func (m *ExternalStorage_S3) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_S3) ProtoMessage() {} func (*ExternalStorage_S3) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71, 2} + return fileDescriptor_api_5f9585d414efb90d, []int{71, 2} } func (m *ExternalStorage_S3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3534,7 +3539,7 @@ func (m *ExternalStorage_GCS) Reset() { *m = ExternalStorage_GCS{} } func (m *ExternalStorage_GCS) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_GCS) ProtoMessage() {} func (*ExternalStorage_GCS) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71, 3} + return fileDescriptor_api_5f9585d414efb90d, []int{71, 3} } func (m *ExternalStorage_GCS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3570,7 +3575,7 @@ func (m *ExternalStorage_Azure) Reset() { *m = ExternalStorage_Azure{} } func (m *ExternalStorage_Azure) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_Azure) ProtoMessage() {} func (*ExternalStorage_Azure) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71, 4} + return fileDescriptor_api_5f9585d414efb90d, []int{71, 4} } func (m *ExternalStorage_Azure) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3609,7 +3614,7 @@ func (m *ExternalStorage_Workload) Reset() { *m = ExternalStorage_Worklo func (m *ExternalStorage_Workload) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_Workload) ProtoMessage() {} func (*ExternalStorage_Workload) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{71, 5} + return fileDescriptor_api_5f9585d414efb90d, []int{71, 5} } func (m *ExternalStorage_Workload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3649,7 +3654,7 @@ func (m *WriteBatchRequest) Reset() { *m = WriteBatchRequest{} } func (m *WriteBatchRequest) String() string { return proto.CompactTextString(m) } func (*WriteBatchRequest) ProtoMessage() {} func (*WriteBatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{72} + return fileDescriptor_api_5f9585d414efb90d, []int{72} } func (m *WriteBatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3683,7 +3688,7 @@ func (m *WriteBatchResponse) Reset() { *m = WriteBatchResponse{} } func (m *WriteBatchResponse) String() string { return proto.CompactTextString(m) } func (*WriteBatchResponse) ProtoMessage() {} func (*WriteBatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{73} + return fileDescriptor_api_5f9585d414efb90d, []int{73} } func (m *WriteBatchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3717,7 +3722,7 @@ func (m *FileEncryptionOptions) Reset() { *m = FileEncryptionOptions{} } func (m *FileEncryptionOptions) String() string { return proto.CompactTextString(m) } func (*FileEncryptionOptions) ProtoMessage() {} func (*FileEncryptionOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{74} + return fileDescriptor_api_5f9585d414efb90d, []int{74} } func (m *FileEncryptionOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3787,7 +3792,7 @@ func (m *ExportRequest) Reset() { *m = ExportRequest{} } func (m *ExportRequest) String() string { return proto.CompactTextString(m) } func (*ExportRequest) ProtoMessage() {} func (*ExportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{75} + return fileDescriptor_api_5f9585d414efb90d, []int{75} } func (m *ExportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3823,7 +3828,7 @@ func (m *BulkOpSummary) Reset() { *m = BulkOpSummary{} } func (m *BulkOpSummary) String() string { return proto.CompactTextString(m) } func (*BulkOpSummary) ProtoMessage() {} func (*BulkOpSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{76} + return fileDescriptor_api_5f9585d414efb90d, []int{76} } func (m *BulkOpSummary) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3859,7 +3864,7 @@ func (m *ExportResponse) Reset() { *m = ExportResponse{} } func (m *ExportResponse) String() string { return proto.CompactTextString(m) } func (*ExportResponse) ProtoMessage() {} func (*ExportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{77} + return fileDescriptor_api_5f9585d414efb90d, []int{77} } func (m *ExportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3899,7 +3904,7 @@ func (m *ExportResponse_File) Reset() { *m = ExportResponse_File{} } func (m *ExportResponse_File) String() string { return proto.CompactTextString(m) } func (*ExportResponse_File) ProtoMessage() {} func (*ExportResponse_File) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{77, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{77, 0} } func (m *ExportResponse_File) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3950,7 +3955,7 @@ func (m *ImportRequest) Reset() { *m = ImportRequest{} } func (m *ImportRequest) String() string { return proto.CompactTextString(m) } func (*ImportRequest) ProtoMessage() {} func (*ImportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{78} + return fileDescriptor_api_5f9585d414efb90d, []int{78} } func (m *ImportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3985,7 +3990,7 @@ func (m *ImportRequest_File) Reset() { *m = ImportRequest_File{} } func (m *ImportRequest_File) String() string { return proto.CompactTextString(m) } func (*ImportRequest_File) ProtoMessage() {} func (*ImportRequest_File) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{78, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{78, 0} } func (m *ImportRequest_File) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4021,7 +4026,7 @@ func (m *ImportRequest_TableRekey) Reset() { *m = ImportRequest_TableRek func (m *ImportRequest_TableRekey) String() string { return proto.CompactTextString(m) } func (*ImportRequest_TableRekey) ProtoMessage() {} func (*ImportRequest_TableRekey) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{78, 1} + return fileDescriptor_api_5f9585d414efb90d, []int{78, 1} } func (m *ImportRequest_TableRekey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4056,7 +4061,7 @@ func (m *ImportResponse) Reset() { *m = ImportResponse{} } func (m *ImportResponse) String() string { return proto.CompactTextString(m) } func (*ImportResponse) ProtoMessage() {} func (*ImportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{79} + return fileDescriptor_api_5f9585d414efb90d, []int{79} } func (m *ImportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4094,7 +4099,7 @@ func (m *AdminScatterRequest) Reset() { *m = AdminScatterRequest{} } func (m *AdminScatterRequest) String() string { return proto.CompactTextString(m) } func (*AdminScatterRequest) ProtoMessage() {} func (*AdminScatterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{80} + return fileDescriptor_api_5f9585d414efb90d, []int{80} } func (m *AdminScatterRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4129,7 +4134,7 @@ func (m *AdminScatterResponse) Reset() { *m = AdminScatterResponse{} } func (m *AdminScatterResponse) String() string { return proto.CompactTextString(m) } func (*AdminScatterResponse) ProtoMessage() {} func (*AdminScatterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{81} + return fileDescriptor_api_5f9585d414efb90d, []int{81} } func (m *AdminScatterResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4162,7 +4167,7 @@ func (m *AdminScatterResponse_Range) Reset() { *m = AdminScatterResponse func (m *AdminScatterResponse_Range) String() string { return proto.CompactTextString(m) } func (*AdminScatterResponse_Range) ProtoMessage() {} func (*AdminScatterResponse_Range) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{81, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{81, 0} } func (m *AdminScatterResponse_Range) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4207,7 +4212,7 @@ func (m *AdminVerifyProtectedTimestampRequest) Reset() { *m = AdminVerif func (m *AdminVerifyProtectedTimestampRequest) String() string { return proto.CompactTextString(m) } func (*AdminVerifyProtectedTimestampRequest) ProtoMessage() {} func (*AdminVerifyProtectedTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{82} + return fileDescriptor_api_5f9585d414efb90d, []int{82} } func (m *AdminVerifyProtectedTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4245,7 +4250,7 @@ func (m *AdminVerifyProtectedTimestampResponse) Reset() { *m = AdminVeri func (m *AdminVerifyProtectedTimestampResponse) String() string { return proto.CompactTextString(m) } func (*AdminVerifyProtectedTimestampResponse) ProtoMessage() {} func (*AdminVerifyProtectedTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{83} + return fileDescriptor_api_5f9585d414efb90d, []int{83} } func (m *AdminVerifyProtectedTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4298,7 +4303,7 @@ func (m *AddSSTableRequest) Reset() { *m = AddSSTableRequest{} } func (m *AddSSTableRequest) String() string { return proto.CompactTextString(m) } func (*AddSSTableRequest) ProtoMessage() {} func (*AddSSTableRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{84} + return fileDescriptor_api_5f9585d414efb90d, []int{84} } func (m *AddSSTableRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4332,7 +4337,7 @@ func (m *AddSSTableResponse) Reset() { *m = AddSSTableResponse{} } func (m *AddSSTableResponse) String() string { return proto.CompactTextString(m) } func (*AddSSTableResponse) ProtoMessage() {} func (*AddSSTableResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{85} + return fileDescriptor_api_5f9585d414efb90d, []int{85} } func (m *AddSSTableResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4376,7 +4381,7 @@ func (m *RefreshRequest) Reset() { *m = RefreshRequest{} } func (m *RefreshRequest) String() string { return proto.CompactTextString(m) } func (*RefreshRequest) ProtoMessage() {} func (*RefreshRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{86} + return fileDescriptor_api_5f9585d414efb90d, []int{86} } func (m *RefreshRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4410,7 +4415,7 @@ func (m *RefreshResponse) Reset() { *m = RefreshResponse{} } func (m *RefreshResponse) String() string { return proto.CompactTextString(m) } func (*RefreshResponse) ProtoMessage() {} func (*RefreshResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{87} + return fileDescriptor_api_5f9585d414efb90d, []int{87} } func (m *RefreshResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4449,7 +4454,7 @@ func (m *RefreshRangeRequest) Reset() { *m = RefreshRangeRequest{} } func (m *RefreshRangeRequest) String() string { return proto.CompactTextString(m) } func (*RefreshRangeRequest) ProtoMessage() {} func (*RefreshRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{88} + return fileDescriptor_api_5f9585d414efb90d, []int{88} } func (m *RefreshRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4483,7 +4488,7 @@ func (m *RefreshRangeResponse) Reset() { *m = RefreshRangeResponse{} } func (m *RefreshRangeResponse) String() string { return proto.CompactTextString(m) } func (*RefreshRangeResponse) ProtoMessage() {} func (*RefreshRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{89} + return fileDescriptor_api_5f9585d414efb90d, []int{89} } func (m *RefreshRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4532,7 +4537,7 @@ func (m *SubsumeRequest) Reset() { *m = SubsumeRequest{} } func (m *SubsumeRequest) String() string { return proto.CompactTextString(m) } func (*SubsumeRequest) ProtoMessage() {} func (*SubsumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{90} + return fileDescriptor_api_5f9585d414efb90d, []int{90} } func (m *SubsumeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4581,7 +4586,7 @@ func (m *SubsumeResponse) Reset() { *m = SubsumeResponse{} } func (m *SubsumeResponse) String() string { return proto.CompactTextString(m) } func (*SubsumeResponse) ProtoMessage() {} func (*SubsumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{91} + return fileDescriptor_api_5f9585d414efb90d, []int{91} } func (m *SubsumeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4616,7 +4621,7 @@ func (m *RangeStatsRequest) Reset() { *m = RangeStatsRequest{} } func (m *RangeStatsRequest) String() string { return proto.CompactTextString(m) } func (*RangeStatsRequest) ProtoMessage() {} func (*RangeStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{92} + return fileDescriptor_api_5f9585d414efb90d, []int{92} } func (m *RangeStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4655,7 +4660,7 @@ func (m *RangeStatsResponse) Reset() { *m = RangeStatsResponse{} } func (m *RangeStatsResponse) String() string { return proto.CompactTextString(m) } func (*RangeStatsResponse) ProtoMessage() {} func (*RangeStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{93} + return fileDescriptor_api_5f9585d414efb90d, []int{93} } func (m *RangeStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4738,7 +4743,7 @@ func (m *RequestUnion) Reset() { *m = RequestUnion{} } func (m *RequestUnion) String() string { return proto.CompactTextString(m) } func (*RequestUnion) ProtoMessage() {} func (*RequestUnion) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{94} + return fileDescriptor_api_5f9585d414efb90d, []int{94} } func (m *RequestUnion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6188,7 +6193,7 @@ func (m *ResponseUnion) Reset() { *m = ResponseUnion{} } func (m *ResponseUnion) String() string { return proto.CompactTextString(m) } func (*ResponseUnion) ProtoMessage() {} func (*ResponseUnion) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{95} + return fileDescriptor_api_5f9585d414efb90d, []int{95} } func (m *ResponseUnion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7603,6 +7608,12 @@ type Header struct { // If a batch limit is used with ReverseScan requests, the spans for the // requests must be non-overlapping and in decreasing order. MaxSpanRequestKeys int64 `protobuf:"varint,8,opt,name=max_span_request_keys,json=maxSpanRequestKeys,proto3" json:"max_span_request_keys,omitempty"` + // If set to a non-zero value, sets a target (in bytes) for how large the + // response may grow. This is only supported for (forward and reverse) scans + // and limits the number of rows scanned (and returned). The target will be + // overshot; in particular, at least one row will always be returned (assuming + // one exists). A suitable resume span will be returned. + TargetBytes int64 `protobuf:"varint,15,opt,name=target_bytes,json=targetBytes,proto3" json:"target_bytes,omitempty"` // If set, all of the spans in the batch are distinct. Note that the // calculation of distinct spans does not include intents in an // EndTxnRequest. Currently set conservatively: a request might be @@ -7642,7 +7653,7 @@ func (m *Header) Reset() { *m = Header{} } func (m *Header) String() string { return proto.CompactTextString(m) } func (*Header) ProtoMessage() {} func (*Header) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{96} + return fileDescriptor_api_5f9585d414efb90d, []int{96} } func (m *Header) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7678,7 +7689,7 @@ type BatchRequest struct { func (m *BatchRequest) Reset() { *m = BatchRequest{} } func (*BatchRequest) ProtoMessage() {} func (*BatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{97} + return fileDescriptor_api_5f9585d414efb90d, []int{97} } func (m *BatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7715,7 +7726,7 @@ type BatchResponse struct { func (m *BatchResponse) Reset() { *m = BatchResponse{} } func (*BatchResponse) ProtoMessage() {} func (*BatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{98} + return fileDescriptor_api_5f9585d414efb90d, []int{98} } func (m *BatchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7773,7 +7784,7 @@ func (m *BatchResponse_Header) Reset() { *m = BatchResponse_Header{} } func (m *BatchResponse_Header) String() string { return proto.CompactTextString(m) } func (*BatchResponse_Header) ProtoMessage() {} func (*BatchResponse_Header) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{98, 0} + return fileDescriptor_api_5f9585d414efb90d, []int{98, 0} } func (m *BatchResponse_Header) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7812,7 +7823,7 @@ func (m *RangeFeedRequest) Reset() { *m = RangeFeedRequest{} } func (m *RangeFeedRequest) String() string { return proto.CompactTextString(m) } func (*RangeFeedRequest) ProtoMessage() {} func (*RangeFeedRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{99} + return fileDescriptor_api_5f9585d414efb90d, []int{99} } func (m *RangeFeedRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7853,7 +7864,7 @@ func (m *RangeFeedValue) Reset() { *m = RangeFeedValue{} } func (m *RangeFeedValue) String() string { return proto.CompactTextString(m) } func (*RangeFeedValue) ProtoMessage() {} func (*RangeFeedValue) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{100} + return fileDescriptor_api_5f9585d414efb90d, []int{100} } func (m *RangeFeedValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7894,7 +7905,7 @@ func (m *RangeFeedCheckpoint) Reset() { *m = RangeFeedCheckpoint{} } func (m *RangeFeedCheckpoint) String() string { return proto.CompactTextString(m) } func (*RangeFeedCheckpoint) ProtoMessage() {} func (*RangeFeedCheckpoint) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{101} + return fileDescriptor_api_5f9585d414efb90d, []int{101} } func (m *RangeFeedCheckpoint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7931,7 +7942,7 @@ func (m *RangeFeedError) Reset() { *m = RangeFeedError{} } func (m *RangeFeedError) String() string { return proto.CompactTextString(m) } func (*RangeFeedError) ProtoMessage() {} func (*RangeFeedError) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{102} + return fileDescriptor_api_5f9585d414efb90d, []int{102} } func (m *RangeFeedError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7968,7 +7979,7 @@ func (m *RangeFeedEvent) Reset() { *m = RangeFeedEvent{} } func (m *RangeFeedEvent) String() string { return proto.CompactTextString(m) } func (*RangeFeedEvent) ProtoMessage() {} func (*RangeFeedEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_api_51c48dd37e52e81c, []int{103} + return fileDescriptor_api_5f9585d414efb90d, []int{103} } func (m *RangeFeedEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10232,6 +10243,11 @@ func (m *ResponseHeader) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintApi(dAtA, i, uint64(m.ResumeReason)) } + if m.NumBytes != 0 { + dAtA[i] = 0x40 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.NumBytes)) + } return i, nil } @@ -15883,6 +15899,11 @@ func (m *Header) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.TargetBytes != 0 { + dAtA[i] = 0x78 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.TargetBytes)) + } return i, nil } @@ -16288,6 +16309,9 @@ func (m *ResponseHeader) Size() (n int) { if m.ResumeReason != 0 { n += 1 + sovApi(uint64(m.ResumeReason)) } + if m.NumBytes != 0 { + n += 1 + sovApi(uint64(m.NumBytes)) + } return n } @@ -19166,6 +19190,9 @@ func (m *Header) Size() (n int) { if m.DeferWriteTooOldError { n += 2 } + if m.TargetBytes != 0 { + n += 1 + sovApi(uint64(m.TargetBytes)) + } return n } @@ -19752,6 +19779,25 @@ func (m *ResponseHeader) Unmarshal(dAtA []byte) error { break } } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumBytes", wireType) + } + m.NumBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumBytes |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -36003,6 +36049,25 @@ func (m *Header) Unmarshal(dAtA []byte) error { } } m.DeferWriteTooOldError = bool(v != 0) + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetBytes", wireType) + } + m.TargetBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TargetBytes |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -37168,460 +37233,462 @@ var ( ErrIntOverflowApi = fmt.Errorf("proto: integer overflow") ) -func init() { proto.RegisterFile("roachpb/api.proto", fileDescriptor_api_51c48dd37e52e81c) } - -var fileDescriptor_api_51c48dd37e52e81c = []byte{ - // 7222 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5d, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xd6, 0x90, 0x14, 0x45, 0x1e, 0x3e, 0x44, 0x5d, 0xed, 0x83, 0x2b, 0xdb, 0x92, 0x96, 0xfb, - 0xf4, 0xc6, 0xd6, 0x7a, 0x77, 0xe3, 0xda, 0xb1, 0x1d, 0x27, 0x12, 0xc5, 0x5d, 0x72, 0xb5, 0xd2, - 0xca, 0x43, 0x6a, 0x1d, 0x3b, 0x75, 0x27, 0xb3, 0x33, 0x57, 0xd4, 0x64, 0xc9, 0x19, 0xee, 0xcc, - 0x50, 0x8f, 0x05, 0x8a, 0xbe, 0x7e, 0xa4, 0x48, 0x0b, 0xa3, 0x40, 0x8b, 0xa2, 0x48, 0x5a, 0xc4, - 0x40, 0x8a, 0xb6, 0x68, 0x91, 0x00, 0x05, 0x8a, 0x16, 0x0d, 0x5a, 0xe4, 0x47, 0xfb, 0xc3, 0x0d, - 0x82, 0x22, 0x28, 0x5a, 0x24, 0x28, 0x50, 0xa1, 0x51, 0x80, 0x36, 0xc8, 0x8f, 0x02, 0xfd, 0x55, - 0xc0, 0x3f, 0xda, 0xe2, 0x3e, 0xe6, 0x45, 0x0e, 0x1f, 0x92, 0xc7, 0xad, 0x8b, 0xfe, 0xd9, 0xd5, - 0x9c, 0xb9, 0xe7, 0xcc, 0xbd, 0xe7, 0x9e, 0x7b, 0xee, 0xf9, 0xee, 0x3d, 0xf7, 0x12, 0x66, 0x4c, - 0x43, 0x56, 0x76, 0x3a, 0x0f, 0xaf, 0xcb, 0x1d, 0x6d, 0xa9, 0x63, 0x1a, 0xb6, 0x81, 0x66, 0x14, - 0x43, 0x79, 0x44, 0xc9, 0x4b, 0xfc, 0xe5, 0x1c, 0x72, 0x4a, 0xa9, 0xb2, 0x2d, 0xb3, 0x62, 0x73, - 0xa7, 0x1c, 0x1a, 0x36, 0x4d, 0xc3, 0xb4, 0x38, 0xf5, 0x8c, 0x43, 0x6d, 0x63, 0x5b, 0xf6, 0x95, - 0x2e, 0x59, 0xb6, 0x61, 0xca, 0x4d, 0x7c, 0x1d, 0xeb, 0x4d, 0x4d, 0x77, 0xfe, 0x23, 0xe5, 0x76, - 0x15, 0x85, 0x97, 0xb9, 0x30, 0xac, 0xcc, 0x2d, 0x5e, 0xa8, 0xd8, 0xb5, 0xb5, 0xd6, 0xf5, 0x9d, - 0x96, 0x72, 0xdd, 0xd6, 0xda, 0xd8, 0xb2, 0xe5, 0x76, 0x87, 0xbf, 0x59, 0xa4, 0x6f, 0x6c, 0x53, - 0x56, 0x34, 0xbd, 0x79, 0xdd, 0xc4, 0x8a, 0x61, 0xaa, 0x58, 0x95, 0xac, 0x8e, 0xac, 0x3b, 0x55, - 0x6e, 0x1a, 0x4d, 0x83, 0xfe, 0x79, 0x9d, 0xfc, 0xc5, 0xa8, 0xa5, 0x9f, 0x83, 0xb4, 0x28, 0xeb, - 0x4d, 0x5c, 0xd3, 0xb7, 0x0d, 0xf4, 0x1a, 0x24, 0x54, 0x6c, 0x29, 0x45, 0x61, 0x51, 0xb8, 0x9a, - 0xb9, 0x59, 0x5a, 0xea, 0xd3, 0xc5, 0x12, 0x2d, 0xbb, 0x8a, 0x2d, 0xc5, 0xd4, 0x3a, 0xb6, 0x61, - 0xae, 0x24, 0xde, 0x3f, 0x5c, 0x98, 0x10, 0x29, 0x17, 0xfa, 0x24, 0x4c, 0xb6, 0xb0, 0x6c, 0xe1, - 0x62, 0x8c, 0xb2, 0x17, 0x43, 0xd8, 0xef, 0x91, 0xf7, 0x9c, 0x89, 0x15, 0x2e, 0xfd, 0x95, 0x00, - 0x39, 0x11, 0x3f, 0xee, 0x62, 0xcb, 0xae, 0x62, 0x59, 0xc5, 0x26, 0x3a, 0x07, 0xf1, 0x47, 0xf8, - 0xa0, 0x18, 0x5f, 0x14, 0xae, 0x66, 0x57, 0xa6, 0x3e, 0x38, 0x5c, 0x88, 0xaf, 0xe1, 0x03, 0x91, - 0xd0, 0xd0, 0x22, 0x4c, 0x61, 0x5d, 0x95, 0xc8, 0xeb, 0x44, 0xf0, 0x75, 0x12, 0xeb, 0xea, 0x1a, - 0x3e, 0x40, 0x0a, 0xa4, 0x2c, 0x22, 0x4d, 0x57, 0x70, 0x71, 0x72, 0x51, 0xb8, 0x3a, 0xb9, 0x72, - 0xe7, 0x83, 0xc3, 0x85, 0x72, 0x53, 0xb3, 0x77, 0xba, 0x0f, 0x97, 0x14, 0xa3, 0x7d, 0xdd, 0xad, - 0x95, 0xfa, 0xd0, 0xfb, 0xfb, 0x7a, 0xe7, 0x51, 0xf3, 0xfa, 0x80, 0x1e, 0x58, 0x6a, 0xec, 0xeb, - 0x75, 0xfc, 0x58, 0x74, 0x05, 0xbf, 0x92, 0xf8, 0xf1, 0x7b, 0x0b, 0xc2, 0xdd, 0x44, 0x4a, 0x28, - 0xc4, 0xee, 0x26, 0x52, 0xb1, 0x42, 0xbc, 0xf4, 0xef, 0x31, 0xc8, 0x8b, 0xd8, 0xea, 0x18, 0xba, - 0x85, 0x79, 0x33, 0x5e, 0x80, 0xb8, 0xbd, 0xaf, 0xd3, 0x66, 0x64, 0x6e, 0xce, 0x87, 0x28, 0xa3, - 0x61, 0xca, 0xba, 0x25, 0x2b, 0xb6, 0x66, 0xe8, 0x22, 0x29, 0x8a, 0x5e, 0x86, 0x8c, 0x89, 0xad, - 0x6e, 0x1b, 0xd3, 0x6e, 0xa3, 0x2d, 0xcc, 0xdc, 0x3c, 0x1b, 0xc2, 0x59, 0xef, 0xc8, 0xba, 0x08, - 0xac, 0x2c, 0xf9, 0x1b, 0x9d, 0x83, 0x94, 0xde, 0x6d, 0x13, 0xbd, 0x58, 0xb4, 0xd5, 0x71, 0x71, - 0x4a, 0xef, 0xb6, 0xd7, 0xf0, 0x81, 0x85, 0xca, 0x90, 0x31, 0x49, 0xa7, 0x49, 0x9a, 0xbe, 0x6d, - 0x58, 0xc5, 0xe4, 0x62, 0xfc, 0x6a, 0xe6, 0xe6, 0xd3, 0x83, 0xba, 0x96, 0x98, 0x01, 0xef, 0x1f, - 0x30, 0x1d, 0x82, 0x85, 0xea, 0x90, 0xe3, 0x35, 0x33, 0xb1, 0x6c, 0x19, 0x7a, 0x71, 0x6a, 0x51, - 0xb8, 0x9a, 0xbf, 0xb9, 0x14, 0x26, 0x26, 0xa0, 0x05, 0xf2, 0xd8, 0x6d, 0x63, 0x91, 0x72, 0x89, - 0x59, 0xd3, 0xf7, 0x54, 0x7a, 0x1d, 0xb2, 0xfe, 0xb7, 0x08, 0x41, 0x5e, 0xac, 0xd4, 0xb7, 0xd6, - 0x2b, 0xd2, 0xd6, 0xc6, 0xda, 0xc6, 0xfd, 0x37, 0x37, 0x0a, 0x13, 0xe8, 0x14, 0x14, 0x38, 0x6d, - 0xad, 0xf2, 0x96, 0x74, 0xaf, 0xb6, 0x5e, 0x6b, 0x14, 0x84, 0xb9, 0xc4, 0x2f, 0x7f, 0x7d, 0x7e, - 0xa2, 0xf4, 0x00, 0xe0, 0x0e, 0xb6, 0xb9, 0xed, 0xa0, 0x15, 0x48, 0xee, 0xd0, 0x4f, 0x72, 0xeb, - 0x5d, 0x0c, 0xad, 0x9b, 0xcf, 0xce, 0x56, 0x52, 0xa4, 0x99, 0xdf, 0x3b, 0x5c, 0x10, 0x44, 0xce, - 0xc9, 0xfa, 0xb5, 0xf4, 0x6d, 0x01, 0x32, 0x54, 0x30, 0x6b, 0x08, 0x2a, 0xf7, 0x48, 0x3e, 0x3f, - 0xb2, 0xd5, 0xfd, 0xa2, 0xd1, 0x12, 0x4c, 0xee, 0xca, 0xad, 0xee, 0xb0, 0xc1, 0xf1, 0x80, 0xbc, - 0x17, 0x59, 0x31, 0xf4, 0x2a, 0x64, 0x35, 0xdd, 0xc6, 0xba, 0x2d, 0x31, 0xb6, 0xf8, 0x08, 0xb6, - 0x0c, 0x2b, 0x4d, 0x1f, 0x4a, 0xdf, 0x12, 0x00, 0x36, 0xbb, 0x51, 0xaa, 0x86, 0x0c, 0xee, 0xb1, - 0xea, 0xef, 0x0c, 0x6e, 0xd6, 0x8a, 0x33, 0x90, 0xd4, 0xf4, 0x96, 0xa6, 0xb3, 0xfa, 0xa7, 0x44, - 0xfe, 0x84, 0x4e, 0xc1, 0xe4, 0xc3, 0x96, 0xa6, 0xab, 0xd4, 0xc6, 0x53, 0x22, 0x7b, 0xe0, 0xea, - 0x17, 0x21, 0x43, 0xeb, 0x1e, 0xa1, 0xf6, 0x4b, 0x5f, 0x89, 0xc1, 0xe9, 0xb2, 0xa1, 0xab, 0x1a, - 0x19, 0x6c, 0x72, 0xeb, 0x63, 0xa1, 0x9b, 0x17, 0x21, 0x8d, 0xf7, 0x3b, 0x63, 0x76, 0x6f, 0x0a, - 0xef, 0x77, 0xe8, 0x5f, 0xe1, 0xaa, 0x43, 0x9f, 0x84, 0xb3, 0x72, 0xab, 0x65, 0xec, 0x49, 0xda, - 0xb6, 0xa4, 0x1a, 0xd8, 0x92, 0x74, 0xc3, 0x96, 0xf0, 0xbe, 0x66, 0xd9, 0xd4, 0x1f, 0xa4, 0xc4, - 0x59, 0xfa, 0xba, 0xb6, 0xbd, 0x6a, 0x60, 0x6b, 0xc3, 0xb0, 0x2b, 0xe4, 0x15, 0x57, 0xf8, 0x3b, - 0x70, 0xa6, 0x57, 0x37, 0x51, 0xea, 0xfe, 0xef, 0x04, 0xc8, 0xd7, 0x74, 0xcd, 0xfe, 0x58, 0x28, - 0xdd, 0xd5, 0x5e, 0xdc, 0xaf, 0xbd, 0x6b, 0x50, 0xd8, 0x96, 0xb5, 0xd6, 0x7d, 0xbd, 0x61, 0xb4, - 0x1f, 0x5a, 0xb6, 0xa1, 0x63, 0x8b, 0xab, 0xb7, 0x8f, 0xce, 0x75, 0xf6, 0x00, 0xa6, 0xdd, 0x36, - 0x45, 0xa9, 0xac, 0x27, 0x50, 0xa8, 0xe9, 0x8a, 0x89, 0xdb, 0x58, 0x8f, 0x54, 0x5b, 0x4f, 0x43, - 0x5a, 0x73, 0xe4, 0x52, 0x8d, 0xc5, 0x45, 0x8f, 0xc0, 0xdb, 0xd4, 0x85, 0x19, 0xdf, 0xb7, 0xa3, - 0x74, 0x7e, 0x4f, 0x41, 0x5a, 0xc7, 0x7b, 0x92, 0xd7, 0x5f, 0x71, 0x31, 0xa5, 0xe3, 0x3d, 0xe6, - 0xac, 0xde, 0x82, 0xdc, 0x2a, 0x6e, 0x61, 0x1b, 0x47, 0xef, 0xc9, 0xb7, 0x20, 0xef, 0x88, 0x8e, - 0xb2, 0x93, 0x7e, 0x47, 0x00, 0xc4, 0xe5, 0x92, 0x29, 0x32, 0xca, 0x7e, 0x5a, 0x20, 0x21, 0x80, - 0xdd, 0x35, 0x75, 0x36, 0x97, 0x33, 0x2b, 0x05, 0x46, 0xa2, 0xd3, 0xb9, 0xe7, 0x51, 0x13, 0x7e, - 0x8f, 0xea, 0x86, 0x24, 0x24, 0x18, 0xd9, 0x83, 0xd9, 0x40, 0xf5, 0xa2, 0xed, 0xca, 0x04, 0xad, - 0x59, 0x6c, 0x31, 0xee, 0x0f, 0xbf, 0x28, 0xb1, 0xf4, 0x0e, 0xcc, 0x94, 0x5b, 0x58, 0x36, 0xa3, - 0x56, 0x0b, 0xef, 0xce, 0xb7, 0x00, 0xf9, 0xc5, 0x47, 0xd9, 0xa5, 0xbf, 0x2b, 0x00, 0x12, 0xf1, - 0x2e, 0x36, 0xed, 0xc8, 0xbb, 0x74, 0x15, 0x32, 0xb6, 0x6c, 0x36, 0xb1, 0x2d, 0x91, 0x98, 0x9d, - 0xbb, 0xab, 0x67, 0x7c, 0x82, 0x48, 0xe4, 0xbe, 0xb4, 0xd3, 0x52, 0x96, 0x1a, 0x4e, 0x4c, 0xef, - 0x44, 0x60, 0x8c, 0x8f, 0x90, 0xb9, 0x06, 0xde, 0x86, 0xd9, 0x40, 0x2d, 0xa3, 0x54, 0xc1, 0xd7, - 0x05, 0xc8, 0xd4, 0x15, 0x59, 0x8f, 0xb2, 0xed, 0xaf, 0x43, 0xc6, 0x52, 0x64, 0x5d, 0xda, 0x36, - 0xcc, 0xb6, 0x6c, 0x53, 0x93, 0xcd, 0x07, 0xda, 0xee, 0x46, 0xb4, 0x8a, 0xac, 0xdf, 0xa6, 0x85, - 0x44, 0xb0, 0xdc, 0xbf, 0xfd, 0x56, 0x7d, 0x37, 0x91, 0x8a, 0x17, 0x12, 0xa5, 0xff, 0x10, 0x20, - 0xcb, 0x6a, 0x19, 0xa5, 0x55, 0xbf, 0x08, 0x09, 0xd3, 0xd8, 0x63, 0x56, 0x9d, 0xb9, 0xf9, 0x54, - 0x88, 0x88, 0x35, 0x7c, 0xe0, 0x9f, 0x4e, 0x68, 0x71, 0xb4, 0x02, 0x3c, 0xec, 0x92, 0x28, 0x77, - 0x7c, 0x5c, 0x6e, 0x60, 0x5c, 0x22, 0x91, 0x71, 0x05, 0xa6, 0x1f, 0xca, 0xb6, 0xb2, 0x23, 0x99, - 0xbc, 0x92, 0x64, 0xea, 0x89, 0x5f, 0xcd, 0x8a, 0x79, 0x4a, 0x76, 0xaa, 0x6e, 0x95, 0xfe, 0xd0, - 0x31, 0x51, 0x0b, 0x7f, 0xfc, 0xbb, 0xe9, 0x3f, 0x05, 0x6e, 0xa9, 0x4e, 0x65, 0xff, 0xbf, 0xf5, - 0xd6, 0xd7, 0x62, 0x70, 0xb6, 0xbc, 0x83, 0x95, 0x47, 0x65, 0x43, 0xb7, 0x34, 0xcb, 0xc6, 0xba, - 0x72, 0x10, 0x65, 0x97, 0x3d, 0x05, 0xe9, 0x3d, 0xcd, 0xde, 0x91, 0x54, 0x6d, 0x7b, 0x9b, 0xfa, - 0x94, 0x94, 0x98, 0x22, 0x84, 0x55, 0x6d, 0x7b, 0x1b, 0xdd, 0x82, 0x44, 0xdb, 0x50, 0x59, 0x54, - 0x99, 0xbf, 0xb9, 0x10, 0x22, 0x9e, 0x56, 0xcd, 0xea, 0xb6, 0xd7, 0x0d, 0x15, 0x8b, 0xb4, 0x30, - 0x9a, 0x07, 0x50, 0x08, 0xb5, 0x63, 0x68, 0xba, 0xcd, 0x67, 0x17, 0x1f, 0x05, 0x55, 0x21, 0x6d, - 0x63, 0xb3, 0xad, 0xe9, 0xb2, 0x4d, 0xa0, 0x35, 0x51, 0xde, 0xc5, 0xd0, 0x8a, 0x77, 0x5a, 0x9a, - 0x22, 0xf7, 0xad, 0x11, 0x78, 0xcc, 0xdc, 0x97, 0xbd, 0x9b, 0x80, 0x62, 0xbf, 0x86, 0xa2, 0xb4, - 0x93, 0x4d, 0x48, 0x12, 0xc0, 0xd9, 0xb2, 0xb9, 0xa5, 0xdc, 0x1c, 0xa4, 0x88, 0x90, 0x1a, 0x50, - 0xe0, 0xda, 0xb2, 0x79, 0xe5, 0xb9, 0x9c, 0xb9, 0xbf, 0x10, 0x20, 0xc9, 0x5e, 0xa0, 0x1b, 0x90, - 0xe2, 0xb8, 0x5a, 0xa5, 0x75, 0x8c, 0xaf, 0x9c, 0x39, 0x3a, 0x5c, 0x98, 0x62, 0x28, 0x7a, 0xf5, - 0x03, 0xef, 0x4f, 0x71, 0x8a, 0x01, 0x69, 0x95, 0xf4, 0x99, 0x65, 0xcb, 0xa6, 0x4d, 0xd7, 0x2f, - 0x48, 0x9f, 0x65, 0xc5, 0x14, 0x25, 0xac, 0xe1, 0x03, 0x74, 0x17, 0x92, 0x96, 0x2d, 0xdb, 0x5d, - 0x8b, 0xf7, 0xda, 0xb1, 0x2a, 0x5b, 0xa7, 0x9c, 0x22, 0x97, 0x40, 0x82, 0x04, 0x15, 0xdb, 0xb2, - 0xd6, 0xa2, 0xdd, 0x98, 0x16, 0xf9, 0x53, 0xe9, 0xab, 0x02, 0x24, 0x59, 0x51, 0x74, 0x16, 0x66, - 0xc5, 0xe5, 0x8d, 0x3b, 0x15, 0xa9, 0xb6, 0xb1, 0x5a, 0x69, 0x54, 0xc4, 0xf5, 0xda, 0xc6, 0x72, - 0xa3, 0x52, 0x98, 0x40, 0x67, 0x00, 0x39, 0x2f, 0xca, 0xf7, 0x37, 0xea, 0xb5, 0x7a, 0xa3, 0xb2, - 0xd1, 0x28, 0x08, 0x14, 0x89, 0x53, 0xba, 0x8f, 0x1a, 0x43, 0x17, 0x61, 0xb1, 0x97, 0x2a, 0xd5, - 0x1b, 0xcb, 0x8d, 0xba, 0x54, 0xa9, 0x37, 0x6a, 0xeb, 0xcb, 0x8d, 0xca, 0x6a, 0x21, 0x3e, 0xa4, - 0x14, 0xf9, 0x88, 0x28, 0x56, 0xca, 0x8d, 0x42, 0xa2, 0xf4, 0x04, 0x4e, 0x8b, 0x58, 0x31, 0xda, - 0x9d, 0xae, 0x8d, 0x49, 0x2d, 0xad, 0x28, 0xc7, 0xcb, 0x59, 0x98, 0x52, 0xcd, 0x03, 0xc9, 0xec, - 0xea, 0x7c, 0xb4, 0x24, 0x55, 0xf3, 0x40, 0xec, 0xea, 0xdc, 0x18, 0xff, 0x4c, 0x80, 0x33, 0xbd, - 0x1f, 0x8f, 0xd2, 0x14, 0x3f, 0x07, 0x19, 0x59, 0x55, 0xb1, 0x2a, 0xa9, 0xb8, 0x65, 0xcb, 0x3c, - 0x08, 0xb8, 0xe1, 0x93, 0xc4, 0xd7, 0x9e, 0x96, 0xd8, 0xa2, 0xd3, 0x92, 0xbb, 0xf6, 0xb4, 0xfe, - 0xa0, 0x5c, 0xa6, 0xf5, 0x59, 0x25, 0x8c, 0x8e, 0x47, 0xa2, 0xb2, 0x28, 0xa5, 0xf4, 0xa7, 0x09, - 0xc8, 0x55, 0x74, 0xb5, 0xb1, 0x1f, 0xe9, 0x8c, 0x70, 0x06, 0x92, 0x8a, 0xd1, 0x6e, 0x6b, 0xb6, - 0xa3, 0x2d, 0xf6, 0x84, 0x3e, 0x05, 0x29, 0x15, 0xcb, 0xaa, 0x0b, 0xe9, 0x47, 0x45, 0x32, 0xa2, - 0x5b, 0x1c, 0x7d, 0x01, 0xce, 0x12, 0x47, 0x6a, 0xea, 0x72, 0x4b, 0x62, 0xd2, 0x24, 0xdb, 0xd4, - 0x9a, 0x4d, 0x6c, 0xf2, 0x95, 0xae, 0xab, 0x21, 0xf5, 0xac, 0x71, 0x8e, 0x32, 0x65, 0x68, 0xb0, - 0xf2, 0xe2, 0x69, 0x2d, 0x8c, 0x8c, 0x3e, 0xeb, 0xae, 0x99, 0x58, 0x1d, 0x59, 0xb7, 0xb8, 0x93, - 0x1a, 0xb4, 0x80, 0xc6, 0x75, 0xc9, 0xe7, 0x04, 0x42, 0xb1, 0xd0, 0x75, 0x12, 0x7e, 0x3f, 0xee, - 0x6a, 0x26, 0x96, 0x6e, 0x74, 0x94, 0x62, 0x92, 0xb4, 0x7d, 0x25, 0x7f, 0x74, 0xb8, 0x00, 0x22, - 0x23, 0xdf, 0xd8, 0x2c, 0x93, 0x70, 0x9c, 0xfd, 0xdd, 0x51, 0xd0, 0x0a, 0xcc, 0x93, 0x89, 0x93, - 0xb7, 0x47, 0xb6, 0xa5, 0x1d, 0xad, 0xb9, 0x83, 0x4d, 0xc9, 0x5d, 0x9e, 0x2d, 0xa6, 0xa8, 0xfe, - 0xe6, 0x14, 0x59, 0x67, 0x95, 0x5d, 0xb6, 0xab, 0xb4, 0x88, 0xab, 0x22, 0xa2, 0xeb, 0x8e, 0xa1, - 0x59, 0x86, 0x5e, 0x4c, 0x33, 0x5d, 0xb3, 0x27, 0xf4, 0x06, 0x14, 0x34, 0x5d, 0xda, 0x6e, 0x69, - 0xcd, 0x1d, 0x5b, 0xda, 0x33, 0x35, 0x1b, 0x5b, 0xc5, 0x19, 0xda, 0xa4, 0x30, 0x13, 0xac, 0xf3, - 0xc5, 0x49, 0xf5, 0x4d, 0x52, 0x92, 0x37, 0x2e, 0xaf, 0xe9, 0xb7, 0x29, 0x3f, 0x25, 0x5a, 0xee, - 0x44, 0x3d, 0x55, 0x48, 0x95, 0xfe, 0x49, 0x80, 0xbc, 0x63, 0x38, 0x51, 0x9a, 0xfa, 0x55, 0x28, - 0x18, 0x3a, 0x96, 0x3a, 0x3b, 0xb2, 0x85, 0xb9, 0x62, 0xf8, 0x6c, 0x92, 0x37, 0x74, 0xbc, 0x49, - 0xc8, 0x4c, 0x13, 0x68, 0x13, 0x66, 0x2c, 0x5b, 0x6e, 0x6a, 0x7a, 0xd3, 0xa7, 0xaf, 0xc9, 0xf1, - 0xe3, 0xe3, 0x02, 0xe7, 0x76, 0xe9, 0x81, 0x10, 0xe4, 0xfb, 0x02, 0xcc, 0x2c, 0xab, 0x6d, 0x4d, - 0xaf, 0x77, 0x5a, 0x5a, 0xa4, 0x60, 0xfa, 0x22, 0xa4, 0x2d, 0x22, 0xd3, 0xf3, 0xe3, 0x1e, 0x10, - 0x4a, 0xd1, 0x37, 0xc4, 0xa1, 0xdf, 0x83, 0x69, 0xbc, 0xdf, 0xd1, 0x4c, 0xd9, 0xd6, 0x0c, 0x9d, - 0xc5, 0xfe, 0x89, 0xf1, 0xdb, 0x96, 0xf7, 0x78, 0xbd, 0xf8, 0x9f, 0xb7, 0xec, 0x2d, 0x40, 0xfe, - 0x86, 0x45, 0x09, 0x02, 0x24, 0x98, 0xa5, 0xa2, 0xb7, 0x74, 0x2b, 0x62, 0xad, 0x71, 0x47, 0xfb, - 0x79, 0x38, 0x15, 0xfc, 0x40, 0x94, 0xb5, 0x7f, 0x87, 0xf7, 0xf8, 0x3a, 0x36, 0x3f, 0x22, 0xfc, - 0xe9, 0x17, 0x1f, 0x65, 0xcd, 0xbf, 0x2c, 0xc0, 0x39, 0x2a, 0x9b, 0x6e, 0x0a, 0x6c, 0x63, 0x93, - 0xee, 0x94, 0x44, 0x69, 0xb4, 0x17, 0x20, 0xc9, 0xe0, 0x24, 0xb5, 0xd8, 0xc9, 0x95, 0x0c, 0x09, - 0x51, 0xea, 0xb6, 0x61, 0x92, 0x10, 0x85, 0xbf, 0xe2, 0xed, 0x94, 0x61, 0x2e, 0xac, 0x2e, 0x11, - 0xe3, 0xed, 0x19, 0x1e, 0x29, 0x12, 0x13, 0x2f, 0xef, 0x90, 0x10, 0x09, 0x55, 0x20, 0xa3, 0xd0, - 0xbf, 0x24, 0xfb, 0xa0, 0x83, 0xa9, 0xfc, 0xfc, 0xb0, 0x20, 0x93, 0xb1, 0x35, 0x0e, 0x3a, 0x98, - 0x44, 0xaa, 0xce, 0xdf, 0x44, 0x5d, 0xbe, 0xa6, 0x0e, 0x0d, 0x53, 0xe9, 0xf8, 0xa2, 0x65, 0x9d, - 0x48, 0x2f, 0xa0, 0x89, 0x3f, 0x8f, 0x73, 0x55, 0xb0, 0x2f, 0x71, 0xa6, 0x48, 0x03, 0x93, 0xb7, - 0xe1, 0x8c, 0x8a, 0x3b, 0x26, 0x56, 0x64, 0x1b, 0xab, 0x92, 0xbf, 0xf9, 0xb1, 0x63, 0x34, 0xff, - 0x94, 0x27, 0xc3, 0xa3, 0xa2, 0xb7, 0x00, 0xf9, 0x64, 0xb3, 0x96, 0x39, 0xc0, 0xe7, 0x38, 0x4a, - 0x99, 0xf1, 0xa4, 0x30, 0xba, 0x85, 0xca, 0x90, 0xc2, 0xfb, 0x1d, 0x89, 0x6e, 0x17, 0x26, 0x8e, - 0xb9, 0x5d, 0x38, 0x85, 0xf7, 0x3b, 0x84, 0x88, 0xb6, 0xc8, 0x0c, 0xe7, 0x84, 0x04, 0xb4, 0xda, - 0xd6, 0x68, 0x64, 0xe1, 0xd9, 0x0b, 0x17, 0x37, 0xed, 0x46, 0x03, 0x4c, 0x04, 0xef, 0xbb, 0xf7, - 0x04, 0x78, 0x2a, 0xb4, 0xef, 0xa2, 0x9c, 0xec, 0x9c, 0x1d, 0xd3, 0xd8, 0x49, 0x76, 0x4c, 0x4b, - 0x7f, 0xe4, 0x8c, 0x7a, 0x11, 0xb7, 0x0c, 0xa2, 0xde, 0x8f, 0x60, 0xf1, 0x69, 0xca, 0xe9, 0xf6, - 0xd8, 0xb1, 0xbb, 0xdd, 0x61, 0xed, 0x71, 0x0b, 0x3d, 0x95, 0x8d, 0xd2, 0x2d, 0xfc, 0xa6, 0x00, - 0xb3, 0x55, 0x2c, 0x9b, 0xf6, 0x43, 0x2c, 0xdb, 0x11, 0x87, 0xb4, 0x2f, 0x42, 0x5c, 0x37, 0xf6, - 0x8e, 0xb3, 0xfe, 0x46, 0xca, 0x7b, 0xd3, 0x56, 0xb0, 0x5e, 0x51, 0xb6, 0xfa, 0x6f, 0x62, 0x90, - 0xbe, 0x53, 0x8e, 0xb2, 0xad, 0xaf, 0xf1, 0x55, 0x5a, 0x36, 0xd4, 0xc3, 0xcc, 0xd2, 0xfd, 0xde, - 0xd2, 0x9d, 0xf2, 0x1a, 0x3e, 0x70, 0xcc, 0x92, 0x70, 0xa1, 0x65, 0x48, 0xdb, 0x3b, 0x26, 0xb6, - 0x76, 0x8c, 0x96, 0x7a, 0x9c, 0x98, 0xc5, 0xe3, 0x9a, 0x7b, 0x04, 0x93, 0x54, 0xae, 0xb3, 0x99, - 0x2f, 0x84, 0x6c, 0xe6, 0x93, 0xcf, 0xb8, 0x61, 0x5f, 0xec, 0x38, 0x9f, 0x71, 0x08, 0xac, 0x73, - 0xdc, 0xd8, 0x68, 0xb2, 0x90, 0x2c, 0xbd, 0x01, 0x40, 0x9a, 0x16, 0x65, 0xf7, 0xfc, 0x7a, 0x1c, - 0xf2, 0x9b, 0x5d, 0x6b, 0x27, 0x62, 0x7b, 0x2c, 0x03, 0x74, 0xba, 0x16, 0x05, 0x0b, 0xfb, 0x3a, - 0x6f, 0xff, 0x88, 0x34, 0x01, 0x47, 0x01, 0x8c, 0xaf, 0xb1, 0xaf, 0xa3, 0xfb, 0x5c, 0x08, 0x96, - 0xbc, 0x5c, 0x83, 0x6b, 0x63, 0xc0, 0xca, 0xc6, 0xbe, 0xbe, 0x8e, 0x5d, 0x3c, 0xc9, 0x04, 0x62, - 0x22, 0xf0, 0x35, 0x98, 0x22, 0x0f, 0x92, 0x6d, 0x1c, 0xa7, 0xe7, 0x93, 0x84, 0xa7, 0x61, 0xa0, - 0x57, 0x21, 0xcd, 0xb8, 0xc9, 0xfc, 0x95, 0xa4, 0xf3, 0x57, 0x58, 0x93, 0xb8, 0x36, 0xe9, 0xcc, - 0x95, 0xa2, 0xac, 0x64, 0xb6, 0x3a, 0x05, 0x93, 0xdb, 0x86, 0xa9, 0x60, 0x9a, 0x5c, 0x90, 0x12, - 0xd9, 0x83, 0xbf, 0x73, 0xef, 0x26, 0x52, 0xa9, 0x42, 0xfa, 0x6e, 0x22, 0x95, 0x2e, 0x40, 0xe9, - 0xab, 0x02, 0x4c, 0xbb, 0xbd, 0x12, 0xa5, 0x4b, 0x2f, 0x07, 0x54, 0x7a, 0xfc, 0x7e, 0x21, 0x6a, - 0x2c, 0xfd, 0x3d, 0x8d, 0x6f, 0x14, 0x63, 0x97, 0x76, 0x53, 0x94, 0x66, 0xb3, 0xc2, 0xd2, 0x4a, - 0x62, 0x27, 0xec, 0x6a, 0x9a, 0x68, 0x72, 0x03, 0x4e, 0x69, 0x6d, 0xe2, 0xf3, 0x35, 0xbb, 0x75, - 0xc0, 0x31, 0x9a, 0x8d, 0x9d, 0x4d, 0xd1, 0x59, 0xef, 0x5d, 0xd9, 0x79, 0xc5, 0xdd, 0x20, 0xdb, - 0x26, 0xf1, 0x9a, 0x15, 0xa5, 0xde, 0x6b, 0x90, 0x33, 0x99, 0x68, 0x12, 0xab, 0x1c, 0x53, 0xf5, - 0x59, 0x97, 0x95, 0x68, 0xff, 0x9b, 0x31, 0x98, 0x7e, 0xa3, 0x8b, 0xcd, 0x83, 0x8f, 0xa1, 0xee, - 0x2f, 0xc3, 0xf4, 0x9e, 0xac, 0xd9, 0xd2, 0xb6, 0x61, 0x4a, 0xdd, 0x8e, 0x2a, 0xdb, 0x4e, 0x6e, - 0x44, 0x8e, 0x90, 0x6f, 0x1b, 0xe6, 0x16, 0x25, 0x22, 0x0c, 0xe8, 0x91, 0x6e, 0xec, 0xe9, 0x12, - 0x21, 0x53, 0x88, 0xbc, 0xaf, 0xf3, 0xc5, 0xe6, 0x95, 0x97, 0xfe, 0xf1, 0x70, 0xe1, 0xd6, 0x58, - 0x29, 0x4d, 0x34, 0x2b, 0xac, 0xdb, 0xd5, 0xd4, 0xa5, 0xad, 0xad, 0xda, 0xaa, 0x58, 0xa0, 0x22, - 0xdf, 0x64, 0x12, 0x1b, 0xfb, 0xba, 0x33, 0xb5, 0x7f, 0x20, 0x40, 0xc1, 0x53, 0x58, 0x94, 0xbd, - 0x5a, 0x81, 0xcc, 0xe3, 0x2e, 0x36, 0xb5, 0x13, 0xf4, 0x29, 0x70, 0x46, 0xe2, 0x96, 0xde, 0x86, - 0x6c, 0x40, 0x0f, 0xf1, 0x0f, 0xa7, 0x87, 0xcc, 0x9e, 0xa7, 0x82, 0xd2, 0x77, 0x05, 0x40, 0xb4, - 0xf1, 0x35, 0xb6, 0xce, 0xff, 0x31, 0x33, 0x98, 0xab, 0x50, 0xa0, 0x49, 0x86, 0x92, 0xb6, 0x2d, - 0xb5, 0x35, 0xcb, 0xd2, 0xf4, 0x26, 0xb7, 0x98, 0x3c, 0xa5, 0xd7, 0xb6, 0xd7, 0x19, 0x95, 0xf7, - 0xe5, 0xcf, 0xc2, 0x6c, 0xa0, 0x35, 0x51, 0xf6, 0xe6, 0x79, 0xc8, 0x6e, 0x1b, 0x5d, 0x5d, 0x95, - 0xd8, 0xa2, 0x19, 0x5f, 0x1c, 0xcc, 0x50, 0x1a, 0xfb, 0x5e, 0xe9, 0xbf, 0x62, 0x70, 0x4a, 0xc4, - 0x96, 0xd1, 0xda, 0xc5, 0xd1, 0xeb, 0xf3, 0x3e, 0xf0, 0xcd, 0x18, 0xe9, 0xc3, 0xa8, 0x35, 0xcd, - 0x64, 0xb0, 0xe9, 0x2e, 0xb8, 0xea, 0x7e, 0x71, 0xb8, 0x65, 0xf6, 0xaf, 0xb3, 0xf3, 0x95, 0xbb, - 0x44, 0x60, 0xe5, 0x6e, 0x17, 0xa6, 0xb5, 0xa6, 0x6e, 0x10, 0x47, 0x66, 0xe1, 0xc7, 0x7a, 0xb7, - 0xed, 0xc0, 0x9a, 0x17, 0xc7, 0xa8, 0x6b, 0x8d, 0x71, 0xd6, 0xf1, 0xe3, 0x8d, 0x6e, 0x9b, 0xc6, - 0xd8, 0x2b, 0x67, 0x48, 0xb5, 0x8f, 0x0e, 0x17, 0xf2, 0x81, 0x77, 0x96, 0x98, 0xd7, 0xdc, 0x67, - 0xf2, 0x11, 0x6e, 0x00, 0x3f, 0x0d, 0xa7, 0x7b, 0x3a, 0x20, 0xca, 0x68, 0xe8, 0x6f, 0xe3, 0x70, - 0x2e, 0x28, 0x3e, 0x6a, 0xcc, 0xf2, 0x7f, 0xa4, 0x93, 0xab, 0x90, 0x6b, 0x6b, 0xfa, 0xc9, 0x56, - 0x2e, 0xb3, 0x6d, 0x4d, 0xf7, 0x16, 0x80, 0x43, 0xcc, 0x25, 0xf9, 0x3f, 0x67, 0x2e, 0x32, 0xcc, - 0x85, 0xf5, 0x67, 0x94, 0x36, 0xf3, 0xae, 0x00, 0xd9, 0xa8, 0xd7, 0xe4, 0x4e, 0x96, 0x00, 0xc6, - 0xdb, 0xdc, 0x80, 0xdc, 0x47, 0xb0, 0x88, 0xf7, 0xfb, 0x02, 0xa0, 0x86, 0xd9, 0xd5, 0x09, 0x38, - 0xbe, 0x67, 0x34, 0xa3, 0x6c, 0xec, 0x29, 0x98, 0xd4, 0x74, 0x15, 0xef, 0xd3, 0xc6, 0x26, 0x44, - 0xf6, 0x10, 0xd8, 0x83, 0x8c, 0x8f, 0xb5, 0x07, 0xe9, 0xe5, 0x91, 0x04, 0x2a, 0x1a, 0xa5, 0x16, - 0xbe, 0x19, 0x83, 0x59, 0xde, 0x9c, 0xc8, 0x17, 0x31, 0x4f, 0x94, 0x62, 0x8e, 0x3e, 0x0d, 0xd0, - 0x31, 0xf1, 0xae, 0xc4, 0x58, 0xe3, 0x63, 0xb1, 0xa6, 0x09, 0x07, 0x25, 0xa0, 0xcf, 0xc1, 0x34, - 0x19, 0xe8, 0x1d, 0xd3, 0xe8, 0x18, 0x16, 0x89, 0x63, 0xac, 0xf1, 0xa0, 0xd1, 0xcc, 0xd1, 0xe1, - 0x42, 0x6e, 0x5d, 0xd3, 0x37, 0x39, 0x63, 0xa3, 0x2e, 0x12, 0x8f, 0xe1, 0x3e, 0x3a, 0x03, 0xf0, - 0x1f, 0x04, 0x38, 0xf5, 0x91, 0x2d, 0xfb, 0xfe, 0x6f, 0x68, 0xcc, 0x9d, 0x87, 0x0a, 0xf4, 0xb1, - 0xa6, 0x6f, 0x1b, 0xd1, 0x2f, 0xc6, 0xbf, 0x2b, 0xc0, 0x8c, 0x4f, 0x7c, 0x94, 0x51, 0xce, 0xc9, - 0x0e, 0x32, 0x7c, 0x9e, 0xc4, 0x3d, 0x7e, 0xb3, 0x8f, 0x72, 0x50, 0xfd, 0x65, 0x0c, 0xce, 0x94, - 0xd9, 0xee, 0xb4, 0x93, 0xba, 0x11, 0xa5, 0x95, 0x14, 0x61, 0x6a, 0x17, 0x9b, 0x96, 0x66, 0xb0, - 0xf9, 0x36, 0x27, 0x3a, 0x8f, 0x68, 0x0e, 0x52, 0x96, 0x2e, 0x77, 0xac, 0x1d, 0xc3, 0xd9, 0xc5, - 0x73, 0x9f, 0xdd, 0x34, 0x93, 0xc9, 0x93, 0xa7, 0x99, 0x24, 0x87, 0xa7, 0x99, 0x4c, 0x7d, 0xe8, - 0x34, 0x13, 0xbe, 0x65, 0xf6, 0x1d, 0x01, 0xce, 0xf6, 0xe9, 0x2f, 0x4a, 0x9b, 0xf9, 0x22, 0x64, - 0x14, 0x2e, 0x98, 0x78, 0x63, 0xb6, 0x2b, 0x58, 0x23, 0xc5, 0x4e, 0x88, 0x51, 0x8e, 0x0e, 0x17, - 0xc0, 0xa9, 0x6a, 0x6d, 0x95, 0xab, 0x88, 0xfc, 0xad, 0x96, 0x7e, 0x25, 0x03, 0xd3, 0x95, 0x7d, - 0xb6, 0xe6, 0x5d, 0x67, 0x61, 0x01, 0xba, 0x0d, 0xa9, 0x8e, 0x69, 0xec, 0x6a, 0x4e, 0x33, 0xf2, - 0x81, 0x90, 0xc9, 0x69, 0x46, 0x0f, 0xd7, 0x26, 0xe7, 0x10, 0x5d, 0x5e, 0xd4, 0x80, 0xf4, 0x3d, - 0x43, 0x91, 0x5b, 0xb7, 0xb5, 0x96, 0x63, 0xff, 0x2f, 0x8c, 0x16, 0xb4, 0xe4, 0xf2, 0x6c, 0xca, - 0xf6, 0x8e, 0xd3, 0x15, 0x2e, 0x11, 0xd5, 0x20, 0x55, 0xb5, 0xed, 0x0e, 0x79, 0xc9, 0xbd, 0xc9, - 0x95, 0x31, 0x84, 0x12, 0x16, 0x2e, 0xcb, 0x65, 0x47, 0x0d, 0x98, 0xb9, 0x63, 0x18, 0xcd, 0x16, - 0x2e, 0xb7, 0x8c, 0xae, 0x5a, 0x36, 0xf4, 0x6d, 0xad, 0xc9, 0xfd, 0xf1, 0xe5, 0x31, 0x64, 0xde, - 0x29, 0xd7, 0xc5, 0x7e, 0x01, 0x68, 0x19, 0x52, 0xf5, 0x5b, 0x5c, 0x18, 0x8b, 0xe3, 0x2e, 0x8d, - 0x21, 0xac, 0x7e, 0x4b, 0x74, 0xd9, 0xd0, 0x5d, 0xc8, 0x2c, 0x3f, 0xe9, 0x9a, 0x98, 0x4b, 0x49, - 0x0e, 0xcc, 0x69, 0xe8, 0x95, 0x42, 0xb9, 0x44, 0x3f, 0x33, 0xaa, 0x43, 0xfe, 0x4d, 0xc3, 0x7c, - 0xd4, 0x32, 0x64, 0xa7, 0x85, 0x53, 0x54, 0xdc, 0x27, 0xc6, 0x10, 0xe7, 0x30, 0x8a, 0x3d, 0x22, - 0xe6, 0x3e, 0x07, 0xb9, 0x40, 0x37, 0x21, 0x04, 0x89, 0x0e, 0xe9, 0x11, 0x81, 0x26, 0x09, 0xd1, - 0xbf, 0xd1, 0xf3, 0x30, 0xa5, 0x1b, 0x2a, 0x76, 0x6c, 0x38, 0xb7, 0x72, 0xea, 0xe8, 0x70, 0x21, - 0xb9, 0x61, 0xa8, 0x2c, 0xa0, 0xe0, 0x7f, 0x89, 0x49, 0x52, 0xc8, 0x09, 0x27, 0xe6, 0x2e, 0x43, - 0x82, 0xf4, 0x0f, 0x71, 0x23, 0x0f, 0x65, 0x0b, 0x6f, 0x99, 0x1a, 0x97, 0xe9, 0x3c, 0xf2, 0x72, - 0x3f, 0x10, 0x20, 0x56, 0xbf, 0x45, 0x22, 0xea, 0x87, 0x5d, 0xe5, 0x11, 0xb6, 0x79, 0x29, 0xfe, - 0x44, 0x23, 0x6d, 0x13, 0x6f, 0x6b, 0x2c, 0xca, 0x49, 0x8b, 0xfc, 0x09, 0x3d, 0x03, 0x20, 0x2b, - 0x0a, 0xb6, 0x2c, 0xc9, 0x39, 0x17, 0x96, 0x16, 0xd3, 0x8c, 0xb2, 0x86, 0x0f, 0x08, 0x9b, 0x85, - 0x15, 0x13, 0xdb, 0x4e, 0xb6, 0x13, 0x7b, 0x22, 0x6c, 0x36, 0x6e, 0x77, 0x24, 0xdb, 0x78, 0x84, - 0x75, 0xda, 0xab, 0x69, 0xe2, 0x1e, 0xda, 0x9d, 0x06, 0x21, 0x10, 0xcf, 0x86, 0x75, 0xd5, 0x73, - 0x43, 0x69, 0xd1, 0x7d, 0x26, 0x22, 0x4d, 0xdc, 0xd4, 0xf8, 0x41, 0xa7, 0xb4, 0xc8, 0x9f, 0x88, - 0xc6, 0xe4, 0xae, 0xbd, 0x43, 0x93, 0x3a, 0xd2, 0x22, 0xfd, 0x9b, 0x37, 0xed, 0x2b, 0x02, 0xc4, - 0xef, 0x94, 0xeb, 0xc7, 0x6e, 0x9b, 0x23, 0x31, 0xee, 0x49, 0xa4, 0x49, 0x86, 0x5a, 0xab, 0xa5, - 0xe9, 0x4d, 0x12, 0x74, 0x7c, 0x11, 0x2b, 0x4e, 0xcb, 0xf2, 0x9c, 0xbc, 0xc9, 0xa8, 0x68, 0x11, - 0x32, 0x8a, 0x89, 0x55, 0xac, 0xdb, 0x9a, 0xdc, 0xb2, 0x78, 0x13, 0xfd, 0x24, 0x5e, 0xb9, 0x2f, - 0x09, 0x30, 0x49, 0xcd, 0x0b, 0x3d, 0x0d, 0x69, 0xc5, 0xd0, 0x6d, 0x59, 0xd3, 0xb9, 0x9f, 0x48, - 0x8b, 0x1e, 0x61, 0x60, 0x25, 0xcf, 0x43, 0x56, 0x56, 0x14, 0xa3, 0xab, 0xdb, 0x92, 0x2e, 0xb7, - 0x31, 0xaf, 0x6c, 0x86, 0xd3, 0x36, 0xe4, 0x36, 0x46, 0x0b, 0xe0, 0x3c, 0xba, 0xa7, 0xf3, 0xd2, - 0x22, 0x70, 0xd2, 0x1a, 0x3e, 0xe0, 0x35, 0xf9, 0x8e, 0x00, 0x29, 0xc7, 0x2c, 0x49, 0x65, 0x9a, - 0x58, 0xc7, 0xa6, 0x6c, 0x1b, 0x6e, 0x65, 0x5c, 0x42, 0xef, 0x9c, 0x94, 0xf6, 0xe6, 0xa4, 0x53, - 0x30, 0x69, 0xcb, 0x0f, 0x5b, 0x4e, 0x3d, 0xd8, 0x03, 0x5d, 0x3e, 0x6e, 0xc9, 0x4d, 0xb6, 0x46, - 0x96, 0x16, 0xd9, 0x03, 0x69, 0x12, 0xcf, 0x6a, 0x65, 0xda, 0xe1, 0x4f, 0xa4, 0xbe, 0x2c, 0x91, - 0xf3, 0x21, 0x6e, 0x6a, 0x3a, 0x35, 0x80, 0xb8, 0x08, 0x94, 0xb4, 0x42, 0x28, 0xe8, 0x29, 0x48, - 0xb3, 0x02, 0x58, 0x57, 0xa9, 0x15, 0xc4, 0xc5, 0x14, 0x25, 0x54, 0x9c, 0x93, 0x4a, 0x3c, 0x10, - 0xf9, 0x86, 0x00, 0x33, 0x2c, 0xe7, 0x86, 0x65, 0x80, 0x46, 0x37, 0x2b, 0xbf, 0x02, 0x69, 0x55, - 0xb6, 0x65, 0x76, 0x1a, 0x30, 0x36, 0xf4, 0x34, 0xa0, 0xe3, 0x26, 0x49, 0x79, 0x7a, 0x22, 0x10, - 0x41, 0x82, 0xfc, 0xcd, 0x4e, 0x51, 0x8a, 0xf4, 0x6f, 0x2f, 0x8b, 0xc1, 0x5f, 0xdd, 0x28, 0xa3, - 0x94, 0xeb, 0x70, 0x9a, 0x38, 0x97, 0x8a, 0xae, 0x98, 0x07, 0x1d, 0x02, 0xa5, 0xef, 0xd3, 0x7f, - 0x2d, 0x54, 0xf0, 0xed, 0x02, 0xd1, 0xcd, 0x1f, 0x5e, 0x97, 0xbf, 0x4e, 0x42, 0xae, 0xb2, 0xdf, - 0x31, 0xcc, 0x88, 0x57, 0xdd, 0xa6, 0x38, 0x5a, 0x1e, 0xb2, 0x2f, 0xdb, 0xe3, 0x36, 0x9d, 0x2d, - 0x4f, 0xce, 0x88, 0x56, 0x00, 0x58, 0xae, 0x26, 0x4d, 0xdc, 0x89, 0x1f, 0x63, 0x77, 0x8a, 0xb2, - 0x11, 0x2a, 0xda, 0x80, 0x4c, 0x7b, 0x57, 0x51, 0xa4, 0x6d, 0xad, 0x65, 0xf3, 0x2c, 0xb7, 0xf0, - 0xb4, 0xea, 0xf5, 0x07, 0xe5, 0xf2, 0x6d, 0x5a, 0x88, 0x25, 0x9b, 0x79, 0xcf, 0x22, 0x10, 0x09, - 0xec, 0x6f, 0xf4, 0x1c, 0xf0, 0x93, 0x20, 0x92, 0xe5, 0x9c, 0xeb, 0x5a, 0xc9, 0x1d, 0x1d, 0x2e, - 0xa4, 0x45, 0x4a, 0xad, 0xd7, 0x1b, 0x62, 0x9a, 0x15, 0xa8, 0x5b, 0x36, 0xba, 0x00, 0x39, 0xa3, - 0xad, 0xd9, 0x92, 0x13, 0x38, 0xf0, 0x58, 0x2b, 0x4b, 0x88, 0x4e, 0x60, 0x81, 0x1a, 0x70, 0x05, - 0xeb, 0x64, 0xf8, 0xd0, 0x76, 0x4a, 0x0f, 0xd9, 0xe2, 0x9e, 0xcd, 0x86, 0xa0, 0x64, 0x74, 0x6c, - 0xad, 0xad, 0x3d, 0xa1, 0x3b, 0xc3, 0x7c, 0x57, 0xe6, 0x02, 0x2b, 0x4e, 0xda, 0xb7, 0x42, 0x57, - 0xfd, 0x78, 0xd9, 0xfb, 0xbe, 0xa2, 0xe8, 0x4b, 0x02, 0x9c, 0xe1, 0x8a, 0x94, 0x1e, 0x1e, 0x48, - 0x2d, 0x32, 0xeb, 0x68, 0xf6, 0x81, 0xf4, 0x68, 0xb7, 0x98, 0xa2, 0x11, 0xdd, 0xa7, 0x42, 0x3b, - 0xc4, 0x67, 0x07, 0x4b, 0x4e, 0xb7, 0x1c, 0xdc, 0xe3, 0xcc, 0x6b, 0xbb, 0x15, 0xdd, 0x36, 0x0f, - 0x56, 0xce, 0x1e, 0x1d, 0x2e, 0xcc, 0xf6, 0xbf, 0x7d, 0x20, 0xce, 0x5a, 0xfd, 0x2c, 0xa8, 0x0a, - 0x80, 0x5d, 0x6b, 0xa4, 0xf9, 0x75, 0xe1, 0x73, 0x72, 0xa8, 0xd9, 0x8a, 0x3e, 0x5e, 0x74, 0x15, - 0x0a, 0xfc, 0x18, 0xc7, 0xb6, 0xd6, 0xc2, 0x92, 0xa5, 0x3d, 0xc1, 0x45, 0xa0, 0x6e, 0x21, 0xcf, - 0xe8, 0x44, 0x44, 0x5d, 0x7b, 0x82, 0xe7, 0xbe, 0x08, 0xc5, 0x41, 0xb5, 0xf7, 0x0f, 0x84, 0x34, - 0xdb, 0x05, 0x7d, 0x39, 0xb8, 0x8c, 0x31, 0x86, 0xa9, 0x3a, 0x4b, 0x19, 0xb1, 0x97, 0x1d, 0x17, - 0xf4, 0xab, 0x02, 0xe4, 0x56, 0xba, 0xad, 0x47, 0xf7, 0x3b, 0xf5, 0x6e, 0xbb, 0x2d, 0x9b, 0x07, - 0xc4, 0x7b, 0x31, 0xd7, 0x41, 0xaa, 0x29, 0x30, 0xef, 0x45, 0x7d, 0x83, 0xf6, 0x04, 0x13, 0xdf, - 0xc0, 0xf3, 0xe7, 0x09, 0x9d, 0x25, 0xc7, 0x5f, 0x80, 0x1c, 0x5d, 0x53, 0x90, 0xb0, 0x6e, 0x9b, - 0x1a, 0x66, 0x4b, 0x65, 0x71, 0x31, 0x4b, 0x89, 0x15, 0x46, 0x43, 0x97, 0x20, 0x6f, 0x1d, 0x58, - 0x36, 0x6e, 0x4b, 0xec, 0x80, 0x39, 0x03, 0xc2, 0x71, 0x31, 0xc7, 0xa8, 0x22, 0x23, 0x96, 0x7e, - 0x18, 0x87, 0xbc, 0xd3, 0x9b, 0x51, 0xc6, 0xd8, 0x2b, 0x30, 0x49, 0x74, 0xef, 0xa4, 0x32, 0x5c, - 0x1e, 0x62, 0x44, 0x3c, 0x2f, 0x9a, 0xf4, 0x89, 0x83, 0xd2, 0x28, 0x6b, 0x14, 0xe3, 0x7a, 0xee, - 0x17, 0x62, 0x90, 0xa0, 0x61, 0xed, 0x0d, 0x48, 0x50, 0xdf, 0x2c, 0x8c, 0xe3, 0x9b, 0x69, 0x51, - 0x37, 0xe6, 0x8a, 0xf9, 0x62, 0x2e, 0x12, 0xc0, 0xec, 0xc8, 0x2f, 0xde, 0xb8, 0x49, 0xc7, 0x74, - 0x56, 0xe4, 0x4f, 0x68, 0x85, 0xe6, 0xd8, 0x18, 0xa6, 0x8d, 0x55, 0x1e, 0x4e, 0x86, 0x79, 0xc3, - 0x40, 0xc7, 0x3b, 0xf3, 0x80, 0xc3, 0x87, 0xce, 0x41, 0x9c, 0x38, 0x8b, 0x29, 0xb6, 0xff, 0x7e, - 0x74, 0xb8, 0x10, 0x27, 0x6e, 0x82, 0xd0, 0xd0, 0x75, 0xc8, 0x04, 0x47, 0xa6, 0x70, 0x35, 0xcd, - 0xfc, 0x8f, 0x6f, 0x54, 0x41, 0xcb, 0xb5, 0x60, 0x06, 0xa5, 0xee, 0x26, 0x52, 0x89, 0xc2, 0x64, - 0xe9, 0xe7, 0x27, 0x21, 0x57, 0x6b, 0x47, 0xed, 0xb9, 0x97, 0x83, 0x3d, 0x1c, 0x16, 0x83, 0x07, - 0x3e, 0x1a, 0xd2, 0xc1, 0x81, 0x49, 0x33, 0x7e, 0xbc, 0x49, 0xb3, 0x46, 0xc2, 0x3e, 0x7e, 0x88, - 0x3e, 0x3e, 0x20, 0xdc, 0x0e, 0x7e, 0xbf, 0x41, 0x9c, 0xa1, 0x48, 0x78, 0xbc, 0x93, 0x02, 0x34, - 0x87, 0xe2, 0x75, 0x1a, 0x5d, 0x32, 0x2b, 0x4b, 0x8e, 0x6f, 0x65, 0x53, 0x58, 0x57, 0xe9, 0xdc, - 0x11, 0x74, 0x5c, 0x53, 0x27, 0x77, 0x5c, 0x73, 0x4f, 0xb8, 0xb1, 0xbe, 0x02, 0x71, 0x55, 0x33, - 0x87, 0xdc, 0xed, 0x10, 0x3e, 0x23, 0x12, 0xa6, 0x11, 0x56, 0x9b, 0xf0, 0x5b, 0xad, 0x1f, 0x76, - 0xcf, 0xdd, 0x07, 0xf0, 0x34, 0x84, 0x16, 0x21, 0x69, 0xb4, 0x54, 0xe7, 0xc0, 0x44, 0x6e, 0x25, - 0x7d, 0x74, 0xb8, 0x30, 0x79, 0xbf, 0xa5, 0xd6, 0x56, 0xc5, 0x49, 0xa3, 0xa5, 0xd6, 0x54, 0x7a, - 0x8f, 0x01, 0xde, 0x93, 0xdc, 0x94, 0xaa, 0xac, 0x38, 0xa5, 0xe3, 0x3d, 0x02, 0xf2, 0x7b, 0x52, - 0x3d, 0x88, 0x09, 0x7e, 0x4d, 0x80, 0xbc, 0xd3, 0x1b, 0xd1, 0xba, 0x99, 0x94, 0xd6, 0xe6, 0xc3, - 0x2e, 0x7e, 0xbc, 0x61, 0xe7, 0xf0, 0xf1, 0x83, 0x98, 0x5f, 0x16, 0x78, 0x3a, 0x6d, 0x5d, 0x91, - 0x6d, 0x32, 0x9b, 0x47, 0x38, 0x54, 0x9e, 0x85, 0x82, 0x29, 0xeb, 0xaa, 0xd1, 0xd6, 0x9e, 0x60, - 0xb6, 0x4e, 0x67, 0xf1, 0xed, 0xb8, 0x69, 0x97, 0x4e, 0x17, 0xa2, 0x9c, 0x65, 0xc6, 0x9f, 0x08, - 0x3c, 0xf5, 0xd6, 0xad, 0x4c, 0x94, 0x4a, 0x5b, 0x83, 0xa4, 0xc9, 0x12, 0xf8, 0xd8, 0xd0, 0x7d, - 0x3e, 0x44, 0x48, 0xd8, 0xd7, 0x59, 0x7e, 0x9c, 0x3b, 0x78, 0xa8, 0x88, 0xb9, 0xcf, 0xc2, 0x24, - 0x25, 0x9f, 0xc0, 0xc1, 0x72, 0xcd, 0xff, 0x4b, 0x0c, 0x2e, 0xd2, 0xcf, 0x3d, 0xc0, 0xa6, 0xb6, - 0x7d, 0xb0, 0x69, 0x1a, 0x36, 0x56, 0x6c, 0xac, 0x7a, 0x07, 0x13, 0x22, 0xf5, 0x5a, 0xe9, 0x8e, - 0xf3, 0x81, 0x63, 0x25, 0x32, 0xb9, 0x5c, 0x68, 0x0d, 0xa6, 0xd9, 0x94, 0x2a, 0xc9, 0x2d, 0x6d, - 0x17, 0x4b, 0xb2, 0x7d, 0x9c, 0xb9, 0x29, 0xc7, 0x78, 0x97, 0x09, 0xeb, 0xb2, 0x8d, 0x54, 0x48, - 0x73, 0x61, 0x9a, 0xca, 0xef, 0x49, 0xb9, 0xf3, 0xe1, 0x56, 0xa2, 0x52, 0x6c, 0x6a, 0xaf, 0xad, - 0x8a, 0x29, 0x26, 0xd9, 0xdd, 0x49, 0xf8, 0xbe, 0x00, 0x97, 0x46, 0x28, 0x3a, 0x4a, 0x33, 0x9b, - 0x83, 0xd4, 0x2e, 0xf9, 0x90, 0xc6, 0x35, 0x9d, 0x12, 0xdd, 0x67, 0xb4, 0x0e, 0xb9, 0x6d, 0x59, - 0x6b, 0x61, 0x55, 0xe2, 0x96, 0x38, 0x38, 0xfb, 0x2d, 0x3c, 0x29, 0x33, 0xcb, 0xd8, 0xe9, 0x4b, - 0xab, 0xf4, 0x7b, 0x31, 0x98, 0x59, 0x56, 0xd5, 0x7a, 0x9d, 0x7b, 0xb0, 0xe8, 0xec, 0xc5, 0xc1, - 0x66, 0x31, 0x0f, 0x9b, 0xa1, 0xe7, 0x01, 0xa9, 0x9a, 0xc5, 0xee, 0x70, 0xb0, 0x76, 0x64, 0xd5, - 0xd8, 0xf3, 0xf6, 0xf9, 0x67, 0x9c, 0x37, 0x75, 0xe7, 0x05, 0x7a, 0x1b, 0x28, 0x30, 0x90, 0x2c, - 0x5b, 0x76, 0xb7, 0x23, 0x9e, 0x3b, 0xce, 0x71, 0x22, 0x06, 0x1c, 0xdc, 0x47, 0x31, 0x4d, 0xc4, - 0xd1, 0x3f, 0x49, 0xa4, 0xab, 0x11, 0x0d, 0xd8, 0x92, 0x6c, 0x39, 0xe7, 0x4e, 0xd8, 0x25, 0x12, - 0x79, 0x46, 0x5f, 0xb6, 0xfc, 0xc7, 0x49, 0x58, 0x5a, 0xbc, 0xa7, 0xa7, 0x28, 0x01, 0xe5, 0x1f, - 0x08, 0x90, 0x17, 0xf1, 0xb6, 0x89, 0xad, 0x48, 0x81, 0xf5, 0x6d, 0xc8, 0x9a, 0x4c, 0xaa, 0xb4, - 0x6d, 0x1a, 0xed, 0xe3, 0x0c, 0xb5, 0x0c, 0x67, 0xbc, 0x6d, 0x1a, 0xed, 0xc0, 0xa1, 0xfb, 0x07, - 0x30, 0xed, 0xd6, 0x34, 0x4a, 0x15, 0x7c, 0x83, 0x9e, 0xa4, 0x65, 0x82, 0xa3, 0xde, 0x69, 0xff, - 0x28, 0xf4, 0x40, 0xb7, 0x41, 0xfc, 0xd5, 0x8d, 0x52, 0x19, 0x3f, 0x11, 0x20, 0x5f, 0xef, 0x3e, - 0x64, 0x97, 0x06, 0x45, 0xa7, 0x87, 0x0a, 0xa4, 0x5b, 0x78, 0xdb, 0x96, 0x4e, 0x94, 0xca, 0x9d, - 0x22, 0xac, 0x34, 0x9d, 0xfd, 0x0e, 0x80, 0x49, 0x0f, 0x6b, 0x51, 0x39, 0xf1, 0x63, 0xca, 0x49, - 0x53, 0x5e, 0x2f, 0xd6, 0x29, 0xfd, 0x49, 0x0c, 0xa6, 0xdd, 0xc6, 0x46, 0xe9, 0x44, 0x7f, 0x26, - 0xe0, 0x3c, 0xe2, 0x27, 0x70, 0x1e, 0x33, 0x3c, 0xc3, 0x20, 0xdc, 0x81, 0x2c, 0xc1, 0x2c, 0x0d, - 0x48, 0x24, 0xb9, 0xd3, 0x69, 0x69, 0x58, 0x95, 0xd8, 0xd6, 0x75, 0x82, 0x6e, 0x5d, 0xcf, 0xd0, - 0x57, 0xcb, 0xec, 0x4d, 0x8d, 0x6e, 0x63, 0xdf, 0x86, 0xec, 0xb6, 0x89, 0xf1, 0x13, 0x2c, 0x51, - 0x8c, 0x75, 0x9c, 0x44, 0x8a, 0x0c, 0x63, 0xac, 0x13, 0x3e, 0x6e, 0x80, 0xef, 0xc0, 0x0c, 0x55, - 0x70, 0xd4, 0x47, 0x48, 0x79, 0xaf, 0xfc, 0xab, 0x00, 0xc8, 0x2f, 0xff, 0xa3, 0xeb, 0x98, 0x58, - 0xe4, 0x1d, 0xf3, 0x1c, 0x20, 0x96, 0x53, 0x67, 0x49, 0x1d, 0x6c, 0x4a, 0x16, 0x56, 0x0c, 0x7e, - 0x15, 0x8e, 0x20, 0x16, 0xf8, 0x9b, 0x4d, 0x6c, 0xd6, 0x29, 0xbd, 0xf4, 0xee, 0x1c, 0x64, 0xb9, - 0x4e, 0xb6, 0x74, 0xcd, 0xd0, 0xd1, 0x0d, 0x88, 0x37, 0xf9, 0xc2, 0x76, 0x26, 0x74, 0x1d, 0xcb, - 0xbb, 0x8e, 0xab, 0x3a, 0x21, 0x92, 0xb2, 0x84, 0xa5, 0xd3, 0xb5, 0x43, 0x82, 0x22, 0x2f, 0x15, - 0xd8, 0xcf, 0xd2, 0xe9, 0xda, 0xa8, 0x0e, 0xd3, 0x8a, 0x77, 0x1d, 0x91, 0x44, 0xd8, 0xe3, 0x03, - 0xe1, 0x4f, 0xe8, 0xa5, 0x4e, 0xd5, 0x09, 0x31, 0xaf, 0x04, 0x5e, 0xa0, 0xb2, 0xff, 0xfe, 0x1b, - 0x36, 0x5d, 0x5e, 0x08, 0x3d, 0x6e, 0x1a, 0xbc, 0x7b, 0xa7, 0x3a, 0xe1, 0xbb, 0x26, 0x07, 0xbd, - 0x02, 0x49, 0x95, 0xde, 0xab, 0xc2, 0x2d, 0x34, 0xcc, 0x88, 0x02, 0x57, 0xd9, 0x54, 0x27, 0x44, - 0xce, 0x81, 0xee, 0x42, 0x96, 0xfd, 0xc5, 0x82, 0x13, 0x8e, 0x09, 0x2f, 0x0d, 0x96, 0xe0, 0xf3, - 0xf5, 0xd5, 0x09, 0x31, 0xa3, 0x7a, 0x54, 0xf4, 0x49, 0x48, 0x58, 0x8a, 0xec, 0xa0, 0xc2, 0xf9, - 0x01, 0xf7, 0x34, 0x78, 0xcc, 0xb4, 0x34, 0x7a, 0x95, 0xdd, 0x9d, 0x67, 0xef, 0x3b, 0xeb, 0x60, - 0x61, 0xd5, 0x0f, 0x9c, 0x24, 0x26, 0xd5, 0xc7, 0x94, 0x80, 0xee, 0x40, 0x46, 0x26, 0x51, 0x9e, - 0x44, 0x4f, 0xed, 0xd1, 0x85, 0xaf, 0xf0, 0x7d, 0xd9, 0xbe, 0x13, 0x97, 0x55, 0x7a, 0x5c, 0xd9, - 0x21, 0x7a, 0x82, 0xda, 0xd8, 0x6c, 0xe2, 0x62, 0x66, 0xb8, 0x20, 0x7f, 0xd2, 0x90, 0x2b, 0x88, - 0x12, 0x49, 0xb4, 0xb7, 0xe3, 0x9c, 0xc8, 0xa0, 0x8d, 0xca, 0x0e, 0xdc, 0x03, 0x0c, 0x39, 0x51, - 0x52, 0x9d, 0x10, 0xb3, 0x3b, 0x3e, 0x32, 0x5a, 0x82, 0x58, 0x53, 0x29, 0xe6, 0xa8, 0x8c, 0xa7, - 0x87, 0x9d, 0x97, 0xa8, 0x4e, 0x88, 0xb1, 0xa6, 0x42, 0xf0, 0x3d, 0xcb, 0x74, 0xdf, 0xd7, 0x8b, - 0xf9, 0x81, 0x23, 0x3e, 0x78, 0x6c, 0xa0, 0x3a, 0x21, 0xd2, 0xe4, 0x7a, 0xf2, 0xbd, 0x4d, 0xc8, - 0x9b, 0x2c, 0xeb, 0xca, 0xc9, 0xa5, 0x2c, 0x0c, 0xdc, 0x17, 0x0d, 0x4b, 0xa7, 0xac, 0xd2, 0xa8, - 0xdf, 0x47, 0x47, 0x5f, 0x80, 0x53, 0x41, 0x89, 0xdc, 0xd2, 0x66, 0xfa, 0xdc, 0x48, 0xb8, 0xdc, - 0xa0, 0xc1, 0x21, 0xb3, 0xef, 0x25, 0x7a, 0x09, 0x26, 0x59, 0xaf, 0x21, 0x2a, 0x32, 0x6c, 0xc3, - 0xbf, 0xa7, 0xc3, 0x58, 0x79, 0x62, 0xfc, 0x36, 0x4f, 0x37, 0x92, 0x5a, 0x46, 0xb3, 0x38, 0x3b, - 0xd0, 0xf8, 0xfb, 0xd3, 0xa7, 0x88, 0xf1, 0xdb, 0x1e, 0x95, 0xf4, 0xbb, 0xc9, 0xde, 0xf0, 0xec, - 0x94, 0x53, 0x03, 0xfb, 0x3d, 0x24, 0x0b, 0xa9, 0x4a, 0x53, 0xc5, 0x3d, 0x32, 0xa9, 0x9a, 0xc9, - 0xee, 0x29, 0x91, 0xe8, 0x98, 0x3a, 0x3d, 0xb0, 0x6a, 0xfd, 0x77, 0xaf, 0x54, 0x69, 0x18, 0xe4, - 0x52, 0xd1, 0x03, 0x28, 0xf0, 0x1b, 0x04, 0xbc, 0x45, 0xf7, 0x33, 0x54, 0xde, 0xb3, 0xa1, 0xae, - 0x2b, 0x2c, 0x9d, 0xa3, 0x3a, 0x21, 0x4e, 0x2b, 0xc1, 0x37, 0xe8, 0x2d, 0x98, 0xa1, 0xf2, 0x24, - 0xc5, 0xbb, 0xfa, 0xa1, 0x58, 0xec, 0xcb, 0x8b, 0x1c, 0x7c, 0x4b, 0x84, 0x23, 0xb9, 0xa0, 0xf4, - 0xbc, 0x22, 0x66, 0xac, 0xe9, 0x9a, 0x4d, 0xbd, 0xec, 0xdc, 0x40, 0x33, 0x0e, 0x5e, 0xdf, 0x46, - 0xcc, 0x58, 0x63, 0x14, 0x62, 0xc6, 0x36, 0x4f, 0x5d, 0xe2, 0xdd, 0xf1, 0xf4, 0x40, 0x33, 0x0e, - 0xcb, 0x71, 0x22, 0x66, 0x6c, 0xfb, 0xe9, 0xc4, 0x8c, 0x99, 0x83, 0xe8, 0x91, 0xfb, 0xcc, 0x40, - 0x33, 0x1e, 0x78, 0x6e, 0x96, 0x98, 0xb1, 0xdc, 0xf7, 0x12, 0xad, 0x02, 0xb0, 0xf0, 0x44, 0xd3, - 0xb7, 0x8d, 0xe2, 0xfc, 0xc0, 0xc9, 0xa0, 0x37, 0x79, 0x89, 0x4c, 0x06, 0x2d, 0x87, 0x46, 0x1c, - 0x19, 0xc5, 0x46, 0x12, 0xdd, 0x14, 0x2c, 0x2e, 0x0c, 0x74, 0x64, 0x7d, 0x7b, 0x83, 0xc4, 0x91, - 0xed, 0xb9, 0x44, 0x32, 0xab, 0xb0, 0xd5, 0xda, 0xe2, 0xe2, 0x60, 0xb7, 0xec, 0xdf, 0x1b, 0xa1, - 0x6e, 0x99, 0x12, 0xd0, 0x32, 0xa4, 0xc9, 0xb4, 0x7d, 0x40, 0xdd, 0xd0, 0xf9, 0x81, 0x01, 0x67, - 0xcf, 0x59, 0x88, 0xea, 0x84, 0x98, 0x7a, 0xcc, 0x49, 0xe4, 0xf3, 0x6c, 0xd5, 0xaa, 0x58, 0x1a, - 0xf8, 0xf9, 0xc0, 0x9a, 0x27, 0xf9, 0x3c, 0xe3, 0x40, 0x0a, 0x9c, 0x66, 0x7d, 0xc5, 0x8f, 0xad, - 0x9a, 0xfc, 0x8c, 0x65, 0xf1, 0x02, 0x15, 0x35, 0x70, 0x0d, 0x28, 0xf4, 0x34, 0x6d, 0x75, 0x42, - 0x9c, 0x95, 0xfb, 0xdf, 0x92, 0x01, 0xcf, 0xa7, 0x1e, 0xb6, 0x72, 0x54, 0xbc, 0x38, 0x70, 0xc0, - 0x87, 0xac, 0xb5, 0x91, 0x01, 0x2f, 0xfb, 0xc8, 0x6c, 0x02, 0x52, 0x25, 0xcb, 0x62, 0x5b, 0xc8, - 0x97, 0x86, 0x4c, 0x40, 0x3d, 0xd8, 0x9f, 0x4d, 0x40, 0x6a, 0x9d, 0x71, 0x12, 0x41, 0x4a, 0x0b, - 0xcb, 0x26, 0x77, 0xb3, 0x97, 0x07, 0x0a, 0xea, 0xbb, 0x12, 0x8d, 0x08, 0x52, 0x5c, 0x22, 0x09, - 0x78, 0x4c, 0xe7, 0xea, 0x11, 0x1e, 0xfa, 0x5d, 0x19, 0x18, 0xf0, 0x84, 0xde, 0x90, 0x42, 0x02, - 0x1e, 0x33, 0xf0, 0x02, 0x7d, 0x1a, 0xa6, 0x38, 0x42, 0x2b, 0x5e, 0x1d, 0x12, 0x90, 0xfa, 0xa1, - 0x35, 0x19, 0xd7, 0x9c, 0x87, 0x79, 0x59, 0x86, 0x0c, 0x59, 0xf3, 0x9e, 0x1d, 0xe2, 0x65, 0xfb, - 0xc0, 0x29, 0xf3, 0xb2, 0x1e, 0x99, 0x78, 0x59, 0x66, 0xa7, 0x7c, 0xae, 0xbb, 0x36, 0xd0, 0xcb, - 0xf6, 0x1f, 0xc4, 0x20, 0x5e, 0xf6, 0xb1, 0x47, 0x25, 0x2d, 0xb3, 0x18, 0x2a, 0x2a, 0x7e, 0x62, - 0x60, 0xcb, 0x82, 0x20, 0x91, 0xb4, 0x8c, 0xf3, 0x90, 0x6e, 0x63, 0x39, 0xb3, 0x4c, 0xd3, 0xcf, - 0x0d, 0x3e, 0x21, 0xde, 0x0b, 0x22, 0xaa, 0xce, 0x9d, 0xb8, 0x4c, 0xc3, 0xae, 0xa3, 0x32, 0xf9, - 0x79, 0x58, 0xae, 0xa9, 0xe7, 0x87, 0x3b, 0xaa, 0xb0, 0xa3, 0xbe, 0xae, 0xa3, 0x0a, 0xbc, 0xa4, - 0x55, 0x65, 0xc7, 0x9a, 0xe8, 0xf8, 0x5e, 0x1a, 0x72, 0x98, 0xbd, 0xe7, 0xa4, 0x19, 0xad, 0xaa, - 0x4b, 0xf4, 0x86, 0x50, 0x97, 0xdd, 0xba, 0x50, 0xbc, 0x3e, 0x7c, 0x08, 0x05, 0x6f, 0x7f, 0x70, - 0x87, 0x10, 0x27, 0xbb, 0x73, 0xa6, 0x13, 0x61, 0xbc, 0x30, 0x7c, 0xce, 0xec, 0x0d, 0x2d, 0xd8, - 0x9c, 0xc9, 0x63, 0x8a, 0x5f, 0x14, 0x60, 0x91, 0xd5, 0x8d, 0xae, 0xe3, 0x1d, 0x48, 0xee, 0x9a, - 0xa8, 0x2f, 0xb3, 0xfe, 0x06, 0xfd, 0xc0, 0x4b, 0x83, 0xaa, 0x3b, 0x62, 0x8d, 0xb7, 0x3a, 0x21, - 0x3e, 0x23, 0x0f, 0x2b, 0xb7, 0x32, 0xc5, 0xf7, 0x60, 0xdd, 0x03, 0x86, 0xd3, 0x85, 0xc2, 0xdd, - 0x44, 0xea, 0x6c, 0xa1, 0x78, 0x37, 0x91, 0x3a, 0x57, 0x98, 0xbb, 0x9b, 0x48, 0x3d, 0x55, 0x78, - 0xba, 0xf4, 0x6f, 0xe7, 0x20, 0xe7, 0x60, 0x38, 0x86, 0x88, 0x6e, 0xfa, 0x11, 0xd1, 0xfc, 0x20, - 0x44, 0xc4, 0x51, 0x1f, 0x87, 0x44, 0x37, 0xfd, 0x90, 0x68, 0x7e, 0x10, 0x24, 0xf2, 0x78, 0x08, - 0x26, 0x6a, 0x0c, 0xc2, 0x44, 0xcf, 0x8e, 0x81, 0x89, 0x5c, 0x51, 0xbd, 0xa0, 0x68, 0xb5, 0x1f, - 0x14, 0x5d, 0x1c, 0x0e, 0x8a, 0x5c, 0x51, 0x3e, 0x54, 0xf4, 0x6a, 0x0f, 0x2a, 0x3a, 0x3f, 0x04, - 0x15, 0xb9, 0xfc, 0x0e, 0x2c, 0x5a, 0x0b, 0x85, 0x45, 0x97, 0x47, 0xc1, 0x22, 0x57, 0x4e, 0x00, - 0x17, 0xbd, 0x18, 0xc0, 0x45, 0x0b, 0x03, 0x71, 0x91, 0xcb, 0xcd, 0x80, 0xd1, 0x6b, 0xbd, 0xc0, - 0xe8, 0xfc, 0x10, 0x60, 0xe4, 0xb5, 0x80, 0x23, 0xa3, 0x6a, 0x18, 0x32, 0xba, 0x34, 0x02, 0x19, - 0xb9, 0x52, 0xfc, 0xd0, 0xa8, 0x1a, 0x06, 0x8d, 0x2e, 0x8d, 0x80, 0x46, 0x3d, 0x92, 0x18, 0x36, - 0xda, 0x08, 0xc7, 0x46, 0x57, 0x46, 0x62, 0x23, 0x57, 0x5a, 0x10, 0x1c, 0x5d, 0xf7, 0x81, 0xa3, - 0x67, 0x06, 0x80, 0x23, 0x97, 0x95, 0xa0, 0xa3, 0xcf, 0xf4, 0xa1, 0xa3, 0xd2, 0x30, 0x74, 0xe4, - 0xf2, 0xba, 0xf0, 0xe8, 0x8d, 0x01, 0xf0, 0xe8, 0xea, 0x68, 0x78, 0xe4, 0x0a, 0xeb, 0xc1, 0x47, - 0xf2, 0x50, 0x7c, 0xf4, 0xfc, 0x98, 0xf8, 0xc8, 0x95, 0x1e, 0x06, 0x90, 0x5e, 0x0e, 0x02, 0xa4, - 0xc5, 0xc1, 0x00, 0xc9, 0x15, 0xc3, 0x11, 0xd2, 0x5a, 0x28, 0x42, 0xba, 0x3c, 0x0a, 0x21, 0x79, - 0xe3, 0xc0, 0x0f, 0x91, 0x36, 0xc2, 0x21, 0xd2, 0x95, 0x91, 0x10, 0xc9, 0xeb, 0xfe, 0x00, 0x46, - 0x5a, 0x0b, 0xc5, 0x48, 0x97, 0x47, 0x61, 0x24, 0xaf, 0x72, 0x7e, 0x90, 0xf4, 0xe6, 0x40, 0x90, - 0x74, 0x6d, 0x1c, 0x90, 0xe4, 0x0a, 0xed, 0x43, 0x49, 0x6f, 0x0f, 0x46, 0x49, 0x9f, 0x38, 0xc6, - 0x5d, 0x7a, 0xa1, 0x30, 0xe9, 0x33, 0x7d, 0x30, 0xa9, 0x34, 0x0c, 0x26, 0x79, 0xf6, 0xec, 0xe0, - 0x24, 0x79, 0x28, 0xaa, 0x79, 0x7e, 0x4c, 0x54, 0xe3, 0x19, 0x5f, 0x08, 0xac, 0xa9, 0x84, 0xc0, - 0x9a, 0x8b, 0xc3, 0x61, 0x8d, 0xe7, 0xce, 0x3d, 0x5c, 0x53, 0x0d, 0xc3, 0x35, 0x97, 0x46, 0xe0, - 0x1a, 0xcf, 0x0b, 0xf9, 0x80, 0xcd, 0xab, 0x3d, 0xc0, 0xe6, 0xfc, 0xc8, 0x7c, 0x1d, 0x1f, 0xb2, - 0x59, 0xe9, 0x47, 0x36, 0x17, 0x86, 0x22, 0x1b, 0x57, 0x82, 0x07, 0x6d, 0x5e, 0xed, 0x81, 0x36, - 0xe7, 0x87, 0x40, 0x1b, 0xaf, 0x02, 0x1c, 0xdb, 0xa8, 0xc3, 0xb1, 0xcd, 0xd2, 0xb8, 0xd8, 0xc6, - 0x15, 0x1c, 0x0a, 0x6e, 0x36, 0xc2, 0xc1, 0xcd, 0x95, 0x31, 0x77, 0xcf, 0xfb, 0xd0, 0x4d, 0x35, - 0x0c, 0xdd, 0x5c, 0x1a, 0x81, 0x6e, 0xfc, 0x73, 0x88, 0x0b, 0x6f, 0xaa, 0x61, 0xf0, 0xe6, 0xd2, - 0x08, 0x78, 0xe3, 0x49, 0xf2, 0xe1, 0x9b, 0xc6, 0x20, 0x7c, 0xf3, 0xec, 0x18, 0xf8, 0xc6, 0x0b, - 0x5e, 0x7a, 0x00, 0xce, 0xeb, 0xbd, 0x00, 0xa7, 0x34, 0x0c, 0xe0, 0x78, 0x23, 0xd2, 0x41, 0x38, - 0x1b, 0xe1, 0x08, 0xe7, 0xca, 0x48, 0x84, 0xe3, 0x77, 0x92, 0x3e, 0x88, 0xb3, 0x16, 0x0a, 0x71, - 0x2e, 0x8f, 0x82, 0x38, 0x9e, 0x93, 0xf4, 0x63, 0x9c, 0xd7, 0x7b, 0x31, 0x4e, 0x69, 0x18, 0xc6, - 0xf1, 0x1a, 0xe7, 0x80, 0x9c, 0x6a, 0x18, 0xc8, 0xb9, 0x34, 0x02, 0xe4, 0x78, 0x9d, 0xe7, 0x43, - 0x39, 0xf2, 0x50, 0x94, 0xf3, 0xfc, 0x98, 0x28, 0xa7, 0xc7, 0x71, 0x05, 0x61, 0x4e, 0x35, 0x0c, - 0xe6, 0x5c, 0x1a, 0x01, 0x73, 0x7c, 0x95, 0xf5, 0x70, 0xce, 0x46, 0x38, 0xce, 0xb9, 0x32, 0x12, - 0xe7, 0xf4, 0x8c, 0x26, 0x07, 0xe8, 0xac, 0x85, 0x02, 0x9d, 0xcb, 0xa3, 0x80, 0x4e, 0xcf, 0xc4, - 0xc7, 0x83, 0x83, 0x5f, 0x1a, 0x1f, 0xe9, 0xbc, 0x7c, 0x7c, 0xa4, 0xe3, 0x7e, 0x33, 0x12, 0xa8, - 0x73, 0x37, 0x91, 0x7a, 0xba, 0xf0, 0x4c, 0xe9, 0x5b, 0x93, 0x90, 0xac, 0xba, 0x39, 0x2e, 0x5e, - 0x2d, 0x85, 0x93, 0x5c, 0xd6, 0x83, 0x56, 0xc9, 0x88, 0xa5, 0x7e, 0x6f, 0xf4, 0xbd, 0x6c, 0xfd, - 0x77, 0x86, 0x71, 0xd6, 0x13, 0x9c, 0x79, 0x45, 0x2f, 0x42, 0xae, 0x6b, 0x61, 0x53, 0xea, 0x98, - 0x9a, 0x61, 0x6a, 0x36, 0x3b, 0x9d, 0x20, 0xac, 0x14, 0x3e, 0x38, 0x5c, 0xc8, 0x6e, 0x59, 0xd8, - 0xdc, 0xe4, 0x74, 0x31, 0xdb, 0xf5, 0x3d, 0x39, 0x3f, 0xe0, 0x33, 0x39, 0xfe, 0x0f, 0xf8, 0xbc, - 0x01, 0x05, 0x13, 0xcb, 0x6a, 0x20, 0x02, 0x61, 0xb7, 0xe0, 0x84, 0xdb, 0x0c, 0x3d, 0x9a, 0xe3, - 0x94, 0xa4, 0xb7, 0xe1, 0x4c, 0x9b, 0x41, 0x22, 0xba, 0x01, 0xa7, 0xdb, 0xf2, 0x3e, 0xcd, 0x66, - 0x94, 0x9c, 0xa0, 0x8e, 0x66, 0x28, 0xa6, 0x68, 0xe6, 0x2d, 0x6a, 0xcb, 0xfb, 0xf4, 0xd7, 0x80, - 0xd8, 0x2b, 0xfa, 0x13, 0x01, 0x97, 0x20, 0xaf, 0x6a, 0x96, 0xad, 0xe9, 0x8a, 0x73, 0x11, 0x2a, - 0xbb, 0x57, 0x34, 0xe7, 0x50, 0xd9, 0x5d, 0xa7, 0xd7, 0x60, 0x86, 0x67, 0x93, 0x7b, 0xbf, 0x0f, - 0x44, 0xe1, 0x4b, 0x8a, 0xd4, 0x82, 0xbc, 0xf0, 0x7e, 0x18, 0xaa, 0x0c, 0xd3, 0x4d, 0xd9, 0xc6, - 0x7b, 0xf2, 0x81, 0xe4, 0x9c, 0x0e, 0xca, 0xd0, 0x5b, 0x04, 0x9f, 0x3a, 0x3a, 0x5c, 0xc8, 0xdd, - 0x61, 0xaf, 0xfa, 0x0e, 0x09, 0xe5, 0x9a, 0xbe, 0x17, 0x2a, 0xba, 0x02, 0xd3, 0xb2, 0x75, 0xa0, - 0x2b, 0x54, 0x3d, 0x58, 0xb7, 0xba, 0x16, 0x85, 0x14, 0x29, 0x31, 0x4f, 0xc9, 0x65, 0x87, 0x8a, - 0x5e, 0x86, 0x73, 0x2a, 0x26, 0x31, 0x12, 0x0b, 0x44, 0x6c, 0xc3, 0x90, 0x8c, 0x96, 0x2a, 0xd1, - 0xdb, 0x2e, 0x28, 0x9c, 0x48, 0x89, 0xa7, 0x69, 0x01, 0x1a, 0x82, 0x34, 0x0c, 0xe3, 0x7e, 0x4b, - 0xad, 0x90, 0x97, 0xec, 0x66, 0xd3, 0xbb, 0x89, 0x54, 0xb6, 0x90, 0x2b, 0xfd, 0x86, 0x00, 0xd9, - 0xc0, 0x91, 0x8c, 0x57, 0x7b, 0xb6, 0x68, 0xcf, 0x85, 0xc3, 0xa1, 0x41, 0x39, 0x5e, 0x29, 0xae, - 0x7e, 0x27, 0xc3, 0x6d, 0x61, 0x70, 0x38, 0x4d, 0x17, 0x07, 0x9c, 0xf4, 0x00, 0x87, 0xed, 0x95, - 0xc4, 0x6f, 0xbd, 0xb7, 0x30, 0x51, 0xfa, 0x71, 0x1c, 0x72, 0xc1, 0xa3, 0x17, 0xb5, 0x9e, 0x7a, - 0x85, 0xb9, 0xab, 0x00, 0xc7, 0xd2, 0x90, 0xeb, 0xde, 0xd2, 0xde, 0xc5, 0xe4, 0xac, 0x9a, 0x8b, - 0x43, 0x36, 0xa2, 0xfd, 0xf5, 0xf4, 0x18, 0xe7, 0xbe, 0x1d, 0x73, 0x87, 0xfd, 0x12, 0x4c, 0x32, - 0xb5, 0x0b, 0x03, 0x8f, 0xc2, 0x52, 0xcd, 0x8b, 0xac, 0x18, 0x71, 0x13, 0x8d, 0x13, 0xdd, 0xe9, - 0xe5, 0xdd, 0x86, 0x70, 0xfc, 0xdf, 0xcd, 0xe2, 0x37, 0xbb, 0x4d, 0x1e, 0xef, 0x66, 0x37, 0xb6, - 0xd1, 0xdc, 0x6a, 0x31, 0x17, 0xcc, 0x06, 0x4a, 0xb2, 0xef, 0xbc, 0x29, 0x15, 0xc1, 0x7f, 0x56, - 0x6d, 0x49, 0xe4, 0x3f, 0xab, 0xe6, 0x4b, 0x3a, 0xcc, 0xbb, 0x22, 0xe8, 0xa8, 0x62, 0xa9, 0xa9, - 0xbc, 0xab, 0xbf, 0x26, 0x40, 0x81, 0x8e, 0xa1, 0xdb, 0x18, 0xab, 0x91, 0x58, 0xa1, 0x93, 0x0f, - 0x19, 0x1b, 0x3f, 0xe1, 0x3c, 0x70, 0x51, 0x7c, 0x3c, 0x78, 0x51, 0x7c, 0xe9, 0x3d, 0x01, 0xf2, - 0x6e, 0x0d, 0xd9, 0xef, 0x0b, 0x0d, 0xb9, 0xb0, 0xed, 0x64, 0x3f, 0xb9, 0xe3, 0x9c, 0x25, 0x1f, - 0xeb, 0x87, 0x8e, 0xfc, 0x67, 0xc9, 0xd9, 0xcf, 0xc3, 0xfc, 0xb6, 0x00, 0xb3, 0x6e, 0x15, 0xcb, - 0xde, 0x39, 0xe1, 0x13, 0xe4, 0xde, 0x8b, 0xf4, 0xf7, 0xd5, 0x08, 0x68, 0xa7, 0x87, 0xf8, 0xc7, - 0x32, 0x4f, 0xc4, 0x13, 0x2a, 0x80, 0x2f, 0x06, 0xa8, 0x8d, 0x3a, 0xfd, 0xe5, 0x35, 0xf6, 0xb7, - 0x55, 0xba, 0xed, 0x53, 0x20, 0x1d, 0x09, 0x44, 0x4b, 0x63, 0x0d, 0x19, 0x47, 0x4b, 0xb4, 0x70, - 0xe9, 0xbb, 0xfe, 0x9e, 0xa8, 0xec, 0x92, 0x20, 0xf0, 0x16, 0xc4, 0x77, 0xe5, 0xd6, 0xb0, 0x7c, - 0x92, 0x40, 0xcf, 0x89, 0xa4, 0x34, 0xba, 0x1d, 0x38, 0x5e, 0x1d, 0x1b, 0x1c, 0xb0, 0xf4, 0xab, - 0x34, 0x70, 0x0c, 0xfb, 0x25, 0xa7, 0x15, 0xf1, 0xd1, 0x9f, 0xf7, 0x7b, 0x80, 0x57, 0x12, 0xef, - 0xbf, 0xb7, 0x20, 0x5c, 0xab, 0xc3, 0x6c, 0xc8, 0xf4, 0x86, 0xf2, 0x00, 0xbe, 0xeb, 0xe3, 0xf9, - 0xcf, 0xbb, 0x2d, 0xaf, 0x4a, 0x5b, 0x1b, 0xe5, 0xfb, 0xeb, 0xeb, 0xb5, 0x46, 0xa3, 0xb2, 0x5a, - 0x10, 0x50, 0x01, 0xb2, 0x81, 0xcb, 0xe7, 0x63, 0xec, 0x07, 0xdf, 0xae, 0xfd, 0x14, 0x80, 0xf7, - 0x03, 0x14, 0x44, 0xd6, 0x5a, 0xe5, 0x2d, 0xe9, 0xc1, 0xf2, 0xbd, 0xad, 0x4a, 0xbd, 0x30, 0x81, - 0x10, 0xe4, 0x57, 0x96, 0x1b, 0xe5, 0xaa, 0x24, 0x56, 0xea, 0x9b, 0xf7, 0x37, 0xea, 0x15, 0xe7, - 0x87, 0xe2, 0xae, 0xad, 0x42, 0xd6, 0x7f, 0x10, 0x1d, 0xcd, 0xc2, 0x74, 0xb9, 0x5a, 0x29, 0xaf, - 0x49, 0x0f, 0x6a, 0xcb, 0xd2, 0x1b, 0x5b, 0x95, 0xad, 0x4a, 0x61, 0x82, 0x56, 0x8d, 0x12, 0x6f, - 0x6f, 0xdd, 0xbb, 0x57, 0x10, 0xd0, 0x34, 0x64, 0xd8, 0x33, 0xbd, 0xa8, 0xbe, 0x10, 0xbb, 0xb6, - 0x0e, 0x19, 0xdf, 0xbd, 0x75, 0xe4, 0x73, 0x9b, 0x5b, 0xf5, 0xaa, 0xd4, 0xa8, 0xad, 0x57, 0xea, - 0x8d, 0xe5, 0xf5, 0x4d, 0x26, 0x83, 0xd2, 0x96, 0x57, 0xee, 0x8b, 0x8d, 0x82, 0xe0, 0x3e, 0x37, - 0xee, 0x6f, 0x95, 0xab, 0x4e, 0x33, 0x4a, 0x89, 0x54, 0xbc, 0x10, 0xbf, 0xf6, 0x18, 0xce, 0x0e, - 0x38, 0x8d, 0x8d, 0x32, 0x30, 0xb5, 0xa5, 0xd3, 0x9b, 0xba, 0x0a, 0x13, 0x28, 0xe7, 0x3b, 0x90, - 0x5d, 0x10, 0x50, 0x8a, 0x1d, 0xb5, 0x2d, 0xc4, 0x50, 0x12, 0x62, 0xf5, 0x5b, 0x85, 0x38, 0xa9, - 0xa8, 0xef, 0x3c, 0x73, 0x21, 0x81, 0xd2, 0xfc, 0xb0, 0x67, 0x61, 0x12, 0x65, 0xbd, 0xd3, 0x96, - 0x85, 0xe4, 0xb5, 0xf3, 0xe0, 0x3b, 0x59, 0x86, 0x00, 0x92, 0xf7, 0x64, 0x1b, 0x5b, 0x76, 0x61, - 0x02, 0x4d, 0x41, 0x7c, 0xb9, 0xd5, 0x2a, 0x08, 0x37, 0xff, 0x58, 0x80, 0x94, 0x73, 0xe7, 0x3a, - 0xba, 0x07, 0x93, 0x0c, 0xc9, 0x2f, 0x0c, 0x9e, 0x91, 0xa8, 0x53, 0x9b, 0x5b, 0x1c, 0x35, 0x65, - 0x95, 0x26, 0xd0, 0x9b, 0xfc, 0x97, 0x26, 0x89, 0xc5, 0xa0, 0x0b, 0xc3, 0xec, 0xc9, 0x91, 0x3a, - 0xdc, 0xe8, 0xc8, 0x18, 0x29, 0x4d, 0xbc, 0x20, 0xac, 0x3c, 0xfb, 0xfe, 0x0f, 0xe7, 0x27, 0xde, - 0x3f, 0x9a, 0x17, 0xbe, 0x77, 0x34, 0x2f, 0xfc, 0xe0, 0x68, 0x5e, 0xf8, 0xe7, 0xa3, 0x79, 0xe1, - 0xd7, 0x7e, 0x34, 0x3f, 0xf1, 0xbd, 0x1f, 0xcd, 0x4f, 0xfc, 0xe0, 0x47, 0xf3, 0x13, 0x6f, 0x4f, - 0x71, 0xee, 0x87, 0x49, 0xfa, 0xa3, 0x97, 0xb7, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xec, 0xe1, - 0x53, 0x8f, 0xf9, 0x73, 0x00, 0x00, +func init() { proto.RegisterFile("roachpb/api.proto", fileDescriptor_api_5f9585d414efb90d) } + +var fileDescriptor_api_5f9585d414efb90d = []byte{ + // 7256 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xbf, 0x86, 0xa4, 0x28, 0xf2, 0xf0, 0x21, 0xea, 0x6a, 0x1f, 0x5c, 0xd9, 0x96, 0xb4, 0xdc, + 0xa7, 0x37, 0xb6, 0xd6, 0xbb, 0x6b, 0xff, 0xed, 0xd8, 0x8e, 0x13, 0x89, 0xe2, 0x2e, 0xb9, 0x5a, + 0x69, 0xe5, 0x21, 0xb5, 0x8e, 0x9d, 0xbf, 0x3b, 0x19, 0xcd, 0x5c, 0x51, 0x93, 0x25, 0x67, 0xb8, + 0x33, 0x43, 0x3d, 0x16, 0x28, 0xfa, 0xfa, 0x90, 0x22, 0x2d, 0x8c, 0x02, 0x2d, 0x8a, 0x22, 0x69, + 0x11, 0x03, 0x29, 0xda, 0xa2, 0x45, 0x02, 0x14, 0x28, 0x5a, 0xb4, 0x68, 0x91, 0x0f, 0xed, 0x07, + 0x37, 0x08, 0x8a, 0xa0, 0x68, 0x91, 0xa0, 0x40, 0x84, 0x66, 0x03, 0xb4, 0x41, 0x3e, 0xf4, 0x6b, + 0x01, 0x7f, 0x68, 0x8b, 0xfb, 0x98, 0x17, 0x39, 0x7c, 0x48, 0x1e, 0xb7, 0x2e, 0xfa, 0x45, 0xe2, + 0x9c, 0x99, 0x73, 0xe6, 0xde, 0x73, 0xcf, 0x3d, 0xf7, 0xfc, 0xee, 0x3d, 0xf7, 0x0e, 0xcc, 0x98, + 0x86, 0xac, 0xec, 0x76, 0xb6, 0xaf, 0xcb, 0x1d, 0x6d, 0xa9, 0x63, 0x1a, 0xb6, 0x81, 0x66, 0x14, + 0x43, 0x79, 0x48, 0xc9, 0x4b, 0xfc, 0xe6, 0x1c, 0x72, 0x9e, 0x52, 0x65, 0x5b, 0x66, 0x8f, 0xcd, + 0x9d, 0x72, 0x68, 0xd8, 0x34, 0x0d, 0xd3, 0xe2, 0xd4, 0x33, 0x0e, 0xb5, 0x8d, 0x6d, 0xd9, 0xf7, + 0x74, 0xc9, 0xb2, 0x0d, 0x53, 0x6e, 0xe2, 0xeb, 0x58, 0x6f, 0x6a, 0xba, 0xf3, 0x8f, 0x3c, 0xb7, + 0xa7, 0x28, 0xfc, 0x99, 0x0b, 0xc3, 0x9e, 0xb9, 0xc5, 0x1f, 0x2a, 0x76, 0x6d, 0xad, 0x75, 0x7d, + 0xb7, 0xa5, 0x5c, 0xb7, 0xb5, 0x36, 0xb6, 0x6c, 0xb9, 0xdd, 0xe1, 0x77, 0x16, 0xe9, 0x1d, 0xdb, + 0x94, 0x15, 0x4d, 0x6f, 0x5e, 0x37, 0xb1, 0x62, 0x98, 0x2a, 0x56, 0x25, 0xab, 0x23, 0xeb, 0x4e, + 0x91, 0x9b, 0x46, 0xd3, 0xa0, 0x3f, 0xaf, 0x93, 0x5f, 0x8c, 0x5a, 0xfa, 0x39, 0x48, 0x8b, 0xb2, + 0xde, 0xc4, 0x35, 0x7d, 0xc7, 0x40, 0xaf, 0x43, 0x42, 0xc5, 0x96, 0x52, 0x14, 0x16, 0x85, 0xab, + 0x99, 0x9b, 0xa5, 0xa5, 0x3e, 0x5d, 0x2c, 0xd1, 0x67, 0x57, 0xb1, 0xa5, 0x98, 0x5a, 0xc7, 0x36, + 0xcc, 0x95, 0xc4, 0x07, 0x47, 0x0b, 0x13, 0x22, 0xe5, 0x42, 0x2f, 0xc2, 0x64, 0x0b, 0xcb, 0x16, + 0x2e, 0xc6, 0x28, 0x7b, 0x31, 0x84, 0xfd, 0x1e, 0xb9, 0xcf, 0x99, 0xd8, 0xc3, 0xa5, 0xbf, 0x16, + 0x20, 0x27, 0xe2, 0x47, 0x5d, 0x6c, 0xd9, 0x55, 0x2c, 0xab, 0xd8, 0x44, 0xe7, 0x20, 0xfe, 0x10, + 0x1f, 0x16, 0xe3, 0x8b, 0xc2, 0xd5, 0xec, 0xca, 0xd4, 0x87, 0x47, 0x0b, 0xf1, 0x35, 0x7c, 0x28, + 0x12, 0x1a, 0x5a, 0x84, 0x29, 0xac, 0xab, 0x12, 0xb9, 0x9d, 0x08, 0xde, 0x4e, 0x62, 0x5d, 0x5d, + 0xc3, 0x87, 0x48, 0x81, 0x94, 0x45, 0xa4, 0xe9, 0x0a, 0x2e, 0x4e, 0x2e, 0x0a, 0x57, 0x27, 0x57, + 0xee, 0x7c, 0x78, 0xb4, 0x50, 0x6e, 0x6a, 0xf6, 0x6e, 0x77, 0x7b, 0x49, 0x31, 0xda, 0xd7, 0xdd, + 0x52, 0xa9, 0xdb, 0xde, 0xef, 0xeb, 0x9d, 0x87, 0xcd, 0xeb, 0x03, 0x5a, 0x60, 0xa9, 0x71, 0xa0, + 0xd7, 0xf1, 0x23, 0xd1, 0x15, 0xfc, 0x6a, 0xe2, 0x27, 0xef, 0x2f, 0x08, 0x77, 0x13, 0x29, 0xa1, + 0x10, 0xbb, 0x9b, 0x48, 0xc5, 0x0a, 0xf1, 0xd2, 0x7b, 0x71, 0xc8, 0x8b, 0xd8, 0xea, 0x18, 0xba, + 0x85, 0x79, 0x35, 0x5e, 0x80, 0xb8, 0x7d, 0xa0, 0xd3, 0x6a, 0x64, 0x6e, 0xce, 0x87, 0x28, 0xa3, + 0x61, 0xca, 0xba, 0x25, 0x2b, 0xb6, 0x66, 0xe8, 0x22, 0x79, 0x14, 0xbd, 0x02, 0x19, 0x13, 0x5b, + 0xdd, 0x36, 0xa6, 0xcd, 0x46, 0x6b, 0x98, 0xb9, 0x79, 0x36, 0x84, 0xb3, 0xde, 0x91, 0x75, 0x11, + 0xd8, 0xb3, 0xe4, 0x37, 0x3a, 0x07, 0x29, 0xbd, 0xdb, 0x26, 0x7a, 0xb1, 0x68, 0xad, 0xe3, 0xe2, + 0x94, 0xde, 0x6d, 0xaf, 0xe1, 0x43, 0x0b, 0x95, 0x21, 0x63, 0x92, 0x46, 0x93, 0x34, 0x7d, 0xc7, + 0xb0, 0x8a, 0xc9, 0xc5, 0xf8, 0xd5, 0xcc, 0xcd, 0xa7, 0x07, 0x35, 0x2d, 0x31, 0x03, 0xde, 0x3e, + 0x60, 0x3a, 0x04, 0x0b, 0xd5, 0x21, 0xc7, 0x4b, 0x66, 0x62, 0xd9, 0x32, 0xf4, 0xe2, 0xd4, 0xa2, + 0x70, 0x35, 0x7f, 0x73, 0x29, 0x4c, 0x4c, 0x40, 0x0b, 0xe4, 0xb2, 0xdb, 0xc6, 0x22, 0xe5, 0x12, + 0xb3, 0xa6, 0xef, 0x0a, 0x3d, 0x05, 0x69, 0x52, 0xe8, 0xed, 0x43, 0x1b, 0x5b, 0xc5, 0x14, 0x2d, + 0x35, 0xa9, 0xc5, 0x0a, 0xb9, 0x2e, 0xbd, 0x01, 0x59, 0x3f, 0x2b, 0x42, 0x90, 0x17, 0x2b, 0xf5, + 0xad, 0xf5, 0x8a, 0xb4, 0xb5, 0xb1, 0xb6, 0x71, 0xff, 0xad, 0x8d, 0xc2, 0x04, 0x3a, 0x05, 0x05, + 0x4e, 0x5b, 0xab, 0xbc, 0x2d, 0xdd, 0xab, 0xad, 0xd7, 0x1a, 0x05, 0x61, 0x2e, 0xf1, 0xcb, 0xdf, + 0x98, 0x9f, 0x28, 0x3d, 0x00, 0xb8, 0x83, 0x6d, 0x6e, 0x58, 0x68, 0x05, 0x92, 0xbb, 0xb4, 0x3c, + 0xdc, 0xb4, 0x17, 0x43, 0x0b, 0xee, 0x33, 0xc2, 0x95, 0x14, 0xd1, 0xc1, 0xf7, 0x8e, 0x16, 0x04, + 0x91, 0x73, 0xb2, 0x46, 0x2f, 0x7d, 0x5b, 0x80, 0x0c, 0x15, 0xcc, 0x6a, 0x89, 0xca, 0x3d, 0x92, + 0xcf, 0x8f, 0x54, 0x49, 0xbf, 0x68, 0xb4, 0x04, 0x93, 0x7b, 0x72, 0xab, 0x3b, 0xac, 0xe7, 0x3c, + 0x20, 0xf7, 0x45, 0xf6, 0x18, 0x7a, 0x0d, 0xb2, 0x9a, 0x6e, 0x63, 0xdd, 0x96, 0x18, 0x5b, 0x7c, + 0x04, 0x5b, 0x86, 0x3d, 0x4d, 0x2f, 0x4a, 0x7f, 0x21, 0x00, 0x6c, 0x76, 0xa3, 0x54, 0x0d, 0xe9, + 0xf9, 0x63, 0x95, 0xdf, 0xe9, 0xf9, 0xac, 0x16, 0x67, 0x20, 0xa9, 0xe9, 0x2d, 0x4d, 0x67, 0xe5, + 0x4f, 0x89, 0xfc, 0x0a, 0x9d, 0x82, 0xc9, 0xed, 0x96, 0xa6, 0xab, 0xb4, 0x03, 0xa4, 0x44, 0x76, + 0xc1, 0xd5, 0x2f, 0x42, 0x86, 0x96, 0x3d, 0x42, 0xed, 0x97, 0xbe, 0x1a, 0x83, 0xd3, 0x65, 0x43, + 0x57, 0x35, 0xd2, 0x13, 0xe5, 0xd6, 0x27, 0x42, 0x37, 0x2f, 0x41, 0x1a, 0x1f, 0x74, 0xc6, 0x6c, + 0xde, 0x14, 0x3e, 0xe8, 0xd0, 0x5f, 0xe1, 0xaa, 0x43, 0x2f, 0xc2, 0x59, 0xb9, 0xd5, 0x32, 0xf6, + 0x25, 0x6d, 0x47, 0x52, 0x0d, 0x6c, 0x49, 0xba, 0x61, 0x4b, 0xf8, 0x40, 0xb3, 0x6c, 0xea, 0x2c, + 0x52, 0xe2, 0x2c, 0xbd, 0x5d, 0xdb, 0x59, 0x35, 0xb0, 0xb5, 0x61, 0xd8, 0x15, 0x72, 0x8b, 0x2b, + 0xfc, 0x5d, 0x38, 0xd3, 0xab, 0x9b, 0x28, 0x75, 0xff, 0xf7, 0x02, 0xe4, 0x6b, 0xba, 0x66, 0x7f, + 0x22, 0x94, 0xee, 0x6a, 0x2f, 0xee, 0xd7, 0xde, 0x35, 0x28, 0xec, 0xc8, 0x5a, 0xeb, 0xbe, 0xde, + 0x30, 0xda, 0xdb, 0x96, 0x6d, 0xe8, 0xd8, 0xe2, 0xea, 0xed, 0xa3, 0x73, 0x9d, 0x3d, 0x80, 0x69, + 0xb7, 0x4e, 0x51, 0x2a, 0xeb, 0x31, 0x14, 0x6a, 0xba, 0x62, 0xe2, 0x36, 0xd6, 0x23, 0xd5, 0xd6, + 0xd3, 0x90, 0xd6, 0x1c, 0xb9, 0x54, 0x63, 0x71, 0xd1, 0x23, 0xf0, 0x3a, 0x75, 0x61, 0xc6, 0xf7, + 0xee, 0x28, 0x9d, 0x1f, 0x19, 0x06, 0xf0, 0xbe, 0xe4, 0xb5, 0x17, 0x19, 0x06, 0xf0, 0x3e, 0x73, + 0x56, 0x6f, 0x43, 0x6e, 0x15, 0xb7, 0xb0, 0x8d, 0xa3, 0xf7, 0xe4, 0x5b, 0x90, 0x77, 0x44, 0x47, + 0xd9, 0x48, 0xbf, 0x23, 0x00, 0xe2, 0x72, 0xc9, 0xf8, 0x19, 0x65, 0x3b, 0x2d, 0x90, 0xf8, 0xc0, + 0xee, 0x9a, 0x3a, 0x1b, 0xe8, 0x99, 0x95, 0x02, 0x23, 0xd1, 0xb1, 0xde, 0xf3, 0xa8, 0x09, 0xbf, + 0x47, 0x75, 0xe3, 0x15, 0x12, 0xa9, 0xec, 0xc3, 0x6c, 0xa0, 0x78, 0xd1, 0x36, 0x65, 0x82, 0x96, + 0x2c, 0xb6, 0x18, 0xf7, 0xc7, 0x66, 0x94, 0x58, 0x7a, 0x17, 0x66, 0xca, 0x2d, 0x2c, 0x9b, 0x51, + 0xab, 0x85, 0x37, 0xe7, 0xdb, 0x80, 0xfc, 0xe2, 0xa3, 0x6c, 0xd2, 0xdf, 0x15, 0x00, 0x89, 0x78, + 0x0f, 0x9b, 0x76, 0xe4, 0x4d, 0xba, 0x0a, 0x19, 0x5b, 0x36, 0x9b, 0xd8, 0x96, 0x48, 0x40, 0xcf, + 0xdd, 0xd5, 0x33, 0x3e, 0x41, 0x24, 0xac, 0x5f, 0xda, 0x6d, 0x29, 0x4b, 0x0d, 0x27, 0xe0, 0x77, + 0xc2, 0x33, 0xc6, 0x47, 0xc8, 0x5c, 0x03, 0xef, 0xc0, 0x6c, 0xa0, 0x94, 0x51, 0xaa, 0xe0, 0x1b, + 0x02, 0x64, 0xea, 0x8a, 0xac, 0x47, 0x59, 0xf7, 0x37, 0x20, 0x63, 0x29, 0xb2, 0x2e, 0xed, 0x18, + 0x66, 0x5b, 0xb6, 0xa9, 0xc9, 0xe6, 0x03, 0x75, 0x77, 0xc3, 0x5d, 0x45, 0xd6, 0x6f, 0xd3, 0x87, + 0x44, 0xb0, 0xdc, 0xdf, 0x7e, 0xab, 0xbe, 0x9b, 0x48, 0xc5, 0x0b, 0x89, 0xd2, 0xbf, 0x0b, 0x90, + 0x65, 0xa5, 0x8c, 0xd2, 0xaa, 0x5f, 0x82, 0x84, 0x69, 0xec, 0x33, 0xab, 0xce, 0xdc, 0x7c, 0x2a, + 0x44, 0xc4, 0x1a, 0x3e, 0xf4, 0x0f, 0x27, 0xf4, 0x71, 0xb4, 0x02, 0x3c, 0xec, 0x92, 0x28, 0x77, + 0x7c, 0x5c, 0x6e, 0x60, 0x5c, 0x22, 0x91, 0x71, 0x05, 0xa6, 0xb7, 0x65, 0x5b, 0xd9, 0x95, 0x4c, + 0x5e, 0x48, 0x32, 0xf4, 0xc4, 0xaf, 0x66, 0xc5, 0x3c, 0x25, 0x3b, 0x45, 0xb7, 0x4a, 0x7f, 0xe8, + 0x98, 0xa8, 0x85, 0x3f, 0xf9, 0xcd, 0xf4, 0x1f, 0x02, 0xb7, 0x54, 0xa7, 0xb0, 0xff, 0xd7, 0x5a, + 0xeb, 0xeb, 0x31, 0x38, 0x5b, 0xde, 0xc5, 0xca, 0xc3, 0xb2, 0xa1, 0x5b, 0x9a, 0x65, 0x63, 0x5d, + 0x39, 0x8c, 0xb2, 0xc9, 0x9e, 0x82, 0xf4, 0xbe, 0x66, 0xef, 0x4a, 0xaa, 0xb6, 0xb3, 0x43, 0x7d, + 0x4a, 0x4a, 0x4c, 0x11, 0xc2, 0xaa, 0xb6, 0xb3, 0x83, 0x6e, 0x41, 0xa2, 0x6d, 0xa8, 0x2c, 0xaa, + 0xcc, 0xdf, 0x5c, 0x08, 0x11, 0x4f, 0x8b, 0x66, 0x75, 0xdb, 0xeb, 0x86, 0x8a, 0x45, 0xfa, 0x30, + 0x9a, 0x07, 0x50, 0x08, 0xb5, 0x63, 0x68, 0xba, 0xcd, 0x47, 0x17, 0x1f, 0x05, 0x55, 0x21, 0x6d, + 0x63, 0xb3, 0xad, 0xe9, 0xb2, 0x4d, 0x70, 0x37, 0x51, 0xde, 0xc5, 0xd0, 0x82, 0x77, 0x5a, 0x9a, + 0x22, 0xf7, 0x4d, 0x20, 0x78, 0xcc, 0xdc, 0x97, 0xbd, 0x97, 0x80, 0x62, 0xbf, 0x86, 0xa2, 0xb4, + 0x93, 0x4d, 0x48, 0x12, 0x34, 0xda, 0xb2, 0xb9, 0xa5, 0xdc, 0x1c, 0xa4, 0x88, 0x90, 0x12, 0x50, + 0x54, 0xdb, 0xb2, 0x79, 0xe1, 0xb9, 0x9c, 0xb9, 0xbf, 0x14, 0x20, 0xc9, 0x6e, 0xa0, 0x1b, 0x90, + 0xe2, 0xa0, 0x5b, 0xa5, 0x65, 0x8c, 0xaf, 0x9c, 0x79, 0x72, 0xb4, 0x30, 0xc5, 0x20, 0xf6, 0xea, + 0x87, 0xde, 0x4f, 0x71, 0x8a, 0xa1, 0x6c, 0x95, 0xb4, 0x99, 0x65, 0xcb, 0xa6, 0x4d, 0x27, 0x37, + 0x48, 0x9b, 0x65, 0xc5, 0x14, 0x25, 0xac, 0xe1, 0x43, 0x74, 0x17, 0x92, 0x96, 0x2d, 0xdb, 0x5d, + 0x8b, 0xb7, 0xda, 0xb1, 0x0a, 0x5b, 0xa7, 0x9c, 0x22, 0x97, 0x40, 0x82, 0x04, 0x15, 0xdb, 0xb2, + 0xd6, 0xa2, 0xcd, 0x98, 0x16, 0xf9, 0x55, 0xe9, 0x6b, 0x02, 0x24, 0xd9, 0xa3, 0xe8, 0x2c, 0xcc, + 0x8a, 0xcb, 0x1b, 0x77, 0x2a, 0x52, 0x6d, 0x63, 0xb5, 0xd2, 0xa8, 0x88, 0xeb, 0xb5, 0x8d, 0xe5, + 0x46, 0xa5, 0x30, 0x81, 0xce, 0x00, 0x72, 0x6e, 0x94, 0xef, 0x6f, 0xd4, 0x6b, 0xf5, 0x46, 0x65, + 0xa3, 0x51, 0x10, 0x28, 0x12, 0xa7, 0x74, 0x1f, 0x35, 0x86, 0x2e, 0xc2, 0x62, 0x2f, 0x55, 0xaa, + 0x37, 0x96, 0x1b, 0x75, 0xa9, 0x52, 0x6f, 0xd4, 0xd6, 0x97, 0x1b, 0x95, 0xd5, 0x42, 0x7c, 0xc8, + 0x53, 0xe4, 0x25, 0xa2, 0x58, 0x29, 0x37, 0x0a, 0x89, 0xd2, 0x63, 0x38, 0x2d, 0x62, 0xc5, 0x68, + 0x77, 0xba, 0x36, 0x26, 0xa5, 0xb4, 0xa2, 0xec, 0x2f, 0x67, 0x61, 0x4a, 0x35, 0x0f, 0x25, 0xb3, + 0xab, 0xf3, 0xde, 0x92, 0x54, 0xcd, 0x43, 0xb1, 0xab, 0x73, 0x63, 0xfc, 0x33, 0x01, 0xce, 0xf4, + 0xbe, 0x3c, 0x4a, 0x53, 0xfc, 0x3c, 0x64, 0x64, 0x55, 0xc5, 0xaa, 0xa4, 0xe2, 0x96, 0x2d, 0xf3, + 0x20, 0xe0, 0x86, 0x4f, 0x12, 0x9f, 0x98, 0x5a, 0x62, 0x33, 0x52, 0x4b, 0xee, 0xc4, 0xd4, 0xfa, + 0x83, 0x72, 0x99, 0x96, 0x67, 0x95, 0x30, 0x3a, 0x1e, 0x89, 0xca, 0xa2, 0x94, 0xd2, 0x9f, 0x26, + 0x20, 0x57, 0xd1, 0xd5, 0xc6, 0x41, 0xa4, 0x23, 0xc2, 0x19, 0x48, 0x2a, 0x46, 0xbb, 0xad, 0xd9, + 0x8e, 0xb6, 0xd8, 0x15, 0xfa, 0x34, 0xa4, 0x54, 0x2c, 0xab, 0x2e, 0xa4, 0x1f, 0x15, 0xc9, 0x88, + 0xee, 0xe3, 0xe8, 0x8b, 0x70, 0x96, 0x38, 0x52, 0x53, 0x97, 0x5b, 0x12, 0x93, 0x26, 0xd9, 0xa6, + 0xd6, 0x6c, 0x62, 0x93, 0x4f, 0x83, 0x5d, 0x0d, 0x29, 0x67, 0x8d, 0x73, 0x94, 0x29, 0x43, 0x83, + 0x3d, 0x2f, 0x9e, 0xd6, 0xc2, 0xc8, 0xe8, 0x73, 0xee, 0x9c, 0x89, 0xd5, 0x91, 0x75, 0x8b, 0x3b, + 0xa9, 0x41, 0xb3, 0x6b, 0x5c, 0x97, 0x7c, 0x4c, 0x20, 0x14, 0x0b, 0x5d, 0x27, 0xe1, 0xf7, 0xa3, + 0xae, 0x66, 0x62, 0xe9, 0x46, 0x47, 0x29, 0x26, 0x49, 0xdd, 0x57, 0xf2, 0x4f, 0x8e, 0x16, 0x40, + 0x64, 0xe4, 0x1b, 0x9b, 0x65, 0x12, 0x8e, 0xb3, 0xdf, 0x1d, 0x05, 0xad, 0xc0, 0x3c, 0x19, 0x38, + 0x79, 0x7d, 0x64, 0x5b, 0xda, 0xd5, 0x9a, 0xbb, 0xd8, 0x94, 0xdc, 0xb9, 0x5b, 0x3a, 0xeb, 0x95, + 0x12, 0xe7, 0x14, 0x59, 0x67, 0x85, 0x5d, 0xb6, 0xab, 0xf4, 0x11, 0x57, 0x45, 0x44, 0xd7, 0x1d, + 0x43, 0xb3, 0x0c, 0xbd, 0x98, 0x66, 0xba, 0x66, 0x57, 0xe8, 0x4d, 0x28, 0x68, 0xba, 0xb4, 0xd3, + 0xd2, 0x9a, 0xbb, 0xb6, 0xb4, 0x6f, 0x6a, 0x36, 0xb6, 0x8a, 0x33, 0xb4, 0x4a, 0x61, 0x26, 0x58, + 0xe7, 0x33, 0x97, 0xea, 0x5b, 0xe4, 0x49, 0x5e, 0xb9, 0xbc, 0xa6, 0xdf, 0xa6, 0xfc, 0x94, 0x68, + 0xb9, 0x03, 0xf5, 0x54, 0x21, 0x55, 0xfa, 0xa1, 0x00, 0x79, 0xc7, 0x70, 0xa2, 0x34, 0xf5, 0xab, + 0x50, 0x30, 0x74, 0x2c, 0x75, 0x76, 0x65, 0x0b, 0x73, 0xc5, 0xf0, 0xd1, 0x24, 0x6f, 0xe8, 0x78, + 0x93, 0x90, 0x99, 0x26, 0xd0, 0x26, 0xcc, 0x58, 0xb6, 0xdc, 0xd4, 0xf4, 0xa6, 0x4f, 0x5f, 0x93, + 0xe3, 0xc7, 0xc7, 0x05, 0xce, 0xed, 0xd2, 0x03, 0x21, 0xc8, 0xf7, 0x05, 0x98, 0x59, 0x56, 0xdb, + 0x9a, 0x5e, 0xef, 0xb4, 0xb4, 0x48, 0xc1, 0xf4, 0x45, 0x48, 0x5b, 0x44, 0xa6, 0xe7, 0xc7, 0x3d, + 0x20, 0x94, 0xa2, 0x77, 0x88, 0x43, 0xbf, 0x07, 0xd3, 0xf8, 0xa0, 0xa3, 0x99, 0xb2, 0xad, 0x19, + 0x3a, 0x8b, 0xfd, 0x13, 0xe3, 0xd7, 0x2d, 0xef, 0xf1, 0x7a, 0xf1, 0x3f, 0xaf, 0xd9, 0xdb, 0x80, + 0xfc, 0x15, 0x8b, 0x12, 0x04, 0x48, 0x30, 0x4b, 0x45, 0x6f, 0xe9, 0x56, 0xc4, 0x5a, 0xe3, 0x8e, + 0xf6, 0x0b, 0x70, 0x2a, 0xf8, 0x82, 0x28, 0x4b, 0xff, 0x2e, 0x6f, 0xf1, 0x75, 0x6c, 0x7e, 0x4c, + 0xf8, 0xd3, 0x2f, 0x3e, 0xca, 0x92, 0x7f, 0x45, 0x80, 0x73, 0x54, 0x36, 0x5d, 0x31, 0xd8, 0xc1, + 0x26, 0x5d, 0x46, 0x89, 0xd2, 0x68, 0x2f, 0x40, 0x92, 0xc1, 0x49, 0x6a, 0xb1, 0x93, 0x2b, 0x19, + 0x12, 0xa2, 0xd4, 0x6d, 0xc3, 0x24, 0x21, 0x0a, 0xbf, 0xc5, 0xeb, 0x29, 0xc3, 0x5c, 0x58, 0x59, + 0x22, 0xc6, 0xdb, 0x33, 0x3c, 0x52, 0x24, 0x26, 0x5e, 0xde, 0x25, 0x21, 0x12, 0xaa, 0x40, 0x46, + 0xa1, 0xbf, 0x24, 0xfb, 0xb0, 0x83, 0xa9, 0xfc, 0xfc, 0xb0, 0x20, 0x93, 0xb1, 0x35, 0x0e, 0x3b, + 0x98, 0x44, 0xaa, 0xce, 0x6f, 0xa2, 0x2e, 0x5f, 0x55, 0x87, 0x86, 0xa9, 0xb4, 0x7f, 0xd1, 0x67, + 0x9d, 0x48, 0x2f, 0xa0, 0x89, 0x3f, 0x8f, 0x73, 0x55, 0xb0, 0x37, 0x71, 0xa6, 0x48, 0x03, 0x93, + 0x77, 0xe0, 0x8c, 0x8a, 0x3b, 0x26, 0x56, 0x64, 0x1b, 0xab, 0x92, 0xbf, 0xfa, 0xb1, 0x63, 0x54, + 0xff, 0x94, 0x27, 0xc3, 0xa3, 0xa2, 0xb7, 0x01, 0xf9, 0x64, 0xb3, 0x9a, 0x39, 0xc0, 0xe7, 0x38, + 0x4a, 0x99, 0xf1, 0xa4, 0x30, 0xba, 0x85, 0xca, 0x90, 0xc2, 0x07, 0x1d, 0x89, 0xae, 0x25, 0x26, + 0x8e, 0xb9, 0x96, 0x38, 0x85, 0x0f, 0x3a, 0x84, 0x88, 0xb6, 0xc8, 0x08, 0xe7, 0x84, 0x04, 0xb4, + 0xd8, 0xd6, 0x68, 0x64, 0xe1, 0xd9, 0x0b, 0x17, 0x37, 0xed, 0x46, 0x03, 0x4c, 0x04, 0x6f, 0xbb, + 0xf7, 0x05, 0x78, 0x2a, 0xb4, 0xed, 0xa2, 0x1c, 0xec, 0x9c, 0xe5, 0xd4, 0xd8, 0x49, 0x96, 0x53, + 0x4b, 0x7f, 0xe4, 0xf4, 0x7a, 0x11, 0xb7, 0x0c, 0xa2, 0xde, 0x8f, 0x61, 0xf2, 0x69, 0xca, 0x69, + 0xf6, 0xd8, 0xb1, 0x9b, 0xdd, 0x61, 0xed, 0x71, 0x0b, 0x3d, 0x85, 0x8d, 0xd2, 0x2d, 0xfc, 0xa6, + 0x00, 0xb3, 0x55, 0x2c, 0x9b, 0xf6, 0x36, 0x96, 0xed, 0x88, 0x43, 0xda, 0x97, 0x20, 0xae, 0x1b, + 0xfb, 0xc7, 0x99, 0x7f, 0x23, 0xcf, 0x7b, 0xc3, 0x56, 0xb0, 0x5c, 0x51, 0xd6, 0xfa, 0x6f, 0x63, + 0x90, 0xbe, 0x53, 0x8e, 0xb2, 0xae, 0xaf, 0xf3, 0x59, 0x5a, 0xd6, 0xd5, 0xc3, 0xcc, 0xd2, 0x7d, + 0xdf, 0xd2, 0x9d, 0xf2, 0x1a, 0x3e, 0x74, 0xcc, 0x92, 0x70, 0xa1, 0x65, 0x48, 0xdb, 0xbb, 0x26, + 0xb6, 0x76, 0x8d, 0x96, 0x7a, 0x9c, 0x98, 0xc5, 0xe3, 0x9a, 0x7b, 0x08, 0x93, 0x54, 0xae, 0xb3, + 0xd2, 0x2f, 0x84, 0xac, 0xf4, 0x93, 0xd7, 0xb8, 0x61, 0x5f, 0xec, 0x38, 0xaf, 0x71, 0x08, 0xac, + 0x71, 0xdc, 0xd8, 0x68, 0xb2, 0x90, 0x2c, 0xbd, 0x09, 0x40, 0xaa, 0x16, 0x65, 0xf3, 0xfc, 0x7a, + 0x1c, 0xf2, 0x9b, 0x5d, 0x6b, 0x37, 0x62, 0x7b, 0x2c, 0x03, 0x74, 0xba, 0x16, 0x05, 0x0b, 0x07, + 0x3a, 0xaf, 0xff, 0x88, 0x1c, 0x02, 0x47, 0x01, 0x8c, 0xaf, 0x71, 0xa0, 0xa3, 0xfb, 0x5c, 0x08, + 0x96, 0xbc, 0x44, 0x84, 0x6b, 0x63, 0xc0, 0xca, 0xc6, 0x81, 0xbe, 0x8e, 0x5d, 0x3c, 0xc9, 0x04, + 0x62, 0x22, 0xf0, 0x75, 0x98, 0x22, 0x17, 0x92, 0x6d, 0x1c, 0xa7, 0xe5, 0x93, 0x84, 0xa7, 0x61, + 0xa0, 0xd7, 0x20, 0xcd, 0xb8, 0xc9, 0xf8, 0x95, 0xa4, 0xe3, 0x57, 0x58, 0x95, 0xb8, 0x36, 0xe9, + 0xc8, 0x95, 0xa2, 0xac, 0x64, 0xb4, 0x3a, 0x05, 0x93, 0x3b, 0x86, 0xa9, 0x60, 0x9a, 0x79, 0x90, + 0x12, 0xd9, 0x85, 0xbf, 0x71, 0xef, 0x26, 0x52, 0xa9, 0x42, 0xfa, 0x6e, 0x22, 0x95, 0x2e, 0x40, + 0xe9, 0x6b, 0x02, 0x4c, 0xbb, 0xad, 0x12, 0xa5, 0x4b, 0x2f, 0x07, 0x54, 0x7a, 0xfc, 0x76, 0x21, + 0x6a, 0x2c, 0xfd, 0x03, 0x8d, 0x6f, 0x14, 0x63, 0x8f, 0x36, 0x53, 0x94, 0x66, 0xb3, 0xc2, 0x72, + 0x4e, 0x62, 0x27, 0x6c, 0x6a, 0x9a, 0x85, 0x72, 0x03, 0x4e, 0x69, 0x6d, 0xe2, 0xf3, 0x35, 0xbb, + 0x75, 0xc8, 0x31, 0x9a, 0x8d, 0x9d, 0x45, 0xd1, 0x59, 0xef, 0x5e, 0xd9, 0xb9, 0xc5, 0xdd, 0x20, + 0x5b, 0x26, 0xf1, 0xaa, 0x15, 0xa5, 0xde, 0x6b, 0x90, 0x33, 0x99, 0x68, 0x12, 0xab, 0x1c, 0x53, + 0xf5, 0x59, 0x97, 0x95, 0x68, 0xff, 0x5b, 0x31, 0x98, 0x7e, 0xb3, 0x8b, 0xcd, 0xc3, 0x4f, 0xa0, + 0xee, 0x2f, 0xc3, 0xf4, 0xbe, 0xac, 0xd9, 0xd2, 0x8e, 0x61, 0x4a, 0xdd, 0x8e, 0x2a, 0xdb, 0x4e, + 0x6e, 0x44, 0x8e, 0x90, 0x6f, 0x1b, 0xe6, 0x16, 0x25, 0x22, 0x0c, 0xe8, 0xa1, 0x6e, 0xec, 0xeb, + 0x12, 0x21, 0x53, 0x88, 0x7c, 0xa0, 0xf3, 0xc9, 0xe6, 0x95, 0x97, 0xff, 0xe9, 0x68, 0xe1, 0xd6, + 0x58, 0xf9, 0x4e, 0x34, 0x65, 0xac, 0xdb, 0xd5, 0xd4, 0xa5, 0xad, 0xad, 0xda, 0xaa, 0x58, 0xa0, + 0x22, 0xdf, 0x62, 0x12, 0x1b, 0x07, 0xba, 0x33, 0xb4, 0x7f, 0x28, 0x40, 0xc1, 0x53, 0x58, 0x94, + 0xad, 0x5a, 0x81, 0xcc, 0xa3, 0x2e, 0x36, 0xb5, 0x13, 0xb4, 0x29, 0x70, 0x46, 0xe2, 0x96, 0xde, + 0x81, 0x6c, 0x40, 0x0f, 0xf1, 0x8f, 0xa6, 0x87, 0xcc, 0xbe, 0xa7, 0x82, 0xd2, 0x77, 0x05, 0x40, + 0xb4, 0xf2, 0x35, 0x36, 0xcf, 0xff, 0x09, 0x33, 0x98, 0xab, 0x50, 0xa0, 0x19, 0x88, 0x92, 0xb6, + 0x23, 0xb5, 0x35, 0xcb, 0xd2, 0xf4, 0x26, 0xb7, 0x98, 0x3c, 0xa5, 0xd7, 0x76, 0xd6, 0x19, 0x95, + 0xb7, 0xe5, 0xcf, 0xc2, 0x6c, 0xa0, 0x36, 0x51, 0xb6, 0xe6, 0x79, 0xc8, 0xee, 0x18, 0x5d, 0x5d, + 0x95, 0xd8, 0xa4, 0x19, 0x9f, 0x1c, 0xcc, 0x50, 0x1a, 0x7b, 0x5f, 0xe9, 0x3f, 0x63, 0x70, 0x4a, + 0xc4, 0x96, 0xd1, 0xda, 0xc3, 0xd1, 0xeb, 0xf3, 0x3e, 0xf0, 0xc5, 0x18, 0xe9, 0xa3, 0xa8, 0x35, + 0xcd, 0x64, 0xb0, 0xe1, 0x2e, 0x38, 0xeb, 0x7e, 0x71, 0xb8, 0x65, 0xf6, 0xcf, 0xb3, 0xf3, 0x99, + 0xbb, 0x44, 0x60, 0xe6, 0x6e, 0x0f, 0xa6, 0xb5, 0xa6, 0x6e, 0x10, 0x47, 0x66, 0xe1, 0x47, 0x7a, + 0xb7, 0xed, 0xc0, 0x9a, 0x97, 0xc6, 0x28, 0x6b, 0x8d, 0x71, 0xd6, 0xf1, 0xa3, 0x8d, 0x6e, 0x9b, + 0xc6, 0xd8, 0x2b, 0x67, 0x48, 0xb1, 0x9f, 0x1c, 0x2d, 0xe4, 0x03, 0xf7, 0x2c, 0x31, 0xaf, 0xb9, + 0xd7, 0xe4, 0x25, 0xdc, 0x00, 0xfe, 0x3f, 0x9c, 0xee, 0x69, 0x80, 0x28, 0xa3, 0xa1, 0xbf, 0x8b, + 0xc3, 0xb9, 0xa0, 0xf8, 0xa8, 0x31, 0xcb, 0xff, 0x92, 0x46, 0xae, 0x42, 0xae, 0xad, 0xe9, 0x27, + 0x9b, 0xb9, 0xcc, 0xb6, 0x35, 0xdd, 0x9b, 0x00, 0x0e, 0x31, 0x97, 0xe4, 0x7f, 0x9f, 0xb9, 0xc8, + 0x30, 0x17, 0xd6, 0x9e, 0x51, 0xda, 0xcc, 0x7b, 0x02, 0x64, 0xa3, 0x9e, 0x93, 0x3b, 0x59, 0x02, + 0x18, 0xaf, 0x73, 0x03, 0x72, 0x1f, 0xc3, 0x24, 0xde, 0xef, 0x0b, 0x80, 0x1a, 0x66, 0x57, 0x27, + 0xe0, 0xf8, 0x9e, 0xd1, 0x8c, 0xb2, 0xb2, 0xa7, 0x60, 0x52, 0xd3, 0x55, 0x7c, 0x40, 0x2b, 0x9b, + 0x10, 0xd9, 0x45, 0x60, 0x0d, 0x32, 0x3e, 0xd6, 0x1a, 0xa4, 0x97, 0x47, 0x12, 0x28, 0x68, 0x94, + 0x5a, 0xf8, 0x56, 0x0c, 0x66, 0x79, 0x75, 0x22, 0x9f, 0xc4, 0x3c, 0x51, 0xfe, 0x39, 0xfa, 0x0c, + 0x40, 0xc7, 0xc4, 0x7b, 0x12, 0x63, 0x8d, 0x8f, 0xc5, 0x9a, 0x26, 0x1c, 0x94, 0x80, 0x3e, 0x0f, + 0xd3, 0xa4, 0xa3, 0x77, 0x4c, 0xa3, 0x63, 0x58, 0x24, 0x8e, 0xb1, 0xc6, 0x83, 0x46, 0x33, 0x4f, + 0x8e, 0x16, 0x72, 0xeb, 0x9a, 0xbe, 0xc9, 0x19, 0x1b, 0x75, 0x91, 0x78, 0x0c, 0xf7, 0xd2, 0xe9, + 0x80, 0xff, 0x28, 0xc0, 0xa9, 0x8f, 0x6d, 0xda, 0xf7, 0x7f, 0x42, 0x63, 0xee, 0x38, 0x54, 0xa0, + 0x97, 0x35, 0x7d, 0xc7, 0x88, 0x7e, 0x32, 0xfe, 0x3d, 0x01, 0x66, 0x7c, 0xe2, 0xa3, 0x8c, 0x72, + 0x4e, 0xb6, 0xcb, 0xe1, 0x0b, 0x24, 0xee, 0xf1, 0x9b, 0x7d, 0x94, 0x9d, 0xea, 0xaf, 0x62, 0x70, + 0xa6, 0xcc, 0x56, 0xa7, 0x9d, 0xd4, 0x8d, 0x28, 0xad, 0xa4, 0x08, 0x53, 0x7b, 0xd8, 0xb4, 0x34, + 0x83, 0x8d, 0xb7, 0x39, 0xd1, 0xb9, 0x44, 0x73, 0x90, 0xb2, 0x74, 0xb9, 0x63, 0xed, 0x1a, 0xce, + 0x2a, 0x9e, 0x7b, 0xed, 0xa6, 0x99, 0x4c, 0x9e, 0x3c, 0xcd, 0x24, 0x39, 0x3c, 0xcd, 0x64, 0xea, + 0x23, 0xa7, 0x99, 0xf0, 0x25, 0xb3, 0xef, 0x08, 0x70, 0xb6, 0x4f, 0x7f, 0x51, 0xda, 0xcc, 0x97, + 0x20, 0xa3, 0x70, 0xc1, 0xc4, 0x1b, 0xb3, 0x55, 0xc1, 0x1a, 0x79, 0xec, 0x84, 0x18, 0xe5, 0xc9, + 0xd1, 0x02, 0x38, 0x45, 0xad, 0xad, 0x72, 0x15, 0x91, 0xdf, 0x6a, 0xe9, 0x57, 0x32, 0x30, 0x5d, + 0x39, 0x60, 0x73, 0xde, 0x75, 0x16, 0x16, 0xa0, 0xdb, 0x90, 0xea, 0x98, 0xc6, 0x9e, 0xe6, 0x54, + 0x23, 0x1f, 0x08, 0x99, 0x9c, 0x6a, 0xf4, 0x70, 0x6d, 0x72, 0x0e, 0xd1, 0xe5, 0x45, 0x0d, 0x48, + 0xdf, 0x33, 0x14, 0xb9, 0x75, 0x5b, 0x6b, 0x39, 0xf6, 0xff, 0xc2, 0x68, 0x41, 0x4b, 0x2e, 0xcf, + 0xa6, 0x6c, 0xef, 0x3a, 0x4d, 0xe1, 0x12, 0x51, 0x0d, 0x52, 0x55, 0xdb, 0xee, 0x90, 0x9b, 0xdc, + 0x9b, 0x5c, 0x19, 0x43, 0x28, 0x61, 0xe1, 0xb2, 0x5c, 0x76, 0xd4, 0x80, 0x99, 0x3b, 0x86, 0xd1, + 0x6c, 0xe1, 0x72, 0xcb, 0xe8, 0xaa, 0x65, 0x43, 0xdf, 0xd1, 0x9a, 0xdc, 0x1f, 0x5f, 0x1e, 0x43, + 0xe6, 0x9d, 0x72, 0x5d, 0xec, 0x17, 0x80, 0x96, 0x21, 0x55, 0xbf, 0xc5, 0x85, 0xb1, 0x38, 0xee, + 0xd2, 0x18, 0xc2, 0xea, 0xb7, 0x44, 0x97, 0x0d, 0xdd, 0x85, 0xcc, 0xf2, 0xe3, 0xae, 0x89, 0xb9, + 0x94, 0xe4, 0xc0, 0x9c, 0x86, 0x5e, 0x29, 0x94, 0x4b, 0xf4, 0x33, 0xa3, 0x3a, 0xe4, 0xdf, 0x32, + 0xcc, 0x87, 0x2d, 0x43, 0x76, 0x6a, 0x38, 0x45, 0xc5, 0x7d, 0x6a, 0x0c, 0x71, 0x0e, 0xa3, 0xd8, + 0x23, 0x62, 0xee, 0xf3, 0x90, 0x0b, 0x34, 0x13, 0x42, 0x90, 0xe8, 0x90, 0x16, 0x11, 0x68, 0x92, + 0x10, 0xfd, 0x8d, 0x9e, 0x87, 0x29, 0xdd, 0x50, 0xb1, 0x63, 0xc3, 0xb9, 0x95, 0x53, 0x4f, 0x8e, + 0x16, 0x92, 0x1b, 0x86, 0xca, 0x02, 0x0a, 0xfe, 0x4b, 0x4c, 0x92, 0x87, 0x9c, 0x70, 0x62, 0xee, + 0x32, 0x24, 0x48, 0xfb, 0x10, 0x37, 0xb2, 0x2d, 0x5b, 0x78, 0xcb, 0xd4, 0xb8, 0x4c, 0xe7, 0x92, + 0x3f, 0xf7, 0x03, 0x01, 0x62, 0xf5, 0x5b, 0x24, 0xa2, 0xde, 0xee, 0x2a, 0x0f, 0xb1, 0xcd, 0x9f, + 0xe2, 0x57, 0x34, 0xd2, 0x36, 0xf1, 0x8e, 0xc6, 0xa2, 0x9c, 0xb4, 0xc8, 0xaf, 0xd0, 0x33, 0x00, + 0xb2, 0xa2, 0x60, 0xcb, 0x92, 0x9c, 0x4d, 0x63, 0x69, 0x31, 0xcd, 0x28, 0x6b, 0xf8, 0x90, 0xb0, + 0x59, 0x58, 0x31, 0xb1, 0xed, 0x64, 0x3b, 0xb1, 0x2b, 0xc2, 0x66, 0xe3, 0x76, 0x47, 0xb2, 0x8d, + 0x87, 0x58, 0xa7, 0xad, 0x9a, 0x26, 0xee, 0xa1, 0xdd, 0x69, 0x10, 0x02, 0xf1, 0x6c, 0x58, 0x57, + 0x3d, 0x37, 0x94, 0x16, 0xdd, 0x6b, 0x22, 0xd2, 0xc4, 0x4d, 0x8d, 0xef, 0x82, 0x4a, 0x8b, 0xfc, + 0x8a, 0x68, 0x4c, 0xee, 0xda, 0xbb, 0x34, 0xa9, 0x23, 0x2d, 0xd2, 0xdf, 0xbc, 0x6a, 0x5f, 0x15, + 0x20, 0x7e, 0xa7, 0x5c, 0x3f, 0x76, 0xdd, 0x1c, 0x89, 0x71, 0x4f, 0x22, 0x4d, 0x32, 0xd4, 0x5a, + 0x2d, 0x4d, 0x6f, 0x92, 0xa0, 0xe3, 0x4b, 0x58, 0x71, 0x6a, 0x96, 0xe7, 0xe4, 0x4d, 0x46, 0x45, + 0x8b, 0x90, 0x51, 0x4c, 0xac, 0x62, 0xdd, 0xd6, 0xe4, 0x96, 0xc5, 0xab, 0xe8, 0x27, 0xf1, 0xc2, + 0x7d, 0x59, 0x80, 0x49, 0x6a, 0x5e, 0xe8, 0x69, 0x48, 0x2b, 0x86, 0x6e, 0xcb, 0x9a, 0xce, 0xfd, + 0x44, 0x5a, 0xf4, 0x08, 0x03, 0x0b, 0x79, 0x1e, 0xb2, 0xb2, 0xa2, 0x18, 0x5d, 0xdd, 0x96, 0x74, + 0xb9, 0x8d, 0x79, 0x61, 0x33, 0x9c, 0xb6, 0x21, 0xb7, 0x31, 0x5a, 0x00, 0xe7, 0xd2, 0xdd, 0xba, + 0x97, 0x16, 0x81, 0x93, 0xd6, 0xf0, 0x21, 0x2f, 0xc9, 0x77, 0x04, 0x48, 0x39, 0x66, 0x49, 0x0a, + 0xd3, 0xc4, 0x3a, 0x36, 0x65, 0xdb, 0x70, 0x0b, 0xe3, 0x12, 0x7a, 0xc7, 0xa4, 0xb4, 0x37, 0x26, + 0x9d, 0x82, 0x49, 0x5b, 0xde, 0x6e, 0x39, 0xe5, 0x60, 0x17, 0x74, 0xfa, 0xb8, 0x25, 0x37, 0xd9, + 0x1c, 0x59, 0x5a, 0x64, 0x17, 0xa4, 0x4a, 0x3c, 0xab, 0x95, 0x69, 0x87, 0x5f, 0x91, 0xf2, 0xb2, + 0x44, 0xce, 0x6d, 0xdc, 0xd4, 0x74, 0x6a, 0x00, 0x71, 0x11, 0x28, 0x69, 0x85, 0x50, 0xd0, 0x53, + 0x90, 0x66, 0x0f, 0x60, 0x5d, 0xa5, 0x56, 0x10, 0x17, 0x53, 0x94, 0x50, 0x71, 0x76, 0x2a, 0xf1, + 0x40, 0xe4, 0x9b, 0x02, 0xcc, 0xb0, 0x9c, 0x1b, 0x96, 0x01, 0x1a, 0xdd, 0xa8, 0xfc, 0x2a, 0xa4, + 0x55, 0xd9, 0x96, 0xd9, 0x56, 0xc1, 0xd8, 0xd0, 0xad, 0x82, 0x8e, 0x9b, 0x24, 0xcf, 0xd3, 0xed, + 0x82, 0x08, 0x12, 0xe4, 0x37, 0xdb, 0x62, 0x29, 0xd2, 0xdf, 0x5e, 0x16, 0x83, 0xbf, 0xb8, 0x51, + 0x46, 0x29, 0xd7, 0xe1, 0x34, 0x71, 0x2e, 0x15, 0x5d, 0x31, 0x0f, 0x3b, 0x04, 0x4a, 0xdf, 0xa7, + 0x7f, 0x2d, 0x54, 0xf0, 0xad, 0x02, 0xd1, 0xc5, 0x1f, 0x5e, 0x96, 0xbf, 0x49, 0x42, 0xae, 0x72, + 0xd0, 0x31, 0xcc, 0x88, 0x67, 0xdd, 0xa6, 0x38, 0x5a, 0x1e, 0xb2, 0x2e, 0xdb, 0xe3, 0x36, 0x9d, + 0x25, 0x4f, 0xce, 0x88, 0x56, 0x00, 0x58, 0xae, 0x26, 0x4d, 0xdc, 0x89, 0x1f, 0x63, 0x75, 0x8a, + 0xb2, 0x11, 0x2a, 0xda, 0x80, 0x4c, 0x7b, 0x4f, 0x51, 0xa4, 0x1d, 0xad, 0x65, 0xf3, 0x2c, 0xb7, + 0xf0, 0xb4, 0xea, 0xf5, 0x07, 0xe5, 0xf2, 0x6d, 0xfa, 0x10, 0x4b, 0x36, 0xf3, 0xae, 0x45, 0x20, + 0x12, 0xd8, 0x6f, 0xf4, 0x1c, 0xf0, 0x9d, 0x20, 0x92, 0xe5, 0xec, 0xeb, 0x5a, 0xc9, 0x3d, 0x39, + 0x5a, 0x48, 0x8b, 0x94, 0x5a, 0xaf, 0x37, 0xc4, 0x34, 0x7b, 0xa0, 0x6e, 0xd9, 0xe8, 0x02, 0xe4, + 0x8c, 0xb6, 0x66, 0x4b, 0x4e, 0xe0, 0xc0, 0x63, 0xad, 0x2c, 0x21, 0x3a, 0x81, 0x05, 0x6a, 0xc0, + 0x15, 0xac, 0x93, 0xee, 0x43, 0xeb, 0x29, 0x6d, 0xb3, 0xc9, 0x3d, 0x9b, 0x75, 0x41, 0xc9, 0xe8, + 0xd8, 0x5a, 0x5b, 0x7b, 0x4c, 0x57, 0x86, 0xf9, 0xaa, 0xcc, 0x05, 0xf6, 0x38, 0xa9, 0xdf, 0x0a, + 0x9d, 0xf5, 0xe3, 0xcf, 0xde, 0xf7, 0x3d, 0x8a, 0xbe, 0x2c, 0xc0, 0x19, 0xae, 0x48, 0x69, 0xfb, + 0x50, 0x6a, 0x91, 0x51, 0x47, 0xb3, 0x0f, 0xa5, 0x87, 0x7b, 0xc5, 0x14, 0x8d, 0xe8, 0x3e, 0x1d, + 0xda, 0x20, 0x3e, 0x3b, 0x58, 0x72, 0x9a, 0xe5, 0xf0, 0x1e, 0x67, 0x5e, 0xdb, 0xab, 0xe8, 0xb6, + 0x79, 0xb8, 0x72, 0xf6, 0xc9, 0xd1, 0xc2, 0x6c, 0xff, 0xdd, 0x07, 0xe2, 0xac, 0xd5, 0xcf, 0x82, + 0xaa, 0x00, 0xd8, 0xb5, 0x46, 0x9a, 0x5f, 0x17, 0x3e, 0x26, 0x87, 0x9a, 0xad, 0xe8, 0xe3, 0x45, + 0x57, 0xa1, 0xc0, 0xb7, 0x71, 0xec, 0x68, 0x2d, 0x2c, 0x59, 0xda, 0x63, 0x5c, 0x04, 0xea, 0x16, + 0xf2, 0x8c, 0x4e, 0x44, 0xd4, 0xb5, 0xc7, 0x78, 0xee, 0x4b, 0x50, 0x1c, 0x54, 0x7a, 0x7f, 0x47, + 0x48, 0xb3, 0x55, 0xd0, 0x57, 0x82, 0xd3, 0x18, 0x63, 0x98, 0xaa, 0x33, 0x95, 0x11, 0x7b, 0xc5, + 0x71, 0x41, 0xbf, 0x2a, 0x40, 0x6e, 0xa5, 0xdb, 0x7a, 0x78, 0xbf, 0x53, 0xef, 0xb6, 0xdb, 0xb2, + 0x79, 0x48, 0xbc, 0x17, 0x73, 0x1d, 0xa4, 0x98, 0x02, 0xf3, 0x5e, 0xd4, 0x37, 0x68, 0x8f, 0x31, + 0xf1, 0x0d, 0x3c, 0x7f, 0x9e, 0xd0, 0x59, 0x72, 0xfc, 0x05, 0xc8, 0xd1, 0x39, 0x05, 0x09, 0xeb, + 0xb6, 0xa9, 0x61, 0x36, 0x55, 0x16, 0x17, 0xb3, 0x94, 0x58, 0x61, 0x34, 0x74, 0x09, 0xf2, 0xd6, + 0xa1, 0x65, 0xe3, 0xb6, 0xc4, 0x76, 0x9f, 0x33, 0x20, 0x1c, 0x17, 0x73, 0x8c, 0x2a, 0x32, 0x62, + 0xe9, 0x47, 0x71, 0xc8, 0x3b, 0xad, 0x19, 0x65, 0x8c, 0xbd, 0x02, 0x93, 0x44, 0xf7, 0x4e, 0x2a, + 0xc3, 0xe5, 0x21, 0x46, 0xc4, 0xf3, 0xa2, 0x49, 0x9b, 0x38, 0x28, 0x8d, 0xb2, 0x46, 0xd1, 0xaf, + 0xe7, 0x7e, 0x21, 0x06, 0x09, 0x1a, 0xd6, 0xde, 0x80, 0x04, 0xf5, 0xcd, 0xc2, 0x38, 0xbe, 0x99, + 0x3e, 0xea, 0xc6, 0x5c, 0x31, 0x5f, 0xcc, 0x45, 0x02, 0x98, 0x5d, 0xf9, 0xa5, 0x1b, 0x37, 0x69, + 0x9f, 0xce, 0x8a, 0xfc, 0x0a, 0xad, 0xd0, 0x1c, 0x1b, 0xc3, 0xb4, 0xb1, 0xca, 0xc3, 0xc9, 0x30, + 0x6f, 0x18, 0x68, 0x78, 0x67, 0x1c, 0x70, 0xf8, 0xd0, 0x39, 0x88, 0x13, 0x67, 0x31, 0xc5, 0xd6, + 0xdf, 0x9f, 0x1c, 0x2d, 0xc4, 0x89, 0x9b, 0x20, 0x34, 0x74, 0x1d, 0x32, 0xc1, 0x9e, 0x29, 0x5c, + 0x4d, 0x33, 0xff, 0xe3, 0xeb, 0x55, 0xd0, 0x72, 0x2d, 0x98, 0x41, 0xa9, 0xbb, 0x89, 0x54, 0xa2, + 0x30, 0x59, 0xfa, 0xf9, 0x49, 0xc8, 0xd5, 0xda, 0x51, 0x7b, 0xee, 0xe5, 0x60, 0x0b, 0x87, 0xc5, + 0xe0, 0x81, 0x97, 0x86, 0x34, 0x70, 0x60, 0xd0, 0x8c, 0x1f, 0x6f, 0xd0, 0xac, 0x91, 0xb0, 0x8f, + 0xef, 0xb0, 0x8f, 0x0f, 0x08, 0xb7, 0x83, 0xef, 0x6f, 0x10, 0x67, 0x28, 0x12, 0x1e, 0x6f, 0xa7, + 0x00, 0xcd, 0xa1, 0x78, 0x83, 0x46, 0x97, 0xcc, 0xca, 0x92, 0xe3, 0x5b, 0xd9, 0x14, 0xd6, 0x55, + 0x3a, 0x76, 0x04, 0x1d, 0xd7, 0xd4, 0xc9, 0x1d, 0xd7, 0xdc, 0x63, 0x6e, 0xac, 0xaf, 0x42, 0x5c, + 0xd5, 0xcc, 0x21, 0x07, 0x3f, 0x84, 0x8f, 0x88, 0x84, 0x69, 0x84, 0xd5, 0x26, 0xfc, 0x56, 0xeb, + 0x87, 0xdd, 0x73, 0xf7, 0x01, 0x3c, 0x0d, 0xa1, 0x45, 0x48, 0x1a, 0x2d, 0xd5, 0xd9, 0x30, 0x91, + 0x5b, 0x49, 0x3f, 0x39, 0x5a, 0x98, 0xbc, 0xdf, 0x52, 0x6b, 0xab, 0xe2, 0xa4, 0xd1, 0x52, 0x6b, + 0x2a, 0x3d, 0xe4, 0x00, 0xef, 0x4b, 0x6e, 0x4a, 0x55, 0x56, 0x9c, 0xd2, 0xf1, 0x3e, 0x01, 0xf9, + 0x3d, 0xa9, 0x1e, 0xc4, 0x04, 0xbf, 0x2e, 0x40, 0xde, 0x69, 0x8d, 0x68, 0xdd, 0x4c, 0x4a, 0x6b, + 0xf3, 0x6e, 0x17, 0x3f, 0x5e, 0xb7, 0x73, 0xf8, 0xf8, 0x46, 0xcc, 0xaf, 0x08, 0x3c, 0x9d, 0xb6, + 0xae, 0xc8, 0x36, 0x19, 0xcd, 0x23, 0xec, 0x2a, 0xcf, 0x42, 0xc1, 0x94, 0x75, 0xd5, 0x68, 0x6b, + 0x8f, 0x31, 0x9b, 0xa7, 0xb3, 0xf8, 0x72, 0xdc, 0xb4, 0x4b, 0xa7, 0x13, 0x51, 0xce, 0x34, 0xe3, + 0x4f, 0x05, 0x9e, 0x7a, 0xeb, 0x16, 0x26, 0x4a, 0xa5, 0xad, 0x41, 0xd2, 0x64, 0x09, 0x7c, 0xac, + 0xeb, 0x3e, 0x1f, 0x22, 0x24, 0xec, 0xed, 0x2c, 0x3f, 0xce, 0xed, 0x3c, 0x54, 0xc4, 0xdc, 0xe7, + 0x60, 0x92, 0x92, 0x4f, 0xe0, 0x60, 0xb9, 0xe6, 0xff, 0x25, 0x06, 0x17, 0xe9, 0xeb, 0x1e, 0x60, + 0x53, 0xdb, 0x39, 0xdc, 0x34, 0x0d, 0x1b, 0x2b, 0x36, 0x56, 0xbd, 0x8d, 0x09, 0x91, 0x7a, 0xad, + 0x74, 0xc7, 0x79, 0xc1, 0xb1, 0x12, 0x99, 0x5c, 0x2e, 0xb4, 0x06, 0xd3, 0x6c, 0x48, 0x95, 0xe4, + 0x96, 0xb6, 0x87, 0x25, 0xd9, 0x3e, 0xce, 0xd8, 0x94, 0x63, 0xbc, 0xcb, 0x84, 0x75, 0xd9, 0x46, + 0x2a, 0xa4, 0xb9, 0x30, 0x4d, 0xe5, 0x87, 0xa8, 0xdc, 0xf9, 0x68, 0x33, 0x51, 0x29, 0x36, 0xb4, + 0xd7, 0x56, 0xc5, 0x14, 0x93, 0xec, 0xae, 0x24, 0x7c, 0x5f, 0x80, 0x4b, 0x23, 0x14, 0x1d, 0xa5, + 0x99, 0xcd, 0x41, 0x6a, 0x8f, 0xbc, 0x48, 0xe3, 0x9a, 0x4e, 0x89, 0xee, 0x35, 0x5a, 0x87, 0xdc, + 0x8e, 0xac, 0xb5, 0xb0, 0x2a, 0x71, 0x4b, 0x1c, 0x9c, 0xfd, 0x16, 0x9e, 0x94, 0x99, 0x65, 0xec, + 0xf4, 0xa6, 0x55, 0xfa, 0xbd, 0x18, 0xcc, 0x2c, 0xab, 0x6a, 0xbd, 0xce, 0x3d, 0x58, 0x74, 0xf6, + 0xe2, 0x60, 0xb3, 0x98, 0x87, 0xcd, 0xd0, 0xf3, 0x80, 0x54, 0xcd, 0x62, 0x67, 0x38, 0x58, 0xbb, + 0xb2, 0x6a, 0xec, 0x7b, 0xeb, 0xfc, 0x33, 0xce, 0x9d, 0xba, 0x73, 0x03, 0xbd, 0x03, 0x14, 0x18, + 0x48, 0x96, 0x2d, 0xbb, 0xcb, 0x11, 0xcf, 0x1d, 0x67, 0x3b, 0x11, 0x03, 0x0e, 0xee, 0xa5, 0x98, + 0x26, 0xe2, 0xe8, 0x4f, 0x12, 0xe9, 0x6a, 0x44, 0x03, 0xb6, 0x24, 0x5b, 0xce, 0xbe, 0x13, 0x76, + 0x88, 0x44, 0x9e, 0xd1, 0x97, 0x2d, 0xff, 0x76, 0x12, 0x96, 0x16, 0xef, 0xe9, 0x29, 0x4a, 0x40, + 0xf9, 0x07, 0x02, 0xe4, 0x45, 0xbc, 0x63, 0x62, 0x2b, 0x52, 0x60, 0x7d, 0x1b, 0xb2, 0x26, 0x93, + 0x2a, 0xed, 0x98, 0x46, 0xfb, 0x38, 0x5d, 0x2d, 0xc3, 0x19, 0x6f, 0x9b, 0x46, 0x3b, 0xb0, 0xe9, + 0xfe, 0x01, 0x4c, 0xbb, 0x25, 0x8d, 0x52, 0x05, 0xdf, 0xa4, 0x3b, 0x69, 0x99, 0xe0, 0xa8, 0x57, + 0xda, 0x3f, 0x0e, 0x3d, 0xd0, 0x65, 0x10, 0x7f, 0x71, 0xa3, 0x54, 0xc6, 0x4f, 0x05, 0xc8, 0xd7, + 0xbb, 0xdb, 0xec, 0xd0, 0xa0, 0xe8, 0xf4, 0x50, 0x81, 0x74, 0x0b, 0xef, 0xd8, 0xd2, 0x89, 0x52, + 0xb9, 0x53, 0x84, 0x95, 0xa6, 0xb3, 0xdf, 0x01, 0x30, 0xe9, 0x66, 0x2d, 0x2a, 0x27, 0x7e, 0x4c, + 0x39, 0x69, 0xca, 0xeb, 0xc5, 0x3a, 0xa5, 0x3f, 0x89, 0xc1, 0xb4, 0x5b, 0xd9, 0x28, 0x9d, 0xe8, + 0xcf, 0x04, 0x9c, 0x47, 0xfc, 0x04, 0xce, 0x63, 0x86, 0x67, 0x18, 0x84, 0x3b, 0x90, 0x25, 0x98, + 0xa5, 0x01, 0x89, 0x24, 0x77, 0x3a, 0x2d, 0x0d, 0xab, 0x12, 0x5b, 0xba, 0x4e, 0xd0, 0xa5, 0xeb, + 0x19, 0x7a, 0x6b, 0x99, 0xdd, 0xa9, 0xd1, 0x65, 0xec, 0xdb, 0x90, 0xdd, 0x31, 0x31, 0x7e, 0x8c, + 0x25, 0x8a, 0xb1, 0x8e, 0x93, 0x48, 0x91, 0x61, 0x8c, 0x75, 0xc2, 0xc7, 0x0d, 0xf0, 0x5d, 0x98, + 0xa1, 0x0a, 0x8e, 0x7a, 0x0b, 0x29, 0x6f, 0x95, 0x7f, 0x15, 0x00, 0xf9, 0xe5, 0x7f, 0x7c, 0x0d, + 0x13, 0x8b, 0xbc, 0x61, 0x9e, 0x03, 0xc4, 0x72, 0xea, 0x2c, 0xa9, 0x83, 0x4d, 0xc9, 0xc2, 0x8a, + 0xc1, 0x8f, 0xc2, 0x11, 0xc4, 0x02, 0xbf, 0xb3, 0x89, 0xcd, 0x3a, 0xa5, 0x97, 0xde, 0x9b, 0x83, + 0x2c, 0xd7, 0xc9, 0x96, 0xae, 0x19, 0x3a, 0xba, 0x01, 0xf1, 0x26, 0x9f, 0xd8, 0xce, 0x84, 0xce, + 0x63, 0x79, 0xc7, 0x71, 0x55, 0x27, 0x44, 0xf2, 0x2c, 0x61, 0xe9, 0x74, 0xed, 0x90, 0xa0, 0xc8, + 0x4b, 0x05, 0xf6, 0xb3, 0x74, 0xba, 0x36, 0xaa, 0xc3, 0xb4, 0xe2, 0x1d, 0x47, 0x24, 0x11, 0xf6, + 0xf8, 0x40, 0xf8, 0x13, 0x7a, 0xa8, 0x53, 0x75, 0x42, 0xcc, 0x2b, 0x81, 0x1b, 0xa8, 0xec, 0x3f, + 0xff, 0x86, 0x0d, 0x97, 0x17, 0x42, 0xb7, 0x9b, 0x06, 0xcf, 0xde, 0xa9, 0x4e, 0xf8, 0x8e, 0xc9, + 0x41, 0xaf, 0x42, 0x52, 0xa5, 0xe7, 0xaa, 0x70, 0x0b, 0x0d, 0x33, 0xa2, 0xc0, 0x51, 0x36, 0xd5, + 0x09, 0x91, 0x73, 0xa0, 0xbb, 0x90, 0x65, 0xbf, 0x58, 0x70, 0xc2, 0x31, 0xe1, 0xa5, 0xc1, 0x12, + 0x7c, 0xbe, 0xbe, 0x3a, 0x21, 0x66, 0x54, 0x8f, 0x8a, 0x5e, 0x84, 0x84, 0xa5, 0xc8, 0x0e, 0x2a, + 0x9c, 0x1f, 0x70, 0x4e, 0x83, 0xc7, 0x4c, 0x9f, 0x46, 0xaf, 0xb1, 0x83, 0xf5, 0xec, 0x03, 0x67, + 0x1e, 0x2c, 0xac, 0xf8, 0x81, 0x9d, 0xc4, 0xa4, 0xf8, 0x98, 0x12, 0xd0, 0x1d, 0xc8, 0xc8, 0x24, + 0xca, 0x93, 0xe8, 0xae, 0x3d, 0x3a, 0xf1, 0x15, 0xbe, 0x2e, 0xdb, 0xb7, 0xe3, 0xb2, 0x4a, 0xb7, + 0x2b, 0x3b, 0x44, 0x4f, 0x50, 0x1b, 0x9b, 0x4d, 0x5c, 0xcc, 0x0c, 0x17, 0xe4, 0x4f, 0x1a, 0x72, + 0x05, 0x51, 0x22, 0x89, 0xf6, 0x76, 0x9d, 0x1d, 0x19, 0xb4, 0x52, 0xd9, 0x81, 0x6b, 0x80, 0x21, + 0x3b, 0x4a, 0xaa, 0x13, 0x62, 0x76, 0xd7, 0x47, 0x46, 0x4b, 0x10, 0x6b, 0x2a, 0xc5, 0x1c, 0x95, + 0xf1, 0xf4, 0xb0, 0xfd, 0x12, 0xd5, 0x09, 0x31, 0xd6, 0x54, 0x08, 0xbe, 0x67, 0x99, 0xee, 0x07, + 0x7a, 0x31, 0x3f, 0xb0, 0xc7, 0x07, 0xb7, 0x0d, 0x54, 0x27, 0x44, 0x9a, 0x5c, 0x4f, 0xde, 0xb7, + 0x09, 0x79, 0x93, 0x65, 0x5d, 0x39, 0xb9, 0x94, 0x85, 0x81, 0xeb, 0xa2, 0x61, 0xe9, 0x94, 0x55, + 0x1a, 0xf5, 0xfb, 0xe8, 0xe8, 0x8b, 0x70, 0x2a, 0x28, 0x91, 0x5b, 0xda, 0x4c, 0x9f, 0x1b, 0x09, + 0x97, 0x1b, 0x34, 0x38, 0x64, 0xf6, 0xdd, 0x44, 0x2f, 0xc3, 0x24, 0x6b, 0x35, 0x44, 0x45, 0x86, + 0x2d, 0xf8, 0xf7, 0x34, 0x18, 0x7b, 0x9e, 0x18, 0xbf, 0xcd, 0xd3, 0x8d, 0xa4, 0x96, 0xd1, 0x2c, + 0xce, 0x0e, 0x34, 0xfe, 0xfe, 0xf4, 0x29, 0x62, 0xfc, 0xb6, 0x47, 0x25, 0xed, 0x6e, 0xb2, 0x3b, + 0x3c, 0x3b, 0xe5, 0xd4, 0xc0, 0x76, 0x0f, 0xc9, 0x42, 0xaa, 0xd2, 0x54, 0x71, 0x8f, 0x4c, 0x8a, + 0x66, 0xb2, 0x73, 0x4a, 0x24, 0xda, 0xa7, 0x4e, 0x0f, 0x2c, 0x5a, 0xff, 0xd9, 0x2b, 0x55, 0x1a, + 0x06, 0xb9, 0x54, 0xf4, 0x00, 0x0a, 0xfc, 0x04, 0x01, 0x6f, 0xd2, 0xfd, 0x0c, 0x95, 0xf7, 0x6c, + 0xa8, 0xeb, 0x0a, 0x4b, 0xe7, 0xa8, 0x4e, 0x88, 0xd3, 0x4a, 0xf0, 0x0e, 0x7a, 0x1b, 0x66, 0xa8, + 0x3c, 0x49, 0xf1, 0x8e, 0x7e, 0x28, 0x16, 0xfb, 0xf2, 0x22, 0x07, 0x9f, 0x12, 0xe1, 0x48, 0x2e, + 0x28, 0x3d, 0xb7, 0x88, 0x19, 0x6b, 0xba, 0x66, 0x53, 0x2f, 0x3b, 0x37, 0xd0, 0x8c, 0x83, 0xc7, + 0xb7, 0x11, 0x33, 0xd6, 0x18, 0x85, 0x98, 0xb1, 0xcd, 0x53, 0x97, 0x78, 0x73, 0x3c, 0x3d, 0xd0, + 0x8c, 0xc3, 0x72, 0x9c, 0x88, 0x19, 0xdb, 0x7e, 0x3a, 0x31, 0x63, 0xe6, 0x20, 0x7a, 0xe4, 0x3e, + 0x33, 0xd0, 0x8c, 0x07, 0xee, 0x9b, 0x25, 0x66, 0x2c, 0xf7, 0xdd, 0x44, 0xab, 0x00, 0x2c, 0x3c, + 0xd1, 0xf4, 0x1d, 0xa3, 0x38, 0x3f, 0x70, 0x30, 0xe8, 0x4d, 0x5e, 0x22, 0x83, 0x41, 0xcb, 0xa1, + 0x11, 0x47, 0x46, 0xb1, 0x91, 0x44, 0x17, 0x05, 0x8b, 0x0b, 0x03, 0x1d, 0x59, 0xdf, 0xda, 0x20, + 0x71, 0x64, 0xfb, 0x2e, 0x91, 0x8c, 0x2a, 0x6c, 0xb6, 0xb6, 0xb8, 0x38, 0xd8, 0x2d, 0xfb, 0xd7, + 0x46, 0xa8, 0x5b, 0xa6, 0x04, 0xb4, 0x0c, 0x69, 0x32, 0x6c, 0x1f, 0x52, 0x37, 0x74, 0x7e, 0x60, + 0xc0, 0xd9, 0xb3, 0x17, 0xa2, 0x3a, 0x21, 0xa6, 0x1e, 0x71, 0x12, 0x79, 0x3d, 0x9b, 0xb5, 0x2a, + 0x96, 0x06, 0xbe, 0x3e, 0x30, 0xe7, 0x49, 0x5e, 0xcf, 0x38, 0x90, 0x02, 0xa7, 0x59, 0x5b, 0xf1, + 0x6d, 0xab, 0x26, 0xdf, 0x63, 0x59, 0xbc, 0x40, 0x45, 0x0d, 0x9c, 0x03, 0x0a, 0xdd, 0x4d, 0x5b, + 0x9d, 0x10, 0x67, 0xe5, 0xfe, 0xbb, 0xa4, 0xc3, 0xf3, 0xa1, 0x87, 0xcd, 0x1c, 0x15, 0x2f, 0x0e, + 0xec, 0xf0, 0x21, 0x73, 0x6d, 0xa4, 0xc3, 0xcb, 0x3e, 0x32, 0x1b, 0x80, 0x54, 0xc9, 0xb2, 0xd8, + 0x12, 0xf2, 0xa5, 0x21, 0x03, 0x50, 0x0f, 0xf6, 0x67, 0x03, 0x90, 0x5a, 0x67, 0x9c, 0x44, 0x90, + 0xd2, 0xc2, 0xb2, 0xc9, 0xdd, 0xec, 0xe5, 0x81, 0x82, 0xfa, 0x8e, 0x44, 0x23, 0x82, 0x14, 0x97, + 0x48, 0x02, 0x1e, 0xd3, 0x39, 0x7a, 0x84, 0x87, 0x7e, 0x57, 0x06, 0x06, 0x3c, 0xa1, 0x27, 0xa4, + 0x90, 0x80, 0xc7, 0x0c, 0xdc, 0x40, 0x9f, 0x81, 0x29, 0x8e, 0xd0, 0x8a, 0x57, 0x87, 0x04, 0xa4, + 0x7e, 0x68, 0x4d, 0xfa, 0x35, 0xe7, 0x61, 0x5e, 0x96, 0x21, 0x43, 0x56, 0xbd, 0x67, 0x87, 0x78, + 0xd9, 0x3e, 0x70, 0xca, 0xbc, 0xac, 0x47, 0x26, 0x5e, 0x96, 0xd9, 0x29, 0x1f, 0xeb, 0xae, 0x0d, + 0xf4, 0xb2, 0xfd, 0x1b, 0x31, 0x88, 0x97, 0x7d, 0xe4, 0x51, 0x49, 0xcd, 0x2c, 0x86, 0x8a, 0x8a, + 0x9f, 0x1a, 0x58, 0xb3, 0x20, 0x48, 0x24, 0x35, 0xe3, 0x3c, 0xa4, 0xd9, 0x58, 0xce, 0x2c, 0xd3, + 0xf4, 0x73, 0x83, 0x77, 0x88, 0xf7, 0x82, 0x88, 0xaa, 0x73, 0x60, 0x2e, 0xd3, 0xb0, 0xeb, 0xa8, + 0x4c, 0xbe, 0x1f, 0x96, 0x6b, 0xea, 0xf9, 0xe1, 0x8e, 0x2a, 0x6c, 0xab, 0xaf, 0xeb, 0xa8, 0x02, + 0x37, 0x69, 0x51, 0xd9, 0xb6, 0x26, 0xda, 0xbf, 0x97, 0x86, 0x6c, 0x66, 0xef, 0xd9, 0x69, 0x46, + 0x8b, 0xea, 0x12, 0xbd, 0x2e, 0xd4, 0x65, 0xa7, 0x2e, 0x14, 0xaf, 0x0f, 0xef, 0x42, 0xc1, 0xd3, + 0x1f, 0xdc, 0x2e, 0xc4, 0xc9, 0xee, 0x98, 0xe9, 0x44, 0x18, 0x2f, 0x0c, 0x1f, 0x33, 0x7b, 0x43, + 0x0b, 0x36, 0x66, 0xf2, 0x98, 0xe2, 0x17, 0x05, 0x58, 0x64, 0x65, 0xa3, 0xf3, 0x78, 0x87, 0x92, + 0x3b, 0x27, 0xea, 0xcb, 0xac, 0xbf, 0x41, 0x5f, 0xf0, 0xf2, 0xa0, 0xe2, 0x8e, 0x98, 0xe3, 0xad, + 0x4e, 0x88, 0xcf, 0xc8, 0xc3, 0x9e, 0x5b, 0x99, 0xe2, 0x6b, 0xb0, 0xee, 0x06, 0xc3, 0xe9, 0x42, + 0xe1, 0x6e, 0x22, 0x75, 0xb6, 0x50, 0xbc, 0x9b, 0x48, 0x9d, 0x2b, 0xcc, 0xdd, 0x4d, 0xa4, 0x9e, + 0x2a, 0x3c, 0x5d, 0xfa, 0xb7, 0x73, 0x90, 0x73, 0x30, 0x1c, 0x43, 0x44, 0x37, 0xfd, 0x88, 0x68, + 0x7e, 0x10, 0x22, 0xe2, 0xa8, 0x8f, 0x43, 0xa2, 0x9b, 0x7e, 0x48, 0x34, 0x3f, 0x08, 0x12, 0x79, + 0x3c, 0x04, 0x13, 0x35, 0x06, 0x61, 0xa2, 0x67, 0xc7, 0xc0, 0x44, 0xae, 0xa8, 0x5e, 0x50, 0xb4, + 0xda, 0x0f, 0x8a, 0x2e, 0x0e, 0x07, 0x45, 0xae, 0x28, 0x1f, 0x2a, 0x7a, 0xad, 0x07, 0x15, 0x9d, + 0x1f, 0x82, 0x8a, 0x5c, 0x7e, 0x07, 0x16, 0xad, 0x85, 0xc2, 0xa2, 0xcb, 0xa3, 0x60, 0x91, 0x2b, + 0x27, 0x80, 0x8b, 0x5e, 0x0a, 0xe0, 0xa2, 0x85, 0x81, 0xb8, 0xc8, 0xe5, 0x66, 0xc0, 0xe8, 0xf5, + 0x5e, 0x60, 0x74, 0x7e, 0x08, 0x30, 0xf2, 0x6a, 0xc0, 0x91, 0x51, 0x35, 0x0c, 0x19, 0x5d, 0x1a, + 0x81, 0x8c, 0x5c, 0x29, 0x7e, 0x68, 0x54, 0x0d, 0x83, 0x46, 0x97, 0x46, 0x40, 0xa3, 0x1e, 0x49, + 0x0c, 0x1b, 0x6d, 0x84, 0x63, 0xa3, 0x2b, 0x23, 0xb1, 0x91, 0x2b, 0x2d, 0x08, 0x8e, 0xae, 0xfb, + 0xc0, 0xd1, 0x33, 0x03, 0xc0, 0x91, 0xcb, 0x4a, 0xd0, 0xd1, 0x67, 0xfb, 0xd0, 0x51, 0x69, 0x18, + 0x3a, 0x72, 0x79, 0x5d, 0x78, 0xf4, 0xe6, 0x00, 0x78, 0x74, 0x75, 0x34, 0x3c, 0x72, 0x85, 0xf5, + 0xe0, 0x23, 0x79, 0x28, 0x3e, 0x7a, 0x7e, 0x4c, 0x7c, 0xe4, 0x4a, 0x0f, 0x03, 0x48, 0xaf, 0x04, + 0x01, 0xd2, 0xe2, 0x60, 0x80, 0xe4, 0x8a, 0xe1, 0x08, 0x69, 0x2d, 0x14, 0x21, 0x5d, 0x1e, 0x85, + 0x90, 0xbc, 0x7e, 0xe0, 0x87, 0x48, 0x1b, 0xe1, 0x10, 0xe9, 0xca, 0x48, 0x88, 0xe4, 0x35, 0x7f, + 0x00, 0x23, 0xad, 0x85, 0x62, 0xa4, 0xcb, 0xa3, 0x30, 0x92, 0x57, 0x38, 0x3f, 0x48, 0x7a, 0x6b, + 0x20, 0x48, 0xba, 0x36, 0x0e, 0x48, 0x72, 0x85, 0xf6, 0xa1, 0xa4, 0x77, 0x06, 0xa3, 0xa4, 0x4f, + 0x1d, 0xe3, 0x2c, 0xbd, 0x50, 0x98, 0xf4, 0xd9, 0x3e, 0x98, 0x54, 0x1a, 0x06, 0x93, 0x3c, 0x7b, + 0x76, 0x70, 0x92, 0x3c, 0x14, 0xd5, 0x3c, 0x3f, 0x26, 0xaa, 0xf1, 0x8c, 0x2f, 0x04, 0xd6, 0x54, + 0x42, 0x60, 0xcd, 0xc5, 0xe1, 0xb0, 0xc6, 0x73, 0xe7, 0x1e, 0xae, 0xa9, 0x86, 0xe1, 0x9a, 0x4b, + 0x23, 0x70, 0x8d, 0xe7, 0x85, 0x7c, 0xc0, 0xe6, 0xb5, 0x1e, 0x60, 0x73, 0x7e, 0x64, 0xbe, 0x8e, + 0x0f, 0xd9, 0xac, 0xf4, 0x23, 0x9b, 0x0b, 0x43, 0x91, 0x8d, 0x2b, 0xc1, 0x83, 0x36, 0xaf, 0xf5, + 0x40, 0x9b, 0xf3, 0x43, 0xa0, 0x8d, 0x57, 0x00, 0x8e, 0x6d, 0xd4, 0xe1, 0xd8, 0x66, 0x69, 0x5c, + 0x6c, 0xe3, 0x0a, 0x0e, 0x05, 0x37, 0x1b, 0xe1, 0xe0, 0xe6, 0xca, 0x98, 0xab, 0xe7, 0x7d, 0xe8, + 0xa6, 0x1a, 0x86, 0x6e, 0x2e, 0x8d, 0x40, 0x37, 0xfe, 0x31, 0xc4, 0x85, 0x37, 0xd5, 0x30, 0x78, + 0x73, 0x69, 0x04, 0xbc, 0xf1, 0x24, 0xf9, 0xf0, 0x4d, 0x63, 0x10, 0xbe, 0x79, 0x76, 0x0c, 0x7c, + 0xe3, 0x05, 0x2f, 0x3d, 0x00, 0xe7, 0x8d, 0x5e, 0x80, 0x53, 0x1a, 0x06, 0x70, 0xbc, 0x1e, 0xe9, + 0x20, 0x9c, 0x8d, 0x70, 0x84, 0x73, 0x65, 0x24, 0xc2, 0xf1, 0x3b, 0x49, 0x1f, 0xc4, 0x59, 0x0b, + 0x85, 0x38, 0x97, 0x47, 0x41, 0x1c, 0xcf, 0x49, 0xfa, 0x31, 0xce, 0x1b, 0xbd, 0x18, 0xa7, 0x34, + 0x0c, 0xe3, 0x78, 0x95, 0x73, 0x40, 0x4e, 0x35, 0x0c, 0xe4, 0x5c, 0x1a, 0x01, 0x72, 0xbc, 0xc6, + 0xf3, 0xa1, 0x1c, 0x79, 0x28, 0xca, 0x79, 0x7e, 0x4c, 0x94, 0xd3, 0xe3, 0xb8, 0x82, 0x30, 0xa7, + 0x1a, 0x06, 0x73, 0x2e, 0x8d, 0x80, 0x39, 0xbe, 0xc2, 0x7a, 0x38, 0x67, 0x23, 0x1c, 0xe7, 0x5c, + 0x19, 0x89, 0x73, 0x7a, 0x7a, 0x93, 0x03, 0x74, 0xd6, 0x42, 0x81, 0xce, 0xe5, 0x51, 0x40, 0xa7, + 0x67, 0xe0, 0xe3, 0xc1, 0xc1, 0x2f, 0x8d, 0x8f, 0x74, 0x5e, 0x39, 0x3e, 0xd2, 0x71, 0xdf, 0x19, + 0x09, 0xd4, 0xb9, 0x9b, 0x48, 0x3d, 0x5d, 0x78, 0xa6, 0xf4, 0xc3, 0x49, 0x48, 0x56, 0xdd, 0x1c, + 0x17, 0xaf, 0x94, 0xc2, 0x49, 0x0e, 0xeb, 0x41, 0xab, 0xa4, 0xc7, 0x52, 0xbf, 0x37, 0xfa, 0x5c, + 0xb6, 0xfe, 0x33, 0xc3, 0x38, 0xeb, 0x09, 0xf6, 0xbc, 0xa2, 0x97, 0x20, 0xd7, 0xb5, 0xb0, 0x29, + 0x75, 0x4c, 0xcd, 0x30, 0x35, 0x9b, 0xed, 0x4e, 0x10, 0x56, 0x0a, 0x1f, 0x1e, 0x2d, 0x64, 0xb7, + 0x2c, 0x6c, 0x6e, 0x72, 0xba, 0x98, 0xed, 0xfa, 0xae, 0x9c, 0xaf, 0xfb, 0x4c, 0x8e, 0xff, 0x75, + 0x9f, 0x37, 0xa1, 0x60, 0x62, 0x59, 0x0d, 0x44, 0x20, 0xec, 0x14, 0x9c, 0x70, 0x9b, 0xa1, 0x5b, + 0x73, 0x9c, 0x27, 0xe9, 0x69, 0x38, 0xd3, 0x66, 0x90, 0x88, 0x6e, 0xc0, 0xe9, 0xb6, 0x7c, 0x40, + 0xb3, 0x19, 0x25, 0x27, 0xa8, 0xa3, 0x19, 0x8a, 0xec, 0x6b, 0x3a, 0xa8, 0x2d, 0x1f, 0xd0, 0x4f, + 0x05, 0xb1, 0x5b, 0xf4, 0x13, 0x01, 0x97, 0x20, 0xaf, 0x6a, 0x96, 0xad, 0xe9, 0x8a, 0x73, 0x10, + 0x2a, 0x3b, 0x57, 0x34, 0xe7, 0x50, 0xd9, 0x59, 0xa7, 0xd7, 0x60, 0x86, 0x67, 0x93, 0x7b, 0x1f, + 0x0f, 0xa2, 0xf0, 0x25, 0x45, 0x4a, 0x41, 0x6e, 0x78, 0x5f, 0x8d, 0x2a, 0xc3, 0x74, 0x53, 0xb6, + 0xf1, 0xbe, 0x7c, 0x28, 0x39, 0xbb, 0x83, 0x32, 0xf4, 0x14, 0xc1, 0xa7, 0x9e, 0x1c, 0x2d, 0xe4, + 0xee, 0xb0, 0x5b, 0x7d, 0x9b, 0x84, 0x72, 0x4d, 0xdf, 0x0d, 0x15, 0x5d, 0x81, 0x69, 0xd9, 0x3a, + 0xd4, 0x15, 0xaa, 0x1e, 0xac, 0x5b, 0x5d, 0x8b, 0x42, 0x8a, 0x94, 0x98, 0xa7, 0xe4, 0xb2, 0x43, + 0x45, 0xaf, 0xc0, 0x39, 0x15, 0x93, 0x18, 0x89, 0x05, 0x22, 0xb6, 0x61, 0x48, 0x46, 0x4b, 0x95, + 0xe8, 0x69, 0x17, 0x14, 0x4e, 0xa4, 0xc4, 0xd3, 0xf4, 0x01, 0x1a, 0x82, 0x34, 0x0c, 0xe3, 0x7e, + 0x4b, 0xad, 0x90, 0x9b, 0xe8, 0x3c, 0x64, 0x79, 0x92, 0x36, 0xfb, 0xe4, 0xd0, 0x34, 0x55, 0x12, + 0x3f, 0x7f, 0x9f, 0x7e, 0x75, 0x88, 0x1d, 0x7e, 0x7a, 0x37, 0x91, 0xca, 0x16, 0x72, 0xa5, 0xdf, + 0x10, 0x20, 0x1b, 0xd8, 0xb5, 0xf1, 0x5a, 0xcf, 0x2a, 0xee, 0xb9, 0x70, 0xc4, 0x34, 0x28, 0x0d, + 0x2c, 0xc5, 0x5b, 0xc8, 0x49, 0x82, 0x5b, 0x18, 0x1c, 0x71, 0xd3, 0xf9, 0x03, 0x27, 0x83, 0xc0, + 0x61, 0x7b, 0x35, 0xf1, 0x5b, 0xef, 0x2f, 0x4c, 0x94, 0x7e, 0x12, 0x87, 0x5c, 0x70, 0x77, 0x46, + 0xad, 0xa7, 0x5c, 0x61, 0x1e, 0x2d, 0xc0, 0xb1, 0x34, 0xe4, 0x44, 0xb8, 0xb4, 0x77, 0x76, 0x39, + 0x2b, 0xe6, 0xe2, 0x90, 0xb5, 0x6a, 0x7f, 0x39, 0x3d, 0xc6, 0xb9, 0x6f, 0xc7, 0x5c, 0xcf, 0xb0, + 0x04, 0x93, 0xac, 0x65, 0x84, 0x81, 0xbb, 0x65, 0x69, 0xe3, 0x88, 0xec, 0x31, 0xe2, 0x49, 0x1a, + 0x27, 0x3a, 0xf6, 0xcb, 0x3b, 0x30, 0xe1, 0xf8, 0xdf, 0xdd, 0xe2, 0x87, 0xbf, 0x4d, 0x1e, 0xef, + 0xf0, 0x37, 0xb6, 0x16, 0xdd, 0x6a, 0x31, 0x2f, 0xcd, 0xfa, 0x52, 0xb2, 0x6f, 0x4b, 0x2a, 0x15, + 0xc1, 0x3f, 0xcb, 0xb6, 0x24, 0xf2, 0xcf, 0xb2, 0xf9, 0xf2, 0x12, 0xf3, 0xae, 0x08, 0xda, 0xf1, + 0x58, 0xf6, 0x2a, 0x6f, 0xea, 0xaf, 0x0b, 0x50, 0xa0, 0xdd, 0xec, 0x36, 0xc6, 0x6a, 0x24, 0x56, + 0xe8, 0xa4, 0x4c, 0xc6, 0xc6, 0xcf, 0x49, 0x0f, 0x9c, 0x25, 0x1f, 0x0f, 0x9e, 0x25, 0x5f, 0x7a, + 0x5f, 0x80, 0xbc, 0x5b, 0x42, 0xf6, 0x09, 0xa2, 0x21, 0x67, 0xba, 0x9d, 0xec, 0xab, 0x3c, 0xce, + 0x76, 0xf3, 0xb1, 0xbe, 0x85, 0xe4, 0xdf, 0x6e, 0xce, 0xbe, 0x20, 0xf3, 0xdb, 0x02, 0xcc, 0xba, + 0x45, 0x2c, 0x7b, 0x5b, 0x89, 0x4f, 0x90, 0x9e, 0x2f, 0xd2, 0xef, 0xb3, 0x11, 0x5c, 0x4f, 0xf7, + 0xf9, 0x8f, 0x65, 0x9e, 0x88, 0xe7, 0x5c, 0x00, 0x9f, 0x2f, 0x50, 0x1b, 0x75, 0xfa, 0xe5, 0x36, + 0xf6, 0xdb, 0x2a, 0xdd, 0xf6, 0x29, 0x90, 0xb9, 0xa9, 0x17, 0xc7, 0xec, 0x32, 0x8e, 0x96, 0xe8, + 0xc3, 0xa5, 0xef, 0xfa, 0x5b, 0xa2, 0xb2, 0x47, 0xe2, 0xc4, 0x5b, 0x10, 0xdf, 0x93, 0x5b, 0xc3, + 0x52, 0x4e, 0x02, 0x2d, 0x27, 0x92, 0xa7, 0xd1, 0xed, 0xc0, 0x0e, 0xec, 0xd8, 0xe0, 0x98, 0xa6, + 0x5f, 0xa5, 0x81, 0x9d, 0xda, 0x2f, 0x3b, 0xb5, 0x88, 0x8f, 0x7e, 0xbd, 0xdf, 0x03, 0xbc, 0x9a, + 0xf8, 0xe0, 0xfd, 0x05, 0xe1, 0x5a, 0x1d, 0x66, 0x43, 0x46, 0x40, 0x94, 0x07, 0xf0, 0x9d, 0x30, + 0xcf, 0xbf, 0x00, 0xb7, 0xbc, 0x2a, 0x6d, 0x6d, 0x94, 0xef, 0xaf, 0xaf, 0xd7, 0x1a, 0x8d, 0xca, + 0x6a, 0x41, 0x40, 0x05, 0xc8, 0x06, 0xce, 0xa7, 0x8f, 0xb1, 0x6f, 0xc2, 0x5d, 0xfb, 0x7f, 0x00, + 0xde, 0x37, 0x2a, 0x88, 0xac, 0xb5, 0xca, 0xdb, 0xd2, 0x83, 0xe5, 0x7b, 0x5b, 0x95, 0x7a, 0x61, + 0x02, 0x21, 0xc8, 0xaf, 0x2c, 0x37, 0xca, 0x55, 0x49, 0xac, 0xd4, 0x37, 0xef, 0x6f, 0xd4, 0x2b, + 0xce, 0xb7, 0xe4, 0xae, 0xad, 0x42, 0xd6, 0xbf, 0x57, 0x1d, 0xcd, 0xc2, 0x74, 0xb9, 0x5a, 0x29, + 0xaf, 0x49, 0x0f, 0x6a, 0xcb, 0xd2, 0x9b, 0x5b, 0x95, 0xad, 0x4a, 0x61, 0x82, 0x16, 0x8d, 0x12, + 0x6f, 0x6f, 0xdd, 0xbb, 0x57, 0x10, 0xd0, 0x34, 0x64, 0xd8, 0x35, 0x3d, 0xcb, 0xbe, 0x10, 0xbb, + 0xb6, 0x0e, 0x19, 0xdf, 0xd1, 0x76, 0xe4, 0x75, 0x9b, 0x5b, 0xf5, 0xaa, 0xd4, 0xa8, 0xad, 0x57, + 0xea, 0x8d, 0xe5, 0xf5, 0x4d, 0x26, 0x83, 0xd2, 0x96, 0x57, 0xee, 0x8b, 0x8d, 0x82, 0xe0, 0x5e, + 0x37, 0xee, 0x6f, 0x95, 0xab, 0x4e, 0x35, 0x4a, 0x89, 0x54, 0xbc, 0x10, 0xbf, 0xf6, 0x08, 0xce, + 0x0e, 0xd8, 0xb0, 0x8d, 0x32, 0x30, 0xb5, 0xa5, 0xd3, 0xc3, 0xbc, 0x0a, 0x13, 0x28, 0xe7, 0xdb, + 0xb3, 0x5d, 0x10, 0x50, 0x8a, 0xed, 0xc6, 0x2d, 0xc4, 0x50, 0x12, 0x62, 0xf5, 0x5b, 0x85, 0x38, + 0x29, 0xa8, 0x6f, 0xcb, 0x73, 0x21, 0x81, 0xd2, 0x7c, 0x3f, 0x68, 0x61, 0x12, 0x65, 0xbd, 0x0d, + 0x99, 0x85, 0xe4, 0xb5, 0xf3, 0xe0, 0xdb, 0x7c, 0x86, 0x00, 0x92, 0xf7, 0x64, 0x1b, 0x5b, 0x76, + 0x61, 0x02, 0x4d, 0x41, 0x7c, 0xb9, 0xd5, 0x2a, 0x08, 0x37, 0xff, 0x58, 0x80, 0x94, 0x73, 0x2c, + 0x3b, 0xba, 0x07, 0x93, 0x0c, 0xec, 0x2f, 0x0c, 0x1e, 0x91, 0xa8, 0x53, 0x9b, 0x5b, 0x1c, 0x35, + 0x64, 0x95, 0x26, 0xd0, 0x5b, 0xfc, 0x4b, 0x95, 0xc4, 0x62, 0xd0, 0x85, 0x61, 0xf6, 0xe4, 0x48, + 0x1d, 0x6e, 0x74, 0xa4, 0x8f, 0x94, 0x26, 0x5e, 0x10, 0x56, 0x9e, 0xfd, 0xe0, 0x47, 0xf3, 0x13, + 0x1f, 0x3c, 0x99, 0x17, 0xbe, 0xf7, 0x64, 0x5e, 0xf8, 0xc1, 0x93, 0x79, 0xe1, 0x9f, 0x9f, 0xcc, + 0x0b, 0xbf, 0xf6, 0xe3, 0xf9, 0x89, 0xef, 0xfd, 0x78, 0x7e, 0xe2, 0x07, 0x3f, 0x9e, 0x9f, 0x78, + 0x67, 0x8a, 0x73, 0x6f, 0x27, 0xe9, 0x47, 0x33, 0x6f, 0xfd, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x26, 0x39, 0xde, 0x04, 0x39, 0x74, 0x00, 0x00, } diff --git a/pkg/roachpb/api.proto b/pkg/roachpb/api.proto index cc6757c7b83a..7a2c06b492e5 100644 --- a/pkg/roachpb/api.proto +++ b/pkg/roachpb/api.proto @@ -104,6 +104,11 @@ message ResponseHeader { // The number of keys operated on. int64 num_keys = 5; + // The number of bytes returned. Only populated for requests that support it + // (at the time of writing, Scan and ReverseScan). The number returned here + // corresponds to the (Header).TargetBytes field and loosely measures the + // bytes in the timestamps, keys, and values of the returned rows. + int64 num_bytes = 8; // Range or list of ranges used to execute the request. Multiple // ranges may be returned for Scan, ReverseScan or DeleteRange. repeated RangeInfo range_infos = 6 [(gogoproto.nullable) = false]; @@ -1784,6 +1789,12 @@ message Header { // If a batch limit is used with ReverseScan requests, the spans for the // requests must be non-overlapping and in decreasing order. int64 max_span_request_keys = 8; + // If set to a non-zero value, sets a target (in bytes) for how large the + // response may grow. This is only supported for (forward and reverse) scans + // and limits the number of rows scanned (and returned). The target will be + // overshot; in particular, at least one row will always be returned (assuming + // one exists). A suitable resume span will be returned. + int64 target_bytes = 15; // If set, all of the spans in the batch are distinct. Note that the // calculation of distinct spans does not include intents in an // EndTxnRequest. Currently set conservatively: a request might be From 8149d129554e467028dafb197f91b9326a8d37f9 Mon Sep 17 00:00:00 2001 From: Tobias Schottdorf Date: Tue, 11 Feb 2020 10:13:23 +0100 Subject: [PATCH 3/3] batcheval: plumb TargetBytes/NumBytes into {Reverse,}Scan This hooks these new fields up to their already present counterparts in the MVCC layer. This means that the KV server will now handle these correctly. The missing pieces are two places where we need to keep track of the NumBytes seen while handling a batch, one in `(*Replica).evaluateBatch` and one in `(*DistSender).divideAndSendBatchToRanges`. Release note: None --- pkg/storage/batcheval/cmd_reverse_scan.go | 2 + pkg/storage/batcheval/cmd_scan.go | 2 + pkg/storage/batcheval/cmd_scan_test.go | 113 ++++++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 pkg/storage/batcheval/cmd_scan_test.go diff --git a/pkg/storage/batcheval/cmd_reverse_scan.go b/pkg/storage/batcheval/cmd_reverse_scan.go index ce250daa59c2..e6852e65371a 100644 --- a/pkg/storage/batcheval/cmd_reverse_scan.go +++ b/pkg/storage/batcheval/cmd_reverse_scan.go @@ -40,6 +40,7 @@ func ReverseScan( opts := engine.MVCCScanOptions{ Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, Txn: h.Txn, + TargetBytes: h.TargetBytes, Reverse: true, } @@ -63,6 +64,7 @@ func ReverseScan( } reply.NumKeys = res.NumKeys + reply.NumBytes = res.NumBytes if res.ResumeSpan != nil { reply.ResumeSpan = res.ResumeSpan diff --git a/pkg/storage/batcheval/cmd_scan.go b/pkg/storage/batcheval/cmd_scan.go index ad8c09ebd63f..f098863afca8 100644 --- a/pkg/storage/batcheval/cmd_scan.go +++ b/pkg/storage/batcheval/cmd_scan.go @@ -40,6 +40,7 @@ func Scan( opts := engine.MVCCScanOptions{ Inconsistent: h.ReadConsistency != roachpb.CONSISTENT, Txn: h.Txn, + TargetBytes: h.TargetBytes, Reverse: false, } @@ -63,6 +64,7 @@ func Scan( } reply.NumKeys = res.NumKeys + reply.NumBytes = res.NumBytes if res.ResumeSpan != nil { reply.ResumeSpan = res.ResumeSpan diff --git a/pkg/storage/batcheval/cmd_scan_test.go b/pkg/storage/batcheval/cmd_scan_test.go new file mode 100644 index 000000000000..1215a2fdc620 --- /dev/null +++ b/pkg/storage/batcheval/cmd_scan_test.go @@ -0,0 +1,113 @@ +// Copyright 2020 The Cockroach Authors. +// +// Use of this software is governed by the Business Source License +// included in the file licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with +// the Business Source License, use of this software will be governed +// by the Apache License, Version 2.0, included in the file +// licenses/APL.txt. + +package batcheval + +import ( + "context" + "fmt" + "testing" + + "github.com/cockroachdb/cockroach/pkg/roachpb" + "github.com/cockroachdb/cockroach/pkg/storage/engine" + "github.com/cockroachdb/cockroach/pkg/testutils" + "github.com/cockroachdb/cockroach/pkg/util/hlc" + "github.com/cockroachdb/cockroach/pkg/util/leaktest" + "github.com/stretchr/testify/require" +) + +func TestScanReverseScanTargetBytes(t *testing.T) { + defer leaktest.AfterTest(t)() + + // Sanity checks for the TargetBytes scan option. We're not checking the specifics here, just + // that the plumbing works. TargetBytes is tested in-depth via TestMVCCHistories. + + const ( + tbNone = 0 // no limit, i.e. should return all kv pairs + tbOne = 1 // one byte = return first key only + tbLots = 100000 // de facto ditto tbNone + ) + testutils.RunTrueAndFalse(t, "reverse", func(t *testing.T, reverse bool) { + for _, tb := range []int64{tbNone, tbOne, tbLots} { + t.Run(fmt.Sprintf("targetBytes=%d", tb), func(t *testing.T) { + for _, sf := range []roachpb.ScanFormat{roachpb.KEY_VALUES, roachpb.BATCH_RESPONSE} { + t.Run(fmt.Sprintf("format=%s", sf), func(t *testing.T) { + testScanReverseScanInner(t, tb, sf, reverse, tb != tbOne) + }) + } + }) + } + }) +} + +func testScanReverseScanInner( + t *testing.T, tb int64, sf roachpb.ScanFormat, reverse bool, expBoth bool, +) { + defer leaktest.AfterTest(t)() + + ctx := context.Background() + k1, k2 := roachpb.Key("a"), roachpb.Key("b") + ts := hlc.Timestamp{WallTime: 1} + + eng := engine.NewDefaultInMem() + defer eng.Close() + + // Write to k1 and k2. + for _, k := range []roachpb.Key{k1, k2} { + err := engine.MVCCPut(ctx, eng, nil, k, ts, roachpb.MakeValueFromString("value-"+string(k)), nil) + require.NoError(t, err) + } + + var req roachpb.Request + var resp roachpb.Response + if !reverse { + req = &roachpb.ScanRequest{ScanFormat: sf} + resp = &roachpb.ScanResponse{} + } else { + req = &roachpb.ReverseScanRequest{ScanFormat: sf} + resp = &roachpb.ReverseScanResponse{} + } + req.SetHeader(roachpb.RequestHeader{Key: k1, EndKey: roachpb.KeyMax}) + + cArgs := CommandArgs{ + MaxKeys: 100000, + Args: req, + Header: roachpb.Header{ + Timestamp: ts, + TargetBytes: tb, + }, + } + + if !reverse { + _, err := Scan(ctx, eng, cArgs, resp) + require.NoError(t, err) + } else { + _, err := ReverseScan(ctx, eng, cArgs, resp) + require.NoError(t, err) + } + expN := 1 + if expBoth { + expN = 2 + } + + require.EqualValues(t, expN, resp.Header().NumKeys) + require.NotZero(t, resp.Header().NumBytes) + + var rows []roachpb.KeyValue + if !reverse { + rows = resp.(*roachpb.ScanResponse).Rows + } else { + rows = resp.(*roachpb.ReverseScanResponse).Rows + } + + if rows != nil { + require.Len(t, rows, expN) + } +}