Signed-off-by: Vincent Demeester <vincent@sbr.pm>
| ... | ... |
@@ -147,7 +147,7 @@ clone git github.com/docker/containerd 52ef1ceb4b660c42cf4ea9013180a5663968d4c7 |
| 147 | 147 |
clone git github.com/tonistiigi/fifo 8c56881ce5e63e19e2dfc495c8af0fb90916467d |
| 148 | 148 |
|
| 149 | 149 |
# cluster |
| 150 |
-clone git github.com/docker/swarmkit 72981f443024da2c57d54b915eae0477be6dada5 |
|
| 150 |
+clone git github.com/docker/swarmkit 4dfc88ccce14ced6f0a6ea82d46dca004c6de0e2 |
|
| 151 | 151 |
clone git github.com/golang/mock bd3c8e81be01eef76d4b503f5e687d2d1354d2d9 |
| 152 | 152 |
clone git github.com/gogo/protobuf v0.3 |
| 153 | 153 |
clone git github.com/cloudflare/cfssl 7fb22c8cba7ecaf98e4082d22d65800cf45e042a |
| ... | ... |
@@ -1,3 +1,3 @@ |
| 1 | 1 |
package api |
| 2 | 2 |
|
| 3 |
-//go:generate protoc -I.:../protobuf:../vendor:../vendor/github.com/gogo/protobuf:../vendor/github.com/gogo/protobuf/protobuf --gogoswarm_out=plugins=grpc+deepcopy+raftproxy+authenticatedwrapper,import_path=github.com/docker/swarmkit/api,Mgogoproto/gogo.proto=github.com/gogo/protobuf/gogoproto,Mtimestamp/timestamp.proto=github.com/docker/swarmkit/api/timestamp,Mduration/duration.proto=github.com/docker/swarmkit/api/duration,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor,Mplugin/plugin.proto=github.com/docker/swarmkit/protobuf/plugin:. types.proto specs.proto objects.proto control.proto dispatcher.proto ca.proto snapshot.proto raft.proto health.proto resource.proto |
|
| 3 |
+//go:generate protoc -I.:../protobuf:../vendor:../vendor/github.com/gogo/protobuf --gogoswarm_out=plugins=grpc+deepcopy+raftproxy+authenticatedwrapper,import_path=github.com/docker/swarmkit/api,Mgogoproto/gogo.proto=github.com/gogo/protobuf/gogoproto,Mtimestamp/timestamp.proto=github.com/docker/swarmkit/api/timestamp,Mduration/duration.proto=github.com/docker/swarmkit/api/duration,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor,Mplugin/plugin.proto=github.com/docker/swarmkit/protobuf/plugin:. types.proto specs.proto objects.proto control.proto dispatcher.proto ca.proto snapshot.proto raft.proto health.proto resource.proto |
| ... | ... |
@@ -60,6 +60,7 @@ |
| 60 | 60 |
SecretReference |
| 61 | 61 |
BlacklistedCertificate |
| 62 | 62 |
HealthConfig |
| 63 |
+ MaybeEncryptedRecord |
|
| 63 | 64 |
NodeSpec |
| 64 | 65 |
ServiceSpec |
| 65 | 66 |
ReplicatedService |
| ... | ... |
@@ -650,34 +651,28 @@ func (EncryptionKey_Algorithm) EnumDescriptor() ([]byte, []int) {
|
| 650 | 650 |
return fileDescriptorTypes, []int{37, 0}
|
| 651 | 651 |
} |
| 652 | 652 |
|
| 653 |
-// Mode specifies how this secret should be exposed to the task. |
|
| 654 |
-type SecretReference_Mode int32 |
|
| 653 |
+type MaybeEncryptedRecord_Algorithm int32 |
|
| 655 | 654 |
|
| 656 | 655 |
const ( |
| 657 |
- // SYSTEM means that it is not exposed inside to a task at all, but |
|
| 658 |
- // only available via direct access, usually at the agent-level |
|
| 659 |
- SecretReference_SYSTEM SecretReference_Mode = 0 |
|
| 660 |
- // FILE means that it will be exposed to the task as a file |
|
| 661 |
- SecretReference_FILE SecretReference_Mode = 1 |
|
| 662 |
- // ENV means that it will be exposed to the task as an environment variable |
|
| 663 |
- SecretReference_ENV SecretReference_Mode = 2 |
|
| 656 |
+ MaybeEncryptedRecord_NotEncrypted MaybeEncryptedRecord_Algorithm = 0 |
|
| 657 |
+ MaybeEncryptedRecord_NACLSecretboxSalsa20Poly1305 MaybeEncryptedRecord_Algorithm = 1 |
|
| 664 | 658 |
) |
| 665 | 659 |
|
| 666 |
-var SecretReference_Mode_name = map[int32]string{
|
|
| 667 |
- 0: "SYSTEM", |
|
| 668 |
- 1: "FILE", |
|
| 669 |
- 2: "ENV", |
|
| 660 |
+var MaybeEncryptedRecord_Algorithm_name = map[int32]string{
|
|
| 661 |
+ 0: "NONE", |
|
| 662 |
+ 1: "SECRETBOX_SALSA20_POLY1305", |
|
| 670 | 663 |
} |
| 671 |
-var SecretReference_Mode_value = map[string]int32{
|
|
| 672 |
- "SYSTEM": 0, |
|
| 673 |
- "FILE": 1, |
|
| 674 |
- "ENV": 2, |
|
| 664 |
+var MaybeEncryptedRecord_Algorithm_value = map[string]int32{
|
|
| 665 |
+ "NONE": 0, |
|
| 666 |
+ "SECRETBOX_SALSA20_POLY1305": 1, |
|
| 675 | 667 |
} |
| 676 | 668 |
|
| 677 |
-func (x SecretReference_Mode) String() string {
|
|
| 678 |
- return proto.EnumName(SecretReference_Mode_name, int32(x)) |
|
| 669 |
+func (x MaybeEncryptedRecord_Algorithm) String() string {
|
|
| 670 |
+ return proto.EnumName(MaybeEncryptedRecord_Algorithm_name, int32(x)) |
|
| 671 |
+} |
|
| 672 |
+func (MaybeEncryptedRecord_Algorithm) EnumDescriptor() ([]byte, []int) {
|
|
| 673 |
+ return fileDescriptorTypes, []int{42, 0}
|
|
| 679 | 674 |
} |
| 680 |
-func (SecretReference_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptorTypes, []int{39, 0} }
|
|
| 681 | 675 |
|
| 682 | 676 |
// Version tracks the last time an object in the store was updated. |
| 683 | 677 |
type Version struct {
|
| ... | ... |
@@ -786,6 +781,8 @@ func (*RaftMemberStatus) Descriptor() ([]byte, []int) { return fileDescriptorTyp
|
| 786 | 786 |
type NodeStatus struct {
|
| 787 | 787 |
State NodeStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=docker.swarmkit.v1.NodeStatus_State" json:"state,omitempty"` |
| 788 | 788 |
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` |
| 789 |
+ // Addr is the node's IP address as observed by the manager |
|
| 790 |
+ Addr string `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"` |
|
| 789 | 791 |
} |
| 790 | 792 |
|
| 791 | 793 |
func (m *NodeStatus) Reset() { *m = NodeStatus{} }
|
| ... | ... |
@@ -1437,19 +1434,119 @@ type SecretReference struct {
|
| 1437 | 1437 |
// referencing. This identifier exists so that SecretReferences don't leak |
| 1438 | 1438 |
// any information about the secret contents. |
| 1439 | 1439 |
SecretID string `protobuf:"bytes,1,opt,name=secret_id,json=secretId,proto3" json:"secret_id,omitempty"` |
| 1440 |
- // Mode is the way the secret should be presented. |
|
| 1441 |
- Mode SecretReference_Mode `protobuf:"varint,2,opt,name=mode,proto3,enum=docker.swarmkit.v1.SecretReference_Mode" json:"mode,omitempty"` |
|
| 1442 |
- // Target is the name by which the image accesses the secret. |
|
| 1443 |
- Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` |
|
| 1444 | 1440 |
// SecretName is the name of the secret that this references, but this is just provided for |
| 1445 | 1441 |
// lookup/display purposes. The secret in the reference will be identified by its ID. |
| 1446 |
- SecretName string `protobuf:"bytes,4,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` |
|
| 1442 |
+ SecretName string `protobuf:"bytes,2,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` |
|
| 1443 |
+ // Target specifies how this secret should be exposed to the task. |
|
| 1444 |
+ // |
|
| 1445 |
+ // Types that are valid to be assigned to Target: |
|
| 1446 |
+ // *SecretReference_File |
|
| 1447 |
+ Target isSecretReference_Target `protobuf_oneof:"target"` |
|
| 1447 | 1448 |
} |
| 1448 | 1449 |
|
| 1449 | 1450 |
func (m *SecretReference) Reset() { *m = SecretReference{} }
|
| 1450 | 1451 |
func (*SecretReference) ProtoMessage() {}
|
| 1451 | 1452 |
func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{39} }
|
| 1452 | 1453 |
|
| 1454 |
+type isSecretReference_Target interface {
|
|
| 1455 |
+ isSecretReference_Target() |
|
| 1456 |
+ MarshalTo([]byte) (int, error) |
|
| 1457 |
+ Size() int |
|
| 1458 |
+} |
|
| 1459 |
+ |
|
| 1460 |
+type SecretReference_File struct {
|
|
| 1461 |
+ File *SecretReference_FileTarget `protobuf:"bytes,3,opt,name=file,oneof"` |
|
| 1462 |
+} |
|
| 1463 |
+ |
|
| 1464 |
+func (*SecretReference_File) isSecretReference_Target() {}
|
|
| 1465 |
+ |
|
| 1466 |
+func (m *SecretReference) GetTarget() isSecretReference_Target {
|
|
| 1467 |
+ if m != nil {
|
|
| 1468 |
+ return m.Target |
|
| 1469 |
+ } |
|
| 1470 |
+ return nil |
|
| 1471 |
+} |
|
| 1472 |
+ |
|
| 1473 |
+func (m *SecretReference) GetFile() *SecretReference_FileTarget {
|
|
| 1474 |
+ if x, ok := m.GetTarget().(*SecretReference_File); ok {
|
|
| 1475 |
+ return x.File |
|
| 1476 |
+ } |
|
| 1477 |
+ return nil |
|
| 1478 |
+} |
|
| 1479 |
+ |
|
| 1480 |
+// XXX_OneofFuncs is for the internal use of the proto package. |
|
| 1481 |
+func (*SecretReference) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
|
| 1482 |
+ return _SecretReference_OneofMarshaler, _SecretReference_OneofUnmarshaler, _SecretReference_OneofSizer, []interface{}{
|
|
| 1483 |
+ (*SecretReference_File)(nil), |
|
| 1484 |
+ } |
|
| 1485 |
+} |
|
| 1486 |
+ |
|
| 1487 |
+func _SecretReference_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
|
| 1488 |
+ m := msg.(*SecretReference) |
|
| 1489 |
+ // target |
|
| 1490 |
+ switch x := m.Target.(type) {
|
|
| 1491 |
+ case *SecretReference_File: |
|
| 1492 |
+ _ = b.EncodeVarint(3<<3 | proto.WireBytes) |
|
| 1493 |
+ if err := b.EncodeMessage(x.File); err != nil {
|
|
| 1494 |
+ return err |
|
| 1495 |
+ } |
|
| 1496 |
+ case nil: |
|
| 1497 |
+ default: |
|
| 1498 |
+ return fmt.Errorf("SecretReference.Target has unexpected type %T", x)
|
|
| 1499 |
+ } |
|
| 1500 |
+ return nil |
|
| 1501 |
+} |
|
| 1502 |
+ |
|
| 1503 |
+func _SecretReference_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
|
|
| 1504 |
+ m := msg.(*SecretReference) |
|
| 1505 |
+ switch tag {
|
|
| 1506 |
+ case 3: // target.file |
|
| 1507 |
+ if wire != proto.WireBytes {
|
|
| 1508 |
+ return true, proto.ErrInternalBadWireType |
|
| 1509 |
+ } |
|
| 1510 |
+ msg := new(SecretReference_FileTarget) |
|
| 1511 |
+ err := b.DecodeMessage(msg) |
|
| 1512 |
+ m.Target = &SecretReference_File{msg}
|
|
| 1513 |
+ return true, err |
|
| 1514 |
+ default: |
|
| 1515 |
+ return false, nil |
|
| 1516 |
+ } |
|
| 1517 |
+} |
|
| 1518 |
+ |
|
| 1519 |
+func _SecretReference_OneofSizer(msg proto.Message) (n int) {
|
|
| 1520 |
+ m := msg.(*SecretReference) |
|
| 1521 |
+ // target |
|
| 1522 |
+ switch x := m.Target.(type) {
|
|
| 1523 |
+ case *SecretReference_File: |
|
| 1524 |
+ s := proto.Size(x.File) |
|
| 1525 |
+ n += proto.SizeVarint(3<<3 | proto.WireBytes) |
|
| 1526 |
+ n += proto.SizeVarint(uint64(s)) |
|
| 1527 |
+ n += s |
|
| 1528 |
+ case nil: |
|
| 1529 |
+ default: |
|
| 1530 |
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
|
| 1531 |
+ } |
|
| 1532 |
+ return n |
|
| 1533 |
+} |
|
| 1534 |
+ |
|
| 1535 |
+// FileTarget represents a specific target that is backed by a file |
|
| 1536 |
+type SecretReference_FileTarget struct {
|
|
| 1537 |
+ // Name represents the final filename in the filesystem |
|
| 1538 |
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
|
| 1539 |
+ // UID represents the file UID |
|
| 1540 |
+ UID string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` |
|
| 1541 |
+ // GID represents the file GID |
|
| 1542 |
+ GID string `protobuf:"bytes,3,opt,name=gid,proto3" json:"gid,omitempty"` |
|
| 1543 |
+ // Mode represents the FileMode of the file |
|
| 1544 |
+ Mode os.FileMode `protobuf:"varint,4,opt,name=mode,proto3,customtype=os.FileMode" json:"mode"` |
|
| 1545 |
+} |
|
| 1546 |
+ |
|
| 1547 |
+func (m *SecretReference_FileTarget) Reset() { *m = SecretReference_FileTarget{} }
|
|
| 1548 |
+func (*SecretReference_FileTarget) ProtoMessage() {}
|
|
| 1549 |
+func (*SecretReference_FileTarget) Descriptor() ([]byte, []int) {
|
|
| 1550 |
+ return fileDescriptorTypes, []int{39, 0}
|
|
| 1551 |
+} |
|
| 1552 |
+ |
|
| 1453 | 1553 |
// BlacklistedCertificate is a record for a blacklisted certificate. It does not |
| 1454 | 1554 |
// contain the certificate's CN, because these records are indexed by CN. |
| 1455 | 1555 |
type BlacklistedCertificate struct {
|
| ... | ... |
@@ -1486,6 +1583,16 @@ func (m *HealthConfig) Reset() { *m = HealthConfig{} }
|
| 1486 | 1486 |
func (*HealthConfig) ProtoMessage() {}
|
| 1487 | 1487 |
func (*HealthConfig) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{41} }
|
| 1488 | 1488 |
|
| 1489 |
+type MaybeEncryptedRecord struct {
|
|
| 1490 |
+ Algorithm MaybeEncryptedRecord_Algorithm `protobuf:"varint,1,opt,name=algorithm,proto3,enum=docker.swarmkit.v1.MaybeEncryptedRecord_Algorithm" json:"algorithm,omitempty"` |
|
| 1491 |
+ Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` |
|
| 1492 |
+ Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"` |
|
| 1493 |
+} |
|
| 1494 |
+ |
|
| 1495 |
+func (m *MaybeEncryptedRecord) Reset() { *m = MaybeEncryptedRecord{} }
|
|
| 1496 |
+func (*MaybeEncryptedRecord) ProtoMessage() {}
|
|
| 1497 |
+func (*MaybeEncryptedRecord) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{42} }
|
|
| 1498 |
+ |
|
| 1489 | 1499 |
func init() {
|
| 1490 | 1500 |
proto.RegisterType((*Version)(nil), "docker.swarmkit.v1.Version") |
| 1491 | 1501 |
proto.RegisterType((*Annotations)(nil), "docker.swarmkit.v1.Annotations") |
| ... | ... |
@@ -1532,8 +1639,10 @@ func init() {
|
| 1532 | 1532 |
proto.RegisterType((*EncryptionKey)(nil), "docker.swarmkit.v1.EncryptionKey") |
| 1533 | 1533 |
proto.RegisterType((*ManagerStatus)(nil), "docker.swarmkit.v1.ManagerStatus") |
| 1534 | 1534 |
proto.RegisterType((*SecretReference)(nil), "docker.swarmkit.v1.SecretReference") |
| 1535 |
+ proto.RegisterType((*SecretReference_FileTarget)(nil), "docker.swarmkit.v1.SecretReference.FileTarget") |
|
| 1535 | 1536 |
proto.RegisterType((*BlacklistedCertificate)(nil), "docker.swarmkit.v1.BlacklistedCertificate") |
| 1536 | 1537 |
proto.RegisterType((*HealthConfig)(nil), "docker.swarmkit.v1.HealthConfig") |
| 1538 |
+ proto.RegisterType((*MaybeEncryptedRecord)(nil), "docker.swarmkit.v1.MaybeEncryptedRecord") |
|
| 1537 | 1539 |
proto.RegisterEnum("docker.swarmkit.v1.TaskState", TaskState_name, TaskState_value)
|
| 1538 | 1540 |
proto.RegisterEnum("docker.swarmkit.v1.NodeRole", NodeRole_name, NodeRole_value)
|
| 1539 | 1541 |
proto.RegisterEnum("docker.swarmkit.v1.RaftMemberStatus_Reachability", RaftMemberStatus_Reachability_name, RaftMemberStatus_Reachability_value)
|
| ... | ... |
@@ -1549,7 +1658,7 @@ func init() {
|
| 1549 | 1549 |
proto.RegisterEnum("docker.swarmkit.v1.IssuanceStatus_State", IssuanceStatus_State_name, IssuanceStatus_State_value)
|
| 1550 | 1550 |
proto.RegisterEnum("docker.swarmkit.v1.ExternalCA_CAProtocol", ExternalCA_CAProtocol_name, ExternalCA_CAProtocol_value)
|
| 1551 | 1551 |
proto.RegisterEnum("docker.swarmkit.v1.EncryptionKey_Algorithm", EncryptionKey_Algorithm_name, EncryptionKey_Algorithm_value)
|
| 1552 |
- proto.RegisterEnum("docker.swarmkit.v1.SecretReference_Mode", SecretReference_Mode_name, SecretReference_Mode_value)
|
|
| 1552 |
+ proto.RegisterEnum("docker.swarmkit.v1.MaybeEncryptedRecord_Algorithm", MaybeEncryptedRecord_Algorithm_name, MaybeEncryptedRecord_Algorithm_value)
|
|
| 1553 | 1553 |
} |
| 1554 | 1554 |
|
| 1555 | 1555 |
func (m *Version) Copy() *Version {
|
| ... | ... |
@@ -1698,6 +1807,7 @@ func (m *NodeStatus) Copy() *NodeStatus {
|
| 1698 | 1698 |
o := &NodeStatus{
|
| 1699 | 1699 |
State: m.State, |
| 1700 | 1700 |
Message: m.Message, |
| 1701 |
+ Addr: m.Addr, |
|
| 1701 | 1702 |
} |
| 1702 | 1703 |
|
| 1703 | 1704 |
return o |
| ... | ... |
@@ -2248,11 +2358,33 @@ func (m *SecretReference) Copy() *SecretReference {
|
| 2248 | 2248 |
|
| 2249 | 2249 |
o := &SecretReference{
|
| 2250 | 2250 |
SecretID: m.SecretID, |
| 2251 |
- Mode: m.Mode, |
|
| 2252 |
- Target: m.Target, |
|
| 2253 | 2251 |
SecretName: m.SecretName, |
| 2254 | 2252 |
} |
| 2255 | 2253 |
|
| 2254 |
+ switch m.Target.(type) {
|
|
| 2255 |
+ case *SecretReference_File: |
|
| 2256 |
+ i := &SecretReference_File{
|
|
| 2257 |
+ File: m.GetFile().Copy(), |
|
| 2258 |
+ } |
|
| 2259 |
+ |
|
| 2260 |
+ o.Target = i |
|
| 2261 |
+ } |
|
| 2262 |
+ |
|
| 2263 |
+ return o |
|
| 2264 |
+} |
|
| 2265 |
+ |
|
| 2266 |
+func (m *SecretReference_FileTarget) Copy() *SecretReference_FileTarget {
|
|
| 2267 |
+ if m == nil {
|
|
| 2268 |
+ return nil |
|
| 2269 |
+ } |
|
| 2270 |
+ |
|
| 2271 |
+ o := &SecretReference_FileTarget{
|
|
| 2272 |
+ Name: m.Name, |
|
| 2273 |
+ UID: m.UID, |
|
| 2274 |
+ GID: m.GID, |
|
| 2275 |
+ Mode: m.Mode, |
|
| 2276 |
+ } |
|
| 2277 |
+ |
|
| 2256 | 2278 |
return o |
| 2257 | 2279 |
} |
| 2258 | 2280 |
|
| ... | ... |
@@ -2287,6 +2419,20 @@ func (m *HealthConfig) Copy() *HealthConfig {
|
| 2287 | 2287 |
return o |
| 2288 | 2288 |
} |
| 2289 | 2289 |
|
| 2290 |
+func (m *MaybeEncryptedRecord) Copy() *MaybeEncryptedRecord {
|
|
| 2291 |
+ if m == nil {
|
|
| 2292 |
+ return nil |
|
| 2293 |
+ } |
|
| 2294 |
+ |
|
| 2295 |
+ o := &MaybeEncryptedRecord{
|
|
| 2296 |
+ Algorithm: m.Algorithm, |
|
| 2297 |
+ Data: m.Data, |
|
| 2298 |
+ Nonce: m.Nonce, |
|
| 2299 |
+ } |
|
| 2300 |
+ |
|
| 2301 |
+ return o |
|
| 2302 |
+} |
|
| 2303 |
+ |
|
| 2290 | 2304 |
func (this *Version) GoString() string {
|
| 2291 | 2305 |
if this == nil {
|
| 2292 | 2306 |
return "nil" |
| ... | ... |
@@ -2429,10 +2575,11 @@ func (this *NodeStatus) GoString() string {
|
| 2429 | 2429 |
if this == nil {
|
| 2430 | 2430 |
return "nil" |
| 2431 | 2431 |
} |
| 2432 |
- s := make([]string, 0, 6) |
|
| 2432 |
+ s := make([]string, 0, 7) |
|
| 2433 | 2433 |
s = append(s, "&api.NodeStatus{")
|
| 2434 | 2434 |
s = append(s, "State: "+fmt.Sprintf("%#v", this.State)+",\n")
|
| 2435 | 2435 |
s = append(s, "Message: "+fmt.Sprintf("%#v", this.Message)+",\n")
|
| 2436 |
+ s = append(s, "Addr: "+fmt.Sprintf("%#v", this.Addr)+",\n")
|
|
| 2436 | 2437 |
s = append(s, "}") |
| 2437 | 2438 |
return strings.Join(s, "") |
| 2438 | 2439 |
} |
| ... | ... |
@@ -2945,12 +3092,34 @@ func (this *SecretReference) GoString() string {
|
| 2945 | 2945 |
if this == nil {
|
| 2946 | 2946 |
return "nil" |
| 2947 | 2947 |
} |
| 2948 |
- s := make([]string, 0, 8) |
|
| 2948 |
+ s := make([]string, 0, 7) |
|
| 2949 | 2949 |
s = append(s, "&api.SecretReference{")
|
| 2950 | 2950 |
s = append(s, "SecretID: "+fmt.Sprintf("%#v", this.SecretID)+",\n")
|
| 2951 |
- s = append(s, "Mode: "+fmt.Sprintf("%#v", this.Mode)+",\n")
|
|
| 2952 |
- s = append(s, "Target: "+fmt.Sprintf("%#v", this.Target)+",\n")
|
|
| 2953 | 2951 |
s = append(s, "SecretName: "+fmt.Sprintf("%#v", this.SecretName)+",\n")
|
| 2952 |
+ if this.Target != nil {
|
|
| 2953 |
+ s = append(s, "Target: "+fmt.Sprintf("%#v", this.Target)+",\n")
|
|
| 2954 |
+ } |
|
| 2955 |
+ s = append(s, "}") |
|
| 2956 |
+ return strings.Join(s, "") |
|
| 2957 |
+} |
|
| 2958 |
+func (this *SecretReference_File) GoString() string {
|
|
| 2959 |
+ if this == nil {
|
|
| 2960 |
+ return "nil" |
|
| 2961 |
+ } |
|
| 2962 |
+ s := strings.Join([]string{`&api.SecretReference_File{` +
|
|
| 2963 |
+ `File:` + fmt.Sprintf("%#v", this.File) + `}`}, ", ")
|
|
| 2964 |
+ return s |
|
| 2965 |
+} |
|
| 2966 |
+func (this *SecretReference_FileTarget) GoString() string {
|
|
| 2967 |
+ if this == nil {
|
|
| 2968 |
+ return "nil" |
|
| 2969 |
+ } |
|
| 2970 |
+ s := make([]string, 0, 8) |
|
| 2971 |
+ s = append(s, "&api.SecretReference_FileTarget{")
|
|
| 2972 |
+ s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n")
|
|
| 2973 |
+ s = append(s, "UID: "+fmt.Sprintf("%#v", this.UID)+",\n")
|
|
| 2974 |
+ s = append(s, "GID: "+fmt.Sprintf("%#v", this.GID)+",\n")
|
|
| 2975 |
+ s = append(s, "Mode: "+fmt.Sprintf("%#v", this.Mode)+",\n")
|
|
| 2954 | 2976 |
s = append(s, "}") |
| 2955 | 2977 |
return strings.Join(s, "") |
| 2956 | 2978 |
} |
| ... | ... |
@@ -2983,6 +3152,18 @@ func (this *HealthConfig) GoString() string {
|
| 2983 | 2983 |
s = append(s, "}") |
| 2984 | 2984 |
return strings.Join(s, "") |
| 2985 | 2985 |
} |
| 2986 |
+func (this *MaybeEncryptedRecord) GoString() string {
|
|
| 2987 |
+ if this == nil {
|
|
| 2988 |
+ return "nil" |
|
| 2989 |
+ } |
|
| 2990 |
+ s := make([]string, 0, 7) |
|
| 2991 |
+ s = append(s, "&api.MaybeEncryptedRecord{")
|
|
| 2992 |
+ s = append(s, "Algorithm: "+fmt.Sprintf("%#v", this.Algorithm)+",\n")
|
|
| 2993 |
+ s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n")
|
|
| 2994 |
+ s = append(s, "Nonce: "+fmt.Sprintf("%#v", this.Nonce)+",\n")
|
|
| 2995 |
+ s = append(s, "}") |
|
| 2996 |
+ return strings.Join(s, "") |
|
| 2997 |
+} |
|
| 2986 | 2998 |
func valueToGoStringTypes(v interface{}, typ string) string {
|
| 2987 | 2999 |
rv := reflect.ValueOf(v) |
| 2988 | 3000 |
if rv.IsNil() {
|
| ... | ... |
@@ -3371,6 +3552,12 @@ func (m *NodeStatus) MarshalTo(data []byte) (int, error) {
|
| 3371 | 3371 |
i = encodeVarintTypes(data, i, uint64(len(m.Message))) |
| 3372 | 3372 |
i += copy(data[i:], m.Message) |
| 3373 | 3373 |
} |
| 3374 |
+ if len(m.Addr) > 0 {
|
|
| 3375 |
+ data[i] = 0x1a |
|
| 3376 |
+ i++ |
|
| 3377 |
+ i = encodeVarintTypes(data, i, uint64(len(m.Addr))) |
|
| 3378 |
+ i += copy(data[i:], m.Addr) |
|
| 3379 |
+ } |
|
| 3374 | 3380 |
return i, nil |
| 3375 | 3381 |
} |
| 3376 | 3382 |
|
| ... | ... |
@@ -4768,22 +4955,73 @@ func (m *SecretReference) MarshalTo(data []byte) (int, error) {
|
| 4768 | 4768 |
i = encodeVarintTypes(data, i, uint64(len(m.SecretID))) |
| 4769 | 4769 |
i += copy(data[i:], m.SecretID) |
| 4770 | 4770 |
} |
| 4771 |
- if m.Mode != 0 {
|
|
| 4772 |
- data[i] = 0x10 |
|
| 4771 |
+ if len(m.SecretName) > 0 {
|
|
| 4772 |
+ data[i] = 0x12 |
|
| 4773 | 4773 |
i++ |
| 4774 |
- i = encodeVarintTypes(data, i, uint64(m.Mode)) |
|
| 4774 |
+ i = encodeVarintTypes(data, i, uint64(len(m.SecretName))) |
|
| 4775 |
+ i += copy(data[i:], m.SecretName) |
|
| 4775 | 4776 |
} |
| 4776 |
- if len(m.Target) > 0 {
|
|
| 4777 |
+ if m.Target != nil {
|
|
| 4778 |
+ nn28, err := m.Target.MarshalTo(data[i:]) |
|
| 4779 |
+ if err != nil {
|
|
| 4780 |
+ return 0, err |
|
| 4781 |
+ } |
|
| 4782 |
+ i += nn28 |
|
| 4783 |
+ } |
|
| 4784 |
+ return i, nil |
|
| 4785 |
+} |
|
| 4786 |
+ |
|
| 4787 |
+func (m *SecretReference_File) MarshalTo(data []byte) (int, error) {
|
|
| 4788 |
+ i := 0 |
|
| 4789 |
+ if m.File != nil {
|
|
| 4777 | 4790 |
data[i] = 0x1a |
| 4778 | 4791 |
i++ |
| 4779 |
- i = encodeVarintTypes(data, i, uint64(len(m.Target))) |
|
| 4780 |
- i += copy(data[i:], m.Target) |
|
| 4792 |
+ i = encodeVarintTypes(data, i, uint64(m.File.Size())) |
|
| 4793 |
+ n29, err := m.File.MarshalTo(data[i:]) |
|
| 4794 |
+ if err != nil {
|
|
| 4795 |
+ return 0, err |
|
| 4796 |
+ } |
|
| 4797 |
+ i += n29 |
|
| 4781 | 4798 |
} |
| 4782 |
- if len(m.SecretName) > 0 {
|
|
| 4783 |
- data[i] = 0x22 |
|
| 4799 |
+ return i, nil |
|
| 4800 |
+} |
|
| 4801 |
+func (m *SecretReference_FileTarget) Marshal() (data []byte, err error) {
|
|
| 4802 |
+ size := m.Size() |
|
| 4803 |
+ data = make([]byte, size) |
|
| 4804 |
+ n, err := m.MarshalTo(data) |
|
| 4805 |
+ if err != nil {
|
|
| 4806 |
+ return nil, err |
|
| 4807 |
+ } |
|
| 4808 |
+ return data[:n], nil |
|
| 4809 |
+} |
|
| 4810 |
+ |
|
| 4811 |
+func (m *SecretReference_FileTarget) MarshalTo(data []byte) (int, error) {
|
|
| 4812 |
+ var i int |
|
| 4813 |
+ _ = i |
|
| 4814 |
+ var l int |
|
| 4815 |
+ _ = l |
|
| 4816 |
+ if len(m.Name) > 0 {
|
|
| 4817 |
+ data[i] = 0xa |
|
| 4784 | 4818 |
i++ |
| 4785 |
- i = encodeVarintTypes(data, i, uint64(len(m.SecretName))) |
|
| 4786 |
- i += copy(data[i:], m.SecretName) |
|
| 4819 |
+ i = encodeVarintTypes(data, i, uint64(len(m.Name))) |
|
| 4820 |
+ i += copy(data[i:], m.Name) |
|
| 4821 |
+ } |
|
| 4822 |
+ if len(m.UID) > 0 {
|
|
| 4823 |
+ data[i] = 0x12 |
|
| 4824 |
+ i++ |
|
| 4825 |
+ i = encodeVarintTypes(data, i, uint64(len(m.UID))) |
|
| 4826 |
+ i += copy(data[i:], m.UID) |
|
| 4827 |
+ } |
|
| 4828 |
+ if len(m.GID) > 0 {
|
|
| 4829 |
+ data[i] = 0x1a |
|
| 4830 |
+ i++ |
|
| 4831 |
+ i = encodeVarintTypes(data, i, uint64(len(m.GID))) |
|
| 4832 |
+ i += copy(data[i:], m.GID) |
|
| 4833 |
+ } |
|
| 4834 |
+ if m.Mode != 0 {
|
|
| 4835 |
+ data[i] = 0x20 |
|
| 4836 |
+ i++ |
|
| 4837 |
+ i = encodeVarintTypes(data, i, uint64(m.Mode)) |
|
| 4787 | 4838 |
} |
| 4788 | 4839 |
return i, nil |
| 4789 | 4840 |
} |
| ... | ... |
@@ -4807,11 +5045,11 @@ func (m *BlacklistedCertificate) MarshalTo(data []byte) (int, error) {
|
| 4807 | 4807 |
data[i] = 0xa |
| 4808 | 4808 |
i++ |
| 4809 | 4809 |
i = encodeVarintTypes(data, i, uint64(m.Expiry.Size())) |
| 4810 |
- n28, err := m.Expiry.MarshalTo(data[i:]) |
|
| 4810 |
+ n30, err := m.Expiry.MarshalTo(data[i:]) |
|
| 4811 | 4811 |
if err != nil {
|
| 4812 | 4812 |
return 0, err |
| 4813 | 4813 |
} |
| 4814 |
- i += n28 |
|
| 4814 |
+ i += n30 |
|
| 4815 | 4815 |
} |
| 4816 | 4816 |
return i, nil |
| 4817 | 4817 |
} |
| ... | ... |
@@ -4850,21 +5088,21 @@ func (m *HealthConfig) MarshalTo(data []byte) (int, error) {
|
| 4850 | 4850 |
data[i] = 0x12 |
| 4851 | 4851 |
i++ |
| 4852 | 4852 |
i = encodeVarintTypes(data, i, uint64(m.Interval.Size())) |
| 4853 |
- n29, err := m.Interval.MarshalTo(data[i:]) |
|
| 4853 |
+ n31, err := m.Interval.MarshalTo(data[i:]) |
|
| 4854 | 4854 |
if err != nil {
|
| 4855 | 4855 |
return 0, err |
| 4856 | 4856 |
} |
| 4857 |
- i += n29 |
|
| 4857 |
+ i += n31 |
|
| 4858 | 4858 |
} |
| 4859 | 4859 |
if m.Timeout != nil {
|
| 4860 | 4860 |
data[i] = 0x1a |
| 4861 | 4861 |
i++ |
| 4862 | 4862 |
i = encodeVarintTypes(data, i, uint64(m.Timeout.Size())) |
| 4863 |
- n30, err := m.Timeout.MarshalTo(data[i:]) |
|
| 4863 |
+ n32, err := m.Timeout.MarshalTo(data[i:]) |
|
| 4864 | 4864 |
if err != nil {
|
| 4865 | 4865 |
return 0, err |
| 4866 | 4866 |
} |
| 4867 |
- i += n30 |
|
| 4867 |
+ i += n32 |
|
| 4868 | 4868 |
} |
| 4869 | 4869 |
if m.Retries != 0 {
|
| 4870 | 4870 |
data[i] = 0x20 |
| ... | ... |
@@ -4874,6 +5112,41 @@ func (m *HealthConfig) MarshalTo(data []byte) (int, error) {
|
| 4874 | 4874 |
return i, nil |
| 4875 | 4875 |
} |
| 4876 | 4876 |
|
| 4877 |
+func (m *MaybeEncryptedRecord) Marshal() (data []byte, err error) {
|
|
| 4878 |
+ size := m.Size() |
|
| 4879 |
+ data = make([]byte, size) |
|
| 4880 |
+ n, err := m.MarshalTo(data) |
|
| 4881 |
+ if err != nil {
|
|
| 4882 |
+ return nil, err |
|
| 4883 |
+ } |
|
| 4884 |
+ return data[:n], nil |
|
| 4885 |
+} |
|
| 4886 |
+ |
|
| 4887 |
+func (m *MaybeEncryptedRecord) MarshalTo(data []byte) (int, error) {
|
|
| 4888 |
+ var i int |
|
| 4889 |
+ _ = i |
|
| 4890 |
+ var l int |
|
| 4891 |
+ _ = l |
|
| 4892 |
+ if m.Algorithm != 0 {
|
|
| 4893 |
+ data[i] = 0x8 |
|
| 4894 |
+ i++ |
|
| 4895 |
+ i = encodeVarintTypes(data, i, uint64(m.Algorithm)) |
|
| 4896 |
+ } |
|
| 4897 |
+ if len(m.Data) > 0 {
|
|
| 4898 |
+ data[i] = 0x12 |
|
| 4899 |
+ i++ |
|
| 4900 |
+ i = encodeVarintTypes(data, i, uint64(len(m.Data))) |
|
| 4901 |
+ i += copy(data[i:], m.Data) |
|
| 4902 |
+ } |
|
| 4903 |
+ if len(m.Nonce) > 0 {
|
|
| 4904 |
+ data[i] = 0x1a |
|
| 4905 |
+ i++ |
|
| 4906 |
+ i = encodeVarintTypes(data, i, uint64(len(m.Nonce))) |
|
| 4907 |
+ i += copy(data[i:], m.Nonce) |
|
| 4908 |
+ } |
|
| 4909 |
+ return i, nil |
|
| 4910 |
+} |
|
| 4911 |
+ |
|
| 4877 | 4912 |
func encodeFixed64Types(data []byte, offset int, v uint64) int {
|
| 4878 | 4913 |
data[offset] = uint8(v) |
| 4879 | 4914 |
data[offset+1] = uint8(v >> 8) |
| ... | ... |
@@ -5055,6 +5328,10 @@ func (m *NodeStatus) Size() (n int) {
|
| 5055 | 5055 |
if l > 0 {
|
| 5056 | 5056 |
n += 1 + l + sovTypes(uint64(l)) |
| 5057 | 5057 |
} |
| 5058 |
+ l = len(m.Addr) |
|
| 5059 |
+ if l > 0 {
|
|
| 5060 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 5061 |
+ } |
|
| 5058 | 5062 |
return n |
| 5059 | 5063 |
} |
| 5060 | 5064 |
|
| ... | ... |
@@ -5660,17 +5937,43 @@ func (m *SecretReference) Size() (n int) {
|
| 5660 | 5660 |
if l > 0 {
|
| 5661 | 5661 |
n += 1 + l + sovTypes(uint64(l)) |
| 5662 | 5662 |
} |
| 5663 |
- if m.Mode != 0 {
|
|
| 5664 |
- n += 1 + sovTypes(uint64(m.Mode)) |
|
| 5663 |
+ l = len(m.SecretName) |
|
| 5664 |
+ if l > 0 {
|
|
| 5665 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 5665 | 5666 |
} |
| 5666 |
- l = len(m.Target) |
|
| 5667 |
+ if m.Target != nil {
|
|
| 5668 |
+ n += m.Target.Size() |
|
| 5669 |
+ } |
|
| 5670 |
+ return n |
|
| 5671 |
+} |
|
| 5672 |
+ |
|
| 5673 |
+func (m *SecretReference_File) Size() (n int) {
|
|
| 5674 |
+ var l int |
|
| 5675 |
+ _ = l |
|
| 5676 |
+ if m.File != nil {
|
|
| 5677 |
+ l = m.File.Size() |
|
| 5678 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 5679 |
+ } |
|
| 5680 |
+ return n |
|
| 5681 |
+} |
|
| 5682 |
+func (m *SecretReference_FileTarget) Size() (n int) {
|
|
| 5683 |
+ var l int |
|
| 5684 |
+ _ = l |
|
| 5685 |
+ l = len(m.Name) |
|
| 5667 | 5686 |
if l > 0 {
|
| 5668 | 5687 |
n += 1 + l + sovTypes(uint64(l)) |
| 5669 | 5688 |
} |
| 5670 |
- l = len(m.SecretName) |
|
| 5689 |
+ l = len(m.UID) |
|
| 5671 | 5690 |
if l > 0 {
|
| 5672 | 5691 |
n += 1 + l + sovTypes(uint64(l)) |
| 5673 | 5692 |
} |
| 5693 |
+ l = len(m.GID) |
|
| 5694 |
+ if l > 0 {
|
|
| 5695 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 5696 |
+ } |
|
| 5697 |
+ if m.Mode != 0 {
|
|
| 5698 |
+ n += 1 + sovTypes(uint64(m.Mode)) |
|
| 5699 |
+ } |
|
| 5674 | 5700 |
return n |
| 5675 | 5701 |
} |
| 5676 | 5702 |
|
| ... | ... |
@@ -5707,6 +6010,23 @@ func (m *HealthConfig) Size() (n int) {
|
| 5707 | 5707 |
return n |
| 5708 | 5708 |
} |
| 5709 | 5709 |
|
| 5710 |
+func (m *MaybeEncryptedRecord) Size() (n int) {
|
|
| 5711 |
+ var l int |
|
| 5712 |
+ _ = l |
|
| 5713 |
+ if m.Algorithm != 0 {
|
|
| 5714 |
+ n += 1 + sovTypes(uint64(m.Algorithm)) |
|
| 5715 |
+ } |
|
| 5716 |
+ l = len(m.Data) |
|
| 5717 |
+ if l > 0 {
|
|
| 5718 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 5719 |
+ } |
|
| 5720 |
+ l = len(m.Nonce) |
|
| 5721 |
+ if l > 0 {
|
|
| 5722 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 5723 |
+ } |
|
| 5724 |
+ return n |
|
| 5725 |
+} |
|
| 5726 |
+ |
|
| 5710 | 5727 |
func sovTypes(x uint64) (n int) {
|
| 5711 | 5728 |
for {
|
| 5712 | 5729 |
n++ |
| ... | ... |
@@ -5849,6 +6169,7 @@ func (this *NodeStatus) String() string {
|
| 5849 | 5849 |
s := strings.Join([]string{`&NodeStatus{`,
|
| 5850 | 5850 |
`State:` + fmt.Sprintf("%v", this.State) + `,`,
|
| 5851 | 5851 |
`Message:` + fmt.Sprintf("%v", this.Message) + `,`,
|
| 5852 |
+ `Addr:` + fmt.Sprintf("%v", this.Addr) + `,`,
|
|
| 5852 | 5853 |
`}`, |
| 5853 | 5854 |
}, "") |
| 5854 | 5855 |
return s |
| ... | ... |
@@ -6314,9 +6635,31 @@ func (this *SecretReference) String() string {
|
| 6314 | 6314 |
} |
| 6315 | 6315 |
s := strings.Join([]string{`&SecretReference{`,
|
| 6316 | 6316 |
`SecretID:` + fmt.Sprintf("%v", this.SecretID) + `,`,
|
| 6317 |
- `Mode:` + fmt.Sprintf("%v", this.Mode) + `,`,
|
|
| 6318 |
- `Target:` + fmt.Sprintf("%v", this.Target) + `,`,
|
|
| 6319 | 6317 |
`SecretName:` + fmt.Sprintf("%v", this.SecretName) + `,`,
|
| 6318 |
+ `Target:` + fmt.Sprintf("%v", this.Target) + `,`,
|
|
| 6319 |
+ `}`, |
|
| 6320 |
+ }, "") |
|
| 6321 |
+ return s |
|
| 6322 |
+} |
|
| 6323 |
+func (this *SecretReference_File) String() string {
|
|
| 6324 |
+ if this == nil {
|
|
| 6325 |
+ return "nil" |
|
| 6326 |
+ } |
|
| 6327 |
+ s := strings.Join([]string{`&SecretReference_File{`,
|
|
| 6328 |
+ `File:` + strings.Replace(fmt.Sprintf("%v", this.File), "SecretReference_FileTarget", "SecretReference_FileTarget", 1) + `,`,
|
|
| 6329 |
+ `}`, |
|
| 6330 |
+ }, "") |
|
| 6331 |
+ return s |
|
| 6332 |
+} |
|
| 6333 |
+func (this *SecretReference_FileTarget) String() string {
|
|
| 6334 |
+ if this == nil {
|
|
| 6335 |
+ return "nil" |
|
| 6336 |
+ } |
|
| 6337 |
+ s := strings.Join([]string{`&SecretReference_FileTarget{`,
|
|
| 6338 |
+ `Name:` + fmt.Sprintf("%v", this.Name) + `,`,
|
|
| 6339 |
+ `UID:` + fmt.Sprintf("%v", this.UID) + `,`,
|
|
| 6340 |
+ `GID:` + fmt.Sprintf("%v", this.GID) + `,`,
|
|
| 6341 |
+ `Mode:` + fmt.Sprintf("%v", this.Mode) + `,`,
|
|
| 6320 | 6342 |
`}`, |
| 6321 | 6343 |
}, "") |
| 6322 | 6344 |
return s |
| ... | ... |
@@ -6344,6 +6687,18 @@ func (this *HealthConfig) String() string {
|
| 6344 | 6344 |
}, "") |
| 6345 | 6345 |
return s |
| 6346 | 6346 |
} |
| 6347 |
+func (this *MaybeEncryptedRecord) String() string {
|
|
| 6348 |
+ if this == nil {
|
|
| 6349 |
+ return "nil" |
|
| 6350 |
+ } |
|
| 6351 |
+ s := strings.Join([]string{`&MaybeEncryptedRecord{`,
|
|
| 6352 |
+ `Algorithm:` + fmt.Sprintf("%v", this.Algorithm) + `,`,
|
|
| 6353 |
+ `Data:` + fmt.Sprintf("%v", this.Data) + `,`,
|
|
| 6354 |
+ `Nonce:` + fmt.Sprintf("%v", this.Nonce) + `,`,
|
|
| 6355 |
+ `}`, |
|
| 6356 |
+ }, "") |
|
| 6357 |
+ return s |
|
| 6358 |
+} |
|
| 6347 | 6359 |
func valueToStringTypes(v interface{}) string {
|
| 6348 | 6360 |
rv := reflect.ValueOf(v) |
| 6349 | 6361 |
if rv.IsNil() {
|
| ... | ... |
@@ -7635,6 +7990,35 @@ func (m *NodeStatus) Unmarshal(data []byte) error {
|
| 7635 | 7635 |
} |
| 7636 | 7636 |
m.Message = string(data[iNdEx:postIndex]) |
| 7637 | 7637 |
iNdEx = postIndex |
| 7638 |
+ case 3: |
|
| 7639 |
+ if wireType != 2 {
|
|
| 7640 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType)
|
|
| 7641 |
+ } |
|
| 7642 |
+ var stringLen uint64 |
|
| 7643 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 7644 |
+ if shift >= 64 {
|
|
| 7645 |
+ return ErrIntOverflowTypes |
|
| 7646 |
+ } |
|
| 7647 |
+ if iNdEx >= l {
|
|
| 7648 |
+ return io.ErrUnexpectedEOF |
|
| 7649 |
+ } |
|
| 7650 |
+ b := data[iNdEx] |
|
| 7651 |
+ iNdEx++ |
|
| 7652 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
| 7653 |
+ if b < 0x80 {
|
|
| 7654 |
+ break |
|
| 7655 |
+ } |
|
| 7656 |
+ } |
|
| 7657 |
+ intStringLen := int(stringLen) |
|
| 7658 |
+ if intStringLen < 0 {
|
|
| 7659 |
+ return ErrInvalidLengthTypes |
|
| 7660 |
+ } |
|
| 7661 |
+ postIndex := iNdEx + intStringLen |
|
| 7662 |
+ if postIndex > l {
|
|
| 7663 |
+ return io.ErrUnexpectedEOF |
|
| 7664 |
+ } |
|
| 7665 |
+ m.Addr = string(data[iNdEx:postIndex]) |
|
| 7666 |
+ iNdEx = postIndex |
|
| 7638 | 7667 |
default: |
| 7639 | 7668 |
iNdEx = preIndex |
| 7640 | 7669 |
skippy, err := skipTypes(data[iNdEx:]) |
| ... | ... |
@@ -12357,10 +12741,10 @@ func (m *SecretReference) Unmarshal(data []byte) error {
|
| 12357 | 12357 |
m.SecretID = string(data[iNdEx:postIndex]) |
| 12358 | 12358 |
iNdEx = postIndex |
| 12359 | 12359 |
case 2: |
| 12360 |
- if wireType != 0 {
|
|
| 12361 |
- return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
|
|
| 12360 |
+ if wireType != 2 {
|
|
| 12361 |
+ return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType)
|
|
| 12362 | 12362 |
} |
| 12363 |
- m.Mode = 0 |
|
| 12363 |
+ var stringLen uint64 |
|
| 12364 | 12364 |
for shift := uint(0); ; shift += 7 {
|
| 12365 | 12365 |
if shift >= 64 {
|
| 12366 | 12366 |
return ErrIntOverflowTypes |
| ... | ... |
@@ -12370,14 +12754,106 @@ func (m *SecretReference) Unmarshal(data []byte) error {
|
| 12370 | 12370 |
} |
| 12371 | 12371 |
b := data[iNdEx] |
| 12372 | 12372 |
iNdEx++ |
| 12373 |
- m.Mode |= (SecretReference_Mode(b) & 0x7F) << shift |
|
| 12373 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
| 12374 | 12374 |
if b < 0x80 {
|
| 12375 | 12375 |
break |
| 12376 | 12376 |
} |
| 12377 | 12377 |
} |
| 12378 |
+ intStringLen := int(stringLen) |
|
| 12379 |
+ if intStringLen < 0 {
|
|
| 12380 |
+ return ErrInvalidLengthTypes |
|
| 12381 |
+ } |
|
| 12382 |
+ postIndex := iNdEx + intStringLen |
|
| 12383 |
+ if postIndex > l {
|
|
| 12384 |
+ return io.ErrUnexpectedEOF |
|
| 12385 |
+ } |
|
| 12386 |
+ m.SecretName = string(data[iNdEx:postIndex]) |
|
| 12387 |
+ iNdEx = postIndex |
|
| 12378 | 12388 |
case 3: |
| 12379 | 12389 |
if wireType != 2 {
|
| 12380 |
- return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType)
|
|
| 12390 |
+ return fmt.Errorf("proto: wrong wireType = %d for field File", wireType)
|
|
| 12391 |
+ } |
|
| 12392 |
+ var msglen int |
|
| 12393 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12394 |
+ if shift >= 64 {
|
|
| 12395 |
+ return ErrIntOverflowTypes |
|
| 12396 |
+ } |
|
| 12397 |
+ if iNdEx >= l {
|
|
| 12398 |
+ return io.ErrUnexpectedEOF |
|
| 12399 |
+ } |
|
| 12400 |
+ b := data[iNdEx] |
|
| 12401 |
+ iNdEx++ |
|
| 12402 |
+ msglen |= (int(b) & 0x7F) << shift |
|
| 12403 |
+ if b < 0x80 {
|
|
| 12404 |
+ break |
|
| 12405 |
+ } |
|
| 12406 |
+ } |
|
| 12407 |
+ if msglen < 0 {
|
|
| 12408 |
+ return ErrInvalidLengthTypes |
|
| 12409 |
+ } |
|
| 12410 |
+ postIndex := iNdEx + msglen |
|
| 12411 |
+ if postIndex > l {
|
|
| 12412 |
+ return io.ErrUnexpectedEOF |
|
| 12413 |
+ } |
|
| 12414 |
+ v := &SecretReference_FileTarget{}
|
|
| 12415 |
+ if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
|
| 12416 |
+ return err |
|
| 12417 |
+ } |
|
| 12418 |
+ m.Target = &SecretReference_File{v}
|
|
| 12419 |
+ iNdEx = postIndex |
|
| 12420 |
+ default: |
|
| 12421 |
+ iNdEx = preIndex |
|
| 12422 |
+ skippy, err := skipTypes(data[iNdEx:]) |
|
| 12423 |
+ if err != nil {
|
|
| 12424 |
+ return err |
|
| 12425 |
+ } |
|
| 12426 |
+ if skippy < 0 {
|
|
| 12427 |
+ return ErrInvalidLengthTypes |
|
| 12428 |
+ } |
|
| 12429 |
+ if (iNdEx + skippy) > l {
|
|
| 12430 |
+ return io.ErrUnexpectedEOF |
|
| 12431 |
+ } |
|
| 12432 |
+ iNdEx += skippy |
|
| 12433 |
+ } |
|
| 12434 |
+ } |
|
| 12435 |
+ |
|
| 12436 |
+ if iNdEx > l {
|
|
| 12437 |
+ return io.ErrUnexpectedEOF |
|
| 12438 |
+ } |
|
| 12439 |
+ return nil |
|
| 12440 |
+} |
|
| 12441 |
+func (m *SecretReference_FileTarget) Unmarshal(data []byte) error {
|
|
| 12442 |
+ l := len(data) |
|
| 12443 |
+ iNdEx := 0 |
|
| 12444 |
+ for iNdEx < l {
|
|
| 12445 |
+ preIndex := iNdEx |
|
| 12446 |
+ var wire uint64 |
|
| 12447 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12448 |
+ if shift >= 64 {
|
|
| 12449 |
+ return ErrIntOverflowTypes |
|
| 12450 |
+ } |
|
| 12451 |
+ if iNdEx >= l {
|
|
| 12452 |
+ return io.ErrUnexpectedEOF |
|
| 12453 |
+ } |
|
| 12454 |
+ b := data[iNdEx] |
|
| 12455 |
+ iNdEx++ |
|
| 12456 |
+ wire |= (uint64(b) & 0x7F) << shift |
|
| 12457 |
+ if b < 0x80 {
|
|
| 12458 |
+ break |
|
| 12459 |
+ } |
|
| 12460 |
+ } |
|
| 12461 |
+ fieldNum := int32(wire >> 3) |
|
| 12462 |
+ wireType := int(wire & 0x7) |
|
| 12463 |
+ if wireType == 4 {
|
|
| 12464 |
+ return fmt.Errorf("proto: FileTarget: wiretype end group for non-group")
|
|
| 12465 |
+ } |
|
| 12466 |
+ if fieldNum <= 0 {
|
|
| 12467 |
+ return fmt.Errorf("proto: FileTarget: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 12468 |
+ } |
|
| 12469 |
+ switch fieldNum {
|
|
| 12470 |
+ case 1: |
|
| 12471 |
+ if wireType != 2 {
|
|
| 12472 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
|
|
| 12381 | 12473 |
} |
| 12382 | 12474 |
var stringLen uint64 |
| 12383 | 12475 |
for shift := uint(0); ; shift += 7 {
|
| ... | ... |
@@ -12402,11 +12878,11 @@ func (m *SecretReference) Unmarshal(data []byte) error {
|
| 12402 | 12402 |
if postIndex > l {
|
| 12403 | 12403 |
return io.ErrUnexpectedEOF |
| 12404 | 12404 |
} |
| 12405 |
- m.Target = string(data[iNdEx:postIndex]) |
|
| 12405 |
+ m.Name = string(data[iNdEx:postIndex]) |
|
| 12406 | 12406 |
iNdEx = postIndex |
| 12407 |
- case 4: |
|
| 12407 |
+ case 2: |
|
| 12408 | 12408 |
if wireType != 2 {
|
| 12409 |
- return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType)
|
|
| 12409 |
+ return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType)
|
|
| 12410 | 12410 |
} |
| 12411 | 12411 |
var stringLen uint64 |
| 12412 | 12412 |
for shift := uint(0); ; shift += 7 {
|
| ... | ... |
@@ -12431,8 +12907,56 @@ func (m *SecretReference) Unmarshal(data []byte) error {
|
| 12431 | 12431 |
if postIndex > l {
|
| 12432 | 12432 |
return io.ErrUnexpectedEOF |
| 12433 | 12433 |
} |
| 12434 |
- m.SecretName = string(data[iNdEx:postIndex]) |
|
| 12434 |
+ m.UID = string(data[iNdEx:postIndex]) |
|
| 12435 | 12435 |
iNdEx = postIndex |
| 12436 |
+ case 3: |
|
| 12437 |
+ if wireType != 2 {
|
|
| 12438 |
+ return fmt.Errorf("proto: wrong wireType = %d for field GID", wireType)
|
|
| 12439 |
+ } |
|
| 12440 |
+ var stringLen uint64 |
|
| 12441 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12442 |
+ if shift >= 64 {
|
|
| 12443 |
+ return ErrIntOverflowTypes |
|
| 12444 |
+ } |
|
| 12445 |
+ if iNdEx >= l {
|
|
| 12446 |
+ return io.ErrUnexpectedEOF |
|
| 12447 |
+ } |
|
| 12448 |
+ b := data[iNdEx] |
|
| 12449 |
+ iNdEx++ |
|
| 12450 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
| 12451 |
+ if b < 0x80 {
|
|
| 12452 |
+ break |
|
| 12453 |
+ } |
|
| 12454 |
+ } |
|
| 12455 |
+ intStringLen := int(stringLen) |
|
| 12456 |
+ if intStringLen < 0 {
|
|
| 12457 |
+ return ErrInvalidLengthTypes |
|
| 12458 |
+ } |
|
| 12459 |
+ postIndex := iNdEx + intStringLen |
|
| 12460 |
+ if postIndex > l {
|
|
| 12461 |
+ return io.ErrUnexpectedEOF |
|
| 12462 |
+ } |
|
| 12463 |
+ m.GID = string(data[iNdEx:postIndex]) |
|
| 12464 |
+ iNdEx = postIndex |
|
| 12465 |
+ case 4: |
|
| 12466 |
+ if wireType != 0 {
|
|
| 12467 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
|
|
| 12468 |
+ } |
|
| 12469 |
+ m.Mode = 0 |
|
| 12470 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12471 |
+ if shift >= 64 {
|
|
| 12472 |
+ return ErrIntOverflowTypes |
|
| 12473 |
+ } |
|
| 12474 |
+ if iNdEx >= l {
|
|
| 12475 |
+ return io.ErrUnexpectedEOF |
|
| 12476 |
+ } |
|
| 12477 |
+ b := data[iNdEx] |
|
| 12478 |
+ iNdEx++ |
|
| 12479 |
+ m.Mode |= (os.FileMode(b) & 0x7F) << shift |
|
| 12480 |
+ if b < 0x80 {
|
|
| 12481 |
+ break |
|
| 12482 |
+ } |
|
| 12483 |
+ } |
|
| 12436 | 12484 |
default: |
| 12437 | 12485 |
iNdEx = preIndex |
| 12438 | 12486 |
skippy, err := skipTypes(data[iNdEx:]) |
| ... | ... |
@@ -12701,6 +13225,137 @@ func (m *HealthConfig) Unmarshal(data []byte) error {
|
| 12701 | 12701 |
} |
| 12702 | 12702 |
return nil |
| 12703 | 12703 |
} |
| 12704 |
+func (m *MaybeEncryptedRecord) Unmarshal(data []byte) error {
|
|
| 12705 |
+ l := len(data) |
|
| 12706 |
+ iNdEx := 0 |
|
| 12707 |
+ for iNdEx < l {
|
|
| 12708 |
+ preIndex := iNdEx |
|
| 12709 |
+ var wire uint64 |
|
| 12710 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12711 |
+ if shift >= 64 {
|
|
| 12712 |
+ return ErrIntOverflowTypes |
|
| 12713 |
+ } |
|
| 12714 |
+ if iNdEx >= l {
|
|
| 12715 |
+ return io.ErrUnexpectedEOF |
|
| 12716 |
+ } |
|
| 12717 |
+ b := data[iNdEx] |
|
| 12718 |
+ iNdEx++ |
|
| 12719 |
+ wire |= (uint64(b) & 0x7F) << shift |
|
| 12720 |
+ if b < 0x80 {
|
|
| 12721 |
+ break |
|
| 12722 |
+ } |
|
| 12723 |
+ } |
|
| 12724 |
+ fieldNum := int32(wire >> 3) |
|
| 12725 |
+ wireType := int(wire & 0x7) |
|
| 12726 |
+ if wireType == 4 {
|
|
| 12727 |
+ return fmt.Errorf("proto: MaybeEncryptedRecord: wiretype end group for non-group")
|
|
| 12728 |
+ } |
|
| 12729 |
+ if fieldNum <= 0 {
|
|
| 12730 |
+ return fmt.Errorf("proto: MaybeEncryptedRecord: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 12731 |
+ } |
|
| 12732 |
+ switch fieldNum {
|
|
| 12733 |
+ case 1: |
|
| 12734 |
+ if wireType != 0 {
|
|
| 12735 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Algorithm", wireType)
|
|
| 12736 |
+ } |
|
| 12737 |
+ m.Algorithm = 0 |
|
| 12738 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12739 |
+ if shift >= 64 {
|
|
| 12740 |
+ return ErrIntOverflowTypes |
|
| 12741 |
+ } |
|
| 12742 |
+ if iNdEx >= l {
|
|
| 12743 |
+ return io.ErrUnexpectedEOF |
|
| 12744 |
+ } |
|
| 12745 |
+ b := data[iNdEx] |
|
| 12746 |
+ iNdEx++ |
|
| 12747 |
+ m.Algorithm |= (MaybeEncryptedRecord_Algorithm(b) & 0x7F) << shift |
|
| 12748 |
+ if b < 0x80 {
|
|
| 12749 |
+ break |
|
| 12750 |
+ } |
|
| 12751 |
+ } |
|
| 12752 |
+ case 2: |
|
| 12753 |
+ if wireType != 2 {
|
|
| 12754 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
|
|
| 12755 |
+ } |
|
| 12756 |
+ var byteLen int |
|
| 12757 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12758 |
+ if shift >= 64 {
|
|
| 12759 |
+ return ErrIntOverflowTypes |
|
| 12760 |
+ } |
|
| 12761 |
+ if iNdEx >= l {
|
|
| 12762 |
+ return io.ErrUnexpectedEOF |
|
| 12763 |
+ } |
|
| 12764 |
+ b := data[iNdEx] |
|
| 12765 |
+ iNdEx++ |
|
| 12766 |
+ byteLen |= (int(b) & 0x7F) << shift |
|
| 12767 |
+ if b < 0x80 {
|
|
| 12768 |
+ break |
|
| 12769 |
+ } |
|
| 12770 |
+ } |
|
| 12771 |
+ if byteLen < 0 {
|
|
| 12772 |
+ return ErrInvalidLengthTypes |
|
| 12773 |
+ } |
|
| 12774 |
+ postIndex := iNdEx + byteLen |
|
| 12775 |
+ if postIndex > l {
|
|
| 12776 |
+ return io.ErrUnexpectedEOF |
|
| 12777 |
+ } |
|
| 12778 |
+ m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) |
|
| 12779 |
+ if m.Data == nil {
|
|
| 12780 |
+ m.Data = []byte{}
|
|
| 12781 |
+ } |
|
| 12782 |
+ iNdEx = postIndex |
|
| 12783 |
+ case 3: |
|
| 12784 |
+ if wireType != 2 {
|
|
| 12785 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType)
|
|
| 12786 |
+ } |
|
| 12787 |
+ var byteLen int |
|
| 12788 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 12789 |
+ if shift >= 64 {
|
|
| 12790 |
+ return ErrIntOverflowTypes |
|
| 12791 |
+ } |
|
| 12792 |
+ if iNdEx >= l {
|
|
| 12793 |
+ return io.ErrUnexpectedEOF |
|
| 12794 |
+ } |
|
| 12795 |
+ b := data[iNdEx] |
|
| 12796 |
+ iNdEx++ |
|
| 12797 |
+ byteLen |= (int(b) & 0x7F) << shift |
|
| 12798 |
+ if b < 0x80 {
|
|
| 12799 |
+ break |
|
| 12800 |
+ } |
|
| 12801 |
+ } |
|
| 12802 |
+ if byteLen < 0 {
|
|
| 12803 |
+ return ErrInvalidLengthTypes |
|
| 12804 |
+ } |
|
| 12805 |
+ postIndex := iNdEx + byteLen |
|
| 12806 |
+ if postIndex > l {
|
|
| 12807 |
+ return io.ErrUnexpectedEOF |
|
| 12808 |
+ } |
|
| 12809 |
+ m.Nonce = append(m.Nonce[:0], data[iNdEx:postIndex]...) |
|
| 12810 |
+ if m.Nonce == nil {
|
|
| 12811 |
+ m.Nonce = []byte{}
|
|
| 12812 |
+ } |
|
| 12813 |
+ iNdEx = postIndex |
|
| 12814 |
+ default: |
|
| 12815 |
+ iNdEx = preIndex |
|
| 12816 |
+ skippy, err := skipTypes(data[iNdEx:]) |
|
| 12817 |
+ if err != nil {
|
|
| 12818 |
+ return err |
|
| 12819 |
+ } |
|
| 12820 |
+ if skippy < 0 {
|
|
| 12821 |
+ return ErrInvalidLengthTypes |
|
| 12822 |
+ } |
|
| 12823 |
+ if (iNdEx + skippy) > l {
|
|
| 12824 |
+ return io.ErrUnexpectedEOF |
|
| 12825 |
+ } |
|
| 12826 |
+ iNdEx += skippy |
|
| 12827 |
+ } |
|
| 12828 |
+ } |
|
| 12829 |
+ |
|
| 12830 |
+ if iNdEx > l {
|
|
| 12831 |
+ return io.ErrUnexpectedEOF |
|
| 12832 |
+ } |
|
| 12833 |
+ return nil |
|
| 12834 |
+} |
|
| 12704 | 12835 |
func skipTypes(data []byte) (n int, err error) {
|
| 12705 | 12836 |
l := len(data) |
| 12706 | 12837 |
iNdEx := 0 |
| ... | ... |
@@ -12809,242 +13464,251 @@ var ( |
| 12809 | 12809 |
func init() { proto.RegisterFile("types.proto", fileDescriptorTypes) }
|
| 12810 | 12810 |
|
| 12811 | 12811 |
var fileDescriptorTypes = []byte{
|
| 12812 |
- // 3787 bytes of a gzipped FileDescriptorProto |
|
| 12813 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x59, 0x4d, 0x6c, 0x23, 0x47, |
|
| 12814 |
- 0x76, 0x16, 0x7f, 0x45, 0x3e, 0x52, 0x52, 0x4f, 0xcd, 0xec, 0x58, 0x43, 0x8f, 0x25, 0xba, 0xc7, |
|
| 12815 |
- 0xb3, 0x1e, 0xcf, 0x3a, 0xb4, 0x2d, 0x7b, 0x8d, 0x59, 0xcf, 0x66, 0xc7, 0xcd, 0x1f, 0x8d, 0xb8, |
|
| 12816 |
- 0x23, 0x51, 0x44, 0x91, 0x9a, 0x81, 0x11, 0x20, 0x44, 0xa9, 0xbb, 0x44, 0xb5, 0xd5, 0xec, 0x66, |
|
| 12817 |
- 0xba, 0x8b, 0xd2, 0x30, 0x41, 0x80, 0x41, 0x0e, 0x49, 0xa0, 0x53, 0xee, 0x81, 0xb0, 0x08, 0x12, |
|
| 12818 |
- 0xe4, 0x90, 0x43, 0xae, 0x01, 0x72, 0x32, 0x72, 0xf2, 0x2d, 0x9b, 0x04, 0x08, 0x16, 0x1b, 0x64, |
|
| 12819 |
- 0x10, 0x2b, 0xe7, 0x00, 0x7b, 0x09, 0x72, 0x48, 0x0e, 0x41, 0xfd, 0x74, 0xb3, 0xc9, 0xa1, 0x34, |
|
| 12820 |
- 0xf2, 0xae, 0x2f, 0x64, 0xd7, 0xab, 0xef, 0xbd, 0xfa, 0x7b, 0xf5, 0xea, 0x7b, 0x55, 0x50, 0x60, |
|
| 12821 |
- 0xe3, 0x21, 0x0d, 0x2a, 0x43, 0xdf, 0x63, 0x1e, 0x42, 0x96, 0x67, 0x1e, 0x51, 0xbf, 0x12, 0x9c, |
|
| 12822 |
- 0x10, 0x7f, 0x70, 0x64, 0xb3, 0xca, 0xf1, 0x47, 0xa5, 0x5b, 0xcc, 0x1e, 0xd0, 0x80, 0x91, 0xc1, |
|
| 12823 |
- 0xf0, 0x83, 0xe8, 0x4b, 0xc2, 0x4b, 0x6f, 0x58, 0x23, 0x9f, 0x30, 0xdb, 0x73, 0x3f, 0x08, 0x3f, |
|
| 12824 |
- 0x54, 0xc5, 0x8d, 0xbe, 0xd7, 0xf7, 0xc4, 0xe7, 0x07, 0xfc, 0x4b, 0x4a, 0xf5, 0x75, 0x58, 0x7c, |
|
| 12825 |
- 0x4a, 0xfd, 0xc0, 0xf6, 0x5c, 0x74, 0x03, 0x32, 0xb6, 0x6b, 0xd1, 0xe7, 0xab, 0x89, 0x72, 0xe2, |
|
| 12826 |
- 0x5e, 0x1a, 0xcb, 0x82, 0xfe, 0x17, 0x09, 0x28, 0x18, 0xae, 0xeb, 0x31, 0x61, 0x2b, 0x40, 0x08, |
|
| 12827 |
- 0xd2, 0x2e, 0x19, 0x50, 0x01, 0xca, 0x63, 0xf1, 0x8d, 0x6a, 0x90, 0x75, 0xc8, 0x3e, 0x75, 0x82, |
|
| 12828 |
- 0xd5, 0x64, 0x39, 0x75, 0xaf, 0xb0, 0xf1, 0x83, 0xca, 0xab, 0x7d, 0xae, 0xc4, 0x8c, 0x54, 0xb6, |
|
| 12829 |
- 0x05, 0xba, 0xe1, 0x32, 0x7f, 0x8c, 0x95, 0x6a, 0xe9, 0x47, 0x50, 0x88, 0x89, 0x91, 0x06, 0xa9, |
|
| 12830 |
- 0x23, 0x3a, 0x56, 0xcd, 0xf0, 0x4f, 0xde, 0xbf, 0x63, 0xe2, 0x8c, 0xe8, 0x6a, 0x52, 0xc8, 0x64, |
|
| 12831 |
- 0xe1, 0xb3, 0xe4, 0x83, 0x84, 0xfe, 0x05, 0xe4, 0x31, 0x0d, 0xbc, 0x91, 0x6f, 0xd2, 0x00, 0xbd, |
|
| 12832 |
- 0x07, 0x79, 0x97, 0xb8, 0x5e, 0xcf, 0x1c, 0x8e, 0x02, 0xa1, 0x9e, 0xaa, 0x16, 0xcf, 0x5f, 0xae, |
|
| 12833 |
- 0xe7, 0x5a, 0xc4, 0xf5, 0x6a, 0xed, 0xbd, 0x00, 0xe7, 0x78, 0x75, 0x6d, 0x38, 0x0a, 0xd0, 0xdb, |
|
| 12834 |
- 0x50, 0x1c, 0xd0, 0x81, 0xe7, 0x8f, 0x7b, 0xfb, 0x63, 0x46, 0x03, 0x61, 0x38, 0x85, 0x0b, 0x52, |
|
| 12835 |
- 0x56, 0xe5, 0x22, 0xfd, 0xcf, 0x12, 0x70, 0x23, 0xb4, 0x8d, 0xe9, 0xef, 0x8d, 0x6c, 0x9f, 0x0e, |
|
| 12836 |
- 0xa8, 0xcb, 0x02, 0xf4, 0x43, 0xc8, 0x3a, 0xf6, 0xc0, 0x66, 0xb2, 0x8d, 0xc2, 0xc6, 0x5b, 0xf3, |
|
| 12837 |
- 0xc6, 0x1c, 0xf5, 0x0a, 0x2b, 0x30, 0x32, 0xa0, 0xe8, 0xd3, 0x80, 0xfa, 0xc7, 0x72, 0x26, 0x44, |
|
| 12838 |
- 0x93, 0xaf, 0x55, 0x9e, 0x52, 0xd1, 0x37, 0x21, 0xd7, 0x76, 0x08, 0x3b, 0xf0, 0xfc, 0x01, 0xd2, |
|
| 12839 |
- 0xa1, 0x48, 0x7c, 0xf3, 0xd0, 0x66, 0xd4, 0x64, 0x23, 0x3f, 0x5c, 0x95, 0x29, 0x19, 0xba, 0x09, |
|
| 12840 |
- 0x49, 0x4f, 0x36, 0x94, 0xaf, 0x66, 0xcf, 0x5f, 0xae, 0x27, 0x77, 0x3b, 0x38, 0xe9, 0x05, 0xfa, |
|
| 12841 |
- 0x43, 0xb8, 0xd6, 0x76, 0x46, 0x7d, 0xdb, 0xad, 0xd3, 0xc0, 0xf4, 0xed, 0x21, 0xb7, 0xce, 0x97, |
|
| 12842 |
- 0x97, 0x3b, 0x5f, 0xb8, 0xbc, 0xfc, 0x3b, 0x5a, 0xf2, 0xe4, 0x64, 0xc9, 0xf5, 0x3f, 0x49, 0xc2, |
|
| 12843 |
- 0xb5, 0x86, 0xdb, 0xb7, 0x5d, 0x1a, 0xd7, 0xbe, 0x0b, 0xcb, 0x54, 0x08, 0x7b, 0xc7, 0xd2, 0xa9, |
|
| 12844 |
- 0x94, 0x9d, 0x25, 0x29, 0x0d, 0x3d, 0xad, 0x39, 0xe3, 0x2f, 0x1f, 0xcd, 0x1b, 0xfe, 0x2b, 0xd6, |
|
| 12845 |
- 0xe7, 0x79, 0x0d, 0x6a, 0xc0, 0xe2, 0x50, 0x0c, 0x22, 0x58, 0x4d, 0x09, 0x5b, 0x77, 0xe7, 0xd9, |
|
| 12846 |
- 0x7a, 0x65, 0x9c, 0xd5, 0xf4, 0xd7, 0x2f, 0xd7, 0x17, 0x70, 0xa8, 0xfb, 0x9b, 0x38, 0xdf, 0x7f, |
|
| 12847 |
- 0x26, 0x60, 0xa5, 0xe5, 0x59, 0x53, 0xf3, 0x50, 0x82, 0xdc, 0xa1, 0x17, 0xb0, 0xd8, 0x46, 0x89, |
|
| 12848 |
- 0xca, 0xe8, 0x01, 0xe4, 0x86, 0x6a, 0xf9, 0xd4, 0xea, 0xdf, 0x9e, 0xdf, 0x65, 0x89, 0xc1, 0x11, |
|
| 12849 |
- 0x1a, 0x3d, 0x84, 0xbc, 0x1f, 0xfa, 0xc4, 0x6a, 0xea, 0x2a, 0x8e, 0x33, 0xc1, 0xa3, 0xdf, 0x86, |
|
| 12850 |
- 0xac, 0x5c, 0x84, 0xd5, 0xb4, 0xd0, 0xbc, 0x7b, 0xa5, 0x39, 0xc7, 0x4a, 0x49, 0xff, 0x45, 0x02, |
|
| 12851 |
- 0x34, 0x4c, 0x0e, 0xd8, 0x0e, 0x1d, 0xec, 0x53, 0xbf, 0xc3, 0x08, 0x1b, 0x05, 0xe8, 0x26, 0x64, |
|
| 12852 |
- 0x1d, 0x4a, 0x2c, 0xea, 0x8b, 0x41, 0xe6, 0xb0, 0x2a, 0xa1, 0x3d, 0xee, 0xe4, 0xc4, 0x3c, 0x24, |
|
| 12853 |
- 0xfb, 0xb6, 0x63, 0xb3, 0xb1, 0x18, 0xe6, 0xf2, 0xfc, 0x55, 0x9e, 0xb5, 0x59, 0xc1, 0x31, 0x45, |
|
| 12854 |
- 0x3c, 0x65, 0x06, 0xad, 0xc2, 0xe2, 0x80, 0x06, 0x01, 0xe9, 0x53, 0x31, 0xfa, 0x3c, 0x0e, 0x8b, |
|
| 12855 |
- 0xfa, 0x43, 0x28, 0xc6, 0xf5, 0x50, 0x01, 0x16, 0xf7, 0x5a, 0x4f, 0x5a, 0xbb, 0xcf, 0x5a, 0xda, |
|
| 12856 |
- 0x02, 0x5a, 0x81, 0xc2, 0x5e, 0x0b, 0x37, 0x8c, 0xda, 0x96, 0x51, 0xdd, 0x6e, 0x68, 0x09, 0xb4, |
|
| 12857 |
- 0x04, 0xf9, 0x49, 0x31, 0xa9, 0xff, 0x2c, 0x01, 0xc0, 0x17, 0x50, 0x0d, 0xea, 0x33, 0xc8, 0x04, |
|
| 12858 |
- 0x8c, 0x30, 0xb9, 0x70, 0xcb, 0x1b, 0xef, 0xcc, 0xeb, 0xf5, 0x04, 0x5e, 0xe1, 0x7f, 0x14, 0x4b, |
|
| 12859 |
- 0x95, 0x78, 0x0f, 0x93, 0xb3, 0x3d, 0xcc, 0x08, 0xe4, 0x74, 0xd7, 0x72, 0x90, 0xae, 0xf3, 0xaf, |
|
| 12860 |
- 0x04, 0xca, 0x43, 0x06, 0x37, 0x8c, 0xfa, 0x17, 0x5a, 0x12, 0x69, 0x50, 0xac, 0x37, 0x3b, 0xb5, |
|
| 12861 |
- 0xdd, 0x56, 0xab, 0x51, 0xeb, 0x36, 0xea, 0x5a, 0x4a, 0xbf, 0x0b, 0x99, 0xe6, 0x80, 0xf4, 0x29, |
|
| 12862 |
- 0xba, 0xcd, 0x3d, 0xe0, 0x80, 0xfa, 0xd4, 0x35, 0x43, 0xc7, 0x9a, 0x08, 0xf4, 0x9f, 0xe7, 0x21, |
|
| 12863 |
- 0xb3, 0xe3, 0x8d, 0x5c, 0x86, 0x36, 0x62, 0xbb, 0x78, 0x79, 0x63, 0x6d, 0xde, 0x10, 0x04, 0xb0, |
|
| 12864 |
- 0xd2, 0x1d, 0x0f, 0xa9, 0xda, 0xe5, 0x37, 0x21, 0x2b, 0x7d, 0x45, 0x75, 0x5d, 0x95, 0xb8, 0x9c, |
|
| 12865 |
- 0x11, 0xbf, 0x4f, 0x99, 0x9a, 0x74, 0x55, 0x42, 0xf7, 0x20, 0xe7, 0x53, 0x62, 0x79, 0xae, 0x33, |
|
| 12866 |
- 0x16, 0x2e, 0x95, 0x93, 0x61, 0x16, 0x53, 0x62, 0xed, 0xba, 0xce, 0x18, 0x47, 0xb5, 0x68, 0x0b, |
|
| 12867 |
- 0x8a, 0xfb, 0xb6, 0x6b, 0xf5, 0xbc, 0xa1, 0x8c, 0x79, 0x99, 0x8b, 0x1d, 0x50, 0xf6, 0xaa, 0x6a, |
|
| 12868 |
- 0xbb, 0xd6, 0xae, 0x04, 0xe3, 0xc2, 0xfe, 0xa4, 0x80, 0x5a, 0xb0, 0x7c, 0xec, 0x39, 0xa3, 0x01, |
|
| 12869 |
- 0x8d, 0x6c, 0x65, 0x85, 0xad, 0x77, 0x2f, 0xb6, 0xf5, 0x54, 0xe0, 0x43, 0x6b, 0x4b, 0xc7, 0xf1, |
|
| 12870 |
- 0x22, 0x7a, 0x02, 0x4b, 0x6c, 0x30, 0x3c, 0x08, 0x22, 0x73, 0x8b, 0xc2, 0xdc, 0xf7, 0x2f, 0x99, |
|
| 12871 |
- 0x30, 0x0e, 0x0f, 0xad, 0x15, 0x59, 0xac, 0x54, 0xfa, 0xa3, 0x14, 0x14, 0x62, 0x3d, 0x47, 0x1d, |
|
| 12872 |
- 0x28, 0x0c, 0x7d, 0x6f, 0x48, 0xfa, 0x22, 0x6e, 0xab, 0xb5, 0xf8, 0xe8, 0x4a, 0xa3, 0xae, 0xb4, |
|
| 12873 |
- 0x27, 0x8a, 0x38, 0x6e, 0x45, 0x3f, 0x4b, 0x42, 0x21, 0x56, 0x89, 0xee, 0x43, 0x0e, 0xb7, 0x71, |
|
| 12874 |
- 0xf3, 0xa9, 0xd1, 0x6d, 0x68, 0x0b, 0xa5, 0xdb, 0xa7, 0x67, 0xe5, 0x55, 0x61, 0x2d, 0x6e, 0xa0, |
|
| 12875 |
- 0xed, 0xdb, 0xc7, 0xdc, 0xf5, 0xee, 0xc1, 0x62, 0x08, 0x4d, 0x94, 0xde, 0x3c, 0x3d, 0x2b, 0xbf, |
|
| 12876 |
- 0x31, 0x0b, 0x8d, 0x21, 0x71, 0x67, 0xcb, 0xc0, 0x8d, 0xba, 0x96, 0x9c, 0x8f, 0xc4, 0x9d, 0x43, |
|
| 12877 |
- 0xe2, 0x53, 0x0b, 0x7d, 0x1f, 0xb2, 0x0a, 0x98, 0x2a, 0x95, 0x4e, 0xcf, 0xca, 0x37, 0x67, 0x81, |
|
| 12878 |
- 0x13, 0x1c, 0xee, 0x6c, 0x1b, 0x4f, 0x1b, 0x5a, 0x7a, 0x3e, 0x0e, 0x77, 0x1c, 0x72, 0x4c, 0xd1, |
|
| 12879 |
- 0x3b, 0x90, 0x91, 0xb0, 0x4c, 0xe9, 0xd6, 0xe9, 0x59, 0xf9, 0x7b, 0xaf, 0x98, 0xe3, 0xa8, 0xd2, |
|
| 12880 |
- 0xea, 0x9f, 0xfe, 0xe5, 0xda, 0xc2, 0xdf, 0xff, 0xd5, 0x9a, 0x36, 0x5b, 0x5d, 0xfa, 0xbf, 0x04, |
|
| 12881 |
- 0x2c, 0x4d, 0x2d, 0x39, 0xd2, 0x21, 0xeb, 0x7a, 0xa6, 0x37, 0x94, 0xe1, 0x3c, 0x57, 0x85, 0xf3, |
|
| 12882 |
- 0x97, 0xeb, 0xd9, 0x96, 0x57, 0xf3, 0x86, 0x63, 0xac, 0x6a, 0xd0, 0x93, 0x99, 0x03, 0xe9, 0xe3, |
|
| 12883 |
- 0x2b, 0xfa, 0xd3, 0xdc, 0x23, 0xe9, 0x11, 0x2c, 0x59, 0xbe, 0x7d, 0x4c, 0xfd, 0x9e, 0xe9, 0xb9, |
|
| 12884 |
- 0x07, 0x76, 0x5f, 0x85, 0xea, 0xd2, 0x3c, 0x9b, 0x75, 0x01, 0xc4, 0x45, 0xa9, 0x50, 0x13, 0xf8, |
|
| 12885 |
- 0xdf, 0xe0, 0x30, 0x2a, 0x3d, 0x85, 0x62, 0xdc, 0x43, 0xd1, 0x5b, 0x00, 0x81, 0xfd, 0xfb, 0x54, |
|
| 12886 |
- 0xf1, 0x1b, 0xc1, 0x86, 0x70, 0x9e, 0x4b, 0x04, 0xbb, 0x41, 0xef, 0x42, 0x7a, 0xe0, 0x59, 0xd2, |
|
| 12887 |
- 0x4e, 0xa6, 0x7a, 0x9d, 0x9f, 0x89, 0xbf, 0x7c, 0xb9, 0x5e, 0xf0, 0x82, 0xca, 0xa6, 0xed, 0xd0, |
|
| 12888 |
- 0x1d, 0xcf, 0xa2, 0x58, 0x00, 0xf4, 0x63, 0x48, 0xf3, 0x50, 0x81, 0xde, 0x84, 0x74, 0xb5, 0xd9, |
|
| 12889 |
- 0xaa, 0x6b, 0x0b, 0xa5, 0x6b, 0xa7, 0x67, 0xe5, 0x25, 0x31, 0x25, 0xbc, 0x82, 0xfb, 0x2e, 0x5a, |
|
| 12890 |
- 0x87, 0xec, 0xd3, 0xdd, 0xed, 0xbd, 0x1d, 0xee, 0x5e, 0xd7, 0x4f, 0xcf, 0xca, 0x2b, 0x51, 0xb5, |
|
| 12891 |
- 0x9c, 0x34, 0xf4, 0x16, 0x64, 0xba, 0x3b, 0xed, 0xcd, 0x8e, 0x96, 0x2c, 0xa1, 0xd3, 0xb3, 0xf2, |
|
| 12892 |
- 0x72, 0x54, 0x2f, 0xfa, 0x5c, 0xba, 0xa6, 0x56, 0x35, 0x1f, 0xc9, 0xf5, 0xff, 0x4d, 0xc2, 0x12, |
|
| 12893 |
- 0xe6, 0xfc, 0xd6, 0x67, 0x6d, 0xcf, 0xb1, 0xcd, 0x31, 0x6a, 0x43, 0xde, 0xf4, 0x5c, 0xcb, 0x8e, |
|
| 12894 |
- 0xed, 0xa9, 0x8d, 0x0b, 0x0e, 0xc1, 0x89, 0x56, 0x58, 0xaa, 0x85, 0x9a, 0x78, 0x62, 0x04, 0x6d, |
|
| 12895 |
- 0x40, 0xc6, 0xa2, 0x0e, 0x19, 0x5f, 0x76, 0x1a, 0xd7, 0x15, 0x97, 0xc6, 0x12, 0x2a, 0x98, 0x23, |
|
| 12896 |
- 0x79, 0xde, 0x23, 0x8c, 0xd1, 0xc1, 0x90, 0xc9, 0xd3, 0x38, 0x8d, 0x0b, 0x03, 0xf2, 0xdc, 0x50, |
|
| 12897 |
- 0x22, 0xf4, 0x09, 0x64, 0x4f, 0x6c, 0xd7, 0xf2, 0x4e, 0xd4, 0x81, 0x7b, 0xb9, 0x5d, 0x85, 0xd5, |
|
| 12898 |
- 0x4f, 0xf9, 0x39, 0x3b, 0xd3, 0x59, 0x3e, 0xeb, 0xad, 0xdd, 0x56, 0x23, 0x9c, 0x75, 0x55, 0xbf, |
|
| 12899 |
- 0xeb, 0xb6, 0x3c, 0x97, 0xef, 0x18, 0xd8, 0x6d, 0xf5, 0x36, 0x8d, 0xe6, 0xf6, 0x1e, 0xe6, 0x33, |
|
| 12900 |
- 0x7f, 0xe3, 0xf4, 0xac, 0xac, 0x45, 0x90, 0x4d, 0x62, 0x3b, 0x9c, 0x04, 0xde, 0x82, 0x94, 0xd1, |
|
| 12901 |
- 0xfa, 0x42, 0x4b, 0x96, 0xb4, 0xd3, 0xb3, 0x72, 0x31, 0xaa, 0x36, 0xdc, 0xf1, 0x64, 0x33, 0xcd, |
|
| 12902 |
- 0xb6, 0xab, 0xff, 0x7b, 0x12, 0x8a, 0x7b, 0x43, 0x8b, 0x30, 0x2a, 0x3d, 0x13, 0x95, 0xa1, 0x30, |
|
| 12903 |
- 0x24, 0x3e, 0x71, 0x1c, 0xea, 0xd8, 0xc1, 0x40, 0x25, 0x0a, 0x71, 0x11, 0x7a, 0xf0, 0x2d, 0x26, |
|
| 12904 |
- 0x53, 0x91, 0x30, 0x35, 0xa5, 0x7b, 0xb0, 0x7c, 0x20, 0x3b, 0xdb, 0x23, 0xa6, 0x58, 0xdd, 0x94, |
|
| 12905 |
- 0x58, 0xdd, 0xca, 0x3c, 0x13, 0xf1, 0x5e, 0x55, 0xd4, 0x18, 0x0d, 0xa1, 0x85, 0x97, 0x0e, 0xe2, |
|
| 12906 |
- 0x45, 0xf4, 0x29, 0x2c, 0x0e, 0x3c, 0xd7, 0x66, 0x9e, 0x7f, 0xa5, 0x75, 0x08, 0xc1, 0xe8, 0x3e, |
|
| 12907 |
- 0x5c, 0xe3, 0x2b, 0x1c, 0x76, 0x49, 0x54, 0x8b, 0x93, 0x2b, 0x89, 0x57, 0x06, 0xe4, 0xb9, 0x6a, |
|
| 12908 |
- 0x13, 0x73, 0xb1, 0xfe, 0x29, 0x2c, 0x4d, 0xf5, 0x81, 0x9f, 0xe6, 0x6d, 0x63, 0xaf, 0xd3, 0xd0, |
|
| 12909 |
- 0x16, 0x50, 0x11, 0x72, 0xb5, 0xdd, 0x56, 0xb7, 0xd9, 0xda, 0xe3, 0xd4, 0xa3, 0x08, 0x39, 0xbc, |
|
| 12910 |
- 0xbb, 0xbd, 0x5d, 0x35, 0x6a, 0x4f, 0xb4, 0xa4, 0xfe, 0xdf, 0xd1, 0xfc, 0x2a, 0xee, 0x51, 0x9d, |
|
| 12911 |
- 0xe6, 0x1e, 0xef, 0x5f, 0x3c, 0x74, 0xc5, 0x3e, 0x26, 0x85, 0x88, 0x83, 0xfc, 0x18, 0x40, 0x2c, |
|
| 12912 |
- 0x23, 0xb5, 0x7a, 0x84, 0x5d, 0x96, 0x5f, 0x74, 0xc3, 0xcc, 0x11, 0xe7, 0x95, 0x82, 0xc1, 0xd0, |
|
| 12913 |
- 0xe7, 0x50, 0x34, 0xbd, 0xc1, 0xd0, 0xa1, 0x4a, 0x3f, 0x75, 0x15, 0xfd, 0x42, 0xa4, 0x62, 0xb0, |
|
| 12914 |
- 0x38, 0x07, 0x4a, 0x4f, 0x73, 0xa0, 0x3f, 0x4e, 0x40, 0x21, 0xd6, 0xe1, 0x69, 0x2a, 0x54, 0x84, |
|
| 12915 |
- 0xdc, 0x5e, 0xbb, 0x6e, 0x74, 0x9b, 0xad, 0xc7, 0x5a, 0x02, 0x01, 0x64, 0xc5, 0x04, 0xd6, 0xb5, |
|
| 12916 |
- 0x24, 0xa7, 0x6b, 0xb5, 0xdd, 0x9d, 0xf6, 0x76, 0x43, 0x90, 0x21, 0x74, 0x03, 0xb4, 0x70, 0x0a, |
|
| 12917 |
- 0x7b, 0x9d, 0xae, 0x81, 0xb9, 0x34, 0x8d, 0xae, 0xc3, 0x4a, 0x24, 0x55, 0x9a, 0x19, 0x74, 0x13, |
|
| 12918 |
- 0x50, 0x24, 0x9c, 0x98, 0xc8, 0xea, 0x7f, 0x08, 0x2b, 0x35, 0xcf, 0x65, 0xc4, 0x76, 0x23, 0x2a, |
|
| 12919 |
- 0xbb, 0xc1, 0xc7, 0xad, 0x44, 0x3d, 0xdb, 0x92, 0xd1, 0xb6, 0xba, 0x72, 0xfe, 0x72, 0xbd, 0x10, |
|
| 12920 |
- 0x41, 0x9b, 0x75, 0x3e, 0xd2, 0xb0, 0x60, 0xf1, 0x3d, 0x35, 0xb4, 0x2d, 0x15, 0x3c, 0x17, 0xcf, |
|
| 12921 |
- 0x5f, 0xae, 0xa7, 0xda, 0xcd, 0x3a, 0xe6, 0x32, 0xf4, 0x26, 0xe4, 0xe9, 0x73, 0x9b, 0xf5, 0x4c, |
|
| 12922 |
- 0x1e, 0x5d, 0xf9, 0x1c, 0x66, 0x70, 0x8e, 0x0b, 0x6a, 0x3c, 0x98, 0x56, 0x01, 0xda, 0x9e, 0xcf, |
|
| 12923 |
- 0x54, 0xcb, 0x9f, 0x40, 0x66, 0xe8, 0xf9, 0x22, 0x8f, 0xe4, 0x47, 0xcf, 0x5c, 0xb2, 0xc6, 0xe1, |
|
| 12924 |
- 0xd2, 0xd9, 0xb1, 0x04, 0xeb, 0xff, 0x90, 0x04, 0xe8, 0x92, 0xe0, 0x48, 0x19, 0x79, 0x08, 0xf9, |
|
| 12925 |
- 0xe8, 0x22, 0xe0, 0xb2, 0x84, 0x34, 0xb6, 0xe6, 0x11, 0x1e, 0x7d, 0x1c, 0x7a, 0x9d, 0xe4, 0xe9, |
|
| 12926 |
- 0xf3, 0x15, 0x55, 0x5b, 0xf3, 0xa8, 0xee, 0x34, 0x19, 0xe7, 0xe7, 0x15, 0xf5, 0x7d, 0xb5, 0xf8, |
|
| 12927 |
- 0xfc, 0x13, 0xd5, 0x44, 0xcc, 0x96, 0xf3, 0xa6, 0xd8, 0xdf, 0x9d, 0x79, 0x8d, 0xcc, 0x2c, 0xca, |
|
| 12928 |
- 0xd6, 0x02, 0x9e, 0xe8, 0xa1, 0x47, 0x50, 0xe0, 0x43, 0xef, 0x05, 0xa2, 0x4e, 0x11, 0xbf, 0x0b, |
|
| 12929 |
- 0x67, 0x4b, 0x5a, 0xc0, 0x30, 0x8c, 0xbe, 0xab, 0x1a, 0x2c, 0xfb, 0x23, 0x97, 0x0f, 0x5b, 0xd9, |
|
| 12930 |
- 0xd0, 0x6d, 0x78, 0xa3, 0x45, 0xd9, 0x89, 0xe7, 0x1f, 0x19, 0x8c, 0x11, 0xf3, 0x90, 0x67, 0xf6, |
|
| 12931 |
- 0x2a, 0xd2, 0x4d, 0x58, 0x6f, 0x62, 0x8a, 0xf5, 0xae, 0xc2, 0x22, 0x71, 0x6c, 0x12, 0x50, 0x49, |
|
| 12932 |
- 0x15, 0xf2, 0x38, 0x2c, 0x72, 0x6e, 0x4e, 0x2c, 0xcb, 0xa7, 0x41, 0x40, 0x65, 0x2e, 0x9a, 0xc7, |
|
| 12933 |
- 0x13, 0x81, 0xfe, 0x2f, 0x49, 0x80, 0x66, 0xdb, 0xd8, 0x51, 0xe6, 0xeb, 0x90, 0x3d, 0x20, 0x03, |
|
| 12934 |
- 0xdb, 0x19, 0x5f, 0xb6, 0xd3, 0x27, 0xf8, 0x8a, 0x21, 0x0d, 0x6d, 0x0a, 0x1d, 0xac, 0x74, 0x05, |
|
| 12935 |
- 0x65, 0x1f, 0xed, 0xbb, 0x94, 0x45, 0x94, 0x5d, 0x94, 0x38, 0x3f, 0xf0, 0x89, 0x1b, 0xad, 0x8c, |
|
| 12936 |
- 0x2c, 0xf0, 0xae, 0xf7, 0x09, 0xa3, 0x27, 0x64, 0x1c, 0x6e, 0x4c, 0x55, 0x44, 0x5b, 0x9c, 0xca, |
|
| 12937 |
- 0x07, 0xd4, 0x3f, 0xa6, 0xd6, 0x6a, 0x46, 0x78, 0xe1, 0xeb, 0xfa, 0x83, 0x15, 0x5c, 0x32, 0x9f, |
|
| 12938 |
- 0x48, 0xbb, 0xf4, 0x50, 0x1c, 0xd7, 0x93, 0xaa, 0x6f, 0x95, 0x49, 0x7f, 0x08, 0x4b, 0x53, 0xe3, |
|
| 12939 |
- 0x7c, 0x25, 0x57, 0x6a, 0xb6, 0x9f, 0x7e, 0xa2, 0xa5, 0xd5, 0xd7, 0xa7, 0x5a, 0x56, 0xff, 0x9b, |
|
| 12940 |
- 0x94, 0xdc, 0x4a, 0x6a, 0x56, 0xe7, 0xdf, 0x4d, 0xe5, 0xc4, 0x4d, 0x97, 0xe9, 0x39, 0xca, 0xbf, |
|
| 12941 |
- 0xdf, 0xbd, 0x7c, 0x87, 0x71, 0xee, 0x2d, 0xe0, 0x38, 0x52, 0x44, 0xeb, 0x50, 0x90, 0xeb, 0xdf, |
|
| 12942 |
- 0xe3, 0xfe, 0x24, 0xa6, 0x75, 0x09, 0x83, 0x14, 0x71, 0x4d, 0x74, 0x17, 0x96, 0x87, 0xa3, 0x7d, |
|
| 12943 |
- 0xc7, 0x0e, 0x0e, 0xa9, 0x25, 0x31, 0x69, 0x81, 0x59, 0x8a, 0xa4, 0x02, 0xb6, 0x03, 0x45, 0x25, |
|
| 12944 |
- 0xe8, 0x09, 0xde, 0x95, 0x11, 0x1d, 0xba, 0xff, 0xba, 0x0e, 0x49, 0x15, 0x41, 0xc7, 0x0a, 0xc3, |
|
| 12945 |
- 0x49, 0x41, 0xaf, 0x43, 0x2e, 0xec, 0x2c, 0x5a, 0x85, 0x54, 0xb7, 0xd6, 0xd6, 0x16, 0x4a, 0x2b, |
|
| 12946 |
- 0xa7, 0x67, 0xe5, 0x42, 0x28, 0xee, 0xd6, 0xda, 0xbc, 0x66, 0xaf, 0xde, 0xd6, 0x12, 0xd3, 0x35, |
|
| 12947 |
- 0x7b, 0xf5, 0x76, 0x29, 0xcd, 0x4f, 0x7e, 0xfd, 0x00, 0x0a, 0xb1, 0x16, 0xd0, 0x1d, 0x58, 0x6c, |
|
| 12948 |
- 0xb6, 0x1e, 0xe3, 0x46, 0xa7, 0xa3, 0x2d, 0x94, 0x6e, 0x9e, 0x9e, 0x95, 0x51, 0xac, 0xb6, 0xe9, |
|
| 12949 |
- 0xf6, 0xf9, 0xfa, 0xa0, 0xb7, 0x20, 0xbd, 0xb5, 0xdb, 0xe9, 0x86, 0x44, 0x2f, 0x86, 0xd8, 0xf2, |
|
| 12950 |
- 0x02, 0x56, 0xba, 0xae, 0x28, 0x45, 0xdc, 0xb0, 0xfe, 0xe7, 0x09, 0xc8, 0x4a, 0xbe, 0x3b, 0x77, |
|
| 12951 |
- 0xa1, 0x0c, 0x58, 0x0c, 0xb3, 0x30, 0x49, 0xc2, 0xdf, 0xbd, 0x98, 0x30, 0x57, 0x14, 0xbf, 0x95, |
|
| 12952 |
- 0xee, 0x17, 0xea, 0x95, 0x3e, 0x83, 0x62, 0xbc, 0xe2, 0x5b, 0x39, 0xdf, 0x1f, 0x40, 0x81, 0xfb, |
|
| 12953 |
- 0x77, 0x48, 0x9c, 0x37, 0x20, 0x2b, 0x39, 0xb9, 0x8a, 0xa6, 0x97, 0xb1, 0x77, 0x85, 0x44, 0x0f, |
|
| 12954 |
- 0x60, 0x51, 0x32, 0xfe, 0xf0, 0x2e, 0x6a, 0xed, 0xf2, 0x5d, 0x84, 0x43, 0xb8, 0xfe, 0x08, 0xd2, |
|
| 12955 |
- 0x6d, 0x4a, 0x7d, 0x3e, 0xf7, 0xae, 0x67, 0xd1, 0xc9, 0x01, 0xa4, 0x92, 0x15, 0x8b, 0x36, 0xeb, |
|
| 12956 |
- 0x3c, 0x59, 0xb1, 0x68, 0xd3, 0xe2, 0x93, 0xc7, 0xe3, 0x4a, 0x78, 0x1d, 0xc7, 0xbf, 0xf5, 0x2e, |
|
| 12957 |
- 0x14, 0x9f, 0x51, 0xbb, 0x7f, 0xc8, 0xa8, 0x25, 0x0c, 0xbd, 0x0f, 0xe9, 0x21, 0x8d, 0x3a, 0xbf, |
|
| 12958 |
- 0x3a, 0xd7, 0xc1, 0x28, 0xf5, 0xb1, 0x40, 0xf1, 0x38, 0x72, 0x22, 0xb4, 0xd5, 0x0d, 0xa8, 0x2a, |
|
| 12959 |
- 0xe9, 0xff, 0x9c, 0x84, 0xe5, 0x66, 0x10, 0x8c, 0x88, 0x6b, 0x86, 0x0c, 0xe5, 0x27, 0xd3, 0x0c, |
|
| 12960 |
- 0xe5, 0xde, 0xdc, 0x11, 0x4e, 0xa9, 0x4c, 0xdf, 0x90, 0xa8, 0xc3, 0x21, 0x19, 0x1d, 0x0e, 0xfa, |
|
| 12961 |
- 0x7f, 0x25, 0xc2, 0xab, 0x91, 0xbb, 0xb1, 0xed, 0x5e, 0x5a, 0x3d, 0x3d, 0x2b, 0xdf, 0x88, 0x5b, |
|
| 12962 |
- 0xa2, 0x7b, 0xee, 0x91, 0xeb, 0x9d, 0xb8, 0xe8, 0x6d, 0xc8, 0xe0, 0x46, 0xab, 0xf1, 0x4c, 0x4b, |
|
| 12963 |
- 0x48, 0xf7, 0x9c, 0x02, 0x61, 0xea, 0xd2, 0x13, 0x6e, 0xa9, 0xdd, 0x68, 0xd5, 0x39, 0x97, 0x48, |
|
| 12964 |
- 0xce, 0xb1, 0xd4, 0xa6, 0xae, 0x65, 0xbb, 0x7d, 0x74, 0x07, 0xb2, 0xcd, 0x4e, 0x67, 0x4f, 0x24, |
|
| 12965 |
- 0xaf, 0x6f, 0x9c, 0x9e, 0x95, 0xaf, 0x4f, 0xa1, 0x78, 0x81, 0x5a, 0x1c, 0xc4, 0xc9, 0x35, 0x67, |
|
| 12966 |
- 0x19, 0x73, 0x40, 0x9c, 0xf7, 0x49, 0x10, 0xde, 0xed, 0xf2, 0xcc, 0x3a, 0x33, 0x07, 0x84, 0x3d, |
|
| 12967 |
- 0xfe, 0xab, 0xb6, 0xdb, 0xbf, 0x25, 0x41, 0x33, 0x4c, 0x93, 0x0e, 0x19, 0xaf, 0x57, 0x59, 0x4d, |
|
| 12968 |
- 0x17, 0x72, 0x43, 0xfe, 0x65, 0xd3, 0x90, 0x07, 0x3c, 0x98, 0x7b, 0x87, 0x3e, 0xa3, 0x57, 0xc1, |
|
| 12969 |
- 0x9e, 0x43, 0x0d, 0x6b, 0x60, 0x07, 0x01, 0xcf, 0xde, 0x85, 0x0c, 0x47, 0x96, 0x4a, 0xbf, 0x4a, |
|
| 12970 |
- 0xc0, 0xf5, 0x39, 0x08, 0xf4, 0x21, 0xa4, 0x7d, 0xcf, 0x09, 0xd7, 0xf0, 0xf6, 0x45, 0x37, 0x5c, |
|
| 12971 |
- 0x5c, 0x15, 0x0b, 0x24, 0x5a, 0x03, 0x20, 0x23, 0xe6, 0x11, 0xd1, 0xbe, 0x58, 0xbd, 0x1c, 0x8e, |
|
| 12972 |
- 0x49, 0xd0, 0x33, 0xc8, 0x06, 0xd4, 0xf4, 0x69, 0x48, 0x18, 0x1f, 0xfd, 0xba, 0xbd, 0xaf, 0x74, |
|
| 12973 |
- 0x84, 0x19, 0xac, 0xcc, 0x95, 0x2a, 0x90, 0x95, 0x12, 0xee, 0xf6, 0x16, 0x61, 0x44, 0x74, 0xba, |
|
| 12974 |
- 0x88, 0xc5, 0x37, 0xf7, 0x26, 0xe2, 0xf4, 0x43, 0x6f, 0x22, 0x4e, 0x5f, 0xff, 0x59, 0x12, 0xa0, |
|
| 12975 |
- 0xf1, 0x9c, 0x51, 0xdf, 0x25, 0x4e, 0xcd, 0x40, 0x8d, 0x58, 0xf4, 0x97, 0xa3, 0x7d, 0x6f, 0xee, |
|
| 12976 |
- 0xbd, 0x67, 0xa4, 0x51, 0xa9, 0x19, 0x73, 0xe2, 0xff, 0x2d, 0x48, 0x8d, 0x7c, 0x47, 0xdd, 0xa1, |
|
| 12977 |
- 0x0b, 0xa6, 0xb7, 0x87, 0xb7, 0x31, 0x97, 0xa1, 0xc6, 0x24, 0x6c, 0xa5, 0x2e, 0x7e, 0xfc, 0x88, |
|
| 12978 |
- 0x35, 0xf0, 0xdd, 0x87, 0xae, 0xf7, 0x01, 0x26, 0xbd, 0x46, 0x6b, 0x90, 0xa9, 0x6d, 0x76, 0x3a, |
|
| 12979 |
- 0xdb, 0xda, 0x82, 0x8c, 0xcd, 0x93, 0x2a, 0x21, 0xd6, 0xff, 0x3a, 0x01, 0xb9, 0x9a, 0xa1, 0x4e, |
|
| 12980 |
- 0xcc, 0x4d, 0xd0, 0x44, 0xc0, 0x31, 0xa9, 0xcf, 0x7a, 0xf4, 0xf9, 0xd0, 0xf6, 0xc7, 0x2a, 0x66, |
|
| 12981 |
- 0x5c, 0x9e, 0x26, 0x2d, 0x73, 0xad, 0x1a, 0xf5, 0x59, 0x43, 0xe8, 0x20, 0x0c, 0x45, 0xaa, 0x86, |
|
| 12982 |
- 0xd8, 0x33, 0x49, 0x18, 0xc1, 0xd7, 0x2e, 0x9f, 0x0a, 0x49, 0xaf, 0x27, 0xe5, 0x00, 0x17, 0x42, |
|
| 12983 |
- 0x23, 0x35, 0x12, 0xe8, 0x4f, 0xe1, 0xfa, 0xae, 0x6f, 0x1e, 0xd2, 0x80, 0xc9, 0x46, 0x55, 0x97, |
|
| 12984 |
- 0x1f, 0xc1, 0x6d, 0x46, 0x82, 0xa3, 0xde, 0xa1, 0x1d, 0x30, 0xcf, 0x1f, 0xf7, 0x7c, 0xca, 0xa8, |
|
| 12985 |
- 0xcb, 0xeb, 0x7b, 0xe2, 0x89, 0x45, 0x5d, 0x72, 0xdc, 0xe2, 0x98, 0x2d, 0x09, 0xc1, 0x21, 0x62, |
|
| 12986 |
- 0x9b, 0x03, 0xf4, 0x26, 0x14, 0x39, 0x9b, 0xad, 0xd3, 0x03, 0x32, 0x72, 0x58, 0x80, 0x7e, 0x04, |
|
| 12987 |
- 0xe0, 0x78, 0xfd, 0xde, 0x95, 0xc3, 0x7d, 0xde, 0xf1, 0xfa, 0xf2, 0x53, 0xff, 0x1d, 0xd0, 0xea, |
|
| 12988 |
- 0x76, 0x30, 0x24, 0xcc, 0x3c, 0x0c, 0x6f, 0x6f, 0xd0, 0x63, 0xd0, 0x0e, 0x29, 0xf1, 0xd9, 0x3e, |
|
| 12989 |
- 0x25, 0xac, 0x37, 0xa4, 0xbe, 0xed, 0x59, 0x57, 0x9a, 0xd2, 0x95, 0x48, 0xab, 0x2d, 0x94, 0xf4, |
|
| 12990 |
- 0xff, 0x49, 0x00, 0x60, 0x72, 0x10, 0x92, 0x9b, 0x1f, 0xc0, 0xb5, 0xc0, 0x25, 0xc3, 0xe0, 0xd0, |
|
| 12991 |
- 0x63, 0x3d, 0xdb, 0x65, 0xd4, 0x3f, 0x26, 0x8e, 0xca, 0xc0, 0xb5, 0xb0, 0xa2, 0xa9, 0xe4, 0xe8, |
|
| 12992 |
- 0x7d, 0x40, 0x47, 0x94, 0x0e, 0x7b, 0x9e, 0x63, 0xf5, 0xc2, 0x4a, 0xf9, 0x06, 0x94, 0xc6, 0x1a, |
|
| 12993 |
- 0xaf, 0xd9, 0x75, 0xac, 0x4e, 0x28, 0x47, 0x55, 0x58, 0xe3, 0x33, 0x40, 0x5d, 0xe6, 0xdb, 0x34, |
|
| 12994 |
- 0xe8, 0x1d, 0x78, 0x7e, 0x2f, 0x70, 0xbc, 0x93, 0xde, 0x81, 0xe7, 0x38, 0xde, 0x09, 0xf5, 0xc3, |
|
| 12995 |
- 0xfb, 0x8d, 0x92, 0xe3, 0xf5, 0x1b, 0x12, 0xb4, 0xe9, 0xf9, 0x1d, 0xc7, 0x3b, 0xd9, 0x0c, 0x11, |
|
| 12996 |
- 0x9c, 0x01, 0x4d, 0x86, 0xcd, 0x6c, 0xf3, 0x28, 0x64, 0x40, 0x91, 0xb4, 0x6b, 0x9b, 0x47, 0xe8, |
|
| 12997 |
- 0x0e, 0x2c, 0x51, 0x87, 0x8a, 0x2c, 0x59, 0xa2, 0x32, 0x02, 0x55, 0x0c, 0x85, 0x1c, 0xa4, 0xff, |
|
| 12998 |
- 0x16, 0xe4, 0xdb, 0x0e, 0x31, 0xc5, 0x4b, 0x1b, 0x2a, 0x03, 0x4f, 0xba, 0xb8, 0x13, 0xd8, 0xae, |
|
| 12999 |
- 0xca, 0x92, 0xf2, 0x38, 0x2e, 0xd2, 0x7f, 0x02, 0xf0, 0x53, 0xcf, 0x76, 0xbb, 0xde, 0x11, 0x75, |
|
| 13000 |
- 0xc5, 0xa3, 0x04, 0x67, 0xf4, 0x6a, 0x29, 0xf3, 0x58, 0x95, 0x44, 0xc2, 0x42, 0x5c, 0xd2, 0xa7, |
|
| 13001 |
- 0x7e, 0x74, 0x37, 0x2f, 0x8b, 0xfa, 0xd7, 0x09, 0xc8, 0x62, 0xcf, 0x63, 0x35, 0x03, 0x95, 0x21, |
|
| 13002 |
- 0x6b, 0x92, 0x5e, 0xb8, 0xf3, 0x8a, 0xd5, 0xfc, 0xf9, 0xcb, 0xf5, 0x4c, 0xcd, 0x78, 0x42, 0xc7, |
|
| 13003 |
- 0x38, 0x63, 0x92, 0x27, 0x74, 0xcc, 0x8f, 0x68, 0x93, 0x88, 0xfd, 0x22, 0xcc, 0x14, 0xe5, 0x11, |
|
| 13004 |
- 0x5d, 0x33, 0xf8, 0x66, 0xc0, 0x59, 0x93, 0xf0, 0x7f, 0xf4, 0x21, 0x14, 0x15, 0xa8, 0x77, 0x48, |
|
| 13005 |
- 0x82, 0x43, 0xc9, 0xc3, 0xab, 0xcb, 0xe7, 0x2f, 0xd7, 0x41, 0x22, 0xb7, 0x48, 0x70, 0x88, 0x41, |
|
| 13006 |
- 0xa2, 0xf9, 0x37, 0x6a, 0x40, 0xe1, 0x4b, 0xcf, 0x76, 0x7b, 0x4c, 0x0c, 0x42, 0x5d, 0x55, 0xcc, |
|
| 13007 |
- 0xdd, 0x3f, 0x93, 0xa1, 0xaa, 0xfb, 0x13, 0xf8, 0x32, 0x92, 0xe8, 0xff, 0x9a, 0x80, 0x02, 0xb7, |
|
| 13008 |
- 0x69, 0x1f, 0xd8, 0x26, 0x3f, 0x52, 0xbf, 0x7d, 0xa4, 0xbf, 0x05, 0x29, 0x33, 0xf0, 0xd5, 0xd8, |
|
| 13009 |
- 0x44, 0xa8, 0xab, 0x75, 0x30, 0xe6, 0x32, 0xf4, 0x39, 0x64, 0x55, 0xf2, 0x25, 0x83, 0xbc, 0xfe, |
|
| 13010 |
- 0xfa, 0xc3, 0x5f, 0x75, 0x51, 0xe9, 0x89, 0xb5, 0x9c, 0xf4, 0x4e, 0x8c, 0xb2, 0x88, 0xe3, 0x22, |
|
| 13011 |
- 0x74, 0x13, 0x92, 0xa6, 0x2b, 0x9c, 0x42, 0x3d, 0x56, 0xd6, 0x5a, 0x38, 0x69, 0xba, 0xfa, 0x3f, |
|
| 13012 |
- 0x25, 0x60, 0xa9, 0xe1, 0x9a, 0xfe, 0x58, 0x04, 0x49, 0xbe, 0x10, 0xb7, 0x21, 0x1f, 0x8c, 0xf6, |
|
| 13013 |
- 0x83, 0x71, 0xc0, 0xe8, 0x20, 0x7c, 0x0b, 0x89, 0x04, 0xa8, 0x09, 0x79, 0xe2, 0xf4, 0x3d, 0xdf, |
|
| 13014 |
- 0x66, 0x87, 0x03, 0xc5, 0xfb, 0xe7, 0x07, 0xe6, 0xb8, 0xcd, 0x8a, 0x11, 0xaa, 0xe0, 0x89, 0x76, |
|
| 13015 |
- 0x18, 0x8a, 0x53, 0xa2, 0xb3, 0x22, 0x14, 0xbf, 0x0d, 0x45, 0x87, 0x0c, 0x44, 0x36, 0xca, 0xd3, |
|
| 13016 |
- 0x49, 0x31, 0x8e, 0x34, 0x2e, 0x28, 0x19, 0xcf, 0xb1, 0x75, 0x1d, 0xf2, 0x91, 0x31, 0xb4, 0x02, |
|
| 13017 |
- 0x05, 0xa3, 0xd1, 0xe9, 0x7d, 0xb4, 0xf1, 0xa0, 0xf7, 0xb8, 0xb6, 0xa3, 0x2d, 0x28, 0x26, 0xf0, |
|
| 13018 |
- 0x77, 0x09, 0x58, 0xda, 0x91, 0x3e, 0xa8, 0xd8, 0xd5, 0x1d, 0x58, 0xf4, 0xc9, 0x01, 0x0b, 0xf9, |
|
| 13019 |
- 0x5f, 0x5a, 0x3a, 0x17, 0x0f, 0x02, 0x9c, 0xff, 0xf1, 0xaa, 0xf9, 0xfc, 0x2f, 0xf6, 0x12, 0x97, |
|
| 13020 |
- 0xba, 0xf4, 0x25, 0x2e, 0xfd, 0x9d, 0xbc, 0xc4, 0xe9, 0xbf, 0x4c, 0xc0, 0x8a, 0x3a, 0xa8, 0xc3, |
|
| 13021 |
- 0xd7, 0x27, 0xf4, 0x1e, 0xe4, 0xe5, 0x99, 0x3d, 0x61, 0xaf, 0xe2, 0x41, 0x48, 0xe2, 0x9a, 0x75, |
|
| 13022 |
- 0x9c, 0x93, 0xd5, 0x4d, 0x0b, 0xfd, 0x38, 0x76, 0xed, 0x7c, 0x01, 0x87, 0x9c, 0xb1, 0x5e, 0x99, |
|
| 13023 |
- 0xdc, 0x45, 0x5f, 0xf8, 0x20, 0xb5, 0x0e, 0x05, 0xd5, 0x01, 0x91, 0x5b, 0xc8, 0x1c, 0x17, 0xa4, |
|
| 13024 |
- 0xa8, 0x45, 0x06, 0x54, 0xbf, 0x0b, 0x69, 0x91, 0xe1, 0x00, 0x64, 0x3b, 0x5f, 0x74, 0xba, 0x8d, |
|
| 13025 |
- 0x1d, 0x99, 0x55, 0x6e, 0x36, 0xc5, 0xab, 0xe0, 0x22, 0xa4, 0x1a, 0xad, 0xa7, 0x5a, 0x52, 0xdf, |
|
| 13026 |
- 0x85, 0x9b, 0x55, 0x87, 0x98, 0x47, 0x8e, 0x1d, 0x30, 0x6a, 0xc5, 0x77, 0xd3, 0x0f, 0x21, 0x3b, |
|
| 13027 |
- 0x75, 0x46, 0xbe, 0xe6, 0x8a, 0x45, 0x81, 0xf5, 0xbf, 0x4d, 0x40, 0x71, 0x8b, 0x12, 0x87, 0x1d, |
|
| 13028 |
- 0x4e, 0xf2, 0x54, 0x46, 0x03, 0xa6, 0x62, 0x99, 0xf8, 0x46, 0x0f, 0x20, 0x17, 0x45, 0xf5, 0xab, |
|
| 13029 |
- 0x5c, 0x44, 0x47, 0x68, 0xf4, 0x29, 0x2c, 0x72, 0x2f, 0xf4, 0x46, 0x21, 0xf9, 0x7a, 0xcd, 0x0d, |
|
| 13030 |
- 0xa7, 0x02, 0xf3, 0x80, 0xe8, 0x53, 0x11, 0xcc, 0xc5, 0x5c, 0x65, 0x70, 0x58, 0xbc, 0xff, 0x8f, |
|
| 13031 |
- 0x29, 0xc8, 0x47, 0x17, 0x3e, 0x3c, 0x22, 0x70, 0xb6, 0xbd, 0x20, 0xaf, 0x8e, 0x23, 0x79, 0x8b, |
|
| 13032 |
- 0x9e, 0xa0, 0xb7, 0x27, 0x3c, 0xfb, 0x73, 0x79, 0xf1, 0x1c, 0x55, 0x87, 0x1c, 0xfb, 0x1d, 0xc8, |
|
| 13033 |
- 0x19, 0x9d, 0x4e, 0xf3, 0x71, 0xab, 0x51, 0xd7, 0xbe, 0x4a, 0x94, 0xbe, 0x77, 0x7a, 0x56, 0xbe, |
|
| 13034 |
- 0x16, 0x81, 0x8c, 0x20, 0xb0, 0xfb, 0x2e, 0xb5, 0x04, 0xaa, 0x56, 0x6b, 0xb4, 0xbb, 0x8d, 0xba, |
|
| 13035 |
- 0xf6, 0x22, 0x39, 0x8b, 0x12, 0xbc, 0x51, 0x3c, 0x22, 0xe5, 0xdb, 0xb8, 0xd1, 0x36, 0x30, 0x6f, |
|
| 13036 |
- 0xf0, 0xab, 0xa4, 0xa4, 0xff, 0x93, 0x16, 0x7d, 0x3a, 0x24, 0x3e, 0x6f, 0x73, 0x2d, 0x7c, 0x4c, |
|
| 13037 |
- 0x7d, 0x91, 0x92, 0x0f, 0x0d, 0x93, 0xdb, 0x2b, 0x4a, 0xac, 0x31, 0x6f, 0x4d, 0xdc, 0x1c, 0x0a, |
|
| 13038 |
- 0x33, 0xa9, 0x99, 0xd6, 0x3a, 0x8c, 0xf8, 0x8c, 0x5b, 0xd1, 0x61, 0x11, 0xef, 0xb5, 0x5a, 0x1c, |
|
| 13039 |
- 0xf4, 0x22, 0x3d, 0x33, 0x3a, 0x3c, 0x72, 0x5d, 0x8e, 0xb9, 0x0b, 0xb9, 0xf0, 0x62, 0x51, 0xfb, |
|
| 13040 |
- 0x2a, 0x3d, 0xd3, 0xa1, 0x5a, 0x78, 0x2b, 0x2a, 0x1a, 0xdc, 0xda, 0xeb, 0x8a, 0xb7, 0xde, 0x17, |
|
| 13041 |
- 0x99, 0xd9, 0x06, 0x0f, 0x47, 0xcc, 0xe2, 0x89, 0x4d, 0x39, 0xca, 0x34, 0xbe, 0xca, 0x48, 0xee, |
|
| 13042 |
- 0x16, 0x61, 0x54, 0x9a, 0xf1, 0x0e, 0xe4, 0x70, 0xe3, 0xa7, 0xf2, 0x59, 0xf8, 0x45, 0x76, 0xc6, |
|
| 13043 |
- 0x0e, 0xa6, 0x5f, 0x52, 0x93, 0x51, 0x6b, 0xf2, 0x8e, 0x12, 0x55, 0xdd, 0xff, 0x5d, 0xc8, 0x85, |
|
| 13044 |
- 0x71, 0x1e, 0xad, 0x41, 0xf6, 0xd9, 0x2e, 0x7e, 0xd2, 0xc0, 0xda, 0x82, 0x9c, 0x9d, 0xb0, 0xe6, |
|
| 13045 |
- 0x99, 0x3c, 0x28, 0xcb, 0xb0, 0xb8, 0x63, 0xb4, 0x8c, 0xc7, 0x0d, 0x1c, 0xa6, 0xf7, 0x21, 0x40, |
|
| 13046 |
- 0x05, 0xab, 0x92, 0xa6, 0x1a, 0x88, 0x6c, 0x56, 0x6f, 0x7f, 0xfd, 0xcd, 0xda, 0xc2, 0x2f, 0xbe, |
|
| 13047 |
- 0x59, 0x5b, 0xf8, 0xd5, 0x37, 0x6b, 0x89, 0x17, 0xe7, 0x6b, 0x89, 0xaf, 0xcf, 0xd7, 0x12, 0x3f, |
|
| 13048 |
- 0x3f, 0x5f, 0x4b, 0xfc, 0xc7, 0xf9, 0x5a, 0x62, 0x3f, 0x2b, 0x88, 0xf4, 0xc7, 0xff, 0x1f, 0x00, |
|
| 13049 |
- 0x00, 0xff, 0xff, 0x24, 0x7a, 0x55, 0x47, 0xd8, 0x24, 0x00, 0x00, |
|
| 12812 |
+ // 3932 bytes of a gzipped FileDescriptorProto |
|
| 12813 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x79, 0x4d, 0x6c, 0x1b, 0x49, |
|
| 12814 |
+ 0x76, 0xbf, 0xf8, 0x29, 0xf2, 0x91, 0x92, 0xda, 0x65, 0xaf, 0x47, 0xe6, 0x78, 0x24, 0x4e, 0x7b, |
|
| 12815 |
+ 0xbc, 0xe3, 0xf1, 0xce, 0x9f, 0x63, 0x6b, 0x3e, 0xe0, 0x1d, 0xff, 0xb3, 0x9e, 0xe6, 0x87, 0x2c, |
|
| 12816 |
+ 0xae, 0x25, 0x92, 0x28, 0x52, 0x76, 0x06, 0x01, 0x42, 0x94, 0xba, 0x4b, 0x54, 0x8f, 0x9a, 0xdd, |
|
| 12817 |
+ 0x4c, 0x77, 0x51, 0x32, 0x13, 0x04, 0x31, 0x72, 0x48, 0x02, 0x9d, 0x72, 0x0f, 0x84, 0x20, 0x48, |
|
| 12818 |
+ 0x90, 0x43, 0x0e, 0x7b, 0xc9, 0x21, 0x40, 0x4e, 0x83, 0x9c, 0xe6, 0x96, 0x4d, 0x02, 0x04, 0x8b, |
|
| 12819 |
+ 0x04, 0x31, 0x32, 0xca, 0x39, 0xc0, 0x5e, 0x82, 0x1c, 0x92, 0x00, 0x41, 0x7d, 0x74, 0xb3, 0x29, |
|
| 12820 |
+ 0xd3, 0xb2, 0x26, 0xbb, 0x17, 0xb2, 0xeb, 0xd5, 0xef, 0xbd, 0xfa, 0x7a, 0x55, 0xf5, 0x7b, 0xaf, |
|
| 12821 |
+ 0xa0, 0xc0, 0x26, 0x23, 0x1a, 0x54, 0x46, 0xbe, 0xc7, 0x3c, 0x84, 0x2c, 0xcf, 0x3c, 0xa4, 0x7e, |
|
| 12822 |
+ 0x25, 0x38, 0x26, 0xfe, 0xf0, 0xd0, 0x66, 0x95, 0xa3, 0xfb, 0xa5, 0x1b, 0xcc, 0x1e, 0xd2, 0x80, |
|
| 12823 |
+ 0x91, 0xe1, 0xe8, 0xa3, 0xe8, 0x4b, 0xc2, 0x4b, 0x6f, 0x59, 0x63, 0x9f, 0x30, 0xdb, 0x73, 0x3f, |
|
| 12824 |
+ 0x0a, 0x3f, 0x54, 0xc5, 0xb5, 0x81, 0x37, 0xf0, 0xc4, 0xe7, 0x47, 0xfc, 0x4b, 0x4a, 0xf5, 0x75, |
|
| 12825 |
+ 0x58, 0x7c, 0x4a, 0xfd, 0xc0, 0xf6, 0x5c, 0x74, 0x0d, 0x32, 0xb6, 0x6b, 0xd1, 0xe7, 0xab, 0x89, |
|
| 12826 |
+ 0x72, 0xe2, 0x4e, 0x1a, 0xcb, 0x82, 0xfe, 0x27, 0x09, 0x28, 0x18, 0xae, 0xeb, 0x31, 0x61, 0x2b, |
|
| 12827 |
+ 0x40, 0x08, 0xd2, 0x2e, 0x19, 0x52, 0x01, 0xca, 0x63, 0xf1, 0x8d, 0x6a, 0x90, 0x75, 0xc8, 0x1e, |
|
| 12828 |
+ 0x75, 0x82, 0xd5, 0x64, 0x39, 0x75, 0xa7, 0xb0, 0xf1, 0x83, 0xca, 0xab, 0x7d, 0xae, 0xc4, 0x8c, |
|
| 12829 |
+ 0x54, 0xb6, 0x05, 0xba, 0xe1, 0x32, 0x7f, 0x82, 0x95, 0x6a, 0xe9, 0x87, 0x50, 0x88, 0x89, 0x91, |
|
| 12830 |
+ 0x06, 0xa9, 0x43, 0x3a, 0x51, 0xcd, 0xf0, 0x4f, 0xde, 0xbf, 0x23, 0xe2, 0x8c, 0xe9, 0x6a, 0x52, |
|
| 12831 |
+ 0xc8, 0x64, 0xe1, 0xf3, 0xe4, 0x83, 0x84, 0xfe, 0x25, 0xe4, 0x31, 0x0d, 0xbc, 0xb1, 0x6f, 0xd2, |
|
| 12832 |
+ 0x00, 0x7d, 0x00, 0x79, 0x97, 0xb8, 0x5e, 0xdf, 0x1c, 0x8d, 0x03, 0xa1, 0x9e, 0xaa, 0x16, 0xcf, |
|
| 12833 |
+ 0x5e, 0xae, 0xe7, 0x5a, 0xc4, 0xf5, 0x6a, 0x9d, 0xdd, 0x00, 0xe7, 0x78, 0x75, 0x6d, 0x34, 0x0e, |
|
| 12834 |
+ 0xd0, 0xbb, 0x50, 0x1c, 0xd2, 0xa1, 0xe7, 0x4f, 0xfa, 0x7b, 0x13, 0x46, 0x03, 0x61, 0x38, 0x85, |
|
| 12835 |
+ 0x0b, 0x52, 0x56, 0xe5, 0x22, 0xfd, 0x0f, 0x13, 0x70, 0x2d, 0xb4, 0x8d, 0xe9, 0x6f, 0x8c, 0x6d, |
|
| 12836 |
+ 0x9f, 0x0e, 0xa9, 0xcb, 0x02, 0xf4, 0x29, 0x64, 0x1d, 0x7b, 0x68, 0x33, 0xd9, 0x46, 0x61, 0xe3, |
|
| 12837 |
+ 0x9d, 0x79, 0x63, 0x8e, 0x7a, 0x85, 0x15, 0x18, 0x19, 0x50, 0xf4, 0x69, 0x40, 0xfd, 0x23, 0x39, |
|
| 12838 |
+ 0x13, 0xa2, 0xc9, 0x37, 0x2a, 0xcf, 0xa8, 0xe8, 0x9b, 0x90, 0xeb, 0x38, 0x84, 0xed, 0x7b, 0xfe, |
|
| 12839 |
+ 0x10, 0xe9, 0x50, 0x24, 0xbe, 0x79, 0x60, 0x33, 0x6a, 0xb2, 0xb1, 0x1f, 0xae, 0xca, 0x8c, 0x0c, |
|
| 12840 |
+ 0x5d, 0x87, 0xa4, 0x27, 0x1b, 0xca, 0x57, 0xb3, 0x67, 0x2f, 0xd7, 0x93, 0xed, 0x2e, 0x4e, 0x7a, |
|
| 12841 |
+ 0x81, 0xfe, 0x10, 0xae, 0x74, 0x9c, 0xf1, 0xc0, 0x76, 0xeb, 0x34, 0x30, 0x7d, 0x7b, 0xc4, 0xad, |
|
| 12842 |
+ 0xf3, 0xe5, 0xe5, 0xce, 0x17, 0x2e, 0x2f, 0xff, 0x8e, 0x96, 0x3c, 0x39, 0x5d, 0x72, 0xfd, 0xf7, |
|
| 12843 |
+ 0x93, 0x70, 0xa5, 0xe1, 0x0e, 0x6c, 0x97, 0xc6, 0xb5, 0x6f, 0xc3, 0x32, 0x15, 0xc2, 0xfe, 0x91, |
|
| 12844 |
+ 0x74, 0x2a, 0x65, 0x67, 0x49, 0x4a, 0x43, 0x4f, 0x6b, 0x9e, 0xf3, 0x97, 0xfb, 0xf3, 0x86, 0xff, |
|
| 12845 |
+ 0x8a, 0xf5, 0x79, 0x5e, 0x83, 0x1a, 0xb0, 0x38, 0x12, 0x83, 0x08, 0x56, 0x53, 0xc2, 0xd6, 0xed, |
|
| 12846 |
+ 0x79, 0xb6, 0x5e, 0x19, 0x67, 0x35, 0xfd, 0xcd, 0xcb, 0xf5, 0x05, 0x1c, 0xea, 0xfe, 0x22, 0xce, |
|
| 12847 |
+ 0xf7, 0x6f, 0x09, 0x58, 0x69, 0x79, 0xd6, 0xcc, 0x3c, 0x94, 0x20, 0x77, 0xe0, 0x05, 0x2c, 0xb6, |
|
| 12848 |
+ 0x51, 0xa2, 0x32, 0x7a, 0x00, 0xb9, 0x91, 0x5a, 0x3e, 0xb5, 0xfa, 0x37, 0xe7, 0x77, 0x59, 0x62, |
|
| 12849 |
+ 0x70, 0x84, 0x46, 0x0f, 0x21, 0xef, 0x87, 0x3e, 0xb1, 0x9a, 0xba, 0x8c, 0xe3, 0x4c, 0xf1, 0xe8, |
|
| 12850 |
+ 0x57, 0x20, 0x2b, 0x17, 0x61, 0x35, 0x2d, 0x34, 0x6f, 0x5f, 0x6a, 0xce, 0xb1, 0x52, 0xd2, 0x7f, |
|
| 12851 |
+ 0x96, 0x00, 0x0d, 0x93, 0x7d, 0xb6, 0x43, 0x87, 0x7b, 0xd4, 0xef, 0x32, 0xc2, 0xc6, 0x01, 0xba, |
|
| 12852 |
+ 0x0e, 0x59, 0x87, 0x12, 0x8b, 0xfa, 0x62, 0x90, 0x39, 0xac, 0x4a, 0x68, 0x97, 0x3b, 0x39, 0x31, |
|
| 12853 |
+ 0x0f, 0xc8, 0x9e, 0xed, 0xd8, 0x6c, 0x22, 0x86, 0xb9, 0x3c, 0x7f, 0x95, 0xcf, 0xdb, 0xac, 0xe0, |
|
| 12854 |
+ 0x98, 0x22, 0x9e, 0x31, 0x83, 0x56, 0x61, 0x71, 0x48, 0x83, 0x80, 0x0c, 0xa8, 0x18, 0x7d, 0x1e, |
|
| 12855 |
+ 0x87, 0x45, 0xfd, 0x21, 0x14, 0xe3, 0x7a, 0xa8, 0x00, 0x8b, 0xbb, 0xad, 0x27, 0xad, 0xf6, 0xb3, |
|
| 12856 |
+ 0x96, 0xb6, 0x80, 0x56, 0xa0, 0xb0, 0xdb, 0xc2, 0x0d, 0xa3, 0xb6, 0x65, 0x54, 0xb7, 0x1b, 0x5a, |
|
| 12857 |
+ 0x02, 0x2d, 0x41, 0x7e, 0x5a, 0x4c, 0xea, 0x7f, 0x99, 0x00, 0xe0, 0x0b, 0xa8, 0x06, 0xf5, 0x39, |
|
| 12858 |
+ 0x64, 0x02, 0x46, 0x98, 0x5c, 0xb8, 0xe5, 0x8d, 0xf7, 0xe6, 0xf5, 0x7a, 0x0a, 0xaf, 0xf0, 0x3f, |
|
| 12859 |
+ 0x8a, 0xa5, 0x4a, 0xbc, 0x87, 0xc9, 0x99, 0x1e, 0xf2, 0x3d, 0x44, 0x2c, 0xcb, 0x57, 0x1d, 0x17, |
|
| 12860 |
+ 0xdf, 0xfa, 0x43, 0xc8, 0x08, 0xed, 0xd9, 0xee, 0xe6, 0x20, 0x5d, 0xe7, 0x5f, 0x09, 0x94, 0x87, |
|
| 12861 |
+ 0x0c, 0x6e, 0x18, 0xf5, 0x2f, 0xb5, 0x24, 0xd2, 0xa0, 0x58, 0x6f, 0x76, 0x6b, 0xed, 0x56, 0xab, |
|
| 12862 |
+ 0x51, 0xeb, 0x35, 0xea, 0x5a, 0x4a, 0xbf, 0x0d, 0x99, 0xe6, 0x90, 0x5b, 0xbe, 0xc9, 0xbd, 0x62, |
|
| 12863 |
+ 0x9f, 0xfa, 0xd4, 0x35, 0x43, 0x67, 0x9b, 0x0a, 0xf4, 0x9f, 0xe6, 0x21, 0xb3, 0xe3, 0x8d, 0x5d, |
|
| 12864 |
+ 0x86, 0x36, 0x62, 0x3b, 0x7b, 0x79, 0x63, 0x6d, 0xde, 0xb0, 0x04, 0xb0, 0xd2, 0x9b, 0x8c, 0xa8, |
|
| 12865 |
+ 0xda, 0xf9, 0xd7, 0x21, 0x2b, 0xfd, 0x47, 0x0d, 0x47, 0x95, 0xb8, 0x9c, 0x11, 0x7f, 0x40, 0x99, |
|
| 12866 |
+ 0x1a, 0x8f, 0x2a, 0xa1, 0x3b, 0x90, 0xf3, 0x29, 0xb1, 0x3c, 0xd7, 0x99, 0x08, 0x37, 0xcb, 0xc9, |
|
| 12867 |
+ 0xa3, 0x17, 0x53, 0x62, 0xb5, 0x5d, 0x67, 0x82, 0xa3, 0x5a, 0xb4, 0x05, 0xc5, 0x3d, 0xdb, 0xb5, |
|
| 12868 |
+ 0xfa, 0xde, 0x48, 0x9e, 0x83, 0x99, 0xd7, 0x3b, 0xa5, 0xec, 0x55, 0xd5, 0x76, 0xad, 0xb6, 0x04, |
|
| 12869 |
+ 0xe3, 0xc2, 0xde, 0xb4, 0x80, 0x5a, 0xb0, 0x7c, 0xe4, 0x39, 0xe3, 0x21, 0x8d, 0x6c, 0x65, 0x85, |
|
| 12870 |
+ 0xad, 0xf7, 0x5f, 0x6f, 0xeb, 0xa9, 0xc0, 0x87, 0xd6, 0x96, 0x8e, 0xe2, 0x45, 0xf4, 0x04, 0x96, |
|
| 12871 |
+ 0xd8, 0x70, 0xb4, 0x1f, 0x44, 0xe6, 0x16, 0x85, 0xb9, 0xef, 0x5f, 0x30, 0x61, 0x1c, 0x1e, 0x5a, |
|
| 12872 |
+ 0x2b, 0xb2, 0x58, 0xa9, 0xf4, 0xbb, 0x29, 0x28, 0xc4, 0x7a, 0x8e, 0xba, 0x50, 0x18, 0xf9, 0xde, |
|
| 12873 |
+ 0x88, 0x0c, 0xc4, 0x59, 0xae, 0xd6, 0xe2, 0xfe, 0xa5, 0x46, 0x5d, 0xe9, 0x4c, 0x15, 0x71, 0xdc, |
|
| 12874 |
+ 0x8a, 0x7e, 0x9a, 0x84, 0x42, 0xac, 0x12, 0xdd, 0x85, 0x1c, 0xee, 0xe0, 0xe6, 0x53, 0xa3, 0xd7, |
|
| 12875 |
+ 0xd0, 0x16, 0x4a, 0x37, 0x4f, 0x4e, 0xcb, 0xab, 0xc2, 0x5a, 0xdc, 0x40, 0xc7, 0xb7, 0x8f, 0xb8, |
|
| 12876 |
+ 0xeb, 0xdd, 0x81, 0xc5, 0x10, 0x9a, 0x28, 0xbd, 0x7d, 0x72, 0x5a, 0x7e, 0xeb, 0x3c, 0x34, 0x86, |
|
| 12877 |
+ 0xc4, 0xdd, 0x2d, 0x03, 0x37, 0xea, 0x5a, 0x72, 0x3e, 0x12, 0x77, 0x0f, 0x88, 0x4f, 0x2d, 0xf4, |
|
| 12878 |
+ 0x7d, 0xc8, 0x2a, 0x60, 0xaa, 0x54, 0x3a, 0x39, 0x2d, 0x5f, 0x3f, 0x0f, 0x9c, 0xe2, 0x70, 0x77, |
|
| 12879 |
+ 0xdb, 0x78, 0xda, 0xd0, 0xd2, 0xf3, 0x71, 0xb8, 0xeb, 0x90, 0x23, 0x8a, 0xde, 0x83, 0x8c, 0x84, |
|
| 12880 |
+ 0x65, 0x4a, 0x37, 0x4e, 0x4e, 0xcb, 0xdf, 0x7b, 0xc5, 0x1c, 0x47, 0x95, 0x56, 0xff, 0xe0, 0x4f, |
|
| 12881 |
+ 0xd7, 0x16, 0xfe, 0xfa, 0xcf, 0xd6, 0xb4, 0xf3, 0xd5, 0xa5, 0xff, 0x4e, 0xc0, 0xd2, 0xcc, 0x92, |
|
| 12882 |
+ 0x23, 0x1d, 0xb2, 0xae, 0x67, 0x7a, 0x23, 0x79, 0xc4, 0xe7, 0xaa, 0x70, 0xf6, 0x72, 0x3d, 0xdb, |
|
| 12883 |
+ 0xf2, 0x6a, 0xde, 0x68, 0x82, 0x55, 0x0d, 0x7a, 0x72, 0xee, 0x92, 0xfa, 0xf8, 0x92, 0xfe, 0x34, |
|
| 12884 |
+ 0xf7, 0x9a, 0x7a, 0x04, 0x4b, 0x96, 0x6f, 0x1f, 0x51, 0xbf, 0x6f, 0x7a, 0xee, 0xbe, 0x3d, 0x50, |
|
| 12885 |
+ 0xc7, 0x77, 0x69, 0x9e, 0xcd, 0xba, 0x00, 0xe2, 0xa2, 0x54, 0xa8, 0x09, 0xfc, 0x2f, 0x70, 0x41, |
|
| 12886 |
+ 0x95, 0x9e, 0x42, 0x31, 0xee, 0xa1, 0xe8, 0x1d, 0x80, 0xc0, 0xfe, 0x4d, 0xaa, 0x38, 0x8f, 0x60, |
|
| 12887 |
+ 0x48, 0x38, 0xcf, 0x25, 0x82, 0xf1, 0xa0, 0xf7, 0x21, 0x3d, 0xf4, 0x2c, 0x69, 0x67, 0xa9, 0x7a, |
|
| 12888 |
+ 0x95, 0xdf, 0x93, 0xff, 0xf4, 0x72, 0xbd, 0xe0, 0x05, 0x95, 0x4d, 0xdb, 0xa1, 0x3b, 0x9e, 0x45, |
|
| 12889 |
+ 0xb1, 0x00, 0xe8, 0x47, 0x90, 0xe6, 0x47, 0x05, 0x7a, 0x1b, 0xd2, 0xd5, 0x66, 0xab, 0xae, 0x2d, |
|
| 12890 |
+ 0x94, 0xae, 0x9c, 0x9c, 0x96, 0x97, 0xc4, 0x94, 0xf0, 0x0a, 0xee, 0xbb, 0x68, 0x1d, 0xb2, 0x4f, |
|
| 12891 |
+ 0xdb, 0xdb, 0xbb, 0x3b, 0xdc, 0xbd, 0xae, 0x9e, 0x9c, 0x96, 0x57, 0xa2, 0x6a, 0x39, 0x69, 0xe8, |
|
| 12892 |
+ 0x1d, 0xc8, 0xf4, 0x76, 0x3a, 0x9b, 0x5d, 0x2d, 0x59, 0x42, 0x27, 0xa7, 0xe5, 0xe5, 0xa8, 0x5e, |
|
| 12893 |
+ 0xf4, 0xb9, 0x74, 0x45, 0xad, 0x6a, 0x3e, 0x92, 0xeb, 0xff, 0x95, 0x84, 0x25, 0xcc, 0x39, 0xaf, |
|
| 12894 |
+ 0xcf, 0x3a, 0x9e, 0x63, 0x9b, 0x13, 0xd4, 0x81, 0xbc, 0xe9, 0xb9, 0x96, 0x1d, 0xdb, 0x53, 0x1b, |
|
| 12895 |
+ 0xaf, 0xb9, 0x18, 0xa7, 0x5a, 0x61, 0xa9, 0x16, 0x6a, 0xe2, 0xa9, 0x11, 0xb4, 0x01, 0x19, 0x8b, |
|
| 12896 |
+ 0x3a, 0x64, 0x72, 0xd1, 0x0d, 0x5d, 0x57, 0xfc, 0x1a, 0x4b, 0xa8, 0x60, 0x93, 0xe4, 0x79, 0x9f, |
|
| 12897 |
+ 0x30, 0x46, 0x87, 0x23, 0x26, 0x6f, 0xe8, 0x34, 0x2e, 0x0c, 0xc9, 0x73, 0x43, 0x89, 0xd0, 0x27, |
|
| 12898 |
+ 0x90, 0x3d, 0xb6, 0x5d, 0xcb, 0x3b, 0x56, 0x97, 0xf0, 0xc5, 0x76, 0x15, 0x56, 0x3f, 0xe1, 0x77, |
|
| 12899 |
+ 0xef, 0xb9, 0xce, 0xf2, 0x59, 0x6f, 0xb5, 0x5b, 0x8d, 0x70, 0xd6, 0x55, 0x7d, 0xdb, 0x6d, 0x79, |
|
| 12900 |
+ 0x2e, 0xdf, 0x31, 0xd0, 0x6e, 0xf5, 0x37, 0x8d, 0xe6, 0xf6, 0x2e, 0xe6, 0x33, 0x7f, 0xed, 0xe4, |
|
| 12901 |
+ 0xb4, 0xac, 0x45, 0x90, 0x4d, 0x62, 0x3b, 0x9c, 0x18, 0xde, 0x80, 0x94, 0xd1, 0xfa, 0x52, 0x4b, |
|
| 12902 |
+ 0x96, 0xb4, 0x93, 0xd3, 0x72, 0x31, 0xaa, 0x36, 0xdc, 0xc9, 0x74, 0x33, 0x9d, 0x6f, 0x57, 0xff, |
|
| 12903 |
+ 0x97, 0x24, 0x14, 0x77, 0x47, 0x16, 0x61, 0x54, 0x7a, 0x26, 0x2a, 0x43, 0x61, 0x44, 0x7c, 0xe2, |
|
| 12904 |
+ 0x38, 0xd4, 0xb1, 0x83, 0xa1, 0x0a, 0x1e, 0xe2, 0x22, 0xf4, 0xe0, 0x3b, 0x4c, 0xa6, 0x22, 0x66, |
|
| 12905 |
+ 0x6a, 0x4a, 0x77, 0x61, 0x79, 0x5f, 0x76, 0xb6, 0x4f, 0x4c, 0xb1, 0xba, 0x29, 0xb1, 0xba, 0x95, |
|
| 12906 |
+ 0x79, 0x26, 0xe2, 0xbd, 0xaa, 0xa8, 0x31, 0x1a, 0x42, 0x0b, 0x2f, 0xed, 0xc7, 0x8b, 0xe8, 0x33, |
|
| 12907 |
+ 0x58, 0x1c, 0x7a, 0xae, 0xcd, 0x3c, 0xff, 0x52, 0xeb, 0x10, 0x82, 0xd1, 0x5d, 0xb8, 0xc2, 0x57, |
|
| 12908 |
+ 0x38, 0xec, 0x92, 0xa8, 0x16, 0x37, 0x57, 0x12, 0xaf, 0x0c, 0xc9, 0x73, 0xd5, 0x26, 0xe6, 0x62, |
|
| 12909 |
+ 0xfd, 0x33, 0x58, 0x9a, 0xe9, 0x03, 0xbf, 0xcd, 0x3b, 0xc6, 0x6e, 0xb7, 0xa1, 0x2d, 0xa0, 0x22, |
|
| 12910 |
+ 0xe4, 0x6a, 0xed, 0x56, 0xaf, 0xd9, 0xda, 0xe5, 0x74, 0xa4, 0x08, 0x39, 0xdc, 0xde, 0xde, 0xae, |
|
| 12911 |
+ 0x1a, 0xb5, 0x27, 0x5a, 0x52, 0xff, 0x8f, 0x68, 0x7e, 0x15, 0x1f, 0xa9, 0xce, 0xf2, 0x91, 0x0f, |
|
| 12912 |
+ 0x5f, 0x3f, 0x74, 0xc5, 0x48, 0xa6, 0x85, 0x88, 0x97, 0xfc, 0x7f, 0x00, 0xb1, 0x8c, 0xd4, 0xea, |
|
| 12913 |
+ 0x13, 0x76, 0x51, 0xcc, 0xd1, 0x0b, 0xa3, 0x49, 0x9c, 0x57, 0x0a, 0x06, 0x43, 0x5f, 0x40, 0xd1, |
|
| 12914 |
+ 0xf4, 0x86, 0x23, 0x87, 0x2a, 0xfd, 0xd4, 0x65, 0xf4, 0x0b, 0x91, 0x8a, 0xc1, 0xe2, 0xbc, 0x28, |
|
| 12915 |
+ 0x3d, 0xcb, 0xdc, 0x7e, 0x2f, 0x01, 0x85, 0x58, 0x87, 0x67, 0xa9, 0x50, 0x11, 0x72, 0xbb, 0x9d, |
|
| 12916 |
+ 0xba, 0xd1, 0x6b, 0xb6, 0x1e, 0x6b, 0x09, 0x04, 0x90, 0x15, 0x13, 0x58, 0xd7, 0x92, 0x9c, 0xc2, |
|
| 12917 |
+ 0xd5, 0xda, 0x3b, 0x9d, 0xed, 0x86, 0x20, 0x43, 0xe8, 0x1a, 0x68, 0xe1, 0x14, 0xf6, 0xbb, 0x3d, |
|
| 12918 |
+ 0x03, 0x73, 0x69, 0x1a, 0x5d, 0x85, 0x95, 0x48, 0xaa, 0x34, 0x33, 0xe8, 0x3a, 0xa0, 0x48, 0x38, |
|
| 12919 |
+ 0x35, 0x91, 0xd5, 0x7f, 0x1b, 0x56, 0x6a, 0x9e, 0xcb, 0x88, 0xed, 0x46, 0xf4, 0x76, 0x83, 0x8f, |
|
| 12920 |
+ 0x5b, 0x89, 0xfa, 0xb6, 0x25, 0x4f, 0xdb, 0xea, 0xca, 0xd9, 0xcb, 0xf5, 0x42, 0x04, 0x6d, 0xd6, |
|
| 12921 |
+ 0xf9, 0x48, 0xc3, 0x82, 0xc5, 0xf7, 0xd4, 0xc8, 0xb6, 0xc4, 0x14, 0x67, 0xaa, 0x8b, 0x67, 0x2f, |
|
| 12922 |
+ 0xd7, 0x53, 0x9d, 0x66, 0x1d, 0x73, 0x19, 0x7a, 0x1b, 0xf2, 0xf4, 0xb9, 0xcd, 0xfa, 0x26, 0x3f, |
|
| 12923 |
+ 0x5d, 0xf9, 0x1c, 0x66, 0x70, 0x8e, 0x0b, 0x6a, 0xfc, 0x30, 0xad, 0x02, 0x74, 0x3c, 0x9f, 0xa9, |
|
| 12924 |
+ 0x96, 0x3f, 0x81, 0xcc, 0xc8, 0xf3, 0x45, 0x6c, 0xc9, 0xaf, 0x9e, 0xb9, 0x64, 0x8d, 0xc3, 0xa5, |
|
| 12925 |
+ 0xb3, 0x63, 0x09, 0xd6, 0xff, 0x26, 0x09, 0xd0, 0x23, 0xc1, 0xa1, 0x32, 0xf2, 0x10, 0xf2, 0x51, |
|
| 12926 |
+ 0x72, 0xe0, 0xa2, 0x20, 0x35, 0xb6, 0xe6, 0x11, 0x1e, 0x7d, 0x1c, 0x7a, 0x9d, 0xe4, 0xee, 0xf3, |
|
| 12927 |
+ 0x15, 0x55, 0x5b, 0xf3, 0xe8, 0xef, 0x2c, 0x41, 0xe7, 0xf7, 0x15, 0xf5, 0x7d, 0xb5, 0xf8, 0xfc, |
|
| 12928 |
+ 0x13, 0xd5, 0xc4, 0x99, 0x2d, 0xe7, 0x4d, 0xb1, 0xbf, 0x5b, 0xf3, 0x1a, 0x39, 0xb7, 0x28, 0x5b, |
|
| 12929 |
+ 0x0b, 0x78, 0xaa, 0x87, 0x1e, 0x41, 0x81, 0x0f, 0xbd, 0x1f, 0x88, 0x3a, 0x45, 0xfc, 0x5e, 0x3b, |
|
| 12930 |
+ 0x5b, 0xd2, 0x02, 0x86, 0x51, 0xf4, 0x5d, 0xd5, 0x60, 0xd9, 0x1f, 0xbb, 0x7c, 0xd8, 0xca, 0x86, |
|
| 12931 |
+ 0x6e, 0xc3, 0x5b, 0x2d, 0xca, 0x8e, 0x3d, 0xff, 0xd0, 0x60, 0x8c, 0x98, 0x07, 0x3c, 0xda, 0x57, |
|
| 12932 |
+ 0x27, 0xdd, 0x94, 0xf5, 0x26, 0x66, 0x58, 0xef, 0x2a, 0x2c, 0x12, 0xc7, 0x26, 0x01, 0x95, 0x54, |
|
| 12933 |
+ 0x21, 0x8f, 0xc3, 0x22, 0xe7, 0xe6, 0x9c, 0xe9, 0xd3, 0x20, 0xa0, 0x32, 0x3e, 0xcd, 0xe3, 0xa9, |
|
| 12934 |
+ 0x40, 0xff, 0x87, 0x24, 0x40, 0xb3, 0x63, 0xec, 0x28, 0xf3, 0x75, 0xc8, 0xee, 0x93, 0xa1, 0xed, |
|
| 12935 |
+ 0x4c, 0x2e, 0xda, 0xe9, 0x53, 0x7c, 0xc5, 0x90, 0x86, 0x36, 0x85, 0x0e, 0x56, 0xba, 0x82, 0xb2, |
|
| 12936 |
+ 0x8f, 0xf7, 0x5c, 0xca, 0x22, 0xca, 0x2e, 0x4a, 0x9c, 0x1f, 0xf8, 0xc4, 0x8d, 0x56, 0x46, 0x16, |
|
| 12937 |
+ 0x78, 0xd7, 0x07, 0x84, 0xd1, 0x63, 0x32, 0x09, 0x37, 0xa6, 0x2a, 0xa2, 0x2d, 0x4e, 0xe5, 0x03, |
|
| 12938 |
+ 0xea, 0x1f, 0x51, 0x6b, 0x35, 0x23, 0xbc, 0xf0, 0x4d, 0xfd, 0xc1, 0x0a, 0x2e, 0x99, 0x4f, 0xa4, |
|
| 12939 |
+ 0x5d, 0x7a, 0x28, 0xae, 0xeb, 0x69, 0xd5, 0x77, 0x8a, 0xae, 0xef, 0xc1, 0xd2, 0xcc, 0x38, 0x5f, |
|
| 12940 |
+ 0x89, 0x95, 0x9a, 0x9d, 0xa7, 0x9f, 0x68, 0x69, 0xf5, 0xf5, 0x99, 0x96, 0xd5, 0xff, 0x22, 0x25, |
|
| 12941 |
+ 0xb7, 0x92, 0x9a, 0xd5, 0xf9, 0xf9, 0xaa, 0x9c, 0xc8, 0x7e, 0x99, 0x9e, 0xa3, 0xfc, 0xfb, 0xfd, |
|
| 12942 |
+ 0x8b, 0x77, 0x18, 0xe7, 0xde, 0x02, 0x8e, 0x23, 0x45, 0xb4, 0x0e, 0x05, 0xb9, 0xfe, 0x7d, 0xee, |
|
| 12943 |
+ 0x4f, 0x62, 0x5a, 0x97, 0x30, 0x48, 0x11, 0xd7, 0x44, 0xb7, 0x61, 0x79, 0x34, 0xde, 0x73, 0xec, |
|
| 12944 |
+ 0xe0, 0x80, 0x5a, 0x12, 0x93, 0x16, 0x98, 0xa5, 0x48, 0x2a, 0x60, 0x3b, 0x50, 0x54, 0x82, 0xbe, |
|
| 12945 |
+ 0xe0, 0x5d, 0x19, 0xd1, 0xa1, 0xbb, 0x6f, 0xea, 0x90, 0x54, 0x11, 0x74, 0xac, 0x30, 0x9a, 0x16, |
|
| 12946 |
+ 0xf4, 0x3a, 0xe4, 0xc2, 0xce, 0xa2, 0x55, 0x48, 0xf5, 0x6a, 0x1d, 0x6d, 0xa1, 0xb4, 0x72, 0x72, |
|
| 12947 |
+ 0x5a, 0x2e, 0x84, 0xe2, 0x5e, 0xad, 0xc3, 0x6b, 0x76, 0xeb, 0x1d, 0x2d, 0x31, 0x5b, 0xb3, 0x5b, |
|
| 12948 |
+ 0xef, 0x94, 0xd2, 0xfc, 0xe6, 0xd7, 0xf7, 0xa1, 0x10, 0x6b, 0x01, 0xdd, 0x82, 0xc5, 0x66, 0xeb, |
|
| 12949 |
+ 0x31, 0x6e, 0x74, 0xbb, 0xda, 0x42, 0xe9, 0xfa, 0xc9, 0x69, 0x19, 0xc5, 0x6a, 0x9b, 0xee, 0x80, |
|
| 12950 |
+ 0xaf, 0x0f, 0x7a, 0x07, 0xd2, 0x5b, 0xed, 0x6e, 0x2f, 0x24, 0x7a, 0x31, 0xc4, 0x96, 0x17, 0xb0, |
|
| 12951 |
+ 0xd2, 0x55, 0x45, 0x29, 0xe2, 0x86, 0xf5, 0x3f, 0x4a, 0x40, 0x56, 0xf2, 0xdd, 0xb9, 0x0b, 0x65, |
|
| 12952 |
+ 0xc0, 0x62, 0x18, 0x85, 0x49, 0x12, 0xfe, 0xfe, 0xeb, 0x09, 0x73, 0x45, 0xf1, 0x5b, 0xe9, 0x7e, |
|
| 12953 |
+ 0xa1, 0x5e, 0xe9, 0x73, 0x28, 0xc6, 0x2b, 0xbe, 0x93, 0xf3, 0xfd, 0x16, 0x14, 0xb8, 0x7f, 0x87, |
|
| 12954 |
+ 0xc4, 0x79, 0x03, 0xb2, 0x92, 0x93, 0xab, 0xd3, 0xf4, 0x22, 0xf6, 0xae, 0x90, 0xe8, 0x01, 0x2c, |
|
| 12955 |
+ 0x4a, 0xc6, 0x1f, 0xe6, 0xa7, 0xd6, 0x2e, 0xde, 0x45, 0x38, 0x84, 0xeb, 0x8f, 0x20, 0xdd, 0xa1, |
|
| 12956 |
+ 0xd4, 0xe7, 0x73, 0xef, 0x7a, 0x16, 0x9d, 0x5e, 0x40, 0x2a, 0x58, 0xb1, 0x68, 0xb3, 0xce, 0x83, |
|
| 12957 |
+ 0x15, 0x8b, 0x36, 0xad, 0x28, 0xbd, 0x90, 0x8c, 0xa5, 0x17, 0x7a, 0x50, 0x7c, 0x46, 0xed, 0xc1, |
|
| 12958 |
+ 0x01, 0xa3, 0x96, 0x30, 0xf4, 0x21, 0xa4, 0x47, 0x34, 0xea, 0xfc, 0xea, 0x5c, 0x07, 0xa3, 0xd4, |
|
| 12959 |
+ 0xc7, 0x02, 0xc5, 0xcf, 0x91, 0x63, 0xa1, 0xad, 0xb2, 0xa2, 0xaa, 0xa4, 0xff, 0x7d, 0x12, 0x96, |
|
| 12960 |
+ 0x9b, 0x41, 0x30, 0x26, 0xae, 0x19, 0x32, 0x94, 0x1f, 0xcd, 0x32, 0x94, 0x3b, 0x73, 0x47, 0x38, |
|
| 12961 |
+ 0xa3, 0x32, 0x9b, 0x35, 0x51, 0x97, 0x43, 0x32, 0xba, 0x1c, 0xf4, 0x7f, 0x4f, 0x84, 0xa9, 0x91, |
|
| 12962 |
+ 0xdb, 0xb1, 0xed, 0x5e, 0x5a, 0x3d, 0x39, 0x2d, 0x5f, 0x8b, 0x5b, 0xa2, 0xbb, 0xee, 0xa1, 0xeb, |
|
| 12963 |
+ 0x1d, 0xbb, 0xe8, 0x5d, 0xc8, 0xe0, 0x46, 0xab, 0xf1, 0x4c, 0x4b, 0x48, 0xf7, 0x9c, 0x01, 0x61, |
|
| 12964 |
+ 0xea, 0xd2, 0x63, 0x6e, 0xa9, 0xd3, 0x68, 0xd5, 0x39, 0x97, 0x48, 0xce, 0xb1, 0xd4, 0xa1, 0xae, |
|
| 12965 |
+ 0x65, 0xbb, 0x03, 0x74, 0x0b, 0xb2, 0xcd, 0x6e, 0x77, 0x57, 0x04, 0xaf, 0x6f, 0x9d, 0x9c, 0x96, |
|
| 12966 |
+ 0xaf, 0xce, 0xa0, 0x78, 0x81, 0x5a, 0x1c, 0xc4, 0xc9, 0x35, 0x67, 0x19, 0x73, 0x40, 0x9c, 0xf7, |
|
| 12967 |
+ 0x49, 0x10, 0x6e, 0xf7, 0x78, 0x64, 0x9d, 0x99, 0x03, 0xc2, 0x1e, 0xff, 0x55, 0xdb, 0xed, 0x9f, |
|
| 12968 |
+ 0x93, 0xa0, 0x19, 0xa6, 0x49, 0x47, 0x8c, 0xd7, 0xab, 0xa8, 0xa6, 0x07, 0xb9, 0x11, 0xff, 0xb2, |
|
| 12969 |
+ 0x69, 0xc8, 0x03, 0x1e, 0xcc, 0xcd, 0xab, 0x9f, 0xd3, 0xab, 0x60, 0xcf, 0xa1, 0x86, 0x35, 0xb4, |
|
| 12970 |
+ 0x83, 0x80, 0x47, 0xef, 0x42, 0x86, 0x23, 0x4b, 0xa5, 0x9f, 0x27, 0xe0, 0xea, 0x1c, 0x04, 0xba, |
|
| 12971 |
+ 0x07, 0x69, 0xdf, 0x73, 0xc2, 0x35, 0xbc, 0xf9, 0xba, 0xac, 0x17, 0x57, 0xc5, 0x02, 0x89, 0xd6, |
|
| 12972 |
+ 0x00, 0xc8, 0x98, 0x79, 0x44, 0xb4, 0x2f, 0x56, 0x2f, 0x87, 0x63, 0x12, 0xf4, 0x0c, 0xb2, 0x01, |
|
| 12973 |
+ 0x35, 0x7d, 0x1a, 0x12, 0xc6, 0x47, 0xff, 0xd7, 0xde, 0x57, 0xba, 0xc2, 0x0c, 0x56, 0xe6, 0x4a, |
|
| 12974 |
+ 0x15, 0xc8, 0x4a, 0x09, 0x77, 0x7b, 0x8b, 0x30, 0x22, 0x3a, 0x5d, 0xc4, 0xe2, 0x9b, 0x7b, 0x13, |
|
| 12975 |
+ 0x71, 0x06, 0xa1, 0x37, 0x11, 0x67, 0xa0, 0xff, 0x71, 0x12, 0xa0, 0xf1, 0x9c, 0x51, 0xdf, 0x25, |
|
| 12976 |
+ 0x4e, 0xcd, 0x40, 0x8d, 0xd8, 0xe9, 0x2f, 0x47, 0xfb, 0xc1, 0xdc, 0x5c, 0x68, 0xa4, 0x51, 0xa9, |
|
| 12977 |
+ 0x19, 0x73, 0xce, 0xff, 0x1b, 0x90, 0x1a, 0xfb, 0x8e, 0xca, 0xab, 0x0b, 0xa6, 0xb7, 0x8b, 0xb7, |
|
| 12978 |
+ 0x31, 0x97, 0xa1, 0xc6, 0xf4, 0xd8, 0x4a, 0xbd, 0xfe, 0x41, 0x24, 0xd6, 0xc0, 0x2f, 0xff, 0xe8, |
|
| 12979 |
+ 0xfa, 0x10, 0x60, 0xda, 0x6b, 0xb4, 0x06, 0x99, 0xda, 0x66, 0xb7, 0xbb, 0xad, 0x2d, 0xc8, 0xb3, |
|
| 12980 |
+ 0x79, 0x5a, 0x25, 0xc4, 0xfa, 0x9f, 0x27, 0x20, 0x57, 0x33, 0xd4, 0x8d, 0xb9, 0x09, 0x9a, 0x38, |
|
| 12981 |
+ 0x70, 0x4c, 0xea, 0xb3, 0x3e, 0x7d, 0x3e, 0xb2, 0xfd, 0x89, 0x3a, 0x33, 0x2e, 0x0e, 0x93, 0x96, |
|
| 12982 |
+ 0xb9, 0x56, 0x8d, 0xfa, 0xac, 0x21, 0x74, 0x10, 0x86, 0x22, 0x55, 0x43, 0xec, 0x9b, 0x24, 0x3c, |
|
| 12983 |
+ 0xc1, 0xd7, 0x2e, 0x9e, 0x0a, 0x49, 0xaf, 0xa7, 0xe5, 0x00, 0x17, 0x42, 0x23, 0x35, 0x12, 0xe8, |
|
| 12984 |
+ 0x4f, 0xe1, 0x6a, 0xdb, 0x37, 0x0f, 0x68, 0xc0, 0x64, 0xa3, 0xaa, 0xcb, 0x8f, 0xe0, 0x26, 0x23, |
|
| 12985 |
+ 0xc1, 0x61, 0xff, 0xc0, 0x0e, 0x98, 0xe7, 0x4f, 0xfa, 0x3e, 0x65, 0xd4, 0xe5, 0xf5, 0x7d, 0xf1, |
|
| 12986 |
+ 0xec, 0xa2, 0x92, 0x1c, 0x37, 0x38, 0x66, 0x4b, 0x42, 0x70, 0x88, 0xd8, 0xe6, 0x00, 0xbd, 0x09, |
|
| 12987 |
+ 0x45, 0xce, 0x66, 0xeb, 0x74, 0x9f, 0x8c, 0x1d, 0x16, 0xa0, 0x1f, 0x02, 0x38, 0xde, 0xa0, 0x7f, |
|
| 12988 |
+ 0xe9, 0xe3, 0x3e, 0xef, 0x78, 0x03, 0xf9, 0xa9, 0xff, 0x1a, 0x68, 0x75, 0x3b, 0x18, 0x11, 0x66, |
|
| 12989 |
+ 0x1e, 0x84, 0xd9, 0x1b, 0xf4, 0x18, 0xb4, 0x03, 0x4a, 0x7c, 0xb6, 0x47, 0x09, 0xeb, 0x8f, 0xa8, |
|
| 12990 |
+ 0x6f, 0x7b, 0xd6, 0xa5, 0xa6, 0x74, 0x25, 0xd2, 0xea, 0x08, 0x25, 0xfd, 0x3f, 0x13, 0x00, 0x98, |
|
| 12991 |
+ 0xec, 0x87, 0xe4, 0xe6, 0x07, 0x70, 0x25, 0x70, 0xc9, 0x28, 0x38, 0xf0, 0x58, 0xdf, 0x76, 0x19, |
|
| 12992 |
+ 0xf5, 0x8f, 0x88, 0xa3, 0x22, 0x70, 0x2d, 0xac, 0x68, 0x2a, 0x39, 0xfa, 0x10, 0xd0, 0x21, 0xa5, |
|
| 12993 |
+ 0xa3, 0xbe, 0xe7, 0x58, 0xfd, 0xb0, 0x52, 0xbe, 0x0b, 0xa5, 0xb1, 0xc6, 0x6b, 0xda, 0x8e, 0xd5, |
|
| 12994 |
+ 0x0d, 0xe5, 0xa8, 0x0a, 0x6b, 0x7c, 0x06, 0xa8, 0xcb, 0x7c, 0x9b, 0x06, 0xfd, 0x7d, 0xcf, 0xef, |
|
| 12995 |
+ 0x07, 0x8e, 0x77, 0xdc, 0xdf, 0xf7, 0x1c, 0xc7, 0x3b, 0xa6, 0x7e, 0x98, 0xdf, 0x28, 0x39, 0xde, |
|
| 12996 |
+ 0xa0, 0x21, 0x41, 0x9b, 0x9e, 0xdf, 0x75, 0xbc, 0xe3, 0xcd, 0x10, 0xc1, 0x19, 0xd0, 0x74, 0xd8, |
|
| 12997 |
+ 0xcc, 0x36, 0x0f, 0x43, 0x06, 0x14, 0x49, 0x7b, 0xb6, 0x79, 0x88, 0x6e, 0xc1, 0x12, 0x75, 0xa8, |
|
| 12998 |
+ 0x88, 0x92, 0x25, 0x2a, 0x23, 0x50, 0xc5, 0x50, 0xc8, 0x41, 0xfa, 0xff, 0x83, 0x7c, 0xc7, 0x21, |
|
| 12999 |
+ 0xa6, 0x78, 0x7d, 0x43, 0x65, 0xe0, 0x41, 0x17, 0x77, 0x02, 0xdb, 0x55, 0x51, 0x52, 0x1e, 0xc7, |
|
| 13000 |
+ 0x45, 0xfa, 0x8f, 0x00, 0x7e, 0xec, 0xd9, 0x6e, 0xcf, 0x3b, 0xa4, 0xae, 0x78, 0xa8, 0xe0, 0x8c, |
|
| 13001 |
+ 0x5e, 0x2d, 0x65, 0x1e, 0xab, 0x92, 0x08, 0x58, 0x88, 0x4b, 0x06, 0xd4, 0x8f, 0xf2, 0xf5, 0xb2, |
|
| 13002 |
+ 0xa8, 0x7f, 0x93, 0x80, 0x2c, 0xf6, 0x3c, 0x56, 0x33, 0x50, 0x19, 0xb2, 0x26, 0xe9, 0x87, 0x3b, |
|
| 13003 |
+ 0xaf, 0x58, 0xcd, 0x9f, 0xbd, 0x5c, 0xcf, 0xd4, 0x8c, 0x27, 0x74, 0x82, 0x33, 0x26, 0x79, 0x42, |
|
| 13004 |
+ 0x27, 0xfc, 0x8a, 0x36, 0x89, 0xd8, 0x2f, 0xc2, 0x4c, 0x51, 0x5e, 0xd1, 0x35, 0x83, 0x6f, 0x06, |
|
| 13005 |
+ 0x9c, 0x35, 0x09, 0xff, 0x47, 0xf7, 0xa0, 0xa8, 0x40, 0xfd, 0x03, 0x12, 0x1c, 0x48, 0x1e, 0x5e, |
|
| 13006 |
+ 0x5d, 0x3e, 0x7b, 0xb9, 0x0e, 0x12, 0xb9, 0x45, 0x82, 0x03, 0x0c, 0x12, 0xcd, 0xbf, 0x51, 0x03, |
|
| 13007 |
+ 0x0a, 0x5f, 0x79, 0xb6, 0xdb, 0x67, 0x62, 0x10, 0x2a, 0x55, 0x31, 0x77, 0xff, 0x4c, 0x87, 0xaa, |
|
| 13008 |
+ 0xf2, 0x27, 0xf0, 0x55, 0x24, 0xd1, 0xff, 0x31, 0x01, 0x05, 0x6e, 0xd3, 0xde, 0xb7, 0x4d, 0x7e, |
|
| 13009 |
+ 0xa5, 0x7e, 0xf7, 0x93, 0xfe, 0x06, 0xa4, 0xcc, 0xc0, 0x57, 0x63, 0x13, 0x47, 0x5d, 0xad, 0x8b, |
|
| 13010 |
+ 0x31, 0x97, 0xa1, 0x2f, 0x20, 0xab, 0x82, 0x2f, 0x79, 0xc8, 0xeb, 0x6f, 0xbe, 0xfc, 0x55, 0x17, |
|
| 13011 |
+ 0x95, 0x9e, 0x58, 0xcb, 0x69, 0xef, 0xc4, 0x28, 0x8b, 0x38, 0x2e, 0x42, 0xd7, 0x21, 0x69, 0xba, |
|
| 13012 |
+ 0xc2, 0x29, 0xd4, 0x03, 0x66, 0xad, 0x85, 0x93, 0xa6, 0xab, 0xff, 0x5d, 0x02, 0x96, 0x1a, 0xae, |
|
| 13013 |
+ 0xe9, 0x4f, 0xc4, 0x21, 0xc9, 0x17, 0xe2, 0x26, 0xe4, 0x83, 0xf1, 0x5e, 0x30, 0x09, 0x18, 0x1d, |
|
| 13014 |
+ 0x86, 0x6f, 0x21, 0x91, 0x00, 0x35, 0x21, 0x4f, 0x9c, 0x81, 0xe7, 0xdb, 0xec, 0x60, 0xa8, 0x78, |
|
| 13015 |
+ 0xff, 0xfc, 0x83, 0x39, 0x6e, 0xb3, 0x62, 0x84, 0x2a, 0x78, 0xaa, 0x1d, 0x1e, 0xc5, 0x29, 0xd1, |
|
| 13016 |
+ 0x59, 0x71, 0x14, 0xbf, 0x0b, 0x45, 0x87, 0x0c, 0x45, 0x34, 0xca, 0xc3, 0x49, 0x31, 0x8e, 0x34, |
|
| 13017 |
+ 0x2e, 0x28, 0x19, 0x8f, 0xb1, 0x75, 0x1d, 0xf2, 0x91, 0x31, 0xb4, 0x02, 0x05, 0xa3, 0xd1, 0xed, |
|
| 13018 |
+ 0xdf, 0xdf, 0x78, 0xd0, 0x7f, 0x5c, 0xdb, 0xd1, 0x16, 0x14, 0x13, 0xf8, 0xab, 0x04, 0x2c, 0xed, |
|
| 13019 |
+ 0x48, 0x1f, 0x54, 0xec, 0xea, 0x16, 0x2c, 0xfa, 0x64, 0x9f, 0x85, 0xfc, 0x2f, 0x2d, 0x9d, 0x8b, |
|
| 13020 |
+ 0x1f, 0x02, 0x9c, 0xff, 0xf1, 0xaa, 0xf9, 0xfc, 0x2f, 0xf6, 0x3a, 0x97, 0xba, 0xf0, 0x75, 0x2e, |
|
| 13021 |
+ 0xfd, 0x4b, 0x79, 0x9d, 0xd3, 0x7f, 0x92, 0x84, 0x15, 0x75, 0x51, 0x87, 0xaf, 0x4f, 0xe8, 0x03, |
|
| 13022 |
+ 0xc8, 0xcb, 0x3b, 0x7b, 0xca, 0x5e, 0xc5, 0x83, 0x90, 0xc4, 0x35, 0xeb, 0x38, 0x27, 0xab, 0x9b, |
|
| 13023 |
+ 0x16, 0x0f, 0xa7, 0x14, 0x34, 0xf6, 0xd6, 0x0c, 0x52, 0xd4, 0xe2, 0xb1, 0x40, 0x1d, 0xd2, 0xfb, |
|
| 13024 |
+ 0xb6, 0x43, 0x95, 0x9f, 0xcd, 0xcd, 0x00, 0x9e, 0x6b, 0x5e, 0x24, 0xac, 0x7b, 0x22, 0x20, 0xdb, |
|
| 13025 |
+ 0x5a, 0xc0, 0x42, 0xbb, 0xf4, 0x3b, 0x00, 0x53, 0xe9, 0xdc, 0x98, 0x83, 0xdf, 0xeb, 0x2a, 0x83, |
|
| 13026 |
+ 0x13, 0xde, 0xeb, 0xcd, 0x3a, 0xe6, 0x32, 0x5e, 0x35, 0xb0, 0x2d, 0xb5, 0x73, 0x45, 0xd5, 0x63, |
|
| 13027 |
+ 0x5e, 0x35, 0xb0, 0xad, 0x28, 0x6b, 0x9e, 0x7e, 0x43, 0xd6, 0xbc, 0x9a, 0x0b, 0x93, 0x08, 0x7a, |
|
| 13028 |
+ 0x1b, 0xae, 0x57, 0x1d, 0x62, 0x1e, 0x3a, 0x76, 0xc0, 0xa8, 0x15, 0xdf, 0xa1, 0x9f, 0x42, 0x76, |
|
| 13029 |
+ 0xe6, 0xde, 0x7d, 0x43, 0xda, 0x46, 0x81, 0xf5, 0x9f, 0x24, 0xa0, 0xb8, 0x45, 0x89, 0xc3, 0x0e, |
|
| 13030 |
+ 0xa6, 0xb1, 0x2f, 0xa3, 0x01, 0x53, 0xe7, 0xa3, 0xf8, 0x46, 0x0f, 0x20, 0x17, 0xdd, 0x14, 0x97, |
|
| 13031 |
+ 0x49, 0x6e, 0x47, 0x68, 0xf4, 0x19, 0x2c, 0x72, 0xcf, 0xf6, 0xc6, 0x21, 0xa1, 0x7b, 0x43, 0xd6, |
|
| 13032 |
+ 0x54, 0x81, 0xf9, 0x21, 0xeb, 0x53, 0x71, 0x41, 0x88, 0xd9, 0xc9, 0xe0, 0xb0, 0xa8, 0xff, 0x4f, |
|
| 13033 |
+ 0x02, 0xae, 0xed, 0x90, 0xc9, 0x1e, 0x55, 0x3b, 0x8e, 0x5a, 0x98, 0x9a, 0x9e, 0x6f, 0xa1, 0x4e, |
|
| 13034 |
+ 0x7c, 0xa7, 0x5e, 0x90, 0xd0, 0x9f, 0xa7, 0x3c, 0x7f, 0xc3, 0x86, 0x4c, 0x31, 0x19, 0x63, 0x8a, |
|
| 13035 |
+ 0xd7, 0x20, 0xe3, 0x7a, 0xae, 0x49, 0xd5, 0x36, 0x96, 0x05, 0xdd, 0x8e, 0xef, 0xd2, 0x52, 0x94, |
|
| 13036 |
+ 0x65, 0x17, 0x39, 0xf2, 0x96, 0xc7, 0xa2, 0xd6, 0xd0, 0x17, 0x50, 0xea, 0x36, 0x6a, 0xb8, 0xd1, |
|
| 13037 |
+ 0xab, 0xb6, 0x7f, 0xb5, 0xdf, 0x35, 0xb6, 0xbb, 0xc6, 0xc6, 0xbd, 0x7e, 0xa7, 0xbd, 0xfd, 0xe5, |
|
| 13038 |
+ 0xfd, 0x8f, 0xef, 0x7d, 0xaa, 0x25, 0x4a, 0xe5, 0x93, 0xd3, 0xf2, 0xcd, 0x96, 0x51, 0xdb, 0x96, |
|
| 13039 |
+ 0x6e, 0xb9, 0xe7, 0x3d, 0xef, 0x12, 0x27, 0x20, 0x1b, 0xf7, 0x3a, 0x9e, 0x33, 0xe1, 0x98, 0xbb, |
|
| 13040 |
+ 0x7f, 0x9b, 0x82, 0x7c, 0x94, 0x44, 0xe3, 0xde, 0xc5, 0x23, 0x18, 0xd5, 0x54, 0x24, 0x6f, 0xd1, |
|
| 13041 |
+ 0x63, 0xf4, 0xee, 0x34, 0x76, 0xf9, 0x42, 0x26, 0xf3, 0xa3, 0xea, 0x30, 0x6e, 0x79, 0x0f, 0x72, |
|
| 13042 |
+ 0x46, 0xb7, 0xdb, 0x7c, 0xdc, 0x6a, 0xd4, 0xb5, 0xaf, 0x13, 0xa5, 0xef, 0x9d, 0x9c, 0x96, 0xaf, |
|
| 13043 |
+ 0x44, 0x20, 0x23, 0x08, 0xec, 0x81, 0x4b, 0x2d, 0x81, 0xaa, 0xd5, 0x1a, 0x9d, 0x5e, 0xa3, 0xae, |
|
| 13044 |
+ 0xbd, 0x48, 0x9e, 0x47, 0x09, 0x2e, 0x2e, 0x1e, 0xe6, 0xf2, 0x1d, 0xdc, 0xe8, 0x18, 0x98, 0x37, |
|
| 13045 |
+ 0xf8, 0x75, 0x52, 0x86, 0x54, 0xd3, 0x16, 0x7d, 0x3a, 0x22, 0x3e, 0x6f, 0x73, 0x2d, 0x7c, 0xa0, |
|
| 13046 |
+ 0x7e, 0x91, 0x92, 0x8f, 0x37, 0xd3, 0x8c, 0x20, 0x25, 0xd6, 0x84, 0xb7, 0x26, 0xb2, 0xb1, 0xc2, |
|
| 13047 |
+ 0x4c, 0xea, 0x5c, 0x6b, 0x5d, 0x46, 0x7c, 0xc6, 0xad, 0xe8, 0xb0, 0x88, 0x77, 0x5b, 0x2d, 0x0e, |
|
| 13048 |
+ 0x7a, 0x91, 0x3e, 0x37, 0x3a, 0x3c, 0x76, 0x5d, 0x8e, 0xb9, 0x0d, 0xb9, 0x30, 0x59, 0xab, 0x7d, |
|
| 13049 |
+ 0x9d, 0x3e, 0xd7, 0xa1, 0x5a, 0x98, 0x69, 0x16, 0x0d, 0x6e, 0xed, 0xf6, 0xc4, 0xfb, 0xf9, 0x8b, |
|
| 13050 |
+ 0xcc, 0xf9, 0x06, 0x0f, 0xc6, 0xcc, 0xe2, 0xc1, 0x62, 0x39, 0x8a, 0xde, 0xbe, 0xce, 0x48, 0x3e, |
|
| 13051 |
+ 0x1c, 0x61, 0x54, 0xe8, 0xf6, 0x1e, 0xe4, 0x70, 0xe3, 0xc7, 0xf2, 0xa9, 0xfd, 0x45, 0xf6, 0x9c, |
|
| 13052 |
+ 0x1d, 0x4c, 0xbf, 0xa2, 0x26, 0xa3, 0xd6, 0xf4, 0x6d, 0x2a, 0xaa, 0xba, 0xfb, 0xeb, 0x90, 0x0b, |
|
| 13053 |
+ 0xef, 0x4e, 0xb4, 0x06, 0xd9, 0x67, 0x6d, 0xfc, 0xa4, 0x81, 0xb5, 0x05, 0x39, 0x3b, 0x61, 0xcd, |
|
| 13054 |
+ 0x33, 0x49, 0x3e, 0xca, 0xb0, 0xb8, 0x63, 0xb4, 0x8c, 0xc7, 0x0d, 0x1c, 0xa6, 0x4c, 0x42, 0x80, |
|
| 13055 |
+ 0xba, 0x00, 0x4a, 0x9a, 0x6a, 0x20, 0xb2, 0x59, 0xbd, 0xf9, 0xcd, 0xb7, 0x6b, 0x0b, 0x3f, 0xfb, |
|
| 13056 |
+ 0x76, 0x6d, 0xe1, 0xe7, 0xdf, 0xae, 0x25, 0x5e, 0x9c, 0xad, 0x25, 0xbe, 0x39, 0x5b, 0x4b, 0xfc, |
|
| 13057 |
+ 0xf4, 0x6c, 0x2d, 0xf1, 0xaf, 0x67, 0x6b, 0x89, 0xbd, 0xac, 0x08, 0x4e, 0x3e, 0xfe, 0xdf, 0x00, |
|
| 13058 |
+ 0x00, 0x00, 0xff, 0xff, 0xb1, 0x0a, 0x70, 0x15, 0x40, 0x26, 0x00, 0x00, |
|
| 13050 | 13059 |
} |
| ... | ... |
@@ -117,6 +117,8 @@ message NodeStatus {
|
| 117 | 117 |
|
| 118 | 118 |
State state = 1; |
| 119 | 119 |
string message = 2; |
| 120 |
+ // Addr is the node's IP address as observed by the manager |
|
| 121 |
+ string addr = 3; |
|
| 120 | 122 |
} |
| 121 | 123 |
|
| 122 | 124 |
message Image {
|
| ... | ... |
@@ -200,7 +202,7 @@ message Mount {
|
| 200 | 200 |
int64 size_bytes = 1; |
| 201 | 201 |
|
| 202 | 202 |
// Mode of the tmpfs upon creation |
| 203 |
- int32 mode = 2 [(gogoproto.customtype) = "os.FileMode", (gogoproto.nullable) = false]; |
|
| 203 |
+ uint32 mode = 2 [(gogoproto.customtype) = "os.FileMode", (gogoproto.nullable) = false]; |
|
| 204 | 204 |
|
| 205 | 205 |
// TODO(stevvooe): There are several more tmpfs flags, specified in the |
| 206 | 206 |
// daemon, that are accepted. Only the most basic are added for now. |
| ... | ... |
@@ -781,6 +783,7 @@ message ManagerStatus {
|
| 781 | 781 |
RaftMemberStatus.Reachability reachability = 4; |
| 782 | 782 |
} |
| 783 | 783 |
|
| 784 |
+ |
|
| 784 | 785 |
// SecretReference is the linkage between a service and a secret that it uses. |
| 785 | 786 |
message SecretReference {
|
| 786 | 787 |
// SecretID represents the ID of the specific Secret that we're |
| ... | ... |
@@ -788,26 +791,29 @@ message SecretReference {
|
| 788 | 788 |
// any information about the secret contents. |
| 789 | 789 |
string secret_id = 1 [(gogoproto.customname) = "SecretID"]; |
| 790 | 790 |
|
| 791 |
- // Mode specifies how this secret should be exposed to the task. |
|
| 792 |
- enum Mode {
|
|
| 793 |
- // SYSTEM means that it is not exposed inside to a task at all, but |
|
| 794 |
- // only available via direct access, usually at the agent-level |
|
| 795 |
- SYSTEM = 0; |
|
| 796 |
- // FILE means that it will be exposed to the task as a file |
|
| 797 |
- FILE = 1; |
|
| 798 |
- // ENV means that it will be exposed to the task as an environment variable |
|
| 799 |
- ENV = 2; |
|
| 800 |
- } |
|
| 791 |
+ // SecretName is the name of the secret that this references, but this is just provided for |
|
| 792 |
+ // lookup/display purposes. The secret in the reference will be identified by its ID. |
|
| 793 |
+ string secret_name = 2; |
|
| 801 | 794 |
|
| 802 |
- // Mode is the way the secret should be presented. |
|
| 803 |
- Mode mode = 2; |
|
| 795 |
+ // FileTarget represents a specific target that is backed by a file |
|
| 796 |
+ message FileTarget {
|
|
| 797 |
+ // Name represents the final filename in the filesystem |
|
| 798 |
+ string name = 1; |
|
| 804 | 799 |
|
| 805 |
- // Target is the name by which the image accesses the secret. |
|
| 806 |
- string target = 3; |
|
| 800 |
+ // UID represents the file UID |
|
| 801 |
+ string uid = 2 [(gogoproto.customname) = "UID"]; |
|
| 807 | 802 |
|
| 808 |
- // SecretName is the name of the secret that this references, but this is just provided for |
|
| 809 |
- // lookup/display purposes. The secret in the reference will be identified by its ID. |
|
| 810 |
- string secret_name = 4; |
|
| 803 |
+ // GID represents the file GID |
|
| 804 |
+ string gid = 3 [(gogoproto.customname) = "GID"]; |
|
| 805 |
+ |
|
| 806 |
+ // Mode represents the FileMode of the file |
|
| 807 |
+ uint32 mode = 4 [(gogoproto.customtype) = "os.FileMode", (gogoproto.nullable) = false]; |
|
| 808 |
+ } |
|
| 809 |
+ |
|
| 810 |
+ // Target specifies how this secret should be exposed to the task. |
|
| 811 |
+ oneof target {
|
|
| 812 |
+ FileTarget file = 3; |
|
| 813 |
+ } |
|
| 811 | 814 |
} |
| 812 | 815 |
|
| 813 | 816 |
// BlacklistedCertificate is a record for a blacklisted certificate. It does not |
| ... | ... |
@@ -840,3 +846,14 @@ message HealthConfig {
|
| 840 | 840 |
// container as unhealthy. Zero means inherit. |
| 841 | 841 |
int32 retries = 4; |
| 842 | 842 |
} |
| 843 |
+ |
|
| 844 |
+message MaybeEncryptedRecord {
|
|
| 845 |
+ enum Algorithm {
|
|
| 846 |
+ NONE = 0 [(gogoproto.enumvalue_customname) = "NotEncrypted"]; |
|
| 847 |
+ SECRETBOX_SALSA20_POLY1305 = 1 [(gogoproto.enumvalue_customname) = "NACLSecretboxSalsa20Poly1305"]; |
|
| 848 |
+ } |
|
| 849 |
+ |
|
| 850 |
+ Algorithm algorithm = 1; |
|
| 851 |
+ bytes data = 2; |
|
| 852 |
+ bytes nonce = 3; |
|
| 853 |
+} |
| ... | ... |
@@ -629,6 +629,7 @@ func GetRemoteSignedCertificate(ctx context.Context, csr []byte, token string, r |
| 629 | 629 |
issueRequest := &api.IssueNodeCertificateRequest{CSR: csr, Token: token}
|
| 630 | 630 |
issueResponse, err := caClient.IssueNodeCertificate(ctx, issueRequest) |
| 631 | 631 |
if err != nil {
|
| 632 |
+ r.Observe(peer, -remotes.DefaultObservationWeight) |
|
| 632 | 633 |
return nil, err |
| 633 | 634 |
} |
| 634 | 635 |
|
| ... | ... |
@@ -8,7 +8,7 @@ import ( |
| 8 | 8 |
"net/http" |
| 9 | 9 |
"sync" |
| 10 | 10 |
|
| 11 |
- log "github.com/Sirupsen/logrus" |
|
| 11 |
+ "github.com/Sirupsen/logrus" |
|
| 12 | 12 |
"github.com/cloudflare/cfssl/api" |
| 13 | 13 |
"github.com/cloudflare/cfssl/signer" |
| 14 | 14 |
"github.com/pkg/errors" |
| ... | ... |
@@ -90,7 +90,7 @@ func (eca *ExternalCA) Sign(req signer.SignRequest) (cert []byte, err error) {
|
| 90 | 90 |
return eca.rootCA.AppendFirstRootPEM(cert) |
| 91 | 91 |
} |
| 92 | 92 |
|
| 93 |
- log.Debugf("unable to proxy certificate signing request to %s: %s", url, err)
|
|
| 93 |
+ logrus.Debugf("unable to proxy certificate signing request to %s: %s", url, err)
|
|
| 94 | 94 |
} |
| 95 | 95 |
|
| 96 | 96 |
return nil, err |
| ... | ... |
@@ -114,7 +114,7 @@ func makeExternalSignRequest(client *http.Client, url string, csrJSON []byte) (c |
| 114 | 114 |
|
| 115 | 115 |
var apiResponse api.Response |
| 116 | 116 |
if err := json.Unmarshal(body, &apiResponse); err != nil {
|
| 117 |
- log.Debugf("unable to JSON-parse CFSSL API response body: %s", string(body))
|
|
| 117 |
+ logrus.Debugf("unable to JSON-parse CFSSL API response body: %s", string(body))
|
|
| 118 | 118 |
return nil, recoverableErr{err: errors.Wrap(err, "unable to parse JSON response")}
|
| 119 | 119 |
} |
| 120 | 120 |
|
| ... | ... |
@@ -73,6 +73,17 @@ func newPortSpace(protocol api.PortConfig_Protocol) (*portSpace, error) {
|
| 73 | 73 |
}, nil |
| 74 | 74 |
} |
| 75 | 75 |
|
| 76 |
+// getPortConfigkey returns a map key for doing set operations with |
|
| 77 |
+// ports. The key consists of name, protocol and target port which |
|
| 78 |
+// uniquely identifies a port within a single Endpoint. |
|
| 79 |
+func getPortConfigKey(p *api.PortConfig) api.PortConfig {
|
|
| 80 |
+ return api.PortConfig{
|
|
| 81 |
+ Name: p.Name, |
|
| 82 |
+ Protocol: p.Protocol, |
|
| 83 |
+ TargetPort: p.TargetPort, |
|
| 84 |
+ } |
|
| 85 |
+} |
|
| 86 |
+ |
|
| 76 | 87 |
func reconcilePortConfigs(s *api.Service) []*api.PortConfig {
|
| 77 | 88 |
// If runtime state hasn't been created or if port config has |
| 78 | 89 |
// changed from port state return the port config from Spec. |
| ... | ... |
@@ -80,15 +91,31 @@ func reconcilePortConfigs(s *api.Service) []*api.PortConfig {
|
| 80 | 80 |
return s.Spec.Endpoint.Ports |
| 81 | 81 |
} |
| 82 | 82 |
|
| 83 |
+ allocatedPorts := make(map[api.PortConfig]*api.PortConfig) |
|
| 84 |
+ for _, portState := range s.Endpoint.Ports {
|
|
| 85 |
+ if portState.PublishMode != api.PublishModeIngress {
|
|
| 86 |
+ continue |
|
| 87 |
+ } |
|
| 88 |
+ |
|
| 89 |
+ allocatedPorts[getPortConfigKey(portState)] = portState |
|
| 90 |
+ } |
|
| 91 |
+ |
|
| 83 | 92 |
var portConfigs []*api.PortConfig |
| 84 |
- for i, portConfig := range s.Spec.Endpoint.Ports {
|
|
| 85 |
- portState := s.Endpoint.Ports[i] |
|
| 93 |
+ for _, portConfig := range s.Spec.Endpoint.Ports {
|
|
| 94 |
+ // If the PublishMode is not Ingress simply pick up |
|
| 95 |
+ // the port config. |
|
| 96 |
+ if portConfig.PublishMode != api.PublishModeIngress {
|
|
| 97 |
+ portConfigs = append(portConfigs, portConfig) |
|
| 98 |
+ continue |
|
| 99 |
+ } |
|
| 100 |
+ |
|
| 101 |
+ portState, ok := allocatedPorts[getPortConfigKey(portConfig)] |
|
| 86 | 102 |
|
| 87 | 103 |
// If the portConfig is exactly the same as portState |
| 88 | 104 |
// except if SwarmPort is not user-define then prefer |
| 89 | 105 |
// portState to ensure sticky allocation of the same |
| 90 | 106 |
// port that was allocated before. |
| 91 |
- if portConfig.Name == portState.Name && |
|
| 107 |
+ if ok && portConfig.Name == portState.Name && |
|
| 92 | 108 |
portConfig.TargetPort == portState.TargetPort && |
| 93 | 109 |
portConfig.Protocol == portState.Protocol && |
| 94 | 110 |
portConfig.PublishedPort == 0 {
|
| ... | ... |
@@ -186,21 +213,26 @@ func (pa *portAllocator) isPortsAllocated(s *api.Service) bool {
|
| 186 | 186 |
return false |
| 187 | 187 |
} |
| 188 | 188 |
|
| 189 |
- for i, portConfig := range s.Spec.Endpoint.Ports {
|
|
| 189 |
+ allocatedPorts := make(map[api.PortConfig]*api.PortConfig) |
|
| 190 |
+ for _, portState := range s.Endpoint.Ports {
|
|
| 191 |
+ if portState.PublishMode != api.PublishModeIngress {
|
|
| 192 |
+ continue |
|
| 193 |
+ } |
|
| 194 |
+ |
|
| 195 |
+ allocatedPorts[getPortConfigKey(portState)] = portState |
|
| 196 |
+ } |
|
| 197 |
+ |
|
| 198 |
+ for _, portConfig := range s.Spec.Endpoint.Ports {
|
|
| 190 | 199 |
// Ignore ports which are not PublishModeIngress |
| 191 | 200 |
if portConfig.PublishMode != api.PublishModeIngress {
|
| 192 | 201 |
continue |
| 193 | 202 |
} |
| 194 | 203 |
|
| 195 |
- // The port configuration slice and port state slice |
|
| 196 |
- // are expected to be in the same order. |
|
| 197 |
- portState := s.Endpoint.Ports[i] |
|
| 204 |
+ portState, ok := allocatedPorts[getPortConfigKey(portConfig)] |
|
| 198 | 205 |
|
| 199 | 206 |
// If name, port, protocol values don't match then we |
| 200 | 207 |
// are not allocated. |
| 201 |
- if portConfig.Name != portState.Name || |
|
| 202 |
- portConfig.TargetPort != portState.TargetPort || |
|
| 203 |
- portConfig.Protocol != portState.Protocol {
|
|
| 208 |
+ if !ok {
|
|
| 204 | 209 |
return false |
| 205 | 210 |
} |
| 206 | 211 |
|
| ... | ... |
@@ -3,9 +3,11 @@ package controlapi |
| 3 | 3 |
import ( |
| 4 | 4 |
"regexp" |
| 5 | 5 |
|
| 6 |
+ "github.com/Sirupsen/logrus" |
|
| 6 | 7 |
"github.com/docker/distribution/digest" |
| 7 | 8 |
"github.com/docker/swarmkit/api" |
| 8 | 9 |
"github.com/docker/swarmkit/identity" |
| 10 |
+ "github.com/docker/swarmkit/log" |
|
| 9 | 11 |
"github.com/docker/swarmkit/manager/state/store" |
| 10 | 12 |
"golang.org/x/net/context" |
| 11 | 13 |
"google.golang.org/grpc" |
| ... | ... |
@@ -85,6 +87,12 @@ func (s *Server) UpdateSecret(ctx context.Context, request *api.UpdateSecretRequ |
| 85 | 85 |
return nil, grpc.Errorf(codes.NotFound, "secret %s not found", request.SecretID) |
| 86 | 86 |
} |
| 87 | 87 |
|
| 88 |
+ log.G(ctx).WithFields(logrus.Fields{
|
|
| 89 |
+ "secret.ID": request.SecretID, |
|
| 90 |
+ "secret.Name": request.Spec.Annotations.Name, |
|
| 91 |
+ "method": "UpdateSecret", |
|
| 92 |
+ }).Debugf("secret updated")
|
|
| 93 |
+ |
|
| 88 | 94 |
// WARN: we should never return the actual secret data here. We need to redact the private fields first. |
| 89 | 95 |
secret.Spec.Data = nil |
| 90 | 96 |
return &api.UpdateSecretResponse{
|
| ... | ... |
@@ -169,6 +177,11 @@ func (s *Server) CreateSecret(ctx context.Context, request *api.CreateSecretRequ |
| 169 | 169 |
return nil, grpc.Errorf(codes.AlreadyExists, "secret %s already exists", request.Spec.Annotations.Name) |
| 170 | 170 |
case nil: |
| 171 | 171 |
secret.Spec.Data = nil // clean the actual secret data so it's never returned |
| 172 |
+ log.G(ctx).WithFields(logrus.Fields{
|
|
| 173 |
+ "secret.Name": request.Spec.Annotations.Name, |
|
| 174 |
+ "method": "CreateSecret", |
|
| 175 |
+ }).Debugf("secret created")
|
|
| 176 |
+ |
|
| 172 | 177 |
return &api.CreateSecretResponse{Secret: secret}, nil
|
| 173 | 178 |
default: |
| 174 | 179 |
return nil, err |
| ... | ... |
@@ -191,6 +204,11 @@ func (s *Server) RemoveSecret(ctx context.Context, request *api.RemoveSecretRequ |
| 191 | 191 |
case store.ErrNotExist: |
| 192 | 192 |
return nil, grpc.Errorf(codes.NotFound, "secret %s not found", request.SecretID) |
| 193 | 193 |
case nil: |
| 194 |
+ log.G(ctx).WithFields(logrus.Fields{
|
|
| 195 |
+ "secret.ID": request.SecretID, |
|
| 196 |
+ "method": "RemoveSecret", |
|
| 197 |
+ }).Debugf("secret removed")
|
|
| 198 |
+ |
|
| 194 | 199 |
return &api.RemoveSecretResponse{}, nil
|
| 195 | 200 |
default: |
| 196 | 201 |
return nil, err |
| ... | ... |
@@ -2,6 +2,7 @@ package controlapi |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 | 4 |
"errors" |
| 5 |
+ "path/filepath" |
|
| 5 | 6 |
"reflect" |
| 6 | 7 |
"regexp" |
| 7 | 8 |
"strconv" |
| ... | ... |
@@ -304,20 +305,42 @@ func (s *Server) checkPortConflicts(spec *api.ServiceSpec, serviceID string) err |
| 304 | 304 |
return nil |
| 305 | 305 |
} |
| 306 | 306 |
|
| 307 |
-// checkSecretConflicts finds if the passed in spec has secrets with conflicting targets. |
|
| 308 |
-func (s *Server) checkSecretConflicts(spec *api.ServiceSpec) error {
|
|
| 307 |
+// checkSecretValidity finds if the secrets passed in spec have any conflicting targets. |
|
| 308 |
+func (s *Server) checkSecretValidity(spec *api.ServiceSpec) error {
|
|
| 309 | 309 |
container := spec.Task.GetContainer() |
| 310 | 310 |
if container == nil {
|
| 311 | 311 |
return nil |
| 312 | 312 |
} |
| 313 | 313 |
|
| 314 |
+ // Keep a map to track all the targets that will be exposed |
|
| 315 |
+ // The string returned is only used for logging. It could as well be struct{}{}
|
|
| 314 | 316 |
existingTargets := make(map[string]string) |
| 315 | 317 |
for _, secretRef := range container.Secrets {
|
| 316 |
- if prevSecretName, ok := existingTargets[secretRef.Target]; ok {
|
|
| 317 |
- return grpc.Errorf(codes.InvalidArgument, "secret references '%s' and '%s' have a conflicting target: '%s'", prevSecretName, secretRef.SecretName, secretRef.Target) |
|
| 318 |
+ // SecretID and SecretName are mandatory, we have invalid references without them |
|
| 319 |
+ if secretRef.SecretID == "" || secretRef.SecretName == "" {
|
|
| 320 |
+ return grpc.Errorf(codes.InvalidArgument, "malformed secret reference") |
|
| 318 | 321 |
} |
| 319 | 322 |
|
| 320 |
- existingTargets[secretRef.Target] = secretRef.SecretName |
|
| 323 |
+ // Every secret referece requires a Target |
|
| 324 |
+ if secretRef.GetTarget() == nil {
|
|
| 325 |
+ return grpc.Errorf(codes.InvalidArgument, "malformed secret reference, no target provided") |
|
| 326 |
+ } |
|
| 327 |
+ |
|
| 328 |
+ // If this is a file target, we will ensure filename uniqueness |
|
| 329 |
+ if secretRef.GetFile() != nil {
|
|
| 330 |
+ fileName := secretRef.GetFile().Name |
|
| 331 |
+ // Validate the file name |
|
| 332 |
+ if fileName == "" || fileName != filepath.Base(filepath.Clean(fileName)) {
|
|
| 333 |
+ return grpc.Errorf(codes.InvalidArgument, "malformed file secret reference, invalid target file name provided") |
|
| 334 |
+ } |
|
| 335 |
+ |
|
| 336 |
+ // If this target is already in use, we have conflicting targets |
|
| 337 |
+ if prevSecretName, ok := existingTargets[fileName]; ok {
|
|
| 338 |
+ return grpc.Errorf(codes.InvalidArgument, "secret references '%s' and '%s' have a conflicting target: '%s'", prevSecretName, secretRef.SecretName, fileName) |
|
| 339 |
+ } |
|
| 340 |
+ |
|
| 341 |
+ existingTargets[fileName] = secretRef.SecretName |
|
| 342 |
+ } |
|
| 321 | 343 |
} |
| 322 | 344 |
|
| 323 | 345 |
return nil |
| ... | ... |
@@ -341,7 +364,7 @@ func (s *Server) CreateService(ctx context.Context, request *api.CreateServiceRe |
| 341 | 341 |
return nil, err |
| 342 | 342 |
} |
| 343 | 343 |
|
| 344 |
- if err := s.checkSecretConflicts(request.Spec); err != nil {
|
|
| 344 |
+ if err := s.checkSecretValidity(request.Spec); err != nil {
|
|
| 345 | 345 |
return nil, err |
| 346 | 346 |
} |
| 347 | 347 |
|
| ... | ... |
@@ -412,7 +435,7 @@ func (s *Server) UpdateService(ctx context.Context, request *api.UpdateServiceRe |
| 412 | 412 |
} |
| 413 | 413 |
} |
| 414 | 414 |
|
| 415 |
- if err := s.checkSecretConflicts(request.Spec); err != nil {
|
|
| 415 |
+ if err := s.checkSecretValidity(request.Spec); err != nil {
|
|
| 416 | 416 |
return nil, err |
| 417 | 417 |
} |
| 418 | 418 |
|
| ... | ... |
@@ -2,6 +2,7 @@ package dispatcher |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 | 4 |
"fmt" |
| 5 |
+ "net" |
|
| 5 | 6 |
"strconv" |
| 6 | 7 |
"sync" |
| 7 | 8 |
"time" |
| ... | ... |
@@ -313,17 +314,16 @@ func (d *Dispatcher) markNodesUnknown(ctx context.Context) error {
|
| 313 | 313 |
if node.Status.State == api.NodeStatus_DOWN {
|
| 314 | 314 |
return nil |
| 315 | 315 |
} |
| 316 |
- node.Status = api.NodeStatus{
|
|
| 317 |
- State: api.NodeStatus_UNKNOWN, |
|
| 318 |
- Message: `Node moved to "unknown" state due to leadership change in cluster`, |
|
| 319 |
- } |
|
| 316 |
+ |
|
| 317 |
+ node.Status.State = api.NodeStatus_UNKNOWN |
|
| 318 |
+ node.Status.Message = `Node moved to "unknown" state due to leadership change in cluster` |
|
| 319 |
+ |
|
| 320 | 320 |
nodeID := node.ID |
| 321 | 321 |
|
| 322 | 322 |
expireFunc := func() {
|
| 323 | 323 |
log := log.WithField("node", nodeID)
|
| 324 |
- nodeStatus := api.NodeStatus{State: api.NodeStatus_DOWN, Message: `heartbeat failure for node in "unknown" state`}
|
|
| 325 | 324 |
log.Debugf("heartbeat expiration for unknown node")
|
| 326 |
- if err := d.nodeRemove(nodeID, nodeStatus); err != nil {
|
|
| 325 |
+ if err := d.markNodeNotReady(nodeID, api.NodeStatus_DOWN, `heartbeat failure for node in "unknown" state`); err != nil {
|
|
| 327 | 326 |
log.WithError(err).Errorf(`failed deregistering node after heartbeat expiration for node in "unknown" state`) |
| 328 | 327 |
} |
| 329 | 328 |
} |
| ... | ... |
@@ -356,12 +356,18 @@ func (d *Dispatcher) isRunning() bool {
|
| 356 | 356 |
return true |
| 357 | 357 |
} |
| 358 | 358 |
|
| 359 |
-// updateNode updates the description of a node and sets status to READY |
|
| 359 |
+// markNodeReady updates the description of a node, updates its address, and sets status to READY |
|
| 360 | 360 |
// this is used during registration when a new node description is provided |
| 361 | 361 |
// and during node updates when the node description changes |
| 362 |
-func (d *Dispatcher) updateNode(nodeID string, description *api.NodeDescription) error {
|
|
| 362 |
+func (d *Dispatcher) markNodeReady(nodeID string, description *api.NodeDescription, addr string) error {
|
|
| 363 | 363 |
d.nodeUpdatesLock.Lock() |
| 364 |
- d.nodeUpdates[nodeID] = nodeUpdate{status: &api.NodeStatus{State: api.NodeStatus_READY}, description: description}
|
|
| 364 |
+ d.nodeUpdates[nodeID] = nodeUpdate{
|
|
| 365 |
+ status: &api.NodeStatus{
|
|
| 366 |
+ State: api.NodeStatus_READY, |
|
| 367 |
+ Addr: addr, |
|
| 368 |
+ }, |
|
| 369 |
+ description: description, |
|
| 370 |
+ } |
|
| 365 | 371 |
numUpdates := len(d.nodeUpdates) |
| 366 | 372 |
d.nodeUpdatesLock.Unlock() |
| 367 | 373 |
|
| ... | ... |
@@ -387,6 +393,19 @@ func (d *Dispatcher) updateNode(nodeID string, description *api.NodeDescription) |
| 387 | 387 |
return nil |
| 388 | 388 |
} |
| 389 | 389 |
|
| 390 |
+// gets the node IP from the context of a grpc call |
|
| 391 |
+func nodeIPFromContext(ctx context.Context) (string, error) {
|
|
| 392 |
+ nodeInfo, err := ca.RemoteNode(ctx) |
|
| 393 |
+ if err != nil {
|
|
| 394 |
+ return "", err |
|
| 395 |
+ } |
|
| 396 |
+ addr, _, err := net.SplitHostPort(nodeInfo.RemoteAddr) |
|
| 397 |
+ if err != nil {
|
|
| 398 |
+ return "", errors.Wrap(err, "unable to get ip from addr:port") |
|
| 399 |
+ } |
|
| 400 |
+ return addr, nil |
|
| 401 |
+} |
|
| 402 |
+ |
|
| 390 | 403 |
// register is used for registration of node with particular dispatcher. |
| 391 | 404 |
func (d *Dispatcher) register(ctx context.Context, nodeID string, description *api.NodeDescription) (string, error) {
|
| 392 | 405 |
// prevent register until we're ready to accept it |
| ... | ... |
@@ -407,14 +426,18 @@ func (d *Dispatcher) register(ctx context.Context, nodeID string, description *a |
| 407 | 407 |
return "", ErrNodeNotFound |
| 408 | 408 |
} |
| 409 | 409 |
|
| 410 |
- if err := d.updateNode(nodeID, description); err != nil {
|
|
| 410 |
+ addr, err := nodeIPFromContext(ctx) |
|
| 411 |
+ if err != nil {
|
|
| 412 |
+ log.G(ctx).Debugf(err.Error()) |
|
| 413 |
+ } |
|
| 414 |
+ |
|
| 415 |
+ if err := d.markNodeReady(nodeID, description, addr); err != nil {
|
|
| 411 | 416 |
return "", err |
| 412 | 417 |
} |
| 413 | 418 |
|
| 414 | 419 |
expireFunc := func() {
|
| 415 |
- nodeStatus := api.NodeStatus{State: api.NodeStatus_DOWN, Message: "heartbeat failure"}
|
|
| 416 | 420 |
log.G(ctx).Debugf("heartbeat expiration")
|
| 417 |
- if err := d.nodeRemove(nodeID, nodeStatus); err != nil {
|
|
| 421 |
+ if err := d.markNodeNotReady(nodeID, api.NodeStatus_DOWN, "heartbeat failure"); err != nil {
|
|
| 418 | 422 |
log.G(ctx).WithError(err).Errorf("failed deregistering node after heartbeat expiration")
|
| 419 | 423 |
} |
| 420 | 424 |
} |
| ... | ... |
@@ -575,7 +598,11 @@ func (d *Dispatcher) processUpdates() {
|
| 575 | 575 |
} |
| 576 | 576 |
|
| 577 | 577 |
if nodeUpdate.status != nil {
|
| 578 |
- node.Status = *nodeUpdate.status |
|
| 578 |
+ node.Status.State = nodeUpdate.status.State |
|
| 579 |
+ node.Status.Message = nodeUpdate.status.Message |
|
| 580 |
+ if nodeUpdate.status.Addr != "" {
|
|
| 581 |
+ node.Status.Addr = nodeUpdate.status.Addr |
|
| 582 |
+ } |
|
| 579 | 583 |
} |
| 580 | 584 |
if nodeUpdate.description != nil {
|
| 581 | 585 |
node.Description = nodeUpdate.description |
| ... | ... |
@@ -782,13 +809,18 @@ func (d *Dispatcher) Assignments(r *api.AssignmentsRequest, stream api.Dispatche |
| 782 | 782 |
} |
| 783 | 783 |
var newSecrets []*api.Secret |
| 784 | 784 |
for _, secretRef := range container.Secrets {
|
| 785 |
+ // Empty ID prefix will return all secrets. Bail if there is no SecretID |
|
| 786 |
+ if secretRef.SecretID == "" {
|
|
| 787 |
+ log.Debugf("invalid secret reference")
|
|
| 788 |
+ continue |
|
| 789 |
+ } |
|
| 785 | 790 |
secretID := secretRef.SecretID |
| 786 | 791 |
log := log.WithFields(logrus.Fields{
|
| 787 | 792 |
"secret.id": secretID, |
| 788 | 793 |
"secret.name": secretRef.SecretName, |
| 789 | 794 |
}) |
| 790 | 795 |
|
| 791 |
- if tasksUsingSecret[secretID] == nil {
|
|
| 796 |
+ if len(tasksUsingSecret[secretID]) == 0 {
|
|
| 792 | 797 |
tasksUsingSecret[secretID] = make(map[string]struct{})
|
| 793 | 798 |
|
| 794 | 799 |
secrets, err := store.FindSecrets(readTx, store.ByIDPrefix(secretID)) |
| ... | ... |
@@ -1046,18 +1078,24 @@ func (d *Dispatcher) Assignments(r *api.AssignmentsRequest, stream api.Dispatche |
| 1046 | 1046 |
} |
| 1047 | 1047 |
} |
| 1048 | 1048 |
for id, secret := range updateSecrets {
|
| 1049 |
- if _, ok := removeSecrets[id]; !ok {
|
|
| 1050 |
- secretChange := &api.AssignmentChange{
|
|
| 1051 |
- Assignment: &api.Assignment{
|
|
| 1052 |
- Item: &api.Assignment_Secret{
|
|
| 1053 |
- Secret: secret, |
|
| 1054 |
- }, |
|
| 1049 |
+ // If, due to multiple updates, this secret is no longer in use, |
|
| 1050 |
+ // don't send it down. |
|
| 1051 |
+ if len(tasksUsingSecret[id]) == 0 {
|
|
| 1052 |
+ // delete this secret for the secrets to be updated |
|
| 1053 |
+ // so that deleteSecrets knows the current list |
|
| 1054 |
+ delete(updateSecrets, id) |
|
| 1055 |
+ continue |
|
| 1056 |
+ } |
|
| 1057 |
+ secretChange := &api.AssignmentChange{
|
|
| 1058 |
+ Assignment: &api.Assignment{
|
|
| 1059 |
+ Item: &api.Assignment_Secret{
|
|
| 1060 |
+ Secret: secret, |
|
| 1055 | 1061 |
}, |
| 1056 |
- Action: api.AssignmentChange_AssignmentActionUpdate, |
|
| 1057 |
- } |
|
| 1058 |
- |
|
| 1059 |
- update.Changes = append(update.Changes, secretChange) |
|
| 1062 |
+ }, |
|
| 1063 |
+ Action: api.AssignmentChange_AssignmentActionUpdate, |
|
| 1060 | 1064 |
} |
| 1065 |
+ |
|
| 1066 |
+ update.Changes = append(update.Changes, secretChange) |
|
| 1061 | 1067 |
} |
| 1062 | 1068 |
for id := range removeTasks {
|
| 1063 | 1069 |
taskChange := &api.AssignmentChange{
|
| ... | ... |
@@ -1072,6 +1110,12 @@ func (d *Dispatcher) Assignments(r *api.AssignmentsRequest, stream api.Dispatche |
| 1072 | 1072 |
update.Changes = append(update.Changes, taskChange) |
| 1073 | 1073 |
} |
| 1074 | 1074 |
for id := range removeSecrets {
|
| 1075 |
+ // If this secret is also being sent on the updated set |
|
| 1076 |
+ // don't also add it to the removed set |
|
| 1077 |
+ if _, ok := updateSecrets[id]; ok {
|
|
| 1078 |
+ continue |
|
| 1079 |
+ } |
|
| 1080 |
+ |
|
| 1075 | 1081 |
secretChange := &api.AssignmentChange{
|
| 1076 | 1082 |
Assignment: &api.Assignment{
|
| 1077 | 1083 |
Item: &api.Assignment_Secret{
|
| ... | ... |
@@ -1091,13 +1135,22 @@ func (d *Dispatcher) Assignments(r *api.AssignmentsRequest, stream api.Dispatche |
| 1091 | 1091 |
} |
| 1092 | 1092 |
} |
| 1093 | 1093 |
|
| 1094 |
-func (d *Dispatcher) nodeRemove(id string, status api.NodeStatus) error {
|
|
| 1094 |
+// markNodeNotReady sets the node state to some state other than READY |
|
| 1095 |
+func (d *Dispatcher) markNodeNotReady(id string, state api.NodeStatus_State, message string) error {
|
|
| 1095 | 1096 |
if err := d.isRunningLocked(); err != nil {
|
| 1096 | 1097 |
return err |
| 1097 | 1098 |
} |
| 1098 | 1099 |
|
| 1100 |
+ status := &api.NodeStatus{
|
|
| 1101 |
+ State: state, |
|
| 1102 |
+ Message: message, |
|
| 1103 |
+ } |
|
| 1104 |
+ |
|
| 1099 | 1105 |
d.nodeUpdatesLock.Lock() |
| 1100 |
- d.nodeUpdates[id] = nodeUpdate{status: status.Copy(), description: d.nodeUpdates[id].description}
|
|
| 1106 |
+ // pluck the description out of nodeUpdates. this protects against a case |
|
| 1107 |
+ // where a node is marked ready and a description is added, but then the |
|
| 1108 |
+ // node is immediately marked not ready. this preserves that description |
|
| 1109 |
+ d.nodeUpdates[id] = nodeUpdate{status: status, description: d.nodeUpdates[id].description}
|
|
| 1101 | 1110 |
numUpdates := len(d.nodeUpdates) |
| 1102 | 1111 |
d.nodeUpdatesLock.Unlock() |
| 1103 | 1112 |
|
| ... | ... |
@@ -1159,14 +1212,19 @@ func (d *Dispatcher) Session(r *api.SessionRequest, stream api.Dispatcher_Sessio |
| 1159 | 1159 |
var sessionID string |
| 1160 | 1160 |
if _, err := d.nodes.GetWithSession(nodeID, r.SessionID); err != nil {
|
| 1161 | 1161 |
// register the node. |
| 1162 |
- sessionID, err = d.register(stream.Context(), nodeID, r.Description) |
|
| 1162 |
+ sessionID, err = d.register(ctx, nodeID, r.Description) |
|
| 1163 | 1163 |
if err != nil {
|
| 1164 | 1164 |
return err |
| 1165 | 1165 |
} |
| 1166 | 1166 |
} else {
|
| 1167 | 1167 |
sessionID = r.SessionID |
| 1168 |
+ // get the node IP addr |
|
| 1169 |
+ addr, err := nodeIPFromContext(stream.Context()) |
|
| 1170 |
+ if err != nil {
|
|
| 1171 |
+ log.G(ctx).Debugf(err.Error()) |
|
| 1172 |
+ } |
|
| 1168 | 1173 |
// update the node description |
| 1169 |
- if err := d.updateNode(nodeID, r.Description); err != nil {
|
|
| 1174 |
+ if err := d.markNodeReady(nodeID, r.Description, addr); err != nil {
|
|
| 1170 | 1175 |
return err |
| 1171 | 1176 |
} |
| 1172 | 1177 |
} |
| ... | ... |
@@ -1226,8 +1284,7 @@ func (d *Dispatcher) Session(r *api.SessionRequest, stream api.Dispatcher_Sessio |
| 1226 | 1226 |
} |
| 1227 | 1227 |
} |
| 1228 | 1228 |
|
| 1229 |
- nodeStatus := api.NodeStatus{State: api.NodeStatus_DISCONNECTED, Message: "node is currently trying to find new manager"}
|
|
| 1230 |
- if err := d.nodeRemove(nodeID, nodeStatus); err != nil {
|
|
| 1229 |
+ if err := d.markNodeNotReady(nodeID, api.NodeStatus_DISCONNECTED, "node is currently trying to find new manager"); err != nil {
|
|
| 1231 | 1230 |
log.WithError(err).Error("failed to remove node")
|
| 1232 | 1231 |
} |
| 1233 | 1232 |
// still return an abort if the transport closure was ineffective. |
| ... | ... |
@@ -7,6 +7,7 @@ import ( |
| 7 | 7 |
"net" |
| 8 | 8 |
"os" |
| 9 | 9 |
"path/filepath" |
| 10 |
+ "runtime" |
|
| 10 | 11 |
"sync" |
| 11 | 12 |
"syscall" |
| 12 | 13 |
"time" |
| ... | ... |
@@ -30,6 +31,7 @@ import ( |
| 30 | 30 |
"github.com/docker/swarmkit/manager/state/raft" |
| 31 | 31 |
"github.com/docker/swarmkit/manager/state/store" |
| 32 | 32 |
"github.com/docker/swarmkit/protobuf/ptypes" |
| 33 |
+ "github.com/docker/swarmkit/xnet" |
|
| 33 | 34 |
"github.com/pkg/errors" |
| 34 | 35 |
"golang.org/x/net/context" |
| 35 | 36 |
"google.golang.org/grpc" |
| ... | ... |
@@ -40,6 +42,16 @@ const ( |
| 40 | 40 |
defaultTaskHistoryRetentionLimit = 5 |
| 41 | 41 |
) |
| 42 | 42 |
|
| 43 |
+// RemoteAddrs provides an listening address and an optional advertise address |
|
| 44 |
+// for serving the remote API. |
|
| 45 |
+type RemoteAddrs struct {
|
|
| 46 |
+ // Address to bind |
|
| 47 |
+ ListenAddr string |
|
| 48 |
+ |
|
| 49 |
+ // Address to advertise to remote nodes (optional). |
|
| 50 |
+ AdvertiseAddr string |
|
| 51 |
+} |
|
| 52 |
+ |
|
| 43 | 53 |
// Config is used to tune the Manager. |
| 44 | 54 |
type Config struct {
|
| 45 | 55 |
SecurityConfig *ca.SecurityConfig |
| ... | ... |
@@ -48,13 +60,12 @@ type Config struct {
|
| 48 | 48 |
// will make certificate signing requests for node certificates. |
| 49 | 49 |
ExternalCAs []*api.ExternalCA |
| 50 | 50 |
|
| 51 |
- ProtoAddr map[string]string |
|
| 52 |
- // ProtoListener will be used for grpc serving if it's not nil, |
|
| 53 |
- // ProtoAddr fields will be used to create listeners otherwise. |
|
| 54 |
- ProtoListener map[string]net.Listener |
|
| 51 |
+ // ControlAPI is an address for serving the control API. |
|
| 52 |
+ ControlAPI string |
|
| 55 | 53 |
|
| 56 |
- // AdvertiseAddr is a map of addresses to advertise, by protocol. |
|
| 57 |
- AdvertiseAddr string |
|
| 54 |
+ // RemoteAPI is a listening address for serving the remote API, and |
|
| 55 |
+ // an optional advertise address. |
|
| 56 |
+ RemoteAPI RemoteAddrs |
|
| 58 | 57 |
|
| 59 | 58 |
// JoinRaft is an optional address of a node in an existing raft |
| 60 | 59 |
// cluster to join. |
| ... | ... |
@@ -81,7 +92,7 @@ type Config struct {
|
| 81 | 81 |
// subsystems. |
| 82 | 82 |
type Manager struct {
|
| 83 | 83 |
config *Config |
| 84 |
- listeners map[string]net.Listener |
|
| 84 |
+ listeners []net.Listener |
|
| 85 | 85 |
|
| 86 | 86 |
caserver *ca.Server |
| 87 | 87 |
dispatcher *dispatcher.Dispatcher |
| ... | ... |
@@ -96,10 +107,11 @@ type Manager struct {
|
| 96 | 96 |
localserver *grpc.Server |
| 97 | 97 |
raftNode *raft.Node |
| 98 | 98 |
|
| 99 |
- mu sync.Mutex |
|
| 99 |
+ cancelFunc context.CancelFunc |
|
| 100 | 100 |
|
| 101 |
+ mu sync.Mutex |
|
| 101 | 102 |
started chan struct{}
|
| 102 |
- stopped chan struct{}
|
|
| 103 |
+ stopped bool |
|
| 103 | 104 |
} |
| 104 | 105 |
|
| 105 | 106 |
type closeOnceListener struct {
|
| ... | ... |
@@ -119,41 +131,28 @@ func (l *closeOnceListener) Close() error {
|
| 119 | 119 |
func New(config *Config) (*Manager, error) {
|
| 120 | 120 |
dispatcherConfig := dispatcher.DefaultConfig() |
| 121 | 121 |
|
| 122 |
- if config.ProtoAddr == nil {
|
|
| 123 |
- config.ProtoAddr = make(map[string]string) |
|
| 124 |
- } |
|
| 125 |
- |
|
| 126 |
- if config.ProtoListener != nil && config.ProtoListener["tcp"] != nil {
|
|
| 127 |
- config.ProtoAddr["tcp"] = config.ProtoListener["tcp"].Addr().String() |
|
| 128 |
- } |
|
| 129 |
- |
|
| 130 | 122 |
// If an AdvertiseAddr was specified, we use that as our |
| 131 | 123 |
// externally-reachable address. |
| 132 |
- tcpAddr := config.AdvertiseAddr |
|
| 124 |
+ advertiseAddr := config.RemoteAPI.AdvertiseAddr |
|
| 133 | 125 |
|
| 134 |
- var tcpAddrPort string |
|
| 135 |
- if tcpAddr == "" {
|
|
| 126 |
+ var advertiseAddrPort string |
|
| 127 |
+ if advertiseAddr == "" {
|
|
| 136 | 128 |
// Otherwise, we know we are joining an existing swarm. Use a |
| 137 | 129 |
// wildcard address to trigger remote autodetection of our |
| 138 | 130 |
// address. |
| 139 | 131 |
var err error |
| 140 |
- _, tcpAddrPort, err = net.SplitHostPort(config.ProtoAddr["tcp"]) |
|
| 132 |
+ _, advertiseAddrPort, err = net.SplitHostPort(config.RemoteAPI.ListenAddr) |
|
| 141 | 133 |
if err != nil {
|
| 142 |
- return nil, fmt.Errorf("missing or invalid listen address %s", config.ProtoAddr["tcp"])
|
|
| 134 |
+ return nil, fmt.Errorf("missing or invalid listen address %s", config.RemoteAPI.ListenAddr)
|
|
| 143 | 135 |
} |
| 144 | 136 |
|
| 145 | 137 |
// Even with an IPv6 listening address, it's okay to use |
| 146 | 138 |
// 0.0.0.0 here. Any "unspecified" (wildcard) IP will |
| 147 | 139 |
// be substituted with the actual source address. |
| 148 |
- tcpAddr = net.JoinHostPort("0.0.0.0", tcpAddrPort)
|
|
| 149 |
- } |
|
| 150 |
- |
|
| 151 |
- err := os.MkdirAll(filepath.Dir(config.ProtoAddr["unix"]), 0700) |
|
| 152 |
- if err != nil {
|
|
| 153 |
- return nil, errors.Wrap(err, "failed to create socket directory") |
|
| 140 |
+ advertiseAddr = net.JoinHostPort("0.0.0.0", advertiseAddrPort)
|
|
| 154 | 141 |
} |
| 155 | 142 |
|
| 156 |
- err = os.MkdirAll(config.StateDir, 0700) |
|
| 143 |
+ err := os.MkdirAll(config.StateDir, 0700) |
|
| 157 | 144 |
if err != nil {
|
| 158 | 145 |
return nil, errors.Wrap(err, "failed to create state directory") |
| 159 | 146 |
} |
| ... | ... |
@@ -164,41 +163,49 @@ func New(config *Config) (*Manager, error) {
|
| 164 | 164 |
return nil, errors.Wrap(err, "failed to create raft state directory") |
| 165 | 165 |
} |
| 166 | 166 |
|
| 167 |
- var listeners map[string]net.Listener |
|
| 168 |
- if len(config.ProtoListener) > 0 {
|
|
| 169 |
- listeners = config.ProtoListener |
|
| 170 |
- } else {
|
|
| 171 |
- listeners = make(map[string]net.Listener) |
|
| 167 |
+ var listeners []net.Listener |
|
| 172 | 168 |
|
| 173 |
- for proto, addr := range config.ProtoAddr {
|
|
| 174 |
- l, err := net.Listen(proto, addr) |
|
| 169 |
+ // don't create a socket directory if we're on windows. we used named pipe |
|
| 170 |
+ if runtime.GOOS != "windows" {
|
|
| 171 |
+ err := os.MkdirAll(filepath.Dir(config.ControlAPI), 0700) |
|
| 172 |
+ if err != nil {
|
|
| 173 |
+ return nil, errors.Wrap(err, "failed to create socket directory") |
|
| 174 |
+ } |
|
| 175 |
+ } |
|
| 175 | 176 |
|
| 176 |
- // A unix socket may fail to bind if the file already |
|
| 177 |
- // exists. Try replacing the file. |
|
| 178 |
- unwrappedErr := err |
|
| 179 |
- if op, ok := unwrappedErr.(*net.OpError); ok {
|
|
| 180 |
- unwrappedErr = op.Err |
|
| 181 |
- } |
|
| 182 |
- if sys, ok := unwrappedErr.(*os.SyscallError); ok {
|
|
| 183 |
- unwrappedErr = sys.Err |
|
| 184 |
- } |
|
| 185 |
- if proto == "unix" && unwrappedErr == syscall.EADDRINUSE {
|
|
| 186 |
- os.Remove(addr) |
|
| 187 |
- l, err = net.Listen(proto, addr) |
|
| 188 |
- if err != nil {
|
|
| 189 |
- return nil, err |
|
| 190 |
- } |
|
| 191 |
- } else if err != nil {
|
|
| 192 |
- return nil, err |
|
| 193 |
- } |
|
| 194 |
- if proto == "tcp" && tcpAddrPort == "0" {
|
|
| 195 |
- // in case of 0 port |
|
| 196 |
- tcpAddr = l.Addr().String() |
|
| 197 |
- } |
|
| 198 |
- listeners[proto] = l |
|
| 177 |
+ l, err := xnet.ListenLocal(config.ControlAPI) |
|
| 178 |
+ |
|
| 179 |
+ // A unix socket may fail to bind if the file already |
|
| 180 |
+ // exists. Try replacing the file. |
|
| 181 |
+ if runtime.GOOS != "windows" {
|
|
| 182 |
+ unwrappedErr := err |
|
| 183 |
+ if op, ok := unwrappedErr.(*net.OpError); ok {
|
|
| 184 |
+ unwrappedErr = op.Err |
|
| 185 |
+ } |
|
| 186 |
+ if sys, ok := unwrappedErr.(*os.SyscallError); ok {
|
|
| 187 |
+ unwrappedErr = sys.Err |
|
| 199 | 188 |
} |
| 189 |
+ if unwrappedErr == syscall.EADDRINUSE {
|
|
| 190 |
+ os.Remove(config.ControlAPI) |
|
| 191 |
+ l, err = xnet.ListenLocal(config.ControlAPI) |
|
| 192 |
+ } |
|
| 193 |
+ } |
|
| 194 |
+ if err != nil {
|
|
| 195 |
+ return nil, errors.Wrap(err, "failed to listen on control API address") |
|
| 200 | 196 |
} |
| 201 | 197 |
|
| 198 |
+ listeners = append(listeners, l) |
|
| 199 |
+ |
|
| 200 |
+ l, err = net.Listen("tcp", config.RemoteAPI.ListenAddr)
|
|
| 201 |
+ if err != nil {
|
|
| 202 |
+ return nil, errors.Wrap(err, "failed to listen on remote API address") |
|
| 203 |
+ } |
|
| 204 |
+ if advertiseAddrPort == "0" {
|
|
| 205 |
+ advertiseAddr = l.Addr().String() |
|
| 206 |
+ config.RemoteAPI.ListenAddr = advertiseAddr |
|
| 207 |
+ } |
|
| 208 |
+ listeners = append(listeners, l) |
|
| 209 |
+ |
|
| 202 | 210 |
raftCfg := raft.DefaultNodeConfig() |
| 203 | 211 |
|
| 204 | 212 |
if config.ElectionTick > 0 {
|
| ... | ... |
@@ -210,7 +217,7 @@ func New(config *Config) (*Manager, error) {
|
| 210 | 210 |
|
| 211 | 211 |
newNodeOpts := raft.NodeOptions{
|
| 212 | 212 |
ID: config.SecurityConfig.ClientTLSCreds.NodeID(), |
| 213 |
- Addr: tcpAddr, |
|
| 213 |
+ Addr: advertiseAddr, |
|
| 214 | 214 |
JoinAddr: config.JoinRaft, |
| 215 | 215 |
Config: raftCfg, |
| 216 | 216 |
StateDir: raftStateDir, |
| ... | ... |
@@ -231,18 +238,14 @@ func New(config *Config) (*Manager, error) {
|
| 231 | 231 |
localserver: grpc.NewServer(opts...), |
| 232 | 232 |
raftNode: raftNode, |
| 233 | 233 |
started: make(chan struct{}),
|
| 234 |
- stopped: make(chan struct{}),
|
|
| 235 | 234 |
} |
| 236 | 235 |
|
| 237 | 236 |
return m, nil |
| 238 | 237 |
} |
| 239 | 238 |
|
| 240 | 239 |
// Addr returns tcp address on which remote api listens. |
| 241 |
-func (m *Manager) Addr() net.Addr {
|
|
| 242 |
- if l, ok := m.listeners["tcp"]; ok {
|
|
| 243 |
- return l.Addr() |
|
| 244 |
- } |
|
| 245 |
- return nil |
|
| 240 |
+func (m *Manager) Addr() string {
|
|
| 241 |
+ return m.config.RemoteAPI.ListenAddr |
|
| 246 | 242 |
} |
| 247 | 243 |
|
| 248 | 244 |
// Run starts all manager sub-systems and the gRPC server at the configured |
| ... | ... |
@@ -252,14 +255,7 @@ func (m *Manager) Run(parent context.Context) error {
|
| 252 | 252 |
ctx, ctxCancel := context.WithCancel(parent) |
| 253 | 253 |
defer ctxCancel() |
| 254 | 254 |
|
| 255 |
- // Harakiri. |
|
| 256 |
- go func() {
|
|
| 257 |
- select {
|
|
| 258 |
- case <-ctx.Done(): |
|
| 259 |
- case <-m.stopped: |
|
| 260 |
- ctxCancel() |
|
| 261 |
- } |
|
| 262 |
- }() |
|
| 255 |
+ m.cancelFunc = ctxCancel |
|
| 263 | 256 |
|
| 264 | 257 |
leadershipCh, cancel := m.raftNode.SubscribeLeadership() |
| 265 | 258 |
defer cancel() |
| ... | ... |
@@ -336,8 +332,8 @@ func (m *Manager) Run(parent context.Context) error {
|
| 336 | 336 |
localHealthServer.SetServingStatus("ControlAPI", api.HealthCheckResponse_NOT_SERVING)
|
| 337 | 337 |
|
| 338 | 338 |
errServe := make(chan error, len(m.listeners)) |
| 339 |
- for proto, l := range m.listeners {
|
|
| 340 |
- go m.serveListener(ctx, errServe, proto, l) |
|
| 339 |
+ for _, lis := range m.listeners {
|
|
| 340 |
+ go m.serveListener(ctx, errServe, lis) |
|
| 341 | 341 |
} |
| 342 | 342 |
|
| 343 | 343 |
defer func() {
|
| ... | ... |
@@ -383,24 +379,14 @@ func (m *Manager) Run(parent context.Context) error {
|
| 383 | 383 |
|
| 384 | 384 |
// wait for an error in serving. |
| 385 | 385 |
err = <-errServe |
| 386 |
- select {
|
|
| 387 |
- // check to see if stopped was posted to. if so, we're in the process of |
|
| 388 |
- // stopping, or done and that's why we got the error. if stopping is |
|
| 389 |
- // deliberate, stopped will ALWAYS be closed before the error is trigger, |
|
| 390 |
- // so this path will ALWAYS be taken if the stop was deliberate |
|
| 391 |
- case <-m.stopped: |
|
| 392 |
- // shutdown was requested, do not return an error |
|
| 393 |
- // but first, we wait to acquire a mutex to guarantee that stopping is |
|
| 394 |
- // finished. as long as we acquire the mutex BEFORE we return, we know |
|
| 395 |
- // that stopping is stopped. |
|
| 396 |
- m.mu.Lock() |
|
| 386 |
+ m.mu.Lock() |
|
| 387 |
+ if m.stopped {
|
|
| 397 | 388 |
m.mu.Unlock() |
| 398 | 389 |
return nil |
| 399 |
- // otherwise, we'll get something from errServe, which indicates that an |
|
| 400 |
- // error in serving has actually occurred and this isn't a planned shutdown |
|
| 401 |
- default: |
|
| 402 |
- return err |
|
| 403 | 390 |
} |
| 391 |
+ m.mu.Unlock() |
|
| 392 |
+ m.Stop(ctx) |
|
| 393 |
+ return err |
|
| 404 | 394 |
} |
| 405 | 395 |
|
| 406 | 396 |
const stopTimeout = 8 * time.Second |
| ... | ... |
@@ -417,13 +403,10 @@ func (m *Manager) Stop(ctx context.Context) {
|
| 417 | 417 |
// from returning before we've finished stopping. |
| 418 | 418 |
m.mu.Lock() |
| 419 | 419 |
defer m.mu.Unlock() |
| 420 |
- select {
|
|
| 421 |
- // check to see that we've already stopped |
|
| 422 |
- case <-m.stopped: |
|
| 420 |
+ if m.stopped {
|
|
| 423 | 421 |
return |
| 424 |
- default: |
|
| 425 |
- // do nothing, we're stopping for the first time |
|
| 426 | 422 |
} |
| 423 |
+ m.stopped = true |
|
| 427 | 424 |
|
| 428 | 425 |
srvDone, localSrvDone := make(chan struct{}), make(chan struct{})
|
| 429 | 426 |
go func() {
|
| ... | ... |
@@ -460,11 +443,7 @@ func (m *Manager) Stop(ctx context.Context) {
|
| 460 | 460 |
m.keyManager.Stop() |
| 461 | 461 |
} |
| 462 | 462 |
|
| 463 |
- // once we start stopping, send a signal that we're doing so. this tells |
|
| 464 |
- // Run that we've started stopping, when it gets the error from errServe |
|
| 465 |
- // it also prevents the loop from processing any more stuff. |
|
| 466 |
- close(m.stopped) |
|
| 467 |
- |
|
| 463 |
+ m.cancelFunc() |
|
| 468 | 464 |
<-m.raftNode.Done() |
| 469 | 465 |
|
| 470 | 466 |
timer := time.AfterFunc(stopTimeout, func() {
|
| ... | ... |
@@ -582,11 +561,9 @@ func (m *Manager) handleLeadershipEvents(ctx context.Context, leadershipCh chan |
| 582 | 582 |
select {
|
| 583 | 583 |
case leadershipEvent := <-leadershipCh: |
| 584 | 584 |
m.mu.Lock() |
| 585 |
- select {
|
|
| 586 |
- case <-m.stopped: |
|
| 585 |
+ if m.stopped {
|
|
| 587 | 586 |
m.mu.Unlock() |
| 588 | 587 |
return |
| 589 |
- default: |
|
| 590 | 588 |
} |
| 591 | 589 |
newState := leadershipEvent.(raft.LeadershipState) |
| 592 | 590 |
|
| ... | ... |
@@ -596,8 +573,6 @@ func (m *Manager) handleLeadershipEvents(ctx context.Context, leadershipCh chan |
| 596 | 596 |
m.becomeFollower() |
| 597 | 597 |
} |
| 598 | 598 |
m.mu.Unlock() |
| 599 |
- case <-m.stopped: |
|
| 600 |
- return |
|
| 601 | 599 |
case <-ctx.Done(): |
| 602 | 600 |
return |
| 603 | 601 |
} |
| ... | ... |
@@ -605,20 +580,21 @@ func (m *Manager) handleLeadershipEvents(ctx context.Context, leadershipCh chan |
| 605 | 605 |
} |
| 606 | 606 |
|
| 607 | 607 |
// serveListener serves a listener for local and non local connections. |
| 608 |
-func (m *Manager) serveListener(ctx context.Context, errServe chan error, proto string, lis net.Listener) {
|
|
| 608 |
+func (m *Manager) serveListener(ctx context.Context, errServe chan error, l net.Listener) {
|
|
| 609 | 609 |
ctx = log.WithLogger(ctx, log.G(ctx).WithFields( |
| 610 | 610 |
logrus.Fields{
|
| 611 |
- "proto": lis.Addr().Network(), |
|
| 612 |
- "addr": lis.Addr().String()})) |
|
| 613 |
- if proto == "unix" {
|
|
| 611 |
+ "proto": l.Addr().Network(), |
|
| 612 |
+ "addr": l.Addr().String(), |
|
| 613 |
+ })) |
|
| 614 |
+ if _, ok := l.(*net.TCPListener); !ok {
|
|
| 614 | 615 |
log.G(ctx).Info("Listening for local connections")
|
| 615 | 616 |
// we need to disallow double closes because UnixListener.Close |
| 616 | 617 |
// can delete unix-socket file of newer listener. grpc calls |
| 617 | 618 |
// Close twice indeed: in Serve and in Stop. |
| 618 |
- errServe <- m.localserver.Serve(&closeOnceListener{Listener: lis})
|
|
| 619 |
+ errServe <- m.localserver.Serve(&closeOnceListener{Listener: l})
|
|
| 619 | 620 |
} else {
|
| 620 | 621 |
log.G(ctx).Info("Listening for connections")
|
| 621 |
- errServe <- m.server.Serve(lis) |
|
| 622 |
+ errServe <- m.server.Serve(l) |
|
| 622 | 623 |
} |
| 623 | 624 |
} |
| 624 | 625 |
|
| ... | ... |
@@ -205,7 +205,7 @@ func (g *Orchestrator) removeTasksFromNode(ctx context.Context, node *api.Node) |
| 205 | 205 |
return nil |
| 206 | 206 |
}) |
| 207 | 207 |
if err != nil {
|
| 208 |
- log.G(ctx).WithError(err).Errorf("global orchestrator: removeTasksFromNode failed")
|
|
| 208 |
+ log.G(ctx).WithError(err).Errorf("global orchestrator: removeTasksFromNode failed batching tasks")
|
|
| 209 | 209 |
} |
| 210 | 210 |
} |
| 211 | 211 |
|
| ... | ... |
@@ -1689,7 +1689,7 @@ func getIDs(snap *raftpb.Snapshot, ents []raftpb.Entry) []uint64 {
|
| 1689 | 1689 |
case raftpb.ConfChangeUpdateNode: |
| 1690 | 1690 |
// do nothing |
| 1691 | 1691 |
default: |
| 1692 |
- log.L.Panic("ConfChange Type should be either ConfChangeAddNode or ConfChangeRemoveNode!")
|
|
| 1692 |
+ log.L.Panic("ConfChange Type should be either ConfChangeAddNode, or ConfChangeRemoveNode, or ConfChangeUpdateNode!")
|
|
| 1693 | 1693 |
} |
| 1694 | 1694 |
} |
| 1695 | 1695 |
var sids []uint64 |
| ... | ... |
@@ -22,6 +22,7 @@ import ( |
| 22 | 22 |
"github.com/docker/swarmkit/log" |
| 23 | 23 |
"github.com/docker/swarmkit/manager" |
| 24 | 24 |
"github.com/docker/swarmkit/remotes" |
| 25 |
+ "github.com/docker/swarmkit/xnet" |
|
| 25 | 26 |
"github.com/pkg/errors" |
| 26 | 27 |
"golang.org/x/net/context" |
| 27 | 28 |
"google.golang.org/grpc" |
| ... | ... |
@@ -116,10 +117,10 @@ func (n *Node) RemoteAPIAddr() (string, error) {
|
| 116 | 116 |
return "", errors.Errorf("node is not manager")
|
| 117 | 117 |
} |
| 118 | 118 |
addr := n.manager.Addr() |
| 119 |
- if addr == nil {
|
|
| 119 |
+ if addr == "" {
|
|
| 120 | 120 |
return "", errors.Errorf("manager addr is not set")
|
| 121 | 121 |
} |
| 122 |
- return addr.String(), nil |
|
| 122 |
+ return addr, nil |
|
| 123 | 123 |
} |
| 124 | 124 |
|
| 125 | 125 |
// New returns new Node instance. |
| ... | ... |
@@ -554,12 +555,10 @@ func (n *Node) initManagerConnection(ctx context.Context, ready chan<- struct{})
|
| 554 | 554 |
opts := []grpc.DialOption{}
|
| 555 | 555 |
insecureCreds := credentials.NewTLS(&tls.Config{InsecureSkipVerify: true})
|
| 556 | 556 |
opts = append(opts, grpc.WithTransportCredentials(insecureCreds)) |
| 557 |
- // Using listen address instead of advertised address because this is a |
|
| 558 |
- // local connection. |
|
| 559 | 557 |
addr := n.config.ListenControlAPI |
| 560 | 558 |
opts = append(opts, grpc.WithDialer( |
| 561 | 559 |
func(addr string, timeout time.Duration) (net.Conn, error) {
|
| 562 |
- return net.DialTimeout("unix", addr, timeout)
|
|
| 560 |
+ return xnet.DialTimeoutLocal(addr, timeout) |
|
| 563 | 561 |
})) |
| 564 | 562 |
conn, err := grpc.Dial(addr, opts...) |
| 565 | 563 |
if err != nil {
|
| ... | ... |
@@ -623,11 +622,11 @@ func (n *Node) runManager(ctx context.Context, securityConfig *ca.SecurityConfig |
| 623 | 623 |
remoteAddr, _ := n.remotes.Select(n.NodeID()) |
| 624 | 624 |
m, err := manager.New(&manager.Config{
|
| 625 | 625 |
ForceNewCluster: n.config.ForceNewCluster, |
| 626 |
- ProtoAddr: map[string]string{
|
|
| 627 |
- "tcp": n.config.ListenRemoteAPI, |
|
| 628 |
- "unix": n.config.ListenControlAPI, |
|
| 626 |
+ RemoteAPI: manager.RemoteAddrs{
|
|
| 627 |
+ ListenAddr: n.config.ListenRemoteAPI, |
|
| 628 |
+ AdvertiseAddr: n.config.AdvertiseRemoteAPI, |
|
| 629 | 629 |
}, |
| 630 |
- AdvertiseAddr: n.config.AdvertiseRemoteAPI, |
|
| 630 |
+ ControlAPI: n.config.ListenControlAPI, |
|
| 631 | 631 |
SecurityConfig: securityConfig, |
| 632 | 632 |
ExternalCAs: n.config.ExternalCAs, |
| 633 | 633 |
JoinRaft: remoteAddr.Addr, |
| ... | ... |
@@ -1,3 +1,3 @@ |
| 1 | 1 |
package plugin |
| 2 | 2 |
|
| 3 |
-//go:generate protoc -I.:../../vendor/github.com/gogo/protobuf/protobuf --gogoswarm_out=import_path=github.com/docker/swarmkit/protobuf/plugin,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. plugin.proto |
|
| 3 |
+//go:generate protoc -I.:/usr/local --gogoswarm_out=import_path=github.com/docker/swarmkit/protobuf/plugin,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. plugin.proto |
| 4 | 4 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,20 @@ |
| 0 |
+// +build !windows |
|
| 1 |
+ |
|
| 2 |
+package xnet |
|
| 3 |
+ |
|
| 4 |
+import ( |
|
| 5 |
+ "net" |
|
| 6 |
+ "time" |
|
| 7 |
+) |
|
| 8 |
+ |
|
| 9 |
+// ListenLocal opens a local socket for control communication |
|
| 10 |
+func ListenLocal(socket string) (net.Listener, error) {
|
|
| 11 |
+ // on unix it's just a unix socket |
|
| 12 |
+ return net.Listen("unix", socket)
|
|
| 13 |
+} |
|
| 14 |
+ |
|
| 15 |
+// DialTimeoutLocal is a DialTimeout function for local sockets |
|
| 16 |
+func DialTimeoutLocal(socket string, timeout time.Duration) (net.Conn, error) {
|
|
| 17 |
+ // on unix, we dial a unix socket |
|
| 18 |
+ return net.DialTimeout("unix", socket, timeout)
|
|
| 19 |
+} |
| 0 | 20 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,31 @@ |
| 0 |
+// +build windows |
|
| 1 |
+ |
|
| 2 |
+package xnet |
|
| 3 |
+ |
|
| 4 |
+import ( |
|
| 5 |
+ "net" |
|
| 6 |
+ "time" |
|
| 7 |
+ |
|
| 8 |
+ "github.com/Microsoft/go-winio" |
|
| 9 |
+) |
|
| 10 |
+ |
|
| 11 |
+// ListenLocal opens a local socket for control communication |
|
| 12 |
+func ListenLocal(socket string) (net.Listener, error) {
|
|
| 13 |
+ // set up ACL for the named pipe |
|
| 14 |
+ // allow Administrators and SYSTEM |
|
| 15 |
+ sddl := "D:P(A;;GA;;;BA)(A;;GA;;;SY)" |
|
| 16 |
+ c := winio.PipeConfig{
|
|
| 17 |
+ SecurityDescriptor: sddl, |
|
| 18 |
+ MessageMode: true, // Use message mode so that CloseWrite() is supported |
|
| 19 |
+ InputBufferSize: 65536, // Use 64KB buffers to improve performance |
|
| 20 |
+ OutputBufferSize: 65536, |
|
| 21 |
+ } |
|
| 22 |
+ // on windows, our socket is actually a named pipe |
|
| 23 |
+ return winio.ListenPipe(socket, &c) |
|
| 24 |
+} |
|
| 25 |
+ |
|
| 26 |
+// DialTimeoutLocal is a DialTimeout function for local sockets |
|
| 27 |
+func DialTimeoutLocal(socket string, timeout time.Duration) (net.Conn, error) {
|
|
| 28 |
+ // On windows, we dial a named pipe |
|
| 29 |
+ return winio.DialPipe(socket, &timeout) |
|
| 30 |
+} |