diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 9adcb49f51..3248c7ecfb 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -35,3 +35,6 @@ container-builder/ @nvidia/cuopt-infra-codeowners
/dependencies.yaml @nvidia/cuopt-ci-codeowners
/build.sh @nvidia/cuopt-ci-codeowners
pyproject.toml @nvidia/cuopt-ci-codeowners
+
+# Ops code owners
+/SECURITY.md @nvidia/cuopt-ci-codeowners
diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml
index cd72e98a8d..8c05b5d1b0 100644
--- a/.github/workflows/pr.yaml
+++ b/.github/workflows/pr.yaml
@@ -163,6 +163,7 @@ jobs:
- '!CONTRIBUTING.md'
- '!LICENSE'
- '!README.md'
+ - '!SECURITY.md'
- '!ci/build_wheel*.sh'
- '!ci/check_style.sh'
- '!ci/docker/**'
@@ -219,6 +220,7 @@ jobs:
- '!CONTRIBUTING.md'
- '!LICENSE'
- '!README.md'
+ - '!SECURITY.md'
- '!agents/**'
- '!ci/build_docs.sh'
- '!ci/build_python.sh'
@@ -287,6 +289,7 @@ jobs:
- '!CONTRIBUTING.md'
- '!LICENSE'
- '!README.md'
+ - '!SECURITY.md'
- '!agents/**'
- '!ci/build_docs.sh'
- '!ci/build_wheel*.sh'
@@ -352,6 +355,7 @@ jobs:
- '!CONTRIBUTING.md'
- '!LICENSE'
- '!README.md'
+ - '!SECURITY.md'
- '!agents/**'
- '!ci/build_cpp.sh'
- '!ci/build_docs.sh'
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000..ada890837b
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,40 @@
+# Security
+
+## Reporting Security Issues
+
+> [!WARNING]
+> Do not report security vulnerabilities through public GitHub issues!
+
+Instead, please submit a private vulnerability report, see below.
+
+## Reporting a Vulnerability
+
+1. **NVIDIA Vulnerability Disclosure Program (preferred)**
+ Submit through the NVIDIA Product Security Incident Response Team (PSIRT) web form ()
+ This is the fastest path to triage and tracking.
+
+2. **Email NVIDIA PSIRT**
+ `psirt@nvidia.com` — encrypt sensitive reports with the
+ [NVIDIA PSIRT PGP key](https://www.nvidia.com/en-us/security/pgp-key).
+
+3. **GitHub Private Vulnerability Reporting**
+ Use the **Security and quality** tab on this repository → *Report a vulnerability*.
+
+## Report Details
+
+We prefer all communications to be in English.
+
+Reports should include the following:
+
+* reproducible example showing how the vulnerability can be exploited
+* statement about the impact (including affected versions)
+
+And we'd appreciate if they also include:
+
+* statement about whether you are interested in implementing the fix yourself
+
+## Disclosure Policy
+
+NVIDIA PSIRT will acknowledge receipt and coordinate triage, fix development, and coordinated disclosure.
+
+More on NVIDIA's response process: .
diff --git a/skills/cuopt-skill-evolution/BENCHMARK.md b/skills/cuopt-skill-evolution/BENCHMARK.md
index 954872f45f..37166215bd 100644
--- a/skills/cuopt-skill-evolution/BENCHMARK.md
+++ b/skills/cuopt-skill-evolution/BENCHMARK.md
@@ -9,12 +9,16 @@ This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the s
- Skill: `cuopt-skill-evolution`
- Evaluation date: 2026-05-29
- NVSkills-Eval profile: `external`
-- Overall verdict: FAIL
-- Tier 3 live agent evaluation: not available in this report
+- Environment: `local`
+- Dataset: 1 evaluation tasks
+- Attempts per task: 2
+- Pass threshold: 50%
+- Overall verdict: PASS
## Agents Used
-- Tier 3 agent details were not available in this report.
+- `claude-code`
+- `codex`
## Metrics Used
@@ -28,27 +32,47 @@ Reported benchmark dimensions:
Underlying evaluation signals used in this run:
-- No Tier 3 evaluation signal details were available in this report.
+- `security` (Security): checks for unsafe operations, secret leakage, and unauthorized access.
+- `skill_execution` (Skill Execution): verifies that the agent loaded the expected skill and workflow.
+- `skill_efficiency` (Efficiency): checks routing quality, decoy avoidance, and redundant tool usage.
+- `accuracy` (Accuracy): grades final-answer correctness against the reference answer.
+- `goal_accuracy` (Goal Accuracy): checks whether the overall user task completed successfully.
+- `behavior_check` (Behavior Check): verifies expected behavior steps, including safety expectations.
+- `token_efficiency` (Token Efficiency): compares token usage with and without the skill.
## Test Tasks
-Tier 3 evaluation task details were not available in this report.
+The benchmark dataset contained 1 evaluation tasks:
+
+- Positive tasks: 1 tasks where the skill was expected to activate.
+- Negative tasks: 0 tasks where no skill was expected.
+- Unlabeled tasks: 0 tasks where positive/negative intent could not be inferred.
+
+Task composition is derived from the evaluation dataset when possible. Entries with `expected_skill` set are treated as positive skill-activation cases, while entries with `expected_skill: null` are treated as negative activation cases.
## Results
-Tier 3 dimension rollup was not available in this report.
+| Dimension | Num | `claude-code` | `codex` |
+|---|---:|---:|---:|
+| Security | 2 | 100% (+0%) | 100% (+0%) |
+| Correctness | 2 | 90% (-5%) | 97% (+0%) |
+| Discoverability | 2 | 100% (+12%) | 84% (+12%) |
+| Effectiveness | 2 | 60% (-1%) | 66% (+2%) |
+| Efficiency | 2 | 93% (+19%) | 76% (+19%) |
+
+Score values show skill-assisted performance. Values in parentheses show uplift versus the no-skill baseline when baseline data is available.
## Tier 1: Static Validation Summary
-Tier 1 validation reported findings. NVSkills-Eval ran 9 checks and found 13 total findings.
+Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 9 total findings.
Top findings:
- MEDIUM QUALITY/quality_discoverability: Description contains vague words (`skills/cuopt-skill-evolution/SKILL.md`)
- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Instructions' (`skills/cuopt-skill-evolution/SKILL.md`)
- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Examples' (`skills/cuopt-skill-evolution/SKILL.md`)
-- MEDIUM SECURITY/Unknown (SQP-1): The skill is described as 'Always active — applies to every interaction,' which combined with a vague trigger condition (`skill-card.md:2`)
- LOW QUALITY/quality_discoverability: Description doesn't mention WHEN to use this skill (`skills/cuopt-skill-evolution/SKILL.md`)
+- LOW QUALITY/quality_discoverability: No '## Purpose' section (`skills/cuopt-skill-evolution/SKILL.md`)
## Tier 2: Deduplication Summary
@@ -57,8 +81,8 @@ Tier 2 validation passed. NVSkills-Eval ran 2 checks and found 0 total findings.
Notable observations:
- Context Deduplication: Collected 1 file(s)
-- Inter-Skill Deduplication: Parsed skill 'cuopt-skill-evolution': 185 char description
+- Inter-Skill Deduplication: Parsed skill 'cuopt-skill-evolution': 140 char description
## Publication Recommendation
-The skill should be reviewed before NVSkills-Eval publication. Skill owners should address the findings above and rerun NVSkills-Eval to refresh this benchmark.
+The skill is suitable to proceed toward NVSkills-Eval publication based on this benchmark. Skill owners should keep this file with the skill and refresh it when the evaluation dataset, skill behavior, or target agents materially change.
diff --git a/skills/cuopt-skill-evolution/SKILL.md b/skills/cuopt-skill-evolution/SKILL.md
index 65c5f2e8d2..7dcb3002ba 100644
--- a/skills/cuopt-skill-evolution/SKILL.md
+++ b/skills/cuopt-skill-evolution/SKILL.md
@@ -1,7 +1,7 @@
---
name: cuopt-skill-evolution
version: "26.08.00"
-description: After solving a non-trivial problem, detect generalizable learnings and propose skill updates so future interactions benefit automatically. Always active — applies to every interaction.
+description: After solving a non-trivial problem, detect generalizable learnings and propose skill updates. Always active — applies to every interaction.
license: Apache-2.0
metadata:
author: NVIDIA cuOpt Team
diff --git a/skills/cuopt-skill-evolution/skill-card.md b/skills/cuopt-skill-evolution/skill-card.md
index a9eb49b1cc..c14c953444 100644
--- a/skills/cuopt-skill-evolution/skill-card.md
+++ b/skills/cuopt-skill-evolution/skill-card.md
@@ -1,5 +1,5 @@
## Description:
-After solving a non-trivial problem, detect generalizable learnings and propose skill updates so future interactions benefit automatically.
+After solving a non-trivial problem, detect generalizable learnings and propose skill updates.
This skill is ready for commercial/non-commercial use.
@@ -7,9 +7,9 @@ This skill is ready for commercial/non-commercial use.
NVIDIA
### License/Terms of Use:
-Apache-2.0
+Apache 2.0
## Use Case:
-Developers and engineers use this skill to automatically detect generalizable learnings from agent-assisted problem solving and propose skill updates so future interactions benefit.
+Developers and engineers using cuOpt AI agent skills who need to capture generalizable learnings from corrections, failures, and undocumented behaviors, and propose structured skill updates.
### Deployment Geography for Use:
Global
@@ -19,14 +19,24 @@ Risk: Review before execution as proposals could introduce incorrect or misleadi
Mitigation: Review and scan skill before deployment.
## Reference(s):
-- [SKILL.md](skills/cuopt-skill-evolution/SKILL.md)
+- [SKILL.md (Skill Evolution workflow)](skills/cuopt-skill-evolution/SKILL.md)
+- [cuOpt User Guide](https://docs.nvidia.com/cuopt/user-guide/latest/introduction.html)
## Skill Output:
**Output Type(s):** [Analysis, Code]
-**Output Format:** [Markdown]
+**Output Format:** [Markdown with inline code diffs]
**Output Parameters:** [1D]
-**Other Properties Related to Output:** [None]
+**Other Properties Related to Output:** [Proposals require explicit user approval before application]
+
+## Evaluation Agents Used:
+- claude-code
+- codex
+
+
+
+## Evaluation Tasks:
+Evaluated against 1 evaluation task (1 positive skill-activation case) with 2 attempts per task, pass threshold 50%.
## Evaluation Metrics Used:
Reported benchmark dimensions:
@@ -36,7 +46,25 @@ Reported benchmark dimensions:
- Effectiveness: Checks whether the agent performs measurably better with the skill than without it.
- Efficiency: Checks whether the agent uses fewer tokens and avoids redundant work.
+Underlying evaluation signals used in this run:
+- `security`: Checks for unsafe operations, secret leakage, and unauthorized access.
+- `skill_execution`: Verifies that the agent loaded the expected skill and workflow.
+- `skill_efficiency`: Checks routing quality, decoy avoidance, and redundant tool usage.
+- `accuracy`: Grades final-answer correctness against the reference answer.
+- `goal_accuracy`: Checks whether the overall user task completed successfully.
+- `behavior_check`: Verifies expected behavior steps, including safety expectations.
+- `token_efficiency`: Compares token usage with and without the skill.
+
+
+## Evaluation Results:
+| Dimension | Num | `claude-code` | `codex` |
+|---|---:|---:|---:|
+| Security | 2 | 100% (+0%) | 100% (+0%) |
+| Correctness | 2 | 90% (-5%) | 97% (+0%) |
+| Discoverability | 2 | 100% (+12%) | 84% (+12%) |
+| Effectiveness | 2 | 60% (-1%) | 66% (+2%) |
+| Efficiency | 2 | 93% (+19%) | 76% (+19%) |
## Skill Version(s):
26.08.00 (source: frontmatter)
diff --git a/skills/cuopt-skill-evolution/skill.oms.sig b/skills/cuopt-skill-evolution/skill.oms.sig
index 5d026309ee..2208036693 100644
--- a/skills/cuopt-skill-evolution/skill.oms.sig
+++ b/skills/cuopt-skill-evolution/skill.oms.sig
@@ -1 +1 @@
-{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtc2tpbGwtZXZvbHV0aW9uIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU5MDE4MTIwNWYwMDJmYjQ4ZWNmMTYxYWM5M2UxY2RlMTlhYzllMDlmZDJiODBkMjk1OWIyNGQ1NmJjYmRiNTUiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImFsbG93X3N5bWxpbmtzIjogZmFsc2UsCiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IiwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdGlnbm9yZSIsCiAgICAgICAgIi5naXRodWIiLAogICAgICAgICIuZ2l0IiwKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiCiAgICAgIF0KICAgIH0sCiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgImRpZ2VzdCI6ICJlN2E1MDdlNzQ2OTkxMGQwMDRlNDJmOGE4YTQ4YzA2ZTc1N2Q0MDFiYmI0ZTc1Nzk5MGE4YjYzZTJkODM3N2VjIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAiZGlnZXN0IjogImEzYzVmNTUwZGQ4NTRmM2Y4ODg0MWRkN2NmM2ZlMzAyMmVkNTNiZDZiNGM1N2I2MGU2ZGVhYzE4MjI4NWI5MTEiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgImRpZ2VzdCI6ICI2YzhmZThhNDE0YWI4N2Y5NDBkNWVmMmFiNTIxYjliNzc4ODcwYTcwYWJmMDhmNzQ0OWQxYzgzNDZlNGI0NjNlIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAic2tpbGwtY2FyZC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJkaWdlc3QiOiAiZmI4ZjViM2RhZjEwZTdiMDljMGQ5MDM1YzIwNjk3YzczYjI5YzA0MTZhOTU2NjM1ZjNiNGJiOGMwOGQ1ZDdiZCIKICAgICAgfQogICAgXQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQD9s9OR7wOZ/zcevgiSldAciJkFojAlgTGKTZ15ukKp+zeI+isypZnPqYqzh+h5dLUCMA8zfo+j9WXq9VmMXw9U4hkF29CkGumN6l6H9EzTKmDNn+2N439kE4RynLH2LV/6yQ==","keyid":""}]}}
\ No newline at end of file
+{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtc2tpbGwtZXZvbHV0aW9uIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjI2OTQxNzQwYzNlMzE3MDExMjI0OGVkNWI0ZmRhOWQ4ZjYwZWU2NTcwNGFkOGMxMDY1YmE5MmM5MGI4Nzc4N2MiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjE1YjY1ODIxNGQzM2U2OTM4OTdiMGMxNGNjYzBmMTRmNDRlOWUwMjNmOTM2YTdlZDhjNWE4NzMwNmQ4YjNlOWQiLAogICAgICAgICJuYW1lIjogIkJFTkNITUFSSy5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjY5Y2ZmYzRmNGE0MjIwOGRmYzA0MDYxOGZiOTY5NDVkMmE4MWM0OWIwNGRlZTEwOTZiYzkzODc4MGIxNDJhN2YiLAogICAgICAgICJuYW1lIjogIlNLSUxMLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiNmM4ZmU4YTQxNGFiODdmOTQwZDVlZjJhYjUyMWI5Yjc3ODg3MGE3MGFiZjA4Zjc0NDlkMWM4MzQ2ZTRiNDYzZSIsCiAgICAgICAgIm5hbWUiOiAiZXZhbHMvZXZhbHMuanNvbiIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImUzM2UzNDQwN2U2NThiNjgxOGIyNGVlMzM0MDdhYzBmM2ZhNDE1ZTFhNmVlZDUyNWM2MWYyM2I2MDk2NmQ3MDMiLAogICAgICAgICJuYW1lIjogInNraWxsLWNhcmQubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9CiAgICBdLAogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IiwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdGh1YiIsCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIiwKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRpZ25vcmUiCiAgICAgIF0sCiAgICAgICJtZXRob2QiOiAiZmlsZXMiLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZQogICAgfQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGQCMEvXNF3AaHDYUPtx+5WiMjg4bM7xCCyZIyGxK2wc0eBukQlkqSMzNxqGuEEpMdOHIQIwHwDtKvBMckgRr5CEcQtEPHfCxsNPg8shokhSh/U4EqWGn60/eoFDJmv0NBTTftoh","keyid":""}]}}
\ No newline at end of file