Skip to content

Instantly share code, notes, and snippets.

@incfly
Created September 28, 2021 20:44
Show Gist options
  • Save incfly/53ad79e313274b5e457b07a17bed5b43 to your computer and use it in GitHub Desktop.
Save incfly/53ad79e313274b5e457b07a17bed5b43 to your computer and use it in GitHub Desktop.
openssl-verify-tetrate-docs.
cat ./server.json| jq -r '.dynamicActiveSecrets[0].secret.tlsCertificate.certificateChain.inlineBytes' | base64 --decode > output.pem
awk 'BEGIN {counter=0;} /BEGIN CERT/{if(counter==0)counter++} { print > "tt-" counter ".pem"}' < output.pem
# I am not good at AWK, in theory we just need to split the output to two parts, one the top one (workload cert), and the rest.
# that's below we concate all rest to a single ca file.
cat ./proxy-cert-2.pem ./proxy-cert-3.pem ./proxy-cert-4.pem >> ca-chain.pem
openssl verify -CAfile ./ca-chain.pem ./proxy-cert-1.pem
# output as below
./proxy-cert-1.pem: OK
{
"dynamicActiveSecrets": [
{
"name": "default",
"versionInfo": "0",
"lastUpdated": "2021-09-28T08:29:14.495Z",
"secret": {
"@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret",
"name": "default",
"tlsCertificate": {
"certificateChain": {
"inlineBytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVaakNDQWs2Z0F3SUJBZ0lSQVAwVlhaVlJzeE9uMW9VSmdHK0ZjS0F3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFT01Bd0dBMVVFQ2d3RlNYTjBhVzh4R0RBV0JnTlZCQU1NRDBsdWRHVnliV1ZrYVdGMFpTQkRRVEVSTUE4RwpBMVVFQnd3SVkyeDFjM1JsY2pFd0hoY05NakV3T1RJNE1EZ3lPVEUwV2hjTk1qRXdPVEk1TURneU9URTBXakFBCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBNUhXeDBtS3Z1Y1E5NGJlWXFiUW8Kd0I2bFR1YmhjdUZ0aEowaXFIcGgvNGEwcDNrWm1DMkozZkJncG1GL3RMVmdPUVJHUitYQ1dpUGpTMUlIQ091Two4a1dtcEo1aitKcExNUmxtZFhsb3Y1TktnZFJRQXRNUnd2MHdXRXowYjEzQXBlektLZ3dJOUNBYkZlRVJ4ekhkCnduT0hVaUIvclo2M2VJSVd1bzN4Mk4xSjJQanlzTWhBdk9pZGZVT2E1OWI5ZnVFNms3LzdOWmhaNmxUTXhZL3kKMndGUmFFQjZzUk1rckFuU2xkRFNHakhWT1k3bUNqbjdkWGdTUzZoWEFXSEc4Tm9mNE0xQkJRbkZtNUtvdGRDeQpjb3k3Snh1dVRBQ0UzOXNMTHBRZjdzVWNyd2hMYkVrMFJSeHlueUU0VjVKS2JML3JSVlJiNVdHNXcvZlpsK0pHCjZRSURBUUFCbzRHZE1JR2FNQTRHQTFVZER3RUIvd1FFQXdJRm9EQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0QKQVFZSUt3WUJCUVVIQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JRYmI2SytQL2d4Y1Y2RgpXYXJUNWZ1Mm96WVdCekE2QmdOVkhSRUJBZjhFTURBdWhpeHpjR2xtWm1VNkx5OWpiSFZ6ZEdWeUxteHZZMkZzCkwyNXpMMlJsWm1GMWJIUXZjMkV2WkdWbVlYVnNkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBcjdYUGRmUmYKQnBXa25QYjlwSjBrZXpvQTNzYVZKdnF4RDloRS9CK1FaSmdNOGNOa0VhTWJpbUdDL0NOekdmcktJczlOelBrTApKci9qVU1iRmpXdFkyVkNBT3JPZitOT3NObkVCakpKOGFTMzhXMldvSWxzdGNZMXhTUEIzbHhLNTJESkdodFlPCmI2QXpVMStzSFJPT3ZaTklGeTVFRW5KMTZpWWRrYmVXNGNIckdtZm1EYVBWYktZYTJ3WWZ4OUM1Mmo5M1FFTEEKT3VQSGJOQ1FrYlM3SzlkaVliSURuMmpYZEZlK1J6ckl4aVlHZUF5cFM5R09KczVXc3JRQXlpYUpVK0VKdTJSZwpEUzl3MHQxVVhUemVkODRzczErWkRHVWdwMzdjaUZObHFnemp0cVQ0QjNRdnVCNmlrZ0llY21CUmdjYy9kK3dqCktBYUt1b28xOUl3TUVRY1BHZkJTc3BuYzc0RHhSOHlURzdYSEdwSVNnd2swNHBzN3VTcUk3R1hUR2hHQlk0NFIKajhuaUlyTTJiWC9VeVVsUHlweCtFcVNEcEVlV09MWVNtR1BHNUFrekIxUVVYRmNyL0tma24wbDVvMGJoeHlwMAo4QThSaFM4MU51VDhyMC9ZL1JTNjVkMmpJK2NJVDNrUy9sc0k1Um1RK0dYUUZiYVo1QVVlZXU4UDZjYzRNcHdvCmVZN2FHeHE3U29UQlF2OUZ4S0hJU0FUV0l3M3UxY1VwemVBeXZjK0VyU04zaXhWMU1xbWhJVjVLQzFzbm04RjIKQmxKOHF5UmtZY1d6UXJ6NFYxVWMyckdMUjBxYzBLcWhUMmpTRzEzTHUxQUFjQmlWRTdiYVRKVWZxMnBLTG5COApNZDZLd3dpZXhpVHplSTNhSWZuM0x1YWxmV2krdGhrRWs1ST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJRlZqQ0NBejZnQXdJQkFnSVVCM1dkVnQzNk0rdTlmSEpzVmhWb1hueExiYjB3RFFZSktvWklodmNOQVFFTApCUUF3SWpFT01Bd0dBMVVFQ2d3RlNYTjBhVzh4RURBT0JnTlZCQU1NQjFKdmIzUWdRMEV3SGhjTk1qRXdPVEkxCk1EQXpOakV4V2hjTk1qTXdPVEkxTURBek5qRXhXakE5TVE0d0RBWURWUVFLREFWSmMzUnBiekVZTUJZR0ExVUUKQXd3UFNXNTBaWEp0WldScFlYUmxJRU5CTVJFd0R3WURWUVFIREFoamJIVnpkR1Z5TVRDQ0FpSXdEUVlKS29aSQpodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU1pejRoVVUwN09OR2M0MEVhcWRhVGJtOWdPalQvQ2hPRmlhCm9mbkRHdUZQUU11Q29VVnNxUzNINHdBWTJvSUVXMzdYNWRaZzkvTHArdHlUZE1FOGlaNnVYWnBWVDcyWlVWdjkKTnZnR1lJbjRUZTZQUndMVFJac3BZWWZSZzNBenRkLy8zZncwWXJuMlVERXlkaDhlTmE2dmVZTngwVzNNTEVVcwpyYVZubTAxWllQMDF4ekp6b0xxVUkvc2VDQlFITWNKRU45Q25QOG5LSUp6WXRVVk4xK1J6QzM4TWxKWUtrMU9rCmF1Y2hiVytZSVM4N0pIanAwVG4yVGxrUHlvUS9ORFN6bzVZY2MwM0RKR1YvSVZwZmc0U2dEUWlCV3Z6NnVoYWIKZXRycVBWRVRuMnova1JMcGZKamhnci9od3ZTY1RXa09TY1ozQVhYM21Hc0g2NzdPZUR3Ukp4MkdIWU02cGw1WQorTFVZTGhveWNaRkJSNzZvK2xPYWpMU1crdWdYWUZsZTJvcDB3R1RtOGtOL0p2TjVNVHlWRys4clMweVY3NndxCmo2ZlF6M1VnWkRtbGJlczQzVFc0Z3dvcHY0K2xVUHM0WFJmWmxXVGlhMjVpK1Z0NFFselQ0QjBLbFBNeW5kQ28KWmhZYVRQdUM4SVFGK0hmamVJWXRMV2p3bGhISkhQa2xOUGNWaWtSeGlSREZHRnVlMlFETk40T3dRL2oyalZkQgpVMGtQcDloVGlFendHMVd0WjJHdXo3MHgxbzVGelB2TUJLcFMvL2h4NHY0eVJSdVF5ZitFd0hPSlRnajZaeDZTCkx0Y3ZJUWl2TTlyVGdXUW1UWE9WOUp0WXE4Smtqb0NjZWFtWlAyajdxZTFNbXNiaXpuOHlnUmZhbDBxWGJvRkEKdTIySXBoQTdBZ01CQUFHamFUQm5NQjBHQTFVZERnUVdCQlFiYjZLK1AvZ3hjVjZGV2FyVDVmdTJvellXQnpBUwpCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIvd1FFQXdJQzVEQWlCZ05WSFJFRUd6QVpnaGRwCmMzUnBiMlF1YVhOMGFXOHRjM2x6ZEdWdExuTjJZekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBWVZ0Wk5vN00KUGRzWlIybElyTVhuRERyTkZwYlJIdW5MVmNSWTJHVFYyTUhEMmRCRlBzN0kzdmFoaXAwZHlyTkhCUFJ1RVVLMAp6TzJCTlAvSm5vVHpqTnBQMDlqSHk5SmFBNGxpZFFsSThVREh1YzV5bEhveitGK0dxMlpLZ21qMTg3M0YrL3NLCk5lUm5FcDhYWjVySmVDenNwVGQvQWRqQTM5ckQ3MklwZ2JCbkN5VHplSlJOc3lFcW4rT21UUkRuUUtOaEpjN2wKWFpTNjA2ZUtCMG96WlF2QVRkbEErZWVvU24vVFBIcUFSQjdDeDNHVjJFa2xUKzJra1VoYXZnQVhaZWI2eWhhRgpRN2lqNS9FM3FqcjhpQ0pGZVVYOXkrclB6OUNLcGw0RHpGMEJQSjVrTEtOOVVMWHZFaTVyWWFpWEVJNTdSVHlGCmVYYkJWbkFTcFBWQldtSWgyM291U3FSTU9iaEpTRmpjTFV4cUN3dklzYU1uMHEyM0tpQzRiRmdOeDIxQUFFVWIKamtaS2tOUXBKQjdVK3J1OHhtQTFLck85a1Rlc2ZYUFQvSjJpZnBBajY0OG42THFmc0Y5QzFxK0s3MmNEbytVYwoyWjBUZTd5cXVvcHU0WmtieVZEbFR2ZHJSb1JUTWJEZlI0SU9pdzlUNUNtZ2piQmk5cERMUDZnZXRtcXRQMjMvCjB1c2theThTNVJvL1pJc2tremxSNW1pcGFkclAwQ0VsOUl3bDdvQjJ5QmY5T2gyK3JPZlpaTlBQcUpsQllCM00Kb3B0cm0vMUl4ODIwaGFwTGx5MEtUNWI2dThHSGJob0pvZ2NKQXRoNE1BeHlVNjBSYks5WVdYcnZlakJua3hMQQpqeFRXb2J2UURqQm85SGRQRjN0UzA0SDdtcDg1UGhvTFJhWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJRkZEQ0NBdnlnQXdJQkFnSVVhNVpnYTJSb2tpQVk2TVVUQy9kQWlnNWx2NjB3RFFZSktvWklodmNOQVFFTApCUUF3SWpFT01Bd0dBMVVFQ2d3RlNYTjBhVzh4RURBT0JnTlZCQU1NQjFKdmIzUWdRMEV3SGhjTk1qRXdPVEkxCk1EQXpOVFUyV2hjTk16RXdPVEl6TURBek5UVTJXakFpTVE0d0RBWURWUVFLREFWSmMzUnBiekVRTUE0R0ExVUUKQXd3SFVtOXZkQ0JEUVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTmU3WjFSQQo0U2lhTmlFaFBoNzNmOFR6ZHhVUEJvUmtxUFNEWkVQM0xGVk1JWVVuOWdycEZtRkNzMUppYTJUUmFSZjFKQmZLCkpEMGdVdFJEQWZLMlh1OXdMd2RJMElqbCtNbTZ2ZnEzamNJWmRsN0k4cnRtaWdQUFp0bzZqR0ZKM290ZVpoTS8KS0RVZURoUkRpUm9ydmtyUW50TmcxaER3Y3V1ekpTZFBsbzJ0TjVYcDFoTklUWXV3cHNZZWl2ayswc0pvbkJnQQpQS0wrbmNheVptQlBIV0FxZ3psMGVubVBvZzZ4Zi9ac3BEdG9TTU1vbkRGZTlEb1hWdUdPTzVSMXZDdzFCTU1vCmw0ZUhTcW80ajR2M1RlWlIrLzdhUTZsZm9FT3BncWVVUnhtZEtJanpVRHFqQnh6MDhCMDNPS3lRNUQrNnpFckYKa3h5Skp4a29qendRSTI0VTJJalBRcTJHTlBQbEZlT2JLalYxNm5PZm5YdW1zK3hjOHVsY0V3MHM1bnFkWXdQQgo2ZVYrZkQra082UCtWQ1pMd2VteGhMMW4rT295cmNFUUxWdStBdXMzMlRiTWJQWURieUYxN09kdC9lUk14c2l6CjVBMjRXdml1Um41UStQUHdLSWdXVEZqOEd4dHlBTUZCbjgvYXAyN1hveUloTkI0THo0MDUyT29WRzZ4b2NDNTQKVjRTZllEVUNyV0xXbUxqR3RXcGRwV3RPSW81WEF6TnpxQU5ZSTRNa3REM2Y2TUJoREk4NVR0a1VldytTNWE5YwpFakFsTWJnWjJ5d2VrVzFQamR3UHh0VTI0UWZHYzlIbHVrOUo2a3JrL2swMWtJS0Y0dW1UZG01ZFRTeFRUWVRyCnJxM3M4bWxKQS9PYWZQVkszbkVNRXRNaUlVY2dTREFHQWVKWkFnTUJBQUdqUWpCQU1CMEdBMVVkRGdRV0JCUUgKRlgyL1A1MXpyZmFBeVhFVjQxRGk1bm9jVmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUE0R0ExVWREd0VCL3dRRQpBd0lDNURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUlJQ2x0VVFSZW9uQnVhQTdmNFduTDVmN1RWYzNFM1lICkdpVXIzOUpDMm5WZmxMaGM5Z1AxTFJCaHBCRWRNVmNXV044MTI0ZjNnOUJJK2oyUTdKRGQ4VitJMXdGTWFraksKQ3NyWXZRanZsV2gxUDZyMjROZ2lKVzhzWGlZWXV4WkE5NDRya2dwb3l0SHpoN3NJRWRrQ3JkRDluTUdVOG5RTgpqajNMRTdWMUpSVVQwaHloUEhDNzF0VVB1ZGM2aVdNeWxZN0pITHlhYzRwMmF5WU1HRU9neXlEdEY3RUx1aWd0Ck1uTFMxdlM2ZEZpcUsza0xXWGdJRjNJWUtqbFNhdEpGTURYQ3V1SmJpQ2UvUjgrSG9FU2dnNnN3YVdzeWI5TWQKT3RUbUlHT1IvMjM5TGxxbldYQTNiRk1lSnJBL0ZUbGhEdmRMc0YwUEFhUUVZRE1qUkFkQlU2NmhOMVBVb3lwUwpqanRwSzNjZDVRSDd6ZnJOcEZydU82VTRCRmpYcWZiNUFXWEtVVEF2bkVCeVZOZlcxK1lPOWVwOFRoUklQdk1SCjRoWHh2cnZVNjZYQWViQmJKVlBtSHNhZlBwb2JBSHNtNzIxWnpRdC9tR1lhQklNZSsrMG1KcFhzcEk4Zk1GNGoKMGRVZHQycFFpTFIwTVhaRGkrcVBMcWduK1pHMFNFajEyZFpBNVlyTzN3RUdWMUVEb1diRWNFSXFuaFMxTUZ1ZgphUDZEcnVhRG5xRkVNZGErK2lYZGVLT0ZOZzZNOGZMelFSUzJTS0p4MG1NQWcrSFExcThpVy9GR1ltVXpoTnBDCkdSQUlNRytZY3hFcGNsa1RXazVmWHhvcHNobDhRN3hzV3BTNzY0OWZ3M0gzKzh0anc1NzdGU0t5R2VOYlpucGsKbXUweE4vbUxCQ2c9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZGRENDQXZ5Z0F3SUJBZ0lVYTVaZ2EyUm9raUFZNk1VVEMvZEFpZzVsdjYwd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0lqRU9NQXdHQTFVRUNnd0ZTWE4wYVc4eEVEQU9CZ05WQkFNTUIxSnZiM1FnUTBFd0hoY05NakV3T1RJMQpNREF6TlRVMldoY05NekV3T1RJek1EQXpOVFUyV2pBaU1RNHdEQVlEVlFRS0RBVkpjM1JwYnpFUU1BNEdBMVVFCkF3d0hVbTl2ZENCRFFUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5lN1oxUkEKNFNpYU5pRWhQaDczZjhUemR4VVBCb1JrcVBTRFpFUDNMRlZNSVlVbjlncnBGbUZDczFKaWEyVFJhUmYxSkJmSwpKRDBnVXRSREFmSzJYdTl3THdkSTBJamwrTW02dmZxM2pjSVpkbDdJOHJ0bWlnUFBadG82akdGSjNvdGVaaE0vCktEVWVEaFJEaVJvcnZrclFudE5nMWhEd2N1dXpKU2RQbG8ydE41WHAxaE5JVFl1d3BzWWVpdmsrMHNKb25CZ0EKUEtMK25jYXlabUJQSFdBcWd6bDBlbm1Qb2c2eGYvWnNwRHRvU01Nb25ERmU5RG9YVnVHT081UjF2Q3cxQk1NbwpsNGVIU3FvNGo0djNUZVpSKy83YVE2bGZvRU9wZ3FlVVJ4bWRLSWp6VURxakJ4ejA4QjAzT0t5UTVEKzZ6RXJGCmt4eUpKeGtvanp3UUkyNFUySWpQUXEyR05QUGxGZU9iS2pWMTZuT2ZuWHVtcyt4Yzh1bGNFdzBzNW5xZFl3UEIKNmVWK2ZEK2tPNlArVkNaTHdlbXhoTDFuK09veXJjRVFMVnUrQXVzMzJUYk1iUFlEYnlGMTdPZHQvZVJNeHNpego1QTI0V3ZpdVJuNVErUFB3S0lnV1RGajhHeHR5QU1GQm44L2FwMjdYb3lJaE5CNEx6NDA1Mk9vVkc2eG9jQzU0ClY0U2ZZRFVDcldMV21Makd0V3BkcFd0T0lvNVhBek56cUFOWUk0TWt0RDNmNk1CaERJODVUdGtVZXcrUzVhOWMKRWpBbE1iZ1oyeXdla1cxUGpkd1B4dFUyNFFmR2M5SGx1azlKNmtyay9rMDFrSUtGNHVtVGRtNWRUU3hUVFlUcgpycTNzOG1sSkEvT2FmUFZLM25FTUV0TWlJVWNnU0RBR0FlSlpBZ01CQUFHalFqQkFNQjBHQTFVZERnUVdCQlFICkZYMi9QNTF6cmZhQXlYRVY0MURpNW5vY1ZqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUUKQXdJQzVEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFJSUNsdFVRUmVvbkJ1YUE3ZjRXbkw1ZjdUVmMzRTNZSApHaVVyMzlKQzJuVmZsTGhjOWdQMUxSQmhwQkVkTVZjV1dOODEyNGYzZzlCSStqMlE3SkRkOFYrSTF3Rk1ha2pLCkNzcll2UWp2bFdoMVA2cjI0TmdpSlc4c1hpWVl1eFpBOTQ0cmtncG95dEh6aDdzSUVka0NyZEQ5bk1HVThuUU4KamozTEU3VjFKUlVUMGh5aFBIQzcxdFVQdWRjNmlXTXlsWTdKSEx5YWM0cDJheVlNR0VPZ3l5RHRGN0VMdWlndApNbkxTMXZTNmRGaXFLM2tMV1hnSUYzSVlLamxTYXRKRk1EWEN1dUpiaUNlL1I4K0hvRVNnZzZzd2FXc3liOU1kCk90VG1JR09SLzIzOUxscW5XWEEzYkZNZUpyQS9GVGxoRHZkTHNGMFBBYVFFWURNalJBZEJVNjZoTjFQVW95cFMKamp0cEszY2Q1UUg3emZyTnBGcnVPNlU0QkZqWHFmYjVBV1hLVVRBdm5FQnlWTmZXMStZTzllcDhUaFJJUHZNUgo0aFh4dnJ2VTY2WEFlYkJiSlZQbUhzYWZQcG9iQUhzbTcyMVp6UXQvbUdZYUJJTWUrKzBtSnBYc3BJOGZNRjRqCjBkVWR0MnBRaUxSME1YWkRpK3FQTHFnbitaRzBTRWoxMmRaQTVZck8zd0VHVjFFRG9XYkVjRUlxbmhTMU1GdWYKYVA2RHJ1YURucUZFTWRhKytpWGRlS09GTmc2TThmTHpRUlMyU0tKeDBtTUFnK0hRMXE4aVcvRkdZbVV6aE5wQwpHUkFJTUcrWWN4RXBjbGtUV2s1Zlh4b3BzaGw4UTd4c1dwUzc2NDlmdzNIMys4dGp3NTc3RlNLeUdlTmJabnBrCm11MHhOL21MQkNnPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
},
"privateKey": {
"inlineBytes": "W3JlZGFjdGVkXQ=="
}
}
}
},
{
"name": "ROOTCA",
"versionInfo": "0",
"lastUpdated": "2021-09-25T20:29:14.558Z",
"secret": {
"@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret",
"name": "ROOTCA",
"validationContext": {
"trustedCa": {
"inlineBytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZGRENDQXZ5Z0F3SUJBZ0lVYTVaZ2EyUm9raUFZNk1VVEMvZEFpZzVsdjYwd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0lqRU9NQXdHQTFVRUNnd0ZTWE4wYVc4eEVEQU9CZ05WQkFNTUIxSnZiM1FnUTBFd0hoY05NakV3T1RJMQpNREF6TlRVMldoY05NekV3T1RJek1EQXpOVFUyV2pBaU1RNHdEQVlEVlFRS0RBVkpjM1JwYnpFUU1BNEdBMVVFCkF3d0hVbTl2ZENCRFFUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5lN1oxUkEKNFNpYU5pRWhQaDczZjhUemR4VVBCb1JrcVBTRFpFUDNMRlZNSVlVbjlncnBGbUZDczFKaWEyVFJhUmYxSkJmSwpKRDBnVXRSREFmSzJYdTl3THdkSTBJamwrTW02dmZxM2pjSVpkbDdJOHJ0bWlnUFBadG82akdGSjNvdGVaaE0vCktEVWVEaFJEaVJvcnZrclFudE5nMWhEd2N1dXpKU2RQbG8ydE41WHAxaE5JVFl1d3BzWWVpdmsrMHNKb25CZ0EKUEtMK25jYXlabUJQSFdBcWd6bDBlbm1Qb2c2eGYvWnNwRHRvU01Nb25ERmU5RG9YVnVHT081UjF2Q3cxQk1NbwpsNGVIU3FvNGo0djNUZVpSKy83YVE2bGZvRU9wZ3FlVVJ4bWRLSWp6VURxakJ4ejA4QjAzT0t5UTVEKzZ6RXJGCmt4eUpKeGtvanp3UUkyNFUySWpQUXEyR05QUGxGZU9iS2pWMTZuT2ZuWHVtcyt4Yzh1bGNFdzBzNW5xZFl3UEIKNmVWK2ZEK2tPNlArVkNaTHdlbXhoTDFuK09veXJjRVFMVnUrQXVzMzJUYk1iUFlEYnlGMTdPZHQvZVJNeHNpego1QTI0V3ZpdVJuNVErUFB3S0lnV1RGajhHeHR5QU1GQm44L2FwMjdYb3lJaE5CNEx6NDA1Mk9vVkc2eG9jQzU0ClY0U2ZZRFVDcldMV21Makd0V3BkcFd0T0lvNVhBek56cUFOWUk0TWt0RDNmNk1CaERJODVUdGtVZXcrUzVhOWMKRWpBbE1iZ1oyeXdla1cxUGpkd1B4dFUyNFFmR2M5SGx1azlKNmtyay9rMDFrSUtGNHVtVGRtNWRUU3hUVFlUcgpycTNzOG1sSkEvT2FmUFZLM25FTUV0TWlJVWNnU0RBR0FlSlpBZ01CQUFHalFqQkFNQjBHQTFVZERnUVdCQlFICkZYMi9QNTF6cmZhQXlYRVY0MURpNW5vY1ZqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUUKQXdJQzVEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFJSUNsdFVRUmVvbkJ1YUE3ZjRXbkw1ZjdUVmMzRTNZSApHaVVyMzlKQzJuVmZsTGhjOWdQMUxSQmhwQkVkTVZjV1dOODEyNGYzZzlCSStqMlE3SkRkOFYrSTF3Rk1ha2pLCkNzcll2UWp2bFdoMVA2cjI0TmdpSlc4c1hpWVl1eFpBOTQ0cmtncG95dEh6aDdzSUVka0NyZEQ5bk1HVThuUU4KamozTEU3VjFKUlVUMGh5aFBIQzcxdFVQdWRjNmlXTXlsWTdKSEx5YWM0cDJheVlNR0VPZ3l5RHRGN0VMdWlndApNbkxTMXZTNmRGaXFLM2tMV1hnSUYzSVlLamxTYXRKRk1EWEN1dUpiaUNlL1I4K0hvRVNnZzZzd2FXc3liOU1kCk90VG1JR09SLzIzOUxscW5XWEEzYkZNZUpyQS9GVGxoRHZkTHNGMFBBYVFFWURNalJBZEJVNjZoTjFQVW95cFMKamp0cEszY2Q1UUg3emZyTnBGcnVPNlU0QkZqWHFmYjVBV1hLVVRBdm5FQnlWTmZXMStZTzllcDhUaFJJUHZNUgo0aFh4dnJ2VTY2WEFlYkJiSlZQbUhzYWZQcG9iQUhzbTcyMVp6UXQvbUdZYUJJTWUrKzBtSnBYc3BJOGZNRjRqCjBkVWR0MnBRaUxSME1YWkRpK3FQTHFnbitaRzBTRWoxMmRaQTVZck8zd0VHVjFFRG9XYkVjRUlxbmhTMU1GdWYKYVA2RHJ1YURucUZFTWRhKytpWGRlS09GTmc2TThmTHpRUlMyU0tKeDBtTUFnK0hRMXE4aVcvRkdZbVV6aE5wQwpHUkFJTUcrWWN4RXBjbGtUV2s1Zlh4b3BzaGw4UTd4c1dwUzc2NDlmdzNIMys4dGp3NTc3RlNLeUdlTmJabnBrCm11MHhOL21MQkNnPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
}
}
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment