github.com/lfch/etcd-io/tests/v3@v3.0.0-20221004140520-eac99acd3e9d/functional/rpcpb/rpc.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: rpcpb/rpc.proto
     3  
     4  package rpcpb
     5  
     6  import (
     7  	context "context"
     8  	encoding_binary "encoding/binary"
     9  	fmt "fmt"
    10  	io "io"
    11  	math "math"
    12  	math_bits "math/bits"
    13  
    14  	_ "github.com/gogo/protobuf/gogoproto"
    15  	proto "github.com/golang/protobuf/proto"
    16  	grpc "google.golang.org/grpc"
    17  	codes "google.golang.org/grpc/codes"
    18  	status "google.golang.org/grpc/status"
    19  )
    20  
    21  // Reference imports to suppress errors if they are not otherwise used.
    22  var _ = proto.Marshal
    23  var _ = fmt.Errorf
    24  var _ = math.Inf
    25  
    26  // This is a compile-time assertion to ensure that this generated file
    27  // is compatible with the proto package it is being compiled against.
    28  // A compilation error at this line likely means your copy of the
    29  // proto package needs to be updated.
    30  const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
    31  
    32  type StresserType int32
    33  
    34  const (
    35  	StresserType_KV_WRITE_SMALL      StresserType = 0
    36  	StresserType_KV_WRITE_LARGE      StresserType = 1
    37  	StresserType_KV_READ_ONE_KEY     StresserType = 2
    38  	StresserType_KV_READ_RANGE       StresserType = 3
    39  	StresserType_KV_DELETE_ONE_KEY   StresserType = 4
    40  	StresserType_KV_DELETE_RANGE     StresserType = 5
    41  	StresserType_KV_TXN_WRITE_DELETE StresserType = 6
    42  	StresserType_LEASE               StresserType = 10
    43  	StresserType_ELECTION_RUNNER     StresserType = 20
    44  	StresserType_WATCH_RUNNER        StresserType = 31
    45  	StresserType_LOCK_RACER_RUNNER   StresserType = 41
    46  	StresserType_LEASE_RUNNER        StresserType = 51
    47  )
    48  
    49  var StresserType_name = map[int32]string{
    50  	0:  "KV_WRITE_SMALL",
    51  	1:  "KV_WRITE_LARGE",
    52  	2:  "KV_READ_ONE_KEY",
    53  	3:  "KV_READ_RANGE",
    54  	4:  "KV_DELETE_ONE_KEY",
    55  	5:  "KV_DELETE_RANGE",
    56  	6:  "KV_TXN_WRITE_DELETE",
    57  	10: "LEASE",
    58  	20: "ELECTION_RUNNER",
    59  	31: "WATCH_RUNNER",
    60  	41: "LOCK_RACER_RUNNER",
    61  	51: "LEASE_RUNNER",
    62  }
    63  
    64  var StresserType_value = map[string]int32{
    65  	"KV_WRITE_SMALL":      0,
    66  	"KV_WRITE_LARGE":      1,
    67  	"KV_READ_ONE_KEY":     2,
    68  	"KV_READ_RANGE":       3,
    69  	"KV_DELETE_ONE_KEY":   4,
    70  	"KV_DELETE_RANGE":     5,
    71  	"KV_TXN_WRITE_DELETE": 6,
    72  	"LEASE":               10,
    73  	"ELECTION_RUNNER":     20,
    74  	"WATCH_RUNNER":        31,
    75  	"LOCK_RACER_RUNNER":   41,
    76  	"LEASE_RUNNER":        51,
    77  }
    78  
    79  func (x StresserType) String() string {
    80  	return proto.EnumName(StresserType_name, int32(x))
    81  }
    82  
    83  func (StresserType) EnumDescriptor() ([]byte, []int) {
    84  	return fileDescriptor_4fbc93a8dcc3881e, []int{0}
    85  }
    86  
    87  type Checker int32
    88  
    89  const (
    90  	Checker_KV_HASH                Checker = 0
    91  	Checker_LEASE_EXPIRE           Checker = 1
    92  	Checker_RUNNER                 Checker = 2
    93  	Checker_NO_CHECK               Checker = 3
    94  	Checker_SHORT_TTL_LEASE_EXPIRE Checker = 4
    95  )
    96  
    97  var Checker_name = map[int32]string{
    98  	0: "KV_HASH",
    99  	1: "LEASE_EXPIRE",
   100  	2: "RUNNER",
   101  	3: "NO_CHECK",
   102  	4: "SHORT_TTL_LEASE_EXPIRE",
   103  }
   104  
   105  var Checker_value = map[string]int32{
   106  	"KV_HASH":                0,
   107  	"LEASE_EXPIRE":           1,
   108  	"RUNNER":                 2,
   109  	"NO_CHECK":               3,
   110  	"SHORT_TTL_LEASE_EXPIRE": 4,
   111  }
   112  
   113  func (x Checker) String() string {
   114  	return proto.EnumName(Checker_name, int32(x))
   115  }
   116  
   117  func (Checker) EnumDescriptor() ([]byte, []int) {
   118  	return fileDescriptor_4fbc93a8dcc3881e, []int{1}
   119  }
   120  
   121  type Operation int32
   122  
   123  const (
   124  	// NOT_STARTED is the agent status before etcd first start.
   125  	Operation_NOT_STARTED Operation = 0
   126  	// INITIAL_START_ETCD is only called to start etcd, the very first time.
   127  	Operation_INITIAL_START_ETCD Operation = 10
   128  	// RESTART_ETCD is sent to restart killed etcd.
   129  	Operation_RESTART_ETCD Operation = 11
   130  	// SIGTERM_ETCD pauses etcd process while keeping data directories
   131  	// and previous etcd configurations.
   132  	Operation_SIGTERM_ETCD Operation = 20
   133  	// SIGQUIT_ETCD_AND_REMOVE_DATA kills etcd process and removes all data
   134  	// directories to simulate destroying the whole machine.
   135  	Operation_SIGQUIT_ETCD_AND_REMOVE_DATA Operation = 21
   136  	// SAVE_SNAPSHOT is sent to trigger local member to download its snapshot
   137  	// onto its local disk with the specified path from tester.
   138  	Operation_SAVE_SNAPSHOT Operation = 30
   139  	// RESTORE_RESTART_FROM_SNAPSHOT is sent to trigger local member to
   140  	// restore a cluster from existing snapshot from disk, and restart
   141  	// an etcd instance from recovered data.
   142  	Operation_RESTORE_RESTART_FROM_SNAPSHOT Operation = 31
   143  	// RESTART_FROM_SNAPSHOT is sent to trigger local member to restart
   144  	// and join an existing cluster that has been recovered from a snapshot.
   145  	// Local member joins this cluster with fresh data.
   146  	Operation_RESTART_FROM_SNAPSHOT Operation = 32
   147  	// SIGQUIT_ETCD_AND_ARCHIVE_DATA is sent when consistency check failed,
   148  	// thus need to archive etcd data directories.
   149  	Operation_SIGQUIT_ETCD_AND_ARCHIVE_DATA Operation = 40
   150  	// SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT destroys etcd process,
   151  	// etcd data, and agent server.
   152  	Operation_SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT Operation = 41
   153  	// BLACKHOLE_PEER_PORT_TX_RX drops all outgoing/incoming packets from/to
   154  	// the peer port on target member's peer port.
   155  	Operation_BLACKHOLE_PEER_PORT_TX_RX Operation = 100
   156  	// UNBLACKHOLE_PEER_PORT_TX_RX removes outgoing/incoming packet dropping.
   157  	Operation_UNBLACKHOLE_PEER_PORT_TX_RX Operation = 101
   158  	// DELAY_PEER_PORT_TX_RX delays all outgoing/incoming packets from/to
   159  	// the peer port on target member's peer port.
   160  	Operation_DELAY_PEER_PORT_TX_RX Operation = 200
   161  	// UNDELAY_PEER_PORT_TX_RX removes all outgoing/incoming delays.
   162  	Operation_UNDELAY_PEER_PORT_TX_RX Operation = 201
   163  )
   164  
   165  var Operation_name = map[int32]string{
   166  	0:   "NOT_STARTED",
   167  	10:  "INITIAL_START_ETCD",
   168  	11:  "RESTART_ETCD",
   169  	20:  "SIGTERM_ETCD",
   170  	21:  "SIGQUIT_ETCD_AND_REMOVE_DATA",
   171  	30:  "SAVE_SNAPSHOT",
   172  	31:  "RESTORE_RESTART_FROM_SNAPSHOT",
   173  	32:  "RESTART_FROM_SNAPSHOT",
   174  	40:  "SIGQUIT_ETCD_AND_ARCHIVE_DATA",
   175  	41:  "SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT",
   176  	100: "BLACKHOLE_PEER_PORT_TX_RX",
   177  	101: "UNBLACKHOLE_PEER_PORT_TX_RX",
   178  	200: "DELAY_PEER_PORT_TX_RX",
   179  	201: "UNDELAY_PEER_PORT_TX_RX",
   180  }
   181  
   182  var Operation_value = map[string]int32{
   183  	"NOT_STARTED":                                 0,
   184  	"INITIAL_START_ETCD":                          10,
   185  	"RESTART_ETCD":                                11,
   186  	"SIGTERM_ETCD":                                20,
   187  	"SIGQUIT_ETCD_AND_REMOVE_DATA":                21,
   188  	"SAVE_SNAPSHOT":                               30,
   189  	"RESTORE_RESTART_FROM_SNAPSHOT":               31,
   190  	"RESTART_FROM_SNAPSHOT":                       32,
   191  	"SIGQUIT_ETCD_AND_ARCHIVE_DATA":               40,
   192  	"SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT": 41,
   193  	"BLACKHOLE_PEER_PORT_TX_RX":                   100,
   194  	"UNBLACKHOLE_PEER_PORT_TX_RX":                 101,
   195  	"DELAY_PEER_PORT_TX_RX":                       200,
   196  	"UNDELAY_PEER_PORT_TX_RX":                     201,
   197  }
   198  
   199  func (x Operation) String() string {
   200  	return proto.EnumName(Operation_name, int32(x))
   201  }
   202  
   203  func (Operation) EnumDescriptor() ([]byte, []int) {
   204  	return fileDescriptor_4fbc93a8dcc3881e, []int{2}
   205  }
   206  
   207  // Case defines various system faults or test case in distributed systems,
   208  // in order to verify correct behavior of etcd servers and clients.
   209  type Case int32
   210  
   211  const (
   212  	// SIGTERM_ONE_FOLLOWER stops a randomly chosen follower (non-leader)
   213  	// but does not delete its data directories on disk for next restart.
   214  	// It waits "delay-ms" before recovering this failure.
   215  	// The expected behavior is that the follower comes back online
   216  	// and rejoins the cluster, and then each member continues to process
   217  	// client requests ('Put' request that requires Raft consensus).
   218  	Case_SIGTERM_ONE_FOLLOWER Case = 0
   219  	// SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT stops a randomly chosen
   220  	// follower but does not delete its data directories on disk for next
   221  	// restart. And waits until most up-to-date node (leader) applies the
   222  	// snapshot count of entries since the stop operation.
   223  	// The expected behavior is that the follower comes back online and
   224  	// rejoins the cluster, and then active leader sends snapshot
   225  	// to the follower to force it to follow the leader's log.
   226  	// As always, after recovery, each member must be able to process
   227  	// client requests.
   228  	Case_SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 1
   229  	// SIGTERM_LEADER stops the active leader node but does not delete its
   230  	// data directories on disk for next restart. Then it waits "delay-ms"
   231  	// before recovering this failure, in order to trigger election timeouts.
   232  	// The expected behavior is that a new leader gets elected, and the
   233  	// old leader comes back online and rejoins the cluster as a follower.
   234  	// As always, after recovery, each member must be able to process
   235  	// client requests.
   236  	Case_SIGTERM_LEADER Case = 2
   237  	// SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT stops the active leader node
   238  	// but does not delete its data directories on disk for next restart.
   239  	// And waits until most up-to-date node ("new" leader) applies the
   240  	// snapshot count of entries since the stop operation.
   241  	// The expected behavior is that cluster elects a new leader, and the
   242  	// old leader comes back online and rejoins the cluster as a follower.
   243  	// And it receives the snapshot from the new leader to overwrite its
   244  	// store. As always, after recovery, each member must be able to
   245  	// process client requests.
   246  	Case_SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 3
   247  	// SIGTERM_QUORUM stops majority number of nodes to make the whole cluster
   248  	// inoperable but does not delete data directories on stopped nodes
   249  	// for next restart. And it waits "delay-ms" before recovering failure.
   250  	// The expected behavior is that nodes come back online, thus cluster
   251  	// comes back operative as well. As always, after recovery, each member
   252  	// must be able to process client requests.
   253  	Case_SIGTERM_QUORUM Case = 4
   254  	// SIGTERM_ALL stops the whole cluster but does not delete data directories
   255  	// on disk for next restart. And it waits "delay-ms" before  recovering
   256  	// this failure.
   257  	// The expected behavior is that nodes come back online, thus cluster
   258  	// comes back operative as well. As always, after recovery, each member
   259  	// must be able to process client requests.
   260  	Case_SIGTERM_ALL Case = 5
   261  	// SIGQUIT_AND_REMOVE_ONE_FOLLOWER stops a randomly chosen follower
   262  	// (non-leader), deletes its data directories on disk, and removes
   263  	// this member from cluster (membership reconfiguration). On recovery,
   264  	// tester adds a new member, and this member joins the existing cluster
   265  	// with fresh data. It waits "delay-ms" before recovering this
   266  	// failure. This simulates destroying one follower machine, where operator
   267  	// needs to add a new member from a fresh machine.
   268  	// The expected behavior is that a new member joins the existing cluster,
   269  	// and then each member continues to process client requests.
   270  	Case_SIGQUIT_AND_REMOVE_ONE_FOLLOWER Case = 10
   271  	// SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT stops a randomly
   272  	// chosen follower, deletes its data directories on disk, and removes
   273  	// this member from cluster (membership reconfiguration). On recovery,
   274  	// tester adds a new member, and this member joins the existing cluster
   275  	// restart. On member remove, cluster waits until most up-to-date node
   276  	// (leader) applies the snapshot count of entries since the stop operation.
   277  	// This simulates destroying a leader machine, where operator needs to add
   278  	// a new member from a fresh machine.
   279  	// The expected behavior is that a new member joins the existing cluster,
   280  	// and receives a snapshot from the active leader. As always, after
   281  	// recovery, each member must be able to process client requests.
   282  	Case_SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 11
   283  	// SIGQUIT_AND_REMOVE_LEADER stops the active leader node, deletes its
   284  	// data directories on disk, and removes this member from cluster.
   285  	// On recovery, tester adds a new member, and this member joins the
   286  	// existing cluster with fresh data. It waits "delay-ms" before
   287  	// recovering this failure. This simulates destroying a leader machine,
   288  	// where operator needs to add a new member from a fresh machine.
   289  	// The expected behavior is that a new member joins the existing cluster,
   290  	// and then each member continues to process client requests.
   291  	Case_SIGQUIT_AND_REMOVE_LEADER Case = 12
   292  	// SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT stops the active leader,
   293  	// deletes its data directories on disk, and removes this member from
   294  	// cluster (membership reconfiguration). On recovery, tester adds a new
   295  	// member, and this member joins the existing cluster restart. On member
   296  	// remove, cluster waits until most up-to-date node (new leader) applies
   297  	// the snapshot count of entries since the stop operation. This simulates
   298  	// destroying a leader machine, where operator needs to add a new member
   299  	// from a fresh machine.
   300  	// The expected behavior is that on member remove, cluster elects a new
   301  	// leader, and a new member joins the existing cluster and receives a
   302  	// snapshot from the newly elected leader. As always, after recovery, each
   303  	// member must be able to process client requests.
   304  	Case_SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 13
   305  	// SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH first
   306  	// stops majority number of nodes, deletes data directories on those quorum
   307  	// nodes, to make the whole cluster inoperable. Now that quorum and their
   308  	// data are totally destroyed, cluster cannot even remove unavailable nodes
   309  	// (e.g. 2 out of 3 are lost, so no leader can be elected).
   310  	// Let's assume 3-node cluster of node A, B, and C. One day, node A and B
   311  	// are destroyed and all their data are gone. The only viable solution is
   312  	// to recover from C's latest snapshot.
   313  	//
   314  	// To simulate:
   315  	//  1. Assume node C is the current leader with most up-to-date data.
   316  	//  2. Download snapshot from node C, before destroying node A and B.
   317  	//  3. Destroy node A and B, and make the whole cluster inoperable.
   318  	//  4. Now node C cannot operate either.
   319  	//  5. SIGTERM node C and remove its data directories.
   320  	//  6. Restore a new seed member from node C's latest snapshot file.
   321  	//  7. Add another member to establish 2-node cluster.
   322  	//  8. Add another member to establish 3-node cluster.
   323  	//  9. Add more if any.
   324  	//
   325  	// The expected behavior is that etcd successfully recovers from such
   326  	// disastrous situation as only 1-node survives out of 3-node cluster,
   327  	// new members joins the existing cluster, and previous data from snapshot
   328  	// are still preserved after recovery process. As always, after recovery,
   329  	// each member must be able to process client requests.
   330  	Case_SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH Case = 14
   331  	// BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER drops all outgoing/incoming
   332  	// packets from/to the peer port on a randomly chosen follower
   333  	// (non-leader), and waits for "delay-ms" until recovery.
   334  	// The expected behavior is that once dropping operation is undone,
   335  	// each member must be able to process client requests.
   336  	Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER Case = 100
   337  	// BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT drops
   338  	// all outgoing/incoming packets from/to the peer port on a randomly
   339  	// chosen follower (non-leader), and waits for most up-to-date node
   340  	// (leader) applies the snapshot count of entries since the blackhole
   341  	// operation.
   342  	// The expected behavior is that once packet drop operation is undone,
   343  	// the slow follower tries to catch up, possibly receiving the snapshot
   344  	// from the active leader. As always, after recovery, each member must
   345  	// be able to process client requests.
   346  	Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 101
   347  	// BLACKHOLE_PEER_PORT_TX_RX_LEADER drops all outgoing/incoming packets
   348  	// from/to the peer port on the active leader (isolated), and waits for
   349  	// "delay-ms" until recovery, in order to trigger election timeout.
   350  	// The expected behavior is that after election timeout, a new leader gets
   351  	// elected, and once dropping operation is undone, the old leader comes
   352  	// back and rejoins the cluster as a follower. As always, after recovery,
   353  	// each member must be able to process client requests.
   354  	Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER Case = 102
   355  	// BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT drops all
   356  	// outgoing/incoming packets from/to the peer port on the active leader,
   357  	// and waits for most up-to-date node (leader) applies the snapshot
   358  	// count of entries since the blackhole operation.
   359  	// The expected behavior is that cluster elects a new leader, and once
   360  	// dropping operation is undone, the old leader comes back and rejoins
   361  	// the cluster as a follower. The slow follower tries to catch up, likely
   362  	// receiving the snapshot from the new active leader. As always, after
   363  	// recovery, each member must be able to process client requests.
   364  	Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 103
   365  	// BLACKHOLE_PEER_PORT_TX_RX_QUORUM drops all outgoing/incoming packets
   366  	// from/to the peer ports on majority nodes of cluster, thus losing its
   367  	// leader and cluster being inoperable. And it waits for "delay-ms"
   368  	// until recovery.
   369  	// The expected behavior is that once packet drop operation is undone,
   370  	// nodes come back online, thus cluster comes back operative. As always,
   371  	// after recovery, each member must be able to process client requests.
   372  	Case_BLACKHOLE_PEER_PORT_TX_RX_QUORUM Case = 104
   373  	// BLACKHOLE_PEER_PORT_TX_RX_ALL drops all outgoing/incoming packets
   374  	// from/to the peer ports on all nodes, thus making cluster totally
   375  	// inoperable. It waits for "delay-ms" until recovery.
   376  	// The expected behavior is that once packet drop operation is undone,
   377  	// nodes come back online, thus cluster comes back operative. As always,
   378  	// after recovery, each member must be able to process client requests.
   379  	Case_BLACKHOLE_PEER_PORT_TX_RX_ALL Case = 105
   380  	// DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER delays outgoing/incoming packets
   381  	// from/to the peer port on a randomly chosen follower (non-leader).
   382  	// It waits for "delay-ms" until recovery.
   383  	// The expected behavior is that once packet delay operation is undone,
   384  	// the follower comes back and tries to catch up with latest changes from
   385  	// cluster. And as always, after recovery, each member must be able to
   386  	// process client requests.
   387  	Case_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER Case = 200
   388  	// RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER delays outgoing/incoming
   389  	// packets from/to the peer port on a randomly chosen follower
   390  	// (non-leader) with a randomized time duration (thus isolated). It
   391  	// waits for "delay-ms" until recovery.
   392  	// The expected behavior is that once packet delay operation is undone,
   393  	// each member must be able to process client requests.
   394  	Case_RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER Case = 201
   395  	// DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT delays
   396  	// outgoing/incoming packets from/to the peer port on a randomly chosen
   397  	// follower (non-leader), and waits for most up-to-date node (leader)
   398  	// applies the snapshot count of entries since the delay operation.
   399  	// The expected behavior is that the delayed follower gets isolated
   400  	// and behind the current active leader, and once delay operation is undone,
   401  	// the slow follower comes back and catches up possibly receiving snapshot
   402  	// from the active leader. As always, after recovery, each member must be
   403  	// able to process client requests.
   404  	Case_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 202
   405  	// RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT delays
   406  	// outgoing/incoming packets from/to the peer port on a randomly chosen
   407  	// follower (non-leader) with a randomized time duration, and waits for
   408  	// most up-to-date node (leader) applies the snapshot count of entries
   409  	// since the delay operation.
   410  	// The expected behavior is that the delayed follower gets isolated
   411  	// and behind the current active leader, and once delay operation is undone,
   412  	// the slow follower comes back and catches up, possibly receiving a
   413  	// snapshot from the active leader. As always, after recovery, each member
   414  	// must be able to process client requests.
   415  	Case_RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 203
   416  	// DELAY_PEER_PORT_TX_RX_LEADER delays outgoing/incoming packets from/to
   417  	// the peer port on the active leader. And waits for "delay-ms" until
   418  	// recovery.
   419  	// The expected behavior is that cluster may elect a new leader, and
   420  	// once packet delay operation is undone, the (old) leader comes back
   421  	// and tries to catch up with latest changes from cluster. As always,
   422  	// after recovery, each member must be able to process client requests.
   423  	Case_DELAY_PEER_PORT_TX_RX_LEADER Case = 204
   424  	// RANDOM_DELAY_PEER_PORT_TX_RX_LEADER delays outgoing/incoming packets
   425  	// from/to the peer port on the active leader with a randomized time
   426  	// duration. And waits for "delay-ms" until recovery.
   427  	// The expected behavior is that cluster may elect a new leader, and
   428  	// once packet delay operation is undone, the (old) leader comes back
   429  	// and tries to catch up with latest changes from cluster. As always,
   430  	// after recovery, each member must be able to process client requests.
   431  	Case_RANDOM_DELAY_PEER_PORT_TX_RX_LEADER Case = 205
   432  	// DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT delays
   433  	// outgoing/incoming packets from/to the peer port on the active leader,
   434  	// and waits for most up-to-date node (current or new leader) applies the
   435  	// snapshot count of entries since the delay operation.
   436  	// The expected behavior is that cluster may elect a new leader, and
   437  	// the old leader gets isolated and behind the current active leader,
   438  	// and once delay operation is undone, the slow follower comes back
   439  	// and catches up, likely receiving a snapshot from the active leader.
   440  	// As always, after recovery, each member must be able to process client
   441  	// requests.
   442  	Case_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 206
   443  	// RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT delays
   444  	// outgoing/incoming packets from/to the peer port on the active leader,
   445  	// with a randomized time duration. And it waits for most up-to-date node
   446  	// (current or new leader) applies the snapshot count of entries since the
   447  	// delay operation.
   448  	// The expected behavior is that cluster may elect a new leader, and
   449  	// the old leader gets isolated and behind the current active leader,
   450  	// and once delay operation is undone, the slow follower comes back
   451  	// and catches up, likely receiving a snapshot from the active leader.
   452  	// As always, after recovery, each member must be able to process client
   453  	// requests.
   454  	Case_RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 207
   455  	// DELAY_PEER_PORT_TX_RX_QUORUM delays outgoing/incoming packets from/to
   456  	// the peer ports on majority nodes of cluster. And it waits for
   457  	// "delay-ms" until recovery, likely to trigger election timeouts.
   458  	// The expected behavior is that cluster may elect a new leader, while
   459  	// quorum of nodes struggle with slow networks, and once delay operation
   460  	// is undone, nodes come back and cluster comes back operative. As always,
   461  	// after recovery, each member must be able to process client requests.
   462  	Case_DELAY_PEER_PORT_TX_RX_QUORUM Case = 208
   463  	// RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM delays outgoing/incoming packets
   464  	// from/to the peer ports on majority nodes of cluster, with randomized
   465  	// time durations. And it waits for "delay-ms" until recovery, likely
   466  	// to trigger election timeouts.
   467  	// The expected behavior is that cluster may elect a new leader, while
   468  	// quorum of nodes struggle with slow networks, and once delay operation
   469  	// is undone, nodes come back and cluster comes back operative. As always,
   470  	// after recovery, each member must be able to process client requests.
   471  	Case_RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM Case = 209
   472  	// DELAY_PEER_PORT_TX_RX_ALL delays outgoing/incoming packets from/to the
   473  	// peer ports on all nodes. And it waits for "delay-ms" until recovery,
   474  	// likely to trigger election timeouts.
   475  	// The expected behavior is that cluster may become totally inoperable,
   476  	// struggling with slow networks across the whole cluster. Once delay
   477  	// operation is undone, nodes come back and cluster comes back operative.
   478  	// As always, after recovery, each member must be able to process client
   479  	// requests.
   480  	Case_DELAY_PEER_PORT_TX_RX_ALL Case = 210
   481  	// RANDOM_DELAY_PEER_PORT_TX_RX_ALL delays outgoing/incoming packets
   482  	// from/to the peer ports on all nodes, with randomized time durations.
   483  	// And it waits for "delay-ms" until recovery, likely to trigger
   484  	// election timeouts.
   485  	// The expected behavior is that cluster may become totally inoperable,
   486  	// struggling with slow networks across the whole cluster. Once delay
   487  	// operation is undone, nodes come back and cluster comes back operative.
   488  	// As always, after recovery, each member must be able to process client
   489  	// requests.
   490  	Case_RANDOM_DELAY_PEER_PORT_TX_RX_ALL Case = 211
   491  	// NO_FAIL_WITH_STRESS stops injecting failures while testing the
   492  	// consistency and correctness under pressure loads, for the duration of
   493  	// "delay-ms". Goal is to ensure cluster be still making progress
   494  	// on recovery, and verify system does not deadlock following a sequence
   495  	// of failure injections.
   496  	// The expected behavior is that cluster remains fully operative in healthy
   497  	// condition. As always, after recovery, each member must be able to process
   498  	// client requests.
   499  	Case_NO_FAIL_WITH_STRESS Case = 300
   500  	// NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS neither injects failures nor
   501  	// sends stressig client requests to the cluster, for the duration of
   502  	// "delay-ms". Goal is to ensure cluster be still making progress
   503  	// on recovery, and verify system does not deadlock following a sequence
   504  	// of failure injections.
   505  	// The expected behavior is that cluster remains fully operative in healthy
   506  	// condition, and clients requests during liveness period succeed without
   507  	// errors.
   508  	// Note: this is how Google Chubby does failure injection testing
   509  	// https://static.googleusercontent.com/media/research.google.com/en//archive/paxos_made_live.pdf.
   510  	Case_NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS Case = 301
   511  	// FAILPOINTS injects failpoints to etcd server runtime, triggering panics
   512  	// in critical code paths.
   513  	Case_FAILPOINTS Case = 400
   514  	// FAILPOINTS_WITH_DISK_IO_LATENCY injects high disk I/O latency failure in raftAfterSave code paths.
   515  	Case_FAILPOINTS_WITH_DISK_IO_LATENCY Case = 401
   516  	// EXTERNAL runs external failure injection scripts.
   517  	Case_EXTERNAL Case = 500
   518  )
   519  
   520  var Case_name = map[int32]string{
   521  	0:   "SIGTERM_ONE_FOLLOWER",
   522  	1:   "SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
   523  	2:   "SIGTERM_LEADER",
   524  	3:   "SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT",
   525  	4:   "SIGTERM_QUORUM",
   526  	5:   "SIGTERM_ALL",
   527  	10:  "SIGQUIT_AND_REMOVE_ONE_FOLLOWER",
   528  	11:  "SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
   529  	12:  "SIGQUIT_AND_REMOVE_LEADER",
   530  	13:  "SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT",
   531  	14:  "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH",
   532  	100: "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER",
   533  	101: "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
   534  	102: "BLACKHOLE_PEER_PORT_TX_RX_LEADER",
   535  	103: "BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT",
   536  	104: "BLACKHOLE_PEER_PORT_TX_RX_QUORUM",
   537  	105: "BLACKHOLE_PEER_PORT_TX_RX_ALL",
   538  	200: "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER",
   539  	201: "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER",
   540  	202: "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
   541  	203: "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
   542  	204: "DELAY_PEER_PORT_TX_RX_LEADER",
   543  	205: "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER",
   544  	206: "DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT",
   545  	207: "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT",
   546  	208: "DELAY_PEER_PORT_TX_RX_QUORUM",
   547  	209: "RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM",
   548  	210: "DELAY_PEER_PORT_TX_RX_ALL",
   549  	211: "RANDOM_DELAY_PEER_PORT_TX_RX_ALL",
   550  	300: "NO_FAIL_WITH_STRESS",
   551  	301: "NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS",
   552  	400: "FAILPOINTS",
   553  	401: "FAILPOINTS_WITH_DISK_IO_LATENCY",
   554  	500: "EXTERNAL",
   555  }
   556  
   557  var Case_value = map[string]int32{
   558  	"SIGTERM_ONE_FOLLOWER":                                               0,
   559  	"SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT":                        1,
   560  	"SIGTERM_LEADER":                                                     2,
   561  	"SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT":                              3,
   562  	"SIGTERM_QUORUM":                                                     4,
   563  	"SIGTERM_ALL":                                                        5,
   564  	"SIGQUIT_AND_REMOVE_ONE_FOLLOWER":                                    10,
   565  	"SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT":             11,
   566  	"SIGQUIT_AND_REMOVE_LEADER":                                          12,
   567  	"SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT":                   13,
   568  	"SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH": 14,
   569  	"BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER":                             100,
   570  	"BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT":      101,
   571  	"BLACKHOLE_PEER_PORT_TX_RX_LEADER":                                   102,
   572  	"BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT":            103,
   573  	"BLACKHOLE_PEER_PORT_TX_RX_QUORUM":                                   104,
   574  	"BLACKHOLE_PEER_PORT_TX_RX_ALL":                                      105,
   575  	"DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER":                                 200,
   576  	"RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER":                          201,
   577  	"DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT":          202,
   578  	"RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT":   203,
   579  	"DELAY_PEER_PORT_TX_RX_LEADER":                                       204,
   580  	"RANDOM_DELAY_PEER_PORT_TX_RX_LEADER":                                205,
   581  	"DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT":                206,
   582  	"RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT":         207,
   583  	"DELAY_PEER_PORT_TX_RX_QUORUM":                                       208,
   584  	"RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM":                                209,
   585  	"DELAY_PEER_PORT_TX_RX_ALL":                                          210,
   586  	"RANDOM_DELAY_PEER_PORT_TX_RX_ALL":                                   211,
   587  	"NO_FAIL_WITH_STRESS":                                                300,
   588  	"NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS":                                301,
   589  	"FAILPOINTS":                                                         400,
   590  	"FAILPOINTS_WITH_DISK_IO_LATENCY":                                    401,
   591  	"EXTERNAL":                                                           500,
   592  }
   593  
   594  func (x Case) String() string {
   595  	return proto.EnumName(Case_name, int32(x))
   596  }
   597  
   598  func (Case) EnumDescriptor() ([]byte, []int) {
   599  	return fileDescriptor_4fbc93a8dcc3881e, []int{3}
   600  }
   601  
   602  type Request struct {
   603  	Operation Operation `protobuf:"varint,1,opt,name=Operation,proto3,enum=rpcpb.Operation" json:"Operation,omitempty"`
   604  	// Member contains the same Member object from tester configuration.
   605  	Member *Member `protobuf:"bytes,2,opt,name=Member,proto3" json:"Member,omitempty"`
   606  	// Tester contains tester configuration.
   607  	Tester               *Tester  `protobuf:"bytes,3,opt,name=Tester,proto3" json:"Tester,omitempty"`
   608  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   609  	XXX_unrecognized     []byte   `json:"-"`
   610  	XXX_sizecache        int32    `json:"-"`
   611  }
   612  
   613  func (m *Request) Reset()         { *m = Request{} }
   614  func (m *Request) String() string { return proto.CompactTextString(m) }
   615  func (*Request) ProtoMessage()    {}
   616  func (*Request) Descriptor() ([]byte, []int) {
   617  	return fileDescriptor_4fbc93a8dcc3881e, []int{0}
   618  }
   619  func (m *Request) XXX_Unmarshal(b []byte) error {
   620  	return m.Unmarshal(b)
   621  }
   622  func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   623  	if deterministic {
   624  		return xxx_messageInfo_Request.Marshal(b, m, deterministic)
   625  	} else {
   626  		b = b[:cap(b)]
   627  		n, err := m.MarshalToSizedBuffer(b)
   628  		if err != nil {
   629  			return nil, err
   630  		}
   631  		return b[:n], nil
   632  	}
   633  }
   634  func (m *Request) XXX_Merge(src proto.Message) {
   635  	xxx_messageInfo_Request.Merge(m, src)
   636  }
   637  func (m *Request) XXX_Size() int {
   638  	return m.Size()
   639  }
   640  func (m *Request) XXX_DiscardUnknown() {
   641  	xxx_messageInfo_Request.DiscardUnknown(m)
   642  }
   643  
   644  var xxx_messageInfo_Request proto.InternalMessageInfo
   645  
   646  // SnapshotInfo contains SAVE_SNAPSHOT request results.
   647  type SnapshotInfo struct {
   648  	MemberName           string   `protobuf:"bytes,1,opt,name=MemberName,proto3" json:"MemberName,omitempty"`
   649  	MemberClientURLs     []string `protobuf:"bytes,2,rep,name=MemberClientURLs,proto3" json:"MemberClientURLs,omitempty"`
   650  	SnapshotPath         string   `protobuf:"bytes,3,opt,name=SnapshotPath,proto3" json:"SnapshotPath,omitempty"`
   651  	SnapshotFileSize     string   `protobuf:"bytes,4,opt,name=SnapshotFileSize,proto3" json:"SnapshotFileSize,omitempty"`
   652  	SnapshotTotalSize    string   `protobuf:"bytes,5,opt,name=SnapshotTotalSize,proto3" json:"SnapshotTotalSize,omitempty"`
   653  	SnapshotTotalKey     int64    `protobuf:"varint,6,opt,name=SnapshotTotalKey,proto3" json:"SnapshotTotalKey,omitempty"`
   654  	SnapshotHash         int64    `protobuf:"varint,7,opt,name=SnapshotHash,proto3" json:"SnapshotHash,omitempty"`
   655  	SnapshotRevision     int64    `protobuf:"varint,8,opt,name=SnapshotRevision,proto3" json:"SnapshotRevision,omitempty"`
   656  	Took                 string   `protobuf:"bytes,9,opt,name=Took,proto3" json:"Took,omitempty"`
   657  	Version              string   `protobuf:"bytes,10,opt,name=Version,proto3" json:"Version,omitempty"`
   658  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   659  	XXX_unrecognized     []byte   `json:"-"`
   660  	XXX_sizecache        int32    `json:"-"`
   661  }
   662  
   663  func (m *SnapshotInfo) Reset()         { *m = SnapshotInfo{} }
   664  func (m *SnapshotInfo) String() string { return proto.CompactTextString(m) }
   665  func (*SnapshotInfo) ProtoMessage()    {}
   666  func (*SnapshotInfo) Descriptor() ([]byte, []int) {
   667  	return fileDescriptor_4fbc93a8dcc3881e, []int{1}
   668  }
   669  func (m *SnapshotInfo) XXX_Unmarshal(b []byte) error {
   670  	return m.Unmarshal(b)
   671  }
   672  func (m *SnapshotInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   673  	if deterministic {
   674  		return xxx_messageInfo_SnapshotInfo.Marshal(b, m, deterministic)
   675  	} else {
   676  		b = b[:cap(b)]
   677  		n, err := m.MarshalToSizedBuffer(b)
   678  		if err != nil {
   679  			return nil, err
   680  		}
   681  		return b[:n], nil
   682  	}
   683  }
   684  func (m *SnapshotInfo) XXX_Merge(src proto.Message) {
   685  	xxx_messageInfo_SnapshotInfo.Merge(m, src)
   686  }
   687  func (m *SnapshotInfo) XXX_Size() int {
   688  	return m.Size()
   689  }
   690  func (m *SnapshotInfo) XXX_DiscardUnknown() {
   691  	xxx_messageInfo_SnapshotInfo.DiscardUnknown(m)
   692  }
   693  
   694  var xxx_messageInfo_SnapshotInfo proto.InternalMessageInfo
   695  
   696  type Response struct {
   697  	Success bool   `protobuf:"varint,1,opt,name=Success,proto3" json:"Success,omitempty"`
   698  	Status  string `protobuf:"bytes,2,opt,name=Status,proto3" json:"Status,omitempty"`
   699  	// Member contains the same Member object from tester request.
   700  	Member *Member `protobuf:"bytes,3,opt,name=Member,proto3" json:"Member,omitempty"`
   701  	// SnapshotInfo contains SAVE_SNAPSHOT request results.
   702  	SnapshotInfo         *SnapshotInfo `protobuf:"bytes,4,opt,name=SnapshotInfo,proto3" json:"SnapshotInfo,omitempty"`
   703  	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
   704  	XXX_unrecognized     []byte        `json:"-"`
   705  	XXX_sizecache        int32         `json:"-"`
   706  }
   707  
   708  func (m *Response) Reset()         { *m = Response{} }
   709  func (m *Response) String() string { return proto.CompactTextString(m) }
   710  func (*Response) ProtoMessage()    {}
   711  func (*Response) Descriptor() ([]byte, []int) {
   712  	return fileDescriptor_4fbc93a8dcc3881e, []int{2}
   713  }
   714  func (m *Response) XXX_Unmarshal(b []byte) error {
   715  	return m.Unmarshal(b)
   716  }
   717  func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   718  	if deterministic {
   719  		return xxx_messageInfo_Response.Marshal(b, m, deterministic)
   720  	} else {
   721  		b = b[:cap(b)]
   722  		n, err := m.MarshalToSizedBuffer(b)
   723  		if err != nil {
   724  			return nil, err
   725  		}
   726  		return b[:n], nil
   727  	}
   728  }
   729  func (m *Response) XXX_Merge(src proto.Message) {
   730  	xxx_messageInfo_Response.Merge(m, src)
   731  }
   732  func (m *Response) XXX_Size() int {
   733  	return m.Size()
   734  }
   735  func (m *Response) XXX_DiscardUnknown() {
   736  	xxx_messageInfo_Response.DiscardUnknown(m)
   737  }
   738  
   739  var xxx_messageInfo_Response proto.InternalMessageInfo
   740  
   741  type Member struct {
   742  	// EtcdExec is the executable etcd binary path in agent server.
   743  	EtcdExec string `protobuf:"bytes,1,opt,name=EtcdExec,proto3" json:"EtcdExec,omitempty" yaml:"etcd-exec"`
   744  	// AgentAddr is the agent HTTP server address.
   745  	AgentAddr string `protobuf:"bytes,11,opt,name=AgentAddr,proto3" json:"AgentAddr,omitempty" yaml:"agent-addr"`
   746  	// FailpointHTTPAddr is the agent's failpoints HTTP server address.
   747  	FailpointHTTPAddr string `protobuf:"bytes,12,opt,name=FailpointHTTPAddr,proto3" json:"FailpointHTTPAddr,omitempty" yaml:"failpoint-http-addr"`
   748  	// BaseDir is the base directory where all logs and etcd data are stored.
   749  	BaseDir string `protobuf:"bytes,101,opt,name=BaseDir,proto3" json:"BaseDir,omitempty" yaml:"base-dir"`
   750  	// EtcdClientProxy is true when client traffic needs to be proxied.
   751  	// If true, listen client URL port must be different than advertise client URL port.
   752  	EtcdClientProxy bool `protobuf:"varint,201,opt,name=EtcdClientProxy,proto3" json:"EtcdClientProxy,omitempty" yaml:"etcd-client-proxy"`
   753  	// EtcdPeerProxy is true when peer traffic needs to be proxied.
   754  	// If true, listen peer URL port must be different than advertise peer URL port.
   755  	EtcdPeerProxy bool `protobuf:"varint,202,opt,name=EtcdPeerProxy,proto3" json:"EtcdPeerProxy,omitempty" yaml:"etcd-peer-proxy"`
   756  	// EtcdClientEndpoint is the etcd client endpoint.
   757  	EtcdClientEndpoint string `protobuf:"bytes,301,opt,name=EtcdClientEndpoint,proto3" json:"EtcdClientEndpoint,omitempty" yaml:"etcd-client-endpoint"`
   758  	// Etcd defines etcd binary configuration flags.
   759  	Etcd *Etcd `protobuf:"bytes,302,opt,name=Etcd,proto3" json:"Etcd,omitempty" yaml:"etcd"`
   760  	// EtcdOnSnapshotRestore defines one-time use configuration during etcd
   761  	// snapshot recovery process.
   762  	EtcdOnSnapshotRestore *Etcd `protobuf:"bytes,303,opt,name=EtcdOnSnapshotRestore,proto3" json:"EtcdOnSnapshotRestore,omitempty"`
   763  	// ClientCertData contains cert file contents from this member's etcd server.
   764  	ClientCertData string `protobuf:"bytes,401,opt,name=ClientCertData,proto3" json:"ClientCertData,omitempty" yaml:"client-cert-data"`
   765  	ClientCertPath string `protobuf:"bytes,402,opt,name=ClientCertPath,proto3" json:"ClientCertPath,omitempty" yaml:"client-cert-path"`
   766  	// ClientKeyData contains key file contents from this member's etcd server.
   767  	ClientKeyData string `protobuf:"bytes,403,opt,name=ClientKeyData,proto3" json:"ClientKeyData,omitempty" yaml:"client-key-data"`
   768  	ClientKeyPath string `protobuf:"bytes,404,opt,name=ClientKeyPath,proto3" json:"ClientKeyPath,omitempty" yaml:"client-key-path"`
   769  	// ClientTrustedCAData contains trusted CA file contents from this member's etcd server.
   770  	ClientTrustedCAData string `protobuf:"bytes,405,opt,name=ClientTrustedCAData,proto3" json:"ClientTrustedCAData,omitempty" yaml:"client-trusted-ca-data"`
   771  	ClientTrustedCAPath string `protobuf:"bytes,406,opt,name=ClientTrustedCAPath,proto3" json:"ClientTrustedCAPath,omitempty" yaml:"client-trusted-ca-path"`
   772  	// PeerCertData contains cert file contents from this member's etcd server.
   773  	PeerCertData string `protobuf:"bytes,501,opt,name=PeerCertData,proto3" json:"PeerCertData,omitempty" yaml:"peer-cert-data"`
   774  	PeerCertPath string `protobuf:"bytes,502,opt,name=PeerCertPath,proto3" json:"PeerCertPath,omitempty" yaml:"peer-cert-path"`
   775  	// PeerKeyData contains key file contents from this member's etcd server.
   776  	PeerKeyData string `protobuf:"bytes,503,opt,name=PeerKeyData,proto3" json:"PeerKeyData,omitempty" yaml:"peer-key-data"`
   777  	PeerKeyPath string `protobuf:"bytes,504,opt,name=PeerKeyPath,proto3" json:"PeerKeyPath,omitempty" yaml:"peer-key-path"`
   778  	// PeerTrustedCAData contains trusted CA file contents from this member's etcd server.
   779  	PeerTrustedCAData string `protobuf:"bytes,505,opt,name=PeerTrustedCAData,proto3" json:"PeerTrustedCAData,omitempty" yaml:"peer-trusted-ca-data"`
   780  	PeerTrustedCAPath string `protobuf:"bytes,506,opt,name=PeerTrustedCAPath,proto3" json:"PeerTrustedCAPath,omitempty" yaml:"peer-trusted-ca-path"`
   781  	// SnapshotPath is the snapshot file path to store or restore from.
   782  	SnapshotPath string `protobuf:"bytes,601,opt,name=SnapshotPath,proto3" json:"SnapshotPath,omitempty" yaml:"snapshot-path"`
   783  	// SnapshotInfo contains last SAVE_SNAPSHOT request results.
   784  	SnapshotInfo *SnapshotInfo `protobuf:"bytes,602,opt,name=SnapshotInfo,proto3" json:"SnapshotInfo,omitempty"`
   785  	// Failpoints is the GOFAIL_FAILPOINTS environment variable value to use when starting etcd.
   786  	Failpoints           string   `protobuf:"bytes,701,opt,name=Failpoints,proto3" json:"Failpoints,omitempty" yaml:"failpoints"`
   787  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   788  	XXX_unrecognized     []byte   `json:"-"`
   789  	XXX_sizecache        int32    `json:"-"`
   790  }
   791  
   792  func (m *Member) Reset()         { *m = Member{} }
   793  func (m *Member) String() string { return proto.CompactTextString(m) }
   794  func (*Member) ProtoMessage()    {}
   795  func (*Member) Descriptor() ([]byte, []int) {
   796  	return fileDescriptor_4fbc93a8dcc3881e, []int{3}
   797  }
   798  func (m *Member) XXX_Unmarshal(b []byte) error {
   799  	return m.Unmarshal(b)
   800  }
   801  func (m *Member) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   802  	if deterministic {
   803  		return xxx_messageInfo_Member.Marshal(b, m, deterministic)
   804  	} else {
   805  		b = b[:cap(b)]
   806  		n, err := m.MarshalToSizedBuffer(b)
   807  		if err != nil {
   808  			return nil, err
   809  		}
   810  		return b[:n], nil
   811  	}
   812  }
   813  func (m *Member) XXX_Merge(src proto.Message) {
   814  	xxx_messageInfo_Member.Merge(m, src)
   815  }
   816  func (m *Member) XXX_Size() int {
   817  	return m.Size()
   818  }
   819  func (m *Member) XXX_DiscardUnknown() {
   820  	xxx_messageInfo_Member.DiscardUnknown(m)
   821  }
   822  
   823  var xxx_messageInfo_Member proto.InternalMessageInfo
   824  
   825  type Tester struct {
   826  	DataDir string `protobuf:"bytes,1,opt,name=DataDir,proto3" json:"DataDir,omitempty" yaml:"data-dir"`
   827  	Network string `protobuf:"bytes,2,opt,name=Network,proto3" json:"Network,omitempty" yaml:"network"`
   828  	Addr    string `protobuf:"bytes,3,opt,name=Addr,proto3" json:"Addr,omitempty" yaml:"addr"`
   829  	// DelayLatencyMsRv is the delay latency in milliseconds,
   830  	// to inject to simulated slow network.
   831  	DelayLatencyMs uint32 `protobuf:"varint,11,opt,name=DelayLatencyMs,proto3" json:"DelayLatencyMs,omitempty" yaml:"delay-latency-ms"`
   832  	// DelayLatencyMsRv is the delay latency random variable in milliseconds.
   833  	DelayLatencyMsRv uint32 `protobuf:"varint,12,opt,name=DelayLatencyMsRv,proto3" json:"DelayLatencyMsRv,omitempty" yaml:"delay-latency-ms-rv"`
   834  	// UpdatedDelayLatencyMs is the update delay latency in milliseconds,
   835  	// to inject to simulated slow network. It's the final latency to apply,
   836  	// in case the latency numbers are randomly generated from given delay latency field.
   837  	UpdatedDelayLatencyMs uint32 `protobuf:"varint,13,opt,name=UpdatedDelayLatencyMs,proto3" json:"UpdatedDelayLatencyMs,omitempty" yaml:"updated-delay-latency-ms"`
   838  	// RoundLimit is the limit of rounds to run failure set (-1 to run without limits).
   839  	RoundLimit int32 `protobuf:"varint,21,opt,name=RoundLimit,proto3" json:"RoundLimit,omitempty" yaml:"round-limit"`
   840  	// ExitOnCaseFail is true, then exit tester on first failure.
   841  	ExitOnCaseFail bool `protobuf:"varint,22,opt,name=ExitOnCaseFail,proto3" json:"ExitOnCaseFail,omitempty" yaml:"exit-on-failure"`
   842  	// EnablePprof is true to enable profiler.
   843  	EnablePprof bool `protobuf:"varint,23,opt,name=EnablePprof,proto3" json:"EnablePprof,omitempty" yaml:"enable-pprof"`
   844  	// CaseDelayMs is the delay duration after failure is injected.
   845  	// Useful when triggering snapshot or no-op failure cases.
   846  	CaseDelayMs uint32 `protobuf:"varint,31,opt,name=CaseDelayMs,proto3" json:"CaseDelayMs,omitempty" yaml:"case-delay-ms"`
   847  	// CaseShuffle is true to randomize failure injecting order.
   848  	CaseShuffle bool `protobuf:"varint,32,opt,name=CaseShuffle,proto3" json:"CaseShuffle,omitempty" yaml:"case-shuffle"`
   849  	// Cases is the selected test cases to schedule.
   850  	// If empty, run all failure cases.
   851  	Cases []string `protobuf:"bytes,33,rep,name=Cases,proto3" json:"Cases,omitempty" yaml:"cases"`
   852  	// FailpointCommands is the list of "gofail" commands
   853  	// (e.g. panic("etcd-tester"),1*sleep(1000).
   854  	FailpointCommands []string `protobuf:"bytes,34,rep,name=FailpointCommands,proto3" json:"FailpointCommands,omitempty" yaml:"failpoint-commands"`
   855  	// RunnerExecPath is a path of etcd-runner binary.
   856  	RunnerExecPath string `protobuf:"bytes,41,opt,name=RunnerExecPath,proto3" json:"RunnerExecPath,omitempty" yaml:"runner-exec-path"`
   857  	// ExternalExecPath is a path of script for enabling/disabling an external fault injector.
   858  	ExternalExecPath string `protobuf:"bytes,42,opt,name=ExternalExecPath,proto3" json:"ExternalExecPath,omitempty" yaml:"external-exec-path"`
   859  	// Stressers is the list of stresser types:
   860  	// KV, LEASE, ELECTION_RUNNER, WATCH_RUNNER, LOCK_RACER_RUNNER, LEASE_RUNNER.
   861  	Stressers []*Stresser `protobuf:"bytes,101,rep,name=Stressers,proto3" json:"Stressers,omitempty" yaml:"stressers"`
   862  	// Checkers is the list of consistency checker types:
   863  	// KV_HASH, LEASE_EXPIRE, NO_CHECK, RUNNER.
   864  	// Leave empty to skip consistency checks.
   865  	Checkers []string `protobuf:"bytes,102,rep,name=Checkers,proto3" json:"Checkers,omitempty" yaml:"checkers"`
   866  	// StressKeySize is the size of each small key written into etcd.
   867  	StressKeySize int32 `protobuf:"varint,201,opt,name=StressKeySize,proto3" json:"StressKeySize,omitempty" yaml:"stress-key-size"`
   868  	// StressKeySizeLarge is the size of each large key written into etcd.
   869  	StressKeySizeLarge int32 `protobuf:"varint,202,opt,name=StressKeySizeLarge,proto3" json:"StressKeySizeLarge,omitempty" yaml:"stress-key-size-large"`
   870  	// StressKeySuffixRange is the count of key range written into etcd.
   871  	// Stress keys are created with "fmt.Sprintf("foo%016x", rand.Intn(keySuffixRange)".
   872  	StressKeySuffixRange int32 `protobuf:"varint,203,opt,name=StressKeySuffixRange,proto3" json:"StressKeySuffixRange,omitempty" yaml:"stress-key-suffix-range"`
   873  	// StressKeySuffixRangeTxn is the count of key range written into etcd txn (max 100).
   874  	// Stress keys are created with "fmt.Sprintf("/k%03d", i)".
   875  	StressKeySuffixRangeTxn int32 `protobuf:"varint,204,opt,name=StressKeySuffixRangeTxn,proto3" json:"StressKeySuffixRangeTxn,omitempty" yaml:"stress-key-suffix-range-txn"`
   876  	// StressKeyTxnOps is the number of operations per a transaction (max 64).
   877  	StressKeyTxnOps int32 `protobuf:"varint,205,opt,name=StressKeyTxnOps,proto3" json:"StressKeyTxnOps,omitempty" yaml:"stress-key-txn-ops"`
   878  	// StressClients is the number of concurrent stressing clients
   879  	// with "one" shared TCP connection.
   880  	StressClients int32 `protobuf:"varint,301,opt,name=StressClients,proto3" json:"StressClients,omitempty" yaml:"stress-clients"`
   881  	// StressQPS is the maximum number of stresser requests per second.
   882  	StressQPS            int32    `protobuf:"varint,302,opt,name=StressQPS,proto3" json:"StressQPS,omitempty" yaml:"stress-qps"`
   883  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   884  	XXX_unrecognized     []byte   `json:"-"`
   885  	XXX_sizecache        int32    `json:"-"`
   886  }
   887  
   888  func (m *Tester) Reset()         { *m = Tester{} }
   889  func (m *Tester) String() string { return proto.CompactTextString(m) }
   890  func (*Tester) ProtoMessage()    {}
   891  func (*Tester) Descriptor() ([]byte, []int) {
   892  	return fileDescriptor_4fbc93a8dcc3881e, []int{4}
   893  }
   894  func (m *Tester) XXX_Unmarshal(b []byte) error {
   895  	return m.Unmarshal(b)
   896  }
   897  func (m *Tester) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   898  	if deterministic {
   899  		return xxx_messageInfo_Tester.Marshal(b, m, deterministic)
   900  	} else {
   901  		b = b[:cap(b)]
   902  		n, err := m.MarshalToSizedBuffer(b)
   903  		if err != nil {
   904  			return nil, err
   905  		}
   906  		return b[:n], nil
   907  	}
   908  }
   909  func (m *Tester) XXX_Merge(src proto.Message) {
   910  	xxx_messageInfo_Tester.Merge(m, src)
   911  }
   912  func (m *Tester) XXX_Size() int {
   913  	return m.Size()
   914  }
   915  func (m *Tester) XXX_DiscardUnknown() {
   916  	xxx_messageInfo_Tester.DiscardUnknown(m)
   917  }
   918  
   919  var xxx_messageInfo_Tester proto.InternalMessageInfo
   920  
   921  type Stresser struct {
   922  	Type                 string   `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty" yaml:"type"`
   923  	Weight               float64  `protobuf:"fixed64,2,opt,name=Weight,proto3" json:"Weight,omitempty" yaml:"weight"`
   924  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   925  	XXX_unrecognized     []byte   `json:"-"`
   926  	XXX_sizecache        int32    `json:"-"`
   927  }
   928  
   929  func (m *Stresser) Reset()         { *m = Stresser{} }
   930  func (m *Stresser) String() string { return proto.CompactTextString(m) }
   931  func (*Stresser) ProtoMessage()    {}
   932  func (*Stresser) Descriptor() ([]byte, []int) {
   933  	return fileDescriptor_4fbc93a8dcc3881e, []int{5}
   934  }
   935  func (m *Stresser) XXX_Unmarshal(b []byte) error {
   936  	return m.Unmarshal(b)
   937  }
   938  func (m *Stresser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   939  	if deterministic {
   940  		return xxx_messageInfo_Stresser.Marshal(b, m, deterministic)
   941  	} else {
   942  		b = b[:cap(b)]
   943  		n, err := m.MarshalToSizedBuffer(b)
   944  		if err != nil {
   945  			return nil, err
   946  		}
   947  		return b[:n], nil
   948  	}
   949  }
   950  func (m *Stresser) XXX_Merge(src proto.Message) {
   951  	xxx_messageInfo_Stresser.Merge(m, src)
   952  }
   953  func (m *Stresser) XXX_Size() int {
   954  	return m.Size()
   955  }
   956  func (m *Stresser) XXX_DiscardUnknown() {
   957  	xxx_messageInfo_Stresser.DiscardUnknown(m)
   958  }
   959  
   960  var xxx_messageInfo_Stresser proto.InternalMessageInfo
   961  
   962  type Etcd struct {
   963  	Name    string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty" yaml:"name"`
   964  	DataDir string `protobuf:"bytes,2,opt,name=DataDir,proto3" json:"DataDir,omitempty" yaml:"data-dir"`
   965  	WALDir  string `protobuf:"bytes,3,opt,name=WALDir,proto3" json:"WALDir,omitempty" yaml:"wal-dir"`
   966  	// HeartbeatIntervalMs is the time (in milliseconds) of a heartbeat interval.
   967  	// Default value is 100, which is 100ms.
   968  	HeartbeatIntervalMs int64 `protobuf:"varint,11,opt,name=HeartbeatIntervalMs,proto3" json:"HeartbeatIntervalMs,omitempty" yaml:"heartbeat-interval"`
   969  	// ElectionTimeoutMs is the time (in milliseconds) for an election to timeout.
   970  	// Default value is 1000, which is 1s.
   971  	ElectionTimeoutMs   int64    `protobuf:"varint,12,opt,name=ElectionTimeoutMs,proto3" json:"ElectionTimeoutMs,omitempty" yaml:"election-timeout"`
   972  	ListenClientURLs    []string `protobuf:"bytes,21,rep,name=ListenClientURLs,proto3" json:"ListenClientURLs,omitempty" yaml:"listen-client-urls"`
   973  	AdvertiseClientURLs []string `protobuf:"bytes,22,rep,name=AdvertiseClientURLs,proto3" json:"AdvertiseClientURLs,omitempty" yaml:"advertise-client-urls"`
   974  	ClientAutoTLS       bool     `protobuf:"varint,23,opt,name=ClientAutoTLS,proto3" json:"ClientAutoTLS,omitempty" yaml:"auto-tls"`
   975  	ClientCertAuth      bool     `protobuf:"varint,24,opt,name=ClientCertAuth,proto3" json:"ClientCertAuth,omitempty" yaml:"client-cert-auth"`
   976  	ClientCertFile      string   `protobuf:"bytes,25,opt,name=ClientCertFile,proto3" json:"ClientCertFile,omitempty" yaml:"cert-file"`
   977  	ClientKeyFile       string   `protobuf:"bytes,26,opt,name=ClientKeyFile,proto3" json:"ClientKeyFile,omitempty" yaml:"key-file"`
   978  	ClientTrustedCAFile string   `protobuf:"bytes,27,opt,name=ClientTrustedCAFile,proto3" json:"ClientTrustedCAFile,omitempty" yaml:"trusted-ca-file"`
   979  	ListenPeerURLs      []string `protobuf:"bytes,31,rep,name=ListenPeerURLs,proto3" json:"ListenPeerURLs,omitempty" yaml:"listen-peer-urls"`
   980  	AdvertisePeerURLs   []string `protobuf:"bytes,32,rep,name=AdvertisePeerURLs,proto3" json:"AdvertisePeerURLs,omitempty" yaml:"initial-advertise-peer-urls"`
   981  	PeerAutoTLS         bool     `protobuf:"varint,33,opt,name=PeerAutoTLS,proto3" json:"PeerAutoTLS,omitempty" yaml:"peer-auto-tls"`
   982  	PeerClientCertAuth  bool     `protobuf:"varint,34,opt,name=PeerClientCertAuth,proto3" json:"PeerClientCertAuth,omitempty" yaml:"peer-client-cert-auth"`
   983  	PeerCertFile        string   `protobuf:"bytes,35,opt,name=PeerCertFile,proto3" json:"PeerCertFile,omitempty" yaml:"peer-cert-file"`
   984  	PeerKeyFile         string   `protobuf:"bytes,36,opt,name=PeerKeyFile,proto3" json:"PeerKeyFile,omitempty" yaml:"peer-key-file"`
   985  	PeerTrustedCAFile   string   `protobuf:"bytes,37,opt,name=PeerTrustedCAFile,proto3" json:"PeerTrustedCAFile,omitempty" yaml:"peer-trusted-ca-file"`
   986  	InitialCluster      string   `protobuf:"bytes,41,opt,name=InitialCluster,proto3" json:"InitialCluster,omitempty" yaml:"initial-cluster"`
   987  	InitialClusterState string   `protobuf:"bytes,42,opt,name=InitialClusterState,proto3" json:"InitialClusterState,omitempty" yaml:"initial-cluster-state"`
   988  	InitialClusterToken string   `protobuf:"bytes,43,opt,name=InitialClusterToken,proto3" json:"InitialClusterToken,omitempty" yaml:"initial-cluster-token"`
   989  	SnapshotCount       int64    `protobuf:"varint,51,opt,name=SnapshotCount,proto3" json:"SnapshotCount,omitempty" yaml:"snapshot-count"`
   990  	QuotaBackendBytes   int64    `protobuf:"varint,52,opt,name=QuotaBackendBytes,proto3" json:"QuotaBackendBytes,omitempty" yaml:"quota-backend-bytes"`
   991  	PreVote             bool     `protobuf:"varint,63,opt,name=PreVote,proto3" json:"PreVote,omitempty" yaml:"pre-vote"`
   992  	InitialCorruptCheck bool     `protobuf:"varint,64,opt,name=InitialCorruptCheck,proto3" json:"InitialCorruptCheck,omitempty" yaml:"initial-corrupt-check"`
   993  	Logger              string   `protobuf:"bytes,71,opt,name=Logger,proto3" json:"Logger,omitempty" yaml:"logger"`
   994  	// LogOutputs is the log file to store current etcd server logs.
   995  	LogOutputs           []string `protobuf:"bytes,72,rep,name=LogOutputs,proto3" json:"LogOutputs,omitempty" yaml:"log-outputs"`
   996  	LogLevel             string   `protobuf:"bytes,73,opt,name=LogLevel,proto3" json:"LogLevel,omitempty" yaml:"log-level"`
   997  	SocketReuseAddress   bool     `protobuf:"varint,81,opt,name=SocketReuseAddress,proto3" json:"SocketReuseAddress,omitempty" yaml:"socket-reuse-address"`
   998  	SocketReusePort      bool     `protobuf:"varint,82,opt,name=SocketReusePort,proto3" json:"SocketReusePort,omitempty" yaml:"socket-reuse-port"`
   999  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1000  	XXX_unrecognized     []byte   `json:"-"`
  1001  	XXX_sizecache        int32    `json:"-"`
  1002  }
  1003  
  1004  func (m *Etcd) Reset()         { *m = Etcd{} }
  1005  func (m *Etcd) String() string { return proto.CompactTextString(m) }
  1006  func (*Etcd) ProtoMessage()    {}
  1007  func (*Etcd) Descriptor() ([]byte, []int) {
  1008  	return fileDescriptor_4fbc93a8dcc3881e, []int{6}
  1009  }
  1010  func (m *Etcd) XXX_Unmarshal(b []byte) error {
  1011  	return m.Unmarshal(b)
  1012  }
  1013  func (m *Etcd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1014  	if deterministic {
  1015  		return xxx_messageInfo_Etcd.Marshal(b, m, deterministic)
  1016  	} else {
  1017  		b = b[:cap(b)]
  1018  		n, err := m.MarshalToSizedBuffer(b)
  1019  		if err != nil {
  1020  			return nil, err
  1021  		}
  1022  		return b[:n], nil
  1023  	}
  1024  }
  1025  func (m *Etcd) XXX_Merge(src proto.Message) {
  1026  	xxx_messageInfo_Etcd.Merge(m, src)
  1027  }
  1028  func (m *Etcd) XXX_Size() int {
  1029  	return m.Size()
  1030  }
  1031  func (m *Etcd) XXX_DiscardUnknown() {
  1032  	xxx_messageInfo_Etcd.DiscardUnknown(m)
  1033  }
  1034  
  1035  var xxx_messageInfo_Etcd proto.InternalMessageInfo
  1036  
  1037  func init() {
  1038  	proto.RegisterEnum("rpcpb.StresserType", StresserType_name, StresserType_value)
  1039  	proto.RegisterEnum("rpcpb.Checker", Checker_name, Checker_value)
  1040  	proto.RegisterEnum("rpcpb.Operation", Operation_name, Operation_value)
  1041  	proto.RegisterEnum("rpcpb.Case", Case_name, Case_value)
  1042  	proto.RegisterType((*Request)(nil), "rpcpb.Request")
  1043  	proto.RegisterType((*SnapshotInfo)(nil), "rpcpb.SnapshotInfo")
  1044  	proto.RegisterType((*Response)(nil), "rpcpb.Response")
  1045  	proto.RegisterType((*Member)(nil), "rpcpb.Member")
  1046  	proto.RegisterType((*Tester)(nil), "rpcpb.Tester")
  1047  	proto.RegisterType((*Stresser)(nil), "rpcpb.Stresser")
  1048  	proto.RegisterType((*Etcd)(nil), "rpcpb.Etcd")
  1049  }
  1050  
  1051  func init() { proto.RegisterFile("rpcpb/rpc.proto", fileDescriptor_4fbc93a8dcc3881e) }
  1052  
  1053  var fileDescriptor_4fbc93a8dcc3881e = []byte{
  1054  	// 3090 bytes of a gzipped FileDescriptorProto
  1055  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x5a, 0xcb, 0x77, 0xdb, 0xc6,
  1056  	0xf5, 0x36, 0x4d, 0x49, 0x96, 0x46, 0x2f, 0x68, 0x24, 0xd9, 0xf0, 0x4b, 0x90, 0xe1, 0x38, 0x3f,
  1057  	0x59, 0x09, 0x6c, 0xff, 0xec, 0x9c, 0x3c, 0x9c, 0x26, 0x0e, 0x48, 0x41, 0x12, 0x4b, 0x88, 0xa4,
  1058  	0x87, 0x90, 0x6c, 0x77, 0x51, 0x1c, 0x88, 0x1c, 0x49, 0x3c, 0xa6, 0x00, 0x06, 0x18, 0x3a, 0x52,
  1059  	0x96, 0xdd, 0x74, 0xdb, 0xb4, 0x69, 0x4f, 0x7b, 0x4e, 0xf7, 0xdd, 0x34, 0xed, 0xa2, 0xeb, 0xee,
  1060  	0x9d, 0x57, 0x9b, 0xb6, 0xab, 0x76, 0xc1, 0xd3, 0xa6, 0xff, 0x01, 0x4f, 0xdf, 0x8b, 0x9e, 0x9e,
  1061  	0x99, 0x01, 0xc8, 0x01, 0x40, 0xca, 0x5a, 0x59, 0xb8, 0xf7, 0xfb, 0xbe, 0xb9, 0x98, 0x7b, 0x31,
  1062  	0xf7, 0x8e, 0x2c, 0x30, 0xeb, 0xb7, 0x6a, 0xad, 0xdd, 0xdb, 0x7e, 0xab, 0x76, 0xab, 0xe5, 0x7b,
  1063  	0xc4, 0x83, 0xa3, 0xcc, 0x70, 0x69, 0x61, 0xdf, 0xdb, 0xf7, 0x98, 0xe5, 0x36, 0xfd, 0x89, 0x3b,
  1064  	0xd5, 0xef, 0x66, 0xc0, 0x39, 0x84, 0xdf, 0x6f, 0xe3, 0x80, 0xc0, 0x5b, 0x60, 0xa2, 0xdc, 0xc2,
  1065  	0xbe, 0x43, 0x1a, 0x9e, 0x2b, 0x67, 0x96, 0x33, 0x2b, 0x33, 0x77, 0xa5, 0x5b, 0x8c, 0x7c, 0xab,
  1066  	0x67, 0x47, 0x7d, 0x08, 0xbc, 0x01, 0xc6, 0xb6, 0xf0, 0xe1, 0x2e, 0xf6, 0xe5, 0xb3, 0xcb, 0x99,
  1067  	0x95, 0xc9, 0xbb, 0xd3, 0x21, 0x98, 0x1b, 0x51, 0xe8, 0xa4, 0x30, 0x0b, 0x07, 0x04, 0xfb, 0x72,
  1068  	0x36, 0x06, 0xe3, 0x46, 0x14, 0x3a, 0xd5, 0xef, 0x64, 0xc1, 0x54, 0xd5, 0x75, 0x5a, 0xc1, 0x81,
  1069  	0x47, 0x0a, 0xee, 0x9e, 0x07, 0x97, 0x00, 0xe0, 0x0a, 0x25, 0xe7, 0x10, 0xb3, 0x78, 0x26, 0x90,
  1070  	0x60, 0x81, 0xab, 0x40, 0xe2, 0x4f, 0xf9, 0x66, 0x03, 0xbb, 0x64, 0x1b, 0x99, 0x81, 0x7c, 0x76,
  1071  	0x39, 0xbb, 0x32, 0x81, 0x52, 0x76, 0xa8, 0xf6, 0xb5, 0x2b, 0x0e, 0x39, 0x60, 0x91, 0x4c, 0xa0,
  1072  	0x98, 0x8d, 0xea, 0x45, 0xcf, 0xeb, 0x8d, 0x26, 0xae, 0x36, 0x3e, 0xc4, 0xf2, 0x08, 0xc3, 0xa5,
  1073  	0xec, 0xf0, 0x55, 0x30, 0x17, 0xd9, 0x2c, 0x8f, 0x38, 0x4d, 0x06, 0x1e, 0x65, 0xe0, 0xb4, 0x43,
  1074  	0x54, 0x66, 0xc6, 0x22, 0x3e, 0x96, 0xc7, 0x96, 0x33, 0x2b, 0x59, 0x94, 0xb2, 0x8b, 0x91, 0x6e,
  1075  	0x3a, 0xc1, 0x81, 0x7c, 0x8e, 0xe1, 0x62, 0x36, 0x51, 0x0f, 0xe1, 0x67, 0x8d, 0x80, 0xe6, 0x6b,
  1076  	0x3c, 0xae, 0x17, 0xd9, 0x21, 0x04, 0x23, 0x96, 0xe7, 0x3d, 0x95, 0x27, 0x58, 0x70, 0xec, 0x67,
  1077  	0x28, 0x83, 0x73, 0x3b, 0xd8, 0x67, 0x34, 0xc0, 0xcc, 0xd1, 0xa3, 0xfa, 0xd3, 0x0c, 0x18, 0x47,
  1078  	0x38, 0x68, 0x79, 0x6e, 0x80, 0x29, 0xac, 0xda, 0xae, 0xd5, 0x70, 0x10, 0xb0, 0xdd, 0x1f, 0x47,
  1079  	0xd1, 0x23, 0x3c, 0x0f, 0xc6, 0xaa, 0xc4, 0x21, 0xed, 0x80, 0x65, 0x7e, 0x02, 0x85, 0x4f, 0x42,
  1080  	0x45, 0x64, 0x4f, 0xaa, 0x88, 0x37, 0xe2, 0x99, 0x66, 0xbb, 0x3c, 0x79, 0x77, 0x3e, 0x04, 0x8b,
  1081  	0x2e, 0x14, 0x03, 0xaa, 0x9f, 0x4d, 0x45, 0x0b, 0xc0, 0x3b, 0x60, 0xdc, 0x20, 0xb5, 0xba, 0x71,
  1082  	0x84, 0x6b, 0xbc, 0x36, 0x72, 0x0b, 0xdd, 0x8e, 0x22, 0x1d, 0x3b, 0x87, 0xcd, 0xfb, 0x2a, 0x26,
  1083  	0xb5, 0xba, 0x86, 0x8f, 0x70, 0x4d, 0x45, 0x3d, 0x14, 0xbc, 0x07, 0x26, 0xf4, 0x7d, 0xec, 0x12,
  1084  	0xbd, 0x5e, 0xf7, 0xe5, 0x49, 0x46, 0x59, 0xec, 0x76, 0x94, 0x39, 0x4e, 0x71, 0xa8, 0x4b, 0x73,
  1085  	0xea, 0x75, 0x5f, 0x45, 0x7d, 0x1c, 0x34, 0xc1, 0xdc, 0xba, 0xd3, 0x68, 0xb6, 0xbc, 0x86, 0x4b,
  1086  	0x36, 0x2d, 0xab, 0xc2, 0xc8, 0x53, 0x8c, 0xbc, 0xd4, 0xed, 0x28, 0x97, 0x38, 0x79, 0x2f, 0x82,
  1087  	0x68, 0x07, 0x84, 0xb4, 0x42, 0x95, 0x34, 0x11, 0x6a, 0xe0, 0x5c, 0xce, 0x09, 0xf0, 0x5a, 0xc3,
  1088  	0x97, 0x31, 0xd3, 0x98, 0xef, 0x76, 0x94, 0x59, 0xae, 0xb1, 0xeb, 0x04, 0x58, 0xab, 0x37, 0x7c,
  1089  	0x15, 0x45, 0x18, 0xb8, 0x01, 0x66, 0x69, 0xf4, 0xbc, 0x8e, 0x2b, 0xbe, 0x77, 0x74, 0x2c, 0x7f,
  1090  	0xca, 0x32, 0x91, 0xbb, 0xd2, 0xed, 0x28, 0xb2, 0xf0, 0xae, 0x35, 0x06, 0xd1, 0x5a, 0x14, 0xa3,
  1091  	0xa2, 0x24, 0x0b, 0xea, 0x60, 0x9a, 0x9a, 0x2a, 0x18, 0xfb, 0x5c, 0xe6, 0x33, 0x2e, 0x73, 0xa9,
  1092  	0xdb, 0x51, 0xce, 0x0b, 0x32, 0x2d, 0x8c, 0xfd, 0x48, 0x24, 0xce, 0x80, 0x15, 0x00, 0xfb, 0xaa,
  1093  	0x86, 0x5b, 0x67, 0x2f, 0x26, 0x7f, 0xc2, 0xf2, 0x9f, 0x53, 0xba, 0x1d, 0xe5, 0x72, 0x3a, 0x1c,
  1094  	0x1c, 0xc2, 0x54, 0x34, 0x80, 0x0b, 0xff, 0x1f, 0x8c, 0x50, 0xab, 0xfc, 0x0b, 0x7e, 0x7a, 0x4c,
  1095  	0x86, 0xe9, 0xa7, 0xb6, 0xdc, 0x6c, 0xb7, 0xa3, 0x4c, 0xf6, 0x05, 0x55, 0xc4, 0xa0, 0x30, 0x07,
  1096  	0x16, 0xe9, 0xbf, 0x65, 0xb7, 0x5f, 0xe6, 0x01, 0xf1, 0x7c, 0x2c, 0xff, 0x32, 0xad, 0x81, 0x06,
  1097  	0x43, 0xe1, 0x1a, 0x98, 0xe1, 0x81, 0xe4, 0xb1, 0x4f, 0xd6, 0x1c, 0xe2, 0xc8, 0x1f, 0xb1, 0xd3,
  1098  	0x20, 0x77, 0xb9, 0xdb, 0x51, 0x2e, 0xf0, 0x35, 0xc3, 0xf8, 0x6b, 0xd8, 0x27, 0x5a, 0xdd, 0x21,
  1099  	0x8e, 0x8a, 0x12, 0x9c, 0xb8, 0x0a, 0x3b, 0x52, 0xbe, 0x7f, 0xa2, 0x4a, 0xcb, 0x21, 0x07, 0x31,
  1100  	0x15, 0x76, 0xe4, 0xe8, 0x60, 0x9a, 0x5b, 0x8a, 0xf8, 0x98, 0x85, 0xf2, 0x03, 0x2e, 0x22, 0xe4,
  1101  	0x25, 0x14, 0x79, 0x8a, 0x8f, 0xc3, 0x48, 0xe2, 0x8c, 0x98, 0x04, 0x8b, 0xe3, 0xe3, 0x93, 0x24,
  1102  	0x78, 0x18, 0x71, 0x06, 0xb4, 0xc0, 0x3c, 0x37, 0x58, 0x7e, 0x3b, 0x20, 0xb8, 0x9e, 0xd7, 0x59,
  1103  	0x2c, 0x3f, 0xe4, 0x42, 0xd7, 0xba, 0x1d, 0xe5, 0x6a, 0x4c, 0x88, 0x70, 0x98, 0x56, 0x73, 0xc2,
  1104  	0x90, 0x06, 0xd1, 0x07, 0xa8, 0xb2, 0xf0, 0x7e, 0x74, 0x0a, 0x55, 0x1e, 0xe5, 0x20, 0x3a, 0x7c,
  1105  	0x17, 0x4c, 0xd1, 0x9a, 0xec, 0xe5, 0xee, 0xef, 0x5c, 0xee, 0x62, 0xb7, 0xa3, 0x2c, 0x72, 0x39,
  1106  	0x56, 0xc3, 0x42, 0xe6, 0x62, 0x78, 0x91, 0xcf, 0xc2, 0xf9, 0xc7, 0x09, 0x7c, 0x1e, 0x46, 0x0c,
  1107  	0x0f, 0xdf, 0x06, 0x93, 0xf4, 0x39, 0xca, 0xd7, 0x3f, 0x39, 0x5d, 0xee, 0x76, 0x94, 0x05, 0x81,
  1108  	0xde, 0xcf, 0x96, 0x88, 0x16, 0xc8, 0x6c, 0xed, 0x7f, 0x0d, 0x27, 0xf3, 0xa5, 0x45, 0x34, 0x2c,
  1109  	0x81, 0x39, 0xfa, 0x18, 0xcf, 0xd1, 0xbf, 0xb3, 0xc9, 0xef, 0x8f, 0x49, 0xa4, 0x32, 0x94, 0xa6,
  1110  	0xa6, 0xf4, 0x58, 0x48, 0xff, 0x79, 0xa1, 0x1e, 0x8f, 0x2c, 0x4d, 0x85, 0xef, 0x24, 0x5a, 0xec,
  1111  	0x1f, 0x47, 0x92, 0x6f, 0x17, 0x84, 0xee, 0x68, 0x63, 0x63, 0xdd, 0xf7, 0xcd, 0x44, 0x4f, 0xf8,
  1112  	0xd3, 0x69, 0x9b, 0x02, 0x7c, 0x1d, 0x80, 0xde, 0x49, 0x1b, 0xc8, 0xbf, 0x1e, 0x4d, 0x9e, 0xec,
  1113  	0xbd, 0xc3, 0x39, 0x50, 0x91, 0x80, 0x54, 0x7f, 0x35, 0x15, 0x0d, 0x26, 0xf4, 0x5c, 0xa6, 0x7b,
  1114  	0x42, 0xcf, 0xe5, 0x4c, 0xf2, 0x5c, 0xa6, 0x1b, 0x18, 0x9e, 0xcb, 0x21, 0x06, 0xbe, 0x0a, 0xce,
  1115  	0x95, 0x30, 0xf9, 0xc0, 0xf3, 0x9f, 0xf2, 0xfe, 0x97, 0x83, 0xdd, 0x8e, 0x32, 0xc3, 0xe1, 0x2e,
  1116  	0x77, 0xa8, 0x28, 0x82, 0xc0, 0xeb, 0x60, 0x84, 0x75, 0x0d, 0xbe, 0xb5, 0xc2, 0xc9, 0xc6, 0xdb,
  1117  	0x04, 0x73, 0xc2, 0x3c, 0x98, 0x59, 0xc3, 0x4d, 0xe7, 0xd8, 0x74, 0x08, 0x76, 0x6b, 0xc7, 0x5b,
  1118  	0x01, 0xeb, 0x50, 0xd3, 0xe2, 0x71, 0x52, 0xa7, 0x7e, 0xad, 0xc9, 0x01, 0xda, 0x61, 0xa0, 0xa2,
  1119  	0x04, 0x05, 0x7e, 0x13, 0x48, 0x71, 0x0b, 0x7a, 0xc6, 0x7a, 0xd5, 0xb4, 0xd8, 0xab, 0x92, 0x32,
  1120  	0x9a, 0xff, 0x4c, 0x45, 0x29, 0x1e, 0x7c, 0x02, 0x16, 0xb7, 0x5b, 0x75, 0x87, 0xe0, 0x7a, 0x22,
  1121  	0xae, 0x69, 0x26, 0x78, 0xbd, 0xdb, 0x51, 0x14, 0x2e, 0xd8, 0xe6, 0x30, 0x2d, 0x1d, 0xdf, 0x60,
  1122  	0x05, 0x9a, 0x30, 0xe4, 0xb5, 0xdd, 0xba, 0xd9, 0x38, 0x6c, 0x10, 0x79, 0x71, 0x39, 0xb3, 0x32,
  1123  	0x9a, 0x3b, 0xdf, 0xed, 0x28, 0x90, 0xeb, 0xf9, 0xd4, 0xa7, 0x35, 0xa9, 0x53, 0x45, 0x02, 0x12,
  1124  	0xe6, 0xc0, 0x8c, 0x71, 0xd4, 0x20, 0x65, 0x37, 0xef, 0x04, 0x98, 0x26, 0x52, 0x3e, 0x9f, 0xea,
  1125  	0x62, 0x47, 0x0d, 0xa2, 0x79, 0xae, 0x46, 0x73, 0xde, 0xf6, 0xb1, 0x8a, 0x12, 0x0c, 0xf8, 0x16,
  1126  	0x98, 0x34, 0x5c, 0x67, 0xb7, 0x89, 0x2b, 0x2d, 0xdf, 0xdb, 0x93, 0x2f, 0x30, 0x81, 0x0b, 0xdd,
  1127  	0x8e, 0x32, 0x1f, 0x0a, 0x30, 0xa7, 0xd6, 0xa2, 0x5e, 0x15, 0x89, 0x58, 0x78, 0x1f, 0x4c, 0x52,
  1128  	0x19, 0xf6, 0x32, 0x5b, 0x81, 0xac, 0xb0, 0x7d, 0x10, 0xca, 0xbb, 0xc6, 0x1a, 0x38, 0xdb, 0x04,
  1129  	0xfa, 0xf2, 0x22, 0x98, 0x2e, 0x4b, 0x1f, 0xab, 0x07, 0xed, 0xbd, 0xbd, 0x26, 0x96, 0x97, 0x93,
  1130  	0xcb, 0x32, 0x6e, 0xc0, 0xbd, 0x21, 0x35, 0xc4, 0xc2, 0x97, 0xc1, 0x28, 0x7d, 0x0c, 0xe4, 0x6b,
  1131  	0x74, 0xb6, 0xcd, 0x49, 0xdd, 0x8e, 0x32, 0xd5, 0x27, 0x05, 0x2a, 0xe2, 0x6e, 0x58, 0x14, 0x26,
  1132  	0x95, 0xbc, 0x77, 0x78, 0xe8, 0xb8, 0xf5, 0x40, 0x56, 0x19, 0xe7, 0x6a, 0xb7, 0xa3, 0x5c, 0x4c,
  1133  	0x4e, 0x2a, 0xb5, 0x10, 0x23, 0x0e, 0x2a, 0x11, 0x8f, 0x96, 0x23, 0x6a, 0xbb, 0x2e, 0xf6, 0xe9,
  1134  	0xe4, 0xc4, 0x3e, 0xe7, 0x9b, 0xc9, 0xee, 0xe6, 0x33, 0x3f, 0x9b, 0xb2, 0xa2, 0xee, 0x16, 0xa7,
  1135  	0xc0, 0x02, 0x90, 0x8c, 0x23, 0x82, 0x7d, 0xd7, 0x69, 0xf6, 0x64, 0x56, 0x99, 0x8c, 0x10, 0x10,
  1136  	0x0e, 0x11, 0xa2, 0x50, 0x8a, 0x06, 0xf3, 0x60, 0xa2, 0x4a, 0x7c, 0x1c, 0x04, 0xd8, 0x0f, 0x64,
  1137  	0xbc, 0x9c, 0x5d, 0x99, 0xbc, 0x3b, 0x1b, 0x9d, 0x0c, 0xa1, 0x5d, 0x9c, 0xff, 0x82, 0x08, 0xab,
  1138  	0xa2, 0x3e, 0x0f, 0xde, 0x06, 0xe3, 0xf9, 0x03, 0x5c, 0x7b, 0x4a, 0x35, 0xf6, 0xd8, 0xc6, 0x08,
  1139  	0x9f, 0x79, 0x2d, 0xf4, 0xa8, 0xa8, 0x07, 0xa2, 0xbd, 0x95, 0xb3, 0x8b, 0xf8, 0x98, 0x4d, 0xf8,
  1140  	0x6c, 0xfa, 0x1a, 0x15, 0x0b, 0x8e, 0xaf, 0xc4, 0xce, 0xec, 0xa0, 0xf1, 0x21, 0x56, 0x51, 0x9c,
  1141  	0x01, 0x1f, 0x02, 0x18, 0x33, 0x98, 0x8e, 0xbf, 0x8f, 0xf9, 0xf8, 0x35, 0x9a, 0x5b, 0xee, 0x76,
  1142  	0x94, 0x2b, 0x03, 0x75, 0xb4, 0x26, 0xc5, 0xa9, 0x68, 0x00, 0x19, 0x3e, 0x02, 0x0b, 0x7d, 0x6b,
  1143  	0x7b, 0x6f, 0xaf, 0x71, 0x84, 0x1c, 0x77, 0x1f, 0xcb, 0x9f, 0x73, 0x51, 0xb5, 0xdb, 0x51, 0x96,
  1144  	0xd2, 0xa2, 0x0c, 0xa8, 0xf9, 0x14, 0xa9, 0xa2, 0x81, 0x02, 0xd0, 0x01, 0x17, 0x06, 0xd9, 0xad,
  1145  	0x23, 0x57, 0xfe, 0x82, 0x6b, 0xbf, 0xdc, 0xed, 0x28, 0xea, 0x89, 0xda, 0x1a, 0x39, 0x72, 0x55,
  1146  	0x34, 0x4c, 0x07, 0x6e, 0x82, 0xd9, 0x9e, 0xcb, 0x3a, 0x72, 0xcb, 0xad, 0x40, 0xfe, 0x92, 0x4b,
  1147  	0x0b, 0x25, 0x21, 0x48, 0x93, 0x23, 0x57, 0xf3, 0x5a, 0x81, 0x8a, 0x92, 0x34, 0xf8, 0x5e, 0x94,
  1148  	0x1b, 0x3e, 0x25, 0x04, 0x7c, 0x14, 0x1d, 0x15, 0x3b, 0x79, 0xa8, 0xc3, 0xe7, 0x8b, 0xa0, 0x97,
  1149  	0x9a, 0x90, 0x00, 0x5f, 0x8b, 0x6a, 0xea, 0x61, 0xa5, 0xca, 0x87, 0xd0, 0x51, 0xb1, 0x6d, 0x84,
  1150  	0xec, 0xf7, 0x5b, 0xfd, 0x22, 0x7a, 0x58, 0xa9, 0xaa, 0xdf, 0x02, 0xe3, 0x51, 0x45, 0xd1, 0x93,
  1151  	0xdd, 0x3a, 0x6e, 0x85, 0x77, 0x53, 0xf1, 0x64, 0x27, 0xc7, 0x2d, 0xac, 0x22, 0xe6, 0x84, 0x37,
  1152  	0xc1, 0xd8, 0x23, 0xdc, 0xd8, 0x3f, 0x20, 0xac, 0x57, 0x64, 0x72, 0x73, 0xdd, 0x8e, 0x32, 0xcd,
  1153  	0x61, 0x1f, 0x30, 0xbb, 0x8a, 0x42, 0x80, 0xfa, 0x33, 0x89, 0x8f, 0xc4, 0x54, 0xb8, 0x7f, 0xe9,
  1154  	0x15, 0x85, 0x5d, 0xe7, 0x90, 0x0a, 0xb3, 0xfb, 0xaf, 0xd0, 0xb4, 0xce, 0x9e, 0xa2, 0x69, 0xad,
  1155  	0x82, 0xb1, 0x47, 0xba, 0x49, 0xd1, 0xd9, 0x64, 0xcf, 0xfa, 0xc0, 0x69, 0x72, 0x70, 0x88, 0x80,
  1156  	0x65, 0x30, 0xbf, 0x89, 0x1d, 0x9f, 0xec, 0x62, 0x87, 0x14, 0x5c, 0x82, 0xfd, 0x67, 0x4e, 0x33,
  1157  	0x6c, 0x49, 0x59, 0x31, 0x53, 0x07, 0x11, 0x48, 0x6b, 0x84, 0x28, 0x15, 0x0d, 0x62, 0xc2, 0x02,
  1158  	0x98, 0x33, 0x9a, 0xb8, 0x46, 0x1a, 0x9e, 0x6b, 0x35, 0x0e, 0xb1, 0xd7, 0x26, 0x5b, 0x01, 0x6b,
  1159  	0x4d, 0x59, 0xf1, 0x48, 0xc1, 0x21, 0x44, 0x23, 0x1c, 0xa3, 0xa2, 0x34, 0x8b, 0x9e, 0x2a, 0x66,
  1160  	0x23, 0x20, 0xd8, 0x15, 0xae, 0xfd, 0x8b, 0xc9, 0x63, 0xae, 0xc9, 0x10, 0xd1, 0x3d, 0xa4, 0xed,
  1161  	0x37, 0x03, 0x15, 0xa5, 0x68, 0x10, 0x81, 0x79, 0xbd, 0xfe, 0x0c, 0xfb, 0xa4, 0x11, 0x60, 0x41,
  1162  	0xed, 0x3c, 0x53, 0x13, 0x3e, 0x4e, 0x27, 0x02, 0xc5, 0x05, 0x07, 0x91, 0xe1, 0x5b, 0xd1, 0x3c,
  1163  	0xae, 0xb7, 0x89, 0x67, 0x99, 0xd5, 0xb0, 0xc5, 0x08, 0xb9, 0x71, 0xda, 0xc4, 0xd3, 0x08, 0x15,
  1164  	0x88, 0x23, 0xe9, 0xa1, 0xdb, 0xbf, 0x1f, 0xe8, 0x6d, 0x72, 0x20, 0xcb, 0x8c, 0x3b, 0xe4, 0x4a,
  1165  	0xe1, 0xb4, 0x13, 0x57, 0x0a, 0x4a, 0x81, 0xdf, 0x10, 0x45, 0xd6, 0x1b, 0x4d, 0x2c, 0x5f, 0x4c,
  1166  	0xde, 0x8e, 0x19, 0x7b, 0xaf, 0x41, 0x3b, 0x4d, 0x02, 0xdb, 0x8f, 0xbe, 0x88, 0x8f, 0x19, 0xf9,
  1167  	0x52, 0xb2, 0xb2, 0xe8, 0x57, 0xc9, 0xb9, 0x71, 0x24, 0x34, 0x53, 0xf3, 0x3e, 0x13, 0xb8, 0x9c,
  1168  	0xbc, 0x8d, 0x08, 0xb3, 0x24, 0xd7, 0x19, 0x44, 0xa3, 0x7b, 0xc1, 0xd3, 0x45, 0x07, 0x4d, 0x96,
  1169  	0x15, 0x85, 0x65, 0x45, 0xd8, 0x8b, 0x30, 0xc7, 0x6c, 0x40, 0xe5, 0x09, 0x49, 0x50, 0xa0, 0x05,
  1170  	0xe6, 0x7a, 0x29, 0xea, 0xe9, 0x2c, 0x33, 0x1d, 0xe1, 0x24, 0x6b, 0xb8, 0x0d, 0xd2, 0x70, 0x9a,
  1171  	0x5a, 0x3f, 0xcb, 0x82, 0x64, 0x5a, 0x80, 0xce, 0x01, 0xf4, 0xe7, 0x28, 0xbf, 0xd7, 0x58, 0x8e,
  1172  	0x92, 0x43, 0x7c, 0x3f, 0xc9, 0x22, 0x98, 0xde, 0xa2, 0xd9, 0x75, 0x22, 0x9e, 0x66, 0x95, 0x49,
  1173  	0x08, 0x05, 0xc7, 0xef, 0x20, 0xa9, 0x5c, 0x0f, 0xe0, 0xd2, 0xb1, 0x3b, 0xba, 0xa0, 0xb0, 0xfd,
  1174  	0xbe, 0x3e, 0xfc, 0x3e, 0xc3, 0xb7, 0x3b, 0x06, 0x8f, 0x5e, 0x26, 0x4a, 0xf7, 0x4b, 0x43, 0x6f,
  1175  	0x24, 0x9c, 0x2c, 0x82, 0xe1, 0x56, 0xe2, 0x06, 0xc1, 0x14, 0x6e, 0xbc, 0xe8, 0x02, 0xc1, 0x85,
  1176  	0xd2, 0x4c, 0x3a, 0xde, 0x15, 0x78, 0x2a, 0xf2, 0xcd, 0x36, 0xfb, 0x7d, 0xe1, 0xcd, 0x64, 0xed,
  1177  	0x44, 0xa9, 0xaa, 0x71, 0x80, 0x8a, 0x12, 0x0c, 0xfa, 0x45, 0xc7, 0x2d, 0x55, 0xe2, 0x10, 0x1c,
  1178  	0x4e, 0x1d, 0xc2, 0x06, 0x27, 0x84, 0xb4, 0x80, 0xc2, 0x54, 0x34, 0x88, 0x9c, 0xd6, 0xb4, 0xbc,
  1179  	0xa7, 0xd8, 0x95, 0x5f, 0x79, 0x91, 0x26, 0xa1, 0xb0, 0x94, 0x26, 0x23, 0xc3, 0x07, 0x60, 0x3a,
  1180  	0xba, 0xc3, 0xe4, 0xbd, 0xb6, 0x4b, 0xe4, 0x7b, 0xec, 0x2c, 0x14, 0x9b, 0x57, 0x74, 0x59, 0xaa,
  1181  	0x51, 0x3f, 0x6d, 0x5e, 0x22, 0x1e, 0x9a, 0x60, 0xee, 0x61, 0xdb, 0x23, 0x4e, 0xce, 0xa9, 0x3d,
  1182  	0xc5, 0x6e, 0x3d, 0x77, 0x4c, 0x70, 0x20, 0xbf, 0xc6, 0x44, 0x84, 0x59, 0xff, 0x7d, 0x0a, 0xd1,
  1183  	0x76, 0x39, 0x46, 0xdb, 0xa5, 0x20, 0x15, 0xa5, 0x89, 0xb4, 0x95, 0x54, 0x7c, 0xbc, 0xe3, 0x11,
  1184  	0x2c, 0x3f, 0x48, 0x1e, 0x57, 0x2d, 0x1f, 0x6b, 0xcf, 0x3c, 0xba, 0x3b, 0x11, 0x46, 0xdc, 0x11,
  1185  	0xcf, 0xf7, 0xdb, 0x2d, 0xc2, 0x26, 0x26, 0xf9, 0xbd, 0x64, 0x19, 0xf7, 0x76, 0x84, 0xa3, 0x34,
  1186  	0x36, 0x63, 0x09, 0x3b, 0x22, 0x90, 0x69, 0x9b, 0x34, 0xbd, 0xfd, 0x7d, 0xec, 0xcb, 0x1b, 0x6c,
  1187  	0x63, 0x85, 0x36, 0xd9, 0x64, 0x76, 0x15, 0x85, 0x00, 0x7a, 0x7f, 0x30, 0xbd, 0xfd, 0x72, 0x9b,
  1188  	0xb4, 0xda, 0x24, 0x90, 0x37, 0xd9, 0xf7, 0x2c, 0xdc, 0x1f, 0x9a, 0xde, 0xbe, 0xe6, 0x71, 0xa7,
  1189  	0x8a, 0x04, 0x24, 0xbc, 0x03, 0xc6, 0x4d, 0x6f, 0xdf, 0xc4, 0xcf, 0x70, 0x53, 0x2e, 0x24, 0x0f,
  1190  	0x45, 0xca, 0x6a, 0x52, 0x97, 0x8a, 0x7a, 0x28, 0x58, 0x06, 0xb0, 0xea, 0xd5, 0x9e, 0x62, 0x82,
  1191  	0x70, 0x3b, 0xc0, 0xf4, 0xa2, 0x86, 0x83, 0x40, 0x7e, 0xc8, 0xde, 0x53, 0x28, 0xf1, 0x80, 0x61,
  1192  	0x34, 0x9f, 0x82, 0xd8, 0x2f, 0xff, 0x70, 0x10, 0xd0, 0xd9, 0x2d, 0x45, 0x85, 0xeb, 0x60, 0x56,
  1193  	0xb0, 0x56, 0x3c, 0x9f, 0xc8, 0x28, 0xf9, 0x0b, 0xbd, 0x98, 0x5a, 0xcb, 0xf3, 0x09, 0x9d, 0x7e,
  1194  	0xe2, 0xa4, 0xd5, 0xff, 0x66, 0xc0, 0x54, 0x34, 0x86, 0xb0, 0x29, 0x03, 0x82, 0x99, 0xe2, 0x8e,
  1195  	0xfd, 0x08, 0x15, 0x2c, 0xc3, 0xae, 0x6e, 0xe9, 0xa6, 0x29, 0x9d, 0x89, 0xd9, 0x4c, 0x1d, 0x6d,
  1196  	0x18, 0x52, 0x06, 0xce, 0x83, 0xd9, 0xe2, 0x8e, 0x8d, 0x0c, 0x7d, 0xcd, 0x2e, 0x97, 0x0c, 0xbb,
  1197  	0x68, 0x3c, 0x91, 0xce, 0xc2, 0x39, 0x30, 0x1d, 0x19, 0x91, 0x5e, 0xda, 0x30, 0xa4, 0x2c, 0x5c,
  1198  	0x04, 0x73, 0xc5, 0x1d, 0x7b, 0xcd, 0x30, 0x0d, 0xcb, 0xe8, 0x21, 0x47, 0x42, 0x7a, 0x68, 0xe6,
  1199  	0xd8, 0x51, 0x78, 0x01, 0xcc, 0x17, 0x77, 0x6c, 0xeb, 0x71, 0x29, 0x5c, 0x8b, 0xbb, 0xa5, 0x31,
  1200  	0x38, 0x01, 0x46, 0x4d, 0x43, 0xaf, 0x1a, 0x12, 0xa0, 0x44, 0xc3, 0x34, 0xf2, 0x56, 0xa1, 0x5c,
  1201  	0xb2, 0xd1, 0x76, 0xa9, 0x64, 0x20, 0x69, 0x01, 0x4a, 0x60, 0xea, 0x91, 0x6e, 0xe5, 0x37, 0x23,
  1202  	0x8b, 0x42, 0x97, 0x35, 0xcb, 0xf9, 0xa2, 0x8d, 0xf4, 0xbc, 0x81, 0x22, 0xf3, 0x4d, 0x0a, 0x64,
  1203  	0x42, 0x91, 0xe5, 0xde, 0xea, 0xb7, 0xc1, 0xb9, 0x70, 0x4c, 0x87, 0x93, 0xe0, 0x5c, 0x71, 0xc7,
  1204  	0xde, 0xd4, 0xab, 0x9b, 0xd2, 0x99, 0x3e, 0xd2, 0x78, 0x5c, 0x29, 0x20, 0xfa, 0xc6, 0x00, 0x8c,
  1205  	0x85, 0xac, 0xb3, 0x70, 0x0a, 0x8c, 0x97, 0xca, 0x76, 0x7e, 0xd3, 0xc8, 0x17, 0xa5, 0x2c, 0xbc,
  1206  	0x04, 0xce, 0x57, 0x37, 0xcb, 0xc8, 0xb2, 0x2d, 0xcb, 0xb4, 0x63, 0xac, 0x91, 0xd5, 0x9f, 0x64,
  1207  	0x85, 0xff, 0x0c, 0x81, 0xb3, 0x60, 0xb2, 0x54, 0xb6, 0xec, 0xaa, 0xa5, 0x23, 0xcb, 0x58, 0x93,
  1208  	0xce, 0xc0, 0xf3, 0x00, 0x16, 0x4a, 0x05, 0xab, 0xa0, 0x9b, 0xdc, 0x68, 0x1b, 0x56, 0x7e, 0x4d,
  1209  	0x02, 0x74, 0x79, 0x64, 0x08, 0x96, 0x49, 0x6a, 0xa9, 0x16, 0x36, 0x2c, 0x03, 0x6d, 0x71, 0xcb,
  1210  	0x02, 0x5c, 0x06, 0x57, 0xaa, 0x85, 0x8d, 0x87, 0xdb, 0x05, 0x8e, 0xb1, 0xf5, 0xd2, 0x9a, 0x8d,
  1211  	0x8c, 0xad, 0xf2, 0x8e, 0x61, 0xaf, 0xe9, 0x96, 0x2e, 0x2d, 0xd2, 0x7c, 0x54, 0xf5, 0x1d, 0xc3,
  1212  	0xae, 0x96, 0xf4, 0x4a, 0x75, 0xb3, 0x6c, 0x49, 0x4b, 0xf0, 0x1a, 0xb8, 0x4a, 0x85, 0xcb, 0xc8,
  1213  	0xb0, 0xa3, 0x05, 0xd6, 0x51, 0x79, 0xab, 0x0f, 0x51, 0xe0, 0x45, 0xb0, 0x38, 0xd8, 0xb5, 0x4c,
  1214  	0xd9, 0xa9, 0x25, 0x75, 0x94, 0xdf, 0x2c, 0x44, 0x6b, 0xae, 0xc0, 0xdb, 0xe0, 0x95, 0x93, 0xa2,
  1215  	0x62, 0xcf, 0x55, 0xab, 0x5c, 0xb1, 0xf5, 0x0d, 0xa3, 0x64, 0x49, 0x37, 0xe1, 0x55, 0x70, 0x31,
  1216  	0x67, 0xea, 0xf9, 0xe2, 0x66, 0xd9, 0x34, 0xec, 0x8a, 0x61, 0x20, 0xbb, 0xc2, 0xf6, 0xf2, 0xb1,
  1217  	0x8d, 0x1e, 0x4b, 0x75, 0xa8, 0x80, 0xcb, 0xdb, 0xa5, 0xe1, 0x00, 0x0c, 0x2f, 0x81, 0xc5, 0x35,
  1218  	0xc3, 0xd4, 0x9f, 0xa4, 0x5c, 0xcf, 0x33, 0xf0, 0x0a, 0xb8, 0xb0, 0x5d, 0x1a, 0xec, 0xfd, 0x34,
  1219  	0xb3, 0xfa, 0xf1, 0x24, 0x18, 0xa1, 0x77, 0x5e, 0x28, 0x83, 0x85, 0x68, 0x6f, 0x69, 0x89, 0xae,
  1220  	0x97, 0x4d, 0xb3, 0xfc, 0xc8, 0x40, 0xd2, 0x99, 0xf0, 0x6d, 0x52, 0x1e, 0x7b, 0xbb, 0x64, 0x15,
  1221  	0x4c, 0xdb, 0x42, 0x85, 0x8d, 0x0d, 0x03, 0xf5, 0x77, 0x28, 0x43, 0xbf, 0x95, 0x88, 0x60, 0x1a,
  1222  	0xfa, 0x1a, 0xab, 0x96, 0x9b, 0xe0, 0x46, 0xdc, 0x36, 0x8c, 0x9e, 0x15, 0xe9, 0x0f, 0xb7, 0xcb,
  1223  	0x68, 0x7b, 0x4b, 0x1a, 0xa1, 0x45, 0x13, 0xd9, 0xe8, 0xf7, 0x38, 0x0a, 0xaf, 0x03, 0x25, 0xda,
  1224  	0x62, 0x61, 0x77, 0x63, 0x91, 0x03, 0x78, 0x1f, 0xbc, 0xfe, 0x02, 0xd0, 0xb0, 0x28, 0x26, 0x69,
  1225  	0x4a, 0x06, 0x70, 0xc3, 0xf7, 0x99, 0x82, 0xaf, 0x81, 0x3b, 0x43, 0xdd, 0xc3, 0x44, 0xa7, 0xe1,
  1226  	0x3a, 0xc8, 0x0d, 0x60, 0xf1, 0xb7, 0x0c, 0x2d, 0xbc, 0x2e, 0x43, 0xa1, 0x88, 0x1a, 0x16, 0x61,
  1227  	0x1e, 0xd1, 0x2f, 0x5c, 0x9a, 0x81, 0xab, 0xe0, 0xe5, 0xa1, 0xe5, 0x10, 0xdf, 0x84, 0x3a, 0xd4,
  1228  	0xc1, 0x3b, 0xa7, 0xc3, 0x0e, 0x0b, 0x1b, 0xc3, 0x97, 0xc0, 0xf2, 0x70, 0x89, 0x70, 0x4b, 0xf6,
  1229  	0xe0, 0xdb, 0xe0, 0x8d, 0x17, 0xa1, 0x86, 0x2d, 0xb1, 0x7f, 0xf2, 0x12, 0x61, 0x19, 0x1c, 0xd0,
  1230  	0x6f, 0x6f, 0x38, 0x8a, 0x16, 0x46, 0x03, 0xfe, 0x1f, 0x50, 0x07, 0x16, 0x7b, 0x7c, 0x5b, 0x9e,
  1231  	0x67, 0xe0, 0x2d, 0x70, 0x13, 0xe9, 0xa5, 0xb5, 0xf2, 0x96, 0x7d, 0x0a, 0xfc, 0xa7, 0x19, 0xf8,
  1232  	0x2e, 0x78, 0xeb, 0xc5, 0xc0, 0x61, 0x2f, 0xf8, 0x59, 0x06, 0x1a, 0xe0, 0xbd, 0x53, 0xaf, 0x37,
  1233  	0x4c, 0xe6, 0xf3, 0x0c, 0xbc, 0x06, 0xae, 0x0c, 0xe6, 0x87, 0x79, 0xf8, 0x22, 0x03, 0x57, 0xc0,
  1234  	0xf5, 0x13, 0x57, 0x0a, 0x91, 0x5f, 0x66, 0xe0, 0x9b, 0xe0, 0xde, 0x49, 0x90, 0x61, 0x61, 0xfc,
  1235  	0x26, 0x03, 0x1f, 0x80, 0xfb, 0xa7, 0x58, 0x63, 0x98, 0xc0, 0x6f, 0x4f, 0x78, 0x8f, 0x30, 0xd9,
  1236  	0x5f, 0xbd, 0xf8, 0x3d, 0x42, 0xe4, 0xef, 0x32, 0x70, 0x09, 0x5c, 0x1c, 0x0c, 0xa1, 0x35, 0xf1,
  1237  	0xfb, 0x0c, 0xbc, 0x01, 0x96, 0x4f, 0x54, 0xa2, 0xb0, 0x3f, 0x64, 0xa0, 0x0c, 0xe6, 0x4b, 0x65,
  1238  	0x7b, 0x5d, 0x2f, 0x98, 0xf6, 0xa3, 0x82, 0xb5, 0x69, 0x57, 0x2d, 0x64, 0x54, 0xab, 0xd2, 0xcf,
  1239  	0xcf, 0xd2, 0x50, 0x62, 0x9e, 0x52, 0x39, 0x74, 0xda, 0xeb, 0x65, 0x64, 0x9b, 0x85, 0x1d, 0xa3,
  1240  	0x44, 0x91, 0x9f, 0x9c, 0x85, 0xb3, 0x00, 0x50, 0x58, 0xa5, 0x5c, 0x28, 0x59, 0x55, 0xe9, 0x7b,
  1241  	0x59, 0xf8, 0x12, 0x50, 0xfa, 0x06, 0xce, 0x5e, 0x2b, 0x54, 0x8b, 0x76, 0xa1, 0x6c, 0x9b, 0xba,
  1242  	0x65, 0x94, 0xf2, 0x4f, 0xa4, 0x8f, 0xb2, 0x70, 0x1a, 0x8c, 0x1b, 0x8f, 0x2d, 0x03, 0x95, 0x74,
  1243  	0x53, 0xfa, 0x5b, 0xf6, 0xee, 0x03, 0x30, 0x61, 0xf9, 0x8e, 0x1b, 0xd0, 0x91, 0x05, 0xde, 0x15,
  1244  	0x1f, 0x66, 0xc2, 0x5f, 0xd5, 0x85, 0x7f, 0x68, 0x70, 0x69, 0xb6, 0xf7, 0xcc, 0xff, 0xa7, 0x59,
  1245  	0x3d, 0xb3, 0x92, 0xb9, 0x93, 0xc9, 0x2d, 0x3c, 0xff, 0xcb, 0xd2, 0x99, 0xe7, 0x5f, 0x2f, 0x65,
  1246  	0xbe, 0xfa, 0x7a, 0x29, 0xf3, 0xe7, 0xaf, 0x97, 0x32, 0x3f, 0xfe, 0xeb, 0xd2, 0x99, 0xdd, 0x31,
  1247  	0xf6, 0x87, 0x0a, 0xf7, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x98, 0xc0, 0x8e, 0xfb, 0xd8, 0x20,
  1248  	0x00, 0x00,
  1249  }
  1250  
  1251  // Reference imports to suppress errors if they are not otherwise used.
  1252  var _ context.Context
  1253  var _ grpc.ClientConn
  1254  
  1255  // This is a compile-time assertion to ensure that this generated file
  1256  // is compatible with the grpc package it is being compiled against.
  1257  const _ = grpc.SupportPackageIsVersion4
  1258  
  1259  // TransportClient is the client API for Transport service.
  1260  //
  1261  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  1262  type TransportClient interface {
  1263  	Transport(ctx context.Context, opts ...grpc.CallOption) (Transport_TransportClient, error)
  1264  }
  1265  
  1266  type transportClient struct {
  1267  	cc *grpc.ClientConn
  1268  }
  1269  
  1270  func NewTransportClient(cc *grpc.ClientConn) TransportClient {
  1271  	return &transportClient{cc}
  1272  }
  1273  
  1274  func (c *transportClient) Transport(ctx context.Context, opts ...grpc.CallOption) (Transport_TransportClient, error) {
  1275  	stream, err := c.cc.NewStream(ctx, &_Transport_serviceDesc.Streams[0], "/rpcpb.Transport/Transport", opts...)
  1276  	if err != nil {
  1277  		return nil, err
  1278  	}
  1279  	x := &transportTransportClient{stream}
  1280  	return x, nil
  1281  }
  1282  
  1283  type Transport_TransportClient interface {
  1284  	Send(*Request) error
  1285  	Recv() (*Response, error)
  1286  	grpc.ClientStream
  1287  }
  1288  
  1289  type transportTransportClient struct {
  1290  	grpc.ClientStream
  1291  }
  1292  
  1293  func (x *transportTransportClient) Send(m *Request) error {
  1294  	return x.ClientStream.SendMsg(m)
  1295  }
  1296  
  1297  func (x *transportTransportClient) Recv() (*Response, error) {
  1298  	m := new(Response)
  1299  	if err := x.ClientStream.RecvMsg(m); err != nil {
  1300  		return nil, err
  1301  	}
  1302  	return m, nil
  1303  }
  1304  
  1305  // TransportServer is the server API for Transport service.
  1306  type TransportServer interface {
  1307  	Transport(Transport_TransportServer) error
  1308  }
  1309  
  1310  // UnimplementedTransportServer can be embedded to have forward compatible implementations.
  1311  type UnimplementedTransportServer struct {
  1312  }
  1313  
  1314  func (*UnimplementedTransportServer) Transport(srv Transport_TransportServer) error {
  1315  	return status.Errorf(codes.Unimplemented, "method Transport not implemented")
  1316  }
  1317  
  1318  func RegisterTransportServer(s *grpc.Server, srv TransportServer) {
  1319  	s.RegisterService(&_Transport_serviceDesc, srv)
  1320  }
  1321  
  1322  func _Transport_Transport_Handler(srv interface{}, stream grpc.ServerStream) error {
  1323  	return srv.(TransportServer).Transport(&transportTransportServer{stream})
  1324  }
  1325  
  1326  type Transport_TransportServer interface {
  1327  	Send(*Response) error
  1328  	Recv() (*Request, error)
  1329  	grpc.ServerStream
  1330  }
  1331  
  1332  type transportTransportServer struct {
  1333  	grpc.ServerStream
  1334  }
  1335  
  1336  func (x *transportTransportServer) Send(m *Response) error {
  1337  	return x.ServerStream.SendMsg(m)
  1338  }
  1339  
  1340  func (x *transportTransportServer) Recv() (*Request, error) {
  1341  	m := new(Request)
  1342  	if err := x.ServerStream.RecvMsg(m); err != nil {
  1343  		return nil, err
  1344  	}
  1345  	return m, nil
  1346  }
  1347  
  1348  var _Transport_serviceDesc = grpc.ServiceDesc{
  1349  	ServiceName: "rpcpb.Transport",
  1350  	HandlerType: (*TransportServer)(nil),
  1351  	Methods:     []grpc.MethodDesc{},
  1352  	Streams: []grpc.StreamDesc{
  1353  		{
  1354  			StreamName:    "Transport",
  1355  			Handler:       _Transport_Transport_Handler,
  1356  			ServerStreams: true,
  1357  			ClientStreams: true,
  1358  		},
  1359  	},
  1360  	Metadata: "rpcpb/rpc.proto",
  1361  }
  1362  
  1363  func (m *Request) Marshal() (dAtA []byte, err error) {
  1364  	size := m.Size()
  1365  	dAtA = make([]byte, size)
  1366  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1367  	if err != nil {
  1368  		return nil, err
  1369  	}
  1370  	return dAtA[:n], nil
  1371  }
  1372  
  1373  func (m *Request) MarshalTo(dAtA []byte) (int, error) {
  1374  	size := m.Size()
  1375  	return m.MarshalToSizedBuffer(dAtA[:size])
  1376  }
  1377  
  1378  func (m *Request) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1379  	i := len(dAtA)
  1380  	_ = i
  1381  	var l int
  1382  	_ = l
  1383  	if m.XXX_unrecognized != nil {
  1384  		i -= len(m.XXX_unrecognized)
  1385  		copy(dAtA[i:], m.XXX_unrecognized)
  1386  	}
  1387  	if m.Tester != nil {
  1388  		{
  1389  			size, err := m.Tester.MarshalToSizedBuffer(dAtA[:i])
  1390  			if err != nil {
  1391  				return 0, err
  1392  			}
  1393  			i -= size
  1394  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1395  		}
  1396  		i--
  1397  		dAtA[i] = 0x1a
  1398  	}
  1399  	if m.Member != nil {
  1400  		{
  1401  			size, err := m.Member.MarshalToSizedBuffer(dAtA[:i])
  1402  			if err != nil {
  1403  				return 0, err
  1404  			}
  1405  			i -= size
  1406  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1407  		}
  1408  		i--
  1409  		dAtA[i] = 0x12
  1410  	}
  1411  	if m.Operation != 0 {
  1412  		i = encodeVarintRpc(dAtA, i, uint64(m.Operation))
  1413  		i--
  1414  		dAtA[i] = 0x8
  1415  	}
  1416  	return len(dAtA) - i, nil
  1417  }
  1418  
  1419  func (m *SnapshotInfo) Marshal() (dAtA []byte, err error) {
  1420  	size := m.Size()
  1421  	dAtA = make([]byte, size)
  1422  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1423  	if err != nil {
  1424  		return nil, err
  1425  	}
  1426  	return dAtA[:n], nil
  1427  }
  1428  
  1429  func (m *SnapshotInfo) MarshalTo(dAtA []byte) (int, error) {
  1430  	size := m.Size()
  1431  	return m.MarshalToSizedBuffer(dAtA[:size])
  1432  }
  1433  
  1434  func (m *SnapshotInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1435  	i := len(dAtA)
  1436  	_ = i
  1437  	var l int
  1438  	_ = l
  1439  	if m.XXX_unrecognized != nil {
  1440  		i -= len(m.XXX_unrecognized)
  1441  		copy(dAtA[i:], m.XXX_unrecognized)
  1442  	}
  1443  	if len(m.Version) > 0 {
  1444  		i -= len(m.Version)
  1445  		copy(dAtA[i:], m.Version)
  1446  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Version)))
  1447  		i--
  1448  		dAtA[i] = 0x52
  1449  	}
  1450  	if len(m.Took) > 0 {
  1451  		i -= len(m.Took)
  1452  		copy(dAtA[i:], m.Took)
  1453  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Took)))
  1454  		i--
  1455  		dAtA[i] = 0x4a
  1456  	}
  1457  	if m.SnapshotRevision != 0 {
  1458  		i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotRevision))
  1459  		i--
  1460  		dAtA[i] = 0x40
  1461  	}
  1462  	if m.SnapshotHash != 0 {
  1463  		i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotHash))
  1464  		i--
  1465  		dAtA[i] = 0x38
  1466  	}
  1467  	if m.SnapshotTotalKey != 0 {
  1468  		i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotTotalKey))
  1469  		i--
  1470  		dAtA[i] = 0x30
  1471  	}
  1472  	if len(m.SnapshotTotalSize) > 0 {
  1473  		i -= len(m.SnapshotTotalSize)
  1474  		copy(dAtA[i:], m.SnapshotTotalSize)
  1475  		i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotTotalSize)))
  1476  		i--
  1477  		dAtA[i] = 0x2a
  1478  	}
  1479  	if len(m.SnapshotFileSize) > 0 {
  1480  		i -= len(m.SnapshotFileSize)
  1481  		copy(dAtA[i:], m.SnapshotFileSize)
  1482  		i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotFileSize)))
  1483  		i--
  1484  		dAtA[i] = 0x22
  1485  	}
  1486  	if len(m.SnapshotPath) > 0 {
  1487  		i -= len(m.SnapshotPath)
  1488  		copy(dAtA[i:], m.SnapshotPath)
  1489  		i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotPath)))
  1490  		i--
  1491  		dAtA[i] = 0x1a
  1492  	}
  1493  	if len(m.MemberClientURLs) > 0 {
  1494  		for iNdEx := len(m.MemberClientURLs) - 1; iNdEx >= 0; iNdEx-- {
  1495  			i -= len(m.MemberClientURLs[iNdEx])
  1496  			copy(dAtA[i:], m.MemberClientURLs[iNdEx])
  1497  			i = encodeVarintRpc(dAtA, i, uint64(len(m.MemberClientURLs[iNdEx])))
  1498  			i--
  1499  			dAtA[i] = 0x12
  1500  		}
  1501  	}
  1502  	if len(m.MemberName) > 0 {
  1503  		i -= len(m.MemberName)
  1504  		copy(dAtA[i:], m.MemberName)
  1505  		i = encodeVarintRpc(dAtA, i, uint64(len(m.MemberName)))
  1506  		i--
  1507  		dAtA[i] = 0xa
  1508  	}
  1509  	return len(dAtA) - i, nil
  1510  }
  1511  
  1512  func (m *Response) Marshal() (dAtA []byte, err error) {
  1513  	size := m.Size()
  1514  	dAtA = make([]byte, size)
  1515  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1516  	if err != nil {
  1517  		return nil, err
  1518  	}
  1519  	return dAtA[:n], nil
  1520  }
  1521  
  1522  func (m *Response) MarshalTo(dAtA []byte) (int, error) {
  1523  	size := m.Size()
  1524  	return m.MarshalToSizedBuffer(dAtA[:size])
  1525  }
  1526  
  1527  func (m *Response) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1528  	i := len(dAtA)
  1529  	_ = i
  1530  	var l int
  1531  	_ = l
  1532  	if m.XXX_unrecognized != nil {
  1533  		i -= len(m.XXX_unrecognized)
  1534  		copy(dAtA[i:], m.XXX_unrecognized)
  1535  	}
  1536  	if m.SnapshotInfo != nil {
  1537  		{
  1538  			size, err := m.SnapshotInfo.MarshalToSizedBuffer(dAtA[:i])
  1539  			if err != nil {
  1540  				return 0, err
  1541  			}
  1542  			i -= size
  1543  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1544  		}
  1545  		i--
  1546  		dAtA[i] = 0x22
  1547  	}
  1548  	if m.Member != nil {
  1549  		{
  1550  			size, err := m.Member.MarshalToSizedBuffer(dAtA[:i])
  1551  			if err != nil {
  1552  				return 0, err
  1553  			}
  1554  			i -= size
  1555  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1556  		}
  1557  		i--
  1558  		dAtA[i] = 0x1a
  1559  	}
  1560  	if len(m.Status) > 0 {
  1561  		i -= len(m.Status)
  1562  		copy(dAtA[i:], m.Status)
  1563  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Status)))
  1564  		i--
  1565  		dAtA[i] = 0x12
  1566  	}
  1567  	if m.Success {
  1568  		i--
  1569  		if m.Success {
  1570  			dAtA[i] = 1
  1571  		} else {
  1572  			dAtA[i] = 0
  1573  		}
  1574  		i--
  1575  		dAtA[i] = 0x8
  1576  	}
  1577  	return len(dAtA) - i, nil
  1578  }
  1579  
  1580  func (m *Member) Marshal() (dAtA []byte, err error) {
  1581  	size := m.Size()
  1582  	dAtA = make([]byte, size)
  1583  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1584  	if err != nil {
  1585  		return nil, err
  1586  	}
  1587  	return dAtA[:n], nil
  1588  }
  1589  
  1590  func (m *Member) MarshalTo(dAtA []byte) (int, error) {
  1591  	size := m.Size()
  1592  	return m.MarshalToSizedBuffer(dAtA[:size])
  1593  }
  1594  
  1595  func (m *Member) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1596  	i := len(dAtA)
  1597  	_ = i
  1598  	var l int
  1599  	_ = l
  1600  	if m.XXX_unrecognized != nil {
  1601  		i -= len(m.XXX_unrecognized)
  1602  		copy(dAtA[i:], m.XXX_unrecognized)
  1603  	}
  1604  	if len(m.Failpoints) > 0 {
  1605  		i -= len(m.Failpoints)
  1606  		copy(dAtA[i:], m.Failpoints)
  1607  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Failpoints)))
  1608  		i--
  1609  		dAtA[i] = 0x2b
  1610  		i--
  1611  		dAtA[i] = 0xea
  1612  	}
  1613  	if m.SnapshotInfo != nil {
  1614  		{
  1615  			size, err := m.SnapshotInfo.MarshalToSizedBuffer(dAtA[:i])
  1616  			if err != nil {
  1617  				return 0, err
  1618  			}
  1619  			i -= size
  1620  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1621  		}
  1622  		i--
  1623  		dAtA[i] = 0x25
  1624  		i--
  1625  		dAtA[i] = 0xd2
  1626  	}
  1627  	if len(m.SnapshotPath) > 0 {
  1628  		i -= len(m.SnapshotPath)
  1629  		copy(dAtA[i:], m.SnapshotPath)
  1630  		i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotPath)))
  1631  		i--
  1632  		dAtA[i] = 0x25
  1633  		i--
  1634  		dAtA[i] = 0xca
  1635  	}
  1636  	if len(m.PeerTrustedCAPath) > 0 {
  1637  		i -= len(m.PeerTrustedCAPath)
  1638  		copy(dAtA[i:], m.PeerTrustedCAPath)
  1639  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAPath)))
  1640  		i--
  1641  		dAtA[i] = 0x1f
  1642  		i--
  1643  		dAtA[i] = 0xd2
  1644  	}
  1645  	if len(m.PeerTrustedCAData) > 0 {
  1646  		i -= len(m.PeerTrustedCAData)
  1647  		copy(dAtA[i:], m.PeerTrustedCAData)
  1648  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAData)))
  1649  		i--
  1650  		dAtA[i] = 0x1f
  1651  		i--
  1652  		dAtA[i] = 0xca
  1653  	}
  1654  	if len(m.PeerKeyPath) > 0 {
  1655  		i -= len(m.PeerKeyPath)
  1656  		copy(dAtA[i:], m.PeerKeyPath)
  1657  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyPath)))
  1658  		i--
  1659  		dAtA[i] = 0x1f
  1660  		i--
  1661  		dAtA[i] = 0xc2
  1662  	}
  1663  	if len(m.PeerKeyData) > 0 {
  1664  		i -= len(m.PeerKeyData)
  1665  		copy(dAtA[i:], m.PeerKeyData)
  1666  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyData)))
  1667  		i--
  1668  		dAtA[i] = 0x1f
  1669  		i--
  1670  		dAtA[i] = 0xba
  1671  	}
  1672  	if len(m.PeerCertPath) > 0 {
  1673  		i -= len(m.PeerCertPath)
  1674  		copy(dAtA[i:], m.PeerCertPath)
  1675  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertPath)))
  1676  		i--
  1677  		dAtA[i] = 0x1f
  1678  		i--
  1679  		dAtA[i] = 0xb2
  1680  	}
  1681  	if len(m.PeerCertData) > 0 {
  1682  		i -= len(m.PeerCertData)
  1683  		copy(dAtA[i:], m.PeerCertData)
  1684  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertData)))
  1685  		i--
  1686  		dAtA[i] = 0x1f
  1687  		i--
  1688  		dAtA[i] = 0xaa
  1689  	}
  1690  	if len(m.ClientTrustedCAPath) > 0 {
  1691  		i -= len(m.ClientTrustedCAPath)
  1692  		copy(dAtA[i:], m.ClientTrustedCAPath)
  1693  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAPath)))
  1694  		i--
  1695  		dAtA[i] = 0x19
  1696  		i--
  1697  		dAtA[i] = 0xb2
  1698  	}
  1699  	if len(m.ClientTrustedCAData) > 0 {
  1700  		i -= len(m.ClientTrustedCAData)
  1701  		copy(dAtA[i:], m.ClientTrustedCAData)
  1702  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAData)))
  1703  		i--
  1704  		dAtA[i] = 0x19
  1705  		i--
  1706  		dAtA[i] = 0xaa
  1707  	}
  1708  	if len(m.ClientKeyPath) > 0 {
  1709  		i -= len(m.ClientKeyPath)
  1710  		copy(dAtA[i:], m.ClientKeyPath)
  1711  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyPath)))
  1712  		i--
  1713  		dAtA[i] = 0x19
  1714  		i--
  1715  		dAtA[i] = 0xa2
  1716  	}
  1717  	if len(m.ClientKeyData) > 0 {
  1718  		i -= len(m.ClientKeyData)
  1719  		copy(dAtA[i:], m.ClientKeyData)
  1720  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyData)))
  1721  		i--
  1722  		dAtA[i] = 0x19
  1723  		i--
  1724  		dAtA[i] = 0x9a
  1725  	}
  1726  	if len(m.ClientCertPath) > 0 {
  1727  		i -= len(m.ClientCertPath)
  1728  		copy(dAtA[i:], m.ClientCertPath)
  1729  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertPath)))
  1730  		i--
  1731  		dAtA[i] = 0x19
  1732  		i--
  1733  		dAtA[i] = 0x92
  1734  	}
  1735  	if len(m.ClientCertData) > 0 {
  1736  		i -= len(m.ClientCertData)
  1737  		copy(dAtA[i:], m.ClientCertData)
  1738  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertData)))
  1739  		i--
  1740  		dAtA[i] = 0x19
  1741  		i--
  1742  		dAtA[i] = 0x8a
  1743  	}
  1744  	if m.EtcdOnSnapshotRestore != nil {
  1745  		{
  1746  			size, err := m.EtcdOnSnapshotRestore.MarshalToSizedBuffer(dAtA[:i])
  1747  			if err != nil {
  1748  				return 0, err
  1749  			}
  1750  			i -= size
  1751  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1752  		}
  1753  		i--
  1754  		dAtA[i] = 0x12
  1755  		i--
  1756  		dAtA[i] = 0xfa
  1757  	}
  1758  	if m.Etcd != nil {
  1759  		{
  1760  			size, err := m.Etcd.MarshalToSizedBuffer(dAtA[:i])
  1761  			if err != nil {
  1762  				return 0, err
  1763  			}
  1764  			i -= size
  1765  			i = encodeVarintRpc(dAtA, i, uint64(size))
  1766  		}
  1767  		i--
  1768  		dAtA[i] = 0x12
  1769  		i--
  1770  		dAtA[i] = 0xf2
  1771  	}
  1772  	if len(m.EtcdClientEndpoint) > 0 {
  1773  		i -= len(m.EtcdClientEndpoint)
  1774  		copy(dAtA[i:], m.EtcdClientEndpoint)
  1775  		i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdClientEndpoint)))
  1776  		i--
  1777  		dAtA[i] = 0x12
  1778  		i--
  1779  		dAtA[i] = 0xea
  1780  	}
  1781  	if m.EtcdPeerProxy {
  1782  		i--
  1783  		if m.EtcdPeerProxy {
  1784  			dAtA[i] = 1
  1785  		} else {
  1786  			dAtA[i] = 0
  1787  		}
  1788  		i--
  1789  		dAtA[i] = 0xc
  1790  		i--
  1791  		dAtA[i] = 0xd0
  1792  	}
  1793  	if m.EtcdClientProxy {
  1794  		i--
  1795  		if m.EtcdClientProxy {
  1796  			dAtA[i] = 1
  1797  		} else {
  1798  			dAtA[i] = 0
  1799  		}
  1800  		i--
  1801  		dAtA[i] = 0xc
  1802  		i--
  1803  		dAtA[i] = 0xc8
  1804  	}
  1805  	if len(m.BaseDir) > 0 {
  1806  		i -= len(m.BaseDir)
  1807  		copy(dAtA[i:], m.BaseDir)
  1808  		i = encodeVarintRpc(dAtA, i, uint64(len(m.BaseDir)))
  1809  		i--
  1810  		dAtA[i] = 0x6
  1811  		i--
  1812  		dAtA[i] = 0xaa
  1813  	}
  1814  	if len(m.FailpointHTTPAddr) > 0 {
  1815  		i -= len(m.FailpointHTTPAddr)
  1816  		copy(dAtA[i:], m.FailpointHTTPAddr)
  1817  		i = encodeVarintRpc(dAtA, i, uint64(len(m.FailpointHTTPAddr)))
  1818  		i--
  1819  		dAtA[i] = 0x62
  1820  	}
  1821  	if len(m.AgentAddr) > 0 {
  1822  		i -= len(m.AgentAddr)
  1823  		copy(dAtA[i:], m.AgentAddr)
  1824  		i = encodeVarintRpc(dAtA, i, uint64(len(m.AgentAddr)))
  1825  		i--
  1826  		dAtA[i] = 0x5a
  1827  	}
  1828  	if len(m.EtcdExec) > 0 {
  1829  		i -= len(m.EtcdExec)
  1830  		copy(dAtA[i:], m.EtcdExec)
  1831  		i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdExec)))
  1832  		i--
  1833  		dAtA[i] = 0xa
  1834  	}
  1835  	return len(dAtA) - i, nil
  1836  }
  1837  
  1838  func (m *Tester) Marshal() (dAtA []byte, err error) {
  1839  	size := m.Size()
  1840  	dAtA = make([]byte, size)
  1841  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1842  	if err != nil {
  1843  		return nil, err
  1844  	}
  1845  	return dAtA[:n], nil
  1846  }
  1847  
  1848  func (m *Tester) MarshalTo(dAtA []byte) (int, error) {
  1849  	size := m.Size()
  1850  	return m.MarshalToSizedBuffer(dAtA[:size])
  1851  }
  1852  
  1853  func (m *Tester) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1854  	i := len(dAtA)
  1855  	_ = i
  1856  	var l int
  1857  	_ = l
  1858  	if m.XXX_unrecognized != nil {
  1859  		i -= len(m.XXX_unrecognized)
  1860  		copy(dAtA[i:], m.XXX_unrecognized)
  1861  	}
  1862  	if m.StressQPS != 0 {
  1863  		i = encodeVarintRpc(dAtA, i, uint64(m.StressQPS))
  1864  		i--
  1865  		dAtA[i] = 0x12
  1866  		i--
  1867  		dAtA[i] = 0xf0
  1868  	}
  1869  	if m.StressClients != 0 {
  1870  		i = encodeVarintRpc(dAtA, i, uint64(m.StressClients))
  1871  		i--
  1872  		dAtA[i] = 0x12
  1873  		i--
  1874  		dAtA[i] = 0xe8
  1875  	}
  1876  	if m.StressKeyTxnOps != 0 {
  1877  		i = encodeVarintRpc(dAtA, i, uint64(m.StressKeyTxnOps))
  1878  		i--
  1879  		dAtA[i] = 0xc
  1880  		i--
  1881  		dAtA[i] = 0xe8
  1882  	}
  1883  	if m.StressKeySuffixRangeTxn != 0 {
  1884  		i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRangeTxn))
  1885  		i--
  1886  		dAtA[i] = 0xc
  1887  		i--
  1888  		dAtA[i] = 0xe0
  1889  	}
  1890  	if m.StressKeySuffixRange != 0 {
  1891  		i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRange))
  1892  		i--
  1893  		dAtA[i] = 0xc
  1894  		i--
  1895  		dAtA[i] = 0xd8
  1896  	}
  1897  	if m.StressKeySizeLarge != 0 {
  1898  		i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySizeLarge))
  1899  		i--
  1900  		dAtA[i] = 0xc
  1901  		i--
  1902  		dAtA[i] = 0xd0
  1903  	}
  1904  	if m.StressKeySize != 0 {
  1905  		i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySize))
  1906  		i--
  1907  		dAtA[i] = 0xc
  1908  		i--
  1909  		dAtA[i] = 0xc8
  1910  	}
  1911  	if len(m.Checkers) > 0 {
  1912  		for iNdEx := len(m.Checkers) - 1; iNdEx >= 0; iNdEx-- {
  1913  			i -= len(m.Checkers[iNdEx])
  1914  			copy(dAtA[i:], m.Checkers[iNdEx])
  1915  			i = encodeVarintRpc(dAtA, i, uint64(len(m.Checkers[iNdEx])))
  1916  			i--
  1917  			dAtA[i] = 0x6
  1918  			i--
  1919  			dAtA[i] = 0xb2
  1920  		}
  1921  	}
  1922  	if len(m.Stressers) > 0 {
  1923  		for iNdEx := len(m.Stressers) - 1; iNdEx >= 0; iNdEx-- {
  1924  			{
  1925  				size, err := m.Stressers[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  1926  				if err != nil {
  1927  					return 0, err
  1928  				}
  1929  				i -= size
  1930  				i = encodeVarintRpc(dAtA, i, uint64(size))
  1931  			}
  1932  			i--
  1933  			dAtA[i] = 0x6
  1934  			i--
  1935  			dAtA[i] = 0xaa
  1936  		}
  1937  	}
  1938  	if len(m.ExternalExecPath) > 0 {
  1939  		i -= len(m.ExternalExecPath)
  1940  		copy(dAtA[i:], m.ExternalExecPath)
  1941  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ExternalExecPath)))
  1942  		i--
  1943  		dAtA[i] = 0x2
  1944  		i--
  1945  		dAtA[i] = 0xd2
  1946  	}
  1947  	if len(m.RunnerExecPath) > 0 {
  1948  		i -= len(m.RunnerExecPath)
  1949  		copy(dAtA[i:], m.RunnerExecPath)
  1950  		i = encodeVarintRpc(dAtA, i, uint64(len(m.RunnerExecPath)))
  1951  		i--
  1952  		dAtA[i] = 0x2
  1953  		i--
  1954  		dAtA[i] = 0xca
  1955  	}
  1956  	if len(m.FailpointCommands) > 0 {
  1957  		for iNdEx := len(m.FailpointCommands) - 1; iNdEx >= 0; iNdEx-- {
  1958  			i -= len(m.FailpointCommands[iNdEx])
  1959  			copy(dAtA[i:], m.FailpointCommands[iNdEx])
  1960  			i = encodeVarintRpc(dAtA, i, uint64(len(m.FailpointCommands[iNdEx])))
  1961  			i--
  1962  			dAtA[i] = 0x2
  1963  			i--
  1964  			dAtA[i] = 0x92
  1965  		}
  1966  	}
  1967  	if len(m.Cases) > 0 {
  1968  		for iNdEx := len(m.Cases) - 1; iNdEx >= 0; iNdEx-- {
  1969  			i -= len(m.Cases[iNdEx])
  1970  			copy(dAtA[i:], m.Cases[iNdEx])
  1971  			i = encodeVarintRpc(dAtA, i, uint64(len(m.Cases[iNdEx])))
  1972  			i--
  1973  			dAtA[i] = 0x2
  1974  			i--
  1975  			dAtA[i] = 0x8a
  1976  		}
  1977  	}
  1978  	if m.CaseShuffle {
  1979  		i--
  1980  		if m.CaseShuffle {
  1981  			dAtA[i] = 1
  1982  		} else {
  1983  			dAtA[i] = 0
  1984  		}
  1985  		i--
  1986  		dAtA[i] = 0x2
  1987  		i--
  1988  		dAtA[i] = 0x80
  1989  	}
  1990  	if m.CaseDelayMs != 0 {
  1991  		i = encodeVarintRpc(dAtA, i, uint64(m.CaseDelayMs))
  1992  		i--
  1993  		dAtA[i] = 0x1
  1994  		i--
  1995  		dAtA[i] = 0xf8
  1996  	}
  1997  	if m.EnablePprof {
  1998  		i--
  1999  		if m.EnablePprof {
  2000  			dAtA[i] = 1
  2001  		} else {
  2002  			dAtA[i] = 0
  2003  		}
  2004  		i--
  2005  		dAtA[i] = 0x1
  2006  		i--
  2007  		dAtA[i] = 0xb8
  2008  	}
  2009  	if m.ExitOnCaseFail {
  2010  		i--
  2011  		if m.ExitOnCaseFail {
  2012  			dAtA[i] = 1
  2013  		} else {
  2014  			dAtA[i] = 0
  2015  		}
  2016  		i--
  2017  		dAtA[i] = 0x1
  2018  		i--
  2019  		dAtA[i] = 0xb0
  2020  	}
  2021  	if m.RoundLimit != 0 {
  2022  		i = encodeVarintRpc(dAtA, i, uint64(m.RoundLimit))
  2023  		i--
  2024  		dAtA[i] = 0x1
  2025  		i--
  2026  		dAtA[i] = 0xa8
  2027  	}
  2028  	if m.UpdatedDelayLatencyMs != 0 {
  2029  		i = encodeVarintRpc(dAtA, i, uint64(m.UpdatedDelayLatencyMs))
  2030  		i--
  2031  		dAtA[i] = 0x68
  2032  	}
  2033  	if m.DelayLatencyMsRv != 0 {
  2034  		i = encodeVarintRpc(dAtA, i, uint64(m.DelayLatencyMsRv))
  2035  		i--
  2036  		dAtA[i] = 0x60
  2037  	}
  2038  	if m.DelayLatencyMs != 0 {
  2039  		i = encodeVarintRpc(dAtA, i, uint64(m.DelayLatencyMs))
  2040  		i--
  2041  		dAtA[i] = 0x58
  2042  	}
  2043  	if len(m.Addr) > 0 {
  2044  		i -= len(m.Addr)
  2045  		copy(dAtA[i:], m.Addr)
  2046  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Addr)))
  2047  		i--
  2048  		dAtA[i] = 0x1a
  2049  	}
  2050  	if len(m.Network) > 0 {
  2051  		i -= len(m.Network)
  2052  		copy(dAtA[i:], m.Network)
  2053  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Network)))
  2054  		i--
  2055  		dAtA[i] = 0x12
  2056  	}
  2057  	if len(m.DataDir) > 0 {
  2058  		i -= len(m.DataDir)
  2059  		copy(dAtA[i:], m.DataDir)
  2060  		i = encodeVarintRpc(dAtA, i, uint64(len(m.DataDir)))
  2061  		i--
  2062  		dAtA[i] = 0xa
  2063  	}
  2064  	return len(dAtA) - i, nil
  2065  }
  2066  
  2067  func (m *Stresser) Marshal() (dAtA []byte, err error) {
  2068  	size := m.Size()
  2069  	dAtA = make([]byte, size)
  2070  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  2071  	if err != nil {
  2072  		return nil, err
  2073  	}
  2074  	return dAtA[:n], nil
  2075  }
  2076  
  2077  func (m *Stresser) MarshalTo(dAtA []byte) (int, error) {
  2078  	size := m.Size()
  2079  	return m.MarshalToSizedBuffer(dAtA[:size])
  2080  }
  2081  
  2082  func (m *Stresser) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  2083  	i := len(dAtA)
  2084  	_ = i
  2085  	var l int
  2086  	_ = l
  2087  	if m.XXX_unrecognized != nil {
  2088  		i -= len(m.XXX_unrecognized)
  2089  		copy(dAtA[i:], m.XXX_unrecognized)
  2090  	}
  2091  	if m.Weight != 0 {
  2092  		i -= 8
  2093  		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Weight))))
  2094  		i--
  2095  		dAtA[i] = 0x11
  2096  	}
  2097  	if len(m.Type) > 0 {
  2098  		i -= len(m.Type)
  2099  		copy(dAtA[i:], m.Type)
  2100  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Type)))
  2101  		i--
  2102  		dAtA[i] = 0xa
  2103  	}
  2104  	return len(dAtA) - i, nil
  2105  }
  2106  
  2107  func (m *Etcd) Marshal() (dAtA []byte, err error) {
  2108  	size := m.Size()
  2109  	dAtA = make([]byte, size)
  2110  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  2111  	if err != nil {
  2112  		return nil, err
  2113  	}
  2114  	return dAtA[:n], nil
  2115  }
  2116  
  2117  func (m *Etcd) MarshalTo(dAtA []byte) (int, error) {
  2118  	size := m.Size()
  2119  	return m.MarshalToSizedBuffer(dAtA[:size])
  2120  }
  2121  
  2122  func (m *Etcd) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  2123  	i := len(dAtA)
  2124  	_ = i
  2125  	var l int
  2126  	_ = l
  2127  	if m.XXX_unrecognized != nil {
  2128  		i -= len(m.XXX_unrecognized)
  2129  		copy(dAtA[i:], m.XXX_unrecognized)
  2130  	}
  2131  	if m.SocketReusePort {
  2132  		i--
  2133  		if m.SocketReusePort {
  2134  			dAtA[i] = 1
  2135  		} else {
  2136  			dAtA[i] = 0
  2137  		}
  2138  		i--
  2139  		dAtA[i] = 0x5
  2140  		i--
  2141  		dAtA[i] = 0x90
  2142  	}
  2143  	if m.SocketReuseAddress {
  2144  		i--
  2145  		if m.SocketReuseAddress {
  2146  			dAtA[i] = 1
  2147  		} else {
  2148  			dAtA[i] = 0
  2149  		}
  2150  		i--
  2151  		dAtA[i] = 0x5
  2152  		i--
  2153  		dAtA[i] = 0x88
  2154  	}
  2155  	if len(m.LogLevel) > 0 {
  2156  		i -= len(m.LogLevel)
  2157  		copy(dAtA[i:], m.LogLevel)
  2158  		i = encodeVarintRpc(dAtA, i, uint64(len(m.LogLevel)))
  2159  		i--
  2160  		dAtA[i] = 0x4
  2161  		i--
  2162  		dAtA[i] = 0xca
  2163  	}
  2164  	if len(m.LogOutputs) > 0 {
  2165  		for iNdEx := len(m.LogOutputs) - 1; iNdEx >= 0; iNdEx-- {
  2166  			i -= len(m.LogOutputs[iNdEx])
  2167  			copy(dAtA[i:], m.LogOutputs[iNdEx])
  2168  			i = encodeVarintRpc(dAtA, i, uint64(len(m.LogOutputs[iNdEx])))
  2169  			i--
  2170  			dAtA[i] = 0x4
  2171  			i--
  2172  			dAtA[i] = 0xc2
  2173  		}
  2174  	}
  2175  	if len(m.Logger) > 0 {
  2176  		i -= len(m.Logger)
  2177  		copy(dAtA[i:], m.Logger)
  2178  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Logger)))
  2179  		i--
  2180  		dAtA[i] = 0x4
  2181  		i--
  2182  		dAtA[i] = 0xba
  2183  	}
  2184  	if m.InitialCorruptCheck {
  2185  		i--
  2186  		if m.InitialCorruptCheck {
  2187  			dAtA[i] = 1
  2188  		} else {
  2189  			dAtA[i] = 0
  2190  		}
  2191  		i--
  2192  		dAtA[i] = 0x4
  2193  		i--
  2194  		dAtA[i] = 0x80
  2195  	}
  2196  	if m.PreVote {
  2197  		i--
  2198  		if m.PreVote {
  2199  			dAtA[i] = 1
  2200  		} else {
  2201  			dAtA[i] = 0
  2202  		}
  2203  		i--
  2204  		dAtA[i] = 0x3
  2205  		i--
  2206  		dAtA[i] = 0xf8
  2207  	}
  2208  	if m.QuotaBackendBytes != 0 {
  2209  		i = encodeVarintRpc(dAtA, i, uint64(m.QuotaBackendBytes))
  2210  		i--
  2211  		dAtA[i] = 0x3
  2212  		i--
  2213  		dAtA[i] = 0xa0
  2214  	}
  2215  	if m.SnapshotCount != 0 {
  2216  		i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotCount))
  2217  		i--
  2218  		dAtA[i] = 0x3
  2219  		i--
  2220  		dAtA[i] = 0x98
  2221  	}
  2222  	if len(m.InitialClusterToken) > 0 {
  2223  		i -= len(m.InitialClusterToken)
  2224  		copy(dAtA[i:], m.InitialClusterToken)
  2225  		i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialClusterToken)))
  2226  		i--
  2227  		dAtA[i] = 0x2
  2228  		i--
  2229  		dAtA[i] = 0xda
  2230  	}
  2231  	if len(m.InitialClusterState) > 0 {
  2232  		i -= len(m.InitialClusterState)
  2233  		copy(dAtA[i:], m.InitialClusterState)
  2234  		i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialClusterState)))
  2235  		i--
  2236  		dAtA[i] = 0x2
  2237  		i--
  2238  		dAtA[i] = 0xd2
  2239  	}
  2240  	if len(m.InitialCluster) > 0 {
  2241  		i -= len(m.InitialCluster)
  2242  		copy(dAtA[i:], m.InitialCluster)
  2243  		i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialCluster)))
  2244  		i--
  2245  		dAtA[i] = 0x2
  2246  		i--
  2247  		dAtA[i] = 0xca
  2248  	}
  2249  	if len(m.PeerTrustedCAFile) > 0 {
  2250  		i -= len(m.PeerTrustedCAFile)
  2251  		copy(dAtA[i:], m.PeerTrustedCAFile)
  2252  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAFile)))
  2253  		i--
  2254  		dAtA[i] = 0x2
  2255  		i--
  2256  		dAtA[i] = 0xaa
  2257  	}
  2258  	if len(m.PeerKeyFile) > 0 {
  2259  		i -= len(m.PeerKeyFile)
  2260  		copy(dAtA[i:], m.PeerKeyFile)
  2261  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyFile)))
  2262  		i--
  2263  		dAtA[i] = 0x2
  2264  		i--
  2265  		dAtA[i] = 0xa2
  2266  	}
  2267  	if len(m.PeerCertFile) > 0 {
  2268  		i -= len(m.PeerCertFile)
  2269  		copy(dAtA[i:], m.PeerCertFile)
  2270  		i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertFile)))
  2271  		i--
  2272  		dAtA[i] = 0x2
  2273  		i--
  2274  		dAtA[i] = 0x9a
  2275  	}
  2276  	if m.PeerClientCertAuth {
  2277  		i--
  2278  		if m.PeerClientCertAuth {
  2279  			dAtA[i] = 1
  2280  		} else {
  2281  			dAtA[i] = 0
  2282  		}
  2283  		i--
  2284  		dAtA[i] = 0x2
  2285  		i--
  2286  		dAtA[i] = 0x90
  2287  	}
  2288  	if m.PeerAutoTLS {
  2289  		i--
  2290  		if m.PeerAutoTLS {
  2291  			dAtA[i] = 1
  2292  		} else {
  2293  			dAtA[i] = 0
  2294  		}
  2295  		i--
  2296  		dAtA[i] = 0x2
  2297  		i--
  2298  		dAtA[i] = 0x88
  2299  	}
  2300  	if len(m.AdvertisePeerURLs) > 0 {
  2301  		for iNdEx := len(m.AdvertisePeerURLs) - 1; iNdEx >= 0; iNdEx-- {
  2302  			i -= len(m.AdvertisePeerURLs[iNdEx])
  2303  			copy(dAtA[i:], m.AdvertisePeerURLs[iNdEx])
  2304  			i = encodeVarintRpc(dAtA, i, uint64(len(m.AdvertisePeerURLs[iNdEx])))
  2305  			i--
  2306  			dAtA[i] = 0x2
  2307  			i--
  2308  			dAtA[i] = 0x82
  2309  		}
  2310  	}
  2311  	if len(m.ListenPeerURLs) > 0 {
  2312  		for iNdEx := len(m.ListenPeerURLs) - 1; iNdEx >= 0; iNdEx-- {
  2313  			i -= len(m.ListenPeerURLs[iNdEx])
  2314  			copy(dAtA[i:], m.ListenPeerURLs[iNdEx])
  2315  			i = encodeVarintRpc(dAtA, i, uint64(len(m.ListenPeerURLs[iNdEx])))
  2316  			i--
  2317  			dAtA[i] = 0x1
  2318  			i--
  2319  			dAtA[i] = 0xfa
  2320  		}
  2321  	}
  2322  	if len(m.ClientTrustedCAFile) > 0 {
  2323  		i -= len(m.ClientTrustedCAFile)
  2324  		copy(dAtA[i:], m.ClientTrustedCAFile)
  2325  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAFile)))
  2326  		i--
  2327  		dAtA[i] = 0x1
  2328  		i--
  2329  		dAtA[i] = 0xda
  2330  	}
  2331  	if len(m.ClientKeyFile) > 0 {
  2332  		i -= len(m.ClientKeyFile)
  2333  		copy(dAtA[i:], m.ClientKeyFile)
  2334  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyFile)))
  2335  		i--
  2336  		dAtA[i] = 0x1
  2337  		i--
  2338  		dAtA[i] = 0xd2
  2339  	}
  2340  	if len(m.ClientCertFile) > 0 {
  2341  		i -= len(m.ClientCertFile)
  2342  		copy(dAtA[i:], m.ClientCertFile)
  2343  		i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertFile)))
  2344  		i--
  2345  		dAtA[i] = 0x1
  2346  		i--
  2347  		dAtA[i] = 0xca
  2348  	}
  2349  	if m.ClientCertAuth {
  2350  		i--
  2351  		if m.ClientCertAuth {
  2352  			dAtA[i] = 1
  2353  		} else {
  2354  			dAtA[i] = 0
  2355  		}
  2356  		i--
  2357  		dAtA[i] = 0x1
  2358  		i--
  2359  		dAtA[i] = 0xc0
  2360  	}
  2361  	if m.ClientAutoTLS {
  2362  		i--
  2363  		if m.ClientAutoTLS {
  2364  			dAtA[i] = 1
  2365  		} else {
  2366  			dAtA[i] = 0
  2367  		}
  2368  		i--
  2369  		dAtA[i] = 0x1
  2370  		i--
  2371  		dAtA[i] = 0xb8
  2372  	}
  2373  	if len(m.AdvertiseClientURLs) > 0 {
  2374  		for iNdEx := len(m.AdvertiseClientURLs) - 1; iNdEx >= 0; iNdEx-- {
  2375  			i -= len(m.AdvertiseClientURLs[iNdEx])
  2376  			copy(dAtA[i:], m.AdvertiseClientURLs[iNdEx])
  2377  			i = encodeVarintRpc(dAtA, i, uint64(len(m.AdvertiseClientURLs[iNdEx])))
  2378  			i--
  2379  			dAtA[i] = 0x1
  2380  			i--
  2381  			dAtA[i] = 0xb2
  2382  		}
  2383  	}
  2384  	if len(m.ListenClientURLs) > 0 {
  2385  		for iNdEx := len(m.ListenClientURLs) - 1; iNdEx >= 0; iNdEx-- {
  2386  			i -= len(m.ListenClientURLs[iNdEx])
  2387  			copy(dAtA[i:], m.ListenClientURLs[iNdEx])
  2388  			i = encodeVarintRpc(dAtA, i, uint64(len(m.ListenClientURLs[iNdEx])))
  2389  			i--
  2390  			dAtA[i] = 0x1
  2391  			i--
  2392  			dAtA[i] = 0xaa
  2393  		}
  2394  	}
  2395  	if m.ElectionTimeoutMs != 0 {
  2396  		i = encodeVarintRpc(dAtA, i, uint64(m.ElectionTimeoutMs))
  2397  		i--
  2398  		dAtA[i] = 0x60
  2399  	}
  2400  	if m.HeartbeatIntervalMs != 0 {
  2401  		i = encodeVarintRpc(dAtA, i, uint64(m.HeartbeatIntervalMs))
  2402  		i--
  2403  		dAtA[i] = 0x58
  2404  	}
  2405  	if len(m.WALDir) > 0 {
  2406  		i -= len(m.WALDir)
  2407  		copy(dAtA[i:], m.WALDir)
  2408  		i = encodeVarintRpc(dAtA, i, uint64(len(m.WALDir)))
  2409  		i--
  2410  		dAtA[i] = 0x1a
  2411  	}
  2412  	if len(m.DataDir) > 0 {
  2413  		i -= len(m.DataDir)
  2414  		copy(dAtA[i:], m.DataDir)
  2415  		i = encodeVarintRpc(dAtA, i, uint64(len(m.DataDir)))
  2416  		i--
  2417  		dAtA[i] = 0x12
  2418  	}
  2419  	if len(m.Name) > 0 {
  2420  		i -= len(m.Name)
  2421  		copy(dAtA[i:], m.Name)
  2422  		i = encodeVarintRpc(dAtA, i, uint64(len(m.Name)))
  2423  		i--
  2424  		dAtA[i] = 0xa
  2425  	}
  2426  	return len(dAtA) - i, nil
  2427  }
  2428  
  2429  func encodeVarintRpc(dAtA []byte, offset int, v uint64) int {
  2430  	offset -= sovRpc(v)
  2431  	base := offset
  2432  	for v >= 1<<7 {
  2433  		dAtA[offset] = uint8(v&0x7f | 0x80)
  2434  		v >>= 7
  2435  		offset++
  2436  	}
  2437  	dAtA[offset] = uint8(v)
  2438  	return base
  2439  }
  2440  func (m *Request) Size() (n int) {
  2441  	if m == nil {
  2442  		return 0
  2443  	}
  2444  	var l int
  2445  	_ = l
  2446  	if m.Operation != 0 {
  2447  		n += 1 + sovRpc(uint64(m.Operation))
  2448  	}
  2449  	if m.Member != nil {
  2450  		l = m.Member.Size()
  2451  		n += 1 + l + sovRpc(uint64(l))
  2452  	}
  2453  	if m.Tester != nil {
  2454  		l = m.Tester.Size()
  2455  		n += 1 + l + sovRpc(uint64(l))
  2456  	}
  2457  	if m.XXX_unrecognized != nil {
  2458  		n += len(m.XXX_unrecognized)
  2459  	}
  2460  	return n
  2461  }
  2462  
  2463  func (m *SnapshotInfo) Size() (n int) {
  2464  	if m == nil {
  2465  		return 0
  2466  	}
  2467  	var l int
  2468  	_ = l
  2469  	l = len(m.MemberName)
  2470  	if l > 0 {
  2471  		n += 1 + l + sovRpc(uint64(l))
  2472  	}
  2473  	if len(m.MemberClientURLs) > 0 {
  2474  		for _, s := range m.MemberClientURLs {
  2475  			l = len(s)
  2476  			n += 1 + l + sovRpc(uint64(l))
  2477  		}
  2478  	}
  2479  	l = len(m.SnapshotPath)
  2480  	if l > 0 {
  2481  		n += 1 + l + sovRpc(uint64(l))
  2482  	}
  2483  	l = len(m.SnapshotFileSize)
  2484  	if l > 0 {
  2485  		n += 1 + l + sovRpc(uint64(l))
  2486  	}
  2487  	l = len(m.SnapshotTotalSize)
  2488  	if l > 0 {
  2489  		n += 1 + l + sovRpc(uint64(l))
  2490  	}
  2491  	if m.SnapshotTotalKey != 0 {
  2492  		n += 1 + sovRpc(uint64(m.SnapshotTotalKey))
  2493  	}
  2494  	if m.SnapshotHash != 0 {
  2495  		n += 1 + sovRpc(uint64(m.SnapshotHash))
  2496  	}
  2497  	if m.SnapshotRevision != 0 {
  2498  		n += 1 + sovRpc(uint64(m.SnapshotRevision))
  2499  	}
  2500  	l = len(m.Took)
  2501  	if l > 0 {
  2502  		n += 1 + l + sovRpc(uint64(l))
  2503  	}
  2504  	l = len(m.Version)
  2505  	if l > 0 {
  2506  		n += 1 + l + sovRpc(uint64(l))
  2507  	}
  2508  	if m.XXX_unrecognized != nil {
  2509  		n += len(m.XXX_unrecognized)
  2510  	}
  2511  	return n
  2512  }
  2513  
  2514  func (m *Response) Size() (n int) {
  2515  	if m == nil {
  2516  		return 0
  2517  	}
  2518  	var l int
  2519  	_ = l
  2520  	if m.Success {
  2521  		n += 2
  2522  	}
  2523  	l = len(m.Status)
  2524  	if l > 0 {
  2525  		n += 1 + l + sovRpc(uint64(l))
  2526  	}
  2527  	if m.Member != nil {
  2528  		l = m.Member.Size()
  2529  		n += 1 + l + sovRpc(uint64(l))
  2530  	}
  2531  	if m.SnapshotInfo != nil {
  2532  		l = m.SnapshotInfo.Size()
  2533  		n += 1 + l + sovRpc(uint64(l))
  2534  	}
  2535  	if m.XXX_unrecognized != nil {
  2536  		n += len(m.XXX_unrecognized)
  2537  	}
  2538  	return n
  2539  }
  2540  
  2541  func (m *Member) Size() (n int) {
  2542  	if m == nil {
  2543  		return 0
  2544  	}
  2545  	var l int
  2546  	_ = l
  2547  	l = len(m.EtcdExec)
  2548  	if l > 0 {
  2549  		n += 1 + l + sovRpc(uint64(l))
  2550  	}
  2551  	l = len(m.AgentAddr)
  2552  	if l > 0 {
  2553  		n += 1 + l + sovRpc(uint64(l))
  2554  	}
  2555  	l = len(m.FailpointHTTPAddr)
  2556  	if l > 0 {
  2557  		n += 1 + l + sovRpc(uint64(l))
  2558  	}
  2559  	l = len(m.BaseDir)
  2560  	if l > 0 {
  2561  		n += 2 + l + sovRpc(uint64(l))
  2562  	}
  2563  	if m.EtcdClientProxy {
  2564  		n += 3
  2565  	}
  2566  	if m.EtcdPeerProxy {
  2567  		n += 3
  2568  	}
  2569  	l = len(m.EtcdClientEndpoint)
  2570  	if l > 0 {
  2571  		n += 2 + l + sovRpc(uint64(l))
  2572  	}
  2573  	if m.Etcd != nil {
  2574  		l = m.Etcd.Size()
  2575  		n += 2 + l + sovRpc(uint64(l))
  2576  	}
  2577  	if m.EtcdOnSnapshotRestore != nil {
  2578  		l = m.EtcdOnSnapshotRestore.Size()
  2579  		n += 2 + l + sovRpc(uint64(l))
  2580  	}
  2581  	l = len(m.ClientCertData)
  2582  	if l > 0 {
  2583  		n += 2 + l + sovRpc(uint64(l))
  2584  	}
  2585  	l = len(m.ClientCertPath)
  2586  	if l > 0 {
  2587  		n += 2 + l + sovRpc(uint64(l))
  2588  	}
  2589  	l = len(m.ClientKeyData)
  2590  	if l > 0 {
  2591  		n += 2 + l + sovRpc(uint64(l))
  2592  	}
  2593  	l = len(m.ClientKeyPath)
  2594  	if l > 0 {
  2595  		n += 2 + l + sovRpc(uint64(l))
  2596  	}
  2597  	l = len(m.ClientTrustedCAData)
  2598  	if l > 0 {
  2599  		n += 2 + l + sovRpc(uint64(l))
  2600  	}
  2601  	l = len(m.ClientTrustedCAPath)
  2602  	if l > 0 {
  2603  		n += 2 + l + sovRpc(uint64(l))
  2604  	}
  2605  	l = len(m.PeerCertData)
  2606  	if l > 0 {
  2607  		n += 2 + l + sovRpc(uint64(l))
  2608  	}
  2609  	l = len(m.PeerCertPath)
  2610  	if l > 0 {
  2611  		n += 2 + l + sovRpc(uint64(l))
  2612  	}
  2613  	l = len(m.PeerKeyData)
  2614  	if l > 0 {
  2615  		n += 2 + l + sovRpc(uint64(l))
  2616  	}
  2617  	l = len(m.PeerKeyPath)
  2618  	if l > 0 {
  2619  		n += 2 + l + sovRpc(uint64(l))
  2620  	}
  2621  	l = len(m.PeerTrustedCAData)
  2622  	if l > 0 {
  2623  		n += 2 + l + sovRpc(uint64(l))
  2624  	}
  2625  	l = len(m.PeerTrustedCAPath)
  2626  	if l > 0 {
  2627  		n += 2 + l + sovRpc(uint64(l))
  2628  	}
  2629  	l = len(m.SnapshotPath)
  2630  	if l > 0 {
  2631  		n += 2 + l + sovRpc(uint64(l))
  2632  	}
  2633  	if m.SnapshotInfo != nil {
  2634  		l = m.SnapshotInfo.Size()
  2635  		n += 2 + l + sovRpc(uint64(l))
  2636  	}
  2637  	l = len(m.Failpoints)
  2638  	if l > 0 {
  2639  		n += 2 + l + sovRpc(uint64(l))
  2640  	}
  2641  	if m.XXX_unrecognized != nil {
  2642  		n += len(m.XXX_unrecognized)
  2643  	}
  2644  	return n
  2645  }
  2646  
  2647  func (m *Tester) Size() (n int) {
  2648  	if m == nil {
  2649  		return 0
  2650  	}
  2651  	var l int
  2652  	_ = l
  2653  	l = len(m.DataDir)
  2654  	if l > 0 {
  2655  		n += 1 + l + sovRpc(uint64(l))
  2656  	}
  2657  	l = len(m.Network)
  2658  	if l > 0 {
  2659  		n += 1 + l + sovRpc(uint64(l))
  2660  	}
  2661  	l = len(m.Addr)
  2662  	if l > 0 {
  2663  		n += 1 + l + sovRpc(uint64(l))
  2664  	}
  2665  	if m.DelayLatencyMs != 0 {
  2666  		n += 1 + sovRpc(uint64(m.DelayLatencyMs))
  2667  	}
  2668  	if m.DelayLatencyMsRv != 0 {
  2669  		n += 1 + sovRpc(uint64(m.DelayLatencyMsRv))
  2670  	}
  2671  	if m.UpdatedDelayLatencyMs != 0 {
  2672  		n += 1 + sovRpc(uint64(m.UpdatedDelayLatencyMs))
  2673  	}
  2674  	if m.RoundLimit != 0 {
  2675  		n += 2 + sovRpc(uint64(m.RoundLimit))
  2676  	}
  2677  	if m.ExitOnCaseFail {
  2678  		n += 3
  2679  	}
  2680  	if m.EnablePprof {
  2681  		n += 3
  2682  	}
  2683  	if m.CaseDelayMs != 0 {
  2684  		n += 2 + sovRpc(uint64(m.CaseDelayMs))
  2685  	}
  2686  	if m.CaseShuffle {
  2687  		n += 3
  2688  	}
  2689  	if len(m.Cases) > 0 {
  2690  		for _, s := range m.Cases {
  2691  			l = len(s)
  2692  			n += 2 + l + sovRpc(uint64(l))
  2693  		}
  2694  	}
  2695  	if len(m.FailpointCommands) > 0 {
  2696  		for _, s := range m.FailpointCommands {
  2697  			l = len(s)
  2698  			n += 2 + l + sovRpc(uint64(l))
  2699  		}
  2700  	}
  2701  	l = len(m.RunnerExecPath)
  2702  	if l > 0 {
  2703  		n += 2 + l + sovRpc(uint64(l))
  2704  	}
  2705  	l = len(m.ExternalExecPath)
  2706  	if l > 0 {
  2707  		n += 2 + l + sovRpc(uint64(l))
  2708  	}
  2709  	if len(m.Stressers) > 0 {
  2710  		for _, e := range m.Stressers {
  2711  			l = e.Size()
  2712  			n += 2 + l + sovRpc(uint64(l))
  2713  		}
  2714  	}
  2715  	if len(m.Checkers) > 0 {
  2716  		for _, s := range m.Checkers {
  2717  			l = len(s)
  2718  			n += 2 + l + sovRpc(uint64(l))
  2719  		}
  2720  	}
  2721  	if m.StressKeySize != 0 {
  2722  		n += 2 + sovRpc(uint64(m.StressKeySize))
  2723  	}
  2724  	if m.StressKeySizeLarge != 0 {
  2725  		n += 2 + sovRpc(uint64(m.StressKeySizeLarge))
  2726  	}
  2727  	if m.StressKeySuffixRange != 0 {
  2728  		n += 2 + sovRpc(uint64(m.StressKeySuffixRange))
  2729  	}
  2730  	if m.StressKeySuffixRangeTxn != 0 {
  2731  		n += 2 + sovRpc(uint64(m.StressKeySuffixRangeTxn))
  2732  	}
  2733  	if m.StressKeyTxnOps != 0 {
  2734  		n += 2 + sovRpc(uint64(m.StressKeyTxnOps))
  2735  	}
  2736  	if m.StressClients != 0 {
  2737  		n += 2 + sovRpc(uint64(m.StressClients))
  2738  	}
  2739  	if m.StressQPS != 0 {
  2740  		n += 2 + sovRpc(uint64(m.StressQPS))
  2741  	}
  2742  	if m.XXX_unrecognized != nil {
  2743  		n += len(m.XXX_unrecognized)
  2744  	}
  2745  	return n
  2746  }
  2747  
  2748  func (m *Stresser) Size() (n int) {
  2749  	if m == nil {
  2750  		return 0
  2751  	}
  2752  	var l int
  2753  	_ = l
  2754  	l = len(m.Type)
  2755  	if l > 0 {
  2756  		n += 1 + l + sovRpc(uint64(l))
  2757  	}
  2758  	if m.Weight != 0 {
  2759  		n += 9
  2760  	}
  2761  	if m.XXX_unrecognized != nil {
  2762  		n += len(m.XXX_unrecognized)
  2763  	}
  2764  	return n
  2765  }
  2766  
  2767  func (m *Etcd) Size() (n int) {
  2768  	if m == nil {
  2769  		return 0
  2770  	}
  2771  	var l int
  2772  	_ = l
  2773  	l = len(m.Name)
  2774  	if l > 0 {
  2775  		n += 1 + l + sovRpc(uint64(l))
  2776  	}
  2777  	l = len(m.DataDir)
  2778  	if l > 0 {
  2779  		n += 1 + l + sovRpc(uint64(l))
  2780  	}
  2781  	l = len(m.WALDir)
  2782  	if l > 0 {
  2783  		n += 1 + l + sovRpc(uint64(l))
  2784  	}
  2785  	if m.HeartbeatIntervalMs != 0 {
  2786  		n += 1 + sovRpc(uint64(m.HeartbeatIntervalMs))
  2787  	}
  2788  	if m.ElectionTimeoutMs != 0 {
  2789  		n += 1 + sovRpc(uint64(m.ElectionTimeoutMs))
  2790  	}
  2791  	if len(m.ListenClientURLs) > 0 {
  2792  		for _, s := range m.ListenClientURLs {
  2793  			l = len(s)
  2794  			n += 2 + l + sovRpc(uint64(l))
  2795  		}
  2796  	}
  2797  	if len(m.AdvertiseClientURLs) > 0 {
  2798  		for _, s := range m.AdvertiseClientURLs {
  2799  			l = len(s)
  2800  			n += 2 + l + sovRpc(uint64(l))
  2801  		}
  2802  	}
  2803  	if m.ClientAutoTLS {
  2804  		n += 3
  2805  	}
  2806  	if m.ClientCertAuth {
  2807  		n += 3
  2808  	}
  2809  	l = len(m.ClientCertFile)
  2810  	if l > 0 {
  2811  		n += 2 + l + sovRpc(uint64(l))
  2812  	}
  2813  	l = len(m.ClientKeyFile)
  2814  	if l > 0 {
  2815  		n += 2 + l + sovRpc(uint64(l))
  2816  	}
  2817  	l = len(m.ClientTrustedCAFile)
  2818  	if l > 0 {
  2819  		n += 2 + l + sovRpc(uint64(l))
  2820  	}
  2821  	if len(m.ListenPeerURLs) > 0 {
  2822  		for _, s := range m.ListenPeerURLs {
  2823  			l = len(s)
  2824  			n += 2 + l + sovRpc(uint64(l))
  2825  		}
  2826  	}
  2827  	if len(m.AdvertisePeerURLs) > 0 {
  2828  		for _, s := range m.AdvertisePeerURLs {
  2829  			l = len(s)
  2830  			n += 2 + l + sovRpc(uint64(l))
  2831  		}
  2832  	}
  2833  	if m.PeerAutoTLS {
  2834  		n += 3
  2835  	}
  2836  	if m.PeerClientCertAuth {
  2837  		n += 3
  2838  	}
  2839  	l = len(m.PeerCertFile)
  2840  	if l > 0 {
  2841  		n += 2 + l + sovRpc(uint64(l))
  2842  	}
  2843  	l = len(m.PeerKeyFile)
  2844  	if l > 0 {
  2845  		n += 2 + l + sovRpc(uint64(l))
  2846  	}
  2847  	l = len(m.PeerTrustedCAFile)
  2848  	if l > 0 {
  2849  		n += 2 + l + sovRpc(uint64(l))
  2850  	}
  2851  	l = len(m.InitialCluster)
  2852  	if l > 0 {
  2853  		n += 2 + l + sovRpc(uint64(l))
  2854  	}
  2855  	l = len(m.InitialClusterState)
  2856  	if l > 0 {
  2857  		n += 2 + l + sovRpc(uint64(l))
  2858  	}
  2859  	l = len(m.InitialClusterToken)
  2860  	if l > 0 {
  2861  		n += 2 + l + sovRpc(uint64(l))
  2862  	}
  2863  	if m.SnapshotCount != 0 {
  2864  		n += 2 + sovRpc(uint64(m.SnapshotCount))
  2865  	}
  2866  	if m.QuotaBackendBytes != 0 {
  2867  		n += 2 + sovRpc(uint64(m.QuotaBackendBytes))
  2868  	}
  2869  	if m.PreVote {
  2870  		n += 3
  2871  	}
  2872  	if m.InitialCorruptCheck {
  2873  		n += 3
  2874  	}
  2875  	l = len(m.Logger)
  2876  	if l > 0 {
  2877  		n += 2 + l + sovRpc(uint64(l))
  2878  	}
  2879  	if len(m.LogOutputs) > 0 {
  2880  		for _, s := range m.LogOutputs {
  2881  			l = len(s)
  2882  			n += 2 + l + sovRpc(uint64(l))
  2883  		}
  2884  	}
  2885  	l = len(m.LogLevel)
  2886  	if l > 0 {
  2887  		n += 2 + l + sovRpc(uint64(l))
  2888  	}
  2889  	if m.SocketReuseAddress {
  2890  		n += 3
  2891  	}
  2892  	if m.SocketReusePort {
  2893  		n += 3
  2894  	}
  2895  	if m.XXX_unrecognized != nil {
  2896  		n += len(m.XXX_unrecognized)
  2897  	}
  2898  	return n
  2899  }
  2900  
  2901  func sovRpc(x uint64) (n int) {
  2902  	return (math_bits.Len64(x|1) + 6) / 7
  2903  }
  2904  func sozRpc(x uint64) (n int) {
  2905  	return sovRpc(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  2906  }
  2907  func (m *Request) Unmarshal(dAtA []byte) error {
  2908  	l := len(dAtA)
  2909  	iNdEx := 0
  2910  	for iNdEx < l {
  2911  		preIndex := iNdEx
  2912  		var wire uint64
  2913  		for shift := uint(0); ; shift += 7 {
  2914  			if shift >= 64 {
  2915  				return ErrIntOverflowRpc
  2916  			}
  2917  			if iNdEx >= l {
  2918  				return io.ErrUnexpectedEOF
  2919  			}
  2920  			b := dAtA[iNdEx]
  2921  			iNdEx++
  2922  			wire |= uint64(b&0x7F) << shift
  2923  			if b < 0x80 {
  2924  				break
  2925  			}
  2926  		}
  2927  		fieldNum := int32(wire >> 3)
  2928  		wireType := int(wire & 0x7)
  2929  		if wireType == 4 {
  2930  			return fmt.Errorf("proto: Request: wiretype end group for non-group")
  2931  		}
  2932  		if fieldNum <= 0 {
  2933  			return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
  2934  		}
  2935  		switch fieldNum {
  2936  		case 1:
  2937  			if wireType != 0 {
  2938  				return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType)
  2939  			}
  2940  			m.Operation = 0
  2941  			for shift := uint(0); ; shift += 7 {
  2942  				if shift >= 64 {
  2943  					return ErrIntOverflowRpc
  2944  				}
  2945  				if iNdEx >= l {
  2946  					return io.ErrUnexpectedEOF
  2947  				}
  2948  				b := dAtA[iNdEx]
  2949  				iNdEx++
  2950  				m.Operation |= Operation(b&0x7F) << shift
  2951  				if b < 0x80 {
  2952  					break
  2953  				}
  2954  			}
  2955  		case 2:
  2956  			if wireType != 2 {
  2957  				return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType)
  2958  			}
  2959  			var msglen int
  2960  			for shift := uint(0); ; shift += 7 {
  2961  				if shift >= 64 {
  2962  					return ErrIntOverflowRpc
  2963  				}
  2964  				if iNdEx >= l {
  2965  					return io.ErrUnexpectedEOF
  2966  				}
  2967  				b := dAtA[iNdEx]
  2968  				iNdEx++
  2969  				msglen |= int(b&0x7F) << shift
  2970  				if b < 0x80 {
  2971  					break
  2972  				}
  2973  			}
  2974  			if msglen < 0 {
  2975  				return ErrInvalidLengthRpc
  2976  			}
  2977  			postIndex := iNdEx + msglen
  2978  			if postIndex < 0 {
  2979  				return ErrInvalidLengthRpc
  2980  			}
  2981  			if postIndex > l {
  2982  				return io.ErrUnexpectedEOF
  2983  			}
  2984  			if m.Member == nil {
  2985  				m.Member = &Member{}
  2986  			}
  2987  			if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2988  				return err
  2989  			}
  2990  			iNdEx = postIndex
  2991  		case 3:
  2992  			if wireType != 2 {
  2993  				return fmt.Errorf("proto: wrong wireType = %d for field Tester", wireType)
  2994  			}
  2995  			var msglen int
  2996  			for shift := uint(0); ; shift += 7 {
  2997  				if shift >= 64 {
  2998  					return ErrIntOverflowRpc
  2999  				}
  3000  				if iNdEx >= l {
  3001  					return io.ErrUnexpectedEOF
  3002  				}
  3003  				b := dAtA[iNdEx]
  3004  				iNdEx++
  3005  				msglen |= int(b&0x7F) << shift
  3006  				if b < 0x80 {
  3007  					break
  3008  				}
  3009  			}
  3010  			if msglen < 0 {
  3011  				return ErrInvalidLengthRpc
  3012  			}
  3013  			postIndex := iNdEx + msglen
  3014  			if postIndex < 0 {
  3015  				return ErrInvalidLengthRpc
  3016  			}
  3017  			if postIndex > l {
  3018  				return io.ErrUnexpectedEOF
  3019  			}
  3020  			if m.Tester == nil {
  3021  				m.Tester = &Tester{}
  3022  			}
  3023  			if err := m.Tester.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3024  				return err
  3025  			}
  3026  			iNdEx = postIndex
  3027  		default:
  3028  			iNdEx = preIndex
  3029  			skippy, err := skipRpc(dAtA[iNdEx:])
  3030  			if err != nil {
  3031  				return err
  3032  			}
  3033  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  3034  				return ErrInvalidLengthRpc
  3035  			}
  3036  			if (iNdEx + skippy) > l {
  3037  				return io.ErrUnexpectedEOF
  3038  			}
  3039  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  3040  			iNdEx += skippy
  3041  		}
  3042  	}
  3043  
  3044  	if iNdEx > l {
  3045  		return io.ErrUnexpectedEOF
  3046  	}
  3047  	return nil
  3048  }
  3049  func (m *SnapshotInfo) Unmarshal(dAtA []byte) error {
  3050  	l := len(dAtA)
  3051  	iNdEx := 0
  3052  	for iNdEx < l {
  3053  		preIndex := iNdEx
  3054  		var wire uint64
  3055  		for shift := uint(0); ; shift += 7 {
  3056  			if shift >= 64 {
  3057  				return ErrIntOverflowRpc
  3058  			}
  3059  			if iNdEx >= l {
  3060  				return io.ErrUnexpectedEOF
  3061  			}
  3062  			b := dAtA[iNdEx]
  3063  			iNdEx++
  3064  			wire |= uint64(b&0x7F) << shift
  3065  			if b < 0x80 {
  3066  				break
  3067  			}
  3068  		}
  3069  		fieldNum := int32(wire >> 3)
  3070  		wireType := int(wire & 0x7)
  3071  		if wireType == 4 {
  3072  			return fmt.Errorf("proto: SnapshotInfo: wiretype end group for non-group")
  3073  		}
  3074  		if fieldNum <= 0 {
  3075  			return fmt.Errorf("proto: SnapshotInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  3076  		}
  3077  		switch fieldNum {
  3078  		case 1:
  3079  			if wireType != 2 {
  3080  				return fmt.Errorf("proto: wrong wireType = %d for field MemberName", wireType)
  3081  			}
  3082  			var stringLen uint64
  3083  			for shift := uint(0); ; shift += 7 {
  3084  				if shift >= 64 {
  3085  					return ErrIntOverflowRpc
  3086  				}
  3087  				if iNdEx >= l {
  3088  					return io.ErrUnexpectedEOF
  3089  				}
  3090  				b := dAtA[iNdEx]
  3091  				iNdEx++
  3092  				stringLen |= uint64(b&0x7F) << shift
  3093  				if b < 0x80 {
  3094  					break
  3095  				}
  3096  			}
  3097  			intStringLen := int(stringLen)
  3098  			if intStringLen < 0 {
  3099  				return ErrInvalidLengthRpc
  3100  			}
  3101  			postIndex := iNdEx + intStringLen
  3102  			if postIndex < 0 {
  3103  				return ErrInvalidLengthRpc
  3104  			}
  3105  			if postIndex > l {
  3106  				return io.ErrUnexpectedEOF
  3107  			}
  3108  			m.MemberName = string(dAtA[iNdEx:postIndex])
  3109  			iNdEx = postIndex
  3110  		case 2:
  3111  			if wireType != 2 {
  3112  				return fmt.Errorf("proto: wrong wireType = %d for field MemberClientURLs", wireType)
  3113  			}
  3114  			var stringLen uint64
  3115  			for shift := uint(0); ; shift += 7 {
  3116  				if shift >= 64 {
  3117  					return ErrIntOverflowRpc
  3118  				}
  3119  				if iNdEx >= l {
  3120  					return io.ErrUnexpectedEOF
  3121  				}
  3122  				b := dAtA[iNdEx]
  3123  				iNdEx++
  3124  				stringLen |= uint64(b&0x7F) << shift
  3125  				if b < 0x80 {
  3126  					break
  3127  				}
  3128  			}
  3129  			intStringLen := int(stringLen)
  3130  			if intStringLen < 0 {
  3131  				return ErrInvalidLengthRpc
  3132  			}
  3133  			postIndex := iNdEx + intStringLen
  3134  			if postIndex < 0 {
  3135  				return ErrInvalidLengthRpc
  3136  			}
  3137  			if postIndex > l {
  3138  				return io.ErrUnexpectedEOF
  3139  			}
  3140  			m.MemberClientURLs = append(m.MemberClientURLs, string(dAtA[iNdEx:postIndex]))
  3141  			iNdEx = postIndex
  3142  		case 3:
  3143  			if wireType != 2 {
  3144  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
  3145  			}
  3146  			var stringLen uint64
  3147  			for shift := uint(0); ; shift += 7 {
  3148  				if shift >= 64 {
  3149  					return ErrIntOverflowRpc
  3150  				}
  3151  				if iNdEx >= l {
  3152  					return io.ErrUnexpectedEOF
  3153  				}
  3154  				b := dAtA[iNdEx]
  3155  				iNdEx++
  3156  				stringLen |= uint64(b&0x7F) << shift
  3157  				if b < 0x80 {
  3158  					break
  3159  				}
  3160  			}
  3161  			intStringLen := int(stringLen)
  3162  			if intStringLen < 0 {
  3163  				return ErrInvalidLengthRpc
  3164  			}
  3165  			postIndex := iNdEx + intStringLen
  3166  			if postIndex < 0 {
  3167  				return ErrInvalidLengthRpc
  3168  			}
  3169  			if postIndex > l {
  3170  				return io.ErrUnexpectedEOF
  3171  			}
  3172  			m.SnapshotPath = string(dAtA[iNdEx:postIndex])
  3173  			iNdEx = postIndex
  3174  		case 4:
  3175  			if wireType != 2 {
  3176  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotFileSize", wireType)
  3177  			}
  3178  			var stringLen uint64
  3179  			for shift := uint(0); ; shift += 7 {
  3180  				if shift >= 64 {
  3181  					return ErrIntOverflowRpc
  3182  				}
  3183  				if iNdEx >= l {
  3184  					return io.ErrUnexpectedEOF
  3185  				}
  3186  				b := dAtA[iNdEx]
  3187  				iNdEx++
  3188  				stringLen |= uint64(b&0x7F) << shift
  3189  				if b < 0x80 {
  3190  					break
  3191  				}
  3192  			}
  3193  			intStringLen := int(stringLen)
  3194  			if intStringLen < 0 {
  3195  				return ErrInvalidLengthRpc
  3196  			}
  3197  			postIndex := iNdEx + intStringLen
  3198  			if postIndex < 0 {
  3199  				return ErrInvalidLengthRpc
  3200  			}
  3201  			if postIndex > l {
  3202  				return io.ErrUnexpectedEOF
  3203  			}
  3204  			m.SnapshotFileSize = string(dAtA[iNdEx:postIndex])
  3205  			iNdEx = postIndex
  3206  		case 5:
  3207  			if wireType != 2 {
  3208  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotTotalSize", wireType)
  3209  			}
  3210  			var stringLen uint64
  3211  			for shift := uint(0); ; shift += 7 {
  3212  				if shift >= 64 {
  3213  					return ErrIntOverflowRpc
  3214  				}
  3215  				if iNdEx >= l {
  3216  					return io.ErrUnexpectedEOF
  3217  				}
  3218  				b := dAtA[iNdEx]
  3219  				iNdEx++
  3220  				stringLen |= uint64(b&0x7F) << shift
  3221  				if b < 0x80 {
  3222  					break
  3223  				}
  3224  			}
  3225  			intStringLen := int(stringLen)
  3226  			if intStringLen < 0 {
  3227  				return ErrInvalidLengthRpc
  3228  			}
  3229  			postIndex := iNdEx + intStringLen
  3230  			if postIndex < 0 {
  3231  				return ErrInvalidLengthRpc
  3232  			}
  3233  			if postIndex > l {
  3234  				return io.ErrUnexpectedEOF
  3235  			}
  3236  			m.SnapshotTotalSize = string(dAtA[iNdEx:postIndex])
  3237  			iNdEx = postIndex
  3238  		case 6:
  3239  			if wireType != 0 {
  3240  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotTotalKey", wireType)
  3241  			}
  3242  			m.SnapshotTotalKey = 0
  3243  			for shift := uint(0); ; shift += 7 {
  3244  				if shift >= 64 {
  3245  					return ErrIntOverflowRpc
  3246  				}
  3247  				if iNdEx >= l {
  3248  					return io.ErrUnexpectedEOF
  3249  				}
  3250  				b := dAtA[iNdEx]
  3251  				iNdEx++
  3252  				m.SnapshotTotalKey |= int64(b&0x7F) << shift
  3253  				if b < 0x80 {
  3254  					break
  3255  				}
  3256  			}
  3257  		case 7:
  3258  			if wireType != 0 {
  3259  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotHash", wireType)
  3260  			}
  3261  			m.SnapshotHash = 0
  3262  			for shift := uint(0); ; shift += 7 {
  3263  				if shift >= 64 {
  3264  					return ErrIntOverflowRpc
  3265  				}
  3266  				if iNdEx >= l {
  3267  					return io.ErrUnexpectedEOF
  3268  				}
  3269  				b := dAtA[iNdEx]
  3270  				iNdEx++
  3271  				m.SnapshotHash |= int64(b&0x7F) << shift
  3272  				if b < 0x80 {
  3273  					break
  3274  				}
  3275  			}
  3276  		case 8:
  3277  			if wireType != 0 {
  3278  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotRevision", wireType)
  3279  			}
  3280  			m.SnapshotRevision = 0
  3281  			for shift := uint(0); ; shift += 7 {
  3282  				if shift >= 64 {
  3283  					return ErrIntOverflowRpc
  3284  				}
  3285  				if iNdEx >= l {
  3286  					return io.ErrUnexpectedEOF
  3287  				}
  3288  				b := dAtA[iNdEx]
  3289  				iNdEx++
  3290  				m.SnapshotRevision |= int64(b&0x7F) << shift
  3291  				if b < 0x80 {
  3292  					break
  3293  				}
  3294  			}
  3295  		case 9:
  3296  			if wireType != 2 {
  3297  				return fmt.Errorf("proto: wrong wireType = %d for field Took", wireType)
  3298  			}
  3299  			var stringLen uint64
  3300  			for shift := uint(0); ; shift += 7 {
  3301  				if shift >= 64 {
  3302  					return ErrIntOverflowRpc
  3303  				}
  3304  				if iNdEx >= l {
  3305  					return io.ErrUnexpectedEOF
  3306  				}
  3307  				b := dAtA[iNdEx]
  3308  				iNdEx++
  3309  				stringLen |= uint64(b&0x7F) << shift
  3310  				if b < 0x80 {
  3311  					break
  3312  				}
  3313  			}
  3314  			intStringLen := int(stringLen)
  3315  			if intStringLen < 0 {
  3316  				return ErrInvalidLengthRpc
  3317  			}
  3318  			postIndex := iNdEx + intStringLen
  3319  			if postIndex < 0 {
  3320  				return ErrInvalidLengthRpc
  3321  			}
  3322  			if postIndex > l {
  3323  				return io.ErrUnexpectedEOF
  3324  			}
  3325  			m.Took = string(dAtA[iNdEx:postIndex])
  3326  			iNdEx = postIndex
  3327  		case 10:
  3328  			if wireType != 2 {
  3329  				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  3330  			}
  3331  			var stringLen uint64
  3332  			for shift := uint(0); ; shift += 7 {
  3333  				if shift >= 64 {
  3334  					return ErrIntOverflowRpc
  3335  				}
  3336  				if iNdEx >= l {
  3337  					return io.ErrUnexpectedEOF
  3338  				}
  3339  				b := dAtA[iNdEx]
  3340  				iNdEx++
  3341  				stringLen |= uint64(b&0x7F) << shift
  3342  				if b < 0x80 {
  3343  					break
  3344  				}
  3345  			}
  3346  			intStringLen := int(stringLen)
  3347  			if intStringLen < 0 {
  3348  				return ErrInvalidLengthRpc
  3349  			}
  3350  			postIndex := iNdEx + intStringLen
  3351  			if postIndex < 0 {
  3352  				return ErrInvalidLengthRpc
  3353  			}
  3354  			if postIndex > l {
  3355  				return io.ErrUnexpectedEOF
  3356  			}
  3357  			m.Version = string(dAtA[iNdEx:postIndex])
  3358  			iNdEx = postIndex
  3359  		default:
  3360  			iNdEx = preIndex
  3361  			skippy, err := skipRpc(dAtA[iNdEx:])
  3362  			if err != nil {
  3363  				return err
  3364  			}
  3365  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  3366  				return ErrInvalidLengthRpc
  3367  			}
  3368  			if (iNdEx + skippy) > l {
  3369  				return io.ErrUnexpectedEOF
  3370  			}
  3371  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  3372  			iNdEx += skippy
  3373  		}
  3374  	}
  3375  
  3376  	if iNdEx > l {
  3377  		return io.ErrUnexpectedEOF
  3378  	}
  3379  	return nil
  3380  }
  3381  func (m *Response) Unmarshal(dAtA []byte) error {
  3382  	l := len(dAtA)
  3383  	iNdEx := 0
  3384  	for iNdEx < l {
  3385  		preIndex := iNdEx
  3386  		var wire uint64
  3387  		for shift := uint(0); ; shift += 7 {
  3388  			if shift >= 64 {
  3389  				return ErrIntOverflowRpc
  3390  			}
  3391  			if iNdEx >= l {
  3392  				return io.ErrUnexpectedEOF
  3393  			}
  3394  			b := dAtA[iNdEx]
  3395  			iNdEx++
  3396  			wire |= uint64(b&0x7F) << shift
  3397  			if b < 0x80 {
  3398  				break
  3399  			}
  3400  		}
  3401  		fieldNum := int32(wire >> 3)
  3402  		wireType := int(wire & 0x7)
  3403  		if wireType == 4 {
  3404  			return fmt.Errorf("proto: Response: wiretype end group for non-group")
  3405  		}
  3406  		if fieldNum <= 0 {
  3407  			return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  3408  		}
  3409  		switch fieldNum {
  3410  		case 1:
  3411  			if wireType != 0 {
  3412  				return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType)
  3413  			}
  3414  			var v int
  3415  			for shift := uint(0); ; shift += 7 {
  3416  				if shift >= 64 {
  3417  					return ErrIntOverflowRpc
  3418  				}
  3419  				if iNdEx >= l {
  3420  					return io.ErrUnexpectedEOF
  3421  				}
  3422  				b := dAtA[iNdEx]
  3423  				iNdEx++
  3424  				v |= int(b&0x7F) << shift
  3425  				if b < 0x80 {
  3426  					break
  3427  				}
  3428  			}
  3429  			m.Success = bool(v != 0)
  3430  		case 2:
  3431  			if wireType != 2 {
  3432  				return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
  3433  			}
  3434  			var stringLen uint64
  3435  			for shift := uint(0); ; shift += 7 {
  3436  				if shift >= 64 {
  3437  					return ErrIntOverflowRpc
  3438  				}
  3439  				if iNdEx >= l {
  3440  					return io.ErrUnexpectedEOF
  3441  				}
  3442  				b := dAtA[iNdEx]
  3443  				iNdEx++
  3444  				stringLen |= uint64(b&0x7F) << shift
  3445  				if b < 0x80 {
  3446  					break
  3447  				}
  3448  			}
  3449  			intStringLen := int(stringLen)
  3450  			if intStringLen < 0 {
  3451  				return ErrInvalidLengthRpc
  3452  			}
  3453  			postIndex := iNdEx + intStringLen
  3454  			if postIndex < 0 {
  3455  				return ErrInvalidLengthRpc
  3456  			}
  3457  			if postIndex > l {
  3458  				return io.ErrUnexpectedEOF
  3459  			}
  3460  			m.Status = string(dAtA[iNdEx:postIndex])
  3461  			iNdEx = postIndex
  3462  		case 3:
  3463  			if wireType != 2 {
  3464  				return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType)
  3465  			}
  3466  			var msglen int
  3467  			for shift := uint(0); ; shift += 7 {
  3468  				if shift >= 64 {
  3469  					return ErrIntOverflowRpc
  3470  				}
  3471  				if iNdEx >= l {
  3472  					return io.ErrUnexpectedEOF
  3473  				}
  3474  				b := dAtA[iNdEx]
  3475  				iNdEx++
  3476  				msglen |= int(b&0x7F) << shift
  3477  				if b < 0x80 {
  3478  					break
  3479  				}
  3480  			}
  3481  			if msglen < 0 {
  3482  				return ErrInvalidLengthRpc
  3483  			}
  3484  			postIndex := iNdEx + msglen
  3485  			if postIndex < 0 {
  3486  				return ErrInvalidLengthRpc
  3487  			}
  3488  			if postIndex > l {
  3489  				return io.ErrUnexpectedEOF
  3490  			}
  3491  			if m.Member == nil {
  3492  				m.Member = &Member{}
  3493  			}
  3494  			if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3495  				return err
  3496  			}
  3497  			iNdEx = postIndex
  3498  		case 4:
  3499  			if wireType != 2 {
  3500  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotInfo", wireType)
  3501  			}
  3502  			var msglen int
  3503  			for shift := uint(0); ; shift += 7 {
  3504  				if shift >= 64 {
  3505  					return ErrIntOverflowRpc
  3506  				}
  3507  				if iNdEx >= l {
  3508  					return io.ErrUnexpectedEOF
  3509  				}
  3510  				b := dAtA[iNdEx]
  3511  				iNdEx++
  3512  				msglen |= int(b&0x7F) << shift
  3513  				if b < 0x80 {
  3514  					break
  3515  				}
  3516  			}
  3517  			if msglen < 0 {
  3518  				return ErrInvalidLengthRpc
  3519  			}
  3520  			postIndex := iNdEx + msglen
  3521  			if postIndex < 0 {
  3522  				return ErrInvalidLengthRpc
  3523  			}
  3524  			if postIndex > l {
  3525  				return io.ErrUnexpectedEOF
  3526  			}
  3527  			if m.SnapshotInfo == nil {
  3528  				m.SnapshotInfo = &SnapshotInfo{}
  3529  			}
  3530  			if err := m.SnapshotInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3531  				return err
  3532  			}
  3533  			iNdEx = postIndex
  3534  		default:
  3535  			iNdEx = preIndex
  3536  			skippy, err := skipRpc(dAtA[iNdEx:])
  3537  			if err != nil {
  3538  				return err
  3539  			}
  3540  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  3541  				return ErrInvalidLengthRpc
  3542  			}
  3543  			if (iNdEx + skippy) > l {
  3544  				return io.ErrUnexpectedEOF
  3545  			}
  3546  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  3547  			iNdEx += skippy
  3548  		}
  3549  	}
  3550  
  3551  	if iNdEx > l {
  3552  		return io.ErrUnexpectedEOF
  3553  	}
  3554  	return nil
  3555  }
  3556  func (m *Member) Unmarshal(dAtA []byte) error {
  3557  	l := len(dAtA)
  3558  	iNdEx := 0
  3559  	for iNdEx < l {
  3560  		preIndex := iNdEx
  3561  		var wire uint64
  3562  		for shift := uint(0); ; shift += 7 {
  3563  			if shift >= 64 {
  3564  				return ErrIntOverflowRpc
  3565  			}
  3566  			if iNdEx >= l {
  3567  				return io.ErrUnexpectedEOF
  3568  			}
  3569  			b := dAtA[iNdEx]
  3570  			iNdEx++
  3571  			wire |= uint64(b&0x7F) << shift
  3572  			if b < 0x80 {
  3573  				break
  3574  			}
  3575  		}
  3576  		fieldNum := int32(wire >> 3)
  3577  		wireType := int(wire & 0x7)
  3578  		if wireType == 4 {
  3579  			return fmt.Errorf("proto: Member: wiretype end group for non-group")
  3580  		}
  3581  		if fieldNum <= 0 {
  3582  			return fmt.Errorf("proto: Member: illegal tag %d (wire type %d)", fieldNum, wire)
  3583  		}
  3584  		switch fieldNum {
  3585  		case 1:
  3586  			if wireType != 2 {
  3587  				return fmt.Errorf("proto: wrong wireType = %d for field EtcdExec", wireType)
  3588  			}
  3589  			var stringLen uint64
  3590  			for shift := uint(0); ; shift += 7 {
  3591  				if shift >= 64 {
  3592  					return ErrIntOverflowRpc
  3593  				}
  3594  				if iNdEx >= l {
  3595  					return io.ErrUnexpectedEOF
  3596  				}
  3597  				b := dAtA[iNdEx]
  3598  				iNdEx++
  3599  				stringLen |= uint64(b&0x7F) << shift
  3600  				if b < 0x80 {
  3601  					break
  3602  				}
  3603  			}
  3604  			intStringLen := int(stringLen)
  3605  			if intStringLen < 0 {
  3606  				return ErrInvalidLengthRpc
  3607  			}
  3608  			postIndex := iNdEx + intStringLen
  3609  			if postIndex < 0 {
  3610  				return ErrInvalidLengthRpc
  3611  			}
  3612  			if postIndex > l {
  3613  				return io.ErrUnexpectedEOF
  3614  			}
  3615  			m.EtcdExec = string(dAtA[iNdEx:postIndex])
  3616  			iNdEx = postIndex
  3617  		case 11:
  3618  			if wireType != 2 {
  3619  				return fmt.Errorf("proto: wrong wireType = %d for field AgentAddr", wireType)
  3620  			}
  3621  			var stringLen uint64
  3622  			for shift := uint(0); ; shift += 7 {
  3623  				if shift >= 64 {
  3624  					return ErrIntOverflowRpc
  3625  				}
  3626  				if iNdEx >= l {
  3627  					return io.ErrUnexpectedEOF
  3628  				}
  3629  				b := dAtA[iNdEx]
  3630  				iNdEx++
  3631  				stringLen |= uint64(b&0x7F) << shift
  3632  				if b < 0x80 {
  3633  					break
  3634  				}
  3635  			}
  3636  			intStringLen := int(stringLen)
  3637  			if intStringLen < 0 {
  3638  				return ErrInvalidLengthRpc
  3639  			}
  3640  			postIndex := iNdEx + intStringLen
  3641  			if postIndex < 0 {
  3642  				return ErrInvalidLengthRpc
  3643  			}
  3644  			if postIndex > l {
  3645  				return io.ErrUnexpectedEOF
  3646  			}
  3647  			m.AgentAddr = string(dAtA[iNdEx:postIndex])
  3648  			iNdEx = postIndex
  3649  		case 12:
  3650  			if wireType != 2 {
  3651  				return fmt.Errorf("proto: wrong wireType = %d for field FailpointHTTPAddr", wireType)
  3652  			}
  3653  			var stringLen uint64
  3654  			for shift := uint(0); ; shift += 7 {
  3655  				if shift >= 64 {
  3656  					return ErrIntOverflowRpc
  3657  				}
  3658  				if iNdEx >= l {
  3659  					return io.ErrUnexpectedEOF
  3660  				}
  3661  				b := dAtA[iNdEx]
  3662  				iNdEx++
  3663  				stringLen |= uint64(b&0x7F) << shift
  3664  				if b < 0x80 {
  3665  					break
  3666  				}
  3667  			}
  3668  			intStringLen := int(stringLen)
  3669  			if intStringLen < 0 {
  3670  				return ErrInvalidLengthRpc
  3671  			}
  3672  			postIndex := iNdEx + intStringLen
  3673  			if postIndex < 0 {
  3674  				return ErrInvalidLengthRpc
  3675  			}
  3676  			if postIndex > l {
  3677  				return io.ErrUnexpectedEOF
  3678  			}
  3679  			m.FailpointHTTPAddr = string(dAtA[iNdEx:postIndex])
  3680  			iNdEx = postIndex
  3681  		case 101:
  3682  			if wireType != 2 {
  3683  				return fmt.Errorf("proto: wrong wireType = %d for field BaseDir", wireType)
  3684  			}
  3685  			var stringLen uint64
  3686  			for shift := uint(0); ; shift += 7 {
  3687  				if shift >= 64 {
  3688  					return ErrIntOverflowRpc
  3689  				}
  3690  				if iNdEx >= l {
  3691  					return io.ErrUnexpectedEOF
  3692  				}
  3693  				b := dAtA[iNdEx]
  3694  				iNdEx++
  3695  				stringLen |= uint64(b&0x7F) << shift
  3696  				if b < 0x80 {
  3697  					break
  3698  				}
  3699  			}
  3700  			intStringLen := int(stringLen)
  3701  			if intStringLen < 0 {
  3702  				return ErrInvalidLengthRpc
  3703  			}
  3704  			postIndex := iNdEx + intStringLen
  3705  			if postIndex < 0 {
  3706  				return ErrInvalidLengthRpc
  3707  			}
  3708  			if postIndex > l {
  3709  				return io.ErrUnexpectedEOF
  3710  			}
  3711  			m.BaseDir = string(dAtA[iNdEx:postIndex])
  3712  			iNdEx = postIndex
  3713  		case 201:
  3714  			if wireType != 0 {
  3715  				return fmt.Errorf("proto: wrong wireType = %d for field EtcdClientProxy", wireType)
  3716  			}
  3717  			var v int
  3718  			for shift := uint(0); ; shift += 7 {
  3719  				if shift >= 64 {
  3720  					return ErrIntOverflowRpc
  3721  				}
  3722  				if iNdEx >= l {
  3723  					return io.ErrUnexpectedEOF
  3724  				}
  3725  				b := dAtA[iNdEx]
  3726  				iNdEx++
  3727  				v |= int(b&0x7F) << shift
  3728  				if b < 0x80 {
  3729  					break
  3730  				}
  3731  			}
  3732  			m.EtcdClientProxy = bool(v != 0)
  3733  		case 202:
  3734  			if wireType != 0 {
  3735  				return fmt.Errorf("proto: wrong wireType = %d for field EtcdPeerProxy", wireType)
  3736  			}
  3737  			var v int
  3738  			for shift := uint(0); ; shift += 7 {
  3739  				if shift >= 64 {
  3740  					return ErrIntOverflowRpc
  3741  				}
  3742  				if iNdEx >= l {
  3743  					return io.ErrUnexpectedEOF
  3744  				}
  3745  				b := dAtA[iNdEx]
  3746  				iNdEx++
  3747  				v |= int(b&0x7F) << shift
  3748  				if b < 0x80 {
  3749  					break
  3750  				}
  3751  			}
  3752  			m.EtcdPeerProxy = bool(v != 0)
  3753  		case 301:
  3754  			if wireType != 2 {
  3755  				return fmt.Errorf("proto: wrong wireType = %d for field EtcdClientEndpoint", wireType)
  3756  			}
  3757  			var stringLen uint64
  3758  			for shift := uint(0); ; shift += 7 {
  3759  				if shift >= 64 {
  3760  					return ErrIntOverflowRpc
  3761  				}
  3762  				if iNdEx >= l {
  3763  					return io.ErrUnexpectedEOF
  3764  				}
  3765  				b := dAtA[iNdEx]
  3766  				iNdEx++
  3767  				stringLen |= uint64(b&0x7F) << shift
  3768  				if b < 0x80 {
  3769  					break
  3770  				}
  3771  			}
  3772  			intStringLen := int(stringLen)
  3773  			if intStringLen < 0 {
  3774  				return ErrInvalidLengthRpc
  3775  			}
  3776  			postIndex := iNdEx + intStringLen
  3777  			if postIndex < 0 {
  3778  				return ErrInvalidLengthRpc
  3779  			}
  3780  			if postIndex > l {
  3781  				return io.ErrUnexpectedEOF
  3782  			}
  3783  			m.EtcdClientEndpoint = string(dAtA[iNdEx:postIndex])
  3784  			iNdEx = postIndex
  3785  		case 302:
  3786  			if wireType != 2 {
  3787  				return fmt.Errorf("proto: wrong wireType = %d for field Etcd", wireType)
  3788  			}
  3789  			var msglen int
  3790  			for shift := uint(0); ; shift += 7 {
  3791  				if shift >= 64 {
  3792  					return ErrIntOverflowRpc
  3793  				}
  3794  				if iNdEx >= l {
  3795  					return io.ErrUnexpectedEOF
  3796  				}
  3797  				b := dAtA[iNdEx]
  3798  				iNdEx++
  3799  				msglen |= int(b&0x7F) << shift
  3800  				if b < 0x80 {
  3801  					break
  3802  				}
  3803  			}
  3804  			if msglen < 0 {
  3805  				return ErrInvalidLengthRpc
  3806  			}
  3807  			postIndex := iNdEx + msglen
  3808  			if postIndex < 0 {
  3809  				return ErrInvalidLengthRpc
  3810  			}
  3811  			if postIndex > l {
  3812  				return io.ErrUnexpectedEOF
  3813  			}
  3814  			if m.Etcd == nil {
  3815  				m.Etcd = &Etcd{}
  3816  			}
  3817  			if err := m.Etcd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3818  				return err
  3819  			}
  3820  			iNdEx = postIndex
  3821  		case 303:
  3822  			if wireType != 2 {
  3823  				return fmt.Errorf("proto: wrong wireType = %d for field EtcdOnSnapshotRestore", wireType)
  3824  			}
  3825  			var msglen int
  3826  			for shift := uint(0); ; shift += 7 {
  3827  				if shift >= 64 {
  3828  					return ErrIntOverflowRpc
  3829  				}
  3830  				if iNdEx >= l {
  3831  					return io.ErrUnexpectedEOF
  3832  				}
  3833  				b := dAtA[iNdEx]
  3834  				iNdEx++
  3835  				msglen |= int(b&0x7F) << shift
  3836  				if b < 0x80 {
  3837  					break
  3838  				}
  3839  			}
  3840  			if msglen < 0 {
  3841  				return ErrInvalidLengthRpc
  3842  			}
  3843  			postIndex := iNdEx + msglen
  3844  			if postIndex < 0 {
  3845  				return ErrInvalidLengthRpc
  3846  			}
  3847  			if postIndex > l {
  3848  				return io.ErrUnexpectedEOF
  3849  			}
  3850  			if m.EtcdOnSnapshotRestore == nil {
  3851  				m.EtcdOnSnapshotRestore = &Etcd{}
  3852  			}
  3853  			if err := m.EtcdOnSnapshotRestore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3854  				return err
  3855  			}
  3856  			iNdEx = postIndex
  3857  		case 401:
  3858  			if wireType != 2 {
  3859  				return fmt.Errorf("proto: wrong wireType = %d for field ClientCertData", wireType)
  3860  			}
  3861  			var stringLen uint64
  3862  			for shift := uint(0); ; shift += 7 {
  3863  				if shift >= 64 {
  3864  					return ErrIntOverflowRpc
  3865  				}
  3866  				if iNdEx >= l {
  3867  					return io.ErrUnexpectedEOF
  3868  				}
  3869  				b := dAtA[iNdEx]
  3870  				iNdEx++
  3871  				stringLen |= uint64(b&0x7F) << shift
  3872  				if b < 0x80 {
  3873  					break
  3874  				}
  3875  			}
  3876  			intStringLen := int(stringLen)
  3877  			if intStringLen < 0 {
  3878  				return ErrInvalidLengthRpc
  3879  			}
  3880  			postIndex := iNdEx + intStringLen
  3881  			if postIndex < 0 {
  3882  				return ErrInvalidLengthRpc
  3883  			}
  3884  			if postIndex > l {
  3885  				return io.ErrUnexpectedEOF
  3886  			}
  3887  			m.ClientCertData = string(dAtA[iNdEx:postIndex])
  3888  			iNdEx = postIndex
  3889  		case 402:
  3890  			if wireType != 2 {
  3891  				return fmt.Errorf("proto: wrong wireType = %d for field ClientCertPath", wireType)
  3892  			}
  3893  			var stringLen uint64
  3894  			for shift := uint(0); ; shift += 7 {
  3895  				if shift >= 64 {
  3896  					return ErrIntOverflowRpc
  3897  				}
  3898  				if iNdEx >= l {
  3899  					return io.ErrUnexpectedEOF
  3900  				}
  3901  				b := dAtA[iNdEx]
  3902  				iNdEx++
  3903  				stringLen |= uint64(b&0x7F) << shift
  3904  				if b < 0x80 {
  3905  					break
  3906  				}
  3907  			}
  3908  			intStringLen := int(stringLen)
  3909  			if intStringLen < 0 {
  3910  				return ErrInvalidLengthRpc
  3911  			}
  3912  			postIndex := iNdEx + intStringLen
  3913  			if postIndex < 0 {
  3914  				return ErrInvalidLengthRpc
  3915  			}
  3916  			if postIndex > l {
  3917  				return io.ErrUnexpectedEOF
  3918  			}
  3919  			m.ClientCertPath = string(dAtA[iNdEx:postIndex])
  3920  			iNdEx = postIndex
  3921  		case 403:
  3922  			if wireType != 2 {
  3923  				return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyData", wireType)
  3924  			}
  3925  			var stringLen uint64
  3926  			for shift := uint(0); ; shift += 7 {
  3927  				if shift >= 64 {
  3928  					return ErrIntOverflowRpc
  3929  				}
  3930  				if iNdEx >= l {
  3931  					return io.ErrUnexpectedEOF
  3932  				}
  3933  				b := dAtA[iNdEx]
  3934  				iNdEx++
  3935  				stringLen |= uint64(b&0x7F) << shift
  3936  				if b < 0x80 {
  3937  					break
  3938  				}
  3939  			}
  3940  			intStringLen := int(stringLen)
  3941  			if intStringLen < 0 {
  3942  				return ErrInvalidLengthRpc
  3943  			}
  3944  			postIndex := iNdEx + intStringLen
  3945  			if postIndex < 0 {
  3946  				return ErrInvalidLengthRpc
  3947  			}
  3948  			if postIndex > l {
  3949  				return io.ErrUnexpectedEOF
  3950  			}
  3951  			m.ClientKeyData = string(dAtA[iNdEx:postIndex])
  3952  			iNdEx = postIndex
  3953  		case 404:
  3954  			if wireType != 2 {
  3955  				return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyPath", wireType)
  3956  			}
  3957  			var stringLen uint64
  3958  			for shift := uint(0); ; shift += 7 {
  3959  				if shift >= 64 {
  3960  					return ErrIntOverflowRpc
  3961  				}
  3962  				if iNdEx >= l {
  3963  					return io.ErrUnexpectedEOF
  3964  				}
  3965  				b := dAtA[iNdEx]
  3966  				iNdEx++
  3967  				stringLen |= uint64(b&0x7F) << shift
  3968  				if b < 0x80 {
  3969  					break
  3970  				}
  3971  			}
  3972  			intStringLen := int(stringLen)
  3973  			if intStringLen < 0 {
  3974  				return ErrInvalidLengthRpc
  3975  			}
  3976  			postIndex := iNdEx + intStringLen
  3977  			if postIndex < 0 {
  3978  				return ErrInvalidLengthRpc
  3979  			}
  3980  			if postIndex > l {
  3981  				return io.ErrUnexpectedEOF
  3982  			}
  3983  			m.ClientKeyPath = string(dAtA[iNdEx:postIndex])
  3984  			iNdEx = postIndex
  3985  		case 405:
  3986  			if wireType != 2 {
  3987  				return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAData", wireType)
  3988  			}
  3989  			var stringLen uint64
  3990  			for shift := uint(0); ; shift += 7 {
  3991  				if shift >= 64 {
  3992  					return ErrIntOverflowRpc
  3993  				}
  3994  				if iNdEx >= l {
  3995  					return io.ErrUnexpectedEOF
  3996  				}
  3997  				b := dAtA[iNdEx]
  3998  				iNdEx++
  3999  				stringLen |= uint64(b&0x7F) << shift
  4000  				if b < 0x80 {
  4001  					break
  4002  				}
  4003  			}
  4004  			intStringLen := int(stringLen)
  4005  			if intStringLen < 0 {
  4006  				return ErrInvalidLengthRpc
  4007  			}
  4008  			postIndex := iNdEx + intStringLen
  4009  			if postIndex < 0 {
  4010  				return ErrInvalidLengthRpc
  4011  			}
  4012  			if postIndex > l {
  4013  				return io.ErrUnexpectedEOF
  4014  			}
  4015  			m.ClientTrustedCAData = string(dAtA[iNdEx:postIndex])
  4016  			iNdEx = postIndex
  4017  		case 406:
  4018  			if wireType != 2 {
  4019  				return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAPath", wireType)
  4020  			}
  4021  			var stringLen uint64
  4022  			for shift := uint(0); ; shift += 7 {
  4023  				if shift >= 64 {
  4024  					return ErrIntOverflowRpc
  4025  				}
  4026  				if iNdEx >= l {
  4027  					return io.ErrUnexpectedEOF
  4028  				}
  4029  				b := dAtA[iNdEx]
  4030  				iNdEx++
  4031  				stringLen |= uint64(b&0x7F) << shift
  4032  				if b < 0x80 {
  4033  					break
  4034  				}
  4035  			}
  4036  			intStringLen := int(stringLen)
  4037  			if intStringLen < 0 {
  4038  				return ErrInvalidLengthRpc
  4039  			}
  4040  			postIndex := iNdEx + intStringLen
  4041  			if postIndex < 0 {
  4042  				return ErrInvalidLengthRpc
  4043  			}
  4044  			if postIndex > l {
  4045  				return io.ErrUnexpectedEOF
  4046  			}
  4047  			m.ClientTrustedCAPath = string(dAtA[iNdEx:postIndex])
  4048  			iNdEx = postIndex
  4049  		case 501:
  4050  			if wireType != 2 {
  4051  				return fmt.Errorf("proto: wrong wireType = %d for field PeerCertData", wireType)
  4052  			}
  4053  			var stringLen uint64
  4054  			for shift := uint(0); ; shift += 7 {
  4055  				if shift >= 64 {
  4056  					return ErrIntOverflowRpc
  4057  				}
  4058  				if iNdEx >= l {
  4059  					return io.ErrUnexpectedEOF
  4060  				}
  4061  				b := dAtA[iNdEx]
  4062  				iNdEx++
  4063  				stringLen |= uint64(b&0x7F) << shift
  4064  				if b < 0x80 {
  4065  					break
  4066  				}
  4067  			}
  4068  			intStringLen := int(stringLen)
  4069  			if intStringLen < 0 {
  4070  				return ErrInvalidLengthRpc
  4071  			}
  4072  			postIndex := iNdEx + intStringLen
  4073  			if postIndex < 0 {
  4074  				return ErrInvalidLengthRpc
  4075  			}
  4076  			if postIndex > l {
  4077  				return io.ErrUnexpectedEOF
  4078  			}
  4079  			m.PeerCertData = string(dAtA[iNdEx:postIndex])
  4080  			iNdEx = postIndex
  4081  		case 502:
  4082  			if wireType != 2 {
  4083  				return fmt.Errorf("proto: wrong wireType = %d for field PeerCertPath", wireType)
  4084  			}
  4085  			var stringLen uint64
  4086  			for shift := uint(0); ; shift += 7 {
  4087  				if shift >= 64 {
  4088  					return ErrIntOverflowRpc
  4089  				}
  4090  				if iNdEx >= l {
  4091  					return io.ErrUnexpectedEOF
  4092  				}
  4093  				b := dAtA[iNdEx]
  4094  				iNdEx++
  4095  				stringLen |= uint64(b&0x7F) << shift
  4096  				if b < 0x80 {
  4097  					break
  4098  				}
  4099  			}
  4100  			intStringLen := int(stringLen)
  4101  			if intStringLen < 0 {
  4102  				return ErrInvalidLengthRpc
  4103  			}
  4104  			postIndex := iNdEx + intStringLen
  4105  			if postIndex < 0 {
  4106  				return ErrInvalidLengthRpc
  4107  			}
  4108  			if postIndex > l {
  4109  				return io.ErrUnexpectedEOF
  4110  			}
  4111  			m.PeerCertPath = string(dAtA[iNdEx:postIndex])
  4112  			iNdEx = postIndex
  4113  		case 503:
  4114  			if wireType != 2 {
  4115  				return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyData", wireType)
  4116  			}
  4117  			var stringLen uint64
  4118  			for shift := uint(0); ; shift += 7 {
  4119  				if shift >= 64 {
  4120  					return ErrIntOverflowRpc
  4121  				}
  4122  				if iNdEx >= l {
  4123  					return io.ErrUnexpectedEOF
  4124  				}
  4125  				b := dAtA[iNdEx]
  4126  				iNdEx++
  4127  				stringLen |= uint64(b&0x7F) << shift
  4128  				if b < 0x80 {
  4129  					break
  4130  				}
  4131  			}
  4132  			intStringLen := int(stringLen)
  4133  			if intStringLen < 0 {
  4134  				return ErrInvalidLengthRpc
  4135  			}
  4136  			postIndex := iNdEx + intStringLen
  4137  			if postIndex < 0 {
  4138  				return ErrInvalidLengthRpc
  4139  			}
  4140  			if postIndex > l {
  4141  				return io.ErrUnexpectedEOF
  4142  			}
  4143  			m.PeerKeyData = string(dAtA[iNdEx:postIndex])
  4144  			iNdEx = postIndex
  4145  		case 504:
  4146  			if wireType != 2 {
  4147  				return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyPath", wireType)
  4148  			}
  4149  			var stringLen uint64
  4150  			for shift := uint(0); ; shift += 7 {
  4151  				if shift >= 64 {
  4152  					return ErrIntOverflowRpc
  4153  				}
  4154  				if iNdEx >= l {
  4155  					return io.ErrUnexpectedEOF
  4156  				}
  4157  				b := dAtA[iNdEx]
  4158  				iNdEx++
  4159  				stringLen |= uint64(b&0x7F) << shift
  4160  				if b < 0x80 {
  4161  					break
  4162  				}
  4163  			}
  4164  			intStringLen := int(stringLen)
  4165  			if intStringLen < 0 {
  4166  				return ErrInvalidLengthRpc
  4167  			}
  4168  			postIndex := iNdEx + intStringLen
  4169  			if postIndex < 0 {
  4170  				return ErrInvalidLengthRpc
  4171  			}
  4172  			if postIndex > l {
  4173  				return io.ErrUnexpectedEOF
  4174  			}
  4175  			m.PeerKeyPath = string(dAtA[iNdEx:postIndex])
  4176  			iNdEx = postIndex
  4177  		case 505:
  4178  			if wireType != 2 {
  4179  				return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAData", wireType)
  4180  			}
  4181  			var stringLen uint64
  4182  			for shift := uint(0); ; shift += 7 {
  4183  				if shift >= 64 {
  4184  					return ErrIntOverflowRpc
  4185  				}
  4186  				if iNdEx >= l {
  4187  					return io.ErrUnexpectedEOF
  4188  				}
  4189  				b := dAtA[iNdEx]
  4190  				iNdEx++
  4191  				stringLen |= uint64(b&0x7F) << shift
  4192  				if b < 0x80 {
  4193  					break
  4194  				}
  4195  			}
  4196  			intStringLen := int(stringLen)
  4197  			if intStringLen < 0 {
  4198  				return ErrInvalidLengthRpc
  4199  			}
  4200  			postIndex := iNdEx + intStringLen
  4201  			if postIndex < 0 {
  4202  				return ErrInvalidLengthRpc
  4203  			}
  4204  			if postIndex > l {
  4205  				return io.ErrUnexpectedEOF
  4206  			}
  4207  			m.PeerTrustedCAData = string(dAtA[iNdEx:postIndex])
  4208  			iNdEx = postIndex
  4209  		case 506:
  4210  			if wireType != 2 {
  4211  				return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAPath", wireType)
  4212  			}
  4213  			var stringLen uint64
  4214  			for shift := uint(0); ; shift += 7 {
  4215  				if shift >= 64 {
  4216  					return ErrIntOverflowRpc
  4217  				}
  4218  				if iNdEx >= l {
  4219  					return io.ErrUnexpectedEOF
  4220  				}
  4221  				b := dAtA[iNdEx]
  4222  				iNdEx++
  4223  				stringLen |= uint64(b&0x7F) << shift
  4224  				if b < 0x80 {
  4225  					break
  4226  				}
  4227  			}
  4228  			intStringLen := int(stringLen)
  4229  			if intStringLen < 0 {
  4230  				return ErrInvalidLengthRpc
  4231  			}
  4232  			postIndex := iNdEx + intStringLen
  4233  			if postIndex < 0 {
  4234  				return ErrInvalidLengthRpc
  4235  			}
  4236  			if postIndex > l {
  4237  				return io.ErrUnexpectedEOF
  4238  			}
  4239  			m.PeerTrustedCAPath = string(dAtA[iNdEx:postIndex])
  4240  			iNdEx = postIndex
  4241  		case 601:
  4242  			if wireType != 2 {
  4243  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
  4244  			}
  4245  			var stringLen uint64
  4246  			for shift := uint(0); ; shift += 7 {
  4247  				if shift >= 64 {
  4248  					return ErrIntOverflowRpc
  4249  				}
  4250  				if iNdEx >= l {
  4251  					return io.ErrUnexpectedEOF
  4252  				}
  4253  				b := dAtA[iNdEx]
  4254  				iNdEx++
  4255  				stringLen |= uint64(b&0x7F) << shift
  4256  				if b < 0x80 {
  4257  					break
  4258  				}
  4259  			}
  4260  			intStringLen := int(stringLen)
  4261  			if intStringLen < 0 {
  4262  				return ErrInvalidLengthRpc
  4263  			}
  4264  			postIndex := iNdEx + intStringLen
  4265  			if postIndex < 0 {
  4266  				return ErrInvalidLengthRpc
  4267  			}
  4268  			if postIndex > l {
  4269  				return io.ErrUnexpectedEOF
  4270  			}
  4271  			m.SnapshotPath = string(dAtA[iNdEx:postIndex])
  4272  			iNdEx = postIndex
  4273  		case 602:
  4274  			if wireType != 2 {
  4275  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotInfo", wireType)
  4276  			}
  4277  			var msglen int
  4278  			for shift := uint(0); ; shift += 7 {
  4279  				if shift >= 64 {
  4280  					return ErrIntOverflowRpc
  4281  				}
  4282  				if iNdEx >= l {
  4283  					return io.ErrUnexpectedEOF
  4284  				}
  4285  				b := dAtA[iNdEx]
  4286  				iNdEx++
  4287  				msglen |= int(b&0x7F) << shift
  4288  				if b < 0x80 {
  4289  					break
  4290  				}
  4291  			}
  4292  			if msglen < 0 {
  4293  				return ErrInvalidLengthRpc
  4294  			}
  4295  			postIndex := iNdEx + msglen
  4296  			if postIndex < 0 {
  4297  				return ErrInvalidLengthRpc
  4298  			}
  4299  			if postIndex > l {
  4300  				return io.ErrUnexpectedEOF
  4301  			}
  4302  			if m.SnapshotInfo == nil {
  4303  				m.SnapshotInfo = &SnapshotInfo{}
  4304  			}
  4305  			if err := m.SnapshotInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4306  				return err
  4307  			}
  4308  			iNdEx = postIndex
  4309  		case 701:
  4310  			if wireType != 2 {
  4311  				return fmt.Errorf("proto: wrong wireType = %d for field Failpoints", wireType)
  4312  			}
  4313  			var stringLen uint64
  4314  			for shift := uint(0); ; shift += 7 {
  4315  				if shift >= 64 {
  4316  					return ErrIntOverflowRpc
  4317  				}
  4318  				if iNdEx >= l {
  4319  					return io.ErrUnexpectedEOF
  4320  				}
  4321  				b := dAtA[iNdEx]
  4322  				iNdEx++
  4323  				stringLen |= uint64(b&0x7F) << shift
  4324  				if b < 0x80 {
  4325  					break
  4326  				}
  4327  			}
  4328  			intStringLen := int(stringLen)
  4329  			if intStringLen < 0 {
  4330  				return ErrInvalidLengthRpc
  4331  			}
  4332  			postIndex := iNdEx + intStringLen
  4333  			if postIndex < 0 {
  4334  				return ErrInvalidLengthRpc
  4335  			}
  4336  			if postIndex > l {
  4337  				return io.ErrUnexpectedEOF
  4338  			}
  4339  			m.Failpoints = string(dAtA[iNdEx:postIndex])
  4340  			iNdEx = postIndex
  4341  		default:
  4342  			iNdEx = preIndex
  4343  			skippy, err := skipRpc(dAtA[iNdEx:])
  4344  			if err != nil {
  4345  				return err
  4346  			}
  4347  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  4348  				return ErrInvalidLengthRpc
  4349  			}
  4350  			if (iNdEx + skippy) > l {
  4351  				return io.ErrUnexpectedEOF
  4352  			}
  4353  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  4354  			iNdEx += skippy
  4355  		}
  4356  	}
  4357  
  4358  	if iNdEx > l {
  4359  		return io.ErrUnexpectedEOF
  4360  	}
  4361  	return nil
  4362  }
  4363  func (m *Tester) Unmarshal(dAtA []byte) error {
  4364  	l := len(dAtA)
  4365  	iNdEx := 0
  4366  	for iNdEx < l {
  4367  		preIndex := iNdEx
  4368  		var wire uint64
  4369  		for shift := uint(0); ; shift += 7 {
  4370  			if shift >= 64 {
  4371  				return ErrIntOverflowRpc
  4372  			}
  4373  			if iNdEx >= l {
  4374  				return io.ErrUnexpectedEOF
  4375  			}
  4376  			b := dAtA[iNdEx]
  4377  			iNdEx++
  4378  			wire |= uint64(b&0x7F) << shift
  4379  			if b < 0x80 {
  4380  				break
  4381  			}
  4382  		}
  4383  		fieldNum := int32(wire >> 3)
  4384  		wireType := int(wire & 0x7)
  4385  		if wireType == 4 {
  4386  			return fmt.Errorf("proto: Tester: wiretype end group for non-group")
  4387  		}
  4388  		if fieldNum <= 0 {
  4389  			return fmt.Errorf("proto: Tester: illegal tag %d (wire type %d)", fieldNum, wire)
  4390  		}
  4391  		switch fieldNum {
  4392  		case 1:
  4393  			if wireType != 2 {
  4394  				return fmt.Errorf("proto: wrong wireType = %d for field DataDir", wireType)
  4395  			}
  4396  			var stringLen uint64
  4397  			for shift := uint(0); ; shift += 7 {
  4398  				if shift >= 64 {
  4399  					return ErrIntOverflowRpc
  4400  				}
  4401  				if iNdEx >= l {
  4402  					return io.ErrUnexpectedEOF
  4403  				}
  4404  				b := dAtA[iNdEx]
  4405  				iNdEx++
  4406  				stringLen |= uint64(b&0x7F) << shift
  4407  				if b < 0x80 {
  4408  					break
  4409  				}
  4410  			}
  4411  			intStringLen := int(stringLen)
  4412  			if intStringLen < 0 {
  4413  				return ErrInvalidLengthRpc
  4414  			}
  4415  			postIndex := iNdEx + intStringLen
  4416  			if postIndex < 0 {
  4417  				return ErrInvalidLengthRpc
  4418  			}
  4419  			if postIndex > l {
  4420  				return io.ErrUnexpectedEOF
  4421  			}
  4422  			m.DataDir = string(dAtA[iNdEx:postIndex])
  4423  			iNdEx = postIndex
  4424  		case 2:
  4425  			if wireType != 2 {
  4426  				return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
  4427  			}
  4428  			var stringLen uint64
  4429  			for shift := uint(0); ; shift += 7 {
  4430  				if shift >= 64 {
  4431  					return ErrIntOverflowRpc
  4432  				}
  4433  				if iNdEx >= l {
  4434  					return io.ErrUnexpectedEOF
  4435  				}
  4436  				b := dAtA[iNdEx]
  4437  				iNdEx++
  4438  				stringLen |= uint64(b&0x7F) << shift
  4439  				if b < 0x80 {
  4440  					break
  4441  				}
  4442  			}
  4443  			intStringLen := int(stringLen)
  4444  			if intStringLen < 0 {
  4445  				return ErrInvalidLengthRpc
  4446  			}
  4447  			postIndex := iNdEx + intStringLen
  4448  			if postIndex < 0 {
  4449  				return ErrInvalidLengthRpc
  4450  			}
  4451  			if postIndex > l {
  4452  				return io.ErrUnexpectedEOF
  4453  			}
  4454  			m.Network = string(dAtA[iNdEx:postIndex])
  4455  			iNdEx = postIndex
  4456  		case 3:
  4457  			if wireType != 2 {
  4458  				return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType)
  4459  			}
  4460  			var stringLen uint64
  4461  			for shift := uint(0); ; shift += 7 {
  4462  				if shift >= 64 {
  4463  					return ErrIntOverflowRpc
  4464  				}
  4465  				if iNdEx >= l {
  4466  					return io.ErrUnexpectedEOF
  4467  				}
  4468  				b := dAtA[iNdEx]
  4469  				iNdEx++
  4470  				stringLen |= uint64(b&0x7F) << shift
  4471  				if b < 0x80 {
  4472  					break
  4473  				}
  4474  			}
  4475  			intStringLen := int(stringLen)
  4476  			if intStringLen < 0 {
  4477  				return ErrInvalidLengthRpc
  4478  			}
  4479  			postIndex := iNdEx + intStringLen
  4480  			if postIndex < 0 {
  4481  				return ErrInvalidLengthRpc
  4482  			}
  4483  			if postIndex > l {
  4484  				return io.ErrUnexpectedEOF
  4485  			}
  4486  			m.Addr = string(dAtA[iNdEx:postIndex])
  4487  			iNdEx = postIndex
  4488  		case 11:
  4489  			if wireType != 0 {
  4490  				return fmt.Errorf("proto: wrong wireType = %d for field DelayLatencyMs", wireType)
  4491  			}
  4492  			m.DelayLatencyMs = 0
  4493  			for shift := uint(0); ; shift += 7 {
  4494  				if shift >= 64 {
  4495  					return ErrIntOverflowRpc
  4496  				}
  4497  				if iNdEx >= l {
  4498  					return io.ErrUnexpectedEOF
  4499  				}
  4500  				b := dAtA[iNdEx]
  4501  				iNdEx++
  4502  				m.DelayLatencyMs |= uint32(b&0x7F) << shift
  4503  				if b < 0x80 {
  4504  					break
  4505  				}
  4506  			}
  4507  		case 12:
  4508  			if wireType != 0 {
  4509  				return fmt.Errorf("proto: wrong wireType = %d for field DelayLatencyMsRv", wireType)
  4510  			}
  4511  			m.DelayLatencyMsRv = 0
  4512  			for shift := uint(0); ; shift += 7 {
  4513  				if shift >= 64 {
  4514  					return ErrIntOverflowRpc
  4515  				}
  4516  				if iNdEx >= l {
  4517  					return io.ErrUnexpectedEOF
  4518  				}
  4519  				b := dAtA[iNdEx]
  4520  				iNdEx++
  4521  				m.DelayLatencyMsRv |= uint32(b&0x7F) << shift
  4522  				if b < 0x80 {
  4523  					break
  4524  				}
  4525  			}
  4526  		case 13:
  4527  			if wireType != 0 {
  4528  				return fmt.Errorf("proto: wrong wireType = %d for field UpdatedDelayLatencyMs", wireType)
  4529  			}
  4530  			m.UpdatedDelayLatencyMs = 0
  4531  			for shift := uint(0); ; shift += 7 {
  4532  				if shift >= 64 {
  4533  					return ErrIntOverflowRpc
  4534  				}
  4535  				if iNdEx >= l {
  4536  					return io.ErrUnexpectedEOF
  4537  				}
  4538  				b := dAtA[iNdEx]
  4539  				iNdEx++
  4540  				m.UpdatedDelayLatencyMs |= uint32(b&0x7F) << shift
  4541  				if b < 0x80 {
  4542  					break
  4543  				}
  4544  			}
  4545  		case 21:
  4546  			if wireType != 0 {
  4547  				return fmt.Errorf("proto: wrong wireType = %d for field RoundLimit", wireType)
  4548  			}
  4549  			m.RoundLimit = 0
  4550  			for shift := uint(0); ; shift += 7 {
  4551  				if shift >= 64 {
  4552  					return ErrIntOverflowRpc
  4553  				}
  4554  				if iNdEx >= l {
  4555  					return io.ErrUnexpectedEOF
  4556  				}
  4557  				b := dAtA[iNdEx]
  4558  				iNdEx++
  4559  				m.RoundLimit |= int32(b&0x7F) << shift
  4560  				if b < 0x80 {
  4561  					break
  4562  				}
  4563  			}
  4564  		case 22:
  4565  			if wireType != 0 {
  4566  				return fmt.Errorf("proto: wrong wireType = %d for field ExitOnCaseFail", wireType)
  4567  			}
  4568  			var v int
  4569  			for shift := uint(0); ; shift += 7 {
  4570  				if shift >= 64 {
  4571  					return ErrIntOverflowRpc
  4572  				}
  4573  				if iNdEx >= l {
  4574  					return io.ErrUnexpectedEOF
  4575  				}
  4576  				b := dAtA[iNdEx]
  4577  				iNdEx++
  4578  				v |= int(b&0x7F) << shift
  4579  				if b < 0x80 {
  4580  					break
  4581  				}
  4582  			}
  4583  			m.ExitOnCaseFail = bool(v != 0)
  4584  		case 23:
  4585  			if wireType != 0 {
  4586  				return fmt.Errorf("proto: wrong wireType = %d for field EnablePprof", wireType)
  4587  			}
  4588  			var v int
  4589  			for shift := uint(0); ; shift += 7 {
  4590  				if shift >= 64 {
  4591  					return ErrIntOverflowRpc
  4592  				}
  4593  				if iNdEx >= l {
  4594  					return io.ErrUnexpectedEOF
  4595  				}
  4596  				b := dAtA[iNdEx]
  4597  				iNdEx++
  4598  				v |= int(b&0x7F) << shift
  4599  				if b < 0x80 {
  4600  					break
  4601  				}
  4602  			}
  4603  			m.EnablePprof = bool(v != 0)
  4604  		case 31:
  4605  			if wireType != 0 {
  4606  				return fmt.Errorf("proto: wrong wireType = %d for field CaseDelayMs", wireType)
  4607  			}
  4608  			m.CaseDelayMs = 0
  4609  			for shift := uint(0); ; shift += 7 {
  4610  				if shift >= 64 {
  4611  					return ErrIntOverflowRpc
  4612  				}
  4613  				if iNdEx >= l {
  4614  					return io.ErrUnexpectedEOF
  4615  				}
  4616  				b := dAtA[iNdEx]
  4617  				iNdEx++
  4618  				m.CaseDelayMs |= uint32(b&0x7F) << shift
  4619  				if b < 0x80 {
  4620  					break
  4621  				}
  4622  			}
  4623  		case 32:
  4624  			if wireType != 0 {
  4625  				return fmt.Errorf("proto: wrong wireType = %d for field CaseShuffle", wireType)
  4626  			}
  4627  			var v int
  4628  			for shift := uint(0); ; shift += 7 {
  4629  				if shift >= 64 {
  4630  					return ErrIntOverflowRpc
  4631  				}
  4632  				if iNdEx >= l {
  4633  					return io.ErrUnexpectedEOF
  4634  				}
  4635  				b := dAtA[iNdEx]
  4636  				iNdEx++
  4637  				v |= int(b&0x7F) << shift
  4638  				if b < 0x80 {
  4639  					break
  4640  				}
  4641  			}
  4642  			m.CaseShuffle = bool(v != 0)
  4643  		case 33:
  4644  			if wireType != 2 {
  4645  				return fmt.Errorf("proto: wrong wireType = %d for field Cases", wireType)
  4646  			}
  4647  			var stringLen uint64
  4648  			for shift := uint(0); ; shift += 7 {
  4649  				if shift >= 64 {
  4650  					return ErrIntOverflowRpc
  4651  				}
  4652  				if iNdEx >= l {
  4653  					return io.ErrUnexpectedEOF
  4654  				}
  4655  				b := dAtA[iNdEx]
  4656  				iNdEx++
  4657  				stringLen |= uint64(b&0x7F) << shift
  4658  				if b < 0x80 {
  4659  					break
  4660  				}
  4661  			}
  4662  			intStringLen := int(stringLen)
  4663  			if intStringLen < 0 {
  4664  				return ErrInvalidLengthRpc
  4665  			}
  4666  			postIndex := iNdEx + intStringLen
  4667  			if postIndex < 0 {
  4668  				return ErrInvalidLengthRpc
  4669  			}
  4670  			if postIndex > l {
  4671  				return io.ErrUnexpectedEOF
  4672  			}
  4673  			m.Cases = append(m.Cases, string(dAtA[iNdEx:postIndex]))
  4674  			iNdEx = postIndex
  4675  		case 34:
  4676  			if wireType != 2 {
  4677  				return fmt.Errorf("proto: wrong wireType = %d for field FailpointCommands", wireType)
  4678  			}
  4679  			var stringLen uint64
  4680  			for shift := uint(0); ; shift += 7 {
  4681  				if shift >= 64 {
  4682  					return ErrIntOverflowRpc
  4683  				}
  4684  				if iNdEx >= l {
  4685  					return io.ErrUnexpectedEOF
  4686  				}
  4687  				b := dAtA[iNdEx]
  4688  				iNdEx++
  4689  				stringLen |= uint64(b&0x7F) << shift
  4690  				if b < 0x80 {
  4691  					break
  4692  				}
  4693  			}
  4694  			intStringLen := int(stringLen)
  4695  			if intStringLen < 0 {
  4696  				return ErrInvalidLengthRpc
  4697  			}
  4698  			postIndex := iNdEx + intStringLen
  4699  			if postIndex < 0 {
  4700  				return ErrInvalidLengthRpc
  4701  			}
  4702  			if postIndex > l {
  4703  				return io.ErrUnexpectedEOF
  4704  			}
  4705  			m.FailpointCommands = append(m.FailpointCommands, string(dAtA[iNdEx:postIndex]))
  4706  			iNdEx = postIndex
  4707  		case 41:
  4708  			if wireType != 2 {
  4709  				return fmt.Errorf("proto: wrong wireType = %d for field RunnerExecPath", wireType)
  4710  			}
  4711  			var stringLen uint64
  4712  			for shift := uint(0); ; shift += 7 {
  4713  				if shift >= 64 {
  4714  					return ErrIntOverflowRpc
  4715  				}
  4716  				if iNdEx >= l {
  4717  					return io.ErrUnexpectedEOF
  4718  				}
  4719  				b := dAtA[iNdEx]
  4720  				iNdEx++
  4721  				stringLen |= uint64(b&0x7F) << shift
  4722  				if b < 0x80 {
  4723  					break
  4724  				}
  4725  			}
  4726  			intStringLen := int(stringLen)
  4727  			if intStringLen < 0 {
  4728  				return ErrInvalidLengthRpc
  4729  			}
  4730  			postIndex := iNdEx + intStringLen
  4731  			if postIndex < 0 {
  4732  				return ErrInvalidLengthRpc
  4733  			}
  4734  			if postIndex > l {
  4735  				return io.ErrUnexpectedEOF
  4736  			}
  4737  			m.RunnerExecPath = string(dAtA[iNdEx:postIndex])
  4738  			iNdEx = postIndex
  4739  		case 42:
  4740  			if wireType != 2 {
  4741  				return fmt.Errorf("proto: wrong wireType = %d for field ExternalExecPath", wireType)
  4742  			}
  4743  			var stringLen uint64
  4744  			for shift := uint(0); ; shift += 7 {
  4745  				if shift >= 64 {
  4746  					return ErrIntOverflowRpc
  4747  				}
  4748  				if iNdEx >= l {
  4749  					return io.ErrUnexpectedEOF
  4750  				}
  4751  				b := dAtA[iNdEx]
  4752  				iNdEx++
  4753  				stringLen |= uint64(b&0x7F) << shift
  4754  				if b < 0x80 {
  4755  					break
  4756  				}
  4757  			}
  4758  			intStringLen := int(stringLen)
  4759  			if intStringLen < 0 {
  4760  				return ErrInvalidLengthRpc
  4761  			}
  4762  			postIndex := iNdEx + intStringLen
  4763  			if postIndex < 0 {
  4764  				return ErrInvalidLengthRpc
  4765  			}
  4766  			if postIndex > l {
  4767  				return io.ErrUnexpectedEOF
  4768  			}
  4769  			m.ExternalExecPath = string(dAtA[iNdEx:postIndex])
  4770  			iNdEx = postIndex
  4771  		case 101:
  4772  			if wireType != 2 {
  4773  				return fmt.Errorf("proto: wrong wireType = %d for field Stressers", wireType)
  4774  			}
  4775  			var msglen int
  4776  			for shift := uint(0); ; shift += 7 {
  4777  				if shift >= 64 {
  4778  					return ErrIntOverflowRpc
  4779  				}
  4780  				if iNdEx >= l {
  4781  					return io.ErrUnexpectedEOF
  4782  				}
  4783  				b := dAtA[iNdEx]
  4784  				iNdEx++
  4785  				msglen |= int(b&0x7F) << shift
  4786  				if b < 0x80 {
  4787  					break
  4788  				}
  4789  			}
  4790  			if msglen < 0 {
  4791  				return ErrInvalidLengthRpc
  4792  			}
  4793  			postIndex := iNdEx + msglen
  4794  			if postIndex < 0 {
  4795  				return ErrInvalidLengthRpc
  4796  			}
  4797  			if postIndex > l {
  4798  				return io.ErrUnexpectedEOF
  4799  			}
  4800  			m.Stressers = append(m.Stressers, &Stresser{})
  4801  			if err := m.Stressers[len(m.Stressers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4802  				return err
  4803  			}
  4804  			iNdEx = postIndex
  4805  		case 102:
  4806  			if wireType != 2 {
  4807  				return fmt.Errorf("proto: wrong wireType = %d for field Checkers", wireType)
  4808  			}
  4809  			var stringLen uint64
  4810  			for shift := uint(0); ; shift += 7 {
  4811  				if shift >= 64 {
  4812  					return ErrIntOverflowRpc
  4813  				}
  4814  				if iNdEx >= l {
  4815  					return io.ErrUnexpectedEOF
  4816  				}
  4817  				b := dAtA[iNdEx]
  4818  				iNdEx++
  4819  				stringLen |= uint64(b&0x7F) << shift
  4820  				if b < 0x80 {
  4821  					break
  4822  				}
  4823  			}
  4824  			intStringLen := int(stringLen)
  4825  			if intStringLen < 0 {
  4826  				return ErrInvalidLengthRpc
  4827  			}
  4828  			postIndex := iNdEx + intStringLen
  4829  			if postIndex < 0 {
  4830  				return ErrInvalidLengthRpc
  4831  			}
  4832  			if postIndex > l {
  4833  				return io.ErrUnexpectedEOF
  4834  			}
  4835  			m.Checkers = append(m.Checkers, string(dAtA[iNdEx:postIndex]))
  4836  			iNdEx = postIndex
  4837  		case 201:
  4838  			if wireType != 0 {
  4839  				return fmt.Errorf("proto: wrong wireType = %d for field StressKeySize", wireType)
  4840  			}
  4841  			m.StressKeySize = 0
  4842  			for shift := uint(0); ; shift += 7 {
  4843  				if shift >= 64 {
  4844  					return ErrIntOverflowRpc
  4845  				}
  4846  				if iNdEx >= l {
  4847  					return io.ErrUnexpectedEOF
  4848  				}
  4849  				b := dAtA[iNdEx]
  4850  				iNdEx++
  4851  				m.StressKeySize |= int32(b&0x7F) << shift
  4852  				if b < 0x80 {
  4853  					break
  4854  				}
  4855  			}
  4856  		case 202:
  4857  			if wireType != 0 {
  4858  				return fmt.Errorf("proto: wrong wireType = %d for field StressKeySizeLarge", wireType)
  4859  			}
  4860  			m.StressKeySizeLarge = 0
  4861  			for shift := uint(0); ; shift += 7 {
  4862  				if shift >= 64 {
  4863  					return ErrIntOverflowRpc
  4864  				}
  4865  				if iNdEx >= l {
  4866  					return io.ErrUnexpectedEOF
  4867  				}
  4868  				b := dAtA[iNdEx]
  4869  				iNdEx++
  4870  				m.StressKeySizeLarge |= int32(b&0x7F) << shift
  4871  				if b < 0x80 {
  4872  					break
  4873  				}
  4874  			}
  4875  		case 203:
  4876  			if wireType != 0 {
  4877  				return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRange", wireType)
  4878  			}
  4879  			m.StressKeySuffixRange = 0
  4880  			for shift := uint(0); ; shift += 7 {
  4881  				if shift >= 64 {
  4882  					return ErrIntOverflowRpc
  4883  				}
  4884  				if iNdEx >= l {
  4885  					return io.ErrUnexpectedEOF
  4886  				}
  4887  				b := dAtA[iNdEx]
  4888  				iNdEx++
  4889  				m.StressKeySuffixRange |= int32(b&0x7F) << shift
  4890  				if b < 0x80 {
  4891  					break
  4892  				}
  4893  			}
  4894  		case 204:
  4895  			if wireType != 0 {
  4896  				return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRangeTxn", wireType)
  4897  			}
  4898  			m.StressKeySuffixRangeTxn = 0
  4899  			for shift := uint(0); ; shift += 7 {
  4900  				if shift >= 64 {
  4901  					return ErrIntOverflowRpc
  4902  				}
  4903  				if iNdEx >= l {
  4904  					return io.ErrUnexpectedEOF
  4905  				}
  4906  				b := dAtA[iNdEx]
  4907  				iNdEx++
  4908  				m.StressKeySuffixRangeTxn |= int32(b&0x7F) << shift
  4909  				if b < 0x80 {
  4910  					break
  4911  				}
  4912  			}
  4913  		case 205:
  4914  			if wireType != 0 {
  4915  				return fmt.Errorf("proto: wrong wireType = %d for field StressKeyTxnOps", wireType)
  4916  			}
  4917  			m.StressKeyTxnOps = 0
  4918  			for shift := uint(0); ; shift += 7 {
  4919  				if shift >= 64 {
  4920  					return ErrIntOverflowRpc
  4921  				}
  4922  				if iNdEx >= l {
  4923  					return io.ErrUnexpectedEOF
  4924  				}
  4925  				b := dAtA[iNdEx]
  4926  				iNdEx++
  4927  				m.StressKeyTxnOps |= int32(b&0x7F) << shift
  4928  				if b < 0x80 {
  4929  					break
  4930  				}
  4931  			}
  4932  		case 301:
  4933  			if wireType != 0 {
  4934  				return fmt.Errorf("proto: wrong wireType = %d for field StressClients", wireType)
  4935  			}
  4936  			m.StressClients = 0
  4937  			for shift := uint(0); ; shift += 7 {
  4938  				if shift >= 64 {
  4939  					return ErrIntOverflowRpc
  4940  				}
  4941  				if iNdEx >= l {
  4942  					return io.ErrUnexpectedEOF
  4943  				}
  4944  				b := dAtA[iNdEx]
  4945  				iNdEx++
  4946  				m.StressClients |= int32(b&0x7F) << shift
  4947  				if b < 0x80 {
  4948  					break
  4949  				}
  4950  			}
  4951  		case 302:
  4952  			if wireType != 0 {
  4953  				return fmt.Errorf("proto: wrong wireType = %d for field StressQPS", wireType)
  4954  			}
  4955  			m.StressQPS = 0
  4956  			for shift := uint(0); ; shift += 7 {
  4957  				if shift >= 64 {
  4958  					return ErrIntOverflowRpc
  4959  				}
  4960  				if iNdEx >= l {
  4961  					return io.ErrUnexpectedEOF
  4962  				}
  4963  				b := dAtA[iNdEx]
  4964  				iNdEx++
  4965  				m.StressQPS |= int32(b&0x7F) << shift
  4966  				if b < 0x80 {
  4967  					break
  4968  				}
  4969  			}
  4970  		default:
  4971  			iNdEx = preIndex
  4972  			skippy, err := skipRpc(dAtA[iNdEx:])
  4973  			if err != nil {
  4974  				return err
  4975  			}
  4976  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  4977  				return ErrInvalidLengthRpc
  4978  			}
  4979  			if (iNdEx + skippy) > l {
  4980  				return io.ErrUnexpectedEOF
  4981  			}
  4982  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  4983  			iNdEx += skippy
  4984  		}
  4985  	}
  4986  
  4987  	if iNdEx > l {
  4988  		return io.ErrUnexpectedEOF
  4989  	}
  4990  	return nil
  4991  }
  4992  func (m *Stresser) Unmarshal(dAtA []byte) error {
  4993  	l := len(dAtA)
  4994  	iNdEx := 0
  4995  	for iNdEx < l {
  4996  		preIndex := iNdEx
  4997  		var wire uint64
  4998  		for shift := uint(0); ; shift += 7 {
  4999  			if shift >= 64 {
  5000  				return ErrIntOverflowRpc
  5001  			}
  5002  			if iNdEx >= l {
  5003  				return io.ErrUnexpectedEOF
  5004  			}
  5005  			b := dAtA[iNdEx]
  5006  			iNdEx++
  5007  			wire |= uint64(b&0x7F) << shift
  5008  			if b < 0x80 {
  5009  				break
  5010  			}
  5011  		}
  5012  		fieldNum := int32(wire >> 3)
  5013  		wireType := int(wire & 0x7)
  5014  		if wireType == 4 {
  5015  			return fmt.Errorf("proto: Stresser: wiretype end group for non-group")
  5016  		}
  5017  		if fieldNum <= 0 {
  5018  			return fmt.Errorf("proto: Stresser: illegal tag %d (wire type %d)", fieldNum, wire)
  5019  		}
  5020  		switch fieldNum {
  5021  		case 1:
  5022  			if wireType != 2 {
  5023  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  5024  			}
  5025  			var stringLen uint64
  5026  			for shift := uint(0); ; shift += 7 {
  5027  				if shift >= 64 {
  5028  					return ErrIntOverflowRpc
  5029  				}
  5030  				if iNdEx >= l {
  5031  					return io.ErrUnexpectedEOF
  5032  				}
  5033  				b := dAtA[iNdEx]
  5034  				iNdEx++
  5035  				stringLen |= uint64(b&0x7F) << shift
  5036  				if b < 0x80 {
  5037  					break
  5038  				}
  5039  			}
  5040  			intStringLen := int(stringLen)
  5041  			if intStringLen < 0 {
  5042  				return ErrInvalidLengthRpc
  5043  			}
  5044  			postIndex := iNdEx + intStringLen
  5045  			if postIndex < 0 {
  5046  				return ErrInvalidLengthRpc
  5047  			}
  5048  			if postIndex > l {
  5049  				return io.ErrUnexpectedEOF
  5050  			}
  5051  			m.Type = string(dAtA[iNdEx:postIndex])
  5052  			iNdEx = postIndex
  5053  		case 2:
  5054  			if wireType != 1 {
  5055  				return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType)
  5056  			}
  5057  			var v uint64
  5058  			if (iNdEx + 8) > l {
  5059  				return io.ErrUnexpectedEOF
  5060  			}
  5061  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  5062  			iNdEx += 8
  5063  			m.Weight = float64(math.Float64frombits(v))
  5064  		default:
  5065  			iNdEx = preIndex
  5066  			skippy, err := skipRpc(dAtA[iNdEx:])
  5067  			if err != nil {
  5068  				return err
  5069  			}
  5070  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5071  				return ErrInvalidLengthRpc
  5072  			}
  5073  			if (iNdEx + skippy) > l {
  5074  				return io.ErrUnexpectedEOF
  5075  			}
  5076  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  5077  			iNdEx += skippy
  5078  		}
  5079  	}
  5080  
  5081  	if iNdEx > l {
  5082  		return io.ErrUnexpectedEOF
  5083  	}
  5084  	return nil
  5085  }
  5086  func (m *Etcd) Unmarshal(dAtA []byte) error {
  5087  	l := len(dAtA)
  5088  	iNdEx := 0
  5089  	for iNdEx < l {
  5090  		preIndex := iNdEx
  5091  		var wire uint64
  5092  		for shift := uint(0); ; shift += 7 {
  5093  			if shift >= 64 {
  5094  				return ErrIntOverflowRpc
  5095  			}
  5096  			if iNdEx >= l {
  5097  				return io.ErrUnexpectedEOF
  5098  			}
  5099  			b := dAtA[iNdEx]
  5100  			iNdEx++
  5101  			wire |= uint64(b&0x7F) << shift
  5102  			if b < 0x80 {
  5103  				break
  5104  			}
  5105  		}
  5106  		fieldNum := int32(wire >> 3)
  5107  		wireType := int(wire & 0x7)
  5108  		if wireType == 4 {
  5109  			return fmt.Errorf("proto: Etcd: wiretype end group for non-group")
  5110  		}
  5111  		if fieldNum <= 0 {
  5112  			return fmt.Errorf("proto: Etcd: illegal tag %d (wire type %d)", fieldNum, wire)
  5113  		}
  5114  		switch fieldNum {
  5115  		case 1:
  5116  			if wireType != 2 {
  5117  				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
  5118  			}
  5119  			var stringLen uint64
  5120  			for shift := uint(0); ; shift += 7 {
  5121  				if shift >= 64 {
  5122  					return ErrIntOverflowRpc
  5123  				}
  5124  				if iNdEx >= l {
  5125  					return io.ErrUnexpectedEOF
  5126  				}
  5127  				b := dAtA[iNdEx]
  5128  				iNdEx++
  5129  				stringLen |= uint64(b&0x7F) << shift
  5130  				if b < 0x80 {
  5131  					break
  5132  				}
  5133  			}
  5134  			intStringLen := int(stringLen)
  5135  			if intStringLen < 0 {
  5136  				return ErrInvalidLengthRpc
  5137  			}
  5138  			postIndex := iNdEx + intStringLen
  5139  			if postIndex < 0 {
  5140  				return ErrInvalidLengthRpc
  5141  			}
  5142  			if postIndex > l {
  5143  				return io.ErrUnexpectedEOF
  5144  			}
  5145  			m.Name = string(dAtA[iNdEx:postIndex])
  5146  			iNdEx = postIndex
  5147  		case 2:
  5148  			if wireType != 2 {
  5149  				return fmt.Errorf("proto: wrong wireType = %d for field DataDir", wireType)
  5150  			}
  5151  			var stringLen uint64
  5152  			for shift := uint(0); ; shift += 7 {
  5153  				if shift >= 64 {
  5154  					return ErrIntOverflowRpc
  5155  				}
  5156  				if iNdEx >= l {
  5157  					return io.ErrUnexpectedEOF
  5158  				}
  5159  				b := dAtA[iNdEx]
  5160  				iNdEx++
  5161  				stringLen |= uint64(b&0x7F) << shift
  5162  				if b < 0x80 {
  5163  					break
  5164  				}
  5165  			}
  5166  			intStringLen := int(stringLen)
  5167  			if intStringLen < 0 {
  5168  				return ErrInvalidLengthRpc
  5169  			}
  5170  			postIndex := iNdEx + intStringLen
  5171  			if postIndex < 0 {
  5172  				return ErrInvalidLengthRpc
  5173  			}
  5174  			if postIndex > l {
  5175  				return io.ErrUnexpectedEOF
  5176  			}
  5177  			m.DataDir = string(dAtA[iNdEx:postIndex])
  5178  			iNdEx = postIndex
  5179  		case 3:
  5180  			if wireType != 2 {
  5181  				return fmt.Errorf("proto: wrong wireType = %d for field WALDir", wireType)
  5182  			}
  5183  			var stringLen uint64
  5184  			for shift := uint(0); ; shift += 7 {
  5185  				if shift >= 64 {
  5186  					return ErrIntOverflowRpc
  5187  				}
  5188  				if iNdEx >= l {
  5189  					return io.ErrUnexpectedEOF
  5190  				}
  5191  				b := dAtA[iNdEx]
  5192  				iNdEx++
  5193  				stringLen |= uint64(b&0x7F) << shift
  5194  				if b < 0x80 {
  5195  					break
  5196  				}
  5197  			}
  5198  			intStringLen := int(stringLen)
  5199  			if intStringLen < 0 {
  5200  				return ErrInvalidLengthRpc
  5201  			}
  5202  			postIndex := iNdEx + intStringLen
  5203  			if postIndex < 0 {
  5204  				return ErrInvalidLengthRpc
  5205  			}
  5206  			if postIndex > l {
  5207  				return io.ErrUnexpectedEOF
  5208  			}
  5209  			m.WALDir = string(dAtA[iNdEx:postIndex])
  5210  			iNdEx = postIndex
  5211  		case 11:
  5212  			if wireType != 0 {
  5213  				return fmt.Errorf("proto: wrong wireType = %d for field HeartbeatIntervalMs", wireType)
  5214  			}
  5215  			m.HeartbeatIntervalMs = 0
  5216  			for shift := uint(0); ; shift += 7 {
  5217  				if shift >= 64 {
  5218  					return ErrIntOverflowRpc
  5219  				}
  5220  				if iNdEx >= l {
  5221  					return io.ErrUnexpectedEOF
  5222  				}
  5223  				b := dAtA[iNdEx]
  5224  				iNdEx++
  5225  				m.HeartbeatIntervalMs |= int64(b&0x7F) << shift
  5226  				if b < 0x80 {
  5227  					break
  5228  				}
  5229  			}
  5230  		case 12:
  5231  			if wireType != 0 {
  5232  				return fmt.Errorf("proto: wrong wireType = %d for field ElectionTimeoutMs", wireType)
  5233  			}
  5234  			m.ElectionTimeoutMs = 0
  5235  			for shift := uint(0); ; shift += 7 {
  5236  				if shift >= 64 {
  5237  					return ErrIntOverflowRpc
  5238  				}
  5239  				if iNdEx >= l {
  5240  					return io.ErrUnexpectedEOF
  5241  				}
  5242  				b := dAtA[iNdEx]
  5243  				iNdEx++
  5244  				m.ElectionTimeoutMs |= int64(b&0x7F) << shift
  5245  				if b < 0x80 {
  5246  					break
  5247  				}
  5248  			}
  5249  		case 21:
  5250  			if wireType != 2 {
  5251  				return fmt.Errorf("proto: wrong wireType = %d for field ListenClientURLs", wireType)
  5252  			}
  5253  			var stringLen uint64
  5254  			for shift := uint(0); ; shift += 7 {
  5255  				if shift >= 64 {
  5256  					return ErrIntOverflowRpc
  5257  				}
  5258  				if iNdEx >= l {
  5259  					return io.ErrUnexpectedEOF
  5260  				}
  5261  				b := dAtA[iNdEx]
  5262  				iNdEx++
  5263  				stringLen |= uint64(b&0x7F) << shift
  5264  				if b < 0x80 {
  5265  					break
  5266  				}
  5267  			}
  5268  			intStringLen := int(stringLen)
  5269  			if intStringLen < 0 {
  5270  				return ErrInvalidLengthRpc
  5271  			}
  5272  			postIndex := iNdEx + intStringLen
  5273  			if postIndex < 0 {
  5274  				return ErrInvalidLengthRpc
  5275  			}
  5276  			if postIndex > l {
  5277  				return io.ErrUnexpectedEOF
  5278  			}
  5279  			m.ListenClientURLs = append(m.ListenClientURLs, string(dAtA[iNdEx:postIndex]))
  5280  			iNdEx = postIndex
  5281  		case 22:
  5282  			if wireType != 2 {
  5283  				return fmt.Errorf("proto: wrong wireType = %d for field AdvertiseClientURLs", wireType)
  5284  			}
  5285  			var stringLen uint64
  5286  			for shift := uint(0); ; shift += 7 {
  5287  				if shift >= 64 {
  5288  					return ErrIntOverflowRpc
  5289  				}
  5290  				if iNdEx >= l {
  5291  					return io.ErrUnexpectedEOF
  5292  				}
  5293  				b := dAtA[iNdEx]
  5294  				iNdEx++
  5295  				stringLen |= uint64(b&0x7F) << shift
  5296  				if b < 0x80 {
  5297  					break
  5298  				}
  5299  			}
  5300  			intStringLen := int(stringLen)
  5301  			if intStringLen < 0 {
  5302  				return ErrInvalidLengthRpc
  5303  			}
  5304  			postIndex := iNdEx + intStringLen
  5305  			if postIndex < 0 {
  5306  				return ErrInvalidLengthRpc
  5307  			}
  5308  			if postIndex > l {
  5309  				return io.ErrUnexpectedEOF
  5310  			}
  5311  			m.AdvertiseClientURLs = append(m.AdvertiseClientURLs, string(dAtA[iNdEx:postIndex]))
  5312  			iNdEx = postIndex
  5313  		case 23:
  5314  			if wireType != 0 {
  5315  				return fmt.Errorf("proto: wrong wireType = %d for field ClientAutoTLS", wireType)
  5316  			}
  5317  			var v int
  5318  			for shift := uint(0); ; shift += 7 {
  5319  				if shift >= 64 {
  5320  					return ErrIntOverflowRpc
  5321  				}
  5322  				if iNdEx >= l {
  5323  					return io.ErrUnexpectedEOF
  5324  				}
  5325  				b := dAtA[iNdEx]
  5326  				iNdEx++
  5327  				v |= int(b&0x7F) << shift
  5328  				if b < 0x80 {
  5329  					break
  5330  				}
  5331  			}
  5332  			m.ClientAutoTLS = bool(v != 0)
  5333  		case 24:
  5334  			if wireType != 0 {
  5335  				return fmt.Errorf("proto: wrong wireType = %d for field ClientCertAuth", wireType)
  5336  			}
  5337  			var v int
  5338  			for shift := uint(0); ; shift += 7 {
  5339  				if shift >= 64 {
  5340  					return ErrIntOverflowRpc
  5341  				}
  5342  				if iNdEx >= l {
  5343  					return io.ErrUnexpectedEOF
  5344  				}
  5345  				b := dAtA[iNdEx]
  5346  				iNdEx++
  5347  				v |= int(b&0x7F) << shift
  5348  				if b < 0x80 {
  5349  					break
  5350  				}
  5351  			}
  5352  			m.ClientCertAuth = bool(v != 0)
  5353  		case 25:
  5354  			if wireType != 2 {
  5355  				return fmt.Errorf("proto: wrong wireType = %d for field ClientCertFile", wireType)
  5356  			}
  5357  			var stringLen uint64
  5358  			for shift := uint(0); ; shift += 7 {
  5359  				if shift >= 64 {
  5360  					return ErrIntOverflowRpc
  5361  				}
  5362  				if iNdEx >= l {
  5363  					return io.ErrUnexpectedEOF
  5364  				}
  5365  				b := dAtA[iNdEx]
  5366  				iNdEx++
  5367  				stringLen |= uint64(b&0x7F) << shift
  5368  				if b < 0x80 {
  5369  					break
  5370  				}
  5371  			}
  5372  			intStringLen := int(stringLen)
  5373  			if intStringLen < 0 {
  5374  				return ErrInvalidLengthRpc
  5375  			}
  5376  			postIndex := iNdEx + intStringLen
  5377  			if postIndex < 0 {
  5378  				return ErrInvalidLengthRpc
  5379  			}
  5380  			if postIndex > l {
  5381  				return io.ErrUnexpectedEOF
  5382  			}
  5383  			m.ClientCertFile = string(dAtA[iNdEx:postIndex])
  5384  			iNdEx = postIndex
  5385  		case 26:
  5386  			if wireType != 2 {
  5387  				return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyFile", wireType)
  5388  			}
  5389  			var stringLen uint64
  5390  			for shift := uint(0); ; shift += 7 {
  5391  				if shift >= 64 {
  5392  					return ErrIntOverflowRpc
  5393  				}
  5394  				if iNdEx >= l {
  5395  					return io.ErrUnexpectedEOF
  5396  				}
  5397  				b := dAtA[iNdEx]
  5398  				iNdEx++
  5399  				stringLen |= uint64(b&0x7F) << shift
  5400  				if b < 0x80 {
  5401  					break
  5402  				}
  5403  			}
  5404  			intStringLen := int(stringLen)
  5405  			if intStringLen < 0 {
  5406  				return ErrInvalidLengthRpc
  5407  			}
  5408  			postIndex := iNdEx + intStringLen
  5409  			if postIndex < 0 {
  5410  				return ErrInvalidLengthRpc
  5411  			}
  5412  			if postIndex > l {
  5413  				return io.ErrUnexpectedEOF
  5414  			}
  5415  			m.ClientKeyFile = string(dAtA[iNdEx:postIndex])
  5416  			iNdEx = postIndex
  5417  		case 27:
  5418  			if wireType != 2 {
  5419  				return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAFile", wireType)
  5420  			}
  5421  			var stringLen uint64
  5422  			for shift := uint(0); ; shift += 7 {
  5423  				if shift >= 64 {
  5424  					return ErrIntOverflowRpc
  5425  				}
  5426  				if iNdEx >= l {
  5427  					return io.ErrUnexpectedEOF
  5428  				}
  5429  				b := dAtA[iNdEx]
  5430  				iNdEx++
  5431  				stringLen |= uint64(b&0x7F) << shift
  5432  				if b < 0x80 {
  5433  					break
  5434  				}
  5435  			}
  5436  			intStringLen := int(stringLen)
  5437  			if intStringLen < 0 {
  5438  				return ErrInvalidLengthRpc
  5439  			}
  5440  			postIndex := iNdEx + intStringLen
  5441  			if postIndex < 0 {
  5442  				return ErrInvalidLengthRpc
  5443  			}
  5444  			if postIndex > l {
  5445  				return io.ErrUnexpectedEOF
  5446  			}
  5447  			m.ClientTrustedCAFile = string(dAtA[iNdEx:postIndex])
  5448  			iNdEx = postIndex
  5449  		case 31:
  5450  			if wireType != 2 {
  5451  				return fmt.Errorf("proto: wrong wireType = %d for field ListenPeerURLs", wireType)
  5452  			}
  5453  			var stringLen uint64
  5454  			for shift := uint(0); ; shift += 7 {
  5455  				if shift >= 64 {
  5456  					return ErrIntOverflowRpc
  5457  				}
  5458  				if iNdEx >= l {
  5459  					return io.ErrUnexpectedEOF
  5460  				}
  5461  				b := dAtA[iNdEx]
  5462  				iNdEx++
  5463  				stringLen |= uint64(b&0x7F) << shift
  5464  				if b < 0x80 {
  5465  					break
  5466  				}
  5467  			}
  5468  			intStringLen := int(stringLen)
  5469  			if intStringLen < 0 {
  5470  				return ErrInvalidLengthRpc
  5471  			}
  5472  			postIndex := iNdEx + intStringLen
  5473  			if postIndex < 0 {
  5474  				return ErrInvalidLengthRpc
  5475  			}
  5476  			if postIndex > l {
  5477  				return io.ErrUnexpectedEOF
  5478  			}
  5479  			m.ListenPeerURLs = append(m.ListenPeerURLs, string(dAtA[iNdEx:postIndex]))
  5480  			iNdEx = postIndex
  5481  		case 32:
  5482  			if wireType != 2 {
  5483  				return fmt.Errorf("proto: wrong wireType = %d for field AdvertisePeerURLs", wireType)
  5484  			}
  5485  			var stringLen uint64
  5486  			for shift := uint(0); ; shift += 7 {
  5487  				if shift >= 64 {
  5488  					return ErrIntOverflowRpc
  5489  				}
  5490  				if iNdEx >= l {
  5491  					return io.ErrUnexpectedEOF
  5492  				}
  5493  				b := dAtA[iNdEx]
  5494  				iNdEx++
  5495  				stringLen |= uint64(b&0x7F) << shift
  5496  				if b < 0x80 {
  5497  					break
  5498  				}
  5499  			}
  5500  			intStringLen := int(stringLen)
  5501  			if intStringLen < 0 {
  5502  				return ErrInvalidLengthRpc
  5503  			}
  5504  			postIndex := iNdEx + intStringLen
  5505  			if postIndex < 0 {
  5506  				return ErrInvalidLengthRpc
  5507  			}
  5508  			if postIndex > l {
  5509  				return io.ErrUnexpectedEOF
  5510  			}
  5511  			m.AdvertisePeerURLs = append(m.AdvertisePeerURLs, string(dAtA[iNdEx:postIndex]))
  5512  			iNdEx = postIndex
  5513  		case 33:
  5514  			if wireType != 0 {
  5515  				return fmt.Errorf("proto: wrong wireType = %d for field PeerAutoTLS", wireType)
  5516  			}
  5517  			var v int
  5518  			for shift := uint(0); ; shift += 7 {
  5519  				if shift >= 64 {
  5520  					return ErrIntOverflowRpc
  5521  				}
  5522  				if iNdEx >= l {
  5523  					return io.ErrUnexpectedEOF
  5524  				}
  5525  				b := dAtA[iNdEx]
  5526  				iNdEx++
  5527  				v |= int(b&0x7F) << shift
  5528  				if b < 0x80 {
  5529  					break
  5530  				}
  5531  			}
  5532  			m.PeerAutoTLS = bool(v != 0)
  5533  		case 34:
  5534  			if wireType != 0 {
  5535  				return fmt.Errorf("proto: wrong wireType = %d for field PeerClientCertAuth", wireType)
  5536  			}
  5537  			var v int
  5538  			for shift := uint(0); ; shift += 7 {
  5539  				if shift >= 64 {
  5540  					return ErrIntOverflowRpc
  5541  				}
  5542  				if iNdEx >= l {
  5543  					return io.ErrUnexpectedEOF
  5544  				}
  5545  				b := dAtA[iNdEx]
  5546  				iNdEx++
  5547  				v |= int(b&0x7F) << shift
  5548  				if b < 0x80 {
  5549  					break
  5550  				}
  5551  			}
  5552  			m.PeerClientCertAuth = bool(v != 0)
  5553  		case 35:
  5554  			if wireType != 2 {
  5555  				return fmt.Errorf("proto: wrong wireType = %d for field PeerCertFile", wireType)
  5556  			}
  5557  			var stringLen uint64
  5558  			for shift := uint(0); ; shift += 7 {
  5559  				if shift >= 64 {
  5560  					return ErrIntOverflowRpc
  5561  				}
  5562  				if iNdEx >= l {
  5563  					return io.ErrUnexpectedEOF
  5564  				}
  5565  				b := dAtA[iNdEx]
  5566  				iNdEx++
  5567  				stringLen |= uint64(b&0x7F) << shift
  5568  				if b < 0x80 {
  5569  					break
  5570  				}
  5571  			}
  5572  			intStringLen := int(stringLen)
  5573  			if intStringLen < 0 {
  5574  				return ErrInvalidLengthRpc
  5575  			}
  5576  			postIndex := iNdEx + intStringLen
  5577  			if postIndex < 0 {
  5578  				return ErrInvalidLengthRpc
  5579  			}
  5580  			if postIndex > l {
  5581  				return io.ErrUnexpectedEOF
  5582  			}
  5583  			m.PeerCertFile = string(dAtA[iNdEx:postIndex])
  5584  			iNdEx = postIndex
  5585  		case 36:
  5586  			if wireType != 2 {
  5587  				return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyFile", wireType)
  5588  			}
  5589  			var stringLen uint64
  5590  			for shift := uint(0); ; shift += 7 {
  5591  				if shift >= 64 {
  5592  					return ErrIntOverflowRpc
  5593  				}
  5594  				if iNdEx >= l {
  5595  					return io.ErrUnexpectedEOF
  5596  				}
  5597  				b := dAtA[iNdEx]
  5598  				iNdEx++
  5599  				stringLen |= uint64(b&0x7F) << shift
  5600  				if b < 0x80 {
  5601  					break
  5602  				}
  5603  			}
  5604  			intStringLen := int(stringLen)
  5605  			if intStringLen < 0 {
  5606  				return ErrInvalidLengthRpc
  5607  			}
  5608  			postIndex := iNdEx + intStringLen
  5609  			if postIndex < 0 {
  5610  				return ErrInvalidLengthRpc
  5611  			}
  5612  			if postIndex > l {
  5613  				return io.ErrUnexpectedEOF
  5614  			}
  5615  			m.PeerKeyFile = string(dAtA[iNdEx:postIndex])
  5616  			iNdEx = postIndex
  5617  		case 37:
  5618  			if wireType != 2 {
  5619  				return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAFile", wireType)
  5620  			}
  5621  			var stringLen uint64
  5622  			for shift := uint(0); ; shift += 7 {
  5623  				if shift >= 64 {
  5624  					return ErrIntOverflowRpc
  5625  				}
  5626  				if iNdEx >= l {
  5627  					return io.ErrUnexpectedEOF
  5628  				}
  5629  				b := dAtA[iNdEx]
  5630  				iNdEx++
  5631  				stringLen |= uint64(b&0x7F) << shift
  5632  				if b < 0x80 {
  5633  					break
  5634  				}
  5635  			}
  5636  			intStringLen := int(stringLen)
  5637  			if intStringLen < 0 {
  5638  				return ErrInvalidLengthRpc
  5639  			}
  5640  			postIndex := iNdEx + intStringLen
  5641  			if postIndex < 0 {
  5642  				return ErrInvalidLengthRpc
  5643  			}
  5644  			if postIndex > l {
  5645  				return io.ErrUnexpectedEOF
  5646  			}
  5647  			m.PeerTrustedCAFile = string(dAtA[iNdEx:postIndex])
  5648  			iNdEx = postIndex
  5649  		case 41:
  5650  			if wireType != 2 {
  5651  				return fmt.Errorf("proto: wrong wireType = %d for field InitialCluster", wireType)
  5652  			}
  5653  			var stringLen uint64
  5654  			for shift := uint(0); ; shift += 7 {
  5655  				if shift >= 64 {
  5656  					return ErrIntOverflowRpc
  5657  				}
  5658  				if iNdEx >= l {
  5659  					return io.ErrUnexpectedEOF
  5660  				}
  5661  				b := dAtA[iNdEx]
  5662  				iNdEx++
  5663  				stringLen |= uint64(b&0x7F) << shift
  5664  				if b < 0x80 {
  5665  					break
  5666  				}
  5667  			}
  5668  			intStringLen := int(stringLen)
  5669  			if intStringLen < 0 {
  5670  				return ErrInvalidLengthRpc
  5671  			}
  5672  			postIndex := iNdEx + intStringLen
  5673  			if postIndex < 0 {
  5674  				return ErrInvalidLengthRpc
  5675  			}
  5676  			if postIndex > l {
  5677  				return io.ErrUnexpectedEOF
  5678  			}
  5679  			m.InitialCluster = string(dAtA[iNdEx:postIndex])
  5680  			iNdEx = postIndex
  5681  		case 42:
  5682  			if wireType != 2 {
  5683  				return fmt.Errorf("proto: wrong wireType = %d for field InitialClusterState", wireType)
  5684  			}
  5685  			var stringLen uint64
  5686  			for shift := uint(0); ; shift += 7 {
  5687  				if shift >= 64 {
  5688  					return ErrIntOverflowRpc
  5689  				}
  5690  				if iNdEx >= l {
  5691  					return io.ErrUnexpectedEOF
  5692  				}
  5693  				b := dAtA[iNdEx]
  5694  				iNdEx++
  5695  				stringLen |= uint64(b&0x7F) << shift
  5696  				if b < 0x80 {
  5697  					break
  5698  				}
  5699  			}
  5700  			intStringLen := int(stringLen)
  5701  			if intStringLen < 0 {
  5702  				return ErrInvalidLengthRpc
  5703  			}
  5704  			postIndex := iNdEx + intStringLen
  5705  			if postIndex < 0 {
  5706  				return ErrInvalidLengthRpc
  5707  			}
  5708  			if postIndex > l {
  5709  				return io.ErrUnexpectedEOF
  5710  			}
  5711  			m.InitialClusterState = string(dAtA[iNdEx:postIndex])
  5712  			iNdEx = postIndex
  5713  		case 43:
  5714  			if wireType != 2 {
  5715  				return fmt.Errorf("proto: wrong wireType = %d for field InitialClusterToken", wireType)
  5716  			}
  5717  			var stringLen uint64
  5718  			for shift := uint(0); ; shift += 7 {
  5719  				if shift >= 64 {
  5720  					return ErrIntOverflowRpc
  5721  				}
  5722  				if iNdEx >= l {
  5723  					return io.ErrUnexpectedEOF
  5724  				}
  5725  				b := dAtA[iNdEx]
  5726  				iNdEx++
  5727  				stringLen |= uint64(b&0x7F) << shift
  5728  				if b < 0x80 {
  5729  					break
  5730  				}
  5731  			}
  5732  			intStringLen := int(stringLen)
  5733  			if intStringLen < 0 {
  5734  				return ErrInvalidLengthRpc
  5735  			}
  5736  			postIndex := iNdEx + intStringLen
  5737  			if postIndex < 0 {
  5738  				return ErrInvalidLengthRpc
  5739  			}
  5740  			if postIndex > l {
  5741  				return io.ErrUnexpectedEOF
  5742  			}
  5743  			m.InitialClusterToken = string(dAtA[iNdEx:postIndex])
  5744  			iNdEx = postIndex
  5745  		case 51:
  5746  			if wireType != 0 {
  5747  				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotCount", wireType)
  5748  			}
  5749  			m.SnapshotCount = 0
  5750  			for shift := uint(0); ; shift += 7 {
  5751  				if shift >= 64 {
  5752  					return ErrIntOverflowRpc
  5753  				}
  5754  				if iNdEx >= l {
  5755  					return io.ErrUnexpectedEOF
  5756  				}
  5757  				b := dAtA[iNdEx]
  5758  				iNdEx++
  5759  				m.SnapshotCount |= int64(b&0x7F) << shift
  5760  				if b < 0x80 {
  5761  					break
  5762  				}
  5763  			}
  5764  		case 52:
  5765  			if wireType != 0 {
  5766  				return fmt.Errorf("proto: wrong wireType = %d for field QuotaBackendBytes", wireType)
  5767  			}
  5768  			m.QuotaBackendBytes = 0
  5769  			for shift := uint(0); ; shift += 7 {
  5770  				if shift >= 64 {
  5771  					return ErrIntOverflowRpc
  5772  				}
  5773  				if iNdEx >= l {
  5774  					return io.ErrUnexpectedEOF
  5775  				}
  5776  				b := dAtA[iNdEx]
  5777  				iNdEx++
  5778  				m.QuotaBackendBytes |= int64(b&0x7F) << shift
  5779  				if b < 0x80 {
  5780  					break
  5781  				}
  5782  			}
  5783  		case 63:
  5784  			if wireType != 0 {
  5785  				return fmt.Errorf("proto: wrong wireType = %d for field PreVote", wireType)
  5786  			}
  5787  			var v int
  5788  			for shift := uint(0); ; shift += 7 {
  5789  				if shift >= 64 {
  5790  					return ErrIntOverflowRpc
  5791  				}
  5792  				if iNdEx >= l {
  5793  					return io.ErrUnexpectedEOF
  5794  				}
  5795  				b := dAtA[iNdEx]
  5796  				iNdEx++
  5797  				v |= int(b&0x7F) << shift
  5798  				if b < 0x80 {
  5799  					break
  5800  				}
  5801  			}
  5802  			m.PreVote = bool(v != 0)
  5803  		case 64:
  5804  			if wireType != 0 {
  5805  				return fmt.Errorf("proto: wrong wireType = %d for field InitialCorruptCheck", wireType)
  5806  			}
  5807  			var v int
  5808  			for shift := uint(0); ; shift += 7 {
  5809  				if shift >= 64 {
  5810  					return ErrIntOverflowRpc
  5811  				}
  5812  				if iNdEx >= l {
  5813  					return io.ErrUnexpectedEOF
  5814  				}
  5815  				b := dAtA[iNdEx]
  5816  				iNdEx++
  5817  				v |= int(b&0x7F) << shift
  5818  				if b < 0x80 {
  5819  					break
  5820  				}
  5821  			}
  5822  			m.InitialCorruptCheck = bool(v != 0)
  5823  		case 71:
  5824  			if wireType != 2 {
  5825  				return fmt.Errorf("proto: wrong wireType = %d for field Logger", wireType)
  5826  			}
  5827  			var stringLen uint64
  5828  			for shift := uint(0); ; shift += 7 {
  5829  				if shift >= 64 {
  5830  					return ErrIntOverflowRpc
  5831  				}
  5832  				if iNdEx >= l {
  5833  					return io.ErrUnexpectedEOF
  5834  				}
  5835  				b := dAtA[iNdEx]
  5836  				iNdEx++
  5837  				stringLen |= uint64(b&0x7F) << shift
  5838  				if b < 0x80 {
  5839  					break
  5840  				}
  5841  			}
  5842  			intStringLen := int(stringLen)
  5843  			if intStringLen < 0 {
  5844  				return ErrInvalidLengthRpc
  5845  			}
  5846  			postIndex := iNdEx + intStringLen
  5847  			if postIndex < 0 {
  5848  				return ErrInvalidLengthRpc
  5849  			}
  5850  			if postIndex > l {
  5851  				return io.ErrUnexpectedEOF
  5852  			}
  5853  			m.Logger = string(dAtA[iNdEx:postIndex])
  5854  			iNdEx = postIndex
  5855  		case 72:
  5856  			if wireType != 2 {
  5857  				return fmt.Errorf("proto: wrong wireType = %d for field LogOutputs", wireType)
  5858  			}
  5859  			var stringLen uint64
  5860  			for shift := uint(0); ; shift += 7 {
  5861  				if shift >= 64 {
  5862  					return ErrIntOverflowRpc
  5863  				}
  5864  				if iNdEx >= l {
  5865  					return io.ErrUnexpectedEOF
  5866  				}
  5867  				b := dAtA[iNdEx]
  5868  				iNdEx++
  5869  				stringLen |= uint64(b&0x7F) << shift
  5870  				if b < 0x80 {
  5871  					break
  5872  				}
  5873  			}
  5874  			intStringLen := int(stringLen)
  5875  			if intStringLen < 0 {
  5876  				return ErrInvalidLengthRpc
  5877  			}
  5878  			postIndex := iNdEx + intStringLen
  5879  			if postIndex < 0 {
  5880  				return ErrInvalidLengthRpc
  5881  			}
  5882  			if postIndex > l {
  5883  				return io.ErrUnexpectedEOF
  5884  			}
  5885  			m.LogOutputs = append(m.LogOutputs, string(dAtA[iNdEx:postIndex]))
  5886  			iNdEx = postIndex
  5887  		case 73:
  5888  			if wireType != 2 {
  5889  				return fmt.Errorf("proto: wrong wireType = %d for field LogLevel", wireType)
  5890  			}
  5891  			var stringLen uint64
  5892  			for shift := uint(0); ; shift += 7 {
  5893  				if shift >= 64 {
  5894  					return ErrIntOverflowRpc
  5895  				}
  5896  				if iNdEx >= l {
  5897  					return io.ErrUnexpectedEOF
  5898  				}
  5899  				b := dAtA[iNdEx]
  5900  				iNdEx++
  5901  				stringLen |= uint64(b&0x7F) << shift
  5902  				if b < 0x80 {
  5903  					break
  5904  				}
  5905  			}
  5906  			intStringLen := int(stringLen)
  5907  			if intStringLen < 0 {
  5908  				return ErrInvalidLengthRpc
  5909  			}
  5910  			postIndex := iNdEx + intStringLen
  5911  			if postIndex < 0 {
  5912  				return ErrInvalidLengthRpc
  5913  			}
  5914  			if postIndex > l {
  5915  				return io.ErrUnexpectedEOF
  5916  			}
  5917  			m.LogLevel = string(dAtA[iNdEx:postIndex])
  5918  			iNdEx = postIndex
  5919  		case 81:
  5920  			if wireType != 0 {
  5921  				return fmt.Errorf("proto: wrong wireType = %d for field SocketReuseAddress", wireType)
  5922  			}
  5923  			var v int
  5924  			for shift := uint(0); ; shift += 7 {
  5925  				if shift >= 64 {
  5926  					return ErrIntOverflowRpc
  5927  				}
  5928  				if iNdEx >= l {
  5929  					return io.ErrUnexpectedEOF
  5930  				}
  5931  				b := dAtA[iNdEx]
  5932  				iNdEx++
  5933  				v |= int(b&0x7F) << shift
  5934  				if b < 0x80 {
  5935  					break
  5936  				}
  5937  			}
  5938  			m.SocketReuseAddress = bool(v != 0)
  5939  		case 82:
  5940  			if wireType != 0 {
  5941  				return fmt.Errorf("proto: wrong wireType = %d for field SocketReusePort", wireType)
  5942  			}
  5943  			var v int
  5944  			for shift := uint(0); ; shift += 7 {
  5945  				if shift >= 64 {
  5946  					return ErrIntOverflowRpc
  5947  				}
  5948  				if iNdEx >= l {
  5949  					return io.ErrUnexpectedEOF
  5950  				}
  5951  				b := dAtA[iNdEx]
  5952  				iNdEx++
  5953  				v |= int(b&0x7F) << shift
  5954  				if b < 0x80 {
  5955  					break
  5956  				}
  5957  			}
  5958  			m.SocketReusePort = bool(v != 0)
  5959  		default:
  5960  			iNdEx = preIndex
  5961  			skippy, err := skipRpc(dAtA[iNdEx:])
  5962  			if err != nil {
  5963  				return err
  5964  			}
  5965  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  5966  				return ErrInvalidLengthRpc
  5967  			}
  5968  			if (iNdEx + skippy) > l {
  5969  				return io.ErrUnexpectedEOF
  5970  			}
  5971  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  5972  			iNdEx += skippy
  5973  		}
  5974  	}
  5975  
  5976  	if iNdEx > l {
  5977  		return io.ErrUnexpectedEOF
  5978  	}
  5979  	return nil
  5980  }
  5981  func skipRpc(dAtA []byte) (n int, err error) {
  5982  	l := len(dAtA)
  5983  	iNdEx := 0
  5984  	depth := 0
  5985  	for iNdEx < l {
  5986  		var wire uint64
  5987  		for shift := uint(0); ; shift += 7 {
  5988  			if shift >= 64 {
  5989  				return 0, ErrIntOverflowRpc
  5990  			}
  5991  			if iNdEx >= l {
  5992  				return 0, io.ErrUnexpectedEOF
  5993  			}
  5994  			b := dAtA[iNdEx]
  5995  			iNdEx++
  5996  			wire |= (uint64(b) & 0x7F) << shift
  5997  			if b < 0x80 {
  5998  				break
  5999  			}
  6000  		}
  6001  		wireType := int(wire & 0x7)
  6002  		switch wireType {
  6003  		case 0:
  6004  			for shift := uint(0); ; shift += 7 {
  6005  				if shift >= 64 {
  6006  					return 0, ErrIntOverflowRpc
  6007  				}
  6008  				if iNdEx >= l {
  6009  					return 0, io.ErrUnexpectedEOF
  6010  				}
  6011  				iNdEx++
  6012  				if dAtA[iNdEx-1] < 0x80 {
  6013  					break
  6014  				}
  6015  			}
  6016  		case 1:
  6017  			iNdEx += 8
  6018  		case 2:
  6019  			var length int
  6020  			for shift := uint(0); ; shift += 7 {
  6021  				if shift >= 64 {
  6022  					return 0, ErrIntOverflowRpc
  6023  				}
  6024  				if iNdEx >= l {
  6025  					return 0, io.ErrUnexpectedEOF
  6026  				}
  6027  				b := dAtA[iNdEx]
  6028  				iNdEx++
  6029  				length |= (int(b) & 0x7F) << shift
  6030  				if b < 0x80 {
  6031  					break
  6032  				}
  6033  			}
  6034  			if length < 0 {
  6035  				return 0, ErrInvalidLengthRpc
  6036  			}
  6037  			iNdEx += length
  6038  		case 3:
  6039  			depth++
  6040  		case 4:
  6041  			if depth == 0 {
  6042  				return 0, ErrUnexpectedEndOfGroupRpc
  6043  			}
  6044  			depth--
  6045  		case 5:
  6046  			iNdEx += 4
  6047  		default:
  6048  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  6049  		}
  6050  		if iNdEx < 0 {
  6051  			return 0, ErrInvalidLengthRpc
  6052  		}
  6053  		if depth == 0 {
  6054  			return iNdEx, nil
  6055  		}
  6056  	}
  6057  	return 0, io.ErrUnexpectedEOF
  6058  }
  6059  
  6060  var (
  6061  	ErrInvalidLengthRpc        = fmt.Errorf("proto: negative length found during unmarshaling")
  6062  	ErrIntOverflowRpc          = fmt.Errorf("proto: integer overflow")
  6063  	ErrUnexpectedEndOfGroupRpc = fmt.Errorf("proto: unexpected end of group")
  6064  )