Skip to content

Commit dc35167

Browse files
Merge branch 'main' into chore/nvskills-ci-cuopt-server-api-python
2 parents bc980f0 + f3ebc67 commit dc35167

15 files changed

Lines changed: 280 additions & 188 deletions

File tree

benchmarks/linear_programming/run_mps_files.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ else
360360
mapfile -t mps_files < <(find "$MPS_DIR" -type f \( -name "*.mps" -o -name "*.MPS" -o -name "*.SIF" \) | sort)
361361
else
362362
# Gather .mps/.MPS and .SIF files in the directory
363-
mapfile -t mps_files < <(ls "$MPS_DIR"/*.mps "$MPS_DIR"/*.MPS "$MPS_DIR"/*.SIF 2>/dev/null)
363+
mapfile -t mps_files < <(ls "$MPS_DIR"/*.mps "$MPS_DIR"/*.MPS "$MPS_DIR"/*.SIF "$MPS_DIR"/*.mps.gz 2>/dev/null)
364364
fi
365365

366366
echo "Found ${#mps_files[@]} .mps and .SIF files in $MPS_DIR"

cpp/src/barrier/barrier.cu

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,26 @@ class iteration_data_t {
17151715
cusparse_view.spmv(alpha, cusparse_u, beta, cusparse_v);
17161716
}
17171717

1718+
// v = alpha * A * Dinv * A^T * y + beta * v. Simple interface (plain device vectors,
1719+
// no pre-built cusparse descriptors) so it can be used as the `a_multiply` callback of
1720+
// the generic iterative-refinement operator for the ADAT (non-augmented) solve path.
1721+
void gpu_adat_multiply_simple(f_t alpha,
1722+
const rmm::device_uvector<f_t>& y,
1723+
f_t beta,
1724+
rmm::device_uvector<f_t>& v)
1725+
{
1726+
const i_t n = A.n;
1727+
rmm::device_uvector<f_t> u(n, stream_view_);
1728+
cusparse_view_.transpose_spmv(1.0, y, 0.0, u);
1729+
cub::DeviceTransform::Transform(cuda::std::make_tuple(u.data(), d_inv_diag.data()),
1730+
u.data(),
1731+
u.size(),
1732+
cuda::std::multiplies<>{},
1733+
stream_view_.value());
1734+
RAFT_CHECK_CUDA(stream_view_);
1735+
cusparse_view_.spmv(alpha, u, beta, v);
1736+
}
1737+
17181738
// v = alpha * A * Dinv * A^T * y + beta * v
17191739
void adat_multiply(f_t alpha,
17201740
const dense_vector_t<i_t, f_t>& y,
@@ -2947,6 +2967,37 @@ i_t barrier_solver_t<i_t, f_t>::gpu_compute_search_direction(iteration_data_t<i_
29472967
settings.log.printf("Linear solve failed\n");
29482968
return -1;
29492969
}
2970+
2971+
// Iterative refinement on the ADAT (Schur-complement) system using GMRES.
2972+
// The direct Cholesky solve can degrade in accuracy on ill-conditioned D near
2973+
// convergence, as the diagonal D can span many orders of magnitude with small
2974+
// barrier parameter. In this case, we launch a GMRES-based iterative refinement
2975+
// loop for added robustness in the Schur-complement (ADAT) approach.
2976+
// GMRES can handle large, potentially ill-conditioned systems better than simple Richardson
2977+
// or classical iterative refinement, at the potential cost of higher computational work and
2978+
// memory. This is only used on the pure Schur-complement (n_dense_columns == 0).
2979+
if (settings.barrier_iterative_refinement && data.n_dense_columns == 0) {
2980+
struct adat_op_t {
2981+
adat_op_t(iteration_data_t<i_t, f_t>& data) : data_(data) {}
2982+
iteration_data_t<i_t, f_t>& data_;
2983+
void a_multiply(f_t alpha,
2984+
const rmm::device_uvector<f_t>& x,
2985+
f_t beta,
2986+
rmm::device_uvector<f_t>& y) const
2987+
{
2988+
data_.gpu_adat_multiply_simple(alpha, x, beta, y);
2989+
}
2990+
void solve(rmm::device_uvector<f_t>& b, rmm::device_uvector<f_t>& x) const
2991+
{
2992+
data_.gpu_solve_adat(b, x);
2993+
}
2994+
} adat_op(data);
2995+
const f_t adat_solve_err =
2996+
iterative_refinement<i_t, f_t, adat_op_t>(adat_op, data.d_h_, data.d_dy_);
2997+
if (adat_solve_err > 1e-1) {
2998+
settings.log.printf("||ADAT*dy - h|| %e after IR\n", adat_solve_err);
2999+
}
3000+
}
29503001
} // Close NVTX range
29513002

29523003
// y_residual <- ADAT*dy - h

cpp/src/branch_and_bound/symmetry.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ class orbital_fixing_t {
319319
node = node->parent;
320320
}
321321

322-
surviving_generators_.resize(max_generators_);
322+
surviving_generators_.resize(symmetry->num_generators);
323323
std::iota(surviving_generators_.begin(), surviving_generators_.end(), 0);
324324

325325
// Seed cumulative fixings from the parent's stored orbital fixings.

skills/cuopt-multi-objective-exploration/BENCHMARK.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Recommended for publication based on the completed evaluation evidence in this r
99
## Evaluation Metadata
1010

1111
- Skill: `cuopt-multi-objective-exploration`
12-
- Evaluation date: 2026-07-30
13-
- Evaluator version: `0.9.2`
12+
- Evaluation date: 2026-08-05
13+
- Evaluator version: `1.0.0`
1414
- Agents: Claude Code (`aws/anthropic/bedrock-claude-opus-4-8`), Codex (`openai/openai/gpt-5.5`)
1515
- Tasks: 8 evaluation tasks (6 positive, 2 negative)
1616
- Dataset digest: `sha256:45bef5ee60d2a85ef8c4a7175c3d9a15eeac738e7bcf291d44de12ad4a35fff2` (skill-evaluator-dataset-snapshot/1)
@@ -34,12 +34,12 @@ The three-tier evaluation checks whether the skill:
3434

3535
| Measure | Claude Code (Baseline → Skill Uplift) | Codex (Baseline → Skill Uplift) |
3636
|---|---:|---:|
37-
| Overall | 67% → 95% (+28 points) | 67% → 95% (+28 points) |
37+
| Overall | 65% → 97% (+33 points) | 67% → 90% (+23 points) |
3838
| Security | 100% → 100% (±0 points) | 100% → 100% (±0 points) |
39-
| Correctness | 92% → 88% (-5 points) | 95% → 98% (+3 points) |
40-
| Discoverability | 31% → 100% (+69 points) | 44% → 95% (+52 points) |
41-
| Effectiveness | 79% → 87% (+9 points) | 72% → 82% (+10 points) |
42-
| Efficiency | 31% → 100% (+69 points) | 25% → 100% (+75 points) |
39+
| Correctness | 95% → 100% (+5 points) | 95% → 100% (+5 points) |
40+
| Discoverability | 25% → 100% (+75 points) | 44% → 84% (+40 points) |
41+
| Effectiveness | 79% → 87% (+8 points) | 73% → 85% (+12 points) |
42+
| Efficiency | 25% → 100% (+75 points) | 25% → 83% (+58 points) |
4343

4444
**How to read this table:** baseline is the same task attempted without the target skill. Uplift is `skill score - baseline score`, shown in percentage points.
4545

skills/cuopt-multi-objective-exploration/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ metadata:
1414
- workflow
1515
---
1616

17+
1718
# Multi-Objective Exploration
1819

1920

skills/cuopt-multi-objective-exploration/skill-card.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ NVIDIA <br>
99
### License/Terms of Use: <br>
1010
Apache 2.0 <br>
1111
## Use Case: <br>
12-
Developers and engineers use this skill to explore multi-objective tradeoffs (cost vs. service level, return vs. risk, etc.) by orchestrating repeated cuOpt solves into a Pareto frontier, enabling informed decision-making across competing objectives. <br>
12+
Developers and engineers who need to explore multi-objective tradeoffs (cost vs. service level, return vs. risk, makespan vs. overtime) by generating and interpreting Pareto frontiers from sequences of cuOpt LP, MILP, or QP solves. <br>
1313

1414
### Deployment Geography for Use: <br>
1515
Global <br>
@@ -26,7 +26,7 @@ Mitigation: Review and scan skill before deployment. <br>
2626

2727
## Reference(s): <br>
2828
- [cuOpt User Guide](https://docs.nvidia.com/cuopt/user-guide/latest/introduction.html) <br>
29-
- [cuopt-examples (GitHub)](https://github.com/NVIDIA/cuopt-examples) <br>
29+
- [cuopt-examples](https://github.com/NVIDIA/cuopt-examples) <br>
3030

3131

3232
## Skill Output: <br>
@@ -42,11 +42,11 @@ Mitigation: Review and scan skill before deployment. <br>
4242

4343

4444
## Evaluation Tasks: <br>
45-
8 evaluation tasks (6 positive, 2 negative) in isolated sandbox pods. <br>
45+
8 evaluation tasks (6 positive, 2 negative) run in isolated sandbox pods. <br>
4646

4747
## Evaluation Metrics Used: <br>
4848
Reported benchmark dimensions: <br>
49-
- Security: Whether the skill avoids unsafe operations, secret leakage, and unauthorized access. <br>
49+
- Security: Checks for unsafe operations, secret leakage, and unauthorized access. <br>
5050
- Correctness: Final-answer correctness against the reference answer. <br>
5151
- Discoverability: Whether the expected skill was found and executed when needed. <br>
5252
- Effectiveness: Whether the skill helped complete the user's goal and expected workflow. <br>
@@ -65,12 +65,12 @@ Underlying evaluation signals used in this run: <br>
6565
## Evaluation Results: <br>
6666
| Measure | Claude Code (Baseline → Skill Uplift) | Codex (Baseline → Skill Uplift) |
6767
|---|---:|---:|
68-
| Overall | 67% → 95% (+28 points) | 67% → 95% (+28 points) |
68+
| Overall | 65% → 97% (+33 points) | 67% → 90% (+23 points) |
6969
| Security | 100% → 100% (±0 points) | 100% → 100% (±0 points) |
70-
| Correctness | 92% → 88% (-5 points) | 95% → 98% (+3 points) |
71-
| Discoverability | 31% → 100% (+69 points) | 44% → 95% (+52 points) |
72-
| Effectiveness | 79% → 87% (+9 points) | 72% → 82% (+10 points) |
73-
| Efficiency | 31% → 100% (+69 points) | 25% → 100% (+75 points) |
70+
| Correctness | 95% → 100% (+5 points) | 95% → 100% (+5 points) |
71+
| Discoverability | 25% → 100% (+75 points) | 44% → 84% (+40 points) |
72+
| Effectiveness | 79% → 87% (+8 points) | 73% → 85% (+12 points) |
73+
| Efficiency | 25% → 100% (+75 points) | 25% → 83% (+58 points) |
7474

7575
## Skill Version(s): <br>
7676
26.10.00 (source: frontmatter) <br>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +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":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtbXVsdGktb2JqZWN0aXZlLWV4cGxvcmF0aW9uIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVmYjYwOTcwYzVjMjliOTNiN2MyNmYzYjAwMTAzY2RkZmNkYzk5NmJkNDg0ZGI5YzkzMTg0OWIzYWFiYWI3OWMiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAibWV0aG9kIjogImZpbGVzIiwKICAgICAgImhhc2hfdHlwZSI6ICJzaGEyNTYiLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZSwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdCIsCiAgICAgICAgIi5naXRpZ25vcmUiLAogICAgICAgICIuZ2l0YXR0cmlidXRlcyIsCiAgICAgICAgIi5naXRodWIiCiAgICAgIF0KICAgIH0sCiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgImRpZ2VzdCI6ICI3ZTdlZDg3YzJiNWY3NTQ2NTRhOWYzMWU1OTgyZmQ3OGQyYjYzN2FjMTMwNzQ2YTlmOGNmNDRmNWZkMWFmY2MwIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAiZGlnZXN0IjogIjBmYWU5NTgyMDJiYTk5MWMwNTA1M2FlYWM4ZDhjODE0OWQzZDk2OGZiOWZjNDQwNzM2NDBmNmZkZDBkZjg3ODkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgImRpZ2VzdCI6ICIyMzMzZjY2ZGZhMGVkZDU2ZWVkZTJlYWRlNzYwMmZiMzYyYWYxODAwY2IxYzZhOWMwYzYxODJkOGQ4ZTRhODczIgogICAgICB9LAogICAgICB7CiAgICAgICAgIm5hbWUiOiAic2tpbGwtY2FyZC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJkaWdlc3QiOiAiMWI2ODFkYzZmZjE5NWEyYzlmZjI3NGZlZGFlODQ4MDYxNWE0MDExM2YxMGFjNDBlMDMxMTEwZDUxMzlkNDdiOSIKICAgICAgfQogICAgXQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMGiZDFm0WsusNeBdDY9Wf0ArYzLhbBd7Q+hSZYz0voJArIbObODHo1YgJzcLkpkZQQIxAMZ1fHPnc1TIcgbUJJMJShPp8sK7D70FVEeythjTJhKqqUTLmClfyVBRtOvv5+Psow==","keyid":""}]}}
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":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtbXVsdGktb2JqZWN0aXZlLWV4cGxvcmF0aW9uIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEwNmZlM2MzM2VlY2I1ZTViNzI3YmYwNmE0YTVjYjBhNjFhMmVlMmRjMmU3NDRiYTRkMWY2ZmY4MjRkNWQ3MjgiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJzZXJpYWxpemF0aW9uIjogewogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZSwKICAgICAgImlnbm9yZV9wYXRocyI6IFsKICAgICAgICAiLmdpdGlnbm9yZSIsCiAgICAgICAgIi5naXQiLAogICAgICAgICIuZ2l0aHViIiwKICAgICAgICAiLmdpdGF0dHJpYnV0ZXMiCiAgICAgIF0sCiAgICAgICJtZXRob2QiOiAiZmlsZXMiLAogICAgICAiaGFzaF90eXBlIjogInNoYTI1NiIKICAgIH0sCiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIyMzNkOTg5MjYzYTNhMmRiYTk1ZTZjOWRiMGRkOTk5ZmUyMDVlN2I0YjU2YWM4OTgyNzA5YTcyZTY5YWEwOTA4IiwKICAgICAgICAibmFtZSI6ICJCRU5DSE1BUksubWQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI0ZDA1YzgxMGZkM2RiMWQxMDMyYmZlOTI5Y2ZjZWI2YzU1NzRmNjI1ZTQ2NjM0Y2NhMzcxOTk2NmE5OWI1MjE2IiwKICAgICAgICAibmFtZSI6ICJTS0lMTC5tZCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjIzMzNmNjZkZmEwZWRkNTZlZWRlMmVhZGU3NjAyZmIzNjJhZjE4MDBjYjFjNmE5YzBjNjE4MmQ4ZDhlNGE4NzMiLAogICAgICAgICJuYW1lIjogImV2YWxzL2V2YWxzLmpzb24iLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICJkMGNmZGZlMjIwYmQzOTliMTYwNmE4MWE2MDJlOTQ2ZTUzMTJmOWE4YTIwNWJiODc4ZTI3NmY4OGZlZTA2OThiIiwKICAgICAgICAibmFtZSI6ICJza2lsbC1jYXJkLm1kIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfQogICAgXQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGUCMQCivc19OY8IXB4H/8Qfj6iTxL5iMRAinNTRlVVRTA85KZOiPRhItLwl3J2SODWJtpcCMG63w9gFFRsS9hDkuhv1ZNLXqdfsJV85u54s6JvaYtf3ZVypMRegz9UjIk0wMJ4ckg==","keyid":""}]}}

0 commit comments

Comments
 (0)