k8s 隔离context+namespace

时间:2022-04-14 05:23:59

  kubernetes 最简单的隔离是 应用间使用 namespace进行,对应不同项目,namespace 不同,那么相互调用使用 dns.namespace,
而使用 context + namespace 更加安全

[root@master1 ssl]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes feng-csr.json | cfssljson -bare feng

set-cluster  kubernetes 运行环境使用admin账户,并且没有限制namespace,所以可以对所有的namespace进行操作,

export KUBE_APISERVER="https://192.168.200.11:6443"

# 设置集群参数
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} # 设置客户端认证参数
kubectl config set-credentials admin \
--client-certificate=/etc/kubernetes/ssl/admin.pem \
--embed-certs=true \
--client-key=/etc/kubernetes/ssl/admin-key.pem # 设置运行环境,集群是kubernetes,用户名是admin
kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=admin # 切换到kubernetes 运行环境中
kubectl config use-context kubernetes

设置新的运行环境:

export KUBE_APISERVER="https://192.168.200.11:6443"

# 设置集群参数
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/ssl/ca.pem --embed-certs=true --server=${KUBE_APISERVER} # 设置客户端认证参数
kubectl config set-credentials feng --client-certificate=/root/ssl/feng.pem --embed-certs=true --client-key=/root/ssl/feng-key.pem #设置运行环境,集群是kubernetes,用户名是admin
kubectl config set-context senyint-dev --namespace=development --cluster=kubernetes --user=feng 
kubectl config set-context senyint-test --namespace=test --cluster=kubernetes --user=feng 

# 切换到 senyint-dev 环境中,用户名feng只允许对developemnt namespace进行操作
kubectl config use-context senyint-dev

查看设置的用户,context 位置

[root@master1 ~]# cat /root/.kube/config
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR2akNDQXFhZ0F3SUJBZ0lVUGQzcWQ2bmFKRWhCVEszblZtQVJybyt0WE44d0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbAphVXBwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEU0TURJeE1qRXpNVEV3TUZvWERUSXpNREl4TVRFek1URXdNRm93WlRFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbGFVcHBibWN4RERBSwpCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByZFdKbGNtNWxkR1Z6Ck1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeEt0aEsvRDQyWHRTWjZOK3F2TXgKalJmZm42RTg0RHZ4ZlZ2K0FsOG1XODBydTdhN2ZuWmFmbUZoYTg4WjVvWFNSRnNEVTRSVm9sUUV1YWUzTDMwMQpuY3QzNy80RXhSYVg5ZXM0bjdQWlpveEQxQWtIZnEveCtKckM1RzVBelgrR0pJbnAxcHZ0SFBtdk1qTkdJNTJPCnFjSDg4Q21rdmJtRGkvNmQxMU5JRkVVMVROMTZZdmFHWE1MSHk1TlZnR1dubEZ3WWRqWUc2KzQyS2VxL1kyZ0QKSTIybGErVStDQ05OanFoT0J1a0R0TGlzZkNDOC80TnFzeEdxQnpxTWVTUjc1S1FFelpxbWJrcjg4WWlNR0JaZgp6N09CalRzRFZ2Z3NyUWVoKzlXbDlmUUlaYUEraEUyMlR3N2FpYVhrbFR6ZHNycTVicG5uc0JWMUxscm1SNmZ3ClN3SURBUUFCbzJZd1pEQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWQKQmdOVkhRNEVGZ1FVajhqM3ozdFcranZyNlVhUUI5MnZ0cWhaMGdNd0h3WURWUjBqQkJnd0ZvQVVqOGozejN0VworanZyNlVhUUI5MnZ0cWhaMGdNd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFGY2FlZnhzeXpQQlkrMEIvd08yCkFxUlBzQ2lFUVZzR3kyVFZGOUFScFE1MUdGYysrSDNEZGZwZHA1cHpNeWZSODlUTDJJSTBBRmpmZUE0K3A2WkMKQ2xxSFdZcG9EN0orZjVEMmNaNEtWRFpJNkdCeFQ1VHhRc1pBdEFUUjUrdTJxaTBuaVFKdW5FYjZxK0lvVWhpcwpONEdjNDIvMW1hN1FrOW5md3RmSTlEeFNMQm1SdncwMk1udUNtaTBuSW96b0VhYVRTNjNDZjQ2OTkwZCtaT3E5CkEyeTB6eml1QkUxa2xTakFRL0J3QXpvUjJKWCtEQlVLb1Rqb2E3WE5IdVhqL05rQUxXV1drQUtub2NnQis5VXIKdDZjTUkzck4vaGVqeno4b0VjdjlCSG5tWGpYa0ZLQ0VlOFNDTVZnOHd6WldheTlPb2RTTlNESnhFVGp1cE45Tgpic3c9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
server: https://192.168.200.11:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: admin
name: kubernetes
- context:
cluster: kubernetes
namespace: development
user: feng
name: senyint-dev
- context:
cluster: kubernetes
namespace: test
user: feng
name: senyint-test
current-context: senyint-test
kind: Config
preferences: {}
users:
- name: admin
user:
as-user-extra: {}
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQzVENDQXNXZ0F3SUJBZ0lVR2d3NGtQblZGUEdqbTN1TlR3bWZkZ0M1SVVzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbAphVXBwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEU0TURJeE1qRXpNVEl3TUZvWERUSTRNREl4TURFek1USXdNRm93YXpFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbGFVcHBibWN4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVE4d0RRWURWUVFMRXdaVGVYTjBaVzB4RGpBTUJnTlZCQU1UCkJXRmtiV2x1TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxRVhkV3lNZ05aK1EKdUpra25PVlR0bWNocVp5VHIyNng2b1JZVyswVDZvZXNiQ1JuRHJpb2tTdk1HR2tNSVF4Ky84cndlTnJsZ3lCVQpubTJGVlg0NlNrU0FQc0NEbVplNGltNHM0Z2NIenVKQ2JxNVpBOGk3UmlqN2x2QWFpQ0l4akl4TDhzWTkzUkF5CjY0SHU2WUtNRVI5Z2tyeHVyc3QyRzRIUGtVYWpQTm14bUZDcGVwTlVtcERwUFcreUVRWFpxY25KbGlaVTMxa08KVk40NTVZNXFLOHdZd0dKNlVENXQxOGgvYWdOa3RWdVFCRUNyeWtmT3hWK2d6b3FqalJrOFhRL25WeDFQSGNjMwp4Mk44L0YyLzhiYVFQK1dXenoxd0FhN0pRN0tjcENPMlZ2Wkw2NU00a3BqcnJLTi92TWdlcGpNVFI5Q3dra1duClFyUFdSZmwvRFFJREFRQUJvMzh3ZlRBT0JnTlZIUThCQWY4RUJBTUNCYUF3SFFZRFZSMGxCQll3RkFZSUt3WUIKQlFVSEF3RUdDQ3NHQVFVRkJ3TUNNQXdHQTFVZEV3RUIvd1FDTUFBd0hRWURWUjBPQkJZRUZJSFBNemFvejlZbgoyTUlXRkJqNDlScHVxbzE1TUI4R0ExVWRJd1FZTUJhQUZJL0k5ODk3VnZvNzYrbEdrQWZkcjdhb1dkSURNQTBHCkNTcUdTSWIzRFFFQkN3VUFBNElCQVFDMktnQUZRaGdpKzJTWkFmZHcvdU95ZlczdkxQTFVTT3lrbkZqTzF3NkIKS0E3Rkt3SHZFWmpYTTRmdUxGdlU5a290MU5VOG44NEtmMXZudnFJVkluOGdqSEx6YjlwSWhHeGZiRTFGclhlRApCRHR4SWdxdHJYaUhXMk1tTTR3VmZRZWJIYmpLMEIxQzh1QVBRUVlqRVg3eU92c0lTVW9EOWRuVVA0aVNhblEvCi9UNHpnamUxSUhJcHRmTnlDa05wZzkxVVo2SVZzTkcrVzVVMWt3SUJCNXpDbW5jRW9KV0tTVzM2alN2N2VJVGMKVnNxZXFqNUR2alhhM3NKQVF1OXlod0VlTHdSYjhuOHNsMUVNbUk4dzNleCtoOGkvNzhGVDdwTGs3R2RqdmRLTgpYdFl3MWRpR25MNXplZ21ZbndoWmM1YzNZOTU0dEtmTEk5dmlJYjZsRzJzVwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBcUVYZFd5TWdOWitRdUpra25PVlR0bWNocVp5VHIyNng2b1JZVyswVDZvZXNiQ1JuCkRyaW9rU3ZNR0drTUlReCsvOHJ3ZU5ybGd5QlVubTJGVlg0NlNrU0FQc0NEbVplNGltNHM0Z2NIenVKQ2JxNVoKQThpN1JpajdsdkFhaUNJeGpJeEw4c1k5M1JBeTY0SHU2WUtNRVI5Z2tyeHVyc3QyRzRIUGtVYWpQTm14bUZDcAplcE5VbXBEcFBXK3lFUVhacWNuSmxpWlUzMWtPVk40NTVZNXFLOHdZd0dKNlVENXQxOGgvYWdOa3RWdVFCRUNyCnlrZk94Vitnem9xampSazhYUS9uVngxUEhjYzN4Mk44L0YyLzhiYVFQK1dXenoxd0FhN0pRN0tjcENPMlZ2WkwKNjVNNGtwanJyS04vdk1nZXBqTVRSOUN3a2tXblFyUFdSZmwvRFFJREFRQUJBb0lCQUM5alBXc2xBVFVZc3BESgp6OTIvVjB2T3oxUU1uQ3FUYWRjNVhnakZRdzZSRnFWOXV1Z1NhS1k1UjBpNGpJbmlFd0hHRE9KOEFwWml6SEd4Ck5oTlZjT1RwVlpSV2Nya1dXUW5pN1JEYUdnRFJCeFJVVlEwVHdtbUhzUkpZbTZBcXdQbHJxUmU5YkQ2TkNVbjUKVldhOU5PUzlpVnpKWkFJbG1pVTA4VmRnSlNoRlVRb3J3NUJMN1BRRVN3d3BlWkNkNEZmbjU5QnF2Z2dwKzhPZwpVYjZTMkgrYktTaUk2QVBBTDhmUXAxc1N4aWsrMHBabnRZZDRoQ1JNZnVyb25ra0diT05Kb1BjNDVrSzIxNVllClhmK0VQRzVESVFTd0l2b1BFN0F5TGswQytQbGhoYTVvRmJGaWQ3VFBoOXBHOHVGdW9ubVg5QkJQVGdXR3U0ZXcKQTNxS0pBRUNnWUVBeFdoRDRZUkFUVHM3dXlZVGtyczVDWkRTVzlUUzN4aUhKZEZoV0F3MWFDSSt0SGxxemxlOApNZDdrSHgwWEZURVM5c1puM0xIcy8vendDVWFBRlJVbm5MZGt1YXNwQ3dzdjBvejRXbG1MUVlub3p3NWlNMlU0CmJSQzIyZ2ZoZmdBTk12WnlZUGdKeDJHZU9wMXdGZFR6ajVIQzJ4WlFoMEpkYXVoVzNHWXNibTBDZ1lFQTJqZmMKcHl1MDFCdEsrKzJTM0VoRkZsN0MxWjJQTG43cDBwTk1wZkZBdUJsN0VsVWtmcUc2NDZTTkt2d2NIcjhqUXJuZwpNR3liQWQ4czJ6cTBOVHFEa3R5Nml6UnEwQ3hnTm8yci9tRVpXTURPR1BoMTJ1VU5sbENtdWxCVCtpNzd5SUtjCjhIcXhKeS9FNjBxeUVPZXl4VmJmcVpqOFd5NGJmTmkwZkIwV2J5RUNnWUFvc2JPOG00eTkzd1lUTUdnOGlVZmEKeHZYMlpFc01IbnhOdVhuOXNwYVgzdWRhUU9WWm9CQjFuMk1iWHQzUlNvcUVRS1pNZ29rK3hCK2ZhZDhoZVhqdQovNGRPRnhDZzdDOXhrZ25vWmlrazI0OFlqL2lDYTgxVC9td1RTaWliMXRyaHRKZ2prVDVDMGNiU2duNEdvaDJMCmJScmtHeGVDcXBXallqMzF0VUpYaVFLQmdDbDVoSTZoVi9VWVd1QVcvMXF1d2JMR3YvRXB5UlRsT2p1emsxWFcKeko0dytaczZZMzFONzk5a1h4QlVhbVBOb0Q0R1pmM09Kb2ZzaXZILzdsQlBsc0pMQVltRHBPbDhCYTFZcjkvaApSSmdCelNvaHp3U1RsRW1GZXFyZXFaZGJacTl0WTdheEd3cC9vY1cycExGaDJEQjVtbmo1Z3IweHZqZTBXRmxlCmplMEJBb0dBVFlsSFAxMm5sL1BaM0JwQWc5eFlwOFF0a3BNUFFiVmxUVzd1V3JlQm04QmdydEgrYUZwSTVtNE0KUDYrcmYvYjB3dHMxU0VMS0Urb09jOHhJYlBnMjhrWlpackFhR0FHY2NxZXdzdlNlYWNUb0w4K3o2U0ZLem5oKwpZUlFCZkdpY21sZFlZc2NOT1pHOWNQcXlneDMxUjZ5QVIwSDdwWndjL3gvbWp4ZEFsa3c9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
- name: feng
user:
as-user-extra: {}
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQzRENDQXNTZ0F3SUJBZ0lVUnUwQXpyS1FtSllJZU9kZU9FeWNUZzdPZTNrd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbAphVXBwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEU0TURNeE5qQXlNamN3TUZvWERUSTRNRE14TXpBeU1qY3dNRm93YWpFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbGFVcHBibWN4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVE4d0RRWURWUVFMRXdaVGVYTjBaVzB4RFRBTEJnTlZCQU1UCkJHWmxibWN3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ3pOTGJLaFRNZmpoT1MKRXlYSFBIZFBOdW5PWXlldmFBQVZJTCsxZ2VrUnJrTkNac0p5RGQ1dFhCWmY4U280cldHajR3R0cxQytIUG54RQovbEdNcWVjSVRiMUdaallEcFNDTEZaRVkzNlRiLzREZEMveWczVVA1R2dNeENxNmdWdktMY2V0cEEvenNmOWd1CkdMdVBXd0ZlMUcyMUpXYnRSNWdxak52TU9CSXdzVFFxR0piR2kvc1hYczljT2dPTVZiNDk0b3ZCYUcweVV0UjIKRlJ1QXFibHBZMlpxV0lESDdKdEgzK0dmV2RST1VzVGUreDdBeGF6UU5qU2QvdzFuS0dyWVIrc0FkQmRVd0RrdwpjaUdGMDRHRFRGRjcxN1lTYUpFSEhxNWZvU2xtd1R5SVhBclVVSFdmV21KbGNpUjdYYmplN2puNFNLT1RKUFNZCnM0ajN5VVlEQWdNQkFBR2pmekI5TUE0R0ExVWREd0VCL3dRRUF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJnRUYKQlFjREFRWUlLd1lCQlFVSEF3SXdEQVlEVlIwVEFRSC9CQUl3QURBZEJnTlZIUTRFRmdRVWxzU2JoZjdMZmVOcwoyendSOXROUXYzQlpISHN3SHdZRFZSMGpCQmd3Rm9BVWo4ajN6M3RXK2p2cjZVYVFCOTJ2dHFoWjBnTXdEUVlKCktvWklodmNOQVFFTEJRQURnZ0VCQURsYkZHMmxBL2hMSEJKQ0kzSTlQdFRYWTlvRWRKdWFUZlBrN3pJeFAvUDEKVGNFdXBQZ3l0U0IzN3FWWWM3Q3RlTzM5UXZKeTNyVkJ5Tkl2UlF2Z1pFbVh6WTN5L3ZaYWtCbVRwK1MvZklFTgppNjg0Z0lmVjNuTmRyNUI4amlJalozNWdxSU5JT0poaGM3cVJpZ1owKzE1d3dybTJJZDFKVmFmU0JMajZPUWZhCktHVXdLT3ZuNmF1SGFVMUsySkRrbEVnT3MzakVEcE1LVFBLUHc5K2FJVTBpcXdtWFRWbDlZdVN0OU5GclNwc1gKVTlmWW9HKzJCdXhZLzBJaENzYXJ5T2tjUmxha3JnZ2UvUFBWY0FlWGZzeEtUamVaaDJmaFlvUUJhWmNvdFpBcQo2eitka3JJK2xXSlN6RWM0SXByMTJPbXQ4MGl0eVBPaEFFU3Y4ZUpvRUpRPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBc3pTMnlvVXpINDRUa2hNbHh6eDNUemJwem1NbnIyZ0FGU0MvdFlIcEVhNURRbWJDCmNnM2ViVndXWC9FcU9LMWhvK01CaHRRdmh6NThSUDVSaktubkNFMjlSbVkyQTZVZ2l4V1JHTitrMi8rQTNRdjgKb04xRCtSb0RNUXF1b0ZieWkzSHJhUVA4N0gvWUxoaTdqMXNCWHRSdHRTVm03VWVZS296YnpEZ1NNTEUwS2hpVwp4b3Y3RjE3UFhEb0RqRlcrUGVLTHdXaHRNbExVZGhVYmdLbTVhV05tYWxpQXgreWJSOS9objFuVVRsTEUzdnNlCndNV3MwRFkwbmY4Tlp5aHEyRWZyQUhRWFZNQTVNSEloaGRPQmcweFJlOWUyRW1pUkJ4NnVYNkVwWnNFOGlGd0sKMUZCMW4xcGlaWElrZTEyNDN1NDUrRWlqa3lUMG1MT0k5OGxHQXdJREFRQUJBb0lCQUdReEo3V0l6VEZxUE5UaApzYkIzeFBqYjZkS0RLMi90UklhTGZjT2NNMU80UzFCM3BXVWhEZWUwb2FuWWF0T3ZWRFROdVUvSm1CMFVPV1JWCmtBQ0dDVzVpRUYyb3piQXlCVVRkdFBia0t3YjVEZklJUHFFdHRGQTBVKzU2VzNHM3l2bGRvdEZlOG16RGVYa2sKU05ENGY0YW1YQVA0T2xpVk82VW1oY2ppM0lDdDBzUXN5OG85bmg3K2xCL0FXNGlKNmV6bWZ4emJ2OU80cU01RwphWkYzOXdnWktBWDVSN3YxMFcwRmVtVlk1VmtzS1BPZkRBRWl6aW81cHN4dmxMb0hOcktiUGhkWHBOZGtkV2d4Cm9aa3RvbG0ya0E0cnRWOWRCcHQrQXJ5bFlYVzFoWHU2ZDM4S2FGSjhUL1FReDRVOVBlTjlWWDZEbWNuQUJ3V0UKZ1ZVR3JWRUNnWUVBMmJOTzM4UzFHK2lYN0VGd0JpMTJXdHJGYzZpdkZyWkNxbndZSk1DL3NxQU5jdy9xQmFlaQpEWGtFb29QakJJODJhUjVEdWpOYlF3S212VExCQ2lvYVlDQklxK1JIVnVuNms1L2dEM1d3dVc3RWlmMTVaOWZrCjdCRmYzcXRqbUhmSkFYSElhRHBhUWRUZEhDTnQzRE4zVllrVHpKcmRWU0NibERuQkQ4Yk40NnNDZ1lFQTBydTEKT1IwSkp4Slpud1JRLzdnRzRYK2haUFJ6TDcxeXh4WkwrSDE4NEd3SXJ3bEs5S0ZjSGFiSno4OXJNZHA1WXJURApHdWxGY2N1cFM5STgxbmFoK3ZqUjlmWk5QUkVUR0liR1kzUFpPcEduN1Q2akpFN05CTnpsZEFiZzR2K3N6UXU0ClBuTk1ScW11cktVOG9nOVlIZVYycG03MGhDdzVRdTZjZGdsZnp3a0NnWUFIKzNZaDZGR0hzM0NXbmhPZ2RseEgKbW92dzRMZUN5cTRKR0VHK1h6N29Lc3d6Y3RydTJDV3Qvc2ozdUlSRGI0amNNOXJoNGU0dnQ5SXJUOGdhT2s3NwpSVlBFMGJyMzZkNWhPVlI2M0tMZE9iMkZIY0VzMkpLeFFUWFZzVTBXa3hYUXNyNVpiQUpSTlovaDN6NncrMFlkCjRjZlRFYjZaMTNjODZSMDJHZUVFdndLQmdCWGYvRkRnYmJuTGt0Z0o1NnFUM01yOXA3QkdHOHJoM0k5RUJrRFcKTGVkUjc1alQyeDhIdlBzcS9Cb0JTdnhTMUhUbGxMY3ZiZEVCTmlLendUTDEvNXlBeGJMRmpZRUFTNzRwQjJEOQpmcGd3MUlDeEZ0aEhBY3MyYnU4Ylk2N01vWkJyWGdYRmpDNXRvTDgxSzlVYXlLZlowUFkzNEZQMEQwR2VhVWxyCmNiR1pBb0dCQUtlUFZxa0pRM3YxeXY2NEtPQmdNSnhjaEIzZ0lUM3ExcG0wZ05nT1ZFK0F0VUdRS1hKZmFyNDAKa2RkTVc0c2p1b3JJZ01KVHBxZXhaSVNSNzVYeWY0Mk0vOWNLNUdETEoyRnlyVWhNRG9NRUhVNzBYajV6cUFEaApvMkQ3N2FibE53T3Nsc2FnSml5SUgweFR0VnpiMU5KTCtMK0h6SEc5QVBOSTBsRG5uYXhICi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==