OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / google.golang.org / genproto / googleapis / datastore / v1 / datastore.pb.go
diff --git a/vendor/google.golang.org/genproto/googleapis/datastore/v1/datastore.pb.go b/vendor/google.golang.org/genproto/googleapis/datastore/v1/datastore.pb.go
new file mode 100644 (file)
index 0000000..1bf5667
--- /dev/null
@@ -0,0 +1,1596 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/datastore/v1/datastore.proto
+
+/*
+Package datastore is a generated protocol buffer package.
+
+It is generated from these files:
+       google/datastore/v1/datastore.proto
+       google/datastore/v1/entity.proto
+       google/datastore/v1/query.proto
+
+It has these top-level messages:
+       LookupRequest
+       LookupResponse
+       RunQueryRequest
+       RunQueryResponse
+       BeginTransactionRequest
+       BeginTransactionResponse
+       RollbackRequest
+       RollbackResponse
+       CommitRequest
+       CommitResponse
+       AllocateIdsRequest
+       AllocateIdsResponse
+       Mutation
+       MutationResult
+       ReadOptions
+       TransactionOptions
+       PartitionId
+       Key
+       ArrayValue
+       Value
+       Entity
+       EntityResult
+       Query
+       KindExpression
+       PropertyReference
+       Projection
+       PropertyOrder
+       Filter
+       CompositeFilter
+       PropertyFilter
+       GqlQuery
+       GqlQueryParameter
+       QueryResultBatch
+*/
+package datastore
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import _ "google.golang.org/genproto/googleapis/api/annotations"
+
+import (
+       context "golang.org/x/net/context"
+       grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// The modes available for commits.
+type CommitRequest_Mode int32
+
+const (
+       // Unspecified. This value must not be used.
+       CommitRequest_MODE_UNSPECIFIED CommitRequest_Mode = 0
+       // Transactional: The mutations are either all applied, or none are applied.
+       // Learn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).
+       CommitRequest_TRANSACTIONAL CommitRequest_Mode = 1
+       // Non-transactional: The mutations may not apply as all or none.
+       CommitRequest_NON_TRANSACTIONAL CommitRequest_Mode = 2
+)
+
+var CommitRequest_Mode_name = map[int32]string{
+       0: "MODE_UNSPECIFIED",
+       1: "TRANSACTIONAL",
+       2: "NON_TRANSACTIONAL",
+}
+var CommitRequest_Mode_value = map[string]int32{
+       "MODE_UNSPECIFIED":  0,
+       "TRANSACTIONAL":     1,
+       "NON_TRANSACTIONAL": 2,
+}
+
+func (x CommitRequest_Mode) String() string {
+       return proto.EnumName(CommitRequest_Mode_name, int32(x))
+}
+func (CommitRequest_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} }
+
+// The possible values for read consistencies.
+type ReadOptions_ReadConsistency int32
+
+const (
+       // Unspecified. This value must not be used.
+       ReadOptions_READ_CONSISTENCY_UNSPECIFIED ReadOptions_ReadConsistency = 0
+       // Strong consistency.
+       ReadOptions_STRONG ReadOptions_ReadConsistency = 1
+       // Eventual consistency.
+       ReadOptions_EVENTUAL ReadOptions_ReadConsistency = 2
+)
+
+var ReadOptions_ReadConsistency_name = map[int32]string{
+       0: "READ_CONSISTENCY_UNSPECIFIED",
+       1: "STRONG",
+       2: "EVENTUAL",
+}
+var ReadOptions_ReadConsistency_value = map[string]int32{
+       "READ_CONSISTENCY_UNSPECIFIED": 0,
+       "STRONG":                       1,
+       "EVENTUAL":                     2,
+}
+
+func (x ReadOptions_ReadConsistency) String() string {
+       return proto.EnumName(ReadOptions_ReadConsistency_name, int32(x))
+}
+func (ReadOptions_ReadConsistency) EnumDescriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{14, 0}
+}
+
+// The request for [Datastore.Lookup][google.datastore.v1.Datastore.Lookup].
+type LookupRequest struct {
+       // The ID of the project against which to make the request.
+       ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+       // The options for this lookup request.
+       ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions" json:"read_options,omitempty"`
+       // Keys of entities to look up.
+       Keys []*Key `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"`
+}
+
+func (m *LookupRequest) Reset()                    { *m = LookupRequest{} }
+func (m *LookupRequest) String() string            { return proto.CompactTextString(m) }
+func (*LookupRequest) ProtoMessage()               {}
+func (*LookupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+
+func (m *LookupRequest) GetProjectId() string {
+       if m != nil {
+               return m.ProjectId
+       }
+       return ""
+}
+
+func (m *LookupRequest) GetReadOptions() *ReadOptions {
+       if m != nil {
+               return m.ReadOptions
+       }
+       return nil
+}
+
+func (m *LookupRequest) GetKeys() []*Key {
+       if m != nil {
+               return m.Keys
+       }
+       return nil
+}
+
+// The response for [Datastore.Lookup][google.datastore.v1.Datastore.Lookup].
+type LookupResponse struct {
+       // Entities found as `ResultType.FULL` entities. The order of results in this
+       // field is undefined and has no relation to the order of the keys in the
+       // input.
+       Found []*EntityResult `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"`
+       // Entities not found as `ResultType.KEY_ONLY` entities. The order of results
+       // in this field is undefined and has no relation to the order of the keys
+       // in the input.
+       Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing" json:"missing,omitempty"`
+       // A list of keys that were not looked up due to resource constraints. The
+       // order of results in this field is undefined and has no relation to the
+       // order of the keys in the input.
+       Deferred []*Key `protobuf:"bytes,3,rep,name=deferred" json:"deferred,omitempty"`
+}
+
+func (m *LookupResponse) Reset()                    { *m = LookupResponse{} }
+func (m *LookupResponse) String() string            { return proto.CompactTextString(m) }
+func (*LookupResponse) ProtoMessage()               {}
+func (*LookupResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+
+func (m *LookupResponse) GetFound() []*EntityResult {
+       if m != nil {
+               return m.Found
+       }
+       return nil
+}
+
+func (m *LookupResponse) GetMissing() []*EntityResult {
+       if m != nil {
+               return m.Missing
+       }
+       return nil
+}
+
+func (m *LookupResponse) GetDeferred() []*Key {
+       if m != nil {
+               return m.Deferred
+       }
+       return nil
+}
+
+// The request for [Datastore.RunQuery][google.datastore.v1.Datastore.RunQuery].
+type RunQueryRequest struct {
+       // The ID of the project against which to make the request.
+       ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+       // Entities are partitioned into subsets, identified by a partition ID.
+       // Queries are scoped to a single partition.
+       // This partition ID is normalized with the standard default context
+       // partition ID.
+       PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+       // The options for this query.
+       ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions" json:"read_options,omitempty"`
+       // The type of query.
+       //
+       // Types that are valid to be assigned to QueryType:
+       //      *RunQueryRequest_Query
+       //      *RunQueryRequest_GqlQuery
+       QueryType isRunQueryRequest_QueryType `protobuf_oneof:"query_type"`
+}
+
+func (m *RunQueryRequest) Reset()                    { *m = RunQueryRequest{} }
+func (m *RunQueryRequest) String() string            { return proto.CompactTextString(m) }
+func (*RunQueryRequest) ProtoMessage()               {}
+func (*RunQueryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+
+type isRunQueryRequest_QueryType interface {
+       isRunQueryRequest_QueryType()
+}
+
+type RunQueryRequest_Query struct {
+       Query *Query `protobuf:"bytes,3,opt,name=query,oneof"`
+}
+type RunQueryRequest_GqlQuery struct {
+       GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query,json=gqlQuery,oneof"`
+}
+
+func (*RunQueryRequest_Query) isRunQueryRequest_QueryType()    {}
+func (*RunQueryRequest_GqlQuery) isRunQueryRequest_QueryType() {}
+
+func (m *RunQueryRequest) GetQueryType() isRunQueryRequest_QueryType {
+       if m != nil {
+               return m.QueryType
+       }
+       return nil
+}
+
+func (m *RunQueryRequest) GetProjectId() string {
+       if m != nil {
+               return m.ProjectId
+       }
+       return ""
+}
+
+func (m *RunQueryRequest) GetPartitionId() *PartitionId {
+       if m != nil {
+               return m.PartitionId
+       }
+       return nil
+}
+
+func (m *RunQueryRequest) GetReadOptions() *ReadOptions {
+       if m != nil {
+               return m.ReadOptions
+       }
+       return nil
+}
+
+func (m *RunQueryRequest) GetQuery() *Query {
+       if x, ok := m.GetQueryType().(*RunQueryRequest_Query); ok {
+               return x.Query
+       }
+       return nil
+}
+
+func (m *RunQueryRequest) GetGqlQuery() *GqlQuery {
+       if x, ok := m.GetQueryType().(*RunQueryRequest_GqlQuery); ok {
+               return x.GqlQuery
+       }
+       return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*RunQueryRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+       return _RunQueryRequest_OneofMarshaler, _RunQueryRequest_OneofUnmarshaler, _RunQueryRequest_OneofSizer, []interface{}{
+               (*RunQueryRequest_Query)(nil),
+               (*RunQueryRequest_GqlQuery)(nil),
+       }
+}
+
+func _RunQueryRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+       m := msg.(*RunQueryRequest)
+       // query_type
+       switch x := m.QueryType.(type) {
+       case *RunQueryRequest_Query:
+               b.EncodeVarint(3<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.Query); err != nil {
+                       return err
+               }
+       case *RunQueryRequest_GqlQuery:
+               b.EncodeVarint(7<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.GqlQuery); err != nil {
+                       return err
+               }
+       case nil:
+       default:
+               return fmt.Errorf("RunQueryRequest.QueryType has unexpected type %T", x)
+       }
+       return nil
+}
+
+func _RunQueryRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+       m := msg.(*RunQueryRequest)
+       switch tag {
+       case 3: // query_type.query
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(Query)
+               err := b.DecodeMessage(msg)
+               m.QueryType = &RunQueryRequest_Query{msg}
+               return true, err
+       case 7: // query_type.gql_query
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(GqlQuery)
+               err := b.DecodeMessage(msg)
+               m.QueryType = &RunQueryRequest_GqlQuery{msg}
+               return true, err
+       default:
+               return false, nil
+       }
+}
+
+func _RunQueryRequest_OneofSizer(msg proto.Message) (n int) {
+       m := msg.(*RunQueryRequest)
+       // query_type
+       switch x := m.QueryType.(type) {
+       case *RunQueryRequest_Query:
+               s := proto.Size(x.Query)
+               n += proto.SizeVarint(3<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case *RunQueryRequest_GqlQuery:
+               s := proto.Size(x.GqlQuery)
+               n += proto.SizeVarint(7<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case nil:
+       default:
+               panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+       }
+       return n
+}
+
+// The response for [Datastore.RunQuery][google.datastore.v1.Datastore.RunQuery].
+type RunQueryResponse struct {
+       // A batch of query results (always present).
+       Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch" json:"batch,omitempty"`
+       // The parsed form of the `GqlQuery` from the request, if it was set.
+       Query *Query `protobuf:"bytes,2,opt,name=query" json:"query,omitempty"`
+}
+
+func (m *RunQueryResponse) Reset()                    { *m = RunQueryResponse{} }
+func (m *RunQueryResponse) String() string            { return proto.CompactTextString(m) }
+func (*RunQueryResponse) ProtoMessage()               {}
+func (*RunQueryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+
+func (m *RunQueryResponse) GetBatch() *QueryResultBatch {
+       if m != nil {
+               return m.Batch
+       }
+       return nil
+}
+
+func (m *RunQueryResponse) GetQuery() *Query {
+       if m != nil {
+               return m.Query
+       }
+       return nil
+}
+
+// The request for [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction].
+type BeginTransactionRequest struct {
+       // The ID of the project against which to make the request.
+       ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+       // Options for a new transaction.
+       TransactionOptions *TransactionOptions `protobuf:"bytes,10,opt,name=transaction_options,json=transactionOptions" json:"transaction_options,omitempty"`
+}
+
+func (m *BeginTransactionRequest) Reset()                    { *m = BeginTransactionRequest{} }
+func (m *BeginTransactionRequest) String() string            { return proto.CompactTextString(m) }
+func (*BeginTransactionRequest) ProtoMessage()               {}
+func (*BeginTransactionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
+
+func (m *BeginTransactionRequest) GetProjectId() string {
+       if m != nil {
+               return m.ProjectId
+       }
+       return ""
+}
+
+func (m *BeginTransactionRequest) GetTransactionOptions() *TransactionOptions {
+       if m != nil {
+               return m.TransactionOptions
+       }
+       return nil
+}
+
+// The response for [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction].
+type BeginTransactionResponse struct {
+       // The transaction identifier (always present).
+       Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"`
+}
+
+func (m *BeginTransactionResponse) Reset()                    { *m = BeginTransactionResponse{} }
+func (m *BeginTransactionResponse) String() string            { return proto.CompactTextString(m) }
+func (*BeginTransactionResponse) ProtoMessage()               {}
+func (*BeginTransactionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
+
+func (m *BeginTransactionResponse) GetTransaction() []byte {
+       if m != nil {
+               return m.Transaction
+       }
+       return nil
+}
+
+// The request for [Datastore.Rollback][google.datastore.v1.Datastore.Rollback].
+type RollbackRequest struct {
+       // The ID of the project against which to make the request.
+       ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+       // The transaction identifier, returned by a call to
+       // [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction].
+       Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"`
+}
+
+func (m *RollbackRequest) Reset()                    { *m = RollbackRequest{} }
+func (m *RollbackRequest) String() string            { return proto.CompactTextString(m) }
+func (*RollbackRequest) ProtoMessage()               {}
+func (*RollbackRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
+
+func (m *RollbackRequest) GetProjectId() string {
+       if m != nil {
+               return m.ProjectId
+       }
+       return ""
+}
+
+func (m *RollbackRequest) GetTransaction() []byte {
+       if m != nil {
+               return m.Transaction
+       }
+       return nil
+}
+
+// The response for [Datastore.Rollback][google.datastore.v1.Datastore.Rollback].
+// (an empty message).
+type RollbackResponse struct {
+}
+
+func (m *RollbackResponse) Reset()                    { *m = RollbackResponse{} }
+func (m *RollbackResponse) String() string            { return proto.CompactTextString(m) }
+func (*RollbackResponse) ProtoMessage()               {}
+func (*RollbackResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
+
+// The request for [Datastore.Commit][google.datastore.v1.Datastore.Commit].
+type CommitRequest struct {
+       // The ID of the project against which to make the request.
+       ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+       // The type of commit to perform. Defaults to `TRANSACTIONAL`.
+       Mode CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,enum=google.datastore.v1.CommitRequest_Mode" json:"mode,omitempty"`
+       // Must be set when mode is `TRANSACTIONAL`.
+       //
+       // Types that are valid to be assigned to TransactionSelector:
+       //      *CommitRequest_Transaction
+       TransactionSelector isCommitRequest_TransactionSelector `protobuf_oneof:"transaction_selector"`
+       // The mutations to perform.
+       //
+       // When mode is `TRANSACTIONAL`, mutations affecting a single entity are
+       // applied in order. The following sequences of mutations affecting a single
+       // entity are not permitted in a single `Commit` request:
+       //
+       // - `insert` followed by `insert`
+       // - `update` followed by `insert`
+       // - `upsert` followed by `insert`
+       // - `delete` followed by `update`
+       //
+       // When mode is `NON_TRANSACTIONAL`, no two mutations may affect a single
+       // entity.
+       Mutations []*Mutation `protobuf:"bytes,6,rep,name=mutations" json:"mutations,omitempty"`
+}
+
+func (m *CommitRequest) Reset()                    { *m = CommitRequest{} }
+func (m *CommitRequest) String() string            { return proto.CompactTextString(m) }
+func (*CommitRequest) ProtoMessage()               {}
+func (*CommitRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
+
+type isCommitRequest_TransactionSelector interface {
+       isCommitRequest_TransactionSelector()
+}
+
+type CommitRequest_Transaction struct {
+       Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3,oneof"`
+}
+
+func (*CommitRequest_Transaction) isCommitRequest_TransactionSelector() {}
+
+func (m *CommitRequest) GetTransactionSelector() isCommitRequest_TransactionSelector {
+       if m != nil {
+               return m.TransactionSelector
+       }
+       return nil
+}
+
+func (m *CommitRequest) GetProjectId() string {
+       if m != nil {
+               return m.ProjectId
+       }
+       return ""
+}
+
+func (m *CommitRequest) GetMode() CommitRequest_Mode {
+       if m != nil {
+               return m.Mode
+       }
+       return CommitRequest_MODE_UNSPECIFIED
+}
+
+func (m *CommitRequest) GetTransaction() []byte {
+       if x, ok := m.GetTransactionSelector().(*CommitRequest_Transaction); ok {
+               return x.Transaction
+       }
+       return nil
+}
+
+func (m *CommitRequest) GetMutations() []*Mutation {
+       if m != nil {
+               return m.Mutations
+       }
+       return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*CommitRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+       return _CommitRequest_OneofMarshaler, _CommitRequest_OneofUnmarshaler, _CommitRequest_OneofSizer, []interface{}{
+               (*CommitRequest_Transaction)(nil),
+       }
+}
+
+func _CommitRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+       m := msg.(*CommitRequest)
+       // transaction_selector
+       switch x := m.TransactionSelector.(type) {
+       case *CommitRequest_Transaction:
+               b.EncodeVarint(1<<3 | proto.WireBytes)
+               b.EncodeRawBytes(x.Transaction)
+       case nil:
+       default:
+               return fmt.Errorf("CommitRequest.TransactionSelector has unexpected type %T", x)
+       }
+       return nil
+}
+
+func _CommitRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+       m := msg.(*CommitRequest)
+       switch tag {
+       case 1: // transaction_selector.transaction
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               x, err := b.DecodeRawBytes(true)
+               m.TransactionSelector = &CommitRequest_Transaction{x}
+               return true, err
+       default:
+               return false, nil
+       }
+}
+
+func _CommitRequest_OneofSizer(msg proto.Message) (n int) {
+       m := msg.(*CommitRequest)
+       // transaction_selector
+       switch x := m.TransactionSelector.(type) {
+       case *CommitRequest_Transaction:
+               n += proto.SizeVarint(1<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(len(x.Transaction)))
+               n += len(x.Transaction)
+       case nil:
+       default:
+               panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+       }
+       return n
+}
+
+// The response for [Datastore.Commit][google.datastore.v1.Datastore.Commit].
+type CommitResponse struct {
+       // The result of performing the mutations.
+       // The i-th mutation result corresponds to the i-th mutation in the request.
+       MutationResults []*MutationResult `protobuf:"bytes,3,rep,name=mutation_results,json=mutationResults" json:"mutation_results,omitempty"`
+       // The number of index entries updated during the commit, or zero if none were
+       // updated.
+       IndexUpdates int32 `protobuf:"varint,4,opt,name=index_updates,json=indexUpdates" json:"index_updates,omitempty"`
+}
+
+func (m *CommitResponse) Reset()                    { *m = CommitResponse{} }
+func (m *CommitResponse) String() string            { return proto.CompactTextString(m) }
+func (*CommitResponse) ProtoMessage()               {}
+func (*CommitResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
+
+func (m *CommitResponse) GetMutationResults() []*MutationResult {
+       if m != nil {
+               return m.MutationResults
+       }
+       return nil
+}
+
+func (m *CommitResponse) GetIndexUpdates() int32 {
+       if m != nil {
+               return m.IndexUpdates
+       }
+       return 0
+}
+
+// The request for [Datastore.AllocateIds][google.datastore.v1.Datastore.AllocateIds].
+type AllocateIdsRequest struct {
+       // The ID of the project against which to make the request.
+       ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+       // A list of keys with incomplete key paths for which to allocate IDs.
+       // No key may be reserved/read-only.
+       Keys []*Key `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+}
+
+func (m *AllocateIdsRequest) Reset()                    { *m = AllocateIdsRequest{} }
+func (m *AllocateIdsRequest) String() string            { return proto.CompactTextString(m) }
+func (*AllocateIdsRequest) ProtoMessage()               {}
+func (*AllocateIdsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
+
+func (m *AllocateIdsRequest) GetProjectId() string {
+       if m != nil {
+               return m.ProjectId
+       }
+       return ""
+}
+
+func (m *AllocateIdsRequest) GetKeys() []*Key {
+       if m != nil {
+               return m.Keys
+       }
+       return nil
+}
+
+// The response for [Datastore.AllocateIds][google.datastore.v1.Datastore.AllocateIds].
+type AllocateIdsResponse struct {
+       // The keys specified in the request (in the same order), each with
+       // its key path completed with a newly allocated ID.
+       Keys []*Key `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+}
+
+func (m *AllocateIdsResponse) Reset()                    { *m = AllocateIdsResponse{} }
+func (m *AllocateIdsResponse) String() string            { return proto.CompactTextString(m) }
+func (*AllocateIdsResponse) ProtoMessage()               {}
+func (*AllocateIdsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
+
+func (m *AllocateIdsResponse) GetKeys() []*Key {
+       if m != nil {
+               return m.Keys
+       }
+       return nil
+}
+
+// A mutation to apply to an entity.
+type Mutation struct {
+       // The mutation operation.
+       //
+       // For `insert`, `update`, and `upsert`:
+       // - The entity's key must not be reserved/read-only.
+       // - No property in the entity may have a reserved name,
+       //   not even a property in an entity in a value.
+       // - No value in the entity may have meaning 18,
+       //   not even a value in an entity in another value.
+       //
+       // Types that are valid to be assigned to Operation:
+       //      *Mutation_Insert
+       //      *Mutation_Update
+       //      *Mutation_Upsert
+       //      *Mutation_Delete
+       Operation isMutation_Operation `protobuf_oneof:"operation"`
+       // When set, the server will detect whether or not this mutation conflicts
+       // with the current version of the entity on the server. Conflicting mutations
+       // are not applied, and are marked as such in MutationResult.
+       //
+       // Types that are valid to be assigned to ConflictDetectionStrategy:
+       //      *Mutation_BaseVersion
+       ConflictDetectionStrategy isMutation_ConflictDetectionStrategy `protobuf_oneof:"conflict_detection_strategy"`
+}
+
+func (m *Mutation) Reset()                    { *m = Mutation{} }
+func (m *Mutation) String() string            { return proto.CompactTextString(m) }
+func (*Mutation) ProtoMessage()               {}
+func (*Mutation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
+
+type isMutation_Operation interface {
+       isMutation_Operation()
+}
+type isMutation_ConflictDetectionStrategy interface {
+       isMutation_ConflictDetectionStrategy()
+}
+
+type Mutation_Insert struct {
+       Insert *Entity `protobuf:"bytes,4,opt,name=insert,oneof"`
+}
+type Mutation_Update struct {
+       Update *Entity `protobuf:"bytes,5,opt,name=update,oneof"`
+}
+type Mutation_Upsert struct {
+       Upsert *Entity `protobuf:"bytes,6,opt,name=upsert,oneof"`
+}
+type Mutation_Delete struct {
+       Delete *Key `protobuf:"bytes,7,opt,name=delete,oneof"`
+}
+type Mutation_BaseVersion struct {
+       BaseVersion int64 `protobuf:"varint,8,opt,name=base_version,json=baseVersion,oneof"`
+}
+
+func (*Mutation_Insert) isMutation_Operation()                      {}
+func (*Mutation_Update) isMutation_Operation()                      {}
+func (*Mutation_Upsert) isMutation_Operation()                      {}
+func (*Mutation_Delete) isMutation_Operation()                      {}
+func (*Mutation_BaseVersion) isMutation_ConflictDetectionStrategy() {}
+
+func (m *Mutation) GetOperation() isMutation_Operation {
+       if m != nil {
+               return m.Operation
+       }
+       return nil
+}
+func (m *Mutation) GetConflictDetectionStrategy() isMutation_ConflictDetectionStrategy {
+       if m != nil {
+               return m.ConflictDetectionStrategy
+       }
+       return nil
+}
+
+func (m *Mutation) GetInsert() *Entity {
+       if x, ok := m.GetOperation().(*Mutation_Insert); ok {
+               return x.Insert
+       }
+       return nil
+}
+
+func (m *Mutation) GetUpdate() *Entity {
+       if x, ok := m.GetOperation().(*Mutation_Update); ok {
+               return x.Update
+       }
+       return nil
+}
+
+func (m *Mutation) GetUpsert() *Entity {
+       if x, ok := m.GetOperation().(*Mutation_Upsert); ok {
+               return x.Upsert
+       }
+       return nil
+}
+
+func (m *Mutation) GetDelete() *Key {
+       if x, ok := m.GetOperation().(*Mutation_Delete); ok {
+               return x.Delete
+       }
+       return nil
+}
+
+func (m *Mutation) GetBaseVersion() int64 {
+       if x, ok := m.GetConflictDetectionStrategy().(*Mutation_BaseVersion); ok {
+               return x.BaseVersion
+       }
+       return 0
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*Mutation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+       return _Mutation_OneofMarshaler, _Mutation_OneofUnmarshaler, _Mutation_OneofSizer, []interface{}{
+               (*Mutation_Insert)(nil),
+               (*Mutation_Update)(nil),
+               (*Mutation_Upsert)(nil),
+               (*Mutation_Delete)(nil),
+               (*Mutation_BaseVersion)(nil),
+       }
+}
+
+func _Mutation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+       m := msg.(*Mutation)
+       // operation
+       switch x := m.Operation.(type) {
+       case *Mutation_Insert:
+               b.EncodeVarint(4<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.Insert); err != nil {
+                       return err
+               }
+       case *Mutation_Update:
+               b.EncodeVarint(5<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.Update); err != nil {
+                       return err
+               }
+       case *Mutation_Upsert:
+               b.EncodeVarint(6<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.Upsert); err != nil {
+                       return err
+               }
+       case *Mutation_Delete:
+               b.EncodeVarint(7<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.Delete); err != nil {
+                       return err
+               }
+       case nil:
+       default:
+               return fmt.Errorf("Mutation.Operation has unexpected type %T", x)
+       }
+       // conflict_detection_strategy
+       switch x := m.ConflictDetectionStrategy.(type) {
+       case *Mutation_BaseVersion:
+               b.EncodeVarint(8<<3 | proto.WireVarint)
+               b.EncodeVarint(uint64(x.BaseVersion))
+       case nil:
+       default:
+               return fmt.Errorf("Mutation.ConflictDetectionStrategy has unexpected type %T", x)
+       }
+       return nil
+}
+
+func _Mutation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+       m := msg.(*Mutation)
+       switch tag {
+       case 4: // operation.insert
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(Entity)
+               err := b.DecodeMessage(msg)
+               m.Operation = &Mutation_Insert{msg}
+               return true, err
+       case 5: // operation.update
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(Entity)
+               err := b.DecodeMessage(msg)
+               m.Operation = &Mutation_Update{msg}
+               return true, err
+       case 6: // operation.upsert
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(Entity)
+               err := b.DecodeMessage(msg)
+               m.Operation = &Mutation_Upsert{msg}
+               return true, err
+       case 7: // operation.delete
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(Key)
+               err := b.DecodeMessage(msg)
+               m.Operation = &Mutation_Delete{msg}
+               return true, err
+       case 8: // conflict_detection_strategy.base_version
+               if wire != proto.WireVarint {
+                       return true, proto.ErrInternalBadWireType
+               }
+               x, err := b.DecodeVarint()
+               m.ConflictDetectionStrategy = &Mutation_BaseVersion{int64(x)}
+               return true, err
+       default:
+               return false, nil
+       }
+}
+
+func _Mutation_OneofSizer(msg proto.Message) (n int) {
+       m := msg.(*Mutation)
+       // operation
+       switch x := m.Operation.(type) {
+       case *Mutation_Insert:
+               s := proto.Size(x.Insert)
+               n += proto.SizeVarint(4<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case *Mutation_Update:
+               s := proto.Size(x.Update)
+               n += proto.SizeVarint(5<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case *Mutation_Upsert:
+               s := proto.Size(x.Upsert)
+               n += proto.SizeVarint(6<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case *Mutation_Delete:
+               s := proto.Size(x.Delete)
+               n += proto.SizeVarint(7<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case nil:
+       default:
+               panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+       }
+       // conflict_detection_strategy
+       switch x := m.ConflictDetectionStrategy.(type) {
+       case *Mutation_BaseVersion:
+               n += proto.SizeVarint(8<<3 | proto.WireVarint)
+               n += proto.SizeVarint(uint64(x.BaseVersion))
+       case nil:
+       default:
+               panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+       }
+       return n
+}
+
+// The result of applying a mutation.
+type MutationResult struct {
+       // The automatically allocated key.
+       // Set only when the mutation allocated a key.
+       Key *Key `protobuf:"bytes,3,opt,name=key" json:"key,omitempty"`
+       // The version of the entity on the server after processing the mutation. If
+       // the mutation doesn't change anything on the server, then the version will
+       // be the version of the current entity or, if no entity is present, a version
+       // that is strictly greater than the version of any previous entity and less
+       // than the version of any possible future entity.
+       Version int64 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"`
+       // Whether a conflict was detected for this mutation. Always false when a
+       // conflict detection strategy field is not set in the mutation.
+       ConflictDetected bool `protobuf:"varint,5,opt,name=conflict_detected,json=conflictDetected" json:"conflict_detected,omitempty"`
+}
+
+func (m *MutationResult) Reset()                    { *m = MutationResult{} }
+func (m *MutationResult) String() string            { return proto.CompactTextString(m) }
+func (*MutationResult) ProtoMessage()               {}
+func (*MutationResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
+
+func (m *MutationResult) GetKey() *Key {
+       if m != nil {
+               return m.Key
+       }
+       return nil
+}
+
+func (m *MutationResult) GetVersion() int64 {
+       if m != nil {
+               return m.Version
+       }
+       return 0
+}
+
+func (m *MutationResult) GetConflictDetected() bool {
+       if m != nil {
+               return m.ConflictDetected
+       }
+       return false
+}
+
+// The options shared by read requests.
+type ReadOptions struct {
+       // If not specified, lookups and ancestor queries default to
+       // `read_consistency`=`STRONG`, global queries default to
+       // `read_consistency`=`EVENTUAL`.
+       //
+       // Types that are valid to be assigned to ConsistencyType:
+       //      *ReadOptions_ReadConsistency_
+       //      *ReadOptions_Transaction
+       ConsistencyType isReadOptions_ConsistencyType `protobuf_oneof:"consistency_type"`
+}
+
+func (m *ReadOptions) Reset()                    { *m = ReadOptions{} }
+func (m *ReadOptions) String() string            { return proto.CompactTextString(m) }
+func (*ReadOptions) ProtoMessage()               {}
+func (*ReadOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
+
+type isReadOptions_ConsistencyType interface {
+       isReadOptions_ConsistencyType()
+}
+
+type ReadOptions_ReadConsistency_ struct {
+       ReadConsistency ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,json=readConsistency,enum=google.datastore.v1.ReadOptions_ReadConsistency,oneof"`
+}
+type ReadOptions_Transaction struct {
+       Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3,oneof"`
+}
+
+func (*ReadOptions_ReadConsistency_) isReadOptions_ConsistencyType() {}
+func (*ReadOptions_Transaction) isReadOptions_ConsistencyType()      {}
+
+func (m *ReadOptions) GetConsistencyType() isReadOptions_ConsistencyType {
+       if m != nil {
+               return m.ConsistencyType
+       }
+       return nil
+}
+
+func (m *ReadOptions) GetReadConsistency() ReadOptions_ReadConsistency {
+       if x, ok := m.GetConsistencyType().(*ReadOptions_ReadConsistency_); ok {
+               return x.ReadConsistency
+       }
+       return ReadOptions_READ_CONSISTENCY_UNSPECIFIED
+}
+
+func (m *ReadOptions) GetTransaction() []byte {
+       if x, ok := m.GetConsistencyType().(*ReadOptions_Transaction); ok {
+               return x.Transaction
+       }
+       return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*ReadOptions) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+       return _ReadOptions_OneofMarshaler, _ReadOptions_OneofUnmarshaler, _ReadOptions_OneofSizer, []interface{}{
+               (*ReadOptions_ReadConsistency_)(nil),
+               (*ReadOptions_Transaction)(nil),
+       }
+}
+
+func _ReadOptions_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+       m := msg.(*ReadOptions)
+       // consistency_type
+       switch x := m.ConsistencyType.(type) {
+       case *ReadOptions_ReadConsistency_:
+               b.EncodeVarint(1<<3 | proto.WireVarint)
+               b.EncodeVarint(uint64(x.ReadConsistency))
+       case *ReadOptions_Transaction:
+               b.EncodeVarint(2<<3 | proto.WireBytes)
+               b.EncodeRawBytes(x.Transaction)
+       case nil:
+       default:
+               return fmt.Errorf("ReadOptions.ConsistencyType has unexpected type %T", x)
+       }
+       return nil
+}
+
+func _ReadOptions_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+       m := msg.(*ReadOptions)
+       switch tag {
+       case 1: // consistency_type.read_consistency
+               if wire != proto.WireVarint {
+                       return true, proto.ErrInternalBadWireType
+               }
+               x, err := b.DecodeVarint()
+               m.ConsistencyType = &ReadOptions_ReadConsistency_{ReadOptions_ReadConsistency(x)}
+               return true, err
+       case 2: // consistency_type.transaction
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               x, err := b.DecodeRawBytes(true)
+               m.ConsistencyType = &ReadOptions_Transaction{x}
+               return true, err
+       default:
+               return false, nil
+       }
+}
+
+func _ReadOptions_OneofSizer(msg proto.Message) (n int) {
+       m := msg.(*ReadOptions)
+       // consistency_type
+       switch x := m.ConsistencyType.(type) {
+       case *ReadOptions_ReadConsistency_:
+               n += proto.SizeVarint(1<<3 | proto.WireVarint)
+               n += proto.SizeVarint(uint64(x.ReadConsistency))
+       case *ReadOptions_Transaction:
+               n += proto.SizeVarint(2<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(len(x.Transaction)))
+               n += len(x.Transaction)
+       case nil:
+       default:
+               panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+       }
+       return n
+}
+
+// Options for beginning a new transaction.
+type TransactionOptions struct {
+       // The `mode` of the transaction, indicating whether write operations are
+       // supported.
+       //
+       // Types that are valid to be assigned to Mode:
+       //      *TransactionOptions_ReadWrite_
+       //      *TransactionOptions_ReadOnly_
+       Mode isTransactionOptions_Mode `protobuf_oneof:"mode"`
+}
+
+func (m *TransactionOptions) Reset()                    { *m = TransactionOptions{} }
+func (m *TransactionOptions) String() string            { return proto.CompactTextString(m) }
+func (*TransactionOptions) ProtoMessage()               {}
+func (*TransactionOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
+
+type isTransactionOptions_Mode interface {
+       isTransactionOptions_Mode()
+}
+
+type TransactionOptions_ReadWrite_ struct {
+       ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,oneof"`
+}
+type TransactionOptions_ReadOnly_ struct {
+       ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,oneof"`
+}
+
+func (*TransactionOptions_ReadWrite_) isTransactionOptions_Mode() {}
+func (*TransactionOptions_ReadOnly_) isTransactionOptions_Mode()  {}
+
+func (m *TransactionOptions) GetMode() isTransactionOptions_Mode {
+       if m != nil {
+               return m.Mode
+       }
+       return nil
+}
+
+func (m *TransactionOptions) GetReadWrite() *TransactionOptions_ReadWrite {
+       if x, ok := m.GetMode().(*TransactionOptions_ReadWrite_); ok {
+               return x.ReadWrite
+       }
+       return nil
+}
+
+func (m *TransactionOptions) GetReadOnly() *TransactionOptions_ReadOnly {
+       if x, ok := m.GetMode().(*TransactionOptions_ReadOnly_); ok {
+               return x.ReadOnly
+       }
+       return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*TransactionOptions) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+       return _TransactionOptions_OneofMarshaler, _TransactionOptions_OneofUnmarshaler, _TransactionOptions_OneofSizer, []interface{}{
+               (*TransactionOptions_ReadWrite_)(nil),
+               (*TransactionOptions_ReadOnly_)(nil),
+       }
+}
+
+func _TransactionOptions_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+       m := msg.(*TransactionOptions)
+       // mode
+       switch x := m.Mode.(type) {
+       case *TransactionOptions_ReadWrite_:
+               b.EncodeVarint(1<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.ReadWrite); err != nil {
+                       return err
+               }
+       case *TransactionOptions_ReadOnly_:
+               b.EncodeVarint(2<<3 | proto.WireBytes)
+               if err := b.EncodeMessage(x.ReadOnly); err != nil {
+                       return err
+               }
+       case nil:
+       default:
+               return fmt.Errorf("TransactionOptions.Mode has unexpected type %T", x)
+       }
+       return nil
+}
+
+func _TransactionOptions_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+       m := msg.(*TransactionOptions)
+       switch tag {
+       case 1: // mode.read_write
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(TransactionOptions_ReadWrite)
+               err := b.DecodeMessage(msg)
+               m.Mode = &TransactionOptions_ReadWrite_{msg}
+               return true, err
+       case 2: // mode.read_only
+               if wire != proto.WireBytes {
+                       return true, proto.ErrInternalBadWireType
+               }
+               msg := new(TransactionOptions_ReadOnly)
+               err := b.DecodeMessage(msg)
+               m.Mode = &TransactionOptions_ReadOnly_{msg}
+               return true, err
+       default:
+               return false, nil
+       }
+}
+
+func _TransactionOptions_OneofSizer(msg proto.Message) (n int) {
+       m := msg.(*TransactionOptions)
+       // mode
+       switch x := m.Mode.(type) {
+       case *TransactionOptions_ReadWrite_:
+               s := proto.Size(x.ReadWrite)
+               n += proto.SizeVarint(1<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case *TransactionOptions_ReadOnly_:
+               s := proto.Size(x.ReadOnly)
+               n += proto.SizeVarint(2<<3 | proto.WireBytes)
+               n += proto.SizeVarint(uint64(s))
+               n += s
+       case nil:
+       default:
+               panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+       }
+       return n
+}
+
+// Options specific to read / write transactions.
+type TransactionOptions_ReadWrite struct {
+       // The transaction identifier of the transaction being retried.
+       PreviousTransaction []byte `protobuf:"bytes,1,opt,name=previous_transaction,json=previousTransaction,proto3" json:"previous_transaction,omitempty"`
+}
+
+func (m *TransactionOptions_ReadWrite) Reset()         { *m = TransactionOptions_ReadWrite{} }
+func (m *TransactionOptions_ReadWrite) String() string { return proto.CompactTextString(m) }
+func (*TransactionOptions_ReadWrite) ProtoMessage()    {}
+func (*TransactionOptions_ReadWrite) Descriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{15, 0}
+}
+
+func (m *TransactionOptions_ReadWrite) GetPreviousTransaction() []byte {
+       if m != nil {
+               return m.PreviousTransaction
+       }
+       return nil
+}
+
+// Options specific to read-only transactions.
+type TransactionOptions_ReadOnly struct {
+}
+
+func (m *TransactionOptions_ReadOnly) Reset()                    { *m = TransactionOptions_ReadOnly{} }
+func (m *TransactionOptions_ReadOnly) String() string            { return proto.CompactTextString(m) }
+func (*TransactionOptions_ReadOnly) ProtoMessage()               {}
+func (*TransactionOptions_ReadOnly) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15, 1} }
+
+func init() {
+       proto.RegisterType((*LookupRequest)(nil), "google.datastore.v1.LookupRequest")
+       proto.RegisterType((*LookupResponse)(nil), "google.datastore.v1.LookupResponse")
+       proto.RegisterType((*RunQueryRequest)(nil), "google.datastore.v1.RunQueryRequest")
+       proto.RegisterType((*RunQueryResponse)(nil), "google.datastore.v1.RunQueryResponse")
+       proto.RegisterType((*BeginTransactionRequest)(nil), "google.datastore.v1.BeginTransactionRequest")
+       proto.RegisterType((*BeginTransactionResponse)(nil), "google.datastore.v1.BeginTransactionResponse")
+       proto.RegisterType((*RollbackRequest)(nil), "google.datastore.v1.RollbackRequest")
+       proto.RegisterType((*RollbackResponse)(nil), "google.datastore.v1.RollbackResponse")
+       proto.RegisterType((*CommitRequest)(nil), "google.datastore.v1.CommitRequest")
+       proto.RegisterType((*CommitResponse)(nil), "google.datastore.v1.CommitResponse")
+       proto.RegisterType((*AllocateIdsRequest)(nil), "google.datastore.v1.AllocateIdsRequest")
+       proto.RegisterType((*AllocateIdsResponse)(nil), "google.datastore.v1.AllocateIdsResponse")
+       proto.RegisterType((*Mutation)(nil), "google.datastore.v1.Mutation")
+       proto.RegisterType((*MutationResult)(nil), "google.datastore.v1.MutationResult")
+       proto.RegisterType((*ReadOptions)(nil), "google.datastore.v1.ReadOptions")
+       proto.RegisterType((*TransactionOptions)(nil), "google.datastore.v1.TransactionOptions")
+       proto.RegisterType((*TransactionOptions_ReadWrite)(nil), "google.datastore.v1.TransactionOptions.ReadWrite")
+       proto.RegisterType((*TransactionOptions_ReadOnly)(nil), "google.datastore.v1.TransactionOptions.ReadOnly")
+       proto.RegisterEnum("google.datastore.v1.CommitRequest_Mode", CommitRequest_Mode_name, CommitRequest_Mode_value)
+       proto.RegisterEnum("google.datastore.v1.ReadOptions_ReadConsistency", ReadOptions_ReadConsistency_name, ReadOptions_ReadConsistency_value)
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// Client API for Datastore service
+
+type DatastoreClient interface {
+       // Looks up entities by key.
+       Lookup(ctx context.Context, in *LookupRequest, opts ...grpc.CallOption) (*LookupResponse, error)
+       // Queries for entities.
+       RunQuery(ctx context.Context, in *RunQueryRequest, opts ...grpc.CallOption) (*RunQueryResponse, error)
+       // Begins a new transaction.
+       BeginTransaction(ctx context.Context, in *BeginTransactionRequest, opts ...grpc.CallOption) (*BeginTransactionResponse, error)
+       // Commits a transaction, optionally creating, deleting or modifying some
+       // entities.
+       Commit(ctx context.Context, in *CommitRequest, opts ...grpc.CallOption) (*CommitResponse, error)
+       // Rolls back a transaction.
+       Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*RollbackResponse, error)
+       // Allocates IDs for the given keys, which is useful for referencing an entity
+       // before it is inserted.
+       AllocateIds(ctx context.Context, in *AllocateIdsRequest, opts ...grpc.CallOption) (*AllocateIdsResponse, error)
+}
+
+type datastoreClient struct {
+       cc *grpc.ClientConn
+}
+
+func NewDatastoreClient(cc *grpc.ClientConn) DatastoreClient {
+       return &datastoreClient{cc}
+}
+
+func (c *datastoreClient) Lookup(ctx context.Context, in *LookupRequest, opts ...grpc.CallOption) (*LookupResponse, error) {
+       out := new(LookupResponse)
+       err := grpc.Invoke(ctx, "/google.datastore.v1.Datastore/Lookup", in, out, c.cc, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *datastoreClient) RunQuery(ctx context.Context, in *RunQueryRequest, opts ...grpc.CallOption) (*RunQueryResponse, error) {
+       out := new(RunQueryResponse)
+       err := grpc.Invoke(ctx, "/google.datastore.v1.Datastore/RunQuery", in, out, c.cc, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *datastoreClient) BeginTransaction(ctx context.Context, in *BeginTransactionRequest, opts ...grpc.CallOption) (*BeginTransactionResponse, error) {
+       out := new(BeginTransactionResponse)
+       err := grpc.Invoke(ctx, "/google.datastore.v1.Datastore/BeginTransaction", in, out, c.cc, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *datastoreClient) Commit(ctx context.Context, in *CommitRequest, opts ...grpc.CallOption) (*CommitResponse, error) {
+       out := new(CommitResponse)
+       err := grpc.Invoke(ctx, "/google.datastore.v1.Datastore/Commit", in, out, c.cc, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *datastoreClient) Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*RollbackResponse, error) {
+       out := new(RollbackResponse)
+       err := grpc.Invoke(ctx, "/google.datastore.v1.Datastore/Rollback", in, out, c.cc, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *datastoreClient) AllocateIds(ctx context.Context, in *AllocateIdsRequest, opts ...grpc.CallOption) (*AllocateIdsResponse, error) {
+       out := new(AllocateIdsResponse)
+       err := grpc.Invoke(ctx, "/google.datastore.v1.Datastore/AllocateIds", in, out, c.cc, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+// Server API for Datastore service
+
+type DatastoreServer interface {
+       // Looks up entities by key.
+       Lookup(context.Context, *LookupRequest) (*LookupResponse, error)
+       // Queries for entities.
+       RunQuery(context.Context, *RunQueryRequest) (*RunQueryResponse, error)
+       // Begins a new transaction.
+       BeginTransaction(context.Context, *BeginTransactionRequest) (*BeginTransactionResponse, error)
+       // Commits a transaction, optionally creating, deleting or modifying some
+       // entities.
+       Commit(context.Context, *CommitRequest) (*CommitResponse, error)
+       // Rolls back a transaction.
+       Rollback(context.Context, *RollbackRequest) (*RollbackResponse, error)
+       // Allocates IDs for the given keys, which is useful for referencing an entity
+       // before it is inserted.
+       AllocateIds(context.Context, *AllocateIdsRequest) (*AllocateIdsResponse, error)
+}
+
+func RegisterDatastoreServer(s *grpc.Server, srv DatastoreServer) {
+       s.RegisterService(&_Datastore_serviceDesc, srv)
+}
+
+func _Datastore_Lookup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(LookupRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return srv.(DatastoreServer).Lookup(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/google.datastore.v1.Datastore/Lookup",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+               return srv.(DatastoreServer).Lookup(ctx, req.(*LookupRequest))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func _Datastore_RunQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(RunQueryRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return srv.(DatastoreServer).RunQuery(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/google.datastore.v1.Datastore/RunQuery",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+               return srv.(DatastoreServer).RunQuery(ctx, req.(*RunQueryRequest))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func _Datastore_BeginTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(BeginTransactionRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return srv.(DatastoreServer).BeginTransaction(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/google.datastore.v1.Datastore/BeginTransaction",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+               return srv.(DatastoreServer).BeginTransaction(ctx, req.(*BeginTransactionRequest))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func _Datastore_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(CommitRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return srv.(DatastoreServer).Commit(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/google.datastore.v1.Datastore/Commit",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+               return srv.(DatastoreServer).Commit(ctx, req.(*CommitRequest))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func _Datastore_Rollback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(RollbackRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return srv.(DatastoreServer).Rollback(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/google.datastore.v1.Datastore/Rollback",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+               return srv.(DatastoreServer).Rollback(ctx, req.(*RollbackRequest))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func _Datastore_AllocateIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(AllocateIdsRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return srv.(DatastoreServer).AllocateIds(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/google.datastore.v1.Datastore/AllocateIds",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+               return srv.(DatastoreServer).AllocateIds(ctx, req.(*AllocateIdsRequest))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+var _Datastore_serviceDesc = grpc.ServiceDesc{
+       ServiceName: "google.datastore.v1.Datastore",
+       HandlerType: (*DatastoreServer)(nil),
+       Methods: []grpc.MethodDesc{
+               {
+                       MethodName: "Lookup",
+                       Handler:    _Datastore_Lookup_Handler,
+               },
+               {
+                       MethodName: "RunQuery",
+                       Handler:    _Datastore_RunQuery_Handler,
+               },
+               {
+                       MethodName: "BeginTransaction",
+                       Handler:    _Datastore_BeginTransaction_Handler,
+               },
+               {
+                       MethodName: "Commit",
+                       Handler:    _Datastore_Commit_Handler,
+               },
+               {
+                       MethodName: "Rollback",
+                       Handler:    _Datastore_Rollback_Handler,
+               },
+               {
+                       MethodName: "AllocateIds",
+                       Handler:    _Datastore_AllocateIds_Handler,
+               },
+       },
+       Streams:  []grpc.StreamDesc{},
+       Metadata: "google/datastore/v1/datastore.proto",
+}
+
+func init() { proto.RegisterFile("google/datastore/v1/datastore.proto", fileDescriptor0) }
+
+var fileDescriptor0 = []byte{
+       // 1312 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5f, 0x6f, 0xdb, 0x54,
+       0x14, 0xef, 0x4d, 0xdb, 0x2c, 0x39, 0xe9, 0x9f, 0xec, 0x76, 0xb0, 0x90, 0x6d, 0x22, 0xb8, 0x54,
+       0xab, 0xba, 0x2d, 0x69, 0x03, 0x13, 0xd2, 0x3a, 0x21, 0x35, 0x69, 0xb6, 0x46, 0xac, 0x49, 0xb9,
+       0xed, 0xc6, 0x1f, 0x09, 0x45, 0xae, 0x7d, 0x1b, 0x4c, 0x1d, 0x5f, 0xd7, 0xbe, 0x29, 0x44, 0x88,
+       0x49, 0x80, 0xc6, 0x1b, 0x2f, 0xe3, 0x13, 0xf0, 0xc2, 0x03, 0xe2, 0x91, 0x27, 0xc4, 0xb7, 0xe0,
+       0x91, 0x57, 0xbe, 0x01, 0x5f, 0x00, 0xf9, 0xfa, 0x3a, 0x89, 0x53, 0xbb, 0xf1, 0x24, 0xde, 0x7c,
+       0xaf, 0x7f, 0xbf, 0x73, 0x7e, 0xe7, 0x9c, 0xeb, 0x73, 0xae, 0x61, 0xb5, 0xcb, 0x58, 0xd7, 0xa4,
+       0x15, 0x5d, 0xe5, 0xaa, 0xcb, 0x99, 0x43, 0x2b, 0xe7, 0x5b, 0xa3, 0x45, 0xd9, 0x76, 0x18, 0x67,
+       0x78, 0xc5, 0x07, 0x95, 0x47, 0xfb, 0xe7, 0x5b, 0xc5, 0x9b, 0x92, 0xa9, 0xda, 0x46, 0x45, 0xb5,
+       0x2c, 0xc6, 0x55, 0x6e, 0x30, 0xcb, 0xf5, 0x29, 0xc5, 0x52, 0x94, 0x5d, 0x6a, 0x71, 0x83, 0x0f,
+       0x24, 0xe2, 0xcd, 0x28, 0xc4, 0x59, 0x9f, 0x3a, 0x12, 0xa0, 0xfc, 0x8c, 0x60, 0xf1, 0x09, 0x63,
+       0xa7, 0x7d, 0x9b, 0xd0, 0xb3, 0x3e, 0x75, 0x39, 0xbe, 0x05, 0x60, 0x3b, 0xec, 0x0b, 0xaa, 0xf1,
+       0x8e, 0xa1, 0x17, 0x32, 0x25, 0xb4, 0x9e, 0x25, 0x59, 0xb9, 0xd3, 0xd4, 0x71, 0x1d, 0x16, 0x1c,
+       0xaa, 0xea, 0x1d, 0x66, 0x0b, 0x25, 0x05, 0x54, 0x42, 0xeb, 0xb9, 0x6a, 0xa9, 0x1c, 0xa1, 0xbe,
+       0x4c, 0xa8, 0xaa, 0xb7, 0x7d, 0x1c, 0xc9, 0x39, 0xa3, 0x05, 0xbe, 0x0b, 0x73, 0xa7, 0x74, 0xe0,
+       0x16, 0x66, 0x4b, 0xb3, 0xeb, 0xb9, 0x6a, 0x21, 0x92, 0xfc, 0x01, 0x1d, 0x10, 0x81, 0x52, 0xfe,
+       0x44, 0xb0, 0x14, 0x68, 0x74, 0x6d, 0x66, 0xb9, 0x14, 0xbf, 0x07, 0xf3, 0x27, 0xac, 0x6f, 0xe9,
+       0x05, 0x24, 0x2c, 0xbc, 0x15, 0x69, 0xa1, 0x21, 0x32, 0x41, 0xa8, 0xdb, 0x37, 0x39, 0xf1, 0xf1,
+       0x78, 0x1b, 0xae, 0xf4, 0x0c, 0xd7, 0x35, 0xac, 0x6e, 0x21, 0x95, 0x94, 0x1a, 0x30, 0xf0, 0xbb,
+       0x90, 0xd1, 0xe9, 0x09, 0x75, 0x1c, 0xaa, 0x4f, 0x95, 0x3e, 0x44, 0x2a, 0x7f, 0xa4, 0x60, 0x99,
+       0xf4, 0xad, 0x0f, 0xbd, 0xac, 0x27, 0x4f, 0xb2, 0xad, 0x3a, 0xdc, 0xf0, 0xb2, 0xe5, 0x01, 0x52,
+       0x97, 0x24, 0xf9, 0x20, 0x00, 0x36, 0x75, 0x92, 0xb3, 0x47, 0x8b, 0xff, 0xa7, 0x52, 0x55, 0x98,
+       0x17, 0xc7, 0xa5, 0x30, 0x2b, 0xd8, 0xc5, 0x48, 0xb6, 0x08, 0x6d, 0x6f, 0x86, 0xf8, 0x50, 0xfc,
+       0x10, 0xb2, 0xdd, 0x33, 0xb3, 0xe3, 0xf3, 0xae, 0x08, 0xde, 0xad, 0x48, 0xde, 0xe3, 0x33, 0x33,
+       0xa0, 0x66, 0xba, 0xf2, 0xb9, 0xb6, 0x00, 0x20, 0x98, 0x1d, 0x3e, 0xb0, 0xa9, 0xf2, 0x2d, 0x82,
+       0xfc, 0x28, 0x79, 0xb2, 0xfa, 0xdb, 0x30, 0x7f, 0xac, 0x72, 0xed, 0x73, 0x19, 0xd2, 0x5a, 0xbc,
+       0x28, 0xbf, 0x82, 0x35, 0x0f, 0x4c, 0x7c, 0x0e, 0xde, 0x0c, 0x22, 0x4a, 0x4d, 0x8b, 0x48, 0xc6,
+       0xa3, 0xbc, 0x44, 0x70, 0xbd, 0x46, 0xbb, 0x86, 0x75, 0xe4, 0xa8, 0x96, 0xab, 0x6a, 0x5e, 0x66,
+       0x12, 0x16, 0xf2, 0x63, 0x58, 0xe1, 0x23, 0xd2, 0xb0, 0x14, 0x20, 0x5c, 0xdf, 0x8e, 0x74, 0x3d,
+       0xe6, 0x24, 0xa8, 0x08, 0xe6, 0x17, 0xf6, 0x94, 0x87, 0x50, 0xb8, 0xa8, 0x49, 0xe6, 0xa7, 0x04,
+       0xb9, 0x31, 0x86, 0xc8, 0xd2, 0x02, 0x19, 0xdf, 0x52, 0x08, 0x2c, 0x13, 0x66, 0x9a, 0xc7, 0xaa,
+       0x76, 0x9a, 0x30, 0x92, 0xe9, 0x36, 0x31, 0xe4, 0x47, 0x36, 0x7d, 0x25, 0xca, 0x6f, 0x29, 0x58,
+       0xac, 0xb3, 0x5e, 0xcf, 0xe0, 0x09, 0xdd, 0x6c, 0xc3, 0x5c, 0x8f, 0xe9, 0xb4, 0x30, 0x5f, 0x42,
+       0xeb, 0x4b, 0x31, 0x19, 0x0a, 0x19, 0x2c, 0xef, 0x33, 0x9d, 0x12, 0x41, 0xc2, 0x4a, 0x84, 0xc6,
+       0xbd, 0x99, 0x90, 0x4a, 0xbc, 0x0d, 0xd9, 0x5e, 0x5f, 0xb6, 0xd1, 0x42, 0x5a, 0x7c, 0xc4, 0xd1,
+       0x87, 0x73, 0x5f, 0xa2, 0xc8, 0x08, 0xaf, 0x3c, 0x82, 0x39, 0xcf, 0x1d, 0xbe, 0x06, 0xf9, 0xfd,
+       0xf6, 0x6e, 0xa3, 0xf3, 0xb4, 0x75, 0x78, 0xd0, 0xa8, 0x37, 0x1f, 0x35, 0x1b, 0xbb, 0xf9, 0x19,
+       0x7c, 0x15, 0x16, 0x8f, 0xc8, 0x4e, 0xeb, 0x70, 0xa7, 0x7e, 0xd4, 0x6c, 0xb7, 0x76, 0x9e, 0xe4,
+       0x11, 0x7e, 0x0d, 0xae, 0xb6, 0xda, 0xad, 0x4e, 0x78, 0x3b, 0x55, 0x7b, 0x1d, 0xae, 0x8d, 0x1f,
+       0x0b, 0x97, 0x9a, 0x54, 0xe3, 0xcc, 0x51, 0x5e, 0x20, 0x58, 0x0a, 0xa2, 0x93, 0xb5, 0x6c, 0x41,
+       0x3e, 0xf0, 0xdf, 0x71, 0xc4, 0x69, 0x0e, 0xda, 0xe6, 0xea, 0xe5, 0xb2, 0xfd, 0xde, 0xb5, 0xdc,
+       0x0b, 0xad, 0x5d, 0xbc, 0x0a, 0x8b, 0x86, 0xa5, 0xd3, 0xaf, 0x3a, 0x7d, 0x5b, 0x57, 0x39, 0x75,
+       0x0b, 0x73, 0x25, 0xb4, 0x3e, 0x4f, 0x16, 0xc4, 0xe6, 0x53, 0x7f, 0x4f, 0x51, 0x01, 0xef, 0x98,
+       0x26, 0xd3, 0x54, 0x4e, 0x9b, 0xba, 0x9b, 0xb0, 0x74, 0x41, 0x53, 0x47, 0x89, 0x9a, 0x7a, 0x1d,
+       0x56, 0x42, 0x2e, 0x64, 0xb8, 0xaf, 0x66, 0xe4, 0xf7, 0x14, 0x64, 0x82, 0x80, 0xf1, 0x7d, 0x48,
+       0x1b, 0x96, 0x4b, 0x1d, 0x2e, 0x42, 0xca, 0x55, 0x6f, 0x5c, 0xd2, 0xd9, 0xf7, 0x66, 0x88, 0x04,
+       0x7b, 0x34, 0x3f, 0x15, 0xe2, 0xcc, 0x4d, 0xa7, 0xf9, 0x60, 0x9f, 0x26, 0xbc, 0xa5, 0x13, 0xd2,
+       0x84, 0xb7, 0x2a, 0xa4, 0x75, 0x6a, 0x52, 0x4e, 0x65, 0x63, 0x8c, 0x8d, 0xd0, 0xe3, 0xf8, 0x48,
+       0xbc, 0x0a, 0x0b, 0xc7, 0xaa, 0x4b, 0x3b, 0xe7, 0xd4, 0x71, 0xbd, 0x73, 0xed, 0x65, 0x7e, 0x76,
+       0x0f, 0x91, 0x9c, 0xb7, 0xfb, 0xcc, 0xdf, 0xac, 0xe5, 0x20, 0xcb, 0x6c, 0xea, 0x88, 0x54, 0xd4,
+       0x6e, 0xc1, 0x0d, 0x8d, 0x59, 0x27, 0xa6, 0xa1, 0xf1, 0x8e, 0x4e, 0x39, 0x95, 0xc7, 0x8c, 0x3b,
+       0x2a, 0xa7, 0xdd, 0x81, 0xf2, 0x3d, 0x82, 0xa5, 0xf0, 0x39, 0xc1, 0x1b, 0x30, 0x7b, 0x4a, 0x83,
+       0x2e, 0x1f, 0x9f, 0x76, 0x0f, 0x84, 0x0b, 0x70, 0x25, 0x90, 0xe2, 0x65, 0x7a, 0x96, 0x04, 0x4b,
+       0x7c, 0x07, 0xae, 0x4e, 0xf8, 0xa5, 0xba, 0x48, 0x6b, 0x86, 0xe4, 0x83, 0x17, 0xbb, 0x72, 0x5f,
+       0xf9, 0x17, 0x41, 0x6e, 0x6c, 0xee, 0xe0, 0xcf, 0x20, 0x2f, 0xe6, 0x95, 0xc6, 0x2c, 0xd7, 0x70,
+       0x39, 0xb5, 0xb4, 0x81, 0xf8, 0x84, 0x97, 0xaa, 0x9b, 0xd3, 0x66, 0x96, 0x78, 0xae, 0x8f, 0x78,
+       0x7b, 0x33, 0x64, 0xd9, 0x09, 0x6f, 0x4d, 0x36, 0x87, 0x54, 0x44, 0x73, 0x50, 0xf6, 0x61, 0x79,
+       0xc2, 0x12, 0x2e, 0xc1, 0x4d, 0xd2, 0xd8, 0xd9, 0xed, 0xd4, 0xdb, 0xad, 0xc3, 0xe6, 0xe1, 0x51,
+       0xa3, 0x55, 0xff, 0x64, 0xe2, 0xb3, 0x07, 0x48, 0x1f, 0x1e, 0x91, 0x76, 0xeb, 0x71, 0x1e, 0xe1,
+       0x05, 0xc8, 0x34, 0x9e, 0x35, 0x5a, 0x47, 0x4f, 0xc5, 0x67, 0x8e, 0x21, 0x3f, 0x16, 0x8c, 0x3f,
+       0xd0, 0x7e, 0x4c, 0x01, 0xbe, 0xd8, 0xe2, 0x31, 0x01, 0x10, 0xc1, 0x7f, 0xe9, 0x18, 0x9c, 0xca,
+       0xb9, 0xb6, 0x95, 0x70, 0x3e, 0x88, 0xe8, 0x3f, 0xf2, 0x88, 0x7b, 0x33, 0x24, 0xeb, 0x04, 0x0b,
+       0xdc, 0x86, 0xac, 0x7f, 0x01, 0xb0, 0xcc, 0x60, 0xda, 0x6d, 0xbe, 0x8a, 0xc9, 0xb6, 0x65, 0x8a,
+       0xd1, 0xec, 0xc8, 0xe7, 0xe2, 0xfb, 0x90, 0x1d, 0xba, 0xc2, 0x5b, 0x70, 0xcd, 0x76, 0xe8, 0xb9,
+       0xc1, 0xfa, 0x6e, 0xe7, 0xe2, 0x64, 0x58, 0x09, 0xde, 0x8d, 0xd9, 0x2e, 0x02, 0x64, 0x02, 0xbb,
+       0xb5, 0xb4, 0xdf, 0xe8, 0xab, 0x7f, 0xa7, 0x21, 0xbb, 0x1b, 0x88, 0xc1, 0xcf, 0x21, 0xed, 0xdf,
+       0xf4, 0xb0, 0x12, 0xa9, 0x34, 0x74, 0x55, 0x2d, 0xae, 0x5e, 0x8a, 0x91, 0x23, 0xe8, 0xce, 0x77,
+       0x7f, 0xfd, 0xf3, 0x53, 0x6a, 0x4d, 0x29, 0x79, 0x57, 0x5f, 0xd9, 0xad, 0xdc, 0xca, 0xd7, 0xa3,
+       0x4e, 0xf6, 0xcd, 0x03, 0x53, 0x30, 0x1e, 0xa0, 0x0d, 0xfc, 0x03, 0x82, 0x4c, 0x70, 0xdd, 0xc0,
+       0x6f, 0x47, 0x1f, 0xbb, 0xf0, 0x55, 0xae, 0xb8, 0x36, 0x05, 0x25, 0x65, 0xdc, 0x13, 0x32, 0x6e,
+       0x2b, 0x4a, 0xbc, 0x0c, 0x47, 0x72, 0x3c, 0x21, 0xbf, 0x20, 0xc8, 0x4f, 0xce, 0x77, 0x7c, 0x37,
+       0xd2, 0x55, 0xcc, 0xd5, 0xa4, 0x78, 0x2f, 0x21, 0x5a, 0x0a, 0xbc, 0x2f, 0x04, 0x56, 0x94, 0x8d,
+       0x78, 0x81, 0xc7, 0x13, 0x5c, 0x4f, 0xe8, 0x73, 0x48, 0xfb, 0x13, 0x2b, 0xa6, 0x62, 0xa1, 0x61,
+       0x1d, 0x53, 0xb1, 0xf0, 0xc8, 0x4b, 0x52, 0x31, 0x4d, 0x30, 0x86, 0x15, 0x93, 0xd7, 0x8e, 0xb8,
+       0x8a, 0x85, 0x6f, 0x3a, 0x71, 0x15, 0x9b, 0xbc, 0xbb, 0x24, 0xa9, 0x98, 0xe4, 0x78, 0x42, 0x5e,
+       0x22, 0xc8, 0x8d, 0x4d, 0x34, 0x1c, 0x7d, 0x77, 0xb9, 0x38, 0x56, 0x8b, 0xeb, 0xd3, 0x81, 0x52,
+       0xd1, 0xa6, 0x50, 0xb4, 0xa1, 0xac, 0xc5, 0x2b, 0x52, 0x47, 0xb4, 0x07, 0x68, 0xa3, 0xf6, 0x02,
+       0xc1, 0x75, 0x8d, 0xf5, 0xa2, 0x3c, 0xd4, 0x96, 0x86, 0x9f, 0xdd, 0x81, 0xf7, 0x2b, 0x78, 0x80,
+       0x3e, 0x7d, 0x28, 0x61, 0x5d, 0x66, 0xaa, 0x56, 0xb7, 0xcc, 0x9c, 0x6e, 0xa5, 0x4b, 0x2d, 0xf1,
+       0xa3, 0x58, 0xf1, 0x5f, 0xa9, 0xb6, 0xe1, 0x86, 0x7e, 0x26, 0xb7, 0x87, 0x8b, 0x5f, 0x53, 0x6f,
+       0x3c, 0xf6, 0xe9, 0x75, 0x93, 0xf5, 0xf5, 0xf2, 0xd0, 0x7a, 0xf9, 0xd9, 0xd6, 0x71, 0x5a, 0x18,
+       0x79, 0xe7, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x0f, 0xc7, 0x4b, 0x0a, 0x0f, 0x00, 0x00,
+}