From e0359bcb6cdfad9ab3e868054121fe0cebec2d68 Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 11 Oct 2026 03:54:35 +0200 Subject: [PATCH] Prepare purpose image release with bounded custody protocol and owner reviews Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade --- deploy/lifecycle/admission.candidate.json | 2 +- deploy/lifecycle/service.candidate.json | 2 +- .../README.md | 7 + .../base-image-config.json | 146 + .../base-trivy-full.json | 2362 +++++++++++++++ .../candidate-admission.json | 52 + .../candidate-deployment.json | 267 ++ .../change_guard.py | 68 + .../check_installed.py | 21 + .../decision-packet.md | 33 + .../fresh-preflight-validation.json | 50 + .../image-config.json | 222 ++ .../image-manifest.json | 56 + ...nherited-vulnerability-follow-through.json | 21 + .../original-packet-manifest.json | 254 ++ .../deploy/lifecycle/admission.candidate.json | 52 + .../deploy/lifecycle/service.candidate.json | 800 ++++++ .../README.md | 7 + .../base-image-config.json | 146 + .../base-trivy-full.json | 2362 +++++++++++++++ .../candidate-admission.json | 52 + .../candidate-deployment.json | 267 ++ .../change_guard.py | 41 + .../check_installed.py | 21 + .../decision-packet.md | 29 + .../fresh-preflight-validation.json | 47 + .../image-config.json | 222 ++ .../image-manifest.json | 56 + ...nherited-vulnerability-follow-through.json | 21 + .../intake.json | 261 ++ .../lifecycle-commands.json | 277 ++ .../memo.json | 141 + .../native-backup-restore-protocol.md | 40 + .../native-preflight-initial-refusal.json | 5 + .../native-preflight-tracking-id-refusal.json | 9 + .../native-preflight.json | 43 + .../preflight-inputs.json | 14 + .../preflight.py | 23 + .../proposal.json | 50 + .../published-verification.json | 58 + .../registry-proof.json | 47 + .../rollback-admission.json | 52 + .../rollback-deployment.json | 267 ++ .../sbom.cdx.json | 2560 +++++++++++++++++ .../sealed-live-deployment.json | 286 ++ .../security-summary.json | 35 + .../test_change_guard.py | 66 + .../trivy-full.json | 2391 +++++++++++++++ .../validation.json | 20 + .../verify_registry.py | 125 + ...ifecycle-consumer-pin-repair.md.source.txt | 153 + .../intake.json | 261 ++ .../lifecycle-commands.json | 277 ++ .../memo.json | 141 + .../native-backup-restore-protocol.md | 52 + .../native-preflight-initial-refusal.json | 5 + .../native-preflight-tracking-id-refusal.json | 9 + .../native-preflight.json | 43 + .../preflight-inputs.json | 16 + .../preflight.py | 25 + .../product-owner-review-validation.json | 25 + .../proposal.json | 55 + .../published-verification.json | 64 + .../registry-proof.json | 47 + .../review-refinement.json | 199 ++ .../rollback-admission.json | 52 + .../rollback-deployment.json | 267 ++ .../sbom.cdx.json | 2560 +++++++++++++++++ .../sealed-live-deployment.json | 286 ++ .../sealed-native-dependencies.json | 52 + .../security-summary.json | 35 + .../sqlite_readonly.py | 39 + .../test_change_guard.py | 91 + .../test_preflight_optimization.py | 37 + .../test_sqlite_readonly.py | 47 + .../trivy-full.json | 2391 +++++++++++++++ .../validation.json | 26 + .../verify_registry.py | 125 + ...se-release-amended-product-owner-review.md | 62 + ...11-purpose-release-product-owner-review.md | 73 + .../test_purpose_owner_mutation_negatives.py | 66 + workplans/ADHOC-2026-10-11.md | 59 + ...D-WP-0009-lifecycle-consumer-pin-repair.md | 51 +- 83 files changed, 22144 insertions(+), 3 deletions(-) create mode 100644 docs/evidence/2026-10-11-purpose-image-release/README.md create mode 100644 docs/evidence/2026-10-11-purpose-image-release/base-image-config.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/change_guard.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/check_installed.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/decision-packet.md create mode 100644 docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/image-config.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/image-manifest.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/original-packet-manifest.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/admission.candidate.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/service.candidate.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/README.md create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/change_guard.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/check_installed.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-config.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/intake.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/memo.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/proposal.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/published-verification.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/security-summary.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/validation.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md.source.txt create mode 100644 docs/evidence/2026-10-11-purpose-image-release/intake.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/memo.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md create mode 100644 docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/native-preflight.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/preflight.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/product-owner-review-validation.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/proposal.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/published-verification.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/registry-proof.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/review-refinement.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/sealed-native-dependencies.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/security-summary.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/sqlite_readonly.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/test_preflight_optimization.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/test_sqlite_readonly.py create mode 100644 docs/evidence/2026-10-11-purpose-image-release/trivy-full.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/validation.json create mode 100644 docs/evidence/2026-10-11-purpose-image-release/verify_registry.py create mode 100644 docs/reviews/2026-10-11-purpose-release-amended-product-owner-review.md create mode 100644 docs/reviews/2026-10-11-purpose-release-product-owner-review.md create mode 100644 tests/test_purpose_owner_mutation_negatives.py diff --git a/deploy/lifecycle/admission.candidate.json b/deploy/lifecycle/admission.candidate.json index a474665..ddc0cea 100644 --- a/deploy/lifecycle/admission.candidate.json +++ b/deploy/lifecycle/admission.candidate.json @@ -1,5 +1,5 @@ { - "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", "policy": { "origin": "http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080", "package": "informed-decision.compact-sitting", diff --git a/deploy/lifecycle/service.candidate.json b/deploy/lifecycle/service.candidate.json index 263b312..c6bd69e 100644 --- a/deploy/lifecycle/service.candidate.json +++ b/deploy/lifecycle/service.candidate.json @@ -96,7 +96,7 @@ "containers": [ { "name": "informed-decision", - "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", "securityContext": { "allowPrivilegeEscalation": false, "readOnlyRootFilesystem": true, diff --git a/docs/evidence/2026-10-11-purpose-image-release/README.md b/docs/evidence/2026-10-11-purpose-image-release/README.md new file mode 100644 index 0000000..bdef8cc --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/README.md @@ -0,0 +1,7 @@ +# Exact published purpose overlay and unapproved native release packet + +Actual CI task11484/run3 at3e4bcb26 published immutable763c. The registry proof, installedUID/mode/purpose checks, full scan/SBOM and actualbase comparison are retained. The full scan contains1fixable inheritedMEDIUM,0HIGH/CRITICAL; see owner follow-through/T05. Legacy serialization differences are disclosed. + +This stage prepares owner admission/service source candidates, protected native backup/restore protocol and20document offline-valid informed-decision memo. Native workload remains7f5/config6c. No native backup/export/restore, image change or human approval occurred. Initial failed CI/native preflight evidence remains in owner history. The original36path7c packet is fully archived and remains refinement-required, not approved. The amended gate adds pre-open stdlib readonlyschema5/integrity/count checks, explicitlocal/remote optimizationrefusal and actualCM/PVC UID/content/custody seals. The immutable original native capture stays sealed; future preflight requires unique output outside the sealed packet and owner source tree. + +The memo's actual rawscan attachment plus hash-linked rawSBOM/base scan totalamended boundedpacketbytes (under256KiB); source/image receipt binds raw evidence filenames and hashes. Full owner source manifest includes all raw evidence and helper/tests. Source preparation or local checks do not approve native execution. diff --git a/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json b/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json new file mode 100644 index 0000000..e8630f4 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json @@ -0,0 +1,146 @@ +{ + "architecture": "amd64", + "config": { + "User": "10001:10001", + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + }, + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Entrypoint": [ + "informed-decision-container" + ], + "WorkingDir": "/app" + }, + "created": "2026-10-05T01:03:56.675216821+02:00", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' && echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid>=2.42.3-r1' && addgroup -S -g 10001 informed && adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + ] + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json b/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json new file mode 100644 index 0000000..acb2a52 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json @@ -0,0 +1,2362 @@ +{ + "SchemaVersion": 2, + "Trivy": { + "Version": "0.74.0" + }, + "ReportID": "01a12890-e255-75ba-9a37-1fe16e6bef49", + "CreatedAt": "2026-10-11T01:25:46.197378104Z", + "ArtifactID": "sha256:6b6a81301d444377b872cc0e4993ffeb2f0625a8822f4603f711bb46f8bc0d39", + "ArtifactName": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "ArtifactType": "container_image", + "Metadata": { + "Size": 88242688, + "OS": { + "Family": "alpine", + "Name": "3.24.1" + }, + "ImageID": "sha256:d00553b452bacb9f80f8320b6140ec10b4d364b472c96d7280821a180fb3d862", + "DiffIDs": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + ], + "RepoDigests": [ + "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173" + ], + "Reference": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "ImageConfig": { + "architecture": "amd64", + "created": "2026-10-05T01:03:56.675216821+02:00", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' \u0026\u0026 echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid\u003e=2.42.3-r1' \u0026\u0026 addgroup -S -g 10001 informed \u0026\u0026 adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + ] + }, + "config": { + "Entrypoint": [ + "informed-decision-container" + ], + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "User": "10001:10001", + "WorkingDir": "/app", + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + } + } + }, + "Layers": [ + { + "Size": 8697856, + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "Size": 1538048, + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "Size": 47150592, + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "Size": 5120, + "Digest": "sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b", + "DiffID": "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe" + }, + { + "Size": 131584, + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "Size": 30705664, + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "Size": 12288, + "Digest": "sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f", + "DiffID": "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59" + }, + { + "Size": 1536, + "Digest": "sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3", + "DiffID": "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + } + ] + }, + "Results": [ + { + "Target": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 (alpine 3.24.1)", + "Class": "os-pkgs", + "Type": "alpine", + "Packages": [ + { + "ID": ".python-rundeps@20260901.001029", + "Name": ".python-rundeps", + "Identifier": { + "PURL": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch\u0026distro=3.24.1", + "UID": "4e26c99fecac1e97" + }, + "Version": "20260901.001029", + "Arch": "noarch", + "DependsOn": [ + "gdbm@1.26-r0", + "libbz2@1.0.8-r6", + "libcrypto3@3.5.8-r0", + "libffi@3.5.2-r1", + "libncursesw@6.6_p20260516-r0", + "libnsl@2.0.1-r2", + "libpanelw@6.6_p20260516-r0", + "libssl3@3.5.8-r0", + "libtirpc@1.3.5-r1", + "libuuid@2.42.3-r1", + "musl@1.2.6-r2", + "readline@8.3.3-r1", + "sqlite-libs@3.53.4-r0", + "xz-libs@5.8.3-r0", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:51d0c1e7d88a414345799f0309185c625013ef32", + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout@3.7.2-r1", + "Name": "alpine-baselayout", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "1b9c543300f8073e" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-baselayout-data@3.7.2-r1", + "busybox-binsh@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:f0fcfdc2f4da058af6473bc45c4eab62916225b2", + "InstalledFiles": [ + "etc/motd", + "etc/crontabs/root", + "etc/modprobe.d/aliases.conf", + "etc/modprobe.d/blacklist.conf", + "etc/modprobe.d/i386.conf", + "etc/profile.d/20locale.sh", + "etc/profile.d/README", + "etc/profile.d/color_prompt.sh.disabled", + "usr/lib/sysctl.d/00-alpine.conf", + "var/lock", + "var/run", + "var/spool/mail", + "var/spool/cron/crontabs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout-data@3.7.2-r1", + "Name": "alpine-baselayout-data", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "fcc3cd90122d8aa7" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508", + "InstalledFiles": [ + "etc/fstab", + "etc/group", + "etc/hostname", + "etc/hosts", + "etc/inittab", + "etc/modules", + "etc/mtab", + "etc/nsswitch.conf", + "etc/passwd", + "etc/profile", + "etc/protocols", + "etc/services", + "etc/shadow", + "etc/shells", + "etc/sysctl.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-keys@2.6-r0", + "Name": "alpine-keys", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb1f6c8fa74713e0" + }, + "Version": "2.6-r0", + "Arch": "x86_64", + "SrcName": "alpine-keys", + "SrcVersion": "2.6-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:d8d6b80e53c059a77e4915da78ba964f3ffea240", + "InstalledFiles": [ + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/loongarch64/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-release@3.24.1-r0", + "Name": "alpine-release", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "6cfad6f36e1f31aa" + }, + "Version": "3.24.1-r0", + "Arch": "x86_64", + "SrcName": "alpine-base", + "SrcVersion": "3.24.1-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-keys@2.6-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:bc6912a25cdc7733e0035ed509eceaa4026946e3", + "InstalledFiles": [ + "etc/alpine-release", + "etc/issue", + "etc/os-release", + "etc/secfixes.d/alpine", + "usr/lib/os-release" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "apk-tools@3.0.6-r0", + "Name": "apk-tools", + "Identifier": { + "PURL": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb2633c883b17a04" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "ca-certificates-bundle@20260611-r0", + "libapk@3.0.6-r0", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:043333589798a1f52e09ae63f026c6c8fa676d34", + "InstalledFiles": [ + "sbin/apk" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox@1.37.0-r31", + "Name": "busybox", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "771020c43c8440bf" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:b5405ebc02f7dd8be95b6265c54b243d5456ab8f", + "InstalledFiles": [ + "bin/busybox", + "etc/securetty", + "etc/busybox-paths.d/busybox", + "etc/logrotate.d/acpid", + "etc/network/if-up.d/dad", + "etc/udhcpc/udhcpc.conf", + "usr/share/udhcpc/default.script" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox-binsh@1.37.0-r31", + "Name": "busybox-binsh", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "1ec8a3d5d2b63297" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "busybox@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7", + "InstalledFiles": [ + "bin/sh" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates@20260611-r0", + "Name": "ca-certificates", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "2a3c316ee83c6198" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "busybox-binsh@1.37.0-r31", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:8f2a04abeb54b331e2970a0a0dffb7bd6bdde567", + "InstalledFiles": [ + "etc/ca-certificates.conf", + "etc/apk/protected_paths.d/ca-certificates.list", + "etc/ca-certificates/update.d/certhash", + "usr/bin/c_rehash", + "usr/sbin/update-ca-certificates", + "usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt", + "usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA1.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA2.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt", + "usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt", + "usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt", + "usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt", + "usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt", + "usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R1.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R3.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt", + "usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Izenpe.com.crt", + "usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt", + "usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_ECC_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_RSA_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_ECC_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_RSA_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_E46.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_R46.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA14.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA15.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/SwissSign_RSA_TLS_Root_CA_2022_-_1.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt", + "usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt", + "usr/share/ca-certificates/mozilla/TWCA_CYBER_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_ECC_Root_2020.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_RSA_Root_2023.crt", + "usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G3.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G4.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_RSA_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt", + "usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt", + "usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt", + "usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_TLS_Root_CA_2023.crt", + "usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates-bundle@20260611-r0", + "Name": "ca-certificates-bundle", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "20337c2ea28bef28" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c9534a03750bdfae341f10969016090fc11febbd", + "InstalledFiles": [ + "etc/ssl/cert.pem", + "etc/ssl/certs/ca-certificates.crt", + "etc/ssl1.1/cert.pem", + "etc/ssl1.1/certs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "gdbm@1.26-r0", + "Name": "gdbm", + "Identifier": { + "PURL": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "5eb1a3f86262ca77" + }, + "Version": "1.26-r0", + "Arch": "x86_64", + "SrcName": "gdbm", + "SrcVersion": "1.26-r0", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:619493d8124fe49a8ee1d8f7a1372cf7e3977337", + "InstalledFiles": [ + "usr/lib/libgdbm.so.6", + "usr/lib/libgdbm.so.6.0.0", + "usr/lib/libgdbm_compat.so.4", + "usr/lib/libgdbm_compat.so.4.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "keyutils-libs@1.6.3-r4", + "Name": "keyutils-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64\u0026distro=3.24.1", + "UID": "a1a29120eb342032" + }, + "Version": "1.6.3-r4", + "Arch": "x86_64", + "SrcName": "keyutils", + "SrcVersion": "1.6.3-r4", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:b7331c96f077fc3522ee4361a441d1097204cd90", + "InstalledFiles": [ + "usr/lib/libkeyutils.so.1", + "usr/lib/libkeyutils.so.1.10" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-conf@1.0-r2", + "Name": "krb5-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "e7cf94ba8b6dbc33" + }, + "Version": "1.0-r2", + "Arch": "x86_64", + "SrcName": "krb5-conf", + "SrcVersion": "1.0-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:40a11e0690a59e110367b62a80661024e9942a2d", + "InstalledFiles": [ + "etc/krb5.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-libs@1.22.2-r1", + "Name": "krb5-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "958f8b4a4f087dac" + }, + "Version": "1.22.2-r1", + "Arch": "x86_64", + "SrcName": "krb5", + "SrcVersion": "1.22.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "keyutils-libs@1.6.3-r4", + "krb5-conf@1.0-r2", + "libcom_err@1.47.4-r0", + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "libverto@0.3.2-r2", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:ef02346e21b817ff379e4601e5b1fc9760e5e31a", + "InstalledFiles": [ + "usr/lib/libgssapi_krb5.so.2", + "usr/lib/libgssapi_krb5.so.2.2", + "usr/lib/libgssrpc.so.4", + "usr/lib/libgssrpc.so.4.2", + "usr/lib/libk5crypto.so.3", + "usr/lib/libk5crypto.so.3.1", + "usr/lib/libkadm5clnt_mit.so.12", + "usr/lib/libkadm5clnt_mit.so.12.0", + "usr/lib/libkadm5srv_mit.so.12", + "usr/lib/libkadm5srv_mit.so.12.0", + "usr/lib/libkdb5.so.10", + "usr/lib/libkdb5.so.10.0", + "usr/lib/libkrad.so.0", + "usr/lib/libkrad.so.0.0", + "usr/lib/libkrb5.so.3", + "usr/lib/libkrb5.so.3.3", + "usr/lib/libkrb5support.so.0", + "usr/lib/libkrb5support.so.0.1", + "usr/lib/krb5/plugins/kdb/db2.so", + "usr/lib/krb5/plugins/preauth/otp.so", + "usr/lib/krb5/plugins/preauth/spake.so", + "usr/lib/krb5/plugins/preauth/test.so", + "usr/lib/krb5/plugins/tls/k5tls.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libapk@3.0.6-r0", + "Name": "libapk", + "Identifier": { + "PURL": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "a35b8b9b3219513a" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:523a8f58104589f74f743d501c81bf6517155378", + "InstalledFiles": [ + "usr/lib/libapk.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libbz2@1.0.8-r6", + "Name": "libbz2", + "Identifier": { + "PURL": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64\u0026distro=3.24.1", + "UID": "48e17539404e2d56" + }, + "Version": "1.0.8-r6", + "Arch": "x86_64", + "SrcName": "bzip2", + "SrcVersion": "1.0.8-r6", + "Licenses": [ + "bzip-2-1.0.6" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:08566ba5c7af97c25474be8b24e8b48f0116b67d", + "InstalledFiles": [ + "usr/lib/libbz2.so.1", + "usr/lib/libbz2.so.1.0.8" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcom_err@1.47.4-r0", + "Name": "libcom_err", + "Identifier": { + "PURL": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "3fc35a3f66d192af" + }, + "Version": "1.47.4-r0", + "Arch": "x86_64", + "SrcName": "e2fsprogs", + "SrcVersion": "1.47.4-r0", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later", + "BSD-3-Clause", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef", + "InstalledFiles": [ + "usr/lib/libcom_err.so.2", + "usr/lib/libcom_err.so.2.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcrypto3@3.5.8-r0", + "Name": "libcrypto3", + "Identifier": { + "PURL": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "4299bba2ba9c96aa" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3", + "InstalledFiles": [ + "etc/ssl/ct_log_list.cnf", + "etc/ssl/ct_log_list.cnf.dist", + "etc/ssl/openssl.cnf", + "etc/ssl/openssl.cnf.dist", + "usr/lib/libcrypto.so.3", + "usr/lib/engines-3/afalg.so", + "usr/lib/engines-3/capi.so", + "usr/lib/engines-3/loader_attic.so", + "usr/lib/engines-3/padlock.so", + "usr/lib/ossl-modules/legacy.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libffi@3.5.2-r1", + "Name": "libffi", + "Identifier": { + "PURL": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "d3eaa921287b1ccd" + }, + "Version": "3.5.2-r1", + "Arch": "x86_64", + "SrcName": "libffi", + "SrcVersion": "3.5.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a", + "InstalledFiles": [ + "usr/lib/libffi.so.8", + "usr/lib/libffi.so.8.2.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libintl@1.0-r0", + "Name": "libintl", + "Identifier": { + "PURL": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "25c18808d8fc87e0" + }, + "Version": "1.0-r0", + "Arch": "x86_64", + "SrcName": "gettext", + "SrcVersion": "1.0-r0", + "Licenses": [ + "LGPL-2.1-or-later" + ], + "Maintainer": "Carlo Landmeter \u003cclandmeter@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:282d6642ccac87237e43a864159d73cf5abe7550", + "InstalledFiles": [ + "usr/lib/libintl.so.8", + "usr/lib/libintl.so.8.4.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libncursesw@6.6_p20260516-r0", + "Name": "libncursesw", + "Identifier": { + "PURL": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e8939f45e2191bcc" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9f318e6e324d6827274829194cf6ac6afbaded12", + "InstalledFiles": [ + "usr/lib/libncursesw.so.6", + "usr/lib/libncursesw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libnsl@2.0.1-r2", + "Name": "libnsl", + "Identifier": { + "PURL": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "3d893c60d41da67b" + }, + "Version": "2.0.1-r2", + "Arch": "x86_64", + "SrcName": "libnsl", + "SrcVersion": "2.0.1-r2", + "Licenses": [ + "LGPL-2.0-or-later" + ], + "DependsOn": [ + "libintl@1.0-r0", + "libtirpc@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5194adbf26560b52be318481a7af294ab05fd795", + "InstalledFiles": [ + "usr/lib/libnsl.so.3", + "usr/lib/libnsl.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libpanelw@6.6_p20260516-r0", + "Name": "libpanelw", + "Identifier": { + "PURL": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "ef1ad9bb256b373" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:149bdc434232ed11fc5bb975ba519a07154a6f56", + "InstalledFiles": [ + "usr/lib/libpanelw.so.6", + "usr/lib/libpanelw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libssl3@3.5.8-r0", + "Name": "libssl3", + "Identifier": { + "PURL": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "f290ab59b88b1c4a" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5f9b1e55d821953d2e2b1db322dad70a3b5041ea", + "InstalledFiles": [ + "usr/lib/libssl.so.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc@1.3.5-r1", + "Name": "libtirpc", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "471c8d955ca03be5" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "krb5-libs@1.22.2-r1", + "libtirpc-conf@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:c32865bd86a8b8829d152279cabbc5ac6d430eb2", + "InstalledFiles": [ + "usr/lib/libtirpc.so.3", + "usr/lib/libtirpc.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc-conf@1.3.5-r1", + "Name": "libtirpc-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "3437392c14aad33f" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:0c17d9988dc986c90e22f79778df047eca9973ff", + "InstalledFiles": [ + "etc/bindresvport.blacklist", + "etc/netconfig" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libuuid@2.42.3-r1", + "Name": "libuuid", + "Identifier": { + "PURL": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "c444e9cdd1bdda40" + }, + "Version": "2.42.3-r1", + "Arch": "x86_64", + "SrcName": "util-linux", + "SrcVersion": "2.42.3-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + "Digest": "sha1:8f041ef637ad75f381cc0c034f2afbbb0303264e", + "InstalledFiles": [ + "usr/lib/libuuid.so.1", + "usr/lib/libuuid.so.1.3.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libverto@0.3.2-r2", + "Name": "libverto", + "Identifier": { + "PURL": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "9df4321a283a6cf6" + }, + "Version": "0.3.2-r2", + "Arch": "x86_64", + "SrcName": "libverto", + "SrcVersion": "0.3.2-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Francesco Colista \u003cfcolista@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:73233059338142e4ac6d8fb8bb0074e93da75dc1", + "InstalledFiles": [ + "usr/lib/libverto.so.1", + "usr/lib/libverto.so.1.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl@1.2.6-r2", + "Name": "musl", + "Identifier": { + "PURL": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "1f8cb44befe503d4" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:0f7e5827e4e1a73631beda27b78431a8ba240e05", + "InstalledFiles": [ + "lib/ld-musl-x86_64.so.1", + "lib/libc.musl-x86_64.so.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl-utils@1.2.6-r2", + "Name": "musl-utils", + "Identifier": { + "PURL": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "4497482ec1d943e1" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT", + "BSD-2-Clause", + "GPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "scanelf@1.3.9-r1" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:75ada3c48d63ec5d87c42fdf934a3fdd11298dc5", + "InstalledFiles": [ + "sbin/ldconfig", + "usr/bin/getconf", + "usr/bin/getent", + "usr/bin/iconv", + "usr/bin/ldd" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ncurses-terminfo-base@6.6_p20260516-r0", + "Name": "ncurses-terminfo-base", + "Identifier": { + "PURL": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e7fac5c6a6e9ae8" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9d551d828e9c8ee52c5801c1d6046828ebf15752", + "InstalledFiles": [ + "etc/terminfo/a/alacritty", + "etc/terminfo/a/ansi", + "etc/terminfo/d/dumb", + "etc/terminfo/g/gnome", + "etc/terminfo/g/gnome-256color", + "etc/terminfo/k/konsole", + "etc/terminfo/k/konsole-256color", + "etc/terminfo/k/konsole-linux", + "etc/terminfo/l/linux", + "etc/terminfo/p/putty", + "etc/terminfo/p/putty-256color", + "etc/terminfo/r/rxvt", + "etc/terminfo/r/rxvt-256color", + "etc/terminfo/s/screen", + "etc/terminfo/s/screen-256color", + "etc/terminfo/s/st-0.6", + "etc/terminfo/s/st-0.7", + "etc/terminfo/s/st-0.8", + "etc/terminfo/s/st-0.8.5", + "etc/terminfo/s/st-16color", + "etc/terminfo/s/st-256color", + "etc/terminfo/s/st-direct", + "etc/terminfo/s/sun", + "etc/terminfo/t/terminator", + "etc/terminfo/t/terminology", + "etc/terminfo/t/terminology-0.6.1", + "etc/terminfo/t/terminology-1.0.0", + "etc/terminfo/t/terminology-1.8.1", + "etc/terminfo/t/tmux", + "etc/terminfo/t/tmux-256color", + "etc/terminfo/v/vt100", + "etc/terminfo/v/vt102", + "etc/terminfo/v/vt200", + "etc/terminfo/v/vt220", + "etc/terminfo/v/vt52", + "etc/terminfo/v/vte", + "etc/terminfo/v/vte-256color", + "etc/terminfo/x/xterm", + "etc/terminfo/x/xterm-256color", + "etc/terminfo/x/xterm-color", + "etc/terminfo/x/xterm-xfree86" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "readline@8.3.3-r1", + "Name": "readline", + "Identifier": { + "PURL": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "f50058781c93e1f2" + }, + "Version": "8.3.3-r1", + "Arch": "x86_64", + "SrcName": "readline", + "SrcVersion": "8.3.3-r1", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "qaqland \u003cqaq@qaq.land\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:945b16e378bc00e44d89d4de8124bba7647fdf4d", + "InstalledFiles": [ + "etc/inputrc", + "usr/lib/libreadline.so.8", + "usr/lib/libreadline.so.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "scanelf@1.3.9-r1", + "Name": "scanelf", + "Identifier": { + "PURL": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "936394657a1626fb" + }, + "Version": "1.3.9-r1", + "Arch": "x86_64", + "SrcName": "pax-utils", + "SrcVersion": "1.3.9-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:013f903d0ba219673aebbdd04f74bb5ed82b01f0", + "InstalledFiles": [ + "usr/bin/scanelf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "sqlite-libs@3.53.4-r0", + "Name": "sqlite-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "8b10aee2ccc192de" + }, + "Version": "3.53.4-r0", + "Arch": "x86_64", + "SrcName": "sqlite", + "SrcVersion": "3.53.4-r0", + "Licenses": [ + "blessing" + ], + "Maintainer": "Jingyun Hua \u003chuajingyun@loongson.cn\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:f7630ceb37c232b6609861aeab6cdb9cd120e6fa", + "InstalledFiles": [ + "usr/lib/libsqlite3.so.0", + "usr/lib/libsqlite3.so.3.53.4" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ssl_client@1.37.0-r31", + "Name": "ssl_client", + "Identifier": { + "PURL": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "d42e31f15a4ce47a" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c220f4a5125a313af733e98def94132bb1e9d40d", + "InstalledFiles": [ + "usr/bin/ssl_client" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "tzdata@2026c-r0", + "Name": "tzdata", + "Identifier": { + "PURL": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "52c6b50eff629f9d" + }, + "Version": "2026c-r0", + "Arch": "x86_64", + "SrcName": "tzdata", + "SrcVersion": "2026c-r0", + "Licenses": [ + "Public-Domain" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:61f7544ecd8dd63eac23fe3e645702fda92ef02a", + "InstalledFiles": [ + "usr/share/zoneinfo/CET", + "usr/share/zoneinfo/CST6CDT", + "usr/share/zoneinfo/Cuba", + "usr/share/zoneinfo/EET", + "usr/share/zoneinfo/EST", + "usr/share/zoneinfo/EST5EDT", + "usr/share/zoneinfo/Egypt", + "usr/share/zoneinfo/Eire", + "usr/share/zoneinfo/Factory", + "usr/share/zoneinfo/GB", + "usr/share/zoneinfo/GB-Eire", + "usr/share/zoneinfo/GMT", + "usr/share/zoneinfo/GMT+0", + "usr/share/zoneinfo/GMT-0", + "usr/share/zoneinfo/GMT0", + "usr/share/zoneinfo/Greenwich", + "usr/share/zoneinfo/HST", + "usr/share/zoneinfo/Hongkong", + "usr/share/zoneinfo/Iceland", + "usr/share/zoneinfo/Iran", + "usr/share/zoneinfo/Israel", + "usr/share/zoneinfo/Jamaica", + "usr/share/zoneinfo/Japan", + "usr/share/zoneinfo/Kwajalein", + "usr/share/zoneinfo/Libya", + "usr/share/zoneinfo/MET", + "usr/share/zoneinfo/MST", + "usr/share/zoneinfo/MST7MDT", + "usr/share/zoneinfo/NZ", + "usr/share/zoneinfo/NZ-CHAT", + "usr/share/zoneinfo/Navajo", + "usr/share/zoneinfo/PRC", + "usr/share/zoneinfo/PST8PDT", + "usr/share/zoneinfo/Poland", + "usr/share/zoneinfo/Portugal", + "usr/share/zoneinfo/ROC", + "usr/share/zoneinfo/ROK", + "usr/share/zoneinfo/Singapore", + "usr/share/zoneinfo/Turkey", + "usr/share/zoneinfo/UCT", + "usr/share/zoneinfo/UTC", + "usr/share/zoneinfo/Universal", + "usr/share/zoneinfo/W-SU", + "usr/share/zoneinfo/WET", + "usr/share/zoneinfo/Zulu", + "usr/share/zoneinfo/iso3166.tab", + "usr/share/zoneinfo/leap-seconds.list", + "usr/share/zoneinfo/posixrules", + "usr/share/zoneinfo/zone.tab", + "usr/share/zoneinfo/zone1970.tab", + "usr/share/zoneinfo/Africa/Abidjan", + "usr/share/zoneinfo/Africa/Accra", + "usr/share/zoneinfo/Africa/Addis_Ababa", + "usr/share/zoneinfo/Africa/Algiers", + "usr/share/zoneinfo/Africa/Asmara", + "usr/share/zoneinfo/Africa/Asmera", + "usr/share/zoneinfo/Africa/Bamako", + "usr/share/zoneinfo/Africa/Bangui", + "usr/share/zoneinfo/Africa/Banjul", + "usr/share/zoneinfo/Africa/Bissau", + "usr/share/zoneinfo/Africa/Blantyre", + "usr/share/zoneinfo/Africa/Brazzaville", + "usr/share/zoneinfo/Africa/Bujumbura", + "usr/share/zoneinfo/Africa/Cairo", + "usr/share/zoneinfo/Africa/Casablanca", + "usr/share/zoneinfo/Africa/Ceuta", + "usr/share/zoneinfo/Africa/Conakry", + "usr/share/zoneinfo/Africa/Dakar", + "usr/share/zoneinfo/Africa/Dar_es_Salaam", + "usr/share/zoneinfo/Africa/Djibouti", + "usr/share/zoneinfo/Africa/Douala", + "usr/share/zoneinfo/Africa/El_Aaiun", + "usr/share/zoneinfo/Africa/Freetown", + "usr/share/zoneinfo/Africa/Gaborone", + "usr/share/zoneinfo/Africa/Harare", + "usr/share/zoneinfo/Africa/Johannesburg", + "usr/share/zoneinfo/Africa/Juba", + "usr/share/zoneinfo/Africa/Kampala", + "usr/share/zoneinfo/Africa/Khartoum", + "usr/share/zoneinfo/Africa/Kigali", + "usr/share/zoneinfo/Africa/Kinshasa", + "usr/share/zoneinfo/Africa/Lagos", + "usr/share/zoneinfo/Africa/Libreville", + "usr/share/zoneinfo/Africa/Lome", + "usr/share/zoneinfo/Africa/Luanda", + "usr/share/zoneinfo/Africa/Lubumbashi", + "usr/share/zoneinfo/Africa/Lusaka", + "usr/share/zoneinfo/Africa/Malabo", + "usr/share/zoneinfo/Africa/Maputo", + "usr/share/zoneinfo/Africa/Maseru", + "usr/share/zoneinfo/Africa/Mbabane", + "usr/share/zoneinfo/Africa/Mogadishu", + "usr/share/zoneinfo/Africa/Monrovia", + "usr/share/zoneinfo/Africa/Nairobi", + "usr/share/zoneinfo/Africa/Ndjamena", + "usr/share/zoneinfo/Africa/Niamey", + "usr/share/zoneinfo/Africa/Nouakchott", + "usr/share/zoneinfo/Africa/Ouagadougou", + "usr/share/zoneinfo/Africa/Porto-Novo", + "usr/share/zoneinfo/Africa/Sao_Tome", + "usr/share/zoneinfo/Africa/Timbuktu", + "usr/share/zoneinfo/Africa/Tripoli", + "usr/share/zoneinfo/Africa/Tunis", + "usr/share/zoneinfo/Africa/Windhoek", + "usr/share/zoneinfo/America/Adak", + "usr/share/zoneinfo/America/Anchorage", + "usr/share/zoneinfo/America/Anguilla", + "usr/share/zoneinfo/America/Antigua", + "usr/share/zoneinfo/America/Araguaina", + "usr/share/zoneinfo/America/Aruba", + "usr/share/zoneinfo/America/Asuncion", + "usr/share/zoneinfo/America/Atikokan", + "usr/share/zoneinfo/America/Atka", + "usr/share/zoneinfo/America/Bahia", + "usr/share/zoneinfo/America/Bahia_Banderas", + "usr/share/zoneinfo/America/Barbados", + "usr/share/zoneinfo/America/Belem", + "usr/share/zoneinfo/America/Belize", + "usr/share/zoneinfo/America/Blanc-Sablon", + "usr/share/zoneinfo/America/Boa_Vista", + "usr/share/zoneinfo/America/Bogota", + "usr/share/zoneinfo/America/Boise", + "usr/share/zoneinfo/America/Buenos_Aires", + "usr/share/zoneinfo/America/Cambridge_Bay", + "usr/share/zoneinfo/America/Campo_Grande", + "usr/share/zoneinfo/America/Cancun", + "usr/share/zoneinfo/America/Caracas", + "usr/share/zoneinfo/America/Catamarca", + "usr/share/zoneinfo/America/Cayenne", + "usr/share/zoneinfo/America/Cayman", + "usr/share/zoneinfo/America/Chicago", + "usr/share/zoneinfo/America/Chihuahua", + "usr/share/zoneinfo/America/Ciudad_Juarez", + "usr/share/zoneinfo/America/Coral_Harbour", + "usr/share/zoneinfo/America/Cordoba", + "usr/share/zoneinfo/America/Costa_Rica", + "usr/share/zoneinfo/America/Coyhaique", + "usr/share/zoneinfo/America/Creston", + "usr/share/zoneinfo/America/Cuiaba", + "usr/share/zoneinfo/America/Curacao", + "usr/share/zoneinfo/America/Danmarkshavn", + "usr/share/zoneinfo/America/Dawson", + "usr/share/zoneinfo/America/Dawson_Creek", + "usr/share/zoneinfo/America/Denver", + "usr/share/zoneinfo/America/Detroit", + "usr/share/zoneinfo/America/Dominica", + "usr/share/zoneinfo/America/Edmonton", + "usr/share/zoneinfo/America/Eirunepe", + "usr/share/zoneinfo/America/El_Salvador", + "usr/share/zoneinfo/America/Ensenada", + "usr/share/zoneinfo/America/Fort_Nelson", + "usr/share/zoneinfo/America/Fort_Wayne", + "usr/share/zoneinfo/America/Fortaleza", + "usr/share/zoneinfo/America/Glace_Bay", + "usr/share/zoneinfo/America/Godthab", + "usr/share/zoneinfo/America/Goose_Bay", + "usr/share/zoneinfo/America/Grand_Turk", + "usr/share/zoneinfo/America/Grenada", + "usr/share/zoneinfo/America/Guadeloupe", + "usr/share/zoneinfo/America/Guatemala", + "usr/share/zoneinfo/America/Guayaquil", + "usr/share/zoneinfo/America/Guyana", + "usr/share/zoneinfo/America/Halifax", + "usr/share/zoneinfo/America/Havana", + "usr/share/zoneinfo/America/Hermosillo", + "usr/share/zoneinfo/America/Indianapolis", + "usr/share/zoneinfo/America/Inuvik", + "usr/share/zoneinfo/America/Iqaluit", + "usr/share/zoneinfo/America/Jamaica", + "usr/share/zoneinfo/America/Jujuy", + "usr/share/zoneinfo/America/Juneau", + "usr/share/zoneinfo/America/Knox_IN", + "usr/share/zoneinfo/America/Kralendijk", + "usr/share/zoneinfo/America/La_Paz", + "usr/share/zoneinfo/America/Lima", + "usr/share/zoneinfo/America/Los_Angeles", + "usr/share/zoneinfo/America/Louisville", + "usr/share/zoneinfo/America/Lower_Princes", + "usr/share/zoneinfo/America/Maceio", + "usr/share/zoneinfo/America/Managua", + "usr/share/zoneinfo/America/Manaus", + "usr/share/zoneinfo/America/Marigot", + "usr/share/zoneinfo/America/Martinique", + "usr/share/zoneinfo/America/Matamoros", + "usr/share/zoneinfo/America/Mazatlan", + "usr/share/zoneinfo/America/Mendoza", + "usr/share/zoneinfo/America/Menominee", + "usr/share/zoneinfo/America/Merida", + "usr/share/zoneinfo/America/Metlakatla", + "usr/share/zoneinfo/America/Mexico_City", + "usr/share/zoneinfo/America/Miquelon", + "usr/share/zoneinfo/America/Moncton", + "usr/share/zoneinfo/America/Monterrey", + "usr/share/zoneinfo/America/Montevideo", + "usr/share/zoneinfo/America/Montreal", + "usr/share/zoneinfo/America/Montserrat", + "usr/share/zoneinfo/America/Nassau", + "usr/share/zoneinfo/America/New_York", + "usr/share/zoneinfo/America/Nipigon", + "usr/share/zoneinfo/America/Nome", + "usr/share/zoneinfo/America/Noronha", + "usr/share/zoneinfo/America/Nuuk", + "usr/share/zoneinfo/America/Ojinaga", + "usr/share/zoneinfo/America/Panama", + "usr/share/zoneinfo/America/Pangnirtung", + "usr/share/zoneinfo/America/Paramaribo", + "usr/share/zoneinfo/America/Phoenix", + "usr/share/zoneinfo/America/Port-au-Prince", + "usr/share/zoneinfo/America/Port_of_Spain", + "usr/share/zoneinfo/America/Porto_Acre", + "usr/share/zoneinfo/America/Porto_Velho", + "usr/share/zoneinfo/America/Puerto_Rico", + "usr/share/zoneinfo/America/Punta_Arenas", + "usr/share/zoneinfo/America/Rainy_River", + "usr/share/zoneinfo/America/Rankin_Inlet", + "usr/share/zoneinfo/America/Recife", + "usr/share/zoneinfo/America/Regina", + "usr/share/zoneinfo/America/Resolute", + "usr/share/zoneinfo/America/Rio_Branco", + "usr/share/zoneinfo/America/Rosario", + "usr/share/zoneinfo/America/Santa_Isabel", + "usr/share/zoneinfo/America/Santarem", + "usr/share/zoneinfo/America/Santiago", + "usr/share/zoneinfo/America/Santo_Domingo", + "usr/share/zoneinfo/America/Sao_Paulo", + "usr/share/zoneinfo/America/Scoresbysund", + "usr/share/zoneinfo/America/Shiprock", + "usr/share/zoneinfo/America/Sitka", + "usr/share/zoneinfo/America/St_Barthelemy", + "usr/share/zoneinfo/America/St_Johns", + "usr/share/zoneinfo/America/St_Kitts", + "usr/share/zoneinfo/America/St_Lucia", + "usr/share/zoneinfo/America/St_Thomas", + "usr/share/zoneinfo/America/St_Vincent", + "usr/share/zoneinfo/America/Swift_Current", + "usr/share/zoneinfo/America/Tegucigalpa", + "usr/share/zoneinfo/America/Thule", + "usr/share/zoneinfo/America/Thunder_Bay", + "usr/share/zoneinfo/America/Tijuana", + "usr/share/zoneinfo/America/Toronto", + "usr/share/zoneinfo/America/Tortola", + "usr/share/zoneinfo/America/Vancouver", + "usr/share/zoneinfo/America/Virgin", + "usr/share/zoneinfo/America/Whitehorse", + "usr/share/zoneinfo/America/Winnipeg", + "usr/share/zoneinfo/America/Yakutat", + "usr/share/zoneinfo/America/Yellowknife", + "usr/share/zoneinfo/America/Argentina/Buenos_Aires", + "usr/share/zoneinfo/America/Argentina/Catamarca", + "usr/share/zoneinfo/America/Argentina/ComodRivadavia", + "usr/share/zoneinfo/America/Argentina/Cordoba", + "usr/share/zoneinfo/America/Argentina/Jujuy", + "usr/share/zoneinfo/America/Argentina/La_Rioja", + "usr/share/zoneinfo/America/Argentina/Mendoza", + "usr/share/zoneinfo/America/Argentina/Rio_Gallegos", + "usr/share/zoneinfo/America/Argentina/Salta", + "usr/share/zoneinfo/America/Argentina/San_Juan", + "usr/share/zoneinfo/America/Argentina/San_Luis", + "usr/share/zoneinfo/America/Argentina/Tucuman", + "usr/share/zoneinfo/America/Argentina/Ushuaia", + "usr/share/zoneinfo/America/Indiana/Indianapolis", + "usr/share/zoneinfo/America/Indiana/Knox", + "usr/share/zoneinfo/America/Indiana/Marengo", + "usr/share/zoneinfo/America/Indiana/Petersburg", + "usr/share/zoneinfo/America/Indiana/Tell_City", + "usr/share/zoneinfo/America/Indiana/Vevay", + "usr/share/zoneinfo/America/Indiana/Vincennes", + "usr/share/zoneinfo/America/Indiana/Winamac", + "usr/share/zoneinfo/America/Kentucky/Louisville", + "usr/share/zoneinfo/America/Kentucky/Monticello", + "usr/share/zoneinfo/America/North_Dakota/Beulah", + "usr/share/zoneinfo/America/North_Dakota/Center", + "usr/share/zoneinfo/America/North_Dakota/New_Salem", + "usr/share/zoneinfo/Antarctica/Casey", + "usr/share/zoneinfo/Antarctica/Davis", + "usr/share/zoneinfo/Antarctica/DumontDUrville", + "usr/share/zoneinfo/Antarctica/Macquarie", + "usr/share/zoneinfo/Antarctica/Mawson", + "usr/share/zoneinfo/Antarctica/McMurdo", + "usr/share/zoneinfo/Antarctica/Palmer", + "usr/share/zoneinfo/Antarctica/Rothera", + "usr/share/zoneinfo/Antarctica/South_Pole", + "usr/share/zoneinfo/Antarctica/Syowa", + "usr/share/zoneinfo/Antarctica/Troll", + "usr/share/zoneinfo/Antarctica/Vostok", + "usr/share/zoneinfo/Arctic/Longyearbyen", + "usr/share/zoneinfo/Asia/Aden", + "usr/share/zoneinfo/Asia/Almaty", + "usr/share/zoneinfo/Asia/Amman", + "usr/share/zoneinfo/Asia/Anadyr", + "usr/share/zoneinfo/Asia/Aqtau", + "usr/share/zoneinfo/Asia/Aqtobe", + "usr/share/zoneinfo/Asia/Ashgabat", + "usr/share/zoneinfo/Asia/Ashkhabad", + "usr/share/zoneinfo/Asia/Atyrau", + "usr/share/zoneinfo/Asia/Baghdad", + "usr/share/zoneinfo/Asia/Bahrain", + "usr/share/zoneinfo/Asia/Baku", + "usr/share/zoneinfo/Asia/Bangkok", + "usr/share/zoneinfo/Asia/Barnaul", + "usr/share/zoneinfo/Asia/Beirut", + "usr/share/zoneinfo/Asia/Bishkek", + "usr/share/zoneinfo/Asia/Brunei", + "usr/share/zoneinfo/Asia/Calcutta", + "usr/share/zoneinfo/Asia/Chita", + "usr/share/zoneinfo/Asia/Choibalsan", + "usr/share/zoneinfo/Asia/Chongqing", + "usr/share/zoneinfo/Asia/Chungking", + "usr/share/zoneinfo/Asia/Colombo", + "usr/share/zoneinfo/Asia/Dacca", + "usr/share/zoneinfo/Asia/Damascus", + "usr/share/zoneinfo/Asia/Dhaka", + "usr/share/zoneinfo/Asia/Dili", + "usr/share/zoneinfo/Asia/Dubai", + "usr/share/zoneinfo/Asia/Dushanbe", + "usr/share/zoneinfo/Asia/Famagusta", + "usr/share/zoneinfo/Asia/Gaza", + "usr/share/zoneinfo/Asia/Harbin", + "usr/share/zoneinfo/Asia/Hebron", + "usr/share/zoneinfo/Asia/Ho_Chi_Minh", + "usr/share/zoneinfo/Asia/Hong_Kong", + "usr/share/zoneinfo/Asia/Hovd", + "usr/share/zoneinfo/Asia/Irkutsk", + "usr/share/zoneinfo/Asia/Istanbul", + "usr/share/zoneinfo/Asia/Jakarta", + "usr/share/zoneinfo/Asia/Jayapura", + "usr/share/zoneinfo/Asia/Jerusalem", + "usr/share/zoneinfo/Asia/Kabul", + "usr/share/zoneinfo/Asia/Kamchatka", + "usr/share/zoneinfo/Asia/Karachi", + "usr/share/zoneinfo/Asia/Kashgar", + "usr/share/zoneinfo/Asia/Kathmandu", + "usr/share/zoneinfo/Asia/Katmandu", + "usr/share/zoneinfo/Asia/Khandyga", + "usr/share/zoneinfo/Asia/Kolkata", + "usr/share/zoneinfo/Asia/Krasnoyarsk", + "usr/share/zoneinfo/Asia/Kuala_Lumpur", + "usr/share/zoneinfo/Asia/Kuching", + "usr/share/zoneinfo/Asia/Kuwait", + "usr/share/zoneinfo/Asia/Macao", + "usr/share/zoneinfo/Asia/Macau", + "usr/share/zoneinfo/Asia/Magadan", + "usr/share/zoneinfo/Asia/Makassar", + "usr/share/zoneinfo/Asia/Manila", + "usr/share/zoneinfo/Asia/Muscat", + "usr/share/zoneinfo/Asia/Nicosia", + "usr/share/zoneinfo/Asia/Novokuznetsk", + "usr/share/zoneinfo/Asia/Novosibirsk", + "usr/share/zoneinfo/Asia/Omsk", + "usr/share/zoneinfo/Asia/Oral", + "usr/share/zoneinfo/Asia/Phnom_Penh", + "usr/share/zoneinfo/Asia/Pontianak", + "usr/share/zoneinfo/Asia/Pyongyang", + "usr/share/zoneinfo/Asia/Qatar", + "usr/share/zoneinfo/Asia/Qostanay", + "usr/share/zoneinfo/Asia/Qyzylorda", + "usr/share/zoneinfo/Asia/Rangoon", + "usr/share/zoneinfo/Asia/Riyadh", + "usr/share/zoneinfo/Asia/Saigon", + "usr/share/zoneinfo/Asia/Sakhalin", + "usr/share/zoneinfo/Asia/Samarkand", + "usr/share/zoneinfo/Asia/Seoul", + "usr/share/zoneinfo/Asia/Shanghai", + "usr/share/zoneinfo/Asia/Singapore", + "usr/share/zoneinfo/Asia/Srednekolymsk", + "usr/share/zoneinfo/Asia/Taipei", + "usr/share/zoneinfo/Asia/Tashkent", + "usr/share/zoneinfo/Asia/Tbilisi", + "usr/share/zoneinfo/Asia/Tehran", + "usr/share/zoneinfo/Asia/Tel_Aviv", + "usr/share/zoneinfo/Asia/Thimbu", + "usr/share/zoneinfo/Asia/Thimphu", + "usr/share/zoneinfo/Asia/Tokyo", + "usr/share/zoneinfo/Asia/Tomsk", + "usr/share/zoneinfo/Asia/Ujung_Pandang", + "usr/share/zoneinfo/Asia/Ulaanbaatar", + "usr/share/zoneinfo/Asia/Ulan_Bator", + "usr/share/zoneinfo/Asia/Urumqi", + "usr/share/zoneinfo/Asia/Ust-Nera", + "usr/share/zoneinfo/Asia/Vientiane", + "usr/share/zoneinfo/Asia/Vladivostok", + "usr/share/zoneinfo/Asia/Yakutsk", + "usr/share/zoneinfo/Asia/Yangon", + "usr/share/zoneinfo/Asia/Yekaterinburg", + "usr/share/zoneinfo/Asia/Yerevan", + "usr/share/zoneinfo/Atlantic/Azores", + "usr/share/zoneinfo/Atlantic/Bermuda", + "usr/share/zoneinfo/Atlantic/Canary", + "usr/share/zoneinfo/Atlantic/Cape_Verde", + "usr/share/zoneinfo/Atlantic/Faeroe", + "usr/share/zoneinfo/Atlantic/Faroe", + "usr/share/zoneinfo/Atlantic/Jan_Mayen", + "usr/share/zoneinfo/Atlantic/Madeira", + "usr/share/zoneinfo/Atlantic/Reykjavik", + "usr/share/zoneinfo/Atlantic/South_Georgia", + "usr/share/zoneinfo/Atlantic/St_Helena", + "usr/share/zoneinfo/Atlantic/Stanley", + "usr/share/zoneinfo/Australia/ACT", + "usr/share/zoneinfo/Australia/Adelaide", + "usr/share/zoneinfo/Australia/Brisbane", + "usr/share/zoneinfo/Australia/Broken_Hill", + "usr/share/zoneinfo/Australia/Canberra", + "usr/share/zoneinfo/Australia/Currie", + "usr/share/zoneinfo/Australia/Darwin", + "usr/share/zoneinfo/Australia/Eucla", + "usr/share/zoneinfo/Australia/Hobart", + "usr/share/zoneinfo/Australia/LHI", + "usr/share/zoneinfo/Australia/Lindeman", + "usr/share/zoneinfo/Australia/Lord_Howe", + "usr/share/zoneinfo/Australia/Melbourne", + "usr/share/zoneinfo/Australia/NSW", + "usr/share/zoneinfo/Australia/North", + "usr/share/zoneinfo/Australia/Perth", + "usr/share/zoneinfo/Australia/Queensland", + "usr/share/zoneinfo/Australia/South", + "usr/share/zoneinfo/Australia/Sydney", + "usr/share/zoneinfo/Australia/Tasmania", + "usr/share/zoneinfo/Australia/Victoria", + "usr/share/zoneinfo/Australia/West", + "usr/share/zoneinfo/Australia/Yancowinna", + "usr/share/zoneinfo/Brazil/Acre", + "usr/share/zoneinfo/Brazil/DeNoronha", + "usr/share/zoneinfo/Brazil/East", + "usr/share/zoneinfo/Brazil/West", + "usr/share/zoneinfo/Canada/Atlantic", + "usr/share/zoneinfo/Canada/Central", + "usr/share/zoneinfo/Canada/Eastern", + "usr/share/zoneinfo/Canada/Mountain", + "usr/share/zoneinfo/Canada/Newfoundland", + "usr/share/zoneinfo/Canada/Pacific", + "usr/share/zoneinfo/Canada/Saskatchewan", + "usr/share/zoneinfo/Canada/Yukon", + "usr/share/zoneinfo/Chile/Continental", + "usr/share/zoneinfo/Chile/EasterIsland", + "usr/share/zoneinfo/Etc/GMT", + "usr/share/zoneinfo/Etc/GMT+0", + "usr/share/zoneinfo/Etc/GMT+1", + "usr/share/zoneinfo/Etc/GMT+10", + "usr/share/zoneinfo/Etc/GMT+11", + "usr/share/zoneinfo/Etc/GMT+12", + "usr/share/zoneinfo/Etc/GMT+2", + "usr/share/zoneinfo/Etc/GMT+3", + "usr/share/zoneinfo/Etc/GMT+4", + "usr/share/zoneinfo/Etc/GMT+5", + "usr/share/zoneinfo/Etc/GMT+6", + "usr/share/zoneinfo/Etc/GMT+7", + "usr/share/zoneinfo/Etc/GMT+8", + "usr/share/zoneinfo/Etc/GMT+9", + "usr/share/zoneinfo/Etc/GMT-0", + "usr/share/zoneinfo/Etc/GMT-1", + "usr/share/zoneinfo/Etc/GMT-10", + "usr/share/zoneinfo/Etc/GMT-11", + "usr/share/zoneinfo/Etc/GMT-12", + "usr/share/zoneinfo/Etc/GMT-13", + "usr/share/zoneinfo/Etc/GMT-14", + "usr/share/zoneinfo/Etc/GMT-2", + "usr/share/zoneinfo/Etc/GMT-3", + "usr/share/zoneinfo/Etc/GMT-4", + "usr/share/zoneinfo/Etc/GMT-5", + "usr/share/zoneinfo/Etc/GMT-6", + "usr/share/zoneinfo/Etc/GMT-7", + "usr/share/zoneinfo/Etc/GMT-8", + "usr/share/zoneinfo/Etc/GMT-9", + "usr/share/zoneinfo/Etc/GMT0", + "usr/share/zoneinfo/Etc/Greenwich", + "usr/share/zoneinfo/Etc/UCT", + "usr/share/zoneinfo/Etc/UTC", + "usr/share/zoneinfo/Etc/Universal", + "usr/share/zoneinfo/Etc/Zulu", + "usr/share/zoneinfo/Europe/Amsterdam", + "usr/share/zoneinfo/Europe/Andorra", + "usr/share/zoneinfo/Europe/Astrakhan", + "usr/share/zoneinfo/Europe/Athens", + "usr/share/zoneinfo/Europe/Belfast", + "usr/share/zoneinfo/Europe/Belgrade", + "usr/share/zoneinfo/Europe/Berlin", + "usr/share/zoneinfo/Europe/Bratislava", + "usr/share/zoneinfo/Europe/Brussels", + "usr/share/zoneinfo/Europe/Bucharest", + "usr/share/zoneinfo/Europe/Budapest", + "usr/share/zoneinfo/Europe/Busingen", + "usr/share/zoneinfo/Europe/Chisinau", + "usr/share/zoneinfo/Europe/Copenhagen", + "usr/share/zoneinfo/Europe/Dublin", + "usr/share/zoneinfo/Europe/Gibraltar", + "usr/share/zoneinfo/Europe/Guernsey", + "usr/share/zoneinfo/Europe/Helsinki", + "usr/share/zoneinfo/Europe/Isle_of_Man", + "usr/share/zoneinfo/Europe/Istanbul", + "usr/share/zoneinfo/Europe/Jersey", + "usr/share/zoneinfo/Europe/Kaliningrad", + "usr/share/zoneinfo/Europe/Kiev", + "usr/share/zoneinfo/Europe/Kirov", + "usr/share/zoneinfo/Europe/Kyiv", + "usr/share/zoneinfo/Europe/Lisbon", + "usr/share/zoneinfo/Europe/Ljubljana", + "usr/share/zoneinfo/Europe/London", + "usr/share/zoneinfo/Europe/Luxembourg", + "usr/share/zoneinfo/Europe/Madrid", + "usr/share/zoneinfo/Europe/Malta", + "usr/share/zoneinfo/Europe/Mariehamn", + "usr/share/zoneinfo/Europe/Minsk", + "usr/share/zoneinfo/Europe/Monaco", + "usr/share/zoneinfo/Europe/Moscow", + "usr/share/zoneinfo/Europe/Nicosia", + "usr/share/zoneinfo/Europe/Oslo", + "usr/share/zoneinfo/Europe/Paris", + "usr/share/zoneinfo/Europe/Podgorica", + "usr/share/zoneinfo/Europe/Prague", + "usr/share/zoneinfo/Europe/Riga", + "usr/share/zoneinfo/Europe/Rome", + "usr/share/zoneinfo/Europe/Samara", + "usr/share/zoneinfo/Europe/San_Marino", + "usr/share/zoneinfo/Europe/Sarajevo", + "usr/share/zoneinfo/Europe/Saratov", + "usr/share/zoneinfo/Europe/Simferopol", + "usr/share/zoneinfo/Europe/Skopje", + "usr/share/zoneinfo/Europe/Sofia", + "usr/share/zoneinfo/Europe/Stockholm", + "usr/share/zoneinfo/Europe/Tallinn", + "usr/share/zoneinfo/Europe/Tirane", + "usr/share/zoneinfo/Europe/Tiraspol", + "usr/share/zoneinfo/Europe/Ulyanovsk", + "usr/share/zoneinfo/Europe/Uzhgorod", + "usr/share/zoneinfo/Europe/Vaduz", + "usr/share/zoneinfo/Europe/Vatican", + "usr/share/zoneinfo/Europe/Vienna", + "usr/share/zoneinfo/Europe/Vilnius", + "usr/share/zoneinfo/Europe/Volgograd", + "usr/share/zoneinfo/Europe/Warsaw", + "usr/share/zoneinfo/Europe/Zagreb", + "usr/share/zoneinfo/Europe/Zaporozhye", + "usr/share/zoneinfo/Europe/Zurich", + "usr/share/zoneinfo/Indian/Antananarivo", + "usr/share/zoneinfo/Indian/Chagos", + "usr/share/zoneinfo/Indian/Christmas", + "usr/share/zoneinfo/Indian/Cocos", + "usr/share/zoneinfo/Indian/Comoro", + "usr/share/zoneinfo/Indian/Kerguelen", + "usr/share/zoneinfo/Indian/Mahe", + "usr/share/zoneinfo/Indian/Maldives", + "usr/share/zoneinfo/Indian/Mauritius", + "usr/share/zoneinfo/Indian/Mayotte", + "usr/share/zoneinfo/Indian/Reunion", + "usr/share/zoneinfo/Mexico/BajaNorte", + "usr/share/zoneinfo/Mexico/BajaSur", + "usr/share/zoneinfo/Mexico/General", + "usr/share/zoneinfo/Pacific/Apia", + "usr/share/zoneinfo/Pacific/Auckland", + "usr/share/zoneinfo/Pacific/Bougainville", + "usr/share/zoneinfo/Pacific/Chatham", + "usr/share/zoneinfo/Pacific/Chuuk", + "usr/share/zoneinfo/Pacific/Easter", + "usr/share/zoneinfo/Pacific/Efate", + "usr/share/zoneinfo/Pacific/Enderbury", + "usr/share/zoneinfo/Pacific/Fakaofo", + "usr/share/zoneinfo/Pacific/Fiji", + "usr/share/zoneinfo/Pacific/Funafuti", + "usr/share/zoneinfo/Pacific/Galapagos", + "usr/share/zoneinfo/Pacific/Gambier", + "usr/share/zoneinfo/Pacific/Guadalcanal", + "usr/share/zoneinfo/Pacific/Guam", + "usr/share/zoneinfo/Pacific/Honolulu", + "usr/share/zoneinfo/Pacific/Johnston", + "usr/share/zoneinfo/Pacific/Kanton", + "usr/share/zoneinfo/Pacific/Kiritimati", + "usr/share/zoneinfo/Pacific/Kosrae", + "usr/share/zoneinfo/Pacific/Kwajalein", + "usr/share/zoneinfo/Pacific/Majuro", + "usr/share/zoneinfo/Pacific/Marquesas", + "usr/share/zoneinfo/Pacific/Midway", + "usr/share/zoneinfo/Pacific/Nauru", + "usr/share/zoneinfo/Pacific/Niue", + "usr/share/zoneinfo/Pacific/Norfolk", + "usr/share/zoneinfo/Pacific/Noumea", + "usr/share/zoneinfo/Pacific/Pago_Pago", + "usr/share/zoneinfo/Pacific/Palau", + "usr/share/zoneinfo/Pacific/Pitcairn", + "usr/share/zoneinfo/Pacific/Pohnpei", + "usr/share/zoneinfo/Pacific/Ponape", + "usr/share/zoneinfo/Pacific/Port_Moresby", + "usr/share/zoneinfo/Pacific/Rarotonga", + "usr/share/zoneinfo/Pacific/Saipan", + "usr/share/zoneinfo/Pacific/Samoa", + "usr/share/zoneinfo/Pacific/Tahiti", + "usr/share/zoneinfo/Pacific/Tarawa", + "usr/share/zoneinfo/Pacific/Tongatapu", + "usr/share/zoneinfo/Pacific/Truk", + "usr/share/zoneinfo/Pacific/Wake", + "usr/share/zoneinfo/Pacific/Wallis", + "usr/share/zoneinfo/Pacific/Yap", + "usr/share/zoneinfo/US/Alaska", + "usr/share/zoneinfo/US/Aleutian", + "usr/share/zoneinfo/US/Arizona", + "usr/share/zoneinfo/US/Central", + "usr/share/zoneinfo/US/East-Indiana", + "usr/share/zoneinfo/US/Eastern", + "usr/share/zoneinfo/US/Hawaii", + "usr/share/zoneinfo/US/Indiana-Starke", + "usr/share/zoneinfo/US/Michigan", + "usr/share/zoneinfo/US/Mountain", + "usr/share/zoneinfo/US/Pacific", + "usr/share/zoneinfo/US/Samoa" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "xz-libs@5.8.3-r0", + "Name": "xz-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "1ae658a5f132a091" + }, + "Version": "5.8.3-r0", + "Arch": "x86_64", + "SrcName": "xz", + "SrcVersion": "5.8.3-r0", + "Licenses": [ + "GPL-2.0-or-later", + "0BSD", + "Public-Domain", + "LGPL-2.1-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4c92c5be0c5bef404e93c880eba9037a9b147347", + "InstalledFiles": [ + "usr/lib/liblzma.so.5", + "usr/lib/liblzma.so.5.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "zlib@1.3.2-r0", + "Name": "zlib", + "Identifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "Version": "1.3.2-r0", + "Arch": "x86_64", + "SrcName": "zlib", + "SrcVersion": "1.3.2-r0", + "Licenses": [ + "Zlib" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:dd4c3d102acaef2a71a1495951d55fabc8680613", + "InstalledFiles": [ + "usr/lib/libz.so.1", + "usr/lib/libz.so.1.3.2" + ], + "AnalyzedBy": "apk" + } + ], + "Vulnerabilities": [ + { + "VulnerabilityID": "CVE-2026-85091", + "PkgID": "zlib@1.3.2-r0", + "PkgName": "zlib", + "PkgIdentifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "InstalledVersion": "1.3.2-r0", + "FixedVersion": "1.3.2-r1", + "Status": "fixed", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "PrimaryURL": "https://avd.aquasec.com/nvd/cve-2026-85091", + "DataSource": { + "ID": "alpine", + "Name": "Alpine Secdb", + "URL": "https://secdb.alpinelinux.org/" + }, + "Fingerprint": "sha256:1d2bed479202d1fc9f68eacc57b530b660b8b99c3382887448dd585a61bc7567", + "Title": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...", + "Description": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.", + "Severity": "MEDIUM", + "CweIDs": [ + "CWE-787" + ], + "VendorSeverity": { + "ubuntu": 2 + }, + "References": [ + "https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490", + "https://github.com/madler/zlib", + "https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393", + "https://www.cve.org/CVERecord?id=CVE-2026-85091", + "https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate" + ], + "PublishedDate": "2026-09-03T13:06:20.573Z", + "LastModifiedDate": "2026-09-09T20:41:07.123Z" + } + ] + }, + { + "Target": "Python", + "Class": "lang-pkgs", + "Type": "python-pkg", + "Packages": [ + { + "Name": "PyJWT", + "Identifier": { + "PURL": "pkg:pypi/pyjwt@2.15.1", + "UID": "d3f5f9a421b8abc9" + }, + "Version": "2.15.1", + "Licenses": [ + "MIT" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cffi", + "Identifier": { + "PURL": "pkg:pypi/cffi@2.1.1", + "UID": "21042e2f37e33c05" + }, + "Version": "2.1.1", + "Licenses": [ + "MIT-0" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cryptography", + "Identifier": { + "PURL": "pkg:pypi/cryptography@50.0.1", + "UID": "dcb3df6383fe2a60" + }, + "Version": "50.0.1", + "Licenses": [ + "Apache-2.0 OR BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "informed-decision", + "Identifier": { + "PURL": "pkg:pypi/informed-decision@0.2.0", + "UID": "7989f2afae8ff568" + }, + "Version": "0.2.0", + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "pycparser", + "Identifier": { + "PURL": "pkg:pypi/pycparser@3.0", + "UID": "e5a4d03f15a695ff" + }, + "Version": "3.0", + "Licenses": [ + "BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "waitress", + "Identifier": { + "PURL": "pkg:pypi/waitress@3.0.2", + "UID": "806e218e1c1e85f" + }, + "Version": "3.0.2", + "Licenses": [ + "ZPL-2.1" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + } + ] + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json b/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json new file mode 100644 index 0000000..ddc0cea --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json @@ -0,0 +1,52 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "policy": { + "origin": "http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080", + "package": "informed-decision.compact-sitting", + "version": "v13", + "package_digest": "sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873", + "pod_name": "flex-auth-informed-decision-sitting" + }, + "keycape_egress_ips": [ + "92.205.62.239" + ], + "storage_class": "local-path", + "ordinary_approval_ids": [ + "2ce76d7f-01c3-4b63-8476-8d1230679769", + "c2af4bcf-15b4-4305-aac1-acc7e4dcb099", + "dc22666a-d5d7-46bc-9490-ebe9fe09dc38" + ], + "lifecycle_policy": { + "package": "informed-decision.lifecycle", + "version": "v2", + "package_digest": "sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c", + "origin": "http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080", + "pod_name": "flex-auth-informed-decision-lifecycle" + }, + "lifecycle_delivery": true, + "intake_attributes": true, + "intake_delivery": { + "hub_origin": "http://state-hub.state-hub.svc.cluster.local:8000" + }, + "workload_api": { + "registries_configmap": "informed-decision-workload-registry", + "peers": [ + { + "namespace": "state-hub", + "app": "state-hub" + } + ], + "api_egress": [ + { + "ip": "10.43.0.1", + "port": 443 + }, + { + "ip": "92.205.62.239", + "port": 6443 + } + ], + "intake": true, + "lifecycle": true + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json b/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json new file mode 100644 index 0000000..25758da --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json @@ -0,0 +1,267 @@ +{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover", + "argocd.argoproj.io/tracking-id": "informed-decision:apps/Deployment:informed-decision/informed-decision" + }, + "name": "informed-decision", + "namespace": "informed-decision" + }, + "spec": { + "progressDeadlineSeconds": 600, + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "strategy": { + "type": "Recreate" + }, + "template": { + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "labels": { + "app.kubernetes.io/component": "review", + "app.kubernetes.io/name": "informed-decision" + } + }, + "spec": { + "automountServiceAccountToken": false, + "containers": [ + { + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "livenessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "name": "informed-decision", + "ports": [ + { + "containerPort": 8080, + "name": "http" + }, + { + "containerPort": 8081, + "name": "workload" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "256Mi" + }, + "requests": { + "cpu": "5m", + "memory": "64Mi" + } + }, + "securityContext": { + "allowPrivilegeEscalation": false, + "capabilities": { + "drop": [ + "ALL" + ] + }, + "readOnlyRootFilesystem": true + }, + "startupProbe": { + "failureThreshold": 12, + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "volumeMounts": [ + { + "mountPath": "/data", + "name": "data" + }, + { + "mountPath": "/run/informed-decision", + "name": "runtime" + }, + { + "mountPath": "/tmp", + "name": "tmp" + }, + { + "mountPath": "/configuration", + "name": "configuration", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/policy", + "name": "caller", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/audit", + "name": "audit", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "name": "kubernetes-api", + "readOnly": true + }, + { + "mountPath": "/workload-registry", + "name": "workload-registry", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/requester", + "name": "sitting-requester", + "readOnly": true + } + ] + } + ], + "securityContext": { + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "runAsGroup": 10001, + "runAsNonRoot": true, + "runAsUser": 10001, + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "runtime" + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "tmp" + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-runtime-6c221878d051" + }, + "name": "configuration" + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "audience": "flex-auth", + "expirationSeconds": 3600, + "path": "token" + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ], + "secretName": "informed-decision-audit" + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "expirationSeconds": 600, + "path": "token" + } + }, + { + "configMap": { + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ], + "name": "kube-root-ca.crt" + } + } + ] + } + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-workload-registry" + }, + "name": "workload-registry" + }, + { + "name": "sitting-requester", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ], + "optional": false, + "secretName": "informed-decision-sitting-requester" + } + } + ] + } + } + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/change_guard.py b/docs/evidence/2026-10-11-purpose-image-release/change_guard.py new file mode 100644 index 0000000..3135a59 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/change_guard.py @@ -0,0 +1,68 @@ +"""Read-only exact Deployment and admission boundaries; no mutation authority.""" +import copy +import hashlib +import json + +BASE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173' +CANDIDATE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a' + + +def dependency_projection(configmap, pvc): + if (configmap.get('kind') != 'ConfigMap' or configmap.get('immutable') is not True + or configmap['metadata']['namespace'] != 'informed-decision' + or configmap['metadata']['name'] != 'informed-decision-runtime-6c221878d051' + or set(configmap.get('data', {})) != {'runtime.json'} + or configmap.get('binaryData')): + raise ValueError('unexpected immutable runtime config identity') + if (pvc.get('kind') != 'PersistentVolumeClaim' + or pvc['metadata']['namespace'] != 'informed-decision' + or pvc['metadata']['name'] != 'informed-decision-data' + or pvc.get('status', {}).get('phase') != 'Bound' + or not pvc.get('spec', {}).get('volumeName')): + raise ValueError('unexpected bound PVC custody') + config = projection(configmap) + config.pop('data') + config['canonical_data_sha256'] = hashlib.sha256(json.dumps( + configmap['data'], sort_keys=True, separators=(',', ':')).encode()).hexdigest() + return {'configmap': config, 'pvc': projection(pvc), 'pvc_phase': 'Bound'} + + +def check_dependencies(configmap, pvc, sealed): + if dependency_projection(configmap, pvc) != sealed: + raise ValueError('runtime config or PVC identity/custody changed') + + +def projection(value): + value = copy.deepcopy(value) + value.pop('status', None) + for key in ('resourceVersion', 'generation', 'creationTimestamp', 'managedFields'): + value['metadata'].pop(key, None) + for key in ('kubectl.kubernetes.io/last-applied-configuration', 'deployment.kubernetes.io/revision'): + value['metadata'].get('annotations', {}).pop(key, None) + return value + + +def check_current(current, sealed): + if projection(current) != sealed: + raise ValueError('sealed live UID or configuration changed') + + +def check_admitted(admitted, sealed): + expected = copy.deepcopy(sealed) + containers = expected['spec']['template']['spec']['containers'] + if len(containers) != 1 or containers[0]['name'] != 'informed-decision' or containers[0]['image'] != BASE: + raise ValueError('unexpected baseline container identity') + containers[0]['image'] = CANDIDATE + if projection(admitted) != expected: + raise ValueError('admission changed configuration beyond the sole image pin') + + +def transport_result(exit_code, output): + import json + try: + value = json.loads(output) + except (ValueError, TypeError): + return {'all_checks_pass': False, 'reason': 'invalid transport result'} + if exit_code != 0 or not isinstance(value, dict) or value.get('all_checks_pass') is not True: + return {'all_checks_pass': False, 'reason': 'read-only preflight refused'} + return value diff --git a/docs/evidence/2026-10-11-purpose-image-release/check_installed.py b/docs/evidence/2026-10-11-purpose-image-release/check_installed.py new file mode 100644 index 0000000..0736145 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/check_installed.py @@ -0,0 +1,21 @@ +import copy,json,time +from datetime import datetime,timezone +from informed_decision.policy import PolicyClient,CONTRACT,submitted_digest +pin='sha256:'+'b'*64 +req={'id':'image-purpose-fixture','tenant':'tenant:platform','subject':{'id':'synthetic','type':'service','tenant':'tenant:platform'},'resource':{'id':'memo:fixture','type':'memo','system':'informed-decision','tenant':'tenant:platform'},'action':'register','context':{}} +class Transport: + def request(self,*args,**kwargs): + now=time.time(); stamp=lambda t:datetime.fromtimestamp(t,timezone.utc).isoformat() + b={**copy.deepcopy({k:req[k] for k in ('tenant','subject','action','resource','context')}),'request_digest':'sha256:'+'e'*64,'submitted_request_digest':submitted_digest(req)} + if self.purpose!='ABSENT':b['purpose']=self.purpose + d={'id':'synthetic-decision','contract_version':CONTRACT,'request_id':req['id'],'effect':'allow','matched_policy_version':'v1','subject':req['subject'],'resource':req['resource'],'binding':b,'lifetime':{'kind':'ttl','not_before':stamp(now-1),'expires_at':stamp(now+60)},'provenance':{'policy_package':'fixture','policy_version':'v1','policy_package_digest':pin,'registry_snapshot_digest':'sha256:'+'c'*64,'evaluator':'flex-auth/fixture','decision_time':stamp(now)}} + return 200,d +checks=[] +for purpose in ('ABSENT','','readback','enforcement','unknown',None,False,0,[],{}): + t=Transport();t.purpose=purpose + c=PolicyClient('https://fixture.invalid',lambda:'synthetic-only',package='fixture',version='v1',package_digest=pin,transport=t) + o=c.check(req) + if purpose in ('ABSENT',''):assert o.outcome=='allow';o.require_current(time.time()) + else:assert o.outcome=='invalid_decision' and o.decision_json is None + checks.append(str(purpose)) +print(json.dumps({'installed_image_purpose_variants':len(checks),'binding_forms_allowed':2,'advisory_or_malformed_refused':8,'synthetic_only':True,'native_provider':False})) diff --git a/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md b/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md new file mode 100644 index 0000000..ccb5cbe --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md @@ -0,0 +1,33 @@ +# Informed Decision purpose overlay release + +## Requested decision + +Approve the exact purpose-only image rollout and protected real-data backup/restore protocol for the existing Informed Decision service on railiance01. This request is separate from the already approved config-only repair. Only the existing Deployment image changes through the owner's manual Argo workflow, with prune disabled. Runtime ConfigMap `informed-decision-runtime-6c221878d051`, schema5, PVC, credentials, audience, policies, registries, access, replica1 and Recreate strategy remain fixed. Execute by 2026-10-12T23:59:59Z, after refreshed sealed-source/UID/configuration checks and backup/restore gates. Expiry stops authorization for an unstarted release; it does not install a controller or automatically roll back an already released image. + +## Artifact and known finding + +Actual owner CI task11484/run3 published immutable image `sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a` from source `3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168`. Anonymous registry verification preserves all eight base compressed blobs/rootfs layers and adds only policy.py with exact source hash and mode0644. Legacy-builder media-type/default config serialization differences are recorded; the runtime semantics remain unchanged. Pulled published image executes as UID10001/GID10001 and passes ten installed checks: two supported binding forms, eight advisory/malformed refusals. Tests use synthetic transport and do not claim new native PDP authorization proof. The two failed CI attempts remain in the same trial history. + +Actual unfiltered pinned scanner/DB evidence covers44packages: zero HIGH/CRITICAL, **one fixable MEDIUM**, CVE-2026-85091, zlib1.3.2-r0 fixed in1.3.2-r1. Actual current-base scan has the identical finding. Approving this packet explicitly permits this inherited finding during this narrow purpose release; it is not a RiskNexus estate risk grade or zero-CVE claim. Owner record INFD-RISK-20261011-ZLIB-85091 and live task INFD-WP-0009-T05 require separate base refresh and native approval, reviewed by2026-10-18. That review date is manual follow-through, with no auto-controller claim. Scanner notes Alpine3.24 absent EOL list; OS vulnerability detection ran against38OSpackages. Unknown vulnerabilities remain outside snapshot knowledge. + +## Native baseline and gates + +Original read-only capture01:25:38Z: existing Deployment UIDa588e10a, Ready1, image7f5c, unchanged runtime6c; native admission preserves the full configuration plus exactly the proposed image. Clientdiff returns1. Requests3460/4000mCPU86%, memory9472Mi59%; refresh before release. Existing Argo Application UID499868f2 is manual, target7db8485, Healthy with pre-existing OutOfSync status. Do not treat a scoped Deployment release as full-app reconciliation. Preserve its tracking-id; no unrelated resource sync/prune/adoption. + +The refined read-only helper binds original source/helper/render/baseline hashes and actual immutable ConfigMap/PVC UIDs, runtime-data checksum and bound volume identity, explicitly refuses optimized interpreters, checks exact fresh live UID/configuration and admission, and writes a separate execution receipt outside this sealed packet. Failed initial raw Kustomize metadata check is retained: direct kubectl apply would drop Argo tracking-id. The reviewed selected Deployment explicitly retains that existing ID, matching Argo ownership. Any unrelated drift, different UID, altered admission, unavailable protected backup capacity, uncertain backup, restore mismatch or unhealthy baseline stops the release. + +## Protected backup and release + +Before **any** native source or offline-restored Store/admin open, use the attached stdlib SQLite mode=ro/query_only checker to require schema5, integrity=ok and count-only baseline. The admin automatically migrates oldschemas, so a post-open report alone cannot prove no migration. Refuse other schemas before admin. Then use the existing owner admin's SQLite backup API, not a raw copy of the live database/WAL. Protect directories0700/files0600, owned by10001. Retain independently protected off-cluster snapshot custody and only count/hash receipts. No database contents, caller tokens, requester Secret or runtime credential files enter Git, State Hub, logs or this packet. Native backup and offline real-data restore have not yet occurred. Use an isolated private disposable copy, networknone and no runtime config/token mounts, run the pre-open checker and exact offline `--entrypoint informed-decision-admin inspect --db /restore/review.sqlite` after it passes, comparing frozen snapshot counts without service startup, then clean only the disposable restored copy. Retain the original snapshot. The attached protocol binds case-specific paths and fail-closed capacity/custody checks. + +Refresh a consistent online snapshot immediately before image-only cutover. This protocol does not assert traffic/dispatcher quiescence. Current and candidate share schema5 and unchanged store code; rollback retains the latest live database and all new/uncertain evidence. Stop the old writer before the new one with existing Recreate and single-writer lock. Do not restore an older snapshot over later writes, discard unresolved external effects, scale other workloads, change policies/identity/custody, or create human dispositions to make checks green. + +Pin the existing Application to the exact owner commit containing the approved candidate source hashes, and manually sync only Deployment/informed-decision with prune=false. Verify actualimage/module/mode/UID, health/readiness and installed purpose refusals on the real placement; explicitly distinguish synthetic-transport checks from actual provider evidence. Existing native binding/lifecycle behavior must remain available. If unhealthy or verification fails, return Application source to7db8485 and scoped-sync prior same-schema image7f5c, preserving current evidence database; retain failed outcomes. Any data recovery beyond this same-schema image rollback is a separate founder decision. + +## Alternatives and estimates + +Proceed with this narrow release plus explicit inherited-medium follow-through, or defer and prepare a separate base/dependency refresh before any release. No additional recurring hosting is proposed: estimated incremental infrastructure EUR0, with private storage and attended engineering/recovery time unpriced. Risks include a brief Recreate interruption, private backup custody errors, caller refusal when advisory responses were improperly treated as binding, and the disclosed inherited finding. This decision does not promote agent autonomy or grant unrelated work. + +## Independent review refinements + +The initial36path/20document packet at manifest7c6738b3 and submissionac41c8ae is preserved in source preparation evidence, with the failed/conditional review. Independent Platform review identified admin auto-migration, optimization bypass, and actual same-name ConfigMap/PVC replacement gaps. The amended packet adds pre-open stdlib read-only schema/integrity/count gates, explicit local/remote optimization refusal, and independently sealed actual native config/PVC custody checks. These are refinements in the same proposal/trial, with no original or amended founder approval claimed. diff --git a/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json b/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json new file mode 100644 index 0000000..1fc30be --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json @@ -0,0 +1,50 @@ +{ + "node_allocatable_cpu_m": 4000, + "node_requested_cpu_m": 3460, + "captured_at": "2026-10-11T01:39:14.234277+00:00", + "native_workload_changed": false, + "native_backup_restore_executed": false, + "argo": { + "uid": "499868f2-eabc-4df4-ae31-b89ce58d750d", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "path": "deploy/lifecycle", + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "automated": false, + "sync": { + "comparedTo": { + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "source": { + "path": "deploy/lifecycle", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf" + } + }, + "revision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "status": "OutOfSync" + }, + "health": { + "lastTransitionTime": "2026-10-10T23:14:52Z", + "status": "Healthy" + } + }, + "native_dependencies_checked": true, + "configmap_uid": "90113d2d-54d9-4e82-b1d3-90b49ebed2b5", + "pvc_uid": "d80b25b1-141a-441b-b205-98fa2fd98b7c", + "live_ready_replicas": 1, + "admitted_uid": "a588e10a-90d2-4883-975e-6dd8b8feca92", + "server_dry_run_passed": true, + "admitted_spec_exactly_live_plus_image": true, + "client_diff_exit": 1, + "client_diff_sha256": "840769c7d2a9c1655c40a3259f833d1fc8f69950ceb3bedb707a955fed711566", + "node_allocated_resources": "(Total limits may be over 100 percent, i.e., overcommitted.)\n Resource Requests Limits\n -------- -------- ------\n cpu 3460m (86%) 36200m (905%)\n memory 9472Mi (59%) 32898Mi (205%)\n ephemeral-storage 0 (0%) 0 (0%)\n hugepages-1Gi 0 (0%) 0 (0%)\n hugepages-2Mi 0 (0%) 0 (0%)", + "all_checks_pass": true, + "sealed_preflight_inputs_sha256": "756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06", + "fresh_execution_receipt": true +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/image-config.json b/docs/evidence/2026-10-11-purpose-image-release/image-config.json new file mode 100644 index 0000000..bc38933 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/image-config.json @@ -0,0 +1,222 @@ +{ + "architecture": "amd64", + "config": { + "Hostname": "", + "Domainname": "", + "User": "10001:10001", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + }, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Cmd": null, + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883", + "Volumes": null, + "WorkingDir": "/app", + "Entrypoint": [ + "informed-decision-container" + ], + "OnBuild": null, + "Labels": { + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + } + }, + "container_config": { + "Hostname": "", + "Domainname": "", + "User": "10001:10001", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + }, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Cmd": [ + "/bin/sh", + "-c", + "#(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py " + ], + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883", + "Volumes": null, + "WorkingDir": "/app", + "Entrypoint": [ + "informed-decision-container" + ], + "OnBuild": null, + "Labels": { + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + } + }, + "created": "2026-10-11T01:21:04.787527697Z", + "docker_version": "27.5.1", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' && echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid>=2.42.3-r1' && addgroup -S -g 10001 informed && adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-11T01:15:11.991443676Z", + "created_by": "/bin/sh -c #(nop) ARG SOURCE_REVISION", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.716126392Z", + "created_by": "/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168 org.opencontainers.image.base.digest=sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 social.coulomb.source.policy.sha256=9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 social.coulomb.release.scope=INFD-WP-0009-T04/purpose-overlay-v1", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.787527697Z", + "created_by": "/bin/sh -c #(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py " + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02", + "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + ] + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json b/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json new file mode 100644 index 0000000..71f69b0 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json @@ -0,0 +1,56 @@ +{ + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/vnd.docker.container.image.v1+json", + "size": 10428, + "digest": "sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779" + }, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 3846391, + "digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 408093, + "digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 16346740, + "digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 248, + "digest": "sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 49243, + "digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 10216362, + "digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 459, + "digest": "sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 93, + "digest": "sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 3586, + "digest": "sha256:cfee29c2f8119d2a39714ecbe5095a2dc1c986054f2e1fe0a6565163242417e3" + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json b/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json new file mode 100644 index 0000000..f0fa85b --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json @@ -0,0 +1,21 @@ +{ + "id": "INFD-RISK-20261011-ZLIB-85091", + "kind": "owner-vulnerability-follow-through", + "owner": "informed-decision", + "task": "INFD-WP-0009-T05", + "status": "open", + "created": "2026-10-11", + "review_due": "2026-10-18", + "finding": "CVE-2026-85091", + "scanner_severity": "MEDIUM", + "estate_risk_grade": null, + "affected_package": "zlib", + "installed": "1.3.2-r0", + "fixed": "1.3.2-r1", + "actual_current_base_and_candidate_findings_identical": true, + "source_evidence": "security-summary.json, trivy-full.json, base-trivy-full.json", + "human_temporary_disposition": "pending", + "follow_through": "Prepare a separately source-bound official-base/dependency refresh through normal owner CI, verify full scan and runtime compatibility, obtain distinct native release approval before updating this workload", + "manual_review_expiry": "Due date requires owner review/escalation if unresolved; no automatic rollback/controller is installed", + "close_condition": "Verified installed native fixed package and full unfiltered rescan; preserve original detection and any human disposition" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/original-packet-manifest.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/original-packet-manifest.json new file mode 100644 index 0000000..a1b8362 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/original-packet-manifest.json @@ -0,0 +1,254 @@ +[ + { + "repo": "informed-decision", + "path": "deploy/lifecycle/admission.candidate.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/deploy/lifecycle/admission.candidate.json", + "original_sha256": "22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50", + "staged_sha256": "92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "repo": "informed-decision", + "path": "deploy/lifecycle/service.candidate.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/deploy/lifecycle/service.candidate.json", + "original_sha256": "7a676532836affd6d75c7f1c41a5f937d8c8c809f63e3264ccce612730d5ba7b", + "staged_sha256": "38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/README.md", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/README.md", + "original_sha256": null, + "staged_sha256": "f88a79a93fff34a1b438e2dc0344cad88d6c7960dde04bc7f3c04ac1fbb992c7" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/base-image-config.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json", + "original_sha256": null, + "staged_sha256": "b706c9209e324f39a86ffcda2a3e9d94c92649739ad5b21fe4611006e36f6f00" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json", + "original_sha256": null, + "staged_sha256": "d44c555aecbb1a4518f4127d48015ea459325c93e8b0371910a55de47293ca80" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json", + "original_sha256": null, + "staged_sha256": "92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json", + "original_sha256": null, + "staged_sha256": "722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/change_guard.py", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/change_guard.py", + "original_sha256": null, + "staged_sha256": "830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/check_installed.py", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/check_installed.py", + "original_sha256": null, + "staged_sha256": "a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/decision-packet.md", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md", + "original_sha256": null, + "staged_sha256": "7f6d8987f65dff479eeead67b7ca940ef44c22c1cdbdd6ca33fd732b824c8f02" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json", + "original_sha256": null, + "staged_sha256": "aa1d494e42491f0619f731a836c597df9178409887d734c166a8df81f8807a27" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/image-config.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/image-config.json", + "original_sha256": null, + "staged_sha256": "4ad7249c75fd9fc039ceb186772419e1cba5fd9759c404556459c80a2d285d10" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/image-manifest.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json", + "original_sha256": null, + "staged_sha256": "978c575d3c7bf0de39dbe4e9567c39cd36f70b7e55bc17357bdb03fb3b96b0fb" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json", + "original_sha256": null, + "staged_sha256": "e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/intake.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/intake.json", + "original_sha256": null, + "staged_sha256": "9a39631362f20168da409cef74f7690f3aa1b8f841fc96ecd8770f73a1f954ac" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json", + "original_sha256": null, + "staged_sha256": "b6210dcd34e5485c94e35f4bdd3329fb72c1d40fa9357caf40ac42b4f8afa5c2" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/memo.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/memo.json", + "original_sha256": null, + "staged_sha256": "06530425dd9634182f70a65dd2da56cbad3da967bc842b3c7b01c30542222128" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md", + "original_sha256": null, + "staged_sha256": "aa9758d4de587d14c6ce0fdaccd84002c5c5099425b9169ca7c972a86e9d3dec" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json", + "original_sha256": null, + "staged_sha256": "052fc57d2cda43b2e474f28a5ff70753f5fa673c77a9645a201d0e0e961792e4" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json", + "original_sha256": null, + "staged_sha256": "aaa77b406b201eb40a62f60182057e90b1baea06e03f85d7e06916b57f5f2de8" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/native-preflight.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json", + "original_sha256": null, + "staged_sha256": "eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json", + "original_sha256": null, + "staged_sha256": "0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/preflight.py", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/preflight.py", + "original_sha256": null, + "staged_sha256": "c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/proposal.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/proposal.json", + "original_sha256": null, + "staged_sha256": "08c5573eaad05efd24b6df6737d33e7189543eb621f21704e38bab4326094914" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/published-verification.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/published-verification.json", + "original_sha256": null, + "staged_sha256": "e304dd29571bf7d7b9f1db2ade0163dd39cfec012a5ce6986139f019f37e65a2" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/registry-proof.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json", + "original_sha256": null, + "staged_sha256": "5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json", + "original_sha256": null, + "staged_sha256": "22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json", + "original_sha256": null, + "staged_sha256": "39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json", + "original_sha256": null, + "staged_sha256": "a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json", + "original_sha256": null, + "staged_sha256": "d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/security-summary.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/security-summary.json", + "original_sha256": null, + "staged_sha256": "0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py", + "original_sha256": null, + "staged_sha256": "b7cd28b2ada33004c9264cb54c9749fa501f60166638f926e50e264ddebe037d" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/trivy-full.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json", + "original_sha256": null, + "staged_sha256": "f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/validation.json", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/validation.json", + "original_sha256": null, + "staged_sha256": "3b57f525bbbb1db9dc46bcc6b0057a8dd9f45c461fad0a8dea5391ca78038c36" + }, + { + "repo": "informed-decision", + "path": "docs/evidence/2026-10-11-purpose-image-release/verify_registry.py", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py", + "original_sha256": null, + "staged_sha256": "413f575c21a2bd18a3696f8f2d939eeadc52d76f282c42813f76bb0e3ee8a2a4" + }, + { + "repo": "informed-decision", + "path": "workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md", + "staged_path": "/tmp/infd-purpose-release-stage/informed-decision/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md", + "original_sha256": "1544ece11a7a528a34b635b267b72e1c3fd4de99327200aded74864c64e64e77", + "staged_sha256": "18205c0c7aa8f3460d78e3b7ad9dddd9e361395f9a28d93a7a384c29c9602d36" + } +] diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/admission.candidate.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/admission.candidate.json new file mode 100644 index 0000000..ddc0cea --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/admission.candidate.json @@ -0,0 +1,52 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "policy": { + "origin": "http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080", + "package": "informed-decision.compact-sitting", + "version": "v13", + "package_digest": "sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873", + "pod_name": "flex-auth-informed-decision-sitting" + }, + "keycape_egress_ips": [ + "92.205.62.239" + ], + "storage_class": "local-path", + "ordinary_approval_ids": [ + "2ce76d7f-01c3-4b63-8476-8d1230679769", + "c2af4bcf-15b4-4305-aac1-acc7e4dcb099", + "dc22666a-d5d7-46bc-9490-ebe9fe09dc38" + ], + "lifecycle_policy": { + "package": "informed-decision.lifecycle", + "version": "v2", + "package_digest": "sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c", + "origin": "http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080", + "pod_name": "flex-auth-informed-decision-lifecycle" + }, + "lifecycle_delivery": true, + "intake_attributes": true, + "intake_delivery": { + "hub_origin": "http://state-hub.state-hub.svc.cluster.local:8000" + }, + "workload_api": { + "registries_configmap": "informed-decision-workload-registry", + "peers": [ + { + "namespace": "state-hub", + "app": "state-hub" + } + ], + "api_egress": [ + { + "ip": "10.43.0.1", + "port": 443 + }, + { + "ip": "92.205.62.239", + "port": 6443 + } + ], + "intake": true, + "lifecycle": true + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/service.candidate.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/service.candidate.json new file mode 100644 index 0000000..c6bd69e --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/deploy/lifecycle/service.candidate.json @@ -0,0 +1,800 @@ +{ + "apiVersion": "v1", + "kind": "List", + "items": [ + { + "apiVersion": "v1", + "kind": "ServiceAccount", + "metadata": { + "name": "review", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "automountServiceAccountToken": false + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "informed-decision-data", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "storageClassName": "local-path", + "resources": { + "requests": { + "storage": "1Gi" + } + } + } + }, + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "informed-decision-runtime-6c221878d051", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "immutable": true, + "data": { + "runtime.json": "{\"approval_origin\":\"http://approval-engine.approval-engine.svc.cluster.local:8080\",\"audit\":{\"origin\":\"http://audit-core.audit-core.svc.cluster.local:8080\",\"sender_token_file\":\"/var/run/secrets/informed-decision/audit/token\"},\"evidence_db\":\"/data/private/review.sqlite\",\"intake_attributes\":true,\"intake_delivery\":{\"hub_origin\":\"http://state-hub.state-hub.svc.cluster.local:8000\"},\"lifecycle_delivery\":true,\"lifecycle_policy\":{\"caller_token_file\":\"/var/run/secrets/informed-decision/policy/token\",\"origin\":\"http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080\",\"package\":\"informed-decision.lifecycle\",\"package_digest\":\"sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c\",\"version\":\"v2\"},\"ordinary_approval_ids\":[\"2ce76d7f-01c3-4b63-8476-8d1230679769\",\"c2af4bcf-15b4-4305-aac1-acc7e4dcb099\",\"dc22666a-d5d7-46bc-9490-ebe9fe09dc38\"],\"policy\":{\"caller_token_file\":\"/var/run/secrets/informed-decision/policy/token\",\"origin\":\"http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080\",\"package\":\"informed-decision.compact-sitting\",\"package_digest\":\"sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873\",\"version\":\"v13\"},\"schema\":\"informed-decision.review-runtime.v1\",\"workload_api\":{\"intake\":{\"groups_file\":\"/workload-registry/review-groups.json\",\"secret_file\":\"/var/run/secrets/informed-decision/requester/client-secret\",\"submitters_file\":\"/workload-registry/intake-submitters.json\"},\"lifecycle_callers_file\":\"/workload-registry/lifecycle-callers.json\",\"token_review\":{\"ca_file\":\"/var/run/secrets/informed-decision/kubernetes/ca.crt\",\"origin\":\"https://kubernetes.default.svc:443\",\"token_file\":\"/var/run/secrets/informed-decision/kubernetes/token\"}}}" + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "informed-decision", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "spec": { + "replicas": 1, + "strategy": { + "type": "Recreate" + }, + "progressDeadlineSeconds": 600, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + } + }, + "spec": { + "automountServiceAccountToken": false, + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "securityContext": { + "runAsNonRoot": true, + "runAsUser": 10001, + "runAsGroup": 10001, + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "containers": [ + { + "name": "informed-decision", + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "securityContext": { + "allowPrivilegeEscalation": false, + "readOnlyRootFilesystem": true, + "capabilities": { + "drop": [ + "ALL" + ] + } + }, + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "ports": [ + { + "name": "http", + "containerPort": 8080 + }, + { + "name": "workload", + "containerPort": 8081 + } + ], + "startupProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 12 + }, + "readinessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "livenessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "resources": { + "requests": { + "cpu": "5m", + "memory": "64Mi" + }, + "limits": { + "cpu": "500m", + "memory": "256Mi" + } + }, + "volumeMounts": [ + { + "name": "data", + "mountPath": "/data" + }, + { + "name": "runtime", + "mountPath": "/run/informed-decision" + }, + { + "name": "tmp", + "mountPath": "/tmp" + }, + { + "name": "configuration", + "mountPath": "/configuration", + "readOnly": true + }, + { + "name": "caller", + "mountPath": "/var/run/secrets/informed-decision/policy", + "readOnly": true + }, + { + "name": "audit", + "mountPath": "/var/run/secrets/informed-decision/audit", + "readOnly": true + }, + { + "name": "kubernetes-api", + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "readOnly": true + }, + { + "name": "workload-registry", + "mountPath": "/workload-registry", + "readOnly": true + }, + { + "name": "sitting-requester", + "mountPath": "/var/run/secrets/informed-decision/requester", + "readOnly": true + } + ] + } + ], + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "name": "runtime", + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + } + }, + { + "name": "tmp", + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + } + }, + { + "name": "configuration", + "configMap": { + "name": "informed-decision-runtime-6c221878d051", + "defaultMode": 292 + } + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "path": "token", + "audience": "flex-auth", + "expirationSeconds": 3600 + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "secretName": "informed-decision-audit", + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ] + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "path": "token", + "expirationSeconds": 600 + } + }, + { + "configMap": { + "name": "kube-root-ca.crt", + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ] + } + } + ] + } + }, + { + "name": "workload-registry", + "configMap": { + "name": "informed-decision-workload-registry", + "defaultMode": 292 + } + }, + { + "name": "sitting-requester", + "secret": { + "secretName": "informed-decision-sitting-requester", + "defaultMode": 288, + "optional": false, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ] + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "informed-decision", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "spec": { + "type": "ClusterIP", + "selector": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + }, + "ports": [ + { + "name": "http", + "port": 80, + "targetPort": "http", + "protocol": "TCP" + } + ] + } + }, + { + "apiVersion": "networking.k8s.io/v1", + "kind": "NetworkPolicy", + "metadata": { + "name": "informed-decision-review", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "spec": { + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + } + }, + "policyTypes": [ + "Ingress", + "Egress" + ], + "ingress": [ + { + "from": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "kube-system" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "traefik" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8080 + } + ] + }, + { + "from": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "state-hub" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "state-hub" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8081 + } + ] + } + ], + "egress": [ + { + "to": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "kube-system" + } + }, + "podSelector": { + "matchLabels": { + "k8s-app": "kube-dns" + } + } + } + ], + "ports": [ + { + "protocol": "UDP", + "port": 53 + }, + { + "protocol": "TCP", + "port": 53 + } + ] + }, + { + "to": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "approval-engine" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "approval-engine" + } + } + }, + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "audit-core" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "audit-core" + } + } + }, + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "flex-auth" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "flex-auth-informed-decision-sitting" + } + } + }, + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "flex-auth" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "flex-auth-informed-decision-lifecycle" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8080 + } + ] + }, + { + "to": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "kube-system" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "traefik" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8443 + } + ] + }, + { + "to": [ + { + "ipBlock": { + "cidr": "92.205.62.239/32" + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 443 + } + ] + }, + { + "to": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "state-hub" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "state-hub" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8000 + } + ] + }, + { + "to": [ + { + "ipBlock": { + "cidr": "10.43.0.1/32" + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 443 + } + ] + }, + { + "to": [ + { + "ipBlock": { + "cidr": "92.205.62.239/32" + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 6443 + } + ] + } + ] + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "informed-decision-workload", + "namespace": "informed-decision", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08" + } + }, + "spec": { + "type": "ClusterIP", + "selector": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + }, + "ports": [ + { + "name": "workload", + "port": 8081, + "targetPort": "workload", + "protocol": "TCP" + } + ] + } + }, + { + "apiVersion": "rbac.authorization.k8s.io/v1", + "kind": "ClusterRole", + "metadata": { + "name": "informed-decision-tokenreview", + "annotations": { + "informed-decision.coulomb.social/admission": "proposal; INFD-WP-0007/INFD-WP-0005 owner review required" + } + }, + "rules": [ + { + "apiGroups": [ + "authentication.k8s.io" + ], + "resources": [ + "tokenreviews" + ], + "verbs": [ + "create" + ] + } + ] + }, + { + "apiVersion": "rbac.authorization.k8s.io/v1", + "kind": "ClusterRoleBinding", + "metadata": { + "name": "informed-decision-tokenreview", + "annotations": { + "informed-decision.coulomb.social/admission": "proposal; INFD-WP-0007/INFD-WP-0005 owner review required" + } + }, + "roleRef": { + "apiGroup": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "name": "informed-decision-tokenreview" + }, + "subjects": [ + { + "kind": "ServiceAccount", + "name": "review", + "namespace": "informed-decision" + } + ] + }, + { + "apiVersion": "networking.k8s.io/v1", + "kind": "NetworkPolicy", + "metadata": { + "name": "informed-decision-review-ingress", + "namespace": "approval-engine", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08", + "informed-decision.coulomb.social/owner-review": "APPROVAL-WP-0002-T01" + } + }, + "spec": { + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "approval-engine" + } + }, + "policyTypes": [ + "Ingress" + ], + "ingress": [ + { + "from": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "informed-decision" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8080 + } + ] + } + ] + } + }, + { + "apiVersion": "networking.k8s.io/v1", + "kind": "NetworkPolicy", + "metadata": { + "name": "informed-decision-review-ingress", + "namespace": "flex-auth", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08", + "informed-decision.coulomb.social/owner-review": "INFD-WP-0001-T08 policy-owner return" + } + }, + "spec": { + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "flex-auth-informed-decision-sitting" + } + }, + "policyTypes": [ + "Ingress" + ], + "ingress": [ + { + "from": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "informed-decision" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8080 + } + ] + } + ] + } + }, + { + "apiVersion": "networking.k8s.io/v1", + "kind": "NetworkPolicy", + "metadata": { + "name": "informed-decision-lifecycle-ingress", + "namespace": "flex-auth", + "annotations": { + "informed-decision.coulomb.social/admission": "review-only; INFD-WP-0001-T08", + "informed-decision.coulomb.social/owner-review": "INFD-WP-0007 lifecycle policy-owner return" + } + }, + "spec": { + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "flex-auth-informed-decision-lifecycle" + } + }, + "policyTypes": [ + "Ingress" + ], + "ingress": [ + { + "from": [ + { + "namespaceSelector": { + "matchLabels": { + "kubernetes.io/metadata.name": "informed-decision" + } + }, + "podSelector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision", + "app.kubernetes.io/component": "review" + } + } + } + ], + "ports": [ + { + "protocol": "TCP", + "port": 8080 + } + ] + } + ] + } + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/README.md b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/README.md new file mode 100644 index 0000000..d1cb671 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/README.md @@ -0,0 +1,7 @@ +# Exact published purpose overlay and unapproved native release packet + +Actual CI task11484/run3 at3e4bcb26 published immutable763c. The registry proof, installedUID/mode/purpose checks, full scan/SBOM and actualbase comparison are retained. The full scan contains1fixable inheritedMEDIUM,0HIGH/CRITICAL; see owner follow-through/T05. Legacy serialization differences are disclosed. + +This stage prepares owner admission/service source candidates, protected native backup/restore protocol and20document offline-valid informed-decision memo. Native workload remains7f5/config6c. No native backup/export/restore, image change or human approval occurred. Initial failed CI/native preflight evidence remains in owner history. The immutable original native capture stays sealed; future preflight requires unique output outside the sealed packet and owner source tree. + +The memo's actual rawscan/SBOM attachments plus hash-linked rawbase scan total249719packetbytes (under256KiB); source/image receipt binds raw evidence filenames and hashes. Full owner source manifest includes all raw evidence and helper/tests. Source preparation or local checks do not approve native execution. diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json new file mode 100644 index 0000000..e8630f4 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json @@ -0,0 +1,146 @@ +{ + "architecture": "amd64", + "config": { + "User": "10001:10001", + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + }, + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Entrypoint": [ + "informed-decision-container" + ], + "WorkingDir": "/app" + }, + "created": "2026-10-05T01:03:56.675216821+02:00", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' && echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid>=2.42.3-r1' && addgroup -S -g 10001 informed && adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + ] + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json new file mode 100644 index 0000000..acb2a52 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json @@ -0,0 +1,2362 @@ +{ + "SchemaVersion": 2, + "Trivy": { + "Version": "0.74.0" + }, + "ReportID": "01a12890-e255-75ba-9a37-1fe16e6bef49", + "CreatedAt": "2026-10-11T01:25:46.197378104Z", + "ArtifactID": "sha256:6b6a81301d444377b872cc0e4993ffeb2f0625a8822f4603f711bb46f8bc0d39", + "ArtifactName": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "ArtifactType": "container_image", + "Metadata": { + "Size": 88242688, + "OS": { + "Family": "alpine", + "Name": "3.24.1" + }, + "ImageID": "sha256:d00553b452bacb9f80f8320b6140ec10b4d364b472c96d7280821a180fb3d862", + "DiffIDs": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + ], + "RepoDigests": [ + "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173" + ], + "Reference": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "ImageConfig": { + "architecture": "amd64", + "created": "2026-10-05T01:03:56.675216821+02:00", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' \u0026\u0026 echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid\u003e=2.42.3-r1' \u0026\u0026 addgroup -S -g 10001 informed \u0026\u0026 adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + ] + }, + "config": { + "Entrypoint": [ + "informed-decision-container" + ], + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "User": "10001:10001", + "WorkingDir": "/app", + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + } + } + }, + "Layers": [ + { + "Size": 8697856, + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "Size": 1538048, + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "Size": 47150592, + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "Size": 5120, + "Digest": "sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b", + "DiffID": "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe" + }, + { + "Size": 131584, + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "Size": 30705664, + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "Size": 12288, + "Digest": "sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f", + "DiffID": "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59" + }, + { + "Size": 1536, + "Digest": "sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3", + "DiffID": "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + } + ] + }, + "Results": [ + { + "Target": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 (alpine 3.24.1)", + "Class": "os-pkgs", + "Type": "alpine", + "Packages": [ + { + "ID": ".python-rundeps@20260901.001029", + "Name": ".python-rundeps", + "Identifier": { + "PURL": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch\u0026distro=3.24.1", + "UID": "4e26c99fecac1e97" + }, + "Version": "20260901.001029", + "Arch": "noarch", + "DependsOn": [ + "gdbm@1.26-r0", + "libbz2@1.0.8-r6", + "libcrypto3@3.5.8-r0", + "libffi@3.5.2-r1", + "libncursesw@6.6_p20260516-r0", + "libnsl@2.0.1-r2", + "libpanelw@6.6_p20260516-r0", + "libssl3@3.5.8-r0", + "libtirpc@1.3.5-r1", + "libuuid@2.42.3-r1", + "musl@1.2.6-r2", + "readline@8.3.3-r1", + "sqlite-libs@3.53.4-r0", + "xz-libs@5.8.3-r0", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:51d0c1e7d88a414345799f0309185c625013ef32", + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout@3.7.2-r1", + "Name": "alpine-baselayout", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "1b9c543300f8073e" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-baselayout-data@3.7.2-r1", + "busybox-binsh@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:f0fcfdc2f4da058af6473bc45c4eab62916225b2", + "InstalledFiles": [ + "etc/motd", + "etc/crontabs/root", + "etc/modprobe.d/aliases.conf", + "etc/modprobe.d/blacklist.conf", + "etc/modprobe.d/i386.conf", + "etc/profile.d/20locale.sh", + "etc/profile.d/README", + "etc/profile.d/color_prompt.sh.disabled", + "usr/lib/sysctl.d/00-alpine.conf", + "var/lock", + "var/run", + "var/spool/mail", + "var/spool/cron/crontabs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout-data@3.7.2-r1", + "Name": "alpine-baselayout-data", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "fcc3cd90122d8aa7" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508", + "InstalledFiles": [ + "etc/fstab", + "etc/group", + "etc/hostname", + "etc/hosts", + "etc/inittab", + "etc/modules", + "etc/mtab", + "etc/nsswitch.conf", + "etc/passwd", + "etc/profile", + "etc/protocols", + "etc/services", + "etc/shadow", + "etc/shells", + "etc/sysctl.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-keys@2.6-r0", + "Name": "alpine-keys", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb1f6c8fa74713e0" + }, + "Version": "2.6-r0", + "Arch": "x86_64", + "SrcName": "alpine-keys", + "SrcVersion": "2.6-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:d8d6b80e53c059a77e4915da78ba964f3ffea240", + "InstalledFiles": [ + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/loongarch64/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-release@3.24.1-r0", + "Name": "alpine-release", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "6cfad6f36e1f31aa" + }, + "Version": "3.24.1-r0", + "Arch": "x86_64", + "SrcName": "alpine-base", + "SrcVersion": "3.24.1-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-keys@2.6-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:bc6912a25cdc7733e0035ed509eceaa4026946e3", + "InstalledFiles": [ + "etc/alpine-release", + "etc/issue", + "etc/os-release", + "etc/secfixes.d/alpine", + "usr/lib/os-release" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "apk-tools@3.0.6-r0", + "Name": "apk-tools", + "Identifier": { + "PURL": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb2633c883b17a04" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "ca-certificates-bundle@20260611-r0", + "libapk@3.0.6-r0", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:043333589798a1f52e09ae63f026c6c8fa676d34", + "InstalledFiles": [ + "sbin/apk" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox@1.37.0-r31", + "Name": "busybox", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "771020c43c8440bf" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:b5405ebc02f7dd8be95b6265c54b243d5456ab8f", + "InstalledFiles": [ + "bin/busybox", + "etc/securetty", + "etc/busybox-paths.d/busybox", + "etc/logrotate.d/acpid", + "etc/network/if-up.d/dad", + "etc/udhcpc/udhcpc.conf", + "usr/share/udhcpc/default.script" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox-binsh@1.37.0-r31", + "Name": "busybox-binsh", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "1ec8a3d5d2b63297" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "busybox@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7", + "InstalledFiles": [ + "bin/sh" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates@20260611-r0", + "Name": "ca-certificates", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "2a3c316ee83c6198" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "busybox-binsh@1.37.0-r31", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:8f2a04abeb54b331e2970a0a0dffb7bd6bdde567", + "InstalledFiles": [ + "etc/ca-certificates.conf", + "etc/apk/protected_paths.d/ca-certificates.list", + "etc/ca-certificates/update.d/certhash", + "usr/bin/c_rehash", + "usr/sbin/update-ca-certificates", + "usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt", + "usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA1.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA2.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt", + "usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt", + "usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt", + "usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt", + "usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt", + "usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R1.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R3.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt", + "usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Izenpe.com.crt", + "usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt", + "usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_ECC_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_RSA_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_ECC_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_RSA_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_E46.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_R46.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA14.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA15.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/SwissSign_RSA_TLS_Root_CA_2022_-_1.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt", + "usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt", + "usr/share/ca-certificates/mozilla/TWCA_CYBER_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_ECC_Root_2020.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_RSA_Root_2023.crt", + "usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G3.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G4.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_RSA_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt", + "usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt", + "usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt", + "usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_TLS_Root_CA_2023.crt", + "usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates-bundle@20260611-r0", + "Name": "ca-certificates-bundle", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "20337c2ea28bef28" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c9534a03750bdfae341f10969016090fc11febbd", + "InstalledFiles": [ + "etc/ssl/cert.pem", + "etc/ssl/certs/ca-certificates.crt", + "etc/ssl1.1/cert.pem", + "etc/ssl1.1/certs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "gdbm@1.26-r0", + "Name": "gdbm", + "Identifier": { + "PURL": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "5eb1a3f86262ca77" + }, + "Version": "1.26-r0", + "Arch": "x86_64", + "SrcName": "gdbm", + "SrcVersion": "1.26-r0", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:619493d8124fe49a8ee1d8f7a1372cf7e3977337", + "InstalledFiles": [ + "usr/lib/libgdbm.so.6", + "usr/lib/libgdbm.so.6.0.0", + "usr/lib/libgdbm_compat.so.4", + "usr/lib/libgdbm_compat.so.4.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "keyutils-libs@1.6.3-r4", + "Name": "keyutils-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64\u0026distro=3.24.1", + "UID": "a1a29120eb342032" + }, + "Version": "1.6.3-r4", + "Arch": "x86_64", + "SrcName": "keyutils", + "SrcVersion": "1.6.3-r4", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:b7331c96f077fc3522ee4361a441d1097204cd90", + "InstalledFiles": [ + "usr/lib/libkeyutils.so.1", + "usr/lib/libkeyutils.so.1.10" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-conf@1.0-r2", + "Name": "krb5-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "e7cf94ba8b6dbc33" + }, + "Version": "1.0-r2", + "Arch": "x86_64", + "SrcName": "krb5-conf", + "SrcVersion": "1.0-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:40a11e0690a59e110367b62a80661024e9942a2d", + "InstalledFiles": [ + "etc/krb5.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-libs@1.22.2-r1", + "Name": "krb5-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "958f8b4a4f087dac" + }, + "Version": "1.22.2-r1", + "Arch": "x86_64", + "SrcName": "krb5", + "SrcVersion": "1.22.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "keyutils-libs@1.6.3-r4", + "krb5-conf@1.0-r2", + "libcom_err@1.47.4-r0", + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "libverto@0.3.2-r2", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:ef02346e21b817ff379e4601e5b1fc9760e5e31a", + "InstalledFiles": [ + "usr/lib/libgssapi_krb5.so.2", + "usr/lib/libgssapi_krb5.so.2.2", + "usr/lib/libgssrpc.so.4", + "usr/lib/libgssrpc.so.4.2", + "usr/lib/libk5crypto.so.3", + "usr/lib/libk5crypto.so.3.1", + "usr/lib/libkadm5clnt_mit.so.12", + "usr/lib/libkadm5clnt_mit.so.12.0", + "usr/lib/libkadm5srv_mit.so.12", + "usr/lib/libkadm5srv_mit.so.12.0", + "usr/lib/libkdb5.so.10", + "usr/lib/libkdb5.so.10.0", + "usr/lib/libkrad.so.0", + "usr/lib/libkrad.so.0.0", + "usr/lib/libkrb5.so.3", + "usr/lib/libkrb5.so.3.3", + "usr/lib/libkrb5support.so.0", + "usr/lib/libkrb5support.so.0.1", + "usr/lib/krb5/plugins/kdb/db2.so", + "usr/lib/krb5/plugins/preauth/otp.so", + "usr/lib/krb5/plugins/preauth/spake.so", + "usr/lib/krb5/plugins/preauth/test.so", + "usr/lib/krb5/plugins/tls/k5tls.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libapk@3.0.6-r0", + "Name": "libapk", + "Identifier": { + "PURL": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "a35b8b9b3219513a" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:523a8f58104589f74f743d501c81bf6517155378", + "InstalledFiles": [ + "usr/lib/libapk.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libbz2@1.0.8-r6", + "Name": "libbz2", + "Identifier": { + "PURL": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64\u0026distro=3.24.1", + "UID": "48e17539404e2d56" + }, + "Version": "1.0.8-r6", + "Arch": "x86_64", + "SrcName": "bzip2", + "SrcVersion": "1.0.8-r6", + "Licenses": [ + "bzip-2-1.0.6" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:08566ba5c7af97c25474be8b24e8b48f0116b67d", + "InstalledFiles": [ + "usr/lib/libbz2.so.1", + "usr/lib/libbz2.so.1.0.8" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcom_err@1.47.4-r0", + "Name": "libcom_err", + "Identifier": { + "PURL": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "3fc35a3f66d192af" + }, + "Version": "1.47.4-r0", + "Arch": "x86_64", + "SrcName": "e2fsprogs", + "SrcVersion": "1.47.4-r0", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later", + "BSD-3-Clause", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef", + "InstalledFiles": [ + "usr/lib/libcom_err.so.2", + "usr/lib/libcom_err.so.2.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcrypto3@3.5.8-r0", + "Name": "libcrypto3", + "Identifier": { + "PURL": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "4299bba2ba9c96aa" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3", + "InstalledFiles": [ + "etc/ssl/ct_log_list.cnf", + "etc/ssl/ct_log_list.cnf.dist", + "etc/ssl/openssl.cnf", + "etc/ssl/openssl.cnf.dist", + "usr/lib/libcrypto.so.3", + "usr/lib/engines-3/afalg.so", + "usr/lib/engines-3/capi.so", + "usr/lib/engines-3/loader_attic.so", + "usr/lib/engines-3/padlock.so", + "usr/lib/ossl-modules/legacy.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libffi@3.5.2-r1", + "Name": "libffi", + "Identifier": { + "PURL": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "d3eaa921287b1ccd" + }, + "Version": "3.5.2-r1", + "Arch": "x86_64", + "SrcName": "libffi", + "SrcVersion": "3.5.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a", + "InstalledFiles": [ + "usr/lib/libffi.so.8", + "usr/lib/libffi.so.8.2.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libintl@1.0-r0", + "Name": "libintl", + "Identifier": { + "PURL": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "25c18808d8fc87e0" + }, + "Version": "1.0-r0", + "Arch": "x86_64", + "SrcName": "gettext", + "SrcVersion": "1.0-r0", + "Licenses": [ + "LGPL-2.1-or-later" + ], + "Maintainer": "Carlo Landmeter \u003cclandmeter@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:282d6642ccac87237e43a864159d73cf5abe7550", + "InstalledFiles": [ + "usr/lib/libintl.so.8", + "usr/lib/libintl.so.8.4.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libncursesw@6.6_p20260516-r0", + "Name": "libncursesw", + "Identifier": { + "PURL": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e8939f45e2191bcc" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9f318e6e324d6827274829194cf6ac6afbaded12", + "InstalledFiles": [ + "usr/lib/libncursesw.so.6", + "usr/lib/libncursesw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libnsl@2.0.1-r2", + "Name": "libnsl", + "Identifier": { + "PURL": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "3d893c60d41da67b" + }, + "Version": "2.0.1-r2", + "Arch": "x86_64", + "SrcName": "libnsl", + "SrcVersion": "2.0.1-r2", + "Licenses": [ + "LGPL-2.0-or-later" + ], + "DependsOn": [ + "libintl@1.0-r0", + "libtirpc@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5194adbf26560b52be318481a7af294ab05fd795", + "InstalledFiles": [ + "usr/lib/libnsl.so.3", + "usr/lib/libnsl.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libpanelw@6.6_p20260516-r0", + "Name": "libpanelw", + "Identifier": { + "PURL": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "ef1ad9bb256b373" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:149bdc434232ed11fc5bb975ba519a07154a6f56", + "InstalledFiles": [ + "usr/lib/libpanelw.so.6", + "usr/lib/libpanelw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libssl3@3.5.8-r0", + "Name": "libssl3", + "Identifier": { + "PURL": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "f290ab59b88b1c4a" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5f9b1e55d821953d2e2b1db322dad70a3b5041ea", + "InstalledFiles": [ + "usr/lib/libssl.so.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc@1.3.5-r1", + "Name": "libtirpc", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "471c8d955ca03be5" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "krb5-libs@1.22.2-r1", + "libtirpc-conf@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:c32865bd86a8b8829d152279cabbc5ac6d430eb2", + "InstalledFiles": [ + "usr/lib/libtirpc.so.3", + "usr/lib/libtirpc.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc-conf@1.3.5-r1", + "Name": "libtirpc-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "3437392c14aad33f" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:0c17d9988dc986c90e22f79778df047eca9973ff", + "InstalledFiles": [ + "etc/bindresvport.blacklist", + "etc/netconfig" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libuuid@2.42.3-r1", + "Name": "libuuid", + "Identifier": { + "PURL": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "c444e9cdd1bdda40" + }, + "Version": "2.42.3-r1", + "Arch": "x86_64", + "SrcName": "util-linux", + "SrcVersion": "2.42.3-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + "Digest": "sha1:8f041ef637ad75f381cc0c034f2afbbb0303264e", + "InstalledFiles": [ + "usr/lib/libuuid.so.1", + "usr/lib/libuuid.so.1.3.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libverto@0.3.2-r2", + "Name": "libverto", + "Identifier": { + "PURL": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "9df4321a283a6cf6" + }, + "Version": "0.3.2-r2", + "Arch": "x86_64", + "SrcName": "libverto", + "SrcVersion": "0.3.2-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Francesco Colista \u003cfcolista@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:73233059338142e4ac6d8fb8bb0074e93da75dc1", + "InstalledFiles": [ + "usr/lib/libverto.so.1", + "usr/lib/libverto.so.1.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl@1.2.6-r2", + "Name": "musl", + "Identifier": { + "PURL": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "1f8cb44befe503d4" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:0f7e5827e4e1a73631beda27b78431a8ba240e05", + "InstalledFiles": [ + "lib/ld-musl-x86_64.so.1", + "lib/libc.musl-x86_64.so.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl-utils@1.2.6-r2", + "Name": "musl-utils", + "Identifier": { + "PURL": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "4497482ec1d943e1" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT", + "BSD-2-Clause", + "GPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "scanelf@1.3.9-r1" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:75ada3c48d63ec5d87c42fdf934a3fdd11298dc5", + "InstalledFiles": [ + "sbin/ldconfig", + "usr/bin/getconf", + "usr/bin/getent", + "usr/bin/iconv", + "usr/bin/ldd" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ncurses-terminfo-base@6.6_p20260516-r0", + "Name": "ncurses-terminfo-base", + "Identifier": { + "PURL": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e7fac5c6a6e9ae8" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9d551d828e9c8ee52c5801c1d6046828ebf15752", + "InstalledFiles": [ + "etc/terminfo/a/alacritty", + "etc/terminfo/a/ansi", + "etc/terminfo/d/dumb", + "etc/terminfo/g/gnome", + "etc/terminfo/g/gnome-256color", + "etc/terminfo/k/konsole", + "etc/terminfo/k/konsole-256color", + "etc/terminfo/k/konsole-linux", + "etc/terminfo/l/linux", + "etc/terminfo/p/putty", + "etc/terminfo/p/putty-256color", + "etc/terminfo/r/rxvt", + "etc/terminfo/r/rxvt-256color", + "etc/terminfo/s/screen", + "etc/terminfo/s/screen-256color", + "etc/terminfo/s/st-0.6", + "etc/terminfo/s/st-0.7", + "etc/terminfo/s/st-0.8", + "etc/terminfo/s/st-0.8.5", + "etc/terminfo/s/st-16color", + "etc/terminfo/s/st-256color", + "etc/terminfo/s/st-direct", + "etc/terminfo/s/sun", + "etc/terminfo/t/terminator", + "etc/terminfo/t/terminology", + "etc/terminfo/t/terminology-0.6.1", + "etc/terminfo/t/terminology-1.0.0", + "etc/terminfo/t/terminology-1.8.1", + "etc/terminfo/t/tmux", + "etc/terminfo/t/tmux-256color", + "etc/terminfo/v/vt100", + "etc/terminfo/v/vt102", + "etc/terminfo/v/vt200", + "etc/terminfo/v/vt220", + "etc/terminfo/v/vt52", + "etc/terminfo/v/vte", + "etc/terminfo/v/vte-256color", + "etc/terminfo/x/xterm", + "etc/terminfo/x/xterm-256color", + "etc/terminfo/x/xterm-color", + "etc/terminfo/x/xterm-xfree86" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "readline@8.3.3-r1", + "Name": "readline", + "Identifier": { + "PURL": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "f50058781c93e1f2" + }, + "Version": "8.3.3-r1", + "Arch": "x86_64", + "SrcName": "readline", + "SrcVersion": "8.3.3-r1", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "qaqland \u003cqaq@qaq.land\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:945b16e378bc00e44d89d4de8124bba7647fdf4d", + "InstalledFiles": [ + "etc/inputrc", + "usr/lib/libreadline.so.8", + "usr/lib/libreadline.so.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "scanelf@1.3.9-r1", + "Name": "scanelf", + "Identifier": { + "PURL": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "936394657a1626fb" + }, + "Version": "1.3.9-r1", + "Arch": "x86_64", + "SrcName": "pax-utils", + "SrcVersion": "1.3.9-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:013f903d0ba219673aebbdd04f74bb5ed82b01f0", + "InstalledFiles": [ + "usr/bin/scanelf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "sqlite-libs@3.53.4-r0", + "Name": "sqlite-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "8b10aee2ccc192de" + }, + "Version": "3.53.4-r0", + "Arch": "x86_64", + "SrcName": "sqlite", + "SrcVersion": "3.53.4-r0", + "Licenses": [ + "blessing" + ], + "Maintainer": "Jingyun Hua \u003chuajingyun@loongson.cn\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:f7630ceb37c232b6609861aeab6cdb9cd120e6fa", + "InstalledFiles": [ + "usr/lib/libsqlite3.so.0", + "usr/lib/libsqlite3.so.3.53.4" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ssl_client@1.37.0-r31", + "Name": "ssl_client", + "Identifier": { + "PURL": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "d42e31f15a4ce47a" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c220f4a5125a313af733e98def94132bb1e9d40d", + "InstalledFiles": [ + "usr/bin/ssl_client" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "tzdata@2026c-r0", + "Name": "tzdata", + "Identifier": { + "PURL": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "52c6b50eff629f9d" + }, + "Version": "2026c-r0", + "Arch": "x86_64", + "SrcName": "tzdata", + "SrcVersion": "2026c-r0", + "Licenses": [ + "Public-Domain" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:61f7544ecd8dd63eac23fe3e645702fda92ef02a", + "InstalledFiles": [ + "usr/share/zoneinfo/CET", + "usr/share/zoneinfo/CST6CDT", + "usr/share/zoneinfo/Cuba", + "usr/share/zoneinfo/EET", + "usr/share/zoneinfo/EST", + "usr/share/zoneinfo/EST5EDT", + "usr/share/zoneinfo/Egypt", + "usr/share/zoneinfo/Eire", + "usr/share/zoneinfo/Factory", + "usr/share/zoneinfo/GB", + "usr/share/zoneinfo/GB-Eire", + "usr/share/zoneinfo/GMT", + "usr/share/zoneinfo/GMT+0", + "usr/share/zoneinfo/GMT-0", + "usr/share/zoneinfo/GMT0", + "usr/share/zoneinfo/Greenwich", + "usr/share/zoneinfo/HST", + "usr/share/zoneinfo/Hongkong", + "usr/share/zoneinfo/Iceland", + "usr/share/zoneinfo/Iran", + "usr/share/zoneinfo/Israel", + "usr/share/zoneinfo/Jamaica", + "usr/share/zoneinfo/Japan", + "usr/share/zoneinfo/Kwajalein", + "usr/share/zoneinfo/Libya", + "usr/share/zoneinfo/MET", + "usr/share/zoneinfo/MST", + "usr/share/zoneinfo/MST7MDT", + "usr/share/zoneinfo/NZ", + "usr/share/zoneinfo/NZ-CHAT", + "usr/share/zoneinfo/Navajo", + "usr/share/zoneinfo/PRC", + "usr/share/zoneinfo/PST8PDT", + "usr/share/zoneinfo/Poland", + "usr/share/zoneinfo/Portugal", + "usr/share/zoneinfo/ROC", + "usr/share/zoneinfo/ROK", + "usr/share/zoneinfo/Singapore", + "usr/share/zoneinfo/Turkey", + "usr/share/zoneinfo/UCT", + "usr/share/zoneinfo/UTC", + "usr/share/zoneinfo/Universal", + "usr/share/zoneinfo/W-SU", + "usr/share/zoneinfo/WET", + "usr/share/zoneinfo/Zulu", + "usr/share/zoneinfo/iso3166.tab", + "usr/share/zoneinfo/leap-seconds.list", + "usr/share/zoneinfo/posixrules", + "usr/share/zoneinfo/zone.tab", + "usr/share/zoneinfo/zone1970.tab", + "usr/share/zoneinfo/Africa/Abidjan", + "usr/share/zoneinfo/Africa/Accra", + "usr/share/zoneinfo/Africa/Addis_Ababa", + "usr/share/zoneinfo/Africa/Algiers", + "usr/share/zoneinfo/Africa/Asmara", + "usr/share/zoneinfo/Africa/Asmera", + "usr/share/zoneinfo/Africa/Bamako", + "usr/share/zoneinfo/Africa/Bangui", + "usr/share/zoneinfo/Africa/Banjul", + "usr/share/zoneinfo/Africa/Bissau", + "usr/share/zoneinfo/Africa/Blantyre", + "usr/share/zoneinfo/Africa/Brazzaville", + "usr/share/zoneinfo/Africa/Bujumbura", + "usr/share/zoneinfo/Africa/Cairo", + "usr/share/zoneinfo/Africa/Casablanca", + "usr/share/zoneinfo/Africa/Ceuta", + "usr/share/zoneinfo/Africa/Conakry", + "usr/share/zoneinfo/Africa/Dakar", + "usr/share/zoneinfo/Africa/Dar_es_Salaam", + "usr/share/zoneinfo/Africa/Djibouti", + "usr/share/zoneinfo/Africa/Douala", + "usr/share/zoneinfo/Africa/El_Aaiun", + "usr/share/zoneinfo/Africa/Freetown", + "usr/share/zoneinfo/Africa/Gaborone", + "usr/share/zoneinfo/Africa/Harare", + "usr/share/zoneinfo/Africa/Johannesburg", + "usr/share/zoneinfo/Africa/Juba", + "usr/share/zoneinfo/Africa/Kampala", + "usr/share/zoneinfo/Africa/Khartoum", + "usr/share/zoneinfo/Africa/Kigali", + "usr/share/zoneinfo/Africa/Kinshasa", + "usr/share/zoneinfo/Africa/Lagos", + "usr/share/zoneinfo/Africa/Libreville", + "usr/share/zoneinfo/Africa/Lome", + "usr/share/zoneinfo/Africa/Luanda", + "usr/share/zoneinfo/Africa/Lubumbashi", + "usr/share/zoneinfo/Africa/Lusaka", + "usr/share/zoneinfo/Africa/Malabo", + "usr/share/zoneinfo/Africa/Maputo", + "usr/share/zoneinfo/Africa/Maseru", + "usr/share/zoneinfo/Africa/Mbabane", + "usr/share/zoneinfo/Africa/Mogadishu", + "usr/share/zoneinfo/Africa/Monrovia", + "usr/share/zoneinfo/Africa/Nairobi", + "usr/share/zoneinfo/Africa/Ndjamena", + "usr/share/zoneinfo/Africa/Niamey", + "usr/share/zoneinfo/Africa/Nouakchott", + "usr/share/zoneinfo/Africa/Ouagadougou", + "usr/share/zoneinfo/Africa/Porto-Novo", + "usr/share/zoneinfo/Africa/Sao_Tome", + "usr/share/zoneinfo/Africa/Timbuktu", + "usr/share/zoneinfo/Africa/Tripoli", + "usr/share/zoneinfo/Africa/Tunis", + "usr/share/zoneinfo/Africa/Windhoek", + "usr/share/zoneinfo/America/Adak", + "usr/share/zoneinfo/America/Anchorage", + "usr/share/zoneinfo/America/Anguilla", + "usr/share/zoneinfo/America/Antigua", + "usr/share/zoneinfo/America/Araguaina", + "usr/share/zoneinfo/America/Aruba", + "usr/share/zoneinfo/America/Asuncion", + "usr/share/zoneinfo/America/Atikokan", + "usr/share/zoneinfo/America/Atka", + "usr/share/zoneinfo/America/Bahia", + "usr/share/zoneinfo/America/Bahia_Banderas", + "usr/share/zoneinfo/America/Barbados", + "usr/share/zoneinfo/America/Belem", + "usr/share/zoneinfo/America/Belize", + "usr/share/zoneinfo/America/Blanc-Sablon", + "usr/share/zoneinfo/America/Boa_Vista", + "usr/share/zoneinfo/America/Bogota", + "usr/share/zoneinfo/America/Boise", + "usr/share/zoneinfo/America/Buenos_Aires", + "usr/share/zoneinfo/America/Cambridge_Bay", + "usr/share/zoneinfo/America/Campo_Grande", + "usr/share/zoneinfo/America/Cancun", + "usr/share/zoneinfo/America/Caracas", + "usr/share/zoneinfo/America/Catamarca", + "usr/share/zoneinfo/America/Cayenne", + "usr/share/zoneinfo/America/Cayman", + "usr/share/zoneinfo/America/Chicago", + "usr/share/zoneinfo/America/Chihuahua", + "usr/share/zoneinfo/America/Ciudad_Juarez", + "usr/share/zoneinfo/America/Coral_Harbour", + "usr/share/zoneinfo/America/Cordoba", + "usr/share/zoneinfo/America/Costa_Rica", + "usr/share/zoneinfo/America/Coyhaique", + "usr/share/zoneinfo/America/Creston", + "usr/share/zoneinfo/America/Cuiaba", + "usr/share/zoneinfo/America/Curacao", + "usr/share/zoneinfo/America/Danmarkshavn", + "usr/share/zoneinfo/America/Dawson", + "usr/share/zoneinfo/America/Dawson_Creek", + "usr/share/zoneinfo/America/Denver", + "usr/share/zoneinfo/America/Detroit", + "usr/share/zoneinfo/America/Dominica", + "usr/share/zoneinfo/America/Edmonton", + "usr/share/zoneinfo/America/Eirunepe", + "usr/share/zoneinfo/America/El_Salvador", + "usr/share/zoneinfo/America/Ensenada", + "usr/share/zoneinfo/America/Fort_Nelson", + "usr/share/zoneinfo/America/Fort_Wayne", + "usr/share/zoneinfo/America/Fortaleza", + "usr/share/zoneinfo/America/Glace_Bay", + "usr/share/zoneinfo/America/Godthab", + "usr/share/zoneinfo/America/Goose_Bay", + "usr/share/zoneinfo/America/Grand_Turk", + "usr/share/zoneinfo/America/Grenada", + "usr/share/zoneinfo/America/Guadeloupe", + "usr/share/zoneinfo/America/Guatemala", + "usr/share/zoneinfo/America/Guayaquil", + "usr/share/zoneinfo/America/Guyana", + "usr/share/zoneinfo/America/Halifax", + "usr/share/zoneinfo/America/Havana", + "usr/share/zoneinfo/America/Hermosillo", + "usr/share/zoneinfo/America/Indianapolis", + "usr/share/zoneinfo/America/Inuvik", + "usr/share/zoneinfo/America/Iqaluit", + "usr/share/zoneinfo/America/Jamaica", + "usr/share/zoneinfo/America/Jujuy", + "usr/share/zoneinfo/America/Juneau", + "usr/share/zoneinfo/America/Knox_IN", + "usr/share/zoneinfo/America/Kralendijk", + "usr/share/zoneinfo/America/La_Paz", + "usr/share/zoneinfo/America/Lima", + "usr/share/zoneinfo/America/Los_Angeles", + "usr/share/zoneinfo/America/Louisville", + "usr/share/zoneinfo/America/Lower_Princes", + "usr/share/zoneinfo/America/Maceio", + "usr/share/zoneinfo/America/Managua", + "usr/share/zoneinfo/America/Manaus", + "usr/share/zoneinfo/America/Marigot", + "usr/share/zoneinfo/America/Martinique", + "usr/share/zoneinfo/America/Matamoros", + "usr/share/zoneinfo/America/Mazatlan", + "usr/share/zoneinfo/America/Mendoza", + "usr/share/zoneinfo/America/Menominee", + "usr/share/zoneinfo/America/Merida", + "usr/share/zoneinfo/America/Metlakatla", + "usr/share/zoneinfo/America/Mexico_City", + "usr/share/zoneinfo/America/Miquelon", + "usr/share/zoneinfo/America/Moncton", + "usr/share/zoneinfo/America/Monterrey", + "usr/share/zoneinfo/America/Montevideo", + "usr/share/zoneinfo/America/Montreal", + "usr/share/zoneinfo/America/Montserrat", + "usr/share/zoneinfo/America/Nassau", + "usr/share/zoneinfo/America/New_York", + "usr/share/zoneinfo/America/Nipigon", + "usr/share/zoneinfo/America/Nome", + "usr/share/zoneinfo/America/Noronha", + "usr/share/zoneinfo/America/Nuuk", + "usr/share/zoneinfo/America/Ojinaga", + "usr/share/zoneinfo/America/Panama", + "usr/share/zoneinfo/America/Pangnirtung", + "usr/share/zoneinfo/America/Paramaribo", + "usr/share/zoneinfo/America/Phoenix", + "usr/share/zoneinfo/America/Port-au-Prince", + "usr/share/zoneinfo/America/Port_of_Spain", + "usr/share/zoneinfo/America/Porto_Acre", + "usr/share/zoneinfo/America/Porto_Velho", + "usr/share/zoneinfo/America/Puerto_Rico", + "usr/share/zoneinfo/America/Punta_Arenas", + "usr/share/zoneinfo/America/Rainy_River", + "usr/share/zoneinfo/America/Rankin_Inlet", + "usr/share/zoneinfo/America/Recife", + "usr/share/zoneinfo/America/Regina", + "usr/share/zoneinfo/America/Resolute", + "usr/share/zoneinfo/America/Rio_Branco", + "usr/share/zoneinfo/America/Rosario", + "usr/share/zoneinfo/America/Santa_Isabel", + "usr/share/zoneinfo/America/Santarem", + "usr/share/zoneinfo/America/Santiago", + "usr/share/zoneinfo/America/Santo_Domingo", + "usr/share/zoneinfo/America/Sao_Paulo", + "usr/share/zoneinfo/America/Scoresbysund", + "usr/share/zoneinfo/America/Shiprock", + "usr/share/zoneinfo/America/Sitka", + "usr/share/zoneinfo/America/St_Barthelemy", + "usr/share/zoneinfo/America/St_Johns", + "usr/share/zoneinfo/America/St_Kitts", + "usr/share/zoneinfo/America/St_Lucia", + "usr/share/zoneinfo/America/St_Thomas", + "usr/share/zoneinfo/America/St_Vincent", + "usr/share/zoneinfo/America/Swift_Current", + "usr/share/zoneinfo/America/Tegucigalpa", + "usr/share/zoneinfo/America/Thule", + "usr/share/zoneinfo/America/Thunder_Bay", + "usr/share/zoneinfo/America/Tijuana", + "usr/share/zoneinfo/America/Toronto", + "usr/share/zoneinfo/America/Tortola", + "usr/share/zoneinfo/America/Vancouver", + "usr/share/zoneinfo/America/Virgin", + "usr/share/zoneinfo/America/Whitehorse", + "usr/share/zoneinfo/America/Winnipeg", + "usr/share/zoneinfo/America/Yakutat", + "usr/share/zoneinfo/America/Yellowknife", + "usr/share/zoneinfo/America/Argentina/Buenos_Aires", + "usr/share/zoneinfo/America/Argentina/Catamarca", + "usr/share/zoneinfo/America/Argentina/ComodRivadavia", + "usr/share/zoneinfo/America/Argentina/Cordoba", + "usr/share/zoneinfo/America/Argentina/Jujuy", + "usr/share/zoneinfo/America/Argentina/La_Rioja", + "usr/share/zoneinfo/America/Argentina/Mendoza", + "usr/share/zoneinfo/America/Argentina/Rio_Gallegos", + "usr/share/zoneinfo/America/Argentina/Salta", + "usr/share/zoneinfo/America/Argentina/San_Juan", + "usr/share/zoneinfo/America/Argentina/San_Luis", + "usr/share/zoneinfo/America/Argentina/Tucuman", + "usr/share/zoneinfo/America/Argentina/Ushuaia", + "usr/share/zoneinfo/America/Indiana/Indianapolis", + "usr/share/zoneinfo/America/Indiana/Knox", + "usr/share/zoneinfo/America/Indiana/Marengo", + "usr/share/zoneinfo/America/Indiana/Petersburg", + "usr/share/zoneinfo/America/Indiana/Tell_City", + "usr/share/zoneinfo/America/Indiana/Vevay", + "usr/share/zoneinfo/America/Indiana/Vincennes", + "usr/share/zoneinfo/America/Indiana/Winamac", + "usr/share/zoneinfo/America/Kentucky/Louisville", + "usr/share/zoneinfo/America/Kentucky/Monticello", + "usr/share/zoneinfo/America/North_Dakota/Beulah", + "usr/share/zoneinfo/America/North_Dakota/Center", + "usr/share/zoneinfo/America/North_Dakota/New_Salem", + "usr/share/zoneinfo/Antarctica/Casey", + "usr/share/zoneinfo/Antarctica/Davis", + "usr/share/zoneinfo/Antarctica/DumontDUrville", + "usr/share/zoneinfo/Antarctica/Macquarie", + "usr/share/zoneinfo/Antarctica/Mawson", + "usr/share/zoneinfo/Antarctica/McMurdo", + "usr/share/zoneinfo/Antarctica/Palmer", + "usr/share/zoneinfo/Antarctica/Rothera", + "usr/share/zoneinfo/Antarctica/South_Pole", + "usr/share/zoneinfo/Antarctica/Syowa", + "usr/share/zoneinfo/Antarctica/Troll", + "usr/share/zoneinfo/Antarctica/Vostok", + "usr/share/zoneinfo/Arctic/Longyearbyen", + "usr/share/zoneinfo/Asia/Aden", + "usr/share/zoneinfo/Asia/Almaty", + "usr/share/zoneinfo/Asia/Amman", + "usr/share/zoneinfo/Asia/Anadyr", + "usr/share/zoneinfo/Asia/Aqtau", + "usr/share/zoneinfo/Asia/Aqtobe", + "usr/share/zoneinfo/Asia/Ashgabat", + "usr/share/zoneinfo/Asia/Ashkhabad", + "usr/share/zoneinfo/Asia/Atyrau", + "usr/share/zoneinfo/Asia/Baghdad", + "usr/share/zoneinfo/Asia/Bahrain", + "usr/share/zoneinfo/Asia/Baku", + "usr/share/zoneinfo/Asia/Bangkok", + "usr/share/zoneinfo/Asia/Barnaul", + "usr/share/zoneinfo/Asia/Beirut", + "usr/share/zoneinfo/Asia/Bishkek", + "usr/share/zoneinfo/Asia/Brunei", + "usr/share/zoneinfo/Asia/Calcutta", + "usr/share/zoneinfo/Asia/Chita", + "usr/share/zoneinfo/Asia/Choibalsan", + "usr/share/zoneinfo/Asia/Chongqing", + "usr/share/zoneinfo/Asia/Chungking", + "usr/share/zoneinfo/Asia/Colombo", + "usr/share/zoneinfo/Asia/Dacca", + "usr/share/zoneinfo/Asia/Damascus", + "usr/share/zoneinfo/Asia/Dhaka", + "usr/share/zoneinfo/Asia/Dili", + "usr/share/zoneinfo/Asia/Dubai", + "usr/share/zoneinfo/Asia/Dushanbe", + "usr/share/zoneinfo/Asia/Famagusta", + "usr/share/zoneinfo/Asia/Gaza", + "usr/share/zoneinfo/Asia/Harbin", + "usr/share/zoneinfo/Asia/Hebron", + "usr/share/zoneinfo/Asia/Ho_Chi_Minh", + "usr/share/zoneinfo/Asia/Hong_Kong", + "usr/share/zoneinfo/Asia/Hovd", + "usr/share/zoneinfo/Asia/Irkutsk", + "usr/share/zoneinfo/Asia/Istanbul", + "usr/share/zoneinfo/Asia/Jakarta", + "usr/share/zoneinfo/Asia/Jayapura", + "usr/share/zoneinfo/Asia/Jerusalem", + "usr/share/zoneinfo/Asia/Kabul", + "usr/share/zoneinfo/Asia/Kamchatka", + "usr/share/zoneinfo/Asia/Karachi", + "usr/share/zoneinfo/Asia/Kashgar", + "usr/share/zoneinfo/Asia/Kathmandu", + "usr/share/zoneinfo/Asia/Katmandu", + "usr/share/zoneinfo/Asia/Khandyga", + "usr/share/zoneinfo/Asia/Kolkata", + "usr/share/zoneinfo/Asia/Krasnoyarsk", + "usr/share/zoneinfo/Asia/Kuala_Lumpur", + "usr/share/zoneinfo/Asia/Kuching", + "usr/share/zoneinfo/Asia/Kuwait", + "usr/share/zoneinfo/Asia/Macao", + "usr/share/zoneinfo/Asia/Macau", + "usr/share/zoneinfo/Asia/Magadan", + "usr/share/zoneinfo/Asia/Makassar", + "usr/share/zoneinfo/Asia/Manila", + "usr/share/zoneinfo/Asia/Muscat", + "usr/share/zoneinfo/Asia/Nicosia", + "usr/share/zoneinfo/Asia/Novokuznetsk", + "usr/share/zoneinfo/Asia/Novosibirsk", + "usr/share/zoneinfo/Asia/Omsk", + "usr/share/zoneinfo/Asia/Oral", + "usr/share/zoneinfo/Asia/Phnom_Penh", + "usr/share/zoneinfo/Asia/Pontianak", + "usr/share/zoneinfo/Asia/Pyongyang", + "usr/share/zoneinfo/Asia/Qatar", + "usr/share/zoneinfo/Asia/Qostanay", + "usr/share/zoneinfo/Asia/Qyzylorda", + "usr/share/zoneinfo/Asia/Rangoon", + "usr/share/zoneinfo/Asia/Riyadh", + "usr/share/zoneinfo/Asia/Saigon", + "usr/share/zoneinfo/Asia/Sakhalin", + "usr/share/zoneinfo/Asia/Samarkand", + "usr/share/zoneinfo/Asia/Seoul", + "usr/share/zoneinfo/Asia/Shanghai", + "usr/share/zoneinfo/Asia/Singapore", + "usr/share/zoneinfo/Asia/Srednekolymsk", + "usr/share/zoneinfo/Asia/Taipei", + "usr/share/zoneinfo/Asia/Tashkent", + "usr/share/zoneinfo/Asia/Tbilisi", + "usr/share/zoneinfo/Asia/Tehran", + "usr/share/zoneinfo/Asia/Tel_Aviv", + "usr/share/zoneinfo/Asia/Thimbu", + "usr/share/zoneinfo/Asia/Thimphu", + "usr/share/zoneinfo/Asia/Tokyo", + "usr/share/zoneinfo/Asia/Tomsk", + "usr/share/zoneinfo/Asia/Ujung_Pandang", + "usr/share/zoneinfo/Asia/Ulaanbaatar", + "usr/share/zoneinfo/Asia/Ulan_Bator", + "usr/share/zoneinfo/Asia/Urumqi", + "usr/share/zoneinfo/Asia/Ust-Nera", + "usr/share/zoneinfo/Asia/Vientiane", + "usr/share/zoneinfo/Asia/Vladivostok", + "usr/share/zoneinfo/Asia/Yakutsk", + "usr/share/zoneinfo/Asia/Yangon", + "usr/share/zoneinfo/Asia/Yekaterinburg", + "usr/share/zoneinfo/Asia/Yerevan", + "usr/share/zoneinfo/Atlantic/Azores", + "usr/share/zoneinfo/Atlantic/Bermuda", + "usr/share/zoneinfo/Atlantic/Canary", + "usr/share/zoneinfo/Atlantic/Cape_Verde", + "usr/share/zoneinfo/Atlantic/Faeroe", + "usr/share/zoneinfo/Atlantic/Faroe", + "usr/share/zoneinfo/Atlantic/Jan_Mayen", + "usr/share/zoneinfo/Atlantic/Madeira", + "usr/share/zoneinfo/Atlantic/Reykjavik", + "usr/share/zoneinfo/Atlantic/South_Georgia", + "usr/share/zoneinfo/Atlantic/St_Helena", + "usr/share/zoneinfo/Atlantic/Stanley", + "usr/share/zoneinfo/Australia/ACT", + "usr/share/zoneinfo/Australia/Adelaide", + "usr/share/zoneinfo/Australia/Brisbane", + "usr/share/zoneinfo/Australia/Broken_Hill", + "usr/share/zoneinfo/Australia/Canberra", + "usr/share/zoneinfo/Australia/Currie", + "usr/share/zoneinfo/Australia/Darwin", + "usr/share/zoneinfo/Australia/Eucla", + "usr/share/zoneinfo/Australia/Hobart", + "usr/share/zoneinfo/Australia/LHI", + "usr/share/zoneinfo/Australia/Lindeman", + "usr/share/zoneinfo/Australia/Lord_Howe", + "usr/share/zoneinfo/Australia/Melbourne", + "usr/share/zoneinfo/Australia/NSW", + "usr/share/zoneinfo/Australia/North", + "usr/share/zoneinfo/Australia/Perth", + "usr/share/zoneinfo/Australia/Queensland", + "usr/share/zoneinfo/Australia/South", + "usr/share/zoneinfo/Australia/Sydney", + "usr/share/zoneinfo/Australia/Tasmania", + "usr/share/zoneinfo/Australia/Victoria", + "usr/share/zoneinfo/Australia/West", + "usr/share/zoneinfo/Australia/Yancowinna", + "usr/share/zoneinfo/Brazil/Acre", + "usr/share/zoneinfo/Brazil/DeNoronha", + "usr/share/zoneinfo/Brazil/East", + "usr/share/zoneinfo/Brazil/West", + "usr/share/zoneinfo/Canada/Atlantic", + "usr/share/zoneinfo/Canada/Central", + "usr/share/zoneinfo/Canada/Eastern", + "usr/share/zoneinfo/Canada/Mountain", + "usr/share/zoneinfo/Canada/Newfoundland", + "usr/share/zoneinfo/Canada/Pacific", + "usr/share/zoneinfo/Canada/Saskatchewan", + "usr/share/zoneinfo/Canada/Yukon", + "usr/share/zoneinfo/Chile/Continental", + "usr/share/zoneinfo/Chile/EasterIsland", + "usr/share/zoneinfo/Etc/GMT", + "usr/share/zoneinfo/Etc/GMT+0", + "usr/share/zoneinfo/Etc/GMT+1", + "usr/share/zoneinfo/Etc/GMT+10", + "usr/share/zoneinfo/Etc/GMT+11", + "usr/share/zoneinfo/Etc/GMT+12", + "usr/share/zoneinfo/Etc/GMT+2", + "usr/share/zoneinfo/Etc/GMT+3", + "usr/share/zoneinfo/Etc/GMT+4", + "usr/share/zoneinfo/Etc/GMT+5", + "usr/share/zoneinfo/Etc/GMT+6", + "usr/share/zoneinfo/Etc/GMT+7", + "usr/share/zoneinfo/Etc/GMT+8", + "usr/share/zoneinfo/Etc/GMT+9", + "usr/share/zoneinfo/Etc/GMT-0", + "usr/share/zoneinfo/Etc/GMT-1", + "usr/share/zoneinfo/Etc/GMT-10", + "usr/share/zoneinfo/Etc/GMT-11", + "usr/share/zoneinfo/Etc/GMT-12", + "usr/share/zoneinfo/Etc/GMT-13", + "usr/share/zoneinfo/Etc/GMT-14", + "usr/share/zoneinfo/Etc/GMT-2", + "usr/share/zoneinfo/Etc/GMT-3", + "usr/share/zoneinfo/Etc/GMT-4", + "usr/share/zoneinfo/Etc/GMT-5", + "usr/share/zoneinfo/Etc/GMT-6", + "usr/share/zoneinfo/Etc/GMT-7", + "usr/share/zoneinfo/Etc/GMT-8", + "usr/share/zoneinfo/Etc/GMT-9", + "usr/share/zoneinfo/Etc/GMT0", + "usr/share/zoneinfo/Etc/Greenwich", + "usr/share/zoneinfo/Etc/UCT", + "usr/share/zoneinfo/Etc/UTC", + "usr/share/zoneinfo/Etc/Universal", + "usr/share/zoneinfo/Etc/Zulu", + "usr/share/zoneinfo/Europe/Amsterdam", + "usr/share/zoneinfo/Europe/Andorra", + "usr/share/zoneinfo/Europe/Astrakhan", + "usr/share/zoneinfo/Europe/Athens", + "usr/share/zoneinfo/Europe/Belfast", + "usr/share/zoneinfo/Europe/Belgrade", + "usr/share/zoneinfo/Europe/Berlin", + "usr/share/zoneinfo/Europe/Bratislava", + "usr/share/zoneinfo/Europe/Brussels", + "usr/share/zoneinfo/Europe/Bucharest", + "usr/share/zoneinfo/Europe/Budapest", + "usr/share/zoneinfo/Europe/Busingen", + "usr/share/zoneinfo/Europe/Chisinau", + "usr/share/zoneinfo/Europe/Copenhagen", + "usr/share/zoneinfo/Europe/Dublin", + "usr/share/zoneinfo/Europe/Gibraltar", + "usr/share/zoneinfo/Europe/Guernsey", + "usr/share/zoneinfo/Europe/Helsinki", + "usr/share/zoneinfo/Europe/Isle_of_Man", + "usr/share/zoneinfo/Europe/Istanbul", + "usr/share/zoneinfo/Europe/Jersey", + "usr/share/zoneinfo/Europe/Kaliningrad", + "usr/share/zoneinfo/Europe/Kiev", + "usr/share/zoneinfo/Europe/Kirov", + "usr/share/zoneinfo/Europe/Kyiv", + "usr/share/zoneinfo/Europe/Lisbon", + "usr/share/zoneinfo/Europe/Ljubljana", + "usr/share/zoneinfo/Europe/London", + "usr/share/zoneinfo/Europe/Luxembourg", + "usr/share/zoneinfo/Europe/Madrid", + "usr/share/zoneinfo/Europe/Malta", + "usr/share/zoneinfo/Europe/Mariehamn", + "usr/share/zoneinfo/Europe/Minsk", + "usr/share/zoneinfo/Europe/Monaco", + "usr/share/zoneinfo/Europe/Moscow", + "usr/share/zoneinfo/Europe/Nicosia", + "usr/share/zoneinfo/Europe/Oslo", + "usr/share/zoneinfo/Europe/Paris", + "usr/share/zoneinfo/Europe/Podgorica", + "usr/share/zoneinfo/Europe/Prague", + "usr/share/zoneinfo/Europe/Riga", + "usr/share/zoneinfo/Europe/Rome", + "usr/share/zoneinfo/Europe/Samara", + "usr/share/zoneinfo/Europe/San_Marino", + "usr/share/zoneinfo/Europe/Sarajevo", + "usr/share/zoneinfo/Europe/Saratov", + "usr/share/zoneinfo/Europe/Simferopol", + "usr/share/zoneinfo/Europe/Skopje", + "usr/share/zoneinfo/Europe/Sofia", + "usr/share/zoneinfo/Europe/Stockholm", + "usr/share/zoneinfo/Europe/Tallinn", + "usr/share/zoneinfo/Europe/Tirane", + "usr/share/zoneinfo/Europe/Tiraspol", + "usr/share/zoneinfo/Europe/Ulyanovsk", + "usr/share/zoneinfo/Europe/Uzhgorod", + "usr/share/zoneinfo/Europe/Vaduz", + "usr/share/zoneinfo/Europe/Vatican", + "usr/share/zoneinfo/Europe/Vienna", + "usr/share/zoneinfo/Europe/Vilnius", + "usr/share/zoneinfo/Europe/Volgograd", + "usr/share/zoneinfo/Europe/Warsaw", + "usr/share/zoneinfo/Europe/Zagreb", + "usr/share/zoneinfo/Europe/Zaporozhye", + "usr/share/zoneinfo/Europe/Zurich", + "usr/share/zoneinfo/Indian/Antananarivo", + "usr/share/zoneinfo/Indian/Chagos", + "usr/share/zoneinfo/Indian/Christmas", + "usr/share/zoneinfo/Indian/Cocos", + "usr/share/zoneinfo/Indian/Comoro", + "usr/share/zoneinfo/Indian/Kerguelen", + "usr/share/zoneinfo/Indian/Mahe", + "usr/share/zoneinfo/Indian/Maldives", + "usr/share/zoneinfo/Indian/Mauritius", + "usr/share/zoneinfo/Indian/Mayotte", + "usr/share/zoneinfo/Indian/Reunion", + "usr/share/zoneinfo/Mexico/BajaNorte", + "usr/share/zoneinfo/Mexico/BajaSur", + "usr/share/zoneinfo/Mexico/General", + "usr/share/zoneinfo/Pacific/Apia", + "usr/share/zoneinfo/Pacific/Auckland", + "usr/share/zoneinfo/Pacific/Bougainville", + "usr/share/zoneinfo/Pacific/Chatham", + "usr/share/zoneinfo/Pacific/Chuuk", + "usr/share/zoneinfo/Pacific/Easter", + "usr/share/zoneinfo/Pacific/Efate", + "usr/share/zoneinfo/Pacific/Enderbury", + "usr/share/zoneinfo/Pacific/Fakaofo", + "usr/share/zoneinfo/Pacific/Fiji", + "usr/share/zoneinfo/Pacific/Funafuti", + "usr/share/zoneinfo/Pacific/Galapagos", + "usr/share/zoneinfo/Pacific/Gambier", + "usr/share/zoneinfo/Pacific/Guadalcanal", + "usr/share/zoneinfo/Pacific/Guam", + "usr/share/zoneinfo/Pacific/Honolulu", + "usr/share/zoneinfo/Pacific/Johnston", + "usr/share/zoneinfo/Pacific/Kanton", + "usr/share/zoneinfo/Pacific/Kiritimati", + "usr/share/zoneinfo/Pacific/Kosrae", + "usr/share/zoneinfo/Pacific/Kwajalein", + "usr/share/zoneinfo/Pacific/Majuro", + "usr/share/zoneinfo/Pacific/Marquesas", + "usr/share/zoneinfo/Pacific/Midway", + "usr/share/zoneinfo/Pacific/Nauru", + "usr/share/zoneinfo/Pacific/Niue", + "usr/share/zoneinfo/Pacific/Norfolk", + "usr/share/zoneinfo/Pacific/Noumea", + "usr/share/zoneinfo/Pacific/Pago_Pago", + "usr/share/zoneinfo/Pacific/Palau", + "usr/share/zoneinfo/Pacific/Pitcairn", + "usr/share/zoneinfo/Pacific/Pohnpei", + "usr/share/zoneinfo/Pacific/Ponape", + "usr/share/zoneinfo/Pacific/Port_Moresby", + "usr/share/zoneinfo/Pacific/Rarotonga", + "usr/share/zoneinfo/Pacific/Saipan", + "usr/share/zoneinfo/Pacific/Samoa", + "usr/share/zoneinfo/Pacific/Tahiti", + "usr/share/zoneinfo/Pacific/Tarawa", + "usr/share/zoneinfo/Pacific/Tongatapu", + "usr/share/zoneinfo/Pacific/Truk", + "usr/share/zoneinfo/Pacific/Wake", + "usr/share/zoneinfo/Pacific/Wallis", + "usr/share/zoneinfo/Pacific/Yap", + "usr/share/zoneinfo/US/Alaska", + "usr/share/zoneinfo/US/Aleutian", + "usr/share/zoneinfo/US/Arizona", + "usr/share/zoneinfo/US/Central", + "usr/share/zoneinfo/US/East-Indiana", + "usr/share/zoneinfo/US/Eastern", + "usr/share/zoneinfo/US/Hawaii", + "usr/share/zoneinfo/US/Indiana-Starke", + "usr/share/zoneinfo/US/Michigan", + "usr/share/zoneinfo/US/Mountain", + "usr/share/zoneinfo/US/Pacific", + "usr/share/zoneinfo/US/Samoa" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "xz-libs@5.8.3-r0", + "Name": "xz-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "1ae658a5f132a091" + }, + "Version": "5.8.3-r0", + "Arch": "x86_64", + "SrcName": "xz", + "SrcVersion": "5.8.3-r0", + "Licenses": [ + "GPL-2.0-or-later", + "0BSD", + "Public-Domain", + "LGPL-2.1-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4c92c5be0c5bef404e93c880eba9037a9b147347", + "InstalledFiles": [ + "usr/lib/liblzma.so.5", + "usr/lib/liblzma.so.5.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "zlib@1.3.2-r0", + "Name": "zlib", + "Identifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "Version": "1.3.2-r0", + "Arch": "x86_64", + "SrcName": "zlib", + "SrcVersion": "1.3.2-r0", + "Licenses": [ + "Zlib" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:dd4c3d102acaef2a71a1495951d55fabc8680613", + "InstalledFiles": [ + "usr/lib/libz.so.1", + "usr/lib/libz.so.1.3.2" + ], + "AnalyzedBy": "apk" + } + ], + "Vulnerabilities": [ + { + "VulnerabilityID": "CVE-2026-85091", + "PkgID": "zlib@1.3.2-r0", + "PkgName": "zlib", + "PkgIdentifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "InstalledVersion": "1.3.2-r0", + "FixedVersion": "1.3.2-r1", + "Status": "fixed", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "PrimaryURL": "https://avd.aquasec.com/nvd/cve-2026-85091", + "DataSource": { + "ID": "alpine", + "Name": "Alpine Secdb", + "URL": "https://secdb.alpinelinux.org/" + }, + "Fingerprint": "sha256:1d2bed479202d1fc9f68eacc57b530b660b8b99c3382887448dd585a61bc7567", + "Title": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...", + "Description": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.", + "Severity": "MEDIUM", + "CweIDs": [ + "CWE-787" + ], + "VendorSeverity": { + "ubuntu": 2 + }, + "References": [ + "https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490", + "https://github.com/madler/zlib", + "https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393", + "https://www.cve.org/CVERecord?id=CVE-2026-85091", + "https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate" + ], + "PublishedDate": "2026-09-03T13:06:20.573Z", + "LastModifiedDate": "2026-09-09T20:41:07.123Z" + } + ] + }, + { + "Target": "Python", + "Class": "lang-pkgs", + "Type": "python-pkg", + "Packages": [ + { + "Name": "PyJWT", + "Identifier": { + "PURL": "pkg:pypi/pyjwt@2.15.1", + "UID": "d3f5f9a421b8abc9" + }, + "Version": "2.15.1", + "Licenses": [ + "MIT" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cffi", + "Identifier": { + "PURL": "pkg:pypi/cffi@2.1.1", + "UID": "21042e2f37e33c05" + }, + "Version": "2.1.1", + "Licenses": [ + "MIT-0" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cryptography", + "Identifier": { + "PURL": "pkg:pypi/cryptography@50.0.1", + "UID": "dcb3df6383fe2a60" + }, + "Version": "50.0.1", + "Licenses": [ + "Apache-2.0 OR BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "informed-decision", + "Identifier": { + "PURL": "pkg:pypi/informed-decision@0.2.0", + "UID": "7989f2afae8ff568" + }, + "Version": "0.2.0", + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "pycparser", + "Identifier": { + "PURL": "pkg:pypi/pycparser@3.0", + "UID": "e5a4d03f15a695ff" + }, + "Version": "3.0", + "Licenses": [ + "BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "waitress", + "Identifier": { + "PURL": "pkg:pypi/waitress@3.0.2", + "UID": "806e218e1c1e85f" + }, + "Version": "3.0.2", + "Licenses": [ + "ZPL-2.1" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + } + ] + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json new file mode 100644 index 0000000..ddc0cea --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json @@ -0,0 +1,52 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "policy": { + "origin": "http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080", + "package": "informed-decision.compact-sitting", + "version": "v13", + "package_digest": "sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873", + "pod_name": "flex-auth-informed-decision-sitting" + }, + "keycape_egress_ips": [ + "92.205.62.239" + ], + "storage_class": "local-path", + "ordinary_approval_ids": [ + "2ce76d7f-01c3-4b63-8476-8d1230679769", + "c2af4bcf-15b4-4305-aac1-acc7e4dcb099", + "dc22666a-d5d7-46bc-9490-ebe9fe09dc38" + ], + "lifecycle_policy": { + "package": "informed-decision.lifecycle", + "version": "v2", + "package_digest": "sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c", + "origin": "http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080", + "pod_name": "flex-auth-informed-decision-lifecycle" + }, + "lifecycle_delivery": true, + "intake_attributes": true, + "intake_delivery": { + "hub_origin": "http://state-hub.state-hub.svc.cluster.local:8000" + }, + "workload_api": { + "registries_configmap": "informed-decision-workload-registry", + "peers": [ + { + "namespace": "state-hub", + "app": "state-hub" + } + ], + "api_egress": [ + { + "ip": "10.43.0.1", + "port": 443 + }, + { + "ip": "92.205.62.239", + "port": 6443 + } + ], + "intake": true, + "lifecycle": true + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json new file mode 100644 index 0000000..25758da --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json @@ -0,0 +1,267 @@ +{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover", + "argocd.argoproj.io/tracking-id": "informed-decision:apps/Deployment:informed-decision/informed-decision" + }, + "name": "informed-decision", + "namespace": "informed-decision" + }, + "spec": { + "progressDeadlineSeconds": 600, + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "strategy": { + "type": "Recreate" + }, + "template": { + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "labels": { + "app.kubernetes.io/component": "review", + "app.kubernetes.io/name": "informed-decision" + } + }, + "spec": { + "automountServiceAccountToken": false, + "containers": [ + { + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "livenessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "name": "informed-decision", + "ports": [ + { + "containerPort": 8080, + "name": "http" + }, + { + "containerPort": 8081, + "name": "workload" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "256Mi" + }, + "requests": { + "cpu": "5m", + "memory": "64Mi" + } + }, + "securityContext": { + "allowPrivilegeEscalation": false, + "capabilities": { + "drop": [ + "ALL" + ] + }, + "readOnlyRootFilesystem": true + }, + "startupProbe": { + "failureThreshold": 12, + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "volumeMounts": [ + { + "mountPath": "/data", + "name": "data" + }, + { + "mountPath": "/run/informed-decision", + "name": "runtime" + }, + { + "mountPath": "/tmp", + "name": "tmp" + }, + { + "mountPath": "/configuration", + "name": "configuration", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/policy", + "name": "caller", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/audit", + "name": "audit", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "name": "kubernetes-api", + "readOnly": true + }, + { + "mountPath": "/workload-registry", + "name": "workload-registry", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/requester", + "name": "sitting-requester", + "readOnly": true + } + ] + } + ], + "securityContext": { + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "runAsGroup": 10001, + "runAsNonRoot": true, + "runAsUser": 10001, + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "runtime" + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "tmp" + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-runtime-6c221878d051" + }, + "name": "configuration" + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "audience": "flex-auth", + "expirationSeconds": 3600, + "path": "token" + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ], + "secretName": "informed-decision-audit" + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "expirationSeconds": 600, + "path": "token" + } + }, + { + "configMap": { + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ], + "name": "kube-root-ca.crt" + } + } + ] + } + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-workload-registry" + }, + "name": "workload-registry" + }, + { + "name": "sitting-requester", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ], + "optional": false, + "secretName": "informed-decision-sitting-requester" + } + } + ] + } + } + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/change_guard.py b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/change_guard.py new file mode 100644 index 0000000..782964b --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/change_guard.py @@ -0,0 +1,41 @@ +"""Read-only exact Deployment and admission boundaries; no mutation authority.""" +import copy + +BASE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173' +CANDIDATE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a' + + +def projection(value): + value = copy.deepcopy(value) + value.pop('status', None) + for key in ('resourceVersion', 'generation', 'creationTimestamp', 'managedFields'): + value['metadata'].pop(key, None) + for key in ('kubectl.kubernetes.io/last-applied-configuration', 'deployment.kubernetes.io/revision'): + value['metadata'].get('annotations', {}).pop(key, None) + return value + + +def check_current(current, sealed): + if projection(current) != sealed: + raise ValueError('sealed live UID or configuration changed') + + +def check_admitted(admitted, sealed): + expected = copy.deepcopy(sealed) + containers = expected['spec']['template']['spec']['containers'] + if len(containers) != 1 or containers[0]['name'] != 'informed-decision' or containers[0]['image'] != BASE: + raise ValueError('unexpected baseline container identity') + containers[0]['image'] = CANDIDATE + if projection(admitted) != expected: + raise ValueError('admission changed configuration beyond the sole image pin') + + +def transport_result(exit_code, output): + import json + try: + value = json.loads(output) + except (ValueError, TypeError): + return {'all_checks_pass': False, 'reason': 'invalid transport result'} + if exit_code != 0 or not isinstance(value, dict) or value.get('all_checks_pass') is not True: + return {'all_checks_pass': False, 'reason': 'read-only preflight refused'} + return value diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/check_installed.py b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/check_installed.py new file mode 100644 index 0000000..0736145 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/check_installed.py @@ -0,0 +1,21 @@ +import copy,json,time +from datetime import datetime,timezone +from informed_decision.policy import PolicyClient,CONTRACT,submitted_digest +pin='sha256:'+'b'*64 +req={'id':'image-purpose-fixture','tenant':'tenant:platform','subject':{'id':'synthetic','type':'service','tenant':'tenant:platform'},'resource':{'id':'memo:fixture','type':'memo','system':'informed-decision','tenant':'tenant:platform'},'action':'register','context':{}} +class Transport: + def request(self,*args,**kwargs): + now=time.time(); stamp=lambda t:datetime.fromtimestamp(t,timezone.utc).isoformat() + b={**copy.deepcopy({k:req[k] for k in ('tenant','subject','action','resource','context')}),'request_digest':'sha256:'+'e'*64,'submitted_request_digest':submitted_digest(req)} + if self.purpose!='ABSENT':b['purpose']=self.purpose + d={'id':'synthetic-decision','contract_version':CONTRACT,'request_id':req['id'],'effect':'allow','matched_policy_version':'v1','subject':req['subject'],'resource':req['resource'],'binding':b,'lifetime':{'kind':'ttl','not_before':stamp(now-1),'expires_at':stamp(now+60)},'provenance':{'policy_package':'fixture','policy_version':'v1','policy_package_digest':pin,'registry_snapshot_digest':'sha256:'+'c'*64,'evaluator':'flex-auth/fixture','decision_time':stamp(now)}} + return 200,d +checks=[] +for purpose in ('ABSENT','','readback','enforcement','unknown',None,False,0,[],{}): + t=Transport();t.purpose=purpose + c=PolicyClient('https://fixture.invalid',lambda:'synthetic-only',package='fixture',version='v1',package_digest=pin,transport=t) + o=c.check(req) + if purpose in ('ABSENT',''):assert o.outcome=='allow';o.require_current(time.time()) + else:assert o.outcome=='invalid_decision' and o.decision_json is None + checks.append(str(purpose)) +print(json.dumps({'installed_image_purpose_variants':len(checks),'binding_forms_allowed':2,'advisory_or_malformed_refused':8,'synthetic_only':True,'native_provider':False})) diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md new file mode 100644 index 0000000..68f5867 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md @@ -0,0 +1,29 @@ +# Informed Decision purpose overlay release + +## Requested decision + +Approve the exact purpose-only image rollout and protected real-data backup/restore protocol for the existing Informed Decision service on railiance01. This request is separate from the already approved config-only repair. Only the existing Deployment image changes through the owner's manual Argo workflow, with prune disabled. Runtime ConfigMap `informed-decision-runtime-6c221878d051`, schema5, PVC, credentials, audience, policies, registries, access, replica1 and Recreate strategy remain fixed. Execute by 2026-10-12T23:59:59Z, after refreshed sealed-source/UID/configuration checks and backup/restore gates. Expiry stops authorization for an unstarted release; it does not install a controller or automatically roll back an already released image. + +## Artifact and known finding + +Actual owner CI task11484/run3 published immutable image `sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a` from source `3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168`. Anonymous registry verification preserves all eight base compressed blobs/rootfs layers and adds only policy.py with exact source hash and mode0644. Legacy-builder media-type/default config serialization differences are recorded; the runtime semantics remain unchanged. Pulled published image executes as UID10001/GID10001 and passes ten installed checks: two supported binding forms, eight advisory/malformed refusals. Tests use synthetic transport and do not claim new native PDP authorization proof. The two failed CI attempts remain in the same trial history. + +Actual unfiltered pinned scanner/DB evidence covers44packages: zero HIGH/CRITICAL, **one fixable MEDIUM**, CVE-2026-85091, zlib1.3.2-r0 fixed in1.3.2-r1. Actual current-base scan has the identical finding. Approving this packet explicitly permits this inherited finding during this narrow purpose release; it is not a RiskNexus estate risk grade or zero-CVE claim. Owner record INFD-RISK-20261011-ZLIB-85091 and live task INFD-WP-0009-T05 require separate base refresh and native approval, reviewed by2026-10-18. That review date is manual follow-through, with no auto-controller claim. Scanner notes Alpine3.24 absent EOL list; OS vulnerability detection ran against38OSpackages. Unknown vulnerabilities remain outside snapshot knowledge. + +## Native baseline and gates + +Fresh read-only capture01:25:38Z: existing Deployment UIDa588e10a, Ready1, image7f5c, unchanged runtime6c; native admission preserves the full configuration plus exactly the proposed image. Clientdiff returns1. Requests3460/4000mCPU86%, memory9472Mi59%; refresh before release. Existing Argo Application UID499868f2 is manual, target7db8485, Healthy with pre-existing OutOfSync status. Do not treat a scoped Deployment release as full-app reconciliation. Preserve its tracking-id; no unrelated resource sync/prune/adoption. + +The read-only helper binds original source/helper/render/baseline hashes, checks exact fresh live UID/configuration and admission, and writes a separate execution receipt outside this sealed packet. Failed initial raw Kustomize metadata check is retained: direct kubectl apply would drop Argo tracking-id. The reviewed selected Deployment explicitly retains that existing ID, matching Argo ownership. Any unrelated drift, different UID, altered admission, unavailable protected backup capacity, uncertain backup, restore mismatch or unhealthy baseline stops the release. + +## Protected backup and release + +Use the existing owner admin's SQLite backup API, not a raw copy of the live database/WAL. Protect directories0700/files0600, owned by10001. Retain independently protected off-cluster snapshot custody and only count/hash receipts. No database contents, caller tokens, requester Secret or runtime credential files enter Git, State Hub, logs or this packet. Native backup and offline real-data restore have not yet occurred. Use an isolated private disposable copy, networknone and no runtime config/token mounts, validate schema5/integrity and frozen snapshot counts, then clean only the disposable restored copy. Retain the original snapshot. The attached protocol binds case-specific paths and fail-closed capacity/custody checks. + +Refresh a consistent online snapshot immediately before image-only cutover. This protocol does not assert traffic/dispatcher quiescence. Current and candidate share schema5 and unchanged store code; rollback retains the latest live database and all new/uncertain evidence. Stop the old writer before the new one with existing Recreate and single-writer lock. Do not restore an older snapshot over later writes, discard unresolved external effects, scale other workloads, change policies/identity/custody, or create human dispositions to make checks green. + +Pin the existing Application to the exact owner commit containing the approved candidate source hashes, and manually sync only Deployment/informed-decision with prune=false. Verify actualimage/module/mode/UID, health/readiness and installed purpose refusals on the real placement; explicitly distinguish synthetic-transport checks from actual provider evidence. Existing native binding/lifecycle behavior must remain available. If unhealthy or verification fails, return Application source to7db8485 and scoped-sync prior same-schema image7f5c, preserving current evidence database; retain failed outcomes. Any data recovery beyond this same-schema image rollback is a separate founder decision. + +## Alternatives and estimates + +Proceed with this narrow release plus explicit inherited-medium follow-through, or defer and prepare a separate base/dependency refresh before any release. No additional recurring hosting is proposed: estimated incremental infrastructure EUR0, with private storage and attended engineering/recovery time unpriced. Risks include a brief Recreate interruption, private backup custody errors, caller refusal when advisory responses were improperly treated as binding, and the disclosed inherited finding. This decision does not promote agent autonomy or grant unrelated work. diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json new file mode 100644 index 0000000..8cbb1c0 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json @@ -0,0 +1,47 @@ +{ + "node_allocatable_cpu_m": 4000, + "node_requested_cpu_m": 3460, + "captured_at": "2026-10-11T01:30:33.674360+00:00", + "native_workload_changed": false, + "native_backup_restore_executed": false, + "argo": { + "uid": "499868f2-eabc-4df4-ae31-b89ce58d750d", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "path": "deploy/lifecycle", + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "automated": false, + "sync": { + "comparedTo": { + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "source": { + "path": "deploy/lifecycle", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf" + } + }, + "revision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "status": "OutOfSync" + }, + "health": { + "lastTransitionTime": "2026-10-10T23:14:52Z", + "status": "Healthy" + } + }, + "live_ready_replicas": 1, + "admitted_uid": "a588e10a-90d2-4883-975e-6dd8b8feca92", + "server_dry_run_passed": true, + "admitted_spec_exactly_live_plus_image": true, + "client_diff_exit": 1, + "client_diff_sha256": "0506825b408bb2c7b9dcb00a5ee655dc9ec23b09b308d42bb013d72672f8f415", + "node_allocated_resources": "(Total limits may be over 100 percent, i.e., overcommitted.)\n Resource Requests Limits\n -------- -------- ------\n cpu 3460m (86%) 36200m (905%)\n memory 9472Mi (59%) 32898Mi (205%)\n ephemeral-storage 0 (0%) 0 (0%)\n hugepages-1Gi 0 (0%) 0 (0%)\n hugepages-2Mi 0 (0%) 0 (0%)", + "all_checks_pass": true, + "sealed_preflight_inputs_sha256": "0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944", + "fresh_execution_receipt": true +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-config.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-config.json new file mode 100644 index 0000000..bc38933 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-config.json @@ -0,0 +1,222 @@ +{ + "architecture": "amd64", + "config": { + "Hostname": "", + "Domainname": "", + "User": "10001:10001", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + }, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Cmd": null, + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883", + "Volumes": null, + "WorkingDir": "/app", + "Entrypoint": [ + "informed-decision-container" + ], + "OnBuild": null, + "Labels": { + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + } + }, + "container_config": { + "Hostname": "", + "Domainname": "", + "User": "10001:10001", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + }, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Cmd": [ + "/bin/sh", + "-c", + "#(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py " + ], + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883", + "Volumes": null, + "WorkingDir": "/app", + "Entrypoint": [ + "informed-decision-container" + ], + "OnBuild": null, + "Labels": { + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + } + }, + "created": "2026-10-11T01:21:04.787527697Z", + "docker_version": "27.5.1", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' && echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid>=2.42.3-r1' && addgroup -S -g 10001 informed && adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-11T01:15:11.991443676Z", + "created_by": "/bin/sh -c #(nop) ARG SOURCE_REVISION", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.716126392Z", + "created_by": "/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168 org.opencontainers.image.base.digest=sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 social.coulomb.source.policy.sha256=9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 social.coulomb.release.scope=INFD-WP-0009-T04/purpose-overlay-v1", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.787527697Z", + "created_by": "/bin/sh -c #(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py " + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02", + "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + ] + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json new file mode 100644 index 0000000..71f69b0 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json @@ -0,0 +1,56 @@ +{ + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/vnd.docker.container.image.v1+json", + "size": 10428, + "digest": "sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779" + }, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 3846391, + "digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 408093, + "digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 16346740, + "digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 248, + "digest": "sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 49243, + "digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 10216362, + "digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 459, + "digest": "sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 93, + "digest": "sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 3586, + "digest": "sha256:cfee29c2f8119d2a39714ecbe5095a2dc1c986054f2e1fe0a6565163242417e3" + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json new file mode 100644 index 0000000..f0fa85b --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json @@ -0,0 +1,21 @@ +{ + "id": "INFD-RISK-20261011-ZLIB-85091", + "kind": "owner-vulnerability-follow-through", + "owner": "informed-decision", + "task": "INFD-WP-0009-T05", + "status": "open", + "created": "2026-10-11", + "review_due": "2026-10-18", + "finding": "CVE-2026-85091", + "scanner_severity": "MEDIUM", + "estate_risk_grade": null, + "affected_package": "zlib", + "installed": "1.3.2-r0", + "fixed": "1.3.2-r1", + "actual_current_base_and_candidate_findings_identical": true, + "source_evidence": "security-summary.json, trivy-full.json, base-trivy-full.json", + "human_temporary_disposition": "pending", + "follow_through": "Prepare a separately source-bound official-base/dependency refresh through normal owner CI, verify full scan and runtime compatibility, obtain distinct native release approval before updating this workload", + "manual_review_expiry": "Due date requires owner review/escalation if unresolved; no automatic rollback/controller is installed", + "close_condition": "Verified installed native fixed package and full unfiltered rescan; preserve original detection and any human disposition" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/intake.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/intake.json new file mode 100644 index 0000000..128e290 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/intake.json @@ -0,0 +1,261 @@ +{ + "kind": "informed-decision.memo-intake", + "version": 1, + "idempotency_key": "infd-20261011-purpose-overlay-r1-v1", + "memo_class": "decision-record", + "review_group": "net-kingdom-admins", + "drafted_by": "custodian-codex", + "approval_intent": { + "action": "administer", + "principal": "informed-decision", + "purpose": "Approve exact image-only purpose overlay release plus protected native evidence backup/restore gates and explicit inherited fixable-medium owner follow-through; no unrelated grant.", + "target": { + "id": "INFD-WP-0009-T04/purpose-overlay-v1", + "type": "runtime-change", + "system": "railiance01" + } + }, + "memo": { + "id": "infd-20261011-purpose-overlay-r1", + "version": 1, + "question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?", + "requested_act": "approve", + "binding_level": "organizational", + "brief": "Actual owner CI published763c from3e4bcb26; unchanged8base layers plus one policy.py, installedUID10001 and10purpose checks pass. Full44package scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, identical actualbase scan. Only Deploymentimage changes; manualArgo prune=false, runtime6c/schema5/PVC/identity/policies unchanged. Protected real-data backup/restore and fresh sealed-source/UID/configuration gates required, not executed. Live owner riskrecord/T05 dueOct18; Recreate briefly interrupts service. No priorconfigapproval reused.", + "binding": { + "principal": { + "id": "pending-human-session", + "kind": "person", + "display_name": "Founder review" + }, + "target": { + "kind": "environment", + "id": "realm:kubernetes/railiance01/informed-decision", + "label": "Informed Decision image-only purpose hardening on railiance01", + "environment": "production" + }, + "terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/off-cluster custody/offline restore plus exact owner-source pin/manual Deployment-only image release763c, prune=false. ADMINISTER activationAPPROVED only upon actualdisposition, execute by2026-10-12T23:59:59Z afterfresh sealedpreflight+restoregates; rollbackprior7f5 retaining latestschema5DB. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 ownerreviewdue2026-10-18. No credential/policy/grant change, humanbinding, wholeAppsync or autonomygrant." + }, + "step_kind": "approve", + "packet": [ + { + "item_id": "decision-packet-md", + "label": "decision-packet.md", + "hash": "sha256:7f6d8987f65dff479eeead67b7ca940ef44c22c1cdbdd6ca33fd732b824c8f02" + }, + { + "item_id": "proposal-json", + "label": "proposal.json", + "hash": "sha256:08c5573eaad05efd24b6df6737d33e7189543eb621f21704e38bab4326094914" + }, + { + "item_id": "candidate-admission-json", + "label": "candidate-admission.json", + "hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "item_id": "rollback-admission-json", + "label": "rollback-admission.json", + "hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "item_id": "candidate-deployment-json", + "label": "candidate-deployment.json", + "hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "item_id": "rollback-deployment-json", + "label": "rollback-deployment.json", + "hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "item_id": "published-verification-json", + "label": "published-verification.json", + "hash": "sha256:e304dd29571bf7d7b9f1db2ade0163dd39cfec012a5ce6986139f019f37e65a2" + }, + { + "item_id": "registry-proof-json", + "label": "registry-proof.json", + "hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "item_id": "security-summary-json", + "label": "security-summary.json", + "hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "item_id": "trivy-full-json", + "label": "trivy-full.json", + "hash": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "item_id": "sbom-cdx-json", + "label": "sbom.cdx.json", + "hash": "sha256:a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d" + }, + { + "item_id": "check-installed-py", + "label": "check_installed.py", + "hash": "sha256:a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad" + }, + { + "item_id": "native-backup-restore-protocol-md", + "label": "native-backup-restore-protocol.md", + "hash": "sha256:aa9758d4de587d14c6ce0fdaccd84002c5c5099425b9169ca7c972a86e9d3dec" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "label": "inherited-vulnerability-follow-through.json", + "hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "item_id": "native-preflight-json", + "label": "native-preflight.json", + "hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "item_id": "sealed-live-deployment-json", + "label": "sealed-live-deployment.json", + "hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "item_id": "change-guard-py", + "label": "change_guard.py", + "hash": "sha256:830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1" + }, + { + "item_id": "preflight-py", + "label": "preflight.py", + "hash": "sha256:c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834" + }, + { + "item_id": "preflight-inputs-json", + "label": "preflight-inputs.json", + "hash": "sha256:0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944" + }, + { + "item_id": "fresh-preflight-validation-json", + "label": "fresh-preflight-validation.json", + "hash": "sha256:aa1d494e42491f0619f731a836c597df9178409887d734c166a8df81f8807a27" + } + ], + "highlights": [ + { + "id": "native-custody-rollout-and-known-medium", + "item_id": "decision-packet-md", + "note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof.", + "required_ack": true, + "severity": "warning", + "locator": { + "kind": "section", + "heading": "Requested decision" + } + } + ], + "sealed": false, + "approval_id": null, + "approval_binding_digest": null + }, + "packet": [ + { + "item_id": "decision-packet-md", + "media_type": "text/markdown", + "content": "# Informed Decision purpose overlay release\n\n## Requested decision\n\nApprove the exact purpose-only image rollout and protected real-data backup/restore protocol for the existing Informed Decision service on railiance01. This request is separate from the already approved config-only repair. Only the existing Deployment image changes through the owner's manual Argo workflow, with prune disabled. Runtime ConfigMap `informed-decision-runtime-6c221878d051`, schema5, PVC, credentials, audience, policies, registries, access, replica1 and Recreate strategy remain fixed. Execute by 2026-10-12T23:59:59Z, after refreshed sealed-source/UID/configuration checks and backup/restore gates. Expiry stops authorization for an unstarted release; it does not install a controller or automatically roll back an already released image.\n\n## Artifact and known finding\n\nActual owner CI task11484/run3 published immutable image `sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a` from source `3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168`. Anonymous registry verification preserves all eight base compressed blobs/rootfs layers and adds only policy.py with exact source hash and mode0644. Legacy-builder media-type/default config serialization differences are recorded; the runtime semantics remain unchanged. Pulled published image executes as UID10001/GID10001 and passes ten installed checks: two supported binding forms, eight advisory/malformed refusals. Tests use synthetic transport and do not claim new native PDP authorization proof. The two failed CI attempts remain in the same trial history.\n\nActual unfiltered pinned scanner/DB evidence covers44packages: zero HIGH/CRITICAL, **one fixable MEDIUM**, CVE-2026-85091, zlib1.3.2-r0 fixed in1.3.2-r1. Actual current-base scan has the identical finding. Approving this packet explicitly permits this inherited finding during this narrow purpose release; it is not a RiskNexus estate risk grade or zero-CVE claim. Owner record INFD-RISK-20261011-ZLIB-85091 and live task INFD-WP-0009-T05 require separate base refresh and native approval, reviewed by2026-10-18. That review date is manual follow-through, with no auto-controller claim. Scanner notes Alpine3.24 absent EOL list; OS vulnerability detection ran against38OSpackages. Unknown vulnerabilities remain outside snapshot knowledge.\n\n## Native baseline and gates\n\nFresh read-only capture01:25:38Z: existing Deployment UIDa588e10a, Ready1, image7f5c, unchanged runtime6c; native admission preserves the full configuration plus exactly the proposed image. Clientdiff returns1. Requests3460/4000mCPU86%, memory9472Mi59%; refresh before release. Existing Argo Application UID499868f2 is manual, target7db8485, Healthy with pre-existing OutOfSync status. Do not treat a scoped Deployment release as full-app reconciliation. Preserve its tracking-id; no unrelated resource sync/prune/adoption.\n\nThe read-only helper binds original source/helper/render/baseline hashes, checks exact fresh live UID/configuration and admission, and writes a separate execution receipt outside this sealed packet. Failed initial raw Kustomize metadata check is retained: direct kubectl apply would drop Argo tracking-id. The reviewed selected Deployment explicitly retains that existing ID, matching Argo ownership. Any unrelated drift, different UID, altered admission, unavailable protected backup capacity, uncertain backup, restore mismatch or unhealthy baseline stops the release.\n\n## Protected backup and release\n\nUse the existing owner admin's SQLite backup API, not a raw copy of the live database/WAL. Protect directories0700/files0600, owned by10001. Retain independently protected off-cluster snapshot custody and only count/hash receipts. No database contents, caller tokens, requester Secret or runtime credential files enter Git, State Hub, logs or this packet. Native backup and offline real-data restore have not yet occurred. Use an isolated private disposable copy, networknone and no runtime config/token mounts, validate schema5/integrity and frozen snapshot counts, then clean only the disposable restored copy. Retain the original snapshot. The attached protocol binds case-specific paths and fail-closed capacity/custody checks.\n\nRefresh a consistent online snapshot immediately before image-only cutover. This protocol does not assert traffic/dispatcher quiescence. Current and candidate share schema5 and unchanged store code; rollback retains the latest live database and all new/uncertain evidence. Stop the old writer before the new one with existing Recreate and single-writer lock. Do not restore an older snapshot over later writes, discard unresolved external effects, scale other workloads, change policies/identity/custody, or create human dispositions to make checks green.\n\nPin the existing Application to the exact owner commit containing the approved candidate source hashes, and manually sync only Deployment/informed-decision with prune=false. Verify actualimage/module/mode/UID, health/readiness and installed purpose refusals on the real placement; explicitly distinguish synthetic-transport checks from actual provider evidence. Existing native binding/lifecycle behavior must remain available. If unhealthy or verification fails, return Application source to7db8485 and scoped-sync prior same-schema image7f5c, preserving current evidence database; retain failed outcomes. Any data recovery beyond this same-schema image rollback is a separate founder decision.\n\n## Alternatives and estimates\n\nProceed with this narrow release plus explicit inherited-medium follow-through, or defer and prepare a separate base/dependency refresh before any release. No additional recurring hosting is proposed: estimated incremental infrastructure EUR0, with private storage and attended engineering/recovery time unpriced. Risks include a brief Recreate interruption, private backup custody errors, caller refusal when advisory responses were improperly treated as binding, and the disclosed inherited finding. This decision does not promote agent autonomy or grant unrelated work.\n" + }, + { + "item_id": "proposal-json", + "media_type": "application/json", + "content": "{\n \"proposal_id\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"trial_id\": \"infd-purpose-20261011-r1\",\n \"state\": \"prepared-unapproved\",\n \"target\": \"realm:kubernetes/railiance01/informed-decision\",\n \"authority\": \"ADMINISTER; activation APPROVED only upon exact founder disposition\",\n \"candidate_image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"published_source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"prior_image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"prior_argo_revision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"native_object\": {\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"namespace\": \"informed-decision\",\n \"name\": \"informed-decision\",\n \"uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\"\n },\n \"argo_application_uid\": \"499868f2-eabc-4df4-ae31-b89ce58d750d\",\n \"source_gate\": \"Exact committed owner source must contain the two approved candidate file hashes in preflight-inputs.json; source preparation is not native approval\",\n \"sync_scope\": [\n \"apps:Deployment:informed-decision\"\n ],\n \"prune\": false,\n \"automated_sync\": false,\n \"runtime_configmap\": \"informed-decision-runtime-6c221878d051\",\n \"schema\": 5,\n \"requested_operations\": [\n \"Protected SQLite-consistent native backup and independently protected off-cluster custody\",\n \"Offline restore/integrity/count comparison on a private disposable volume with exact candidate, no runtime tokens/config/network\",\n \"Refresh a consistent pre-cutover snapshot, retain private copies and count-only/hash receipts\",\n \"Pin existing manual Argo Application to exact approved owner source and manually sync only existing Deployment image\",\n \"Verify health/readiness/image/module/installed fail-closed purpose checks and retained schema/count evidence; recover to prior same-schema image if needed\"\n ],\n \"execute_by\": \"2026-10-12T23:59:59Z\",\n \"temporary_vulnerability_review_due\": \"2026-10-18\",\n \"known_scan_findings\": \"0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, actual currentbase+candidate findings identical\",\n \"vulnerability_record\": \"INFD-RISK-20261011-ZLIB-85091 / INFD-WP-0009-T05\",\n \"cost_estimate_EUR\": 0,\n \"cost_limits\": \"No new recurring infrastructure; private backup storage and attended engineering/recovery time unpriced, not an autopilot cost grant\",\n \"risk_estimates\": [\n \"Brief Recreate service interruption; no concurrent new writer/surge\",\n \"Private evidence snapshot custody and disposal errors; no snapshots/tokens in public evidence\",\n \"Candidate purpose refusal may expose callers relying on advisory results as binding\",\n \"Inherited known fixable MEDIUM remains until separately approved owner remediation\",\n \"Existing Argo OutOfSync baseline is retained; no whole-app sync or unrelated repairs permitted\"\n ],\n \"rollback\": \"Manual Argo source pin back to7db8485 and scoped Deployment-only sync to7f5c image; retain current schema5 database and all post-cutover evidence, never restore older snapshot over live writes\",\n \"native_executed\": false,\n \"human_approval\": false\n}\n" + }, + { + "item_id": "candidate-admission-json", + "media_type": "application/json", + "content": "{\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"policy\": {\n \"origin\": \"http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080\",\n \"package\": \"informed-decision.compact-sitting\",\n \"version\": \"v13\",\n \"package_digest\": \"sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873\",\n \"pod_name\": \"flex-auth-informed-decision-sitting\"\n },\n \"keycape_egress_ips\": [\n \"92.205.62.239\"\n ],\n \"storage_class\": \"local-path\",\n \"ordinary_approval_ids\": [\n \"2ce76d7f-01c3-4b63-8476-8d1230679769\",\n \"c2af4bcf-15b4-4305-aac1-acc7e4dcb099\",\n \"dc22666a-d5d7-46bc-9490-ebe9fe09dc38\"\n ],\n \"lifecycle_policy\": {\n \"package\": \"informed-decision.lifecycle\",\n \"version\": \"v2\",\n \"package_digest\": \"sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c\",\n \"origin\": \"http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080\",\n \"pod_name\": \"flex-auth-informed-decision-lifecycle\"\n },\n \"lifecycle_delivery\": true,\n \"intake_attributes\": true,\n \"intake_delivery\": {\n \"hub_origin\": \"http://state-hub.state-hub.svc.cluster.local:8000\"\n },\n \"workload_api\": {\n \"registries_configmap\": \"informed-decision-workload-registry\",\n \"peers\": [\n {\n \"namespace\": \"state-hub\",\n \"app\": \"state-hub\"\n }\n ],\n \"api_egress\": [\n {\n \"ip\": \"10.43.0.1\",\n \"port\": 443\n },\n {\n \"ip\": \"92.205.62.239\",\n \"port\": 6443\n }\n ],\n \"intake\": true,\n \"lifecycle\": true\n }\n}\n" + }, + { + "item_id": "rollback-admission-json", + "media_type": "application/json", + "content": "{\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"policy\": {\n \"origin\": \"http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080\",\n \"package\": \"informed-decision.compact-sitting\",\n \"version\": \"v13\",\n \"package_digest\": \"sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873\",\n \"pod_name\": \"flex-auth-informed-decision-sitting\"\n },\n \"keycape_egress_ips\": [\n \"92.205.62.239\"\n ],\n \"storage_class\": \"local-path\",\n \"ordinary_approval_ids\": [\n \"2ce76d7f-01c3-4b63-8476-8d1230679769\",\n \"c2af4bcf-15b4-4305-aac1-acc7e4dcb099\",\n \"dc22666a-d5d7-46bc-9490-ebe9fe09dc38\"\n ],\n \"lifecycle_policy\": {\n \"package\": \"informed-decision.lifecycle\",\n \"version\": \"v2\",\n \"package_digest\": \"sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c\",\n \"origin\": \"http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080\",\n \"pod_name\": \"flex-auth-informed-decision-lifecycle\"\n },\n \"lifecycle_delivery\": true,\n \"intake_attributes\": true,\n \"intake_delivery\": {\n \"hub_origin\": \"http://state-hub.state-hub.svc.cluster.local:8000\"\n },\n \"workload_api\": {\n \"registries_configmap\": \"informed-decision-workload-registry\",\n \"peers\": [\n {\n \"namespace\": \"state-hub\",\n \"app\": \"state-hub\"\n }\n ],\n \"api_egress\": [\n {\n \"ip\": \"10.43.0.1\",\n \"port\": 443\n },\n {\n \"ip\": \"92.205.62.239\",\n \"port\": 6443\n }\n ],\n \"intake\": true,\n \"lifecycle\": true\n }\n}\n" + }, + { + "item_id": "candidate-deployment-json", + "media_type": "application/json", + "content": "{\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\",\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:apps/Deployment:informed-decision/informed-decision\"\n },\n \"name\": \"informed-decision\",\n \"namespace\": \"informed-decision\"\n },\n \"spec\": {\n \"progressDeadlineSeconds\": 600,\n \"replicas\": 1,\n \"selector\": {\n \"matchLabels\": {\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"strategy\": {\n \"type\": \"Recreate\"\n },\n \"template\": {\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"labels\": {\n \"app.kubernetes.io/component\": \"review\",\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"spec\": {\n \"automountServiceAccountToken\": false,\n \"containers\": [\n {\n \"env\": [\n {\n \"name\": \"INFD_KEYCAPE_ISSUER\",\n \"value\": \"https://kc.coulomb.social\"\n },\n {\n \"name\": \"INFD_CONTAINER_CONFIG\",\n \"value\": \"/configuration/runtime.json\"\n }\n ],\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"livenessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"name\": \"informed-decision\",\n \"ports\": [\n {\n \"containerPort\": 8080,\n \"name\": \"http\"\n },\n {\n \"containerPort\": 8081,\n \"name\": \"workload\"\n }\n ],\n \"readinessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"resources\": {\n \"limits\": {\n \"cpu\": \"500m\",\n \"memory\": \"256Mi\"\n },\n \"requests\": {\n \"cpu\": \"5m\",\n \"memory\": \"64Mi\"\n }\n },\n \"securityContext\": {\n \"allowPrivilegeEscalation\": false,\n \"capabilities\": {\n \"drop\": [\n \"ALL\"\n ]\n },\n \"readOnlyRootFilesystem\": true\n },\n \"startupProbe\": {\n \"failureThreshold\": 12,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"volumeMounts\": [\n {\n \"mountPath\": \"/data\",\n \"name\": \"data\"\n },\n {\n \"mountPath\": \"/run/informed-decision\",\n \"name\": \"runtime\"\n },\n {\n \"mountPath\": \"/tmp\",\n \"name\": \"tmp\"\n },\n {\n \"mountPath\": \"/configuration\",\n \"name\": \"configuration\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/policy\",\n \"name\": \"caller\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/audit\",\n \"name\": \"audit\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/kubernetes\",\n \"name\": \"kubernetes-api\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/workload-registry\",\n \"name\": \"workload-registry\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/requester\",\n \"name\": \"sitting-requester\",\n \"readOnly\": true\n }\n ]\n }\n ],\n \"securityContext\": {\n \"fsGroup\": 10001,\n \"fsGroupChangePolicy\": \"OnRootMismatch\",\n \"runAsGroup\": 10001,\n \"runAsNonRoot\": true,\n \"runAsUser\": 10001,\n \"seccompProfile\": {\n \"type\": \"RuntimeDefault\"\n }\n },\n \"serviceAccountName\": \"review\",\n \"terminationGracePeriodSeconds\": 45,\n \"volumes\": [\n {\n \"name\": \"data\",\n \"persistentVolumeClaim\": {\n \"claimName\": \"informed-decision-data\"\n }\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"runtime\"\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"tmp\"\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-runtime-6c221878d051\"\n },\n \"name\": \"configuration\"\n },\n {\n \"name\": \"caller\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"audience\": \"flex-auth\",\n \"expirationSeconds\": 3600,\n \"path\": \"token\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"audit\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"token\",\n \"path\": \"token\"\n }\n ],\n \"secretName\": \"informed-decision-audit\"\n }\n },\n {\n \"name\": \"kubernetes-api\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"expirationSeconds\": 600,\n \"path\": \"token\"\n }\n },\n {\n \"configMap\": {\n \"items\": [\n {\n \"key\": \"ca.crt\",\n \"path\": \"ca.crt\"\n }\n ],\n \"name\": \"kube-root-ca.crt\"\n }\n }\n ]\n }\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-workload-registry\"\n },\n \"name\": \"workload-registry\"\n },\n {\n \"name\": \"sitting-requester\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"client-secret\",\n \"path\": \"client-secret\"\n }\n ],\n \"optional\": false,\n \"secretName\": \"informed-decision-sitting-requester\"\n }\n }\n ]\n }\n }\n }\n}\n" + }, + { + "item_id": "rollback-deployment-json", + "media_type": "application/json", + "content": "{\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\",\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:apps/Deployment:informed-decision/informed-decision\"\n },\n \"name\": \"informed-decision\",\n \"namespace\": \"informed-decision\"\n },\n \"spec\": {\n \"progressDeadlineSeconds\": 600,\n \"replicas\": 1,\n \"selector\": {\n \"matchLabels\": {\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"strategy\": {\n \"type\": \"Recreate\"\n },\n \"template\": {\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"labels\": {\n \"app.kubernetes.io/component\": \"review\",\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"spec\": {\n \"automountServiceAccountToken\": false,\n \"containers\": [\n {\n \"env\": [\n {\n \"name\": \"INFD_KEYCAPE_ISSUER\",\n \"value\": \"https://kc.coulomb.social\"\n },\n {\n \"name\": \"INFD_CONTAINER_CONFIG\",\n \"value\": \"/configuration/runtime.json\"\n }\n ],\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"livenessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"name\": \"informed-decision\",\n \"ports\": [\n {\n \"containerPort\": 8080,\n \"name\": \"http\"\n },\n {\n \"containerPort\": 8081,\n \"name\": \"workload\"\n }\n ],\n \"readinessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"resources\": {\n \"limits\": {\n \"cpu\": \"500m\",\n \"memory\": \"256Mi\"\n },\n \"requests\": {\n \"cpu\": \"5m\",\n \"memory\": \"64Mi\"\n }\n },\n \"securityContext\": {\n \"allowPrivilegeEscalation\": false,\n \"capabilities\": {\n \"drop\": [\n \"ALL\"\n ]\n },\n \"readOnlyRootFilesystem\": true\n },\n \"startupProbe\": {\n \"failureThreshold\": 12,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"volumeMounts\": [\n {\n \"mountPath\": \"/data\",\n \"name\": \"data\"\n },\n {\n \"mountPath\": \"/run/informed-decision\",\n \"name\": \"runtime\"\n },\n {\n \"mountPath\": \"/tmp\",\n \"name\": \"tmp\"\n },\n {\n \"mountPath\": \"/configuration\",\n \"name\": \"configuration\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/policy\",\n \"name\": \"caller\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/audit\",\n \"name\": \"audit\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/kubernetes\",\n \"name\": \"kubernetes-api\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/workload-registry\",\n \"name\": \"workload-registry\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/requester\",\n \"name\": \"sitting-requester\",\n \"readOnly\": true\n }\n ]\n }\n ],\n \"securityContext\": {\n \"fsGroup\": 10001,\n \"fsGroupChangePolicy\": \"OnRootMismatch\",\n \"runAsGroup\": 10001,\n \"runAsNonRoot\": true,\n \"runAsUser\": 10001,\n \"seccompProfile\": {\n \"type\": \"RuntimeDefault\"\n }\n },\n \"serviceAccountName\": \"review\",\n \"terminationGracePeriodSeconds\": 45,\n \"volumes\": [\n {\n \"name\": \"data\",\n \"persistentVolumeClaim\": {\n \"claimName\": \"informed-decision-data\"\n }\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"runtime\"\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"tmp\"\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-runtime-6c221878d051\"\n },\n \"name\": \"configuration\"\n },\n {\n \"name\": \"caller\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"audience\": \"flex-auth\",\n \"expirationSeconds\": 3600,\n \"path\": \"token\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"audit\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"token\",\n \"path\": \"token\"\n }\n ],\n \"secretName\": \"informed-decision-audit\"\n }\n },\n {\n \"name\": \"kubernetes-api\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"expirationSeconds\": 600,\n \"path\": \"token\"\n }\n },\n {\n \"configMap\": {\n \"items\": [\n {\n \"key\": \"ca.crt\",\n \"path\": \"ca.crt\"\n }\n ],\n \"name\": \"kube-root-ca.crt\"\n }\n }\n ]\n }\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-workload-registry\"\n },\n \"name\": \"workload-registry\"\n },\n {\n \"name\": \"sitting-requester\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"client-secret\",\n \"path\": \"client-secret\"\n }\n ],\n \"optional\": false,\n \"secretName\": \"informed-decision-sitting-requester\"\n }\n }\n ]\n }\n }\n }\n}\n" + }, + { + "item_id": "published-verification-json", + "media_type": "application/json", + "content": "{\n \"proposal\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"observed_at\": \"2026-10-11T01:24:01.985128+00:00\",\n \"native_owner_publication_job\": {\n \"id\": 11484,\n \"name\": \"publish-candidate\",\n \"head_branch\": \"main\",\n \"head_sha\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"run_number\": 3,\n \"event\": \"push\",\n \"display_title\": \"Prepare readable overlay context with the admitted legacy builder\",\n \"status\": \"success\",\n \"workflow_id\": \"purpose-overlay-image.yaml\",\n \"url\": \"https://forgejo.coulomb.social/coulomb/informed-decision/actions/runs/3\",\n \"created_at\": \"2026-10-11T01:20:59Z\",\n \"updated_at\": \"2026-10-11T01:21:08Z\",\n \"run_started_at\": \"2026-10-11T01:20:59Z\"\n },\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"policy_sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\",\n \"registry_proof_sha256\": \"5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213\",\n \"source_render_change_only\": \"Deployment/informed-decision spec.template.spec.containers[0].image\",\n \"runtime_configmap_unchanged\": \"informed-decision-runtime-6c221878d051\",\n \"installed_image_execution\": {\n \"immutable_registry_artifact_pulled_anonymously\": true,\n \"UID\": 10001,\n \"GID\": 10001,\n \"policy_file_UID\": 0,\n \"policy_file_mode\": \"0644\",\n \"purpose_variants\": 10,\n \"binding_forms_allowed\": 2,\n \"advisory_or_malformed_refused\": 8,\n \"network\": \"none\",\n \"read_only\": true,\n \"synthetic_transport\": true,\n \"native_PDP_test\": false\n },\n \"scan_summary_sha256\": \"0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44\",\n \"historical_failed_runs_retained\": [\n \"f66de505/task11482/run1\",\n \"acecad887/task11483/run2\"\n ],\n \"native_hosting_changed\": false,\n \"native_backup_restore_executed\": false,\n \"human_approval\": false,\n \"evidence_file_sha256\": {\n \"image-manifest.json\": \"978c575d3c7bf0de39dbe4e9567c39cd36f70b7e55bc17357bdb03fb3b96b0fb\",\n \"image-config.json\": \"4ad7249c75fd9fc039ceb186772419e1cba5fd9759c404556459c80a2d285d10\",\n \"base-image-config.json\": \"b706c9209e324f39a86ffcda2a3e9d94c92649739ad5b21fe4611006e36f6f00\",\n \"registry-proof.json\": \"5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213\",\n \"trivy-full.json\": \"f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e\",\n \"sbom.cdx.json\": \"a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d\",\n \"base-trivy-full.json\": \"d44c555aecbb1a4518f4127d48015ea459325c93e8b0371910a55de47293ca80\",\n \"check_installed.py\": \"a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad\",\n \"verify_registry.py\": \"413f575c21a2bd18a3696f8f2d939eeadc52d76f282c42813f76bb0e3ee8a2a4\"\n }\n}\n" + }, + { + "item_id": "registry-proof-json", + "media_type": "application/json", + "content": "{\n \"image_digest\": \"sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"base_image_digest\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"base_layer_bytes_identical\": true,\n \"layer_media_type_conversion\": \"OCI gzip to Docker gzip, same digest and size\",\n \"base_runtime_config_semantics_identical\": true,\n \"legacy_builder_config_additions\": {\n \"Hostname\": \"\",\n \"Domainname\": \"\",\n \"AttachStdin\": false,\n \"AttachStdout\": false,\n \"AttachStderr\": false,\n \"Tty\": false,\n \"OpenStdin\": false,\n \"StdinOnce\": false,\n \"Cmd\": null,\n \"Volumes\": null,\n \"OnBuild\": null,\n \"Image\": \"sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883\"\n },\n \"base_rootfs_prefix_identical\": true,\n \"overlay_regular_files\": [\n \"opt/venv/lib/python3.12/site-packages/informed_decision/policy.py\"\n ],\n \"overlay_directories\": [\n \"opt\",\n \"opt/venv\",\n \"opt/venv/lib\",\n \"opt/venv/lib/python3.12\",\n \"opt/venv/lib/python3.12/site-packages\",\n \"opt/venv/lib/python3.12/site-packages/informed_decision\"\n ],\n \"policy_sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\",\n \"policy_mode\": \"0644\",\n \"base_user\": \"10001:10001\",\n \"source_scope_labels\": {\n \"org.opencontainers.image.revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"org.opencontainers.image.base.digest\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"social.coulomb.source.policy.sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\",\n \"social.coulomb.release.scope\": \"INFD-WP-0009-T04/purpose-overlay-v1\"\n },\n \"registry_read_route\": \"anonymous public scoped bearer challenge, no token retention\",\n \"image_executed\": false,\n \"native_workload_changed\": false,\n \"native_backup_restore_executed\": false\n}\n" + }, + { + "item_id": "security-summary-json", + "media_type": "application/json", + "content": "{\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"scanner\": \"aquasec/trivy@sha256:62b1e65e8869bc4b4c6aa4fa2b21595256c7c2f6018a9d9ad61caf87187c1969\",\n \"version\": \"0.74.0\",\n \"db_metadata\": {\n \"Version\": 2,\n \"NextUpdate\": \"2026-10-11T18:59:50.889010572Z\",\n \"UpdatedAt\": \"2026-10-10T18:59:50.889010923Z\",\n \"DownloadedAt\": \"2026-10-10T23:32:32.380033131Z\"\n },\n \"suppression\": false,\n \"ignore_unfixed\": false,\n \"severity_filter\": null,\n \"package_count\": 44,\n \"findings_by_severity\": {\n \"MEDIUM\": 1\n },\n \"findings\": [\n {\n \"id\": \"CVE-2026-85091\",\n \"package\": \"zlib\",\n \"installed\": \"1.3.2-r0\",\n \"fixed\": \"1.3.2-r1\",\n \"severity\": \"MEDIUM\"\n }\n ],\n \"coverage_limits\": [\n \"Alpine3.24 absent scanner EOL list; OS detector ran against Alpine3.24 repository on38OS packages\",\n \"Known findings asof pinnedDB, not claim absence of unknown vulnerabilities\"\n ],\n \"high_critical\": 0,\n \"same_scanner_actual_base_scan_findings_identical\": true,\n \"base_scan_file\": \"base-trivy-full.json\"\n}\n" + }, + { + "item_id": "trivy-full-json", + "media_type": "application/json", + "content": "{\n \"SchemaVersion\": 2,\n \"Trivy\": {\n \"Version\": \"0.74.0\"\n },\n \"ReportID\": \"01a1288d-8df1-73fb-9313-3642dd64ba72\",\n \"CreatedAt\": \"2026-10-11T01:22:07.985264404Z\",\n \"ArtifactID\": \"sha256:40f873b8d6345341e2f661a5038c092d186e2831dc60b61704a419a1f4f77ef6\",\n \"ArtifactName\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"ArtifactType\": \"container_image\",\n \"Metadata\": {\n \"Size\": 88258048,\n \"OS\": {\n \"Family\": \"alpine\",\n \"Name\": \"3.24.1\"\n },\n \"ImageID\": \"sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779\",\n \"DiffIDs\": [\n \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\",\n \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\",\n \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\",\n \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\",\n \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\",\n \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\",\n \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\",\n \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\",\n \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n ],\n \"RepoDigests\": [\n \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\"\n ],\n \"Reference\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"ImageConfig\": {\n \"architecture\": \"amd64\",\n \"created\": \"2026-10-11T01:21:04.787527697Z\",\n \"docker_version\": \"27.5.1\",\n \"history\": [\n {\n \"created\": \"2026-06-16T00:01:29.967161902Z\",\n \"created_by\": \"ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-06-16T00:01:29.967161902Z\",\n \"created_by\": \"CMD [\\\"/bin/sh\\\"]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV LANG=C.UTF-8\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"RUN /bin/sh -c set -eux; \\tapk add --no-cache \\t\\tca-certificates \\t\\ttzdata \\t; # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV PYTHON_VERSION=3.12.14\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:10:30.672225972Z\",\n \"created_by\": \"RUN /bin/sh -c set -eux; \\t\\tapk add --no-cache --virtual .build-deps \\t\\tbluez-dev \\t\\tbzip2-dev \\t\\tdpkg-dev dpkg \\t\\tfindutils \\t\\tg++ \\t\\tgcc \\t\\tgdbm-dev \\t\\tgnupg \\t\\tlibc-dev \\t\\tlibffi-dev \\t\\tlibnsl-dev \\t\\tlibtirpc-dev \\t\\tlinux-headers \\t\\tmake \\t\\tncurses-dev \\t\\topenssl-dev \\t\\tpax-utils \\t\\treadline-dev \\t\\tsqlite-dev \\t\\ttar \\t\\ttcl-dev \\t\\ttk \\t\\ttk-dev \\t\\tutil-linux-dev \\t\\txz \\t\\txz-dev \\t\\tzlib-dev \\t; \\t\\twget -O python.tar.xz \\\"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\\\"; \\techo \\\"$PYTHON_SHA256 *python.tar.xz\\\" | sha256sum -c -; \\twget -O python.tar.xz.asc \\\"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\\\"; \\tGNUPGHOME=\\\"$(mktemp -d)\\\"; export GNUPGHOME; \\tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \\\"$GPG_KEY\\\"; \\tgpg --batch --verify python.tar.xz.asc python.tar.xz; \\tgpgconf --kill all; \\trm -rf \\\"$GNUPGHOME\\\" python.tar.xz.asc; \\tmkdir -p /usr/src/python; \\ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \\trm python.tar.xz; \\t\\tcd /usr/src/python; \\tgnuArch=\\\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\\\"; \\t./configure \\t\\t--build=\\\"$gnuArch\\\" \\t\\t--enable-loadable-sqlite-extensions \\t\\t--enable-option-checking=fatal \\t\\t--enable-shared \\t\\t$(test \\\"${gnuArch%%-*}\\\" != 'riscv64' \\u0026\\u0026 echo '--with-lto') \\t\\t--with-ensurepip \\t; \\tnproc=\\\"$(nproc)\\\"; \\tEXTRA_CFLAGS=\\\"-DTHREAD_STACK_SIZE=0x100000\\\"; \\tLDFLAGS=\\\"${LDFLAGS:-} -Wl,--strip-all\\\"; \\tarch=\\\"$(apk --print-arch)\\\"; \\tcase \\\"$arch\\\" in \\t\\tx86_64|aarch64) \\t\\t\\tEXTRA_CFLAGS=\\\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\\\"; \\t\\t\\t;; \\t\\tx86) \\t\\t\\t;; \\t\\t*) \\t\\t\\tEXTRA_CFLAGS=\\\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\\\"; \\t\\t\\t;; \\tesac; \\tmake -j \\\"$nproc\\\" \\t\\t\\\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\\\" \\t\\t\\\"LDFLAGS=${LDFLAGS:-}\\\" \\t; \\trm python; \\tmake -j \\\"$nproc\\\" \\t\\t\\\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\\\" \\t\\t\\\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\\\$\\\\$ORIGIN/../lib'\\\" \\t\\tpython \\t; \\tmake install; \\t\\tcd /; \\trm -rf /usr/src/python; \\t\\tfind /usr/local -depth \\t\\t\\\\( \\t\\t\\t\\\\( -type d -a \\\\( -name test -o -name tests -o -name idle_test \\\\) \\\\) \\t\\t\\t-o \\\\( -type f -a \\\\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\\\) \\\\) \\t\\t\\\\) -exec rm -rf '{}' + \\t; \\t\\tfind /usr/local -type f -executable -not \\\\( -name '*tkinter*' \\\\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \\t\\t| tr ',' '\\\\n' \\t\\t| sort -u \\t\\t| awk 'system(\\\"[ -e /usr/local/lib/\\\" $1 \\\" ]\\\") == 0 { next } { print \\\"so:\\\" $1 }' \\t\\t| xargs -rt apk add --no-network --virtual .python-rundeps \\t; \\tapk del --no-network .build-deps; \\t\\texport PYTHONDONTWRITEBYTECODE=1; \\tpython3 --version; \\tpip3 --version # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-09-01T00:10:30.782726003Z\",\n \"created_by\": \"RUN /bin/sh -c set -eux; \\tfor src in idle3 pip3 pydoc3 python3 python3-config; do \\t\\tdst=\\\"$(echo \\\"$src\\\" | tr -d 3)\\\"; \\t\\t[ -s \\\"/usr/local/bin/$src\\\" ]; \\t\\t[ ! -e \\\"/usr/local/bin/$dst\\\" ]; \\t\\tln -svT \\\"$src\\\" \\\"/usr/local/bin/$dst\\\"; \\tdone # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-09-01T00:10:30.782726003Z\",\n \"created_by\": \"CMD [\\\"python3\\\"]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-11T00:49:47.962156876+02:00\",\n \"created_by\": \"ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-11T00:49:47.962156876+02:00\",\n \"created_by\": \"RUN /bin/sh -c apk add --no-cache 'libuuid\\u003e=2.42.3-r1' \\u0026\\u0026 addgroup -S -g 10001 informed \\u0026\\u0026 adduser -S -u 10001 -G informed -H informed # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:55.351944978+02:00\",\n \"created_by\": \"COPY /opt/venv /opt/venv # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:56.462092072+02:00\",\n \"created_by\": \"RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"WORKDIR /app\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"USER 10001:10001\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"EXPOSE [8080/tcp 8081/tcp]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"ENTRYPOINT [\\\"informed-decision-container\\\"]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-11T01:15:11.991443676Z\",\n \"created_by\": \"/bin/sh -c #(nop) ARG SOURCE_REVISION\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-11T01:21:04.716126392Z\",\n \"created_by\": \"/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168 org.opencontainers.image.base.digest=sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 social.coulomb.source.policy.sha256=9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 social.coulomb.release.scope=INFD-WP-0009-T04/purpose-overlay-v1\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-11T01:21:04.787527697Z\",\n \"created_by\": \"/bin/sh -c #(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py \"\n }\n ],\n \"os\": \"linux\",\n \"rootfs\": {\n \"type\": \"layers\",\n \"diff_ids\": [\n \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\",\n \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\",\n \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\",\n \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\",\n \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\",\n \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\",\n \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\",\n \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\",\n \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n ]\n },\n \"config\": {\n \"Entrypoint\": [\n \"informed-decision-container\"\n ],\n \"Env\": [\n \"PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"LANG=C.UTF-8\",\n \"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305\",\n \"PYTHON_VERSION=3.12.14\",\n \"PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a\",\n \"PYTHONDONTWRITEBYTECODE=1\",\n \"PYTHONUNBUFFERED=1\"\n ],\n \"Image\": \"sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883\",\n \"Labels\": {\n \"org.opencontainers.image.base.digest\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"org.opencontainers.image.revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"social.coulomb.release.scope\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"social.coulomb.source.policy.sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\"\n },\n \"User\": \"10001:10001\",\n \"WorkingDir\": \"/app\",\n \"ExposedPorts\": {\n \"8080/tcp\": {},\n \"8081/tcp\": {}\n }\n }\n },\n \"Layers\": [\n {\n \"Size\": 8697856,\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"Size\": 1538048,\n \"Digest\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\",\n \"DiffID\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n {\n \"Size\": 47150592,\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"Size\": 5120,\n \"Digest\": \"sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b\",\n \"DiffID\": \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\"\n },\n {\n \"Size\": 131584,\n \"Digest\": \"sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86\",\n \"DiffID\": \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\"\n },\n {\n \"Size\": 30705664,\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"Size\": 12288,\n \"Digest\": \"sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f\",\n \"DiffID\": \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\"\n },\n {\n \"Size\": 1536,\n \"Digest\": \"sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3\",\n \"DiffID\": \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\"\n },\n {\n \"Size\": 15360,\n \"Digest\": \"sha256:cfee29c2f8119d2a39714ecbe5095a2dc1c986054f2e1fe0a6565163242417e3\",\n \"DiffID\": \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n }\n ]\n },\n \"Results\": [\n {\n \"Target\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a (alpine 3.24.1)\",\n \"Class\": \"os-pkgs\",\n \"Type\": \"alpine\",\n \"Packages\": [\n {\n \"ID\": \".python-rundeps@20260901.001029\",\n \"Name\": \".python-rundeps\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch\\u0026distro=3.24.1\",\n \"UID\": \"4e26c99fecac1e97\"\n },\n \"Version\": \"20260901.001029\",\n \"Arch\": \"noarch\",\n \"DependsOn\": [\n \"gdbm@1.26-r0\",\n \"libbz2@1.0.8-r6\",\n \"libcrypto3@3.5.8-r0\",\n \"libffi@3.5.2-r1\",\n \"libncursesw@6.6_p20260516-r0\",\n \"libnsl@2.0.1-r2\",\n \"libpanelw@6.6_p20260516-r0\",\n \"libssl3@3.5.8-r0\",\n \"libtirpc@1.3.5-r1\",\n \"libuuid@2.42.3-r1\",\n \"musl@1.2.6-r2\",\n \"readline@8.3.3-r1\",\n \"sqlite-libs@3.53.4-r0\",\n \"xz-libs@5.8.3-r0\",\n \"zlib@1.3.2-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:51d0c1e7d88a414345799f0309185c625013ef32\",\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-baselayout@3.7.2-r1\",\n \"Name\": \"alpine-baselayout\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1b9c543300f8073e\"\n },\n \"Version\": \"3.7.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-baselayout\",\n \"SrcVersion\": \"3.7.2-r1\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"alpine-baselayout-data@3.7.2-r1\",\n \"busybox-binsh@1.37.0-r31\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:f0fcfdc2f4da058af6473bc45c4eab62916225b2\",\n \"InstalledFiles\": [\n \"etc/motd\",\n \"etc/crontabs/root\",\n \"etc/modprobe.d/aliases.conf\",\n \"etc/modprobe.d/blacklist.conf\",\n \"etc/modprobe.d/i386.conf\",\n \"etc/profile.d/20locale.sh\",\n \"etc/profile.d/README\",\n \"etc/profile.d/color_prompt.sh.disabled\",\n \"usr/lib/sysctl.d/00-alpine.conf\",\n \"var/lock\",\n \"var/run\",\n \"var/spool/mail\",\n \"var/spool/cron/crontabs\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-baselayout-data@3.7.2-r1\",\n \"Name\": \"alpine-baselayout-data\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"fcc3cd90122d8aa7\"\n },\n \"Version\": \"3.7.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-baselayout\",\n \"SrcVersion\": \"3.7.2-r1\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508\",\n \"InstalledFiles\": [\n \"etc/fstab\",\n \"etc/group\",\n \"etc/hostname\",\n \"etc/hosts\",\n \"etc/inittab\",\n \"etc/modules\",\n \"etc/mtab\",\n \"etc/nsswitch.conf\",\n \"etc/passwd\",\n \"etc/profile\",\n \"etc/protocols\",\n \"etc/services\",\n \"etc/shadow\",\n \"etc/shells\",\n \"etc/sysctl.conf\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-keys@2.6-r0\",\n \"Name\": \"alpine-keys\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"cb1f6c8fa74713e0\"\n },\n \"Version\": \"2.6-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-keys\",\n \"SrcVersion\": \"2.6-r0\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:d8d6b80e53c059a77e4915da78ba964f3ffea240\",\n \"InstalledFiles\": [\n \"etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub\",\n \"etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub\",\n \"usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub\",\n \"usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub\",\n \"usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub\",\n \"usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub\",\n \"usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub\",\n \"usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub\",\n \"usr/share/apk/keys/loongarch64/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub\",\n \"usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub\",\n \"usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub\",\n \"usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub\",\n \"usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub\",\n \"usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub\",\n \"usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub\",\n \"usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub\",\n \"usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub\",\n \"usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub\",\n \"usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub\",\n \"usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-release@3.24.1-r0\",\n \"Name\": \"alpine-release\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"6cfad6f36e1f31aa\"\n },\n \"Version\": \"3.24.1-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-base\",\n \"SrcVersion\": \"3.24.1-r0\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"alpine-keys@2.6-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:bc6912a25cdc7733e0035ed509eceaa4026946e3\",\n \"InstalledFiles\": [\n \"etc/alpine-release\",\n \"etc/issue\",\n \"etc/os-release\",\n \"etc/secfixes.d/alpine\",\n \"usr/lib/os-release\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"apk-tools@3.0.6-r0\",\n \"Name\": \"apk-tools\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"cb2633c883b17a04\"\n },\n \"Version\": \"3.0.6-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"apk-tools\",\n \"SrcVersion\": \"3.0.6-r0\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"ca-certificates-bundle@20260611-r0\",\n \"libapk@3.0.6-r0\",\n \"libcrypto3@3.5.8-r0\",\n \"musl@1.2.6-r2\",\n \"zlib@1.3.2-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:043333589798a1f52e09ae63f026c6c8fa676d34\",\n \"InstalledFiles\": [\n \"sbin/apk\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"busybox@1.37.0-r31\",\n \"Name\": \"busybox\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"771020c43c8440bf\"\n },\n \"Version\": \"1.37.0-r31\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"busybox\",\n \"SrcVersion\": \"1.37.0-r31\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"S\u00f6ren Tempel \\u003csoeren+alpine@soeren-tempel.net\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:b5405ebc02f7dd8be95b6265c54b243d5456ab8f\",\n \"InstalledFiles\": [\n \"bin/busybox\",\n \"etc/securetty\",\n \"etc/busybox-paths.d/busybox\",\n \"etc/logrotate.d/acpid\",\n \"etc/network/if-up.d/dad\",\n \"etc/udhcpc/udhcpc.conf\",\n \"usr/share/udhcpc/default.script\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"busybox-binsh@1.37.0-r31\",\n \"Name\": \"busybox-binsh\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1ec8a3d5d2b63297\"\n },\n \"Version\": \"1.37.0-r31\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"busybox\",\n \"SrcVersion\": \"1.37.0-r31\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"S\u00f6ren Tempel \\u003csoeren+alpine@soeren-tempel.net\\u003e\",\n \"DependsOn\": [\n \"busybox@1.37.0-r31\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7\",\n \"InstalledFiles\": [\n \"bin/sh\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ca-certificates@20260611-r0\",\n \"Name\": \"ca-certificates\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"2a3c316ee83c6198\"\n },\n \"Version\": \"20260611-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ca-certificates\",\n \"SrcVersion\": \"20260611-r0\",\n \"Licenses\": [\n \"MPL-2.0\",\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"busybox-binsh@1.37.0-r31\",\n \"libcrypto3@3.5.8-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\",\n \"DiffID\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n \"Digest\": \"sha1:8f2a04abeb54b331e2970a0a0dffb7bd6bdde567\",\n \"InstalledFiles\": [\n \"etc/ca-certificates.conf\",\n \"etc/apk/protected_paths.d/ca-certificates.list\",\n \"etc/ca-certificates/update.d/certhash\",\n \"usr/bin/c_rehash\",\n \"usr/sbin/update-ca-certificates\",\n \"usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt\",\n \"usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt\",\n \"usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt\",\n \"usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt\",\n \"usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt\",\n \"usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.crt\",\n \"usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.crt\",\n \"usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt\",\n \"usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA1.crt\",\n \"usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA2.crt\",\n \"usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt\",\n \"usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt\",\n \"usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt\",\n \"usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt\",\n \"usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_2_2023.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_2_2023.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt\",\n \"usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt\",\n \"usr/share/ca-certificates/mozilla/GTS_Root_R1.crt\",\n \"usr/share/ca-certificates/mozilla/GTS_Root_R3.crt\",\n \"usr/share/ca-certificates/mozilla/GTS_Root_R4.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt\",\n \"usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt\",\n \"usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt\",\n \"usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt\",\n \"usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt\",\n \"usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt\",\n \"usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt\",\n \"usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt\",\n \"usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt\",\n \"usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt\",\n \"usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt\",\n \"usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt\",\n \"usr/share/ca-certificates/mozilla/Izenpe.com.crt\",\n \"usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt\",\n \"usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt\",\n \"usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt\",\n \"usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_F\u0151tan\u00fas\u00edtv\u00e1ny.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_Server_Root_ECC_G1.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_Server_Root_RSA_G1.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt\",\n \"usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt\",\n \"usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt\",\n \"usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_TLS_ECC_Root_CA_2022.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_TLS_RSA_Root_CA_2022.crt\",\n \"usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt\",\n \"usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_E46.crt\",\n \"usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_R46.crt\",\n \"usr/share/ca-certificates/mozilla/SecureSign_Root_CA14.crt\",\n \"usr/share/ca-certificates/mozilla/SecureSign_Root_CA15.crt\",\n \"usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt\",\n \"usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt\",\n \"usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt\",\n \"usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt\",\n \"usr/share/ca-certificates/mozilla/SwissSign_RSA_TLS_Root_CA_2022_-_1.crt\",\n \"usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt\",\n \"usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt\",\n \"usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt\",\n \"usr/share/ca-certificates/mozilla/TWCA_CYBER_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/Telekom_Security_TLS_ECC_Root_2020.crt\",\n \"usr/share/ca-certificates/mozilla/Telekom_Security_TLS_RSA_Root_2023.crt\",\n \"usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G3.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G4.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_TLS_ECC_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_TLS_RSA_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt\",\n \"usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt\",\n \"usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt\",\n \"usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt\",\n \"usr/share/ca-certificates/mozilla/e-Szigno_TLS_Root_CA_2023.crt\",\n \"usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt\",\n \"usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ca-certificates-bundle@20260611-r0\",\n \"Name\": \"ca-certificates-bundle\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"20337c2ea28bef28\"\n },\n \"Version\": \"20260611-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ca-certificates\",\n \"SrcVersion\": \"20260611-r0\",\n \"Licenses\": [\n \"MPL-2.0\",\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:c9534a03750bdfae341f10969016090fc11febbd\",\n \"InstalledFiles\": [\n \"etc/ssl/cert.pem\",\n \"etc/ssl/certs/ca-certificates.crt\",\n \"etc/ssl1.1/cert.pem\",\n \"etc/ssl1.1/certs\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"gdbm@1.26-r0\",\n \"Name\": \"gdbm\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"5eb1a3f86262ca77\"\n },\n \"Version\": \"1.26-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"gdbm\",\n \"SrcVersion\": \"1.26-r0\",\n \"Licenses\": [\n \"GPL-3.0-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:619493d8124fe49a8ee1d8f7a1372cf7e3977337\",\n \"InstalledFiles\": [\n \"usr/lib/libgdbm.so.6\",\n \"usr/lib/libgdbm.so.6.0.0\",\n \"usr/lib/libgdbm_compat.so.4\",\n \"usr/lib/libgdbm_compat.so.4.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"keyutils-libs@1.6.3-r4\",\n \"Name\": \"keyutils-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"a1a29120eb342032\"\n },\n \"Version\": \"1.6.3-r4\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"keyutils\",\n \"SrcVersion\": \"1.6.3-r4\",\n \"Licenses\": [\n \"GPL-2.0-or-later\",\n \"LGPL-2.0-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:b7331c96f077fc3522ee4361a441d1097204cd90\",\n \"InstalledFiles\": [\n \"usr/lib/libkeyutils.so.1\",\n \"usr/lib/libkeyutils.so.1.10\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"krb5-conf@1.0-r2\",\n \"Name\": \"krb5-conf\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e7cf94ba8b6dbc33\"\n },\n \"Version\": \"1.0-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"krb5-conf\",\n \"SrcVersion\": \"1.0-r2\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:40a11e0690a59e110367b62a80661024e9942a2d\",\n \"InstalledFiles\": [\n \"etc/krb5.conf\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"krb5-libs@1.22.2-r1\",\n \"Name\": \"krb5-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"958f8b4a4f087dac\"\n },\n \"Version\": \"1.22.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"krb5\",\n \"SrcVersion\": \"1.22.2-r1\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"keyutils-libs@1.6.3-r4\",\n \"krb5-conf@1.0-r2\",\n \"libcom_err@1.47.4-r0\",\n \"libcrypto3@3.5.8-r0\",\n \"libssl3@3.5.8-r0\",\n \"libverto@0.3.2-r2\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:ef02346e21b817ff379e4601e5b1fc9760e5e31a\",\n \"InstalledFiles\": [\n \"usr/lib/libgssapi_krb5.so.2\",\n \"usr/lib/libgssapi_krb5.so.2.2\",\n \"usr/lib/libgssrpc.so.4\",\n \"usr/lib/libgssrpc.so.4.2\",\n \"usr/lib/libk5crypto.so.3\",\n \"usr/lib/libk5crypto.so.3.1\",\n \"usr/lib/libkadm5clnt_mit.so.12\",\n \"usr/lib/libkadm5clnt_mit.so.12.0\",\n \"usr/lib/libkadm5srv_mit.so.12\",\n \"usr/lib/libkadm5srv_mit.so.12.0\",\n \"usr/lib/libkdb5.so.10\",\n \"usr/lib/libkdb5.so.10.0\",\n \"usr/lib/libkrad.so.0\",\n \"usr/lib/libkrad.so.0.0\",\n \"usr/lib/libkrb5.so.3\",\n \"usr/lib/libkrb5.so.3.3\",\n \"usr/lib/libkrb5support.so.0\",\n \"usr/lib/libkrb5support.so.0.1\",\n \"usr/lib/krb5/plugins/kdb/db2.so\",\n \"usr/lib/krb5/plugins/preauth/otp.so\",\n \"usr/lib/krb5/plugins/preauth/spake.so\",\n \"usr/lib/krb5/plugins/preauth/test.so\",\n \"usr/lib/krb5/plugins/tls/k5tls.so\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libapk@3.0.6-r0\",\n \"Name\": \"libapk\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"a35b8b9b3219513a\"\n },\n \"Version\": \"3.0.6-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"apk-tools\",\n \"SrcVersion\": \"3.0.6-r0\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"libcrypto3@3.5.8-r0\",\n \"libssl3@3.5.8-r0\",\n \"musl@1.2.6-r2\",\n \"zlib@1.3.2-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:523a8f58104589f74f743d501c81bf6517155378\",\n \"InstalledFiles\": [\n \"usr/lib/libapk.so.3.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libbz2@1.0.8-r6\",\n \"Name\": \"libbz2\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"48e17539404e2d56\"\n },\n \"Version\": \"1.0.8-r6\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"bzip2\",\n \"SrcVersion\": \"1.0.8-r6\",\n \"Licenses\": [\n \"bzip-2-1.0.6\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:08566ba5c7af97c25474be8b24e8b48f0116b67d\",\n \"InstalledFiles\": [\n \"usr/lib/libbz2.so.1\",\n \"usr/lib/libbz2.so.1.0.8\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libcom_err@1.47.4-r0\",\n \"Name\": \"libcom_err\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"3fc35a3f66d192af\"\n },\n \"Version\": \"1.47.4-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"e2fsprogs\",\n \"SrcVersion\": \"1.47.4-r0\",\n \"Licenses\": [\n \"GPL-2.0-or-later\",\n \"LGPL-2.0-or-later\",\n \"BSD-3-Clause\",\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef\",\n \"InstalledFiles\": [\n \"usr/lib/libcom_err.so.2\",\n \"usr/lib/libcom_err.so.2.1\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libcrypto3@3.5.8-r0\",\n \"Name\": \"libcrypto3\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"4299bba2ba9c96aa\"\n },\n \"Version\": \"3.5.8-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"openssl\",\n \"SrcVersion\": \"3.5.8-r0\",\n \"Licenses\": [\n \"Apache-2.0\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3\",\n \"InstalledFiles\": [\n \"etc/ssl/ct_log_list.cnf\",\n \"etc/ssl/ct_log_list.cnf.dist\",\n \"etc/ssl/openssl.cnf\",\n \"etc/ssl/openssl.cnf.dist\",\n \"usr/lib/libcrypto.so.3\",\n \"usr/lib/engines-3/afalg.so\",\n \"usr/lib/engines-3/capi.so\",\n \"usr/lib/engines-3/loader_attic.so\",\n \"usr/lib/engines-3/padlock.so\",\n \"usr/lib/ossl-modules/legacy.so\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libffi@3.5.2-r1\",\n \"Name\": \"libffi\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"d3eaa921287b1ccd\"\n },\n \"Version\": \"3.5.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libffi\",\n \"SrcVersion\": \"3.5.2-r1\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a\",\n \"InstalledFiles\": [\n \"usr/lib/libffi.so.8\",\n \"usr/lib/libffi.so.8.2.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libintl@1.0-r0\",\n \"Name\": \"libintl\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libintl@1.0-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"25c18808d8fc87e0\"\n },\n \"Version\": \"1.0-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"gettext\",\n \"SrcVersion\": \"1.0-r0\",\n \"Licenses\": [\n \"LGPL-2.1-or-later\"\n ],\n \"Maintainer\": \"Carlo Landmeter \\u003cclandmeter@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:282d6642ccac87237e43a864159d73cf5abe7550\",\n \"InstalledFiles\": [\n \"usr/lib/libintl.so.8\",\n \"usr/lib/libintl.so.8.4.6\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libncursesw@6.6_p20260516-r0\",\n \"Name\": \"libncursesw\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e8939f45e2191bcc\"\n },\n \"Version\": \"6.6_p20260516-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ncurses\",\n \"SrcVersion\": \"6.6_p20260516-r0\",\n \"Licenses\": [\n \"X-11\"\n ],\n \"Maintainer\": \"Milan P. Stani\u0107 \\u003cmps@arvanta.net\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\",\n \"ncurses-terminfo-base@6.6_p20260516-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:9f318e6e324d6827274829194cf6ac6afbaded12\",\n \"InstalledFiles\": [\n \"usr/lib/libncursesw.so.6\",\n \"usr/lib/libncursesw.so.6.6\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libnsl@2.0.1-r2\",\n \"Name\": \"libnsl\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"3d893c60d41da67b\"\n },\n \"Version\": \"2.0.1-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libnsl\",\n \"SrcVersion\": \"2.0.1-r2\",\n \"Licenses\": [\n \"LGPL-2.0-or-later\"\n ],\n \"DependsOn\": [\n \"libintl@1.0-r0\",\n \"libtirpc@1.3.5-r1\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:5194adbf26560b52be318481a7af294ab05fd795\",\n \"InstalledFiles\": [\n \"usr/lib/libnsl.so.3\",\n \"usr/lib/libnsl.so.3.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libpanelw@6.6_p20260516-r0\",\n \"Name\": \"libpanelw\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"ef1ad9bb256b373\"\n },\n \"Version\": \"6.6_p20260516-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ncurses\",\n \"SrcVersion\": \"6.6_p20260516-r0\",\n \"Licenses\": [\n \"X-11\"\n ],\n \"Maintainer\": \"Milan P. Stani\u0107 \\u003cmps@arvanta.net\\u003e\",\n \"DependsOn\": [\n \"libncursesw@6.6_p20260516-r0\",\n \"musl@1.2.6-r2\",\n \"ncurses-terminfo-base@6.6_p20260516-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:149bdc434232ed11fc5bb975ba519a07154a6f56\",\n \"InstalledFiles\": [\n \"usr/lib/libpanelw.so.6\",\n \"usr/lib/libpanelw.so.6.6\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libssl3@3.5.8-r0\",\n \"Name\": \"libssl3\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"f290ab59b88b1c4a\"\n },\n \"Version\": \"3.5.8-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"openssl\",\n \"SrcVersion\": \"3.5.8-r0\",\n \"Licenses\": [\n \"Apache-2.0\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"libcrypto3@3.5.8-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:5f9b1e55d821953d2e2b1db322dad70a3b5041ea\",\n \"InstalledFiles\": [\n \"usr/lib/libssl.so.3\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libtirpc@1.3.5-r1\",\n \"Name\": \"libtirpc\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"471c8d955ca03be5\"\n },\n \"Version\": \"1.3.5-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libtirpc\",\n \"SrcVersion\": \"1.3.5-r1\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"krb5-libs@1.22.2-r1\",\n \"libtirpc-conf@1.3.5-r1\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:c32865bd86a8b8829d152279cabbc5ac6d430eb2\",\n \"InstalledFiles\": [\n \"usr/lib/libtirpc.so.3\",\n \"usr/lib/libtirpc.so.3.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libtirpc-conf@1.3.5-r1\",\n \"Name\": \"libtirpc-conf\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"3437392c14aad33f\"\n },\n \"Version\": \"1.3.5-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libtirpc\",\n \"SrcVersion\": \"1.3.5-r1\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:0c17d9988dc986c90e22f79778df047eca9973ff\",\n \"InstalledFiles\": [\n \"etc/bindresvport.blacklist\",\n \"etc/netconfig\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libuuid@2.42.3-r1\",\n \"Name\": \"libuuid\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"c444e9cdd1bdda40\"\n },\n \"Version\": \"2.42.3-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"util-linux\",\n \"SrcVersion\": \"2.42.3-r1\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86\",\n \"DiffID\": \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\"\n },\n \"Digest\": \"sha1:8f041ef637ad75f381cc0c034f2afbbb0303264e\",\n \"InstalledFiles\": [\n \"usr/lib/libuuid.so.1\",\n \"usr/lib/libuuid.so.1.3.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libverto@0.3.2-r2\",\n \"Name\": \"libverto\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"9df4321a283a6cf6\"\n },\n \"Version\": \"0.3.2-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libverto\",\n \"SrcVersion\": \"0.3.2-r2\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Francesco Colista \\u003cfcolista@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:73233059338142e4ac6d8fb8bb0074e93da75dc1\",\n \"InstalledFiles\": [\n \"usr/lib/libverto.so.1\",\n \"usr/lib/libverto.so.1.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"musl@1.2.6-r2\",\n \"Name\": \"musl\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1f8cb44befe503d4\"\n },\n \"Version\": \"1.2.6-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"musl\",\n \"SrcVersion\": \"1.2.6-r2\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:0f7e5827e4e1a73631beda27b78431a8ba240e05\",\n \"InstalledFiles\": [\n \"lib/ld-musl-x86_64.so.1\",\n \"lib/libc.musl-x86_64.so.1\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"musl-utils@1.2.6-r2\",\n \"Name\": \"musl-utils\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"4497482ec1d943e1\"\n },\n \"Version\": \"1.2.6-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"musl\",\n \"SrcVersion\": \"1.2.6-r2\",\n \"Licenses\": [\n \"MIT\",\n \"BSD-2-Clause\",\n \"GPL-2.0-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\",\n \"scanelf@1.3.9-r1\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:75ada3c48d63ec5d87c42fdf934a3fdd11298dc5\",\n \"InstalledFiles\": [\n \"sbin/ldconfig\",\n \"usr/bin/getconf\",\n \"usr/bin/getent\",\n \"usr/bin/iconv\",\n \"usr/bin/ldd\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ncurses-terminfo-base@6.6_p20260516-r0\",\n \"Name\": \"ncurses-terminfo-base\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e7fac5c6a6e9ae8\"\n },\n \"Version\": \"6.6_p20260516-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ncurses\",\n \"SrcVersion\": \"6.6_p20260516-r0\",\n \"Licenses\": [\n \"X-11\"\n ],\n \"Maintainer\": \"Milan P. Stani\u0107 \\u003cmps@arvanta.net\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:9d551d828e9c8ee52c5801c1d6046828ebf15752\",\n \"InstalledFiles\": [\n \"etc/terminfo/a/alacritty\",\n \"etc/terminfo/a/ansi\",\n \"etc/terminfo/d/dumb\",\n \"etc/terminfo/g/gnome\",\n \"etc/terminfo/g/gnome-256color\",\n \"etc/terminfo/k/konsole\",\n \"etc/terminfo/k/konsole-256color\",\n \"etc/terminfo/k/konsole-linux\",\n \"etc/terminfo/l/linux\",\n \"etc/terminfo/p/putty\",\n \"etc/terminfo/p/putty-256color\",\n \"etc/terminfo/r/rxvt\",\n \"etc/terminfo/r/rxvt-256color\",\n \"etc/terminfo/s/screen\",\n \"etc/terminfo/s/screen-256color\",\n \"etc/terminfo/s/st-0.6\",\n \"etc/terminfo/s/st-0.7\",\n \"etc/terminfo/s/st-0.8\",\n \"etc/terminfo/s/st-0.8.5\",\n \"etc/terminfo/s/st-16color\",\n \"etc/terminfo/s/st-256color\",\n \"etc/terminfo/s/st-direct\",\n \"etc/terminfo/s/sun\",\n \"etc/terminfo/t/terminator\",\n \"etc/terminfo/t/terminology\",\n \"etc/terminfo/t/terminology-0.6.1\",\n \"etc/terminfo/t/terminology-1.0.0\",\n \"etc/terminfo/t/terminology-1.8.1\",\n \"etc/terminfo/t/tmux\",\n \"etc/terminfo/t/tmux-256color\",\n \"etc/terminfo/v/vt100\",\n \"etc/terminfo/v/vt102\",\n \"etc/terminfo/v/vt200\",\n \"etc/terminfo/v/vt220\",\n \"etc/terminfo/v/vt52\",\n \"etc/terminfo/v/vte\",\n \"etc/terminfo/v/vte-256color\",\n \"etc/terminfo/x/xterm\",\n \"etc/terminfo/x/xterm-256color\",\n \"etc/terminfo/x/xterm-color\",\n \"etc/terminfo/x/xterm-xfree86\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"readline@8.3.3-r1\",\n \"Name\": \"readline\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"f50058781c93e1f2\"\n },\n \"Version\": \"8.3.3-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"readline\",\n \"SrcVersion\": \"8.3.3-r1\",\n \"Licenses\": [\n \"GPL-3.0-or-later\"\n ],\n \"Maintainer\": \"qaqland \\u003cqaq@qaq.land\\u003e\",\n \"DependsOn\": [\n \"libncursesw@6.6_p20260516-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:945b16e378bc00e44d89d4de8124bba7647fdf4d\",\n \"InstalledFiles\": [\n \"etc/inputrc\",\n \"usr/lib/libreadline.so.8\",\n \"usr/lib/libreadline.so.8.3\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"scanelf@1.3.9-r1\",\n \"Name\": \"scanelf\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"936394657a1626fb\"\n },\n \"Version\": \"1.3.9-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"pax-utils\",\n \"SrcVersion\": \"1.3.9-r1\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:013f903d0ba219673aebbdd04f74bb5ed82b01f0\",\n \"InstalledFiles\": [\n \"usr/bin/scanelf\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"sqlite-libs@3.53.4-r0\",\n \"Name\": \"sqlite-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"8b10aee2ccc192de\"\n },\n \"Version\": \"3.53.4-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"sqlite\",\n \"SrcVersion\": \"3.53.4-r0\",\n \"Licenses\": [\n \"blessing\"\n ],\n \"Maintainer\": \"Jingyun Hua \\u003chuajingyun@loongson.cn\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:f7630ceb37c232b6609861aeab6cdb9cd120e6fa\",\n \"InstalledFiles\": [\n \"usr/lib/libsqlite3.so.0\",\n \"usr/lib/libsqlite3.so.3.53.4\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ssl_client@1.37.0-r31\",\n \"Name\": \"ssl_client\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"d42e31f15a4ce47a\"\n },\n \"Version\": \"1.37.0-r31\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"busybox\",\n \"SrcVersion\": \"1.37.0-r31\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"S\u00f6ren Tempel \\u003csoeren+alpine@soeren-tempel.net\\u003e\",\n \"DependsOn\": [\n \"libcrypto3@3.5.8-r0\",\n \"libssl3@3.5.8-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:c220f4a5125a313af733e98def94132bb1e9d40d\",\n \"InstalledFiles\": [\n \"usr/bin/ssl_client\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"tzdata@2026c-r0\",\n \"Name\": \"tzdata\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"52c6b50eff629f9d\"\n },\n \"Version\": \"2026c-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"tzdata\",\n \"SrcVersion\": \"2026c-r0\",\n \"Licenses\": [\n \"Public-Domain\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\",\n \"DiffID\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n \"Digest\": \"sha1:61f7544ecd8dd63eac23fe3e645702fda92ef02a\",\n \"InstalledFiles\": [\n \"usr/share/zoneinfo/CET\",\n \"usr/share/zoneinfo/CST6CDT\",\n \"usr/share/zoneinfo/Cuba\",\n \"usr/share/zoneinfo/EET\",\n \"usr/share/zoneinfo/EST\",\n \"usr/share/zoneinfo/EST5EDT\",\n \"usr/share/zoneinfo/Egypt\",\n \"usr/share/zoneinfo/Eire\",\n \"usr/share/zoneinfo/Factory\",\n \"usr/share/zoneinfo/GB\",\n \"usr/share/zoneinfo/GB-Eire\",\n \"usr/share/zoneinfo/GMT\",\n \"usr/share/zoneinfo/GMT+0\",\n \"usr/share/zoneinfo/GMT-0\",\n \"usr/share/zoneinfo/GMT0\",\n \"usr/share/zoneinfo/Greenwich\",\n \"usr/share/zoneinfo/HST\",\n \"usr/share/zoneinfo/Hongkong\",\n \"usr/share/zoneinfo/Iceland\",\n \"usr/share/zoneinfo/Iran\",\n \"usr/share/zoneinfo/Israel\",\n \"usr/share/zoneinfo/Jamaica\",\n \"usr/share/zoneinfo/Japan\",\n \"usr/share/zoneinfo/Kwajalein\",\n \"usr/share/zoneinfo/Libya\",\n \"usr/share/zoneinfo/MET\",\n \"usr/share/zoneinfo/MST\",\n \"usr/share/zoneinfo/MST7MDT\",\n \"usr/share/zoneinfo/NZ\",\n \"usr/share/zoneinfo/NZ-CHAT\",\n \"usr/share/zoneinfo/Navajo\",\n \"usr/share/zoneinfo/PRC\",\n \"usr/share/zoneinfo/PST8PDT\",\n \"usr/share/zoneinfo/Poland\",\n \"usr/share/zoneinfo/Portugal\",\n \"usr/share/zoneinfo/ROC\",\n \"usr/share/zoneinfo/ROK\",\n \"usr/share/zoneinfo/Singapore\",\n \"usr/share/zoneinfo/Turkey\",\n \"usr/share/zoneinfo/UCT\",\n \"usr/share/zoneinfo/UTC\",\n \"usr/share/zoneinfo/Universal\",\n \"usr/share/zoneinfo/W-SU\",\n \"usr/share/zoneinfo/WET\",\n \"usr/share/zoneinfo/Zulu\",\n \"usr/share/zoneinfo/iso3166.tab\",\n \"usr/share/zoneinfo/leap-seconds.list\",\n \"usr/share/zoneinfo/posixrules\",\n \"usr/share/zoneinfo/zone.tab\",\n \"usr/share/zoneinfo/zone1970.tab\",\n \"usr/share/zoneinfo/Africa/Abidjan\",\n \"usr/share/zoneinfo/Africa/Accra\",\n \"usr/share/zoneinfo/Africa/Addis_Ababa\",\n \"usr/share/zoneinfo/Africa/Algiers\",\n \"usr/share/zoneinfo/Africa/Asmara\",\n \"usr/share/zoneinfo/Africa/Asmera\",\n \"usr/share/zoneinfo/Africa/Bamako\",\n \"usr/share/zoneinfo/Africa/Bangui\",\n \"usr/share/zoneinfo/Africa/Banjul\",\n \"usr/share/zoneinfo/Africa/Bissau\",\n \"usr/share/zoneinfo/Africa/Blantyre\",\n \"usr/share/zoneinfo/Africa/Brazzaville\",\n \"usr/share/zoneinfo/Africa/Bujumbura\",\n \"usr/share/zoneinfo/Africa/Cairo\",\n \"usr/share/zoneinfo/Africa/Casablanca\",\n \"usr/share/zoneinfo/Africa/Ceuta\",\n \"usr/share/zoneinfo/Africa/Conakry\",\n \"usr/share/zoneinfo/Africa/Dakar\",\n \"usr/share/zoneinfo/Africa/Dar_es_Salaam\",\n \"usr/share/zoneinfo/Africa/Djibouti\",\n \"usr/share/zoneinfo/Africa/Douala\",\n \"usr/share/zoneinfo/Africa/El_Aaiun\",\n \"usr/share/zoneinfo/Africa/Freetown\",\n \"usr/share/zoneinfo/Africa/Gaborone\",\n \"usr/share/zoneinfo/Africa/Harare\",\n \"usr/share/zoneinfo/Africa/Johannesburg\",\n \"usr/share/zoneinfo/Africa/Juba\",\n \"usr/share/zoneinfo/Africa/Kampala\",\n \"usr/share/zoneinfo/Africa/Khartoum\",\n \"usr/share/zoneinfo/Africa/Kigali\",\n \"usr/share/zoneinfo/Africa/Kinshasa\",\n \"usr/share/zoneinfo/Africa/Lagos\",\n \"usr/share/zoneinfo/Africa/Libreville\",\n \"usr/share/zoneinfo/Africa/Lome\",\n \"usr/share/zoneinfo/Africa/Luanda\",\n \"usr/share/zoneinfo/Africa/Lubumbashi\",\n \"usr/share/zoneinfo/Africa/Lusaka\",\n \"usr/share/zoneinfo/Africa/Malabo\",\n \"usr/share/zoneinfo/Africa/Maputo\",\n \"usr/share/zoneinfo/Africa/Maseru\",\n \"usr/share/zoneinfo/Africa/Mbabane\",\n \"usr/share/zoneinfo/Africa/Mogadishu\",\n \"usr/share/zoneinfo/Africa/Monrovia\",\n \"usr/share/zoneinfo/Africa/Nairobi\",\n \"usr/share/zoneinfo/Africa/Ndjamena\",\n \"usr/share/zoneinfo/Africa/Niamey\",\n \"usr/share/zoneinfo/Africa/Nouakchott\",\n \"usr/share/zoneinfo/Africa/Ouagadougou\",\n \"usr/share/zoneinfo/Africa/Porto-Novo\",\n \"usr/share/zoneinfo/Africa/Sao_Tome\",\n \"usr/share/zoneinfo/Africa/Timbuktu\",\n \"usr/share/zoneinfo/Africa/Tripoli\",\n \"usr/share/zoneinfo/Africa/Tunis\",\n \"usr/share/zoneinfo/Africa/Windhoek\",\n \"usr/share/zoneinfo/America/Adak\",\n \"usr/share/zoneinfo/America/Anchorage\",\n \"usr/share/zoneinfo/America/Anguilla\",\n \"usr/share/zoneinfo/America/Antigua\",\n \"usr/share/zoneinfo/America/Araguaina\",\n \"usr/share/zoneinfo/America/Aruba\",\n \"usr/share/zoneinfo/America/Asuncion\",\n \"usr/share/zoneinfo/America/Atikokan\",\n \"usr/share/zoneinfo/America/Atka\",\n \"usr/share/zoneinfo/America/Bahia\",\n \"usr/share/zoneinfo/America/Bahia_Banderas\",\n \"usr/share/zoneinfo/America/Barbados\",\n \"usr/share/zoneinfo/America/Belem\",\n \"usr/share/zoneinfo/America/Belize\",\n \"usr/share/zoneinfo/America/Blanc-Sablon\",\n \"usr/share/zoneinfo/America/Boa_Vista\",\n \"usr/share/zoneinfo/America/Bogota\",\n \"usr/share/zoneinfo/America/Boise\",\n \"usr/share/zoneinfo/America/Buenos_Aires\",\n \"usr/share/zoneinfo/America/Cambridge_Bay\",\n \"usr/share/zoneinfo/America/Campo_Grande\",\n \"usr/share/zoneinfo/America/Cancun\",\n \"usr/share/zoneinfo/America/Caracas\",\n \"usr/share/zoneinfo/America/Catamarca\",\n \"usr/share/zoneinfo/America/Cayenne\",\n \"usr/share/zoneinfo/America/Cayman\",\n \"usr/share/zoneinfo/America/Chicago\",\n \"usr/share/zoneinfo/America/Chihuahua\",\n \"usr/share/zoneinfo/America/Ciudad_Juarez\",\n \"usr/share/zoneinfo/America/Coral_Harbour\",\n \"usr/share/zoneinfo/America/Cordoba\",\n \"usr/share/zoneinfo/America/Costa_Rica\",\n \"usr/share/zoneinfo/America/Coyhaique\",\n \"usr/share/zoneinfo/America/Creston\",\n \"usr/share/zoneinfo/America/Cuiaba\",\n \"usr/share/zoneinfo/America/Curacao\",\n \"usr/share/zoneinfo/America/Danmarkshavn\",\n \"usr/share/zoneinfo/America/Dawson\",\n \"usr/share/zoneinfo/America/Dawson_Creek\",\n \"usr/share/zoneinfo/America/Denver\",\n \"usr/share/zoneinfo/America/Detroit\",\n \"usr/share/zoneinfo/America/Dominica\",\n \"usr/share/zoneinfo/America/Edmonton\",\n \"usr/share/zoneinfo/America/Eirunepe\",\n \"usr/share/zoneinfo/America/El_Salvador\",\n \"usr/share/zoneinfo/America/Ensenada\",\n \"usr/share/zoneinfo/America/Fort_Nelson\",\n \"usr/share/zoneinfo/America/Fort_Wayne\",\n \"usr/share/zoneinfo/America/Fortaleza\",\n \"usr/share/zoneinfo/America/Glace_Bay\",\n \"usr/share/zoneinfo/America/Godthab\",\n \"usr/share/zoneinfo/America/Goose_Bay\",\n \"usr/share/zoneinfo/America/Grand_Turk\",\n \"usr/share/zoneinfo/America/Grenada\",\n \"usr/share/zoneinfo/America/Guadeloupe\",\n \"usr/share/zoneinfo/America/Guatemala\",\n \"usr/share/zoneinfo/America/Guayaquil\",\n \"usr/share/zoneinfo/America/Guyana\",\n \"usr/share/zoneinfo/America/Halifax\",\n \"usr/share/zoneinfo/America/Havana\",\n \"usr/share/zoneinfo/America/Hermosillo\",\n \"usr/share/zoneinfo/America/Indianapolis\",\n \"usr/share/zoneinfo/America/Inuvik\",\n \"usr/share/zoneinfo/America/Iqaluit\",\n \"usr/share/zoneinfo/America/Jamaica\",\n \"usr/share/zoneinfo/America/Jujuy\",\n \"usr/share/zoneinfo/America/Juneau\",\n \"usr/share/zoneinfo/America/Knox_IN\",\n \"usr/share/zoneinfo/America/Kralendijk\",\n \"usr/share/zoneinfo/America/La_Paz\",\n \"usr/share/zoneinfo/America/Lima\",\n \"usr/share/zoneinfo/America/Los_Angeles\",\n \"usr/share/zoneinfo/America/Louisville\",\n \"usr/share/zoneinfo/America/Lower_Princes\",\n \"usr/share/zoneinfo/America/Maceio\",\n \"usr/share/zoneinfo/America/Managua\",\n \"usr/share/zoneinfo/America/Manaus\",\n \"usr/share/zoneinfo/America/Marigot\",\n \"usr/share/zoneinfo/America/Martinique\",\n \"usr/share/zoneinfo/America/Matamoros\",\n \"usr/share/zoneinfo/America/Mazatlan\",\n \"usr/share/zoneinfo/America/Mendoza\",\n \"usr/share/zoneinfo/America/Menominee\",\n \"usr/share/zoneinfo/America/Merida\",\n \"usr/share/zoneinfo/America/Metlakatla\",\n \"usr/share/zoneinfo/America/Mexico_City\",\n \"usr/share/zoneinfo/America/Miquelon\",\n \"usr/share/zoneinfo/America/Moncton\",\n \"usr/share/zoneinfo/America/Monterrey\",\n \"usr/share/zoneinfo/America/Montevideo\",\n \"usr/share/zoneinfo/America/Montreal\",\n \"usr/share/zoneinfo/America/Montserrat\",\n \"usr/share/zoneinfo/America/Nassau\",\n \"usr/share/zoneinfo/America/New_York\",\n \"usr/share/zoneinfo/America/Nipigon\",\n \"usr/share/zoneinfo/America/Nome\",\n \"usr/share/zoneinfo/America/Noronha\",\n \"usr/share/zoneinfo/America/Nuuk\",\n \"usr/share/zoneinfo/America/Ojinaga\",\n \"usr/share/zoneinfo/America/Panama\",\n \"usr/share/zoneinfo/America/Pangnirtung\",\n \"usr/share/zoneinfo/America/Paramaribo\",\n \"usr/share/zoneinfo/America/Phoenix\",\n \"usr/share/zoneinfo/America/Port-au-Prince\",\n \"usr/share/zoneinfo/America/Port_of_Spain\",\n \"usr/share/zoneinfo/America/Porto_Acre\",\n \"usr/share/zoneinfo/America/Porto_Velho\",\n \"usr/share/zoneinfo/America/Puerto_Rico\",\n \"usr/share/zoneinfo/America/Punta_Arenas\",\n \"usr/share/zoneinfo/America/Rainy_River\",\n \"usr/share/zoneinfo/America/Rankin_Inlet\",\n \"usr/share/zoneinfo/America/Recife\",\n \"usr/share/zoneinfo/America/Regina\",\n \"usr/share/zoneinfo/America/Resolute\",\n \"usr/share/zoneinfo/America/Rio_Branco\",\n \"usr/share/zoneinfo/America/Rosario\",\n \"usr/share/zoneinfo/America/Santa_Isabel\",\n \"usr/share/zoneinfo/America/Santarem\",\n \"usr/share/zoneinfo/America/Santiago\",\n \"usr/share/zoneinfo/America/Santo_Domingo\",\n \"usr/share/zoneinfo/America/Sao_Paulo\",\n \"usr/share/zoneinfo/America/Scoresbysund\",\n \"usr/share/zoneinfo/America/Shiprock\",\n \"usr/share/zoneinfo/America/Sitka\",\n \"usr/share/zoneinfo/America/St_Barthelemy\",\n \"usr/share/zoneinfo/America/St_Johns\",\n \"usr/share/zoneinfo/America/St_Kitts\",\n \"usr/share/zoneinfo/America/St_Lucia\",\n \"usr/share/zoneinfo/America/St_Thomas\",\n \"usr/share/zoneinfo/America/St_Vincent\",\n \"usr/share/zoneinfo/America/Swift_Current\",\n \"usr/share/zoneinfo/America/Tegucigalpa\",\n \"usr/share/zoneinfo/America/Thule\",\n \"usr/share/zoneinfo/America/Thunder_Bay\",\n \"usr/share/zoneinfo/America/Tijuana\",\n \"usr/share/zoneinfo/America/Toronto\",\n \"usr/share/zoneinfo/America/Tortola\",\n \"usr/share/zoneinfo/America/Vancouver\",\n \"usr/share/zoneinfo/America/Virgin\",\n \"usr/share/zoneinfo/America/Whitehorse\",\n \"usr/share/zoneinfo/America/Winnipeg\",\n \"usr/share/zoneinfo/America/Yakutat\",\n \"usr/share/zoneinfo/America/Yellowknife\",\n \"usr/share/zoneinfo/America/Argentina/Buenos_Aires\",\n \"usr/share/zoneinfo/America/Argentina/Catamarca\",\n \"usr/share/zoneinfo/America/Argentina/ComodRivadavia\",\n \"usr/share/zoneinfo/America/Argentina/Cordoba\",\n \"usr/share/zoneinfo/America/Argentina/Jujuy\",\n \"usr/share/zoneinfo/America/Argentina/La_Rioja\",\n \"usr/share/zoneinfo/America/Argentina/Mendoza\",\n \"usr/share/zoneinfo/America/Argentina/Rio_Gallegos\",\n \"usr/share/zoneinfo/America/Argentina/Salta\",\n \"usr/share/zoneinfo/America/Argentina/San_Juan\",\n \"usr/share/zoneinfo/America/Argentina/San_Luis\",\n \"usr/share/zoneinfo/America/Argentina/Tucuman\",\n \"usr/share/zoneinfo/America/Argentina/Ushuaia\",\n \"usr/share/zoneinfo/America/Indiana/Indianapolis\",\n \"usr/share/zoneinfo/America/Indiana/Knox\",\n \"usr/share/zoneinfo/America/Indiana/Marengo\",\n \"usr/share/zoneinfo/America/Indiana/Petersburg\",\n \"usr/share/zoneinfo/America/Indiana/Tell_City\",\n \"usr/share/zoneinfo/America/Indiana/Vevay\",\n \"usr/share/zoneinfo/America/Indiana/Vincennes\",\n \"usr/share/zoneinfo/America/Indiana/Winamac\",\n \"usr/share/zoneinfo/America/Kentucky/Louisville\",\n \"usr/share/zoneinfo/America/Kentucky/Monticello\",\n \"usr/share/zoneinfo/America/North_Dakota/Beulah\",\n \"usr/share/zoneinfo/America/North_Dakota/Center\",\n \"usr/share/zoneinfo/America/North_Dakota/New_Salem\",\n \"usr/share/zoneinfo/Antarctica/Casey\",\n \"usr/share/zoneinfo/Antarctica/Davis\",\n \"usr/share/zoneinfo/Antarctica/DumontDUrville\",\n \"usr/share/zoneinfo/Antarctica/Macquarie\",\n \"usr/share/zoneinfo/Antarctica/Mawson\",\n \"usr/share/zoneinfo/Antarctica/McMurdo\",\n \"usr/share/zoneinfo/Antarctica/Palmer\",\n \"usr/share/zoneinfo/Antarctica/Rothera\",\n \"usr/share/zoneinfo/Antarctica/South_Pole\",\n \"usr/share/zoneinfo/Antarctica/Syowa\",\n \"usr/share/zoneinfo/Antarctica/Troll\",\n \"usr/share/zoneinfo/Antarctica/Vostok\",\n \"usr/share/zoneinfo/Arctic/Longyearbyen\",\n \"usr/share/zoneinfo/Asia/Aden\",\n \"usr/share/zoneinfo/Asia/Almaty\",\n \"usr/share/zoneinfo/Asia/Amman\",\n \"usr/share/zoneinfo/Asia/Anadyr\",\n \"usr/share/zoneinfo/Asia/Aqtau\",\n \"usr/share/zoneinfo/Asia/Aqtobe\",\n \"usr/share/zoneinfo/Asia/Ashgabat\",\n \"usr/share/zoneinfo/Asia/Ashkhabad\",\n \"usr/share/zoneinfo/Asia/Atyrau\",\n \"usr/share/zoneinfo/Asia/Baghdad\",\n \"usr/share/zoneinfo/Asia/Bahrain\",\n \"usr/share/zoneinfo/Asia/Baku\",\n \"usr/share/zoneinfo/Asia/Bangkok\",\n \"usr/share/zoneinfo/Asia/Barnaul\",\n \"usr/share/zoneinfo/Asia/Beirut\",\n \"usr/share/zoneinfo/Asia/Bishkek\",\n \"usr/share/zoneinfo/Asia/Brunei\",\n \"usr/share/zoneinfo/Asia/Calcutta\",\n \"usr/share/zoneinfo/Asia/Chita\",\n \"usr/share/zoneinfo/Asia/Choibalsan\",\n \"usr/share/zoneinfo/Asia/Chongqing\",\n \"usr/share/zoneinfo/Asia/Chungking\",\n \"usr/share/zoneinfo/Asia/Colombo\",\n \"usr/share/zoneinfo/Asia/Dacca\",\n \"usr/share/zoneinfo/Asia/Damascus\",\n \"usr/share/zoneinfo/Asia/Dhaka\",\n \"usr/share/zoneinfo/Asia/Dili\",\n \"usr/share/zoneinfo/Asia/Dubai\",\n \"usr/share/zoneinfo/Asia/Dushanbe\",\n \"usr/share/zoneinfo/Asia/Famagusta\",\n \"usr/share/zoneinfo/Asia/Gaza\",\n \"usr/share/zoneinfo/Asia/Harbin\",\n \"usr/share/zoneinfo/Asia/Hebron\",\n \"usr/share/zoneinfo/Asia/Ho_Chi_Minh\",\n \"usr/share/zoneinfo/Asia/Hong_Kong\",\n \"usr/share/zoneinfo/Asia/Hovd\",\n \"usr/share/zoneinfo/Asia/Irkutsk\",\n \"usr/share/zoneinfo/Asia/Istanbul\",\n \"usr/share/zoneinfo/Asia/Jakarta\",\n \"usr/share/zoneinfo/Asia/Jayapura\",\n \"usr/share/zoneinfo/Asia/Jerusalem\",\n \"usr/share/zoneinfo/Asia/Kabul\",\n \"usr/share/zoneinfo/Asia/Kamchatka\",\n \"usr/share/zoneinfo/Asia/Karachi\",\n \"usr/share/zoneinfo/Asia/Kashgar\",\n \"usr/share/zoneinfo/Asia/Kathmandu\",\n \"usr/share/zoneinfo/Asia/Katmandu\",\n \"usr/share/zoneinfo/Asia/Khandyga\",\n \"usr/share/zoneinfo/Asia/Kolkata\",\n \"usr/share/zoneinfo/Asia/Krasnoyarsk\",\n \"usr/share/zoneinfo/Asia/Kuala_Lumpur\",\n \"usr/share/zoneinfo/Asia/Kuching\",\n \"usr/share/zoneinfo/Asia/Kuwait\",\n \"usr/share/zoneinfo/Asia/Macao\",\n \"usr/share/zoneinfo/Asia/Macau\",\n \"usr/share/zoneinfo/Asia/Magadan\",\n \"usr/share/zoneinfo/Asia/Makassar\",\n \"usr/share/zoneinfo/Asia/Manila\",\n \"usr/share/zoneinfo/Asia/Muscat\",\n \"usr/share/zoneinfo/Asia/Nicosia\",\n \"usr/share/zoneinfo/Asia/Novokuznetsk\",\n \"usr/share/zoneinfo/Asia/Novosibirsk\",\n \"usr/share/zoneinfo/Asia/Omsk\",\n \"usr/share/zoneinfo/Asia/Oral\",\n \"usr/share/zoneinfo/Asia/Phnom_Penh\",\n \"usr/share/zoneinfo/Asia/Pontianak\",\n \"usr/share/zoneinfo/Asia/Pyongyang\",\n \"usr/share/zoneinfo/Asia/Qatar\",\n \"usr/share/zoneinfo/Asia/Qostanay\",\n \"usr/share/zoneinfo/Asia/Qyzylorda\",\n \"usr/share/zoneinfo/Asia/Rangoon\",\n \"usr/share/zoneinfo/Asia/Riyadh\",\n \"usr/share/zoneinfo/Asia/Saigon\",\n \"usr/share/zoneinfo/Asia/Sakhalin\",\n \"usr/share/zoneinfo/Asia/Samarkand\",\n \"usr/share/zoneinfo/Asia/Seoul\",\n \"usr/share/zoneinfo/Asia/Shanghai\",\n \"usr/share/zoneinfo/Asia/Singapore\",\n \"usr/share/zoneinfo/Asia/Srednekolymsk\",\n \"usr/share/zoneinfo/Asia/Taipei\",\n \"usr/share/zoneinfo/Asia/Tashkent\",\n \"usr/share/zoneinfo/Asia/Tbilisi\",\n \"usr/share/zoneinfo/Asia/Tehran\",\n \"usr/share/zoneinfo/Asia/Tel_Aviv\",\n \"usr/share/zoneinfo/Asia/Thimbu\",\n \"usr/share/zoneinfo/Asia/Thimphu\",\n \"usr/share/zoneinfo/Asia/Tokyo\",\n \"usr/share/zoneinfo/Asia/Tomsk\",\n \"usr/share/zoneinfo/Asia/Ujung_Pandang\",\n \"usr/share/zoneinfo/Asia/Ulaanbaatar\",\n \"usr/share/zoneinfo/Asia/Ulan_Bator\",\n \"usr/share/zoneinfo/Asia/Urumqi\",\n \"usr/share/zoneinfo/Asia/Ust-Nera\",\n \"usr/share/zoneinfo/Asia/Vientiane\",\n \"usr/share/zoneinfo/Asia/Vladivostok\",\n \"usr/share/zoneinfo/Asia/Yakutsk\",\n \"usr/share/zoneinfo/Asia/Yangon\",\n \"usr/share/zoneinfo/Asia/Yekaterinburg\",\n \"usr/share/zoneinfo/Asia/Yerevan\",\n \"usr/share/zoneinfo/Atlantic/Azores\",\n \"usr/share/zoneinfo/Atlantic/Bermuda\",\n \"usr/share/zoneinfo/Atlantic/Canary\",\n \"usr/share/zoneinfo/Atlantic/Cape_Verde\",\n \"usr/share/zoneinfo/Atlantic/Faeroe\",\n \"usr/share/zoneinfo/Atlantic/Faroe\",\n \"usr/share/zoneinfo/Atlantic/Jan_Mayen\",\n \"usr/share/zoneinfo/Atlantic/Madeira\",\n \"usr/share/zoneinfo/Atlantic/Reykjavik\",\n \"usr/share/zoneinfo/Atlantic/South_Georgia\",\n \"usr/share/zoneinfo/Atlantic/St_Helena\",\n \"usr/share/zoneinfo/Atlantic/Stanley\",\n \"usr/share/zoneinfo/Australia/ACT\",\n \"usr/share/zoneinfo/Australia/Adelaide\",\n \"usr/share/zoneinfo/Australia/Brisbane\",\n \"usr/share/zoneinfo/Australia/Broken_Hill\",\n \"usr/share/zoneinfo/Australia/Canberra\",\n \"usr/share/zoneinfo/Australia/Currie\",\n \"usr/share/zoneinfo/Australia/Darwin\",\n \"usr/share/zoneinfo/Australia/Eucla\",\n \"usr/share/zoneinfo/Australia/Hobart\",\n \"usr/share/zoneinfo/Australia/LHI\",\n \"usr/share/zoneinfo/Australia/Lindeman\",\n \"usr/share/zoneinfo/Australia/Lord_Howe\",\n \"usr/share/zoneinfo/Australia/Melbourne\",\n \"usr/share/zoneinfo/Australia/NSW\",\n \"usr/share/zoneinfo/Australia/North\",\n \"usr/share/zoneinfo/Australia/Perth\",\n \"usr/share/zoneinfo/Australia/Queensland\",\n \"usr/share/zoneinfo/Australia/South\",\n \"usr/share/zoneinfo/Australia/Sydney\",\n \"usr/share/zoneinfo/Australia/Tasmania\",\n \"usr/share/zoneinfo/Australia/Victoria\",\n \"usr/share/zoneinfo/Australia/West\",\n \"usr/share/zoneinfo/Australia/Yancowinna\",\n \"usr/share/zoneinfo/Brazil/Acre\",\n \"usr/share/zoneinfo/Brazil/DeNoronha\",\n \"usr/share/zoneinfo/Brazil/East\",\n \"usr/share/zoneinfo/Brazil/West\",\n \"usr/share/zoneinfo/Canada/Atlantic\",\n \"usr/share/zoneinfo/Canada/Central\",\n \"usr/share/zoneinfo/Canada/Eastern\",\n \"usr/share/zoneinfo/Canada/Mountain\",\n \"usr/share/zoneinfo/Canada/Newfoundland\",\n \"usr/share/zoneinfo/Canada/Pacific\",\n \"usr/share/zoneinfo/Canada/Saskatchewan\",\n \"usr/share/zoneinfo/Canada/Yukon\",\n \"usr/share/zoneinfo/Chile/Continental\",\n \"usr/share/zoneinfo/Chile/EasterIsland\",\n \"usr/share/zoneinfo/Etc/GMT\",\n \"usr/share/zoneinfo/Etc/GMT+0\",\n \"usr/share/zoneinfo/Etc/GMT+1\",\n \"usr/share/zoneinfo/Etc/GMT+10\",\n \"usr/share/zoneinfo/Etc/GMT+11\",\n \"usr/share/zoneinfo/Etc/GMT+12\",\n \"usr/share/zoneinfo/Etc/GMT+2\",\n \"usr/share/zoneinfo/Etc/GMT+3\",\n \"usr/share/zoneinfo/Etc/GMT+4\",\n \"usr/share/zoneinfo/Etc/GMT+5\",\n \"usr/share/zoneinfo/Etc/GMT+6\",\n \"usr/share/zoneinfo/Etc/GMT+7\",\n \"usr/share/zoneinfo/Etc/GMT+8\",\n \"usr/share/zoneinfo/Etc/GMT+9\",\n \"usr/share/zoneinfo/Etc/GMT-0\",\n \"usr/share/zoneinfo/Etc/GMT-1\",\n \"usr/share/zoneinfo/Etc/GMT-10\",\n \"usr/share/zoneinfo/Etc/GMT-11\",\n \"usr/share/zoneinfo/Etc/GMT-12\",\n \"usr/share/zoneinfo/Etc/GMT-13\",\n \"usr/share/zoneinfo/Etc/GMT-14\",\n \"usr/share/zoneinfo/Etc/GMT-2\",\n \"usr/share/zoneinfo/Etc/GMT-3\",\n \"usr/share/zoneinfo/Etc/GMT-4\",\n \"usr/share/zoneinfo/Etc/GMT-5\",\n \"usr/share/zoneinfo/Etc/GMT-6\",\n \"usr/share/zoneinfo/Etc/GMT-7\",\n \"usr/share/zoneinfo/Etc/GMT-8\",\n \"usr/share/zoneinfo/Etc/GMT-9\",\n \"usr/share/zoneinfo/Etc/GMT0\",\n \"usr/share/zoneinfo/Etc/Greenwich\",\n \"usr/share/zoneinfo/Etc/UCT\",\n \"usr/share/zoneinfo/Etc/UTC\",\n \"usr/share/zoneinfo/Etc/Universal\",\n \"usr/share/zoneinfo/Etc/Zulu\",\n \"usr/share/zoneinfo/Europe/Amsterdam\",\n \"usr/share/zoneinfo/Europe/Andorra\",\n \"usr/share/zoneinfo/Europe/Astrakhan\",\n \"usr/share/zoneinfo/Europe/Athens\",\n \"usr/share/zoneinfo/Europe/Belfast\",\n \"usr/share/zoneinfo/Europe/Belgrade\",\n \"usr/share/zoneinfo/Europe/Berlin\",\n \"usr/share/zoneinfo/Europe/Bratislava\",\n \"usr/share/zoneinfo/Europe/Brussels\",\n \"usr/share/zoneinfo/Europe/Bucharest\",\n \"usr/share/zoneinfo/Europe/Budapest\",\n \"usr/share/zoneinfo/Europe/Busingen\",\n \"usr/share/zoneinfo/Europe/Chisinau\",\n \"usr/share/zoneinfo/Europe/Copenhagen\",\n \"usr/share/zoneinfo/Europe/Dublin\",\n \"usr/share/zoneinfo/Europe/Gibraltar\",\n \"usr/share/zoneinfo/Europe/Guernsey\",\n \"usr/share/zoneinfo/Europe/Helsinki\",\n \"usr/share/zoneinfo/Europe/Isle_of_Man\",\n \"usr/share/zoneinfo/Europe/Istanbul\",\n \"usr/share/zoneinfo/Europe/Jersey\",\n \"usr/share/zoneinfo/Europe/Kaliningrad\",\n \"usr/share/zoneinfo/Europe/Kiev\",\n \"usr/share/zoneinfo/Europe/Kirov\",\n \"usr/share/zoneinfo/Europe/Kyiv\",\n \"usr/share/zoneinfo/Europe/Lisbon\",\n \"usr/share/zoneinfo/Europe/Ljubljana\",\n \"usr/share/zoneinfo/Europe/London\",\n \"usr/share/zoneinfo/Europe/Luxembourg\",\n \"usr/share/zoneinfo/Europe/Madrid\",\n \"usr/share/zoneinfo/Europe/Malta\",\n \"usr/share/zoneinfo/Europe/Mariehamn\",\n \"usr/share/zoneinfo/Europe/Minsk\",\n \"usr/share/zoneinfo/Europe/Monaco\",\n \"usr/share/zoneinfo/Europe/Moscow\",\n \"usr/share/zoneinfo/Europe/Nicosia\",\n \"usr/share/zoneinfo/Europe/Oslo\",\n \"usr/share/zoneinfo/Europe/Paris\",\n \"usr/share/zoneinfo/Europe/Podgorica\",\n \"usr/share/zoneinfo/Europe/Prague\",\n \"usr/share/zoneinfo/Europe/Riga\",\n \"usr/share/zoneinfo/Europe/Rome\",\n \"usr/share/zoneinfo/Europe/Samara\",\n \"usr/share/zoneinfo/Europe/San_Marino\",\n \"usr/share/zoneinfo/Europe/Sarajevo\",\n \"usr/share/zoneinfo/Europe/Saratov\",\n \"usr/share/zoneinfo/Europe/Simferopol\",\n \"usr/share/zoneinfo/Europe/Skopje\",\n \"usr/share/zoneinfo/Europe/Sofia\",\n \"usr/share/zoneinfo/Europe/Stockholm\",\n \"usr/share/zoneinfo/Europe/Tallinn\",\n \"usr/share/zoneinfo/Europe/Tirane\",\n \"usr/share/zoneinfo/Europe/Tiraspol\",\n \"usr/share/zoneinfo/Europe/Ulyanovsk\",\n \"usr/share/zoneinfo/Europe/Uzhgorod\",\n \"usr/share/zoneinfo/Europe/Vaduz\",\n \"usr/share/zoneinfo/Europe/Vatican\",\n \"usr/share/zoneinfo/Europe/Vienna\",\n \"usr/share/zoneinfo/Europe/Vilnius\",\n \"usr/share/zoneinfo/Europe/Volgograd\",\n \"usr/share/zoneinfo/Europe/Warsaw\",\n \"usr/share/zoneinfo/Europe/Zagreb\",\n \"usr/share/zoneinfo/Europe/Zaporozhye\",\n \"usr/share/zoneinfo/Europe/Zurich\",\n \"usr/share/zoneinfo/Indian/Antananarivo\",\n \"usr/share/zoneinfo/Indian/Chagos\",\n \"usr/share/zoneinfo/Indian/Christmas\",\n \"usr/share/zoneinfo/Indian/Cocos\",\n \"usr/share/zoneinfo/Indian/Comoro\",\n \"usr/share/zoneinfo/Indian/Kerguelen\",\n \"usr/share/zoneinfo/Indian/Mahe\",\n \"usr/share/zoneinfo/Indian/Maldives\",\n \"usr/share/zoneinfo/Indian/Mauritius\",\n \"usr/share/zoneinfo/Indian/Mayotte\",\n \"usr/share/zoneinfo/Indian/Reunion\",\n \"usr/share/zoneinfo/Mexico/BajaNorte\",\n \"usr/share/zoneinfo/Mexico/BajaSur\",\n \"usr/share/zoneinfo/Mexico/General\",\n \"usr/share/zoneinfo/Pacific/Apia\",\n \"usr/share/zoneinfo/Pacific/Auckland\",\n \"usr/share/zoneinfo/Pacific/Bougainville\",\n \"usr/share/zoneinfo/Pacific/Chatham\",\n \"usr/share/zoneinfo/Pacific/Chuuk\",\n \"usr/share/zoneinfo/Pacific/Easter\",\n \"usr/share/zoneinfo/Pacific/Efate\",\n \"usr/share/zoneinfo/Pacific/Enderbury\",\n \"usr/share/zoneinfo/Pacific/Fakaofo\",\n \"usr/share/zoneinfo/Pacific/Fiji\",\n \"usr/share/zoneinfo/Pacific/Funafuti\",\n \"usr/share/zoneinfo/Pacific/Galapagos\",\n \"usr/share/zoneinfo/Pacific/Gambier\",\n \"usr/share/zoneinfo/Pacific/Guadalcanal\",\n \"usr/share/zoneinfo/Pacific/Guam\",\n \"usr/share/zoneinfo/Pacific/Honolulu\",\n \"usr/share/zoneinfo/Pacific/Johnston\",\n \"usr/share/zoneinfo/Pacific/Kanton\",\n \"usr/share/zoneinfo/Pacific/Kiritimati\",\n \"usr/share/zoneinfo/Pacific/Kosrae\",\n \"usr/share/zoneinfo/Pacific/Kwajalein\",\n \"usr/share/zoneinfo/Pacific/Majuro\",\n \"usr/share/zoneinfo/Pacific/Marquesas\",\n \"usr/share/zoneinfo/Pacific/Midway\",\n \"usr/share/zoneinfo/Pacific/Nauru\",\n \"usr/share/zoneinfo/Pacific/Niue\",\n \"usr/share/zoneinfo/Pacific/Norfolk\",\n \"usr/share/zoneinfo/Pacific/Noumea\",\n \"usr/share/zoneinfo/Pacific/Pago_Pago\",\n \"usr/share/zoneinfo/Pacific/Palau\",\n \"usr/share/zoneinfo/Pacific/Pitcairn\",\n \"usr/share/zoneinfo/Pacific/Pohnpei\",\n \"usr/share/zoneinfo/Pacific/Ponape\",\n \"usr/share/zoneinfo/Pacific/Port_Moresby\",\n \"usr/share/zoneinfo/Pacific/Rarotonga\",\n \"usr/share/zoneinfo/Pacific/Saipan\",\n \"usr/share/zoneinfo/Pacific/Samoa\",\n \"usr/share/zoneinfo/Pacific/Tahiti\",\n \"usr/share/zoneinfo/Pacific/Tarawa\",\n \"usr/share/zoneinfo/Pacific/Tongatapu\",\n \"usr/share/zoneinfo/Pacific/Truk\",\n \"usr/share/zoneinfo/Pacific/Wake\",\n \"usr/share/zoneinfo/Pacific/Wallis\",\n \"usr/share/zoneinfo/Pacific/Yap\",\n \"usr/share/zoneinfo/US/Alaska\",\n \"usr/share/zoneinfo/US/Aleutian\",\n \"usr/share/zoneinfo/US/Arizona\",\n \"usr/share/zoneinfo/US/Central\",\n \"usr/share/zoneinfo/US/East-Indiana\",\n \"usr/share/zoneinfo/US/Eastern\",\n \"usr/share/zoneinfo/US/Hawaii\",\n \"usr/share/zoneinfo/US/Indiana-Starke\",\n \"usr/share/zoneinfo/US/Michigan\",\n \"usr/share/zoneinfo/US/Mountain\",\n \"usr/share/zoneinfo/US/Pacific\",\n \"usr/share/zoneinfo/US/Samoa\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"xz-libs@5.8.3-r0\",\n \"Name\": \"xz-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1ae658a5f132a091\"\n },\n \"Version\": \"5.8.3-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"xz\",\n \"SrcVersion\": \"5.8.3-r0\",\n \"Licenses\": [\n \"GPL-2.0-or-later\",\n \"0BSD\",\n \"Public-Domain\",\n \"LGPL-2.1-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:4c92c5be0c5bef404e93c880eba9037a9b147347\",\n \"InstalledFiles\": [\n \"usr/lib/liblzma.so.5\",\n \"usr/lib/liblzma.so.5.8.3\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"zlib@1.3.2-r0\",\n \"Name\": \"zlib\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e37054a2982d6c16\"\n },\n \"Version\": \"1.3.2-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"zlib\",\n \"SrcVersion\": \"1.3.2-r0\",\n \"Licenses\": [\n \"Zlib\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:dd4c3d102acaef2a71a1495951d55fabc8680613\",\n \"InstalledFiles\": [\n \"usr/lib/libz.so.1\",\n \"usr/lib/libz.so.1.3.2\"\n ],\n \"AnalyzedBy\": \"apk\"\n }\n ],\n \"Vulnerabilities\": [\n {\n \"VulnerabilityID\": \"CVE-2026-85091\",\n \"PkgID\": \"zlib@1.3.2-r0\",\n \"PkgName\": \"zlib\",\n \"PkgIdentifier\": {\n \"PURL\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e37054a2982d6c16\"\n },\n \"InstalledVersion\": \"1.3.2-r0\",\n \"FixedVersion\": \"1.3.2-r1\",\n \"Status\": \"fixed\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"PrimaryURL\": \"https://avd.aquasec.com/nvd/cve-2026-85091\",\n \"DataSource\": {\n \"ID\": \"alpine\",\n \"Name\": \"Alpine Secdb\",\n \"URL\": \"https://secdb.alpinelinux.org/\"\n },\n \"Fingerprint\": \"sha256:d73c01b020c55acc174a3fde47c8af6f5638c58c7189c817edd6862029f6c5f5\",\n \"Title\": \"zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...\",\n \"Description\": \"zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.\",\n \"Severity\": \"MEDIUM\",\n \"CweIDs\": [\n \"CWE-787\"\n ],\n \"VendorSeverity\": {\n \"ubuntu\": 2\n },\n \"References\": [\n \"https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490\",\n \"https://github.com/madler/zlib\",\n \"https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393\",\n \"https://www.cve.org/CVERecord?id=CVE-2026-85091\",\n \"https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate\"\n ],\n \"PublishedDate\": \"2026-09-03T13:06:20.573Z\",\n \"LastModifiedDate\": \"2026-09-09T20:41:07.123Z\"\n }\n ]\n },\n {\n \"Target\": \"Python\",\n \"Class\": \"lang-pkgs\",\n \"Type\": \"python-pkg\",\n \"Packages\": [\n {\n \"Name\": \"PyJWT\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/pyjwt@2.15.1\",\n \"UID\": \"d3f5f9a421b8abc9\"\n },\n \"Version\": \"2.15.1\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"cffi\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/cffi@2.1.1\",\n \"UID\": \"21042e2f37e33c05\"\n },\n \"Version\": \"2.1.1\",\n \"Licenses\": [\n \"MIT-0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"cryptography\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/cryptography@50.0.1\",\n \"UID\": \"dcb3df6383fe2a60\"\n },\n \"Version\": \"50.0.1\",\n \"Licenses\": [\n \"Apache-2.0 OR BSD-3-Clause\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"informed-decision\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/informed-decision@0.2.0\",\n \"UID\": \"7989f2afae8ff568\"\n },\n \"Version\": \"0.2.0\",\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"pycparser\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/pycparser@3.0\",\n \"UID\": \"e5a4d03f15a695ff\"\n },\n \"Version\": \"3.0\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"waitress\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/waitress@3.0.2\",\n \"UID\": \"806e218e1c1e85f\"\n },\n \"Version\": \"3.0.2\",\n \"Licenses\": [\n \"ZPL-2.1\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n }\n ]\n }\n ]\n}\n" + }, + { + "item_id": "sbom-cdx-json", + "media_type": "application/json", + "content": "{\n \"$schema\": \"http://cyclonedx.org/schema/bom-1.7.schema.json\",\n \"bomFormat\": \"CycloneDX\",\n \"specVersion\": \"1.7\",\n \"serialNumber\": \"urn:uuid:3eaaa94b-5129-41f3-82f2-f8f58ac5239a\",\n \"version\": 1,\n \"metadata\": {\n \"timestamp\": \"2026-10-11T01:22:33+00:00\",\n \"tools\": {\n \"components\": [\n {\n \"type\": \"application\",\n \"manufacturer\": {\n \"name\": \"Aqua Security Software Ltd.\"\n },\n \"group\": \"aquasecurity\",\n \"name\": \"trivy\",\n \"version\": \"0.74.0\"\n }\n ]\n },\n \"component\": {\n \"bom-ref\": \"pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision\",\n \"type\": \"container\",\n \"name\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"purl\": \"pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:DiffID\",\n \"value\": \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\"\n },\n {\n \"name\": \"aquasecurity:trivy:ImageID\",\n \"value\": \"sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779\"\n },\n {\n \"name\": \"aquasecurity:trivy:Labels:org.opencontainers.image.base.digest\",\n \"value\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\"\n },\n {\n \"name\": \"aquasecurity:trivy:Labels:org.opencontainers.image.revision\",\n \"value\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\"\n },\n {\n \"name\": \"aquasecurity:trivy:Labels:social.coulomb.release.scope\",\n \"value\": \"INFD-WP-0009-T04/purpose-overlay-v1\"\n },\n {\n \"name\": \"aquasecurity:trivy:Labels:social.coulomb.source.policy.sha256\",\n \"value\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\"\n },\n {\n \"name\": \"aquasecurity:trivy:Reference\",\n \"value\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\"\n },\n {\n \"name\": \"aquasecurity:trivy:RepoDigest\",\n \"value\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\"\n },\n {\n \"name\": \"aquasecurity:trivy:SchemaVersion\",\n \"value\": \"2\"\n },\n {\n \"name\": \"aquasecurity:trivy:Size\",\n \"value\": \"88258048\"\n }\n ]\n }\n },\n \"components\": [\n {\n \"bom-ref\": \"5b71299e-3c0c-4c4f-bd29-865fb14e1758\",\n \"type\": \"operating-system\",\n \"name\": \"alpine\",\n \"version\": \"3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:Class\",\n \"value\": \"os-pkgs\"\n },\n {\n \"name\": \"aquasecurity:trivy:Type\",\n \"value\": \"alpine\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1\",\n \"type\": \"library\",\n \"name\": \".python-rundeps\",\n \"version\": \"20260901.001029\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"51d0c1e7d88a414345799f0309185c625013ef32\"\n }\n ],\n \"purl\": \"pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \".python-rundeps@20260901.001029\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"alpine-baselayout-data\",\n \"version\": \"3.7.2-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"alpine-baselayout-data@3.7.2-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"alpine-baselayout\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.7.2-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"alpine-baselayout\",\n \"version\": \"3.7.2-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"f0fcfdc2f4da058af6473bc45c4eab62916225b2\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"alpine-baselayout@3.7.2-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"alpine-baselayout\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.7.2-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"alpine-keys\",\n \"version\": \"2.6-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"d8d6b80e53c059a77e4915da78ba964f3ffea240\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"alpine-keys@2.6-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"alpine-keys\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"2.6-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"alpine-release\",\n \"version\": \"3.24.1-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"bc6912a25cdc7733e0035ed509eceaa4026946e3\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"alpine-release@3.24.1-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"alpine-base\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.24.1-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"apk-tools\",\n \"version\": \"3.0.6-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"043333589798a1f52e09ae63f026c6c8fa676d34\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"apk-tools@3.0.6-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"apk-tools\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.0.6-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"S\u00f6ren Tempel \"\n },\n \"name\": \"busybox-binsh\",\n \"version\": \"1.37.0-r31\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"busybox-binsh@1.37.0-r31\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"busybox\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.37.0-r31\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"S\u00f6ren Tempel \"\n },\n \"name\": \"busybox\",\n \"version\": \"1.37.0-r31\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"b5405ebc02f7dd8be95b6265c54b243d5456ab8f\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"busybox@1.37.0-r31\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"busybox\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.37.0-r31\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"ca-certificates-bundle\",\n \"version\": \"20260611-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"c9534a03750bdfae341f10969016090fc11febbd\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MPL-2.0\"\n }\n },\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"ca-certificates-bundle@20260611-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"ca-certificates\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"20260611-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"ca-certificates\",\n \"version\": \"20260611-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"8f2a04abeb54b331e2970a0a0dffb7bd6bdde567\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MPL-2.0\"\n }\n },\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"ca-certificates@20260611-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"ca-certificates\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"20260611-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"gdbm\",\n \"version\": \"1.26-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"619493d8124fe49a8ee1d8f7a1372cf7e3977337\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-3.0-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"gdbm@1.26-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"gdbm\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.26-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"keyutils-libs\",\n \"version\": \"1.6.3-r4\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"b7331c96f077fc3522ee4361a441d1097204cd90\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-or-later\"\n }\n },\n {\n \"license\": {\n \"id\": \"LGPL-2.0-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"keyutils-libs@1.6.3-r4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"keyutils\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.6.3-r4\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"krb5-conf\",\n \"version\": \"1.0-r2\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"40a11e0690a59e110367b62a80661024e9942a2d\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"krb5-conf@1.0-r2\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"krb5-conf\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.0-r2\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"krb5-libs\",\n \"version\": \"1.22.2-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"ef02346e21b817ff379e4601e5b1fc9760e5e31a\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"krb5-libs@1.22.2-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"krb5\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.22.2-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libapk\",\n \"version\": \"3.0.6-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"523a8f58104589f74f743d501c81bf6517155378\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libapk@3.0.6-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"apk-tools\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.0.6-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libbz2\",\n \"version\": \"1.0.8-r6\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"08566ba5c7af97c25474be8b24e8b48f0116b67d\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"name\": \"bzip-2-1.0.6\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libbz2@1.0.8-r6\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"bzip2\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.0.8-r6\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libcom_err\",\n \"version\": \"1.47.4-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-or-later\"\n }\n },\n {\n \"license\": {\n \"id\": \"LGPL-2.0-or-later\"\n }\n },\n {\n \"license\": {\n \"id\": \"BSD-3-Clause\"\n }\n },\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libcom_err@1.47.4-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"e2fsprogs\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.47.4-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libcrypto3\",\n \"version\": \"3.5.8-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"Apache-2.0\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libcrypto3@3.5.8-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"openssl\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.5.8-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libffi\",\n \"version\": \"3.5.2-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libffi@3.5.2-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"libffi\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.5.2-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Carlo Landmeter \"\n },\n \"name\": \"libintl\",\n \"version\": \"1.0-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"282d6642ccac87237e43a864159d73cf5abe7550\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"LGPL-2.1-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libintl@1.0-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"gettext\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.0-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Milan P. Stani\u0107 \"\n },\n \"name\": \"libncursesw\",\n \"version\": \"6.6_p20260516-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"9f318e6e324d6827274829194cf6ac6afbaded12\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"name\": \"X-11\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libncursesw@6.6_p20260516-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"ncurses\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"6.6_p20260516-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"name\": \"libnsl\",\n \"version\": \"2.0.1-r2\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"5194adbf26560b52be318481a7af294ab05fd795\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"LGPL-2.0-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libnsl@2.0.1-r2\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"libnsl\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"2.0.1-r2\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Milan P. Stani\u0107 \"\n },\n \"name\": \"libpanelw\",\n \"version\": \"6.6_p20260516-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"149bdc434232ed11fc5bb975ba519a07154a6f56\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"name\": \"X-11\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libpanelw@6.6_p20260516-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"ncurses\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"6.6_p20260516-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libssl3\",\n \"version\": \"3.5.8-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"5f9b1e55d821953d2e2b1db322dad70a3b5041ea\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"Apache-2.0\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libssl3@3.5.8-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"openssl\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.5.8-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libtirpc-conf\",\n \"version\": \"1.3.5-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"0c17d9988dc986c90e22f79778df047eca9973ff\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"BSD-3-Clause\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libtirpc-conf@1.3.5-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"libtirpc\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.3.5-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libtirpc\",\n \"version\": \"1.3.5-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"c32865bd86a8b8829d152279cabbc5ac6d430eb2\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"BSD-3-Clause\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libtirpc@1.3.5-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"libtirpc\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.3.5-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"libuuid\",\n \"version\": \"2.42.3-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"8f041ef637ad75f381cc0c034f2afbbb0303264e\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"BSD-3-Clause\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libuuid@2.42.3-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"util-linux\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"2.42.3-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Francesco Colista \"\n },\n \"name\": \"libverto\",\n \"version\": \"0.3.2-r2\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"73233059338142e4ac6d8fb8bb0074e93da75dc1\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"libverto@0.3.2-r2\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"libverto\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"0.3.2-r2\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"musl-utils\",\n \"version\": \"1.2.6-r2\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"75ada3c48d63ec5d87c42fdf934a3fdd11298dc5\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n },\n {\n \"license\": {\n \"id\": \"BSD-2-Clause\"\n }\n },\n {\n \"license\": {\n \"id\": \"GPL-2.0-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"musl-utils@1.2.6-r2\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"musl\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.2.6-r2\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"musl\",\n \"version\": \"1.2.6-r2\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"0f7e5827e4e1a73631beda27b78431a8ba240e05\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"musl@1.2.6-r2\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"musl\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.2.6-r2\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Milan P. Stani\u0107 \"\n },\n \"name\": \"ncurses-terminfo-base\",\n \"version\": \"6.6_p20260516-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"9d551d828e9c8ee52c5801c1d6046828ebf15752\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"name\": \"X-11\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"ncurses-terminfo-base@6.6_p20260516-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"ncurses\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"6.6_p20260516-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"qaqland \"\n },\n \"name\": \"readline\",\n \"version\": \"8.3.3-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"945b16e378bc00e44d89d4de8124bba7647fdf4d\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-3.0-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"readline@8.3.3-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"readline\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"8.3.3-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"scanelf\",\n \"version\": \"1.3.9-r1\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"013f903d0ba219673aebbdd04f74bb5ed82b01f0\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"scanelf@1.3.9-r1\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"pax-utils\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.3.9-r1\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Jingyun Hua \"\n },\n \"name\": \"sqlite-libs\",\n \"version\": \"3.53.4-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"f7630ceb37c232b6609861aeab6cdb9cd120e6fa\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"blessing\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"sqlite-libs@3.53.4-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"sqlite\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"3.53.4-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"S\u00f6ren Tempel \"\n },\n \"name\": \"ssl_client\",\n \"version\": \"1.37.0-r31\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"c220f4a5125a313af733e98def94132bb1e9d40d\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-only\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"ssl_client@1.37.0-r31\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"busybox\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.37.0-r31\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"tzdata\",\n \"version\": \"2026c-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"61f7544ecd8dd63eac23fe3e645702fda92ef02a\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"name\": \"Public-Domain\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"tzdata@2026c-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"tzdata\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"2026c-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"xz-libs\",\n \"version\": \"5.8.3-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"4c92c5be0c5bef404e93c880eba9037a9b147347\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"GPL-2.0-or-later\"\n }\n },\n {\n \"license\": {\n \"id\": \"0BSD\"\n }\n },\n {\n \"license\": {\n \"name\": \"Public-Domain\"\n }\n },\n {\n \"license\": {\n \"id\": \"LGPL-2.1-or-later\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"xz-libs@5.8.3-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"xz\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"5.8.3-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\",\n \"type\": \"library\",\n \"supplier\": {\n \"name\": \"Natanael Copa \"\n },\n \"name\": \"zlib\",\n \"version\": \"1.3.2-r0\",\n \"hashes\": [\n {\n \"alg\": \"SHA-1\",\n \"content\": \"dd4c3d102acaef2a71a1495951d55fabc8680613\"\n }\n ],\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"Zlib\"\n }\n }\n ],\n \"purl\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgID\",\n \"value\": \"zlib@1.3.2-r0\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"alpine\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcName\",\n \"value\": \"zlib\"\n },\n {\n \"name\": \"aquasecurity:trivy:SrcVersion\",\n \"value\": \"1.3.2-r0\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:pypi/cffi@2.1.1\",\n \"type\": \"library\",\n \"name\": \"cffi\",\n \"version\": \"2.1.1\",\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT-0\"\n }\n }\n ],\n \"purl\": \"pkg:pypi/cffi@2.1.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:FilePath\",\n \"value\": \"opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"python-pkg\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:pypi/cryptography@50.0.1\",\n \"type\": \"library\",\n \"name\": \"cryptography\",\n \"version\": \"50.0.1\",\n \"licenses\": [\n {\n \"expression\": \"Apache-2.0 OR BSD-3-Clause\"\n }\n ],\n \"purl\": \"pkg:pypi/cryptography@50.0.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:FilePath\",\n \"value\": \"opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"python-pkg\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:pypi/informed-decision@0.2.0\",\n \"type\": \"library\",\n \"name\": \"informed-decision\",\n \"version\": \"0.2.0\",\n \"purl\": \"pkg:pypi/informed-decision@0.2.0\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:FilePath\",\n \"value\": \"opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"python-pkg\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:pypi/pycparser@3.0\",\n \"type\": \"library\",\n \"name\": \"pycparser\",\n \"version\": \"3.0\",\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"BSD-3-Clause\"\n }\n }\n ],\n \"purl\": \"pkg:pypi/pycparser@3.0\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:FilePath\",\n \"value\": \"opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"python-pkg\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:pypi/pyjwt@2.15.1\",\n \"type\": \"library\",\n \"name\": \"PyJWT\",\n \"version\": \"2.15.1\",\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"MIT\"\n }\n }\n ],\n \"purl\": \"pkg:pypi/pyjwt@2.15.1\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:FilePath\",\n \"value\": \"opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"python-pkg\"\n }\n ]\n },\n {\n \"bom-ref\": \"pkg:pypi/waitress@3.0.2\",\n \"type\": \"library\",\n \"name\": \"waitress\",\n \"version\": \"3.0.2\",\n \"licenses\": [\n {\n \"license\": {\n \"id\": \"ZPL-2.1\"\n }\n }\n ],\n \"purl\": \"pkg:pypi/waitress@3.0.2\",\n \"properties\": [\n {\n \"name\": \"aquasecurity:trivy:FilePath\",\n \"value\": \"opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDiffID\",\n \"value\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"name\": \"aquasecurity:trivy:LayerDigest\",\n \"value\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\"\n },\n {\n \"name\": \"aquasecurity:trivy:PkgType\",\n \"value\": \"python-pkg\"\n }\n ]\n }\n ],\n \"dependencies\": [\n {\n \"ref\": \"5b71299e-3c0c-4c4f-bd29-865fb14e1758\",\n \"dependsOn\": [\n \"pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1\",\n \"pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1\",\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\",\n \"dependsOn\": [\n \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1\"\n ]\n },\n {\n \"ref\": \"pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision\",\n \"dependsOn\": [\n \"5b71299e-3c0c-4c4f-bd29-865fb14e1758\",\n \"pkg:pypi/cffi@2.1.1\",\n \"pkg:pypi/cryptography@50.0.1\",\n \"pkg:pypi/informed-decision@0.2.0\",\n \"pkg:pypi/pycparser@3.0\",\n \"pkg:pypi/pyjwt@2.15.1\",\n \"pkg:pypi/waitress@3.0.2\"\n ]\n },\n {\n \"ref\": \"pkg:pypi/cffi@2.1.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:pypi/cryptography@50.0.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:pypi/informed-decision@0.2.0\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:pypi/pycparser@3.0\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:pypi/pyjwt@2.15.1\",\n \"dependsOn\": []\n },\n {\n \"ref\": \"pkg:pypi/waitress@3.0.2\",\n \"dependsOn\": []\n }\n ],\n \"vulnerabilities\": [\n {\n \"id\": \"CVE-2026-85091\",\n \"source\": {\n \"name\": \"alpine\",\n \"url\": \"https://secdb.alpinelinux.org/\"\n },\n \"ratings\": [\n {\n \"source\": {\n \"name\": \"ubuntu\"\n },\n \"severity\": \"medium\"\n }\n ],\n \"cwes\": [\n 787\n ],\n \"description\": \"zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.\",\n \"recommendation\": \"Upgrade zlib to version 1.3.2-r1\",\n \"advisories\": [\n {\n \"url\": \"https://avd.aquasec.com/nvd/cve-2026-85091\"\n },\n {\n \"url\": \"https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490\"\n },\n {\n \"url\": \"https://github.com/madler/zlib\"\n },\n {\n \"url\": \"https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393\"\n },\n {\n \"url\": \"https://www.cve.org/CVERecord?id=CVE-2026-85091\"\n },\n {\n \"url\": \"https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate\"\n }\n ],\n \"published\": \"2026-09-03T13:06:20+00:00\",\n \"updated\": \"2026-09-09T20:41:07+00:00\",\n \"affects\": [\n {\n \"ref\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1\",\n \"versions\": [\n {\n \"version\": \"1.3.2-r0\",\n \"status\": \"affected\"\n }\n ]\n }\n ]\n }\n ]\n}\n" + }, + { + "item_id": "check-installed-py", + "media_type": "text/plain", + "content": "import copy,json,time\nfrom datetime import datetime,timezone\nfrom informed_decision.policy import PolicyClient,CONTRACT,submitted_digest\npin='sha256:'+'b'*64\nreq={'id':'image-purpose-fixture','tenant':'tenant:platform','subject':{'id':'synthetic','type':'service','tenant':'tenant:platform'},'resource':{'id':'memo:fixture','type':'memo','system':'informed-decision','tenant':'tenant:platform'},'action':'register','context':{}}\nclass Transport:\n def request(self,*args,**kwargs):\n now=time.time(); stamp=lambda t:datetime.fromtimestamp(t,timezone.utc).isoformat()\n b={**copy.deepcopy({k:req[k] for k in ('tenant','subject','action','resource','context')}),'request_digest':'sha256:'+'e'*64,'submitted_request_digest':submitted_digest(req)}\n if self.purpose!='ABSENT':b['purpose']=self.purpose\n d={'id':'synthetic-decision','contract_version':CONTRACT,'request_id':req['id'],'effect':'allow','matched_policy_version':'v1','subject':req['subject'],'resource':req['resource'],'binding':b,'lifetime':{'kind':'ttl','not_before':stamp(now-1),'expires_at':stamp(now+60)},'provenance':{'policy_package':'fixture','policy_version':'v1','policy_package_digest':pin,'registry_snapshot_digest':'sha256:'+'c'*64,'evaluator':'flex-auth/fixture','decision_time':stamp(now)}}\n return 200,d\nchecks=[]\nfor purpose in ('ABSENT','','readback','enforcement','unknown',None,False,0,[],{}):\n t=Transport();t.purpose=purpose\n c=PolicyClient('https://fixture.invalid',lambda:'synthetic-only',package='fixture',version='v1',package_digest=pin,transport=t)\n o=c.check(req)\n if purpose in ('ABSENT',''):assert o.outcome=='allow';o.require_current(time.time())\n else:assert o.outcome=='invalid_decision' and o.decision_json is None\n checks.append(str(purpose))\nprint(json.dumps({'installed_image_purpose_variants':len(checks),'binding_forms_allowed':2,'advisory_or_malformed_refused':8,'synthetic_only':True,'native_provider':False}))\n" + }, + { + "item_id": "native-backup-restore-protocol-md", + "media_type": "text/markdown", + "content": "# Protected native backup/restore and image-only release protocol\n\nPrepared protocol for `INFD-WP-0009-T04/purpose-overlay-v1`. No actual native backup, data export, restore, workload change or approval is recorded here. Candidate registry image identity remains a prerequisite; only after actual artifact proof may the founder approve one exact conditional protocol/rollout packet. The config-only7db8485 approval is outside this scope.\n\n## Preconditions and protected custody\n\nFreeze exact candidate and prior7f5c6cb image digests, source/installed policy hashes, current manually managed Argo Application/revision, runtime ConfigMap6c221878d051, Deployment UID/template/spec, schema5, policy package pins, database path `/data/private/review.sqlite`, PVC binding, replicas1/Recreate and stable keys for intended verification. Confirm no concurrent writer or custody change. Use fixed metadata; never fetch Secret objects or token values. A changed image/config/schema/owner invalidates the packet. Fresh resources/headroom and exact source/native server-dry-run/diff remain required.\n\nBackups are private evidence containing real decision records, not logs or packet attachments. Allocate a unique backup directory under existing protected PVC custody, owned10001, mode0700, snapshot file0600, no symlink/hardlink/reused output path. An off-cluster copy belongs only in the already established ignored `.private-backups/` custody with0700/0600 permissions; no Git, StateHub, public object store or terminal-content dump. Record only schema, integrity pass/fail, bounded table/state counts and protected receipt identifier; retain byte digests in protected custody if needed for internal copy identity. No credential, record payload or token fingerprint enters public evidence.\n\n## Approved online compatibility drill\n\nWithin the explicit founder-approved action, run the existing base image's `informed-decision-admin backup --db /data/private/review.sqlite --output ` in the actual serving workload. This uses SQLite's backup API for a transactionally consistent snapshot; copying a live main database while ignoring WAL is prohibited. Suppress raw failures/output and retain only sanitized status. Observe schema/integrity and count-only metadata from the resulting snapshot, not record content.\n\nTransfer that consistent snapshot only into protected off-cluster custody through the existing authorized operator lane. The copy is real production data even in build mode. Verify private permissions, unique identity and protected internal digest agreement. Do not export mounted workload credentials or directory trees; copy only the exact snapshot.\n\nCreate a separate private disposable restore volume/directory; retain the original snapshot unchanged. Run the exact published candidate with network disabled, no production ConfigMap/token mounts, read-only image and only that isolated volume writable. Override the service entrypoint with the owner's count-only administrative inspection/integrity check; do not start HTTP listeners, audit delivery, requester exchanges or approval operations. The current candidate changes policy.py only and retains the schema/store module bytes; still prove schema5, SQLite integrity and exact bounded counts before/after opening the restored copy. Refuse any migration/downgrade, lost/changed counts, unexpected write class or unknown outcome. Keep pending/uncertain submission and outbox states; never replay, discard or mark them delivered to green the drill. Cleanup only the disposable copy/volume after verified receipt; retain the original protected backup for the approved recovery interval.\n\nThis step is actual native-data compatibility evidence once performed. Its previous synthetic fixture checks remain mechanism evidence and cannot be renamed native success. A failed drill stops rollout and remains a failed/unverified outcome in the same trial.\n\n## Fresh cutover snapshot and single-writer rollout\n\nAfter successful actual-data compatibility checks, create another unique SQLite-consistent online snapshot immediately before the image cutover, retaining its point-in-time schema/integrity/count receipt. This is an online transactional snapshot, not a claim that dispatchers or human writes were quiesced. Every later committed record remains in the live database; same-schema rollback retains that database and never restores the earlier snapshot over it. The narrow image-only update does not need dispatcher/configuration/PVC/temporary-pod changes or a schema cutover. If fresh verification shows a migration or any data-restoration requirement, stop and refine the proposal rather than applying this protocol.\n\nThe existing Recreate rollout drains/stops the single old writer before starting the new image on the same PVC; the inherited single-writer lock independently refuses concurrent serving processes. Do not add an admin pod, scale-to-zero, dispatcher stop, network-policy rewrite or snapshot overwrite as an improvised image-only step. The existing owner admin backup operation runs inside the admitted serving workload, and its separate protected restore drill runs off-cluster with network disabled and no workload credentials. Those exact custody operations must be enumerated in the founder packet alongside the one Deployment image change.\n\nOnce backup/compatibility/preflight gates pass, manually pin the existing Argo Application to the exact reviewed source revision and sync only Deployment/informed-decision with prune false, keeping the current immutable runtime ConfigMap and all other resources. The source patch changes only the image in admission/rendered Deployment; no Secret, PVC, policy, database or dispatcher change is included unless separately enumerated in the final proposal. Observe five-minute readiness and exact image/config/schema/pins. Verify native lifecycle binding using stable keys and an isolated installed-client probe based on a real provider response contaminated with advisory purpose; prove refusal before any write. Do not contaminate the live PDP, create human approvals, read credentials through CLI, or replay unknown external outcomes for testing.\n\n## Same-schema rollback and evidence retention\n\nOn startup/readiness/binding/refusal failure, retain current database, cutover backup and every post-cutover evidence/uncertain outcome. Restore only the prior7f5c6cb image through the same manual Argo owner path, retaining schema5 and current DB/configuration; never restore an old snapshot over current live evidence just to roll the image back. Verify old image/Ready1, same schema/counts and prior behavior, and reconcile any external effects using existing lifecycle/audit ownership. The narrow overlay's identical store/schema/dependency bytes permit this image-only rollback; it is not permission for a schema downgrade or data loss.\n\nRecord original/approved/executed source and image revisions, backup/drill/cutover/rollout timestamps, exact disposition and sanitized outcomes in the existing supervised trial receipt. EUR0 incremental infrastructure estimate uses existing service/storage/operator lane; protected temporary copy/storage consumption and15\u201330minute recovery time remain operational costs. No EUR incident-loss cap or autonomy grant is inferred. TaskT04 cannot close until actual published image, approved native compatibility and release plus post-release refusal/binding evidence all exist.\n\n## Exact release case identifiers\n\nProposal `INFD-WP-0009-T04/purpose-overlay-v1`, trial `infd-purpose-20261011-r1`.\nProtected native parent `/data/private/purpose-overlay-r1` must be unique/non-symlink, owned10001 and0700. The drill snapshot is `drill.sqlite`, the refreshed pre-cutover snapshot `cutover.sqlite`, each new0600 file; refuse any existing output. Off-cluster custody is the existing ignored Custodian `.private-backups/20261011-infd-purpose-r1` parent0700, files0600; no snapshot is an evidence attachment. Check owner UID, no symlinks, ignored status and free capacity for both native snapshots plus independently protected copies before making any snapshot.\n\nThe disposable offline restore volume is `infd-purpose-r1-restore-20261011`; refuse an existing volume, copy only the selected frozen snapshot, and run exact published candidate763c with networknone/read-only image,128MiB/core1 and no runtime config/token mounts. SQLite `PRAGMA integrity_check` must return `ok`, `PRAGMA user_version`/Store inspection must agree with actual schema5 semantics, and installed admin count-only inspection must match the frozen snapshot. Validate the actual schema representation rather than assume PRAGMA user_version is the schema authority. No synthetic restoration is reported as native restoration. Native original/off-cluster copies remain retained; only the disposable restore copy/volume may be removed under the exact approved cleanup scope.\n" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "media_type": "application/json", + "content": "{\n \"id\": \"INFD-RISK-20261011-ZLIB-85091\",\n \"kind\": \"owner-vulnerability-follow-through\",\n \"owner\": \"informed-decision\",\n \"task\": \"INFD-WP-0009-T05\",\n \"status\": \"open\",\n \"created\": \"2026-10-11\",\n \"review_due\": \"2026-10-18\",\n \"finding\": \"CVE-2026-85091\",\n \"scanner_severity\": \"MEDIUM\",\n \"estate_risk_grade\": null,\n \"affected_package\": \"zlib\",\n \"installed\": \"1.3.2-r0\",\n \"fixed\": \"1.3.2-r1\",\n \"actual_current_base_and_candidate_findings_identical\": true,\n \"source_evidence\": \"security-summary.json, trivy-full.json, base-trivy-full.json\",\n \"human_temporary_disposition\": \"pending\",\n \"follow_through\": \"Prepare a separately source-bound official-base/dependency refresh through normal owner CI, verify full scan and runtime compatibility, obtain distinct native release approval before updating this workload\",\n \"manual_review_expiry\": \"Due date requires owner review/escalation if unresolved; no automatic rollback/controller is installed\",\n \"close_condition\": \"Verified installed native fixed package and full unfiltered rescan; preserve original detection and any human disposition\"\n}\n" + }, + { + "item_id": "native-preflight-json", + "media_type": "application/json", + "content": "{\n \"captured_at\": \"2026-10-11T01:25:38.793555+00:00\",\n \"native_workload_changed\": false,\n \"native_backup_restore_executed\": false,\n \"argo\": {\n \"uid\": \"499868f2-eabc-4df4-ae31-b89ce58d750d\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"path\": \"deploy/lifecycle\",\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"automated\": false,\n \"sync\": {\n \"comparedTo\": {\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"source\": {\n \"path\": \"deploy/lifecycle\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\"\n }\n },\n \"revision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"status\": \"OutOfSync\"\n },\n \"health\": {\n \"lastTransitionTime\": \"2026-10-10T23:14:52Z\",\n \"status\": \"Healthy\"\n }\n },\n \"live_ready_replicas\": 1,\n \"admitted_uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\",\n \"server_dry_run_passed\": true,\n \"admitted_spec_exactly_live_plus_image\": true,\n \"client_diff_exit\": 1,\n \"client_diff_sha256\": \"a4bc024a8cec658f835285ed51964e2e084edbaf103d45a48b89c0950bcd3e7d\",\n \"node_allocated_resources\": \"(Total limits may be over 100 percent, i.e., overcommitted.)\\n Resource Requests Limits\\n -------- -------- ------\\n cpu 3460m (86%) 36200m (905%)\\n memory 9472Mi (59%) 32898Mi (205%)\\n ephemeral-storage 0 (0%) 0 (0%)\\n hugepages-1Gi 0 (0%) 0 (0%)\\n hugepages-2Mi 0 (0%) 0 (0%)\",\n \"all_checks_pass\": true\n}\n" + }, + { + "item_id": "sealed-live-deployment-json", + "media_type": "application/json", + "content": "{\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"metadata\": {\n \"annotations\": {\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:apps/Deployment:informed-decision/informed-decision\",\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"name\": \"informed-decision\",\n \"namespace\": \"informed-decision\",\n \"uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\"\n },\n \"spec\": {\n \"progressDeadlineSeconds\": 600,\n \"replicas\": 1,\n \"revisionHistoryLimit\": 10,\n \"selector\": {\n \"matchLabels\": {\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"strategy\": {\n \"type\": \"Recreate\"\n },\n \"template\": {\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"labels\": {\n \"app.kubernetes.io/component\": \"review\",\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"spec\": {\n \"automountServiceAccountToken\": false,\n \"containers\": [\n {\n \"env\": [\n {\n \"name\": \"INFD_KEYCAPE_ISSUER\",\n \"value\": \"https://kc.coulomb.social\"\n },\n {\n \"name\": \"INFD_CONTAINER_CONFIG\",\n \"value\": \"/configuration/runtime.json\"\n }\n ],\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"imagePullPolicy\": \"IfNotPresent\",\n \"livenessProbe\": {\n \"failureThreshold\": 3,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\",\n \"scheme\": \"HTTP\"\n },\n \"periodSeconds\": 10,\n \"successThreshold\": 1,\n \"timeoutSeconds\": 2\n },\n \"name\": \"informed-decision\",\n \"ports\": [\n {\n \"containerPort\": 8080,\n \"name\": \"http\",\n \"protocol\": \"TCP\"\n },\n {\n \"containerPort\": 8081,\n \"name\": \"workload\",\n \"protocol\": \"TCP\"\n }\n ],\n \"readinessProbe\": {\n \"failureThreshold\": 3,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\",\n \"scheme\": \"HTTP\"\n },\n \"periodSeconds\": 10,\n \"successThreshold\": 1,\n \"timeoutSeconds\": 2\n },\n \"resources\": {\n \"limits\": {\n \"cpu\": \"500m\",\n \"memory\": \"256Mi\"\n },\n \"requests\": {\n \"cpu\": \"5m\",\n \"memory\": \"64Mi\"\n }\n },\n \"securityContext\": {\n \"allowPrivilegeEscalation\": false,\n \"capabilities\": {\n \"drop\": [\n \"ALL\"\n ]\n },\n \"readOnlyRootFilesystem\": true\n },\n \"startupProbe\": {\n \"failureThreshold\": 12,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\",\n \"scheme\": \"HTTP\"\n },\n \"periodSeconds\": 10,\n \"successThreshold\": 1,\n \"timeoutSeconds\": 2\n },\n \"terminationMessagePath\": \"/dev/termination-log\",\n \"terminationMessagePolicy\": \"File\",\n \"volumeMounts\": [\n {\n \"mountPath\": \"/data\",\n \"name\": \"data\"\n },\n {\n \"mountPath\": \"/run/informed-decision\",\n \"name\": \"runtime\"\n },\n {\n \"mountPath\": \"/tmp\",\n \"name\": \"tmp\"\n },\n {\n \"mountPath\": \"/configuration\",\n \"name\": \"configuration\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/policy\",\n \"name\": \"caller\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/audit\",\n \"name\": \"audit\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/kubernetes\",\n \"name\": \"kubernetes-api\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/workload-registry\",\n \"name\": \"workload-registry\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/requester\",\n \"name\": \"sitting-requester\",\n \"readOnly\": true\n }\n ]\n }\n ],\n \"dnsPolicy\": \"ClusterFirst\",\n \"restartPolicy\": \"Always\",\n \"schedulerName\": \"default-scheduler\",\n \"securityContext\": {\n \"fsGroup\": 10001,\n \"fsGroupChangePolicy\": \"OnRootMismatch\",\n \"runAsGroup\": 10001,\n \"runAsNonRoot\": true,\n \"runAsUser\": 10001,\n \"seccompProfile\": {\n \"type\": \"RuntimeDefault\"\n }\n },\n \"serviceAccount\": \"review\",\n \"serviceAccountName\": \"review\",\n \"terminationGracePeriodSeconds\": 45,\n \"volumes\": [\n {\n \"name\": \"data\",\n \"persistentVolumeClaim\": {\n \"claimName\": \"informed-decision-data\"\n }\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"runtime\"\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"tmp\"\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-runtime-6c221878d051\"\n },\n \"name\": \"configuration\"\n },\n {\n \"name\": \"caller\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"audience\": \"flex-auth\",\n \"expirationSeconds\": 3600,\n \"path\": \"token\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"audit\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"token\",\n \"path\": \"token\"\n }\n ],\n \"secretName\": \"informed-decision-audit\"\n }\n },\n {\n \"name\": \"kubernetes-api\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"expirationSeconds\": 600,\n \"path\": \"token\"\n }\n },\n {\n \"configMap\": {\n \"items\": [\n {\n \"key\": \"ca.crt\",\n \"path\": \"ca.crt\"\n }\n ],\n \"name\": \"kube-root-ca.crt\"\n }\n }\n ]\n }\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-workload-registry\"\n },\n \"name\": \"workload-registry\"\n },\n {\n \"name\": \"sitting-requester\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"client-secret\",\n \"path\": \"client-secret\"\n }\n ],\n \"optional\": false,\n \"secretName\": \"informed-decision-sitting-requester\"\n }\n }\n ]\n }\n }\n }\n}\n" + }, + { + "item_id": "change-guard-py", + "media_type": "text/plain", + "content": "\"\"\"Read-only exact Deployment and admission boundaries; no mutation authority.\"\"\"\nimport copy\n\nBASE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173'\nCANDIDATE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a'\n\n\ndef projection(value):\n value = copy.deepcopy(value)\n value.pop('status', None)\n for key in ('resourceVersion', 'generation', 'creationTimestamp', 'managedFields'):\n value['metadata'].pop(key, None)\n for key in ('kubectl.kubernetes.io/last-applied-configuration', 'deployment.kubernetes.io/revision'):\n value['metadata'].get('annotations', {}).pop(key, None)\n return value\n\n\ndef check_current(current, sealed):\n if projection(current) != sealed:\n raise ValueError('sealed live UID or configuration changed')\n\n\ndef check_admitted(admitted, sealed):\n expected = copy.deepcopy(sealed)\n containers = expected['spec']['template']['spec']['containers']\n if len(containers) != 1 or containers[0]['name'] != 'informed-decision' or containers[0]['image'] != BASE:\n raise ValueError('unexpected baseline container identity')\n containers[0]['image'] = CANDIDATE\n if projection(admitted) != expected:\n raise ValueError('admission changed configuration beyond the sole image pin')\n\n\ndef transport_result(exit_code, output):\n import json\n try:\n value = json.loads(output)\n except (ValueError, TypeError):\n return {'all_checks_pass': False, 'reason': 'invalid transport result'}\n if exit_code != 0 or not isinstance(value, dict) or value.get('all_checks_pass') is not True:\n return {'all_checks_pass': False, 'reason': 'read-only preflight refused'}\n return value\n" + }, + { + "item_id": "preflight-py", + "media_type": "text/plain", + "content": "\"\"\"Read-only refresh; exact original capture remains immutable; never execute cutover.\"\"\"\nimport argparse,hashlib,json,subprocess,sys\nfrom pathlib import Path\nfrom change_guard import transport_result\nROOT=Path(__file__).resolve().parent\np=argparse.ArgumentParser();p.add_argument('--receipt-output',type=Path,required=True);p.add_argument('--source-root',type=Path,default=Path('/home/worsch/informed-decision'));a=p.parse_args()\nout=a.receipt_output.resolve()\nif not a.receipt_output.is_absolute() or out==ROOT or ROOT in out.parents or out==a.source_root.resolve() or a.source_root.resolve() in out.parents or out.exists():\n raise SystemExit('unique execution receipt must be outside the sealed packet')\ninputs=json.loads((ROOT/'preflight-inputs.json').read_text())\nfor relative,digest in inputs['packet_files'].items():\n path=ROOT/relative\n if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('sealed helper/input bytes changed')\nfor relative,digest in inputs['owner_source_files'].items():\n path=a.source_root/relative\n if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('owner source bytes changed')\nprogram=\"import subprocess,json,hashlib,datetime,sys,copy,re\\ncandidate=json.loads(CANDIDATE_LITERAL)\\nsealed_baseline=json.loads(SEALED_LITERAL)\\nexec(GUARD_LITERAL)\\ndef run(args,data=None):\\n p=subprocess.run(args,input=data,text=True,capture_output=True)\\n if p.returncode: raise ValueError('read-only command failed: '+args[1]+' '+args[2])\\n return p.stdout\\nlive=json.loads(run(['kubectl','get','deployment','informed-decision','-n','informed-decision','-o','json']))\\ncheck_current(live,sealed_baseline)\\nspec=live['spec']; cs=spec['template']['spec']['containers'];assert len(cs)==1 and cs[0]['name']=='informed-decision'\\nexpected_env={'INFD_KEYCAPE_ISSUER':'https://kc.coulomb.social','INFD_CONTAINER_CONFIG':'/configuration/runtime.json'}\\nassert cs[0].get('env')==[{'name':'INFD_KEYCAPE_ISSUER','value':expected_env['INFD_KEYCAPE_ISSUER']},{'name':'INFD_CONTAINER_CONFIG','value':expected_env['INFD_CONTAINER_CONFIG']}]\\nassert cs[0]['image']=='forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173'\\nassert spec['replicas']==1 and spec['strategy']=={'type':'Recreate'}\\nassert next(v for v in spec['template']['spec']['volumes'] if v['name']=='configuration')['configMap']['name']=='informed-decision-runtime-6c221878d051'\\nassert live['status'].get('readyReplicas')==1 and live['status'].get('updatedReplicas')==1\\nsealed={'apiVersion':live['apiVersion'],'kind':live['kind'],'metadata':{k:copy.deepcopy(v) for k,v in live['metadata'].items() if k not in ('resourceVersion','generation','creationTimestamp','managedFields')},'spec':copy.deepcopy(spec)}\\nfor key in ('kubectl.kubernetes.io/last-applied-configuration','deployment.kubernetes.io/revision'):sealed['metadata'].get('annotations',{}).pop(key,None)\\nadmitted=json.loads(run(['kubectl','apply','--dry-run=server','-f','-','-o','json'],json.dumps(candidate)))\\ncheck_admitted(admitted,sealed_baseline)\\napp=json.loads(run(['kubectl','get','application','informed-decision','-n','argocd','-o','json']))\\nassert app['spec']['source']['path']=='deploy/lifecycle' and not app['spec'].get('syncPolicy',{}).get('automated')\\nargo={'uid':app['metadata']['uid'],'repoURL':app['spec']['source']['repoURL'],'targetRevision':app['spec']['source']['targetRevision'],'path':app['spec']['source']['path'],'destination':app['spec']['destination'],'automated':False,'sync':app.get('status',{}).get('sync'),'health':app.get('status',{}).get('health')}\\nexpected_argo=json.loads(ARGO_LITERAL)\\nfor key in ('uid','repoURL','targetRevision','path','destination','automated'):\\n assert argo[key]==expected_argo[key]\\nassert argo['health']['status']=='Healthy'\\ndiff=subprocess.run(['kubectl','diff','-f','-'],input=json.dumps(candidate),text=True,capture_output=True);assert diff.returncode in (0,1)\\n# Diff can contain only nonsecret Deployment references; preserve digest rather than raw stdout.\\nnode=run(['kubectl','describe','node']);allocated=re.search(r'Allocated resources:.*?CPU Requests|Allocated resources:',node,re.S)\\nsection=node.split('Allocated resources:')[1].split('Events:')[0] if 'Allocated resources:' in node else ''\\nnodes=json.loads(run(['kubectl','get','nodes','-o','json']))['items'];assert len(nodes)==1\\nalloc=nodes[0]['status']['allocatable'];cpu=alloc['cpu'];cpu_m=int(cpu[:-1]) if cpu.endswith('m') else int(cpu)*1000\\nrequested=int(re.search(r'cpu\\\\s+(\\\\d+)m',section).group(1));assert requested<=cpu_m\\nreceipt={'node_allocatable_cpu_m':cpu_m,'node_requested_cpu_m':requested,'captured_at':datetime.datetime.now(datetime.timezone.utc).isoformat(),'native_workload_changed':False,'native_backup_restore_executed':False,'argo':argo,'live_ready_replicas':1,'admitted_uid':admitted['metadata']['uid'],'server_dry_run_passed':True,'admitted_spec_exactly_live_plus_image':True,'client_diff_exit':diff.returncode,'client_diff_sha256':hashlib.sha256(diff.stdout.encode()).hexdigest(),'node_allocated_resources':section.strip(),'all_checks_pass':True}\\nprint(json.dumps(receipt))\\n\"\nfor marker,value in [('CANDIDATE_LITERAL',(ROOT/'candidate-deployment.json').read_text()),('SEALED_LITERAL',(ROOT/'sealed-live-deployment.json').read_text()),('GUARD_LITERAL',(ROOT/'change_guard.py').read_text()),('ARGO_LITERAL',json.dumps(json.loads((ROOT/'native-preflight.json').read_text())['argo']))]:\n program=program.replace(marker,repr(value))\nprogram='import traceback,json\\ntry:\\n'+''.join(' '+line+'\\n' for line in program.splitlines())+\"except Exception as error:\\n print(json.dumps({'all_checks_pass':False,'exception_type':type(error).__name__,'exception_line':traceback.extract_tb(error.__traceback__)[-1].lineno}))\\n\"\nr=subprocess.run(['ssh','railiance01','python3 -'],input=program,text=True,capture_output=True)\nresult=transport_result(r.returncode,r.stdout);result['sealed_preflight_inputs_sha256']=hashlib.sha256((ROOT/'preflight-inputs.json').read_bytes()).hexdigest();result['fresh_execution_receipt']=True\nout.write_text(json.dumps(result,indent=2)+'\\n');print(json.dumps(result,indent=2));sys.exit(0 if result.get('all_checks_pass') is True else 1)\n" + }, + { + "item_id": "preflight-inputs-json", + "media_type": "application/json", + "content": "{\n \"packet_files\": {\n \"change_guard.py\": \"830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1\",\n \"preflight.py\": \"c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834\",\n \"candidate-deployment.json\": \"722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e\",\n \"rollback-deployment.json\": \"39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121\",\n \"sealed-live-deployment.json\": \"d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362\",\n \"native-preflight.json\": \"eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262\"\n },\n \"owner_source_files\": {\n \"deploy/lifecycle/admission.candidate.json\": \"92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55\",\n \"deploy/lifecycle/service.candidate.json\": \"38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4\"\n }\n}\n" + }, + { + "item_id": "fresh-preflight-validation-json", + "media_type": "application/json", + "content": "{\n \"node_allocatable_cpu_m\": 4000,\n \"node_requested_cpu_m\": 3460,\n \"captured_at\": \"2026-10-11T01:30:33.674360+00:00\",\n \"native_workload_changed\": false,\n \"native_backup_restore_executed\": false,\n \"argo\": {\n \"uid\": \"499868f2-eabc-4df4-ae31-b89ce58d750d\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"path\": \"deploy/lifecycle\",\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"automated\": false,\n \"sync\": {\n \"comparedTo\": {\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"source\": {\n \"path\": \"deploy/lifecycle\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\"\n }\n },\n \"revision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"status\": \"OutOfSync\"\n },\n \"health\": {\n \"lastTransitionTime\": \"2026-10-10T23:14:52Z\",\n \"status\": \"Healthy\"\n }\n },\n \"live_ready_replicas\": 1,\n \"admitted_uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\",\n \"server_dry_run_passed\": true,\n \"admitted_spec_exactly_live_plus_image\": true,\n \"client_diff_exit\": 1,\n \"client_diff_sha256\": \"0506825b408bb2c7b9dcb00a5ee655dc9ec23b09b308d42bb013d72672f8f415\",\n \"node_allocated_resources\": \"(Total limits may be over 100 percent, i.e., overcommitted.)\\n Resource Requests Limits\\n -------- -------- ------\\n cpu 3460m (86%) 36200m (905%)\\n memory 9472Mi (59%) 32898Mi (205%)\\n ephemeral-storage 0 (0%) 0 (0%)\\n hugepages-1Gi 0 (0%) 0 (0%)\\n hugepages-2Mi 0 (0%) 0 (0%)\",\n \"all_checks_pass\": true,\n \"sealed_preflight_inputs_sha256\": \"0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944\",\n \"fresh_execution_receipt\": true\n}\n" + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json new file mode 100644 index 0000000..21bf12e --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json @@ -0,0 +1,277 @@ +[ + { + "id": "infd-20261011-purpose-overlay-r1", + "register": { + "memo": { + "id": "infd-20261011-purpose-overlay-r1", + "version": 1, + "question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?", + "requested_act": "approve", + "binding_level": "organizational", + "brief": "Actual owner CI published763c from3e4bcb26; unchanged8base layers plus one policy.py, installedUID10001 and10purpose checks pass. Full44package scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, identical actualbase scan. Only Deploymentimage changes; manualArgo prune=false, runtime6c/schema5/PVC/identity/policies unchanged. Protected real-data backup/restore and fresh sealed-source/UID/configuration gates required, not executed. Live owner riskrecord/T05 dueOct18; Recreate briefly interrupts service. No priorconfigapproval reused.", + "binding": { + "principal": { + "id": "pending-human-session", + "kind": "person", + "display_name": "Founder review" + }, + "target": { + "kind": "environment", + "id": "realm:kubernetes/railiance01/informed-decision", + "label": "Informed Decision image-only purpose hardening on railiance01", + "environment": "production" + }, + "terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/off-cluster custody/offline restore plus exact owner-source pin/manual Deployment-only image release763c, prune=false. ADMINISTER activationAPPROVED only upon actualdisposition, execute by2026-10-12T23:59:59Z afterfresh sealedpreflight+restoregates; rollbackprior7f5 retaining latestschema5DB. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 ownerreviewdue2026-10-18. No credential/policy/grant change, humanbinding, wholeAppsync or autonomygrant." + }, + "step_kind": "approve", + "packet": [ + { + "item_id": "decision-packet-md", + "label": "decision-packet.md", + "hash": "sha256:7f6d8987f65dff479eeead67b7ca940ef44c22c1cdbdd6ca33fd732b824c8f02" + }, + { + "item_id": "proposal-json", + "label": "proposal.json", + "hash": "sha256:08c5573eaad05efd24b6df6737d33e7189543eb621f21704e38bab4326094914" + }, + { + "item_id": "candidate-admission-json", + "label": "candidate-admission.json", + "hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "item_id": "rollback-admission-json", + "label": "rollback-admission.json", + "hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "item_id": "candidate-deployment-json", + "label": "candidate-deployment.json", + "hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "item_id": "rollback-deployment-json", + "label": "rollback-deployment.json", + "hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "item_id": "published-verification-json", + "label": "published-verification.json", + "hash": "sha256:e304dd29571bf7d7b9f1db2ade0163dd39cfec012a5ce6986139f019f37e65a2" + }, + { + "item_id": "registry-proof-json", + "label": "registry-proof.json", + "hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "item_id": "security-summary-json", + "label": "security-summary.json", + "hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "item_id": "trivy-full-json", + "label": "trivy-full.json", + "hash": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "item_id": "sbom-cdx-json", + "label": "sbom.cdx.json", + "hash": "sha256:a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d" + }, + { + "item_id": "check-installed-py", + "label": "check_installed.py", + "hash": "sha256:a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad" + }, + { + "item_id": "native-backup-restore-protocol-md", + "label": "native-backup-restore-protocol.md", + "hash": "sha256:aa9758d4de587d14c6ce0fdaccd84002c5c5099425b9169ca7c972a86e9d3dec" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "label": "inherited-vulnerability-follow-through.json", + "hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "item_id": "native-preflight-json", + "label": "native-preflight.json", + "hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "item_id": "sealed-live-deployment-json", + "label": "sealed-live-deployment.json", + "hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "item_id": "change-guard-py", + "label": "change_guard.py", + "hash": "sha256:830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1" + }, + { + "item_id": "preflight-py", + "label": "preflight.py", + "hash": "sha256:c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834" + }, + { + "item_id": "preflight-inputs-json", + "label": "preflight-inputs.json", + "hash": "sha256:0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944" + }, + { + "item_id": "fresh-preflight-validation-json", + "label": "fresh-preflight-validation.json", + "hash": "sha256:aa1d494e42491f0619f731a836c597df9178409887d734c166a8df81f8807a27" + } + ], + "highlights": [ + { + "id": "native-custody-rollout-and-known-medium", + "item_id": "decision-packet-md", + "note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof.", + "required_ack": true, + "severity": "warning", + "locator": { + "kind": "section", + "heading": "Requested decision" + } + } + ], + "sealed": false, + "approval_id": null, + "approval_binding_digest": null + }, + "documents": [ + { + "digest": "sha256:7f6d8987f65dff479eeead67b7ca940ef44c22c1cdbdd6ca33fd732b824c8f02", + "media_type": "text/markdown", + "content_base64": "IyBJbmZvcm1lZCBEZWNpc2lvbiBwdXJwb3NlIG92ZXJsYXkgcmVsZWFzZQoKIyMgUmVxdWVzdGVkIGRlY2lzaW9uCgpBcHByb3ZlIHRoZSBleGFjdCBwdXJwb3NlLW9ubHkgaW1hZ2Ugcm9sbG91dCBhbmQgcHJvdGVjdGVkIHJlYWwtZGF0YSBiYWNrdXAvcmVzdG9yZSBwcm90b2NvbCBmb3IgdGhlIGV4aXN0aW5nIEluZm9ybWVkIERlY2lzaW9uIHNlcnZpY2Ugb24gcmFpbGlhbmNlMDEuIFRoaXMgcmVxdWVzdCBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBhbHJlYWR5IGFwcHJvdmVkIGNvbmZpZy1vbmx5IHJlcGFpci4gT25seSB0aGUgZXhpc3RpbmcgRGVwbG95bWVudCBpbWFnZSBjaGFuZ2VzIHRocm91Z2ggdGhlIG93bmVyJ3MgbWFudWFsIEFyZ28gd29ya2Zsb3csIHdpdGggcHJ1bmUgZGlzYWJsZWQuIFJ1bnRpbWUgQ29uZmlnTWFwIGBpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MWAsIHNjaGVtYTUsIFBWQywgY3JlZGVudGlhbHMsIGF1ZGllbmNlLCBwb2xpY2llcywgcmVnaXN0cmllcywgYWNjZXNzLCByZXBsaWNhMSBhbmQgUmVjcmVhdGUgc3RyYXRlZ3kgcmVtYWluIGZpeGVkLiBFeGVjdXRlIGJ5IDIwMjYtMTAtMTJUMjM6NTk6NTlaLCBhZnRlciByZWZyZXNoZWQgc2VhbGVkLXNvdXJjZS9VSUQvY29uZmlndXJhdGlvbiBjaGVja3MgYW5kIGJhY2t1cC9yZXN0b3JlIGdhdGVzLiBFeHBpcnkgc3RvcHMgYXV0aG9yaXphdGlvbiBmb3IgYW4gdW5zdGFydGVkIHJlbGVhc2U7IGl0IGRvZXMgbm90IGluc3RhbGwgYSBjb250cm9sbGVyIG9yIGF1dG9tYXRpY2FsbHkgcm9sbCBiYWNrIGFuIGFscmVhZHkgcmVsZWFzZWQgaW1hZ2UuCgojIyBBcnRpZmFjdCBhbmQga25vd24gZmluZGluZwoKQWN0dWFsIG93bmVyIENJIHRhc2sxMTQ4NC9ydW4zIHB1Ymxpc2hlZCBpbW11dGFibGUgaW1hZ2UgYHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhYCBmcm9tIHNvdXJjZSBgM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OGAuIEFub255bW91cyByZWdpc3RyeSB2ZXJpZmljYXRpb24gcHJlc2VydmVzIGFsbCBlaWdodCBiYXNlIGNvbXByZXNzZWQgYmxvYnMvcm9vdGZzIGxheWVycyBhbmQgYWRkcyBvbmx5IHBvbGljeS5weSB3aXRoIGV4YWN0IHNvdXJjZSBoYXNoIGFuZCBtb2RlMDY0NC4gTGVnYWN5LWJ1aWxkZXIgbWVkaWEtdHlwZS9kZWZhdWx0IGNvbmZpZyBzZXJpYWxpemF0aW9uIGRpZmZlcmVuY2VzIGFyZSByZWNvcmRlZDsgdGhlIHJ1bnRpbWUgc2VtYW50aWNzIHJlbWFpbiB1bmNoYW5nZWQuIFB1bGxlZCBwdWJsaXNoZWQgaW1hZ2UgZXhlY3V0ZXMgYXMgVUlEMTAwMDEvR0lEMTAwMDEgYW5kIHBhc3NlcyB0ZW4gaW5zdGFsbGVkIGNoZWNrczogdHdvIHN1cHBvcnRlZCBiaW5kaW5nIGZvcm1zLCBlaWdodCBhZHZpc29yeS9tYWxmb3JtZWQgcmVmdXNhbHMuIFRlc3RzIHVzZSBzeW50aGV0aWMgdHJhbnNwb3J0IGFuZCBkbyBub3QgY2xhaW0gbmV3IG5hdGl2ZSBQRFAgYXV0aG9yaXphdGlvbiBwcm9vZi4gVGhlIHR3byBmYWlsZWQgQ0kgYXR0ZW1wdHMgcmVtYWluIGluIHRoZSBzYW1lIHRyaWFsIGhpc3RvcnkuCgpBY3R1YWwgdW5maWx0ZXJlZCBwaW5uZWQgc2Nhbm5lci9EQiBldmlkZW5jZSBjb3ZlcnM0NHBhY2thZ2VzOiB6ZXJvIEhJR0gvQ1JJVElDQUwsICoqb25lIGZpeGFibGUgTUVESVVNKiosIENWRS0yMDI2LTg1MDkxLCB6bGliMS4zLjItcjAgZml4ZWQgaW4xLjMuMi1yMS4gQWN0dWFsIGN1cnJlbnQtYmFzZSBzY2FuIGhhcyB0aGUgaWRlbnRpY2FsIGZpbmRpbmcuIEFwcHJvdmluZyB0aGlzIHBhY2tldCBleHBsaWNpdGx5IHBlcm1pdHMgdGhpcyBpbmhlcml0ZWQgZmluZGluZyBkdXJpbmcgdGhpcyBuYXJyb3cgcHVycG9zZSByZWxlYXNlOyBpdCBpcyBub3QgYSBSaXNrTmV4dXMgZXN0YXRlIHJpc2sgZ3JhZGUgb3IgemVyby1DVkUgY2xhaW0uIE93bmVyIHJlY29yZCBJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSBhbmQgbGl2ZSB0YXNrIElORkQtV1AtMDAwOS1UMDUgcmVxdWlyZSBzZXBhcmF0ZSBiYXNlIHJlZnJlc2ggYW5kIG5hdGl2ZSBhcHByb3ZhbCwgcmV2aWV3ZWQgYnkyMDI2LTEwLTE4LiBUaGF0IHJldmlldyBkYXRlIGlzIG1hbnVhbCBmb2xsb3ctdGhyb3VnaCwgd2l0aCBubyBhdXRvLWNvbnRyb2xsZXIgY2xhaW0uIFNjYW5uZXIgbm90ZXMgQWxwaW5lMy4yNCBhYnNlbnQgRU9MIGxpc3Q7IE9TIHZ1bG5lcmFiaWxpdHkgZGV0ZWN0aW9uIHJhbiBhZ2FpbnN0MzhPU3BhY2thZ2VzLiBVbmtub3duIHZ1bG5lcmFiaWxpdGllcyByZW1haW4gb3V0c2lkZSBzbmFwc2hvdCBrbm93bGVkZ2UuCgojIyBOYXRpdmUgYmFzZWxpbmUgYW5kIGdhdGVzCgpGcmVzaCByZWFkLW9ubHkgY2FwdHVyZTAxOjI1OjM4WjogZXhpc3RpbmcgRGVwbG95bWVudCBVSURhNTg4ZTEwYSwgUmVhZHkxLCBpbWFnZTdmNWMsIHVuY2hhbmdlZCBydW50aW1lNmM7IG5hdGl2ZSBhZG1pc3Npb24gcHJlc2VydmVzIHRoZSBmdWxsIGNvbmZpZ3VyYXRpb24gcGx1cyBleGFjdGx5IHRoZSBwcm9wb3NlZCBpbWFnZS4gQ2xpZW50ZGlmZiByZXR1cm5zMS4gUmVxdWVzdHMzNDYwLzQwMDBtQ1BVODYlLCBtZW1vcnk5NDcyTWk1OSU7IHJlZnJlc2ggYmVmb3JlIHJlbGVhc2UuIEV4aXN0aW5nIEFyZ28gQXBwbGljYXRpb24gVUlENDk5ODY4ZjIgaXMgbWFudWFsLCB0YXJnZXQ3ZGI4NDg1LCBIZWFsdGh5IHdpdGggcHJlLWV4aXN0aW5nIE91dE9mU3luYyBzdGF0dXMuIERvIG5vdCB0cmVhdCBhIHNjb3BlZCBEZXBsb3ltZW50IHJlbGVhc2UgYXMgZnVsbC1hcHAgcmVjb25jaWxpYXRpb24uIFByZXNlcnZlIGl0cyB0cmFja2luZy1pZDsgbm8gdW5yZWxhdGVkIHJlc291cmNlIHN5bmMvcHJ1bmUvYWRvcHRpb24uCgpUaGUgcmVhZC1vbmx5IGhlbHBlciBiaW5kcyBvcmlnaW5hbCBzb3VyY2UvaGVscGVyL3JlbmRlci9iYXNlbGluZSBoYXNoZXMsIGNoZWNrcyBleGFjdCBmcmVzaCBsaXZlIFVJRC9jb25maWd1cmF0aW9uIGFuZCBhZG1pc3Npb24sIGFuZCB3cml0ZXMgYSBzZXBhcmF0ZSBleGVjdXRpb24gcmVjZWlwdCBvdXRzaWRlIHRoaXMgc2VhbGVkIHBhY2tldC4gRmFpbGVkIGluaXRpYWwgcmF3IEt1c3RvbWl6ZSBtZXRhZGF0YSBjaGVjayBpcyByZXRhaW5lZDogZGlyZWN0IGt1YmVjdGwgYXBwbHkgd291bGQgZHJvcCBBcmdvIHRyYWNraW5nLWlkLiBUaGUgcmV2aWV3ZWQgc2VsZWN0ZWQgRGVwbG95bWVudCBleHBsaWNpdGx5IHJldGFpbnMgdGhhdCBleGlzdGluZyBJRCwgbWF0Y2hpbmcgQXJnbyBvd25lcnNoaXAuIEFueSB1bnJlbGF0ZWQgZHJpZnQsIGRpZmZlcmVudCBVSUQsIGFsdGVyZWQgYWRtaXNzaW9uLCB1bmF2YWlsYWJsZSBwcm90ZWN0ZWQgYmFja3VwIGNhcGFjaXR5LCB1bmNlcnRhaW4gYmFja3VwLCByZXN0b3JlIG1pc21hdGNoIG9yIHVuaGVhbHRoeSBiYXNlbGluZSBzdG9wcyB0aGUgcmVsZWFzZS4KCiMjIFByb3RlY3RlZCBiYWNrdXAgYW5kIHJlbGVhc2UKClVzZSB0aGUgZXhpc3Rpbmcgb3duZXIgYWRtaW4ncyBTUUxpdGUgYmFja3VwIEFQSSwgbm90IGEgcmF3IGNvcHkgb2YgdGhlIGxpdmUgZGF0YWJhc2UvV0FMLiBQcm90ZWN0IGRpcmVjdG9yaWVzMDcwMC9maWxlczA2MDAsIG93bmVkIGJ5MTAwMDEuIFJldGFpbiBpbmRlcGVuZGVudGx5IHByb3RlY3RlZCBvZmYtY2x1c3RlciBzbmFwc2hvdCBjdXN0b2R5IGFuZCBvbmx5IGNvdW50L2hhc2ggcmVjZWlwdHMuIE5vIGRhdGFiYXNlIGNvbnRlbnRzLCBjYWxsZXIgdG9rZW5zLCByZXF1ZXN0ZXIgU2VjcmV0IG9yIHJ1bnRpbWUgY3JlZGVudGlhbCBmaWxlcyBlbnRlciBHaXQsIFN0YXRlIEh1YiwgbG9ncyBvciB0aGlzIHBhY2tldC4gTmF0aXZlIGJhY2t1cCBhbmQgb2ZmbGluZSByZWFsLWRhdGEgcmVzdG9yZSBoYXZlIG5vdCB5ZXQgb2NjdXJyZWQuIFVzZSBhbiBpc29sYXRlZCBwcml2YXRlIGRpc3Bvc2FibGUgY29weSwgbmV0d29ya25vbmUgYW5kIG5vIHJ1bnRpbWUgY29uZmlnL3Rva2VuIG1vdW50cywgdmFsaWRhdGUgc2NoZW1hNS9pbnRlZ3JpdHkgYW5kIGZyb3plbiBzbmFwc2hvdCBjb3VudHMsIHRoZW4gY2xlYW4gb25seSB0aGUgZGlzcG9zYWJsZSByZXN0b3JlZCBjb3B5LiBSZXRhaW4gdGhlIG9yaWdpbmFsIHNuYXBzaG90LiBUaGUgYXR0YWNoZWQgcHJvdG9jb2wgYmluZHMgY2FzZS1zcGVjaWZpYyBwYXRocyBhbmQgZmFpbC1jbG9zZWQgY2FwYWNpdHkvY3VzdG9keSBjaGVja3MuCgpSZWZyZXNoIGEgY29uc2lzdGVudCBvbmxpbmUgc25hcHNob3QgaW1tZWRpYXRlbHkgYmVmb3JlIGltYWdlLW9ubHkgY3V0b3Zlci4gVGhpcyBwcm90b2NvbCBkb2VzIG5vdCBhc3NlcnQgdHJhZmZpYy9kaXNwYXRjaGVyIHF1aWVzY2VuY2UuIEN1cnJlbnQgYW5kIGNhbmRpZGF0ZSBzaGFyZSBzY2hlbWE1IGFuZCB1bmNoYW5nZWQgc3RvcmUgY29kZTsgcm9sbGJhY2sgcmV0YWlucyB0aGUgbGF0ZXN0IGxpdmUgZGF0YWJhc2UgYW5kIGFsbCBuZXcvdW5jZXJ0YWluIGV2aWRlbmNlLiBTdG9wIHRoZSBvbGQgd3JpdGVyIGJlZm9yZSB0aGUgbmV3IG9uZSB3aXRoIGV4aXN0aW5nIFJlY3JlYXRlIGFuZCBzaW5nbGUtd3JpdGVyIGxvY2suIERvIG5vdCByZXN0b3JlIGFuIG9sZGVyIHNuYXBzaG90IG92ZXIgbGF0ZXIgd3JpdGVzLCBkaXNjYXJkIHVucmVzb2x2ZWQgZXh0ZXJuYWwgZWZmZWN0cywgc2NhbGUgb3RoZXIgd29ya2xvYWRzLCBjaGFuZ2UgcG9saWNpZXMvaWRlbnRpdHkvY3VzdG9keSwgb3IgY3JlYXRlIGh1bWFuIGRpc3Bvc2l0aW9ucyB0byBtYWtlIGNoZWNrcyBncmVlbi4KClBpbiB0aGUgZXhpc3RpbmcgQXBwbGljYXRpb24gdG8gdGhlIGV4YWN0IG93bmVyIGNvbW1pdCBjb250YWluaW5nIHRoZSBhcHByb3ZlZCBjYW5kaWRhdGUgc291cmNlIGhhc2hlcywgYW5kIG1hbnVhbGx5IHN5bmMgb25seSBEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHdpdGggcHJ1bmU9ZmFsc2UuIFZlcmlmeSBhY3R1YWxpbWFnZS9tb2R1bGUvbW9kZS9VSUQsIGhlYWx0aC9yZWFkaW5lc3MgYW5kIGluc3RhbGxlZCBwdXJwb3NlIHJlZnVzYWxzIG9uIHRoZSByZWFsIHBsYWNlbWVudDsgZXhwbGljaXRseSBkaXN0aW5ndWlzaCBzeW50aGV0aWMtdHJhbnNwb3J0IGNoZWNrcyBmcm9tIGFjdHVhbCBwcm92aWRlciBldmlkZW5jZS4gRXhpc3RpbmcgbmF0aXZlIGJpbmRpbmcvbGlmZWN5Y2xlIGJlaGF2aW9yIG11c3QgcmVtYWluIGF2YWlsYWJsZS4gSWYgdW5oZWFsdGh5IG9yIHZlcmlmaWNhdGlvbiBmYWlscywgcmV0dXJuIEFwcGxpY2F0aW9uIHNvdXJjZSB0bzdkYjg0ODUgYW5kIHNjb3BlZC1zeW5jIHByaW9yIHNhbWUtc2NoZW1hIGltYWdlN2Y1YywgcHJlc2VydmluZyBjdXJyZW50IGV2aWRlbmNlIGRhdGFiYXNlOyByZXRhaW4gZmFpbGVkIG91dGNvbWVzLiBBbnkgZGF0YSByZWNvdmVyeSBiZXlvbmQgdGhpcyBzYW1lLXNjaGVtYSBpbWFnZSByb2xsYmFjayBpcyBhIHNlcGFyYXRlIGZvdW5kZXIgZGVjaXNpb24uCgojIyBBbHRlcm5hdGl2ZXMgYW5kIGVzdGltYXRlcwoKUHJvY2VlZCB3aXRoIHRoaXMgbmFycm93IHJlbGVhc2UgcGx1cyBleHBsaWNpdCBpbmhlcml0ZWQtbWVkaXVtIGZvbGxvdy10aHJvdWdoLCBvciBkZWZlciBhbmQgcHJlcGFyZSBhIHNlcGFyYXRlIGJhc2UvZGVwZW5kZW5jeSByZWZyZXNoIGJlZm9yZSBhbnkgcmVsZWFzZS4gTm8gYWRkaXRpb25hbCByZWN1cnJpbmcgaG9zdGluZyBpcyBwcm9wb3NlZDogZXN0aW1hdGVkIGluY3JlbWVudGFsIGluZnJhc3RydWN0dXJlIEVVUjAsIHdpdGggcHJpdmF0ZSBzdG9yYWdlIGFuZCBhdHRlbmRlZCBlbmdpbmVlcmluZy9yZWNvdmVyeSB0aW1lIHVucHJpY2VkLiBSaXNrcyBpbmNsdWRlIGEgYnJpZWYgUmVjcmVhdGUgaW50ZXJydXB0aW9uLCBwcml2YXRlIGJhY2t1cCBjdXN0b2R5IGVycm9ycywgY2FsbGVyIHJlZnVzYWwgd2hlbiBhZHZpc29yeSByZXNwb25zZXMgd2VyZSBpbXByb3Blcmx5IHRyZWF0ZWQgYXMgYmluZGluZywgYW5kIHRoZSBkaXNjbG9zZWQgaW5oZXJpdGVkIGZpbmRpbmcuIFRoaXMgZGVjaXNpb24gZG9lcyBub3QgcHJvbW90ZSBhZ2VudCBhdXRvbm9teSBvciBncmFudCB1bnJlbGF0ZWQgd29yay4K" + }, + { + "digest": "sha256:08c5573eaad05efd24b6df6737d33e7189543eb621f21704e38bab4326094914", + "media_type": "application/json", + "content_base64": "ewogICJwcm9wb3NhbF9pZCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgInRyaWFsX2lkIjogImluZmQtcHVycG9zZS0yMDI2MTAxMS1yMSIsCiAgInN0YXRlIjogInByZXBhcmVkLXVuYXBwcm92ZWQiLAogICJ0YXJnZXQiOiAicmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbiIsCiAgImF1dGhvcml0eSI6ICJBRE1JTklTVEVSOyBhY3RpdmF0aW9uIEFQUFJPVkVEIG9ubHkgdXBvbiBleGFjdCBmb3VuZGVyIGRpc3Bvc2l0aW9uIiwKICAiY2FuZGlkYXRlX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgInB1Ymxpc2hlZF9zb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInByaW9yX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgInByaW9yX2FyZ29fcmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgIm5hdGl2ZV9vYmplY3QiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICB9LAogICJhcmdvX2FwcGxpY2F0aW9uX3VpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICJzb3VyY2VfZ2F0ZSI6ICJFeGFjdCBjb21taXR0ZWQgb3duZXIgc291cmNlIG11c3QgY29udGFpbiB0aGUgdHdvIGFwcHJvdmVkIGNhbmRpZGF0ZSBmaWxlIGhhc2hlcyBpbiBwcmVmbGlnaHQtaW5wdXRzLmpzb247IHNvdXJjZSBwcmVwYXJhdGlvbiBpcyBub3QgbmF0aXZlIGFwcHJvdmFsIiwKICAic3luY19zY29wZSI6IFsKICAgICJhcHBzOkRlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24iCiAgXSwKICAicHJ1bmUiOiBmYWxzZSwKICAiYXV0b21hdGVkX3N5bmMiOiBmYWxzZSwKICAicnVudGltZV9jb25maWdtYXAiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICJzY2hlbWEiOiA1LAogICJyZXF1ZXN0ZWRfb3BlcmF0aW9ucyI6IFsKICAgICJQcm90ZWN0ZWQgU1FMaXRlLWNvbnNpc3RlbnQgbmF0aXZlIGJhY2t1cCBhbmQgaW5kZXBlbmRlbnRseSBwcm90ZWN0ZWQgb2ZmLWNsdXN0ZXIgY3VzdG9keSIsCiAgICAiT2ZmbGluZSByZXN0b3JlL2ludGVncml0eS9jb3VudCBjb21wYXJpc29uIG9uIGEgcHJpdmF0ZSBkaXNwb3NhYmxlIHZvbHVtZSB3aXRoIGV4YWN0IGNhbmRpZGF0ZSwgbm8gcnVudGltZSB0b2tlbnMvY29uZmlnL25ldHdvcmsiLAogICAgIlJlZnJlc2ggYSBjb25zaXN0ZW50IHByZS1jdXRvdmVyIHNuYXBzaG90LCByZXRhaW4gcHJpdmF0ZSBjb3BpZXMgYW5kIGNvdW50LW9ubHkvaGFzaCByZWNlaXB0cyIsCiAgICAiUGluIGV4aXN0aW5nIG1hbnVhbCBBcmdvIEFwcGxpY2F0aW9uIHRvIGV4YWN0IGFwcHJvdmVkIG93bmVyIHNvdXJjZSBhbmQgbWFudWFsbHkgc3luYyBvbmx5IGV4aXN0aW5nIERlcGxveW1lbnQgaW1hZ2UiLAogICAgIlZlcmlmeSBoZWFsdGgvcmVhZGluZXNzL2ltYWdlL21vZHVsZS9pbnN0YWxsZWQgZmFpbC1jbG9zZWQgcHVycG9zZSBjaGVja3MgYW5kIHJldGFpbmVkIHNjaGVtYS9jb3VudCBldmlkZW5jZTsgcmVjb3ZlciB0byBwcmlvciBzYW1lLXNjaGVtYSBpbWFnZSBpZiBuZWVkZWQiCiAgXSwKICAiZXhlY3V0ZV9ieSI6ICIyMDI2LTEwLTEyVDIzOjU5OjU5WiIsCiAgInRlbXBvcmFyeV92dWxuZXJhYmlsaXR5X3Jldmlld19kdWUiOiAiMjAyNi0xMC0xOCIsCiAgImtub3duX3NjYW5fZmluZGluZ3MiOiAiMEhJR0gvQ1JJVElDQUwsMWZpeGFibGUgaW5oZXJpdGVkTUVESVVNIHpsaWIsIGFjdHVhbCBjdXJyZW50YmFzZStjYW5kaWRhdGUgZmluZGluZ3MgaWRlbnRpY2FsIiwKICAidnVsbmVyYWJpbGl0eV9yZWNvcmQiOiAiSU5GRC1SSVNLLTIwMjYxMDExLVpMSUItODUwOTEgLyBJTkZELVdQLTAwMDktVDA1IiwKICAiY29zdF9lc3RpbWF0ZV9FVVIiOiAwLAogICJjb3N0X2xpbWl0cyI6ICJObyBuZXcgcmVjdXJyaW5nIGluZnJhc3RydWN0dXJlOyBwcml2YXRlIGJhY2t1cCBzdG9yYWdlIGFuZCBhdHRlbmRlZCBlbmdpbmVlcmluZy9yZWNvdmVyeSB0aW1lIHVucHJpY2VkLCBub3QgYW4gYXV0b3BpbG90IGNvc3QgZ3JhbnQiLAogICJyaXNrX2VzdGltYXRlcyI6IFsKICAgICJCcmllZiBSZWNyZWF0ZSBzZXJ2aWNlIGludGVycnVwdGlvbjsgbm8gY29uY3VycmVudCBuZXcgd3JpdGVyL3N1cmdlIiwKICAgICJQcml2YXRlIGV2aWRlbmNlIHNuYXBzaG90IGN1c3RvZHkgYW5kIGRpc3Bvc2FsIGVycm9yczsgbm8gc25hcHNob3RzL3Rva2VucyBpbiBwdWJsaWMgZXZpZGVuY2UiLAogICAgIkNhbmRpZGF0ZSBwdXJwb3NlIHJlZnVzYWwgbWF5IGV4cG9zZSBjYWxsZXJzIHJlbHlpbmcgb24gYWR2aXNvcnkgcmVzdWx0cyBhcyBiaW5kaW5nIiwKICAgICJJbmhlcml0ZWQga25vd24gZml4YWJsZSBNRURJVU0gcmVtYWlucyB1bnRpbCBzZXBhcmF0ZWx5IGFwcHJvdmVkIG93bmVyIHJlbWVkaWF0aW9uIiwKICAgICJFeGlzdGluZyBBcmdvIE91dE9mU3luYyBiYXNlbGluZSBpcyByZXRhaW5lZDsgbm8gd2hvbGUtYXBwIHN5bmMgb3IgdW5yZWxhdGVkIHJlcGFpcnMgcGVybWl0dGVkIgogIF0sCiAgInJvbGxiYWNrIjogIk1hbnVhbCBBcmdvIHNvdXJjZSBwaW4gYmFjayB0bzdkYjg0ODUgYW5kIHNjb3BlZCBEZXBsb3ltZW50LW9ubHkgc3luYyB0bzdmNWMgaW1hZ2U7IHJldGFpbiBjdXJyZW50IHNjaGVtYTUgZGF0YWJhc2UgYW5kIGFsbCBwb3N0LWN1dG92ZXIgZXZpZGVuY2UsIG5ldmVyIHJlc3RvcmUgb2xkZXIgc25hcHNob3Qgb3ZlciBsaXZlIHdyaXRlcyIsCiAgIm5hdGl2ZV9leGVjdXRlZCI6IGZhbHNlLAogICJodW1hbl9hcHByb3ZhbCI6IGZhbHNlCn0K" + }, + { + "digest": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K" + }, + { + "digest": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K" + }, + { + "digest": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e", + "media_type": "application/json", + "content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo=" + }, + { + "digest": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121", + "media_type": "application/json", + "content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo=" + }, + { + "digest": "sha256:e304dd29571bf7d7b9f1db2ade0163dd39cfec012a5ce6986139f019f37e65a2", + "media_type": "application/json", + "content_base64": "ewogICJwcm9wb3NhbCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgIm9ic2VydmVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjQ6MDEuOTg1MTI4KzAwOjAwIiwKICAibmF0aXZlX293bmVyX3B1YmxpY2F0aW9uX2pvYiI6IHsKICAgICJpZCI6IDExNDg0LAogICAgIm5hbWUiOiAicHVibGlzaC1jYW5kaWRhdGUiLAogICAgImhlYWRfYnJhbmNoIjogIm1haW4iLAogICAgImhlYWRfc2hhIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgInJ1bl9udW1iZXIiOiAzLAogICAgImV2ZW50IjogInB1c2giLAogICAgImRpc3BsYXlfdGl0bGUiOiAiUHJlcGFyZSByZWFkYWJsZSBvdmVybGF5IGNvbnRleHQgd2l0aCB0aGUgYWRtaXR0ZWQgbGVnYWN5IGJ1aWxkZXIiLAogICAgInN0YXR1cyI6ICJzdWNjZXNzIiwKICAgICJ3b3JrZmxvd19pZCI6ICJwdXJwb3NlLW92ZXJsYXktaW1hZ2UueWFtbCIsCiAgICAidXJsIjogImh0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uL2FjdGlvbnMvcnVucy8zIiwKICAgICJjcmVhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjA6NTlaIiwKICAgICJ1cGRhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjE6MDhaIiwKICAgICJydW5fc3RhcnRlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjIwOjU5WiIKICB9LAogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInBvbGljeV9zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgInJlZ2lzdHJ5X3Byb29mX3NoYTI1NiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAic291cmNlX3JlbmRlcl9jaGFuZ2Vfb25seSI6ICJEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHNwZWMudGVtcGxhdGUuc3BlYy5jb250YWluZXJzWzBdLmltYWdlIiwKICAicnVudGltZV9jb25maWdtYXBfdW5jaGFuZ2VkIjogImluZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxIiwKICAiaW5zdGFsbGVkX2ltYWdlX2V4ZWN1dGlvbiI6IHsKICAgICJpbW11dGFibGVfcmVnaXN0cnlfYXJ0aWZhY3RfcHVsbGVkX2Fub255bW91c2x5IjogdHJ1ZSwKICAgICJVSUQiOiAxMDAwMSwKICAgICJHSUQiOiAxMDAwMSwKICAgICJwb2xpY3lfZmlsZV9VSUQiOiAwLAogICAgInBvbGljeV9maWxlX21vZGUiOiAiMDY0NCIsCiAgICAicHVycG9zZV92YXJpYW50cyI6IDEwLAogICAgImJpbmRpbmdfZm9ybXNfYWxsb3dlZCI6IDIsCiAgICAiYWR2aXNvcnlfb3JfbWFsZm9ybWVkX3JlZnVzZWQiOiA4LAogICAgIm5ldHdvcmsiOiAibm9uZSIsCiAgICAicmVhZF9vbmx5IjogdHJ1ZSwKICAgICJzeW50aGV0aWNfdHJhbnNwb3J0IjogdHJ1ZSwKICAgICJuYXRpdmVfUERQX3Rlc3QiOiBmYWxzZQogIH0sCiAgInNjYW5fc3VtbWFyeV9zaGEyNTYiOiAiMGVlNTY0MDBkYzcwM2Y3Yzk5NjhjMmEwYTNlYTAzOTBkODM2MmY4ZDBiYmY4MDAyYTJiZDdmYTU4ZjE5Y2I0NCIsCiAgImhpc3RvcmljYWxfZmFpbGVkX3J1bnNfcmV0YWluZWQiOiBbCiAgICAiZjY2ZGU1MDUvdGFzazExNDgyL3J1bjEiLAogICAgImFjZWNhZDg4Ny90YXNrMTE0ODMvcnVuMiIKICBdLAogICJuYXRpdmVfaG9zdGluZ19jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJodW1hbl9hcHByb3ZhbCI6IGZhbHNlLAogICJldmlkZW5jZV9maWxlX3NoYTI1NiI6IHsKICAgICJpbWFnZS1tYW5pZmVzdC5qc29uIjogIjk3OGM1NzVkM2M3YmYwZGUzOWRiZTRlOTU2N2MzOWNkMzZmNzBiN2U1NWJjMTczNTdiZGIwM2ZiM2I5NmIwZmIiLAogICAgImltYWdlLWNvbmZpZy5qc29uIjogIjRhZDcyNDljNzVmZDlmYzAzOWNlYjE4Njc3MjQxOWUxY2JhNWZkOTc1OWM0MDQ1NTY0NTljODBhMmQyODVkMTAiLAogICAgImJhc2UtaW1hZ2UtY29uZmlnLmpzb24iOiAiYjcwNmM5MjA5ZTMyNGYzOWE4NmZmY2RhMmEzZTlkOTRjOTI2NDk3MzlhZDViMjFmZTQ2MTEwMDZlMzZmNmYwMCIsCiAgICAicmVnaXN0cnktcHJvb2YuanNvbiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAgICJ0cml2eS1mdWxsLmpzb24iOiAiZjM4YThmN2U2YzQxOWVlZDkxNTRkNzc2MmY5MzJiOWRlYjY2ODBhNjIyMjQ3YjA4MTk2Yjc0NThiODkzNDM0ZSIsCiAgICAic2JvbS5jZHguanNvbiI6ICJhNDI1Mjk1MWUyMDI3NDcyYzI2ZDg2NzljYjU0M2UzMDk4MzE4MDgwOWQ2ZGQzYzdjOTRiODgzZDYyODAzZTVkIiwKICAgICJiYXNlLXRyaXZ5LWZ1bGwuanNvbiI6ICJkNDRjNTU1YWVjYmIxYTQ1MThmNDEyN2Q0ODAxNWVhNDU5MzI1YzkzZThiMDM3MTkxMGE1NWRlNDcyOTNjYTgwIiwKICAgICJjaGVja19pbnN0YWxsZWQucHkiOiAiYTM0YTUxYmU5YzlmMmIxNmEwNmE4ODE3M2I1YzZjNDkyYzk5NTdmZTAyMWNmNDEyYTg2YTE3Mzc3MzA2NDBhZCIsCiAgICAidmVyaWZ5X3JlZ2lzdHJ5LnB5IjogIjQxM2Y1NzVjMjFhMmJkMThhMzY5NmY4ZjJkOTM5ZWVhZGM1MmQ3NmYyODJjNDI4MTNmNzZiYjBlM2VlOGEyYTQiCiAgfQp9Cg==" + }, + { + "digest": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZV9kaWdlc3QiOiAic2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgImJhc2VfaW1hZ2VfZGlnZXN0IjogInNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAiYmFzZV9sYXllcl9ieXRlc19pZGVudGljYWwiOiB0cnVlLAogICJsYXllcl9tZWRpYV90eXBlX2NvbnZlcnNpb24iOiAiT0NJIGd6aXAgdG8gRG9ja2VyIGd6aXAsIHNhbWUgZGlnZXN0IGFuZCBzaXplIiwKICAiYmFzZV9ydW50aW1lX2NvbmZpZ19zZW1hbnRpY3NfaWRlbnRpY2FsIjogdHJ1ZSwKICAibGVnYWN5X2J1aWxkZXJfY29uZmlnX2FkZGl0aW9ucyI6IHsKICAgICJIb3N0bmFtZSI6ICIiLAogICAgIkRvbWFpbm5hbWUiOiAiIiwKICAgICJBdHRhY2hTdGRpbiI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZG91dCI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZGVyciI6IGZhbHNlLAogICAgIlR0eSI6IGZhbHNlLAogICAgIk9wZW5TdGRpbiI6IGZhbHNlLAogICAgIlN0ZGluT25jZSI6IGZhbHNlLAogICAgIkNtZCI6IG51bGwsCiAgICAiVm9sdW1lcyI6IG51bGwsCiAgICAiT25CdWlsZCI6IG51bGwsCiAgICAiSW1hZ2UiOiAic2hhMjU2OjkwZjE1NzRmOWVkYTM1ZmE2Y2I5NzI5NjFiZWIyN2E3Y2I5MDRjMzY1NjBlMzgxOTMwYjBlMTQwNjVjMjM4ODMiCiAgfSwKICAiYmFzZV9yb290ZnNfcHJlZml4X2lkZW50aWNhbCI6IHRydWUsCiAgIm92ZXJsYXlfcmVndWxhcl9maWxlcyI6IFsKICAgICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2luZm9ybWVkX2RlY2lzaW9uL3BvbGljeS5weSIKICBdLAogICJvdmVybGF5X2RpcmVjdG9yaWVzIjogWwogICAgIm9wdCIsCiAgICAib3B0L3ZlbnYiLAogICAgIm9wdC92ZW52L2xpYiIsCiAgICAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvaW5mb3JtZWRfZGVjaXNpb24iCiAgXSwKICAicG9saWN5X3NoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIiwKICAicG9saWN5X21vZGUiOiAiMDY0NCIsCiAgImJhc2VfdXNlciI6ICIxMDAwMToxMDAwMSIsCiAgInNvdXJjZV9zY29wZV9sYWJlbHMiOiB7CiAgICAib3JnLm9wZW5jb250YWluZXJzLmltYWdlLnJldmlzaW9uIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5iYXNlLmRpZ2VzdCI6ICJzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgICAic29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgICAic29jaWFsLmNvdWxvbWIucmVsZWFzZS5zY29wZSI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIKICB9LAogICJyZWdpc3RyeV9yZWFkX3JvdXRlIjogImFub255bW91cyBwdWJsaWMgc2NvcGVkIGJlYXJlciBjaGFsbGVuZ2UsIG5vIHRva2VuIHJldGVudGlvbiIsCiAgImltYWdlX2V4ZWN1dGVkIjogZmFsc2UsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlCn0K" + }, + { + "digest": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInNjYW5uZXIiOiAiYXF1YXNlYy90cml2eUBzaGEyNTY6NjJiMWU2NWU4ODY5YmM0YjRjNmFhNGZhMmIyMTU5NTI1NmM3YzJmNjAxOGE5ZDlhZDYxY2FmODcxODdjMTk2OSIsCiAgInZlcnNpb24iOiAiMC43NC4wIiwKICAiZGJfbWV0YWRhdGEiOiB7CiAgICAiVmVyc2lvbiI6IDIsCiAgICAiTmV4dFVwZGF0ZSI6ICIyMDI2LTEwLTExVDE4OjU5OjUwLjg4OTAxMDU3MloiLAogICAgIlVwZGF0ZWRBdCI6ICIyMDI2LTEwLTEwVDE4OjU5OjUwLjg4OTAxMDkyM1oiLAogICAgIkRvd25sb2FkZWRBdCI6ICIyMDI2LTEwLTEwVDIzOjMyOjMyLjM4MDAzMzEzMVoiCiAgfSwKICAic3VwcHJlc3Npb24iOiBmYWxzZSwKICAiaWdub3JlX3VuZml4ZWQiOiBmYWxzZSwKICAic2V2ZXJpdHlfZmlsdGVyIjogbnVsbCwKICAicGFja2FnZV9jb3VudCI6IDQ0LAogICJmaW5kaW5nc19ieV9zZXZlcml0eSI6IHsKICAgICJNRURJVU0iOiAxCiAgfSwKICAiZmluZGluZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6ICJDVkUtMjAyNi04NTA5MSIsCiAgICAgICJwYWNrYWdlIjogInpsaWIiLAogICAgICAiaW5zdGFsbGVkIjogIjEuMy4yLXIwIiwKICAgICAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAgICAgInNldmVyaXR5IjogIk1FRElVTSIKICAgIH0KICBdLAogICJjb3ZlcmFnZV9saW1pdHMiOiBbCiAgICAiQWxwaW5lMy4yNCBhYnNlbnQgc2Nhbm5lciBFT0wgbGlzdDsgT1MgZGV0ZWN0b3IgcmFuIGFnYWluc3QgQWxwaW5lMy4yNCByZXBvc2l0b3J5IG9uMzhPUyBwYWNrYWdlcyIsCiAgICAiS25vd24gZmluZGluZ3MgYXNvZiBwaW5uZWREQiwgbm90IGNsYWltIGFic2VuY2Ugb2YgdW5rbm93biB2dWxuZXJhYmlsaXRpZXMiCiAgXSwKICAiaGlnaF9jcml0aWNhbCI6IDAsCiAgInNhbWVfc2Nhbm5lcl9hY3R1YWxfYmFzZV9zY2FuX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgImJhc2Vfc2Nhbl9maWxlIjogImJhc2UtdHJpdnktZnVsbC5qc29uIgp9Cg==" + }, + { + "digest": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e", + "media_type": "application/json", + "content_base64": "ewogICJTY2hlbWFWZXJzaW9uIjogMiwKICAiVHJpdnkiOiB7CiAgICAiVmVyc2lvbiI6ICIwLjc0LjAiCiAgfSwKICAiUmVwb3J0SUQiOiAiMDFhMTI4OGQtOGRmMS03M2ZiLTkzMTMtMzY0MmRkNjRiYTcyIiwKICAiQ3JlYXRlZEF0IjogIjIwMjYtMTAtMTFUMDE6MjI6MDcuOTg1MjY0NDA0WiIsCiAgIkFydGlmYWN0SUQiOiAic2hhMjU2OjQwZjg3M2I4ZDYzNDUzNDFlMmY2NjFhNTAzOGMwOTJkMTg2ZTI4MzFkYzYwYjYxNzA0YTQxOWExZjRmNzdlZjYiLAogICJBcnRpZmFjdE5hbWUiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIiwKICAiQXJ0aWZhY3RUeXBlIjogImNvbnRhaW5lcl9pbWFnZSIsCiAgIk1ldGFkYXRhIjogewogICAgIlNpemUiOiA4ODI1ODA0OCwKICAgICJPUyI6IHsKICAgICAgIkZhbWlseSI6ICJhbHBpbmUiLAogICAgICAiTmFtZSI6ICIzLjI0LjEiCiAgICB9LAogICAgIkltYWdlSUQiOiAic2hhMjU2OmYzNGRlMjEzNzljNGY1MGVhMDM2MWNhMWQ4Mjk2YzhlNzJmOTg5NDk5YWQyODgwMTZiODEyMDQ5OTdhZTQ3NzkiLAogICAgIkRpZmZJRHMiOiBbCiAgICAgICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIsCiAgICAgICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIsCiAgICAgICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIsCiAgICAgICJzaGEyNTY6NDA5OGFkMDMzNTI1MjYzZjkyYThhOWM1MTg2NTU5NjAyNWQ0NzAxOGUwNzhjMGIxZjdkOWNkNTY2M2ZjMWZmZSIsCiAgICAgICJzaGEyNTY6ZjliNGE4YTQxMmEwYzA3YTQ4OWU0NmZiNWRiNDFmOWQwZGM4NGQ0ZWMzOGE0ZTJjNmFiOTUzMWY0NGUwZDlmMSIsCiAgICAgICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIsCiAgICAgICJzaGEyNTY6MzYxNDMwYTExMTM5Njk3NDNiOTllMjM3YjIwZjAyM2Q1NDk3NDkzYmNmOTZmYjkxYWY5OWFjMGEwZGJjNGE1OSIsCiAgICAgICJzaGEyNTY6Y2ZjNTkzOTY3NGQ2N2Y2MGI0NDExYzI0ZGZjZGU1NjIyYjcxMmVlYjczNzZjZDA5NDFhMjc1MWRhODBhNmIwMiIsCiAgICAgICJzaGEyNTY6MjFmZjkxODhjYjI5Y2E5NWZlOWJlMTEzNTVmNzBhYjU1ODZlODQ5OWUzM2I1MmEyNTNkOTUzZmIzYjc1YWVhMyIKICAgIF0sCiAgICAiUmVwb0RpZ2VzdHMiOiBbCiAgICAgICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiCiAgICBdLAogICAgIlJlZmVyZW5jZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICAgIkltYWdlQ29uZmlnIjogewogICAgICAiYXJjaGl0ZWN0dXJlIjogImFtZDY0IiwKICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0xMVQwMToyMTowNC43ODc1Mjc2OTdaIiwKICAgICAgImRvY2tlcl92ZXJzaW9uIjogIjI3LjUuMSIsCiAgICAgICJoaXN0b3J5IjogWwogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDYtMTZUMDA6MDE6MjkuOTY3MTYxOTAyWiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICJBREQgYWxwaW5lLW1pbmlyb290ZnMtMy4yNC4xLXg4Nl82NC50YXIuZ3ogLyAjIGJ1aWxka2l0IiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA2LTE2VDAwOjAxOjI5Ljk2NzE2MTkwMloiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiQ01EIFtcIi9iaW4vc2hcIl0iLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5WIFBBVEg9L3Vzci9sb2NhbC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluIiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0wOS0wMVQwMDowNToyNC4yMjQ1NDQ4NDNaIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVOViBMQU5HPUMuVVRGLTgiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiUlVOIC9iaW4vc2ggLWMgc2V0IC1ldXg7IFx0YXBrIGFkZCAtLW5vLWNhY2hlIFx0XHRjYS1jZXJ0aWZpY2F0ZXMgXHRcdHR6ZGF0YSBcdDsgIyBidWlsZGtpdCIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0wOS0wMVQwMDowNToyNC4yMjQ1NDQ4NDNaIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVOViBHUEdfS0VZPTcxNjk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5WIFBZVEhPTl9WRVJTSU9OPTMuMTIuMTQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5WIFBZVEhPTl9TSEEyNTY9NWM4NDYyYWY1NzkwYmFmNDNhMzIxYTE1NTlkYmUwZGIwNmQxYmU0MzAwZmI4NWZiNTNjNDAwNjA2NjhlNTQ4YSIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDktMDFUMDA6MTA6MzAuNjcyMjI1OTcyWiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICJSVU4gL2Jpbi9zaCAtYyBzZXQgLWV1eDsgXHRcdGFwayBhZGQgLS1uby1jYWNoZSAtLXZpcnR1YWwgLmJ1aWxkLWRlcHMgXHRcdGJsdWV6LWRldiBcdFx0YnppcDItZGV2IFx0XHRkcGtnLWRldiBkcGtnIFx0XHRmaW5kdXRpbHMgXHRcdGcrKyBcdFx0Z2NjIFx0XHRnZGJtLWRldiBcdFx0Z251cGcgXHRcdGxpYmMtZGV2IFx0XHRsaWJmZmktZGV2IFx0XHRsaWJuc2wtZGV2IFx0XHRsaWJ0aXJwYy1kZXYgXHRcdGxpbnV4LWhlYWRlcnMgXHRcdG1ha2UgXHRcdG5jdXJzZXMtZGV2IFx0XHRvcGVuc3NsLWRldiBcdFx0cGF4LXV0aWxzIFx0XHRyZWFkbGluZS1kZXYgXHRcdHNxbGl0ZS1kZXYgXHRcdHRhciBcdFx0dGNsLWRldiBcdFx0dGsgXHRcdHRrLWRldiBcdFx0dXRpbC1saW51eC1kZXYgXHRcdHh6IFx0XHR4ei1kZXYgXHRcdHpsaWItZGV2IFx0OyBcdFx0d2dldCAtTyBweXRob24udGFyLnh6IFwiaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9mdHAvcHl0aG9uLyR7UFlUSE9OX1ZFUlNJT04lJVthLXpdKn0vUHl0aG9uLSRQWVRIT05fVkVSU0lPTi50YXIueHpcIjsgXHRlY2hvIFwiJFBZVEhPTl9TSEEyNTYgKnB5dGhvbi50YXIueHpcIiB8IHNoYTI1NnN1bSAtYyAtOyBcdHdnZXQgLU8gcHl0aG9uLnRhci54ei5hc2MgXCJodHRwczovL3d3dy5weXRob24ub3JnL2Z0cC9weXRob24vJHtQWVRIT05fVkVSU0lPTiUlW2Etel0qfS9QeXRob24tJFBZVEhPTl9WRVJTSU9OLnRhci54ei5hc2NcIjsgXHRHTlVQR0hPTUU9XCIkKG1rdGVtcCAtZClcIjsgZXhwb3J0IEdOVVBHSE9NRTsgXHRncGcgLS1iYXRjaCAtLWtleXNlcnZlciBoa3BzOi8va2V5cy5vcGVucGdwLm9yZyAtLXJlY3Yta2V5cyBcIiRHUEdfS0VZXCI7IFx0Z3BnIC0tYmF0Y2ggLS12ZXJpZnkgcHl0aG9uLnRhci54ei5hc2MgcHl0aG9uLnRhci54ejsgXHRncGdjb25mIC0ta2lsbCBhbGw7IFx0cm0gLXJmIFwiJEdOVVBHSE9NRVwiIHB5dGhvbi50YXIueHouYXNjOyBcdG1rZGlyIC1wIC91c3Ivc3JjL3B5dGhvbjsgXHR0YXIgLS1leHRyYWN0IC0tZGlyZWN0b3J5IC91c3Ivc3JjL3B5dGhvbiAtLXN0cmlwLWNvbXBvbmVudHM9MSAtLWZpbGUgcHl0aG9uLnRhci54ejsgXHRybSBweXRob24udGFyLnh6OyBcdFx0Y2QgL3Vzci9zcmMvcHl0aG9uOyBcdGdudUFyY2g9XCIkKGRwa2ctYXJjaGl0ZWN0dXJlIC0tcXVlcnkgREVCX0JVSUxEX0dOVV9UWVBFKVwiOyBcdC4vY29uZmlndXJlIFx0XHQtLWJ1aWxkPVwiJGdudUFyY2hcIiBcdFx0LS1lbmFibGUtbG9hZGFibGUtc3FsaXRlLWV4dGVuc2lvbnMgXHRcdC0tZW5hYmxlLW9wdGlvbi1jaGVja2luZz1mYXRhbCBcdFx0LS1lbmFibGUtc2hhcmVkIFx0XHQkKHRlc3QgXCIke2dudUFyY2glJS0qfVwiICE9ICdyaXNjdjY0JyBcdTAwMjZcdTAwMjYgZWNobyAnLS13aXRoLWx0bycpIFx0XHQtLXdpdGgtZW5zdXJlcGlwIFx0OyBcdG5wcm9jPVwiJChucHJvYylcIjsgXHRFWFRSQV9DRkxBR1M9XCItRFRIUkVBRF9TVEFDS19TSVpFPTB4MTAwMDAwXCI7IFx0TERGTEFHUz1cIiR7TERGTEFHUzotfSAtV2wsLS1zdHJpcC1hbGxcIjsgXHRhcmNoPVwiJChhcGsgLS1wcmludC1hcmNoKVwiOyBcdGNhc2UgXCIkYXJjaFwiIGluIFx0XHR4ODZfNjR8YWFyY2g2NCkgXHRcdFx0RVhUUkFfQ0ZMQUdTPVwiJHtFWFRSQV9DRkxBR1M6LX0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLW1uby1vbWl0LWxlYWYtZnJhbWUtcG9pbnRlclwiOyBcdFx0XHQ7OyBcdFx0eDg2KSBcdFx0XHQ7OyBcdFx0KikgXHRcdFx0RVhUUkFfQ0ZMQUdTPVwiJHtFWFRSQV9DRkxBR1M6LX0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXJcIjsgXHRcdFx0OzsgXHRlc2FjOyBcdG1ha2UgLWogXCIkbnByb2NcIiBcdFx0XCJFWFRSQV9DRkxBR1M9JHtFWFRSQV9DRkxBR1M6LX1cIiBcdFx0XCJMREZMQUdTPSR7TERGTEFHUzotfVwiIFx0OyBcdHJtIHB5dGhvbjsgXHRtYWtlIC1qIFwiJG5wcm9jXCIgXHRcdFwiRVhUUkFfQ0ZMQUdTPSR7RVhUUkFfQ0ZMQUdTOi19XCIgXHRcdFwiTERGTEFHUz0ke0xERkxBR1M6LX0gLVdsLC1ycGF0aD0nXFwkXFwkT1JJR0lOLy4uL2xpYidcIiBcdFx0cHl0aG9uIFx0OyBcdG1ha2UgaW5zdGFsbDsgXHRcdGNkIC87IFx0cm0gLXJmIC91c3Ivc3JjL3B5dGhvbjsgXHRcdGZpbmQgL3Vzci9sb2NhbCAtZGVwdGggXHRcdFxcKCBcdFx0XHRcXCggLXR5cGUgZCAtYSBcXCggLW5hbWUgdGVzdCAtbyAtbmFtZSB0ZXN0cyAtbyAtbmFtZSBpZGxlX3Rlc3QgXFwpIFxcKSBcdFx0XHQtbyBcXCggLXR5cGUgZiAtYSBcXCggLW5hbWUgJyoucHljJyAtbyAtbmFtZSAnKi5weW8nIC1vIC1uYW1lICdsaWJweXRob24qLmEnIFxcKSBcXCkgXHRcdFxcKSAtZXhlYyBybSAtcmYgJ3t9JyArIFx0OyBcdFx0ZmluZCAvdXNyL2xvY2FsIC10eXBlIGYgLWV4ZWN1dGFibGUgLW5vdCBcXCggLW5hbWUgJyp0a2ludGVyKicgXFwpIC1leGVjIHNjYW5lbGYgLS1uZWVkZWQgLS1ub2Jhbm5lciAtLWZvcm1hdCAnJW4jcCcgJ3t9JyAnOycgXHRcdHwgdHIgJywnICdcXG4nIFx0XHR8IHNvcnQgLXUgXHRcdHwgYXdrICdzeXN0ZW0oXCJbIC1lIC91c3IvbG9jYWwvbGliL1wiICQxIFwiIF1cIikgPT0gMCB7IG5leHQgfSB7IHByaW50IFwic286XCIgJDEgfScgXHRcdHwgeGFyZ3MgLXJ0IGFwayBhZGQgLS1uby1uZXR3b3JrIC0tdmlydHVhbCAucHl0aG9uLXJ1bmRlcHMgXHQ7IFx0YXBrIGRlbCAtLW5vLW5ldHdvcmsgLmJ1aWxkLWRlcHM7IFx0XHRleHBvcnQgUFlUSE9ORE9OVFdSSVRFQllURUNPREU9MTsgXHRweXRob24zIC0tdmVyc2lvbjsgXHRwaXAzIC0tdmVyc2lvbiAjIGJ1aWxka2l0IiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjEwOjMwLjc4MjcyNjAwM1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiUlVOIC9iaW4vc2ggLWMgc2V0IC1ldXg7IFx0Zm9yIHNyYyBpbiBpZGxlMyBwaXAzIHB5ZG9jMyBweXRob24zIHB5dGhvbjMtY29uZmlnOyBkbyBcdFx0ZHN0PVwiJChlY2hvIFwiJHNyY1wiIHwgdHIgLWQgMylcIjsgXHRcdFsgLXMgXCIvdXNyL2xvY2FsL2Jpbi8kc3JjXCIgXTsgXHRcdFsgISAtZSBcIi91c3IvbG9jYWwvYmluLyRkc3RcIiBdOyBcdFx0bG4gLXN2VCBcIiRzcmNcIiBcIi91c3IvbG9jYWwvYmluLyRkc3RcIjsgXHRkb25lICMgYnVpbGRraXQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDktMDFUMDA6MTA6MzAuNzgyNzI2MDAzWiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICJDTUQgW1wicHl0aG9uM1wiXSIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDktMTFUMDA6NDk6NDcuOTYyMTU2ODc2KzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVOViBQWVRIT05ET05UV1JJVEVCWVRFQ09ERT0xIFBZVEhPTlVOQlVGRkVSRUQ9MSBQQVRIPS9vcHQvdmVudi9iaW46L3Vzci9sb2NhbC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluIiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0wOS0xMVQwMDo0OTo0Ny45NjIxNTY4NzYrMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiUlVOIC9iaW4vc2ggLWMgYXBrIGFkZCAtLW5vLWNhY2hlICdsaWJ1dWlkXHUwMDNlPTIuNDIuMy1yMScgICAgIFx1MDAyNlx1MDAyNiBhZGRncm91cCAtUyAtZyAxMDAwMSBpbmZvcm1lZCAgICAgXHUwMDI2XHUwMDI2IGFkZHVzZXIgLVMgLXUgMTAwMDEgLUcgaW5mb3JtZWQgLUggaW5mb3JtZWQgIyBidWlsZGtpdCIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0wNVQwMTowMzo1NS4zNTE5NDQ5NzgrMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiQ09QWSAvb3B0L3ZlbnYgL29wdC92ZW52ICMgYnVpbGRraXQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMDVUMDE6MDM6NTYuNDYyMDkyMDcyKzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIlJVTiAvYmluL3NoIC1jIHJtIC1yZiAvdXNyL2xvY2FsL2Jpbi9waXAqIC91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9waXAqICAgICAvdXNyL2xvY2FsL2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvc2V0dXB0b29scyogL3Vzci9sb2NhbC9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJjZXMgICAgIC9vcHQvdmVudi9iaW4vcGlwKiAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9waXAqICAgICAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9zZXR1cHRvb2xzKiAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9wa2dfcmVzb3VyY2VzICMgYnVpbGRraXQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMDVUMDE6MDM6NTYuNjc1MjE2ODIxKzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIldPUktESVIgL2FwcCIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0wNVQwMTowMzo1Ni42NzUyMTY4MjErMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiVVNFUiAxMDAwMToxMDAwMSIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMDVUMDE6MDM6NTYuNjc1MjE2ODIxKzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVYUE9TRSBbODA4MC90Y3AgODA4MS90Y3BdIiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0wNVQwMTowMzo1Ni42NzUyMTY4MjErMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5UUllQT0lOVCBbXCJpbmZvcm1lZC1kZWNpc2lvbi1jb250YWluZXJcIl0iLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTEwLTExVDAxOjE1OjExLjk5MTQ0MzY3NloiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiL2Jpbi9zaCAtYyAjKG5vcCkgIEFSRyBTT1VSQ0VfUkVWSVNJT04iLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0xMVQwMToyMTowNC43MTYxMjYzOTJaIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIi9iaW4vc2ggLWMgIyhub3ApICBMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UucmV2aXNpb249M2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYmFzZS5kaWdlc3Q9c2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMgc29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTY9OWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiBzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlPUlORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMTFUMDE6MjE6MDQuNzg3NTI3Njk3WiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICIvYmluL3NoIC1jICMobm9wKSBDT1BZIGZpbGU6MmJlOWNiMzZlNzI1M2UxNTczMzY3MzM1OWNkYThjYWEyMjk4NmI2ODg4ODIyYTAwOGMxYjM2MGQ5MDk5OTRlMCBpbiAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9pbmZvcm1lZF9kZWNpc2lvbi9wb2xpY3kucHkgIgogICAgICAgIH0KICAgICAgXSwKICAgICAgIm9zIjogImxpbnV4IiwKICAgICAgInJvb3RmcyI6IHsKICAgICAgICAidHlwZSI6ICJsYXllcnMiLAogICAgICAgICJkaWZmX2lkcyI6IFsKICAgICAgICAgICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIsCiAgICAgICAgICAic2hhMjU2OjNjYTRiZTJjNmU5YWMwMjIzNzE1MzU1MjUzNzI1MzgxMDAwNDg2YzJiNDViZmNiMjJjZjU3MWI2YTg1YTEyZGQiLAogICAgICAgICAgInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IiwKICAgICAgICAgICJzaGEyNTY6NDA5OGFkMDMzNTI1MjYzZjkyYThhOWM1MTg2NTU5NjAyNWQ0NzAxOGUwNzhjMGIxZjdkOWNkNTY2M2ZjMWZmZSIsCiAgICAgICAgICAic2hhMjU2OmY5YjRhOGE0MTJhMGMwN2E0ODllNDZmYjVkYjQxZjlkMGRjODRkNGVjMzhhNGUyYzZhYjk1MzFmNDRlMGQ5ZjEiLAogICAgICAgICAgInNoYTI1Njo2NDg0NTFhMGRkYTg0YWQwNDY4MWUzMmI1ZWNjN2NkNWQzYTRmMGFkODRmNzgzZTk1OThkNzJiYzY5NjIwZDVjIiwKICAgICAgICAgICJzaGEyNTY6MzYxNDMwYTExMTM5Njk3NDNiOTllMjM3YjIwZjAyM2Q1NDk3NDkzYmNmOTZmYjkxYWY5OWFjMGEwZGJjNGE1OSIsCiAgICAgICAgICAic2hhMjU2OmNmYzU5Mzk2NzRkNjdmNjBiNDQxMWMyNGRmY2RlNTYyMmI3MTJlZWI3Mzc2Y2QwOTQxYTI3NTFkYTgwYTZiMDIiLAogICAgICAgICAgInNoYTI1NjoyMWZmOTE4OGNiMjljYTk1ZmU5YmUxMTM1NWY3MGFiNTU4NmU4NDk5ZTMzYjUyYTI1M2Q5NTNmYjNiNzVhZWEzIgogICAgICAgIF0KICAgICAgfSwKICAgICAgImNvbmZpZyI6IHsKICAgICAgICAiRW50cnlwb2ludCI6IFsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi1jb250YWluZXIiCiAgICAgICAgXSwKICAgICAgICAiRW52IjogWwogICAgICAgICAgIlBBVEg9L29wdC92ZW52L2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLAogICAgICAgICAgIkxBTkc9Qy5VVEYtOCIsCiAgICAgICAgICAiR1BHX0tFWT03MTY5NjA1RjYyQzc1MTM1NkQwNTRBMjZBODIxRTY4MEU1RkE2MzA1IiwKICAgICAgICAgICJQWVRIT05fVkVSU0lPTj0zLjEyLjE0IiwKICAgICAgICAgICJQWVRIT05fU0hBMjU2PTVjODQ2MmFmNTc5MGJhZjQzYTMyMWExNTU5ZGJlMGRiMDZkMWJlNDMwMGZiODVmYjUzYzQwMDYwNjY4ZTU0OGEiLAogICAgICAgICAgIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFPTEiLAogICAgICAgICAgIlBZVEhPTlVOQlVGRkVSRUQ9MSIKICAgICAgICBdLAogICAgICAgICJJbWFnZSI6ICJzaGEyNTY6OTBmMTU3NGY5ZWRhMzVmYTZjYjk3Mjk2MWJlYjI3YTdjYjkwNGMzNjU2MGUzODE5MzBiMGUxNDA2NWMyMzg4MyIsCiAgICAgICAgIkxhYmVscyI6IHsKICAgICAgICAgICJvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYmFzZS5kaWdlc3QiOiAic2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgICAgICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5yZXZpc2lvbiI6ICIzZTRiY2IyNmY4ZWVhYThjNjQzNDVjNTY1NDc3YjVhYzhjY2JiMTY4IiwKICAgICAgICAgICJzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlIjogIklORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAgICAgICAgICJzb2NpYWwuY291bG9tYi5zb3VyY2UucG9saWN5LnNoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIgogICAgICAgIH0sCiAgICAgICAgIlVzZXIiOiAiMTAwMDE6MTAwMDEiLAogICAgICAgICJXb3JraW5nRGlyIjogIi9hcHAiLAogICAgICAgICJFeHBvc2VkUG9ydHMiOiB7CiAgICAgICAgICAiODA4MC90Y3AiOiB7fSwKICAgICAgICAgICI4MDgxL3RjcCI6IHt9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIkxheWVycyI6IFsKICAgICAgewogICAgICAgICJTaXplIjogODY5Nzg1NiwKICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIlNpemUiOiAxNTM4MDQ4LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjQ3MzkzYjY2OGNlNTM1ZDA2ZTg5Njc5MTdkNDI0YzE3N2UyZWNjY2FlODM4NTZkNDhiMmU5OTE2NGY4Y2M2Y2IiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjNjYTRiZTJjNmU5YWMwMjIzNzE1MzU1MjUzNzI1MzgxMDAwNDg2YzJiNDViZmNiMjJjZjU3MWI2YTg1YTEyZGQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDQ3MTUwNTkyLAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDUxMjAsCiAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6ZWQ2MmM5MWNjZDk0ZTM2YTkyOGU5NmQ3MDRjZmNmMjA4NjEzMDI1OTAyNDVjYzEyYWE4OWExNWE1ZDZiZTI5YiIsCiAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NDA5OGFkMDMzNTI1MjYzZjkyYThhOWM1MTg2NTU5NjAyNWQ0NzAxOGUwNzhjMGIxZjdkOWNkNTY2M2ZjMWZmZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJTaXplIjogMTMxNTg0LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OmYwZmUzZTA4YWIwNDZjMGM1ZTI5ZDM0ZWU3M2JjOGM3ZTAzMzk4ZWI4OTFlNDQ5OGUwYTY3MDg4YTVlYTNlODYiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmY5YjRhOGE0MTJhMGMwN2E0ODllNDZmYjVkYjQxZjlkMGRjODRkNGVjMzhhNGUyYzZhYjk1MzFmNDRlMGQ5ZjEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDMwNzA1NjY0LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDEyMjg4LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjE2YTNkYmE2YjcyMGQzMDU5ZWFiOTE4Y2QzNTk2Zjk0MTQ1YWM5Y2Y0ZDQ1NmY5MjVhMjFmMGY3MjUyMjg2M2YiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM2MTQzMGExMTEzOTY5NzQzYjk5ZTIzN2IyMGYwMjNkNTQ5NzQ5M2JjZjk2ZmI5MWFmOTlhYzBhMGRiYzRhNTkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDE1MzYsCiAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6ZTczZGQ0NjRmYmZmNTYwN2NjNjJhMWIyYjY2YjBlZWZlNzM3ZGZhZDRkYjhlN2I1OGE0OGNkYTdjMTJkOTRkMyIsCiAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6Y2ZjNTkzOTY3NGQ2N2Y2MGI0NDExYzI0ZGZjZGU1NjIyYjcxMmVlYjczNzZjZDA5NDFhMjc1MWRhODBhNmIwMiIKICAgICAgfSwKICAgICAgewogICAgICAgICJTaXplIjogMTUzNjAsCiAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6Y2ZlZTI5YzJmODExOWQyYTM5NzE0ZWNiZTUwOTVhMmRjMWM5ODYwNTRmMmUxZmUwYTY1NjUxNjMyNDI0MTdlMyIsCiAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MjFmZjkxODhjYjI5Y2E5NWZlOWJlMTEzNTVmNzBhYjU1ODZlODQ5OWUzM2I1MmEyNTNkOTUzZmIzYjc1YWVhMyIKICAgICAgfQogICAgXQogIH0sCiAgIlJlc3VsdHMiOiBbCiAgICB7CiAgICAgICJUYXJnZXQiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIChhbHBpbmUgMy4yNC4xKSIsCiAgICAgICJDbGFzcyI6ICJvcy1wa2dzIiwKICAgICAgIlR5cGUiOiAiYWxwaW5lIiwKICAgICAgIlBhY2thZ2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJJRCI6ICIucHl0aG9uLXJ1bmRlcHNAMjAyNjA5MDEuMDAxMDI5IiwKICAgICAgICAgICJOYW1lIjogIi5weXRob24tcnVuZGVwcyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvLnB5dGhvbi1ydW5kZXBzQDIwMjYwOTAxLjAwMTAyOT9hcmNoPW5vYXJjaFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjRlMjZjOTlmZWNhYzFlOTciCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMjAyNjA5MDEuMDAxMDI5IiwKICAgICAgICAgICJBcmNoIjogIm5vYXJjaCIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAiZ2RibUAxLjI2LXIwIiwKICAgICAgICAgICAgImxpYmJ6MkAxLjAuOC1yNiIsCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYmZmaUAzLjUuMi1yMSIsCiAgICAgICAgICAgICJsaWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICAgImxpYm5zbEAyLjAuMS1yMiIsCiAgICAgICAgICAgICJsaWJwYW5lbHdANi42X3AyMDI2MDUxNi1yMCIsCiAgICAgICAgICAgICJsaWJzc2wzQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnRpcnBjQDEuMy41LXIxIiwKICAgICAgICAgICAgImxpYnV1aWRAMi40Mi4zLXIxIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiLAogICAgICAgICAgICAicmVhZGxpbmVAOC4zLjMtcjEiLAogICAgICAgICAgICAic3FsaXRlLWxpYnNAMy41My40LXIwIiwKICAgICAgICAgICAgInh6LWxpYnNANS44LjMtcjAiLAogICAgICAgICAgICAiemxpYkAxLjMuMi1yMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo1MWQwYzFlN2Q4OGE0MTQzNDU3OTlmMDMwOTE4NWM2MjUwMTNlZjMyIiwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJhbHBpbmUtYmFzZWxheW91dEAzLjcuMi1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJhbHBpbmUtYmFzZWxheW91dCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLWJhc2VsYXlvdXRAMy43LjItcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIxYjljNTQzMzAwZjgwNzNlIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuNy4yLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJhbHBpbmUtYmFzZWxheW91dCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIzLjcuMi1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgImFscGluZS1iYXNlbGF5b3V0LWRhdGFAMy43LjItcjEiLAogICAgICAgICAgICAiYnVzeWJveC1iaW5zaEAxLjM3LjAtcjMxIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOmYwZmNmZGMyZjRkYTA1OGFmNjQ3M2JjNDVjNGVhYjYyOTE2MjI1YjIiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL21vdGQiLAogICAgICAgICAgICAiZXRjL2Nyb250YWJzL3Jvb3QiLAogICAgICAgICAgICAiZXRjL21vZHByb2JlLmQvYWxpYXNlcy5jb25mIiwKICAgICAgICAgICAgImV0Yy9tb2Rwcm9iZS5kL2JsYWNrbGlzdC5jb25mIiwKICAgICAgICAgICAgImV0Yy9tb2Rwcm9iZS5kL2kzODYuY29uZiIsCiAgICAgICAgICAgICJldGMvcHJvZmlsZS5kLzIwbG9jYWxlLnNoIiwKICAgICAgICAgICAgImV0Yy9wcm9maWxlLmQvUkVBRE1FIiwKICAgICAgICAgICAgImV0Yy9wcm9maWxlLmQvY29sb3JfcHJvbXB0LnNoLmRpc2FibGVkIiwKICAgICAgICAgICAgInVzci9saWIvc3lzY3RsLmQvMDAtYWxwaW5lLmNvbmYiLAogICAgICAgICAgICAidmFyL2xvY2siLAogICAgICAgICAgICAidmFyL3J1biIsCiAgICAgICAgICAgICJ2YXIvc3Bvb2wvbWFpbCIsCiAgICAgICAgICAgICJ2YXIvc3Bvb2wvY3Jvbi9jcm9udGFicyIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYWxwaW5lLWJhc2VsYXlvdXQtZGF0YUAzLjcuMi1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJhbHBpbmUtYmFzZWxheW91dC1kYXRhIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUtYmFzZWxheW91dC1kYXRhQDMuNy4yLXIxP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiZmNjM2NkOTAxMjJkOGFhNyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjcuMi1yMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYWxwaW5lLWJhc2VsYXlvdXQiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy43LjItcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOmM2ZjliZGVkMTdkODQ0YjZmMWIwYmI1NzY2ZDJjMzVjMGQ1Yzg1MDgiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL2ZzdGFiIiwKICAgICAgICAgICAgImV0Yy9ncm91cCIsCiAgICAgICAgICAgICJldGMvaG9zdG5hbWUiLAogICAgICAgICAgICAiZXRjL2hvc3RzIiwKICAgICAgICAgICAgImV0Yy9pbml0dGFiIiwKICAgICAgICAgICAgImV0Yy9tb2R1bGVzIiwKICAgICAgICAgICAgImV0Yy9tdGFiIiwKICAgICAgICAgICAgImV0Yy9uc3N3aXRjaC5jb25mIiwKICAgICAgICAgICAgImV0Yy9wYXNzd2QiLAogICAgICAgICAgICAiZXRjL3Byb2ZpbGUiLAogICAgICAgICAgICAiZXRjL3Byb3RvY29scyIsCiAgICAgICAgICAgICJldGMvc2VydmljZXMiLAogICAgICAgICAgICAiZXRjL3NoYWRvdyIsCiAgICAgICAgICAgICJldGMvc2hlbGxzIiwKICAgICAgICAgICAgImV0Yy9zeXNjdGwuY29uZiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYWxwaW5lLWtleXNAMi42LXIwIiwKICAgICAgICAgICJOYW1lIjogImFscGluZS1rZXlzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUta2V5c0AyLjYtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJjYjFmNmM4ZmE3NDcxM2UwIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjIuNi1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYWxwaW5lLWtleXMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMi42LXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpkOGQ2YjgwZTUzYzA1OWE3N2U0OTE1ZGE3OGJhOTY0ZjNmZmVhMjQwIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgImV0Yy9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAiZXRjL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTI2MWNlY2IucnNhLnB1YiIsCiAgICAgICAgICAgICJldGMvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTY1ZWU1OS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTI0M2VmNGIucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01MjRkMjdiYi5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNjFjZWNiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTgxOTlkY2MucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01OGNiYjQ3Ni5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTU4ZTRmMTdkLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNWU2OWNhNTAucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MGFjMjA5OS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNjVlZTU5LnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2NjZlM2YucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTZhOTcyNC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFiYzIzLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2YWMzYmMucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTZhZGZlYi5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFlMzUwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2ZGIzMGQucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02NmJhMjBmZS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hYXJjaDY0L2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTgxOTlkY2MucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWFyY2g2NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFlMzUwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FybWhmL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTI0ZDI3YmIucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYXJtaGYvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTZhOTcyNC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hcm12Ny9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNGQyN2JiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FybXY3L2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2YWRmZWIucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvbG9vbmdhcmNoNjQvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02NmJhMjBmZS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9taXBzNjQvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01ZTY5Y2E1MC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9wcGM2NGxlL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNThjYmI0NzYucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvcHBjNjRsZS9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFiYzIzLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3Jpc2N2NjQvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MGFjMjA5OS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9yaXNjdjY0L2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2ZGIzMGQucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvczM5MHgvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01OGU0ZjE3ZC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9zMzkweC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFjM2JjLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Ni9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Ni9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNDNlZjRiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Ni9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNjY2ZTNmLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Nl82NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Nl82NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNjFjZWNiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Nl82NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNjVlZTU5LnJzYS5wdWIiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImFscGluZS1yZWxlYXNlQDMuMjQuMS1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJhbHBpbmUtcmVsZWFzZSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLXJlbGVhc2VAMy4yNC4xLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNmNmYWQ2ZjM2ZTFmMzFhYSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjI0LjEtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImFscGluZS1iYXNlIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjMuMjQuMS1yMCIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJNSVQiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgImFscGluZS1rZXlzQDIuNi1yMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpiYzY5MTJhMjVjZGM3NzMzZTAwMzVlZDUwOWVjZWFhNDAyNjk0NmUzIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgImV0Yy9hbHBpbmUtcmVsZWFzZSIsCiAgICAgICAgICAgICJldGMvaXNzdWUiLAogICAgICAgICAgICAiZXRjL29zLXJlbGVhc2UiLAogICAgICAgICAgICAiZXRjL3NlY2ZpeGVzLmQvYWxwaW5lIiwKICAgICAgICAgICAgInVzci9saWIvb3MtcmVsZWFzZSIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYXBrLXRvb2xzQDMuMC42LXIwIiwKICAgICAgICAgICJOYW1lIjogImFway10b29scyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYXBrLXRvb2xzQDMuMC42LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiY2IyNjMzYzg4M2IxN2EwNCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjAuNi1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYXBrLXRvb2xzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjMuMC42LXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIkdQTC0yLjAtb25seSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAiY2EtY2VydGlmaWNhdGVzLWJ1bmRsZUAyMDI2MDYxMS1yMCIsCiAgICAgICAgICAgICJsaWJhcGtAMy4wLjYtcjAiLAogICAgICAgICAgICAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIiwKICAgICAgICAgICAgInpsaWJAMS4zLjItcjAiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MDQzMzMzNTg5Nzk4YTFmNTJlMDlhZTYzZjAyNmM2YzhmYTY3NmQzNCIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJzYmluL2FwayIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYnVzeWJveEAxLjM3LjAtcjMxIiwKICAgICAgICAgICJOYW1lIjogImJ1c3lib3giLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2J1c3lib3hAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjc3MTAyMGM0M2M4NDQwYmYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4zNy4wLXIzMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYnVzeWJveCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjM3LjAtcjMxIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIkdQTC0yLjAtb25seSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJTw7ZyZW4gVGVtcGVsIFx1MDAzY3NvZXJlbithbHBpbmVAc29lcmVuLXRlbXBlbC5uZXRcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6YjU0MDVlYmMwMmY3ZGQ4YmU5NWI2MjY1YzU0YjI0M2Q1NDU2YWI4ZiIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJiaW4vYnVzeWJveCIsCiAgICAgICAgICAgICJldGMvc2VjdXJldHR5IiwKICAgICAgICAgICAgImV0Yy9idXN5Ym94LXBhdGhzLmQvYnVzeWJveCIsCiAgICAgICAgICAgICJldGMvbG9ncm90YXRlLmQvYWNwaWQiLAogICAgICAgICAgICAiZXRjL25ldHdvcmsvaWYtdXAuZC9kYWQiLAogICAgICAgICAgICAiZXRjL3VkaGNwYy91ZGhjcGMuY29uZiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvdWRoY3BjL2RlZmF1bHQuc2NyaXB0IgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJidXN5Ym94LWJpbnNoQDEuMzcuMC1yMzEiLAogICAgICAgICAgIk5hbWUiOiAiYnVzeWJveC1iaW5zaCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYnVzeWJveC1iaW5zaEAxLjM3LjAtcjMxP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMWVjOGEzZDVkMmI2MzI5NyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjM3LjAtcjMxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJidXN5Ym94IiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMzcuMC1yMzEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIlPDtnJlbiBUZW1wZWwgXHUwMDNjc29lcmVuK2FscGluZUBzb2VyZW4tdGVtcGVsLm5ldFx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAiYnVzeWJveEAxLjM3LjAtcjMxIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjVjYmQxNGFjYzZmMTgwNGM1YmFjNmM3N2RjMmM0OTJmMDEwYjBmYzciLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiYmluL3NoIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJjYS1jZXJ0aWZpY2F0ZXNAMjAyNjA2MTEtcjAiLAogICAgICAgICAgIk5hbWUiOiAiY2EtY2VydGlmaWNhdGVzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9jYS1jZXJ0aWZpY2F0ZXNAMjAyNjA2MTEtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIyYTNjMzE2ZWU4M2M2MTk4IgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjIwMjYwNjExLXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJjYS1jZXJ0aWZpY2F0ZXMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMjAyNjA2MTEtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTVBMLTIuMCIsCiAgICAgICAgICAgICJNSVQiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgImJ1c3lib3gtYmluc2hAMS4zNy4wLXIzMSIsCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo0NzM5M2I2NjhjZTUzNWQwNmU4OTY3OTE3ZDQyNGMxNzdlMmVjY2NhZTgzODU2ZDQ4YjJlOTkxNjRmOGNjNmNiIiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6OGYyYTA0YWJlYjU0YjMzMWUyOTcwYTBhMGRmZmI3YmQ2YmRkZTU2NyIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJldGMvY2EtY2VydGlmaWNhdGVzLmNvbmYiLAogICAgICAgICAgICAiZXRjL2Fway9wcm90ZWN0ZWRfcGF0aHMuZC9jYS1jZXJ0aWZpY2F0ZXMubGlzdCIsCiAgICAgICAgICAgICJldGMvY2EtY2VydGlmaWNhdGVzL3VwZGF0ZS5kL2NlcnRoYXNoIiwKICAgICAgICAgICAgInVzci9iaW4vY19yZWhhc2giLAogICAgICAgICAgICAidXNyL3NiaW4vdXBkYXRlLWNhLWNlcnRpZmljYXRlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQUNDVlJBSVoxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQUNfUkFJWl9GTk1ULVJDTS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FDX1JBSVpfRk5NVC1SQ01fU0VSVklET1JFU19TRUdVUk9TLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQU5GX1NlY3VyZV9TZXJ2ZXJfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FjdGFsaXNfQXV0aGVudGljYXRpb25fUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FtYXpvbl9Sb290X0NBXzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9BbWF6b25fUm9vdF9DQV8yLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQW1hem9uX1Jvb3RfQ0FfMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FtYXpvbl9Sb290X0NBXzQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9BdG9zX1RydXN0ZWRSb290XzIwMTEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9BdG9zX1RydXN0ZWRSb290X1Jvb3RfQ0FfRUNDX1RMU18yMDIxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQXRvc19UcnVzdGVkUm9vdF9Sb290X0NBX1JTQV9UTFNfMjAyMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0F1dG9yaWRhZF9kZV9DZXJ0aWZpY2FjaW9uX0Zpcm1hcHJvZmVzaW9uYWxfQ0lGX0E2MjYzNDA2OC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0JKQ0FfR2xvYmFsX1Jvb3RfQ0ExLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQkpDQV9HbG9iYWxfUm9vdF9DQTIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9CdXlwYXNzX0NsYXNzXzJfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0J1eXBhc3NfQ2xhc3NfM19Sb290X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQ0FfRGlzaWdfUm9vdF9SMi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NGQ0FfRVZfUk9PVC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NPTU9ET19FQ0NfQ2VydGlmaWNhdGlvbl9BdXRob3JpdHkuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9DT01PRE9fUlNBX0NlcnRpZmljYXRpb25fQXV0aG9yaXR5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQ2VydGFpbmx5X1Jvb3RfRTEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9DZXJ0YWlubHlfUm9vdF9SMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NlcnRpZ25hX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9DZXJ0dW1fRUMtMzg0X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQ2VydHVtX1RydXN0ZWRfTmV0d29ya19DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NlcnR1bV9UcnVzdGVkX05ldHdvcmtfQ0FfMi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NlcnR1bV9UcnVzdGVkX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9ELVRSVVNUX0JSX1Jvb3RfQ0FfMV8yMDIwLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRC1UUlVTVF9CUl9Sb290X0NBXzJfMjAyMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0QtVFJVU1RfRVZfUm9vdF9DQV8xXzIwMjAuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9ELVRSVVNUX0VWX1Jvb3RfQ0FfMl8yMDIzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRC1UUlVTVF9Sb290X0NsYXNzXzNfQ0FfMl8yMDA5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRC1UUlVTVF9Sb290X0NsYXNzXzNfQ0FfMl9FVl8yMDA5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfQXNzdXJlZF9JRF9Sb290X0cyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfQXNzdXJlZF9JRF9Sb290X0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfR2xvYmFsX1Jvb3RfRzIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9EaWdpQ2VydF9HbG9iYWxfUm9vdF9HMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0RpZ2lDZXJ0X1RMU19FQ0NfUDM4NF9Sb290X0c1LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfVExTX1JTQTQwOTZfUm9vdF9HNS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0RpZ2lDZXJ0X1RydXN0ZWRfUm9vdF9HNC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dEQ0FfVHJ1c3RBVVRIX1I1X1JPT1QuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HVFNfUm9vdF9SMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dUU19Sb290X1IzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvR1RTX1Jvb3RfUjQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HbG9iYWxTaWduX0VDQ19Sb290X0NBXy1fUjQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HbG9iYWxTaWduX0VDQ19Sb290X0NBXy1fUjUuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HbG9iYWxTaWduX1Jvb3RfQ0FfLV9SMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dsb2JhbFNpZ25fUm9vdF9DQV8tX1I2LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvR2xvYmFsU2lnbl9Sb290X0U0Ni5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dsb2JhbFNpZ25fUm9vdF9SNDYuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9Hb19EYWRkeV9Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8tX0cyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSEFSSUNBX1RMU19FQ0NfUm9vdF9DQV8yMDIxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSEFSSUNBX1RMU19SU0FfUm9vdF9DQV8yMDIxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSGVsbGVuaWNfQWNhZGVtaWNfYW5kX1Jlc2VhcmNoX0luc3RpdHV0aW9uc19FQ0NfUm9vdENBXzIwMTUuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9IZWxsZW5pY19BY2FkZW1pY19hbmRfUmVzZWFyY2hfSW5zdGl0dXRpb25zX1Jvb3RDQV8yMDE1LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSGlQS0lfUm9vdF9DQV8tX0cxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSG9uZ2tvbmdfUG9zdF9Sb290X0NBXzMuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JU1JHX1Jvb3RfWDEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JU1JHX1Jvb3RfWDIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JZGVuVHJ1c3RfQ29tbWVyY2lhbF9Sb290X0NBXzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JZGVuVHJ1c3RfUHVibGljX1NlY3Rvcl9Sb290X0NBXzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JemVucGUuY29tLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTWljcm9zZWNfZS1Temlnbm9fUm9vdF9DQV8yMDA5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTWljcm9zb2Z0X0VDQ19Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8yMDE3LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTWljcm9zb2Z0X1JTQV9Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8yMDE3LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTkFWRVJfR2xvYmFsX1Jvb3RfQ2VydGlmaWNhdGlvbl9BdXRob3JpdHkuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9OZXRMb2NrX0FyYW55Xz1DbGFzc19Hb2xkPV9GxZF0YW7DunPDrXR2w6FueS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL09JU1RFX1NlcnZlcl9Sb290X0VDQ19HMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL09JU1RFX1NlcnZlcl9Sb290X1JTQV9HMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL09JU1RFX1dJU2VLZXlfR2xvYmFsX1Jvb3RfR0JfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9PSVNURV9XSVNlS2V5X0dsb2JhbF9Sb290X0dDX0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvUXVvVmFkaXNfUm9vdF9DQV8xX0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvUXVvVmFkaXNfUm9vdF9DQV8yX0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvUXVvVmFkaXNfUm9vdF9DQV8zX0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU1NMLmNvbV9FVl9Sb290X0NlcnRpZmljYXRpb25fQXV0aG9yaXR5X0VDQy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1NTTC5jb21fRVZfUm9vdF9DZXJ0aWZpY2F0aW9uX0F1dGhvcml0eV9SU0FfUjIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TU0wuY29tX1Jvb3RfQ2VydGlmaWNhdGlvbl9BdXRob3JpdHlfRUNDLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU1NMLmNvbV9Sb290X0NlcnRpZmljYXRpb25fQXV0aG9yaXR5X1JTQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1NTTC5jb21fVExTX0VDQ19Sb290X0NBXzIwMjIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TU0wuY29tX1RMU19SU0FfUm9vdF9DQV8yMDIyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU1pBRklSX1JPT1RfQ0EyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU2VjdGlnb19QdWJsaWNfU2VydmVyX0F1dGhlbnRpY2F0aW9uX1Jvb3RfRTQ2LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU2VjdGlnb19QdWJsaWNfU2VydmVyX0F1dGhlbnRpY2F0aW9uX1Jvb3RfUjQ2LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU2VjdXJlU2lnbl9Sb290X0NBMTQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TZWN1cmVTaWduX1Jvb3RfQ0ExNS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1NlY3VyaXR5X0NvbW11bmljYXRpb25fRUNDX1Jvb3RDQTEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TZWN1cml0eV9Db21tdW5pY2F0aW9uX1Jvb3RDQTIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TdGFyZmllbGRfUm9vdF9DZXJ0aWZpY2F0ZV9BdXRob3JpdHlfLV9HMi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1N0YXJmaWVsZF9TZXJ2aWNlc19Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8tX0cyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU3dpc3NTaWduX1JTQV9UTFNfUm9vdF9DQV8yMDIyXy1fMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1QtVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9ULVRlbGVTZWNfR2xvYmFsUm9vdF9DbGFzc18zLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVFVCSVRBS19LYW11X1NNX1NTTF9Lb2tfU2VydGlmaWthc2lfLV9TdXJ1bV8xLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVFdDQV9DWUJFUl9Sb290X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVFdDQV9HbG9iYWxfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RXQ0FfUm9vdF9DZXJ0aWZpY2F0aW9uX0F1dGhvcml0eS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RlbGVrb21fU2VjdXJpdHlfVExTX0VDQ19Sb290XzIwMjAuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9UZWxla29tX1NlY3VyaXR5X1RMU19SU0FfUm9vdF8yMDIzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVGVsaWFfUm9vdF9DQV92Mi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RydXN0QXNpYV9HbG9iYWxfUm9vdF9DQV9HMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RydXN0QXNpYV9HbG9iYWxfUm9vdF9DQV9HNC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RydXN0QXNpYV9UTFNfRUNDX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9UcnVzdEFzaWFfVExTX1JTQV9Sb290X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVHVuVHJ1c3RfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1VDQV9FeHRlbmRlZF9WYWxpZGF0aW9uX1Jvb3QuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9VQ0FfR2xvYmFsX0cyX1Jvb3QuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9VU0VSVHJ1c3RfRUNDX0NlcnRpZmljYXRpb25fQXV0aG9yaXR5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVVNFUlRydXN0X1JTQV9DZXJ0aWZpY2F0aW9uX0F1dGhvcml0eS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL2NlcnRTSUdOX1Jvb3RfQ0FfRzIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lLVN6aWdub19Sb290X0NBXzIwMTcuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lLVN6aWdub19UTFNfUm9vdF9DQV8yMDIzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvZVBLSV9Sb290X0NlcnRpZmljYXRpb25fQXV0aG9yaXR5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvZW1TaWduX0VDQ19Sb290X0NBXy1fQzMuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lbVNpZ25fRUNDX1Jvb3RfQ0FfLV9HMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL2VtU2lnbl9Sb290X0NBXy1fQzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lbVNpZ25fUm9vdF9DQV8tX0cxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvdlRydXNfRUNDX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS92VHJ1c19Sb290X0NBLmNydCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiY2EtY2VydGlmaWNhdGVzLWJ1bmRsZUAyMDI2MDYxMS1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJjYS1jZXJ0aWZpY2F0ZXMtYnVuZGxlIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9jYS1jZXJ0aWZpY2F0ZXMtYnVuZGxlQDIwMjYwNjExLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMjAzMzdjMmVhMjhiZWYyOCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIyMDI2MDYxMS1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiY2EtY2VydGlmaWNhdGVzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIwMjYwNjExLXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1QTC0yLjAiLAogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOmM5NTM0YTAzNzUwYmRmYWUzNDFmMTA5NjkwMTYwOTBmYzExZmViYmQiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL3NzbC9jZXJ0LnBlbSIsCiAgICAgICAgICAgICJldGMvc3NsL2NlcnRzL2NhLWNlcnRpZmljYXRlcy5jcnQiLAogICAgICAgICAgICAiZXRjL3NzbDEuMS9jZXJ0LnBlbSIsCiAgICAgICAgICAgICJldGMvc3NsMS4xL2NlcnRzIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJnZGJtQDEuMjYtcjAiLAogICAgICAgICAgIk5hbWUiOiAiZ2RibSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvZ2RibUAxLjI2LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNWViMWEzZjg2MjYyY2E3NyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjI2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJnZGJtIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMjYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTMuMC1vci1sYXRlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo2MTk0OTNkODEyNGZlNDlhOGVlMWQ4ZjdhMTM3MmNmN2UzOTc3MzM3IiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGliZ2RibS5zby42IiwKICAgICAgICAgICAgInVzci9saWIvbGliZ2RibS5zby42LjAuMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmdkYm1fY29tcGF0LnNvLjQiLAogICAgICAgICAgICAidXNyL2xpYi9saWJnZGJtX2NvbXBhdC5zby40LjAuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAia2V5dXRpbHMtbGlic0AxLjYuMy1yNCIsCiAgICAgICAgICAiTmFtZSI6ICJrZXl1dGlscy1saWJzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9rZXl1dGlscy1saWJzQDEuNi4zLXI0P2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiYTFhMjkxMjBlYjM0MjAzMiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjYuMy1yNCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAia2V5dXRpbHMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS42LjMtcjQiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICJMR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpiNzMzMWM5NmYwNzdmYzM1MjJlZTQzNjFhNDQxZDEwOTcyMDRjZDkwIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlia2V5dXRpbHMuc28uMSIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtleXV0aWxzLnNvLjEuMTAiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImtyYjUtY29uZkAxLjAtcjIiLAogICAgICAgICAgIk5hbWUiOiAia3JiNS1jb25mIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9rcmI1LWNvbmZAMS4wLXIyP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiZTdjZjk0YmE4YjZkYmMzMyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjAtcjIiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImtyYjUtY29uZiIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjAtcjIiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjQwYTExZTA2OTBhNTllMTEwMzY3YjYyYTgwNjYxMDI0ZTk5NDJhMmQiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL2tyYjUuY29uZiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAia3JiNS1saWJzQDEuMjIuMi1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJrcmI1LWxpYnMiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2tyYjUtbGlic0AxLjIyLjItcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICI5NThmOGI0YTRmMDg3ZGFjIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMjIuMi1yMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAia3JiNSIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjIyLjItcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJrZXl1dGlscy1saWJzQDEuNi4zLXI0IiwKICAgICAgICAgICAgImtyYjUtY29uZkAxLjAtcjIiLAogICAgICAgICAgICAibGliY29tX2VyckAxLjQ3LjQtcjAiLAogICAgICAgICAgICAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAgICJsaWJzc2wzQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnZlcnRvQDAuMy4yLXIyIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6ZWYwMjM0NmUyMWI4MTdmZjM3OWU0NjAxZTViMWZjOTc2MGU1ZTMxYSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmdzc2FwaV9rcmI1LnNvLjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJnc3NhcGlfa3JiNS5zby4yLjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJnc3NycGMuc28uNCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmdzc3JwYy5zby40LjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJrNWNyeXB0by5zby4zIiwKICAgICAgICAgICAgInVzci9saWIvbGliazVjcnlwdG8uc28uMy4xIiwKICAgICAgICAgICAgInVzci9saWIvbGlia2FkbTVjbG50X21pdC5zby4xMiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmthZG01Y2xudF9taXQuc28uMTIuMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmthZG01c3J2X21pdC5zby4xMiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmthZG01c3J2X21pdC5zby4xMi4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlia2RiNS5zby4xMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtkYjUuc28uMTAuMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtyYWQuc28uMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtyYWQuc28uMC4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlia3JiNS5zby4zIiwKICAgICAgICAgICAgInVzci9saWIvbGlia3JiNS5zby4zLjMiLAogICAgICAgICAgICAidXNyL2xpYi9saWJrcmI1c3VwcG9ydC5zby4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwKICAgICAgICAgICAgInVzci9saWIva3JiNS9wbHVnaW5zL2tkYi9kYjIuc28iLAogICAgICAgICAgICAidXNyL2xpYi9rcmI1L3BsdWdpbnMvcHJlYXV0aC9vdHAuc28iLAogICAgICAgICAgICAidXNyL2xpYi9rcmI1L3BsdWdpbnMvcHJlYXV0aC9zcGFrZS5zbyIsCiAgICAgICAgICAgICJ1c3IvbGliL2tyYjUvcGx1Z2lucy9wcmVhdXRoL3Rlc3Quc28iLAogICAgICAgICAgICAidXNyL2xpYi9rcmI1L3BsdWdpbnMvdGxzL2s1dGxzLnNvIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJhcGtAMy4wLjYtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGliYXBrIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJhcGtAMy4wLjYtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJhMzViOGI5YjMyMTk1MTNhIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuMC42LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJhcGstdG9vbHMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy4wLjYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnNzbDNAMy41LjgtcjAiLAogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAgICJ6bGliQDEuMy4yLXIwIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjUyM2E4ZjU4MTA0NTg5Zjc0Zjc0M2Q1MDFjODFiZjY1MTcxNTUzNzgiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJhcGsuc28uMy4wLjAiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYmJ6MkAxLjAuOC1yNiIsCiAgICAgICAgICAiTmFtZSI6ICJsaWJiejIiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYmJ6MkAxLjAuOC1yNj9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjQ4ZTE3NTM5NDA0ZTJkNTYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4wLjgtcjYiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImJ6aXAyIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMC44LXI2IiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgImJ6aXAtMi0xLjAuNiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTowODU2NmJhNWM3YWY5N2MyNTQ3NGJlOGIyNGU4YjQ4ZjAxMTZiNjdkIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGliYnoyLnNvLjEiLAogICAgICAgICAgICAidXNyL2xpYi9saWJiejIuc28uMS4wLjgiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYmNvbV9lcnJAMS40Ny40LXIwIiwKICAgICAgICAgICJOYW1lIjogImxpYmNvbV9lcnIiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYmNvbV9lcnJAMS40Ny40LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiM2ZjMzVhM2Y2NmQxOTJhZiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjQ3LjQtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImUyZnNwcm9ncyIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjQ3LjQtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICJMR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiLAogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjRiOWZiNTg5OWVhMGIxYzBjZmJiMmEyYzU5NTI3MDQ0MzdkNGVjZWYiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJjb21fZXJyLnNvLjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJjb21fZXJyLnNvLjIuMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJsaWJjcnlwdG8zIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJjcnlwdG8zQDMuNS44LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNDI5OWJiYTJiYTljOTZhYSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjUuOC1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAib3BlbnNzbCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIzLjUuOC1yMCIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJBcGFjaGUtMi4wIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjFiM2I5ZmMwYzEzNmY0OTM2OTMyYmNiMmVjMjE0OTlmMGFlNWRmZDMiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL3NzbC9jdF9sb2dfbGlzdC5jbmYiLAogICAgICAgICAgICAiZXRjL3NzbC9jdF9sb2dfbGlzdC5jbmYuZGlzdCIsCiAgICAgICAgICAgICJldGMvc3NsL29wZW5zc2wuY25mIiwKICAgICAgICAgICAgImV0Yy9zc2wvb3BlbnNzbC5jbmYuZGlzdCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmNyeXB0by5zby4zIiwKICAgICAgICAgICAgInVzci9saWIvZW5naW5lcy0zL2FmYWxnLnNvIiwKICAgICAgICAgICAgInVzci9saWIvZW5naW5lcy0zL2NhcGkuc28iLAogICAgICAgICAgICAidXNyL2xpYi9lbmdpbmVzLTMvbG9hZGVyX2F0dGljLnNvIiwKICAgICAgICAgICAgInVzci9saWIvZW5naW5lcy0zL3BhZGxvY2suc28iLAogICAgICAgICAgICAidXNyL2xpYi9vc3NsLW1vZHVsZXMvbGVnYWN5LnNvIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJmZmlAMy41LjItcjEiLAogICAgICAgICAgIk5hbWUiOiAibGliZmZpIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJmZmlAMy41LjItcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJkM2VhYTkyMTI4N2IxY2NkIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuNS4yLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJsaWJmZmkiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy41LjItcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjJmN2IyNjFmN2ZjZWNjNGVlYmQ4YjMzMGU3ZjZmYjgwNzEzYmZlM2EiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJmZmkuc28uOCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmZmaS5zby44LjIuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGliaW50bEAxLjAtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGliaW50bCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvbGliaW50bEAxLjAtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIyNWMxODgwOGQ4ZmM4N2UwIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMC1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiZ2V0dGV4dCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjAtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTEdQTC0yLjEtb3ItbGF0ZXIiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiQ2FybG8gTGFuZG1ldGVyIFx1MDAzY2NsYW5kbWV0ZXJAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjI4MmQ2NjQyY2NhYzg3MjM3ZTQzYTg2NDE1OWQ3M2NmNWFiZTc1NTAiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJpbnRsLnNvLjgiLAogICAgICAgICAgICAidXNyL2xpYi9saWJpbnRsLnNvLjguNC42IgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJOYW1lIjogImxpYm5jdXJzZXN3IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiZTg5MzlmNDVlMjE5MWJjYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJuY3Vyc2VzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWC0xMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJNaWxhbiBQLiBTdGFuacSHIFx1MDAzY21wc0BhcnZhbnRhLm5ldFx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAgICJuY3Vyc2VzLXRlcm1pbmZvLWJhc2VANi42X3AyMDI2MDUxNi1yMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo5ZjMxOGU2ZTMyNGQ2ODI3Mjc0ODI5MTk0Y2Y2YWM2YWZiYWRlZDEyIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlibmN1cnNlc3cuc28uNiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYm5jdXJzZXN3LnNvLjYuNiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGlibnNsQDIuMC4xLXIyIiwKICAgICAgICAgICJOYW1lIjogImxpYm5zbCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvbGlibnNsQDIuMC4xLXIyP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiM2Q4OTNjNjBkNDFkYTY3YiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIyLjAuMS1yMiIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAibGlibnNsIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIuMC4xLXIyIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIkxHUEwtMi4wLW9yLWxhdGVyIgogICAgICAgICAgXSwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJpbnRsQDEuMC1yMCIsCiAgICAgICAgICAgICJsaWJ0aXJwY0AxLjMuNS1yMSIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjUxOTRhZGJmMjY1NjBiNTJiZTMxODQ4MWE3YWYyOTRhYjA1ZmQ3OTUiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJuc2wuc28uMyIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYm5zbC5zby4zLjAuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGlicGFuZWx3QDYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGlicGFuZWx3IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJwYW5lbHdANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImVmMWFkOWJiMjU2YjM3MyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJuY3Vyc2VzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWC0xMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJNaWxhbiBQLiBTdGFuacSHIFx1MDAzY21wc0BhcnZhbnRhLm5ldFx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibGlibmN1cnNlc3dANi42X3AyMDI2MDUxNi1yMCIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIiwKICAgICAgICAgICAgIm5jdXJzZXMtdGVybWluZm8tYmFzZUA2LjZfcDIwMjYwNTE2LXIwIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjE0OWJkYzQzNDIzMmVkMTFmYzViYjk3NWJhNTE5YTA3MTU0YTZmNTYiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJwYW5lbHcuc28uNiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnBhbmVsdy5zby42LjYiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYnNzbDNAMy41LjgtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGlic3NsMyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvbGlic3NsM0AzLjUuOC1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImYyOTBhYjU5Yjg4YjFjNGEiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMy41LjgtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogIm9wZW5zc2wiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy41LjgtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiQXBhY2hlLTIuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjVmOWIxZTU1ZDgyMTk1M2QyZTJiMWRiMzIyZGFkNzBhM2I1MDQxZWEiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJzc2wuc28uMyIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGlidGlycGNAMS4zLjUtcjEiLAogICAgICAgICAgIk5hbWUiOiAibGlidGlycGMiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjQDEuMy41LXIxP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNDcxYzhkOTU1Y2EwM2JlNSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjMuNS1yMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAibGlidGlycGMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS4zLjUtcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJrcmI1LWxpYnNAMS4yMi4yLXIxIiwKICAgICAgICAgICAgImxpYnRpcnBjLWNvbmZAMS4zLjUtcjEiLAogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpjMzI4NjViZDg2YThiODgyOWQxNTIyNzljYWJiYzVhYzZkNDMwZWIyIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlidGlycGMuc28uMyIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnRpcnBjLnNvLjMuMC4wIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJ0aXJwYy1jb25mQDEuMy41LXIxIiwKICAgICAgICAgICJOYW1lIjogImxpYnRpcnBjLWNvbmYiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjLWNvbmZAMS4zLjUtcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIzNDM3MzkyYzE0YWFkMzNmIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMy41LXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJsaWJ0aXJwYyIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjMuNS1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MGMxN2Q5OTg4ZGM5ODZjOTBlMjJmNzk3NzhkZjA0N2VjYTk5NzNmZiIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJldGMvYmluZHJlc3Zwb3J0LmJsYWNrbGlzdCIsCiAgICAgICAgICAgICJldGMvbmV0Y29uZmlnIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJ1dWlkQDIuNDIuMy1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJsaWJ1dWlkIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJ1dWlkQDIuNDIuMy1yMT9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImM0NDRlOWNkZDFiZGRhNDAiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMi40Mi4zLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJ1dGlsLWxpbnV4IiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIuNDIuMy1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjpmMGZlM2UwOGFiMDQ2YzBjNWUyOWQzNGVlNzNiYzhjN2UwMzM5OGViODkxZTQ0OThlMGE2NzA4OGE1ZWEzZTg2IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZjliNGE4YTQxMmEwYzA3YTQ4OWU0NmZiNWRiNDFmOWQwZGM4NGQ0ZWMzOGE0ZTJjNmFiOTUzMWY0NGUwZDlmMSIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6OGYwNDFlZjYzN2FkNzVmMzgxY2MwYzAzNGYyYWZiYmIwMzAzMjY0ZSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnV1aWQuc28uMSIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnV1aWQuc28uMS4zLjAiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYnZlcnRvQDAuMy4yLXIyIiwKICAgICAgICAgICJOYW1lIjogImxpYnZlcnRvIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJ2ZXJ0b0AwLjMuMi1yMj9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjlkZjQzMjFhMjgzYTZjZjYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMC4zLjItcjIiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImxpYnZlcnRvIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjAuMy4yLXIyIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJGcmFuY2VzY28gQ29saXN0YSBcdTAwM2NmY29saXN0YUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6NzMyMzMwNTkzMzgxNDJlNGFjNmQ4ZmI4YmIwMDc0ZTkzZGE3NWRjMSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnZlcnRvLnNvLjEiLAogICAgICAgICAgICAidXNyL2xpYi9saWJ2ZXJ0by5zby4xLjAuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAiTmFtZSI6ICJtdXNsIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMWY4Y2I0NGJlZmU1MDNkNCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjIuNi1yMiIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAibXVzbCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjIuNi1yMiIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJNSVQiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MGY3ZTU4MjdlNGUxYTczNjMxYmVkYTI3Yjc4NDMxYThiYTI0MGUwNSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJsaWIvbGQtbXVzbC14ODZfNjQuc28uMSIsCiAgICAgICAgICAgICJsaWIvbGliYy5tdXNsLXg4Nl82NC5zby4xIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJtdXNsLXV0aWxzQDEuMi42LXIyIiwKICAgICAgICAgICJOYW1lIjogIm11c2wtdXRpbHMiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL211c2wtdXRpbHNAMS4yLjYtcjI/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICI0NDk3NDgyZWMxZDk0M2UxIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMi42LXIyIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJtdXNsIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMi42LXIyIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIsCiAgICAgICAgICAgICJCU0QtMi1DbGF1c2UiLAogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAgICJzY2FuZWxmQDEuMy45LXIxIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjc1YWRhM2M0OGQ2M2VjNWQ4N2M0MmZkZjkzNGEzZmRkMTEyOThkYzUiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAic2Jpbi9sZGNvbmZpZyIsCiAgICAgICAgICAgICJ1c3IvYmluL2dldGNvbmYiLAogICAgICAgICAgICAidXNyL2Jpbi9nZXRlbnQiLAogICAgICAgICAgICAidXNyL2Jpbi9pY29udiIsCiAgICAgICAgICAgICJ1c3IvYmluL2xkZCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibmN1cnNlcy10ZXJtaW5mby1iYXNlQDYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIk5hbWUiOiAibmN1cnNlcy10ZXJtaW5mby1iYXNlIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9uY3Vyc2VzLXRlcm1pbmZvLWJhc2VANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImU3ZmFjNWM2YTZlOWFlOCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJuY3Vyc2VzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWC0xMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJNaWxhbiBQLiBTdGFuacSHIFx1MDAzY21wc0BhcnZhbnRhLm5ldFx1MDAzZSIsCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo5ZDU1MWQ4MjhlOWM4ZWU1MmM1ODAxYzFkNjA0NjgyOGViZjE1NzUyIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9hL2FsYWNyaXR0eSIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vYS9hbnNpIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9kL2R1bWIiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2cvZ25vbWUiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2cvZ25vbWUtMjU2Y29sb3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2sva29uc29sZSIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vay9rb25zb2xlLTI1NmNvbG9yIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9rL2tvbnNvbGUtbGludXgiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2wvbGludXgiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3AvcHV0dHkiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3AvcHV0dHktMjU2Y29sb3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Ivcnh2dCIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vci9yeHZ0LTI1NmNvbG9yIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9zL3NjcmVlbiIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zY3JlZW4tMjU2Y29sb3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3QtMC42IiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9zL3N0LTAuNyIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zdC0wLjgiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3QtMC44LjUiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3QtMTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zdC0yNTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zdC1kaXJlY3QiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3VuIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby90L3Rlcm1pbmF0b3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3kiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3ktMC42LjEiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3ktMS4wLjAiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3ktMS44LjEiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdG11eCIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vdC90bXV4LTI1NmNvbG9yIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MTAwIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MTAyIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MjAwIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MjIwIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0NTIiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3YvdnRlIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0ZS0yNTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybSIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybS0yNTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybS1jb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybS14ZnJlZTg2IgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJyZWFkbGluZUA4LjMuMy1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJyZWFkbGluZSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvcmVhZGxpbmVAOC4zLjMtcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJmNTAwNTg3ODFjOTNlMWYyIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjguMy4zLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJyZWFkbGluZSIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICI4LjMuMy1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMy4wLW9yLWxhdGVyIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogInFhcWxhbmQgXHUwMDNjcWFxQHFhcS5sYW5kXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6OTQ1YjE2ZTM3OGJjMDBlNDRkODlkNGRlODEyNGJiYTc2NDdmZGY0ZCIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJldGMvaW5wdXRyYyIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnJlYWRsaW5lLnNvLjgiLAogICAgICAgICAgICAidXNyL2xpYi9saWJyZWFkbGluZS5zby44LjMiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInNjYW5lbGZAMS4zLjktcjEiLAogICAgICAgICAgIk5hbWUiOiAic2NhbmVsZiIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvc2NhbmVsZkAxLjMuOS1yMT9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjkzNjM5NDY1N2ExNjI2ZmIiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4zLjktcjEiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogInBheC11dGlscyIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjMuOS1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MDEzZjkwM2QwYmEyMTk2NzNhZWJiZGQwNGY3NGJiNWVkODJiMDFmMCIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvYmluL3NjYW5lbGYiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInNxbGl0ZS1saWJzQDMuNTMuNC1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJzcWxpdGUtbGlicyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvc3FsaXRlLWxpYnNAMy41My40LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiOGIxMGFlZTJjY2MxOTJkZSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjUzLjQtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogInNxbGl0ZSIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIzLjUzLjQtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiYmxlc3NpbmciCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiSmluZ3l1biBIdWEgXHUwMDNjaHVhamluZ3l1bkBsb29uZ3Nvbi5jblx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpmNzYzMGNlYjM3YzIzMmI2NjA5ODYxYWVhYjZjZGI5Y2QxMjBlNmZhIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlic3FsaXRlMy5zby4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlic3FsaXRlMy5zby4zLjUzLjQiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInNzbF9jbGllbnRAMS4zNy4wLXIzMSIsCiAgICAgICAgICAiTmFtZSI6ICJzc2xfY2xpZW50IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9zc2xfY2xpZW50QDEuMzcuMC1yMzE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJkNDJlMzFmMTVhNGNlNDdhIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMzcuMC1yMzEiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImJ1c3lib3giLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS4zNy4wLXIzMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiU8O2cmVuIFRlbXBlbCBcdTAwM2Nzb2VyZW4rYWxwaW5lQHNvZXJlbi10ZW1wZWwubmV0XHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnNzbDNAMy41LjgtcjAiLAogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpjMjIwZjRhNTEyNWEzMTNhZjczM2U5OGRlZjk0MTMyYmIxZTlkNDBkIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9iaW4vc3NsX2NsaWVudCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAidHpkYXRhQDIwMjZjLXIwIiwKICAgICAgICAgICJOYW1lIjogInR6ZGF0YSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvdHpkYXRhQDIwMjZjLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNTJjNmI1MGVmZjYyOWY5ZCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIyMDI2Yy1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAidHpkYXRhIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIwMjZjLXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIlB1YmxpYy1Eb21haW4iCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo0NzM5M2I2NjhjZTUzNWQwNmU4OTY3OTE3ZDQyNGMxNzdlMmVjY2NhZTgzODU2ZDQ4YjJlOTkxNjRmOGNjNmNiIiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6NjFmNzU0NGVjZDhkZDYzZWFjMjNmZTNlNjQ1NzAyZmRhOTJlZjAyYSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ0VUIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DU1Q2Q0RUIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DdWJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FRVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0VTVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRVNUNUVEVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRWd5cHQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0VpcmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0ZhY3RvcnkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0dCIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9HQi1FaXJlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9HTVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0dNVCswIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9HTVQtMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vR01UMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vR3JlZW53aWNoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9IU1QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0hvbmdrb25nIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9JY2VsYW5kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9JcmFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Jc3JhZWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0phbWFpY2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0phcGFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Ld2FqYWxlaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0xpYnlhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9NRVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL01TVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vTVNUN01EVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vTloiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL05aLUNIQVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL05hdmFqbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUFJDIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QU1Q4UERUIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Qb2xhbmQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BvcnR1Z2FsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9ST0MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1JPSyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vU2luZ2Fwb3JlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9UdXJrZXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VDVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVRDIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Vbml2ZXJzYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1ctU1UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1dFVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vWnVsdSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vaXNvMzE2Ni50YWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL2xlYXAtc2Vjb25kcy5saXN0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9wb3NpeHJ1bGVzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby96b25lLnRhYiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vem9uZTE5NzAudGFiIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQWJpZGphbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0FjY3JhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQWRkaXNfQWJhYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9BbGdpZXJzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQXNtYXJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQXNtZXJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmFtYWtvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmFuZ3VpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmFuanVsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmlzc2F1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmxhbnR5cmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9CcmF6emF2aWxsZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0J1anVtYnVyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0NhaXJvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQ2FzYWJsYW5jYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0NldXRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQ29uYWtyeSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0Rha2FyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvRGFyX2VzX1NhbGFhbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0RqaWJvdXRpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvRG91YWxhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvRWxfQWFpdW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9GcmVldG93biIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0dhYm9yb25lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvSGFyYXJlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvSm9oYW5uZXNidXJnIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvSnViYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0thbXBhbGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9LaGFydG91bSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0tpZ2FsaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0tpbnNoYXNhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTGFnb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9MaWJyZXZpbGxlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTG9tZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0x1YW5kYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0x1YnVtYmFzaGkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9MdXNha2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYWxhYm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYXB1dG8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYXNlcnUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYmFiYW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTW9nYWRpc2h1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTW9ucm92aWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9OYWlyb2JpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTmRqYW1lbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9OaWFtZXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9Ob3Vha2Nob3R0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvT3VhZ2Fkb3Vnb3UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9Qb3J0by1Ob3ZvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvU2FvX1RvbWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9UaW1idWt0dSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL1RyaXBvbGkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9UdW5pcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL1dpbmRob2VrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FkYWsiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQW5jaG9yYWdlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FuZ3VpbGxhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FudGlndWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJhZ3VhaW5hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FydWJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FzdW5jaW9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0F0aWtva2FuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0F0a2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmFoaWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmFoaWFfQmFuZGVyYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmFyYmFkb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmVsZW0iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmVsaXplIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0JsYW5jLVNhYmxvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Cb2FfVmlzdGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQm9nb3RhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0JvaXNlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0J1ZW5vc19BaXJlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYW1icmlkZ2VfQmF5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0NhbXBvX0dyYW5kZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYW5jdW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2FyYWNhcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYXRhbWFyY2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2F5ZW5uZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYXltYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2hpY2FnbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DaGlodWFodWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2l1ZGFkX0p1YXJleiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Db3JhbF9IYXJib3VyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0NvcmRvYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ29zdGFfUmljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Db3loYWlxdWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ3Jlc3RvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DdWlhYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ3VyYWNhbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9EYW5tYXJrc2hhdm4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvRGF3c29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0Rhd3Nvbl9DcmVlayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9EZW52ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvRGV0cm9pdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Eb21pbmljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FZG1vbnRvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FaXJ1bmVwZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FbF9TYWx2YWRvciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FbnNlbmFkYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Gb3J0X05lbHNvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Gb3J0X1dheW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0ZvcnRhbGV6YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9HbGFjZV9CYXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvR29kdGhhYiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Hb29zZV9CYXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvR3JhbmRfVHVyayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9HcmVuYWRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0d1YWRlbG91cGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvR3VhdGVtYWxhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0d1YXlhcXVpbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9HdXlhbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSGFsaWZheCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9IYXZhbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSGVybW9zaWxsbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9JbmRpYW5hcG9saXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW51dmlrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0lxYWx1aXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSmFtYWljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9KdWp1eSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9KdW5lYXUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvS25veF9JTiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9LcmFsZW5kaWprIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0xhX1BheiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9MaW1hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0xvc19BbmdlbGVzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0xvdWlzdmlsbGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTG93ZXJfUHJpbmNlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYWNlaW8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTWFuYWd1YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYW5hdXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTWFyaWdvdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYXJ0aW5pcXVlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01hdGFtb3JvcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYXphdGxhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NZW5kb3phIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01lbm9taW5lZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NZXJpZGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTWV0bGFrYXRsYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NZXhpY29fQ2l0eSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NaXF1ZWxvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Nb25jdG9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01vbnRlcnJleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Nb250ZXZpZGVvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01vbnRyZWFsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01vbnRzZXJyYXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTmFzc2F1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL05ld19Zb3JrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL05pcGlnb24iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTm9tZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Ob3JvbmhhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL051dWsiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvT2ppbmFnYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QYW5hbWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUGFuZ25pcnR1bmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUGFyYW1hcmlibyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QaG9lbml4IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1BvcnQtYXUtUHJpbmNlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUG9ydG9fQWNyZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Qb3J0b19WZWxobyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QdWVydG9fUmljbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QdW50YV9BcmVuYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmFpbnlfUml2ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmFua2luX0lubGV0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1JlY2lmZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9SZWdpbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmVzb2x1dGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmlvX0JyYW5jbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Sb3NhcmlvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1NhbnRhX0lzYWJlbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TYW50YXJlbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TYW50aWFnbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TYW50b19Eb21pbmdvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1Nhb19QYXVsbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TY29yZXNieXN1bmQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU2hpcHJvY2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU2l0a2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU3RfQmFydGhlbGVteSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9Kb2hucyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9LaXR0cyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9MdWNpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9UaG9tYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU3RfVmluY2VudCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Td2lmdF9DdXJyZW50IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RlZ3VjaWdhbHBhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RodWxlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RodW5kZXJfQmF5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RpanVhbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvVG9yb250byIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Ub3J0b2xhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1ZhbmNvdXZlciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9WaXJnaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvV2hpdGVob3JzZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9XaW5uaXBlZyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9ZYWt1dGF0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1llbGxvd2tuaWZlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvQ29tb2RSaXZhZGF2aWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL0NvcmRvYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL0p1anV5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9MYV9SaW9qYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvTWVuZG96YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9TYWx0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvU2FuX0p1YW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL1Nhbl9MdWlzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9Vc2h1YWlhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvS25veCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9JbmRpYW5hL01hcmVuZ28iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW5kaWFuYS9QZXRlcnNidXJnIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvVGVsbF9DaXR5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvVmV2YXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW5kaWFuYS9XaW5hbWFjIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTm9ydGhfRGFrb3RhL05ld19TYWxlbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9DYXNleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9EYXZpcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9NYWNxdWFyaWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FudGFyY3RpY2EvTWF3c29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbnRhcmN0aWNhL01jTXVyZG8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FudGFyY3RpY2EvUGFsbWVyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbnRhcmN0aWNhL1JvdGhlcmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FudGFyY3RpY2EvU291dGhfUG9sZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9TeW93YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9Ucm9sbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9Wb3N0b2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FyY3RpYy9Mb25neWVhcmJ5ZW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQWRlbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9BbG1hdHkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQW1tYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQW5hZHlyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0FxdGF1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0FxdG9iZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9Bc2hnYWJhdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9Bc2hraGFiYWQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQXR5cmF1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0JhZ2hkYWQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQmFocmFpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9CYWt1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0Jhbmdrb2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQmFybmF1bCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9CZWlydXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQmlzaGtlayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9CcnVuZWkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2FsY3V0dGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2hpdGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2hvaWJhbHNhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9DaG9uZ3FpbmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2h1bmdraW5nIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0NvbG9tYm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGFjY2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGFtYXNjdXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGhha2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGlsaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9EdWJhaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9EdXNoYW5iZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9GYW1hZ3VzdGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvR2F6YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9IYXJiaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvSGVicm9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0hvX0NoaV9NaW5oIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0hvbmdfS29uZyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9Ib3ZkIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0lya3V0c2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvSXN0YW5idWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvSmFrYXJ0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9KYXlhcHVyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9KZXJ1c2FsZW0iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2FidWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2FtY2hhdGthIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0thcmFjaGkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2FzaGdhciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LYXRobWFuZHUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2F0bWFuZHUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2hhbmR5Z2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS29sa2F0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LcmFzbm95YXJzayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LdWFsYV9MdW1wdXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS3VjaGluZyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LdXdhaXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTWFjYW8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTWFjYXUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTWFnYWRhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9NYWthc3NhciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9NYW5pbGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTXVzY2F0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL05pY29zaWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTm92b2t1em5ldHNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL05vdm9zaWJpcnNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL09tc2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvT3JhbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9QaG5vbV9QZW5oIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1BvbnRpYW5hayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9QeW9uZ3lhbmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUWF0YXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUW9zdGFuYXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUXl6eWxvcmRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1Jhbmdvb24iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUml5YWRoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1NhaWdvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9TYWtoYWxpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9TYW1hcmthbmQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvU2VvdWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvU2hhbmdoYWkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvU2luZ2Fwb3JlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1NyZWRuZWtvbHltc2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVGFpcGVpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1Rhc2hrZW50IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RiaWxpc2kiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVGVocmFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RlbF9Bdml2IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RoaW1idSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9UaGltcGh1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1Rva3lvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RvbXNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1VqdW5nX1BhbmRhbmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVWxhYW5iYWF0YXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVWxhbl9CYXRvciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9VcnVtcWkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVXN0LU5lcmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVmllbnRpYW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1ZsYWRpdm9zdG9rIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1lha3V0c2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvWWFuZ29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1lla2F0ZXJpbmJ1cmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvWWVyZXZhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvQXpvcmVzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9CZXJtdWRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9DYW5hcnkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL0NhcGVfVmVyZGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL0ZhZXJvZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvRmFyb2UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL0phbl9NYXllbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvTWFkZWlyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvUmV5a2phdmlrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9TdF9IZWxlbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL1N0YW5sZXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9BQ1QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9BZGVsYWlkZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0JyaXNiYW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvQnJva2VuX0hpbGwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9DYW5iZXJyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0N1cnJpZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0RhcndpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0V1Y2xhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvSG9iYXJ0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvTEhJIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvTGluZGVtYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9Mb3JkX0hvd2UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9NZWxib3VybmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9OU1ciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9Ob3J0aCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL1BlcnRoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvUXVlZW5zbGFuZCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL1NvdXRoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvU3lkbmV5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvVGFzbWFuaWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9WaWN0b3JpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL1dlc3QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9ZYW5jb3dpbm5hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9CcmF6aWwvQWNyZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQnJhemlsL0RlTm9yb25oYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQnJhemlsL0Vhc3QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0JyYXppbC9XZXN0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvQXRsYW50aWMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0NhbmFkYS9DZW50cmFsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvRWFzdGVybiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2FuYWRhL01vdW50YWluIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvTmV3Zm91bmRsYW5kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvUGFjaWZpYyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2FuYWRhL1Nhc2thdGNoZXdhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2FuYWRhL1l1a29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DaGlsZS9Db250aW5lbnRhbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2hpbGUvRWFzdGVySXNsYW5kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzAiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQrMSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsxMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsxMSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsxMiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQrNCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCs1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzYiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQrNyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCs4IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVC0xIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTEwIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTExIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTEyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTEzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTE0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtMyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVC00IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtNiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVC03IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTgiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtOSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVDAiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HcmVlbndpY2giLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9VQ1QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9VVEMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9Vbml2ZXJzYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9adWx1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvQW1zdGVyZGFtIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvQW5kb3JyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0FzdHJha2hhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0F0aGVucyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0JlbGZhc3QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9CZWxncmFkZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0JlcmxpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0JyYXRpc2xhdmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9CcnVzc2VscyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0J1Y2hhcmVzdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0J1ZGFwZXN0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvQnVzaW5nZW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9DaGlzaW5hdSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0NvcGVuaGFnZW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9EdWJsaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9HaWJyYWx0YXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9HdWVybnNleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0hlbHNpbmtpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvSXNsZV9vZl9NYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Jc3RhbmJ1bCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0plcnNleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0thbGluaW5ncmFkIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvS2lldiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0tpcm92IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvS3lpdiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0xpc2JvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0xqdWJsamFuYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0xvbmRvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0x1eGVtYm91cmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9NYWRyaWQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9NYWx0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL01hcmllaGFtbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL01pbnNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvTW9uYWNvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvTW9zY293IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvTmljb3NpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL09zbG8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9QYXJpcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1BvZGdvcmljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1ByYWd1ZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1JpZ2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Sb21lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvU2FtYXJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvU2FuX01hcmlubyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1NhcmFqZXZvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvU2FyYXRvdiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1NpbWZlcm9wb2wiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Ta29wamUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Tb2ZpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1N0b2NraG9sbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1RhbGxpbm4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9UaXJhbmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9UaXJhc3BvbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1VseWFub3ZzayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1V6aGdvcm9kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvVmFkdXoiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9WYXRpY2FuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvVmllbm5hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvVmlsbml1cyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1ZvbGdvZ3JhZCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1dhcnNhdyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1phZ3JlYiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1phcG9yb3poeWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9adXJpY2giLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9BbnRhbmFuYXJpdm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9DaGFnb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9DaHJpc3RtYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9Db2NvcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL0NvbW9ybyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL0tlcmd1ZWxlbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL01haGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9NYWxkaXZlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL01hdXJpdGl1cyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL01heW90dGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9SZXVuaW9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9NZXhpY28vQmFqYU5vcnRlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9NZXhpY28vQmFqYVN1ciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vTWV4aWNvL0dlbmVyYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvQXBpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9BdWNrbGFuZCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Cb3VnYWludmlsbGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvQ2hhdGhhbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9DaHV1ayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9FYXN0ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvRWZhdGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvRW5kZXJidXJ5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0Zha2FvZm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvRmlqaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9GdW5hZnV0aSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9HYWxhcGFnb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvR2FtYmllciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9HdWFkYWxjYW5hbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9HdWFtIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0hvbm9sdWx1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0pvaG5zdG9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0thbnRvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9LaXJpdGltYXRpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0tvc3JhZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Ld2FqYWxlaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvTWFqdXJvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL01hcnF1ZXNhcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9NaWR3YXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvTmF1cnUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvTml1ZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Ob3Jmb2xrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL05vdW1lYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9QYWdvX1BhZ28iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUGFsYXUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUGl0Y2Fpcm4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUG9obnBlaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Qb25hcGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUG9ydF9Nb3Jlc2J5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL1Jhcm90b25nYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9TYWlwYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvU2Ftb2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvVGFoaXRpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL1RhcmF3YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Ub25nYXRhcHUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvVHJ1ayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9XYWtlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL1dhbGxpcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9ZYXAiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0FsYXNrYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvQWxldXRpYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0FyaXpvbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0NlbnRyYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0Vhc3QtSW5kaWFuYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvRWFzdGVybiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvSGF3YWlpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9VUy9JbmRpYW5hLVN0YXJrZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvTWljaGlnYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL01vdW50YWluIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9VUy9QYWNpZmljIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9VUy9TYW1vYSIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAieHotbGlic0A1LjguMy1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJ4ei1saWJzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS94ei1saWJzQDUuOC4zLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMWFlNjU4YTVmMTMyYTA5MSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI1LjguMy1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAieHoiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiNS44LjMtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICIwQlNEIiwKICAgICAgICAgICAgIlB1YmxpYy1Eb21haW4iLAogICAgICAgICAgICAiTEdQTC0yLjEtb3ItbGF0ZXIiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6NGM5MmM1YmUwYzViZWY0MDRlOTNjODgwZWJhOTAzN2E5YjE0NzM0NyIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmx6bWEuc28uNSIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmx6bWEuc28uNS44LjMiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInpsaWJAMS4zLjItcjAiLAogICAgICAgICAgIk5hbWUiOiAiemxpYiIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImUzNzA1NGEyOTgyZDZjMTYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogInpsaWIiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWmxpYiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpkZDRjM2QxMDJhY2FlZjJhNzFhMTQ5NTk1MWQ1NWZhYmM4NjgwNjEzIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGliei5zby4xIiwKICAgICAgICAgICAgInVzci9saWIvbGliei5zby4xLjMuMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfQogICAgICBdLAogICAgICAiVnVsbmVyYWJpbGl0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJWdWxuZXJhYmlsaXR5SUQiOiAiQ1ZFLTIwMjYtODUwOTEiLAogICAgICAgICAgIlBrZ0lEIjogInpsaWJAMS4zLjItcjAiLAogICAgICAgICAgIlBrZ05hbWUiOiAiemxpYiIsCiAgICAgICAgICAiUGtnSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImUzNzA1NGEyOTgyZDZjMTYiCiAgICAgICAgICB9LAogICAgICAgICAgIkluc3RhbGxlZFZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAgICAgIkZpeGVkVmVyc2lvbiI6ICIxLjMuMi1yMSIsCiAgICAgICAgICAiU3RhdHVzIjogImZpeGVkIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIlByaW1hcnlVUkwiOiAiaHR0cHM6Ly9hdmQuYXF1YXNlYy5jb20vbnZkL2N2ZS0yMDI2LTg1MDkxIiwKICAgICAgICAgICJEYXRhU291cmNlIjogewogICAgICAgICAgICAiSUQiOiAiYWxwaW5lIiwKICAgICAgICAgICAgIk5hbWUiOiAiQWxwaW5lIFNlY2RiIiwKICAgICAgICAgICAgIlVSTCI6ICJodHRwczovL3NlY2RiLmFscGluZWxpbnV4Lm9yZy8iCiAgICAgICAgICB9LAogICAgICAgICAgIkZpbmdlcnByaW50IjogInNoYTI1NjpkNzNjMDFiMDIwYzU1YWNjMTc0YTNmZGU0N2M4YWY2ZjU2MzhjNThjNzE4OWM4MTdlZGQ2ODYyMDI5ZjZjNWY1IiwKICAgICAgICAgICJUaXRsZSI6ICJ6bGliIHZlcnNpb25zIDEuMy4xLjIgdGhyb3VnaCAxLjMuMiBjb250YWluIGEgaGVhcCBidWZmZXIgb3ZlcmZsb3cgdnVsIC4uLiIsCiAgICAgICAgICAiRGVzY3JpcHRpb24iOiAiemxpYiB2ZXJzaW9ucyAxLjMuMS4yIHRocm91Z2ggMS4zLjIgY29udGFpbiBhIGhlYXAgYnVmZmVyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGd6X3ZhY2F0ZSgpIGZ1bmN0aW9uIHdoZW4gcHJvY2Vzc2luZyBub24tYmxvY2tpbmcgZ3p3cml0ZSgpIG9wZXJhdGlvbnMgd2l0aCBzdGFsZSBleHRlcm5hbCBidWZmZXIgcG9pbnRlcnMuIEF0dGFja2VycyBjYW4gdHJpZ2dlciB0aGUgb3ZlcmZsb3cgYnkgY2FsbGluZyBnenByaW50ZigpIG9yIGd6dnByaW50ZigpIGFmdGVyIGEgd3JpdGUgc3RhbGwsIGNhdXNpbmcgYW4gdW5jaGVja2VkIG1lbW1vdmUoKSB0byB3cml0ZSBiZXlvbmQgdGhlIGludGVybmFsIGlucHV0IGJ1ZmZlciBib3VuZGFyeS4iLAogICAgICAgICAgIlNldmVyaXR5IjogIk1FRElVTSIsCiAgICAgICAgICAiQ3dlSURzIjogWwogICAgICAgICAgICAiQ1dFLTc4NyIKICAgICAgICAgIF0sCiAgICAgICAgICAiVmVuZG9yU2V2ZXJpdHkiOiB7CiAgICAgICAgICAgICJ1YnVudHUiOiAyCiAgICAgICAgICB9LAogICAgICAgICAgIlJlZmVyZW5jZXMiOiBbCiAgICAgICAgICAgICJodHRwczovL2dpc3QuZ2l0aHViLmNvbS90aGVzbWFydHNoYWRvdy9lMGI5NDgxNzkyYWZiN2MzMWU4NmZlZTFmZjA4NDQ5MCIsCiAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vbWFkbGVyL3psaWIiLAogICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL2Jsb2IvdjEuMy4yL2d6d3JpdGUuYyNMMzkzIiwKICAgICAgICAgICAgImh0dHBzOi8vd3d3LmN2ZS5vcmcvQ1ZFUmVjb3JkP2lkPUNWRS0yMDI2LTg1MDkxIiwKICAgICAgICAgICAgImh0dHBzOi8vd3d3LnZ1bG5jaGVjay5jb20vYWR2aXNvcmllcy96bGliLTEuMy4xLjItdGhyb3VnaC0xLjMuMi1oZWFwLWJ1ZmZlci1vdmVyZmxvdy12aWEtZ3otdmFjYXRlIgogICAgICAgICAgXSwKICAgICAgICAgICJQdWJsaXNoZWREYXRlIjogIjIwMjYtMDktMDNUMTM6MDY6MjAuNTczWiIsCiAgICAgICAgICAiTGFzdE1vZGlmaWVkRGF0ZSI6ICIyMDI2LTA5LTA5VDIwOjQxOjA3LjEyM1oiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiVGFyZ2V0IjogIlB5dGhvbiIsCiAgICAgICJDbGFzcyI6ICJsYW5nLXBrZ3MiLAogICAgICAiVHlwZSI6ICJweXRob24tcGtnIiwKICAgICAgIlBhY2thZ2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogIlB5SldUIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6cHlwaS9weWp3dEAyLjE1LjEiLAogICAgICAgICAgICAiVUlEIjogImQzZjVmOWE0MjFiOGFiYzkiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMi4xNS4xIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1Njo2NDg0NTFhMGRkYTg0YWQwNDY4MWUzMmI1ZWNjN2NkNWQzYTRmMGFkODRmNzgzZTk1OThkNzJiYzY5NjIwZDVjIgogICAgICAgICAgfSwKICAgICAgICAgICJGaWxlUGF0aCI6ICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL3B5and0LTIuMTUuMS5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogImNmZmkiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzpweXBpL2NmZmlAMi4xLjEiLAogICAgICAgICAgICAiVUlEIjogIjIxMDQyZTJmMzdlMzNjMDUiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMi4xLjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlULTAiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRmlsZVBhdGgiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9jZmZpLTIuMS4xLmRpc3QtaW5mby9NRVRBREFUQSIsCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJweXRob24tcGtnIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIk5hbWUiOiAiY3J5cHRvZ3JhcGh5IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6cHlwaS9jcnlwdG9ncmFwaHlANTAuMC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJkY2IzZGY2MzgzZmUyYTYwIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjUwLjAuMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJBcGFjaGUtMi4wIE9SIEJTRC0zLUNsYXVzZSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1Njo2NDg0NTFhMGRkYTg0YWQwNDY4MWUzMmI1ZWNjN2NkNWQzYTRmMGFkODRmNzgzZTk1OThkNzJiYzY5NjIwZDVjIgogICAgICAgICAgfSwKICAgICAgICAgICJGaWxlUGF0aCI6ICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2NyeXB0b2dyYXBoeS01MC4wLjEuZGlzdC1pbmZvL01FVEFEQVRBIiwKICAgICAgICAgICJBbmFseXplZEJ5IjogInB5dGhvbi1wa2ciCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOnB5cGkvaW5mb3JtZWQtZGVjaXNpb25AMC4yLjAiLAogICAgICAgICAgICAiVUlEIjogIjc5ODlmMmFmYWU4ZmY1NjgiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMC4yLjAiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRmlsZVBhdGgiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9pbmZvcm1lZF9kZWNpc2lvbi0wLjIuMC5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogInB5Y3BhcnNlciIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOnB5cGkvcHljcGFyc2VyQDMuMCIsCiAgICAgICAgICAgICJVSUQiOiAiZTVhNGQwM2YxNWE2OTVmZiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6ODJmZjE3YjU1NWQ5MTA5NmRkMzI4ZWIxZTgyOWRhYWViYTlhNDhkNzc1NzE0M2QwYjk3YzM1YTcyMWY2ZmI4NyIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgICAgICB9LAogICAgICAgICAgIkZpbGVQYXRoIjogIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvcHljcGFyc2VyLTMuMC5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogIndhaXRyZXNzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6cHlwaS93YWl0cmVzc0AzLjAuMiIsCiAgICAgICAgICAgICJVSUQiOiAiODA2ZTIxOGUxYzFlODVmIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuMC4yIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIlpQTC0yLjEiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRmlsZVBhdGgiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy93YWl0cmVzcy0zLjAuMi5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9CiAgICAgIF0KICAgIH0KICBdCn0K" + }, + { + "digest": "sha256:a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d", + "media_type": "application/json", + "content_base64": "ewogICIkc2NoZW1hIjogImh0dHA6Ly9jeWNsb25lZHgub3JnL3NjaGVtYS9ib20tMS43LnNjaGVtYS5qc29uIiwKICAiYm9tRm9ybWF0IjogIkN5Y2xvbmVEWCIsCiAgInNwZWNWZXJzaW9uIjogIjEuNyIsCiAgInNlcmlhbE51bWJlciI6ICJ1cm46dXVpZDozZWFhYTk0Yi01MTI5LTQxZjMtODJmMi1mOGY1OGFjNTIzOWEiLAogICJ2ZXJzaW9uIjogMSwKICAibWV0YWRhdGEiOiB7CiAgICAidGltZXN0YW1wIjogIjIwMjYtMTAtMTFUMDE6MjI6MzMrMDA6MDAiLAogICAgInRvb2xzIjogewogICAgICAiY29tcG9uZW50cyI6IFsKICAgICAgICB7CiAgICAgICAgICAidHlwZSI6ICJhcHBsaWNhdGlvbiIsCiAgICAgICAgICAibWFudWZhY3R1cmVyIjogewogICAgICAgICAgICAibmFtZSI6ICJBcXVhIFNlY3VyaXR5IFNvZnR3YXJlIEx0ZC4iCiAgICAgICAgICB9LAogICAgICAgICAgImdyb3VwIjogImFxdWFzZWN1cml0eSIsCiAgICAgICAgICAibmFtZSI6ICJ0cml2eSIsCiAgICAgICAgICAidmVyc2lvbiI6ICIwLjc0LjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbXBvbmVudCI6IHsKICAgICAgImJvbS1yZWYiOiAicGtnOm9jaS9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYT9hcmNoPWFtZDY0JnJlcG9zaXRvcnlfdXJsPWZvcmdlam8uY291bG9tYi5zb2NpYWwlMkZjb3Vsb21iJTJGaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidHlwZSI6ICJjb250YWluZXIiLAogICAgICAibmFtZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICAgICAicHVybCI6ICJwa2c6b2NpL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhP2FyY2g9YW1kNjQmcmVwb3NpdG9yeV91cmw9Zm9yZ2Vqby5jb3Vsb21iLnNvY2lhbCUyRmNvdWxvbWIlMkZpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjoyMWZmOTE4OGNiMjljYTk1ZmU5YmUxMTM1NWY3MGFiNTU4NmU4NDk5ZTMzYjUyYTI1M2Q5NTNmYjNiNzVhZWEzIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6RGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzYxNDMwYTExMTM5Njk3NDNiOTllMjM3YjIwZjAyM2Q1NDk3NDkzYmNmOTZmYjkxYWY5OWFjMGEwZGJjNGE1OSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjozY2E0YmUyYzZlOWFjMDIyMzcxNTM1NTI1MzcyNTM4MTAwMDQ4NmMyYjQ1YmZjYjIyY2Y1NzFiNmE4NWExMmRkIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjQwOThhZDAzMzUyNTI2M2Y5MmE4YTljNTE4NjU1OTYwMjVkNDcwMThlMDc4YzBiMWY3ZDljZDU2NjNmYzFmZmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6RGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjpjZmM1OTM5Njc0ZDY3ZjYwYjQ0MTFjMjRkZmNkZTU2MjJiNzEyZWViNzM3NmNkMDk0MWEyNzUxZGE4MGE2YjAyIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6RGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZjliNGE4YTQxMmEwYzA3YTQ4OWU0NmZiNWRiNDFmOWQwZGM4NGQ0ZWMzOGE0ZTJjNmFiOTUzMWY0NGUwZDlmMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpJbWFnZUlEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZjM0ZGUyMTM3OWM0ZjUwZWEwMzYxY2ExZDgyOTZjOGU3MmY5ODk0OTlhZDI4ODAxNmI4MTIwNDk5N2FlNDc3OSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYWJlbHM6b3JnLm9wZW5jb250YWluZXJzLmltYWdlLmJhc2UuZGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYWJlbHM6b3JnLm9wZW5jb250YWluZXJzLmltYWdlLnJldmlzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIzZTRiY2IyNmY4ZWVhYThjNjQzNDVjNTY1NDc3YjVhYzhjY2JiMTY4IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxhYmVsczpzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYWJlbHM6c29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTYiLAogICAgICAgICAgInZhbHVlIjogIjlkN2MxYmU0Y2I2MTk5ZDE0ZWYwYWFlYWQ1Zjg1OTUxZjQ1YjBjY2JkN2M4MDBhN2ZkZTkyMmEyNTM1NjZiNjIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UmVmZXJlbmNlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UmVwb0RpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNjaGVtYVZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U2l6ZSIsCiAgICAgICAgICAidmFsdWUiOiAiODgyNTgwNDgiCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgfSwKICAiY29tcG9uZW50cyI6IFsKICAgIHsKICAgICAgImJvbS1yZWYiOiAiNWI3MTI5OWUtM2MwYy00YzRmLWJkMjktODY1ZmIxNGUxNzU4IiwKICAgICAgInR5cGUiOiAib3BlcmF0aW5nLXN5c3RlbSIsCiAgICAgICJuYW1lIjogImFscGluZSIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpDbGFzcyIsCiAgICAgICAgICAidmFsdWUiOiAib3MtcGtncyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS8ucHl0aG9uLXJ1bmRlcHNAMjAyNjA5MDEuMDAxMDI5P2FyY2g9bm9hcmNoJmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgIm5hbWUiOiAiLnB5dGhvbi1ydW5kZXBzIiwKICAgICAgInZlcnNpb24iOiAiMjAyNjA5MDEuMDAxMDI5IiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjUxZDBjMWU3ZDg4YTQxNDM0NTc5OWYwMzA5MTg1YzYyNTAxM2VmMzIiCiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS8ucHl0aG9uLXJ1bmRlcHNAMjAyNjA5MDEuMDAxMDI5P2FyY2g9bm9hcmNoJmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAiLnB5dGhvbi1ydW5kZXBzQDIwMjYwOTAxLjAwMTAyOSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUtYmFzZWxheW91dC1kYXRhQDMuNy4yLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImFscGluZS1iYXNlbGF5b3V0LWRhdGEiLAogICAgICAidmVyc2lvbiI6ICIzLjcuMi1yMSIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICJjNmY5YmRlZDE3ZDg0NGI2ZjFiMGJiNTc2NmQyYzM1YzBkNWM4NTA4IgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLWJhc2VsYXlvdXQtZGF0YUAzLjcuMi1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImFscGluZS1iYXNlbGF5b3V0LWRhdGFAMy43LjItcjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZS1iYXNlbGF5b3V0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjMuNy4yLXIxIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLWJhc2VsYXlvdXRAMy43LjItcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAiYWxwaW5lLWJhc2VsYXlvdXQiLAogICAgICAidmVyc2lvbiI6ICIzLjcuMi1yMSIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICJmMGZjZmRjMmY0ZGEwNThhZjY0NzNiYzQ1YzRlYWI2MjkxNjIyNWIyIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLWJhc2VsYXlvdXRAMy43LjItcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUtYmFzZWxheW91dEAzLjcuMi1yMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lLWJhc2VsYXlvdXQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMy43LjItcjEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUta2V5c0AyLjYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAiYWxwaW5lLWtleXMiLAogICAgICAidmVyc2lvbiI6ICIyLjYtcjAiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiZDhkNmI4MGU1M2MwNTlhNzdlNDkxNWRhNzhiYTk2NGYzZmZlYTI0MCIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1JVCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2FscGluZS1rZXlzQDIuNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImFscGluZS1rZXlzQDIuNi1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lLWtleXMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMi42LXIwIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLXJlbGVhc2VAMy4yNC4xLXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImFscGluZS1yZWxlYXNlIiwKICAgICAgInZlcnNpb24iOiAiMy4yNC4xLXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogImJjNjkxMmEyNWNkYzc3MzNlMDAzNWVkNTA5ZWNlYWE0MDI2OTQ2ZTMiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJNSVQiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUtcmVsZWFzZUAzLjI0LjEtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUtcmVsZWFzZUAzLjI0LjEtcjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZS1iYXNlIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjMuMjQuMS1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2Fway10b29sc0AzLjAuNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJhcGstdG9vbHMiLAogICAgICAidmVyc2lvbiI6ICIzLjAuNi1yMCIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICIwNDMzMzM1ODk3OThhMWY1MmUwOWFlNjNmMDI2YzZjOGZhNjc2ZDM0IgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvYXBrLXRvb2xzQDMuMC42LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAiYXBrLXRvb2xzQDMuMC42LXIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNOYW1lIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhcGstdG9vbHMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMy4wLjYtcjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9idXN5Ym94LWJpbnNoQDEuMzcuMC1yMzE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiU8O2cmVuIFRlbXBlbCA8c29lcmVuK2FscGluZUBzb2VyZW4tdGVtcGVsLm5ldD4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImJ1c3lib3gtYmluc2giLAogICAgICAidmVyc2lvbiI6ICIxLjM3LjAtcjMxIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjVjYmQxNGFjYzZmMTgwNGM1YmFjNmM3N2RjMmM0OTJmMDEwYjBmYzciCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9idXN5Ym94LWJpbnNoQDEuMzcuMC1yMzE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJidXN5Ym94LWJpbnNoQDEuMzcuMC1yMzEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImJ1c3lib3giCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMS4zNy4wLXIzMSIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2J1c3lib3hAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJTw7ZyZW4gVGVtcGVsIDxzb2VyZW4rYWxwaW5lQHNvZXJlbi10ZW1wZWwubmV0PiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAiYnVzeWJveCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMzcuMC1yMzEiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiYjU0MDVlYmMwMmY3ZGQ4YmU5NWI2MjY1YzU0YjI0M2Q1NDU2YWI4ZiIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkdQTC0yLjAtb25seSIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2J1c3lib3hAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImJ1c3lib3hAMS4zNy4wLXIzMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiYnVzeWJveCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjM3LjAtcjMxIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvY2EtY2VydGlmaWNhdGVzLWJ1bmRsZUAyMDI2MDYxMS1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJjYS1jZXJ0aWZpY2F0ZXMtYnVuZGxlIiwKICAgICAgInZlcnNpb24iOiAiMjAyNjA2MTEtcjAiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiYzk1MzRhMDM3NTBiZGZhZTM0MWYxMDk2OTAxNjA5MGZjMTFmZWJiZCIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1QTC0yLjAiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1JVCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2NhLWNlcnRpZmljYXRlcy1idW5kbGVAMjAyNjA2MTEtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJjYS1jZXJ0aWZpY2F0ZXMtYnVuZGxlQDIwMjYwNjExLXIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNOYW1lIiwKICAgICAgICAgICJ2YWx1ZSI6ICJjYS1jZXJ0aWZpY2F0ZXMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMjAyNjA2MTEtcjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9jYS1jZXJ0aWZpY2F0ZXNAMjAyNjA2MTEtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAiY2EtY2VydGlmaWNhdGVzIiwKICAgICAgInZlcnNpb24iOiAiMjAyNjA2MTEtcjAiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiOGYyYTA0YWJlYjU0YjMzMWUyOTcwYTBhMGRmZmI3YmQ2YmRkZTU2NyIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1QTC0yLjAiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1JVCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2NhLWNlcnRpZmljYXRlc0AyMDI2MDYxMS1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjQ3MzkzYjY2OGNlNTM1ZDA2ZTg5Njc5MTdkNDI0YzE3N2UyZWNjY2FlODM4NTZkNDhiMmU5OTE2NGY4Y2M2Y2IiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImNhLWNlcnRpZmljYXRlc0AyMDI2MDYxMS1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiY2EtY2VydGlmaWNhdGVzIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjIwMjYwNjExLXIwIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvZ2RibUAxLjI2LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImdkYm0iLAogICAgICAidmVyc2lvbiI6ICIxLjI2LXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjYxOTQ5M2Q4MTI0ZmU0OWE4ZWUxZDhmN2ExMzcyY2Y3ZTM5NzczMzciCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJHUEwtMy4wLW9yLWxhdGVyIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvZ2RibUAxLjI2LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAiZ2RibUAxLjI2LXIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNOYW1lIiwKICAgICAgICAgICJ2YWx1ZSI6ICJnZGJtIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjEuMjYtcjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9rZXl1dGlscy1saWJzQDEuNi4zLXI0P2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImtleXV0aWxzLWxpYnMiLAogICAgICAidmVyc2lvbiI6ICIxLjYuMy1yNCIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICJiNzMzMWM5NmYwNzdmYzM1MjJlZTQzNjFhNDQxZDEwOTcyMDRjZDkwIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTEdQTC0yLjAtb3ItbGF0ZXIiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9rZXl1dGlscy1saWJzQDEuNi4zLXI0P2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAia2V5dXRpbHMtbGlic0AxLjYuMy1yNCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAia2V5dXRpbHMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMS42LjMtcjQiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9rcmI1LWNvbmZAMS4wLXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImtyYjUtY29uZiIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMC1yMiIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICI0MGExMWUwNjkwYTU5ZTExMDM2N2I2MmE4MDY2MTAyNGU5OTQyYTJkIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTUlUIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUva3JiNS1jb25mQDEuMC1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImtyYjUtY29uZkAxLjAtcjIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImtyYjUtY29uZiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjAtcjIiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9rcmI1LWxpYnNAMS4yMi4yLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImtyYjUtbGlicyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMjIuMi1yMSIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICJlZjAyMzQ2ZTIxYjgxN2ZmMzc5ZTQ2MDFlNWIxZmM5NzYwZTVlMzFhIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTUlUIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUva3JiNS1saWJzQDEuMjIuMi1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImtyYjUtbGlic0AxLjIyLjItcjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImtyYjUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMS4yMi4yLXIxIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbGliYXBrQDMuMC42LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImxpYmFwayIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMC42LXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjUyM2E4ZjU4MTA0NTg5Zjc0Zjc0M2Q1MDFjODFiZjY1MTcxNTUzNzgiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9saWJhcGtAMy4wLjYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJsaWJhcGtAMy4wLjYtcjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImFway10b29scyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIzLjAuNi1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2xpYmJ6MkAxLjAuOC1yNj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJsaWJiejIiLAogICAgICAidmVyc2lvbiI6ICIxLjAuOC1yNiIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICIwODU2NmJhNWM3YWY5N2MyNTQ3NGJlOGIyNGU4YjQ4ZjAxMTZiNjdkIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAibmFtZSI6ICJiemlwLTItMS4wLjYiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9saWJiejJAMS4wLjgtcjY/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJsaWJiejJAMS4wLjgtcjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImJ6aXAyIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjEuMC44LXI2IgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbGliY29tX2VyckAxLjQ3LjQtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAibGliY29tX2VyciIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNDcuNC1yMCIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICI0YjlmYjU4OTllYTBiMWMwY2ZiYjJhMmM1OTUyNzA0NDM3ZDRlY2VmIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTEdQTC0yLjAtb3ItbGF0ZXIiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkJTRC0zLUNsYXVzZSIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTUlUIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbGliY29tX2VyckAxLjQ3LjQtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJsaWJjb21fZXJyQDEuNDcuNC1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiZTJmc3Byb2dzIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjEuNDcuNC1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2xpYmNyeXB0bzNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAibGliY3J5cHRvMyIsCiAgICAgICJ2ZXJzaW9uIjogIjMuNS44LXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjFiM2I5ZmMwYzEzNmY0OTM2OTMyYmNiMmVjMjE0OTlmMGFlNWRmZDMiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJBcGFjaGUtMi4wIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbGliY3J5cHRvM0AzLjUuOC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImxpYmNyeXB0bzNAMy41LjgtcjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogIm9wZW5zc2wiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMy41LjgtcjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJmZmlAMy41LjItcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAibGliZmZpIiwKICAgICAgInZlcnNpb24iOiAiMy41LjItcjEiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiMmY3YjI2MWY3ZmNlY2M0ZWViZDhiMzMwZTdmNmZiODA3MTNiZmUzYSIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1JVCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2xpYmZmaUAzLjUuMi1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImxpYmZmaUAzLjUuMi1yMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAibGliZmZpIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjMuNS4yLXIxIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbGliaW50bEAxLjAtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiQ2FybG8gTGFuZG1ldGVyIDxjbGFuZG1ldGVyQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImxpYmludGwiLAogICAgICAidmVyc2lvbiI6ICIxLjAtcjAiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiMjgyZDY2NDJjY2FjODcyMzdlNDNhODY0MTU5ZDczY2Y1YWJlNzU1MCIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkxHUEwtMi4xLW9yLWxhdGVyIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbGliaW50bEAxLjAtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJsaWJpbnRsQDEuMC1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiZ2V0dGV4dCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjAtcjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk1pbGFuIFAuIFN0YW5pxIcgPG1wc0BhcnZhbnRhLm5ldD4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImxpYm5jdXJzZXN3IiwKICAgICAgInZlcnNpb24iOiAiNi42X3AyMDI2MDUxNi1yMCIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICI5ZjMxOGU2ZTMyNGQ2ODI3Mjc0ODI5MTk0Y2Y2YWM2YWZiYWRlZDEyIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAibmFtZSI6ICJYLTExIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbGlibmN1cnNlc3dANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImxpYm5jdXJzZXN3QDYuNl9wMjAyNjA1MTYtcjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogIm5jdXJzZXMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiNi42X3AyMDI2MDUxNi1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2xpYm5zbEAyLjAuMS1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJuYW1lIjogImxpYm5zbCIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMC4xLXIyIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjUxOTRhZGJmMjY1NjBiNTJiZTMxODQ4MWE3YWYyOTRhYjA1ZmQ3OTUiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJMR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2xpYm5zbEAyLjAuMS1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImxpYm5zbEAyLjAuMS1yMiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAibGlibnNsIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjIuMC4xLXIyIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbGlicGFuZWx3QDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTWlsYW4gUC4gU3RhbmnEhyA8bXBzQGFydmFudGEubmV0PiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAibGlicGFuZWx3IiwKICAgICAgInZlcnNpb24iOiAiNi42X3AyMDI2MDUxNi1yMCIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICIxNDliZGM0MzQyMzJlZDExZmM1YmI5NzViYTUxOWEwNzE1NGE2ZjU2IgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAibmFtZSI6ICJYLTExIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbGlicGFuZWx3QDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJsaWJwYW5lbHdANi42X3AyMDI2MDUxNi1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAibmN1cnNlcyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICI2LjZfcDIwMjYwNTE2LXIwIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbGlic3NsM0AzLjUuOC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJsaWJzc2wzIiwKICAgICAgInZlcnNpb24iOiAiMy41LjgtcjAiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiNWY5YjFlNTVkODIxOTUzZDJlMmIxZGIzMjJkYWQ3MGEzYjUwNDFlYSIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkFwYWNoZS0yLjAiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9saWJzc2wzQDMuNS44LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAibGlic3NsM0AzLjUuOC1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAib3BlbnNzbCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIzLjUuOC1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjLWNvbmZAMS4zLjUtcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAibGlidGlycGMtY29uZiIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMy41LXIxIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjBjMTdkOTk4OGRjOTg2YzkwZTIyZjc5Nzc4ZGYwNDdlY2E5OTczZmYiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJCU0QtMy1DbGF1c2UiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9saWJ0aXJwYy1jb25mQDEuMy41LXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAibGlidGlycGMtY29uZkAxLjMuNS1yMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAibGlidGlycGMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMS4zLjUtcjEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJ0aXJwY0AxLjMuNS1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJsaWJ0aXJwYyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMy41LXIxIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogImMzMjg2NWJkODZhOGI4ODI5ZDE1MjI3OWNhYmJjNWFjNmQ0MzBlYjIiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJCU0QtMy1DbGF1c2UiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9saWJ0aXJwY0AxLjMuNS1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogImxpYnRpcnBjQDEuMy41LXIxIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNOYW1lIiwKICAgICAgICAgICJ2YWx1ZSI6ICJsaWJ0aXJwYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjMuNS1yMSIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL2xpYnV1aWRAMi40Mi4zLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImxpYnV1aWQiLAogICAgICAidmVyc2lvbiI6ICIyLjQyLjMtcjEiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiOGYwNDFlZjYzN2FkNzVmMzgxY2MwYzAzNGYyYWZiYmIwMzAzMjY0ZSIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkJTRC0zLUNsYXVzZSIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2xpYnV1aWRAMi40Mi4zLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjpmOWI0YThhNDEyYTBjMDdhNDg5ZTQ2ZmI1ZGI0MWY5ZDBkYzg0ZDRlYzM4YTRlMmM2YWI5NTMxZjQ0ZTBkOWYxIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZjBmZTNlMDhhYjA0NmMwYzVlMjlkMzRlZTczYmM4YzdlMDMzOThlYjg5MWU0NDk4ZTBhNjcwODhhNWVhM2U4NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAibGlidXVpZEAyLjQyLjMtcjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogInV0aWwtbGludXgiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMi40Mi4zLXIxIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbGlidmVydG9AMC4zLjItcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiRnJhbmNlc2NvIENvbGlzdGEgPGZjb2xpc3RhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogImxpYnZlcnRvIiwKICAgICAgInZlcnNpb24iOiAiMC4zLjItcjIiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiNzMyMzMwNTkzMzgxNDJlNGFjNmQ4ZmI4YmIwMDc0ZTkzZGE3NWRjMSIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1JVCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL2xpYnZlcnRvQDAuMy4yLXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAibGlidmVydG9AMC4zLjItcjIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogImxpYnZlcnRvIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjAuMy4yLXIyIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvbXVzbC11dGlsc0AxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJtdXNsLXV0aWxzIiwKICAgICAgInZlcnNpb24iOiAiMS4yLjYtcjIiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiNzVhZGEzYzQ4ZDYzZWM1ZDg3YzQyZmRmOTM0YTNmZGQxMTI5OGRjNSIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIk1JVCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiQlNELTItQ2xhdXNlIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJHUEwtMi4wLW9yLWxhdGVyIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbXVzbC11dGlsc0AxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogIm11c2wtdXRpbHNAMS4yLjYtcjIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogIm11c2wiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMS4yLjYtcjIiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogIm11c2wiLAogICAgICAidmVyc2lvbiI6ICIxLjIuNi1yMiIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICIwZjdlNTgyN2U0ZTFhNzM2MzFiZWRhMjdiNzg0MzFhOGJhMjQwZTA1IgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTUlUIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogIm11c2xAMS4yLjYtcjIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogIm11c2wiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiMS4yLjYtcjIiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9uY3Vyc2VzLXRlcm1pbmZvLWJhc2VANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJNaWxhbiBQLiBTdGFuacSHIDxtcHNAYXJ2YW50YS5uZXQ+IgogICAgICB9LAogICAgICAibmFtZSI6ICJuY3Vyc2VzLXRlcm1pbmZvLWJhc2UiLAogICAgICAidmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjlkNTUxZDgyOGU5YzhlZTUyYzU4MDFjMWQ2MDQ2ODI4ZWJmMTU3NTIiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJuYW1lIjogIlgtMTEiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS9uY3Vyc2VzLXRlcm1pbmZvLWJhc2VANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogIm5jdXJzZXMtdGVybWluZm8tYmFzZUA2LjZfcDIwMjYwNTE2LXIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogImFscGluZSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNOYW1lIiwKICAgICAgICAgICJ2YWx1ZSI6ICJuY3Vyc2VzIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjYuNl9wMjAyNjA1MTYtcjAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9yZWFkbGluZUA4LjMuMy1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJxYXFsYW5kIDxxYXFAcWFxLmxhbmQ+IgogICAgICB9LAogICAgICAibmFtZSI6ICJyZWFkbGluZSIsCiAgICAgICJ2ZXJzaW9uIjogIjguMy4zLXIxIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjk0NWIxNmUzNzhiYzAwZTQ0ZDg5ZDRkZTgxMjRiYmE3NjQ3ZmRmNGQiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJHUEwtMy4wLW9yLWxhdGVyIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvcmVhZGxpbmVAOC4zLjMtcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJyZWFkbGluZUA4LjMuMy1yMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAicmVhZGxpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjVmVyc2lvbiIsCiAgICAgICAgICAidmFsdWUiOiAiOC4zLjMtcjEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6YXBrL2FscGluZS9zY2FuZWxmQDEuMy45LXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogInNjYW5lbGYiLAogICAgICAidmVyc2lvbiI6ICIxLjMuOS1yMSIsCiAgICAgICJoYXNoZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImFsZyI6ICJTSEEtMSIsCiAgICAgICAgICAiY29udGVudCI6ICIwMTNmOTAzZDBiYTIxOTY3M2FlYmJkZDA0Zjc0YmI1ZWQ4MmIwMWYwIgogICAgICAgIH0KICAgICAgXSwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUvc2NhbmVsZkAxLjMuOS1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogInNjYW5lbGZAMS4zLjktcjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogInBheC11dGlscyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjMuOS1yMSIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL3NxbGl0ZS1saWJzQDMuNTMuNC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJKaW5neXVuIEh1YSA8aHVhamluZ3l1bkBsb29uZ3Nvbi5jbj4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogInNxbGl0ZS1saWJzIiwKICAgICAgInZlcnNpb24iOiAiMy41My40LXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogImY3NjMwY2ViMzdjMjMyYjY2MDk4NjFhZWFiNmNkYjljZDEyMGU2ZmEiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJibGVzc2luZyIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL3NxbGl0ZS1saWJzQDMuNTMuNC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogInNxbGl0ZS1saWJzQDMuNTMuNC1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAic3FsaXRlIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjMuNTMuNC1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL3NzbF9jbGllbnRAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJTw7ZyZW4gVGVtcGVsIDxzb2VyZW4rYWxwaW5lQHNvZXJlbi10ZW1wZWwubmV0PiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAic3NsX2NsaWVudCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMzcuMC1yMzEiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiYzIyMGY0YTUxMjVhMzEzYWY3MzNlOThkZWY5NDEzMmJiMWU5ZDQwZCIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkdQTC0yLjAtb25seSIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzphcGsvYWxwaW5lL3NzbF9jbGllbnRAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogInNzbF9jbGllbnRAMS4zNy4wLXIzMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiYnVzeWJveCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjM3LjAtcjMxIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvdHpkYXRhQDIwMjZjLXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgInN1cHBsaWVyIjogewogICAgICAgICJuYW1lIjogIk5hdGFuYWVsIENvcGEgPG5jb3BhQGFscGluZWxpbnV4Lm9yZz4iCiAgICAgIH0sCiAgICAgICJuYW1lIjogInR6ZGF0YSIsCiAgICAgICJ2ZXJzaW9uIjogIjIwMjZjLXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjYxZjc1NDRlY2Q4ZGQ2M2VhYzIzZmUzZTY0NTcwMmZkYTkyZWYwMmEiCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJuYW1lIjogIlB1YmxpYy1Eb21haW4iCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS90emRhdGFAMjAyNmMtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjNjYTRiZTJjNmU5YWMwMjIzNzE1MzU1MjUzNzI1MzgxMDAwNDg2YzJiNDViZmNiMjJjZjU3MWI2YTg1YTEyZGQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo0NzM5M2I2NjhjZTUzNWQwNmU4OTY3OTE3ZDQyNGMxNzdlMmVjY2NhZTgzODU2ZDQ4YjJlOTkxNjRmOGNjNmNiIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ0lEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJ0emRhdGFAMjAyNmMtcjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogInR6ZGF0YSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIyMDI2Yy1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzphcGsvYWxwaW5lL3h6LWxpYnNANS44LjMtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAic3VwcGxpZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxwaW5lbGludXgub3JnPiIKICAgICAgfSwKICAgICAgIm5hbWUiOiAieHotbGlicyIsCiAgICAgICJ2ZXJzaW9uIjogIjUuOC4zLXIwIiwKICAgICAgImhhc2hlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWxnIjogIlNIQS0xIiwKICAgICAgICAgICJjb250ZW50IjogIjRjOTJjNWJlMGM1YmVmNDA0ZTkzYzg4MGViYTkwMzdhOWIxNDczNDciCiAgICAgICAgfQogICAgICBdLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJHUEwtMi4wLW9yLWxhdGVyIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICIwQlNEIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJuYW1lIjogIlB1YmxpYy1Eb21haW4iCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIkxHUEwtMi4xLW9yLWxhdGVyIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOmFway9hbHBpbmUveHotbGlic0A1LjguMy1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnSUQiLAogICAgICAgICAgInZhbHVlIjogInh6LWxpYnNANS44LjMtcjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAiYWxwaW5lIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY05hbWUiLAogICAgICAgICAgInZhbHVlIjogInh6IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlNyY1ZlcnNpb24iLAogICAgICAgICAgInZhbHVlIjogIjUuOC4zLXIwIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgIHsKICAgICAgImJvbS1yZWYiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJzdXBwbGllciI6IHsKICAgICAgICAibmFtZSI6ICJOYXRhbmFlbCBDb3BhIDxuY29wYUBhbHBpbmVsaW51eC5vcmc+IgogICAgICB9LAogICAgICAibmFtZSI6ICJ6bGliIiwKICAgICAgInZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAiaGFzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICJhbGciOiAiU0hBLTEiLAogICAgICAgICAgImNvbnRlbnQiOiAiZGQ0YzNkMTAyYWNhZWYyYTcxYTE0OTU5NTFkNTVmYWJjODY4MDYxMyIKICAgICAgICB9CiAgICAgIF0sCiAgICAgICJsaWNlbnNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibGljZW5zZSI6IHsKICAgICAgICAgICAgImlkIjogIlpsaWIiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6YXBrL2FscGluZS96bGliQDEuMy4yLXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWZmSUQiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlnZXN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dJRCIsCiAgICAgICAgICAidmFsdWUiOiAiemxpYkAxLjMuMi1yMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpQa2dUeXBlIiwKICAgICAgICAgICJ2YWx1ZSI6ICJhbHBpbmUiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6U3JjTmFtZSIsCiAgICAgICAgICAidmFsdWUiOiAiemxpYiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpTcmNWZXJzaW9uIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxLjMuMi1yMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzpweXBpL2NmZmlAMi4xLjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgIm5hbWUiOiAiY2ZmaSIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMS4xIiwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiTUlULTAiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6cHlwaS9jZmZpQDIuMS4xIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkZpbGVQYXRoIiwKICAgICAgICAgICJ2YWx1ZSI6ICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2NmZmktMi4xLjEuZGlzdC1pbmZvL01FVEFEQVRBIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAicHl0aG9uLXBrZyIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzpweXBpL2NyeXB0b2dyYXBoeUA1MC4wLjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgIm5hbWUiOiAiY3J5cHRvZ3JhcGh5IiwKICAgICAgInZlcnNpb24iOiAiNTAuMC4xIiwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJleHByZXNzaW9uIjogIkFwYWNoZS0yLjAgT1IgQlNELTMtQ2xhdXNlIgogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOnB5cGkvY3J5cHRvZ3JhcGh5QDUwLjAuMSIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpGaWxlUGF0aCIsCiAgICAgICAgICAidmFsdWUiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9jcnlwdG9ncmFwaHktNTAuMC4xLmRpc3QtaW5mby9NRVRBREFUQSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogInB5dGhvbi1wa2ciCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6cHlwaS9pbmZvcm1lZC1kZWNpc2lvbkAwLjIuMCIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJ2ZXJzaW9uIjogIjAuMi4wIiwKICAgICAgInB1cmwiOiAicGtnOnB5cGkvaW5mb3JtZWQtZGVjaXNpb25AMC4yLjAiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6RmlsZVBhdGgiLAogICAgICAgICAgInZhbHVlIjogIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvaW5mb3JtZWRfZGVjaXNpb24tMC4yLjAuZGlzdC1pbmZvL01FVEFEQVRBIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkxheWVyRGlmZklEIiwKICAgICAgICAgICJ2YWx1ZSI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZ2VzdCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6UGtnVHlwZSIsCiAgICAgICAgICAidmFsdWUiOiAicHl0aG9uLXBrZyIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJib20tcmVmIjogInBrZzpweXBpL3B5Y3BhcnNlckAzLjAiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgIm5hbWUiOiAicHljcGFyc2VyIiwKICAgICAgInZlcnNpb24iOiAiMy4wIiwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiQlNELTMtQ2xhdXNlIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1cmwiOiAicGtnOnB5cGkvcHljcGFyc2VyQDMuMCIsCiAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpGaWxlUGF0aCIsCiAgICAgICAgICAidmFsdWUiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9weWNwYXJzZXItMy4wLmRpc3QtaW5mby9NRVRBREFUQSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogInB5dGhvbi1wa2ciCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6cHlwaS9weWp3dEAyLjE1LjEiLAogICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKICAgICAgIm5hbWUiOiAiUHlKV1QiLAogICAgICAidmVyc2lvbiI6ICIyLjE1LjEiLAogICAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImxpY2Vuc2UiOiB7CiAgICAgICAgICAgICJpZCI6ICJNSVQiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdLAogICAgICAicHVybCI6ICJwa2c6cHlwaS9weWp3dEAyLjE1LjEiLAogICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6RmlsZVBhdGgiLAogICAgICAgICAgInZhbHVlIjogIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvcHlqd3QtMi4xNS4xLmRpc3QtaW5mby9NRVRBREFUQSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogInB5dGhvbi1wa2ciCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiYm9tLXJlZiI6ICJwa2c6cHlwaS93YWl0cmVzc0AzLjAuMiIsCiAgICAgICJ0eXBlIjogImxpYnJhcnkiLAogICAgICAibmFtZSI6ICJ3YWl0cmVzcyIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMC4yIiwKICAgICAgImxpY2Vuc2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJsaWNlbnNlIjogewogICAgICAgICAgICAiaWQiOiAiWlBMLTIuMSIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJwdXJsIjogInBrZzpweXBpL3dhaXRyZXNzQDMuMC4yIiwKICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OkZpbGVQYXRoIiwKICAgICAgICAgICJ2YWx1ZSI6ICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL3dhaXRyZXNzLTMuMC4yLmRpc3QtaW5mby9NRVRBREFUQSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJuYW1lIjogImFxdWFzZWN1cml0eTp0cml2eTpMYXllckRpZmZJRCIsCiAgICAgICAgICAidmFsdWUiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJhcXVhc2VjdXJpdHk6dHJpdnk6TGF5ZXJEaWdlc3QiLAogICAgICAgICAgInZhbHVlIjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIm5hbWUiOiAiYXF1YXNlY3VyaXR5OnRyaXZ5OlBrZ1R5cGUiLAogICAgICAgICAgInZhbHVlIjogInB5dGhvbi1wa2ciCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgXSwKICAiZGVwZW5kZW5jaWVzIjogWwogICAgewogICAgICAicmVmIjogIjViNzEyOTllLTNjMGMtNGM0Zi1iZDI5LTg2NWZiMTRlMTc1OCIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lLy5weXRob24tcnVuZGVwc0AyMDI2MDkwMS4wMDEwMjk/YXJjaD1ub2FyY2gmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2FscGluZS1iYXNlbGF5b3V0QDMuNy4yLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9hbHBpbmUtcmVsZWFzZUAzLjI0LjEtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2Fway10b29sc0AzLjAuNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvY2EtY2VydGlmaWNhdGVzQDIwMjYwNjExLXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsLXV0aWxzQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9zc2xfY2xpZW50QDEuMzcuMC1yMzE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL3R6ZGF0YUAyMDI2Yy1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lLy5weXRob24tcnVuZGVwc0AyMDI2MDkwMS4wMDEwMjk/YXJjaD1ub2FyY2gmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2dkYm1AMS4yNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGliYnoyQDEuMC44LXI2P2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJjcnlwdG8zQDMuNS44LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJmZmlAMy41LjItcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYm5jdXJzZXN3QDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYm5zbEAyLjAuMS1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGlicGFuZWx3QDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYnNzbDNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjQDEuMy41LXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJ1dWlkQDIuNDIuMy1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvcmVhZGxpbmVAOC4zLjMtcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL3NxbGl0ZS1saWJzQDMuNTMuNC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUveHotbGlic0A1LjguMy1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2FscGluZS1iYXNlbGF5b3V0LWRhdGFAMy43LjItcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUtYmFzZWxheW91dEAzLjcuMi1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvYWxwaW5lLWJhc2VsYXlvdXQtZGF0YUAzLjcuMi1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvYnVzeWJveC1iaW5zaEAxLjM3LjAtcjMxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLWtleXNAMi42LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogW10KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLXJlbGVhc2VAMy4yNC4xLXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9hbHBpbmUta2V5c0AyLjYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9hcGstdG9vbHNAMy4wLjYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2NhLWNlcnRpZmljYXRlcy1idW5kbGVAMjAyNjA2MTEtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYmFwa0AzLjAuNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGliY3J5cHRvM0AzLjUuOC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2J1c3lib3gtYmluc2hAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvYnVzeWJveEAxLjM3LjAtcjMxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvYnVzeWJveEAxLjM3LjAtcjMxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvY2EtY2VydGlmaWNhdGVzLWJ1bmRsZUAyMDI2MDYxMS1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFtdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2NhLWNlcnRpZmljYXRlc0AyMDI2MDYxMS1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvYnVzeWJveC1iaW5zaEAxLjM3LjAtcjMxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJjcnlwdG8zQDMuNS44LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvZ2RibUAxLjI2LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUva2V5dXRpbHMtbGlic0AxLjYuMy1yND9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2tyYjUtY29uZkAxLjAtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9rcmI1LWxpYnNAMS4yMi4yLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9rZXl1dGlscy1saWJzQDEuNi4zLXI0P2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9rcmI1LWNvbmZAMS4wLXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJjb21fZXJyQDEuNDcuNC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGliY3J5cHRvM0AzLjUuOC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGlic3NsM0AzLjUuOC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGlidmVydG9AMC4zLjItcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJhcGtAMy4wLjYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYmNyeXB0bzNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYnNzbDNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL3psaWJAMS4zLjItcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJiejJAMS4wLjgtcjY/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJjb21fZXJyQDEuNDcuNC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2xpYmNyeXB0bzNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJmZmlAMy41LjItcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJpbnRsQDEuMC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2xpYm5jdXJzZXN3QDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL25jdXJzZXMtdGVybWluZm8tYmFzZUA2LjZfcDIwMjYwNTE2LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvbGlibnNsQDIuMC4xLXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJpbnRsQDEuMC1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbGlidGlycGNAMS4zLjUtcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJwYW5lbHdANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbGlibmN1cnNlc3dANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbmN1cnNlcy10ZXJtaW5mby1iYXNlQDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJzc2wzQDMuNS44LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJjcnlwdG8zQDMuNS44LXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvbGlidGlycGMtY29uZkAxLjMuNS1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFtdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjQDEuMy41LXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9rcmI1LWxpYnNAMS4yMi4yLXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9saWJ0aXJwYy1jb25mQDEuMy41LXIxP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvbGlidXVpZEAyLjQyLjMtcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9saWJ2ZXJ0b0AwLjMuMi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL211c2wtdXRpbHNAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL3NjYW5lbGZAMS4zLjktcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogW10KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvbmN1cnNlcy10ZXJtaW5mby1iYXNlQDYuNl9wMjAyNjA1MTYtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9yZWFkbGluZUA4LjMuMy1yMT9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbGlibmN1cnNlc3dANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzphcGsvYWxwaW5lL3NjYW5lbGZAMS4zLjktcjE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9zcWxpdGUtbGlic0AzLjUzLjQtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS9zc2xfY2xpZW50QDEuMzcuMC1yMzE/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYmNyeXB0bzNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL2xpYnNzbDNAMy41LjgtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgInBrZzphcGsvYWxwaW5lL211c2xAMS4yLjYtcjI/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS90emRhdGFAMjAyNmMtcjA/YXJjaD14ODZfNjQmZGlzdHJvPTMuMjQuMSIsCiAgICAgICJkZXBlbmRzT24iOiBbXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6YXBrL2FscGluZS94ei1saWJzQDUuOC4zLXIwP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiLAogICAgICAiZGVwZW5kc09uIjogWwogICAgICAgICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0JmRpc3Rybz0zLjI0LjEiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAicGtnOmFway9hbHBpbmUvbXVzbEAxLjIuNi1yMj9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIgogICAgICBdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzpvY2kvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2E/YXJjaD1hbWQ2NCZyZXBvc2l0b3J5X3VybD1mb3JnZWpvLmNvdWxvbWIuc29jaWFsJTJGY291bG9tYiUyRmluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgImRlcGVuZHNPbiI6IFsKICAgICAgICAiNWI3MTI5OWUtM2MwYy00YzRmLWJkMjktODY1ZmIxNGUxNzU4IiwKICAgICAgICAicGtnOnB5cGkvY2ZmaUAyLjEuMSIsCiAgICAgICAgInBrZzpweXBpL2NyeXB0b2dyYXBoeUA1MC4wLjEiLAogICAgICAgICJwa2c6cHlwaS9pbmZvcm1lZC1kZWNpc2lvbkAwLjIuMCIsCiAgICAgICAgInBrZzpweXBpL3B5Y3BhcnNlckAzLjAiLAogICAgICAgICJwa2c6cHlwaS9weWp3dEAyLjE1LjEiLAogICAgICAgICJwa2c6cHlwaS93YWl0cmVzc0AzLjAuMiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6cHlwaS9jZmZpQDIuMS4xIiwKICAgICAgImRlcGVuZHNPbiI6IFtdCiAgICB9LAogICAgewogICAgICAicmVmIjogInBrZzpweXBpL2NyeXB0b2dyYXBoeUA1MC4wLjEiLAogICAgICAiZGVwZW5kc09uIjogW10KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOnB5cGkvaW5mb3JtZWQtZGVjaXNpb25AMC4yLjAiLAogICAgICAiZGVwZW5kc09uIjogW10KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOnB5cGkvcHljcGFyc2VyQDMuMCIsCiAgICAgICJkZXBlbmRzT24iOiBbXQogICAgfSwKICAgIHsKICAgICAgInJlZiI6ICJwa2c6cHlwaS9weWp3dEAyLjE1LjEiLAogICAgICAiZGVwZW5kc09uIjogW10KICAgIH0sCiAgICB7CiAgICAgICJyZWYiOiAicGtnOnB5cGkvd2FpdHJlc3NAMy4wLjIiLAogICAgICAiZGVwZW5kc09uIjogW10KICAgIH0KICBdLAogICJ2dWxuZXJhYmlsaXRpZXMiOiBbCiAgICB7CiAgICAgICJpZCI6ICJDVkUtMjAyNi04NTA5MSIsCiAgICAgICJzb3VyY2UiOiB7CiAgICAgICAgIm5hbWUiOiAiYWxwaW5lIiwKICAgICAgICAidXJsIjogImh0dHBzOi8vc2VjZGIuYWxwaW5lbGludXgub3JnLyIKICAgICAgfSwKICAgICAgInJhdGluZ3MiOiBbCiAgICAgICAgewogICAgICAgICAgInNvdXJjZSI6IHsKICAgICAgICAgICAgIm5hbWUiOiAidWJ1bnR1IgogICAgICAgICAgfSwKICAgICAgICAgICJzZXZlcml0eSI6ICJtZWRpdW0iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY3dlcyI6IFsKICAgICAgICA3ODcKICAgICAgXSwKICAgICAgImRlc2NyaXB0aW9uIjogInpsaWIgdmVyc2lvbnMgMS4zLjEuMiB0aHJvdWdoIDEuMy4yIGNvbnRhaW4gYSBoZWFwIGJ1ZmZlciBvdmVyZmxvdyB2dWxuZXJhYmlsaXR5IGluIHRoZSBnel92YWNhdGUoKSBmdW5jdGlvbiB3aGVuIHByb2Nlc3Npbmcgbm9uLWJsb2NraW5nIGd6d3JpdGUoKSBvcGVyYXRpb25zIHdpdGggc3RhbGUgZXh0ZXJuYWwgYnVmZmVyIHBvaW50ZXJzLiBBdHRhY2tlcnMgY2FuIHRyaWdnZXIgdGhlIG92ZXJmbG93IGJ5IGNhbGxpbmcgZ3pwcmludGYoKSBvciBnenZwcmludGYoKSBhZnRlciBhIHdyaXRlIHN0YWxsLCBjYXVzaW5nIGFuIHVuY2hlY2tlZCBtZW1tb3ZlKCkgdG8gd3JpdGUgYmV5b25kIHRoZSBpbnRlcm5hbCBpbnB1dCBidWZmZXIgYm91bmRhcnkuIiwKICAgICAgInJlY29tbWVuZGF0aW9uIjogIlVwZ3JhZGUgemxpYiB0byB2ZXJzaW9uIDEuMy4yLXIxIiwKICAgICAgImFkdmlzb3JpZXMiOiBbCiAgICAgICAgewogICAgICAgICAgInVybCI6ICJodHRwczovL2F2ZC5hcXVhc2VjLmNvbS9udmQvY3ZlLTIwMjYtODUwOTEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3RoZXNtYXJ0c2hhZG93L2UwYjk0ODE3OTJhZmI3YzMxZTg2ZmVlMWZmMDg0NDkwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFkbGVyL3psaWIiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYWRsZXIvemxpYi9ibG9iL3YxLjMuMi9nendyaXRlLmMjTDM5MyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cuY3ZlLm9yZy9DVkVSZWNvcmQ/aWQ9Q1ZFLTIwMjYtODUwOTEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnZ1bG5jaGVjay5jb20vYWR2aXNvcmllcy96bGliLTEuMy4xLjItdGhyb3VnaC0xLjMuMi1oZWFwLWJ1ZmZlci1vdmVyZmxvdy12aWEtZ3otdmFjYXRlIgogICAgICAgIH0KICAgICAgXSwKICAgICAgInB1Ymxpc2hlZCI6ICIyMDI2LTA5LTAzVDEzOjA2OjIwKzAwOjAwIiwKICAgICAgInVwZGF0ZWQiOiAiMjAyNi0wOS0wOVQyMDo0MTowNyswMDowMCIsCiAgICAgICJhZmZlY3RzIjogWwogICAgICAgIHsKICAgICAgICAgICJyZWYiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NCZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICJ2ZXJzaW9ucyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMy4yLXIwIiwKICAgICAgICAgICAgICAic3RhdHVzIjogImFmZmVjdGVkIgogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgXQp9Cg==" + }, + { + "digest": "sha256:a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad", + "media_type": "text/plain", + "content_base64": "aW1wb3J0IGNvcHksanNvbix0aW1lCmZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLHRpbWV6b25lCmZyb20gaW5mb3JtZWRfZGVjaXNpb24ucG9saWN5IGltcG9ydCBQb2xpY3lDbGllbnQsQ09OVFJBQ1Qsc3VibWl0dGVkX2RpZ2VzdApwaW49J3NoYTI1NjonKydiJyo2NApyZXE9eydpZCc6J2ltYWdlLXB1cnBvc2UtZml4dHVyZScsJ3RlbmFudCc6J3RlbmFudDpwbGF0Zm9ybScsJ3N1YmplY3QnOnsnaWQnOidzeW50aGV0aWMnLCd0eXBlJzonc2VydmljZScsJ3RlbmFudCc6J3RlbmFudDpwbGF0Zm9ybSd9LCdyZXNvdXJjZSc6eydpZCc6J21lbW86Zml4dHVyZScsJ3R5cGUnOidtZW1vJywnc3lzdGVtJzonaW5mb3JtZWQtZGVjaXNpb24nLCd0ZW5hbnQnOid0ZW5hbnQ6cGxhdGZvcm0nfSwnYWN0aW9uJzoncmVnaXN0ZXInLCdjb250ZXh0Jzp7fX0KY2xhc3MgVHJhbnNwb3J0OgogZGVmIHJlcXVlc3Qoc2VsZiwqYXJncywqKmt3YXJncyk6CiAgbm93PXRpbWUudGltZSgpOyBzdGFtcD1sYW1iZGEgdDpkYXRldGltZS5mcm9tdGltZXN0YW1wKHQsdGltZXpvbmUudXRjKS5pc29mb3JtYXQoKQogIGI9eyoqY29weS5kZWVwY29weSh7azpyZXFba10gZm9yIGsgaW4gKCd0ZW5hbnQnLCdzdWJqZWN0JywnYWN0aW9uJywncmVzb3VyY2UnLCdjb250ZXh0Jyl9KSwncmVxdWVzdF9kaWdlc3QnOidzaGEyNTY6JysnZScqNjQsJ3N1Ym1pdHRlZF9yZXF1ZXN0X2RpZ2VzdCc6c3VibWl0dGVkX2RpZ2VzdChyZXEpfQogIGlmIHNlbGYucHVycG9zZSE9J0FCU0VOVCc6YlsncHVycG9zZSddPXNlbGYucHVycG9zZQogIGQ9eydpZCc6J3N5bnRoZXRpYy1kZWNpc2lvbicsJ2NvbnRyYWN0X3ZlcnNpb24nOkNPTlRSQUNULCdyZXF1ZXN0X2lkJzpyZXFbJ2lkJ10sJ2VmZmVjdCc6J2FsbG93JywnbWF0Y2hlZF9wb2xpY3lfdmVyc2lvbic6J3YxJywnc3ViamVjdCc6cmVxWydzdWJqZWN0J10sJ3Jlc291cmNlJzpyZXFbJ3Jlc291cmNlJ10sJ2JpbmRpbmcnOmIsJ2xpZmV0aW1lJzp7J2tpbmQnOid0dGwnLCdub3RfYmVmb3JlJzpzdGFtcChub3ctMSksJ2V4cGlyZXNfYXQnOnN0YW1wKG5vdys2MCl9LCdwcm92ZW5hbmNlJzp7J3BvbGljeV9wYWNrYWdlJzonZml4dHVyZScsJ3BvbGljeV92ZXJzaW9uJzondjEnLCdwb2xpY3lfcGFja2FnZV9kaWdlc3QnOnBpbiwncmVnaXN0cnlfc25hcHNob3RfZGlnZXN0Jzonc2hhMjU2OicrJ2MnKjY0LCdldmFsdWF0b3InOidmbGV4LWF1dGgvZml4dHVyZScsJ2RlY2lzaW9uX3RpbWUnOnN0YW1wKG5vdyl9fQogIHJldHVybiAyMDAsZApjaGVja3M9W10KZm9yIHB1cnBvc2UgaW4gKCdBQlNFTlQnLCcnLCdyZWFkYmFjaycsJ2VuZm9yY2VtZW50JywndW5rbm93bicsTm9uZSxGYWxzZSwwLFtdLHt9KToKIHQ9VHJhbnNwb3J0KCk7dC5wdXJwb3NlPXB1cnBvc2UKIGM9UG9saWN5Q2xpZW50KCdodHRwczovL2ZpeHR1cmUuaW52YWxpZCcsbGFtYmRhOidzeW50aGV0aWMtb25seScscGFja2FnZT0nZml4dHVyZScsdmVyc2lvbj0ndjEnLHBhY2thZ2VfZGlnZXN0PXBpbix0cmFuc3BvcnQ9dCkKIG89Yy5jaGVjayhyZXEpCiBpZiBwdXJwb3NlIGluICgnQUJTRU5UJywnJyk6YXNzZXJ0IG8ub3V0Y29tZT09J2FsbG93JztvLnJlcXVpcmVfY3VycmVudCh0aW1lLnRpbWUoKSkKIGVsc2U6YXNzZXJ0IG8ub3V0Y29tZT09J2ludmFsaWRfZGVjaXNpb24nIGFuZCBvLmRlY2lzaW9uX2pzb24gaXMgTm9uZQogY2hlY2tzLmFwcGVuZChzdHIocHVycG9zZSkpCnByaW50KGpzb24uZHVtcHMoeydpbnN0YWxsZWRfaW1hZ2VfcHVycG9zZV92YXJpYW50cyc6bGVuKGNoZWNrcyksJ2JpbmRpbmdfZm9ybXNfYWxsb3dlZCc6MiwnYWR2aXNvcnlfb3JfbWFsZm9ybWVkX3JlZnVzZWQnOjgsJ3N5bnRoZXRpY19vbmx5JzpUcnVlLCduYXRpdmVfcHJvdmlkZXInOkZhbHNlfSkpCg==" + }, + { + "digest": "sha256:aa9758d4de587d14c6ce0fdaccd84002c5c5099425b9169ca7c972a86e9d3dec", + "media_type": "text/markdown", + "content_base64": "IyBQcm90ZWN0ZWQgbmF0aXZlIGJhY2t1cC9yZXN0b3JlIGFuZCBpbWFnZS1vbmx5IHJlbGVhc2UgcHJvdG9jb2wKClByZXBhcmVkIHByb3RvY29sIGZvciBgSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFgLiBObyBhY3R1YWwgbmF0aXZlIGJhY2t1cCwgZGF0YSBleHBvcnQsIHJlc3RvcmUsIHdvcmtsb2FkIGNoYW5nZSBvciBhcHByb3ZhbCBpcyByZWNvcmRlZCBoZXJlLiBDYW5kaWRhdGUgcmVnaXN0cnkgaW1hZ2UgaWRlbnRpdHkgcmVtYWlucyBhIHByZXJlcXVpc2l0ZTsgb25seSBhZnRlciBhY3R1YWwgYXJ0aWZhY3QgcHJvb2YgbWF5IHRoZSBmb3VuZGVyIGFwcHJvdmUgb25lIGV4YWN0IGNvbmRpdGlvbmFsIHByb3RvY29sL3JvbGxvdXQgcGFja2V0LiBUaGUgY29uZmlnLW9ubHk3ZGI4NDg1IGFwcHJvdmFsIGlzIG91dHNpZGUgdGhpcyBzY29wZS4KCiMjIFByZWNvbmRpdGlvbnMgYW5kIHByb3RlY3RlZCBjdXN0b2R5CgpGcmVlemUgZXhhY3QgY2FuZGlkYXRlIGFuZCBwcmlvcjdmNWM2Y2IgaW1hZ2UgZGlnZXN0cywgc291cmNlL2luc3RhbGxlZCBwb2xpY3kgaGFzaGVzLCBjdXJyZW50IG1hbnVhbGx5IG1hbmFnZWQgQXJnbyBBcHBsaWNhdGlvbi9yZXZpc2lvbiwgcnVudGltZSBDb25maWdNYXA2YzIyMTg3OGQwNTEsIERlcGxveW1lbnQgVUlEL3RlbXBsYXRlL3NwZWMsIHNjaGVtYTUsIHBvbGljeSBwYWNrYWdlIHBpbnMsIGRhdGFiYXNlIHBhdGggYC9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZWAsIFBWQyBiaW5kaW5nLCByZXBsaWNhczEvUmVjcmVhdGUgYW5kIHN0YWJsZSBrZXlzIGZvciBpbnRlbmRlZCB2ZXJpZmljYXRpb24uIENvbmZpcm0gbm8gY29uY3VycmVudCB3cml0ZXIgb3IgY3VzdG9keSBjaGFuZ2UuIFVzZSBmaXhlZCBtZXRhZGF0YTsgbmV2ZXIgZmV0Y2ggU2VjcmV0IG9iamVjdHMgb3IgdG9rZW4gdmFsdWVzLiBBIGNoYW5nZWQgaW1hZ2UvY29uZmlnL3NjaGVtYS9vd25lciBpbnZhbGlkYXRlcyB0aGUgcGFja2V0LiBGcmVzaCByZXNvdXJjZXMvaGVhZHJvb20gYW5kIGV4YWN0IHNvdXJjZS9uYXRpdmUgc2VydmVyLWRyeS1ydW4vZGlmZiByZW1haW4gcmVxdWlyZWQuCgpCYWNrdXBzIGFyZSBwcml2YXRlIGV2aWRlbmNlIGNvbnRhaW5pbmcgcmVhbCBkZWNpc2lvbiByZWNvcmRzLCBub3QgbG9ncyBvciBwYWNrZXQgYXR0YWNobWVudHMuIEFsbG9jYXRlIGEgdW5pcXVlIGJhY2t1cCBkaXJlY3RvcnkgdW5kZXIgZXhpc3RpbmcgcHJvdGVjdGVkIFBWQyBjdXN0b2R5LCBvd25lZDEwMDAxLCBtb2RlMDcwMCwgc25hcHNob3QgZmlsZTA2MDAsIG5vIHN5bWxpbmsvaGFyZGxpbmsvcmV1c2VkIG91dHB1dCBwYXRoLiBBbiBvZmYtY2x1c3RlciBjb3B5IGJlbG9uZ3Mgb25seSBpbiB0aGUgYWxyZWFkeSBlc3RhYmxpc2hlZCBpZ25vcmVkIGAucHJpdmF0ZS1iYWNrdXBzLzx1bmlxdWUtdHJpYWwtZGlyZWN0b3J5PmAgY3VzdG9keSB3aXRoMDcwMC8wNjAwIHBlcm1pc3Npb25zOyBubyBHaXQsIFN0YXRlSHViLCBwdWJsaWMgb2JqZWN0IHN0b3JlIG9yIHRlcm1pbmFsLWNvbnRlbnQgZHVtcC4gUmVjb3JkIG9ubHkgc2NoZW1hLCBpbnRlZ3JpdHkgcGFzcy9mYWlsLCBib3VuZGVkIHRhYmxlL3N0YXRlIGNvdW50cyBhbmQgcHJvdGVjdGVkIHJlY2VpcHQgaWRlbnRpZmllcjsgcmV0YWluIGJ5dGUgZGlnZXN0cyBpbiBwcm90ZWN0ZWQgY3VzdG9keSBpZiBuZWVkZWQgZm9yIGludGVybmFsIGNvcHkgaWRlbnRpdHkuIE5vIGNyZWRlbnRpYWwsIHJlY29yZCBwYXlsb2FkIG9yIHRva2VuIGZpbmdlcnByaW50IGVudGVycyBwdWJsaWMgZXZpZGVuY2UuCgojIyBBcHByb3ZlZCBvbmxpbmUgY29tcGF0aWJpbGl0eSBkcmlsbAoKV2l0aGluIHRoZSBleHBsaWNpdCBmb3VuZGVyLWFwcHJvdmVkIGFjdGlvbiwgcnVuIHRoZSBleGlzdGluZyBiYXNlIGltYWdlJ3MgYGluZm9ybWVkLWRlY2lzaW9uLWFkbWluIGJhY2t1cCAtLWRiIC9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZSAtLW91dHB1dCA8bmV3LXByaXZhdGUtc25hcHNob3Q+YCBpbiB0aGUgYWN0dWFsIHNlcnZpbmcgd29ya2xvYWQuIFRoaXMgdXNlcyBTUUxpdGUncyBiYWNrdXAgQVBJIGZvciBhIHRyYW5zYWN0aW9uYWxseSBjb25zaXN0ZW50IHNuYXBzaG90OyBjb3B5aW5nIGEgbGl2ZSBtYWluIGRhdGFiYXNlIHdoaWxlIGlnbm9yaW5nIFdBTCBpcyBwcm9oaWJpdGVkLiBTdXBwcmVzcyByYXcgZmFpbHVyZXMvb3V0cHV0IGFuZCByZXRhaW4gb25seSBzYW5pdGl6ZWQgc3RhdHVzLiBPYnNlcnZlIHNjaGVtYS9pbnRlZ3JpdHkgYW5kIGNvdW50LW9ubHkgbWV0YWRhdGEgZnJvbSB0aGUgcmVzdWx0aW5nIHNuYXBzaG90LCBub3QgcmVjb3JkIGNvbnRlbnQuCgpUcmFuc2ZlciB0aGF0IGNvbnNpc3RlbnQgc25hcHNob3Qgb25seSBpbnRvIHByb3RlY3RlZCBvZmYtY2x1c3RlciBjdXN0b2R5IHRocm91Z2ggdGhlIGV4aXN0aW5nIGF1dGhvcml6ZWQgb3BlcmF0b3IgbGFuZS4gVGhlIGNvcHkgaXMgcmVhbCBwcm9kdWN0aW9uIGRhdGEgZXZlbiBpbiBidWlsZCBtb2RlLiBWZXJpZnkgcHJpdmF0ZSBwZXJtaXNzaW9ucywgdW5pcXVlIGlkZW50aXR5IGFuZCBwcm90ZWN0ZWQgaW50ZXJuYWwgZGlnZXN0IGFncmVlbWVudC4gRG8gbm90IGV4cG9ydCBtb3VudGVkIHdvcmtsb2FkIGNyZWRlbnRpYWxzIG9yIGRpcmVjdG9yeSB0cmVlczsgY29weSBvbmx5IHRoZSBleGFjdCBzbmFwc2hvdC4KCkNyZWF0ZSBhIHNlcGFyYXRlIHByaXZhdGUgZGlzcG9zYWJsZSByZXN0b3JlIHZvbHVtZS9kaXJlY3Rvcnk7IHJldGFpbiB0aGUgb3JpZ2luYWwgc25hcHNob3QgdW5jaGFuZ2VkLiBSdW4gdGhlIGV4YWN0IHB1Ymxpc2hlZCBjYW5kaWRhdGUgd2l0aCBuZXR3b3JrIGRpc2FibGVkLCBubyBwcm9kdWN0aW9uIENvbmZpZ01hcC90b2tlbiBtb3VudHMsIHJlYWQtb25seSBpbWFnZSBhbmQgb25seSB0aGF0IGlzb2xhdGVkIHZvbHVtZSB3cml0YWJsZS4gT3ZlcnJpZGUgdGhlIHNlcnZpY2UgZW50cnlwb2ludCB3aXRoIHRoZSBvd25lcidzIGNvdW50LW9ubHkgYWRtaW5pc3RyYXRpdmUgaW5zcGVjdGlvbi9pbnRlZ3JpdHkgY2hlY2s7IGRvIG5vdCBzdGFydCBIVFRQIGxpc3RlbmVycywgYXVkaXQgZGVsaXZlcnksIHJlcXVlc3RlciBleGNoYW5nZXMgb3IgYXBwcm92YWwgb3BlcmF0aW9ucy4gVGhlIGN1cnJlbnQgY2FuZGlkYXRlIGNoYW5nZXMgcG9saWN5LnB5IG9ubHkgYW5kIHJldGFpbnMgdGhlIHNjaGVtYS9zdG9yZSBtb2R1bGUgYnl0ZXM7IHN0aWxsIHByb3ZlIHNjaGVtYTUsIFNRTGl0ZSBpbnRlZ3JpdHkgYW5kIGV4YWN0IGJvdW5kZWQgY291bnRzIGJlZm9yZS9hZnRlciBvcGVuaW5nIHRoZSByZXN0b3JlZCBjb3B5LiBSZWZ1c2UgYW55IG1pZ3JhdGlvbi9kb3duZ3JhZGUsIGxvc3QvY2hhbmdlZCBjb3VudHMsIHVuZXhwZWN0ZWQgd3JpdGUgY2xhc3Mgb3IgdW5rbm93biBvdXRjb21lLiBLZWVwIHBlbmRpbmcvdW5jZXJ0YWluIHN1Ym1pc3Npb24gYW5kIG91dGJveCBzdGF0ZXM7IG5ldmVyIHJlcGxheSwgZGlzY2FyZCBvciBtYXJrIHRoZW0gZGVsaXZlcmVkIHRvIGdyZWVuIHRoZSBkcmlsbC4gQ2xlYW51cCBvbmx5IHRoZSBkaXNwb3NhYmxlIGNvcHkvdm9sdW1lIGFmdGVyIHZlcmlmaWVkIHJlY2VpcHQ7IHJldGFpbiB0aGUgb3JpZ2luYWwgcHJvdGVjdGVkIGJhY2t1cCBmb3IgdGhlIGFwcHJvdmVkIHJlY292ZXJ5IGludGVydmFsLgoKVGhpcyBzdGVwIGlzIGFjdHVhbCBuYXRpdmUtZGF0YSBjb21wYXRpYmlsaXR5IGV2aWRlbmNlIG9uY2UgcGVyZm9ybWVkLiBJdHMgcHJldmlvdXMgc3ludGhldGljIGZpeHR1cmUgY2hlY2tzIHJlbWFpbiBtZWNoYW5pc20gZXZpZGVuY2UgYW5kIGNhbm5vdCBiZSByZW5hbWVkIG5hdGl2ZSBzdWNjZXNzLiBBIGZhaWxlZCBkcmlsbCBzdG9wcyByb2xsb3V0IGFuZCByZW1haW5zIGEgZmFpbGVkL3VudmVyaWZpZWQgb3V0Y29tZSBpbiB0aGUgc2FtZSB0cmlhbC4KCiMjIEZyZXNoIGN1dG92ZXIgc25hcHNob3QgYW5kIHNpbmdsZS13cml0ZXIgcm9sbG91dAoKQWZ0ZXIgc3VjY2Vzc2Z1bCBhY3R1YWwtZGF0YSBjb21wYXRpYmlsaXR5IGNoZWNrcywgY3JlYXRlIGFub3RoZXIgdW5pcXVlIFNRTGl0ZS1jb25zaXN0ZW50IG9ubGluZSBzbmFwc2hvdCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGltYWdlIGN1dG92ZXIsIHJldGFpbmluZyBpdHMgcG9pbnQtaW4tdGltZSBzY2hlbWEvaW50ZWdyaXR5L2NvdW50IHJlY2VpcHQuIFRoaXMgaXMgYW4gb25saW5lIHRyYW5zYWN0aW9uYWwgc25hcHNob3QsIG5vdCBhIGNsYWltIHRoYXQgZGlzcGF0Y2hlcnMgb3IgaHVtYW4gd3JpdGVzIHdlcmUgcXVpZXNjZWQuIEV2ZXJ5IGxhdGVyIGNvbW1pdHRlZCByZWNvcmQgcmVtYWlucyBpbiB0aGUgbGl2ZSBkYXRhYmFzZTsgc2FtZS1zY2hlbWEgcm9sbGJhY2sgcmV0YWlucyB0aGF0IGRhdGFiYXNlIGFuZCBuZXZlciByZXN0b3JlcyB0aGUgZWFybGllciBzbmFwc2hvdCBvdmVyIGl0LiBUaGUgbmFycm93IGltYWdlLW9ubHkgdXBkYXRlIGRvZXMgbm90IG5lZWQgZGlzcGF0Y2hlci9jb25maWd1cmF0aW9uL1BWQy90ZW1wb3JhcnktcG9kIGNoYW5nZXMgb3IgYSBzY2hlbWEgY3V0b3Zlci4gSWYgZnJlc2ggdmVyaWZpY2F0aW9uIHNob3dzIGEgbWlncmF0aW9uIG9yIGFueSBkYXRhLXJlc3RvcmF0aW9uIHJlcXVpcmVtZW50LCBzdG9wIGFuZCByZWZpbmUgdGhlIHByb3Bvc2FsIHJhdGhlciB0aGFuIGFwcGx5aW5nIHRoaXMgcHJvdG9jb2wuCgpUaGUgZXhpc3RpbmcgUmVjcmVhdGUgcm9sbG91dCBkcmFpbnMvc3RvcHMgdGhlIHNpbmdsZSBvbGQgd3JpdGVyIGJlZm9yZSBzdGFydGluZyB0aGUgbmV3IGltYWdlIG9uIHRoZSBzYW1lIFBWQzsgdGhlIGluaGVyaXRlZCBzaW5nbGUtd3JpdGVyIGxvY2sgaW5kZXBlbmRlbnRseSByZWZ1c2VzIGNvbmN1cnJlbnQgc2VydmluZyBwcm9jZXNzZXMuIERvIG5vdCBhZGQgYW4gYWRtaW4gcG9kLCBzY2FsZS10by16ZXJvLCBkaXNwYXRjaGVyIHN0b3AsIG5ldHdvcmstcG9saWN5IHJld3JpdGUgb3Igc25hcHNob3Qgb3ZlcndyaXRlIGFzIGFuIGltcHJvdmlzZWQgaW1hZ2Utb25seSBzdGVwLiBUaGUgZXhpc3Rpbmcgb3duZXIgYWRtaW4gYmFja3VwIG9wZXJhdGlvbiBydW5zIGluc2lkZSB0aGUgYWRtaXR0ZWQgc2VydmluZyB3b3JrbG9hZCwgYW5kIGl0cyBzZXBhcmF0ZSBwcm90ZWN0ZWQgcmVzdG9yZSBkcmlsbCBydW5zIG9mZi1jbHVzdGVyIHdpdGggbmV0d29yayBkaXNhYmxlZCBhbmQgbm8gd29ya2xvYWQgY3JlZGVudGlhbHMuIFRob3NlIGV4YWN0IGN1c3RvZHkgb3BlcmF0aW9ucyBtdXN0IGJlIGVudW1lcmF0ZWQgaW4gdGhlIGZvdW5kZXIgcGFja2V0IGFsb25nc2lkZSB0aGUgb25lIERlcGxveW1lbnQgaW1hZ2UgY2hhbmdlLgoKT25jZSBiYWNrdXAvY29tcGF0aWJpbGl0eS9wcmVmbGlnaHQgZ2F0ZXMgcGFzcywgbWFudWFsbHkgcGluIHRoZSBleGlzdGluZyBBcmdvIEFwcGxpY2F0aW9uIHRvIHRoZSBleGFjdCByZXZpZXdlZCBzb3VyY2UgcmV2aXNpb24gYW5kIHN5bmMgb25seSBEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHdpdGggcHJ1bmUgZmFsc2UsIGtlZXBpbmcgdGhlIGN1cnJlbnQgaW1tdXRhYmxlIHJ1bnRpbWUgQ29uZmlnTWFwIGFuZCBhbGwgb3RoZXIgcmVzb3VyY2VzLiBUaGUgc291cmNlIHBhdGNoIGNoYW5nZXMgb25seSB0aGUgaW1hZ2UgaW4gYWRtaXNzaW9uL3JlbmRlcmVkIERlcGxveW1lbnQ7IG5vIFNlY3JldCwgUFZDLCBwb2xpY3ksIGRhdGFiYXNlIG9yIGRpc3BhdGNoZXIgY2hhbmdlIGlzIGluY2x1ZGVkIHVubGVzcyBzZXBhcmF0ZWx5IGVudW1lcmF0ZWQgaW4gdGhlIGZpbmFsIHByb3Bvc2FsLiBPYnNlcnZlIGZpdmUtbWludXRlIHJlYWRpbmVzcyBhbmQgZXhhY3QgaW1hZ2UvY29uZmlnL3NjaGVtYS9waW5zLiBWZXJpZnkgbmF0aXZlIGxpZmVjeWNsZSBiaW5kaW5nIHVzaW5nIHN0YWJsZSBrZXlzIGFuZCBhbiBpc29sYXRlZCBpbnN0YWxsZWQtY2xpZW50IHByb2JlIGJhc2VkIG9uIGEgcmVhbCBwcm92aWRlciByZXNwb25zZSBjb250YW1pbmF0ZWQgd2l0aCBhZHZpc29yeSBwdXJwb3NlOyBwcm92ZSByZWZ1c2FsIGJlZm9yZSBhbnkgd3JpdGUuIERvIG5vdCBjb250YW1pbmF0ZSB0aGUgbGl2ZSBQRFAsIGNyZWF0ZSBodW1hbiBhcHByb3ZhbHMsIHJlYWQgY3JlZGVudGlhbHMgdGhyb3VnaCBDTEksIG9yIHJlcGxheSB1bmtub3duIGV4dGVybmFsIG91dGNvbWVzIGZvciB0ZXN0aW5nLgoKIyMgU2FtZS1zY2hlbWEgcm9sbGJhY2sgYW5kIGV2aWRlbmNlIHJldGVudGlvbgoKT24gc3RhcnR1cC9yZWFkaW5lc3MvYmluZGluZy9yZWZ1c2FsIGZhaWx1cmUsIHJldGFpbiBjdXJyZW50IGRhdGFiYXNlLCBjdXRvdmVyIGJhY2t1cCBhbmQgZXZlcnkgcG9zdC1jdXRvdmVyIGV2aWRlbmNlL3VuY2VydGFpbiBvdXRjb21lLiBSZXN0b3JlIG9ubHkgdGhlIHByaW9yN2Y1YzZjYiBpbWFnZSB0aHJvdWdoIHRoZSBzYW1lIG1hbnVhbCBBcmdvIG93bmVyIHBhdGgsIHJldGFpbmluZyBzY2hlbWE1IGFuZCBjdXJyZW50IERCL2NvbmZpZ3VyYXRpb247IG5ldmVyIHJlc3RvcmUgYW4gb2xkIHNuYXBzaG90IG92ZXIgY3VycmVudCBsaXZlIGV2aWRlbmNlIGp1c3QgdG8gcm9sbCB0aGUgaW1hZ2UgYmFjay4gVmVyaWZ5IG9sZCBpbWFnZS9SZWFkeTEsIHNhbWUgc2NoZW1hL2NvdW50cyBhbmQgcHJpb3IgYmVoYXZpb3IsIGFuZCByZWNvbmNpbGUgYW55IGV4dGVybmFsIGVmZmVjdHMgdXNpbmcgZXhpc3RpbmcgbGlmZWN5Y2xlL2F1ZGl0IG93bmVyc2hpcC4gVGhlIG5hcnJvdyBvdmVybGF5J3MgaWRlbnRpY2FsIHN0b3JlL3NjaGVtYS9kZXBlbmRlbmN5IGJ5dGVzIHBlcm1pdCB0aGlzIGltYWdlLW9ubHkgcm9sbGJhY2s7IGl0IGlzIG5vdCBwZXJtaXNzaW9uIGZvciBhIHNjaGVtYSBkb3duZ3JhZGUgb3IgZGF0YSBsb3NzLgoKUmVjb3JkIG9yaWdpbmFsL2FwcHJvdmVkL2V4ZWN1dGVkIHNvdXJjZSBhbmQgaW1hZ2UgcmV2aXNpb25zLCBiYWNrdXAvZHJpbGwvY3V0b3Zlci9yb2xsb3V0IHRpbWVzdGFtcHMsIGV4YWN0IGRpc3Bvc2l0aW9uIGFuZCBzYW5pdGl6ZWQgb3V0Y29tZXMgaW4gdGhlIGV4aXN0aW5nIHN1cGVydmlzZWQgdHJpYWwgcmVjZWlwdC4gRVVSMCBpbmNyZW1lbnRhbCBpbmZyYXN0cnVjdHVyZSBlc3RpbWF0ZSB1c2VzIGV4aXN0aW5nIHNlcnZpY2Uvc3RvcmFnZS9vcGVyYXRvciBsYW5lOyBwcm90ZWN0ZWQgdGVtcG9yYXJ5IGNvcHkvc3RvcmFnZSBjb25zdW1wdGlvbiBhbmQxNeKAkzMwbWludXRlIHJlY292ZXJ5IHRpbWUgcmVtYWluIG9wZXJhdGlvbmFsIGNvc3RzLiBObyBFVVIgaW5jaWRlbnQtbG9zcyBjYXAgb3IgYXV0b25vbXkgZ3JhbnQgaXMgaW5mZXJyZWQuIFRhc2tUMDQgY2Fubm90IGNsb3NlIHVudGlsIGFjdHVhbCBwdWJsaXNoZWQgaW1hZ2UsIGFwcHJvdmVkIG5hdGl2ZSBjb21wYXRpYmlsaXR5IGFuZCByZWxlYXNlIHBsdXMgcG9zdC1yZWxlYXNlIHJlZnVzYWwvYmluZGluZyBldmlkZW5jZSBhbGwgZXhpc3QuCgojIyBFeGFjdCByZWxlYXNlIGNhc2UgaWRlbnRpZmllcnMKClByb3Bvc2FsIGBJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MWAsIHRyaWFsIGBpbmZkLXB1cnBvc2UtMjAyNjEwMTEtcjFgLgpQcm90ZWN0ZWQgbmF0aXZlIHBhcmVudCBgL2RhdGEvcHJpdmF0ZS9wdXJwb3NlLW92ZXJsYXktcjFgIG11c3QgYmUgdW5pcXVlL25vbi1zeW1saW5rLCBvd25lZDEwMDAxIGFuZDA3MDAuIFRoZSBkcmlsbCBzbmFwc2hvdCBpcyBgZHJpbGwuc3FsaXRlYCwgdGhlIHJlZnJlc2hlZCBwcmUtY3V0b3ZlciBzbmFwc2hvdCBgY3V0b3Zlci5zcWxpdGVgLCBlYWNoIG5ldzA2MDAgZmlsZTsgcmVmdXNlIGFueSBleGlzdGluZyBvdXRwdXQuIE9mZi1jbHVzdGVyIGN1c3RvZHkgaXMgdGhlIGV4aXN0aW5nIGlnbm9yZWQgQ3VzdG9kaWFuIGAucHJpdmF0ZS1iYWNrdXBzLzIwMjYxMDExLWluZmQtcHVycG9zZS1yMWAgcGFyZW50MDcwMCwgZmlsZXMwNjAwOyBubyBzbmFwc2hvdCBpcyBhbiBldmlkZW5jZSBhdHRhY2htZW50LiBDaGVjayBvd25lciBVSUQsIG5vIHN5bWxpbmtzLCBpZ25vcmVkIHN0YXR1cyBhbmQgZnJlZSBjYXBhY2l0eSBmb3IgYm90aCBuYXRpdmUgc25hcHNob3RzIHBsdXMgaW5kZXBlbmRlbnRseSBwcm90ZWN0ZWQgY29waWVzIGJlZm9yZSBtYWtpbmcgYW55IHNuYXBzaG90LgoKVGhlIGRpc3Bvc2FibGUgb2ZmbGluZSByZXN0b3JlIHZvbHVtZSBpcyBgaW5mZC1wdXJwb3NlLXIxLXJlc3RvcmUtMjAyNjEwMTFgOyByZWZ1c2UgYW4gZXhpc3Rpbmcgdm9sdW1lLCBjb3B5IG9ubHkgdGhlIHNlbGVjdGVkIGZyb3plbiBzbmFwc2hvdCwgYW5kIHJ1biBleGFjdCBwdWJsaXNoZWQgY2FuZGlkYXRlNzYzYyB3aXRoIG5ldHdvcmtub25lL3JlYWQtb25seSBpbWFnZSwxMjhNaUIvY29yZTEgYW5kIG5vIHJ1bnRpbWUgY29uZmlnL3Rva2VuIG1vdW50cy4gU1FMaXRlIGBQUkFHTUEgaW50ZWdyaXR5X2NoZWNrYCBtdXN0IHJldHVybiBgb2tgLCBgUFJBR01BIHVzZXJfdmVyc2lvbmAvU3RvcmUgaW5zcGVjdGlvbiBtdXN0IGFncmVlIHdpdGggYWN0dWFsIHNjaGVtYTUgc2VtYW50aWNzLCBhbmQgaW5zdGFsbGVkIGFkbWluIGNvdW50LW9ubHkgaW5zcGVjdGlvbiBtdXN0IG1hdGNoIHRoZSBmcm96ZW4gc25hcHNob3QuIFZhbGlkYXRlIHRoZSBhY3R1YWwgc2NoZW1hIHJlcHJlc2VudGF0aW9uIHJhdGhlciB0aGFuIGFzc3VtZSBQUkFHTUEgdXNlcl92ZXJzaW9uIGlzIHRoZSBzY2hlbWEgYXV0aG9yaXR5LiBObyBzeW50aGV0aWMgcmVzdG9yYXRpb24gaXMgcmVwb3J0ZWQgYXMgbmF0aXZlIHJlc3RvcmF0aW9uLiBOYXRpdmUgb3JpZ2luYWwvb2ZmLWNsdXN0ZXIgY29waWVzIHJlbWFpbiByZXRhaW5lZDsgb25seSB0aGUgZGlzcG9zYWJsZSByZXN0b3JlIGNvcHkvdm9sdW1lIG1heSBiZSByZW1vdmVkIHVuZGVyIHRoZSBleGFjdCBhcHByb3ZlZCBjbGVhbnVwIHNjb3BlLgo=" + }, + { + "digest": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101", + "media_type": "application/json", + "content_base64": "ewogICJpZCI6ICJJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSIsCiAgImtpbmQiOiAib3duZXItdnVsbmVyYWJpbGl0eS1mb2xsb3ctdGhyb3VnaCIsCiAgIm93bmVyIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAidGFzayI6ICJJTkZELVdQLTAwMDktVDA1IiwKICAic3RhdHVzIjogIm9wZW4iLAogICJjcmVhdGVkIjogIjIwMjYtMTAtMTEiLAogICJyZXZpZXdfZHVlIjogIjIwMjYtMTAtMTgiLAogICJmaW5kaW5nIjogIkNWRS0yMDI2LTg1MDkxIiwKICAic2Nhbm5lcl9zZXZlcml0eSI6ICJNRURJVU0iLAogICJlc3RhdGVfcmlza19ncmFkZSI6IG51bGwsCiAgImFmZmVjdGVkX3BhY2thZ2UiOiAiemxpYiIsCiAgImluc3RhbGxlZCI6ICIxLjMuMi1yMCIsCiAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAiYWN0dWFsX2N1cnJlbnRfYmFzZV9hbmRfY2FuZGlkYXRlX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgInNvdXJjZV9ldmlkZW5jZSI6ICJzZWN1cml0eS1zdW1tYXJ5Lmpzb24sIHRyaXZ5LWZ1bGwuanNvbiwgYmFzZS10cml2eS1mdWxsLmpzb24iLAogICJodW1hbl90ZW1wb3JhcnlfZGlzcG9zaXRpb24iOiAicGVuZGluZyIsCiAgImZvbGxvd190aHJvdWdoIjogIlByZXBhcmUgYSBzZXBhcmF0ZWx5IHNvdXJjZS1ib3VuZCBvZmZpY2lhbC1iYXNlL2RlcGVuZGVuY3kgcmVmcmVzaCB0aHJvdWdoIG5vcm1hbCBvd25lciBDSSwgdmVyaWZ5IGZ1bGwgc2NhbiBhbmQgcnVudGltZSBjb21wYXRpYmlsaXR5LCBvYnRhaW4gZGlzdGluY3QgbmF0aXZlIHJlbGVhc2UgYXBwcm92YWwgYmVmb3JlIHVwZGF0aW5nIHRoaXMgd29ya2xvYWQiLAogICJtYW51YWxfcmV2aWV3X2V4cGlyeSI6ICJEdWUgZGF0ZSByZXF1aXJlcyBvd25lciByZXZpZXcvZXNjYWxhdGlvbiBpZiB1bnJlc29sdmVkOyBubyBhdXRvbWF0aWMgcm9sbGJhY2svY29udHJvbGxlciBpcyBpbnN0YWxsZWQiLAogICJjbG9zZV9jb25kaXRpb24iOiAiVmVyaWZpZWQgaW5zdGFsbGVkIG5hdGl2ZSBmaXhlZCBwYWNrYWdlIGFuZCBmdWxsIHVuZmlsdGVyZWQgcmVzY2FuOyBwcmVzZXJ2ZSBvcmlnaW5hbCBkZXRlY3Rpb24gYW5kIGFueSBodW1hbiBkaXNwb3NpdGlvbiIKfQo=" + }, + { + "digest": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262", + "media_type": "application/json", + "content_base64": "ewogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjI1OjM4Ljc5MzU1NSswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibGl2ZV9yZWFkeV9yZXBsaWNhcyI6IDEsCiAgImFkbWl0dGVkX3VpZCI6ICJhNTg4ZTEwYS05MGQyLTQ4ODMtOTc1ZS02ZGQ4YjhmZWNhOTIiLAogICJzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWQiOiB0cnVlLAogICJhZG1pdHRlZF9zcGVjX2V4YWN0bHlfbGl2ZV9wbHVzX2ltYWdlIjogdHJ1ZSwKICAiY2xpZW50X2RpZmZfZXhpdCI6IDEsCiAgImNsaWVudF9kaWZmX3NoYTI1NiI6ICJhNGJjMDI0YThjZWM2NThmODM1Mjg1ZWQ1MTk2NGUyZTA4NGVkYmFmMTAzZDQ1YTQ4Yjg5YzA5NTBiY2QzZTdkIiwKICAibm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzIjogIihUb3RhbCBsaW1pdHMgbWF5IGJlIG92ZXIgMTAwIHBlcmNlbnQsIGkuZS4sIG92ZXJjb21taXR0ZWQuKVxuICBSZXNvdXJjZSAgICAgICAgICAgUmVxdWVzdHMgICAgICBMaW1pdHNcbiAgLS0tLS0tLS0gICAgICAgICAgIC0tLS0tLS0tICAgICAgLS0tLS0tXG4gIGNwdSAgICAgICAgICAgICAgICAzNDYwbSAoODYlKSAgIDM2MjAwbSAoOTA1JSlcbiAgbWVtb3J5ICAgICAgICAgICAgIDk0NzJNaSAoNTklKSAgMzI4OThNaSAoMjA1JSlcbiAgZXBoZW1lcmFsLXN0b3JhZ2UgIDAgKDAlKSAgICAgICAgMCAoMCUpXG4gIGh1Z2VwYWdlcy0xR2kgICAgICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMk1pICAgICAgMCAoMCUpICAgICAgICAwICgwJSkiLAogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlCn0K" + }, + { + "digest": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362", + "media_type": "application/json", + "content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K" + }, + { + "digest": "sha256:830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1", + "media_type": "text/plain", + "content_base64": "IiIiUmVhZC1vbmx5IGV4YWN0IERlcGxveW1lbnQgYW5kIGFkbWlzc2lvbiBib3VuZGFyaWVzOyBubyBtdXRhdGlvbiBhdXRob3JpdHkuIiIiCmltcG9ydCBjb3B5CgpCQVNFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MycKQ0FORElEQVRFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYScKCgpkZWYgcHJvamVjdGlvbih2YWx1ZSk6CiAgICB2YWx1ZSA9IGNvcHkuZGVlcGNvcHkodmFsdWUpCiAgICB2YWx1ZS5wb3AoJ3N0YXR1cycsIE5vbmUpCiAgICBmb3Iga2V5IGluICgncmVzb3VyY2VWZXJzaW9uJywgJ2dlbmVyYXRpb24nLCAnY3JlYXRpb25UaW1lc3RhbXAnLCAnbWFuYWdlZEZpZWxkcycpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLnBvcChrZXksIE5vbmUpCiAgICBmb3Iga2V5IGluICgna3ViZWN0bC5rdWJlcm5ldGVzLmlvL2xhc3QtYXBwbGllZC1jb25maWd1cmF0aW9uJywgJ2RlcGxveW1lbnQua3ViZXJuZXRlcy5pby9yZXZpc2lvbicpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLmdldCgnYW5ub3RhdGlvbnMnLCB7fSkucG9wKGtleSwgTm9uZSkKICAgIHJldHVybiB2YWx1ZQoKCmRlZiBjaGVja19jdXJyZW50KGN1cnJlbnQsIHNlYWxlZCk6CiAgICBpZiBwcm9qZWN0aW9uKGN1cnJlbnQpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzZWFsZWQgbGl2ZSBVSUQgb3IgY29uZmlndXJhdGlvbiBjaGFuZ2VkJykKCgpkZWYgY2hlY2tfYWRtaXR0ZWQoYWRtaXR0ZWQsIHNlYWxlZCk6CiAgICBleHBlY3RlZCA9IGNvcHkuZGVlcGNvcHkoc2VhbGVkKQogICAgY29udGFpbmVycyA9IGV4cGVjdGVkWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddCiAgICBpZiBsZW4oY29udGFpbmVycykgIT0gMSBvciBjb250YWluZXJzWzBdWyduYW1lJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJyBvciBjb250YWluZXJzWzBdWydpbWFnZSddICE9IEJBU0U6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigndW5leHBlY3RlZCBiYXNlbGluZSBjb250YWluZXIgaWRlbnRpdHknKQogICAgY29udGFpbmVyc1swXVsnaW1hZ2UnXSA9IENBTkRJREFURQogICAgaWYgcHJvamVjdGlvbihhZG1pdHRlZCkgIT0gZXhwZWN0ZWQ6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYWRtaXNzaW9uIGNoYW5nZWQgY29uZmlndXJhdGlvbiBiZXlvbmQgdGhlIHNvbGUgaW1hZ2UgcGluJykKCgpkZWYgdHJhbnNwb3J0X3Jlc3VsdChleGl0X2NvZGUsIG91dHB1dCk6CiAgICBpbXBvcnQganNvbgogICAgdHJ5OgogICAgICAgIHZhbHVlID0ganNvbi5sb2FkcyhvdXRwdXQpCiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CiAgICAgICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdyZWFzb24nOiAnaW52YWxpZCB0cmFuc3BvcnQgcmVzdWx0J30KICAgIGlmIGV4aXRfY29kZSAhPSAwIG9yIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KSBvciB2YWx1ZS5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIG5vdCBUcnVlOgogICAgICAgIHJldHVybiB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlLCAncmVhc29uJzogJ3JlYWQtb25seSBwcmVmbGlnaHQgcmVmdXNlZCd9CiAgICByZXR1cm4gdmFsdWUK" + }, + { + "digest": "sha256:c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834", + "media_type": "text/plain", + "content_base64": "IiIiUmVhZC1vbmx5IHJlZnJlc2g7IGV4YWN0IG9yaWdpbmFsIGNhcHR1cmUgcmVtYWlucyBpbW11dGFibGU7IG5ldmVyIGV4ZWN1dGUgY3V0b3Zlci4iIiIKaW1wb3J0IGFyZ3BhcnNlLGhhc2hsaWIsanNvbixzdWJwcm9jZXNzLHN5cwpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKZnJvbSBjaGFuZ2VfZ3VhcmQgaW1wb3J0IHRyYW5zcG9ydF9yZXN1bHQKUk9PVD1QYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50CnA9YXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKTtwLmFkZF9hcmd1bWVudCgnLS1yZWNlaXB0LW91dHB1dCcsdHlwZT1QYXRoLHJlcXVpcmVkPVRydWUpO3AuYWRkX2FyZ3VtZW50KCctLXNvdXJjZS1yb290Jyx0eXBlPVBhdGgsZGVmYXVsdD1QYXRoKCcvaG9tZS93b3JzY2gvaW5mb3JtZWQtZGVjaXNpb24nKSk7YT1wLnBhcnNlX2FyZ3MoKQpvdXQ9YS5yZWNlaXB0X291dHB1dC5yZXNvbHZlKCkKaWYgbm90IGEucmVjZWlwdF9vdXRwdXQuaXNfYWJzb2x1dGUoKSBvciBvdXQ9PVJPT1Qgb3IgUk9PVCBpbiBvdXQucGFyZW50cyBvciBvdXQ9PWEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIG9yIGEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIGluIG91dC5wYXJlbnRzIG9yIG91dC5leGlzdHMoKToKIHJhaXNlIFN5c3RlbUV4aXQoJ3VuaXF1ZSBleGVjdXRpb24gcmVjZWlwdCBtdXN0IGJlIG91dHNpZGUgdGhlIHNlYWxlZCBwYWNrZXQnKQppbnB1dHM9anNvbi5sb2FkcygoUk9PVC8ncHJlZmxpZ2h0LWlucHV0cy5qc29uJykucmVhZF90ZXh0KCkpCmZvciByZWxhdGl2ZSxkaWdlc3QgaW4gaW5wdXRzWydwYWNrZXRfZmlsZXMnXS5pdGVtcygpOgogcGF0aD1ST09UL3JlbGF0aXZlCiBpZiBwYXRoLmlzX3N5bWxpbmsoKSBvciBoYXNobGliLnNoYTI1NihwYXRoLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCkhPWRpZ2VzdDpyYWlzZSBTeXN0ZW1FeGl0KCdzZWFsZWQgaGVscGVyL2lucHV0IGJ5dGVzIGNoYW5nZWQnKQpmb3IgcmVsYXRpdmUsZGlnZXN0IGluIGlucHV0c1snb3duZXJfc291cmNlX2ZpbGVzJ10uaXRlbXMoKToKIHBhdGg9YS5zb3VyY2Vfcm9vdC9yZWxhdGl2ZQogaWYgcGF0aC5pc19zeW1saW5rKCkgb3IgaGFzaGxpYi5zaGEyNTYocGF0aC5yZWFkX2J5dGVzKCkpLmhleGRpZ2VzdCgpIT1kaWdlc3Q6cmFpc2UgU3lzdGVtRXhpdCgnb3duZXIgc291cmNlIGJ5dGVzIGNoYW5nZWQnKQpwcm9ncmFtPSJpbXBvcnQgc3VicHJvY2Vzcyxqc29uLGhhc2hsaWIsZGF0ZXRpbWUsc3lzLGNvcHkscmVcbmNhbmRpZGF0ZT1qc29uLmxvYWRzKENBTkRJREFURV9MSVRFUkFMKVxuc2VhbGVkX2Jhc2VsaW5lPWpzb24ubG9hZHMoU0VBTEVEX0xJVEVSQUwpXG5leGVjKEdVQVJEX0xJVEVSQUwpXG5kZWYgcnVuKGFyZ3MsZGF0YT1Ob25lKTpcbiBwPXN1YnByb2Nlc3MucnVuKGFyZ3MsaW5wdXQ9ZGF0YSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSlcbiBpZiBwLnJldHVybmNvZGU6IHJhaXNlIFZhbHVlRXJyb3IoJ3JlYWQtb25seSBjb21tYW5kIGZhaWxlZDogJythcmdzWzFdKycgJythcmdzWzJdKVxuIHJldHVybiBwLnN0ZG91dFxubGl2ZT1qc29uLmxvYWRzKHJ1bihbJ2t1YmVjdGwnLCdnZXQnLCdkZXBsb3ltZW50JywnaW5mb3JtZWQtZGVjaXNpb24nLCctbicsJ2luZm9ybWVkLWRlY2lzaW9uJywnLW8nLCdqc29uJ10pKVxuY2hlY2tfY3VycmVudChsaXZlLHNlYWxlZF9iYXNlbGluZSlcbnNwZWM9bGl2ZVsnc3BlYyddOyBjcz1zcGVjWyd0ZW1wbGF0ZSddWydzcGVjJ11bJ2NvbnRhaW5lcnMnXTthc3NlcnQgbGVuKGNzKT09MSBhbmQgY3NbMF1bJ25hbWUnXT09J2luZm9ybWVkLWRlY2lzaW9uJ1xuZXhwZWN0ZWRfZW52PXsnSU5GRF9LRVlDQVBFX0lTU1VFUic6J2h0dHBzOi8va2MuY291bG9tYi5zb2NpYWwnLCdJTkZEX0NPTlRBSU5FUl9DT05GSUcnOicvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24nfVxuYXNzZXJ0IGNzWzBdLmdldCgnZW52Jyk9PVt7J25hbWUnOidJTkZEX0tFWUNBUEVfSVNTVUVSJywndmFsdWUnOmV4cGVjdGVkX2VudlsnSU5GRF9LRVlDQVBFX0lTU1VFUiddfSx7J25hbWUnOidJTkZEX0NPTlRBSU5FUl9DT05GSUcnLCd2YWx1ZSc6ZXhwZWN0ZWRfZW52WydJTkZEX0NPTlRBSU5FUl9DT05GSUcnXX1dXG5hc3NlcnQgY3NbMF1bJ2ltYWdlJ109PSdmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMnXG5hc3NlcnQgc3BlY1sncmVwbGljYXMnXT09MSBhbmQgc3BlY1snc3RyYXRlZ3knXT09eyd0eXBlJzonUmVjcmVhdGUnfVxuYXNzZXJ0IG5leHQodiBmb3IgdiBpbiBzcGVjWyd0ZW1wbGF0ZSddWydzcGVjJ11bJ3ZvbHVtZXMnXSBpZiB2WyduYW1lJ109PSdjb25maWd1cmF0aW9uJylbJ2NvbmZpZ01hcCddWyduYW1lJ109PSdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSdcbmFzc2VydCBsaXZlWydzdGF0dXMnXS5nZXQoJ3JlYWR5UmVwbGljYXMnKT09MSBhbmQgbGl2ZVsnc3RhdHVzJ10uZ2V0KCd1cGRhdGVkUmVwbGljYXMnKT09MVxuc2VhbGVkPXsnYXBpVmVyc2lvbic6bGl2ZVsnYXBpVmVyc2lvbiddLCdraW5kJzpsaXZlWydraW5kJ10sJ21ldGFkYXRhJzp7azpjb3B5LmRlZXBjb3B5KHYpIGZvciBrLHYgaW4gbGl2ZVsnbWV0YWRhdGEnXS5pdGVtcygpIGlmIGsgbm90IGluICgncmVzb3VyY2VWZXJzaW9uJywnZ2VuZXJhdGlvbicsJ2NyZWF0aW9uVGltZXN0YW1wJywnbWFuYWdlZEZpZWxkcycpfSwnc3BlYyc6Y29weS5kZWVwY29weShzcGVjKX1cbmZvciBrZXkgaW4gKCdrdWJlY3RsLmt1YmVybmV0ZXMuaW8vbGFzdC1hcHBsaWVkLWNvbmZpZ3VyYXRpb24nLCdkZXBsb3ltZW50Lmt1YmVybmV0ZXMuaW8vcmV2aXNpb24nKTpzZWFsZWRbJ21ldGFkYXRhJ10uZ2V0KCdhbm5vdGF0aW9ucycse30pLnBvcChrZXksTm9uZSlcbmFkbWl0dGVkPWpzb24ubG9hZHMocnVuKFsna3ViZWN0bCcsJ2FwcGx5JywnLS1kcnktcnVuPXNlcnZlcicsJy1mJywnLScsJy1vJywnanNvbiddLGpzb24uZHVtcHMoY2FuZGlkYXRlKSkpXG5jaGVja19hZG1pdHRlZChhZG1pdHRlZCxzZWFsZWRfYmFzZWxpbmUpXG5hcHA9anNvbi5sb2FkcyhydW4oWydrdWJlY3RsJywnZ2V0JywnYXBwbGljYXRpb24nLCdpbmZvcm1lZC1kZWNpc2lvbicsJy1uJywnYXJnb2NkJywnLW8nLCdqc29uJ10pKVxuYXNzZXJ0IGFwcFsnc3BlYyddWydzb3VyY2UnXVsncGF0aCddPT0nZGVwbG95L2xpZmVjeWNsZScgYW5kIG5vdCBhcHBbJ3NwZWMnXS5nZXQoJ3N5bmNQb2xpY3knLHt9KS5nZXQoJ2F1dG9tYXRlZCcpXG5hcmdvPXsndWlkJzphcHBbJ21ldGFkYXRhJ11bJ3VpZCddLCdyZXBvVVJMJzphcHBbJ3NwZWMnXVsnc291cmNlJ11bJ3JlcG9VUkwnXSwndGFyZ2V0UmV2aXNpb24nOmFwcFsnc3BlYyddWydzb3VyY2UnXVsndGFyZ2V0UmV2aXNpb24nXSwncGF0aCc6YXBwWydzcGVjJ11bJ3NvdXJjZSddWydwYXRoJ10sJ2Rlc3RpbmF0aW9uJzphcHBbJ3NwZWMnXVsnZGVzdGluYXRpb24nXSwnYXV0b21hdGVkJzpGYWxzZSwnc3luYyc6YXBwLmdldCgnc3RhdHVzJyx7fSkuZ2V0KCdzeW5jJyksJ2hlYWx0aCc6YXBwLmdldCgnc3RhdHVzJyx7fSkuZ2V0KCdoZWFsdGgnKX1cbmV4cGVjdGVkX2FyZ289anNvbi5sb2FkcyhBUkdPX0xJVEVSQUwpXG5mb3Iga2V5IGluICgndWlkJywncmVwb1VSTCcsJ3RhcmdldFJldmlzaW9uJywncGF0aCcsJ2Rlc3RpbmF0aW9uJywnYXV0b21hdGVkJyk6XG4gYXNzZXJ0IGFyZ29ba2V5XT09ZXhwZWN0ZWRfYXJnb1trZXldXG5hc3NlcnQgYXJnb1snaGVhbHRoJ11bJ3N0YXR1cyddPT0nSGVhbHRoeSdcbmRpZmY9c3VicHJvY2Vzcy5ydW4oWydrdWJlY3RsJywnZGlmZicsJy1mJywnLSddLGlucHV0PWpzb24uZHVtcHMoY2FuZGlkYXRlKSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSk7YXNzZXJ0IGRpZmYucmV0dXJuY29kZSBpbiAoMCwxKVxuIyBEaWZmIGNhbiBjb250YWluIG9ubHkgbm9uc2VjcmV0IERlcGxveW1lbnQgcmVmZXJlbmNlczsgcHJlc2VydmUgZGlnZXN0IHJhdGhlciB0aGFuIHJhdyBzdGRvdXQuXG5ub2RlPXJ1bihbJ2t1YmVjdGwnLCdkZXNjcmliZScsJ25vZGUnXSk7YWxsb2NhdGVkPXJlLnNlYXJjaChyJ0FsbG9jYXRlZCByZXNvdXJjZXM6Lio/Q1BVIFJlcXVlc3RzfEFsbG9jYXRlZCByZXNvdXJjZXM6Jyxub2RlLHJlLlMpXG5zZWN0aW9uPW5vZGUuc3BsaXQoJ0FsbG9jYXRlZCByZXNvdXJjZXM6JylbMV0uc3BsaXQoJ0V2ZW50czonKVswXSBpZiAnQWxsb2NhdGVkIHJlc291cmNlczonIGluIG5vZGUgZWxzZSAnJ1xubm9kZXM9anNvbi5sb2FkcyhydW4oWydrdWJlY3RsJywnZ2V0Jywnbm9kZXMnLCctbycsJ2pzb24nXSkpWydpdGVtcyddO2Fzc2VydCBsZW4obm9kZXMpPT0xXG5hbGxvYz1ub2Rlc1swXVsnc3RhdHVzJ11bJ2FsbG9jYXRhYmxlJ107Y3B1PWFsbG9jWydjcHUnXTtjcHVfbT1pbnQoY3B1WzotMV0pIGlmIGNwdS5lbmRzd2l0aCgnbScpIGVsc2UgaW50KGNwdSkqMTAwMFxucmVxdWVzdGVkPWludChyZS5zZWFyY2gocidjcHVcXHMrKFxcZCspbScsc2VjdGlvbikuZ3JvdXAoMSkpO2Fzc2VydCByZXF1ZXN0ZWQ8PWNwdV9tXG5yZWNlaXB0PXsnbm9kZV9hbGxvY2F0YWJsZV9jcHVfbSc6Y3B1X20sJ25vZGVfcmVxdWVzdGVkX2NwdV9tJzpyZXF1ZXN0ZWQsJ2NhcHR1cmVkX2F0JzpkYXRldGltZS5kYXRldGltZS5ub3coZGF0ZXRpbWUudGltZXpvbmUudXRjKS5pc29mb3JtYXQoKSwnbmF0aXZlX3dvcmtsb2FkX2NoYW5nZWQnOkZhbHNlLCduYXRpdmVfYmFja3VwX3Jlc3RvcmVfZXhlY3V0ZWQnOkZhbHNlLCdhcmdvJzphcmdvLCdsaXZlX3JlYWR5X3JlcGxpY2FzJzoxLCdhZG1pdHRlZF91aWQnOmFkbWl0dGVkWydtZXRhZGF0YSddWyd1aWQnXSwnc2VydmVyX2RyeV9ydW5fcGFzc2VkJzpUcnVlLCdhZG1pdHRlZF9zcGVjX2V4YWN0bHlfbGl2ZV9wbHVzX2ltYWdlJzpUcnVlLCdjbGllbnRfZGlmZl9leGl0JzpkaWZmLnJldHVybmNvZGUsJ2NsaWVudF9kaWZmX3NoYTI1Nic6aGFzaGxpYi5zaGEyNTYoZGlmZi5zdGRvdXQuZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCdub2RlX2FsbG9jYXRlZF9yZXNvdXJjZXMnOnNlY3Rpb24uc3RyaXAoKSwnYWxsX2NoZWNrc19wYXNzJzpUcnVlfVxucHJpbnQoanNvbi5kdW1wcyhyZWNlaXB0KSlcbiIKZm9yIG1hcmtlcix2YWx1ZSBpbiBbKCdDQU5ESURBVEVfTElURVJBTCcsKFJPT1QvJ2NhbmRpZGF0ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksKCdTRUFMRURfTElURVJBTCcsKFJPT1QvJ3NlYWxlZC1saXZlLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKSwoJ0dVQVJEX0xJVEVSQUwnLChST09ULydjaGFuZ2VfZ3VhcmQucHknKS5yZWFkX3RleHQoKSksKCdBUkdPX0xJVEVSQUwnLGpzb24uZHVtcHMoanNvbi5sb2FkcygoUk9PVC8nbmF0aXZlLXByZWZsaWdodC5qc29uJykucmVhZF90ZXh0KCkpWydhcmdvJ10pKV06CiBwcm9ncmFtPXByb2dyYW0ucmVwbGFjZShtYXJrZXIscmVwcih2YWx1ZSkpCnByb2dyYW09J2ltcG9ydCB0cmFjZWJhY2ssanNvblxudHJ5OlxuJysnJy5qb2luKCcgICAgJytsaW5lKydcbicgZm9yIGxpbmUgaW4gcHJvZ3JhbS5zcGxpdGxpbmVzKCkpKyJleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOlxuICAgIHByaW50KGpzb24uZHVtcHMoeydhbGxfY2hlY2tzX3Bhc3MnOkZhbHNlLCdleGNlcHRpb25fdHlwZSc6dHlwZShlcnJvcikuX19uYW1lX18sJ2V4Y2VwdGlvbl9saW5lJzp0cmFjZWJhY2suZXh0cmFjdF90YihlcnJvci5fX3RyYWNlYmFja19fKVstMV0ubGluZW5vfSkpXG4iCnI9c3VicHJvY2Vzcy5ydW4oWydzc2gnLCdyYWlsaWFuY2UwMScsJ3B5dGhvbjMgLSddLGlucHV0PXByb2dyYW0sdGV4dD1UcnVlLGNhcHR1cmVfb3V0cHV0PVRydWUpCnJlc3VsdD10cmFuc3BvcnRfcmVzdWx0KHIucmV0dXJuY29kZSxyLnN0ZG91dCk7cmVzdWx0WydzZWFsZWRfcHJlZmxpZ2h0X2lucHV0c19zaGEyNTYnXT1oYXNobGliLnNoYTI1NigoUk9PVC8ncHJlZmxpZ2h0LWlucHV0cy5qc29uJykucmVhZF9ieXRlcygpKS5oZXhkaWdlc3QoKTtyZXN1bHRbJ2ZyZXNoX2V4ZWN1dGlvbl9yZWNlaXB0J109VHJ1ZQpvdXQud3JpdGVfdGV4dChqc29uLmR1bXBzKHJlc3VsdCxpbmRlbnQ9MikrJ1xuJyk7cHJpbnQoanNvbi5kdW1wcyhyZXN1bHQsaW5kZW50PTIpKTtzeXMuZXhpdCgwIGlmIHJlc3VsdC5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIFRydWUgZWxzZSAxKQo=" + }, + { + "digest": "sha256:0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944", + "media_type": "application/json", + "content_base64": "ewogICJwYWNrZXRfZmlsZXMiOiB7CiAgICAiY2hhbmdlX2d1YXJkLnB5IjogIjgzMGY3NzcxYjVjN2QwYTI4NTE5NzNhYTY1YTAxYzZhYjQwYjg2NTcwZjA5MzNkOGFlYmI4OWY5NjY1Y2E3ZTEiLAogICAgInByZWZsaWdodC5weSI6ICJjMjA2YTFhOWI5ZDIzMmM2NTZjNmQ1N2ZiOTI0NzU0OWVlZmExM2IyNzVhNWRhNGQzOWI0NWE2Yzk5MDJjODM0IiwKICAgICJjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uIjogIjcyMmE4ZTJkYzUyYmVjMjE3YmY5NjBlMjNiMmZkZGZjN2FjMjdkMzQzYWM4NzQzNzkwZTMxODNkYjgxYTZhMGUiLAogICAgInJvbGxiYWNrLWRlcGxveW1lbnQuanNvbiI6ICIzOWIzZjQzYmI4NGVmNDkyMWNjM2ExZmJjZGM0NDQ2MTA3NDFlZDg4MDkxNDlkOGY4ZjE3ZWQ4MDVmMjYyMTIxIiwKICAgICJzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24iOiAiZDE4ZDI3MDYzZDA2ZjUzNWFlODg0ZWEwMWY5Njc0N2ZlMzAxNjg1NTE4YWI5NGIxY2JhMDcyYTFlMTUxOTM2MiIsCiAgICAibmF0aXZlLXByZWZsaWdodC5qc29uIjogImViNWY0MWFlZmI5NzY2NmJiMGMxMjc5NjE3ZTk1YTdjMDUwMTdhNjA5NDE1NjI0ZGFlZTcyNGM0OGI5MGQyNjIiCiAgfSwKICAib3duZXJfc291cmNlX2ZpbGVzIjogewogICAgImRlcGxveS9saWZlY3ljbGUvYWRtaXNzaW9uLmNhbmRpZGF0ZS5qc29uIjogIjkyMzgyYTU2YjM0OWMzYjg5NWU1ODA2ZTk3NTA4MjUyN2JiOTlkMWEwMDExNDBlNjlkODU3ZTViMDM5MWZhNTUiLAogICAgImRlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvbiI6ICIzOGI3OGI5Y2JlZTVhZGU3NzUwYTU4ZDUxNTZjYTRjNTc3MzM1MmU5NDdhY2IzMDRlZTcxNGI1OWU3NDljZWI0IgogIH0KfQo=" + }, + { + "digest": "sha256:aa1d494e42491f0619f731a836c597df9178409887d734c166a8df81f8807a27", + "media_type": "application/json", + "content_base64": "ewogICJub2RlX2FsbG9jYXRhYmxlX2NwdV9tIjogNDAwMCwKICAibm9kZV9yZXF1ZXN0ZWRfY3B1X20iOiAzNDYwLAogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjMwOjMzLjY3NDM2MCswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibGl2ZV9yZWFkeV9yZXBsaWNhcyI6IDEsCiAgImFkbWl0dGVkX3VpZCI6ICJhNTg4ZTEwYS05MGQyLTQ4ODMtOTc1ZS02ZGQ4YjhmZWNhOTIiLAogICJzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWQiOiB0cnVlLAogICJhZG1pdHRlZF9zcGVjX2V4YWN0bHlfbGl2ZV9wbHVzX2ltYWdlIjogdHJ1ZSwKICAiY2xpZW50X2RpZmZfZXhpdCI6IDEsCiAgImNsaWVudF9kaWZmX3NoYTI1NiI6ICIwNTA2ODI1YjQwOGJiMmM3YjlkY2IwMGE1ZWU2NTVkYzllYzIzYjA5YjMwOGQ0MmJiMDEzZDcyNjcyZjhmNDE1IiwKICAibm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzIjogIihUb3RhbCBsaW1pdHMgbWF5IGJlIG92ZXIgMTAwIHBlcmNlbnQsIGkuZS4sIG92ZXJjb21taXR0ZWQuKVxuICBSZXNvdXJjZSAgICAgICAgICAgUmVxdWVzdHMgICAgICBMaW1pdHNcbiAgLS0tLS0tLS0gICAgICAgICAgIC0tLS0tLS0tICAgICAgLS0tLS0tXG4gIGNwdSAgICAgICAgICAgICAgICAzNDYwbSAoODYlKSAgIDM2MjAwbSAoOTA1JSlcbiAgbWVtb3J5ICAgICAgICAgICAgIDk0NzJNaSAoNTklKSAgMzI4OThNaSAoMjA1JSlcbiAgZXBoZW1lcmFsLXN0b3JhZ2UgIDAgKDAlKSAgICAgICAgMCAoMCUpXG4gIGh1Z2VwYWdlcy0xR2kgICAgICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMk1pICAgICAgMCAoMCUpICAgICAgICAwICgwJSkiLAogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlLAogICJzZWFsZWRfcHJlZmxpZ2h0X2lucHV0c19zaGEyNTYiOiAiMGJiZGFmNTY0NTlhYWVmM2MzNWQ3YjFiZjNhZDIwYmU2MjYwZjA0N2RmNmRkMWM1ZWI2MGFjMTc5NzE1MDk0NCIsCiAgImZyZXNoX2V4ZWN1dGlvbl9yZWNlaXB0IjogdHJ1ZQp9Cg==" + } + ] + }, + "publish": { + "version": 1, + "audience": { + "subjects": [], + "groups": [ + "net-kingdom-admins" + ] + } + }, + "review": { + "version": 1, + "options": { + "submitter": "state-hub", + "memo_class": "decision-record", + "review_group": "net-kingdom-admins", + "approval_intent": { + "action": "administer", + "principal": "informed-decision", + "purpose": "Approve exact image-only purpose overlay release plus protected native evidence backup/restore gates and explicit inherited fixable-medium owner follow-through; no unrelated grant.", + "target": { + "id": "INFD-WP-0009-T04/purpose-overlay-v1", + "type": "runtime-change", + "system": "railiance01" + } + } + } + } + } +] diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/memo.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/memo.json new file mode 100644 index 0000000..18fb63c --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/memo.json @@ -0,0 +1,141 @@ +{ + "id": "infd-20261011-purpose-overlay-r1", + "version": 1, + "question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?", + "requested_act": "approve", + "binding_level": "organizational", + "brief": "Actual owner CI published763c from3e4bcb26; unchanged8base layers plus one policy.py, installedUID10001 and10purpose checks pass. Full44package scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, identical actualbase scan. Only Deploymentimage changes; manualArgo prune=false, runtime6c/schema5/PVC/identity/policies unchanged. Protected real-data backup/restore and fresh sealed-source/UID/configuration gates required, not executed. Live owner riskrecord/T05 dueOct18; Recreate briefly interrupts service. No priorconfigapproval reused.", + "binding": { + "principal": { + "id": "pending-human-session", + "kind": "person", + "display_name": "Founder review" + }, + "target": { + "kind": "environment", + "id": "realm:kubernetes/railiance01/informed-decision", + "label": "Informed Decision image-only purpose hardening on railiance01", + "environment": "production" + }, + "terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/off-cluster custody/offline restore plus exact owner-source pin/manual Deployment-only image release763c, prune=false. ADMINISTER activationAPPROVED only upon actualdisposition, execute by2026-10-12T23:59:59Z afterfresh sealedpreflight+restoregates; rollbackprior7f5 retaining latestschema5DB. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 ownerreviewdue2026-10-18. No credential/policy/grant change, humanbinding, wholeAppsync or autonomygrant." + }, + "step_kind": "approve", + "packet": [ + { + "item_id": "decision-packet-md", + "label": "decision-packet.md", + "hash": "sha256:7f6d8987f65dff479eeead67b7ca940ef44c22c1cdbdd6ca33fd732b824c8f02" + }, + { + "item_id": "proposal-json", + "label": "proposal.json", + "hash": "sha256:08c5573eaad05efd24b6df6737d33e7189543eb621f21704e38bab4326094914" + }, + { + "item_id": "candidate-admission-json", + "label": "candidate-admission.json", + "hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "item_id": "rollback-admission-json", + "label": "rollback-admission.json", + "hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "item_id": "candidate-deployment-json", + "label": "candidate-deployment.json", + "hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "item_id": "rollback-deployment-json", + "label": "rollback-deployment.json", + "hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "item_id": "published-verification-json", + "label": "published-verification.json", + "hash": "sha256:e304dd29571bf7d7b9f1db2ade0163dd39cfec012a5ce6986139f019f37e65a2" + }, + { + "item_id": "registry-proof-json", + "label": "registry-proof.json", + "hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "item_id": "security-summary-json", + "label": "security-summary.json", + "hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "item_id": "trivy-full-json", + "label": "trivy-full.json", + "hash": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "item_id": "sbom-cdx-json", + "label": "sbom.cdx.json", + "hash": "sha256:a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d" + }, + { + "item_id": "check-installed-py", + "label": "check_installed.py", + "hash": "sha256:a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad" + }, + { + "item_id": "native-backup-restore-protocol-md", + "label": "native-backup-restore-protocol.md", + "hash": "sha256:aa9758d4de587d14c6ce0fdaccd84002c5c5099425b9169ca7c972a86e9d3dec" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "label": "inherited-vulnerability-follow-through.json", + "hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "item_id": "native-preflight-json", + "label": "native-preflight.json", + "hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "item_id": "sealed-live-deployment-json", + "label": "sealed-live-deployment.json", + "hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "item_id": "change-guard-py", + "label": "change_guard.py", + "hash": "sha256:830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1" + }, + { + "item_id": "preflight-py", + "label": "preflight.py", + "hash": "sha256:c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834" + }, + { + "item_id": "preflight-inputs-json", + "label": "preflight-inputs.json", + "hash": "sha256:0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944" + }, + { + "item_id": "fresh-preflight-validation-json", + "label": "fresh-preflight-validation.json", + "hash": "sha256:aa1d494e42491f0619f731a836c597df9178409887d734c166a8df81f8807a27" + } + ], + "highlights": [ + { + "id": "native-custody-rollout-and-known-medium", + "item_id": "decision-packet-md", + "note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof.", + "required_ack": true, + "severity": "warning", + "locator": { + "kind": "section", + "heading": "Requested decision" + } + } + ], + "sealed": false, + "approval_id": null, + "approval_binding_digest": null +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md new file mode 100644 index 0000000..6e1f547 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md @@ -0,0 +1,40 @@ +# Protected native backup/restore and image-only release protocol + +Prepared protocol for `INFD-WP-0009-T04/purpose-overlay-v1`. No actual native backup, data export, restore, workload change or approval is recorded here. Candidate registry image identity remains a prerequisite; only after actual artifact proof may the founder approve one exact conditional protocol/rollout packet. The config-only7db8485 approval is outside this scope. + +## Preconditions and protected custody + +Freeze exact candidate and prior7f5c6cb image digests, source/installed policy hashes, current manually managed Argo Application/revision, runtime ConfigMap6c221878d051, Deployment UID/template/spec, schema5, policy package pins, database path `/data/private/review.sqlite`, PVC binding, replicas1/Recreate and stable keys for intended verification. Confirm no concurrent writer or custody change. Use fixed metadata; never fetch Secret objects or token values. A changed image/config/schema/owner invalidates the packet. Fresh resources/headroom and exact source/native server-dry-run/diff remain required. + +Backups are private evidence containing real decision records, not logs or packet attachments. Allocate a unique backup directory under existing protected PVC custody, owned10001, mode0700, snapshot file0600, no symlink/hardlink/reused output path. An off-cluster copy belongs only in the already established ignored `.private-backups/` custody with0700/0600 permissions; no Git, StateHub, public object store or terminal-content dump. Record only schema, integrity pass/fail, bounded table/state counts and protected receipt identifier; retain byte digests in protected custody if needed for internal copy identity. No credential, record payload or token fingerprint enters public evidence. + +## Approved online compatibility drill + +Within the explicit founder-approved action, run the existing base image's `informed-decision-admin backup --db /data/private/review.sqlite --output ` in the actual serving workload. This uses SQLite's backup API for a transactionally consistent snapshot; copying a live main database while ignoring WAL is prohibited. Suppress raw failures/output and retain only sanitized status. Observe schema/integrity and count-only metadata from the resulting snapshot, not record content. + +Transfer that consistent snapshot only into protected off-cluster custody through the existing authorized operator lane. The copy is real production data even in build mode. Verify private permissions, unique identity and protected internal digest agreement. Do not export mounted workload credentials or directory trees; copy only the exact snapshot. + +Create a separate private disposable restore volume/directory; retain the original snapshot unchanged. Run the exact published candidate with network disabled, no production ConfigMap/token mounts, read-only image and only that isolated volume writable. Override the service entrypoint with the owner's count-only administrative inspection/integrity check; do not start HTTP listeners, audit delivery, requester exchanges or approval operations. The current candidate changes policy.py only and retains the schema/store module bytes; still prove schema5, SQLite integrity and exact bounded counts before/after opening the restored copy. Refuse any migration/downgrade, lost/changed counts, unexpected write class or unknown outcome. Keep pending/uncertain submission and outbox states; never replay, discard or mark them delivered to green the drill. Cleanup only the disposable copy/volume after verified receipt; retain the original protected backup for the approved recovery interval. + +This step is actual native-data compatibility evidence once performed. Its previous synthetic fixture checks remain mechanism evidence and cannot be renamed native success. A failed drill stops rollout and remains a failed/unverified outcome in the same trial. + +## Fresh cutover snapshot and single-writer rollout + +After successful actual-data compatibility checks, create another unique SQLite-consistent online snapshot immediately before the image cutover, retaining its point-in-time schema/integrity/count receipt. This is an online transactional snapshot, not a claim that dispatchers or human writes were quiesced. Every later committed record remains in the live database; same-schema rollback retains that database and never restores the earlier snapshot over it. The narrow image-only update does not need dispatcher/configuration/PVC/temporary-pod changes or a schema cutover. If fresh verification shows a migration or any data-restoration requirement, stop and refine the proposal rather than applying this protocol. + +The existing Recreate rollout drains/stops the single old writer before starting the new image on the same PVC; the inherited single-writer lock independently refuses concurrent serving processes. Do not add an admin pod, scale-to-zero, dispatcher stop, network-policy rewrite or snapshot overwrite as an improvised image-only step. The existing owner admin backup operation runs inside the admitted serving workload, and its separate protected restore drill runs off-cluster with network disabled and no workload credentials. Those exact custody operations must be enumerated in the founder packet alongside the one Deployment image change. + +Once backup/compatibility/preflight gates pass, manually pin the existing Argo Application to the exact reviewed source revision and sync only Deployment/informed-decision with prune false, keeping the current immutable runtime ConfigMap and all other resources. The source patch changes only the image in admission/rendered Deployment; no Secret, PVC, policy, database or dispatcher change is included unless separately enumerated in the final proposal. Observe five-minute readiness and exact image/config/schema/pins. Verify native lifecycle binding using stable keys and an isolated installed-client probe based on a real provider response contaminated with advisory purpose; prove refusal before any write. Do not contaminate the live PDP, create human approvals, read credentials through CLI, or replay unknown external outcomes for testing. + +## Same-schema rollback and evidence retention + +On startup/readiness/binding/refusal failure, retain current database, cutover backup and every post-cutover evidence/uncertain outcome. Restore only the prior7f5c6cb image through the same manual Argo owner path, retaining schema5 and current DB/configuration; never restore an old snapshot over current live evidence just to roll the image back. Verify old image/Ready1, same schema/counts and prior behavior, and reconcile any external effects using existing lifecycle/audit ownership. The narrow overlay's identical store/schema/dependency bytes permit this image-only rollback; it is not permission for a schema downgrade or data loss. + +Record original/approved/executed source and image revisions, backup/drill/cutover/rollout timestamps, exact disposition and sanitized outcomes in the existing supervised trial receipt. EUR0 incremental infrastructure estimate uses existing service/storage/operator lane; protected temporary copy/storage consumption and15–30minute recovery time remain operational costs. No EUR incident-loss cap or autonomy grant is inferred. TaskT04 cannot close until actual published image, approved native compatibility and release plus post-release refusal/binding evidence all exist. + +## Exact release case identifiers + +Proposal `INFD-WP-0009-T04/purpose-overlay-v1`, trial `infd-purpose-20261011-r1`. +Protected native parent `/data/private/purpose-overlay-r1` must be unique/non-symlink, owned10001 and0700. The drill snapshot is `drill.sqlite`, the refreshed pre-cutover snapshot `cutover.sqlite`, each new0600 file; refuse any existing output. Off-cluster custody is the existing ignored Custodian `.private-backups/20261011-infd-purpose-r1` parent0700, files0600; no snapshot is an evidence attachment. Check owner UID, no symlinks, ignored status and free capacity for both native snapshots plus independently protected copies before making any snapshot. + +The disposable offline restore volume is `infd-purpose-r1-restore-20261011`; refuse an existing volume, copy only the selected frozen snapshot, and run exact published candidate763c with networknone/read-only image,128MiB/core1 and no runtime config/token mounts. SQLite `PRAGMA integrity_check` must return `ok`, `PRAGMA user_version`/Store inspection must agree with actual schema5 semantics, and installed admin count-only inspection must match the frozen snapshot. Validate the actual schema representation rather than assume PRAGMA user_version is the schema authority. No synthetic restoration is reported as native restoration. Native original/off-cluster copies remain retained; only the disposable restore copy/volume may be removed under the exact approved cleanup scope. diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json new file mode 100644 index 0000000..09fed88 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json @@ -0,0 +1,5 @@ +{ + "all_checks_pass": false, + "transport_exit": 1, + "stderr_sha256": "d9ea0351e38468c65d13bd68ece0c8e27acb654380ffee23111f76655edf8c49" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json new file mode 100644 index 0000000..973ff50 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json @@ -0,0 +1,9 @@ +{ + "all_checks_pass": false, + "metadata_diff": { + "category": "annotations", + "changed_keys": [ + "argocd.argoproj.io/tracking-id" + ] + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json new file mode 100644 index 0000000..10603b4 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json @@ -0,0 +1,43 @@ +{ + "captured_at": "2026-10-11T01:25:38.793555+00:00", + "native_workload_changed": false, + "native_backup_restore_executed": false, + "argo": { + "uid": "499868f2-eabc-4df4-ae31-b89ce58d750d", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "path": "deploy/lifecycle", + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "automated": false, + "sync": { + "comparedTo": { + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "source": { + "path": "deploy/lifecycle", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf" + } + }, + "revision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "status": "OutOfSync" + }, + "health": { + "lastTransitionTime": "2026-10-10T23:14:52Z", + "status": "Healthy" + } + }, + "live_ready_replicas": 1, + "admitted_uid": "a588e10a-90d2-4883-975e-6dd8b8feca92", + "server_dry_run_passed": true, + "admitted_spec_exactly_live_plus_image": true, + "client_diff_exit": 1, + "client_diff_sha256": "a4bc024a8cec658f835285ed51964e2e084edbaf103d45a48b89c0950bcd3e7d", + "node_allocated_resources": "(Total limits may be over 100 percent, i.e., overcommitted.)\n Resource Requests Limits\n -------- -------- ------\n cpu 3460m (86%) 36200m (905%)\n memory 9472Mi (59%) 32898Mi (205%)\n ephemeral-storage 0 (0%) 0 (0%)\n hugepages-1Gi 0 (0%) 0 (0%)\n hugepages-2Mi 0 (0%) 0 (0%)", + "all_checks_pass": true +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json new file mode 100644 index 0000000..5ab98df --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json @@ -0,0 +1,14 @@ +{ + "packet_files": { + "change_guard.py": "830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1", + "preflight.py": "c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834", + "candidate-deployment.json": "722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e", + "rollback-deployment.json": "39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121", + "sealed-live-deployment.json": "d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362", + "native-preflight.json": "eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + "owner_source_files": { + "deploy/lifecycle/admission.candidate.json": "92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55", + "deploy/lifecycle/service.candidate.json": "38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4" + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight.py b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight.py new file mode 100644 index 0000000..8e1b0a1 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight.py @@ -0,0 +1,23 @@ +"""Read-only refresh; exact original capture remains immutable; never execute cutover.""" +import argparse,hashlib,json,subprocess,sys +from pathlib import Path +from change_guard import transport_result +ROOT=Path(__file__).resolve().parent +p=argparse.ArgumentParser();p.add_argument('--receipt-output',type=Path,required=True);p.add_argument('--source-root',type=Path,default=Path('/home/worsch/informed-decision'));a=p.parse_args() +out=a.receipt_output.resolve() +if not a.receipt_output.is_absolute() or out==ROOT or ROOT in out.parents or out==a.source_root.resolve() or a.source_root.resolve() in out.parents or out.exists(): + raise SystemExit('unique execution receipt must be outside the sealed packet') +inputs=json.loads((ROOT/'preflight-inputs.json').read_text()) +for relative,digest in inputs['packet_files'].items(): + path=ROOT/relative + if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('sealed helper/input bytes changed') +for relative,digest in inputs['owner_source_files'].items(): + path=a.source_root/relative + if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('owner source bytes changed') +program="import subprocess,json,hashlib,datetime,sys,copy,re\ncandidate=json.loads(CANDIDATE_LITERAL)\nsealed_baseline=json.loads(SEALED_LITERAL)\nexec(GUARD_LITERAL)\ndef run(args,data=None):\n p=subprocess.run(args,input=data,text=True,capture_output=True)\n if p.returncode: raise ValueError('read-only command failed: '+args[1]+' '+args[2])\n return p.stdout\nlive=json.loads(run(['kubectl','get','deployment','informed-decision','-n','informed-decision','-o','json']))\ncheck_current(live,sealed_baseline)\nspec=live['spec']; cs=spec['template']['spec']['containers'];assert len(cs)==1 and cs[0]['name']=='informed-decision'\nexpected_env={'INFD_KEYCAPE_ISSUER':'https://kc.coulomb.social','INFD_CONTAINER_CONFIG':'/configuration/runtime.json'}\nassert cs[0].get('env')==[{'name':'INFD_KEYCAPE_ISSUER','value':expected_env['INFD_KEYCAPE_ISSUER']},{'name':'INFD_CONTAINER_CONFIG','value':expected_env['INFD_CONTAINER_CONFIG']}]\nassert cs[0]['image']=='forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173'\nassert spec['replicas']==1 and spec['strategy']=={'type':'Recreate'}\nassert next(v for v in spec['template']['spec']['volumes'] if v['name']=='configuration')['configMap']['name']=='informed-decision-runtime-6c221878d051'\nassert live['status'].get('readyReplicas')==1 and live['status'].get('updatedReplicas')==1\nsealed={'apiVersion':live['apiVersion'],'kind':live['kind'],'metadata':{k:copy.deepcopy(v) for k,v in live['metadata'].items() if k not in ('resourceVersion','generation','creationTimestamp','managedFields')},'spec':copy.deepcopy(spec)}\nfor key in ('kubectl.kubernetes.io/last-applied-configuration','deployment.kubernetes.io/revision'):sealed['metadata'].get('annotations',{}).pop(key,None)\nadmitted=json.loads(run(['kubectl','apply','--dry-run=server','-f','-','-o','json'],json.dumps(candidate)))\ncheck_admitted(admitted,sealed_baseline)\napp=json.loads(run(['kubectl','get','application','informed-decision','-n','argocd','-o','json']))\nassert app['spec']['source']['path']=='deploy/lifecycle' and not app['spec'].get('syncPolicy',{}).get('automated')\nargo={'uid':app['metadata']['uid'],'repoURL':app['spec']['source']['repoURL'],'targetRevision':app['spec']['source']['targetRevision'],'path':app['spec']['source']['path'],'destination':app['spec']['destination'],'automated':False,'sync':app.get('status',{}).get('sync'),'health':app.get('status',{}).get('health')}\nexpected_argo=json.loads(ARGO_LITERAL)\nfor key in ('uid','repoURL','targetRevision','path','destination','automated'):\n assert argo[key]==expected_argo[key]\nassert argo['health']['status']=='Healthy'\ndiff=subprocess.run(['kubectl','diff','-f','-'],input=json.dumps(candidate),text=True,capture_output=True);assert diff.returncode in (0,1)\n# Diff can contain only nonsecret Deployment references; preserve digest rather than raw stdout.\nnode=run(['kubectl','describe','node']);allocated=re.search(r'Allocated resources:.*?CPU Requests|Allocated resources:',node,re.S)\nsection=node.split('Allocated resources:')[1].split('Events:')[0] if 'Allocated resources:' in node else ''\nnodes=json.loads(run(['kubectl','get','nodes','-o','json']))['items'];assert len(nodes)==1\nalloc=nodes[0]['status']['allocatable'];cpu=alloc['cpu'];cpu_m=int(cpu[:-1]) if cpu.endswith('m') else int(cpu)*1000\nrequested=int(re.search(r'cpu\\s+(\\d+)m',section).group(1));assert requested<=cpu_m\nreceipt={'node_allocatable_cpu_m':cpu_m,'node_requested_cpu_m':requested,'captured_at':datetime.datetime.now(datetime.timezone.utc).isoformat(),'native_workload_changed':False,'native_backup_restore_executed':False,'argo':argo,'live_ready_replicas':1,'admitted_uid':admitted['metadata']['uid'],'server_dry_run_passed':True,'admitted_spec_exactly_live_plus_image':True,'client_diff_exit':diff.returncode,'client_diff_sha256':hashlib.sha256(diff.stdout.encode()).hexdigest(),'node_allocated_resources':section.strip(),'all_checks_pass':True}\nprint(json.dumps(receipt))\n" +for marker,value in [('CANDIDATE_LITERAL',(ROOT/'candidate-deployment.json').read_text()),('SEALED_LITERAL',(ROOT/'sealed-live-deployment.json').read_text()),('GUARD_LITERAL',(ROOT/'change_guard.py').read_text()),('ARGO_LITERAL',json.dumps(json.loads((ROOT/'native-preflight.json').read_text())['argo']))]: + program=program.replace(marker,repr(value)) +program='import traceback,json\ntry:\n'+''.join(' '+line+'\n' for line in program.splitlines())+"except Exception as error:\n print(json.dumps({'all_checks_pass':False,'exception_type':type(error).__name__,'exception_line':traceback.extract_tb(error.__traceback__)[-1].lineno}))\n" +r=subprocess.run(['ssh','railiance01','python3 -'],input=program,text=True,capture_output=True) +result=transport_result(r.returncode,r.stdout);result['sealed_preflight_inputs_sha256']=hashlib.sha256((ROOT/'preflight-inputs.json').read_bytes()).hexdigest();result['fresh_execution_receipt']=True +out.write_text(json.dumps(result,indent=2)+'\n');print(json.dumps(result,indent=2));sys.exit(0 if result.get('all_checks_pass') is True else 1) diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/proposal.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/proposal.json new file mode 100644 index 0000000..88a7f6c --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/proposal.json @@ -0,0 +1,50 @@ +{ + "proposal_id": "INFD-WP-0009-T04/purpose-overlay-v1", + "trial_id": "infd-purpose-20261011-r1", + "state": "prepared-unapproved", + "target": "realm:kubernetes/railiance01/informed-decision", + "authority": "ADMINISTER; activation APPROVED only upon exact founder disposition", + "candidate_image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "published_source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "prior_image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "prior_argo_revision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "native_object": { + "apiVersion": "apps/v1", + "kind": "Deployment", + "namespace": "informed-decision", + "name": "informed-decision", + "uid": "a588e10a-90d2-4883-975e-6dd8b8feca92" + }, + "argo_application_uid": "499868f2-eabc-4df4-ae31-b89ce58d750d", + "source_gate": "Exact committed owner source must contain the two approved candidate file hashes in preflight-inputs.json; source preparation is not native approval", + "sync_scope": [ + "apps:Deployment:informed-decision" + ], + "prune": false, + "automated_sync": false, + "runtime_configmap": "informed-decision-runtime-6c221878d051", + "schema": 5, + "requested_operations": [ + "Protected SQLite-consistent native backup and independently protected off-cluster custody", + "Offline restore/integrity/count comparison on a private disposable volume with exact candidate, no runtime tokens/config/network", + "Refresh a consistent pre-cutover snapshot, retain private copies and count-only/hash receipts", + "Pin existing manual Argo Application to exact approved owner source and manually sync only existing Deployment image", + "Verify health/readiness/image/module/installed fail-closed purpose checks and retained schema/count evidence; recover to prior same-schema image if needed" + ], + "execute_by": "2026-10-12T23:59:59Z", + "temporary_vulnerability_review_due": "2026-10-18", + "known_scan_findings": "0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, actual currentbase+candidate findings identical", + "vulnerability_record": "INFD-RISK-20261011-ZLIB-85091 / INFD-WP-0009-T05", + "cost_estimate_EUR": 0, + "cost_limits": "No new recurring infrastructure; private backup storage and attended engineering/recovery time unpriced, not an autopilot cost grant", + "risk_estimates": [ + "Brief Recreate service interruption; no concurrent new writer/surge", + "Private evidence snapshot custody and disposal errors; no snapshots/tokens in public evidence", + "Candidate purpose refusal may expose callers relying on advisory results as binding", + "Inherited known fixable MEDIUM remains until separately approved owner remediation", + "Existing Argo OutOfSync baseline is retained; no whole-app sync or unrelated repairs permitted" + ], + "rollback": "Manual Argo source pin back to7db8485 and scoped Deployment-only sync to7f5c image; retain current schema5 database and all post-cutover evidence, never restore older snapshot over live writes", + "native_executed": false, + "human_approval": false +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/published-verification.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/published-verification.json new file mode 100644 index 0000000..1350c06 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/published-verification.json @@ -0,0 +1,58 @@ +{ + "proposal": "INFD-WP-0009-T04/purpose-overlay-v1", + "observed_at": "2026-10-11T01:24:01.985128+00:00", + "native_owner_publication_job": { + "id": 11484, + "name": "publish-candidate", + "head_branch": "main", + "head_sha": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "run_number": 3, + "event": "push", + "display_title": "Prepare readable overlay context with the admitted legacy builder", + "status": "success", + "workflow_id": "purpose-overlay-image.yaml", + "url": "https://forgejo.coulomb.social/coulomb/informed-decision/actions/runs/3", + "created_at": "2026-10-11T01:20:59Z", + "updated_at": "2026-10-11T01:21:08Z", + "run_started_at": "2026-10-11T01:20:59Z" + }, + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "policy_sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "registry_proof_sha256": "5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213", + "source_render_change_only": "Deployment/informed-decision spec.template.spec.containers[0].image", + "runtime_configmap_unchanged": "informed-decision-runtime-6c221878d051", + "installed_image_execution": { + "immutable_registry_artifact_pulled_anonymously": true, + "UID": 10001, + "GID": 10001, + "policy_file_UID": 0, + "policy_file_mode": "0644", + "purpose_variants": 10, + "binding_forms_allowed": 2, + "advisory_or_malformed_refused": 8, + "network": "none", + "read_only": true, + "synthetic_transport": true, + "native_PDP_test": false + }, + "scan_summary_sha256": "0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44", + "historical_failed_runs_retained": [ + "f66de505/task11482/run1", + "acecad887/task11483/run2" + ], + "native_hosting_changed": false, + "native_backup_restore_executed": false, + "human_approval": false, + "evidence_file_sha256": { + "image-manifest.json": "978c575d3c7bf0de39dbe4e9567c39cd36f70b7e55bc17357bdb03fb3b96b0fb", + "image-config.json": "4ad7249c75fd9fc039ceb186772419e1cba5fd9759c404556459c80a2d285d10", + "base-image-config.json": "b706c9209e324f39a86ffcda2a3e9d94c92649739ad5b21fe4611006e36f6f00", + "registry-proof.json": "5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213", + "trivy-full.json": "f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e", + "sbom.cdx.json": "a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d", + "base-trivy-full.json": "d44c555aecbb1a4518f4127d48015ea459325c93e8b0371910a55de47293ca80", + "check_installed.py": "a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad", + "verify_registry.py": "413f575c21a2bd18a3696f8f2d939eeadc52d76f282c42813f76bb0e3ee8a2a4" + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json new file mode 100644 index 0000000..918ff6d --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json @@ -0,0 +1,47 @@ +{ + "image_digest": "sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "base_image_digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "base_layer_bytes_identical": true, + "layer_media_type_conversion": "OCI gzip to Docker gzip, same digest and size", + "base_runtime_config_semantics_identical": true, + "legacy_builder_config_additions": { + "Hostname": "", + "Domainname": "", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Cmd": null, + "Volumes": null, + "OnBuild": null, + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883" + }, + "base_rootfs_prefix_identical": true, + "overlay_regular_files": [ + "opt/venv/lib/python3.12/site-packages/informed_decision/policy.py" + ], + "overlay_directories": [ + "opt", + "opt/venv", + "opt/venv/lib", + "opt/venv/lib/python3.12", + "opt/venv/lib/python3.12/site-packages", + "opt/venv/lib/python3.12/site-packages/informed_decision" + ], + "policy_sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "policy_mode": "0644", + "base_user": "10001:10001", + "source_scope_labels": { + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1" + }, + "registry_read_route": "anonymous public scoped bearer challenge, no token retention", + "image_executed": false, + "native_workload_changed": false, + "native_backup_restore_executed": false +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json new file mode 100644 index 0000000..a474665 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json @@ -0,0 +1,52 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "policy": { + "origin": "http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080", + "package": "informed-decision.compact-sitting", + "version": "v13", + "package_digest": "sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873", + "pod_name": "flex-auth-informed-decision-sitting" + }, + "keycape_egress_ips": [ + "92.205.62.239" + ], + "storage_class": "local-path", + "ordinary_approval_ids": [ + "2ce76d7f-01c3-4b63-8476-8d1230679769", + "c2af4bcf-15b4-4305-aac1-acc7e4dcb099", + "dc22666a-d5d7-46bc-9490-ebe9fe09dc38" + ], + "lifecycle_policy": { + "package": "informed-decision.lifecycle", + "version": "v2", + "package_digest": "sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c", + "origin": "http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080", + "pod_name": "flex-auth-informed-decision-lifecycle" + }, + "lifecycle_delivery": true, + "intake_attributes": true, + "intake_delivery": { + "hub_origin": "http://state-hub.state-hub.svc.cluster.local:8000" + }, + "workload_api": { + "registries_configmap": "informed-decision-workload-registry", + "peers": [ + { + "namespace": "state-hub", + "app": "state-hub" + } + ], + "api_egress": [ + { + "ip": "10.43.0.1", + "port": 443 + }, + { + "ip": "92.205.62.239", + "port": 6443 + } + ], + "intake": true, + "lifecycle": true + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json new file mode 100644 index 0000000..7459f8f --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json @@ -0,0 +1,267 @@ +{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover", + "argocd.argoproj.io/tracking-id": "informed-decision:apps/Deployment:informed-decision/informed-decision" + }, + "name": "informed-decision", + "namespace": "informed-decision" + }, + "spec": { + "progressDeadlineSeconds": 600, + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "strategy": { + "type": "Recreate" + }, + "template": { + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "labels": { + "app.kubernetes.io/component": "review", + "app.kubernetes.io/name": "informed-decision" + } + }, + "spec": { + "automountServiceAccountToken": false, + "containers": [ + { + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "livenessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "name": "informed-decision", + "ports": [ + { + "containerPort": 8080, + "name": "http" + }, + { + "containerPort": 8081, + "name": "workload" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "256Mi" + }, + "requests": { + "cpu": "5m", + "memory": "64Mi" + } + }, + "securityContext": { + "allowPrivilegeEscalation": false, + "capabilities": { + "drop": [ + "ALL" + ] + }, + "readOnlyRootFilesystem": true + }, + "startupProbe": { + "failureThreshold": 12, + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "volumeMounts": [ + { + "mountPath": "/data", + "name": "data" + }, + { + "mountPath": "/run/informed-decision", + "name": "runtime" + }, + { + "mountPath": "/tmp", + "name": "tmp" + }, + { + "mountPath": "/configuration", + "name": "configuration", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/policy", + "name": "caller", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/audit", + "name": "audit", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "name": "kubernetes-api", + "readOnly": true + }, + { + "mountPath": "/workload-registry", + "name": "workload-registry", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/requester", + "name": "sitting-requester", + "readOnly": true + } + ] + } + ], + "securityContext": { + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "runAsGroup": 10001, + "runAsNonRoot": true, + "runAsUser": 10001, + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "runtime" + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "tmp" + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-runtime-6c221878d051" + }, + "name": "configuration" + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "audience": "flex-auth", + "expirationSeconds": 3600, + "path": "token" + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ], + "secretName": "informed-decision-audit" + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "expirationSeconds": 600, + "path": "token" + } + }, + { + "configMap": { + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ], + "name": "kube-root-ca.crt" + } + } + ] + } + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-workload-registry" + }, + "name": "workload-registry" + }, + { + "name": "sitting-requester", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ], + "optional": false, + "secretName": "informed-decision-sitting-requester" + } + } + ] + } + } + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json new file mode 100644 index 0000000..89f9039 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json @@ -0,0 +1,2560 @@ +{ + "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.7", + "serialNumber": "urn:uuid:3eaaa94b-5129-41f3-82f2-f8f58ac5239a", + "version": 1, + "metadata": { + "timestamp": "2026-10-11T01:22:33+00:00", + "tools": { + "components": [ + { + "type": "application", + "manufacturer": { + "name": "Aqua Security Software Ltd." + }, + "group": "aquasecurity", + "name": "trivy", + "version": "0.74.0" + } + ] + }, + "component": { + "bom-ref": "pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision", + "type": "container", + "name": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "purl": "pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision", + "properties": [ + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "name": "aquasecurity:trivy:ImageID", + "value": "sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779" + }, + { + "name": "aquasecurity:trivy:Labels:org.opencontainers.image.base.digest", + "value": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173" + }, + { + "name": "aquasecurity:trivy:Labels:org.opencontainers.image.revision", + "value": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168" + }, + { + "name": "aquasecurity:trivy:Labels:social.coulomb.release.scope", + "value": "INFD-WP-0009-T04/purpose-overlay-v1" + }, + { + "name": "aquasecurity:trivy:Labels:social.coulomb.source.policy.sha256", + "value": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + }, + { + "name": "aquasecurity:trivy:Reference", + "value": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a" + }, + { + "name": "aquasecurity:trivy:RepoDigest", + "value": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a" + }, + { + "name": "aquasecurity:trivy:SchemaVersion", + "value": "2" + }, + { + "name": "aquasecurity:trivy:Size", + "value": "88258048" + } + ] + } + }, + "components": [ + { + "bom-ref": "5b71299e-3c0c-4c4f-bd29-865fb14e1758", + "type": "operating-system", + "name": "alpine", + "version": "3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:Class", + "value": "os-pkgs" + }, + { + "name": "aquasecurity:trivy:Type", + "value": "alpine" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "type": "library", + "name": ".python-rundeps", + "version": "20260901.001029", + "hashes": [ + { + "alg": "SHA-1", + "content": "51d0c1e7d88a414345799f0309185c625013ef32" + } + ], + "purl": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": ".python-rundeps@20260901.001029" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-baselayout-data", + "version": "3.7.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-baselayout-data@3.7.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-baselayout" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.7.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-baselayout", + "version": "3.7.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "f0fcfdc2f4da058af6473bc45c4eab62916225b2" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-baselayout@3.7.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-baselayout" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.7.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-keys", + "version": "2.6-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "d8d6b80e53c059a77e4915da78ba964f3ffea240" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-keys@2.6-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-keys" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2.6-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-release", + "version": "3.24.1-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "bc6912a25cdc7733e0035ed509eceaa4026946e3" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-release@3.24.1-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-base" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.24.1-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "apk-tools", + "version": "3.0.6-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "043333589798a1f52e09ae63f026c6c8fa676d34" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "apk-tools@3.0.6-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "apk-tools" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.0.6-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Sören Tempel " + }, + "name": "busybox-binsh", + "version": "1.37.0-r31", + "hashes": [ + { + "alg": "SHA-1", + "content": "5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "busybox-binsh@1.37.0-r31" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "busybox" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.37.0-r31" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Sören Tempel " + }, + "name": "busybox", + "version": "1.37.0-r31", + "hashes": [ + { + "alg": "SHA-1", + "content": "b5405ebc02f7dd8be95b6265c54b243d5456ab8f" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "busybox@1.37.0-r31" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "busybox" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.37.0-r31" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "ca-certificates-bundle", + "version": "20260611-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "c9534a03750bdfae341f10969016090fc11febbd" + } + ], + "licenses": [ + { + "license": { + "id": "MPL-2.0" + } + }, + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ca-certificates-bundle@20260611-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ca-certificates" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "20260611-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "ca-certificates", + "version": "20260611-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "8f2a04abeb54b331e2970a0a0dffb7bd6bdde567" + } + ], + "licenses": [ + { + "license": { + "id": "MPL-2.0" + } + }, + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ca-certificates@20260611-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ca-certificates" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "20260611-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "gdbm", + "version": "1.26-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "619493d8124fe49a8ee1d8f7a1372cf7e3977337" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-3.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "gdbm@1.26-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "gdbm" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.26-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "keyutils-libs", + "version": "1.6.3-r4", + "hashes": [ + { + "alg": "SHA-1", + "content": "b7331c96f077fc3522ee4361a441d1097204cd90" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-or-later" + } + }, + { + "license": { + "id": "LGPL-2.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "keyutils-libs@1.6.3-r4" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "keyutils" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.6.3-r4" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "krb5-conf", + "version": "1.0-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "40a11e0690a59e110367b62a80661024e9942a2d" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "krb5-conf@1.0-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "krb5-conf" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.0-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "krb5-libs", + "version": "1.22.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "ef02346e21b817ff379e4601e5b1fc9760e5e31a" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "krb5-libs@1.22.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "krb5" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.22.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libapk", + "version": "3.0.6-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "523a8f58104589f74f743d501c81bf6517155378" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libapk@3.0.6-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "apk-tools" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.0.6-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libbz2", + "version": "1.0.8-r6", + "hashes": [ + { + "alg": "SHA-1", + "content": "08566ba5c7af97c25474be8b24e8b48f0116b67d" + } + ], + "licenses": [ + { + "license": { + "name": "bzip-2-1.0.6" + } + } + ], + "purl": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libbz2@1.0.8-r6" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "bzip2" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.0.8-r6" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libcom_err", + "version": "1.47.4-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-or-later" + } + }, + { + "license": { + "id": "LGPL-2.0-or-later" + } + }, + { + "license": { + "id": "BSD-3-Clause" + } + }, + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libcom_err@1.47.4-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "e2fsprogs" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.47.4-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libcrypto3", + "version": "3.5.8-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3" + } + ], + "licenses": [ + { + "license": { + "id": "Apache-2.0" + } + } + ], + "purl": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libcrypto3@3.5.8-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "openssl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.5.8-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libffi", + "version": "3.5.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libffi@3.5.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libffi" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.5.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Carlo Landmeter " + }, + "name": "libintl", + "version": "1.0-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "282d6642ccac87237e43a864159d73cf5abe7550" + } + ], + "licenses": [ + { + "license": { + "id": "LGPL-2.1-or-later" + } + } + ], + "purl": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libintl@1.0-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "gettext" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.0-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Milan P. Stanić " + }, + "name": "libncursesw", + "version": "6.6_p20260516-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "9f318e6e324d6827274829194cf6ac6afbaded12" + } + ], + "licenses": [ + { + "license": { + "name": "X-11" + } + } + ], + "purl": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libncursesw@6.6_p20260516-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ncurses" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "6.6_p20260516-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "name": "libnsl", + "version": "2.0.1-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "5194adbf26560b52be318481a7af294ab05fd795" + } + ], + "licenses": [ + { + "license": { + "id": "LGPL-2.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libnsl@2.0.1-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libnsl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2.0.1-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Milan P. Stanić " + }, + "name": "libpanelw", + "version": "6.6_p20260516-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "149bdc434232ed11fc5bb975ba519a07154a6f56" + } + ], + "licenses": [ + { + "license": { + "name": "X-11" + } + } + ], + "purl": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libpanelw@6.6_p20260516-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ncurses" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "6.6_p20260516-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libssl3", + "version": "3.5.8-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "5f9b1e55d821953d2e2b1db322dad70a3b5041ea" + } + ], + "licenses": [ + { + "license": { + "id": "Apache-2.0" + } + } + ], + "purl": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libssl3@3.5.8-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "openssl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.5.8-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libtirpc-conf", + "version": "1.3.5-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "0c17d9988dc986c90e22f79778df047eca9973ff" + } + ], + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libtirpc-conf@1.3.5-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libtirpc" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.5-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libtirpc", + "version": "1.3.5-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "c32865bd86a8b8829d152279cabbc5ac6d430eb2" + } + ], + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libtirpc@1.3.5-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libtirpc" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.5-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libuuid", + "version": "2.42.3-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "8f041ef637ad75f381cc0c034f2afbbb0303264e" + } + ], + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libuuid@2.42.3-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "util-linux" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2.42.3-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Francesco Colista " + }, + "name": "libverto", + "version": "0.3.2-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "73233059338142e4ac6d8fb8bb0074e93da75dc1" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libverto@0.3.2-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libverto" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "0.3.2-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "musl-utils", + "version": "1.2.6-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "75ada3c48d63ec5d87c42fdf934a3fdd11298dc5" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + }, + { + "license": { + "id": "BSD-2-Clause" + } + }, + { + "license": { + "id": "GPL-2.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "musl-utils@1.2.6-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "musl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.2.6-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "musl", + "version": "1.2.6-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "0f7e5827e4e1a73631beda27b78431a8ba240e05" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "musl@1.2.6-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "musl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.2.6-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Milan P. Stanić " + }, + "name": "ncurses-terminfo-base", + "version": "6.6_p20260516-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "9d551d828e9c8ee52c5801c1d6046828ebf15752" + } + ], + "licenses": [ + { + "license": { + "name": "X-11" + } + } + ], + "purl": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ncurses-terminfo-base@6.6_p20260516-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ncurses" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "6.6_p20260516-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "qaqland " + }, + "name": "readline", + "version": "8.3.3-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "945b16e378bc00e44d89d4de8124bba7647fdf4d" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-3.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "readline@8.3.3-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "readline" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "8.3.3-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "scanelf", + "version": "1.3.9-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "013f903d0ba219673aebbdd04f74bb5ed82b01f0" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "scanelf@1.3.9-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "pax-utils" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.9-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Jingyun Hua " + }, + "name": "sqlite-libs", + "version": "3.53.4-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "f7630ceb37c232b6609861aeab6cdb9cd120e6fa" + } + ], + "licenses": [ + { + "license": { + "id": "blessing" + } + } + ], + "purl": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "sqlite-libs@3.53.4-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "sqlite" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.53.4-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Sören Tempel " + }, + "name": "ssl_client", + "version": "1.37.0-r31", + "hashes": [ + { + "alg": "SHA-1", + "content": "c220f4a5125a313af733e98def94132bb1e9d40d" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ssl_client@1.37.0-r31" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "busybox" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.37.0-r31" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "tzdata", + "version": "2026c-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "61f7544ecd8dd63eac23fe3e645702fda92ef02a" + } + ], + "licenses": [ + { + "license": { + "name": "Public-Domain" + } + } + ], + "purl": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "tzdata@2026c-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "tzdata" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2026c-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "xz-libs", + "version": "5.8.3-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "4c92c5be0c5bef404e93c880eba9037a9b147347" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-or-later" + } + }, + { + "license": { + "id": "0BSD" + } + }, + { + "license": { + "name": "Public-Domain" + } + }, + { + "license": { + "id": "LGPL-2.1-or-later" + } + } + ], + "purl": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "xz-libs@5.8.3-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "xz" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "5.8.3-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "zlib", + "version": "1.3.2-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "dd4c3d102acaef2a71a1495951d55fabc8680613" + } + ], + "licenses": [ + { + "license": { + "id": "Zlib" + } + } + ], + "purl": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "zlib@1.3.2-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "zlib" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.2-r0" + } + ] + }, + { + "bom-ref": "pkg:pypi/cffi@2.1.1", + "type": "library", + "name": "cffi", + "version": "2.1.1", + "licenses": [ + { + "license": { + "id": "MIT-0" + } + } + ], + "purl": "pkg:pypi/cffi@2.1.1", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/cryptography@50.0.1", + "type": "library", + "name": "cryptography", + "version": "50.0.1", + "licenses": [ + { + "expression": "Apache-2.0 OR BSD-3-Clause" + } + ], + "purl": "pkg:pypi/cryptography@50.0.1", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/informed-decision@0.2.0", + "type": "library", + "name": "informed-decision", + "version": "0.2.0", + "purl": "pkg:pypi/informed-decision@0.2.0", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/pycparser@3.0", + "type": "library", + "name": "pycparser", + "version": "3.0", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:pypi/pycparser@3.0", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/pyjwt@2.15.1", + "type": "library", + "name": "PyJWT", + "version": "2.15.1", + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:pypi/pyjwt@2.15.1", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/waitress@3.0.2", + "type": "library", + "name": "waitress", + "version": "3.0.2", + "licenses": [ + { + "license": { + "id": "ZPL-2.1" + } + } + ], + "purl": "pkg:pypi/waitress@3.0.2", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + } + ], + "dependencies": [ + { + "ref": "5b71299e-3c0c-4c4f-bd29-865fb14e1758", + "dependsOn": [ + "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision", + "dependsOn": [ + "5b71299e-3c0c-4c4f-bd29-865fb14e1758", + "pkg:pypi/cffi@2.1.1", + "pkg:pypi/cryptography@50.0.1", + "pkg:pypi/informed-decision@0.2.0", + "pkg:pypi/pycparser@3.0", + "pkg:pypi/pyjwt@2.15.1", + "pkg:pypi/waitress@3.0.2" + ] + }, + { + "ref": "pkg:pypi/cffi@2.1.1", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/cryptography@50.0.1", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/informed-decision@0.2.0", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/pycparser@3.0", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/pyjwt@2.15.1", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/waitress@3.0.2", + "dependsOn": [] + } + ], + "vulnerabilities": [ + { + "id": "CVE-2026-85091", + "source": { + "name": "alpine", + "url": "https://secdb.alpinelinux.org/" + }, + "ratings": [ + { + "source": { + "name": "ubuntu" + }, + "severity": "medium" + } + ], + "cwes": [ + 787 + ], + "description": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.", + "recommendation": "Upgrade zlib to version 1.3.2-r1", + "advisories": [ + { + "url": "https://avd.aquasec.com/nvd/cve-2026-85091" + }, + { + "url": "https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490" + }, + { + "url": "https://github.com/madler/zlib" + }, + { + "url": "https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393" + }, + { + "url": "https://www.cve.org/CVERecord?id=CVE-2026-85091" + }, + { + "url": "https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate" + } + ], + "published": "2026-09-03T13:06:20+00:00", + "updated": "2026-09-09T20:41:07+00:00", + "affects": [ + { + "ref": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "versions": [ + { + "version": "1.3.2-r0", + "status": "affected" + } + ] + } + ] + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json new file mode 100644 index 0000000..f6f812d --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json @@ -0,0 +1,286 @@ +{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "annotations": { + "argocd.argoproj.io/tracking-id": "informed-decision:apps/Deployment:informed-decision/informed-decision", + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "name": "informed-decision", + "namespace": "informed-decision", + "uid": "a588e10a-90d2-4883-975e-6dd8b8feca92" + }, + "spec": { + "progressDeadlineSeconds": 600, + "replicas": 1, + "revisionHistoryLimit": 10, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "strategy": { + "type": "Recreate" + }, + "template": { + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "labels": { + "app.kubernetes.io/component": "review", + "app.kubernetes.io/name": "informed-decision" + } + }, + "spec": { + "automountServiceAccountToken": false, + "containers": [ + { + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "imagePullPolicy": "IfNotPresent", + "livenessProbe": { + "failureThreshold": 3, + "httpGet": { + "path": "/healthz", + "port": "http", + "scheme": "HTTP" + }, + "periodSeconds": 10, + "successThreshold": 1, + "timeoutSeconds": 2 + }, + "name": "informed-decision", + "ports": [ + { + "containerPort": 8080, + "name": "http", + "protocol": "TCP" + }, + { + "containerPort": 8081, + "name": "workload", + "protocol": "TCP" + } + ], + "readinessProbe": { + "failureThreshold": 3, + "httpGet": { + "path": "/healthz", + "port": "http", + "scheme": "HTTP" + }, + "periodSeconds": 10, + "successThreshold": 1, + "timeoutSeconds": 2 + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "256Mi" + }, + "requests": { + "cpu": "5m", + "memory": "64Mi" + } + }, + "securityContext": { + "allowPrivilegeEscalation": false, + "capabilities": { + "drop": [ + "ALL" + ] + }, + "readOnlyRootFilesystem": true + }, + "startupProbe": { + "failureThreshold": 12, + "httpGet": { + "path": "/healthz", + "port": "http", + "scheme": "HTTP" + }, + "periodSeconds": 10, + "successThreshold": 1, + "timeoutSeconds": 2 + }, + "terminationMessagePath": "/dev/termination-log", + "terminationMessagePolicy": "File", + "volumeMounts": [ + { + "mountPath": "/data", + "name": "data" + }, + { + "mountPath": "/run/informed-decision", + "name": "runtime" + }, + { + "mountPath": "/tmp", + "name": "tmp" + }, + { + "mountPath": "/configuration", + "name": "configuration", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/policy", + "name": "caller", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/audit", + "name": "audit", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "name": "kubernetes-api", + "readOnly": true + }, + { + "mountPath": "/workload-registry", + "name": "workload-registry", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/requester", + "name": "sitting-requester", + "readOnly": true + } + ] + } + ], + "dnsPolicy": "ClusterFirst", + "restartPolicy": "Always", + "schedulerName": "default-scheduler", + "securityContext": { + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "runAsGroup": 10001, + "runAsNonRoot": true, + "runAsUser": 10001, + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "serviceAccount": "review", + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "runtime" + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "tmp" + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-runtime-6c221878d051" + }, + "name": "configuration" + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "audience": "flex-auth", + "expirationSeconds": 3600, + "path": "token" + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ], + "secretName": "informed-decision-audit" + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "expirationSeconds": 600, + "path": "token" + } + }, + { + "configMap": { + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ], + "name": "kube-root-ca.crt" + } + } + ] + } + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-workload-registry" + }, + "name": "workload-registry" + }, + { + "name": "sitting-requester", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ], + "optional": false, + "secretName": "informed-decision-sitting-requester" + } + } + ] + } + } + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/security-summary.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/security-summary.json new file mode 100644 index 0000000..48926d3 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/security-summary.json @@ -0,0 +1,35 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "scanner": "aquasec/trivy@sha256:62b1e65e8869bc4b4c6aa4fa2b21595256c7c2f6018a9d9ad61caf87187c1969", + "version": "0.74.0", + "db_metadata": { + "Version": 2, + "NextUpdate": "2026-10-11T18:59:50.889010572Z", + "UpdatedAt": "2026-10-10T18:59:50.889010923Z", + "DownloadedAt": "2026-10-10T23:32:32.380033131Z" + }, + "suppression": false, + "ignore_unfixed": false, + "severity_filter": null, + "package_count": 44, + "findings_by_severity": { + "MEDIUM": 1 + }, + "findings": [ + { + "id": "CVE-2026-85091", + "package": "zlib", + "installed": "1.3.2-r0", + "fixed": "1.3.2-r1", + "severity": "MEDIUM" + } + ], + "coverage_limits": [ + "Alpine3.24 absent scanner EOL list; OS detector ran against Alpine3.24 repository on38OS packages", + "Known findings asof pinnedDB, not claim absence of unknown vulnerabilities" + ], + "high_critical": 0, + "same_scanner_actual_base_scan_findings_identical": true, + "base_scan_file": "base-trivy-full.json" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py new file mode 100644 index 0000000..a5b72d6 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py @@ -0,0 +1,66 @@ +import copy +import json +import unittest +from pathlib import Path +from change_guard import CANDIDATE, check_current, check_admitted, transport_result + +ROOT = Path(__file__).parent + + +class ExactDeploymentBoundary(unittest.TestCase): + def setUp(self): + self.sealed = json.loads((ROOT / 'sealed-live-deployment.json').read_text()) + self.admitted = copy.deepcopy(self.sealed) + self.admitted['spec']['template']['spec']['containers'][0]['image'] = CANDIDATE + + def test_only_expected_image_is_accepted(self): + check_current(self.sealed, self.sealed) + check_admitted(self.admitted, self.sealed) + + def test_bookkeeping_is_ignored(self): + value = copy.deepcopy(self.admitted) + value['status'] = {'readyReplicas': 0} + value['metadata']['generation'] = 100 + value['metadata']['resourceVersion'] = 'changed' + value['metadata']['annotations']['kubectl.kubernetes.io/last-applied-configuration'] = 'server bookkeeping' + check_admitted(value, self.sealed) + + def test_unrelated_drift_and_recreated_uid_are_refused(self): + mutators = [ + lambda v: v['metadata'].update(uid='recreated'), + lambda v: v['metadata'].update(finalizers=['new']), + lambda v: v['metadata'].update(ownerReferences=[{'uid': 'new'}]), + lambda v: v['spec']['template']['spec'].update(hostNetwork=True), + lambda v: v['spec']['template']['spec'].update(serviceAccountName='other'), + lambda v: v['spec']['template']['spec'].update(automountServiceAccountToken=True), + lambda v: v['spec']['template']['spec']['containers'][0].update(env=[]), + lambda v: v['spec']['template']['spec']['containers'][0]['securityContext'].update(privileged=True), + lambda v: v['spec'].update(replicas=2), + lambda v: v['spec'].update(strategy={'type': 'RollingUpdate'}), + ] + for mutate in mutators: + with self.subTest(mutate=mutate): + current = copy.deepcopy(self.sealed) + mutate(current) + with self.assertRaises(ValueError): + check_current(current, self.sealed) + admitted = copy.deepcopy(self.admitted) + mutate(admitted) + with self.assertRaises(ValueError): + check_admitted(admitted, self.sealed) + + def test_unexpected_image_is_refused(self): + value = copy.deepcopy(self.admitted) + value['spec']['template']['spec']['containers'][0]['image'] = 'other' + with self.assertRaises(ValueError): + check_admitted(value, self.sealed) + + def test_malformed_successful_transport_is_refused(self): + for output in ('banner', '{}', '[]', '{"all_checks_pass": "true"}', '{"all_checks_pass": false}'): + self.assertIs(transport_result(0, output)['all_checks_pass'], False) + self.assertIs(transport_result(1, '{"all_checks_pass":true}')['all_checks_pass'], False) + self.assertIs(transport_result(0, '{"all_checks_pass":true}')['all_checks_pass'], True) + + +if __name__ == '__main__': + unittest.main() diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json new file mode 100644 index 0000000..a9e3b58 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json @@ -0,0 +1,2391 @@ +{ + "SchemaVersion": 2, + "Trivy": { + "Version": "0.74.0" + }, + "ReportID": "01a1288d-8df1-73fb-9313-3642dd64ba72", + "CreatedAt": "2026-10-11T01:22:07.985264404Z", + "ArtifactID": "sha256:40f873b8d6345341e2f661a5038c092d186e2831dc60b61704a419a1f4f77ef6", + "ArtifactName": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "ArtifactType": "container_image", + "Metadata": { + "Size": 88258048, + "OS": { + "Family": "alpine", + "Name": "3.24.1" + }, + "ImageID": "sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779", + "DiffIDs": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02", + "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + ], + "RepoDigests": [ + "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a" + ], + "Reference": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "ImageConfig": { + "architecture": "amd64", + "created": "2026-10-11T01:21:04.787527697Z", + "docker_version": "27.5.1", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' \u0026\u0026 echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid\u003e=2.42.3-r1' \u0026\u0026 addgroup -S -g 10001 informed \u0026\u0026 adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-11T01:15:11.991443676Z", + "created_by": "/bin/sh -c #(nop) ARG SOURCE_REVISION", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.716126392Z", + "created_by": "/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168 org.opencontainers.image.base.digest=sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 social.coulomb.source.policy.sha256=9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 social.coulomb.release.scope=INFD-WP-0009-T04/purpose-overlay-v1", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.787527697Z", + "created_by": "/bin/sh -c #(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py " + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02", + "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + ] + }, + "config": { + "Entrypoint": [ + "informed-decision-container" + ], + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883", + "Labels": { + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + }, + "User": "10001:10001", + "WorkingDir": "/app", + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + } + } + }, + "Layers": [ + { + "Size": 8697856, + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "Size": 1538048, + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "Size": 47150592, + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "Size": 5120, + "Digest": "sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b", + "DiffID": "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe" + }, + { + "Size": 131584, + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "Size": 30705664, + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "Size": 12288, + "Digest": "sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f", + "DiffID": "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59" + }, + { + "Size": 1536, + "Digest": "sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3", + "DiffID": "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + }, + { + "Size": 15360, + "Digest": "sha256:cfee29c2f8119d2a39714ecbe5095a2dc1c986054f2e1fe0a6565163242417e3", + "DiffID": "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + } + ] + }, + "Results": [ + { + "Target": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a (alpine 3.24.1)", + "Class": "os-pkgs", + "Type": "alpine", + "Packages": [ + { + "ID": ".python-rundeps@20260901.001029", + "Name": ".python-rundeps", + "Identifier": { + "PURL": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch\u0026distro=3.24.1", + "UID": "4e26c99fecac1e97" + }, + "Version": "20260901.001029", + "Arch": "noarch", + "DependsOn": [ + "gdbm@1.26-r0", + "libbz2@1.0.8-r6", + "libcrypto3@3.5.8-r0", + "libffi@3.5.2-r1", + "libncursesw@6.6_p20260516-r0", + "libnsl@2.0.1-r2", + "libpanelw@6.6_p20260516-r0", + "libssl3@3.5.8-r0", + "libtirpc@1.3.5-r1", + "libuuid@2.42.3-r1", + "musl@1.2.6-r2", + "readline@8.3.3-r1", + "sqlite-libs@3.53.4-r0", + "xz-libs@5.8.3-r0", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:51d0c1e7d88a414345799f0309185c625013ef32", + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout@3.7.2-r1", + "Name": "alpine-baselayout", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "1b9c543300f8073e" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-baselayout-data@3.7.2-r1", + "busybox-binsh@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:f0fcfdc2f4da058af6473bc45c4eab62916225b2", + "InstalledFiles": [ + "etc/motd", + "etc/crontabs/root", + "etc/modprobe.d/aliases.conf", + "etc/modprobe.d/blacklist.conf", + "etc/modprobe.d/i386.conf", + "etc/profile.d/20locale.sh", + "etc/profile.d/README", + "etc/profile.d/color_prompt.sh.disabled", + "usr/lib/sysctl.d/00-alpine.conf", + "var/lock", + "var/run", + "var/spool/mail", + "var/spool/cron/crontabs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout-data@3.7.2-r1", + "Name": "alpine-baselayout-data", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "fcc3cd90122d8aa7" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508", + "InstalledFiles": [ + "etc/fstab", + "etc/group", + "etc/hostname", + "etc/hosts", + "etc/inittab", + "etc/modules", + "etc/mtab", + "etc/nsswitch.conf", + "etc/passwd", + "etc/profile", + "etc/protocols", + "etc/services", + "etc/shadow", + "etc/shells", + "etc/sysctl.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-keys@2.6-r0", + "Name": "alpine-keys", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb1f6c8fa74713e0" + }, + "Version": "2.6-r0", + "Arch": "x86_64", + "SrcName": "alpine-keys", + "SrcVersion": "2.6-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:d8d6b80e53c059a77e4915da78ba964f3ffea240", + "InstalledFiles": [ + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/loongarch64/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-release@3.24.1-r0", + "Name": "alpine-release", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "6cfad6f36e1f31aa" + }, + "Version": "3.24.1-r0", + "Arch": "x86_64", + "SrcName": "alpine-base", + "SrcVersion": "3.24.1-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-keys@2.6-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:bc6912a25cdc7733e0035ed509eceaa4026946e3", + "InstalledFiles": [ + "etc/alpine-release", + "etc/issue", + "etc/os-release", + "etc/secfixes.d/alpine", + "usr/lib/os-release" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "apk-tools@3.0.6-r0", + "Name": "apk-tools", + "Identifier": { + "PURL": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb2633c883b17a04" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "ca-certificates-bundle@20260611-r0", + "libapk@3.0.6-r0", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:043333589798a1f52e09ae63f026c6c8fa676d34", + "InstalledFiles": [ + "sbin/apk" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox@1.37.0-r31", + "Name": "busybox", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "771020c43c8440bf" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:b5405ebc02f7dd8be95b6265c54b243d5456ab8f", + "InstalledFiles": [ + "bin/busybox", + "etc/securetty", + "etc/busybox-paths.d/busybox", + "etc/logrotate.d/acpid", + "etc/network/if-up.d/dad", + "etc/udhcpc/udhcpc.conf", + "usr/share/udhcpc/default.script" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox-binsh@1.37.0-r31", + "Name": "busybox-binsh", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "1ec8a3d5d2b63297" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "busybox@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7", + "InstalledFiles": [ + "bin/sh" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates@20260611-r0", + "Name": "ca-certificates", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "2a3c316ee83c6198" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "busybox-binsh@1.37.0-r31", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:8f2a04abeb54b331e2970a0a0dffb7bd6bdde567", + "InstalledFiles": [ + "etc/ca-certificates.conf", + "etc/apk/protected_paths.d/ca-certificates.list", + "etc/ca-certificates/update.d/certhash", + "usr/bin/c_rehash", + "usr/sbin/update-ca-certificates", + "usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt", + "usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA1.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA2.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt", + "usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt", + "usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt", + "usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt", + "usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt", + "usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R1.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R3.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt", + "usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Izenpe.com.crt", + "usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt", + "usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_ECC_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_RSA_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_ECC_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_RSA_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_E46.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_R46.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA14.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA15.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/SwissSign_RSA_TLS_Root_CA_2022_-_1.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt", + "usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt", + "usr/share/ca-certificates/mozilla/TWCA_CYBER_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_ECC_Root_2020.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_RSA_Root_2023.crt", + "usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G3.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G4.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_RSA_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt", + "usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt", + "usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt", + "usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_TLS_Root_CA_2023.crt", + "usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates-bundle@20260611-r0", + "Name": "ca-certificates-bundle", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "20337c2ea28bef28" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c9534a03750bdfae341f10969016090fc11febbd", + "InstalledFiles": [ + "etc/ssl/cert.pem", + "etc/ssl/certs/ca-certificates.crt", + "etc/ssl1.1/cert.pem", + "etc/ssl1.1/certs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "gdbm@1.26-r0", + "Name": "gdbm", + "Identifier": { + "PURL": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "5eb1a3f86262ca77" + }, + "Version": "1.26-r0", + "Arch": "x86_64", + "SrcName": "gdbm", + "SrcVersion": "1.26-r0", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:619493d8124fe49a8ee1d8f7a1372cf7e3977337", + "InstalledFiles": [ + "usr/lib/libgdbm.so.6", + "usr/lib/libgdbm.so.6.0.0", + "usr/lib/libgdbm_compat.so.4", + "usr/lib/libgdbm_compat.so.4.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "keyutils-libs@1.6.3-r4", + "Name": "keyutils-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64\u0026distro=3.24.1", + "UID": "a1a29120eb342032" + }, + "Version": "1.6.3-r4", + "Arch": "x86_64", + "SrcName": "keyutils", + "SrcVersion": "1.6.3-r4", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:b7331c96f077fc3522ee4361a441d1097204cd90", + "InstalledFiles": [ + "usr/lib/libkeyutils.so.1", + "usr/lib/libkeyutils.so.1.10" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-conf@1.0-r2", + "Name": "krb5-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "e7cf94ba8b6dbc33" + }, + "Version": "1.0-r2", + "Arch": "x86_64", + "SrcName": "krb5-conf", + "SrcVersion": "1.0-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:40a11e0690a59e110367b62a80661024e9942a2d", + "InstalledFiles": [ + "etc/krb5.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-libs@1.22.2-r1", + "Name": "krb5-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "958f8b4a4f087dac" + }, + "Version": "1.22.2-r1", + "Arch": "x86_64", + "SrcName": "krb5", + "SrcVersion": "1.22.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "keyutils-libs@1.6.3-r4", + "krb5-conf@1.0-r2", + "libcom_err@1.47.4-r0", + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "libverto@0.3.2-r2", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:ef02346e21b817ff379e4601e5b1fc9760e5e31a", + "InstalledFiles": [ + "usr/lib/libgssapi_krb5.so.2", + "usr/lib/libgssapi_krb5.so.2.2", + "usr/lib/libgssrpc.so.4", + "usr/lib/libgssrpc.so.4.2", + "usr/lib/libk5crypto.so.3", + "usr/lib/libk5crypto.so.3.1", + "usr/lib/libkadm5clnt_mit.so.12", + "usr/lib/libkadm5clnt_mit.so.12.0", + "usr/lib/libkadm5srv_mit.so.12", + "usr/lib/libkadm5srv_mit.so.12.0", + "usr/lib/libkdb5.so.10", + "usr/lib/libkdb5.so.10.0", + "usr/lib/libkrad.so.0", + "usr/lib/libkrad.so.0.0", + "usr/lib/libkrb5.so.3", + "usr/lib/libkrb5.so.3.3", + "usr/lib/libkrb5support.so.0", + "usr/lib/libkrb5support.so.0.1", + "usr/lib/krb5/plugins/kdb/db2.so", + "usr/lib/krb5/plugins/preauth/otp.so", + "usr/lib/krb5/plugins/preauth/spake.so", + "usr/lib/krb5/plugins/preauth/test.so", + "usr/lib/krb5/plugins/tls/k5tls.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libapk@3.0.6-r0", + "Name": "libapk", + "Identifier": { + "PURL": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "a35b8b9b3219513a" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:523a8f58104589f74f743d501c81bf6517155378", + "InstalledFiles": [ + "usr/lib/libapk.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libbz2@1.0.8-r6", + "Name": "libbz2", + "Identifier": { + "PURL": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64\u0026distro=3.24.1", + "UID": "48e17539404e2d56" + }, + "Version": "1.0.8-r6", + "Arch": "x86_64", + "SrcName": "bzip2", + "SrcVersion": "1.0.8-r6", + "Licenses": [ + "bzip-2-1.0.6" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:08566ba5c7af97c25474be8b24e8b48f0116b67d", + "InstalledFiles": [ + "usr/lib/libbz2.so.1", + "usr/lib/libbz2.so.1.0.8" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcom_err@1.47.4-r0", + "Name": "libcom_err", + "Identifier": { + "PURL": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "3fc35a3f66d192af" + }, + "Version": "1.47.4-r0", + "Arch": "x86_64", + "SrcName": "e2fsprogs", + "SrcVersion": "1.47.4-r0", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later", + "BSD-3-Clause", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef", + "InstalledFiles": [ + "usr/lib/libcom_err.so.2", + "usr/lib/libcom_err.so.2.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcrypto3@3.5.8-r0", + "Name": "libcrypto3", + "Identifier": { + "PURL": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "4299bba2ba9c96aa" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3", + "InstalledFiles": [ + "etc/ssl/ct_log_list.cnf", + "etc/ssl/ct_log_list.cnf.dist", + "etc/ssl/openssl.cnf", + "etc/ssl/openssl.cnf.dist", + "usr/lib/libcrypto.so.3", + "usr/lib/engines-3/afalg.so", + "usr/lib/engines-3/capi.so", + "usr/lib/engines-3/loader_attic.so", + "usr/lib/engines-3/padlock.so", + "usr/lib/ossl-modules/legacy.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libffi@3.5.2-r1", + "Name": "libffi", + "Identifier": { + "PURL": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "d3eaa921287b1ccd" + }, + "Version": "3.5.2-r1", + "Arch": "x86_64", + "SrcName": "libffi", + "SrcVersion": "3.5.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a", + "InstalledFiles": [ + "usr/lib/libffi.so.8", + "usr/lib/libffi.so.8.2.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libintl@1.0-r0", + "Name": "libintl", + "Identifier": { + "PURL": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "25c18808d8fc87e0" + }, + "Version": "1.0-r0", + "Arch": "x86_64", + "SrcName": "gettext", + "SrcVersion": "1.0-r0", + "Licenses": [ + "LGPL-2.1-or-later" + ], + "Maintainer": "Carlo Landmeter \u003cclandmeter@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:282d6642ccac87237e43a864159d73cf5abe7550", + "InstalledFiles": [ + "usr/lib/libintl.so.8", + "usr/lib/libintl.so.8.4.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libncursesw@6.6_p20260516-r0", + "Name": "libncursesw", + "Identifier": { + "PURL": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e8939f45e2191bcc" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9f318e6e324d6827274829194cf6ac6afbaded12", + "InstalledFiles": [ + "usr/lib/libncursesw.so.6", + "usr/lib/libncursesw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libnsl@2.0.1-r2", + "Name": "libnsl", + "Identifier": { + "PURL": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "3d893c60d41da67b" + }, + "Version": "2.0.1-r2", + "Arch": "x86_64", + "SrcName": "libnsl", + "SrcVersion": "2.0.1-r2", + "Licenses": [ + "LGPL-2.0-or-later" + ], + "DependsOn": [ + "libintl@1.0-r0", + "libtirpc@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5194adbf26560b52be318481a7af294ab05fd795", + "InstalledFiles": [ + "usr/lib/libnsl.so.3", + "usr/lib/libnsl.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libpanelw@6.6_p20260516-r0", + "Name": "libpanelw", + "Identifier": { + "PURL": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "ef1ad9bb256b373" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:149bdc434232ed11fc5bb975ba519a07154a6f56", + "InstalledFiles": [ + "usr/lib/libpanelw.so.6", + "usr/lib/libpanelw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libssl3@3.5.8-r0", + "Name": "libssl3", + "Identifier": { + "PURL": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "f290ab59b88b1c4a" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5f9b1e55d821953d2e2b1db322dad70a3b5041ea", + "InstalledFiles": [ + "usr/lib/libssl.so.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc@1.3.5-r1", + "Name": "libtirpc", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "471c8d955ca03be5" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "krb5-libs@1.22.2-r1", + "libtirpc-conf@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:c32865bd86a8b8829d152279cabbc5ac6d430eb2", + "InstalledFiles": [ + "usr/lib/libtirpc.so.3", + "usr/lib/libtirpc.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc-conf@1.3.5-r1", + "Name": "libtirpc-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "3437392c14aad33f" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:0c17d9988dc986c90e22f79778df047eca9973ff", + "InstalledFiles": [ + "etc/bindresvport.blacklist", + "etc/netconfig" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libuuid@2.42.3-r1", + "Name": "libuuid", + "Identifier": { + "PURL": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "c444e9cdd1bdda40" + }, + "Version": "2.42.3-r1", + "Arch": "x86_64", + "SrcName": "util-linux", + "SrcVersion": "2.42.3-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + "Digest": "sha1:8f041ef637ad75f381cc0c034f2afbbb0303264e", + "InstalledFiles": [ + "usr/lib/libuuid.so.1", + "usr/lib/libuuid.so.1.3.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libverto@0.3.2-r2", + "Name": "libverto", + "Identifier": { + "PURL": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "9df4321a283a6cf6" + }, + "Version": "0.3.2-r2", + "Arch": "x86_64", + "SrcName": "libverto", + "SrcVersion": "0.3.2-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Francesco Colista \u003cfcolista@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:73233059338142e4ac6d8fb8bb0074e93da75dc1", + "InstalledFiles": [ + "usr/lib/libverto.so.1", + "usr/lib/libverto.so.1.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl@1.2.6-r2", + "Name": "musl", + "Identifier": { + "PURL": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "1f8cb44befe503d4" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:0f7e5827e4e1a73631beda27b78431a8ba240e05", + "InstalledFiles": [ + "lib/ld-musl-x86_64.so.1", + "lib/libc.musl-x86_64.so.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl-utils@1.2.6-r2", + "Name": "musl-utils", + "Identifier": { + "PURL": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "4497482ec1d943e1" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT", + "BSD-2-Clause", + "GPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "scanelf@1.3.9-r1" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:75ada3c48d63ec5d87c42fdf934a3fdd11298dc5", + "InstalledFiles": [ + "sbin/ldconfig", + "usr/bin/getconf", + "usr/bin/getent", + "usr/bin/iconv", + "usr/bin/ldd" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ncurses-terminfo-base@6.6_p20260516-r0", + "Name": "ncurses-terminfo-base", + "Identifier": { + "PURL": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e7fac5c6a6e9ae8" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9d551d828e9c8ee52c5801c1d6046828ebf15752", + "InstalledFiles": [ + "etc/terminfo/a/alacritty", + "etc/terminfo/a/ansi", + "etc/terminfo/d/dumb", + "etc/terminfo/g/gnome", + "etc/terminfo/g/gnome-256color", + "etc/terminfo/k/konsole", + "etc/terminfo/k/konsole-256color", + "etc/terminfo/k/konsole-linux", + "etc/terminfo/l/linux", + "etc/terminfo/p/putty", + "etc/terminfo/p/putty-256color", + "etc/terminfo/r/rxvt", + "etc/terminfo/r/rxvt-256color", + "etc/terminfo/s/screen", + "etc/terminfo/s/screen-256color", + "etc/terminfo/s/st-0.6", + "etc/terminfo/s/st-0.7", + "etc/terminfo/s/st-0.8", + "etc/terminfo/s/st-0.8.5", + "etc/terminfo/s/st-16color", + "etc/terminfo/s/st-256color", + "etc/terminfo/s/st-direct", + "etc/terminfo/s/sun", + "etc/terminfo/t/terminator", + "etc/terminfo/t/terminology", + "etc/terminfo/t/terminology-0.6.1", + "etc/terminfo/t/terminology-1.0.0", + "etc/terminfo/t/terminology-1.8.1", + "etc/terminfo/t/tmux", + "etc/terminfo/t/tmux-256color", + "etc/terminfo/v/vt100", + "etc/terminfo/v/vt102", + "etc/terminfo/v/vt200", + "etc/terminfo/v/vt220", + "etc/terminfo/v/vt52", + "etc/terminfo/v/vte", + "etc/terminfo/v/vte-256color", + "etc/terminfo/x/xterm", + "etc/terminfo/x/xterm-256color", + "etc/terminfo/x/xterm-color", + "etc/terminfo/x/xterm-xfree86" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "readline@8.3.3-r1", + "Name": "readline", + "Identifier": { + "PURL": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "f50058781c93e1f2" + }, + "Version": "8.3.3-r1", + "Arch": "x86_64", + "SrcName": "readline", + "SrcVersion": "8.3.3-r1", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "qaqland \u003cqaq@qaq.land\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:945b16e378bc00e44d89d4de8124bba7647fdf4d", + "InstalledFiles": [ + "etc/inputrc", + "usr/lib/libreadline.so.8", + "usr/lib/libreadline.so.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "scanelf@1.3.9-r1", + "Name": "scanelf", + "Identifier": { + "PURL": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "936394657a1626fb" + }, + "Version": "1.3.9-r1", + "Arch": "x86_64", + "SrcName": "pax-utils", + "SrcVersion": "1.3.9-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:013f903d0ba219673aebbdd04f74bb5ed82b01f0", + "InstalledFiles": [ + "usr/bin/scanelf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "sqlite-libs@3.53.4-r0", + "Name": "sqlite-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "8b10aee2ccc192de" + }, + "Version": "3.53.4-r0", + "Arch": "x86_64", + "SrcName": "sqlite", + "SrcVersion": "3.53.4-r0", + "Licenses": [ + "blessing" + ], + "Maintainer": "Jingyun Hua \u003chuajingyun@loongson.cn\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:f7630ceb37c232b6609861aeab6cdb9cd120e6fa", + "InstalledFiles": [ + "usr/lib/libsqlite3.so.0", + "usr/lib/libsqlite3.so.3.53.4" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ssl_client@1.37.0-r31", + "Name": "ssl_client", + "Identifier": { + "PURL": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "d42e31f15a4ce47a" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c220f4a5125a313af733e98def94132bb1e9d40d", + "InstalledFiles": [ + "usr/bin/ssl_client" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "tzdata@2026c-r0", + "Name": "tzdata", + "Identifier": { + "PURL": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "52c6b50eff629f9d" + }, + "Version": "2026c-r0", + "Arch": "x86_64", + "SrcName": "tzdata", + "SrcVersion": "2026c-r0", + "Licenses": [ + "Public-Domain" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:61f7544ecd8dd63eac23fe3e645702fda92ef02a", + "InstalledFiles": [ + "usr/share/zoneinfo/CET", + "usr/share/zoneinfo/CST6CDT", + "usr/share/zoneinfo/Cuba", + "usr/share/zoneinfo/EET", + "usr/share/zoneinfo/EST", + "usr/share/zoneinfo/EST5EDT", + "usr/share/zoneinfo/Egypt", + "usr/share/zoneinfo/Eire", + "usr/share/zoneinfo/Factory", + "usr/share/zoneinfo/GB", + "usr/share/zoneinfo/GB-Eire", + "usr/share/zoneinfo/GMT", + "usr/share/zoneinfo/GMT+0", + "usr/share/zoneinfo/GMT-0", + "usr/share/zoneinfo/GMT0", + "usr/share/zoneinfo/Greenwich", + "usr/share/zoneinfo/HST", + "usr/share/zoneinfo/Hongkong", + "usr/share/zoneinfo/Iceland", + "usr/share/zoneinfo/Iran", + "usr/share/zoneinfo/Israel", + "usr/share/zoneinfo/Jamaica", + "usr/share/zoneinfo/Japan", + "usr/share/zoneinfo/Kwajalein", + "usr/share/zoneinfo/Libya", + "usr/share/zoneinfo/MET", + "usr/share/zoneinfo/MST", + "usr/share/zoneinfo/MST7MDT", + "usr/share/zoneinfo/NZ", + "usr/share/zoneinfo/NZ-CHAT", + "usr/share/zoneinfo/Navajo", + "usr/share/zoneinfo/PRC", + "usr/share/zoneinfo/PST8PDT", + "usr/share/zoneinfo/Poland", + "usr/share/zoneinfo/Portugal", + "usr/share/zoneinfo/ROC", + "usr/share/zoneinfo/ROK", + "usr/share/zoneinfo/Singapore", + "usr/share/zoneinfo/Turkey", + "usr/share/zoneinfo/UCT", + "usr/share/zoneinfo/UTC", + "usr/share/zoneinfo/Universal", + "usr/share/zoneinfo/W-SU", + "usr/share/zoneinfo/WET", + "usr/share/zoneinfo/Zulu", + "usr/share/zoneinfo/iso3166.tab", + "usr/share/zoneinfo/leap-seconds.list", + "usr/share/zoneinfo/posixrules", + "usr/share/zoneinfo/zone.tab", + "usr/share/zoneinfo/zone1970.tab", + "usr/share/zoneinfo/Africa/Abidjan", + "usr/share/zoneinfo/Africa/Accra", + "usr/share/zoneinfo/Africa/Addis_Ababa", + "usr/share/zoneinfo/Africa/Algiers", + "usr/share/zoneinfo/Africa/Asmara", + "usr/share/zoneinfo/Africa/Asmera", + "usr/share/zoneinfo/Africa/Bamako", + "usr/share/zoneinfo/Africa/Bangui", + "usr/share/zoneinfo/Africa/Banjul", + "usr/share/zoneinfo/Africa/Bissau", + "usr/share/zoneinfo/Africa/Blantyre", + "usr/share/zoneinfo/Africa/Brazzaville", + "usr/share/zoneinfo/Africa/Bujumbura", + "usr/share/zoneinfo/Africa/Cairo", + "usr/share/zoneinfo/Africa/Casablanca", + "usr/share/zoneinfo/Africa/Ceuta", + "usr/share/zoneinfo/Africa/Conakry", + "usr/share/zoneinfo/Africa/Dakar", + "usr/share/zoneinfo/Africa/Dar_es_Salaam", + "usr/share/zoneinfo/Africa/Djibouti", + "usr/share/zoneinfo/Africa/Douala", + "usr/share/zoneinfo/Africa/El_Aaiun", + "usr/share/zoneinfo/Africa/Freetown", + "usr/share/zoneinfo/Africa/Gaborone", + "usr/share/zoneinfo/Africa/Harare", + "usr/share/zoneinfo/Africa/Johannesburg", + "usr/share/zoneinfo/Africa/Juba", + "usr/share/zoneinfo/Africa/Kampala", + "usr/share/zoneinfo/Africa/Khartoum", + "usr/share/zoneinfo/Africa/Kigali", + "usr/share/zoneinfo/Africa/Kinshasa", + "usr/share/zoneinfo/Africa/Lagos", + "usr/share/zoneinfo/Africa/Libreville", + "usr/share/zoneinfo/Africa/Lome", + "usr/share/zoneinfo/Africa/Luanda", + "usr/share/zoneinfo/Africa/Lubumbashi", + "usr/share/zoneinfo/Africa/Lusaka", + "usr/share/zoneinfo/Africa/Malabo", + "usr/share/zoneinfo/Africa/Maputo", + "usr/share/zoneinfo/Africa/Maseru", + "usr/share/zoneinfo/Africa/Mbabane", + "usr/share/zoneinfo/Africa/Mogadishu", + "usr/share/zoneinfo/Africa/Monrovia", + "usr/share/zoneinfo/Africa/Nairobi", + "usr/share/zoneinfo/Africa/Ndjamena", + "usr/share/zoneinfo/Africa/Niamey", + "usr/share/zoneinfo/Africa/Nouakchott", + "usr/share/zoneinfo/Africa/Ouagadougou", + "usr/share/zoneinfo/Africa/Porto-Novo", + "usr/share/zoneinfo/Africa/Sao_Tome", + "usr/share/zoneinfo/Africa/Timbuktu", + "usr/share/zoneinfo/Africa/Tripoli", + "usr/share/zoneinfo/Africa/Tunis", + "usr/share/zoneinfo/Africa/Windhoek", + "usr/share/zoneinfo/America/Adak", + "usr/share/zoneinfo/America/Anchorage", + "usr/share/zoneinfo/America/Anguilla", + "usr/share/zoneinfo/America/Antigua", + "usr/share/zoneinfo/America/Araguaina", + "usr/share/zoneinfo/America/Aruba", + "usr/share/zoneinfo/America/Asuncion", + "usr/share/zoneinfo/America/Atikokan", + "usr/share/zoneinfo/America/Atka", + "usr/share/zoneinfo/America/Bahia", + "usr/share/zoneinfo/America/Bahia_Banderas", + "usr/share/zoneinfo/America/Barbados", + "usr/share/zoneinfo/America/Belem", + "usr/share/zoneinfo/America/Belize", + "usr/share/zoneinfo/America/Blanc-Sablon", + "usr/share/zoneinfo/America/Boa_Vista", + "usr/share/zoneinfo/America/Bogota", + "usr/share/zoneinfo/America/Boise", + "usr/share/zoneinfo/America/Buenos_Aires", + "usr/share/zoneinfo/America/Cambridge_Bay", + "usr/share/zoneinfo/America/Campo_Grande", + "usr/share/zoneinfo/America/Cancun", + "usr/share/zoneinfo/America/Caracas", + "usr/share/zoneinfo/America/Catamarca", + "usr/share/zoneinfo/America/Cayenne", + "usr/share/zoneinfo/America/Cayman", + "usr/share/zoneinfo/America/Chicago", + "usr/share/zoneinfo/America/Chihuahua", + "usr/share/zoneinfo/America/Ciudad_Juarez", + "usr/share/zoneinfo/America/Coral_Harbour", + "usr/share/zoneinfo/America/Cordoba", + "usr/share/zoneinfo/America/Costa_Rica", + "usr/share/zoneinfo/America/Coyhaique", + "usr/share/zoneinfo/America/Creston", + "usr/share/zoneinfo/America/Cuiaba", + "usr/share/zoneinfo/America/Curacao", + "usr/share/zoneinfo/America/Danmarkshavn", + "usr/share/zoneinfo/America/Dawson", + "usr/share/zoneinfo/America/Dawson_Creek", + "usr/share/zoneinfo/America/Denver", + "usr/share/zoneinfo/America/Detroit", + "usr/share/zoneinfo/America/Dominica", + "usr/share/zoneinfo/America/Edmonton", + "usr/share/zoneinfo/America/Eirunepe", + "usr/share/zoneinfo/America/El_Salvador", + "usr/share/zoneinfo/America/Ensenada", + "usr/share/zoneinfo/America/Fort_Nelson", + "usr/share/zoneinfo/America/Fort_Wayne", + "usr/share/zoneinfo/America/Fortaleza", + "usr/share/zoneinfo/America/Glace_Bay", + "usr/share/zoneinfo/America/Godthab", + "usr/share/zoneinfo/America/Goose_Bay", + "usr/share/zoneinfo/America/Grand_Turk", + "usr/share/zoneinfo/America/Grenada", + "usr/share/zoneinfo/America/Guadeloupe", + "usr/share/zoneinfo/America/Guatemala", + "usr/share/zoneinfo/America/Guayaquil", + "usr/share/zoneinfo/America/Guyana", + "usr/share/zoneinfo/America/Halifax", + "usr/share/zoneinfo/America/Havana", + "usr/share/zoneinfo/America/Hermosillo", + "usr/share/zoneinfo/America/Indianapolis", + "usr/share/zoneinfo/America/Inuvik", + "usr/share/zoneinfo/America/Iqaluit", + "usr/share/zoneinfo/America/Jamaica", + "usr/share/zoneinfo/America/Jujuy", + "usr/share/zoneinfo/America/Juneau", + "usr/share/zoneinfo/America/Knox_IN", + "usr/share/zoneinfo/America/Kralendijk", + "usr/share/zoneinfo/America/La_Paz", + "usr/share/zoneinfo/America/Lima", + "usr/share/zoneinfo/America/Los_Angeles", + "usr/share/zoneinfo/America/Louisville", + "usr/share/zoneinfo/America/Lower_Princes", + "usr/share/zoneinfo/America/Maceio", + "usr/share/zoneinfo/America/Managua", + "usr/share/zoneinfo/America/Manaus", + "usr/share/zoneinfo/America/Marigot", + "usr/share/zoneinfo/America/Martinique", + "usr/share/zoneinfo/America/Matamoros", + "usr/share/zoneinfo/America/Mazatlan", + "usr/share/zoneinfo/America/Mendoza", + "usr/share/zoneinfo/America/Menominee", + "usr/share/zoneinfo/America/Merida", + "usr/share/zoneinfo/America/Metlakatla", + "usr/share/zoneinfo/America/Mexico_City", + "usr/share/zoneinfo/America/Miquelon", + "usr/share/zoneinfo/America/Moncton", + "usr/share/zoneinfo/America/Monterrey", + "usr/share/zoneinfo/America/Montevideo", + "usr/share/zoneinfo/America/Montreal", + "usr/share/zoneinfo/America/Montserrat", + "usr/share/zoneinfo/America/Nassau", + "usr/share/zoneinfo/America/New_York", + "usr/share/zoneinfo/America/Nipigon", + "usr/share/zoneinfo/America/Nome", + "usr/share/zoneinfo/America/Noronha", + "usr/share/zoneinfo/America/Nuuk", + "usr/share/zoneinfo/America/Ojinaga", + "usr/share/zoneinfo/America/Panama", + "usr/share/zoneinfo/America/Pangnirtung", + "usr/share/zoneinfo/America/Paramaribo", + "usr/share/zoneinfo/America/Phoenix", + "usr/share/zoneinfo/America/Port-au-Prince", + "usr/share/zoneinfo/America/Port_of_Spain", + "usr/share/zoneinfo/America/Porto_Acre", + "usr/share/zoneinfo/America/Porto_Velho", + "usr/share/zoneinfo/America/Puerto_Rico", + "usr/share/zoneinfo/America/Punta_Arenas", + "usr/share/zoneinfo/America/Rainy_River", + "usr/share/zoneinfo/America/Rankin_Inlet", + "usr/share/zoneinfo/America/Recife", + "usr/share/zoneinfo/America/Regina", + "usr/share/zoneinfo/America/Resolute", + "usr/share/zoneinfo/America/Rio_Branco", + "usr/share/zoneinfo/America/Rosario", + "usr/share/zoneinfo/America/Santa_Isabel", + "usr/share/zoneinfo/America/Santarem", + "usr/share/zoneinfo/America/Santiago", + "usr/share/zoneinfo/America/Santo_Domingo", + "usr/share/zoneinfo/America/Sao_Paulo", + "usr/share/zoneinfo/America/Scoresbysund", + "usr/share/zoneinfo/America/Shiprock", + "usr/share/zoneinfo/America/Sitka", + "usr/share/zoneinfo/America/St_Barthelemy", + "usr/share/zoneinfo/America/St_Johns", + "usr/share/zoneinfo/America/St_Kitts", + "usr/share/zoneinfo/America/St_Lucia", + "usr/share/zoneinfo/America/St_Thomas", + "usr/share/zoneinfo/America/St_Vincent", + "usr/share/zoneinfo/America/Swift_Current", + "usr/share/zoneinfo/America/Tegucigalpa", + "usr/share/zoneinfo/America/Thule", + "usr/share/zoneinfo/America/Thunder_Bay", + "usr/share/zoneinfo/America/Tijuana", + "usr/share/zoneinfo/America/Toronto", + "usr/share/zoneinfo/America/Tortola", + "usr/share/zoneinfo/America/Vancouver", + "usr/share/zoneinfo/America/Virgin", + "usr/share/zoneinfo/America/Whitehorse", + "usr/share/zoneinfo/America/Winnipeg", + "usr/share/zoneinfo/America/Yakutat", + "usr/share/zoneinfo/America/Yellowknife", + "usr/share/zoneinfo/America/Argentina/Buenos_Aires", + "usr/share/zoneinfo/America/Argentina/Catamarca", + "usr/share/zoneinfo/America/Argentina/ComodRivadavia", + "usr/share/zoneinfo/America/Argentina/Cordoba", + "usr/share/zoneinfo/America/Argentina/Jujuy", + "usr/share/zoneinfo/America/Argentina/La_Rioja", + "usr/share/zoneinfo/America/Argentina/Mendoza", + "usr/share/zoneinfo/America/Argentina/Rio_Gallegos", + "usr/share/zoneinfo/America/Argentina/Salta", + "usr/share/zoneinfo/America/Argentina/San_Juan", + "usr/share/zoneinfo/America/Argentina/San_Luis", + "usr/share/zoneinfo/America/Argentina/Tucuman", + "usr/share/zoneinfo/America/Argentina/Ushuaia", + "usr/share/zoneinfo/America/Indiana/Indianapolis", + "usr/share/zoneinfo/America/Indiana/Knox", + "usr/share/zoneinfo/America/Indiana/Marengo", + "usr/share/zoneinfo/America/Indiana/Petersburg", + "usr/share/zoneinfo/America/Indiana/Tell_City", + "usr/share/zoneinfo/America/Indiana/Vevay", + "usr/share/zoneinfo/America/Indiana/Vincennes", + "usr/share/zoneinfo/America/Indiana/Winamac", + "usr/share/zoneinfo/America/Kentucky/Louisville", + "usr/share/zoneinfo/America/Kentucky/Monticello", + "usr/share/zoneinfo/America/North_Dakota/Beulah", + "usr/share/zoneinfo/America/North_Dakota/Center", + "usr/share/zoneinfo/America/North_Dakota/New_Salem", + "usr/share/zoneinfo/Antarctica/Casey", + "usr/share/zoneinfo/Antarctica/Davis", + "usr/share/zoneinfo/Antarctica/DumontDUrville", + "usr/share/zoneinfo/Antarctica/Macquarie", + "usr/share/zoneinfo/Antarctica/Mawson", + "usr/share/zoneinfo/Antarctica/McMurdo", + "usr/share/zoneinfo/Antarctica/Palmer", + "usr/share/zoneinfo/Antarctica/Rothera", + "usr/share/zoneinfo/Antarctica/South_Pole", + "usr/share/zoneinfo/Antarctica/Syowa", + "usr/share/zoneinfo/Antarctica/Troll", + "usr/share/zoneinfo/Antarctica/Vostok", + "usr/share/zoneinfo/Arctic/Longyearbyen", + "usr/share/zoneinfo/Asia/Aden", + "usr/share/zoneinfo/Asia/Almaty", + "usr/share/zoneinfo/Asia/Amman", + "usr/share/zoneinfo/Asia/Anadyr", + "usr/share/zoneinfo/Asia/Aqtau", + "usr/share/zoneinfo/Asia/Aqtobe", + "usr/share/zoneinfo/Asia/Ashgabat", + "usr/share/zoneinfo/Asia/Ashkhabad", + "usr/share/zoneinfo/Asia/Atyrau", + "usr/share/zoneinfo/Asia/Baghdad", + "usr/share/zoneinfo/Asia/Bahrain", + "usr/share/zoneinfo/Asia/Baku", + "usr/share/zoneinfo/Asia/Bangkok", + "usr/share/zoneinfo/Asia/Barnaul", + "usr/share/zoneinfo/Asia/Beirut", + "usr/share/zoneinfo/Asia/Bishkek", + "usr/share/zoneinfo/Asia/Brunei", + "usr/share/zoneinfo/Asia/Calcutta", + "usr/share/zoneinfo/Asia/Chita", + "usr/share/zoneinfo/Asia/Choibalsan", + "usr/share/zoneinfo/Asia/Chongqing", + "usr/share/zoneinfo/Asia/Chungking", + "usr/share/zoneinfo/Asia/Colombo", + "usr/share/zoneinfo/Asia/Dacca", + "usr/share/zoneinfo/Asia/Damascus", + "usr/share/zoneinfo/Asia/Dhaka", + "usr/share/zoneinfo/Asia/Dili", + "usr/share/zoneinfo/Asia/Dubai", + "usr/share/zoneinfo/Asia/Dushanbe", + "usr/share/zoneinfo/Asia/Famagusta", + "usr/share/zoneinfo/Asia/Gaza", + "usr/share/zoneinfo/Asia/Harbin", + "usr/share/zoneinfo/Asia/Hebron", + "usr/share/zoneinfo/Asia/Ho_Chi_Minh", + "usr/share/zoneinfo/Asia/Hong_Kong", + "usr/share/zoneinfo/Asia/Hovd", + "usr/share/zoneinfo/Asia/Irkutsk", + "usr/share/zoneinfo/Asia/Istanbul", + "usr/share/zoneinfo/Asia/Jakarta", + "usr/share/zoneinfo/Asia/Jayapura", + "usr/share/zoneinfo/Asia/Jerusalem", + "usr/share/zoneinfo/Asia/Kabul", + "usr/share/zoneinfo/Asia/Kamchatka", + "usr/share/zoneinfo/Asia/Karachi", + "usr/share/zoneinfo/Asia/Kashgar", + "usr/share/zoneinfo/Asia/Kathmandu", + "usr/share/zoneinfo/Asia/Katmandu", + "usr/share/zoneinfo/Asia/Khandyga", + "usr/share/zoneinfo/Asia/Kolkata", + "usr/share/zoneinfo/Asia/Krasnoyarsk", + "usr/share/zoneinfo/Asia/Kuala_Lumpur", + "usr/share/zoneinfo/Asia/Kuching", + "usr/share/zoneinfo/Asia/Kuwait", + "usr/share/zoneinfo/Asia/Macao", + "usr/share/zoneinfo/Asia/Macau", + "usr/share/zoneinfo/Asia/Magadan", + "usr/share/zoneinfo/Asia/Makassar", + "usr/share/zoneinfo/Asia/Manila", + "usr/share/zoneinfo/Asia/Muscat", + "usr/share/zoneinfo/Asia/Nicosia", + "usr/share/zoneinfo/Asia/Novokuznetsk", + "usr/share/zoneinfo/Asia/Novosibirsk", + "usr/share/zoneinfo/Asia/Omsk", + "usr/share/zoneinfo/Asia/Oral", + "usr/share/zoneinfo/Asia/Phnom_Penh", + "usr/share/zoneinfo/Asia/Pontianak", + "usr/share/zoneinfo/Asia/Pyongyang", + "usr/share/zoneinfo/Asia/Qatar", + "usr/share/zoneinfo/Asia/Qostanay", + "usr/share/zoneinfo/Asia/Qyzylorda", + "usr/share/zoneinfo/Asia/Rangoon", + "usr/share/zoneinfo/Asia/Riyadh", + "usr/share/zoneinfo/Asia/Saigon", + "usr/share/zoneinfo/Asia/Sakhalin", + "usr/share/zoneinfo/Asia/Samarkand", + "usr/share/zoneinfo/Asia/Seoul", + "usr/share/zoneinfo/Asia/Shanghai", + "usr/share/zoneinfo/Asia/Singapore", + "usr/share/zoneinfo/Asia/Srednekolymsk", + "usr/share/zoneinfo/Asia/Taipei", + "usr/share/zoneinfo/Asia/Tashkent", + "usr/share/zoneinfo/Asia/Tbilisi", + "usr/share/zoneinfo/Asia/Tehran", + "usr/share/zoneinfo/Asia/Tel_Aviv", + "usr/share/zoneinfo/Asia/Thimbu", + "usr/share/zoneinfo/Asia/Thimphu", + "usr/share/zoneinfo/Asia/Tokyo", + "usr/share/zoneinfo/Asia/Tomsk", + "usr/share/zoneinfo/Asia/Ujung_Pandang", + "usr/share/zoneinfo/Asia/Ulaanbaatar", + "usr/share/zoneinfo/Asia/Ulan_Bator", + "usr/share/zoneinfo/Asia/Urumqi", + "usr/share/zoneinfo/Asia/Ust-Nera", + "usr/share/zoneinfo/Asia/Vientiane", + "usr/share/zoneinfo/Asia/Vladivostok", + "usr/share/zoneinfo/Asia/Yakutsk", + "usr/share/zoneinfo/Asia/Yangon", + "usr/share/zoneinfo/Asia/Yekaterinburg", + "usr/share/zoneinfo/Asia/Yerevan", + "usr/share/zoneinfo/Atlantic/Azores", + "usr/share/zoneinfo/Atlantic/Bermuda", + "usr/share/zoneinfo/Atlantic/Canary", + "usr/share/zoneinfo/Atlantic/Cape_Verde", + "usr/share/zoneinfo/Atlantic/Faeroe", + "usr/share/zoneinfo/Atlantic/Faroe", + "usr/share/zoneinfo/Atlantic/Jan_Mayen", + "usr/share/zoneinfo/Atlantic/Madeira", + "usr/share/zoneinfo/Atlantic/Reykjavik", + "usr/share/zoneinfo/Atlantic/South_Georgia", + "usr/share/zoneinfo/Atlantic/St_Helena", + "usr/share/zoneinfo/Atlantic/Stanley", + "usr/share/zoneinfo/Australia/ACT", + "usr/share/zoneinfo/Australia/Adelaide", + "usr/share/zoneinfo/Australia/Brisbane", + "usr/share/zoneinfo/Australia/Broken_Hill", + "usr/share/zoneinfo/Australia/Canberra", + "usr/share/zoneinfo/Australia/Currie", + "usr/share/zoneinfo/Australia/Darwin", + "usr/share/zoneinfo/Australia/Eucla", + "usr/share/zoneinfo/Australia/Hobart", + "usr/share/zoneinfo/Australia/LHI", + "usr/share/zoneinfo/Australia/Lindeman", + "usr/share/zoneinfo/Australia/Lord_Howe", + "usr/share/zoneinfo/Australia/Melbourne", + "usr/share/zoneinfo/Australia/NSW", + "usr/share/zoneinfo/Australia/North", + "usr/share/zoneinfo/Australia/Perth", + "usr/share/zoneinfo/Australia/Queensland", + "usr/share/zoneinfo/Australia/South", + "usr/share/zoneinfo/Australia/Sydney", + "usr/share/zoneinfo/Australia/Tasmania", + "usr/share/zoneinfo/Australia/Victoria", + "usr/share/zoneinfo/Australia/West", + "usr/share/zoneinfo/Australia/Yancowinna", + "usr/share/zoneinfo/Brazil/Acre", + "usr/share/zoneinfo/Brazil/DeNoronha", + "usr/share/zoneinfo/Brazil/East", + "usr/share/zoneinfo/Brazil/West", + "usr/share/zoneinfo/Canada/Atlantic", + "usr/share/zoneinfo/Canada/Central", + "usr/share/zoneinfo/Canada/Eastern", + "usr/share/zoneinfo/Canada/Mountain", + "usr/share/zoneinfo/Canada/Newfoundland", + "usr/share/zoneinfo/Canada/Pacific", + "usr/share/zoneinfo/Canada/Saskatchewan", + "usr/share/zoneinfo/Canada/Yukon", + "usr/share/zoneinfo/Chile/Continental", + "usr/share/zoneinfo/Chile/EasterIsland", + "usr/share/zoneinfo/Etc/GMT", + "usr/share/zoneinfo/Etc/GMT+0", + "usr/share/zoneinfo/Etc/GMT+1", + "usr/share/zoneinfo/Etc/GMT+10", + "usr/share/zoneinfo/Etc/GMT+11", + "usr/share/zoneinfo/Etc/GMT+12", + "usr/share/zoneinfo/Etc/GMT+2", + "usr/share/zoneinfo/Etc/GMT+3", + "usr/share/zoneinfo/Etc/GMT+4", + "usr/share/zoneinfo/Etc/GMT+5", + "usr/share/zoneinfo/Etc/GMT+6", + "usr/share/zoneinfo/Etc/GMT+7", + "usr/share/zoneinfo/Etc/GMT+8", + "usr/share/zoneinfo/Etc/GMT+9", + "usr/share/zoneinfo/Etc/GMT-0", + "usr/share/zoneinfo/Etc/GMT-1", + "usr/share/zoneinfo/Etc/GMT-10", + "usr/share/zoneinfo/Etc/GMT-11", + "usr/share/zoneinfo/Etc/GMT-12", + "usr/share/zoneinfo/Etc/GMT-13", + "usr/share/zoneinfo/Etc/GMT-14", + "usr/share/zoneinfo/Etc/GMT-2", + "usr/share/zoneinfo/Etc/GMT-3", + "usr/share/zoneinfo/Etc/GMT-4", + "usr/share/zoneinfo/Etc/GMT-5", + "usr/share/zoneinfo/Etc/GMT-6", + "usr/share/zoneinfo/Etc/GMT-7", + "usr/share/zoneinfo/Etc/GMT-8", + "usr/share/zoneinfo/Etc/GMT-9", + "usr/share/zoneinfo/Etc/GMT0", + "usr/share/zoneinfo/Etc/Greenwich", + "usr/share/zoneinfo/Etc/UCT", + "usr/share/zoneinfo/Etc/UTC", + "usr/share/zoneinfo/Etc/Universal", + "usr/share/zoneinfo/Etc/Zulu", + "usr/share/zoneinfo/Europe/Amsterdam", + "usr/share/zoneinfo/Europe/Andorra", + "usr/share/zoneinfo/Europe/Astrakhan", + "usr/share/zoneinfo/Europe/Athens", + "usr/share/zoneinfo/Europe/Belfast", + "usr/share/zoneinfo/Europe/Belgrade", + "usr/share/zoneinfo/Europe/Berlin", + "usr/share/zoneinfo/Europe/Bratislava", + "usr/share/zoneinfo/Europe/Brussels", + "usr/share/zoneinfo/Europe/Bucharest", + "usr/share/zoneinfo/Europe/Budapest", + "usr/share/zoneinfo/Europe/Busingen", + "usr/share/zoneinfo/Europe/Chisinau", + "usr/share/zoneinfo/Europe/Copenhagen", + "usr/share/zoneinfo/Europe/Dublin", + "usr/share/zoneinfo/Europe/Gibraltar", + "usr/share/zoneinfo/Europe/Guernsey", + "usr/share/zoneinfo/Europe/Helsinki", + "usr/share/zoneinfo/Europe/Isle_of_Man", + "usr/share/zoneinfo/Europe/Istanbul", + "usr/share/zoneinfo/Europe/Jersey", + "usr/share/zoneinfo/Europe/Kaliningrad", + "usr/share/zoneinfo/Europe/Kiev", + "usr/share/zoneinfo/Europe/Kirov", + "usr/share/zoneinfo/Europe/Kyiv", + "usr/share/zoneinfo/Europe/Lisbon", + "usr/share/zoneinfo/Europe/Ljubljana", + "usr/share/zoneinfo/Europe/London", + "usr/share/zoneinfo/Europe/Luxembourg", + "usr/share/zoneinfo/Europe/Madrid", + "usr/share/zoneinfo/Europe/Malta", + "usr/share/zoneinfo/Europe/Mariehamn", + "usr/share/zoneinfo/Europe/Minsk", + "usr/share/zoneinfo/Europe/Monaco", + "usr/share/zoneinfo/Europe/Moscow", + "usr/share/zoneinfo/Europe/Nicosia", + "usr/share/zoneinfo/Europe/Oslo", + "usr/share/zoneinfo/Europe/Paris", + "usr/share/zoneinfo/Europe/Podgorica", + "usr/share/zoneinfo/Europe/Prague", + "usr/share/zoneinfo/Europe/Riga", + "usr/share/zoneinfo/Europe/Rome", + "usr/share/zoneinfo/Europe/Samara", + "usr/share/zoneinfo/Europe/San_Marino", + "usr/share/zoneinfo/Europe/Sarajevo", + "usr/share/zoneinfo/Europe/Saratov", + "usr/share/zoneinfo/Europe/Simferopol", + "usr/share/zoneinfo/Europe/Skopje", + "usr/share/zoneinfo/Europe/Sofia", + "usr/share/zoneinfo/Europe/Stockholm", + "usr/share/zoneinfo/Europe/Tallinn", + "usr/share/zoneinfo/Europe/Tirane", + "usr/share/zoneinfo/Europe/Tiraspol", + "usr/share/zoneinfo/Europe/Ulyanovsk", + "usr/share/zoneinfo/Europe/Uzhgorod", + "usr/share/zoneinfo/Europe/Vaduz", + "usr/share/zoneinfo/Europe/Vatican", + "usr/share/zoneinfo/Europe/Vienna", + "usr/share/zoneinfo/Europe/Vilnius", + "usr/share/zoneinfo/Europe/Volgograd", + "usr/share/zoneinfo/Europe/Warsaw", + "usr/share/zoneinfo/Europe/Zagreb", + "usr/share/zoneinfo/Europe/Zaporozhye", + "usr/share/zoneinfo/Europe/Zurich", + "usr/share/zoneinfo/Indian/Antananarivo", + "usr/share/zoneinfo/Indian/Chagos", + "usr/share/zoneinfo/Indian/Christmas", + "usr/share/zoneinfo/Indian/Cocos", + "usr/share/zoneinfo/Indian/Comoro", + "usr/share/zoneinfo/Indian/Kerguelen", + "usr/share/zoneinfo/Indian/Mahe", + "usr/share/zoneinfo/Indian/Maldives", + "usr/share/zoneinfo/Indian/Mauritius", + "usr/share/zoneinfo/Indian/Mayotte", + "usr/share/zoneinfo/Indian/Reunion", + "usr/share/zoneinfo/Mexico/BajaNorte", + "usr/share/zoneinfo/Mexico/BajaSur", + "usr/share/zoneinfo/Mexico/General", + "usr/share/zoneinfo/Pacific/Apia", + "usr/share/zoneinfo/Pacific/Auckland", + "usr/share/zoneinfo/Pacific/Bougainville", + "usr/share/zoneinfo/Pacific/Chatham", + "usr/share/zoneinfo/Pacific/Chuuk", + "usr/share/zoneinfo/Pacific/Easter", + "usr/share/zoneinfo/Pacific/Efate", + "usr/share/zoneinfo/Pacific/Enderbury", + "usr/share/zoneinfo/Pacific/Fakaofo", + "usr/share/zoneinfo/Pacific/Fiji", + "usr/share/zoneinfo/Pacific/Funafuti", + "usr/share/zoneinfo/Pacific/Galapagos", + "usr/share/zoneinfo/Pacific/Gambier", + "usr/share/zoneinfo/Pacific/Guadalcanal", + "usr/share/zoneinfo/Pacific/Guam", + "usr/share/zoneinfo/Pacific/Honolulu", + "usr/share/zoneinfo/Pacific/Johnston", + "usr/share/zoneinfo/Pacific/Kanton", + "usr/share/zoneinfo/Pacific/Kiritimati", + "usr/share/zoneinfo/Pacific/Kosrae", + "usr/share/zoneinfo/Pacific/Kwajalein", + "usr/share/zoneinfo/Pacific/Majuro", + "usr/share/zoneinfo/Pacific/Marquesas", + "usr/share/zoneinfo/Pacific/Midway", + "usr/share/zoneinfo/Pacific/Nauru", + "usr/share/zoneinfo/Pacific/Niue", + "usr/share/zoneinfo/Pacific/Norfolk", + "usr/share/zoneinfo/Pacific/Noumea", + "usr/share/zoneinfo/Pacific/Pago_Pago", + "usr/share/zoneinfo/Pacific/Palau", + "usr/share/zoneinfo/Pacific/Pitcairn", + "usr/share/zoneinfo/Pacific/Pohnpei", + "usr/share/zoneinfo/Pacific/Ponape", + "usr/share/zoneinfo/Pacific/Port_Moresby", + "usr/share/zoneinfo/Pacific/Rarotonga", + "usr/share/zoneinfo/Pacific/Saipan", + "usr/share/zoneinfo/Pacific/Samoa", + "usr/share/zoneinfo/Pacific/Tahiti", + "usr/share/zoneinfo/Pacific/Tarawa", + "usr/share/zoneinfo/Pacific/Tongatapu", + "usr/share/zoneinfo/Pacific/Truk", + "usr/share/zoneinfo/Pacific/Wake", + "usr/share/zoneinfo/Pacific/Wallis", + "usr/share/zoneinfo/Pacific/Yap", + "usr/share/zoneinfo/US/Alaska", + "usr/share/zoneinfo/US/Aleutian", + "usr/share/zoneinfo/US/Arizona", + "usr/share/zoneinfo/US/Central", + "usr/share/zoneinfo/US/East-Indiana", + "usr/share/zoneinfo/US/Eastern", + "usr/share/zoneinfo/US/Hawaii", + "usr/share/zoneinfo/US/Indiana-Starke", + "usr/share/zoneinfo/US/Michigan", + "usr/share/zoneinfo/US/Mountain", + "usr/share/zoneinfo/US/Pacific", + "usr/share/zoneinfo/US/Samoa" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "xz-libs@5.8.3-r0", + "Name": "xz-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "1ae658a5f132a091" + }, + "Version": "5.8.3-r0", + "Arch": "x86_64", + "SrcName": "xz", + "SrcVersion": "5.8.3-r0", + "Licenses": [ + "GPL-2.0-or-later", + "0BSD", + "Public-Domain", + "LGPL-2.1-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4c92c5be0c5bef404e93c880eba9037a9b147347", + "InstalledFiles": [ + "usr/lib/liblzma.so.5", + "usr/lib/liblzma.so.5.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "zlib@1.3.2-r0", + "Name": "zlib", + "Identifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "Version": "1.3.2-r0", + "Arch": "x86_64", + "SrcName": "zlib", + "SrcVersion": "1.3.2-r0", + "Licenses": [ + "Zlib" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:dd4c3d102acaef2a71a1495951d55fabc8680613", + "InstalledFiles": [ + "usr/lib/libz.so.1", + "usr/lib/libz.so.1.3.2" + ], + "AnalyzedBy": "apk" + } + ], + "Vulnerabilities": [ + { + "VulnerabilityID": "CVE-2026-85091", + "PkgID": "zlib@1.3.2-r0", + "PkgName": "zlib", + "PkgIdentifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "InstalledVersion": "1.3.2-r0", + "FixedVersion": "1.3.2-r1", + "Status": "fixed", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "PrimaryURL": "https://avd.aquasec.com/nvd/cve-2026-85091", + "DataSource": { + "ID": "alpine", + "Name": "Alpine Secdb", + "URL": "https://secdb.alpinelinux.org/" + }, + "Fingerprint": "sha256:d73c01b020c55acc174a3fde47c8af6f5638c58c7189c817edd6862029f6c5f5", + "Title": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...", + "Description": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.", + "Severity": "MEDIUM", + "CweIDs": [ + "CWE-787" + ], + "VendorSeverity": { + "ubuntu": 2 + }, + "References": [ + "https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490", + "https://github.com/madler/zlib", + "https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393", + "https://www.cve.org/CVERecord?id=CVE-2026-85091", + "https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate" + ], + "PublishedDate": "2026-09-03T13:06:20.573Z", + "LastModifiedDate": "2026-09-09T20:41:07.123Z" + } + ] + }, + { + "Target": "Python", + "Class": "lang-pkgs", + "Type": "python-pkg", + "Packages": [ + { + "Name": "PyJWT", + "Identifier": { + "PURL": "pkg:pypi/pyjwt@2.15.1", + "UID": "d3f5f9a421b8abc9" + }, + "Version": "2.15.1", + "Licenses": [ + "MIT" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cffi", + "Identifier": { + "PURL": "pkg:pypi/cffi@2.1.1", + "UID": "21042e2f37e33c05" + }, + "Version": "2.1.1", + "Licenses": [ + "MIT-0" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cryptography", + "Identifier": { + "PURL": "pkg:pypi/cryptography@50.0.1", + "UID": "dcb3df6383fe2a60" + }, + "Version": "50.0.1", + "Licenses": [ + "Apache-2.0 OR BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "informed-decision", + "Identifier": { + "PURL": "pkg:pypi/informed-decision@0.2.0", + "UID": "7989f2afae8ff568" + }, + "Version": "0.2.0", + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "pycparser", + "Identifier": { + "PURL": "pkg:pypi/pycparser@3.0", + "UID": "e5a4d03f15a695ff" + }, + "Version": "3.0", + "Licenses": [ + "BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "waitress", + "Identifier": { + "PURL": "pkg:pypi/waitress@3.0.2", + "UID": "806e218e1c1e85f" + }, + "Version": "3.0.2", + "Licenses": [ + "ZPL-2.1" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + } + ] + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/validation.json b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/validation.json new file mode 100644 index 0000000..b3cca7c --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/validation.json @@ -0,0 +1,20 @@ +{ + "intake_valid_offline": true, + "typed_memo_valid": true, + "lifecycle_documents_valid": 20, + "packet_actual_file_bytes_verified": true, + "submission_digest": "sha256:ac41c8aea7bb008e17f50dc0bab4aad584aef1e461222967ac98d74c7bd28af7", + "offline_constructed_grant": "state-hub/decision-record/net-kingdom-admins", + "deployed_submitter_admission_verified": false, + "human_approval": false, + "live_submitted": false, + "native_backup_restore_executed": false, + "native_workload_changed": false, + "packet_bytes_total": 249719, + "guard_tests": 5, + "guard_drift_negative_assertions": 20, + "transport_negative_cases": 6, + "fresh_readonly_preflight_all_checks_pass": true, + "fresh_readonly_capture": "2026-10-11T01:30:33Z", + "original_capture_bytes_preserved": true +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py new file mode 100644 index 0000000..75c837a --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py @@ -0,0 +1,125 @@ +"""Read a public policy image without executing it or retaining registry tokens.""" +import argparse +import hashlib +import io +import json +from pathlib import Path, PurePosixPath +import re +import tarfile +import urllib.error +import urllib.parse +import urllib.request + +ORIGIN = 'https://forgejo.coulomb.social' +BASE = ORIGIN + '/v2/coulomb/informed-decision/' +LIMIT = 300 * 1024 * 1024 +class NoRedirect(urllib.request.HTTPRedirectHandler): + def redirect_request(self, request, response, code, message, headers, new_url): + raise ValueError('registry redirects refused') +OPENER = urllib.request.build_opener(NoRedirect()) + + +def fetch(url, accept=None): + parsed_url = urllib.parse.urlparse(url) + if parsed_url.scheme != 'https' or parsed_url.netloc != 'forgejo.coulomb.social': + raise ValueError('unexpected registry origin') + headers = {'Accept': accept} if accept else {} + try: + response = OPENER.open(urllib.request.Request(url, headers=headers), timeout=30) + except urllib.error.HTTPError as error: + if error.code != 401: + raise + fields = dict(re.findall(r'(\w+)="([^"]*)"', error.headers.get('WWW-Authenticate', ''))) + realm = fields['realm'] + parsed = urllib.parse.urlparse(realm) + if parsed.scheme != 'https' or parsed.netloc != 'forgejo.coulomb.social': + raise ValueError('unexpected registry challenge origin') + query = urllib.parse.urlencode({k: fields[k] for k in ('service', 'scope') if k in fields}) + with OPENER.open(realm + '?' + query, timeout=30) as auth: + token = json.load(auth)['token'] + headers['Authorization'] = 'Bearer ' + token + response = OPENER.open(urllib.request.Request(url, headers=headers), timeout=60) + with response: + body = response.read(LIMIT + 1) + if len(body) > LIMIT: + raise ValueError('registry artifact exceeds local verification bound') + return body + + +def sha(data): + return hashlib.sha256(data).hexdigest() + + +def blob(descriptor): + digest = descriptor['digest'] + if not re.fullmatch(r'sha256:[a-f0-9]{64}', digest): + raise ValueError('unknown image digest') + data = fetch(BASE + 'blobs/' + digest) + if 'sha256:' + sha(data) != digest or len(data) != descriptor['size']: + raise ValueError('image blob hash or size mismatch') + return data + + +def manifest(digest): + raw = fetch(BASE + 'manifests/' + digest, 'application/vnd.oci.image.index.v1+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json') + if 'sha256:' + sha(raw) != digest: + raise ValueError('manifest digest mismatch') + value = json.loads(raw) + if 'manifests' in value: + selected = [d for d in value['manifests'] if d.get('platform',{}).get('os') == 'linux' and d.get('platform',{}).get('architecture') == 'amd64'] + if len(selected) != 1: + raise ValueError('one linux/amd64 platform required') + child, config, layerlist = manifest(selected[0]['digest']) + return child, config, layerlist + return value, json.loads(blob(value['config'])), value['layers'] + +def main(): + p = argparse.ArgumentParser(); p.add_argument('--digest',required=True);p.add_argument('--revision',required=True);p.add_argument('--output',type=Path,required=True);a=p.parse_args() + if not re.fullmatch(r'sha256:[a-f0-9]{64}',a.digest) or not re.fullmatch(r'[a-f0-9]{40}',a.revision): + raise ValueError('exact immutable revision and image required') + base_digest='sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173' + m,c,l=manifest(a.digest);bm,bc,bl=manifest(base_digest) + allowed_media={'application/vnd.docker.image.rootfs.diff.tar.gzip','application/vnd.oci.image.layer.v1.tar+gzip'} + if any(d['mediaType'] not in allowed_media for d in l+bl): raise ValueError('unsupported layer encoding') + if [(d['digest'],d['size']) for d in l[:-1]] != [(d['digest'],d['size']) for d in bl] or len(l) != len(bl)+1: + raise ValueError('candidate must retain all base descriptors plus exactly one layer') + for key in ('architecture','os'): + if c[key] != bc[key]: raise ValueError('platform changed') + if c['rootfs']['diff_ids'][:-1] != bc['rootfs']['diff_ids'] or len(c['rootfs']['diff_ids']) != len(bc['rootfs']['diff_ids'])+1: + raise ValueError('base rootfs changed') + defaults={'Hostname':'','Domainname':'','AttachStdin':False,'AttachStdout':False,'AttachStderr':False,'Tty':False,'OpenStdin':False,'StdinOnce':False,'Cmd':None,'Volumes':None,'OnBuild':None} + extra_defaults={} + for key,value in defaults.items(): + if key not in bc['config'] and key in c['config']: + if c['config'][key] != value: raise ValueError('legacy builder runtime default changed') + extra_defaults[key]=value + if 'Image' in c['config'] and 'Image' not in bc['config']: + if not re.fullmatch(r'sha256:[a-f0-9]{64}',c['config']['Image']):raise ValueError('unexpected legacy builder parent-image metadata') + extra_defaults['Image']=c['config']['Image'] + actual_config={k:v for k,v in c['config'].items() if k != 'Labels' and k not in extra_defaults} + base_config={k:v for k,v in bc['config'].items() if k != 'Labels'} + if actual_config != base_config: raise ValueError('runtime image config changed') + labels=c['config']['Labels']; expected={'org.opencontainers.image.revision':a.revision,'org.opencontainers.image.base.digest':base_digest,'social.coulomb.source.policy.sha256':'9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62','social.coulomb.release.scope':'INFD-WP-0009-T04/purpose-overlay-v1'} + for k,v in expected.items(): + if labels.get(k)!=v:raise ValueError('exact source/scope label mismatch') + if {k:v for k,v in labels.items() if k not in expected} != {k:v for k,v in bc['config'].get('Labels',{}).items() if k not in expected}: + raise ValueError('unrelated labels changed') + files=[]; dirs=[];content=None + with tarfile.open(fileobj=io.BytesIO(blob(l[-1])),mode='r:*') as archive: + for item in archive: + path=PurePosixPath(item.name.removeprefix('./')) + if path.is_absolute() or '..' in path.parts or any(p.startswith('.wh.') for p in path.parts):raise ValueError('unsafe overlay entry') + if item.isdir(): + allowed_dirs={'opt','opt/venv','opt/venv/lib','opt/venv/lib/python3.12','opt/venv/lib/python3.12/site-packages','opt/venv/lib/python3.12/site-packages/informed_decision'} + if str(path) not in allowed_dirs: raise ValueError('unexpected overlay directory') + dirs.append(str(path));continue + if not item.isfile():raise ValueError('unexpected overlay link or device') + files.append(str(path)) + if str(path)!='opt/venv/lib/python3.12/site-packages/informed_decision/policy.py' or item.mode!=0o644 or item.uid!=0 or item.gid!=0 or item.size>100000:raise ValueError('unexpected overlay file metadata') + content=archive.extractfile(item).read() + if len(files)!=1 or sha(content)!=expected['social.coulomb.source.policy.sha256']:raise ValueError('single installed source file not exact') + a.output.mkdir(parents=True,exist_ok=True) + (a.output/'image-manifest.json').write_text(json.dumps(m,indent=2)+'\n');(a.output/'image-config.json').write_text(json.dumps(c,indent=2)+'\n');(a.output/'base-image-config.json').write_text(json.dumps(bc,indent=2)+'\n') + receipt={'image_digest':a.digest,'source_revision':a.revision,'base_image_digest':base_digest,'base_layer_bytes_identical':True,'layer_media_type_conversion':'OCI gzip to Docker gzip, same digest and size','base_runtime_config_semantics_identical':True,'legacy_builder_config_additions':extra_defaults,'base_rootfs_prefix_identical':True,'overlay_regular_files':files,'overlay_directories':dirs,'policy_sha256':sha(content),'policy_mode':'0644','base_user':bc['config'].get('User'),'source_scope_labels':expected,'registry_read_route':'anonymous public scoped bearer challenge, no token retention','image_executed':False,'native_workload_changed':False,'native_backup_restore_executed':False} + (a.output/'registry-proof.json').write_text(json.dumps(receipt,indent=2)+'\n');print(json.dumps(receipt,sort_keys=True)) +if __name__=='__main__': main() diff --git a/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md.source.txt b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md.source.txt new file mode 100644 index 0000000..3217325 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/initial-7c6738b3/owner-snapshot/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md.source.txt @@ -0,0 +1,153 @@ +--- +id: INFD-WP-0009 +type: workplan +title: "Repair lifecycle consumer pin after Access Engine v2 policy release" +domain: infotech +repo: informed-decision +status: active +owner: codex +topic_slug: netkingdom +created: "2026-10-10" +updated: "2026-10-11" +flavor: implementation +depends_on: [] +related: + - FLEX-WP-0035 + - INFD-WP-0007 +state_hub_workstream_id: "77eaeabf-0644-595f-b3d5-1168e6a294c4" +--- + +## Diagnose and prepare exact config repair + +```task +id: INFD-WP-0009-T01 +status: done +priority: high +state_hub_task_id: "5c30c308-8fe2-5956-b0c1-66c80bcb07e9" +``` + +Native State Hub lifecycle submission returns HTTP 503 `invalid_decision`. +The service remains Ready but its configured lifecycle package is v1/cee6a79; +Access Engine lifecycle provider now runs v2/da01e045 after FLEX-WP-0035. +The envelope contract remains `flex-auth.decision-record.v1`; this is a policy +pin mismatch, not an envelope compatibility migration. Keep exact package, +version and digest enforcement. Source preparation and regression evidence are +in `docs/evidence/2026-10-10-lifecycle-consumer-pin-repair.md`. + +## Release and verify the config-only repair + +```task +id: INFD-WP-0009-T02 +status: done +priority: high +needs_human: false +state_hub_task_id: "1e6684d7-7676-5c70-b701-9dad124b4f07" +``` + +Apply only the reviewed immutable runtime ConfigMap and Deployment reference +through the existing owner GitOps path after exact scoped supervisor approval. +Image, schema, credentials, audience and review policy remain pinned. Retain +server dry-run/diff, readiness and native State Hub register/publish receipts; +retry with stable write keys, do not infer success from readiness. Root agent +owns live evidence and approval recording. This is a repair of the shipped +initial lifecycle, separate from INFD-WP-0008 expansion. + +**Verified 2026-10-11:** founder approved exact config-only revision +`7db8485ffecdebfabd77a9daec085553c74bf0bf`. Manual Argo Application operation +synced only `informed-decision-runtime-6c221878d051` and Deployment, prune false. +Application Succeeded/Healthy; generation24 observed24 Ready1; `/readyz`200; +consumer v2/da01e045 and unchanged image7f5c6cb verified. Native lifecycle +registration and publication succeeded (events28/29). A later review request +rejected packet validation; this separate caller error does not undo verified +authoring. Custodian evidence records original approval, execution and rollback: +`docs/evidence/2026-10-10-security-consolidation/infd-pin-repair-preflight.json`. + +## Explicitly reject advisory purpose at consumer boundary + +```task +id: INFD-WP-0009-T03 +status: done +priority: medium +state_hub_task_id: "ee798d7d-5e60-5247-9c9b-285a7f65cf11" +``` + +PolicyClient now validates binding purpose: absent or exact empty string only; +readback and malformed purposes are refused. Nine purpose variants and a real +provider response contamination test preserve the binding, pin, expiry and +obligations gates. This task covers source implementation and regression tests. +The current runtime image lacks this patch. Service build/native release belongs +to T04, separate from the config-only T02 repair. + + +## Release the advisory-purpose source correction + +```task +id: INFD-WP-0009-T04 +status: progress +priority: medium +state_hub_task_id: "0e1bb868-7bc2-5d4d-953c-e0edaf660ad0" +``` + +Build and scan a new service image including T03, retain provenance and backup +compatibility evidence, prepare a separate scoped image proposal, and verify +native binding/refusal after the owner's approved release. Do not fold an image +change into the config-only T02 proposal. Current runtime 7f5c6cb remains exact. + +**Historical local preparation 2026-10-11:** narrow single-module image overlay on immutable running +7f5c6cb; exact source policy SHA-256 9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62. +Local image/index b8b58944786015a5375304241c149d1dab885eb539d6d8945f56b01a3c2bc821 +is built and retained, unpublished and undeployed. Base layer prefix and runtime +configuration are preserved; installed-image 10 purpose variants pass; 13 +container checks include restart and synthetic consistent backup/restore. A +fresh Trivy database scan has zero HIGH/CRITICAL findings, with its Alpine EOL +warning retained. See `docs/evidence/2026-10-11-purpose-hardening/README.md`. +Remaining gates: source-bound registry publication and exact digest verification, +fresh native snapshot/restore compatibility, owner GitOps server dry-run/diff, +separate scoped supervisor approval and native post-release binding/refusal. +No release approval or actual production-data restore is inferred from fixtures. + +**Publication and release preparation 2026-10-11:** actual owner CI +task11484/run3 succeeds at source3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168, +publishing immutable image763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a. +The failed run1/f66 and run2/ace are retained as refinements in the same trial. +Anonymous registry readback proves all8base compressed blobs/rootfs unchanged +plus only policy.py; legacy media-type/default-config serialization differences +are explicit. Pulled published artifact UID10001/GID10001, installed mode0644 +and exactpolicy hash, all10purpose forms pass. Full pinned scanner/DB covers +44packages: 0HIGH/CRITICAL, 1fixableMEDIUM CVE-2026-85091 in zlib1.3.2-r0, +identical actual current-base scan. This is not a zero-CVE release or estate +risk grade. T05 and INFD-RISK-20261011-ZLIB-85091 are live owner follow-through. + +The exact separate20document informed-decision packet is prepared and +offline typed/intake validated, with no submission or founder disposition +claimed. Source candidates differ solely in Deploymentimage and retain +ConfigMap6c221878d051/schema5/PVC/identity/policy pins. Fresh read-only +serverdryrun/clientdiff pass with sealedUID/fullconfiguration; existingmanual +Argo remains Healthy/OutOfSync at7db8485, not whole-app reconciled. +Remaining gates: independent owner review, actual founder native approval, +fresh protected native consistent snapshot/off-cluster custody/offline restore, +refresh preflight, exact owner-source pin/Deployment-only manual sync and +verified native installed purpose/refusal/lifecycle behavior. Synthetic native +placement checks are not new provider authorization evidence. Runtime remains7f5c. + +Evidence: `docs/evidence/2026-10-11-purpose-image-release/`. + +## Resolve inherited published-image zlib finding + +```task +id: INFD-WP-0009-T05 +status: todo +priority: medium +``` + +Owner follow-through `INFD-RISK-20261011-ZLIB-85091` tracks actual published +base and purpose-overlay scan finding CVE-2026-85091: zlib 1.3.2-r0, fixed +1.3.2-r1, scanner MEDIUM; this is not an estate risk grade. Prepare and verify a +separate source-bound base/dependency refresh, then obtain distinct native +release approval before changing the workload. Review due 2026-10-18; the date +is a manual owner follow-up, with no automatic expiry/rollback controller. +T04 cannot be treated as a zero-CVE release or silently include the base fix. +Preserve the original detection, pending founder disposition and remediation +evidence. Close only after actual installed-package proof and full rescan. + +Evidence: `docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json`. diff --git a/docs/evidence/2026-10-11-purpose-image-release/intake.json b/docs/evidence/2026-10-11-purpose-image-release/intake.json new file mode 100644 index 0000000..80d54ba --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/intake.json @@ -0,0 +1,261 @@ +{ + "kind": "informed-decision.memo-intake", + "version": 1, + "idempotency_key": "infd-20261011-purpose-overlay-r1-v1", + "memo_class": "decision-record", + "review_group": "net-kingdom-admins", + "drafted_by": "custodian-codex", + "approval_intent": { + "action": "administer", + "principal": "informed-decision", + "purpose": "Approve exact image-only purpose overlay release plus protected native evidence backup/restore gates and explicit inherited fixable-medium owner follow-through; no unrelated grant.", + "target": { + "id": "INFD-WP-0009-T04/purpose-overlay-v1", + "type": "runtime-change", + "system": "railiance01" + } + }, + "memo": { + "id": "infd-20261011-purpose-overlay-r1", + "version": 1, + "question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?", + "requested_act": "approve", + "binding_level": "organizational", + "brief": "Actual owner CI published763c from3e4bcb26; unchanged8base layers plus one policy.py, installedUID10001 and10purpose checks pass. Full44package scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, identical actualbase scan. Only Deploymentimage changes; manualArgo prune=false, runtime6c/schema5/PVC/identity/policies unchanged. Before ANY admin/Store, readonly schema5/integrity/count gate; protected backup/restore, sealedDeployment+actualCM/PVC identities and unoptimizedpreflight required, not executed. Live owner riskrecord/T05 dueOct18; Recreate briefly interrupts service. No priorconfigapproval reused.", + "binding": { + "principal": { + "id": "pending-human-session", + "kind": "person", + "display_name": "Founder review" + }, + "target": { + "kind": "environment", + "id": "realm:kubernetes/railiance01/informed-decision", + "label": "Informed Decision image-only purpose hardening on railiance01", + "environment": "production" + }, + "terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/off-cluster custody/offline restore plus exact owner-source pin/manual Deployment-only image release763c, prune=false. ADMINISTER activationAPPROVED only upon actualdisposition, execute by2026-10-12T23:59:59Z afterfresh sealedCM/PVC/Deploymentpreflight+pre-openreadonlyschema5+restoregates; rollbackprior7f5 retaining latestschema5DB. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 ownerreviewdue2026-10-18. No credential/policy/grant change, humanbinding, wholeAppsync or autonomygrant." + }, + "step_kind": "approve", + "packet": [ + { + "item_id": "decision-packet-md", + "label": "decision-packet.md", + "hash": "sha256:23da78cf998a32af0481e68567db94bb40781cc18f147461f779d40ebd329fd1" + }, + { + "item_id": "proposal-json", + "label": "proposal.json", + "hash": "sha256:a59bcddc6c79e3ba8265a95b4b68facda2683abda8e47e5bb48ce402b9e1fa82" + }, + { + "item_id": "candidate-admission-json", + "label": "candidate-admission.json", + "hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "item_id": "rollback-admission-json", + "label": "rollback-admission.json", + "hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "item_id": "candidate-deployment-json", + "label": "candidate-deployment.json", + "hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "item_id": "rollback-deployment-json", + "label": "rollback-deployment.json", + "hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "item_id": "published-verification-json", + "label": "published-verification.json", + "hash": "sha256:8a676c38f89f9ca762b8ebe945b5acb90d47a4cb350692687abb985bbb2d8ae2" + }, + { + "item_id": "registry-proof-json", + "label": "registry-proof.json", + "hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "item_id": "security-summary-json", + "label": "security-summary.json", + "hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "item_id": "trivy-full-json", + "label": "trivy-full.json", + "hash": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "item_id": "sqlite-readonly-py", + "label": "sqlite_readonly.py", + "hash": "sha256:eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38" + }, + { + "item_id": "sealed-native-dependencies-json", + "label": "sealed-native-dependencies.json", + "hash": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369" + }, + { + "item_id": "native-backup-restore-protocol-md", + "label": "native-backup-restore-protocol.md", + "hash": "sha256:2f8d4894c2861b34977ec020593b7515a8ee35a43ce2e6aef2d96a6d34a94ddc" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "label": "inherited-vulnerability-follow-through.json", + "hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "item_id": "native-preflight-json", + "label": "native-preflight.json", + "hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "item_id": "sealed-live-deployment-json", + "label": "sealed-live-deployment.json", + "hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "item_id": "change-guard-py", + "label": "change_guard.py", + "hash": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be" + }, + { + "item_id": "preflight-py", + "label": "preflight.py", + "hash": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd" + }, + { + "item_id": "preflight-inputs-json", + "label": "preflight-inputs.json", + "hash": "sha256:756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06" + }, + { + "item_id": "fresh-preflight-validation-json", + "label": "fresh-preflight-validation.json", + "hash": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7" + } + ], + "highlights": [ + { + "id": "native-custody-rollout-and-known-medium", + "item_id": "decision-packet-md", + "note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof. Admin can migrate oldschemas: readonlyschema5/integrity/count check must precede every native/offline Store/admin open. ActualCM/PVC UID/custody drift and optimizedPython stop the operation.", + "required_ack": true, + "severity": "warning", + "locator": { + "kind": "section", + "heading": "Requested decision" + } + } + ], + "sealed": false, + "approval_id": null, + "approval_binding_digest": null + }, + "packet": [ + { + "item_id": "decision-packet-md", + "media_type": "text/markdown", + "content": "# Informed Decision purpose overlay release\n\n## Requested decision\n\nApprove the exact purpose-only image rollout and protected real-data backup/restore protocol for the existing Informed Decision service on railiance01. This request is separate from the already approved config-only repair. Only the existing Deployment image changes through the owner's manual Argo workflow, with prune disabled. Runtime ConfigMap `informed-decision-runtime-6c221878d051`, schema5, PVC, credentials, audience, policies, registries, access, replica1 and Recreate strategy remain fixed. Execute by 2026-10-12T23:59:59Z, after refreshed sealed-source/UID/configuration checks and backup/restore gates. Expiry stops authorization for an unstarted release; it does not install a controller or automatically roll back an already released image.\n\n## Artifact and known finding\n\nActual owner CI task11484/run3 published immutable image `sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a` from source `3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168`. Anonymous registry verification preserves all eight base compressed blobs/rootfs layers and adds only policy.py with exact source hash and mode0644. Legacy-builder media-type/default config serialization differences are recorded; the runtime semantics remain unchanged. Pulled published image executes as UID10001/GID10001 and passes ten installed checks: two supported binding forms, eight advisory/malformed refusals. Tests use synthetic transport and do not claim new native PDP authorization proof. The two failed CI attempts remain in the same trial history.\n\nActual unfiltered pinned scanner/DB evidence covers44packages: zero HIGH/CRITICAL, **one fixable MEDIUM**, CVE-2026-85091, zlib1.3.2-r0 fixed in1.3.2-r1. Actual current-base scan has the identical finding. Approving this packet explicitly permits this inherited finding during this narrow purpose release; it is not a RiskNexus estate risk grade or zero-CVE claim. Owner record INFD-RISK-20261011-ZLIB-85091 and live task INFD-WP-0009-T05 require separate base refresh and native approval, reviewed by2026-10-18. That review date is manual follow-through, with no auto-controller claim. Scanner notes Alpine3.24 absent EOL list; OS vulnerability detection ran against38OSpackages. Unknown vulnerabilities remain outside snapshot knowledge.\n\n## Native baseline and gates\n\nOriginal read-only capture01:25:38Z: existing Deployment UIDa588e10a, Ready1, image7f5c, unchanged runtime6c; native admission preserves the full configuration plus exactly the proposed image. Clientdiff returns1. Requests3460/4000mCPU86%, memory9472Mi59%; refresh before release. Existing Argo Application UID499868f2 is manual, target7db8485, Healthy with pre-existing OutOfSync status. Do not treat a scoped Deployment release as full-app reconciliation. Preserve its tracking-id; no unrelated resource sync/prune/adoption.\n\nThe refined read-only helper binds original source/helper/render/baseline hashes and actual immutable ConfigMap/PVC UIDs, runtime-data checksum and bound volume identity, explicitly refuses optimized interpreters, checks exact fresh live UID/configuration and admission, and writes a separate execution receipt outside this sealed packet. Failed initial raw Kustomize metadata check is retained: direct kubectl apply would drop Argo tracking-id. The reviewed selected Deployment explicitly retains that existing ID, matching Argo ownership. Any unrelated drift, different UID, altered admission, unavailable protected backup capacity, uncertain backup, restore mismatch or unhealthy baseline stops the release.\n\n## Protected backup and release\n\nBefore **any** native source or offline-restored Store/admin open, use the attached stdlib SQLite mode=ro/query_only checker to require schema5, integrity=ok and count-only baseline. The admin automatically migrates oldschemas, so a post-open report alone cannot prove no migration. Refuse other schemas before admin. Then use the existing owner admin's SQLite backup API, not a raw copy of the live database/WAL. Protect directories0700/files0600, owned by10001. Retain independently protected off-cluster snapshot custody and only count/hash receipts. No database contents, caller tokens, requester Secret or runtime credential files enter Git, State Hub, logs or this packet. Native backup and offline real-data restore have not yet occurred. Use an isolated private disposable copy, networknone and no runtime config/token mounts, run the pre-open checker and exact offline `--entrypoint informed-decision-admin inspect --db /restore/review.sqlite` after it passes, comparing frozen snapshot counts without service startup, then clean only the disposable restored copy. Retain the original snapshot. The attached protocol binds case-specific paths and fail-closed capacity/custody checks.\n\nRefresh a consistent online snapshot immediately before image-only cutover. This protocol does not assert traffic/dispatcher quiescence. Current and candidate share schema5 and unchanged store code; rollback retains the latest live database and all new/uncertain evidence. Stop the old writer before the new one with existing Recreate and single-writer lock. Do not restore an older snapshot over later writes, discard unresolved external effects, scale other workloads, change policies/identity/custody, or create human dispositions to make checks green.\n\nPin the existing Application to the exact owner commit containing the approved candidate source hashes, and manually sync only Deployment/informed-decision with prune=false. Verify actualimage/module/mode/UID, health/readiness and installed purpose refusals on the real placement; explicitly distinguish synthetic-transport checks from actual provider evidence. Existing native binding/lifecycle behavior must remain available. If unhealthy or verification fails, return Application source to7db8485 and scoped-sync prior same-schema image7f5c, preserving current evidence database; retain failed outcomes. Any data recovery beyond this same-schema image rollback is a separate founder decision.\n\n## Alternatives and estimates\n\nProceed with this narrow release plus explicit inherited-medium follow-through, or defer and prepare a separate base/dependency refresh before any release. No additional recurring hosting is proposed: estimated incremental infrastructure EUR0, with private storage and attended engineering/recovery time unpriced. Risks include a brief Recreate interruption, private backup custody errors, caller refusal when advisory responses were improperly treated as binding, and the disclosed inherited finding. This decision does not promote agent autonomy or grant unrelated work.\n\n## Independent review refinements\n\nThe initial36path/20document packet at manifest7c6738b3 and submissionac41c8ae is preserved in source preparation evidence, with the failed/conditional review. Independent Platform review identified admin auto-migration, optimization bypass, and actual same-name ConfigMap/PVC replacement gaps. The amended packet adds pre-open stdlib read-only schema/integrity/count gates, explicit local/remote optimization refusal, and independently sealed actual native config/PVC custody checks. These are refinements in the same proposal/trial, with no original or amended founder approval claimed.\n" + }, + { + "item_id": "proposal-json", + "media_type": "application/json", + "content": "{\n \"proposal_id\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"trial_id\": \"infd-purpose-20261011-r1\",\n \"state\": \"prepared-unapproved\",\n \"target\": \"realm:kubernetes/railiance01/informed-decision\",\n \"authority\": \"ADMINISTER; activation APPROVED only upon exact founder disposition\",\n \"candidate_image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"published_source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"prior_image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"prior_argo_revision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"native_object\": {\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"namespace\": \"informed-decision\",\n \"name\": \"informed-decision\",\n \"uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\"\n },\n \"argo_application_uid\": \"499868f2-eabc-4df4-ae31-b89ce58d750d\",\n \"source_gate\": \"Exact committed owner source must contain the two approved candidate file hashes in preflight-inputs.json; source preparation is not native approval\",\n \"sync_scope\": [\n \"apps:Deployment:informed-decision\"\n ],\n \"prune\": false,\n \"automated_sync\": false,\n \"runtime_configmap\": \"informed-decision-runtime-6c221878d051\",\n \"schema\": 5,\n \"requested_operations\": [\n \"Protected SQLite-consistent native backup and independently protected off-cluster custody\",\n \"Offline restore/integrity/count comparison on a private disposable volume with exact candidate, no runtime tokens/config/network\",\n \"Refresh a consistent pre-cutover snapshot, retain private copies and count-only/hash receipts\",\n \"Pin existing manual Argo Application to exact approved owner source and manually sync only existing Deployment image\",\n \"Verify health/readiness/image/module/installed fail-closed purpose checks and retained schema/count evidence; recover to prior same-schema image if needed\"\n ],\n \"execute_by\": \"2026-10-12T23:59:59Z\",\n \"temporary_vulnerability_review_due\": \"2026-10-18\",\n \"known_scan_findings\": \"0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, actual currentbase+candidate findings identical\",\n \"vulnerability_record\": \"INFD-RISK-20261011-ZLIB-85091 / INFD-WP-0009-T05\",\n \"cost_estimate_EUR\": 0,\n \"cost_limits\": \"No new recurring infrastructure; private backup storage and attended engineering/recovery time unpriced, not an autopilot cost grant\",\n \"risk_estimates\": [\n \"Brief Recreate service interruption; no concurrent new writer/surge\",\n \"Private evidence snapshot custody and disposal errors; no snapshots/tokens in public evidence\",\n \"Candidate purpose refusal may expose callers relying on advisory results as binding\",\n \"Inherited known fixable MEDIUM remains until separately approved owner remediation\",\n \"Existing Argo OutOfSync baseline is retained; no whole-app sync or unrelated repairs permitted\"\n ],\n \"rollback\": \"Manual Argo source pin back to7db8485 and scoped Deployment-only sync to7f5c image; retain current schema5 database and all post-cutover evidence, never restore older snapshot over live writes\",\n \"native_executed\": false,\n \"human_approval\": false,\n \"refinement_of_manifest\": \"7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300\",\n \"mandatory_pre_open_gate\": \"stdlibSQLite mode=ro/query_only: schema5+integrity+count baseline before ANY Store/admin on native source or restoredcopy; refuseoldschemas without migration\",\n \"optimized_interpreters\": \"local+remote explicitlyrefused beforeassert gates\",\n \"native_dependency_gate\": \"sealed actualCM UID/immutable/canonicaldatahash+PVC UID/fullspec/Bound/volumeName, no rawCMdata orSecret reads\",\n \"live_counts\": \"Frozen snapshot/clone exactcounter equality; postcutover/rollback livecounterchanges may reflect legitimate concurrentcommits/state transitions, latestDB alwaysretained\"\n}\n" + }, + { + "item_id": "candidate-admission-json", + "media_type": "application/json", + "content": "{\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"policy\": {\n \"origin\": \"http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080\",\n \"package\": \"informed-decision.compact-sitting\",\n \"version\": \"v13\",\n \"package_digest\": \"sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873\",\n \"pod_name\": \"flex-auth-informed-decision-sitting\"\n },\n \"keycape_egress_ips\": [\n \"92.205.62.239\"\n ],\n \"storage_class\": \"local-path\",\n \"ordinary_approval_ids\": [\n \"2ce76d7f-01c3-4b63-8476-8d1230679769\",\n \"c2af4bcf-15b4-4305-aac1-acc7e4dcb099\",\n \"dc22666a-d5d7-46bc-9490-ebe9fe09dc38\"\n ],\n \"lifecycle_policy\": {\n \"package\": \"informed-decision.lifecycle\",\n \"version\": \"v2\",\n \"package_digest\": \"sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c\",\n \"origin\": \"http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080\",\n \"pod_name\": \"flex-auth-informed-decision-lifecycle\"\n },\n \"lifecycle_delivery\": true,\n \"intake_attributes\": true,\n \"intake_delivery\": {\n \"hub_origin\": \"http://state-hub.state-hub.svc.cluster.local:8000\"\n },\n \"workload_api\": {\n \"registries_configmap\": \"informed-decision-workload-registry\",\n \"peers\": [\n {\n \"namespace\": \"state-hub\",\n \"app\": \"state-hub\"\n }\n ],\n \"api_egress\": [\n {\n \"ip\": \"10.43.0.1\",\n \"port\": 443\n },\n {\n \"ip\": \"92.205.62.239\",\n \"port\": 6443\n }\n ],\n \"intake\": true,\n \"lifecycle\": true\n }\n}\n" + }, + { + "item_id": "rollback-admission-json", + "media_type": "application/json", + "content": "{\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"policy\": {\n \"origin\": \"http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080\",\n \"package\": \"informed-decision.compact-sitting\",\n \"version\": \"v13\",\n \"package_digest\": \"sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873\",\n \"pod_name\": \"flex-auth-informed-decision-sitting\"\n },\n \"keycape_egress_ips\": [\n \"92.205.62.239\"\n ],\n \"storage_class\": \"local-path\",\n \"ordinary_approval_ids\": [\n \"2ce76d7f-01c3-4b63-8476-8d1230679769\",\n \"c2af4bcf-15b4-4305-aac1-acc7e4dcb099\",\n \"dc22666a-d5d7-46bc-9490-ebe9fe09dc38\"\n ],\n \"lifecycle_policy\": {\n \"package\": \"informed-decision.lifecycle\",\n \"version\": \"v2\",\n \"package_digest\": \"sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c\",\n \"origin\": \"http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080\",\n \"pod_name\": \"flex-auth-informed-decision-lifecycle\"\n },\n \"lifecycle_delivery\": true,\n \"intake_attributes\": true,\n \"intake_delivery\": {\n \"hub_origin\": \"http://state-hub.state-hub.svc.cluster.local:8000\"\n },\n \"workload_api\": {\n \"registries_configmap\": \"informed-decision-workload-registry\",\n \"peers\": [\n {\n \"namespace\": \"state-hub\",\n \"app\": \"state-hub\"\n }\n ],\n \"api_egress\": [\n {\n \"ip\": \"10.43.0.1\",\n \"port\": 443\n },\n {\n \"ip\": \"92.205.62.239\",\n \"port\": 6443\n }\n ],\n \"intake\": true,\n \"lifecycle\": true\n }\n}\n" + }, + { + "item_id": "candidate-deployment-json", + "media_type": "application/json", + "content": "{\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\",\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:apps/Deployment:informed-decision/informed-decision\"\n },\n \"name\": \"informed-decision\",\n \"namespace\": \"informed-decision\"\n },\n \"spec\": {\n \"progressDeadlineSeconds\": 600,\n \"replicas\": 1,\n \"selector\": {\n \"matchLabels\": {\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"strategy\": {\n \"type\": \"Recreate\"\n },\n \"template\": {\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"labels\": {\n \"app.kubernetes.io/component\": \"review\",\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"spec\": {\n \"automountServiceAccountToken\": false,\n \"containers\": [\n {\n \"env\": [\n {\n \"name\": \"INFD_KEYCAPE_ISSUER\",\n \"value\": \"https://kc.coulomb.social\"\n },\n {\n \"name\": \"INFD_CONTAINER_CONFIG\",\n \"value\": \"/configuration/runtime.json\"\n }\n ],\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"livenessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"name\": \"informed-decision\",\n \"ports\": [\n {\n \"containerPort\": 8080,\n \"name\": \"http\"\n },\n {\n \"containerPort\": 8081,\n \"name\": \"workload\"\n }\n ],\n \"readinessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"resources\": {\n \"limits\": {\n \"cpu\": \"500m\",\n \"memory\": \"256Mi\"\n },\n \"requests\": {\n \"cpu\": \"5m\",\n \"memory\": \"64Mi\"\n }\n },\n \"securityContext\": {\n \"allowPrivilegeEscalation\": false,\n \"capabilities\": {\n \"drop\": [\n \"ALL\"\n ]\n },\n \"readOnlyRootFilesystem\": true\n },\n \"startupProbe\": {\n \"failureThreshold\": 12,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"volumeMounts\": [\n {\n \"mountPath\": \"/data\",\n \"name\": \"data\"\n },\n {\n \"mountPath\": \"/run/informed-decision\",\n \"name\": \"runtime\"\n },\n {\n \"mountPath\": \"/tmp\",\n \"name\": \"tmp\"\n },\n {\n \"mountPath\": \"/configuration\",\n \"name\": \"configuration\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/policy\",\n \"name\": \"caller\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/audit\",\n \"name\": \"audit\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/kubernetes\",\n \"name\": \"kubernetes-api\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/workload-registry\",\n \"name\": \"workload-registry\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/requester\",\n \"name\": \"sitting-requester\",\n \"readOnly\": true\n }\n ]\n }\n ],\n \"securityContext\": {\n \"fsGroup\": 10001,\n \"fsGroupChangePolicy\": \"OnRootMismatch\",\n \"runAsGroup\": 10001,\n \"runAsNonRoot\": true,\n \"runAsUser\": 10001,\n \"seccompProfile\": {\n \"type\": \"RuntimeDefault\"\n }\n },\n \"serviceAccountName\": \"review\",\n \"terminationGracePeriodSeconds\": 45,\n \"volumes\": [\n {\n \"name\": \"data\",\n \"persistentVolumeClaim\": {\n \"claimName\": \"informed-decision-data\"\n }\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"runtime\"\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"tmp\"\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-runtime-6c221878d051\"\n },\n \"name\": \"configuration\"\n },\n {\n \"name\": \"caller\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"audience\": \"flex-auth\",\n \"expirationSeconds\": 3600,\n \"path\": \"token\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"audit\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"token\",\n \"path\": \"token\"\n }\n ],\n \"secretName\": \"informed-decision-audit\"\n }\n },\n {\n \"name\": \"kubernetes-api\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"expirationSeconds\": 600,\n \"path\": \"token\"\n }\n },\n {\n \"configMap\": {\n \"items\": [\n {\n \"key\": \"ca.crt\",\n \"path\": \"ca.crt\"\n }\n ],\n \"name\": \"kube-root-ca.crt\"\n }\n }\n ]\n }\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-workload-registry\"\n },\n \"name\": \"workload-registry\"\n },\n {\n \"name\": \"sitting-requester\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"client-secret\",\n \"path\": \"client-secret\"\n }\n ],\n \"optional\": false,\n \"secretName\": \"informed-decision-sitting-requester\"\n }\n }\n ]\n }\n }\n }\n}\n" + }, + { + "item_id": "rollback-deployment-json", + "media_type": "application/json", + "content": "{\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\",\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:apps/Deployment:informed-decision/informed-decision\"\n },\n \"name\": \"informed-decision\",\n \"namespace\": \"informed-decision\"\n },\n \"spec\": {\n \"progressDeadlineSeconds\": 600,\n \"replicas\": 1,\n \"selector\": {\n \"matchLabels\": {\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"strategy\": {\n \"type\": \"Recreate\"\n },\n \"template\": {\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"labels\": {\n \"app.kubernetes.io/component\": \"review\",\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"spec\": {\n \"automountServiceAccountToken\": false,\n \"containers\": [\n {\n \"env\": [\n {\n \"name\": \"INFD_KEYCAPE_ISSUER\",\n \"value\": \"https://kc.coulomb.social\"\n },\n {\n \"name\": \"INFD_CONTAINER_CONFIG\",\n \"value\": \"/configuration/runtime.json\"\n }\n ],\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"livenessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"name\": \"informed-decision\",\n \"ports\": [\n {\n \"containerPort\": 8080,\n \"name\": \"http\"\n },\n {\n \"containerPort\": 8081,\n \"name\": \"workload\"\n }\n ],\n \"readinessProbe\": {\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"resources\": {\n \"limits\": {\n \"cpu\": \"500m\",\n \"memory\": \"256Mi\"\n },\n \"requests\": {\n \"cpu\": \"5m\",\n \"memory\": \"64Mi\"\n }\n },\n \"securityContext\": {\n \"allowPrivilegeEscalation\": false,\n \"capabilities\": {\n \"drop\": [\n \"ALL\"\n ]\n },\n \"readOnlyRootFilesystem\": true\n },\n \"startupProbe\": {\n \"failureThreshold\": 12,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\"\n },\n \"periodSeconds\": 10,\n \"timeoutSeconds\": 2\n },\n \"volumeMounts\": [\n {\n \"mountPath\": \"/data\",\n \"name\": \"data\"\n },\n {\n \"mountPath\": \"/run/informed-decision\",\n \"name\": \"runtime\"\n },\n {\n \"mountPath\": \"/tmp\",\n \"name\": \"tmp\"\n },\n {\n \"mountPath\": \"/configuration\",\n \"name\": \"configuration\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/policy\",\n \"name\": \"caller\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/audit\",\n \"name\": \"audit\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/kubernetes\",\n \"name\": \"kubernetes-api\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/workload-registry\",\n \"name\": \"workload-registry\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/requester\",\n \"name\": \"sitting-requester\",\n \"readOnly\": true\n }\n ]\n }\n ],\n \"securityContext\": {\n \"fsGroup\": 10001,\n \"fsGroupChangePolicy\": \"OnRootMismatch\",\n \"runAsGroup\": 10001,\n \"runAsNonRoot\": true,\n \"runAsUser\": 10001,\n \"seccompProfile\": {\n \"type\": \"RuntimeDefault\"\n }\n },\n \"serviceAccountName\": \"review\",\n \"terminationGracePeriodSeconds\": 45,\n \"volumes\": [\n {\n \"name\": \"data\",\n \"persistentVolumeClaim\": {\n \"claimName\": \"informed-decision-data\"\n }\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"runtime\"\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"tmp\"\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-runtime-6c221878d051\"\n },\n \"name\": \"configuration\"\n },\n {\n \"name\": \"caller\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"audience\": \"flex-auth\",\n \"expirationSeconds\": 3600,\n \"path\": \"token\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"audit\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"token\",\n \"path\": \"token\"\n }\n ],\n \"secretName\": \"informed-decision-audit\"\n }\n },\n {\n \"name\": \"kubernetes-api\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"expirationSeconds\": 600,\n \"path\": \"token\"\n }\n },\n {\n \"configMap\": {\n \"items\": [\n {\n \"key\": \"ca.crt\",\n \"path\": \"ca.crt\"\n }\n ],\n \"name\": \"kube-root-ca.crt\"\n }\n }\n ]\n }\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-workload-registry\"\n },\n \"name\": \"workload-registry\"\n },\n {\n \"name\": \"sitting-requester\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"client-secret\",\n \"path\": \"client-secret\"\n }\n ],\n \"optional\": false,\n \"secretName\": \"informed-decision-sitting-requester\"\n }\n }\n ]\n }\n }\n }\n}\n" + }, + { + "item_id": "published-verification-json", + "media_type": "application/json", + "content": "{\n \"proposal\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"observed_at\": \"2026-10-11T01:24:01.985128+00:00\",\n \"native_owner_publication_job\": {\n \"id\": 11484,\n \"name\": \"publish-candidate\",\n \"head_branch\": \"main\",\n \"head_sha\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"run_number\": 3,\n \"event\": \"push\",\n \"display_title\": \"Prepare readable overlay context with the admitted legacy builder\",\n \"status\": \"success\",\n \"workflow_id\": \"purpose-overlay-image.yaml\",\n \"url\": \"https://forgejo.coulomb.social/coulomb/informed-decision/actions/runs/3\",\n \"created_at\": \"2026-10-11T01:20:59Z\",\n \"updated_at\": \"2026-10-11T01:21:08Z\",\n \"run_started_at\": \"2026-10-11T01:20:59Z\"\n },\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"policy_sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\",\n \"registry_proof_sha256\": \"5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213\",\n \"source_render_change_only\": \"Deployment/informed-decision spec.template.spec.containers[0].image\",\n \"runtime_configmap_unchanged\": \"informed-decision-runtime-6c221878d051\",\n \"installed_image_execution\": {\n \"immutable_registry_artifact_pulled_anonymously\": true,\n \"UID\": 10001,\n \"GID\": 10001,\n \"policy_file_UID\": 0,\n \"policy_file_mode\": \"0644\",\n \"purpose_variants\": 10,\n \"binding_forms_allowed\": 2,\n \"advisory_or_malformed_refused\": 8,\n \"network\": \"none\",\n \"read_only\": true,\n \"synthetic_transport\": true,\n \"native_PDP_test\": false\n },\n \"scan_summary_sha256\": \"0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44\",\n \"historical_failed_runs_retained\": [\n \"f66de505/task11482/run1\",\n \"acecad887/task11483/run2\"\n ],\n \"native_hosting_changed\": false,\n \"native_backup_restore_executed\": false,\n \"human_approval\": false,\n \"evidence_file_sha256\": {\n \"image-manifest.json\": \"978c575d3c7bf0de39dbe4e9567c39cd36f70b7e55bc17357bdb03fb3b96b0fb\",\n \"image-config.json\": \"4ad7249c75fd9fc039ceb186772419e1cba5fd9759c404556459c80a2d285d10\",\n \"base-image-config.json\": \"b706c9209e324f39a86ffcda2a3e9d94c92649739ad5b21fe4611006e36f6f00\",\n \"registry-proof.json\": \"5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213\",\n \"trivy-full.json\": \"f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e\",\n \"sbom.cdx.json\": \"a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d\",\n \"base-trivy-full.json\": \"d44c555aecbb1a4518f4127d48015ea459325c93e8b0371910a55de47293ca80\",\n \"check_installed.py\": \"a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad\",\n \"verify_registry.py\": \"413f575c21a2bd18a3696f8f2d939eeadc52d76f282c42813f76bb0e3ee8a2a4\",\n \"sqlite_readonly.py\": \"eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38\",\n \"sealed-native-dependencies.json\": \"042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369\",\n \"review-refinement.json\": \"ea62845cee5ee6f4f6cb7f5dcd0af601ba29a21c8ff80efbbc02ad16e35bea75\",\n \"test_change_guard.py\": \"da5350437357ba329236cc137610c03856f38f836ddf2856025bc12011fad07f\",\n \"test_sqlite_readonly.py\": \"c7a91d0c6a373d738c88bb817d9bfb2ff8a179bc61b93063b89677b566520323\",\n \"test_preflight_optimization.py\": \"a0c4fa18c5d6c21476a06c6d05fe7656259d204299138851599e9214d911206d\"\n }\n}\n" + }, + { + "item_id": "registry-proof-json", + "media_type": "application/json", + "content": "{\n \"image_digest\": \"sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"base_image_digest\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"base_layer_bytes_identical\": true,\n \"layer_media_type_conversion\": \"OCI gzip to Docker gzip, same digest and size\",\n \"base_runtime_config_semantics_identical\": true,\n \"legacy_builder_config_additions\": {\n \"Hostname\": \"\",\n \"Domainname\": \"\",\n \"AttachStdin\": false,\n \"AttachStdout\": false,\n \"AttachStderr\": false,\n \"Tty\": false,\n \"OpenStdin\": false,\n \"StdinOnce\": false,\n \"Cmd\": null,\n \"Volumes\": null,\n \"OnBuild\": null,\n \"Image\": \"sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883\"\n },\n \"base_rootfs_prefix_identical\": true,\n \"overlay_regular_files\": [\n \"opt/venv/lib/python3.12/site-packages/informed_decision/policy.py\"\n ],\n \"overlay_directories\": [\n \"opt\",\n \"opt/venv\",\n \"opt/venv/lib\",\n \"opt/venv/lib/python3.12\",\n \"opt/venv/lib/python3.12/site-packages\",\n \"opt/venv/lib/python3.12/site-packages/informed_decision\"\n ],\n \"policy_sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\",\n \"policy_mode\": \"0644\",\n \"base_user\": \"10001:10001\",\n \"source_scope_labels\": {\n \"org.opencontainers.image.revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"org.opencontainers.image.base.digest\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"social.coulomb.source.policy.sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\",\n \"social.coulomb.release.scope\": \"INFD-WP-0009-T04/purpose-overlay-v1\"\n },\n \"registry_read_route\": \"anonymous public scoped bearer challenge, no token retention\",\n \"image_executed\": false,\n \"native_workload_changed\": false,\n \"native_backup_restore_executed\": false\n}\n" + }, + { + "item_id": "security-summary-json", + "media_type": "application/json", + "content": "{\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"source_revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"scanner\": \"aquasec/trivy@sha256:62b1e65e8869bc4b4c6aa4fa2b21595256c7c2f6018a9d9ad61caf87187c1969\",\n \"version\": \"0.74.0\",\n \"db_metadata\": {\n \"Version\": 2,\n \"NextUpdate\": \"2026-10-11T18:59:50.889010572Z\",\n \"UpdatedAt\": \"2026-10-10T18:59:50.889010923Z\",\n \"DownloadedAt\": \"2026-10-10T23:32:32.380033131Z\"\n },\n \"suppression\": false,\n \"ignore_unfixed\": false,\n \"severity_filter\": null,\n \"package_count\": 44,\n \"findings_by_severity\": {\n \"MEDIUM\": 1\n },\n \"findings\": [\n {\n \"id\": \"CVE-2026-85091\",\n \"package\": \"zlib\",\n \"installed\": \"1.3.2-r0\",\n \"fixed\": \"1.3.2-r1\",\n \"severity\": \"MEDIUM\"\n }\n ],\n \"coverage_limits\": [\n \"Alpine3.24 absent scanner EOL list; OS detector ran against Alpine3.24 repository on38OS packages\",\n \"Known findings asof pinnedDB, not claim absence of unknown vulnerabilities\"\n ],\n \"high_critical\": 0,\n \"same_scanner_actual_base_scan_findings_identical\": true,\n \"base_scan_file\": \"base-trivy-full.json\"\n}\n" + }, + { + "item_id": "trivy-full-json", + "media_type": "application/json", + "content": "{\n \"SchemaVersion\": 2,\n \"Trivy\": {\n \"Version\": \"0.74.0\"\n },\n \"ReportID\": \"01a1288d-8df1-73fb-9313-3642dd64ba72\",\n \"CreatedAt\": \"2026-10-11T01:22:07.985264404Z\",\n \"ArtifactID\": \"sha256:40f873b8d6345341e2f661a5038c092d186e2831dc60b61704a419a1f4f77ef6\",\n \"ArtifactName\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"ArtifactType\": \"container_image\",\n \"Metadata\": {\n \"Size\": 88258048,\n \"OS\": {\n \"Family\": \"alpine\",\n \"Name\": \"3.24.1\"\n },\n \"ImageID\": \"sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779\",\n \"DiffIDs\": [\n \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\",\n \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\",\n \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\",\n \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\",\n \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\",\n \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\",\n \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\",\n \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\",\n \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n ],\n \"RepoDigests\": [\n \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\"\n ],\n \"Reference\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"ImageConfig\": {\n \"architecture\": \"amd64\",\n \"created\": \"2026-10-11T01:21:04.787527697Z\",\n \"docker_version\": \"27.5.1\",\n \"history\": [\n {\n \"created\": \"2026-06-16T00:01:29.967161902Z\",\n \"created_by\": \"ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-06-16T00:01:29.967161902Z\",\n \"created_by\": \"CMD [\\\"/bin/sh\\\"]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV LANG=C.UTF-8\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"RUN /bin/sh -c set -eux; \\tapk add --no-cache \\t\\tca-certificates \\t\\ttzdata \\t; # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV PYTHON_VERSION=3.12.14\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:05:24.224544843Z\",\n \"created_by\": \"ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-01T00:10:30.672225972Z\",\n \"created_by\": \"RUN /bin/sh -c set -eux; \\t\\tapk add --no-cache --virtual .build-deps \\t\\tbluez-dev \\t\\tbzip2-dev \\t\\tdpkg-dev dpkg \\t\\tfindutils \\t\\tg++ \\t\\tgcc \\t\\tgdbm-dev \\t\\tgnupg \\t\\tlibc-dev \\t\\tlibffi-dev \\t\\tlibnsl-dev \\t\\tlibtirpc-dev \\t\\tlinux-headers \\t\\tmake \\t\\tncurses-dev \\t\\topenssl-dev \\t\\tpax-utils \\t\\treadline-dev \\t\\tsqlite-dev \\t\\ttar \\t\\ttcl-dev \\t\\ttk \\t\\ttk-dev \\t\\tutil-linux-dev \\t\\txz \\t\\txz-dev \\t\\tzlib-dev \\t; \\t\\twget -O python.tar.xz \\\"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\\\"; \\techo \\\"$PYTHON_SHA256 *python.tar.xz\\\" | sha256sum -c -; \\twget -O python.tar.xz.asc \\\"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\\\"; \\tGNUPGHOME=\\\"$(mktemp -d)\\\"; export GNUPGHOME; \\tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \\\"$GPG_KEY\\\"; \\tgpg --batch --verify python.tar.xz.asc python.tar.xz; \\tgpgconf --kill all; \\trm -rf \\\"$GNUPGHOME\\\" python.tar.xz.asc; \\tmkdir -p /usr/src/python; \\ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \\trm python.tar.xz; \\t\\tcd /usr/src/python; \\tgnuArch=\\\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\\\"; \\t./configure \\t\\t--build=\\\"$gnuArch\\\" \\t\\t--enable-loadable-sqlite-extensions \\t\\t--enable-option-checking=fatal \\t\\t--enable-shared \\t\\t$(test \\\"${gnuArch%%-*}\\\" != 'riscv64' \\u0026\\u0026 echo '--with-lto') \\t\\t--with-ensurepip \\t; \\tnproc=\\\"$(nproc)\\\"; \\tEXTRA_CFLAGS=\\\"-DTHREAD_STACK_SIZE=0x100000\\\"; \\tLDFLAGS=\\\"${LDFLAGS:-} -Wl,--strip-all\\\"; \\tarch=\\\"$(apk --print-arch)\\\"; \\tcase \\\"$arch\\\" in \\t\\tx86_64|aarch64) \\t\\t\\tEXTRA_CFLAGS=\\\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\\\"; \\t\\t\\t;; \\t\\tx86) \\t\\t\\t;; \\t\\t*) \\t\\t\\tEXTRA_CFLAGS=\\\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\\\"; \\t\\t\\t;; \\tesac; \\tmake -j \\\"$nproc\\\" \\t\\t\\\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\\\" \\t\\t\\\"LDFLAGS=${LDFLAGS:-}\\\" \\t; \\trm python; \\tmake -j \\\"$nproc\\\" \\t\\t\\\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\\\" \\t\\t\\\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\\\$\\\\$ORIGIN/../lib'\\\" \\t\\tpython \\t; \\tmake install; \\t\\tcd /; \\trm -rf /usr/src/python; \\t\\tfind /usr/local -depth \\t\\t\\\\( \\t\\t\\t\\\\( -type d -a \\\\( -name test -o -name tests -o -name idle_test \\\\) \\\\) \\t\\t\\t-o \\\\( -type f -a \\\\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\\\) \\\\) \\t\\t\\\\) -exec rm -rf '{}' + \\t; \\t\\tfind /usr/local -type f -executable -not \\\\( -name '*tkinter*' \\\\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \\t\\t| tr ',' '\\\\n' \\t\\t| sort -u \\t\\t| awk 'system(\\\"[ -e /usr/local/lib/\\\" $1 \\\" ]\\\") == 0 { next } { print \\\"so:\\\" $1 }' \\t\\t| xargs -rt apk add --no-network --virtual .python-rundeps \\t; \\tapk del --no-network .build-deps; \\t\\texport PYTHONDONTWRITEBYTECODE=1; \\tpython3 --version; \\tpip3 --version # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-09-01T00:10:30.782726003Z\",\n \"created_by\": \"RUN /bin/sh -c set -eux; \\tfor src in idle3 pip3 pydoc3 python3 python3-config; do \\t\\tdst=\\\"$(echo \\\"$src\\\" | tr -d 3)\\\"; \\t\\t[ -s \\\"/usr/local/bin/$src\\\" ]; \\t\\t[ ! -e \\\"/usr/local/bin/$dst\\\" ]; \\t\\tln -svT \\\"$src\\\" \\\"/usr/local/bin/$dst\\\"; \\tdone # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-09-01T00:10:30.782726003Z\",\n \"created_by\": \"CMD [\\\"python3\\\"]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-11T00:49:47.962156876+02:00\",\n \"created_by\": \"ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-09-11T00:49:47.962156876+02:00\",\n \"created_by\": \"RUN /bin/sh -c apk add --no-cache 'libuuid\\u003e=2.42.3-r1' \\u0026\\u0026 addgroup -S -g 10001 informed \\u0026\\u0026 adduser -S -u 10001 -G informed -H informed # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:55.351944978+02:00\",\n \"created_by\": \"COPY /opt/venv /opt/venv # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:56.462092072+02:00\",\n \"created_by\": \"RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"WORKDIR /app\",\n \"comment\": \"buildkit.dockerfile.v0\"\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"USER 10001:10001\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"EXPOSE [8080/tcp 8081/tcp]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-05T01:03:56.675216821+02:00\",\n \"created_by\": \"ENTRYPOINT [\\\"informed-decision-container\\\"]\",\n \"comment\": \"buildkit.dockerfile.v0\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-11T01:15:11.991443676Z\",\n \"created_by\": \"/bin/sh -c #(nop) ARG SOURCE_REVISION\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-11T01:21:04.716126392Z\",\n \"created_by\": \"/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168 org.opencontainers.image.base.digest=sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 social.coulomb.source.policy.sha256=9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 social.coulomb.release.scope=INFD-WP-0009-T04/purpose-overlay-v1\",\n \"empty_layer\": true\n },\n {\n \"created\": \"2026-10-11T01:21:04.787527697Z\",\n \"created_by\": \"/bin/sh -c #(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py \"\n }\n ],\n \"os\": \"linux\",\n \"rootfs\": {\n \"type\": \"layers\",\n \"diff_ids\": [\n \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\",\n \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\",\n \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\",\n \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\",\n \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\",\n \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\",\n \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\",\n \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\",\n \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n ]\n },\n \"config\": {\n \"Entrypoint\": [\n \"informed-decision-container\"\n ],\n \"Env\": [\n \"PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"LANG=C.UTF-8\",\n \"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305\",\n \"PYTHON_VERSION=3.12.14\",\n \"PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a\",\n \"PYTHONDONTWRITEBYTECODE=1\",\n \"PYTHONUNBUFFERED=1\"\n ],\n \"Image\": \"sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883\",\n \"Labels\": {\n \"org.opencontainers.image.base.digest\": \"sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"org.opencontainers.image.revision\": \"3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168\",\n \"social.coulomb.release.scope\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"social.coulomb.source.policy.sha256\": \"9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62\"\n },\n \"User\": \"10001:10001\",\n \"WorkingDir\": \"/app\",\n \"ExposedPorts\": {\n \"8080/tcp\": {},\n \"8081/tcp\": {}\n }\n }\n },\n \"Layers\": [\n {\n \"Size\": 8697856,\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n {\n \"Size\": 1538048,\n \"Digest\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\",\n \"DiffID\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n {\n \"Size\": 47150592,\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n {\n \"Size\": 5120,\n \"Digest\": \"sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b\",\n \"DiffID\": \"sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe\"\n },\n {\n \"Size\": 131584,\n \"Digest\": \"sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86\",\n \"DiffID\": \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\"\n },\n {\n \"Size\": 30705664,\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n {\n \"Size\": 12288,\n \"Digest\": \"sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f\",\n \"DiffID\": \"sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59\"\n },\n {\n \"Size\": 1536,\n \"Digest\": \"sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3\",\n \"DiffID\": \"sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02\"\n },\n {\n \"Size\": 15360,\n \"Digest\": \"sha256:cfee29c2f8119d2a39714ecbe5095a2dc1c986054f2e1fe0a6565163242417e3\",\n \"DiffID\": \"sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3\"\n }\n ]\n },\n \"Results\": [\n {\n \"Target\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a (alpine 3.24.1)\",\n \"Class\": \"os-pkgs\",\n \"Type\": \"alpine\",\n \"Packages\": [\n {\n \"ID\": \".python-rundeps@20260901.001029\",\n \"Name\": \".python-rundeps\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch\\u0026distro=3.24.1\",\n \"UID\": \"4e26c99fecac1e97\"\n },\n \"Version\": \"20260901.001029\",\n \"Arch\": \"noarch\",\n \"DependsOn\": [\n \"gdbm@1.26-r0\",\n \"libbz2@1.0.8-r6\",\n \"libcrypto3@3.5.8-r0\",\n \"libffi@3.5.2-r1\",\n \"libncursesw@6.6_p20260516-r0\",\n \"libnsl@2.0.1-r2\",\n \"libpanelw@6.6_p20260516-r0\",\n \"libssl3@3.5.8-r0\",\n \"libtirpc@1.3.5-r1\",\n \"libuuid@2.42.3-r1\",\n \"musl@1.2.6-r2\",\n \"readline@8.3.3-r1\",\n \"sqlite-libs@3.53.4-r0\",\n \"xz-libs@5.8.3-r0\",\n \"zlib@1.3.2-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:51d0c1e7d88a414345799f0309185c625013ef32\",\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-baselayout@3.7.2-r1\",\n \"Name\": \"alpine-baselayout\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1b9c543300f8073e\"\n },\n \"Version\": \"3.7.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-baselayout\",\n \"SrcVersion\": \"3.7.2-r1\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"alpine-baselayout-data@3.7.2-r1\",\n \"busybox-binsh@1.37.0-r31\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:f0fcfdc2f4da058af6473bc45c4eab62916225b2\",\n \"InstalledFiles\": [\n \"etc/motd\",\n \"etc/crontabs/root\",\n \"etc/modprobe.d/aliases.conf\",\n \"etc/modprobe.d/blacklist.conf\",\n \"etc/modprobe.d/i386.conf\",\n \"etc/profile.d/20locale.sh\",\n \"etc/profile.d/README\",\n \"etc/profile.d/color_prompt.sh.disabled\",\n \"usr/lib/sysctl.d/00-alpine.conf\",\n \"var/lock\",\n \"var/run\",\n \"var/spool/mail\",\n \"var/spool/cron/crontabs\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-baselayout-data@3.7.2-r1\",\n \"Name\": \"alpine-baselayout-data\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"fcc3cd90122d8aa7\"\n },\n \"Version\": \"3.7.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-baselayout\",\n \"SrcVersion\": \"3.7.2-r1\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508\",\n \"InstalledFiles\": [\n \"etc/fstab\",\n \"etc/group\",\n \"etc/hostname\",\n \"etc/hosts\",\n \"etc/inittab\",\n \"etc/modules\",\n \"etc/mtab\",\n \"etc/nsswitch.conf\",\n \"etc/passwd\",\n \"etc/profile\",\n \"etc/protocols\",\n \"etc/services\",\n \"etc/shadow\",\n \"etc/shells\",\n \"etc/sysctl.conf\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-keys@2.6-r0\",\n \"Name\": \"alpine-keys\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"cb1f6c8fa74713e0\"\n },\n \"Version\": \"2.6-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-keys\",\n \"SrcVersion\": \"2.6-r0\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:d8d6b80e53c059a77e4915da78ba964f3ffea240\",\n \"InstalledFiles\": [\n \"etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub\",\n \"etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub\",\n \"usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub\",\n \"usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub\",\n \"usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub\",\n \"usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub\",\n \"usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub\",\n \"usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub\",\n \"usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub\",\n \"usr/share/apk/keys/loongarch64/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub\",\n \"usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub\",\n \"usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub\",\n \"usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub\",\n \"usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub\",\n \"usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub\",\n \"usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub\",\n \"usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub\",\n \"usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub\",\n \"usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub\",\n \"usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub\",\n \"usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub\",\n \"usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"alpine-release@3.24.1-r0\",\n \"Name\": \"alpine-release\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"6cfad6f36e1f31aa\"\n },\n \"Version\": \"3.24.1-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"alpine-base\",\n \"SrcVersion\": \"3.24.1-r0\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"alpine-keys@2.6-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:bc6912a25cdc7733e0035ed509eceaa4026946e3\",\n \"InstalledFiles\": [\n \"etc/alpine-release\",\n \"etc/issue\",\n \"etc/os-release\",\n \"etc/secfixes.d/alpine\",\n \"usr/lib/os-release\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"apk-tools@3.0.6-r0\",\n \"Name\": \"apk-tools\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"cb2633c883b17a04\"\n },\n \"Version\": \"3.0.6-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"apk-tools\",\n \"SrcVersion\": \"3.0.6-r0\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"ca-certificates-bundle@20260611-r0\",\n \"libapk@3.0.6-r0\",\n \"libcrypto3@3.5.8-r0\",\n \"musl@1.2.6-r2\",\n \"zlib@1.3.2-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:043333589798a1f52e09ae63f026c6c8fa676d34\",\n \"InstalledFiles\": [\n \"sbin/apk\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"busybox@1.37.0-r31\",\n \"Name\": \"busybox\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"771020c43c8440bf\"\n },\n \"Version\": \"1.37.0-r31\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"busybox\",\n \"SrcVersion\": \"1.37.0-r31\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"S\u00f6ren Tempel \\u003csoeren+alpine@soeren-tempel.net\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:b5405ebc02f7dd8be95b6265c54b243d5456ab8f\",\n \"InstalledFiles\": [\n \"bin/busybox\",\n \"etc/securetty\",\n \"etc/busybox-paths.d/busybox\",\n \"etc/logrotate.d/acpid\",\n \"etc/network/if-up.d/dad\",\n \"etc/udhcpc/udhcpc.conf\",\n \"usr/share/udhcpc/default.script\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"busybox-binsh@1.37.0-r31\",\n \"Name\": \"busybox-binsh\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1ec8a3d5d2b63297\"\n },\n \"Version\": \"1.37.0-r31\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"busybox\",\n \"SrcVersion\": \"1.37.0-r31\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"S\u00f6ren Tempel \\u003csoeren+alpine@soeren-tempel.net\\u003e\",\n \"DependsOn\": [\n \"busybox@1.37.0-r31\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7\",\n \"InstalledFiles\": [\n \"bin/sh\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ca-certificates@20260611-r0\",\n \"Name\": \"ca-certificates\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"2a3c316ee83c6198\"\n },\n \"Version\": \"20260611-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ca-certificates\",\n \"SrcVersion\": \"20260611-r0\",\n \"Licenses\": [\n \"MPL-2.0\",\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"busybox-binsh@1.37.0-r31\",\n \"libcrypto3@3.5.8-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\",\n \"DiffID\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n \"Digest\": \"sha1:8f2a04abeb54b331e2970a0a0dffb7bd6bdde567\",\n \"InstalledFiles\": [\n \"etc/ca-certificates.conf\",\n \"etc/apk/protected_paths.d/ca-certificates.list\",\n \"etc/ca-certificates/update.d/certhash\",\n \"usr/bin/c_rehash\",\n \"usr/sbin/update-ca-certificates\",\n \"usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt\",\n \"usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt\",\n \"usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt\",\n \"usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt\",\n \"usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt\",\n \"usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt\",\n \"usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.crt\",\n \"usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.crt\",\n \"usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt\",\n \"usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA1.crt\",\n \"usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA2.crt\",\n \"usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt\",\n \"usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt\",\n \"usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt\",\n \"usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt\",\n \"usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt\",\n \"usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_2_2023.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_2_2023.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt\",\n \"usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt\",\n \"usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt\",\n \"usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt\",\n \"usr/share/ca-certificates/mozilla/GTS_Root_R1.crt\",\n \"usr/share/ca-certificates/mozilla/GTS_Root_R3.crt\",\n \"usr/share/ca-certificates/mozilla/GTS_Root_R4.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt\",\n \"usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt\",\n \"usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt\",\n \"usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt\",\n \"usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt\",\n \"usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt\",\n \"usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt\",\n \"usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt\",\n \"usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt\",\n \"usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt\",\n \"usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt\",\n \"usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt\",\n \"usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt\",\n \"usr/share/ca-certificates/mozilla/Izenpe.com.crt\",\n \"usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt\",\n \"usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt\",\n \"usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt\",\n \"usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_F\u0151tan\u00fas\u00edtv\u00e1ny.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_Server_Root_ECC_G1.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_Server_Root_RSA_G1.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt\",\n \"usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt\",\n \"usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt\",\n \"usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt\",\n \"usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_TLS_ECC_Root_CA_2022.crt\",\n \"usr/share/ca-certificates/mozilla/SSL.com_TLS_RSA_Root_CA_2022.crt\",\n \"usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt\",\n \"usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_E46.crt\",\n \"usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_R46.crt\",\n \"usr/share/ca-certificates/mozilla/SecureSign_Root_CA14.crt\",\n \"usr/share/ca-certificates/mozilla/SecureSign_Root_CA15.crt\",\n \"usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt\",\n \"usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt\",\n \"usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt\",\n \"usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt\",\n \"usr/share/ca-certificates/mozilla/SwissSign_RSA_TLS_Root_CA_2022_-_1.crt\",\n \"usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt\",\n \"usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt\",\n \"usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt\",\n \"usr/share/ca-certificates/mozilla/TWCA_CYBER_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/Telekom_Security_TLS_ECC_Root_2020.crt\",\n \"usr/share/ca-certificates/mozilla/Telekom_Security_TLS_RSA_Root_2023.crt\",\n \"usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G3.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G4.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_TLS_ECC_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TrustAsia_TLS_RSA_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt\",\n \"usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt\",\n \"usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt\",\n \"usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt\",\n \"usr/share/ca-certificates/mozilla/e-Szigno_TLS_Root_CA_2023.crt\",\n \"usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt\",\n \"usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt\",\n \"usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt\",\n \"usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ca-certificates-bundle@20260611-r0\",\n \"Name\": \"ca-certificates-bundle\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"20337c2ea28bef28\"\n },\n \"Version\": \"20260611-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ca-certificates\",\n \"SrcVersion\": \"20260611-r0\",\n \"Licenses\": [\n \"MPL-2.0\",\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:c9534a03750bdfae341f10969016090fc11febbd\",\n \"InstalledFiles\": [\n \"etc/ssl/cert.pem\",\n \"etc/ssl/certs/ca-certificates.crt\",\n \"etc/ssl1.1/cert.pem\",\n \"etc/ssl1.1/certs\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"gdbm@1.26-r0\",\n \"Name\": \"gdbm\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"5eb1a3f86262ca77\"\n },\n \"Version\": \"1.26-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"gdbm\",\n \"SrcVersion\": \"1.26-r0\",\n \"Licenses\": [\n \"GPL-3.0-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:619493d8124fe49a8ee1d8f7a1372cf7e3977337\",\n \"InstalledFiles\": [\n \"usr/lib/libgdbm.so.6\",\n \"usr/lib/libgdbm.so.6.0.0\",\n \"usr/lib/libgdbm_compat.so.4\",\n \"usr/lib/libgdbm_compat.so.4.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"keyutils-libs@1.6.3-r4\",\n \"Name\": \"keyutils-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"a1a29120eb342032\"\n },\n \"Version\": \"1.6.3-r4\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"keyutils\",\n \"SrcVersion\": \"1.6.3-r4\",\n \"Licenses\": [\n \"GPL-2.0-or-later\",\n \"LGPL-2.0-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:b7331c96f077fc3522ee4361a441d1097204cd90\",\n \"InstalledFiles\": [\n \"usr/lib/libkeyutils.so.1\",\n \"usr/lib/libkeyutils.so.1.10\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"krb5-conf@1.0-r2\",\n \"Name\": \"krb5-conf\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e7cf94ba8b6dbc33\"\n },\n \"Version\": \"1.0-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"krb5-conf\",\n \"SrcVersion\": \"1.0-r2\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:40a11e0690a59e110367b62a80661024e9942a2d\",\n \"InstalledFiles\": [\n \"etc/krb5.conf\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"krb5-libs@1.22.2-r1\",\n \"Name\": \"krb5-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"958f8b4a4f087dac\"\n },\n \"Version\": \"1.22.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"krb5\",\n \"SrcVersion\": \"1.22.2-r1\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"keyutils-libs@1.6.3-r4\",\n \"krb5-conf@1.0-r2\",\n \"libcom_err@1.47.4-r0\",\n \"libcrypto3@3.5.8-r0\",\n \"libssl3@3.5.8-r0\",\n \"libverto@0.3.2-r2\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:ef02346e21b817ff379e4601e5b1fc9760e5e31a\",\n \"InstalledFiles\": [\n \"usr/lib/libgssapi_krb5.so.2\",\n \"usr/lib/libgssapi_krb5.so.2.2\",\n \"usr/lib/libgssrpc.so.4\",\n \"usr/lib/libgssrpc.so.4.2\",\n \"usr/lib/libk5crypto.so.3\",\n \"usr/lib/libk5crypto.so.3.1\",\n \"usr/lib/libkadm5clnt_mit.so.12\",\n \"usr/lib/libkadm5clnt_mit.so.12.0\",\n \"usr/lib/libkadm5srv_mit.so.12\",\n \"usr/lib/libkadm5srv_mit.so.12.0\",\n \"usr/lib/libkdb5.so.10\",\n \"usr/lib/libkdb5.so.10.0\",\n \"usr/lib/libkrad.so.0\",\n \"usr/lib/libkrad.so.0.0\",\n \"usr/lib/libkrb5.so.3\",\n \"usr/lib/libkrb5.so.3.3\",\n \"usr/lib/libkrb5support.so.0\",\n \"usr/lib/libkrb5support.so.0.1\",\n \"usr/lib/krb5/plugins/kdb/db2.so\",\n \"usr/lib/krb5/plugins/preauth/otp.so\",\n \"usr/lib/krb5/plugins/preauth/spake.so\",\n \"usr/lib/krb5/plugins/preauth/test.so\",\n \"usr/lib/krb5/plugins/tls/k5tls.so\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libapk@3.0.6-r0\",\n \"Name\": \"libapk\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"a35b8b9b3219513a\"\n },\n \"Version\": \"3.0.6-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"apk-tools\",\n \"SrcVersion\": \"3.0.6-r0\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"libcrypto3@3.5.8-r0\",\n \"libssl3@3.5.8-r0\",\n \"musl@1.2.6-r2\",\n \"zlib@1.3.2-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:523a8f58104589f74f743d501c81bf6517155378\",\n \"InstalledFiles\": [\n \"usr/lib/libapk.so.3.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libbz2@1.0.8-r6\",\n \"Name\": \"libbz2\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"48e17539404e2d56\"\n },\n \"Version\": \"1.0.8-r6\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"bzip2\",\n \"SrcVersion\": \"1.0.8-r6\",\n \"Licenses\": [\n \"bzip-2-1.0.6\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:08566ba5c7af97c25474be8b24e8b48f0116b67d\",\n \"InstalledFiles\": [\n \"usr/lib/libbz2.so.1\",\n \"usr/lib/libbz2.so.1.0.8\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libcom_err@1.47.4-r0\",\n \"Name\": \"libcom_err\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"3fc35a3f66d192af\"\n },\n \"Version\": \"1.47.4-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"e2fsprogs\",\n \"SrcVersion\": \"1.47.4-r0\",\n \"Licenses\": [\n \"GPL-2.0-or-later\",\n \"LGPL-2.0-or-later\",\n \"BSD-3-Clause\",\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef\",\n \"InstalledFiles\": [\n \"usr/lib/libcom_err.so.2\",\n \"usr/lib/libcom_err.so.2.1\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libcrypto3@3.5.8-r0\",\n \"Name\": \"libcrypto3\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"4299bba2ba9c96aa\"\n },\n \"Version\": \"3.5.8-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"openssl\",\n \"SrcVersion\": \"3.5.8-r0\",\n \"Licenses\": [\n \"Apache-2.0\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3\",\n \"InstalledFiles\": [\n \"etc/ssl/ct_log_list.cnf\",\n \"etc/ssl/ct_log_list.cnf.dist\",\n \"etc/ssl/openssl.cnf\",\n \"etc/ssl/openssl.cnf.dist\",\n \"usr/lib/libcrypto.so.3\",\n \"usr/lib/engines-3/afalg.so\",\n \"usr/lib/engines-3/capi.so\",\n \"usr/lib/engines-3/loader_attic.so\",\n \"usr/lib/engines-3/padlock.so\",\n \"usr/lib/ossl-modules/legacy.so\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libffi@3.5.2-r1\",\n \"Name\": \"libffi\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"d3eaa921287b1ccd\"\n },\n \"Version\": \"3.5.2-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libffi\",\n \"SrcVersion\": \"3.5.2-r1\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a\",\n \"InstalledFiles\": [\n \"usr/lib/libffi.so.8\",\n \"usr/lib/libffi.so.8.2.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libintl@1.0-r0\",\n \"Name\": \"libintl\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libintl@1.0-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"25c18808d8fc87e0\"\n },\n \"Version\": \"1.0-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"gettext\",\n \"SrcVersion\": \"1.0-r0\",\n \"Licenses\": [\n \"LGPL-2.1-or-later\"\n ],\n \"Maintainer\": \"Carlo Landmeter \\u003cclandmeter@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:282d6642ccac87237e43a864159d73cf5abe7550\",\n \"InstalledFiles\": [\n \"usr/lib/libintl.so.8\",\n \"usr/lib/libintl.so.8.4.6\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libncursesw@6.6_p20260516-r0\",\n \"Name\": \"libncursesw\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e8939f45e2191bcc\"\n },\n \"Version\": \"6.6_p20260516-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ncurses\",\n \"SrcVersion\": \"6.6_p20260516-r0\",\n \"Licenses\": [\n \"X-11\"\n ],\n \"Maintainer\": \"Milan P. Stani\u0107 \\u003cmps@arvanta.net\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\",\n \"ncurses-terminfo-base@6.6_p20260516-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:9f318e6e324d6827274829194cf6ac6afbaded12\",\n \"InstalledFiles\": [\n \"usr/lib/libncursesw.so.6\",\n \"usr/lib/libncursesw.so.6.6\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libnsl@2.0.1-r2\",\n \"Name\": \"libnsl\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"3d893c60d41da67b\"\n },\n \"Version\": \"2.0.1-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libnsl\",\n \"SrcVersion\": \"2.0.1-r2\",\n \"Licenses\": [\n \"LGPL-2.0-or-later\"\n ],\n \"DependsOn\": [\n \"libintl@1.0-r0\",\n \"libtirpc@1.3.5-r1\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:5194adbf26560b52be318481a7af294ab05fd795\",\n \"InstalledFiles\": [\n \"usr/lib/libnsl.so.3\",\n \"usr/lib/libnsl.so.3.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libpanelw@6.6_p20260516-r0\",\n \"Name\": \"libpanelw\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"ef1ad9bb256b373\"\n },\n \"Version\": \"6.6_p20260516-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ncurses\",\n \"SrcVersion\": \"6.6_p20260516-r0\",\n \"Licenses\": [\n \"X-11\"\n ],\n \"Maintainer\": \"Milan P. Stani\u0107 \\u003cmps@arvanta.net\\u003e\",\n \"DependsOn\": [\n \"libncursesw@6.6_p20260516-r0\",\n \"musl@1.2.6-r2\",\n \"ncurses-terminfo-base@6.6_p20260516-r0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:149bdc434232ed11fc5bb975ba519a07154a6f56\",\n \"InstalledFiles\": [\n \"usr/lib/libpanelw.so.6\",\n \"usr/lib/libpanelw.so.6.6\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libssl3@3.5.8-r0\",\n \"Name\": \"libssl3\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"f290ab59b88b1c4a\"\n },\n \"Version\": \"3.5.8-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"openssl\",\n \"SrcVersion\": \"3.5.8-r0\",\n \"Licenses\": [\n \"Apache-2.0\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"libcrypto3@3.5.8-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:5f9b1e55d821953d2e2b1db322dad70a3b5041ea\",\n \"InstalledFiles\": [\n \"usr/lib/libssl.so.3\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libtirpc@1.3.5-r1\",\n \"Name\": \"libtirpc\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"471c8d955ca03be5\"\n },\n \"Version\": \"1.3.5-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libtirpc\",\n \"SrcVersion\": \"1.3.5-r1\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"krb5-libs@1.22.2-r1\",\n \"libtirpc-conf@1.3.5-r1\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:c32865bd86a8b8829d152279cabbc5ac6d430eb2\",\n \"InstalledFiles\": [\n \"usr/lib/libtirpc.so.3\",\n \"usr/lib/libtirpc.so.3.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libtirpc-conf@1.3.5-r1\",\n \"Name\": \"libtirpc-conf\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"3437392c14aad33f\"\n },\n \"Version\": \"1.3.5-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libtirpc\",\n \"SrcVersion\": \"1.3.5-r1\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:0c17d9988dc986c90e22f79778df047eca9973ff\",\n \"InstalledFiles\": [\n \"etc/bindresvport.blacklist\",\n \"etc/netconfig\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libuuid@2.42.3-r1\",\n \"Name\": \"libuuid\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"c444e9cdd1bdda40\"\n },\n \"Version\": \"2.42.3-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"util-linux\",\n \"SrcVersion\": \"2.42.3-r1\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86\",\n \"DiffID\": \"sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1\"\n },\n \"Digest\": \"sha1:8f041ef637ad75f381cc0c034f2afbbb0303264e\",\n \"InstalledFiles\": [\n \"usr/lib/libuuid.so.1\",\n \"usr/lib/libuuid.so.1.3.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"libverto@0.3.2-r2\",\n \"Name\": \"libverto\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"9df4321a283a6cf6\"\n },\n \"Version\": \"0.3.2-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"libverto\",\n \"SrcVersion\": \"0.3.2-r2\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Francesco Colista \\u003cfcolista@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:73233059338142e4ac6d8fb8bb0074e93da75dc1\",\n \"InstalledFiles\": [\n \"usr/lib/libverto.so.1\",\n \"usr/lib/libverto.so.1.0.0\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"musl@1.2.6-r2\",\n \"Name\": \"musl\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1f8cb44befe503d4\"\n },\n \"Version\": \"1.2.6-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"musl\",\n \"SrcVersion\": \"1.2.6-r2\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:0f7e5827e4e1a73631beda27b78431a8ba240e05\",\n \"InstalledFiles\": [\n \"lib/ld-musl-x86_64.so.1\",\n \"lib/libc.musl-x86_64.so.1\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"musl-utils@1.2.6-r2\",\n \"Name\": \"musl-utils\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"4497482ec1d943e1\"\n },\n \"Version\": \"1.2.6-r2\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"musl\",\n \"SrcVersion\": \"1.2.6-r2\",\n \"Licenses\": [\n \"MIT\",\n \"BSD-2-Clause\",\n \"GPL-2.0-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\",\n \"scanelf@1.3.9-r1\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:75ada3c48d63ec5d87c42fdf934a3fdd11298dc5\",\n \"InstalledFiles\": [\n \"sbin/ldconfig\",\n \"usr/bin/getconf\",\n \"usr/bin/getent\",\n \"usr/bin/iconv\",\n \"usr/bin/ldd\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ncurses-terminfo-base@6.6_p20260516-r0\",\n \"Name\": \"ncurses-terminfo-base\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e7fac5c6a6e9ae8\"\n },\n \"Version\": \"6.6_p20260516-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"ncurses\",\n \"SrcVersion\": \"6.6_p20260516-r0\",\n \"Licenses\": [\n \"X-11\"\n ],\n \"Maintainer\": \"Milan P. Stani\u0107 \\u003cmps@arvanta.net\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:9d551d828e9c8ee52c5801c1d6046828ebf15752\",\n \"InstalledFiles\": [\n \"etc/terminfo/a/alacritty\",\n \"etc/terminfo/a/ansi\",\n \"etc/terminfo/d/dumb\",\n \"etc/terminfo/g/gnome\",\n \"etc/terminfo/g/gnome-256color\",\n \"etc/terminfo/k/konsole\",\n \"etc/terminfo/k/konsole-256color\",\n \"etc/terminfo/k/konsole-linux\",\n \"etc/terminfo/l/linux\",\n \"etc/terminfo/p/putty\",\n \"etc/terminfo/p/putty-256color\",\n \"etc/terminfo/r/rxvt\",\n \"etc/terminfo/r/rxvt-256color\",\n \"etc/terminfo/s/screen\",\n \"etc/terminfo/s/screen-256color\",\n \"etc/terminfo/s/st-0.6\",\n \"etc/terminfo/s/st-0.7\",\n \"etc/terminfo/s/st-0.8\",\n \"etc/terminfo/s/st-0.8.5\",\n \"etc/terminfo/s/st-16color\",\n \"etc/terminfo/s/st-256color\",\n \"etc/terminfo/s/st-direct\",\n \"etc/terminfo/s/sun\",\n \"etc/terminfo/t/terminator\",\n \"etc/terminfo/t/terminology\",\n \"etc/terminfo/t/terminology-0.6.1\",\n \"etc/terminfo/t/terminology-1.0.0\",\n \"etc/terminfo/t/terminology-1.8.1\",\n \"etc/terminfo/t/tmux\",\n \"etc/terminfo/t/tmux-256color\",\n \"etc/terminfo/v/vt100\",\n \"etc/terminfo/v/vt102\",\n \"etc/terminfo/v/vt200\",\n \"etc/terminfo/v/vt220\",\n \"etc/terminfo/v/vt52\",\n \"etc/terminfo/v/vte\",\n \"etc/terminfo/v/vte-256color\",\n \"etc/terminfo/x/xterm\",\n \"etc/terminfo/x/xterm-256color\",\n \"etc/terminfo/x/xterm-color\",\n \"etc/terminfo/x/xterm-xfree86\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"readline@8.3.3-r1\",\n \"Name\": \"readline\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"f50058781c93e1f2\"\n },\n \"Version\": \"8.3.3-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"readline\",\n \"SrcVersion\": \"8.3.3-r1\",\n \"Licenses\": [\n \"GPL-3.0-or-later\"\n ],\n \"Maintainer\": \"qaqland \\u003cqaq@qaq.land\\u003e\",\n \"DependsOn\": [\n \"libncursesw@6.6_p20260516-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:945b16e378bc00e44d89d4de8124bba7647fdf4d\",\n \"InstalledFiles\": [\n \"etc/inputrc\",\n \"usr/lib/libreadline.so.8\",\n \"usr/lib/libreadline.so.8.3\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"scanelf@1.3.9-r1\",\n \"Name\": \"scanelf\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"936394657a1626fb\"\n },\n \"Version\": \"1.3.9-r1\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"pax-utils\",\n \"SrcVersion\": \"1.3.9-r1\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:013f903d0ba219673aebbdd04f74bb5ed82b01f0\",\n \"InstalledFiles\": [\n \"usr/bin/scanelf\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"sqlite-libs@3.53.4-r0\",\n \"Name\": \"sqlite-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"8b10aee2ccc192de\"\n },\n \"Version\": \"3.53.4-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"sqlite\",\n \"SrcVersion\": \"3.53.4-r0\",\n \"Licenses\": [\n \"blessing\"\n ],\n \"Maintainer\": \"Jingyun Hua \\u003chuajingyun@loongson.cn\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:f7630ceb37c232b6609861aeab6cdb9cd120e6fa\",\n \"InstalledFiles\": [\n \"usr/lib/libsqlite3.so.0\",\n \"usr/lib/libsqlite3.so.3.53.4\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"ssl_client@1.37.0-r31\",\n \"Name\": \"ssl_client\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"d42e31f15a4ce47a\"\n },\n \"Version\": \"1.37.0-r31\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"busybox\",\n \"SrcVersion\": \"1.37.0-r31\",\n \"Licenses\": [\n \"GPL-2.0-only\"\n ],\n \"Maintainer\": \"S\u00f6ren Tempel \\u003csoeren+alpine@soeren-tempel.net\\u003e\",\n \"DependsOn\": [\n \"libcrypto3@3.5.8-r0\",\n \"libssl3@3.5.8-r0\",\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:c220f4a5125a313af733e98def94132bb1e9d40d\",\n \"InstalledFiles\": [\n \"usr/bin/ssl_client\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"tzdata@2026c-r0\",\n \"Name\": \"tzdata\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"52c6b50eff629f9d\"\n },\n \"Version\": \"2026c-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"tzdata\",\n \"SrcVersion\": \"2026c-r0\",\n \"Licenses\": [\n \"Public-Domain\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"Layer\": {\n \"Digest\": \"sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb\",\n \"DiffID\": \"sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd\"\n },\n \"Digest\": \"sha1:61f7544ecd8dd63eac23fe3e645702fda92ef02a\",\n \"InstalledFiles\": [\n \"usr/share/zoneinfo/CET\",\n \"usr/share/zoneinfo/CST6CDT\",\n \"usr/share/zoneinfo/Cuba\",\n \"usr/share/zoneinfo/EET\",\n \"usr/share/zoneinfo/EST\",\n \"usr/share/zoneinfo/EST5EDT\",\n \"usr/share/zoneinfo/Egypt\",\n \"usr/share/zoneinfo/Eire\",\n \"usr/share/zoneinfo/Factory\",\n \"usr/share/zoneinfo/GB\",\n \"usr/share/zoneinfo/GB-Eire\",\n \"usr/share/zoneinfo/GMT\",\n \"usr/share/zoneinfo/GMT+0\",\n \"usr/share/zoneinfo/GMT-0\",\n \"usr/share/zoneinfo/GMT0\",\n \"usr/share/zoneinfo/Greenwich\",\n \"usr/share/zoneinfo/HST\",\n \"usr/share/zoneinfo/Hongkong\",\n \"usr/share/zoneinfo/Iceland\",\n \"usr/share/zoneinfo/Iran\",\n \"usr/share/zoneinfo/Israel\",\n \"usr/share/zoneinfo/Jamaica\",\n \"usr/share/zoneinfo/Japan\",\n \"usr/share/zoneinfo/Kwajalein\",\n \"usr/share/zoneinfo/Libya\",\n \"usr/share/zoneinfo/MET\",\n \"usr/share/zoneinfo/MST\",\n \"usr/share/zoneinfo/MST7MDT\",\n \"usr/share/zoneinfo/NZ\",\n \"usr/share/zoneinfo/NZ-CHAT\",\n \"usr/share/zoneinfo/Navajo\",\n \"usr/share/zoneinfo/PRC\",\n \"usr/share/zoneinfo/PST8PDT\",\n \"usr/share/zoneinfo/Poland\",\n \"usr/share/zoneinfo/Portugal\",\n \"usr/share/zoneinfo/ROC\",\n \"usr/share/zoneinfo/ROK\",\n \"usr/share/zoneinfo/Singapore\",\n \"usr/share/zoneinfo/Turkey\",\n \"usr/share/zoneinfo/UCT\",\n \"usr/share/zoneinfo/UTC\",\n \"usr/share/zoneinfo/Universal\",\n \"usr/share/zoneinfo/W-SU\",\n \"usr/share/zoneinfo/WET\",\n \"usr/share/zoneinfo/Zulu\",\n \"usr/share/zoneinfo/iso3166.tab\",\n \"usr/share/zoneinfo/leap-seconds.list\",\n \"usr/share/zoneinfo/posixrules\",\n \"usr/share/zoneinfo/zone.tab\",\n \"usr/share/zoneinfo/zone1970.tab\",\n \"usr/share/zoneinfo/Africa/Abidjan\",\n \"usr/share/zoneinfo/Africa/Accra\",\n \"usr/share/zoneinfo/Africa/Addis_Ababa\",\n \"usr/share/zoneinfo/Africa/Algiers\",\n \"usr/share/zoneinfo/Africa/Asmara\",\n \"usr/share/zoneinfo/Africa/Asmera\",\n \"usr/share/zoneinfo/Africa/Bamako\",\n \"usr/share/zoneinfo/Africa/Bangui\",\n \"usr/share/zoneinfo/Africa/Banjul\",\n \"usr/share/zoneinfo/Africa/Bissau\",\n \"usr/share/zoneinfo/Africa/Blantyre\",\n \"usr/share/zoneinfo/Africa/Brazzaville\",\n \"usr/share/zoneinfo/Africa/Bujumbura\",\n \"usr/share/zoneinfo/Africa/Cairo\",\n \"usr/share/zoneinfo/Africa/Casablanca\",\n \"usr/share/zoneinfo/Africa/Ceuta\",\n \"usr/share/zoneinfo/Africa/Conakry\",\n \"usr/share/zoneinfo/Africa/Dakar\",\n \"usr/share/zoneinfo/Africa/Dar_es_Salaam\",\n \"usr/share/zoneinfo/Africa/Djibouti\",\n \"usr/share/zoneinfo/Africa/Douala\",\n \"usr/share/zoneinfo/Africa/El_Aaiun\",\n \"usr/share/zoneinfo/Africa/Freetown\",\n \"usr/share/zoneinfo/Africa/Gaborone\",\n \"usr/share/zoneinfo/Africa/Harare\",\n \"usr/share/zoneinfo/Africa/Johannesburg\",\n \"usr/share/zoneinfo/Africa/Juba\",\n \"usr/share/zoneinfo/Africa/Kampala\",\n \"usr/share/zoneinfo/Africa/Khartoum\",\n \"usr/share/zoneinfo/Africa/Kigali\",\n \"usr/share/zoneinfo/Africa/Kinshasa\",\n \"usr/share/zoneinfo/Africa/Lagos\",\n \"usr/share/zoneinfo/Africa/Libreville\",\n \"usr/share/zoneinfo/Africa/Lome\",\n \"usr/share/zoneinfo/Africa/Luanda\",\n \"usr/share/zoneinfo/Africa/Lubumbashi\",\n \"usr/share/zoneinfo/Africa/Lusaka\",\n \"usr/share/zoneinfo/Africa/Malabo\",\n \"usr/share/zoneinfo/Africa/Maputo\",\n \"usr/share/zoneinfo/Africa/Maseru\",\n \"usr/share/zoneinfo/Africa/Mbabane\",\n \"usr/share/zoneinfo/Africa/Mogadishu\",\n \"usr/share/zoneinfo/Africa/Monrovia\",\n \"usr/share/zoneinfo/Africa/Nairobi\",\n \"usr/share/zoneinfo/Africa/Ndjamena\",\n \"usr/share/zoneinfo/Africa/Niamey\",\n \"usr/share/zoneinfo/Africa/Nouakchott\",\n \"usr/share/zoneinfo/Africa/Ouagadougou\",\n \"usr/share/zoneinfo/Africa/Porto-Novo\",\n \"usr/share/zoneinfo/Africa/Sao_Tome\",\n \"usr/share/zoneinfo/Africa/Timbuktu\",\n \"usr/share/zoneinfo/Africa/Tripoli\",\n \"usr/share/zoneinfo/Africa/Tunis\",\n \"usr/share/zoneinfo/Africa/Windhoek\",\n \"usr/share/zoneinfo/America/Adak\",\n \"usr/share/zoneinfo/America/Anchorage\",\n \"usr/share/zoneinfo/America/Anguilla\",\n \"usr/share/zoneinfo/America/Antigua\",\n \"usr/share/zoneinfo/America/Araguaina\",\n \"usr/share/zoneinfo/America/Aruba\",\n \"usr/share/zoneinfo/America/Asuncion\",\n \"usr/share/zoneinfo/America/Atikokan\",\n \"usr/share/zoneinfo/America/Atka\",\n \"usr/share/zoneinfo/America/Bahia\",\n \"usr/share/zoneinfo/America/Bahia_Banderas\",\n \"usr/share/zoneinfo/America/Barbados\",\n \"usr/share/zoneinfo/America/Belem\",\n \"usr/share/zoneinfo/America/Belize\",\n \"usr/share/zoneinfo/America/Blanc-Sablon\",\n \"usr/share/zoneinfo/America/Boa_Vista\",\n \"usr/share/zoneinfo/America/Bogota\",\n \"usr/share/zoneinfo/America/Boise\",\n \"usr/share/zoneinfo/America/Buenos_Aires\",\n \"usr/share/zoneinfo/America/Cambridge_Bay\",\n \"usr/share/zoneinfo/America/Campo_Grande\",\n \"usr/share/zoneinfo/America/Cancun\",\n \"usr/share/zoneinfo/America/Caracas\",\n \"usr/share/zoneinfo/America/Catamarca\",\n \"usr/share/zoneinfo/America/Cayenne\",\n \"usr/share/zoneinfo/America/Cayman\",\n \"usr/share/zoneinfo/America/Chicago\",\n \"usr/share/zoneinfo/America/Chihuahua\",\n \"usr/share/zoneinfo/America/Ciudad_Juarez\",\n \"usr/share/zoneinfo/America/Coral_Harbour\",\n \"usr/share/zoneinfo/America/Cordoba\",\n \"usr/share/zoneinfo/America/Costa_Rica\",\n \"usr/share/zoneinfo/America/Coyhaique\",\n \"usr/share/zoneinfo/America/Creston\",\n \"usr/share/zoneinfo/America/Cuiaba\",\n \"usr/share/zoneinfo/America/Curacao\",\n \"usr/share/zoneinfo/America/Danmarkshavn\",\n \"usr/share/zoneinfo/America/Dawson\",\n \"usr/share/zoneinfo/America/Dawson_Creek\",\n \"usr/share/zoneinfo/America/Denver\",\n \"usr/share/zoneinfo/America/Detroit\",\n \"usr/share/zoneinfo/America/Dominica\",\n \"usr/share/zoneinfo/America/Edmonton\",\n \"usr/share/zoneinfo/America/Eirunepe\",\n \"usr/share/zoneinfo/America/El_Salvador\",\n \"usr/share/zoneinfo/America/Ensenada\",\n \"usr/share/zoneinfo/America/Fort_Nelson\",\n \"usr/share/zoneinfo/America/Fort_Wayne\",\n \"usr/share/zoneinfo/America/Fortaleza\",\n \"usr/share/zoneinfo/America/Glace_Bay\",\n \"usr/share/zoneinfo/America/Godthab\",\n \"usr/share/zoneinfo/America/Goose_Bay\",\n \"usr/share/zoneinfo/America/Grand_Turk\",\n \"usr/share/zoneinfo/America/Grenada\",\n \"usr/share/zoneinfo/America/Guadeloupe\",\n \"usr/share/zoneinfo/America/Guatemala\",\n \"usr/share/zoneinfo/America/Guayaquil\",\n \"usr/share/zoneinfo/America/Guyana\",\n \"usr/share/zoneinfo/America/Halifax\",\n \"usr/share/zoneinfo/America/Havana\",\n \"usr/share/zoneinfo/America/Hermosillo\",\n \"usr/share/zoneinfo/America/Indianapolis\",\n \"usr/share/zoneinfo/America/Inuvik\",\n \"usr/share/zoneinfo/America/Iqaluit\",\n \"usr/share/zoneinfo/America/Jamaica\",\n \"usr/share/zoneinfo/America/Jujuy\",\n \"usr/share/zoneinfo/America/Juneau\",\n \"usr/share/zoneinfo/America/Knox_IN\",\n \"usr/share/zoneinfo/America/Kralendijk\",\n \"usr/share/zoneinfo/America/La_Paz\",\n \"usr/share/zoneinfo/America/Lima\",\n \"usr/share/zoneinfo/America/Los_Angeles\",\n \"usr/share/zoneinfo/America/Louisville\",\n \"usr/share/zoneinfo/America/Lower_Princes\",\n \"usr/share/zoneinfo/America/Maceio\",\n \"usr/share/zoneinfo/America/Managua\",\n \"usr/share/zoneinfo/America/Manaus\",\n \"usr/share/zoneinfo/America/Marigot\",\n \"usr/share/zoneinfo/America/Martinique\",\n \"usr/share/zoneinfo/America/Matamoros\",\n \"usr/share/zoneinfo/America/Mazatlan\",\n \"usr/share/zoneinfo/America/Mendoza\",\n \"usr/share/zoneinfo/America/Menominee\",\n \"usr/share/zoneinfo/America/Merida\",\n \"usr/share/zoneinfo/America/Metlakatla\",\n \"usr/share/zoneinfo/America/Mexico_City\",\n \"usr/share/zoneinfo/America/Miquelon\",\n \"usr/share/zoneinfo/America/Moncton\",\n \"usr/share/zoneinfo/America/Monterrey\",\n \"usr/share/zoneinfo/America/Montevideo\",\n \"usr/share/zoneinfo/America/Montreal\",\n \"usr/share/zoneinfo/America/Montserrat\",\n \"usr/share/zoneinfo/America/Nassau\",\n \"usr/share/zoneinfo/America/New_York\",\n \"usr/share/zoneinfo/America/Nipigon\",\n \"usr/share/zoneinfo/America/Nome\",\n \"usr/share/zoneinfo/America/Noronha\",\n \"usr/share/zoneinfo/America/Nuuk\",\n \"usr/share/zoneinfo/America/Ojinaga\",\n \"usr/share/zoneinfo/America/Panama\",\n \"usr/share/zoneinfo/America/Pangnirtung\",\n \"usr/share/zoneinfo/America/Paramaribo\",\n \"usr/share/zoneinfo/America/Phoenix\",\n \"usr/share/zoneinfo/America/Port-au-Prince\",\n \"usr/share/zoneinfo/America/Port_of_Spain\",\n \"usr/share/zoneinfo/America/Porto_Acre\",\n \"usr/share/zoneinfo/America/Porto_Velho\",\n \"usr/share/zoneinfo/America/Puerto_Rico\",\n \"usr/share/zoneinfo/America/Punta_Arenas\",\n \"usr/share/zoneinfo/America/Rainy_River\",\n \"usr/share/zoneinfo/America/Rankin_Inlet\",\n \"usr/share/zoneinfo/America/Recife\",\n \"usr/share/zoneinfo/America/Regina\",\n \"usr/share/zoneinfo/America/Resolute\",\n \"usr/share/zoneinfo/America/Rio_Branco\",\n \"usr/share/zoneinfo/America/Rosario\",\n \"usr/share/zoneinfo/America/Santa_Isabel\",\n \"usr/share/zoneinfo/America/Santarem\",\n \"usr/share/zoneinfo/America/Santiago\",\n \"usr/share/zoneinfo/America/Santo_Domingo\",\n \"usr/share/zoneinfo/America/Sao_Paulo\",\n \"usr/share/zoneinfo/America/Scoresbysund\",\n \"usr/share/zoneinfo/America/Shiprock\",\n \"usr/share/zoneinfo/America/Sitka\",\n \"usr/share/zoneinfo/America/St_Barthelemy\",\n \"usr/share/zoneinfo/America/St_Johns\",\n \"usr/share/zoneinfo/America/St_Kitts\",\n \"usr/share/zoneinfo/America/St_Lucia\",\n \"usr/share/zoneinfo/America/St_Thomas\",\n \"usr/share/zoneinfo/America/St_Vincent\",\n \"usr/share/zoneinfo/America/Swift_Current\",\n \"usr/share/zoneinfo/America/Tegucigalpa\",\n \"usr/share/zoneinfo/America/Thule\",\n \"usr/share/zoneinfo/America/Thunder_Bay\",\n \"usr/share/zoneinfo/America/Tijuana\",\n \"usr/share/zoneinfo/America/Toronto\",\n \"usr/share/zoneinfo/America/Tortola\",\n \"usr/share/zoneinfo/America/Vancouver\",\n \"usr/share/zoneinfo/America/Virgin\",\n \"usr/share/zoneinfo/America/Whitehorse\",\n \"usr/share/zoneinfo/America/Winnipeg\",\n \"usr/share/zoneinfo/America/Yakutat\",\n \"usr/share/zoneinfo/America/Yellowknife\",\n \"usr/share/zoneinfo/America/Argentina/Buenos_Aires\",\n \"usr/share/zoneinfo/America/Argentina/Catamarca\",\n \"usr/share/zoneinfo/America/Argentina/ComodRivadavia\",\n \"usr/share/zoneinfo/America/Argentina/Cordoba\",\n \"usr/share/zoneinfo/America/Argentina/Jujuy\",\n \"usr/share/zoneinfo/America/Argentina/La_Rioja\",\n \"usr/share/zoneinfo/America/Argentina/Mendoza\",\n \"usr/share/zoneinfo/America/Argentina/Rio_Gallegos\",\n \"usr/share/zoneinfo/America/Argentina/Salta\",\n \"usr/share/zoneinfo/America/Argentina/San_Juan\",\n \"usr/share/zoneinfo/America/Argentina/San_Luis\",\n \"usr/share/zoneinfo/America/Argentina/Tucuman\",\n \"usr/share/zoneinfo/America/Argentina/Ushuaia\",\n \"usr/share/zoneinfo/America/Indiana/Indianapolis\",\n \"usr/share/zoneinfo/America/Indiana/Knox\",\n \"usr/share/zoneinfo/America/Indiana/Marengo\",\n \"usr/share/zoneinfo/America/Indiana/Petersburg\",\n \"usr/share/zoneinfo/America/Indiana/Tell_City\",\n \"usr/share/zoneinfo/America/Indiana/Vevay\",\n \"usr/share/zoneinfo/America/Indiana/Vincennes\",\n \"usr/share/zoneinfo/America/Indiana/Winamac\",\n \"usr/share/zoneinfo/America/Kentucky/Louisville\",\n \"usr/share/zoneinfo/America/Kentucky/Monticello\",\n \"usr/share/zoneinfo/America/North_Dakota/Beulah\",\n \"usr/share/zoneinfo/America/North_Dakota/Center\",\n \"usr/share/zoneinfo/America/North_Dakota/New_Salem\",\n \"usr/share/zoneinfo/Antarctica/Casey\",\n \"usr/share/zoneinfo/Antarctica/Davis\",\n \"usr/share/zoneinfo/Antarctica/DumontDUrville\",\n \"usr/share/zoneinfo/Antarctica/Macquarie\",\n \"usr/share/zoneinfo/Antarctica/Mawson\",\n \"usr/share/zoneinfo/Antarctica/McMurdo\",\n \"usr/share/zoneinfo/Antarctica/Palmer\",\n \"usr/share/zoneinfo/Antarctica/Rothera\",\n \"usr/share/zoneinfo/Antarctica/South_Pole\",\n \"usr/share/zoneinfo/Antarctica/Syowa\",\n \"usr/share/zoneinfo/Antarctica/Troll\",\n \"usr/share/zoneinfo/Antarctica/Vostok\",\n \"usr/share/zoneinfo/Arctic/Longyearbyen\",\n \"usr/share/zoneinfo/Asia/Aden\",\n \"usr/share/zoneinfo/Asia/Almaty\",\n \"usr/share/zoneinfo/Asia/Amman\",\n \"usr/share/zoneinfo/Asia/Anadyr\",\n \"usr/share/zoneinfo/Asia/Aqtau\",\n \"usr/share/zoneinfo/Asia/Aqtobe\",\n \"usr/share/zoneinfo/Asia/Ashgabat\",\n \"usr/share/zoneinfo/Asia/Ashkhabad\",\n \"usr/share/zoneinfo/Asia/Atyrau\",\n \"usr/share/zoneinfo/Asia/Baghdad\",\n \"usr/share/zoneinfo/Asia/Bahrain\",\n \"usr/share/zoneinfo/Asia/Baku\",\n \"usr/share/zoneinfo/Asia/Bangkok\",\n \"usr/share/zoneinfo/Asia/Barnaul\",\n \"usr/share/zoneinfo/Asia/Beirut\",\n \"usr/share/zoneinfo/Asia/Bishkek\",\n \"usr/share/zoneinfo/Asia/Brunei\",\n \"usr/share/zoneinfo/Asia/Calcutta\",\n \"usr/share/zoneinfo/Asia/Chita\",\n \"usr/share/zoneinfo/Asia/Choibalsan\",\n \"usr/share/zoneinfo/Asia/Chongqing\",\n \"usr/share/zoneinfo/Asia/Chungking\",\n \"usr/share/zoneinfo/Asia/Colombo\",\n \"usr/share/zoneinfo/Asia/Dacca\",\n \"usr/share/zoneinfo/Asia/Damascus\",\n \"usr/share/zoneinfo/Asia/Dhaka\",\n \"usr/share/zoneinfo/Asia/Dili\",\n \"usr/share/zoneinfo/Asia/Dubai\",\n \"usr/share/zoneinfo/Asia/Dushanbe\",\n \"usr/share/zoneinfo/Asia/Famagusta\",\n \"usr/share/zoneinfo/Asia/Gaza\",\n \"usr/share/zoneinfo/Asia/Harbin\",\n \"usr/share/zoneinfo/Asia/Hebron\",\n \"usr/share/zoneinfo/Asia/Ho_Chi_Minh\",\n \"usr/share/zoneinfo/Asia/Hong_Kong\",\n \"usr/share/zoneinfo/Asia/Hovd\",\n \"usr/share/zoneinfo/Asia/Irkutsk\",\n \"usr/share/zoneinfo/Asia/Istanbul\",\n \"usr/share/zoneinfo/Asia/Jakarta\",\n \"usr/share/zoneinfo/Asia/Jayapura\",\n \"usr/share/zoneinfo/Asia/Jerusalem\",\n \"usr/share/zoneinfo/Asia/Kabul\",\n \"usr/share/zoneinfo/Asia/Kamchatka\",\n \"usr/share/zoneinfo/Asia/Karachi\",\n \"usr/share/zoneinfo/Asia/Kashgar\",\n \"usr/share/zoneinfo/Asia/Kathmandu\",\n \"usr/share/zoneinfo/Asia/Katmandu\",\n \"usr/share/zoneinfo/Asia/Khandyga\",\n \"usr/share/zoneinfo/Asia/Kolkata\",\n \"usr/share/zoneinfo/Asia/Krasnoyarsk\",\n \"usr/share/zoneinfo/Asia/Kuala_Lumpur\",\n \"usr/share/zoneinfo/Asia/Kuching\",\n \"usr/share/zoneinfo/Asia/Kuwait\",\n \"usr/share/zoneinfo/Asia/Macao\",\n \"usr/share/zoneinfo/Asia/Macau\",\n \"usr/share/zoneinfo/Asia/Magadan\",\n \"usr/share/zoneinfo/Asia/Makassar\",\n \"usr/share/zoneinfo/Asia/Manila\",\n \"usr/share/zoneinfo/Asia/Muscat\",\n \"usr/share/zoneinfo/Asia/Nicosia\",\n \"usr/share/zoneinfo/Asia/Novokuznetsk\",\n \"usr/share/zoneinfo/Asia/Novosibirsk\",\n \"usr/share/zoneinfo/Asia/Omsk\",\n \"usr/share/zoneinfo/Asia/Oral\",\n \"usr/share/zoneinfo/Asia/Phnom_Penh\",\n \"usr/share/zoneinfo/Asia/Pontianak\",\n \"usr/share/zoneinfo/Asia/Pyongyang\",\n \"usr/share/zoneinfo/Asia/Qatar\",\n \"usr/share/zoneinfo/Asia/Qostanay\",\n \"usr/share/zoneinfo/Asia/Qyzylorda\",\n \"usr/share/zoneinfo/Asia/Rangoon\",\n \"usr/share/zoneinfo/Asia/Riyadh\",\n \"usr/share/zoneinfo/Asia/Saigon\",\n \"usr/share/zoneinfo/Asia/Sakhalin\",\n \"usr/share/zoneinfo/Asia/Samarkand\",\n \"usr/share/zoneinfo/Asia/Seoul\",\n \"usr/share/zoneinfo/Asia/Shanghai\",\n \"usr/share/zoneinfo/Asia/Singapore\",\n \"usr/share/zoneinfo/Asia/Srednekolymsk\",\n \"usr/share/zoneinfo/Asia/Taipei\",\n \"usr/share/zoneinfo/Asia/Tashkent\",\n \"usr/share/zoneinfo/Asia/Tbilisi\",\n \"usr/share/zoneinfo/Asia/Tehran\",\n \"usr/share/zoneinfo/Asia/Tel_Aviv\",\n \"usr/share/zoneinfo/Asia/Thimbu\",\n \"usr/share/zoneinfo/Asia/Thimphu\",\n \"usr/share/zoneinfo/Asia/Tokyo\",\n \"usr/share/zoneinfo/Asia/Tomsk\",\n \"usr/share/zoneinfo/Asia/Ujung_Pandang\",\n \"usr/share/zoneinfo/Asia/Ulaanbaatar\",\n \"usr/share/zoneinfo/Asia/Ulan_Bator\",\n \"usr/share/zoneinfo/Asia/Urumqi\",\n \"usr/share/zoneinfo/Asia/Ust-Nera\",\n \"usr/share/zoneinfo/Asia/Vientiane\",\n \"usr/share/zoneinfo/Asia/Vladivostok\",\n \"usr/share/zoneinfo/Asia/Yakutsk\",\n \"usr/share/zoneinfo/Asia/Yangon\",\n \"usr/share/zoneinfo/Asia/Yekaterinburg\",\n \"usr/share/zoneinfo/Asia/Yerevan\",\n \"usr/share/zoneinfo/Atlantic/Azores\",\n \"usr/share/zoneinfo/Atlantic/Bermuda\",\n \"usr/share/zoneinfo/Atlantic/Canary\",\n \"usr/share/zoneinfo/Atlantic/Cape_Verde\",\n \"usr/share/zoneinfo/Atlantic/Faeroe\",\n \"usr/share/zoneinfo/Atlantic/Faroe\",\n \"usr/share/zoneinfo/Atlantic/Jan_Mayen\",\n \"usr/share/zoneinfo/Atlantic/Madeira\",\n \"usr/share/zoneinfo/Atlantic/Reykjavik\",\n \"usr/share/zoneinfo/Atlantic/South_Georgia\",\n \"usr/share/zoneinfo/Atlantic/St_Helena\",\n \"usr/share/zoneinfo/Atlantic/Stanley\",\n \"usr/share/zoneinfo/Australia/ACT\",\n \"usr/share/zoneinfo/Australia/Adelaide\",\n \"usr/share/zoneinfo/Australia/Brisbane\",\n \"usr/share/zoneinfo/Australia/Broken_Hill\",\n \"usr/share/zoneinfo/Australia/Canberra\",\n \"usr/share/zoneinfo/Australia/Currie\",\n \"usr/share/zoneinfo/Australia/Darwin\",\n \"usr/share/zoneinfo/Australia/Eucla\",\n \"usr/share/zoneinfo/Australia/Hobart\",\n \"usr/share/zoneinfo/Australia/LHI\",\n \"usr/share/zoneinfo/Australia/Lindeman\",\n \"usr/share/zoneinfo/Australia/Lord_Howe\",\n \"usr/share/zoneinfo/Australia/Melbourne\",\n \"usr/share/zoneinfo/Australia/NSW\",\n \"usr/share/zoneinfo/Australia/North\",\n \"usr/share/zoneinfo/Australia/Perth\",\n \"usr/share/zoneinfo/Australia/Queensland\",\n \"usr/share/zoneinfo/Australia/South\",\n \"usr/share/zoneinfo/Australia/Sydney\",\n \"usr/share/zoneinfo/Australia/Tasmania\",\n \"usr/share/zoneinfo/Australia/Victoria\",\n \"usr/share/zoneinfo/Australia/West\",\n \"usr/share/zoneinfo/Australia/Yancowinna\",\n \"usr/share/zoneinfo/Brazil/Acre\",\n \"usr/share/zoneinfo/Brazil/DeNoronha\",\n \"usr/share/zoneinfo/Brazil/East\",\n \"usr/share/zoneinfo/Brazil/West\",\n \"usr/share/zoneinfo/Canada/Atlantic\",\n \"usr/share/zoneinfo/Canada/Central\",\n \"usr/share/zoneinfo/Canada/Eastern\",\n \"usr/share/zoneinfo/Canada/Mountain\",\n \"usr/share/zoneinfo/Canada/Newfoundland\",\n \"usr/share/zoneinfo/Canada/Pacific\",\n \"usr/share/zoneinfo/Canada/Saskatchewan\",\n \"usr/share/zoneinfo/Canada/Yukon\",\n \"usr/share/zoneinfo/Chile/Continental\",\n \"usr/share/zoneinfo/Chile/EasterIsland\",\n \"usr/share/zoneinfo/Etc/GMT\",\n \"usr/share/zoneinfo/Etc/GMT+0\",\n \"usr/share/zoneinfo/Etc/GMT+1\",\n \"usr/share/zoneinfo/Etc/GMT+10\",\n \"usr/share/zoneinfo/Etc/GMT+11\",\n \"usr/share/zoneinfo/Etc/GMT+12\",\n \"usr/share/zoneinfo/Etc/GMT+2\",\n \"usr/share/zoneinfo/Etc/GMT+3\",\n \"usr/share/zoneinfo/Etc/GMT+4\",\n \"usr/share/zoneinfo/Etc/GMT+5\",\n \"usr/share/zoneinfo/Etc/GMT+6\",\n \"usr/share/zoneinfo/Etc/GMT+7\",\n \"usr/share/zoneinfo/Etc/GMT+8\",\n \"usr/share/zoneinfo/Etc/GMT+9\",\n \"usr/share/zoneinfo/Etc/GMT-0\",\n \"usr/share/zoneinfo/Etc/GMT-1\",\n \"usr/share/zoneinfo/Etc/GMT-10\",\n \"usr/share/zoneinfo/Etc/GMT-11\",\n \"usr/share/zoneinfo/Etc/GMT-12\",\n \"usr/share/zoneinfo/Etc/GMT-13\",\n \"usr/share/zoneinfo/Etc/GMT-14\",\n \"usr/share/zoneinfo/Etc/GMT-2\",\n \"usr/share/zoneinfo/Etc/GMT-3\",\n \"usr/share/zoneinfo/Etc/GMT-4\",\n \"usr/share/zoneinfo/Etc/GMT-5\",\n \"usr/share/zoneinfo/Etc/GMT-6\",\n \"usr/share/zoneinfo/Etc/GMT-7\",\n \"usr/share/zoneinfo/Etc/GMT-8\",\n \"usr/share/zoneinfo/Etc/GMT-9\",\n \"usr/share/zoneinfo/Etc/GMT0\",\n \"usr/share/zoneinfo/Etc/Greenwich\",\n \"usr/share/zoneinfo/Etc/UCT\",\n \"usr/share/zoneinfo/Etc/UTC\",\n \"usr/share/zoneinfo/Etc/Universal\",\n \"usr/share/zoneinfo/Etc/Zulu\",\n \"usr/share/zoneinfo/Europe/Amsterdam\",\n \"usr/share/zoneinfo/Europe/Andorra\",\n \"usr/share/zoneinfo/Europe/Astrakhan\",\n \"usr/share/zoneinfo/Europe/Athens\",\n \"usr/share/zoneinfo/Europe/Belfast\",\n \"usr/share/zoneinfo/Europe/Belgrade\",\n \"usr/share/zoneinfo/Europe/Berlin\",\n \"usr/share/zoneinfo/Europe/Bratislava\",\n \"usr/share/zoneinfo/Europe/Brussels\",\n \"usr/share/zoneinfo/Europe/Bucharest\",\n \"usr/share/zoneinfo/Europe/Budapest\",\n \"usr/share/zoneinfo/Europe/Busingen\",\n \"usr/share/zoneinfo/Europe/Chisinau\",\n \"usr/share/zoneinfo/Europe/Copenhagen\",\n \"usr/share/zoneinfo/Europe/Dublin\",\n \"usr/share/zoneinfo/Europe/Gibraltar\",\n \"usr/share/zoneinfo/Europe/Guernsey\",\n \"usr/share/zoneinfo/Europe/Helsinki\",\n \"usr/share/zoneinfo/Europe/Isle_of_Man\",\n \"usr/share/zoneinfo/Europe/Istanbul\",\n \"usr/share/zoneinfo/Europe/Jersey\",\n \"usr/share/zoneinfo/Europe/Kaliningrad\",\n \"usr/share/zoneinfo/Europe/Kiev\",\n \"usr/share/zoneinfo/Europe/Kirov\",\n \"usr/share/zoneinfo/Europe/Kyiv\",\n \"usr/share/zoneinfo/Europe/Lisbon\",\n \"usr/share/zoneinfo/Europe/Ljubljana\",\n \"usr/share/zoneinfo/Europe/London\",\n \"usr/share/zoneinfo/Europe/Luxembourg\",\n \"usr/share/zoneinfo/Europe/Madrid\",\n \"usr/share/zoneinfo/Europe/Malta\",\n \"usr/share/zoneinfo/Europe/Mariehamn\",\n \"usr/share/zoneinfo/Europe/Minsk\",\n \"usr/share/zoneinfo/Europe/Monaco\",\n \"usr/share/zoneinfo/Europe/Moscow\",\n \"usr/share/zoneinfo/Europe/Nicosia\",\n \"usr/share/zoneinfo/Europe/Oslo\",\n \"usr/share/zoneinfo/Europe/Paris\",\n \"usr/share/zoneinfo/Europe/Podgorica\",\n \"usr/share/zoneinfo/Europe/Prague\",\n \"usr/share/zoneinfo/Europe/Riga\",\n \"usr/share/zoneinfo/Europe/Rome\",\n \"usr/share/zoneinfo/Europe/Samara\",\n \"usr/share/zoneinfo/Europe/San_Marino\",\n \"usr/share/zoneinfo/Europe/Sarajevo\",\n \"usr/share/zoneinfo/Europe/Saratov\",\n \"usr/share/zoneinfo/Europe/Simferopol\",\n \"usr/share/zoneinfo/Europe/Skopje\",\n \"usr/share/zoneinfo/Europe/Sofia\",\n \"usr/share/zoneinfo/Europe/Stockholm\",\n \"usr/share/zoneinfo/Europe/Tallinn\",\n \"usr/share/zoneinfo/Europe/Tirane\",\n \"usr/share/zoneinfo/Europe/Tiraspol\",\n \"usr/share/zoneinfo/Europe/Ulyanovsk\",\n \"usr/share/zoneinfo/Europe/Uzhgorod\",\n \"usr/share/zoneinfo/Europe/Vaduz\",\n \"usr/share/zoneinfo/Europe/Vatican\",\n \"usr/share/zoneinfo/Europe/Vienna\",\n \"usr/share/zoneinfo/Europe/Vilnius\",\n \"usr/share/zoneinfo/Europe/Volgograd\",\n \"usr/share/zoneinfo/Europe/Warsaw\",\n \"usr/share/zoneinfo/Europe/Zagreb\",\n \"usr/share/zoneinfo/Europe/Zaporozhye\",\n \"usr/share/zoneinfo/Europe/Zurich\",\n \"usr/share/zoneinfo/Indian/Antananarivo\",\n \"usr/share/zoneinfo/Indian/Chagos\",\n \"usr/share/zoneinfo/Indian/Christmas\",\n \"usr/share/zoneinfo/Indian/Cocos\",\n \"usr/share/zoneinfo/Indian/Comoro\",\n \"usr/share/zoneinfo/Indian/Kerguelen\",\n \"usr/share/zoneinfo/Indian/Mahe\",\n \"usr/share/zoneinfo/Indian/Maldives\",\n \"usr/share/zoneinfo/Indian/Mauritius\",\n \"usr/share/zoneinfo/Indian/Mayotte\",\n \"usr/share/zoneinfo/Indian/Reunion\",\n \"usr/share/zoneinfo/Mexico/BajaNorte\",\n \"usr/share/zoneinfo/Mexico/BajaSur\",\n \"usr/share/zoneinfo/Mexico/General\",\n \"usr/share/zoneinfo/Pacific/Apia\",\n \"usr/share/zoneinfo/Pacific/Auckland\",\n \"usr/share/zoneinfo/Pacific/Bougainville\",\n \"usr/share/zoneinfo/Pacific/Chatham\",\n \"usr/share/zoneinfo/Pacific/Chuuk\",\n \"usr/share/zoneinfo/Pacific/Easter\",\n \"usr/share/zoneinfo/Pacific/Efate\",\n \"usr/share/zoneinfo/Pacific/Enderbury\",\n \"usr/share/zoneinfo/Pacific/Fakaofo\",\n \"usr/share/zoneinfo/Pacific/Fiji\",\n \"usr/share/zoneinfo/Pacific/Funafuti\",\n \"usr/share/zoneinfo/Pacific/Galapagos\",\n \"usr/share/zoneinfo/Pacific/Gambier\",\n \"usr/share/zoneinfo/Pacific/Guadalcanal\",\n \"usr/share/zoneinfo/Pacific/Guam\",\n \"usr/share/zoneinfo/Pacific/Honolulu\",\n \"usr/share/zoneinfo/Pacific/Johnston\",\n \"usr/share/zoneinfo/Pacific/Kanton\",\n \"usr/share/zoneinfo/Pacific/Kiritimati\",\n \"usr/share/zoneinfo/Pacific/Kosrae\",\n \"usr/share/zoneinfo/Pacific/Kwajalein\",\n \"usr/share/zoneinfo/Pacific/Majuro\",\n \"usr/share/zoneinfo/Pacific/Marquesas\",\n \"usr/share/zoneinfo/Pacific/Midway\",\n \"usr/share/zoneinfo/Pacific/Nauru\",\n \"usr/share/zoneinfo/Pacific/Niue\",\n \"usr/share/zoneinfo/Pacific/Norfolk\",\n \"usr/share/zoneinfo/Pacific/Noumea\",\n \"usr/share/zoneinfo/Pacific/Pago_Pago\",\n \"usr/share/zoneinfo/Pacific/Palau\",\n \"usr/share/zoneinfo/Pacific/Pitcairn\",\n \"usr/share/zoneinfo/Pacific/Pohnpei\",\n \"usr/share/zoneinfo/Pacific/Ponape\",\n \"usr/share/zoneinfo/Pacific/Port_Moresby\",\n \"usr/share/zoneinfo/Pacific/Rarotonga\",\n \"usr/share/zoneinfo/Pacific/Saipan\",\n \"usr/share/zoneinfo/Pacific/Samoa\",\n \"usr/share/zoneinfo/Pacific/Tahiti\",\n \"usr/share/zoneinfo/Pacific/Tarawa\",\n \"usr/share/zoneinfo/Pacific/Tongatapu\",\n \"usr/share/zoneinfo/Pacific/Truk\",\n \"usr/share/zoneinfo/Pacific/Wake\",\n \"usr/share/zoneinfo/Pacific/Wallis\",\n \"usr/share/zoneinfo/Pacific/Yap\",\n \"usr/share/zoneinfo/US/Alaska\",\n \"usr/share/zoneinfo/US/Aleutian\",\n \"usr/share/zoneinfo/US/Arizona\",\n \"usr/share/zoneinfo/US/Central\",\n \"usr/share/zoneinfo/US/East-Indiana\",\n \"usr/share/zoneinfo/US/Eastern\",\n \"usr/share/zoneinfo/US/Hawaii\",\n \"usr/share/zoneinfo/US/Indiana-Starke\",\n \"usr/share/zoneinfo/US/Michigan\",\n \"usr/share/zoneinfo/US/Mountain\",\n \"usr/share/zoneinfo/US/Pacific\",\n \"usr/share/zoneinfo/US/Samoa\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"xz-libs@5.8.3-r0\",\n \"Name\": \"xz-libs\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"1ae658a5f132a091\"\n },\n \"Version\": \"5.8.3-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"xz\",\n \"SrcVersion\": \"5.8.3-r0\",\n \"Licenses\": [\n \"GPL-2.0-or-later\",\n \"0BSD\",\n \"Public-Domain\",\n \"LGPL-2.1-or-later\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235\",\n \"DiffID\": \"sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366\"\n },\n \"Digest\": \"sha1:4c92c5be0c5bef404e93c880eba9037a9b147347\",\n \"InstalledFiles\": [\n \"usr/lib/liblzma.so.5\",\n \"usr/lib/liblzma.so.5.8.3\"\n ],\n \"AnalyzedBy\": \"apk\"\n },\n {\n \"ID\": \"zlib@1.3.2-r0\",\n \"Name\": \"zlib\",\n \"Identifier\": {\n \"PURL\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e37054a2982d6c16\"\n },\n \"Version\": \"1.3.2-r0\",\n \"Arch\": \"x86_64\",\n \"SrcName\": \"zlib\",\n \"SrcVersion\": \"1.3.2-r0\",\n \"Licenses\": [\n \"Zlib\"\n ],\n \"Maintainer\": \"Natanael Copa \\u003cncopa@alpinelinux.org\\u003e\",\n \"DependsOn\": [\n \"musl@1.2.6-r2\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"Digest\": \"sha1:dd4c3d102acaef2a71a1495951d55fabc8680613\",\n \"InstalledFiles\": [\n \"usr/lib/libz.so.1\",\n \"usr/lib/libz.so.1.3.2\"\n ],\n \"AnalyzedBy\": \"apk\"\n }\n ],\n \"Vulnerabilities\": [\n {\n \"VulnerabilityID\": \"CVE-2026-85091\",\n \"PkgID\": \"zlib@1.3.2-r0\",\n \"PkgName\": \"zlib\",\n \"PkgIdentifier\": {\n \"PURL\": \"pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\\u0026distro=3.24.1\",\n \"UID\": \"e37054a2982d6c16\"\n },\n \"InstalledVersion\": \"1.3.2-r0\",\n \"FixedVersion\": \"1.3.2-r1\",\n \"Status\": \"fixed\",\n \"Layer\": {\n \"Digest\": \"sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4\",\n \"DiffID\": \"sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c\"\n },\n \"PrimaryURL\": \"https://avd.aquasec.com/nvd/cve-2026-85091\",\n \"DataSource\": {\n \"ID\": \"alpine\",\n \"Name\": \"Alpine Secdb\",\n \"URL\": \"https://secdb.alpinelinux.org/\"\n },\n \"Fingerprint\": \"sha256:d73c01b020c55acc174a3fde47c8af6f5638c58c7189c817edd6862029f6c5f5\",\n \"Title\": \"zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...\",\n \"Description\": \"zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.\",\n \"Severity\": \"MEDIUM\",\n \"CweIDs\": [\n \"CWE-787\"\n ],\n \"VendorSeverity\": {\n \"ubuntu\": 2\n },\n \"References\": [\n \"https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490\",\n \"https://github.com/madler/zlib\",\n \"https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393\",\n \"https://www.cve.org/CVERecord?id=CVE-2026-85091\",\n \"https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate\"\n ],\n \"PublishedDate\": \"2026-09-03T13:06:20.573Z\",\n \"LastModifiedDate\": \"2026-09-09T20:41:07.123Z\"\n }\n ]\n },\n {\n \"Target\": \"Python\",\n \"Class\": \"lang-pkgs\",\n \"Type\": \"python-pkg\",\n \"Packages\": [\n {\n \"Name\": \"PyJWT\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/pyjwt@2.15.1\",\n \"UID\": \"d3f5f9a421b8abc9\"\n },\n \"Version\": \"2.15.1\",\n \"Licenses\": [\n \"MIT\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"cffi\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/cffi@2.1.1\",\n \"UID\": \"21042e2f37e33c05\"\n },\n \"Version\": \"2.1.1\",\n \"Licenses\": [\n \"MIT-0\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"cryptography\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/cryptography@50.0.1\",\n \"UID\": \"dcb3df6383fe2a60\"\n },\n \"Version\": \"50.0.1\",\n \"Licenses\": [\n \"Apache-2.0 OR BSD-3-Clause\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"informed-decision\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/informed-decision@0.2.0\",\n \"UID\": \"7989f2afae8ff568\"\n },\n \"Version\": \"0.2.0\",\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"pycparser\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/pycparser@3.0\",\n \"UID\": \"e5a4d03f15a695ff\"\n },\n \"Version\": \"3.0\",\n \"Licenses\": [\n \"BSD-3-Clause\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n },\n {\n \"Name\": \"waitress\",\n \"Identifier\": {\n \"PURL\": \"pkg:pypi/waitress@3.0.2\",\n \"UID\": \"806e218e1c1e85f\"\n },\n \"Version\": \"3.0.2\",\n \"Licenses\": [\n \"ZPL-2.1\"\n ],\n \"Layer\": {\n \"Digest\": \"sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87\",\n \"DiffID\": \"sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c\"\n },\n \"FilePath\": \"opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA\",\n \"AnalyzedBy\": \"python-pkg\"\n }\n ]\n }\n ]\n}\n" + }, + { + "item_id": "sqlite-readonly-py", + "media_type": "text/plain", + "content": "\"\"\"Pre-open schema/integrity/count proof; stdlib only, never constructs Store.\"\"\"\nimport argparse\nimport json\nfrom pathlib import Path\nimport sqlite3\n\n\ndef inspect_readonly(path):\n path = Path(path)\n if not path.is_file() or path.is_symlink():\n raise ValueError('existing nonsymlink private database required')\n with sqlite3.connect(path.resolve().as_uri() + '?mode=ro', uri=True, timeout=5) as db:\n db.execute('PRAGMA query_only=ON')\n db.execute('BEGIN')\n version = db.execute('PRAGMA user_version').fetchone()[0]\n if version != 5:\n raise ValueError('pre-open database is not schema5; refuse migration')\n if db.execute('PRAGMA integrity_check').fetchall() != [('ok',)]:\n raise ValueError('read-only integrity check refused')\n lifecycle = {name: db.execute('SELECT COUNT(*) FROM ' + table).fetchone()[0]\n for name, table in (('records', 'lifecycle_records'),\n ('events', 'lifecycle_events'),\n ('pending', 'lifecycle_pending'))}\n result = {'schema_version': version, 'lifecycle': lifecycle,\n 'outbox': dict(db.execute('SELECT state,COUNT(*) FROM outbox GROUP BY state')),\n 'submissions': dict(db.execute('SELECT state,COUNT(*) FROM submissions GROUP BY state')),\n 'integrity': 'ok', 'read_only_pre_open': True, 'store_constructed': False}\n db.rollback()\n return result\n\n\nif __name__ == '__main__':\n parser = argparse.ArgumentParser(description=__doc__)\n parser.add_argument('--db', type=Path, required=True)\n args = parser.parse_args()\n try:\n print(json.dumps(inspect_readonly(args.db), sort_keys=True))\n except Exception:\n raise SystemExit('read-only schema5/integrity/count gate refused; no Store/admin open') from None\n" + }, + { + "item_id": "sealed-native-dependencies-json", + "media_type": "application/json", + "content": "{\n \"configmap\": {\n \"apiVersion\": \"v1\",\n \"immutable\": true,\n \"kind\": \"ConfigMap\",\n \"metadata\": {\n \"annotations\": {\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:/ConfigMap:informed-decision/informed-decision-runtime-6c221878d051\",\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"name\": \"informed-decision-runtime-6c221878d051\",\n \"namespace\": \"informed-decision\",\n \"uid\": \"90113d2d-54d9-4e82-b1d3-90b49ebed2b5\"\n },\n \"canonical_data_sha256\": \"8ec462d12347548f506eeebf1e3c7cc47648019c8a783804d09bcc79b0f22af6\"\n },\n \"pvc\": {\n \"apiVersion\": \"v1\",\n \"kind\": \"PersistentVolumeClaim\",\n \"metadata\": {\n \"annotations\": {\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:/PersistentVolumeClaim:informed-decision/informed-decision-data\",\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\",\n \"pv.kubernetes.io/bind-completed\": \"yes\",\n \"pv.kubernetes.io/bound-by-controller\": \"yes\",\n \"volume.beta.kubernetes.io/storage-provisioner\": \"rancher.io/local-path\",\n \"volume.kubernetes.io/selected-node\": \"239.62.205.92.host.secureserver.net\",\n \"volume.kubernetes.io/storage-provisioner\": \"rancher.io/local-path\"\n },\n \"finalizers\": [\n \"kubernetes.io/pvc-protection\"\n ],\n \"name\": \"informed-decision-data\",\n \"namespace\": \"informed-decision\",\n \"uid\": \"d80b25b1-141a-441b-b205-98fa2fd98b7c\"\n },\n \"spec\": {\n \"accessModes\": [\n \"ReadWriteOnce\"\n ],\n \"resources\": {\n \"requests\": {\n \"storage\": \"1Gi\"\n }\n },\n \"storageClassName\": \"local-path\",\n \"volumeMode\": \"Filesystem\",\n \"volumeName\": \"pvc-d80b25b1-141a-441b-b205-98fa2fd98b7c\"\n }\n },\n \"pvc_phase\": \"Bound\"\n}\n" + }, + { + "item_id": "native-backup-restore-protocol-md", + "media_type": "text/markdown", + "content": "# Protected native backup/restore and image-only release protocol\n\nPrepared protocol for `INFD-WP-0009-T04/purpose-overlay-v1`. No actual native backup, data export, restore, workload change or approval is recorded here. Candidate registry image identity remains a prerequisite; only after actual artifact proof may the founder approve one exact conditional protocol/rollout packet. The config-only7db8485 approval is outside this scope.\n\n## Preconditions and protected custody\n\nFreeze exact candidate and prior7f5c6cb image digests, source/installed policy hashes, current manually managed Argo Application/revision, runtime ConfigMap6c221878d051, Deployment UID/template/spec, schema5, policy package pins, database path `/data/private/review.sqlite`, PVC binding, replicas1/Recreate and stable keys for intended verification. Confirm no concurrent writer or custody change. Use fixed metadata; never fetch Secret objects or token values. A changed image/config/schema/owner invalidates the packet. Fresh resources/headroom and exact source/native server-dry-run/diff remain required.\n\nBackups are private evidence containing real decision records, not logs or packet attachments. Allocate a unique backup directory under existing protected PVC custody, owned10001, mode0700, snapshot file0600, no symlink/hardlink/reused output path. An off-cluster copy belongs only in the already established ignored `.private-backups/` custody with0700/0600 permissions; no Git, StateHub, public object store or terminal-content dump. Record only schema, integrity pass/fail, bounded table/state counts and protected receipt identifier; retain byte digests in protected custody if needed for internal copy identity. No credential, record payload or token fingerprint enters public evidence.\n\n## Approved online compatibility drill\n\nWithin the explicit founder-approved action, run the existing base image's `informed-decision-admin backup --db /data/private/review.sqlite --output ` in the actual serving workload. This uses SQLite's backup API for a transactionally consistent snapshot; copying a live main database while ignoring WAL is prohibited. Suppress raw failures/output and retain only sanitized status. Observe schema/integrity and count-only metadata from the resulting snapshot, not record content.\n\nTransfer that consistent snapshot only into protected off-cluster custody through the existing authorized operator lane. The copy is real production data even in build mode. Verify private permissions, unique identity and protected internal digest agreement. Do not export mounted workload credentials or directory trees; copy only the exact snapshot.\n\nCreate a separate private disposable restore volume/directory; retain the original snapshot unchanged. Run the exact published candidate with network disabled, no production ConfigMap/token mounts, read-only image and only that isolated volume writable. Override the service entrypoint with the owner's count-only administrative inspection/integrity check; do not start HTTP listeners, audit delivery, requester exchanges or approval operations. The current candidate changes policy.py only and retains the schema/store module bytes; still prove schema5, SQLite integrity and exact bounded counts before/after opening the restored copy. Refuse any migration/downgrade, lost/changed counts, unexpected write class or unknown outcome. Keep pending/uncertain submission and outbox states; never replay, discard or mark them delivered to green the drill. Cleanup only the disposable copy/volume after verified receipt; retain the original protected backup for the approved recovery interval.\n\nThis step is actual native-data compatibility evidence once performed. Its previous synthetic fixture checks remain mechanism evidence and cannot be renamed native success. A failed drill stops rollout and remains a failed/unverified outcome in the same trial.\n\n## Fresh cutover snapshot and single-writer rollout\n\nAfter successful actual-data compatibility checks, create another unique SQLite-consistent online snapshot immediately before the image cutover, retaining its point-in-time schema/integrity/count receipt. This is an online transactional snapshot, not a claim that dispatchers or human writes were quiesced. Every later committed record remains in the live database; same-schema rollback retains that database and never restores the earlier snapshot over it. The narrow image-only update does not need dispatcher/configuration/PVC/temporary-pod changes or a schema cutover. If fresh verification shows a migration or any data-restoration requirement, stop and refine the proposal rather than applying this protocol.\n\nThe existing Recreate rollout drains/stops the single old writer before starting the new image on the same PVC; the inherited single-writer lock independently refuses concurrent serving processes. Do not add an admin pod, scale-to-zero, dispatcher stop, network-policy rewrite or snapshot overwrite as an improvised image-only step. The existing owner admin backup operation runs inside the admitted serving workload, and its separate protected restore drill runs off-cluster with network disabled and no workload credentials. Those exact custody operations must be enumerated in the founder packet alongside the one Deployment image change.\n\nOnce backup/compatibility/preflight gates pass, manually pin the existing Argo Application to the exact reviewed source revision and sync only Deployment/informed-decision with prune false, keeping the current immutable runtime ConfigMap and all other resources. The source patch changes only the image in admission/rendered Deployment; no Secret, PVC, policy, database or dispatcher change is included unless separately enumerated in the final proposal. Observe five-minute readiness and exact image/config/schema/pins. Verify native lifecycle binding using stable keys and an isolated installed-client probe based on a real provider response contaminated with advisory purpose; prove refusal before any write. Do not contaminate the live PDP, create human approvals, read credentials through CLI, or replay unknown external outcomes for testing.\n\n## Same-schema rollback and evidence retention\n\nOn startup/readiness/binding/refusal failure, retain current database, cutover backup and every post-cutover evidence/uncertain outcome. Restore only the prior7f5c6cb image through the same manual Argo owner path, retaining schema5 and current DB/configuration; never restore an old snapshot over current live evidence just to roll the image back. Verify old image/Ready1, same schema/counts and prior behavior, and reconcile any external effects using existing lifecycle/audit ownership. The narrow overlay's identical store/schema/dependency bytes permit this image-only rollback; it is not permission for a schema downgrade or data loss.\n\nRecord original/approved/executed source and image revisions, backup/drill/cutover/rollout timestamps, exact disposition and sanitized outcomes in the existing supervised trial receipt. EUR0 incremental infrastructure estimate uses existing service/storage/operator lane; protected temporary copy/storage consumption and15\u201330minute recovery time remain operational costs. No EUR incident-loss cap or autonomy grant is inferred. TaskT04 cannot close until actual published image, approved native compatibility and release plus post-release refusal/binding evidence all exist.\n\n## Exact release case identifiers\n\nProposal `INFD-WP-0009-T04/purpose-overlay-v1`, trial `infd-purpose-20261011-r1`.\nProtected native parent `/data/private/purpose-overlay-r1` must be unique/non-symlink, owned10001 and0700. The drill snapshot is `drill.sqlite`, the refreshed pre-cutover snapshot `cutover.sqlite`, each new0600 file; refuse any existing output. Off-cluster custody is the existing ignored Custodian `.private-backups/20261011-infd-purpose-r1` parent0700, files0600; no snapshot is an evidence attachment. Check owner UID, no symlinks, ignored status and free capacity for both native snapshots plus independently protected copies before making any snapshot.\n\nThe disposable offline restore volume is `infd-purpose-r1-restore-20261011`; refuse an existing volume, copy only the selected frozen snapshot, and run exact published candidate763c with networknone/read-only image,128MiB/core1 and no runtime config/token mounts. SQLite `PRAGMA integrity_check` must return `ok`, `PRAGMA user_version`/Store inspection must agree with actual schema5 semantics, and installed admin count-only inspection must match the frozen snapshot. Validate the actual schema representation rather than assume PRAGMA user_version is the schema authority. No synthetic restoration is reported as native restoration. Native original/off-cluster copies remain retained; only the disposable restore copy/volume may be removed under the exact approved cleanup scope.\n\n## Mandatory pre-open schema gate and offline command\n\n`informed-decision-admin inspect` and `backup` construct Store, which can migrate schemas1\u20134 to5. Therefore **before any Store/admin open**, run the exact attached stdlib-only `sqlite_readonly.py` against the native source database using SQLite URI mode=ro, query_only and one read transaction. Require PRAGMA user_version5, integrity_check=ok and retain count-only baseline. Refuse any other/unknown schema or incomplete integrity/count check before constructing Store; do not infer no migration from a post-open admin report. This native gate has not been executed in this source-preparation stage. Repeat before each native backup/admin operation.\n\nAfter copying the selected consistent snapshot to the isolated restored private path `/restore/review.sqlite`, run the same read-only checker **before** any offline candidate admin/Store opens that copy. Frozen snapshot and restored-copy schema/integrity/count reports must agree exactly; the copied main-file digest must match the selected closed snapshot. Reject oldschema fixtures rather than allow migration. Only after this pre-open gate may the offline candidate admin inspect run.\n\nOffline command vectors use exactimage `forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a`, `--network none --read-only --cpus 1 --memory 128m`, private restored volume mounted at `/restore`, and **no runtime config/credential/token mounts**. First override entrypoint to `python`, arguments `- --db /restore/review.sqlite`, streaming only the verified attached checker on stdin. Then override entrypoint to **`informed-decision-admin`**, arguments **`inspect --db /restore/review.sqlite`**. This does not start `informed-decision-container`, the HTTP service, dispatcher or delivery workers. Compare the admin's schema/lifecycle/outbox/submission counters to the frozen pre-open snapshot report; integrity and migration-free pre-open proof come from the stdlib checker, not admin output alone.\n\nLive reads and online snapshots may legitimately differ because reviews, intake and delivery can commit concurrently. Exact counter equality is required between the frozen selected snapshot and its offline restored clone; it is **not** required between a running post-cutover/rollback database and an earlier snapshot. Live count changes must be accounted for as legitimate committed records/state transitions; preserve all current and uncertain entries. Do not discard new commits or restore the old snapshot to force equality. Same-schema image rollback keeps the current live DB, followed by read-only schema5/integrity and count-only health checks; any unexplained evidence loss or required data recovery stops and requires a separate founder decision.\n\nThe fresh preflight also independently reads the actual immutable nonsecret ConfigMap and bound PVC: compares sealed UIDs/fullmetadata/PVCspec+volumeName and canonical runtime data checksum, returning no raw runtime data. Same-name deletion/recreation or content/custody drift stops before admission. Secret values remain excluded. Both local and remote optimized Python interpreters are explicitly refused before assertion-based gates.\n" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "media_type": "application/json", + "content": "{\n \"id\": \"INFD-RISK-20261011-ZLIB-85091\",\n \"kind\": \"owner-vulnerability-follow-through\",\n \"owner\": \"informed-decision\",\n \"task\": \"INFD-WP-0009-T05\",\n \"status\": \"open\",\n \"created\": \"2026-10-11\",\n \"review_due\": \"2026-10-18\",\n \"finding\": \"CVE-2026-85091\",\n \"scanner_severity\": \"MEDIUM\",\n \"estate_risk_grade\": null,\n \"affected_package\": \"zlib\",\n \"installed\": \"1.3.2-r0\",\n \"fixed\": \"1.3.2-r1\",\n \"actual_current_base_and_candidate_findings_identical\": true,\n \"source_evidence\": \"security-summary.json, trivy-full.json, base-trivy-full.json\",\n \"human_temporary_disposition\": \"pending\",\n \"follow_through\": \"Prepare a separately source-bound official-base/dependency refresh through normal owner CI, verify full scan and runtime compatibility, obtain distinct native release approval before updating this workload\",\n \"manual_review_expiry\": \"Due date requires owner review/escalation if unresolved; no automatic rollback/controller is installed\",\n \"close_condition\": \"Verified installed native fixed package and full unfiltered rescan; preserve original detection and any human disposition\"\n}\n" + }, + { + "item_id": "native-preflight-json", + "media_type": "application/json", + "content": "{\n \"captured_at\": \"2026-10-11T01:25:38.793555+00:00\",\n \"native_workload_changed\": false,\n \"native_backup_restore_executed\": false,\n \"argo\": {\n \"uid\": \"499868f2-eabc-4df4-ae31-b89ce58d750d\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"path\": \"deploy/lifecycle\",\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"automated\": false,\n \"sync\": {\n \"comparedTo\": {\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"source\": {\n \"path\": \"deploy/lifecycle\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\"\n }\n },\n \"revision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"status\": \"OutOfSync\"\n },\n \"health\": {\n \"lastTransitionTime\": \"2026-10-10T23:14:52Z\",\n \"status\": \"Healthy\"\n }\n },\n \"live_ready_replicas\": 1,\n \"admitted_uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\",\n \"server_dry_run_passed\": true,\n \"admitted_spec_exactly_live_plus_image\": true,\n \"client_diff_exit\": 1,\n \"client_diff_sha256\": \"a4bc024a8cec658f835285ed51964e2e084edbaf103d45a48b89c0950bcd3e7d\",\n \"node_allocated_resources\": \"(Total limits may be over 100 percent, i.e., overcommitted.)\\n Resource Requests Limits\\n -------- -------- ------\\n cpu 3460m (86%) 36200m (905%)\\n memory 9472Mi (59%) 32898Mi (205%)\\n ephemeral-storage 0 (0%) 0 (0%)\\n hugepages-1Gi 0 (0%) 0 (0%)\\n hugepages-2Mi 0 (0%) 0 (0%)\",\n \"all_checks_pass\": true\n}\n" + }, + { + "item_id": "sealed-live-deployment-json", + "media_type": "application/json", + "content": "{\n \"apiVersion\": \"apps/v1\",\n \"kind\": \"Deployment\",\n \"metadata\": {\n \"annotations\": {\n \"argocd.argoproj.io/tracking-id\": \"informed-decision:apps/Deployment:informed-decision/informed-decision\",\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"name\": \"informed-decision\",\n \"namespace\": \"informed-decision\",\n \"uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\"\n },\n \"spec\": {\n \"progressDeadlineSeconds\": 600,\n \"replicas\": 1,\n \"revisionHistoryLimit\": 10,\n \"selector\": {\n \"matchLabels\": {\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"strategy\": {\n \"type\": \"Recreate\"\n },\n \"template\": {\n \"metadata\": {\n \"annotations\": {\n \"informed-decision.coulomb.social/admission\": \"approved; INFD-WP-0007 cutover\"\n },\n \"labels\": {\n \"app.kubernetes.io/component\": \"review\",\n \"app.kubernetes.io/name\": \"informed-decision\"\n }\n },\n \"spec\": {\n \"automountServiceAccountToken\": false,\n \"containers\": [\n {\n \"env\": [\n {\n \"name\": \"INFD_KEYCAPE_ISSUER\",\n \"value\": \"https://kc.coulomb.social\"\n },\n {\n \"name\": \"INFD_CONTAINER_CONFIG\",\n \"value\": \"/configuration/runtime.json\"\n }\n ],\n \"image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"imagePullPolicy\": \"IfNotPresent\",\n \"livenessProbe\": {\n \"failureThreshold\": 3,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\",\n \"scheme\": \"HTTP\"\n },\n \"periodSeconds\": 10,\n \"successThreshold\": 1,\n \"timeoutSeconds\": 2\n },\n \"name\": \"informed-decision\",\n \"ports\": [\n {\n \"containerPort\": 8080,\n \"name\": \"http\",\n \"protocol\": \"TCP\"\n },\n {\n \"containerPort\": 8081,\n \"name\": \"workload\",\n \"protocol\": \"TCP\"\n }\n ],\n \"readinessProbe\": {\n \"failureThreshold\": 3,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\",\n \"scheme\": \"HTTP\"\n },\n \"periodSeconds\": 10,\n \"successThreshold\": 1,\n \"timeoutSeconds\": 2\n },\n \"resources\": {\n \"limits\": {\n \"cpu\": \"500m\",\n \"memory\": \"256Mi\"\n },\n \"requests\": {\n \"cpu\": \"5m\",\n \"memory\": \"64Mi\"\n }\n },\n \"securityContext\": {\n \"allowPrivilegeEscalation\": false,\n \"capabilities\": {\n \"drop\": [\n \"ALL\"\n ]\n },\n \"readOnlyRootFilesystem\": true\n },\n \"startupProbe\": {\n \"failureThreshold\": 12,\n \"httpGet\": {\n \"path\": \"/healthz\",\n \"port\": \"http\",\n \"scheme\": \"HTTP\"\n },\n \"periodSeconds\": 10,\n \"successThreshold\": 1,\n \"timeoutSeconds\": 2\n },\n \"terminationMessagePath\": \"/dev/termination-log\",\n \"terminationMessagePolicy\": \"File\",\n \"volumeMounts\": [\n {\n \"mountPath\": \"/data\",\n \"name\": \"data\"\n },\n {\n \"mountPath\": \"/run/informed-decision\",\n \"name\": \"runtime\"\n },\n {\n \"mountPath\": \"/tmp\",\n \"name\": \"tmp\"\n },\n {\n \"mountPath\": \"/configuration\",\n \"name\": \"configuration\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/policy\",\n \"name\": \"caller\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/audit\",\n \"name\": \"audit\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/kubernetes\",\n \"name\": \"kubernetes-api\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/workload-registry\",\n \"name\": \"workload-registry\",\n \"readOnly\": true\n },\n {\n \"mountPath\": \"/var/run/secrets/informed-decision/requester\",\n \"name\": \"sitting-requester\",\n \"readOnly\": true\n }\n ]\n }\n ],\n \"dnsPolicy\": \"ClusterFirst\",\n \"restartPolicy\": \"Always\",\n \"schedulerName\": \"default-scheduler\",\n \"securityContext\": {\n \"fsGroup\": 10001,\n \"fsGroupChangePolicy\": \"OnRootMismatch\",\n \"runAsGroup\": 10001,\n \"runAsNonRoot\": true,\n \"runAsUser\": 10001,\n \"seccompProfile\": {\n \"type\": \"RuntimeDefault\"\n }\n },\n \"serviceAccount\": \"review\",\n \"serviceAccountName\": \"review\",\n \"terminationGracePeriodSeconds\": 45,\n \"volumes\": [\n {\n \"name\": \"data\",\n \"persistentVolumeClaim\": {\n \"claimName\": \"informed-decision-data\"\n }\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"runtime\"\n },\n {\n \"emptyDir\": {\n \"medium\": \"Memory\",\n \"sizeLimit\": \"16Mi\"\n },\n \"name\": \"tmp\"\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-runtime-6c221878d051\"\n },\n \"name\": \"configuration\"\n },\n {\n \"name\": \"caller\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"audience\": \"flex-auth\",\n \"expirationSeconds\": 3600,\n \"path\": \"token\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"audit\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"token\",\n \"path\": \"token\"\n }\n ],\n \"secretName\": \"informed-decision-audit\"\n }\n },\n {\n \"name\": \"kubernetes-api\",\n \"projected\": {\n \"defaultMode\": 288,\n \"sources\": [\n {\n \"serviceAccountToken\": {\n \"expirationSeconds\": 600,\n \"path\": \"token\"\n }\n },\n {\n \"configMap\": {\n \"items\": [\n {\n \"key\": \"ca.crt\",\n \"path\": \"ca.crt\"\n }\n ],\n \"name\": \"kube-root-ca.crt\"\n }\n }\n ]\n }\n },\n {\n \"configMap\": {\n \"defaultMode\": 292,\n \"name\": \"informed-decision-workload-registry\"\n },\n \"name\": \"workload-registry\"\n },\n {\n \"name\": \"sitting-requester\",\n \"secret\": {\n \"defaultMode\": 288,\n \"items\": [\n {\n \"key\": \"client-secret\",\n \"path\": \"client-secret\"\n }\n ],\n \"optional\": false,\n \"secretName\": \"informed-decision-sitting-requester\"\n }\n }\n ]\n }\n }\n }\n}\n" + }, + { + "item_id": "change-guard-py", + "media_type": "text/plain", + "content": "\"\"\"Read-only exact Deployment and admission boundaries; no mutation authority.\"\"\"\nimport copy\nimport hashlib\nimport json\n\nBASE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173'\nCANDIDATE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a'\n\n\ndef dependency_projection(configmap, pvc):\n if (configmap.get('kind') != 'ConfigMap' or configmap.get('immutable') is not True\n or configmap['metadata']['namespace'] != 'informed-decision'\n or configmap['metadata']['name'] != 'informed-decision-runtime-6c221878d051'\n or set(configmap.get('data', {})) != {'runtime.json'}\n or configmap.get('binaryData')):\n raise ValueError('unexpected immutable runtime config identity')\n if (pvc.get('kind') != 'PersistentVolumeClaim'\n or pvc['metadata']['namespace'] != 'informed-decision'\n or pvc['metadata']['name'] != 'informed-decision-data'\n or pvc.get('status', {}).get('phase') != 'Bound'\n or not pvc.get('spec', {}).get('volumeName')):\n raise ValueError('unexpected bound PVC custody')\n config = projection(configmap)\n config.pop('data')\n config['canonical_data_sha256'] = hashlib.sha256(json.dumps(\n configmap['data'], sort_keys=True, separators=(',', ':')).encode()).hexdigest()\n return {'configmap': config, 'pvc': projection(pvc), 'pvc_phase': 'Bound'}\n\n\ndef check_dependencies(configmap, pvc, sealed):\n if dependency_projection(configmap, pvc) != sealed:\n raise ValueError('runtime config or PVC identity/custody changed')\n\n\ndef projection(value):\n value = copy.deepcopy(value)\n value.pop('status', None)\n for key in ('resourceVersion', 'generation', 'creationTimestamp', 'managedFields'):\n value['metadata'].pop(key, None)\n for key in ('kubectl.kubernetes.io/last-applied-configuration', 'deployment.kubernetes.io/revision'):\n value['metadata'].get('annotations', {}).pop(key, None)\n return value\n\n\ndef check_current(current, sealed):\n if projection(current) != sealed:\n raise ValueError('sealed live UID or configuration changed')\n\n\ndef check_admitted(admitted, sealed):\n expected = copy.deepcopy(sealed)\n containers = expected['spec']['template']['spec']['containers']\n if len(containers) != 1 or containers[0]['name'] != 'informed-decision' or containers[0]['image'] != BASE:\n raise ValueError('unexpected baseline container identity')\n containers[0]['image'] = CANDIDATE\n if projection(admitted) != expected:\n raise ValueError('admission changed configuration beyond the sole image pin')\n\n\ndef transport_result(exit_code, output):\n import json\n try:\n value = json.loads(output)\n except (ValueError, TypeError):\n return {'all_checks_pass': False, 'reason': 'invalid transport result'}\n if exit_code != 0 or not isinstance(value, dict) or value.get('all_checks_pass') is not True:\n return {'all_checks_pass': False, 'reason': 'read-only preflight refused'}\n return value\n" + }, + { + "item_id": "preflight-py", + "media_type": "text/plain", + "content": "\"\"\"Read-only refresh; exact original capture remains immutable; never execute cutover.\"\"\"\nimport argparse,hashlib,json,subprocess,sys\nfrom pathlib import Path\nif sys.flags.optimize:\n raise SystemExit(\"optimized interpreter refused before source/transport execution\")\nROOT=Path(__file__).resolve().parent\np=argparse.ArgumentParser();p.add_argument('--receipt-output',type=Path,required=True);p.add_argument('--source-root',type=Path,default=Path('/home/worsch/informed-decision'));a=p.parse_args()\nout=a.receipt_output.resolve()\nif not a.receipt_output.is_absolute() or out==ROOT or ROOT in out.parents or out==a.source_root.resolve() or a.source_root.resolve() in out.parents or out.exists():\n raise SystemExit('unique execution receipt must be outside the sealed packet')\ninputs=json.loads((ROOT/'preflight-inputs.json').read_text())\nfor relative,digest in inputs['packet_files'].items():\n path=ROOT/relative\n if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('sealed helper/input bytes changed')\nfor relative,digest in inputs['owner_source_files'].items():\n path=a.source_root/relative\n if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('owner source bytes changed')\nfrom change_guard import transport_result\nprogram='import subprocess,json,hashlib,datetime,sys,copy,re\\nif sys.flags.optimize:raise RuntimeError(\"optimized interpreter refused\")\\ncandidate=json.loads(CANDIDATE_LITERAL)\\nsealed_dependencies=json.loads(DEPENDENCIES_LITERAL)\\nsealed_baseline=json.loads(SEALED_LITERAL)\\nexec(GUARD_LITERAL)\\ndef run(args,data=None):\\n p=subprocess.run(args,input=data,text=True,capture_output=True)\\n if p.returncode: raise ValueError(\\'read-only command failed: \\'+args[1]+\\' \\'+args[2])\\n return p.stdout\\nlive=json.loads(run([\\'kubectl\\',\\'get\\',\\'deployment\\',\\'informed-decision\\',\\'-n\\',\\'informed-decision\\',\\'-o\\',\\'json\\']))\\ncm=json.loads(run([\\'kubectl\\',\\'get\\',\\'configmap\\',\\'informed-decision-runtime-6c221878d051\\',\\'-n\\',\\'informed-decision\\',\\'-o\\',\\'json\\']))\\npvc=json.loads(run([\\'kubectl\\',\\'get\\',\\'pvc\\',\\'informed-decision-data\\',\\'-n\\',\\'informed-decision\\',\\'-o\\',\\'json\\']))\\ncheck_dependencies(cm,pvc,sealed_dependencies)\\ncheck_current(live,sealed_baseline)\\nspec=live[\\'spec\\']; cs=spec[\\'template\\'][\\'spec\\'][\\'containers\\'];assert len(cs)==1 and cs[0][\\'name\\']==\\'informed-decision\\'\\nexpected_env={\\'INFD_KEYCAPE_ISSUER\\':\\'https://kc.coulomb.social\\',\\'INFD_CONTAINER_CONFIG\\':\\'/configuration/runtime.json\\'}\\nassert cs[0].get(\\'env\\')==[{\\'name\\':\\'INFD_KEYCAPE_ISSUER\\',\\'value\\':expected_env[\\'INFD_KEYCAPE_ISSUER\\']},{\\'name\\':\\'INFD_CONTAINER_CONFIG\\',\\'value\\':expected_env[\\'INFD_CONTAINER_CONFIG\\']}]\\nassert cs[0][\\'image\\']==\\'forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\\'\\nassert spec[\\'replicas\\']==1 and spec[\\'strategy\\']=={\\'type\\':\\'Recreate\\'}\\nassert next(v for v in spec[\\'template\\'][\\'spec\\'][\\'volumes\\'] if v[\\'name\\']==\\'configuration\\')[\\'configMap\\'][\\'name\\']==\\'informed-decision-runtime-6c221878d051\\'\\nassert live[\\'status\\'].get(\\'readyReplicas\\')==1 and live[\\'status\\'].get(\\'updatedReplicas\\')==1\\nsealed={\\'apiVersion\\':live[\\'apiVersion\\'],\\'kind\\':live[\\'kind\\'],\\'metadata\\':{k:copy.deepcopy(v) for k,v in live[\\'metadata\\'].items() if k not in (\\'resourceVersion\\',\\'generation\\',\\'creationTimestamp\\',\\'managedFields\\')},\\'spec\\':copy.deepcopy(spec)}\\nfor key in (\\'kubectl.kubernetes.io/last-applied-configuration\\',\\'deployment.kubernetes.io/revision\\'):sealed[\\'metadata\\'].get(\\'annotations\\',{}).pop(key,None)\\nadmitted=json.loads(run([\\'kubectl\\',\\'apply\\',\\'--dry-run=server\\',\\'-f\\',\\'-\\',\\'-o\\',\\'json\\'],json.dumps(candidate)))\\ncheck_admitted(admitted,sealed_baseline)\\napp=json.loads(run([\\'kubectl\\',\\'get\\',\\'application\\',\\'informed-decision\\',\\'-n\\',\\'argocd\\',\\'-o\\',\\'json\\']))\\nassert app[\\'spec\\'][\\'source\\'][\\'path\\']==\\'deploy/lifecycle\\' and not app[\\'spec\\'].get(\\'syncPolicy\\',{}).get(\\'automated\\')\\nargo={\\'uid\\':app[\\'metadata\\'][\\'uid\\'],\\'repoURL\\':app[\\'spec\\'][\\'source\\'][\\'repoURL\\'],\\'targetRevision\\':app[\\'spec\\'][\\'source\\'][\\'targetRevision\\'],\\'path\\':app[\\'spec\\'][\\'source\\'][\\'path\\'],\\'destination\\':app[\\'spec\\'][\\'destination\\'],\\'automated\\':False,\\'sync\\':app.get(\\'status\\',{}).get(\\'sync\\'),\\'health\\':app.get(\\'status\\',{}).get(\\'health\\')}\\nexpected_argo=json.loads(ARGO_LITERAL)\\nfor key in (\\'uid\\',\\'repoURL\\',\\'targetRevision\\',\\'path\\',\\'destination\\',\\'automated\\'):\\n assert argo[key]==expected_argo[key]\\nassert argo[\\'health\\'][\\'status\\']==\\'Healthy\\'\\ndiff=subprocess.run([\\'kubectl\\',\\'diff\\',\\'-f\\',\\'-\\'],input=json.dumps(candidate),text=True,capture_output=True);assert diff.returncode in (0,1)\\n# Diff can contain only nonsecret Deployment references; preserve digest rather than raw stdout.\\nnode=run([\\'kubectl\\',\\'describe\\',\\'node\\']);allocated=re.search(r\\'Allocated resources:.*?CPU Requests|Allocated resources:\\',node,re.S)\\nsection=node.split(\\'Allocated resources:\\')[1].split(\\'Events:\\')[0] if \\'Allocated resources:\\' in node else \\'\\'\\nnodes=json.loads(run([\\'kubectl\\',\\'get\\',\\'nodes\\',\\'-o\\',\\'json\\']))[\\'items\\'];assert len(nodes)==1\\nalloc=nodes[0][\\'status\\'][\\'allocatable\\'];cpu=alloc[\\'cpu\\'];cpu_m=int(cpu[:-1]) if cpu.endswith(\\'m\\') else int(cpu)*1000\\nrequested=int(re.search(r\\'cpu\\\\s+(\\\\d+)m\\',section).group(1));assert requested<=cpu_m\\nreceipt={\\'node_allocatable_cpu_m\\':cpu_m,\\'node_requested_cpu_m\\':requested,\\'captured_at\\':datetime.datetime.now(datetime.timezone.utc).isoformat(),\\'native_workload_changed\\':False,\\'native_backup_restore_executed\\':False,\\'argo\\':argo,\\'native_dependencies_checked\\':True,\\'configmap_uid\\':cm[\\'metadata\\'][\\'uid\\'],\\'pvc_uid\\':pvc[\\'metadata\\'][\\'uid\\'],\\'live_ready_replicas\\':1,\\'admitted_uid\\':admitted[\\'metadata\\'][\\'uid\\'],\\'server_dry_run_passed\\':True,\\'admitted_spec_exactly_live_plus_image\\':True,\\'client_diff_exit\\':diff.returncode,\\'client_diff_sha256\\':hashlib.sha256(diff.stdout.encode()).hexdigest(),\\'node_allocated_resources\\':section.strip(),\\'all_checks_pass\\':True}\\nprint(json.dumps(receipt))\\n'\nfor marker,value in [('DEPENDENCIES_LITERAL',(ROOT/'sealed-native-dependencies.json').read_text()),('CANDIDATE_LITERAL',(ROOT/'candidate-deployment.json').read_text()),('SEALED_LITERAL',(ROOT/'sealed-live-deployment.json').read_text()),('GUARD_LITERAL',(ROOT/'change_guard.py').read_text()),('ARGO_LITERAL',json.dumps(json.loads((ROOT/'native-preflight.json').read_text())['argo']))]:\n program=program.replace(marker,repr(value))\nprogram='import traceback,json\\ntry:\\n'+''.join(' '+line+'\\n' for line in program.splitlines())+\"except Exception as error:\\n print(json.dumps({'all_checks_pass':False,'exception_type':type(error).__name__,'exception_line':traceback.extract_tb(error.__traceback__)[-1].lineno}))\\n\"\nr=subprocess.run(['ssh','railiance01','python3 -'],input=program,text=True,capture_output=True)\nresult=transport_result(r.returncode,r.stdout);result['sealed_preflight_inputs_sha256']=hashlib.sha256((ROOT/'preflight-inputs.json').read_bytes()).hexdigest();result['fresh_execution_receipt']=True\nout.write_text(json.dumps(result,indent=2)+'\\n');print(json.dumps(result,indent=2));sys.exit(0 if result.get('all_checks_pass') is True else 1)\n" + }, + { + "item_id": "preflight-inputs-json", + "media_type": "application/json", + "content": "{\n \"packet_files\": {\n \"change_guard.py\": \"f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be\",\n \"preflight.py\": \"6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd\",\n \"candidate-deployment.json\": \"722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e\",\n \"rollback-deployment.json\": \"39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121\",\n \"sealed-live-deployment.json\": \"d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362\",\n \"native-preflight.json\": \"eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262\",\n \"sealed-native-dependencies.json\": \"042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369\",\n \"sqlite_readonly.py\": \"eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38\"\n },\n \"owner_source_files\": {\n \"deploy/lifecycle/admission.candidate.json\": \"92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55\",\n \"deploy/lifecycle/service.candidate.json\": \"38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4\"\n }\n}\n" + }, + { + "item_id": "fresh-preflight-validation-json", + "media_type": "application/json", + "content": "{\n \"node_allocatable_cpu_m\": 4000,\n \"node_requested_cpu_m\": 3460,\n \"captured_at\": \"2026-10-11T01:39:14.234277+00:00\",\n \"native_workload_changed\": false,\n \"native_backup_restore_executed\": false,\n \"argo\": {\n \"uid\": \"499868f2-eabc-4df4-ae31-b89ce58d750d\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"path\": \"deploy/lifecycle\",\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"automated\": false,\n \"sync\": {\n \"comparedTo\": {\n \"destination\": {\n \"namespace\": \"informed-decision\",\n \"server\": \"https://kubernetes.default.svc\"\n },\n \"source\": {\n \"path\": \"deploy/lifecycle\",\n \"repoURL\": \"https://forgejo.coulomb.social/coulomb/informed-decision.git\",\n \"targetRevision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\"\n }\n },\n \"revision\": \"7db8485ffecdebfabd77a9daec085553c74bf0bf\",\n \"status\": \"OutOfSync\"\n },\n \"health\": {\n \"lastTransitionTime\": \"2026-10-10T23:14:52Z\",\n \"status\": \"Healthy\"\n }\n },\n \"native_dependencies_checked\": true,\n \"configmap_uid\": \"90113d2d-54d9-4e82-b1d3-90b49ebed2b5\",\n \"pvc_uid\": \"d80b25b1-141a-441b-b205-98fa2fd98b7c\",\n \"live_ready_replicas\": 1,\n \"admitted_uid\": \"a588e10a-90d2-4883-975e-6dd8b8feca92\",\n \"server_dry_run_passed\": true,\n \"admitted_spec_exactly_live_plus_image\": true,\n \"client_diff_exit\": 1,\n \"client_diff_sha256\": \"840769c7d2a9c1655c40a3259f833d1fc8f69950ceb3bedb707a955fed711566\",\n \"node_allocated_resources\": \"(Total limits may be over 100 percent, i.e., overcommitted.)\\n Resource Requests Limits\\n -------- -------- ------\\n cpu 3460m (86%) 36200m (905%)\\n memory 9472Mi (59%) 32898Mi (205%)\\n ephemeral-storage 0 (0%) 0 (0%)\\n hugepages-1Gi 0 (0%) 0 (0%)\\n hugepages-2Mi 0 (0%) 0 (0%)\",\n \"all_checks_pass\": true,\n \"sealed_preflight_inputs_sha256\": \"756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06\",\n \"fresh_execution_receipt\": true\n}\n" + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json b/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json new file mode 100644 index 0000000..cc6f5d7 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json @@ -0,0 +1,277 @@ +[ + { + "id": "infd-20261011-purpose-overlay-r1", + "register": { + "memo": { + "id": "infd-20261011-purpose-overlay-r1", + "version": 1, + "question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?", + "requested_act": "approve", + "binding_level": "organizational", + "brief": "Actual owner CI published763c from3e4bcb26; unchanged8base layers plus one policy.py, installedUID10001 and10purpose checks pass. Full44package scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, identical actualbase scan. Only Deploymentimage changes; manualArgo prune=false, runtime6c/schema5/PVC/identity/policies unchanged. Before ANY admin/Store, readonly schema5/integrity/count gate; protected backup/restore, sealedDeployment+actualCM/PVC identities and unoptimizedpreflight required, not executed. Live owner riskrecord/T05 dueOct18; Recreate briefly interrupts service. No priorconfigapproval reused.", + "binding": { + "principal": { + "id": "pending-human-session", + "kind": "person", + "display_name": "Founder review" + }, + "target": { + "kind": "environment", + "id": "realm:kubernetes/railiance01/informed-decision", + "label": "Informed Decision image-only purpose hardening on railiance01", + "environment": "production" + }, + "terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/off-cluster custody/offline restore plus exact owner-source pin/manual Deployment-only image release763c, prune=false. ADMINISTER activationAPPROVED only upon actualdisposition, execute by2026-10-12T23:59:59Z afterfresh sealedCM/PVC/Deploymentpreflight+pre-openreadonlyschema5+restoregates; rollbackprior7f5 retaining latestschema5DB. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 ownerreviewdue2026-10-18. No credential/policy/grant change, humanbinding, wholeAppsync or autonomygrant." + }, + "step_kind": "approve", + "packet": [ + { + "item_id": "decision-packet-md", + "label": "decision-packet.md", + "hash": "sha256:23da78cf998a32af0481e68567db94bb40781cc18f147461f779d40ebd329fd1" + }, + { + "item_id": "proposal-json", + "label": "proposal.json", + "hash": "sha256:a59bcddc6c79e3ba8265a95b4b68facda2683abda8e47e5bb48ce402b9e1fa82" + }, + { + "item_id": "candidate-admission-json", + "label": "candidate-admission.json", + "hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "item_id": "rollback-admission-json", + "label": "rollback-admission.json", + "hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "item_id": "candidate-deployment-json", + "label": "candidate-deployment.json", + "hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "item_id": "rollback-deployment-json", + "label": "rollback-deployment.json", + "hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "item_id": "published-verification-json", + "label": "published-verification.json", + "hash": "sha256:8a676c38f89f9ca762b8ebe945b5acb90d47a4cb350692687abb985bbb2d8ae2" + }, + { + "item_id": "registry-proof-json", + "label": "registry-proof.json", + "hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "item_id": "security-summary-json", + "label": "security-summary.json", + "hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "item_id": "trivy-full-json", + "label": "trivy-full.json", + "hash": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "item_id": "sqlite-readonly-py", + "label": "sqlite_readonly.py", + "hash": "sha256:eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38" + }, + { + "item_id": "sealed-native-dependencies-json", + "label": "sealed-native-dependencies.json", + "hash": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369" + }, + { + "item_id": "native-backup-restore-protocol-md", + "label": "native-backup-restore-protocol.md", + "hash": "sha256:2f8d4894c2861b34977ec020593b7515a8ee35a43ce2e6aef2d96a6d34a94ddc" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "label": "inherited-vulnerability-follow-through.json", + "hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "item_id": "native-preflight-json", + "label": "native-preflight.json", + "hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "item_id": "sealed-live-deployment-json", + "label": "sealed-live-deployment.json", + "hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "item_id": "change-guard-py", + "label": "change_guard.py", + "hash": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be" + }, + { + "item_id": "preflight-py", + "label": "preflight.py", + "hash": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd" + }, + { + "item_id": "preflight-inputs-json", + "label": "preflight-inputs.json", + "hash": "sha256:756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06" + }, + { + "item_id": "fresh-preflight-validation-json", + "label": "fresh-preflight-validation.json", + "hash": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7" + } + ], + "highlights": [ + { + "id": "native-custody-rollout-and-known-medium", + "item_id": "decision-packet-md", + "note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof. Admin can migrate oldschemas: readonlyschema5/integrity/count check must precede every native/offline Store/admin open. ActualCM/PVC UID/custody drift and optimizedPython stop the operation.", + "required_ack": true, + "severity": "warning", + "locator": { + "kind": "section", + "heading": "Requested decision" + } + } + ], + "sealed": false, + "approval_id": null, + "approval_binding_digest": null + }, + "documents": [ + { + "digest": "sha256:23da78cf998a32af0481e68567db94bb40781cc18f147461f779d40ebd329fd1", + "media_type": "text/markdown", + "content_base64": "IyBJbmZvcm1lZCBEZWNpc2lvbiBwdXJwb3NlIG92ZXJsYXkgcmVsZWFzZQoKIyMgUmVxdWVzdGVkIGRlY2lzaW9uCgpBcHByb3ZlIHRoZSBleGFjdCBwdXJwb3NlLW9ubHkgaW1hZ2Ugcm9sbG91dCBhbmQgcHJvdGVjdGVkIHJlYWwtZGF0YSBiYWNrdXAvcmVzdG9yZSBwcm90b2NvbCBmb3IgdGhlIGV4aXN0aW5nIEluZm9ybWVkIERlY2lzaW9uIHNlcnZpY2Ugb24gcmFpbGlhbmNlMDEuIFRoaXMgcmVxdWVzdCBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBhbHJlYWR5IGFwcHJvdmVkIGNvbmZpZy1vbmx5IHJlcGFpci4gT25seSB0aGUgZXhpc3RpbmcgRGVwbG95bWVudCBpbWFnZSBjaGFuZ2VzIHRocm91Z2ggdGhlIG93bmVyJ3MgbWFudWFsIEFyZ28gd29ya2Zsb3csIHdpdGggcHJ1bmUgZGlzYWJsZWQuIFJ1bnRpbWUgQ29uZmlnTWFwIGBpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MWAsIHNjaGVtYTUsIFBWQywgY3JlZGVudGlhbHMsIGF1ZGllbmNlLCBwb2xpY2llcywgcmVnaXN0cmllcywgYWNjZXNzLCByZXBsaWNhMSBhbmQgUmVjcmVhdGUgc3RyYXRlZ3kgcmVtYWluIGZpeGVkLiBFeGVjdXRlIGJ5IDIwMjYtMTAtMTJUMjM6NTk6NTlaLCBhZnRlciByZWZyZXNoZWQgc2VhbGVkLXNvdXJjZS9VSUQvY29uZmlndXJhdGlvbiBjaGVja3MgYW5kIGJhY2t1cC9yZXN0b3JlIGdhdGVzLiBFeHBpcnkgc3RvcHMgYXV0aG9yaXphdGlvbiBmb3IgYW4gdW5zdGFydGVkIHJlbGVhc2U7IGl0IGRvZXMgbm90IGluc3RhbGwgYSBjb250cm9sbGVyIG9yIGF1dG9tYXRpY2FsbHkgcm9sbCBiYWNrIGFuIGFscmVhZHkgcmVsZWFzZWQgaW1hZ2UuCgojIyBBcnRpZmFjdCBhbmQga25vd24gZmluZGluZwoKQWN0dWFsIG93bmVyIENJIHRhc2sxMTQ4NC9ydW4zIHB1Ymxpc2hlZCBpbW11dGFibGUgaW1hZ2UgYHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhYCBmcm9tIHNvdXJjZSBgM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OGAuIEFub255bW91cyByZWdpc3RyeSB2ZXJpZmljYXRpb24gcHJlc2VydmVzIGFsbCBlaWdodCBiYXNlIGNvbXByZXNzZWQgYmxvYnMvcm9vdGZzIGxheWVycyBhbmQgYWRkcyBvbmx5IHBvbGljeS5weSB3aXRoIGV4YWN0IHNvdXJjZSBoYXNoIGFuZCBtb2RlMDY0NC4gTGVnYWN5LWJ1aWxkZXIgbWVkaWEtdHlwZS9kZWZhdWx0IGNvbmZpZyBzZXJpYWxpemF0aW9uIGRpZmZlcmVuY2VzIGFyZSByZWNvcmRlZDsgdGhlIHJ1bnRpbWUgc2VtYW50aWNzIHJlbWFpbiB1bmNoYW5nZWQuIFB1bGxlZCBwdWJsaXNoZWQgaW1hZ2UgZXhlY3V0ZXMgYXMgVUlEMTAwMDEvR0lEMTAwMDEgYW5kIHBhc3NlcyB0ZW4gaW5zdGFsbGVkIGNoZWNrczogdHdvIHN1cHBvcnRlZCBiaW5kaW5nIGZvcm1zLCBlaWdodCBhZHZpc29yeS9tYWxmb3JtZWQgcmVmdXNhbHMuIFRlc3RzIHVzZSBzeW50aGV0aWMgdHJhbnNwb3J0IGFuZCBkbyBub3QgY2xhaW0gbmV3IG5hdGl2ZSBQRFAgYXV0aG9yaXphdGlvbiBwcm9vZi4gVGhlIHR3byBmYWlsZWQgQ0kgYXR0ZW1wdHMgcmVtYWluIGluIHRoZSBzYW1lIHRyaWFsIGhpc3RvcnkuCgpBY3R1YWwgdW5maWx0ZXJlZCBwaW5uZWQgc2Nhbm5lci9EQiBldmlkZW5jZSBjb3ZlcnM0NHBhY2thZ2VzOiB6ZXJvIEhJR0gvQ1JJVElDQUwsICoqb25lIGZpeGFibGUgTUVESVVNKiosIENWRS0yMDI2LTg1MDkxLCB6bGliMS4zLjItcjAgZml4ZWQgaW4xLjMuMi1yMS4gQWN0dWFsIGN1cnJlbnQtYmFzZSBzY2FuIGhhcyB0aGUgaWRlbnRpY2FsIGZpbmRpbmcuIEFwcHJvdmluZyB0aGlzIHBhY2tldCBleHBsaWNpdGx5IHBlcm1pdHMgdGhpcyBpbmhlcml0ZWQgZmluZGluZyBkdXJpbmcgdGhpcyBuYXJyb3cgcHVycG9zZSByZWxlYXNlOyBpdCBpcyBub3QgYSBSaXNrTmV4dXMgZXN0YXRlIHJpc2sgZ3JhZGUgb3IgemVyby1DVkUgY2xhaW0uIE93bmVyIHJlY29yZCBJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSBhbmQgbGl2ZSB0YXNrIElORkQtV1AtMDAwOS1UMDUgcmVxdWlyZSBzZXBhcmF0ZSBiYXNlIHJlZnJlc2ggYW5kIG5hdGl2ZSBhcHByb3ZhbCwgcmV2aWV3ZWQgYnkyMDI2LTEwLTE4LiBUaGF0IHJldmlldyBkYXRlIGlzIG1hbnVhbCBmb2xsb3ctdGhyb3VnaCwgd2l0aCBubyBhdXRvLWNvbnRyb2xsZXIgY2xhaW0uIFNjYW5uZXIgbm90ZXMgQWxwaW5lMy4yNCBhYnNlbnQgRU9MIGxpc3Q7IE9TIHZ1bG5lcmFiaWxpdHkgZGV0ZWN0aW9uIHJhbiBhZ2FpbnN0MzhPU3BhY2thZ2VzLiBVbmtub3duIHZ1bG5lcmFiaWxpdGllcyByZW1haW4gb3V0c2lkZSBzbmFwc2hvdCBrbm93bGVkZ2UuCgojIyBOYXRpdmUgYmFzZWxpbmUgYW5kIGdhdGVzCgpPcmlnaW5hbCByZWFkLW9ubHkgY2FwdHVyZTAxOjI1OjM4WjogZXhpc3RpbmcgRGVwbG95bWVudCBVSURhNTg4ZTEwYSwgUmVhZHkxLCBpbWFnZTdmNWMsIHVuY2hhbmdlZCBydW50aW1lNmM7IG5hdGl2ZSBhZG1pc3Npb24gcHJlc2VydmVzIHRoZSBmdWxsIGNvbmZpZ3VyYXRpb24gcGx1cyBleGFjdGx5IHRoZSBwcm9wb3NlZCBpbWFnZS4gQ2xpZW50ZGlmZiByZXR1cm5zMS4gUmVxdWVzdHMzNDYwLzQwMDBtQ1BVODYlLCBtZW1vcnk5NDcyTWk1OSU7IHJlZnJlc2ggYmVmb3JlIHJlbGVhc2UuIEV4aXN0aW5nIEFyZ28gQXBwbGljYXRpb24gVUlENDk5ODY4ZjIgaXMgbWFudWFsLCB0YXJnZXQ3ZGI4NDg1LCBIZWFsdGh5IHdpdGggcHJlLWV4aXN0aW5nIE91dE9mU3luYyBzdGF0dXMuIERvIG5vdCB0cmVhdCBhIHNjb3BlZCBEZXBsb3ltZW50IHJlbGVhc2UgYXMgZnVsbC1hcHAgcmVjb25jaWxpYXRpb24uIFByZXNlcnZlIGl0cyB0cmFja2luZy1pZDsgbm8gdW5yZWxhdGVkIHJlc291cmNlIHN5bmMvcHJ1bmUvYWRvcHRpb24uCgpUaGUgcmVmaW5lZCByZWFkLW9ubHkgaGVscGVyIGJpbmRzIG9yaWdpbmFsIHNvdXJjZS9oZWxwZXIvcmVuZGVyL2Jhc2VsaW5lIGhhc2hlcyBhbmQgYWN0dWFsIGltbXV0YWJsZSBDb25maWdNYXAvUFZDIFVJRHMsIHJ1bnRpbWUtZGF0YSBjaGVja3N1bSBhbmQgYm91bmQgdm9sdW1lIGlkZW50aXR5LCBleHBsaWNpdGx5IHJlZnVzZXMgb3B0aW1pemVkIGludGVycHJldGVycywgY2hlY2tzIGV4YWN0IGZyZXNoIGxpdmUgVUlEL2NvbmZpZ3VyYXRpb24gYW5kIGFkbWlzc2lvbiwgYW5kIHdyaXRlcyBhIHNlcGFyYXRlIGV4ZWN1dGlvbiByZWNlaXB0IG91dHNpZGUgdGhpcyBzZWFsZWQgcGFja2V0LiBGYWlsZWQgaW5pdGlhbCByYXcgS3VzdG9taXplIG1ldGFkYXRhIGNoZWNrIGlzIHJldGFpbmVkOiBkaXJlY3Qga3ViZWN0bCBhcHBseSB3b3VsZCBkcm9wIEFyZ28gdHJhY2tpbmctaWQuIFRoZSByZXZpZXdlZCBzZWxlY3RlZCBEZXBsb3ltZW50IGV4cGxpY2l0bHkgcmV0YWlucyB0aGF0IGV4aXN0aW5nIElELCBtYXRjaGluZyBBcmdvIG93bmVyc2hpcC4gQW55IHVucmVsYXRlZCBkcmlmdCwgZGlmZmVyZW50IFVJRCwgYWx0ZXJlZCBhZG1pc3Npb24sIHVuYXZhaWxhYmxlIHByb3RlY3RlZCBiYWNrdXAgY2FwYWNpdHksIHVuY2VydGFpbiBiYWNrdXAsIHJlc3RvcmUgbWlzbWF0Y2ggb3IgdW5oZWFsdGh5IGJhc2VsaW5lIHN0b3BzIHRoZSByZWxlYXNlLgoKIyMgUHJvdGVjdGVkIGJhY2t1cCBhbmQgcmVsZWFzZQoKQmVmb3JlICoqYW55KiogbmF0aXZlIHNvdXJjZSBvciBvZmZsaW5lLXJlc3RvcmVkIFN0b3JlL2FkbWluIG9wZW4sIHVzZSB0aGUgYXR0YWNoZWQgc3RkbGliIFNRTGl0ZSBtb2RlPXJvL3F1ZXJ5X29ubHkgY2hlY2tlciB0byByZXF1aXJlIHNjaGVtYTUsIGludGVncml0eT1vayBhbmQgY291bnQtb25seSBiYXNlbGluZS4gVGhlIGFkbWluIGF1dG9tYXRpY2FsbHkgbWlncmF0ZXMgb2xkc2NoZW1hcywgc28gYSBwb3N0LW9wZW4gcmVwb3J0IGFsb25lIGNhbm5vdCBwcm92ZSBubyBtaWdyYXRpb24uIFJlZnVzZSBvdGhlciBzY2hlbWFzIGJlZm9yZSBhZG1pbi4gVGhlbiB1c2UgdGhlIGV4aXN0aW5nIG93bmVyIGFkbWluJ3MgU1FMaXRlIGJhY2t1cCBBUEksIG5vdCBhIHJhdyBjb3B5IG9mIHRoZSBsaXZlIGRhdGFiYXNlL1dBTC4gUHJvdGVjdCBkaXJlY3RvcmllczA3MDAvZmlsZXMwNjAwLCBvd25lZCBieTEwMDAxLiBSZXRhaW4gaW5kZXBlbmRlbnRseSBwcm90ZWN0ZWQgb2ZmLWNsdXN0ZXIgc25hcHNob3QgY3VzdG9keSBhbmQgb25seSBjb3VudC9oYXNoIHJlY2VpcHRzLiBObyBkYXRhYmFzZSBjb250ZW50cywgY2FsbGVyIHRva2VucywgcmVxdWVzdGVyIFNlY3JldCBvciBydW50aW1lIGNyZWRlbnRpYWwgZmlsZXMgZW50ZXIgR2l0LCBTdGF0ZSBIdWIsIGxvZ3Mgb3IgdGhpcyBwYWNrZXQuIE5hdGl2ZSBiYWNrdXAgYW5kIG9mZmxpbmUgcmVhbC1kYXRhIHJlc3RvcmUgaGF2ZSBub3QgeWV0IG9jY3VycmVkLiBVc2UgYW4gaXNvbGF0ZWQgcHJpdmF0ZSBkaXNwb3NhYmxlIGNvcHksIG5ldHdvcmtub25lIGFuZCBubyBydW50aW1lIGNvbmZpZy90b2tlbiBtb3VudHMsIHJ1biB0aGUgcHJlLW9wZW4gY2hlY2tlciBhbmQgZXhhY3Qgb2ZmbGluZSBgLS1lbnRyeXBvaW50IGluZm9ybWVkLWRlY2lzaW9uLWFkbWluIGluc3BlY3QgLS1kYiAvcmVzdG9yZS9yZXZpZXcuc3FsaXRlYCBhZnRlciBpdCBwYXNzZXMsIGNvbXBhcmluZyBmcm96ZW4gc25hcHNob3QgY291bnRzIHdpdGhvdXQgc2VydmljZSBzdGFydHVwLCB0aGVuIGNsZWFuIG9ubHkgdGhlIGRpc3Bvc2FibGUgcmVzdG9yZWQgY29weS4gUmV0YWluIHRoZSBvcmlnaW5hbCBzbmFwc2hvdC4gVGhlIGF0dGFjaGVkIHByb3RvY29sIGJpbmRzIGNhc2Utc3BlY2lmaWMgcGF0aHMgYW5kIGZhaWwtY2xvc2VkIGNhcGFjaXR5L2N1c3RvZHkgY2hlY2tzLgoKUmVmcmVzaCBhIGNvbnNpc3RlbnQgb25saW5lIHNuYXBzaG90IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZS1vbmx5IGN1dG92ZXIuIFRoaXMgcHJvdG9jb2wgZG9lcyBub3QgYXNzZXJ0IHRyYWZmaWMvZGlzcGF0Y2hlciBxdWllc2NlbmNlLiBDdXJyZW50IGFuZCBjYW5kaWRhdGUgc2hhcmUgc2NoZW1hNSBhbmQgdW5jaGFuZ2VkIHN0b3JlIGNvZGU7IHJvbGxiYWNrIHJldGFpbnMgdGhlIGxhdGVzdCBsaXZlIGRhdGFiYXNlIGFuZCBhbGwgbmV3L3VuY2VydGFpbiBldmlkZW5jZS4gU3RvcCB0aGUgb2xkIHdyaXRlciBiZWZvcmUgdGhlIG5ldyBvbmUgd2l0aCBleGlzdGluZyBSZWNyZWF0ZSBhbmQgc2luZ2xlLXdyaXRlciBsb2NrLiBEbyBub3QgcmVzdG9yZSBhbiBvbGRlciBzbmFwc2hvdCBvdmVyIGxhdGVyIHdyaXRlcywgZGlzY2FyZCB1bnJlc29sdmVkIGV4dGVybmFsIGVmZmVjdHMsIHNjYWxlIG90aGVyIHdvcmtsb2FkcywgY2hhbmdlIHBvbGljaWVzL2lkZW50aXR5L2N1c3RvZHksIG9yIGNyZWF0ZSBodW1hbiBkaXNwb3NpdGlvbnMgdG8gbWFrZSBjaGVja3MgZ3JlZW4uCgpQaW4gdGhlIGV4aXN0aW5nIEFwcGxpY2F0aW9uIHRvIHRoZSBleGFjdCBvd25lciBjb21taXQgY29udGFpbmluZyB0aGUgYXBwcm92ZWQgY2FuZGlkYXRlIHNvdXJjZSBoYXNoZXMsIGFuZCBtYW51YWxseSBzeW5jIG9ubHkgRGVwbG95bWVudC9pbmZvcm1lZC1kZWNpc2lvbiB3aXRoIHBydW5lPWZhbHNlLiBWZXJpZnkgYWN0dWFsaW1hZ2UvbW9kdWxlL21vZGUvVUlELCBoZWFsdGgvcmVhZGluZXNzIGFuZCBpbnN0YWxsZWQgcHVycG9zZSByZWZ1c2FscyBvbiB0aGUgcmVhbCBwbGFjZW1lbnQ7IGV4cGxpY2l0bHkgZGlzdGluZ3Vpc2ggc3ludGhldGljLXRyYW5zcG9ydCBjaGVja3MgZnJvbSBhY3R1YWwgcHJvdmlkZXIgZXZpZGVuY2UuIEV4aXN0aW5nIG5hdGl2ZSBiaW5kaW5nL2xpZmVjeWNsZSBiZWhhdmlvciBtdXN0IHJlbWFpbiBhdmFpbGFibGUuIElmIHVuaGVhbHRoeSBvciB2ZXJpZmljYXRpb24gZmFpbHMsIHJldHVybiBBcHBsaWNhdGlvbiBzb3VyY2UgdG83ZGI4NDg1IGFuZCBzY29wZWQtc3luYyBwcmlvciBzYW1lLXNjaGVtYSBpbWFnZTdmNWMsIHByZXNlcnZpbmcgY3VycmVudCBldmlkZW5jZSBkYXRhYmFzZTsgcmV0YWluIGZhaWxlZCBvdXRjb21lcy4gQW55IGRhdGEgcmVjb3ZlcnkgYmV5b25kIHRoaXMgc2FtZS1zY2hlbWEgaW1hZ2Ugcm9sbGJhY2sgaXMgYSBzZXBhcmF0ZSBmb3VuZGVyIGRlY2lzaW9uLgoKIyMgQWx0ZXJuYXRpdmVzIGFuZCBlc3RpbWF0ZXMKClByb2NlZWQgd2l0aCB0aGlzIG5hcnJvdyByZWxlYXNlIHBsdXMgZXhwbGljaXQgaW5oZXJpdGVkLW1lZGl1bSBmb2xsb3ctdGhyb3VnaCwgb3IgZGVmZXIgYW5kIHByZXBhcmUgYSBzZXBhcmF0ZSBiYXNlL2RlcGVuZGVuY3kgcmVmcmVzaCBiZWZvcmUgYW55IHJlbGVhc2UuIE5vIGFkZGl0aW9uYWwgcmVjdXJyaW5nIGhvc3RpbmcgaXMgcHJvcG9zZWQ6IGVzdGltYXRlZCBpbmNyZW1lbnRhbCBpbmZyYXN0cnVjdHVyZSBFVVIwLCB3aXRoIHByaXZhdGUgc3RvcmFnZSBhbmQgYXR0ZW5kZWQgZW5naW5lZXJpbmcvcmVjb3ZlcnkgdGltZSB1bnByaWNlZC4gUmlza3MgaW5jbHVkZSBhIGJyaWVmIFJlY3JlYXRlIGludGVycnVwdGlvbiwgcHJpdmF0ZSBiYWNrdXAgY3VzdG9keSBlcnJvcnMsIGNhbGxlciByZWZ1c2FsIHdoZW4gYWR2aXNvcnkgcmVzcG9uc2VzIHdlcmUgaW1wcm9wZXJseSB0cmVhdGVkIGFzIGJpbmRpbmcsIGFuZCB0aGUgZGlzY2xvc2VkIGluaGVyaXRlZCBmaW5kaW5nLiBUaGlzIGRlY2lzaW9uIGRvZXMgbm90IHByb21vdGUgYWdlbnQgYXV0b25vbXkgb3IgZ3JhbnQgdW5yZWxhdGVkIHdvcmsuCgojIyBJbmRlcGVuZGVudCByZXZpZXcgcmVmaW5lbWVudHMKClRoZSBpbml0aWFsMzZwYXRoLzIwZG9jdW1lbnQgcGFja2V0IGF0IG1hbmlmZXN0N2M2NzM4YjMgYW5kIHN1Ym1pc3Npb25hYzQxYzhhZSBpcyBwcmVzZXJ2ZWQgaW4gc291cmNlIHByZXBhcmF0aW9uIGV2aWRlbmNlLCB3aXRoIHRoZSBmYWlsZWQvY29uZGl0aW9uYWwgcmV2aWV3LiBJbmRlcGVuZGVudCBQbGF0Zm9ybSByZXZpZXcgaWRlbnRpZmllZCBhZG1pbiBhdXRvLW1pZ3JhdGlvbiwgb3B0aW1pemF0aW9uIGJ5cGFzcywgYW5kIGFjdHVhbCBzYW1lLW5hbWUgQ29uZmlnTWFwL1BWQyByZXBsYWNlbWVudCBnYXBzLiBUaGUgYW1lbmRlZCBwYWNrZXQgYWRkcyBwcmUtb3BlbiBzdGRsaWIgcmVhZC1vbmx5IHNjaGVtYS9pbnRlZ3JpdHkvY291bnQgZ2F0ZXMsIGV4cGxpY2l0IGxvY2FsL3JlbW90ZSBvcHRpbWl6YXRpb24gcmVmdXNhbCwgYW5kIGluZGVwZW5kZW50bHkgc2VhbGVkIGFjdHVhbCBuYXRpdmUgY29uZmlnL1BWQyBjdXN0b2R5IGNoZWNrcy4gVGhlc2UgYXJlIHJlZmluZW1lbnRzIGluIHRoZSBzYW1lIHByb3Bvc2FsL3RyaWFsLCB3aXRoIG5vIG9yaWdpbmFsIG9yIGFtZW5kZWQgZm91bmRlciBhcHByb3ZhbCBjbGFpbWVkLgo=" + }, + { + "digest": "sha256:a59bcddc6c79e3ba8265a95b4b68facda2683abda8e47e5bb48ce402b9e1fa82", + "media_type": "application/json", + "content_base64": "ewogICJwcm9wb3NhbF9pZCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgInRyaWFsX2lkIjogImluZmQtcHVycG9zZS0yMDI2MTAxMS1yMSIsCiAgInN0YXRlIjogInByZXBhcmVkLXVuYXBwcm92ZWQiLAogICJ0YXJnZXQiOiAicmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbiIsCiAgImF1dGhvcml0eSI6ICJBRE1JTklTVEVSOyBhY3RpdmF0aW9uIEFQUFJPVkVEIG9ubHkgdXBvbiBleGFjdCBmb3VuZGVyIGRpc3Bvc2l0aW9uIiwKICAiY2FuZGlkYXRlX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgInB1Ymxpc2hlZF9zb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInByaW9yX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgInByaW9yX2FyZ29fcmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgIm5hdGl2ZV9vYmplY3QiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICB9LAogICJhcmdvX2FwcGxpY2F0aW9uX3VpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICJzb3VyY2VfZ2F0ZSI6ICJFeGFjdCBjb21taXR0ZWQgb3duZXIgc291cmNlIG11c3QgY29udGFpbiB0aGUgdHdvIGFwcHJvdmVkIGNhbmRpZGF0ZSBmaWxlIGhhc2hlcyBpbiBwcmVmbGlnaHQtaW5wdXRzLmpzb247IHNvdXJjZSBwcmVwYXJhdGlvbiBpcyBub3QgbmF0aXZlIGFwcHJvdmFsIiwKICAic3luY19zY29wZSI6IFsKICAgICJhcHBzOkRlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24iCiAgXSwKICAicHJ1bmUiOiBmYWxzZSwKICAiYXV0b21hdGVkX3N5bmMiOiBmYWxzZSwKICAicnVudGltZV9jb25maWdtYXAiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICJzY2hlbWEiOiA1LAogICJyZXF1ZXN0ZWRfb3BlcmF0aW9ucyI6IFsKICAgICJQcm90ZWN0ZWQgU1FMaXRlLWNvbnNpc3RlbnQgbmF0aXZlIGJhY2t1cCBhbmQgaW5kZXBlbmRlbnRseSBwcm90ZWN0ZWQgb2ZmLWNsdXN0ZXIgY3VzdG9keSIsCiAgICAiT2ZmbGluZSByZXN0b3JlL2ludGVncml0eS9jb3VudCBjb21wYXJpc29uIG9uIGEgcHJpdmF0ZSBkaXNwb3NhYmxlIHZvbHVtZSB3aXRoIGV4YWN0IGNhbmRpZGF0ZSwgbm8gcnVudGltZSB0b2tlbnMvY29uZmlnL25ldHdvcmsiLAogICAgIlJlZnJlc2ggYSBjb25zaXN0ZW50IHByZS1jdXRvdmVyIHNuYXBzaG90LCByZXRhaW4gcHJpdmF0ZSBjb3BpZXMgYW5kIGNvdW50LW9ubHkvaGFzaCByZWNlaXB0cyIsCiAgICAiUGluIGV4aXN0aW5nIG1hbnVhbCBBcmdvIEFwcGxpY2F0aW9uIHRvIGV4YWN0IGFwcHJvdmVkIG93bmVyIHNvdXJjZSBhbmQgbWFudWFsbHkgc3luYyBvbmx5IGV4aXN0aW5nIERlcGxveW1lbnQgaW1hZ2UiLAogICAgIlZlcmlmeSBoZWFsdGgvcmVhZGluZXNzL2ltYWdlL21vZHVsZS9pbnN0YWxsZWQgZmFpbC1jbG9zZWQgcHVycG9zZSBjaGVja3MgYW5kIHJldGFpbmVkIHNjaGVtYS9jb3VudCBldmlkZW5jZTsgcmVjb3ZlciB0byBwcmlvciBzYW1lLXNjaGVtYSBpbWFnZSBpZiBuZWVkZWQiCiAgXSwKICAiZXhlY3V0ZV9ieSI6ICIyMDI2LTEwLTEyVDIzOjU5OjU5WiIsCiAgInRlbXBvcmFyeV92dWxuZXJhYmlsaXR5X3Jldmlld19kdWUiOiAiMjAyNi0xMC0xOCIsCiAgImtub3duX3NjYW5fZmluZGluZ3MiOiAiMEhJR0gvQ1JJVElDQUwsMWZpeGFibGUgaW5oZXJpdGVkTUVESVVNIHpsaWIsIGFjdHVhbCBjdXJyZW50YmFzZStjYW5kaWRhdGUgZmluZGluZ3MgaWRlbnRpY2FsIiwKICAidnVsbmVyYWJpbGl0eV9yZWNvcmQiOiAiSU5GRC1SSVNLLTIwMjYxMDExLVpMSUItODUwOTEgLyBJTkZELVdQLTAwMDktVDA1IiwKICAiY29zdF9lc3RpbWF0ZV9FVVIiOiAwLAogICJjb3N0X2xpbWl0cyI6ICJObyBuZXcgcmVjdXJyaW5nIGluZnJhc3RydWN0dXJlOyBwcml2YXRlIGJhY2t1cCBzdG9yYWdlIGFuZCBhdHRlbmRlZCBlbmdpbmVlcmluZy9yZWNvdmVyeSB0aW1lIHVucHJpY2VkLCBub3QgYW4gYXV0b3BpbG90IGNvc3QgZ3JhbnQiLAogICJyaXNrX2VzdGltYXRlcyI6IFsKICAgICJCcmllZiBSZWNyZWF0ZSBzZXJ2aWNlIGludGVycnVwdGlvbjsgbm8gY29uY3VycmVudCBuZXcgd3JpdGVyL3N1cmdlIiwKICAgICJQcml2YXRlIGV2aWRlbmNlIHNuYXBzaG90IGN1c3RvZHkgYW5kIGRpc3Bvc2FsIGVycm9yczsgbm8gc25hcHNob3RzL3Rva2VucyBpbiBwdWJsaWMgZXZpZGVuY2UiLAogICAgIkNhbmRpZGF0ZSBwdXJwb3NlIHJlZnVzYWwgbWF5IGV4cG9zZSBjYWxsZXJzIHJlbHlpbmcgb24gYWR2aXNvcnkgcmVzdWx0cyBhcyBiaW5kaW5nIiwKICAgICJJbmhlcml0ZWQga25vd24gZml4YWJsZSBNRURJVU0gcmVtYWlucyB1bnRpbCBzZXBhcmF0ZWx5IGFwcHJvdmVkIG93bmVyIHJlbWVkaWF0aW9uIiwKICAgICJFeGlzdGluZyBBcmdvIE91dE9mU3luYyBiYXNlbGluZSBpcyByZXRhaW5lZDsgbm8gd2hvbGUtYXBwIHN5bmMgb3IgdW5yZWxhdGVkIHJlcGFpcnMgcGVybWl0dGVkIgogIF0sCiAgInJvbGxiYWNrIjogIk1hbnVhbCBBcmdvIHNvdXJjZSBwaW4gYmFjayB0bzdkYjg0ODUgYW5kIHNjb3BlZCBEZXBsb3ltZW50LW9ubHkgc3luYyB0bzdmNWMgaW1hZ2U7IHJldGFpbiBjdXJyZW50IHNjaGVtYTUgZGF0YWJhc2UgYW5kIGFsbCBwb3N0LWN1dG92ZXIgZXZpZGVuY2UsIG5ldmVyIHJlc3RvcmUgb2xkZXIgc25hcHNob3Qgb3ZlciBsaXZlIHdyaXRlcyIsCiAgIm5hdGl2ZV9leGVjdXRlZCI6IGZhbHNlLAogICJodW1hbl9hcHByb3ZhbCI6IGZhbHNlLAogICJyZWZpbmVtZW50X29mX21hbmlmZXN0IjogIjdjNjczOGIzOWVhOGU1NGU2MWM4ZWQ2MjVlOTRhZDBiMjc1NWU2NzJlMTU3NmVmY2RmODRhMWQ2NjVhYzMzMDAiLAogICJtYW5kYXRvcnlfcHJlX29wZW5fZ2F0ZSI6ICJzdGRsaWJTUUxpdGUgbW9kZT1yby9xdWVyeV9vbmx5OiBzY2hlbWE1K2ludGVncml0eStjb3VudCBiYXNlbGluZSBiZWZvcmUgQU5ZIFN0b3JlL2FkbWluIG9uIG5hdGl2ZSBzb3VyY2Ugb3IgcmVzdG9yZWRjb3B5OyByZWZ1c2VvbGRzY2hlbWFzIHdpdGhvdXQgbWlncmF0aW9uIiwKICAib3B0aW1pemVkX2ludGVycHJldGVycyI6ICJsb2NhbCtyZW1vdGUgZXhwbGljaXRseXJlZnVzZWQgYmVmb3JlYXNzZXJ0IGdhdGVzIiwKICAibmF0aXZlX2RlcGVuZGVuY3lfZ2F0ZSI6ICJzZWFsZWQgYWN0dWFsQ00gVUlEL2ltbXV0YWJsZS9jYW5vbmljYWxkYXRhaGFzaCtQVkMgVUlEL2Z1bGxzcGVjL0JvdW5kL3ZvbHVtZU5hbWUsIG5vIHJhd0NNZGF0YSBvclNlY3JldCByZWFkcyIsCiAgImxpdmVfY291bnRzIjogIkZyb3plbiBzbmFwc2hvdC9jbG9uZSBleGFjdGNvdW50ZXIgZXF1YWxpdHk7IHBvc3RjdXRvdmVyL3JvbGxiYWNrIGxpdmVjb3VudGVyY2hhbmdlcyBtYXkgcmVmbGVjdCBsZWdpdGltYXRlIGNvbmN1cnJlbnRjb21taXRzL3N0YXRlIHRyYW5zaXRpb25zLCBsYXRlc3REQiBhbHdheXNyZXRhaW5lZCIKfQo=" + }, + { + "digest": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K" + }, + { + "digest": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K" + }, + { + "digest": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e", + "media_type": "application/json", + "content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo=" + }, + { + "digest": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121", + "media_type": "application/json", + "content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo=" + }, + { + "digest": "sha256:8a676c38f89f9ca762b8ebe945b5acb90d47a4cb350692687abb985bbb2d8ae2", + "media_type": "application/json", + "content_base64": "ewogICJwcm9wb3NhbCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgIm9ic2VydmVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjQ6MDEuOTg1MTI4KzAwOjAwIiwKICAibmF0aXZlX293bmVyX3B1YmxpY2F0aW9uX2pvYiI6IHsKICAgICJpZCI6IDExNDg0LAogICAgIm5hbWUiOiAicHVibGlzaC1jYW5kaWRhdGUiLAogICAgImhlYWRfYnJhbmNoIjogIm1haW4iLAogICAgImhlYWRfc2hhIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgInJ1bl9udW1iZXIiOiAzLAogICAgImV2ZW50IjogInB1c2giLAogICAgImRpc3BsYXlfdGl0bGUiOiAiUHJlcGFyZSByZWFkYWJsZSBvdmVybGF5IGNvbnRleHQgd2l0aCB0aGUgYWRtaXR0ZWQgbGVnYWN5IGJ1aWxkZXIiLAogICAgInN0YXR1cyI6ICJzdWNjZXNzIiwKICAgICJ3b3JrZmxvd19pZCI6ICJwdXJwb3NlLW92ZXJsYXktaW1hZ2UueWFtbCIsCiAgICAidXJsIjogImh0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uL2FjdGlvbnMvcnVucy8zIiwKICAgICJjcmVhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjA6NTlaIiwKICAgICJ1cGRhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjE6MDhaIiwKICAgICJydW5fc3RhcnRlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjIwOjU5WiIKICB9LAogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInBvbGljeV9zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgInJlZ2lzdHJ5X3Byb29mX3NoYTI1NiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAic291cmNlX3JlbmRlcl9jaGFuZ2Vfb25seSI6ICJEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHNwZWMudGVtcGxhdGUuc3BlYy5jb250YWluZXJzWzBdLmltYWdlIiwKICAicnVudGltZV9jb25maWdtYXBfdW5jaGFuZ2VkIjogImluZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxIiwKICAiaW5zdGFsbGVkX2ltYWdlX2V4ZWN1dGlvbiI6IHsKICAgICJpbW11dGFibGVfcmVnaXN0cnlfYXJ0aWZhY3RfcHVsbGVkX2Fub255bW91c2x5IjogdHJ1ZSwKICAgICJVSUQiOiAxMDAwMSwKICAgICJHSUQiOiAxMDAwMSwKICAgICJwb2xpY3lfZmlsZV9VSUQiOiAwLAogICAgInBvbGljeV9maWxlX21vZGUiOiAiMDY0NCIsCiAgICAicHVycG9zZV92YXJpYW50cyI6IDEwLAogICAgImJpbmRpbmdfZm9ybXNfYWxsb3dlZCI6IDIsCiAgICAiYWR2aXNvcnlfb3JfbWFsZm9ybWVkX3JlZnVzZWQiOiA4LAogICAgIm5ldHdvcmsiOiAibm9uZSIsCiAgICAicmVhZF9vbmx5IjogdHJ1ZSwKICAgICJzeW50aGV0aWNfdHJhbnNwb3J0IjogdHJ1ZSwKICAgICJuYXRpdmVfUERQX3Rlc3QiOiBmYWxzZQogIH0sCiAgInNjYW5fc3VtbWFyeV9zaGEyNTYiOiAiMGVlNTY0MDBkYzcwM2Y3Yzk5NjhjMmEwYTNlYTAzOTBkODM2MmY4ZDBiYmY4MDAyYTJiZDdmYTU4ZjE5Y2I0NCIsCiAgImhpc3RvcmljYWxfZmFpbGVkX3J1bnNfcmV0YWluZWQiOiBbCiAgICAiZjY2ZGU1MDUvdGFzazExNDgyL3J1bjEiLAogICAgImFjZWNhZDg4Ny90YXNrMTE0ODMvcnVuMiIKICBdLAogICJuYXRpdmVfaG9zdGluZ19jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJodW1hbl9hcHByb3ZhbCI6IGZhbHNlLAogICJldmlkZW5jZV9maWxlX3NoYTI1NiI6IHsKICAgICJpbWFnZS1tYW5pZmVzdC5qc29uIjogIjk3OGM1NzVkM2M3YmYwZGUzOWRiZTRlOTU2N2MzOWNkMzZmNzBiN2U1NWJjMTczNTdiZGIwM2ZiM2I5NmIwZmIiLAogICAgImltYWdlLWNvbmZpZy5qc29uIjogIjRhZDcyNDljNzVmZDlmYzAzOWNlYjE4Njc3MjQxOWUxY2JhNWZkOTc1OWM0MDQ1NTY0NTljODBhMmQyODVkMTAiLAogICAgImJhc2UtaW1hZ2UtY29uZmlnLmpzb24iOiAiYjcwNmM5MjA5ZTMyNGYzOWE4NmZmY2RhMmEzZTlkOTRjOTI2NDk3MzlhZDViMjFmZTQ2MTEwMDZlMzZmNmYwMCIsCiAgICAicmVnaXN0cnktcHJvb2YuanNvbiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAgICJ0cml2eS1mdWxsLmpzb24iOiAiZjM4YThmN2U2YzQxOWVlZDkxNTRkNzc2MmY5MzJiOWRlYjY2ODBhNjIyMjQ3YjA4MTk2Yjc0NThiODkzNDM0ZSIsCiAgICAic2JvbS5jZHguanNvbiI6ICJhNDI1Mjk1MWUyMDI3NDcyYzI2ZDg2NzljYjU0M2UzMDk4MzE4MDgwOWQ2ZGQzYzdjOTRiODgzZDYyODAzZTVkIiwKICAgICJiYXNlLXRyaXZ5LWZ1bGwuanNvbiI6ICJkNDRjNTU1YWVjYmIxYTQ1MThmNDEyN2Q0ODAxNWVhNDU5MzI1YzkzZThiMDM3MTkxMGE1NWRlNDcyOTNjYTgwIiwKICAgICJjaGVja19pbnN0YWxsZWQucHkiOiAiYTM0YTUxYmU5YzlmMmIxNmEwNmE4ODE3M2I1YzZjNDkyYzk5NTdmZTAyMWNmNDEyYTg2YTE3Mzc3MzA2NDBhZCIsCiAgICAidmVyaWZ5X3JlZ2lzdHJ5LnB5IjogIjQxM2Y1NzVjMjFhMmJkMThhMzY5NmY4ZjJkOTM5ZWVhZGM1MmQ3NmYyODJjNDI4MTNmNzZiYjBlM2VlOGEyYTQiLAogICAgInNxbGl0ZV9yZWFkb25seS5weSI6ICJlZWY1M2RkMjMzZWVlNzRjMTdmMjA4MjNiZDdmNTc4N2M2MGNhZDc5YWM2NDgwMjFjOTQ3OTY0M2M2Y2U5ZTM4IiwKICAgICJzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uIjogIjA0MjMyN2EwMzZlZDI1NGNmOTVkYmViMGMwNTZhYzI1YjAzYTZhODQ0Yjk1YTMzMmM5OTJkZjI5NDM2OTEzNjkiLAogICAgInJldmlldy1yZWZpbmVtZW50Lmpzb24iOiAiZWE2Mjg0NWNlZTVlZTZmNGY2Y2I3ZjVkY2QwYWY2MDFiYTI5YTIxYzhmZjgwZWZiYmMwMmFkMTZlMzViZWE3NSIsCiAgICAidGVzdF9jaGFuZ2VfZ3VhcmQucHkiOiAiZGE1MzUwNDM3MzU3YmEzMjkyMzZjYzEzNzYxMGMwMzg1NmYzOGY4MzZkZGYyODU2MDI1YmMxMjAxMWZhZDA3ZiIsCiAgICAidGVzdF9zcWxpdGVfcmVhZG9ubHkucHkiOiAiYzdhOTFkMGM2YTM3M2Q3MzhjODhiYjgxN2Q5YmZiMmZmOGExNzliYzYxYjkzMDYzYjg5Njc3YjU2NjUyMDMyMyIsCiAgICAidGVzdF9wcmVmbGlnaHRfb3B0aW1pemF0aW9uLnB5IjogImEwYzRmYTE4YzVkNmMyMTQ3NmEwNmM2ZDA1ZmU3NjU2MjU5ZDIwNDI5OTEzODg1MTU5OWU5MjE0ZDkxMTIwNmQiCiAgfQp9Cg==" + }, + { + "digest": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZV9kaWdlc3QiOiAic2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgImJhc2VfaW1hZ2VfZGlnZXN0IjogInNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAiYmFzZV9sYXllcl9ieXRlc19pZGVudGljYWwiOiB0cnVlLAogICJsYXllcl9tZWRpYV90eXBlX2NvbnZlcnNpb24iOiAiT0NJIGd6aXAgdG8gRG9ja2VyIGd6aXAsIHNhbWUgZGlnZXN0IGFuZCBzaXplIiwKICAiYmFzZV9ydW50aW1lX2NvbmZpZ19zZW1hbnRpY3NfaWRlbnRpY2FsIjogdHJ1ZSwKICAibGVnYWN5X2J1aWxkZXJfY29uZmlnX2FkZGl0aW9ucyI6IHsKICAgICJIb3N0bmFtZSI6ICIiLAogICAgIkRvbWFpbm5hbWUiOiAiIiwKICAgICJBdHRhY2hTdGRpbiI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZG91dCI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZGVyciI6IGZhbHNlLAogICAgIlR0eSI6IGZhbHNlLAogICAgIk9wZW5TdGRpbiI6IGZhbHNlLAogICAgIlN0ZGluT25jZSI6IGZhbHNlLAogICAgIkNtZCI6IG51bGwsCiAgICAiVm9sdW1lcyI6IG51bGwsCiAgICAiT25CdWlsZCI6IG51bGwsCiAgICAiSW1hZ2UiOiAic2hhMjU2OjkwZjE1NzRmOWVkYTM1ZmE2Y2I5NzI5NjFiZWIyN2E3Y2I5MDRjMzY1NjBlMzgxOTMwYjBlMTQwNjVjMjM4ODMiCiAgfSwKICAiYmFzZV9yb290ZnNfcHJlZml4X2lkZW50aWNhbCI6IHRydWUsCiAgIm92ZXJsYXlfcmVndWxhcl9maWxlcyI6IFsKICAgICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2luZm9ybWVkX2RlY2lzaW9uL3BvbGljeS5weSIKICBdLAogICJvdmVybGF5X2RpcmVjdG9yaWVzIjogWwogICAgIm9wdCIsCiAgICAib3B0L3ZlbnYiLAogICAgIm9wdC92ZW52L2xpYiIsCiAgICAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvaW5mb3JtZWRfZGVjaXNpb24iCiAgXSwKICAicG9saWN5X3NoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIiwKICAicG9saWN5X21vZGUiOiAiMDY0NCIsCiAgImJhc2VfdXNlciI6ICIxMDAwMToxMDAwMSIsCiAgInNvdXJjZV9zY29wZV9sYWJlbHMiOiB7CiAgICAib3JnLm9wZW5jb250YWluZXJzLmltYWdlLnJldmlzaW9uIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5iYXNlLmRpZ2VzdCI6ICJzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgICAic29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgICAic29jaWFsLmNvdWxvbWIucmVsZWFzZS5zY29wZSI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIKICB9LAogICJyZWdpc3RyeV9yZWFkX3JvdXRlIjogImFub255bW91cyBwdWJsaWMgc2NvcGVkIGJlYXJlciBjaGFsbGVuZ2UsIG5vIHRva2VuIHJldGVudGlvbiIsCiAgImltYWdlX2V4ZWN1dGVkIjogZmFsc2UsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlCn0K" + }, + { + "digest": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44", + "media_type": "application/json", + "content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInNjYW5uZXIiOiAiYXF1YXNlYy90cml2eUBzaGEyNTY6NjJiMWU2NWU4ODY5YmM0YjRjNmFhNGZhMmIyMTU5NTI1NmM3YzJmNjAxOGE5ZDlhZDYxY2FmODcxODdjMTk2OSIsCiAgInZlcnNpb24iOiAiMC43NC4wIiwKICAiZGJfbWV0YWRhdGEiOiB7CiAgICAiVmVyc2lvbiI6IDIsCiAgICAiTmV4dFVwZGF0ZSI6ICIyMDI2LTEwLTExVDE4OjU5OjUwLjg4OTAxMDU3MloiLAogICAgIlVwZGF0ZWRBdCI6ICIyMDI2LTEwLTEwVDE4OjU5OjUwLjg4OTAxMDkyM1oiLAogICAgIkRvd25sb2FkZWRBdCI6ICIyMDI2LTEwLTEwVDIzOjMyOjMyLjM4MDAzMzEzMVoiCiAgfSwKICAic3VwcHJlc3Npb24iOiBmYWxzZSwKICAiaWdub3JlX3VuZml4ZWQiOiBmYWxzZSwKICAic2V2ZXJpdHlfZmlsdGVyIjogbnVsbCwKICAicGFja2FnZV9jb3VudCI6IDQ0LAogICJmaW5kaW5nc19ieV9zZXZlcml0eSI6IHsKICAgICJNRURJVU0iOiAxCiAgfSwKICAiZmluZGluZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6ICJDVkUtMjAyNi04NTA5MSIsCiAgICAgICJwYWNrYWdlIjogInpsaWIiLAogICAgICAiaW5zdGFsbGVkIjogIjEuMy4yLXIwIiwKICAgICAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAgICAgInNldmVyaXR5IjogIk1FRElVTSIKICAgIH0KICBdLAogICJjb3ZlcmFnZV9saW1pdHMiOiBbCiAgICAiQWxwaW5lMy4yNCBhYnNlbnQgc2Nhbm5lciBFT0wgbGlzdDsgT1MgZGV0ZWN0b3IgcmFuIGFnYWluc3QgQWxwaW5lMy4yNCByZXBvc2l0b3J5IG9uMzhPUyBwYWNrYWdlcyIsCiAgICAiS25vd24gZmluZGluZ3MgYXNvZiBwaW5uZWREQiwgbm90IGNsYWltIGFic2VuY2Ugb2YgdW5rbm93biB2dWxuZXJhYmlsaXRpZXMiCiAgXSwKICAiaGlnaF9jcml0aWNhbCI6IDAsCiAgInNhbWVfc2Nhbm5lcl9hY3R1YWxfYmFzZV9zY2FuX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgImJhc2Vfc2Nhbl9maWxlIjogImJhc2UtdHJpdnktZnVsbC5qc29uIgp9Cg==" + }, + { + "digest": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e", + "media_type": "application/json", + "content_base64": "ewogICJTY2hlbWFWZXJzaW9uIjogMiwKICAiVHJpdnkiOiB7CiAgICAiVmVyc2lvbiI6ICIwLjc0LjAiCiAgfSwKICAiUmVwb3J0SUQiOiAiMDFhMTI4OGQtOGRmMS03M2ZiLTkzMTMtMzY0MmRkNjRiYTcyIiwKICAiQ3JlYXRlZEF0IjogIjIwMjYtMTAtMTFUMDE6MjI6MDcuOTg1MjY0NDA0WiIsCiAgIkFydGlmYWN0SUQiOiAic2hhMjU2OjQwZjg3M2I4ZDYzNDUzNDFlMmY2NjFhNTAzOGMwOTJkMTg2ZTI4MzFkYzYwYjYxNzA0YTQxOWExZjRmNzdlZjYiLAogICJBcnRpZmFjdE5hbWUiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIiwKICAiQXJ0aWZhY3RUeXBlIjogImNvbnRhaW5lcl9pbWFnZSIsCiAgIk1ldGFkYXRhIjogewogICAgIlNpemUiOiA4ODI1ODA0OCwKICAgICJPUyI6IHsKICAgICAgIkZhbWlseSI6ICJhbHBpbmUiLAogICAgICAiTmFtZSI6ICIzLjI0LjEiCiAgICB9LAogICAgIkltYWdlSUQiOiAic2hhMjU2OmYzNGRlMjEzNzljNGY1MGVhMDM2MWNhMWQ4Mjk2YzhlNzJmOTg5NDk5YWQyODgwMTZiODEyMDQ5OTdhZTQ3NzkiLAogICAgIkRpZmZJRHMiOiBbCiAgICAgICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIsCiAgICAgICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIsCiAgICAgICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIsCiAgICAgICJzaGEyNTY6NDA5OGFkMDMzNTI1MjYzZjkyYThhOWM1MTg2NTU5NjAyNWQ0NzAxOGUwNzhjMGIxZjdkOWNkNTY2M2ZjMWZmZSIsCiAgICAgICJzaGEyNTY6ZjliNGE4YTQxMmEwYzA3YTQ4OWU0NmZiNWRiNDFmOWQwZGM4NGQ0ZWMzOGE0ZTJjNmFiOTUzMWY0NGUwZDlmMSIsCiAgICAgICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIsCiAgICAgICJzaGEyNTY6MzYxNDMwYTExMTM5Njk3NDNiOTllMjM3YjIwZjAyM2Q1NDk3NDkzYmNmOTZmYjkxYWY5OWFjMGEwZGJjNGE1OSIsCiAgICAgICJzaGEyNTY6Y2ZjNTkzOTY3NGQ2N2Y2MGI0NDExYzI0ZGZjZGU1NjIyYjcxMmVlYjczNzZjZDA5NDFhMjc1MWRhODBhNmIwMiIsCiAgICAgICJzaGEyNTY6MjFmZjkxODhjYjI5Y2E5NWZlOWJlMTEzNTVmNzBhYjU1ODZlODQ5OWUzM2I1MmEyNTNkOTUzZmIzYjc1YWVhMyIKICAgIF0sCiAgICAiUmVwb0RpZ2VzdHMiOiBbCiAgICAgICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiCiAgICBdLAogICAgIlJlZmVyZW5jZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICAgIkltYWdlQ29uZmlnIjogewogICAgICAiYXJjaGl0ZWN0dXJlIjogImFtZDY0IiwKICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0xMVQwMToyMTowNC43ODc1Mjc2OTdaIiwKICAgICAgImRvY2tlcl92ZXJzaW9uIjogIjI3LjUuMSIsCiAgICAgICJoaXN0b3J5IjogWwogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDYtMTZUMDA6MDE6MjkuOTY3MTYxOTAyWiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICJBREQgYWxwaW5lLW1pbmlyb290ZnMtMy4yNC4xLXg4Nl82NC50YXIuZ3ogLyAjIGJ1aWxka2l0IiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA2LTE2VDAwOjAxOjI5Ljk2NzE2MTkwMloiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiQ01EIFtcIi9iaW4vc2hcIl0iLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5WIFBBVEg9L3Vzci9sb2NhbC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluIiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0wOS0wMVQwMDowNToyNC4yMjQ1NDQ4NDNaIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVOViBMQU5HPUMuVVRGLTgiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiUlVOIC9iaW4vc2ggLWMgc2V0IC1ldXg7IFx0YXBrIGFkZCAtLW5vLWNhY2hlIFx0XHRjYS1jZXJ0aWZpY2F0ZXMgXHRcdHR6ZGF0YSBcdDsgIyBidWlsZGtpdCIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0wOS0wMVQwMDowNToyNC4yMjQ1NDQ4NDNaIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVOViBHUEdfS0VZPTcxNjk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5WIFBZVEhPTl9WRVJTSU9OPTMuMTIuMTQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjA1OjI0LjIyNDU0NDg0M1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5WIFBZVEhPTl9TSEEyNTY9NWM4NDYyYWY1NzkwYmFmNDNhMzIxYTE1NTlkYmUwZGIwNmQxYmU0MzAwZmI4NWZiNTNjNDAwNjA2NjhlNTQ4YSIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDktMDFUMDA6MTA6MzAuNjcyMjI1OTcyWiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICJSVU4gL2Jpbi9zaCAtYyBzZXQgLWV1eDsgXHRcdGFwayBhZGQgLS1uby1jYWNoZSAtLXZpcnR1YWwgLmJ1aWxkLWRlcHMgXHRcdGJsdWV6LWRldiBcdFx0YnppcDItZGV2IFx0XHRkcGtnLWRldiBkcGtnIFx0XHRmaW5kdXRpbHMgXHRcdGcrKyBcdFx0Z2NjIFx0XHRnZGJtLWRldiBcdFx0Z251cGcgXHRcdGxpYmMtZGV2IFx0XHRsaWJmZmktZGV2IFx0XHRsaWJuc2wtZGV2IFx0XHRsaWJ0aXJwYy1kZXYgXHRcdGxpbnV4LWhlYWRlcnMgXHRcdG1ha2UgXHRcdG5jdXJzZXMtZGV2IFx0XHRvcGVuc3NsLWRldiBcdFx0cGF4LXV0aWxzIFx0XHRyZWFkbGluZS1kZXYgXHRcdHNxbGl0ZS1kZXYgXHRcdHRhciBcdFx0dGNsLWRldiBcdFx0dGsgXHRcdHRrLWRldiBcdFx0dXRpbC1saW51eC1kZXYgXHRcdHh6IFx0XHR4ei1kZXYgXHRcdHpsaWItZGV2IFx0OyBcdFx0d2dldCAtTyBweXRob24udGFyLnh6IFwiaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9mdHAvcHl0aG9uLyR7UFlUSE9OX1ZFUlNJT04lJVthLXpdKn0vUHl0aG9uLSRQWVRIT05fVkVSU0lPTi50YXIueHpcIjsgXHRlY2hvIFwiJFBZVEhPTl9TSEEyNTYgKnB5dGhvbi50YXIueHpcIiB8IHNoYTI1NnN1bSAtYyAtOyBcdHdnZXQgLU8gcHl0aG9uLnRhci54ei5hc2MgXCJodHRwczovL3d3dy5weXRob24ub3JnL2Z0cC9weXRob24vJHtQWVRIT05fVkVSU0lPTiUlW2Etel0qfS9QeXRob24tJFBZVEhPTl9WRVJTSU9OLnRhci54ei5hc2NcIjsgXHRHTlVQR0hPTUU9XCIkKG1rdGVtcCAtZClcIjsgZXhwb3J0IEdOVVBHSE9NRTsgXHRncGcgLS1iYXRjaCAtLWtleXNlcnZlciBoa3BzOi8va2V5cy5vcGVucGdwLm9yZyAtLXJlY3Yta2V5cyBcIiRHUEdfS0VZXCI7IFx0Z3BnIC0tYmF0Y2ggLS12ZXJpZnkgcHl0aG9uLnRhci54ei5hc2MgcHl0aG9uLnRhci54ejsgXHRncGdjb25mIC0ta2lsbCBhbGw7IFx0cm0gLXJmIFwiJEdOVVBHSE9NRVwiIHB5dGhvbi50YXIueHouYXNjOyBcdG1rZGlyIC1wIC91c3Ivc3JjL3B5dGhvbjsgXHR0YXIgLS1leHRyYWN0IC0tZGlyZWN0b3J5IC91c3Ivc3JjL3B5dGhvbiAtLXN0cmlwLWNvbXBvbmVudHM9MSAtLWZpbGUgcHl0aG9uLnRhci54ejsgXHRybSBweXRob24udGFyLnh6OyBcdFx0Y2QgL3Vzci9zcmMvcHl0aG9uOyBcdGdudUFyY2g9XCIkKGRwa2ctYXJjaGl0ZWN0dXJlIC0tcXVlcnkgREVCX0JVSUxEX0dOVV9UWVBFKVwiOyBcdC4vY29uZmlndXJlIFx0XHQtLWJ1aWxkPVwiJGdudUFyY2hcIiBcdFx0LS1lbmFibGUtbG9hZGFibGUtc3FsaXRlLWV4dGVuc2lvbnMgXHRcdC0tZW5hYmxlLW9wdGlvbi1jaGVja2luZz1mYXRhbCBcdFx0LS1lbmFibGUtc2hhcmVkIFx0XHQkKHRlc3QgXCIke2dudUFyY2glJS0qfVwiICE9ICdyaXNjdjY0JyBcdTAwMjZcdTAwMjYgZWNobyAnLS13aXRoLWx0bycpIFx0XHQtLXdpdGgtZW5zdXJlcGlwIFx0OyBcdG5wcm9jPVwiJChucHJvYylcIjsgXHRFWFRSQV9DRkxBR1M9XCItRFRIUkVBRF9TVEFDS19TSVpFPTB4MTAwMDAwXCI7IFx0TERGTEFHUz1cIiR7TERGTEFHUzotfSAtV2wsLS1zdHJpcC1hbGxcIjsgXHRhcmNoPVwiJChhcGsgLS1wcmludC1hcmNoKVwiOyBcdGNhc2UgXCIkYXJjaFwiIGluIFx0XHR4ODZfNjR8YWFyY2g2NCkgXHRcdFx0RVhUUkFfQ0ZMQUdTPVwiJHtFWFRSQV9DRkxBR1M6LX0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLW1uby1vbWl0LWxlYWYtZnJhbWUtcG9pbnRlclwiOyBcdFx0XHQ7OyBcdFx0eDg2KSBcdFx0XHQ7OyBcdFx0KikgXHRcdFx0RVhUUkFfQ0ZMQUdTPVwiJHtFWFRSQV9DRkxBR1M6LX0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXJcIjsgXHRcdFx0OzsgXHRlc2FjOyBcdG1ha2UgLWogXCIkbnByb2NcIiBcdFx0XCJFWFRSQV9DRkxBR1M9JHtFWFRSQV9DRkxBR1M6LX1cIiBcdFx0XCJMREZMQUdTPSR7TERGTEFHUzotfVwiIFx0OyBcdHJtIHB5dGhvbjsgXHRtYWtlIC1qIFwiJG5wcm9jXCIgXHRcdFwiRVhUUkFfQ0ZMQUdTPSR7RVhUUkFfQ0ZMQUdTOi19XCIgXHRcdFwiTERGTEFHUz0ke0xERkxBR1M6LX0gLVdsLC1ycGF0aD0nXFwkXFwkT1JJR0lOLy4uL2xpYidcIiBcdFx0cHl0aG9uIFx0OyBcdG1ha2UgaW5zdGFsbDsgXHRcdGNkIC87IFx0cm0gLXJmIC91c3Ivc3JjL3B5dGhvbjsgXHRcdGZpbmQgL3Vzci9sb2NhbCAtZGVwdGggXHRcdFxcKCBcdFx0XHRcXCggLXR5cGUgZCAtYSBcXCggLW5hbWUgdGVzdCAtbyAtbmFtZSB0ZXN0cyAtbyAtbmFtZSBpZGxlX3Rlc3QgXFwpIFxcKSBcdFx0XHQtbyBcXCggLXR5cGUgZiAtYSBcXCggLW5hbWUgJyoucHljJyAtbyAtbmFtZSAnKi5weW8nIC1vIC1uYW1lICdsaWJweXRob24qLmEnIFxcKSBcXCkgXHRcdFxcKSAtZXhlYyBybSAtcmYgJ3t9JyArIFx0OyBcdFx0ZmluZCAvdXNyL2xvY2FsIC10eXBlIGYgLWV4ZWN1dGFibGUgLW5vdCBcXCggLW5hbWUgJyp0a2ludGVyKicgXFwpIC1leGVjIHNjYW5lbGYgLS1uZWVkZWQgLS1ub2Jhbm5lciAtLWZvcm1hdCAnJW4jcCcgJ3t9JyAnOycgXHRcdHwgdHIgJywnICdcXG4nIFx0XHR8IHNvcnQgLXUgXHRcdHwgYXdrICdzeXN0ZW0oXCJbIC1lIC91c3IvbG9jYWwvbGliL1wiICQxIFwiIF1cIikgPT0gMCB7IG5leHQgfSB7IHByaW50IFwic286XCIgJDEgfScgXHRcdHwgeGFyZ3MgLXJ0IGFwayBhZGQgLS1uby1uZXR3b3JrIC0tdmlydHVhbCAucHl0aG9uLXJ1bmRlcHMgXHQ7IFx0YXBrIGRlbCAtLW5vLW5ldHdvcmsgLmJ1aWxkLWRlcHM7IFx0XHRleHBvcnQgUFlUSE9ORE9OVFdSSVRFQllURUNPREU9MTsgXHRweXRob24zIC0tdmVyc2lvbjsgXHRwaXAzIC0tdmVyc2lvbiAjIGJ1aWxka2l0IiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTA5LTAxVDAwOjEwOjMwLjc4MjcyNjAwM1oiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiUlVOIC9iaW4vc2ggLWMgc2V0IC1ldXg7IFx0Zm9yIHNyYyBpbiBpZGxlMyBwaXAzIHB5ZG9jMyBweXRob24zIHB5dGhvbjMtY29uZmlnOyBkbyBcdFx0ZHN0PVwiJChlY2hvIFwiJHNyY1wiIHwgdHIgLWQgMylcIjsgXHRcdFsgLXMgXCIvdXNyL2xvY2FsL2Jpbi8kc3JjXCIgXTsgXHRcdFsgISAtZSBcIi91c3IvbG9jYWwvYmluLyRkc3RcIiBdOyBcdFx0bG4gLXN2VCBcIiRzcmNcIiBcIi91c3IvbG9jYWwvYmluLyRkc3RcIjsgXHRkb25lICMgYnVpbGRraXQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDktMDFUMDA6MTA6MzAuNzgyNzI2MDAzWiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICJDTUQgW1wicHl0aG9uM1wiXSIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMDktMTFUMDA6NDk6NDcuOTYyMTU2ODc2KzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVOViBQWVRIT05ET05UV1JJVEVCWVRFQ09ERT0xIFBZVEhPTlVOQlVGRkVSRUQ9MSBQQVRIPS9vcHQvdmVudi9iaW46L3Vzci9sb2NhbC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluIiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0wOS0xMVQwMDo0OTo0Ny45NjIxNTY4NzYrMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiUlVOIC9iaW4vc2ggLWMgYXBrIGFkZCAtLW5vLWNhY2hlICdsaWJ1dWlkXHUwMDNlPTIuNDIuMy1yMScgICAgIFx1MDAyNlx1MDAyNiBhZGRncm91cCAtUyAtZyAxMDAwMSBpbmZvcm1lZCAgICAgXHUwMDI2XHUwMDI2IGFkZHVzZXIgLVMgLXUgMTAwMDEgLUcgaW5mb3JtZWQgLUggaW5mb3JtZWQgIyBidWlsZGtpdCIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0wNVQwMTowMzo1NS4zNTE5NDQ5NzgrMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiQ09QWSAvb3B0L3ZlbnYgL29wdC92ZW52ICMgYnVpbGRraXQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMDVUMDE6MDM6NTYuNDYyMDkyMDcyKzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIlJVTiAvYmluL3NoIC1jIHJtIC1yZiAvdXNyL2xvY2FsL2Jpbi9waXAqIC91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9waXAqICAgICAvdXNyL2xvY2FsL2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvc2V0dXB0b29scyogL3Vzci9sb2NhbC9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJjZXMgICAgIC9vcHQvdmVudi9iaW4vcGlwKiAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9waXAqICAgICAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9zZXR1cHRvb2xzKiAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9wa2dfcmVzb3VyY2VzICMgYnVpbGRraXQiLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMDVUMDE6MDM6NTYuNjc1MjE2ODIxKzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIldPUktESVIgL2FwcCIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0wNVQwMTowMzo1Ni42NzUyMTY4MjErMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiVVNFUiAxMDAwMToxMDAwMSIsCiAgICAgICAgICAiY29tbWVudCI6ICJidWlsZGtpdC5kb2NrZXJmaWxlLnYwIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMDVUMDE6MDM6NTYuNjc1MjE2ODIxKzAyOjAwIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIkVYUE9TRSBbODA4MC90Y3AgODA4MS90Y3BdIiwKICAgICAgICAgICJjb21tZW50IjogImJ1aWxka2l0LmRvY2tlcmZpbGUudjAiLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0wNVQwMTowMzo1Ni42NzUyMTY4MjErMDI6MDAiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiRU5UUllQT0lOVCBbXCJpbmZvcm1lZC1kZWNpc2lvbi1jb250YWluZXJcIl0iLAogICAgICAgICAgImNvbW1lbnQiOiAiYnVpbGRraXQuZG9ja2VyZmlsZS52MCIsCiAgICAgICAgICAiZW1wdHlfbGF5ZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY3JlYXRlZCI6ICIyMDI2LTEwLTExVDAxOjE1OjExLjk5MTQ0MzY3NloiLAogICAgICAgICAgImNyZWF0ZWRfYnkiOiAiL2Jpbi9zaCAtYyAjKG5vcCkgIEFSRyBTT1VSQ0VfUkVWSVNJT04iLAogICAgICAgICAgImVtcHR5X2xheWVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNyZWF0ZWQiOiAiMjAyNi0xMC0xMVQwMToyMTowNC43MTYxMjYzOTJaIiwKICAgICAgICAgICJjcmVhdGVkX2J5IjogIi9iaW4vc2ggLWMgIyhub3ApICBMQUJFTCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UucmV2aXNpb249M2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYmFzZS5kaWdlc3Q9c2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMgc29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTY9OWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiBzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlPUlORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAgICAgICAgICJlbXB0eV9sYXllciI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjcmVhdGVkIjogIjIwMjYtMTAtMTFUMDE6MjE6MDQuNzg3NTI3Njk3WiIsCiAgICAgICAgICAiY3JlYXRlZF9ieSI6ICIvYmluL3NoIC1jICMobm9wKSBDT1BZIGZpbGU6MmJlOWNiMzZlNzI1M2UxNTczMzY3MzM1OWNkYThjYWEyMjk4NmI2ODg4ODIyYTAwOGMxYjM2MGQ5MDk5OTRlMCBpbiAvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9pbmZvcm1lZF9kZWNpc2lvbi9wb2xpY3kucHkgIgogICAgICAgIH0KICAgICAgXSwKICAgICAgIm9zIjogImxpbnV4IiwKICAgICAgInJvb3RmcyI6IHsKICAgICAgICAidHlwZSI6ICJsYXllcnMiLAogICAgICAgICJkaWZmX2lkcyI6IFsKICAgICAgICAgICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIsCiAgICAgICAgICAic2hhMjU2OjNjYTRiZTJjNmU5YWMwMjIzNzE1MzU1MjUzNzI1MzgxMDAwNDg2YzJiNDViZmNiMjJjZjU3MWI2YTg1YTEyZGQiLAogICAgICAgICAgInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IiwKICAgICAgICAgICJzaGEyNTY6NDA5OGFkMDMzNTI1MjYzZjkyYThhOWM1MTg2NTU5NjAyNWQ0NzAxOGUwNzhjMGIxZjdkOWNkNTY2M2ZjMWZmZSIsCiAgICAgICAgICAic2hhMjU2OmY5YjRhOGE0MTJhMGMwN2E0ODllNDZmYjVkYjQxZjlkMGRjODRkNGVjMzhhNGUyYzZhYjk1MzFmNDRlMGQ5ZjEiLAogICAgICAgICAgInNoYTI1Njo2NDg0NTFhMGRkYTg0YWQwNDY4MWUzMmI1ZWNjN2NkNWQzYTRmMGFkODRmNzgzZTk1OThkNzJiYzY5NjIwZDVjIiwKICAgICAgICAgICJzaGEyNTY6MzYxNDMwYTExMTM5Njk3NDNiOTllMjM3YjIwZjAyM2Q1NDk3NDkzYmNmOTZmYjkxYWY5OWFjMGEwZGJjNGE1OSIsCiAgICAgICAgICAic2hhMjU2OmNmYzU5Mzk2NzRkNjdmNjBiNDQxMWMyNGRmY2RlNTYyMmI3MTJlZWI3Mzc2Y2QwOTQxYTI3NTFkYTgwYTZiMDIiLAogICAgICAgICAgInNoYTI1NjoyMWZmOTE4OGNiMjljYTk1ZmU5YmUxMTM1NWY3MGFiNTU4NmU4NDk5ZTMzYjUyYTI1M2Q5NTNmYjNiNzVhZWEzIgogICAgICAgIF0KICAgICAgfSwKICAgICAgImNvbmZpZyI6IHsKICAgICAgICAiRW50cnlwb2ludCI6IFsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi1jb250YWluZXIiCiAgICAgICAgXSwKICAgICAgICAiRW52IjogWwogICAgICAgICAgIlBBVEg9L29wdC92ZW52L2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLAogICAgICAgICAgIkxBTkc9Qy5VVEYtOCIsCiAgICAgICAgICAiR1BHX0tFWT03MTY5NjA1RjYyQzc1MTM1NkQwNTRBMjZBODIxRTY4MEU1RkE2MzA1IiwKICAgICAgICAgICJQWVRIT05fVkVSU0lPTj0zLjEyLjE0IiwKICAgICAgICAgICJQWVRIT05fU0hBMjU2PTVjODQ2MmFmNTc5MGJhZjQzYTMyMWExNTU5ZGJlMGRiMDZkMWJlNDMwMGZiODVmYjUzYzQwMDYwNjY4ZTU0OGEiLAogICAgICAgICAgIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFPTEiLAogICAgICAgICAgIlBZVEhPTlVOQlVGRkVSRUQ9MSIKICAgICAgICBdLAogICAgICAgICJJbWFnZSI6ICJzaGEyNTY6OTBmMTU3NGY5ZWRhMzVmYTZjYjk3Mjk2MWJlYjI3YTdjYjkwNGMzNjU2MGUzODE5MzBiMGUxNDA2NWMyMzg4MyIsCiAgICAgICAgIkxhYmVscyI6IHsKICAgICAgICAgICJvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYmFzZS5kaWdlc3QiOiAic2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgICAgICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5yZXZpc2lvbiI6ICIzZTRiY2IyNmY4ZWVhYThjNjQzNDVjNTY1NDc3YjVhYzhjY2JiMTY4IiwKICAgICAgICAgICJzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlIjogIklORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAgICAgICAgICJzb2NpYWwuY291bG9tYi5zb3VyY2UucG9saWN5LnNoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIgogICAgICAgIH0sCiAgICAgICAgIlVzZXIiOiAiMTAwMDE6MTAwMDEiLAogICAgICAgICJXb3JraW5nRGlyIjogIi9hcHAiLAogICAgICAgICJFeHBvc2VkUG9ydHMiOiB7CiAgICAgICAgICAiODA4MC90Y3AiOiB7fSwKICAgICAgICAgICI4MDgxL3RjcCI6IHt9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIkxheWVycyI6IFsKICAgICAgewogICAgICAgICJTaXplIjogODY5Nzg1NiwKICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIlNpemUiOiAxNTM4MDQ4LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjQ3MzkzYjY2OGNlNTM1ZDA2ZTg5Njc5MTdkNDI0YzE3N2UyZWNjY2FlODM4NTZkNDhiMmU5OTE2NGY4Y2M2Y2IiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjNjYTRiZTJjNmU5YWMwMjIzNzE1MzU1MjUzNzI1MzgxMDAwNDg2YzJiNDViZmNiMjJjZjU3MWI2YTg1YTEyZGQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDQ3MTUwNTkyLAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDUxMjAsCiAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6ZWQ2MmM5MWNjZDk0ZTM2YTkyOGU5NmQ3MDRjZmNmMjA4NjEzMDI1OTAyNDVjYzEyYWE4OWExNWE1ZDZiZTI5YiIsCiAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NDA5OGFkMDMzNTI1MjYzZjkyYThhOWM1MTg2NTU5NjAyNWQ0NzAxOGUwNzhjMGIxZjdkOWNkNTY2M2ZjMWZmZSIKICAgICAgfSwKICAgICAgewogICAgICAgICJTaXplIjogMTMxNTg0LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OmYwZmUzZTA4YWIwNDZjMGM1ZTI5ZDM0ZWU3M2JjOGM3ZTAzMzk4ZWI4OTFlNDQ5OGUwYTY3MDg4YTVlYTNlODYiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmY5YjRhOGE0MTJhMGMwN2E0ODllNDZmYjVkYjQxZjlkMGRjODRkNGVjMzhhNGUyYzZhYjk1MzFmNDRlMGQ5ZjEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDMwNzA1NjY0LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDEyMjg4LAogICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjE2YTNkYmE2YjcyMGQzMDU5ZWFiOTE4Y2QzNTk2Zjk0MTQ1YWM5Y2Y0ZDQ1NmY5MjVhMjFmMGY3MjUyMjg2M2YiLAogICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM2MTQzMGExMTEzOTY5NzQzYjk5ZTIzN2IyMGYwMjNkNTQ5NzQ5M2JjZjk2ZmI5MWFmOTlhYzBhMGRiYzRhNTkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiU2l6ZSI6IDE1MzYsCiAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6ZTczZGQ0NjRmYmZmNTYwN2NjNjJhMWIyYjY2YjBlZWZlNzM3ZGZhZDRkYjhlN2I1OGE0OGNkYTdjMTJkOTRkMyIsCiAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6Y2ZjNTkzOTY3NGQ2N2Y2MGI0NDExYzI0ZGZjZGU1NjIyYjcxMmVlYjczNzZjZDA5NDFhMjc1MWRhODBhNmIwMiIKICAgICAgfSwKICAgICAgewogICAgICAgICJTaXplIjogMTUzNjAsCiAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6Y2ZlZTI5YzJmODExOWQyYTM5NzE0ZWNiZTUwOTVhMmRjMWM5ODYwNTRmMmUxZmUwYTY1NjUxNjMyNDI0MTdlMyIsCiAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MjFmZjkxODhjYjI5Y2E5NWZlOWJlMTEzNTVmNzBhYjU1ODZlODQ5OWUzM2I1MmEyNTNkOTUzZmIzYjc1YWVhMyIKICAgICAgfQogICAgXQogIH0sCiAgIlJlc3VsdHMiOiBbCiAgICB7CiAgICAgICJUYXJnZXQiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIChhbHBpbmUgMy4yNC4xKSIsCiAgICAgICJDbGFzcyI6ICJvcy1wa2dzIiwKICAgICAgIlR5cGUiOiAiYWxwaW5lIiwKICAgICAgIlBhY2thZ2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJJRCI6ICIucHl0aG9uLXJ1bmRlcHNAMjAyNjA5MDEuMDAxMDI5IiwKICAgICAgICAgICJOYW1lIjogIi5weXRob24tcnVuZGVwcyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvLnB5dGhvbi1ydW5kZXBzQDIwMjYwOTAxLjAwMTAyOT9hcmNoPW5vYXJjaFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjRlMjZjOTlmZWNhYzFlOTciCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMjAyNjA5MDEuMDAxMDI5IiwKICAgICAgICAgICJBcmNoIjogIm5vYXJjaCIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAiZ2RibUAxLjI2LXIwIiwKICAgICAgICAgICAgImxpYmJ6MkAxLjAuOC1yNiIsCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYmZmaUAzLjUuMi1yMSIsCiAgICAgICAgICAgICJsaWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICAgImxpYm5zbEAyLjAuMS1yMiIsCiAgICAgICAgICAgICJsaWJwYW5lbHdANi42X3AyMDI2MDUxNi1yMCIsCiAgICAgICAgICAgICJsaWJzc2wzQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnRpcnBjQDEuMy41LXIxIiwKICAgICAgICAgICAgImxpYnV1aWRAMi40Mi4zLXIxIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiLAogICAgICAgICAgICAicmVhZGxpbmVAOC4zLjMtcjEiLAogICAgICAgICAgICAic3FsaXRlLWxpYnNAMy41My40LXIwIiwKICAgICAgICAgICAgInh6LWxpYnNANS44LjMtcjAiLAogICAgICAgICAgICAiemxpYkAxLjMuMi1yMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo1MWQwYzFlN2Q4OGE0MTQzNDU3OTlmMDMwOTE4NWM2MjUwMTNlZjMyIiwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJhbHBpbmUtYmFzZWxheW91dEAzLjcuMi1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJhbHBpbmUtYmFzZWxheW91dCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLWJhc2VsYXlvdXRAMy43LjItcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIxYjljNTQzMzAwZjgwNzNlIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuNy4yLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJhbHBpbmUtYmFzZWxheW91dCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIzLjcuMi1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgImFscGluZS1iYXNlbGF5b3V0LWRhdGFAMy43LjItcjEiLAogICAgICAgICAgICAiYnVzeWJveC1iaW5zaEAxLjM3LjAtcjMxIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOmYwZmNmZGMyZjRkYTA1OGFmNjQ3M2JjNDVjNGVhYjYyOTE2MjI1YjIiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL21vdGQiLAogICAgICAgICAgICAiZXRjL2Nyb250YWJzL3Jvb3QiLAogICAgICAgICAgICAiZXRjL21vZHByb2JlLmQvYWxpYXNlcy5jb25mIiwKICAgICAgICAgICAgImV0Yy9tb2Rwcm9iZS5kL2JsYWNrbGlzdC5jb25mIiwKICAgICAgICAgICAgImV0Yy9tb2Rwcm9iZS5kL2kzODYuY29uZiIsCiAgICAgICAgICAgICJldGMvcHJvZmlsZS5kLzIwbG9jYWxlLnNoIiwKICAgICAgICAgICAgImV0Yy9wcm9maWxlLmQvUkVBRE1FIiwKICAgICAgICAgICAgImV0Yy9wcm9maWxlLmQvY29sb3JfcHJvbXB0LnNoLmRpc2FibGVkIiwKICAgICAgICAgICAgInVzci9saWIvc3lzY3RsLmQvMDAtYWxwaW5lLmNvbmYiLAogICAgICAgICAgICAidmFyL2xvY2siLAogICAgICAgICAgICAidmFyL3J1biIsCiAgICAgICAgICAgICJ2YXIvc3Bvb2wvbWFpbCIsCiAgICAgICAgICAgICJ2YXIvc3Bvb2wvY3Jvbi9jcm9udGFicyIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYWxwaW5lLWJhc2VsYXlvdXQtZGF0YUAzLjcuMi1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJhbHBpbmUtYmFzZWxheW91dC1kYXRhIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUtYmFzZWxheW91dC1kYXRhQDMuNy4yLXIxP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiZmNjM2NkOTAxMjJkOGFhNyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjcuMi1yMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYWxwaW5lLWJhc2VsYXlvdXQiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy43LjItcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOmM2ZjliZGVkMTdkODQ0YjZmMWIwYmI1NzY2ZDJjMzVjMGQ1Yzg1MDgiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL2ZzdGFiIiwKICAgICAgICAgICAgImV0Yy9ncm91cCIsCiAgICAgICAgICAgICJldGMvaG9zdG5hbWUiLAogICAgICAgICAgICAiZXRjL2hvc3RzIiwKICAgICAgICAgICAgImV0Yy9pbml0dGFiIiwKICAgICAgICAgICAgImV0Yy9tb2R1bGVzIiwKICAgICAgICAgICAgImV0Yy9tdGFiIiwKICAgICAgICAgICAgImV0Yy9uc3N3aXRjaC5jb25mIiwKICAgICAgICAgICAgImV0Yy9wYXNzd2QiLAogICAgICAgICAgICAiZXRjL3Byb2ZpbGUiLAogICAgICAgICAgICAiZXRjL3Byb3RvY29scyIsCiAgICAgICAgICAgICJldGMvc2VydmljZXMiLAogICAgICAgICAgICAiZXRjL3NoYWRvdyIsCiAgICAgICAgICAgICJldGMvc2hlbGxzIiwKICAgICAgICAgICAgImV0Yy9zeXNjdGwuY29uZiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYWxwaW5lLWtleXNAMi42LXIwIiwKICAgICAgICAgICJOYW1lIjogImFscGluZS1rZXlzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9hbHBpbmUta2V5c0AyLjYtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJjYjFmNmM4ZmE3NDcxM2UwIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjIuNi1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYWxwaW5lLWtleXMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMi42LXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpkOGQ2YjgwZTUzYzA1OWE3N2U0OTE1ZGE3OGJhOTY0ZjNmZmVhMjQwIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgImV0Yy9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAiZXRjL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTI2MWNlY2IucnNhLnB1YiIsCiAgICAgICAgICAgICJldGMvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTY1ZWU1OS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTI0M2VmNGIucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01MjRkMjdiYi5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNjFjZWNiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTgxOTlkY2MucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01OGNiYjQ3Ni5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTU4ZTRmMTdkLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNWU2OWNhNTAucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MGFjMjA5OS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNjVlZTU5LnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2NjZlM2YucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTZhOTcyNC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFiYzIzLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2YWMzYmMucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTZhZGZlYi5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFlMzUwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2ZGIzMGQucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02NmJhMjBmZS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hYXJjaDY0L2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTgxOTlkY2MucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYWFyY2g2NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFlMzUwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FybWhmL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNTI0ZDI3YmIucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvYXJtaGYvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MTZhOTcyNC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9hcm12Ny9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNGQyN2JiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL2FybXY3L2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2YWRmZWIucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvbG9vbmdhcmNoNjQvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02NmJhMjBmZS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9taXBzNjQvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01ZTY5Y2E1MC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9wcGM2NGxlL2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNThjYmI0NzYucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvcHBjNjRsZS9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFiYzIzLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3Jpc2N2NjQvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy02MGFjMjA5OS5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9yaXNjdjY0L2FscGluZS1kZXZlbEBsaXN0cy5hbHBpbmVsaW51eC5vcmctNjE2ZGIzMGQucnNhLnB1YiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvYXBrL2tleXMvczM5MHgvYWxwaW5lLWRldmVsQGxpc3RzLmFscGluZWxpbnV4Lm9yZy01OGU0ZjE3ZC5yc2EucHViIiwKICAgICAgICAgICAgInVzci9zaGFyZS9hcGsva2V5cy9zMzkweC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNmFjM2JjLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Ni9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Ni9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNDNlZjRiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Ni9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNjY2ZTNmLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Nl82NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTRhNmEwODQwLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Nl82NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTUyNjFjZWNiLnJzYS5wdWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL2Fway9rZXlzL3g4Nl82NC9hbHBpbmUtZGV2ZWxAbGlzdHMuYWxwaW5lbGludXgub3JnLTYxNjVlZTU5LnJzYS5wdWIiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImFscGluZS1yZWxlYXNlQDMuMjQuMS1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJhbHBpbmUtcmVsZWFzZSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYWxwaW5lLXJlbGVhc2VAMy4yNC4xLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNmNmYWQ2ZjM2ZTFmMzFhYSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjI0LjEtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImFscGluZS1iYXNlIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjMuMjQuMS1yMCIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJNSVQiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgImFscGluZS1rZXlzQDIuNi1yMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpiYzY5MTJhMjVjZGM3NzMzZTAwMzVlZDUwOWVjZWFhNDAyNjk0NmUzIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgImV0Yy9hbHBpbmUtcmVsZWFzZSIsCiAgICAgICAgICAgICJldGMvaXNzdWUiLAogICAgICAgICAgICAiZXRjL29zLXJlbGVhc2UiLAogICAgICAgICAgICAiZXRjL3NlY2ZpeGVzLmQvYWxwaW5lIiwKICAgICAgICAgICAgInVzci9saWIvb3MtcmVsZWFzZSIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYXBrLXRvb2xzQDMuMC42LXIwIiwKICAgICAgICAgICJOYW1lIjogImFway10b29scyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYXBrLXRvb2xzQDMuMC42LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiY2IyNjMzYzg4M2IxN2EwNCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjAuNi1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYXBrLXRvb2xzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjMuMC42LXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIkdQTC0yLjAtb25seSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAiY2EtY2VydGlmaWNhdGVzLWJ1bmRsZUAyMDI2MDYxMS1yMCIsCiAgICAgICAgICAgICJsaWJhcGtAMy4wLjYtcjAiLAogICAgICAgICAgICAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIiwKICAgICAgICAgICAgInpsaWJAMS4zLjItcjAiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MDQzMzMzNTg5Nzk4YTFmNTJlMDlhZTYzZjAyNmM2YzhmYTY3NmQzNCIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJzYmluL2FwayIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiYnVzeWJveEAxLjM3LjAtcjMxIiwKICAgICAgICAgICJOYW1lIjogImJ1c3lib3giLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2J1c3lib3hAMS4zNy4wLXIzMT9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjc3MTAyMGM0M2M4NDQwYmYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4zNy4wLXIzMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiYnVzeWJveCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjM3LjAtcjMxIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIkdQTC0yLjAtb25seSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJTw7ZyZW4gVGVtcGVsIFx1MDAzY3NvZXJlbithbHBpbmVAc29lcmVuLXRlbXBlbC5uZXRcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6YjU0MDVlYmMwMmY3ZGQ4YmU5NWI2MjY1YzU0YjI0M2Q1NDU2YWI4ZiIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJiaW4vYnVzeWJveCIsCiAgICAgICAgICAgICJldGMvc2VjdXJldHR5IiwKICAgICAgICAgICAgImV0Yy9idXN5Ym94LXBhdGhzLmQvYnVzeWJveCIsCiAgICAgICAgICAgICJldGMvbG9ncm90YXRlLmQvYWNwaWQiLAogICAgICAgICAgICAiZXRjL25ldHdvcmsvaWYtdXAuZC9kYWQiLAogICAgICAgICAgICAiZXRjL3VkaGNwYy91ZGhjcGMuY29uZiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvdWRoY3BjL2RlZmF1bHQuc2NyaXB0IgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJidXN5Ym94LWJpbnNoQDEuMzcuMC1yMzEiLAogICAgICAgICAgIk5hbWUiOiAiYnVzeWJveC1iaW5zaCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvYnVzeWJveC1iaW5zaEAxLjM3LjAtcjMxP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMWVjOGEzZDVkMmI2MzI5NyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjM3LjAtcjMxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJidXN5Ym94IiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMzcuMC1yMzEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIlPDtnJlbiBUZW1wZWwgXHUwMDNjc29lcmVuK2FscGluZUBzb2VyZW4tdGVtcGVsLm5ldFx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAiYnVzeWJveEAxLjM3LjAtcjMxIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjVjYmQxNGFjYzZmMTgwNGM1YmFjNmM3N2RjMmM0OTJmMDEwYjBmYzciLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiYmluL3NoIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJjYS1jZXJ0aWZpY2F0ZXNAMjAyNjA2MTEtcjAiLAogICAgICAgICAgIk5hbWUiOiAiY2EtY2VydGlmaWNhdGVzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9jYS1jZXJ0aWZpY2F0ZXNAMjAyNjA2MTEtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIyYTNjMzE2ZWU4M2M2MTk4IgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjIwMjYwNjExLXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJjYS1jZXJ0aWZpY2F0ZXMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMjAyNjA2MTEtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTVBMLTIuMCIsCiAgICAgICAgICAgICJNSVQiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgImJ1c3lib3gtYmluc2hAMS4zNy4wLXIzMSIsCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo0NzM5M2I2NjhjZTUzNWQwNmU4OTY3OTE3ZDQyNGMxNzdlMmVjY2NhZTgzODU2ZDQ4YjJlOTkxNjRmOGNjNmNiIiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6OGYyYTA0YWJlYjU0YjMzMWUyOTcwYTBhMGRmZmI3YmQ2YmRkZTU2NyIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJldGMvY2EtY2VydGlmaWNhdGVzLmNvbmYiLAogICAgICAgICAgICAiZXRjL2Fway9wcm90ZWN0ZWRfcGF0aHMuZC9jYS1jZXJ0aWZpY2F0ZXMubGlzdCIsCiAgICAgICAgICAgICJldGMvY2EtY2VydGlmaWNhdGVzL3VwZGF0ZS5kL2NlcnRoYXNoIiwKICAgICAgICAgICAgInVzci9iaW4vY19yZWhhc2giLAogICAgICAgICAgICAidXNyL3NiaW4vdXBkYXRlLWNhLWNlcnRpZmljYXRlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQUNDVlJBSVoxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQUNfUkFJWl9GTk1ULVJDTS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FDX1JBSVpfRk5NVC1SQ01fU0VSVklET1JFU19TRUdVUk9TLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQU5GX1NlY3VyZV9TZXJ2ZXJfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FjdGFsaXNfQXV0aGVudGljYXRpb25fUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FtYXpvbl9Sb290X0NBXzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9BbWF6b25fUm9vdF9DQV8yLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQW1hem9uX1Jvb3RfQ0FfMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0FtYXpvbl9Sb290X0NBXzQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9BdG9zX1RydXN0ZWRSb290XzIwMTEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9BdG9zX1RydXN0ZWRSb290X1Jvb3RfQ0FfRUNDX1RMU18yMDIxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQXRvc19UcnVzdGVkUm9vdF9Sb290X0NBX1JTQV9UTFNfMjAyMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0F1dG9yaWRhZF9kZV9DZXJ0aWZpY2FjaW9uX0Zpcm1hcHJvZmVzaW9uYWxfQ0lGX0E2MjYzNDA2OC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0JKQ0FfR2xvYmFsX1Jvb3RfQ0ExLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQkpDQV9HbG9iYWxfUm9vdF9DQTIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9CdXlwYXNzX0NsYXNzXzJfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0J1eXBhc3NfQ2xhc3NfM19Sb290X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQ0FfRGlzaWdfUm9vdF9SMi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NGQ0FfRVZfUk9PVC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NPTU9ET19FQ0NfQ2VydGlmaWNhdGlvbl9BdXRob3JpdHkuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9DT01PRE9fUlNBX0NlcnRpZmljYXRpb25fQXV0aG9yaXR5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQ2VydGFpbmx5X1Jvb3RfRTEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9DZXJ0YWlubHlfUm9vdF9SMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NlcnRpZ25hX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9DZXJ0dW1fRUMtMzg0X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvQ2VydHVtX1RydXN0ZWRfTmV0d29ya19DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NlcnR1bV9UcnVzdGVkX05ldHdvcmtfQ0FfMi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0NlcnR1bV9UcnVzdGVkX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9ELVRSVVNUX0JSX1Jvb3RfQ0FfMV8yMDIwLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRC1UUlVTVF9CUl9Sb290X0NBXzJfMjAyMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0QtVFJVU1RfRVZfUm9vdF9DQV8xXzIwMjAuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9ELVRSVVNUX0VWX1Jvb3RfQ0FfMl8yMDIzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRC1UUlVTVF9Sb290X0NsYXNzXzNfQ0FfMl8yMDA5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRC1UUlVTVF9Sb290X0NsYXNzXzNfQ0FfMl9FVl8yMDA5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfQXNzdXJlZF9JRF9Sb290X0cyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfQXNzdXJlZF9JRF9Sb290X0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfR2xvYmFsX1Jvb3RfRzIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9EaWdpQ2VydF9HbG9iYWxfUm9vdF9HMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0RpZ2lDZXJ0X1RMU19FQ0NfUDM4NF9Sb290X0c1LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvRGlnaUNlcnRfVExTX1JTQTQwOTZfUm9vdF9HNS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0RpZ2lDZXJ0X1RydXN0ZWRfUm9vdF9HNC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dEQ0FfVHJ1c3RBVVRIX1I1X1JPT1QuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HVFNfUm9vdF9SMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dUU19Sb290X1IzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvR1RTX1Jvb3RfUjQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HbG9iYWxTaWduX0VDQ19Sb290X0NBXy1fUjQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HbG9iYWxTaWduX0VDQ19Sb290X0NBXy1fUjUuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9HbG9iYWxTaWduX1Jvb3RfQ0FfLV9SMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dsb2JhbFNpZ25fUm9vdF9DQV8tX1I2LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvR2xvYmFsU2lnbl9Sb290X0U0Ni5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL0dsb2JhbFNpZ25fUm9vdF9SNDYuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9Hb19EYWRkeV9Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8tX0cyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSEFSSUNBX1RMU19FQ0NfUm9vdF9DQV8yMDIxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSEFSSUNBX1RMU19SU0FfUm9vdF9DQV8yMDIxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSGVsbGVuaWNfQWNhZGVtaWNfYW5kX1Jlc2VhcmNoX0luc3RpdHV0aW9uc19FQ0NfUm9vdENBXzIwMTUuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9IZWxsZW5pY19BY2FkZW1pY19hbmRfUmVzZWFyY2hfSW5zdGl0dXRpb25zX1Jvb3RDQV8yMDE1LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSGlQS0lfUm9vdF9DQV8tX0cxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvSG9uZ2tvbmdfUG9zdF9Sb290X0NBXzMuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JU1JHX1Jvb3RfWDEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JU1JHX1Jvb3RfWDIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JZGVuVHJ1c3RfQ29tbWVyY2lhbF9Sb290X0NBXzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JZGVuVHJ1c3RfUHVibGljX1NlY3Rvcl9Sb290X0NBXzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9JemVucGUuY29tLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTWljcm9zZWNfZS1Temlnbm9fUm9vdF9DQV8yMDA5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTWljcm9zb2Z0X0VDQ19Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8yMDE3LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTWljcm9zb2Z0X1JTQV9Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8yMDE3LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvTkFWRVJfR2xvYmFsX1Jvb3RfQ2VydGlmaWNhdGlvbl9BdXRob3JpdHkuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9OZXRMb2NrX0FyYW55Xz1DbGFzc19Hb2xkPV9GxZF0YW7DunPDrXR2w6FueS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL09JU1RFX1NlcnZlcl9Sb290X0VDQ19HMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL09JU1RFX1NlcnZlcl9Sb290X1JTQV9HMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL09JU1RFX1dJU2VLZXlfR2xvYmFsX1Jvb3RfR0JfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9PSVNURV9XSVNlS2V5X0dsb2JhbF9Sb290X0dDX0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvUXVvVmFkaXNfUm9vdF9DQV8xX0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvUXVvVmFkaXNfUm9vdF9DQV8yX0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvUXVvVmFkaXNfUm9vdF9DQV8zX0czLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU1NMLmNvbV9FVl9Sb290X0NlcnRpZmljYXRpb25fQXV0aG9yaXR5X0VDQy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1NTTC5jb21fRVZfUm9vdF9DZXJ0aWZpY2F0aW9uX0F1dGhvcml0eV9SU0FfUjIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TU0wuY29tX1Jvb3RfQ2VydGlmaWNhdGlvbl9BdXRob3JpdHlfRUNDLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU1NMLmNvbV9Sb290X0NlcnRpZmljYXRpb25fQXV0aG9yaXR5X1JTQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1NTTC5jb21fVExTX0VDQ19Sb290X0NBXzIwMjIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TU0wuY29tX1RMU19SU0FfUm9vdF9DQV8yMDIyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU1pBRklSX1JPT1RfQ0EyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU2VjdGlnb19QdWJsaWNfU2VydmVyX0F1dGhlbnRpY2F0aW9uX1Jvb3RfRTQ2LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU2VjdGlnb19QdWJsaWNfU2VydmVyX0F1dGhlbnRpY2F0aW9uX1Jvb3RfUjQ2LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU2VjdXJlU2lnbl9Sb290X0NBMTQuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TZWN1cmVTaWduX1Jvb3RfQ0ExNS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1NlY3VyaXR5X0NvbW11bmljYXRpb25fRUNDX1Jvb3RDQTEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TZWN1cml0eV9Db21tdW5pY2F0aW9uX1Jvb3RDQTIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9TdGFyZmllbGRfUm9vdF9DZXJ0aWZpY2F0ZV9BdXRob3JpdHlfLV9HMi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1N0YXJmaWVsZF9TZXJ2aWNlc19Sb290X0NlcnRpZmljYXRlX0F1dGhvcml0eV8tX0cyLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvU3dpc3NTaWduX1JTQV9UTFNfUm9vdF9DQV8yMDIyXy1fMS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1QtVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9ULVRlbGVTZWNfR2xvYmFsUm9vdF9DbGFzc18zLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVFVCSVRBS19LYW11X1NNX1NTTF9Lb2tfU2VydGlmaWthc2lfLV9TdXJ1bV8xLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVFdDQV9DWUJFUl9Sb290X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVFdDQV9HbG9iYWxfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RXQ0FfUm9vdF9DZXJ0aWZpY2F0aW9uX0F1dGhvcml0eS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RlbGVrb21fU2VjdXJpdHlfVExTX0VDQ19Sb290XzIwMjAuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9UZWxla29tX1NlY3VyaXR5X1RMU19SU0FfUm9vdF8yMDIzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVGVsaWFfUm9vdF9DQV92Mi5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RydXN0QXNpYV9HbG9iYWxfUm9vdF9DQV9HMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RydXN0QXNpYV9HbG9iYWxfUm9vdF9DQV9HNC5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1RydXN0QXNpYV9UTFNfRUNDX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9UcnVzdEFzaWFfVExTX1JTQV9Sb290X0NBLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVHVuVHJ1c3RfUm9vdF9DQS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL1VDQV9FeHRlbmRlZF9WYWxpZGF0aW9uX1Jvb3QuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9VQ0FfR2xvYmFsX0cyX1Jvb3QuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9VU0VSVHJ1c3RfRUNDX0NlcnRpZmljYXRpb25fQXV0aG9yaXR5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvVVNFUlRydXN0X1JTQV9DZXJ0aWZpY2F0aW9uX0F1dGhvcml0eS5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL2NlcnRTSUdOX1Jvb3RfQ0FfRzIuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lLVN6aWdub19Sb290X0NBXzIwMTcuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lLVN6aWdub19UTFNfUm9vdF9DQV8yMDIzLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvZVBLSV9Sb290X0NlcnRpZmljYXRpb25fQXV0aG9yaXR5LmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvZW1TaWduX0VDQ19Sb290X0NBXy1fQzMuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lbVNpZ25fRUNDX1Jvb3RfQ0FfLV9HMy5jcnQiLAogICAgICAgICAgICAidXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9tb3ppbGxhL2VtU2lnbl9Sb290X0NBXy1fQzEuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS9lbVNpZ25fUm9vdF9DQV8tX0cxLmNydCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvY2EtY2VydGlmaWNhdGVzL21vemlsbGEvdlRydXNfRUNDX1Jvb3RfQ0EuY3J0IiwKICAgICAgICAgICAgInVzci9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvbW96aWxsYS92VHJ1c19Sb290X0NBLmNydCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAiY2EtY2VydGlmaWNhdGVzLWJ1bmRsZUAyMDI2MDYxMS1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJjYS1jZXJ0aWZpY2F0ZXMtYnVuZGxlIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9jYS1jZXJ0aWZpY2F0ZXMtYnVuZGxlQDIwMjYwNjExLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMjAzMzdjMmVhMjhiZWYyOCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIyMDI2MDYxMS1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiY2EtY2VydGlmaWNhdGVzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIwMjYwNjExLXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1QTC0yLjAiLAogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOmM5NTM0YTAzNzUwYmRmYWUzNDFmMTA5NjkwMTYwOTBmYzExZmViYmQiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL3NzbC9jZXJ0LnBlbSIsCiAgICAgICAgICAgICJldGMvc3NsL2NlcnRzL2NhLWNlcnRpZmljYXRlcy5jcnQiLAogICAgICAgICAgICAiZXRjL3NzbDEuMS9jZXJ0LnBlbSIsCiAgICAgICAgICAgICJldGMvc3NsMS4xL2NlcnRzIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJnZGJtQDEuMjYtcjAiLAogICAgICAgICAgIk5hbWUiOiAiZ2RibSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvZ2RibUAxLjI2LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNWViMWEzZjg2MjYyY2E3NyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjI2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJnZGJtIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMjYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTMuMC1vci1sYXRlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo2MTk0OTNkODEyNGZlNDlhOGVlMWQ4ZjdhMTM3MmNmN2UzOTc3MzM3IiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGliZ2RibS5zby42IiwKICAgICAgICAgICAgInVzci9saWIvbGliZ2RibS5zby42LjAuMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmdkYm1fY29tcGF0LnNvLjQiLAogICAgICAgICAgICAidXNyL2xpYi9saWJnZGJtX2NvbXBhdC5zby40LjAuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAia2V5dXRpbHMtbGlic0AxLjYuMy1yNCIsCiAgICAgICAgICAiTmFtZSI6ICJrZXl1dGlscy1saWJzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9rZXl1dGlscy1saWJzQDEuNi4zLXI0P2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiYTFhMjkxMjBlYjM0MjAzMiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjYuMy1yNCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAia2V5dXRpbHMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS42LjMtcjQiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICJMR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpiNzMzMWM5NmYwNzdmYzM1MjJlZTQzNjFhNDQxZDEwOTcyMDRjZDkwIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlia2V5dXRpbHMuc28uMSIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtleXV0aWxzLnNvLjEuMTAiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImtyYjUtY29uZkAxLjAtcjIiLAogICAgICAgICAgIk5hbWUiOiAia3JiNS1jb25mIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9rcmI1LWNvbmZAMS4wLXIyP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiZTdjZjk0YmE4YjZkYmMzMyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjAtcjIiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImtyYjUtY29uZiIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjAtcjIiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjQwYTExZTA2OTBhNTllMTEwMzY3YjYyYTgwNjYxMDI0ZTk5NDJhMmQiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL2tyYjUuY29uZiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAia3JiNS1saWJzQDEuMjIuMi1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJrcmI1LWxpYnMiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2tyYjUtbGlic0AxLjIyLjItcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICI5NThmOGI0YTRmMDg3ZGFjIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMjIuMi1yMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAia3JiNSIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjIyLjItcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJrZXl1dGlscy1saWJzQDEuNi4zLXI0IiwKICAgICAgICAgICAgImtyYjUtY29uZkAxLjAtcjIiLAogICAgICAgICAgICAibGliY29tX2VyckAxLjQ3LjQtcjAiLAogICAgICAgICAgICAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAgICJsaWJzc2wzQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnZlcnRvQDAuMy4yLXIyIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6ZWYwMjM0NmUyMWI4MTdmZjM3OWU0NjAxZTViMWZjOTc2MGU1ZTMxYSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmdzc2FwaV9rcmI1LnNvLjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJnc3NhcGlfa3JiNS5zby4yLjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJnc3NycGMuc28uNCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmdzc3JwYy5zby40LjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJrNWNyeXB0by5zby4zIiwKICAgICAgICAgICAgInVzci9saWIvbGliazVjcnlwdG8uc28uMy4xIiwKICAgICAgICAgICAgInVzci9saWIvbGlia2FkbTVjbG50X21pdC5zby4xMiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmthZG01Y2xudF9taXQuc28uMTIuMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmthZG01c3J2X21pdC5zby4xMiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmthZG01c3J2X21pdC5zby4xMi4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlia2RiNS5zby4xMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtkYjUuc28uMTAuMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtyYWQuc28uMCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmtyYWQuc28uMC4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlia3JiNS5zby4zIiwKICAgICAgICAgICAgInVzci9saWIvbGlia3JiNS5zby4zLjMiLAogICAgICAgICAgICAidXNyL2xpYi9saWJrcmI1c3VwcG9ydC5zby4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwKICAgICAgICAgICAgInVzci9saWIva3JiNS9wbHVnaW5zL2tkYi9kYjIuc28iLAogICAgICAgICAgICAidXNyL2xpYi9rcmI1L3BsdWdpbnMvcHJlYXV0aC9vdHAuc28iLAogICAgICAgICAgICAidXNyL2xpYi9rcmI1L3BsdWdpbnMvcHJlYXV0aC9zcGFrZS5zbyIsCiAgICAgICAgICAgICJ1c3IvbGliL2tyYjUvcGx1Z2lucy9wcmVhdXRoL3Rlc3Quc28iLAogICAgICAgICAgICAidXNyL2xpYi9rcmI1L3BsdWdpbnMvdGxzL2s1dGxzLnNvIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJhcGtAMy4wLjYtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGliYXBrIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJhcGtAMy4wLjYtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJhMzViOGI5YjMyMTk1MTNhIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuMC42LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJhcGstdG9vbHMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy4wLjYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vbmx5IgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnNzbDNAMy41LjgtcjAiLAogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAgICJ6bGliQDEuMy4yLXIwIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjUyM2E4ZjU4MTA0NTg5Zjc0Zjc0M2Q1MDFjODFiZjY1MTcxNTUzNzgiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJhcGsuc28uMy4wLjAiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYmJ6MkAxLjAuOC1yNiIsCiAgICAgICAgICAiTmFtZSI6ICJsaWJiejIiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYmJ6MkAxLjAuOC1yNj9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjQ4ZTE3NTM5NDA0ZTJkNTYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4wLjgtcjYiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImJ6aXAyIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMC44LXI2IiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgImJ6aXAtMi0xLjAuNiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTowODU2NmJhNWM3YWY5N2MyNTQ3NGJlOGIyNGU4YjQ4ZjAxMTZiNjdkIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGliYnoyLnNvLjEiLAogICAgICAgICAgICAidXNyL2xpYi9saWJiejIuc28uMS4wLjgiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYmNvbV9lcnJAMS40Ny40LXIwIiwKICAgICAgICAgICJOYW1lIjogImxpYmNvbV9lcnIiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYmNvbV9lcnJAMS40Ny40LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiM2ZjMzVhM2Y2NmQxOTJhZiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjQ3LjQtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImUyZnNwcm9ncyIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjQ3LjQtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICJMR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiLAogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjRiOWZiNTg5OWVhMGIxYzBjZmJiMmEyYzU5NTI3MDQ0MzdkNGVjZWYiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJjb21fZXJyLnNvLjIiLAogICAgICAgICAgICAidXNyL2xpYi9saWJjb21fZXJyLnNvLjIuMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJsaWJjcnlwdG8zIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJjcnlwdG8zQDMuNS44LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNDI5OWJiYTJiYTljOTZhYSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjUuOC1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAib3BlbnNzbCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIzLjUuOC1yMCIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJBcGFjaGUtMi4wIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjFiM2I5ZmMwYzEzNmY0OTM2OTMyYmNiMmVjMjE0OTlmMGFlNWRmZDMiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAiZXRjL3NzbC9jdF9sb2dfbGlzdC5jbmYiLAogICAgICAgICAgICAiZXRjL3NzbC9jdF9sb2dfbGlzdC5jbmYuZGlzdCIsCiAgICAgICAgICAgICJldGMvc3NsL29wZW5zc2wuY25mIiwKICAgICAgICAgICAgImV0Yy9zc2wvb3BlbnNzbC5jbmYuZGlzdCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmNyeXB0by5zby4zIiwKICAgICAgICAgICAgInVzci9saWIvZW5naW5lcy0zL2FmYWxnLnNvIiwKICAgICAgICAgICAgInVzci9saWIvZW5naW5lcy0zL2NhcGkuc28iLAogICAgICAgICAgICAidXNyL2xpYi9lbmdpbmVzLTMvbG9hZGVyX2F0dGljLnNvIiwKICAgICAgICAgICAgInVzci9saWIvZW5naW5lcy0zL3BhZGxvY2suc28iLAogICAgICAgICAgICAidXNyL2xpYi9vc3NsLW1vZHVsZXMvbGVnYWN5LnNvIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJmZmlAMy41LjItcjEiLAogICAgICAgICAgIk5hbWUiOiAibGliZmZpIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJmZmlAMy41LjItcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJkM2VhYTkyMTI4N2IxY2NkIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuNS4yLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJsaWJmZmkiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy41LjItcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlUIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjJmN2IyNjFmN2ZjZWNjNGVlYmQ4YjMzMGU3ZjZmYjgwNzEzYmZlM2EiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJmZmkuc28uOCIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmZmaS5zby44LjIuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGliaW50bEAxLjAtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGliaW50bCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvbGliaW50bEAxLjAtcjA/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIyNWMxODgwOGQ4ZmM4N2UwIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMC1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAiZ2V0dGV4dCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjAtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTEdQTC0yLjEtb3ItbGF0ZXIiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiQ2FybG8gTGFuZG1ldGVyIFx1MDAzY2NsYW5kbWV0ZXJAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjI4MmQ2NjQyY2NhYzg3MjM3ZTQzYTg2NDE1OWQ3M2NmNWFiZTc1NTAiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJpbnRsLnNvLjgiLAogICAgICAgICAgICAidXNyL2xpYi9saWJpbnRsLnNvLjguNC42IgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJOYW1lIjogImxpYm5jdXJzZXN3IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiZTg5MzlmNDVlMjE5MWJjYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJuY3Vyc2VzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWC0xMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJNaWxhbiBQLiBTdGFuacSHIFx1MDAzY21wc0BhcnZhbnRhLm5ldFx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAgICJuY3Vyc2VzLXRlcm1pbmZvLWJhc2VANi42X3AyMDI2MDUxNi1yMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo5ZjMxOGU2ZTMyNGQ2ODI3Mjc0ODI5MTk0Y2Y2YWM2YWZiYWRlZDEyIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlibmN1cnNlc3cuc28uNiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYm5jdXJzZXN3LnNvLjYuNiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGlibnNsQDIuMC4xLXIyIiwKICAgICAgICAgICJOYW1lIjogImxpYm5zbCIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvbGlibnNsQDIuMC4xLXIyP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiM2Q4OTNjNjBkNDFkYTY3YiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIyLjAuMS1yMiIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAibGlibnNsIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIuMC4xLXIyIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIkxHUEwtMi4wLW9yLWxhdGVyIgogICAgICAgICAgXSwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJpbnRsQDEuMC1yMCIsCiAgICAgICAgICAgICJsaWJ0aXJwY0AxLjMuNS1yMSIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjUxOTRhZGJmMjY1NjBiNTJiZTMxODQ4MWE3YWYyOTRhYjA1ZmQ3OTUiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJuc2wuc28uMyIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYm5zbC5zby4zLjAuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGlicGFuZWx3QDYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGlicGFuZWx3IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJwYW5lbHdANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImVmMWFkOWJiMjU2YjM3MyIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJuY3Vyc2VzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWC0xMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJNaWxhbiBQLiBTdGFuacSHIFx1MDAzY21wc0BhcnZhbnRhLm5ldFx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibGlibmN1cnNlc3dANi42X3AyMDI2MDUxNi1yMCIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIiwKICAgICAgICAgICAgIm5jdXJzZXMtdGVybWluZm8tYmFzZUA2LjZfcDIwMjYwNTE2LXIwIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjE0OWJkYzQzNDIzMmVkMTFmYzViYjk3NWJhNTE5YTA3MTU0YTZmNTYiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJwYW5lbHcuc28uNiIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnBhbmVsdy5zby42LjYiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYnNzbDNAMy41LjgtcjAiLAogICAgICAgICAgIk5hbWUiOiAibGlic3NsMyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvbGlic3NsM0AzLjUuOC1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImYyOTBhYjU5Yjg4YjFjNGEiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMy41LjgtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogIm9wZW5zc2wiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMy41LjgtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiQXBhY2hlLTIuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibGliY3J5cHRvM0AzLjUuOC1yMCIsCiAgICAgICAgICAgICJtdXNsQDEuMi42LXIyIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6MjAxNGZkM2Q0N2IyYzJkZDRkZWRjNzY1ODIyYWM2MGFlMjY5ZjNlZmEwZTYxNGY0NmFlMjlmNTQwYzdmMTIzNSIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OmU1Y2NkYTBmYmY2YjU0ZDM0M2UwMjQxNTZkODc2NTUzYmE1N2QzOTI2ZDcxOTY1ODRiM2ExY2U0ZGYwMTYzNjYiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjVmOWIxZTU1ZDgyMTk1M2QyZTJiMWRiMzIyZGFkNzBhM2I1MDQxZWEiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAidXNyL2xpYi9saWJzc2wuc28uMyIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibGlidGlycGNAMS4zLjUtcjEiLAogICAgICAgICAgIk5hbWUiOiAibGlidGlycGMiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjQDEuMy41LXIxP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNDcxYzhkOTU1Y2EwM2JlNSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjMuNS1yMSIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAibGlidGlycGMiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS4zLjUtcjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogIk5hdGFuYWVsIENvcGEgXHUwMDNjbmNvcGFAYWxwaW5lbGludXgub3JnXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJrcmI1LWxpYnNAMS4yMi4yLXIxIiwKICAgICAgICAgICAgImxpYnRpcnBjLWNvbmZAMS4zLjUtcjEiLAogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpjMzI4NjViZDg2YThiODgyOWQxNTIyNzljYWJiYzVhYzZkNDMwZWIyIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlidGlycGMuc28uMyIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnRpcnBjLnNvLjMuMC4wIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJ0aXJwYy1jb25mQDEuMy41LXIxIiwKICAgICAgICAgICJOYW1lIjogImxpYnRpcnBjLWNvbmYiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL2xpYnRpcnBjLWNvbmZAMS4zLjUtcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICIzNDM3MzkyYzE0YWFkMzNmIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMy41LXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJsaWJ0aXJwYyIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjMuNS1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MGMxN2Q5OTg4ZGM5ODZjOTBlMjJmNzk3NzhkZjA0N2VjYTk5NzNmZiIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJldGMvYmluZHJlc3Zwb3J0LmJsYWNrbGlzdCIsCiAgICAgICAgICAgICJldGMvbmV0Y29uZmlnIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJsaWJ1dWlkQDIuNDIuMy1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJsaWJ1dWlkIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJ1dWlkQDIuNDIuMy1yMT9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImM0NDRlOWNkZDFiZGRhNDAiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMi40Mi4zLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJ1dGlsLWxpbnV4IiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIuNDIuMy1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjpmMGZlM2UwOGFiMDQ2YzBjNWUyOWQzNGVlNzNiYzhjN2UwMzM5OGViODkxZTQ0OThlMGE2NzA4OGE1ZWEzZTg2IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZjliNGE4YTQxMmEwYzA3YTQ4OWU0NmZiNWRiNDFmOWQwZGM4NGQ0ZWMzOGE0ZTJjNmFiOTUzMWY0NGUwZDlmMSIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6OGYwNDFlZjYzN2FkNzVmMzgxY2MwYzAzNGYyYWZiYmIwMzAzMjY0ZSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnV1aWQuc28uMSIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnV1aWQuc28uMS4zLjAiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogImxpYnZlcnRvQDAuMy4yLXIyIiwKICAgICAgICAgICJOYW1lIjogImxpYnZlcnRvIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9saWJ2ZXJ0b0AwLjMuMi1yMj9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjlkZjQzMjFhMjgzYTZjZjYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMC4zLjItcjIiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImxpYnZlcnRvIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjAuMy4yLXIyIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJGcmFuY2VzY28gQ29saXN0YSBcdTAwM2NmY29saXN0YUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6NzMyMzMwNTkzMzgxNDJlNGFjNmQ4ZmI4YmIwMDc0ZTkzZGE3NWRjMSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnZlcnRvLnNvLjEiLAogICAgICAgICAgICAidXNyL2xpYi9saWJ2ZXJ0by5zby4xLjAuMCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAiTmFtZSI6ICJtdXNsIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9tdXNsQDEuMi42LXIyP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMWY4Y2I0NGJlZmU1MDNkNCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIxLjIuNi1yMiIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAibXVzbCIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjIuNi1yMiIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJNSVQiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MGY3ZTU4MjdlNGUxYTczNjMxYmVkYTI3Yjc4NDMxYThiYTI0MGUwNSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJsaWIvbGQtbXVzbC14ODZfNjQuc28uMSIsCiAgICAgICAgICAgICJsaWIvbGliYy5tdXNsLXg4Nl82NC5zby4xIgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJtdXNsLXV0aWxzQDEuMi42LXIyIiwKICAgICAgICAgICJOYW1lIjogIm11c2wtdXRpbHMiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzphcGsvYWxwaW5lL211c2wtdXRpbHNAMS4yLjYtcjI/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICI0NDk3NDgyZWMxZDk0M2UxIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMi42LXIyIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJtdXNsIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjEuMi42LXIyIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIsCiAgICAgICAgICAgICJCU0QtMi1DbGF1c2UiLAogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIsCiAgICAgICAgICAgICJzY2FuZWxmQDEuMy45LXIxIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIkRpZ2VzdCI6ICJzaGExOjc1YWRhM2M0OGQ2M2VjNWQ4N2M0MmZkZjkzNGEzZmRkMTEyOThkYzUiLAogICAgICAgICAgIkluc3RhbGxlZEZpbGVzIjogWwogICAgICAgICAgICAic2Jpbi9sZGNvbmZpZyIsCiAgICAgICAgICAgICJ1c3IvYmluL2dldGNvbmYiLAogICAgICAgICAgICAidXNyL2Jpbi9nZXRlbnQiLAogICAgICAgICAgICAidXNyL2Jpbi9pY29udiIsCiAgICAgICAgICAgICJ1c3IvYmluL2xkZCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAibmN1cnNlcy10ZXJtaW5mby1iYXNlQDYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIk5hbWUiOiAibmN1cnNlcy10ZXJtaW5mby1iYXNlIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9uY3Vyc2VzLXRlcm1pbmZvLWJhc2VANi42X3AyMDI2MDUxNi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImU3ZmFjNWM2YTZlOWFlOCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJuY3Vyc2VzIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjYuNl9wMjAyNjA1MTYtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWC0xMSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJNaWxhbiBQLiBTdGFuacSHIFx1MDAzY21wc0BhcnZhbnRhLm5ldFx1MDAzZSIsCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTo5ZDU1MWQ4MjhlOWM4ZWU1MmM1ODAxYzFkNjA0NjgyOGViZjE1NzUyIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9hL2FsYWNyaXR0eSIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vYS9hbnNpIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9kL2R1bWIiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2cvZ25vbWUiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2cvZ25vbWUtMjU2Y29sb3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2sva29uc29sZSIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vay9rb25zb2xlLTI1NmNvbG9yIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9rL2tvbnNvbGUtbGludXgiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL2wvbGludXgiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3AvcHV0dHkiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3AvcHV0dHktMjU2Y29sb3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Ivcnh2dCIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vci9yeHZ0LTI1NmNvbG9yIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9zL3NjcmVlbiIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zY3JlZW4tMjU2Y29sb3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3QtMC42IiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby9zL3N0LTAuNyIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zdC0wLjgiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3QtMC44LjUiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3QtMTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zdC0yNTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vcy9zdC1kaXJlY3QiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3Mvc3VuIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby90L3Rlcm1pbmF0b3IiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3kiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3ktMC42LjEiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3ktMS4wLjAiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdGVybWlub2xvZ3ktMS44LjEiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3QvdG11eCIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8vdC90bXV4LTI1NmNvbG9yIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MTAwIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MTAyIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MjAwIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0MjIwIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0NTIiLAogICAgICAgICAgICAiZXRjL3Rlcm1pbmZvL3YvdnRlIiwKICAgICAgICAgICAgImV0Yy90ZXJtaW5mby92L3Z0ZS0yNTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybSIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybS0yNTZjb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybS1jb2xvciIsCiAgICAgICAgICAgICJldGMvdGVybWluZm8veC94dGVybS14ZnJlZTg2IgogICAgICAgICAgXSwKICAgICAgICAgICJBbmFseXplZEJ5IjogImFwayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJJRCI6ICJyZWFkbGluZUA4LjMuMy1yMSIsCiAgICAgICAgICAiTmFtZSI6ICJyZWFkbGluZSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvcmVhZGxpbmVAOC4zLjMtcjE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJmNTAwNTg3ODFjOTNlMWYyIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjguMy4zLXIxIiwKICAgICAgICAgICJBcmNoIjogIng4Nl82NCIsCiAgICAgICAgICAiU3JjTmFtZSI6ICJyZWFkbGluZSIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICI4LjMuMy1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMy4wLW9yLWxhdGVyIgogICAgICAgICAgXSwKICAgICAgICAgICJNYWludGFpbmVyIjogInFhcWxhbmQgXHUwMDNjcWFxQHFhcS5sYW5kXHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJuY3Vyc2Vzd0A2LjZfcDIwMjYwNTE2LXIwIiwKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6OTQ1YjE2ZTM3OGJjMDBlNDRkODlkNGRlODEyNGJiYTc2NDdmZGY0ZCIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJldGMvaW5wdXRyYyIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYnJlYWRsaW5lLnNvLjgiLAogICAgICAgICAgICAidXNyL2xpYi9saWJyZWFkbGluZS5zby44LjMiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInNjYW5lbGZAMS4zLjktcjEiLAogICAgICAgICAgIk5hbWUiOiAic2NhbmVsZiIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvc2NhbmVsZkAxLjMuOS1yMT9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogIjkzNjM5NDY1N2ExNjI2ZmIiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4zLjktcjEiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogInBheC11dGlscyIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIxLjMuOS1yMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo1NWFmYTFlY2MyMWQyYmI1ZTUwNDVmMzJkYWZlZTU2MjcyZmZkODk4NjBiYWMyNmY2YzMyMTIzNDM5YWYyNmE0IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6MzQ4ODRhYmJlOTI4NjNmY2U5MzNlZDdjMzljMGUwNDU2MzFhZjBlZDg2ZDVjYzBkZmJkZjlmZGNhNDI2Y2UzYyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6MDEzZjkwM2QwYmEyMTk2NzNhZWJiZGQwNGY3NGJiNWVkODJiMDFmMCIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvYmluL3NjYW5lbGYiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInNxbGl0ZS1saWJzQDMuNTMuNC1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJzcWxpdGUtbGlicyIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvc3FsaXRlLWxpYnNAMy41My40LXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiOGIxMGFlZTJjY2MxOTJkZSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjUzLjQtcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogInNxbGl0ZSIsCiAgICAgICAgICAiU3JjVmVyc2lvbiI6ICIzLjUzLjQtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiYmxlc3NpbmciCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiSmluZ3l1biBIdWEgXHUwMDNjaHVhamluZ3l1bkBsb29uZ3Nvbi5jblx1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjIwMTRmZDNkNDdiMmMyZGQ0ZGVkYzc2NTgyMmFjNjBhZTI2OWYzZWZhMGU2MTRmNDZhZTI5ZjU0MGM3ZjEyMzUiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjplNWNjZGEwZmJmNmI1NGQzNDNlMDI0MTU2ZDg3NjU1M2JhNTdkMzkyNmQ3MTk2NTg0YjNhMWNlNGRmMDE2MzY2IgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpmNzYzMGNlYjM3YzIzMmI2NjA5ODYxYWVhYjZjZGI5Y2QxMjBlNmZhIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGlic3FsaXRlMy5zby4wIiwKICAgICAgICAgICAgInVzci9saWIvbGlic3FsaXRlMy5zby4zLjUzLjQiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInNzbF9jbGllbnRAMS4zNy4wLXIzMSIsCiAgICAgICAgICAiTmFtZSI6ICJzc2xfY2xpZW50IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS9zc2xfY2xpZW50QDEuMzcuMC1yMzE/YXJjaD14ODZfNjRcdTAwMjZkaXN0cm89My4yNC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJkNDJlMzFmMTVhNGNlNDdhIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjEuMzcuMC1yMzEiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogImJ1c3lib3giLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS4zNy4wLXIzMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJHUEwtMi4wLW9ubHkiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiU8O2cmVuIFRlbXBlbCBcdTAwM2Nzb2VyZW4rYWxwaW5lQHNvZXJlbi10ZW1wZWwubmV0XHUwMDNlIiwKICAgICAgICAgICJEZXBlbmRzT24iOiBbCiAgICAgICAgICAgICJsaWJjcnlwdG8zQDMuNS44LXIwIiwKICAgICAgICAgICAgImxpYnNzbDNAMy41LjgtcjAiLAogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpjMjIwZjRhNTEyNWEzMTNhZjczM2U5OGRlZjk0MTMyYmIxZTlkNDBkIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9iaW4vc3NsX2NsaWVudCIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAidHpkYXRhQDIwMjZjLXIwIiwKICAgICAgICAgICJOYW1lIjogInR6ZGF0YSIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvdHpkYXRhQDIwMjZjLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiNTJjNmI1MGVmZjYyOWY5ZCIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIyMDI2Yy1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAidHpkYXRhIiwKICAgICAgICAgICJTcmNWZXJzaW9uIjogIjIwMjZjLXIwIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIlB1YmxpYy1Eb21haW4iCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo0NzM5M2I2NjhjZTUzNWQwNmU4OTY3OTE3ZDQyNGMxNzdlMmVjY2NhZTgzODU2ZDQ4YjJlOTkxNjRmOGNjNmNiIiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6M2NhNGJlMmM2ZTlhYzAyMjM3MTUzNTUyNTM3MjUzODEwMDA0ODZjMmI0NWJmY2IyMmNmNTcxYjZhODVhMTJkZCIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6NjFmNzU0NGVjZDhkZDYzZWFjMjNmZTNlNjQ1NzAyZmRhOTJlZjAyYSIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ0VUIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DU1Q2Q0RUIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DdWJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FRVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0VTVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRVNUNUVEVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRWd5cHQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0VpcmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0ZhY3RvcnkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0dCIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9HQi1FaXJlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9HTVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0dNVCswIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9HTVQtMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vR01UMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vR3JlZW53aWNoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9IU1QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0hvbmdrb25nIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9JY2VsYW5kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9JcmFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Jc3JhZWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0phbWFpY2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0phcGFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Ld2FqYWxlaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0xpYnlhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9NRVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL01TVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vTVNUN01EVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vTloiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL05aLUNIQVQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL05hdmFqbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUFJDIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QU1Q4UERUIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Qb2xhbmQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BvcnR1Z2FsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9ST0MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1JPSyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vU2luZ2Fwb3JlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9UdXJrZXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VDVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVRDIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Vbml2ZXJzYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1ctU1UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1dFVCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vWnVsdSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vaXNvMzE2Ni50YWIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL2xlYXAtc2Vjb25kcy5saXN0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9wb3NpeHJ1bGVzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby96b25lLnRhYiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vem9uZTE5NzAudGFiIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQWJpZGphbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0FjY3JhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQWRkaXNfQWJhYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9BbGdpZXJzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQXNtYXJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQXNtZXJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmFtYWtvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmFuZ3VpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmFuanVsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmlzc2F1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQmxhbnR5cmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9CcmF6emF2aWxsZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0J1anVtYnVyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0NhaXJvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQ2FzYWJsYW5jYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0NldXRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvQ29uYWtyeSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0Rha2FyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvRGFyX2VzX1NhbGFhbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0RqaWJvdXRpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvRG91YWxhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvRWxfQWFpdW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9GcmVldG93biIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0dhYm9yb25lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvSGFyYXJlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvSm9oYW5uZXNidXJnIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvSnViYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0thbXBhbGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9LaGFydG91bSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0tpZ2FsaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0tpbnNoYXNhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTGFnb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9MaWJyZXZpbGxlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTG9tZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0x1YW5kYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL0x1YnVtYmFzaGkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9MdXNha2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYWxhYm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYXB1dG8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYXNlcnUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9NYmFiYW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTW9nYWRpc2h1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTW9ucm92aWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9OYWlyb2JpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvTmRqYW1lbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9OaWFtZXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9Ob3Vha2Nob3R0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvT3VhZ2Fkb3Vnb3UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9Qb3J0by1Ob3ZvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BZnJpY2EvU2FvX1RvbWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9UaW1idWt0dSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL1RyaXBvbGkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FmcmljYS9UdW5pcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQWZyaWNhL1dpbmRob2VrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FkYWsiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQW5jaG9yYWdlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FuZ3VpbGxhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FudGlndWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJhZ3VhaW5hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FydWJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FzdW5jaW9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0F0aWtva2FuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0F0a2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmFoaWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmFoaWFfQmFuZGVyYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmFyYmFkb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmVsZW0iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQmVsaXplIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0JsYW5jLVNhYmxvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Cb2FfVmlzdGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQm9nb3RhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0JvaXNlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0J1ZW5vc19BaXJlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYW1icmlkZ2VfQmF5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0NhbXBvX0dyYW5kZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYW5jdW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2FyYWNhcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYXRhbWFyY2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2F5ZW5uZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DYXltYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2hpY2FnbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DaGlodWFodWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ2l1ZGFkX0p1YXJleiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Db3JhbF9IYXJib3VyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0NvcmRvYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ29zdGFfUmljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Db3loYWlxdWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ3Jlc3RvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9DdWlhYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQ3VyYWNhbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9EYW5tYXJrc2hhdm4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvRGF3c29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0Rhd3Nvbl9DcmVlayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9EZW52ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvRGV0cm9pdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Eb21pbmljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FZG1vbnRvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FaXJ1bmVwZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FbF9TYWx2YWRvciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9FbnNlbmFkYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Gb3J0X05lbHNvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Gb3J0X1dheW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0ZvcnRhbGV6YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9HbGFjZV9CYXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvR29kdGhhYiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Hb29zZV9CYXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvR3JhbmRfVHVyayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9HcmVuYWRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0d1YWRlbG91cGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvR3VhdGVtYWxhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0d1YXlhcXVpbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9HdXlhbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSGFsaWZheCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9IYXZhbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSGVybW9zaWxsbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9JbmRpYW5hcG9saXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW51dmlrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0lxYWx1aXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSmFtYWljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9KdWp1eSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9KdW5lYXUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvS25veF9JTiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9LcmFsZW5kaWprIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0xhX1BheiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9MaW1hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0xvc19BbmdlbGVzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0xvdWlzdmlsbGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTG93ZXJfUHJpbmNlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYWNlaW8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTWFuYWd1YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYW5hdXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTWFyaWdvdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYXJ0aW5pcXVlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01hdGFtb3JvcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NYXphdGxhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NZW5kb3phIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01lbm9taW5lZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NZXJpZGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTWV0bGFrYXRsYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NZXhpY29fQ2l0eSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9NaXF1ZWxvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Nb25jdG9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01vbnRlcnJleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Nb250ZXZpZGVvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01vbnRyZWFsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL01vbnRzZXJyYXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTmFzc2F1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL05ld19Zb3JrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL05pcGlnb24iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTm9tZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Ob3JvbmhhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL051dWsiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvT2ppbmFnYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QYW5hbWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUGFuZ25pcnR1bmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUGFyYW1hcmlibyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QaG9lbml4IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1BvcnQtYXUtUHJpbmNlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUG9ydG9fQWNyZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Qb3J0b19WZWxobyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QdWVydG9fUmljbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9QdW50YV9BcmVuYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmFpbnlfUml2ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmFua2luX0lubGV0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1JlY2lmZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9SZWdpbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmVzb2x1dGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvUmlvX0JyYW5jbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Sb3NhcmlvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1NhbnRhX0lzYWJlbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TYW50YXJlbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TYW50aWFnbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TYW50b19Eb21pbmdvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1Nhb19QYXVsbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TY29yZXNieXN1bmQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU2hpcHJvY2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU2l0a2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU3RfQmFydGhlbGVteSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9Kb2hucyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9LaXR0cyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9MdWNpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9TdF9UaG9tYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvU3RfVmluY2VudCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Td2lmdF9DdXJyZW50IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RlZ3VjaWdhbHBhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RodWxlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RodW5kZXJfQmF5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1RpanVhbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvVG9yb250byIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Ub3J0b2xhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1ZhbmNvdXZlciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9WaXJnaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvV2hpdGVob3JzZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9XaW5uaXBlZyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9ZYWt1dGF0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL1llbGxvd2tuaWZlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvQ29tb2RSaXZhZGF2aWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL0NvcmRvYmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL0p1anV5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9MYV9SaW9qYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvTWVuZG96YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9TYWx0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9BcmdlbnRpbmEvU2FuX0p1YW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvQXJnZW50aW5hL1Nhbl9MdWlzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0FyZ2VudGluYS9Vc2h1YWlhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvS25veCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9JbmRpYW5hL01hcmVuZ28iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW5kaWFuYS9QZXRlcnNidXJnIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvVGVsbF9DaXR5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0luZGlhbmEvVmV2YXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvSW5kaWFuYS9XaW5hbWFjIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FtZXJpY2EvTm9ydGhfRGFrb3RhL05ld19TYWxlbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9DYXNleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9EYXZpcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9NYWNxdWFyaWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FudGFyY3RpY2EvTWF3c29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbnRhcmN0aWNhL01jTXVyZG8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FudGFyY3RpY2EvUGFsbWVyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BbnRhcmN0aWNhL1JvdGhlcmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FudGFyY3RpY2EvU291dGhfUG9sZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9TeW93YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9Ucm9sbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQW50YXJjdGljYS9Wb3N0b2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FyY3RpYy9Mb25neWVhcmJ5ZW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQWRlbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9BbG1hdHkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQW1tYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQW5hZHlyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0FxdGF1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0FxdG9iZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9Bc2hnYWJhdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9Bc2hraGFiYWQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQXR5cmF1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0JhZ2hkYWQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQmFocmFpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9CYWt1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0Jhbmdrb2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQmFybmF1bCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9CZWlydXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQmlzaGtlayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9CcnVuZWkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2FsY3V0dGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2hpdGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2hvaWJhbHNhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9DaG9uZ3FpbmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvQ2h1bmdraW5nIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0NvbG9tYm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGFjY2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGFtYXNjdXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGhha2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvRGlsaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9EdWJhaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9EdXNoYW5iZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9GYW1hZ3VzdGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvR2F6YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9IYXJiaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvSGVicm9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0hvX0NoaV9NaW5oIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0hvbmdfS29uZyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9Ib3ZkIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0lya3V0c2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvSXN0YW5idWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvSmFrYXJ0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9KYXlhcHVyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9KZXJ1c2FsZW0iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2FidWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2FtY2hhdGthIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL0thcmFjaGkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2FzaGdhciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LYXRobWFuZHUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2F0bWFuZHUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS2hhbmR5Z2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS29sa2F0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LcmFzbm95YXJzayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LdWFsYV9MdW1wdXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvS3VjaGluZyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9LdXdhaXQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTWFjYW8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTWFjYXUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTWFnYWRhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9NYWthc3NhciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9NYW5pbGEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTXVzY2F0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL05pY29zaWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvTm92b2t1em5ldHNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL05vdm9zaWJpcnNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL09tc2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvT3JhbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9QaG5vbV9QZW5oIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1BvbnRpYW5hayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9QeW9uZ3lhbmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUWF0YXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUW9zdGFuYXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUXl6eWxvcmRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1Jhbmdvb24iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvUml5YWRoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1NhaWdvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9TYWtoYWxpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9TYW1hcmthbmQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvU2VvdWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvU2hhbmdoYWkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvU2luZ2Fwb3JlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1NyZWRuZWtvbHltc2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVGFpcGVpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1Rhc2hrZW50IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RiaWxpc2kiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVGVocmFuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RlbF9Bdml2IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RoaW1idSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9UaGltcGh1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1Rva3lvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1RvbXNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1VqdW5nX1BhbmRhbmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVWxhYW5iYWF0YXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVWxhbl9CYXRvciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXNpYS9VcnVtcWkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVXN0LU5lcmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvVmllbnRpYW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1ZsYWRpdm9zdG9rIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1lha3V0c2siLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvWWFuZ29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9Bc2lhL1lla2F0ZXJpbmJ1cmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0FzaWEvWWVyZXZhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvQXpvcmVzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9CZXJtdWRhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9DYW5hcnkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL0NhcGVfVmVyZGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL0ZhZXJvZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvRmFyb2UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL0phbl9NYXllbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvTWFkZWlyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXRsYW50aWMvUmV5a2phdmlrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdGxhbnRpYy9TdF9IZWxlbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F0bGFudGljL1N0YW5sZXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9BQ1QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9BZGVsYWlkZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0JyaXNiYW5lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvQnJva2VuX0hpbGwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9DYW5iZXJyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0N1cnJpZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0RhcndpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL0V1Y2xhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvSG9iYXJ0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvTEhJIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvTGluZGVtYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9Mb3JkX0hvd2UiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9NZWxib3VybmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9OU1ciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9Ob3J0aCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL1BlcnRoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvUXVlZW5zbGFuZCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL1NvdXRoIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvU3lkbmV5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9BdXN0cmFsaWEvVGFzbWFuaWEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9WaWN0b3JpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQXVzdHJhbGlhL1dlc3QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0F1c3RyYWxpYS9ZYW5jb3dpbm5hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9CcmF6aWwvQWNyZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQnJhemlsL0RlTm9yb25oYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQnJhemlsL0Vhc3QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0JyYXppbC9XZXN0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvQXRsYW50aWMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0NhbmFkYS9DZW50cmFsIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvRWFzdGVybiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2FuYWRhL01vdW50YWluIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvTmV3Zm91bmRsYW5kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DYW5hZGEvUGFjaWZpYyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2FuYWRhL1Nhc2thdGNoZXdhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2FuYWRhL1l1a29uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9DaGlsZS9Db250aW5lbnRhbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vQ2hpbGUvRWFzdGVySXNsYW5kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzAiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQrMSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsxMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsxMSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsxMiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCsyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQrNCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCs1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzYiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQrNyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVCs4IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01UKzkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtMCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVC0xIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTEwIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTExIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTEyIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTEzIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTE0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtMyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVC00IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtNiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVC03IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdGMvR01ULTgiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HTVQtOSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXRjL0dNVDAiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9HcmVlbndpY2giLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9VQ1QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9VVEMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9Vbml2ZXJzYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V0Yy9adWx1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvQW1zdGVyZGFtIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvQW5kb3JyYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0FzdHJha2hhbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0F0aGVucyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0JlbGZhc3QiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9CZWxncmFkZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0JlcmxpbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0JyYXRpc2xhdmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9CcnVzc2VscyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0J1Y2hhcmVzdCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0J1ZGFwZXN0IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvQnVzaW5nZW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9DaGlzaW5hdSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0NvcGVuaGFnZW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9EdWJsaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9HaWJyYWx0YXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9HdWVybnNleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0hlbHNpbmtpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvSXNsZV9vZl9NYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Jc3RhbmJ1bCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0plcnNleSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0thbGluaW5ncmFkIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvS2lldiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0tpcm92IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvS3lpdiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0xpc2JvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0xqdWJsamFuYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0xvbmRvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL0x1eGVtYm91cmciLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9NYWRyaWQiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9NYWx0YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL01hcmllaGFtbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL01pbnNrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvTW9uYWNvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvTW9zY293IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvTmljb3NpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL09zbG8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9QYXJpcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1BvZGdvcmljYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1ByYWd1ZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1JpZ2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Sb21lIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvU2FtYXJhIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvU2FuX01hcmlubyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1NhcmFqZXZvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvU2FyYXRvdiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1NpbWZlcm9wb2wiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Ta29wamUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9Tb2ZpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1N0b2NraG9sbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1RhbGxpbm4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9UaXJhbmUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9UaXJhc3BvbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1VseWFub3ZzayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1V6aGdvcm9kIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvVmFkdXoiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9WYXRpY2FuIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvVmllbm5hIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9FdXJvcGUvVmlsbml1cyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1ZvbGdvZ3JhZCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1dhcnNhdyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1phZ3JlYiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vRXVyb3BlL1phcG9yb3poeWUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0V1cm9wZS9adXJpY2giLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9BbnRhbmFuYXJpdm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9DaGFnb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9DaHJpc3RtYXMiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9Db2NvcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL0NvbW9ybyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL0tlcmd1ZWxlbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL01haGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9NYWxkaXZlcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL01hdXJpdGl1cyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vSW5kaWFuL01heW90dGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL0luZGlhbi9SZXVuaW9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9NZXhpY28vQmFqYU5vcnRlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9NZXhpY28vQmFqYVN1ciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vTWV4aWNvL0dlbmVyYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvQXBpYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9BdWNrbGFuZCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Cb3VnYWludmlsbGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvQ2hhdGhhbSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9DaHV1ayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9FYXN0ZXIiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvRWZhdGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvRW5kZXJidXJ5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0Zha2FvZm8iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvRmlqaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9GdW5hZnV0aSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9HYWxhcGFnb3MiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvR2FtYmllciIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9HdWFkYWxjYW5hbCIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9HdWFtIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0hvbm9sdWx1IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0pvaG5zdG9uIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0thbnRvbiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9LaXJpdGltYXRpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL0tvc3JhZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Ld2FqYWxlaW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvTWFqdXJvIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL01hcnF1ZXNhcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9NaWR3YXkiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvTmF1cnUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvTml1ZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Ob3Jmb2xrIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL05vdW1lYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9QYWdvX1BhZ28iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUGFsYXUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUGl0Y2Fpcm4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUG9obnBlaSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Qb25hcGUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvUG9ydF9Nb3Jlc2J5IiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL1Jhcm90b25nYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9TYWlwYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvU2Ftb2EiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvVGFoaXRpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL1RhcmF3YSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9Ub25nYXRhcHUiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1BhY2lmaWMvVHJ1ayIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9XYWtlIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9QYWNpZmljL1dhbGxpcyIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vUGFjaWZpYy9ZYXAiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0FsYXNrYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvQWxldXRpYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0FyaXpvbmEiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0NlbnRyYWwiLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL0Vhc3QtSW5kaWFuYSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvRWFzdGVybiIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvSGF3YWlpIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9VUy9JbmRpYW5hLVN0YXJrZSIsCiAgICAgICAgICAgICJ1c3Ivc2hhcmUvem9uZWluZm8vVVMvTWljaGlnYW4iLAogICAgICAgICAgICAidXNyL3NoYXJlL3pvbmVpbmZvL1VTL01vdW50YWluIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9VUy9QYWNpZmljIiwKICAgICAgICAgICAgInVzci9zaGFyZS96b25laW5mby9VUy9TYW1vYSIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiSUQiOiAieHotbGlic0A1LjguMy1yMCIsCiAgICAgICAgICAiTmFtZSI6ICJ4ei1saWJzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6YXBrL2FscGluZS94ei1saWJzQDUuOC4zLXIwP2FyY2g9eDg2XzY0XHUwMDI2ZGlzdHJvPTMuMjQuMSIsCiAgICAgICAgICAgICJVSUQiOiAiMWFlNjU4YTVmMTMyYTA5MSIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICI1LjguMy1yMCIsCiAgICAgICAgICAiQXJjaCI6ICJ4ODZfNjQiLAogICAgICAgICAgIlNyY05hbWUiOiAieHoiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiNS44LjMtcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiR1BMLTIuMC1vci1sYXRlciIsCiAgICAgICAgICAgICIwQlNEIiwKICAgICAgICAgICAgIlB1YmxpYy1Eb21haW4iLAogICAgICAgICAgICAiTEdQTC0yLjEtb3ItbGF0ZXIiCiAgICAgICAgICBdLAogICAgICAgICAgIk1haW50YWluZXIiOiAiTmF0YW5hZWwgQ29wYSBcdTAwM2NuY29wYUBhbHBpbmVsaW51eC5vcmdcdTAwM2UiLAogICAgICAgICAgIkRlcGVuZHNPbiI6IFsKICAgICAgICAgICAgIm11c2xAMS4yLjYtcjIiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1NjoyMDE0ZmQzZDQ3YjJjMmRkNGRlZGM3NjU4MjJhYzYwYWUyNjlmM2VmYTBlNjE0ZjQ2YWUyOWY1NDBjN2YxMjM1IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6ZTVjY2RhMGZiZjZiNTRkMzQzZTAyNDE1NmQ4NzY1NTNiYTU3ZDM5MjZkNzE5NjU4NGIzYTFjZTRkZjAxNjM2NiIKICAgICAgICAgIH0sCiAgICAgICAgICAiRGlnZXN0IjogInNoYTE6NGM5MmM1YmUwYzViZWY0MDRlOTNjODgwZWJhOTAzN2E5YjE0NzM0NyIsCiAgICAgICAgICAiSW5zdGFsbGVkRmlsZXMiOiBbCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmx6bWEuc28uNSIsCiAgICAgICAgICAgICJ1c3IvbGliL2xpYmx6bWEuc28uNS44LjMiCiAgICAgICAgICBdLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAiYXBrIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIklEIjogInpsaWJAMS4zLjItcjAiLAogICAgICAgICAgIk5hbWUiOiAiemxpYiIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImUzNzA1NGEyOTgyZDZjMTYiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAgICAgIkFyY2giOiAieDg2XzY0IiwKICAgICAgICAgICJTcmNOYW1lIjogInpsaWIiLAogICAgICAgICAgIlNyY1ZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiWmxpYiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTWFpbnRhaW5lciI6ICJOYXRhbmFlbCBDb3BhIFx1MDAzY25jb3BhQGFscGluZWxpbnV4Lm9yZ1x1MDAzZSIsCiAgICAgICAgICAiRGVwZW5kc09uIjogWwogICAgICAgICAgICAibXVzbEAxLjIuNi1yMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjU1YWZhMWVjYzIxZDJiYjVlNTA0NWYzMmRhZmVlNTYyNzJmZmQ4OTg2MGJhYzI2ZjZjMzIxMjM0MzlhZjI2YTQiLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1NjozNDg4NGFiYmU5Mjg2M2ZjZTkzM2VkN2MzOWMwZTA0NTYzMWFmMGVkODZkNWNjMGRmYmRmOWZkY2E0MjZjZTNjIgogICAgICAgICAgfSwKICAgICAgICAgICJEaWdlc3QiOiAic2hhMTpkZDRjM2QxMDJhY2FlZjJhNzFhMTQ5NTk1MWQ1NWZhYmM4NjgwNjEzIiwKICAgICAgICAgICJJbnN0YWxsZWRGaWxlcyI6IFsKICAgICAgICAgICAgInVzci9saWIvbGliei5zby4xIiwKICAgICAgICAgICAgInVzci9saWIvbGliei5zby4xLjMuMiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJhcGsiCiAgICAgICAgfQogICAgICBdLAogICAgICAiVnVsbmVyYWJpbGl0aWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJWdWxuZXJhYmlsaXR5SUQiOiAiQ1ZFLTIwMjYtODUwOTEiLAogICAgICAgICAgIlBrZ0lEIjogInpsaWJAMS4zLjItcjAiLAogICAgICAgICAgIlBrZ05hbWUiOiAiemxpYiIsCiAgICAgICAgICAiUGtnSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOmFway9hbHBpbmUvemxpYkAxLjMuMi1yMD9hcmNoPXg4Nl82NFx1MDAyNmRpc3Rybz0zLjI0LjEiLAogICAgICAgICAgICAiVUlEIjogImUzNzA1NGEyOTgyZDZjMTYiCiAgICAgICAgICB9LAogICAgICAgICAgIkluc3RhbGxlZFZlcnNpb24iOiAiMS4zLjItcjAiLAogICAgICAgICAgIkZpeGVkVmVyc2lvbiI6ICIxLjMuMi1yMSIsCiAgICAgICAgICAiU3RhdHVzIjogImZpeGVkIiwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6NTVhZmExZWNjMjFkMmJiNWU1MDQ1ZjMyZGFmZWU1NjI3MmZmZDg5ODYwYmFjMjZmNmMzMjEyMzQzOWFmMjZhNCIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjM0ODg0YWJiZTkyODYzZmNlOTMzZWQ3YzM5YzBlMDQ1NjMxYWYwZWQ4NmQ1Y2MwZGZiZGY5ZmRjYTQyNmNlM2MiCiAgICAgICAgICB9LAogICAgICAgICAgIlByaW1hcnlVUkwiOiAiaHR0cHM6Ly9hdmQuYXF1YXNlYy5jb20vbnZkL2N2ZS0yMDI2LTg1MDkxIiwKICAgICAgICAgICJEYXRhU291cmNlIjogewogICAgICAgICAgICAiSUQiOiAiYWxwaW5lIiwKICAgICAgICAgICAgIk5hbWUiOiAiQWxwaW5lIFNlY2RiIiwKICAgICAgICAgICAgIlVSTCI6ICJodHRwczovL3NlY2RiLmFscGluZWxpbnV4Lm9yZy8iCiAgICAgICAgICB9LAogICAgICAgICAgIkZpbmdlcnByaW50IjogInNoYTI1NjpkNzNjMDFiMDIwYzU1YWNjMTc0YTNmZGU0N2M4YWY2ZjU2MzhjNThjNzE4OWM4MTdlZGQ2ODYyMDI5ZjZjNWY1IiwKICAgICAgICAgICJUaXRsZSI6ICJ6bGliIHZlcnNpb25zIDEuMy4xLjIgdGhyb3VnaCAxLjMuMiBjb250YWluIGEgaGVhcCBidWZmZXIgb3ZlcmZsb3cgdnVsIC4uLiIsCiAgICAgICAgICAiRGVzY3JpcHRpb24iOiAiemxpYiB2ZXJzaW9ucyAxLjMuMS4yIHRocm91Z2ggMS4zLjIgY29udGFpbiBhIGhlYXAgYnVmZmVyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGd6X3ZhY2F0ZSgpIGZ1bmN0aW9uIHdoZW4gcHJvY2Vzc2luZyBub24tYmxvY2tpbmcgZ3p3cml0ZSgpIG9wZXJhdGlvbnMgd2l0aCBzdGFsZSBleHRlcm5hbCBidWZmZXIgcG9pbnRlcnMuIEF0dGFja2VycyBjYW4gdHJpZ2dlciB0aGUgb3ZlcmZsb3cgYnkgY2FsbGluZyBnenByaW50ZigpIG9yIGd6dnByaW50ZigpIGFmdGVyIGEgd3JpdGUgc3RhbGwsIGNhdXNpbmcgYW4gdW5jaGVja2VkIG1lbW1vdmUoKSB0byB3cml0ZSBiZXlvbmQgdGhlIGludGVybmFsIGlucHV0IGJ1ZmZlciBib3VuZGFyeS4iLAogICAgICAgICAgIlNldmVyaXR5IjogIk1FRElVTSIsCiAgICAgICAgICAiQ3dlSURzIjogWwogICAgICAgICAgICAiQ1dFLTc4NyIKICAgICAgICAgIF0sCiAgICAgICAgICAiVmVuZG9yU2V2ZXJpdHkiOiB7CiAgICAgICAgICAgICJ1YnVudHUiOiAyCiAgICAgICAgICB9LAogICAgICAgICAgIlJlZmVyZW5jZXMiOiBbCiAgICAgICAgICAgICJodHRwczovL2dpc3QuZ2l0aHViLmNvbS90aGVzbWFydHNoYWRvdy9lMGI5NDgxNzkyYWZiN2MzMWU4NmZlZTFmZjA4NDQ5MCIsCiAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vbWFkbGVyL3psaWIiLAogICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL2Jsb2IvdjEuMy4yL2d6d3JpdGUuYyNMMzkzIiwKICAgICAgICAgICAgImh0dHBzOi8vd3d3LmN2ZS5vcmcvQ1ZFUmVjb3JkP2lkPUNWRS0yMDI2LTg1MDkxIiwKICAgICAgICAgICAgImh0dHBzOi8vd3d3LnZ1bG5jaGVjay5jb20vYWR2aXNvcmllcy96bGliLTEuMy4xLjItdGhyb3VnaC0xLjMuMi1oZWFwLWJ1ZmZlci1vdmVyZmxvdy12aWEtZ3otdmFjYXRlIgogICAgICAgICAgXSwKICAgICAgICAgICJQdWJsaXNoZWREYXRlIjogIjIwMjYtMDktMDNUMTM6MDY6MjAuNTczWiIsCiAgICAgICAgICAiTGFzdE1vZGlmaWVkRGF0ZSI6ICIyMDI2LTA5LTA5VDIwOjQxOjA3LjEyM1oiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiVGFyZ2V0IjogIlB5dGhvbiIsCiAgICAgICJDbGFzcyI6ICJsYW5nLXBrZ3MiLAogICAgICAiVHlwZSI6ICJweXRob24tcGtnIiwKICAgICAgIlBhY2thZ2VzIjogWwogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogIlB5SldUIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6cHlwaS9weWp3dEAyLjE1LjEiLAogICAgICAgICAgICAiVUlEIjogImQzZjVmOWE0MjFiOGFiYzkiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMi4xNS4xIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIk1JVCIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1Njo2NDg0NTFhMGRkYTg0YWQwNDY4MWUzMmI1ZWNjN2NkNWQzYTRmMGFkODRmNzgzZTk1OThkNzJiYzY5NjIwZDVjIgogICAgICAgICAgfSwKICAgICAgICAgICJGaWxlUGF0aCI6ICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL3B5and0LTIuMTUuMS5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogImNmZmkiLAogICAgICAgICAgIklkZW50aWZpZXIiOiB7CiAgICAgICAgICAgICJQVVJMIjogInBrZzpweXBpL2NmZmlAMi4xLjEiLAogICAgICAgICAgICAiVUlEIjogIjIxMDQyZTJmMzdlMzNjMDUiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMi4xLjEiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiTUlULTAiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRmlsZVBhdGgiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9jZmZpLTIuMS4xLmRpc3QtaW5mby9NRVRBREFUQSIsCiAgICAgICAgICAiQW5hbHl6ZWRCeSI6ICJweXRob24tcGtnIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgIk5hbWUiOiAiY3J5cHRvZ3JhcGh5IiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6cHlwaS9jcnlwdG9ncmFwaHlANTAuMC4xIiwKICAgICAgICAgICAgIlVJRCI6ICJkY2IzZGY2MzgzZmUyYTYwIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjUwLjAuMSIsCiAgICAgICAgICAiTGljZW5zZXMiOiBbCiAgICAgICAgICAgICJBcGFjaGUtMi4wIE9SIEJTRC0zLUNsYXVzZSIKICAgICAgICAgIF0sCiAgICAgICAgICAiTGF5ZXIiOiB7CiAgICAgICAgICAgICJEaWdlc3QiOiAic2hhMjU2OjgyZmYxN2I1NTVkOTEwOTZkZDMyOGViMWU4MjlkYWFlYmE5YTQ4ZDc3NTcxNDNkMGI5N2MzNWE3MjFmNmZiODciLAogICAgICAgICAgICAiRGlmZklEIjogInNoYTI1Njo2NDg0NTFhMGRkYTg0YWQwNDY4MWUzMmI1ZWNjN2NkNWQzYTRmMGFkODRmNzgzZTk1OThkNzJiYzY5NjIwZDVjIgogICAgICAgICAgfSwKICAgICAgICAgICJGaWxlUGF0aCI6ICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2NyeXB0b2dyYXBoeS01MC4wLjEuZGlzdC1pbmZvL01FVEFEQVRBIiwKICAgICAgICAgICJBbmFseXplZEJ5IjogInB5dGhvbi1wa2ciCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOnB5cGkvaW5mb3JtZWQtZGVjaXNpb25AMC4yLjAiLAogICAgICAgICAgICAiVUlEIjogIjc5ODlmMmFmYWU4ZmY1NjgiCiAgICAgICAgICB9LAogICAgICAgICAgIlZlcnNpb24iOiAiMC4yLjAiLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRmlsZVBhdGgiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9pbmZvcm1lZF9kZWNpc2lvbi0wLjIuMC5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogInB5Y3BhcnNlciIsCiAgICAgICAgICAiSWRlbnRpZmllciI6IHsKICAgICAgICAgICAgIlBVUkwiOiAicGtnOnB5cGkvcHljcGFyc2VyQDMuMCIsCiAgICAgICAgICAgICJVSUQiOiAiZTVhNGQwM2YxNWE2OTVmZiIKICAgICAgICAgIH0sCiAgICAgICAgICAiVmVyc2lvbiI6ICIzLjAiLAogICAgICAgICAgIkxpY2Vuc2VzIjogWwogICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgogICAgICAgICAgXSwKICAgICAgICAgICJMYXllciI6IHsKICAgICAgICAgICAgIkRpZ2VzdCI6ICJzaGEyNTY6ODJmZjE3YjU1NWQ5MTA5NmRkMzI4ZWIxZTgyOWRhYWViYTlhNDhkNzc1NzE0M2QwYjk3YzM1YTcyMWY2ZmI4NyIsCiAgICAgICAgICAgICJEaWZmSUQiOiAic2hhMjU2OjY0ODQ1MWEwZGRhODRhZDA0NjgxZTMyYjVlY2M3Y2Q1ZDNhNGYwYWQ4NGY3ODNlOTU5OGQ3MmJjNjk2MjBkNWMiCiAgICAgICAgICB9LAogICAgICAgICAgIkZpbGVQYXRoIjogIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvcHljcGFyc2VyLTMuMC5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJOYW1lIjogIndhaXRyZXNzIiwKICAgICAgICAgICJJZGVudGlmaWVyIjogewogICAgICAgICAgICAiUFVSTCI6ICJwa2c6cHlwaS93YWl0cmVzc0AzLjAuMiIsCiAgICAgICAgICAgICJVSUQiOiAiODA2ZTIxOGUxYzFlODVmIgogICAgICAgICAgfSwKICAgICAgICAgICJWZXJzaW9uIjogIjMuMC4yIiwKICAgICAgICAgICJMaWNlbnNlcyI6IFsKICAgICAgICAgICAgIlpQTC0yLjEiCiAgICAgICAgICBdLAogICAgICAgICAgIkxheWVyIjogewogICAgICAgICAgICAiRGlnZXN0IjogInNoYTI1Njo4MmZmMTdiNTU1ZDkxMDk2ZGQzMjhlYjFlODI5ZGFhZWJhOWE0OGQ3NzU3MTQzZDBiOTdjMzVhNzIxZjZmYjg3IiwKICAgICAgICAgICAgIkRpZmZJRCI6ICJzaGEyNTY6NjQ4NDUxYTBkZGE4NGFkMDQ2ODFlMzJiNWVjYzdjZDVkM2E0ZjBhZDg0Zjc4M2U5NTk4ZDcyYmM2OTYyMGQ1YyIKICAgICAgICAgIH0sCiAgICAgICAgICAiRmlsZVBhdGgiOiAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy93YWl0cmVzcy0zLjAuMi5kaXN0LWluZm8vTUVUQURBVEEiLAogICAgICAgICAgIkFuYWx5emVkQnkiOiAicHl0aG9uLXBrZyIKICAgICAgICB9CiAgICAgIF0KICAgIH0KICBdCn0K" + }, + { + "digest": "sha256:eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38", + "media_type": "text/plain", + "content_base64": "IiIiUHJlLW9wZW4gc2NoZW1hL2ludGVncml0eS9jb3VudCBwcm9vZjsgc3RkbGliIG9ubHksIG5ldmVyIGNvbnN0cnVjdHMgU3RvcmUuIiIiCmltcG9ydCBhcmdwYXJzZQppbXBvcnQganNvbgpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKaW1wb3J0IHNxbGl0ZTMKCgpkZWYgaW5zcGVjdF9yZWFkb25seShwYXRoKToKICAgIHBhdGggPSBQYXRoKHBhdGgpCiAgICBpZiBub3QgcGF0aC5pc19maWxlKCkgb3IgcGF0aC5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZXhpc3Rpbmcgbm9uc3ltbGluayBwcml2YXRlIGRhdGFiYXNlIHJlcXVpcmVkJykKICAgIHdpdGggc3FsaXRlMy5jb25uZWN0KHBhdGgucmVzb2x2ZSgpLmFzX3VyaSgpICsgJz9tb2RlPXJvJywgdXJpPVRydWUsIHRpbWVvdXQ9NSkgYXMgZGI6CiAgICAgICAgZGIuZXhlY3V0ZSgnUFJBR01BIHF1ZXJ5X29ubHk9T04nKQogICAgICAgIGRiLmV4ZWN1dGUoJ0JFR0lOJykKICAgICAgICB2ZXJzaW9uID0gZGIuZXhlY3V0ZSgnUFJBR01BIHVzZXJfdmVyc2lvbicpLmZldGNob25lKClbMF0KICAgICAgICBpZiB2ZXJzaW9uICE9IDU6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3ByZS1vcGVuIGRhdGFiYXNlIGlzIG5vdCBzY2hlbWE1OyByZWZ1c2UgbWlncmF0aW9uJykKICAgICAgICBpZiBkYi5leGVjdXRlKCdQUkFHTUEgaW50ZWdyaXR5X2NoZWNrJykuZmV0Y2hhbGwoKSAhPSBbKCdvaycsKV06CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3JlYWQtb25seSBpbnRlZ3JpdHkgY2hlY2sgcmVmdXNlZCcpCiAgICAgICAgbGlmZWN5Y2xlID0ge25hbWU6IGRiLmV4ZWN1dGUoJ1NFTEVDVCBDT1VOVCgqKSBGUk9NICcgKyB0YWJsZSkuZmV0Y2hvbmUoKVswXQogICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdGFibGUgaW4gKCgncmVjb3JkcycsICdsaWZlY3ljbGVfcmVjb3JkcycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZXZlbnRzJywgJ2xpZmVjeWNsZV9ldmVudHMnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3BlbmRpbmcnLCAnbGlmZWN5Y2xlX3BlbmRpbmcnKSl9CiAgICAgICAgcmVzdWx0ID0geydzY2hlbWFfdmVyc2lvbic6IHZlcnNpb24sICdsaWZlY3ljbGUnOiBsaWZlY3ljbGUsCiAgICAgICAgICAgICAgICAgICdvdXRib3gnOiBkaWN0KGRiLmV4ZWN1dGUoJ1NFTEVDVCBzdGF0ZSxDT1VOVCgqKSBGUk9NIG91dGJveCBHUk9VUCBCWSBzdGF0ZScpKSwKICAgICAgICAgICAgICAgICAgJ3N1Ym1pc3Npb25zJzogZGljdChkYi5leGVjdXRlKCdTRUxFQ1Qgc3RhdGUsQ09VTlQoKikgRlJPTSBzdWJtaXNzaW9ucyBHUk9VUCBCWSBzdGF0ZScpKSwKICAgICAgICAgICAgICAgICAgJ2ludGVncml0eSc6ICdvaycsICdyZWFkX29ubHlfcHJlX29wZW4nOiBUcnVlLCAnc3RvcmVfY29uc3RydWN0ZWQnOiBGYWxzZX0KICAgICAgICBkYi5yb2xsYmFjaygpCiAgICByZXR1cm4gcmVzdWx0CgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPV9fZG9jX18pCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWRiJywgdHlwZT1QYXRoLCByZXF1aXJlZD1UcnVlKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKICAgIHRyeToKICAgICAgICBwcmludChqc29uLmR1bXBzKGluc3BlY3RfcmVhZG9ubHkoYXJncy5kYiksIHNvcnRfa2V5cz1UcnVlKSkKICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgcmFpc2UgU3lzdGVtRXhpdCgncmVhZC1vbmx5IHNjaGVtYTUvaW50ZWdyaXR5L2NvdW50IGdhdGUgcmVmdXNlZDsgbm8gU3RvcmUvYWRtaW4gb3BlbicpIGZyb20gTm9uZQo=" + }, + { + "digest": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369", + "media_type": "application/json", + "content_base64": "ewogICJjb25maWdtYXAiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJ2MSIsCiAgICAiaW1tdXRhYmxlIjogdHJ1ZSwKICAgICJraW5kIjogIkNvbmZpZ01hcCIsCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9Db25maWdNYXA6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogIjkwMTEzZDJkLTU0ZDktNGU4Mi1iMWQzLTkwYjQ5ZWJlZDJiNSIKICAgIH0sCiAgICAiY2Fub25pY2FsX2RhdGFfc2hhMjU2IjogIjhlYzQ2MmQxMjM0NzU0OGY1MDZlZWViZjFlM2M3Y2M0NzY0ODAxOWM4YTc4MzgwNGQwOWJjYzc5YjBmMjJhZjYiCiAgfSwKICAicHZjIjogewogICAgImFwaVZlcnNpb24iOiAidjEiLAogICAgImtpbmQiOiAiUGVyc2lzdGVudFZvbHVtZUNsYWltIiwKICAgICJtZXRhZGF0YSI6IHsKICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICJhcmdvY2QuYXJnb3Byb2ouaW8vdHJhY2tpbmctaWQiOiAiaW5mb3JtZWQtZGVjaXNpb246L1BlcnNpc3RlbnRWb2x1bWVDbGFpbTppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIsCiAgICAgICAgInB2Lmt1YmVybmV0ZXMuaW8vYmluZC1jb21wbGV0ZWQiOiAieWVzIiwKICAgICAgICAicHYua3ViZXJuZXRlcy5pby9ib3VuZC1ieS1jb250cm9sbGVyIjogInllcyIsCiAgICAgICAgInZvbHVtZS5iZXRhLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiLAogICAgICAgICJ2b2x1bWUua3ViZXJuZXRlcy5pby9zZWxlY3RlZC1ub2RlIjogIjIzOS42Mi4yMDUuOTIuaG9zdC5zZWN1cmVzZXJ2ZXIubmV0IiwKICAgICAgICAidm9sdW1lLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiCiAgICAgIH0sCiAgICAgICJmaW5hbGl6ZXJzIjogWwogICAgICAgICJrdWJlcm5ldGVzLmlvL3B2Yy1wcm90ZWN0aW9uIgogICAgICBdLAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJ1aWQiOiAiZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfSwKICAgICJzcGVjIjogewogICAgICAiYWNjZXNzTW9kZXMiOiBbCiAgICAgICAgIlJlYWRXcml0ZU9uY2UiCiAgICAgIF0sCiAgICAgICJyZXNvdXJjZXMiOiB7CiAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgInN0b3JhZ2UiOiAiMUdpIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0b3JhZ2VDbGFzc05hbWUiOiAibG9jYWwtcGF0aCIsCiAgICAgICJ2b2x1bWVNb2RlIjogIkZpbGVzeXN0ZW0iLAogICAgICAidm9sdW1lTmFtZSI6ICJwdmMtZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfQogIH0sCiAgInB2Y19waGFzZSI6ICJCb3VuZCIKfQo=" + }, + { + "digest": "sha256:2f8d4894c2861b34977ec020593b7515a8ee35a43ce2e6aef2d96a6d34a94ddc", + "media_type": "text/markdown", + "content_base64": "IyBQcm90ZWN0ZWQgbmF0aXZlIGJhY2t1cC9yZXN0b3JlIGFuZCBpbWFnZS1vbmx5IHJlbGVhc2UgcHJvdG9jb2wKClByZXBhcmVkIHByb3RvY29sIGZvciBgSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFgLiBObyBhY3R1YWwgbmF0aXZlIGJhY2t1cCwgZGF0YSBleHBvcnQsIHJlc3RvcmUsIHdvcmtsb2FkIGNoYW5nZSBvciBhcHByb3ZhbCBpcyByZWNvcmRlZCBoZXJlLiBDYW5kaWRhdGUgcmVnaXN0cnkgaW1hZ2UgaWRlbnRpdHkgcmVtYWlucyBhIHByZXJlcXVpc2l0ZTsgb25seSBhZnRlciBhY3R1YWwgYXJ0aWZhY3QgcHJvb2YgbWF5IHRoZSBmb3VuZGVyIGFwcHJvdmUgb25lIGV4YWN0IGNvbmRpdGlvbmFsIHByb3RvY29sL3JvbGxvdXQgcGFja2V0LiBUaGUgY29uZmlnLW9ubHk3ZGI4NDg1IGFwcHJvdmFsIGlzIG91dHNpZGUgdGhpcyBzY29wZS4KCiMjIFByZWNvbmRpdGlvbnMgYW5kIHByb3RlY3RlZCBjdXN0b2R5CgpGcmVlemUgZXhhY3QgY2FuZGlkYXRlIGFuZCBwcmlvcjdmNWM2Y2IgaW1hZ2UgZGlnZXN0cywgc291cmNlL2luc3RhbGxlZCBwb2xpY3kgaGFzaGVzLCBjdXJyZW50IG1hbnVhbGx5IG1hbmFnZWQgQXJnbyBBcHBsaWNhdGlvbi9yZXZpc2lvbiwgcnVudGltZSBDb25maWdNYXA2YzIyMTg3OGQwNTEsIERlcGxveW1lbnQgVUlEL3RlbXBsYXRlL3NwZWMsIHNjaGVtYTUsIHBvbGljeSBwYWNrYWdlIHBpbnMsIGRhdGFiYXNlIHBhdGggYC9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZWAsIFBWQyBiaW5kaW5nLCByZXBsaWNhczEvUmVjcmVhdGUgYW5kIHN0YWJsZSBrZXlzIGZvciBpbnRlbmRlZCB2ZXJpZmljYXRpb24uIENvbmZpcm0gbm8gY29uY3VycmVudCB3cml0ZXIgb3IgY3VzdG9keSBjaGFuZ2UuIFVzZSBmaXhlZCBtZXRhZGF0YTsgbmV2ZXIgZmV0Y2ggU2VjcmV0IG9iamVjdHMgb3IgdG9rZW4gdmFsdWVzLiBBIGNoYW5nZWQgaW1hZ2UvY29uZmlnL3NjaGVtYS9vd25lciBpbnZhbGlkYXRlcyB0aGUgcGFja2V0LiBGcmVzaCByZXNvdXJjZXMvaGVhZHJvb20gYW5kIGV4YWN0IHNvdXJjZS9uYXRpdmUgc2VydmVyLWRyeS1ydW4vZGlmZiByZW1haW4gcmVxdWlyZWQuCgpCYWNrdXBzIGFyZSBwcml2YXRlIGV2aWRlbmNlIGNvbnRhaW5pbmcgcmVhbCBkZWNpc2lvbiByZWNvcmRzLCBub3QgbG9ncyBvciBwYWNrZXQgYXR0YWNobWVudHMuIEFsbG9jYXRlIGEgdW5pcXVlIGJhY2t1cCBkaXJlY3RvcnkgdW5kZXIgZXhpc3RpbmcgcHJvdGVjdGVkIFBWQyBjdXN0b2R5LCBvd25lZDEwMDAxLCBtb2RlMDcwMCwgc25hcHNob3QgZmlsZTA2MDAsIG5vIHN5bWxpbmsvaGFyZGxpbmsvcmV1c2VkIG91dHB1dCBwYXRoLiBBbiBvZmYtY2x1c3RlciBjb3B5IGJlbG9uZ3Mgb25seSBpbiB0aGUgYWxyZWFkeSBlc3RhYmxpc2hlZCBpZ25vcmVkIGAucHJpdmF0ZS1iYWNrdXBzLzx1bmlxdWUtdHJpYWwtZGlyZWN0b3J5PmAgY3VzdG9keSB3aXRoMDcwMC8wNjAwIHBlcm1pc3Npb25zOyBubyBHaXQsIFN0YXRlSHViLCBwdWJsaWMgb2JqZWN0IHN0b3JlIG9yIHRlcm1pbmFsLWNvbnRlbnQgZHVtcC4gUmVjb3JkIG9ubHkgc2NoZW1hLCBpbnRlZ3JpdHkgcGFzcy9mYWlsLCBib3VuZGVkIHRhYmxlL3N0YXRlIGNvdW50cyBhbmQgcHJvdGVjdGVkIHJlY2VpcHQgaWRlbnRpZmllcjsgcmV0YWluIGJ5dGUgZGlnZXN0cyBpbiBwcm90ZWN0ZWQgY3VzdG9keSBpZiBuZWVkZWQgZm9yIGludGVybmFsIGNvcHkgaWRlbnRpdHkuIE5vIGNyZWRlbnRpYWwsIHJlY29yZCBwYXlsb2FkIG9yIHRva2VuIGZpbmdlcnByaW50IGVudGVycyBwdWJsaWMgZXZpZGVuY2UuCgojIyBBcHByb3ZlZCBvbmxpbmUgY29tcGF0aWJpbGl0eSBkcmlsbAoKV2l0aGluIHRoZSBleHBsaWNpdCBmb3VuZGVyLWFwcHJvdmVkIGFjdGlvbiwgcnVuIHRoZSBleGlzdGluZyBiYXNlIGltYWdlJ3MgYGluZm9ybWVkLWRlY2lzaW9uLWFkbWluIGJhY2t1cCAtLWRiIC9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZSAtLW91dHB1dCA8bmV3LXByaXZhdGUtc25hcHNob3Q+YCBpbiB0aGUgYWN0dWFsIHNlcnZpbmcgd29ya2xvYWQuIFRoaXMgdXNlcyBTUUxpdGUncyBiYWNrdXAgQVBJIGZvciBhIHRyYW5zYWN0aW9uYWxseSBjb25zaXN0ZW50IHNuYXBzaG90OyBjb3B5aW5nIGEgbGl2ZSBtYWluIGRhdGFiYXNlIHdoaWxlIGlnbm9yaW5nIFdBTCBpcyBwcm9oaWJpdGVkLiBTdXBwcmVzcyByYXcgZmFpbHVyZXMvb3V0cHV0IGFuZCByZXRhaW4gb25seSBzYW5pdGl6ZWQgc3RhdHVzLiBPYnNlcnZlIHNjaGVtYS9pbnRlZ3JpdHkgYW5kIGNvdW50LW9ubHkgbWV0YWRhdGEgZnJvbSB0aGUgcmVzdWx0aW5nIHNuYXBzaG90LCBub3QgcmVjb3JkIGNvbnRlbnQuCgpUcmFuc2ZlciB0aGF0IGNvbnNpc3RlbnQgc25hcHNob3Qgb25seSBpbnRvIHByb3RlY3RlZCBvZmYtY2x1c3RlciBjdXN0b2R5IHRocm91Z2ggdGhlIGV4aXN0aW5nIGF1dGhvcml6ZWQgb3BlcmF0b3IgbGFuZS4gVGhlIGNvcHkgaXMgcmVhbCBwcm9kdWN0aW9uIGRhdGEgZXZlbiBpbiBidWlsZCBtb2RlLiBWZXJpZnkgcHJpdmF0ZSBwZXJtaXNzaW9ucywgdW5pcXVlIGlkZW50aXR5IGFuZCBwcm90ZWN0ZWQgaW50ZXJuYWwgZGlnZXN0IGFncmVlbWVudC4gRG8gbm90IGV4cG9ydCBtb3VudGVkIHdvcmtsb2FkIGNyZWRlbnRpYWxzIG9yIGRpcmVjdG9yeSB0cmVlczsgY29weSBvbmx5IHRoZSBleGFjdCBzbmFwc2hvdC4KCkNyZWF0ZSBhIHNlcGFyYXRlIHByaXZhdGUgZGlzcG9zYWJsZSByZXN0b3JlIHZvbHVtZS9kaXJlY3Rvcnk7IHJldGFpbiB0aGUgb3JpZ2luYWwgc25hcHNob3QgdW5jaGFuZ2VkLiBSdW4gdGhlIGV4YWN0IHB1Ymxpc2hlZCBjYW5kaWRhdGUgd2l0aCBuZXR3b3JrIGRpc2FibGVkLCBubyBwcm9kdWN0aW9uIENvbmZpZ01hcC90b2tlbiBtb3VudHMsIHJlYWQtb25seSBpbWFnZSBhbmQgb25seSB0aGF0IGlzb2xhdGVkIHZvbHVtZSB3cml0YWJsZS4gT3ZlcnJpZGUgdGhlIHNlcnZpY2UgZW50cnlwb2ludCB3aXRoIHRoZSBvd25lcidzIGNvdW50LW9ubHkgYWRtaW5pc3RyYXRpdmUgaW5zcGVjdGlvbi9pbnRlZ3JpdHkgY2hlY2s7IGRvIG5vdCBzdGFydCBIVFRQIGxpc3RlbmVycywgYXVkaXQgZGVsaXZlcnksIHJlcXVlc3RlciBleGNoYW5nZXMgb3IgYXBwcm92YWwgb3BlcmF0aW9ucy4gVGhlIGN1cnJlbnQgY2FuZGlkYXRlIGNoYW5nZXMgcG9saWN5LnB5IG9ubHkgYW5kIHJldGFpbnMgdGhlIHNjaGVtYS9zdG9yZSBtb2R1bGUgYnl0ZXM7IHN0aWxsIHByb3ZlIHNjaGVtYTUsIFNRTGl0ZSBpbnRlZ3JpdHkgYW5kIGV4YWN0IGJvdW5kZWQgY291bnRzIGJlZm9yZS9hZnRlciBvcGVuaW5nIHRoZSByZXN0b3JlZCBjb3B5LiBSZWZ1c2UgYW55IG1pZ3JhdGlvbi9kb3duZ3JhZGUsIGxvc3QvY2hhbmdlZCBjb3VudHMsIHVuZXhwZWN0ZWQgd3JpdGUgY2xhc3Mgb3IgdW5rbm93biBvdXRjb21lLiBLZWVwIHBlbmRpbmcvdW5jZXJ0YWluIHN1Ym1pc3Npb24gYW5kIG91dGJveCBzdGF0ZXM7IG5ldmVyIHJlcGxheSwgZGlzY2FyZCBvciBtYXJrIHRoZW0gZGVsaXZlcmVkIHRvIGdyZWVuIHRoZSBkcmlsbC4gQ2xlYW51cCBvbmx5IHRoZSBkaXNwb3NhYmxlIGNvcHkvdm9sdW1lIGFmdGVyIHZlcmlmaWVkIHJlY2VpcHQ7IHJldGFpbiB0aGUgb3JpZ2luYWwgcHJvdGVjdGVkIGJhY2t1cCBmb3IgdGhlIGFwcHJvdmVkIHJlY292ZXJ5IGludGVydmFsLgoKVGhpcyBzdGVwIGlzIGFjdHVhbCBuYXRpdmUtZGF0YSBjb21wYXRpYmlsaXR5IGV2aWRlbmNlIG9uY2UgcGVyZm9ybWVkLiBJdHMgcHJldmlvdXMgc3ludGhldGljIGZpeHR1cmUgY2hlY2tzIHJlbWFpbiBtZWNoYW5pc20gZXZpZGVuY2UgYW5kIGNhbm5vdCBiZSByZW5hbWVkIG5hdGl2ZSBzdWNjZXNzLiBBIGZhaWxlZCBkcmlsbCBzdG9wcyByb2xsb3V0IGFuZCByZW1haW5zIGEgZmFpbGVkL3VudmVyaWZpZWQgb3V0Y29tZSBpbiB0aGUgc2FtZSB0cmlhbC4KCiMjIEZyZXNoIGN1dG92ZXIgc25hcHNob3QgYW5kIHNpbmdsZS13cml0ZXIgcm9sbG91dAoKQWZ0ZXIgc3VjY2Vzc2Z1bCBhY3R1YWwtZGF0YSBjb21wYXRpYmlsaXR5IGNoZWNrcywgY3JlYXRlIGFub3RoZXIgdW5pcXVlIFNRTGl0ZS1jb25zaXN0ZW50IG9ubGluZSBzbmFwc2hvdCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGltYWdlIGN1dG92ZXIsIHJldGFpbmluZyBpdHMgcG9pbnQtaW4tdGltZSBzY2hlbWEvaW50ZWdyaXR5L2NvdW50IHJlY2VpcHQuIFRoaXMgaXMgYW4gb25saW5lIHRyYW5zYWN0aW9uYWwgc25hcHNob3QsIG5vdCBhIGNsYWltIHRoYXQgZGlzcGF0Y2hlcnMgb3IgaHVtYW4gd3JpdGVzIHdlcmUgcXVpZXNjZWQuIEV2ZXJ5IGxhdGVyIGNvbW1pdHRlZCByZWNvcmQgcmVtYWlucyBpbiB0aGUgbGl2ZSBkYXRhYmFzZTsgc2FtZS1zY2hlbWEgcm9sbGJhY2sgcmV0YWlucyB0aGF0IGRhdGFiYXNlIGFuZCBuZXZlciByZXN0b3JlcyB0aGUgZWFybGllciBzbmFwc2hvdCBvdmVyIGl0LiBUaGUgbmFycm93IGltYWdlLW9ubHkgdXBkYXRlIGRvZXMgbm90IG5lZWQgZGlzcGF0Y2hlci9jb25maWd1cmF0aW9uL1BWQy90ZW1wb3JhcnktcG9kIGNoYW5nZXMgb3IgYSBzY2hlbWEgY3V0b3Zlci4gSWYgZnJlc2ggdmVyaWZpY2F0aW9uIHNob3dzIGEgbWlncmF0aW9uIG9yIGFueSBkYXRhLXJlc3RvcmF0aW9uIHJlcXVpcmVtZW50LCBzdG9wIGFuZCByZWZpbmUgdGhlIHByb3Bvc2FsIHJhdGhlciB0aGFuIGFwcGx5aW5nIHRoaXMgcHJvdG9jb2wuCgpUaGUgZXhpc3RpbmcgUmVjcmVhdGUgcm9sbG91dCBkcmFpbnMvc3RvcHMgdGhlIHNpbmdsZSBvbGQgd3JpdGVyIGJlZm9yZSBzdGFydGluZyB0aGUgbmV3IGltYWdlIG9uIHRoZSBzYW1lIFBWQzsgdGhlIGluaGVyaXRlZCBzaW5nbGUtd3JpdGVyIGxvY2sgaW5kZXBlbmRlbnRseSByZWZ1c2VzIGNvbmN1cnJlbnQgc2VydmluZyBwcm9jZXNzZXMuIERvIG5vdCBhZGQgYW4gYWRtaW4gcG9kLCBzY2FsZS10by16ZXJvLCBkaXNwYXRjaGVyIHN0b3AsIG5ldHdvcmstcG9saWN5IHJld3JpdGUgb3Igc25hcHNob3Qgb3ZlcndyaXRlIGFzIGFuIGltcHJvdmlzZWQgaW1hZ2Utb25seSBzdGVwLiBUaGUgZXhpc3Rpbmcgb3duZXIgYWRtaW4gYmFja3VwIG9wZXJhdGlvbiBydW5zIGluc2lkZSB0aGUgYWRtaXR0ZWQgc2VydmluZyB3b3JrbG9hZCwgYW5kIGl0cyBzZXBhcmF0ZSBwcm90ZWN0ZWQgcmVzdG9yZSBkcmlsbCBydW5zIG9mZi1jbHVzdGVyIHdpdGggbmV0d29yayBkaXNhYmxlZCBhbmQgbm8gd29ya2xvYWQgY3JlZGVudGlhbHMuIFRob3NlIGV4YWN0IGN1c3RvZHkgb3BlcmF0aW9ucyBtdXN0IGJlIGVudW1lcmF0ZWQgaW4gdGhlIGZvdW5kZXIgcGFja2V0IGFsb25nc2lkZSB0aGUgb25lIERlcGxveW1lbnQgaW1hZ2UgY2hhbmdlLgoKT25jZSBiYWNrdXAvY29tcGF0aWJpbGl0eS9wcmVmbGlnaHQgZ2F0ZXMgcGFzcywgbWFudWFsbHkgcGluIHRoZSBleGlzdGluZyBBcmdvIEFwcGxpY2F0aW9uIHRvIHRoZSBleGFjdCByZXZpZXdlZCBzb3VyY2UgcmV2aXNpb24gYW5kIHN5bmMgb25seSBEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHdpdGggcHJ1bmUgZmFsc2UsIGtlZXBpbmcgdGhlIGN1cnJlbnQgaW1tdXRhYmxlIHJ1bnRpbWUgQ29uZmlnTWFwIGFuZCBhbGwgb3RoZXIgcmVzb3VyY2VzLiBUaGUgc291cmNlIHBhdGNoIGNoYW5nZXMgb25seSB0aGUgaW1hZ2UgaW4gYWRtaXNzaW9uL3JlbmRlcmVkIERlcGxveW1lbnQ7IG5vIFNlY3JldCwgUFZDLCBwb2xpY3ksIGRhdGFiYXNlIG9yIGRpc3BhdGNoZXIgY2hhbmdlIGlzIGluY2x1ZGVkIHVubGVzcyBzZXBhcmF0ZWx5IGVudW1lcmF0ZWQgaW4gdGhlIGZpbmFsIHByb3Bvc2FsLiBPYnNlcnZlIGZpdmUtbWludXRlIHJlYWRpbmVzcyBhbmQgZXhhY3QgaW1hZ2UvY29uZmlnL3NjaGVtYS9waW5zLiBWZXJpZnkgbmF0aXZlIGxpZmVjeWNsZSBiaW5kaW5nIHVzaW5nIHN0YWJsZSBrZXlzIGFuZCBhbiBpc29sYXRlZCBpbnN0YWxsZWQtY2xpZW50IHByb2JlIGJhc2VkIG9uIGEgcmVhbCBwcm92aWRlciByZXNwb25zZSBjb250YW1pbmF0ZWQgd2l0aCBhZHZpc29yeSBwdXJwb3NlOyBwcm92ZSByZWZ1c2FsIGJlZm9yZSBhbnkgd3JpdGUuIERvIG5vdCBjb250YW1pbmF0ZSB0aGUgbGl2ZSBQRFAsIGNyZWF0ZSBodW1hbiBhcHByb3ZhbHMsIHJlYWQgY3JlZGVudGlhbHMgdGhyb3VnaCBDTEksIG9yIHJlcGxheSB1bmtub3duIGV4dGVybmFsIG91dGNvbWVzIGZvciB0ZXN0aW5nLgoKIyMgU2FtZS1zY2hlbWEgcm9sbGJhY2sgYW5kIGV2aWRlbmNlIHJldGVudGlvbgoKT24gc3RhcnR1cC9yZWFkaW5lc3MvYmluZGluZy9yZWZ1c2FsIGZhaWx1cmUsIHJldGFpbiBjdXJyZW50IGRhdGFiYXNlLCBjdXRvdmVyIGJhY2t1cCBhbmQgZXZlcnkgcG9zdC1jdXRvdmVyIGV2aWRlbmNlL3VuY2VydGFpbiBvdXRjb21lLiBSZXN0b3JlIG9ubHkgdGhlIHByaW9yN2Y1YzZjYiBpbWFnZSB0aHJvdWdoIHRoZSBzYW1lIG1hbnVhbCBBcmdvIG93bmVyIHBhdGgsIHJldGFpbmluZyBzY2hlbWE1IGFuZCBjdXJyZW50IERCL2NvbmZpZ3VyYXRpb247IG5ldmVyIHJlc3RvcmUgYW4gb2xkIHNuYXBzaG90IG92ZXIgY3VycmVudCBsaXZlIGV2aWRlbmNlIGp1c3QgdG8gcm9sbCB0aGUgaW1hZ2UgYmFjay4gVmVyaWZ5IG9sZCBpbWFnZS9SZWFkeTEsIHNhbWUgc2NoZW1hL2NvdW50cyBhbmQgcHJpb3IgYmVoYXZpb3IsIGFuZCByZWNvbmNpbGUgYW55IGV4dGVybmFsIGVmZmVjdHMgdXNpbmcgZXhpc3RpbmcgbGlmZWN5Y2xlL2F1ZGl0IG93bmVyc2hpcC4gVGhlIG5hcnJvdyBvdmVybGF5J3MgaWRlbnRpY2FsIHN0b3JlL3NjaGVtYS9kZXBlbmRlbmN5IGJ5dGVzIHBlcm1pdCB0aGlzIGltYWdlLW9ubHkgcm9sbGJhY2s7IGl0IGlzIG5vdCBwZXJtaXNzaW9uIGZvciBhIHNjaGVtYSBkb3duZ3JhZGUgb3IgZGF0YSBsb3NzLgoKUmVjb3JkIG9yaWdpbmFsL2FwcHJvdmVkL2V4ZWN1dGVkIHNvdXJjZSBhbmQgaW1hZ2UgcmV2aXNpb25zLCBiYWNrdXAvZHJpbGwvY3V0b3Zlci9yb2xsb3V0IHRpbWVzdGFtcHMsIGV4YWN0IGRpc3Bvc2l0aW9uIGFuZCBzYW5pdGl6ZWQgb3V0Y29tZXMgaW4gdGhlIGV4aXN0aW5nIHN1cGVydmlzZWQgdHJpYWwgcmVjZWlwdC4gRVVSMCBpbmNyZW1lbnRhbCBpbmZyYXN0cnVjdHVyZSBlc3RpbWF0ZSB1c2VzIGV4aXN0aW5nIHNlcnZpY2Uvc3RvcmFnZS9vcGVyYXRvciBsYW5lOyBwcm90ZWN0ZWQgdGVtcG9yYXJ5IGNvcHkvc3RvcmFnZSBjb25zdW1wdGlvbiBhbmQxNeKAkzMwbWludXRlIHJlY292ZXJ5IHRpbWUgcmVtYWluIG9wZXJhdGlvbmFsIGNvc3RzLiBObyBFVVIgaW5jaWRlbnQtbG9zcyBjYXAgb3IgYXV0b25vbXkgZ3JhbnQgaXMgaW5mZXJyZWQuIFRhc2tUMDQgY2Fubm90IGNsb3NlIHVudGlsIGFjdHVhbCBwdWJsaXNoZWQgaW1hZ2UsIGFwcHJvdmVkIG5hdGl2ZSBjb21wYXRpYmlsaXR5IGFuZCByZWxlYXNlIHBsdXMgcG9zdC1yZWxlYXNlIHJlZnVzYWwvYmluZGluZyBldmlkZW5jZSBhbGwgZXhpc3QuCgojIyBFeGFjdCByZWxlYXNlIGNhc2UgaWRlbnRpZmllcnMKClByb3Bvc2FsIGBJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MWAsIHRyaWFsIGBpbmZkLXB1cnBvc2UtMjAyNjEwMTEtcjFgLgpQcm90ZWN0ZWQgbmF0aXZlIHBhcmVudCBgL2RhdGEvcHJpdmF0ZS9wdXJwb3NlLW92ZXJsYXktcjFgIG11c3QgYmUgdW5pcXVlL25vbi1zeW1saW5rLCBvd25lZDEwMDAxIGFuZDA3MDAuIFRoZSBkcmlsbCBzbmFwc2hvdCBpcyBgZHJpbGwuc3FsaXRlYCwgdGhlIHJlZnJlc2hlZCBwcmUtY3V0b3ZlciBzbmFwc2hvdCBgY3V0b3Zlci5zcWxpdGVgLCBlYWNoIG5ldzA2MDAgZmlsZTsgcmVmdXNlIGFueSBleGlzdGluZyBvdXRwdXQuIE9mZi1jbHVzdGVyIGN1c3RvZHkgaXMgdGhlIGV4aXN0aW5nIGlnbm9yZWQgQ3VzdG9kaWFuIGAucHJpdmF0ZS1iYWNrdXBzLzIwMjYxMDExLWluZmQtcHVycG9zZS1yMWAgcGFyZW50MDcwMCwgZmlsZXMwNjAwOyBubyBzbmFwc2hvdCBpcyBhbiBldmlkZW5jZSBhdHRhY2htZW50LiBDaGVjayBvd25lciBVSUQsIG5vIHN5bWxpbmtzLCBpZ25vcmVkIHN0YXR1cyBhbmQgZnJlZSBjYXBhY2l0eSBmb3IgYm90aCBuYXRpdmUgc25hcHNob3RzIHBsdXMgaW5kZXBlbmRlbnRseSBwcm90ZWN0ZWQgY29waWVzIGJlZm9yZSBtYWtpbmcgYW55IHNuYXBzaG90LgoKVGhlIGRpc3Bvc2FibGUgb2ZmbGluZSByZXN0b3JlIHZvbHVtZSBpcyBgaW5mZC1wdXJwb3NlLXIxLXJlc3RvcmUtMjAyNjEwMTFgOyByZWZ1c2UgYW4gZXhpc3Rpbmcgdm9sdW1lLCBjb3B5IG9ubHkgdGhlIHNlbGVjdGVkIGZyb3plbiBzbmFwc2hvdCwgYW5kIHJ1biBleGFjdCBwdWJsaXNoZWQgY2FuZGlkYXRlNzYzYyB3aXRoIG5ldHdvcmtub25lL3JlYWQtb25seSBpbWFnZSwxMjhNaUIvY29yZTEgYW5kIG5vIHJ1bnRpbWUgY29uZmlnL3Rva2VuIG1vdW50cy4gU1FMaXRlIGBQUkFHTUEgaW50ZWdyaXR5X2NoZWNrYCBtdXN0IHJldHVybiBgb2tgLCBgUFJBR01BIHVzZXJfdmVyc2lvbmAvU3RvcmUgaW5zcGVjdGlvbiBtdXN0IGFncmVlIHdpdGggYWN0dWFsIHNjaGVtYTUgc2VtYW50aWNzLCBhbmQgaW5zdGFsbGVkIGFkbWluIGNvdW50LW9ubHkgaW5zcGVjdGlvbiBtdXN0IG1hdGNoIHRoZSBmcm96ZW4gc25hcHNob3QuIFZhbGlkYXRlIHRoZSBhY3R1YWwgc2NoZW1hIHJlcHJlc2VudGF0aW9uIHJhdGhlciB0aGFuIGFzc3VtZSBQUkFHTUEgdXNlcl92ZXJzaW9uIGlzIHRoZSBzY2hlbWEgYXV0aG9yaXR5LiBObyBzeW50aGV0aWMgcmVzdG9yYXRpb24gaXMgcmVwb3J0ZWQgYXMgbmF0aXZlIHJlc3RvcmF0aW9uLiBOYXRpdmUgb3JpZ2luYWwvb2ZmLWNsdXN0ZXIgY29waWVzIHJlbWFpbiByZXRhaW5lZDsgb25seSB0aGUgZGlzcG9zYWJsZSByZXN0b3JlIGNvcHkvdm9sdW1lIG1heSBiZSByZW1vdmVkIHVuZGVyIHRoZSBleGFjdCBhcHByb3ZlZCBjbGVhbnVwIHNjb3BlLgoKIyMgTWFuZGF0b3J5IHByZS1vcGVuIHNjaGVtYSBnYXRlIGFuZCBvZmZsaW5lIGNvbW1hbmQKCmBpbmZvcm1lZC1kZWNpc2lvbi1hZG1pbiBpbnNwZWN0YCBhbmQgYGJhY2t1cGAgY29uc3RydWN0IFN0b3JlLCB3aGljaCBjYW4gbWlncmF0ZSBzY2hlbWFzMeKAkzQgdG81LiBUaGVyZWZvcmUgKipiZWZvcmUgYW55IFN0b3JlL2FkbWluIG9wZW4qKiwgcnVuIHRoZSBleGFjdCBhdHRhY2hlZCBzdGRsaWItb25seSBgc3FsaXRlX3JlYWRvbmx5LnB5YCBhZ2FpbnN0IHRoZSBuYXRpdmUgc291cmNlIGRhdGFiYXNlIHVzaW5nIFNRTGl0ZSBVUkkgbW9kZT1ybywgcXVlcnlfb25seSBhbmQgb25lIHJlYWQgdHJhbnNhY3Rpb24uIFJlcXVpcmUgUFJBR01BIHVzZXJfdmVyc2lvbjUsIGludGVncml0eV9jaGVjaz1vayBhbmQgcmV0YWluIGNvdW50LW9ubHkgYmFzZWxpbmUuIFJlZnVzZSBhbnkgb3RoZXIvdW5rbm93biBzY2hlbWEgb3IgaW5jb21wbGV0ZSBpbnRlZ3JpdHkvY291bnQgY2hlY2sgYmVmb3JlIGNvbnN0cnVjdGluZyBTdG9yZTsgZG8gbm90IGluZmVyIG5vIG1pZ3JhdGlvbiBmcm9tIGEgcG9zdC1vcGVuIGFkbWluIHJlcG9ydC4gVGhpcyBuYXRpdmUgZ2F0ZSBoYXMgbm90IGJlZW4gZXhlY3V0ZWQgaW4gdGhpcyBzb3VyY2UtcHJlcGFyYXRpb24gc3RhZ2UuIFJlcGVhdCBiZWZvcmUgZWFjaCBuYXRpdmUgYmFja3VwL2FkbWluIG9wZXJhdGlvbi4KCkFmdGVyIGNvcHlpbmcgdGhlIHNlbGVjdGVkIGNvbnNpc3RlbnQgc25hcHNob3QgdG8gdGhlIGlzb2xhdGVkIHJlc3RvcmVkIHByaXZhdGUgcGF0aCBgL3Jlc3RvcmUvcmV2aWV3LnNxbGl0ZWAsIHJ1biB0aGUgc2FtZSByZWFkLW9ubHkgY2hlY2tlciAqKmJlZm9yZSoqIGFueSBvZmZsaW5lIGNhbmRpZGF0ZSBhZG1pbi9TdG9yZSBvcGVucyB0aGF0IGNvcHkuIEZyb3plbiBzbmFwc2hvdCBhbmQgcmVzdG9yZWQtY29weSBzY2hlbWEvaW50ZWdyaXR5L2NvdW50IHJlcG9ydHMgbXVzdCBhZ3JlZSBleGFjdGx5OyB0aGUgY29waWVkIG1haW4tZmlsZSBkaWdlc3QgbXVzdCBtYXRjaCB0aGUgc2VsZWN0ZWQgY2xvc2VkIHNuYXBzaG90LiBSZWplY3Qgb2xkc2NoZW1hIGZpeHR1cmVzIHJhdGhlciB0aGFuIGFsbG93IG1pZ3JhdGlvbi4gT25seSBhZnRlciB0aGlzIHByZS1vcGVuIGdhdGUgbWF5IHRoZSBvZmZsaW5lIGNhbmRpZGF0ZSBhZG1pbiBpbnNwZWN0IHJ1bi4KCk9mZmxpbmUgY29tbWFuZCB2ZWN0b3JzIHVzZSBleGFjdGltYWdlIGBmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2FgLCBgLS1uZXR3b3JrIG5vbmUgLS1yZWFkLW9ubHkgLS1jcHVzIDEgLS1tZW1vcnkgMTI4bWAsIHByaXZhdGUgcmVzdG9yZWQgdm9sdW1lIG1vdW50ZWQgYXQgYC9yZXN0b3JlYCwgYW5kICoqbm8gcnVudGltZSBjb25maWcvY3JlZGVudGlhbC90b2tlbiBtb3VudHMqKi4gRmlyc3Qgb3ZlcnJpZGUgZW50cnlwb2ludCB0byBgcHl0aG9uYCwgYXJndW1lbnRzIGAtIC0tZGIgL3Jlc3RvcmUvcmV2aWV3LnNxbGl0ZWAsIHN0cmVhbWluZyBvbmx5IHRoZSB2ZXJpZmllZCBhdHRhY2hlZCBjaGVja2VyIG9uIHN0ZGluLiBUaGVuIG92ZXJyaWRlIGVudHJ5cG9pbnQgdG8gKipgaW5mb3JtZWQtZGVjaXNpb24tYWRtaW5gKiosIGFyZ3VtZW50cyAqKmBpbnNwZWN0IC0tZGIgL3Jlc3RvcmUvcmV2aWV3LnNxbGl0ZWAqKi4gVGhpcyBkb2VzIG5vdCBzdGFydCBgaW5mb3JtZWQtZGVjaXNpb24tY29udGFpbmVyYCwgdGhlIEhUVFAgc2VydmljZSwgZGlzcGF0Y2hlciBvciBkZWxpdmVyeSB3b3JrZXJzLiBDb21wYXJlIHRoZSBhZG1pbidzIHNjaGVtYS9saWZlY3ljbGUvb3V0Ym94L3N1Ym1pc3Npb24gY291bnRlcnMgdG8gdGhlIGZyb3plbiBwcmUtb3BlbiBzbmFwc2hvdCByZXBvcnQ7IGludGVncml0eSBhbmQgbWlncmF0aW9uLWZyZWUgcHJlLW9wZW4gcHJvb2YgY29tZSBmcm9tIHRoZSBzdGRsaWIgY2hlY2tlciwgbm90IGFkbWluIG91dHB1dCBhbG9uZS4KCkxpdmUgcmVhZHMgYW5kIG9ubGluZSBzbmFwc2hvdHMgbWF5IGxlZ2l0aW1hdGVseSBkaWZmZXIgYmVjYXVzZSByZXZpZXdzLCBpbnRha2UgYW5kIGRlbGl2ZXJ5IGNhbiBjb21taXQgY29uY3VycmVudGx5LiBFeGFjdCBjb3VudGVyIGVxdWFsaXR5IGlzIHJlcXVpcmVkIGJldHdlZW4gdGhlIGZyb3plbiBzZWxlY3RlZCBzbmFwc2hvdCBhbmQgaXRzIG9mZmxpbmUgcmVzdG9yZWQgY2xvbmU7IGl0IGlzICoqbm90KiogcmVxdWlyZWQgYmV0d2VlbiBhIHJ1bm5pbmcgcG9zdC1jdXRvdmVyL3JvbGxiYWNrIGRhdGFiYXNlIGFuZCBhbiBlYXJsaWVyIHNuYXBzaG90LiBMaXZlIGNvdW50IGNoYW5nZXMgbXVzdCBiZSBhY2NvdW50ZWQgZm9yIGFzIGxlZ2l0aW1hdGUgY29tbWl0dGVkIHJlY29yZHMvc3RhdGUgdHJhbnNpdGlvbnM7IHByZXNlcnZlIGFsbCBjdXJyZW50IGFuZCB1bmNlcnRhaW4gZW50cmllcy4gRG8gbm90IGRpc2NhcmQgbmV3IGNvbW1pdHMgb3IgcmVzdG9yZSB0aGUgb2xkIHNuYXBzaG90IHRvIGZvcmNlIGVxdWFsaXR5LiBTYW1lLXNjaGVtYSBpbWFnZSByb2xsYmFjayBrZWVwcyB0aGUgY3VycmVudCBsaXZlIERCLCBmb2xsb3dlZCBieSByZWFkLW9ubHkgc2NoZW1hNS9pbnRlZ3JpdHkgYW5kIGNvdW50LW9ubHkgaGVhbHRoIGNoZWNrczsgYW55IHVuZXhwbGFpbmVkIGV2aWRlbmNlIGxvc3Mgb3IgcmVxdWlyZWQgZGF0YSByZWNvdmVyeSBzdG9wcyBhbmQgcmVxdWlyZXMgYSBzZXBhcmF0ZSBmb3VuZGVyIGRlY2lzaW9uLgoKVGhlIGZyZXNoIHByZWZsaWdodCBhbHNvIGluZGVwZW5kZW50bHkgcmVhZHMgdGhlIGFjdHVhbCBpbW11dGFibGUgbm9uc2VjcmV0IENvbmZpZ01hcCBhbmQgYm91bmQgUFZDOiBjb21wYXJlcyBzZWFsZWQgVUlEcy9mdWxsbWV0YWRhdGEvUFZDc3BlYyt2b2x1bWVOYW1lIGFuZCBjYW5vbmljYWwgcnVudGltZSBkYXRhIGNoZWNrc3VtLCByZXR1cm5pbmcgbm8gcmF3IHJ1bnRpbWUgZGF0YS4gU2FtZS1uYW1lIGRlbGV0aW9uL3JlY3JlYXRpb24gb3IgY29udGVudC9jdXN0b2R5IGRyaWZ0IHN0b3BzIGJlZm9yZSBhZG1pc3Npb24uIFNlY3JldCB2YWx1ZXMgcmVtYWluIGV4Y2x1ZGVkLiBCb3RoIGxvY2FsIGFuZCByZW1vdGUgb3B0aW1pemVkIFB5dGhvbiBpbnRlcnByZXRlcnMgYXJlIGV4cGxpY2l0bHkgcmVmdXNlZCBiZWZvcmUgYXNzZXJ0aW9uLWJhc2VkIGdhdGVzLgo=" + }, + { + "digest": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101", + "media_type": "application/json", + "content_base64": "ewogICJpZCI6ICJJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSIsCiAgImtpbmQiOiAib3duZXItdnVsbmVyYWJpbGl0eS1mb2xsb3ctdGhyb3VnaCIsCiAgIm93bmVyIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAidGFzayI6ICJJTkZELVdQLTAwMDktVDA1IiwKICAic3RhdHVzIjogIm9wZW4iLAogICJjcmVhdGVkIjogIjIwMjYtMTAtMTEiLAogICJyZXZpZXdfZHVlIjogIjIwMjYtMTAtMTgiLAogICJmaW5kaW5nIjogIkNWRS0yMDI2LTg1MDkxIiwKICAic2Nhbm5lcl9zZXZlcml0eSI6ICJNRURJVU0iLAogICJlc3RhdGVfcmlza19ncmFkZSI6IG51bGwsCiAgImFmZmVjdGVkX3BhY2thZ2UiOiAiemxpYiIsCiAgImluc3RhbGxlZCI6ICIxLjMuMi1yMCIsCiAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAiYWN0dWFsX2N1cnJlbnRfYmFzZV9hbmRfY2FuZGlkYXRlX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgInNvdXJjZV9ldmlkZW5jZSI6ICJzZWN1cml0eS1zdW1tYXJ5Lmpzb24sIHRyaXZ5LWZ1bGwuanNvbiwgYmFzZS10cml2eS1mdWxsLmpzb24iLAogICJodW1hbl90ZW1wb3JhcnlfZGlzcG9zaXRpb24iOiAicGVuZGluZyIsCiAgImZvbGxvd190aHJvdWdoIjogIlByZXBhcmUgYSBzZXBhcmF0ZWx5IHNvdXJjZS1ib3VuZCBvZmZpY2lhbC1iYXNlL2RlcGVuZGVuY3kgcmVmcmVzaCB0aHJvdWdoIG5vcm1hbCBvd25lciBDSSwgdmVyaWZ5IGZ1bGwgc2NhbiBhbmQgcnVudGltZSBjb21wYXRpYmlsaXR5LCBvYnRhaW4gZGlzdGluY3QgbmF0aXZlIHJlbGVhc2UgYXBwcm92YWwgYmVmb3JlIHVwZGF0aW5nIHRoaXMgd29ya2xvYWQiLAogICJtYW51YWxfcmV2aWV3X2V4cGlyeSI6ICJEdWUgZGF0ZSByZXF1aXJlcyBvd25lciByZXZpZXcvZXNjYWxhdGlvbiBpZiB1bnJlc29sdmVkOyBubyBhdXRvbWF0aWMgcm9sbGJhY2svY29udHJvbGxlciBpcyBpbnN0YWxsZWQiLAogICJjbG9zZV9jb25kaXRpb24iOiAiVmVyaWZpZWQgaW5zdGFsbGVkIG5hdGl2ZSBmaXhlZCBwYWNrYWdlIGFuZCBmdWxsIHVuZmlsdGVyZWQgcmVzY2FuOyBwcmVzZXJ2ZSBvcmlnaW5hbCBkZXRlY3Rpb24gYW5kIGFueSBodW1hbiBkaXNwb3NpdGlvbiIKfQo=" + }, + { + "digest": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262", + "media_type": "application/json", + "content_base64": "ewogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjI1OjM4Ljc5MzU1NSswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibGl2ZV9yZWFkeV9yZXBsaWNhcyI6IDEsCiAgImFkbWl0dGVkX3VpZCI6ICJhNTg4ZTEwYS05MGQyLTQ4ODMtOTc1ZS02ZGQ4YjhmZWNhOTIiLAogICJzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWQiOiB0cnVlLAogICJhZG1pdHRlZF9zcGVjX2V4YWN0bHlfbGl2ZV9wbHVzX2ltYWdlIjogdHJ1ZSwKICAiY2xpZW50X2RpZmZfZXhpdCI6IDEsCiAgImNsaWVudF9kaWZmX3NoYTI1NiI6ICJhNGJjMDI0YThjZWM2NThmODM1Mjg1ZWQ1MTk2NGUyZTA4NGVkYmFmMTAzZDQ1YTQ4Yjg5YzA5NTBiY2QzZTdkIiwKICAibm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzIjogIihUb3RhbCBsaW1pdHMgbWF5IGJlIG92ZXIgMTAwIHBlcmNlbnQsIGkuZS4sIG92ZXJjb21taXR0ZWQuKVxuICBSZXNvdXJjZSAgICAgICAgICAgUmVxdWVzdHMgICAgICBMaW1pdHNcbiAgLS0tLS0tLS0gICAgICAgICAgIC0tLS0tLS0tICAgICAgLS0tLS0tXG4gIGNwdSAgICAgICAgICAgICAgICAzNDYwbSAoODYlKSAgIDM2MjAwbSAoOTA1JSlcbiAgbWVtb3J5ICAgICAgICAgICAgIDk0NzJNaSAoNTklKSAgMzI4OThNaSAoMjA1JSlcbiAgZXBoZW1lcmFsLXN0b3JhZ2UgIDAgKDAlKSAgICAgICAgMCAoMCUpXG4gIGh1Z2VwYWdlcy0xR2kgICAgICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMk1pICAgICAgMCAoMCUpICAgICAgICAwICgwJSkiLAogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlCn0K" + }, + { + "digest": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362", + "media_type": "application/json", + "content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K" + }, + { + "digest": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be", + "media_type": "text/plain", + "content_base64": "IiIiUmVhZC1vbmx5IGV4YWN0IERlcGxveW1lbnQgYW5kIGFkbWlzc2lvbiBib3VuZGFyaWVzOyBubyBtdXRhdGlvbiBhdXRob3JpdHkuIiIiCmltcG9ydCBjb3B5CmltcG9ydCBoYXNobGliCmltcG9ydCBqc29uCgpCQVNFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MycKQ0FORElEQVRFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYScKCgpkZWYgZGVwZW5kZW5jeV9wcm9qZWN0aW9uKGNvbmZpZ21hcCwgcHZjKToKICAgIGlmIChjb25maWdtYXAuZ2V0KCdraW5kJykgIT0gJ0NvbmZpZ01hcCcgb3IgY29uZmlnbWFwLmdldCgnaW1tdXRhYmxlJykgaXMgbm90IFRydWUKICAgICAgICAgICAgb3IgY29uZmlnbWFwWydtZXRhZGF0YSddWyduYW1lc3BhY2UnXSAhPSAnaW5mb3JtZWQtZGVjaXNpb24nCiAgICAgICAgICAgIG9yIGNvbmZpZ21hcFsnbWV0YWRhdGEnXVsnbmFtZSddICE9ICdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MScKICAgICAgICAgICAgb3Igc2V0KGNvbmZpZ21hcC5nZXQoJ2RhdGEnLCB7fSkpICE9IHsncnVudGltZS5qc29uJ30KICAgICAgICAgICAgb3IgY29uZmlnbWFwLmdldCgnYmluYXJ5RGF0YScpKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmV4cGVjdGVkIGltbXV0YWJsZSBydW50aW1lIGNvbmZpZyBpZGVudGl0eScpCiAgICBpZiAocHZjLmdldCgna2luZCcpICE9ICdQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nCiAgICAgICAgICAgIG9yIHB2Y1snbWV0YWRhdGEnXVsnbmFtZXNwYWNlJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJwogICAgICAgICAgICBvciBwdmNbJ21ldGFkYXRhJ11bJ25hbWUnXSAhPSAnaW5mb3JtZWQtZGVjaXNpb24tZGF0YScKICAgICAgICAgICAgb3IgcHZjLmdldCgnc3RhdHVzJywge30pLmdldCgncGhhc2UnKSAhPSAnQm91bmQnCiAgICAgICAgICAgIG9yIG5vdCBwdmMuZ2V0KCdzcGVjJywge30pLmdldCgndm9sdW1lTmFtZScpKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmV4cGVjdGVkIGJvdW5kIFBWQyBjdXN0b2R5JykKICAgIGNvbmZpZyA9IHByb2plY3Rpb24oY29uZmlnbWFwKQogICAgY29uZmlnLnBvcCgnZGF0YScpCiAgICBjb25maWdbJ2Nhbm9uaWNhbF9kYXRhX3NoYTI1NiddID0gaGFzaGxpYi5zaGEyNTYoanNvbi5kdW1wcygKICAgICAgICBjb25maWdtYXBbJ2RhdGEnXSwgc29ydF9rZXlzPVRydWUsIHNlcGFyYXRvcnM9KCcsJywgJzonKSkuZW5jb2RlKCkpLmhleGRpZ2VzdCgpCiAgICByZXR1cm4geydjb25maWdtYXAnOiBjb25maWcsICdwdmMnOiBwcm9qZWN0aW9uKHB2YyksICdwdmNfcGhhc2UnOiAnQm91bmQnfQoKCmRlZiBjaGVja19kZXBlbmRlbmNpZXMoY29uZmlnbWFwLCBwdmMsIHNlYWxlZCk6CiAgICBpZiBkZXBlbmRlbmN5X3Byb2plY3Rpb24oY29uZmlnbWFwLCBwdmMpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdydW50aW1lIGNvbmZpZyBvciBQVkMgaWRlbnRpdHkvY3VzdG9keSBjaGFuZ2VkJykKCgpkZWYgcHJvamVjdGlvbih2YWx1ZSk6CiAgICB2YWx1ZSA9IGNvcHkuZGVlcGNvcHkodmFsdWUpCiAgICB2YWx1ZS5wb3AoJ3N0YXR1cycsIE5vbmUpCiAgICBmb3Iga2V5IGluICgncmVzb3VyY2VWZXJzaW9uJywgJ2dlbmVyYXRpb24nLCAnY3JlYXRpb25UaW1lc3RhbXAnLCAnbWFuYWdlZEZpZWxkcycpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLnBvcChrZXksIE5vbmUpCiAgICBmb3Iga2V5IGluICgna3ViZWN0bC5rdWJlcm5ldGVzLmlvL2xhc3QtYXBwbGllZC1jb25maWd1cmF0aW9uJywgJ2RlcGxveW1lbnQua3ViZXJuZXRlcy5pby9yZXZpc2lvbicpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLmdldCgnYW5ub3RhdGlvbnMnLCB7fSkucG9wKGtleSwgTm9uZSkKICAgIHJldHVybiB2YWx1ZQoKCmRlZiBjaGVja19jdXJyZW50KGN1cnJlbnQsIHNlYWxlZCk6CiAgICBpZiBwcm9qZWN0aW9uKGN1cnJlbnQpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzZWFsZWQgbGl2ZSBVSUQgb3IgY29uZmlndXJhdGlvbiBjaGFuZ2VkJykKCgpkZWYgY2hlY2tfYWRtaXR0ZWQoYWRtaXR0ZWQsIHNlYWxlZCk6CiAgICBleHBlY3RlZCA9IGNvcHkuZGVlcGNvcHkoc2VhbGVkKQogICAgY29udGFpbmVycyA9IGV4cGVjdGVkWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddCiAgICBpZiBsZW4oY29udGFpbmVycykgIT0gMSBvciBjb250YWluZXJzWzBdWyduYW1lJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJyBvciBjb250YWluZXJzWzBdWydpbWFnZSddICE9IEJBU0U6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigndW5leHBlY3RlZCBiYXNlbGluZSBjb250YWluZXIgaWRlbnRpdHknKQogICAgY29udGFpbmVyc1swXVsnaW1hZ2UnXSA9IENBTkRJREFURQogICAgaWYgcHJvamVjdGlvbihhZG1pdHRlZCkgIT0gZXhwZWN0ZWQ6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYWRtaXNzaW9uIGNoYW5nZWQgY29uZmlndXJhdGlvbiBiZXlvbmQgdGhlIHNvbGUgaW1hZ2UgcGluJykKCgpkZWYgdHJhbnNwb3J0X3Jlc3VsdChleGl0X2NvZGUsIG91dHB1dCk6CiAgICBpbXBvcnQganNvbgogICAgdHJ5OgogICAgICAgIHZhbHVlID0ganNvbi5sb2FkcyhvdXRwdXQpCiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CiAgICAgICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdyZWFzb24nOiAnaW52YWxpZCB0cmFuc3BvcnQgcmVzdWx0J30KICAgIGlmIGV4aXRfY29kZSAhPSAwIG9yIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KSBvciB2YWx1ZS5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIG5vdCBUcnVlOgogICAgICAgIHJldHVybiB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlLCAncmVhc29uJzogJ3JlYWQtb25seSBwcmVmbGlnaHQgcmVmdXNlZCd9CiAgICByZXR1cm4gdmFsdWUK" + }, + { + "digest": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd", + "media_type": "text/plain", + "content_base64": "IiIiUmVhZC1vbmx5IHJlZnJlc2g7IGV4YWN0IG9yaWdpbmFsIGNhcHR1cmUgcmVtYWlucyBpbW11dGFibGU7IG5ldmVyIGV4ZWN1dGUgY3V0b3Zlci4iIiIKaW1wb3J0IGFyZ3BhcnNlLGhhc2hsaWIsanNvbixzdWJwcm9jZXNzLHN5cwpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKaWYgc3lzLmZsYWdzLm9wdGltaXplOgogcmFpc2UgU3lzdGVtRXhpdCgib3B0aW1pemVkIGludGVycHJldGVyIHJlZnVzZWQgYmVmb3JlIHNvdXJjZS90cmFuc3BvcnQgZXhlY3V0aW9uIikKUk9PVD1QYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50CnA9YXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKTtwLmFkZF9hcmd1bWVudCgnLS1yZWNlaXB0LW91dHB1dCcsdHlwZT1QYXRoLHJlcXVpcmVkPVRydWUpO3AuYWRkX2FyZ3VtZW50KCctLXNvdXJjZS1yb290Jyx0eXBlPVBhdGgsZGVmYXVsdD1QYXRoKCcvaG9tZS93b3JzY2gvaW5mb3JtZWQtZGVjaXNpb24nKSk7YT1wLnBhcnNlX2FyZ3MoKQpvdXQ9YS5yZWNlaXB0X291dHB1dC5yZXNvbHZlKCkKaWYgbm90IGEucmVjZWlwdF9vdXRwdXQuaXNfYWJzb2x1dGUoKSBvciBvdXQ9PVJPT1Qgb3IgUk9PVCBpbiBvdXQucGFyZW50cyBvciBvdXQ9PWEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIG9yIGEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIGluIG91dC5wYXJlbnRzIG9yIG91dC5leGlzdHMoKToKIHJhaXNlIFN5c3RlbUV4aXQoJ3VuaXF1ZSBleGVjdXRpb24gcmVjZWlwdCBtdXN0IGJlIG91dHNpZGUgdGhlIHNlYWxlZCBwYWNrZXQnKQppbnB1dHM9anNvbi5sb2FkcygoUk9PVC8ncHJlZmxpZ2h0LWlucHV0cy5qc29uJykucmVhZF90ZXh0KCkpCmZvciByZWxhdGl2ZSxkaWdlc3QgaW4gaW5wdXRzWydwYWNrZXRfZmlsZXMnXS5pdGVtcygpOgogcGF0aD1ST09UL3JlbGF0aXZlCiBpZiBwYXRoLmlzX3N5bWxpbmsoKSBvciBoYXNobGliLnNoYTI1NihwYXRoLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCkhPWRpZ2VzdDpyYWlzZSBTeXN0ZW1FeGl0KCdzZWFsZWQgaGVscGVyL2lucHV0IGJ5dGVzIGNoYW5nZWQnKQpmb3IgcmVsYXRpdmUsZGlnZXN0IGluIGlucHV0c1snb3duZXJfc291cmNlX2ZpbGVzJ10uaXRlbXMoKToKIHBhdGg9YS5zb3VyY2Vfcm9vdC9yZWxhdGl2ZQogaWYgcGF0aC5pc19zeW1saW5rKCkgb3IgaGFzaGxpYi5zaGEyNTYocGF0aC5yZWFkX2J5dGVzKCkpLmhleGRpZ2VzdCgpIT1kaWdlc3Q6cmFpc2UgU3lzdGVtRXhpdCgnb3duZXIgc291cmNlIGJ5dGVzIGNoYW5nZWQnKQpmcm9tIGNoYW5nZV9ndWFyZCBpbXBvcnQgdHJhbnNwb3J0X3Jlc3VsdApwcm9ncmFtPSdpbXBvcnQgc3VicHJvY2Vzcyxqc29uLGhhc2hsaWIsZGF0ZXRpbWUsc3lzLGNvcHkscmVcbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpyYWlzZSBSdW50aW1lRXJyb3IoIm9wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkIilcbmNhbmRpZGF0ZT1qc29uLmxvYWRzKENBTkRJREFURV9MSVRFUkFMKVxuc2VhbGVkX2RlcGVuZGVuY2llcz1qc29uLmxvYWRzKERFUEVOREVOQ0lFU19MSVRFUkFMKVxuc2VhbGVkX2Jhc2VsaW5lPWpzb24ubG9hZHMoU0VBTEVEX0xJVEVSQUwpXG5leGVjKEdVQVJEX0xJVEVSQUwpXG5kZWYgcnVuKGFyZ3MsZGF0YT1Ob25lKTpcbiBwPXN1YnByb2Nlc3MucnVuKGFyZ3MsaW5wdXQ9ZGF0YSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSlcbiBpZiBwLnJldHVybmNvZGU6IHJhaXNlIFZhbHVlRXJyb3IoXCdyZWFkLW9ubHkgY29tbWFuZCBmYWlsZWQ6IFwnK2FyZ3NbMV0rXCcgXCcrYXJnc1syXSlcbiByZXR1cm4gcC5zdGRvdXRcbmxpdmU9anNvbi5sb2FkcyhydW4oW1wna3ViZWN0bFwnLFwnZ2V0XCcsXCdkZXBsb3ltZW50XCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW5cJyxcJ2luZm9ybWVkLWRlY2lzaW9uXCcsXCctb1wnLFwnanNvblwnXSkpXG5jbT1qc29uLmxvYWRzKHJ1bihbXCdrdWJlY3RsXCcsXCdnZXRcJyxcJ2NvbmZpZ21hcFwnLFwnaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTFcJyxcJy1uXCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW9cJyxcJ2pzb25cJ10pKVxucHZjPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2dldFwnLFwncHZjXCcsXCdpbmZvcm1lZC1kZWNpc2lvbi1kYXRhXCcsXCctblwnLFwnaW5mb3JtZWQtZGVjaXNpb25cJyxcJy1vXCcsXCdqc29uXCddKSlcbmNoZWNrX2RlcGVuZGVuY2llcyhjbSxwdmMsc2VhbGVkX2RlcGVuZGVuY2llcylcbmNoZWNrX2N1cnJlbnQobGl2ZSxzZWFsZWRfYmFzZWxpbmUpXG5zcGVjPWxpdmVbXCdzcGVjXCddOyBjcz1zcGVjW1wndGVtcGxhdGVcJ11bXCdzcGVjXCddW1wnY29udGFpbmVyc1wnXTthc3NlcnQgbGVuKGNzKT09MSBhbmQgY3NbMF1bXCduYW1lXCddPT1cJ2luZm9ybWVkLWRlY2lzaW9uXCdcbmV4cGVjdGVkX2Vudj17XCdJTkZEX0tFWUNBUEVfSVNTVUVSXCc6XCdodHRwczovL2tjLmNvdWxvbWIuc29jaWFsXCcsXCdJTkZEX0NPTlRBSU5FUl9DT05GSUdcJzpcJy9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvblwnfVxuYXNzZXJ0IGNzWzBdLmdldChcJ2VudlwnKT09W3tcJ25hbWVcJzpcJ0lORkRfS0VZQ0FQRV9JU1NVRVJcJyxcJ3ZhbHVlXCc6ZXhwZWN0ZWRfZW52W1wnSU5GRF9LRVlDQVBFX0lTU1VFUlwnXX0se1wnbmFtZVwnOlwnSU5GRF9DT05UQUlORVJfQ09ORklHXCcsXCd2YWx1ZVwnOmV4cGVjdGVkX2VudltcJ0lORkRfQ09OVEFJTkVSX0NPTkZJR1wnXX1dXG5hc3NlcnQgY3NbMF1bXCdpbWFnZVwnXT09XCdmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzNcJ1xuYXNzZXJ0IHNwZWNbXCdyZXBsaWNhc1wnXT09MSBhbmQgc3BlY1tcJ3N0cmF0ZWd5XCddPT17XCd0eXBlXCc6XCdSZWNyZWF0ZVwnfVxuYXNzZXJ0IG5leHQodiBmb3IgdiBpbiBzcGVjW1wndGVtcGxhdGVcJ11bXCdzcGVjXCddW1wndm9sdW1lc1wnXSBpZiB2W1wnbmFtZVwnXT09XCdjb25maWd1cmF0aW9uXCcpW1wnY29uZmlnTWFwXCddW1wnbmFtZVwnXT09XCdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MVwnXG5hc3NlcnQgbGl2ZVtcJ3N0YXR1c1wnXS5nZXQoXCdyZWFkeVJlcGxpY2FzXCcpPT0xIGFuZCBsaXZlW1wnc3RhdHVzXCddLmdldChcJ3VwZGF0ZWRSZXBsaWNhc1wnKT09MVxuc2VhbGVkPXtcJ2FwaVZlcnNpb25cJzpsaXZlW1wnYXBpVmVyc2lvblwnXSxcJ2tpbmRcJzpsaXZlW1wna2luZFwnXSxcJ21ldGFkYXRhXCc6e2s6Y29weS5kZWVwY29weSh2KSBmb3Igayx2IGluIGxpdmVbXCdtZXRhZGF0YVwnXS5pdGVtcygpIGlmIGsgbm90IGluIChcJ3Jlc291cmNlVmVyc2lvblwnLFwnZ2VuZXJhdGlvblwnLFwnY3JlYXRpb25UaW1lc3RhbXBcJyxcJ21hbmFnZWRGaWVsZHNcJyl9LFwnc3BlY1wnOmNvcHkuZGVlcGNvcHkoc3BlYyl9XG5mb3Iga2V5IGluIChcJ2t1YmVjdGwua3ViZXJuZXRlcy5pby9sYXN0LWFwcGxpZWQtY29uZmlndXJhdGlvblwnLFwnZGVwbG95bWVudC5rdWJlcm5ldGVzLmlvL3JldmlzaW9uXCcpOnNlYWxlZFtcJ21ldGFkYXRhXCddLmdldChcJ2Fubm90YXRpb25zXCcse30pLnBvcChrZXksTm9uZSlcbmFkbWl0dGVkPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2FwcGx5XCcsXCctLWRyeS1ydW49c2VydmVyXCcsXCctZlwnLFwnLVwnLFwnLW9cJyxcJ2pzb25cJ10sanNvbi5kdW1wcyhjYW5kaWRhdGUpKSlcbmNoZWNrX2FkbWl0dGVkKGFkbWl0dGVkLHNlYWxlZF9iYXNlbGluZSlcbmFwcD1qc29uLmxvYWRzKHJ1bihbXCdrdWJlY3RsXCcsXCdnZXRcJyxcJ2FwcGxpY2F0aW9uXCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW5cJyxcJ2FyZ29jZFwnLFwnLW9cJyxcJ2pzb25cJ10pKVxuYXNzZXJ0IGFwcFtcJ3NwZWNcJ11bXCdzb3VyY2VcJ11bXCdwYXRoXCddPT1cJ2RlcGxveS9saWZlY3ljbGVcJyBhbmQgbm90IGFwcFtcJ3NwZWNcJ10uZ2V0KFwnc3luY1BvbGljeVwnLHt9KS5nZXQoXCdhdXRvbWF0ZWRcJylcbmFyZ289e1wndWlkXCc6YXBwW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdyZXBvVVJMXCc6YXBwW1wnc3BlY1wnXVtcJ3NvdXJjZVwnXVtcJ3JlcG9VUkxcJ10sXCd0YXJnZXRSZXZpc2lvblwnOmFwcFtcJ3NwZWNcJ11bXCdzb3VyY2VcJ11bXCd0YXJnZXRSZXZpc2lvblwnXSxcJ3BhdGhcJzphcHBbXCdzcGVjXCddW1wnc291cmNlXCddW1wncGF0aFwnXSxcJ2Rlc3RpbmF0aW9uXCc6YXBwW1wnc3BlY1wnXVtcJ2Rlc3RpbmF0aW9uXCddLFwnYXV0b21hdGVkXCc6RmFsc2UsXCdzeW5jXCc6YXBwLmdldChcJ3N0YXR1c1wnLHt9KS5nZXQoXCdzeW5jXCcpLFwnaGVhbHRoXCc6YXBwLmdldChcJ3N0YXR1c1wnLHt9KS5nZXQoXCdoZWFsdGhcJyl9XG5leHBlY3RlZF9hcmdvPWpzb24ubG9hZHMoQVJHT19MSVRFUkFMKVxuZm9yIGtleSBpbiAoXCd1aWRcJyxcJ3JlcG9VUkxcJyxcJ3RhcmdldFJldmlzaW9uXCcsXCdwYXRoXCcsXCdkZXN0aW5hdGlvblwnLFwnYXV0b21hdGVkXCcpOlxuIGFzc2VydCBhcmdvW2tleV09PWV4cGVjdGVkX2FyZ29ba2V5XVxuYXNzZXJ0IGFyZ29bXCdoZWFsdGhcJ11bXCdzdGF0dXNcJ109PVwnSGVhbHRoeVwnXG5kaWZmPXN1YnByb2Nlc3MucnVuKFtcJ2t1YmVjdGxcJyxcJ2RpZmZcJyxcJy1mXCcsXCctXCddLGlucHV0PWpzb24uZHVtcHMoY2FuZGlkYXRlKSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSk7YXNzZXJ0IGRpZmYucmV0dXJuY29kZSBpbiAoMCwxKVxuIyBEaWZmIGNhbiBjb250YWluIG9ubHkgbm9uc2VjcmV0IERlcGxveW1lbnQgcmVmZXJlbmNlczsgcHJlc2VydmUgZGlnZXN0IHJhdGhlciB0aGFuIHJhdyBzdGRvdXQuXG5ub2RlPXJ1bihbXCdrdWJlY3RsXCcsXCdkZXNjcmliZVwnLFwnbm9kZVwnXSk7YWxsb2NhdGVkPXJlLnNlYXJjaChyXCdBbGxvY2F0ZWQgcmVzb3VyY2VzOi4qP0NQVSBSZXF1ZXN0c3xBbGxvY2F0ZWQgcmVzb3VyY2VzOlwnLG5vZGUscmUuUylcbnNlY3Rpb249bm9kZS5zcGxpdChcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XCcpWzFdLnNwbGl0KFwnRXZlbnRzOlwnKVswXSBpZiBcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XCcgaW4gbm9kZSBlbHNlIFwnXCdcbm5vZGVzPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2dldFwnLFwnbm9kZXNcJyxcJy1vXCcsXCdqc29uXCddKSlbXCdpdGVtc1wnXTthc3NlcnQgbGVuKG5vZGVzKT09MVxuYWxsb2M9bm9kZXNbMF1bXCdzdGF0dXNcJ11bXCdhbGxvY2F0YWJsZVwnXTtjcHU9YWxsb2NbXCdjcHVcJ107Y3B1X209aW50KGNwdVs6LTFdKSBpZiBjcHUuZW5kc3dpdGgoXCdtXCcpIGVsc2UgaW50KGNwdSkqMTAwMFxucmVxdWVzdGVkPWludChyZS5zZWFyY2goclwnY3B1XFxzKyhcXGQrKW1cJyxzZWN0aW9uKS5ncm91cCgxKSk7YXNzZXJ0IHJlcXVlc3RlZDw9Y3B1X21cbnJlY2VpcHQ9e1wnbm9kZV9hbGxvY2F0YWJsZV9jcHVfbVwnOmNwdV9tLFwnbm9kZV9yZXF1ZXN0ZWRfY3B1X21cJzpyZXF1ZXN0ZWQsXCdjYXB0dXJlZF9hdFwnOmRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpLmlzb2Zvcm1hdCgpLFwnbmF0aXZlX3dvcmtsb2FkX2NoYW5nZWRcJzpGYWxzZSxcJ25hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZFwnOkZhbHNlLFwnYXJnb1wnOmFyZ28sXCduYXRpdmVfZGVwZW5kZW5jaWVzX2NoZWNrZWRcJzpUcnVlLFwnY29uZmlnbWFwX3VpZFwnOmNtW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdwdmNfdWlkXCc6cHZjW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdsaXZlX3JlYWR5X3JlcGxpY2FzXCc6MSxcJ2FkbWl0dGVkX3VpZFwnOmFkbWl0dGVkW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWRcJzpUcnVlLFwnYWRtaXR0ZWRfc3BlY19leGFjdGx5X2xpdmVfcGx1c19pbWFnZVwnOlRydWUsXCdjbGllbnRfZGlmZl9leGl0XCc6ZGlmZi5yZXR1cm5jb2RlLFwnY2xpZW50X2RpZmZfc2hhMjU2XCc6aGFzaGxpYi5zaGEyNTYoZGlmZi5zdGRvdXQuZW5jb2RlKCkpLmhleGRpZ2VzdCgpLFwnbm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzXCc6c2VjdGlvbi5zdHJpcCgpLFwnYWxsX2NoZWNrc19wYXNzXCc6VHJ1ZX1cbnByaW50KGpzb24uZHVtcHMocmVjZWlwdCkpXG4nCmZvciBtYXJrZXIsdmFsdWUgaW4gWygnREVQRU5ERU5DSUVTX0xJVEVSQUwnLChST09ULydzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uJykucmVhZF90ZXh0KCkpLCgnQ0FORElEQVRFX0xJVEVSQUwnLChST09ULydjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLCgnU0VBTEVEX0xJVEVSQUwnLChST09ULydzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksKCdHVUFSRF9MSVRFUkFMJywoUk9PVC8nY2hhbmdlX2d1YXJkLnB5JykucmVhZF90ZXh0KCkpLCgnQVJHT19MSVRFUkFMJyxqc29uLmR1bXBzKGpzb24ubG9hZHMoKFJPT1QvJ25hdGl2ZS1wcmVmbGlnaHQuanNvbicpLnJlYWRfdGV4dCgpKVsnYXJnbyddKSldOgogcHJvZ3JhbT1wcm9ncmFtLnJlcGxhY2UobWFya2VyLHJlcHIodmFsdWUpKQpwcm9ncmFtPSdpbXBvcnQgdHJhY2ViYWNrLGpzb25cbnRyeTpcbicrJycuam9pbignICAgICcrbGluZSsnXG4nIGZvciBsaW5lIGluIHByb2dyYW0uc3BsaXRsaW5lcygpKSsiZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjpcbiAgICBwcmludChqc29uLmR1bXBzKHsnYWxsX2NoZWNrc19wYXNzJzpGYWxzZSwnZXhjZXB0aW9uX3R5cGUnOnR5cGUoZXJyb3IpLl9fbmFtZV9fLCdleGNlcHRpb25fbGluZSc6dHJhY2ViYWNrLmV4dHJhY3RfdGIoZXJyb3IuX190cmFjZWJhY2tfXylbLTFdLmxpbmVub30pKVxuIgpyPXN1YnByb2Nlc3MucnVuKFsnc3NoJywncmFpbGlhbmNlMDEnLCdweXRob24zIC0nXSxpbnB1dD1wcm9ncmFtLHRleHQ9VHJ1ZSxjYXB0dXJlX291dHB1dD1UcnVlKQpyZXN1bHQ9dHJhbnNwb3J0X3Jlc3VsdChyLnJldHVybmNvZGUsci5zdGRvdXQpO3Jlc3VsdFsnc2VhbGVkX3ByZWZsaWdodF9pbnB1dHNfc2hhMjU2J109aGFzaGxpYi5zaGEyNTYoKFJPT1QvJ3ByZWZsaWdodC1pbnB1dHMuanNvbicpLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCk7cmVzdWx0WydmcmVzaF9leGVjdXRpb25fcmVjZWlwdCddPVRydWUKb3V0LndyaXRlX3RleHQoanNvbi5kdW1wcyhyZXN1bHQsaW5kZW50PTIpKydcbicpO3ByaW50KGpzb24uZHVtcHMocmVzdWx0LGluZGVudD0yKSk7c3lzLmV4aXQoMCBpZiByZXN1bHQuZ2V0KCdhbGxfY2hlY2tzX3Bhc3MnKSBpcyBUcnVlIGVsc2UgMSkK" + }, + { + "digest": "sha256:756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06", + "media_type": "application/json", + "content_base64": "ewogICJwYWNrZXRfZmlsZXMiOiB7CiAgICAiY2hhbmdlX2d1YXJkLnB5IjogImYzNDhlNDQ5YzQ5ZjRkOWU0OWFmOWU4MmUwMTc2NGU3MTk3ODM3ZmQzZGY5ZDc1NmY1ODkxZDliOGQ5YjM4YmUiLAogICAgInByZWZsaWdodC5weSI6ICI2YjRjNjVmNzA4MjM4YzlhOWQxN2ZkMDY1ODc2YzdhMDBlMWYxNzQ1OTI2Zjk5MGExZGQ1ZTY2NzI5ODM0MGNkIiwKICAgICJjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uIjogIjcyMmE4ZTJkYzUyYmVjMjE3YmY5NjBlMjNiMmZkZGZjN2FjMjdkMzQzYWM4NzQzNzkwZTMxODNkYjgxYTZhMGUiLAogICAgInJvbGxiYWNrLWRlcGxveW1lbnQuanNvbiI6ICIzOWIzZjQzYmI4NGVmNDkyMWNjM2ExZmJjZGM0NDQ2MTA3NDFlZDg4MDkxNDlkOGY4ZjE3ZWQ4MDVmMjYyMTIxIiwKICAgICJzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24iOiAiZDE4ZDI3MDYzZDA2ZjUzNWFlODg0ZWEwMWY5Njc0N2ZlMzAxNjg1NTE4YWI5NGIxY2JhMDcyYTFlMTUxOTM2MiIsCiAgICAibmF0aXZlLXByZWZsaWdodC5qc29uIjogImViNWY0MWFlZmI5NzY2NmJiMGMxMjc5NjE3ZTk1YTdjMDUwMTdhNjA5NDE1NjI0ZGFlZTcyNGM0OGI5MGQyNjIiLAogICAgInNlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb24iOiAiMDQyMzI3YTAzNmVkMjU0Y2Y5NWRiZWIwYzA1NmFjMjViMDNhNmE4NDRiOTVhMzMyYzk5MmRmMjk0MzY5MTM2OSIsCiAgICAic3FsaXRlX3JlYWRvbmx5LnB5IjogImVlZjUzZGQyMzNlZWU3NGMxN2YyMDgyM2JkN2Y1Nzg3YzYwY2FkNzlhYzY0ODAyMWM5NDc5NjQzYzZjZTllMzgiCiAgfSwKICAib3duZXJfc291cmNlX2ZpbGVzIjogewogICAgImRlcGxveS9saWZlY3ljbGUvYWRtaXNzaW9uLmNhbmRpZGF0ZS5qc29uIjogIjkyMzgyYTU2YjM0OWMzYjg5NWU1ODA2ZTk3NTA4MjUyN2JiOTlkMWEwMDExNDBlNjlkODU3ZTViMDM5MWZhNTUiLAogICAgImRlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvbiI6ICIzOGI3OGI5Y2JlZTVhZGU3NzUwYTU4ZDUxNTZjYTRjNTc3MzM1MmU5NDdhY2IzMDRlZTcxNGI1OWU3NDljZWI0IgogIH0KfQo=" + }, + { + "digest": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7", + "media_type": "application/json", + "content_base64": "ewogICJub2RlX2FsbG9jYXRhYmxlX2NwdV9tIjogNDAwMCwKICAibm9kZV9yZXF1ZXN0ZWRfY3B1X20iOiAzNDYwLAogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjM5OjE0LjIzNDI3NyswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibmF0aXZlX2RlcGVuZGVuY2llc19jaGVja2VkIjogdHJ1ZSwKICAiY29uZmlnbWFwX3VpZCI6ICI5MDExM2QyZC01NGQ5LTRlODItYjFkMy05MGI0OWViZWQyYjUiLAogICJwdmNfdWlkIjogImQ4MGIyNWIxLTE0MWEtNDQxYi1iMjA1LTk4ZmEyZmQ5OGI3YyIsCiAgImxpdmVfcmVhZHlfcmVwbGljYXMiOiAxLAogICJhZG1pdHRlZF91aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIiwKICAic2VydmVyX2RyeV9ydW5fcGFzc2VkIjogdHJ1ZSwKICAiYWRtaXR0ZWRfc3BlY19leGFjdGx5X2xpdmVfcGx1c19pbWFnZSI6IHRydWUsCiAgImNsaWVudF9kaWZmX2V4aXQiOiAxLAogICJjbGllbnRfZGlmZl9zaGEyNTYiOiAiODQwNzY5YzdkMmE5YzE2NTVjNDBhMzI1OWY4MzNkMWZjOGY2OTk1MGNlYjNiZWRiNzA3YTk1NWZlZDcxMTU2NiIsCiAgIm5vZGVfYWxsb2NhdGVkX3Jlc291cmNlcyI6ICIoVG90YWwgbGltaXRzIG1heSBiZSBvdmVyIDEwMCBwZXJjZW50LCBpLmUuLCBvdmVyY29tbWl0dGVkLilcbiAgUmVzb3VyY2UgICAgICAgICAgIFJlcXVlc3RzICAgICAgTGltaXRzXG4gIC0tLS0tLS0tICAgICAgICAgICAtLS0tLS0tLSAgICAgIC0tLS0tLVxuICBjcHUgICAgICAgICAgICAgICAgMzQ2MG0gKDg2JSkgICAzNjIwMG0gKDkwNSUpXG4gIG1lbW9yeSAgICAgICAgICAgICA5NDcyTWkgKDU5JSkgIDMyODk4TWkgKDIwNSUpXG4gIGVwaGVtZXJhbC1zdG9yYWdlICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMUdpICAgICAgMCAoMCUpICAgICAgICAwICgwJSlcbiAgaHVnZXBhZ2VzLTJNaSAgICAgIDAgKDAlKSAgICAgICAgMCAoMCUpIiwKICAiYWxsX2NoZWNrc19wYXNzIjogdHJ1ZSwKICAic2VhbGVkX3ByZWZsaWdodF9pbnB1dHNfc2hhMjU2IjogIjc1NmU3MmRhOWVjMzY1NzIyNDI0MjFiZWE4YjZkMjI4NTM5NGUzMzRmOTkxZGI1ZTkwZTliNDA5NTYzYjVmMDYiLAogICJmcmVzaF9leGVjdXRpb25fcmVjZWlwdCI6IHRydWUKfQo=" + } + ] + }, + "publish": { + "version": 1, + "audience": { + "subjects": [], + "groups": [ + "net-kingdom-admins" + ] + } + }, + "review": { + "version": 1, + "options": { + "submitter": "state-hub", + "memo_class": "decision-record", + "review_group": "net-kingdom-admins", + "approval_intent": { + "action": "administer", + "principal": "informed-decision", + "purpose": "Approve exact image-only purpose overlay release plus protected native evidence backup/restore gates and explicit inherited fixable-medium owner follow-through; no unrelated grant.", + "target": { + "id": "INFD-WP-0009-T04/purpose-overlay-v1", + "type": "runtime-change", + "system": "railiance01" + } + } + } + } + } +] diff --git a/docs/evidence/2026-10-11-purpose-image-release/memo.json b/docs/evidence/2026-10-11-purpose-image-release/memo.json new file mode 100644 index 0000000..da273f6 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/memo.json @@ -0,0 +1,141 @@ +{ + "id": "infd-20261011-purpose-overlay-r1", + "version": 1, + "question": "Approve this exact Informed Decision purpose-only image release on railiance01, including protected native backup/restore gates and explicit temporary acceptance of the inherited fixable MEDIUM zlib finding with owner remediation follow-through?", + "requested_act": "approve", + "binding_level": "organizational", + "brief": "Actual owner CI published763c from3e4bcb26; unchanged8base layers plus one policy.py, installedUID10001 and10purpose checks pass. Full44package scan0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, identical actualbase scan. Only Deploymentimage changes; manualArgo prune=false, runtime6c/schema5/PVC/identity/policies unchanged. Before ANY admin/Store, readonly schema5/integrity/count gate; protected backup/restore, sealedDeployment+actualCM/PVC identities and unoptimizedpreflight required, not executed. Live owner riskrecord/T05 dueOct18; Recreate briefly interrupts service. No priorconfigapproval reused.", + "binding": { + "principal": { + "id": "pending-human-session", + "kind": "person", + "display_name": "Founder review" + }, + "target": { + "kind": "environment", + "id": "realm:kubernetes/railiance01/informed-decision", + "label": "Informed Decision image-only purpose hardening on railiance01", + "environment": "production" + }, + "terms": "Only attached exact INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1: protected consistent snapshots/off-cluster custody/offline restore plus exact owner-source pin/manual Deployment-only image release763c, prune=false. ADMINISTER activationAPPROVED only upon actualdisposition, execute by2026-10-12T23:59:59Z afterfresh sealedCM/PVC/Deploymentpreflight+pre-openreadonlyschema5+restoregates; rollbackprior7f5 retaining latestschema5DB. Explicit inheritedfixableMEDIUM permitted with INFD-WP-0009-T05 ownerreviewdue2026-10-18. No credential/policy/grant change, humanbinding, wholeAppsync or autonomygrant." + }, + "step_kind": "approve", + "packet": [ + { + "item_id": "decision-packet-md", + "label": "decision-packet.md", + "hash": "sha256:23da78cf998a32af0481e68567db94bb40781cc18f147461f779d40ebd329fd1" + }, + { + "item_id": "proposal-json", + "label": "proposal.json", + "hash": "sha256:a59bcddc6c79e3ba8265a95b4b68facda2683abda8e47e5bb48ce402b9e1fa82" + }, + { + "item_id": "candidate-admission-json", + "label": "candidate-admission.json", + "hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "item_id": "rollback-admission-json", + "label": "rollback-admission.json", + "hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "item_id": "candidate-deployment-json", + "label": "candidate-deployment.json", + "hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "item_id": "rollback-deployment-json", + "label": "rollback-deployment.json", + "hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "item_id": "published-verification-json", + "label": "published-verification.json", + "hash": "sha256:8a676c38f89f9ca762b8ebe945b5acb90d47a4cb350692687abb985bbb2d8ae2" + }, + { + "item_id": "registry-proof-json", + "label": "registry-proof.json", + "hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "item_id": "security-summary-json", + "label": "security-summary.json", + "hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "item_id": "trivy-full-json", + "label": "trivy-full.json", + "hash": "sha256:f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "item_id": "sqlite-readonly-py", + "label": "sqlite_readonly.py", + "hash": "sha256:eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38" + }, + { + "item_id": "sealed-native-dependencies-json", + "label": "sealed-native-dependencies.json", + "hash": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369" + }, + { + "item_id": "native-backup-restore-protocol-md", + "label": "native-backup-restore-protocol.md", + "hash": "sha256:2f8d4894c2861b34977ec020593b7515a8ee35a43ce2e6aef2d96a6d34a94ddc" + }, + { + "item_id": "inherited-vulnerability-follow-through-json", + "label": "inherited-vulnerability-follow-through.json", + "hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "item_id": "native-preflight-json", + "label": "native-preflight.json", + "hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "item_id": "sealed-live-deployment-json", + "label": "sealed-live-deployment.json", + "hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "item_id": "change-guard-py", + "label": "change_guard.py", + "hash": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be" + }, + { + "item_id": "preflight-py", + "label": "preflight.py", + "hash": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd" + }, + { + "item_id": "preflight-inputs-json", + "label": "preflight-inputs.json", + "hash": "sha256:756e72da9ec36572242421bea8b6d2285394e334f991db5e90e9b409563b5f06" + }, + { + "item_id": "fresh-preflight-validation-json", + "label": "fresh-preflight-validation.json", + "hash": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7" + } + ], + "highlights": [ + { + "id": "native-custody-rollout-and-known-medium", + "item_id": "decision-packet-md", + "note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof. Admin can migrate oldschemas: readonlyschema5/integrity/count check must precede every native/offline Store/admin open. ActualCM/PVC UID/custody drift and optimizedPython stop the operation.", + "required_ack": true, + "severity": "warning", + "locator": { + "kind": "section", + "heading": "Requested decision" + } + } + ], + "sealed": false, + "approval_id": null, + "approval_binding_digest": null +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md b/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md new file mode 100644 index 0000000..6a12571 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md @@ -0,0 +1,52 @@ +# Protected native backup/restore and image-only release protocol + +Prepared protocol for `INFD-WP-0009-T04/purpose-overlay-v1`. No actual native backup, data export, restore, workload change or approval is recorded here. Candidate registry image identity remains a prerequisite; only after actual artifact proof may the founder approve one exact conditional protocol/rollout packet. The config-only7db8485 approval is outside this scope. + +## Preconditions and protected custody + +Freeze exact candidate and prior7f5c6cb image digests, source/installed policy hashes, current manually managed Argo Application/revision, runtime ConfigMap6c221878d051, Deployment UID/template/spec, schema5, policy package pins, database path `/data/private/review.sqlite`, PVC binding, replicas1/Recreate and stable keys for intended verification. Confirm no concurrent writer or custody change. Use fixed metadata; never fetch Secret objects or token values. A changed image/config/schema/owner invalidates the packet. Fresh resources/headroom and exact source/native server-dry-run/diff remain required. + +Backups are private evidence containing real decision records, not logs or packet attachments. Allocate a unique backup directory under existing protected PVC custody, owned10001, mode0700, snapshot file0600, no symlink/hardlink/reused output path. An off-cluster copy belongs only in the already established ignored `.private-backups/` custody with0700/0600 permissions; no Git, StateHub, public object store or terminal-content dump. Record only schema, integrity pass/fail, bounded table/state counts and protected receipt identifier; retain byte digests in protected custody if needed for internal copy identity. No credential, record payload or token fingerprint enters public evidence. + +## Approved online compatibility drill + +Within the explicit founder-approved action, run the existing base image's `informed-decision-admin backup --db /data/private/review.sqlite --output ` in the actual serving workload. This uses SQLite's backup API for a transactionally consistent snapshot; copying a live main database while ignoring WAL is prohibited. Suppress raw failures/output and retain only sanitized status. Observe schema/integrity and count-only metadata from the resulting snapshot, not record content. + +Transfer that consistent snapshot only into protected off-cluster custody through the existing authorized operator lane. The copy is real production data even in build mode. Verify private permissions, unique identity and protected internal digest agreement. Do not export mounted workload credentials or directory trees; copy only the exact snapshot. + +Create a separate private disposable restore volume/directory; retain the original snapshot unchanged. Run the exact published candidate with network disabled, no production ConfigMap/token mounts, read-only image and only that isolated volume writable. Override the service entrypoint with the owner's count-only administrative inspection/integrity check; do not start HTTP listeners, audit delivery, requester exchanges or approval operations. The current candidate changes policy.py only and retains the schema/store module bytes; still prove schema5, SQLite integrity and exact bounded counts before/after opening the restored copy. Refuse any migration/downgrade, lost/changed counts, unexpected write class or unknown outcome. Keep pending/uncertain submission and outbox states; never replay, discard or mark them delivered to green the drill. Cleanup only the disposable copy/volume after verified receipt; retain the original protected backup for the approved recovery interval. + +This step is actual native-data compatibility evidence once performed. Its previous synthetic fixture checks remain mechanism evidence and cannot be renamed native success. A failed drill stops rollout and remains a failed/unverified outcome in the same trial. + +## Fresh cutover snapshot and single-writer rollout + +After successful actual-data compatibility checks, create another unique SQLite-consistent online snapshot immediately before the image cutover, retaining its point-in-time schema/integrity/count receipt. This is an online transactional snapshot, not a claim that dispatchers or human writes were quiesced. Every later committed record remains in the live database; same-schema rollback retains that database and never restores the earlier snapshot over it. The narrow image-only update does not need dispatcher/configuration/PVC/temporary-pod changes or a schema cutover. If fresh verification shows a migration or any data-restoration requirement, stop and refine the proposal rather than applying this protocol. + +The existing Recreate rollout drains/stops the single old writer before starting the new image on the same PVC; the inherited single-writer lock independently refuses concurrent serving processes. Do not add an admin pod, scale-to-zero, dispatcher stop, network-policy rewrite or snapshot overwrite as an improvised image-only step. The existing owner admin backup operation runs inside the admitted serving workload, and its separate protected restore drill runs off-cluster with network disabled and no workload credentials. Those exact custody operations must be enumerated in the founder packet alongside the one Deployment image change. + +Once backup/compatibility/preflight gates pass, manually pin the existing Argo Application to the exact reviewed source revision and sync only Deployment/informed-decision with prune false, keeping the current immutable runtime ConfigMap and all other resources. The source patch changes only the image in admission/rendered Deployment; no Secret, PVC, policy, database or dispatcher change is included unless separately enumerated in the final proposal. Observe five-minute readiness and exact image/config/schema/pins. Verify native lifecycle binding using stable keys and an isolated installed-client probe based on a real provider response contaminated with advisory purpose; prove refusal before any write. Do not contaminate the live PDP, create human approvals, read credentials through CLI, or replay unknown external outcomes for testing. + +## Same-schema rollback and evidence retention + +On startup/readiness/binding/refusal failure, retain current database, cutover backup and every post-cutover evidence/uncertain outcome. Restore only the prior7f5c6cb image through the same manual Argo owner path, retaining schema5 and current DB/configuration; never restore an old snapshot over current live evidence just to roll the image back. Verify old image/Ready1, same schema/counts and prior behavior, and reconcile any external effects using existing lifecycle/audit ownership. The narrow overlay's identical store/schema/dependency bytes permit this image-only rollback; it is not permission for a schema downgrade or data loss. + +Record original/approved/executed source and image revisions, backup/drill/cutover/rollout timestamps, exact disposition and sanitized outcomes in the existing supervised trial receipt. EUR0 incremental infrastructure estimate uses existing service/storage/operator lane; protected temporary copy/storage consumption and15–30minute recovery time remain operational costs. No EUR incident-loss cap or autonomy grant is inferred. TaskT04 cannot close until actual published image, approved native compatibility and release plus post-release refusal/binding evidence all exist. + +## Exact release case identifiers + +Proposal `INFD-WP-0009-T04/purpose-overlay-v1`, trial `infd-purpose-20261011-r1`. +Protected native parent `/data/private/purpose-overlay-r1` must be unique/non-symlink, owned10001 and0700. The drill snapshot is `drill.sqlite`, the refreshed pre-cutover snapshot `cutover.sqlite`, each new0600 file; refuse any existing output. Off-cluster custody is the existing ignored Custodian `.private-backups/20261011-infd-purpose-r1` parent0700, files0600; no snapshot is an evidence attachment. Check owner UID, no symlinks, ignored status and free capacity for both native snapshots plus independently protected copies before making any snapshot. + +The disposable offline restore volume is `infd-purpose-r1-restore-20261011`; refuse an existing volume, copy only the selected frozen snapshot, and run exact published candidate763c with networknone/read-only image,128MiB/core1 and no runtime config/token mounts. SQLite `PRAGMA integrity_check` must return `ok`, `PRAGMA user_version`/Store inspection must agree with actual schema5 semantics, and installed admin count-only inspection must match the frozen snapshot. Validate the actual schema representation rather than assume PRAGMA user_version is the schema authority. No synthetic restoration is reported as native restoration. Native original/off-cluster copies remain retained; only the disposable restore copy/volume may be removed under the exact approved cleanup scope. + +## Mandatory pre-open schema gate and offline command + +`informed-decision-admin inspect` and `backup` construct Store, which can migrate schemas1–4 to5. Therefore **before any Store/admin open**, run the exact attached stdlib-only `sqlite_readonly.py` against the native source database using SQLite URI mode=ro, query_only and one read transaction. Require PRAGMA user_version5, integrity_check=ok and retain count-only baseline. Refuse any other/unknown schema or incomplete integrity/count check before constructing Store; do not infer no migration from a post-open admin report. This native gate has not been executed in this source-preparation stage. Repeat before each native backup/admin operation. + +After copying the selected consistent snapshot to the isolated restored private path `/restore/review.sqlite`, run the same read-only checker **before** any offline candidate admin/Store opens that copy. Frozen snapshot and restored-copy schema/integrity/count reports must agree exactly; the copied main-file digest must match the selected closed snapshot. Reject oldschema fixtures rather than allow migration. Only after this pre-open gate may the offline candidate admin inspect run. + +Offline command vectors use exactimage `forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a`, `--network none --read-only --cpus 1 --memory 128m`, private restored volume mounted at `/restore`, and **no runtime config/credential/token mounts**. First override entrypoint to `python`, arguments `- --db /restore/review.sqlite`, streaming only the verified attached checker on stdin. Then override entrypoint to **`informed-decision-admin`**, arguments **`inspect --db /restore/review.sqlite`**. This does not start `informed-decision-container`, the HTTP service, dispatcher or delivery workers. Compare the admin's schema/lifecycle/outbox/submission counters to the frozen pre-open snapshot report; integrity and migration-free pre-open proof come from the stdlib checker, not admin output alone. + +Live reads and online snapshots may legitimately differ because reviews, intake and delivery can commit concurrently. Exact counter equality is required between the frozen selected snapshot and its offline restored clone; it is **not** required between a running post-cutover/rollback database and an earlier snapshot. Live count changes must be accounted for as legitimate committed records/state transitions; preserve all current and uncertain entries. Do not discard new commits or restore the old snapshot to force equality. Same-schema image rollback keeps the current live DB, followed by read-only schema5/integrity and count-only health checks; any unexplained evidence loss or required data recovery stops and requires a separate founder decision. + +The fresh preflight also independently reads the actual immutable nonsecret ConfigMap and bound PVC: compares sealed UIDs/fullmetadata/PVCspec+volumeName and canonical runtime data checksum, returning no raw runtime data. Same-name deletion/recreation or content/custody drift stops before admission. Secret values remain excluded. Both local and remote optimized Python interpreters are explicitly refused before assertion-based gates. diff --git a/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json b/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json new file mode 100644 index 0000000..09fed88 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json @@ -0,0 +1,5 @@ +{ + "all_checks_pass": false, + "transport_exit": 1, + "stderr_sha256": "d9ea0351e38468c65d13bd68ece0c8e27acb654380ffee23111f76655edf8c49" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json b/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json new file mode 100644 index 0000000..973ff50 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json @@ -0,0 +1,9 @@ +{ + "all_checks_pass": false, + "metadata_diff": { + "category": "annotations", + "changed_keys": [ + "argocd.argoproj.io/tracking-id" + ] + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json b/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json new file mode 100644 index 0000000..10603b4 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json @@ -0,0 +1,43 @@ +{ + "captured_at": "2026-10-11T01:25:38.793555+00:00", + "native_workload_changed": false, + "native_backup_restore_executed": false, + "argo": { + "uid": "499868f2-eabc-4df4-ae31-b89ce58d750d", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "path": "deploy/lifecycle", + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "automated": false, + "sync": { + "comparedTo": { + "destination": { + "namespace": "informed-decision", + "server": "https://kubernetes.default.svc" + }, + "source": { + "path": "deploy/lifecycle", + "repoURL": "https://forgejo.coulomb.social/coulomb/informed-decision.git", + "targetRevision": "7db8485ffecdebfabd77a9daec085553c74bf0bf" + } + }, + "revision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "status": "OutOfSync" + }, + "health": { + "lastTransitionTime": "2026-10-10T23:14:52Z", + "status": "Healthy" + } + }, + "live_ready_replicas": 1, + "admitted_uid": "a588e10a-90d2-4883-975e-6dd8b8feca92", + "server_dry_run_passed": true, + "admitted_spec_exactly_live_plus_image": true, + "client_diff_exit": 1, + "client_diff_sha256": "a4bc024a8cec658f835285ed51964e2e084edbaf103d45a48b89c0950bcd3e7d", + "node_allocated_resources": "(Total limits may be over 100 percent, i.e., overcommitted.)\n Resource Requests Limits\n -------- -------- ------\n cpu 3460m (86%) 36200m (905%)\n memory 9472Mi (59%) 32898Mi (205%)\n ephemeral-storage 0 (0%) 0 (0%)\n hugepages-1Gi 0 (0%) 0 (0%)\n hugepages-2Mi 0 (0%) 0 (0%)", + "all_checks_pass": true +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json b/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json new file mode 100644 index 0000000..d7ded46 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json @@ -0,0 +1,16 @@ +{ + "packet_files": { + "change_guard.py": "f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be", + "preflight.py": "6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd", + "candidate-deployment.json": "722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e", + "rollback-deployment.json": "39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121", + "sealed-live-deployment.json": "d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362", + "native-preflight.json": "eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262", + "sealed-native-dependencies.json": "042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369", + "sqlite_readonly.py": "eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38" + }, + "owner_source_files": { + "deploy/lifecycle/admission.candidate.json": "92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55", + "deploy/lifecycle/service.candidate.json": "38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4" + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/preflight.py b/docs/evidence/2026-10-11-purpose-image-release/preflight.py new file mode 100644 index 0000000..e7d6e22 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/preflight.py @@ -0,0 +1,25 @@ +"""Read-only refresh; exact original capture remains immutable; never execute cutover.""" +import argparse,hashlib,json,subprocess,sys +from pathlib import Path +if sys.flags.optimize: + raise SystemExit("optimized interpreter refused before source/transport execution") +ROOT=Path(__file__).resolve().parent +p=argparse.ArgumentParser();p.add_argument('--receipt-output',type=Path,required=True);p.add_argument('--source-root',type=Path,default=Path('/home/worsch/informed-decision'));a=p.parse_args() +out=a.receipt_output.resolve() +if not a.receipt_output.is_absolute() or out==ROOT or ROOT in out.parents or out==a.source_root.resolve() or a.source_root.resolve() in out.parents or out.exists(): + raise SystemExit('unique execution receipt must be outside the sealed packet') +inputs=json.loads((ROOT/'preflight-inputs.json').read_text()) +for relative,digest in inputs['packet_files'].items(): + path=ROOT/relative + if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('sealed helper/input bytes changed') +for relative,digest in inputs['owner_source_files'].items(): + path=a.source_root/relative + if path.is_symlink() or hashlib.sha256(path.read_bytes()).hexdigest()!=digest:raise SystemExit('owner source bytes changed') +from change_guard import transport_result +program='import subprocess,json,hashlib,datetime,sys,copy,re\nif sys.flags.optimize:raise RuntimeError("optimized interpreter refused")\ncandidate=json.loads(CANDIDATE_LITERAL)\nsealed_dependencies=json.loads(DEPENDENCIES_LITERAL)\nsealed_baseline=json.loads(SEALED_LITERAL)\nexec(GUARD_LITERAL)\ndef run(args,data=None):\n p=subprocess.run(args,input=data,text=True,capture_output=True)\n if p.returncode: raise ValueError(\'read-only command failed: \'+args[1]+\' \'+args[2])\n return p.stdout\nlive=json.loads(run([\'kubectl\',\'get\',\'deployment\',\'informed-decision\',\'-n\',\'informed-decision\',\'-o\',\'json\']))\ncm=json.loads(run([\'kubectl\',\'get\',\'configmap\',\'informed-decision-runtime-6c221878d051\',\'-n\',\'informed-decision\',\'-o\',\'json\']))\npvc=json.loads(run([\'kubectl\',\'get\',\'pvc\',\'informed-decision-data\',\'-n\',\'informed-decision\',\'-o\',\'json\']))\ncheck_dependencies(cm,pvc,sealed_dependencies)\ncheck_current(live,sealed_baseline)\nspec=live[\'spec\']; cs=spec[\'template\'][\'spec\'][\'containers\'];assert len(cs)==1 and cs[0][\'name\']==\'informed-decision\'\nexpected_env={\'INFD_KEYCAPE_ISSUER\':\'https://kc.coulomb.social\',\'INFD_CONTAINER_CONFIG\':\'/configuration/runtime.json\'}\nassert cs[0].get(\'env\')==[{\'name\':\'INFD_KEYCAPE_ISSUER\',\'value\':expected_env[\'INFD_KEYCAPE_ISSUER\']},{\'name\':\'INFD_CONTAINER_CONFIG\',\'value\':expected_env[\'INFD_CONTAINER_CONFIG\']}]\nassert cs[0][\'image\']==\'forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\'\nassert spec[\'replicas\']==1 and spec[\'strategy\']=={\'type\':\'Recreate\'}\nassert next(v for v in spec[\'template\'][\'spec\'][\'volumes\'] if v[\'name\']==\'configuration\')[\'configMap\'][\'name\']==\'informed-decision-runtime-6c221878d051\'\nassert live[\'status\'].get(\'readyReplicas\')==1 and live[\'status\'].get(\'updatedReplicas\')==1\nsealed={\'apiVersion\':live[\'apiVersion\'],\'kind\':live[\'kind\'],\'metadata\':{k:copy.deepcopy(v) for k,v in live[\'metadata\'].items() if k not in (\'resourceVersion\',\'generation\',\'creationTimestamp\',\'managedFields\')},\'spec\':copy.deepcopy(spec)}\nfor key in (\'kubectl.kubernetes.io/last-applied-configuration\',\'deployment.kubernetes.io/revision\'):sealed[\'metadata\'].get(\'annotations\',{}).pop(key,None)\nadmitted=json.loads(run([\'kubectl\',\'apply\',\'--dry-run=server\',\'-f\',\'-\',\'-o\',\'json\'],json.dumps(candidate)))\ncheck_admitted(admitted,sealed_baseline)\napp=json.loads(run([\'kubectl\',\'get\',\'application\',\'informed-decision\',\'-n\',\'argocd\',\'-o\',\'json\']))\nassert app[\'spec\'][\'source\'][\'path\']==\'deploy/lifecycle\' and not app[\'spec\'].get(\'syncPolicy\',{}).get(\'automated\')\nargo={\'uid\':app[\'metadata\'][\'uid\'],\'repoURL\':app[\'spec\'][\'source\'][\'repoURL\'],\'targetRevision\':app[\'spec\'][\'source\'][\'targetRevision\'],\'path\':app[\'spec\'][\'source\'][\'path\'],\'destination\':app[\'spec\'][\'destination\'],\'automated\':False,\'sync\':app.get(\'status\',{}).get(\'sync\'),\'health\':app.get(\'status\',{}).get(\'health\')}\nexpected_argo=json.loads(ARGO_LITERAL)\nfor key in (\'uid\',\'repoURL\',\'targetRevision\',\'path\',\'destination\',\'automated\'):\n assert argo[key]==expected_argo[key]\nassert argo[\'health\'][\'status\']==\'Healthy\'\ndiff=subprocess.run([\'kubectl\',\'diff\',\'-f\',\'-\'],input=json.dumps(candidate),text=True,capture_output=True);assert diff.returncode in (0,1)\n# Diff can contain only nonsecret Deployment references; preserve digest rather than raw stdout.\nnode=run([\'kubectl\',\'describe\',\'node\']);allocated=re.search(r\'Allocated resources:.*?CPU Requests|Allocated resources:\',node,re.S)\nsection=node.split(\'Allocated resources:\')[1].split(\'Events:\')[0] if \'Allocated resources:\' in node else \'\'\nnodes=json.loads(run([\'kubectl\',\'get\',\'nodes\',\'-o\',\'json\']))[\'items\'];assert len(nodes)==1\nalloc=nodes[0][\'status\'][\'allocatable\'];cpu=alloc[\'cpu\'];cpu_m=int(cpu[:-1]) if cpu.endswith(\'m\') else int(cpu)*1000\nrequested=int(re.search(r\'cpu\\s+(\\d+)m\',section).group(1));assert requested<=cpu_m\nreceipt={\'node_allocatable_cpu_m\':cpu_m,\'node_requested_cpu_m\':requested,\'captured_at\':datetime.datetime.now(datetime.timezone.utc).isoformat(),\'native_workload_changed\':False,\'native_backup_restore_executed\':False,\'argo\':argo,\'native_dependencies_checked\':True,\'configmap_uid\':cm[\'metadata\'][\'uid\'],\'pvc_uid\':pvc[\'metadata\'][\'uid\'],\'live_ready_replicas\':1,\'admitted_uid\':admitted[\'metadata\'][\'uid\'],\'server_dry_run_passed\':True,\'admitted_spec_exactly_live_plus_image\':True,\'client_diff_exit\':diff.returncode,\'client_diff_sha256\':hashlib.sha256(diff.stdout.encode()).hexdigest(),\'node_allocated_resources\':section.strip(),\'all_checks_pass\':True}\nprint(json.dumps(receipt))\n' +for marker,value in [('DEPENDENCIES_LITERAL',(ROOT/'sealed-native-dependencies.json').read_text()),('CANDIDATE_LITERAL',(ROOT/'candidate-deployment.json').read_text()),('SEALED_LITERAL',(ROOT/'sealed-live-deployment.json').read_text()),('GUARD_LITERAL',(ROOT/'change_guard.py').read_text()),('ARGO_LITERAL',json.dumps(json.loads((ROOT/'native-preflight.json').read_text())['argo']))]: + program=program.replace(marker,repr(value)) +program='import traceback,json\ntry:\n'+''.join(' '+line+'\n' for line in program.splitlines())+"except Exception as error:\n print(json.dumps({'all_checks_pass':False,'exception_type':type(error).__name__,'exception_line':traceback.extract_tb(error.__traceback__)[-1].lineno}))\n" +r=subprocess.run(['ssh','railiance01','python3 -'],input=program,text=True,capture_output=True) +result=transport_result(r.returncode,r.stdout);result['sealed_preflight_inputs_sha256']=hashlib.sha256((ROOT/'preflight-inputs.json').read_bytes()).hexdigest();result['fresh_execution_receipt']=True +out.write_text(json.dumps(result,indent=2)+'\n');print(json.dumps(result,indent=2));sys.exit(0 if result.get('all_checks_pass') is True else 1) diff --git a/docs/evidence/2026-10-11-purpose-image-release/product-owner-review-validation.json b/docs/evidence/2026-10-11-purpose-image-release/product-owner-review-validation.json new file mode 100644 index 0000000..c8b81e4 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/product-owner-review-validation.json @@ -0,0 +1,25 @@ +{ + "work_item": "INFD-WP-ADHOC-2026-10-11-T02", + "release_manifest_sha256": "7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300", + "release_manifest_paths": 36, + "exact_manifest_file_hashes_pass": true, + "policy_source_sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "source_and_native_candidate_diff_only_image": true, + "negative_tests": 50, + "passed": 50, + "elapsed_seconds": 4.21, + "operations": [ + "register", + "replay", + "publish", + "annotate", + "revise" + ], + "binding_variants": 10, + "domain_tables_unchanged_on_refusal": true, + "refusal_observations_retained": true, + "same_key_recovery_verified": true, + "synthetic_source_only": true, + "native_backup_restore_release_executed": false, + "human_approval": false +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/proposal.json b/docs/evidence/2026-10-11-purpose-image-release/proposal.json new file mode 100644 index 0000000..2f0e2f5 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/proposal.json @@ -0,0 +1,55 @@ +{ + "proposal_id": "INFD-WP-0009-T04/purpose-overlay-v1", + "trial_id": "infd-purpose-20261011-r1", + "state": "prepared-unapproved", + "target": "realm:kubernetes/railiance01/informed-decision", + "authority": "ADMINISTER; activation APPROVED only upon exact founder disposition", + "candidate_image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "published_source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "prior_image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "prior_argo_revision": "7db8485ffecdebfabd77a9daec085553c74bf0bf", + "native_object": { + "apiVersion": "apps/v1", + "kind": "Deployment", + "namespace": "informed-decision", + "name": "informed-decision", + "uid": "a588e10a-90d2-4883-975e-6dd8b8feca92" + }, + "argo_application_uid": "499868f2-eabc-4df4-ae31-b89ce58d750d", + "source_gate": "Exact committed owner source must contain the two approved candidate file hashes in preflight-inputs.json; source preparation is not native approval", + "sync_scope": [ + "apps:Deployment:informed-decision" + ], + "prune": false, + "automated_sync": false, + "runtime_configmap": "informed-decision-runtime-6c221878d051", + "schema": 5, + "requested_operations": [ + "Protected SQLite-consistent native backup and independently protected off-cluster custody", + "Offline restore/integrity/count comparison on a private disposable volume with exact candidate, no runtime tokens/config/network", + "Refresh a consistent pre-cutover snapshot, retain private copies and count-only/hash receipts", + "Pin existing manual Argo Application to exact approved owner source and manually sync only existing Deployment image", + "Verify health/readiness/image/module/installed fail-closed purpose checks and retained schema/count evidence; recover to prior same-schema image if needed" + ], + "execute_by": "2026-10-12T23:59:59Z", + "temporary_vulnerability_review_due": "2026-10-18", + "known_scan_findings": "0HIGH/CRITICAL,1fixable inheritedMEDIUM zlib, actual currentbase+candidate findings identical", + "vulnerability_record": "INFD-RISK-20261011-ZLIB-85091 / INFD-WP-0009-T05", + "cost_estimate_EUR": 0, + "cost_limits": "No new recurring infrastructure; private backup storage and attended engineering/recovery time unpriced, not an autopilot cost grant", + "risk_estimates": [ + "Brief Recreate service interruption; no concurrent new writer/surge", + "Private evidence snapshot custody and disposal errors; no snapshots/tokens in public evidence", + "Candidate purpose refusal may expose callers relying on advisory results as binding", + "Inherited known fixable MEDIUM remains until separately approved owner remediation", + "Existing Argo OutOfSync baseline is retained; no whole-app sync or unrelated repairs permitted" + ], + "rollback": "Manual Argo source pin back to7db8485 and scoped Deployment-only sync to7f5c image; retain current schema5 database and all post-cutover evidence, never restore older snapshot over live writes", + "native_executed": false, + "human_approval": false, + "refinement_of_manifest": "7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300", + "mandatory_pre_open_gate": "stdlibSQLite mode=ro/query_only: schema5+integrity+count baseline before ANY Store/admin on native source or restoredcopy; refuseoldschemas without migration", + "optimized_interpreters": "local+remote explicitlyrefused beforeassert gates", + "native_dependency_gate": "sealed actualCM UID/immutable/canonicaldatahash+PVC UID/fullspec/Bound/volumeName, no rawCMdata orSecret reads", + "live_counts": "Frozen snapshot/clone exactcounter equality; postcutover/rollback livecounterchanges may reflect legitimate concurrentcommits/state transitions, latestDB alwaysretained" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/published-verification.json b/docs/evidence/2026-10-11-purpose-image-release/published-verification.json new file mode 100644 index 0000000..5db68f7 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/published-verification.json @@ -0,0 +1,64 @@ +{ + "proposal": "INFD-WP-0009-T04/purpose-overlay-v1", + "observed_at": "2026-10-11T01:24:01.985128+00:00", + "native_owner_publication_job": { + "id": 11484, + "name": "publish-candidate", + "head_branch": "main", + "head_sha": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "run_number": 3, + "event": "push", + "display_title": "Prepare readable overlay context with the admitted legacy builder", + "status": "success", + "workflow_id": "purpose-overlay-image.yaml", + "url": "https://forgejo.coulomb.social/coulomb/informed-decision/actions/runs/3", + "created_at": "2026-10-11T01:20:59Z", + "updated_at": "2026-10-11T01:21:08Z", + "run_started_at": "2026-10-11T01:20:59Z" + }, + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "policy_sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "registry_proof_sha256": "5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213", + "source_render_change_only": "Deployment/informed-decision spec.template.spec.containers[0].image", + "runtime_configmap_unchanged": "informed-decision-runtime-6c221878d051", + "installed_image_execution": { + "immutable_registry_artifact_pulled_anonymously": true, + "UID": 10001, + "GID": 10001, + "policy_file_UID": 0, + "policy_file_mode": "0644", + "purpose_variants": 10, + "binding_forms_allowed": 2, + "advisory_or_malformed_refused": 8, + "network": "none", + "read_only": true, + "synthetic_transport": true, + "native_PDP_test": false + }, + "scan_summary_sha256": "0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44", + "historical_failed_runs_retained": [ + "f66de505/task11482/run1", + "acecad887/task11483/run2" + ], + "native_hosting_changed": false, + "native_backup_restore_executed": false, + "human_approval": false, + "evidence_file_sha256": { + "image-manifest.json": "978c575d3c7bf0de39dbe4e9567c39cd36f70b7e55bc17357bdb03fb3b96b0fb", + "image-config.json": "4ad7249c75fd9fc039ceb186772419e1cba5fd9759c404556459c80a2d285d10", + "base-image-config.json": "b706c9209e324f39a86ffcda2a3e9d94c92649739ad5b21fe4611006e36f6f00", + "registry-proof.json": "5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213", + "trivy-full.json": "f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e", + "sbom.cdx.json": "a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d", + "base-trivy-full.json": "d44c555aecbb1a4518f4127d48015ea459325c93e8b0371910a55de47293ca80", + "check_installed.py": "a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad", + "verify_registry.py": "413f575c21a2bd18a3696f8f2d939eeadc52d76f282c42813f76bb0e3ee8a2a4", + "sqlite_readonly.py": "eef53dd233eee74c17f20823bd7f5787c60cad79ac648021c9479643c6ce9e38", + "sealed-native-dependencies.json": "042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369", + "review-refinement.json": "ea62845cee5ee6f4f6cb7f5dcd0af601ba29a21c8ff80efbbc02ad16e35bea75", + "test_change_guard.py": "da5350437357ba329236cc137610c03856f38f836ddf2856025bc12011fad07f", + "test_sqlite_readonly.py": "c7a91d0c6a373d738c88bb817d9bfb2ff8a179bc61b93063b89677b566520323", + "test_preflight_optimization.py": "a0c4fa18c5d6c21476a06c6d05fe7656259d204299138851599e9214d911206d" + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json b/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json new file mode 100644 index 0000000..918ff6d --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json @@ -0,0 +1,47 @@ +{ + "image_digest": "sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "base_image_digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "base_layer_bytes_identical": true, + "layer_media_type_conversion": "OCI gzip to Docker gzip, same digest and size", + "base_runtime_config_semantics_identical": true, + "legacy_builder_config_additions": { + "Hostname": "", + "Domainname": "", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Cmd": null, + "Volumes": null, + "OnBuild": null, + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883" + }, + "base_rootfs_prefix_identical": true, + "overlay_regular_files": [ + "opt/venv/lib/python3.12/site-packages/informed_decision/policy.py" + ], + "overlay_directories": [ + "opt", + "opt/venv", + "opt/venv/lib", + "opt/venv/lib/python3.12", + "opt/venv/lib/python3.12/site-packages", + "opt/venv/lib/python3.12/site-packages/informed_decision" + ], + "policy_sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "policy_mode": "0644", + "base_user": "10001:10001", + "source_scope_labels": { + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1" + }, + "registry_read_route": "anonymous public scoped bearer challenge, no token retention", + "image_executed": false, + "native_workload_changed": false, + "native_backup_restore_executed": false +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/review-refinement.json b/docs/evidence/2026-10-11-purpose-image-release/review-refinement.json new file mode 100644 index 0000000..bac2181 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/review-refinement.json @@ -0,0 +1,199 @@ +{ + "proposal_id": "INFD-WP-0009-T04/purpose-overlay-v1", + "trial_id": "infd-purpose-20261011-r1", + "original_manifest_sha256": "7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300", + "original_submission_sha256": "sha256:ac41c8aea7bb008e17f50dc0bab4aad584aef1e461222967ac98d74c7bd28af7", + "original36files_preserved": [ + { + "original_owner_path": "deploy/lifecycle/admission.candidate.json", + "archive_path": "initial-7c6738b3/owner-snapshot/deploy/lifecycle/admission.candidate.json", + "sha256": "92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "original_owner_path": "deploy/lifecycle/service.candidate.json", + "archive_path": "initial-7c6738b3/owner-snapshot/deploy/lifecycle/service.candidate.json", + "sha256": "38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/README.md", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/README.md", + "sha256": "f88a79a93fff34a1b438e2dc0344cad88d6c7960dde04bc7f3c04ac1fbb992c7" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/base-image-config.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-image-config.json", + "sha256": "b706c9209e324f39a86ffcda2a3e9d94c92649739ad5b21fe4611006e36f6f00" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/base-trivy-full.json", + "sha256": "d44c555aecbb1a4518f4127d48015ea459325c93e8b0371910a55de47293ca80" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-admission.json", + "sha256": "92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/candidate-deployment.json", + "sha256": "722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/change_guard.py", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/change_guard.py", + "sha256": "830f7771b5c7d0a2851973aa65a01c6ab40b86570f0933d8aebb89f9665ca7e1" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/check_installed.py", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/check_installed.py", + "sha256": "a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/decision-packet.md", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/decision-packet.md", + "sha256": "7f6d8987f65dff479eeead67b7ca940ef44c22c1cdbdd6ca33fd732b824c8f02" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/fresh-preflight-validation.json", + "sha256": "aa1d494e42491f0619f731a836c597df9178409887d734c166a8df81f8807a27" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/image-config.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-config.json", + "sha256": "4ad7249c75fd9fc039ceb186772419e1cba5fd9759c404556459c80a2d285d10" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/image-manifest.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/image-manifest.json", + "sha256": "978c575d3c7bf0de39dbe4e9567c39cd36f70b7e55bc17357bdb03fb3b96b0fb" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json", + "sha256": "e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/intake.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/intake.json", + "sha256": "9a39631362f20168da409cef74f7690f3aa1b8f841fc96ecd8770f73a1f954ac" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/lifecycle-commands.json", + "sha256": "b6210dcd34e5485c94e35f4bdd3329fb72c1d40fa9357caf40ac42b4f8afa5c2" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/memo.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/memo.json", + "sha256": "06530425dd9634182f70a65dd2da56cbad3da967bc842b3c7b01c30542222128" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-backup-restore-protocol.md", + "sha256": "aa9758d4de587d14c6ce0fdaccd84002c5c5099425b9169ca7c972a86e9d3dec" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-initial-refusal.json", + "sha256": "052fc57d2cda43b2e474f28a5ff70753f5fa673c77a9645a201d0e0e961792e4" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight-tracking-id-refusal.json", + "sha256": "aaa77b406b201eb40a62f60182057e90b1baea06e03f85d7e06916b57f5f2de8" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/native-preflight.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/native-preflight.json", + "sha256": "eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight-inputs.json", + "sha256": "0bbdaf56459aaef3c35d7b1bf3ad20be6260f047df6dd1c5eb60ac1797150944" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/preflight.py", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/preflight.py", + "sha256": "c206a1a9b9d232c656c6d57fb9247549eefa13b275a5da4d39b45a6c9902c834" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/proposal.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/proposal.json", + "sha256": "08c5573eaad05efd24b6df6737d33e7189543eb621f21704e38bab4326094914" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/published-verification.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/published-verification.json", + "sha256": "e304dd29571bf7d7b9f1db2ade0163dd39cfec012a5ce6986139f019f37e65a2" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/registry-proof.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/registry-proof.json", + "sha256": "5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json", + "sha256": "22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json", + "sha256": "39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json", + "sha256": "a4252951e2027472c26d8679cb543e30983180809d6dd3c7c94b883d62803e5d" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json", + "sha256": "d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/security-summary.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/security-summary.json", + "sha256": "0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py", + "sha256": "b7cd28b2ada33004c9264cb54c9749fa501f60166638f926e50e264ddebe037d" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/trivy-full.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json", + "sha256": "f38a8f7e6c419eed9154d7762f932b9deb6680a622247b08196b7458b893434e" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/validation.json", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/validation.json", + "sha256": "3b57f525bbbb1db9dc46bcc6b0057a8dd9f45c461fad0a8dea5391ca78038c36" + }, + { + "original_owner_path": "docs/evidence/2026-10-11-purpose-image-release/verify_registry.py", + "archive_path": "initial-7c6738b3/owner-snapshot/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py", + "sha256": "413f575c21a2bd18a3696f8f2d939eeadc52d76f282c42813f76bb0e3ee8a2a4" + }, + { + "original_owner_path": "workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md", + "archive_path": "initial-7c6738b3/owner-snapshot/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md.source.txt", + "sha256": "18205c0c7aa8f3460d78e3b7ad9dddd9e361395f9a28d93a7a384c29c9602d36" + } + ], + "review_result": "initial conditional/refinement-required; no human disposition", + "identified_gates": [ + "Store/admin automatically migrate oldschema; readonly pre-open schema5 required", + "Python optimization bypasses asserts; explicit local/remote optimized interpreter refusal", + "Actual immutableCM and boundPVC identities/content/custody must be sealed", + "Snapshotclone counts exact; livecounts may include legitimate concurrentcommits" + ], + "amended_scope": "same763cimage, same source2image-only candidates, no native data orworkload operation", + "human_approval": false, + "native_backup_restore_executed": false, + "native_workload_changed": false +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json b/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json new file mode 100644 index 0000000..a474665 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/rollback-admission.json @@ -0,0 +1,52 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "policy": { + "origin": "http://flex-auth-informed-decision-sitting.flex-auth.svc.cluster.local:8080", + "package": "informed-decision.compact-sitting", + "version": "v13", + "package_digest": "sha256:31be5985c0c1e6b0c3a039ed7310d1e94daf523a94f6d926e6e8d759d3711873", + "pod_name": "flex-auth-informed-decision-sitting" + }, + "keycape_egress_ips": [ + "92.205.62.239" + ], + "storage_class": "local-path", + "ordinary_approval_ids": [ + "2ce76d7f-01c3-4b63-8476-8d1230679769", + "c2af4bcf-15b4-4305-aac1-acc7e4dcb099", + "dc22666a-d5d7-46bc-9490-ebe9fe09dc38" + ], + "lifecycle_policy": { + "package": "informed-decision.lifecycle", + "version": "v2", + "package_digest": "sha256:da01e045fc108adec6b489e5d51f7e57366793016c5a64776963780a6aae457c", + "origin": "http://flex-auth-informed-decision-lifecycle.flex-auth.svc.cluster.local:8080", + "pod_name": "flex-auth-informed-decision-lifecycle" + }, + "lifecycle_delivery": true, + "intake_attributes": true, + "intake_delivery": { + "hub_origin": "http://state-hub.state-hub.svc.cluster.local:8000" + }, + "workload_api": { + "registries_configmap": "informed-decision-workload-registry", + "peers": [ + { + "namespace": "state-hub", + "app": "state-hub" + } + ], + "api_egress": [ + { + "ip": "10.43.0.1", + "port": 443 + }, + { + "ip": "92.205.62.239", + "port": 6443 + } + ], + "intake": true, + "lifecycle": true + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json b/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json new file mode 100644 index 0000000..7459f8f --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/rollback-deployment.json @@ -0,0 +1,267 @@ +{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover", + "argocd.argoproj.io/tracking-id": "informed-decision:apps/Deployment:informed-decision/informed-decision" + }, + "name": "informed-decision", + "namespace": "informed-decision" + }, + "spec": { + "progressDeadlineSeconds": 600, + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "strategy": { + "type": "Recreate" + }, + "template": { + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "labels": { + "app.kubernetes.io/component": "review", + "app.kubernetes.io/name": "informed-decision" + } + }, + "spec": { + "automountServiceAccountToken": false, + "containers": [ + { + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "livenessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "name": "informed-decision", + "ports": [ + { + "containerPort": 8080, + "name": "http" + }, + { + "containerPort": 8081, + "name": "workload" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "256Mi" + }, + "requests": { + "cpu": "5m", + "memory": "64Mi" + } + }, + "securityContext": { + "allowPrivilegeEscalation": false, + "capabilities": { + "drop": [ + "ALL" + ] + }, + "readOnlyRootFilesystem": true + }, + "startupProbe": { + "failureThreshold": 12, + "httpGet": { + "path": "/healthz", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2 + }, + "volumeMounts": [ + { + "mountPath": "/data", + "name": "data" + }, + { + "mountPath": "/run/informed-decision", + "name": "runtime" + }, + { + "mountPath": "/tmp", + "name": "tmp" + }, + { + "mountPath": "/configuration", + "name": "configuration", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/policy", + "name": "caller", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/audit", + "name": "audit", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "name": "kubernetes-api", + "readOnly": true + }, + { + "mountPath": "/workload-registry", + "name": "workload-registry", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/requester", + "name": "sitting-requester", + "readOnly": true + } + ] + } + ], + "securityContext": { + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "runAsGroup": 10001, + "runAsNonRoot": true, + "runAsUser": 10001, + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "runtime" + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "tmp" + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-runtime-6c221878d051" + }, + "name": "configuration" + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "audience": "flex-auth", + "expirationSeconds": 3600, + "path": "token" + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ], + "secretName": "informed-decision-audit" + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "expirationSeconds": 600, + "path": "token" + } + }, + { + "configMap": { + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ], + "name": "kube-root-ca.crt" + } + } + ] + } + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-workload-registry" + }, + "name": "workload-registry" + }, + { + "name": "sitting-requester", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ], + "optional": false, + "secretName": "informed-decision-sitting-requester" + } + } + ] + } + } + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json b/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json new file mode 100644 index 0000000..89f9039 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/sbom.cdx.json @@ -0,0 +1,2560 @@ +{ + "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.7", + "serialNumber": "urn:uuid:3eaaa94b-5129-41f3-82f2-f8f58ac5239a", + "version": 1, + "metadata": { + "timestamp": "2026-10-11T01:22:33+00:00", + "tools": { + "components": [ + { + "type": "application", + "manufacturer": { + "name": "Aqua Security Software Ltd." + }, + "group": "aquasecurity", + "name": "trivy", + "version": "0.74.0" + } + ] + }, + "component": { + "bom-ref": "pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision", + "type": "container", + "name": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "purl": "pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision", + "properties": [ + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:DiffID", + "value": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "name": "aquasecurity:trivy:ImageID", + "value": "sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779" + }, + { + "name": "aquasecurity:trivy:Labels:org.opencontainers.image.base.digest", + "value": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173" + }, + { + "name": "aquasecurity:trivy:Labels:org.opencontainers.image.revision", + "value": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168" + }, + { + "name": "aquasecurity:trivy:Labels:social.coulomb.release.scope", + "value": "INFD-WP-0009-T04/purpose-overlay-v1" + }, + { + "name": "aquasecurity:trivy:Labels:social.coulomb.source.policy.sha256", + "value": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + }, + { + "name": "aquasecurity:trivy:Reference", + "value": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a" + }, + { + "name": "aquasecurity:trivy:RepoDigest", + "value": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a" + }, + { + "name": "aquasecurity:trivy:SchemaVersion", + "value": "2" + }, + { + "name": "aquasecurity:trivy:Size", + "value": "88258048" + } + ] + } + }, + "components": [ + { + "bom-ref": "5b71299e-3c0c-4c4f-bd29-865fb14e1758", + "type": "operating-system", + "name": "alpine", + "version": "3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:Class", + "value": "os-pkgs" + }, + { + "name": "aquasecurity:trivy:Type", + "value": "alpine" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "type": "library", + "name": ".python-rundeps", + "version": "20260901.001029", + "hashes": [ + { + "alg": "SHA-1", + "content": "51d0c1e7d88a414345799f0309185c625013ef32" + } + ], + "purl": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": ".python-rundeps@20260901.001029" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-baselayout-data", + "version": "3.7.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-baselayout-data@3.7.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-baselayout" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.7.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-baselayout", + "version": "3.7.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "f0fcfdc2f4da058af6473bc45c4eab62916225b2" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-baselayout@3.7.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-baselayout" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.7.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-keys", + "version": "2.6-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "d8d6b80e53c059a77e4915da78ba964f3ffea240" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-keys@2.6-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-keys" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2.6-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "alpine-release", + "version": "3.24.1-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "bc6912a25cdc7733e0035ed509eceaa4026946e3" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "alpine-release@3.24.1-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "alpine-base" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.24.1-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "apk-tools", + "version": "3.0.6-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "043333589798a1f52e09ae63f026c6c8fa676d34" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "apk-tools@3.0.6-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "apk-tools" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.0.6-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Sören Tempel " + }, + "name": "busybox-binsh", + "version": "1.37.0-r31", + "hashes": [ + { + "alg": "SHA-1", + "content": "5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "busybox-binsh@1.37.0-r31" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "busybox" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.37.0-r31" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Sören Tempel " + }, + "name": "busybox", + "version": "1.37.0-r31", + "hashes": [ + { + "alg": "SHA-1", + "content": "b5405ebc02f7dd8be95b6265c54b243d5456ab8f" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "busybox@1.37.0-r31" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "busybox" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.37.0-r31" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "ca-certificates-bundle", + "version": "20260611-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "c9534a03750bdfae341f10969016090fc11febbd" + } + ], + "licenses": [ + { + "license": { + "id": "MPL-2.0" + } + }, + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ca-certificates-bundle@20260611-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ca-certificates" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "20260611-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "ca-certificates", + "version": "20260611-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "8f2a04abeb54b331e2970a0a0dffb7bd6bdde567" + } + ], + "licenses": [ + { + "license": { + "id": "MPL-2.0" + } + }, + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ca-certificates@20260611-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ca-certificates" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "20260611-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "gdbm", + "version": "1.26-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "619493d8124fe49a8ee1d8f7a1372cf7e3977337" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-3.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "gdbm@1.26-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "gdbm" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.26-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "keyutils-libs", + "version": "1.6.3-r4", + "hashes": [ + { + "alg": "SHA-1", + "content": "b7331c96f077fc3522ee4361a441d1097204cd90" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-or-later" + } + }, + { + "license": { + "id": "LGPL-2.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "keyutils-libs@1.6.3-r4" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "keyutils" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.6.3-r4" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "krb5-conf", + "version": "1.0-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "40a11e0690a59e110367b62a80661024e9942a2d" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "krb5-conf@1.0-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "krb5-conf" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.0-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "krb5-libs", + "version": "1.22.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "ef02346e21b817ff379e4601e5b1fc9760e5e31a" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "krb5-libs@1.22.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "krb5" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.22.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libapk", + "version": "3.0.6-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "523a8f58104589f74f743d501c81bf6517155378" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libapk@3.0.6-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "apk-tools" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.0.6-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libbz2", + "version": "1.0.8-r6", + "hashes": [ + { + "alg": "SHA-1", + "content": "08566ba5c7af97c25474be8b24e8b48f0116b67d" + } + ], + "licenses": [ + { + "license": { + "name": "bzip-2-1.0.6" + } + } + ], + "purl": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libbz2@1.0.8-r6" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "bzip2" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.0.8-r6" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libcom_err", + "version": "1.47.4-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-or-later" + } + }, + { + "license": { + "id": "LGPL-2.0-or-later" + } + }, + { + "license": { + "id": "BSD-3-Clause" + } + }, + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libcom_err@1.47.4-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "e2fsprogs" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.47.4-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libcrypto3", + "version": "3.5.8-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3" + } + ], + "licenses": [ + { + "license": { + "id": "Apache-2.0" + } + } + ], + "purl": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libcrypto3@3.5.8-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "openssl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.5.8-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libffi", + "version": "3.5.2-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libffi@3.5.2-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libffi" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.5.2-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Carlo Landmeter " + }, + "name": "libintl", + "version": "1.0-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "282d6642ccac87237e43a864159d73cf5abe7550" + } + ], + "licenses": [ + { + "license": { + "id": "LGPL-2.1-or-later" + } + } + ], + "purl": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libintl@1.0-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "gettext" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.0-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Milan P. Stanić " + }, + "name": "libncursesw", + "version": "6.6_p20260516-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "9f318e6e324d6827274829194cf6ac6afbaded12" + } + ], + "licenses": [ + { + "license": { + "name": "X-11" + } + } + ], + "purl": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libncursesw@6.6_p20260516-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ncurses" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "6.6_p20260516-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "name": "libnsl", + "version": "2.0.1-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "5194adbf26560b52be318481a7af294ab05fd795" + } + ], + "licenses": [ + { + "license": { + "id": "LGPL-2.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libnsl@2.0.1-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libnsl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2.0.1-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Milan P. Stanić " + }, + "name": "libpanelw", + "version": "6.6_p20260516-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "149bdc434232ed11fc5bb975ba519a07154a6f56" + } + ], + "licenses": [ + { + "license": { + "name": "X-11" + } + } + ], + "purl": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libpanelw@6.6_p20260516-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ncurses" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "6.6_p20260516-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libssl3", + "version": "3.5.8-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "5f9b1e55d821953d2e2b1db322dad70a3b5041ea" + } + ], + "licenses": [ + { + "license": { + "id": "Apache-2.0" + } + } + ], + "purl": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libssl3@3.5.8-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "openssl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.5.8-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libtirpc-conf", + "version": "1.3.5-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "0c17d9988dc986c90e22f79778df047eca9973ff" + } + ], + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libtirpc-conf@1.3.5-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libtirpc" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.5-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libtirpc", + "version": "1.3.5-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "c32865bd86a8b8829d152279cabbc5ac6d430eb2" + } + ], + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libtirpc@1.3.5-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libtirpc" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.5-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "libuuid", + "version": "2.42.3-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "8f041ef637ad75f381cc0c034f2afbbb0303264e" + } + ], + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libuuid@2.42.3-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "util-linux" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2.42.3-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Francesco Colista " + }, + "name": "libverto", + "version": "0.3.2-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "73233059338142e4ac6d8fb8bb0074e93da75dc1" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "libverto@0.3.2-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "libverto" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "0.3.2-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "musl-utils", + "version": "1.2.6-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "75ada3c48d63ec5d87c42fdf934a3fdd11298dc5" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + }, + { + "license": { + "id": "BSD-2-Clause" + } + }, + { + "license": { + "id": "GPL-2.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "musl-utils@1.2.6-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "musl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.2.6-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "musl", + "version": "1.2.6-r2", + "hashes": [ + { + "alg": "SHA-1", + "content": "0f7e5827e4e1a73631beda27b78431a8ba240e05" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "musl@1.2.6-r2" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "musl" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.2.6-r2" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Milan P. Stanić " + }, + "name": "ncurses-terminfo-base", + "version": "6.6_p20260516-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "9d551d828e9c8ee52c5801c1d6046828ebf15752" + } + ], + "licenses": [ + { + "license": { + "name": "X-11" + } + } + ], + "purl": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ncurses-terminfo-base@6.6_p20260516-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "ncurses" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "6.6_p20260516-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "qaqland " + }, + "name": "readline", + "version": "8.3.3-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "945b16e378bc00e44d89d4de8124bba7647fdf4d" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-3.0-or-later" + } + } + ], + "purl": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "readline@8.3.3-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "readline" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "8.3.3-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "scanelf", + "version": "1.3.9-r1", + "hashes": [ + { + "alg": "SHA-1", + "content": "013f903d0ba219673aebbdd04f74bb5ed82b01f0" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "scanelf@1.3.9-r1" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "pax-utils" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.9-r1" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Jingyun Hua " + }, + "name": "sqlite-libs", + "version": "3.53.4-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "f7630ceb37c232b6609861aeab6cdb9cd120e6fa" + } + ], + "licenses": [ + { + "license": { + "id": "blessing" + } + } + ], + "purl": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "sqlite-libs@3.53.4-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "sqlite" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "3.53.4-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Sören Tempel " + }, + "name": "ssl_client", + "version": "1.37.0-r31", + "hashes": [ + { + "alg": "SHA-1", + "content": "c220f4a5125a313af733e98def94132bb1e9d40d" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-only" + } + } + ], + "purl": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "ssl_client@1.37.0-r31" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "busybox" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.37.0-r31" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "tzdata", + "version": "2026c-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "61f7544ecd8dd63eac23fe3e645702fda92ef02a" + } + ], + "licenses": [ + { + "license": { + "name": "Public-Domain" + } + } + ], + "purl": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "tzdata@2026c-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "tzdata" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "2026c-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "xz-libs", + "version": "5.8.3-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "4c92c5be0c5bef404e93c880eba9037a9b147347" + } + ], + "licenses": [ + { + "license": { + "id": "GPL-2.0-or-later" + } + }, + { + "license": { + "id": "0BSD" + } + }, + { + "license": { + "name": "Public-Domain" + } + }, + { + "license": { + "id": "LGPL-2.1-or-later" + } + } + ], + "purl": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "xz-libs@5.8.3-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "xz" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "5.8.3-r0" + } + ] + }, + { + "bom-ref": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "type": "library", + "supplier": { + "name": "Natanael Copa " + }, + "name": "zlib", + "version": "1.3.2-r0", + "hashes": [ + { + "alg": "SHA-1", + "content": "dd4c3d102acaef2a71a1495951d55fabc8680613" + } + ], + "licenses": [ + { + "license": { + "id": "Zlib" + } + } + ], + "purl": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "properties": [ + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4" + }, + { + "name": "aquasecurity:trivy:PkgID", + "value": "zlib@1.3.2-r0" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "alpine" + }, + { + "name": "aquasecurity:trivy:SrcName", + "value": "zlib" + }, + { + "name": "aquasecurity:trivy:SrcVersion", + "value": "1.3.2-r0" + } + ] + }, + { + "bom-ref": "pkg:pypi/cffi@2.1.1", + "type": "library", + "name": "cffi", + "version": "2.1.1", + "licenses": [ + { + "license": { + "id": "MIT-0" + } + } + ], + "purl": "pkg:pypi/cffi@2.1.1", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/cryptography@50.0.1", + "type": "library", + "name": "cryptography", + "version": "50.0.1", + "licenses": [ + { + "expression": "Apache-2.0 OR BSD-3-Clause" + } + ], + "purl": "pkg:pypi/cryptography@50.0.1", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/informed-decision@0.2.0", + "type": "library", + "name": "informed-decision", + "version": "0.2.0", + "purl": "pkg:pypi/informed-decision@0.2.0", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/pycparser@3.0", + "type": "library", + "name": "pycparser", + "version": "3.0", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause" + } + } + ], + "purl": "pkg:pypi/pycparser@3.0", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/pyjwt@2.15.1", + "type": "library", + "name": "PyJWT", + "version": "2.15.1", + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ], + "purl": "pkg:pypi/pyjwt@2.15.1", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + }, + { + "bom-ref": "pkg:pypi/waitress@3.0.2", + "type": "library", + "name": "waitress", + "version": "3.0.2", + "licenses": [ + { + "license": { + "id": "ZPL-2.1" + } + } + ], + "purl": "pkg:pypi/waitress@3.0.2", + "properties": [ + { + "name": "aquasecurity:trivy:FilePath", + "value": "opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA" + }, + { + "name": "aquasecurity:trivy:LayerDiffID", + "value": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "name": "aquasecurity:trivy:LayerDigest", + "value": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87" + }, + { + "name": "aquasecurity:trivy:PkgType", + "value": "python-pkg" + } + ] + } + ], + "dependencies": [ + { + "ref": "5b71299e-3c0c-4c4f-bd29-865fb14e1758", + "dependsOn": [ + "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64&distro=3.24.1", + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [] + }, + { + "ref": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "dependsOn": [ + "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64&distro=3.24.1" + ] + }, + { + "ref": "pkg:oci/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a?arch=amd64&repository_url=forgejo.coulomb.social%2Fcoulomb%2Finformed-decision", + "dependsOn": [ + "5b71299e-3c0c-4c4f-bd29-865fb14e1758", + "pkg:pypi/cffi@2.1.1", + "pkg:pypi/cryptography@50.0.1", + "pkg:pypi/informed-decision@0.2.0", + "pkg:pypi/pycparser@3.0", + "pkg:pypi/pyjwt@2.15.1", + "pkg:pypi/waitress@3.0.2" + ] + }, + { + "ref": "pkg:pypi/cffi@2.1.1", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/cryptography@50.0.1", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/informed-decision@0.2.0", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/pycparser@3.0", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/pyjwt@2.15.1", + "dependsOn": [] + }, + { + "ref": "pkg:pypi/waitress@3.0.2", + "dependsOn": [] + } + ], + "vulnerabilities": [ + { + "id": "CVE-2026-85091", + "source": { + "name": "alpine", + "url": "https://secdb.alpinelinux.org/" + }, + "ratings": [ + { + "source": { + "name": "ubuntu" + }, + "severity": "medium" + } + ], + "cwes": [ + 787 + ], + "description": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.", + "recommendation": "Upgrade zlib to version 1.3.2-r1", + "advisories": [ + { + "url": "https://avd.aquasec.com/nvd/cve-2026-85091" + }, + { + "url": "https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490" + }, + { + "url": "https://github.com/madler/zlib" + }, + { + "url": "https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393" + }, + { + "url": "https://www.cve.org/CVERecord?id=CVE-2026-85091" + }, + { + "url": "https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate" + } + ], + "published": "2026-09-03T13:06:20+00:00", + "updated": "2026-09-09T20:41:07+00:00", + "affects": [ + { + "ref": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64&distro=3.24.1", + "versions": [ + { + "version": "1.3.2-r0", + "status": "affected" + } + ] + } + ] + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json b/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json new file mode 100644 index 0000000..f6f812d --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/sealed-live-deployment.json @@ -0,0 +1,286 @@ +{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "annotations": { + "argocd.argoproj.io/tracking-id": "informed-decision:apps/Deployment:informed-decision/informed-decision", + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "name": "informed-decision", + "namespace": "informed-decision", + "uid": "a588e10a-90d2-4883-975e-6dd8b8feca92" + }, + "spec": { + "progressDeadlineSeconds": 600, + "replicas": 1, + "revisionHistoryLimit": 10, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "informed-decision" + } + }, + "strategy": { + "type": "Recreate" + }, + "template": { + "metadata": { + "annotations": { + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "labels": { + "app.kubernetes.io/component": "review", + "app.kubernetes.io/name": "informed-decision" + } + }, + "spec": { + "automountServiceAccountToken": false, + "containers": [ + { + "env": [ + { + "name": "INFD_KEYCAPE_ISSUER", + "value": "https://kc.coulomb.social" + }, + { + "name": "INFD_CONTAINER_CONFIG", + "value": "/configuration/runtime.json" + } + ], + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "imagePullPolicy": "IfNotPresent", + "livenessProbe": { + "failureThreshold": 3, + "httpGet": { + "path": "/healthz", + "port": "http", + "scheme": "HTTP" + }, + "periodSeconds": 10, + "successThreshold": 1, + "timeoutSeconds": 2 + }, + "name": "informed-decision", + "ports": [ + { + "containerPort": 8080, + "name": "http", + "protocol": "TCP" + }, + { + "containerPort": 8081, + "name": "workload", + "protocol": "TCP" + } + ], + "readinessProbe": { + "failureThreshold": 3, + "httpGet": { + "path": "/healthz", + "port": "http", + "scheme": "HTTP" + }, + "periodSeconds": 10, + "successThreshold": 1, + "timeoutSeconds": 2 + }, + "resources": { + "limits": { + "cpu": "500m", + "memory": "256Mi" + }, + "requests": { + "cpu": "5m", + "memory": "64Mi" + } + }, + "securityContext": { + "allowPrivilegeEscalation": false, + "capabilities": { + "drop": [ + "ALL" + ] + }, + "readOnlyRootFilesystem": true + }, + "startupProbe": { + "failureThreshold": 12, + "httpGet": { + "path": "/healthz", + "port": "http", + "scheme": "HTTP" + }, + "periodSeconds": 10, + "successThreshold": 1, + "timeoutSeconds": 2 + }, + "terminationMessagePath": "/dev/termination-log", + "terminationMessagePolicy": "File", + "volumeMounts": [ + { + "mountPath": "/data", + "name": "data" + }, + { + "mountPath": "/run/informed-decision", + "name": "runtime" + }, + { + "mountPath": "/tmp", + "name": "tmp" + }, + { + "mountPath": "/configuration", + "name": "configuration", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/policy", + "name": "caller", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/audit", + "name": "audit", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/kubernetes", + "name": "kubernetes-api", + "readOnly": true + }, + { + "mountPath": "/workload-registry", + "name": "workload-registry", + "readOnly": true + }, + { + "mountPath": "/var/run/secrets/informed-decision/requester", + "name": "sitting-requester", + "readOnly": true + } + ] + } + ], + "dnsPolicy": "ClusterFirst", + "restartPolicy": "Always", + "schedulerName": "default-scheduler", + "securityContext": { + "fsGroup": 10001, + "fsGroupChangePolicy": "OnRootMismatch", + "runAsGroup": 10001, + "runAsNonRoot": true, + "runAsUser": 10001, + "seccompProfile": { + "type": "RuntimeDefault" + } + }, + "serviceAccount": "review", + "serviceAccountName": "review", + "terminationGracePeriodSeconds": 45, + "volumes": [ + { + "name": "data", + "persistentVolumeClaim": { + "claimName": "informed-decision-data" + } + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "runtime" + }, + { + "emptyDir": { + "medium": "Memory", + "sizeLimit": "16Mi" + }, + "name": "tmp" + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-runtime-6c221878d051" + }, + "name": "configuration" + }, + { + "name": "caller", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "audience": "flex-auth", + "expirationSeconds": 3600, + "path": "token" + } + } + ] + } + }, + { + "name": "audit", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "token", + "path": "token" + } + ], + "secretName": "informed-decision-audit" + } + }, + { + "name": "kubernetes-api", + "projected": { + "defaultMode": 288, + "sources": [ + { + "serviceAccountToken": { + "expirationSeconds": 600, + "path": "token" + } + }, + { + "configMap": { + "items": [ + { + "key": "ca.crt", + "path": "ca.crt" + } + ], + "name": "kube-root-ca.crt" + } + } + ] + } + }, + { + "configMap": { + "defaultMode": 292, + "name": "informed-decision-workload-registry" + }, + "name": "workload-registry" + }, + { + "name": "sitting-requester", + "secret": { + "defaultMode": 288, + "items": [ + { + "key": "client-secret", + "path": "client-secret" + } + ], + "optional": false, + "secretName": "informed-decision-sitting-requester" + } + } + ] + } + } + } +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/sealed-native-dependencies.json b/docs/evidence/2026-10-11-purpose-image-release/sealed-native-dependencies.json new file mode 100644 index 0000000..8490089 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/sealed-native-dependencies.json @@ -0,0 +1,52 @@ +{ + "configmap": { + "apiVersion": "v1", + "immutable": true, + "kind": "ConfigMap", + "metadata": { + "annotations": { + "argocd.argoproj.io/tracking-id": "informed-decision:/ConfigMap:informed-decision/informed-decision-runtime-6c221878d051", + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover" + }, + "name": "informed-decision-runtime-6c221878d051", + "namespace": "informed-decision", + "uid": "90113d2d-54d9-4e82-b1d3-90b49ebed2b5" + }, + "canonical_data_sha256": "8ec462d12347548f506eeebf1e3c7cc47648019c8a783804d09bcc79b0f22af6" + }, + "pvc": { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "annotations": { + "argocd.argoproj.io/tracking-id": "informed-decision:/PersistentVolumeClaim:informed-decision/informed-decision-data", + "informed-decision.coulomb.social/admission": "approved; INFD-WP-0007 cutover", + "pv.kubernetes.io/bind-completed": "yes", + "pv.kubernetes.io/bound-by-controller": "yes", + "volume.beta.kubernetes.io/storage-provisioner": "rancher.io/local-path", + "volume.kubernetes.io/selected-node": "239.62.205.92.host.secureserver.net", + "volume.kubernetes.io/storage-provisioner": "rancher.io/local-path" + }, + "finalizers": [ + "kubernetes.io/pvc-protection" + ], + "name": "informed-decision-data", + "namespace": "informed-decision", + "uid": "d80b25b1-141a-441b-b205-98fa2fd98b7c" + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "1Gi" + } + }, + "storageClassName": "local-path", + "volumeMode": "Filesystem", + "volumeName": "pvc-d80b25b1-141a-441b-b205-98fa2fd98b7c" + } + }, + "pvc_phase": "Bound" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/security-summary.json b/docs/evidence/2026-10-11-purpose-image-release/security-summary.json new file mode 100644 index 0000000..48926d3 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/security-summary.json @@ -0,0 +1,35 @@ +{ + "image": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "source_revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "scanner": "aquasec/trivy@sha256:62b1e65e8869bc4b4c6aa4fa2b21595256c7c2f6018a9d9ad61caf87187c1969", + "version": "0.74.0", + "db_metadata": { + "Version": 2, + "NextUpdate": "2026-10-11T18:59:50.889010572Z", + "UpdatedAt": "2026-10-10T18:59:50.889010923Z", + "DownloadedAt": "2026-10-10T23:32:32.380033131Z" + }, + "suppression": false, + "ignore_unfixed": false, + "severity_filter": null, + "package_count": 44, + "findings_by_severity": { + "MEDIUM": 1 + }, + "findings": [ + { + "id": "CVE-2026-85091", + "package": "zlib", + "installed": "1.3.2-r0", + "fixed": "1.3.2-r1", + "severity": "MEDIUM" + } + ], + "coverage_limits": [ + "Alpine3.24 absent scanner EOL list; OS detector ran against Alpine3.24 repository on38OS packages", + "Known findings asof pinnedDB, not claim absence of unknown vulnerabilities" + ], + "high_critical": 0, + "same_scanner_actual_base_scan_findings_identical": true, + "base_scan_file": "base-trivy-full.json" +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/sqlite_readonly.py b/docs/evidence/2026-10-11-purpose-image-release/sqlite_readonly.py new file mode 100644 index 0000000..833721b --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/sqlite_readonly.py @@ -0,0 +1,39 @@ +"""Pre-open schema/integrity/count proof; stdlib only, never constructs Store.""" +import argparse +import json +from pathlib import Path +import sqlite3 + + +def inspect_readonly(path): + path = Path(path) + if not path.is_file() or path.is_symlink(): + raise ValueError('existing nonsymlink private database required') + with sqlite3.connect(path.resolve().as_uri() + '?mode=ro', uri=True, timeout=5) as db: + db.execute('PRAGMA query_only=ON') + db.execute('BEGIN') + version = db.execute('PRAGMA user_version').fetchone()[0] + if version != 5: + raise ValueError('pre-open database is not schema5; refuse migration') + if db.execute('PRAGMA integrity_check').fetchall() != [('ok',)]: + raise ValueError('read-only integrity check refused') + lifecycle = {name: db.execute('SELECT COUNT(*) FROM ' + table).fetchone()[0] + for name, table in (('records', 'lifecycle_records'), + ('events', 'lifecycle_events'), + ('pending', 'lifecycle_pending'))} + result = {'schema_version': version, 'lifecycle': lifecycle, + 'outbox': dict(db.execute('SELECT state,COUNT(*) FROM outbox GROUP BY state')), + 'submissions': dict(db.execute('SELECT state,COUNT(*) FROM submissions GROUP BY state')), + 'integrity': 'ok', 'read_only_pre_open': True, 'store_constructed': False} + db.rollback() + return result + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--db', type=Path, required=True) + args = parser.parse_args() + try: + print(json.dumps(inspect_readonly(args.db), sort_keys=True)) + except Exception: + raise SystemExit('read-only schema5/integrity/count gate refused; no Store/admin open') from None diff --git a/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py b/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py new file mode 100644 index 0000000..9cc1bdd --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/test_change_guard.py @@ -0,0 +1,91 @@ +import copy +import json +import unittest +from pathlib import Path +from change_guard import CANDIDATE, check_current, check_admitted, transport_result, check_dependencies + +ROOT = Path(__file__).parent + + +class ExactDeploymentBoundary(unittest.TestCase): + def setUp(self): + self.sealed = json.loads((ROOT / 'sealed-live-deployment.json').read_text()) + self.admitted = copy.deepcopy(self.sealed) + self.admitted['spec']['template']['spec']['containers'][0]['image'] = CANDIDATE + + def test_only_expected_image_is_accepted(self): + check_current(self.sealed, self.sealed) + check_admitted(self.admitted, self.sealed) + + def test_bookkeeping_is_ignored(self): + value = copy.deepcopy(self.admitted) + value['status'] = {'readyReplicas': 0} + value['metadata']['generation'] = 100 + value['metadata']['resourceVersion'] = 'changed' + value['metadata']['annotations']['kubectl.kubernetes.io/last-applied-configuration'] = 'server bookkeeping' + check_admitted(value, self.sealed) + + def test_unrelated_drift_and_recreated_uid_are_refused(self): + mutators = [ + lambda v: v['metadata'].update(uid='recreated'), + lambda v: v['metadata'].update(finalizers=['new']), + lambda v: v['metadata'].update(ownerReferences=[{'uid': 'new'}]), + lambda v: v['spec']['template']['spec'].update(hostNetwork=True), + lambda v: v['spec']['template']['spec'].update(serviceAccountName='other'), + lambda v: v['spec']['template']['spec'].update(automountServiceAccountToken=True), + lambda v: v['spec']['template']['spec']['containers'][0].update(env=[]), + lambda v: v['spec']['template']['spec']['containers'][0]['securityContext'].update(privileged=True), + lambda v: v['spec'].update(replicas=2), + lambda v: v['spec'].update(strategy={'type': 'RollingUpdate'}), + ] + for mutate in mutators: + with self.subTest(mutate=mutate): + current = copy.deepcopy(self.sealed) + mutate(current) + with self.assertRaises(ValueError): + check_current(current, self.sealed) + admitted = copy.deepcopy(self.admitted) + mutate(admitted) + with self.assertRaises(ValueError): + check_admitted(admitted, self.sealed) + + def test_unexpected_image_is_refused(self): + value = copy.deepcopy(self.admitted) + value['spec']['template']['spec']['containers'][0]['image'] = 'other' + with self.assertRaises(ValueError): + check_admitted(value, self.sealed) + + def test_malformed_successful_transport_is_refused(self): + for output in ('banner', '{}', '[]', '{"all_checks_pass": "true"}', '{"all_checks_pass": false}'): + self.assertIs(transport_result(0, output)['all_checks_pass'], False) + self.assertIs(transport_result(1, '{"all_checks_pass":true}')['all_checks_pass'], False) + self.assertIs(transport_result(0, '{"all_checks_pass":true}')['all_checks_pass'], True) + + def test_runtime_config_and_pvc_custody_are_sealed(self): + sealed = json.loads((ROOT / 'sealed-native-dependencies.json').read_text()) + cm = copy.deepcopy(sealed['configmap']) + cm.pop('canonical_data_sha256') + service = json.loads((ROOT.parents[2] / 'deploy/lifecycle/service.candidate.json').read_text()) + cm['data'] = next(x for x in service['items'] if x['kind'] == 'ConfigMap')['data'] + pvc = copy.deepcopy(sealed['pvc']) + pvc['status'] = {'phase': 'Bound'} + check_dependencies(cm, pvc, sealed) + for mutate in ( + lambda c, p: c['metadata'].update(uid='recreated'), + lambda c, p: c.update(immutable=False), + lambda c, p: c['data'].update({'runtime.json': '{}'}), + lambda c, p: c.update(binaryData={'extra': 'changed'}), + lambda c, p: p['metadata'].update(uid='recreated'), + lambda c, p: p['spec'].update(volumeName='replaced'), + lambda c, p: p['status'].update(phase='Pending'), + lambda c, p: p['metadata'].update(finalizers=['changed']), + ): + with self.subTest(mutate=mutate): + changed_cm, changed_pvc = copy.deepcopy(cm), copy.deepcopy(pvc) + mutate(changed_cm, changed_pvc) + with self.assertRaises(ValueError): + check_dependencies(changed_cm, changed_pvc, sealed) + + +if __name__ == '__main__': + unittest.main() diff --git a/docs/evidence/2026-10-11-purpose-image-release/test_preflight_optimization.py b/docs/evidence/2026-10-11-purpose-image-release/test_preflight_optimization.py new file mode 100644 index 0000000..7a05138 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/test_preflight_optimization.py @@ -0,0 +1,37 @@ +import ast +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + +ROOT = Path(__file__).parent + + +class OptimizedInterpreterGate(unittest.TestCase): + def test_local_optimized_interpreter_refuses_before_transport_or_output(self): + with tempfile.TemporaryDirectory() as folder: + output = Path(folder) / 'new-receipt.json' + result = subprocess.run([sys.executable, '-O', str(ROOT / 'preflight.py'), + '--receipt-output', str(output)], capture_output=True, text=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn('optimized interpreter refused', result.stderr) + self.assertFalse(output.exists()) + + def test_remote_optimized_interpreter_refuses_before_candidate_or_commands(self): + tree = ast.parse((ROOT / 'preflight.py').read_text()) + remote = next(node.value.value for node in tree.body + if isinstance(node, ast.Assign) and isinstance(node.value, ast.Constant) + and any(isinstance(target, ast.Name) and target.id == 'program' + for target in node.targets)) + # Unresolved literals would fail immediately after this gate. Under -O + # the first refusal must be optimization, before any kubectl dispatch. + result = subprocess.run([sys.executable, '-O', '-'], input=remote, + capture_output=True, text=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn('optimized interpreter refused', result.stderr) + self.assertNotIn('NameError', result.stderr) + + +if __name__ == '__main__': + unittest.main() diff --git a/docs/evidence/2026-10-11-purpose-image-release/test_sqlite_readonly.py b/docs/evidence/2026-10-11-purpose-image-release/test_sqlite_readonly.py new file mode 100644 index 0000000..f649a93 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/test_sqlite_readonly.py @@ -0,0 +1,47 @@ +import hashlib +from pathlib import Path +import sqlite3 +import tempfile +import unittest +from sqlite_readonly import inspect_readonly + + +class PreOpenSchemaGate(unittest.TestCase): + def test_old_and_unknown_schemas_refuse_without_mutation(self): + with tempfile.TemporaryDirectory() as folder: + for version in (0, 1, 2, 3, 4, 6): + db = Path(folder) / (str(version) + '.sqlite') + with sqlite3.connect(db) as connection: + connection.execute('PRAGMA user_version=' + str(version)) + before = hashlib.sha256(db.read_bytes()).hexdigest() + with self.assertRaises(ValueError): + inspect_readonly(db) + self.assertEqual(hashlib.sha256(db.read_bytes()).hexdigest(), before) + with sqlite3.connect(db) as connection: + self.assertEqual(connection.execute('PRAGMA user_version').fetchone()[0], version) + + def test_schema5_frozen_snapshot_counts_and_integrity(self): + with tempfile.TemporaryDirectory() as folder: + db = Path(folder) / 'snapshot.sqlite' + with sqlite3.connect(db) as connection: + connection.executescript('PRAGMA user_version=5; CREATE TABLE lifecycle_records(x); CREATE TABLE lifecycle_events(x); CREATE TABLE lifecycle_pending(x); CREATE TABLE outbox(state); CREATE TABLE submissions(state); INSERT INTO lifecycle_records VALUES(1); INSERT INTO outbox VALUES("pending"); INSERT INTO submissions VALUES("confirmed");') + before = hashlib.sha256(db.read_bytes()).hexdigest() + proof = inspect_readonly(db) + self.assertEqual(proof['schema_version'], 5) + self.assertEqual(proof['lifecycle']['records'], 1) + self.assertEqual(proof['outbox'], {'pending': 1}) + self.assertEqual(proof['submissions'], {'confirmed': 1}) + self.assertEqual(proof['integrity'], 'ok') + self.assertFalse(proof['store_constructed']) + self.assertEqual(hashlib.sha256(db.read_bytes()).hexdigest(), before) + + def test_missing_database_is_not_created(self): + with tempfile.TemporaryDirectory() as folder: + missing = Path(folder) / 'missing.sqlite' + with self.assertRaises(ValueError): + inspect_readonly(missing) + self.assertFalse(missing.exists()) + + +if __name__ == '__main__': + unittest.main() diff --git a/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json b/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json new file mode 100644 index 0000000..a9e3b58 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/trivy-full.json @@ -0,0 +1,2391 @@ +{ + "SchemaVersion": 2, + "Trivy": { + "Version": "0.74.0" + }, + "ReportID": "01a1288d-8df1-73fb-9313-3642dd64ba72", + "CreatedAt": "2026-10-11T01:22:07.985264404Z", + "ArtifactID": "sha256:40f873b8d6345341e2f661a5038c092d186e2831dc60b61704a419a1f4f77ef6", + "ArtifactName": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "ArtifactType": "container_image", + "Metadata": { + "Size": 88258048, + "OS": { + "Family": "alpine", + "Name": "3.24.1" + }, + "ImageID": "sha256:f34de21379c4f50ea0361ca1d8296c8e72f989499ad288016b81204997ae4779", + "DiffIDs": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02", + "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + ], + "RepoDigests": [ + "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a" + ], + "Reference": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a", + "ImageConfig": { + "architecture": "amd64", + "created": "2026-10-11T01:21:04.787527697Z", + "docker_version": "27.5.1", + "history": [ + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-06-16T00:01:29.967161902Z", + "created_by": "CMD [\"/bin/sh\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV LANG=C.UTF-8", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "RUN /bin/sh -c set -eux; \tapk add --no-cache \t\tca-certificates \t\ttzdata \t; # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_VERSION=3.12.14", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:05:24.224544843Z", + "created_by": "ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-01T00:10:30.672225972Z", + "created_by": "RUN /bin/sh -c set -eux; \t\tapk add --no-cache --virtual .build-deps \t\tbluez-dev \t\tbzip2-dev \t\tdpkg-dev dpkg \t\tfindutils \t\tg++ \t\tgcc \t\tgdbm-dev \t\tgnupg \t\tlibc-dev \t\tlibffi-dev \t\tlibnsl-dev \t\tlibtirpc-dev \t\tlinux-headers \t\tmake \t\tncurses-dev \t\topenssl-dev \t\tpax-utils \t\treadline-dev \t\tsqlite-dev \t\ttar \t\ttcl-dev \t\ttk \t\ttk-dev \t\tutil-linux-dev \t\txz \t\txz-dev \t\tzlib-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' \u0026\u0026 echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"-DTHREAD_STACK_SIZE=0x100000\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tarch=\"$(apk --print-arch)\"; \tcase \"$arch\" in \t\tx86_64|aarch64) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer\"; \t\t\t;; \t\tx86) \t\t\t;; \t\t*) \t\t\tEXTRA_CFLAGS=\"${EXTRA_CFLAGS:-} -fno-omit-frame-pointer\"; \t\t\t;; \tesac; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \t\t| tr ',' '\\n' \t\t| sort -u \t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t\t| xargs -rt apk add --no-network --virtual .python-rundeps \t; \tapk del --no-network .build-deps; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \tpip3 --version # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-09-01T00:10:30.782726003Z", + "created_by": "CMD [\"python3\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-09-11T00:49:47.962156876+02:00", + "created_by": "RUN /bin/sh -c apk add --no-cache 'libuuid\u003e=2.42.3-r1' \u0026\u0026 addgroup -S -g 10001 informed \u0026\u0026 adduser -S -u 10001 -G informed -H informed # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:55.351944978+02:00", + "created_by": "COPY /opt/venv /opt/venv # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.462092072+02:00", + "created_by": "RUN /bin/sh -c rm -rf /usr/local/bin/pip* /usr/local/lib/python3.12/site-packages/pip* /usr/local/lib/python3.12/site-packages/setuptools* /usr/local/lib/python3.12/site-packages/pkg_resources /opt/venv/bin/pip* /opt/venv/lib/python3.12/site-packages/pip* /opt/venv/lib/python3.12/site-packages/setuptools* /opt/venv/lib/python3.12/site-packages/pkg_resources # buildkit", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "WORKDIR /app", + "comment": "buildkit.dockerfile.v0" + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "USER 10001:10001", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "EXPOSE [8080/tcp 8081/tcp]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-05T01:03:56.675216821+02:00", + "created_by": "ENTRYPOINT [\"informed-decision-container\"]", + "comment": "buildkit.dockerfile.v0", + "empty_layer": true + }, + { + "created": "2026-10-11T01:15:11.991443676Z", + "created_by": "/bin/sh -c #(nop) ARG SOURCE_REVISION", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.716126392Z", + "created_by": "/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168 org.opencontainers.image.base.digest=sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173 social.coulomb.source.policy.sha256=9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 social.coulomb.release.scope=INFD-WP-0009-T04/purpose-overlay-v1", + "empty_layer": true + }, + { + "created": "2026-10-11T01:21:04.787527697Z", + "created_by": "/bin/sh -c #(nop) COPY file:2be9cb36e7253e15733673359cda8caa22986b6888822a008c1b360d909994e0 in /opt/venv/lib/python3.12/site-packages/informed_decision/policy.py " + } + ], + "os": "linux", + "rootfs": { + "type": "layers", + "diff_ids": [ + "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c", + "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd", + "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366", + "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe", + "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1", + "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c", + "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59", + "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02", + "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + ] + }, + "config": { + "Entrypoint": [ + "informed-decision-container" + ], + "Env": [ + "PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=C.UTF-8", + "GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305", + "PYTHON_VERSION=3.12.14", + "PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a", + "PYTHONDONTWRITEBYTECODE=1", + "PYTHONUNBUFFERED=1" + ], + "Image": "sha256:90f1574f9eda35fa6cb972961beb27a7cb904c36560e381930b0e14065c23883", + "Labels": { + "org.opencontainers.image.base.digest": "sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173", + "org.opencontainers.image.revision": "3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168", + "social.coulomb.release.scope": "INFD-WP-0009-T04/purpose-overlay-v1", + "social.coulomb.source.policy.sha256": "9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62" + }, + "User": "10001:10001", + "WorkingDir": "/app", + "ExposedPorts": { + "8080/tcp": {}, + "8081/tcp": {} + } + } + }, + "Layers": [ + { + "Size": 8697856, + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + { + "Size": 1538048, + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + { + "Size": 47150592, + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + { + "Size": 5120, + "Digest": "sha256:ed62c91ccd94e36a928e96d704cfcf20861302590245cc12aa89a15a5d6be29b", + "DiffID": "sha256:4098ad033525263f92a8a9c51865596025d47018e078c0b1f7d9cd5663fc1ffe" + }, + { + "Size": 131584, + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + { + "Size": 30705664, + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + { + "Size": 12288, + "Digest": "sha256:16a3dba6b720d3059eab918cd3596f94145ac9cf4d456f925a21f0f72522863f", + "DiffID": "sha256:361430a1113969743b99e237b20f023d5497493bcf96fb91af99ac0a0dbc4a59" + }, + { + "Size": 1536, + "Digest": "sha256:e73dd464fbff5607cc62a1b2b66b0eefe737dfad4db8e7b58a48cda7c12d94d3", + "DiffID": "sha256:cfc5939674d67f60b4411c24dfcde5622b712eeb7376cd0941a2751da80a6b02" + }, + { + "Size": 15360, + "Digest": "sha256:cfee29c2f8119d2a39714ecbe5095a2dc1c986054f2e1fe0a6565163242417e3", + "DiffID": "sha256:21ff9188cb29ca95fe9be11355f70ab5586e8499e33b52a253d953fb3b75aea3" + } + ] + }, + "Results": [ + { + "Target": "forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a (alpine 3.24.1)", + "Class": "os-pkgs", + "Type": "alpine", + "Packages": [ + { + "ID": ".python-rundeps@20260901.001029", + "Name": ".python-rundeps", + "Identifier": { + "PURL": "pkg:apk/alpine/.python-rundeps@20260901.001029?arch=noarch\u0026distro=3.24.1", + "UID": "4e26c99fecac1e97" + }, + "Version": "20260901.001029", + "Arch": "noarch", + "DependsOn": [ + "gdbm@1.26-r0", + "libbz2@1.0.8-r6", + "libcrypto3@3.5.8-r0", + "libffi@3.5.2-r1", + "libncursesw@6.6_p20260516-r0", + "libnsl@2.0.1-r2", + "libpanelw@6.6_p20260516-r0", + "libssl3@3.5.8-r0", + "libtirpc@1.3.5-r1", + "libuuid@2.42.3-r1", + "musl@1.2.6-r2", + "readline@8.3.3-r1", + "sqlite-libs@3.53.4-r0", + "xz-libs@5.8.3-r0", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:51d0c1e7d88a414345799f0309185c625013ef32", + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout@3.7.2-r1", + "Name": "alpine-baselayout", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "1b9c543300f8073e" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-baselayout-data@3.7.2-r1", + "busybox-binsh@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:f0fcfdc2f4da058af6473bc45c4eab62916225b2", + "InstalledFiles": [ + "etc/motd", + "etc/crontabs/root", + "etc/modprobe.d/aliases.conf", + "etc/modprobe.d/blacklist.conf", + "etc/modprobe.d/i386.conf", + "etc/profile.d/20locale.sh", + "etc/profile.d/README", + "etc/profile.d/color_prompt.sh.disabled", + "usr/lib/sysctl.d/00-alpine.conf", + "var/lock", + "var/run", + "var/spool/mail", + "var/spool/cron/crontabs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-baselayout-data@3.7.2-r1", + "Name": "alpine-baselayout-data", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-baselayout-data@3.7.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "fcc3cd90122d8aa7" + }, + "Version": "3.7.2-r1", + "Arch": "x86_64", + "SrcName": "alpine-baselayout", + "SrcVersion": "3.7.2-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c6f9bded17d844b6f1b0bb5766d2c35c0d5c8508", + "InstalledFiles": [ + "etc/fstab", + "etc/group", + "etc/hostname", + "etc/hosts", + "etc/inittab", + "etc/modules", + "etc/mtab", + "etc/nsswitch.conf", + "etc/passwd", + "etc/profile", + "etc/protocols", + "etc/services", + "etc/shadow", + "etc/shells", + "etc/sysctl.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-keys@2.6-r0", + "Name": "alpine-keys", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-keys@2.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb1f6c8fa74713e0" + }, + "Version": "2.6-r0", + "Arch": "x86_64", + "SrcName": "alpine-keys", + "SrcVersion": "2.6-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:d8d6b80e53c059a77e4915da78ba964f3ffea240", + "InstalledFiles": [ + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub", + "usr/share/apk/keys/aarch64/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armhf/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub", + "usr/share/apk/keys/armv7/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub", + "usr/share/apk/keys/loongarch64/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub", + "usr/share/apk/keys/mips64/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub", + "usr/share/apk/keys/ppc64le/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub", + "usr/share/apk/keys/riscv64/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub", + "usr/share/apk/keys/s390x/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", + "usr/share/apk/keys/x86/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub", + "usr/share/apk/keys/x86_64/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "alpine-release@3.24.1-r0", + "Name": "alpine-release", + "Identifier": { + "PURL": "pkg:apk/alpine/alpine-release@3.24.1-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "6cfad6f36e1f31aa" + }, + "Version": "3.24.1-r0", + "Arch": "x86_64", + "SrcName": "alpine-base", + "SrcVersion": "3.24.1-r0", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "alpine-keys@2.6-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:bc6912a25cdc7733e0035ed509eceaa4026946e3", + "InstalledFiles": [ + "etc/alpine-release", + "etc/issue", + "etc/os-release", + "etc/secfixes.d/alpine", + "usr/lib/os-release" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "apk-tools@3.0.6-r0", + "Name": "apk-tools", + "Identifier": { + "PURL": "pkg:apk/alpine/apk-tools@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "cb2633c883b17a04" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "ca-certificates-bundle@20260611-r0", + "libapk@3.0.6-r0", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:043333589798a1f52e09ae63f026c6c8fa676d34", + "InstalledFiles": [ + "sbin/apk" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox@1.37.0-r31", + "Name": "busybox", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "771020c43c8440bf" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:b5405ebc02f7dd8be95b6265c54b243d5456ab8f", + "InstalledFiles": [ + "bin/busybox", + "etc/securetty", + "etc/busybox-paths.d/busybox", + "etc/logrotate.d/acpid", + "etc/network/if-up.d/dad", + "etc/udhcpc/udhcpc.conf", + "usr/share/udhcpc/default.script" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "busybox-binsh@1.37.0-r31", + "Name": "busybox-binsh", + "Identifier": { + "PURL": "pkg:apk/alpine/busybox-binsh@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "1ec8a3d5d2b63297" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "busybox@1.37.0-r31" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:5cbd14acc6f1804c5bac6c77dc2c492f010b0fc7", + "InstalledFiles": [ + "bin/sh" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates@20260611-r0", + "Name": "ca-certificates", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "2a3c316ee83c6198" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "busybox-binsh@1.37.0-r31", + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:8f2a04abeb54b331e2970a0a0dffb7bd6bdde567", + "InstalledFiles": [ + "etc/ca-certificates.conf", + "etc/apk/protected_paths.d/ca-certificates.list", + "etc/ca-certificates/update.d/certhash", + "usr/bin/c_rehash", + "usr/sbin/update-ca-certificates", + "usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt", + "usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.crt", + "usr/share/ca-certificates/mozilla/ANF_Secure_Server_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_ECC_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Atos_TrustedRoot_Root_CA_RSA_TLS_2021.crt", + "usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA1.crt", + "usr/share/ca-certificates/mozilla/BJCA_Global_Root_CA2.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt", + "usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt", + "usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt", + "usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_E1.crt", + "usr/share/ca-certificates/mozilla/Certainly_Root_R1.crt", + "usr/share/ca-certificates/mozilla/Certigna_Root_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_EC-384_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt", + "usr/share/ca-certificates/mozilla/Certum_Trusted_Root_CA.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_BR_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_1_2020.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_EV_Root_CA_2_2023.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt", + "usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_ECC_P384_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_TLS_RSA4096_Root_G5.crt", + "usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt", + "usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R1.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R3.crt", + "usr/share/ca-certificates/mozilla/GTS_Root_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_E46.crt", + "usr/share/ca-certificates/mozilla/GlobalSign_Root_R46.crt", + "usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_ECC_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/HARICA_TLS_RSA_Root_CA_2021.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt", + "usr/share/ca-certificates/mozilla/HiPKI_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_3.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt", + "usr/share/ca-certificates/mozilla/ISRG_Root_X2.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt", + "usr/share/ca-certificates/mozilla/Izenpe.com.crt", + "usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt", + "usr/share/ca-certificates/mozilla/Microsoft_ECC_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/Microsoft_RSA_Root_Certificate_Authority_2017.crt", + "usr/share/ca-certificates/mozilla/NAVER_Global_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_ECC_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_Server_Root_RSA_G1.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt", + "usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt", + "usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt", + "usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_ECC_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SSL.com_TLS_RSA_Root_CA_2022.crt", + "usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_E46.crt", + "usr/share/ca-certificates/mozilla/Sectigo_Public_Server_Authentication_Root_R46.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA14.crt", + "usr/share/ca-certificates/mozilla/SecureSign_Root_CA15.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_ECC_RootCA1.crt", + "usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt", + "usr/share/ca-certificates/mozilla/SwissSign_RSA_TLS_Root_CA_2022_-_1.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt", + "usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt", + "usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt", + "usr/share/ca-certificates/mozilla/TWCA_CYBER_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_ECC_Root_2020.crt", + "usr/share/ca-certificates/mozilla/Telekom_Security_TLS_RSA_Root_2023.crt", + "usr/share/ca-certificates/mozilla/Telia_Root_CA_v2.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G3.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_Global_Root_CA_G4.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TrustAsia_TLS_RSA_Root_CA.crt", + "usr/share/ca-certificates/mozilla/TunTrust_Root_CA.crt", + "usr/share/ca-certificates/mozilla/UCA_Extended_Validation_Root.crt", + "usr/share/ca-certificates/mozilla/UCA_Global_G2_Root.crt", + "usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/certSIGN_Root_CA_G2.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_Root_CA_2017.crt", + "usr/share/ca-certificates/mozilla/e-Szigno_TLS_Root_CA_2023.crt", + "usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_C3.crt", + "usr/share/ca-certificates/mozilla/emSign_ECC_Root_CA_-_G3.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_C1.crt", + "usr/share/ca-certificates/mozilla/emSign_Root_CA_-_G1.crt", + "usr/share/ca-certificates/mozilla/vTrus_ECC_Root_CA.crt", + "usr/share/ca-certificates/mozilla/vTrus_Root_CA.crt" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ca-certificates-bundle@20260611-r0", + "Name": "ca-certificates-bundle", + "Identifier": { + "PURL": "pkg:apk/alpine/ca-certificates-bundle@20260611-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "20337c2ea28bef28" + }, + "Version": "20260611-r0", + "Arch": "x86_64", + "SrcName": "ca-certificates", + "SrcVersion": "20260611-r0", + "Licenses": [ + "MPL-2.0", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c9534a03750bdfae341f10969016090fc11febbd", + "InstalledFiles": [ + "etc/ssl/cert.pem", + "etc/ssl/certs/ca-certificates.crt", + "etc/ssl1.1/cert.pem", + "etc/ssl1.1/certs" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "gdbm@1.26-r0", + "Name": "gdbm", + "Identifier": { + "PURL": "pkg:apk/alpine/gdbm@1.26-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "5eb1a3f86262ca77" + }, + "Version": "1.26-r0", + "Arch": "x86_64", + "SrcName": "gdbm", + "SrcVersion": "1.26-r0", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:619493d8124fe49a8ee1d8f7a1372cf7e3977337", + "InstalledFiles": [ + "usr/lib/libgdbm.so.6", + "usr/lib/libgdbm.so.6.0.0", + "usr/lib/libgdbm_compat.so.4", + "usr/lib/libgdbm_compat.so.4.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "keyutils-libs@1.6.3-r4", + "Name": "keyutils-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/keyutils-libs@1.6.3-r4?arch=x86_64\u0026distro=3.24.1", + "UID": "a1a29120eb342032" + }, + "Version": "1.6.3-r4", + "Arch": "x86_64", + "SrcName": "keyutils", + "SrcVersion": "1.6.3-r4", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:b7331c96f077fc3522ee4361a441d1097204cd90", + "InstalledFiles": [ + "usr/lib/libkeyutils.so.1", + "usr/lib/libkeyutils.so.1.10" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-conf@1.0-r2", + "Name": "krb5-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-conf@1.0-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "e7cf94ba8b6dbc33" + }, + "Version": "1.0-r2", + "Arch": "x86_64", + "SrcName": "krb5-conf", + "SrcVersion": "1.0-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:40a11e0690a59e110367b62a80661024e9942a2d", + "InstalledFiles": [ + "etc/krb5.conf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "krb5-libs@1.22.2-r1", + "Name": "krb5-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/krb5-libs@1.22.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "958f8b4a4f087dac" + }, + "Version": "1.22.2-r1", + "Arch": "x86_64", + "SrcName": "krb5", + "SrcVersion": "1.22.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "keyutils-libs@1.6.3-r4", + "krb5-conf@1.0-r2", + "libcom_err@1.47.4-r0", + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "libverto@0.3.2-r2", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:ef02346e21b817ff379e4601e5b1fc9760e5e31a", + "InstalledFiles": [ + "usr/lib/libgssapi_krb5.so.2", + "usr/lib/libgssapi_krb5.so.2.2", + "usr/lib/libgssrpc.so.4", + "usr/lib/libgssrpc.so.4.2", + "usr/lib/libk5crypto.so.3", + "usr/lib/libk5crypto.so.3.1", + "usr/lib/libkadm5clnt_mit.so.12", + "usr/lib/libkadm5clnt_mit.so.12.0", + "usr/lib/libkadm5srv_mit.so.12", + "usr/lib/libkadm5srv_mit.so.12.0", + "usr/lib/libkdb5.so.10", + "usr/lib/libkdb5.so.10.0", + "usr/lib/libkrad.so.0", + "usr/lib/libkrad.so.0.0", + "usr/lib/libkrb5.so.3", + "usr/lib/libkrb5.so.3.3", + "usr/lib/libkrb5support.so.0", + "usr/lib/libkrb5support.so.0.1", + "usr/lib/krb5/plugins/kdb/db2.so", + "usr/lib/krb5/plugins/preauth/otp.so", + "usr/lib/krb5/plugins/preauth/spake.so", + "usr/lib/krb5/plugins/preauth/test.so", + "usr/lib/krb5/plugins/tls/k5tls.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libapk@3.0.6-r0", + "Name": "libapk", + "Identifier": { + "PURL": "pkg:apk/alpine/libapk@3.0.6-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "a35b8b9b3219513a" + }, + "Version": "3.0.6-r0", + "Arch": "x86_64", + "SrcName": "apk-tools", + "SrcVersion": "3.0.6-r0", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2", + "zlib@1.3.2-r0" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:523a8f58104589f74f743d501c81bf6517155378", + "InstalledFiles": [ + "usr/lib/libapk.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libbz2@1.0.8-r6", + "Name": "libbz2", + "Identifier": { + "PURL": "pkg:apk/alpine/libbz2@1.0.8-r6?arch=x86_64\u0026distro=3.24.1", + "UID": "48e17539404e2d56" + }, + "Version": "1.0.8-r6", + "Arch": "x86_64", + "SrcName": "bzip2", + "SrcVersion": "1.0.8-r6", + "Licenses": [ + "bzip-2-1.0.6" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:08566ba5c7af97c25474be8b24e8b48f0116b67d", + "InstalledFiles": [ + "usr/lib/libbz2.so.1", + "usr/lib/libbz2.so.1.0.8" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcom_err@1.47.4-r0", + "Name": "libcom_err", + "Identifier": { + "PURL": "pkg:apk/alpine/libcom_err@1.47.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "3fc35a3f66d192af" + }, + "Version": "1.47.4-r0", + "Arch": "x86_64", + "SrcName": "e2fsprogs", + "SrcVersion": "1.47.4-r0", + "Licenses": [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later", + "BSD-3-Clause", + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4b9fb5899ea0b1c0cfbb2a2c5952704437d4ecef", + "InstalledFiles": [ + "usr/lib/libcom_err.so.2", + "usr/lib/libcom_err.so.2.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libcrypto3@3.5.8-r0", + "Name": "libcrypto3", + "Identifier": { + "PURL": "pkg:apk/alpine/libcrypto3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "4299bba2ba9c96aa" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:1b3b9fc0c136f4936932bcb2ec21499f0ae5dfd3", + "InstalledFiles": [ + "etc/ssl/ct_log_list.cnf", + "etc/ssl/ct_log_list.cnf.dist", + "etc/ssl/openssl.cnf", + "etc/ssl/openssl.cnf.dist", + "usr/lib/libcrypto.so.3", + "usr/lib/engines-3/afalg.so", + "usr/lib/engines-3/capi.so", + "usr/lib/engines-3/loader_attic.so", + "usr/lib/engines-3/padlock.so", + "usr/lib/ossl-modules/legacy.so" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libffi@3.5.2-r1", + "Name": "libffi", + "Identifier": { + "PURL": "pkg:apk/alpine/libffi@3.5.2-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "d3eaa921287b1ccd" + }, + "Version": "3.5.2-r1", + "Arch": "x86_64", + "SrcName": "libffi", + "SrcVersion": "3.5.2-r1", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:2f7b261f7fcecc4eebd8b330e7f6fb80713bfe3a", + "InstalledFiles": [ + "usr/lib/libffi.so.8", + "usr/lib/libffi.so.8.2.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libintl@1.0-r0", + "Name": "libintl", + "Identifier": { + "PURL": "pkg:apk/alpine/libintl@1.0-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "25c18808d8fc87e0" + }, + "Version": "1.0-r0", + "Arch": "x86_64", + "SrcName": "gettext", + "SrcVersion": "1.0-r0", + "Licenses": [ + "LGPL-2.1-or-later" + ], + "Maintainer": "Carlo Landmeter \u003cclandmeter@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:282d6642ccac87237e43a864159d73cf5abe7550", + "InstalledFiles": [ + "usr/lib/libintl.so.8", + "usr/lib/libintl.so.8.4.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libncursesw@6.6_p20260516-r0", + "Name": "libncursesw", + "Identifier": { + "PURL": "pkg:apk/alpine/libncursesw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e8939f45e2191bcc" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9f318e6e324d6827274829194cf6ac6afbaded12", + "InstalledFiles": [ + "usr/lib/libncursesw.so.6", + "usr/lib/libncursesw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libnsl@2.0.1-r2", + "Name": "libnsl", + "Identifier": { + "PURL": "pkg:apk/alpine/libnsl@2.0.1-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "3d893c60d41da67b" + }, + "Version": "2.0.1-r2", + "Arch": "x86_64", + "SrcName": "libnsl", + "SrcVersion": "2.0.1-r2", + "Licenses": [ + "LGPL-2.0-or-later" + ], + "DependsOn": [ + "libintl@1.0-r0", + "libtirpc@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5194adbf26560b52be318481a7af294ab05fd795", + "InstalledFiles": [ + "usr/lib/libnsl.so.3", + "usr/lib/libnsl.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libpanelw@6.6_p20260516-r0", + "Name": "libpanelw", + "Identifier": { + "PURL": "pkg:apk/alpine/libpanelw@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "ef1ad9bb256b373" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2", + "ncurses-terminfo-base@6.6_p20260516-r0" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:149bdc434232ed11fc5bb975ba519a07154a6f56", + "InstalledFiles": [ + "usr/lib/libpanelw.so.6", + "usr/lib/libpanelw.so.6.6" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libssl3@3.5.8-r0", + "Name": "libssl3", + "Identifier": { + "PURL": "pkg:apk/alpine/libssl3@3.5.8-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "f290ab59b88b1c4a" + }, + "Version": "3.5.8-r0", + "Arch": "x86_64", + "SrcName": "openssl", + "SrcVersion": "3.5.8-r0", + "Licenses": [ + "Apache-2.0" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:5f9b1e55d821953d2e2b1db322dad70a3b5041ea", + "InstalledFiles": [ + "usr/lib/libssl.so.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc@1.3.5-r1", + "Name": "libtirpc", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "471c8d955ca03be5" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "krb5-libs@1.22.2-r1", + "libtirpc-conf@1.3.5-r1", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:c32865bd86a8b8829d152279cabbc5ac6d430eb2", + "InstalledFiles": [ + "usr/lib/libtirpc.so.3", + "usr/lib/libtirpc.so.3.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libtirpc-conf@1.3.5-r1", + "Name": "libtirpc-conf", + "Identifier": { + "PURL": "pkg:apk/alpine/libtirpc-conf@1.3.5-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "3437392c14aad33f" + }, + "Version": "1.3.5-r1", + "Arch": "x86_64", + "SrcName": "libtirpc", + "SrcVersion": "1.3.5-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:0c17d9988dc986c90e22f79778df047eca9973ff", + "InstalledFiles": [ + "etc/bindresvport.blacklist", + "etc/netconfig" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libuuid@2.42.3-r1", + "Name": "libuuid", + "Identifier": { + "PURL": "pkg:apk/alpine/libuuid@2.42.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "c444e9cdd1bdda40" + }, + "Version": "2.42.3-r1", + "Arch": "x86_64", + "SrcName": "util-linux", + "SrcVersion": "2.42.3-r1", + "Licenses": [ + "BSD-3-Clause" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:f0fe3e08ab046c0c5e29d34ee73bc8c7e03398eb891e4498e0a67088a5ea3e86", + "DiffID": "sha256:f9b4a8a412a0c07a489e46fb5db41f9d0dc84d4ec38a4e2c6ab9531f44e0d9f1" + }, + "Digest": "sha1:8f041ef637ad75f381cc0c034f2afbbb0303264e", + "InstalledFiles": [ + "usr/lib/libuuid.so.1", + "usr/lib/libuuid.so.1.3.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "libverto@0.3.2-r2", + "Name": "libverto", + "Identifier": { + "PURL": "pkg:apk/alpine/libverto@0.3.2-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "9df4321a283a6cf6" + }, + "Version": "0.3.2-r2", + "Arch": "x86_64", + "SrcName": "libverto", + "SrcVersion": "0.3.2-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Francesco Colista \u003cfcolista@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:73233059338142e4ac6d8fb8bb0074e93da75dc1", + "InstalledFiles": [ + "usr/lib/libverto.so.1", + "usr/lib/libverto.so.1.0.0" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl@1.2.6-r2", + "Name": "musl", + "Identifier": { + "PURL": "pkg:apk/alpine/musl@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "1f8cb44befe503d4" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:0f7e5827e4e1a73631beda27b78431a8ba240e05", + "InstalledFiles": [ + "lib/ld-musl-x86_64.so.1", + "lib/libc.musl-x86_64.so.1" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "musl-utils@1.2.6-r2", + "Name": "musl-utils", + "Identifier": { + "PURL": "pkg:apk/alpine/musl-utils@1.2.6-r2?arch=x86_64\u0026distro=3.24.1", + "UID": "4497482ec1d943e1" + }, + "Version": "1.2.6-r2", + "Arch": "x86_64", + "SrcName": "musl", + "SrcVersion": "1.2.6-r2", + "Licenses": [ + "MIT", + "BSD-2-Clause", + "GPL-2.0-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2", + "scanelf@1.3.9-r1" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:75ada3c48d63ec5d87c42fdf934a3fdd11298dc5", + "InstalledFiles": [ + "sbin/ldconfig", + "usr/bin/getconf", + "usr/bin/getent", + "usr/bin/iconv", + "usr/bin/ldd" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ncurses-terminfo-base@6.6_p20260516-r0", + "Name": "ncurses-terminfo-base", + "Identifier": { + "PURL": "pkg:apk/alpine/ncurses-terminfo-base@6.6_p20260516-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e7fac5c6a6e9ae8" + }, + "Version": "6.6_p20260516-r0", + "Arch": "x86_64", + "SrcName": "ncurses", + "SrcVersion": "6.6_p20260516-r0", + "Licenses": [ + "X-11" + ], + "Maintainer": "Milan P. Stanić \u003cmps@arvanta.net\u003e", + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:9d551d828e9c8ee52c5801c1d6046828ebf15752", + "InstalledFiles": [ + "etc/terminfo/a/alacritty", + "etc/terminfo/a/ansi", + "etc/terminfo/d/dumb", + "etc/terminfo/g/gnome", + "etc/terminfo/g/gnome-256color", + "etc/terminfo/k/konsole", + "etc/terminfo/k/konsole-256color", + "etc/terminfo/k/konsole-linux", + "etc/terminfo/l/linux", + "etc/terminfo/p/putty", + "etc/terminfo/p/putty-256color", + "etc/terminfo/r/rxvt", + "etc/terminfo/r/rxvt-256color", + "etc/terminfo/s/screen", + "etc/terminfo/s/screen-256color", + "etc/terminfo/s/st-0.6", + "etc/terminfo/s/st-0.7", + "etc/terminfo/s/st-0.8", + "etc/terminfo/s/st-0.8.5", + "etc/terminfo/s/st-16color", + "etc/terminfo/s/st-256color", + "etc/terminfo/s/st-direct", + "etc/terminfo/s/sun", + "etc/terminfo/t/terminator", + "etc/terminfo/t/terminology", + "etc/terminfo/t/terminology-0.6.1", + "etc/terminfo/t/terminology-1.0.0", + "etc/terminfo/t/terminology-1.8.1", + "etc/terminfo/t/tmux", + "etc/terminfo/t/tmux-256color", + "etc/terminfo/v/vt100", + "etc/terminfo/v/vt102", + "etc/terminfo/v/vt200", + "etc/terminfo/v/vt220", + "etc/terminfo/v/vt52", + "etc/terminfo/v/vte", + "etc/terminfo/v/vte-256color", + "etc/terminfo/x/xterm", + "etc/terminfo/x/xterm-256color", + "etc/terminfo/x/xterm-color", + "etc/terminfo/x/xterm-xfree86" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "readline@8.3.3-r1", + "Name": "readline", + "Identifier": { + "PURL": "pkg:apk/alpine/readline@8.3.3-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "f50058781c93e1f2" + }, + "Version": "8.3.3-r1", + "Arch": "x86_64", + "SrcName": "readline", + "SrcVersion": "8.3.3-r1", + "Licenses": [ + "GPL-3.0-or-later" + ], + "Maintainer": "qaqland \u003cqaq@qaq.land\u003e", + "DependsOn": [ + "libncursesw@6.6_p20260516-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:945b16e378bc00e44d89d4de8124bba7647fdf4d", + "InstalledFiles": [ + "etc/inputrc", + "usr/lib/libreadline.so.8", + "usr/lib/libreadline.so.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "scanelf@1.3.9-r1", + "Name": "scanelf", + "Identifier": { + "PURL": "pkg:apk/alpine/scanelf@1.3.9-r1?arch=x86_64\u0026distro=3.24.1", + "UID": "936394657a1626fb" + }, + "Version": "1.3.9-r1", + "Arch": "x86_64", + "SrcName": "pax-utils", + "SrcVersion": "1.3.9-r1", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:013f903d0ba219673aebbdd04f74bb5ed82b01f0", + "InstalledFiles": [ + "usr/bin/scanelf" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "sqlite-libs@3.53.4-r0", + "Name": "sqlite-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/sqlite-libs@3.53.4-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "8b10aee2ccc192de" + }, + "Version": "3.53.4-r0", + "Arch": "x86_64", + "SrcName": "sqlite", + "SrcVersion": "3.53.4-r0", + "Licenses": [ + "blessing" + ], + "Maintainer": "Jingyun Hua \u003chuajingyun@loongson.cn\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:f7630ceb37c232b6609861aeab6cdb9cd120e6fa", + "InstalledFiles": [ + "usr/lib/libsqlite3.so.0", + "usr/lib/libsqlite3.so.3.53.4" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "ssl_client@1.37.0-r31", + "Name": "ssl_client", + "Identifier": { + "PURL": "pkg:apk/alpine/ssl_client@1.37.0-r31?arch=x86_64\u0026distro=3.24.1", + "UID": "d42e31f15a4ce47a" + }, + "Version": "1.37.0-r31", + "Arch": "x86_64", + "SrcName": "busybox", + "SrcVersion": "1.37.0-r31", + "Licenses": [ + "GPL-2.0-only" + ], + "Maintainer": "Sören Tempel \u003csoeren+alpine@soeren-tempel.net\u003e", + "DependsOn": [ + "libcrypto3@3.5.8-r0", + "libssl3@3.5.8-r0", + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:c220f4a5125a313af733e98def94132bb1e9d40d", + "InstalledFiles": [ + "usr/bin/ssl_client" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "tzdata@2026c-r0", + "Name": "tzdata", + "Identifier": { + "PURL": "pkg:apk/alpine/tzdata@2026c-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "52c6b50eff629f9d" + }, + "Version": "2026c-r0", + "Arch": "x86_64", + "SrcName": "tzdata", + "SrcVersion": "2026c-r0", + "Licenses": [ + "Public-Domain" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "Layer": { + "Digest": "sha256:47393b668ce535d06e8967917d424c177e2ecccae83856d48b2e99164f8cc6cb", + "DiffID": "sha256:3ca4be2c6e9ac0223715355253725381000486c2b45bfcb22cf571b6a85a12dd" + }, + "Digest": "sha1:61f7544ecd8dd63eac23fe3e645702fda92ef02a", + "InstalledFiles": [ + "usr/share/zoneinfo/CET", + "usr/share/zoneinfo/CST6CDT", + "usr/share/zoneinfo/Cuba", + "usr/share/zoneinfo/EET", + "usr/share/zoneinfo/EST", + "usr/share/zoneinfo/EST5EDT", + "usr/share/zoneinfo/Egypt", + "usr/share/zoneinfo/Eire", + "usr/share/zoneinfo/Factory", + "usr/share/zoneinfo/GB", + "usr/share/zoneinfo/GB-Eire", + "usr/share/zoneinfo/GMT", + "usr/share/zoneinfo/GMT+0", + "usr/share/zoneinfo/GMT-0", + "usr/share/zoneinfo/GMT0", + "usr/share/zoneinfo/Greenwich", + "usr/share/zoneinfo/HST", + "usr/share/zoneinfo/Hongkong", + "usr/share/zoneinfo/Iceland", + "usr/share/zoneinfo/Iran", + "usr/share/zoneinfo/Israel", + "usr/share/zoneinfo/Jamaica", + "usr/share/zoneinfo/Japan", + "usr/share/zoneinfo/Kwajalein", + "usr/share/zoneinfo/Libya", + "usr/share/zoneinfo/MET", + "usr/share/zoneinfo/MST", + "usr/share/zoneinfo/MST7MDT", + "usr/share/zoneinfo/NZ", + "usr/share/zoneinfo/NZ-CHAT", + "usr/share/zoneinfo/Navajo", + "usr/share/zoneinfo/PRC", + "usr/share/zoneinfo/PST8PDT", + "usr/share/zoneinfo/Poland", + "usr/share/zoneinfo/Portugal", + "usr/share/zoneinfo/ROC", + "usr/share/zoneinfo/ROK", + "usr/share/zoneinfo/Singapore", + "usr/share/zoneinfo/Turkey", + "usr/share/zoneinfo/UCT", + "usr/share/zoneinfo/UTC", + "usr/share/zoneinfo/Universal", + "usr/share/zoneinfo/W-SU", + "usr/share/zoneinfo/WET", + "usr/share/zoneinfo/Zulu", + "usr/share/zoneinfo/iso3166.tab", + "usr/share/zoneinfo/leap-seconds.list", + "usr/share/zoneinfo/posixrules", + "usr/share/zoneinfo/zone.tab", + "usr/share/zoneinfo/zone1970.tab", + "usr/share/zoneinfo/Africa/Abidjan", + "usr/share/zoneinfo/Africa/Accra", + "usr/share/zoneinfo/Africa/Addis_Ababa", + "usr/share/zoneinfo/Africa/Algiers", + "usr/share/zoneinfo/Africa/Asmara", + "usr/share/zoneinfo/Africa/Asmera", + "usr/share/zoneinfo/Africa/Bamako", + "usr/share/zoneinfo/Africa/Bangui", + "usr/share/zoneinfo/Africa/Banjul", + "usr/share/zoneinfo/Africa/Bissau", + "usr/share/zoneinfo/Africa/Blantyre", + "usr/share/zoneinfo/Africa/Brazzaville", + "usr/share/zoneinfo/Africa/Bujumbura", + "usr/share/zoneinfo/Africa/Cairo", + "usr/share/zoneinfo/Africa/Casablanca", + "usr/share/zoneinfo/Africa/Ceuta", + "usr/share/zoneinfo/Africa/Conakry", + "usr/share/zoneinfo/Africa/Dakar", + "usr/share/zoneinfo/Africa/Dar_es_Salaam", + "usr/share/zoneinfo/Africa/Djibouti", + "usr/share/zoneinfo/Africa/Douala", + "usr/share/zoneinfo/Africa/El_Aaiun", + "usr/share/zoneinfo/Africa/Freetown", + "usr/share/zoneinfo/Africa/Gaborone", + "usr/share/zoneinfo/Africa/Harare", + "usr/share/zoneinfo/Africa/Johannesburg", + "usr/share/zoneinfo/Africa/Juba", + "usr/share/zoneinfo/Africa/Kampala", + "usr/share/zoneinfo/Africa/Khartoum", + "usr/share/zoneinfo/Africa/Kigali", + "usr/share/zoneinfo/Africa/Kinshasa", + "usr/share/zoneinfo/Africa/Lagos", + "usr/share/zoneinfo/Africa/Libreville", + "usr/share/zoneinfo/Africa/Lome", + "usr/share/zoneinfo/Africa/Luanda", + "usr/share/zoneinfo/Africa/Lubumbashi", + "usr/share/zoneinfo/Africa/Lusaka", + "usr/share/zoneinfo/Africa/Malabo", + "usr/share/zoneinfo/Africa/Maputo", + "usr/share/zoneinfo/Africa/Maseru", + "usr/share/zoneinfo/Africa/Mbabane", + "usr/share/zoneinfo/Africa/Mogadishu", + "usr/share/zoneinfo/Africa/Monrovia", + "usr/share/zoneinfo/Africa/Nairobi", + "usr/share/zoneinfo/Africa/Ndjamena", + "usr/share/zoneinfo/Africa/Niamey", + "usr/share/zoneinfo/Africa/Nouakchott", + "usr/share/zoneinfo/Africa/Ouagadougou", + "usr/share/zoneinfo/Africa/Porto-Novo", + "usr/share/zoneinfo/Africa/Sao_Tome", + "usr/share/zoneinfo/Africa/Timbuktu", + "usr/share/zoneinfo/Africa/Tripoli", + "usr/share/zoneinfo/Africa/Tunis", + "usr/share/zoneinfo/Africa/Windhoek", + "usr/share/zoneinfo/America/Adak", + "usr/share/zoneinfo/America/Anchorage", + "usr/share/zoneinfo/America/Anguilla", + "usr/share/zoneinfo/America/Antigua", + "usr/share/zoneinfo/America/Araguaina", + "usr/share/zoneinfo/America/Aruba", + "usr/share/zoneinfo/America/Asuncion", + "usr/share/zoneinfo/America/Atikokan", + "usr/share/zoneinfo/America/Atka", + "usr/share/zoneinfo/America/Bahia", + "usr/share/zoneinfo/America/Bahia_Banderas", + "usr/share/zoneinfo/America/Barbados", + "usr/share/zoneinfo/America/Belem", + "usr/share/zoneinfo/America/Belize", + "usr/share/zoneinfo/America/Blanc-Sablon", + "usr/share/zoneinfo/America/Boa_Vista", + "usr/share/zoneinfo/America/Bogota", + "usr/share/zoneinfo/America/Boise", + "usr/share/zoneinfo/America/Buenos_Aires", + "usr/share/zoneinfo/America/Cambridge_Bay", + "usr/share/zoneinfo/America/Campo_Grande", + "usr/share/zoneinfo/America/Cancun", + "usr/share/zoneinfo/America/Caracas", + "usr/share/zoneinfo/America/Catamarca", + "usr/share/zoneinfo/America/Cayenne", + "usr/share/zoneinfo/America/Cayman", + "usr/share/zoneinfo/America/Chicago", + "usr/share/zoneinfo/America/Chihuahua", + "usr/share/zoneinfo/America/Ciudad_Juarez", + "usr/share/zoneinfo/America/Coral_Harbour", + "usr/share/zoneinfo/America/Cordoba", + "usr/share/zoneinfo/America/Costa_Rica", + "usr/share/zoneinfo/America/Coyhaique", + "usr/share/zoneinfo/America/Creston", + "usr/share/zoneinfo/America/Cuiaba", + "usr/share/zoneinfo/America/Curacao", + "usr/share/zoneinfo/America/Danmarkshavn", + "usr/share/zoneinfo/America/Dawson", + "usr/share/zoneinfo/America/Dawson_Creek", + "usr/share/zoneinfo/America/Denver", + "usr/share/zoneinfo/America/Detroit", + "usr/share/zoneinfo/America/Dominica", + "usr/share/zoneinfo/America/Edmonton", + "usr/share/zoneinfo/America/Eirunepe", + "usr/share/zoneinfo/America/El_Salvador", + "usr/share/zoneinfo/America/Ensenada", + "usr/share/zoneinfo/America/Fort_Nelson", + "usr/share/zoneinfo/America/Fort_Wayne", + "usr/share/zoneinfo/America/Fortaleza", + "usr/share/zoneinfo/America/Glace_Bay", + "usr/share/zoneinfo/America/Godthab", + "usr/share/zoneinfo/America/Goose_Bay", + "usr/share/zoneinfo/America/Grand_Turk", + "usr/share/zoneinfo/America/Grenada", + "usr/share/zoneinfo/America/Guadeloupe", + "usr/share/zoneinfo/America/Guatemala", + "usr/share/zoneinfo/America/Guayaquil", + "usr/share/zoneinfo/America/Guyana", + "usr/share/zoneinfo/America/Halifax", + "usr/share/zoneinfo/America/Havana", + "usr/share/zoneinfo/America/Hermosillo", + "usr/share/zoneinfo/America/Indianapolis", + "usr/share/zoneinfo/America/Inuvik", + "usr/share/zoneinfo/America/Iqaluit", + "usr/share/zoneinfo/America/Jamaica", + "usr/share/zoneinfo/America/Jujuy", + "usr/share/zoneinfo/America/Juneau", + "usr/share/zoneinfo/America/Knox_IN", + "usr/share/zoneinfo/America/Kralendijk", + "usr/share/zoneinfo/America/La_Paz", + "usr/share/zoneinfo/America/Lima", + "usr/share/zoneinfo/America/Los_Angeles", + "usr/share/zoneinfo/America/Louisville", + "usr/share/zoneinfo/America/Lower_Princes", + "usr/share/zoneinfo/America/Maceio", + "usr/share/zoneinfo/America/Managua", + "usr/share/zoneinfo/America/Manaus", + "usr/share/zoneinfo/America/Marigot", + "usr/share/zoneinfo/America/Martinique", + "usr/share/zoneinfo/America/Matamoros", + "usr/share/zoneinfo/America/Mazatlan", + "usr/share/zoneinfo/America/Mendoza", + "usr/share/zoneinfo/America/Menominee", + "usr/share/zoneinfo/America/Merida", + "usr/share/zoneinfo/America/Metlakatla", + "usr/share/zoneinfo/America/Mexico_City", + "usr/share/zoneinfo/America/Miquelon", + "usr/share/zoneinfo/America/Moncton", + "usr/share/zoneinfo/America/Monterrey", + "usr/share/zoneinfo/America/Montevideo", + "usr/share/zoneinfo/America/Montreal", + "usr/share/zoneinfo/America/Montserrat", + "usr/share/zoneinfo/America/Nassau", + "usr/share/zoneinfo/America/New_York", + "usr/share/zoneinfo/America/Nipigon", + "usr/share/zoneinfo/America/Nome", + "usr/share/zoneinfo/America/Noronha", + "usr/share/zoneinfo/America/Nuuk", + "usr/share/zoneinfo/America/Ojinaga", + "usr/share/zoneinfo/America/Panama", + "usr/share/zoneinfo/America/Pangnirtung", + "usr/share/zoneinfo/America/Paramaribo", + "usr/share/zoneinfo/America/Phoenix", + "usr/share/zoneinfo/America/Port-au-Prince", + "usr/share/zoneinfo/America/Port_of_Spain", + "usr/share/zoneinfo/America/Porto_Acre", + "usr/share/zoneinfo/America/Porto_Velho", + "usr/share/zoneinfo/America/Puerto_Rico", + "usr/share/zoneinfo/America/Punta_Arenas", + "usr/share/zoneinfo/America/Rainy_River", + "usr/share/zoneinfo/America/Rankin_Inlet", + "usr/share/zoneinfo/America/Recife", + "usr/share/zoneinfo/America/Regina", + "usr/share/zoneinfo/America/Resolute", + "usr/share/zoneinfo/America/Rio_Branco", + "usr/share/zoneinfo/America/Rosario", + "usr/share/zoneinfo/America/Santa_Isabel", + "usr/share/zoneinfo/America/Santarem", + "usr/share/zoneinfo/America/Santiago", + "usr/share/zoneinfo/America/Santo_Domingo", + "usr/share/zoneinfo/America/Sao_Paulo", + "usr/share/zoneinfo/America/Scoresbysund", + "usr/share/zoneinfo/America/Shiprock", + "usr/share/zoneinfo/America/Sitka", + "usr/share/zoneinfo/America/St_Barthelemy", + "usr/share/zoneinfo/America/St_Johns", + "usr/share/zoneinfo/America/St_Kitts", + "usr/share/zoneinfo/America/St_Lucia", + "usr/share/zoneinfo/America/St_Thomas", + "usr/share/zoneinfo/America/St_Vincent", + "usr/share/zoneinfo/America/Swift_Current", + "usr/share/zoneinfo/America/Tegucigalpa", + "usr/share/zoneinfo/America/Thule", + "usr/share/zoneinfo/America/Thunder_Bay", + "usr/share/zoneinfo/America/Tijuana", + "usr/share/zoneinfo/America/Toronto", + "usr/share/zoneinfo/America/Tortola", + "usr/share/zoneinfo/America/Vancouver", + "usr/share/zoneinfo/America/Virgin", + "usr/share/zoneinfo/America/Whitehorse", + "usr/share/zoneinfo/America/Winnipeg", + "usr/share/zoneinfo/America/Yakutat", + "usr/share/zoneinfo/America/Yellowknife", + "usr/share/zoneinfo/America/Argentina/Buenos_Aires", + "usr/share/zoneinfo/America/Argentina/Catamarca", + "usr/share/zoneinfo/America/Argentina/ComodRivadavia", + "usr/share/zoneinfo/America/Argentina/Cordoba", + "usr/share/zoneinfo/America/Argentina/Jujuy", + "usr/share/zoneinfo/America/Argentina/La_Rioja", + "usr/share/zoneinfo/America/Argentina/Mendoza", + "usr/share/zoneinfo/America/Argentina/Rio_Gallegos", + "usr/share/zoneinfo/America/Argentina/Salta", + "usr/share/zoneinfo/America/Argentina/San_Juan", + "usr/share/zoneinfo/America/Argentina/San_Luis", + "usr/share/zoneinfo/America/Argentina/Tucuman", + "usr/share/zoneinfo/America/Argentina/Ushuaia", + "usr/share/zoneinfo/America/Indiana/Indianapolis", + "usr/share/zoneinfo/America/Indiana/Knox", + "usr/share/zoneinfo/America/Indiana/Marengo", + "usr/share/zoneinfo/America/Indiana/Petersburg", + "usr/share/zoneinfo/America/Indiana/Tell_City", + "usr/share/zoneinfo/America/Indiana/Vevay", + "usr/share/zoneinfo/America/Indiana/Vincennes", + "usr/share/zoneinfo/America/Indiana/Winamac", + "usr/share/zoneinfo/America/Kentucky/Louisville", + "usr/share/zoneinfo/America/Kentucky/Monticello", + "usr/share/zoneinfo/America/North_Dakota/Beulah", + "usr/share/zoneinfo/America/North_Dakota/Center", + "usr/share/zoneinfo/America/North_Dakota/New_Salem", + "usr/share/zoneinfo/Antarctica/Casey", + "usr/share/zoneinfo/Antarctica/Davis", + "usr/share/zoneinfo/Antarctica/DumontDUrville", + "usr/share/zoneinfo/Antarctica/Macquarie", + "usr/share/zoneinfo/Antarctica/Mawson", + "usr/share/zoneinfo/Antarctica/McMurdo", + "usr/share/zoneinfo/Antarctica/Palmer", + "usr/share/zoneinfo/Antarctica/Rothera", + "usr/share/zoneinfo/Antarctica/South_Pole", + "usr/share/zoneinfo/Antarctica/Syowa", + "usr/share/zoneinfo/Antarctica/Troll", + "usr/share/zoneinfo/Antarctica/Vostok", + "usr/share/zoneinfo/Arctic/Longyearbyen", + "usr/share/zoneinfo/Asia/Aden", + "usr/share/zoneinfo/Asia/Almaty", + "usr/share/zoneinfo/Asia/Amman", + "usr/share/zoneinfo/Asia/Anadyr", + "usr/share/zoneinfo/Asia/Aqtau", + "usr/share/zoneinfo/Asia/Aqtobe", + "usr/share/zoneinfo/Asia/Ashgabat", + "usr/share/zoneinfo/Asia/Ashkhabad", + "usr/share/zoneinfo/Asia/Atyrau", + "usr/share/zoneinfo/Asia/Baghdad", + "usr/share/zoneinfo/Asia/Bahrain", + "usr/share/zoneinfo/Asia/Baku", + "usr/share/zoneinfo/Asia/Bangkok", + "usr/share/zoneinfo/Asia/Barnaul", + "usr/share/zoneinfo/Asia/Beirut", + "usr/share/zoneinfo/Asia/Bishkek", + "usr/share/zoneinfo/Asia/Brunei", + "usr/share/zoneinfo/Asia/Calcutta", + "usr/share/zoneinfo/Asia/Chita", + "usr/share/zoneinfo/Asia/Choibalsan", + "usr/share/zoneinfo/Asia/Chongqing", + "usr/share/zoneinfo/Asia/Chungking", + "usr/share/zoneinfo/Asia/Colombo", + "usr/share/zoneinfo/Asia/Dacca", + "usr/share/zoneinfo/Asia/Damascus", + "usr/share/zoneinfo/Asia/Dhaka", + "usr/share/zoneinfo/Asia/Dili", + "usr/share/zoneinfo/Asia/Dubai", + "usr/share/zoneinfo/Asia/Dushanbe", + "usr/share/zoneinfo/Asia/Famagusta", + "usr/share/zoneinfo/Asia/Gaza", + "usr/share/zoneinfo/Asia/Harbin", + "usr/share/zoneinfo/Asia/Hebron", + "usr/share/zoneinfo/Asia/Ho_Chi_Minh", + "usr/share/zoneinfo/Asia/Hong_Kong", + "usr/share/zoneinfo/Asia/Hovd", + "usr/share/zoneinfo/Asia/Irkutsk", + "usr/share/zoneinfo/Asia/Istanbul", + "usr/share/zoneinfo/Asia/Jakarta", + "usr/share/zoneinfo/Asia/Jayapura", + "usr/share/zoneinfo/Asia/Jerusalem", + "usr/share/zoneinfo/Asia/Kabul", + "usr/share/zoneinfo/Asia/Kamchatka", + "usr/share/zoneinfo/Asia/Karachi", + "usr/share/zoneinfo/Asia/Kashgar", + "usr/share/zoneinfo/Asia/Kathmandu", + "usr/share/zoneinfo/Asia/Katmandu", + "usr/share/zoneinfo/Asia/Khandyga", + "usr/share/zoneinfo/Asia/Kolkata", + "usr/share/zoneinfo/Asia/Krasnoyarsk", + "usr/share/zoneinfo/Asia/Kuala_Lumpur", + "usr/share/zoneinfo/Asia/Kuching", + "usr/share/zoneinfo/Asia/Kuwait", + "usr/share/zoneinfo/Asia/Macao", + "usr/share/zoneinfo/Asia/Macau", + "usr/share/zoneinfo/Asia/Magadan", + "usr/share/zoneinfo/Asia/Makassar", + "usr/share/zoneinfo/Asia/Manila", + "usr/share/zoneinfo/Asia/Muscat", + "usr/share/zoneinfo/Asia/Nicosia", + "usr/share/zoneinfo/Asia/Novokuznetsk", + "usr/share/zoneinfo/Asia/Novosibirsk", + "usr/share/zoneinfo/Asia/Omsk", + "usr/share/zoneinfo/Asia/Oral", + "usr/share/zoneinfo/Asia/Phnom_Penh", + "usr/share/zoneinfo/Asia/Pontianak", + "usr/share/zoneinfo/Asia/Pyongyang", + "usr/share/zoneinfo/Asia/Qatar", + "usr/share/zoneinfo/Asia/Qostanay", + "usr/share/zoneinfo/Asia/Qyzylorda", + "usr/share/zoneinfo/Asia/Rangoon", + "usr/share/zoneinfo/Asia/Riyadh", + "usr/share/zoneinfo/Asia/Saigon", + "usr/share/zoneinfo/Asia/Sakhalin", + "usr/share/zoneinfo/Asia/Samarkand", + "usr/share/zoneinfo/Asia/Seoul", + "usr/share/zoneinfo/Asia/Shanghai", + "usr/share/zoneinfo/Asia/Singapore", + "usr/share/zoneinfo/Asia/Srednekolymsk", + "usr/share/zoneinfo/Asia/Taipei", + "usr/share/zoneinfo/Asia/Tashkent", + "usr/share/zoneinfo/Asia/Tbilisi", + "usr/share/zoneinfo/Asia/Tehran", + "usr/share/zoneinfo/Asia/Tel_Aviv", + "usr/share/zoneinfo/Asia/Thimbu", + "usr/share/zoneinfo/Asia/Thimphu", + "usr/share/zoneinfo/Asia/Tokyo", + "usr/share/zoneinfo/Asia/Tomsk", + "usr/share/zoneinfo/Asia/Ujung_Pandang", + "usr/share/zoneinfo/Asia/Ulaanbaatar", + "usr/share/zoneinfo/Asia/Ulan_Bator", + "usr/share/zoneinfo/Asia/Urumqi", + "usr/share/zoneinfo/Asia/Ust-Nera", + "usr/share/zoneinfo/Asia/Vientiane", + "usr/share/zoneinfo/Asia/Vladivostok", + "usr/share/zoneinfo/Asia/Yakutsk", + "usr/share/zoneinfo/Asia/Yangon", + "usr/share/zoneinfo/Asia/Yekaterinburg", + "usr/share/zoneinfo/Asia/Yerevan", + "usr/share/zoneinfo/Atlantic/Azores", + "usr/share/zoneinfo/Atlantic/Bermuda", + "usr/share/zoneinfo/Atlantic/Canary", + "usr/share/zoneinfo/Atlantic/Cape_Verde", + "usr/share/zoneinfo/Atlantic/Faeroe", + "usr/share/zoneinfo/Atlantic/Faroe", + "usr/share/zoneinfo/Atlantic/Jan_Mayen", + "usr/share/zoneinfo/Atlantic/Madeira", + "usr/share/zoneinfo/Atlantic/Reykjavik", + "usr/share/zoneinfo/Atlantic/South_Georgia", + "usr/share/zoneinfo/Atlantic/St_Helena", + "usr/share/zoneinfo/Atlantic/Stanley", + "usr/share/zoneinfo/Australia/ACT", + "usr/share/zoneinfo/Australia/Adelaide", + "usr/share/zoneinfo/Australia/Brisbane", + "usr/share/zoneinfo/Australia/Broken_Hill", + "usr/share/zoneinfo/Australia/Canberra", + "usr/share/zoneinfo/Australia/Currie", + "usr/share/zoneinfo/Australia/Darwin", + "usr/share/zoneinfo/Australia/Eucla", + "usr/share/zoneinfo/Australia/Hobart", + "usr/share/zoneinfo/Australia/LHI", + "usr/share/zoneinfo/Australia/Lindeman", + "usr/share/zoneinfo/Australia/Lord_Howe", + "usr/share/zoneinfo/Australia/Melbourne", + "usr/share/zoneinfo/Australia/NSW", + "usr/share/zoneinfo/Australia/North", + "usr/share/zoneinfo/Australia/Perth", + "usr/share/zoneinfo/Australia/Queensland", + "usr/share/zoneinfo/Australia/South", + "usr/share/zoneinfo/Australia/Sydney", + "usr/share/zoneinfo/Australia/Tasmania", + "usr/share/zoneinfo/Australia/Victoria", + "usr/share/zoneinfo/Australia/West", + "usr/share/zoneinfo/Australia/Yancowinna", + "usr/share/zoneinfo/Brazil/Acre", + "usr/share/zoneinfo/Brazil/DeNoronha", + "usr/share/zoneinfo/Brazil/East", + "usr/share/zoneinfo/Brazil/West", + "usr/share/zoneinfo/Canada/Atlantic", + "usr/share/zoneinfo/Canada/Central", + "usr/share/zoneinfo/Canada/Eastern", + "usr/share/zoneinfo/Canada/Mountain", + "usr/share/zoneinfo/Canada/Newfoundland", + "usr/share/zoneinfo/Canada/Pacific", + "usr/share/zoneinfo/Canada/Saskatchewan", + "usr/share/zoneinfo/Canada/Yukon", + "usr/share/zoneinfo/Chile/Continental", + "usr/share/zoneinfo/Chile/EasterIsland", + "usr/share/zoneinfo/Etc/GMT", + "usr/share/zoneinfo/Etc/GMT+0", + "usr/share/zoneinfo/Etc/GMT+1", + "usr/share/zoneinfo/Etc/GMT+10", + "usr/share/zoneinfo/Etc/GMT+11", + "usr/share/zoneinfo/Etc/GMT+12", + "usr/share/zoneinfo/Etc/GMT+2", + "usr/share/zoneinfo/Etc/GMT+3", + "usr/share/zoneinfo/Etc/GMT+4", + "usr/share/zoneinfo/Etc/GMT+5", + "usr/share/zoneinfo/Etc/GMT+6", + "usr/share/zoneinfo/Etc/GMT+7", + "usr/share/zoneinfo/Etc/GMT+8", + "usr/share/zoneinfo/Etc/GMT+9", + "usr/share/zoneinfo/Etc/GMT-0", + "usr/share/zoneinfo/Etc/GMT-1", + "usr/share/zoneinfo/Etc/GMT-10", + "usr/share/zoneinfo/Etc/GMT-11", + "usr/share/zoneinfo/Etc/GMT-12", + "usr/share/zoneinfo/Etc/GMT-13", + "usr/share/zoneinfo/Etc/GMT-14", + "usr/share/zoneinfo/Etc/GMT-2", + "usr/share/zoneinfo/Etc/GMT-3", + "usr/share/zoneinfo/Etc/GMT-4", + "usr/share/zoneinfo/Etc/GMT-5", + "usr/share/zoneinfo/Etc/GMT-6", + "usr/share/zoneinfo/Etc/GMT-7", + "usr/share/zoneinfo/Etc/GMT-8", + "usr/share/zoneinfo/Etc/GMT-9", + "usr/share/zoneinfo/Etc/GMT0", + "usr/share/zoneinfo/Etc/Greenwich", + "usr/share/zoneinfo/Etc/UCT", + "usr/share/zoneinfo/Etc/UTC", + "usr/share/zoneinfo/Etc/Universal", + "usr/share/zoneinfo/Etc/Zulu", + "usr/share/zoneinfo/Europe/Amsterdam", + "usr/share/zoneinfo/Europe/Andorra", + "usr/share/zoneinfo/Europe/Astrakhan", + "usr/share/zoneinfo/Europe/Athens", + "usr/share/zoneinfo/Europe/Belfast", + "usr/share/zoneinfo/Europe/Belgrade", + "usr/share/zoneinfo/Europe/Berlin", + "usr/share/zoneinfo/Europe/Bratislava", + "usr/share/zoneinfo/Europe/Brussels", + "usr/share/zoneinfo/Europe/Bucharest", + "usr/share/zoneinfo/Europe/Budapest", + "usr/share/zoneinfo/Europe/Busingen", + "usr/share/zoneinfo/Europe/Chisinau", + "usr/share/zoneinfo/Europe/Copenhagen", + "usr/share/zoneinfo/Europe/Dublin", + "usr/share/zoneinfo/Europe/Gibraltar", + "usr/share/zoneinfo/Europe/Guernsey", + "usr/share/zoneinfo/Europe/Helsinki", + "usr/share/zoneinfo/Europe/Isle_of_Man", + "usr/share/zoneinfo/Europe/Istanbul", + "usr/share/zoneinfo/Europe/Jersey", + "usr/share/zoneinfo/Europe/Kaliningrad", + "usr/share/zoneinfo/Europe/Kiev", + "usr/share/zoneinfo/Europe/Kirov", + "usr/share/zoneinfo/Europe/Kyiv", + "usr/share/zoneinfo/Europe/Lisbon", + "usr/share/zoneinfo/Europe/Ljubljana", + "usr/share/zoneinfo/Europe/London", + "usr/share/zoneinfo/Europe/Luxembourg", + "usr/share/zoneinfo/Europe/Madrid", + "usr/share/zoneinfo/Europe/Malta", + "usr/share/zoneinfo/Europe/Mariehamn", + "usr/share/zoneinfo/Europe/Minsk", + "usr/share/zoneinfo/Europe/Monaco", + "usr/share/zoneinfo/Europe/Moscow", + "usr/share/zoneinfo/Europe/Nicosia", + "usr/share/zoneinfo/Europe/Oslo", + "usr/share/zoneinfo/Europe/Paris", + "usr/share/zoneinfo/Europe/Podgorica", + "usr/share/zoneinfo/Europe/Prague", + "usr/share/zoneinfo/Europe/Riga", + "usr/share/zoneinfo/Europe/Rome", + "usr/share/zoneinfo/Europe/Samara", + "usr/share/zoneinfo/Europe/San_Marino", + "usr/share/zoneinfo/Europe/Sarajevo", + "usr/share/zoneinfo/Europe/Saratov", + "usr/share/zoneinfo/Europe/Simferopol", + "usr/share/zoneinfo/Europe/Skopje", + "usr/share/zoneinfo/Europe/Sofia", + "usr/share/zoneinfo/Europe/Stockholm", + "usr/share/zoneinfo/Europe/Tallinn", + "usr/share/zoneinfo/Europe/Tirane", + "usr/share/zoneinfo/Europe/Tiraspol", + "usr/share/zoneinfo/Europe/Ulyanovsk", + "usr/share/zoneinfo/Europe/Uzhgorod", + "usr/share/zoneinfo/Europe/Vaduz", + "usr/share/zoneinfo/Europe/Vatican", + "usr/share/zoneinfo/Europe/Vienna", + "usr/share/zoneinfo/Europe/Vilnius", + "usr/share/zoneinfo/Europe/Volgograd", + "usr/share/zoneinfo/Europe/Warsaw", + "usr/share/zoneinfo/Europe/Zagreb", + "usr/share/zoneinfo/Europe/Zaporozhye", + "usr/share/zoneinfo/Europe/Zurich", + "usr/share/zoneinfo/Indian/Antananarivo", + "usr/share/zoneinfo/Indian/Chagos", + "usr/share/zoneinfo/Indian/Christmas", + "usr/share/zoneinfo/Indian/Cocos", + "usr/share/zoneinfo/Indian/Comoro", + "usr/share/zoneinfo/Indian/Kerguelen", + "usr/share/zoneinfo/Indian/Mahe", + "usr/share/zoneinfo/Indian/Maldives", + "usr/share/zoneinfo/Indian/Mauritius", + "usr/share/zoneinfo/Indian/Mayotte", + "usr/share/zoneinfo/Indian/Reunion", + "usr/share/zoneinfo/Mexico/BajaNorte", + "usr/share/zoneinfo/Mexico/BajaSur", + "usr/share/zoneinfo/Mexico/General", + "usr/share/zoneinfo/Pacific/Apia", + "usr/share/zoneinfo/Pacific/Auckland", + "usr/share/zoneinfo/Pacific/Bougainville", + "usr/share/zoneinfo/Pacific/Chatham", + "usr/share/zoneinfo/Pacific/Chuuk", + "usr/share/zoneinfo/Pacific/Easter", + "usr/share/zoneinfo/Pacific/Efate", + "usr/share/zoneinfo/Pacific/Enderbury", + "usr/share/zoneinfo/Pacific/Fakaofo", + "usr/share/zoneinfo/Pacific/Fiji", + "usr/share/zoneinfo/Pacific/Funafuti", + "usr/share/zoneinfo/Pacific/Galapagos", + "usr/share/zoneinfo/Pacific/Gambier", + "usr/share/zoneinfo/Pacific/Guadalcanal", + "usr/share/zoneinfo/Pacific/Guam", + "usr/share/zoneinfo/Pacific/Honolulu", + "usr/share/zoneinfo/Pacific/Johnston", + "usr/share/zoneinfo/Pacific/Kanton", + "usr/share/zoneinfo/Pacific/Kiritimati", + "usr/share/zoneinfo/Pacific/Kosrae", + "usr/share/zoneinfo/Pacific/Kwajalein", + "usr/share/zoneinfo/Pacific/Majuro", + "usr/share/zoneinfo/Pacific/Marquesas", + "usr/share/zoneinfo/Pacific/Midway", + "usr/share/zoneinfo/Pacific/Nauru", + "usr/share/zoneinfo/Pacific/Niue", + "usr/share/zoneinfo/Pacific/Norfolk", + "usr/share/zoneinfo/Pacific/Noumea", + "usr/share/zoneinfo/Pacific/Pago_Pago", + "usr/share/zoneinfo/Pacific/Palau", + "usr/share/zoneinfo/Pacific/Pitcairn", + "usr/share/zoneinfo/Pacific/Pohnpei", + "usr/share/zoneinfo/Pacific/Ponape", + "usr/share/zoneinfo/Pacific/Port_Moresby", + "usr/share/zoneinfo/Pacific/Rarotonga", + "usr/share/zoneinfo/Pacific/Saipan", + "usr/share/zoneinfo/Pacific/Samoa", + "usr/share/zoneinfo/Pacific/Tahiti", + "usr/share/zoneinfo/Pacific/Tarawa", + "usr/share/zoneinfo/Pacific/Tongatapu", + "usr/share/zoneinfo/Pacific/Truk", + "usr/share/zoneinfo/Pacific/Wake", + "usr/share/zoneinfo/Pacific/Wallis", + "usr/share/zoneinfo/Pacific/Yap", + "usr/share/zoneinfo/US/Alaska", + "usr/share/zoneinfo/US/Aleutian", + "usr/share/zoneinfo/US/Arizona", + "usr/share/zoneinfo/US/Central", + "usr/share/zoneinfo/US/East-Indiana", + "usr/share/zoneinfo/US/Eastern", + "usr/share/zoneinfo/US/Hawaii", + "usr/share/zoneinfo/US/Indiana-Starke", + "usr/share/zoneinfo/US/Michigan", + "usr/share/zoneinfo/US/Mountain", + "usr/share/zoneinfo/US/Pacific", + "usr/share/zoneinfo/US/Samoa" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "xz-libs@5.8.3-r0", + "Name": "xz-libs", + "Identifier": { + "PURL": "pkg:apk/alpine/xz-libs@5.8.3-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "1ae658a5f132a091" + }, + "Version": "5.8.3-r0", + "Arch": "x86_64", + "SrcName": "xz", + "SrcVersion": "5.8.3-r0", + "Licenses": [ + "GPL-2.0-or-later", + "0BSD", + "Public-Domain", + "LGPL-2.1-or-later" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:2014fd3d47b2c2dd4dedc765822ac60ae269f3efa0e614f46ae29f540c7f1235", + "DiffID": "sha256:e5ccda0fbf6b54d343e024156d876553ba57d3926d7196584b3a1ce4df016366" + }, + "Digest": "sha1:4c92c5be0c5bef404e93c880eba9037a9b147347", + "InstalledFiles": [ + "usr/lib/liblzma.so.5", + "usr/lib/liblzma.so.5.8.3" + ], + "AnalyzedBy": "apk" + }, + { + "ID": "zlib@1.3.2-r0", + "Name": "zlib", + "Identifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "Version": "1.3.2-r0", + "Arch": "x86_64", + "SrcName": "zlib", + "SrcVersion": "1.3.2-r0", + "Licenses": [ + "Zlib" + ], + "Maintainer": "Natanael Copa \u003cncopa@alpinelinux.org\u003e", + "DependsOn": [ + "musl@1.2.6-r2" + ], + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "Digest": "sha1:dd4c3d102acaef2a71a1495951d55fabc8680613", + "InstalledFiles": [ + "usr/lib/libz.so.1", + "usr/lib/libz.so.1.3.2" + ], + "AnalyzedBy": "apk" + } + ], + "Vulnerabilities": [ + { + "VulnerabilityID": "CVE-2026-85091", + "PkgID": "zlib@1.3.2-r0", + "PkgName": "zlib", + "PkgIdentifier": { + "PURL": "pkg:apk/alpine/zlib@1.3.2-r0?arch=x86_64\u0026distro=3.24.1", + "UID": "e37054a2982d6c16" + }, + "InstalledVersion": "1.3.2-r0", + "FixedVersion": "1.3.2-r1", + "Status": "fixed", + "Layer": { + "Digest": "sha256:55afa1ecc21d2bb5e5045f32dafee56272ffd89860bac26f6c32123439af26a4", + "DiffID": "sha256:34884abbe92863fce933ed7c39c0e045631af0ed86d5cc0dfbdf9fdca426ce3c" + }, + "PrimaryURL": "https://avd.aquasec.com/nvd/cve-2026-85091", + "DataSource": { + "ID": "alpine", + "Name": "Alpine Secdb", + "URL": "https://secdb.alpinelinux.org/" + }, + "Fingerprint": "sha256:d73c01b020c55acc174a3fde47c8af6f5638c58c7189c817edd6862029f6c5f5", + "Title": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vul ...", + "Description": "zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. Attackers can trigger the overflow by calling gzprintf() or gzvprintf() after a write stall, causing an unchecked memmove() to write beyond the internal input buffer boundary.", + "Severity": "MEDIUM", + "CweIDs": [ + "CWE-787" + ], + "VendorSeverity": { + "ubuntu": 2 + }, + "References": [ + "https://gist.github.com/thesmartshadow/e0b9481792afb7c31e86fee1ff084490", + "https://github.com/madler/zlib", + "https://github.com/madler/zlib/blob/v1.3.2/gzwrite.c#L393", + "https://www.cve.org/CVERecord?id=CVE-2026-85091", + "https://www.vulncheck.com/advisories/zlib-1.3.1.2-through-1.3.2-heap-buffer-overflow-via-gz-vacate" + ], + "PublishedDate": "2026-09-03T13:06:20.573Z", + "LastModifiedDate": "2026-09-09T20:41:07.123Z" + } + ] + }, + { + "Target": "Python", + "Class": "lang-pkgs", + "Type": "python-pkg", + "Packages": [ + { + "Name": "PyJWT", + "Identifier": { + "PURL": "pkg:pypi/pyjwt@2.15.1", + "UID": "d3f5f9a421b8abc9" + }, + "Version": "2.15.1", + "Licenses": [ + "MIT" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cffi", + "Identifier": { + "PURL": "pkg:pypi/cffi@2.1.1", + "UID": "21042e2f37e33c05" + }, + "Version": "2.1.1", + "Licenses": [ + "MIT-0" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "cryptography", + "Identifier": { + "PURL": "pkg:pypi/cryptography@50.0.1", + "UID": "dcb3df6383fe2a60" + }, + "Version": "50.0.1", + "Licenses": [ + "Apache-2.0 OR BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/cryptography-50.0.1.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "informed-decision", + "Identifier": { + "PURL": "pkg:pypi/informed-decision@0.2.0", + "UID": "7989f2afae8ff568" + }, + "Version": "0.2.0", + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/informed_decision-0.2.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "pycparser", + "Identifier": { + "PURL": "pkg:pypi/pycparser@3.0", + "UID": "e5a4d03f15a695ff" + }, + "Version": "3.0", + "Licenses": [ + "BSD-3-Clause" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + }, + { + "Name": "waitress", + "Identifier": { + "PURL": "pkg:pypi/waitress@3.0.2", + "UID": "806e218e1c1e85f" + }, + "Version": "3.0.2", + "Licenses": [ + "ZPL-2.1" + ], + "Layer": { + "Digest": "sha256:82ff17b555d91096dd328eb1e829daaeba9a48d7757143d0b97c35a721f6fb87", + "DiffID": "sha256:648451a0dda84ad04681e32b5ecc7cd5d3a4f0ad84f783e9598d72bc69620d5c" + }, + "FilePath": "opt/venv/lib/python3.12/site-packages/waitress-3.0.2.dist-info/METADATA", + "AnalyzedBy": "python-pkg" + } + ] + } + ] +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/validation.json b/docs/evidence/2026-10-11-purpose-image-release/validation.json new file mode 100644 index 0000000..61164d7 --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/validation.json @@ -0,0 +1,26 @@ +{ + "intake_valid_offline": true, + "typed_memo_valid": true, + "lifecycle_documents_valid": 20, + "packet_actual_file_bytes_verified": true, + "submission_digest": "sha256:905bbf8ca21686969429f82e37d41afb4e43a82e6bf578107677e0bc9a5a7bf4", + "offline_constructed_grant": "state-hub/decision-record/net-kingdom-admins", + "deployed_submitter_admission_verified": false, + "human_approval": false, + "live_submitted": false, + "native_backup_restore_executed": false, + "native_workload_changed": false, + "packet_bytes_total": 184912, + "guard_tests": 11, + "guard_drift_negative_assertions": 28, + "transport_negative_cases": 6, + "fresh_readonly_preflight_all_checks_pass": true, + "fresh_readonly_capture": "2026-10-11T01:39:14Z", + "original_capture_bytes_preserved": true, + "pre_open_old_unknown_schema_negative_cases": 6, + "optimized_interpreter_negative_cases": 2, + "native_dependencies_checked": true, + "native_pre_open_schema_checked": false, + "original36path_snapshot_preserved": true, + "refinement_same_proposal_trial": true +} diff --git a/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py b/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py new file mode 100644 index 0000000..75c837a --- /dev/null +++ b/docs/evidence/2026-10-11-purpose-image-release/verify_registry.py @@ -0,0 +1,125 @@ +"""Read a public policy image without executing it or retaining registry tokens.""" +import argparse +import hashlib +import io +import json +from pathlib import Path, PurePosixPath +import re +import tarfile +import urllib.error +import urllib.parse +import urllib.request + +ORIGIN = 'https://forgejo.coulomb.social' +BASE = ORIGIN + '/v2/coulomb/informed-decision/' +LIMIT = 300 * 1024 * 1024 +class NoRedirect(urllib.request.HTTPRedirectHandler): + def redirect_request(self, request, response, code, message, headers, new_url): + raise ValueError('registry redirects refused') +OPENER = urllib.request.build_opener(NoRedirect()) + + +def fetch(url, accept=None): + parsed_url = urllib.parse.urlparse(url) + if parsed_url.scheme != 'https' or parsed_url.netloc != 'forgejo.coulomb.social': + raise ValueError('unexpected registry origin') + headers = {'Accept': accept} if accept else {} + try: + response = OPENER.open(urllib.request.Request(url, headers=headers), timeout=30) + except urllib.error.HTTPError as error: + if error.code != 401: + raise + fields = dict(re.findall(r'(\w+)="([^"]*)"', error.headers.get('WWW-Authenticate', ''))) + realm = fields['realm'] + parsed = urllib.parse.urlparse(realm) + if parsed.scheme != 'https' or parsed.netloc != 'forgejo.coulomb.social': + raise ValueError('unexpected registry challenge origin') + query = urllib.parse.urlencode({k: fields[k] for k in ('service', 'scope') if k in fields}) + with OPENER.open(realm + '?' + query, timeout=30) as auth: + token = json.load(auth)['token'] + headers['Authorization'] = 'Bearer ' + token + response = OPENER.open(urllib.request.Request(url, headers=headers), timeout=60) + with response: + body = response.read(LIMIT + 1) + if len(body) > LIMIT: + raise ValueError('registry artifact exceeds local verification bound') + return body + + +def sha(data): + return hashlib.sha256(data).hexdigest() + + +def blob(descriptor): + digest = descriptor['digest'] + if not re.fullmatch(r'sha256:[a-f0-9]{64}', digest): + raise ValueError('unknown image digest') + data = fetch(BASE + 'blobs/' + digest) + if 'sha256:' + sha(data) != digest or len(data) != descriptor['size']: + raise ValueError('image blob hash or size mismatch') + return data + + +def manifest(digest): + raw = fetch(BASE + 'manifests/' + digest, 'application/vnd.oci.image.index.v1+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json') + if 'sha256:' + sha(raw) != digest: + raise ValueError('manifest digest mismatch') + value = json.loads(raw) + if 'manifests' in value: + selected = [d for d in value['manifests'] if d.get('platform',{}).get('os') == 'linux' and d.get('platform',{}).get('architecture') == 'amd64'] + if len(selected) != 1: + raise ValueError('one linux/amd64 platform required') + child, config, layerlist = manifest(selected[0]['digest']) + return child, config, layerlist + return value, json.loads(blob(value['config'])), value['layers'] + +def main(): + p = argparse.ArgumentParser(); p.add_argument('--digest',required=True);p.add_argument('--revision',required=True);p.add_argument('--output',type=Path,required=True);a=p.parse_args() + if not re.fullmatch(r'sha256:[a-f0-9]{64}',a.digest) or not re.fullmatch(r'[a-f0-9]{40}',a.revision): + raise ValueError('exact immutable revision and image required') + base_digest='sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173' + m,c,l=manifest(a.digest);bm,bc,bl=manifest(base_digest) + allowed_media={'application/vnd.docker.image.rootfs.diff.tar.gzip','application/vnd.oci.image.layer.v1.tar+gzip'} + if any(d['mediaType'] not in allowed_media for d in l+bl): raise ValueError('unsupported layer encoding') + if [(d['digest'],d['size']) for d in l[:-1]] != [(d['digest'],d['size']) for d in bl] or len(l) != len(bl)+1: + raise ValueError('candidate must retain all base descriptors plus exactly one layer') + for key in ('architecture','os'): + if c[key] != bc[key]: raise ValueError('platform changed') + if c['rootfs']['diff_ids'][:-1] != bc['rootfs']['diff_ids'] or len(c['rootfs']['diff_ids']) != len(bc['rootfs']['diff_ids'])+1: + raise ValueError('base rootfs changed') + defaults={'Hostname':'','Domainname':'','AttachStdin':False,'AttachStdout':False,'AttachStderr':False,'Tty':False,'OpenStdin':False,'StdinOnce':False,'Cmd':None,'Volumes':None,'OnBuild':None} + extra_defaults={} + for key,value in defaults.items(): + if key not in bc['config'] and key in c['config']: + if c['config'][key] != value: raise ValueError('legacy builder runtime default changed') + extra_defaults[key]=value + if 'Image' in c['config'] and 'Image' not in bc['config']: + if not re.fullmatch(r'sha256:[a-f0-9]{64}',c['config']['Image']):raise ValueError('unexpected legacy builder parent-image metadata') + extra_defaults['Image']=c['config']['Image'] + actual_config={k:v for k,v in c['config'].items() if k != 'Labels' and k not in extra_defaults} + base_config={k:v for k,v in bc['config'].items() if k != 'Labels'} + if actual_config != base_config: raise ValueError('runtime image config changed') + labels=c['config']['Labels']; expected={'org.opencontainers.image.revision':a.revision,'org.opencontainers.image.base.digest':base_digest,'social.coulomb.source.policy.sha256':'9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62','social.coulomb.release.scope':'INFD-WP-0009-T04/purpose-overlay-v1'} + for k,v in expected.items(): + if labels.get(k)!=v:raise ValueError('exact source/scope label mismatch') + if {k:v for k,v in labels.items() if k not in expected} != {k:v for k,v in bc['config'].get('Labels',{}).items() if k not in expected}: + raise ValueError('unrelated labels changed') + files=[]; dirs=[];content=None + with tarfile.open(fileobj=io.BytesIO(blob(l[-1])),mode='r:*') as archive: + for item in archive: + path=PurePosixPath(item.name.removeprefix('./')) + if path.is_absolute() or '..' in path.parts or any(p.startswith('.wh.') for p in path.parts):raise ValueError('unsafe overlay entry') + if item.isdir(): + allowed_dirs={'opt','opt/venv','opt/venv/lib','opt/venv/lib/python3.12','opt/venv/lib/python3.12/site-packages','opt/venv/lib/python3.12/site-packages/informed_decision'} + if str(path) not in allowed_dirs: raise ValueError('unexpected overlay directory') + dirs.append(str(path));continue + if not item.isfile():raise ValueError('unexpected overlay link or device') + files.append(str(path)) + if str(path)!='opt/venv/lib/python3.12/site-packages/informed_decision/policy.py' or item.mode!=0o644 or item.uid!=0 or item.gid!=0 or item.size>100000:raise ValueError('unexpected overlay file metadata') + content=archive.extractfile(item).read() + if len(files)!=1 or sha(content)!=expected['social.coulomb.source.policy.sha256']:raise ValueError('single installed source file not exact') + a.output.mkdir(parents=True,exist_ok=True) + (a.output/'image-manifest.json').write_text(json.dumps(m,indent=2)+'\n');(a.output/'image-config.json').write_text(json.dumps(c,indent=2)+'\n');(a.output/'base-image-config.json').write_text(json.dumps(bc,indent=2)+'\n') + receipt={'image_digest':a.digest,'source_revision':a.revision,'base_image_digest':base_digest,'base_layer_bytes_identical':True,'layer_media_type_conversion':'OCI gzip to Docker gzip, same digest and size','base_runtime_config_semantics_identical':True,'legacy_builder_config_additions':extra_defaults,'base_rootfs_prefix_identical':True,'overlay_regular_files':files,'overlay_directories':dirs,'policy_sha256':sha(content),'policy_mode':'0644','base_user':bc['config'].get('User'),'source_scope_labels':expected,'registry_read_route':'anonymous public scoped bearer challenge, no token retention','image_executed':False,'native_workload_changed':False,'native_backup_restore_executed':False} + (a.output/'registry-proof.json').write_text(json.dumps(receipt,indent=2)+'\n');print(json.dumps(receipt,sort_keys=True)) +if __name__=='__main__': main() diff --git a/docs/reviews/2026-10-11-purpose-release-amended-product-owner-review.md b/docs/reviews/2026-10-11-purpose-release-amended-product-owner-review.md new file mode 100644 index 0000000..73ab70c --- /dev/null +++ b/docs/reviews/2026-10-11-purpose-release-amended-product-owner-review.md @@ -0,0 +1,62 @@ +# Amended purpose release product-owner confirmation + +```yaml +reviewer: informed-decision-owner (agent informed-decision, codex) +decision: approved +work_item: INFD-WP-ADHOC-2026-10-11-T03 +scope: amended source preparation only +comment: >- + INTENT.md Purpose and What informed-decision Owns require retained lifecycle + and presentation evidence; Design Principles 9-10 reserve identity and human + binding. Amended78-path manifest SHA-256 + b1e3e66bc4023dc80c6ea59564c3557c7653fb3c307f46a049997b76198a9033 is reviewed + under INFD-WP-ADHOC-2026-10-11-T03. All78 hashes verify. Prior36-path review + 7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300 and its50 + synthetic source negatives remain retained; this entry confirms the amended + preparation without approving privileged execution. +``` + +Product agreement extends to the four protocol/preflight refinements: + +- Stdlib SQLite URI mode=ro/query_only and one read transaction establish + schema5, integrity and count-only evidence before any Store/admin open, + including before each native backup and before offline candidate inspect. + Store's actual schemas1–4 auto-migrate; a post-open schema5 report alone cannot + prove migration was absent. The amended helper constructs no Store and + refuses missing/old/unknown databases. Six old/unknown negatives and schema5 + synthetic count/hash checks remain mechanism proof, never native acceptance. +- Explicit optimization refusal precedes assertion-based local transport + and remote kubectl gates. The two optimized-interpreter negatives demonstrate + refusal before dispatch; an optimized process cannot bypass these checks. +- Actual immutable nonsecret ConfigMap UID/data checksum and bound PVC + UID/spec/volumeName are independently sealed and compared. Recreated same-name + objects, altered runtime data or changed storage custody refuse admission; + no raw runtime data or Secret values are published by these guards. +- Exact counts belong to the selected frozen snapshot and its offline clone. + Online snapshots do not quiesce legitimate commits or delivery transitions. + Post-cutover/rollback checks preserve the latest DB and account for changes; + they never restore an older snapshot or discard new/uncertain records to force + equality. Unexplained evidence loss or required data recovery stops for a + separately scoped founder decision. + +Exact policy.py9d7c1be4 and both source candidates match the retained original +archive. Image763c3640/config6c221878d051, schema5, pins, audience/requester +custody, single-writer Recreate strategy, image-only Deployment sync and +DB-retaining image rollback remain unchanged. Prior50 source mutation/retry +checks therefore remain applicable and were not rerun. This confirmation +supersedes reliance on the initial protocol as sufficient pre-open/custody +protection while preserving original review and refinement history. + +Amended20-document memo:184912 packet bytes, submission digest +`sha256:905bbf8ca21686969429f82e37d41afb4e43a82e6bf578107677e0bc9a5a7bf4`. +Eleven guard checks plus retained negatives and01:39 fresh read-only preflight +support preparation; they do not claim native schema inspection, backup/export/ +restore, rollout, browser/MFA acceptance or human approval. Actual native +pre-open schema5 proof remains explicitly unperformed. Platform GitOps/custody +review and exact founder disposition remain separate gates. + +T04 stays progress. T05/INFD-RISK-20261011-ZLIB-85091 retain inherited fixable +MEDIUM finding and2026-10-18 owner follow-through; no zero-CVE or temporary risk +acceptance is inferred. No further product correction was found. This entry +records only informed-decision-owner source review, changes no authority, +bound claims or admission status, and authorizes no privileged action. diff --git a/docs/reviews/2026-10-11-purpose-release-product-owner-review.md b/docs/reviews/2026-10-11-purpose-release-product-owner-review.md new file mode 100644 index 0000000..2d5253f --- /dev/null +++ b/docs/reviews/2026-10-11-purpose-release-product-owner-review.md @@ -0,0 +1,73 @@ +# Informed Decision product-owner purpose release review + +```yaml +reviewer: informed-decision-owner (agent informed-decision, codex) +decision: approved +work_item: INFD-WP-ADHOC-2026-10-11-T02 +scope: exact source release preparation and product technical review only +comment: >- + INTENT.md Purpose, What informed-decision Owns/Does Not Own and Design + Principles 9-10 require lifecycle evidence and authentic human binding while + reserving authorization to Access Engine and identity to KeyCape. The purpose + refusal enforces that boundary without making this surface a PDP. Frozen + 36-path release manifest SHA-256 + 7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300 was reviewed + under INFD-WP-ADHOC-2026-10-11-T02. All hashes and exact PolicyClient source + 9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62 agree. +``` + +The exact binding purpose boundary accepts only absence or the empty string; +readback, explicit enforcement text, unknown and malformed values fail closed. +It preserves request/core-identity binding, package/version/digest, TTL, +obligations and expiry validation. This is consumer refusal, not new identity, +a local policy verdict or a claim that advisory evidence authorizes an act. + +Independent owner source tests pass50/50:10 advisory/malformed binding forms +across fresh registration, replay, publication, annotation and revision. Each +refused call leaves every domain table byte-for-value unchanged, retains its +invalid-decision observation and does not consume a domain idempotency key. +Canonical enforcement restoration permits the same key; authorized replay +returns the prior receipt. These tests add lifecycle side-effect/retry evidence +to existing image-form and release-guard checks. They use synthetic identity +and transport and certify no native provider, human MFA or live acceptance. + +The actual published-image receipt binds immutable763c3640 to source3e4bcb26 +and module9d7c1be4, with installed10-form checks under UID10001. Registry proof +retains eight exact compressed base blobs/rootfs prefix and a single policy.py +overlay; legacy serialization/runtime defaults are disclosed. Source-rendered +and captured Deployment diffs independently confirm only the image changes. +Runtime ConfigMap6c221878d051, policy pins, requester custody, audience, +PVC/schema5, replicas1/Recreate and five-minute readiness remain frozen. + +Both unfiltered raw scans independently retain the same one fixable MEDIUM +zlib finding (CVE-2026-85091,1.3.2-r0 to1.3.2-r1), with no HIGH/CRITICAL; +44-package coverage limits remain in the packet. This review is not a zero-CVE +claim, estate risk grade or founder temporary risk acceptance. Live T05 and +INFD-RISK-20261011-ZLIB-85091 require owner review by2026-10-18 and separately +approved native remediation; no automatic rollback/expiry is inferred. + +The protocol explicitly requires founder authority for a SQLite-consistent +native backup, exact protected off-cluster snapshot copy, separate private +network-disabled candidate actual-data restore drill, a fresh online cutover +snapshot, and manual Argo source pin plus Deployment-only sync/prune false. +The product agrees with retained schema/count/uncertain-outcome gates and +same-schema image-only rollback that preserves the current live DB and every +post-cutover record. An online snapshot does not claim dispatchers or writes +were quiesced. A failed drill or schema drift stops rollout; restoring an older +snapshot over live evidence is excluded. Platform GitOps/custody review remains +separate, as does the founder's exact disposition of those privileged actions. + +The20-document packet/249719-byte offline typed validation and sealed full +Deployment dry-run/diff/Ready1 UID capture are preparation evidence. Source +preparation, public image publication and synthetic backup tests are not actual +native backup/restore/release. T04 remains progress until actual approved +compatibility, release and native installed refusal/lifecycle verification. +Existing Healthy/OutOfSync Argo baseline is retained; no whole-app sync is +admitted. Freeze the eventual committed approved source and refresh native +preconditions before any separately approved execution before the stated +2026-10-12T23:59:59Z deadline. + +No product correction was found. This entry reviews only informed-decision +and changes no approval/status/bound-claims/admission authority. It approves +source preparation only, never privileged execution, credential custody, +human disposition or the temporary vulnerability exception. diff --git a/tests/test_purpose_owner_mutation_negatives.py b/tests/test_purpose_owner_mutation_negatives.py new file mode 100644 index 0000000..5edd57b --- /dev/null +++ b/tests/test_purpose_owner_mutation_negatives.py @@ -0,0 +1,66 @@ +"""Owner review: malformed/advisory results cannot mutate lifecycle or replay keys. + +Synthetic source checks only; no native custody/provider/approval acceptance. +""" +import pytest +from informed_decision.lifecycle_service import LifecycleError +from test_lifecycle import workspace +from test_lifecycle_service import caller, service +from test_policy_client import PolicyTransport + + +VARIANTS = ["readback", "enforcement", "unknown", None, False, 0, [], {}, + "NULL_BINDING", "LIST_BINDING"] + + +def domain_state(store): + with store._connection() as db: + tables = [row[0] for row in db.execute( + "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name") + if row[0] != "policy_observations"] + return {table: tuple(tuple(row) for row in db.execute( + 'SELECT * FROM "' + table + '" ORDER BY rowid')) for table in tables} + + +@pytest.mark.parametrize("operation", ["register", "replay", "publish", "annotate", "revise"]) +@pytest.mark.parametrize("purpose", VARIANTS) +def test_advisory_or_malformed_refusal_preserves_domain_and_retry_key(workspace, operation, purpose): + transport = PolicyTransport() + app, memo = service(workspace, transport) + actor = caller() + prior = app.register(actor, memo, key="initial") if operation != "register" else None + actions = { + "register": lambda: app.register(actor, memo, key="same-attempt"), + "replay": lambda: app.register(actor, memo, key="initial"), + "publish": lambda: app.publish(actor, memo.id, 1, + audience={"groups": ["reviewers"], "subjects": []}, key="same-attempt"), + "annotate": lambda: app.annotate(actor, memo.id, 1, kind="comment", + body={"text": "independent owner check"}, key="same-attempt"), + "revise": lambda: app.revise(actor, memo.next_version(brief="independent owner check"), + expected_version=1, summary="review", key="same-attempt"), + } + before = domain_state(app.repository.store) + observations = len(app.repository.store.policy_observations()) + def contaminate(data): + if purpose == "NULL_BINDING": + data["binding"] = None + elif purpose == "LIST_BINDING": + data["binding"] = [] + else: + data["binding"]["purpose"] = purpose + transport.change = contaminate + with pytest.raises(LifecycleError) as error: + actions[operation]() + assert error.value.status == 503 and error.value.code == "invalid_decision" + assert domain_state(app.repository.store) == before + rows = app.repository.store.policy_observations() + assert len(rows) == observations + 1 + assert rows[-1]["outcome"] == "invalid_decision" + # Refusal retains its observation but consumes no domain idempotency key. + transport.change = lambda data: None + result = actions[operation]() + if operation == "replay": + assert result == prior + assert domain_state(app.repository.store) == before + else: + assert domain_state(app.repository.store) != before diff --git a/workplans/ADHOC-2026-10-11.md b/workplans/ADHOC-2026-10-11.md index 633baef..fa5e933 100644 --- a/workplans/ADHOC-2026-10-11.md +++ b/workplans/ADHOC-2026-10-11.md @@ -10,6 +10,7 @@ topic_slug: netkingdom created: "2026-10-11" updated: "2026-10-11" flavor: planning +state_hub_workstream_id: "4594d714-a6ec-5ab6-ad44-4227a27fc7be" --- ## Review exact one-application catalogue facts @@ -18,6 +19,7 @@ flavor: planning id: INFD-WP-ADHOC-2026-10-11-T01 status: done priority: medium +state_hub_task_id: "cfe1ec8c-c635-5f23-847c-bf8296965305" ``` Completed informed-decision application-owner source review under INTENT.md @@ -39,3 +41,60 @@ release or human disposition. Existing User Engine native acceptance work remains with USER-WP-0026-T03 and USER-WP-0028-T02; no new residual work is created by this bounded review. No tests were needed for this evidence-only review; no native, credential or login action occurred. + +## Independently review purpose overlay release preparation + +```task +id: INFD-WP-ADHOC-2026-10-11-T02 +status: done +priority: medium +``` + +Completed same-role informed-decision-owner technical review of frozen36-path +purpose release manifest SHA-256 +`7c6738b39ea8e54e61c8ed625e94ad0b2755e672e1576efcdf84a1d665ac3300`. +All36 staged file hashes and exact source PolicyClient9d7 hash were verified. +Source candidates and captured candidate Deployment differ only in the image. +Actual raw base/candidate scans contain the same one fixable MEDIUM zlib finding; +T05 keeps its2026-10-18 follow-through. Actual published-image receipts and +sealed native read-only preflight support preparation, not native deployment. + +Independent owner negatives:50 passed in4.21s, covering10 advisory/malformed +binding forms across register, replay, publish, annotate and revise. Each +refusal preserves every domain table, records a truthful invalid-decision +observation and leaves the same idempotency key reusable after restoring a +canonical enforcement response. These are synthetic source tests only. +Test: tests/test_purpose_owner_mutation_negatives.py. +Receipt: docs/evidence/2026-10-11-purpose-image-release/product-owner-review-validation.json. +Review: docs/reviews/2026-10-11-purpose-release-product-owner-review.md. + +This bounded review grants no native backup/export/restore, image rollout, +credentials, login, human disposition or vulnerability acceptance. Existing +INFD-WP-0009-T04/T05 retain release/remediation obligations; no separate residual +is created or claimed completed. Catalogue ACK/T01 remains unchanged. + +## Confirm amended purpose release custody and preflight gates + +```task +id: INFD-WP-ADHOC-2026-10-11-T03 +status: done +priority: medium +``` + +Same informed-decision-owner reviewed amended78-path release manifest SHA-256 +`b1e3e66bc4023dc80c6ea59564c3557c7653fb3c307f46a049997b76198a9033`. +All78 file hashes verified, original36 archive retained, source PolicyClient9d7 +and both image-only source candidates unchanged. Prior50 source lifecycle +mutation/idempotency negatives remain applicable and were not repeated. + +Confirmed stdlib read-only schema5/integrity/count gate before ANY native or +restored Store/admin open, explicit local/remote optimized-interpreter refusal, +sealed actual ConfigMap/PVC identity/data/custody and frozen offline clone count +equality distinguished from legitimate concurrent live commits. Revised20-doc +184912-byte packet and01:39 read-only dry-run receipts remain preparation. +Native schema gate, backup/export/restore/release and founder disposition remain +unperformed; T04/T05 obligations and temporary vulnerability review persist. + +Confirmation: docs/reviews/2026-10-11-purpose-release-amended-product-owner-review.md. +Prior T01 catalogue ACK including hub identifiers and T02 initial36 review/test/ +receipt remain unchanged. No new residual or authority is created by this review. diff --git a/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md b/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md index 9be0feb..780e0df 100644 --- a/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md +++ b/workplans/INFD-WP-0009-lifecycle-consumer-pin-repair.md @@ -93,7 +93,7 @@ compatibility evidence, prepare a separate scoped image proposal, and verify native binding/refusal after the owner's approved release. Do not fold an image change into the config-only T02 proposal. Current runtime 7f5c6cb remains exact. -**Prepared 2026-10-11:** narrow single-module image overlay on immutable running +**Historical local preparation 2026-10-11:** narrow single-module image overlay on immutable running 7f5c6cb; exact source policy SHA-256 9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62. Local image/index b8b58944786015a5375304241c149d1dab885eb539d6d8945f56b01a3c2bc821 is built and retained, unpublished and undeployed. Base layer prefix and runtime @@ -105,3 +105,52 @@ Remaining gates: source-bound registry publication and exact digest verification fresh native snapshot/restore compatibility, owner GitOps server dry-run/diff, separate scoped supervisor approval and native post-release binding/refusal. No release approval or actual production-data restore is inferred from fixtures. + +**Publication and release preparation 2026-10-11:** actual owner CI +task11484/run3 succeeds at source3e4bcb26f8eeaa8c64345c565477b5ac8ccbb168, +publishing immutable image763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a. +The failed run1/f66 and run2/ace are retained as refinements in the same trial. +Anonymous registry readback proves all8base compressed blobs/rootfs unchanged +plus only policy.py; legacy media-type/default-config serialization differences +are explicit. Pulled published artifact UID10001/GID10001, installed mode0644 +and exactpolicy hash, all10purpose forms pass. Full pinned scanner/DB covers +44packages: 0HIGH/CRITICAL, 1fixableMEDIUM CVE-2026-85091 in zlib1.3.2-r0, +identical actual current-base scan. This is not a zero-CVE release or estate +risk grade. T05 and INFD-RISK-20261011-ZLIB-85091 are live owner follow-through. + +The exact separate20document informed-decision packet is prepared and +offline typed/intake validated, with no submission or founder disposition +claimed. Source candidates differ solely in Deploymentimage and retain +ConfigMap6c221878d051/schema5/PVC/identity/policy pins. Fresh read-only +serverdryrun/clientdiff pass with sealedUID/fullconfiguration and actualCM/PVC +UID/contentchecksum/boundvolume custody; optimizedinterpreters refused. +Independent review refinement requires stdlib mode=ro schema5/integrity/count +checks before any native/offline admin/Store open (native gate notexecuted); existingmanual +Argo remains Healthy/OutOfSync at7db8485, not whole-app reconciled. +Remaining gates: independent owner review, actual founder native approval, +fresh protected native consistent snapshot/off-cluster custody/offline restore, +refresh preflight, exact owner-source pin/Deployment-only manual sync and +verified native installed purpose/refusal/lifecycle behavior. Synthetic native +placement checks are not new provider authorization evidence. Runtime remains7f5c. + +Evidence: `docs/evidence/2026-10-11-purpose-image-release/`. + +## Resolve inherited published-image zlib finding + +```task +id: INFD-WP-0009-T05 +status: todo +priority: medium +``` + +Owner follow-through `INFD-RISK-20261011-ZLIB-85091` tracks actual published +base and purpose-overlay scan finding CVE-2026-85091: zlib 1.3.2-r0, fixed +1.3.2-r1, scanner MEDIUM; this is not an estate risk grade. Prepare and verify a +separate source-bound base/dependency refresh, then obtain distinct native +release approval before changing the workload. Review due 2026-10-18; the date +is a manual owner follow-up, with no automatic expiry/rollback controller. +T04 cannot be treated as a zero-CVE release or silently include the base fix. +Preserve the original detection, pending founder disposition and remediation +evidence. Close only after actual installed-package proof and full rescan. + +Evidence: `docs/evidence/2026-10-11-purpose-image-release/inherited-vulnerability-follow-through.json`.