Query: LastHeight -> Height :)

This commit is contained in:
Ethan Buchman 2017-02-14 16:53:21 -05:00
parent 2a3f638495
commit 31bdda27ad
6 changed files with 161 additions and 166 deletions

View File

@ -76,14 +76,14 @@ ABCI requests/responses are simple Protobuf messages. Check out the [schema fil
* `Path (string)`: Path of request, like an HTTP GET path. Can be used with or in liue of Data. * `Path (string)`: Path of request, like an HTTP GET path. Can be used with or in liue of Data.
* Apps MUST interpret '/store' as a query by key on the underlying store. The key SHOULD be specified in the Data field. * Apps MUST interpret '/store' as a query by key on the underlying store. The key SHOULD be specified in the Data field.
* Apps SHOULD allow queries over specific types like '/accounts/...' or '/votes/...' * Apps SHOULD allow queries over specific types like '/accounts/...' or '/votes/...'
* `LastHeight (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block). Note that the corresponding Merkle root hash will only be included in the header of the next block (ie. `LastHeight + 1`) * `Height (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block). Note that this is the height of the block containing the application's Merkle root hash, which represents the state as it was after committing the block at Height-1
* `Prove (bool)`: Return Merkle proof with response if possible * `Prove (bool)`: Return Merkle proof with response if possible
* __Returns__: * __Returns__:
* `Code (uint32)`: Response code * `Code (uint32)`: Response code
* `Key ([]byte)`: The key of the matching data * `Key ([]byte)`: The key of the matching data
* `Value ([]byte)`: The value of the matching data * `Value ([]byte)`: The value of the matching data
* `Proof ([]byte)`: Proof for the data, if requested * `Proof ([]byte)`: Proof for the data, if requested
* `LastHeight (uint64)`: The block height from which data was derived. The Merkle root for the proof is included in block `LastHeight + 1` * `Height (uint64)`: The block height from which data was derived. Note that this is the height of the block containing the application's Merkle root hash, which represents the state as it was after committing the block at Height-1
* `Log (string)`: Debug or error message * `Log (string)`: Debug or error message
*Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error (recall height=0 defaults to latest block). Hopefully this will be improved soon(ish) *Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error (recall height=0 defaults to latest block). Hopefully this will be improved soon(ish)

View File

@ -17,13 +17,13 @@ import (
// Structure for data passed to print response. // Structure for data passed to print response.
type response struct { type response struct {
Data []byte Data []byte
Code types.CodeType Code types.CodeType
Key []byte Key []byte
Value []byte Value []byte
Log string Log string
LastHeight string Height string
Proof []byte Proof []byte
} }
// client is a global variable so it can be reused by the console // client is a global variable so it can be reused by the console
@ -299,20 +299,20 @@ func cmdQuery(c *cli.Context) error {
return err return err
} }
resQuery, err := client.QuerySync(types.RequestQuery{ resQuery, err := client.QuerySync(types.RequestQuery{
Data: queryBytes, Data: queryBytes,
Path: "/store", // TOOD expose Path: "/store", // TOOD expose
LastHeight: 0, // TODO expose Height: 0, // TODO expose
//Prove: true, // TODO expose //Prove: true, // TODO expose
}) })
if err != nil { if err != nil {
return err return err
} }
printResponse(c, response{ printResponse(c, response{
Code: resQuery.Code, Code: resQuery.Code,
Key: resQuery.Key, Key: resQuery.Key,
Value: resQuery.Value, Value: resQuery.Value,
Log: resQuery.Log, Log: resQuery.Log,
LastHeight: fmt.Sprintf("%v", resQuery.LastHeight), Height: fmt.Sprintf("%v", resQuery.Height),
//Proof: resQuery.Proof, //Proof: resQuery.Proof,
}) })
return nil return nil
@ -346,8 +346,8 @@ func printResponse(c *cli.Context, rsp response) {
if rsp.Log != "" { if rsp.Log != "" {
fmt.Printf("-> log: %s\n", rsp.Log) fmt.Printf("-> log: %s\n", rsp.Log)
} }
if rsp.LastHeight != "" { if rsp.Height != "" {
fmt.Printf("-> height: %s\n", rsp.LastHeight) fmt.Printf("-> height: %s\n", rsp.Height)
} }
if rsp.Proof != nil { if rsp.Proof != nil {
fmt.Printf("-> proof: %X\n", rsp.Proof) fmt.Printf("-> proof: %X\n", rsp.Proof)

35
glide.lock generated
View File

@ -1,8 +1,8 @@
hash: febff7f2646081f635b5dc2a0a672d9b8e42eb59241269e6658eec916cd2a5a4 hash: 54e49c7cb920a3390f631de12e38226494920bbc5e0c369514df18fe0ab5b693
updated: 2017-01-13T00:24:02.377918976-05:00 updated: 2017-02-14T16:51:55.592202262-05:00
imports: imports:
- name: github.com/btcsuite/btcd - name: github.com/btcsuite/btcd
version: 153dca5c1e4b5d1ea1523592495e5bedfa503391 version: d06c0bb181529331be8f8d9350288c420d9e60e4
subpackages: subpackages:
- btcec - btcec
- name: github.com/go-stack/stack - name: github.com/go-stack/stack
@ -12,13 +12,13 @@ imports:
subpackages: subpackages:
- proto - proto
- name: github.com/golang/snappy - name: github.com/golang/snappy
version: d9eb7a3d35ec988b8585d4a0068e462c27d28380 version: 7db9049039a047d955fe8c19b83c8ff5abd765c7
- name: github.com/jmhodges/levigo - name: github.com/jmhodges/levigo
version: c42d9e0ca023e2198120196f842701bb4c55d7b9 version: c42d9e0ca023e2198120196f842701bb4c55d7b9
- name: github.com/mattn/go-colorable - name: github.com/mattn/go-colorable
version: d228849504861217f796da67fae4f6e347643f15 version: 5411d3eea5978e6cdc258b30de592b60df6aba96
- name: github.com/mattn/go-isatty - name: github.com/mattn/go-isatty
version: 30a891c33c7cde7b02a981314b4228ec99380cca version: 281032e84ae07510239465db46bf442aa44b953a
- name: github.com/stretchr/testify - name: github.com/stretchr/testify
version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0 version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0
subpackages: subpackages:
@ -45,7 +45,7 @@ imports:
- edwards25519 - edwards25519
- extra25519 - extra25519
- name: github.com/tendermint/go-common - name: github.com/tendermint/go-common
version: e289af53b6bf6af28da129d9ef64389a4cf7987f version: 339e135776142939d82bc8e699db0bf391fd938d
- name: github.com/tendermint/go-crypto - name: github.com/tendermint/go-crypto
version: 4b11d62bdb324027ea01554e5767b71174680ba0 version: 4b11d62bdb324027ea01554e5767b71174680ba0
- name: github.com/tendermint/go-db - name: github.com/tendermint/go-db
@ -53,19 +53,19 @@ imports:
- name: github.com/tendermint/go-logger - name: github.com/tendermint/go-logger
version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2 version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2
- name: github.com/tendermint/go-merkle - name: github.com/tendermint/go-merkle
version: 653cb1f631528351ddbc359b994eb0c96f0341cd version: 9f20e80cb188d07860caa70196dd7700659ec4a4
- name: github.com/tendermint/go-process - name: github.com/tendermint/go-process
version: b27edfd189b1a01a0b099f7e9f8263589cf04909 version: b27edfd189b1a01a0b099f7e9f8263589cf04909
- name: github.com/tendermint/go-wire - name: github.com/tendermint/go-wire
version: 2f3b7aafe21c80b19b6ee3210ecb3e3d07c7a471 version: 3216ec9d47bbdf8d4fc27d22169ea86a6688bc15
- name: github.com/tendermint/log15 - name: github.com/tendermint/log15
version: ae0f3d6450da9eac7074b439c8e1c3cabf0d5ce6 version: ae0f3d6450da9eac7074b439c8e1c3cabf0d5ce6
subpackages: subpackages:
- term - term
- name: github.com/urfave/cli - name: github.com/urfave/cli
version: 8ef3805c9de2519805c3f060524b695bba2cd715 version: 347a9884a87374d000eec7e6445a34487c1f4a2b
- name: golang.org/x/crypto - name: golang.org/x/crypto
version: 7c6cc321c680f03b9ef0764448e780704f486b51 version: 453249f01cfeb54c3d549ddb75ff152ca243f9d8
subpackages: subpackages:
- nacl/secretbox - nacl/secretbox
- openpgp/armor - openpgp/armor
@ -74,7 +74,7 @@ imports:
- ripemd160 - ripemd160
- salsa20/salsa - salsa20/salsa
- name: golang.org/x/net - name: golang.org/x/net
version: 60c41d1de8da134c05b7b40154a9a82bf5b7edb9 version: 61557ac0112b576429a0df080e1c2cef5dfbb642
subpackages: subpackages:
- context - context
- http2 - http2
@ -84,18 +84,11 @@ imports:
- lex/httplex - lex/httplex
- trace - trace
- name: golang.org/x/sys - name: golang.org/x/sys
version: d75a52659825e75fff6158388dddc6a5b04f9ba5 version: e24f485414aeafb646f6fca458b0bf869c0880a1
subpackages: subpackages:
- unix - unix
- name: golang.org/x/text
version: 44f4f658a783b0cee41fe0a23b8fc91d9c120558
subpackages:
- secure/bidirule
- transform
- unicode/bidi
- unicode/norm
- name: google.golang.org/grpc - name: google.golang.org/grpc
version: 50955793b0183f9de69bd78e2ec251cf20aab121 version: cbcceb2942a489498cf22b2f918536e819d33f0a
subpackages: subpackages:
- codes - codes
- credentials - credentials

View File

@ -4,10 +4,13 @@ import:
subpackages: subpackages:
- proto - proto
- package: github.com/tendermint/go-common - package: github.com/tendermint/go-common
version: develop
- package: github.com/tendermint/go-crypto - package: github.com/tendermint/go-crypto
version: develop
- package: github.com/tendermint/go-logger - package: github.com/tendermint/go-logger
- package: github.com/tendermint/go-db - package: github.com/tendermint/go-db
- package: github.com/tendermint/go-merkle - package: github.com/tendermint/go-merkle
version: develop
- package: github.com/tendermint/go-process - package: github.com/tendermint/go-process
- package: github.com/tendermint/go-wire - package: github.com/tendermint/go-wire
- package: github.com/urfave/cli - package: github.com/urfave/cli

View File

@ -716,10 +716,10 @@ func (m *RequestCheckTx) GetTx() []byte {
} }
type RequestQuery struct { type RequestQuery struct {
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
LastHeight uint64 `protobuf:"varint,3,opt,name=last_height,json=lastHeight" json:"last_height,omitempty"` Height uint64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"` Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"`
} }
func (m *RequestQuery) Reset() { *m = RequestQuery{} } func (m *RequestQuery) Reset() { *m = RequestQuery{} }
@ -741,9 +741,9 @@ func (m *RequestQuery) GetPath() string {
return "" return ""
} }
func (m *RequestQuery) GetLastHeight() uint64 { func (m *RequestQuery) GetHeight() uint64 {
if m != nil { if m != nil {
return m.LastHeight return m.Height
} }
return 0 return 0
} }
@ -1411,13 +1411,13 @@ func (m *ResponseCheckTx) GetLog() string {
} }
type ResponseQuery struct { type ResponseQuery struct {
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"` Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
Index int64 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"` Index int64 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"` Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
LastHeight uint64 `protobuf:"varint,6,opt,name=last_height,json=lastHeight" json:"last_height,omitempty"` Height uint64 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
Log string `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"` Log string `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"`
} }
func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
@ -1460,9 +1460,9 @@ func (m *ResponseQuery) GetProof() []byte {
return nil return nil
} }
func (m *ResponseQuery) GetLastHeight() uint64 { func (m *ResponseQuery) GetHeight() uint64 {
if m != nil { if m != nil {
return m.LastHeight return m.Height
} }
return 0 return 0
} }
@ -2129,113 +2129,112 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) } func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1723 bytes of a gzipped FileDescriptorProto // 1697 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x5b, 0x6f, 0xe3, 0xc6, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0x1b, 0x47,
0x15, 0x36, 0x75, 0xd7, 0x91, 0x2d, 0x8f, 0x8f, 0x65, 0x5b, 0x56, 0x0b, 0x74, 0xc1, 0x22, 0x8d, 0x12, 0xf6, 0xf0, 0xcd, 0xa6, 0x44, 0xb6, 0x5a, 0x92, 0x4d, 0x73, 0xf7, 0x60, 0xcc, 0xc2, 0x6b,
0x77, 0x9b, 0xee, 0x16, 0x0e, 0x52, 0xac, 0x9b, 0xa2, 0x80, 0xbd, 0xeb, 0xac, 0x85, 0x20, 0xbb, 0x49, 0xeb, 0xb5, 0x17, 0x32, 0x76, 0xb1, 0x5a, 0x2f, 0x02, 0x48, 0xb2, 0x6c, 0x13, 0x86, 0x6d,
0x2e, 0xb3, 0xc9, 0x4b, 0x8b, 0x0a, 0xb4, 0x38, 0x92, 0x58, 0x4b, 0x24, 0x97, 0x1c, 0x3a, 0x72, 0x65, 0xfc, 0xb8, 0x24, 0x08, 0x31, 0xe2, 0x34, 0xc5, 0x89, 0xa8, 0x99, 0xf1, 0x3c, 0x64, 0x29,
0x7f, 0x43, 0xde, 0xfb, 0x13, 0xfa, 0x0b, 0xfa, 0x94, 0xf7, 0x02, 0xbd, 0x5f, 0x7e, 0x51, 0x71, 0xbf, 0x21, 0xf7, 0xfc, 0x84, 0xdc, 0x03, 0xe4, 0x94, 0x7b, 0x80, 0xbc, 0x1f, 0xbf, 0x28, 0x55,
0x66, 0x86, 0x57, 0x53, 0x41, 0x1f, 0xf2, 0x22, 0xf0, 0x5c, 0x67, 0xce, 0xcc, 0x39, 0xdf, 0x39, 0xdd, 0x3d, 0x4f, 0xcd, 0x18, 0x39, 0xf8, 0x42, 0x4c, 0x3d, 0xbb, 0xab, 0xab, 0xea, 0xeb, 0x6a,
0x23, 0xd8, 0x13, 0xf7, 0x01, 0x8f, 0x9e, 0xc9, 0xdf, 0xa7, 0x41, 0xe8, 0x0b, 0x1f, 0x9b, 0x92, 0x92, 0x95, 0xf0, 0xc2, 0xe3, 0xc1, 0x5d, 0xf1, 0x7b, 0xc7, 0xf3, 0xdd, 0xd0, 0x65, 0x4d, 0x41,
0x30, 0xff, 0xdc, 0x80, 0xb6, 0xc5, 0xdf, 0xc5, 0x3c, 0x12, 0x78, 0x02, 0x0d, 0x3e, 0x5d, 0xf8, 0xe8, 0xdf, 0x36, 0x48, 0xdb, 0xe0, 0x6f, 0x22, 0x1e, 0x84, 0x6c, 0x83, 0x34, 0xf8, 0x74, 0xee,
0x43, 0xe3, 0x91, 0x71, 0xd2, 0x3b, 0xc5, 0xa7, 0x4a, 0x5d, 0x4b, 0x2f, 0xa7, 0x0b, 0xff, 0x6a, 0x0e, 0xb5, 0x1b, 0xda, 0x46, 0x6f, 0x9b, 0xdd, 0x91, 0xea, 0x4a, 0x7a, 0x00, 0x92, 0xc7, 0x57,
0xcb, 0x92, 0x1a, 0xf8, 0x63, 0x68, 0xce, 0x96, 0x71, 0xb4, 0x18, 0xd6, 0xa4, 0xea, 0x7e, 0x51, 0x0c, 0xa1, 0xc1, 0xfe, 0x41, 0x9a, 0xb3, 0x45, 0x14, 0xcc, 0x87, 0x35, 0xa1, 0xba, 0x9a, 0x57,
0xf5, 0x13, 0x12, 0x5d, 0x6d, 0x59, 0x4a, 0x87, 0xdc, 0xba, 0xde, 0xcc, 0x1f, 0xd6, 0xab, 0xdc, 0x7d, 0x88, 0x22, 0xd0, 0x95, 0x3a, 0xe8, 0xd6, 0x76, 0x66, 0xee, 0xb0, 0x5e, 0xe6, 0x76, 0x0c,
0x8e, 0xbd, 0x99, 0x74, 0x4b, 0x1a, 0xf8, 0x1c, 0x20, 0xe2, 0x62, 0xe2, 0x07, 0xc2, 0xf5, 0xbd, 0x12, 0x74, 0x8b, 0x1a, 0xec, 0xbf, 0x84, 0x04, 0x3c, 0x9c, 0xb8, 0x5e, 0x68, 0xbb, 0xce, 0xb0,
0x61, 0x43, 0xea, 0x1f, 0x15, 0xf5, 0x3f, 0xe7, 0xe2, 0x8d, 0x14, 0x5f, 0x6d, 0x59, 0xdd, 0x28, 0x21, 0xf4, 0xaf, 0xe5, 0xf5, 0x5f, 0xf0, 0xf0, 0xb9, 0x10, 0x83, 0x51, 0x37, 0x88, 0x09, 0xb4,
0x21, 0xc8, 0xd2, 0xe1, 0x4b, 0xf7, 0x8e, 0x87, 0x13, 0xb1, 0x1e, 0x36, 0xab, 0x2c, 0x5f, 0x2a, 0xb4, 0xf8, 0xc2, 0x3e, 0xe3, 0xfe, 0x24, 0x3c, 0x1f, 0x36, 0xcb, 0x2c, 0x1f, 0x48, 0xf9, 0xcb,
0xf9, 0xdb, 0x35, 0x59, 0x3a, 0x09, 0x81, 0xa7, 0xd0, 0x99, 0x2e, 0xf8, 0xf4, 0x96, 0xec, 0x5a, 0x73, 0xb4, 0xb4, 0x62, 0x82, 0x6d, 0x93, 0xce, 0x74, 0xce, 0xa7, 0x27, 0x68, 0xd7, 0x12, 0x76,
0xd2, 0xee, 0xa0, 0x68, 0xf7, 0x82, 0xa4, 0xd2, 0xaa, 0x3d, 0x55, 0x9f, 0xf8, 0x14, 0x5a, 0x53, 0xeb, 0x79, 0xbb, 0x7d, 0x94, 0x0a, 0xab, 0xf6, 0x54, 0x7e, 0xb2, 0x3b, 0xa4, 0x35, 0x75, 0x4f,
0x7f, 0xb5, 0x72, 0xc5, 0xb0, 0x2d, 0x2d, 0x06, 0x25, 0x0b, 0x29, 0xbb, 0xda, 0xb2, 0xb4, 0x16, 0x4f, 0xed, 0x70, 0xd8, 0x16, 0x16, 0x6b, 0x05, 0x0b, 0x21, 0x03, 0x03, 0xa5, 0x85, 0xc7, 0x05,
0x1d, 0xd7, 0xbb, 0x98, 0x87, 0xf7, 0xc3, 0x4e, 0xd5, 0x71, 0xfd, 0x8a, 0x44, 0x74, 0x5c, 0x52, 0x02, 0xff, 0x62, 0xd8, 0x29, 0x3b, 0xae, 0x0f, 0x51, 0x84, 0xc7, 0x25, 0x74, 0x30, 0x14, 0xdb,
0x87, 0x42, 0x71, 0x3d, 0x57, 0x4c, 0xa6, 0x0b, 0xdb, 0xf5, 0x86, 0xdd, 0xaa, 0x50, 0xc6, 0x9e, 0xb1, 0xc3, 0xc9, 0x74, 0x6e, 0xda, 0xce, 0xb0, 0x5b, 0x16, 0xca, 0x18, 0xe4, 0xfb, 0x28, 0xc6,
0x2b, 0x5e, 0x90, 0x98, 0x42, 0x71, 0x13, 0x02, 0x3f, 0x86, 0xde, 0x0d, 0x9f, 0xbb, 0xde, 0xe4, 0x50, 0xec, 0x98, 0x60, 0xf7, 0x49, 0xef, 0x88, 0x1f, 0xdb, 0xce, 0xe4, 0x68, 0xe1, 0x4e, 0x4f,
0x66, 0xe9, 0x4f, 0x6f, 0x87, 0x20, 0x4d, 0x87, 0x45, 0xd3, 0x0b, 0x52, 0xb8, 0x20, 0xf9, 0xd5, 0x86, 0x44, 0x98, 0x0e, 0xf3, 0xa6, 0x7b, 0xa8, 0xb0, 0x87, 0x72, 0xb0, 0x25, 0x47, 0x09, 0xc5,
0x96, 0x05, 0x37, 0x29, 0x85, 0x1f, 0x41, 0x97, 0x7b, 0x8e, 0x36, 0xed, 0x49, 0xd3, 0xc3, 0x52, 0xfe, 0x4d, 0xba, 0xdc, 0xb1, 0x94, 0x69, 0x4f, 0x98, 0x5e, 0x2d, 0x54, 0x80, 0x63, 0xc5, 0x86,
0x06, 0x78, 0x4e, 0x62, 0xd8, 0xe1, 0xfa, 0xfb, 0xa2, 0x0d, 0xcd, 0x3b, 0x7b, 0x19, 0x73, 0xf3, 0x1d, 0xae, 0xbe, 0xf7, 0xda, 0xa4, 0x79, 0x66, 0x2e, 0x22, 0xae, 0xdf, 0x22, 0xbd, 0x4c, 0xa5,
0x7d, 0xe8, 0xe5, 0x32, 0x05, 0x87, 0xd0, 0x5e, 0xf1, 0x28, 0xb2, 0xe7, 0x5c, 0xa6, 0x53, 0xd7, 0xb0, 0x21, 0x69, 0x9f, 0xf2, 0x20, 0x30, 0x8f, 0xb9, 0x28, 0xa7, 0xae, 0x11, 0x93, 0x7a, 0x9f,
0x4a, 0x48, 0xb3, 0x0f, 0xdb, 0xf9, 0x3c, 0x31, 0x77, 0x52, 0x43, 0xca, 0x05, 0xf3, 0xe7, 0xc0, 0x2c, 0x65, 0xeb, 0x44, 0x5f, 0x4e, 0x0c, 0xb1, 0x16, 0xf4, 0xff, 0x11, 0x5a, 0x4c, 0x35, 0xa3,
0xca, 0x57, 0x8d, 0x0c, 0xea, 0xb7, 0xfc, 0x5e, 0x3b, 0xa2, 0x4f, 0x1c, 0xe8, 0x65, 0x65, 0x02, 0xa4, 0x7e, 0xc2, 0x2f, 0x94, 0x23, 0xfc, 0x64, 0x6b, 0x6a, 0x59, 0x51, 0x80, 0x5d, 0x43, 0xed,
0x76, 0x2d, 0xbd, 0x07, 0x33, 0xb5, 0x4d, 0x2f, 0x1b, 0xfb, 0x50, 0x13, 0x6b, 0x69, 0xba, 0x6d, 0x41, 0x4f, 0x6c, 0x93, 0x64, 0xb3, 0x3e, 0xa9, 0x41, 0x66, 0xd1, 0x74, 0xc9, 0x80, 0x2f, 0xfd,
0xd5, 0xc4, 0xda, 0x7c, 0x04, 0xfd, 0xe2, 0xc5, 0x3e, 0xd0, 0x58, 0xa5, 0x1b, 0x94, 0x37, 0x83, 0x06, 0xe9, 0xe7, 0x13, 0x7b, 0x49, 0xc3, 0x4a, 0x36, 0x28, 0x32, 0xc3, 0x18, 0x69, 0x58, 0x66,
0x08, 0x0d, 0xc7, 0x16, 0xb6, 0xd6, 0x90, 0xdf, 0xc4, 0x0b, 0x6c, 0xb1, 0xd0, 0xcb, 0xcb, 0x6f, 0x68, 0x2a, 0x0d, 0xf1, 0x8d, 0x3c, 0xcf, 0x0c, 0xe7, 0x6a, 0x79, 0xf1, 0xcd, 0xae, 0x92, 0xd6,
0xfc, 0x01, 0xf4, 0x96, 0x76, 0x24, 0x26, 0x0b, 0xee, 0xce, 0x17, 0x42, 0xa6, 0x7b, 0xc3, 0x02, 0x9c, 0xdb, 0xc7, 0xf3, 0x50, 0x54, 0x7a, 0xc3, 0x50, 0x14, 0xee, 0x15, 0x5a, 0xee, 0x8c, 0x8b,
0x62, 0x5d, 0x49, 0x0e, 0x6d, 0x3a, 0x08, 0xfd, 0x3b, 0x2e, 0x33, 0xbb, 0x63, 0x29, 0xc2, 0xdc, 0x82, 0xee, 0x18, 0x92, 0xd0, 0x07, 0x64, 0x39, 0x57, 0x2e, 0xfa, 0x83, 0x64, 0xf3, 0x49, 0x7a,
0x85, 0x9d, 0x42, 0xde, 0x98, 0x2f, 0xd3, 0x28, 0xd2, 0x7b, 0xc6, 0x9f, 0x02, 0xdc, 0xd9, 0x4b, 0xd9, 0xbf, 0x08, 0x81, 0xc8, 0x6c, 0x58, 0xd2, 0xf5, 0x03, 0xd8, 0x40, 0x1d, 0xb2, 0x42, 0x55,
0xd7, 0xb1, 0x85, 0x1f, 0x46, 0x43, 0xe3, 0x51, 0xfd, 0xa4, 0x77, 0xca, 0xf4, 0xf5, 0x7c, 0x99, 0x56, 0x5e, 0xc7, 0x02, 0x23, 0xa3, 0xa3, 0x3f, 0x23, 0x2b, 0x97, 0x32, 0x8d, 0xbb, 0x9d, 0x9b,
0x08, 0xac, 0x9c, 0x8e, 0xf9, 0x1a, 0xf6, 0x1e, 0x5c, 0x39, 0x6d, 0x7b, 0x61, 0x47, 0x8b, 0x24, 0xd0, 0xad, 0x2a, 0x02, 0xfc, 0x66, 0x37, 0x71, 0xb7, 0xa6, 0xc5, 0x7d, 0xd5, 0xc3, 0xcb, 0xca,
0x14, 0xfa, 0xc6, 0xf7, 0xa0, 0xb5, 0xe0, 0xb6, 0xc3, 0x43, 0x5d, 0xcc, 0x3b, 0xda, 0xed, 0x95, 0xed, 0x63, 0xc1, 0x34, 0x94, 0x50, 0xdf, 0x24, 0x83, 0x42, 0xfa, 0x33, 0x71, 0x6a, 0xd9, 0x38,
0x64, 0x5a, 0x5a, 0x68, 0x3e, 0x86, 0xdd, 0x52, 0x1e, 0xe0, 0x21, 0x59, 0xca, 0x58, 0x0d, 0x19, 0xf5, 0xcf, 0x9b, 0xa4, 0x63, 0xf0, 0xc0, 0x73, 0x9d, 0x80, 0x43, 0x15, 0x77, 0xf9, 0xf9, 0x94,
0xab, 0xa6, 0xcc, 0xaf, 0x9b, 0xd0, 0xb1, 0x78, 0x14, 0xf8, 0x5e, 0xc4, 0xf1, 0x39, 0x74, 0xf9, 0xcb, 0x4e, 0xd6, 0x0a, 0x95, 0x28, 0x75, 0x0e, 0x62, 0x39, 0x56, 0x71, 0xa2, 0xcc, 0x36, 0x15,
0x7a, 0xca, 0x55, 0x49, 0x1b, 0xa5, 0x94, 0x54, 0x3a, 0x97, 0x89, 0x9c, 0xd2, 0x39, 0x55, 0xc6, 0x0a, 0x15, 0xa1, 0x45, 0x19, 0x65, 0x61, 0xe8, 0x76, 0x0c, 0x43, 0xf5, 0x42, 0x1b, 0x4a, 0xdd,
0xc7, 0x1a, 0x8e, 0xca, 0x18, 0xa3, 0x8d, 0xf2, 0x78, 0xf4, 0x41, 0x82, 0x47, 0xf5, 0x52, 0x3d, 0x02, 0x0e, 0x6d, 0x2a, 0x1c, 0x6a, 0x94, 0x3a, 0xce, 0x01, 0xd1, 0x4e, 0x0e, 0x88, 0x9a, 0xa5,
0x2a, 0xdd, 0x12, 0x20, 0x3d, 0xd6, 0x80, 0xd4, 0xa8, 0x74, 0x5c, 0x40, 0xa4, 0xb3, 0x02, 0x22, 0xdb, 0xaf, 0x40, 0xa2, 0x9d, 0x1c, 0x12, 0xb5, 0x4a, 0x4d, 0x2b, 0xa0, 0xe8, 0x5e, 0x06, 0x8a,
0x35, 0x2b, 0xb7, 0xbf, 0x01, 0x92, 0xce, 0x0a, 0x90, 0xd4, 0xaa, 0x34, 0xdd, 0x80, 0x49, 0x1f, 0xda, 0x85, 0x0e, 0x94, 0x86, 0x25, 0x58, 0x74, 0x37, 0xc1, 0xa2, 0x4e, 0x01, 0xbd, 0x94, 0x49,
0xe6, 0x30, 0xa9, 0x5d, 0x2a, 0x45, 0x65, 0x58, 0x01, 0x4a, 0xcf, 0x52, 0x50, 0xea, 0x94, 0x60, 0x11, 0x8c, 0x6e, 0xc7, 0x60, 0xd4, 0x2d, 0x3d, 0xb4, 0x02, 0x1a, 0xed, 0xe4, 0xd0, 0x88, 0x94,
0x4c, 0x9b, 0x94, 0x51, 0xe9, 0x83, 0x04, 0x95, 0xba, 0x95, 0x87, 0x56, 0x82, 0xa5, 0xb3, 0x02, 0x86, 0x53, 0x01, 0x47, 0xff, 0xcf, 0xc3, 0x91, 0xc4, 0x94, 0xeb, 0x05, 0xdb, 0x4a, 0x3c, 0xfa,
0x2c, 0x41, 0x65, 0x38, 0x1b, 0x70, 0xe9, 0x17, 0x45, 0x5c, 0x52, 0xe0, 0x72, 0x5c, 0xb2, 0xdd, 0x4f, 0x16, 0x8f, 0x96, 0x0a, 0x28, 0xa8, 0x6a, 0xe1, 0x9d, 0x80, 0xb4, 0x89, 0x9d, 0x50, 0xa8,
0x08, 0x4c, 0x3f, 0xcb, 0x03, 0xd3, 0x76, 0x09, 0x0e, 0x75, 0x2e, 0x7c, 0x2b, 0x32, 0x3d, 0xa6, 0x34, 0xec, 0x45, 0xee, 0xfb, 0xae, 0xaf, 0xb0, 0x44, 0x12, 0xfa, 0x06, 0x76, 0x7c, 0x5a, 0x5f,
0x4a, 0x28, 0x65, 0x1a, 0xd5, 0x22, 0x0f, 0x43, 0x3f, 0xd4, 0xa0, 0xa2, 0x08, 0xf3, 0x84, 0x4a, 0xef, 0x00, 0x2f, 0xd1, 0xb5, 0x99, 0xea, 0xd2, 0xbf, 0xd0, 0x52, 0x5b, 0x2c, 0xa1, 0x1c, 0x5a,
0x3f, 0xcb, 0xaf, 0x6f, 0x41, 0x31, 0x59, 0xb5, 0xb9, 0xec, 0x32, 0xff, 0x60, 0x64, 0xb6, 0x94, 0x74, 0x15, 0x5a, 0x80, 0x3f, 0xc8, 0x70, 0x80, 0xb5, 0x24, 0x01, 0x23, 0x26, 0xd9, 0x16, 0x59,
0x42, 0x05, 0xd8, 0xe8, 0x6a, 0xd8, 0x18, 0x42, 0xfb, 0x8e, 0x87, 0x11, 0xe5, 0x92, 0x42, 0x8e, 0x59, 0x98, 0x41, 0x28, 0xc3, 0x9c, 0xe4, 0xe0, 0x63, 0x80, 0x02, 0x19, 0x9f, 0xc4, 0x91, 0x7f,
0x84, 0xc4, 0x27, 0xb0, 0x27, 0xc1, 0x43, 0x86, 0x59, 0x84, 0x90, 0x5d, 0x12, 0xa8, 0xf8, 0x14, 0x92, 0xd5, 0x8c, 0xae, 0xe9, 0x79, 0x13, 0xd1, 0xd4, 0x0d, 0xd1, 0xd4, 0x34, 0xd1, 0xde, 0xf5,
0x8e, 0xfc, 0x04, 0xf6, 0x73, 0xba, 0x76, 0x10, 0x4c, 0x64, 0x51, 0x37, 0x64, 0x51, 0xb3, 0x54, 0xbc, 0xc7, 0xc0, 0xd7, 0x6f, 0xa6, 0xf1, 0xe7, 0x90, 0x74, 0xe1, 0x1e, 0xc7, 0x48, 0x0a, 0x9f,
0xfb, 0x3c, 0x08, 0xae, 0xec, 0x68, 0x61, 0xbe, 0x97, 0xc5, 0x5f, 0x80, 0xd4, 0xa5, 0x3f, 0x4f, 0xfa, 0x27, 0xa9, 0x5a, 0x0a, 0x9a, 0x7f, 0x23, 0x8d, 0xa9, 0x6b, 0xc9, 0xe8, 0xfb, 0xdb, 0x03,
0x20, 0x75, 0xe9, 0xcf, 0xcd, 0xdf, 0x66, 0x6a, 0x19, 0x7a, 0xfe, 0x10, 0x1a, 0x53, 0xdf, 0x51, 0x75, 0xee, 0xfb, 0xc0, 0x7a, 0x09, 0x5f, 0x86, 0x10, 0x26, 0x91, 0xd6, 0x32, 0xb8, 0xa8, 0xfc,
0xd1, 0xf7, 0x4f, 0x77, 0xf5, 0xb9, 0xbf, 0xf0, 0x1d, 0xfe, 0xf6, 0x3e, 0xe0, 0x96, 0x14, 0xa6, 0xd7, 0x53, 0xff, 0x1f, 0x23, 0x80, 0xe4, 0xaa, 0xf7, 0x7d, 0x7a, 0xff, 0x4a, 0x4b, 0x13, 0x22,
0x91, 0xd6, 0x72, 0x00, 0xa9, 0xfd, 0xd7, 0x33, 0xff, 0xbf, 0x21, 0x00, 0x29, 0x64, 0xef, 0x77, 0xd1, 0xfa, 0x4f, 0x39, 0x87, 0x32, 0xb0, 0x1d, 0x8b, 0x9f, 0x0b, 0xef, 0x75, 0x43, 0x12, 0xf1,
0xe9, 0xfd, 0x1b, 0x23, 0xbb, 0x10, 0x05, 0xdb, 0xff, 0x97, 0xf3, 0x01, 0x34, 0x5d, 0xcf, 0xe1, 0x35, 0x53, 0x17, 0x2b, 0xe6, 0xaf, 0x19, 0x79, 0xc8, 0x92, 0x50, 0x80, 0xee, 0xce, 0x04, 0x30,
0x6b, 0xe9, 0xbd, 0x6e, 0x29, 0x22, 0xe9, 0x37, 0x75, 0xb9, 0x62, 0xb1, 0xdf, 0xa8, 0x43, 0x56, 0x2c, 0x19, 0x92, 0xc8, 0xc0, 0x62, 0x2b, 0x07, 0xff, 0x6a, 0xd3, 0xed, 0x74, 0xd3, 0x1f, 0xe1,
0x84, 0x06, 0x74, 0x7f, 0x26, 0x81, 0x61, 0xdb, 0x52, 0x44, 0xb9, 0x0f, 0xb4, 0x1e, 0xf4, 0x01, 0x15, 0x94, 0xed, 0xce, 0xf7, 0x79, 0x22, 0xab, 0x69, 0x3e, 0x93, 0xbe, 0xd4, 0xd7, 0x08, 0xbb,
0xbd, 0xfb, 0x76, 0xb6, 0xfb, 0x5f, 0x53, 0x53, 0xca, 0x97, 0xe9, 0x77, 0x79, 0x34, 0xfb, 0xd9, 0xdc, 0x70, 0xf2, 0xaa, 0xcd, 0xb7, 0x12, 0xfb, 0x3b, 0x69, 0x5a, 0xf6, 0x6c, 0x16, 0x40, 0xc4,
0xc5, 0xa6, 0x05, 0x6a, 0x0e, 0x00, 0x1f, 0x56, 0x9e, 0x6a, 0xbe, 0xc5, 0x9a, 0xc2, 0x1f, 0x41, 0xe5, 0x97, 0x8d, 0x14, 0xeb, 0x5f, 0xd6, 0x48, 0x4b, 0x5e, 0x15, 0xec, 0x3a, 0xc2, 0x16, 0xac,
0xd3, 0x71, 0x67, 0xb3, 0x68, 0xd8, 0xd8, 0xd0, 0x75, 0x94, 0xd8, 0xfc, 0x63, 0x0d, 0x5a, 0xaa, 0x32, 0xb1, 0xad, 0xb8, 0x5d, 0x04, 0x3d, 0xb6, 0x32, 0x67, 0x52, 0xcb, 0x9d, 0x09, 0x84, 0x12,
0x67, 0xe0, 0x31, 0xe1, 0x97, 0xed, 0x7a, 0x13, 0xd7, 0x49, 0xea, 0x46, 0xd2, 0x63, 0x27, 0xd7, 0xda, 0xa7, 0x5c, 0x55, 0xba, 0xf8, 0x66, 0xd7, 0x48, 0xdb, 0x89, 0x4e, 0x01, 0xfb, 0x02, 0x71,
0x33, 0x6a, 0xf9, 0x9e, 0x41, 0xa1, 0x08, 0x77, 0xc5, 0x75, 0xca, 0xcb, 0x6f, 0x3c, 0x82, 0xb6, 0xda, 0xa0, 0x0c, 0xe4, 0xcb, 0xf3, 0x00, 0x26, 0xb4, 0xe5, 0x4c, 0xdd, 0xc3, 0x22, 0x12, 0x8f,
0x17, 0xaf, 0x26, 0x62, 0x1d, 0xc9, 0x63, 0x6f, 0x58, 0x2d, 0x2f, 0x5e, 0xbd, 0x5d, 0x47, 0x78, 0xfb, 0x6a, 0x6b, 0x62, 0xdf, 0xe3, 0x07, 0x46, 0x2f, 0xe9, 0x00, 0x58, 0x78, 0x83, 0x88, 0x86,
0x0a, 0x3b, 0xb9, 0x02, 0x70, 0x1d, 0x0d, 0xcc, 0x7d, 0xbd, 0x35, 0xb9, 0xef, 0xf1, 0x4b, 0xab, 0x98, 0x48, 0xcc, 0x93, 0x8d, 0xd2, 0x12, 0xe7, 0xd6, 0x47, 0xbe, 0x02, 0x45, 0xbc, 0x07, 0xff,
0x97, 0x96, 0xc2, 0xd8, 0xc1, 0x13, 0x90, 0x95, 0x31, 0x51, 0xe0, 0xa7, 0x2a, 0xa6, 0x25, 0xcf, 0x42, 0xba, 0x78, 0x92, 0x52, 0xa5, 0x2d, 0x54, 0x3a, 0xc8, 0x10, 0xc2, 0x5b, 0x64, 0x90, 0xde,
0xad, 0x4f, 0x7c, 0x8d, 0x8e, 0xd4, 0x10, 0xbf, 0x07, 0x5d, 0x3a, 0x49, 0xa5, 0xd2, 0x96, 0x2a, 0xad, 0x52, 0xa5, 0x23, 0xbd, 0xa4, 0x6c, 0xa1, 0x08, 0x67, 0x90, 0x34, 0x64, 0x57, 0x68, 0xb4,
0x1d, 0x62, 0x48, 0xe1, 0xfb, 0xb0, 0x9b, 0x35, 0x59, 0xa5, 0xd2, 0x51, 0x5e, 0x32, 0xb6, 0x54, 0x4d, 0xd5, 0x87, 0x63, 0xd2, 0x56, 0x5b, 0x2c, 0xbd, 0x87, 0xb7, 0xa0, 0x98, 0x4c, 0x3f, 0x0c,
0x3c, 0x86, 0x4e, 0x5a, 0x99, 0x5d, 0xa9, 0xd1, 0xb6, 0x75, 0x41, 0x8e, 0xa1, 0xad, 0xb7, 0x58, 0xd4, 0x7d, 0x17, 0xc3, 0xf1, 0x21, 0xf0, 0xa0, 0x6d, 0xd5, 0x6d, 0x2c, 0x55, 0xf4, 0x1d, 0xb2,
0xd9, 0x90, 0x9f, 0x40, 0x33, 0xb0, 0x43, 0x11, 0xe9, 0xc6, 0x97, 0xe0, 0xf2, 0xb5, 0x1d, 0xd2, 0x9c, 0xe3, 0x63, 0x25, 0x86, 0x6e, 0x68, 0x2e, 0xd4, 0x4d, 0x2c, 0x89, 0x64, 0x99, 0x5a, 0xba,
0x48, 0xa4, 0xdb, 0xb2, 0x52, 0x31, 0xcf, 0x60, 0xa7, 0xc0, 0xa7, 0x94, 0x14, 0xbe, 0xb0, 0x97, 0x0c, 0x98, 0x76, 0x93, 0x1c, 0x62, 0x5a, 0xbc, 0xe8, 0xe8, 0x89, 0x1a, 0xa9, 0x96, 0x0c, 0x45,
0xba, 0x25, 0x2b, 0x22, 0x5d, 0xa6, 0x96, 0x2d, 0x63, 0x9e, 0x41, 0x37, 0xbd, 0x43, 0xba, 0x96, 0x89, 0xc2, 0x76, 0xdf, 0xaa, 0x91, 0x00, 0xdc, 0x09, 0x62, 0xeb, 0x1b, 0x8d, 0xf4, 0x9e, 0x4a,
0x20, 0xbe, 0xf9, 0x54, 0x0f, 0x59, 0xdb, 0x96, 0xa6, 0x64, 0x86, 0xfb, 0x5f, 0xe9, 0xd9, 0xa0, 0xfc, 0xc3, 0x6a, 0x64, 0x03, 0xd2, 0x7b, 0x16, 0x2d, 0x16, 0x8a, 0x45, 0xaf, 0xb0, 0x0e, 0x69,
0x61, 0x29, 0xe2, 0xc9, 0x37, 0x06, 0xf4, 0x3e, 0x53, 0x40, 0x48, 0xd9, 0x88, 0xbb, 0xd0, 0x7b, 0x20, 0x6c, 0x52, 0x8d, 0x75, 0x49, 0x53, 0xc0, 0x22, 0xad, 0x21, 0x13, 0xf1, 0x90, 0xd6, 0xd9,
0x1d, 0x2f, 0x97, 0x9a, 0xc5, 0xb6, 0xb0, 0x03, 0x0d, 0xc2, 0x4f, 0x66, 0x60, 0x17, 0x9a, 0x12, 0x32, 0xe9, 0x26, 0x00, 0x44, 0x1b, 0x48, 0x26, 0x78, 0x4c, 0x9b, 0x48, 0x26, 0xb8, 0x43, 0x57,
0x1f, 0x59, 0x8d, 0x98, 0x04, 0x8c, 0xac, 0x8e, 0x3b, 0xd0, 0x4d, 0x91, 0x88, 0x35, 0x88, 0x4c, 0x58, 0x8f, 0xb4, 0x15, 0x4c, 0x50, 0x88, 0x83, 0xb4, 0x64, 0xa6, 0xe8, 0x2a, 0xba, 0x16, 0x0d,
0x81, 0x99, 0x35, 0x89, 0x4c, 0x01, 0x88, 0xed, 0x61, 0x0f, 0xda, 0x1a, 0x2f, 0x18, 0x22, 0x40, 0x4e, 0xd7, 0xd0, 0x24, 0x29, 0x6d, 0xba, 0x0e, 0xf3, 0x1b, 0x49, 0x8b, 0x9a, 0x5e, 0x65, 0x4b,
0x4b, 0xdd, 0x14, 0xdb, 0x27, 0xd7, 0xb2, 0xd2, 0xd9, 0x80, 0x4c, 0xd2, 0xd4, 0x66, 0x07, 0xd8, 0xa4, 0x13, 0x97, 0x33, 0xbd, 0xb6, 0xf5, 0x35, 0x4c, 0x25, 0x71, 0x23, 0xb1, 0x16, 0xa9, 0x3d,
0x07, 0xc8, 0x92, 0x9a, 0x1d, 0xe2, 0x36, 0x74, 0x92, 0x74, 0x66, 0x47, 0x4f, 0xfe, 0xd4, 0x84, 0x7f, 0x02, 0x3b, 0x5e, 0x21, 0xcb, 0x63, 0x27, 0xe4, 0xbe, 0x63, 0x2e, 0x0e, 0xf0, 0x06, 0x80,
0x4e, 0x52, 0x48, 0xd8, 0x82, 0xda, 0x9b, 0x4f, 0xd9, 0x16, 0xee, 0xc1, 0xce, 0xd8, 0x13, 0x3c, 0xad, 0x03, 0xeb, 0xc0, 0x81, 0x3e, 0xb3, 0x9d, 0x63, 0xc9, 0xaa, 0xa1, 0xa3, 0x3d, 0xd3, 0x7a,
0xf4, 0xec, 0xe5, 0x25, 0xb5, 0x02, 0x66, 0x10, 0xeb, 0xd2, 0x9b, 0xfa, 0x8e, 0xeb, 0xcd, 0x15, 0xe6, 0x3a, 0x53, 0x0e, 0x61, 0x50, 0xb2, 0xf4, 0xca, 0x31, 0xa3, 0x70, 0xee, 0xfa, 0xf6, 0x67,
0xab, 0x46, 0x8e, 0x2e, 0x6c, 0xe7, 0xb5, 0xef, 0x4d, 0x39, 0xab, 0x23, 0x83, 0xed, 0x2f, 0x3c, 0xdc, 0x82, 0x48, 0xd6, 0xc9, 0xca, 0xd8, 0x09, 0xa2, 0xd9, 0xcc, 0x9e, 0xda, 0xdc, 0x09, 0x1f,
0x3b, 0x16, 0x0b, 0x3f, 0x74, 0x7f, 0xcf, 0x1d, 0xd6, 0xc0, 0x03, 0xd8, 0x1b, 0x7b, 0x51, 0x3c, 0x46, 0x8e, 0x15, 0x40, 0x44, 0x8c, 0xf4, 0x5f, 0x39, 0x27, 0x8e, 0xfb, 0xd6, 0x51, 0x93, 0x13,
0x9b, 0xb9, 0x53, 0x97, 0x7b, 0xe2, 0x93, 0xd8, 0x73, 0x22, 0xd6, 0x44, 0x84, 0xfe, 0x17, 0xde, 0x6d, 0xc1, 0x0d, 0xb0, 0xb6, 0x67, 0x02, 0xc2, 0x46, 0xde, 0xc2, 0x9e, 0x9a, 0x21, 0xdf, 0xb5,
0xad, 0xe7, 0x7f, 0xe5, 0xe9, 0x11, 0x8a, 0xb5, 0x70, 0x08, 0x83, 0x0b, 0x3b, 0xe2, 0x2f, 0xe3, 0x2c, 0x1f, 0xce, 0x8f, 0x72, 0x74, 0x82, 0x92, 0xfc, 0xda, 0xb3, 0xd8, 0x20, 0xe7, 0x9f, 0xf3,
0x60, 0xe9, 0x4e, 0x6d, 0xc1, 0xcf, 0x1d, 0x27, 0xe4, 0x51, 0xc4, 0x38, 0x39, 0x21, 0x49, 0x71, 0x80, 0x1e, 0x43, 0xa9, 0xad, 0x5f, 0x92, 0x88, 0x95, 0xe7, 0xec, 0xaf, 0x64, 0x58, 0x14, 0x3d,
0xed, 0x59, 0x62, 0x50, 0xf0, 0xcf, 0x79, 0xc4, 0xe6, 0x78, 0x0c, 0x07, 0x0f, 0x24, 0x72, 0xe5, 0x32, 0x83, 0x43, 0xdf, 0x86, 0x00, 0x6c, 0xc8, 0x2e, 0x95, 0x52, 0x51, 0xbb, 0x63, 0xc7, 0x8b,
0x05, 0x7e, 0x1f, 0x86, 0x65, 0xd1, 0x2b, 0x3b, 0xba, 0x0e, 0xdd, 0x29, 0x67, 0x2e, 0x0e, 0x80, 0x42, 0xfa, 0x69, 0xbc, 0xbe, 0xe2, 0x3e, 0x8f, 0x42, 0x64, 0x9f, 0x14, 0xd8, 0x87, 0xa2, 0x3e,
0x29, 0xa9, 0xcc, 0xdd, 0xb1, 0x17, 0xc4, 0x82, 0xfd, 0x2e, 0x59, 0x5f, 0x73, 0xdf, 0xc4, 0x82, 0xe8, 0x02, 0x9a, 0x74, 0x35, 0xc3, 0x7e, 0x81, 0xf1, 0xe1, 0xe9, 0x9c, 0xa6, 0xfb, 0x95, 0x02,
0xd8, 0xb7, 0x25, 0xf6, 0xb5, 0xcc, 0x0f, 0xb6, 0xc4, 0x23, 0xd8, 0xcf, 0xb1, 0x3f, 0xa7, 0xf8, 0xfb, 0xd8, 0x31, 0xc3, 0xc8, 0xe7, 0xd4, 0x81, 0x62, 0x63, 0x28, 0x51, 0x47, 0x12, 0x07, 0xee,
0xe8, 0x74, 0x56, 0xd9, 0x7e, 0x95, 0xc0, 0x9d, 0x7b, 0xb6, 0x88, 0x43, 0xce, 0x3c, 0x3c, 0x04, 0xc6, 0x2b, 0x28, 0xbe, 0x5a, 0xc1, 0x2b, 0xb2, 0x17, 0x11, 0x64, 0x96, 0xbe, 0x01, 0x36, 0x7d,
0x24, 0x89, 0x3e, 0x92, 0x24, 0x70, 0x3f, 0x59, 0x41, 0xf3, 0xf5, 0x0a, 0x41, 0x99, 0xbd, 0x8c, 0xe4, 0x9e, 0x29, 0xee, 0x81, 0x13, 0xda, 0xe1, 0x05, 0xfd, 0x4e, 0x83, 0x98, 0x06, 0x29, 0xfb,
0xe7, 0xae, 0xc7, 0xde, 0xe1, 0x01, 0xb0, 0x57, 0xfe, 0x9d, 0xe6, 0x5e, 0x7a, 0xc2, 0x15, 0xf7, 0x91, 0xef, 0x46, 0x1e, 0xfd, 0x5e, 0x83, 0x5d, 0xb2, 0x94, 0x7b, 0xe8, 0xbb, 0x9e, 0x1b, 0x98,
0xec, 0x2f, 0x06, 0x0e, 0x60, 0x37, 0x63, 0xbf, 0x0a, 0xfd, 0x38, 0x60, 0x7f, 0x35, 0xf0, 0x08, 0x0b, 0xfa, 0x83, 0x06, 0x7b, 0x59, 0x01, 0x41, 0x92, 0x05, 0x69, 0xf0, 0x63, 0x6c, 0x90, 0xf0,
0x30, 0xe3, 0x5e, 0x87, 0x7e, 0xe0, 0x47, 0xf6, 0x92, 0xfd, 0xcd, 0xc0, 0x43, 0xd8, 0x7b, 0xe5, 0x9f, 0xf2, 0xd3, 0x23, 0xee, 0xd3, 0x9f, 0x34, 0x38, 0xec, 0xb5, 0xac, 0x20, 0xf1, 0xf5, 0xb3,
0xdf, 0xa5, 0xb7, 0xa0, 0x0c, 0xfe, 0x9e, 0x18, 0xa4, 0xfc, 0xcf, 0xf8, 0xea, 0x86, 0x87, 0xec, 0xa6, 0x76, 0x94, 0x88, 0x5e, 0xbb, 0x21, 0xa7, 0xbf, 0xc4, 0x6c, 0x75, 0x0e, 0xca, 0xd1, 0xaf,
0x1f, 0x06, 0x1e, 0xc3, 0x20, 0x2f, 0x48, 0x7d, 0xfd, 0xd3, 0xd0, 0x3b, 0x4a, 0x45, 0x5f, 0xfa, 0x1a, 0x5b, 0x25, 0xfd, 0x94, 0x2d, 0x74, 0x7f, 0xd3, 0xd8, 0x88, 0xac, 0xe7, 0x98, 0x90, 0xff,
0x82, 0xb3, 0x7f, 0x25, 0x6c, 0x7d, 0x0e, 0xda, 0xd1, 0xbf, 0x0d, 0xdc, 0x87, 0x7e, 0xc6, 0x96, 0x43, 0x6c, 0x39, 0xfa, 0xbb, 0xb6, 0x0d, 0xd3, 0xf4, 0x60, 0x77, 0x6f, 0x7f, 0x0c, 0xd7, 0xb9,
0xba, 0xff, 0x31, 0x70, 0x04, 0x07, 0x05, 0xa6, 0xeb, 0xcd, 0xaf, 0xa9, 0xe4, 0xd8, 0x7f, 0x8d, 0x58, 0x00, 0x6f, 0xef, 0xbb, 0xb2, 0xd1, 0x58, 0xc9, 0xd3, 0x7c, 0x54, 0x36, 0x28, 0x03, 0x74,
0xd3, 0xaf, 0x9b, 0xb0, 0x7b, 0x7e, 0xf1, 0x62, 0x7c, 0x1e, 0xa8, 0x05, 0xa8, 0x8d, 0x3f, 0x53, 0xca, 0x7e, 0x64, 0x65, 0x2f, 0xf4, 0x51, 0xe9, 0xbc, 0x8c, 0x8b, 0xc8, 0x41, 0xe6, 0xf2, 0x43,
0x85, 0x86, 0x15, 0x8f, 0xf5, 0x51, 0xd5, 0xc4, 0x8c, 0xa7, 0xba, 0x1e, 0xb1, 0xea, 0xcd, 0x3e, 0x7d, 0x54, 0x36, 0x34, 0xb3, 0x0f, 0x32, 0xfd, 0xcd, 0xaa, 0x9e, 0xeb, 0xa3, 0xca, 0xf1, 0x19,
0xaa, 0x1c, 0x9c, 0x69, 0x11, 0x35, 0xd1, 0x3c, 0x7c, 0xba, 0x8f, 0xaa, 0xa6, 0x67, 0xfc, 0x65, 0xed, 0xd3, 0xc9, 0xa3, 0xea, 0xd1, 0x3e, 0xaa, 0x9c, 0xa1, 0xe1, 0xa9, 0x11, 0x43, 0x06, 0x2b,
0xae, 0xbe, 0x71, 0xd3, 0x03, 0x7e, 0xb4, 0x71, 0x8e, 0x26, 0xfb, 0x6c, 0x04, 0xd9, 0xf4, 0x8c, 0x7f, 0xba, 0x8f, 0x2a, 0xc6, 0x68, 0x3c, 0x1e, 0x39, 0x34, 0x94, 0xbd, 0xc8, 0x47, 0xa5, 0x93,
0x1f, 0x6d, 0x1c, 0xa6, 0xf1, 0x79, 0x0a, 0x19, 0x58, 0xfd, 0x98, 0x1f, 0x6d, 0x98, 0xa7, 0xe9, 0x31, 0xbc, 0x93, 0x15, 0x26, 0xb1, 0xd2, 0x57, 0xff, 0xa8, 0x7c, 0xfe, 0xc6, 0x20, 0xd3, 0x67,
0x78, 0xd4, 0xf4, 0x50, 0xf5, 0x46, 0x1f, 0x55, 0x8e, 0xc8, 0xf8, 0x51, 0x82, 0x49, 0x58, 0xf9, 0x5d, 0xd5, 0x73, 0x7e, 0x54, 0x39, 0x59, 0xb3, 0xdd, 0x2c, 0xc8, 0xb1, 0xca, 0x47, 0xfd, 0xa8,
0x3f, 0xc0, 0xa8, 0x7a, 0x10, 0xa7, 0x20, 0xb3, 0xf7, 0xdd, 0xa6, 0x07, 0xfe, 0x68, 0xe3, 0x88, 0x7a, 0xbe, 0x66, 0xf7, 0x53, 0x5c, 0x64, 0x15, 0x4f, 0xfb, 0x51, 0xd5, 0x88, 0x7d, 0xd4, 0x12,
0x8d, 0xe7, 0x79, 0x90, 0xc3, 0x8d, 0xcf, 0xfc, 0xd1, 0xe6, 0x41, 0x1b, 0x3f, 0xce, 0x70, 0x11, 0xff, 0x1a, 0xdd, 0xfb, 0x23, 0x00, 0x00, 0xff, 0xff, 0x73, 0x34, 0x90, 0x2d, 0x4a, 0x12, 0x00,
0x37, 0x3c, 0xf6, 0x47, 0x9b, 0x66, 0xed, 0x9b, 0x96, 0xfc, 0x1f, 0xe9, 0xc3, 0xff, 0x05, 0x00, 0x00,
0x00, 0xff, 0xff, 0x3a, 0x61, 0xc1, 0xbf, 0x5c, 0x12, 0x00, 0x00,
} }

View File

@ -115,7 +115,7 @@ message RequestCheckTx{
message RequestQuery{ message RequestQuery{
bytes data = 1; bytes data = 1;
string path = 2; string path = 2;
uint64 last_height = 3; uint64 height = 3;
bool prove = 4; bool prove = 4;
} }
@ -196,7 +196,7 @@ message ResponseQuery{
bytes key = 3; bytes key = 3;
bytes value = 4; bytes value = 4;
bytes proof = 5; bytes proof = 5;
uint64 last_height = 6; uint64 height = 6;
string log = 7; string log = 7;
} }