Compare commits

..

1 Commits

Author SHA1 Message Date
bfeafdbe06 wip 2022-11-27 18:27:47 -05:00
39 changed files with 939 additions and 8080 deletions

View File

@ -89,7 +89,7 @@ in {
# todo vulkan in chrome # todo vulkan in chrome
# todo video encoding in chrome # todo video encoding in chrome
hardware.opengl = { hardware.opengl = {
enable = cfg.enableAcceleration; enable = de.enableAcceleration;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)

View File

@ -31,8 +31,8 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
# vulkan # vulkan
hardware.opengl.driSupport = cfg.enableAcceleration; hardware.opengl.driSupport = de.enableAcceleration;
hardware.opengl.driSupport32Bit = cfg.enableAcceleration; hardware.opengl.driSupport32Bit = de.enableAcceleration;
# Applications # Applications
users.users.googlebot.packages = with pkgs; [ users.users.googlebot.packages = with pkgs; [

View File

@ -12,8 +12,8 @@ rec {
ponyo = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMBBlTAIp38RhErU1wNNV5MBeb+WGH0mhF/dxh5RsAXN"; ponyo = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMBBlTAIp38RhErU1wNNV5MBeb+WGH0mhF/dxh5RsAXN";
ponyo-unlock = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC9LQuuImgWlkjDhEEIbM1wOd+HqRv1RxvYZuLXPSdRi"; ponyo-unlock = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC9LQuuImgWlkjDhEEIbM1wOd+HqRv1RxvYZuLXPSdRi";
ray = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQM8hwKRgl8cZj7UVYATSLYu4LhG7I0WFJ9m2iWowiB"; ray = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQM8hwKRgl8cZj7UVYATSLYu4LhG7I0WFJ9m2iWowiB";
s0 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAwiXcUFtAvZCayhu4+AIcF+Ktrdgv9ee/mXSIhJbp4q";
nat = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGVgZc5Z2Oh426z7lEftcFUwCFcrZy8bvqS09Tj49GWE"; nat = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGVgZc5Z2Oh426z7lEftcFUwCFcrZy8bvqS09Tj49GWE";
s0 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkTQNPzrIhsKk3OpTHq8b7slIp9LktB49r1w/DKb/5b";
n1 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWlhd1Oid5Xf2zdcBrcdrR0TlhObutwcJ8piobRTpRt"; n1 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWlhd1Oid5Xf2zdcBrcdrR0TlhObutwcJ8piobRTpRt";
n2 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7bRiRutnI7Bmyt/I238E3Fp5DqiClIXiVibsccipOr"; n2 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7bRiRutnI7Bmyt/I238E3Fp5DqiClIXiVibsccipOr";
n3 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+rJEaRrFDGirQC2UoWQkmpzLg4qgTjGJgVqiipWiU5"; n3 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+rJEaRrFDGirQC2UoWQkmpzLg4qgTjGJgVqiipWiU5";

32
flake.lock generated
View File

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1665870395, "lastModified": 1652712410,
"narHash": "sha256-Tsbqb27LDNxOoPLh0gw2hIb6L/6Ow/6lIBvqcHzEKBI=", "narHash": "sha256-hMJ2TqLt0DleEnQFGUHK9sV2aAzJPU8pZeiZoqRozbE=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "a630400067c6d03c9b3e0455347dc8559db14288", "rev": "7e5e58b98c3dcbf497543ff6f22591552ebfe65b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -100,11 +100,11 @@
}, },
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1667395993, "lastModified": 1653893745,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -136,17 +136,17 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1668994630, "lastModified": 1655456688,
"narHash": "sha256-1lqx6HLyw6fMNX/hXrrETG1vMvZRGm2XVC9O/Jt0T6c=", "narHash": "sha256-j2trI5gv2fnHdfUQFBy957avCPxxzCqE8R+TOYHPSRE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "af50806f7c6ab40df3e6b239099e8f8385f6c78b", "rev": "d17a56d90ecbd1b8fc908d49598fb854ef188461",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-22.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "af50806f7c6ab40df3e6b239099e8f8385f6c78b",
"type": "github" "type": "github"
} }
}, },
@ -167,11 +167,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1669411043, "lastModified": 1649408932,
"narHash": "sha256-LfPd3+EY+jaIHTRIEOUtHXuanxm59YKgUacmSzaqMLc=", "narHash": "sha256-JhTW1OtS5fACcRXLqcTTQyYO5vLkO+bceCqeRms13SY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5dc7114b7b256d217fe7752f1614be2514e61bb8", "rev": "42948b300670223ca8286aaf916bc381f66a5313",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -246,11 +246,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1655930346, "lastModified": 1655214255,
"narHash": "sha256-ht56HHOzEhjeIgAv5ZNFjSVX/in1YlUs0HG9c1EUXTM=", "narHash": "sha256-hgFF2X9mxFieekDh2VoVAtgwuM6XeAwzvb53yakmjTg=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "f535d8123c4761b2ed8138f3d202ea710a334a1d", "rev": "a48082c79cff8f3b314ba4f95f4ae87ca7d4d068",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {

View File

@ -1,6 +1,6 @@
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/af50806f7c6ab40df3e6b239099e8f8385f6c78b"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";

View File

@ -9,7 +9,6 @@
networking.hostName = "nat"; networking.hostName = "nat";
de.enable = true; de.enable = true;
de.enableAcceleration = false;
de.touchpad.enable = true; de.touchpad.enable = true;
# nixpkgs.overlays = [ # nixpkgs.overlays = [

View File

@ -11,18 +11,13 @@
efi.enable = true; efi.enable = true;
# 4k kernel for m1 # 4k kernel for m1
hardware.asahi.use4KPages = false; boot.kernelBuildIs16K = false;
boot.initrd.availableKernelModules = [ "usb_storage" ]; boot.initrd.availableKernelModules = [ "usb_storage" ];
boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
# fix keys
boot.extraModprobeConfig = ''
options hid-apple swap_fn_leftctrl=1 swap_opt_cmd=1
'';
boot.initrd.luks.devices."enc-pv" = { boot.initrd.luks.devices."enc-pv" = {
device = "/dev/nvme0n1p5"; device = "/dev/nvme0n1p5";
allowDiscards = true; allowDiscards = true;

View File

@ -0,0 +1,31 @@
diff --git a/asahi_firmware/update.py b/asahi_firmware/update.py
index 8d4c480..7d89353 100644
--- a/asahi_firmware/update.py
+++ b/asahi_firmware/update.py
@@ -30,7 +30,7 @@ def update_firmware(source, dest, manifest):
pkg.save_manifest(manifest)
-if __name__ == "__main__":
+def main():
import argparse
import logging
logging.basicConfig()
@@ -46,3 +46,7 @@ if __name__ == "__main__":
args = parser.parse_args()
update_firmware(args.source, args.dest, args.manifest)
+
+if __name__ == "__main__":
+ main()
+
diff --git a/setup.py b/setup.py
index 45ada19..1b371ba 100644
--- a/setup.py
+++ b/setup.py
@@ -9,4 +9,5 @@ setup(name='asahi_firmware',
author_email='marcan@marcan.st',
url='https://github.com/AsahiLinux/asahi-installer/',
packages=['asahi_firmware'],
+ entry_points={"console_scripts": ["asahi-fwextract = asahi_firmware.update:main"]}
)

View File

@ -1,29 +1,24 @@
{ lib { lib
, python3 , python3
, python3Packages
, fetchFromGitHub , fetchFromGitHub
, gzip , makeBinaryWrapper
, gnutar
, lzfse
}: }:
python3Packages.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "asahi-fwextract"; pname = "asahi-fwextract";
version = "0.5pre10"; version = "0.4pre2";
# tracking version: https://github.com/AsahiLinux/PKGBUILDs/blob/main/asahi-fwextract/PKGBUILD # tracking version: https://github.com/AsahiLinux/PKGBUILDs/blob/main/asahi-fwextract/PKGBUILD
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "AsahiLinux"; owner = "AsahiLinux";
repo = "asahi-installer"; repo = "asahi-installer";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-93dTRrNNo7yilSGpSNjXir+DhQe29DeoZHXusrk9PN8="; hash = "sha256-RqvD2hNjKMlUg+oY1woUN5zpN+1Y/TrBQbokNgdeCW4=";
}; };
postPatch = '' patches = [
substituteInPlace asahi_firmware/img4.py \ ./add_entry_point.patch
--replace 'liblzfse.so' '${lzfse}/lib/liblzfse.so' ];
substituteInPlace asahi_firmware/update.py \
--replace '"tar"' '"${gnutar}/bin/tar"' \ nativeBuildInputs = [ python3.pkgs.setuptools makeBinaryWrapper ];
--replace '"xf"' '"-x", "-I", "${gzip}/bin/gzip", "-f"' }
'';
}

View File

@ -1,12 +1,18 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let let
bootM1n1 = config.hardware.asahi.pkgs.callPackage ../m1n1 { buildPkgs = if config.boot.kernelBuildIsCross then
import (pkgs.path) {
system = "x86_64-linux";
crossSystem.system = "aarch64-linux";
}
else pkgs;
bootM1n1 = buildPkgs.callPackage ../m1n1 {
isRelease = true; isRelease = true;
withTools = false; withTools = false;
customLogo = config.boot.m1n1CustomLogo;
}; };
bootUBoot = config.hardware.asahi.pkgs.callPackage ../u-boot { bootUBoot = buildPkgs.callPackage ../u-boot {
m1n1 = bootM1n1; m1n1 = bootM1n1;
}; };
@ -28,26 +34,23 @@ in {
# ensure the installer has m1n1 in the image # ensure the installer has m1n1 in the image
system.extraDependencies = lib.mkForce [ bootM1n1 bootUBoot ]; system.extraDependencies = lib.mkForce [ bootM1n1 bootUBoot ];
system.build.m1n1 = bootFiles."m1n1/boot.bin";
# give the user the utilities to re-extract the firmware if necessary
environment.systemPackages = [
(buildPkgs.callPackage ../asahi-fwextract {})
];
# system.extraDependencies = [ boot ];
# system.extraDependencies = lib.mkForce [ boot ];
}; };
options.boot = { options.boot.m1n1ExtraOptions = lib.mkOption {
m1n1ExtraOptions = lib.mkOption { type = lib.types.str;
type = lib.types.str; default = "";
default = ""; description = ''
description = '' Append extra options to the m1n1 boot binary. Might be useful for fixing
Append extra options to the m1n1 boot binary. Might be useful for fixing display problems on Mac minis.
display problems on Mac minis. https://github.com/AsahiLinux/m1n1/issues/159
https://github.com/AsahiLinux/m1n1/issues/159 '';
'';
};
m1n1CustomLogo = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = ''
Custom logo to build into m1n1. The path must point to a 256x256 PNG.
'';
};
}; };
} }

View File

@ -1,40 +1,8 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
imports = [ imports = [
./kernel ./kernel
./peripheral-firmware ./firmware
./boot-m1n1 ./boot-m1n1
]; ];
}
config = {
hardware.asahi.pkgs = if config.hardware.asahi.pkgsSystem != "aarch64-linux"
then import (pkgs.path) {
system = config.hardware.asahi.pkgsSystem;
crossSystem.system = "aarch64-linux";
}
else pkgs;
};
options.hardware.asahi = {
pkgsSystem = lib.mkOption {
type = lib.types.str;
default = "aarch64-linux";
description = ''
System architecture that should be used to build the major Asahi
packages, if not the default aarch64-linux. This allows installing from
a cross-built ISO without rebuilding them during installation.
'';
};
pkgs = lib.mkOption {
type = lib.types.raw;
description = ''
Package set used to build the major Asahi packages. Defaults to the
ambient set if not cross-built, otherwise re-imports the ambient set
with the system defined by `hardware.asahi.pkgsSystem`.
'';
};
};
}

View File

@ -0,0 +1,18 @@
{ config, pkgs, lib, ... }:
{
hardware.firmware = [
(pkgs.stdenvNoCC.mkDerivation {
name = "firmware";
buildCommand = ''
mkdir -p $out/lib/firmware
FIRMWARE=`echo ${./.}/*firmware*.tar`
if [ -e "$FIRMWARE" ]; then
tar xf "$FIRMWARE" -C $out/lib/firmware
else
# stop nixos infra from breaking when it doesn't have any firmware
touch $out/lib/firmware/.dummy
fi
'';
})
];
}

Binary file not shown.

View File

@ -1,28 +0,0 @@
From 1c60b7662b82d7d5d54aca1cd24f9517a8c4595f Mon Sep 17 00:00:00 2001
From: Thomas Watson <twatson52@icloud.com>
Date: Thu, 24 Nov 2022 11:00:43 -0600
Subject: [PATCH] drivers/usb/dwc3: remove apple dr_mode check
This check prevents the driver from probing with old device trees.
Allegedly this check is incorrect anyway as the dr_mode should default
to OTG but this is not true at the time of the check.
---
drivers/usb/dwc3/core.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 1d88119cdbb8..b92401c1ee0c 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -1882,8 +1882,7 @@ static int dwc3_probe(struct platform_device *pdev)
}
if (of_device_is_compatible(dev->of_node, "apple,dwc3")) {
- if (!IS_ENABLED(CONFIG_USB_ROLE_SWITCH) ||
- dwc->dr_mode != USB_DR_MODE_OTG) {
+ if (!IS_ENABLED(CONFIG_USB_ROLE_SWITCH)) {
dev_err(dev,
"Apple DWC3 requires role switch support.\n"
);
--
2.17.1

File diff suppressed because it is too large Load Diff

View File

@ -10,4 +10,4 @@ index a1eb6572ecd2..b94fbd9b3d70 100644
+ default ARM64_16K_PAGES + default ARM64_16K_PAGES
help help
Page size (translation granule) configuration. Page size (translation granule) configuration.

View File

@ -3,8 +3,9 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
config = { config = {
boot.kernelPackages = config.hardware.asahi.pkgs.callPackage ./package.nix { boot.kernelPackages = pkgs.callPackage ./package.nix {
_4KBuild = config.hardware.asahi.use4KPages; crossBuild = config.boot.kernelBuildIsCross;
_16KBuild = config.boot.kernelBuildIs16K;
}; };
# we definitely want to use CONFIG_ENERGY_MODEL, and # we definitely want to use CONFIG_ENERGY_MODEL, and
@ -12,42 +13,10 @@
# source: https://www.kernel.org/doc/html/latest/scheduler/sched-energy.html # source: https://www.kernel.org/doc/html/latest/scheduler/sched-energy.html
powerManagement.cpuFreqGovernor = lib.mkOverride 800 "schedutil"; powerManagement.cpuFreqGovernor = lib.mkOverride 800 "schedutil";
boot.initrd.includeDefaultModules = false; # our kernel config is weird and doesn't really have any modules
boot.initrd.availableKernelModules = [ # remove?
# list of initrd modules stolen from # boot.initrd.availableKernelModules = lib.mkForce [];
# https://github.com/AsahiLinux/asahi-scripts/blob/e4d6151a7dcb63ae5e3779c3cf57362eb37d908a/initcpio/install/asahi boot.initrd.availableKernelModules = lib.mkForce [ "dm_crypt" ];
"apple-mailbox"
"nvme_apple"
"pinctrl-apple-gpio"
"macsmc"
"macsmc-rtkit"
"i2c-apple"
"tps6598x"
"apple-dart"
"dwc3"
"dwc3-of-simple"
"xhci-pci"
"pcie-apple"
"gpio_macsmc"
"spi-apple"
"spi-hid-apple"
"spi-hid-apple-of"
"rtc-macsmc"
"simple-mfd-spmi"
"spmi-apple-controller"
"nvmem_spmi_mfd"
"apple-dockchannel"
"dockchannel-hid"
"apple-rtkit-helper"
"dm_crypt"
# additional stuff necessary to boot off USB for the installer
# and if the initrd (i.e. stage 1) goes wrong
"usb-storage"
"xhci-plat-hcd"
"usbhid"
"hid_generic"
];
boot.kernelParams = [ boot.kernelParams = [
"earlycon" "earlycon"
@ -76,23 +45,18 @@
}; };
}; };
imports = [ options.boot.kernelBuildIsCross = lib.mkOption {
(lib.mkRemovedOptionModule [ "boot" "kernelBuildIsCross" ] ''
If it should still be true (which is unlikely), replace it
with 'hardware.asahi.pkgsSystem = "x86_64-linux"'. Otherwise, delete it.
'')
(lib.mkRemovedOptionModule [ "boot" "kernelBuildIs16K" ] ''
Replaced with 'hardware.asahi.use4KPages' which defaults to false.
'')
];
options.hardware.asahi.use4KPages = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = false; default = false;
description = "Set that the Asahi Linux kernel should be cross-compiled.";
};
options.boot.kernelBuildIs16K = lib.mkOption {
type = lib.types.bool;
default = true;
description = '' description = ''
Build the Asahi Linux kernel with 4K pages to improve compatibility in Set that the Asahi Linux kernel should be built with 16K pages and various
some cases at the cost of performance in others. software patched to be compatible. Some software may still be broken.
''; '';
}; };
} }

View File

@ -1,10 +1,14 @@
{ pkgs, _4KBuild ? false }: let { pkgs, crossBuild ? false, _16KBuild ? false }: let
localPkgs = buildPkgs = if crossBuild then
# we do this so the config can be read on any system and not affect import (pkgs.path) {
# the output hash system = "x86_64-linux";
if builtins ? currentSystem then import (pkgs.path) { system = builtins.currentSystem; } crossSystem.system = "aarch64-linux";
else pkgs; }
else pkgs;
# we do this so the config can be read on any system and not affect
# the output hash
localPkgs = import (pkgs.path) { system = "aarch64-linux"; };
readConfig = configfile: import (localPkgs.runCommand "config.nix" {} '' readConfig = configfile: import (localPkgs.runCommand "config.nix" {} ''
echo "{" > "$out" echo "{" > "$out"
while IFS='=' read key val; do while IFS='=' read key val; do
@ -19,35 +23,28 @@
linuxKernel.manualConfig rec { linuxKernel.manualConfig rec {
inherit stdenv lib; inherit stdenv lib;
version = "6.1.0-rc6-asahi"; version = "5.19.0-rc7-asahi";
modDirVersion = version; modDirVersion = version;
src = fetchFromGitHub { src = fetchFromGitHub {
# tracking: https://github.com/AsahiLinux/PKGBUILDs/blob/stable/linux-asahi/PKGBUILD # tracking branch: https://github.com/AsahiLinux/linux/tree/asahi
owner = "AsahiLinux"; owner = "AsahiLinux";
repo = "linux"; repo = "linux";
rev = "asahi-6.1-rc6-5"; rev = "c7d02d6615a5fb4afefd3084fce93d86e5fb184d";
hash = "sha256-HHPfAtNh5wR0TCsEYuMdSbp55p1IVhF07tg4dlfgXk0="; hash = "sha256-sed405+6L5U7S+Na2DNLGPNTNf3tv96LjK3CimeRjNU=";
}; };
kernelPatches = [ kernelPatches = [
# sven says this is okay since our kernel config supports it, and that ] ++ lib.optionals (!_16KBuild) [
# it will be fixed at some point to not be necessary. but this allows
# new kernels to get USB up with old device trees
{ name = "0001-drivers-usb-dwc3-remove-apple-dr_mode-check";
patch = ./0001-drivers-usb-dwc3-remove-apple-dr_mode-check.patch;
}
] ++ lib.optionals _4KBuild [
# thanks to Sven Peter # thanks to Sven Peter
# https://lore.kernel.org/linux-iommu/20211019163737.46269-1-sven@svenpeter.dev/ # https://lore.kernel.org/linux-iommu/20211019163737.46269-1-sven@svenpeter.dev/
{ name = "sven-iommu-4k"; { name = "sven-iommu-4k";
patch = ./sven-iommu-4k.patch; patch = ./sven-iommu-4k.patch;
} }
] ++ lib.optionals (!_4KBuild) [ ] ++ lib.optionals _16KBuild [
# patch the kernel to set the default size to 16k instead of modifying # patch the kernel to set the default size to 16k so we don't need to
# the config so we don't need to convert our config to the nixos # convert our config to the nixos infrastructure or patch it and thus
# infrastructure or patch it and thus introduce a dependency on the host # introduce a dependency on the host system architecture
# system architecture
{ name = "default-pagesize-16k"; { name = "default-pagesize-16k";
patch = ./default-pagesize-16k.patch; patch = ./default-pagesize-16k.patch;
} }
@ -56,8 +53,15 @@
configfile = ./config; configfile = ./config;
config = readConfig configfile; config = readConfig configfile;
extraMeta.branch = "6.1"; extraMeta.branch = "5.19";
} // (args.argsOverride or {}); } // (args.argsOverride or {});
linux_asahi = (pkgs.callPackage linux_asahi_pkg { }); linux_asahi = (buildPkgs.callPackage linux_asahi_pkg { }).overrideAttrs (o: {
in pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor linux_asahi) # use 5.19 suitable randstruct seed patch
# to be removed when https://github.com/NixOS/nixpkgs/pull/180750 is
# accepted and percolates through
patches = (builtins.filter
(v: (pkgs.lib.hasInfix "randstruct" (builtins.path { path = v; })) != true)
o.patches) ++ [ ./randstruct-provide-seed-5.19.patch ];
});
in buildPkgs.recurseIntoAttrs (buildPkgs.linuxPackagesFor linux_asahi)

View File

@ -0,0 +1,13 @@
diff --git a/scripts/gen-randstruct-seed.sh b/scripts/gen-randstruct-seed.sh
index 61017b36c464..7bb494dd2e18 100755
--- a/scripts/gen-randstruct-seed.sh
+++ b/scripts/gen-randstruct-seed.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
-SEED=$(od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n')
+SEED="NIXOS_RANDSTRUCT_SEED"
echo "$SEED" > "$1"
HASH=$(echo -n "$SEED" | sha256sum | cut -d" " -f1)
echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"

View File

@ -446,4 +446,4 @@ index 9208eca4b0d1..dec2dd70a876 100644
+ +
enum iommu_cap { enum iommu_cap {
IOMMU_CAP_CACHE_COHERENCY, /* IOMMU can enforce cache coherent DMA IOMMU_CAP_CACHE_COHERENCY, /* IOMMU can enforce cache coherent DMA
transactions */ transactions */

View File

@ -4,12 +4,10 @@
, pkgsCross , pkgsCross
, python3 , python3
, dtc , dtc
, imagemagick
, isRelease ? false , isRelease ? false
, withTools ? true , withTools ? true
, withChainloading ? false , withChainloading ? false
, rust-bin ? null , rust-bin ? null
, customLogo ? null
}: }:
assert withChainloading -> rust-bin != null; assert withChainloading -> rust-bin != null;
@ -25,14 +23,14 @@ let
}); });
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "m1n1"; pname = "m1n1";
version = "1.1.8"; version = "1.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
# tracking: https://github.com/AsahiLinux/PKGBUILDs/blob/stable/m1n1/PKGBUILD # tracking branch: https://github.com/AsahiLinux/m1n1/tree/main
owner = "AsahiLinux"; owner = "AsahiLinux";
repo = "m1n1"; repo = "m1n1";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-4Ykh+EzOCRtZQD1upUDJpi5ikMOCnxLwvLWajtMo7LU="; hash = "sha256-S2HLBLmgER0ZZJ5Q4EX2f1KDxnol0yCDrloDMJaLwBE=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -43,8 +41,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
dtc dtc
pkgsCross.aarch64-multiplatform.buildPackages.gcc pkgsCross.aarch64-multiplatform.buildPackages.gcc
] ++ lib.optional withChainloading rustenv ] ++ lib.optional withChainloading rustenv;
++ lib.optional (customLogo != null) imagemagick;
postPatch = '' postPatch = ''
substituteInPlace proxyclient/m1n1/asm.py \ substituteInPlace proxyclient/m1n1/asm.py \
@ -52,21 +49,9 @@ in stdenv.mkDerivation rec {
--replace 'TOOLCHAIN = ""' 'TOOLCHAIN = "'$out'/toolchain-bin/"' --replace 'TOOLCHAIN = ""' 'TOOLCHAIN = "'$out'/toolchain-bin/"'
''; '';
preConfigure = lib.optionalString (customLogo != null) ''
pushd data &>/dev/null
ln -fs ${customLogo} bootlogo_256.png
if [[ "$(magick identify bootlogo_256.png)" != 'bootlogo_256.png PNG 256x256'* ]]; then
echo "Custom logo is not a 256x256 PNG"
exit 1
fi
rm bootlogo_128.png
convert bootlogo_256.png -resize 128x128 bootlogo_128.png
./makelogo.sh
popd &>/dev/null
'';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/build mkdir -p $out/build
cp build/m1n1.macho $out/build cp build/m1n1.macho $out/build
cp build/m1n1.bin $out/build cp build/m1n1.bin $out/build
@ -74,6 +59,7 @@ in stdenv.mkDerivation rec {
mkdir -p $out/{bin,script,toolchain-bin} mkdir -p $out/{bin,script,toolchain-bin}
cp -r proxyclient $out/script cp -r proxyclient $out/script
cp -r tools $out/script cp -r tools $out/script
for toolpath in $out/script/proxyclient/tools/*.py; do for toolpath in $out/script/proxyclient/tools/*.py; do
tool=$(basename $toolpath .py) tool=$(basename $toolpath .py)
script=$out/bin/m1n1-$tool script=$out/bin/m1n1-$tool
@ -83,14 +69,17 @@ ${pyenv}/bin/python $toolpath "\$@"
EOF EOF
chmod +x $script chmod +x $script
done done
GCC=${pkgsCross.aarch64-multiplatform.buildPackages.gcc} GCC=${pkgsCross.aarch64-multiplatform.buildPackages.gcc}
BINUTILS=${pkgsCross.aarch64-multiplatform.buildPackages.binutils-unwrapped} BINUTILS=${pkgsCross.aarch64-multiplatform.buildPackages.binutils}
REAL_BINUTILS=$(grep -o '/nix/store/[^ ]*binutils[^ ]*' $BINUTILS/nix-support/propagated-user-env-packages)
ln -s $GCC/bin/*-gcc $out/toolchain-bin/ ln -s $GCC/bin/*-gcc $out/toolchain-bin/
ln -s $GCC/bin/*-ld $out/toolchain-bin/ ln -s $GCC/bin/*-ld $out/toolchain-bin/
ln -s $BINUTILS/bin/*-objcopy $out/toolchain-bin/ ln -s $REAL_BINUTILS/bin/*-objcopy $out/toolchain-bin/
ln -s $BINUTILS/bin/*-objdump $out/toolchain-bin/ ln -s $REAL_BINUTILS/bin/*-objdump $out/toolchain-bin/
ln -s $GCC/bin/*-nm $out/toolchain-bin/ ln -s $REAL_BINUTILS/bin/*-nm $out/toolchain-bin/
'') + '' '') + ''
runHook postInstall runHook postInstall
''; '';
} }

View File

@ -1,70 +0,0 @@
{ config, pkgs, lib, ... }:
{
config = {
assertions = lib.mkIf config.hardware.asahi.extractPeripheralFirmware [
{ assertion = config.hardware.asahi.peripheralFirmwareDirectory != null;
message = ''
Asahi peripheral firmware extraction is enabled but the firmware
location appears incorrect.
'';
}
];
hardware.firmware = let
asahi-fwextract = pkgs.callPackage ../asahi-fwextract {};
in lib.mkIf ((config.hardware.asahi.peripheralFirmwareDirectory != null)
&& config.hardware.asahi.extractPeripheralFirmware) [
(pkgs.stdenv.mkDerivation {
name = "asahi-peripheral-firmware";
nativeBuildInputs = [ asahi-fwextract pkgs.cpio ];
buildCommand = ''
mkdir extracted
asahi-fwextract ${/. + config.hardware.asahi.peripheralFirmwareDirectory} extracted
mkdir -p $out/lib/firmware
cat extracted/firmware.cpio | cpio -id --quiet --no-absolute-filenames
mv vendorfw/* $out/lib/firmware
'';
})
];
};
options.hardware.asahi = {
extractPeripheralFirmware = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Automatically extract the non-free non-redistributable peripheral
firmware necessary for features like Wi-Fi.
'';
};
peripheralFirmwareDirectory = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = let
paths = [
# path when the system is operating normally
"/boot/asahi"
# path when the system is mounted in the installer
"/mnt/boot/asahi"
./.
];
validPaths = (builtins.filter
(p: builtins.pathExists (p + "/all_firmware.tar.gz"))
paths) ++ [ null ];
in builtins.elemAt validPaths 0;
description = ''
Path to the directory containing the non-free non-redistributable
peripheral firmware necessary for features like Wi-Fi. Ordinarily, this
will automatically point to the appropriate location on the ESP. Flake
users and those interested in maximum purity will want to copy those
files elsewhere and specify this manually.
Currently, this consists of the files `all-firmware.tar.gz` and
`kernelcache*`. The official Asahi Linux installer places these files
in the `asahi` directory of the EFI system partition when creating it.
'';
};
};
}

View File

@ -1,21 +1,16 @@
{ lib { lib
, fetchFromGitHub , fetchFromGitHub
, pkgs
, pkgsCross , pkgsCross
, m1n1 , m1n1
}: let }: (pkgsCross.aarch64-multiplatform.buildUBoot rec {
# u-boot's buildInputs get a different hash and don't build right if we try to
# cross-build for aarch64 on itself for whatever reason
buildPkgs = if pkgs.stdenv.system == "aarch64-linux" then pkgs else pkgsCross.aarch64-multiplatform;
in (buildPkgs.buildUBoot rec {
src = fetchFromGitHub { src = fetchFromGitHub {
# tracking: https://github.com/AsahiLinux/PKGBUILDs/blob/stable/uboot-asahi/PKGBUILD # tracking branch: https://github.com/AsahiLinux/u-boot/tree/releng/installer-release
owner = "AsahiLinux"; owner = "AsahiLinux";
repo = "u-boot"; repo = "u-boot";
rev = "asahi-v2022.10-1"; rev = "300817d324f73c30c998a10435d5d830b58df894";
hash = "sha256-/dtTJ+GxC2GFlqduAa2WWPGwktLjM7tUKus6/aUyPNQ="; hash = "sha256-6q4l1gHAlaGM7ktlCBmehb/ZNvmpt1eah6tTdsQJfxM=";
}; };
version = "2022.10.asahi1-1"; version = "unstable-2022-07-11";
defconfig = "apple_m1_defconfig"; defconfig = "apple_m1_defconfig";
extraMeta.platforms = [ "aarch64-linux" ]; extraMeta.platforms = [ "aarch64-linux" ];
@ -37,4 +32,4 @@ in (buildPkgs.buildUBoot rec {
cat ${m1n1}/build/m1n1.macho arch/arm/dts/t[68]*.dtb u-boot-nodtb.bin.gz > m1n1-u-boot.macho cat ${m1n1}/build/m1n1.macho arch/arm/dts/t[68]*.dtb u-boot-nodtb.bin.gz > m1n1-u-boot.macho
cat ${m1n1}/build/m1n1.bin arch/arm/dts/t[68]*.dtb u-boot-nodtb.bin.gz > m1n1-u-boot.bin cat ${m1n1}/build/m1n1.bin arch/arm/dts/t[68]*.dtb u-boot-nodtb.bin.gz > m1n1-u-boot.bin
''; '';
}) })

Binary file not shown.

View File

@ -1,39 +1,38 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w NvgGcHYNA6WmPn3sCmMzPCib+6P7s5R/G6lSJFpih2E -> ssh-ed25519 xoAm7w Hfe9WoVDvMWc8P60BreiUS9+F1PmpZwUQ/Rf1tRxIRY
gLugCNcPJtAl9+2fa80OD7D7XaBkpb2bzKJclOdjGfw oFunT3z6xg8BRAqzcaHVxafBUJbXJSCrsge1/nEI8x4
-> ssh-ed25519 mbw8xA dBYbSV7QcUTOp9a5hUAZeMlL828KrRp6tB3zMIopPDA -> ssh-ed25519 mbw8xA xR/jq0KjCpwusJJ60mHqt6TGBdsSjUxWHChO8dGYhzA
i4QRHxTVaN60elfiuYXuESwbphxPN4tsQ7scH0ZJjoA kFEYLlnF7g6e7Tvud8JsblOtsj2v3QrAdkjJwV0b9ng
-> ssh-ed25519 N240Tg Xg5q74f1ylRZGLpPggkTy1QU+LWEcHpqCV6wQ2OhQlk -> ssh-ed25519 N240Tg DoXupPWk4YsgqpQ4yPfpz9a13Qu+ZcxavLbKjStf40E
RubXACwdS4+xNt8nt0C0wk8XU2YIWOSRwIXUg47sNA0 +mCkreDEjo8G5Ew9TNaRp221VL6l20jG/6QVa8Cbwa4
-> ssh-ed25519 2a2Yhw p5w1WsmcVHImVtolvrULgSsYXlm06g2za8zSiDf9uR8 -> ssh-ed25519 2a2Yhw t0BY1ZmbeSORtHRvy5c3XeIe29QSRd5wSgibjZgcmAE
qVuj2L8jvRmINprQbYg91yoJU0XZmO7TprQv2UsvpmY 5+EWlrZoeg3SZ6MCaj+YN4ovWxrTbfVz5IV9gA7bcwg
-> ssh-ed25519 dMQYog EFYjggjACyNwvNCG75XsceqnUrrrsX4cv7e+Mu2Z2zI -> ssh-ed25519 dMQYog gaJXyfz3aN5CnbKGao5nxnKc6ZGyXuLI9s5DQ7zcfDA
Q7VPIP7iNqHxGGtRG2Q122f60ZztSRsRHRbziGAinNY 6BdUMh7erbIXstvEPnc0jE38rL9+0QU8PYtcQp5PUNA
-> ssh-ed25519 G2eSCQ 5Y6Tazqz2Wjl2/lrlQMUWgEnSBJpmzwXAUGEK56upgE -> ssh-ed25519 G2eSCQ boj8/IRM5HG4LEHWMYzDr37Z/fVyI+ZAGbFaUzGtOS8
eVxcvshe+uecw4ORKdS/2W8p+jcrro8cDcDdmeY7Olg tzZLK/jzjron85vLrxFALKUgGVi8ZdPnM/zcVpfp6Ps
-> ssh-ed25519 6AT2/g h6E5M1uJRhqfR1bm82rXrJvmr+nkeUPbygD8S+zbAmY -> ssh-ed25519 6AT2/g A8NtCXr6AksNJCnOLsErYIqKy2SqMza0GsUURr1YASo
r5yR6W2uCcR4cEnbk/1tXwhAanT2EqTsH1mIDbrVGVM lMnDpcWZxXIIRqBtLYG6Pkd6L+/dPVGRCgyYPzRLnII
-> ssh-ed25519 yHDAQw lWomhFF/IyKtOUlBori7wNjrtsbqvKXXhAwF4a1y8js -> ssh-ed25519 yHDAQw NOqmfI7ZuSMTmEErJjHkbjGtNwJhpHTWeS/6zPsTVC4
baOAc0tKMbh6Sw0bWyynI3OMrsOPA3W1fCCIn26azeQ 5tZLg+GbfpnCi2CbSP7lZLssYm7hR/B7PZCZZ5X3ahs
-> ssh-ed25519 hPp1nw ZGwi0yK0Nu+Y/uXIxnQH6Pwmw1SWBE0yQ9FOuBNKp1U -> ssh-ed25519 2+FxVg SA3lD4YzgKQWnztnaKZkkWZvooAnH3uv3o4lKn59rAI
tN8kk/0AxUIiFbEOSeIlGiBIy0d96wTG8VrGPnEHTg4 vXkGl4IUstTQ6BZsT3c5PmPKU3lJxosX5LRUuAGVSVY
-> ssh-ed25519 CRfjsA ntYznFouB2JWY2LZ6aycDogIFbLHOhqcx50QbJIB+RY -> ssh-ed25519 CRfjsA uIa4dBktv7pMMv4U8hwlUJz+Ewh7ZjQ+j5ln7ZqxlAw
slo38Rvg+2GV2fKRlt4Yns644kd55DrDz7ivi6RTyXg WadTmmOeOlaNlejglQ3NgOk86zS/yyKKkVabIPajeCQ
-> ssh-ed25519 vwVIvQ UF+Bo3Rl5OPPqqddi0bqleRJV9XTuykrl2dkPPSyRAE -> ssh-ed25519 vwVIvQ pg5Yv6YQh2tYXmv9PP5etAMxNN85dwQ28jXZRkQI9RY
znn5KNsXZPHN2/E652cPhOx8RF5+uuFUyGhrI+kCou0 zE81eln0hmbRchzNNYXaMxI8aF/xwGXy2wm6GlKnzg8
-> ssh-ed25519 fBrw3g w8EkEo1db0Po5ZhDzz/5nshsSmjy9wMSKp+XFDEuUQA -> ssh-ed25519 fBrw3g gtUFDnC6CowNoKxwgLCOsSQ8rK21y327K8B94zlMHQE
q50eyTDTxQULpogMbVXI2zSfu+ZZP9DOXjM+Y2/rMNI +WepWvCmTZj+ht7U8aMD4kJ+zDSH7+c5lNSDw2JKrzA
-> ssh-ed25519 S5xQfg 651xn3mNSl/3+KT5d4XD2pkMNcxi6BScqX3teoKbgio -> ssh-ed25519 S5xQfg vsDTXbJTOjL7wVx1rA5ny0Ix/f6QFlZxxB1z6X2YcGk
EOfzB+woFBWBaVKuv4t4E0Gx3vf7Lg40WXSovXs8N6s im/TCt3Rszp0tP8hx1CV1xqaxh/PEUmC6ZoARVJXUzo
-> ssh-ed25519 XPxfUQ FL+FYVsRNJBv7xEpwf0fXgJt3G/FiARQ7+aWK/sxryE -> ssh-ed25519 XPxfUQ OQf+JUauisYKuYtya1HlpnZKteLLJonnd8JZiVwfAQA
xneOKh3muAhjkLC2upsRrc4B0mggwm7IOMFsg+25gT8 wDSRsGMxQ2rXtej/iBX8n7KRfdLIB5q12Z6zu2I4wNw
-> ssh-ed25519 SpD5mg f140sUr/7itxtllfcbBaNV9xhRaV/IULGVn6AaP7zkw -> ssh-ed25519 SpD5mg UlMJvnqDtRj3BTE4wAYa11D1mM5Q4vIkKIPmtODKYSc
FnostzjoSC/bdOu2UF+rT+0mZ0aUM8rAAoQltUXn534 RW1Brw2kCbUlBZK+UdusWAKEW5ZC5VHt49qUsyeUr+s
-> ssh-ed25519 Kk8sng 9JnybgIcROZf+l0C9YGNb4xWkZLtdfUPm2V0WJsGPUI -> ssh-ed25519 Kk8sng 1TYOMJBzUZrgcRE02YtFllJgV4bxsCFRrRgnoasWyVA
fs4wBEIdK6kU1CIhI8zz/yqa4Fb6Q2u+MO6SsudQlCM FXSNZ6U60lRRgS3EvqKZwWdwA3vIW9xe5+NcmuYorug
-> C89-grease >Fa(j6s UN5!{ -> x'-grease dT
nb+ymnliEEKJf3IGloFQMNl/SyFjvFUqekC2YEY2qJblAUaft3Tf6hMYf7uDSjew viYi3YkLyuugYlo01uxExjHQVbq6hMoAGI64lXiE6fE0I0AV5Wr8yHiylwAH8ax2
5SRhESY0VucHhAK6OybwPWYRlXXv2gM/wxUicB8 4ylwQQVAA66xCEF+2QoIapO+V7oaWrjeiEVEAn1D
--- t6Q6ULdQzW4/xDtZDVI/lfP5i8Cq8lnURqQSyKWHvyI --- q9OmQIHexmW/2u7d1XKjUgwp+QYHbiiPgC9ZurBY5l8
h,:ìüæ ¥qÌr.¹s;ñïÑïMdYŠuÜ~°#i¸ï-øÁVBCÞrå·>üADéÝÉþ83<38>ú:"î¶o+
H)'’ЊÂ/²)žÒ¾ìpˆ¡Rç2QU ˆÁ™h£Í×2ák•äG!A ~,b

View File

@ -1,39 +1,37 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w 7+DO9mI/zZfTIN/0KBMOIjMNnReyGoH/XVQa0OLdAHY -> ssh-ed25519 xoAm7w ftH5Ym/ik0hpKF9/keVodc9lbrbl/tfgI7FNYvY7aCo
qg/UIBJr8GX79d7xrIIN9GUt3pDIormlOM7IdjIytHk 2UxiWjJ18muZg1qcomcFEJChlebx5dvdsVfdxdVCnEQ
-> ssh-ed25519 mbw8xA 9KorXegEBX3PYQm+Ljdjs2hkxAIpz2CZrITNCGo0BnM -> ssh-ed25519 mbw8xA CKMJ+LK6HWZybajuHKTNkPUJWTcR/E7Pu7E0LwLljRE
QNQWGWqoudiryg/0fV2KZUuJQGp/suZun9KF9c2OTqw aXgVMhoC8GEAm4YqHPAascX4CDX5D4T/uwbfdcfheI8
-> ssh-ed25519 N240Tg kfl4aaKI28cDfzX3MBisRGraQYChPdUF2WigjOFYx0Y -> ssh-ed25519 N240Tg WjE5EbH6nsSCsZfHBTDebdCYU4lNyEemAfqdSIpYxiU
u8dgbgJSmcJBp2Uc8qbWMbpa/cKEmx4V3psQgzqnitA Dt6ZVntKzQo65WWHRg9Bp0JJhjwMIDqfV2WMdtELhpQ
-> ssh-ed25519 2a2Yhw MGk791xEYHlC4bYfU5CMS3rY8TVI8KYvEIwUhE7wQ3k -> ssh-ed25519 2a2Yhw Nvaz150AMV7M9QuY87wPGfHCfNJ7CH3VSl6tTbNlHig
iFT3QUR8PyWw4grqy7/8KfLfYNIDkgDKM2MqSr6cj0U U7KG+Yl8OnEFjso8s5xgHDsnHSe6IfkImG92uoo8BoQ
-> ssh-ed25519 dMQYog IW1ntuHrV85WX60GI295c197NUlQMKuo5gd3sQZl/gA -> ssh-ed25519 dMQYog EMPtqpONlZ1XJycSBZJMNx2LBQEcPEcPIoJ1LstdJE4
gAnx0rMggqZ7Rn8tHFAXJx3z3t9MkZpmjpgI2qAtK4g IdewH3GF1c5hWGNQYbLYWMYFrhiFfoN811GDdoNEVlE
-> ssh-ed25519 G2eSCQ 7ZpZQAda0uxjIIdpLnC5JlU6cbLtJWr9LSIIdi7PUQw -> ssh-ed25519 G2eSCQ unDoBOz26bzNaKAoYfS+Bf6M+bGf/D38aZrGL7pifgs
PfGFrMVLCmy8SDv2nn6p6M560Xu8lte8DjbCORDM+uc uNcXcIOaS3ZGxwmKXMqRR7kG3ErDW4VW0ZSDVkrDPVY
-> ssh-ed25519 6AT2/g JGE9jVFM2Wu348XIHpubyCEismpfBraxnFGTnEvqqnI -> ssh-ed25519 6AT2/g hAm89Sp/tWm7lnSggrK0CCMEXxkBaToQ6wsXSzZifTE
kDHfyJdBIGIURDJ0Nsce4DqzPzhk5p+LM1QZ44pZ4g8 qhRrlwPCdaAmvW+S6XdbWsKnwoO2eLgWIfSF1XKaP2c
-> ssh-ed25519 yHDAQw KNzCNjvErLwEJZpWWMIBFUGOC8jURyvoKzCWX0ATrRM -> ssh-ed25519 yHDAQw vm25bEwFJg6jY2LIHTxbOnYDE2u+8MuahtBQJpzdW3s
EyIJpn48eU8oEB5FbMhCOd16hAVrxTFLyJEoos7WGOY /tZPXzO363LuyAQ2juZnq5S6tRXaq5RA1VsdQI6I3LU
-> ssh-ed25519 hPp1nw kdjLNwgYQV/4NMubVpJw8QCIuKn+u3CT1boZNJEWfCM -> ssh-ed25519 2+FxVg EfDKgl4yXd0MaTMOYVUwWqlujNiDJn8cUensuRHa9WY
FXNLqmpZB+CtSmCY9zGr+3UebEwNK3JmdP4ifdXiQL4 lmq9qcJaGm1IIlC4wZ6rcnywJrZP1XrjXGpQmRrE6WE
-> ssh-ed25519 CRfjsA axLQSlgVkaYmRktIP+fwHnhN2pJ55NCOW0fzTzgjFF4 -> ssh-ed25519 CRfjsA eJXHwGRcgGRy7jziDsuWJlpJZ367DgmPk33vMza+PVM
ElO0byzF3PJxN9WgENIN/YfmsOR9rOhEh3xRNIIGIyk kQzmsqhxydPnO8zkQAF6V69inaIur+Jj/Y/UWSlm8bU
-> ssh-ed25519 vwVIvQ LtrPXRJ0hztkWFnoKt5c0UzWQpD9CO990k52gjWcQnY -> ssh-ed25519 vwVIvQ g7Dbz/nR7ltZVJtfnLfNcuTl0EEmwevqx4uzE2yU9Bo
nHb1hsXhHQokcA4WoRlbZy0EFQt8Xd0cYUGqblY17Q4 t0kEKYGDjcjDRCnKcyLoLJigfupgSwFGNKnWZNgcEjk
-> ssh-ed25519 fBrw3g dnWs7lWY8QoWOjWHG68FSYqZDzsIaA/qU4AXrndGNTw -> ssh-ed25519 fBrw3g 8YAKhKpmrEqyg96QOTPjHv/Ufjzn4ebyf812/u3crB4
gh4+t6THL2mtrPUzGlYd/YxDjk3hpHxUmGq+kRcz9BQ joYiN6sLiz5zlp+w1nezyVLsN4cTMreL7vG2Q1BR8IA
-> ssh-ed25519 S5xQfg kEXs5hXXR4ocYYWoT2xFr4HITe9wIOOLz73zm/9bf0o -> ssh-ed25519 S5xQfg PvaGUlWhWUhW8KXg9GK0Tlw4ru1M7vpeG4jdZt6HnmU
WpO+5/zXc+UGYJGkNNQr8UsEz2RyBUtQ4Syep718294 rFb37EZYgmmmrJNxVe4S5CkFEadUNw72FWS67qlOcmM
-> ssh-ed25519 XPxfUQ pL4j/idFPiIPnWI7bIwn0+FuB6az/hXURAh+tvdr7Hc -> ssh-ed25519 XPxfUQ BQkn2MzbRQT32mrGK9jyvpm4e2cnZEmrFig+YVOy0TY
WWJPFYanmf3+KnjG84XlnEapI1vh0wRi9XFJRn5JVpo vvemmqvcsE+4MZYBltYMZyuosZy5JxDYe+a+EbeDTv8
-> ssh-ed25519 SpD5mg CpGcl7ONt0juh/N2hwcxWiuc9u9wjQ4d+AAF+1BQim0 -> ssh-ed25519 SpD5mg mndEjGwk50wd8+zdFao9dvscApXrQVk5HcdgBzTAzhI
7Xs7qYITkCsjloA74CDGn6lZhXNTqFV05omLiCz9efg 1Bl7ixB7xYLsAYvu3HY67u48Dv4ktDwYo5oMAbr4n1k
-> ssh-ed25519 Kk8sng DzLM7ewz+4yz5YNQfBDKcOOlqMxScGR34XfVpCUHMEM -> ssh-ed25519 Kk8sng PR7IpsRjn/4WYchFHfkGPgNayTSJDM9rY2X1CFKN5Fo
eH2ogYJO2N4cqxRibCOEoL5cXcTdWavHS3uRX7wwHxY mHPqmcdjP1atZYLaA3phPsjrNAEbAfvpu01mfZ8qK54
-> h<Vf$Fh-grease :~Z8 qwh*'} 2*OyJh )iMU_m?t -> ZN_d{1-grease {~-\e[ 8c 0LUi]F)=
u9QuYuPJEVl7Rt1cEcXZPQ0IfpOzqB59iTMch/SDoByr966PBlBfjDS/7i9U0sEI E+1JKauEcaaXzol/Gg4rqPJmO3+x0EU3V3evmxbZ
GMeVtXePXkKPXVvhmbZ/C9KI --- hl4Pp2I55YOS97jg8WRxXI1+wylN6RvGF3P+kRxL/YE
--- 1F0kxs/7SRrpoj9q4t1eCg381LzCgrwA1DYG7zcI3dI Ù$²L1ÒuðC,œ,QLÖiõØ&º`ñÍe<C38D><65>0§ÿøÙC§”„ד\7ÈP3Ñݤ,ª}U¢ üî·½î-¹R.¯îb®‰|1ò3  ùŸ“àÚÒ
ö>°cY§ÀeéEòƒ\ã¯<>Ôc¸j½ ßÎíÃS­—XpºýG<C3BD>§$½}i¼10
ϱ™< œ`á Œ<>, öAž¤£~r>ø$|wˆ¿

View File

@ -1,39 +1,38 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w 6fOw4Kh4O0WAdZG0WPBdl63ap/Xr/w+Rweylt/0mKDU -> ssh-ed25519 xoAm7w 99ufX8x+2IWSFhunUnSeH5Li0bdNZQpnjAeoI7TBZQ4
M2ZYVPz9vVGjJ6us48pXSFKKH8tK8PhkvBUJAUriimY AtecBXuKzWfxYO80lRha9uyltLExWqTTpT80HHOsW5s
-> ssh-ed25519 mbw8xA JBYsd9iwH4E2GfGP63DwdwT4Y+gvL31sB3rSY2GKDmQ -> ssh-ed25519 mbw8xA ZEtocwiOLTy313asl0C9MDGPy8KTk5wo6hZHLSx0WjI
zMHRL3bDxeAkWdKYPPtc/xyrkZlNtzBwzMyt5lb0H4o wwxe3HF3P5BFfAMI5nes+dwnzM51HSY3xtia7wVBn8s
-> ssh-ed25519 N240Tg 9DErfKdTHuvUcw9+5yzo8kMHa+IKxspGlWb6KRvPB0o -> ssh-ed25519 N240Tg 1tT+WIwhrNAZKiU11+rS6lo4XqII4yjwoC5h/J8GLkQ
q1FLalljaHyYxEu6JrmcXGYhYi0L7TAtV0U8UsaQ4cs hLWQ7XFlmycr+J1MukhHFebYpsJVUwUz5F2+XNDU5g4
-> ssh-ed25519 2a2Yhw eDolYbro00zktVZA8xdhbjvLkcOItFU/lTBPXNYypWI -> ssh-ed25519 2a2Yhw 5JwVo1eeVRryxYYaWznfHlIm2IbNcONOKK++ssMj2VY
d1MlKnVGRf2T2VFPhDnsSF8fboF+5mAdXEMeJRTjJz8 o1P5EycNl31HBfQYZyB3KL62ZxBej/t3T30dfo3WYko
-> ssh-ed25519 dMQYog 2y6zkr37iC5VarUPOlrXVj9XyS5pihQq6O/K20gTMnc -> ssh-ed25519 dMQYog Gh9wRFQ5at0IRp7lSUxqx4cmo9khOPMfS4B+QM7JRzU
jQxtJYCH1JagBpaupGVizzk0ZCswOQvFTcxT8IeFtRI zVhsUzfXDOowR2ICIEqpTfm2TjsiFmK+3k0/cHJ/o/o
-> ssh-ed25519 G2eSCQ 8b0ZqtAxiFRfLEMHnj6LZmq5CQT7nMmfTwc+gpKbQQs -> ssh-ed25519 G2eSCQ iv5pDSg2yIcqCJcBHS4GL2lbCZvzPxjHbkLjZJQEWD8
kl9EvBs9BpZXoomdg30ViCMBV8xEnYlCD9GFY+dNVBM JFGDm/7tRozdGVSdeA7kd6N8+Sj39OjJ/Aut6A/7w9A
-> ssh-ed25519 6AT2/g kA3H9/fN5qyPquKIBQqYSGZYhxqDc7Zyj0CrjF0Nqgg -> ssh-ed25519 6AT2/g 3aE7p8BUJ0Dt6zATjGBql9Hgv4gzpAR5zqPahLbR/j0
zXrT+jpTJo6ToVzLuLzDcqblXKdDbjxt4Zr9CvWBZc0 nfhfhAP2ZLWZPzRr2ZV7oaP2DEOGH/9Ygo0plrkmu4Y
-> ssh-ed25519 yHDAQw vuMN4IU9wAIAWDFEDCr1yjEPtEMCISxYTx27qh4QS3U -> ssh-ed25519 yHDAQw KR40v7vC6hRm9QqWtlF9WX8WIzbo7b0Bukvl1dHMiRE
2vrVYYbBlbyEOmd7cpeijKeNk6uEe/1iWQcZO8dSrWI 2F2jAXTK2g+82Y1kSzkRruqAfsCzhYwKEbJWtg2JbMk
-> ssh-ed25519 hPp1nw TwogaV1PZXUekJoqXepW8sUm+DvPCxTEL+RobecJ3ys -> ssh-ed25519 2+FxVg JQxr5S9RIOcVzBK2tNBtIBDnncldTPk9blnuGNxrmyI
VKM1QHFM8qDW1ZCpueQEqQtQknoQ470nll7y6WTjlWA 4vcIXvs9seQZ3GVPIqYr41Bd9xhPA11BlLHa+YNDf9Y
-> ssh-ed25519 CRfjsA dvkLphHpCButJtI/RMlt7RvaIuMNHLbF9y663tvuvhs -> ssh-ed25519 CRfjsA HjpZxl25Xu175mNcmhb6gBJkSiN0rZAHGaxChssjkVw
VEwK/KDK93e2iwEcwmGM8vvhwqi+tNW8SYrbsehZbWE dX2D42NviiSQGCIPBPK1x4CzLf5v3fkcFM6+tVAi7k0
-> ssh-ed25519 vwVIvQ xnd9Vgz9FCeRu6yZbbIZbSBEvSkgPzFifye5eT8kmT0 -> ssh-ed25519 vwVIvQ a08tDilNeVsKz/SdzmI7/drnMTyh8o45JJgc27yRZG0
XOCZBNTP66Wzy5Vdn4qJwzApDx3U2qNnQqEBcwfARHk 5qiAp/6uHLIBNdG9FZQqZsa7q9pbJyzlTe0UQvWikPw
-> ssh-ed25519 fBrw3g 81Mv0OtBk9J2Tb7kjnT4uCGeytV7HJfOTcA5C4NoLy4 -> ssh-ed25519 fBrw3g dDA8Vy5fpfTs7b3+mAVkR1HXvtSRcyq5shCHZtwDRxo
hiMbGjXjtvBa2Puhb8GBas3WXc0fozRD4hg73MvQumw gIk85ymB3yWjINCmlSJkaFMihCD1vDon8+OLwAh2wRU
-> ssh-ed25519 S5xQfg F2oOMdM1U1aT4K6pIhCnCz5EbxnEb9Q4QZ0MkhSJKnE -> ssh-ed25519 S5xQfg ElRT4mtq4Ksv0imJ5dbvW5M5DIgdStHQdrFqzmXZXho
Pz2cyF+IGLz64466ne8np3xA7g+51S4s4mlaLRohIM4 QCK3xZRemQtgXczwgwEbrf9oJZ9NtSHa3a50T+nE6AE
-> ssh-ed25519 XPxfUQ 3rIutnjj8fXIo3mCAL5nfzJep7q70j+AGLE3j/JxOhY -> ssh-ed25519 XPxfUQ l8AbR8IsS33Q99i9uC0b3eT83tAX7CFiep0V6+62hRE
v2Xj5PbpFMsf6Tx68u7VHCRqGa3Wrnsk4E6Q08SklUc D2YSywYJ3WzTm3VWMh4YWKBaTARQ/rexq7ked3Di9fA
-> ssh-ed25519 SpD5mg tmM+zaXpX+W8xsMfBCoWZc+7wPRI6yFt2W/p4O2s4lo -> ssh-ed25519 SpD5mg IQUqhLhcHQn9wfFY1RSZnv/GeQau6y2N9JOl6e8prgo
ckNxHza6ruYdIffwxDFOWnYOUgpbWNfwzU5AQJb6ZAA K11LjHTz0VZyYj90xsbQznUBGvckPDX8jDy8md5o+8Y
-> ssh-ed25519 Kk8sng 2ddBuZ+DEVuvRmWS2O8r+xT4Qtrev78Vre+yQ3kNdEA -> ssh-ed25519 Kk8sng XRNVn/26tWcdLBzO3cb/XVdewgaw+b8sDIn0jDcWIU0
LojDcUOsZtA5kw8kIPC2y+G21T1uKUEUkwkJ3xPiUX4 r8yDTjK6W9BG18hAU/sN3G6o2jU1dyhn/no9SBNcT8s
-> "JnF1%Gd-grease |=~ P -> P_O-grease M#%Ei0hU
tzG7OLiEsRVyoTBpLPGwqNBUGkz0 rzNzlsj4euy4zrS7S85p
--- /AHllIllItlnpPXQAkywTF1UsUb7Wpec2jdYE6kOkO4 --- T48w5S/LYYKktHmqdc//AxHomtH3Xz7CPxRD8KOhYoA
´ <>§K dú6ûJ+B†·r!žøµŠC&Y1G/ÖKm½ BÞè©\ÆñS Tü[l„uW
^U5{Ôpœ_l9ûá7I#J¯˜Á!ë†å`Cθ^vÚÕˆEòµßŸÁˆuž¥òä×_WPæo2.<èù w}¶Ì á®fÄŒNTõå6éÜ|5c,R"É…ÜqôÍ+;šè|€ªÜ
(!V®

View File

@ -1,41 +1,37 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w N9ZPma02+vK6eoQ6X9/AufI8d9Sq0fAmbCygEAprM30 -> ssh-ed25519 xoAm7w cxa29LYBQrc3YAW5rUvS6nfkEg0j66w5wYu1PZ8Wc0E
qUcK7qCxU/wGxssjMO3BFmiP+ZPCMMA+MPsqTS6Hau8 NdsMgB5PVVsFrm7wR3xrOcMmIvP5pv6g+KYAhiRvpuI
-> ssh-ed25519 mbw8xA 1uhQY3YHakSRBjgVfqWc3ynGGNT+T6qR74oy7UpbdGM -> ssh-ed25519 mbw8xA CKUESfDlXNokBZDcbmCkgD16V9han/+r5dFI2rnBcRc
7cvBh7xPxDxZqrQURBUUnyk2YjzVY/kzAUf7dy5y/JI uc1sJ/OQ5gclZUSIAJ2c9VY2Xb/ArMNpSnNp+gSTWZA
-> ssh-ed25519 N240Tg ujiP5iMMSupxkwhY1DpkmRQOQlZSr9WjPGrY7aUKmnQ -> ssh-ed25519 N240Tg 8ZUgwgnxZFMnR3F+8VSXDAYooXrJsWK5QpfSxKKSKBg
FNeXuINzgDB+gn/u76gQq7J1zYCQC0wbFyUVxvbalI4 raQOAeM4rpFuGMtjts6AkwcFaVRNoy0byVXBDR5BYYE
-> ssh-ed25519 2a2Yhw C8/2A7AOzjyrH4Ulre9G+w1y7H1pvVZe6k5PTmGBlCI -> ssh-ed25519 2a2Yhw ig2GjUHCFT57AldnHOWs5uQAaOoFJeoounbweJTQlwE
9W6w4Ib0riy9sbZEQvSYeJ42LXwPruV8kPvTOP+dMqg VARizPNxh8KHt/PxPgkagovHAVIiL8ex6XIwUM3xYLg
-> ssh-ed25519 dMQYog hIbfS8dz5LGPZ9sU+lHHnL8KB0CceM2nYV5mFV038gY -> ssh-ed25519 dMQYog LQUCsEaZI+6jWrwz3HKWj4CJN1r2SeCJmc35b2/WsHc
6r14pRwszEZGVzDRZQlymlgjdp1Zd+r/O2IfjqxBZcs 5S4K966vu1EdRTENYLgyCdmGBln28O/j9V3uPgjaS7g
-> ssh-ed25519 G2eSCQ kvgWxBHowwVcGlm3KiWjxug+Wx3zkcMWl4wbPRrhrl8 -> ssh-ed25519 G2eSCQ zLkbxZbH3rsgENTIZJKDPo6ByTGjwRScgl3HVZxwu0E
A5VtHqvDwaa8jONXMTvVQC1ALcnsiqxllM/DrRXWFws lHvz8F27CTG0pCW/nAJpdISuTcOiqpD2PhLOYyWCC6A
-> ssh-ed25519 6AT2/g XUGBtkOcpLRKNDS3hsyXAap1DXAIeaRX9jFOfhUpMw4 -> ssh-ed25519 6AT2/g 3pshwP5X6PFs8GhQVPQ5s3TSyEt/Z6mEswTvZ5ZLgUc
sq/Ziv4RGRBmrUgS0GWTQs8AViUXBWjUxqf0V/rAN8E nFSzE4oF+tnXklCyacNQwBJ82s1HdmGC6mWrYqRVd+w
-> ssh-ed25519 yHDAQw GmscTQwu+lHC2VARJusQ606NLf6OlxITZzINjrbxf2o -> ssh-ed25519 yHDAQw wnJ41lJounkHLnZB56fLgjles3dYOzoiFM8vOfEHPEU
LmuIU71tE+2OlF0HGNS+DdXCLdA5lAeTPXl1S+V5KCA 33TGDVzGFr5TSVSzK3MHYB5rHR70lBrnvpgyTVBsLl8
-> ssh-ed25519 hPp1nw XQbGxz+YJ8RieN0HxEQz9kJfikbWTtz1hFNGQBHkXzg -> ssh-ed25519 2+FxVg NnL/Wt2gNb/0vkd9FgiZFlkbpCfwweAJUCXi94U1Jms
1yst2YMs9XelKpIGyl+qxAgrFZ+Hq9odh6wBovbb8sc fvkC5RGNBDZ4DLVjZvAQCvnqLeQAuQn0XCS+VFSyb2Y
-> ssh-ed25519 CRfjsA 79TlEM5+g11lMOkkW/KvSTmt//ChklK3jlUHLAM/1hQ -> ssh-ed25519 CRfjsA YC4+VW4epc3UKMDV5r6RXR4Vx8td1qCuTJwnSiHyxV4
9X1VP6SYST3Q841ahE+fAeg0FhKq+/XcZdysigIOgdc gRLgJqsMuTKD8SObfpR+3zWew5rjwdpEmUluyWco3Ps
-> ssh-ed25519 vwVIvQ 1r0/J5T1fEmOjM7ybKDPOBdE2UIDEUdkIFNWGJBzXGs -> ssh-ed25519 vwVIvQ qr9hH+jPD/2eXesSPE9/sk51EeuNHmPe+Br1XVJpsDo
gAOX/3koAfQx8er8nt4dlvLbIoYfeVPENjz7wLNoFwg fiRhSdMKVo4K63UAJh4jyTky0aUZZUYFDAE0abWinYs
-> ssh-ed25519 fBrw3g 9hdWAt6qEwjAwVmTprCkR2q6GsE4dEOCiCTRfz58fTk -> ssh-ed25519 fBrw3g d1YdgbjHQpvTgLjN9z/0eRtEYs3x0Wht506uxogWCm8
f24fPWUrwtt1UN2ebk7tj7gBY8EiAMwvEvztCvaNZRc d5bULkVNiFT4l9uJ/6k59dfcY5jYkv38YHjx7+07YRQ
-> ssh-ed25519 S5xQfg wyY1lx8QIDJy9pCi9zS3T3lNV0jQGhVC8HvyI60zrD4 -> ssh-ed25519 S5xQfg 9Q0QgN7g9kRGiOvBGZp+3TrVuGU3oyAvK9M64aUmbSA
6+agBFHfxcaTLfZLyEeUMl9zyaFbsM9X2EXPvf6DfeM PJQPEpCM4zU5VLrqsMa9Qd2rZvQSq1vYbPc0uCwtWyk
-> ssh-ed25519 XPxfUQ IabbhU0TM3zImRHyKk1NLnGRUUTuQHHCMLzp9AltDVE -> ssh-ed25519 XPxfUQ qS5Y1YSx2g7ulSINPEbjm1lqL3OvGuLaj04tcPmjTiE
vf+5OlycHphA0i4nB7c6OtBBahWPJR/8VSWzudM9FEc hSw0TZRL+V4NinnYq37fC64zFM8CdhZFNXmd3ps0f3o
-> ssh-ed25519 SpD5mg VSBErQVSLWPcA7C3p+wuL0/JaP58O5Gvy8z5eJduky0 -> ssh-ed25519 SpD5mg 6215GJh97SQIklYqTx5WPUlPbNJUMo0vhXTwtr95rGM
jnd3tBVjqhf8oZy9h2soMZVPEa2dvYHxvrNUdKK/UwU jklCiz/2AIAIuCKPFS8u1Bw8SXMf1AOV9X2P5UHXMUU
-> ssh-ed25519 Kk8sng 3gM4o/sdewPR8BZo8owBVEE2GwqnQgUeA1Uxsd8nOlM -> ssh-ed25519 Kk8sng F8va5sud1ck2V5MQ8ky14Eolj+YEIzoibGrty0wVQhw
VpgZRzc4tN7QX8s41iKoCstfU0KgrGhWolfws8QXYr8 FQIkCvXEtPy+aek5rvU6SO/Cet+f4wzQ/ebqbLSaunU
-> vWbrVo-grease ,kVQ{ -> 1k-grease wE~W)OD
PpMMMc8V/eqh5OBEcK067OIY3UQt9QTjHCVVesZediQxm/E2rRYvKm793NdgsflT DXxr4+gUdNeA2+skSQ
mAA0Lcu8/6EPFWtK05TxkDO+JaVfrvKLKuh/E3k --- n9Ef7xVWYWE0Gu0h2fLzw2gP4qOHKLsCZ/6Yjfxp/xA
--- eKZw2cOm1WsLYj/Bx14q433kkZ6altIqL0qnBSYXjn8 Ô…Ñ…(¾= eŠjÿEƒl)h·:¹žiÉ<C383>ÂÎ(>6ð¶{ÜäêÏ :ÜlŽ,D¨º,I;þ3”˜»ªw¼¾úµ­Þþ)0“غ0ÆøXÖ{fè·—­@þƒÛꀪM­ˆÒ˜ Žä!t
>»KÝ-B<15>vœâŒ×ôÕŽ}4©QåÎ˳x
ÅîÝÒ{ʱí­
0U<01>Ò ê¶×Ý
' @ JÕ¢ç¼$IKBÞ:Øp<C398>‡;7EìÞ%x µG ®RsÆv˜<76>Ú6rtÇ<74>e

Binary file not shown.

Binary file not shown.

View File

@ -1,38 +1,37 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w SqYHa6RK3Qc2q7PnzW+2zWIc+A45lcgsGUOcloo5NCY -> ssh-ed25519 xoAm7w 6YE8Xut+bONuueEoD3aAPn6ly0nlgHKmPhrOYmaZyys
YK3fq1eFLcrYyeB0jrbpaDlvZI4QXtGDB6gBsNOHRbc OFY0cogxB/TM5ShiYG9OyAlIXJvPWrgmB4QZrdTYTGA
-> ssh-ed25519 mbw8xA td67bdiy9OVhynehUE0t9WNhSm5mibBSouANJsb54DI -> ssh-ed25519 mbw8xA mZdtNfY4gLd31NYVhhdFqKhNh+tKTCGayG8n8CY16Xk
k5Q0NYRDLuEVqi6spysZ3wczsl6KeJHnzeQs4AcfOPM 3FVJm0Ky29mtmCo2NaeCPqcurt1oy+1kFaGzBMRFvgY
-> ssh-ed25519 N240Tg yQxm7sk3zmluyfrHuXcfcUH4bep9yO2yasWsZL8jlm0 -> ssh-ed25519 N240Tg 8ldjy789NFoPb6FprQEESprs2G+tH4h59uZ1cR9OKmI
0uLbEiU6G+BOFnhdtQ7y1TaZun3L9cayeOJUiKmhK3I 527JcKENr6ddpZ1xWy+9rWgsFG/0/okHYtyZ8bnIGtU
-> ssh-ed25519 2a2Yhw rWgv/wgxs/G8JqWRMX4K8OMkbDDEWKXn8tr1EZHXNTg -> ssh-ed25519 2a2Yhw CSpAusLjwTyUMR3TQEX7K6wLkEBQCTwDmDWzqa4BWE8
//vsUBg5VSyyPOhUppiV4hkEhSVh7TUxlgRhroeMH2Y ZMWO6kC/xXdzeYzuMtj0PU78rjCB2SxmLW2FkEm3GwA
-> ssh-ed25519 dMQYog C231LaIgcDukZz+Q0w3BS6QoRNPYBpQnDc0iapNDACY -> ssh-ed25519 dMQYog xKjJsFoT+B3+vm+92ywinppmwbMDFqlLHLlQh56d5m0
h053cONj1m8SP/V9oFU7MuMRNKq8KNxr9FyWoRShZ2w c8yhBQL/umJZoAqPXJFYFZVN2CwyftPnXZbL6BEo/XA
-> ssh-ed25519 G2eSCQ oazxEulqB0zTHwBBZxxBvskYLENNm62hy0EMt/6BIi0 -> ssh-ed25519 G2eSCQ PNecZsY2AXDMAZvPw+HMdioRE+4hiqoXViwQDAvCWn0
rM8Evty9wq4qC/Tau0bU0LgBqNP1J6Zt+iQeYwhBJ1g 3xemYVepW2NvII/zDuUsFfp5uBFQzU5Iz2zHpnSACfo
-> ssh-ed25519 6AT2/g GWYlWQLxy+JjQUGGG4P2ePuqYkUov/0OV1gyAUfo7xE -> ssh-ed25519 6AT2/g fnRDsTvXSqLKzraCy2QUqIqCteAlVuSqrkohHoIQh1A
CT4W8xfyQyZ8LgnVWncxL9TMyf2tC1mXhjJ8/OrV/yk NJaoRKC8IyZcaObclNuvIJV1xtNA2Vnh6+6gylNBRko
-> ssh-ed25519 yHDAQw 5FsOvziKO7oXBvIbJ6ikUHyZsfJcwoXcXYmCCCZlUl4 -> ssh-ed25519 yHDAQw vhIaLzY3A5H4xVoWXJDFXdlX/Ddk0OCScSp72Jy+jjA
5wywGXF9/QbqT0H3f7GY1J79ZwrFaSG6qzHll5G9Xcc r4sj0I/Vs1/klWNa1Ud/alCCmuGGKbZ38K0UAbxOaNg
-> ssh-ed25519 hPp1nw Aii3iq5LHQPAWIGj7RbK18ChTij7zYnARHqXTAcU+wo -> ssh-ed25519 2+FxVg UfBGv5v9kilraMWTgPj6reFn1Ipv8elF/Je2L8HJfzE
218UL87Ev75zAsloHSkLlQoSLk3u+XaRgMpqFlHQEIM xeMgBC6Ao2ykXFNRbdok/gC1RXHjH4NPiv7lpFzCWGI
-> ssh-ed25519 CRfjsA AafQ3rTlpqLZqz614VPy0h0o+ha4f7gdx3zuoO7h9BI -> ssh-ed25519 CRfjsA 7Zz5w+LgThJBhCeTLsT09rZnQiaLnFUuuxxFz0ui7xQ
jyhVN8DsgSo58YPKb8c/eBWSgunbLgN0tnvqTaaOxTU XCPZeaiQ9uDS7dachDEFKZXc2VI+2S3EpP8m4fWH714
-> ssh-ed25519 vwVIvQ oQHpWgGDhgea9M774iyQ2gP0hvSgFr5ScM4ZdhMHD2g -> ssh-ed25519 vwVIvQ 5Bc4/BrCY4VdCabJ+XW+e3UPshgZWYFktE/QBb7+0Tk
9vJjWXwOqpOfegf9ZtKMxAayDsn2ziHGTHGIBlAO71E 0+2IcVoyV7aX4wSBkwD0uuZlzInTXXJpJ582dQiwlME
-> ssh-ed25519 fBrw3g lGSzsEt5Ot/RHwJbL3fNQoR29ZQ7EsFUWv7HjWnU9wg -> ssh-ed25519 fBrw3g NcGqfNA75TZK8snDZ1RV7CXDVDHzIo27CzUlisWw8X4
cufwuuyT/Vcf3QeJGXEcYFUQqjf0US95po7FaGMYXAE s9UR8O4q4w/PbAZPSd3+hubg8GdUBYfhQ0zaRTgTx5o
-> ssh-ed25519 S5xQfg CGj9qzx3vvlNnHh5RUyg4+3gVpIEcgGYbYJr61oTJgI -> ssh-ed25519 S5xQfg xtYjArK1YYAV4ts55E0jPIovtagFV7UJRb3iv1Om43U
x3TLtdaRpFtMRTC/RdngyBOeXQFEVvQIRdfAsaj8hj4 SkqJ8UmlKtf+0KntLyjZ8Rgf0MtapEnEoVA+xTFbVSc
-> ssh-ed25519 XPxfUQ r1iu+mpoUVuf0AqaDsrumw8SOdiHapODcgrYRrAuSjo -> ssh-ed25519 XPxfUQ gy1JvMR1oy1mstVgPAc8m2haExzpEaJj+2POUNc0ZUw
1XNRKfEgm2U9DXZmNogFr9B9MqibE72NjyHiy2zZFMk +HaGMvuuybpJaWs2yCjUyJ29jXKaDLkFBm9l1WLus/M
-> ssh-ed25519 SpD5mg NM2MP1/5yxwQvvpiHnq1aiXQg4yxWpsNH/Isrwcz1Vo -> ssh-ed25519 SpD5mg C2BcTINChQTOMgMnn6wjJZ7ADmiqJpE4Z5dYZ3z4wwE
IdWPzZg+/mwCr91bIlDMpAiii/HWsnIxTGXnetYjRPA QgUNdg/PSj67SdNfa08YvupPfV4GWnSkwcRIt7ZgOVY
-> ssh-ed25519 Kk8sng 4NAaCbs1EOQpZz/qm8yW7PkFdsn8seSTgInow1zqBiE -> ssh-ed25519 Kk8sng +bkUV2nOzxIrwjFWNErRE3G5itxwzDKs6lG0NlSe/CI
2MJJNUFyBkxy26adDmoJKNndeQT+MsJGjdYiXMpMS4g X8rlOeGQLzZXiIrkVFHJDHPt6ruuBs99jZ1XLZSAgBw
-> A-grease L''*[IU] -> N+U,G!$-grease u eB<}B2q $nG@I[&z D..uu,:
5xdl3E2HB0Yz2TKiRucf1X/PV2JS4rc4LG4cKJ9VYIUksE5Aoj26E8h1izCrhEsp E3PUEP7Z7anp0PcXD2CDpRsv
Hnr2xC029yD3shPQ1w --- FlP6ry9X2YIf++tM8sOD6wqqrmRgGNBED5RmAepRfOk
--- OjLAmZwep6nKTZYMUuBBaMe+F3FmWqsCM2XCDqoiG/4 (Z4š¾´×Éxt-à<>¡Ø¤N9¥ÌÜÖ<í®TûÁGß.RW#kÞ'v%øã@êR‰!#Á%Ô|<7C>CùÉP€YÜÀší¹ Œt1Ñ¿³ †Ñ3qÑ`
ÍZÎëk²¬¨œoéG´ûCbÇÚ!Zö{ʦ ƒ\ öO˜+PK±¬†rîЕî A´~zÕô@ö’\Õ±M3G¿iÚGl‹èçÒ~€!þ§Á*Qõ‡ã

Binary file not shown.

View File

@ -1,40 +1,39 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w CNXq63Qxe5wvwn0dr7QKcJogg9cO5+no3FcNmxkL7Gg -> ssh-ed25519 xoAm7w 8/Xbnl2GV2BouMzSyi9SccnOvkr9MhD16hL7mATBok0
w14UiCOJofq3r8VikRCOjIp29NXvoKJHyRms6tjr3/M IIUWe7J0BA2KtKSCV9hGHwwutyV0iDXEp4iBw2ECP1E
-> ssh-ed25519 mbw8xA tzrtBUcTaOZBi2BNhgwN45MqMlQKGZU6FYm8IEQJKH8 -> ssh-ed25519 mbw8xA ljb+MWwZ9neSLiGcRRiVV77AS887N9LrfJLi6f/XYQk
Vpc/0IHNizsxTozoVm0YZdm0qgKwx1sZ/JMIKSjQW3g sNYx/g82DJC8boBMYev5HpHrBf/6d3Itr3O3C1M9nUE
-> ssh-ed25519 N240Tg F4wZmhSgHx1+tLok5IdJe+CCzWf6LmlkOFNGWqOpxXc -> ssh-ed25519 N240Tg RpJNQFws7kfcXBoEjAHSZSDrxxCK+Wvd+TxAS218iUI
ZF7+t0HDmfaJnyNe3lkz5aVFezD7mAxqRiDCZCwW2sk Ykb4uzw9s3TYcNmV5Bv3Fos2P3L9OkKwPCP/dr5aMJI
-> ssh-ed25519 2a2Yhw rC3PH9ftW4UWPuUpP6tThaSe9AkfKUiEgQPPXerJ/SA -> ssh-ed25519 2a2Yhw kFpleOyyyhKDq41jgohT0BCpVpasAoiIUPs3oB/kEWw
UNKobz02TnEN/oqhp7hwS46mU1IA0ehVzLqeIm9QVVk 9tHqujFzQ6QI8jQUEevspybHVDtzwyNoWEXUhDitlKo
-> ssh-ed25519 dMQYog XowiBliO/PhqZFnmfnXWmw7KVT8I8Rp46RjuFd/amEM -> ssh-ed25519 dMQYog ISBfsqV1suikFT1b/0bWj3Lk8VLR/PQrQjviWg4JmCg
eAhc4PVY/3ZjwiNihO9Yqa/au6ebkXmqbK4Zehf/FxQ nDnUy5N987f/TAwanzzOKtdYLJ2ywoikugr2sGuVI7s
-> ssh-ed25519 G2eSCQ ann2y2LP2fIHtQRLtpLow/g2yTmcEYpUrbc0N69iJxI -> ssh-ed25519 G2eSCQ ygV0RkgqXQxvsmXOIjAPfopWldnsMZ8KgwRKletoGCU
N1VAHkPjzxA5Vf9lKY5o7SWFy1kxlv78LSDcRt/MxaU sELGgITcp3DKT1sNoUzE1Nl7tyINq06TfYP7k2yKLYo
-> ssh-ed25519 6AT2/g uQhLUtHpvNoLBUs0zvdMeGTtXQH8gHzNiRfDq1x/3yA -> ssh-ed25519 6AT2/g EtzGUZOzofDnfd5M8wIIxaoTk34hr49PbChEqMmRHHw
rhSm2KQw3k/nhrm2UmCWJ1oBcmYwP1S8hAY5xUALY5U DvEzWA9X7OWjHAl5JCVV09R6KTA/JwlBcB/lyFVgbvU
-> ssh-ed25519 yHDAQw qO/7smo6DZpW4/dBvkorYBYSGBdemDe7UrdSXDjb8zk -> ssh-ed25519 yHDAQw +ojBBWCXn0DDBK9kfhDRYwbIQgOVE49vAZJ5skq0Wy0
xkRizpKMEbD0X3BsdSfc5DgjYG1IQLKJuQjLLSwPnzU MbX37CfoHI/Y9KAj39XgRfa83CzgGuTRkZ+tcKT4Icw
-> ssh-ed25519 hPp1nw +Y+MeoeD58k8uedCeD2RbRyGlcLYEgNc2PC0Hr7MuTY -> ssh-ed25519 2+FxVg 421B7+BKrkKUv4anVKUtptyCneC9lMuAuqfYtow6j3U
B3wQcio9YW1Vl6reg6APLKDbizQDxWY32CkXbuzyyt4 4BDAGe7MmBPX/3c6SXnSIiZB1QzkyIDT+HKiXIB5QdI
-> ssh-ed25519 CRfjsA 6KxnAOe2pmjfwTiQZe8zHaeNJApPYdCCFK1OlFaE61A -> ssh-ed25519 CRfjsA aBrHk8ZZKbSLYKjjySs1Qj//e7kGIjIBVMeT7An9zkk
9psQfGIFCSjSYw0AKpKRFZ5qIYFOvq3FvHFyVRa/zbI W20VN7h3QwmRJmV5J3VGl7IhqUQatVAlncfufjnPwII
-> ssh-ed25519 vwVIvQ Zghw7uz/yR4dgsFhbeXfPvk1HmSaXV6CcRD6GlHeiGI -> ssh-ed25519 vwVIvQ b9wq6xiir/uVFSbs+0pN34Ec+F47CwKAvjEDQEZJylA
KTM1Xu01FBcsmhJVeB6VGhMqHpnpLNmvWVBxV0+JW5Y CKiFnDpY0S/iZrMPNNMAT4+aZ55KNviXmCphe89bjCk
-> ssh-ed25519 fBrw3g h+wmH368BHkFp5Mu3PnbZFjyMVRBNcwU4hloIaZEaGo -> ssh-ed25519 fBrw3g F7MkD9bPZ3awfYdd3v4If+XCgtCRRS+rq/uW365mnks
TKPz2C3yF2wBsiT8/WhbKEg792PLcQ3YN5UWcxJnwtE vGWy9YrSiBESG4MWxgqWZzol1YSRUGgbjY+2Q6FwLWQ
-> ssh-ed25519 S5xQfg YZcNHfVDJ0GRF+IpLVSxOeBOSoDhDhdL7r2npRYcuEg -> ssh-ed25519 S5xQfg lZDkCihzUwC7rGSeRFxvN1Yue5Ql/8MveeIMv8nXLRU
mPfQ+m3SGGnGO32oA917AfosSnXGqHRDdMfIypK+UOw 5yxTfZhyk00iQnnFIsGvStPGFb4lWhn8bgDsnQvNnsY
-> ssh-ed25519 XPxfUQ jsXVjpItFnuJiaeYIaYKsJFusASry67LiqDW3n5+QSg -> ssh-ed25519 XPxfUQ zlZV5zjm2XkSo+6CQ5nLTaw6gPTaDbu0D7VHsYmKYg0
0KzbBSbRrq6JrpWEyTbs41b4gUUiKeZzWI3rBaa/AdM SpdQFAmBAOQVZL+kAKIQcix2+lCwvxqJvOPid6crL+o
-> ssh-ed25519 SpD5mg 873X6UIo87svyS+jhQGjILcVy+RjtsKwJfDyj6gmF3I -> ssh-ed25519 SpD5mg 4z+FHDyqILNWuc1iyqC9bLSZ43MhzdZmsMi0rnMb/wU
KNHCRKZ5NhJbNmrhWehpUXEv6jBGeJkRxCi9+/bgouA aBGWQ7GIIkQ8gDyrFYCLBFIzaj+VY88FfTJphzprST0
-> ssh-ed25519 Kk8sng /ItiKGK46Wia6VSKa2AtEPj+PqpDtWxBhea4s3mqOVo -> ssh-ed25519 Kk8sng p0YQLEF0uEq1aLcaNnnCE+z1FkI0DA5QaCR7VJ3ZaXE
OPclxoc2MygKYJtahVbLfE72X4s4yVil4dugeSF/3DU djFc0xi5DqZpf+on2ytj1GuVy7SVcxey2Wzuvwy8AY4
-> U(/M3X-grease Jh[D' -> UuD+-grease b 4<Q0g" hgjWJo qiA
z6L8qVMUmuElYKbQViqc6tecJic8gho79RaMilbwp7uS+owmgqNMUFxv9+8bbtYY 19psCQoHNTysO3fsEMnVkLahsWJPgshhy5hQKX3dWUUaNUwnVSf+WDKXKnjeupWo
wC+YIigf5xAKlwcOipCJ7xv3jlqt8yUFWV8hg3J0GRbkWnhFYdWGXHnPtomPFtE OaEPSmp8I5e0lpAggFZZhYwCu9fG2BZCFLeXNm2LFzUli9pgjFdYz/up2hB5C/c4
--- bD5IgVE3GQSnej0FLxh1nGD2q2/fuhqRL2yYw+2KMek
·)ˆ7&ªð„Ñ_¾â%!2aâýÍݱQ --- jMFadnLfkEPXvTzhx5TKtnK6Yr+r3pgpv4cz2RBok/I
ÿ6hêlÑ )Í0ß}*ÌmìO(¿l8^"ȑ̑ù<H¡Žqr¶²û³!r<0F>ÌXóÖ˜ºxó:FF£¹áÉó§‚#.Ž™Ú"[Š9çZ„° Èþ \Lh¿_r.”z½S«2ʧEª±J¹b—#ð†~<7E> >$çÜßü&})ßÿT§ÚãW<nbNÞ¢þ5Àœ<>-¹qê#J?½(µÚŠÙô.^pgF&'Ø:z:ó¡Àæi\å¡ä.¼Hf^Q­²ðØèö¯|K¡oŽÎš zŒìC
C¾ÜÊ62¥-'™ÛX$S

Binary file not shown.

View File

@ -1,38 +1,37 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w F1C6i9iOvzUf6pS7eBfcsRFRn4q2YE7htxCqiLvasw0 -> ssh-ed25519 xoAm7w oWqlikYvtZPfXQywZ/XuMW0b/w3+5D+KkaAimixxwAQ
viF83MLadEfum6wQWgbl/h0l65+jAtBszhevVS4jh4k I4kD0+enhgNuQWC4PYaL+9yvitL471K5EiUJ5B8nAw8
-> ssh-ed25519 mbw8xA Ec2wju2txmmCHuVNDWdLQkfUNY7/okY2koAz6Jur53o -> ssh-ed25519 mbw8xA CBJUxWTXE8Ln/3qFqMg0FeLBc9OFsSAl2AHeeygOwEk
JLmlpd43QO/LPvS0TW9eKh6f5zZmbVDWjYn44J5ZqMo +abHOk0hrRQDn7grE9frUJh7Wa28hW5Mak2m0mVGWpo
-> ssh-ed25519 N240Tg 1bl9Y+I3XGx7RiY8078wEMdaAishvW84nMrprt8jjVU -> ssh-ed25519 N240Tg X2+ColuqWnXT1WRmLQ8wr8qea8uwhWteClBYBNKTIFc
4lXtc1rGouF1DoTohQnSEMvNwRZaaenimEFypsfxajM v3YeIjzItehJKMPovIcGxOsAH3lBt7Au5GzcMFyYQME
-> ssh-ed25519 2a2Yhw SDknhtgjNgNy3ktoNNvLie3OdO8bKhWW5P4s73OtLk8 -> ssh-ed25519 2a2Yhw UJX1qygh1EOG7IR3kRTaUF+CTTmeK64K7WDlSRejoBs
Ihl/yNw35f2CgcZX6KHRXUTpAHp6aAQR/7oeU+gq3V4 3dHllueF9JR8pirslK9KnRh5DuIg3yoI+P3xAETWgZc
-> ssh-ed25519 dMQYog dME46DZmwFnKBKlmx5AZEoaVipBmpuz66RXPQfFoXSY -> ssh-ed25519 dMQYog el0Oc5Er66UQiJXKbS0K1bKKb1fP3gvlaJE0PxMF60s
eAzeaSpIL5KPQADGEeuX/bkQ014L8MeTQF2fapO2N/w ceoXPA0zjkFcqWA2sBA7F956w0yzIH1EWTZhPAxmEOc
-> ssh-ed25519 G2eSCQ 8/xTD9nSXyAeZwBEdJgLcOembBwnMOgWX3jR4N2sXC8 -> ssh-ed25519 G2eSCQ 4Lo9os9HsE/S8RD9hvFmMZCUZndu4u+Y5kiMMDqxEEU
0BmY7u5TEcIEza2PZIJEamV2dfC0sDeVl0UXECBwDlc N7Ii/hgJ2YzyykzZYyL42xirKE7czTfhcdg59j5T090
-> ssh-ed25519 6AT2/g xSdH52Oq0TOg0D76WlDVSY5kJb0hMAWoM3XVyMtAeWk -> ssh-ed25519 6AT2/g vBgK1qHPdccfAhfW+XhMuUwki5j4V34mbC1JStDy8hw
0p2AHJDa9XK6C2g8AM/g7cWdR5DGLk6SoUL3Nah2G1M 6dMibsL7dkzOdNFXq95iIVLZrcw1gvjX//Kv2ggNbeM
-> ssh-ed25519 yHDAQw mQBHUkvKf+Na8pCfl2Vb7+sKLmKth0lbxDFEcTtH/ng -> ssh-ed25519 yHDAQw nu+lave53WZ3gTlQbxIbNZCQWwOgx9oHqcGmBf3YkDM
JDPxV93vE8mKJtDp/MewHA0F78rW/0ZPYUQKkdNUivs aqpjYlhHa2osez/hbXlRD4nbNwAPelCWeQo7BjUYuHI
-> ssh-ed25519 hPp1nw htVxNW9zp7J38WN06jfEX417xtXt50iMTRUtrzLRO2k -> ssh-ed25519 2+FxVg W/YJBvKMT8etI3GGFNzQMne+3s3bX96+C01hqpl0QWc
iTHjoS5eWNiQxIWtuylkqXlO8E+Dx/2CkENs16lZqhQ bRDwFFn4R0oVoItxfiBgtg6GIypDxVnsgjQCYDqa1/Q
-> ssh-ed25519 CRfjsA Dqs/SAfRhgszI9pz4yZHyVp0iqPg1ssspX6ZW2QTv10 -> ssh-ed25519 CRfjsA v3Mq+ywipRWdk7E0uiGkzVrTLGbKtVRKQCeENsprXFQ
tA7NQXpPtJQ4mHjTDr4pTt9jrqDkMJZGMLVazOenMbs pUNkotqQs7AdnOFq6uK+Y1Aw1XPpYOk78MrL7mYNXBs
-> ssh-ed25519 vwVIvQ oNmVe26rEpI7nNGlI5G7Er9fu7blpHNE6NOeGkoR/TM -> ssh-ed25519 vwVIvQ ktAGql+uSv5FlTGRX/dh/i+SeNf/425Ty9EP7LvIyQA
vAL2gsM9NatGQpnNIh8XpCP+o9KoOnuLVt9e8+Kymcw uzyYPdpoY+wu8K1XphBaQUQaPUI/eaj+pN4hFQOEb1s
-> ssh-ed25519 fBrw3g 7GVBA1eUhgxGfiiKirK/i5JUbehOJVgmc2H/tgQ+A1s -> ssh-ed25519 fBrw3g 89smE2Osv+DQnmjli4erhsBx/tajT4kcUMn9BFANWHk
n3i9gtNt4aRT4EOk8C94lGmXNN538HNOqo8uCmxZz6o PFVelVa6VjY/09vFwqTIrRuvEuiOjV66KzFMYrMqksE
-> ssh-ed25519 S5xQfg 2KQLClmvqWMuJDOSAkzcpJkRTJgV6ig5Cq22RcCixWA -> ssh-ed25519 S5xQfg AneXz8P0Uzq9xlAhUo8NjP+4Lu98LEvVjXuI4T7nGTs
zYULXTJL5o5uZxxi/fOCrocxZooH3KarUj8vUDkfWn8 8maTe5Ql/BydWva8FpGqFW19yjOEwR9m3WjnHwoaP/Y
-> ssh-ed25519 XPxfUQ z0v4A6O509NqQgbKFzZrY2WL1ATc9SCYckbtqaSOdk0 -> ssh-ed25519 XPxfUQ tCIPHgsUCVjL8J6rel0wriavQPI8X8A+LrralWhX7XM
PbDNvSWw4QEGLUzhp8IrX0oMDJzWjeemuEDZ02YlClo tw75vmwvDkfkSsLHm7J/1G1RtXCBmmK+4/x8kszHaDk
-> ssh-ed25519 SpD5mg +A6LavFPjRHuTyk0MTZ6zmJf+CIMX69fT/HI6/0RJWI -> ssh-ed25519 SpD5mg +zS3tCZuEDPmyJJAwxd5XwHZ6Oj529ASDJncvkHiWx8
CVgJC3y/H7MHUCMR5s77oPWA56oIEpj+7MZH+Qw/LTU s4FlthCezHVAwnAxeEsaaztzmhEvsd9Rfv2BiyyQHcs
-> ssh-ed25519 Kk8sng 4Re6/B65/TMi45/fZh7zl7dAzH4MnCnHqca1Otpaa2o -> ssh-ed25519 Kk8sng aAfQRcv43KV2/bU4Lu+Do4KEz++WmvqjHBjpK5Frmjo
zJAlQ96vODytPwtwPSxEEi8hn052vCGcPUxECyU9Ivo I+fuEjPECpvC8hvEX+eDjFWWo3nOSuxApJuMmaq/ROM
-> V1&(!o4J-grease I)F/ -> L((Gv+;X-grease
AQ7tCx9XyVd3QDf9Tadcz8QIOJ3bgj4kDh8YuwATAmF7M9DPAlQiW5qkkvaALloG FJW/OLKcapzoBETajzdgteof4o4CS0SCge1G
KwwV --- c4qHoenW7h4CZIBcFhf/jkGQFc1ztJPcC6VqwmQKZdE
--- VnZ2JJVPKnr8hDMqsZidpehwkLY9W2UmF40/5Khu7rg <EFBFBD>[qáAÚÀÛP»øK!É¥eÙAÁ¼Já1¤ãÀ<C3A3>õŽ'Ÿâ¯¢•}\±cù«vñŒJW< c•€µ~ÊÙB¾˜Ö&³?d-~¾¾f^ödæ0{hárJ÷ÝLÑ<4C>óB­¬†|ªPêºÈî
„;»­ 晣,‘ΧÂ<C2A7>òHµˆ¿ˆ±>ê¬?þL¬Üiv?PËwùìŒímW£­3„^¯{^ÂÆ«"ýçMÈ[…P¤$­Ràüú…£ÄŽýÓ6LÍ Ï ´˜»ò½$yôl

View File

@ -1,38 +1,37 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 xoAm7w QDzXkxhczV+ZUvEHmN1Uf7xWaEDSugv2dcisOakVPEc -> ssh-ed25519 xoAm7w Zhpc9RVEpY8IQHoaV7bXITknEzZvD3vhtlkyS2NiED4
+k9M+R98OqsfIROOedql7ksLCtejx5uzFXigxB1Dhzs XF4a0bcetANx/Uc14yI/g4iu1rg6tilwGXS4EZDiC9M
-> ssh-ed25519 mbw8xA ERuMyLhLVrNwmr1wS9h0ssZYayCn0Hc1dhu3zBKzDF0 -> ssh-ed25519 mbw8xA 3y/ebluo5ydfc0dvKgfjX9d3h9oMIHB2f4zrTQZ1VRY
pz2rEMX3MtxtVOTuEyO5K9ZE5s0C+2JL7lNE5BdUsRo J+QzUk3lK6Lts4xbrFB9MsZGaITH2727tZ7wP5vv6II
-> ssh-ed25519 N240Tg kHC1Wn8T3aUpWd4yK0+GJo+SDBXrVmTSrNz/Z+3kfGs -> ssh-ed25519 N240Tg wn8PvBMhca6ZaWwSGC6QT6RU0Evkf+T0pyp0KtL4u38
sg6A3DgaQev5ZezJeSNAR7+G4MS1rdwHd/6u1H5+0us 7/qQJHlx0KawNp6h6UeNvhXEEZ9c2m+BBHxdYihh/Yo
-> ssh-ed25519 2a2Yhw 64vHNVi/UCK1aCBFu+BnSyy42DHZIFeiDekfnQeDlHE -> ssh-ed25519 2a2Yhw HC2B/ovIP9yOY8f1Y9vfdPqGmf2WDZOZ02o0U09CPTI
19On29XUAiUsTmlqxrY8PQGderv7VzBO4a10jT5aZwY RlEnllYliqBORlAXMHBBJBQD2L8MUmtrCnnO37f1BfI
-> ssh-ed25519 dMQYog EHtR1wf5/2aWvGwkD4EBOECctp2zs2RjAUOKcncjUSI -> ssh-ed25519 dMQYog 0iDHfwUHCba5Qybli5GDAqCtNPplS5n9j76ukk0ZBDI
s7dfQHaLjO6Hor6xXpx8h5hox3OQA4mPRGt8ewr0jQM qCDVF47jdG5NesPRNy0IKLbJqPazoZ636Ow2WCdXTZk
-> ssh-ed25519 G2eSCQ 4L9zIv4aApkZgFneUjVm2esXp4DJYVzm94LA2sS0Qkc -> ssh-ed25519 G2eSCQ 3QltdxVJUixiewBLgdpJDaovHIHErX3Q2mhvTH1XgVg
+iDy2G82PX6yuIyn7zITzp/jvBX2P25u26n/NuGdjVM 6rbVirj6LznfVZ6FcD+VoeOyj/4sduMVkWAm/pLVVwk
-> ssh-ed25519 6AT2/g HyH+8r/SZUXilmITIsFVyr2t6rCJK9scP9TR2/rO+1M -> ssh-ed25519 6AT2/g Kyz9q3tPuiX6X5wUU6fyESJetkcTNgPu3KoWFFO/EE8
0Hkx2o3wlq7nj6fRSL3QNtrxKFxYlfhg7CwsyQDjIo8 wQRGnXdTrFVhdUrCRfHYoIRK1Yun4QURxIdd9dBvH8s
-> ssh-ed25519 yHDAQw vZlwV2QvrzG1Xu4XZt4Yi5aDQ8qmPQnadCJtHdtTSlc -> ssh-ed25519 yHDAQw lElQZAKDD+AhsNEAIrz/3i1Z5YS0U46bQ+YHjxtX7Fc
4NscOK2mu+P+vrZ8FIbIYhQ/97DPo5vgsl0jnlZM0gY ez72aO1BiG6J1G4LOVQDMUh8cAhqpxc1kcXJRRkg2Qg
-> ssh-ed25519 hPp1nw YWRekiOxwuK8eAGehbBfOzW7Rmw95V+A/XD4rmFxS3Y -> ssh-ed25519 2+FxVg gbGEias/yB8ILGsVhhwfCNwGDCtKEa027TY5f8vAfhA
sd+q4ya9k/KE06GYGFV2O9P3O77aZcJl05tAvY6W1s8 LcsSY9f5UI2akH5USLBMd0V9eDwd6vCpxjDPWZcXnpQ
-> ssh-ed25519 CRfjsA LfIzQhaql9b4EAotyVrvKBV1AhlMVcRarA49q7+rQXc -> ssh-ed25519 CRfjsA Pd2ZMD1asDSzddRD36LZUPvkYjDeHfZyEpOXMnwB8Xc
v4WddjXusd/m/s/T7E+wdKm9tDR3rGj6CNE3AdVrDb8 aFqMTiRL7zPKc480CysFu9645UIZ0BmqBAhB3nAxb44
-> ssh-ed25519 vwVIvQ 53S5tWgmlVnKIHonBAmvxbv+w0j9b65NdyWvwlvgZWg -> ssh-ed25519 vwVIvQ LEym3BnhIR0eFb1/T3HHh+Ozo64qJ4L0L9gH3OGfLQU
xa+z7MYrJHCgILtG/3Yw1OKH1/YKvuVG2jabnv3gSoA 54g4goCKamaNHNfx2kNVoMD/RmbcGMgbQ/71zdsuYhg
-> ssh-ed25519 fBrw3g GsaGAXiMo4WhEZTQPgr761gAiQHmHPSwdWF0t910+DI -> ssh-ed25519 fBrw3g rodu0fR9X+20LKQ8+FccwWpiT0LbU0KAA2NHmXbSM2A
dmZGcEghoXi7giaxC/1UVJVAtyY5hcknUBxr0wQ4RBk w0W9cqZ81aJcpl6GT/zCHKMy2qhAKWdVRSVTgmmq7Ec
-> ssh-ed25519 S5xQfg wgkQBHQi8xY4++/quS4ZJWb9PPpg6b0KZpSwypdS7HY -> ssh-ed25519 S5xQfg zi2A//LI7Ot9MX1gohQxS8e6qHRozw3kEpyMU7jnfWc
+1yatx5SUanPC04jJMVVILHAwdtg2r9Bd+sj9728BnY 72T7ctknEgZ+nnFCgct7B8tDa1/DJqkk6LAiJ5Kqktk
-> ssh-ed25519 XPxfUQ Hj2e1U4udGkp04dSdTSsaaJPIQ7gB1bwralXazBzpVM -> ssh-ed25519 XPxfUQ jXrYF/rcG2aJ9he1dCcmkuQtQlTAZQrqQFu4AaTESG8
LPOMpbX+ndXRkQlR3GKKpwSd5zOT03j5bII8btjY52o i9o+h5NcB+NYgrU+Pei2xHSF2fihw75IDM/rx9ddziw
-> ssh-ed25519 SpD5mg ++/8/U9XQKg6L3SHej+mvXeZYrvoWhiwmcurC3V0aTU -> ssh-ed25519 SpD5mg 7u3lIXggJjgRZRXCkfgDb7+Sp+q+GtSKJH4gAycaSQs
qR3nTcugxtBgDhcbZpCe0/NUavbzV6tFJZKv3IopAO4 jEEdWSJHjXUsx8T4kmmjKUjWNwmLIwQzl9FXKbHhXM0
-> ssh-ed25519 Kk8sng /bL56jng2lp0INyIDqUAX5L8mFmKxCBeHFWPUW6gE0U -> ssh-ed25519 Kk8sng VmT7aS3ggF/M21MsUMCEF6cT8C8QvIN4IQ0le2SlyWg
4v+jq2N6RIQAh0VRrBZkMjSQW6L+LYcAfYUBvfTM+Jw G8rxkI0WaA2K3T5ETrEZJNfYpmhVESo0n3sDEs5YbVE
-> ";etw{[s-grease E;mh^R$ c8 -> T.{#h\gw-grease \R/D bw>~X%FP
ossMGyq0gpvz9PjjLBWD+QHRKKhzY6/9Kj4b0M7YdP0OgMdpr5QlA7UIDhiGQQBL xW/YLhgKe2qTxlZSe836hH7hDCb40FXAQJ1VPjij02iCZEBW
dbt0YyLxbAdhqG7S3lLeedQmvzv/oIyhmV0jsTB79W1l/27FujvPRWYf --- KUhBgZXJA+9QxOwdJeJj4qk/rcUmTRXS8LcyaKro4c0
--- pYjss6AEPZn0PG7FmO6bGq1O+k1IFGzoxsitB4qgotY Ä䡬Vm9ëvcHÊj¹®²ä´*†z;±@–ó ƒÖÏ1õÆKZõ/TNk\nj
ÌÐçJöÇ<10>>Z`´ <0C>b%RW^óºñ–&<26>·ª ­-4¥ðè¬ÙÚW…á