Needed for libnetwork vendoring
Update Secret API name change correspondingly
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
| ... | ... |
@@ -136,13 +136,13 @@ func SwarmSpecUpdateAcceptancePolicy(spec *swarmapi.ClusterSpec, acceptancePolic |
| 136 | 136 |
hashPwd, _ = bcrypt.GenerateFromPassword([]byte(*p.Secret), 0) |
| 137 | 137 |
hashs[*p.Secret] = hashPwd |
| 138 | 138 |
} |
| 139 |
- policy.Secret = &swarmapi.AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{
|
|
| 139 |
+ policy.Secret = &swarmapi.AcceptancePolicy_RoleAdmissionPolicy_Secret{
|
|
| 140 | 140 |
Data: hashPwd, |
| 141 | 141 |
Alg: "bcrypt", |
| 142 | 142 |
} |
| 143 | 143 |
} |
| 144 | 144 |
} else if oldSecret := getOldSecret(oldSpec, policy.Role); oldSecret != nil { // else use the old one.
|
| 145 |
- policy.Secret = &swarmapi.AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{
|
|
| 145 |
+ policy.Secret = &swarmapi.AcceptancePolicy_RoleAdmissionPolicy_Secret{
|
|
| 146 | 146 |
Data: oldSecret.Data, |
| 147 | 147 |
Alg: oldSecret.Alg, |
| 148 | 148 |
} |
| ... | ... |
@@ -153,7 +153,7 @@ func SwarmSpecUpdateAcceptancePolicy(spec *swarmapi.ClusterSpec, acceptancePolic |
| 153 | 153 |
return nil |
| 154 | 154 |
} |
| 155 | 155 |
|
| 156 |
-func getOldSecret(oldSpec *swarmapi.ClusterSpec, role swarmapi.NodeRole) *swarmapi.AcceptancePolicy_RoleAdmissionPolicy_HashedSecret {
|
|
| 156 |
+func getOldSecret(oldSpec *swarmapi.ClusterSpec, role swarmapi.NodeRole) *swarmapi.AcceptancePolicy_RoleAdmissionPolicy_Secret {
|
|
| 157 | 157 |
if oldSpec == nil {
|
| 158 | 158 |
return nil |
| 159 | 159 |
} |
| ... | ... |
@@ -139,7 +139,7 @@ clone git github.com/docker/docker-credential-helpers v0.3.0 |
| 139 | 139 |
clone git github.com/docker/containerd 1b3a81545ca79456086dc2aa424357be98b962ee |
| 140 | 140 |
|
| 141 | 141 |
# cluster |
| 142 |
-clone git github.com/docker/swarmkit 24eaf0021a2eea7938fce7493ce4731f53c2b87c |
|
| 142 |
+clone git github.com/docker/swarmkit 16fa595d3b6fec012830179dc8e9b2d90335527d |
|
| 143 | 143 |
clone git github.com/golang/mock bd3c8e81be01eef76d4b503f5e687d2d1354d2d9 |
| 144 | 144 |
clone git github.com/gogo/protobuf 43a2e0b1c32252bfbbdf81f7faa7a88fb3fa4028 |
| 145 | 145 |
clone git github.com/cloudflare/cfssl b895b0549c0ff676f92cf09ba971ae02bb41367b |
| ... | ... |
@@ -195,6 +195,8 @@ func (a *Agent) run(ctx context.Context) {
|
| 195 | 195 |
log.G(ctx).WithError(err).Error("agent: closing session failed")
|
| 196 | 196 |
} |
| 197 | 197 |
sessionq = nil |
| 198 |
+ // if we're here before <-registered, do nothing for that event |
|
| 199 |
+ registered = nil |
|
| 198 | 200 |
case <-session.closed: |
| 199 | 201 |
log.G(ctx).Debugf("agent: rebuild session")
|
| 200 | 202 |
|
| ... | ... |
@@ -954,7 +954,7 @@ type AcceptancePolicy_RoleAdmissionPolicy struct {
|
| 954 | 954 |
Autoaccept bool `protobuf:"varint,2,opt,name=autoaccept,proto3" json:"autoaccept,omitempty"` |
| 955 | 955 |
// Secret represents a user-provided string that is necessary for new |
| 956 | 956 |
// nodes to join the cluster |
| 957 |
- Secret *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret `protobuf:"bytes,3,opt,name=secret" json:"secret,omitempty"` |
|
| 957 |
+ Secret *AcceptancePolicy_RoleAdmissionPolicy_Secret `protobuf:"bytes,3,opt,name=secret" json:"secret,omitempty"` |
|
| 958 | 958 |
} |
| 959 | 959 |
|
| 960 | 960 |
func (m *AcceptancePolicy_RoleAdmissionPolicy) Reset() { *m = AcceptancePolicy_RoleAdmissionPolicy{} }
|
| ... | ... |
@@ -963,18 +963,18 @@ func (*AcceptancePolicy_RoleAdmissionPolicy) Descriptor() ([]byte, []int) {
|
| 963 | 963 |
return fileDescriptorTypes, []int{23, 0}
|
| 964 | 964 |
} |
| 965 | 965 |
|
| 966 |
-type AcceptancePolicy_RoleAdmissionPolicy_HashedSecret struct {
|
|
| 967 |
- // The actual hashed content |
|
| 966 |
+type AcceptancePolicy_RoleAdmissionPolicy_Secret struct {
|
|
| 967 |
+ // The actual content (possibly hashed) |
|
| 968 | 968 |
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` |
| 969 |
- // The type of hash we are using |
|
| 969 |
+ // The type of hash we are using, or "plaintext" |
|
| 970 | 970 |
Alg string `protobuf:"bytes,2,opt,name=alg,proto3" json:"alg,omitempty"` |
| 971 | 971 |
} |
| 972 | 972 |
|
| 973 |
-func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Reset() {
|
|
| 974 |
- *m = AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{}
|
|
| 973 |
+func (m *AcceptancePolicy_RoleAdmissionPolicy_Secret) Reset() {
|
|
| 974 |
+ *m = AcceptancePolicy_RoleAdmissionPolicy_Secret{}
|
|
| 975 | 975 |
} |
| 976 |
-func (*AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) ProtoMessage() {}
|
|
| 977 |
-func (*AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Descriptor() ([]byte, []int) {
|
|
| 976 |
+func (*AcceptancePolicy_RoleAdmissionPolicy_Secret) ProtoMessage() {}
|
|
| 977 |
+func (*AcceptancePolicy_RoleAdmissionPolicy_Secret) Descriptor() ([]byte, []int) {
|
|
| 978 | 978 |
return fileDescriptorTypes, []int{23, 0, 0}
|
| 979 | 979 |
} |
| 980 | 980 |
|
| ... | ... |
@@ -1145,7 +1145,7 @@ func init() {
|
| 1145 | 1145 |
proto.RegisterType((*IssuanceStatus)(nil), "docker.swarmkit.v1.IssuanceStatus") |
| 1146 | 1146 |
proto.RegisterType((*AcceptancePolicy)(nil), "docker.swarmkit.v1.AcceptancePolicy") |
| 1147 | 1147 |
proto.RegisterType((*AcceptancePolicy_RoleAdmissionPolicy)(nil), "docker.swarmkit.v1.AcceptancePolicy.RoleAdmissionPolicy") |
| 1148 |
- proto.RegisterType((*AcceptancePolicy_RoleAdmissionPolicy_HashedSecret)(nil), "docker.swarmkit.v1.AcceptancePolicy.RoleAdmissionPolicy.HashedSecret") |
|
| 1148 |
+ proto.RegisterType((*AcceptancePolicy_RoleAdmissionPolicy_Secret)(nil), "docker.swarmkit.v1.AcceptancePolicy.RoleAdmissionPolicy.Secret") |
|
| 1149 | 1149 |
proto.RegisterType((*ExternalCA)(nil), "docker.swarmkit.v1.ExternalCA") |
| 1150 | 1150 |
proto.RegisterType((*CAConfig)(nil), "docker.swarmkit.v1.CAConfig") |
| 1151 | 1151 |
proto.RegisterType((*OrchestrationConfig)(nil), "docker.swarmkit.v1.OrchestrationConfig") |
| ... | ... |
@@ -1593,12 +1593,12 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) Copy() *AcceptancePolicy_RoleAdmi |
| 1593 | 1593 |
return o |
| 1594 | 1594 |
} |
| 1595 | 1595 |
|
| 1596 |
-func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Copy() *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret {
|
|
| 1596 |
+func (m *AcceptancePolicy_RoleAdmissionPolicy_Secret) Copy() *AcceptancePolicy_RoleAdmissionPolicy_Secret {
|
|
| 1597 | 1597 |
if m == nil {
|
| 1598 | 1598 |
return nil |
| 1599 | 1599 |
} |
| 1600 | 1600 |
|
| 1601 |
- o := &AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{
|
|
| 1601 |
+ o := &AcceptancePolicy_RoleAdmissionPolicy_Secret{
|
|
| 1602 | 1602 |
Data: m.Data, |
| 1603 | 1603 |
Alg: m.Alg, |
| 1604 | 1604 |
} |
| ... | ... |
@@ -2180,12 +2180,12 @@ func (this *AcceptancePolicy_RoleAdmissionPolicy) GoString() string {
|
| 2180 | 2180 |
s = append(s, "}") |
| 2181 | 2181 |
return strings.Join(s, "") |
| 2182 | 2182 |
} |
| 2183 |
-func (this *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) GoString() string {
|
|
| 2183 |
+func (this *AcceptancePolicy_RoleAdmissionPolicy_Secret) GoString() string {
|
|
| 2184 | 2184 |
if this == nil {
|
| 2185 | 2185 |
return "nil" |
| 2186 | 2186 |
} |
| 2187 | 2187 |
s := make([]string, 0, 6) |
| 2188 |
- s = append(s, "&api.AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{")
|
|
| 2188 |
+ s = append(s, "&api.AcceptancePolicy_RoleAdmissionPolicy_Secret{")
|
|
| 2189 | 2189 |
s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n")
|
| 2190 | 2190 |
s = append(s, "Alg: "+fmt.Sprintf("%#v", this.Alg)+",\n")
|
| 2191 | 2191 |
s = append(s, "}") |
| ... | ... |
@@ -3407,7 +3407,7 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) MarshalTo(data []byte) (int, erro |
| 3407 | 3407 |
return i, nil |
| 3408 | 3408 |
} |
| 3409 | 3409 |
|
| 3410 |
-func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Marshal() (data []byte, err error) {
|
|
| 3410 |
+func (m *AcceptancePolicy_RoleAdmissionPolicy_Secret) Marshal() (data []byte, err error) {
|
|
| 3411 | 3411 |
size := m.Size() |
| 3412 | 3412 |
data = make([]byte, size) |
| 3413 | 3413 |
n, err := m.MarshalTo(data) |
| ... | ... |
@@ -3417,7 +3417,7 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Marshal() (data []by |
| 3417 | 3417 |
return data[:n], nil |
| 3418 | 3418 |
} |
| 3419 | 3419 |
|
| 3420 |
-func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) MarshalTo(data []byte) (int, error) {
|
|
| 3420 |
+func (m *AcceptancePolicy_RoleAdmissionPolicy_Secret) MarshalTo(data []byte) (int, error) {
|
|
| 3421 | 3421 |
var i int |
| 3422 | 3422 |
_ = i |
| 3423 | 3423 |
var l int |
| ... | ... |
@@ -4301,7 +4301,7 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) Size() (n int) {
|
| 4301 | 4301 |
return n |
| 4302 | 4302 |
} |
| 4303 | 4303 |
|
| 4304 |
-func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Size() (n int) {
|
|
| 4304 |
+func (m *AcceptancePolicy_RoleAdmissionPolicy_Secret) Size() (n int) {
|
|
| 4305 | 4305 |
var l int |
| 4306 | 4306 |
_ = l |
| 4307 | 4307 |
l = len(m.Data) |
| ... | ... |
@@ -4866,16 +4866,16 @@ func (this *AcceptancePolicy_RoleAdmissionPolicy) String() string {
|
| 4866 | 4866 |
s := strings.Join([]string{`&AcceptancePolicy_RoleAdmissionPolicy{`,
|
| 4867 | 4867 |
`Role:` + fmt.Sprintf("%v", this.Role) + `,`,
|
| 4868 | 4868 |
`Autoaccept:` + fmt.Sprintf("%v", this.Autoaccept) + `,`,
|
| 4869 |
- `Secret:` + strings.Replace(fmt.Sprintf("%v", this.Secret), "AcceptancePolicy_RoleAdmissionPolicy_HashedSecret", "AcceptancePolicy_RoleAdmissionPolicy_HashedSecret", 1) + `,`,
|
|
| 4869 |
+ `Secret:` + strings.Replace(fmt.Sprintf("%v", this.Secret), "AcceptancePolicy_RoleAdmissionPolicy_Secret", "AcceptancePolicy_RoleAdmissionPolicy_Secret", 1) + `,`,
|
|
| 4870 | 4870 |
`}`, |
| 4871 | 4871 |
}, "") |
| 4872 | 4872 |
return s |
| 4873 | 4873 |
} |
| 4874 |
-func (this *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) String() string {
|
|
| 4874 |
+func (this *AcceptancePolicy_RoleAdmissionPolicy_Secret) String() string {
|
|
| 4875 | 4875 |
if this == nil {
|
| 4876 | 4876 |
return "nil" |
| 4877 | 4877 |
} |
| 4878 |
- s := strings.Join([]string{`&AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{`,
|
|
| 4878 |
+ s := strings.Join([]string{`&AcceptancePolicy_RoleAdmissionPolicy_Secret{`,
|
|
| 4879 | 4879 |
`Data:` + fmt.Sprintf("%v", this.Data) + `,`,
|
| 4880 | 4880 |
`Alg:` + fmt.Sprintf("%v", this.Alg) + `,`,
|
| 4881 | 4881 |
`}`, |
| ... | ... |
@@ -8641,7 +8641,7 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) Unmarshal(data []byte) error {
|
| 8641 | 8641 |
return io.ErrUnexpectedEOF |
| 8642 | 8642 |
} |
| 8643 | 8643 |
if m.Secret == nil {
|
| 8644 |
- m.Secret = &AcceptancePolicy_RoleAdmissionPolicy_HashedSecret{}
|
|
| 8644 |
+ m.Secret = &AcceptancePolicy_RoleAdmissionPolicy_Secret{}
|
|
| 8645 | 8645 |
} |
| 8646 | 8646 |
if err := m.Secret.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
| 8647 | 8647 |
return err |
| ... | ... |
@@ -8668,7 +8668,7 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) Unmarshal(data []byte) error {
|
| 8668 | 8668 |
} |
| 8669 | 8669 |
return nil |
| 8670 | 8670 |
} |
| 8671 |
-func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Unmarshal(data []byte) error {
|
|
| 8671 |
+func (m *AcceptancePolicy_RoleAdmissionPolicy_Secret) Unmarshal(data []byte) error {
|
|
| 8672 | 8672 |
l := len(data) |
| 8673 | 8673 |
iNdEx := 0 |
| 8674 | 8674 |
for iNdEx < l {
|
| ... | ... |
@@ -8691,10 +8691,10 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy_HashedSecret) Unmarshal(data []byt |
| 8691 | 8691 |
fieldNum := int32(wire >> 3) |
| 8692 | 8692 |
wireType := int(wire & 0x7) |
| 8693 | 8693 |
if wireType == 4 {
|
| 8694 |
- return fmt.Errorf("proto: HashedSecret: wiretype end group for non-group")
|
|
| 8694 |
+ return fmt.Errorf("proto: Secret: wiretype end group for non-group")
|
|
| 8695 | 8695 |
} |
| 8696 | 8696 |
if fieldNum <= 0 {
|
| 8697 |
- return fmt.Errorf("proto: HashedSecret: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 8697 |
+ return fmt.Errorf("proto: Secret: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 8698 | 8698 |
} |
| 8699 | 8699 |
switch fieldNum {
|
| 8700 | 8700 |
case 1: |
| ... | ... |
@@ -10199,196 +10199,196 @@ var ( |
| 10199 | 10199 |
) |
| 10200 | 10200 |
|
| 10201 | 10201 |
var fileDescriptorTypes = []byte{
|
| 10202 |
- // 3043 bytes of a gzipped FileDescriptorProto |
|
| 10203 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6c, 0x1b, 0xc7, |
|
| 10204 |
- 0x15, 0x16, 0x7f, 0x45, 0x0e, 0x29, 0x89, 0x5e, 0x3b, 0x8e, 0xcc, 0xa8, 0xb2, 0xbb, 0x89, 0x1b, |
|
| 10205 |
- 0xe7, 0xa7, 0x4c, 0xac, 0xa4, 0x85, 0x9b, 0xa0, 0x4d, 0x96, 0x3f, 0xb2, 0x58, 0x4b, 0x24, 0x31, |
|
| 10206 |
- 0x94, 0x64, 0x04, 0x45, 0x4b, 0xac, 0x96, 0x23, 0x69, 0xa3, 0xe5, 0x2e, 0xbb, 0xbb, 0x94, 0x4c, |
|
| 10202 |
+ // 3042 bytes of a gzipped FileDescriptorProto |
|
| 10203 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x6f, 0x1b, 0xc7, |
|
| 10204 |
+ 0x15, 0x17, 0x3f, 0x45, 0x3e, 0x52, 0x12, 0xbd, 0x76, 0x1c, 0x99, 0x51, 0x65, 0x77, 0x13, 0x37, |
|
| 10205 |
+ 0xce, 0x47, 0x99, 0x58, 0x49, 0x0b, 0x37, 0x41, 0xeb, 0x2c, 0x3f, 0x64, 0xb1, 0x96, 0x48, 0x62, |
|
| 10206 |
+ 0xa8, 0x0f, 0x04, 0x05, 0x4a, 0xac, 0x96, 0x23, 0x71, 0xa3, 0xe5, 0x2e, 0xbb, 0xbb, 0x94, 0x4c, |
|
| 10207 | 10207 |
0x14, 0x05, 0x9c, 0x5e, 0x5a, 0x04, 0x3d, 0xf4, 0x5e, 0x04, 0x41, 0xd1, 0xa2, 0xb7, 0x9e, 0x0b, |
| 10208 |
- 0xf4, 0xe4, 0xa3, 0x8f, 0x2d, 0x0a, 0x14, 0x39, 0x05, 0x4d, 0x7a, 0xe8, 0xb5, 0x40, 0x0f, 0x39, |
|
| 10209 |
- 0xb4, 0x87, 0xbe, 0x37, 0x3f, 0xcb, 0x1f, 0xaf, 0x15, 0xa7, 0xc9, 0x81, 0xe0, 0xce, 0x7b, 0xdf, |
|
| 10210 |
- 0x7b, 0x33, 0x6f, 0xe6, 0xcd, 0xfb, 0x19, 0x52, 0x08, 0xc7, 0x43, 0x16, 0x54, 0x86, 0xbe, 0x17, |
|
| 10211 |
- 0x7a, 0x9a, 0xd6, 0xf7, 0xac, 0x13, 0xe6, 0x57, 0x82, 0x33, 0xd3, 0x1f, 0x9c, 0xd8, 0x61, 0xe5, |
|
| 10212 |
- 0xf4, 0x66, 0xf9, 0x4a, 0x68, 0x0f, 0x58, 0x10, 0x9a, 0x83, 0xe1, 0x2b, 0xd1, 0x97, 0x80, 0x97, |
|
| 10213 |
- 0x9f, 0xee, 0x8f, 0x7c, 0x33, 0xb4, 0x3d, 0xf7, 0x15, 0xf5, 0x21, 0x19, 0x97, 0x8e, 0xbc, 0x23, |
|
| 10214 |
- 0x8f, 0x7f, 0xbe, 0x82, 0x5f, 0x82, 0xaa, 0x5f, 0x25, 0x8b, 0xfb, 0xcc, 0x0f, 0x00, 0xa6, 0x5d, |
|
| 10215 |
- 0x22, 0x19, 0xdb, 0xed, 0xb3, 0x7b, 0xab, 0x89, 0x6b, 0x89, 0x1b, 0x69, 0x2a, 0x06, 0xfa, 0x6f, |
|
| 10216 |
- 0x12, 0xa4, 0x60, 0xb8, 0xae, 0x17, 0x72, 0x5d, 0x81, 0xa6, 0x91, 0xb4, 0x6b, 0x0e, 0x18, 0x07, |
|
| 10217 |
- 0xe5, 0x29, 0xff, 0xd6, 0x6a, 0x24, 0xeb, 0x98, 0x07, 0xcc, 0x09, 0x56, 0x93, 0xd7, 0x52, 0x37, |
|
| 10218 |
- 0x0a, 0x1b, 0x2f, 0x55, 0x1e, 0x5d, 0x73, 0x65, 0x4a, 0x49, 0x65, 0x9b, 0xa3, 0x1b, 0x6e, 0xe8, |
|
| 10219 |
- 0x8f, 0xa9, 0x14, 0x2d, 0x7f, 0x87, 0x14, 0xa6, 0xc8, 0x5a, 0x89, 0xa4, 0x4e, 0xd8, 0x58, 0x4e, |
|
| 10220 |
- 0x83, 0x9f, 0xb8, 0xbe, 0x53, 0xd3, 0x19, 0x31, 0x98, 0x04, 0x69, 0x62, 0xf0, 0x46, 0xf2, 0x56, |
|
| 10221 |
- 0x42, 0x7f, 0x87, 0xe4, 0x29, 0x0b, 0xbc, 0x91, 0x6f, 0xb1, 0x40, 0x7b, 0x81, 0xe4, 0x5d, 0xd3, |
|
| 10222 |
- 0xf5, 0x7a, 0xd6, 0x70, 0x14, 0x70, 0xf1, 0x54, 0xb5, 0xf8, 0xe9, 0xc7, 0x57, 0x73, 0x2d, 0x20, |
|
| 10223 |
- 0xd6, 0x3a, 0x7b, 0x01, 0xcd, 0x21, 0xbb, 0x06, 0x5c, 0xed, 0xeb, 0xa4, 0x38, 0x60, 0x03, 0xcf, |
|
| 10224 |
- 0x1f, 0xf7, 0x0e, 0xc6, 0x21, 0x0b, 0xb8, 0xe2, 0x14, 0x2d, 0x08, 0x5a, 0x15, 0x49, 0xfa, 0xaf, |
|
| 10225 |
- 0x12, 0xe4, 0x92, 0xd2, 0x4d, 0xd9, 0x8f, 0x47, 0xb6, 0xcf, 0x06, 0xcc, 0x0d, 0x03, 0xed, 0x5b, |
|
| 10226 |
- 0x60, 0xb3, 0x3d, 0xb0, 0x43, 0x31, 0x47, 0x61, 0xe3, 0x6b, 0x71, 0x36, 0x47, 0xab, 0xa2, 0x12, |
|
| 10227 |
- 0xac, 0x19, 0xa4, 0xe8, 0xb3, 0x80, 0xf9, 0xa7, 0x62, 0x27, 0xf8, 0x94, 0x9f, 0x2b, 0x3c, 0x23, |
|
| 10228 |
- 0xa2, 0x6f, 0x92, 0x5c, 0xc7, 0x31, 0xc3, 0x43, 0xcf, 0x1f, 0x68, 0x3a, 0x29, 0x9a, 0xbe, 0x75, |
|
| 10229 |
- 0x6c, 0x87, 0xcc, 0x0a, 0x47, 0xbe, 0x3a, 0x95, 0x19, 0x9a, 0x76, 0x99, 0x24, 0x3d, 0x31, 0x51, |
|
| 10230 |
- 0xbe, 0x9a, 0x85, 0x9d, 0x48, 0xb6, 0xbb, 0x14, 0x28, 0xfa, 0x9b, 0xe4, 0x42, 0xc7, 0x19, 0x1d, |
|
| 10231 |
- 0xd9, 0x6e, 0x9d, 0x05, 0x96, 0x6f, 0x0f, 0x51, 0x3b, 0x1e, 0x2f, 0x3a, 0x9f, 0x3a, 0x5e, 0xfc, |
|
| 10232 |
- 0x8e, 0x8e, 0x3c, 0x39, 0x39, 0x72, 0xfd, 0xe7, 0x49, 0x72, 0xa1, 0xe1, 0x82, 0x30, 0x9b, 0x96, |
|
| 10233 |
- 0xbe, 0x4e, 0x96, 0x19, 0x27, 0xf6, 0x4e, 0x85, 0x53, 0x49, 0x3d, 0x4b, 0x82, 0xaa, 0x3c, 0xad, |
|
| 10234 |
- 0x39, 0xe7, 0x2f, 0x37, 0xe3, 0xcc, 0x7f, 0x44, 0x7b, 0x9c, 0xd7, 0x68, 0x0d, 0xb2, 0x38, 0xe4, |
|
| 10235 |
- 0x46, 0x04, 0xab, 0x29, 0xae, 0xeb, 0x7a, 0x9c, 0xae, 0x47, 0xec, 0xac, 0xa6, 0x1f, 0x7e, 0x7c, |
|
| 10236 |
- 0x75, 0x81, 0x2a, 0xd9, 0x2f, 0xe3, 0x7c, 0xff, 0x48, 0x90, 0x95, 0x96, 0xd7, 0x9f, 0xd9, 0x87, |
|
| 10237 |
- 0x32, 0xc9, 0x1d, 0x7b, 0x41, 0x38, 0x75, 0x51, 0xa2, 0xb1, 0x76, 0x8b, 0xe4, 0x86, 0xf2, 0xf8, |
|
| 10238 |
- 0xe4, 0xe9, 0xaf, 0xc5, 0x2f, 0x59, 0x60, 0x68, 0x84, 0xd6, 0xde, 0x24, 0x79, 0x5f, 0xf9, 0x04, |
|
| 10239 |
- 0x58, 0xfb, 0x04, 0x8e, 0x33, 0xc1, 0x6b, 0xdf, 0x25, 0x59, 0x71, 0x08, 0xab, 0x69, 0x2e, 0x79, |
|
| 10240 |
- 0xfd, 0x89, 0xf6, 0x9c, 0x4a, 0x21, 0xfd, 0xa3, 0x04, 0x29, 0x51, 0xf3, 0x30, 0xdc, 0x61, 0x83, |
|
| 10241 |
- 0x03, 0xe6, 0x77, 0xe1, 0x22, 0xc3, 0xfd, 0xb9, 0x0c, 0xe7, 0xc8, 0xcc, 0x3e, 0xf3, 0xb9, 0x91, |
|
| 10242 |
- 0x39, 0x2a, 0x47, 0xda, 0x1e, 0x3a, 0xb9, 0x69, 0x1d, 0x9b, 0x07, 0xb6, 0x63, 0x87, 0x63, 0x6e, |
|
| 10243 |
- 0xe6, 0x72, 0xfc, 0x29, 0xcf, 0xeb, 0x84, 0xc5, 0x4f, 0x04, 0xe9, 0x8c, 0x1a, 0x6d, 0x95, 0x2c, |
|
| 10244 |
- 0x42, 0xac, 0x0b, 0xcc, 0x23, 0xc6, 0xad, 0xcf, 0x53, 0x35, 0x04, 0x57, 0x2e, 0x4e, 0xcb, 0x69, |
|
| 10245 |
- 0x05, 0xb2, 0xb8, 0xd7, 0xba, 0xd3, 0x6a, 0xdf, 0x6d, 0x95, 0x16, 0xb4, 0x15, 0x52, 0xd8, 0x6b, |
|
| 10246 |
- 0xd1, 0x86, 0x51, 0xdb, 0x32, 0xaa, 0xdb, 0x8d, 0x52, 0x42, 0x5b, 0x82, 0x70, 0x11, 0x0d, 0x93, |
|
| 10247 |
- 0xfa, 0x87, 0x09, 0x42, 0xf0, 0x00, 0xa5, 0x51, 0x6f, 0x90, 0x0c, 0xc4, 0xd3, 0x50, 0x1c, 0xdc, |
|
| 10248 |
- 0xf2, 0xc6, 0x73, 0x71, 0xab, 0x9e, 0xc0, 0x2b, 0xf8, 0xc7, 0xa8, 0x10, 0x99, 0x5e, 0x61, 0x72, |
|
| 10249 |
- 0x7e, 0x85, 0x19, 0x8e, 0x9c, 0x5d, 0x5a, 0x8e, 0xa4, 0xeb, 0xf8, 0x95, 0xd0, 0xf2, 0x24, 0x03, |
|
| 10250 |
- 0x6b, 0xaa, 0xbf, 0x53, 0x4a, 0x82, 0xf3, 0x15, 0xeb, 0xcd, 0x6e, 0xad, 0xdd, 0x6a, 0x35, 0x6a, |
|
| 10251 |
- 0xbb, 0x8d, 0x7a, 0x29, 0xa5, 0x5f, 0x27, 0x99, 0xe6, 0x00, 0xb4, 0x68, 0x6b, 0xe8, 0x01, 0x87, |
|
| 10252 |
- 0xcc, 0x67, 0xae, 0xa5, 0x1c, 0x6b, 0x42, 0xd0, 0x7f, 0x99, 0x23, 0x99, 0x1d, 0x6f, 0xe4, 0x86, |
|
| 10253 |
- 0xda, 0xc6, 0xd4, 0x2d, 0x5e, 0xde, 0x58, 0x8f, 0x33, 0x81, 0x03, 0x2b, 0xbb, 0x80, 0x92, 0xb7, |
|
| 10254 |
- 0x1c, 0x0e, 0x53, 0xf8, 0x8a, 0x5c, 0xba, 0x1c, 0x21, 0x3d, 0x34, 0xfd, 0x23, 0x16, 0xca, 0x4d, |
|
| 10255 |
- 0x97, 0x23, 0xed, 0x06, 0xc9, 0xc1, 0xe9, 0xf4, 0x3d, 0xd7, 0x19, 0x73, 0x97, 0xca, 0x89, 0x30, |
|
| 10256 |
- 0x0b, 0xe7, 0xd0, 0x6f, 0x03, 0x8d, 0x46, 0x5c, 0x6d, 0x8b, 0x14, 0x0f, 0x20, 0x99, 0xf4, 0xbc, |
|
| 10257 |
- 0xa1, 0x88, 0x79, 0x99, 0xc7, 0x3b, 0xa0, 0x58, 0x55, 0x15, 0xd0, 0x6d, 0x01, 0xa6, 0x85, 0x83, |
|
| 10258 |
- 0xc9, 0x40, 0x6b, 0x91, 0xe5, 0x53, 0xcf, 0x19, 0x0d, 0x58, 0xa4, 0x2b, 0xcb, 0x75, 0x3d, 0xff, |
|
| 10259 |
- 0x78, 0x5d, 0xfb, 0x1c, 0xaf, 0xb4, 0x2d, 0x9d, 0x4e, 0x0f, 0xcb, 0x3f, 0x4b, 0x91, 0xc2, 0xd4, |
|
| 10260 |
- 0x64, 0x5a, 0x97, 0x14, 0x20, 0x2d, 0x0e, 0xcd, 0x23, 0x1e, 0x6a, 0xe5, 0xf6, 0xdd, 0x7c, 0xa2, |
|
| 10261 |
- 0x85, 0x56, 0x3a, 0x13, 0x41, 0x3a, 0xad, 0x45, 0xff, 0x20, 0x49, 0x0a, 0x53, 0x4c, 0xed, 0x45, |
|
| 10262 |
- 0x92, 0xa3, 0x1d, 0xda, 0xdc, 0x37, 0x76, 0x1b, 0xa5, 0x85, 0xf2, 0xda, 0xfb, 0x1f, 0x5c, 0x5b, |
|
| 10263 |
- 0xe5, 0xda, 0xa6, 0x15, 0x74, 0x7c, 0xfb, 0x14, 0xbd, 0xe5, 0x06, 0x59, 0x54, 0xd0, 0x44, 0xf9, |
|
| 10264 |
- 0x19, 0x80, 0x3e, 0x3d, 0x0f, 0x9d, 0x42, 0xd2, 0xee, 0x96, 0x41, 0xc1, 0x61, 0x92, 0xf1, 0x48, |
|
| 10265 |
- 0xda, 0x3d, 0x36, 0x7d, 0xd6, 0xd7, 0xbe, 0x41, 0xb2, 0x12, 0x98, 0x2a, 0x97, 0x01, 0x78, 0x79, |
|
| 10266 |
- 0x1e, 0x38, 0xc1, 0xd1, 0xee, 0xb6, 0xb1, 0xdf, 0x28, 0xa5, 0xe3, 0x71, 0xb4, 0xeb, 0x98, 0xa7, |
|
| 10267 |
- 0x4c, 0x7b, 0x0e, 0x5c, 0x9b, 0xc3, 0x32, 0xe5, 0x2b, 0x00, 0x7b, 0xea, 0x11, 0x75, 0x88, 0x2a, |
|
| 10268 |
- 0xaf, 0xfe, 0xe2, 0xb7, 0xeb, 0x0b, 0x7f, 0xfa, 0xdd, 0x7a, 0x69, 0x9e, 0x5d, 0xfe, 0x6f, 0x82, |
|
| 10269 |
- 0x2c, 0xcd, 0x9c, 0x12, 0x64, 0xb5, 0xac, 0xeb, 0x59, 0xde, 0x50, 0x44, 0xe0, 0x5c, 0x95, 0x80, |
|
| 10270 |
- 0x63, 0x65, 0x5b, 0x5e, 0x0d, 0x28, 0x54, 0x72, 0xb4, 0x3b, 0x73, 0x39, 0xe4, 0xb5, 0x27, 0x74, |
|
| 10271 |
- 0x81, 0xd8, 0x2c, 0xf2, 0x16, 0x59, 0xea, 0xc3, 0x3e, 0x32, 0xbf, 0x67, 0x79, 0xee, 0xa1, 0x7d, |
|
| 10272 |
- 0x24, 0xa3, 0x6b, 0x39, 0x4e, 0x67, 0x9d, 0x03, 0x69, 0x51, 0x08, 0xd4, 0x38, 0xfe, 0xcb, 0xe4, |
|
| 10273 |
- 0x8f, 0xbb, 0x24, 0x8d, 0xb7, 0x50, 0x7b, 0x86, 0xa4, 0xab, 0xcd, 0x56, 0x1d, 0x5c, 0xe2, 0x02, |
|
| 10274 |
- 0xec, 0xe2, 0x12, 0x5f, 0x3a, 0x32, 0xd0, 0xc7, 0xb4, 0xab, 0x24, 0xbb, 0xdf, 0xde, 0xde, 0xdb, |
|
| 10275 |
- 0x41, 0x37, 0xb8, 0x08, 0xec, 0x95, 0x88, 0x2d, 0x8c, 0x2b, 0x5f, 0x90, 0xdb, 0x9b, 0x8f, 0x18, |
|
| 10276 |
- 0xfa, 0x7f, 0x92, 0x64, 0x89, 0x62, 0x6d, 0xe8, 0x87, 0x1d, 0xcf, 0xb1, 0xad, 0xb1, 0xd6, 0x21, |
|
| 10277 |
- 0x79, 0xb0, 0xaf, 0x6f, 0x4f, 0x39, 0xf7, 0xc6, 0x63, 0x12, 0xc8, 0x44, 0x4a, 0x8d, 0x6a, 0x4a, |
|
| 10278 |
- 0x92, 0x4e, 0x94, 0x40, 0xa0, 0xc9, 0xf4, 0x99, 0x63, 0x8e, 0xcf, 0xcb, 0x64, 0x75, 0x59, 0x87, |
|
| 10279 |
- 0x52, 0x01, 0xe5, 0x55, 0x97, 0x79, 0xaf, 0x67, 0x86, 0x21, 0x1b, 0x0c, 0x43, 0x91, 0xc9, 0xd2, |
|
| 10280 |
- 0x50, 0x75, 0x99, 0xf7, 0x0c, 0x49, 0xd2, 0x5e, 0x27, 0xd9, 0x33, 0x30, 0xdb, 0x3b, 0x93, 0xc9, |
|
| 10281 |
- 0xea, 0x7c, 0xbd, 0x12, 0xab, 0xbf, 0x8f, 0x39, 0x6a, 0x6e, 0xb1, 0xb8, 0xad, 0xad, 0x76, 0xab, |
|
| 10282 |
- 0xa1, 0xb6, 0x55, 0xf2, 0xdb, 0x6e, 0xcb, 0x73, 0xd1, 0x75, 0x49, 0xbb, 0xd5, 0xdb, 0x34, 0x9a, |
|
| 10283 |
- 0xdb, 0x7b, 0x14, 0xb7, 0xf6, 0x12, 0x40, 0x4a, 0x11, 0x64, 0xd3, 0xb4, 0x1d, 0x2c, 0xa0, 0xae, |
|
| 10284 |
- 0x90, 0x94, 0xd1, 0x82, 0xc8, 0x5c, 0x2e, 0x01, 0xbb, 0x18, 0xb1, 0x0d, 0x77, 0x3c, 0xf1, 0xea, |
|
| 10285 |
- 0xf9, 0x79, 0xf5, 0x77, 0x49, 0x71, 0x6f, 0xd8, 0x87, 0x9b, 0x29, 0x3c, 0x44, 0xbb, 0x06, 0xa1, |
|
| 10286 |
- 0xc5, 0xf4, 0x4d, 0xc7, 0x61, 0x8e, 0x1d, 0x0c, 0x64, 0x8d, 0x3d, 0x4d, 0x82, 0xc2, 0xe0, 0xc9, |
|
| 10287 |
- 0xf7, 0x52, 0xd6, 0x2f, 0x42, 0x40, 0xff, 0x29, 0x59, 0x81, 0x59, 0x42, 0x13, 0x12, 0xb5, 0x4a, |
|
| 10288 |
- 0xcd, 0x1b, 0xa4, 0x68, 0x29, 0x52, 0xcf, 0xee, 0x0b, 0x57, 0xac, 0xae, 0xc0, 0x45, 0x2a, 0x44, |
|
| 10289 |
- 0xd0, 0x66, 0x9d, 0x16, 0x22, 0x50, 0xb3, 0x8f, 0x76, 0x0e, 0x01, 0x8a, 0xd3, 0x67, 0xaa, 0x8b, |
|
| 10290 |
- 0x00, 0x4d, 0x75, 0x00, 0x82, 0x34, 0xd8, 0xc5, 0x3c, 0xbb, 0x67, 0x87, 0x70, 0x3d, 0xfa, 0x22, |
|
| 10291 |
- 0xf9, 0x66, 0x68, 0x0e, 0x09, 0x35, 0x18, 0xeb, 0xef, 0x25, 0x09, 0xd9, 0x35, 0x83, 0x13, 0x39, |
|
| 10292 |
- 0x35, 0x94, 0x29, 0x51, 0x53, 0x72, 0x5e, 0x71, 0xbc, 0xab, 0x40, 0x74, 0x82, 0xd7, 0x5e, 0x53, |
|
| 10293 |
- 0xd9, 0x57, 0xd4, 0x0c, 0xf1, 0x82, 0x72, 0xae, 0xb8, 0xb4, 0x3b, 0x5b, 0x18, 0xe0, 0x45, 0x64, |
|
| 10294 |
- 0xbe, 0xcf, 0xbd, 0x08, 0x2e, 0x22, 0x7c, 0x42, 0xaf, 0x92, 0x8f, 0x6c, 0x96, 0x99, 0xe8, 0xd9, |
|
| 10295 |
- 0xb8, 0x49, 0xe6, 0x36, 0x74, 0x6b, 0x81, 0x4e, 0xe4, 0xaa, 0x25, 0xb2, 0xec, 0xc3, 0x35, 0x83, |
|
| 10296 |
- 0x55, 0xf7, 0x02, 0xce, 0xd6, 0xff, 0x0a, 0x7b, 0xd0, 0xec, 0x18, 0x3b, 0xf2, 0xb4, 0xeb, 0x24, |
|
| 10297 |
- 0x7b, 0x68, 0x0e, 0x6c, 0x67, 0x2c, 0xaf, 0xd9, 0xcb, 0x71, 0x53, 0x4c, 0xf0, 0x15, 0xa3, 0xdf, |
|
| 10298 |
- 0x87, 0x52, 0x2d, 0xd8, 0xe4, 0x32, 0x54, 0xca, 0xf2, 0x94, 0x3c, 0x3a, 0x70, 0x21, 0xf5, 0xaa, |
|
| 10299 |
- 0x94, 0xcc, 0x47, 0x18, 0x4c, 0x7c, 0xd3, 0x8d, 0xac, 0x15, 0x03, 0xdc, 0x05, 0x88, 0xa8, 0xec, |
|
| 10300 |
- 0xcc, 0x1c, 0x4b, 0x7b, 0xd5, 0x10, 0x12, 0x70, 0x4e, 0x74, 0x10, 0xac, 0x0f, 0x26, 0x63, 0xb4, |
|
| 10301 |
- 0xfc, 0xbc, 0xf5, 0x50, 0x09, 0x17, 0x61, 0x32, 0x92, 0x2e, 0xbf, 0xc9, 0x43, 0xca, 0x84, 0xf5, |
|
| 10302 |
- 0x85, 0x22, 0xdd, 0xab, 0x64, 0x69, 0xc6, 0xce, 0x47, 0x6a, 0xa1, 0x66, 0x67, 0xff, 0xf5, 0x52, |
|
| 10303 |
- 0x5a, 0x7e, 0x7d, 0xbb, 0x94, 0xd5, 0xff, 0x0d, 0xa5, 0x59, 0xc7, 0xe3, 0xd7, 0x0a, 0x77, 0x35, |
|
| 10304 |
- 0xbe, 0xf7, 0xcc, 0xf1, 0x4e, 0xd6, 0xf2, 0x1c, 0xe9, 0x33, 0xb1, 0xc5, 0xc0, 0x44, 0x0b, 0x26, |
|
| 10305 |
- 0x6a, 0x0e, 0xa7, 0x91, 0x20, 0x84, 0xd7, 0x82, 0xa8, 0x6a, 0x7a, 0x43, 0xc0, 0xf1, 0x6d, 0x5d, |
|
| 10306 |
- 0xa2, 0x44, 0x90, 0x50, 0x12, 0x1b, 0x9b, 0xe1, 0xe8, 0x00, 0xae, 0xe9, 0x31, 0xeb, 0x0b, 0x4c, |
|
| 10307 |
- 0x9a, 0x63, 0x96, 0x22, 0x2a, 0xc2, 0xf4, 0x3a, 0xb4, 0x66, 0x4a, 0xe7, 0x2a, 0x49, 0xed, 0xd6, |
|
| 10308 |
- 0x3a, 0x10, 0x77, 0x56, 0x20, 0x6a, 0x14, 0x14, 0x19, 0x48, 0xc8, 0xd9, 0xab, 0x77, 0x20, 0xdc, |
|
| 10309 |
- 0xcc, 0x70, 0x80, 0x54, 0x4e, 0x63, 0x38, 0xd1, 0x7f, 0x9d, 0x20, 0x59, 0x91, 0x65, 0x62, 0x2d, |
|
| 10310 |
- 0x36, 0xc8, 0xa2, 0xaa, 0x7e, 0x44, 0xea, 0x7b, 0xfe, 0xf1, 0x69, 0xaa, 0x22, 0xb3, 0x9e, 0x38, |
|
| 10311 |
- 0x47, 0x25, 0x57, 0x7e, 0x83, 0x14, 0xa7, 0x19, 0x5f, 0xe8, 0x14, 0x7f, 0x42, 0x0a, 0xe8, 0x28, |
|
| 10312 |
- 0x2a, 0x57, 0x6f, 0x90, 0xac, 0xc8, 0x84, 0xf2, 0xaa, 0x9f, 0x97, 0x33, 0x25, 0x12, 0x22, 0xdd, |
|
| 10313 |
- 0xa2, 0xc8, 0xb3, 0xaa, 0x69, 0x5b, 0x3f, 0xdf, 0x1d, 0xa9, 0x82, 0xeb, 0x6f, 0x91, 0x74, 0x87, |
|
| 10314 |
- 0x81, 0x86, 0x67, 0xc9, 0xa2, 0x0b, 0xa1, 0x67, 0x12, 0xd9, 0x64, 0x89, 0xd0, 0x67, 0x10, 0xb1, |
|
| 10315 |
- 0xb2, 0xc8, 0x82, 0x78, 0x06, 0x9b, 0x67, 0x82, 0xbf, 0xa9, 0xbe, 0x15, 0xbf, 0xf5, 0x5d, 0x52, |
|
| 10316 |
- 0xbc, 0xcb, 0xec, 0xa3, 0xe3, 0x10, 0x4e, 0x0c, 0x15, 0xbd, 0x4c, 0xd2, 0x43, 0x16, 0x2d, 0x7e, |
|
| 10317 |
- 0x35, 0xd6, 0x75, 0x80, 0x4f, 0x39, 0x0a, 0x2f, 0xe4, 0x19, 0x97, 0x96, 0x4f, 0x05, 0x72, 0xa4, |
|
| 10318 |
- 0xff, 0x21, 0x49, 0x96, 0x9b, 0x41, 0x30, 0x32, 0xa1, 0x0c, 0x97, 0x51, 0xf0, 0x7b, 0xb3, 0x6d, |
|
| 10319 |
- 0xc4, 0x8d, 0x58, 0x0b, 0x67, 0x44, 0x66, 0x5b, 0x09, 0x19, 0xb9, 0x92, 0x51, 0xe4, 0xd2, 0x1f, |
|
| 10320 |
- 0x26, 0x54, 0x0f, 0x71, 0x7d, 0xea, 0xde, 0x94, 0x57, 0xc1, 0x89, 0x2e, 0x4d, 0x6b, 0x62, 0x7b, |
|
| 10321 |
- 0xee, 0x89, 0xeb, 0x9d, 0xb9, 0x90, 0x68, 0xa1, 0xa7, 0x68, 0x35, 0xee, 0x82, 0xa7, 0x5d, 0x06, |
|
| 10322 |
- 0x90, 0x36, 0x03, 0xa2, 0xcc, 0x65, 0x67, 0xa8, 0xa9, 0xd3, 0x68, 0xd5, 0x9b, 0xad, 0xdb, 0x90, |
|
| 10323 |
- 0xde, 0x1e, 0xd5, 0xd4, 0x61, 0x90, 0xce, 0xdc, 0x23, 0xd8, 0xee, 0x6c, 0xb3, 0xdb, 0xdd, 0xe3, |
|
| 10324 |
- 0x25, 0xe3, 0xd3, 0x80, 0xba, 0x38, 0x83, 0xc2, 0x01, 0xd4, 0x8b, 0x00, 0xc2, 0x4c, 0x0a, 0xa0, |
|
| 10325 |
- 0x74, 0x0c, 0x08, 0x93, 0x29, 0x04, 0x10, 0xe1, 0xe1, 0xff, 0x4c, 0x92, 0x92, 0x61, 0x59, 0x6c, |
|
| 10326 |
- 0x18, 0x22, 0x5f, 0x56, 0x27, 0xbb, 0x70, 0x93, 0xf1, 0xcb, 0x66, 0xf8, 0xa6, 0x82, 0x6e, 0x71, |
|
| 10327 |
- 0x2b, 0xf6, 0x1d, 0x69, 0x4e, 0xae, 0x42, 0x3d, 0x87, 0x19, 0xfd, 0x81, 0x1d, 0xe0, 0xdb, 0x82, |
|
| 10328 |
- 0xa0, 0xd1, 0x48, 0x13, 0x56, 0x97, 0x17, 0x63, 0x10, 0xda, 0xab, 0x24, 0xed, 0x03, 0x59, 0x1e, |
|
| 10329 |
- 0xcf, 0xda, 0xe3, 0xba, 0x3c, 0x14, 0xa5, 0x1c, 0xa9, 0xad, 0x13, 0x62, 0x8e, 0x42, 0xcf, 0xe4, |
|
| 10330 |
- 0xf3, 0xf3, 0x83, 0xc9, 0xd1, 0x29, 0x8a, 0xf6, 0x43, 0x88, 0xd6, 0xcc, 0xf2, 0x65, 0xa3, 0x54, |
|
| 10331 |
- 0xd8, 0x68, 0xfc, 0xbf, 0xab, 0xaf, 0x6c, 0x99, 0x18, 0x51, 0xba, 0x5c, 0x19, 0x95, 0x4a, 0xcb, |
|
| 10332 |
- 0xaf, 0x93, 0xe2, 0x34, 0x1d, 0xbd, 0x1b, 0xca, 0x0b, 0x93, 0x1b, 0x50, 0xa4, 0xfc, 0x1b, 0x9d, |
|
| 10333 |
- 0xc6, 0x74, 0x8e, 0x94, 0xd3, 0xc0, 0xa7, 0xfe, 0x21, 0xe4, 0xa5, 0xc6, 0xbd, 0x90, 0xf9, 0xae, |
|
| 10334 |
- 0xe9, 0xd4, 0x0c, 0xad, 0x31, 0x15, 0x2d, 0x85, 0xe5, 0x2f, 0xc4, 0xbe, 0x03, 0x44, 0x12, 0x95, |
|
| 10335 |
- 0x9a, 0x11, 0x13, 0x2f, 0xa1, 0x52, 0x18, 0xf9, 0x8e, 0x7c, 0x53, 0xe2, 0x95, 0xc2, 0x1e, 0xdd, |
|
| 10336 |
- 0xa6, 0x48, 0xc3, 0x07, 0x19, 0x15, 0x9d, 0x52, 0x8f, 0x7f, 0x0c, 0x9c, 0x9a, 0xe0, 0xab, 0x8f, |
|
| 10337 |
- 0x50, 0x2f, 0x13, 0x32, 0x59, 0x35, 0x1c, 0x5b, 0xa6, 0xb6, 0xd9, 0xed, 0x6e, 0xc3, 0x55, 0xe1, |
|
| 10338 |
- 0x95, 0xf3, 0x84, 0xc5, 0xc9, 0xfa, 0xef, 0x13, 0x24, 0x57, 0x33, 0x64, 0x86, 0xd9, 0x24, 0x25, |
|
| 10339 |
- 0x1e, 0x57, 0x2c, 0xe6, 0x87, 0x3d, 0x76, 0x6f, 0x68, 0xfb, 0x63, 0x19, 0x1a, 0xce, 0x2f, 0x41, |
|
| 10340 |
- 0x97, 0x51, 0xaa, 0x06, 0x42, 0x0d, 0x2e, 0xa3, 0x51, 0x52, 0x64, 0xd2, 0xc4, 0x9e, 0x65, 0xaa, |
|
| 10341 |
- 0x40, 0xbd, 0x7e, 0xfe, 0x56, 0x88, 0xf2, 0x6c, 0x32, 0x86, 0xe6, 0x57, 0x29, 0xa9, 0x99, 0x81, |
|
| 10342 |
- 0xbe, 0x4f, 0x2e, 0xb6, 0x7d, 0xeb, 0x18, 0x0a, 0x25, 0x31, 0xa9, 0x5c, 0xf2, 0x5b, 0x64, 0x2d, |
|
| 10343 |
- 0x84, 0x82, 0xa8, 0x77, 0x6c, 0x07, 0x21, 0x3e, 0x65, 0x82, 0x6f, 0x30, 0x17, 0xf9, 0x3d, 0xfe, |
|
| 10344 |
- 0xe4, 0x28, 0x9e, 0x40, 0xe9, 0x15, 0xc4, 0x6c, 0x09, 0x08, 0x55, 0x88, 0x6d, 0x04, 0xe8, 0x3f, |
|
| 10345 |
- 0x20, 0xa5, 0xba, 0x1d, 0x0c, 0xcd, 0x10, 0x74, 0xcb, 0x7e, 0x46, 0xbb, 0x4d, 0x4a, 0xc7, 0x0c, |
|
| 10346 |
- 0xea, 0xd9, 0x03, 0x66, 0x42, 0x4e, 0x64, 0xbe, 0xed, 0xf5, 0x9f, 0x68, 0x1f, 0x56, 0x22, 0xa9, |
|
| 10347 |
- 0x0e, 0x17, 0xd2, 0x3f, 0x83, 0x0c, 0x8e, 0x6f, 0x3c, 0x52, 0xef, 0x4b, 0xe4, 0x42, 0xe0, 0x9a, |
|
| 10348 |
- 0xc3, 0xe0, 0xd8, 0x0b, 0x7b, 0xb6, 0x1b, 0xe2, 0xa3, 0xa6, 0x23, 0x6b, 0xe1, 0x92, 0x62, 0x34, |
|
| 10349 |
- 0x25, 0x1d, 0x62, 0xb3, 0x76, 0xc2, 0xd8, 0xb0, 0xe7, 0x39, 0xfd, 0x9e, 0x62, 0x8a, 0x87, 0x4c, |
|
| 10350 |
- 0x40, 0x23, 0xa7, 0xed, 0xf4, 0xbb, 0x8a, 0xae, 0x55, 0xc9, 0xba, 0xe3, 0x1d, 0xf5, 0xc0, 0x32, |
|
| 10351 |
- 0x1f, 0xee, 0x7d, 0xef, 0xd0, 0xf3, 0x7b, 0x81, 0xe3, 0x9d, 0xc1, 0x87, 0x03, 0x7f, 0xcc, 0x57, |
|
| 10352 |
- 0x8d, 0x46, 0x19, 0x50, 0x0d, 0x01, 0xda, 0xf4, 0xfc, 0x2e, 0xf0, 0x36, 0x15, 0x02, 0xd3, 0xfc, |
|
| 10353 |
- 0xc4, 0xec, 0xd0, 0xb6, 0x4e, 0x54, 0x9a, 0x8f, 0xa8, 0xbb, 0x40, 0x84, 0x48, 0xb7, 0xc4, 0x1c, |
|
| 10354 |
- 0x66, 0xf1, 0x4d, 0xe6, 0xa8, 0x0c, 0x47, 0x15, 0x15, 0x11, 0x41, 0xfa, 0x37, 0x49, 0xbe, 0xe3, |
|
| 10355 |
- 0x98, 0x16, 0x7f, 0x2e, 0xc6, 0xea, 0x1f, 0x52, 0x18, 0x9e, 0x1c, 0x58, 0x2d, 0xc2, 0x5b, 0x9e, |
|
| 10356 |
- 0x4e, 0x93, 0xf4, 0xf7, 0x20, 0xe9, 0x53, 0xcf, 0x0b, 0xe1, 0x92, 0x5e, 0x23, 0x59, 0xcb, 0xec, |
|
| 10357 |
- 0x29, 0x77, 0x2f, 0x56, 0xf3, 0xe0, 0x16, 0x99, 0x9a, 0x71, 0x87, 0x8d, 0x69, 0xc6, 0x32, 0xe1, |
|
| 10358 |
- 0x0f, 0xd3, 0x1f, 0x20, 0xd0, 0x49, 0xf9, 0x76, 0x14, 0x45, 0xfa, 0x03, 0x2f, 0x06, 0x0a, 0x05, |
|
| 10359 |
- 0x61, 0xfc, 0x87, 0x08, 0x57, 0x94, 0xa0, 0xde, 0x31, 0x04, 0x0e, 0x51, 0x2c, 0x56, 0x97, 0x01, |
|
| 10360 |
- 0x49, 0x04, 0x12, 0xc3, 0x09, 0x25, 0x02, 0x8d, 0xdf, 0xfa, 0xdf, 0x12, 0xa4, 0x80, 0x03, 0xfb, |
|
| 10361 |
- 0xd0, 0xb6, 0x30, 0xcf, 0x7c, 0xf1, 0x18, 0x09, 0x81, 0xc1, 0x0a, 0x7c, 0xb9, 0x28, 0x1e, 0x18, |
|
| 10362 |
- 0x6a, 0x5d, 0x4a, 0x91, 0xa6, 0xbd, 0x0d, 0xe1, 0x91, 0xe7, 0x39, 0x19, 0x1e, 0xf5, 0xcf, 0xcf, |
|
| 10363 |
- 0x88, 0xb2, 0xcb, 0x91, 0x72, 0x7c, 0x13, 0x27, 0xab, 0xe3, 0x47, 0x53, 0xa4, 0xd3, 0x24, 0x7c, |
|
| 10364 |
- 0xea, 0xb6, 0x5c, 0x7e, 0x1a, 0xf2, 0xa9, 0xbb, 0xd6, 0xa2, 0x40, 0xd1, 0xff, 0x92, 0x20, 0x4b, |
|
| 10365 |
- 0x0d, 0xd7, 0xf2, 0xc7, 0x3c, 0xa4, 0xe0, 0x0e, 0xae, 0x91, 0x3c, 0x14, 0xd3, 0xc1, 0x38, 0x80, |
|
| 10366 |
- 0x8e, 0x53, 0xbd, 0xa4, 0x45, 0x04, 0xad, 0x49, 0xf2, 0x10, 0x3c, 0x3d, 0xdf, 0x0e, 0x8f, 0x07, |
|
| 10367 |
- 0xb2, 0xaa, 0x8c, 0x0f, 0x63, 0xd3, 0x3a, 0x2b, 0x86, 0x12, 0xa1, 0x13, 0x69, 0x15, 0xb8, 0x52, |
|
| 10368 |
- 0x7c, 0xb1, 0x3c, 0x70, 0x41, 0xff, 0xeb, 0x40, 0xab, 0x03, 0xf5, 0x62, 0x0f, 0x3b, 0x08, 0x6e, |
|
| 10369 |
- 0x07, 0xb4, 0x82, 0x92, 0x86, 0x5d, 0x91, 0xae, 0x93, 0x7c, 0xa4, 0x0c, 0xdf, 0x2f, 0x8d, 0x46, |
|
| 10370 |
- 0xb7, 0x77, 0x73, 0xe3, 0x56, 0xef, 0x76, 0x6d, 0x07, 0xc2, 0x98, 0xc8, 0xa1, 0x7f, 0x04, 0x9b, |
|
| 10371 |
- 0x76, 0x4c, 0x17, 0xba, 0x1c, 0xd5, 0xf3, 0x81, 0x57, 0xf8, 0x70, 0xd5, 0x54, 0x51, 0x94, 0x16, |
|
| 10372 |
- 0x5e, 0x81, 0xb7, 0x0f, 0x8b, 0x22, 0x64, 0xc5, 0x17, 0x45, 0x53, 0xef, 0xb8, 0xa9, 0x73, 0xdf, |
|
| 10373 |
- 0x71, 0xd3, 0x5f, 0xc9, 0x3b, 0xee, 0x8b, 0x9f, 0xa5, 0x48, 0x3e, 0xea, 0xe1, 0xd0, 0x65, 0xb0, |
|
| 10374 |
- 0x46, 0x59, 0x10, 0xdd, 0x75, 0x44, 0x6f, 0xf1, 0xea, 0x24, 0x6f, 0x6c, 0x6f, 0xb7, 0x6b, 0x06, |
|
| 10375 |
- 0x3e, 0x83, 0xbe, 0x2d, 0x8a, 0x98, 0x08, 0x60, 0xc0, 0xa5, 0xc5, 0x43, 0xef, 0x6b, 0xfa, 0xa4, |
|
| 10376 |
- 0x88, 0xb9, 0x2f, 0x7b, 0xf8, 0x08, 0xa5, 0x2a, 0x98, 0xe7, 0x48, 0xce, 0xe8, 0x76, 0x9b, 0xb7, |
|
| 10377 |
- 0x5b, 0xa0, 0xe9, 0x41, 0xa2, 0xfc, 0x14, 0x80, 0x2e, 0x4c, 0x54, 0x41, 0xf2, 0x3d, 0x72, 0x41, |
|
| 10378 |
- 0x13, 0xa2, 0x6a, 0xb5, 0x46, 0x07, 0xe7, 0xbb, 0x9f, 0x9c, 0x47, 0xf1, 0xd4, 0xcd, 0x1f, 0xc6, |
|
| 10379 |
- 0xf2, 0x1d, 0xda, 0xe8, 0x18, 0x14, 0x67, 0x7c, 0x90, 0x9c, 0x5b, 0x57, 0xc7, 0x67, 0xd0, 0xd5, |
|
| 10380 |
- 0xe3, 0x9c, 0xeb, 0xea, 0x4d, 0xf7, 0x7e, 0xaa, 0xac, 0x01, 0x66, 0x79, 0xd2, 0xb8, 0xc2, 0xfe, |
|
| 10381 |
- 0x8e, 0x71, 0xb6, 0xee, 0xae, 0x41, 0x77, 0xb9, 0x9a, 0xd4, 0xdc, 0x6c, 0x5d, 0x7c, 0x4e, 0x40, |
|
| 10382 |
- 0x2d, 0x60, 0x1d, 0xdd, 0x6b, 0xb5, 0xb8, 0x75, 0xe9, 0x39, 0xeb, 0xe8, 0xc8, 0x75, 0x11, 0x73, |
|
| 10383 |
- 0x1d, 0x52, 0x58, 0x7b, 0xa7, 0xb3, 0xdd, 0xd8, 0x6d, 0x94, 0x1e, 0xa4, 0xe7, 0x16, 0x54, 0xf3, |
|
| 10384 |
- 0x06, 0x43, 0x87, 0x85, 0xc2, 0xbc, 0xee, 0xd6, 0xde, 0x2e, 0x7f, 0x72, 0xbe, 0x9f, 0x99, 0x9f, |
|
| 10385 |
- 0xf0, 0x78, 0x14, 0xf6, 0xb1, 0x6c, 0xbc, 0x16, 0xd5, 0x71, 0x0f, 0x32, 0x22, 0x65, 0x46, 0x18, |
|
| 10386 |
- 0x51, 0xc4, 0xa1, 0x1e, 0xda, 0xf8, 0xbe, 0x78, 0x9d, 0xbe, 0x9f, 0x9d, 0xd3, 0x43, 0xd9, 0xbb, |
|
| 10387 |
- 0x10, 0x05, 0xa1, 0xd4, 0x8b, 0x9e, 0xa4, 0x22, 0xd6, 0x8b, 0x3f, 0x22, 0x39, 0x15, 0x30, 0x60, |
|
| 10388 |
- 0x77, 0xb2, 0x77, 0xdb, 0xf4, 0x4e, 0x83, 0xc2, 0xd1, 0xf3, 0xdd, 0x51, 0x9c, 0xbb, 0x9e, 0x0f, |
|
| 10389 |
- 0xde, 0x05, 0xcb, 0x58, 0xdc, 0x31, 0x5a, 0xc6, 0x6d, 0x00, 0xc8, 0x37, 0x2f, 0x05, 0x90, 0x5e, |
|
| 10390 |
- 0x5f, 0x2e, 0xc9, 0x09, 0x22, 0x9d, 0xd5, 0xb5, 0x87, 0x9f, 0xac, 0x2f, 0x7c, 0x04, 0xbf, 0x7f, |
|
| 10391 |
- 0x7d, 0xb2, 0x9e, 0xb8, 0xff, 0xe9, 0x7a, 0xe2, 0x21, 0xfc, 0xfe, 0x0c, 0xbf, 0xbf, 0xc3, 0xef, |
|
| 10392 |
- 0x20, 0xcb, 0xeb, 0x97, 0xd7, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x61, 0x4f, 0x38, 0x13, 0x5f, |
|
| 10393 |
- 0x1d, 0x00, 0x00, |
|
| 10208 |
+ 0xf4, 0xe4, 0xa3, 0x8f, 0x2d, 0x0a, 0x14, 0x01, 0x0a, 0x04, 0x4d, 0xfa, 0x0f, 0x04, 0xe8, 0x21, |
|
| 10209 |
+ 0x87, 0xf6, 0xd0, 0x37, 0x1f, 0xbb, 0x4b, 0xd2, 0x6b, 0xc5, 0x6e, 0x72, 0x20, 0xb8, 0xf3, 0xde, |
|
| 10210 |
+ 0xef, 0xbd, 0x99, 0x37, 0xf3, 0xe6, 0x7d, 0x0c, 0x14, 0xfc, 0xc9, 0x88, 0x7a, 0x95, 0x91, 0xeb, |
|
| 10211 |
+ 0xf8, 0x8e, 0xa2, 0xf4, 0x1d, 0xe3, 0x84, 0xba, 0x15, 0xef, 0x4c, 0x77, 0x87, 0x27, 0xa6, 0x5f, |
|
| 10212 |
+ 0x39, 0xbd, 0x59, 0xbe, 0xe2, 0x9b, 0x43, 0xea, 0xf9, 0xfa, 0x70, 0xf4, 0x5a, 0xf8, 0x25, 0xe0, |
|
| 10213 |
+ 0xe5, 0x67, 0xfb, 0x63, 0x57, 0xf7, 0x4d, 0xc7, 0x7e, 0x2d, 0xf8, 0x90, 0x8c, 0x4b, 0xc7, 0xce, |
|
| 10214 |
+ 0xb1, 0xc3, 0x3f, 0x5f, 0x63, 0x5f, 0x82, 0xaa, 0x5e, 0x85, 0xc5, 0x7d, 0xea, 0x7a, 0x08, 0x53, |
|
| 10215 |
+ 0x2e, 0x41, 0xc6, 0xb4, 0xfb, 0xf4, 0xde, 0x6a, 0xe2, 0x5a, 0xe2, 0x46, 0x9a, 0x88, 0x81, 0xfa, |
|
| 10216 |
+ 0xdb, 0x04, 0x14, 0x34, 0xdb, 0x76, 0x7c, 0xae, 0xcb, 0x53, 0x14, 0x48, 0xdb, 0xfa, 0x90, 0x72, |
|
| 10217 |
+ 0x50, 0x9e, 0xf0, 0x6f, 0xa5, 0x06, 0x59, 0x4b, 0x3f, 0xa4, 0x96, 0xb7, 0x9a, 0xbc, 0x96, 0xba, |
|
| 10218 |
+ 0x51, 0xd8, 0x78, 0xa5, 0xf2, 0xe8, 0x9a, 0x2b, 0x53, 0x4a, 0x2a, 0xdb, 0x1c, 0xdd, 0xb0, 0x7d, |
|
| 10219 |
+ 0x77, 0x42, 0xa4, 0x68, 0xf9, 0x7b, 0x50, 0x98, 0x22, 0x2b, 0x25, 0x48, 0x9d, 0xd0, 0x89, 0x9c, |
|
| 10220 |
+ 0x86, 0x7d, 0xb2, 0xf5, 0x9d, 0xea, 0xd6, 0x98, 0xe2, 0x24, 0x8c, 0x26, 0x06, 0x6f, 0x25, 0x6f, |
|
| 10221 |
+ 0x25, 0xd4, 0x77, 0x21, 0x4f, 0xa8, 0xe7, 0x8c, 0x5d, 0x83, 0x7a, 0xca, 0x4b, 0x90, 0xb7, 0x75, |
|
| 10222 |
+ 0xdb, 0xe9, 0x19, 0xa3, 0xb1, 0xc7, 0xc5, 0x53, 0xd5, 0xe2, 0x67, 0x9f, 0x5c, 0xcd, 0xb5, 0x90, |
|
| 10223 |
+ 0x58, 0xeb, 0xec, 0x79, 0x24, 0xc7, 0xd8, 0x35, 0xe4, 0x2a, 0xdf, 0x84, 0xe2, 0x90, 0x0e, 0x1d, |
|
| 10224 |
+ 0x77, 0xd2, 0x3b, 0x9c, 0xf8, 0xd4, 0xe3, 0x8a, 0x53, 0xa4, 0x20, 0x68, 0x55, 0x46, 0x52, 0x7f, |
|
| 10225 |
+ 0x9d, 0x80, 0x4b, 0x81, 0x6e, 0x42, 0x7f, 0x32, 0x36, 0x5d, 0x3a, 0xa4, 0xb6, 0xef, 0x29, 0xdf, |
|
| 10226 |
+ 0x41, 0x9b, 0xcd, 0xa1, 0xe9, 0x8b, 0x39, 0x0a, 0x1b, 0xdf, 0x88, 0xb3, 0x39, 0x5c, 0x15, 0x91, |
|
| 10227 |
+ 0x60, 0x45, 0x83, 0xa2, 0x4b, 0x3d, 0xea, 0x9e, 0x8a, 0x9d, 0xe0, 0x53, 0x7e, 0xa9, 0xf0, 0x8c, |
|
| 10228 |
+ 0x88, 0xba, 0x09, 0xb9, 0x8e, 0xa5, 0xfb, 0x47, 0x8e, 0x3b, 0x54, 0x54, 0x28, 0xea, 0xae, 0x31, |
|
| 10229 |
+ 0x30, 0x7d, 0x6a, 0xf8, 0x63, 0x37, 0x38, 0x95, 0x19, 0x9a, 0x72, 0x19, 0x92, 0x8e, 0x98, 0x28, |
|
| 10230 |
+ 0x5f, 0xcd, 0xe2, 0x4e, 0x24, 0xdb, 0x5d, 0x82, 0x14, 0xf5, 0x6d, 0xb8, 0xd0, 0xb1, 0xc6, 0xc7, |
|
| 10231 |
+ 0xa6, 0x5d, 0xa7, 0x9e, 0xe1, 0x9a, 0x23, 0xa6, 0x9d, 0x1d, 0x2f, 0x73, 0xbe, 0xe0, 0x78, 0xd9, |
|
| 10232 |
+ 0x77, 0x78, 0xe4, 0xc9, 0xe8, 0xc8, 0xd5, 0x5f, 0x24, 0xe1, 0x42, 0xc3, 0x46, 0x61, 0x3a, 0x2d, |
|
| 10233 |
+ 0x7d, 0x1d, 0x96, 0x29, 0x27, 0xf6, 0x4e, 0x85, 0x53, 0x49, 0x3d, 0x4b, 0x82, 0x1a, 0x78, 0x5a, |
|
| 10234 |
+ 0x73, 0xce, 0x5f, 0x6e, 0xc6, 0x99, 0xff, 0x88, 0xf6, 0x38, 0xaf, 0x51, 0x1a, 0xb0, 0x38, 0xe2, |
|
| 10235 |
+ 0x46, 0x78, 0xab, 0x29, 0xae, 0xeb, 0x7a, 0x9c, 0xae, 0x47, 0xec, 0xac, 0xa6, 0x1f, 0x7e, 0x72, |
|
| 10236 |
+ 0x75, 0x81, 0x04, 0xb2, 0x5f, 0xc5, 0xf9, 0xfe, 0x95, 0x80, 0x95, 0x96, 0xd3, 0x9f, 0xd9, 0x87, |
|
| 10237 |
+ 0x32, 0xe4, 0x06, 0x8e, 0xe7, 0x4f, 0x5d, 0x94, 0x70, 0xac, 0xdc, 0x82, 0xdc, 0x48, 0x1e, 0x9f, |
|
| 10238 |
+ 0x3c, 0xfd, 0xb5, 0xf8, 0x25, 0x0b, 0x0c, 0x09, 0xd1, 0xca, 0xdb, 0x90, 0x77, 0x03, 0x9f, 0x40, |
|
| 10239 |
+ 0x6b, 0x9f, 0xc0, 0x71, 0x22, 0xbc, 0xf2, 0x7d, 0xc8, 0x8a, 0x43, 0x58, 0x4d, 0x73, 0xc9, 0xeb, |
|
| 10240 |
+ 0x4f, 0xb4, 0xe7, 0x44, 0x0a, 0xa9, 0x1f, 0x27, 0xa0, 0x44, 0xf4, 0x23, 0x7f, 0x87, 0x0e, 0x0f, |
|
| 10241 |
+ 0xa9, 0xdb, 0xc5, 0x8b, 0x8c, 0xf7, 0xe7, 0x32, 0x9e, 0x23, 0xd5, 0xfb, 0xd4, 0xe5, 0x46, 0xe6, |
|
| 10242 |
+ 0x88, 0x1c, 0x29, 0x7b, 0xcc, 0xc9, 0x75, 0x63, 0xa0, 0x1f, 0x9a, 0x96, 0xe9, 0x4f, 0xb8, 0x99, |
|
| 10243 |
+ 0xcb, 0xf1, 0xa7, 0x3c, 0xaf, 0x13, 0x17, 0x1f, 0x09, 0x92, 0x19, 0x35, 0xca, 0x2a, 0x2c, 0x62, |
|
| 10244 |
+ 0xac, 0xf3, 0xf4, 0x63, 0xca, 0xad, 0xcf, 0x93, 0x60, 0x88, 0xae, 0x5c, 0x9c, 0x96, 0x53, 0x0a, |
|
| 10245 |
+ 0xb0, 0xb8, 0xd7, 0xba, 0xdb, 0x6a, 0x1f, 0xb4, 0x4a, 0x0b, 0xca, 0x0a, 0x14, 0xf6, 0x5a, 0xa4, |
|
| 10246 |
+ 0xa1, 0xd5, 0xb6, 0xb4, 0xea, 0x76, 0xa3, 0x94, 0x50, 0x96, 0x30, 0x5c, 0x84, 0xc3, 0xa4, 0xfa, |
|
| 10247 |
+ 0x51, 0x02, 0x80, 0x1d, 0xa0, 0x34, 0xea, 0x2d, 0xc8, 0x60, 0x3c, 0xf5, 0xc5, 0xc1, 0x2d, 0x6f, |
|
| 10248 |
+ 0xbc, 0x10, 0xb7, 0xea, 0x08, 0x5e, 0x61, 0x7f, 0x94, 0x08, 0x91, 0xe9, 0x15, 0x26, 0xe7, 0x57, |
|
| 10249 |
+ 0x98, 0xe1, 0xc8, 0xd9, 0xa5, 0xe5, 0x20, 0x5d, 0x67, 0x5f, 0x09, 0x25, 0x0f, 0x19, 0x5c, 0x53, |
|
| 10250 |
+ 0xfd, 0xdd, 0x52, 0x12, 0x9d, 0xaf, 0x58, 0x6f, 0x76, 0x6b, 0xed, 0x56, 0xab, 0x51, 0xdb, 0x6d, |
|
| 10251 |
+ 0xd4, 0x4b, 0x29, 0xf5, 0x3a, 0x64, 0x9a, 0x43, 0xd4, 0xa2, 0xac, 0x31, 0x0f, 0x38, 0xa2, 0x2e, |
|
| 10252 |
+ 0xb5, 0x8d, 0xc0, 0xb1, 0x22, 0x82, 0xfa, 0xab, 0x1c, 0x64, 0x76, 0x9c, 0xb1, 0xed, 0x2b, 0x1b, |
|
| 10253 |
+ 0x53, 0xb7, 0x78, 0x79, 0x63, 0x3d, 0xce, 0x04, 0x0e, 0xac, 0xec, 0x22, 0x4a, 0xde, 0x72, 0x3c, |
|
| 10254 |
+ 0x4c, 0xe1, 0x2b, 0x72, 0xe9, 0x72, 0xc4, 0xe8, 0xbe, 0xee, 0x1e, 0x53, 0x5f, 0x6e, 0xba, 0x1c, |
|
| 10255 |
+ 0x29, 0x37, 0x20, 0x87, 0xa7, 0xd3, 0x77, 0x6c, 0x6b, 0xc2, 0x5d, 0x2a, 0x27, 0xc2, 0x2c, 0x9e, |
|
| 10256 |
+ 0x43, 0xbf, 0x8d, 0x34, 0x12, 0x72, 0x95, 0x2d, 0x28, 0x1e, 0x62, 0x32, 0xe9, 0x39, 0x23, 0x11, |
|
| 10257 |
+ 0xf3, 0x32, 0x8f, 0x77, 0x40, 0xb1, 0xaa, 0x2a, 0xa2, 0xdb, 0x02, 0x4c, 0x0a, 0x87, 0xd1, 0x40, |
|
| 10258 |
+ 0x69, 0xc1, 0xf2, 0xa9, 0x63, 0x8d, 0x87, 0x34, 0xd4, 0x95, 0xe5, 0xba, 0x5e, 0x7c, 0xbc, 0xae, |
|
| 10259 |
+ 0x7d, 0x8e, 0x0f, 0xb4, 0x2d, 0x9d, 0x4e, 0x0f, 0xcb, 0x3f, 0x4f, 0x41, 0x61, 0x6a, 0x32, 0xa5, |
|
| 10260 |
+ 0x0b, 0x05, 0x4c, 0x8b, 0x23, 0xfd, 0x98, 0x87, 0x5a, 0xb9, 0x7d, 0x37, 0x9f, 0x68, 0xa1, 0x95, |
|
| 10261 |
+ 0x4e, 0x24, 0x48, 0xa6, 0xb5, 0xa8, 0x1f, 0x26, 0xa1, 0x30, 0xc5, 0x54, 0x5e, 0x86, 0x1c, 0xe9, |
|
| 10262 |
+ 0x90, 0xe6, 0xbe, 0xb6, 0xdb, 0x28, 0x2d, 0x94, 0xd7, 0x3e, 0xf8, 0xf0, 0xda, 0x2a, 0xd7, 0x36, |
|
| 10263 |
+ 0xad, 0xa0, 0xe3, 0x9a, 0xa7, 0xcc, 0x5b, 0x6e, 0xc0, 0x62, 0x00, 0x4d, 0x94, 0x9f, 0x43, 0xe8, |
|
| 10264 |
+ 0xb3, 0xf3, 0xd0, 0x29, 0x24, 0xe9, 0x6e, 0x69, 0x04, 0x1d, 0x26, 0x19, 0x8f, 0x24, 0xdd, 0x81, |
|
| 10265 |
+ 0xee, 0xd2, 0xbe, 0xf2, 0x2d, 0xc8, 0x4a, 0x60, 0xaa, 0x5c, 0x46, 0xe0, 0xe5, 0x79, 0x60, 0x84, |
|
| 10266 |
+ 0x23, 0xdd, 0x6d, 0x6d, 0xbf, 0x51, 0x4a, 0xc7, 0xe3, 0x48, 0xd7, 0xd2, 0x4f, 0xa9, 0xf2, 0x02, |
|
| 10267 |
+ 0xba, 0x36, 0x87, 0x65, 0xca, 0x57, 0x10, 0xf6, 0xcc, 0x23, 0xea, 0x18, 0xaa, 0xbc, 0xfa, 0xcb, |
|
| 10268 |
+ 0xdf, 0xad, 0x2f, 0xfc, 0xf9, 0xf7, 0xeb, 0xa5, 0x79, 0x76, 0xf9, 0xbf, 0x09, 0x58, 0x9a, 0x39, |
|
| 10269 |
+ 0x25, 0xcc, 0x6a, 0x59, 0xdb, 0x31, 0x9c, 0x91, 0x88, 0xc0, 0xb9, 0x2a, 0xa0, 0x63, 0x65, 0x5b, |
|
| 10270 |
+ 0x4e, 0x0d, 0x29, 0x44, 0x72, 0x94, 0xbb, 0x73, 0x39, 0xe4, 0x8d, 0x27, 0x74, 0x81, 0xd8, 0x2c, |
|
| 10271 |
+ 0x72, 0x1b, 0x96, 0xfa, 0xb8, 0x8f, 0xd4, 0xed, 0x19, 0x8e, 0x7d, 0x64, 0x1e, 0xcb, 0xe8, 0x5a, |
|
| 10272 |
+ 0x8e, 0xd3, 0x59, 0xe7, 0x40, 0x52, 0x14, 0x02, 0x35, 0x8e, 0xff, 0x2a, 0xf9, 0xe3, 0x00, 0xd2, |
|
| 10273 |
+ 0xec, 0x16, 0x2a, 0xcf, 0x41, 0xba, 0xda, 0x6c, 0xd5, 0xd1, 0x25, 0x2e, 0xe0, 0x2e, 0x2e, 0xf1, |
|
| 10274 |
+ 0xa5, 0x33, 0x06, 0xf3, 0x31, 0xe5, 0x2a, 0x64, 0xf7, 0xdb, 0xdb, 0x7b, 0x3b, 0xcc, 0x0d, 0x2e, |
|
| 10275 |
+ 0x22, 0x7b, 0x25, 0x64, 0x0b, 0xe3, 0xca, 0x17, 0xe4, 0xf6, 0xe6, 0x43, 0x86, 0xfa, 0x9f, 0x24, |
|
| 10276 |
+ 0x2c, 0x11, 0x56, 0x1b, 0xba, 0x7e, 0xc7, 0xb1, 0x4c, 0x63, 0xa2, 0x74, 0x20, 0x8f, 0xf6, 0xf5, |
|
| 10277 |
+ 0xcd, 0x29, 0xe7, 0xde, 0x78, 0x4c, 0x02, 0x89, 0xa4, 0x82, 0x51, 0x2d, 0x90, 0x24, 0x91, 0x12, |
|
| 10278 |
+ 0x0c, 0x34, 0x99, 0x3e, 0xb5, 0xf4, 0xc9, 0x79, 0x99, 0xac, 0x2e, 0xeb, 0x50, 0x22, 0xa0, 0xbc, |
|
| 10279 |
+ 0xea, 0xd2, 0xef, 0xf5, 0x74, 0xdf, 0xa7, 0xc3, 0x91, 0x2f, 0x32, 0x59, 0x1a, 0xab, 0x2e, 0xfd, |
|
| 10280 |
+ 0x9e, 0x26, 0x49, 0xca, 0x9b, 0x90, 0x3d, 0x43, 0xb3, 0x9d, 0x33, 0x99, 0xac, 0xce, 0xd7, 0x2b, |
|
| 10281 |
+ 0xb1, 0xea, 0x07, 0x2c, 0x47, 0xcd, 0x2d, 0x96, 0x6d, 0x6b, 0xab, 0xdd, 0x6a, 0x04, 0xdb, 0x2a, |
|
| 10282 |
+ 0xf9, 0x6d, 0xbb, 0xe5, 0xd8, 0xcc, 0x75, 0xa1, 0xdd, 0xea, 0x6d, 0x6a, 0xcd, 0xed, 0x3d, 0xc2, |
|
| 10283 |
+ 0xb6, 0xf6, 0x12, 0x42, 0x4a, 0x21, 0x64, 0x53, 0x37, 0x2d, 0x56, 0x40, 0x5d, 0x81, 0x94, 0xd6, |
|
| 10284 |
+ 0xc2, 0xc8, 0x5c, 0x2e, 0x21, 0xbb, 0x18, 0xb2, 0x35, 0x7b, 0x12, 0x79, 0xf5, 0xfc, 0xbc, 0xea, |
|
| 10285 |
+ 0x7b, 0x50, 0xdc, 0x1b, 0xf5, 0xf1, 0x66, 0x0a, 0x0f, 0x51, 0xae, 0x61, 0x68, 0xd1, 0x5d, 0xdd, |
|
| 10286 |
+ 0xb2, 0xa8, 0x65, 0x7a, 0x43, 0x59, 0x63, 0x4f, 0x93, 0xb0, 0x30, 0x78, 0xf2, 0xbd, 0x94, 0xf5, |
|
| 10287 |
+ 0x8b, 0x10, 0x50, 0x7f, 0x06, 0x2b, 0x38, 0x8b, 0xaf, 0x63, 0xa2, 0x0e, 0x52, 0xf3, 0x06, 0x14, |
|
| 10288 |
+ 0x8d, 0x80, 0xd4, 0x33, 0xfb, 0xc2, 0x15, 0xab, 0x2b, 0x78, 0x91, 0x0a, 0x21, 0xb4, 0x59, 0x27, |
|
| 10289 |
+ 0x85, 0x10, 0xd4, 0xec, 0x33, 0x3b, 0x47, 0x08, 0x65, 0xd3, 0x67, 0xaa, 0x8b, 0x08, 0x4d, 0x75, |
|
| 10290 |
+ 0x10, 0xc2, 0x68, 0xb8, 0x8b, 0x79, 0x7a, 0xcf, 0xf4, 0xf1, 0x7a, 0xf4, 0x45, 0xf2, 0xcd, 0x90, |
|
| 10291 |
+ 0x1c, 0x23, 0xd4, 0x70, 0xac, 0xbe, 0x9f, 0x04, 0xd8, 0xd5, 0xbd, 0x13, 0x39, 0x35, 0x96, 0x29, |
|
| 10292 |
+ 0x61, 0x53, 0x72, 0x5e, 0x71, 0xbc, 0x1b, 0x80, 0x48, 0x84, 0x57, 0xde, 0x08, 0xb2, 0xaf, 0xa8, |
|
| 10293 |
+ 0x19, 0xe2, 0x05, 0xe5, 0x5c, 0x71, 0x69, 0x77, 0xb6, 0x30, 0x60, 0x17, 0x91, 0xba, 0x2e, 0xf7, |
|
| 10294 |
+ 0x22, 0xbc, 0x88, 0xf8, 0x89, 0xbd, 0x4a, 0x3e, 0xb4, 0x59, 0x66, 0xa2, 0xe7, 0xe3, 0x26, 0x99, |
|
| 10295 |
+ 0xdb, 0xd0, 0xad, 0x05, 0x12, 0xc9, 0x55, 0x4b, 0xb0, 0xec, 0xe2, 0x35, 0xc3, 0x55, 0xf7, 0x3c, |
|
| 10296 |
+ 0xce, 0x56, 0xff, 0x86, 0x7b, 0xd0, 0xec, 0x68, 0x3b, 0xf2, 0xb4, 0xeb, 0x90, 0x3d, 0xd2, 0x87, |
|
| 10297 |
+ 0xa6, 0x35, 0x91, 0xd7, 0xec, 0xd5, 0xb8, 0x29, 0x22, 0x7c, 0x45, 0xeb, 0xf7, 0xb1, 0x54, 0xf3, |
|
| 10298 |
+ 0x36, 0xb9, 0x0c, 0x91, 0xb2, 0x3c, 0x25, 0x8f, 0x0f, 0x6d, 0x4c, 0xbd, 0x41, 0x4a, 0xe6, 0x23, |
|
| 10299 |
+ 0x16, 0x4c, 0x5c, 0xdd, 0x0e, 0xad, 0x15, 0x03, 0xb6, 0x0b, 0x18, 0x51, 0xe9, 0x99, 0x3e, 0x91, |
|
| 10300 |
+ 0xf6, 0x06, 0x43, 0x4c, 0xc0, 0x39, 0xd1, 0x41, 0xd0, 0x3e, 0x9a, 0xcc, 0xa2, 0xe5, 0x97, 0xad, |
|
| 10301 |
+ 0x87, 0x48, 0xb8, 0x08, 0x93, 0xa1, 0x74, 0xf9, 0x6d, 0x1e, 0x52, 0x22, 0xd6, 0x53, 0x45, 0xba, |
|
| 10302 |
+ 0xd7, 0x61, 0x69, 0xc6, 0xce, 0x47, 0x6a, 0xa1, 0x66, 0x67, 0xff, 0xcd, 0x52, 0x5a, 0x7e, 0x7d, |
|
| 10303 |
+ 0xb7, 0x94, 0x55, 0xff, 0x8d, 0xa5, 0x59, 0xc7, 0xe1, 0xd7, 0x8a, 0xed, 0x6a, 0x7c, 0xef, 0x99, |
|
| 10304 |
+ 0xe3, 0x9d, 0xac, 0xe1, 0x58, 0xd2, 0x67, 0x62, 0x8b, 0x81, 0x48, 0x0b, 0x4b, 0xd4, 0x1c, 0x4e, |
|
| 10305 |
+ 0x42, 0x41, 0x0c, 0xaf, 0x05, 0x51, 0xd5, 0xf4, 0x46, 0x88, 0xe3, 0xdb, 0xba, 0x44, 0x40, 0x90, |
|
| 10306 |
+ 0x98, 0x24, 0x6b, 0x6c, 0x46, 0xe3, 0x43, 0xbc, 0xa6, 0x03, 0xda, 0x17, 0x98, 0x34, 0xc7, 0x2c, |
|
| 10307 |
+ 0x85, 0x54, 0x06, 0x53, 0xeb, 0xd8, 0x9a, 0x05, 0x3a, 0x57, 0x21, 0xb5, 0x5b, 0xeb, 0x60, 0xdc, |
|
| 10308 |
+ 0x59, 0xc1, 0xa8, 0x51, 0x08, 0xc8, 0x48, 0x62, 0x9c, 0xbd, 0x7a, 0x07, 0xc3, 0xcd, 0x0c, 0x07, |
|
| 10309 |
+ 0x49, 0xe5, 0x34, 0x0b, 0x27, 0xea, 0x6f, 0x12, 0x90, 0x15, 0x59, 0x26, 0xd6, 0x62, 0x0d, 0x16, |
|
| 10310 |
+ 0x83, 0xea, 0x47, 0xa4, 0xbe, 0x17, 0x1f, 0x9f, 0xa6, 0x2a, 0x32, 0xeb, 0x89, 0x73, 0x0c, 0xe4, |
|
| 10311 |
+ 0xca, 0x6f, 0x41, 0x71, 0x9a, 0xf1, 0x54, 0xa7, 0xf8, 0x53, 0x28, 0x30, 0x47, 0x09, 0x72, 0xf5, |
|
| 10312 |
+ 0x06, 0x64, 0x45, 0x26, 0x94, 0x57, 0xfd, 0xbc, 0x9c, 0x29, 0x91, 0x18, 0xe9, 0x16, 0x45, 0x9e, |
|
| 10313 |
+ 0x0d, 0x9a, 0xb6, 0xf5, 0xf3, 0xdd, 0x91, 0x04, 0x70, 0xf5, 0x36, 0xa4, 0x3b, 0x14, 0x35, 0x3c, |
|
| 10314 |
+ 0x0f, 0x8b, 0x36, 0x86, 0x9e, 0x28, 0xb2, 0xc9, 0x12, 0xa1, 0x4f, 0x31, 0x62, 0x65, 0x19, 0x0b, |
|
| 10315 |
+ 0xe3, 0x19, 0x6e, 0x9e, 0x8e, 0xfe, 0x16, 0xf4, 0xad, 0xec, 0x5b, 0xdd, 0x85, 0xe2, 0x01, 0x35, |
|
| 10316 |
+ 0x8f, 0x07, 0x3e, 0x9e, 0x18, 0x53, 0xf4, 0x2a, 0xa4, 0x47, 0x34, 0x5c, 0xfc, 0x6a, 0xac, 0xeb, |
|
| 10317 |
+ 0x20, 0x9f, 0x70, 0x14, 0xbb, 0x90, 0x67, 0x5c, 0x5a, 0x3e, 0x15, 0xc8, 0x91, 0xfa, 0xc7, 0x24, |
|
| 10318 |
+ 0x2c, 0x37, 0x3d, 0x6f, 0xac, 0x63, 0x19, 0x2e, 0xa3, 0xe0, 0x0f, 0x66, 0xdb, 0x88, 0x1b, 0xb1, |
|
| 10319 |
+ 0x16, 0xce, 0x88, 0xcc, 0xb6, 0x12, 0x32, 0x72, 0x25, 0xc3, 0xc8, 0xa5, 0x3e, 0x4c, 0x04, 0x3d, |
|
| 10320 |
+ 0xc4, 0xf5, 0xa9, 0x7b, 0x53, 0x5e, 0x45, 0x27, 0xba, 0x34, 0xad, 0x89, 0xee, 0xd9, 0x27, 0xb6, |
|
| 10321 |
+ 0x73, 0x66, 0x63, 0xa2, 0xc5, 0x9e, 0xa2, 0xd5, 0x38, 0x40, 0x4f, 0xbb, 0x8c, 0x20, 0x65, 0x06, |
|
| 10322 |
+ 0x44, 0xa8, 0x4d, 0xcf, 0x98, 0xa6, 0x4e, 0xa3, 0x55, 0x6f, 0xb6, 0xee, 0x60, 0x7a, 0x7b, 0x54, |
|
| 10323 |
+ 0x53, 0x87, 0x62, 0x3a, 0xb3, 0x8f, 0x71, 0xbb, 0xb3, 0xcd, 0x6e, 0x77, 0x8f, 0x97, 0x8c, 0xcf, |
|
| 10324 |
+ 0x22, 0xea, 0xe2, 0x0c, 0x8a, 0x0d, 0xb0, 0x5e, 0x44, 0x10, 0xcb, 0xa4, 0x08, 0x4a, 0xc7, 0x80, |
|
| 10325 |
+ 0x58, 0x32, 0xc5, 0x00, 0x22, 0x3c, 0xfc, 0x1f, 0x49, 0x28, 0x69, 0x86, 0x41, 0x47, 0x3e, 0xe3, |
|
| 10326 |
+ 0xcb, 0xea, 0x64, 0x17, 0x6f, 0x32, 0xfb, 0x32, 0x29, 0x7b, 0x53, 0x61, 0x6e, 0x71, 0x2b, 0xf6, |
|
| 10327 |
+ 0x1d, 0x69, 0x4e, 0xae, 0x42, 0x1c, 0x8b, 0x6a, 0xfd, 0xa1, 0xe9, 0xb1, 0xb7, 0x05, 0x41, 0x23, |
|
| 10328 |
+ 0xa1, 0xa6, 0xf2, 0xe7, 0x09, 0xb8, 0x18, 0x83, 0x50, 0x5e, 0x87, 0xb4, 0x8b, 0x64, 0x79, 0x3c, |
|
| 10329 |
+ 0x6b, 0x8f, 0xeb, 0xf2, 0x98, 0x28, 0xe1, 0x48, 0x65, 0x1d, 0x40, 0x1f, 0xfb, 0x8e, 0xce, 0xe7, |
|
| 10330 |
+ 0xe7, 0x07, 0x93, 0x23, 0x53, 0x14, 0xe5, 0x00, 0xa3, 0x35, 0x35, 0x5c, 0xd9, 0x28, 0x15, 0x36, |
|
| 10331 |
+ 0x6e, 0xff, 0xbf, 0xab, 0xaf, 0x74, 0xb9, 0x1a, 0x22, 0xd5, 0x95, 0x2b, 0x58, 0xb0, 0xf3, 0x2f, |
|
| 10332 |
+ 0xe6, 0xd1, 0x58, 0x52, 0xe8, 0x7c, 0xd1, 0x45, 0xc2, 0xbf, 0x99, 0xa3, 0xe8, 0xd6, 0x71, 0xe0, |
|
| 10333 |
+ 0x28, 0xf8, 0xa9, 0x7e, 0x84, 0xb9, 0xa8, 0x71, 0xcf, 0xa7, 0xae, 0xad, 0x5b, 0x35, 0x4d, 0x69, |
|
| 10334 |
+ 0x4c, 0x45, 0x48, 0x61, 0xed, 0x4b, 0xb1, 0xbd, 0x7f, 0x28, 0x51, 0xa9, 0x69, 0x31, 0x31, 0x12, |
|
| 10335 |
+ 0xab, 0x83, 0xb1, 0x6b, 0xc9, 0x77, 0x24, 0x5e, 0x1d, 0xec, 0x91, 0x6d, 0xc2, 0x68, 0xec, 0x11, |
|
| 10336 |
+ 0x26, 0x88, 0x48, 0xa9, 0xc7, 0x3f, 0x00, 0x4e, 0x4d, 0xf0, 0xf5, 0x47, 0xa5, 0x57, 0x01, 0xa2, |
|
| 10337 |
+ 0x55, 0xe3, 0x51, 0x65, 0x6a, 0x9b, 0xdd, 0xee, 0x36, 0x5e, 0x0f, 0x5e, 0x2d, 0x47, 0x2c, 0x4e, |
|
| 10338 |
+ 0x56, 0xff, 0x90, 0x80, 0x5c, 0x4d, 0x93, 0x59, 0x65, 0x13, 0x4a, 0x3c, 0x96, 0x18, 0xd4, 0xf5, |
|
| 10339 |
+ 0x7b, 0xf4, 0xde, 0xc8, 0x74, 0x27, 0x32, 0x1c, 0x9c, 0x5f, 0x76, 0x2e, 0x33, 0xa9, 0x1a, 0x0a, |
|
| 10340 |
+ 0x35, 0xb8, 0x8c, 0x42, 0xa0, 0x48, 0xa5, 0x89, 0x3d, 0x43, 0x0f, 0x82, 0xf3, 0xfa, 0xf9, 0x5b, |
|
| 10341 |
+ 0x21, 0x4a, 0xb2, 0x68, 0x8c, 0x0d, 0x6f, 0xa0, 0xa4, 0xa6, 0x7b, 0xea, 0x3e, 0x5c, 0x6c, 0xbb, |
|
| 10342 |
+ 0xc6, 0x00, 0x8b, 0x23, 0x31, 0xa9, 0x5c, 0xf2, 0x6d, 0x58, 0xf3, 0xb1, 0x08, 0xea, 0x0d, 0x4c, |
|
| 10343 |
+ 0xcf, 0x67, 0xcf, 0x97, 0xe8, 0x1b, 0xd4, 0x66, 0xfc, 0x1e, 0x7f, 0x66, 0x14, 0xcf, 0x9e, 0xe4, |
|
| 10344 |
+ 0x0a, 0xc3, 0x6c, 0x09, 0x08, 0x09, 0x10, 0xdb, 0x0c, 0xa0, 0xfe, 0x08, 0x4a, 0x75, 0xd3, 0x1b, |
|
| 10345 |
+ 0xe9, 0x3e, 0xea, 0x96, 0x3d, 0x8c, 0x72, 0x07, 0x4a, 0x03, 0x8a, 0x35, 0xec, 0x21, 0xd5, 0x31, |
|
| 10346 |
+ 0x0f, 0x52, 0xd7, 0x74, 0xfa, 0x4f, 0xb4, 0x0f, 0x2b, 0xa1, 0x54, 0x87, 0x0b, 0xa9, 0x5f, 0x60, |
|
| 10347 |
+ 0xd6, 0x66, 0xef, 0x3a, 0x52, 0xef, 0x2b, 0x70, 0xc1, 0xb3, 0xf5, 0x91, 0x37, 0x70, 0xfc, 0x9e, |
|
| 10348 |
+ 0x69, 0xfb, 0xec, 0x21, 0xd3, 0x92, 0xf5, 0x6f, 0x29, 0x60, 0x34, 0x25, 0x1d, 0xe3, 0xb1, 0x72, |
|
| 10349 |
+ 0x42, 0xe9, 0xa8, 0xe7, 0x58, 0xfd, 0x5e, 0xc0, 0x14, 0x8f, 0x97, 0x88, 0x66, 0x9c, 0xb6, 0xd5, |
|
| 10350 |
+ 0xef, 0x06, 0x74, 0xa5, 0x0a, 0xeb, 0x96, 0x73, 0xdc, 0x43, 0xcb, 0x5c, 0xbc, 0xeb, 0xbd, 0x23, |
|
| 10351 |
+ 0xc7, 0xed, 0x79, 0x96, 0x73, 0x86, 0x1f, 0x16, 0xfe, 0x51, 0x37, 0x68, 0x2e, 0xca, 0x88, 0x6a, |
|
| 10352 |
+ 0x08, 0xd0, 0xa6, 0xe3, 0x76, 0x91, 0xb7, 0x19, 0x20, 0x58, 0x6a, 0x8f, 0xcc, 0xf6, 0x4d, 0xe3, |
|
| 10353 |
+ 0x24, 0x48, 0xed, 0x21, 0x75, 0x17, 0x89, 0x18, 0xdd, 0x96, 0xa8, 0x45, 0x0d, 0xbe, 0xc9, 0x1c, |
|
| 10354 |
+ 0x95, 0xe1, 0xa8, 0x62, 0x40, 0x64, 0x20, 0xf5, 0xdb, 0x90, 0xef, 0x58, 0xba, 0xc1, 0x9f, 0x88, |
|
| 10355 |
+ 0x59, 0xc5, 0x8f, 0x69, 0x8b, 0x9d, 0x1c, 0x5a, 0x2d, 0x42, 0x5a, 0x9e, 0x4c, 0x93, 0xd4, 0xf7, |
|
| 10356 |
+ 0x31, 0xd1, 0x13, 0xc7, 0xf1, 0xf1, 0x92, 0x5e, 0x83, 0xac, 0xa1, 0xf7, 0x02, 0x77, 0x2f, 0x56, |
|
| 10357 |
+ 0xf3, 0xe8, 0x16, 0x99, 0x9a, 0x76, 0x97, 0x4e, 0x48, 0xc6, 0xd0, 0xf1, 0x8f, 0xa5, 0x3c, 0x44, |
|
| 10358 |
+ 0x30, 0x27, 0xe5, 0xdb, 0x51, 0x14, 0x29, 0x0f, 0xbd, 0x18, 0x29, 0x04, 0x85, 0xd9, 0x3f, 0x46, |
|
| 10359 |
+ 0xb5, 0xa2, 0x04, 0xf5, 0x06, 0xba, 0x37, 0x10, 0x05, 0x62, 0x75, 0x19, 0x91, 0x20, 0x90, 0x5b, |
|
| 10360 |
+ 0x48, 0x25, 0x20, 0xd0, 0xec, 0x5b, 0xfd, 0x7b, 0x02, 0x0a, 0x6c, 0x60, 0x1e, 0x99, 0x06, 0xcb, |
|
| 10361 |
+ 0x2d, 0x4f, 0x1f, 0x17, 0x31, 0x30, 0x18, 0x9e, 0x2b, 0x17, 0xc5, 0x03, 0x43, 0xad, 0x4b, 0x08, |
|
| 10362 |
+ 0xa3, 0x29, 0xef, 0x60, 0x48, 0xe4, 0xb9, 0x4d, 0x86, 0x44, 0xf5, 0xcb, 0xb3, 0xa0, 0xec, 0x6c, |
|
| 10363 |
+ 0xa4, 0x1c, 0xdf, 0xc4, 0x68, 0x75, 0xfc, 0x68, 0x8a, 0x64, 0x9a, 0xc4, 0x9e, 0xb7, 0x0d, 0x9b, |
|
| 10364 |
+ 0x9f, 0x86, 0x7c, 0xde, 0xae, 0xb5, 0x08, 0x52, 0xd4, 0xbf, 0x26, 0x60, 0xa9, 0x61, 0x1b, 0xee, |
|
| 10365 |
+ 0x84, 0x87, 0x14, 0xb6, 0x83, 0x6b, 0x90, 0xc7, 0x02, 0xda, 0x9b, 0x78, 0xd8, 0x65, 0x06, 0xaf, |
|
| 10366 |
+ 0x67, 0x21, 0x41, 0x69, 0x42, 0x1e, 0x83, 0xa7, 0xe3, 0x9a, 0xfe, 0x60, 0x28, 0x2b, 0xc9, 0xf8, |
|
| 10367 |
+ 0x30, 0x36, 0xad, 0xb3, 0xa2, 0x05, 0x22, 0x24, 0x92, 0x0e, 0x02, 0x57, 0x8a, 0x2f, 0x96, 0x07, |
|
| 10368 |
+ 0x2e, 0xec, 0x79, 0x2d, 0x6c, 0x6f, 0xb0, 0x46, 0xec, 0xb1, 0xae, 0x81, 0xdb, 0x81, 0xed, 0x9f, |
|
| 10369 |
+ 0xa4, 0xb1, 0x4e, 0x48, 0x55, 0x21, 0x1f, 0x2a, 0x63, 0x6f, 0x96, 0x5a, 0xa3, 0xdb, 0xbb, 0xb9, |
|
| 10370 |
+ 0x71, 0xab, 0x77, 0xa7, 0xb6, 0x83, 0x61, 0x4c, 0xe4, 0xcd, 0x3f, 0xa1, 0x4d, 0x3b, 0xba, 0x8d, |
|
| 10371 |
+ 0x9d, 0x4d, 0xd0, 0xe7, 0xa1, 0x57, 0xb8, 0x78, 0xd5, 0x82, 0x42, 0x28, 0x2d, 0xbc, 0x82, 0xdd, |
|
| 10372 |
+ 0x3e, 0x56, 0x08, 0x31, 0x56, 0x7c, 0x21, 0x34, 0xf5, 0x76, 0x9b, 0x3a, 0xf7, 0xed, 0x36, 0xfd, |
|
| 10373 |
+ 0xb5, 0xbc, 0xdd, 0xbe, 0xfc, 0x45, 0x0a, 0xf2, 0x61, 0xdf, 0xc6, 0x5c, 0x86, 0xd5, 0x25, 0x0b, |
|
| 10374 |
+ 0xa2, 0xa3, 0x0e, 0xe9, 0x2d, 0x5e, 0x91, 0xe4, 0xb5, 0xed, 0xed, 0x76, 0x4d, 0x63, 0x4f, 0x9f, |
|
| 10375 |
+ 0xef, 0x88, 0xc2, 0x25, 0x04, 0x68, 0x78, 0x69, 0xd9, 0xa1, 0xf7, 0x15, 0x35, 0x2a, 0x5c, 0xee, |
|
| 10376 |
+ 0xcb, 0xbe, 0x3d, 0x44, 0x05, 0x55, 0xcb, 0x0b, 0x90, 0xd3, 0xba, 0xdd, 0xe6, 0x9d, 0x16, 0x6a, |
|
| 10377 |
+ 0x7a, 0x90, 0x28, 0x3f, 0x83, 0xa0, 0x0b, 0x91, 0x2a, 0x4c, 0xb8, 0xc7, 0x36, 0x6a, 0x62, 0xa8, |
|
| 10378 |
+ 0x5a, 0xad, 0xd1, 0x61, 0xf3, 0xdd, 0x4f, 0xce, 0xa3, 0x78, 0xba, 0xe6, 0x8f, 0x61, 0xf9, 0x0e, |
|
| 10379 |
+ 0x69, 0x74, 0x34, 0xc2, 0x66, 0x7c, 0x90, 0x9c, 0x5b, 0x57, 0xc7, 0xa5, 0xd8, 0xc9, 0xb3, 0x39, |
|
| 10380 |
+ 0xd7, 0x83, 0x77, 0xdc, 0xfb, 0xa9, 0xb2, 0x82, 0x98, 0xe5, 0xa8, 0x59, 0xc5, 0xfd, 0x9d, 0xb0, |
|
| 10381 |
+ 0xd9, 0xba, 0xbb, 0x1a, 0xd9, 0xe5, 0x6a, 0x52, 0x73, 0xb3, 0x75, 0xd9, 0x13, 0x02, 0xd3, 0x82, |
|
| 10382 |
+ 0xd6, 0x91, 0xbd, 0x56, 0x8b, 0x5b, 0x97, 0x9e, 0xb3, 0x8e, 0x8c, 0x6d, 0x9b, 0x61, 0xae, 0x63, |
|
| 10383 |
+ 0x0a, 0x6b, 0xef, 0x74, 0xb6, 0x1b, 0xbb, 0x8d, 0xd2, 0x83, 0xf4, 0xdc, 0x82, 0x6a, 0xce, 0x70, |
|
| 10384 |
+ 0x64, 0x51, 0x5f, 0x98, 0xd7, 0xdd, 0xda, 0xdb, 0xe5, 0xcf, 0xcc, 0xf7, 0x33, 0xf3, 0x13, 0x0e, |
|
| 10385 |
+ 0xc6, 0x7e, 0x9f, 0x95, 0x8a, 0xd7, 0xc2, 0xda, 0xed, 0x41, 0x46, 0xa4, 0xcc, 0x10, 0x23, 0x0a, |
|
| 10386 |
+ 0x37, 0xa6, 0x87, 0x34, 0x7e, 0x28, 0x5e, 0xa4, 0xef, 0x67, 0xe7, 0xf4, 0x10, 0xfa, 0x1e, 0x46, |
|
| 10387 |
+ 0x41, 0x2c, 0xef, 0xc2, 0x67, 0xa8, 0x90, 0xf5, 0xf2, 0x8f, 0x21, 0x17, 0x04, 0x0c, 0xdc, 0x9d, |
|
| 10388 |
+ 0xec, 0x41, 0x9b, 0xdc, 0x6d, 0x10, 0x3c, 0x7a, 0xbe, 0x3b, 0x01, 0xe7, 0xc0, 0x71, 0xd1, 0xbb, |
|
| 10389 |
+ 0x70, 0x19, 0x8b, 0x3b, 0x5a, 0x4b, 0xbb, 0x83, 0x00, 0xf9, 0xce, 0x15, 0x00, 0xa4, 0xd7, 0x97, |
|
| 10390 |
+ 0x4b, 0x72, 0x82, 0x50, 0x67, 0x75, 0xed, 0xe1, 0xa7, 0xeb, 0x0b, 0x1f, 0xe3, 0xef, 0xf3, 0x4f, |
|
| 10391 |
+ 0xd7, 0x13, 0xf7, 0x3f, 0x5b, 0x4f, 0x3c, 0xc4, 0xdf, 0x5f, 0xf0, 0xf7, 0x4f, 0xfc, 0x1d, 0x66, |
|
| 10392 |
+ 0x79, 0xfd, 0xf2, 0xc6, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x79, 0xcb, 0x88, 0x96, 0x53, 0x1d, |
|
| 10393 |
+ 0x00, 0x00, |
|
| 10394 | 10394 |
} |
| ... | ... |
@@ -426,10 +426,10 @@ message IssuanceStatus {
|
| 426 | 426 |
|
| 427 | 427 |
message AcceptancePolicy {
|
| 428 | 428 |
message RoleAdmissionPolicy {
|
| 429 |
- message HashedSecret {
|
|
| 430 |
- // The actual hashed content |
|
| 429 |
+ message Secret {
|
|
| 430 |
+ // The actual content (possibly hashed) |
|
| 431 | 431 |
bytes data = 1; |
| 432 |
- // The type of hash we are using |
|
| 432 |
+ // The type of hash we are using, or "plaintext" |
|
| 433 | 433 |
string alg = 2; |
| 434 | 434 |
} |
| 435 | 435 |
|
| ... | ... |
@@ -439,13 +439,12 @@ message AcceptancePolicy {
|
| 439 | 439 |
bool autoaccept = 2; |
| 440 | 440 |
// Secret represents a user-provided string that is necessary for new |
| 441 | 441 |
// nodes to join the cluster |
| 442 |
- HashedSecret secret = 3; |
|
| 442 |
+ Secret secret = 3; |
|
| 443 | 443 |
} |
| 444 | 444 |
|
| 445 | 445 |
repeated RoleAdmissionPolicy policies = 1; |
| 446 | 446 |
} |
| 447 | 447 |
|
| 448 |
- |
|
| 449 | 448 |
message ExternalCA {
|
| 450 | 449 |
enum CAProtocol {
|
| 451 | 450 |
CFSSL = 0 [(gogoproto.enumvalue_customname) = "CAProtocolCFSSL"]; |
| ... | ... |
@@ -1,6 +1,8 @@ |
| 1 | 1 |
package ca |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 |
+ "crypto/subtle" |
|
| 5 |
+ "errors" |
|
| 4 | 6 |
"fmt" |
| 5 | 7 |
"strings" |
| 6 | 8 |
"sync" |
| ... | ... |
@@ -255,7 +257,7 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
| 255 | 255 |
} |
| 256 | 256 |
|
| 257 | 257 |
// checkSecretValidity verifies if a secret string matches the secret hash stored in the |
| 258 |
-// Acceptance Policy. It currently only supports bcrypted hashes. |
|
| 258 |
+// Acceptance Policy. It currently only supports bcrypted hashes and plaintext. |
|
| 259 | 259 |
func checkSecretValidity(policy *api.AcceptancePolicy_RoleAdmissionPolicy, secret string) error {
|
| 260 | 260 |
if policy == nil || secret == "" {
|
| 261 | 261 |
return fmt.Errorf("invalid policy or secret")
|
| ... | ... |
@@ -264,6 +266,11 @@ func checkSecretValidity(policy *api.AcceptancePolicy_RoleAdmissionPolicy, secre |
| 264 | 264 |
switch strings.ToLower(policy.Secret.Alg) {
|
| 265 | 265 |
case "bcrypt": |
| 266 | 266 |
return bcrypt.CompareHashAndPassword(policy.Secret.Data, []byte(secret)) |
| 267 |
+ case "plaintext": |
|
| 268 |
+ if subtle.ConstantTimeCompare(policy.Secret.Data, []byte(secret)) == 1 {
|
|
| 269 |
+ return nil |
|
| 270 |
+ } |
|
| 271 |
+ return errors.New("incorrect secret")
|
|
| 267 | 272 |
} |
| 268 | 273 |
|
| 269 | 274 |
return fmt.Errorf("hash algorithm not supported: %s", policy.Secret.Alg)
|
| ... | ... |
@@ -16,9 +16,8 @@ var ( |
| 16 | 16 |
// parameters for random identifier generation. We can tweak this when there is |
| 17 | 17 |
// time for further analysis. |
| 18 | 18 |
const ( |
| 19 |
- randomIDEntropyBytes = 16 |
|
| 20 |
- randomNodeIDEntropyBytes = 8 |
|
| 21 |
- randomIDBase = 36 |
|
| 19 |
+ randomIDEntropyBytes = 16 |
|
| 20 |
+ randomIDBase = 36 |
|
| 22 | 21 |
|
| 23 | 22 |
// To ensure that all identifiers are fixed length, we make sure they |
| 24 | 23 |
// get padded out to 25 characters, which is the maximum for the base36 |
| ... | ... |
@@ -28,8 +27,7 @@ const ( |
| 28 | 28 |
// was calculated from floor(log(2^128-1, 36)) + 1. |
| 29 | 29 |
// |
| 30 | 30 |
// See http://mathworld.wolfram.com/NumberLength.html for more information. |
| 31 |
- maxRandomIDLength = 25 |
|
| 32 |
- maxRandomNodeIDLength = 13 |
|
| 31 |
+ maxRandomIDLength = 25 |
|
| 33 | 32 |
) |
| 34 | 33 |
|
| 35 | 34 |
// NewID generates a new identifier for use where random identifiers with low |
| ... | ... |
@@ -8,6 +8,8 @@ import ( |
| 8 | 8 |
"github.com/docker/libnetwork/drivers/overlay/ovmanager" |
| 9 | 9 |
"github.com/docker/libnetwork/drvregistry" |
| 10 | 10 |
"github.com/docker/libnetwork/ipamapi" |
| 11 |
+ builtinIpam "github.com/docker/libnetwork/ipams/builtin" |
|
| 12 |
+ nullIpam "github.com/docker/libnetwork/ipams/null" |
|
| 11 | 13 |
"github.com/docker/swarmkit/api" |
| 12 | 14 |
"github.com/docker/swarmkit/log" |
| 13 | 15 |
"golang.org/x/net/context" |
| ... | ... |
@@ -76,6 +78,15 @@ func New() (*NetworkAllocator, error) {
|
| 76 | 76 |
return nil, err |
| 77 | 77 |
} |
| 78 | 78 |
|
| 79 |
+ for _, fn := range [](func(ipamapi.Callback, interface{}, interface{}) error){
|
|
| 80 |
+ builtinIpam.Init, |
|
| 81 |
+ nullIpam.Init, |
|
| 82 |
+ } {
|
|
| 83 |
+ if err := fn(reg, nil, nil); err != nil {
|
|
| 84 |
+ return nil, err |
|
| 85 |
+ } |
|
| 86 |
+ } |
|
| 87 |
+ |
|
| 79 | 88 |
pa, err := newPortAllocator() |
| 80 | 89 |
if err != nil {
|
| 81 | 90 |
return nil, err |
| ... | ... |
@@ -2,6 +2,7 @@ package controlapi |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 | 4 |
"github.com/docker/swarmkit/api" |
| 5 |
+ "github.com/docker/swarmkit/manager/state/raft/membership" |
|
| 5 | 6 |
"github.com/docker/swarmkit/manager/state/store" |
| 6 | 7 |
"golang.org/x/net/context" |
| 7 | 8 |
"google.golang.org/grpc" |
| ... | ... |
@@ -188,8 +189,10 @@ func (s *Server) UpdateNode(ctx context.Context, request *api.UpdateNodeRequest) |
| 188 | 188 |
|
| 189 | 189 |
var ( |
| 190 | 190 |
node *api.Node |
| 191 |
+ member *membership.Member |
|
| 191 | 192 |
demote bool |
| 192 | 193 |
) |
| 194 |
+ |
|
| 193 | 195 |
err := s.store.Update(func(tx store.Tx) error {
|
| 194 | 196 |
node = store.GetNode(tx, request.NodeID) |
| 195 | 197 |
if node == nil {
|
| ... | ... |
@@ -199,6 +202,8 @@ func (s *Server) UpdateNode(ctx context.Context, request *api.UpdateNodeRequest) |
| 199 | 199 |
// Demotion sanity checks. |
| 200 | 200 |
if node.Spec.Role == api.NodeRoleManager && request.Spec.Role == api.NodeRoleWorker {
|
| 201 | 201 |
demote = true |
| 202 |
+ |
|
| 203 |
+ // Check for manager entries in Store. |
|
| 202 | 204 |
managers, err := store.FindNodes(tx, store.ByRole(api.NodeRoleManager)) |
| 203 | 205 |
if err != nil {
|
| 204 | 206 |
return grpc.Errorf(codes.Internal, "internal store error: %v", err) |
| ... | ... |
@@ -206,6 +211,16 @@ func (s *Server) UpdateNode(ctx context.Context, request *api.UpdateNodeRequest) |
| 206 | 206 |
if len(managers) == 1 && managers[0].ID == node.ID {
|
| 207 | 207 |
return grpc.Errorf(codes.FailedPrecondition, "attempting to demote the last manager of the swarm") |
| 208 | 208 |
} |
| 209 |
+ |
|
| 210 |
+ // Check for node in memberlist |
|
| 211 |
+ if member = s.raft.GetMemberByNodeID(request.NodeID); member == nil {
|
|
| 212 |
+ return grpc.Errorf(codes.NotFound, "can't find manager in raft memberlist") |
|
| 213 |
+ } |
|
| 214 |
+ |
|
| 215 |
+ // Quorum safeguard |
|
| 216 |
+ if !s.raft.CanRemoveMember(member.RaftID) {
|
|
| 217 |
+ return grpc.Errorf(codes.FailedPrecondition, "can't remove member from the raft: this would result in a loss of quorum") |
|
| 218 |
+ } |
|
| 209 | 219 |
} |
| 210 | 220 |
|
| 211 | 221 |
node.Meta.Version = *request.NodeVersion |
| ... | ... |
@@ -220,14 +235,12 @@ func (s *Server) UpdateNode(ctx context.Context, request *api.UpdateNodeRequest) |
| 220 | 220 |
} |
| 221 | 221 |
|
| 222 | 222 |
if demote && s.raft != nil {
|
| 223 |
- memberlist := s.raft.GetMemberlist() |
|
| 224 |
- for raftID, member := range memberlist {
|
|
| 225 |
- if member.NodeID == request.NodeID {
|
|
| 226 |
- if err := s.raft.RemoveMember(ctx, raftID); err != nil {
|
|
| 227 |
- return nil, err |
|
| 228 |
- } |
|
| 229 |
- break |
|
| 230 |
- } |
|
| 223 |
+ // TODO(abronan): the remove can potentially fail and leave the node with |
|
| 224 |
+ // an incorrect role (worker rather than manager), we need to reconcile the |
|
| 225 |
+ // memberlist with the desired state rather than attempting to remove the |
|
| 226 |
+ // member once. |
|
| 227 |
+ if err := s.raft.RemoveMember(ctx, member.RaftID); err != nil {
|
|
| 228 |
+ return nil, grpc.Errorf(codes.Internal, "cannot demote manager to worker: %v", err) |
|
| 231 | 229 |
} |
| 232 | 230 |
} |
| 233 | 231 |
|
| ... | ... |
@@ -7,6 +7,7 @@ import ( |
| 7 | 7 |
"github.com/docker/engine-api/types/reference" |
| 8 | 8 |
"github.com/docker/swarmkit/api" |
| 9 | 9 |
"github.com/docker/swarmkit/identity" |
| 10 |
+ "github.com/docker/swarmkit/manager/scheduler" |
|
| 10 | 11 |
"github.com/docker/swarmkit/manager/state/store" |
| 11 | 12 |
"github.com/docker/swarmkit/protobuf/ptypes" |
| 12 | 13 |
"golang.org/x/net/context" |
| ... | ... |
@@ -75,6 +76,14 @@ func validateRestartPolicy(rp *api.RestartPolicy) error {
|
| 75 | 75 |
return nil |
| 76 | 76 |
} |
| 77 | 77 |
|
| 78 |
+func validatePlacement(placement *api.Placement) error {
|
|
| 79 |
+ if placement == nil {
|
|
| 80 |
+ return nil |
|
| 81 |
+ } |
|
| 82 |
+ _, err := scheduler.ParseExprs(placement.Constraints) |
|
| 83 |
+ return err |
|
| 84 |
+} |
|
| 85 |
+ |
|
| 78 | 86 |
func validateUpdate(uc *api.UpdateConfig) error {
|
| 79 | 87 |
if uc == nil {
|
| 80 | 88 |
return nil |
| ... | ... |
@@ -101,6 +110,10 @@ func validateTask(taskSpec api.TaskSpec) error {
|
| 101 | 101 |
return err |
| 102 | 102 |
} |
| 103 | 103 |
|
| 104 |
+ if err := validatePlacement(taskSpec.Placement); err != nil {
|
|
| 105 |
+ return err |
|
| 106 |
+ } |
|
| 107 |
+ |
|
| 104 | 108 |
if taskSpec.GetRuntime() == nil {
|
| 105 | 109 |
return grpc.Errorf(codes.InvalidArgument, "TaskSpec: missing runtime") |
| 106 | 110 |
} |
| ... | ... |
@@ -328,14 +328,14 @@ func (d *Dispatcher) isRunning() bool {
|
| 328 | 328 |
} |
| 329 | 329 |
|
| 330 | 330 |
// register is used for registration of node with particular dispatcher. |
| 331 |
-func (d *Dispatcher) register(ctx context.Context, nodeID string, description *api.NodeDescription) (string, string, error) {
|
|
| 331 |
+func (d *Dispatcher) register(ctx context.Context, nodeID string, description *api.NodeDescription) (string, error) {
|
|
| 332 | 332 |
// prevent register until we're ready to accept it |
| 333 | 333 |
if err := d.isRunningLocked(); err != nil {
|
| 334 |
- return "", "", err |
|
| 334 |
+ return "", err |
|
| 335 | 335 |
} |
| 336 | 336 |
|
| 337 | 337 |
if err := d.nodes.CheckRateLimit(nodeID); err != nil {
|
| 338 |
- return "", "", err |
|
| 338 |
+ return "", err |
|
| 339 | 339 |
} |
| 340 | 340 |
|
| 341 | 341 |
// create or update node in store |
| ... | ... |
@@ -355,7 +355,7 @@ func (d *Dispatcher) register(ctx context.Context, nodeID string, description *a |
| 355 | 355 |
|
| 356 | 356 |
}) |
| 357 | 357 |
if err != nil {
|
| 358 |
- return "", "", err |
|
| 358 |
+ return "", err |
|
| 359 | 359 |
} |
| 360 | 360 |
|
| 361 | 361 |
expireFunc := func() {
|
| ... | ... |
@@ -377,7 +377,7 @@ func (d *Dispatcher) register(ctx context.Context, nodeID string, description *a |
| 377 | 377 |
// time a node registers, we invalidate the session and issue a new |
| 378 | 378 |
// session, once identity is proven. This will cause misbehaved agents to |
| 379 | 379 |
// be kicked when multiple connections are made. |
| 380 |
- return rn.Node.ID, rn.SessionID, nil |
|
| 380 |
+ return rn.SessionID, nil |
|
| 381 | 381 |
} |
| 382 | 382 |
|
| 383 | 383 |
// UpdateTaskStatus updates status of task. Node should send such updates |
| ... | ... |
@@ -650,7 +650,7 @@ func (d *Dispatcher) Session(r *api.SessionRequest, stream api.Dispatcher_Sessio |
| 650 | 650 |
} |
| 651 | 651 |
|
| 652 | 652 |
// register the node. |
| 653 |
- nodeID, sessionID, err := d.register(stream.Context(), nodeID, r.Description) |
|
| 653 |
+ sessionID, err := d.register(stream.Context(), nodeID, r.Description) |
|
| 654 | 654 |
if err != nil {
|
| 655 | 655 |
return err |
| 656 | 656 |
} |
| ... | ... |
@@ -70,6 +70,15 @@ func (r *ReplicatedOrchestrator) resolveService(ctx context.Context, task *api.T |
| 70 | 70 |
return service |
| 71 | 71 |
} |
| 72 | 72 |
|
| 73 |
+type tasksByRunningState []*api.Task |
|
| 74 |
+ |
|
| 75 |
+func (ts tasksByRunningState) Len() int { return len(ts) }
|
|
| 76 |
+func (ts tasksByRunningState) Swap(i, j int) { ts[i], ts[j] = ts[j], ts[i] }
|
|
| 77 |
+ |
|
| 78 |
+func (ts tasksByRunningState) Less(i, j int) bool {
|
|
| 79 |
+ return ts[i].Status.State == api.TaskStateRunning && ts[j].Status.State != api.TaskStateRunning |
|
| 80 |
+} |
|
| 81 |
+ |
|
| 73 | 82 |
type taskWithIndex struct {
|
| 74 | 83 |
task *api.Task |
| 75 | 84 |
|
| ... | ... |
@@ -139,6 +148,14 @@ func (r *ReplicatedOrchestrator) reconcile(ctx context.Context, service *api.Ser |
| 139 | 139 |
|
| 140 | 140 |
// Preferentially remove tasks on the nodes that have the most |
| 141 | 141 |
// copies of this service, to leave a more balanced result. |
| 142 |
+ |
|
| 143 |
+ // First sort tasks such that tasks which are currently running |
|
| 144 |
+ // (in terms of observed state) appear before non-running tasks. |
|
| 145 |
+ // This will cause us to prefer to remove non-running tasks, all |
|
| 146 |
+ // other things being equal in terms of node balance. |
|
| 147 |
+ |
|
| 148 |
+ sort.Sort(tasksByRunningState(runningTasks)) |
|
| 149 |
+ |
|
| 142 | 150 |
// Assign each task an index that counts it as the nth copy of |
| 143 | 151 |
// of the service on its node (1, 2, 3, ...), and sort the |
| 144 | 152 |
// tasks by this counter value. |
| ... | ... |
@@ -18,14 +18,19 @@ type ConstraintFilter struct {
|
| 18 | 18 |
|
| 19 | 19 |
// SetTask returns true when the filter is enable for a given task. |
| 20 | 20 |
func (f *ConstraintFilter) SetTask(t *api.Task) bool {
|
| 21 |
- if t.Spec.Placement != nil && len(t.Spec.Placement.Constraints) > 0 {
|
|
| 22 |
- constraints, err := ParseExprs(t.Spec.Placement.Constraints) |
|
| 23 |
- if err == nil {
|
|
| 24 |
- f.constraints = constraints |
|
| 25 |
- return true |
|
| 26 |
- } |
|
| 21 |
+ if t.Spec.Placement == nil || len(t.Spec.Placement.Constraints) == 0 {
|
|
| 22 |
+ return false |
|
| 23 |
+ } |
|
| 24 |
+ |
|
| 25 |
+ constraints, err := ParseExprs(t.Spec.Placement.Constraints) |
|
| 26 |
+ if err != nil {
|
|
| 27 |
+ // constraints have been validated at controlapi |
|
| 28 |
+ // if in any case it finds an error here, treat this task |
|
| 29 |
+ // as constraint filter disabled. |
|
| 30 |
+ return false |
|
| 27 | 31 |
} |
| 28 |
- return false |
|
| 32 |
+ f.constraints = constraints |
|
| 33 |
+ return true |
|
| 29 | 34 |
} |
| 30 | 35 |
|
| 31 | 36 |
// Check returns true if the task's constraint is supported by the given node. |
| ... | ... |
@@ -165,19 +165,11 @@ func (c *Cluster) ValidateConfigurationChange(cc raftpb.ConfChange) error {
|
| 165 | 165 |
// that might block or harm the Cluster on Member recovery |
| 166 | 166 |
func (c *Cluster) CanRemoveMember(from uint64, id uint64) bool {
|
| 167 | 167 |
members := c.Members() |
| 168 |
- |
|
| 169 |
- nmembers := 0 |
|
| 170 | 168 |
nreachable := 0 |
| 171 | 169 |
|
| 172 | 170 |
for _, m := range members {
|
| 173 |
- // Skip the node that is going to be deleted |
|
| 174 |
- if m.RaftID == id {
|
|
| 175 |
- continue |
|
| 176 |
- } |
|
| 177 |
- |
|
| 178 | 171 |
// Local node from where the remove is issued |
| 179 | 172 |
if m.RaftID == from {
|
| 180 |
- nmembers++ |
|
| 181 | 173 |
nreachable++ |
| 182 | 174 |
continue |
| 183 | 175 |
} |
| ... | ... |
@@ -186,8 +178,6 @@ func (c *Cluster) CanRemoveMember(from uint64, id uint64) bool {
|
| 186 | 186 |
if err == nil && connState == grpc.Ready {
|
| 187 | 187 |
nreachable++ |
| 188 | 188 |
} |
| 189 |
- |
|
| 190 |
- nmembers++ |
|
| 191 | 189 |
} |
| 192 | 190 |
|
| 193 | 191 |
// Special case of 2 managers |
| ... | ... |
@@ -195,7 +185,7 @@ func (c *Cluster) CanRemoveMember(from uint64, id uint64) bool {
|
| 195 | 195 |
return false |
| 196 | 196 |
} |
| 197 | 197 |
|
| 198 |
- nquorum := nmembers/2 + 1 |
|
| 198 |
+ nquorum := (len(members)+1)/2 + 1 |
|
| 199 | 199 |
if nreachable < nquorum {
|
| 200 | 200 |
return false |
| 201 | 201 |
} |
| ... | ... |
@@ -94,6 +94,7 @@ type Node struct {
|
| 94 | 94 |
wal *wal.WAL |
| 95 | 95 |
snapshotter *snap.Snapshotter |
| 96 | 96 |
wasLeader bool |
| 97 |
+ restored bool |
|
| 97 | 98 |
isMember uint32 |
| 98 | 99 |
joinAddr string |
| 99 | 100 |
|
| ... | ... |
@@ -394,6 +395,18 @@ func (n *Node) Run(ctx context.Context) error {
|
| 394 | 394 |
} |
| 395 | 395 |
} |
| 396 | 396 |
|
| 397 |
+ // If we are the only registered member after |
|
| 398 |
+ // restoring from the state, campaign to be the |
|
| 399 |
+ // leader. |
|
| 400 |
+ if !n.restored {
|
|
| 401 |
+ if len(n.cluster.Members()) <= 1 {
|
|
| 402 |
+ if err := n.Campaign(n.Ctx); err != nil {
|
|
| 403 |
+ panic("raft: cannot campaign to be the leader on node restore")
|
|
| 404 |
+ } |
|
| 405 |
+ } |
|
| 406 |
+ n.restored = true |
|
| 407 |
+ } |
|
| 408 |
+ |
|
| 397 | 409 |
// Advance the state machine |
| 398 | 410 |
n.Advance() |
| 399 | 411 |
|
| ... | ... |
@@ -638,7 +651,14 @@ func (n *Node) Leave(ctx context.Context, req *api.LeaveRequest) (*api.LeaveResp |
| 638 | 638 |
return &api.LeaveResponse{}, nil
|
| 639 | 639 |
} |
| 640 | 640 |
|
| 641 |
-// RemoveMember submits a configuration change to remove a member from the raft cluster. |
|
| 641 |
+// CanRemoveMember checks if a member can be removed from |
|
| 642 |
+// the context of the current node. |
|
| 643 |
+func (n *Node) CanRemoveMember(id uint64) bool {
|
|
| 644 |
+ return n.cluster.CanRemoveMember(n.Config.ID, id) |
|
| 645 |
+} |
|
| 646 |
+ |
|
| 647 |
+// RemoveMember submits a configuration change to remove a member from the raft cluster |
|
| 648 |
+// after checking if the operation would not result in a loss of quorum. |
|
| 642 | 649 |
func (n *Node) RemoveMember(ctx context.Context, id uint64) error {
|
| 643 | 650 |
n.membershipLock.Lock() |
| 644 | 651 |
defer n.membershipLock.Unlock() |
| ... | ... |
@@ -828,6 +848,18 @@ func (n *Node) GetMemberlist() map[uint64]*api.RaftMember {
|
| 828 | 828 |
return memberlist |
| 829 | 829 |
} |
| 830 | 830 |
|
| 831 |
+// GetMemberByNodeID returns member information based |
|
| 832 |
+// on its generic Node ID. |
|
| 833 |
+func (n *Node) GetMemberByNodeID(nodeID string) *membership.Member {
|
|
| 834 |
+ members := n.cluster.Members() |
|
| 835 |
+ for _, member := range members {
|
|
| 836 |
+ if member.NodeID == nodeID {
|
|
| 837 |
+ return member |
|
| 838 |
+ } |
|
| 839 |
+ } |
|
| 840 |
+ return nil |
|
| 841 |
+} |
|
| 842 |
+ |
|
| 831 | 843 |
// IsMember checks if the raft node has effectively joined |
| 832 | 844 |
// a cluster of existing members. |
| 833 | 845 |
func (n *Node) IsMember() bool {
|
| ... | ... |
@@ -1172,11 +1204,6 @@ func (n *Node) applyRemoveNode(cc raftpb.ConfChange) (err error) {
|
| 1172 | 1172 |
} |
| 1173 | 1173 |
} |
| 1174 | 1174 |
|
| 1175 |
- // Do not unregister yourself |
|
| 1176 |
- if n.Config.ID == cc.NodeID {
|
|
| 1177 |
- return nil |
|
| 1178 |
- } |
|
| 1179 |
- |
|
| 1180 | 1175 |
return n.cluster.RemoveMember(cc.NodeID) |
| 1181 | 1176 |
} |
| 1182 | 1177 |
|