From fca233ff23443d7db345e20a5fc9147cffafe993 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 19:34:21 +0100 Subject: [PATCH 01/11] fix: make init idempotent and wire stdio passthrough in RunPassthrough init now skips group/user creation when they already exist instead of erroring out, so re-running `sudo aigate init` is safe. RunPassthrough now connects stdin/stdout/stderr to the parent process so sandboxed commands can interact with the terminal. --- actions/init.go | 17 +++++++++++++---- services/platform.go | 7 ++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/actions/init.go b/actions/init.go index 272d8da..75757d6 100644 --- a/actions/init.go +++ b/actions/init.go @@ -1,6 +1,7 @@ package actions import ( + "errors" "fmt" "github.com/AxeForging/aigate/helpers" @@ -31,16 +32,24 @@ func (a *InitAction) Execute(c *cli.Context) error { helpers.Log.Info().Str("platform", a.platform.Name()).Msg("Initializing aigate sandbox") - // Create group + // Create group — skip if already exists helpers.Log.Info().Str("group", group).Msg("Creating sandbox group") if err := a.platform.CreateGroup(group); err != nil { - return fmt.Errorf("failed to create group: %w", err) + if errors.Is(err, helpers.ErrAlreadyInit) { + helpers.Log.Info().Str("group", group).Msg("Sandbox group already exists, skipping") + } else { + return fmt.Errorf("failed to create group: %w", err) + } } - // Create user + // Create user — skip if already exists helpers.Log.Info().Str("user", user).Str("group", group).Msg("Creating sandbox user") if err := a.platform.CreateUser(user, group); err != nil { - return fmt.Errorf("failed to create user: %w", err) + if errors.Is(err, helpers.ErrAlreadyInit) { + helpers.Log.Info().Str("user", user).Msg("Sandbox user already exists, skipping") + } else { + return fmt.Errorf("failed to create user: %w", err) + } } // Write default config diff --git a/services/platform.go b/services/platform.go index 4718199..b3b8b9c 100644 --- a/services/platform.go +++ b/services/platform.go @@ -2,6 +2,7 @@ package services import ( "fmt" + "os" "os/exec" "path/filepath" @@ -38,9 +39,9 @@ func (e *RealExecutor) Run(name string, args ...string) ([]byte, error) { func (e *RealExecutor) RunPassthrough(name string, args ...string) error { cmd := exec.Command(name, args...) - cmd.Stdin = nil - cmd.Stdout = nil - cmd.Stderr = nil + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr return cmd.Run() } From b24396d6b48c650ff4dd66fc0ef289f2b00ad9c6 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 19:34:47 +0100 Subject: [PATCH 02/11] feat: implement AllowNet filtering on Linux using slirp4netns When AllowNet is configured, RunSandboxed now creates a network-filtered namespace using slirp4netns + iptables instead of a fully isolated one. Architecture: - Process 1: unshare --net sandbox waits for tap0, sets up iptables rules allowing only DNS + resolved AllowNet IPs, then execs the target - Process 2: slirp4netns attaches to process 1's netns providing user-mode networking (no root required) DNS resolution uses the system's upstream nameservers (from systemd-resolved or /etc/resolv.conf), falling back to 8.8.8.8/1.1.1.1. Only IPv4 addresses are used in iptables rules. Falls back to unrestricted networking with a warning when slirp4netns is not installed. --- docs/user/README.md | 2 +- services/platform_linux.go | 196 +++++++++++++++++++++++++--- services/platform_linux_test.go | 223 ++++++++++++++++++++++++++++++++ 3 files changed, 404 insertions(+), 17 deletions(-) diff --git a/docs/user/README.md b/docs/user/README.md index 750f44f..e005095 100644 --- a/docs/user/README.md +++ b/docs/user/README.md @@ -178,7 +178,7 @@ Project config merges with global (extends, does not replace). ### Linux - **File isolation**: POSIX ACLs via `setfacl` deny the `ai-agents` group read access - **Process isolation**: Mount namespaces overmount sensitive directories with empty tmpfs -- **Network isolation**: Network namespaces restrict egress to allowed domains +- **Network isolation**: Network namespaces + iptables restrict egress to allowed domains. Requires `slirp4netns` (`dnf install slirp4netns` / `apt install slirp4netns`). Falls back to unrestricted networking if not installed. - **PID isolation**: PID namespaces hide host processes - **Resource limits**: cgroups v2 enforce memory, CPU, and PID limits diff --git a/services/platform_linux.go b/services/platform_linux.go index 4ea801b..c35c4dc 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -3,8 +3,12 @@ package services import ( + "bufio" "fmt" + "net" "os" + "os/exec" + "strconv" "strings" "github.com/AxeForging/aigate/domain" @@ -170,23 +174,181 @@ func (p *LinuxPlatform) ListACLs(workDir string) ([]string, error) { } func (p *LinuxPlatform) RunSandboxed(profile domain.SandboxProfile, cmd string, args []string) error { - // Build unshare command for namespace isolation + if len(profile.Config.AllowNet) > 0 { + if hasSlirp4netns() { + return p.runWithNetFilter(profile, cmd, args) + } + helpers.Log.Warn().Msg("slirp4netns not found; network filtering unavailable, running without network restrictions") + } + return p.runUnshare(profile, cmd, args) +} + +// runUnshare runs a command in a user/mount/pid namespace without network filtering. +func (p *LinuxPlatform) runUnshare(profile domain.SandboxProfile, cmd string, args []string) error { unshareArgs := []string{ "--mount", // Mount namespace "--pid", // PID namespace "--fork", // Required for PID namespace "--map-root-user", // User namespace mapping + "--", } - // Add network isolation if allow_net is configured - if len(profile.Config.AllowNet) > 0 { - unshareArgs = append(unshareArgs, "--net") + shellCmd := buildMountOverrides(profile) + shellEscape(cmd, args) + fullArgs := append(unshareArgs, "sh", "-c", shellCmd) + return p.exec.RunPassthrough("unshare", fullArgs...) +} + +// hasSlirp4netns checks whether slirp4netns is available on the system. +func hasSlirp4netns() bool { + _, err := exec.LookPath("slirp4netns") + return err == nil +} + +// resolveAllowedIPs resolves a list of hostnames/IPs to deduplicated IPv4 addresses. +func resolveAllowedIPs(hosts []string) []string { + seen := make(map[string]bool) + var result []string + + for _, host := range hosts { + if ip := net.ParseIP(host); ip != nil { + // It's already an IP address — keep only IPv4 + if ip.To4() != nil && !seen[host] { + seen[host] = true + result = append(result, host) + } + continue + } + // Resolve hostname + addrs, err := net.LookupHost(host) + if err != nil { + helpers.Log.Warn().Str("host", host).Err(err).Msg("failed to resolve host, skipping") + continue + } + for _, addr := range addrs { + if ip := net.ParseIP(addr); ip != nil && ip.To4() != nil && !seen[addr] { + seen[addr] = true + result = append(result, addr) + } + } + } + return result +} + +// getSystemDNS reads upstream DNS servers from resolv.conf files. +func getSystemDNS() []string { + // Try systemd-resolved upstream file first, then fall back to /etc/resolv.conf + for _, path := range []string{"/run/systemd/resolve/resolv.conf", "/etc/resolv.conf"} { + servers := parseDNSFromFile(path) + if len(servers) > 0 { + return servers + } + } + return []string{"8.8.8.8", "1.1.1.1"} +} + +func parseDNSFromFile(path string) []string { + f, err := os.Open(path) + if err != nil { + return nil + } + defer f.Close() + + var servers []string + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if !strings.HasPrefix(line, "nameserver") { + continue + } + fields := strings.Fields(line) + if len(fields) < 2 { + continue + } + addr := fields[1] + // Skip localhost/stub resolvers + if strings.HasPrefix(addr, "127.") { + continue + } + servers = append(servers, addr) + } + return servers +} + +// runWithNetFilter runs a command in a network-filtered namespace using slirp4netns. +func (p *LinuxPlatform) runWithNetFilter(profile domain.SandboxProfile, cmd string, args []string) error { + allowedIPs := resolveAllowedIPs(profile.Config.AllowNet) + dnsServers := getSystemDNS() + helpers.Log.Info(). + Strs("allowed_ips", allowedIPs). + Strs("dns_servers", dnsServers). + Msg("starting network-filtered sandbox") + + innerScript := buildNetFilterScript(allowedIPs, dnsServers, profile, cmd, args) + + sandbox := exec.Command("unshare", "--user", "--map-root-user", "--net", + "--mount", "--pid", "--fork", "--", "sh", "-c", innerScript) + sandbox.Stdin = os.Stdin + sandbox.Stdout = os.Stdout + sandbox.Stderr = os.Stderr + if err := sandbox.Start(); err != nil { + return fmt.Errorf("failed to start sandbox: %w", err) + } + + slirp := exec.Command("slirp4netns", "--configure", + strconv.Itoa(sandbox.Process.Pid), "tap0") + if err := slirp.Start(); err != nil { + sandbox.Process.Kill() + sandbox.Wait() + return fmt.Errorf("failed to start slirp4netns: %w", err) + } + defer func() { + slirp.Process.Kill() + slirp.Wait() + }() + + return sandbox.Wait() +} + +// buildNetFilterScript builds the shell script that runs inside the network namespace. +func buildNetFilterScript(allowedIPs, dnsServers []string, profile domain.SandboxProfile, cmd string, args []string) string { + var sb strings.Builder + + // Wait for tap0 interface to come up (slirp4netns creates it) + sb.WriteString("for i in $(seq 1 100); do ip addr show tap0 2>/dev/null | grep -q inet && break; sleep 0.05; done\n") + + // Set up DNS: point resolv.conf at slirp4netns DNS forwarder (10.0.2.3) + sb.WriteString("echo 'nameserver 10.0.2.3' > /tmp/.aigate-resolv\n") + sb.WriteString("mount --bind /tmp/.aigate-resolv /etc/resolv.conf 2>/dev/null || ") + sb.WriteString("mount --bind /tmp/.aigate-resolv $(readlink -f /etc/resolv.conf) 2>/dev/null || true\n") + + // iptables rules: allow loopback + DNS + allowed IPs, reject the rest + sb.WriteString("iptables -A OUTPUT -o lo -j ACCEPT\n") + sb.WriteString("iptables -A OUTPUT -p udp --dport 53 -j ACCEPT\n") + sb.WriteString("iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT\n") + + // Allow traffic to upstream DNS servers (needed for slirp4netns forwarding) + for _, dns := range dnsServers { + sb.WriteString(fmt.Sprintf("iptables -A OUTPUT -d %s -j ACCEPT\n", dns)) + } + + for _, ip := range allowedIPs { + sb.WriteString(fmt.Sprintf("iptables -A OUTPUT -d %s -j ACCEPT\n", ip)) } + sb.WriteString("iptables -A OUTPUT -j REJECT\n") + + // Mount overrides for deny_read + sb.WriteString(buildMountOverrides(profile)) - unshareArgs = append(unshareArgs, "--") + // Execute the target command + sb.WriteString("exec ") + sb.WriteString(shellEscape(cmd, args)) + sb.WriteString("\n") - // Build the inner command that runs inside the namespace - // First overmount denied directories with empty tmpfs + return sb.String() +} + +// buildMountOverrides generates shell commands to overmount denied paths. +func buildMountOverrides(profile domain.SandboxProfile) string { var mountCmds []string for _, pattern := range profile.Config.DenyRead { paths, _ := resolvePatterns([]string{pattern}, profile.WorkDir) @@ -200,17 +362,19 @@ func (p *LinuxPlatform) RunSandboxed(profile domain.SandboxProfile, cmd string, } } } - - // Build shell command: mount overrides then exec the target command - var shellCmd string if len(mountCmds) > 0 { - shellCmd = strings.Join(mountCmds, " && ") + " && " + return strings.Join(mountCmds, " && ") + " && " } - shellCmd += cmd + return "" +} + +// shellEscape builds a shell command string from a command and its arguments. +func shellEscape(cmd string, args []string) string { + var sb strings.Builder + sb.WriteString(cmd) for _, a := range args { - shellCmd += " " + a + sb.WriteString(" ") + sb.WriteString(a) } - - fullArgs := append(unshareArgs, "sh", "-c", shellCmd) - return p.exec.RunPassthrough("unshare", fullArgs...) + return sb.String() } diff --git a/services/platform_linux_test.go b/services/platform_linux_test.go index f13bb3d..92eff38 100644 --- a/services/platform_linux_test.go +++ b/services/platform_linux_test.go @@ -5,7 +5,10 @@ package services import ( "fmt" "os" + "strings" "testing" + + "github.com/AxeForging/aigate/domain" ) type mockExecutor struct { @@ -276,3 +279,223 @@ func writeTestFile(t *testing.T, path, content string) { t.Fatalf("writeFile(%s) error = %v", path, err) } } + +func TestResolveAllowedIPs(t *testing.T) { + t.Run("raw IPv4 passes through", func(t *testing.T) { + ips := resolveAllowedIPs([]string{"1.2.3.4", "5.6.7.8"}) + if len(ips) != 2 { + t.Fatalf("expected 2 IPs, got %d: %v", len(ips), ips) + } + if ips[0] != "1.2.3.4" || ips[1] != "5.6.7.8" { + t.Errorf("unexpected IPs: %v", ips) + } + }) + + t.Run("deduplicates IPs", func(t *testing.T) { + ips := resolveAllowedIPs([]string{"1.2.3.4", "1.2.3.4"}) + if len(ips) != 1 { + t.Fatalf("expected 1 IP after dedup, got %d: %v", len(ips), ips) + } + }) + + t.Run("filters out IPv6", func(t *testing.T) { + ips := resolveAllowedIPs([]string{"::1"}) + if len(ips) != 0 { + t.Errorf("expected 0 IPs for IPv6, got %d: %v", len(ips), ips) + } + }) + + t.Run("unresolvable host skipped", func(t *testing.T) { + ips := resolveAllowedIPs([]string{"this-domain-does-not-exist.invalid"}) + if len(ips) != 0 { + t.Errorf("expected 0 IPs for unresolvable host, got %d: %v", len(ips), ips) + } + }) + + t.Run("resolves real hostname", func(t *testing.T) { + ips := resolveAllowedIPs([]string{"localhost"}) + // localhost should resolve to 127.0.0.1 on any system + found := false + for _, ip := range ips { + if ip == "127.0.0.1" { + found = true + } + } + if !found { + t.Errorf("expected 127.0.0.1 from localhost, got %v", ips) + } + }) +} + +func TestBuildNetFilterScript(t *testing.T) { + profile := domain.SandboxProfile{ + Config: domain.Config{ + DenyRead: []string{"/nonexistent/path/for/test"}, + }, + WorkDir: "/tmp", + } + + t.Run("contains iptables rules for allowed IPs", func(t *testing.T) { + script := buildNetFilterScript( + []string{"1.2.3.4", "5.6.7.8"}, + []string{"8.8.8.8"}, + profile, "echo", []string{"hello"}, + ) + if !strings.Contains(script, "iptables -A OUTPUT -d 1.2.3.4 -j ACCEPT") { + t.Error("script should contain iptables rule for 1.2.3.4") + } + if !strings.Contains(script, "iptables -A OUTPUT -d 5.6.7.8 -j ACCEPT") { + t.Error("script should contain iptables rule for 5.6.7.8") + } + if !strings.Contains(script, "iptables -A OUTPUT -j REJECT") { + t.Error("script should contain final REJECT rule") + } + }) + + t.Run("contains DNS rules", func(t *testing.T) { + script := buildNetFilterScript( + []string{"1.2.3.4"}, + []string{"8.8.8.8", "1.1.1.1"}, + profile, "echo", []string{"hello"}, + ) + if !strings.Contains(script, "iptables -A OUTPUT -p udp --dport 53 -j ACCEPT") { + t.Error("script should allow UDP DNS") + } + if !strings.Contains(script, "iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT") { + t.Error("script should allow TCP DNS") + } + if !strings.Contains(script, "iptables -A OUTPUT -d 8.8.8.8 -j ACCEPT") { + t.Error("script should allow DNS server 8.8.8.8") + } + if !strings.Contains(script, "iptables -A OUTPUT -d 1.1.1.1 -j ACCEPT") { + t.Error("script should allow DNS server 1.1.1.1") + } + }) + + t.Run("contains resolv.conf fix", func(t *testing.T) { + script := buildNetFilterScript(nil, nil, profile, "echo", nil) + if !strings.Contains(script, "nameserver 10.0.2.3") { + t.Error("script should set resolv.conf to slirp4netns DNS") + } + }) + + t.Run("contains wait for tap0", func(t *testing.T) { + script := buildNetFilterScript(nil, nil, profile, "echo", nil) + if !strings.Contains(script, "ip addr show tap0") { + t.Error("script should wait for tap0 interface") + } + }) + + t.Run("contains target command", func(t *testing.T) { + script := buildNetFilterScript(nil, nil, profile, "mycommand", []string{"--flag", "value"}) + if !strings.Contains(script, "exec mycommand --flag value") { + t.Errorf("script should contain exec of target command, got:\n%s", script) + } + }) +} + +func TestRunSandboxedDispatch(t *testing.T) { + t.Run("empty AllowNet uses runUnshare", func(t *testing.T) { + mock := newMockExecutor() + p := &LinuxPlatform{exec: mock} + profile := domain.SandboxProfile{ + Config: domain.Config{AllowNet: nil}, + WorkDir: "/tmp", + } + _ = p.RunSandboxed(profile, "echo", []string{"hello"}) + if mock.callCount() == 0 { + t.Fatal("expected executor to be called") + } + last := mock.lastCall() + if last.Name != "unshare" { + t.Errorf("expected unshare call, got %q", last.Name) + } + // Verify no --net flag (runUnshare doesn't add it) + for _, arg := range last.Args { + if arg == "--net" { + t.Error("runUnshare should not pass --net flag") + } + } + }) + + t.Run("AllowNet set without slirp4netns warns and falls back to runUnshare", func(t *testing.T) { + // This test works because slirp4netns may or may not be installed. + // If it IS installed, it will try runWithNetFilter which won't use the mock executor. + // We test the warning path by checking that when the mock executor is called, + // --net is not passed (meaning runUnshare was used). + // In CI without slirp4netns, this tests the fallback path. + if hasSlirp4netns() { + t.Skip("slirp4netns is installed; this test covers the fallback path only") + } + mock := newMockExecutor() + p := &LinuxPlatform{exec: mock} + profile := domain.SandboxProfile{ + Config: domain.Config{AllowNet: []string{"example.com"}}, + WorkDir: "/tmp", + } + _ = p.RunSandboxed(profile, "echo", []string{"hello"}) + if mock.callCount() == 0 { + t.Fatal("expected executor to be called via runUnshare fallback") + } + last := mock.lastCall() + if last.Name != "unshare" { + t.Errorf("expected unshare call, got %q", last.Name) + } + for _, arg := range last.Args { + if arg == "--net" { + t.Error("fallback runUnshare should not pass --net flag") + } + } + }) +} + +func TestGetSystemDNS(t *testing.T) { + servers := getSystemDNS() + if len(servers) == 0 { + t.Fatal("getSystemDNS() should return at least one server") + } + // Should not contain localhost addresses + for _, s := range servers { + if strings.HasPrefix(s, "127.") { + t.Errorf("getSystemDNS() should not return localhost address %q", s) + } + } +} + +func TestParseDNSFromFile(t *testing.T) { + tmpFile := t.TempDir() + "/resolv.conf" + + t.Run("parses nameserver lines", func(t *testing.T) { + writeTestFile(t, tmpFile, "nameserver 8.8.8.8\nnameserver 1.1.1.1\n") + servers := parseDNSFromFile(tmpFile) + if len(servers) != 2 { + t.Fatalf("expected 2 servers, got %d: %v", len(servers), servers) + } + if servers[0] != "8.8.8.8" || servers[1] != "1.1.1.1" { + t.Errorf("unexpected servers: %v", servers) + } + }) + + t.Run("skips 127.x addresses", func(t *testing.T) { + writeTestFile(t, tmpFile, "nameserver 127.0.0.53\nnameserver 8.8.4.4\n") + servers := parseDNSFromFile(tmpFile) + if len(servers) != 1 || servers[0] != "8.8.4.4" { + t.Errorf("expected [8.8.4.4], got %v", servers) + } + }) + + t.Run("returns nil for missing file", func(t *testing.T) { + servers := parseDNSFromFile("/nonexistent/resolv.conf") + if servers != nil { + t.Errorf("expected nil for missing file, got %v", servers) + } + }) + + t.Run("skips comments and blank lines", func(t *testing.T) { + writeTestFile(t, tmpFile, "# comment\n\nnameserver 9.9.9.9\nsearch example.com\n") + servers := parseDNSFromFile(tmpFile) + if len(servers) != 1 || servers[0] != "9.9.9.9" { + t.Errorf("expected [9.9.9.9], got %v", servers) + } + }) +} From 7df787d4c0556df026919e5da2606fca9ed9a9e2 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 19:44:30 +0100 Subject: [PATCH 03/11] fix: resolve AllowNet hosts inside namespace to match DNS responses Host-side DNS resolution returned different IPs than slirp4netns DNS inside the sandbox (CDN anycast / Cloudflare load balancing), causing iptables to REJECT connections that should have been allowed. Now hostnames are resolved inside the namespace via `getent ahostsv4` after the resolv.conf mount is in place, so the iptables ACCEPT rules match exactly what the sandboxed process will connect to. Also: wire slirp4netns stderr to os.Stderr so errors are visible, and add a DNS readiness wait loop before resolving hosts. --- services/platform_linux.go | 27 ++++++++++++++++++++------- services/platform_linux_test.go | 31 ++++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/services/platform_linux.go b/services/platform_linux.go index c35c4dc..4e0bfd2 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -276,14 +276,17 @@ func parseDNSFromFile(path string) []string { // runWithNetFilter runs a command in a network-filtered namespace using slirp4netns. func (p *LinuxPlatform) runWithNetFilter(profile domain.SandboxProfile, cmd string, args []string) error { - allowedIPs := resolveAllowedIPs(profile.Config.AllowNet) dnsServers := getSystemDNS() + // Pre-resolve on host for logging only; actual iptables rules are + // resolved inside the namespace to avoid CDN/anycast IP mismatches. + hostIPs := resolveAllowedIPs(profile.Config.AllowNet) helpers.Log.Info(). - Strs("allowed_ips", allowedIPs). + Strs("allow_net", profile.Config.AllowNet). + Strs("host_resolved_ips", hostIPs). Strs("dns_servers", dnsServers). Msg("starting network-filtered sandbox") - innerScript := buildNetFilterScript(allowedIPs, dnsServers, profile, cmd, args) + innerScript := buildNetFilterScript(profile.Config.AllowNet, dnsServers, profile, cmd, args) sandbox := exec.Command("unshare", "--user", "--map-root-user", "--net", "--mount", "--pid", "--fork", "--", "sh", "-c", innerScript) @@ -296,6 +299,7 @@ func (p *LinuxPlatform) runWithNetFilter(profile domain.SandboxProfile, cmd stri slirp := exec.Command("slirp4netns", "--configure", strconv.Itoa(sandbox.Process.Pid), "tap0") + slirp.Stderr = os.Stderr if err := slirp.Start(); err != nil { sandbox.Process.Kill() sandbox.Wait() @@ -310,7 +314,9 @@ func (p *LinuxPlatform) runWithNetFilter(profile domain.SandboxProfile, cmd stri } // buildNetFilterScript builds the shell script that runs inside the network namespace. -func buildNetFilterScript(allowedIPs, dnsServers []string, profile domain.SandboxProfile, cmd string, args []string) string { +// allowNetHosts are the original hostnames/IPs from the config — resolution happens +// inside the namespace so the iptables rules match what the sandboxed process will see. +func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.SandboxProfile, cmd string, args []string) string { var sb strings.Builder // Wait for tap0 interface to come up (slirp4netns creates it) @@ -321,7 +327,10 @@ func buildNetFilterScript(allowedIPs, dnsServers []string, profile domain.Sandbo sb.WriteString("mount --bind /tmp/.aigate-resolv /etc/resolv.conf 2>/dev/null || ") sb.WriteString("mount --bind /tmp/.aigate-resolv $(readlink -f /etc/resolv.conf) 2>/dev/null || true\n") - // iptables rules: allow loopback + DNS + allowed IPs, reject the rest + // Wait for DNS to actually work (slirp4netns forwarder may take a moment) + sb.WriteString("for i in $(seq 1 50); do getent ahostsv4 localhost >/dev/null 2>&1 && break; sleep 0.1; done\n") + + // iptables rules: allow loopback + DNS, reject the rest sb.WriteString("iptables -A OUTPUT -o lo -j ACCEPT\n") sb.WriteString("iptables -A OUTPUT -p udp --dport 53 -j ACCEPT\n") sb.WriteString("iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT\n") @@ -331,9 +340,13 @@ func buildNetFilterScript(allowedIPs, dnsServers []string, profile domain.Sandbo sb.WriteString(fmt.Sprintf("iptables -A OUTPUT -d %s -j ACCEPT\n", dns)) } - for _, ip := range allowedIPs { - sb.WriteString(fmt.Sprintf("iptables -A OUTPUT -d %s -j ACCEPT\n", ip)) + // Resolve each AllowNet entry INSIDE the namespace and add iptables rules. + // This ensures the IPs match what the sandboxed process will get from DNS, + // avoiding mismatches from CDN anycast / DNS load balancing. + for _, host := range allowNetHosts { + sb.WriteString(fmt.Sprintf("for _ip in $(getent ahostsv4 %q 2>/dev/null | awk '{print $1}' | sort -u); do iptables -A OUTPUT -d \"$_ip\" -j ACCEPT; done\n", host)) } + sb.WriteString("iptables -A OUTPUT -j REJECT\n") // Mount overrides for deny_read diff --git a/services/platform_linux_test.go b/services/platform_linux_test.go index 92eff38..3b59d9d 100644 --- a/services/platform_linux_test.go +++ b/services/platform_linux_test.go @@ -335,17 +335,19 @@ func TestBuildNetFilterScript(t *testing.T) { WorkDir: "/tmp", } - t.Run("contains iptables rules for allowed IPs", func(t *testing.T) { + t.Run("resolves hosts inside namespace via getent", func(t *testing.T) { script := buildNetFilterScript( - []string{"1.2.3.4", "5.6.7.8"}, + []string{"api.anthropic.com", "1.2.3.4"}, []string{"8.8.8.8"}, profile, "echo", []string{"hello"}, ) - if !strings.Contains(script, "iptables -A OUTPUT -d 1.2.3.4 -j ACCEPT") { - t.Error("script should contain iptables rule for 1.2.3.4") + // Hostnames should be resolved inside the namespace via getent ahostsv4 + if !strings.Contains(script, "getent ahostsv4 \"api.anthropic.com\"") { + t.Error("script should resolve api.anthropic.com inside namespace") } - if !strings.Contains(script, "iptables -A OUTPUT -d 5.6.7.8 -j ACCEPT") { - t.Error("script should contain iptables rule for 5.6.7.8") + // Raw IPs are also passed through getent (getent handles IPs fine) + if !strings.Contains(script, "getent ahostsv4 \"1.2.3.4\"") { + t.Error("script should include raw IP 1.2.3.4 via getent") } if !strings.Contains(script, "iptables -A OUTPUT -j REJECT") { t.Error("script should contain final REJECT rule") @@ -354,7 +356,7 @@ func TestBuildNetFilterScript(t *testing.T) { t.Run("contains DNS rules", func(t *testing.T) { script := buildNetFilterScript( - []string{"1.2.3.4"}, + []string{"example.com"}, []string{"8.8.8.8", "1.1.1.1"}, profile, "echo", []string{"hello"}, ) @@ -386,6 +388,21 @@ func TestBuildNetFilterScript(t *testing.T) { } }) + t.Run("waits for DNS before resolving hosts", func(t *testing.T) { + script := buildNetFilterScript([]string{"example.com"}, nil, profile, "echo", nil) + dnsWaitIdx := strings.Index(script, "getent ahostsv4 localhost") + resolveIdx := strings.Index(script, "getent ahostsv4 \"example.com\"") + if dnsWaitIdx == -1 { + t.Fatal("script should contain DNS readiness check") + } + if resolveIdx == -1 { + t.Fatal("script should contain host resolution") + } + if dnsWaitIdx > resolveIdx { + t.Error("DNS wait should come before host resolution") + } + }) + t.Run("contains target command", func(t *testing.T) { script := buildNetFilterScript(nil, nil, profile, "mycommand", []string{"--flag", "value"}) if !strings.Contains(script, "exec mycommand --flag value") { From b35bb57065539f994bfd5b84202d1814b85d8862 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 19:52:45 +0100 Subject: [PATCH 04/11] fix: run slirp4netns inside user namespace to fix setns EPERM slirp4netns needs CAP_SYS_ADMIN in both the target's owning user namespace AND its own current user namespace to call setns(CLONE_NEWNET). Launching it from the host (init user namespace) as an unprivileged user fails the second check. Restructured to two-layer unshare: - Outer: unshare --user --map-root-user (user namespace only, host net) - Inner: unshare --net --mount --pid --fork (sandbox in new net ns) - slirp4netns runs inside the user ns (has caps) with host networking The orchestration script preserves terminal stdin for the backgrounded sandbox via fd 3, uses base64-encoded inner script to avoid quoting issues, and waits for the net namespace inode to change before starting slirp4netns. --- services/platform_linux.go | 80 ++++++++++++++++++++++----------- services/platform_linux_test.go | 51 +++++++++++++++++++++ 2 files changed, 105 insertions(+), 26 deletions(-) diff --git a/services/platform_linux.go b/services/platform_linux.go index 4e0bfd2..bef323e 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -4,11 +4,11 @@ package services import ( "bufio" + "encoding/base64" "fmt" "net" "os" "os/exec" - "strconv" "strings" "github.com/AxeForging/aigate/domain" @@ -275,42 +275,70 @@ func parseDNSFromFile(path string) []string { } // runWithNetFilter runs a command in a network-filtered namespace using slirp4netns. +// +// Architecture (two-layer unshare): +// +// Outer: unshare --user --map-root-user (user namespace only, keeps host network) +// ├── Inner: unshare --net --mount --pid --fork (sandbox, new net ns) +// │ └── sh -c (wait tap0 → iptables → exec cmd) +// └── slirp4netns --configure tap0 (user ns caps, host network) +// +// slirp4netns must run INSIDE the user namespace to have CAP_SYS_ADMIN for +// setns(CLONE_NEWNET). Launching it from the host fails with EPERM because an +// unprivileged process lacks CAP_SYS_ADMIN in its own (init) user namespace. func (p *LinuxPlatform) runWithNetFilter(profile domain.SandboxProfile, cmd string, args []string) error { dnsServers := getSystemDNS() - // Pre-resolve on host for logging only; actual iptables rules are - // resolved inside the namespace to avoid CDN/anycast IP mismatches. - hostIPs := resolveAllowedIPs(profile.Config.AllowNet) helpers.Log.Info(). Strs("allow_net", profile.Config.AllowNet). - Strs("host_resolved_ips", hostIPs). Strs("dns_servers", dnsServers). Msg("starting network-filtered sandbox") innerScript := buildNetFilterScript(profile.Config.AllowNet, dnsServers, profile, cmd, args) + outerScript := buildOrchestrationScript(innerScript) - sandbox := exec.Command("unshare", "--user", "--map-root-user", "--net", - "--mount", "--pid", "--fork", "--", "sh", "-c", innerScript) - sandbox.Stdin = os.Stdin - sandbox.Stdout = os.Stdout - sandbox.Stderr = os.Stderr - if err := sandbox.Start(); err != nil { - return fmt.Errorf("failed to start sandbox: %w", err) - } + return p.exec.RunPassthrough("unshare", "--user", "--map-root-user", "--", "sh", "-c", outerScript) +} - slirp := exec.Command("slirp4netns", "--configure", - strconv.Itoa(sandbox.Process.Pid), "tap0") - slirp.Stderr = os.Stderr - if err := slirp.Start(); err != nil { - sandbox.Process.Kill() - sandbox.Wait() - return fmt.Errorf("failed to start slirp4netns: %w", err) - } - defer func() { - slirp.Process.Kill() - slirp.Wait() - }() +// buildOrchestrationScript wraps the inner sandbox script with the two-process +// orchestration that runs inside the user namespace. +// +// It backgrounds the sandbox (in a new net namespace) while preserving stdin +// via fd 3, then launches slirp4netns in the foreground (user ns + host network) +// to provide connectivity. +func buildOrchestrationScript(innerScript string) string { + encoded := base64.StdEncoding.EncodeToString([]byte(innerScript)) + + var sb strings.Builder + + // Save stdin so the backgrounded sandbox can still read the terminal. + // POSIX non-interactive shells redirect background jobs' stdin from /dev/null. + sb.WriteString("exec 3<&0\n") - return sandbox.Wait() + // Write the inner script to a temp file (avoids all quoting issues). + sb.WriteString("_AIGATE_INNER=$(mktemp /tmp/.aigate-inner-XXXXXX)\n") + sb.WriteString(fmt.Sprintf("printf '%%s' '%s' | base64 -d > \"$_AIGATE_INNER\"\n", encoded)) + + // Start the sandbox in a new net/mount/pid namespace (background, stdin from fd 3). + sb.WriteString("unshare --net --mount --pid --fork -- sh \"$_AIGATE_INNER\" <&3 &\n") + sb.WriteString("_SANDBOX_PID=$!\n") + sb.WriteString("exec 3<&-\n") + + // Wait until the sandbox has entered its new network namespace. + sb.WriteString("_SELF_NS=$(readlink /proc/self/ns/net)\n") + sb.WriteString("while [ -e \"/proc/$_SANDBOX_PID\" ] && [ \"$(readlink /proc/$_SANDBOX_PID/ns/net 2>/dev/null)\" = \"$_SELF_NS\" ]; do sleep 0.01; done\n") + + // Launch slirp4netns: runs in user ns (has CAP_SYS_ADMIN) + host network. + sb.WriteString("slirp4netns --configure $_SANDBOX_PID tap0 &\n") + sb.WriteString("_SLIRP_PID=$!\n") + + // Wait for the sandbox to exit, then clean up. + sb.WriteString("wait $_SANDBOX_PID 2>/dev/null\n") + sb.WriteString("_EXIT=$?\n") + sb.WriteString("kill $_SLIRP_PID 2>/dev/null; wait $_SLIRP_PID 2>/dev/null\n") + sb.WriteString("rm -f \"$_AIGATE_INNER\"\n") + sb.WriteString("exit $_EXIT\n") + + return sb.String() } // buildNetFilterScript builds the shell script that runs inside the network namespace. diff --git a/services/platform_linux_test.go b/services/platform_linux_test.go index 3b59d9d..e4e1aa3 100644 --- a/services/platform_linux_test.go +++ b/services/platform_linux_test.go @@ -3,6 +3,7 @@ package services import ( + "encoding/base64" "fmt" "os" "strings" @@ -466,6 +467,56 @@ func TestRunSandboxedDispatch(t *testing.T) { }) } +func TestBuildOrchestrationScript(t *testing.T) { + inner := "echo hello world\n" + + t.Run("embeds inner script via base64", func(t *testing.T) { + script := buildOrchestrationScript(inner) + encoded := base64.StdEncoding.EncodeToString([]byte(inner)) + if !strings.Contains(script, encoded) { + t.Error("orchestration script should contain base64-encoded inner script") + } + }) + + t.Run("preserves stdin via fd 3", func(t *testing.T) { + script := buildOrchestrationScript(inner) + if !strings.Contains(script, "exec 3<&0") { + t.Error("should save stdin to fd 3") + } + if !strings.Contains(script, "<&3") { + t.Error("should redirect fd 3 to sandbox stdin") + } + }) + + t.Run("uses two-layer unshare", func(t *testing.T) { + script := buildOrchestrationScript(inner) + // Inner unshare should create net namespace (outer only creates user ns) + if !strings.Contains(script, "unshare --net --mount --pid --fork") { + t.Error("inner unshare should create net/mount/pid namespaces") + } + }) + + t.Run("runs slirp4netns inside user namespace", func(t *testing.T) { + script := buildOrchestrationScript(inner) + if !strings.Contains(script, "slirp4netns --configure $_SANDBOX_PID tap0") { + t.Error("should launch slirp4netns with sandbox PID") + } + }) + + t.Run("waits for namespace and cleans up", func(t *testing.T) { + script := buildOrchestrationScript(inner) + if !strings.Contains(script, "readlink /proc/$_SANDBOX_PID/ns/net") { + t.Error("should wait for net namespace to differ from host") + } + if !strings.Contains(script, "wait $_SANDBOX_PID") { + t.Error("should wait for sandbox to finish") + } + if !strings.Contains(script, "kill $_SLIRP_PID") { + t.Error("should kill slirp4netns on cleanup") + } + }) +} + func TestGetSystemDNS(t *testing.T) { servers := getSystemDNS() if len(servers) == 0 { From ebe9dde3eb409e5f749eaed77e64a27e987cfb31 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:06:11 +0100 Subject: [PATCH 05/11] fix: use real DNS query for readiness check, add resolution retries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The DNS readiness check used `getent ahostsv4 localhost` which resolves from /etc/hosts, not DNS. This passed immediately while slirp4netns DNS (10.0.2.3) was still starting, causing subsequent getent calls for remote hosts to silently fail — no iptables ACCEPT rules got created. Now the readiness check queries the first AllowNet host (a real remote DNS query), and each host resolution retries up to 3 times. Also suppress slirp4netns stdout (verbose protocol debug) and remount /proc in PID namespace to fix glibc "fatal library error, lookup self". --- services/platform_linux.go | 24 ++++++++++++++++++------ services/platform_linux_test.go | 22 +++++++++++++--------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/services/platform_linux.go b/services/platform_linux.go index bef323e..1df3002 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -328,7 +328,8 @@ func buildOrchestrationScript(innerScript string) string { sb.WriteString("while [ -e \"/proc/$_SANDBOX_PID\" ] && [ \"$(readlink /proc/$_SANDBOX_PID/ns/net 2>/dev/null)\" = \"$_SELF_NS\" ]; do sleep 0.01; done\n") // Launch slirp4netns: runs in user ns (has CAP_SYS_ADMIN) + host network. - sb.WriteString("slirp4netns --configure $_SANDBOX_PID tap0 &\n") + // Suppress stdout (verbose protocol debug), keep stderr for real errors. + sb.WriteString("slirp4netns --configure $_SANDBOX_PID tap0 >/dev/null &\n") sb.WriteString("_SLIRP_PID=$!\n") // Wait for the sandbox to exit, then clean up. @@ -347,6 +348,11 @@ func buildOrchestrationScript(innerScript string) string { func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.SandboxProfile, cmd string, args []string) string { var sb strings.Builder + // Remount /proc so it reflects the new PID namespace. + // Without this, /proc/self is stale and glibc's NSS/dlopen fails with + // "fatal library error, lookup self". + sb.WriteString("mount -t proc proc /proc\n") + // Wait for tap0 interface to come up (slirp4netns creates it) sb.WriteString("for i in $(seq 1 100); do ip addr show tap0 2>/dev/null | grep -q inet && break; sleep 0.05; done\n") @@ -355,10 +361,8 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San sb.WriteString("mount --bind /tmp/.aigate-resolv /etc/resolv.conf 2>/dev/null || ") sb.WriteString("mount --bind /tmp/.aigate-resolv $(readlink -f /etc/resolv.conf) 2>/dev/null || true\n") - // Wait for DNS to actually work (slirp4netns forwarder may take a moment) - sb.WriteString("for i in $(seq 1 50); do getent ahostsv4 localhost >/dev/null 2>&1 && break; sleep 0.1; done\n") - - // iptables rules: allow loopback + DNS, reject the rest + // iptables rules: allow loopback + DNS before anything else + // (DNS must work for the host resolution below) sb.WriteString("iptables -A OUTPUT -o lo -j ACCEPT\n") sb.WriteString("iptables -A OUTPUT -p udp --dport 53 -j ACCEPT\n") sb.WriteString("iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT\n") @@ -368,11 +372,19 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San sb.WriteString(fmt.Sprintf("iptables -A OUTPUT -d %s -j ACCEPT\n", dns)) } + // Wait for DNS to actually work by testing a REAL remote query. + // Using localhost previously was wrong — it resolves from /etc/hosts, + // not DNS, so it passed before slirp4netns DNS (10.0.2.3) was ready. + if len(allowNetHosts) > 0 { + sb.WriteString(fmt.Sprintf("for i in $(seq 1 50); do getent ahostsv4 %q >/dev/null 2>&1 && break; sleep 0.1; done\n", allowNetHosts[0])) + } + // Resolve each AllowNet entry INSIDE the namespace and add iptables rules. // This ensures the IPs match what the sandboxed process will get from DNS, // avoiding mismatches from CDN anycast / DNS load balancing. + // Each host retries up to 3 times to handle transient DNS hiccups. for _, host := range allowNetHosts { - sb.WriteString(fmt.Sprintf("for _ip in $(getent ahostsv4 %q 2>/dev/null | awk '{print $1}' | sort -u); do iptables -A OUTPUT -d \"$_ip\" -j ACCEPT; done\n", host)) + sb.WriteString(fmt.Sprintf("for _attempt in 1 2 3; do _ips=$(getent ahostsv4 %q 2>/dev/null | awk '{print $1}' | sort -u); [ -n \"$_ips\" ] && break; sleep 0.5; done; for _ip in $_ips; do iptables -A OUTPUT -d \"$_ip\" -j ACCEPT; done\n", host)) } sb.WriteString("iptables -A OUTPUT -j REJECT\n") diff --git a/services/platform_linux_test.go b/services/platform_linux_test.go index e4e1aa3..67a2d61 100644 --- a/services/platform_linux_test.go +++ b/services/platform_linux_test.go @@ -389,18 +389,22 @@ func TestBuildNetFilterScript(t *testing.T) { } }) - t.Run("waits for DNS before resolving hosts", func(t *testing.T) { - script := buildNetFilterScript([]string{"example.com"}, nil, profile, "echo", nil) - dnsWaitIdx := strings.Index(script, "getent ahostsv4 localhost") - resolveIdx := strings.Index(script, "getent ahostsv4 \"example.com\"") + t.Run("waits for real DNS before resolving hosts", func(t *testing.T) { + script := buildNetFilterScript([]string{"example.com", "other.com"}, nil, profile, "echo", nil) + // DNS readiness check should use the FIRST AllowNet host, not localhost + dnsWaitIdx := strings.Index(script, "getent ahostsv4 \"example.com\" >/dev/null") if dnsWaitIdx == -1 { - t.Fatal("script should contain DNS readiness check") + t.Fatal("script should check DNS readiness with first AllowNet host") } - if resolveIdx == -1 { - t.Fatal("script should contain host resolution") + if strings.Contains(script, "getent ahostsv4 localhost") { + t.Error("should NOT use localhost for DNS readiness (resolves from /etc/hosts, not DNS)") } - if dnsWaitIdx > resolveIdx { - t.Error("DNS wait should come before host resolution") + }) + + t.Run("retries host resolution on failure", func(t *testing.T) { + script := buildNetFilterScript([]string{"example.com"}, nil, profile, "echo", nil) + if !strings.Contains(script, "_attempt in 1 2 3") { + t.Error("should retry getent resolution") } }) From 1e7978c92f780ea286606de42488f309404496ef Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:22:10 +0100 Subject: [PATCH 06/11] docs: add architecture diagrams with rendered images Add PlantUML diagrams for each isolation layer: - file-isolation: dual-layer ACLs + runtime mount overrides - linux-network: slirp4netns + iptables in network namespace - macos-network: sandbox-exec Seatbelt profiles - linux-process: user/mount/PID namespace architecture Embed rendered PNG images in user README and replace ASCII art in root README with the process isolation diagram. --- README.md | 26 ++------- docs/diagrams/file-isolation.png | Bin 0 -> 91263 bytes docs/diagrams/file-isolation.puml | 67 +++++++++++++++++++++++ docs/diagrams/linux-network.png | Bin 0 -> 115299 bytes docs/diagrams/linux-network.puml | 77 +++++++++++++++++++++++++++ docs/diagrams/linux-process.png | Bin 0 -> 77629 bytes docs/diagrams/linux-process.puml | 71 +++++++++++++++++++++++++ docs/diagrams/macos-network.png | Bin 0 -> 70608 bytes docs/diagrams/macos-network.puml | 55 +++++++++++++++++++ docs/user/README.md | 85 ++++++++++++++++++++++++++---- 10 files changed, 347 insertions(+), 34 deletions(-) create mode 100644 docs/diagrams/file-isolation.png create mode 100644 docs/diagrams/file-isolation.puml create mode 100644 docs/diagrams/linux-network.png create mode 100644 docs/diagrams/linux-network.puml create mode 100644 docs/diagrams/linux-process.png create mode 100644 docs/diagrams/linux-process.puml create mode 100644 docs/diagrams/macos-network.png create mode 100644 docs/diagrams/macos-network.puml diff --git a/README.md b/README.md index c8bbb67..faaf283 100644 --- a/README.md +++ b/README.md @@ -75,29 +75,9 @@ aigate reset --force # Remove everything ## How It Works -``` -Your files: .env secrets/ .ssh/ *.pem - | - aigate init - | - OS group: ai-agents - OS user: ai-runner - ACLs: deny read for ai-agents - | - aigate run -- claude - | - +--namespace--+ - | mount: hide | - | net: restrict| - | pid: isolate | - +-------------+ - | - AI agent runs with: - - Cannot read .env, secrets/ - - Cannot run curl, wget - - Cannot reach unauthorized hosts - - Cannot see host processes -``` +![Linux Process Isolation](docs/diagrams/linux-process.png) + +See [docs/user/README.md](docs/user/README.md) for detailed architecture diagrams covering file isolation, network isolation (Linux & macOS), and process isolation. ## Configuration diff --git a/docs/diagrams/file-isolation.png b/docs/diagrams/file-isolation.png new file mode 100644 index 0000000000000000000000000000000000000000..0c38890f0c30f675957eb9d5c41a23b118c1455b GIT binary patch literal 91263 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" as linuxacl #A5D6A7 + + rectangle "**macOS -- Extended ACLs**\nchmod +a ""group:ai-agents deny read"" " as macosacl #A5D6A7 +} + +rectangle "Layer 2: Runtime Overrides\n(applied inside sandbox)" as runtime #FFECB3 { + + rectangle "**Directories**\nmount -t tmpfs -o ro,size=0 tmpfs " as tmpfs #FFE082 + rectangle "**Files**\nmount --bind /dev/null " as devnull #FFE082 +} + +rectangle "**Protected Paths**" as paths #FFCDD2 { + rectangle ".env, .env.*, *.pem, *.key" as p1 #FFFFFF + rectangle ".ssh/, .aws/, .gcloud/" as p2 #FFFFFF + rectangle "secrets/, credentials/" as p3 #FFFFFF +} + +paths -up-> acls : aigate deny read +paths -up-> runtime : aigate run + +note right of linuxacl + Recursive with inheritance: + setfacl -R -m g:ai-agents:--- dir/ + setfacl -R -m d:g:ai-agents:--- dir/ +end note + +note right of macosacl + Denies: read, readattr, + readextattr, readsecurity + Dirs add: list, search, + file_inherit, directory_inherit +end note + +note right of tmpfs + Only on **Linux** (mount namespaces). + macOS uses Seatbelt file-read* deny + rules instead: + (deny file-read* (subpath "/secrets")) + (deny file-read* (literal ".env")) +end note + +note bottom of paths + Both layers work together: + ACLs block at the OS level + (survives across sessions). + Mount overrides add defense-in-depth + at runtime (even root inside the + namespace sees empty files/dirs). +end note + +@enduml diff --git a/docs/diagrams/linux-network.png b/docs/diagrams/linux-network.png new file mode 100644 index 0000000000000000000000000000000000000000..20725f3576f5d837a4ac23ff06c75d005ae0eab2 GIT binary patch literal 115299 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

TJUG}r)H8II1?p4& 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 X&85m-p@PNI{K17mz^^s>7)ZLp6+ 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 iptables : outbound traffic +iptables -down-> tap0 : allowed +tap0 <-left-> slirp : tap attachment\nvia setns() +slirp <-up-> internet : forwarded + +note right of slirp + Runs **inside** user namespace + (has CAP_SYS_ADMIN) but in the + **host** network namespace. + + Creates tap0 in sandbox net ns, + forwards packets to real network. + + Built-in DNS forwarder: 10.0.2.3 +end note + +note right of r4 + Hosts resolved **inside** namespace + via getent ahostsv4 (same DNS the + sandboxed process will use). + Each host retries 3x to handle + DNS startup delay. +end note + +note left of tap0 + **resolv.conf** bind-mounted + to point at 10.0.2.3 + (slirp4netns DNS forwarder) +end note + +note right of proc + **Dispatch logic:** + AllowNet + slirp4netns found + -> runWithNetFilter() + AllowNet + no slirp4netns + -> warn, run unrestricted + No AllowNet + -> run unrestricted +end note + +@enduml diff --git a/docs/diagrams/linux-process.png b/docs/diagrams/linux-process.png new file mode 100644 index 0000000000000000000000000000000000000000..41d9979763b7ee62e8b4a4c064a469f6120272c9 GIT binary patch literal 77629 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 literal 0 HcmV?d00001 diff --git a/docs/diagrams/linux-process.puml b/docs/diagrams/linux-process.puml new file mode 100644 index 0000000..71649e2 --- /dev/null +++ b/docs/diagrams/linux-process.puml @@ -0,0 +1,71 @@ +@startuml linux-process +!theme plain +skinparam backgroundColor #FEFEFE +skinparam defaultFontName Inter +skinparam shadowing false +skinparam roundcorner 8 +skinparam ArrowColor #444444 +skinparam RectangleBorderColor #888888 +skinparam PackageBorderColor #666666 +skinparam NoteBackgroundColor #FFFDE7 +skinparam NoteBorderColor #FBC02D + +title **Linux Process & Filesystem Isolation**\nnamespaces + mount overrides (no root required) + +actor "User" as user + +rectangle "**aigate run -- **" as aigate #E3F2FD + +rectangle "User Namespace\n(unshare --user --map-root-user)" as userns #FFF3E0 { + + rectangle "Mount Namespace\n(unshare --mount)" as mntns #FFECB3 { + + rectangle "**Mount Overrides**\n(deny_read enforcement)" as mounts #FFE082 + + rectangle "**/proc remount**\n(mount -t proc proc /proc)" as procmnt #FFE082 + + rectangle "**resolv.conf**\nbind-mount to 10.0.2.3\n(only with AllowNet)" as resolv #FFE082 + } + + rectangle "PID Namespace\n(unshare --pid --fork)" as pidns #E1BEE7 { + rectangle "**Sandboxed Process**\n " as proc #CE93D8 + } +} + +user --> aigate +aigate --> userns + +note right of mounts + **deny_read paths:** + Directories -> tmpfs (ro, size=0) + Files -> bind /dev/null + + Examples: + mount -t tmpfs tmpfs ~/.ssh/ + mount --bind /dev/null .env +end note + +note right of proc + Process sees itself as PID 1. + Cannot see or signal any host + processes. /proc remounted to + match the new PID namespace. +end note + +note left of userns + Maps calling user to UID 0 + inside the namespace. Gives + CAP_SYS_ADMIN for mount/net + operations without real root. +end note + +note bottom of aigate + **deny_exec enforcement:** + Checked BEFORE entering the + sandbox. If the command (or + subcommand like "kubectl delete") + is in the deny list, aigate + refuses to run it. +end note + +@enduml diff --git a/docs/diagrams/macos-network.png b/docs/diagrams/macos-network.png new file mode 100644 index 0000000000000000000000000000000000000000..6bac170da98869587224ae899d207d40ad8088d6 GIT binary patch literal 70608 zcmcG$by(D0*ET#h2BM;%fFLT;pro{*AdPf`(lc~7gJ6=<4I&^7(nyQaB||p|NDe*3 zP~RHw<9^@g`TzYmI4-$nhW*>I;yll_HXmQeKPSFGaRGrq5KBouQ$irl)FTil6^Ks4 zE5D5&UW9*`9KG9EL?2XKM$E4BtHC zNcM4HQ>nk?|Ehl1!^GiheNE(WU8mW+7ZU}oyygR}B(r-X(UgWJ*9}*Sf*1N1xP2MJ z7}f4mN1CVnt`jvrY`*EKX;HSC@Q_{D$VbSzG1(x zc-Byw^7WJ4#%tXMtr8OSK4s-W<|QYGM^=BxAHUo!MDHSYW4dBlu zeTz1!hb@e5<_!7u*K=R9Hx~cO8{WL$Il;K&YDw|Pf0-tPXaT376wXf+KHYHfi9+?y z>yG2J+1{SEJQOd&J*6qQJWKJXq8*p+cT}JKcrl#y`E<-X7V(|{ZbjAm&4D-H-ZU7z z8+h>~OMBHZ6{$@1H`&b6)R7P!+gZj8;-?{GuTKm}EBa-4_NaNM{`vErj%kkObvQBS zQwoFjYfs8mSjeox=vqG7J}|lOo!MOwj9J|x-;*^Mwq!D4-L-gAl2M0x`SOvxH^rwJ zzKb*B^_cKFDLqSPg@%xyDO0CHkob3o@seHg_37Oa)lpAyrC7s`W8KkxG$H} z{`QjJS#rgy(cE80?~d%xJzFzzRJ-1l-OEN-mt^uw#Pf>aZ7X_&7mH#evIH|B)Ek(I*2hgK#&t-GW{6yVF5HObP@%dVKAr8xWqp>n zW^-iP&`+q?VwoXDRO*IWTHx6_vB9+T{XCzQM@4!8BSE8To7&Ix)WfDqUp<&`>2cCs zZ(Rz%RIL%V{dVfwPp@azRV-81f zVCpkz#|#WVpNsN&T@Noh_xbnMYSDH3Z~pF={nNA8d-`@4PzMg&UKJF_tND#{p|SJR z3+GvWr^>tM_aUA2inoVx{+Af(E}E_OaDN>^I`5E7Ie46quc7Qk3y8c97p~>w&)Uq_ zKRHM|UU0^jB&P6gBU_cii)zXPJ+`_RtZ%wob#gv**DF=uv^yi5aJB&( zz*6p{{+7+7>Lxdd4=Ji7Am}w)gw_*sgmFjVMW!&0U6Pb%j;eXe&(#nJZ-mq{Q5Bcr zrWxC|L3Qt zk}3cB;ieeHf8MOSf?@d2OYc5O5E29e@$d~7Ar--lX;T&d{eZYc8%W4S2*gXG|Hng7 z$M-CZ4iCpBBqT&fYiMXZ78I=7yvNZsIy$<$TYfM)IQW>4Z{7T(I{(1H0NW}*)n!~> z6;Gurb^nhaqTBi%9UZT4e6dy-icQvk)kA&)@g(&wOttP*=n=};*jP+VtQTGFxnEjT zq>P_gp@~UMlvhv)whIdnH!9HzOnv#Q$h52XoPMnrw(xUB1wYP8Utj-a_V)hH>UQlY zCwH=;ySsMoaxjg^N#f!j%e5C@zkW3^G)$?IQBatem>57C z+1Na6O~>IJ@A>yT@4wwj!>yjB3;fcB)6vn19vjpX>frKQ&3y{n@9iA|J3cAO!peHM z*(H)y#B{jUl_WCv_iv5srbN=D%g#!|;%s74(ozrG$B!R1H8nA95hRVjevQ%xUZbI5 zf1B+rm9ooRk6|!1HPuDS$;k=LFCq|EUJ)i%AKkOyaO=dguQ@q6l3g~=&gvp_EiEnW z?d@AzTkGouO<$-kzjx3lCnu-3W@TlSQt#Qpq&YJcwX`d3{QdjY>(f=&T!pA+bI%EP z7nj|=&AG*~*jNh7itA|)hAnuaPNrGS&d#3QUt>dF?;ae?7_a6Gv~zQ-`1bALqeqW; zdFO;#{JBcF%4<^CHZzE)3Uzh*>pjcKtU0rZc|}C>1FzcK*t|5NxuUJDjfrk+YvUCz zx`w~1;1PUvS|ISQ&Qd~YrG*YO&U|CvC4`wQjM%H~mt4$?_jxOO;u#s09d3bqox8)aj(o<727{7o2j%f)`G_|zMt$6qh|C5`Wn=R#ybdoZ9_CqYE zfPgmHRLy8f2{)ro(uJ$GwzgwqW5bsW4Gr;jqZg6p=E|JUol$0=?ok2gg9i&pW zc6MsL4u{hc3k6!_XA8$pY2QQdUOP(ODjkIlwJN)lkul$ust(jR+VH^U<%vk0cN z!Yv{o&_n)ZOyiNDV9wY3^z^|20i&+s0lZlw>^ODg+tyZTtgbaO{OHJQ=fM8~Kff0L z;IM@R{~~6+-^=q5U&5p>7l5I=heDx7>9@DH-Lj>6(fK*uJ9BCD`CVqak}31{4Av7h zj<=EN%^%Mw2X{W`knsd>=r!Qrlxa)gM$z!e*b>q8YiyZQR=39U|i+f&Y@3nc2|L z;Opz_m8JswH#DS)ExBG(R^~iS7kD=?GcO-pE`+J0y}dar^Oa_5c8)IhJ@fn66a_7a zE1Bo!QR;XVb@gm#tkZsn`iGF8jJ?hU8A$Ufr?S&eyMPZO6}&k&y}irV&OU9uNW^ks&zZf(EK5O(ye! z^qg{~{xlx1#lMKc!+M#Tgr3q?%Q@=$Ze8k=dxAIDPL0Z=DeIfEk$kS=o)90uoXBpI ztgr*?F(*YI;&04~J2*Jl+ZVNACCBG`7Zis_J7$d=DlFts{hCu#(~~FXu+W9x-Dz6g1BdX#^>ze1^dgD>Qh=_>DNV0{NIfzc9 ze*XT-oY~Yl!dHumi)V5TBrpv4ICd3^*}ptvpCTjwvc_P3|9+Wjtb<`FbQ;bde!@!K z!+`2DN}QUS>aOJ%5a?@HGA$vRxa}D8h0T(Ik@5SU`=-3CY(Rs-N4z`sqwvTViJsrQ zg~Fz`US4_qG8byAs;c&^(ML(>BimY`=ORx%JgVFvv*kuis=HUHNTG$A%d97i1h%)f znuDe|tjz1oXE1AbQ<>imTRce2ev+Lbl zIH*ij+*)EAGuh$tYs+%oJUVm_#_jAHk#YZ>kK?sgiIY^$c1J;QGB-C@rG5YYJsWpO ziH)mwCzxYj<#4qa{>Vd1E7qNR)LNw5ZP!aku2GvpJn1YZ%p^ZEvwQo~eojcM?ac|9 zK#SWu;-l%Ii`Q-hwk~IQk|4Y#2|(jYqfTOP%GV|9(fRrL7d^(*+`4Is($dns&lXM$ zTa@}~KZpX0(R^v#Ls(Hjyp8$s8CO8v2FI)|4VG zGgB(b?RVrj22)s4k|wvjx~jhS)p>OsnN*>G7KWHnO#w%Fmz}+9=V_2oscHB~n48gv zv5}DrRgCKP7x%o7;q1WGG>KAqn;r(XsP+sQFGAA1dkxUdlbaW%Da47B@qZdFVtt4@ zM#`+m1TxNAFP>k1-ISi5KAy+bz2i5~-@jsUYlo|~16}#YZ(mLbb6F|uqQX{RkG}2n zqrfjT51tZN6_%GXSR+ZCTH4x_aViQ|E7rZ7KYHD{aj&e-Y>U&##Ka4~C3T1@8oFen z1nGsV@Qg9~=FOWK85u9mbM)=*=-;c|hWH<(&x_j~SteLQNFZRdI{{-Nfp(srxnDEr z8$Qg=8hhr6I=;Zg5YaqsZ(ZWG9?#&L#r5|`#@d^iNunL4{fjWcnNqXIY&uH)oZ%+qk*m!LGQ|zJ2@MoKZcFVW_OE zT%j2Vw#ms|6&h%s_-Eq<-9CN)a~)@9QP*)fVHqRm!p%r>`hvx?RzFt=u4&+l!I4GK zN8w3QQc{brn+%XhDUtN8pO8Iw5BGP%!>@a`Kr~e*zbLDqkiBsJ{CNy%XG=@B{`+gQ zJeS|{!r}9xn_O|x65S$e8hVn-0RaI3eJ)+Ttfr!37R4kuki?}_O^1|46Lmc&?Npm zA3la`2iVD^?3%G1);M=@Z#c8#svWDiwO+&~5G<*X072grd`?xgva;6xJ%QbrZHpQk z)5U$h6?Hl5Q`g_w+3!YFsXK!`J=020_W+Vrx`MJD9~#9_}CJU9sUo?|Wgcm)#`sSoppgze$sk(1KZ9$dqRasPL9lfgwrMSuxoVs0(OQXDixW@v3~ z?d|PdUS0;I8%+6hCKqBfEM#Gbjg|HG?b~~7LsK?`Sf_>Gtp`0lJ=xjW64Z87&j5u0 zQY}OcV{lLF1PkGvh6ZuuIi%3x?<`vJSQ#gT<$kMPaaq~U6Z7kJdKA&$%$yJiSy2dp zgs=ZcOiN75%F1dx_u#;Tdwp{9&VK&iza~XXH}@`+kN|UNY-*aFYiw);>lxz4*S;UQ zb=R8L{xQ|lr%%(;(iXe2zJ6^SLA~o-OiE1DVu_>?@tT>Pg(bh$!uc?qR&SjaHgrl` zX`3Es-P`*<+%faP)amw#JE>qL-k-L+M2?@0Nz2NrkV1w@ISMV(g9o>KO;3ldNEy9P zN2i(F-?U(HaCBICn7_1S9_379WxA$VxXSeQD{Nvwz@;ec?ra;mb@nZOv@yndAS)yy z;)YM(#V;?k8LjsNhHw?^!TQW%LCE1P3`VJFi3mYUh<9(eFboeUsHg%qke;50SF@74 zrh!bASD8ywG&o0yDTD22ZEntWDJv_Bcg;& zXx;q%jYtViZS9_~BJSH3_Vzu?sFP3T3HS+~q^ZqAo5i1*;{J55uR;X}v6DIFS zX}0;?>^-IOV5{_S9svR7zQ>Or|NeSYA;rSVN_tO;mxfm}K0aRZOz|V(-n(1ob9z{T ziHe?ug@yY1`d`1^u=IMWgm{xLR%(!A{uUObdYYJ+q$a1%2xPNzW=oU~S>S`4&5?5( z8+Joij`H$rJ_+p5X_{*~dv=OlP_eY@N|@?&b7L8jj1b(|eLj_vNIe%NA{&EtbsaJ` zxhLSHr+=-ABO(VqoSgiq6P*BUFQ0`br#B37oFAiJ0nSU zcgY6XOm$vn|1J1ivvVuTz;o40B37kq@<;3LiQkh0eqXDrb={fy`G=>=C=rwI;G{o5 zJRQi_e|{JhZzip;h<;Uckku(1VcL~wY-(DmbG(eXH8?c1N1#D>55Ir{5XIl@>g4HJ z&7|+w(bW}Iq;U@!4lxj-1~(lo?JFarUuhnEZO*kV$H2nia8ZfX)ztuwN*+6+*yh%g zM9^wC!it=HiJ8ZyfvkLI=}r57QX?b8;Ksti%-_Gl=p!AGB9?;6$`R*T+`#4z4tK`f z^KdxI&d%;jRS#bM#PX%HOA7@G=Bd)ud)f+7dk_r&OY!JyotFLlE?D2NGB>|C`IUN_ za(J?!Auc(Y7RNXgwmQl$=48Pw1TgKg@XqMU3M)uLSm8>YE5};_1EV{_(*rA}9;Q4l z-#BXa_i!a&3P!M5vV3PLCQc*PQbDU(>m?>3dG4A{6HwP=VRw{U`%n~(0pD|9xLeWA zo?Zl$3XckpimD{v-`g~Gl*Y0K-kr_ndXreA%w+nr@R@bQz;Tpz=TV=7f5R6!3lvI; zbhhNjyNJuFWp5>(KVPEk&woq7zWuk9d@(WiH;~6$6OTf}!qS91kFERj{cep$9mu8J z9J&=SusMZckXX!2(#KcejovJ}Qj8Y(#z{OH_ihYk9S;u=&j{5W?l;73@r48WU0Ge7 zu&;Eta771O?~Kl_T-VsEF}J!OXmC)DG9oN@W9jkqz<}Rf(h_G&p12=!2!sMLBvA!j z6O*q_t-Fw*YHDgAo&$jk3c9?|)%5Gve3!I-l?!cp1jKO+Hfm@lhZksmLfm54V;p@) zEHI|Ob8|~g!wf7eDx2&qEc2$Ft*t0CvrkF*kAPGZ%M59xk&eLGGc!>J9v%k}``W93 z#2xQ^b?^m=B8>xoZR@Gn{5}crMaTh*(}iRbR`0)muhx9(DIKdA`IwWlXM8+Q;zr2j z05zdnvPJa*j5OZrql0cL?_JI|1#HQx>SKO>yM;cpW48`0pQ!pQ_E2PoKKJVDnWhQxm;sIiNC-o+W!|*1vJzR5+4-v1 zQe7>3t-1MwKJt1k#qV7(E!f_y3;SjYxo&tWX)Uc`Kx!}d=Mq>~2iCDiU|A&Gjpi%v zN$ci2oP((nm({#-b87XO{iGvWz08eB5p|@Xrqn6Z&lL_crtE)k1HZ=SfxleeeWIkkda}!mK8@;YW$K}@jgB$xpno44-xMHx&Qq6GpimipXtQxw{@X6oIw91 zfkf7@Cx6w~)%Dz66U|kTmiFTpRk7zQuy&+CT%yjkX0FI{gLTt!7iZ$4(qdFaQ<@fB+A@%(A+Z%%yHD@7=0 z>X>RQ=h2FnGf(CZ-w1u?rPTpHB`vKilTWw%n$-~A=@6B?)8)}OyyM5z)YW&kwm_|O zr8;W|p+7B6ywi9SqN&xws@w}*@+uBtgp*c%K(qx0E&IFE9! z)&!hG%rTJA?un#7HJ*XXgQ6f5_IZ2V)*fvU{w%Dgr?-+KH2d<4UYpohWz7j|=U{?~ zurgHYe7nqjL>=Rqs(3JbcrYB}NtJV;rHQUp3&-Q#xP9GKPat@KhCDfbLRJmp3n+rP zwW|x5c>!_i%(*-B3bD9j67sBUmf7r&c>kX`T^7xXrcGVXy_lF7{D!HCNv}3YPnX|6 zJ!CQ+XDgej^4L?VHZL2&S>twgmel3kyjSGX^JuzxhdZ#f3MrRdj*qHkUe^$8gN<|F z>qC2jlarI1ySu-?e^_YfRzr=;x>$u2q%!?|OrQwz`m}&=h?}qupaP+>IRzORdq!68 z+xthz>uAc~gwPunMv4moVT%Tv`Kzg^(mH70!g(jMc71M_EJv43<2?mBxP5&47TQ^4 zTEISh$2X$(pFv;-2j`X02=9xaP1$gAb4P@POxcdsKy0_9=I%G_#io#g9@W5lc&n(1 z%TMN5`EcU#uO0@_iSSOl2YW^P84NqiBdMvW<=5xk;S84w|Ln-7%m)SsFO?18@fEd8 zO9M3yoAb!)s$IXOQXubCgp;)*uO9|k&J6wu>{(EuVPRlc>rQlYb#-OSwN1jVjBoHB zQBC-iw4GUcF})hHM~h)_UTKF>Ga`r|1N)5bZ_YJEteqwRH+0M19}EUlSLf|u-TUeE zVz}0r^#+jJL$lkcOU)VXsfx1SGv}6<+ehSt?%lh$Vmb$*kd3tz!tAa-L_2~hVswD{ zk|&mry1gV=p?g=HTdIfk^vU@!qG3a`!>nli{m>U(5`h=S<%A>_7Yuo~b?Jgv?3II? zUU3|Z75KU<2e04W|C?v%PlB>#s+=is1Cs#eqEt&zlY>0JmF_2SmeWl56wbfAjq-_* zSa;spG&kk3Qw|P^Am05-UD9utT47Iq#ykBZ!6U7lod*ur?_x+4>0<}Vdh_k>W}Ad5 z?=d8J_b}{G88`v)jq{qz_ySIvb>)!sEpDJ}1nYzwy}*bCZ68&-uz>W<&C)jm=-5_? znIx#cqI$$^z4-<>a?jHbf90_7{$tCp%*|y)JRKcX@ei|Rzz#O$_3m4DcXE4Br7HRxJyq{GiG~I>99FSaYr(xTrg$>Gz&Px4P}w;=M=L; zMW%L*I?Bo^iI=X;9=>iG8XAJK3BE=r-0Hsi!a(Ll;-kH}BpePmJ#C2VRd7ufQvV~5 zKWE>15m^ut5&{SH(NE zMMM5sE*Fb+(c?>oQ6np(+4SfKi&xdf-2O6!UCY6G&0Sh)Dw|{**8SGH!yEVqkWs2s z;D2Kim))}Js`Qxvi<1Z!ACPfe7PshIS5nd09e>w{$}lvSTjhj!kE?I%?tw4zBex?Z zTnTZ7L?;DJW%7?V-}=X!<@xlTMczktddEh`#4H?^OH}eU0uc4)7H{nq@akiB6W`26`*q}22=(0o!x86qQ<+wX(iU+7C zzD;B_K|w*ig^-J?O475&$Hx3>F|P?(91_5V=!z09vr zAo}CLzqGW3OYi21!!9q&%B@FAglxc{LVCb;i61|n z$3?d1C`75Ksb!VL#>EkrVu2@v(drJXc|~lxFwX4mKK}NWf>BLVU%#uZ&3?h9S#5q{ zVO@6*XcnN72K-0&;=dl{k6 zkNSIF1`js}<(^lgXmB}2AyT^gna$=?ePD4{f4>@}Q8$_6^6bwRJ8|AY)<3k0d3V@F zyt(|=$GRrnZV77K66xFpNZiueiW#?aeIkH(5)AC&0E#)ZrY$fV3}1X)+~&6aW4;p+ z&X9Lfd-kvN{cZ*F))y>@`V^n3prF9c&R!{^^qfyfNLNQE+%cS+_~q5tA*B&o0LY|p zknDYN^XF>)s;jEPYu>lBSTX~AKf_IdRHz(dJETMMT568JOT=XxkW{eW8oEVoR=JxI z>aKv16bdAoy*&cyhVt+;A3j-@regR(sYY|;s+^6p2%PFPv-yEJxUs&msnJmrQV2ox zoS^L0`Ci-=JC$L6ck9&KlcMP>`3`6f5F-ieLb%wZDxNH@tlVGh%l`H27ceABs_9#6 z1E5&|pjtLz*RRph*XOO|M_j=WbWHDa&k3T#v$KTS?&J^P_o@edBO~Tcj-W%FB$Ukl z9|{uxzYaC|9>g0+MDO0c>+J0O`Sa<{Evm~+8yg!32UTNMyp@H7r(ZEjRrIEx`SZuX z-QC^Vy6ccNy@!vBD;y$Mc=*=T&-byhv4@AAQLbmtog=+=4KzgBRj~iorOr-y+zRNY zfKp{;Wn`edCSzdm2T-)+SHid-?i0qHT3h=DWlbI)9zMQ3KyI+v7G`FE;eU@ukn{2J zfrhfYw4|-2MRDsEBd|GH*>Li#H+VcAm=Db0u-2#(#HPkZ30G%(`%M7yYT2p}P^-h( zZBT9)jXXWamP^jT)4V6|1fG2611LH#FApRfi1Ahy7Ufly#l_*DKE2S@Wwl1~1wqZq z$HxbvEKK|T&ya)!)>;_JGXX>Zc;5E56Qigf7_cghx{+VIvc7&&bTnvpMXM4IYTR&( z5D8Qz$an<>52l+)H1VLniFo3B`}>{j>T7rWEr3svNqRO?WuWy#M=@CCa1r1GYdHKBMyUa|+7*RBPu)t2X z$`(|E(>ONljf|e@xm1~nXT`?HA8gJk6vdGe9^e7xqc;VKiHXI<#aOK6&aYpCgV8)x zIfFY=Nj~e%BaRG>ef|AlBv8)ne$FqE6%rpWC@5&*ltS1aZ*{N<8#_lwZV0{V>QSIm zhlXCeaf4e#WR>+%vM#c)s>-A5e)C~&etuI!gPg4FZla}$i3F35s;VQ@yq#oD5k@%& zqpaDuxM(OUUZtTq#w`I3#6#H$6vg0y)0ly8&T_&s` z502>7=lpzjVd0vJ3VbJ}&E21)qdHKD)zwWHA|@ex<``s0B1fp~gQ}scq47}Q`+5eL zu#&PeP>l{NFT!VbMKBCcB;%5j(744uz@bA(Vp5LO6R|#)T>cbj-JG!}1P*PSF6&X75{Nx&Lcx+-#FlNLqIUJ({a@sdK zq4lArg~js1LgrB1zb29+u=6*0Aj58LITUT)eBi$Mw_|&|^nbkzUhwPJGxX+V85tRf z=O(5iJ`ZSVr{?FIm*xI-sh}YdibeG-$jZus6>TuDzAVrX_QX5PSpdQU>=PVGeBQzq zG!P(Sn9C;C|2kTBeF>|9vS3_nEcM;M(3luaC8Z5BC`6M%J;$VIsC}G>F!?q1|8C6w zHg>1n=oB}2tGYDK?&Kg8(c)GlNXLU(o;a$>mXV1bufd*-BX9rCoDzB9! zp)W&5#{arO(U8aWY+LrG=|3w*Wg}p~oV>iI+Y*FFd7}Z|iH$V{)9mB%CuLGRK-_{n z4*G_Yn6B;^w5LGmGs1(z18xO>a<{Uyv@9trd;a`+n;^$iM@Jk~!$IfUdTV5C?C9)F za_Q18gPIFVlc%kOS}K%#gbkcF2_{!}{O>_95P(ChlRK=507(5c0S0KPsH9f+PZ-~O z+tk#=%gdWBmZP==O)o06*5g&(`d6oOHE3pc-IcrM=gmO=zi#$FhOB=gFCVnNuBi*f z)fw?uuclzsu^tAPs-mLenKNhl`ubGM05FeNyQg0WAz37!`ZrjF#4Son8Clu*gaq!& zDZ-IXiV)2DCDf^eg~un)FtQ=Tfm`F$U>G&ENOuZj1B1IvOj*#+BA;GT(q~93?1xhf zTIXtox3Kr|BrVh0~leUqf09);{2Aa2!ia4xUFr$wws~hG@xM+VyQ23B}%L- z26@>!Lu_%!Ek;y5ti=AGX(Z>Rrv92ujD@-gSPRJ8U>($cYIC}Z{J+rB+E1$6N(d1;^av2M0B3*~C9S1m*yt z>VG+>oV>i({&vT*%DWhl$Mmb+jJKg)@n4fv2g_~yd|%-OZ2Jz5@H){|g2VU0h`PF# zPSih*Alr?MjQmgEs_;6*tLo@jz`L^W7N|F%A^oopL`FuA*P^YRn10GaaGIz^^STQV z2Cu7y(@$=jvZ-?2G;whmT()?}2eX2x57E41{NKs`$1N#u-DG1ibquP(KA(Sqmg` zXl#sIpke(R%&f4maJIMEGs7ocpvR9a6ShcHeU~12Z!QHa0egcjJTcMHYr89ehXItpc@JU#1u;GF zLj)^7Ek~bRI00m_Ef#V&cG2Z!ByiWz_O8MW*XYs zGSbpa?CeqXP|VgXp#@w6Yga1E*{W_BJ2%>v<0jW4>n+TpdA5P)kNR8apN`>)%+YI0|T_QtVcct==d=>I6o%` z`Y;JKfDV&=h*Pt(X*C&8VJZ1c7;<+VQYVb({edu?24o+ofx+BBONi9ga!Sd~?J({H z&j1?&jIh|m)%}he9v~?t1+$0U{1_MrtB&h1Y3t|!-HV-#t){%(h7kqrmD+wRTaf-X zl=akARUd`35S~Ir*nuaP-y6EPJm%#s`~3NHO^uh0jg5!Ls7Vp>R7!LH3JokKq)bUk zDJv_BpPwHHEBavfDmgh=bh;hgh5>xNeEAX-2{d|Q`b&O(eo291YBAK%V`?ENfBW`A zI*duGq220VyDSkE9Og+R$*dyZ#q=IcRaI_bVLcTUuvQ^Hz6Go=pb)4kfzNRqPfkt( z?Lx?uX|NQ2h6Kg~PCXWj)np;FGz$d-hdc+qa!wa2`S~oyUS4|crwa*; zhxp2!_djhNWO&l{E9KKSn>$iE&cguFJ^*c6QYm%x^n`_kat~2uBk)M*QlxfB1|gs@ z9E{vm2&y7#YJV*y!yz%!j4e3w#>K_0*y{nGFJIqv`3!MWl$Rg@+JjY#WwdlNo>N3*!tj*I_W});AF-QY^GE%g-G4pi9e0H0p5}zCd$#Nz zWp?ZVy%5-O#SJ{-;rV(L^!M-I(YfBEKft_J4o2=Xp8Ze1%^k7$#KZ~*b;zx$%DvD^ z`WO0{;A|mx;RAdRP=XP^ySt}^(;bePn3-|a&lWtgf(-2K?a}Dk?cuaIREZW%hRhHU z0^xMX#!bBeO>AjgnLix5gz}p|F$vY{o%W^vgQu9@4_)s~=1D&Yq*O?8aCWAY>Hz$I zI+8ypBf}=C$MB>~5J^oN3lq}?=|U;AQFMI#R(Imch?%>4+^;MDDM8(Ntivy3XNAqZ zc%S|c935USFn-8=d0U3}$QH6Rc})C{kTaRPYaqUo-d7SC$9lGql>H*1q^;$e8TT%Do!X2qGL7p>+U2$}((BsEzAr_zyaYS2$-pl2ufUXL>WO;m2 zQss;j09m02?`GkK^YHMH?c-#3x8e?;)DFPc&yp#V zj7q!#8TLy+jDj;y^Igr)&Q?w@1<(yi3_`_jLC z`+BU(_T8lppn+LR>Z5zolx?GjuBK-9aYb=4gy;LrM@0T-y&v9fa%IKll|dz2IGsvN zS7{B(Xpm&sTyO1314MI3+MJpBb@)Iy*dE203R%hXLQQ&llc7+b^Afaq1apTv&hdk4 z^Z0I{&x`c5YhV+__Jtrp@!4)gU;I>5u(*hdXl`z63)`#*W)p1Ry6_U(dHKl+eXUI# zw=Xv>E@ttUK<6%Tl>0tJT%g~h>1})Xdn~#_a~dHMfd9BERS}59J!&Pb8s1qM8(UjN zv}3RbcV(9=H0#x91A;0R3~E|U0Yi(Ar-~Bz4uJ#=^x9KGbIru7#Yb;b>1?<782A2M z_P4f#wlLa2pF2Gg^U$H*E3XgE4C@^;4YMl6v&Tq#KqedWl;8$IGCI>(QEic;| ze;XU$RiK`B&a_)y>VYCYh~2@glZlfqRKtDz;B60hi4k{HS{UC1-wzV@;64tsO+?EQF14Z|fOV1mx$f0#Jq#{B-H_`EYK ztDd*My|bG{xA4XMp2KxAGE_P{1TK!ECXNz8f8q64+gcJI;JIJEd;$HSi208+kF%GT zaC$Vt`^9IPSWjpZr+n7vS-QDtk3C4Qt<~4P+%qsRC!8LhqI*7@MnbpqtstA$1x4pw zXgArH?6C1UjYxjS)fzULJ3ZXfb8q4g0GZ*yo(*H`q9H-yxa|Q}Y@3&XfmmhuK+Y1y zWL)GNMw z`D1RgpbFGq+m#uR|Dhk_rhtgZPIU7pJqLo)p&H@Qt;IsNhdBgr4OweHemLwl>`=*Z zU2{}*o3ic|Cm^lHmF}aX$#o-jWdPFTg_Str^q8Pfg75H@2SJbi{qUG9#P{LZpVUq4 zmF4BpadGyyu!+ZCP9Tus-@3ulFqpd&_8V_ai-u7tY#7NbY5AK0b9f zB7UWrv73O?ZmdJMLet@+c6d~GhUxp&)zy8M*wFUh!^2s#nuNZ&A|j#AOggJ#!Oq>? zUFiHJ8rQ#s5EZ3pFxohiBIG7f;{vP%N-vPMg~m@;e*5-$_W8`ku4y!_H;5-rj*c<9 z{*^74SJxGPBM^6}AWz_%X(|i@j?Ib{P*FDoY( zqYIpWEh8^KKNyPcmoFD*zbu~dk7ugvVod)%e6OISi5xlv`g(gWk&w7E_bhXtT6^ak8j%m(({v@&f6S7%r>xHfwQAzOW0MPa;+S* zauSD>eY6U6+RaVN{lYTCZ8pCirW%C%&EzBK?5bb#vUrIvj6CkmU zJn>1O`=HG4k^rJ5vIShfLQ4PO0ce~cZ$?E%?piaiJ^LiF7e$3jWry^bos}gaA#rns z^3^M7Sp?iWYJbIUqkCe)+KClrao_|^%HO`-G36j8CI*ZM@*Uw4!pI0`r5=L%3Nl>e z6c_YOwkqZq6+zOSSYAX(+@_|6<}so{)UC|N+n zE}sru%FV%{ciHcB6LfSz6M0`>#J__^AoK}z9|^ssU%x&GO(YwIlE}~y^52|%U}rK4 z3++%SKQzUOtKI-@y#CpV%$vYTdskP@7cagQ78?B9MW6NshgKdoa zMtuJKq~i0xLEuA3WajGipXmxoAPkP`i^Qj-q=3>&6LT9q7Q^J%OZZKNQHWTedfyj% ziufQI0zKkCUpPCLIS4Oc?~Fn{4+vI<{?7I`@aQrSt|m&x3(vzXs-?1-w>;uC>3uW} zfCqm3c)hJ99X609`~GJEI6zeu%jOcZy_3@e87P^Ogvdd|tuu63mDztF(zAsi5Z;n0 z33ScYcD=VZJl-!__ckI?+>2rsAkO#in*1`bfbyu04!O9F2c9li^*t{ji=FN5;YlEr ztCU5$v_AmXc|b=84I#8ZBIxMEDZ4D}?35m$?ECxr!2G}&T9zPcK$v2U`&M0j__ret zdb^=}`~Lm=8SZ~zIY5PAzkyW(oF&_`@L|#Iqjt~EW!U9;uUhm!>+|uYO znZvdaL^61g90cVs>F(GrTsMhftH#5Y7@3-y_rNSbF2Rh52n+W= zXjLyfsHm-F&#(2^!;Fl$gThKqzO%n$&G`I*iIEZ9-^$=4=<>&Yfq}Yudi@tv$|{<} z&$T`PH4=(<6{EwO*VU*Hh$r_5k%Y^A3VR3O6*|n*OaFjXBgDvn(xgId?fUiWIk~wD^uy3mJC~G{ zWL^uS;+r2VudGO0AFr*wh|ADbN zixp(d9#jcxqGw|r1V78)E{xwQDzuoVfbx*U%6)nZnh~mN$W@6M^r^}2$;r?08IS<8 z&s{y~A{zp&rka{9U0v!aw1`)hfIsouKu%YzrMiwA{K-K}0O32(VcFA&bfy79J+v}k zBPE4eEKIGh;r3nNYG2Ls)4zTNur}kbSq=B_0F+RYl5TEeN1z@9J&xEBH%m(_)TE%p z4erwzD=YUrH6?|EfgYKpNk7mjT#CVv=p`}hG4b&;-OY9P{4==xsN{0gvbUF&?u-I( z7_#7@+1~_p3j)_VJCxXd*0J@%;z8q9<1I3SjGtz;c%q$T@!&wG^ICD!4UtTOi>--v zepp;w^z-uru+WiraqZ1Bd5T$ZvD8$!*U-4^hxh^7W$(W%Bh~;tH?LkLw>_=|yU>85 z6hZVQt0TR}hlG;VHcUQ7_u`$$GnLrL;q1XJn)smDoul z0Z5>rlUbF;>4yBii=KpN0ZAGn4t%z*=LRh@ysb?pvD3F1PIzf?5v23>JV}OO5b%a9 z0%Sl>njC>LBDBiJYs5lyKPfH=I>XJ4x9V_E&WXIhqX1Ew48RBPq=HBS5Ihoiohbgq zX@X|<26R0F(j4Zjyi1TOo6n!{m4ZzkMZ)4BkCc?)c6SGtD-a=sIs;R@yeU8;C@u}% zIPVCOp+SKS4g67tx&$aBK&qY{MG|z*3dB_cb!VEX%q=aA9B~b}dFvK9XL2qqDF8a# zK%?TRBzy9PXqv0Fq2cY2D#8bv7P?R+c5mN`{*MF;A4j-o)pG~lO~?RQ;;gKg5s1-+ zBAe_dYXPxnvP1$>Dq@DEAtukCAK+@OuNM;+KNGcej|0*>cx0@u{~9zmsX}v@&Exhw zD16Xw9nlp`}lFop0l6g^&v5jo_1$P-QAFcX{>d$Fkp>?4BOwxQ^25YRi9#ygoQy z8no25g?Z@8A96fVFR=@Ge1wqeOG=EL#J%r8vjNi55-ewm;7v9A`FVN&nWsi*QRczH z0qiRrf6>y(H?P-ZQUU@4!H)@sMFgvxp#)8A6rNfQHPXF5yp;q|eQFWJjg%BZq#!Km z)KruNz_qF5Zyyi=E~U(}8p3@;-M?`WGzh z)&B{t?qTjRzn0lOc3fFex-vO>5PRjcD15)MkSvqucg8fBTOZE~gxNVc_4oEdZYeD* zGj&?ML3AF*omTF_-q!tll%T+#mp2kDD>8cJm#2aG@h^iCwmj=Ny)dGnL;L5NuCuG% z=X=b>{tbK;t|Ja{3ki9eM!on8>JfmN8hf@n<(CYBm{CkcMYZWllC$WmZcJm)!t+}` z!F>sbg8s&qb9Gz)ouo^S#tDXT)B0VIwp2xRODkoB)S+oGC0g8 z$6xZz0KZK~;tnN?{vDmeUx`1iYW{BO(wCj6frEP^oLXt>RCb++{?#XmArX5G zmVU?m=LI0| zb>5e&wYOf{)i`3|96avv*>_E?%-OC^?bA(zTRMvOg~^dluDWhjNE(qeFUkGb7*#dZ zB1aph9yD%iZblO$;^h^GKkA7JXdQO5tRUmi&V!uTJtiV}G`qyR=OXuXb9|z*eMa2! z>E?d%R@W_k_p|S+9sjzYeQxw_hX!N57`H8djD9~{H$Ss8TIIYdlA4BQV$0U4sa`|5 z7)V6!{zPe4-%dC2+*y0it^f5>kesV_$%LUYp9o84p?7c+GitF{m(!VS7VC=^7T{y% zl<70VZshFQGsiiXeskC`_Jj`e0(Xzh2aUfPTYok7J8?I7*=1Vot#|JRPi!3V)CdRO zMYE^fP~|YS)qGouKVcE>w^)%nbDfbBu8)6}%&7VpsaG&~LH1bSF2P!$M++{@qm15Y z-3fgoN|9FZJ>tF9l_|>Xk+Po&D;%SleBHlCG2?xPZrnaMF?_*+{$WA$ZR+`{n^dHm z>DD5(rF7QD9`NTtg1k1j6SiiOgxnwWq}k_fIBTi%t_%VvCG!lbk6upU#rCPrkhp7>4l|7+v8!E4u7fVhZ%i22yY0K>l#rw zDk2l6I9}I2>Ljy29|7#R$j+{$+T6>Lc``5*f8^UXrf^&6I4F-5%U%mDgRw{H&mc5p zlq*oo&d*BS(#=}a$|-x5a5=Qg;pX&N;k zmoN3rz{5mziD#8s{~*S0g(^w6x1vP(B6C*QfxCy+QjL5kySZ|4UZF$7`^NME>~qYN zdWuR8mKvqIH7b}L{;;U{=ufHk3MMA%tvq|4^xPg82Q$iX?xp42lPJy{eC&8-=gXX>gqk3^yDvJxURY$-E#Pr`+G)DT4SSX79NvagdTB0oBcVULT z>eDWaEo|Lb8EyT$ywR8t7>^TrE*zo1m6Y6pcET-go&>yET5sUU?HAn0n>OpoU88L# z6H;G7C9P!V=cFoAM`>(-{3}+UK{-@;JZF_!I%CN#HMzKPN>dA*J(+Z;Dsv7JDwJJ- z*FZz;@(SzP&H6imVqiu>hqc+}OS1Wmq`?bsZ)kh{sFixZMzRoc1b=A)b1_1AGo4-E zzl}*E{is@3j33MAO1AKtzQ!XHmm$8os)*Ii%|77fl-ci7)5vj*CUF?^a-0))>Ll6e ztXfP`XlF%kk_5@4eBb%4$DG0HVoSq8%D@iPBtMF9o4<9l{{gDyj`7^Q&SGZuQDj8! z*x4_*K@n3A)uojJ1{xX_Yhs0Vd|&fI(vgmlqMGJ3hpt-H=khHa)|e5M?95Z6$-0`` zF#1&6&*^F)i<{-nT4!ms{Z;BFi4YB)iEa~~&@O@tQPcZy@U%jus}BWt*tsg-UlfEg znvq$zHJwjV)xklk@ zQmdqw6#Z9fg|wqyJuA^$SsIW!S214bb}iSb&sWA&c)*~~D?wN9xNHO-FvOctov5eN zGv2qN_&KK-cc_9}#|mCi1L!aD2@?zvWRHRD%%N?6mJ9D>~`h zK5VHlo!pG&yN1BqST8coj_M-wi9l<$Hh1$!J1+*>M)ef0-Ak${vRu`9Q^w`js}|=P zLmzb&60+=R^AAG+&Vivq@w7z+|vgd=+aV@j}A%VT|R&N|JZs9s4Sc9 zeOM5X76g$lX#pwe1`+A*Zlt?GTBM~r9#TrWQ<0Po$p@snyZ!^d@9&(mzR#s=p>jXW zy=V5GYhQcMH5pns*f`StjLAANq}v*%lUHjI0%e0~eVQKAFI}wyJ2$7{l4$nOBV_Pp zAq4|&iZidR_Po+!fnk>NC-dsds8f0GxJbg;d4%lexi?at z7azV$8rZqpDZk41an)*FRH-?unwsHFx4l&ecd7Qnb07g1IM;`rl{^#L!hR@+G?--T#Rk5V0PL8*D z3|>{^=aCTs^F8m&FPKg|-oYi`&K-WLS`Fy(-5jb6JPmaY|9QHY#J;_rai!SATP;DL z`;wipw5dU5LPjDqG*VUe=Yf1|{c}7hW0-(PSpo1j>Jwu#T0-cTL~R zxPkxKx(Q}0QQP6h1QRdOcV*4YAWOmXrLX0FbBV)y@j{@o$~z-Gn}uJ&p)jSlNl9t) z?S{48{el-Jb6sFwcmdWp=5?a(T-CJYNEuTzRRBM?$Cbq$dN^K7c|~&>pM=U0NYMA{ z-FRwWw#KR`nPV9m7^ckd+(HebsBpsG{XHPK$!sgjxg4sy~KOl`7D52D=4 zpq$FZh1IFhEB&^%sKL{iS5}@eEFt&u}@sKeN(j~CnRQtfpb!zx2~c6DO> zuV|b^%_&q@NH>2{jOp-*r@Rjd6=ihl;cAU>kkp;x!xjlzysn>(m}9$ViE;)x-*qoT z+u=VAh1^tbjZ_>i9+;0>*xyABlpJeNYDL71l%;D<4W)Z6xuo9JkG<7?v%mlrr*Zw= zyjl)QVbAvAWyj^|ZPF5dQH_TuS@T(7^^TQ5#_;Nre`8m|VSI6#yH0@_V(8NN}bz);x^P1d> z(uv>RBW`hCv-=&8MnJ&lz9lsMH3nN&3g8x@jEpNLYXZw-%hj)1@41&W%fZUeex`l1W$Tp81 zPxI3B_T6}b?Z<>W6Ksl8WaaHN3UL2VNNHAKWj^%y!$UeDlt{q4kGn7VDNlY?g?)V< zLmzvDY;S#owHZG^SLiVG;r0Fi`gkE9LmGl1ird+}Y{^_39AGLn!0;R!XD3}NSqJN3 z7>Jc13xDt}yRzTEd1};(`%)UgJ0j92&rEC1@JN**+$TmD0qXkJ_?;V$#KgqOYA|h} z2NLlQvE6R**TOA4T$WZU(M;gS(YkV+ATRj$6{V0IMri;6@S(aC^mVE|X?qQxBHusf zq#Ddzc8>cp4&#Z`$tIyM zf3V5UA%T%a@JjO(reV906ULa&F0#q2 zX=w)rd5V1(LD&y(_h3%mB+zzxPPsfn1K{C!wNoC61Y(CFeW{IRaZSk$7Wi~tt!v^m zdWN#!0!v&If1e3K1pS4erZ~F62KcJGKrMV@J=fwL)r5`UXMVPk&7(yf*?#~8x_{bn zY;4@+3@up)?ct3+z59eAdoSq(_}2UWFm22QT`*GftMN_|qmZGn(}CTfRh7{qAzoq2 zoeZ_&n$8oef79fHAxv5{x{^cKqNiNJ7&ceb~Syyg&nH4~)W#H^K7oXAU z;0SWbPhBAgNr4^N23I|C|2LaM_apzc;~xduN? zGgx?rVuq44gAvwXBo97ykcoL|j{OUC`FVS{+&7$%yKaJI_hWAO@JQ9dBY0z+l$gso zV!-MGo>kJ~-ze~BksPS#7yurusVNoHRG$%SQg-j87>bu)VDCP7*`EVL6T9(v-ESVA z`v13NXgX-_myFWqDdjfBcld#%o}B~3_2cmZwH5c@RQbpBovNW^3iz3S*JvhU85^=5 zH~8?ySNO@AGmY-RFZB(6%eoG|c^G~)As}8_!Foq5V`k^mRnw|)>8;dAcc(A5QvY|J zA6^sl_+dFzjnFvsZH;I%-*5_JJR32sQ7Z}Enz{G;!1Yanfh z0CXYvm7V?Po(gLqJq%RA&uz;7a35Qj5D#*eX4TcTN6$Qd02+u4x3=-!-om$wf5HQz zf~X+=+fgV~7qH9D&L+-pF&2eig)68jH8oV)T-pV=_O`De1nhy>S@Cb|{JXo*U^1Iy zGYbd|+E%)nWyOj0^i^7tq$hb3lBHV~Tko-+!`qpLNe$p6#4|gh|D8n4=vXlrVj;6! z`GzYWhv$#M*H(@VVewGD?aO8V}QmpA)C6r=`Qj zSN*%=+v)ybp$FkOdoQbZO-4uovoa2|mK*(gojTnDBKE_o5Y-W{73Y38^7g~c)a_7G zY_|+#f14OiTRcbp@?Cz4w{wzr0eQM*cdZg&RMz&xfO~el`j9+hk?fQ7Pn;m<)R=A* zqsn^^fm=O39y6%~U8SJ%C>k3j4jJR9j$oXT77)giWykk9Q66IlPmymMe7KtZqC3P> z4g%?eUwj(F)h*|!uKFT|^c$25!I|)>>b50&9X_)IvS=~d*JTSj#2v-BsdLx*<Lt1+}!jLA_-wCbT?gX zINQ|T$!JAT<%mCSFG;IBZro($xr8*r3umnl&-cI1)!aGh*csPUoAuujJoS2ATYPI; zlPj*#cI_1g*1`U>5&26JkG03cn`d1IuRv2E#e0?{DJoXh_g~&qB^jBp0ENpW@CRsI zntY*%p@@ymXawxKz8$7W08FWZ@;9qkX zI7)@OWVozx4K57H&G*m<==%Ir@lH?Fd7L~cNaVLnAh1`%Umpg0>Tv5L+uho;I9@q5 zUD-s?T~95($Ws1|o0mP!fnz?hM6XIi{cPoK^nB!}Zt_mKtmS`PqrH>-E9?=ln85K?_NIR;?s{;Rd+#qRF+wqCzSD4d(oLX zZN^qP*Q)=*FbLQIaUW(;?I(V(`Ptynt!|{Ru7HitP1C!mCi2ppfaH1E_dfW$|K5i*lM$VHZhZJ?b@|@j=I1A=2nx(tcvxJ6T)aI!^;Y8COHcOcchxTD&>Y z_BZTT^%i?EkuoC{rCXvjzLDGz^ph{&F0P%0Q-fCZqk4$wR}PIw&wh?3`i#_xuDYi1`84HH>Od5J$z!?9+|lGCYBUgw7GLfe#bP-a5J~JpjNumJ)S!*7}UfEUL_aGOoo0gVg@FM1ZN$yA6 zut<=Lb-K7kU9Z%J9a>8u_tJC=eD?a_Z8;I`z!5bla$N1w#@^bJ;vqYae>F>|NQxmz z;aH~VvRqTgNt|>R(eH|N;Q3zt8ZFv-hN7^s=|x^eU+UIJHCy+NMrvJ6={eE#M=u|# ze-JY8juvmK@bPrL$>wm5Uhv@|#IpYTib6)%(P}JA{7?>VMa6uwUFH{&7*|D4s6%J? zT{y*z5SxeX9d9b|>f+;K+s&I>h*FtPrv7Z{=CF*AoBPR%z2~x)!q=EyR7lB9*h660 zf$Pq^(b0V2<+Ke~K>m^`$7feQ;CSqY`U#lS9*#o=u^z92Fw#Qf*fV(rIWeKzw<^3s z4ytElcgSvVJ$`B3CFP^b=+Nca7>=%T0?WP4mwgK2BX0;uee9>CWqbPQMbYIZIbuG` z$kx^WQc~7d)X)(U4gNt)VqLZ{Pjifhzh?buSCxELWx@mUO`)jpDylq6v~XhhFs5%N zr+;K%Pr7i1zFAb&&(Ol)*C$ar$z7R>urKzri3L??wmq{pYg^)4v6vyxURm^RZl-X% z2PM8{Mna|SncCO=l3M+JG*!U-KJZi1KuE<;S$cVBXu(%^gdS^9o?r23d+GyxLi{8s zrOoNLS&$zsxEWv2?vzXN(&i586E#V3hfPb(5x#dHpZ?1*w;XRwtVAI`x~$RF0L?<+LQnl*AOiW z_B^UF_F~JoA@*wF_YmcEf!L#zchf&{4!NJcSA4}o8yveV=pv3jwFZB0eGz0~v8j0t zAjkDMKHjA1-LBNq{91lW3%`YxRd`l4o(vDq^z2MgzrWwo?e6vlbFzG#jqdB^!>_@6 zsy^zgY2BAPp4W5BuA)$-hiJKmOPrFfbv+Xa_8F4Lrw8V1P;XSuvUTEgHJ(dZXNnJ> zM9ELY$YAeo_`8oceQa2XwD_$8|G;o*w+Q_?nmXaj3lnDhbO`c&hG$12RBq4BT&Lg1 zp)A&@u^{K$;S@K^t5NJBO6q#!rOPxu#r0C2Fkd2<5ARLM3L~F=fkQOsAF@JW)!$$K zR#h^%y3({e<$M}_Y8Xc=TQ{GIU&( zh2}X5i%W;ut0xM)ZAgVxIn3~nb)WH+XdsAP{WO{BZ?5>FaHvkwWgUfW&Ej|(A(arX z%3_R-Kln=NgOeAlA{to|1CjQ!cHFdp%>-gqrve{mcxAVe7|f=lv{448fBlpGFI3&P z)p$KL9bWp()fFN-zxA#4q^jaT{NZ$Vd%e(RMzl_nvQ;h}y<@V${;ES{Q`+-4qW!|^ z>OWf!4K`k<$<@vC<sq;m?Xk1Vr8E9&Xsh<= ziL-i1-pucfrSB(YKax=j;s{;uJezsAPJ=|Az@qS_6PJm!-=vtqA^QuRt7bCV?Hw%A zEu8(Z{_R^U_}nDYfTK(9<`1vnj305~_}AP{bK8#+#GV6KiVNR9igu_Yu!L-i);IEb zxkVtk&`oJhzwCa3LUD9Rj#zr@8Z!L(IB#fIOE)kR`B=V}8dLM(%=>6XX)3C7IU zXYY<^T^7mU>543#aTv3%$>M``+3~KuhXzCVyANY+t?GhWiOR{T8fdt$n&uuX-Qu*T zNKh5dlgL$~`8qgwE%(!U>-DQw@KqWoy@$Ne%fO;OIqC51nwq@ALSkeRVr%L~a0)O! zw%d^#4VwUWJ@4~lUG4pxRw#11pol@a*%a41X(T26Q^bg(q7{bAyvqztmi!dEWBZC0bm`K*?FNcrz0REEP*IBAbJOzt$+bt7v1U_Gwc>sBrXbKXE+*q? z*L~o0zk|PYw9zDW>)SuyKEJjfm~$059cU5RZgzHUaJl8X*lh1ynjTK-b18SZZEL9V zIDF1XWYhvVa$Yx?^VpT1HWSM%d5Zt}Xs;+ZpAot;d;+!hi!sr4-#&QCQ0wfB5_^#9 z<-Z8aX@dcc`cifstJ)(Fz8Or4ct}gjiDzu(gn4^q?}kZ12AX)#LJE9Z=GzZ`uVc`% za}GhqZ`t3ljqxxIFDt<@ap$GgvOcS){9a2bbaUB&@$b%n28b3B88}IitES^qgSmm?*<`om5>6laZC1 z+lZaOhw^kCK7}6|A((&O6nH4pMX!AUK)on*Wuqn;^zf^5P`VQ#q@1~!_C&(0$=QB3 zNKJ=?0WAFG-8M0_vsIMfGC()`?O}ZN&8Hp%zB~eLL1#K9d1lh<~TMeLbnAn-RyzVla=g>Lta6oeDO#H5v$rPs?b-lk;R(+jO_}&o9ix zOyjo|kGNbO-)G@betB|6*!VWA`a$bP&mTKrDY_>sh>;z_I4Hkm$wAeov~ygh`s^>L z&EHA(i*9&J9Gql#^Fl~Wty0_(%pV<^)ITp4(u|UYK1Dv~>tT`TWwAoIxxO|M@sDr$ z^<$Ej--b0#Ufg9tH!lNLr2Q;6-Dpr=3}in&FIFd<-Jk6AM{1FFciFmL7}cB>yZUjR zJtW*w9V?^VG)CbF(URUR^Xl|O($Xgs0%^_i8pqNmmC=@qFy~&4{e$fo$CqNE^-Ewc zMLZ-Ra8j~cD0=nH_GKDfc?wp6Fne#{XRy|kctF*Xp!})a(~DyBYNyj5bvLf{Ru&eE zvj!@4{qysnf3HxSB0K4N8l$#0sh8%!&f1#IsV3$uAM7l9djoJm_sH{<(D*(hXlf&B zVRlY-j@+}~MLM*pSmfJdQU~E=WftpUqrN(eqzJ1dFXL zZQ>*-C33TKMDvCV)~RD?_3ciBwR+@}t!o^tmfWB+bW`9Yb29Rnvu!)^ttKLmhTaMM- z67AgOv5bR@%#TMo8C@`=5E?e`Q~rV#Jgs9N-uuCgfQ0i2aGiu6btj#QmqF5$5BbXmK;^tolx zQ>2PPxK3yDh;6B*^^N#QyL$G8g(bc4@5=Lp8yyITxpEzt6TG#HDAg@)ek`dO{O>Fa zFCX>L>~+o0|Lo`(yS>f(&a9}SA|W7nq<-K&r?TafQjdedbqov-w`lyzc6`|UG}ZeT zaJdSirk@FYVD$o=i5@FIvUW&rR(p~nwe$F9?#hFJ>ujxgW7~3Tt8!j6(qZ>Kj9UZ? zvY)Mk8fg1%)rPzq`iU?D0AJu!ikTT0G3x;U|z&R#uz3aYQ-D zVo)S?hTrVAv_sY-Q#~GLOgu{tg9UkuwaunucH5QdTY|QBiOP;W7t7Z_{{fhNE@(^Y zEzMm+%mNJkm;JV--G3rLGyti+P}nc-?U;ucaE|*eQkF~W-*6zD_0cGH56XCRJNNt7 zo|gzoi*7kZNaM_C!kU`BQ^B)+55|GV{WdG!SMKfCiMyjqPBe8sSmA<6GrwsWlC)mn z!~4YJ zW;WU{BopMwD_zUAhuBL4wtBbr%f<5hxa@i#mpi)VHzv_z+(vz(feG&?nHCZGtysB+ zG>|F)@x-9qRp0v=3kOHS^UohN5VFrei#=kix|4?o{rLDHju)2Fp=F zAyWCHpidMP)e#7m1d1-DI#K_$dKQ9fU#0N|`(x?@G=kmq^8kW@!ND{1B-=IK-A^)m z0dU&D90Ptk^kIv)v2>|BT1y8hi7xILx0Cm3KGELJjvwK^GzHzMtClTtlD*sW>%LfD z#GV$R@>}m$Y9DVucV-)}5z;1&tg!`05IZ<8>iJ-4QBrn^1?%YnC$%L+-3ChdfVRP_ zPn-Q`>G=8gJ#ZEnJ-`a&{f80IkvR|7lhl8#(BlKF;QQ%v@#;C@lk0TAB&|CwcS)kc znwL#V_oAYmYV;HJI3>Lzl}g)LT4GnZzPntiY0zl-#`N~EvGJFZ*kVzidtgqM5D%9* zb(e<+0SK`@uw6rPdu@UomG8if8={GimTY<1xkVY#(2vckovIRL^1Z!3ziv!SBE|~s zlnfmWaUv=Ii#6R|b4nPj zfoPufk|ZCP@QY7?y>K+41+FU2{hP|9Yb^n=X%7x^A)D1rQ^~p{mHUxi7MF;KC1q)t z^T!BFQvce_Vwk1ZJW;SAARddqn=#=6vB!l!y!$|pBVi3n-eI@=sh7snDM{!`nhkd4 zvG*W2H~lDGwBrda$d2=ZiofaA;5J7PG=--{82|{;6HEo#qt_dG=Tv|UgDu$O&t)Tk z+xV^kuVDj+1s#voGEu_A8^*`s%^GqZpT7Ld^Ov#&9X#4eZyR z3r>)|4=5vx3xC>;b~OZe@2BzpotC)($S7t#WqwmrDDMdKWv$p`cPU{m6!oD_hcxIjttSPDT!B|gT`Y0=k^mmJaZ zaGRTs_?NP7P}AG6kVv1gHrUx%d=>3J+Z?{lvmi^YRLB}2!jmxL}76; z=|N@J(zDRFZ1M9mGaqTRDW2JRXHz;mfWb}eV*lAcJY0`q}XKQ!3c6!CAPAj_K%Vp>j2FF#WO9PK~z=!@})uadY$Y z4v$=g@|uRk-*l8zava#R!BWu$b>J<&65J`hrj0gdqg#C!IvOnx3>>AXqobmskv;yk zC%t&8hlU<{e*DSNQ^xecH6Mvsur9|e`TH~M>pOf;N&|^8d(q@yxQTkW^Sh+Y_i zw*S3L0#ip_=a3r33T)vUU=#`PYq7Fs5JOm!*cQ$ZMQflfI$GL6BU)b84NEyOUk# zfSt^!NvC%F5;~EuURhgP{*9@+wROX`A2jWbL@tqnT?6q8OlZoJIWPZn?xzatZLF3% zJ1&+a|AM*0D8G1lZk`#C3vmoDwW4}~kn613+B3#K1Z{4ujXsjQCRyA)RVq~ahP!t8 z*#XA)fj0N>G~H&i3eLWFL6996ZNw`5Qh$H+7!_S z*?AZ5-|b;G7opMesS)aFGG18Wo_Eej`3{v!?QJ?Z&b*C`A)>+pPkFgn)Ig3E829^E z4-kmtG{!aw)hL->u^*Bw9&KGjllDqnDc1Mm;3g5oTluv=*JMdT#8_5BPfy=(*n7ps z!;@n10-2}X0bTZLB5Mz#dMv728{sLFYIcp3v6D*8!c!C3#ILn?&v7q50TB{l;>H$a z`0I3lNPb-(*n7DD;o&)vmwyZhh1+Y#qjOvMKtm2{ileLAzLt5$qH(zK9_pA@uVy{# z?+3@OM98~P(U(IQv6$ySUMF4xtvJpqSs5p8w8WiV_L$LdG*fkT+R+%mQhMJpvc1!U zL&3Ov%^)Kp64k?GrX5FNqte8NtG(w$)~0 z~EFFQgx zzr-0q*s~IcAzq{;5tyCK_{cXE;EUz4NsCT{;R*+ImYtg0iV6k6BIPprK@oHLCcY^?=H~8V|s%)@D{_t0ZY^~TKtD;e#_Ud6842D+*+X$!1vf9Ab*p2?_==+dqGN3k?-8owT@xv4OLGb9KvTL?9$Ts+Vzyo zQki@z6z2d26waxc8F;jI*UzGz#E~d6WLVZD*OCDgoZmF0_0Tpycm4^yc&~5uXKjlp zj4sT`!h)3-X}P+Xej6BziRJUv`Xg`Vwd-0QKTqEMWg8*{0h4SY5sMVg;V3^CldjXO z*J}c4_h28yA8f?#tIJ}eIJkR)1O86+`{Az=_W!cEZRGTjD%V!ah z=Eslc#;BgZ(eas8QSEzylPB)&Qp=SaW-uf{cY*)oPy3KbOinqPWtlbl z6S&lzFK~)=nBIl?{{xkjycV|cvEpfceGP;s&ws#&4xAp?Y1$_pr;Tll4ay#z(6Wvi z0&Hq-cd6?6R;oBJZ#vHP3aOU{dmN->-jt`ww2X{Ykgl$&LRs?Yp>Yu-K6xBxIWbyX zJYzSjPLJKb3t4Bl3)h7nm(miSeo=?gl0{JwWJFi3gh>^L+flrGw>{Lo-$uc~!;abS zarA+DpNTMdzi(J=2Lw!@ccJzKKO#8nDWddb>FsoT)Z4@h9jYb(h+(i)k}ljPl7*d} zH(HL6K0e~)Bo{cDgCX{QKs`UXG~Nmo{+?vp9v9yMrV)!eg(vCI8<=tty-c<9CLTS{ z2ed^>9{tf+pE@l9D*OzahK??K@6b_Gn#mxif4iS^)c&v+Kfd?nv*&}qB6M{F6EBjc zh46CqjAAbW;XOMaU2ynPlcf8knjwCfnex3)vtXB7!-Q4v5KUWnyGXxA20Zn-xvPOt z++EVqlR`ey7AgrJ0rYbZ-1v~$CWkWlxa~y-4iB|lYTYaxlB~lHUztB1V>8Ak=fg#H zr!snl(^87mO#}P5^M@Im8Jp9nB1ERExVjIn6uFPaoEs0FNSxv>+)6iN++>T|c;XKA zZPUr=L=RHqH(r>fS(7123WGr5UFWh9%z-iVUK)6EaH?(X`i$Fe8QJyLE}Kl;+Vsgi zltYZVW03$b$Ko412BoA@B2VJTsFX3bK}M;wuPtA0n6O4tG9hMYr;*F}5o@cK&J@%% zmjHs;N5h@=v-A7|%TerkOjADvKoiF5dYQP!iRKL3_=UY0R5I<-*ck_{}~Q)rp;g0!PxUn5miO^;3Q9I zE~KzfN6lg(M*h#~NjQ!}*O^U1dCJmHF`_tmcCCocA1%Z^zk{wMC5%o^@RJoaG+?0_AN+zY?D}an>nZ&vFQ;_i_OG0KavhDZA67r2@|{->9x71Su;h3ybX#Fm`y0^gO(iy_+23lQzy3&J!HmF!uKh7&&9UjJ#K>mRi^sz zwDps4g+kFnrP$c+rjRo;0A4WOiu8jX764u#lZ(a1u~&_ir>80gK2}c5<;oIa0XGZ` z(y7BNa659Ajz&?dj?Pug9AcR9^1|&m)6@9T1&P~oecbRqVLsQsw;$N(4nv^-j+=#r zg$5@y%RpMXdTwIyA9KUjiZGV>tx`NY;5NKK#p1plVq=q6R?bqOUDPu+PLHtV1}+MC z10iH2Kr~RSRlbxtcG_a9YHDZ!qN9;WiYiFN#I6AgLcQ&^4Un>3$bN4!3W=W7ovR=1 zBP{(Zn(La;Zy;`Ud_OBH>chCvLQxh}YaG0#v_7M|aksN}a}U$ef$K3fyG@UMe6q6z zk7{$6?=%1XJ$d!DYlx8cwD)rL z^zvu3!1>Yn_GAy2pAif%?>=I?e^o`xNtT4fv6GjB1-Odm_VyN>qw~3#!N$t-lVO6_ zBX4t5gSz&as|m97UI96~|3O(#f06FNS)>h^f=LV8#mLcveVb|~-hQB8X}HA%mt`~H zZ@WDDC{oc=y7%2p#Pm@hnOVQ`*k>d~Z>mJ>#(Ab*8k_Eww?o!j97)qpE*sCz*zJiw z`?v=MUtQnMr8WY*b&ug9?|~6l2GOgct+QLb0YjVn&m2A6ybQjH&~UMug+kZp)H(xb z1+b)$6Y=jCKCvH5Z`WIw#l~;BgB30nueJL5tupMTC`o(_f~bN_R80kRHKl&8{-na8 zw&x!UB&Nv&6U{w&8yynlu;VZo0j@3bOnBlZvS8;Iy!qYxT_=ei_&ZkKoh%dWye)qA z15m@x34?9j9_M!IHTV@|;!wtQ!C9N={tE-UImS*qrqrWg&5+k;vIdSRahkh<+uoZ5 zg-=dOQLM+Y^yVejj&{bK(V$(a*Y$R{+d{Y}3%|7~$>AfzjsRNP=0!G9FmE8}^Wsr@ zz9@`U9Vi{hC7E7PcAWe@ZMIR1t!0+5%@yQ)KX6B?(E8IzsVWz*+ZevC`qP8TmuvDI zhdqLL@K|}N`99KOZr%+WTb1B!GOk974<$dt_PmZUvF9Uz#=BRPZBFJ=pYCt|<*fvE ztE;PBc}r6xaeHYpM8)hH(hNd4aZ$dEjyG33OEyYCzK#}__^a&2z2>TtjM$}0psEg^ z##fe3skh>2Lg6ZX`~nTPDWPQ|VuE(ug=EqmSAWl{sk}X^H$DO!+(Y_&+U1ELJ|4D*?#8c&rwfZ$vB1ZpAo~3Q* z_{k=1mr_fhb0EQAL&e)?d-ZEcdTWhZ#_rX79o5I*ie8PXm^g$FdJ7G{0R(UdNF=2a z?bC1H;B{^!j&F={40nT&Xv@vPLyWrJF67nhY-M#|*s%m64!}&FSMJeAf_&0te=EBr zXZ#0~ZgOHhLXJ-s;jWMK^J~m`u6Ki7ZQ83dCko%3+-d)bktfZ@2zh&I-e}l2Y-C19 z%W$CMekS{LA$ksJ=Z8;m*&vX;5eXCO6-g@fEj5xQt)VTW50*34H?*_$1eeNn*H=nC zCio-}Ocg|$?~_B4JacH(`MCRgxP}u$fTx3nLz|2(b($C#5fyr@a;(rKski2|mO+s7 z?t)Bi)5wS^5;QP|Z;cgEkcpkw9737pLJ?u$w%d9tqM5sri&5u?xlYUZ)Xrq$6du9B z%wCN=PS6!;m?a=|$V}&d3@LQ`q`!K(>rI*%eEJMWhQ)>~+lWfu|BoeU@mBuD;*JD7 zUY>QgacWEZ*N!pt_h9~?I&TpZsN=%4uKnSC6llH*I7Fs%0NoM{IH>y%0WbpLAjM2n z@EhrPyDSaTsUrImP_w;mnH$C0+ltimm1-f*Jw{HIFH#2V6O-BTW@N(5C>C_8Fmj3p zMW$=sXy{W|2bV-oL^CgRb}oGc_Vpn1I-&(C{BEP5Qwv$3=Q__ZyhQdrDwi;nGz^Zr zO1K&B#N>6}&D0bWLz)Z9WuZl5TByqYnmtH-r&*;%7JN?j<#$SEWh0is^H2I6A%~$M zZM0lf{vWA5&#tP3pn@qM^-PSM1L7@fanaI(ptpB-pKoHrkvUP(m0lGUK4z=ZoYQ># zg!In}Atj7|$FS<5Bp(Lf$PlKmwVSll#Hrg8RvcIhNF{^<>ar3%+JwA=%poVWA%)|> zkQQ>v?7(m_j=LxpNaX#nhWo5bk@{%hxhKIcg#02_o=Lyg?K0m8yRoDdoL(OKF#f9V zNa`ej_C9q0Y!V>x06islzHiIJ^H^jmA__sYs5@G70f}%)*}DMaT^eov056*WX56p zp>>tviZu&_lr5W{BFGm*#`R4SWj4hHG|;Qigh)BDi_G;>8BJ57s@oR>X(T78XJ!P| zpEUx73qN*Qn_GlDpJtA9`Q9jJ($^}@fZG@*T_R0UH&VOxzHVh!U1fsy1qaUL*<|SF z&~9izj0lfOmEk6H^rjwR^2gEJ=-ZZP{!iez(U!#r3r@qFzf&dns%JP)luo}z_nS)- zM>(g^Z=@Y$+QftZI!W1$c(2TKjYyo0;h|v;aFhN1?WTg4|sVoxzQz!2J{G7@$OGt}l z-I9c)R{rgy?DhPvbA^PtG^au(WcWv)YE4akiYGBj=6?)>JrJ0Jp;$P>e(~a6*-Ot~ zX=#@f&yY^Si^~@Km$&6Fb(nQG$*O;f1$S>O2u7;(5u3`8%-arezI)$RE`E-2%@sii zE;3V9J=&G{?gHg1I(j~_!RF%X0?FKXss zICyoAO5s(^x_IZ0t=b{=1gCN+QBR}wDayxm>0)-%wnIg;7o@*=6wHj6;t>)QFI^}g zSwP=?dt4&=OjAG*OU}#8;FItzYC7S|TuY_4#pQ5nvUl2LIFdhJvfkZzd0Y831CRRn zNUBZG{&<|62J*2eOl6{NdpMAT=gQOneKE5@U6IY`nzET{ov(p}X+@&NhE!E#l0}a} zfGwm0z4by%(kI)PV-jxr#jchJ9z3mCEbrP7qui$J_+cnyfAwwJOi9iovv``&)Yp|LJ*1`4F0=3w{rtXONEF& zLn67oyt$M`MaEK?cTsU_=@{N(T82W?j2Y50!@l^h4~$s^VFVJAq!NwXppzf8=KZY2 z2SE0E(wnAoKOZ&Id?>2**!{H^ND<^vJ5V{DEP1dc;D1m!>iZ;TrJaqSIIm9B@jN>V zz{I?_t^U9e<88LDsWN%ozSoX&o8BL_8H=slgb(A@Y+xTix5CUoT0&XEfS6ci*f4pi z+F3*}JZYv-?LMNbdNnJ^oXe`-U+qXW-PQkQVkx;oUOyP>S(+;_T#;e{dy3*xngzHo zMjD7-N9<7m3$mn`?{8f17eWDp6ok{JQ_T2i_|kL7V+Etk7CS6LPG1p+=45r#4fnDB zT+*Sk=PDqT5Hxb(M9EL!X;$IRXi`&e!~P;7s-Ho14-qYv>z>XEvhcIWlPI?gCJ&s{-TUa>9c!O?k>_Q0{ zLN{ZrRqlP&Q&aJgXTiCl**Y;1C_y}WFDj&zw)}g^puUP5SJr+!QM`kKY7$!h zHdkH;*LQY{E7~HZSoZ~-Rt#q6B;y|@$jJ!8-##BRbZSefE zTiaJFB{!@$THn|NyEP@!DZGNq!umDV`+`_W5jf1Gq1MDHI4tspqrTlaIe z+P>kdkQ>m5I+3Z?(rhO8Zv--zsd}1d(SyZc41xV80!7!br2Tc16;S9ZcZ6tsck7v+ zn4dK7tuJWriJD>&u=Jr`VmLW5Z1y5qI=!lMPm(RRI$pvJ|9$hwemoQBW=)9RduqvTfBD@2t3in zZG!ABH6IqqIClA;c8i0Hjk7HZZz$u|cScZ(J%1zY%oJz_F2R;k!xX1qFQ}Zk45=8J zm>_@1;G@oGA2N8(RSWcv6Oh2${JKxzqse=ddL|)k&6^Ls7(+q;a~PqLbs22vF&<=o zfK4#8VK+;KP%Qjj4rnedJzcp#NR1Y!FwN(enewxV<-Ff)I5?8IXR??G1^9GEUwGb= z51r<*@`v(bFqdMN8et5_V=gN*hc=^i4|LAiug@mt zXZ8907aLtkyJpFS5`U;9r=L~Iey#K8N&mF=x-s=`IWFvw%3Y4KP(l5s*lgU%SEtS9H-*yi7I4q!x<4}18V7BdgRpXD3!??oul1xf-2 zZkrPocFm=j>s?40H#BPgrwnMXN#5hLkNNE7H4z_A1&pmEcJS`8({zK>_s4KOK8Mm` z?e#&+Pu(aXuBsCh1_zP*NND*Wm~bm=$B0!j^Ywj^MDsQa`J`t?|NR#4TG9$cCI(9oT=N7GvIy2RDV*x>g$cQukRc}5X9SD z^A~{QN@1;B9;;kW+$5ps(o-)RFO2KmbzVA|hZ*%PnYvgx2obB!D}%&PT6vxzxbtw& z9nJ2|?N0@4UZGR-IfX?CJyExY5?y%Lj*p_iZ*Fb2!Kj>Z?Kt4e8iJF(yW%d9Sy|=Z zjIhflUqy?9i$R2B{M+?_zBi)0Q*S zzb73!Hy2%#`3UcCGRvC?dd#@fN(&3k4GlqkRG*K4)`nXe-0v<1!DJN5&&=NtP^G6X zoLQdOM?=SD!$tMX_uSBpkso;?Y>b$G(Xt6E2(AyuGhk4{{QTKx)=y|rwiZKZu}hL( z{*c?)!PXrs{Pm41=#Di#JfR^fsbDj;t4tWoaPG zg@F9Xhy%M028B=eD?E5uSHzk-lrL7!g`%*-x4wpW*=L_eSn$n71kn>#gLhiustbLE z%EcX5=PBs~mEGPZWLeqtaB*0^qNDSJjq>rpg>rIL)JuPD6_e?clx$~N8+j^&0vk?j z11?-u21|?QD6}ok^bXu&zi%VVp-#uhXf0P15*T69JU1;}g;3DK#^SuL<=bEJ<;&hJ zsZ%Dnx<#bSW$-m2XF?JS^6%o(;wmR~E?rm5Z-pv!FScJ+<$xvkvd8|47MIGZoijyK zvmNmmI~AIo_M&FcoOeYJc~&c%Lr4=mALhkKf{?Rt{o@B5?^~c%X!K~*votXz=`|DQvW`Ei z(yo5mAteX{$g2&g%OrqByeIXdU^`P?aD)z>opZdqa>@(uWa)44xfr5*;=8E2Hw>BR zVqn7VjxoyXD;U9Zc$VexP#J1Gwa{u(=9M@W-1h_F#>sJ zcz+>VJv+N-9-|eG^HAN@^Uf26Na3tZmS3Ph5vXC_6DnB6K({vLx~uCQE*?K#;E839 z!{{Q=0CWTbvJ25zu3#=GA-3q~@Ac^T_ZS&DWiOuf(ztc*+h#ypQ@|k}&qx2CDT$TG zAKQ%HCARn6;mWk&Hp7r1-#JP<_rCHs=^JZXP`V?9JFjYh*Fq)fkXZ#W^KpK>g3gYn`sl>O?rW~^1e%?1-!8PB=rmcZp@wIc zK}LU%NfCWiQDfXtqAL{b@Jyg~wyk34lKxo!tR^WsY-BKswdqxn-YKOgy`HX`*dn2n zZ;E7{z@d=u!lf8Y4-Jr}?GNWA`$0rPGP!jEq&n&1kQ*F;AR^(!$PzeNdybfqp@@PJ zLlFK`7m4h<5zCE)I01jg)9gzi=?7%+?%X>^6)UJQ=va*d!JP&QL}6VSi|y@&qJFk> zdQ1i59~8nU#d7YG9NR}4`t>*Dp&Nd4;AI{BHgn2@l& zeS}6;E{3xm1?S&G4f&QH?r6@#mE=K;wrEuFv@+`op9crM-9gk@Zq4N?cVgWR580 z`l}QlfVlsv`)3!YkTdwnh?oz!ay++VQKw6cQ}2%UY{Va z_*QQxirZ*ob7<=>_2*expuzBsNP&zC`}=r#P6kA_Q2R4oT$G8>cd0xE+p3|w5){}jKd2Lx+#a+W~}h8{=c2M@T(*Y^h8-2+wiRr4tJ^D;22(A=L>(P?2UMm1G$*hgOQ{qZq# zDjh14s81E0#u$I`{JEWX&s#aMkiD)f`3Yf|G>Oi&2h0OQ!`d%LLVQg|1Mm>6h3)@i z>n)(VY=S;e6BMPpkuK@(k`8HUX^`$Nk(36dK^jSs?(PPW?(Xio%O82a@4NSMILC8* z9`@Otot>GT`OS=TNllI%`B9bg0a}lIs)@^2IMq6p-0jtHJa>A{jc~Da*JMSsvhlnT zsiWgzi2*l;28pES z=vt-VWy(xQoyNt@-74Z}5sC#$*OR`21~o4hLWlS0S{f{2-js-EeEt|;7uF>18qO=! zy>A$^I!W~&D(*)X1vaW>47g^~9(U+5)PiWq9jkL{Allv?7?#zmh29_8FnXVrX#Dzf~I|XRcRxQoN z%iFw7`ih$Xh8g2Eh-8auXlQ&Y#S+kG14YyVLoJB~XpBo$9c@=vR{X8lLU^UU9%Ye% z%}U?dG4~PR*FvqVsX214T^che2K75Z=caFUzD{ zVuqa9U#YzORz;Q^m0w(bWefe5IwhcUP)hxgPaO5utJj(1rl3?T*=!f+-XR(NEGhWN z0yul0uXg?=2DWhHN4o3Pz*vw`H#^4%8drJY?L*9khy6?(-bRsVY5Wkj@;U@onzlcv zFZl2JpSFV8+y!*jXoA=BIZeM$Y=(c7vosvEf7;@!zgBo4}-nlE6VC9F6els;)@C}MkT zKAK~KeFPgnGkblY>D_q)veKBSpg+^+^zyt*e;_EDgWcO}Kjme7+GD z(*R<&i=+DytJ{~DV#5k(VbnFOUw9gh!!PB}bBH;iq~e_=-@nES`ZkSPF{!roQZ9Ug_q!+4OAuBb?lCAjqh&j<@0a*pz{ZKaGu(;hU^xQ+oyj z=5bhu1fp3kooAyRM8g!7qp8}gyaK^1j{XUily^jFm!;RhK>Y=6t_V})Qwio;~j zu%4%0`UP*Cxv=iz;yawWlhkoMYj5}X5@e9ia2lenObl(S zkEm8nU9$4h^-8i>#{uta)w-9;y-boIL6VoC!tK;6PkCDb`lb0OHAHDD%S32Xl2%hw!XFs;vcQV0>w1#tj!^HnokfdKLz?Rg$;x)IaF*w~9$+tHz@-~)Dm z3b_)m>6BAaVgWUGw}9WRfuvLwHmTV$PLgy5n~A#rZh9l1Qh+kb8y!AIQ5i$W=&7#e z3>HTA@Rbn%5z`>Soo7hY8-H_jq*wIehx`Dd7up^86$mb!#=_6Roi zk~+i;`a?l>&Wl!oF!&p9-S@d4h{bKV&Q-nGV4cm@%Nt1i?Q?Q+McwB}Ur0%^XU^3p zBIre=5ab^!p4%)s=a}TYq4Px}`%c<9JCv0$JP;l}F6$rm#@`1c{(FB(==>zz6z&Uo zL*>;u`bU=(tXc@!P3suX{026SSDDV9I>3J7cYTF-gMLtn_5*DM_e0h>0=WTk+OHMW z3*@)gm2K>U{soP3CdSfCE9w$9fWe>C`O$r?WMShWrV4Lt@oLZfT}64rTGf%{N#PYh zN;evls}MpH@`Fb4L&L43mUHg_I=PaPCRz=mGsA7;csK(kROSVAZ$6Z8-#EA_`WBHu zZ%Tc)IW^y!^FMsrkg#TVEO=Y*Ws<2kNRD6br%88=!*L_QxjxSIbqAlJoCtAc!Uka( z%O3AC78AX$l1y#qU}z{y!QyBMc^2DBt79z^lA2uM>6!s@E9WlCcG zQ}u8m#gwH+P^g%KmNv^I{KK734ggN>cyu9pywGi46f*z zjX5=$suiP`S^KctYiKX$poE;4#z0Wf=$QbuD#quwBYl)QC4zy^1c6Hy=Zo>^JB;6( z_iFzTz0YvThSph69DpkhOjUY3P1asLe-=$jfYDtLieTC1efTx)=#uKa&oKQXyr2r# zxtPxl-?AU|)Mr$rMbnYyaSiYGSlZ|sCy?pSPe%9-d7EO7 z5)OJrbp_jPc1N4V4s4xr`|3=CA&OWF2AD66;F=NJHXn226Ghf9d?4^9Zp*&9dwGEq zRrC%T;{KUI94@t*!z|Hm@Af40%g4??x~W;j*`5jiVt`%uF+fqV%ok5G3CaxHpvr_2 zim_*&zfudDJ#C}Wl{b+m76Z1!SK1OHbGkJ7tjU+cPsBVhPc+UOs8OKW30!>`OfF5B znoJE{|D*{k4)bz^y)z;kfN9Y^s(w?yNZ*Ek3-04ylyrXvo)vQmjRF^YPen<3o}R5a zQ#DW1o&YUF#LKgsJ$5KB9hG;O2>|`!#fy0GN$}cZlNk;P@oXcRccK`gQ;b|c*u1?C z_`af!9AlJs2WR+tRUZ`5CxjgHya`_W!e)Ez%AehXHH76xQ+PhX1TaPXdVRF7f~sP_ zWvFNW?c7#}nPq|OU&`eJrbU}{0#Gjm#3Z?742qrX?N7|i?w~H`0G`P1zeC`vvz`B< z{x}vfZnNQeeP6X-6)>sEb!~JzNk%xBr&GLJM3>+f5yCuurhoZi%7Wl*I5EgieOouM zY1P+V;QVVo26| zrLE`_h^z$eF)~7-4^b~AC8xC?LX>ZA_|j8Matu4k-?hFY-t+$Oya{84hWH7CI57Ig z_BGGt$_Vp7u$1cjQuyMt$4QN(ijTbT`o?a=r~-ac`(nAK8m&+zQ(jj|D0CLIPC$iW z1zFUKtG_3s(~Y=Zb+44?ZK?Htu+gzJOp!!Gxa2=-C7ZZH2**D70i?GEkaE5Hf-m4z z`Tgowth3}u*T(cO=p+tDO0dmrWN{7Z*f{uPqK%;n-<@+^_$%VVGxC?=kFGdbc$30|o*;hCHo8>zN&!Ns7pGAdv96HA!~kOgVXFT_CJtn&k7#?`Ab_rV z&Hu$?bOwmt9Ahxp(l|Ak5P!K!D{qS!VR55}a`J*NtX> z>l1MnpZDdKNI+eXL9)188>b$(#Mv9kM?Wl$dZgZ+8?XXb0RSj&$~WG_-cW9WCL$(%?a+qMk)T0A za=Rfrd`-B_Q!eSf_ikgm*=J9$4h;(k6(wU17#q_an~nVerWfGg_ZY-ehILE8P9SRrWBQF~kDQj$uZ$9|N~pCW)C01ytmgt^bCGz;sT0G0sn-v%j2-BvJ{qo@%oy(ZrXbtU*;Zh>M1tw zQmx_(Su_OBjCeOZfHTX=*~33Ep~?mR@52~6{cm&gULr=T1bg9FFp6?;*Yn4A=sXQE zH~T2bzMBP4JeyA~%#0>4_6rm{gn7ZKlno?J9r%uin9QTco4Z6FNHVRb-?1<9g**7@r0nv~EFcb86t_yc6L z>8~aT%R|drIXQtYO1{5>K+%VYZmN+_-yZ6cggO1Hr-)V#kI+pMM4;2sd^XR9F-Go%pI z3Lu#{EhvJOp{q&Yj3(i5cJsx-enTXDKd&^?v(D`YfICRm<#RALhJxEV@#+gU6TDlvi z__v3jkfJ~~G)PY&!FWhd;V8l(Rg#zAR@EYGW#jBvMSAx`c8y3;@flPYvpUQ>=J7-T zH6z|p{!)l4J$r_;VwyPR9~(;_F{{5Wgh`^M7qwi9x?2g7a>fyt7QM)3E6Z-^k>AcB z0Ks7C*>2}#_V$1Bb)pU#d4>Kgy~Fm8T&K^1fTp0D5&S^P3iZu_gl?L-o!#TqqX?w& zzbn=v0wKnqaKR@= zDbE9Mp_@f0yFayccC6@6@}>yn4aP71S)KNh08#;0`00_)cLxrG^@Xpgse~6a@JCjr zrWkN%9AM4Jb;9eaNRKZ&o0&No`?lCLOd_XXvMdr}UGo8BzDcfIM25o!j%Hehu9LyR ziNC6S9>0k?+KbCd>+CQtVgjIG^UVrYYr0=V>}-vxPjb9oy2@g_%MiIMA60&=tfV9< z6^uZP)TyJx{X7e#y3h|)0cfg!FwwjqTT()aS`Th@^=8|NlK*#*fe{L?{65Ba3M{wk zH9wQP`wAHYj4b{fWu&DMFD|B!IlTl|WgW~bM@QQwbH+6iq#}Vg4%N!Q52zP!Y08Af z6j!zWQ#MQY?}Yy6K~WlfINXLcS$P2Pi_cH)qDsJBvJHrkPHQ?*X)f&>BgQZvUizZ( z18i;t(8V5LH}tSz|ph}fu}3&fhKN{%(dodxG;~$j(zjST9c|;R%Y%~4)ke- zR0Xg`C?IvM|0)SL-ej-B{YqK)E;)-h_9|Ky5 z(tp`6OTD;C$XqN$0121Qg&4#TA^VJ@V;xCDBvLwUeJrbVEtmDt)bhx;=Uz(BTy+f& zO5qlv&X0PD9J#=q8y}MdZ_W(&JTdo9w^ZKDaFI&xCe5)s6cm_&Tr&>wF9G%#Uox#y zwYw&xitn?NxIlK&?`rJXo5khxdW$aCT3)}33pVSsuZCY$@|C#h2Ck`!zWG9OgJlFw zAbG$Y-wQw{F`I!oY|RfYXxTt4v0GGlev=?s!lNa;1Pk?7GM73C`3mjsIjYm$ zSoVwpUUh{#EG-!MJC02Bs9#u3?Nt}~IdK}`!291N{BzngfV6X|>dliBG&uw!Cpid| zGy39*v#<>*a3WRqEd%vUG7dhDDgRha<@{2V>;gx32LTEJLl;QfbtL>I9wq)xEI<-q ze?!*=@-)@dK!O)5%f?W&EF1ST`H!F@uRw-e)8pwPpOI(DQhRqHqE1j9pgNyd9@D4T z+m(jij~qmUP9ptGjIxz!3ZIxD1vp;!W8w5EvAHeU#1tM6BU|X}KaVPeR7Sa1EReKr zz)){Mu3IOTe}Y%}Z(+y#ESW65ndau?LI>8tGiR8UjrgPUljA2F2XBKr3%n^by0T^G z9}_Qh13ea{?S|@K3^@E55MS5F?PjT!<&{~$(s-bbs{v0Dz%$}>ntXr(g-Gr)k|4i4 zjNqm7=7+E>P;nqI`0wc#?7J5s`8N-*5B*nFR(GrJ_izwS99TfPEb}hyuZ5HG{mWAU2bay|^u5*>aEw>~?JxZ^Qh5iO)v<0`qy3U94m# z==&(%3W``5x)vzq{;zyiJ3GvrpR%C(2NUy1^tW$#H%`S+2h9H~!PZF~f@N3N(0G2* z_+)r%W#zYktkg6c=P@cex<@UqVI?cOF>8FVg2D3p0pZe&)ypWi?y}E zpp?OH^LJUpN5?9i6EJ6|`)}%;pl2nxc{OzqHe71WBY2s{Oz0hmMfyPLw#soU=ZR@E zfF%nSZoax&0(lcFhm}HTtyfCO9Fy(sW=l-x8F(PGc#8#8hzb1q6(quHcN^FJNgK=t zMU>_pA*r-OK4h*TR!U-rELK%8X~f~8YfY)`ewzuoZy-tS4=mcmf74A4Ovx7=>#qpr z2OcK}37{KI2@$;~o%t zfqFqWVSMR#(n%PyG@yJ}u|h>6^nC}i#3d- z5jn*3(}w$_!c(^H`Wwja~>3Y%= z*kAcf7Z*pauZ#eV?wm-fA<^hb1loaW5*%JGvrtK@h7X{gf9_eP6Oxy2-Uxit936a1 z_)<_GIZe-qdYN?mN)l5w0}r3Djl_+g|8emwEi^sMT^qhf4Gt&gx>3=Q6mf0sQ0q); zUjwjQUeSjgS$JhjUrqlIuk(|6~2?6Kh(l(W#!{9Bs>_TQ`|5xk@i z>@2y%M}GJaa}|UANxBd*zhl%APoQ~G76K#4w-a?LvB~dQM!Yd!=J$H0@qu!@mj91sf+Bmz5 zY(pT-A9UBG5wzH}*CG_Qs_p@UfUe0vJ2OrMnCe7zzY5JR%&Mr!uB$63DM`=B2-M7!i2qKk;ZQs?+b#(AaNinPBXZx4qIoOL;g~!rH z&?&Ici~F_>nML&WNBveD!gG>hF*VI2qXp1Xb{Rp0Gy-AJBoX|G&P%kA7mcs$wyc&8 zL2v5q(qIv*4Q5TY5J_C|U>_RAC___FQ1BGv=zS0&MScrRR}1_d!N>J)ajb{f7Dv7p z6xO6CM;U%4c65DFkK@O8qIIIBH;a**Oi?)!UA@=VC+1WEZ-eLaKjaFVP!5o-&|%r7 z{B~Pk{fVQ|Q}=!TQjOXijt&ZBN}ju~>BS9@0^a8<`F@t}?w9CFDbhC=Bz+4wEO8q( z(OkT67?h^i*~$}YDp-2uj8tUlV90#P z5sjX7Ms{gX-09Mxja_J-yAhq3v}1*5Pay2n8nW*A_v6wPZwh28k9b0d2ZpawtwwFH zzz1h$Xf7&d8~OE>l|=x{#|ATo+P+C%SzeYhX^T02{@K7=+qVu66EFL&z*Kv%#KoYj z9cU}lE}4a#6qkUsZlkLk;KZ3V`k`MEpZBmIeB6CAaxwAycj3NfxEAul7b3~Fhfvd> zt@`nLRyLBh8Sz(d1EB7SqWKx#ukVNUV0JQV*!obkzie9@RBZXoVR2Vi;Jh~Kp|OjL zi7e>!z3e0qWbJ|81)6R%-`*biMfLBHU`H?m7DVg5IsO)1uwoszU6yt>%;fJmYrsD3 zP~EdH!{F}fU!jqOcWQjqbjCM-&~$i)V1VWSWqPT#x3sXb(#lHvdrbx>$!#02H~aFh zl99Fi+a7BKxJtRcCB{5tIQC8f>qoJRVJWcId>vW)@mfMtlFr`_5C$z0oti;=+8&wE zo1r?fAc4rJ+UCeumFvBZjscUA;o&p|N-YgoAAywj&3g5-Bs6b$_%Jskqo{lpefsY@8z|{VNW{eQcXVVV$%VR; z9%j7DbS9&aNSoC-fQcm^lZtX-*lb2SD_4x@0>)J&SxH_$=JT1*E$;!$j`Zg$^s zUtcr)Rwv#_OdgFmcdf$6Nb%}V;2WHw0i3pO5@`$?OkCa22$j91q}1s{3z&g2DidHy zh{H*F<>#mHgkSzUeb;V!u5pYM!)pmuGh^eLuWcuF_2ruC>ItsyQdM?qDs&!%Z^V*U zcJ<${PY@8Hpzg<1_k_7$e3{0CLoD826a-yrg3h~$nx9(7p4}pj<#^e4IL&xrkVHFc zij$*!vb%s6HM~Egb-50KvI6`fU>&{A9WCTbJ_-|~g;As}l(k*g>k77**-5 zt%=Qh5WC#4&5;4xrQn>TiH>P}_&}F6`s|9uK(M}FSSfR~389hCRLvQB$|FGbZtfbY zLxaml>hWLwInOuK)mH!1i0}-pXSSqjT2C>wlNTX~Q{dvs4KDe(eyy!7eeFl?KH1rc z7%O>nxm-ngV0>k!4-a=&(v_{B6CrI$u74H@#-}+=*DIH^Pwid>oCVHM2*0s$WQc@+ zp14mRIBQ5nP0e=t0Z9kNcf3Xow8pKiO-SH0HG9iQ1lr0*(l3si71gXP=_!v*Dk`*q zR=wlX8W~iPk7KRycAC?v{I1XNb)#N4x0Q=WLtmY|)*^Gq4bLvm$S}4y7^+BDrcBp! zC~PCoTB#ixifH%S+uxT~QCVLUBtCqjQw9r#13b>k(W}^-UtMoJ%r~pSrm3hj-jm+Q zcj&SlrORDrE%315o{8!b0P!!r$*q*(N(KpJkBEn7vuXqh{23Y9u#0Iotfp--3NbFi_S7(fFUrc$`VN6ms}$-N zL_9gh45E^Y4XQ!?+R74|eAxDHs^8UH$pJ$-49;x_&#trKVY~-z%VT8hBXy%h$9fl0 zL6_^{pO?L*7Ut%0m6hu$#*Dx|8K=|V;j?wH>(WcTtmcLPQIxR5%d7E4P`ZA%f0>JA zb6$cNQH`I#2oG!H_S$;)4n8*%qDomNNvKaM>%;b;$DI zDmz{|=c*o*rKTnTJ}co5)0H^sTij0wiR|$s*H!}utfnUK*RQZjj&+%5e`(`mFft2S zS-+#98L;>BAf#R8Mo$R|Fh+StGJb7lrCOBO$kD%l zvlR}`;#=F=$)ClhMl#2e9oyQMp`xIKox7^27>kMRCul};xdS2YG>>?E43a}fMn^$W zL2wh~;TAUiD|i6F>A#DLl4?Gv#NJ+?Dj@!LdiQ*s|0mx7&g-$r<`+X|`ugt_6-myO z3rFebVK9qRytF=i7#JLk`z2PTeY>2BXRYVRg*Q%=ti{R00!}C9#E;llm|m`%XBz2T zLN6zIcs0VBGv15dL^5y*cd(|OLfu?jpS*W)AX^=W)`{}C6Wi}8J6~No@ezKjx@%2l?(JttLZ%*}28o-fHpX+g+XR7z}*tYH4;0czW@W zmp%fw`bYhfYlmk`f4YFs)%a&nu=~rplLiQ7D^abdMY%`eW2N=1tt`wY`4s|~mN`A> zt_^+~&~#AFWZjK|tT*Y2-|EXu6Um>!2pJ)52cRoJZixtxGXyBz2 z7Bd!Rjkf%LZxuh%Yhw|1vhQ>k>90t7{j^5xXltBABiszdc zBsC|lJRR4r7@oDOhbgOj96C|AhhGZxtXms9G5^ySFHLo$W&zG6=`jPY8#~!^<9=JihkF@R^{;mB{$rERX#k#gP1E-;*mHd+VSyZJczXiZ4zG6L-1&8#qBQ z=(9jkPBLm5LfzNNqJYl9{g)PJafb%?->vWgl+aP+r4bGY;3>?r=v+F`&5gW#cM zHI*&|;o{1y4uG6fr~k-#gOK*)eI5*bmq&$n^kO8|@xZTMQ`(31s(mrX8!bOgXE?uF z_`SRE{m>oqBmhP>hV_TRb=3TwjSD}6{R1&WG_ z@$1}{YVhx0*m`rvqNqAiQel@WdqFbN6qkyenaByT_ZG;%g9Ru@t5j|wmlm8D`vm$)Z5Rk--6Fbf~9&TOw{m;9USHeX=(eBtGY6aOxIpZ z^uEnMIh=DkFP`YcNw-t(5a@(E%e=%_c)+Z@nq zr(@HuRlNkK{;UvxZF6rsau_{CD7n9R6jrL2(dO0C+erNZ3?J7L2fZQ}K@03yyqSiP zM8KuDV+(uNhBy{Wq%3DnbQ(bsQy93x=AzMIGbbT$(N@_HiAjHdtMT9?RF25+a7Uhr z$Y1E^B~(+Hc4rXC(=PB}xSO8mi@WLRzY(7Iy=4Fj_iZFqW(lJq4ejdnRazROh@zd8 zuDp$#pstiz;`mNVH&t$qy`;g##QLk%F2;_6tvh>sf)Wy)s z${Y?HYmBF_u!S=h$)TY-n61!-^L2zc3zuHta!DYT$7F$ z%c$S*?GcghR>BAMZ})s8<|o^6hdUeQ2KLrsI!*PZEzeYepa6S5zb|%Crp5i|5A}~# z-}G0Ua+-hS<<&%Zr+LeOMK;#=)B+uqmWze;rj}l82+7SHt%OqH(*;#z;Yl;? z)*Y*R%G`@Zgfv$eGNsX$DB*(l1s1z*l`aEGm9G0gzie~y&2VTUK`YUBp#-yQhM^w4 zYGVzOY>Q>49$eOYsj_nt_B!||1AnTK6pK_`}5zgjpzuQKbJ>Fy-znVdTYm#~?XRy=LY zG>q?~G3DG%bwxkdS%Yvqa#gG9Mv$w~#bjma8AGPAyLbTXbKflV{hvQm3@NdLnBR#R z-bt8X-+lG>?d&e(MDK|`oJyH?>`M9qGg1BD0Tfcy4F1-$at0oK#e27%ZfigBkIZoE z-E~KWqVd%dCC3J-jWj-}gyMrFJ||Q0?iw>A(>OI%r{)d{U6ju?9}9Yc9g_Z4776Ps zey=@VM}Pn6HFt)OEod;FGA`9LZ38iI*d8Pe&(FQ>#hd+gu=fHf>eEx_e@+Me+oTu# zpFb5au_yA~yn=(vO?q?MUO6w?P&m?Xo)!40iPmjv9dulVhdgivLcoqTCu z$Li%}xO^M=k{#eqOTD0i*%2a1^fY27G~T#o^lpA>+#;8$2>Na+Q0j|Z$Yqr_g#K$6vJ%Tj+gvaN6G@Pa4+A zX;k2j`=$t3Tb|LGbc>Bn?fe+_xsOl&Hm+@NTc*LtfT*3Flo@VvJC*7OO^?Zrb)6{P z+}z(eIlpt_OqmM?Gw*06QITzEWc#^&F&tGi(wj)vR2RjMb_z6f&Cad>RSxA;t8_W$ zulyiWI}!9t5rg2fP;cD2u-JdB<4GOgOvaHKvR-WM4h|;U5Ojo}bKWmY+-) z2AR^wuOyVpLl3`0*nG}}|KAE`y;xmqt18pBlwn`PnQd)d7T0OKfV^{M`S2|@b~{Id zqeC6g;ZVsz$4)pEzhoAoDIWVRItnO{fc7`q-0Y^*%Cl4wwS@a!ZE&j|@9xIf0}jZ0 zZD>JmX;)tAz{bXv`kp*`v|Ns7oV6SY@AcLGV#QN*ie&Ap(BS0_7k!GG^$y6_@t-~{ z!tms<0jOyqO5FIE32v^JnzO5VW0psq8z;NCYB3_u2P+yKtg1astd!d{Os38 zJ8sQu_36RyqGU&AUAhtG&sxYKYuJCV8cxxxoS0(s<%bz{iiC3GIg2=&2eVj1?N?5i zS;`fZfh%x>vM@V+w1$a=nF<=pLiR4*Y)T9{w^9Vz<*k^0~0eUN}6?cmI>Nn zqUxr=$~8CJ3_FGYVvauy``f{kf`-EQ6XG9;q+i!T2~bzjke4W1-gg|Xa;i$$0%utL zNUyB=6%5Q&WA{>T@vdJUwR{dGWo}&DbCb!-^$;=N=Fh-;3VwL-9*zfpU^}1)uhvp5UpFoW+v}2GjPx%RdF>$s3Wt!%6|H^xyCJj68aW+ zwDl|xI2^CvD=F3KG7OI>csCRNq&~kin1$DfEon(uinxf;!};g%b>(`nT#$j5U!2Gk z7%!BAFEHOpFmyXai6;vK_1lNSlG~W+<3#&F9$QZNMl9#?qd%44+puy=Ims7g<>K$ znv7(#b910qu#4GP715(miBeyWPdPK|qaNc6Tth26`Ah}CivyCx(*%01zY{7y8{CdX z&tJ?=qb=7 zz~L7$4B6Y(ZQ|HYtpB1THb-ec6S&JDUf3&!jtTf4Nlfo18rwrCwZB><3kV%s?<

H7;Yv1rl`nN`~jjd)UD22+X_Hg_Zm=RbDA+l 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 profile : outbound traffic\nchecked by kernel +allow1 -up-> internet : allowed +allow2 -up-> internet : allowed +deny -right[hidden]-> lo + +note right of proc + macOS **Sandbox.kext** enforces + the Seatbelt profile at the + kernel level. + + No user-mode networking needed. + The kernel intercepts syscalls + and denies disallowed connections. +end note + +note right of profile + Profile generated dynamically + by aigate from the allow_net + config. Written to a temp .sb + file and passed to sandbox-exec. + + AllowNet hostnames are passed + directly (Seatbelt handles + DNS resolution natively). +end note + +@enduml diff --git a/docs/user/README.md b/docs/user/README.md index e005095..45496e1 100644 --- a/docs/user/README.md +++ b/docs/user/README.md @@ -8,7 +8,29 @@ aigate creates an OS-level sandbox for AI coding agents. When you use Claude Cod - **Execute** dangerous commands (curl, wget, ssh) - **Access** unauthorized network endpoints -Unlike application-level restrictions that can be bypassed, aigate uses kernel-enforced isolation (Linux ACLs + namespaces, macOS ACLs + sandbox-exec). The AI tool physically cannot access what you deny. +Unlike application-level restrictions that can be bypassed, aigate uses kernel-enforced isolation (Linux namespaces + iptables, macOS sandbox-exec). The AI tool physically cannot access what you deny. + +## Prerequisites + +| | Linux | macOS | +|---|---|---| +| **Required** | `setfacl` (usually pre-installed) | None (uses built-in sandbox-exec) | +| **For network filtering** | `slirp4netns` | None (uses built-in Seatbelt) | + +Install `slirp4netns` on Linux if you use `allow_net`: + +```sh +# Fedora / RHEL +sudo dnf install slirp4netns + +# Ubuntu / Debian +sudo apt install slirp4netns + +# Arch +sudo pacman -S slirp4netns +``` + +If `slirp4netns` is not installed, aigate logs a warning and runs without network filtering. ## Install @@ -55,7 +77,7 @@ aigate run -- aider ### init -Creates the sandbox group (`ai-agents`), user (`ai-runner`), and default config. +Creates the sandbox group (`ai-agents`), user (`ai-runner`), and default config. Safe to re-run (skips existing group/user). ```sh sudo aigate init # Default setup @@ -175,16 +197,51 @@ Project config merges with global (extends, does not replace). ## How It Works -### Linux -- **File isolation**: POSIX ACLs via `setfacl` deny the `ai-agents` group read access -- **Process isolation**: Mount namespaces overmount sensitive directories with empty tmpfs -- **Network isolation**: Network namespaces + iptables restrict egress to allowed domains. Requires `slirp4netns` (`dnf install slirp4netns` / `apt install slirp4netns`). Falls back to unrestricted networking if not installed. -- **PID isolation**: PID namespaces hide host processes -- **Resource limits**: cgroups v2 enforce memory, CPU, and PID limits +Architecture diagrams are in [`docs/diagrams/`](../diagrams/). + +### File isolation + +Two layers working together for defense-in-depth: + +1. **Persistent ACLs** (applied when you run `aigate deny read`): + - **Linux**: POSIX ACLs via `setfacl` deny the `ai-agents` group read access + - **macOS**: Extended ACLs via `chmod +a` with explicit deny entries +2. **Runtime overrides** (applied when you run `aigate run`): + - **Linux**: Mount namespaces overmount directories with empty tmpfs, files with `/dev/null` + - **macOS**: Seatbelt `file-read*` deny rules in the sandbox profile + +![File Isolation](../diagrams/file-isolation.png) + +### Network isolation -### macOS -- **File isolation**: macOS ACLs via `chmod +a` with explicit deny entries -- **Process sandboxing**: `sandbox-exec` Seatbelt profiles restrict file and network access +Restricts outbound connections to domains listed in `allow_net`: + +- **Linux**: User namespace + network namespace + `slirp4netns` for user-mode networking + `iptables` OUTPUT rules. Hostnames are resolved inside the namespace so iptables IPs match what the sandboxed process sees. Requires `slirp4netns` (falls back to unrestricted if not installed). No root needed. +- **macOS**: `sandbox-exec` Seatbelt profiles with `(deny network-outbound)` and per-host `(allow network-outbound (remote ip ...))` rules. Kernel-enforced via Sandbox.kext. + +**Linux**: + +![Linux Network Isolation](../diagrams/linux-network.png) + +**macOS**: + +![macOS Network Isolation](../diagrams/macos-network.png) + +### Process isolation (Linux) + +- **User namespace**: Maps calling user to UID 0 inside the namespace, giving capabilities for mount/net operations without real root +- **PID namespace**: Sandboxed process sees itself as PID 1, cannot see or signal host processes. `/proc` is remounted to match +- **Mount namespace**: Enables filesystem overrides without affecting the host + +![Linux Process Isolation](../diagrams/linux-process.png) + +### Command blocking + +`deny_exec` rules are checked **before** entering the sandbox. If the command (or a subcommand like `kubectl delete`) is in the deny list, aigate refuses to launch it. This is an application-level check, not a kernel feature. + +### Resource limits + +cgroups v2 enforce memory, CPU, and PID limits (Linux only). ## Troubleshooting @@ -197,6 +254,12 @@ If you see "Failed to apply ACLs", the AI agent group may not exist yet. Run `su ### "aigate not initialized" Run `sudo aigate init` to create the sandbox group, user, and default config. +### "slirp4netns not found" warning +Install `slirp4netns` for network filtering on Linux (see [Prerequisites](#prerequisites)). Without it, `allow_net` rules are ignored and the sandboxed process has unrestricted network access. + +### Allowed hosts still blocked +If hosts in `allow_net` are being rejected, DNS inside the sandbox may not have been ready in time. Check that `slirp4netns` is installed and working. Run with `AIGATE_LOG_LEVEL=debug` for detailed output. + ## Exit Codes | Code | Meaning | From 33aad5a525ae9cb8c481264359ac674d66bab0f5 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:28:22 +0100 Subject: [PATCH 07/11] feat: add sandbox startup banner and explicit rejection messages Print active restrictions to stderr when sandbox starts so AI agents can understand what is enforced (deny_read, deny_exec, allow_net). Use icmp-admin-prohibited for iptables REJECT to give a clearer signal than generic connection-refused. --- actions/run.go | 18 ++++++++++++++++++ services/platform_linux.go | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/actions/run.go b/actions/run.go index d985a67..b2bd042 100644 --- a/actions/run.go +++ b/actions/run.go @@ -3,6 +3,7 @@ package actions import ( "fmt" "os" + "strings" "github.com/AxeForging/aigate/domain" "github.com/AxeForging/aigate/helpers" @@ -60,5 +61,22 @@ func (a *RunAction) Execute(c *cli.Context) error { Int("allow_net", len(merged.AllowNet)). Msg("Running sandboxed command") + printSandboxBanner(merged) + return a.runner.Run(profile, cmd, cmdArgs) } + +// printSandboxBanner prints active restrictions to stderr so AI agents +// (and users) can see exactly what is enforced inside the sandbox. +func printSandboxBanner(cfg *domain.Config) { + fmt.Fprintln(os.Stderr, "[aigate] sandbox active") + if len(cfg.DenyRead) > 0 { + fmt.Fprintf(os.Stderr, "[aigate] deny_read: %s\n", strings.Join(cfg.DenyRead, ", ")) + } + if len(cfg.DenyExec) > 0 { + fmt.Fprintf(os.Stderr, "[aigate] deny_exec: %s\n", strings.Join(cfg.DenyExec, ", ")) + } + if len(cfg.AllowNet) > 0 { + fmt.Fprintf(os.Stderr, "[aigate] allow_net: %s (all other outbound connections will be blocked)\n", strings.Join(cfg.AllowNet, ", ")) + } +} diff --git a/services/platform_linux.go b/services/platform_linux.go index 1df3002..090cc33 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -387,7 +387,7 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San sb.WriteString(fmt.Sprintf("for _attempt in 1 2 3; do _ips=$(getent ahostsv4 %q 2>/dev/null | awk '{print $1}' | sort -u); [ -n \"$_ips\" ] && break; sleep 0.5; done; for _ip in $_ips; do iptables -A OUTPUT -d \"$_ip\" -j ACCEPT; done\n", host)) } - sb.WriteString("iptables -A OUTPUT -j REJECT\n") + sb.WriteString("iptables -A OUTPUT -j REJECT --reject-with icmp-admin-prohibited\n") // Mount overrides for deny_read sb.WriteString(buildMountOverrides(profile)) From 436c58198d69e5cdc911bea7b71ce4dd53717ced Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:30:59 +0100 Subject: [PATCH 08/11] feat: show explicit deny messages in sandboxed files and directories Replace /dev/null bind-mounts with a marker file containing "[aigate] access denied: this file is protected by sandbox policy" so AI agents understand why content is unavailable instead of seeing empty files. Directories get a .aigate-denied marker file inside a read-only tmpfs. --- services/platform_linux.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/services/platform_linux.go b/services/platform_linux.go index 090cc33..d59a1d0 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -401,24 +401,39 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San } // buildMountOverrides generates shell commands to overmount denied paths. +// Files are replaced with a marker containing an explicit deny message so AI +// agents understand why the content is unavailable. Directories get a tmpfs +// with a .aigate-denied marker file. func buildMountOverrides(profile domain.SandboxProfile) string { var mountCmds []string + hasFileDeny := false + for _, pattern := range profile.Config.DenyRead { paths, _ := resolvePatterns([]string{pattern}, profile.WorkDir) for _, path := range paths { if info, err := os.Stat(path); err == nil { if info.IsDir() { - mountCmds = append(mountCmds, fmt.Sprintf("mount -t tmpfs -o ro,size=0 tmpfs %s", path)) + // Mount tmpfs writable, write marker, remount read-only + mountCmds = append(mountCmds, fmt.Sprintf( + "mount -t tmpfs -o size=4k tmpfs %s && printf '[aigate] access denied: this directory is protected by sandbox policy\\n' > %s/.aigate-denied && mount -o remount,ro %s", + path, path, path)) } else { - mountCmds = append(mountCmds, fmt.Sprintf("mount --bind /dev/null %s", path)) + hasFileDeny = true + mountCmds = append(mountCmds, fmt.Sprintf("mount --bind /tmp/.aigate-denied %s", path)) } } } } + + var sb strings.Builder + if hasFileDeny { + sb.WriteString("printf '[aigate] access denied: this file is protected by sandbox policy\\n' > /tmp/.aigate-denied && ") + } if len(mountCmds) > 0 { - return strings.Join(mountCmds, " && ") + " && " + sb.WriteString(strings.Join(mountCmds, " && ")) + sb.WriteString(" && ") } - return "" + return sb.String() } // shellEscape builds a shell command string from a command and its arguments. From e557f0a1f954de90f076f701da59aa39e8be2c5c Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:33:57 +0100 Subject: [PATCH 09/11] feat: print network restriction message inside sandbox stderr Echo allowed hosts to stderr from inside the namespace so AI agents see an explicit "[aigate] network restricted: only X, Y are reachable" message instead of just inferring from connection-refused errors. --- services/platform_linux.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/platform_linux.go b/services/platform_linux.go index d59a1d0..ed27291 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -389,6 +389,10 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San sb.WriteString("iptables -A OUTPUT -j REJECT --reject-with icmp-admin-prohibited\n") + // Print network restrictions to stderr so AI agents see them + sb.WriteString(fmt.Sprintf("echo '[aigate] network restricted: only %s are reachable (all other connections will be rejected)' >&2\n", + strings.Join(allowNetHosts, ", "))) + // Mount overrides for deny_read sb.WriteString(buildMountOverrides(profile)) From 0f5cec222d21690e23a9f10b503c43202165e96c Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:36:10 +0100 Subject: [PATCH 10/11] feat: write sandbox policy file so AI agents can discover restrictions Write /tmp/.aigate-policy inside the sandbox with all active deny_read, deny_exec, and allow_net rules. Deny markers in files and directories now point to this file ("Run cat /tmp/.aigate-policy to see all active restrictions"), giving AI agents a discoverable path to understand the full sandbox policy including network restrictions. --- services/platform_linux.go | 45 ++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/services/platform_linux.go b/services/platform_linux.go index ed27291..7484f85 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -193,7 +193,7 @@ func (p *LinuxPlatform) runUnshare(profile domain.SandboxProfile, cmd string, ar "--", } - shellCmd := buildMountOverrides(profile) + shellEscape(cmd, args) + shellCmd := buildPolicyFile(profile) + buildMountOverrides(profile) + shellEscape(cmd, args) fullArgs := append(unshareArgs, "sh", "-c", shellCmd) return p.exec.RunPassthrough("unshare", fullArgs...) } @@ -389,11 +389,8 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San sb.WriteString("iptables -A OUTPUT -j REJECT --reject-with icmp-admin-prohibited\n") - // Print network restrictions to stderr so AI agents see them - sb.WriteString(fmt.Sprintf("echo '[aigate] network restricted: only %s are reachable (all other connections will be rejected)' >&2\n", - strings.Join(allowNetHosts, ", "))) - - // Mount overrides for deny_read + // Write policy file + mount overrides (deny_read markers point here) + sb.WriteString(buildPolicyFile(profile)) sb.WriteString(buildMountOverrides(profile)) // Execute the target command @@ -404,11 +401,38 @@ func buildNetFilterScript(allowNetHosts, dnsServers []string, profile domain.San return sb.String() } +// buildPolicyFile generates shell commands to write /tmp/.aigate-policy inside the +// sandbox, summarizing all active restrictions. Deny markers and AI agents can +// read this file to understand the full sandbox policy. +func buildPolicyFile(profile domain.SandboxProfile) string { + var sb strings.Builder + sb.WriteString("{\n") + sb.WriteString("printf '[aigate] sandbox policy\\n\\n'\n") + if len(profile.Config.DenyRead) > 0 { + sb.WriteString(fmt.Sprintf("printf 'deny_read: %s\\n'\n", strings.Join(profile.Config.DenyRead, ", "))) + sb.WriteString("printf 'These files/directories appear empty or contain a deny marker inside the sandbox.\\n\\n'\n") + } + if len(profile.Config.DenyExec) > 0 { + sb.WriteString(fmt.Sprintf("printf 'deny_exec: %s\\n'\n", strings.Join(profile.Config.DenyExec, ", "))) + sb.WriteString("printf 'These commands are blocked before the sandbox starts.\\n\\n'\n") + } + if len(profile.Config.AllowNet) > 0 { + sb.WriteString(fmt.Sprintf("printf 'allow_net: %s\\n'\n", strings.Join(profile.Config.AllowNet, ", "))) + sb.WriteString("printf 'Only these hosts are reachable. All other outbound connections are rejected.\\n\\n'\n") + } + sb.WriteString("} > /tmp/.aigate-policy\n") + return sb.String() +} + // buildMountOverrides generates shell commands to overmount denied paths. // Files are replaced with a marker containing an explicit deny message so AI // agents understand why the content is unavailable. Directories get a tmpfs -// with a .aigate-denied marker file. +// with a .aigate-denied marker file. Both point to /tmp/.aigate-policy for +// the full restriction list. func buildMountOverrides(profile domain.SandboxProfile) string { + const denyMsg = "[aigate] access denied: this file is protected by sandbox policy. Run 'cat /tmp/.aigate-policy' to see all active restrictions." + const dirMsg = "[aigate] access denied: this directory is protected by sandbox policy. Run 'cat /tmp/.aigate-policy' to see all active restrictions." + var mountCmds []string hasFileDeny := false @@ -417,10 +441,9 @@ func buildMountOverrides(profile domain.SandboxProfile) string { for _, path := range paths { if info, err := os.Stat(path); err == nil { if info.IsDir() { - // Mount tmpfs writable, write marker, remount read-only mountCmds = append(mountCmds, fmt.Sprintf( - "mount -t tmpfs -o size=4k tmpfs %s && printf '[aigate] access denied: this directory is protected by sandbox policy\\n' > %s/.aigate-denied && mount -o remount,ro %s", - path, path, path)) + "mount -t tmpfs -o size=4k tmpfs %s && printf '%s\\n' > %s/.aigate-denied && mount -o remount,ro %s", + path, dirMsg, path, path)) } else { hasFileDeny = true mountCmds = append(mountCmds, fmt.Sprintf("mount --bind /tmp/.aigate-denied %s", path)) @@ -431,7 +454,7 @@ func buildMountOverrides(profile domain.SandboxProfile) string { var sb strings.Builder if hasFileDeny { - sb.WriteString("printf '[aigate] access denied: this file is protected by sandbox policy\\n' > /tmp/.aigate-denied && ") + sb.WriteString(fmt.Sprintf("printf '%s\\n' > /tmp/.aigate-denied && ", denyMsg)) } if len(mountCmds) > 0 { sb.WriteString(strings.Join(mountCmds, " && ")) From 29dece1c2fc47c2fb6adc815e599b8fe78d08615 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Thu, 12 Feb 2026 20:38:05 +0100 Subject: [PATCH 11/11] fix: rephrase deny marker to avoid prompt injection detection Change "Run 'cat /tmp/.aigate-policy'" to "See /tmp/.aigate-policy" so AI agents don't flag the marker content as a prompt injection attempt. --- services/platform_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/platform_linux.go b/services/platform_linux.go index 7484f85..033865f 100644 --- a/services/platform_linux.go +++ b/services/platform_linux.go @@ -430,7 +430,7 @@ func buildPolicyFile(profile domain.SandboxProfile) string { // with a .aigate-denied marker file. Both point to /tmp/.aigate-policy for // the full restriction list. func buildMountOverrides(profile domain.SandboxProfile) string { - const denyMsg = "[aigate] access denied: this file is protected by sandbox policy. Run 'cat /tmp/.aigate-policy' to see all active restrictions." + const denyMsg = "[aigate] access denied: this file is protected by sandbox policy. See /tmp/.aigate-policy for all active restrictions." const dirMsg = "[aigate] access denied: this directory is protected by sandbox policy. Run 'cat /tmp/.aigate-policy' to see all active restrictions." var mountCmds []string