Use []byte instead of Bytes, use tmlibs/common.KVPair

This commit is contained in:
Jae Kwon
2017-12-26 04:52:02 -08:00
parent a861d68a31
commit e1ff53fd0b
9 changed files with 199 additions and 225 deletions

View File

@ -8,9 +8,9 @@ GOTOOLS_CHECK = gox glide gometalinter.v2 protoc protoc-gen-gogo
PACKAGES=$(shell go list ./... | grep -v '/vendor/') PACKAGES=$(shell go list ./... | grep -v '/vendor/')
INCLUDE = -I=. -I=${GOPATH}/src -I=${GOPATH}/src/github.com/gogo/protobuf/protobuf INCLUDE = -I=. -I=${GOPATH}/src -I=${GOPATH}/src/github.com/gogo/protobuf/protobuf
all: check protoc build test install metalinter all: check get_vendor_deps protoc build test install metalinter
check: check_tools get_vendor_deps check: check_tools
######################################## ########################################

BIN
abci-cli

Binary file not shown.

View File

@ -7,6 +7,7 @@ import (
"github.com/tendermint/abci/example/code" "github.com/tendermint/abci/example/code"
"github.com/tendermint/abci/types" "github.com/tendermint/abci/types"
"github.com/tendermint/iavl" "github.com/tendermint/iavl"
cmn "github.com/tendermint/tmlibs/common"
dbm "github.com/tendermint/tmlibs/db" dbm "github.com/tendermint/tmlibs/db"
) )
@ -38,7 +39,7 @@ func (app *DummyApplication) DeliverTx(tx []byte) types.ResponseDeliverTx {
} }
app.state.Set(key, value) app.state.Set(key, value)
tags := []types.KVPair{ tags := []cmn.KVPair{
{[]byte("app.creator"), []byte("jae")}, {[]byte("app.creator"), []byte("jae")},
{[]byte("app.key"), key}, {[]byte("app.key"), key},
} }

14
glide.lock generated
View File

@ -1,12 +1,12 @@
hash: 2fe5021646e1cdb80999a9fe0a88a6b695409fa9891b28a97682d2782c9d26ab hash: 2fe5021646e1cdb80999a9fe0a88a6b695409fa9891b28a97682d2782c9d26ab
updated: 2017-12-26T00:33:47.921468008-08:00 updated: 2017-12-26T04:41:15.383754675-08:00
imports: imports:
- name: github.com/btcsuite/btcd - name: github.com/btcsuite/btcd
version: c7588cbf7690cd9f047a28efa2dcd8f2435a4e5e version: c7588cbf7690cd9f047a28efa2dcd8f2435a4e5e
subpackages: subpackages:
- btcec - btcec
- name: github.com/go-kit/kit - name: github.com/go-kit/kit
version: e2b298466b32c7cd5579a9b9b07e968fc9d9452c version: e3b2152e0063c5f05efea89ecbe297852af2a92d
subpackages: subpackages:
- log - log
- log/level - log/level
@ -14,7 +14,7 @@ imports:
- name: github.com/go-logfmt/logfmt - name: github.com/go-logfmt/logfmt
version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5 version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5
- name: github.com/go-stack/stack - name: github.com/go-stack/stack
version: 817915b46b97fd7bb80e8ab6b69f01a53ac3eebf version: 259ab82a6cad3992b4e21ff5cac294ccb06474bc
- name: github.com/gogo/protobuf - name: github.com/gogo/protobuf
version: 342cbe0a04158f6dcb03ca0079991a51a4248c02 version: 342cbe0a04158f6dcb03ca0079991a51a4248c02
subpackages: subpackages:
@ -41,13 +41,13 @@ imports:
- name: github.com/kr/logfmt - name: github.com/kr/logfmt
version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0 version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0
- name: github.com/pkg/errors - name: github.com/pkg/errors
version: 645ef00459ed84a119197bfb8d8205042c6df63d version: f15c970de5b76fac0b59abb32d62c17cc7bed265
- name: github.com/spf13/cobra - name: github.com/spf13/cobra
version: 7b2c5ac9fc04fc5efafb60700713d4fa609b777b version: 7b2c5ac9fc04fc5efafb60700713d4fa609b777b
- name: github.com/spf13/pflag - name: github.com/spf13/pflag
version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea
- name: github.com/syndtr/goleveldb - name: github.com/syndtr/goleveldb
version: b89cc31ef7977104127d34c1bd31ebd1a9db2199 version: adf24ef3f94bd13ec4163060b21a5678f22b429b
subpackages: subpackages:
- leveldb - leveldb
- leveldb/cache - leveldb/cache
@ -75,14 +75,14 @@ imports:
- name: github.com/tendermint/iavl - name: github.com/tendermint/iavl
version: 7f42f4ea5187ac0184ded22a038e77faba035606 version: 7f42f4ea5187ac0184ded22a038e77faba035606
- name: github.com/tendermint/tmlibs - name: github.com/tendermint/tmlibs
version: 6ec8c1602f22f41fc320da05c3a80acebf2c23bd version: b25df389db3c98f4b964bd39511c199f02d07715
subpackages: subpackages:
- common - common
- db - db
- log - log
- process - process
- name: golang.org/x/crypto - name: golang.org/x/crypto
version: edd5e9b0879d13ee6970a50153d85b8fec9f7686 version: 94eea52f7b742c7cbe0b03b22f0c4c8631ece122
subpackages: subpackages:
- nacl/secretbox - nacl/secretbox
- openpgp/armor - openpgp/armor

View File

@ -51,8 +51,7 @@ func Commit(client abcicli.Client, hashExp []byte) error {
} }
if !bytes.Equal(data, hashExp) { if !bytes.Equal(data, hashExp) {
fmt.Println("Failed test: Commit") fmt.Println("Failed test: Commit")
fmt.Printf("Commit hash was unexpected. Got %X expected %X\n", fmt.Printf("Commit hash was unexpected. Got %X expected %X\n", data, hashExp)
data.Bytes(), hashExp)
return errors.New("CommitTx failed") return errors.New("CommitTx failed")
} }
fmt.Println("Passed test: Commit") fmt.Println("Passed test: Commit")

View File

@ -8,6 +8,7 @@ import (
"github.com/gogo/protobuf/proto" "github.com/gogo/protobuf/proto"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
cmn "github.com/tendermint/tmlibs/common"
) )
func TestMarshalJSON(t *testing.T) { func TestMarshalJSON(t *testing.T) {
@ -19,7 +20,7 @@ func TestMarshalJSON(t *testing.T) {
Code: 1, Code: 1,
Data: []byte("hello"), Data: []byte("hello"),
Gas: 43, Gas: 43,
Fee: KI64Pair{[]byte("pho"), 12}, Fee: cmn.KI64Pair{[]byte("pho"), 12},
} }
b, err = json.Marshal(&r1) b, err = json.Marshal(&r1)
assert.Nil(t, err) assert.Nil(t, err)

View File

@ -42,8 +42,6 @@ It has these top-level messages:
PartSetHeader PartSetHeader
Validator Validator
Evidence Evidence
KVPair
KI64Pair
*/ */
//nolint: gas //nolint: gas
package types package types
@ -52,8 +50,7 @@ import proto "github.com/gogo/protobuf/proto"
import fmt "fmt" import fmt "fmt"
import math "math" import math "math"
import _ "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/gogoproto"
import common "github.com/tendermint/tmlibs/common"
import github_com_tendermint_go_wire_data "github.com/tendermint/go-wire/data"
import context "golang.org/x/net/context" import context "golang.org/x/net/context"
import grpc "google.golang.org/grpc" import grpc "google.golang.org/grpc"
@ -1229,13 +1226,13 @@ func (*ResponseInitChain) ProtoMessage() {}
func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{18} } func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{18} }
type ResponseQuery struct { type ResponseQuery struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Index int64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` Index int64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
Key github_com_tendermint_go_wire_data.Bytes `protobuf:"bytes,3,opt,name=key,proto3,customtype=github.com/tendermint/go-wire/data.Bytes" json:"key"` Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
Value github_com_tendermint_go_wire_data.Bytes `protobuf:"bytes,4,opt,name=value,proto3,customtype=github.com/tendermint/go-wire/data.Bytes" json:"value"` Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
Proof github_com_tendermint_go_wire_data.Bytes `protobuf:"bytes,5,opt,name=proof,proto3,customtype=github.com/tendermint/go-wire/data.Bytes" json:"proof"` Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
Height int64 `protobuf:"varint,6,opt,name=height,proto3" json:"height,omitempty"` Height int64 `protobuf:"varint,6,opt,name=height,proto3" json:"height,omitempty"`
Log string `protobuf:"bytes,7,opt,name=log,proto3" json:"log,omitempty"` Log string `protobuf:"bytes,7,opt,name=log,proto3" json:"log,omitempty"`
} }
func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
@ -1257,6 +1254,27 @@ func (m *ResponseQuery) GetIndex() int64 {
return 0 return 0
} }
func (m *ResponseQuery) GetKey() []byte {
if m != nil {
return m.Key
}
return nil
}
func (m *ResponseQuery) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
func (m *ResponseQuery) GetProof() []byte {
if m != nil {
return m.Proof
}
return nil
}
func (m *ResponseQuery) GetHeight() int64 { func (m *ResponseQuery) GetHeight() int64 {
if m != nil { if m != nil {
return m.Height return m.Height
@ -1280,11 +1298,11 @@ func (*ResponseBeginBlock) ProtoMessage() {}
func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{20} } func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{20} }
type ResponseCheckTx struct { type ResponseCheckTx struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Data github_com_tendermint_go_wire_data.Bytes `protobuf:"bytes,2,opt,name=data,proto3,customtype=github.com/tendermint/go-wire/data.Bytes" json:"data"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
Gas int64 `protobuf:"varint,4,opt,name=gas,proto3" json:"gas,omitempty"` Gas int64 `protobuf:"varint,4,opt,name=gas,proto3" json:"gas,omitempty"`
Fee KI64Pair `protobuf:"bytes,5,opt,name=fee" json:"fee"` Fee common.KI64Pair `protobuf:"bytes,5,opt,name=fee" json:"fee"`
} }
func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} } func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
@ -1299,6 +1317,13 @@ func (m *ResponseCheckTx) GetCode() uint32 {
return 0 return 0
} }
func (m *ResponseCheckTx) GetData() []byte {
if m != nil {
return m.Data
}
return nil
}
func (m *ResponseCheckTx) GetLog() string { func (m *ResponseCheckTx) GetLog() string {
if m != nil { if m != nil {
return m.Log return m.Log
@ -1313,18 +1338,18 @@ func (m *ResponseCheckTx) GetGas() int64 {
return 0 return 0
} }
func (m *ResponseCheckTx) GetFee() KI64Pair { func (m *ResponseCheckTx) GetFee() common.KI64Pair {
if m != nil { if m != nil {
return m.Fee return m.Fee
} }
return KI64Pair{} return common.KI64Pair{}
} }
type ResponseDeliverTx struct { type ResponseDeliverTx struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Data github_com_tendermint_go_wire_data.Bytes `protobuf:"bytes,2,opt,name=data,proto3,customtype=github.com/tendermint/go-wire/data.Bytes" json:"data"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
Tags []KVPair `protobuf:"bytes,4,rep,name=tags" json:"tags"` Tags []common.KVPair `protobuf:"bytes,4,rep,name=tags" json:"tags"`
} }
func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} } func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
@ -1339,6 +1364,13 @@ func (m *ResponseDeliverTx) GetCode() uint32 {
return 0 return 0
} }
func (m *ResponseDeliverTx) GetData() []byte {
if m != nil {
return m.Data
}
return nil
}
func (m *ResponseDeliverTx) GetLog() string { func (m *ResponseDeliverTx) GetLog() string {
if m != nil { if m != nil {
return m.Log return m.Log
@ -1346,7 +1378,7 @@ func (m *ResponseDeliverTx) GetLog() string {
return "" return ""
} }
func (m *ResponseDeliverTx) GetTags() []KVPair { func (m *ResponseDeliverTx) GetTags() []common.KVPair {
if m != nil { if m != nil {
return m.Tags return m.Tags
} }
@ -1378,9 +1410,9 @@ func (m *ResponseEndBlock) GetConsensusParamUpdates() *ConsensusParams {
} }
type ResponseCommit struct { type ResponseCommit struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Data github_com_tendermint_go_wire_data.Bytes `protobuf:"bytes,2,opt,name=data,proto3,customtype=github.com/tendermint/go-wire/data.Bytes" json:"data"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
} }
func (m *ResponseCommit) Reset() { *m = ResponseCommit{} } func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
@ -1395,6 +1427,13 @@ func (m *ResponseCommit) GetCode() uint32 {
return 0 return 0
} }
func (m *ResponseCommit) GetData() []byte {
if m != nil {
return m.Data
}
return nil
}
func (m *ResponseCommit) GetLog() string { func (m *ResponseCommit) GetLog() string {
if m != nil { if m != nil {
return m.Log return m.Log
@ -1689,54 +1728,6 @@ func (m *Evidence) GetHeight() int64 {
return 0 return 0
} }
type KVPair struct {
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *KVPair) Reset() { *m = KVPair{} }
func (m *KVPair) String() string { return proto.CompactTextString(m) }
func (*KVPair) ProtoMessage() {}
func (*KVPair) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{34} }
func (m *KVPair) GetKey() []byte {
if m != nil {
return m.Key
}
return nil
}
func (m *KVPair) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
}
type KI64Pair struct {
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *KI64Pair) Reset() { *m = KI64Pair{} }
func (m *KI64Pair) String() string { return proto.CompactTextString(m) }
func (*KI64Pair) ProtoMessage() {}
func (*KI64Pair) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{35} }
func (m *KI64Pair) GetKey() []byte {
if m != nil {
return m.Key
}
return nil
}
func (m *KI64Pair) GetValue() int64 {
if m != nil {
return m.Value
}
return 0
}
func init() { func init() {
proto.RegisterType((*Request)(nil), "types.Request") proto.RegisterType((*Request)(nil), "types.Request")
proto.RegisterType((*RequestEcho)(nil), "types.RequestEcho") proto.RegisterType((*RequestEcho)(nil), "types.RequestEcho")
@ -1772,8 +1763,6 @@ func init() {
proto.RegisterType((*PartSetHeader)(nil), "types.PartSetHeader") proto.RegisterType((*PartSetHeader)(nil), "types.PartSetHeader")
proto.RegisterType((*Validator)(nil), "types.Validator") proto.RegisterType((*Validator)(nil), "types.Validator")
proto.RegisterType((*Evidence)(nil), "types.Evidence") proto.RegisterType((*Evidence)(nil), "types.Evidence")
proto.RegisterType((*KVPair)(nil), "types.KVPair")
proto.RegisterType((*KI64Pair)(nil), "types.KI64Pair")
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -2181,113 +2170,110 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("types/types.proto", fileDescriptorTypes) } func init() { proto.RegisterFile("types/types.proto", fileDescriptorTypes) }
var fileDescriptorTypes = []byte{ var fileDescriptorTypes = []byte{
// 1726 bytes of a gzipped FileDescriptorProto // 1666 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x72, 0x13, 0xcf, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4d, 0x73, 0x13, 0x47,
0x11, 0xb7, 0xbe, 0xa5, 0x96, 0xfc, 0x35, 0xb6, 0xb1, 0x10, 0x07, 0xbb, 0xf6, 0x80, 0xe5, 0x00, 0x13, 0xb6, 0xbe, 0xb5, 0x2d, 0x7f, 0x8e, 0x6d, 0x2c, 0xc4, 0x01, 0xd7, 0x1e, 0x40, 0x7e, 0x01,
0x16, 0x31, 0x81, 0xc2, 0x90, 0xa2, 0x62, 0xd9, 0x80, 0x14, 0x52, 0x81, 0x2c, 0x84, 0x43, 0x2e, 0xeb, 0x7d, 0xcd, 0x0b, 0x85, 0x21, 0x45, 0xc5, 0xb2, 0x09, 0x12, 0xa4, 0x02, 0x59, 0x08, 0x87,
0xaa, 0x91, 0x76, 0x2c, 0x6d, 0x21, 0xed, 0x2e, 0xbb, 0x23, 0x23, 0x53, 0x79, 0x04, 0xee, 0x39, 0x5c, 0x54, 0xa3, 0xdd, 0xb1, 0xb4, 0x85, 0xb4, 0xbb, 0x68, 0x47, 0x46, 0xe6, 0x0f, 0xe4, 0xc2,
0xe7, 0x94, 0xbc, 0x41, 0xf2, 0x04, 0xa9, 0xa4, 0xf2, 0x06, 0x39, 0xf8, 0xc0, 0x93, 0xa4, 0x7a, 0x3d, 0xe7, 0x9c, 0xf2, 0x4f, 0x52, 0x49, 0xe5, 0x3f, 0x70, 0xe0, 0x97, 0xa4, 0x7a, 0x66, 0xf6,
0x66, 0xf6, 0x53, 0xbb, 0x7f, 0xfe, 0xc5, 0x81, 0x8b, 0x34, 0xb3, 0xfd, 0x31, 0xdd, 0x3d, 0x3d, 0x53, 0xbb, 0x49, 0x8a, 0x8b, 0x3d, 0xbd, 0xfd, 0xf4, 0x4c, 0xf7, 0x4c, 0xcf, 0xd3, 0x3d, 0x82,
0xbf, 0xee, 0x19, 0xd8, 0xe4, 0x57, 0x0e, 0xf3, 0x3a, 0xe2, 0xf7, 0xc8, 0x71, 0x6d, 0x6e, 0x93, 0x2d, 0x7e, 0xe9, 0x31, 0xbf, 0x23, 0xfe, 0x1e, 0x7a, 0x33, 0x97, 0xbb, 0xa4, 0x22, 0x84, 0xd6,
0x92, 0x98, 0xb4, 0xee, 0x8d, 0x4d, 0x3e, 0x99, 0x0f, 0x8f, 0x46, 0xf6, 0xac, 0x33, 0xb6, 0xc7, 0x9d, 0x91, 0xcd, 0xc7, 0xf3, 0xe1, 0xa1, 0xe9, 0x4e, 0x3b, 0x23, 0x77, 0xe4, 0x76, 0x84, 0x76,
0x76, 0x47, 0x50, 0x87, 0xf3, 0x0b, 0x31, 0x13, 0x13, 0x31, 0x92, 0x52, 0xda, 0xbf, 0x8a, 0x50, 0x38, 0x3f, 0x17, 0x92, 0x10, 0xc4, 0x48, 0x5a, 0xb5, 0x3a, 0x31, 0x38, 0x67, 0x8e, 0xc5, 0x66,
0xd1, 0xd9, 0xc7, 0x39, 0xf3, 0x38, 0x69, 0x43, 0x91, 0x8d, 0x26, 0x76, 0x33, 0xbf, 0x9f, 0x6b, 0x53, 0xdb, 0xe1, 0x1d, 0x3e, 0x9d, 0xd8, 0x43, 0xbf, 0x63, 0xba, 0xd3, 0xa9, 0xeb, 0xc4, 0x97,
0xd7, 0x8f, 0xc9, 0x91, 0xd4, 0xae, 0xa8, 0xcf, 0x47, 0x13, 0xbb, 0xb7, 0xa2, 0x0b, 0x0e, 0x72, 0xd1, 0x7f, 0x2b, 0x43, 0xcd, 0x60, 0xef, 0xe6, 0xcc, 0xe7, 0xa4, 0x0d, 0x65, 0x66, 0x8e, 0xdd,
0x07, 0x4a, 0x17, 0xd3, 0xb9, 0x37, 0x69, 0x16, 0x04, 0xeb, 0x56, 0x9c, 0xf5, 0x05, 0x92, 0x7a, 0x66, 0x71, 0xbf, 0xd0, 0x6e, 0x1c, 0x91, 0x43, 0x89, 0x53, 0xda, 0x27, 0xe6, 0xd8, 0xed, 0xad,
0x2b, 0xba, 0xe4, 0x41, 0xb5, 0xa6, 0x75, 0x61, 0x37, 0x8b, 0x69, 0x6a, 0xfb, 0xd6, 0x85, 0x50, 0x18, 0x02, 0x41, 0x6e, 0x41, 0xe5, 0x7c, 0x32, 0xf7, 0xc7, 0xcd, 0x92, 0x80, 0x6e, 0x27, 0xa1,
0x8b, 0x1c, 0xe4, 0x31, 0x80, 0xc7, 0xf8, 0xc0, 0x76, 0xb8, 0x69, 0x5b, 0xcd, 0x92, 0xe0, 0xdf, 0xdf, 0xa0, 0xaa, 0xb7, 0x62, 0x48, 0x0c, 0x4e, 0x6b, 0x3b, 0xe7, 0x6e, 0xb3, 0x9c, 0x35, 0x6d,
0x8d, 0xf3, 0xbf, 0x65, 0xfc, 0xb5, 0x20, 0xf7, 0x56, 0xf4, 0x9a, 0xe7, 0x4f, 0x50, 0xd2, 0xb4, 0xdf, 0x39, 0x17, 0xd3, 0x22, 0x82, 0x3c, 0x00, 0xf0, 0x19, 0x1f, 0xb8, 0x1e, 0xb7, 0x5d, 0xa7,
0x4c, 0x3e, 0x18, 0x4d, 0xa8, 0x69, 0x35, 0xcb, 0x69, 0x92, 0x7d, 0xcb, 0xe4, 0x67, 0x48, 0x46, 0x59, 0x11, 0xf8, 0xbd, 0x24, 0xfe, 0x15, 0xe3, 0x2f, 0x84, 0xba, 0xb7, 0x62, 0x68, 0x7e, 0x20,
0x49, 0xd3, 0x9f, 0xa0, 0x2b, 0x1f, 0xe7, 0xcc, 0xbd, 0x6a, 0x56, 0xd2, 0x5c, 0xf9, 0x03, 0x92, 0xa0, 0xa5, 0xed, 0xd8, 0x7c, 0x60, 0x8e, 0xa9, 0xed, 0x34, 0xab, 0x59, 0x96, 0x7d, 0xc7, 0xe6,
0xd0, 0x15, 0xc1, 0x43, 0x9e, 0x42, 0x7d, 0xc8, 0xc6, 0xa6, 0x35, 0x18, 0x4e, 0xed, 0xd1, 0x87, 0xa7, 0xa8, 0x46, 0x4b, 0x3b, 0x10, 0x30, 0x94, 0x77, 0x73, 0x36, 0xbb, 0x6c, 0xd6, 0xb2, 0x42,
0x66, 0x55, 0x88, 0x34, 0xe3, 0x22, 0x5d, 0x64, 0xe8, 0x22, 0xbd, 0xb7, 0xa2, 0xc3, 0x30, 0x98, 0xf9, 0x1e, 0x55, 0x18, 0x8a, 0xc0, 0x90, 0x47, 0xd0, 0x18, 0xb2, 0x91, 0xed, 0x0c, 0x86, 0x13,
0x91, 0x63, 0xa8, 0x8e, 0x26, 0x6c, 0xf4, 0x61, 0xc0, 0x17, 0xcd, 0x9a, 0x90, 0xdc, 0x89, 0x4b, 0xd7, 0x7c, 0xdb, 0xac, 0x0b, 0x93, 0x66, 0xd2, 0xa4, 0x8b, 0x80, 0x2e, 0xea, 0x7b, 0x2b, 0x06,
0x9e, 0x21, 0xf5, 0xdd, 0xa2, 0xb7, 0xa2, 0x57, 0x46, 0x72, 0x88, 0x7e, 0x19, 0x6c, 0x6a, 0x5e, 0x0c, 0x43, 0x89, 0x1c, 0x41, 0xdd, 0x1c, 0x33, 0xf3, 0xed, 0x80, 0x2f, 0x9a, 0x9a, 0xb0, 0xdc,
0x32, 0x17, 0xa5, 0xb6, 0xd2, 0xfc, 0x3a, 0x97, 0x74, 0x21, 0x57, 0x33, 0xfc, 0x09, 0x79, 0x08, 0x4d, 0x5a, 0x9e, 0xa2, 0xf6, 0xf5, 0xa2, 0xb7, 0x62, 0xd4, 0x4c, 0x39, 0xc4, 0xb8, 0x2c, 0x36,
0x35, 0x66, 0x19, 0xca, 0xd0, 0xba, 0x10, 0xbc, 0x91, 0xd8, 0x51, 0xcb, 0xf0, 0xcd, 0xac, 0x32, 0xb1, 0x2f, 0xd8, 0x0c, 0xad, 0xb6, 0xb3, 0xe2, 0x3a, 0x93, 0x7a, 0x61, 0xa7, 0x59, 0x81, 0x40,
0x35, 0x26, 0x47, 0x50, 0x1e, 0xd9, 0xb3, 0x99, 0xc9, 0x9b, 0x0d, 0x21, 0xb3, 0x9d, 0x30, 0x51, 0xee, 0x81, 0xc6, 0x1c, 0x4b, 0x39, 0xda, 0x10, 0x86, 0x57, 0x52, 0x27, 0xea, 0x58, 0x81, 0x9b,
0xd0, 0x7a, 0x2b, 0xba, 0xe2, 0xea, 0x56, 0xa0, 0x74, 0x49, 0xa7, 0x73, 0xa6, 0x1d, 0x40, 0x3d, 0x75, 0xa6, 0xc6, 0xe4, 0x10, 0xaa, 0x98, 0x25, 0x36, 0x6f, 0xae, 0x0a, 0x9b, 0x9d, 0x94, 0x8b,
0x92, 0x29, 0xa4, 0x09, 0x95, 0x19, 0xf3, 0x3c, 0x3a, 0x66, 0xcd, 0xdc, 0x7e, 0xae, 0x5d, 0xd3, 0x42, 0xd7, 0x5b, 0x31, 0x14, 0xaa, 0x5b, 0x83, 0xca, 0x05, 0x9d, 0xcc, 0x99, 0x7e, 0x13, 0x1a,
0xfd, 0xa9, 0xb6, 0x06, 0x8d, 0x68, 0x9e, 0x44, 0x04, 0x31, 0x17, 0x50, 0xf0, 0x92, 0xb9, 0x1e, 0xb1, 0x4c, 0x21, 0x4d, 0xa8, 0x4d, 0x99, 0xef, 0xd3, 0x11, 0x6b, 0x16, 0xf6, 0x0b, 0x6d, 0xcd,
0x26, 0x80, 0x12, 0x54, 0x53, 0xed, 0x09, 0x6c, 0x24, 0x93, 0x80, 0x6c, 0x40, 0xe1, 0x03, 0xbb, 0x08, 0x44, 0x7d, 0x1d, 0x56, 0xe3, 0x79, 0x12, 0x33, 0xc4, 0x5c, 0x40, 0xc3, 0x0b, 0x36, 0xf3,
0x52, 0x9c, 0x38, 0x24, 0xdb, 0xca, 0x20, 0x91, 0xc5, 0x35, 0x5d, 0x59, 0xf7, 0xdb, 0x40, 0x36, 0x31, 0x01, 0x94, 0xa1, 0x12, 0xf5, 0x87, 0xb0, 0x99, 0x4e, 0x02, 0xb2, 0x09, 0xa5, 0xb7, 0xec,
0x48, 0x03, 0xf2, 0x08, 0xe0, 0x92, 0x4e, 0x4d, 0x83, 0x72, 0xdb, 0xf5, 0x9a, 0xb9, 0xfd, 0x42, 0x52, 0x21, 0x71, 0x48, 0x76, 0x94, 0x43, 0x22, 0x8b, 0x35, 0x43, 0x79, 0xf7, 0x2c, 0xb4, 0x0d,
0xbb, 0x7e, 0xbc, 0xa1, 0xdc, 0x7d, 0xef, 0x13, 0xba, 0xc5, 0x7f, 0x5f, 0xef, 0xad, 0xe8, 0x11, 0xd3, 0x80, 0xdc, 0x07, 0xb8, 0xa0, 0x13, 0xdb, 0xa2, 0xdc, 0x9d, 0xf9, 0xcd, 0xc2, 0x7e, 0xa9,
0x4e, 0xcd, 0x08, 0x1c, 0x10, 0xd9, 0x41, 0x08, 0x14, 0x0d, 0xca, 0xa9, 0x30, 0xa2, 0xa1, 0x8b, 0xdd, 0x38, 0xda, 0x54, 0xe1, 0xbe, 0x09, 0x14, 0xdd, 0xf2, 0xef, 0x9f, 0xae, 0xaf, 0x18, 0x31,
0x31, 0x7e, 0x73, 0x28, 0x9f, 0x28, 0x23, 0xc4, 0x98, 0xdc, 0x80, 0xf2, 0x84, 0x99, 0xe3, 0x09, 0xa4, 0x6e, 0x85, 0x01, 0x88, 0xec, 0x20, 0x04, 0xca, 0x16, 0xe5, 0x54, 0x38, 0xb1, 0x6a, 0x88,
0x17, 0xa7, 0xa6, 0xa0, 0xab, 0x19, 0x5a, 0xec, 0xb8, 0xf6, 0x25, 0x13, 0x07, 0xa4, 0xaa, 0xcb, 0x31, 0x7e, 0xf3, 0x28, 0x1f, 0x2b, 0x27, 0xc4, 0x98, 0x5c, 0x81, 0xea, 0x98, 0xd9, 0xa3, 0x31,
0x89, 0xf6, 0xdf, 0x1c, 0x6c, 0x2e, 0x65, 0x14, 0xea, 0x9d, 0x50, 0x6f, 0xe2, 0xaf, 0x85, 0x63, 0x17, 0xb7, 0xa6, 0x64, 0x28, 0x09, 0x3d, 0xf6, 0x66, 0xee, 0x05, 0x13, 0x17, 0xa4, 0x6e, 0x48,
0x72, 0x07, 0xf5, 0x52, 0x83, 0xb9, 0xea, 0xe0, 0xae, 0x2a, 0x1f, 0x7a, 0xe2, 0xa3, 0x72, 0x40, 0x41, 0xff, 0xb3, 0x00, 0x5b, 0x4b, 0x19, 0x85, 0xf3, 0x8e, 0xa9, 0x3f, 0x0e, 0xd6, 0xc2, 0x31,
0xb1, 0x90, 0x3b, 0xb0, 0x49, 0x87, 0x1e, 0xb3, 0xf8, 0x20, 0xe2, 0x7b, 0x61, 0xbf, 0xd0, 0x2e, 0xb9, 0x85, 0xf3, 0x52, 0x8b, 0xcd, 0xd4, 0xc5, 0x5d, 0x53, 0x31, 0xf4, 0xc4, 0x47, 0x15, 0x80,
0xe9, 0x1b, 0x92, 0x10, 0xb8, 0xee, 0x91, 0x1e, 0x6c, 0x0f, 0xaf, 0x3e, 0x53, 0x8b, 0x9b, 0x16, 0x82, 0x90, 0x5b, 0xb0, 0x45, 0x87, 0x3e, 0x73, 0xf8, 0x20, 0x16, 0x7b, 0x69, 0xbf, 0xd4, 0xae,
0x8b, 0xf2, 0x17, 0x45, 0xac, 0xd6, 0xd5, 0x3a, 0xcf, 0x2f, 0x4d, 0x83, 0x59, 0x23, 0xa6, 0x56, 0x18, 0x9b, 0x52, 0x11, 0x86, 0xee, 0x93, 0x1e, 0xec, 0x0c, 0x2f, 0x3f, 0x50, 0x87, 0xdb, 0x0e,
0xda, 0x0a, 0x44, 0x42, 0x4d, 0xda, 0x3e, 0xac, 0xc5, 0x93, 0x9c, 0xac, 0x41, 0x9e, 0x2f, 0x94, 0x8b, 0xe3, 0xcb, 0x62, 0xaf, 0x36, 0xd4, 0x3a, 0x4f, 0x2e, 0x6c, 0x8b, 0x39, 0x26, 0x53, 0x2b,
0x1f, 0x79, 0xbe, 0xd0, 0xb4, 0x60, 0x87, 0x82, 0x84, 0x5e, 0xe2, 0x39, 0x84, 0xf5, 0x44, 0xee, 0x6d, 0x87, 0x26, 0xd1, 0x4c, 0xfa, 0x3e, 0xac, 0x27, 0x93, 0x9c, 0xac, 0x43, 0x91, 0x2f, 0x54,
0x46, 0x82, 0x9a, 0x8b, 0x06, 0x55, 0x5b, 0x87, 0xd5, 0x58, 0xca, 0x6a, 0x5f, 0x4a, 0x50, 0xd5, 0x1c, 0x45, 0xbe, 0xd0, 0xf5, 0xf0, 0x84, 0xc2, 0x84, 0x5e, 0xc2, 0x1c, 0xc0, 0x46, 0x2a, 0x77,
0x99, 0xe7, 0xd8, 0x96, 0xc7, 0xc8, 0x63, 0xa8, 0xb1, 0xc5, 0x88, 0x49, 0x9c, 0xc9, 0x25, 0x4e, 0x63, 0x9b, 0x5a, 0x88, 0x6f, 0xaa, 0xbe, 0x01, 0x6b, 0x89, 0x94, 0xd5, 0x3f, 0x56, 0xa0, 0x6e,
0xb1, 0xe4, 0x79, 0xee, 0xd3, 0xf1, 0x58, 0x05, 0xcc, 0xe4, 0x30, 0x86, 0x91, 0x5b, 0x49, 0xa1, 0x30, 0xdf, 0x73, 0x1d, 0x9f, 0x91, 0x07, 0xa0, 0xb1, 0x85, 0xc9, 0x24, 0xcf, 0x14, 0x52, 0xb7,
0x28, 0x48, 0xde, 0x8d, 0x83, 0xe4, 0x76, 0x82, 0x37, 0x81, 0x92, 0x87, 0x31, 0x94, 0x4c, 0x2a, 0x58, 0x62, 0x9e, 0x04, 0x7a, 0xbc, 0x56, 0x21, 0x98, 0x1c, 0x24, 0x38, 0x72, 0x3b, 0x6d, 0x14,
0x8e, 0xc1, 0xe4, 0x49, 0x0a, 0x4c, 0x26, 0xcd, 0xcf, 0xc0, 0xc9, 0x93, 0x14, 0x9c, 0x6c, 0x2e, 0x27, 0xc9, 0xdb, 0x49, 0x92, 0xdc, 0x49, 0x61, 0x53, 0x2c, 0x79, 0x90, 0x60, 0xc9, 0xf4, 0xc4,
0xad, 0x95, 0x0a, 0x94, 0x77, 0xe3, 0x40, 0x99, 0x74, 0x27, 0x81, 0x94, 0xbf, 0x4e, 0x43, 0xca, 0x09, 0x9a, 0x3c, 0xce, 0xa0, 0xc9, 0xb4, 0xfb, 0x39, 0x3c, 0x79, 0x9c, 0xc1, 0x93, 0xcd, 0xa5,
0x9b, 0x09, 0x99, 0x4c, 0xa8, 0x7c, 0xb0, 0x04, 0x95, 0x37, 0x12, 0xa2, 0x29, 0x58, 0x79, 0x12, 0xb5, 0x32, 0x89, 0xf2, 0x76, 0x92, 0x28, 0xd3, 0xe1, 0xa4, 0x98, 0xf2, 0xab, 0x2c, 0xa6, 0xbc,
0xc3, 0x4a, 0x48, 0xf5, 0x2d, 0x03, 0x2c, 0x1f, 0x2d, 0x83, 0xe5, 0x6e, 0x72, 0x6b, 0xd3, 0xd0, 0x9a, 0xb2, 0xc9, 0xa5, 0xca, 0xbb, 0x4b, 0x54, 0x79, 0x25, 0x65, 0x9a, 0xc1, 0x95, 0xc7, 0x09,
0xb2, 0x93, 0x40, 0xcb, 0x9d, 0xa4, 0x95, 0x99, 0x70, 0x79, 0x88, 0xa7, 0x3b, 0x91, 0x69, 0x88, 0xae, 0x84, 0xcc, 0xd8, 0x72, 0xc8, 0xf2, 0xfe, 0x32, 0x59, 0xee, 0xa5, 0x8f, 0x36, 0x8b, 0x2d,
0x04, 0xcc, 0x75, 0x6d, 0x57, 0xe1, 0x99, 0x9c, 0x68, 0x6d, 0xc4, 0x9b, 0x30, 0xbf, 0x7e, 0x02, 0x3b, 0x29, 0xb6, 0xdc, 0x4d, 0x7b, 0x99, 0x4b, 0x97, 0x07, 0x78, 0xbb, 0x53, 0x99, 0x86, 0x4c,
0x5a, 0x45, 0xd2, 0x47, 0xb2, 0x4b, 0xfb, 0x4b, 0x2e, 0x94, 0x15, 0xe8, 0x1a, 0xc5, 0xaa, 0x9a, 0xc0, 0x66, 0x33, 0x77, 0xa6, 0xf8, 0x4c, 0x0a, 0x7a, 0x1b, 0xf9, 0x26, 0xca, 0xaf, 0xbf, 0xa1,
0xc2, 0xaa, 0x08, 0xe2, 0xe6, 0x63, 0x88, 0x4b, 0x7e, 0x01, 0x9b, 0x53, 0xea, 0x71, 0x19, 0x97, 0x56, 0x91, 0xf4, 0xb1, 0xec, 0xd2, 0x7f, 0x2e, 0x44, 0xb6, 0x82, 0x5d, 0xe3, 0x5c, 0xa5, 0x29,
0x41, 0x0c, 0xbc, 0xd6, 0x91, 0x20, 0x03, 0x22, 0x51, 0xec, 0x1e, 0x6c, 0x45, 0x78, 0xa9, 0xe3, 0xae, 0x8a, 0x31, 0x6e, 0x31, 0xc1, 0xb8, 0xe4, 0x3f, 0xb0, 0x35, 0xa1, 0x3e, 0x97, 0xfb, 0x32,
0x0c, 0x04, 0x50, 0x15, 0xc5, 0xe1, 0xdd, 0x08, 0xb8, 0x4f, 0x1d, 0xa7, 0x47, 0xbd, 0x89, 0x76, 0x48, 0x90, 0xd7, 0x06, 0x2a, 0xe4, 0x86, 0x48, 0x16, 0xbb, 0x03, 0xdb, 0x31, 0x2c, 0xf5, 0xbc,
0x12, 0xfa, 0x1f, 0xa2, 0x39, 0x81, 0xe2, 0xc8, 0x36, 0xa4, 0x5b, 0xab, 0xba, 0x18, 0x23, 0xc2, 0x81, 0x20, 0xaa, 0xb2, 0xb8, 0xbc, 0x9b, 0x21, 0xfa, 0xc4, 0xf3, 0x7a, 0xd4, 0x1f, 0xeb, 0xc7,
0x4f, 0xed, 0xb1, 0xb2, 0x0c, 0x87, 0xda, 0x56, 0x28, 0x1a, 0xa4, 0xaa, 0xf6, 0x8f, 0x7c, 0xe8, 0x51, 0xfc, 0x11, 0x9b, 0x13, 0x28, 0x9b, 0xae, 0x25, 0xc3, 0x5a, 0x33, 0xc4, 0x18, 0x19, 0x7e,
0x7b, 0x00, 0xcb, 0x4b, 0xca, 0xb6, 0xa1, 0x64, 0x5a, 0x06, 0x5b, 0x08, 0x75, 0x05, 0x5d, 0x4e, 0xe2, 0x8e, 0x94, 0x67, 0x38, 0xd4, 0xb7, 0x23, 0xd3, 0x30, 0x55, 0xf5, 0x5f, 0x0a, 0x51, 0xec,
0x48, 0x57, 0x16, 0x11, 0x74, 0xac, 0xd1, 0xbd, 0x8f, 0x20, 0xf6, 0xbf, 0xeb, 0xbd, 0x76, 0xa4, 0x21, 0x2d, 0x2f, 0x4d, 0xb6, 0x03, 0x15, 0xdb, 0xb1, 0xd8, 0x42, 0x4c, 0x57, 0x32, 0xa4, 0x10,
0x8f, 0xe2, 0xcc, 0x32, 0x98, 0x3b, 0x33, 0x2d, 0xde, 0x19, 0xdb, 0xf7, 0x3e, 0x99, 0x2e, 0xeb, 0x14, 0x91, 0x92, 0x70, 0x35, 0x59, 0x44, 0xa4, 0xfb, 0x52, 0x50, 0x44, 0xed, 0x9e, 0x8b, 0x2b,
0x60, 0xe4, 0x8e, 0xba, 0x57, 0x9c, 0x79, 0xb2, 0xec, 0xbc, 0xf0, 0xcb, 0x4e, 0xf1, 0x3b, 0xb5, 0xb7, 0x6a, 0x48, 0x21, 0xc6, 0x40, 0xd5, 0x04, 0xad, 0x2b, 0xc7, 0x6b, 0x91, 0xe3, 0x3b, 0x40,
0x48, 0x71, 0xd4, 0xe3, 0xb8, 0xb6, 0x7d, 0x21, 0x8e, 0xf5, 0x77, 0xe9, 0x11, 0xe2, 0x11, 0x5c, 0x96, 0x33, 0x5f, 0xff, 0xa9, 0x80, 0xac, 0x96, 0xc8, 0xea, 0x4c, 0xdf, 0x83, 0xa3, 0x2b, 0xc6,
0x2c, 0xc7, 0x8a, 0x8d, 0x0a, 0x67, 0x25, 0x0c, 0xe7, 0x36, 0x90, 0xe5, 0xf3, 0xa8, 0xfd, 0x33, 0xca, 0x8c, 0x5a, 0xa3, 0x14, 0xae, 0x81, 0x5f, 0x46, 0xd4, 0x17, 0x7e, 0x97, 0x0c, 0x1c, 0x92,
0x87, 0x58, 0x1b, 0x3b, 0x6b, 0xa9, 0x11, 0x3d, 0x57, 0x09, 0x95, 0xff, 0x4e, 0x73, 0x65, 0x0a, 0x36, 0x94, 0xce, 0x19, 0x53, 0x34, 0xb1, 0x79, 0x28, 0x7b, 0xc0, 0xc3, 0xe7, 0xfd, 0xfb, 0xff,
0x2a, 0xab, 0x0a, 0x81, 0x55, 0xf8, 0x65, 0x4c, 0x3d, 0x11, 0xcd, 0x82, 0x8e, 0x43, 0x72, 0x00, 0x7f, 0x49, 0xed, 0xa0, 0x3c, 0x20, 0x44, 0x7f, 0x1f, 0x6d, 0x6c, 0xc4, 0xc1, 0x5f, 0xee, 0x4a,
0x85, 0x0b, 0xc6, 0x14, 0xdc, 0xf9, 0xb5, 0xe7, 0x55, 0xff, 0xd1, 0xaf, 0xde, 0x50, 0xd3, 0xaf, 0x1b, 0xca, 0x9c, 0x8e, 0x82, 0x6a, 0xb1, 0x1e, 0xae, 0xfc, 0x26, 0xb6, 0xae, 0x40, 0xe8, 0xbf,
0x72, 0xc8, 0xa1, 0xfd, 0x3d, 0x17, 0x26, 0x48, 0x58, 0x4b, 0x7e, 0xa4, 0xf1, 0x07, 0x50, 0xe4, 0x16, 0x90, 0xfc, 0x93, 0xf7, 0x8c, 0x9c, 0xc2, 0x56, 0x58, 0x72, 0x06, 0x73, 0xcf, 0xa2, 0x9c,
0x74, 0xec, 0xd7, 0x49, 0xbf, 0x1e, 0xbf, 0x7a, 0x1f, 0xb1, 0x54, 0x30, 0x68, 0x7f, 0xcb, 0x61, 0xfd, 0x53, 0x95, 0xde, 0x0c, 0x0d, 0x7e, 0x90, 0x78, 0xf2, 0x1d, 0xec, 0x99, 0x38, 0xab, 0xe3,
0xd5, 0x8b, 0x03, 0x0c, 0x39, 0x83, 0xcd, 0xa0, 0xd6, 0x0e, 0xe6, 0x8e, 0x41, 0x39, 0xfb, 0x56, 0xcf, 0xfd, 0x81, 0x47, 0x67, 0x74, 0x1a, 0x4e, 0x55, 0x4c, 0xf0, 0xca, 0x69, 0x80, 0x7a, 0x89,
0x7b, 0xb2, 0x11, 0x08, 0xfc, 0x51, 0xf2, 0x93, 0xdf, 0xc3, 0xee, 0x08, 0xb5, 0x5a, 0xde, 0xdc, 0x20, 0xdf, 0xd8, 0x35, 0x13, 0x1f, 0xd4, 0x7c, 0xfa, 0x33, 0xac, 0x63, 0xf1, 0xbb, 0xfd, 0xe5,
0x1b, 0x38, 0xd4, 0xa5, 0xb3, 0x40, 0x55, 0x3e, 0x06, 0xa8, 0x67, 0x3e, 0xd7, 0x1b, 0x64, 0xf2, 0xfb, 0x83, 0x29, 0xbb, 0x91, 0x5a, 0x96, 0x74, 0x00, 0xe4, 0x05, 0xf2, 0xed, 0x0f, 0x4c, 0x55,
0xf4, 0x9d, 0x51, 0xec, 0x83, 0xd2, 0xa7, 0xfd, 0x19, 0x0b, 0x78, 0x14, 0xd4, 0x7e, 0x64, 0x40, 0xa6, 0x20, 0x5a, 0xb1, 0x2d, 0xaf, 0xec, 0x0f, 0xcc, 0xd0, 0x86, 0xc1, 0x90, 0xdc, 0x80, 0x1a,
0xb5, 0xbf, 0xe6, 0x60, 0x3d, 0x61, 0x28, 0xe9, 0x00, 0x48, 0xac, 0xf1, 0xcc, 0xcf, 0x4c, 0x15, 0x5f, 0x48, 0x74, 0xb2, 0xfa, 0xbf, 0x5e, 0x08, 0x68, 0x95, 0x8b, 0xff, 0xe4, 0x1e, 0xac, 0xca,
0x71, 0x3f, 0x3e, 0x22, 0x90, 0x6f, 0xcd, 0xcf, 0x4c, 0xaf, 0x0d, 0xfd, 0x21, 0xb9, 0x0d, 0x15, 0x89, 0x47, 0xae, 0xef, 0xdb, 0x9e, 0xaa, 0x49, 0x24, 0x3e, 0xf5, 0x53, 0xa1, 0x31, 0x1a, 0xc3,
0xbe, 0x90, 0xdc, 0xf1, 0x46, 0xe9, 0xdd, 0x42, 0xb0, 0x96, 0xb9, 0xf8, 0x27, 0x0f, 0xa1, 0x21, 0x48, 0xd0, 0x7f, 0x04, 0x2d, 0x5c, 0x96, 0x5c, 0x03, 0x6d, 0x4a, 0x17, 0x83, 0xe1, 0xa5, 0x3c,
0x15, 0x8f, 0x6d, 0xcf, 0x33, 0x1d, 0x55, 0xbe, 0x49, 0x54, 0xf5, 0x4b, 0x41, 0xd1, 0xeb, 0xc3, 0x89, 0x42, 0xbb, 0x62, 0xd4, 0xa7, 0x74, 0xd1, 0x45, 0x99, 0xec, 0x41, 0x0d, 0x95, 0x7c, 0x21,
0x70, 0xa2, 0xfd, 0x09, 0x6a, 0xc1, 0xb2, 0xe4, 0x16, 0xd4, 0x66, 0x74, 0x31, 0x18, 0x5e, 0xc9, 0x77, 0xb6, 0x62, 0x54, 0xa7, 0x74, 0xf1, 0x7a, 0x11, 0x2a, 0x30, 0x2b, 0x55, 0xdf, 0x33, 0xa5,
0xbd, 0xcb, 0xb5, 0x4b, 0x7a, 0x75, 0x46, 0x17, 0xc2, 0x4b, 0xb2, 0x0b, 0x15, 0x24, 0xf2, 0x85, 0x8b, 0xa7, 0xd4, 0xd7, 0x1f, 0x43, 0x55, 0x3a, 0xf9, 0xaf, 0x26, 0x46, 0xfb, 0x62, 0xc2, 0xfe,
0xdc, 0x8b, 0x92, 0x5e, 0x9e, 0xd1, 0xc5, 0xbb, 0x45, 0x40, 0xc0, 0xc4, 0x57, 0x2d, 0xe2, 0x8c, 0x6b, 0x68, 0xc4, 0xfc, 0x26, 0xff, 0x83, 0x5d, 0x19, 0xa1, 0x47, 0x67, 0x5c, 0xec, 0x48, 0x62,
0x2e, 0x5e, 0x52, 0x4f, 0x7b, 0x06, 0x65, 0x69, 0xe4, 0xcf, 0x52, 0x8c, 0xf2, 0xf9, 0x98, 0xfc, 0x42, 0x22, 0x94, 0x2f, 0xe9, 0x8c, 0xe3, 0x92, 0x62, 0x6a, 0xfd, 0x8f, 0x22, 0x54, 0x65, 0x97,
0x6f, 0xa0, 0x1e, 0xb1, 0x9b, 0xfc, 0x12, 0x76, 0xa4, 0x87, 0x0e, 0x75, 0xb9, 0x88, 0x48, 0x4c, 0x44, 0x6e, 0x60, 0xc5, 0xa1, 0xb6, 0x33, 0xb0, 0x2d, 0x49, 0x8e, 0xdd, 0xc6, 0xe7, 0x4f, 0xd7,
0x21, 0x11, 0xc4, 0x37, 0xd4, 0xe5, 0xb8, 0xa4, 0x50, 0xad, 0xfd, 0x27, 0x0f, 0x65, 0xd9, 0x50, 0x6b, 0x82, 0x5c, 0xfa, 0x67, 0x58, 0x64, 0x70, 0x60, 0xc5, 0x6e, 0x7b, 0x31, 0x71, 0xdb, 0x09,
0x92, 0xdb, 0x58, 0x9c, 0xa9, 0x69, 0x0d, 0x4c, 0x43, 0xd6, 0x91, 0x6e, 0xfd, 0xeb, 0xf5, 0x5e, 0x94, 0xb9, 0x3d, 0x65, 0x2a, 0x44, 0x31, 0x46, 0xcf, 0x9d, 0xf9, 0x54, 0x6c, 0x49, 0x59, 0x6e,
0x45, 0xe0, 0x70, 0xff, 0x1c, 0xeb, 0x31, 0x0e, 0x8c, 0x08, 0x04, 0xe5, 0x63, 0x10, 0x44, 0xa0, 0x89, 0x33, 0x9f, 0xe2, 0x96, 0x3c, 0x85, 0xb5, 0x18, 0x57, 0xda, 0x96, 0xba, 0x9c, 0xeb, 0xf1,
0xc8, 0xcd, 0x19, 0x53, 0x2e, 0x8a, 0x31, 0x5a, 0x6e, 0xcd, 0x67, 0x22, 0x24, 0x45, 0x19, 0x12, 0xd3, 0xe8, 0x9f, 0x75, 0xb7, 0x31, 0xa9, 0x3f, 0x7f, 0xba, 0xde, 0xf8, 0x36, 0x60, 0xcf, 0xfe,
0x6b, 0x3e, 0xc3, 0x90, 0xbc, 0x84, 0xd5, 0x48, 0x59, 0x31, 0x0d, 0x75, 0xfe, 0xd7, 0xa2, 0xbb, 0x99, 0xd1, 0x08, 0xa9, 0xb4, 0x6f, 0x91, 0x36, 0x08, 0x66, 0x1d, 0xc8, 0xea, 0x22, 0x19, 0xb7,
0xd1, 0x3f, 0xef, 0x6e, 0x61, 0xaa, 0x7d, 0xbd, 0xde, 0xab, 0xff, 0xce, 0x2f, 0x34, 0xfd, 0x73, 0x2a, 0x92, 0x6e, 0x1d, 0xbf, 0xab, 0xf2, 0x83, 0x4d, 0xe2, 0x35, 0xd0, 0x30, 0x0d, 0x25, 0xa4,
0xbd, 0x1e, 0x54, 0x9d, 0xbe, 0x41, 0xda, 0x20, 0x8a, 0xd0, 0x40, 0x16, 0x62, 0x59, 0x9c, 0xca, 0x26, 0x20, 0x75, 0xfc, 0x20, 0x94, 0x37, 0x61, 0x23, 0xea, 0xee, 0x24, 0xa4, 0x2e, 0x67, 0x89,
0xa2, 0x38, 0xad, 0xe1, 0x77, 0x55, 0xa9, 0xb1, 0x9f, 0xbe, 0x05, 0x35, 0x4c, 0x43, 0xc9, 0x52, 0x3e, 0x0b, 0xe0, 0x55, 0xa8, 0x87, 0xcc, 0xae, 0x09, 0x44, 0x8d, 0x2a, 0x42, 0x7f, 0x01, 0x35,
0x11, 0x2c, 0x55, 0xfc, 0x20, 0x88, 0x07, 0xb0, 0x1e, 0x36, 0xc2, 0x92, 0xa5, 0x2a, 0xb5, 0x84, 0xe5, 0x62, 0x66, 0x93, 0xfa, 0x5f, 0xa8, 0xe0, 0xb9, 0x04, 0xd7, 0x2e, 0xe8, 0x1e, 0xc4, 0x79,
0x9f, 0x05, 0xe3, 0x4d, 0xa8, 0x06, 0x45, 0xb0, 0x26, 0x38, 0x2a, 0x54, 0xd5, 0xbe, 0xd7, 0x50, 0x30, 0x9e, 0x68, 0x55, 0x25, 0x50, 0x3f, 0x86, 0xb5, 0x84, 0x16, 0xe9, 0x97, 0xbb, 0x9c, 0x4e,
0x51, 0x26, 0xa6, 0xf6, 0xf3, 0xf7, 0xa1, 0x84, 0xfb, 0xe2, 0x1f, 0x54, 0xbf, 0xd1, 0x12, 0xfb, 0xd4, 0x81, 0x4a, 0x21, 0x5c, 0xac, 0x18, 0x2d, 0xa6, 0x3f, 0x04, 0x2d, 0xa4, 0x06, 0x3c, 0x05,
0xc1, 0x78, 0xac, 0xab, 0x97, 0x8c, 0xda, 0x09, 0xac, 0xc6, 0xa8, 0x58, 0xe7, 0xb8, 0xcd, 0xe9, 0x6f, 0x3e, 0x1c, 0x04, 0xcf, 0x84, 0x55, 0xa3, 0xea, 0xcd, 0x87, 0xcf, 0x25, 0xc9, 0x7b, 0xee,
0x54, 0x6d, 0xa8, 0x9c, 0x04, 0x8b, 0xe5, 0xc3, 0xc5, 0xb4, 0x27, 0x50, 0x0b, 0xc0, 0x04, 0x77, 0x7b, 0xd5, 0x36, 0x97, 0x0c, 0x29, 0xe8, 0x8f, 0xa0, 0x1e, 0x34, 0xb4, 0xf9, 0xa6, 0x39, 0x59,
0xc1, 0x99, 0x0f, 0x07, 0xfe, 0x8d, 0xaa, 0xa1, 0x97, 0x9d, 0xf9, 0xf0, 0x95, 0xbc, 0x54, 0x39, 0x70, 0xf4, 0xb1, 0x02, 0x1b, 0x27, 0xdd, 0xd3, 0xfe, 0x89, 0xe7, 0x4d, 0x6c, 0x93, 0x8a, 0xa2,
0xf6, 0x27, 0x75, 0xc3, 0x28, 0xe8, 0x72, 0xa2, 0x3d, 0x85, 0xaa, 0xdf, 0xfb, 0x67, 0x8b, 0x66, 0xd6, 0x81, 0xb2, 0x28, 0xdb, 0x19, 0xef, 0xe9, 0x56, 0x56, 0xff, 0x48, 0x8e, 0xa0, 0x22, 0xaa,
0x64, 0x81, 0x76, 0x1f, 0xca, 0x12, 0x10, 0xa3, 0x77, 0xb8, 0x46, 0xca, 0x1d, 0xae, 0xe1, 0xdf, 0x37, 0xc9, 0x7a, 0x56, 0xb7, 0x32, 0xdb, 0x48, 0x5c, 0x44, 0xd6, 0xf7, 0xe5, 0xd7, 0x75, 0x2b,
0xe1, 0x8e, 0xa1, 0xea, 0xc3, 0xfd, 0xb7, 0x64, 0x0a, 0x4a, 0xe6, 0xf8, 0x4b, 0x09, 0xd6, 0x4f, 0xab, 0x97, 0x24, 0x8f, 0x41, 0x8b, 0xea, 0x6e, 0xde, 0x1b, 0xbb, 0x95, 0xdb, 0x55, 0xa2, 0x7d,
0xbb, 0x67, 0xfd, 0x53, 0xc7, 0x99, 0x9a, 0x23, 0x2a, 0xba, 0x8c, 0x0e, 0x14, 0x45, 0x1f, 0x95, 0x54, 0x23, 0xf2, 0x5e, 0xa4, 0xad, 0xdc, 0xf6, 0x8b, 0x3c, 0x80, 0x5a, 0x50, 0xec, 0xb2, 0x5f,
0xf2, 0xc0, 0xd1, 0x4a, 0x6b, 0xe8, 0xc9, 0x31, 0x94, 0x44, 0x3b, 0x45, 0xd2, 0xde, 0x39, 0x5a, 0xc1, 0xad, 0x9c, 0x8e, 0x0f, 0xb7, 0x47, 0x16, 0xf8, 0xac, 0xa7, 0x7a, 0x2b, 0xb3, 0x2d, 0x25,
0xa9, 0x7d, 0x3d, 0x2e, 0x22, 0x1b, 0xae, 0xe5, 0xe7, 0x8e, 0x56, 0x5a, 0x73, 0x4f, 0x9e, 0x41, 0xf7, 0xa0, 0xaa, 0xe8, 0x3a, 0xf3, 0x3d, 0xdb, 0xca, 0xee, 0xdb, 0x30, 0xc8, 0xe8, 0xb9, 0x98,
0x2d, 0x6c, 0x84, 0xb2, 0x1e, 0x3d, 0x5a, 0x99, 0x6d, 0x3e, 0xca, 0x87, 0xc5, 0x2e, 0xeb, 0x89, 0xf7, 0x73, 0x42, 0x2b, 0xb7, 0x7f, 0x26, 0x27, 0x00, 0xb1, 0xb7, 0x5b, 0xee, 0xef, 0x04, 0xad,
0xa0, 0x95, 0xd9, 0x0f, 0x93, 0xc7, 0x50, 0xf1, 0xeb, 0x7c, 0xfa, 0xb3, 0x44, 0x2b, 0xa3, 0x05, 0xfc, 0xbe, 0x98, 0x60, 0x3a, 0x86, 0x6f, 0x9d, 0xec, 0xf7, 0x7b, 0x2b, 0xaf, 0x55, 0x1d, 0x56,
0xc7, 0xf0, 0xc8, 0x8e, 0x2b, 0xed, 0xed, 0xa4, 0x95, 0x7a, 0x4f, 0x20, 0x0f, 0xa1, 0xac, 0xca, 0xc5, 0x6f, 0x3c, 0x77, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x58, 0xa7, 0xec, 0x0e, 0x5f, 0x12,
0x48, 0xea, 0x03, 0x43, 0x2b, 0xbd, 0x91, 0x46, 0x27, 0xc3, 0xfb, 0x7b, 0xd6, 0xfb, 0x4e, 0x2b, 0x00, 0x00,
0xf3, 0x42, 0x43, 0x4e, 0x01, 0x22, 0x97, 0xe9, 0xcc, 0x87, 0x9b, 0x56, 0xf6, 0x45, 0x85, 0x60,
0xd2, 0x07, 0x97, 0xcf, 0xf4, 0x07, 0x95, 0x56, 0xd6, 0xdd, 0x61, 0x58, 0x16, 0x8f, 0x6e, 0x0f,
0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x54, 0x68, 0xd8, 0x0b, 0xbf, 0x13, 0x00, 0x00,
} }

View File

@ -4,8 +4,11 @@ package types;
// For more information on gogo.proto, see: // For more information on gogo.proto, see:
// https://github.com/gogo/protobuf/blob/master/extensions.md // https://github.com/gogo/protobuf/blob/master/extensions.md
import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "github.com/tendermint/tmlibs/common/types.proto";
// This file is copied from http://github.com/tendermint/abci // This file is copied from http://github.com/tendermint/abci
// NOTE: When using custom types, mind the warnings.
// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues
//---------------------------------------- //----------------------------------------
// Request types // Request types
@ -124,9 +127,9 @@ message ResponseInitChain {
message ResponseQuery { message ResponseQuery {
uint32 code = 1; uint32 code = 1;
int64 index = 2; int64 index = 2;
bytes key = 3 [(gogoproto.customtype) = "github.com/tendermint/go-wire/data.Bytes", (gogoproto.nullable) = false]; bytes key = 3;
bytes value = 4 [(gogoproto.customtype) = "github.com/tendermint/go-wire/data.Bytes", (gogoproto.nullable) = false]; bytes value = 4;
bytes proof = 5 [(gogoproto.customtype) = "github.com/tendermint/go-wire/data.Bytes", (gogoproto.nullable) = false]; bytes proof = 5;
int64 height = 6; int64 height = 6;
string log = 7; string log = 7;
} }
@ -136,17 +139,17 @@ message ResponseBeginBlock {
message ResponseCheckTx { message ResponseCheckTx {
uint32 code = 1; uint32 code = 1;
bytes data = 2 [(gogoproto.customtype) = "github.com/tendermint/go-wire/data.Bytes", (gogoproto.nullable) = false]; bytes data = 2;
string log = 3; string log = 3;
int64 gas = 4; int64 gas = 4;
KI64Pair fee = 5 [(gogoproto.nullable) = false]; common.KI64Pair fee = 5 [(gogoproto.nullable) = false];
} }
message ResponseDeliverTx { message ResponseDeliverTx {
uint32 code = 1; uint32 code = 1;
bytes data = 2 [(gogoproto.customtype) = "github.com/tendermint/go-wire/data.Bytes", (gogoproto.nullable) = false]; bytes data = 2;
string log = 3; string log = 3;
repeated KVPair tags = 4 [(gogoproto.nullable) = false]; repeated common.KVPair tags = 4 [(gogoproto.nullable) = false];
} }
message ResponseEndBlock { message ResponseEndBlock {
@ -156,7 +159,7 @@ message ResponseEndBlock {
message ResponseCommit { message ResponseCommit {
uint32 code = 1; uint32 code = 1;
bytes data = 2 [(gogoproto.customtype) = "github.com/tendermint/go-wire/data.Bytes", (gogoproto.nullable) = false]; bytes data = 2;
string log = 3; string log = 3;
} }
@ -226,19 +229,6 @@ message Evidence {
int64 height = 2; int64 height = 2;
} }
//----------------------------------------
// Abstract types
message KVPair {
bytes key = 1;
bytes value = 2;
}
message KI64Pair {
bytes key = 1;
int64 value = 2;
}
//---------------------------------------- //----------------------------------------
// Service Definition // Service Definition

View File

@ -3,9 +3,6 @@ package types
import ( import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"github.com/tendermint/go-wire/data"
cmn "github.com/tendermint/tmlibs/common"
) )
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@ -35,12 +32,12 @@ func ValidatorsString(vs Validators) string {
} }
b, err := json.Marshal(s) b, err := json.Marshal(s)
if err != nil { if err != nil {
cmn.PanicSanity(err.Error()) panic(err.Error())
} }
return string(b) return string(b)
} }
type validatorPretty struct { type validatorPretty struct {
PubKey data.Bytes `json:"pub_key"` PubKey []byte `json:"pub_key"`
Power int64 `json:"power"` Power int64 `json:"power"`
} }