From def05b9af345adcf00b0ee51b7827722236caa14 Mon Sep 17 00:00:00 2001 From: LeeW Date: Wed, 12 Feb 2025 16:09:35 +0100 Subject: [PATCH] move to branch ADP-216_sops_automation --- bin/update_sops.sh | 171 ------------ example/.sops.yaml | 69 ----- example/cmd_sops.sh | 20 -- example/mock_secrets.yaml | 548 -------------------------------------- 4 files changed, 808 deletions(-) delete mode 100755 bin/update_sops.sh delete mode 100644 example/.sops.yaml delete mode 100755 example/cmd_sops.sh delete mode 100644 example/mock_secrets.yaml diff --git a/bin/update_sops.sh b/bin/update_sops.sh deleted file mode 100755 index 1885100..0000000 --- a/bin/update_sops.sh +++ /dev/null @@ -1,171 +0,0 @@ -#/usr/bin/env bash -# Purpose: manage .sops.yaml based on gpg keys in the same dir _and_ verify correct configuration -set -euo pipefail - -# "anchor" for actions relevant to this script -repo_root="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)" -# OPTIONS: ARGPARSING and VALIDATION -# assume location of script as running directly from repo with keys (instead of as a standalone packaged tool) -keyfiles_dir="${repo_root}" -# assume location of secrets config file in pwd -sops_config_dir="${PWD}" -# path to role definitions -roles_def_dir="${repo_root}/roles" -# optional: -opt_list_roles=0 -# optional: specify "roles" -roles_list=() -# optional: secrets files to be updated -secrets_file_list=() - -while (( $# >= 1 ));do - cur="${1}"; - case $cur in - # ARGS: print this help - -h|--help) echo "# ARGUMENTS:"; grep -A 1 '# ARGS:' "${BASH_SOURCE[0]}"; exit 0 ;; - # ARGS: dir containing gpg keyfiles - -k|--key|--keyfiles) keyfiles_dir="${2}"; shift ;; - # ARGS: dir containing .sops.yaml (sops config file) - -c|--config_dir) sops_config_dir="${2}"; shift ;; - # ARGS: [optional] show list of roles and exit - -lr|--list_roles) opt_list_roles=1 ;; - # ARGS: [optional] [list] specify "roles" which correspond to e.g. job roles, projects, etc - -r|--role) roles_list+=( "${2}" ); shift ;; - # ARGS: [optional] [list] specify files containing sops-encrypted secrets - -s|--secrets_file|-f|--file) secrets_file_list+=( "${2}" ); shift ;; - # ARGS: [optional] [list] specify files containing sops-encrypted secrets - *) secrets_file_list+=( "${cur}" ) - esac - shift; -done - -# Resolve Parameters -# ... i.e. combine,override,etc options which interact -if [[ "${#roles_list[@]}" -eq 1 ]]; then - # simply change keyfiles_dir to the "roles" dir - keyfiles_dir="${roles_def_dir}/${roles_list[0]}" -elif [[ "${#roles_list[@]}" -gt 1 ]]; then - >&2 echo "# ERROR: only specify one role" - exit 1 -fi - -# VALIDATE INPUTS -keyfiles_dir="$(realpath "${keyfiles_dir}")" -test -d "${keyfiles_dir}" || (echo "E: specify dir containing keyfiles; invalid dir: '${keyfiles_dir}'" && exit 1) -sops_config_dir="$(realpath "${sops_config_dir}")" -test -d "${sops_config_dir}" || (echo "E: specify dir containing .sops.yaml, invalid dir: '${sops_config_dir}'" && exit 1) -sops_config="${sops_config_dir}/.sops.yaml" -# create it! # test -e "${sops_config}" || (echo "E: could not locate .sops.yaml, tried ${sops_config}" && exit 1) -if [[ "${#secrets_file_list[@]}" != "0" ]]; then - for secrets_file in "${secrets_file_list[@]}"; do - test -e "${secrets_file}" || (echo "E: could not locate file with secrets, tried: ${secrets_file}" && exit 1) - done -fi -# /VALIDATE INPUTS -# /OPTIONS: ARGPARSING and VALIDATION - -function fn_extract_fpr(){ - gpgkeyfile=$1;shift; - # fingerprint - # caveat: restrict to netgo.de email, use-case: - # uid ... <...@mehrwerk.net> - # uid ... <...@netgo.de> - # fancy gpg src: https://unix.stackexchange.com/a/731872 - fpr="$(gpg --show-keys --list-options show-only-fpr-mbox "${gpgkeyfile}" | grep '@netgo.de' | awk "{print \$1}")" - echo "${fpr}" -} - -function fn_extract_uid(){ - gpgkeyfile=$1;shift; - # user id - # caveat: restrict to netgo.de email, use-case: - # uid ... <...@mehrwerk.net> - # uid ... <...@netgo.de> - # fancy gpg src: https://unix.stackexchange.com/a/731872 - uid="$(gpg --show-keys --with-colons "${gpgkeyfile}" | awk -F':' '$1=="uid" {print $10}' | grep '@netgo.de')" - echo "${uid}" -} - -function fn_generate_sops_config(){ - # sops.yaml doc: https://github.com/getsops/sops?tab=readme-ov-file#using-sops-yaml-conf-to-select-kms-pgp-and-age-for-new-files - # CAVEAT: dirty hacks, as DRY as feasible within bash - - # hack: 2D list workaround, i.e. difficult to have list-of-lists - fpr_list=() - uid_list=() - type_list=() - for gpgkeyfile in *automation*gpg.pub; do - type_list+=( "autom" ) - fpr_list+=( "$(fn_extract_fpr "${gpgkeyfile}")" ) - uid_list+=( "$(fn_extract_uid "${gpgkeyfile}")" ) - done - for gpgkeyfile in $(ls *gpg.pub | grep -v automation); do - type_list+=( "human" ) - fpr_list+=( "$(fn_extract_fpr "${gpgkeyfile}")" ) - uid_list+=( "$(fn_extract_uid "${gpgkeyfile}")" ) - done - - - # header - echo "# Fingerprint | User Type | User ID" - # entries/rows - for ind in "${!fpr_list[@]}"; do - printf "# %s | %s | %s\n" \ - "${fpr_list[${ind}]}" \ - "${type_list[${ind}]}" \ - "${uid_list[${ind}]}" - done - echo "# keys in https://git.dev-at.de/smardigo-hetzner/communication-keys" - - cat <- -EOM - - # all but last line get comma - ind_2nd_last=$((${#fpr_list[@]} - 1)) - for fpr in ${fpr_list[@]:0:${ind_2nd_last}}; do - echo " ${fpr}," - done - # last line no comma - # echo " ${fpr_list[-1]}," # requires bash v4.1 - echo " ${fpr_list[${ind_2nd_last}]}" -} - -# BEGIN -if [[ "${opt_list_roles}" -eq 1 ]]; then - # list available roles and exit - pushd "${roles_def_dir}" > /dev/null 2>&1 - >&2 echo "# INFO: listing roles" - ls -1d * - exit 0 - popd > /dev/null 2>&1 -fi - -# UPDATE SOPS CONFIG -# TODO: remove the 'pushd;popd' workaround and make the functions aware of the dir being read -pushd "${keyfiles_dir}" > /dev/null 2>&1 -(fn_generate_sops_config) > "${sops_config}" -popd > /dev/null 2>&1 - -# VERIFY -fn_sops_updatekeys_and_verify(){ - sops_enc_file="${1}";shift; - # update keys in secrets file - test -e "${sops_enc_file}" || exit 1 - - # "update the keys of SOPS files using the config file" - sops updatekeys "${sops_enc_file}" - - # verify: dump secrets, GPG_TTY src: https://www.varokas.com/secrets-in-code-with-mozilla-sops/ - GPG_TTY=$(tty) sops -d "${sops_enc_file}" -} -if [[ "${#secrets_file_list[@]}" != "0" ]]; then - for secrets_file in "${secrets_file_list[@]}"; do - fn_sops_updatekeys_and_verify "${secrets_file}" - done - echo "# SUCESS: all users with keys in this dir should have functional keys" -else - echo "# WARN: no secrets file passed in, make sure to call 'sops updatekeys' on secrets files" -fi diff --git a/example/.sops.yaml b/example/.sops.yaml deleted file mode 100644 index 65f87be..0000000 --- a/example/.sops.yaml +++ /dev/null @@ -1,69 +0,0 @@ -# PURPOSE: BLUEPRINT for .sops.yaml config -# CAVEAT: DO NOT USE THIS FILE AS-IS in another project; copy it and remove the unauthorised users -# Fingerprint | User Type | User ID -# 533A89DD49FBCDA2BF014A936C962DD77704154A | autom | build-infra -# EFBBBB131CF1D863005C18868C8C09CA950B1DFF | autom | smardigo automation DEMOMPMX (smardigo automation DEMOMPMX) -# A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 | autom | smardigo automation DEV (smardigo automation DEV) -# C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) -# 0E8955A79FF4687A3ACF78E50B5E444C75867E58 | autom | smardigo automation DEVNSO (smardigo automation DEVNSO) -# 98235A419EA3586BFF4E3FC692D4A5202A0D9519 | autom | poc-workload01 (poc-workload01 gpg key for sops) -# E5B4FE1E0209DFFE320D2A2E47087747D89B72EC | autom | smardigo automation PRODNSO (smardigo automation PRODNSO) -# 890B2EB48F343D4C6DB9DA0916826F30002D3C1D | autom | smardigo automation QA (smardigo automation QA) -# 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36 | autom | smardigo automation QANSO (smardigo automation QANSO) -# 42AA7F6BF795490C1A522C730ED842BE1216E0C1 | autom | rancher-poc -# B4BAA59056DC362809388F3F2119881095EA7DED | autom | sot production (sot production gpg key) -# DF977A1F65999F4CDD721A27516F64D5932B8AD9 | autom | sot integration (sot integration) -# 5623CCAD4242CC3E0225A62986AF09C173781578 | autom | smardigo automation SSPDEV -# 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 | human | Annika Biermann -# 17B8FDF68AC123EB666934B17D0DF6EC048A5D77 | human | Claus Paetow (Firmenadresse) -# 03ADBCD31737EB474A4BD235CE615FAF927A2054 | human | Esther Fuhrmann (GPG Key for SOPS) -# 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487 | human | Hans-Peter Wissenbach -# 9E561083EACDE14694C73A323A2F6C1D153D753F | human | Frederik Marticke -# 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E | human | Hoan To (Hoan To GPG Key) -# BA6328948D50175F196AAB5111F324603D12DD56 | human | Jan Jantzen -# B643A5D780A01F24E95AA100DE6F8E2C149C3748 | human | johannes.wicovsky -# C19A7D807525CE24443CA9A49372E896B41FE700 | human | Kevin Bauske -# 0DB51A7E90AC6418B7DB83724D38970874850C33 | human | Kleanthis Damianidis -# BF3D5CEA36DB58AAE1063D0BB341078652D87924 | human | Lee Watson (dies ist mein schluessel, es gibt viele ähnliche, aber diese ist meins) -# 1FBAEBCDF9336AD5E7CAD9369158CA503C2CEA15 | human | Matthias Friedrich -# 73C2C9954D1BC94DC6682525D2FA233B52AEC75C | human | Michael Haehnel (NSO DevOps) -# 13E169CF5C35EF164628764AAA2EECBDE0B38CF7 | human | Philipp Eichhorn -# 13D7771BDE5241293F3EDA442AB3335ECC93DDDC | human | Sebastian Schröder -# BE3FB94982C2DE95B1EDD388A96613A6B1DB15B5 | human | Sven Ketelsen -# 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A | human | Thomas Steube -# 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 | human | Tobias Stroehl -# keys in https://git.dev-at.de/smardigo-hetzner/communication-keys -creation_rules: - # list of keys for encryption in stage - - pgp: >- - 533A89DD49FBCDA2BF014A936C962DD77704154A, - EFBBBB131CF1D863005C18868C8C09CA950B1DFF, - A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439, - C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8, - 0E8955A79FF4687A3ACF78E50B5E444C75867E58, - 98235A419EA3586BFF4E3FC692D4A5202A0D9519, - E5B4FE1E0209DFFE320D2A2E47087747D89B72EC, - 890B2EB48F343D4C6DB9DA0916826F30002D3C1D, - 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36, - 42AA7F6BF795490C1A522C730ED842BE1216E0C1, - B4BAA59056DC362809388F3F2119881095EA7DED, - DF977A1F65999F4CDD721A27516F64D5932B8AD9, - 5623CCAD4242CC3E0225A62986AF09C173781578, - 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485, - 17B8FDF68AC123EB666934B17D0DF6EC048A5D77, - 03ADBCD31737EB474A4BD235CE615FAF927A2054, - 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487, - 9E561083EACDE14694C73A323A2F6C1D153D753F, - 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E, - BA6328948D50175F196AAB5111F324603D12DD56, - B643A5D780A01F24E95AA100DE6F8E2C149C3748, - C19A7D807525CE24443CA9A49372E896B41FE700, - 0DB51A7E90AC6418B7DB83724D38970874850C33, - BF3D5CEA36DB58AAE1063D0BB341078652D87924, - 1FBAEBCDF9336AD5E7CAD9369158CA503C2CEA15, - 73C2C9954D1BC94DC6682525D2FA233B52AEC75C, - 13E169CF5C35EF164628764AAA2EECBDE0B38CF7, - 13D7771BDE5241293F3EDA442AB3335ECC93DDDC, - BE3FB94982C2DE95B1EDD388A96613A6B1DB15B5, - 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A, - 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 diff --git a/example/cmd_sops.sh b/example/cmd_sops.sh deleted file mode 100755 index 09aee1d..0000000 --- a/example/cmd_sops.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -set -ueo pipefail -cd "$(dirname "${BASH_SOURCE[0]}")" - -keys_dir="$(dirname "${BASH_SOURCE[0]}")/.." -# deliberate just "dot" for current dir -sops_cfg_dir=. -secrets_file="mock_secrets.yaml" - -# prerequisite: for verification of sops config, idempotent create file with a mock secret, src: https://bash-org-archive.com/?244321 -test -e "${secrets_file}" || (yq -n '.demo.credentials.secret = "hunter2"' > "${secrets_file}" && sops -e -i "${secrets_file}" ) - -set -x -# SAMPLE COMMANDS - manually uncomment to try out -# minimal operation: update .sops.yaml, update keys in encrypted file -../bin/update_sops.sh "${secrets_file}" -# Full Args: specify path to each, also for secrets, mix specified and positional params -# ../bin/update_sops.sh -k "${keys_dir}" -c "${sops_cfg_dir}" -s "${secrets_file}" "${secrets_file}" -# TEST: induce error: invalid file -# ../bin/update_sops.sh "${secrets_file}" -s non_existing_secrets.yaml diff --git a/example/mock_secrets.yaml b/example/mock_secrets.yaml deleted file mode 100644 index ee59eea..0000000 --- a/example/mock_secrets.yaml +++ /dev/null @@ -1,548 +0,0 @@ -demo: - credentials: - secret: ENC[AES256_GCM,data:m3uKjs2CMg==,iv:REr+W6QAcMXjC6kt4+U9W680N7NmOaPCbf5ZsL5v+GU=,tag:JTcpjBULW1tb6wYyQO1cWw==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2025-01-30T16:32:18Z" - mac: ENC[AES256_GCM,data:DNsgx0KhSbgbCqqME9MUJxHQSt4vVc/C2xfkckwjhK5nb4dW1Bz3Y5wAzPlOkPPKp9YB70/q2spw8MKSiJgeujfqnogPtZ409lbi3/RyF/7WxnJM0KFxdrsQwxfOJdYjfXnXicW9CD6xYPn1+LUVVqnRDBXt4MIzc5AMqaXy8pQ=,iv:dhVa4Dig7E3fld2Y3upjw3/P87bV6/C2oGDBgqQYRVY=,tag:RA9qsnRNMnznkNBDkjssIw==,type:str] - pgp: - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA49EwzBHBfyRAQv/eaN/EciCUfv/8EoTFpGJVlT6TCMkBkIuzO1+w3gBmeRA - phFFw4P5vm9EiveBQOvfDKk4Lhueb54CBZoy9ggeVCtQZGqCey8Er2A5KpKSdePB - 1RjUXOsv19usZMw/GVEVG3FoS9G4H6fm5/fP2gmQFRFpNLeBlKvTuMf3PoQ52Djc - e3/HXhXWZlteUpJTf01VLNFoGtRs2iqFqYvxrApvJlxcAeAU5IkCrsLSVIFpBmqM - oF86VoeZgSf1ma0AhhAKmq4t8JUnceLXhFTVWnXzS3jVAyH0OrSabOdA/8OODfkD - Ium5+OWXIt4GCqpOYXjxKBnWvju9PSV/jnszmO1YzE8y5612GZG5Y3iC3nM3gMbW - a1BOfJL6LG7rS+zKZgbsjYSV4NCG/c0n+WklnVE/l0bj0IljqAJSxJCY02zoH6Sf - D1xzgRnDzqzwdbQAg5Id8xLAxDpnzB5cqo8nJibs8L2C3cPq4OM+PGqlSJ4in9li - 3i0qTGkHwoFrNjN0pQlN0l4BfxA436xpi1Opse4L5AYKbLYqfvgJLWpIjvzW4ml3 - xTNeJJHVpLIQmyY8nxa5bZBLQdfDVr/QEfTeneOugfKvLXNJyuRnUxexNJ5MgfYq - uaeXKyjzLmYhiDlc6HgM - =eJFH - -----END PGP MESSAGE----- - fp: 533A89DD49FBCDA2BF014A936C962DD77704154A - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DK0+AyNumsXsSAQdA7dQjf3wkUf3cJx2Oww7GlWPoXmclG3ib3CqDC1pQd3kw - N1T3A2+z0ClaNyhoEF9NJgUSle1Ru+qN6r7oKdg9/+d1DqHfNFKKETXMw+O0QPey - 0l4BC/vV3/f90BmqGRHY5BPzPTcK9d7jDUqzKnZ7F49HqrytIZZqnMa8P+Ok6mxg - KEZheeG4v+woSkMQi+OR+MrPR4o/vHcKNf1d9oYK3D++cnZuSbyqR7iFuyBGex24 - =Ztwu - -----END PGP MESSAGE----- - fp: EFBBBB131CF1D863005C18868C8C09CA950B1DFF - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA/3nDyRfgQqhARAAsULKhDya8Ep22iGBBV18Ly+0xrfC5T+Ag+sIgHgqF7xn - Rw7Y/hS1yHVNEYi6iknSWkUkKSXyOBmmgkTGyOoGuxI/RmW8rNNt/QEnVEzwVzNC - 3nxOMJLY6q2+99lTK4tzlZI0/7sh4MtqkKelGSlDQiRs/IvcNSwgMxKuTYqiZ0EZ - OkWxBMRUZSxLuhkvncR9ccDylYpe7nVPtluoiIoU9Wf2PQQdyuYBHCCJcSlEvpP0 - yH4ulzJn506WzdgydP0z5zFpBYVVjb15emUgr1JLIza/3UJhVDRLRZwExevfpXxs - dufVf+iLlr8O3n9tvT/8FKDMbuIzcYxicmNpL16JGP/RcHF22pVa26gVGmDSeRVa - RFkWrM73veNyIsFzRXlmBxrmMMEDU/N6lWZiLc76FcJuhO7rtJTbEWb+Rj/TmmKi - uTcN140bnl0Xa2EacVq5DehzNOhe6LwrZJglmEKP4MnloCwD7Oct0olFNutjpoi+ - q6tQIdz7S0d/Db1aCXBUCrKBHjbBCu4rLApoy+IheCxAvtfuesPC8hkXEJkzGi4n - BBXRPkfcb0aUCRMbs05hF5RGzOCQR5xD98b+gK2NzzTcvDBRYUH2Bp7ncbzsLF6W - l4ucOSpomlmU2Y74jkcSBCy6Sj/POxdRkXoxSfWBaQlQKejo6Mirnh/t7w9AHynS - XgEXkQS3ovN2TybULoatxr5Yh2RyFPnIQNueCdgV5+mFIhodreCa3y+l5gDfaVO8 - 9u1U1hmQTK/Q1yP1SLgMA9klMpQ9mDnnc4+cIb0EUB8HrXIu4CnUyn+9iNnIYek= - =kqsb - -----END PGP MESSAGE----- - fp: A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DuAaR73LFvScSAQdASUWfZghdUhVz6pjyD4huRi4iv+MpYFuSUn4K9/yL5nQw - aanIMowajSu2BhCAtQ7TFeiajW9TM3mdJ52U/nC4th2hUB6m0RNuPaL1CNLlvgze - 1GgBCQIQqAV4JepU0pPietTX924A4aa/R+XZBIDKTA++faoed72E9IA4yYl43Lwb - k2xtKnIuc8J/MCWmDKCHWl88M+KbAQ2LxzNntSSQP4oSMJOQ3aUPfeVjjmpPlnNk - AZ646fZ1WfvL2g== - =tzqf - -----END PGP MESSAGE----- - fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA3LBDEB9lMmaAQ/7BdJzPe7E5ANhMI7+s5JGzGYR/n1wvyC4j/5HE3eINiRD - MOIOOL2lhgBTkRXJd//dzJUACah78vl8v2PsivxuyR9P8lQ6geg+o63CRAIiisF6 - Lg2BoB+yOh3GF7EGRwG8NGU6RSrk62IjNvV00ZL6pLJgRIguAqxjZ0HHlWenOfUa - IujQH04VpMFEtIGBIjBF+8fxHxLrBTlH6Fi55YrX8h+30rndIrxMwLULwa2k7Msq - 5TIRGXLV2r6hMYgTYYNas8KN1T2nOJSe1pv64VKvkGhbRZehsQhTnK/l+L6iv1Lm - q7c0Wu+AvTOvrU05/4ExgVcJRMo6hXOE2ptfOL8Cl/6mN6RFmypwOE+XDYbTjfxa - YXnKK5Stsy8XUnmSjQzQb0UP+3NnzscZ5u14vSrHfKitY7XFHbAxV1RsDVPJO2XQ - g5fPyqMaNRatyg0qAnVjExYgLI9DLZt/VRlKl2v89a72Dcko9pWG4PUMsEBa/yLf - Xst+byg0LF8dQgu24Q98W3YYfS78ylCuepw9Wsj3mETwyDj48Pxodyn62Q4XxpXe - o4gGtZcAhO1cV9fQJGvxdTulLpynJsok7rh/O3UPZJEhI//7H4P1SAJz6OxFg1hE - U4bTIzSuP4iCcgOs42e9bMiimqc1n383VARx9v5ARKf2Y9YBw5PEqK63PyO+lRvU - aAEJAhCIen6woy1B3BPBVa/uIBj8h8st1OqHaaFez/ItqKDqzHEUVbDyuvEXLTfg - rcH7x8h2EiHPQKdhU+Hi7mmfCyp3zb8WpFx4WCIxuqMeAk4P0OiL4HKhx2DHqzdm - YUqZcbIW5lVN - =SK/Q - -----END PGP MESSAGE----- - fp: 0E8955A79FF4687A3ACF78E50B5E444C75867E58 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DpyXAcYv7T/8SAQdArKHd+U3wsNACqQbYf/3eWJzhftHDnmhId0Zx1xPor0Qw - Rbu65nZ+7bArs6R6UTCniabVTYM87N5ncrFX87dWg5r560dlGxu3POuIunZKb0lR - 0l4BfyMguY4mM6A1M00ZuExSnCpO1PQgConhA8HNKiPAwZc3jHeGc5zmjZNMdcaE - yStYH+rYCuZEh0K8PoHGIr534SvB2EYKFnGgNXY/myNiSMl4vbsfOaOZWx/b/L6J - =H348 - -----END PGP MESSAGE----- - fp: 98235A419EA3586BFF4E3FC692D4A5202A0D9519 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA911WKxzIy2nAQ/+KHZRp2GPIFZP5EdMRhDS27lUP66HBI1egaM/rR7dlj0i - RXfN+ZpX7tLKWajY3fxqZ7bWGXpbKiw+ljhcmjAReXTRTg//jaSPje2euHdXcK5/ - NG7524zdARjXWyAFB4luBrDXuRtunUvQqgx3l5MLjnvowiQxK+F5pVWpSUbkFc2Y - xuQraFWQnq7LaEnDIXYyswF/+IRyZ9v3jWeEeIAtlbJJM0yy6gTt1x+4gLb/p+C8 - qkrXnMPoNWWosYP0CTgLo6p/k64dnZGFqHJqd1fy9J5MT+IQmXfJJls7LjPhTURz - RAPMN3vWMI8XPBJYZRhdPbCYTp/Kn3kIXtvAoLT0ZeXMJlek21JHajkX27gGRfvM - DDi5rQ4u59XPQWeYWYd0neAsv7evyBs/NDGrz5hSyNUZ+5dzUCYoLeAc03OsVii4 - UuUuM1IvXziqpEk6Ad2htmKpI02iWPpui3cEQxAhQXdjBMGqc2ZwpbyxIN14YOfK - 2A82EAFhmiWVd0avg5Sqp1QFDeUw3V84OjKWtSsRoGOd4P2rwCVHCsE/Th//VYp6 - glxAKLKNVfuVc8VDGY1UFIArwAa2RCed+R3D5nyocmKNjcAjhSBFCtfUK5BASx8W - k5m3Tl7F0jFZgPn68TPQ0RjWhtZ1gcUNGe5Ib/1jltkMt9B43RyWhfv1fw6BfIDS - XgG3u9omw0dDOsjecfN+XK6JsfsfOKdrSD9uYTuXiXI7OI1M0MI1/I/Zakg8mi+H - 8ACJVrNzNmONY6jdePLE5u7rrU/giNTCBMBRE8oshb8IjDxVGpSbGtRElhzNECw= - =fvSV - -----END PGP MESSAGE----- - fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA2Cr/drkb+8JAQ//XShKk9y0KGCL+9+Zfdtdp1/V3DUrMizLg98TCe8tONHE - iEorYjSqP/evswvr47uIEqC2rwK0hyxJT/40mEs54CgIR1LGHmu5PooJt6UTVjrj - fepRV44Yww/NmleD3oAhMw/7WmMGCh5TVSVgCZFi8TY9JPlE/i58KW56UJIpu6RD - 2t6siWMvoUQfJexHlHRbmFTSFSqL1awoAnTB/wAM2DJN3tH02PpgPsJcGo7preP/ - 1q4PWhMR8RpmkYz9v+TSRMYjnJkMi1GE0tGMgeMIk4STp7j3HzsOMgwRXlTTIWR8 - lZ9vuiTUVBT+3+DxC4p8Vry28+p/H6TFzIhjAgu4/jLe8WGwOoyIhLVja+pA4PaD - 7Lev5qMC36S0JQhuGUEc7tWCEUdpAdyy+0yHfCjPYYPgbMWdhAbc5KbvfZ/OSmlt - faAr1rtaKQtklHWAZhMs0n0kABjol/2aJZdJgOwx0R6H6eWY4hGTxywwynprufDP - pFkx/gQBR/ntHwO1sTp6jxSQsyr3QcDVSlxYWaCjCEwt6yC1Fu6xTHLyWseKGbap - z0QB8oVDtQPZVPggFLzzH3MITGpNTBDDPCt/vljtM03maoUHbJnOxV3uz6fDbsbK - Rxw+7Vr3rASZu0VYqOYNOx3yfUvYP6BzMhKq47LSo1yUuNe3SI+MWLdXWzVrj5LS - XgERquJ0onXECxncWJ0r+6b29dol4CVGaP4pqxM8JuDUqC0mclkMeuvX/27hTcmY - J5AhCYGXT3b6fVFl8WixczMR4EhvcfOgrPukiTaq7wC/LWDHjDCdkmNkmGW7gn4= - =172Z - -----END PGP MESSAGE----- - fp: 890B2EB48F343D4C6DB9DA0916826F30002D3C1D - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA3Zl11RyMNviAQ//WBOCG/5YJwQnmOnNtBe0QqRHMpYyB9sEH76fimbTxWWW - TXpgvDpeu4bio6sLGBmeyj/fE68zJkqYMLmfm7q4Qr6M9HPknNodqC9Vao0vroE3 - box2rwrc99IL/EM1jd4nt+54lOxfHxW3qqwH6UBx9uq5ym5iGqpccKu3RZLWVrTg - tf5djjP83tzu/Kell6Q45/Y/sT0qXOBAChrrcdwzx3uG73Ed7gXoPTemfZPorp8S - srUu2rJblQ6Xb7cRpFXDBt61aiegKSrlE8qDADidfJhIeXka161n6xURWfIrF9MQ - t9SWmb23f5zkXOV+C/ArmCan5yQJ1yQnaJ/CHNMfU05mHSC3jnGEznqRjBO5jjUz - OyfEfM3TgVNX87+K/BwGIha4uo5uBMa6npNwM8ssobajj3ECxmC+QXVXiuLXa+do - aE20Ls484NxtTQQuKdQi0/OuSl7oyHsGP5K5KNzDSXzYs/1oCtsNmJogW7l9dBPM - PAz9wJDtHiahnMzJT06DuccRK2ZxfpVG9EEQ4SpsAXAdY4l/fGic1OaHlAgjVXEg - BqJ3qSwtreSsaRcTZiB77OHHgSjsz0/ge215/ngKcgMtJxzSerj9HQX2GXuUNWDK - Vb3N+PcFBfMpac03M0ec9S16o4v/dBYovvBxwCXBnMGoZd3VU6QiZe7paZvFWUjU - aAEJAhDH56c2N2SxNmZP0r62pIJ5kZsA6/ux6X/IRciRDWAaDNzbWCKNP+5x4qvl - TRntrml7v0D0kaIC6KyYdPjmNV7YLbRmaY4LQB3ZANuNWlk5ebfBDqz3cQRycAf9 - LxqUD6PqU4fl - =bHdq - -----END PGP MESSAGE----- - fp: 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4D0Z3mmZqL/KkSAQdAVrtB6jKS5gwEfg4d2xthyyeXUOb9uSDAKUbfiOQlg0kw - MHYDabE0zEy/o/rSQhvmV2IrBiT2/RZT/uWTtxGUUO8mIb4odMQMYd/YEx471XIG - 1GgBCQIQ+xfblzdivXluHP/bE+0kIC1jeFfesV3BkknteSGnjKwgZq/66cPhZ3dQ - 4LTU4rKsYSvjukjQWUfCKS++QIbLkX4JWhSQVXHqU+smoyQPh7b1nvIFHfov19Lh - do9NYHUVgFQlng== - =L8Cl - -----END PGP MESSAGE----- - fp: 42AA7F6BF795490C1A522C730ED842BE1216E0C1 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA5pTFdxsndstAQwA1YBo7WNntWToHsKDy1li3g3tE1cLdg4UzOYTj/yCWHlh - lJ/CAzDdR10i/4taMBa9aizlM5hhCoEJQF9rXkafI8Wj8qkx2oqDwA/vXe8uH2Kc - iJgA2qkr0eVHH/LJ+mP6o0O69gyRTl9XScIl71l9nSX2DqqWYKOEGOVosoZveZss - fwta1GtRM2wzZTXwItbcvHM4uaD3Vz8rGsrJ9h3hGaVdusDBmUDqN3HMSqCicAxT - GQZ5jmgXa6HU3yCA4gqCywCpxjgLBMRQBbt2/ahSW+6ST0CU6sSdMMtNrD8oqfNP - D6HQSud7z/VVgJJuWBG6oGa/Npo8O0ykh6Z2Csv08NiIjZCU5gK1UoZQ1HR4C1t9 - UMhmBWoZHFCvS5xf4RAVYW8Pp9wlqrI2bBvPH3extrHgYITKWVa2r5nqcBekBIYO - dVCfD8lD0OA/AkNz+2GljNJxCtM4HEfTTcPEO6DwQqSHBmCXr6d3TSRKilCd10PI - wCwPUhrmRkQGqAcMIhbj0l4B7Y92w7ahVlKpbE3fw7jZM1FGBopfRtO+1ptcIoXP - m9LDZkuwqhBoJtS5+PfVUY5OrAEOspVLtyZ1CcmyIoC6L2ivyPDbN5JF8saLF5H0 - 25XrdTHJdKrdvuPOmPUj - =TVIM - -----END PGP MESSAGE----- - fp: B4BAA59056DC362809388F3F2119881095EA7DED - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DwvSwby3S138SAQdA4fr1Lj11drzilXIozz13v60Mzv8/j3Ucw9pCCoXIal4w - bWMxvgtDjPXFL9Igr4KAV5Gpab7isXnW07zi1fFxbhh/L2Lqv0AZmn1OjO7pbph3 - 1GgBCQIQA2ABaA1vXaIyPPhvwhFj/oqUpYiuE1G3eQnpbbCT1yGVYklVfDphszNP - ixkJfv/kVEreit21+Y3ddYxFXZJJ3+Z9Fmda91gosaCqUrTYrYN00u8PhvG7iGA1 - PArPg1dX67/Dqw== - =YLYb - -----END PGP MESSAGE----- - fp: DF977A1F65999F4CDD721A27516F64D5932B8AD9 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA1j++ZN0cDPgAQv+KFbTuLBfylFZhHQ088zny5+63fQf+NyT9GgXJTTEldue - UvEqv3ki/vQSZBYPyX3F3Qbw2HFvco4t5fgPRJyFAIMoW8hG63ucm4u1exGiXQRU - lk8RFAf80Ac4AxtaYli/MUUEJPIXnD5DCOY97ioPw1xt18dNlIieUr1xGA6A9t05 - gBOzB51jaNgHaopCzJaY5bWWVyf7fA6BrqxL74X3FWT2ppivza6DeN6zohWSiv5g - 5p2IhnThlcHXWKjHUDRWgmZJxm56QqK+JXgWGrmbzBiXjMu7NCwoCDA9urMDHqqw - cSY+PkLW6Q1HVzjdKjbATOEeILnlUMp48bftFfK1LKXyUjWXRLpIhpMFtPdRbtAW - 3P0JCOKDMeVZ4BAYXIMwTCn3xUWjzJewgW/fEo0PS4vqr3QlBtWImAzbT9wJLuQK - L0i9aK3kJCw93BsODeuIfqji2KtDl+pXu01bxDUG0mD2UpKLWeS+c56mLs1orZHh - 31lWibxOhViheTsi9QJo0l4B3p3/Bh1ggzZNThpupKsg/8LEsVN4Sko4kA1L7Czl - XY5biCmVX6BWaIqMGbXAFHlyNUJqAbmbQoqZdjDMlzU6+igj8IyjyJCC4PJJgxnO - RRyeiS0FXoXtOE2ZcS60 - =kLlr - -----END PGP MESSAGE----- - fp: 5623CCAD4242CC3E0225A62986AF09C173781578 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMAx5drVN5V7yDAQwAtaZ7B6pze2vrl0kPTkNdvRCLWSXIyV0Vg3dSvfssEA0L - Q3oIOux4RwG00yxBSFzpLPKWB89gAp2Hin12vcH0XBEu58pdvFee1LDwTqh2hNZf - aw7n8WWkTqWkwXQc7dxBFLArrO//j6JYBCtrChvW6Up70AsrWrqSstxCHlS3bLqC - 2tm1AslfdfNhK5ZSM5SQAy4vRv6mBXx1Ukaao00I6MI3P6s5u2+d3aEHkFJE5hIC - 69Ywne6rzKDC8eboILRWu/KmaqWA9KZC6EWvaLJKKOvQEdWgSw0wyQD6ORQlcVTR - 6Z24nA6mySgodP0hyZhZpJVl+aD5dDtjDyxc0wKwRuib9jxXLECdx9+f9Ff2Ol4g - vFfv5DLqYSeAHMPwrCsd9UjfBDkkS9L/Vzcws5j8ARg5eSptJkfbx0AhNHopAR+E - /hIu1EE2f1R/u6vjfPNaEh7hLIvDr52XBs6F1VfnFCb2EeTP+Fs3K55KNdhj/1VJ - CLR54Eo316xb/grcNXUc0l4BPosECphEEaue9BOfbo5nErS8tU4Oytgtdz6mbQm5 - HcjzIJavXlLektAtLxOoL3yoiaPVVt+NiBE83sfkd8veb/5T3T8cVWeorVNH//ui - J3/V2pjt4POvdmFPJKL3 - =M+dB - -----END PGP MESSAGE----- - fp: 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA1kDHheI9SLWARAAqaE4z5xBbUqv/3AV0P+LXS/N6pgjNzHkEMaWkD85QC3B - T4eO4cFmrDRLBONrN8HERTl7K7YA/mN6/TXQkaHIzN10NuOKjjQvd2TWmcZ/fPkB - j17urH1lCDpU299rh0aXhdXtX3/Jkv1G9HWSwFDg42Yi9gxTwn5dhqwk+tr7s2n2 - bkZdFdFOssn22qmcwRH19Iqoc5lzAI4MYZLeL16foluZjmJSYFVb91FWbxEvOWpZ - GDfPB9v3NWE6t9aTIwJ6H5l2AFAhWPxGj3b1sWF2f2s1MdWKO5kYfgJ9IS3oq95I - 9cVM//hMmi00Ste8HIsfuxxg9ZpWnLZJ7zs4QeaK/YX4oNT4K7N4svL3x+H06yWb - aM/xPhynZB2cYVmFVuUZiUM+ujvkBfLvmT1SEXj9joJTkkmaMQo6id13QCdorAGt - OGqIPHZLbAwlAlhyEfuD5iz+ucTVMuRDkBkT16RqUByOpabzshPGNa1gD544akFn - Re0Hpwd85qqbQE6YKFW6Ac35c4zeJegMQ1PLU51WriHDlj0/sy38QETgk4AMT8yO - t8ZIE8QNMP5kASLqsqU0TD/Pjr1jz/cieHj6Y/zwug+SPkcVdfCoNUcRORyxQ0wI - XkJykkuWCsr7jEkz0zxKMOukZil8SVYDgUIYhAXt3zBsXD6yuqYWMxGRqlvhcOvS - XgFNLJ4npgSHP3SHCp6euh5arvz+glfvVFlE8g0nB7/OOUKbaCm7NDWyxpTS9BSS - xUy33YQLWcgSrLbI+8zkNq8QP13ma9xPtVmo0Kp5fwUjMQuV9CLJ8JFDL4a0xvg= - =gqOA - -----END PGP MESSAGE----- - fp: 17B8FDF68AC123EB666934B17D0DF6EC048A5D77 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA195cwtvYnl1AQwAwA40c1uJx1Ejgea3u2M51NSyE9g+VFp+KwVxnphLoA9W - FarETibzOlAcITiOheH3RGov/FSlqg0T74IbsAIIYdtPdkrsnl8eBdIU53UF/naQ - sNU1lt8E7jMqxifzytZcxqzXS7oRZECXkceqss2jXajCjdPbgnrm+eDpFD0swREf - Aj7a/Hd8wDQgD7ROErfW6pgxdcaB5boFHRtnuSfC3FIk2LOn6TxxS7Jd7eyDsoVo - 7LdIhpPdepsbEfkfQlbn4nkt+KQCw11wB/UJ0CvADqplpnRO8n5ZuubzMUeFUI85 - oWgI0wk80ubWu1MVAo8nrEkBj9WH5bgIs6R0loLSy/21z7IG+2rvU3KWGj1Ruvac - LQnd4+ywjbd/M8mbT7Om/dmqHS8VEa7J1ijmraaUnlpaWPNh4vo1ZlPKQ0qCOhMo - RA566A46aCP2MpQp8wkOb9q1MVRRGGcxMsWYOZSdycZOiFT+LLFAA59LjGVs4ZrT - f0G9EkbxQo+UakSfVtUJ0l4BTaLwOpEliPJHF2cdWZnT0miYp+mCEO5+u1yvfl1X - Dg0897lqE4McyqvpZV+S5k5EYY2mhgPls1GCGQw6iWMvsTL0py5D6cnU8PktLm7W - 0w6WP+Yx5W0G9VTx7YbU - =BqoT - -----END PGP MESSAGE----- - fp: 03ADBCD31737EB474A4BD235CE615FAF927A2054 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA/IHQvF5YsEcAQwAyhize2RZb9oJ3zplSjXMjn7UFhRAolrc7aShkF9EETXm - Po8LDRcP8Y4AdCNubzApRjEEd9PdwOBEzLBoFTGIT+nA0RUT8POmwmdUas3L0zwJ - 5wmcaESgTUO9s6mcP5boyJFkKom3xpHi88sw0rOUH3lfcIpqvUHz14ZO+XdYwG5r - Dlhu0YSP4VygpSb7y7UqOC+MRcGrXQL2Ql3cFFx+GUEiAgM5M5OcN2JDG4R2wxs2 - Zl7wdCjounrvfhOslQPvOXgSXi8cEevsCfLYOIIi4WsukC8TUldneyznyyjFVU6H - Ldms56cBH9kz/I+/b/LMObpcgBUSMAVKnAk1HGXoji7oV1thAB+GEDVcT17hEiPU - ZVdd6i0TsQ7RhX1pl87aqIldHEz/wx0tP+yUrr/YHbff8dBmWcdEQpKotnEwifXn - OQwFbD+zV3WRHWlOQYoeQWlm5ZywO03gId/pOxxg5RbaORS6dycUXpG3GMOajBEW - zlexwC1x+nCHQJ7vgg7F0l4Bf2eqQ7yGzP7tdXKYiRdUhTV79CriNxHxcTOHavBt - a+RZdB4P9TNvbGVlSsN3WiZ5Sb1BfXfJ7IpaYaSZIeV8gNfrreny1zt0gfL/Tvdk - eRDSXXw+tR/xCoHqRrN2 - =C65g - -----END PGP MESSAGE----- - fp: 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA/fyan/DNa3uARAAzAmh8AWLBhSqa8rE+gm3O9m9nt9aKjqobUVtXHFKC35F - wifFnO58B4cl92u7Dx+Gz+2dP7TgGe6HISpTA0bxP9muZ6gkPcjrpczibOc6Cjj8 - UgvYfwABXDc1BExN7GIPYXDGbeDKmnVq7/3krq61ntilk5ESbHqaOWwkJTmI7Cqq - XoCBWwBNSALfqsu+8nVLCSjpapxnYVcAACtCvEtb5RZr2c/MM8QxV1rhnp6yxWrW - 5S/7waDfebYP49aTflWY0bPPfXOnGPNcHC7R1qHMpBOHEj8/CwaUs5SJRN5llZPo - iX+GzstchLlW+Rz42EW992aWLk5NpDWit3lDTr0Otc5Hs+LynIrCFRYLZdJNxaJP - RqJPlMFt9qX47adsLE7Gl6zrwtZXSOCatJldJ9lRjyFCv4YxdkXuZzgBPQMYOFed - 1GGrdgP325ljySWcEz34WvQWHiPgdkbGmOZO+NcKRwAmbOue0VcR6p3wj3L/uIad - /g/Xbso4vAtTDGhaZ94Qov6JWPbTdMefZTFWsrBhxE8ashta+8qBqFKABiqk8JD6 - 8HlIdHwkqgi1P9+ZLdMM3PkLsmja7jHy3y6ZRevG3KAoS5uwcD7+FTKJghRjVcCj - yeKZC9vH7DCmewe41S8Fl1m+/IvVrK3VQzA+ZqACv6nWnTgwD8Fshc2j1feMwuLS - XgHDrSD57UnCBN2ozycSynSxEUv5b5+304noOB2RnKSxnGUDOX7b35nOmCH1VO75 - X0zeJEMLK9MwXGS1npWnPD/3yQfH1qmbB93EwGgyoo73NmSM2e09mu7OnyJ9YvI= - =LH0z - -----END PGP MESSAGE----- - fp: 9E561083EACDE14694C73A323A2F6C1D153D753F - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA+cOSmNXMUmKAQv/TuSEPsx9bl5tx/TqT1EONvTQPJov+tZs+CB3sluZ93Ci - RSgGBOKe0TXrve+rwCe6KdT+TZNp7mguVCUTBNNYq0wcUanTFzxUrVmRt+bfQhZ5 - V/loQbrW7elShDHD4l8yBQg0A1OgFzHAQU5bNV6Ztgb5c1nknO/mIljrJIIehwMQ - MARcoDJLbp5Vy1o/PNyZ0ffZ2I9haF0ajymixUv2gNVlOl0q31dz5CLiRbQt3kZl - bmUxYrL7ezPYlNrQM03ojE765iuHo02EnCHqcCKLtjNVrRzlgP0X3sJnkdXjHTeM - 9a0zjOYZn0CnbdCCMDKFOFHaT6feUSqLHi0BCsaanAFNoM2pBHNVXVyKaQnNaMOk - egCJzDqccZG/yiP+7+1mSVjUgi5x+TqQhBZc3Q4VATKrrLYac3gpbbpAtdoBtEzu - n2+uOsKT1swdYD4wWMOMlHmKVjgdrFNZKQarmPCabzTwkoq1hDLUg35tpOiW1inX - 3b7lGImT3shXvLQQrCw10l4Bvz/rkbM+be6CLUMGGDzbCWxg2312j0ZhwPu5sJBu - HM5+ADYUqjikJ8IKU8lnREQ8e6XW+31olKjg92+fQ17cIbou9ugXCnlpyQP0FCJj - dtY9LAiVGkZ/ygTCHGJ5 - =Cu8X - -----END PGP MESSAGE----- - fp: 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA5bUWViEqX+EAQwAq2VrMHg7Pxk3TsQuAm019OKGKyFQVy8dK5waOmDqNOzN - T7r8g+inWDh7/xmKS+HPIjvJEWDjtZSNqEC4ecgzu7jOPVKpJBQpkU1tDlYCVZd3 - zipqDr7Llba8SA6lCMrgCREl3dUhUCecm7jfHnKTz+1FACazhc23C7ycjsdBoRiG - WB4nCf4p9+glSh9KzFO9FhvK+ijMHloKQ2ovaXocjMGN676JLAFtCqaj0lkMnjG2 - o4nuX8zC6yn3GX8sLuLC9w7NtsvVt6k/46oc1Xl+G+Mc7LpQhmC3ujVQd68pOoFV - wVQViTPBhhXWqQalCDXNNYWIoxZacKjZwX4NoibL5xzH43WPPYilZPPKbf/nObqb - ORK/6kzHd2rNk+xGHjxOb59tJilK4T4NyvreMKycWAVl2NwZgvIDGVLwpP8aZxt0 - XVopegWdd5WnVHBT0idQ5nUoBgLUxSbEPsi0Sz2MO3+h9ra/J5ccYuWHQFaPysbh - XjydWJ73dUHxNpDK9GzP1GgBCQIQIppmJEb0UYTa4CGzpg61JMarIz5+lmZyuIxw - B9LEqmsBa7ZjX2aPz5LOkDLy9cqXURK3kWJQwPWCJyW5t/OxTp9bV+CBxbbJonmB - ES/lvz0m7sH8yLeHHQO7C35ChIh1IrVYhw== - =2Unw - -----END PGP MESSAGE----- - fp: BA6328948D50175F196AAB5111F324603D12DD56 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA8YZutSkx0fiARAA7hdaI2pt2QCqwLXm2QuCxCi0hqt7oph61QoL5z4VmonM - 5Zz+nL1b5D9xvkoe1ActiTrv82vEs+WVq90yR2HGlIbtjProLf8R9xzADqfhL1gp - d0vI3Hu7UXfLkoHXPbkhXS3/wITNTRgjRhazu9DTRKASqvkOObqexZNs6AhO6L5b - vPLR6nj84tlxiZW1OUgztk5u9m+A2j81IKraye8hMiY84GvnOt/jKR7S3zes8C18 - NqtdfLkkhU6HgqpjGkm1OoXpyjXbSoTQYqH2nUEV87683M1NDb6co8JtbPLtJ8r5 - 2IOfoZY364ghtD+gvh9RS+Rem4M4HzExRnG+nwNRt62cOVwDrui3FQVwBj9QzPgs - tcFZO6zQ6mgmGUsD1OXJit3amifY7SY28YyYKqw5iCnFQQeECJT+8r0L9izLOdxL - Nl3iGgv5iA1ts5hShKnATq5wamlbdVlt1eZvYtZwNQb7uzwt1PicKn+XG4BmdZm7 - Y1ybzL16Rrcq8IfnLEjHFopUIrY3FU0IqtIHRjKFx5L//GIS1U/Zg4gnB+Sm76Up - W86hcUENN9oP8NNDDKp9ZUHKipyrsHl/wSvIWK+O/4/GTQWUbobbmb1vjK3cjpvB - vWgUtgtzoTfnGuD9HcGpC315/LHIvIYjJPmH9+GAsrjVm+APLY7Dm7lwI6qgbDPS - XgHVMVNUJOuf+Lf19maadhN+P4vOw8qI5Elr3qdTo56+EJDo2l7lil6PSTjtSWXm - qj+Ffb9WgKJD5Rs866InalEfUTW50dEh4eVz+1TaSIbPo5CG/nmfSWbhf04GzaA= - =Ymfp - -----END PGP MESSAGE----- - fp: B643A5D780A01F24E95AA100DE6F8E2C149C3748 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA9vEXLVODHp3AQwAqeHOzvDh/7a4WicDLY487hPkkI7Kw5bzsiRA22CBuSnl - 6DQM5inFwR28Ugcwcv8mn4qecXF9HMLsUZnUZORiwgDbNvytbSmY9nSy4CyFtDbV - VqbCQmQqmdcPOZ62ikoHIZ0KMfBXYpmgHSupIJWFsLrQHE7l0qxN/eYBUO8FFOUr - GfKjiyxdZxdVT5ylzFysPILRmpjdz4HMUTjkoyFwUqZjo3S+MzSgcYpzGVWe1bpE - fBaOhgDiaBdq7oY4IR45fulbhEtnRih1vnti2ofI//fHTpY0NhAQzeyeNuiEcfsp - MwezjL20Y0yVMqrXxdkuaZnFQVpszM2g9eDwt6x1TssMdAqRdpmxSO28WBvkmOUU - U4VJ4pFZYeykOkfaJf6wnZVKFr5idrxphp/WI3JAITcsfMbDmS1WZt3HUjqj991i - oxOmLA+k6x380xxRJQxZEuUmeV+M5PyIEBaK72JZUhC/wu60+DWcGfjM/N2eyMD8 - Ed7uiSsqDDCc3vLNwXrX0l4BqxW8dThOcxXg2llQS2TJN/mD6BGDsWqGH3fxCGur - y6JTSst87JjtvEu1AgUxoLZF04sQ/W6Ix+GE61VVxnafja/dKGzR7ymmLAuizlAk - aB9iJEVVvLk3XrGKaYXU - =0V07 - -----END PGP MESSAGE----- - fp: C19A7D807525CE24443CA9A49372E896B41FE700 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMAztV5cc72nziAQ/+LqW/QWxLAM3Ro09xpNoSvB4rIncZ3O6pswCDwsC2iHTA - fOOTaxajxP96GRfPAnmyFxcnA3/aDTuBb0Te7QVslXf2sBFcgU5756CyU/7hN0hZ - cqlIFVhsXiOgTjc85FyVi+5jibGajZEVOIUjF4xDRok02v53RY3hbDe5l4b8LFw0 - bi4IE7qBsN/taKXx90Jj82OvKWJzQ9Ixk+/ywqykZkDpZMqUvwkt2mzSEOcDAF2q - yaPyTl41cZQgcac+WSSEsXvWy/tfjsUZ8UAUtjHy8BSh4e0C8SOMqIZbpql6b6Zj - CuZ7F4wLIb53+LIXbMkztinAiVkv1U0mmGXilh4dSXMoyH1DTmtaAhSCYsR6bMBL - yE/ZUmOePYffVaOk2UqiC+IoWz8FegiM3fs6YhMuwJuos4Ce9SQPLFvJHsgcvt/8 - 1+mnVCv7o1RErwmzR2LdBVwbY8o5OiQcekW7pRK03Geb9VRN6GTDbaEN4zRLEfxQ - 93b/LWP2xxiRTUJdVcKVbOZo9Y822TYB1UKpPNA4YtwQb1yxF31dwc7ZQbPOFhx7 - NbqEjXHl0HIkhMs5yQCN6WFb77a3XumwJeQgwppAQ6m3nW9/ZW0WGLJJpFMe79pl - /lpPcS8NPjQafZiz/gTsPtBxtuwlZA1x3ip1AvDZGk7hOvKXsZdBoM05ye9PWmPS - XgEVUooe7BHYZM4a2gb41uCK/q/pqmk16RAtz5deuAmE8lQSp107tyk3welt4//O - 1EITotcb2vFTCqtd/bl3VCIEKkZNVxAN3PffcL0U9+3lmbL9x7fWZxJhIBBeOjI= - =hItc - -----END PGP MESSAGE----- - fp: 0DB51A7E90AC6418B7DB83724D38970874850C33 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DxQtfVaqAjfQSAQdAnruUnvSRQbTNsFizw778b22EkgFqtlDovwthZ4hMoxUw - lEf2luZeTB5vzeBvpTNO9brw7t/9kBM5qiKR8NiBJFaAxjQI+UyD/HoOPNLTNyiB - 1GgBCQIQ/wDt6S7xpHGS1IO2YC0reDK6HcWR3HqQwtC9EP0wShYO0dZerTtu/Cev - qqAjii2h08p98vJc48T7XHmWoIbnebzY9lMBFaxpd4jdXAGnqhw31/Vml7kBue47 - rcIm4zdwTngV1A== - =6TY7 - -----END PGP MESSAGE----- - fp: BF3D5CEA36DB58AAE1063D0BB341078652D87924 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA0tm3uFynLVYAQ/8CAvrCqlnyco1x7Qtfa2pS6IclbZ0N/D7K6EthmNmcBgw - mL2uNNqM6kizmBj2Xws+4thRFnGs1K5+2yaiCleuXySXDCgOUNPH6Ilfsasyd96+ - Zzq4NeTM308Mjz6f1imBkNivrLSCTGswKu0mGc0mnW7Ufg9LhCa4FGlsy61P9wGO - R9XT27MDgD4B8BelhJ+dsFr1YFoxTfHJVxkUR7TmbvZ3ueHyArDwd3VteHzdChbb - 8RDqOzbgo9j6dgD/vAk3wFZguo8xBn6ARgqzoNzirvpwqFq6ipveycNcIlQajpaS - f4vb7MaZpIkAVP4bhPyXksQU5Kiq3rH7/1alzwruaha/q99aVfQL0txEF2vwsGWP - zcwFxt0ov5FWEPwhMYxYHXLyXfjeCMxaovSFmCF23B9BGRk5wTsCofZnZPRHjbH6 - ZxvX4wexskjfsIX6PAgrBntUFg6hk4nbwxPBNUSiGGbfJF208LoQPjIzm9x5PYtj - aiFDKl+78jEqVk1ozuQhQVqqxu1FXMlLvvzJBI15z6wy2wSZ9KNzOYmbLZTUkCa7 - KZB8OJW/QS0PeDj0U1CkzctaNaDY/z3UiL9nvPZbPQOhI6AzX64RiF0XC/zCFfqG - 5rUuzvSvB6GyvAuLNOcEHYm16IZcshQEwYo7PX/bbPh1tDpCXfyLrG/Sx+/j5RzS - XgHlWCU6DXilC2IEUbjBUP+TnW08l1+LJnk7t/KIA00l5DKbpXnQQmN4Lf5GcH9l - 3eruj/JsXRdX1s/4zpmHlvbzXHWfL4uFl9FEREtel8Ec3bpHl69U70luYAsS1bU= - =r1yS - -----END PGP MESSAGE----- - fp: 1FBAEBCDF9336AD5E7CAD9369158CA503C2CEA15 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DZmNQj/lmIGsSAQdAiEk5rocmiHv7+S5pDrFpe7enuKzkcU0Do5FBJ+/1byQw - 1BB2IhBAQQOSpV/NPJqcU0bVivaoHbPheYevc84a70OYYeuNa2xyvpO1iiuqlE9q - 1GgBCQIQoU31ncI7zFI4Iu4zroObIghRGf5GW4Ig0wFZDnz5xg4AMCUtWlMbkjGJ - CYIITslWOqbFgGxsUYsjTg1Kt6mkRthIP561g7JlDZgW7S/LcjZLXSEGzEO0ESD2 - hZ4XdplbcCh2QA== - =FRKb - -----END PGP MESSAGE----- - fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMAxSu/PO9GEkJAQv/d7qdtWezsS5FZosyrlDdRA3HAybuZFAtYUGkrakSOqvh - OMr4ogJeXfx2aNXb0iKpqm4CqwTECKh1FPArAvjQOOIfV/QSo8MCBhxN3t5c9K/4 - Jw8JpyYpDd21DFnrsxOuzrZ6rKN3xTU5HM2ZcaCUSdQw9YeljLWNIIBfiapVwgYl - EOWPq1B1zDqg2FbnS8/+gTgTYnuv+i5l7rv4OS0dLira+8nr0U/Ed9a05LRWYxFH - 4eVwquK5V3S/ikUgyS+U9YDpThmfwhVLZd1WwNzArggeIiNSMsEf7cvzPrXRn+2z - T9d9t72/YQBPdloR76rIfYUe2iDaXyLBp53mcFzsLHpxxjjhbL2VId2rlJV7gA6x - KCTauGDSN7iqpBszfrU2vLkMMsZZtNE74IMnf+QoDnOs+YRAZV+ErkE1qYYDSjzj - Si5jMOY67KKhxyt3NT9qcY4SjOKrzKz/nxiFatx1KP95fBrQ7WoTExgWcptCwEFN - gNP3HCjRKeR1k5IO3YCc0l4BQ+Hk/L71/fiJuRynk2hdvgzRTi2g/cEWtycE3ebu - djkIBuJ/N5gRVfAIi5jSIE/N9bN3p70aGcM/RgS56drvCU+T7ab7lTyKCjQcSkgq - FHOAO95abldxypWhGAeU - =tYn+ - -----END PGP MESSAGE----- - fp: 13E169CF5C35EF164628764AAA2EECBDE0B38CF7 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQGMA8b/EJ6Mi55zAQv9Hvg1N7DvdTBZ9YBR387bA/2llpryjPeiCfreCi2LtC6d - ImQdHxwIquh02cLJhknu0okwwq1Kc/VCM1ND5UBt80UqTZHfPIi5ESEgbbAUj11Y - OsdZzChHqxuUivJKCHsyRMhTkbj6cPFWiBGydQ2/rvLBm2wm1vOtw/gnmpOi+Wc9 - 5BlKMMNwqUVmNpIWEAAmfUbMk6lC4v8t5srhx8vAkVGXq+Gx8pyKYNtyEdVFW+Me - b/Sd+krlQfKwg/acbINAjpMWJXR9bn4B5pQQgj0z+a6lhIIYEXSlZN9k3mh25ywx - MqQjhdvYg4Z4jfLcV/FxZ9Ya/2v0b50TJrzWvhF2TDOstShDrxbxnvMH1Ap0xSZG - 2gVxxZ9+2s0qx4Rzn4erDtETWpVcrACd5FqLGDTQX0iKummbPJMgZR9m2BTJ/DwS - o6UA77bghG6Aa+GSLhUNYR6RNdi9sDQnahFKSww0oZv0KOZ6C7Pz9uJqveJ4fMk8 - 3aXPWo4fWnHJX/uorNVa1GgBCQIQgAYS9/EisclXV6bZWvRBjYeWaQlPyebG2XsO - K6fZMdp4ZeBe7lFJWwqcb1Q9HaCKSn7sXvw7LwKHJMg2lAzygvtsliNa4gGfQH5p - xc9Kd5E/aeXy9YOTcpl1T+OKnKi2Z+s9tw== - =ZXMv - -----END PGP MESSAGE----- - fp: 13D7771BDE5241293F3EDA442AB3335ECC93DDDC - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA+5f33GLJ89bARAAzMXwZTaV30kpPDOtno3jpVigh7X90c+LB60YP5VXoZkY - ptwPIZaft6xM/lNUYnrZzerVqUSzfKk3fqrmS7AMQpLZ01xQyDiH9fRo0wRi8GRD - HoEIdd5+K9zR7bj7hdStMqFzrD/9UN3FdHMtSBHSObaAFezx9Ui+aTYEsv7D2Eey - WzT+dxHUAZUcO5fBBl+zUtJV92KttVGGrkJ5d0Acs8Fv7Dj9t08o4ynjy4zQpV5I - YaPkfOcjCzbbspXIR8171XO3f8Pph9PVm+uyBEOXQW4WZTMwOA/sd6pn9xde80Cs - FHGG9MoAbScSCrXeSsMrw0TFgPvq17GdVo0nzLDFvzxkoAf+EUcdix9Ogx996aGx - C8XBasW2ki0/M/m/VadjH4Ff236k7Ac+ED+iRIHbwn4iv7nrn/fRbBPZLozFJCSm - hYBlDSwUfVWJtVmxM7QurBKLlHF2zBIb2paIS+ZzOc4OdKXfRKMqoZDdQOqR1cH8 - /oYUxH3V+biwSVVOyAMEXQjgQfzGzjz4BgoFuMfVdEVJcBZfe32N4koZhPxiZTBD - o8m2d19qOrPz1E4u4VhgshusVUNblIzbK+G4Z/1UfCG/XP9daPowHZyi9rT4nfRL - RBp1aoxMIrn860BauisEXemVsannoYSro93CdTlicX45N1KTXFeN0WQ6GID6eCjS - XgGcdxz95oaX33vXfzi8pV+1Q9ilkMJKRFw0v2Nd5JfR33PbcFV3Uh2WfQLFCTLt - eUii0vwMnfu+f2VLzg3Dhzy3RWqyO3f51eDE2bFNZIkUIqgiMWO9pscItQpIyjs= - =YE6f - -----END PGP MESSAGE----- - fp: BE3FB94982C2DE95B1EDD388A96613A6B1DB15B5 - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DAQRCY74qADkSAQdAetwc6o2pJ2NyicPySIlTBmL6lMwy7p4tDQiaqqdVhjIw - BoNkqXmExeSpiK1pTSg4QzSASfEhGKW5fyFSpXTMEjg6vjQ5DKdBOXvaNJxMv6GB - 1GgBCQIQo/qxbgOtSmGfssHhZb/LKn5XEOOddvVbsiGASX4/551/wQlzLQ/j8W+z - XDMNyJWCknFW9Tt5/SWgZBpPtVr0Vt98HT8kt3f0n09uHFX1BLy0BN31WaZbl33P - jsKnMQmJhQrMfw== - =49O7 - -----END PGP MESSAGE----- - fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A - - created_at: "2025-02-04T09:36:24Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQIMA5KoiSc3R+FfARAAoSGcFzEkdkpc56bxIsqWjA9Z+fiN8rNYUrlionGUM2r3 - qC3vWSRoQG2ImJb5W2a/CKGurWF+/hJFl+qJWcOsxg52ABM1i1D4HZTfdMC+sp9U - Ixlqda2bTSKIgR8j8j5UFKMKGpnfA0AuMHb3BuoQwCI4NvQCgdNcB8MD6wyPgv53 - Wh7ZUzQfDHExl+kI0ztLNIARyew6t5gI/ByqI2DDyDtFambconbdvoSLUs+SDO15 - lk7cHf/8RLI2pSV1IKm4m39LtxeEufNUZ4NrOX4r0ic4Q0F3fpWdUwXGCjoQ54tO - ZyGqnbTG/TSn7CxgHTBtg707W9QGNm1KTnfx9t/fmMpLK7QvLmzr1ObrnvCRtlgS - c3FKjqlgMETO7M2eeFXxGoL4KTJ8r1HiO3l5nO7VSzK4PefLV98bbKvO5HgPEEGK - QqHTMpRBODTlJ8cz3lrF5MUkjjTSiEZ4fWWDTjgCEexytzgI/iZzGKRsKKFqbwLi - VsVRmVN5wL9htR6z3XmWDieDKF9eL2Iw9hIJD4AC4+KbNVkC5kuD4fJiQ0IRoIhL - 9gc2gQKo6h4sk57V+rqccKh+X/18wWvP/I3RBEw6XmXwzkn0a5CkzwmpM0T3puy6 - Ow7YKP/AoZSf6BFf3qc+kv254LxnyK8tXI7Vqh76bpmWcOnyOpip/YDSRy9d6nvS - XgHAj1RUN+xYTQMqiD/TaBim7IqVPM6eMWIiLeQcNNsmkHIxQRDLD+D/CzXLOwzQ - AqInuY6PbZHAFMv4/lEhn+pULmrXRp7JzwFbPFgs1S0UqaLKX/vtMweEIqUM5Uw= - =2XYp - -----END PGP MESSAGE----- - fp: 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 - unencrypted_suffix: _unencrypted - version: 3.9.3