Skip to content

Instantly share code, notes, and snippets.

@natzir
Created October 10, 2024 08:16
Show Gist options
  • Save natzir/8ce1b400b70ce569a3270e8691785cdd to your computer and use it in GitHub Desktop.
Save natzir/8ce1b400b70ce569a3270e8691785cdd to your computer and use it in GitHub Desktop.
Breaking and Fooling C2PA [Hack]
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyMliFswrzDEaQudH7phaf0o",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/natzir/8ce1b400b70ce569a3270e8691785cdd/breaking-and-fooling-c2pa-hack.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"# Breaking and Fooling C2PA\n",
"\n",
"---\n",
"\n",
"**Author:** Natzir, Technical SEO / Data Scientist\n",
"<br>**Twitter:** [@natzir9](https://twitter.com/natzir9)\n",
"\n",
"---"
],
"metadata": {
"id": "gjAE3pTHmbBc"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"collapsed": true,
"id": "IRaptSD1GNgn",
"outputId": "dbcf8420-5ab6-4c04-94db-e59d2bf66ea3"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\r0% [Working]\r \rGet:1 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ InRelease [3,626 B]\n",
"\r0% [Connecting to archive.ubuntu.com (185.125.190.81)] [Waiting for headers] [1 InRelease 0 B/3,626 \r0% [Connecting to archive.ubuntu.com (185.125.190.81)] [Waiting for headers] [Connecting to ppa.laun\r \rHit:2 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64 InRelease\n",
"\r0% [Connecting to archive.ubuntu.com (185.125.190.81)] [Waiting for headers] [Connecting to ppa.laun\r \rGet:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]\n",
"Hit:4 http://archive.ubuntu.com/ubuntu jammy InRelease\n",
"Get:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]\n",
"Hit:6 https://ppa.launchpadcontent.net/c2d4u.team/c2d4u4.0+/ubuntu jammy InRelease\n",
"Hit:7 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy InRelease\n",
"Hit:8 https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu jammy InRelease\n",
"Hit:9 http://archive.ubuntu.com/ubuntu jammy-backports InRelease\n",
"Hit:10 https://ppa.launchpadcontent.net/ubuntugis/ppa/ubuntu jammy InRelease\n",
"Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,392 kB]\n",
"Fetched 1,652 kB in 2s (779 kB/s)\n",
"Reading package lists... Done\n",
"Reading package lists... Done\n",
"Building dependency tree... Done\n",
"Reading state information... Done\n",
"build-essential is already the newest version (12.9ubuntu3).\n",
"wget is already the newest version (1.21.2-2ubuntu1).\n",
"unzip is already the newest version (6.0-26ubuntu3.2).\n",
"The following packages will be upgraded:\n",
" openssl\n",
"1 upgraded, 0 newly installed, 0 to remove and 44 not upgraded.\n",
"Need to get 1,186 kB of archives.\n",
"After this operation, 0 B of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 openssl amd64 3.0.2-0ubuntu1.15 [1,186 kB]\n",
"Fetched 1,186 kB in 1s (1,594 kB/s)\n",
"(Reading database ... 121925 files and directories currently installed.)\n",
"Preparing to unpack .../openssl_3.0.2-0ubuntu1.15_amd64.deb ...\n",
"Unpacking openssl (3.0.2-0ubuntu1.15) over (3.0.2-0ubuntu1.12) ...\n",
"Setting up openssl (3.0.2-0ubuntu1.15) ...\n",
"Processing triggers for man-db (2.10.2-1) ...\n",
"\u001b[1minfo:\u001b[0m downloading installer\n",
"\u001b[0m\u001b[1minfo: \u001b[0mprofile set to 'default'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdefault host triple is x86_64-unknown-linux-gnu\n",
"\u001b[0m\u001b[1minfo: \u001b[0msyncing channel updates for 'stable-x86_64-unknown-linux-gnu'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mlatest update on 2024-06-13, rust version 1.79.0 (129f3b996 2024-06-10)\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdownloading component 'cargo'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdownloading component 'clippy'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdownloading component 'rust-docs'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdownloading component 'rust-std'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdownloading component 'rustc'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdownloading component 'rustfmt'\n",
"\u001b[0m\u001b[1minfo: \u001b[0minstalling component 'cargo'\n",
"\u001b[0m\u001b[1minfo: \u001b[0minstalling component 'clippy'\n",
"\u001b[0m\u001b[1minfo: \u001b[0minstalling component 'rust-docs'\n",
" 15.3 MiB / 15.3 MiB (100 %) 2.1 MiB/s in 6s ETA: 0s\n",
"\u001b[0m\u001b[1minfo: \u001b[0minstalling component 'rust-std'\n",
" 24.4 MiB / 24.4 MiB (100 %) 5.9 MiB/s in 4s ETA: 0s\n",
"\u001b[0m\u001b[1minfo: \u001b[0minstalling component 'rustc'\n",
" 63.8 MiB / 63.8 MiB (100 %) 6.2 MiB/s in 10s ETA: 0s\n",
"\u001b[0m\u001b[1minfo: \u001b[0minstalling component 'rustfmt'\n",
"\u001b[0m\u001b[1minfo: \u001b[0mdefault toolchain set to 'stable-x86_64-unknown-linux-gnu'\n",
"\n",
" \u001b[0m\u001b[1m\u001b[0m\u001b[1m\u001b[32mstable-x86_64-unknown-linux-gnu installed\u001b[0m - rustc 1.79.0 (129f3b996 2024-06-10)\n",
"\n",
"\u001b[0m\u001b[1m\n",
"Rust is installed now. Great!\n",
"\u001b[0m\n",
"To get started you may need to restart your current shell.\n",
"This would reload your \u001b[0m\u001b[1mPATH\u001b[0m environment variable to include\n",
"Cargo's bin directory ($HOME/.cargo/bin).\n",
"\n",
"To configure your current shell, you need to source\n",
"the corresponding \u001b[0m\u001b[1menv\u001b[0m file under $HOME/.cargo.\n",
"\n",
"This is usually done by running one of the following (note the leading DOT):\n",
". \"$HOME/.cargo/env\" # For sh/bash/zsh/ash/dash/pdksh\n",
"source \"$HOME/.cargo/env.fish\" # For fish\n",
"\u001b[1m\u001b[32m Updating\u001b[0m crates.io index\n",
"\u001b[1m\u001b[32m Downloading\u001b[0m crates ...\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cargo-binstall v1.7.2\n",
"\u001b[1m\u001b[32m Installing\u001b[0m cargo-binstall v1.7.2\n",
"\u001b[1m\u001b[32m Updating\u001b[0m crates.io index\n",
"\u001b[1m\u001b[32m Locking\u001b[0m 437 packages to latest compatible versions\n",
"\u001b[1m\u001b[36m Adding\u001b[0m addr2line v0.22.0 \u001b[1m\u001b[33m(latest: v0.23.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m base64 v0.21.7 \u001b[1m\u001b[33m(latest: v0.22.1)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m bitflags v1.3.2 \u001b[1m\u001b[33m(latest: v2.5.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m dlopen2 v0.5.0 \u001b[1m\u001b[33m(latest: v0.7.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m errno v0.2.8 \u001b[1m\u001b[33m(latest: v0.3.9)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m fastrand v1.9.0 \u001b[1m\u001b[33m(latest: v2.1.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m generic-array v0.14.7 \u001b[1m\u001b[33m(latest: v1.0.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m gimli v0.29.0 \u001b[1m\u001b[33m(latest: v0.30.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m h2 v0.3.26 \u001b[1m\u001b[33m(latest: v0.4.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m h3 v0.0.2 \u001b[1m\u001b[33m(latest: v0.0.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m h3-quinn v0.0.3 \u001b[1m\u001b[33m(latest: v0.0.6)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m heck v0.4.1 \u001b[1m\u001b[33m(latest: v0.5.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m hermit-abi v0.3.9 \u001b[1m\u001b[33m(latest: v0.4.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m hostname v0.3.1 \u001b[1m\u001b[33m(latest: v0.4.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m http v0.2.12 \u001b[1m\u001b[33m(latest: v1.1.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m idna v0.4.0 \u001b[1m\u001b[33m(latest: v1.0.1)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m idna v0.5.0 \u001b[1m\u001b[33m(latest: v1.0.1)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m linux-raw-sys v0.4.14 \u001b[1m\u001b[33m(latest: v0.6.4)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m mio v0.8.11 \u001b[1m\u001b[33m(latest: v1.0.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m netlink-packet-route v0.17.1 \u001b[1m\u001b[33m(latest: v0.20.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m nix v0.27.1 \u001b[1m\u001b[33m(latest: v0.29.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m nu-ansi-term v0.46.0 \u001b[1m\u001b[33m(latest: v0.50.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m quick-error v1.2.3 \u001b[1m\u001b[33m(latest: v2.0.1)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m quinn v0.10.2 \u001b[1m\u001b[33m(latest: v0.11.2)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m quinn-proto v0.10.6 \u001b[1m\u001b[33m(latest: v0.11.3)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m quinn-udp v0.4.1 \u001b[1m\u001b[33m(latest: v0.5.2)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m redox_syscall v0.3.5 \u001b[1m\u001b[33m(latest: v0.5.2)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m redox_syscall v0.4.1 \u001b[1m\u001b[33m(latest: v0.5.2)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m ring v0.16.20 \u001b[1m\u001b[33m(latest: v0.17.8)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m rustc-hash v1.1.0 \u001b[1m\u001b[33m(latest: v2.0.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m rustls v0.21.12 \u001b[1m\u001b[33m(latest: v0.23.10)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m rustls-pemfile v1.0.4 \u001b[1m\u001b[33m(latest: v2.1.2)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m rustls-webpki v0.101.7 \u001b[1m\u001b[33m(latest: v0.102.4)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m spin v0.5.2 \u001b[1m\u001b[33m(latest: v0.9.8)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m system-configuration v0.5.1 \u001b[1m\u001b[33m(latest: v0.6.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m system-configuration-sys v0.5.0 \u001b[1m\u001b[33m(latest: v0.6.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m tokio-rustls v0.24.1 \u001b[1m\u001b[33m(latest: v0.26.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m untrusted v0.7.1 \u001b[1m\u001b[33m(latest: v0.9.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m wasi v0.11.0+wasi-snapshot-preview1 \u001b[1m\u001b[33m(latest: v0.13.1+wasi-0.2.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows v0.48.0 \u001b[1m\u001b[33m(latest: v0.57.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows-sys v0.48.0 \u001b[1m\u001b[33m(latest: v0.52.0)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows-targets v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_aarch64_gnullvm v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_aarch64_msvc v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_i686_gnu v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_i686_msvc v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_x86_64_gnu v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_x86_64_gnullvm v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m windows_x86_64_msvc v0.48.5 \u001b[1m\u001b[33m(latest: v0.52.5)\u001b[0m\n",
"\u001b[1m\u001b[36m Adding\u001b[0m winreg v0.50.0 \u001b[1m\u001b[33m(latest: v0.52.0)\u001b[0m\n",
"\u001b[1m\u001b[32m Downloading\u001b[0m crates ...\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m ahash v0.8.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m alloc-no-stdlib v2.0.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m alloc-stdlib v0.2.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m nu-ansi-term v0.46.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m num_threads v0.1.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m once_cell v1.19.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m heck v0.4.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hyper-rustls v0.27.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-filter v0.11.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m guess_host_triple v0.1.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m lru-cache v0.1.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m typenum v1.17.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tracing-subscriber v0.3.18\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tracing-attributes v0.1.27\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m lzma-sys v0.1.20\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio v1.38.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m h3 v0.0.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m encoding_rs v0.8.34\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m linux-raw-sys v0.4.14\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m brotli v6.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m libc v0.2.155\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m zstd-sys v2.0.11+zstd.1.5.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tracing v0.1.40\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tower-service v0.3.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tower-layer v0.3.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tower v0.4.13\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m toml_edit v0.22.14\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m toml_datetime v0.6.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m toml v0.8.14\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio-util v0.7.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio-tar v0.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio-stream v0.1.15\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m ring v0.17.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio-rustls v0.26.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio-macros v2.3.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tinyvec_macros v0.1.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m memchr v2.7.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m ring v0.16.20\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m maybe-async v0.2.10\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hickory-proto v0.24.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-width v0.1.13\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m try-lock v0.2.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tracing-serde v0.1.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tracing-log v0.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tracing-core v0.1.32\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tokio-rustls v0.24.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m maybe-owned v0.3.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m match_cfg v0.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m idna v0.5.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m idna v0.4.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m regex-automata v0.4.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m bzip2-sys v0.1.11+1.0.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m log v0.4.21\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m linked-hash-map v0.5.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m leon-macros v1.0.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m leon v3.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m lazy_static v1.5.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m kstring v2.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m jwalk v0.8.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m jobslot v0.2.17\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m jobserver v0.1.31\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m itoa v1.0.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m itertools v0.13.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m is_terminal_polyfill v1.70.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m is_ci v1.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m ipnet v2.9.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m io-close v0.3.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m indexmap v2.2.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m http-body-util v0.1.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m http-body v1.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m http v1.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m http v0.2.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m home v0.5.9\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hickory-resolver v0.24.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m heck v0.5.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hashbrown v0.14.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m h3-quinn v0.0.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m h2 v0.4.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m h2 v0.3.26\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-actor v0.31.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls v0.23.10\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m glob v0.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-worktree-state v0.11.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-worktree v0.34.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-validate v0.8.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-utils v0.1.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-url v0.27.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-traverse v0.39.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-transport v0.42.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-trace v0.1.9\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-tempfile v14.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-submodule v0.11.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-sec v0.10.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-revwalk v0.13.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-revision v0.27.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-refspec v0.23.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-ref v0.44.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-quote v0.4.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-protocol v0.45.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-prompt v0.8.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-pathspec v0.7.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-path v0.10.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-packetline-blocking v0.17.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-packetline v0.17.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-pack v0.51.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-odb v0.61.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-object v0.42.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-negotiate v0.13.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-macros v0.1.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-lock v14.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-index v0.33.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-ignore v0.11.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-hashtable v0.5.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-hash v0.14.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-glob v0.16.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-fs v0.11.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-features v0.38.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-discover v0.32.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-diff v0.44.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-date v0.8.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-credentials v0.24.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-config-value v0.14.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-config v0.37.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-commitgraph v0.24.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-command v0.3.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-chunk v0.4.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-bitmap v0.2.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix-attributes v0.22.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m gix v0.63.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m getrandom v0.2.15\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m generic-array v0.14.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m zeroize v1.8.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m zerocopy v0.7.34\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m xz2 v0.1.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m xattr v1.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m winnow v0.6.13\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m webpki-roots v0.26.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m want v0.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m version_check v0.9.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m utf8parse v0.2.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m untrusted v0.9.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-normalization v0.1.23\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-linebreak v0.1.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-bom v2.0.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m uluru v3.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hyper-util v0.1.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m time v0.3.36\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m textwrap v0.16.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tempfile v3.10.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m target-lexicon v0.12.14\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m syn v2.0.67\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m static_assertions v1.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m socket2 v0.5.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m sharded-slab v0.1.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m sha2 v0.10.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m serde_urlencoded v0.7.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m serde_json v1.0.117\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m serde_derive v1.0.203\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m serde v1.0.203\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m semver v1.0.23\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m sct v0.7.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m ryu v1.0.18\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls-webpki v0.102.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls-webpki v0.101.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls-pki-types v1.7.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls-pemfile v2.1.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls-native-certs v0.7.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls v0.21.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustix v0.38.34\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustc_version v0.4.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m reqwest v0.12.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m regex-syntax v0.8.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m regex v1.10.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m reflink-copy v0.1.18\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rayon-core v1.12.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rayon v1.10.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rand v0.8.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quote v1.0.36\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quinn-udp v0.5.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quinn-proto v0.11.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quinn-proto v0.10.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quinn v0.11.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quinn v0.10.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m prodash v28.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m proc-macro2 v1.0.86\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m pin-project-lite v0.2.14\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m pin-project-internal v1.1.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m pin-project v1.1.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m parking_lot_core v0.9.10\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m parking_lot v0.12.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m overload v0.1.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m nix v0.27.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-util v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m bstr v1.9.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m aho-corasick v1.1.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m zstd-safe v7.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m zstd v0.13.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m walkdir v2.5.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m vergen v8.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m url v2.5.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m untrusted v0.7.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-ident v1.0.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-bidi v0.3.15\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m tinyvec v1.6.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m time-macros v0.2.18\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m miniz_oxide v0.7.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m minisign-verify v0.2.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m mime v0.3.17\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m miette-derive v7.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m memmap2 v0.9.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m lock_api v0.4.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hostname v0.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m time-core v0.1.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m thread_local v1.1.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m thiserror-impl v1.0.61\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m thiserror v1.0.61\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m terminal_size v0.3.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m sync_wrapper v1.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m supports-unicode v3.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m supports-hyperlinks v3.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m supports-color v3.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m subtle v2.6.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m strum_macros v0.26.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m strum v0.26.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m strsim v0.11.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m spin v0.9.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m spin v0.5.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m shell-words v1.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m sha1_smol v1.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m serde_spanned v0.6.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m serde-tuple-vec-map v1.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m scopeguard v1.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m same-file v1.0.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustversion v1.0.17\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustls-pemfile v1.0.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rustc-hash v1.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m resolv-conf v0.7.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rand_core v0.6.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m rand_chacha v0.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quinn-udp v0.4.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m quick-error v1.2.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m ppv-lite86 v0.2.17\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m powerfmt v0.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m pkg-config v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m pin-utils v0.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m percent-encoding v2.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m parking v2.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m owo-colors v4.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m openssl-probe v0.1.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-task v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-macro v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-lite v2.3.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-io v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-channel v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m flate2 v1.0.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m file-format v0.25.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m faster-hex v0.9.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m embed-resource v2.4.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m either v1.12.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m detect-targets v0.1.17\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m derive_destructure2 v0.1.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m data-encoding v2.6.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crossbeam-utils v0.8.20\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crossbeam-epoch v0.9.18\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crossbeam-channel v0.5.13\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crc32fast v1.4.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m compact_str v0.7.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m command-group v5.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m clap_builder v4.5.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m clap v4.5.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cc v1.0.99\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cargo_toml v0.20.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cargo_metadata v0.18.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m camino v1.1.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m bzip2 v0.4.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m bytes v1.6.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m brotli-decompressor v4.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m async-trait v0.1.80\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m async-compression v0.4.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m arrayvec v0.7.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m arc-swap v1.7.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m anyhow v1.0.86\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m anstyle-parse v0.2.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m allocator-api2 v0.2.18\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m hyper v1.3.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m human_format v1.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m httpdate v1.0.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m httparse v1.9.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m smawk v0.3.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m smallvec v1.13.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m slab v0.4.9\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m simple-git v0.2.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m signal-hook-registry v1.4.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m option-ext v0.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m num_cpus v1.16.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m mio v0.8.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m miette v7.2.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-sink v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-executor v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m futures-core v0.3.30\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m fs4 v0.8.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m fs-lock v0.1.3\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m form_urlencoded v1.2.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m fnv v1.0.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m filetime v0.2.23\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m fastrand v2.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m fastrand v1.9.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m errno v0.3.9\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m errno v0.2.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m enum-as-inner v0.6.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m dirs-sys v0.4.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m dirs v5.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m digest v0.10.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m deranged v0.3.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m deflate64 v0.1.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crypto-common v0.1.6\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crossbeam-queue v0.3.11\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crossbeam-deque v0.8.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m crossbeam v0.8.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cpufeatures v0.2.12\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m clru v0.6.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m clap_lex v0.7.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m clap_derive v4.5.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cfg-if v1.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m castaway v0.2.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m bytesize v1.3.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m bitflags v2.5.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstall-tar v0.4.42\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-types v0.7.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-registry v0.9.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-manifests v0.13.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-git-repo-api v0.3.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-fetchers v0.7.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-downloader v0.11.5\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk-bins v0.4.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m binstalk v0.26.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m beef v0.5.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m base64 v0.22.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m base64 v0.21.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m base16 v0.2.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m atomic-waker v1.1.2\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m async_zip v0.0.17\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m anstyle-query v1.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m num-conv v0.1.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m colorchoice v1.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cargo-toml-workspace v6.0.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m cargo-platform v0.1.8\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m block-buffer v0.10.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m autocfg v1.3.0\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m normalize-path v0.2.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m equivalent v1.0.1\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m atomic-file-install v1.0.4\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m anstyle v1.0.7\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m anstream v0.6.14\n",
"\u001b[1m\u001b[32m Downloaded\u001b[0m adler v1.0.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro2 v1.0.86\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m unicode-ident v1.0.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m libc v0.2.155\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m quote v1.0.36\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m syn v2.0.67\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cfg-if v1.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m once_cell v1.19.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m thiserror v1.0.61\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m bytes v1.6.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m memchr v2.7.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m autocfg v1.3.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tinyvec_macros v0.1.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tinyvec v1.6.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m jobserver v0.1.31\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m itoa v1.0.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m thiserror-impl v1.0.61\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cc v1.0.99\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m serde_derive v1.0.203\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m unicode-normalization v0.1.23\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m bitflags v2.5.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m smallvec v1.13.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m version_check v0.9.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m fastrand v2.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-utils v0.8.20\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m lock_api v0.4.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m pin-project-lite v0.2.14\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m scopeguard v1.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m parking_lot_core v0.9.10\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m adler v1.0.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m miniz_oxide v0.7.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crc32fast v1.4.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m regex-automata v0.4.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m flate2 v1.0.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m bstr v1.9.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m parking_lot v0.12.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-trace v0.1.9\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-epoch v0.9.18\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-deque v0.8.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m ahash v0.8.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m faster-hex v0.9.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rayon-core v1.12.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m either v1.12.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m zerocopy v0.7.34\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustix v0.38.34\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-queue v0.3.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-channel v0.5.13\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-utils v0.1.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m linux-raw-sys v0.4.14\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m allocator-api2 v0.2.18\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m serde v1.0.203\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hashbrown v0.14.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam v0.8.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rayon v1.10.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-hash v0.14.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m human_format v1.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m same-file v1.0.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m bytesize v1.3.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m walkdir v2.5.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m prodash v28.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m jwalk v0.8.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m sha1_smol v1.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-features v0.38.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m socket2 v0.5.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio-macros v2.3.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m mio v0.8.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m signal-hook-registry v1.4.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m num_cpus v1.16.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio v1.38.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-core v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m log v0.4.21\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tracing-core v0.1.32\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m num-conv v0.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m time-core v0.1.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m slab v0.4.9\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m winnow v0.6.13\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m getrandom v0.2.15\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-io v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m ring v0.17.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tracing-attributes v0.1.27\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-sink v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tracing v0.1.40\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m home v0.5.9\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m fnv v1.0.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m pkg-config v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m powerfmt v0.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m deranged v0.3.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m time-macros v0.2.18\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m num_threads v0.1.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m time v0.3.36\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-path v0.10.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m spin v0.9.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m untrusted v0.9.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-date v0.8.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-channel v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-macro v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m pin-utils v0.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m equivalent v1.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-task v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m indexmap v2.2.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-util v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-actor v0.31.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-validate v0.8.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m percent-encoding v2.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m unicode-bidi v0.3.15\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m form_urlencoded v1.2.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-object v0.42.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tempfile v3.10.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustversion v1.0.17\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m idna v0.5.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio-util v0.7.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m memmap2 v0.9.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m static_assertions v1.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m url v2.5.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m ryu v1.0.18\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m semver v1.0.23\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m zstd-sys v2.0.11+zstd.1.5.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls-pki-types v1.7.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m http v1.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-chunk v0.4.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m bzip2-sys v0.1.11+1.0.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m lzma-sys v0.1.20\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-fs v0.11.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-hashtable v0.5.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m pin-project-internal v1.1.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m httparse v1.9.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m alloc-no-stdlib v2.0.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m zstd-safe v7.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m alloc-stdlib v0.2.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m pin-project v1.1.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-tempfile v14.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m http-body v1.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls v0.23.10\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m atomic-waker v1.1.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m try-lock v0.2.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m want v0.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m h2 v0.4.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m brotli-decompressor v4.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-commitgraph v0.24.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls-webpki v0.102.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-quote v0.4.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m base64 v0.22.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m subtle v2.6.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tower-layer v0.3.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls v0.21.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m zeroize v1.8.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tower-service v0.3.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tower v0.4.13\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls-pemfile v2.1.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-revwalk v0.13.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hyper v1.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m brotli v6.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m zstd v0.13.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m bzip2 v0.4.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m xz2 v0.1.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m sct v0.7.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls-webpki v0.101.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-glob v0.16.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rand_core v0.6.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m ring v0.16.20\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m encoding_rs v0.8.34\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m filetime v0.2.23\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m ppv-lite86 v0.2.17\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m ipnet v2.9.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m unicode-bom v2.0.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m deflate64 v0.1.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m openssl-probe v0.1.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls-native-certs v0.7.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m async-compression v0.4.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rand_chacha v0.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio-rustls v0.26.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hyper-util v0.1.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-lock v14.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m webpki-roots v0.26.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m castaway v0.2.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-config-value v0.14.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m spin v0.5.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m shell-words v1.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m heck v0.5.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m untrusted v0.7.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-command v0.3.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m compact_str v0.7.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hyper-rustls v0.27.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rand v0.8.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m http-body-util v0.1.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m serde_urlencoded v0.7.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m kstring v2.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m http v0.2.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-sec v0.10.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m mime v0.3.17\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustc-hash v1.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m sync_wrapper v1.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m reqwest v0.12.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m quinn-proto v0.10.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-attributes v0.22.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-executor v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m quinn-udp v0.4.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m typenum v1.17.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m fastrand v1.9.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m serde_json v1.0.117\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m h3 v0.0.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m quinn v0.10.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures v0.3.30\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m strum_macros v0.26.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-url v0.27.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m maybe-owned v0.3.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m generic-array v0.14.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m async-trait v0.1.80\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m smawk v0.3.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m unicode-width v0.1.13\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m strum v0.26.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m base64 v0.21.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m unicode-linebreak v0.1.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m heck v0.4.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m match_cfg v0.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m is_ci v1.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m enum-as-inner v0.6.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m supports-color v3.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hostname v0.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m textwrap v0.16.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustls-pemfile v1.0.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-types v0.7.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m h3-quinn v0.0.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m h2 v0.3.26\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-prompt v0.8.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-ref v0.44.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio-rustls v0.24.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-traverse v0.39.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m idna v0.4.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m toml_datetime v0.6.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m serde_spanned v0.6.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m terminal_size v0.3.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m xattr v1.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-bitmap v0.2.11\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m miette-derive v7.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m parking v2.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m supports-hyperlinks v3.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m data-encoding v2.6.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m supports-unicode v3.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m linked-hash-map v0.5.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m owo-colors v4.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m quick-error v1.2.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m arrayvec v0.7.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m uluru v3.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m resolv-conf v0.7.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m miette v7.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m lru-cache v0.1.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hickory-proto v0.24.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m futures-lite v2.3.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-index v0.33.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m toml_edit v0.22.14\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-credentials v0.24.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-ignore v0.11.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-revision v0.27.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio-stream v0.1.15\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-packetline v0.17.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-packetline-blocking v0.17.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m camino v1.1.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m clru v0.6.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-pack v0.51.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-transport v0.42.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-filter v0.11.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tokio-tar v0.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-refspec v0.23.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-worktree v0.34.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m async_zip v0.0.17\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m hickory-resolver v0.24.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m aho-corasick v1.1.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstall-tar v0.4.42\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-config v0.37.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-pathspec v0.7.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m maybe-async v0.2.10\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m io-close v0.3.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m arc-swap v1.7.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m regex-syntax v0.8.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m anyhow v1.0.86\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m httpdate v1.0.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-downloader v0.11.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-odb v0.61.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-worktree-state v0.11.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-protocol v0.45.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-submodule v0.11.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m block-buffer v0.10.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m crypto-common v0.1.6\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m rustc_version v0.4.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m toml v0.8.14\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m leon v3.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-discover v0.32.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-negotiate v0.13.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cargo-platform v0.1.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m vergen v8.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-diff v0.44.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m serde-tuple-vec-map v1.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m derive_destructure2 v0.1.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix-macros v0.1.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m normalize-path v0.2.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m utf8parse v0.2.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m anstyle-parse v0.2.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m gix v0.63.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cargo_metadata v0.18.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cargo_toml v0.20.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m digest v0.10.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m regex v1.10.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m reflink-copy v0.1.18\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m errno v0.2.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cpufeatures v0.2.12\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m is_terminal_polyfill v1.70.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m detect-targets v0.1.17\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m glob v0.3.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m target-lexicon v0.12.14\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m anstyle-query v1.1.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m colorchoice v1.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m anstyle v1.0.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m anstream v0.6.14\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cargo-toml-workspace v6.0.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m sha2 v0.10.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m guess_host_triple v0.1.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m atomic-file-install v1.0.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m leon-macros v1.0.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m embed-resource v2.4.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m simple-git v0.2.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-git-repo-api v0.3.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m fs4 v0.8.4\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m itertools v0.13.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m nix v0.27.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m overload v0.1.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m lazy_static v1.5.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m minisign-verify v0.2.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m clap_lex v0.7.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m base16 v0.2.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m strsim v0.11.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m option-ext v0.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m dirs-sys v0.4.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m clap_builder v4.5.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-registry v0.9.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-fetchers v0.7.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m command-group v5.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m sharded-slab v0.1.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m nu-ansi-term v0.46.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m fs-lock v0.1.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m cargo-binstall v1.7.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-bins v0.4.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m jobslot v0.2.17\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m clap_derive v4.5.5\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tracing-serde v0.1.3\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m beef v0.5.2\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m thread_local v1.1.8\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tracing-subscriber v0.3.18\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m clap v4.5.7\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk-manifests v0.13.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m binstalk v0.26.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m dirs v5.0.1\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m tracing-log v0.2.0\n",
"\u001b[1m\u001b[32m Compiling\u001b[0m file-format v0.25.0\n",
"\u001b[1m\u001b[32m Finished\u001b[0m `release` profile [optimized] target(s) in 13m 21s\n",
"\u001b[1m\u001b[32m Installing\u001b[0m /root/.cargo/bin/cargo-binstall\n",
"\u001b[1m\u001b[32m Installed\u001b[0m package `cargo-binstall v1.7.2` (executable `cargo-binstall`)\n",
"\u001b[32m INFO\u001b[0m \u001b[1mresolve\u001b[0m\u001b[2m:\u001b[0m Resolving package: 'c2patool'\n",
"\u001b[33m WARN\u001b[0m The package c2patool v0.9.3 (x86_64-unknown-linux-gnu) has been downloaded from github.com\n",
"\u001b[32m INFO\u001b[0m This will install the following binaries:\n",
"\u001b[32m INFO\u001b[0m - c2patool (c2patool -> /root/.cargo/bin/c2patool)\n",
"Do you wish to continue? yes/[no]\n",
"? yes\n",
"\u001b[32m INFO\u001b[0m Installing binaries...\n",
"\u001b[32m INFO\u001b[0m Done in 1465.695842466s\n",
"c2patool 0.9.3\n"
]
}
],
"source": [
"# Instalar dependencias necesarias\n",
"!apt-get update\n",
"!apt-get install -y openssl wget build-essential unzip\n",
"\n",
"# Instalar Rust y cargo-binstall\n",
"!curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\n",
"!source $HOME/.cargo/env\n",
"!echo 'export PATH=\"$HOME/.cargo/bin:$PATH\"' >> ~/.bashrc\n",
"!source ~/.bashrc\n",
"\n",
"# Usar cargo-binstall para instalar c2patool\n",
"!$HOME/.cargo/bin/cargo install cargo-binstall\n",
"!$HOME/.cargo/bin/cargo binstall c2patool\n",
"\n",
"# Verificar que c2patool se ha instalado correctamente\n",
"!$HOME/.cargo/bin/c2patool --version"
]
},
{
"cell_type": "code",
"source": [
"!openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:4096"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "hbc4pUle1Du8",
"outputId": "74438329-4e18-42b4-abc9-91881378664c"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"...............+.+........+....+..+....+..+...+....+.....+...............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+.........+.........+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+.+........+......+...+..........+............+......+...+.....+................+.....+....+.....+....+...........+.+.....+.+.....+..........+.........+..................+............+..............+...............+......+...........................................+.....+...+.......+...............+..+...+............+...+...+...+.......+..+...+.......+........+........................+....+.........+...........+....+.....+.+...........+.+.....+............+......+.+...........+............+.+..+.........+......+...+.+........+......+.+...............+.....+..................+...+...+......+.+........+......+...................+.....................+...+......+.....+............+....+......+..+...+....+...........+.......+..+.+..+...+....+...+......+............+.................+.+......+......+........+......+.+..+.......+.....+.............+.....+.+...............+..+.......+...+........+.........+......+......+......+....+.....................+...+.........+...+....................+...............+..................+.+.....+....+......+...........+.......+........+.......+...+.........+...+...............+...............+...+...+...............+.....+......+.+..............+....+.........+.....+...+............+.+..+...+.+.........+...........+...+.............+..+.+.....................+.........+..............................+......+......+..+.+..+.........+.+...............+............+...........+......+.+.....+......................+....................+...+....+.....+..................+.+.........+...+..............+......+...+..........+...........+..........+...........+...+......+.........+......+.+........+...............+....+...+........+.......+.....+.........+.........+....+............+...+..................+.........+....................+......+.........+....+..+....+..................+...+..+.+..............+......................+.....+.............+...+...+.....+.........+.+..............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n",
".+.....+...+....+.....+................+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.+........+.....................+...................+...+..............+...+.+..+....+.........+......+..............+......+.+...............+...............+............+.....+......................+......+..............+.....................+.........+..........+......+..............+...............+...+.+......+...+......+..+...+......+.+.................+......+....+............+...+..+....+.........+............+...........+............+.+..+....+.....+.+...............+...+.....+....+..+.....................+.............+..+.......+..+......+.......+.....+..........+...........+.+........+.......+...........+..........+...............+.........+...+.....+.+.........+.....+............+.+...+......+...............+...+...............+..+......+.......+...+.................+.......+...............+...+..................+...+..+....+......+.....+.........+....+.........+..+..........+........................+..+....+..........................+.........+......+.............+.........+..+...+................+......+...+...+............+...........+.+........+......+.......+.........+.......................+.+..+....+...+...........+.+..............+.+...+.....+.......+.....+...+.+.........+...........+......+.+.....+.........+....+...........+...+......+..........+..+....+........+.+..............+......+.........+..........+...+.....+.......+.....+...+.........+....+.....+....+............+.....+...+.+...........+.+............+...........+...........................+.........................+.........+.....+..........+..................+...+.....+....+.....+.+...+.....+............+.......+..+...+.............+...+......+.....+.+...+.....................+...+............+..................+.....+.....................+.+......+.....+...+....+......+..............+......+....+............+...+..+.+...+.....+...................+......+..+............+.+..+.......+..+....+............+..+.............+..+.......+.....+.+..................+..............+.+.........+...+...............+.........+.....+.+............+..+.........+.+.....+......+.......+...+...+..............+......+....+...+.....+...+..........+.....+.+.....+..........+.....+.+...................................+....+........+.+......+...+...+........+......+...+.+...............+.....+....+...............+...............+..+........................+.+......+........+....+..+.........+.........+.+.................+....+.........+..+.......+..+.............+..+...+.......+...+...+.....+....+...+...+...+.................+...+.+...........+....+......+...+..+..................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"!openssl req -new -x509 -key private_key.pem -out certs.pem -days 3650 \\\n",
"-subj \"/C=DE/ST=Hessen/L=Wetzlar/O=Leica Camera AG/OU=Camera Department/CN=Leica Camera AG/serialNumber=2023-1/street=Am Leitz-Park 5/postalCode=35578\" \\\n",
"-addext \"keyUsage=digitalSignature\" \\\n",
"-addext \"extendedKeyUsage=emailProtection\"\n"
],
"metadata": {
"id": "GFrTXLKLQJ34"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"!openssl x509 -in certs.pem -text -noout"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"collapsed": true,
"id": "JuFPjl0hoaZN",
"outputId": "17a18115-be25-4074-d1b4-03650e8b43cc"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Certificate:\n",
" Data:\n",
" Version: 3 (0x2)\n",
" Serial Number:\n",
" 48:2e:01:fc:fb:7c:82:1f:07:55:09:cd:75:7e:39:00:32:4f:01:44\n",
" Signature Algorithm: sha256WithRSAEncryption\n",
" Issuer: C = DE, ST = Hessen, L = Wetzlar, O = Leica Camera AG, OU = Camera Department, CN = Leica Camera AG, serialNumber = 2023-1, street = Am Leitz-Park 5, postalCode = 35578\n",
" Validity\n",
" Not Before: Jun 23 09:51:41 2024 GMT\n",
" Not After : Jun 21 09:51:41 2034 GMT\n",
" Subject: C = DE, ST = Hessen, L = Wetzlar, O = Leica Camera AG, OU = Camera Department, CN = Leica Camera AG, serialNumber = 2023-1, street = Am Leitz-Park 5, postalCode = 35578\n",
" Subject Public Key Info:\n",
" Public Key Algorithm: rsaEncryption\n",
" Public-Key: (4096 bit)\n",
" Modulus:\n",
" 00:d9:b1:13:11:79:3f:cb:81:11:8d:87:75:d2:96:\n",
" 92:1c:61:f6:3e:4a:ff:2f:44:10:a6:79:c7:d9:51:\n",
" 4a:d6:f7:33:52:f6:8b:0d:a5:db:a3:d2:c1:e5:7b:\n",
" 1c:22:ae:90:ad:60:d3:65:b3:87:5d:58:77:29:f0:\n",
" 93:bf:81:fa:d3:f8:98:89:97:32:ca:87:30:3a:05:\n",
" 18:ef:b1:37:8a:4c:57:80:b2:76:c0:5d:df:f3:38:\n",
" ff:17:a9:cf:ec:d9:ff:77:3d:a1:9c:b7:a9:c7:37:\n",
" c3:91:78:05:91:f8:5e:54:76:ea:4f:bb:99:d4:79:\n",
" 42:6d:ed:84:38:4a:9d:98:ba:ca:d5:43:b6:31:01:\n",
" 0f:d7:0a:24:84:ea:b0:e0:db:6e:ed:a4:33:09:27:\n",
" 08:56:24:c5:bd:f2:f6:18:dc:24:38:8a:bc:65:6d:\n",
" 2a:da:86:41:65:5a:33:76:89:c5:20:a9:aa:4d:8a:\n",
" 08:ab:67:6c:42:85:b9:82:84:6a:28:b9:d0:d5:31:\n",
" 64:2e:23:bd:18:be:76:81:37:9f:e9:45:d5:1d:6b:\n",
" e9:7e:48:ef:da:76:9b:19:29:87:f7:76:0d:9a:c4:\n",
" bd:39:43:ae:8b:0b:c6:52:87:8d:d0:b0:5e:bc:3d:\n",
" ae:0b:42:be:c8:16:8f:33:ed:e5:08:21:c9:5d:98:\n",
" 78:08:54:6f:68:f8:f8:d0:a6:4d:e1:65:9e:6a:b8:\n",
" 6e:87:b8:15:70:f8:06:4a:82:13:52:a6:e9:86:eb:\n",
" a1:ab:ce:51:95:66:91:9d:12:07:b0:51:2d:27:84:\n",
" 88:9a:e5:c6:92:59:38:7e:36:0b:f3:2b:f2:42:e1:\n",
" 13:6d:bf:b9:1c:ce:98:31:84:3b:37:c6:f6:64:27:\n",
" 7e:89:ce:74:79:84:79:bd:f7:e4:a0:1a:17:60:79:\n",
" 47:2e:8b:f0:a9:d1:43:d1:9a:b0:45:64:27:f0:3e:\n",
" 5e:3d:3e:37:29:04:4e:87:6e:74:29:18:b6:22:b6:\n",
" 61:da:dc:8a:f9:7d:90:a7:ca:a8:80:fb:f0:e0:be:\n",
" d4:a1:8c:d4:10:58:08:71:f2:88:a2:39:26:c7:07:\n",
" f2:75:eb:3a:c5:05:c9:e6:8b:1e:0a:03:41:5f:0b:\n",
" 2e:0b:7f:fd:32:e4:ac:79:72:5b:f0:19:44:f4:92:\n",
" dd:ec:dd:41:30:8c:a8:ac:70:87:02:09:f0:f7:5b:\n",
" 3f:58:cc:f5:4b:bb:ac:8d:4e:11:20:51:ae:9e:1c:\n",
" db:5c:2c:54:2b:db:cd:86:ed:27:4c:e3:1f:a5:01:\n",
" e3:cd:90:4c:74:df:8c:14:7a:68:ba:d2:48:3b:8d:\n",
" 54:96:29:10:dc:1c:62:e6:63:de:c8:87:12:f0:2f:\n",
" 06:e6:65\n",
" Exponent: 65537 (0x10001)\n",
" X509v3 extensions:\n",
" X509v3 Subject Key Identifier: \n",
" 11:7F:75:A9:08:60:47:55:E5:4B:58:6F:09:41:B6:38:41:58:E4:91\n",
" X509v3 Authority Key Identifier: \n",
" 11:7F:75:A9:08:60:47:55:E5:4B:58:6F:09:41:B6:38:41:58:E4:91\n",
" X509v3 Basic Constraints: critical\n",
" CA:TRUE\n",
" X509v3 Key Usage: \n",
" Digital Signature\n",
" X509v3 Extended Key Usage: \n",
" E-mail Protection\n",
" Signature Algorithm: sha256WithRSAEncryption\n",
" Signature Value:\n",
" 29:0a:3e:7b:a1:9e:03:58:2f:13:8e:35:64:0f:3e:4e:9f:77:\n",
" 6d:32:c6:9f:c9:d5:8c:23:cf:09:0e:b0:46:8b:56:b7:82:4b:\n",
" ed:63:af:87:27:71:1e:a0:b8:51:be:7a:a6:d2:85:80:cc:68:\n",
" 4b:c9:d8:4b:45:ff:84:0b:f4:10:2b:fd:bd:7c:24:f9:55:87:\n",
" 27:06:06:b8:6d:2b:cc:68:e4:65:dc:33:12:d8:2d:a0:fe:f3:\n",
" 30:2e:28:d5:dd:62:fb:1b:46:7f:89:7c:fb:45:34:3a:ca:2c:\n",
" bc:bc:d9:7a:95:d6:64:b1:42:a8:a3:09:83:ad:eb:50:cb:49:\n",
" 09:9e:67:50:0c:70:59:b1:a7:57:d6:41:39:5d:5c:73:d1:52:\n",
" 05:17:c3:64:9d:cd:ad:ca:8a:f3:79:0f:0b:ee:be:97:42:37:\n",
" da:35:1c:23:8d:e4:e0:15:89:0e:f7:82:15:42:45:33:41:6b:\n",
" b7:4b:9e:e6:67:b3:b6:45:8b:ce:34:77:bc:a0:9f:9c:46:6d:\n",
" 77:84:ec:24:de:6e:dc:d1:ec:f2:b9:3f:8c:3c:2a:ed:d0:6e:\n",
" 03:d9:7a:ec:7e:ae:34:50:df:a6:33:d6:d5:b2:26:48:b3:79:\n",
" 54:20:e0:fa:81:20:d4:46:cb:84:3a:11:b7:86:9a:2c:ba:ce:\n",
" aa:b8:c4:8c:2e:6f:b4:df:9b:fe:04:92:f3:03:f0:87:3b:b7:\n",
" 99:7e:32:58:28:b2:9f:fa:13:58:e2:d8:44:24:63:66:07:a5:\n",
" b7:2f:e7:ec:3c:df:d5:63:7c:79:74:50:70:8c:fa:3c:bc:81:\n",
" 78:a0:ce:9a:eb:39:0b:15:7e:5a:44:04:ed:03:29:f8:3d:c7:\n",
" 04:1f:fc:3f:0e:72:8c:46:1c:b8:29:67:26:cc:46:c8:ec:1f:\n",
" ff:2b:ac:c2:d2:c4:2a:75:c5:7d:54:76:77:f2:e3:52:91:50:\n",
" 48:c9:81:82:a7:e9:1b:c0:c5:9b:30:35:fe:6a:11:0f:fd:92:\n",
" 00:e4:07:a7:aa:8a:2d:d5:7a:4f:ab:02:8f:22:bf:3f:28:4a:\n",
" 06:af:8a:67:65:1b:84:98:2d:cc:d1:eb:9b:3c:ff:c3:3d:37:\n",
" 81:9d:6c:33:1a:05:d3:02:dd:4a:44:2e:70:91:32:ea:26:c7:\n",
" dd:ab:83:d7:9d:4d:84:de:a2:33:47:b3:f0:c1:3c:6f:61:93:\n",
" 0c:d9:cf:35:cd:95:a6:fd:2b:c5:5f:d5:24:d9:90:7b:ec:1b:\n",
" ef:7c:10:16:8a:34:61:b9:3a:59:3b:98:6d:c8:88:62:b3:88:\n",
" d6:f8:21:40:14:63:64:f3:32:2f:ff:3e:b8:ac:e8:93:ee:38:\n",
" 66:a7:68:3b:ce:6b:9c:81\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"!base64 -w 0 logo.svg > logo_base64.txt"
],
"metadata": {
"id": "qSNXY5Gyh28o"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Crear el archivo manifest.json\n",
"manifest_content = '''\n",
"{\n",
" \"signer\": {\n",
" \"alg\": \"es256\",\n",
" \"issuer\": \"Leica Camera AG\",\n",
" \"private_key\": \"private.key\",\n",
" \"sign_cert\": \"certs.pem\"\n",
" },\n",
" \"claim_generator\": \"M11-P/2.0.1 (Serial: 5882526) lc_c2pa/v1.6.1\",\n",
" \"assertions\": [\n",
" {\n",
" \"label\": \"stds.schema-org.CreativeWork\",\n",
" \"data\": {\n",
" \"@context\": \"http://schema.org/\",\n",
" \"@type\": \"CreativeWork\",\n",
" \"author\": [\n",
" {\n",
" \"@type\": \"Person\",\n",
" \"name\": \"Natzir\"\n",
" }\n",
" ],\n",
" \"copyrightNotice\": \"Copyright 2025\"\n",
" }\n",
" },\n",
" {\n",
" \"label\": \"stds.exif\",\n",
" \"data\": {\n",
" \"@context\": {\n",
" \"exif\": \"http://ns.adobe.com/exif/1.0/\"\n",
" },\n",
" \"exif:ApertureValue\": \"1.39959\",\n",
" \"exif:BodySerialNumber\": \"5882526\",\n",
" \"exif:Copyright\": \"Copyright 2025\",\n",
" \"exif:DateTimeDigitized\": \"2025:07:28 11:53:01\",\n",
" \"exif:DateTimeOriginal\": \"2025:07:28 11:53:01\",\n",
" \"exif:DigitalZoomRatio\": \"0\",\n",
" \"exif:ExposureBiasValue\": \"0\",\n",
" \"exif:ExposureProgram\": \"1\",\n",
" \"exif:ExposureTime\": \"0.00133333\",\n",
" \"exif:Flash\": \"0\",\n",
" \"exif:FocalLength\": \"0\",\n",
" \"exif:ISOSpeedRatings\": \"800\",\n",
" \"exif:ImageDescription\": \"\",\n",
" \"exif:ImageHeight\": \"3472\",\n",
" \"exif:ImageWidth\": \"5248\",\n",
" \"exif:LensMake\": \"Leica Camera AG\",\n",
" \"exif:LensModel\": \"uncoded lens\",\n",
" \"exif:LightSource\": \"0\",\n",
" \"exif:Make\": \"Leica Camera AG\",\n",
" \"exif:MaxApertureValue\": \"0\",\n",
" \"exif:MeteringMode\": \"5\",\n",
" \"exif:Model\": \"LEICA M11-P\",\n",
" \"exif:Orientation\": \"1\",\n",
" \"exif:ResolutionUnit\": \"2\",\n",
" \"exif:ShutterSpeedValue\": \"0.00138107\",\n",
" \"exif:Software\": \"2.0.1\",\n",
" \"exif:XResolution\": \"300\",\n",
" \"exif:YResolution\": \"300\"\n",
" }\n",
" }\n",
" ],\n",
" \"actions\": [\n",
" {\n",
" \"action\": \"created\",\n",
" \"when\": \"2025-07-26T11:53:01Z\"\n",
" }\n",
" ]\n",
"}\n",
"\n",
"'''\n",
"with open('manifest.json', 'w') as f:\n",
" f.write(manifest_content)"
],
"metadata": {
"id": "xOnOwZuFGPuD"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Subir una imagen de ejemplo\n",
"from google.colab import files\n",
"uploaded = files.upload()\n",
"\n",
"# Verifica que el archivo de imagen se ha subido\n",
"import os\n",
"image_filename = list(uploaded.keys())[0]\n",
"print(f\"Archivo de imagen subido: {image_filename}\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 92
},
"collapsed": true,
"id": "wvhvY56VNgyp",
"outputId": "2447aba3-86a7-4b55-b34c-f4fa44e8eead"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.HTML object>"
],
"text/html": [
"\n",
" <input type=\"file\" id=\"files-015f6d45-7196-44e1-89dc-81909e8a88ae\" name=\"files[]\" multiple disabled\n",
" style=\"border:none\" />\n",
" <output id=\"result-015f6d45-7196-44e1-89dc-81909e8a88ae\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script>// Copyright 2017 Google LLC\n",
"//\n",
"// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"// you may not use this file except in compliance with the License.\n",
"// You may obtain a copy of the License at\n",
"//\n",
"// http://www.apache.org/licenses/LICENSE-2.0\n",
"//\n",
"// Unless required by applicable law or agreed to in writing, software\n",
"// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"// See the License for the specific language governing permissions and\n",
"// limitations under the License.\n",
"\n",
"/**\n",
" * @fileoverview Helpers for google.colab Python module.\n",
" */\n",
"(function(scope) {\n",
"function span(text, styleAttributes = {}) {\n",
" const element = document.createElement('span');\n",
" element.textContent = text;\n",
" for (const key of Object.keys(styleAttributes)) {\n",
" element.style[key] = styleAttributes[key];\n",
" }\n",
" return element;\n",
"}\n",
"\n",
"// Max number of bytes which will be uploaded at a time.\n",
"const MAX_PAYLOAD_SIZE = 100 * 1024;\n",
"\n",
"function _uploadFiles(inputId, outputId) {\n",
" const steps = uploadFilesStep(inputId, outputId);\n",
" const outputElement = document.getElementById(outputId);\n",
" // Cache steps on the outputElement to make it available for the next call\n",
" // to uploadFilesContinue from Python.\n",
" outputElement.steps = steps;\n",
"\n",
" return _uploadFilesContinue(outputId);\n",
"}\n",
"\n",
"// This is roughly an async generator (not supported in the browser yet),\n",
"// where there are multiple asynchronous steps and the Python side is going\n",
"// to poll for completion of each step.\n",
"// This uses a Promise to block the python side on completion of each step,\n",
"// then passes the result of the previous step as the input to the next step.\n",
"function _uploadFilesContinue(outputId) {\n",
" const outputElement = document.getElementById(outputId);\n",
" const steps = outputElement.steps;\n",
"\n",
" const next = steps.next(outputElement.lastPromiseValue);\n",
" return Promise.resolve(next.value.promise).then((value) => {\n",
" // Cache the last promise value to make it available to the next\n",
" // step of the generator.\n",
" outputElement.lastPromiseValue = value;\n",
" return next.value.response;\n",
" });\n",
"}\n",
"\n",
"/**\n",
" * Generator function which is called between each async step of the upload\n",
" * process.\n",
" * @param {string} inputId Element ID of the input file picker element.\n",
" * @param {string} outputId Element ID of the output display.\n",
" * @return {!Iterable<!Object>} Iterable of next steps.\n",
" */\n",
"function* uploadFilesStep(inputId, outputId) {\n",
" const inputElement = document.getElementById(inputId);\n",
" inputElement.disabled = false;\n",
"\n",
" const outputElement = document.getElementById(outputId);\n",
" outputElement.innerHTML = '';\n",
"\n",
" const pickedPromise = new Promise((resolve) => {\n",
" inputElement.addEventListener('change', (e) => {\n",
" resolve(e.target.files);\n",
" });\n",
" });\n",
"\n",
" const cancel = document.createElement('button');\n",
" inputElement.parentElement.appendChild(cancel);\n",
" cancel.textContent = 'Cancel upload';\n",
" const cancelPromise = new Promise((resolve) => {\n",
" cancel.onclick = () => {\n",
" resolve(null);\n",
" };\n",
" });\n",
"\n",
" // Wait for the user to pick the files.\n",
" const files = yield {\n",
" promise: Promise.race([pickedPromise, cancelPromise]),\n",
" response: {\n",
" action: 'starting',\n",
" }\n",
" };\n",
"\n",
" cancel.remove();\n",
"\n",
" // Disable the input element since further picks are not allowed.\n",
" inputElement.disabled = true;\n",
"\n",
" if (!files) {\n",
" return {\n",
" response: {\n",
" action: 'complete',\n",
" }\n",
" };\n",
" }\n",
"\n",
" for (const file of files) {\n",
" const li = document.createElement('li');\n",
" li.append(span(file.name, {fontWeight: 'bold'}));\n",
" li.append(span(\n",
" `(${file.type || 'n/a'}) - ${file.size} bytes, ` +\n",
" `last modified: ${\n",
" file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() :\n",
" 'n/a'} - `));\n",
" const percent = span('0% done');\n",
" li.appendChild(percent);\n",
"\n",
" outputElement.appendChild(li);\n",
"\n",
" const fileDataPromise = new Promise((resolve) => {\n",
" const reader = new FileReader();\n",
" reader.onload = (e) => {\n",
" resolve(e.target.result);\n",
" };\n",
" reader.readAsArrayBuffer(file);\n",
" });\n",
" // Wait for the data to be ready.\n",
" let fileData = yield {\n",
" promise: fileDataPromise,\n",
" response: {\n",
" action: 'continue',\n",
" }\n",
" };\n",
"\n",
" // Use a chunked sending to avoid message size limits. See b/62115660.\n",
" let position = 0;\n",
" do {\n",
" const length = Math.min(fileData.byteLength - position, MAX_PAYLOAD_SIZE);\n",
" const chunk = new Uint8Array(fileData, position, length);\n",
" position += length;\n",
"\n",
" const base64 = btoa(String.fromCharCode.apply(null, chunk));\n",
" yield {\n",
" response: {\n",
" action: 'append',\n",
" file: file.name,\n",
" data: base64,\n",
" },\n",
" };\n",
"\n",
" let percentDone = fileData.byteLength === 0 ?\n",
" 100 :\n",
" Math.round((position / fileData.byteLength) * 100);\n",
" percent.textContent = `${percentDone}% done`;\n",
"\n",
" } while (position < fileData.byteLength);\n",
" }\n",
"\n",
" // All done.\n",
" yield {\n",
" response: {\n",
" action: 'complete',\n",
" }\n",
" };\n",
"}\n",
"\n",
"scope.google = scope.google || {};\n",
"scope.google.colab = scope.google.colab || {};\n",
"scope.google.colab._files = {\n",
" _uploadFiles,\n",
" _uploadFilesContinue,\n",
"};\n",
"})(self);\n",
"</script> "
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Saving UERNNO3H7RGNPEJKE2STAUGWXM.avif to UERNNO3H7RGNPEJKE2STAUGWXM.avif\n",
"Archivo de imagen subido: UERNNO3H7RGNPEJKE2STAUGWXM.avif\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Firmar la imagen usando c2patool\n",
"!$HOME/.cargo/bin/c2patool UERNNO3H7RGNPEJKE2STAUGWXM.avif -m manifest.json -o signed_PAPA.jpg --force"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "6VXRjSl0Niyo",
"outputId": "35772d49-9715-4a97-a4d7-9c20d184c7c5"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Error: Output type must match source type\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"!$HOME/.cargo/bin/c2patool signed_SEOPLUS.jpg --info"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QiKkjECQQ4NP",
"outputId": "2dcc38e2-d797-495d-caf0-0ae21e4f15f5"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Information for signed_SEOPLUS.jpg\n",
"Manifest store size = 242227 (44.63% of file size 542745)\n",
"Validated\n",
"One manifest\n"
]
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment