From 6f9fdca8768e2afeb3c678c321e565482476aeb4 Mon Sep 17 00:00:00 2001 From: KoenDR06 Date: Tue, 25 Feb 2025 15:56:58 +0100 Subject: [PATCH] Overhaul luna complete --- .gitignore | 2 - .sops.yaml | 7 - README.md | 12 - config/dotfiles/.warprc | 5 - config/lua/empty | 0 flake.lock | 21 +- flake.nix | 28 +- home-manager/apps.nix | 43 -- home-manager/nvim/lualine.vim | 44 -- home-manager/nvim/neovim.nix | 30 -- home-manager/server-apps.nix | 59 --- machines/common/configuration.nix | 146 ------ machines/luna/configuration.nix | 63 +-- machines/luna/hardware-configuration.nix | 40 +- machines/luna/modules.nix | 44 ++ machines/solis/configuration.nix | 52 +- machines/solis/hardware-configuration.nix | 36 +- machines/terra/configuration.nix | 99 +--- machines/terra/hardware-configuration.nix | 44 +- machines/terra/refind.nix | 13 - misc/backup.sh | 14 - misc/nixos_wallpaper_dark_3840x2160.png | Bin 168434 -> 0 bytes misc/nixos_wallpaper_light_3840x2160.png | Bin 179874 -> 0 bytes misc/startup.sh | 3 - misc/switch-to-dark-theme.sh | 12 - misc/switch-to-light-theme.sh | 12 - modules/apps/default.nix | 7 + modules/apps/dev.nix | 22 + modules/apps/terminal.nix | 24 + .../refind.nix => modules/apps/visual.nix | 9 +- modules/apps/visual/firefox.nix | 66 +++ modules/base/default.nix | 5 + .../common => modules/base}/locale.nix | 8 +- .../modules/common => modules/base}/nix.nix | 19 +- modules/boot/default.nix | 6 + modules/boot/greeter/sddm.nix | 21 + modules/boot/loader/systemd.nix | 22 + modules/default.nix | 12 + modules/hardware/audio.nix | 27 ++ modules/hardware/bluetooth.nix | 21 + modules/hardware/default.nix | 8 + modules/hardware/gpu/nvidia.nix | 31 ++ modules/hardware/wifi.nix | 22 + modules/home-manager/default.nix | 6 - modules/network/default.nix | 8 + modules/network/mullvad.nix | 33 ++ modules/network/ssh.nix | 41 ++ modules/network/syncthing.nix | 59 +++ modules/network/tailscale.nix | 21 + modules/nixos/default.nix | 6 - modules/sleep-at-night.nix | 79 --- {overhaul/modules => modules}/template.nix | 7 +- modules/terminal/default.nix | 5 + .../modules => modules}/terminal/zsh.nix | 14 +- modules/users/default.nix | 5 + modules/users/horseman.nix | 38 ++ modules/wm/default.nix | 7 + .../gnome.nix => modules/wm/gnome/config.nix | 29 +- modules/wm/gnome/default.nix | 46 ++ .../wm/plasma/config.nix | 284 +++++------ modules/wm/plasma/default.nix | 39 ++ modules/wm/qtile/config/LICENSE | 20 + modules/wm/qtile/config/README.md | 91 ++++ modules/wm/qtile/config/config.py | 104 ++++ modules/wm/qtile/config/config_keybindings.py | 117 +++++ modules/wm/qtile/config/functions.py | 85 ++++ modules/wm/qtile/config/groups.py | 17 + modules/wm/qtile/config/icons.py | 15 + .../wm/qtile/config/icons/layout-floating.png | Bin 0 -> 232 bytes modules/wm/qtile/config/icons/layout-max.png | Bin 0 -> 1143 bytes .../qtile/config/icons/layout-monadtall.png | Bin 0 -> 218 bytes modules/wm/qtile/config/icons/layout-tile.png | Bin 0 -> 225 bytes .../wm/qtile/config/icons/layout-treetab.png | Bin 0 -> 212 bytes modules/wm/qtile/config/icons/python.png | Bin 0 -> 746 bytes .../qtile/config/icons/terminal-iconx14.png | Bin 0 -> 288 bytes .../qtile/config/icons/terminal-iconx24.png | Bin 0 -> 365 bytes modules/wm/qtile/config/keys/assets.py | 4 + modules/wm/qtile/config/keys/default.py | 60 +++ modules/wm/qtile/config/keys/keybindings.py | 165 +++++++ .../wm/qtile/config/keys/print_keybindings.py | 15 + modules/wm/qtile/config/layouts.py | 51 ++ modules/wm/qtile/config/scripts/autostart.sh | 26 + modules/wm/qtile/config/scripts/play-pause.sh | 4 + modules/wm/qtile/config/setup.py | 225 +++++++++ modules/wm/qtile/config/software.txt | 11 + modules/wm/qtile/config/widgets.py | 456 ++++++++++++++++++ modules/wm/qtile/default.nix | 31 ++ overhaul/machines/common/configuration.nix | 86 ---- overhaul/machines/luna/configuration.nix | 72 --- .../machines/luna/hardware-configuration.nix | 38 -- overhaul/machines/solis/configuration.nix | 59 --- .../machines/solis/hardware-configuration.nix | 34 -- overhaul/machines/terra/configuration.nix | 109 ----- .../machines/terra/hardware-configuration.nix | 39 -- overhaul/modules/boot/grub.nix | 25 - overhaul/modules/boot/systemd.nix | 25 - overhaul/modules/packages/console.nix | 47 -- overhaul/modules/packages/visual.nix | 46 -- overhaul/modules/terminal/neovim.nix | 21 - overhaul/modules/users/horseman.nix | 49 -- overhaul/secrets/secrets.yaml | 23 - pkgs/default.nix | 5 - pkgs/firefox.nix | 40 -- pkgs/zsh.nix | 41 -- pkgs/zsh/plugins/nix-shell/LICENSE | 27 -- pkgs/zsh/plugins/nix-shell/README.MD | 113 ----- .../plugins/nix-shell/nix-shell.plugin.zsh | 82 ---- .../plugins/nix-shell/scripts/buildShellShim | 26 - pkgs/zsh/themes/custom.zsh-theme | 124 ----- secrets/secrets.yaml | 23 - 110 files changed, 2408 insertions(+), 2129 deletions(-) delete mode 100644 .gitignore delete mode 100644 .sops.yaml delete mode 100644 README.md delete mode 100644 config/dotfiles/.warprc delete mode 100644 config/lua/empty delete mode 100644 home-manager/apps.nix delete mode 100644 home-manager/nvim/lualine.vim delete mode 100644 home-manager/nvim/neovim.nix delete mode 100644 home-manager/server-apps.nix delete mode 100644 machines/common/configuration.nix create mode 100644 machines/luna/modules.nix delete mode 100644 machines/terra/refind.nix delete mode 100755 misc/backup.sh delete mode 100644 misc/nixos_wallpaper_dark_3840x2160.png delete mode 100644 misc/nixos_wallpaper_light_3840x2160.png delete mode 100755 misc/startup.sh delete mode 100755 misc/switch-to-dark-theme.sh delete mode 100755 misc/switch-to-light-theme.sh create mode 100644 modules/apps/default.nix create mode 100644 modules/apps/dev.nix create mode 100644 modules/apps/terminal.nix rename overhaul/modules/boot/refind.nix => modules/apps/visual.nix (54%) create mode 100644 modules/apps/visual/firefox.nix create mode 100644 modules/base/default.nix rename {overhaul/modules/common => modules/base}/locale.nix (55%) rename {overhaul/modules/common => modules/base}/nix.nix (61%) create mode 100644 modules/boot/default.nix create mode 100644 modules/boot/greeter/sddm.nix create mode 100644 modules/boot/loader/systemd.nix create mode 100644 modules/default.nix create mode 100644 modules/hardware/audio.nix create mode 100644 modules/hardware/bluetooth.nix create mode 100644 modules/hardware/default.nix create mode 100644 modules/hardware/gpu/nvidia.nix create mode 100644 modules/hardware/wifi.nix delete mode 100644 modules/home-manager/default.nix create mode 100644 modules/network/default.nix create mode 100644 modules/network/mullvad.nix create mode 100644 modules/network/ssh.nix create mode 100644 modules/network/syncthing.nix create mode 100644 modules/network/tailscale.nix delete mode 100644 modules/nixos/default.nix delete mode 100644 modules/sleep-at-night.nix rename {overhaul/modules => modules}/template.nix (64%) create mode 100644 modules/terminal/default.nix rename {overhaul/modules => modules}/terminal/zsh.nix (70%) create mode 100644 modules/users/default.nix create mode 100644 modules/users/horseman.nix create mode 100644 modules/wm/default.nix rename home-manager/gnome.nix => modules/wm/gnome/config.nix (97%) create mode 100644 modules/wm/gnome/default.nix rename home-manager/plasma.nix => modules/wm/plasma/config.nix (85%) create mode 100644 modules/wm/plasma/default.nix create mode 100644 modules/wm/qtile/config/LICENSE create mode 100644 modules/wm/qtile/config/README.md create mode 100644 modules/wm/qtile/config/config.py create mode 100644 modules/wm/qtile/config/config_keybindings.py create mode 100644 modules/wm/qtile/config/functions.py create mode 100644 modules/wm/qtile/config/groups.py create mode 100644 modules/wm/qtile/config/icons.py create mode 100644 modules/wm/qtile/config/icons/layout-floating.png create mode 100644 modules/wm/qtile/config/icons/layout-max.png create mode 100644 modules/wm/qtile/config/icons/layout-monadtall.png create mode 100644 modules/wm/qtile/config/icons/layout-tile.png create mode 100644 modules/wm/qtile/config/icons/layout-treetab.png create mode 100644 modules/wm/qtile/config/icons/python.png create mode 100644 modules/wm/qtile/config/icons/terminal-iconx14.png create mode 100644 modules/wm/qtile/config/icons/terminal-iconx24.png create mode 100644 modules/wm/qtile/config/keys/assets.py create mode 100644 modules/wm/qtile/config/keys/default.py create mode 100644 modules/wm/qtile/config/keys/keybindings.py create mode 100644 modules/wm/qtile/config/keys/print_keybindings.py create mode 100644 modules/wm/qtile/config/layouts.py create mode 100755 modules/wm/qtile/config/scripts/autostart.sh create mode 100755 modules/wm/qtile/config/scripts/play-pause.sh create mode 100755 modules/wm/qtile/config/setup.py create mode 100644 modules/wm/qtile/config/software.txt create mode 100644 modules/wm/qtile/config/widgets.py create mode 100644 modules/wm/qtile/default.nix delete mode 100644 overhaul/machines/common/configuration.nix delete mode 100644 overhaul/machines/luna/configuration.nix delete mode 100644 overhaul/machines/luna/hardware-configuration.nix delete mode 100644 overhaul/machines/solis/configuration.nix delete mode 100644 overhaul/machines/solis/hardware-configuration.nix delete mode 100644 overhaul/machines/terra/configuration.nix delete mode 100644 overhaul/machines/terra/hardware-configuration.nix delete mode 100644 overhaul/modules/boot/grub.nix delete mode 100644 overhaul/modules/boot/systemd.nix delete mode 100644 overhaul/modules/packages/console.nix delete mode 100644 overhaul/modules/packages/visual.nix delete mode 100644 overhaul/modules/terminal/neovim.nix delete mode 100644 overhaul/modules/users/horseman.nix delete mode 100644 overhaul/secrets/secrets.yaml delete mode 100644 pkgs/default.nix delete mode 100644 pkgs/firefox.nix delete mode 100644 pkgs/zsh.nix delete mode 100644 pkgs/zsh/plugins/nix-shell/LICENSE delete mode 100644 pkgs/zsh/plugins/nix-shell/README.MD delete mode 100644 pkgs/zsh/plugins/nix-shell/nix-shell.plugin.zsh delete mode 100755 pkgs/zsh/plugins/nix-shell/scripts/buildShellShim delete mode 100644 pkgs/zsh/themes/custom.zsh-theme delete mode 100644 secrets/secrets.yaml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 55067c4..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -secrets/* -!secrets/secrets.yaml diff --git a/.sops.yaml b/.sops.yaml deleted file mode 100644 index 915c7ae..0000000 --- a/.sops.yaml +++ /dev/null @@ -1,7 +0,0 @@ -keys: - - &terra age167thunwadsswd0u37tajk85wy4x7sgw6sg3j2aspcax7essmge6qwen0uz -creation_rules: - - path_regex: secrets/secrets.yaml$ - key_groups: - - age: - - *terra diff --git a/README.md b/README.md deleted file mode 100644 index 900ba14..0000000 --- a/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Setup when done cloning (i.e. things I need to put into my config) -* Logins: - * Bitwarden (Firefox & Desktop) - * Discord - * JetBrains - * Parsec - * Spotify - * Tailscale - * Whatsapp - -* Configure Display setup and refresh rate -* Rebuild: update .#hostname diff --git a/config/dotfiles/.warprc b/config/dotfiles/.warprc deleted file mode 100644 index 6e1cb33..0000000 --- a/config/dotfiles/.warprc +++ /dev/null @@ -1,5 +0,0 @@ -docs:~/Documents -down:~/Downloads -nix:~/nix-config -obs:~/Documents/Uni -prog:~/Programming diff --git a/config/lua/empty b/config/lua/empty deleted file mode 100644 index e69de29..0000000 diff --git a/flake.lock b/flake.lock index a527d34..46ac38f 100644 --- a/flake.lock +++ b/flake.lock @@ -7,31 +7,32 @@ ] }, "locked": { - "lastModified": 1739002622, - "narHash": "sha256-PtJV5OYQF7XO6XkDYypsYJS3+OsgYaYSmkO3I/A7lZo=", + "lastModified": 1736373539, + "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "owner": "nix-community", "repo": "home-manager", - "rev": "947eef9e99c42346cf0aac2bebe1cd94924c173b", + "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "type": "github" }, "original": { "owner": "nix-community", + "ref": "release-24.11", "repo": "home-manager", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1738961098, - "narHash": "sha256-yWNBf6VDW38tl179FEuJ0qukthVfB02kv+mRsfUsWC0=", + "lastModified": 1739055578, + "narHash": "sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a3eaf5e8eca7cab680b964138fb79073704aca75", + "rev": "a45fa362d887f4d4a7157d95c28ca9ce2899b70e", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } @@ -74,11 +75,11 @@ ] }, "locked": { - "lastModified": 1738291974, - "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", + "lastModified": 1739262228, + "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", + "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a9924df..274e294 100644 --- a/flake.nix +++ b/flake.nix @@ -1,9 +1,9 @@ { inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; home-manager = { - url = "github:nix-community/home-manager"; + url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -17,7 +17,6 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - }; outputs = { @@ -29,7 +28,6 @@ ... } @ inputs: let inherit (self) outputs; - # Supported systems for your flake packages, shell, etc. systems = [ "aarch64-linux" "i686-linux" @@ -37,28 +35,10 @@ "aarch64-darwin" "x86_64-darwin" ]; - # This is a function that generates an attribute by calling a function you - # pass to it, with each system as an argument forAllSystems = nixpkgs.lib.genAttrs systems; in { - # Your custom packages - # Accessible through 'nix build', 'nix shell', etc - packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); - # Formatter for your nix files, available through 'nix fmt' - # Other options beside 'alejandra' include 'nixpkgs-fmt' formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); - # Your custom packages and modifications, exported as overlays - overlays = import ./overlays {inherit inputs;}; - # Reusable nixos modules you might want to export - # These are usually stuff you would upstream into nixpkgs - nixosModules = import ./modules/nixos; - # Reusable home-manager modules you might want to export - # These are usually stuff you would upstream into home-manager - homeManagerModules = import ./modules/home-manager; - - # NixOS configuration entrypoint - # Available through 'nixos-rebuild --flake .#your-hostname' nixosConfigurations = { luna = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; @@ -67,7 +47,7 @@ home-manager.nixosModules.home-manager sops-nix.nixosModules.sops { - home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; + home-manager.sharedModules = [plasma-manager.homeManagerModules.plasma-manager]; } ]; }; @@ -78,7 +58,7 @@ home-manager.nixosModules.home-manager sops-nix.nixosModules.sops { - home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; + home-manager.sharedModules = [plasma-manager.homeManagerModules.plasma-manager]; } ]; }; diff --git a/home-manager/apps.nix b/home-manager/apps.nix deleted file mode 100644 index a7f7ca1..0000000 --- a/home-manager/apps.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - ./nvim/neovim.nix - ./plasma.nix - ]; - - nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - allowUnfreePredicate = _: true; - }; - }; - - home = { - username = "horseman"; - homeDirectory = "/home/horseman"; - }; - - programs.home-manager.enable = true; - programs.git = { - enable = true; - userName = "KoenDR06"; - userEmail = "koen.de.ruiter@hotmail.com"; - }; - - programs.gh.enable = true; - - systemd.user.startServices = "sd-switch"; - - home.stateVersion = "23.05"; -} diff --git a/home-manager/nvim/lualine.vim b/home-manager/nvim/lualine.vim deleted file mode 100644 index 8ef1150..0000000 --- a/home-manager/nvim/lualine.vim +++ /dev/null @@ -1,44 +0,0 @@ -lua << EOF - -require('lualine').setup { - options = { - icons_enabled = true, - theme = 'auto', - component_separators = { left = '', right = ''}, - section_separators = { left = '', right = ''}, - disabled_filetypes = { - statusline = {}, - winbar = {}, - }, - ignore_focus = {}, - always_divide_middle = true, - globalstatus = false, - refresh = { - statusline = 1000, - tabline = 1000, - winbar = 1000, - } - }, - sections = { - lualine_a = {'mode'}, - lualine_b = {'branch', 'diff', 'diagnostics'}, - lualine_c = {'filename'}, - lualine_x = {'encoding', 'fileformat', 'filetype'}, - lualine_y = {'progress'}, - lualine_z = {'location'} - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = {'filename'}, - lualine_x = {'location'}, - lualine_y = {}, - lualine_z = {} - }, - tabline = {}, - winbar = {}, - inactive_winbar = {}, - extensions = {} -} - -EOF diff --git a/home-manager/nvim/neovim.nix b/home-manager/nvim/neovim.nix deleted file mode 100644 index e878566..0000000 --- a/home-manager/nvim/neovim.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: { - programs.neovim = { - enable = true; - vimAlias = true; - - plugins = [ - { - plugin = pkgs.vimPlugins.vim-numbertoggle; - config = "set number norelativenumber"; - } - { plugin = pkgs.vimPlugins.vim-sleuth; } - { - plugin = pkgs.vimPlugins.lualine-nvim; - config = lib.fileContents ./lualine.vim; - # Change icons so that lualine looks nice in tty - } - { plugin = pkgs.vimPlugins.neoscroll-nvim; } - # Save lsat cursor position - # When in normal mode, I have to press arrow right to make a new line. Bad. - # Clock in vim - ]; - }; -} - - diff --git a/home-manager/server-apps.nix b/home-manager/server-apps.nix deleted file mode 100644 index d8c7420..0000000 --- a/home-manager/server-apps.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - ./nvim/neovim.nix - ]; - - nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - allowUnfreePredicate = _: true; - }; - }; - - home = { - username = "horseman"; - homeDirectory = "/home/horseman"; - }; - - home.packages = with pkgs; [ - direnv - docker-compose - fzf - gcc - gnupg - htop - jdk - nodejs_22 - python3 - sops - tailscale - tmux - unzip - wakeonlan - ]; - - programs.home-manager.enable = true; - programs.git = { - enable = true; - userName = "KoenDR06"; - userEmail = "koen.de.ruiter@hotmail.com"; - }; - - programs.gh.enable = true; - - systemd.user.startServices = "sd-switch"; - - home.stateVersion = "23.05"; -} diff --git a/machines/common/configuration.nix b/machines/common/configuration.nix deleted file mode 100644 index e3c3cb2..0000000 --- a/machines/common/configuration.nix +++ /dev/null @@ -1,146 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - ../../pkgs/zsh.nix - ]; - - nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - }; - }; - - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); - - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [ - dotnetCorePackages.sdk_9_0 - ]; - - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' - (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; - - nix.settings.trusted-users = [ "root" "horseman" ]; - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - }; - - time.timeZone = "Europe/Amsterdam"; - services.lorri.enable = true; - services.tailscale.enable = true; - - services.mullvad-vpn.enable = true; - services.mullvad-vpn.package = pkgs.mullvad-vpn; - networking.nameservers = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - services.resolved = { - enable = true; - dnssec = "true"; - domains = [ "~." ]; - fallbackDns = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - }; - - sops = { - defaultSopsFile = ../../secrets/secrets.yaml; - defaultSopsFormat = "yaml"; - age = { - sshKeyPaths = [ "/home/horseman/.ssh/id_ed25519" ]; - keyFile = "/home/horseman/.config/sops/age/keys.txt"; - generateKey = false; - }; - secrets = { - "syncthing/user".owner = "horseman"; - "syncthing/password".owner = "horseman"; - }; - templates = { - "syncuser".content = ''${config.sops.placeholder."syncthing/user"}''; - "syncpassword".content = ''${config.sops.placeholder."syncthing/password"}''; - }; - }; - - services.syncthing = { - enable = true; - user = "horseman"; - dataDir = "/home/horseman"; - configDir = "/home/horseman/.config/syncthing"; - overrideDevices = true; - overrideFolders = true; - settings = { - options = { - urAccepted = -1; - }; - gui = { - user = config.sops.templates."syncuser".content; - password = config.sops.templates."syncpassword".content; - }; - devices = { - "luna" = { - id = "MW4ZTAX-D7KDLRL-YHNGNCF-V6FW5L4-SCKQKES-BO7KV43-L5667GL-JHIYEAA"; - autoAcceptFolders = true; - name = "luna"; - }; - "terra" = { - id = "2QWRFLY-ZUY5C6C-X36R5CY-PJSGLYY-5HWIWJN-2YYWRPU-T66GJMU-GXTQ6QK"; - autoAcceptFolders = true; - name = "terra"; - }; - "solis" = { - id = "YOSYADZ-3OZ3XBH-7XEIK2W-DHAEIFD-5P5ZIHB-PAP74DH-T7GHLKT-O32YEA4"; - autoAcceptFolders = true; - name = "solis"; - }; - }; - folders = { - "Documents" = { - id = "documentFolder"; - path = "/home/horseman/Documents"; - devices = [ "luna" "terra" "solis" ]; - }; - }; - }; - }; - networking.firewall.allowedUDPPorts = [ 22000 21027 ]; - networking.firewall.allowedTCPPorts = [ 8384 22000 ]; - - users.users = { - horseman = { - initialPassword = "1234"; - isNormalUser = true; - openssh.authorizedKeys.keyFiles = [ - ../../config/ssh/authorized_keys - ]; - extraGroups = [ - "wheel" - "networkmanager" - "docker" - ]; - }; - }; - - services.openssh = { - enable = true; - settings = { - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; - }; - - system.stateVersion = "23.11"; -} diff --git a/machines/luna/configuration.nix b/machines/luna/configuration.nix index cd2419d..6b95a6a 100644 --- a/machines/luna/configuration.nix +++ b/machines/luna/configuration.nix @@ -7,68 +7,11 @@ ... }: { imports = [ - inputs.home-manager.nixosModules.home-manager ./hardware-configuration.nix - ../../pkgs/firefox.nix - ../common/configuration.nix + ./modules.nix ]; - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - users = { - horseman = import ../../home-manager/apps.nix; - }; - }; - networking.hostName = "luna"; - networking.networkmanager.enable = true; - networking.extraHosts = '' - 127.0.0.1 koala.rails.local members.rails.local leden.rails.local intro.rails.local - ''; - - services.xserver.enable = true; - services.desktopManager.plasma6.enable = true; - services.displayManager.sddm.enable = true; - services.displayManager.sddm.autoNumlock = true; - services.displayManager.defaultSession = "plasma"; - boot.loader.systemd-boot.enable = true; - boot.kernelModules = [ "snd-seq" "snd-rawmidi" ]; - - hardware.bluetooth.enable = true; - hardware.pulseaudio.enable = false; - services.jack = { - jackd.enable = false; - alsa.enable = true; - loopback.enable = false; - }; - - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - kate - konsole - ]; - environment.gnome.excludePackages = with pkgs; [ - gnome-calendar - gnome-characters - nautilus - gnome-clocks - gnome-contacts - evince - file-roller - geary - gnome-system-monitor - eog - gnome-logs - gnome-maps - gnome-music - seahorse - gnome-text-editor - ]; - - - virtualisation.docker.enable = true; - - virtualisation.virtualbox.host.enable = true; - users.extraGroups.vboxusers.members = [ "horseman" ]; - - users.extraUsers.horseman.extraGroups = [ "jackaudio" ]; + + system.stateVersion = "24.11"; } diff --git a/machines/luna/hardware-configuration.nix b/machines/luna/hardware-configuration.nix index d3d28bb..71b72e4 100644 --- a/machines/luna/hardware-configuration.nix +++ b/machines/luna/hardware-configuration.nix @@ -1,29 +1,33 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/c1447573-eee5-48ea-9937-84330065628b"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/c1447573-eee5-48ea-9937-84330065628b"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/B516-99F1"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/B516-99F1"; + fsType = "vfat"; + }; - swapDevices = [ ]; + swapDevices = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/machines/luna/modules.nix b/machines/luna/modules.nix new file mode 100644 index 0000000..18ec7ce --- /dev/null +++ b/machines/luna/modules.nix @@ -0,0 +1,44 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: { + imports = [../../modules]; + + config.horseman = { + users.horseman.enable = true; + + base = { + nix.enable = true; + }; + + boot = { + loader.systemd.enable = true; + greeter.sddm.enable = true; + }; + + wm = { + plasma.enable = true; + }; + + hardware = { + audio.enable = true; + bluetooth.enable = true; + wifi.enable = true; + }; + + network = { + mullvad.enable = true; + ssh.enable = true; + syncthing.enable = true; + tailscale.enable = true; + }; + + apps = { + dev.enable = true; + }; + }; +} diff --git a/machines/solis/configuration.nix b/machines/solis/configuration.nix index ed28772..c57ed6d 100644 --- a/machines/solis/configuration.nix +++ b/machines/solis/configuration.nix @@ -6,57 +6,7 @@ pkgs, ... }: { - imports = [ - inputs.home-manager.nixosModules.home-manager - ./hardware-configuration.nix - ../common/configuration.nix - ../../modules/sleep-at-night.nix - ]; - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - users = { - horseman = import ../../home-manager/server-apps.nix; - }; - }; + imports = []; networking.hostName = "solis"; - - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/sda"; - - virtualisation.docker.enable = true; - - services.resolved.enable = true; - services.resolved.extraConfig = "DNSStubListener=no\n"; - - systemd.timers."backupSyncthing" = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnCalendar = "weekly"; - Persistent = true; - }; - }; - - systemd.services."backupSyncthing" = { - script = '' - /home/horseman/nix-config/misc/backup.sh - ''; - serviceConfig = { - Type = "oneshot"; - User = "horseman"; - }; - }; - - # services.sleep-at-night = { - # enable = true; - # shutdown = { - # hour = 00; - # minute = 30; - # }; - # wakeup = "08:00:00"; - # }; - - networking.firewall.enable = true; - networking.firewall.allowPing = true; } diff --git a/machines/solis/hardware-configuration.nix b/machines/solis/hardware-configuration.nix index 02593b1..ebb14ae 100644 --- a/machines/solis/hardware-configuration.nix +++ b/machines/solis/hardware-configuration.nix @@ -1,26 +1,30 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "ahci" "ohci_pci" "ehci_pci" "pata_atiixp" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["ahci" "ohci_pci" "ehci_pci" "pata_atiixp" "usb_storage" "usbhid" "sd_mod" "sr_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/74211087-d087-49d5-bc58-eb49748a51f0"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/74211087-d087-49d5-bc58-eb49748a51f0"; + fsType = "ext4"; + }; - swapDevices = - [ { device = "/dev/disk/by-uuid/bfe8c490-e8d7-438e-b95b-5bc5743bb23b"; } - ]; + swapDevices = [ + {device = "/dev/disk/by-uuid/bfe8c490-e8d7-438e-b95b-5bc5743bb23b";} + ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/machines/terra/configuration.nix b/machines/terra/configuration.nix index 0e90857..4b20042 100644 --- a/machines/terra/configuration.nix +++ b/machines/terra/configuration.nix @@ -6,104 +6,7 @@ pkgs, ... }: { - imports = [ - inputs.home-manager.nixosModules.home-manager - ./hardware-configuration.nix - ./refind.nix - ../../pkgs/firefox.nix - ../common/configuration.nix - ]; - - # NVIDIA Drivers - hardware.graphics.enable32Bit = true; - hardware.graphics.enable = true; - services.xserver.videoDrivers = ["nvidia"]; - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = false; - powerManagement.finegrained = false; - open = true; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - # End NVIDIA - - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - users = { - horseman = import ../../home-manager/apps.nix; - }; - }; + imports = []; networking.hostName = "terra"; - - systemd.timers."enable-wol" = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnBootSec = "5m"; - OnUnitActiveSec = "1m"; - Unit = "enable-wol.service"; - }; - }; - - systemd.services."enable-wol" = { - script = '' - /home/horseman/nix-config/misc/startup.sh - ''; - serviceConfig = { - Type = "oneshot"; - User = "root"; - }; - }; - - environment.systemPackages = with pkgs; [ - ethtool - ]; - - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - kate - konsole - ]; - environment.gnome.excludePackages = with pkgs; [ - gnome-calendar - gnome-characters - nautilus - gnome-clocks - gnome-contacts - evince - file-roller - geary - gnome-system-monitor - eog - gnome-logs - gnome-maps - gnome-music - seahorse - gnome-text-editor - ]; - - services.xserver.enable = true; - services.desktopManager.plasma6.enable = true; - services.xserver.desktopManager.gnome.enable = true; - services.displayManager.sddm.enable = true; - services.displayManager.sddm.autoNumlock = true; - services.displayManager.sddm.wayland.enable = false; - services.displayManager.defaultSession = "plasma"; - boot.loader.systemd-boot.enable = true; - - programs.ssh.askPassword = lib.mkForce "/nix/store/qrzq7dqp8dkffb5dvi42q647dhm87ady-ksshaskpass-6.0.3/bin/ksshaskpass"; - - networking.networkmanager.enable = true; - - virtualisation.docker.enable = true; - - hardware.pulseaudio.enable = false; - services.jack = { - jackd.enable = true; - alsa.enable = false; - loopback.enable = true; - }; - - users.extraUsers.horseman.extraGroups = [ "jackaudio" ]; } diff --git a/machines/terra/hardware-configuration.nix b/machines/terra/hardware-configuration.nix index 509f196..f06e944 100644 --- a/machines/terra/hardware-configuration.nix +++ b/machines/terra/hardware-configuration.nix @@ -1,31 +1,35 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/4d963cda-4ec7-4cee-8e82-35402d385f54"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/4d963cda-4ec7-4cee-8e82-35402d385f54"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/6AB6-63FD"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/6AB6-63FD"; + fsType = "vfat"; + }; - swapDevices = - [ { device = "/dev/disk/by-uuid/53db744d-a858-49b0-a3a1-c7c576aba0c9"; } - ]; + swapDevices = [ + {device = "/dev/disk/by-uuid/53db744d-a858-49b0-a3a1-c7c576aba0c9";} + ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/machines/terra/refind.nix b/machines/terra/refind.nix deleted file mode 100644 index cdefb1d..0000000 --- a/machines/terra/refind.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - environment.systemPackages = [ - pkgs.refind - pkgs.efibootmgr - ]; -} diff --git a/misc/backup.sh b/misc/backup.sh deleted file mode 100755 index f8eab6c..0000000 --- a/misc/backup.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/run/current-system/sw/bin/zsh - -cd /home/horseman -file=backups/$(date +%Y-%m-%d).tar -tar -cf $file Documents - -if grep -q $(sha256sum $file) backups/sum; then - echo 'hashes match, quitting' - rm $file - exit 0 -fi -echo $(sha256sum $file) > backups/sum - -exit 0 diff --git a/misc/nixos_wallpaper_dark_3840x2160.png b/misc/nixos_wallpaper_dark_3840x2160.png deleted file mode 100644 index 879b65a7d7ee62858ffe0f448df551c45bc50769..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168434 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 SYffrAaKX|-dv{JF_U{C@ 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%0AI!8npuV3$1J-+bX@onkL{vXnrIw|Jr9iN1x z_v&YwH^avAek3G&^3|Tay70;D*M{rAtL{!dx$)ktS)Kx*<`y_Ct!|h6ygOa#!SZ)c zpKg5h(dSJ|<*mCslG=HGRf)!oc8!^PKf=5`In1lbcuLIuDSPhpR&JFpt_>~t=m z(wqD#3he1UouEa!4Uv_?jO9uX)L(xM-CLb;dCob@ggU+Tuiu8;Qu+Dk=Av64E3B4% z-3Ift&#Bu7-><$qWBP8x@b*d0@h$7@6Tr?3^_?UR+P%Ni@^;D3x9gWlGX4)_`E&AZ z{wvq&^x3XzWwRK+KPifTA9blT_gZ)6-pL01=U~GT5Bxm)oHtod+jDRFd)EDnSA3n@ z0cy%@a%15!a8G}o>2{!AoUuO0{J5d>QT~bN%`R8fF}yo&FzpQ}x1Bw5&vgcWx)`*6 zut`;Yd3@5}jZZ!m%=%CbiIuMV{NL1=zO5HvfK-o{Ztgmrzf6kpzc0%l%|Cy?ZhZCe z-1%Lrjx)d7af>(9{AEqu#ueoT^QL6(eFzK9`FA2FImZ{3YEK5(V!Xe4_Ux*Q z_kM0Wz2%(7gMBe^*LP3T5%2Yw?0;-0%t+&4cq-osN#(8`zZm=k3p%e!!My%+*XjKF zt)91i)Nkrof;Pb1?>~Jv;Op9^4^2I9Pm%c>%fR4ZtCY|XX%$`m^X__eDaQY?EPpn}#mcUh^Jn1s z{G}>9AGC|sB09`g&j0kIh5w-u#c<%aw0Dt=*DpoOK2O8AvLLbC$*$$!&%f01WMybj ze`3bucR9U$hF`&NHKu?4@%fu#e6$1DDtPX>9Qgl!b?vdv8ewhEf8SosnDXSheZ2h_ z`R5mR-MPLye*LtyzYWe@d0M)cVMpeqZsXaUA6~+@89WfwP_^vae(-%j(u_A-w)k#( zOg;|GPR(Z~pFk|WJ*t_!KaW>$H=!dOQWso~@`*Q8?hbCXAcVceo!J~aUT(Gqg~p?t%TKrOzx8DQaxupJyFjO!)~R0?eSh|L>GXA< zxAH%GQF@eNNA~PB)92m)xrGH*pa-0cnDn@ytF}KmNNtP4#3i|tQp>w)r{`WW5o2Ux zIPk{gWcOyMlP$y-eN9W z1j`@3eLHQ!Z0{Wn1GVM1%1`RL{{Q^B81Eln;0`W`Kb5&Dzh3(9x8SHuk69|+@AQ7f zYSb|@Jb0NkN&NYC@N)Rgh5KTkY>&@#InaOR_3NtdkG5qNr7;Met@>YuD8ROQG<-Lh_QYaN(*4IXrWh>@ZCR2%Tj$p0CHGUW zN1S12VEAJp2r7Z{#ebd^pZ(|G>rB@J^*cckwQsX^kEHfL)w%O`u0JFr`+L&ijrTtP z`FU(>ixu48AC!+3ncw|xF~w6?LM3x{@Qd9qCb?ceGD(_&;lbX{2FA3PkKTwd{{Mdc zw@)U&z2JxMdv~oe-)QVPFLz0Zf&28|yRJ_tH2DzNY7|hkEcVkh^d8 zhucygxfvMlv~#*2`2T%%?Y~&iHWP50zrKA{ zz5H|O?*TIw|2;dQZbiA_PJ_SGyWrt^=3d04#{rl4J?*FXq;r~kUNSqm$@=KN(`K1c zC-oT^J~X%-VAyQ(lw*hIr=!9>4e_8d^E^w!jOC|aSAjY%M_aQwzgpae7ML^U27yX| zx_;-A77JNx=QQ0nzg#;#c5>KzZUzP)P^*3#sNYy?&G}=c>w)XPtG?g(y6SAvLuZvU z7q9M%W4N=;*G&8T!z;?LB=z8;wx#bkTRu;FmBUlQ-cM9JxoCHHop@I~1H%JD0Y>IC zm!>E`P&=tV--E?w+LIgCe{=7+;jtp2@7Sc6aGr+ktJmGys2~W-n;#^mF414kx&QCm zCHFbkURA!|UpxKUVFm_<{;3=i3Dfkpb^m#G+PCii^1n;=Y1jQd>w8IM|DT+Hf*($w zwlm%TDlX@)eq!Ic@3qIe#6P7!U#EIS74FPH3Gbpkb3awfEZd^fuaY@C<>uT)_e0YU z=`%1GD1)k=s%^1P%=gar zj|j7tQ-K%MYFRqvmuvf-SMF-IwqKh$>FL`k_fxMgx%!8RfuZ=D8dKh{H+)J74LfHP zvD{Jld9+9Q!K~R?IoD&OZC!f>l$m$iax;)A1%@(UfuQ9-?r@kA(^kvC;vsfk4lqtYed8+JnDT8~dbc%6d*xi!>?U_hC)DOqTyEL`u^A)Y&GzPsAA*9)KEfX)kZyRQmtzsM`Mjr|p7QHh523zu(fAX`VMr z&5o7j?`>}1cqsrG!rA2e`r|Bicv1J@UXSOm+noFV1|*$$zs1CN)1JBScE6dmMQk4< z149kCptH4)e_}o}gXNCO{y%RD-4EvO)c@e-_Ku|4_aHD&*P~VNvto z@YE+3YJcBOxqq+YzGvnnon7#PgW)@9@X!1FdGVjVn@_&qKQDsi&-d9To^>BPlpo~l zz4m?MGpU#nRK%Cw%|6-9Evd$TcqVjK=fG}l&-iyq_v>by`DH$7iKp1v*f+bkY~y8M zcyL)5l!rcVcCGt-^o!C1`~QE{PCo8!SP$x6=!*MZ^ZxEIWAXLfRp;;K-cH&5t(lu2 zaeP$2ly{Mg-^TZaK3+3VWSLJ=$(^jTJNV1)oXN`!pNcauEU*HV_qO)YPwwx#@q|DA zz46rZi&Rg}|5rD8(v#`^I!t=t5t+&2(l&W&kpYo)_ z8dU7}2uI#H=6QS0vfp~Uf`8lwRi_Ng96=S-{JFZ5I$aN(ysPryxCmo?_0{mdAfSy2UT49p^J|{>*=;55r3Vn?hAjdzHVrUv6vHsW0{1^y1y3`>l_}85k0Ffyz1+ zrhW43*Zo>`-1`2hWw3EX@#pJQZDe2ry9a`UC+)j)bl>q^uT?78^N;WImOjnQz+j^X z%ILq|-GCRZ*Tee^Ycq}r`^tb`!C)Oo$Z=#>~xyg8HI z~L(Sl*g~z@(-FGdY^^2Q<;efIl6WffX=g*0IE)!*(u2TQ& zw%y6JOM)L}=U>@6;~)3uEB&g!XIC+PNK2j`CO2(2bYSHGPw&$$9E;@rx>p_R)Ny;f zBsZ_T_x&VTCP*lQc=?~f{hDfZ5|^7gAFgp+q3dmYCI-+x*b?w{#C8a%(rNp=~m%qFFx&h zwspzL=gT@jADGh!^<)2)+Z*3+yjR7J)<9(Np9U(1mq{{C|MN1x-NdubY$HcS`HJs? zziTcp&8?Z-Y6)sRPg^7A`^a!6yV=^^up5K_UyA)O`-}5Qmupids`zfoc$akFb$Ub` z8w10Ea*zj2u5$cXecSUuaAyPm-x-B#zU#lJ0gr|}w0L&odi6BBV%*Uyq4Ab8h-Ha0)O$ zOE;SdlP;&+e>~w!vXMre`qIom4_=lyg16P;7XU z=%nPe>8lt=|O~2f7|6kdq z_b%5O3tyjYx$k;AB{Lbc=Hs2C=E;xWtPh+G*w=kXEOxe$+Fu1Gwi(^$&xvcM&i()Q zbfVGyI&ZIkKdxV%|6EaxG5%e9kEr>68}p6AX_@5(x(_pjU|y(kO7`qKoH_A*q0gxh zH~R^Y0vc3n>VO7rBN09kXAduU#JFcE8SVV@s92XTRv4$bLHoPiER$KF zyU*SoyuI=LN88&hf(8fv_?R;NdmPW_`O59U^xst%?-gB4d%BNxb4jQn!@FJAj14Bk z%jh2*?~Sjv|C*&1xotV;{?qF`wSTZOFg%d!dAj9exV?(`;p6q(poYnL5#%BO-a{Z@B^) zFT11vK(i%3fBs3DIq6A%a8HBxr_Jf}&9r}g+qM4J{ojAUBXe8jgS0^9oTuJQzI5mT z76<%yykBW|XE92JTC-+S&Gw(yXV+f?#oB!F?UNhS#Toy9Efe~n4r<(epa16nH~Xwv zPm**Q+AMeNS+`R;43=P!=(=L}c)OqxQx@pWaI3yD4;$n0rPx|w5y>NHK z|1yuuD)Zy-eNbG=2At?ea!5kA}|KBl}x#?PVqgh6i?M5||BODeQ1OpXcP7 zx;p!n7q?&k`Yty2@{=#p^lc`8V25~OEZ z2kMzF1GW7=OibIw2o8v45{&Aq^*?@1s427;{P1sC+?MifFCTFmpYhi`8G4kVVynP^ zBU`vL#k@TGws%+eJD*gRd1ajKJ6R`x`5(RAYHP1XFfcIOX} zx*TYqZJ2zt|BHC^cf}ct?~uOH|A_pyJMq}|_SxoeHZUr;M}uiD`$I}Srf z*!$h;cOTd;@BdI=_>#)$Z@wRHAAw|HZ~J?`Ki|#|`uLj}G}mH$mE%W!o;qW_2TRS? z_2u)UN_@?!Xwuk-h*05=kF*za6T$)bKduVYb2=SKfCJsq_fLbm+4fe^kw{*;x6UYd~#w6W>ia_gVJ)M!jCaz`(GB zeINTBeozAY^X8_}(kV4xx6f|>x434x%6n19`r_I@U+PzEpOe2N(7=6tx#;}D*-t)m zUl&?-awc@<<4W+P#}!dGtb0_CKV10Vp~fF&%!c7k|Mukg`^@k9L0PWuU(M7>PyG8$ znC^x4e7knq>~!n<8wT#-yZ7DNIIY`k?(r}+FIcyr#!6Mv%hGlK;mn2WXW9v0Qt5uC z_bs-hb17)U;+^)5D#vffN+~zZ{ z0!^ZvPwr`mkNdiEC+~~RYkzaYCSY#<-1O?>gId^VTSI@4*U3VUzU|#Lx*z6F+qQEy zxEWssDumxTdS2o$znK5N`9L!`5iC)Dpl|;3&70qmm$qO3x@hk*&vWLnTOTuijd|CW zbv$d)L^aewYmRRiM&!y8h`_6v5>+J2Hm+Svz&Hn#; zdF)k=*ULLVLs0tj)?b?PWc7Yfad+~6&EE6-{}xSt{=8e}x8dJ__mK~iUe_@dmss$; zJYIEu(&yf6&dczQq}`1fDI0!l-{pFH$?Hk3vvqc>rGfT*6v%sd_C3!1U_B)yru@AB zi(6{9LubGJCGxNA?*4yL7q*?;-`&8N_Wb$$xoV95dQAUL+x?&B`|bF~R~z-useqEH zHfZKv{QR`ge)jjL??U^DKN4#5RSS4?i@9pW?`9tAR|TERbEms#)|=b+-S(TR=YD*A zYkSlE&85?y_OtA_|FgfotKt9o@ZE1fJNUpYpx3oxqU&GB-hPsEHPl)z;QZ5l_cmwW zHoLjTX0lN(tbBaX{I%5lOTE!7Q1$)*)J*FISMT%o$o~H3tn_nk+cM9vZnN8^v)`^d zdvleq-KT1Y+iL$mW>0Qle3mvzuwYX1QF)$oW_R81t2e%s^gda7l=DEeH0K8nc#7js zGrC}#IVp9vPTpcj$D^Uz2tIE1D7H>Z>~7|+_homV)ZAVAlVv`$4`@1Re*HEt&ri!a zT@RSX=G?VT=v(*A`6_SMyt%ul8PpJnRKLBO z)weEpQ|#88>--4UT2bp(6Dp+=z`$VR`S(ZKq4zK6`#9fLnH^d!{dZfWzPw(MC}<)xxTirp zcJkL#w#?67eBHOcY)#(9l#9RC_PvA;m&rfL`18I$YxeG!`%bUxGzGQ%?o8h}XW8$4 zGe2dYcyD6jyD4f;(tU7f+xCjh25t4XvE9n?Yd?mtXB;l|LK{ zz0U84!rp)1t0AMKTeCqMw!Ww8RD2z1~w-3IzgPK1t#pmDmW13gVQnPWY6R2bL`tOGuCMSy- z4fYA%Obi`D3qgW?@j*6h9dM{wV=?aiQu+T7P%ph9z%^y#}(?mrGN zI`{eNufV7h-*eYux4l+NUv2hQ_?H6MeEqmJlT*qBKm43o&2%R4EO=VnDd^X>PIg-R~m*^mZ-(YYQ4C@?Xxe zji7B$-&1r>7FrwyH8os6S&MeRGr9Zy?3DZ0o;S=_ z0cCFexHUnO{yd%NegM*oyjpi6;-l@WpEI9(%8A2E`na~lTir8ft3}@P`yN}?%L?j0 z-kBW)84C_D^7}3N)AQx6XJv=-K}G($&yEkA!AbD+ZO;S!mP~fy42N}M-@UdguB+2q z{-m(*7^rk$U|@K^M&A2a`#nTTP=?6yB#`vb7=J~(H?&%79Iotep4p9`(>GTz9*Lb+L%%wod5da+hhG*Hg@pB zZSGfolYiU6gF#CO~4%O&^U?()6R zt@b}t$l$=6nx9Eir##VLzf6{Ky;yG8Ji&x%>%P@)P1c>B8#P@>P7$6I{IdN1=T0iA zYhh<#c);BI6r7&oo$Hn_%=8mHUsl^ycRuXxOJ#=1-_wLZV+(Qn{@m2cTxQGp-uG?I?C9h?U=TiiH>mD;n;EQB z(F5;Y_)E22e)K9zhmVbc;XyUHpY`2h?z;~svuCGlepR&1u64im$ER<=iNaZ|f1g|6VV~yP`$!yK`LZH+aHa{?&P}{6k+*xK+&Z zvdne3%D?=>_D69ce_B$nKgqe9x;d|CTh`@SN8H~jJ^24CYkD(>M1t8e5yp7%RO)n5 z&_ed}dMZ6@V?MoBuiTmMxZ&fs?t#mZDkt6 zo)=Q*n|&@BOxv?Z=2O-6^l}Mf9{WGddl;YxO#BEmUH)IK^Zo-y28Og%Dz!ViYkxo7 z@=}CH(yn4)U`R{GRy@Y9e_R7PKibAN zg{3C%m;RYcPZK@PUO)6a{gbEMxvz;QPM@|5|E*|l{+KyX5CKExJqT!3XUI-&hWDtxQAaioi9AQ=9`b5r)~S= z8PmbB@Xh?Y@NVm7XlYTO>0=ZUvo@Dk4KyD6dG7;rNuM8cd%l_du#Gmoxo)?PcvHOH z-k0tNqW|w__`q2A_jBm4#51c`?>qHT47$?dOI7%L$-g#ymW~>AvA( z^&hdZu%6Q&@7nnChu;o;QDk6fIQcri`M&x8DS!N&FRQF}o&9##Uf%lKN3zZM6K)B9 zIH!`(z<ALf)SKD20S3J(Oe<^nZ z%pWTs<$uVWqLk_2(U+`fuU0 zFZZu*D$Q+^)KcBKN`hg%_@nrHXBWzU{!}{u^xX-63w>tZ(93{lW_H=^Yx_OdJZEHJ zSdp%?{QJH-k36mY|39ubMQVxq^89={QJ9h0rY?N<##%ZMaOAm*s`WTJ0A<@P;S(Wa!cK{b!GTz7t$*(f9M&rx~m7&Ny6n zBBF5dYkyyO`ky@Oa{c6#L`QxGh6B~0^*4SOL1VmqLZQz{7! z#}g&I*J;Ns*Jn9k;JsekPbhy<%|9O_OY>BpeS6=1{<{ppT>Ja>i|yfm{M@daZNFUW|8RYIbVa=yBePHZ*_Cs1FF(mq293C` zl3>sm%iS~Y>|uBT*FJmFs^lf=F0k;aIUf*I+BKzg3IhYfc5r35ef{<555lw5B6V-& zTz{+iCw6P5j#hjBH%Q$-Yh79L*5tYQyDIiH{oMKTxJ;kvdewP%M)M-?fnm+lu?)*E0GzpRY_6Ya;$A8>@bzQEH4-*5!yeUDG9{*7L zp{sVw=ftAyO|e@oqvxyrE$fP3@eGlSd=42*k;!{yyCyD2)z83vx+wF5WuEiqmR{{U z{#)|cldGZguV1e%YhUad`Fphl~sjmQ~i@-m<@rUcM-E($z;Izw^RDjftca z`aY*1S4X#(?_6#E_xsG3`whH*9}XxLUh}#4`Ih#wT8U4eHl4p(cj9c}nqRv=$Lw^5 zw#)Coe7*L$=Oi6#?X`>y4ae8t@%w4}P4#a;(9f$~@~CaHY7L*c91;mq>%M(eW9a^t zFi-D$>HMd4-#}3@XWqp9m3N;PnLjCzF%IL|H=hgMjGUW%^!~%OlUW!T2T zw$ts;j&<2Z-_j1f-{q_Rqt*Q-A{Ii*E&43KeVtdR@59g*xogk5?=si7`CjurpFTgz ze%hWrHqX9Zo$*_#`qhFsOl3tLuJqwOc-JkQ(#tl>2XY^=|i`vEE$p!~dUI zpfe{H%sSn5@!nClTP(#TTjf{%d-vnd9pjs|JMDNXD{nr}vVZa{ZOyOmC+v%-g9aoR z7#Jqa5!-hClFCLiAqIvSlQ!P*{rUI*o4cncJ$9S5;pKV82?{4pyxSJ(`*mIP_j=FJ zy%L+R&G_3rO-=G3GoKx|ONhtSrDsCYTG%=4`Xgs;NuG72nfb%@{dH#yZ$8{5;X60! z{<+|~@3*zI*u4(Mu3XjeUxblaWb$X3cT zdv0;$qsg(KR&HhXDS@!s#lhu_^j+_juQ`-wF)%drPf<>ih+lkv(sh@b$k?UNU+&Y~ zwXM(hEtAl@xf~J;=3FlA*?6IGp{A?Nn^#KfS*LvcX(Lj-cA4iz3yoK^d4v1n`;%+z zcnf#=81_9)%H6kaWsuA+E52CS`MaWEWsyyOjsB0E>&_Jn3=4M17(TgvV|%=xecAV* zF3TTx!!B+O-6Ab0`(b})1LLU*o2kG1-fk-mnJ0eW6;E>C>8*E~kFP78aA3Mm@R5%u zN7nZ{+r%Dw!Op%w*K=ynoAOYZvf>ZBf46_%3~QWr6!z?7(mV1+je%i7i>CXR$1;Dv z1-qOx+o|WeduHi9 z7U+L&xURO$KE*MpD`R`{o9Y{9C)e#S@jtQ~y2Ym>QS18!bJv#I37{J2gyo|7^P2A) zx*znG-Io-+{KYM+U1mq?qGx_#tJyxC|QH9jwOa6vCpFcu|9u|>%k_75$_P5|Y~HbW<9v1o zh97a3Nhj8Cd~a~>x=GERDbISZ$40wupZkAF^_^B;kn>;MC%9jx{YQ<|qmr3PQtIEG#g=$!e%t+%VT*sP?Cx)G%UQ`muojbi-eU){MFENWA*-LtlFoZ1~~9 zIbPQ9Zp)@DGGpRmVEEBANBP%F)gNaKr%F2=3%?RNYx!?G_WizZfARgOP)canZrHc; z#rGEv{g#y-+WWIct6VTXRCAa4oGrgD&eKc&QzY}~qs_6c^AG(@KfNh;RmF=}7A3_$ zqD8G(&#qU6)HZi^?t75-Ygt#h^2RqgI4;j$%oly@c7RQ1 zGKa*2ju=3D*=kViY zirMA+XF$AGaJ)^k>)n?7br(*aU|=|K{FLRQ`o7xr$$ZYa(-yA`esdd=A6!Fs<}v3@ z=a6{tTb7&cz;>~>jQ5{?UYT>@SAFd*k=niX*|U`TmMhlP$~<~$bj%=yeSxmWRHbjb zt@w6Z*_D=V$=!Rx_yVjXD>&ZP^jl%I$$v%$hHLunfAS8!4=7?0hz|+Z+?8v}zCTyC zw|Q2>R6$1OKb6-LyIu$A-LWnyQj1u8{BppXt+Uiz_a1nCbNOkB{W9$pHvNS=pJ`MH z8OKiva@jpM`TpVJAG4=@7yA|eCkay39+2JL_f*d6b_gE>!|QLiL4{a;DRLopQF23_ zQbL3M@+V*J-`)0U4?|dnMDd(;Px*vyY%kq-{nsRK`=k2D75kPO>RmUSQ@;(I-PiRw zhaW$@E-uC7pDC=i+7TSww}^k?+e{XQhSHfuF81dx=AS&=`eW0SXT0lTe@p$nckf$R zgS6 zg~Zv8VCRRtzh+C@1WGb6RG2=!uDSp34BxGh6PEdH%zypjmdNj1(a@*AxD}jOcs{K4 zVmmP3>VEYGxB320oo-6h{++PYLvzvHa~t0$ zn*aCI-mePlg)~@S6`#X!=f-(v28PqqmD~PE{r+}3bIH3nFGKeIx3zX{>nc+gVg3P1 z_w{R@e7XO3U0>GQrDAs$o-Wn0lKlR#mtUx2SI@`Og&oH~OI)wx+WUS}&TK8YT~>T| zW&VYgm%Z8ot8U(1nDX3yX-<~31S3O2=Q104K9e57zaq3Be@oA3L!ZD-nJD`;@Q zzTC$5Xx!_C#Zek-E=yZ-;Q0oBwy=POOG$v72mS~_d_@3PXG zSF>)Ie6Mwfw~EU%H1-_7c+ZuAA)*abR$2a#Exy>?_+t|+!tQSC`gKn27Q+URhIe&o__zQd_pT${k-+_yu@;u{W8a4lDjXQ`k#0I zp8UVR6*l#9K=#$~BK}9OwGQnoWnlQB0IhvMQ3oop_WAwDHE+^y5OO)duzudTWS^a9 zOr2tv-^g{1-C$xo}qF5zuV$}tPBlBMMoyYC*M!x3CNvX`P%0v0F zyA?m}g%?`sZ5!V(f9MsS!^rT!_o>W9fBl2`eVM;r>=)FZWp(y)?d{4->pRUDPJa_( z{Qq^of8k5l0|#nnE|XdAeUS4&y}?%D9l5INoy$c&{{J&SJ7!&SkE*{lq*S*2@%PHr zYa8+r0hp#C!G1+^W&tY$gT2=I$+hjzUzBe+S!xK1yReJ7&mU~Rd*cCDLG~)GN6YKY zIVE=3AHOWIlr1f9me#g?rxQw#8H&f+Kb84dBGl@$fnya4;X$<&oydM@Ax@`y3nu#0|JIwo+7X_Q}GbKbUJ$||9n$MoSxxq)B z&5!Tn-);5k*53*Ju*JCz)o+&}e| ziy{6axSh8q@FeGf_PGoa*IsO9_@Ra<7k9}QRl|cqy{$?3c#uoZ8+#Upgr`L=Jdd-# zSZmaYFJ5=)bIE+I=MSPpD(vvjwaH+{3&qtM{xmAmpm z6-lS>4N2uIp=U%57#P-g_DOuoeslZw>s=C>M`ixxt$uM!D@t96@q?So zfdjW>y#4;ao#io4^uQ~d*yA%~nznJ2PF<9}+TzVK&i%WuE#%IIZ6Ii{o}j#F{;9q9 zj+N*#FoY$Y68vl7zW=Yt#Lc|xyf5ZGyYXH1SE(q|foefU=Il=uTHiN3NPNDV^V*A# zEAKcm{fPrLP=38Xn1B1)yY@A6;7Rv@#nBi>@k^k_=8iy1_b-==KUhCAxR7S~O3QWo z+NAqo8}Ek(hOe_`&~RtrS>t$4@Obgg_Zytmqnk{v#B4ks+=J$c4>JE|t*MLuGYQrX zd2zhxs#6z7H7_H>4oTz^S?g$BwCnX{FK$_x@kuc~Xx{5`p#Jas;Fu~wgM#XL>ymw1 z*HzBaI-2*|n)6!PtRfrT7Y0*IZ$S$xE4i}LEAQIxn8NGq#z}(BFZVMr=tO}7+PX(@ z(*0DA%zIC6ZM|yqvOM~%IuGN4rjXDh{{QoY3<_q;`KK=bA9e2VFB$*5C406m^ZQ(K zKX2ZbY~ADeuoRr|w&+Mef&QZOOAHJ;XQwFtD(tKMt*Ml59Xfpxtd+QMt+FNy!wyFM z$qlXt4y?5l<7trpwy!;*x9|DWHMM!6h>l;8Y*8xvr~P{huC55C;*=s0Ga#lT<} zaqhEKg~am@+doX2p}%6a$lYyS>*gN5zbxzzQ^9PP0|(a5Eb6m0nEuneT=3)8lMcJ=! zn5`3Mh~O7ADDaj$pZvsWy4TxfpZ+pym&h*LF|Fo9#o=wfqWpJde%qClUYYt^u|^&i z$ZPHd6ueIicD2|f#n2$M%*Oxw+v6RHXB2f2M*{~*zg{Wd!6_kRH;3_Ty)J+el4`P z2Q|FkMBT66!w+}#4FlIHGOcOyiVO_-s_sV&+<4Akd~cvxH+|8%ppx5Je08_2W<`DA zW>88ty{b3Zbv)AgZYAt%-*3zzw)nN3$#|@2zy>5n=JGG zb-^}JVIO{c;p)c=SKG2bbp~ZUP*XSIXqyrHFL#$C$J*o=82&ARj0?oQ&k=q(X{kwm z(c4?sUtG_UXV}-vArZ0Y@ya`go7gYcCr<5K{&Y?Dz0=+wcHa;Ec)|2y#kZ48a5I+{ z^+_x*5^Sw)W?-l}J0*VkpKr;1O{YWm!4q;_v}@`rUWS_Os_qBsfB%&EugTQ5yVz#> zZ@sD)pu#Sjr(rgvGqrr(HoK&W@W>0QeaM;RcaV+Yf&9}BiDTDaln4CLa|4gg6#vM! zIlL@)zw!!VRmZEXrm*u)!?&+{cg)3XR``mUjGI*LOINukQ9XzH;XX zD|qmREc|ODXlQS6otuF{0Nkz5um4@`9Im`{M)Un#(b#C$-GYA@4pa*>GJAiBD9C!g zaJ6z}7{lt%6;hAI`b)ea4ep1Qf4<5dT`LG(r+vVSmsOp?obL-e!;WZh%jwtK zlcBjEtX9%CdD_wRH$Nw9b`=A|JJ)l9f4|85>9bVZ`#$MPXjNZruuRnK7{&xmkf|pv zAAJlmV7Pa33aFfTxcEO;{R%{{C)@Y%sUNA3l_L$JuejeUf6$F5n2nHdQ13G7az0x|M!IiE~q#2uC>7Z&n{?*&&A8i|0plZ|0W|t-d#kYdGdV_ykWY3sc@0w~ms>v2I9lhx&~V$>^~eXI zKYcr2{FO|+~%-O}uP$1m)vh>vZ1wUeYv|Qh8yITAOl&)?w9IzE&WPbnlrHzR7 zo0WIN`1G4ZtzwUtSH6o_D)Kv4wEeEl!}9Cb^8ZO~5QCS#GeM=V?^LCmmzfzhcm&t+ z*8MhYe^M?P)OEwG_|5Iy)i?52b7W^R?C@4fcwj4g{;8Z;&8?G@6ME(5-%G1ClCLxK z|6%*)RmF{~?^+L-f8vI&z0kfaKId85e|d%jMNe$jv$h*PvU+x+>;BOUl&}7Po}HY#>znDXtwwANbyGMbDzy8T7u{FnpZjwE2Djs%-}}q1 z3+np2t_xDcl&i^N7BKlV$ULF0)k)4$jC^B-N(*Jk>+e*XE7^7Sv1E=Nco42o^n zT-WNyy>`{lD$a=c|9^as4LSMVwgx^@w#FsiLM-#mOGbttpNo!6c+R>1uu1!V9cM4W zyW3{{-x9h-dh%O_hW_ACLHobIKdCXsw`>0U_W7hrLc|784(@4R$5*ScX7Ug5Y49D7 z+J-$(xgPk6KHO-}aA5n)Pd0bUC6s?@Dy1jafm%8;x2(SHw*0mA7%RiHC#gaoE-5{z zoAD^$e!lC04FSg|F@8Abxsc(*JVX#UAGB@o)$L_q_@NAIO3wJQuRAdOW#yswGXJh! z+sbg@P-jD<{p$+7@3Dn1SPmd-XF4nrxJf%xYat86f%{J@H@*KL^Ovvd{?VV)YlZ)R z3pnofft%ruf}p{NwdbyD9@}`v^yRXZi|+n-!+fCnlQ%5CToAu?L0C{wb5Yp}dxnDN zZJNh-o-f?v^YL_M*W=W#;`vASbAMgm?)8V8;m(%n92MJRul4Sn&ap#&S^vM)41ymk zq`LNA1GOhVyn}m-N!59>?^Gu%Mut1HHQi&{WcsJe?4MIqWB1(RtK~04r%$_cN~b1e zE6Fl!VA2;X*d2TAmKzJt=|Y>Szh$@@7$5xA&3+19&G{$OQmJj@o!6P_pq(JDM@r9p zEIIq}b!Jz*f3Qt#am;ZUOYgdT&+AbKm>6CMf?_gNpNZ|?^f}6Mpb|r-j46SkBL8&M zSLp0-{VjuOya8t4zA!LooBCLutL-~KU9+xs)}xP;9veNG@nxTR?*0uHYzzp49D{5_AQW-4bM%$rMT! z*~At7`DAkRd2wIx{A3MtgH9$N1~!IkD^@A}`>a2gL*mEo$15LvxxY^HTNFdV`8zjR zz$P_FUl->IF$;BhQP0>QZTht1^^C_aXFa}tS!DmbWfi-g?dY@Q`5C+1ce2k?CWbI? z7M?%X9`C$!xXFL63@3xvhi+(mn(I85N!FXb+T`>tZw`hJu9nXZ2l>_Zoqulmt9H+m z9Xyt5N8iWZ(AQ~WWT?niN>ETrnp0#Gdy3_NrfZ3{a0BB4_`%h8Hq>=#Sgu?5u|<#} zVn^bs!gs|o`oSQdeKb0{^Sq%(-TR>Hv;J{2teMXtQDN18be^b8S!sygR)z%}{h&1z zpk<PR{qDzAg1uVOWIy9m2S+BuofQic{zwa6ymD+gBLnM`%DKhwie=_6 z|0Aa#Jm+^z&ELcQtAku_FR|F7`R(?m*C*F)wdG^j;jcfrVY(RO_roIfzklj5wV8kW z2}&rjvhze394y}zK-&$yuZ|b34_(UfSD)cS96ZGp%~St7@0ZM93B{j#bv2dDN?o>l ze$1TyD1Nurx7#AOt&T=)_`D+M$hwUno8pxccF6lrFPgvHdHb68A`B6`pDq3mF`nVT zcgbT#mS>L5lVf!iKc#h2&G9t&b*`2J3n z>EG@1%Pr!$=c)Y=)ffCw|1VWsx_#RLe(QOsd>Q_!Ft9Z&g2!d^GMT^)^E;Mp669z2 z!DzW?zEazBP*eEc7A@DDSC+r-h6rlb?%krhx9;xtSMdxD9D)XG?mo40wV$%{#x1j{ z=d~F`;H@2L6OntXuUlM^XZSI>PWm@ra?6wNWlKdiuAJ9=-^%r?Y;JD+rhmO1dD)EI z3?H0WcwU#2$_s~^?r!V*CCk^%#IVl?*5Wo_rf(Cs-i%R#;oY?<&tL94{CP^eb6tK!*NqUt zv&CO-i^M$UZQVTy)I$H@s+17X9t0Z3ma|fCWjf#vZvgaaTIQ}_cduMZhGBzFaNXQb zxBD%*=35_U=hu8wEs!gaG*{r1Too1y){>D${+ z|D+ihbY^l$;0<_y|@|d;DeEQ9v3~-IU5)gc$djs>@WUu+h5Rf_NVI2 zK`xWylJB48b~VGZ)DfLs`9;Q~ zu}eKp?)=A4kX_XGV)^q2x2NX{*Fqk{C z@N9qj(L|(rt+ToJXbwwhWt0nnHz3Tcz$x<;o>jRC6Bc7^<4kd9(upc z(_D7TGZ{m%8vC-fpfuSpz<4-UVwueJ?3wMXrE`QH`SSfmd2s!g_!n=#B;PE57RSKD@Zqq_fekhN%QxPrZSY_A zpXosRCvWHlRpyKIE&iG-E!x)4#~_w`s@TV}=ku%uPZlcd*{gN7eXU99k!4*TnRD6K zPvL1;t#vevgNfmTn#+L=Imd%{o`356d@~z^JSbg&OG@)aDGnDy1Ye&CV0d8mMCPJB zXsASH^1biN;MurToqO%V2fxequT5GiYszq-y`r<>|F6%%G3#3W)&4LE8cgAB;J3ah z$WWuQ{|MMnh63edO~2omZLMNr=sNW|<^Ds z_r>uhM%S(tZ)Y+$n43TSX)A4cjLu|Fe7e-Rg;kjlk6H)0E6Y zT|UeFHS4->KTWxy%&i=KFi#~`l)L6jAD0J>jcs}{B_stv1>ZdRKkiPIXs4+L?lM!b{r{IVBzcqdTe|U?}KISy9^jD46_nFpj zeE+jHsKU#oLtj~$yQTzP@%zf&U~dBHnJm8WK=z(z*N?j`_m5e<@SPH~f7|R+zeE`p zY*^}c05miA>!%7++Sb13D{o}Wf(mh+Mwqw7*6D9wu0BianGhR8M@NT@;Nc%qpjP$m zX-c!cNd3-xlU`SBsdTLA_4QiN(xwCM0*ua)mhN-TIZwR4YPCrFTJAK42qw6vBhFbK zYg!n%cs|2}drvzQ_aEE$x9Ho(&vRFaY+U*LMR~C65*4Nj|HCsDr>N}*d%Q+O&|u2v z3c1Bs7B~G}R~Debpwj|(Th0t6FENp24;TyjVTILaMwvV7L=2DbEA8@~yJ%D9&J_zE ze7P?o2x{v*aPDka*mJyi=lSc-&#kx_ra8f?1nw}C1s;N1o!AP5Bi7b1{xIqd$diCDG&7&?q+DmZubItv;ty+t{r)ADKwJ&b_W=&a! z1W%U(AME7(lb<-5oB8}_ZAkri8s;F=zSQ8Qy_47)q|HEG-(*PF_t+=BAQzKTaDKR^ zX}(bYwCI7-sf%(!jS_EVrnc?nHq(FW*p{r@%#h#-5(E_^8v<$%{w)lhW&WJ;z*^8! zptz>{GQkf|E(YcL%eC>#{@j{WU)|R9`ue)96|4*qT7m|9)*cT&$q2N? zv}@|s&I~?Zc3W%Kt>;V()8Mnk+*680=BDg0{3qVP`YZPhc=%p=I;h$Wl^WWvMRK~{8c;y*RR|+(N&LZ^YvZ-QxM#A+#U*}y$_5Dop6U4 zEcN?RA2|C8`vK`$pI%S7Uw6ipf9r$V5KU->?xDu?k>6`w{B2*+sb94j4xFt5O@_9u zx1P5wY5ms?!VJs@;4^&*iETyIRg2aIy-;WPA!w=8_R$nvFX_9w1fRcLYrb_WQ+#;Q z->hHy3Si6q(`Z__u-(d_q3>(U+6;;wcmW$+{zt}!ssmSc<_iLe<^WNRQA~;)1>E_GR-8=c&Q6AKs)u^jv5AKuTUKd}!_PZg&0jbW0hu@EB9#39) z{?N9SNw+ODMHr^RcdL7Ul!>3Zsc?n;fxo8&o$El0shmDl|6XO{|NZV2LEpJNUQh4x zw%+dfdu>?>L&H`f#>1sryH_-MelFdz@4=Q2ySz5ujX1!>ux2KQL|XsyBK1}|mIDkM;M)))I`(~-w{6+B zNZy3AMe`o-vHWq?P;`#bd23I>*{@80<%;aD*^sCs&hWncQ9MIKwE|OH$Ky&+o&uRt zf^g5mgc(<_e10a!5T*hvbS!30{{H#)jqC5ty^Ws9sP0eO1xi&9;yN03razwXxJdW& zh6TCV?cIzA4#5Lk(aSGj^GfyvSy=z-8>nHXY*yOkD>`w~{hVnl_3tEt+Q9F+Ic8LU z{TY(>E8pda`sI4Ygpcq{#ISVn+GX1;c^`;9mAPnteBX6L_pm?r_K1Ak&AFfN<%6&< z&O7xNyj`}bj+J4Dv%cVm_u7E3$!GDt8W zrpUPsdY(3|^ELICW=WU{9)Z1i`wahzpd-uXExr%(V0=>EZG&^{B2zYH*QPNryt{cC zv~N1Q{3U3HCOrCgtnk$Bx(qt=U{$nTRG$QwUqE)&?ka|9DbQ9<6T8!gx>Ymk^PfL3 zcTKI()V@4@j@vw?Z_&Xk85rKp<(N_Zp+d{}ues8r;OA+q40qtohnfv_TGozh3)k2m zXor?QftwaT{%dko=8suuS8v$FsnT5E#CH3NwxuyM2q-e8{q1`WN>Ntk`V0@mK+yuK z$sRQGvM#q>){!CehCd*r&vIIICunv=D?~Htv(3};=-Us@{ykxNe8TD4{G?9l8kXX8##}4~SX8%UAqaQndV+ z=CjGXTranQl4G4e%NeP;>ymp~`M7OMN-Nr#4&)-tIwff6^E7TfCV!zDx`)*j`3I-LZN4|44yt!ueq2|^rR+Di zuLy37IsE-K_cjsVxh_Hs3^m4r2HW3MXq5-OI1K91Z-=)W`R`n?3Wv!!F-I!!AGnHk(g;ept}!c->R;kpcr-!)$nu zlHW*#MP`izi?FzV=9zp~2pt z<;+^i<1)`d-P71;_qPiI7{rtPOs_@UU6bZqKnV@eB<2nmA@e7wCw9Mk(&G zBrxo-g!_x3_F&T@zt3sr4O@TYzPYWR{$J021*{J$8_`#HD)3W9>tApXZC7MUJNXN= zp7mMe!G)_2Tk|sH!6%^X92VNz3JPAlvh6Fw_FQPGaWIj zJA6&qK`m{?{RP&?nzFC2TdVZ5j)CDpZ)Zc~qT@}BAC}Lp;b6#{7+(O2G6n{X91WYj zmsk=KUc%P_T~~C?S=I5(5>!VOOfJ&{@{!RKi@2gcMYA4#wmiO4{QtU>3)eo1FVoz0R)+ER zI-b`T#OM5r4%fT|8p&gL|5}wPZ~IsG|DkoyRhizkZ)*SW!BB4gsk2bT{lCFm&mR0we;+qZ+Vhf*qx@EGhY4Rg&a8>^`MPfDv%m7`VUvybzIt=k zqjdUYz6l#n>-5Nd>FFx?)f&Ro_Fj15k4rBYR+Kf)`_B+kvgXEuYf~pF^|J1nYALzQ zviptJR7nk{;wV_xI)@BvGn#1tUFZ;aI2Byn%YTgGbIceMAg*7rB&|8> z`l%$w`)RYLm)$?FyI*O)`XZIsO1|IU?gw5oI(stW%IxpI4Y#K0-hH>_KhuGoNN#M?h|6kY(YtP=etdb`{o{q}wmqCM-Bk7EZPhQg z%{?{kw@s7JHa~az%|R_$ZL`k&UvAo>3=Hbd95c3;l&|3yX)SnXJoK2 zbvm$T>hIdQ=Yua#iOFYeV0>_g6S}y>fz|YOz4xTBHYUAW(-ZIC%H2@o8abT8 zOqC_Z`}(antl7rtk=}Ogb?lw@CkJ|6GM~@9U-hi@^oVPJa!gWxGG0ra7hJmG$k%I5 zObiEJ3Nt-3z4P|93B&i;liTW_w}&tsSSXI|GbmD%h5i2bs?I<-t9cxzGIM4mO5 z3)h%?F39yVTXvm+p}?)B;b)*cf9b9I$xq6j+i^2obApHEg*hoJZXUaF&06e3@iR+H zKmW%2g?>jj6~qO2U9xYjHP7|5oLsxvRQkEFvwFhXEVIt+|EvrTWH=c=E5G~xHE&y9 z*&-)~4PxhBK{CsSwybUc)jZW1c$R0!IfWh$ezCnQVzPbsrZw~DOV{mwW@CO*?zQO2 zCHa2aIVFD-J~mmN#`t$Dg8>6Wx);Zc_lD+7c*iyqhLZ)RT|^7&TjWzp;F85ri+DkkhZ`gh;G^vB;$IZHD{2*V193gzIe?S^62 zA|Fz`jB5D)^c8D~R({}}_36&1+uK#op8CFvPt?9<>69(m^^OmnctzVe-!DXIt08y(%xG)?2T+xbaa`(N)t-sccRLhS$n0XWrj^|Js*p?_Ev?<^#77 zxpBtxlr=XP?yUabDsQGPc}#W7|DW-G&YGV0ZCLAW3q@|UFI%%?{tnHLb_cl5ex9@N z(aZN)-~ia$((v=r-MSS;bGGU3yv2oT=!%;Qrm4*RqhB*!|L{K3!;@=bPhQgdz4PJr zsV0BbOr;yD-|pYwb$CjulAG#vv!%=o8;YC`sGPJoXDRdAhimWNtjDsf4POxnvS7^( zgD@Gz`afkn;woLQ4s zCNV@va8F~ql32s{mrrQF`r;`|>a)JTy*=sJyi4JwYa|%nbsaEUbJ0ZIG@bL!wrhe6 z40_!HAD-^Azf!s1Ja%%gJ{Lp6R2Jv~6%VFf1vBG)>P4pF)Ci?VU7OHz?R@G@st@@Iu{d(3siP_5R~oP}#9&DyRSf6+nA7&C<=1PSgp@nK$|I7m**b&wW1agLwMK z-7QBIn#zmTSQIQ$c{!`t$7LM(%hU34AXr%eiYr2eYI!*QkCt|j0p@8+VI@% zdU;QaSoX^|uM>Trsa~+KX|2m$DZ0x)8R@Yl&hSw!)=9u09g_VPl;)AW$Hhq%Xwc!QTPZ#nsteFWiAMD*l3m?U; z-KMGeEuk=NnWbf)_l@rss>Nq-IqqAf>3Lso;r-rg6DEi6R*YsgSQC79YszKQOy2d3 z3=Q`=7}sBqUHa|5%1&_Rn+387Wa0sBsby8iUx}_LWLu_k`1yhN7U8)%PhU?v@c#L- z`$99H|Br*^C@OI8yaOgHAKkKA??}MMn#*GIwIdd5o{acdQ@7W2FB=2H zzE*(`KY#C7|9M|&?#Zji_KGpAnG1Jd)53cJ|5dy%@ZY;MJ@Ni5-o`x(V7c+k9*g2h z8y{IN-@ch8EOX5rm3^SO8HRl`1wQinHNcYTui_V!jP?}H-V$8%=Y&vkmX!Oyh4+Qj$dvht5y3=H?3 zIeysOl|7bqKG*Keopi9!pn^q7=F|_9eDn{F8+P(uAM^cOby--dZ0_r>@)q0LU>X# zlb^Jo@hxRkwtTM<@B+GomaUecibGD^Do2OFeROI-8I@F{ET=R2RYubkgL>)Eb_ zw)1@>md|>--?M0M?rJ%H28L^H96xMq_=4rMeYy7D>||m*u(aSBw3RkLWV7ei6i&WF z@-v^QUNP?RzWv^&`_H_tZJICVAKF(dymr-}2@5~T-M_a^C}L^y+`lh8ryVri`_Pnu z;lpLS_J;re`u!^_)>H)kXHtBS{(UN_&35?QbQXpJ&6-fiBsGKm%CzoT-{SX~oIm+- z<=yWV=R#*Y{sgu4Bc+j%c))9om428IWwwRucpOm?>4+pXRo&%3-VQ}44W zTZ1>eGO}NoCZX+VweV2)=hPeJ64NhOE?-!k_2caV0rp~i_qWe9)R1ddY!Oz|EFc)qkpS{yrLS{T%G+)bq*+u^UqGR+qX{B zTRZEzp6~vpKdP6^o0a>y^H^oX>WxVZ6}QdT#WFHH=;dIXKkfJ5fVUCbuO~S$6nM`0 z2~GX#GTLmLS~gzGJaskHft#-dRxE;1w{%p>~yT?F1sXeBO55Ak9Ke^m_?)87q zR>jICF)@fc!`kb00dF5HbGY_%*0ZH|%PX>ehJLD6^13wj`G)n=a{aCvsF{lM)pKv~ zb3U4VT?iDbD_l8#)Yeu>7@sYbyK@JeJD0*6G4dupU;9G6l>S%SE&I9i>355BDy$xOD%EuI#(_x!^9w-Rmt#RO0L_U1hA{SvpE4kyfNG~7jF;!ETDz_`JNdll z%*o(B70>gJO`A-9mz}-z>9*&eqG!)eE!=zWKF^v<0hRCn=e@oq%D`~X`LfFYZ|kqm zYS5NkZaH7>)t+yFklJP_ImT~*g0ZxE96-*=K<+oQX_pD+Eg={Z^G^(^xA`;|Y8 z-rU}LvTB=v)7@=9Q!*zrUVCnF&6{Dn@5yc8vhV%VV&M$}A8!9Hk(lh&pO?1|T>c5c z`YrMS#uKhidD^}U*0ox9>&Kbv;Ew(qP)GltL&W;zqequdNqWGt=1M@}`TgJG85k<+ z=Q|&$|9{+$-|0a9v%L8H8<*bt{b6U&o2U&61<;WVjLv&&Z4X6kJ>$LkJ*c;@Qs?hB zdFj+G+0!4acd(hhBrW6oPqu5Bvw}+}oCGzI80NGr^Ze(_@x%A7Y@62cov&t>ysg|H z#&Dot5a!nRCcdT4B71vn^OODBepxGXu3|3ba}p?w>O_S6Q*fSo6!Xs4wgcdQ(@!9O>u$bjpg8|JJ9^nl5n0KreUy zXPr;gTC+B_+_m5S=hqeIziLI#r6ZOnAGQ5g8_ol2mk2Af{4ukuTXp&0Y?bZS&C?hj z1aZPT>E%{^rOSS)d*0SL=uvm(kH`;OJJUa5=PrE|_4VA9#`*hOuIER~_Ww)LGS+K$ zo{?K~Ibb7W#r9BDJ_d&6FDzO9tc=QjyS>83@8|pf#qpzjmK5y|K1ot;^n?{^_~bq;;`&m*@Xy-S;lSaLe+I!q+k- zCeI3YzAg>w&&*k+%2HEXbsxaR-!_UG1f{>Y18&iJG1_A*0TK?c2Pu;Qzxy>Q)a zrQ4=o`%2gCbn zcVW`4ExBG#)Tg`MKhL|r|8UIK#+mE0PZgiezd!B7p98N~O5Tb-Xa27tG56V(y=7NH zHO+HpP#f^=>pMAHeNW~oGw?7>_kk5*`wkmi;Z7+PpR-V6+0X44-hV9lHa~XHq$Szj zztmn@H^x_Jf3^wdeVh5ewbUw1MrDG^?zKl*7#Pl-EavzDYGK-SR2*E{-tgRVr~Q@6 zjM~lFyqv5J-0-om`x$edUAe<{HU2`v|I9cit-~{H!uVEy5LJD7>e7ebJ6~R}Gp?vM zJ-q*<&>Qw^>1!-pmTI1y%9g;uU}5de@gqw3L-`H+zM0Fc&Tq(HulK^6iQxf1JbcYp z$)0!>E^}hmv**+9KekwYsZMjBWAL=|ao6?ME^s}{5>mdVVxQ*DH^(X?HYXqDUbEUa z+k=CFVb03uY6*%D@(Z`G|1Nbmj+=q`z*2bAH6Jvzk(ryg#`2^AV%*7oD=0k|TUEb& zki_e}*K|{M_XW8%7fjTXkAiBSsh|LvDez(Y?)4%J_ey-tvVSjPVEB;-%9Ehn_o25h z`L4sYNa(;5kN;Qn4v7PLzJ!a zGFQJek9p6!g^!{xnW@f>14aBb2aX@F-|;7B-Oatr#lXw}FLm;bLe?bfL`p^Z-?h^$cK^FMuvs5E*OKF5jUM_&B%uNoH_co=lxeOBo!xq+uM!?v7*l$2|K&iYWQ>Un+I zm)uL+T^I15yL#Cw+B;ufbIm1#tFmV{-3ARq9Jr;U_#oT&!2aU>@~dQ?XI)~fI6*m0pb3QtC ziOTL?P_t`?$a%#FphohK3x8NmoeuOL*F5eOFH*C^Xe%#61-!EvAGrCidF5QUV?S3u z{cdqa@|flF&7$4QYWV)>y)V^dsyMLd*@n(ZF8{=@y^JW--T6v-Z3qKHLElLBcJnlbhIDu=iH0&qE?x4s(c#6MKf#CJ8@&8sE4oyr_Or;3-0lfHAC~ut zem_%|YtnZZG%i)Ru3WZa?^Q2W28QV`c5?nGaykGS4akiy+6qej^WddQIFBiFr0+h< z313rhY){MR5udX3=Jsl?zhy%E517w*ma@iT&%s+PuS@1^@@ZR{vK^$k!MoH`@qy*Z zzYEX(|M+c{>1JMrAL?*tsz0kd7qHQF?e9|w|G~-WSFMccpLso#N}gK2xxLlPwDEm- z@eP+rU%FBfre^WAW_lG}b3vRzX=Pb?eU_RWH^H-sI0W-=MA&`X7q>9*4Y*SgNv?Edi9ACd{~d?TRo1!-LZT zAC}wLT&v#qanf}j#`|wyx6Wp5U~IS#F97WWH&5I+1vEv}cd~F+up##`ZZFSY+m_UG z{XKP-aeeNJ9nZ?e3_%UXtBr=cd$+PMFhuAmK6riAjPbtwt3UJ2YA5f@UM0iLU?IN_ zIwAPL{|Zma+0S!+w_CP5{`h`(>XQ7)vGJcCu6m-sTg`m-BwzJE+-m%5r3@Rs#WOtU2bB$=q%o&S%=joxqt@Y12(3t&h|F5zc`PTfnm*M zDNwU^t?6ZViIcmMA@&uF%uJFV0h5KR+ptFekEv_7L=iWFwcV?8-753#oZGpZfkk|GQ0Uz zb^p6re|BXT?bW=w<>>Tf2X;$o@y&U$b=F}m-pg}#K6*3j_1e|y3=9v>uhnF!*}h(w z;a={oEug`w1NF}`bwFNaVEEHGt5N5k+x00iUsbo?R;%BcSF}5~=<4(n`x%!fNlc!V zKKtF4Z+Ds2FZuRh7I4>$TT{75U0S})8{U}e+G3O26c{>*1C|Gxj( zvh>L+?VWe0{VBZ;_3YcZOnz4iS5~ zZC%f2uk-cVXmRM)nU%L0)_{hse#m)q{P?9ayW#z}Qn@=OOP~CDwIxoT;Xz4-5_G@T ze&Zg|V3C^5li=y+dhF!czLR~!l`gZ*nXP#;U?by>>o+)8oA^Zr9hmxN+ci+s{I)S? zoF8`L>r#P&wG1E5hGx%GW%#fhULlodZCmkCRP`l1?OgZG+wQyW*Cf9QycWfeBMdiA zUy{9c_6E23?A2AJsynSV^8RLEI8bS^UEo9Ej87G7KD!<~yETHJ;luM7O^ELgh#%8j z8FAvodlS{0Wvb@4C+&~X_1(XF-xB+^wTTS&Z#Sl8=zFHObF8_v(N8gSQp)zsBsOja zh7XI+X|lwu1`R})$8Jq#WO#o3x;4ba53P>Bwyz4BDEL)|^gmWKEI&Qp`?F8t$W*mK}2w8vKSa0TO!(y2?d!8N(3x;az8-rRlWiHu<@ zpOt1`o{|%Df{}q?{gYyjAMZf}lYOGgm+XD;(c&qH*XG4M9o$o6h=(^D{f||i)A|4V z@~la!Z*HsAPM)Gv!S-Qk^3iQSm+8#TYWymx^={(+dnSdR>=|ofy>1Ckw2qd(L@jdhdQB^h38PjX{5fO_d z-e0%Tlk-6|Z?IALn%VDfWwkSDS^0gvHc@5gy(k|BhKB8hD-|Ey)-IG|cyQB3oxeZX z?%nY_^3UV{yI?YHbJZ5Da{uO5-8SIyR+qukq31e91iXH0vvc0WxA2Bc- zkluAf;KSQ>mG9#j87k8I4^P?scgF9(LVxD|OZc!D)(lF?OnDMnnf3GSZq*No+Cm3j zOK7n*>|VCy#G8Y^&Yax%XzOZFXLdoGHy7jdNq1s)UT13XHtzX+>D_Mm&xQ6+EcX1F zI}v8ql01diB2%Btm#VYwoyd^C=-GkJb9O-yOTmLoTVLnB-X*}mu;Ou$(}CT-vyT~9 zFhuN4oK^h)%7^Oz2G1UT{JmcV)cOGhe1lH>zSvp%hxhHBAaP)J^%|R;MftfZt){DN zccg94Tm>4w+mSO}fN9^}Zw_({*D_{J_HQ@*-fk%WJy}lf*q=9-V_>5V9z|Y=iSB4?hr&a0AP09_v5N()8T* z&GO4_&p%9adNTc%b>)7ZTf1a~m-Ext*C1ta-!%!QefzSKv!og3^cT)4E{|Z^FaJHc z&-ti+HN0gfsbyxgZxy6@z+KHaXU(m{YE?6BBbFu~-J7~pC0x3jlY!yGzH4Gk|27oQ zXJuHPGwXScmCsIloyPlz5C4v6V+lohT z_d{D)-cNQioC`j??Wdoz&6-O#>d8m9rfe^L$jQJkr_Z#d;rF_f+u00k4d1^(!%Y9+ z{g*A@dEidF*!FU7ee-=y@6Gw&ML0R>A3QEi z&lk7Nn%d(J9(nr)8hM)--(YIZ_w}4~Qx5t%xZ&bdmLUzt8#vLKYGuQ2Uxg=j(j%UTQh)Vt6;BG#{oPEVyjQ6wtvo_5C1d0g##QVGd z&M1t^e)4_(&L&8}JxJnRf8)fD)EnEgg(t={O!~FZ*4Jo*-}=hCzb5&HuK|^cH!Y?M ze0Y0qfhxlfxyKgI->tm+{c+ui!W}&a-oJ-6Ned=Ev$QuA-7#fJJ=gENTa%QO84t*> zki2Ewz;rEJ;&pD`?cC5#W(J1mPp>#1SgLY8{M}ZD2ieOi&n-VZ<@ezk{l5*{+b>%$ z-_H)q@Oqa%T04uV{#@R6f1Th)rU$Q=&6hFzxVP%LTEx;sudK4@H)h}p{?D8ujvv2P z`6hR1F#MTZ=_e;QeZ%{|iD&L6uKBI-#Rs0^Chl80@#EP68dj|XG5r&L+T&!)^Tm_GAn`VLoP15?Pz=yYf3=$2ezktHtp0$oY`B>L^ ztLw1!9u3{bXHQz_H-c6%)kZ752H78$!;r_jt|4^R^PO3R9XU!w1(G4rs5Ix|Kccf!qeW<16od+j)1HFF0&YnY@=_+6S8KEVw7vu37$D^-cA5 zdE>B}H2Ay%!-3V($Eu_gs$Rx}dK=5Sav$y11`X|P@Ov-H^lrD>>~$;4Y#1td4_o}d z_U<>R3gh^*PaT$e7#hM&d_2#-HJGa;8L@O>(hqabvc0}985j;!nfiXp|6e-&|Lgtt zL#>~&zunI;r!jNh=a&Xg{~0`cTzBT-!h0Kd;@~}3h7Vm?{)eaEY%aA5%Mr@IJ*gKo z02Z zV<%4udL=8cVp$r)k1Fjy+zbqB?$_6>5@*o!%v;COz*tdVJgL21^}}vZU>^5;^nHrS z(v;nqMZ2><$Jf2QyzTt`->@Xjz_4eM=E;D<$3FMD{vVR+1$83i_S^;aKo}zS|2-V> zHX{7CS?uGTybSLj7tSc!E?>MqUaIbR*I~BGNX?VW@{5YEK8v^eaR;-oM{ovmix5knxuANhLv1qS5avBRxH@t6sltw*Owq&w|TO-RB7~&2FtoKm!^^^iH zoLi^5dtYZH$go>~f8X8s>SJEnA}fYH@T#A8e|viuKif|>)!OMX`M3X6U4A-!_IJzu zyH`Pi4(zy<_cs0tOX9zl;dPho!QE>rj0_A3f8W_%tfZ@Y%bk<%PrkIxx9ql>d|B+jr`x>!9!$}LwO$!MOm5Sh`Mk=y^w+jq3mdwQZG6|a ze=azau~x{uGS#~GW|zcmHiu0q)$(%F%I^O@{3-ZjHp@Q8V6Sbn)wb_8`~P&h-CIt+ zctoW9@N|B9A@2H|duk#Np3A;|>*;@aN=`K>MJ3#QXV*LPl_Um*?{9xjyh7vz)0V))bS!q@IzX;p=VrSGHSje)IkH?#pZz#vg^3 zZJu9FJoPv6%<;c74j=w;Z@*ByhUUv%PpWP|yFOb_K5y5Y-@ySO-+_&8m~Rl0^Tub= zKFjZKwGPOy+&gVf@@-bo_1rTjJq~yu_d4yl9d|-5yjk!xecf+~e(^22lkaXj*&aK6 z|G!JAxr;4eeOm^GxYwyTe0})lxysa2@RnY zu%LYK-o*3Iyh+QZI_QfAZGkx7%`W9os8*z*1tl zDUFB~`7ah%ZmV6Hk};`qs#VyXDf`}nrfFlU#{d3NPa zU&Y>ypvLp-?;j%aFJ1Z?y8DVGQ@~k+bKbk(*PXdrcjj?G;UPJFE!CSPxq0Qeb$>5B zt4a|P^RV!Y$yMpCCA*8~vwpaS+JHO7 z|KjJWNt4!juiKtmxA*0zhs%tmA5TTpSAQCkkM=If4Zd_kmw9!_<~b?bbAuoag1^6y z?^?Lww)RDthU;dq+EmBBc(41Xn&xe}n{J!^-0=F-_4r*9?H|ozQo;F!fq|iBy``k~ zJJq*u=QM_b(vgKv!gA1P(hi35_Jy}L?%I~}I*$86s12wLPk#5^`@{CM+1C2mr;5() zzPt73?RLG|=YPVR5s9(f%C9&p&-T@=E_UWslE-$&bIzk6rVeAW+Z+cMAntvds13AY=zx1Zv_Rq5z?A65%Kb^G!~q(U5F zB&c49o!kLlp{=%HAu|KR4wnDF-$i__*lxX1rorC$?8)VaXFwX&{QSu!f96ethoJuU z*hhkoP8KeOWtI=J%Pb|ex0QXnRi8NZSY@Pt*3NsNMI;She}4(c&$?Z9dCBKHY!A#o z&#|%5OT7Pk`GfqkVP*T)sbucs_yejDv_DjTLX;2t4jWv%yYb5QP=5B1plV&{NJ#1I zXDJrfc3=NhpgM{91E@6&>qcwae}43O*0LvAm!BM7cQ!t6_m{ax-tR2jif~?^sJ6AY zW@fjVWW?gf5$_{vqqhVxGBB+E{$9TQ%*yX~o;{1|;M!pW>X&R_sk47~T&BJ1?CU*i zRBq|P)=MjG->{ED^27?yAD z7YSQgW_arBF-Xn&t^aG@wsqTcXFZDJj+hVcnf#ooZ72LZHTQPP_S{d2*PpK6UvklX zKYX^3f#Lp(h@E#9K*mXK{)_h7bo&My2Lr>J+m8)WrCzf({-e37l z#0SwX+5hMNo4Y5=Qjbs7y-~Ui_5VjpAZHaD1hI{tN~NhTh)~^E^{y z-c|`Qu-UCky?g&w?fh$h{_L1?FZAQ@U3!*2wdS$XGuFl=Ihf#FB9miR)q zxBD+FvEACw86m*Jz+l(hzI^MOH4EPt*>N#2%OBtLw(`f)hu{BYp3Q#xRAm3^*SmV0 zi!AwmezSTud-VzR{hzkOlEnl5h;38MPWF8BSm=4RS8F!BWaqjmTCvL+B^Veo?ms>~t9JG7?K>?ixAIoRf3vNutmXb~XS3h*FV~-a`iCz( zuX$5kE%*6pna_Jg&VLGsio?6d$u%Oibp6=4;cjvG+ zG_HSNdb8;N7qM@9>*F?u*(IEO|7y41ap(E7KTmj{f81xW`>!A0ksR1pdw=u0Qtpt) z3Y*wDO-k&e=YfgV{ z-udKx`z0^$tXd48;bu7Se#Z4(zN-r_{NrA`Du>}3Xgxy>o4vix(&w?P4UP5}UvGN) zFZ1l-%h4aoZ>!YZpSgO)C zlGjmTVqkb%U9qw{^JUEo<8N|#%>Qcl^ZvPKzdn*%e%_PsrLjdbe#Q7Z@4Mq;S)I^d z4&U~|@L+z#v|FlcPAX}dWZuj=zj*-%1H+cQyWcKV&wlO7!v5pB&h2^a_f7tsyDIMT zCph+cs?4O*g(tROH@qKnw(_2Qy*4Z<|LfdYpuYP3B*!%VSti$~2Bk{v?rA;_YNc)4 zqgS#Pwie)Th5ht-<<&)*%zuhuDLeYX_ou17efPgF_BQIfThCsXzdrfSf{*uLV=@d3 zf0V0pv!7dBnag@5>e{Z-^QR9QFfuUQ`hGe2?o!|Ds?R5L@O`j<3yY4r>|dfkYUA4$ zp8t8{`8S(qr{B(qdo-Q@*m~$d7DGdQ!p+IG>!WYZ%8_@RJWY4$>G{tWgL)-f-ajqX zwSHYC)pD#sLhUh2N7{=X&dt_yOU{7XAyl9~TJ8L3oY*OIoLoFbJo$*KF_4_oV9nxwdOwP5Qy~t!sYQZ~uMIR(Ga&o+M%Zp!DZclGC`k@0$&!*-6+4JIG z-8%MDd6&=Q+sqaBw#^19I=f2jr6GW5@`;#NHx9>R? zm#V%c<7Ut<6Hrmgz+l%nedoKY+h$)D*lu=V+5hM5*Z=Id-@EL?TeCX%=}X@4p40D~ zr(e5o@60=MKd(fJW7*c~B`+uW7*$_baw_st`N>KX(CovuyY}mEav!d`zWG~x##R3E z%^%)dUno79_^Q~J_h*su(>IOQKk^YFSARTc$4}EQom!F^!Kt%@01IR+K)fY{_p?8WS7e08&8X5KD{kH^S1O$o9rJ)B$p&dW}n~e z&Xqf>J38f@d#)w}gTw7@x|MTZ@7ua1$Z7Yxd0g=ge_G(d3r?lt|BzBaee%6mVxGVC zBy;T@Cu_+IOSJ2;gJx139@kYxO%h>i@Mk)3VNtEW-2CqN#+;b@rIvEP?#yYgsW(oW zwWo@+o((Cc0&m{3yrtZl7HX$fU>C891(bU}9}X%DyRI6}n2>Sl@aI{%>vwO@41|@j zzi%5ZZ?5F5XGIutKVrM>)ZOvH`dip_qq@>hKFt8N&EHmQ<-DqKk)XCr#+^;?BCqY5J}s~1_JYWA zf2ITVM-0AL%KyGI?|4nU@v`E-EKia3-vkB8ySMxo=ADWxlKIU88tb^QL;l^fOP^U9 z7W%&4_57(T!;kkbVHME-&u5pg%HCr{cq9Ie=d-o%_GE5xVAWkUPgNb<^HVSQ9`b$R z)$&+9b;g8@i+?}Q+LeC$-u8X3i)Q?a@vHs!xa`!&2YsCPkUCWHYodd8{x!Y1yh$ze z{G`(tlbIM89Dc{ey_T|Gzg%(OmIc1w{pWB0yB(IzpQfGp`C=h+#d{?080v4m%l|lG zsz{W{`qs@$y#3fu&jO{Bd2!p;MBm+h?d;9fxffQQ7h!mJDOF}Nq~zUx{o-S`4+lA* zYZw_A{v_Reb#B(Lh;2=7XIrb6Jcl=MJ|=3~zONG8-YB;BO!Tu;-VfF%z-y=)<735a zA2$AUg-(7lOh~yudFcjEx8M3(GVcf9@+!59dJIk`0XJ?~^2GX0&ezQde5$kZQh97& zyPf%S#ryaBX1aamj)KqlFic2^d(BjRGMd@o!n{|JMW96`;L<>EOL?`}*2b{ArUDG_ zc0Dopx^rGzO}+Kgk^*xU-OsBb$DuMXC~SSZKlXa+3sVN?ZY|~mwfCPcxXQ}Fka6ek zL^Lw3)i~H31&&wM!+)0&!hR6Mwql^!YKmMv;~A0t@3YPWaihKd9980?eKo(hn2dmjeAvQ zzM1GWd7ACb@4I|2eZF{0gMs0~zUR|-9XoeA(c}K_YfWNzZLgl4q!;_|{r}gK4%#sO zWBGgiALv?maDaR;)op#d|K+5M+t^H2mP}Kzl;;s{$J{+~zP_5w?co z8-@R|{xivIga$-|f39APitO$suXXAjyS36!7QWI2-K25$_s2R=Di>pD6FYl)+Vo0o z>-SYc*O~v>s6lt#GknN=`+MHf4O@z3SiUWAt)8?suis?);;s6ixGZn&o$Gx6X_Wv& zo7i3PbCXnleoND`<g2Mjw z+1vKMTM13i^PVg;V5pfB!@yjxw?6=?v%x<*^0k=famQYsEm`YsE1!LNW4W;(14F~H zzZKi3%quUJ^FGgGo z`mgN;1@GT48>Y-Fx6Ni~6SK9`zsVIZykqaK?Tr6w)L`xO4=;79H@z>t9Ur{@pLo=k zyy}-qFI_>E$`2N~_*ZdJR$?n-J-`G6(T%gPY4dxoF&rvgO zc)ZB@mZY+?ChdW+o^8uvFyCqgwoxE#sF ze8Bno(RbooGFNI(I+^&!29&K$-XGs>IraRuyYr4_EpUCk>v`q6-8**5v~SwnaQ>*i zC`@YJa{2SdUKO#UH08MTmL()e#b4{z#lB{ z&&g0Py8RH;(Fc}qT2tD+UZIIw)$q?Ap+S$(V4)_5wMe425V8`Psc9rOLtrLQJS zKIciBynMJZZ`zmI>7OqqGaZOOeio4hb)sW4*1w)~P)*Y$Q?tfr!TU*7+N12L)`@TtYAY%uh zs`Z%?1CMT1P2}dca>5L^;QPNAYPeqSTW+v<`o`%un#FRfH|3T-pWC0t2`VQ~9XogU z#&d(N%MRV|(}CxUt)(BVPrn3>TZXf@C!Z;GHIih18J}@=)3w~C z@qX8KgEQfu9aH9Bb!CuCRAhtdowa>Ur8lEExKg-Q>z~M2 zaE|?TET}0oZ{BMu>;B`4$?qSUWn4TQd{^h?F1`43$u}zxJb&6I0o9*zFKFfsZ=+0x zHnp>*OG7*-oxWHl&cJYCTk37&^`+m7+K!R_#pGml1~jnZoE)^7xwJT`>wq> zmnS3aY0$64SH>AjnHU(PzCZpOQ+4mF3Mgh`x1Bj1R(9{}6CsHeiMOEo7<_MkPtna` zklXs-Y4SIf?7MQAdhDyg4t^*1%5KXpy`3Bk&XeECbH_LMe0mEiA3s#?RE2vt?BGG9qkY8tgKMeM(&9r&!S1PI^H?M2$=Zs-#XtaW7JcrHKbXV%U zo%5#7aq_k+W(@It*LH!T)z&6AHNCfX`sIV5ihtjRzuUb(Jw2Ap7Y|qFO)K%-w_A{bE$b&M+``OtK5t4-F7aTS zwMA^(f3=f8GeDz*xwp5aM84X$bsZ@6efRgi8Tt4|`h+9QU6Rnnj0_HwryaU*??U-Y ztF?14EZVuwL+$Z}R4MQm%o{+oQ=$4z}jU zpmF0+{Ok}z!Ss|Zjf}plK-<$cgQ}JbJ5uj%UQ^1ioB6-B%+}_5>>U~P%`88x?nuCb z>1^b*U9Oi3Uo3KGyJaG-w^V+)opb&y1_p-Q-w*5bY~MfA*}|?{RTbMUFD!77c^}_p zxIa&AQ*GTHKQkxZVfMEa-5lZTkg~tLzf?Y|_WILBj1sd-{zqK@H(Mn>59G~%-O*}vqqjDye-10Zlk%N=)>g4|lRj_shqSm0?eFL>eSUY|u}hyDr1<^4x$X;{cpLhM z??;u70?fgZueYV&f4yzL+SmOTmel%BJLDS#?p~%B{ExVP!;&wyZ{OAhp5Rf=QqO(6 zXP!F8{3E*VEL1zg*%dkeeeX^4Z2Wd6JF(Yi(&>v*prUZ!^`&|YHO1Hdaj)G~zbac; zz8%~iS%2cJAynsuo}~s`%)iCHsdJqD?9jLS3*Q&bSyRXeik_dDXXAccyY%&mHFp%G z_>XI}k#FC$nc<(@{tT%82DLYy(+;scxOk1#Wc7wATJW^^d*>G$-UAnw?LPGFzRJ&U z$8;F?>1{s_)#V^Ot<*npqR+CxzxrD;?oK+y^k5FOo;&`0SNQF|_IrDIOW*GyPoIdyZ2)UFESe-_li4gC4{CvV-bwfGI|w*{e7b02{l#^)bA2W7dElV6`ib4Qi@kFoHc zR8zj#SLVkrLVdG_JkAGhL>$s?0a_wK_@|xA|+Fw08 zY2Ry`J8XNn;ldBi*ydY+CF|Mzy+lcEj#z-`TW+jX+Ig9 zRNvj(dz_`=J8WSV1H+FC*K++Iz6)1tw9U9QFGaJ)=fN7#yy6d*ck-|8w*1<6`l-ei zcHLe2pproU`o=Fd4fRKKjiA)N@Czv!E+E}Axnzd1;Y0o2_E zWxm++pyB=Y=ccXsoKJS2jwqKn@E&$900V>Fn$%iu#&B>;k7 zA>{fE%ih?&$sIgfUV!SXlGy3**D)P9@cZF)SbO3_qHc8RAM=@P3vDwl#%y<=rD7?+ zHW!qIZcpB$7k#tRT)ojY<7(~4WTs1H2da}mlVc#iGRTLeX5?S_$9;Cz^<7K9EPP)i z0nzsRXX44YA9=UW9tG7tr8m9gg?G%kbCcnH_e$7^M~z4Hq^%nmD_(8=@3i{aE?Y=p zvHZj3!$HtC%&vN!8b+g&<>tXJD;f45&xOa0;#zPCQ3&d|uDu<1%c~UJ(y(h>K7H4P zdp|Gi-rnd2X@~fO+97+4^Cm+xPy_$VQcXUF+nXBHKt1u3x09?G7#vPt)1ApJpSOG7 z@lBf>tbWh45n*fKU;IJ;!@nKA@R(V0>d*Tnu57bRufLs`CS?uU+yok1t@q`6pPT2m z$ne6V<=0KKA0{(xPv6W^QSSrl5`n_#!Qsg5DcU)2=j22T9zLQzdfmD=UlJz%s-U>e1 zG}f30Nr}r%tM6|0-DlZf+Rpfg8>zHNy*X)b!SC!XkO6n^he|JBYJgVBZF&E0<-4of z5?>VA?Ap-?9&#u-S#AzWituv{7-}?%6O+>?K}H;=Eh(5Y$A8)-MuvuOd(ULwj5J>k zuJ*p42Q^AAq)*tud{6T+XvG)E-9G}R9b))!q5NgeB&W&G4k^vt=Y4K*s4lqmbw2ys zq4sI(()o2AyPu_=KMl%zU!R;~tJv?O0n!V)zQ-BdCb135xVGs^?$Y^v&R0OQ)N6mg z1Xc2G3=*@x1l;&H8`>iICyG?WeT)K0Tvpf!n$ufSGzS((?Vy@~FM0l94IyUTUDa!5 ztHw^h6KA8wuqVFmE!0{D`D2^JiYIJ)%C@9w_oc$AZN0A z6XOp9-j6xbALji`*Me$%aCpY{U9Oi_zSpUDT>R|Nah78XPbZrAGB7l3`}=2$iY5=k zeAb4AuKw$zryXj)eMacPUPKLK*OFVGJ$a?kt-noax~=`3bNIuyfZ7&+zXV*rakKQ~ z*B6i2qP~0xG54PIKfa+$y0#`Z_!+HMbmkhKx}Q+}4DWBxThq#WU~w*2 z#O_TcnF|8(f+L!qAS`>IO}Ji6dE{QJB!LJuArY=nkZ zLwV-i$XEi?d@B~My=<~U-UsCNGq)XL;#sIm~J@1$Al!;|x zmPZ=q)yt{glv6$J>)Mr@jn+(8sht$aY+$l-(_eGXbL!noKwkK!TN(Rm-`2cykMzMa zQ1h;D`rH>BUnX{7{y}|MYxu$H81qJfJ@RH@^aJm z+d z?|4-PEVYtQ z1CQ8%o3iuTmS|h^X_Wkr5NELSiM?}+K_0%Ris6HOPPNhc{KWf}-rx2fJ@J11F}s&m zvzJ_0v~+{VGVdZW(86S??>}~>-G241YhC*N$P0@qZ+_Y(Vy9MM;@!|cEjT$Awidt> zG*k-?9J`&l|F_;PkNYn2u3#VcWraW7YiGUw=22|*?IUQ4@xm_o_tP$YUZ=iMJmccs z;D@VoJ@@UM32G&5{-FwMOU*wsZ+qC8|6G6d=Ieg^ZSDq|)!e3@{jg?t2Dp%GY(I42 zo<)h}&ugFonrmk#?eot&=X|r0pU-y}QkHFyb0 zA$VEht+MYsrra}(_20L7f$RD8+1Iw_&AK!1tk8qUU};czG_d_K`>=aWbyv5(z0Onq z3+t9{cpC#+B>qA2PYF1Uh*dU<-L)5uyQT8;U740G|AX^St_y&)f)*1x{MK&-C9^jt z)js~tpIOCw;KHKZ`rpA%!83I=O#J$#;sMK7p10Vsy-_Tbt)YG2>B6FX=9(CIZT>;< z&B;Bgr@wih&QIO6Hn4X3m$Ll}JU<6nE1zcvt-Q^+y-odfkT}D>xFfL(TtVwNcIq+I zSn+|1Fws9su)z49;Xm!~^$qVgsVVKRU+3A)0~+0Noqx;^w0{1=9{G3EF6~}9dvp7= z1+M)5*)Mf|ep6!LsmVb&!w-?xVxN3pZ*uc*Q`*_=yMJu5CozJCqING|`ew~K?{(^+ z=HqWr^KsXc+p|}`vuW6mSbI~Wdi!7Y?)Q7%-F#B(-MjagU&h5v*XEU5f>#Foo;UBc zQ}y)66ZU-u4Z7E_tM*Bd+QoC~NFzUND-{Dn*PBZ2Wq-q8lu!KeH|yBGZrh-Y%P|(w zyY(#Pb3k)Yxz(}Ta-w4yemq`#)nllc^Xtp4Bj6F*g6&H_N$y_FU|{m{-Nto)%{}++6`aj%X9sE|gJbod%YWq$ zyH%Iop7>|o!uLjBPZkQ@Xb#gYbu|L_VErHdTlp?@H)sVK2dFbR@3mg;F1?+5JI*r7 z&-a8i-~V%i%0m5x_e=c~-}Trpcs*(5dn3M+i7zgl{Ofc%jvF)|R0Q4zaO=Cx^}7|Z z=bL{^XI%Lk9LxM6Q6^~$gD$+U)lh$MpZaHg-Tj}prBD7*8(t^V zt@;vMbOluMnY{a$dUoGc+ifMqm;Q0WJI*lX8o&lm z9&CpeZP`kne)pA}yzy7+n`}GB14hqDx&GG4(8>|1EEyFIS!V{z)ur!$ME~^V!=DB^Fher894VpVZax?5*dt zuh%c+r+W09tmTIv z1X^TV`I~%KNAkGdVH962;M|}4J@(r6Yw`E`_jxaSsQaaQLj&udlhf9I+p`&T_|1aC z*W1$LUgzD&(~Ik97Sp{w@A>sz3?D$tMsnem>jURo-%{f4AKLeM+MC@c-dBIhez5)Y z74^Ai^goD4am~KRA3Xn}GaG2|pl%0v`o85Gq_jw$dq2kIX~VV|u)&=gj^Fdn+^%P> z`<`<&xBpLZ>~x>M(TCrgl)OxR+~DM$sD1V40?^<`#{Ij=cb`UIR|N&prN7B{SLepE zG&FvL8??u}`ks{R^mwQJr%khq&vmmOCf96N2dz6gy(cy9)vY7zXB}x|gRhVJa5d+5bU}9Hvv8UfxUn)Oo zvZu9nx!p^viSZBq&IDDLbACy*GB7y2{`WZ#)IJmh&8pe!E`46RQ*<)(t>jJ6CT&34 z{mGTTRX^;0r>P_KkpIQ*_}jJ17kcYIVcS#udtbV4jm@K?E1)Arw!HrbnlVm%QDg-v zR$irnn~P_K7TChG%AeG4DyL_GvafjO{qm*WMtu9*>fAfyA2iS0zUS}pWhZ_rfQo`G z@4teU);%*h(krqh{r+Uo$aWEEI3yRIEFYZTyuWqhJ*NHD({{1{``HYti$#!qSZnfSGO(QGWAu_gn!^1_hHY} zxur9H`7FMzopJGRaV$fH#2KLlv4}7V{yp!^{w=@Hy^fRG_ULHeW{`YmMzw~u3TliVdImLQlw)IE-4KYj!P~ZGJ zJY|Xeq<_I*Zfn;)U+NWBda16fF8Zi`!Qx*Q% z>v~$8a1wUM1%r9QEWOD>zaI+y6O);B!hFSQ{mZrCzEf|tsW$8nsfzjwzUM!m*7fAg>H7D=7If23gY<_gJ@L1;>!h<& zH#h{JVmt7?{84{?LTu?haV%y`)GZxdLvukQT%wzTbQYCdse9!cp>+e(#e1csK#gLXYOK)MmdC$vs zZ-z59A)%XA*|YBt&8qHY=z4Ly==!ZYS69w`&cMK+bLV(%{Ff^KY)x*Ri|@8RS($q> z-+%R@>&zAW^FWhEApfN$ol0GmXz%y`pT2QWtlIBw^B3I@6J!gxV>0z`?VTB*S)w}) z)01~*tj}C^r}}!6>n&NX``%$F?zwmI`o{e5Zv{2~{9vi@r2c{5ui7@XC)?b)?ZL&s zpmTrcgF{a)yB%ZlHt`GQV^wFkf8X@zI@S;KY%HNEQN+Y=dc{ilNyQI4I`@Z%pIo)` z$iCH9E45DQADC0Zy8QpO(y6;a*Qzn-+-PD4k2MX=+N*zH&DZ3e*|vAC7V@z$Fl;E<|9$hhy@N{pnpAx-g<)lB^yS2(}8@@j|2_4LP!2ZkX$J;hdR(8=(ysK1lKdb)A72VGe zo-8qWV*YuCJGMqEtv!FJga>B)$^ z|5f!%?kla;&-VUTVEDIk-G}@)hxf|!f-?Uy!+Ty&*?n!*%1dT-jtmS9slPY8 z4=yS#-o3IrmRsZb(}28R`IG)+YqvA!wS#u3gUmW`Ut;+ZX}yj4=4zK!e$Jh|>z7Pc z?6SXMQxmuoI(HQ{r))9=wOn^F?tg#UwK{aF&APqW2Zi3opVqw<68h8d*TTne;r~k$a(j72Ll7c>2jOt-QUc<`(|-hZt&Qh zyz?;2yIWT8R1WCEt`%Z1&-c2-AHV2++(&Ee&`H}oZ~0%$&t9x>;OxuxqWxz>r`p`P zdUPE-1H%WoU3F&+rf@fG2bU#ryEnerb+$~ol{v3_w;afO3=9R6_x088eh4ZfZ(rZ| z{?t8(hS}FeZRR{)x7HUleJ}R@@VYxk&bct~cyG0zvUmEQU8VYrdEKDQ2r^&?=i@0Q zhgE;sire(g%MT7exoW4&eo(S}D9RunJZay9L|Ojt;L_yu_acq&i>_V?m3!w>y}?EQ zc+un|uXmk#c5g4s4qaHmmN0Q2%l_b9hBHm}Zw?AQ`RekN`=P-{7q~L~^NIiQpsyEX z?GDD}#XB?JC*D=L_CKL;nWp8QY1TdoZxt9Hu)&Ie2G<$OmPqRh*X>R`rSW6#R4vcj zDsPv+*dF?a=|k_XqUuY*p(lTVu2y2ux&6^3MW-U^(dA>+VmcT9ZGE%%$#nMbLJz)y ziY|~38(y2lHZ4FT%dHQ@8{S|4`n2w`d3o_nj0k zf7iR=_TzKV>E)Pq&6msdH|E=`Ou8?*a?-X{|B_FwZ{TWpZ|duL(%4S!-QOxk28Pq& zMz^B3hQ145R(42euMGD+?^#;8uj82R$iZ^0K{Pn9zr8({GD~HDaZvbtv%4nKGxvw8 z&SH9S{M9MGNhg2Za|;4z5tZk8I%Rv0Z_QzymLaihj^9(UylbzQ-Pp?T?8s#3l!bxx z<1eYZ^38o*)&G6`zDg^ycGkPyS*xy8#WU1x%G21cxp(F2JF``oK_%t;-*&3!BWrF| zoNrRSwUa+4vbNxOql{(J4k*S2{n z+8bPUC+~c@KQ#1d_;;ZPZg4|fYh{0zJ^j}Hp%+vgovr?F%5Y~>;+!tOrB&ej)XX1L zXl>Wny>InpGd|H4RV_(|`&&bkZnEtNgr%Sd%cYKK{;in#h#H97!&xsK(TXn?%X8|3U-vPb35m~};4^EN(Nr!5hKN1<`^z;e zogSAxUZ5JWsP^E?{hpt0FaE>3BlcYb#IOV9GnXxqUS9A2L$>$F+^OrE?=SO+EKlSHh|J{!dKe~>Sfg#}5d)CE!R~c;;p7v_#gS|`Et+L6vPiU=3<)#s{@h#oWcIWS{%M)@FS=t_dwqI6`3vuk+;`9eQXGzH zzO?uK4ysT1^Pfv!xjOyjzSYaT)_!MAIJhj+%YNVc`wC2K3=GrK%5}akx@r=7t(++# zV$r7WldQhy#=fayC{}?6QG>LJ>dSWhi}~vz1wc(Fs3FN<{$%gt`{!K_FfbgLG>21$J+u+oeeajwA8rM>5g$w6+@5-S{z3C!R^MVJ`xp=K&c0mS1rFM# zzpp23e4sd?pI^)(v6FB8;ioM(o$4y5>}A{`3>jKF;8e?5H@R+x*SnJsq_2c-%F?^| zJ~ml~jiKh6=$$G5bit0;`g_Og?zsHjf((a+YU7kO7kW*NpP!P?@U8_Et_%zt1i*Rz z7bwp^6Fq-t*D9~DuhSoFzx0RcfP7D|QQ!N&;eRHAT(l$Y_w}NS_g1YfzJBfKI`%1> z^(7eA-_m-g!T^iu9Z{D{W=<&QtXm#=%xL?Y*AGBRnRP$IhwZ;4?ay~KFfue`oAjOB z`QY@m$uIYB@OWN#W~Fwy{>_{x`x!bxMK8!n>yDSqd~>_LtM2#3miv(_Cxy=40%{X| z*V7o1|IJ%+TiwQ=?n%3Ay|oc<`g{LdG)0| z$iE5-<&E!G`K|K$#LZxT%D~Tcc~C9CpaBCzfiB-p=U_m}9R!z}gdy)K!>FN(jc#js#bc8#78C_@#0 zd$`p5r1{$8TNxy#y;%C-%YBufx!H4B9~i@Y_QxmqQtx~<-JZ)=eYfpqjX%Cm`}bvr z2eCdoZH!};K^`&)*KaSKjXzWM&Pm5=UJFwB@=x98t;b+AF|%k$1ee2C57z3~&5cS(h8*SwqG zPB&L`9=Hx`>3?v$Jf&p*vfpKgr?7s}>JAD$xoRKF{?*I8a$m79oQaFin{dWo6_k9Q zJ^EkwzAG+&_r&D~g!alDPrANp(x2>XU)BfN^EQAIAp^sMe4m{zntzwSDCZP@C5F^h zWQdt+c)DsIB$zkU>x#eKS~~T&b+C0}=ePEKH@42&_NkZs!G2iv{-FMc)wj1|MicW4 zS1nn)@5sK~VoOmuh8=!~H_Z9*-5BJv5BJX1?reQ~+&8;dOe{lU*`Bhee8Lqw^1EWW zA4I{-Q8)=siFLaTXD)l%s&Rb{ya){4Hkt82kj~c)qF}?~%Gwo^cc$t4^Dp}ks^?Gp z{`Z|!Z+q$v!@t?q$`H?)XU>}R?(&rTc{7Y&)ut~+G|w4y!nPmaJTSi#lvlrhcz8i{ z@4d%SvzWZM)a#Z{atKug`Rm_-xq@JG8fF`)zHDFeU*zw%E>Kq8a&|hn4RpX)VwuiA z1u>9&0&ZOrGnW_cc2a#y|S=wt!v15YeXja`_VZ zWhIBFB<}I~n`(D!m)B*L+_`IJo$`Fg;IOO6dF8#ipb|{uVdeehPhS1FyiBi5cfp+L z*CBn@wMTd#WM7_9WAO!+AlF?71@_Djw|h^Tc!H`My@mO=RdR!mni()Wu=nw-cV;Y5 z0wtunef{l47vn-_-r@u`U!%9Ie62OR`nyoW;mi}C*PZ`YdSd5nBj3r;5}@I=p|7WT z9amku=Hh$hVXL$vuTBS-k-a}y8U7tI@H4M$=mt6T$ILi?=Z)F9?`B;QYf3C!rg?M! zwB6I!yq8hrzO$^@{Mq4k=iga8DUtj4{2x0k6gQh9;-V5(Y+iHIXL!K7OM3Rd-=?70 z_+b3y?~FQ)?S1?1&bYw|%0)(EHe1f_W!WM6*W&5pyc4H4p8sf)Ch@OsVhpqkeqc>W z@+JPuPw(@(D;8h9=6O5h|GY2U3?KYUSm!f|K(p7-#ZUf`-T^Q zIy?5!mC_r09?$qw_vUlq_2*wrmdG#LQ`&h;7IYvV14Bc(so(S;i{d;Cq9!S_d8o{n-ZZ7%}|d z-1YJ8WWIgJSM9WUZnHKU6i6E));}*&*R@?U`^YatopT00mA2El8|2>|-G89e`g^k7 zo-a3L+xN^nE?@UxC(MTVuU}1~n%lSVxE?e?j z#6?Gdrb)I3?H>)xn(OaAm-?^UZ#GPMBp+f(0$;?Rs zr~X@gaADzLV9+`H4&0YsSyZ3SWT11=`yfNb)v(TJP6Oxm%M+f*&j0&*Lb18n+@62; zVa4#Co1okSZmiw=+$~-o0P3|J*|+*vQIi$JftWAO2h)#hW&Tf5UI|L;5tE9|#dcr2 z+$_R6?Zutmm%oa>PddK!m-vkKVEbo3mx2=dR%zq283%6!Lyyg<&z?0Y&tq4ikNJ~W z{~b^JLHTHY^L?$Ye}xzh^n7JC_cty5I=y`%xQ~`_D2aVoxfm-MFxofK# z-X}{;ejYo2dh&eGcu&vFi=RH!gF65W3=ALGgD2JPI3hX!|LK|#&s%Dl_OAPLa}Vh= z6xi-+s`d=Ozd=0~6f!Zp`*-hq@pYTDCKqUU=guPESk>F5!EdS>((ppH@i2SFPIRvm$$T%GHpc z#}Z2!7{Zron|r9`PBoWb1TGcVoo%1K@5Rq~{rsf|S2Hes!{zsX?W8~7R5F?Oowrci zojkw)w_W??3G3!xYL>t*L+UmGw!c+0n3@%(PP-`5qN=bb8H zUOtZ-dH~n7BxrBu@0={wNuXl)!uFM`*Swj?#E|D>KW*>5?>711DlfaxW_tC_svY@3 z;e4B0mP#JeY%ku)P*JS@k9FVKozkBZucw#G6j||aj#{nj3N0WvF#MgdXOEbk){pGa zOJP^*eSU7$8s=ECDHP2bUe$U$n&ii-f{x*CZ@b313vd1aj5sMDLo*)wQyP|5s zJ)T54*jj+ijQ^wU{VMBrvg~jFJYnO5S)XEdf;QBG1`{1l&SufB*x;dmyojAM#Ix@1shbVmg+67+?c~4L@-0`awHK}3 zwv+80Xx$J40|WO3{`Y^y?<|9l7Tvc@;bTbHxJ;#X=iViee-GHc1Q)vNz8x=;XP>p} z)H6R&Q`!F8(REk1mCo9A<7tDW)toj^vW#z^bAIuI@A(|iKwo!f#*+ELof{HDp(9AE zf3PzAP*Yw0U(NG#vl>Ia8mI<+_Tt7=>&%yhmzQi(;p@KqHP}z}y=wMX{X4UY?Vla? zo`1LS#7mpBIcZxCRI$PenDBKaK84x)`fBT+s8}*IL|>XJ?KO3mS6#vX-|zqL2D?{} zZ@FUd!ReFV-eR%@=T1-y`1<0n+!4DH=X}~D{i*0pu}!aJTTwfY&O~S-{@~Qq9?d*Q za2@n_-K!-=mlzlx?EcDXzI1(^+uz@vpyW5B`}y=u7w?rRgXaZK)n=?&_2lKjy)4tx z=1jV~@BHV5=RcY(d7ZwcU>B@c)S#Wt^x^x;RViOHPrYBYGU#7u>6x1GDYO0UdzL67Fie-ZEEivDjF&uvITO4Vmf7MEUH3LB@3*;sgH z&7$V)0QJmSTDfz#_+HYgV`QjXweF7HC6&~9@4@M=TI%?c*Qe)h`I7NVU+2>6N{{%0 z#K(ni6&QDfJ+C{{KHYBj;|bUE&X_EBz1S)YnrUEQV2Igxu6^tNaMjhngqk?&7#U7! z@0_@0<*JZYx$h7&D=ojds=v(zCA8hnH-m52Rc{Joyq+X8`R>N^?XlAjXP&a?nR!v@ zg)hRXmo8sf=LGBjpVVhK@cU(ZQS{-k*6&NYA+62d`}C`9g&PuQep~<4&g5F@)UR_n z4;Z8)m!?{kw>av(pc${=sFz>x?9I#k!b+zu+v)Rrtyga?Gs6RY-p3&(J-PQ2{da+4 zOk-`zmhC%NU%qzjPGaVs)Ox7@x0jotK~mdt>Z`rW{@3|} zYO+5$`{lXZszWzLp7u-VEISVB#Vjk@p)XQo!CQIn>&^XqmUEY@7)LGHlNdVn&i&Y= z`^UegUV6X%o~Ugnq=JZ9sOcG=*Y7U~p27N3ZQfkL%+T=ua)0Xf>1)$I@o0jwdfl?? zp99`R^}kk|Wg9UsamJ@Az3&S@7QS5)|0D9;-5LD5!AbG+giN>B6Su!xw|4X0n56q} zcX@v1zrLOox`{G;g?!Q1_OD^EkuozuMg|=paAR{z>BZB3RY5WH!FbMYL+69#x)xd2^Ke_6{^{CUI`z2!!S|P!oqWZv8?n0?GO`l0 zu+C5Ppt;Z=CWbrH);+kldG}18|9@wJlGBfi|K2avuG;&ynL%P&#{a0ii_2C`THag3 z`)_689+%&cLe|+n_P6E3?!fSqhj*QP{7dN1z5C`rC0Ad0w*VaJ4B;!}@BP;Q!4|q{ zmA?AjZD*hEXJEL~mO0BvWKG=cneRNsK`jCMOYb7|Ze`EXdcAw*z8uE;so@1oA7Z1I z|1)$pc$g;R=RB{x_S<^rbI$`mSSy$3&V9S=lE^KU;{KBs`2;lQ6#=b)nWTUl+w4ff#SH~Uj7wacwul>IGUc7yT#>k_%kU!RI; z$eHsAHS8~bcf6+J%elvUF87ED=EvL)sf;nNykqk7=|bP%e6KISQ`u$y&p#i8 zhflw;C|B=t-D)BCJ4_4))wMephOAtba_n!u5IA!F#`QUSeRGJuD5rDjboNg0&`sDb zw*R@vO|luEti?-1pC-mWFTDFC^Kwe<|9|J5-z|a$-!lF31OMe=gLk%{FEBAQd=LC| zVb;~(?+^Y`0~M(cs%!3)yRKJfXiL2%e`@Znu<%ebwc72{$!Bu-5n(r_M{`w-)BR_`AFRKh%wk~Jv%k=b%WhNJ)hkc+ zzRd-fg!ZKsy5eu|ZY>Ra`*lw?;7h*I1X(gr_H(;^^Hb~w3VC^x`e3ZVx zZFXVn#7@5DipdALKAu!5%sa7D{_{h43pw-Q`(viQQ{Vn7{%||(YTR{r*YJR-rfl$< zo z8lzAsrr3y>~Fgua5B=3^G^nMkxlmTA9%!bc*=EfOYNz!xuU1v-5Jkg zK~0C1(niyMTRzLbv$b^FY_rk zi*yAI-p0Rd*Ss6>F7;ud@~vjoTXWkM-IuJdoU*2{_E+Jl<98=Ox()^!bAU2Rh* z`sbc*V&V_!owK1ONarQPR?Y(q40}T3Hzee~Ub1T1$1_@>Qt;oI_UY?heBH*B5V7R% z!aME9R;~JUyE&!zr}XiZ@;9Fg?>{e)y7bjJYR2wDlnih<_~>0ZV-D_7|( zS<1k$V1lM+c!7r7?hVY@;1v1)Q<2X1MWvm&dFC4$Rd36lW<9Wan^#`Cg?e~e{hQBw zs-);YYKk@Qqsh=C#Bq-Uqi4zW#9 z5e$$aQ+unqr(LW2vp4eUT-+&N{O)vZMoq-(`kDRkQHifMDYGulx(!L{({GgT&by>j zu=l(BhEmAFi3eO?oV$*RtbPB9fniUe`IPE}wUbP^YtuwQW!`*Q|KzqNeYV?Yo#MAV zIQEwBDW8zXr1!nuVPyEAc6ka<@XoWP ztEF$agCiHxN?vxVDpg1x-gnd0x%J^4QX|giV5;Z8W3kccyLbBhyqh=6Wb0h^``*x& zhe2`jDL;m|pB(HA2c%1#Z^o9r?R^8T5Dw&8mp)yzcX{s~mT504q>Myjw%@elX!!Z@ z+}|1e`n6@p6_+9Kw@f1M-;VjPdFN_Kia!$*|6zAcXlUlD+nt&W3_lEiHCcZMGq-Sc0+j^Y zpFiHGUA1>D=Yb6#^Y7pF&UmF&uHDZ0p)7dP^xFCTp#ETiWln)xcEa{Gt0w*4?fvHW zj=W8=<|p6kp5LeK58a_@99}f*)~ZhaG6se{CoSUsO)ct%48%1=Z?4zC8ZW=(=|GeJnxu9k@Vl+;=+i&ml^>?Agf%lK->+=Nf!N%tjjvdo3XHF*7;c+J?MRdQ+NN9`Lm6Wb*5x_ z7&zD)BwvH)Y_A=+VPLqoLf_m&t+e)M`DsvQ-B2UXSL+p4-9KBp{$f+>E!oq)LjF_# z?3%jr<5A?|H-Q_q`1O51&lq96*D;aMOE2mf87jIpUvj-ujjc@Z1@*%lmj152FTOi0 zRQ2}O5A4%2%5}>1Be#}HrE}idg9wq?Ml(NIbHm$pPvcW(e$9gQ;nLP<@0cC$!^m(T z`fG4k-ji(GP5)+t(#*8i6TLIg92sox&($hA)%{I8NaRvHFpkds<|<>_Zw)$L+9e@g)uWCLr?1S z2}dkJDg|ooQ{7Jco3C9rsl9aa@zTl5eJ6k2`(Hjr3pV27^Od#yy?LpqE-QF3h^FO} z!(Z;(t241NG(7$BM<&(@G(P!x6RUSf5z~jcuCrZl%Kx@`-!2o^KF3P9?)f6GqWb#I zT6z1{{rleEhb@~qz~k%bRp65|SG?SFZED_KP|1?{X-DR!So2IN`&-*RV1eTNcfyo4 znqhWgObj2~Y7a7JuTojP>(1A8Q$aDh?)F2Q6rG5;T=Tds37y~Cp=0AVZ)fp5p7I=C z;ei@vpj5t(WxxMywbj?&o4{)7$XDF&ujSWRvoJj9-L>$})>~@Jf@;AtNipl8on}pN zxf=}{C4X%#FZDbJ++jRkJO6N|$My3W2VWcu4K1oK@2uUr*LwIk07X!l{U;Al$ z_6%P-wKY_?kQ~9yA!|cXvjiU$>+A zy4+PZ>-0f=iLOE4SD4qm;cmzoZY%hxP8%{Aa7Zu2z@+R12&0j4$&( zT^AY}DrE>tj-VvB>RhV3=Kl_G#2yAOL+h6Yc>px5aA{lUty_zHIfM1sU7-WRheeLQ zw+VrSz5I3GZLg0-so76aH-m)z%$Hn#3~{C(8HE@c%q5Sl%<#A+HR-Mpf%ky6$8hOWjjH52^EQRz^9zPTMcg?AyP6?KodU%3Q z9TO?tna#+sfhTsS?Mu%|Q+Z45!Ijgq>^YP6>3?642U^tm?}E52*YEZ2-zUkhlwV$R zhqu!5o8`P?JkC33%-(;^By`*B^9S>1hi31cRCFhk5$yQ16b*~N=AFWz(BHi8!M($~ zyt3M_{V@Rb5oRoZK7C!rmhW3WE@JimQlzszBUrVvXvTqZNu;Kjs0~Nc{;=>+xof3z z*Qayt&%V5_()}HD>d82$XjW9L>aTbPhI^~DD>8hu{eSU;OM#z1D|EgWE?70Ged`3y zX&L`-iSNFa6>7cZt-J+%xNNuPWs}86XG({Kp8R`P^;_*9lb6@iOP;|CG3D5UvOl!H z>N7CphZOzFe>C%JI%q)Pz@9z(rg1mOU-Nx+YPXoq+1HgiR*q%63nv`dZc&;%uN+hu zEYCX;QIXqgUw-}C%{;x0@5}Bk*~oX&2VU|n0+qZ^DxdDQff_z(i`l)uCg4zM54KO! z`4OOZt2tE*+!na&b?M)9l)iJ<{hb-Fwfg5b-}jxo`x-~~y5`-w;NU*s^W`bu5C5W{ zCpZ}x@-K?>G~C|R<$i5GxI6IvedYD#Pagj$gRH7O-MXwa^y$NUdsRG*)Xx95ljpDP zTfXqcEy?<|>-2)(%U}1MXXg9v{p^UWCsLfyLB+I1`a2%)Te&)9Ujd{LTd3NrDC64E zz{v2R_ATF2Kla>LTCc4y%ITb&@+SWDUGI1A^Q$jDgQr9*f6t4_GCzz%C;k5I{pR-% z%|Bml=cvNVfdf;PXiEgIdGj80rTMv5^%)guy6&L%%lqdcA09VIa81jsmogHoS@=J- zIJ(>HdES|Ja6jX9zSx2pd5PY_Wo(T-?o{Hy*;@0hU{s*TYq-Nmi3wS1kZz3bB2clK8U3M3knXej4{7y zXL2)d)}5`}ZF^_k-tfj+4-)WGUvR(QkYB^i3Mzh^&acUxd!qg{sJ?TEJP)3y;Actz ztsG+5k-KV*m{@FI@~7Vm&%bZCI}RR+Uv#2(^{OZT)`1479`7q05ZMbq@~S z$yHv)!0;gV*vn0lo2E>Cx&OTzC|I7pi9cN{6R~xxXXgfo!xm2~^vd;b-qC-o(1>VY zfF^HvpIn25%;_ojmu>SqkqaAZ+_TwmdjIF89hwXb6|46>Xf!>UI*aE$IMD6yTd2jx zzgx0&`B|eywh!#z_B&s!_&UA)wa-PrzcZeLhc1K7)8<@mI^LT-`<2n%^2<*$FQ;9N z5^q@_`#cshU6kP1w(t%6v#H?nck#Lh%T8!@E)03^4|2Z!_4n=jGPZmN^-gbz&QX~c z^7H!T(j^%vW$&4uY38WyUj39+CVzCU7hZ?#NsQRA?m_v_RjV$A`1!IiJjmVE)P8No zKWlkVX8KWCXaD8sx=>dJ9`CKzQ+{9A5fwV~^~_wPW^d%_Sr?;@>4HKZ(i{6) zodHsNRHUmWcZE(q?I+K`@Wbt}iRfIft((+q!$5`ahhiE3r;GM}t)0B>TOq@=Wv`FV z`MvSR*KMyWpYC6tx5wwFEstfX^Tn^)|87Cs1Up;yZ@sVZ<2bD1c%LyNs6@EddOfH& z7Sp)yPQWUalc!i7+ys|1{a5>gckR1#`0KSV@exbTzdyS4&!->z-rq+V-aK{m{GYAc zR_a}@HTRuomK(PAtL=|Kg!!P-cV|rvD?`Kf7hHCm!>+2DrPhHR{}?i?8N=O>*jd(I z#8?ok?%&EUEP*I{yX58^h=|wt8-(PQdQeheP zUSN2^^*>&Jxfu>fe|6RqEl^zT#%NOxj?}v2pcSHpmzRC3WDtA))h0#a)ZQ8Pxpn7e zorO1k=e9?#HNCTI_qKCo#hta=U#s=zpZ%Z*cl;7i0lcLO+Vs`m^Lo<-1Ic}pLB+wp zox$d5IzJTl##(1^f}8CV947tw^(Fb<*5Alu4^w7$oQuy!6vOY?&osiu{pNm2-G6#{ z=@ENS@&0M%)|E+GS4F{*YX3R$I%rjgn;DaLh!I2HE3NOV>&2S;k~dj@`?=$Nu?6qT z-)u{=Z|bN}88q|NEZ(T_3)A-c=p87h80L_8d(W zOAJp7TXuPwu59ax=Zr0SC5r`^Zt>0Uu$ce(^wK+W^L5t!*5hYjc=>D7ZR6=EZ)cSGxvIG`HNy3e#zsKdlhyR^XJZeyX$1y z-IU!~mn<6i@5#biE7C81EqOBiXKVjX28NiG+S}D_S59hO81jA^DDLXcyxXb2EA3vL z`Yq;r%VQ6EK3X}cKKK8hn7jPRcJF@K$nKKybN;pO!TZDZS+BHSr_MdQ>g0c$ZIQE> z_}|Zi`JcChwfskjXVhPP28QrmB6Aq-gn5QWZrPU(PJH|Pe|ukiog2=Su)}qCa`>C5 z?qyz6pFCc7`uTIc_T>5NZ-_J>DQDh)RW@A77beU*igUCdg|;+J7cayZc(#8wD#pM!{x<0t3B;|e(wK2f9`{F zH@RC@w@W9Vt>UVGeXH7ZM=GrCf2hqz{-fI=K)X5t zH1b6oxadirKku~f+cm3Flo{G)Z_&45oN+xo^yH_+ zu3GceFONTueV`4EY=^|@O~MW0rHeq7pVVIqvAJGXZ%wY-3^rx=;gxqhyt^R%3;q#({oTz2_hA*C$d!K0T_0n87#R+11+NosHGS<1 zuAnb{PrjIO{!9E0U+c^D_t$P)x$Nb>*J|?Da>dp@5dUEa3*@F>hn5#@_X7vb^rq}< ztGs5Nn)US>sGG8*{QvIVB75(FT2|3UeJ4L}JimM{!;ifyR%^{JoqTrJx%SZ6Po4i> z+b{IN57w08(z5hjyG{t4$RsD%X_W75Wqo~DfRUM@;Jlsv^xqZ%;h}QA3~lA_@9^G~ z{q=^wb{=1Co29MKXYtUfI`Xq>BFz8K{PKFO_y-|asm2=1RX0aGn1P{S?P-H$Ps%P` z`!IPosQdaLZtl6Keo;bm5B|QwoBZuRXWj0YU6QsIpSOcj)K`(;dEvfN_tP4~VM}8* zmPjA#VcmaKU*-cp!-1)KPuqf23p38zg2t>1^821IeDUPm*;}68ALMwFKh?b1Z0{#r z*T4Lbe(H{>=269$Hu#ZP8!UAatR%5TtO(g*YY zY)mr_lt!7^}d0D=-#7Wj5pD6*{+-zX-@(W%)N$1T+MurDo)0><# zZ|(A0`u{1oN51{l<#$0}s%B4hVTrrFQ+kuN&&K!fZYGi_T=zA5t@&qd_II}je}$lv*n2i9dd3&9SHD&^V_*n> z#U(!d+L}MIpps;Jip-?bOYa=|*8Fn+2c=_%mUEZiD6gNh>`$88`4xXcZ-?AmvyW~6 z+QR}3vy)mOdn`Vj`n9jXClNHo5xz@ACN5Yt^2*b7$A5zpci5k8uY)#8-C1LsaqzrV zxpP^&-EZglcNgkcZP35I8Ww^N%eQ_h6xk6A3&HR(lVvMbZJ8RpmXTqHpZS#CVV6@@ zH9V9CM@rNA^RYX-Lrs~=S510)SmbwJ*yaB73lHpt zbzb&t@;=CUpxY{mi-BR?CEk-3(_%J9ZTM6RDu(ave!Md#U`M3cO55y%=Do>9R{k5` zUoM`1c%{C@{MqwALW?ZlZLigOt7Qt7!!q>x74pF)n|~c*{0}bJD-wJ^J-s0HgAr`z z>eHzn*QawgY|oZwf3Sb~rbs({k@U z{_58z)2D~#mDEAZds3nYnj^itX`<8{6{As(FX*7rLEq|8vzjI(_%Nr2B7I zc|ML-J8%^qeoN$!_pp}BfqFMP!cH=0Pf7{A{o>?#P_h3(&Sw5E9@hQ5IpKDE1-p0E zo%weoz5d1LpF6edCP-e-e62NG|KR)f(#fvT`@gPd`S1=_aL1iodWZ49=d%7+3=9Rm zlcdvMYps0y`-wQHBABtefA_ixp9C2!%K(*UuOQ{wq~_wN>PwZ1pqPG^Q?DVeqj$^dbnE1475m{CrjCp6!ZWYX zNl%NqYR%&h#ot$FjGGQE%^ryMc>Zc?pQL{T)FyZtRMBy6(Kh8N(?KO}LSLJrWx4al z*SWs`pUNUK%trtCPbEg{u9;mG`MqxTpYzGHw|%T*U!Veu9_<&uG@104ih?SbrKbb( zf~zL!Kat&F*PbImf({i~P$<~b1ksSUD}`GIH&Yx(?ePqEUCrx_Uvl)d~wE#s;GriU9` z=lJotczU6XFB2QX4&(XXV=unW4LfA>EL~>u<(=m*FFgOx!uO|cRhC}(%2g>p4UX=c z9Xk2#s+o3nOa|QWydGe*EMxW$0e*%9p}!J!tfro7G~Kgor`rMl_Lm0(Sa=u;?7uB9 zl4rlh4<1K*_7Ga-2LG@=^YUTO{tDzWPN-ogyo}qR7#tAj^?I=lsEBLZbUmAQ>7%Kj zgiw+F*I?P}Q@U>E*_Isn%cYOK+0U|nxAXksm*TuJOEXvHgvU4EH|xH(-L>KSp)Sas zFb`V4*517P3|xSeYMM{c^4w%FwTlT>YygZvK!@_XVul%vFzZ51*CYHrbMvLD;2v3%nSvs zc^(%vZM$zZP2B``W9#LWcU~@-9XdJc?s4wdzYKpr7Wrc*y9?CP2>2+DXwc_fs`$@T zFd3Hi^+APP^G|3Y_oUI(^OBj_f}nYzVr0^}=?h<*iHq%PzhXj@N1P+j#dk-hiYw=&Fl-8)k) z)LwSki}Lz6#^+u{cG|0d8)U4 zMeR3sh6h%6CuBbHS6uerh#i#E<8H5faJ=!Ym&l3jsP$~Y(W^);HTIQ^AL8M`2P)%| zciw%%&Hjg(pAI#W&sOf33!?zMS!cEIf{btd?c?GO&Sq0O5J!1+l8VrrO3v&pCFiTJ`65{I<`G z413(?mrY-E{kHdQ^}<(m6v zUfj%Gf6Xk^Y_;0#(#iiTb1s{8#WTe9!LkwS7w4OM#dC8%GcYh*-zj3VL9H-@_cLe> zY16KbRYjU^S&r(>QH*&!?Q2i41e3R?4O=j z@jAXUe+5b@ca7135gu^?MYE!AA34SZYJl)3A8Tq%Uj6UsTu_(dgErssB6;>Oe&1Qg zHeahY?K}B-=lOS)Ty_4-_dR%%vF{xD zfFI_-_$%Uf9!##83F;+=zwpX4S~qE%Ub$rjCn)W&`+EEG(idO1Wy`ZaTlf0-oBrSr zze`>ey-fR3aB%*W(5c5m=bp`)^#~;iEU=v0Q!( zdD6QD85nl>T~A-tz`Zf;sVykKe^}i2ylCU|$E!Nk*KRjgvz)u^#`o7t?n~O5eTWBT zP*7*@WZB&%g$MK)-cNv~9q}*8U3pyb77yeZ8njDWwU4zj%qV|nFZdzzL_k5+x9_0v zeD=6R&Pb%@+OG}kx?{WTLB(hC{JRT53BUHBbK*`vM87JkKA)lDKP><6U-0@=-WLO3 zUWSJ3*i*bqy;d#RxPO{-K={e_rJyj_|9!vz^hMWiuURU;6dDBJ#{1No70;wfL!TCg zrf;6rbpPrl&0P$4xaXBhuc@}V7Yh%=fpGcn;Gj*BzbUe;L?k{Y$CSi&Ng`1$_g+nXgR#_ zPEx_n6`M0`v;TG!o2Qh&Snj#M-Ol+Wd(yg37p~o`oB3&XtT~@Bb3^@uUdYWh2hK}O z-lt!_bDL(lE(1fJGpH0yNj!T>c1AYKpPxHVTlA?hGBfPiROoRoc4zw9w^5%y>fSX- z```ZH`=zrPjpycX@tq2C^Z(}?eP1&eGWFle0hffxp zr+iO6_5R(332Eg=DK}s`*X$C=7%!`G;Obj1aP>PZ15Iv)9=dkxXo5u z+N{lxTfP;F^5vkGuUx+VcZtb!{DR-?{%`d1de8mJRmdIOja&@(4!vE=0ZD3ck>Lf- z<+7kz>FbigWoK_)3Dxordv^yMXC{uI#m66B?_0OlE8~^c?DpFndb{h+yu0x9<<9f( zZiw4&=#meH1@Ft_o9!6(*ur`OQ$g)>>D}7k^0D7lT|+l7+287q5vY#MwVroc_mkOb zwaVr5+1m=wd@elk&%*bY?YvX1mt&qUT)R2e{N|e3IoExq*e@|1cmoey1D=xs8F}#n zryj35mv;5Z;aw-QUS5f0sK|e|R|`_S%$PaJ&^6Xy`Zy!Q19#r!uDm^Yua8U;{Rb)r z3ZlQoUkg;#xuvzbz0x=B?Qg@~;Fj;Nm|c>(ML+vjc}?RFezQB$cXFNWX66IGVf%M~ z1SSU+`JZ+I&2dcidVer(#y{@+Dxhu-Z}Oz#gO?qj8~iPYx7pH7o|I1m)iKcFy7Mm? z3WD#|r9zH7|KRuK@QjTQ_@-}z6n{sS>PJg%GZQ;(4;r%DQ}2I1)@$4P+h1?{{I>;- zklbJXhp+ijdEcyMr@oyo0W|`<%i=CCVr-ZW&ytR;{6GAYm<$*guD||ObbZw-t#6Wt zzk@nA_qO|kdb!(P8_je#@45M3{m0v)mn`7i_-o!2fzwe$F5KQ=G=VF;~Wvpyx>P1#y@#qO)&Uue4lnT zWp~!Hen$p|`>>Yq560S=Pp&)rWA1W9xwq@vLw1H8@a$xL%<$#$qUemM*$xa0J1(Va?0&l2^q+VgsHvK8 z@7&!93m-V;?*8|C@-$HEH?ga>{J34M{?ECKm#y3sTgzK_TPNy%6+=V3IxJlKydR!5 zS(}*!Y5{2PO}qO4P&cTRdgglm?sYFp?yhJ20QK;4&;7@P<3DVF;C>ak1-OHmVUG>0 zFe)!$HBY>5$SA?k@Oo;@X0uXJ@30EX(y2MqOUsTcwzgOPU%cFT{;E}<-q+tu<6yY6 z{BH5i58GBvI{(}5|NH;*iY>lMrf<+{{Q|m=1tX~ z8PLE4Euzev)5gjm@@%aP*sKHg5^W-PYieH}E6G(|#lY~O{VQm6-BZl>=IeudGgdu0 zyz1O#P{VN5_wO}z?~MAA|E>SOx#D#^E5m{r&zC?+ z_H}(g(XaeTJ)UL96>o>?GO;l{XpiB__lh@BlRKEba`ltLMRkH7E+<-LI6iOV2SkqgHLSI>p%;#|Ex&#`PGyi_Byx%G@{wCeY^d) z{J+{CxK^p0ek$@iZ(qy)smALV8YE%UEj6cSl;m%@83k%4^}pbH@0suWzf}oT_vWWd zOgbH1EA!x}?UvGQuR-0dx2rrK?-XOGaEDoZ{{nyVvBH|oulqgc^*P&t8puD|P6w3j z-L)cjN?Q=vn8%+No|dkYdLRy3b)Urro^q&3U}U&w2um5}F=?9)f?cq^q;_ZQ%g{;N zG|Ma%KEui!ZY73-YPQHBETJ++Y8h97O-2WLD2 zPhI`lo+lAp#87bih7)go;yO_LYxaPK$+tf%cy<3*_ycQj32pKewC?)Kyl}>b+fU9) zL*o6u#N;o=w<6|(J+pb;hpN)VU;29_L3QS9>vHG1-!-1*iw`@_gto!#*WA{LI;hW3 zAioE?bo+;N=%laCQ=fm{WA+Pd$SQ4{DW{}F?p>Rs{Gd?gbN%1>N2C91F))O`YzIw9 zUS4?mp-IY%_A{@$5B!BT6GA8RzgAnlRCpyr!*AFMlOJtQrwcy;#qycJlPg0)rP`;{o&P`@lzh8@N5WC)tfOz7LS?~UD8 z*W~A>XIeQV7#6T=@VSaKAdmOHi3hj04N91S5x<`3n&5`UQ|UA&RSx&4`uislZP zQu)Tp)vHr>ui0$PC;9C2idpbtYZ(W_pIMJ9Pb{yUes|&dmv_!*oh^P3PHB*-yYu}F z4Em>LL)U6*uN4bjbxI|H;aRH0WN-Urua{dC$Q)lI9x8S=`hVI1@7-Tg*KgmjujOX; zswaoD>LxeX+m}lozo?SH@IdRX!L!Tj&Vy6VlK1Ib4(u!jHLy&7#F|%raAab55DM>j zAKEn6Z=*OP^M|mu!dn8jzXt#KU4A)VE-EL( z7gWUGH{v<@?!wc{`%Zse>3_X<=K0y*e}^FzKt(r?+*V^~D1t|%Cku~*XY!Kbkv@%+5~;Qv;W(5b76j2pi@vG6eL5kJ4&PQE<$+i|<)pJ#Z~r7!f_ z6yvw?{WI?$uO|vHJa`LBTy>2c5)IeC9KZ4XQvCP(u_o(3TQlaruKxJnJ37Mu&~8wy zK6_Ck`RVq$)9)@kuaGn9`&_xa4jkN&?)}vznIiic7>eN)uIuS-r)E4+U}Ae9&YN8H za`}tzMo*@j9o}~A{~_O9-wYb!uipB>`yMpr3K|xE_82LEHFg&J#-?u0+Ekmf2^7YH zj0_3eV4l}c_?jxTfkUDpyC=Emr_s~zm-;JD9-Ozxc84!$UVQZo2A=nzI#?r9V$$7( zrq6O?v7K%ImYQehIG3WnuWB2lIbi2Zuz%d&$WqwU=r;>vo58 z{hYO`i}64~^{&J-`aEp=qi(0HYG?%SAlkF+dGP%H-Fm-4c~;}sos^L|$-54HjLUAexWgi7!0;i+@9u3{)B70>%bb*Sc^Dj^eI`hi&2jiicdDY4G(#cmZG0QL<(1j1zGYJ|T z_$zTt^VI8KnYZ3s?0dU+zt^UM`R%ujr_E)E37vYF<-xIz21Zcm*u33cbE~}4?(1bm zm(P_)Yp=r^T&90R1EI+yL?(`Si zrJoi1|F>2vJCytC*QV>)vo~F5J|)P=e4zGqo8kO2P*W4Ut$Z=-!MWM9vu3^9o%bp6 zZra7F!(D@qBtip8ASP-mxy`Uj9S~a<7$C>ovsT>jy$`8+o`K9@7FVAJ$ zPqwSHgc}};^(NnZ`M7lIi~5J(IvW@tl-bVz1@gcA?>YL9ch{aT%!UT&b5#1Y4?inG=bV)wnz8f4t;D3nwWuwtBA>Ujvp^$o*q7&@ma87 z^D&j!|J7fjizcOccHi(5_acv>KJ z>AUeS_dn;hmQFo;{XzNNCkL6u7#Q|DK>IlXGdLs`^w=NUH~rt*`q@TN!VM4AN?YG2 zuKlWT2Q>G6=C*;#Zs+O#zxB>9w~IATv&*0UJ~~#lf3@0daLs%=RoFj-fnkpbtj>@Y zU}WC2C(%dmugKqdzkl9|_s)E!we`07ojG+g-sLad@=mp2yUPIv1ATbm_x!WMkGY*% zCyOkP?whUuF#o9}7ehn1613@Ep{$h95O3UfGWCb;583C%*0sXim+K#@#d=-a?>TGN zi>D1UL5b_OWqjM8ZLc?3f3cj`-t+z6qGZ_Gqg^MS^{G6sT`^oy@vFdY#a0D4N)PIlV#Gy7~lJ;F*39E zdYbzQ*X`DyT=%>kn7nJ>8{3Ot;vek48u}^GazA3WGocK*uuS|gFIn%_vQueaO@HKW&anN@z+jNS zdogr~IUy{pJM;2H4v8J1k7vZ}^ZCB_OY)oMTFKnc*Y-1hkkV_-pTv~#;Qbj;&-II^ z5)<14->=S}3a>u}r)i@v%l@2mMak>x3=Dhpe>cO7FLOC?Ko?eJSRZ}gy?XMNt<}bN zX088zK4_InZtT0N1HYA+*c$HJ&j0o2+s{dNH=bWAzxc=8cKG0j{nYEK3=DgM4_iFD z2^yFI-HTNz#K`>q+KiIN?>D|*ny{yA{hi4V%}Q%;mOePNm*qzvVmwr+;d-GB|IZz- zH`#x&jQiE|xiYo-JE#E!Sq+!XzJ!sXK$-8jT{0}8&(Ib$_z=eft&V-ZbDfGb$^R?O zu>N6?#k%af-VO4|Gs_QLOAgQQ-)-mLuGfBf!oK+z?W@Yy<*v%y^?ujM_R`s|uVqac z7`A7Y&za{8D^iWsnAo0WNGw0QA=bWi|KXav!19w<{C49JQwpjM!Ay??rIHnkP7M=su-)mldF1(&v|E73fkEHv1t7i*Vf!C(g z&HeH^kd>jK`Z9kqUpma>-G;Y0eyA|DMSlggefEFNKfGP%PW?l*sr%mR@myr8YvPb- z`2Gam@+o=OEw|$^q{a_^vpd!_Q|i4H1H+E|-^ugWr;ETEg7-KD4L;1;mFQ#dGr3Ox z?~I>!GJmMA&EU_wv{XO(lJ2WrFTOV1R%BvJShp+j%<|az%blkm&h&_{=smj~RESQ0 z@crnx-IjsT=NXw`TWq@m+gkh2dhhBeeD_cJF)N_h_0~v3Qlw1Ea$TyeD8x; zIJOsb_qzP$@5z4Y!VQqY)_bOc1|MP{n>cRzEd+|P*_$)&WIq&}I`7}>IHo%uhe--28Iv8Wyk;dw@brAS5wg7gL?9%-u=h- z#mZ04&x^@6*1fZ2oqqLR*Whne2XciOnLkYWm3ZbjEM)JWe<45JIvln#^V0jQmj{^` z7~&57`|-S=1y;$H`>^nQ&joc4j_#YTsCNI(%x!hA?=w{J#>Rh(dl$#F$3)P8!9E+g zUHRPhcuWY=^0D=Gj0_KszJ<^3&E5nqR9z1ge1_K8XAI`=|0c4{;IDYzrBn^;y?fVA zUR7kz7#A0-DlhlSX6|!w#_-Uo_5V*_^K968L;iQot^XZxQk{|(or{U`&FVV>j53luj?)vxr#rEJo=e$ByyLWlr_L+G4 zUC6ut_T0kO57oXdUH;$7hoQo?)b>20bgfWco_FH-a=qQo^B#>(bW6wzCT! zs>QM#IM53kbu5`7c1tOt;rey{lgDGHgA@FT3;Z+B-#+~tIrHD#^L0H714DUk`H$D! zCNPV5BlVYcIJ5A)KW^Z6F#Nju^Ft5C?+2>peyx6U+wA1_cS)+rZ+H2bR2NhqEA+Xz znPt@yQ(qYk2Ns@!`g#7fcJFq*>90LE-SF{?+T$|t==!yCPdo!d!_6D=|9>3}gl2_; zWS0X5`QZBE=iV>LZ9o5ns(Qw%cBggKikAlcec*RvQn0o7yTt{QcPVOGa^(hw-?zEK z@L*|Y17qIpmqwr=22cm--Qw?a`$0{vyD6JN!(I2zGBF(RnY&vNR1z|PK*MeYrna9F z&>n~N(f4bvTz!AJR@`^${GGOc&u;$_e$^~>J^PfvqDd8#bnbXJ9CA6puzj)gv6@?7 zE3HZ_=d^wK+mrVOS|V4?`m#IY_4a>LK_~cbu>SMcoe36py|ap0_QdvOx*oW*%5W!7 zeA9jXi~64fQ@JwsyY1I6)PDsUP%!mXW6L|g^aG<{Z#Cx!HkSho?=K^@%BJVpy_bF; z3#$zuly5D$#LvL6$GsY6%io#VEPI3*i{+Czdoa)Qcq&NN$J#8 zMekdpje9hu4uxJlEz`j8!5C!6VdQ}VnZ0jkG()P!-=&wuh-V z6x@}(@!jZ%+KrhjSEpR`x%l4s^RDkR3S};f&$;z8AxZtt67Q3qk7mA`$dK>J!ee0n z{PcwTW#Ga_TRsR|KXRdd>Cdh3K|@^{R*|`G5h1(Z1`%q zR#qDZhC5sCZv6f1KkOQT0(F-I1+9f#*1PpD=BK|oyC%f*R@yCr-(TzZOXo70<7HZud)KZ`!+(=lL% zKz*4--JdA|F!xHUGNrw2Q_20F{l&U8;pp+Hlh&-_KbY?sy7!B5)vnhqzgMlE^rAko zvdyPj*YjAm-hr6T21dJe?z(||9=+FAy}9Q2jqhpE&K?W&j= z80K%VudNY;?JfAw_BKpa^<*H+8K*yH-}cu1*^r_ZX5_aacU4NL`d6m9{kJ(6iwIjM z&b+0U%xW`nnN}q$^R-6vymNvDnyUN%pWEi05Y=8heg3yxIloxF>vo50rhUA(r!@F! zS@`ob^S1q0nXXweFf_d6aW1l%4J|1TxaWkcI{Pp^D}B}eW$ew!_lZ3k5n9?aggrS@OZ{j~Zw zMZ3O9s{K22;(qvb)$ORXgjaeVFEJyY^nX)&tX-*(^2nGWz$F z5+3aQQoG51+t1VgX0?Bwuq|5&7hwGSsO`xu z^|#5OBL>r#PMNgKE9|SpziasxD%t8h0by)B2bD^N{e|*h^@tiA&^CU~v17`l`}OJ4 zY9BI>d(V&O%Y7%mYtH)EFZ(`k%v*Km-K#rqUfp^3>dG~FMurAXp2HOuSC&UqLe9l_ zu)d>V=9LLs4zJ&se_Qo)<TX2*-?ubX}G=S4Mu{@Agiv3qLDucbA8Op~A5J z@^e`}*re$LdqKv}x?i1(-X6R0{Z@bd_A~CGlR|CX_OIS0A@d8}aDG^Iv zA8F^@F^ysU-5BKuzaRg27{J1lAAMi_ck=A{{JC=HV%M$R+P8Cs*U8*Vu zXU@#P5O?q4kIHxpE@+$c$847aHq#S5*7aYmU4M5%ot?hsr`Zp_7aq$0xcaN-b%{SPrP z9JnKM4wee{P2!lLZA$%C{>=5oZJbzyYS7q?jBMBWsx5fJoSzZ+y3(1R@&z085j;|e=2x&EO@IuJl**VF@Bc+dRW3~ z+g%Am-edR9xO>j}l>O%Rl{P!O<(kajSE+1$Ev<8Y!WQA}%G$yg8d!xGna{69DxY$# zYu?r6?Ay3X<^8tOylu%JcHg`LE-S*b>wo<@ssk+v8RomP{Mq*Pu*J`1Z;yT0KL7mb z29;9D$Ln^^|Bqem4Qg63Fw~d{ezmDIza@0u%DeUb%CdQ19x|wzU+4HS zz1{4v!3-82a!H!VGRcH6nL>(2cy_nmbs31p{Dtof4? z&=f1k&W3y!mOU~1du!L<^|qI;Tb;tQW7hE(*I)lh-6G7cy2v(S+3O>WA5K-XePBCd z%CyhE&pb>ip~5nD{+})R#q~MGHs4=b2iHAcq^0_PTWH?4(syO0+oa78GB6zY^!EJS z$?v>j!!$NG^Fk*nT5kP((@2x4ZdZKs{X(gSHUG>!CoPj&{@bk7Gg;t`PK^4VXIH15 zJh#E)u*5>2lTS<@tesKJ661C9{r=6d!pkmvKlyj#S^aji_TuSfZrS1av6?5-Y>(|T zziqYsc9qRX9tMU7yp}Ta%Y?Rzs)BsSz_9N`UTlz8kqPIIt1sFMUnSh`J@~%o+mXpj zwB(!ar-Z65t>8U>>d3`=USD{-OWrQGEjXOWbRgOoDNyg9Koo~t&l}8Ny2?ENZphBN zS9jj*eVG6BuqFe;hhwlV-i$M4rg^t!$Ft12lY8vNQ(fscLzArChJW5Z|9su$*n{mW z<(ltDEif$)cCYreeb~%6d8b`&{P}QWN4bjbXHty!?epG=Fdn|X8@YnfsW{^nJN-_c zJD53=9qYxAIQ>{I!J@wzrNUK6Rd8K~cTjy*L&dmFsqy@{8|ZW4jTlDY^I@ z|Hbv1SJ!)67usC95+}dGB{<$Yj8B;1o`#@-jyFmn^%YS_Sv)M?{gF|Gf#JdXoAS5S z|L4O-N@}*gU6tZdB*f^S?Q!ej^&8vY8og`@vh(|}TPN7>ZO*HYUzv5h?N#m`X)m_$ zVW>F$OonlK(5K(;bMCk7PxmPL|3UG`+skp)uVsw`y*5SmZ+w5Y?2o2h5fcML&9uWG zUv`ItO@KsPh1l*;&rZ(+_oM7puIKgCuCF!X`TXRH{+Pi=Y*6Ix&cPIE%E_3%x3Xnb!KRcV{4>U;ACd!?Qt-H0|a?Y+f`p(Ca&sStF zRhj)&;`cpJ8}gkCBLl;}wSQlp7Fz;OC&Ee(_OF+plx^;|e|nx>y`74tXK-C_?QAQv zgZm0|?NeraxL$I%;^;x4t-|~7&;G~#VLK=^>*p{iGdWb!@lkAK zH&{-uztwqI;IF>U<*l>7eGFUnpXpDmQbL7Yto@VaNHI436>^OIXy9OA_z-k%`oC^| zE>Y+DnJfRkJni;}wFJ~QuHdMEX5eE1 z6Mp{4eY4w$b)x>2vYB6|-#+38D)!l%P1HJ>Ys>@<{-jUec0T^y?Kl0g=ce23eN=8X zYu6Ky^WWb$&CEKe4{Bxbddl_1*9EPBcC8vt?s>+s0~G(q_FcD=%xRcAb(PBMs-C** zW(Pj`ESvXi@26X>u35V~nIA+k@_Z0cO1QUcoqye}?T~)Tm)Q3cHqV4MnR4guj-C7V z*vdc#28Q)#UtX%cTHXiu$k!;P2Xzw7b6-Dhx!-B+VE51&l!HD+mrSlU}4})~Pf2hlQSeyX@4zE9YO`d;jmoQgBmrwfgzx@{|5L&z{eh+xJ}WdS1t) zayc(gv)6{-_TId<^X|3Iub@IV{Ot$P%k{#rmVti4Il&LR_wiR{K=& z@>2cN?<}wwjhn*pcPeGBk{pG_SU*j#JSfM?Lqn!=++kz%t zeOz)sG&bla!)c$dhkqDPoyr)n!6R5s)xsB%o zWw7(t34Zwd_=|+#hfQ1mPMH5a_FaE&-*dZI^Tpy1rLTvmn(ybVyYBn-l0PQ{L&HqT zwkI0UYAV6AZ1p6blbMfx^gX|Pr9Ze%esO$7?>gaktJkk``Okg&O4;Y1HpRR6G(EQ| zB{ZndhBcjdOElZ+=6v{bdEwcQmzHL?pLu@y$n7v_g<(~`+v;{ND`?xA-MfNUpJbl5 zME!(}$|i)By*}=FKDVYH!{-+zRrJs)5hnPvhwPT-3^TM z@*w@KNgWOG8xL))=&zg+LRroYmo#jwoOH@U91iHU*XfhOO1gTLmm$y@{H-KCzV zEY|i_uJrm>yX*Zby^DIAOs?Ba_PZGsDr_fVFtcpg-#!kB2dB?kGRd_m{(mYTrvEqO z2ha5E`TO61iY344dd;c*HzPpVC;3hF?zO?!?erNL7(P6ORY*Fw@+iLJAXe&wI~v71%r{MX8FUu%Sw5*qZwVP!HN#w&yg#Ohz|@53=b+x?oMdm3@iUyZ?8RW;L2jNmS4DT_Nory%Hm}` z-)0%PeLL{Ur)tIlaREl=nw`5;%B3ea{Jj0k?xy_hKQ$Sj3*HrNoo6V$RAqMQ-0$yS z?YV#TX3nc0Dl7~P2Z|-yp47Z7s(({t(Q9A1OqCH<5N%dt`u7dgR5AP&d-W(=#Jx3% z5|?-{$7avEl`pLmc-#K=zIpjxEIc2cuF~2WeO@2bieG-Sqha~if_I-T?>qbO%G08^ z#t(H_=Wobcbq7*stkj+lTFYJ`H+|dre>a{MyxC-5`f}gJg9~7}G|ivo&z?HzKW3$# zUoZJ{q&>Qoekm(I^|PhUrP61Y>+4@v$Qr5K>}+71=fm=+EcTXN{Z2@O?Dvp}^Jd?{_rJ?~ou@M}FjSc3n)h6;?T`I-TyJ{WELKIB@76bQ{5U<;sI5(2?N1ip z!~E>sFXdLNWWIVS$3Np->7neC#TK@HOk#}8Hgh?CHCo&-y+m?CIgs9I!0r$MWZw?VR19zL!Pm&Y0hkIUiEDKu1lE zeb`=fLXv@j;rx?J-)_q9mg!6WaohiA>ce!{l9>;$IvOT}YvJ1P(4a2f4IfO`3D+;o zH!{}=wqE?=wRcAYSgUYn}syxYCXdrR|&J-7099be@Y6n@!O&S37g>c8{7K_%e2 zRg-S}PW`*`{2aDp9SxI_s)_K82fwd{*86Wky^xjhzcd*^cdNzPKdE?EY|$%R=l`5@ zzd(%|EGfpVRdqk0>KWW0>}3B(_($0~VZJ|EZ_?XcU;R#D{F^`NIL8i^XyNY+^VaB{ zd>h7M!_NO4+$RT(7%Cn%SiFCN`I;#yo8^-4&wl$OxaJ8cFH3%LF4|L4X;Jog$^GEz z*Z0Z5&c1jMdV8&R(4@;>r`8uw-``go&g3}5=XUxfi3HUb?XJ7dt^8EQcKq~Xl>|Y9 z1C!5MGU+XS^8LPU@#_~qZ#`dLJNxg((?4%5o&RBiyj>o&6M1##-K#6_3WEwOo;H=| zpDpf|YaV=GzvWCQWQ{Syy(xEJ6$*XO?rvB;Y0WFcU$LQ{hM(Btj+8!{ICu4}_f|TA zxA%TAuBbbHdIHbMvZuRPKZF$bHq=*UOimFLEV#}8v-1Aae>a|0yt`ZqI%{s#q}lgb z_P<_M^>R6=SaFKEW%oOI`r(bI|6N%+`$zS@m3#k*LTx_rx}(8cQoY{ns|15o1@q?% zeme{otn=FPZ-bBbY=%DvKYrW{S}^p|<-qyXC}S%rZuM*Oqe3T@-?lQp4XR*f`^wG- z8Ct=YYyaef#GiZeyJK!|FJ-v#I%+SZu4(9>5zP`a$>giW&u5428!IIz`Rw#h2=)IS zaiHW@-3f#Ke);1W;3Hiz^pKe*^iF-~8i=@~rTBvkO%LG6OM1;6r*{21A%Ew5$%-49Bhek^}} z>Rq?1zq$RU{O&n=cNg*BsK^D4d&SP39Xt1S?%ZA9W->4^G^{u0Ir-D**uM757B8ifWzLUOJq*C$Fo4ah@N`9LPxW&kN5U-g$cK+zb9k zy|7Vw>wgiSK#AXS%iRy}FW0{BU;DK|9k!HbL&SMO#_2|G)yW^CgCr}MyD#!5HyBKv z`f~pUkJ$Mend+QDA@@$#?Eq5tvOC=KZ}m)uEyehUR z-DzKD367%m)8PK8E@Fu}c5>g@qP_y}I*u)|x&2%nS@4c-j;#+1Gz zZ$rw%U+cCXFIQUy8GMg^o)@0J8(u^qD$BB$&$b-cr~oUX?zP+njhgJ^Te%uMK5p^X zZ4*;|u=T?$ewXVLXSON6Y@^1}gP8<3CUT?Y-{pggUqPmie*ps^wlaBLhPP z+h2nx53f8gkZQjFd1v?4hUu`KCJYbG&MeAGkDV$~{V8$cGMS1Et0vjRdC$t~X?XAd z`Bojc2U6V8@H@}rdjH0J`{_b6p>==RoDaM2UeW(Mg@J(~q9M`a+;qclwsVeo?hj*r zwsa-z0DFdp?WrD@d?ntRF8hB->FeJg##67>XVlKp+Ic%{r@ikF6}x6o`Qt0g*uOCU z()Ze5b#arQ-rof6aLB3utqNylV0d5&Do{cB)IW9?C;yqJmsbUCiVWX*_v+8PzeBTN z%^HS$-`l*C=Oz4;Uu>HoxlY*MZO!ZdbN-#NVv?J5)@vQhhmiY5Omc08-`>hCj^F#f zX3gxv;`e9QoqN0O-|Y9lL2ZVRSo4(s7I(k@yYckaxoq8^Yqdj9=7m0e7CZNS{_HjX zkF7ieO9Tw}ro28Pto`Hn ztW{5*Ie*x_`u{Vwcu?bP6*Rl{9(@1O=Ao0>{1C5AaiNvl*A;zVck=ga|L1#=?8>%| z{jp({@Jnf(3kGi!nS8%~)IQnHQBnU&eQv=&P5$eOnkSbPsjU9kAK)+q0Pd;@IVq2kIB;y7xL8q*4+Q& z(d1XVPUQtZ&Aa~O_inZL-=PbkZG$(F~UC{t~ZPsz$gtsk{_LFV_seWyxtig?Y{REl&Q0x%-{9dqY2EyHANMU$&3aYo z$0VoxVA57uZwCKuw?i!F{4U{oARg?sDf0Tx+gEqq?6dc`Tmq^N|4pm&kn@X$w6LES zo3Ad7^$PQa#^3w=Ww8&o&4C*w9yYW2UC`kFs&zhw??MD+&O=9QOb&Hu>AzyNPySMb!&{cfsX8k@R(WzqKR zPlt0Sf68tDQ#WO438ac3V>{TZ!r4w^_S- zF4vZqzAN($>wO>&s_x4(f4}LEGJjSyEMb%H$or#%Vw z^1QaX(Dp(5?$B+of3ocVKT#Ftda-kIR3&;A3Do5dNxNk$<^ed+>D7#9rm0$tpj2R9CB2 zZeRKNuJ7dU=Ihm0*V>+k+)Bd0urJ`cdT?02wxKj=c5vR>XOiuFXUv%PeK{G$!t)`d zH1yMAjvt%X%+}hz+sb^m;h(iK*O)<;NVPqwkxagSIP;I>oq6ZIV#9CduDbJf)}M;o zDxYOP{f1uz&LH;wmf!BzNuk|b37zZimMlKvUHLEbky1iK>Q4d2|1YPPUE=&&eEmx5 zoOiod7jMtrlvQKK&cN{Cbu6UqTF6sh{r%DAz)2zdIqUZC&)ziU^L}`dpc7{uyZQSX zVe7`qnV+IQt>qKSc=e<#Iu&$hi;iRL)Iab3YSsUG`YTQO!Kx{HZinr>*(Y4LT{>S4 z+)jaXbM(F+FZ*;j?dOhFQ*y3>M(FBxWN(UkAzlJ6_Qcl8PbxbkvB>bRxY)|q?LId{ z*Y0~*(X>p6ky*zx_NlMy0Z4DKZpN3_!WIk+4DqYw+id3ilJR@oa{uzq>X*xpMW%*AS4B%Bo_qDRiZUXnSveZ9pS||Me>#u8vxn^nYycu#c{@0mhO#cKJ z*Lz*-&DJ~+tYga*Xa3k_KBSd;D?N{afnnbz1C{5eC4S5K#eQ3!XP3Qn$&w|RlgejX z-M?#6S^wEA_{R31@w|{cabR}gT!RLUr7oMf(8dR?YYLWL+j-3+_~UMah}$s^clr6Prcml8Fc-!-8~7$ z=`!aI=SYD%WYd2OF#iAfZ&ukd>Dk_s&ZhO$=F1(v|EP!`lvuNVE4Ckh0IE){zCO~E z4+Yh5J8zo){J8C8+S~4}{;4^I8_&yZ=}Wt9in)=&Qb{O|Ykuzg;zV0YZqv??ft#= zLHj>QeZPc=pe5VRFZp=u6z8)I9@jY^-&ct|n=s|aD!rXIU08TF2yE_a`2Ti_{U7kb zy$$iDcPIRPTyp<+^6YHu`PGrf9+dB01zPcPe0Qi>cKn1|Z$#e9yu_=RI%gKAj{j}n z?-8n=!T#SXODr4?okS8RsA8__6=*W3#V3dn79bWrjEoit7RQRnt{qIU@825zy7*Eg3D(}ro_wCLs zD!+W>?yu8`BxO-M=^L+m^?}bX+Lz4#V9 zQ)du+i8R3TLzZuT*!9q|*;?hh)$Z@lH#)rZl{xGN9EJmrN`#N|XisF)xin?+k;y4n z&wP$jVq%K`ozTJ#I=}Hi(w4gu4rlU!uDD4r{qG5nKK|{#VZ}CcC#fKU`Nb`G=pHCp zC!FV{tva*#wF<~Me!&m(>vul0TD;P`y?FZnkH>@medxa(Qe2k|YD%r&@^`}F$1V5& zZakg(>ayt16+x4}t^y6o@t6B<%Z|_4D~7Nn{Zz(!!MO*Md@FS$_cr|vEADGJomNxF zP_u89SKXhysrLVE)^q%Lc;{(6IQ?zD#((ng%F_?8JOwR!c$c;{&Ew=M&wIJAYRWG^ z`P2Nr$#yW?Yu*0TSHj7tAbNIaB%a@D$J)f?6uT<55$mn+g{VyoD+ z>Wl@`zxm7mJlx*}T9@-IL1NP9)Sg=Y{)g|Uyk1@t1+T*jZZFx>rPoJ&Rn^>|kftFf_Pks`q?bHEGYJg>w%G$Ex2s6Be%ebZV(D$eNX2pLXw7 ztG`vAdHdhe`RDdq&)xm!^nVdXkR=P>wiWJrzwz|H8&8cE|8|}P3;plgSHCgax1fp} zQCFTSJ@i+DFStEbYSI?ru(j(mf4$GI?P&P^+*0)bXlOh%RCWLEwV$8=esb$<`sD54 zlz#gKYFk1$?B|jouUS^`#zfGC?I-SAL24L=?u*|}8u*AWS}V=Sq!V~sHMnnU?yHw_ zuXnC}HEDKf(GE~QaltCDx|;h>&hL*Ye*3IA*M9EqKdpa0f%uAlp(9}z@u)`<*vLR62s@kA`yHXGEk z6Ei&O$ilNhCsgz2$J)8}|0hYh9XS5yp*;A2^M?Jf;Qzbv?AE#0tL{dJPn~oYTtxDh z`-Xw$c{*ppX0jPJNW5*yZL*cz;8VM7F2kNB6`6OZEKzCyyvIyb?woTTs1P>0&#?o1 ztD()SUy8?z=O50T^P$?xzhajnq+7Q0=Cz;yww=ri-v1@|(Nshk!vU_gPOcJ^J|N_4 z>1h)gH)Yp4?@cqqS!_Us%u>+qYKG63K>6wScg_9By{9MIc^Br#A&RX}|J?SSy#A33 zGMC1XAh<608;9yjUxqfh8ZeptBb?b5lo z%R~3=kKQT&bT(`loZ-W(ug*qK|4nzZVC%lZ`}k{$mUn-^^|L!Z=K2X1w58O)EZ)6N z?EiEA4|nW*Kuu_8J>y$7b$h=2yk2kpj30Eq*@LNw*21lG&mX8l^3>aPC%#{jFW~yjcTPIAsb#lGx>HaC#d_6T!{rgYi*^e#GV8c%s_x$nI_`|2W*xj2?YaN+&e=+y@E+~)+iI1{+1ugA z#xpcr&-GX*>{i_yz%wn=W1X;^+J!wEc~gq}8s1-_8m%e`9Szh(pYtpK9n<7JZ-VFQs@$V^HmCdk~l?)F;U;k1(Y;gD3 z%+SBbR@qi4FWWzD&tBeCP%A39XvdeCXFDb*g?Z9*I`Sm}+wd#zp+r0nn z?tcGgvHrKpq*YUL%s`Ftefx7a)n%)je1hMG#ZYlo542im(o|c;4IaUMLjL#C80M(F zw$glUwA&M0k_CI6e1FgU=V$#~J>y$<>i!vU{+JKS0SC6DOb8W!zvSO}U&Hg-YslJ~ zT%A83tzfIY7%Hyb%G-5e!8)(5ItHs8x)Q||WM zexD}JIN$XEL%b6U_(u5&Pl{d^Ta;VM?0(Z9yQ|LbyR{0u%lr4Y+O#hbu&aR>7}kf~ z=AB%YyxPr#!Mo(`^1ahcre=E@xgBu!lG78uc747Q6WfoZ|8k7?x9^O3zF8A=3>ZVr zI#BbwhNsRyc2}O=cQX}Gmv{A@cdz~wTu(`5>^Db@609zLyR3T6B+x{($=9t%Og_fv z&Qe+Fa)5z5FzD0c+{yOuK{fV)KU@D!IGp^Uy8ca3Zu%BCS5Oxh61MAJPp|Vbu!Og{ z)`wX?eEHjV?#4UJV(F)9YuBm%zZs+a;P1-wZ^J-s-laW)AO7#kFU|v-Tl3}cg!bV1 zptj8U=X#%aW-Dq&nx5S4JNJFwtUdcD+BMyW7F!H)OY1z;-qc?XQDTf(ROhj)?$BYD z81H|}EZq)(2eDU8nI!)XoEA>Qd$4o9SkJc>nY3ix>NjSg@5+4ZcH{=FIeai4Uc7$L zirt+lpC9V~yW)V!vNVPo`SD$?*;`r7D!35AeW~t^NcZ zRPrDcI&^SZ;?KNu!g?P*dhX|~yZ?UHoqen0e`y|Etp;7J!0_Pe%U_CzTi!Y(C#mZM zT~`<8V>ovzZu|Ldd6TASwSV5D^k6TC#Dnf0!4F#X`@qeu26b5e$ow<&({Dz*bt;*& zpk39SyE7lXdhHy}$RBvM?t60`4P*T}B+;XakFi{KUds7TM0BYHR(zF z?zA$&4_n`UzW@I%=oHQDBO-JGsZ(%+uxWu(G?{b$Y}nKs4W#YNlwvg)@p_yyXpZn?j|1GCi73Q)tG^~udZTJ8B|7suWhf%Wf;a-~}uY$_oe|b~iMt$Jc zU;0P>|MQbqp-TcA!XMw_y*YpR?^VCcf;S13AAGc>wy1uVo>h_V&#LETGw!N92w%=S&Knyyx~6P}}Rbw6S|4{8ko*JzD(J z6`z;wTEFZ6!&uRiaysWT+|^pTpahh=fmGZ+e~MhDt(%zOl;B)3vj~-M)J^ zf*-cPtEKkaYDeGlpP7V+^QY56H!M9{{VsIsoxHbIjjFrszhWlm* z&mVtzsNwFal-)wb2QTq>)>X}T7quyN>YEtvc~dzg5+cE+0=v?K=Yf#nfone>=1qNj ztCn|<8@vk>*Xuo9=Gr#N&f8%Zd2RRKbUQG6$+|t|3^r3i zt>+&OEPqsy>-JgG>zoc4!$$xb*7T5A`}}pX0sgVbjsd9XyuXg>z?Wp0t0X zHGNY4lmF@O&rN%5alRzi-ttOI=aRIOdAxbQ?f(bAyjx$oUH7JLr<7;X3d`bLk*BFU zbvs!O9BDsN>Z-BG+-i}L&jaVsr`6AQ-}|=n)-=<9DokuU>_9Ez55j^U)~}wl#dqq> zH78##I(u6^_mMJp49gI468Q2F}iZ+!IG6lk8~;*huyaG z7Bo1J@x`;w=6-5u3`@+@&HUn^;!a`$$B+LjCtdNKdvwjYmy6C$zHGLys_COJbd4oL zf&QD_cKU34j@Fv2HOlrqf8a(*?WY>cn1Clbl5Q&nKb+Lb^i5*gV+MBR!DL` zZaH^y(aGrLxoURZ2by6=zA-$Ai+KMlCbw<((Z3mi)m3&q7pkVm*zVy&#y&l}h((Zq)G<>k)%*QR~u3YM~-gxipP9a9-9`}QSAJXM@ zj6ki#0|{ZX_3Hms&HTG>&HK7K&)CqJzOU!#%-U0WEA7&+KMZ@U;Pu7P=)B)+wlUwm zw{Ft$&sw3X7n(LoT5;8GS+V%*9&4q9hKVmH%j3FW* zhSgd#{a(qOpS`El>g1ht)(32J6rjynk$m$9J@wJ9f4G%RpIkbytn0`3zO%Qqx;-QR zbJX5{o^&_;{#5fhTmgHuDqkT@yO3G_NOYswQmX+H5O_;b$^Y!le zDwQ=xC+F9dPwBrmPxSjw)*bb8lwkI(_1+|HFeQsyMuI8tc;10tg>#dP&Zvj>Eld3y z{iU`@kBM!^w(Whlb-1J#fqGj9K6v#u)Z5&DcKZFb@>VE8lnZ^Oa3 zNj_ZCVoZ6**Lk zdKNmM!SH7?W74)87C`ggm>=WVBwg05NWGqLSxoG$ob&jyYP@C}Lwr%EyY z*I;7HTd^kJ7Gxu6nqU6S?j^!+8O^VJKg>35@~$bzvd4XNz<}a{8n#XE&^8=UM!EGUM<2 zK66yRpQ;H;)nj6l=+$a7! zrggy&6U`hBjvcbjc|!h^u0B<{8qWY z|Hd=W*zAGz+OKCrhxHjeE`6^pyIZi{JhQD@Hz8s-<7?0KlYc=)%k=qXjPjz}I4kzQ z{|p`q;dzx27RNG2^< zg-W98j+Oi>b3SUC$B{P=U#k8^(Oxg#)_oh@0%4M zG05tEKpUK#o<^|nh`>7?4u)mS;y!CL_}wz?KSUa7u9kkp8|Aa=%9|XxDl5G9p*tun^x}={l<{eKnzY`f0 z8anHcS@VZ9-DOYR4lw_dWR(ElVKYJHc(>X7J@)$V?j78I-t6bInH&;wh@PzLi^*@; z=H$-ba(J(p!5YTj_YZ%&e~68#^0U}wt|m6S%K?Vu&o5RS z;Mnp0^G=W_*-DE_IvQ4Q+V@M4@i6lfF&0qTVqjo!y}@U3K2CM!j%2>YTV!|C7=04Ytz1hVra)q_v4^+rC=F3MV#@w=f0nbli#}>_@DqE zXxdR6JO9n@hjHuIa?iTPnCCzL4V#U(+Bu;(t65zQjK`L};Hc09T~)VmiWH;0DC6N~ z_?+B>b8p$^#n0bzc%Pg>Pwf0Je+#xgUb055!@A65tq~}ToLc-??fB!fmy@oc^yU8`57jsA)gD2esb8nT`{$iY7=9jho zRASFBmEVkyk8NAS)^SM3 z%qjbA$86`VkQ;lcLtZt?XZ0Dco(9l40I#c3gbf%NCKM?@SZ<&5X)T9@8*G6Y!-2WC z$_}em`^LI%W`DdzdPC*PNj^SzKXCPV^)&2$l5{uqfc<`k#YLbyCm4!48veiCTj{l` z!S#TFU7jm6MHQ6)O0j>?^J~c(%i0HGx$Ji`Ze7vL+R(pgss!Wv-%ny#cnWf#x*dSj z059I`ID7p4G*L!%r34B19u@ZOVhIeNs zT#SnrH?3yAv*>Nzj>Ah$~;mcJ=2eU#>n>WQu#vE@*Hk8s6D@=W<>BH)A-TU(Wy5i??`p_}+;;_Du={7T|}ZyI`MYDr;%p1ocs>e*!my& z8cYd!hc7NUwMO@Kx+kb1zueu|Pdv5u#f#t0EPud5Z_R>?%-cN~cp#B=VD1gR2!`;` zsmqpRN%TCG<_Sb2HysjuJ%~-F_)HVq|2rF@=Y(CFTfvu@$Z!vFQ;=k#2 zTlL;;npsBug4Xk`p8OhUQzm zG5o%FB-;aT@$L9)?y1I<&=$0}r{VOgBQ6IR%tMk`WWZ*;`*>1ifA#h~;1+p+%63a= z9+9|GW`8GpYiUquYVSpc?aAg3B7;;jeQp{o(XyN;CdCM<+OL=H%J`HKcw<&M*r;_^ zIDVXdf4#Eo;bz7uN7h2C0tU9r-%r*Z$U1S%Ph!2|_Rj6Tp*IZV_?=b?7R--X^ZScZ zLPNG?+!ae}Eq$hcueYzZ*?;5S*QpE)2bw?rNSV~n)!p!W-}(FdVxP}sXK^%ym!~{w zyXCiuWw9PG@QSU!;bJxAS_^Oa(kmQ0UKfMAJCiFb1q<%0*Zx-ijSpL|9bNrRb!GZ=K_V09s#?S$UGUsdiJ)@)>5~qBtwSRG#MU5-L>(h6R9c%U% z?p}BPXb=leLG02zCUCcF1IUS&p6B0R<8q+D{mw#YMoSR5{kLF!==IKj;>R*iY*yLG zID;wl>#Yj$Ehzr?w`6YZQ9-WoGGBoe0d ziI@6u-(~sp7~C#tQ(|Hhf|qE_5=FoBSEW44v*@{$S1(~C?e$t`VM%C_&03>OuTw|( z1V21o<$s_5r!=>Locd=YEav`)Oal`_$1O4YmT={JDOg z9^SsZdtcA|my`dzy&W1C^Y;C(pa+gC{ynx2-C(!gB@EC0?TGk(*skEQs7dM6%aK8$|MZw+jz3*>x_kBA1^f;_bwelh z-<$dLZ zv)1(2DZv3Od*1(=vwroQb5(){2TWzozgEc&6fBtk=WO->L0y?fu3{jVqgIbZ(z zOYNs?GdUz4EWGh%SB%d0oiXo7J6S}GQT^wm z*GoAh?kT*V1+}qa@iykXH*1oz)qAdP>u%>fpe+Cz-nzKQbCuS4aOH0Q`RVs|U(n=N z;jPkIy?D0$&rjEG+daGfYSn)Bm0@bp3ULoM zzWpB>*muA;)G_2AS?B+&ZpQ_1B_kz%GBT@B3dt3~uY+PyYH$ z;CI|QzW=;GO7EdZ zxL&;V-KRI3)^J#O+ErC+F|k!JgQKHXZ+iQO?b06>M&?JwhAJgANdI{EbJ+?G3(r+r zN(nm{r5m8-dWCY^of|i=O#LD5mUWx=ch%%$iHCMf-NpGM>1t;Ka~Xdi?(gKbAY+Pd+zeJiHZN z_v|RGopiTu$MxAWBpWYE6>ZqL(#EHu-I0aIzz)Uzh%gy{{hM(eQBV&Rl5t99Sz|^gDlQN)Z3|ssjbvV(nj?`MhMJ%%=@9 z=U0Jx#%`&Gt1sVX;R)DtcHQZtMe|QTRs8dISJA!6(-*z|_2=nJt@(8Z=P&wbuzlEd zuiD5v=;`eA)Lf>2uP>+C{VjNy(;go3_jvufJ;Bi4@Pn|u5v9$!Z*yKhDOtzRW*C+C zYfahVo^2tXa{8|{_$o7gsZ4*pZv}^i<)2z{M&_9NMR!HFb6R-bt2a8kyWjP|fy0|` zf8QDNSLDyTO|maGzmvF9stOv@%&)s6BFd=l8SBczv;G7dKIy~4Qy|+NId_S!9#h?~$BH%rjLgZ`zt*k`i`5Hn z=iR^h>%VpSFYmqDWmo^RYU+8r8R?25%oVxsZD%g?|CH+p+Wu4jFKgy`mjfSW!`o7K zRw*{`Rhb#_k9+Zz?$&A*cPjFSPkoXS^)%^ndUU|_4Y#`+81s@0S6^O!_Vel3 zQsH-DcmbFX^32;=wKPtVtf{e0sb zeedD*kpCa&Yv*f2BXWnS`0Kh2yiKK3ZK5<95_`;c+fASS@K}`J^QjyXzn&yr78PYw zZ|A)Ws;Q#$cKxXcyr%X*rSkvU%zL#eOl?QjyVcXnEk7qJS9D7l8In_8|d60T# z$rGJM6;LBT3S`$#?L6tF91=VH!I^jZ!S`A7|2ps=c>EmHdJaxwiMh$bvmdcwVC~J) z+H>rCcx!Fe8t1ZCTP8T1pB~#5HP0k>mCX5+)(_>NaWyS7raDNXaHuScoqu}z!S_Fl z=D%IH`?dEYRY8LTXKnr_PR^e{U7Yd%L+5nsKgRGvdVAW|*PHL~luQ4*xX5oUQ`5zp z>S<68N+3 z`tM79-v1gwnb_+tiw;xUeE4u)LH4=u*tV#)OIJeAJ^Lgtq0BGb-~<}X19cfMd_P%L z+)=9^-?qOtFtT-KlY;N zZu(~VXC|4ep5z4be~K#57nNf4pY2ub%NuRKr7dCU7pYRXg+M<2$f}->lnb>yBe7fuO=F_p6yc;+qc5GYszIf}a zqMcSOko?)%2p(&^!f`__K@Kqqwf)i2Rp<9fKNBm7R$pFxxW>S3b?*G9WeW+ z4+=fySfSeLb|81|oHMo(EDv_M95_&W4H`A!?Y{e$&Q0f8zIJuZw}(o`x0M*zJzf3Y z{O3Q{M8Sf;Moja%8Y*WXa(u*f_4CsYUv=otoVv4ju7TI{*Lu4f#Y{|nr*59PnI+DB z{*xq7H9Gt1veW(IPhAhZx10CuuewsggXiG<0BT#@;s54f^{#!}%1<}hL0MGGjOky( z#G_|!oVW;dFZUGtQamHg0P zcJoj>f3;{UQ#c>R)ftIjMd^%L{GXO(N5`5M$Om>2uz-LFe^ZlDp9_`3Zk z`9YmPL_&W9o-w}r+%x!TirVW&!(F$&Mdq_x`K)^K@zAn>9h`y&2P~#aG4B6dF^k{j zfPq)-{59t7H@+8@{>WePe&&zd&`B@1ocp-vpvfo zszLn$r35+HJuM6j=9^ysn!{i5`e#L0`mgoRc^a$V{oLgJJdvqj{TENYu-GzCA){%= z6s+^2nE|>Mpw8qhdwyp_A`dv;ppB4MhZXj(^qRWOw=d0CPIkMcZC?D(+O44RFP8%a z+YzbcMAr56os#daeO_ES_m&TPkKcXyZJqp2Gon(jc`-jU16AyvEIfCX-Q8!O^F8)m z@xD8$yR~2ERKA$C>|9dV^OB3tPDak2UGw$Z_5AS4xCE9zH`%+-v?eiJ4@zRWb0zej z0@E`__{d9v@^fZ3d*8Wp&hi!?kjO1N`7~`u)rXw8r7Ke#3ud>~_@sXc%Ht7#^vF*`&X;#uTMW>zhbr4=FGX1T_g31r8yyWzG zS`W?!Pb>r}KiDqs`*|UUMAt=F&ifs+=G#(Tf%*%ppcBD1cDcnSx%Yl#|NA;SbYA>4 zQAYn;TJvjnoY?YpF2jM+j)uevctTp2yW3yy+Tl<;_03w7-S#mjf62L-x?)+%tuV`P z285J&myx{JV0f#%Hjc;QP?5=6m`Azp@ zx9#3^uDN|(<}01FQa|zBd2_aEK8@aTe!gCD-PZlDPydhv)l(e}i53Viygj<=eBFY# zdbyM5oa4zmAhEWrcG~QRZV__2udZ-8R4fKrvE|;EpAR?f;rKCkbEaKIGz-u6-1}c6 z*X@p3#|LU$Zc;kez79DPYFecI{qs`mdAJ!PbI-}?_t$^0+Qc$Yh#McKTV%Pl6`F^-(gGp(TnK=WS^NZhh&u6FDUwHq0wGbooogNN}W2;|J zewsFa_0xYFUY2k5Pu%~CKPpu9vgh2#m6Nyosn7I(e?9&7ew)~*PN0cnrG$#l@SG5H zI_>)Nq658imw&cO`M z87W>~bMM+{r2N2Yeys(lh3GurndMJ%qF}-0ke`R$yU)yd+tUE=H)ZdWAumchYxDzhm_Ivu)QZquJLiBTXuQZ}I)@ptLl| z9CWhIy5;XD>+jb$U|P5O&%<)1gm>ofHqQFo`|A4B4)gZN`K~?_Rmj(K@#m`30iU1e z&Yg3PxB6f#Xo<^Y4vABjzMj0AH6PkV*L-vRv*YSjDOM|sZSp@oNttx?&BHpkzo)OS zj?p>Y)v!Ew?s-u8f9d+e(Ge!sr$-nX4n1)YeZ2CMp&<5k?sR!Qmjeajzw9FO`8K|P zdiulmE%%SMuRXN{R-Rhtz5mtJrNqQ0Auece#}47ew@G)?cgsI3D~?s~&w0}l2(7td zE$3d%oP98k?+2?=LPMdJCDXqTb0g<`=sB5o{b|xpa0B`|!)Fui^iX-L3341@Gb0X%)HW*X>#;R@POR zaAe)K+H1_Y!s{p5*cshnUHSsll1d4WV!0DyIj{0QV*%(uIb%@sbbizQr*^Yr%TWu} z^J$cP1#dq_3yRstu%af8x{VoUY2*=)ko^|zU5qPBRDzr3TUyC5M?vCd;{&E&YCmm%f2~rFsVy7c6#Nhsx90bo?}zVX<-LAVlE=V&EMxEM;;oW- zIZtx}kFU|2;t8_sb?*H4`rDKeez1Zwr{cH05$`tZzu9}iIZQS4wia{|mE87oJ&aQ& z7|*Mf+6gl<$9RKAt;^;b{V{CsAp}`97a6?p8`@+j{@|&WfFop_}V>zp8!= znz|$pUdV4-DJxL!1zM-0l&}LSz2p-7r%Y*-tWCyf(H3f*T3(KD%}|)+k~ZNj(+Ih2&xx~IvT<& z>msk+ymzJa-;awnlRLjNO+kzoYwy1GCGvgS&a*M9l{G03n2u$DmwlZ$^>NFoEv9q0 zzc+%4UNe1j#_3{=_I5L$lq)6VdBO%5WdCWuP5-C3dXmrb(!S@u^X6=cJY!S%&hE$h z_0uBPo$7iH>L`Ziu-v)w^Rj#QmVM649N@KD+|AFa(-&6BEadIE4jur?OL_Wnk>68` z#%gC!+$tp;%h>$7XycvdMU@=&yAR#lZ<7+bYD;dBN%p4~JI=l=eEt2;ykGCvPlGH= zn_u(st(HDlcf;*vr$CFij@|S_ESuXisdoOJh_dFr_drSY^0mY%de>sNF`s>BRyuX_ z&dn_Eq@m48d#ia*zP~?bW72ki%kA&&Z}*+9JvV)KPI>EJ1N(y9;8eTpqOvQ`P8QBy zwePj|qiuh_Pd^>A*7X3x;=l}+J9~N>=DwW*JC>2*fOaHwL1B&A`pXhmS}wkvY!hA9 z{y&*v^R`nLuN)A&;|?wMmUM|0F zy<$0Udu7qB6vNziza~lCsIT35X43|Ndb_osU$%E|*=jGxuzvOX$@(q_KCFh<bkjIqb<7zMed~>h!)1ndYGORL-{AeftF%jn~}W2kxow+i@#3{FZbN`?}m!I?sI1 z_1(6K+Ol%*)kpKcc>a4`KP@sBw3Z_I2Oi}XlMP?bi%2!k? z>rC$)W)YjL^||vf%dthTCwG@l|66eUg!asBCpU6PJh)}H+wT5tmNU{@-v83M9t#;m zI%L*vS5g|AYPYhu=*p9mFI9x2zg4i-^387W{#`rI|8>o`gG#;glN+vI`+hQhf8L#N+$*ytM^ZaG_e3A~pU3hJeqRvKv4&Ihe)adT%mlluxZ zM)AM;!|u5E!8iJ^HHU?sED3s^a`D;P$!5my7w%ZL&i~(^t45$&?&y|t%Ry6y&=CK# z*Z063UPPF$^8b``pm*+P&#A4TZf*E%yVrLO7HfruKK;1IOGe$mDz?7D!ZZBFli3^+ z57Jx?#DvdJ*=u)X-*o-M_b=7;VMK3|%Pzg2@7F^^{NneM;`i4S=`pn-Iu3P*)9!qPI|m6MKl-#X+cu@F>b z@NM_~lM$4fHrt|S7N{TuRsC=GR@Nl!l|~xhFu#+|T^9{s{aS1$Xk%m{XmH@i7teha zT1;$+(0lcBmACnYnA}j+^v_n$)Dmj0?Y0Y_{qR_b+}YPxepyTG-RB>-roDRor&VdW zQx~r^H(|KG_1@Q?jx2u`lp;@@XudiA5ZWr+l=1n=lCyUX`)fGt6fBtRZ$ASxJhku& zN5v;2ro206k{IAcZe8GY_4Dj^Zp>6EojT{t>lvNRg*zj@-+b3D8NBkfGXswePwf0T z;u4Jhv!7Hv(_z}NF36m5zU(;-XtUph$c%#m1M*en=9~Qmq>naW-lJBC0=4Jm} zSa_5#tDg_6{nhx2ceeS%hcACUNxGW4;5pA8qvwJL&gN{d-M3rAfXOcJ^T*vv4`$y2 zO?dHde19}+er;y`3Hcq%R&Jhg)iQQVDZBoB_vhGOhqMv| zKdguK&1=t1|Gnl~>QO2F*jU-7`;%QKt1r)8wpM+EpMFJJvh>A}fF;SG!Dn#1-uFdW#w<^8Wc8V{xwg{m%BO4xB-FAP*q-Uio` zpPA$~O;UQW%ZlXy!=0Fof*%&0JuctTFnI}N_UGT0m)qCWuWetuYSPOk@Szt_%E$*P zUUO1i9+WDaS5yU1W5IrD zrD|f4jFv73p0Cy`zo|GEGz|JamLV_rqTq+$pF@=GzkUC0C$7K!_dNabo9|BjDz5;I z$y{7>?q%TYRp*q2k4>U8iz_o|jyFax!yvr@qev@voo;n*?M1r-wFQXZ)*R;8}8oqvF!F zpa1L1r<{s5&Ob(k%op}r(sumChlnl5x;_NMBc zoIA92nCv3A{CpzkegNLS|FM3<|4#WWS|>}Qo>$y^a?*45(KS0?dpA`ty~6P$qiG3HE=*d04R|9tsN*8}Tww!i1UT|52v97tr}f44AumX-Tvt918V zx%pdM|M48Gz5exN{l9(=i3A@|CGq9A^81%N5R<_B*ZS+3#coSI>#Gu4WVF^;kkNUf zo_Vas&exF{P&|`ftJ$Bvh9JVU`;LuRH^Q#XFdoxr#-nRS6?$2vEeu%@S%@Ys5 z&x*a({=0oGVlXGuc;=t@Z|{mv_dbp}@HJdkfX$fa)RgUOOTO*=|Jw5Q?Mcm(bZ-i& zE0$Q;J5=2^vQ%m_Hf4QKdF@lwzv}`VA<4U5zde87bi!c^mp}FQV~#G{z)@ki`Y~v7 zeeDz(#@Q@qauK~F%S$oF6;Ep z%wm}kzftgmr||yY31XJ*hx(I`WbN&()t_D)qx1W%{8tghr5&EpN0Y*iTc`V;QPayf z;0!8m=U)G~oBw&_d0B>bCzdk{;Z52Nle?LeABYHcXLfDdrp@Pdv0w1~`p>xwVtrO` z$d{{_TPN|j^4QuU^~oZakG&UaxYK9J6j$yX6Z5^W^6v4YrSi4w)IWY;3)40a?uXxhR&}pCu>WFzWNf(M{IEi^{6}*yt4-P;x*%hz+kxfkzBQi?>P*_N z%TQ*yT+(&9Quh5k(~Bl`+z0l( zZ11>VUn@C#-J0Td4v7cfym}j!=ZgN*3?{hzJSfX(2o5w{rkN+%{UmZIC zb;vPkk4)>mxrVDB&)sa6Cj6C6rYTAJfp{?J+WFnmZHD{)BiDbtVOrWXIa9XZZ+3-Aev4#*%dfV+p zp?7)1*=1c8vv10>?z#8*sYLCvll{K3g=SmT7^f_|;(1`oQZLPAlePSwm+tw#qIXx= zje~}-+YSFcf4%wz*KC#=v;0Tp@@Efmv2NI1C-Hc-kUFFPsvnPLa?A*a54IGfue+AK zhU>P7xL~1?r(teRceBi~jvp_zg8xbjel|P0=IdX!xLg_Kx?S7U7(W;>#T}pUev8Ay zpspEPLUqzgZESOs-zmx+(C=tqN2(2nEjOyUtN=Z;N_aG zYs)kqm|nXpG5vK-_NAL^x{l3a3D6PzQ0T4c8te`-(lYl^$vvAd-b~*d%zHlm-XG(7 zeR}EMU>2T&YNdp4o$#z-UA|W`IWmdm&axS^PO*P~Rb_k3=yJ*&5y5_ct=X}S*LOwn zZ+!JhMtiA<|FbZahD)WfNA91yZaD3`y7u=4>sHV3Uu`kl{NtA`g24>igK}7EE**Jq zC&I{lr;TGqE$o_ih6iy|q!`cN7BLnyxHJ3tX~kbY!dGuu9esJ_yJW@Q`Rm&yjQ+}O zRAYR@FZdzROEBExU+?kjs@wonfk?8D0N)Oz-)#|?g(+N4iu>19I!+n41 zBu`&bda$ia-%gAX>9B))I_AkS;u4JKZ;2EO8r<2Lc;{Hz&NJ$oX}#}_K4k5@zGSjz z*Gf~)g#41&BmB=_=kRwus0-0NS`u{h<(|If>ApTvQ&|e?cO~}x|NBeJEH+XdwDIZf zR4Gt1swPj!0O6^5Gg)|!Ctr1qS^N2DS$~>lmh#?)>nHvyOmhFMmE|pTAnxU_4*7ZA z4c|Sz1SfCnI=ZHB`EuVg%fCABS9x$kM4EBF$;aKGRV>>teuorV*Ppr`0A;6>x9YCI z+u3)lCpSE_h*@_$BK;Oa^wN&w#gF+LuJ4ZM-T2aYt!Llo>R~ z=XJ%Nj7K>aGj2DqU;m!`=lu2Xi>be=AN$(cWj@+(H-qyiL*7E^V?SQaejSnb$@ak~ z-!p2ZH6Lg1ynn#m2UgEJh$$sl)Y!-K-#pamDZ6n-*V~5czh7o`#O$|G^X)o%_H))JYh1HhdhVL#1DwlN3 z@L3gc=2b<}wIe5&)V-L_Qji^Me&m16=AM1}+9IHpvvJq^KRzvg>U!X_r|kUhhJM5b z-8Z1T$m+*5&qPy9DPhOd?yC~BeT4H@ZQ*TTjC=mGsK+jN&(#pYbmMHH0}BNh@9!1S zoP|=fsx(-uGO=0MC?$9yQkdhDd1AkoE%WUX7BqPCX8CHxqT0pFbGs&A`z}(kwNU2q z@~09z#g<0SPRjFTve1aNKgR!D>B08E>!D|sht4@WyW-ah&i+#je0P^gKLRb4Z4Sy| zv03~0bHD3>8m%H`MJ3Gyy`f5-_uto9EX>F(!y{Ox7qe@?p&V8;4(#;(cU)u@#F8yoD3VHU;H)%P0cnUrVk2ss(;<9DQK`~ z=JV5rzkC8+g7cT>GVM8c{<`y%S6je^O+IUbvl>&Krt57NXg0aHsPct4OTe15X&v|L zclYeu!13c`ru6>Gcov=l>7{N5)b*7T_@=|lN~JZw4fVKt8d_}&HbX*x;>*|8`N3zR z?t4DC+NSvEdFsC28J|77B9ncYEJ}_`F^Zhc`mxpHSzj{3TyuSyEV%x5bL_Bx zz_9~fUsYdodE9P(AUd+#`Oo|7*N@J%o;PpXN6@fYn9G4D@WUY%Xv`L$+~B=?=G}cA z4Y@td_2oO|lJ7qKd2CrnMUj#dL)`l$(__odZ&nM{eDv|oES3TvK3yh1&7@0V8)sbo zcrH?UbLVHN1F;~t&s!(|_%xI9gP&Xa^j!|HyTiRv=yG6#{k(Yoi7U4n_e%c=wU6yL z?5h-8nmPGVN|G;=h1qXe#^o8a-5bep%Do ze;<_NjxCdZd^&%9^4+PTjI&v4D&WPUNap4K!i{o^w{Y!P8$8D^=!PV_;9-G}pN;Ob zE&r)pSlCY`pU%dh)z8t3B#?7-ZH4DL>F!I>UFBg>~kmxtrCp_*XM%fOgee>nkNN zl&Ld4+qY8{x@g~F<1MR4IYDt5yCs$Mra5QE8l_zS`m--|slb0G^H;xW(w{B!dKBNF z9DZH%Ui}r9Slc(8ic8;SXWq6-+pMbPMMUzBE!zd8f|l666Qrdu-kX}X3k&6uT?HrXoe zvYJ}1tnb`^Kg&OVUaj}q+xg20%n%Qt_@D=hz8 zCS)M9I8P$^OvHiht+_p{rzRQy>%EcphNYq7e|N)s?I&J>|Hc0JEid&^FWurR`m!y# ztAX(pxSVu#KXAXZ;d^A{eAs&bie6A7Z>h)1HNAzP@=GT9Or(<&<1V}RA7|}a^WH9C zn(sMNP1h@B_ZUCuztTGTyIh2Ed51@6*S3{Ozmg8U-_N#xw~QkTPr$lK$`A7EW9+}2 zX1L*fo1-Euj-^JI>0WwjEo}Ms12*5Ok8+~!oqd-l@wi4bQOw|Yit&@~d$YA%6MrW* z9xAEbXS(vP;XbAZ7JrPH_8o1`UNvRW%3z;cR?9A{rA@Y)wd|H#Vt(Z%K}O~&uTxoK z#LF%|KK}gm4?h;30`1)3qv_|@&waI2{ldaY+ z&V9Y&_3xk2;UGVHMjw67>UO{$w9ad7?y4Vq4siT3g}R(=*yVc)7>Sd3mZ#Y#P_MtbMdO{qqX0>PHK~eWtlAHHu94tW#^7pbMEF z@Ltt?R5GipyP@6iQIhElmNSmGQ)ITzR9d9_wwq5x^|{NZDT{WTjA59vd|mLK`fDz? z!wlzMF`RqVaPF0hW}!>8jylivoEKmEv6(|+fyd^PWkLm=f*-cmgPI4&mOSA2(SN_Y z;k#?(d^xCvHymS^TFeDiOC1*CjKv4cBxg77>Z{n`#H4XwV&lutvUy3r^cnJ3tP9$+ zJ7dv0dA%RCQ|J3Kv1x>@6#UR{51Ig4eTC!4pH z+az2L$jm70d0~9*ZEoz1>Czfr=59Tb*Ox5YA}_-rvUZh{obPIlHIKWVDghJ^qr!>O~EQN_JjX;a6oy za0ittTYDSQkGeu5_V06*2b->aJH1-(-;Z#?f|GZYplRuWLP+S5n`A{DN2F4p#bApbGpXcgr_zzl)*z2jylx7Ye*W&Yurjg z>e^;o-QU>o_i}38Cb!^Q{oD-S`Zy#SV$Z6T)`TUo{JCuP@7H7wi3etJZU=l5{Wsh0 zfAh#+>A@p-Bf-Mr{~VT>8^?Ae_E^O8UgURU+&tfGrv2{RMCk<$o1V=1H~Z1ikRpZ( zZ%{aveo|su$F=*~&+GM|Jd%AW?BmVNpOhXvS9U@0ZD4%B2lnsDC4Hb}zwD`6OwV``PKsFhfa6CD%b9(W z%4W{{4x6^t<~MHQNp_iE=$j>-EyPgn&BAkFou681&993(s}6ZB*#9qCwjNY9dR-L! z@LlPFkVx4rc8F^lc5m%%INi;8-0)G2=*7;4o5FV`4EuiCt)YR#n@GO=;pHs!_g&6H6rmH~{uZ7fY&jTxWOh~uptPo)gUSp`VtLL)W?L+$(J4EhE z>@j>C@M+sN4aS21E(aLiyh@2XzFb~Zit)b=6Wfm7Akc2P2keheseru5z`)?Hx>RKO z=2d4nDl9u1G=r|E>%3K3q?=PL958JTze-0(#;ZNYnIBYig3@eK*l~4Lw*&R&oDvVV zf&8h%bZ*^-+cTj?75oo!nd7_qQPVs_rE}rV-!^d8omESpF>lch2YHRtYLA^cUun69 zUW@Z);F|+VxO1mTG5&XE;VFo|ysgXM9<;qMl4Z`^+p19WWR{B*nyp-A^y91iW0+cfU3wj^)qWex-zl+f|Z` z*IVx%|MhZD_x?Y=EH(4t&BG6e79H?BASgIpjq!6sk>72dkH6WcB+Dqb^(;SpjhT}{ zqXp!_xo2PhxXYgEb^u&OoC0}OUQ~iHzT{)C=Yj8Tu(mD3|3@X0k}lbNS^dLb{I%ih zE6yDqFWL>WbJBn57fddl|GmO@?)M6Y0%35rvR?UkJFDA)`+s)y?YF;g18zlp25qUG zU;gnd|LXQSNp|@15r+R-t~$50)Rwy1Cm(s5c1F&=@Q&F``~2L@`_>CIVvnf{g*;ry z!Z5`h6o_)7(%?<4+e7kL_6RcGXNFIU{t4=e@LBaqjj>;F`fJ5&-$EyQnm@4)i*?O- z+c3MNb|1rzOdSsf(2}16>*VHM`FNY(^#DVAiZtW-uAYYdVvP4S;YRH_)y+|HYueVz zN2x4(Hm#qM3mG<;ayBdi$Hd~D91;&MoKY{GDEPtN1jWNIi6jnlv%rbInKR1>?*X~$B%ZCQ@0wYhu?9;bw1UL3JOqUikC|`eCg26o0MJxBYW^Pp1DaQ>B#H`_sLtHc@iBMw^Fv#>HcjiqL z={eyymZ>bz`73an%VP4jbLBb=JGeo$MranxpSS$0e}G1X!_qEW+5Joq3r*zT{`>b& zwS7MWS!xiQ>2Elm6#TH2V}|vl;!9~RF3~sIR2JyW)_ebR?biS%hHn#~E_<~7{d7^r ze!-8u91;(%`K6WC{7P&T`~Yg!KmN5a{#YD*)%k%wuil2~YK+D1yX@|740179mdj** z;%7k9u|6w?Z!^H=MVWk@{XK0WmsMqt;78D@9MDYUdf

zP@~4rh79_PlXm31>B#_ zj_x@CIyUazp|lgZy z6#O7@+w*|ZgS+s$?!mOQR`3Z5`H2$BZ9SLGqIZWkNS8=nU)<3V#=vucQGk(o!)o>A zzJH$m{iO6@J?LzjJJ(KbIm7Ye`19F6-pMOHFn=n>1$Et?*2vk9Qi9Gs>zqDqw&A*K zN(p7tZMS8g`u&gL>5VTx#ghI-*My|uob zTXw#B&$d15xdJB4$qt&Uw94q49n*om8m3HjdQ5B@*DhafQhwn5oUh@w#ms9TGZiN{ zocEj6UdLH|Fc)@(#g633YDs~QR36wpx}=hjcY*h(oqXxku5SK@P2jGP;a~9vWd$a- zgm8cV*+15Q=jv(rzYR2MeCgzx1`Z2X8%t4!{haVJ=}xof(~x$wlTc(j9wlgBEgvd%TUktz#pgU?$>Vl<*?sLnOvw;32I9}03D5eDKr5!OLF2TE{9xswxc6AqjaZ~Gi%MBs*SP% z6MT=c3oW_fr^?=t92PE^&gymmRPG+tvIM8D8z-}DU8aAOJ2>;@e(S=Qu){WtvR-eQ zyY9;c{U_q!IS@zYnk8mG<=)9_F3s@z&BWmP(rBHhoCgC#G&r}vdu%puud${c)4$E0 z2Nf;0FPv2g+Md{wVpstZR{38&m4b_KqIrhQ)>j zEDZlVK~>GYS`$qprhlM*MQ>~z@6Eo@P|Y-9&)0f;qCwdQbi)M0EUQN)VR0;XzA8OP zzT97#y!%?7=mWOcbF7+5w^nU2He|5T0i{bJM&>u`3ww6Ne7o6aKD$Ed{<=Fsuo{c~ zQpjzN9VW5zg&WU&KT<9iHofpyzKct=_!emqjdN=E>kh97atXbcDZwBIZaVJ$ogpN@ z*SPY<^pE++3?KR52lYjZw!TW1_Oi-|d_?A&hwwJ~y%m3W6I&8}dPIKLJK& zk(YbjC;xbm87cU|!0pe=-=N6>?U=L}>DN}SkJS#I+mj46H=tpeSD{(=BeSsYhb6?X zCrhx@%=o4Fe#&#t;2Z2R8eX7~S<-Rsoh8GM(4}q%>}Rv^1gznoH${qZHVe;(^}iB( zUYG7G{h0D9=}vCNb*P~W1WLUM&9w8AOYQp#_sJv)Fv`#IeU~{qG*LcpfyV2e?4a1C z9!uvIFfIsK3Qdx~9-LIM)6rv+b3MTD|Iw#i=YM^;?%r*7{~%unY($uWD`>fqdD!>l zBS*6gIDZ_-G4i{8=UCZIKK3^=3uP9c|FNXAb8a!i25`f$DxQTWU`u!EzO4pJMg09| z@VKX7_iGwC-EoF!MZF<$cc#>RXL~lY$>UUlovSH!1QrJ3M3a*6w9n z_>BXm=sn)|TIBX;9fl3oAcH_&ya(EG@%a1c9cL{53N281o!3!1{XOTx?wQ?%+n>&b zo(S0B6x!-`;BYsnLjSw%q|EKDWh)uXZ+!Xbr{z0$(S~4chBu&-#CHGMaE0TCwV*-4 z96cj{$NDW9o8{h5*s&GrNe0%{t2#DEik2oyuWna-RHMmsFI`gpoxHE?!fniP=@Lq> ze=Y&}nSpOAC@I$dND+E(4;mwTV3f=d6DpWqEdC@9e%l5^>*}B*nVo_kcJwwF^W{G2 z1NE9WZp-$PPUaO!o%}OX$Tw3xgyBXoxJ-BmT1w+At(?zblX+x+zB9aSU;QAJB__(< zvPV$-v|?M&<&?_m*k@U{xA;C#i#=w0Ewt;A+zLj9-#(ziz~uk~fA-c_i%*mrqn z%h%kB@6ZrW@DI^^ba74Bt_{2Y9+oKFC$-6M%G0+`?%bIiwmyaf zcR|h7hdVhW7P!dU%{@}>f2+Mt@_(Ad@gJZ_5MpFze`f=3`7TdSUHkp_vJKI&;jsh0 zLAUbO=;^MIIo8pARfFlC@a&%7)w2%St#*jqrI;l1d9F36n7-2;r2JsMK4_Tgs=NR4 zr@l;b$9}x}of@;&<-mc5r!3#@Sr_aR&H4KFhj-A@=fJ$1ZU3>m3y@|os;}z4;vf{zu(!=c-W+GV(F!y zC6Cw+-bS=WCY}19Re^@0OUZ^yp*e?6(!|i2g~n4rnZ* zW7!5-hQ}7iep=<lR-fmoIy^gBs5f)SI&LEz2NSW zjF|rF?AE*gpqYZ9Y-&)~<;c(!mYR)Ht_N6Ow!Pi&t(TiP-*bUZ?76>}H5ZvNN-%5^ z0<~&E72RGA2@8R{2FHr#zHd95^eX92Y{6_+X!_xE=+ZD}isMsy;8bF{Ja^eAwP5Dd zlRMS6hH7OoTQbOij#JuQ_3fO>y-Luj!P(QV*QV@o7U&oAJ+@d@Z+j%vmo9f``BmSV;Okvs5}q(q2+pIswpRf+$>Nssr~cLWH1*7#R+H&b=~fs)N}TEjQ0*bExp$+W@DMVN$&lGomXKc7JH7N?^9o< zzFd|)VvOliirDW8Q{yd(3xj_2y&fQU*nd{C?}+ zFzD zefhI%s;iZh7Hw2!-Qjqy^GWH{F79rI23>G6ep|g+N%?{Peql!Dr@P|5UgZC|?)cn! zA{EA2{X6f%{CZr$RYxt<=hQ8EaYMJ5ykimRd?Ee5=1*=nL@doMVE>?%?D9qOyNk31 z6GJLE0F{&<#If*9d9C#L%Y6|+f4|dFi@(o3JsadY1_p)#ouDI&)+R;Wy4P*^sL1xn zt$VMkCl@nqc)9<8@2ULBKGOjnX+`QrO1^(n7$@|x~ZIflK*gJ<`#X~Ug)=NHy3R9SGA1(7K z`zrzJL9)JVH(VF?Q}4uC^>_StOy9$%i)0o~_Uwvm483wSttV8SX`grOv%hViCd+}k zmu)rKHNnTXF|jdxYXT*|zt=&hNbcp3&^U2*Q~!yI(@!rhT4VZC0MWJeIIF&LkLLlw z!mVPA_m|GOZ1!3taO(GoOk9RNg0;u~p6_MlgpOAKz5aW1MN9_E9uY=n{x^@T?psY! zIy!mtrfZL#;U`2kD3^f-Ft~3=%HHOv*eS?(zjfVt%iPU-&I<+f={;uVR8ori&C8ge z4<3ri=k9ITF9b3zY3BRy*_Tx|zOwx=4;rfnCeGfT>UQ9|wBU!^ui851yibTuw~^RT zZsxpCRC8&^t}R&{3>C?s7zj;bx$`yo&&S`dBg&N$6!x!^PoDZwk)?ZP$XC0HaA;}F zAo!v2R?3`z(t;OfG4R|`cs?t|mZ{;dIw!#`XTp4pM%wl%qm@ww+Ru-|aQ0f1hD^dLyMq z!Ex%g|I7@0pyPjHYd<~oVd0Tk`!ua%-T89ccO`lZ`}ERq2@GP*D_U-{&xzemv zd(N{5^v$WBIa}*c7YjqXKRBTO7KknX{7LD7zUzSlvb&?c8ut8rCphP<>ZdEBm%e>g-4HH$tfTJ4tWQO`u(bf&A8s)HD-Ios zuKg8QDfl6Zh3C%3?$N~W=6h#wXpCvtOl)628}s9QF+keJ-Ok(?{vd$*{^ci znZ5-~FWpEt|OFp89(|s0%+FQ}ey$cAzzP z9cYMUjmrVS+dsWe<|3AdA@B}P6Z#U=Y$u(;la`#F;I-T!&;J`b*b)Q%d^TjMp99gAl8n>C829%y^si)k*H-g?qo&fVT^s647Dyz!q`aw5 z2F=)h&2=7PaSV9IT#*H z_v&o`HPEk%pMO>u6mdn3iLLIeL?!cs&gCCdA8%5J`nDh)JhX7HtYw}3AC8L2mCOm* z_520RzQ^V*U8x+D8OqNP&;trPmjet(f5ouyyqWoQ)%jlz`!-iresAQPS}p}OXh$%3 z2;k_^2+#6b39>A1A%+jH z!Nt_)^v^TIB^c|!-Yvc6Ip5)@-t?bL4|aJO=BBRPS+N|JGO90zXr5d4G}rG%o8h@| z!FChw3W;t1PanM}_dw0kTygo7MH|%^8S*_qMa@191E#oj?LS^c3mR-N?GX%@WPb2- z%No;<7j}N(gnIbS>|I`kR{lqG*S%{u)LVDlVv6H|*=J_|&AM#XD4p}^t+~j5CI)M8 zD@K3b*>3K8ac&1{>lMT;8l!hdl}-FCcJO8=cade~cDMsWmy4ut{$v*Z{jtRJ(~7T; z&G03NAL$wpgiFW@h#bE|U^YLwQ*GuyZiYLopcdAORUPN&cQ!N{#l)3P{2cwi;$n)8lpwrLRM@<# z%VPFaaYp`XDaL%GyjR()LhdZ9SRiv(AktiBTk6}bY|#0Lj)umdIq}bD|C=3j{@aP(jdSDXcn4pb=eEFLw%+4MGnJ%v-)CsBR$*dG z5KnbK;4Nq%(|I~|-~GtV*f1a@|)%C#XQ2F{luZ`N8*5@;AFRz>Xo^xTSSD}$^b}x!!LB`KI)zc83 zJP|bLcJ2CAP`6&;IWuRFi^(@>CWh~zQ4O%c{m%{OPMMk&tNR-?R50AuHIH+^(qVo(5&b=~k|vI7m9 zJ}y^Euu!@F+U|A9`^`I-f3%&l=^U&9ejxC++kwCgmO15*-mSm+cr>~`|>-pN!Dj?mp@@@n4R_c(ze_4=574_^Pha?t#{wT^unjQc5zRu ziJS0L^Y$dKh7$=2m9fuXgw8Kp#GyICV)Q+`segv;Y4bS$K}WdX+Xi`fpZ8&y&lU z9;9Erwj8S$sw%vE@rMLoCI%_c z)Q|jGw*%%%2^MbC&A-0;erzE}!2Fr>?V(xY!oEp!^lx=H7^_Y%FI9eU>#|wsEON1wlsU4f8Ll{{Q)&*X_Xd*?+Fj&vQ9&VaMs$ zRhR3%J@x$NocMm{)~_uv2mfGHJz3c-SWqO-c;B{g!S0pY_p3WM+b1uOeVw~Ed+MFz zrVI?apq$aK_g(PAqJtbiw%6}FslwEj78`ec_x9+%NB70HeD#DT6owCt=ccQ6FWh+d zs^_|S1wtQ!k01S?^XAs?pG-^($VV5q8Rft2~*s!?NY?_XgP0PPed8h6Q`y9IyGH;uu$&byfw>Hdv z_y3B~jhAc;GN9q=-!FDQG2d^IZ4918i7E~){FOhcrpz#GuU!7~jj+<7V2@YPwilZu z=KXH{Gg))zuG>%FP5k~iN9$Ud^ZjeboEPYtF8{BVS@g)7;lORsVx!}=EO#ELJjfO_ z*z)Y_*LAnH?pl|!b;7)D2X;dp$RM+Q(wyGdX}WF)UdQIiXV!ns^V;_H+xHpUIQLxN z^~mMZx;y_F87#y=spw+4D+|w_>n5uCd9Q3IMC<;_y8h_zpH;9}wy0CJj4g>Y+vcek z{OMWV^xJ2Tzn^qFr04CVlr8(&E2eAS46&JTpo)b-Mp@8+;r96m#_Wc2Xo=(!d)7XrrSLAJn!A{m6v5)U;fqXd&$$f%ZdkX z=PXNEwc}yI202CscP|#619rdGJ+YVWX^4-{|8(2FtKp$#Y}|EQ#V?ybZ+!K&0&zx> zfwp@0rF$w5YHC>a+zjh^>vNms-r{FfQ&gPq-o(TB+WK zd^-iEdpWP)EtYk`%`T) zhs3-yRhv)WU3QOi;d5>EmTkw@=RgxkgLtCpv^hGrZmCTFQ^2z4-nF}q=4RU_3S=D5 z^C~k{pJZ-!mxJMfAtVZ>|9SRY{jBSO`}=M_+3$MbLrPruoPV=b)}L!%b^UQWqMaz7 zY&vC*nH1yxoz=hfc6PP@p8bz|Pxx16&NZG42hM=ZI&M(%*6l!iSHnZin7u2-8Oo2c zJP@mNfiJw!IPIqV;P%=5ZU-)#qy`s0pYwA6f!}Mi`D9*tT`Iq(!jSL}oW^!@?0A3M z>(IWvLX3x#XHSZ`d!<@oyUfx3x>?yyE7{_fBzH8Ji!RTd7Q|A1z&f`) z_$u$7pk z`8)3V?A&!Xb?@5k!Ff6Fk29F0#Fp<*Jht!MR|bZt3*{$Qhfeon;W@xAA+Pknk%eb- zNoDZ+#+dt4b^cCT;CW9J8e6)ePT7Q5ElbMDyq_p1N7Exr$GuZez_ zRy%oN|CUe*h6is!F`q0Wuf|xOTU$_5yz|_9*8>}-uYO(iJt{eVRBJfG+=Dl`C|8ztE;@TecL!B7Wj5AJiWfY zaMHSs{C(?P4}3Ui1}-ocPKgHoEfTx_JQG(x>-*);ucEp4|GTpA*e`kZ<-W?#FF7l!Y`?*` zU@}y6Z`8MpFWoHfdb51#PTwaE*4J+Dx-QKt(|9xL{jxitTf*C4?S2C4_pxV{34O>G zH25>&`t`5N{!g0}!_hEX4R%EIcX2JK?fR_4!BDnwPji=Y`?K9sUSi9fO zhl%aq#j|(yUixph?D)Y4ls+&Y)3b~}n?Kvt(`d`q@BA4jzN?pAGcemGDOq8Y zZ|(D-%=T#%3r~RnsIrT&b2+fq7nI5Nud)QSk*wuc#r6L^``$bln(i3<6JAW}4)x5; zZU5>n@hfH9;@-yoZ|8-r=if?rz;Wi%l$71ozyH5=W8o<<0GrqoTc^y__AEAb|6}ei z!Y{l|p1j1o^BTMaW3an$VQP$y(QJ;2jGV*rpfV$F%Ju0-Cb4|pa?`K!epb=uc}2DA zOl%e{91;z+I>+?(|BRe1_(6W(uIhKw8PDg>CCug|fe1Ce3 z&gDC7ubn|ngws<}V)Gw(wAHb7Ykdft%^%^NXBK=9v_Tg%aVFn=^smZ;eH%G`tloe3 zX}?lJ+z#{d+i$ewPLvlu5@$i`L~mHWPuntn+B36=_lvtZ4;D!astaAaX|z9J6C7#`tCb_9)IZiZnlon~sLpxy*8EI{xb&H8cNyC`@8m6u>26@;1ABHg z$g^U~5A6ShvYa`+>8|fit0&%H8pFKzD_Drh&4qu~~o?=hUtdtNnNWe7I(>>=jj}w0GBLYi<{nKQVXC57vW*AM;?LZ?kBf%5z=! z1FDk0pVtXGtlqX;Gx+GaybW>(b8_v<{=ENwXU+0E@C3Kob$7 z=>NLy-qu}uzH(C-YWAEp`!4!H8MG}BR5#lB$tyirw^9FH{l6%dGk;=YukRL*>U(rQ z`Ej@vyewFvee&lf6H&(5+c@`}{(IzHRpQ+n7jALbtUD{bP8A*%FBhG!|8slQ&cnN1 z4xBj&>VV|#eZM1J+w$eckA3g}T)0j}{Pd)St#gZ>)*UuKaNFkUk#pseJfMQvzVLAA z-g!l!ON-K-lZ$JCzZxLtw@5yq8CnoOws@T=9 zy~4VW{Zsth3}4g4AUY+eXroVC`kl3gv$k>WIbIe0KFYa#zaG=)&G)W#7p-?az`zdf zUtbm$G_cv0>2>c8sJRpcN-|kFH(`?;Gu8)rotysjrqYAwJ^hW_e1kWwwP37xBdzV* z;2vB(YX^tK191NT7|U|!*7IZY_w73kx;@I$F5LX~n`Kq^)AjxSHa(E2ge{9=(9&A^ zq~>a9f8p*)Ut*JYe{M*-GUvujm1YKswAIf{KE97xzx+-PXcHf}2Dv=h?*GSpUbh4F zqKw5g>$Lp-`%XH4{`jivj|(|qmqRdUX`ifRxpRGY+SzQzc!VqPyhe>`0P7(u7O5RN}OJ7l$r;hFJjmeqWV2}n%?`eNc)d*^Dq9Bdmy`Q zs(RV1f83w9-n0F#y<ny-l-f6?hCZPvxn~8cQ-Zbg-vVzx_8VE^y5y-Gei{? zUV2{t_qON1*ZtRhYxDj*Twi|E_hi3)tj%}t#+>cJdimRS?z;Ev>(^&D`Of`%a;5gl z#!u(q>38|0Il8-J?)pXM&rkd8e}CytO+N=~Gyg5$_MA3|n2@k8YrXpWqP_d-L95*V ze!ctGF;ppm!S2YfxkcYu9-dk7kM-W;mFg4f;3%KU#A33TI$Ts z@C`f)u-5HB{hwcYOTG71s4_i!=@VR3T`vDS&erEw?u+@3lTr+)OnJ96p0&N`Ic#e0 zLdWLRlO?m==d;*+>;GlXe#Yl)=iJ52oC({aX8!wKoB!@z{A3P^gnCfiU(90p)4u-Q zq>hHlnDW`Ndh6dO-#pXn>W6oZt}VC+PbfkC;$0&{;lf))sxSa68N^< z_1jr9oEQM8(!|| zWmj)%_ucy;2Q0wu-ua*T^8IH!FHK8h#vdzo-iBr5j0=BN9%z=&?*DyXvT7mshdfjD zGQOjYEC%7PV_)?N+aLIPcgmy`O(wP*(W?bNY!9D3Wd;k+g<0We-41N`RAPFz_MO@8 zn7IG@HTUms`ipGYy*7nlBTjb!1uFfDv}ZQakylmEQ)S4y}A3bH*v^?uw<*_-)7|CO?pz2V>Q zH+G(eJO9SbMcyZ;+-5dYn5xpu{I9Wmh3&@6E=4oefBjZr<^^gwfR+TvulI8~uqD~t zx3YNi>8oe|w%nh6TiNpDE9Kg7{3XnV-B6IU!-%vXt5r$2ZbADUf zvcJoK6-<3+vUFxny0b@}$t+j6V*V^)>)l22?F^qc&z!V!>D=G!yLQbsI;xV;;0*4g zgFWz3Yya;}b2%!!KK%2gQIV$1hyH)0LNIYNw6;U5w{`|Y^ zP6&(5-Tm`iSYj^c&HD5#ZTjljxpDFN#l^d8-%U5+oz_nF-9VH*h#2v$e4+$mRe z&1c`^{5IiyBa4B5@H>8y8M9Y^)zgd>Yg1)>v-T+{h?E5l9D?m^<&CC3`5xcZ5I-r? zEARcga#~ItI+AAJ%!FpS@diaRh5c|14o^_Sb@EuBH9Hv;F~RX9J_1*J{BJ=HatJ zx6fRwsWMCH@;p$y2~n<=o^20&^5%&6P0PaPa5IJPyB=_UUsM0!?K>_12ubVLf@iK) zT|aj0kGe7w+Yb$0_XEL`nB=_0-fd*~b`7)> z>#$0Kpn*fQowdA?t;>N-75TZ#p6r)bW9)ADfAMbG^wY0@Ywn+Z{dUgtI*%(8U;Lgl z8I)ok^}&X77#_6V2${oRQ>I#EIb(V0)67Tbv%J<_`~H6~I2X$>PFIQV0D0i&(FsA5 z{{P%`kYmS`nxbz-_U5Rm@!tID>r^D$CS6XQ?|-f>X3vBDi;JJi!b($y3dXYCOVT!* zOPDcj-n!1xcMs^0_5Mp)EPu`-d=T`{u5x=Xe_y88zu%{4tE?6mW_-U)Ge56v=dPR2 zzJ4_`->(0*J7M>(piMC)m8G|ycl(RItnr<@b^69fuq?;0r(kyMUEj^g;a`g!T(@4I ztk%)MXx9a5AlFnC?$_Hc#`yo;>Dg1(e9CGQ{9vNGz5M&e_gByUoj=WPbNr^DNk?xy z&AIx#yW8+|YkQvl$vsj^KJz<*J?w3#Vn8X>GYo<(7exP}>-{k;< z@6RtuC(KUDOLa9EtM32%Np1fuPnH@`d0I7l_3K={{B1Y$q<>oOuTXtFVUF(anj*U= zkG}l)zpl{Yy&cSw19yB+R)xPWa*lr=w;sq;N-nqew0EV#mvd3%~e$?WKqF^f|iT>+)XvDgRRp z-yVF*NYeEHLp8W>r5~p|X~|BGAKU#!82zD5T5t>P^Cwkp)ySUMb78gnc1UcFu@LP) z{@f4A2iHW|4^C0}6+dJ7-6=WcU(06pzn7e9@=Z1Uw23%l{5?NQaYkkt&?;cNXL5}9 zbIW$_x%cc<)of6sb}E1Q<5;g_ik7uAKK*`m<}aiF`TOuB)*yL1gy&nEUB3KHPMN*F zM-Q`1YXADg*5v@hXV79``S?9iDPEtBuYWi1_tHOiO;q>)z3f}}_3~e(2WRt6U3LBd zZqufHZ&^R7_Dk*b$*I%3Co9gM&#&3`CupX104zZ@%-l8qM&$dd!_{hKOviKguHHVQ zua>J@+E@NQ>2`U_o}IU!eL7qFp}Kl^?knrF z-q)s1db;TJPtW=1_1k)yA5DM$^c`%GE>5udj7IV7}AhZE@-5v&$YCOWj+mB6&=2`DwlRbNVa4 z_GzBIz*RmMVQHu_!#(pG%zejqeKYx(_x~`9SgmJfj?jlGPd=qh-<)d5De-`zHe62W z!8SF<`s%Hoot_66*8V)XynBjDeU=u}yiacrvsBLW5BCZ?Z8v`o@6R_$Cm7=`AKu*Y z7`hOgfnml%-?yD}=L$|Y2!HLn_vn)Mlbokd-l%UGtu~$4muX&+yy|>i(16l`zbX&b z?d13|yM2Z?3(tjV^7XqsE`_o9)Gk%&-gx@vs`KLF$hIIj{6Ud`XJTq|5D^ z``4eVF*BC`X9nvXF`Nmw+c{TN{^lFT-dj1v@f*TENwjlrkzh>s(tBTK8DFB5(7+6C z3Hr-{mw#@)`aRZfTCAR5TTPwa5{XZzeRiHk_!gmG; z&!+92oyGU2W=jHp#(D6#%KRyxDjpvZclPuux_U$9!F8pChGtMp__)7)tV-~wr{+oz zl7lDdh=KCE-Cl{JT_0Gxrk}j43QGV7&g5vZReKtJ=@);)_;$v!l;}dH4>xT8MQwWF zy(!0pDXxq!fWe{xRBitGvKiEwda!J&%He>bU2i_0yg8wJv*J86#0Wh@LfN(5RoA6< z-I%}$O3rIn&3k3gn5O(7TF~GCcm&g#<<7Eo+Lp0jcUnk(x_NYhx`i-T-@M&kF!wY_ z-n=^RhUJa9oW)z$?U*(tXr4(+>=)J4nV`!g(?IK-?dpErRMI>-J-)kPzPIMdq&G#| zUVT1#bjH&|;)*{M-)SHMD`oTAYTJuaXTr~ZU2-hS=$qitEqS=pEYkXEofI856(eg};r8owU%HQQ}#K^<96F^{Hz_ z_HUD5^cQ4guHgX<2l- zu=Ve_KitJzZ(h60WzX~V+T>}<4>pH}>$b7Y5C$7}^Le+5(u3m{V1Ywb{21=Kb!^iiIZxWLV3)VVQ%$c*DIbyRRku(m!);*C&&Y3pcJP zHB`}zU6*&et0DgW)EFH#L4yN~;E72+!GdtFY2A9y)j{>V5l>gVh1)w3c&hHZW1@Py z%k=OK&I<|au8HoxKIyl{YSV7JlbbGbR9G(E&c+Psg!UOS>3NEE>!q)@n;*{;sXON$ zTk!)u*qK=j4^FJzUaH-8O|6WnKRvk6R`S=Ru<*&Q^L@G}nU}u}NxE$E^y^v<=s4)b zDwdc@JkE$9lWDa4qz`XbKRB_r{3};mkQdus$upPAytMSxC8gy(w$?mXXU%;lO`>By?c(%?wC0|Ki?#EtYv<1+ zE=uQs1%APiZM#>#JK|UEo45^B$i4C^V)>gdBxrB|bWiS$XO^pHyuxdYzm z@D3J(MUrXr-X|7nWlZcdCix!yn)2dx>}$ggSkqyi7SlVVazluHJ>&hyeF8B1A9Uny z`?~Jx^xrGz9{7{9?Dv8#(>`*DPktIONwacu-g2SedQAHw{9g8dNay-+2OLV%?W30Z znE!nC=>x|OZPnAR(?3tPi;v-vWIL+=A@3a=ar6w{($uI7{pHe~tGq|4G|G#3Yruolrx`G8K|1xGR z2e%?BOVfDS`O;b823iEY_C0E~5Ik6)>9y(RwcYnDnj6DcZ&Xp;xi5RUkT4^2jSRR@ zdU{yp!T#91OJ8C2a+%?gw-z5F?l8jUwiskqo?UluYultL$#OS2_gqek-d-e?wn@6q z)CP3g81oso(}EwSJaJb_Xjt~=)A7|g_VX`&f48@B`9m8wSY$LPZ}HxA^Xh6Lw%L)1 z+p_%r>v|rOd>a?btGc{<+qL8Gl^*0CJHr1 zv#SEbJ&nFx)ngCYGJDe7b@#p=Texx3tBG4=7_%D~`IMR17#{3IOd>P%1swfno_s&z zD}&7}-=jawJ&#GgkBQ||Ro8VpU~VmFaG=rU00V=~a!GqchhxU_w|X~2d%pSnZ~eK- z(sz%x=Y7+#0NYJh1B#5ceZ9W}6yhR+1`G`6UE#Co3Q?=I>K07G4C&l#oFc(vo5~-jn)$jEnuj#T+d;wF!IXa2~iH*{ixbO!>jx;{8GmpxYA}7N{ZB z7=nUt82eNAt}dV9aDQq^@6jOBIa{O{@6Tf4DbN5pe=D+!JkBQQdmft}@#dhnf$Hrp zcCH@%isMs_aTA*SxziyK8~k0x%7&$g`~Hi%K?VXN}y=dM2@y2 zRkN?i+|;}QZa>CmzYtn|a&PEi!4IIb6G1By82pjLUger-^WI6nGx%rBzdI#I``Wz6 z7a|0|o(W4nx#}RtkFBsEo!4|6J}$}Np0s&wcp7i5;YQ)KEKqZ)o%7FXVL^ifZ#o(n z87gw*R>A{crt$5RRe{$s$|cWStBTH_Q!zc|g_QO}DMgrX`%fxI!BjUWZ@777?Z#sZ zH)b(bn7pp~oB!)x)F(Ujabn03wLC=Dw2KKk_PFeZPn!!s8a9)<(Sh^=)DTk^cjM3vV#ZeZUWTCD3i=_1Pm{vsnYDaQMt zU_dC?w^dw8S%WZGn~1^6p8Y&4S>Qa6l8Q3>)~79CX-B zw0Wb_< zSP%3++j0>p{n)iINWk2*AaM6fyG^T7-@K0HUa|UFB9o`ljfKBfMD;XmS4wE;2YKN^ zd&M4j$$MeND`D%m8qGIv<-Cr~PW<(LvH&CVnSKrlhKBDScfba(85RVZHt$`hQhPn3 zlEJ3y?Yp`~6}rutkNlsN1a6YK9ktr^0E4_cC^_s#%Dhrr*G0UU37XMd8TnsL(ubig zXnFGP$qm~7Lz!prg0f@&)gFc#UcO0ig#&5ZjoTT4_dbXPHn$!Ho*(^j0?+> zHe4@Xy7L4>h0N?z?VLQdcVF)Mv~Y z_q*iOc8(nznPts(YfcAsB%M1O7#ZTs`r)~nL2C2Lh&Q}{Ygu^CoClRn>hBC1)59ih zcC8ltP$t9(=?on>4L@y)fg$5Wp4T=|Y;K&yP+@X)dFSn^zy5$qI~682hKiXsS@0@8 z<3v^T_p0RNi4q?wKn{}ll{BkDdtY}$`|~=*{~6Z4JNL{q@)h;p$uL7u(178E(4huv>F|K4^Sl0*3^{gVc{Z;E}XI z5!4kszHeg@LxsufSzq%f6>gYk^8CGELG*i2iT@Z>2*&Xt#f|c|-I}J=D-M2vl_5p{ z+u5c*$_3OI@GyMX0pI(?z|gxw@{Q_A(8hv*lT&ia{?}KR_un=XU`Z$m zQ+j%6*MH5+EM*MVf4m=_@)fvns$fUmd!}HH2*x9I)|HRvs2&yVYlwF}z_2@3U$9)z zfWhH9lF_bbvg24vw{8^PWtzV;aB1!%^#Bv5d9DW-;z3#O1!9X4!-6K=B(FO+EJeBx zG#sBf{mzV{9ajE+3tesQNA(=7Ti?$S!N9X&I)?z<&@p}ck#GYBD^P3W#bo~-u$;xf>f`;+M%sFzf3(Y)&gUmB zo}7JDIFH-?Kp7+R8?fSjqynVDvhd@>icXDdtPK1{`a6F<30Q0NXntrf#Lu7v_zNki zTin>?s*@e}F6FoW7wzKN72W;ptQPB^FBePR_@714;J|fIg#CKBnH%Pq0|$+^|95lg zxqhe8VV>nz!^RDMdzi}w4IIir^-nEQQ7n_=rPC0dU6^~+i{XKy-L}r>XQfw#y1ofB zW2zHpWPSt6;THCYq;TNivLgxkds=$uURYUqa<2IewR=-134TywV*9}bN}kB=FTO2n zqH{V^Cnxa#GF@BQ?wM`I@EtU>3u+`Bs6?ux_)OIE{`YniC5nHrxIAgPhn4p)RVKC< zpaSy29He+>pEYey%@-S_NYBU8zeB9=eSprqc3h|LEIGY`hO9C>j};!9@tjB9%ew=aw^Jo5jt z(!1^6J2@(%l;Y~U8yLT>l4ATX!pO`}^QaiM7n$LJ<1*F!YXzMdYj5z@KTup&>dmXj tzTJQS^h1IlPXAuT$ace%g@+;FzPyH!{lsW~F-1@ed%F6$taD0e0sz~dG7JC! diff --git a/misc/startup.sh b/misc/startup.sh deleted file mode 100755 index 3c0122f..0000000 --- a/misc/startup.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/run/current-system/sw/bin/zsh - -sudo ethtool -s eno1 wol g diff --git a/misc/switch-to-dark-theme.sh b/misc/switch-to-dark-theme.sh deleted file mode 100755 index 102d70e..0000000 --- a/misc/switch-to-dark-theme.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -lookandfeeltool -a org.kde.breezedark.desktop - -qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript ' -var allDesktops = desktops(); -for (i = 0; i < allDesktops.length; i++) { - d = allDesktops[i]; - d.wallpaperPlugin = "org.kde.image"; - d.currentConfigGroup = Array("Wallpaper", "org.kde.image", "General"); - d.writeConfig("Image", "file:///home/horseman/nix-config/misc/nixos_wallpaper_dark_3840x2160.png"); -}' diff --git a/misc/switch-to-light-theme.sh b/misc/switch-to-light-theme.sh deleted file mode 100755 index d34fed6..0000000 --- a/misc/switch-to-light-theme.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -lookandfeeltool -a org.kde.breeze.desktop - -qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript ' -var allDesktops = desktops(); -for (i = 0; i < allDesktops.length; i++) { - d = allDesktops[i]; - d.wallpaperPlugin = "org.kde.image"; - d.currentConfigGroup = Array("Wallpaper", "org.kde.image", "General"); - d.writeConfig("Image", "file:///home/horseman/nix-config/misc/nixos_wallpaper_light_3840x2160.png"); -}' diff --git a/modules/apps/default.nix b/modules/apps/default.nix new file mode 100644 index 0000000..66839cb --- /dev/null +++ b/modules/apps/default.nix @@ -0,0 +1,7 @@ +{inputs, ...}: { + imports = [ + ./terminal.nix + ./visual.nix + ./dev.nix + ]; +} diff --git a/modules/apps/dev.nix b/modules/apps/dev.nix new file mode 100644 index 0000000..c76b0e4 --- /dev/null +++ b/modules/apps/dev.nix @@ -0,0 +1,22 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.apps.dev; +in { + options = { + horseman.apps.dev = { + enable = mkEnableOption "Apps used for programming"; + }; + }; + + config = { + # Docker + virtualisation.docker.enable = true; + }; +} diff --git a/modules/apps/terminal.nix b/modules/apps/terminal.nix new file mode 100644 index 0000000..763902e --- /dev/null +++ b/modules/apps/terminal.nix @@ -0,0 +1,24 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.apps.terminal; +in { + options = { + horseman.apps.terminal = { + enable = mkEnableOption "Apps that run only in terminal without a GUI"; + }; + }; + + config = { + services.lorri.enable = true; + + environment.systemPackages = with pkgs; [ + ]; + }; +} diff --git a/overhaul/modules/boot/refind.nix b/modules/apps/visual.nix similarity index 54% rename from overhaul/modules/boot/refind.nix rename to modules/apps/visual.nix index d9ae47d..bf630c7 100644 --- a/overhaul/modules/boot/refind.nix +++ b/modules/apps/visual.nix @@ -7,17 +7,16 @@ ... }: let inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.boot.refind; + cfg = config.horseman.apps.visual; in { options = { - horseman.boot.refind = { - enable = mkEnableOption "Enables rEFInd, the bootloader"; + horseman.apps.visual = { + enable = mkEnableOption "Apps that run in a visual window"; }; }; - config = mkIf cfg.enable { + config = { environment.systemPackages = with pkgs; [ - refind ]; }; } diff --git a/modules/apps/visual/firefox.nix b/modules/apps/visual/firefox.nix new file mode 100644 index 0000000..2b0730d --- /dev/null +++ b/modules/apps/visual/firefox.nix @@ -0,0 +1,66 @@ +{ + config, + pkgs, + ... +}: { + programs.firefox = { + enable = true; + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableAccounts = true; + DisableFirefoxScreenshots = true; + DisplayBookmarksToolbar = "never"; + PasswordManagerEnabled = false; + + ExtensionSettings = { + "*".installation_mode = "blocked"; + # uBlock Origin: + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + # Dark Reader + "addon@darkreader.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; + installation_mode = "force_installed"; + }; + # Advent of Code delta-rank + "{78b07db2-25ed-4088-9c92-5c5dcfca3c3c}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/advent-of-code-delta-score/latest.xpi"; + installation_mode = "force_installed"; + }; + # SponsorBlock + "sponsorBlocker@ajay.app" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; + installation_mode = "force_installed"; + }; + # KeepassXC + "keepassxc-browser@keepassxc.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi"; + installation_mode = "force_installed"; + }; + # Cookie Blocker + "idcac-pub@guus.ninja" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/istilldontcareaboutcookies/latest.xpi"; + installation_mode = "force_installed"; + }; + # Ghostery + "firefox@ghostery.com" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi"; + installation_mode = "force_installed"; + }; + }; + + Preferences = { + general = { + autoScroll = true; + }; + "browser.newtabpage.activity-stream.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; + }; + }; + }; +} diff --git a/modules/base/default.nix b/modules/base/default.nix new file mode 100644 index 0000000..fd36964 --- /dev/null +++ b/modules/base/default.nix @@ -0,0 +1,5 @@ +{inputs, ...}: { + imports = [ + ./nix.nix + ]; +} diff --git a/overhaul/modules/common/locale.nix b/modules/base/locale.nix similarity index 55% rename from overhaul/modules/common/locale.nix rename to modules/base/locale.nix index 06c1336..50d21c6 100644 --- a/overhaul/modules/common/locale.nix +++ b/modules/base/locale.nix @@ -7,15 +7,15 @@ ... }: let inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.common.locale; + cfg = config.horseman.base.locale; in { options = { - horseman.common.locale = { - enable = mkEnableOption "Dutch locale settings"; + horseman.base.locale = { + enable = mkEnableOption "Locale settings"; }; }; - config = mkIf cfg.enable { + config = { time.timeZone = "Europe/Amsterdam"; }; } diff --git a/overhaul/modules/common/nix.nix b/modules/base/nix.nix similarity index 61% rename from overhaul/modules/common/nix.nix rename to modules/base/nix.nix index 1815ef4..bade9ac 100644 --- a/overhaul/modules/common/nix.nix +++ b/modules/base/nix.nix @@ -7,16 +7,21 @@ ... }: let inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.common.nix; + cfg = config.horseman.base.nix; in { options = { - horseman.common.nix = { - enable = mkEnableOption "Nix settings"; + horseman.base.nix = { + enable = mkEnableOption "Standard settings for nix"; }; }; - config = mkIf cfg.enable { + config = { nixpkgs = { + overlays = [ + # outputs.overlays.additions + # outputs.overlays.modifications + # outputs.overlays.unstable-packages + ]; config = { allowUnfree = true; }; @@ -25,7 +30,9 @@ in { nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; []; + programs.nix-ld.libraries = with pkgs; [ + dotnetCorePackages.sdk_9_0 + ]; nix.nixPath = ["/etc/nix/path"]; environment.etc = @@ -36,7 +43,7 @@ in { }) config.nix.registry; - nix.settings.trusted-users = [ "root" "horseman" ]; + nix.settings.trusted-users = ["root" "horseman"]; nix.settings = { experimental-features = "nix-command flakes"; auto-optimise-store = true; diff --git a/modules/boot/default.nix b/modules/boot/default.nix new file mode 100644 index 0000000..01712e3 --- /dev/null +++ b/modules/boot/default.nix @@ -0,0 +1,6 @@ +{inputs, ...}: { + imports = [ + ./loader/systemd.nix + ./greeter/sddm.nix + ]; +} diff --git a/modules/boot/greeter/sddm.nix b/modules/boot/greeter/sddm.nix new file mode 100644 index 0000000..4a2993c --- /dev/null +++ b/modules/boot/greeter/sddm.nix @@ -0,0 +1,21 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.boot.greeter.sddm; +in { + options = { + horseman.boot.greeter.sddm = { + enable = mkEnableOption "SDDM Greeter"; + }; + }; + + config = { + services.displayManager.sddm.enable = true; + }; +} diff --git a/modules/boot/loader/systemd.nix b/modules/boot/loader/systemd.nix new file mode 100644 index 0000000..d873ac2 --- /dev/null +++ b/modules/boot/loader/systemd.nix @@ -0,0 +1,22 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.boot.loader.systemd; +in { + options = { + horseman.boot.loader.systemd = { + enable = mkEnableOption "Sets systemd as the bootloader"; + }; + }; + + config = { + boot.loader.systemd-boot.enable = true; + boot.loader.systemd-boot.configurationLimit = 10; + }; +} diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..15c8b01 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,12 @@ +{inputs, ...}: { + imports = [ + ./apps + ./hardware + ./network + ./terminal + ./wm + ./users + ./boot + ./base + ]; +} diff --git a/modules/hardware/audio.nix b/modules/hardware/audio.nix new file mode 100644 index 0000000..13ccc17 --- /dev/null +++ b/modules/hardware/audio.nix @@ -0,0 +1,27 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.hardware.audio; +in { + options = { + horseman.hardware.audio = { + enable = mkEnableOption ""; + }; + }; + + config = { + hardware.pulseaudio.enable = false; + services.jack = { + jackd.enable = false; + alsa.enable = true; + loopback.enable = false; + }; + users.extraUsers.horseman.extraGroups = ["jackaudio"]; + }; +} diff --git a/modules/hardware/bluetooth.nix b/modules/hardware/bluetooth.nix new file mode 100644 index 0000000..adfa8f1 --- /dev/null +++ b/modules/hardware/bluetooth.nix @@ -0,0 +1,21 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.hardware.bluetooth; +in { + options = { + horseman.hardware.bluetooth = { + enable = mkEnableOption "Bluetooth"; + }; + }; + + config = { + hardware.bluetooth.enable = true; + }; +} diff --git a/modules/hardware/default.nix b/modules/hardware/default.nix new file mode 100644 index 0000000..3110830 --- /dev/null +++ b/modules/hardware/default.nix @@ -0,0 +1,8 @@ +{inputs, ...}: { + imports = [ + ./audio.nix + ./bluetooth.nix + ./gpu/nvidia.nix + ./wifi.nix + ]; +} diff --git a/modules/hardware/gpu/nvidia.nix b/modules/hardware/gpu/nvidia.nix new file mode 100644 index 0000000..343297c --- /dev/null +++ b/modules/hardware/gpu/nvidia.nix @@ -0,0 +1,31 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.hardware.gpu.nvidia; +in { + options = { + horseman.hardware.gpu.nvidia = { + enable = mkEnableOption "Enable support for NVIDIA GPUs"; + }; + }; + + config = { + hardware.graphics.enable32Bit = true; + hardware.graphics.enable = true; + services.xserver.videoDrivers = ["nvidia"]; + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = false; + powerManagement.finegrained = false; + open = true; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + }; +} diff --git a/modules/hardware/wifi.nix b/modules/hardware/wifi.nix new file mode 100644 index 0000000..00cf995 --- /dev/null +++ b/modules/hardware/wifi.nix @@ -0,0 +1,22 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.hardware.wifi; +in { + options = { + horseman.hardware.wifi = { + enable = mkEnableOption ""; + }; + }; + + config = { + networking.networkmanager.enable = true; + users.users.horseman.extraGroups = ["networkmanager"]; + }; +} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix deleted file mode 100644 index 45aae31..0000000 --- a/modules/home-manager/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module). -# These should be stuff you would like to share with others, not your personal configurations. -{ - # List your module files here - # my-module = import ./my-module.nix; -} diff --git a/modules/network/default.nix b/modules/network/default.nix new file mode 100644 index 0000000..2d78aa3 --- /dev/null +++ b/modules/network/default.nix @@ -0,0 +1,8 @@ +{inputs, ...}: { + imports = [ + ./mullvad.nix + ./ssh.nix + ./syncthing.nix + ./tailscale.nix + ]; +} diff --git a/modules/network/mullvad.nix b/modules/network/mullvad.nix new file mode 100644 index 0000000..8fb6041 --- /dev/null +++ b/modules/network/mullvad.nix @@ -0,0 +1,33 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.network.mullvad; +in { + options = { + horseman.network.mullvad = { + enable = mkEnableOption "Enables the Mullvad VPN"; + }; + }; + + config = { + services = { + mullvad-vpn = { + enable = true; + package = pkgs.mullvad-vpn; + }; + resolved = { + enable = true; + dnssec = "true"; + domains = ["~."]; + fallbackDns = ["1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one"]; + }; + }; + networking.nameservers = ["1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one"]; + }; +} diff --git a/modules/network/ssh.nix b/modules/network/ssh.nix new file mode 100644 index 0000000..26871d3 --- /dev/null +++ b/modules/network/ssh.nix @@ -0,0 +1,41 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.network.ssh; +in { + options = { + horseman.network.ssh = { + enable = mkEnableOption ""; + }; + }; + + config = { + services.openssh = { + banner = '' + ================================================================== + === ==== ==== ========= ================================= === + === ==== ==== ========= ================================= === + === ==== ==== ========= ================================= === + === ==== ==== === === === ==== === = = ==== === === + === == == === = == == = == == == = == === + ==== == == === == == ===== = == = = == == === + ==== == == === ===== == ===== = == = = == ========== + ===== == ==== = == == = == = == = = == = == === + ====== ==== ====== === === ==== === = = === === === + ================================================================== + ''; + + enable = true; + settings = { + PermitRootLogin = "no"; + PasswordAuthentication = false; + }; + }; + }; +} diff --git a/modules/network/syncthing.nix b/modules/network/syncthing.nix new file mode 100644 index 0000000..6aa2df5 --- /dev/null +++ b/modules/network/syncthing.nix @@ -0,0 +1,59 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.network.syncthing; +in { + options = { + horseman.network.syncthing = { + enable = mkEnableOption ""; + }; + }; + + config = { + services.syncthing = { + enable = true; + user = "horseman"; + dataDir = "/home/horseman"; + configDir = "/home/horseman/.config/syncthing"; + overrideDevices = true; + overrideFolders = true; + settings = { + options = { + urAccepted = -1; + }; + devices = { + "luna" = { + id = "MW4ZTAX-D7KDLRL-YHNGNCF-V6FW5L4-SCKQKES-BO7KV43-L5667GL-JHIYEAA"; + autoAcceptFolders = true; + name = "luna"; + }; + "terra" = { + id = "2QWRFLY-ZUY5C6C-X36R5CY-PJSGLYY-5HWIWJN-2YYWRPU-T66GJMU-GXTQ6QK"; + autoAcceptFolders = true; + name = "terra"; + }; + "solis" = { + id = "YOSYADZ-3OZ3XBH-7XEIK2W-DHAEIFD-5P5ZIHB-PAP74DH-T7GHLKT-O32YEA4"; + autoAcceptFolders = true; + name = "solis"; + }; + }; + folders = { + "Documents" = { + id = "documentFolder"; + path = "/home/horseman/Documents"; + devices = ["luna" "terra" "solis"]; + }; + }; + }; + }; + networking.firewall.allowedUDPPorts = [22000 21027]; + networking.firewall.allowedTCPPorts = [8384 22000]; + }; +} diff --git a/modules/network/tailscale.nix b/modules/network/tailscale.nix new file mode 100644 index 0000000..e917177 --- /dev/null +++ b/modules/network/tailscale.nix @@ -0,0 +1,21 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.network.tailscale; +in { + options = { + horseman.network.tailscale = { + enable = mkEnableOption "Enable the Tailscale VPN service"; + }; + }; + + config = { + services.tailscale.enable = true; + }; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix deleted file mode 100644 index 8605069..0000000 --- a/modules/nixos/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module). -# These should be stuff you would like to share with others, not your personal configurations. -{ - # List your module files here - # my-module = import ./my-module.nix; -} diff --git a/modules/sleep-at-night.nix b/modules/sleep-at-night.nix deleted file mode 100644 index ccad600..0000000 --- a/modules/sleep-at-night.nix +++ /dev/null @@ -1,79 +0,0 @@ -{config, pkgs, lib, ...}: - -let - cfg = config.services.sleep-at-night; - sleep-if-night = pkgs.writeScriptBin "sleep-if-night" '' - #!${pkgs.bash}/bin/bash - wakeupTime="$3" - shutdownHour="00$1" - shutdownHour="''${shutdownHour:(-2)}" - shutdownMinute="00$2" - shutdownMinute="''${shutdownMinute:(-2)}" - currentHour="$(${pkgs.coreutils}/bin/date +%H)" - currentMinute="$(${pkgs.coreutils}/bin/date +%M)" - if [[ "$currentHour" -eq "$shutdownHour" ]] && [[ "$currentMinute" -eq "$shutdownMinute" ]] - then - echo "Shutting down now. Waking up at $wakeupTime". - ${pkgs.utillinux}/bin/rtcwake -m off -t "$(${pkgs.coreutils}/bin/date -d "$wakeupTime" +%s)"; - else - echo "Current time is $currentHour:$currentMinute. Shutting down at $shutdownHour:$shutdownMinute." - exit 0 - fi - ''; -in - with lib; { - - options = { - services.sleep-at-night = { - - enable = mkOption { - default = false; - type = with types; bool; - description = '' - Sleep at night. - If you start the system after the given `shutdown` time, the system will keep running until the `shutdown` time occurs again, even if you start it before the given `wakeup` time. - ''; - }; - - wakeup = mkOption { - default = "09:00:00"; - type = with types; str; - description = '' - Wake up at given time. - The time has to be parsable by `date -d`. - ''; - }; - - shutdown = { - hour = mkOption { - default = 01; - type = with types; ints.between 0 23; - description = '' - Shut down at given hour. - ''; - }; - minute = mkOption { - default = 00; - type = with types; ints.between 0 59; - description = '' - Shut down at given minute of the given `hour`. - ''; - }; - }; - }; - }; - - config = mkIf cfg.enable { - systemd.services.sleep-at-night = { - description = "Sleep at night."; - serviceConfig = { - ExecStart = "${sleep-if-night}/bin/sleep-if-night ${toString cfg.shutdown.hour} ${toString cfg.shutdown.minute} ${cfg.wakeup}"; - Restart = "on-success"; - RestartSec = 30; - User = "root"; - }; - wantedBy = [ "multi-user.target" ]; - }; - }; - - } diff --git a/overhaul/modules/template.nix b/modules/template.nix similarity index 64% rename from overhaul/modules/template.nix rename to modules/template.nix index 4f7f022..dabd470 100644 --- a/overhaul/modules/template.nix +++ b/modules/template.nix @@ -7,15 +7,14 @@ ... }: let inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.xxxxxx.xxxxxx; + cfg = config.horseman.xxx.yyy; in { options = { - horseman.xxxxxx.xxxxxx = { + horseman.xxx.yyy = { enable = mkEnableOption ""; }; }; - config = mkIf cfg.enable { - + config = { }; } diff --git a/modules/terminal/default.nix b/modules/terminal/default.nix new file mode 100644 index 0000000..a2d32af --- /dev/null +++ b/modules/terminal/default.nix @@ -0,0 +1,5 @@ +{inputs, ...}: { + imports = [ + ./zsh.nix + ]; +} diff --git a/overhaul/modules/terminal/zsh.nix b/modules/terminal/zsh.nix similarity index 70% rename from overhaul/modules/terminal/zsh.nix rename to modules/terminal/zsh.nix index 1075c15..9080812 100644 --- a/overhaul/modules/terminal/zsh.nix +++ b/modules/terminal/zsh.nix @@ -7,19 +7,17 @@ ... }: let inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.base.locale; + cfg = config.horseman.terminal.zsh; in { options = { horseman.terminal.zsh = { - enable = mkEnableOption "Enable ZSH and all associated plugins"; + enable = mkEnableOption "The ZSH shell and plugins for it"; }; }; - config = mkIf cfg.enable { - services.lorri.enable = true; - + config = { users.defaultUserShell = pkgs.zsh; - environment.shells = with pkgs; [ zsh ]; + environment.shells = with pkgs; [zsh]; programs.zsh = { enable = true; @@ -28,8 +26,8 @@ in { histSize = 10000; shellAliases = { - clone-dotfiles = "cp /home/horseman/nix-config/config/dotfiles/.\* /home/horseman/"; - rebuild = "nix fmt && clone-dotfiles && sudo nixos-rebuild switch --flake"; + clone-dotfiles = "cp -r /home/horseman/nix-config/config/dotfiles/.\* /home/horseman/"; + rebuild = "clone-dotfiles && sudo nixos-rebuild switch --flake"; update = "sudo nix flake update && rebuild"; compose = "sudo docker compose"; wolpc = "wakeonlan D8:5E:D3:A8:B1:0A"; diff --git a/modules/users/default.nix b/modules/users/default.nix new file mode 100644 index 0000000..0adcd76 --- /dev/null +++ b/modules/users/default.nix @@ -0,0 +1,5 @@ +{inputs, ...}: { + imports = [ + ./horseman.nix + ]; +} diff --git a/modules/users/horseman.nix b/modules/users/horseman.nix new file mode 100644 index 0000000..13bb1c4 --- /dev/null +++ b/modules/users/horseman.nix @@ -0,0 +1,38 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.users.horseman; +in { + options = { + horseman.users.horseman = { + enable = mkEnableOption "Default user"; + }; + }; + + config = { + home-manager = { + extraSpecialArgs = {inherit inputs outputs;}; + users.horseman = { + home.stateVersion = "24.11"; + }; + }; + + users.users.horseman = { + initialPassword = "1234"; + isNormalUser = true; + openssh.authorizedKeys.keyFiles = [ + ../../config/ssh/authorized_keys + ]; + extraGroups = [ + "wheel" + "docker" + ]; + }; + }; +} diff --git a/modules/wm/default.nix b/modules/wm/default.nix new file mode 100644 index 0000000..4db5899 --- /dev/null +++ b/modules/wm/default.nix @@ -0,0 +1,7 @@ +{inputs, ...}: { + imports = [ + ./gnome + ./plasma + ./qtile + ]; +} diff --git a/home-manager/gnome.nix b/modules/wm/gnome/config.nix similarity index 97% rename from home-manager/gnome.nix rename to modules/wm/gnome/config.nix index 85e9a32..11076e8 100644 --- a/home-manager/gnome.nix +++ b/modules/wm/gnome/config.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { dconf.settings = { "org/gnome/desktop/peripherals/touchpad" = { natural-scroll = false; @@ -12,7 +9,7 @@ enable-hot-corners = false; show-battery-percentage = true; }; - + "org/gnome/desktop/search-providers" = { disabled = [ "org.gnome.seahorse.Application.desktop" @@ -29,17 +26,17 @@ "org.gnome.Characters.desktop" "org.gnome.Contacts.desktop" "org.gnome.Nautilus.desktop" - "org.gnome.Calendar.desktop" + "org.gnome.Calendar.desktop" "org.gnome.clocks.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.Photos.desktop" ]; }; - + "org/gnome/desktop/wm/preferences" = { num-workspaces = 3; }; - + "org/gnome/shell" = { favorite-apps = [ "firefox.desktop" @@ -56,7 +53,7 @@ ]; disable-user-extensions = false; }; - + "org/gnome/shell/extensions/just-perfection" = { activities-button = false; app-menu = false; @@ -77,12 +74,12 @@ "parsecd.desktop:3" ]; }; - + "org/gnome/settings-daemon/plugins/power" = { power-button-action = "nothing"; sleep-inactive-ac-type = "nothing"; }; - + "org/gnome/mutter" = { edge-tiling = true; dynamic-workspaces = false; @@ -106,7 +103,7 @@ command = "kgx"; name = "Console"; }; - + "org/gnome/desktop/wm/keybindings" = { switch-applications = ["Z"]; switch-applications-backward = ["Z"]; @@ -119,7 +116,7 @@ switch-to-workspace-left = ["Left"]; switch-to-workspace-right = ["Right"]; }; - + "org/gnome/settings-daemon/plugins/media-keys" = { screensaver = ["l"]; home = ["e"]; @@ -127,15 +124,15 @@ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" ]; }; - + "org/gnome/shell/keybindings" = { screenshot = ["Print"]; show-screenshot-ui = ["s"]; toggle-message-tray = ["v"]; }; - + "org/gnome/mutter/wayland/keybindings" = { restore-shortcuts = "disabled"; }; }; -} \ No newline at end of file +} diff --git a/modules/wm/gnome/default.nix b/modules/wm/gnome/default.nix new file mode 100644 index 0000000..d5c3db2 --- /dev/null +++ b/modules/wm/gnome/default.nix @@ -0,0 +1,46 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.wm.gnome; +in { + options = { + horseman.desktop.gnome = { + enable = mkEnableOption "Gnome"; + }; + }; + + config = { + services.xserver = { + enable = true; + desktopManager.gnome.enable = true; + }; + + environment.gnome.excludePackages = with pkgs; [ + gnome-calendar + gnome-characters + nautilus + gnome-clocks + gnome-contacts + evince + file-roller + geary + gnome-system-monitor + eog + gnome-logs + gnome-maps + gnome-music + seahorse + gnome-text-editor + ]; + + home-manager.users.horseman = { + imports = [./config.nix]; + }; + }; +} diff --git a/home-manager/plasma.nix b/modules/wm/plasma/config.nix similarity index 85% rename from home-manager/plasma.nix rename to modules/wm/plasma/config.nix index dc8113e..74ab722 100644 --- a/home-manager/plasma.nix +++ b/modules/wm/plasma/config.nix @@ -2,10 +2,10 @@ programs.plasma = { enable = true; shortcuts = { - "ActivityManager"."switch-to-activity-b2ab5fe5-5164-403b-a54c-47948116f11a" = [ ]; - "ActivityManager"."switch-to-activity-c82192f5-3d2d-4f8d-9c58-364b4cca1b53" = [ ]; - "ActivityManager"."switch-to-activity-d15629d7-eac1-4856-990c-e88d4acd7c5d" = [ ]; - "ActivityManager"."switch-to-activity-df5108d4-687b-4cd3-835e-318d72116b93" = [ ]; + "ActivityManager"."switch-to-activity-b2ab5fe5-5164-403b-a54c-47948116f11a" = []; + "ActivityManager"."switch-to-activity-c82192f5-3d2d-4f8d-9c58-364b4cca1b53" = []; + "ActivityManager"."switch-to-activity-d15629d7-eac1-4856-990c-e88d4acd7c5d" = []; + "ActivityManager"."switch-to-activity-df5108d4-687b-4cd3-835e-318d72116b93" = []; "KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L"; "KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K"; "kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S"; @@ -20,38 +20,38 @@ "kmix"."increase_volume_small" = "Shift+Volume Up"; "kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Mute Microphone"]; "kmix"."mute" = "Volume Mute"; - "ksmserver"."Halt Without Confirmation" = [ ]; + "ksmserver"."Halt Without Confirmation" = []; "ksmserver"."Lock Session" = ["Meta+L" "" "Screensaver\\, ,Meta+L" "Screensaver,Lock Session"]; "ksmserver"."Log Out" = "Ctrl+Alt+Del"; - "ksmserver"."Log Out Without Confirmation" = [ ]; - "ksmserver"."LogOut" = [ ]; - "ksmserver"."Reboot" = [ ]; - "ksmserver"."Reboot Without Confirmation" = [ ]; - "ksmserver"."Shut Down" = [ ]; + "ksmserver"."Log Out Without Confirmation" = []; + "ksmserver"."LogOut" = []; + "ksmserver"."Reboot" = []; + "ksmserver"."Reboot Without Confirmation" = []; + "ksmserver"."Shut Down" = []; "kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A"; "kwin"."Cube" = "Ctrl+Meta+G"; - "kwin"."Cycle Overview" = [ ]; - "kwin"."Cycle Overview Opposite" = [ ]; - "kwin"."Decrease Opacity" = [ ]; + "kwin"."Cycle Overview" = []; + "kwin"."Cycle Overview Opposite" = []; + "kwin"."Decrease Opacity" = []; "kwin"."Edit Tiles" = "Meta+T"; "kwin"."Expose" = "Ctrl+F9"; "kwin"."ExposeAll" = ["Ctrl+F10" "" "Launch (C)\\, ,Ctrl+F10" "Launch (C),Toggle Present Windows (All desktops)"]; "kwin"."ExposeClass" = "Ctrl+F7"; - "kwin"."ExposeClassCurrentDesktop" = [ ]; + "kwin"."ExposeClassCurrentDesktop" = []; "kwin"."Grid View" = "Meta+G"; - "kwin"."Increase Opacity" = [ ]; - "kwin"."Invert Screen Colors" = [ ]; + "kwin"."Increase Opacity" = []; + "kwin"."Invert Screen Colors" = []; "kwin"."Kill Window" = "Meta+Ctrl+Esc"; - "kwin"."MinimizeAll" = [ ]; - "kwin"."Move Tablet to Next Output" = [ ]; + "kwin"."MinimizeAll" = []; + "kwin"."Move Tablet to Next Output" = []; "kwin"."MoveMouseToCenter" = "Meta+F6"; "kwin"."MoveMouseToFocus" = "Meta+F5"; - "kwin"."MoveZoomDown" = [ ]; - "kwin"."MoveZoomLeft" = [ ]; - "kwin"."MoveZoomRight" = [ ]; - "kwin"."MoveZoomUp" = [ ]; + "kwin"."MoveZoomDown" = []; + "kwin"."MoveZoomLeft" = []; + "kwin"."MoveZoomRight" = []; + "kwin"."MoveZoomUp" = []; "kwin"."Overview" = "Meta+W"; - "kwin"."Setup Window Shortcut" = [ ]; + "kwin"."Setup Window Shortcut" = []; "kwin"."Show Desktop" = "Meta+D"; "kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down"; "kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up"; @@ -62,134 +62,134 @@ "kwin"."Switch Window Right" = "Meta+Alt+Right"; "kwin"."Switch Window Up" = "Meta+Alt+Up"; "kwin"."Switch to Desktop 1" = "Ctrl+F1"; - "kwin"."Switch to Desktop 10" = [ ]; - "kwin"."Switch to Desktop 11" = [ ]; - "kwin"."Switch to Desktop 12" = [ ]; - "kwin"."Switch to Desktop 13" = [ ]; - "kwin"."Switch to Desktop 14" = [ ]; - "kwin"."Switch to Desktop 15" = [ ]; - "kwin"."Switch to Desktop 16" = [ ]; - "kwin"."Switch to Desktop 17" = [ ]; - "kwin"."Switch to Desktop 18" = [ ]; - "kwin"."Switch to Desktop 19" = [ ]; + "kwin"."Switch to Desktop 10" = []; + "kwin"."Switch to Desktop 11" = []; + "kwin"."Switch to Desktop 12" = []; + "kwin"."Switch to Desktop 13" = []; + "kwin"."Switch to Desktop 14" = []; + "kwin"."Switch to Desktop 15" = []; + "kwin"."Switch to Desktop 16" = []; + "kwin"."Switch to Desktop 17" = []; + "kwin"."Switch to Desktop 18" = []; + "kwin"."Switch to Desktop 19" = []; "kwin"."Switch to Desktop 2" = "Ctrl+F2"; - "kwin"."Switch to Desktop 20" = [ ]; + "kwin"."Switch to Desktop 20" = []; "kwin"."Switch to Desktop 3" = "Ctrl+F3"; "kwin"."Switch to Desktop 4" = "Ctrl+F4"; - "kwin"."Switch to Desktop 5" = [ ]; - "kwin"."Switch to Desktop 6" = [ ]; - "kwin"."Switch to Desktop 7" = [ ]; - "kwin"."Switch to Desktop 8" = [ ]; - "kwin"."Switch to Desktop 9" = [ ]; - "kwin"."Switch to Next Desktop" = [ ]; - "kwin"."Switch to Next Screen" = [ ]; - "kwin"."Switch to Previous Desktop" = [ ]; - "kwin"."Switch to Previous Screen" = [ ]; - "kwin"."Switch to Screen 0" = [ ]; - "kwin"."Switch to Screen 1" = [ ]; - "kwin"."Switch to Screen 2" = [ ]; - "kwin"."Switch to Screen 3" = [ ]; - "kwin"."Switch to Screen 4" = [ ]; - "kwin"."Switch to Screen 5" = [ ]; - "kwin"."Switch to Screen 6" = [ ]; - "kwin"."Switch to Screen 7" = [ ]; - "kwin"."Switch to Screen Above" = [ ]; - "kwin"."Switch to Screen Below" = [ ]; - "kwin"."Switch to Screen to the Left" = [ ]; - "kwin"."Switch to Screen to the Right" = [ ]; - "kwin"."Toggle" = [ ]; - "kwin"."Toggle Night Color" = [ ]; - "kwin"."Toggle Window Raise/Lower" = [ ]; - "kwin"."TrackMouse" = [ ]; + "kwin"."Switch to Desktop 5" = []; + "kwin"."Switch to Desktop 6" = []; + "kwin"."Switch to Desktop 7" = []; + "kwin"."Switch to Desktop 8" = []; + "kwin"."Switch to Desktop 9" = []; + "kwin"."Switch to Next Desktop" = []; + "kwin"."Switch to Next Screen" = []; + "kwin"."Switch to Previous Desktop" = []; + "kwin"."Switch to Previous Screen" = []; + "kwin"."Switch to Screen 0" = []; + "kwin"."Switch to Screen 1" = []; + "kwin"."Switch to Screen 2" = []; + "kwin"."Switch to Screen 3" = []; + "kwin"."Switch to Screen 4" = []; + "kwin"."Switch to Screen 5" = []; + "kwin"."Switch to Screen 6" = []; + "kwin"."Switch to Screen 7" = []; + "kwin"."Switch to Screen Above" = []; + "kwin"."Switch to Screen Below" = []; + "kwin"."Switch to Screen to the Left" = []; + "kwin"."Switch to Screen to the Right" = []; + "kwin"."Toggle" = []; + "kwin"."Toggle Night Color" = []; + "kwin"."Toggle Window Raise/Lower" = []; + "kwin"."TrackMouse" = []; "kwin"."Walk Through Windows" = "Alt+Tab"; "kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab"; - "kwin"."Walk Through Windows Alternative" = [ ]; - "kwin"."Walk Through Windows Alternative (Reverse)" = [ ]; + "kwin"."Walk Through Windows Alternative" = []; + "kwin"."Walk Through Windows Alternative (Reverse)" = []; "kwin"."Walk Through Windows of Current Application" = "Alt+`"; "kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~"; - "kwin"."Walk Through Windows of Current Application Alternative" = [ ]; - "kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = [ ]; - "kwin"."Window Above Other Windows" = [ ]; - "kwin"."Window Below Other Windows" = [ ]; + "kwin"."Walk Through Windows of Current Application Alternative" = []; + "kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = []; + "kwin"."Window Above Other Windows" = []; + "kwin"."Window Below Other Windows" = []; "kwin"."Window Close" = "Alt+F4"; - "kwin"."Window Fullscreen" = [ ]; - "kwin"."Window Grow Horizontal" = [ ]; - "kwin"."Window Grow Vertical" = [ ]; - "kwin"."Window Lower" = [ ]; + "kwin"."Window Fullscreen" = []; + "kwin"."Window Grow Horizontal" = []; + "kwin"."Window Grow Vertical" = []; + "kwin"."Window Lower" = []; "kwin"."Window Maximize" = "Alt+Up"; - "kwin"."Window Maximize Horizontal" = [ ]; - "kwin"."Window Maximize Vertical" = [ ]; + "kwin"."Window Maximize Horizontal" = []; + "kwin"."Window Maximize Vertical" = []; "kwin"."Window Minimize" = "Meta+PgDown"; - "kwin"."Window Move" = [ ]; - "kwin"."Window Move Center" = [ ]; - "kwin"."Window No Border" = [ ]; - "kwin"."Window On All Desktops" = [ ]; + "kwin"."Window Move" = []; + "kwin"."Window Move Center" = []; + "kwin"."Window No Border" = []; + "kwin"."Window On All Desktops" = []; "kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down"; "kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up"; "kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left"; "kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right"; - "kwin"."Window One Screen Down" = [ ]; - "kwin"."Window One Screen Up" = [ ]; - "kwin"."Window One Screen to the Left" = [ ]; - "kwin"."Window One Screen to the Right" = [ ]; + "kwin"."Window One Screen Down" = []; + "kwin"."Window One Screen Up" = []; + "kwin"."Window One Screen to the Left" = []; + "kwin"."Window One Screen to the Right" = []; "kwin"."Window Operations Menu" = "Alt+F3"; - "kwin"."Window Pack Down" = [ ]; - "kwin"."Window Pack Left" = [ ]; - "kwin"."Window Pack Right" = [ ]; - "kwin"."Window Pack Up" = [ ]; + "kwin"."Window Pack Down" = []; + "kwin"."Window Pack Left" = []; + "kwin"."Window Pack Right" = []; + "kwin"."Window Pack Up" = []; "kwin"."Window Quick Tile Bottom" = "Meta+Down"; - "kwin"."Window Quick Tile Bottom Left" = [ ]; - "kwin"."Window Quick Tile Bottom Right" = [ ]; + "kwin"."Window Quick Tile Bottom Left" = []; + "kwin"."Window Quick Tile Bottom Right" = []; "kwin"."Window Quick Tile Left" = "Meta+Left"; "kwin"."Window Quick Tile Right" = "Meta+Right"; "kwin"."Window Quick Tile Top" = "Meta+Up"; - "kwin"."Window Quick Tile Top Left" = [ ]; - "kwin"."Window Quick Tile Top Right" = [ ]; - "kwin"."Window Raise" = [ ]; - "kwin"."Window Resize" = [ ]; - "kwin"."Window Shade" = [ ]; - "kwin"."Window Shrink Horizontal" = [ ]; - "kwin"."Window Shrink Vertical" = [ ]; - "kwin"."Window to Desktop 1" = [ ]; - "kwin"."Window to Desktop 10" = [ ]; - "kwin"."Window to Desktop 11" = [ ]; - "kwin"."Window to Desktop 12" = [ ]; - "kwin"."Window to Desktop 13" = [ ]; - "kwin"."Window to Desktop 14" = [ ]; - "kwin"."Window to Desktop 15" = [ ]; - "kwin"."Window to Desktop 16" = [ ]; - "kwin"."Window to Desktop 17" = [ ]; - "kwin"."Window to Desktop 18" = [ ]; - "kwin"."Window to Desktop 19" = [ ]; - "kwin"."Window to Desktop 2" = [ ]; - "kwin"."Window to Desktop 20" = [ ]; - "kwin"."Window to Desktop 3" = [ ]; - "kwin"."Window to Desktop 4" = [ ]; - "kwin"."Window to Desktop 5" = [ ]; - "kwin"."Window to Desktop 6" = [ ]; - "kwin"."Window to Desktop 7" = [ ]; - "kwin"."Window to Desktop 8" = [ ]; - "kwin"."Window to Desktop 9" = [ ]; - "kwin"."Window to Next Desktop" = [ ]; + "kwin"."Window Quick Tile Top Left" = []; + "kwin"."Window Quick Tile Top Right" = []; + "kwin"."Window Raise" = []; + "kwin"."Window Resize" = []; + "kwin"."Window Shade" = []; + "kwin"."Window Shrink Horizontal" = []; + "kwin"."Window Shrink Vertical" = []; + "kwin"."Window to Desktop 1" = []; + "kwin"."Window to Desktop 10" = []; + "kwin"."Window to Desktop 11" = []; + "kwin"."Window to Desktop 12" = []; + "kwin"."Window to Desktop 13" = []; + "kwin"."Window to Desktop 14" = []; + "kwin"."Window to Desktop 15" = []; + "kwin"."Window to Desktop 16" = []; + "kwin"."Window to Desktop 17" = []; + "kwin"."Window to Desktop 18" = []; + "kwin"."Window to Desktop 19" = []; + "kwin"."Window to Desktop 2" = []; + "kwin"."Window to Desktop 20" = []; + "kwin"."Window to Desktop 3" = []; + "kwin"."Window to Desktop 4" = []; + "kwin"."Window to Desktop 5" = []; + "kwin"."Window to Desktop 6" = []; + "kwin"."Window to Desktop 7" = []; + "kwin"."Window to Desktop 8" = []; + "kwin"."Window to Desktop 9" = []; + "kwin"."Window to Next Desktop" = []; "kwin"."Window to Next Screen" = "Meta+Shift+Right"; - "kwin"."Window to Previous Desktop" = [ ]; + "kwin"."Window to Previous Desktop" = []; "kwin"."Window to Previous Screen" = "Meta+Shift+Left"; - "kwin"."Window to Screen 0" = [ ]; - "kwin"."Window to Screen 1" = [ ]; - "kwin"."Window to Screen 2" = [ ]; - "kwin"."Window to Screen 3" = [ ]; - "kwin"."Window to Screen 4" = [ ]; - "kwin"."Window to Screen 5" = [ ]; - "kwin"."Window to Screen 6" = [ ]; - "kwin"."Window to Screen 7" = [ ]; + "kwin"."Window to Screen 0" = []; + "kwin"."Window to Screen 1" = []; + "kwin"."Window to Screen 2" = []; + "kwin"."Window to Screen 3" = []; + "kwin"."Window to Screen 4" = []; + "kwin"."Window to Screen 5" = []; + "kwin"."Window to Screen 6" = []; + "kwin"."Window to Screen 7" = []; "kwin"."view_actual_size" = ",Meta+0,Zoom to Actual Size"; "kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"]; "kwin"."view_zoom_out" = "Meta+-"; - "mediacontrol"."mediavolumedown" = [ ]; - "mediacontrol"."mediavolumeup" = [ ]; + "mediacontrol"."mediavolumedown" = []; + "mediacontrol"."mediavolumeup" = []; "mediacontrol"."nextmedia" = "Media Next"; "mediacontrol"."pausemedia" = "Media Pause"; - "mediacontrol"."playmedia" = [ ]; + "mediacontrol"."playmedia" = []; "mediacontrol"."playpausemedia" = "Media Play"; "mediacontrol"."previousmedia" = "Media Previous"; "mediacontrol"."stopmedia" = "Media Stop"; @@ -204,9 +204,9 @@ "org_kde_powerdevil"."PowerOff" = "Power Off"; "org_kde_powerdevil"."Sleep" = "Sleep"; "org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off"; - "org_kde_powerdevil"."Turn Off Screen" = [ ]; + "org_kde_powerdevil"."Turn Off Screen" = []; "org_kde_powerdevil"."powerProfile" = ["Battery" "" "Meta+B\\, ,Battery" "Meta+B,Switch Power Profile"]; - "plasmashell"."activate application launcher" = ["Meta" "" "Alt+F1\\, ,Meta" "Alt+F1,Activate Application Launcher"]; + "plasmashell"."activate application launcher" = ["Alt+F1" "Alt+F1,Activate Application Launcher"]; "plasmashell"."activate task manager entry 1" = "Meta+1"; "plasmashell"."activate task manager entry 10" = "\\, Meta+0\\, ,Meta+0,Activate Task Manager Entry 10"; "plasmashell"."activate task manager entry 2" = "Meta+2"; @@ -223,29 +223,29 @@ "plasmashell"."cycleNextAction" = "none,,Next History Item"; "plasmashell"."cyclePrevAction" = "none,,Previous History Item"; "plasmashell"."manage activities" = "Meta+Q"; - "plasmashell"."next activity" = [ ]; - "plasmashell"."previous activity" = [ ]; + "plasmashell"."next activity" = []; + "plasmashell"."previous activity" = []; "plasmashell"."repeat_action" = "Meta+Ctrl+R"; "plasmashell"."show dashboard" = "Ctrl+F12"; - "plasmashell"."show-barcode" = [ ]; + "plasmashell"."show-barcode" = []; "plasmashell"."show-on-mouse-pos" = "Meta+V"; "plasmashell"."stop current activity" = "Meta+S"; - "plasmashell"."switch to next activity" = [ ]; - "plasmashell"."switch to previous activity" = [ ]; - "plasmashell"."toggle do not disturb" = [ ]; + "plasmashell"."switch to next activity" = []; + "plasmashell"."switch to previous activity" = []; + "plasmashell"."toggle do not disturb" = []; "services/alacritty.desktop"."_launch" = "Alt+Q"; "services/lookandfeeltool-4.desktop"."_launch" = "Ctrl+F12"; - "services/org.kde.konsole.desktop"."_launch" = [ ]; + "services/org.kde.konsole.desktop"."_launch" = []; "services/org.kde.plasma-systemmonitor.desktop"."_launch" = ["Ctrl+Shift+Esc" "Meta+Esc"]; - "services/org.kde.spectacle.desktop"."ActiveWindowScreenShot" = [ ]; - "services/org.kde.spectacle.desktop"."FullScreenScreenShot" = [ ]; - "services/org.kde.spectacle.desktop"."RecordRegion" = [ ]; - "services/org.kde.spectacle.desktop"."RecordScreen" = [ ]; - "services/org.kde.spectacle.desktop"."RecordWindow" = [ ]; + "services/org.kde.spectacle.desktop"."ActiveWindowScreenShot" = []; + "services/org.kde.spectacle.desktop"."FullScreenScreenShot" = []; + "services/org.kde.spectacle.desktop"."RecordRegion" = []; + "services/org.kde.spectacle.desktop"."RecordScreen" = []; + "services/org.kde.spectacle.desktop"."RecordWindow" = []; "services/org.kde.spectacle.desktop"."RectangularRegionScreenShot" = "Meta+Shift+S"; - "services/org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = [ ]; - "services/org.kde.spectacle.desktop"."_launch" = [ ]; - "services/systemsettings.desktop"."_launch" = [ ]; + "services/org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = []; + "services/org.kde.spectacle.desktop"."_launch" = []; + "services/systemsettings.desktop"."_launch" = []; }; configFile = { "baloofilerc"."Basic Settings"."Indexing-Enabled" = false; diff --git a/modules/wm/plasma/default.nix b/modules/wm/plasma/default.nix new file mode 100644 index 0000000..0e210f0 --- /dev/null +++ b/modules/wm/plasma/default.nix @@ -0,0 +1,39 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.wm.plasma; +in { + options = { + horseman.wm.plasma = { + enable = mkEnableOption "Plasma 6"; + }; + }; + + config = { + services = { + xserver.enable = true; + + desktopManager.plasma6.enable = true; + displayManager = { + sddm.autoNumlock = true; + }; + + power-profiles-daemon.enable = true; + }; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + kate + konsole + ]; + + home-manager.users.horseman = { + imports = [./config.nix]; + }; + }; +} diff --git a/modules/wm/qtile/config/LICENSE b/modules/wm/qtile/config/LICENSE new file mode 100644 index 0000000..86336ad --- /dev/null +++ b/modules/wm/qtile/config/LICENSE @@ -0,0 +1,20 @@ +MIT License + +Copyright (c) 2020 Daniel Diaz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE diff --git a/modules/wm/qtile/config/README.md b/modules/wm/qtile/config/README.md new file mode 100644 index 0000000..fb552a7 --- /dev/null +++ b/modules/wm/qtile/config/README.md @@ -0,0 +1,91 @@ +# Qtile configuration file + +## Screenshots 🖥️ + +![Qtile Screenshots](../assets/Remake-1.png) + +![Qtile Screenshots](../assets/Remake-2.png) + +![Qtile Screenshots](../assets/REMAKE-3.png) + +## What is Qtile? + +[Qtile](http://www.qtile.org/) is a window manager written and configured in Python🐍. It is hackable and lightweight, you can install it among other desktop environments and [standalone WM's](https://wiki.archlinux.org/index.php/window_manager). + +## Installation 🐧 + +Install Qtile and other dependencies. + +### For Arch Linux +All software, one command: + +```bash +yay -S qtile picom rofi nitrogen xorg-server-xephyr +lxappearance-gtk3 megasync python-psutil brave-browser alacritty +bat playerctl pulseaudio-ctl dunst alacritty fish starship neovim +pavucontrol flameshot noto-fonts-emoji noto-fonts-emoji brightnessctl blueman xfce4-power-manager network-manager-applet xfce4-clipman-plugin +``` + +Also install Rofi Power menu: +``` +git clone git@github.com:jluttine/rofi-power-menu.git +cp rofi-power-menu ~/.local/bin/ +``` + +The [xephyr](https://wiki.archlinux.org/index.php/Xephyr) package is for testing purposes. + +[Nitrogen](https://wiki.archlinux.org/index.php/nitrogen) help us to set a cool wallpaper since Qtile doesn't have a wallpaper manager by default. + +### For Debian, Ubuntu + +For Debian, Ubuntu and derivates [here](http://docs.qtile.org/en/latest/manual/install/ubuntu.html) is the qtile installation guide. + +#### Dependencies + +``` +sudo apt install picom rofi xserver-xephyr nitrogen +``` + +## Cloning the config files 📁 + +``` +git clone git@github.com:DaniDiazTech/Qtile-Config.git ~/.config/qtile +``` + +## Testing 🧪 + +If you want to test the config files without crashing your current qtile instance, type the following commands: + +``` +Xephyr -br -ac -noreset -screen 1280x720 :1 & +DISPLAY=:1 qtile "/PATH/TO/TEST-CONFIG" +``` + +Once you've done all these steps you should have a cool Qtile instance, but most keybindings won't work, because probably you don´t have the software I use, you could install [my software](https://github.com/DaniDiazTech/Qtile-Config/blob/main/software.txt) or re-map the keybindings in [keybindings.py](https://github.com/Daniel1404/Qtile-Config/blob/main/keybindings.py) file. + +## Startup 🏁 + +One of the most important functions in the config is the startup function located at the bottom of _config.py_. + +``` python +@hook.subscribe.startup_once +def start_once(): + home = os.path.expanduser('~') + subprocess.call([home + '/.config/qtile/autostart.sh']) +``` + +You can manage the autostart applications editing the _autostart.sh_ file. + +``` bash +#! /bin/bash +picom --experimental-backend & +nitrogen --restore & +``` + +You can setup your Qtile instance quickly using the `setup.py` file: + +```python +python setup.py +``` + +Remember to set a wallpaper with nitrogen so every time you boot into Qtile, your wallpaper will be restored. diff --git a/modules/wm/qtile/config/config.py b/modules/wm/qtile/config/config.py new file mode 100644 index 0000000..69d4c73 --- /dev/null +++ b/modules/wm/qtile/config/config.py @@ -0,0 +1,104 @@ +############################################### +### QTILE CONFIGURATION FILE OF DANIEL DIAZ ### +# +# ____ ____ +# | _ \ | _ \ Copyright (c) 2020 Daniel Diaz +# | | | || | | | +# | |_| || |_| | http://www.github.com/DaniDiazTech/ +# |____/ |____/ +# + + +####### IMPORTS ######### +import os +import subprocess + + +# from typing import List # noqa: F401 + +from libqtile import hook, layout +from libqtile.config import Group, Match + +# Local Files +from keys.keybindings import Mouse,Keybindings + +from widgets import MyWidgets +from layouts import Layouts +from groups import CreateGroups +from icons import group_icons + + +###### MAIN ###### +if __name__ in ["config", "__main__"]: + # Initializes objects + + # Initializes keybindings + obj_keys = Keybindings() + + # Mouse + obj_mouse = Mouse() + obj_widgets = MyWidgets() + obj_layouts = Layouts() + obj_groups = CreateGroups() + + # Initializes qtile variables + keys = obj_keys.init_keys() + mouse = obj_mouse.init_mouse() + layouts = obj_layouts.init_layouts() + groups = obj_groups.init_groups() + + # Append group keys for groups + keys += obj_keys.init_keys_groups(group_icons) + + ### DISPLAYS WIDGETS IN THE SCREEN #### + + screens = obj_widgets.init_screen() + main_widgets_list = obj_widgets.init_widgets_list() + widgets_screen1 = obj_widgets.init_widgets_screen() + + + +dgroups_key_binder = None + +dgroups_app_rules = [] # type: list + +follow_mouse_focus = True + +bring_front_click = False + +cursor_warp = False + + +floating_layout = layout.Floating(float_rules=[ + # Run the utility of `xprop` to see the wm class and name of an X client. + *layout.Floating.default_float_rules, + Match(wm_class='confirmreset'), # gitk + Match(wm_class='dialog'), # Dialogs stuff + Match(wm_class='makebranch'), # gitk + Match(wm_class='maketag'), # gitk + Match(wm_class='ssh-askpass'), # ssh-askpass + Match(title='branchdialog'), # gitk + Match(title='pinentry'), # GPG key password entry +]) +auto_fullscreen = True + +focus_on_window_activation = "smart" + +reconfigure_screens = True + +# If things like steam games want to auto-minimize themselves when losing +# focus, should we respect this or not? +respect_minimize_requests = True + +# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this +wmname = "LG3D" + +@hook.subscribe.startup_once +def start_once(): + home = os.path.expanduser('~') + subprocess.call([home + '/.local/bin/autostart']) + +@hook.subscribe.client_new +def dialogs(window): + if(window.window.get_wm_type() == 'dialog' or window.window.get_wm_transient_for()): + window.floating = True \ No newline at end of file diff --git a/modules/wm/qtile/config/config_keybindings.py b/modules/wm/qtile/config/config_keybindings.py new file mode 100644 index 0000000..6d252da --- /dev/null +++ b/modules/wm/qtile/config/config_keybindings.py @@ -0,0 +1,117 @@ +""" +MODIFY THIS FILE TO CREATE CUSTOM KEYBINDINGS + +Keybindings are configured with tuples, inside Predifined lists Variables + +Modifier -> list() -> Ex: [MOD, CONTROL] + +Key -> str() -> Ex: 'j' + +Command -> str() -> Ex: vscode + +(Modifier, Key, Command) +""" + +from libqtile.confreader import ConfigError + +# Import default mod keys +from keys.default import * + +from functions import PWA + +from os.path import expanduser + +HOME = expanduser("~") + +# Define constants here +TERMINAL = "alacritty" + + +# Basic window manager movements + + +# Qtile shutdown/restart keys +SHUTDOWN_MODIFIER = [MOD, CONTROL] +RESTART = "r" +SHUTDOWN = "q" + + +# Group movement keys: +GROUPS_KEY = CONTROL +SWAP_GROUP_KEY = SHIFT + +NEXT_GROUP = "period" +PREV_GROUP = "comma" + + +# ------------ Hardware Configs ------------ +HARDWARE_KEYS = [ + # (Modifier, Key, Command) + + # Volume + ([], "XF86AudioLowerVolume", "pactl set-sink-volume @DEFAULT_SINK@ -5%"), + ([], "XF86AudioRaiseVolume", "pactl set-sink-volume @DEFAULT_SINK@ +5%"), + ([], "XF86AudioMute", "pactl set-sink-mute @DEFAULT_SINK@ toggle"), + + # Brightness + ([], "XF86MonBrightnessUp", "brightnessctl set +5%"), + ([], "XF86MonBrightnessDown", "brightnessctl set 5%-"), +] + + +APPS = [ + ([MOD], "Return", TERMINAL), + # (Modifier, Key, Command) + ([MOD], "e", "thunar"), + ([MOD, ALT], "d", "emacs"), + ([MOD, ALT], "o", "env LIBGL_ALWAYS_SOFTWARE=1 obs"), + ([MOD, ALT], "v", "gvim"), + ([MOD, ALT], "b", "brave"), + ([MOD, ALT], "c", "code"), + ([MOD, ALT], "p", "pycharm"), + ([MOD, ALT], "a", "pavucontrol"), + ([MOD, ALT], "e", "vim -g .config/qtile/config.py"), + ([MOD, ALT], "z", "zoom"), + + # Media hotkeys + ([MOD], "Up", "pulseaudio-ctl up 5"), + ([MOD], "Down", "pulseaudio-ctl down 5"), + + # Makes reference to play-pause script + # You can find it in my scripts repository + ([ALTGR], "space", "play-pause"), + + # Run "rofi-theme-selector" in terminal to select a theme + ([MOD], "space", 'rofi -modi "drun,power-menu:rofi-power-menu,run,window,ssh" -show drun -show-icons'), + + # Screenshots + ([], "Print", "xfce4-screenshooter"), + # Full screen screenshot + ([ALT], "Print", "xfce4-screenshooter -f -c"), + + # Terminal apps + ([MOD, ALT], "n", TERMINAL + " -e nvim"), + +] + +########################## +# Your custom keys here # +########################## + +CUSTOM_SPAWN_KEYS = [ + # PWA keys + ([MOD, ALT], "s", PWA.spotify()), + ([MOD, ALT], "m", PWA.music()), + ([MOD, ALT], "t", PWA.calendar()), + ([MOD, ALT], "y", PWA.youtube()), + ([MOD, ALT], "l", PWA.notion()), + ([MOD, ALT], "h", PWA.habitica()), +] + + +SPAWN_KEYS = HARDWARE_KEYS + APPS + CUSTOM_SPAWN_KEYS + +SPAWN_CMD_KEYS = [ + # Takes full screenshot and creates a file on the screenshot folder + ([SHIFT], "Print", f"xfce4-screenshooter -f -s {HOME}/Pictures/Screenshots/"), +] diff --git a/modules/wm/qtile/config/functions.py b/modules/wm/qtile/config/functions.py new file mode 100644 index 0000000..e1de5b2 --- /dev/null +++ b/modules/wm/qtile/config/functions.py @@ -0,0 +1,85 @@ +from libqtile.lazy import lazy +# from libqtile.command_client import InteractiveCommandClient + + +class Functions: + + ##### MOVE WINDOW IN GROUPS ##### + + @staticmethod + def window_to_prev_group(): + @lazy.function + def __inner(qtile): + i = qtile.groups.index(qtile.current_group) + + if qtile.current_window and i != 0: + group = qtile.groups[i - 1].name + qtile.current_window.togroup(group, switch_group=True) + + return __inner + + @staticmethod + def window_to_next_group(): + @lazy.function + def __inner(qtile): + i = qtile.groups.index(qtile.current_group) + + if qtile.current_window and i != len(qtile.groups): + group = qtile.groups[i + 1].name + qtile.current_window.togroup(group, switch_group=True) + + return __inner + + ##### KILL ALL WINDOWS ##### + + @staticmethod + def kill_all_windows(): + @lazy.function + def __inner(qtile): + for window in qtile.current_group.windows: + window.kill() + + return __inner + + @staticmethod + def kill_all_windows_minus_current(): + @lazy.function + def __inner(qtile): + for window in qtile.current_group.windows: + if window != qtile.current_window: + window.kill() + + return __inner + + +class PWA: + def __init__(self): + pass + + @staticmethod + def notion(): + return "brave --profile-directory=Default --app=https://notion.so" + + @staticmethod + def music(): + return "brave --profile-directory=Default --app=https://music.youtube.com/" + + @staticmethod + def spotify(): + return "brave --profile-directory=Default --app=https://open.spotify.com/" + + @staticmethod + def youtube(): + return "brave --user-data-dir=Default --app=https://www.youtube.com" + + @staticmethod + def calendar(): + return "brave --profile-directory=Default --app=https://calendar.google.com/calendar/" + + @staticmethod + def habitica(): + return "brave --profile-directory=Default --app=https://habitica.com/" + + +if __name__ == "__main__": + print("This is an utilities module") diff --git a/modules/wm/qtile/config/groups.py b/modules/wm/qtile/config/groups.py new file mode 100644 index 0000000..b0b4d9f --- /dev/null +++ b/modules/wm/qtile/config/groups.py @@ -0,0 +1,17 @@ +from libqtile.config import Group +from icons import group_icons + +class CreateGroups: + group_names = group_icons + + def init_groups(self): + """ + Return the groups of Qtile + """ + #### First and last + groups = [Group(name, layout="max") if name == self.group_names[0] + else Group(name, layout="floating") + if name == self.group_names[-1] else Group(name, layout="monadtall") + for name in self.group_names] + return groups + diff --git a/modules/wm/qtile/config/icons.py b/modules/wm/qtile/config/icons.py new file mode 100644 index 0000000..9e90130 --- /dev/null +++ b/modules/wm/qtile/config/icons.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +# You can define a letter and its icon here +group_icons = ["B  ", + "D  ", + "T  ", + "V  ", + "M  ", + "C  ", + "E  ", + "N  ", + ] + diff --git a/modules/wm/qtile/config/icons/layout-floating.png b/modules/wm/qtile/config/icons/layout-floating.png new file mode 100644 index 0000000000000000000000000000000000000000..e876b13e4103c62155581528a840e6c409c092eb GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}oCO|{#S9F3${@^GvDChd zfq{X&#M9T6{Rs;PE31Ox^Xys%1_sFz*N775{M_8syb=cIqSVBa)D(sC%#sWRcTeAd z@J2py1_p*CPZ!6Kh{JEES#upQ;BlVs^}ar}d}Vu{qDqHQrrATqqw)sc456$6+V^F& zrtG-G$D+Vc)==$Ut=beTxMiB(8J7g+2_-w2-*Zmz|1p!g8*N`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsJr!i=6aEgXhn4kzy7VvChXE+|KYm`!P9T)vi_duH}Z?3$rP= zcxbBLUiSa{dxQTElKL+GP>>4l5u5IBS9q-X*5gyF)nAA2*SqIE!~W#i+D649iMxhZ zcRZCX(zqCQW!Kx36Nj4@Uit1+8F%8gz-zmN)A{U{R(urJhYVeW`tNNP?c_Xv>KgZ>Yibt)Ezj02lqrjQ{%qN)14r&o+`Rfa z^HS?~J-64(9h-Z1QpY`A--;v$Nd<<=TN~eglRLZo#+_sFG0%+i-j-A>`u%Uq{RykEf-MmRlxJPi?pN%umYy4f; zYna`6;?1mu%?a~TIV2|Uyy?u_bK!;~ul9lM-{wr19l_3Zm}~Q)gE^-Y7qR?0p}W1K z>;kt$|0A``GJbuGq@Wi39_X(5hrb9X|97~!O_=Mf8)Jte^dcZc}&D`z>Y_1K9 zdB1V!#`4vi_&AM4n9)`9f!a=&q_WloZCy4?+WdOJab2^_TS2GiS_Q5AE$7o8yX)JP&kpN&&Hr#H^GRA=I#GVj zY_FTY188)>M51BTMGwH=I4EQy4hUPBvcs#Mb|rTDqCxDkTGl zwv)cfvo$xFpDTZ4@Z#KE_Tuc#f*hNW;_dACeXb+{h4i=!+%rbrR(Fxex$SQIa{3in~V3F@M6o| z6UArnhdgU2lAU^y`<=}qqwNW?uBCQv`YX;Tw}uDAc3))HN{$zLt+VR2;V$Va&o!G@ z+!J2Bd!hM)s^p%!z?OK|ug@g*GF~-5@82j=w^gE6@M?V5 z#q@x+`@4*I>h$H7JqJ1ElfiN`J^p^lI=;z20*1_sFz*N775{M_8syb=cIqSVBa)D(sC%#sWRcTeAd z@J2py1_p)@PZ!6Kh{JEMIdUBc;9$P!`SS1j9P_uVPn^YMzn^lR!10vpz!`=!%j`Md z_uMpzf6L1upy1HZVD-RmT2{Q)-!kTI6Sb3;2foe!z{LWRa*z#J&px@D$8FQX?{y3e O3=E#GelF{r5}E*Il|!)r literal 0 HcmV?d00001 diff --git a/modules/wm/qtile/config/icons/layout-tile.png b/modules/wm/qtile/config/icons/layout-tile.png new file mode 100644 index 0000000000000000000000000000000000000000..74cd1e780ad8d531597263dd0f2c5264e92d6770 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}oCO|{#S9F3${@^GvDChd zfq{X&#M9T6{Rs;Pi-r1;m3P7!7#Ji=Tq8=H^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5* z!W;R-85kI%JzX3_A`ZX3X2^BGfQRMa-UUzJF~QHkhH-^f!>cEg zKkNyd`@wWCBO?Tq)rMCL3=EPbt`Q~9`MJ5Nc_j?aMX8A;sVNHOnI#zt?w-B@ z;f;La3=9l@o-U3d5r^MSG2~)U;9-{j_&>gHva{pdmZrF6PVI84F)oEB?6>{6Gk5PU ziwRo&kAZ>VOX%zWe-4~vo+7|t)4;Bw$WXz+AK=6=k4@t|gWeI5kmH`!iVO@444$rj JF6*2UngB{tJwpHh literal 0 HcmV?d00001 diff --git a/modules/wm/qtile/config/icons/python.png b/modules/wm/qtile/config/icons/python.png new file mode 100644 index 0000000000000000000000000000000000000000..bd02fea47ca4401e862c92492a94c6ef8b37645d GIT binary patch literal 746 zcmeAS@N?(olHy`uVBq!ia0y~yV2}b~4mJh`hLv7E=NK3mI14-?iy0X7ltGxWVyS%@ z0|NtliKnkC`xAB+Aq@t*J&DH|7#Ji=Tq8=H^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5* z!W;R-85o#SJY5_^JdWR;cG~+&pvZCi@8$K2Ct5C9(fp{nXv-D3Dg8=YUKoaScZdmw ztS-}4dZnKs>bON?mFt%YIicFx+)7&F6Ioihj&-PsB}XhX?Y(KyUme}U@@x0vufnk< zW#8{qpZ{*N@B2LERoC*a>NG{@OuA7#?}V-kd!Le*mcUKRgzBJQEVUl=-ck zZ`#bSUoms^ADFSaqD9u0yxlAHV&Te7rx&i*xY{O_`h3aPuwI^n zFE$jexB1g(y!5(;e&I5k>)8xKCtEI0@Va#2;-QtNUWszJYGnoU9Cx?_ISrr%DUv;cr zZRg)30uwuGRBx7DW_;$BWaxU@`Rt7rga15_j@nLIf2(8t4F)HLq9!+I{(1gZCHeO_ zk1gjZ=l60-wEP{fuBJZW;PjQQYt70g)!sIi-Sy4y=wiK%3~OUrA;A_D^hgQu&X%Q~loCIIg! BOhW(w literal 0 HcmV?d00001 diff --git a/modules/wm/qtile/config/icons/terminal-iconx14.png b/modules/wm/qtile/config/icons/terminal-iconx14.png new file mode 100644 index 0000000000000000000000000000000000000000..84bcb4fa0d45b7f3d4780be55c7d19054e8883a2 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7o_o4DhE&{2PFWyeuxUf# z28|a{W}7z^YE54B@%wuDa`_m$u+ti9>mTYaPupkG`SSew`Q85c@hg&5j=wy?z%c(^>F$C_591gZ7#KWV{an^LB{Ts5a+85t literal 0 HcmV?d00001 diff --git a/modules/wm/qtile/config/icons/terminal-iconx24.png b/modules/wm/qtile/config/icons/terminal-iconx24.png new file mode 100644 index 0000000000000000000000000000000000000000..687bafbc689dba8fd491b39d68a7071134224405 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoO*~y3Ln>}1rz|i`aCuhn ziOXL%P+aVzoLTq22*nXjp-pKGI=L& z%61=>w5(*Au_dSGf5Tp87KLB-0tv~=p9@zyPTOCXqs`sMdb4vOPxtkl-~V5J4xbfq zV1mrk^AD2Jk8LP=oY!`CH=p63pP#3{F*x*!SwL4;@t3`=-i*K?pBahI9)10PK4y>G zUWG#&5;!k3abMZYkS(C-%E-kq%dtuzvHQu}(`tr`X8oRj(Rvv}idClF0oE0-m}fn2 zUYN_c^a{IlNdCFdr2hJV!p6d1g`S$ZGrrPN;GThv8 W<*{P8*+B*d1_n=8KbLh*2~7Y)h@f=< literal 0 HcmV?d00001 diff --git a/modules/wm/qtile/config/keys/assets.py b/modules/wm/qtile/config/keys/assets.py new file mode 100644 index 0000000..edc45f7 --- /dev/null +++ b/modules/wm/qtile/config/keys/assets.py @@ -0,0 +1,4 @@ +def create_keybinding(): + """ + Returns a key object based on a dictionary + """ \ No newline at end of file diff --git a/modules/wm/qtile/config/keys/default.py b/modules/wm/qtile/config/keys/default.py new file mode 100644 index 0000000..0b98b24 --- /dev/null +++ b/modules/wm/qtile/config/keys/default.py @@ -0,0 +1,60 @@ +"""Qtile default keybindings""" + +# Keys +MOD = "mod4" +ALT = "mod1" +ALTGR = "mod5" +SHIFT = "shift" +CONTROL = "control" + +# Basic wm bindings + +# All of these variables include the MOVEMENT_KEYS at the start + +# The key which the WM will use to move the layouts +MOVEMENT_KEY = MOD +KILL_KEY = MOD + +SWAP_KEY = SHIFT +FLOATING_KEY = SHIFT + + +############ BINDINGS FOR MONADTALL ############## +# Move between windows +LEFT = "h" +RIGHT = "l" +DOWN = "j" +UP = "k" + +# Swap windows +SWAP_LEFT = "h" +SWAP_RIGHT = "l" +SWAP_DOWN = "j" +SWAP_UP = "k" + +SWAP_FLIP = "space" # Flip the layout + +########### LAYOUTS ############### +# Change windows lenght +GROW = "i" +SHRINK = "m" +NORMALIZE = "n" +MAXIMIZE = "o" + +# Floating layout +TOOGLE_FLOATING = "f" +TOOGLE_FULL = "g" + +# Groups key +# Move screen to next and previous group +NEXT = "k" +PREVIOUS = "j" + +# Kill Functions +KILL_CURRENT = "w" +KILL_ALL = "x" +KILL_ALL_MINUS_CURRENT = "c" + +# Rotates layouts + +TOOGLE_LAYOUT = "Tab" \ No newline at end of file diff --git a/modules/wm/qtile/config/keys/keybindings.py b/modules/wm/qtile/config/keys/keybindings.py new file mode 100644 index 0000000..f4bfd0f --- /dev/null +++ b/modules/wm/qtile/config/keys/keybindings.py @@ -0,0 +1,165 @@ + +from libqtile.config import Click, Drag, Key +from libqtile.lazy import lazy + +# Import the function that move the window to the next and prev group +from functions import Functions, PWA + +from config_keybindings import * + + +class Keybindings: + + keys = [] + + spawn_keys = SPAWN_KEYS + + cmd_keys = SPAWN_CMD_KEYS + + def create_layout_keys(self): + ############ BINDINGS FOR MONADTALL ############## + modifier = [MOVEMENT_KEY] + + layout_left = Key(modifier, LEFT, lazy.layout.left()) + + layout_right = Key(modifier, RIGHT, lazy.layout.right()) + + layout_down = Key(modifier, DOWN, lazy.layout.down()) + + layout_up = Key(modifier, UP, lazy.layout.up()) + + toogle_layout = Key(modifier, TOOGLE_LAYOUT, lazy.next_layout()) + + self.keys += [layout_left, layout_right, layout_down, layout_up, toogle_layout] + + def create_swap_keys(self): + modifier = [MOVEMENT_KEY, SWAP_KEY] + + left = Key(modifier, SWAP_LEFT, lazy.layout.swap_left()) + right = Key(modifier, SWAP_RIGHT, lazy.layout.swap_right()) + down = Key(modifier, SWAP_DOWN, lazy.layout.shuffle_down()) + up = Key(modifier, SWAP_UP, lazy.layout.shuffle_up()) + + flip = Key(modifier, SWAP_FLIP, lazy.layout.flip()) + + self.keys += [left, right, down, up, flip] + + + def create_windows_keys(self): + + modifier = [MOVEMENT_KEY] + + grow = Key(modifier, GROW, lazy.layout.grow()) + shrink = Key(modifier, SHRINK, lazy.layout.shrink()) + normalize = Key(modifier, NORMALIZE, lazy.layout.normalize()) + maximize = Key(modifier, MAXIMIZE, lazy.layout.maximize()) + + self.keys += [grow, shrink, normalize, maximize] + + def create_shutdown_keys(self): + + shutdown = Key(SHUTDOWN_MODIFIER, SHUTDOWN, lazy.shutdown()) + restart = Key(SHUTDOWN_MODIFIER, RESTART, lazy.restart()) + + self.keys += [shutdown, restart] + + def create_kill_keys(self): + modifier = [MOVEMENT_KEY, ALTGR] + + all_minus_current = Key(modifier, KILL_ALL_MINUS_CURRENT, + Functions.kill_all_windows_minus_current()) + all_ = Key(modifier, KILL_ALL, + Functions.kill_all_windows()) + current = Key([KILL_KEY], KILL_CURRENT, + lazy.window.kill()) + + self.keys += [all_minus_current, all_, current] + + def create_floating_keys(self): + + modifier = [MOVEMENT_KEY, FLOATING_KEY] + + floating = Key(modifier, TOOGLE_FLOATING, lazy.window.toggle_floating()) + full = Key(modifier, TOOGLE_FULL, lazy.window.toggle_fullscreen()) + + self.keys += [floating, full] + + def create_groups_keys(self): + modifier = [GROUPS_KEY] + swap_modifier = [GROUPS_KEY, SWAP_GROUP_KEY] + screen_modifier = [MOVEMENT_KEY] + + move_next = Key(modifier, NEXT_GROUP, lazy.screen.next_group()) + move_prev = Key(modifier, PREV_GROUP, lazy.screen.prev_group()) + + swap_next = Key(swap_modifier, NEXT_GROUP, Functions.window_to_next_group()) + swap_prev = Key(swap_modifier, PREV_GROUP, Functions.window_to_prev_group()) + + move_next_screen = Key(screen_modifier, NEXT_GROUP, lazy.next_screen()) + move_prev_screen = Key(screen_modifier, PREV_GROUP, lazy.next_screen()) + + self.keys += [move_next, move_prev, swap_next, swap_prev, move_next_screen, move_prev_screen] + + def create_spawn_keys(self): + + for spawn_key in self.spawn_keys: + + modifier, key, command = spawn_key + + keybinding = Key(modifier, key, lazy.spawn(command)) + + self.keys.append(keybinding) + + def create_cmd_keys(self): + + for cmd_key in self.cmd_keys: + + modifier, key, command = cmd_key + + keybinding = Key(modifier, key, lazy.spawncmd(command)) + + self.keys.append(keybinding) + + + def init_keys_groups(self, group_names): + """ + Create bindings to move between groups + """ + group_keys = [] + for icon in group_names: + index = (icon[0]).lower() + + group_keys += [Key([MOVEMENT_KEY, GROUPS_KEY], index, lazy.group[icon].toscreen()), Key( + [MOVEMENT_KEY, SWAP_GROUP_KEY], index, lazy.window.togroup(icon, switch_group=True))] + + return group_keys + + def init_keys(self): + + self.create_layout_keys() + self.create_swap_keys() + self.create_windows_keys() + self.create_shutdown_keys() + self.create_kill_keys() + self.create_floating_keys() + self.create_groups_keys() + + self.create_cmd_keys() + self.create_spawn_keys() + + return self.keys + + +class Mouse: + def __init__(self, mod_key=MOD): + self.mod = mod_key + + def init_mouse(self): + mouse = [ + Drag([self.mod], "Button1", lazy.window.set_position_floating(), + start=lazy.window.get_position()), + Drag([self.mod], "Button3", lazy.window.set_size_floating(), + start=lazy.window.get_size()), + Click([self.mod], "Button2", lazy.window.bring_to_front()) + ] + return mouse diff --git a/modules/wm/qtile/config/keys/print_keybindings.py b/modules/wm/qtile/config/keys/print_keybindings.py new file mode 100644 index 0000000..ff00751 --- /dev/null +++ b/modules/wm/qtile/config/keys/print_keybindings.py @@ -0,0 +1,15 @@ +""" +Script that automates the process of writing a keybindings.md +By directly getting the keybindings from keybindings.py +""" + +# Local import +from keybindings import Keybindings + +def get_keybindings(): + current_keybindings = Keybindings() + list_of_keys = list(current_keybindings.init_keys()) + return list_of_keys + + +print(*get_keybindings(), sep="\n") diff --git a/modules/wm/qtile/config/layouts.py b/modules/wm/qtile/config/layouts.py new file mode 100644 index 0000000..dcd6af1 --- /dev/null +++ b/modules/wm/qtile/config/layouts.py @@ -0,0 +1,51 @@ +from libqtile import layout + + +class Layouts: + def __init__(self): + self.default = { + "border_width": 2, + "margin": 8, + "border_focus": "#668bd7", + "border_normal": "1D2330"} + + def init_layouts(self): + """ + Returns the layouts variable + """ + layouts = [ + layout.Max(**self.default), + layout.MonadTall(**self.default), + layout.floating.Floating(**self.default), + layout.TreeTab( + font="Ubuntu", + fontsize=10, + sections=["FIRST", "SECOND", "THIRD", "FOURTH"], + section_fontsize=10, + border_width=2, + bg_color="1c1f24", + active_bg="c678dd", + active_fg="000000", + inactive_bg="a9a1e1", + inactive_fg="1c1f24", + padding_left=0, + padding_x=0, + padding_y=5, + section_top=10, + section_bottom=20, + level_shift=8, + vspace=3, + panel_width=200 + ), + # layout.Stack(num_stacks=2), + # Try more layouts by unleashing below layouts. + # layout.Bsp(), + # layout.Columns(), + # layout.Matrix(), + # layout.MonadWide(**self.default), + # layout.RatioTile(), + # layout.Tile(), + # layout.VerticalTile(), + # layout.Zoomy(), + ] + return layouts diff --git a/modules/wm/qtile/config/scripts/autostart.sh b/modules/wm/qtile/config/scripts/autostart.sh new file mode 100755 index 0000000..9a6eeca --- /dev/null +++ b/modules/wm/qtile/config/scripts/autostart.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# --- +# Use "run program" to run it only if it is not already running +# Use "program &" to run it regardless +# --- +# NOTE: This script runs with every restart of AwesomeWM +# TODO: run_once + + +function run { + if ! pgrep $1 > /dev/null ; + then + $@& + fi +} + +run picom -CGb & +run nitrogen --restore & +run /usr/lib/polkit-kde-authentication-agent-1 & +run megasync +run xfce4-clipman +run xfce4-power-manager +run gammy +run dunst +run nm-applet +run blueman-applet diff --git a/modules/wm/qtile/config/scripts/play-pause.sh b/modules/wm/qtile/config/scripts/play-pause.sh new file mode 100755 index 0000000..0eabf52 --- /dev/null +++ b/modules/wm/qtile/config/scripts/play-pause.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +playerctl play-pause + diff --git a/modules/wm/qtile/config/setup.py b/modules/wm/qtile/config/setup.py new file mode 100755 index 0000000..bfae889 --- /dev/null +++ b/modules/wm/qtile/config/setup.py @@ -0,0 +1,225 @@ +# /usr/bin/python + +# Os level operations +import os +from getpass import getuser + +# Determinates if the program is installed +from shutil import which + +# Get the OS I'm in +import platform + +INSTALL_PATH = ".local/bin" + + +def print_program_welcome(): + + row = "=" * 55 + + sep = "||" + + welcome = "SETUP SCRIPT OF DANIEL'S QTILE CONFIG".center(len(row) - len(sep) * 2) + + welcome = sep + welcome + sep + + + print(row) + + print("") + + + print(welcome) + + print("") + + print(row + "\n") + + print(f"Hi there {getuser()}, you are about to setup Qtile".center(len(row))) + + print("\n" + row) + + +def print_current_dir(): + print(f"Currently you are in {os.getcwd()} directory") + +def get_correct_os(): + """ + Returns the Os name: + + get_os -> bool + + Linux: linux + Mac: darwin + Windows: windows + """ + os = platform.system().lower() + + return os == "linux" + + +def get_home_path(): + """ + Get Linux home path + + get_home_path -> str + """ + return os.path.expanduser("~") + +def get_local_bin(home): + """ + Returns the local bin path of the User + """ + return f"{home}/.local/bin" + +def check_local_folder_exists(): + """ + Check if .local/bin exists + """ + home = get_home_path() + + local = get_local_bin(home) + + return os.path.exists(local) + + +def create_local_install_folder(local_bin): + """ + Creates local bin folder + """ + print("") + print(f"Creating folder ar {local_bin}") + print("") + + try: + os.mkdir(local_bin) + except OSError: + raise OSError(f"Creation of the directory {local_bin} failed") + else: + print(f"Successfully created the directory {local_bin}") + +def get_response(message="yes/no"): + """ + returns -> bool + """ + while True: + response = input(message).lower() + + if response == "yes": + return True + elif response == "no": + return False + else: + print("\nSorry your response must be yes or no\n") + continue + + +LOCAL_BIN = get_local_bin(get_home_path()) + +def link_scripts(path): + + path = os.path.abspath(path) + if not os.path.exists(path): + raise OSError("Sorry that path doesn't exist") + + + os.chdir(path) + + i = 0 + + + for file_ in os.listdir(path): + file_path = os.path.abspath(file_) + + file_name = file_.split(".")[0] + + link_path = LOCAL_BIN + f"/{file_name}" + + if os.path.exists(link_path): + print("You have already in path", file_name) + continue + + os.link(file_path, link_path) + + i += 1 + + return f"Linked {i} files to .local/bin" + + +def get_dependencies(software_path="software.txt"): + """software_path -> path of software.txt + + returns list of dependencies + """ + + if not os.path.exists(software_path): + print(f"The file {software_path} wasn't found. Please clone again or provide one") + + if get_response("Continue without dependencies warnings? [yes/no]"): + print("Dependencies won't be shown") + return None + else: + print("Clone again or provide a file.") + exit() + + software = [] + + with open(software_path, "r") as file_: + for line in file_: + software.append(line.strip()) + + return software + +def check_dependencies(dependencies=None): + """dependencies -> list + + returns -> str programs that aren't installed + """ + if dependencies is None: + return "" + + not_installed = [] + + for program in dependencies: + if which(program) is not None: + continue + + not_installed.append(program) + + first_row = "The following software is not installed, some scripts may not work\n" + + if not_installed: + return first_row + "\n".join(not_installed) + else: + return "" + +def main(): + + print_program_welcome() + + if not get_correct_os(): + raise OSError("Sorry Qtile is only supported in Linux") + + if not check_local_folder_exists(): + print("\n.local/bin folder doesn't exists\n") + + response = get_response(message="Do you want to create that directory [yes, no] >> ") + + if not response: + print("Setup can't continue if .local/bin doesn't exists") + print("Rerun the script or set up the scripts manually") + exit() + + print("Creating .local/bin/folder") + create_local_install_folder(LOCAL_BIN) + + + dependencies = get_dependencies() + scripts_path = "./scripts" + print(check_dependencies(dependencies=dependencies)) + print(link_scripts(path=scripts_path)) + + +if __name__ == "__main__": + main() + \ No newline at end of file diff --git a/modules/wm/qtile/config/software.txt b/modules/wm/qtile/config/software.txt new file mode 100644 index 0000000..3a49b82 --- /dev/null +++ b/modules/wm/qtile/config/software.txt @@ -0,0 +1,11 @@ +picom +nitrogen +megasync +xfce4-clipman-plugin +playerctl +pulseaudio-ctl +bat +python-psutil +alacritty +brave-browser +lxappearance-gtk3 \ No newline at end of file diff --git a/modules/wm/qtile/config/widgets.py b/modules/wm/qtile/config/widgets.py new file mode 100644 index 0000000..9f9063b --- /dev/null +++ b/modules/wm/qtile/config/widgets.py @@ -0,0 +1,456 @@ +import os +from libqtile import bar, widget +from libqtile.lazy import lazy +from libqtile.config import Screen + +from functions import PWA +# widget_defaults = dict( +# font="Ubuntu Mono", +# fontsize = 12, +# padding = 2, +# background=colors[2] +# ) + +# extension_defaults = widget_defaults.copy() + + +class MyWidgets: + def __init__(self): + self.colors = [["#292d3e", "#292d3e"], # panel background + # background for current screen tab + ["#434758", "#434758"], + ["#ffffff", "#ffffff"], # font color for group names + # border line color for current tab + ["#bc13fe", "#bc13fe"], # Group down color + # border line color for other tab and odd widgets + ["#8d62a9", "#8d62a9"], + ["#668bd7", "#668bd7"], # color for the even widgets + ["#e1acff", "#e1acff"], # window name + + ["#000000", "#000000"], + ["#AD343E", "#AD343E"], + ["#f76e5c", "#f76e5c"], + ["#F39C12", "#F39C12"], + ["#F7DC6F", "#F7DC6F"], + ["#f1ffff", "#f1ffff"], + ["#4c566a", "#4c566a"], ] + + self.termite = "alacritty" + + def init_widgets_list(self): + ''' + Function that returns the desired widgets in form of list + ''' + widgets_list = [ + widget.Sep( + linewidth=0, + padding=5, + foreground=self.colors[2], + background=self.colors[0] + ), + widget.GroupBox( + font="Ubuntu Bold", + fontsize=12, + margin_y=2, + margin_x=0, + padding_y=5, + padding_x=3, + borderwidth=3, + active=self.colors[-2], + inactive=self.colors[-1], + # rounded=True, + rounded=False, + # highlight_color=self.colors[9], + # highlight_method="line", + highlight_method='block', + urgent_alert_method='block', + # urgent_border=self.colors[9], + this_current_screen_border=self.colors[9], + this_screen_border=self.colors[4], + other_current_screen_border=self.colors[0], + other_screen_border=self.colors[0], + foreground=self.colors[2], + background=self.colors[0], + disable_drag=True + ), + # widget.Prompt( + # prompt=lazy.spawncmd(), + # font="Ubuntu Mono", + # padding=10, + # foreground=self.colors[3], + # background=self.colors[1] + # ), + widget.Sep( + linewidth=0, + padding=25, + foreground=self.colors[2], + background=self.colors[0] + ), + widget.WindowName( + foreground=self.colors[6], + background=self.colors[0], + padding=5 + ), + widget.Systray( + background=self.colors[0], + padding=5 + ), + # widget.TextBox( + # font="Ubuntu Bold", + # text='', + # background=self.colors[0], + # foreground=self.colors[11], + # padding=0, + # fontsize=37 + # ), + widget.Battery( + charge_char='+', discharge_char='-', error_message='error', + format='{percent:2.0%} ({char}{hour:d}:{min:02d})', hide_threshold=None, + low_percentage=0.1, foreground=self.colors[7], background=self.colors[10], update_delay=10), + widget.TextBox( + text=" 🖬", + foreground=self.colors[7], + background=self.colors[11], + padding=0, + fontsize=14 + ), + widget.Memory( + foreground=self.colors[7], + background=self.colors[11], + mouse_callbacks={'Button1': lambda: qtile.cmd_spawn( + self.termite + ' -e htop')}, + padding=5 + ), + widget.ThermalSensor( + # interface="enp5s0", + # fmt='Net: {down} ↓↑ {up}', + foreground=self.colors[7], + background=self.colors[9], + padding=5 + ), + # widget.TextBox( + # text='', + # background=self.colors[11], + # foreground=self.colors[10], + # padding=0, + # fontsize=37 + # ), + widget.TextBox( + text="  ", + foreground=self.colors[7], + background=self.colors[10], + padding=0, + mouse_callbacks={ + "Button1": lambda: qtile.cmd_spawn("pavucontrol")} + ), + widget.Volume( + foreground=self.colors[7], + background=self.colors[10], + padding=5 + ), + # widget.TextBox( + # text='', + # background=self.colors[10], + # foreground=self.colors[9], + # padding=0, + # fontsize=37 + # ), + widget.CurrentLayoutIcon( + custom_icon_paths=[os.path.expanduser( + "~/.config/qtile/icons")], + foreground=self.colors[0], + background=self.colors[9], + padding=0, + scale=0.7 + ), + widget.CurrentLayout( + foreground=self.colors[7], + background=self.colors[9], + padding=5 + ), + # widget.TextBox( + # text='', + # foreground=self.colors[8], + # background=self.colors[9], + # padding=0, + # fontsize=37 + # ), + widget.Clock( + foreground=self.colors[7], + background=self.colors[8], + mouse_callbacks={ + "Button1": lambda qtile: qtile.cmd_spawn(PWA.calendar())}, + format="%A %d - %H:%M" + ), + widget.Sep( + linewidth=0, + padding=10, + foreground=self.colors[0], + background=self.colors[8] + ), + ] + return widgets_list + + def init_widgets_screen(self): + ''' + Function that returns the widgets in a list. + It can be modified so it is useful if you have a multimonitor system + ''' + widgets_screen = self.init_widgets_list() + return widgets_screen + + def init_widgets_screen2(self): + ''' + Function that returns the widgets in a list. + It can be modified so it is useful if you have a multimonitor system + ''' + widgets_screen2 = self.init_widgets_screen() + return widgets_screen2 + + def init_screen(self): + ''' + Init the widgets in the screen + ''' + return [Screen(top=bar.Bar(widgets=self.init_widgets_screen(), opacity=1.0, size=20)), + Screen(top=bar.Bar( + widgets=self.init_widgets_screen2(), opacity=1.0, size=20)) + ] + + +# bar = Bar([ +# Sep( +# linewidth = 0, +# padding = 2, +# foreground = onedark_darker["color4"], +# background = onedark_darker["color4"] +# ), +# Image( +# filename = "~/.config/qtile/icons/archlinux_blue.png", +# scale = "False", +# mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn("alacritty")}, +# background = onedark_darker["color4"], +# ), +# #widget.Sep( +# # linewidth = 0, +# # padding = 2, +# # foreground = onedark_darker["colorback"], +# # background = onedark_darker["colorback"] +# #), +# right_arrow(onedark_darker["color4"], onedark_darker["colorback"]), +# GroupBox( +# font = "JetBrains Nerd Font Mono Bold", +# fontsize = 12, +# fmt = '{}', +# borderwidth = 2, +# background = onedark_darker["colorback"], +# active = onedark_darker["color6"], +# inactive = onedark_darker["color5"], +# rounded = False, +# #Block_highlight_text_color = onedark_darker["color3"], +# highlight_method = 'line', +# highlight_color = onedark_darker["colorback"], # line block colour +# this_current_screen_border = onedark_darker["color4"], +# this_screen_border = onedark_darker["color7"], +# urgent_alert_method = 'line', +# urgent_border = onedark_darker["color10"], +# urgent_text = onedark_darker["color14"], +# disable_drag = True, +# ), +# right_arrow(onedark_darker["colorback"], onedark_darker["color14"]), +# CurrentLayoutIcon( +# custom_icon_paths = [os.path.expanduser("~/.config/qtile/icons")], +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color14"], +# padding = 0, +# scale = 0.7 +# ), +# CurrentLayout( +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color14"], +# padding = 5, +# ), +# right_arrow(onedark_darker["color14"], onedark_darker["color9"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# background = onedark_darker["color9"], +# foreground = onedark_darker["color4"], +# padding = 2 +# ), +# WindowCount( +# format = ' {num} ', +# background = onedark_darker["color9"], +# foreground = onedark_darker["color4"], +# show_zero = True, +# ), +# right_arrow(onedark_darker["color9"], onedark_darker["color1"]), +# WindowName( +# foreground = onedark_darker["color5"], +# background = onedark_darker["color1"], +# padding = 5, +# format = '[ {name} ]', +# empty_group_string = '[ ]', +# parse_text = parse_func, +# ), +# #widget.Spacer(), +# Sep( +# linewidth = 0, +# padding = 6, +# foreground = onedark_darker["color1"], +# background = onedark_darker["color1"], +# ), +# left_arrow(onedark_darker["color2"], onedark_darker["color1"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color2"], +# ), +# Net( +# interface = "wlp44s0", +# format = '{down} {up}', +# prefix = 'M', +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color2"], +# padding = 5, +# ), +# left_arrow(onedark_darker["color3"], onedark_darker["color2"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color3"] +# ), +# CPU( +# background = onedark_darker["color3"], +# foreground = onedark_darker["colorback"], +# fmt = 'Cpu: {}', +# #format = '{freq_current}GHz {load_percent}%', +# format = '[ {load_percent} ]%', +# padding = 5, +# ), +# left_arrow(onedark_darker["color4"], onedark_darker["color3"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color4"] +# ), +# ThermalSensor( +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color4"], +# threshold = 90, +# fmt = 'Temp: {}', +# format='[ {temp:.0f}{unit} ]', +# padding = 5, +# ), +# left_arrow(onedark_darker["color5"], onedark_darker["color4"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color5"] +# ), +# Memory( +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color5"], +# #mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm + ' -e htop')}, +# fmt = 'Mem: {}', +# #format = '{MemUsed: .0f}{mm}/{MemTotal: .0f}{mm}', +# format = '[ {MemUsed:.0f} ]{mm}', +# padding = 5, +# ), +# left_arrow(onedark_darker["color6"], onedark_darker["color5"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color6"] +# ), +# Battery( +# padding = 5, +# background = onedark_darker["color6"], +# foreground = onedark_darker["colorback"], +# charge_char = 'AC', +# discharge_char = '', +# empty_char = 'ﮣ', +# full_char = 'ﭹ', +# fmt = 'Bat: {}', +# format = '{char}[ {percent:2.0%} ]', #{hour:d}:{min:02d} {watt:.2f} W' +# #low_background = none, +# low_forground = '#ff0000', +# update_interval = 60, +# ), +# #battery, + +# left_arrow(onedark_darker["color7"], onedark_darker["color6"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color7"] +# ), +# PulseVolume( +# background = onedark_darker["color7"], +# foreground = onedark_darker["colorback"], +# fmt = 'Vol: [ {} ]', +# device = 'default', +# channel = 'Master', +# limit_max_volume = True, +# padding = 5, +# update_interval = 0.1, +# mute_command = 'pactl set-sink-mute @DEFAULT_SINK@ toggle', +# volume_up_command = 'pactl set-sink-volume @DEFAULT_SINK@ +5%', +# volume_down_command = 'pactl set-sink-volume @DEFAULT_SINK@ -5%', +# ), +# #volume, +# #widget.Volume( +# # foreground = onedark_darker[8], +# # background = onedark_darker[0], +# # fmt = 'Vol: {}', +# # padding = 5, +# # mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm + ' -e alsamixer')} +# #), +# left_arrow(onedark_darker["color10"], onedark_darker["color7"]), +# TextBox( +# text = '', +# font = "Font Awesome 6 Free Solid", +# fontsize = 15, +# padding = 2, +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color10"] +# ), +# Clock( +# foreground = onedark_darker["colorback"], +# background = onedark_darker["color10"], +# format = "%a %d, %b [ %I:%M ]%P", +# padding = 5, +# ), +# left_arrow(onedark_darker["colorback"], onedark_darker["color10"]), +# Systray( +# background = onedark_darker["colorback"], +# padding = 2 +# ), + +# #widget.TextBox( +# # text = '', +# # font = "Mononoki Regular Bold", +# # fontsize = 18, +# # padding = 0, +# # background = onedark_darker[0], +# # foreground = onedark_darker[9], +# #), +# ], size=25) diff --git a/modules/wm/qtile/default.nix b/modules/wm/qtile/default.nix new file mode 100644 index 0000000..f1ccf51 --- /dev/null +++ b/modules/wm/qtile/default.nix @@ -0,0 +1,31 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.wm.qtile; +in { + options = { + horseman.desktop.qtile = { + enable = mkEnableOption "Qtile"; + }; + }; + + config = { + services.xserver = { + enable = true; + windowManager.qtile.enable = true; + }; + + system.activationScripts.script.text = '' + cd /home/horseman && \ + rm -r .config/qtile && \ + cp -r nix-config/modules/wm/qtile/config \ + .config/qtile + ''; + }; +} diff --git a/overhaul/machines/common/configuration.nix b/overhaul/machines/common/configuration.nix deleted file mode 100644 index 65d3b93..0000000 --- a/overhaul/machines/common/configuration.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - ../../pkgs/zsh.nix - ]; - - services.tailscale.enable = true; - - services.mullvad-vpn.enable = true; - services.mullvad-vpn.package = pkgs.mullvad-vpn; - networking.nameservers = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - services.resolved = { - enable = true; - dnssec = "true"; - domains = [ "~." ]; - fallbackDns = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - }; - - sops = { - defaultSopsFile = ../../secrets/secrets.yaml; - defaultSopsFormat = "yaml"; - age = { - sshKeyPaths = [ "/home/horseman/.ssh/id_ed25519" ]; - keyFile = "/home/horseman/.config/sops/age/keys.txt"; - generateKey = false; - }; - secrets = { - "syncthing/user".owner = "horseman"; - "syncthing/password".owner = "horseman"; - }; - templates = { - "syncuser".content = ''${config.sops.placeholder."syncthing/user"}''; - "syncpassword".content = ''${config.sops.placeholder."syncthing/password"}''; - }; - }; - - services.syncthing = { - enable = true; - user = "horseman"; - dataDir = "/home/horseman"; - configDir = "/home/horseman/.config/syncthing"; - overrideDevices = true; - overrideFolders = true; - settings = { - options = { - urAccepted = -1; - }; - gui = { - user = config.sops.templates."syncuser".content; - password = config.sops.templates."syncpassword".content; - }; - devices = { - "luna" = { - id = "MW4ZTAX-D7KDLRL-YHNGNCF-V6FW5L4-SCKQKES-BO7KV43-L5667GL-JHIYEAA"; - autoAcceptFolders = true; - name = "luna"; - }; - "terra" = { - id = "2QWRFLY-ZUY5C6C-X36R5CY-PJSGLYY-5HWIWJN-2YYWRPU-T66GJMU-GXTQ6QK"; - autoAcceptFolders = true; - name = "terra"; - }; - "solis" = { - id = "YOSYADZ-3OZ3XBH-7XEIK2W-DHAEIFD-5P5ZIHB-PAP74DH-T7GHLKT-O32YEA4"; - autoAcceptFolders = true; - name = "solis"; - }; - }; - folders = { - "Documents" = { - id = "documentFolder"; - path = "/home/horseman/Documents"; - devices = [ "luna" "terra" "solis" ]; - }; - }; - }; - }; - networking.firewall.allowedUDPPorts = [ 22000 21027 ]; - networking.firewall.allowedTCPPorts = [ 8384 22000 ]; -} diff --git a/overhaul/machines/luna/configuration.nix b/overhaul/machines/luna/configuration.nix deleted file mode 100644 index 1bb7542..0000000 --- a/overhaul/machines/luna/configuration.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - inputs.home-manager.nixosModules.home-manager - ./hardware-configuration.nix - ../../pkgs/firefox.nix - ../common/configuration.nix - ]; - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - users = { - horseman = import ../../home-manager/apps.nix; - }; - }; - - networking.hostName = "luna"; - networking.networkmanager.enable = true; - networking.extraHosts = '' - 127.0.0.1 koala.rails.local members.rails.local leden.rails.local intro.rails.local - ''; - - services.xserver.enable = true; - services.desktopManager.plasma6.enable = true; - services.displayManager.sddm.enable = true; - services.displayManager.sddm.autoNumlock = true; - services.displayManager.defaultSession = "plasma"; - - hardware.bluetooth.enable = true; - hardware.pulseaudio.enable = false; - services.jack = { - jackd.enable = false; - alsa.enable = true; - loopback.enable = false; - }; - - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - kate - konsole - ]; - environment.gnome.excludePackages = with pkgs; [ - gnome-calendar - gnome-characters - nautilus - gnome-clocks - gnome-contacts - evince - file-roller - geary - gnome-system-monitor - eog - gnome-logs - gnome-maps - gnome-music - seahorse - gnome-text-editor - ]; - - - virtualisation.docker.enable = true; - - virtualisation.virtualbox.host.enable = true; - users.extraGroups.vboxusers.members = [ "horseman" ]; - - users.extraUsers.horseman.extraGroups = [ "jackaudio" ]; -} diff --git a/overhaul/machines/luna/hardware-configuration.nix b/overhaul/machines/luna/hardware-configuration.nix deleted file mode 100644 index d3d28bb..0000000 --- a/overhaul/machines/luna/hardware-configuration.nix +++ /dev/null @@ -1,38 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/c1447573-eee5-48ea-9937-84330065628b"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/B516-99F1"; - fsType = "vfat"; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; - # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/overhaul/machines/solis/configuration.nix b/overhaul/machines/solis/configuration.nix deleted file mode 100644 index 3607241..0000000 --- a/overhaul/machines/solis/configuration.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - inputs.home-manager.nixosModules.home-manager - ./hardware-configuration.nix - ../common/configuration.nix - ../../modules/sleep-at-night.nix - ]; - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - users = { - horseman = import ../../home-manager/server-apps.nix; - }; - }; - - networking.hostName = "solis"; - - virtualisation.docker.enable = true; - - services.resolved.enable = true; - services.resolved.extraConfig = "DNSStubListener=no\n"; - - systemd.timers."backupSyncthing" = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnCalendar = "weekly"; - Persistent = true; - }; - }; - - systemd.services."backupSyncthing" = { - script = '' - /home/horseman/nix-config/misc/backup.sh - ''; - serviceConfig = { - Type = "oneshot"; - User = "horseman"; - }; - }; - - # services.sleep-at-night = { - # enable = true; - # shutdown = { - # hour = 00; - # minute = 30; - # }; - # wakeup = "08:00:00"; - # }; - - networking.firewall.enable = true; - networking.firewall.allowPing = true; -} diff --git a/overhaul/machines/solis/hardware-configuration.nix b/overhaul/machines/solis/hardware-configuration.nix deleted file mode 100644 index 02593b1..0000000 --- a/overhaul/machines/solis/hardware-configuration.nix +++ /dev/null @@ -1,34 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "ahci" "ohci_pci" "ehci_pci" "pata_atiixp" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/74211087-d087-49d5-bc58-eb49748a51f0"; - fsType = "ext4"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/bfe8c490-e8d7-438e-b95b-5bc5743bb23b"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/overhaul/machines/terra/configuration.nix b/overhaul/machines/terra/configuration.nix deleted file mode 100644 index 0e90857..0000000 --- a/overhaul/machines/terra/configuration.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - inputs.home-manager.nixosModules.home-manager - ./hardware-configuration.nix - ./refind.nix - ../../pkgs/firefox.nix - ../common/configuration.nix - ]; - - # NVIDIA Drivers - hardware.graphics.enable32Bit = true; - hardware.graphics.enable = true; - services.xserver.videoDrivers = ["nvidia"]; - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = false; - powerManagement.finegrained = false; - open = true; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - # End NVIDIA - - - home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; - users = { - horseman = import ../../home-manager/apps.nix; - }; - }; - - networking.hostName = "terra"; - - systemd.timers."enable-wol" = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnBootSec = "5m"; - OnUnitActiveSec = "1m"; - Unit = "enable-wol.service"; - }; - }; - - systemd.services."enable-wol" = { - script = '' - /home/horseman/nix-config/misc/startup.sh - ''; - serviceConfig = { - Type = "oneshot"; - User = "root"; - }; - }; - - environment.systemPackages = with pkgs; [ - ethtool - ]; - - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - kate - konsole - ]; - environment.gnome.excludePackages = with pkgs; [ - gnome-calendar - gnome-characters - nautilus - gnome-clocks - gnome-contacts - evince - file-roller - geary - gnome-system-monitor - eog - gnome-logs - gnome-maps - gnome-music - seahorse - gnome-text-editor - ]; - - services.xserver.enable = true; - services.desktopManager.plasma6.enable = true; - services.xserver.desktopManager.gnome.enable = true; - services.displayManager.sddm.enable = true; - services.displayManager.sddm.autoNumlock = true; - services.displayManager.sddm.wayland.enable = false; - services.displayManager.defaultSession = "plasma"; - boot.loader.systemd-boot.enable = true; - - programs.ssh.askPassword = lib.mkForce "/nix/store/qrzq7dqp8dkffb5dvi42q647dhm87ady-ksshaskpass-6.0.3/bin/ksshaskpass"; - - networking.networkmanager.enable = true; - - virtualisation.docker.enable = true; - - hardware.pulseaudio.enable = false; - services.jack = { - jackd.enable = true; - alsa.enable = false; - loopback.enable = true; - }; - - users.extraUsers.horseman.extraGroups = [ "jackaudio" ]; -} diff --git a/overhaul/machines/terra/hardware-configuration.nix b/overhaul/machines/terra/hardware-configuration.nix deleted file mode 100644 index 509f196..0000000 --- a/overhaul/machines/terra/hardware-configuration.nix +++ /dev/null @@ -1,39 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/4d963cda-4ec7-4cee-8e82-35402d385f54"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/6AB6-63FD"; - fsType = "vfat"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/53db744d-a858-49b0-a3a1-c7c576aba0c9"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.eno1.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/overhaul/modules/boot/grub.nix b/overhaul/modules/boot/grub.nix deleted file mode 100644 index 0921d5c..0000000 --- a/overhaul/modules/boot/grub.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.boot.grub; -in { - options = { - horseman.boot.grub = { - enable = mkEnableOption "Enables grub, the bootloader"; - }; - }; - - config = mkIf cfg.enable { - boot.loader.grub = { - enable = true; - device = "/dev/sda"; - configurationLimit = 10; - }; - }; -} diff --git a/overhaul/modules/boot/systemd.nix b/overhaul/modules/boot/systemd.nix deleted file mode 100644 index 576852b..0000000 --- a/overhaul/modules/boot/systemd.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.boot.systemd; -in { - options = { - horseman.boot.systemd = { - enable = mkEnableOption "Enables systemd, the bootloader"; - }; - }; - - config = mkIf cfg.enable { - boot.kernelModules = [ "snd-seq" "snd-rawmidi" ]; - boot.loader.systemd-boot = { - enable = true; - configurationLimit = 10; - }; - }; -} diff --git a/overhaul/modules/packages/console.nix b/overhaul/modules/packages/console.nix deleted file mode 100644 index 37ccda7..0000000 --- a/overhaul/modules/packages/console.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.terminal.pkgs; -in { - options = { - horseman.terminal.pkgs = { - enable = mkEnableOption "Packages that are used in the terminal"; - }; - }; - - config = mkIf cfg.enable { - environment.packages = with pkgs; [ - direnv - docker-compose - efibootmgr - ethtool - file - fzf - gcc - gnupg - haskell.compiler.native-bignum.ghcHEAD - haskell-language-server - htop - jdk - neofetch - nodejs_22 - python313 - platformio-core - sops - sqlite - sxiv - termdown - tmux - unzip - wakeonlan - zsh - xclip - ]; - }; -} diff --git a/overhaul/modules/packages/visual.nix b/overhaul/modules/packages/visual.nix deleted file mode 100644 index 2d197bc..0000000 --- a/overhaul/modules/packages/visual.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.packages.visual; -in { - options = { - horseman.packages.visual = { - enable = mkEnableOption "Programs that open in a window on the screen"; - }; - }; - - config = mkIf cfg.enable { - environment.packages = with pkgs; [ - alacritty - bitwarden - discord-ptb - ghex - gnome-calculator # Should be replaced, opens up so slowww - jetbrains.clion - jetbrains.idea-ultimate - jetbrains.pycharm-professional - jetbrains.rider - jetbrains.webstorm - inkscape - keepassxc - krita - libreoffice - mullvad-vpn - parsec-bin - qbittorrent - reaper - retext - solaar - spotify - sqlitebrowser - thunderbird - vlc - ]; - }; -} diff --git a/overhaul/modules/terminal/neovim.nix b/overhaul/modules/terminal/neovim.nix deleted file mode 100644 index fe79364..0000000 --- a/overhaul/modules/terminal/neovim.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.terminal.neovim; -in { - options = { - horseman.terminal.neovim = { - enable = mkEnableOption "Neovim options"; - }; - }; - - config = mkIf cfg.enable { - - }; -} diff --git a/overhaul/modules/users/horseman.nix b/overhaul/modules/users/horseman.nix deleted file mode 100644 index b61e16a..0000000 --- a/overhaul/modules/users/horseman.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: -let - inherit (lib) mkEnableOption mkIf mkOption types; - cfg = config.horseman.users.horseman; -in -{ - options = { - horseman.users.horseman = { - enable = mkEnableOption "User 'horseman'"; - }; - }; - - config = mkIf cfg.enable { - users.users = { - horseman = { - initialPassword = "correct horse battery staple"; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCtbmZFvOsukUtqKnRkzLqphpgA0HF/mCcH/6BtPah6G4v6gqu8za58w8/0//aGkurG3sfQ5YhphFMJYm26/QdCUvVYeC92LWC5mjWB/md+BOWCoZYoEL0NHuu5f+7EQcmxLYuIv7mzHB1T+fwgOyuoW6IKLLQcmokx4uyg8apUs0yaRr9rCmoxeYOlZlsE6pKS2E8YUEkCRUZ1PZW6ILHXOOaz3KQ7s429MPvKv+061SlyEZuyinzsS1+4e/j5fCddq9Ac2ar1TiIkFhmtpJfJ2iWzVAvpZ08KV4nHgews07jjuj0/dZufSXbWJI6fQCMRvETeQsDU0RB6AxO//6plSo6svsGa/XhZx55AZAotflc2EzIi5QPWa078xu8IR23/flj52gqCj3O7RxhZib+L4cCdAS8nSZkLw9VV2kROqf4JcRYsinfKetBBPJU3RYKDVq8uF23eliNw+5lYKJu5FzPVFmS/J+vAme/vHkHLNKz5CnZoABjeue4PEnpSyFCJhf4w94lbB9JBaxKuZoXvaPE7bKDTHWbVC9DKWrL+QqNP5tsiV3/jI9gx4ty9OihMv5p46ennD17AbMM6xi/yPjvX6jbDIo+jMswW1ndhH2Ka6PTRpx8G+BWgoEVjCoP/DptloE6B5EfZous8Yd+RBuRiqNk4WUB+6PWVO7ELfQ horseman" # luna - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCmYI+jn1B69r4GUEeVE1/q+HSNcLzT+qG0nEpIjyO3VCsocLIJqT6cJtPKTh/j9RPySvz1lo2ZFemCeKBfsdHy95JoYqbAcoJ9jacH3X8LixIiGin6ew/h6QJONU1UAuxcEDoEyeHfmNBRdgaahNTWtgvFd1YhB4WQwN9THZ/axGdnWLi/y0y98aqERw98fGOhAzxqZyeGkWK5ByRiiGmfrmU7IsX916z5s9OPFYeIGvI3UPKL5awpQMrD/+VhtQjAy8guWbBKbN+7cVU/JQjhaPAeVC18iON++Ux6pGq1/yA+IFDb/fFofXD70vRYemg7zSVbf2ceBg8iSR2OdcZVPfhIKq7mx62TcYVY7aDlz7fFedl7tVhxRd5Ze7T/kbRQtbqL++3UQaZwnx6HoXGMvdIbKV/KHcmqjQQClzWZyk8oI+VbkF/nfTgShW/X0UQYzBSdsCb4XywzfnLRH4Ops/v7ZOc2zBApl7j1Oj+nW7dJ5/P6FgMw553tNXnEVXqGvdvalmDl/hjR3UVedm18ZKwu+6+1mcHsDGKCi5C79zVksr9IbFNICosA23xfrnKQYmncBzobbY4N39SToI9ulcukOJj26ooAG3RhHqSyOkcM3nTUbHwKb/19J+NAm2iT9ipNGurwwPO4VcJY36237es7MEkmQHfD1ZOo6biafw horseman" # terra - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCrgH3kBWwxoFms9ggilPmiKX9X0/AlWjGN7a+k3ddwfK0LvH9T8ueil1Zjw16P0XNMmy076bUBJJ89aVILXgYx+ngKmnIg32lqo5bafEpub1c3wtjGcwXtJnUXMwcqdIjkR2sfzuQPLXlob/Q+GsShm4TBEtzVTdpbCj768LyTtFx4vHZByyGtam0Ibb/6GVE1V2IcA/R+iQlCAqSjFxvSq1ll+wxsEUaT7b0ru1WhUXz0ITWoRkA8p0UjTl/uoXYcsPsqGR7dXgW7hNF087TOf+FsmiL+I6pbbB8+at5yq8I6l1lCwfLaMz2M5lHkn5jZiBuUDOXWpbbk1214iWrymAbpbVmNU68QVEcQkJTnfbRQ/56Nvq80emFgke6p4vcVnR9iVbaZDnOkMVH6HEs0Qc/rC38p9aISAdJvI49GWaz8fs1OgVi7mj9xA0QREc6/oalJ1F3BehPUk8v4uqww3u+I2AdWPp/6HO9zVU2mTrO30a8IbjOqFqMqdV+nYFxNbHIIIZ9acv95FGqIBCG0U9d8XVVFQ+kVWxkXxPk0uynzAsrXyiH3gzxHwy7stCxybZkTpQPjf+vSt4Tz3PRxnyq1OWTUzWmBVe0MCdZX5h/oQp6kI1Ys/t+UrP1G9NEIwGg+/zlpmGiV8Pm10b6gEXgv09BQPFGPsBbl4NRpQQ horseman" # solis - ]; - extraGroups = [ - "wheel" - "networkmanager" - "docker" - ]; - }; - }; - - services.openssh = { - enable = true; - settings = { - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; - }; - - # lmao idk if I should remove this but it's funny so imma keep it - system.stateVersion = "23.11"; - }; -} diff --git a/overhaul/secrets/secrets.yaml b/overhaul/secrets/secrets.yaml deleted file mode 100644 index e738999..0000000 --- a/overhaul/secrets/secrets.yaml +++ /dev/null @@ -1,23 +0,0 @@ -syncthing: - user: ENC[AES256_GCM,data:DfJyEnHAC74qvy8=,iv:q5A1to6eoBkXF6uRo+OWhVoP5WnkBnEVVd66tWAI7Sc=,tag:hK3OtNXX66BT8hpxtY1a0w==,type:str] - password: ENC[AES256_GCM,data:5So/Ay3zszQl58d1ub9PmTPs0wwERa28X0Osh0qSwjaHqOewxQ==,iv:zcRrxgcO+vGnVzuXMY8BXYrc+xFHh3/RZXvC7FBKLcY=,tag:GbPqK447lfS4ME3FXTVZaA==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age167thunwadsswd0u37tajk85wy4x7sgw6sg3j2aspcax7essmge6qwen0uz - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2S3hLRWQrSHBQdjNhbDV2 - VmwrbUVsc0IwaDZKUndOTEMxN0kwWUtaYzJrCjJtNUdBMkhDVDB0akg2TTlqS1lF - NWJESlorR28rUGZHeEh6dFJYcEFsQnMKLS0tIFY3b0ZDSzM3SGVCZW9xcnJLc296 - ckJwQ3EzU2JzdGhnWkNnRExRNlprM28KUHkZe8FvLOAt+UVqvgOxBQdApbEXQ44v - vXW8UtZuq7GjsP5qD2MK6oKs/ZDfe+PhqiWl4ONNHvpn8rmfbQDcRw== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-10-08T16:55:41Z" - mac: ENC[AES256_GCM,data:VSOGYnpkU9gD/7JaCdIC84XHI5rHc4PhqSB64YvPehTrA4rgRGynMxSfvb+zRt+rIO8Qyhnt+i9zjsOLa9Z1F8xOx6f23oLRtguvYBNWJIhYaUvmS7lqPryvJGv3aoVvWkRAoSHyizIqXfmHvn0z/QfEst9PS72I4xf1pQu3trs=,iv:GJzYvWn1EOJ++QYW9jYrUfLAwTceAKFD078JWukMhH0=,tag:q62MpyvDneSYXSzu8S3qUQ==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.9.1 diff --git a/pkgs/default.nix b/pkgs/default.nix deleted file mode 100644 index 3d9e23c..0000000 --- a/pkgs/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -# Custom packages, that can be defined similarly to ones from nixpkgs -# You can build them using 'nix build .#example' -pkgs: { - # example = pkgs.callPackage ./example { }; -} diff --git a/pkgs/firefox.nix b/pkgs/firefox.nix deleted file mode 100644 index 0b5c8ef..0000000 --- a/pkgs/firefox.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - config, - pkgs, - ... -}: { - programs.firefox = { - enable = true; - policies = { - Preferences.general.autoScroll = true; - ExtensionSettings = { - "*".installation_mode = "blocked"; - # uBlock Origin: - "uBlock0@raymondhill.net" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - installation_mode = "force_installed"; - }; - # Bitwarden - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; - installation_mode = "force_installed"; - }; - # Dark Reader - "addon@darkreader.org" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; - installation_mode = "force_installed"; - }; - # Advent of Code delta-rank - "{78b07db2-25ed-4088-9c92-5c5dcfca3c3c}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/advent-of-code-delta-score/latest.xpi"; - installation_mode = "force_installed"; - }; - # SponsorBlock - "{sponsorBlocker@ajay.app}" = { - install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/sponsorblock/latest.xpi"; - installation_mode = "force_installed"; - }; - }; - }; - }; -} diff --git a/pkgs/zsh.nix b/pkgs/zsh.nix deleted file mode 100644 index 363ea8d..0000000 --- a/pkgs/zsh.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - config, - pkgs, - ... -}: { - users.defaultUserShell = pkgs.zsh; - environment.shells = with pkgs; [ zsh ]; - - programs.zsh = { - enable = true; - enableCompletion = true; - - histSize = 10000; - - shellAliases = { - clone-dotfiles = "cp /home/horseman/nix-config/config/dotfiles/.\* /home/horseman/"; - rebuild = "clone-dotfiles && sudo nixos-rebuild switch --flake"; - update = "sudo nix flake update && rebuild"; - compose = "sudo docker compose"; - wolpc = "wakeonlan D8:5E:D3:A8:B1:0A"; - capture-config = "nix run github:pjones/plasma-manager > ~/nix-config/home-manager/plasma.nix"; - reboot-to-windows = "sudo efibootmgr -n 0000"; - mkdir = "mkdir -p"; - }; - - ohMyZsh = { - enable = true; - plugins = [ - "git" - "zsh-interactive-cd" - "python" - "git-auto-fetch" - "wd" - ]; - custom = "/home/horseman/nix-config/pkgs/zsh/"; - theme = "jonathan"; - }; - - shellInit = "eval \"$(direnv hook zsh)\""; - }; -} diff --git a/pkgs/zsh/plugins/nix-shell/LICENSE b/pkgs/zsh/plugins/nix-shell/LICENSE deleted file mode 100644 index 8ef4734..0000000 --- a/pkgs/zsh/plugins/nix-shell/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2018, Philipp Dargel -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of Spencer Whitt nor the names of other - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pkgs/zsh/plugins/nix-shell/README.MD b/pkgs/zsh/plugins/nix-shell/README.MD deleted file mode 100644 index ca2c790..0000000 --- a/pkgs/zsh/plugins/nix-shell/README.MD +++ /dev/null @@ -1,113 +0,0 @@ - -# zsh in nix-shell - -This [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh/) plugin lets you use zsh as the default shell in a `nix-shell` environment. It's recommended to use this in conjunction with [nix-zsh-completions](https://github.com/spwhitt/nix-zsh-completions). - -# Motivation - -In theory all you need to do to use `zsh` in `nix-shell` is to set `NIX_BUILD_SHELL` to `zsh`. Unfortunatly nix assumes that the `NIX_BUILD_SHELL` is a bash variant and passes bash specific arguments to the shell. To fix this, we need a shim that translates these arguments. - -The information that `nix-shell` exposes to the environment is also pretty sparse. It would be nice to know what derivations are included in the current environment for example to display them in the shells prompt. - -# Installation - -## Oh-My-ZSH - -Clone this repository into your plugins directory - -```sh -git clone https://github.com/chisui/zsh-nix-shell.git $ZSH_CUSTOM/plugins/nix-shell -``` - -Then add `nix-shell` to the plugins list in `~/.zshrc`. - -### NixOS - -If you have installed `zsh` using `nix` the plugins directory is readonly since it's inside of the nix store. -To get around this you can override the [`ZSH_CUSTOM` directory](https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#using-another-customization-directory). -Simply create a writable directory inside of your home directory (e.g. `$HOME/.config/oh-my-zsh`) and set `ZSH_CUSTOM` to that path inside of your `.zshrc` file. - -```sh -ZSH_CUSTOM=$HOME/.config/oh-my-zsh -``` - -After that simply install for `oh-my-zsh` as normal. - -## Plain ZSH - -Clone this repository and add the following to your `~/.zshrc`. - -```sh -source /path/to/zsh-nix-shell/nix-shell.plugin.zsh -``` - -## home-manager - -Add this repository to the [`plugins` list of your configurations](https://rycee.gitlab.io/home-manager/options.html#opt-programs.zsh.plugins): - -```nix -{ - programs.zsh = { - enable = true; - enableCompletion = true; - plugins = [ - { - name = "zsh-nix-shell"; - file = "nix-shell.plugin.zsh"; - src = pkgs.fetchFromGitHub { - owner = "chisui"; - repo = "zsh-nix-shell"; - rev = "v0.8.0"; - sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; - }; - } - ]; - }; -} -``` - -## Plugin managers - -It should be possible to install this plugin through most `zsh` plugin managers. If the one of your choice is not supported, feel free to open an issue or even better create a pull request. - -## MacOS - -On MacOS you have to have a `bash` with version `4` or greater. [See Issue 14](https://github.com/chisui/zsh-nix-shell/issues/14) - -# Usage - -Use `nix-shell` as you did before. - -Commands run with `--run` or `--command` argument are executed in `nix-shell`s default shell. In the case of `--command` you are put into a `zsh` shell afterwards. - -## `--pure` - -If you use the `--pure` flag the interactive shell will be the default shell. - -## Environment info - -If you are inside a `nix-shell` environment `IN_NIX_SHELL` will be set. The value will be `impure` or `pure` if you specified `--pure`. - -The `packages` argument is passed through as `NIX_SHELL_PACKAGES` to the shell. - -If this Variable is empty `nix-shell` was called for a specific nix expression which is stored in the `name` environment variable. - -These variables can now be used inside a theme to customize the prompt. Take a look at this [variant of the agnoster theme](https://gist.github.com/chisui/0d12bd51a5fd8e6bb52e6e6a43d31d5e#file-agnoster-nix-zsh-theme) for an example of how this might look. - -![example prompt](https://gist.githubusercontent.com/chisui/0d12bd51a5fd8e6bb52e6e6a43d31d5e/raw/8787d8e234e895b2c74194936290a0da9be539ff/example.png) - -![example prompt for projects](https://gist.githubusercontent.com/chisui/0d12bd51a5fd8e6bb52e6e6a43d31d5e/raw/ea75cad507e2899b9b6d6ce423330641911110d8/exampleProject.png) - -# Limitations - -## Shell hooks - -Shell hooks are supported in general. Since they are executed inside of `bash` before the `zsh` shell is spawned they aren't executed in the same environment. This means that things like aliases won't work. - -## Zsh dotfiles - -The normal zsh dotfiles are sourced after the nix-shell is opened. This means that you have to take into account that these files may override variables set by nix-shell. - -# Contributing - -Please do. Pull requests welcome. diff --git a/pkgs/zsh/plugins/nix-shell/nix-shell.plugin.zsh b/pkgs/zsh/plugins/nix-shell/nix-shell.plugin.zsh deleted file mode 100644 index e0291cb..0000000 --- a/pkgs/zsh/plugins/nix-shell/nix-shell.plugin.zsh +++ /dev/null @@ -1,82 +0,0 @@ - -NIX_SHELL_PLUGIN_DIR=${0:a:h} - -which bash > /dev/null 2>&1 -if [ "$?" -ne "0" ]; then - echo - echo " WARNING: bash is not installed." - echo " for zsh-nix-shell to work bash has to be in PATH" - echo -fi - - -# extracts packages argument from args and passes them in $NIX_SHELL_PACKAGES variable. -function nix-shell() { - local -a ARGS; ARGS=("$@") - local NIX_SHELL_PACKAGES="${NIX_SHELL_PACKAGES}" - - # extract -p|--packages argument into NIX_SHELL_PACKAGES - local IN_PACKAGES=0 - local PURE=0 - while [[ ${#ARGS[@]} -gt 0 ]] - do - key=${ARGS[1]} - # enter "--packages packages..." mode - if [[ $key = "-p" || $key = "--packages" ]] - then - IN_PACKAGES=1 - NIX_SHELL_PACKAGES+=${NIX_SHELL_PACKAGES:+ }${ARGS[2]} - ARGS=("${ARGS[@]:1}") - - # skip "--arg name value" argument - elif [[ $key = "--arg" ]] - then - IN_PACKAGES=0 - ARGS=("${ARGS[@]:2}") - - elif [[ $key = "--pure" ]] - then - PURE=1 - - # skip all other unary arguments - elif [[ $key == "-"* ]] - then - IN_PACKAGES=0 - ARGS=("${ARGS[@]:1}") - - # If we don't have any argument prefix we are either in package mode - # or we have encountered the path argument - elif [[ $IN_PACKAGES = 1 ]] - then - NIX_SHELL_PACKAGES+=" $key" - fi - ARGS=("${ARGS[@]:1}") - done - - # call real nix shell - if [[ $PURE = 1 ]] - then - # if you use --pure you get bash - command nix-shell "$@" - else - NIX_EXECUTING_SHELL=$(readlink -f /proc/$$/exe) - if [[ -z "$NIX_EXECUTING_SHELL" ]] && command -v lsof &> /dev/null - then - NIX_EXECUTING_SHELL=$(lsof -p $$ | awk '$4=="txt" {print $9}' | head -n 1) - fi - if [[ -z "$NIX_EXECUTING_SHELL" ]] && command -v zsh &> /dev/null - then - NIX_EXECUTING_SHELL="zsh" - fi - if [[ -z "$NIX_EXECUTING_SHELL" ]] - then - echo "could not determine executing shell. please install `lsof` or `zsh` directly to your PATH" - echo "If this error persists create an issue at https://github.com/chisui/zsh-nix-shell/issues/new/choose" - return 1 - fi - NIX_SHELL_PACKAGES="$NIX_SHELL_PACKAGES" \ - NIX_BUILD_SHELL="$NIX_SHELL_PLUGIN_DIR/scripts/buildShellShim" \ - NIX_EXECUTING_SHELL=$NIX_EXECUTING_SHELL \ - command nix-shell "$@" - fi -} diff --git a/pkgs/zsh/plugins/nix-shell/scripts/buildShellShim b/pkgs/zsh/plugins/nix-shell/scripts/buildShellShim deleted file mode 100755 index 426c756..0000000 --- a/pkgs/zsh/plugins/nix-shell/scripts/buildShellShim +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env sh - -if [ "$1" = "--rcfile" ]; then - # This means the shell should stay open after executing. So we remove the last line which contains 'exit' - shift - tmp="$(cat $1)" - echo ${tmp%exit} > $1 - cat >> $1 < TERMWIDTH )); then - (( PR_PWDLEN = TERMWIDTH - promptsize )) - elif [[ "${langinfo[CODESET]}" = UTF-8 ]]; then - PR_FILLBAR="\${(l:$(( TERMWIDTH - (promptsize + rubypromptsize + pwdsize) ))::${PR_HBAR}:)}" - else - PR_FILLBAR="${PR_SHIFT_IN}\${(l:$(( TERMWIDTH - (promptsize + rubypromptsize + pwdsize) ))::${altchar[q]:--}:)}${PR_SHIFT_OUT}" - fi -} - -function theme_preexec { - setopt local_options extended_glob - if [[ "$TERM" = "screen" ]]; then - local CMD=${1[(wr)^(*=*|sudo|-*)]} - echo -n "\ek$CMD\e\\" - fi -} - -autoload -U add-zsh-hook -add-zsh-hook precmd theme_precmd -add-zsh-hook preexec theme_preexec - - -# Set the prompt - -# Need this so the prompt will work. -setopt prompt_subst - -# See if we can use colors. -autoload zsh/terminfo -for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE GREY; do - typeset -g PR_$color="%{$terminfo[bold]$fg[${(L)color}]%}" - typeset -g PR_LIGHT_$color="%{$fg[${(L)color}]%}" -done -PR_NO_COLOUR="%{$terminfo[sgr0]%}" - -# Modify Git prompt -ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="" -ZSH_THEME_GIT_PROMPT_CLEAN="" - -ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} %{%G✚%}" -ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} %{%G✹%}" -ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} %{%G✖%}" -ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} %{%G➜%}" -ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} %{%G═%}" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} %{%G✭%}" - -# Use extended characters to look nicer if supported. -if [[ "${langinfo[CODESET]}" = UTF-8 ]]; then - PR_SET_CHARSET="" - PR_HBAR="─" - PR_ULCORNER="┌" - PR_LLCORNER="└" - PR_LRCORNER="┘" - PR_URCORNER="┐" -else - typeset -g -A altchar - set -A altchar ${(s..)terminfo[acsc]} - # Some stuff to help us draw nice lines - PR_SET_CHARSET="%{$terminfo[enacs]%}" - PR_SHIFT_IN="%{$terminfo[smacs]%}" - PR_SHIFT_OUT="%{$terminfo[rmacs]%}" - PR_HBAR="${PR_SHIFT_IN}${altchar[q]:--}${PR_SHIFT_OUT}" - PR_ULCORNER="${PR_SHIFT_IN}${altchar[l]:--}${PR_SHIFT_OUT}" - PR_LLCORNER="${PR_SHIFT_IN}${altchar[m]:--}${PR_SHIFT_OUT}" - PR_LRCORNER="${PR_SHIFT_IN}${altchar[j]:--}${PR_SHIFT_OUT}" - PR_URCORNER="${PR_SHIFT_IN}${altchar[k]:--}${PR_SHIFT_OUT}" -fi - -# Decide if we need to set titlebar text. -case $TERM in - xterm*) - PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}' - ;; - screen) - PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}' - ;; - *) - PR_TITLEBAR="" - ;; -esac - -# Decide whether to set a screen title -if [[ "$TERM" = "screen" ]]; then - PR_STITLE=$'%{\ekzsh\e\\%}' -else - PR_STITLE="" -fi - -# Finally, the prompt. -PROMPT='${PR_SET_CHARSET}${PR_STITLE}${(e)PR_TITLEBAR}\ -${PR_CYAN}${PR_ULCORNER}${PR_HBAR}${PR_GREY}(\ -${PR_GREEN}%${PR_PWDLEN}<...<%~%<<\ -${PR_GREY})$(ruby_prompt_info)${PR_CYAN}${PR_HBAR}${PR_HBAR}${(e)PR_FILLBAR}${PR_HBAR}${PR_GREY}(\ -${PR_GREEN}%m\ -${PR_GREY})${PR_CYAN}${PR_HBAR}${PR_URCORNER}\ - -${PR_CYAN}${PR_LLCORNER}${PR_BLUE}${PR_HBAR}(\ -${PR_YELLOW}%D{%H:%M:%S}\ -${PR_LIGHT_BLUE}%{$reset_color%}$(git_prompt_info)$(git_prompt_status)${PR_BLUE})${PR_CYAN}${PR_HBAR}\ -${PR_HBAR}\ ->${PR_NO_COLOUR} ' - -# display exitcode on the right when > 0 -return_code="%(?..%{$fg[red]%}%? ↵ %{$reset_color%})" -RPROMPT=' $return_code${PR_CYAN}${PR_HBAR}${PR_BLUE}${PR_HBAR}\ -(${PR_YELLOW}%D{%a,%b%d}${PR_BLUE})${PR_HBAR}${PR_CYAN}${PR_LRCORNER}${PR_NO_COLOUR}' - -PS2='${PR_CYAN}${PR_HBAR}\ -${PR_BLUE}${PR_HBAR}(\ -${PR_LIGHT_GREEN}%_${PR_BLUE})${PR_HBAR}\ -${PR_CYAN}${PR_HBAR}${PR_NO_COLOUR} ' diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml deleted file mode 100644 index e738999..0000000 --- a/secrets/secrets.yaml +++ /dev/null @@ -1,23 +0,0 @@ -syncthing: - user: ENC[AES256_GCM,data:DfJyEnHAC74qvy8=,iv:q5A1to6eoBkXF6uRo+OWhVoP5WnkBnEVVd66tWAI7Sc=,tag:hK3OtNXX66BT8hpxtY1a0w==,type:str] - password: ENC[AES256_GCM,data:5So/Ay3zszQl58d1ub9PmTPs0wwERa28X0Osh0qSwjaHqOewxQ==,iv:zcRrxgcO+vGnVzuXMY8BXYrc+xFHh3/RZXvC7FBKLcY=,tag:GbPqK447lfS4ME3FXTVZaA==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age167thunwadsswd0u37tajk85wy4x7sgw6sg3j2aspcax7essmge6qwen0uz - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2S3hLRWQrSHBQdjNhbDV2 - VmwrbUVsc0IwaDZKUndOTEMxN0kwWUtaYzJrCjJtNUdBMkhDVDB0akg2TTlqS1lF - NWJESlorR28rUGZHeEh6dFJYcEFsQnMKLS0tIFY3b0ZDSzM3SGVCZW9xcnJLc296 - ckJwQ3EzU2JzdGhnWkNnRExRNlprM28KUHkZe8FvLOAt+UVqvgOxBQdApbEXQ44v - vXW8UtZuq7GjsP5qD2MK6oKs/ZDfe+PhqiWl4ONNHvpn8rmfbQDcRw== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-10-08T16:55:41Z" - mac: ENC[AES256_GCM,data:VSOGYnpkU9gD/7JaCdIC84XHI5rHc4PhqSB64YvPehTrA4rgRGynMxSfvb+zRt+rIO8Qyhnt+i9zjsOLa9Z1F8xOx6f23oLRtguvYBNWJIhYaUvmS7lqPryvJGv3aoVvWkRAoSHyizIqXfmHvn0z/QfEst9PS72I4xf1pQu3trs=,iv:GJzYvWn1EOJ++QYW9jYrUfLAwTceAKFD078JWukMhH0=,tag:q62MpyvDneSYXSzu8S3qUQ==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.9.1