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