nixos-configs/modules/wyoming-plus/default.nix

86 lines
2.4 KiB
Nix
Raw Normal View History

{
2024-09-01 19:19:30 -04:00
config,
lib,
pkgs,
...
}: let
2024-12-20 02:29:24 -05:00
inherit (lib) getExe mkOption types;
inherit (lib.modules) mkForce mkIf mkOverride;
chore: update sources Flake Inputs: • Updated input 'ags': 'github:Aylur/ags' (2025-01-12) rev: 90db9b9fecc0f4228440d83107c6c745a35e7d77 → 'github:Aylur/ags' (2025-01-18) rev: 92bdcb227dc390e2edb122b5bb182b38456b6a5e • Updated input 'astal': 'github:Aylur/astal' (2025-01-16) rev: bc796ac226800c43e724e27f53f410c157acaffe → 'github:Aylur/astal' (2025-01-18) rev: 8b8416101246b4cce569f4326f828e26f15f6616 • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2025-01-14) rev: 2861df235213e2cdbabddd41ecdf41b57ab5f33c → 'github:elchininet/custom-sidebar' (2025-01-18) rev: f658990328f47530097ab0242a5575cbba92b9ea • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-13) rev: 4211dfa2f8649d724f4d08f382dba7ffc7af59f9 → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-18) rev: bae0fdd9498c844f27d1aac6a072360f785c8e14 • Updated input 'home-manager': 'github:nix-community/home-manager' (2025-01-14) rev: 0dfec9deb275854a56c97c356c40ef72e3a2e632 → 'github:nix-community/home-manager' (2025-01-18) rev: 97d7946b5e107dd03cc82f21165251d4e0159655 • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2025-01-13) rev: d324904d70e8c9710bcf772227f364262baf3820 → 'github:horriblename/hyprgrass' (2025-01-18) rev: ea3a6079a7e34235ee3df4b600ee11e48b0e7f4d • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-01-16) rev: 0dc7367a7006cc3cc877d52bf34c4998144bff84 → 'github:hyprwm/Hyprland' (2025-01-18) rev: f56153a9c1b0a00fac0932a95e0cfa5a4f6c681f • Updated input 'hyprland-plugins': 'github:hyprwm/hyprland-plugins' (2025-01-08) rev: b4c0fa3ebc6ccd1589dcd17904652223088efede → 'github:hyprwm/hyprland-plugins' (2025-01-17) rev: d2dad5b434b338d18458bafa506f2993c13f24fc • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-16) rev: 6bbb19666e753c18ef8af35f590cbc3ba42dd0ca → 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-17) rev: 27a0ddac1a14e10ba98530f59db728951495f2ce • Updated input 'material-rounded-theme-src': 'github:Nerwyn/material-rounded-theme' (2025-01-11) rev: 6d3b79a79b72f70c4a015dd7dbbf1c41a2b33a35 → 'github:Nerwyn/material-rounded-theme' (2025-01-17) rev: 7c69a1f03e424ab2485345e5f38ffc5264ead375 • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2025-01-14) rev: 1a9c52cd7517137c9cc74d4b73dfd63678e17c5f → 'github:fufexan/nix-gaming' (2025-01-19) rev: bcc7d7ccdc82e63ab261ddea67e1db1d6091c35a • Updated input 'nix-index-db': 'github:Mic92/nix-index-database' (2025-01-12) rev: 271e5bd7c57e1f001693799518b10a02d1123b12 → 'github:Mic92/nix-index-database' (2025-01-19) rev: 744d330659e207a1883d2da0141d35e520eb87bd • Updated input 'nixcord': 'github:kaylorben/nixcord' (2025-01-16) rev: 02247bedd6988a1169c4499406970b92bfd8aa02 → 'github:kaylorben/nixcord' (2025-01-17) rev: 4e76614d89940ef47fe099a0bec2c479dbf0bd34 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2025-01-14) rev: eb62e6aa39ea67e0b8018ba8ea077efe65807dc8 → 'github:NixOS/nixpkgs' (2025-01-18) rev: b681ff2c9c9163f24ca705d948bb0cee1b3e09f9 • Updated input 'sops-nix': 'github:Mic92/sops-nix' (2025-01-13) rev: 553c7cb22fed19fd60eb310423fdc93045c51ba8 → 'github:Mic92/sops-nix' (2025-01-17) rev: 4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2025-01-16) rev: cd29ab1b42337a123f4398666e800912637e0c5e → 'github:make-all/tuya-local' (2025-01-19) rev: 15ac106e35d075deb7688b9687d637db9fcb1203 Docker Images: • nextcloud fpm: sha256:4f6026de2b9cf007bcd01298a86cae2fd5837cbef9d8aa3224454ff80ecac577 → sha256:4c898a6e3a17fcd3bcbe9d2450079a95581cfb9f0dbfca246c39bd60c77d123b Firefox Addons: ublock-origin: 1.61.2 -> 1.62.0 Node modules: eslint-plugin-jsdoc: 50.6.1 -> 50.6.2
2025-01-19 00:45:29 -05:00
inherit (lib.strings) concatMapStringsSep concatStringsSep escapeShellArgs;
2024-09-01 19:19:30 -04:00
2024-09-12 18:21:31 -04:00
cfg = config.services.wyoming;
forkedPkg = pkgs.callPackage ./pkgs {};
2024-09-01 19:19:30 -04:00
in {
2024-12-20 02:29:24 -05:00
options.services.wyoming.openwakeword.vadThreshold = mkOption {
type = types.float;
default = 0.0;
apply = toString;
};
config = {
systemd.services = mkIf (cfg.openwakeword.enable) {
chore: update sources Flake Inputs: • Updated input 'ags': 'github:Aylur/ags' (2025-01-12) rev: 90db9b9fecc0f4228440d83107c6c745a35e7d77 → 'github:Aylur/ags' (2025-01-18) rev: 92bdcb227dc390e2edb122b5bb182b38456b6a5e • Updated input 'astal': 'github:Aylur/astal' (2025-01-16) rev: bc796ac226800c43e724e27f53f410c157acaffe → 'github:Aylur/astal' (2025-01-18) rev: 8b8416101246b4cce569f4326f828e26f15f6616 • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2025-01-14) rev: 2861df235213e2cdbabddd41ecdf41b57ab5f33c → 'github:elchininet/custom-sidebar' (2025-01-18) rev: f658990328f47530097ab0242a5575cbba92b9ea • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-13) rev: 4211dfa2f8649d724f4d08f382dba7ffc7af59f9 → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-18) rev: bae0fdd9498c844f27d1aac6a072360f785c8e14 • Updated input 'home-manager': 'github:nix-community/home-manager' (2025-01-14) rev: 0dfec9deb275854a56c97c356c40ef72e3a2e632 → 'github:nix-community/home-manager' (2025-01-18) rev: 97d7946b5e107dd03cc82f21165251d4e0159655 • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2025-01-13) rev: d324904d70e8c9710bcf772227f364262baf3820 → 'github:horriblename/hyprgrass' (2025-01-18) rev: ea3a6079a7e34235ee3df4b600ee11e48b0e7f4d • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-01-16) rev: 0dc7367a7006cc3cc877d52bf34c4998144bff84 → 'github:hyprwm/Hyprland' (2025-01-18) rev: f56153a9c1b0a00fac0932a95e0cfa5a4f6c681f • Updated input 'hyprland-plugins': 'github:hyprwm/hyprland-plugins' (2025-01-08) rev: b4c0fa3ebc6ccd1589dcd17904652223088efede → 'github:hyprwm/hyprland-plugins' (2025-01-17) rev: d2dad5b434b338d18458bafa506f2993c13f24fc • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-16) rev: 6bbb19666e753c18ef8af35f590cbc3ba42dd0ca → 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-17) rev: 27a0ddac1a14e10ba98530f59db728951495f2ce • Updated input 'material-rounded-theme-src': 'github:Nerwyn/material-rounded-theme' (2025-01-11) rev: 6d3b79a79b72f70c4a015dd7dbbf1c41a2b33a35 → 'github:Nerwyn/material-rounded-theme' (2025-01-17) rev: 7c69a1f03e424ab2485345e5f38ffc5264ead375 • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2025-01-14) rev: 1a9c52cd7517137c9cc74d4b73dfd63678e17c5f → 'github:fufexan/nix-gaming' (2025-01-19) rev: bcc7d7ccdc82e63ab261ddea67e1db1d6091c35a • Updated input 'nix-index-db': 'github:Mic92/nix-index-database' (2025-01-12) rev: 271e5bd7c57e1f001693799518b10a02d1123b12 → 'github:Mic92/nix-index-database' (2025-01-19) rev: 744d330659e207a1883d2da0141d35e520eb87bd • Updated input 'nixcord': 'github:kaylorben/nixcord' (2025-01-16) rev: 02247bedd6988a1169c4499406970b92bfd8aa02 → 'github:kaylorben/nixcord' (2025-01-17) rev: 4e76614d89940ef47fe099a0bec2c479dbf0bd34 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2025-01-14) rev: eb62e6aa39ea67e0b8018ba8ea077efe65807dc8 → 'github:NixOS/nixpkgs' (2025-01-18) rev: b681ff2c9c9163f24ca705d948bb0cee1b3e09f9 • Updated input 'sops-nix': 'github:Mic92/sops-nix' (2025-01-13) rev: 553c7cb22fed19fd60eb310423fdc93045c51ba8 → 'github:Mic92/sops-nix' (2025-01-17) rev: 4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2025-01-16) rev: cd29ab1b42337a123f4398666e800912637e0c5e → 'github:make-all/tuya-local' (2025-01-19) rev: 15ac106e35d075deb7688b9687d637db9fcb1203 Docker Images: • nextcloud fpm: sha256:4f6026de2b9cf007bcd01298a86cae2fd5837cbef9d8aa3224454ff80ecac577 → sha256:4c898a6e3a17fcd3bcbe9d2450079a95581cfb9f0dbfca246c39bd60c77d123b Firefox Addons: ublock-origin: 1.61.2 -> 1.62.0 Node modules: eslint-plugin-jsdoc: 50.6.1 -> 50.6.2
2025-01-19 00:45:29 -05:00
# For some reason I can't just override `ExecStart` anymore.
wyoming-openwakeword.serviceConfig = mkForce {
DynamicUser = true;
User = "wyoming-openwakeword";
MemoryDenyWriteExecute = cfg.openwakeword.package != forkedPkg;
2024-09-12 18:21:31 -04:00
# changes according to https://github.com/rhasspy/wyoming-openwakeword/pull/27
chore: update sources Flake Inputs: • Updated input 'ags': 'github:Aylur/ags' (2025-01-12) rev: 90db9b9fecc0f4228440d83107c6c745a35e7d77 → 'github:Aylur/ags' (2025-01-18) rev: 92bdcb227dc390e2edb122b5bb182b38456b6a5e • Updated input 'astal': 'github:Aylur/astal' (2025-01-16) rev: bc796ac226800c43e724e27f53f410c157acaffe → 'github:Aylur/astal' (2025-01-18) rev: 8b8416101246b4cce569f4326f828e26f15f6616 • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2025-01-14) rev: 2861df235213e2cdbabddd41ecdf41b57ab5f33c → 'github:elchininet/custom-sidebar' (2025-01-18) rev: f658990328f47530097ab0242a5575cbba92b9ea • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-13) rev: 4211dfa2f8649d724f4d08f382dba7ffc7af59f9 → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-18) rev: bae0fdd9498c844f27d1aac6a072360f785c8e14 • Updated input 'home-manager': 'github:nix-community/home-manager' (2025-01-14) rev: 0dfec9deb275854a56c97c356c40ef72e3a2e632 → 'github:nix-community/home-manager' (2025-01-18) rev: 97d7946b5e107dd03cc82f21165251d4e0159655 • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2025-01-13) rev: d324904d70e8c9710bcf772227f364262baf3820 → 'github:horriblename/hyprgrass' (2025-01-18) rev: ea3a6079a7e34235ee3df4b600ee11e48b0e7f4d • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-01-16) rev: 0dc7367a7006cc3cc877d52bf34c4998144bff84 → 'github:hyprwm/Hyprland' (2025-01-18) rev: f56153a9c1b0a00fac0932a95e0cfa5a4f6c681f • Updated input 'hyprland-plugins': 'github:hyprwm/hyprland-plugins' (2025-01-08) rev: b4c0fa3ebc6ccd1589dcd17904652223088efede → 'github:hyprwm/hyprland-plugins' (2025-01-17) rev: d2dad5b434b338d18458bafa506f2993c13f24fc • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-16) rev: 6bbb19666e753c18ef8af35f590cbc3ba42dd0ca → 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-17) rev: 27a0ddac1a14e10ba98530f59db728951495f2ce • Updated input 'material-rounded-theme-src': 'github:Nerwyn/material-rounded-theme' (2025-01-11) rev: 6d3b79a79b72f70c4a015dd7dbbf1c41a2b33a35 → 'github:Nerwyn/material-rounded-theme' (2025-01-17) rev: 7c69a1f03e424ab2485345e5f38ffc5264ead375 • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2025-01-14) rev: 1a9c52cd7517137c9cc74d4b73dfd63678e17c5f → 'github:fufexan/nix-gaming' (2025-01-19) rev: bcc7d7ccdc82e63ab261ddea67e1db1d6091c35a • Updated input 'nix-index-db': 'github:Mic92/nix-index-database' (2025-01-12) rev: 271e5bd7c57e1f001693799518b10a02d1123b12 → 'github:Mic92/nix-index-database' (2025-01-19) rev: 744d330659e207a1883d2da0141d35e520eb87bd • Updated input 'nixcord': 'github:kaylorben/nixcord' (2025-01-16) rev: 02247bedd6988a1169c4499406970b92bfd8aa02 → 'github:kaylorben/nixcord' (2025-01-17) rev: 4e76614d89940ef47fe099a0bec2c479dbf0bd34 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2025-01-14) rev: eb62e6aa39ea67e0b8018ba8ea077efe65807dc8 → 'github:NixOS/nixpkgs' (2025-01-18) rev: b681ff2c9c9163f24ca705d948bb0cee1b3e09f9 • Updated input 'sops-nix': 'github:Mic92/sops-nix' (2025-01-13) rev: 553c7cb22fed19fd60eb310423fdc93045c51ba8 → 'github:Mic92/sops-nix' (2025-01-17) rev: 4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2025-01-16) rev: cd29ab1b42337a123f4398666e800912637e0c5e → 'github:make-all/tuya-local' (2025-01-19) rev: 15ac106e35d075deb7688b9687d637db9fcb1203 Docker Images: • nextcloud fpm: sha256:4f6026de2b9cf007bcd01298a86cae2fd5837cbef9d8aa3224454ff80ecac577 → sha256:4c898a6e3a17fcd3bcbe9d2450079a95581cfb9f0dbfca246c39bd60c77d123b Firefox Addons: ublock-origin: 1.61.2 -> 1.62.0 Node modules: eslint-plugin-jsdoc: 50.6.1 -> 50.6.2
2025-01-19 00:45:29 -05:00
ExecStart = concatStringsSep " " [
2024-12-20 02:29:24 -05:00
(getExe cfg.openwakeword.package)
2024-09-12 18:21:31 -04:00
"--uri ${cfg.openwakeword.uri}"
"--threshold ${cfg.openwakeword.threshold}"
2024-12-20 02:29:24 -05:00
"--vad-threshold ${cfg.openwakeword.vadThreshold}"
"--trigger-level ${cfg.openwakeword.triggerLevel}"
2024-09-12 18:21:31 -04:00
(concatMapStringsSep " "
(dir: "--custom-model-dir ${toString dir}")
cfg.openwakeword.customModelsDirectories)
2024-09-12 18:21:31 -04:00
2024-12-20 02:29:24 -05:00
(concatMapStringsSep " "
(model: "--preload-model ${model}")
cfg.openwakeword.preloadModels)
2024-09-12 18:21:31 -04:00
chore: update sources Flake Inputs: • Updated input 'ags': 'github:Aylur/ags' (2025-01-12) rev: 90db9b9fecc0f4228440d83107c6c745a35e7d77 → 'github:Aylur/ags' (2025-01-18) rev: 92bdcb227dc390e2edb122b5bb182b38456b6a5e • Updated input 'astal': 'github:Aylur/astal' (2025-01-16) rev: bc796ac226800c43e724e27f53f410c157acaffe → 'github:Aylur/astal' (2025-01-18) rev: 8b8416101246b4cce569f4326f828e26f15f6616 • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2025-01-14) rev: 2861df235213e2cdbabddd41ecdf41b57ab5f33c → 'github:elchininet/custom-sidebar' (2025-01-18) rev: f658990328f47530097ab0242a5575cbba92b9ea • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-13) rev: 4211dfa2f8649d724f4d08f382dba7ffc7af59f9 → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-18) rev: bae0fdd9498c844f27d1aac6a072360f785c8e14 • Updated input 'home-manager': 'github:nix-community/home-manager' (2025-01-14) rev: 0dfec9deb275854a56c97c356c40ef72e3a2e632 → 'github:nix-community/home-manager' (2025-01-18) rev: 97d7946b5e107dd03cc82f21165251d4e0159655 • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2025-01-13) rev: d324904d70e8c9710bcf772227f364262baf3820 → 'github:horriblename/hyprgrass' (2025-01-18) rev: ea3a6079a7e34235ee3df4b600ee11e48b0e7f4d • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-01-16) rev: 0dc7367a7006cc3cc877d52bf34c4998144bff84 → 'github:hyprwm/Hyprland' (2025-01-18) rev: f56153a9c1b0a00fac0932a95e0cfa5a4f6c681f • Updated input 'hyprland-plugins': 'github:hyprwm/hyprland-plugins' (2025-01-08) rev: b4c0fa3ebc6ccd1589dcd17904652223088efede → 'github:hyprwm/hyprland-plugins' (2025-01-17) rev: d2dad5b434b338d18458bafa506f2993c13f24fc • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-16) rev: 6bbb19666e753c18ef8af35f590cbc3ba42dd0ca → 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-17) rev: 27a0ddac1a14e10ba98530f59db728951495f2ce • Updated input 'material-rounded-theme-src': 'github:Nerwyn/material-rounded-theme' (2025-01-11) rev: 6d3b79a79b72f70c4a015dd7dbbf1c41a2b33a35 → 'github:Nerwyn/material-rounded-theme' (2025-01-17) rev: 7c69a1f03e424ab2485345e5f38ffc5264ead375 • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2025-01-14) rev: 1a9c52cd7517137c9cc74d4b73dfd63678e17c5f → 'github:fufexan/nix-gaming' (2025-01-19) rev: bcc7d7ccdc82e63ab261ddea67e1db1d6091c35a • Updated input 'nix-index-db': 'github:Mic92/nix-index-database' (2025-01-12) rev: 271e5bd7c57e1f001693799518b10a02d1123b12 → 'github:Mic92/nix-index-database' (2025-01-19) rev: 744d330659e207a1883d2da0141d35e520eb87bd • Updated input 'nixcord': 'github:kaylorben/nixcord' (2025-01-16) rev: 02247bedd6988a1169c4499406970b92bfd8aa02 → 'github:kaylorben/nixcord' (2025-01-17) rev: 4e76614d89940ef47fe099a0bec2c479dbf0bd34 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2025-01-14) rev: eb62e6aa39ea67e0b8018ba8ea077efe65807dc8 → 'github:NixOS/nixpkgs' (2025-01-18) rev: b681ff2c9c9163f24ca705d948bb0cee1b3e09f9 • Updated input 'sops-nix': 'github:Mic92/sops-nix' (2025-01-13) rev: 553c7cb22fed19fd60eb310423fdc93045c51ba8 → 'github:Mic92/sops-nix' (2025-01-17) rev: 4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2025-01-16) rev: cd29ab1b42337a123f4398666e800912637e0c5e → 'github:make-all/tuya-local' (2025-01-19) rev: 15ac106e35d075deb7688b9687d637db9fcb1203 Docker Images: • nextcloud fpm: sha256:4f6026de2b9cf007bcd01298a86cae2fd5837cbef9d8aa3224454ff80ecac577 → sha256:4c898a6e3a17fcd3bcbe9d2450079a95581cfb9f0dbfca246c39bd60c77d123b Firefox Addons: ublock-origin: 1.61.2 -> 1.62.0 Node modules: eslint-plugin-jsdoc: 50.6.1 -> 50.6.2
2025-01-19 00:45:29 -05:00
(escapeShellArgs cfg.openwakeword.extraArgs)
];
CapabilityBoundingSet = "";
DeviceAllow = "";
DevicePolicy = "closed";
LockPersonality = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
ProtectProc = "invisible";
ProcSubset = "all"; # reads /proc/cpuinfo
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RuntimeDirectory = "wyoming-openwakeword";
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
];
UMask = "0077";
2024-09-01 19:19:30 -04:00
};
};
2024-09-12 18:21:31 -04:00
services.wyoming.openwakeword = mkIf (cfg.openwakeword.enable) {
package = mkOverride 900 forkedPkg;
2024-09-01 19:19:30 -04:00
};
};
}