diff --git a/TODO.md b/TODO.md index 8114378..54f29ca 100644 --- a/TODO.md +++ b/TODO.md @@ -6,10 +6,6 @@ - Terminals PTYs via `github.com/creack/pty`, rendered with xterm.js, one WebSocket per open terminal (the only WebSocket use in byre). Scoped to the task's worktree by default. Shown as a pane tab. Terminals don't survive a byre restart. -- Per-project setup config - A setup script run in each new worktree (dependency install, env file copying), and port allocation so parallel dev servers don't collide. -- Decide the format of per-project setup config - It holds the setup script, port allocation, and the run and capture config that visual reviews use. - Previews Web: byre supervises a per-task dev server and exposes it over Tailscale, preferably as a per-task port through `tailscale serve`, since path-prefix proxying breaks apps that use absolute paths. iOS: on-demand simulator screenshots and recordings attached to the task, with Screen Sharing over Tailscale as the manual fallback. Shown as a pane tab. - Confirm `tailscale serve` can expose per-task preview ports diff --git a/api/openapi.yaml b/api/openapi.yaml index be89eae..7872d19 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -823,7 +823,7 @@ components: Task: type: object - required: [id, project_id, title, merge_title, branch, worktree_path, base_ref, status, created_by, created_at] + required: [id, project_id, title, merge_title, branch, worktree_path, base_ref, port_base, status, created_by, created_at] properties: id: { type: string } project_id: { type: string } @@ -832,6 +832,7 @@ components: branch: { type: string } worktree_path: { type: string } base_ref: { type: string } + port_base: { type: integer, description: "The first of the task's block of ports (port_base to port_base+9), passed to its setup script and agent as PORT." } status: type: string enum: [active, merged, discarded] diff --git a/docs/operations.md b/docs/operations.md index 876edef..57a0381 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -18,6 +18,15 @@ State lives in the `byre` directory under Go's `os.UserConfigDir()` (on macOS, ` Schema changes are the `migrations` slice in `internal/store/store.go`: named entries, each with a short kebab-case name saying what it does. On open, byre applies, in slice order, every entry whose name isn't in the `migrations` table, each in its own transaction that also records the name. Each runs with foreign keys off, so a migration can rebuild a table other tables reference, and `PRAGMA foreign_key_check` must come back empty before it commits. byre is deployed from task branches that each append their own migrations, so after a merge a migration can land before others the database has already applied, and it still runs. Give a new migration a name no other branch will use, and make any data migration safe to run twice. `sqlite3 byre.db 'SELECT * FROM migrations'` lists what has been applied. A database from before the table existed is moved over on open: the first `PRAGMA user_version` entries are recorded as applied, and `user_version` is no longer read or written. +## Worktree setup and ports + +Every task worktree is made by `createTask` (`internal/agents/tasks.go`): new tasks, `create_task`, `start_todo` and forks alike. + +- **Ports.** Each active task holds a block of `store.PortBlock` ports starting at `tasks.port_base` (`port_base` on the Task). `Store.CreateTask` gives a new task the lowest block from `store.PortFirst` up that no active task holds, so a merged or discarded task's block is reused. The agent's `claude` process gets `PORT` (the first port, which most dev servers read on their own), and the session guidance names the range and says to run dev servers on it. `sqlite3 byre.db "SELECT id, port_base FROM tasks WHERE status = 'active'"` lists the blocks in use. +- **Setup script.** If the new worktree has an executable `script/setup` (`setupScript` in `internal/agents/setup.go`), byre runs it in the background, in the worktree, with `PORT` added to byre's environment. Nothing in its interface is byre-specific: a script that copies untracked files such as `.env` from the project's checkout finds it as the parent of `git rev-parse --path-format=absolute --git-common-dir`. It is the project's own file, so a branch that changes it changes the setup of tasks started or forked from that branch. It is killed after `setupTimeout`. The task's transcript shows a `setup.started` note and a `setup.ended` note holding the last `setupOutputBytes` of its combined output (`output`), how long it took (`duration_ms`) and `error` when it failed. +- **Waiting.** While setup runs, the task's turns are queued as if the caps were full (`Manager.settingUp`, checked in `turn` and `drain`), so the session shows `queued`; when setup ends, byre drains the queue. Task creation itself doesn't wait. +- **Failure.** A failed setup doesn't stop the agent. The next prompt its session submits gets the failure and the output appended to the `UserPromptSubmit` guidance (`remindTaskGuidance`), and at that moment byre files the same text as a `session_error` inbox item. The setup state and failure live in memory, so a byre restart during setup leaves the queued turn to start without it and nothing reruns the script. + ## Closing a task A task ends `merged` or `discarded`; either way its sessions are stopped, its snapshot refs, worktree and branch are removed, its `open` inbox items become `dismissed` (resolved by whoever closed it), and its record and events remain. `GET /api/tasks/{id}/unmerged` reports what would be lost or merged: commits on the branch that aren't on the default branch, and files, lines and uncommitted paths that differ from the merge base. The UI's Merge and Discard buttons each ask a one-line confirmation and are disabled while the task's session is `running` or `queued`. Merge is also disabled until `unmerged` reports a commit or a changed file; the transcript fetches it when the task is opened and again shortly after each tool result or turn end. @@ -73,7 +82,7 @@ Agents don't commit; byre does. Each `user.message` event that starts a turn rec byre chooses the Claude session ID (`vendor_session_id`) up front, so every session can be resumed. Processes start on demand: the first message after a restart resumes the session with `--resume`. Sessions are `running` from the moment a turn is sent until its `result` arrives; on startup, every session still marked `running` was cut off mid-turn, and byre resumes it and sends a message telling the agent to re-check the working tree. Stopping the server kills all agent processes. Merging or discarding a task kills its sessions and marks them `completed`. -Every session gets byre's guidance (`guidance` in `internal/agents/guidance.go`): ask questions with `ask_human`, end each turn with a final message that summarizes it (including every departure from the plan), put everything the human needs in a blocking question's context since that turn files no report, don't commit (byre commits each turn), and don't push, touch other branches or run git maintenance. A task started from a `TODO.md` item gets one more line naming the item and telling the agent to remove it from `TODO.md` in its worktree when the work is done (`taskGuidance`; see "TODO"). It is passed as `--append-system-prompt`, which Claude Code records on a session's first request and reuses on resume, so a running session keeps the text it started with; a `UserPromptSubmit` hook also attaches it as `additionalContext` to every user turn, which reaches existing sessions too. +Every session gets byre's guidance (`guidance` in `internal/agents/guidance.go`): ask questions with `ask_human`, end each turn with a final message that summarizes it (including every departure from the plan), put everything the human needs in a blocking question's context since that turn files no report, don't commit (byre commits each turn), and don't push, touch other branches or run git maintenance. A task agent's guidance also names its port range (see "Worktree setup and ports"). A task started from a `TODO.md` item gets one more line naming the item and telling the agent to remove it from `TODO.md` in its worktree when the work is done (`taskGuidance`; see "TODO"). It is passed as `--append-system-prompt`, which Claude Code records on a session's first request and reuses on resume, so a running session keeps the text it started with; a `UserPromptSubmit` hook also attaches it as `additionalContext` to every user turn, which reaches existing sessions too. A Stop hook (`bounceProseQuestion` in `internal/agents/guidance.go`) bounces a turn whose final message asks the human something in prose: if `ask_human` wasn't called during the turn and the final message (`last_assistant_message`) has a sentence ending in `?` outside code spans, code blocks, quotes and blockquotes, the stop is blocked once with an instruction to ask through `ask_human`. The per-turn flags reset when the next user message is sent. Claude Code reports the block as a "Stop hook error" notification; that is expected. An agent told explicitly to ask in plain text will refuse the bounce. diff --git a/internal/agents/guidance.go b/internal/agents/guidance.go index 195097d..90f9d0f 100644 --- a/internal/agents/guidance.go +++ b/internal/agents/guidance.go @@ -8,6 +8,7 @@ import ( "g.fc.run/misc/byre/internal/api" "g.fc.run/misc/byre/internal/claude" + "g.fc.run/misc/byre/internal/store" "g.fc.run/misc/byre/internal/todo" ) @@ -60,7 +61,8 @@ func (m *Manager) bounceProseQuestion(l *live) claude.HookFunc { } func (m *Manager) taskGuidance(ctx context.Context, task api.Task) (string, error) { - g := guidance + g := guidance + fmt.Sprintf("\n- This task's ports are %d to %d; $PORT holds the first. Run dev servers and anything else that listens on these, so parallel tasks don't collide.", + task.PortBase, task.PortBase+store.PortBlock-1) if task.TodoItem != nil { g += fmt.Sprintf("\n- This task was started from the item %q in %s at the repo root. When the work is done, remove that item from %s in this worktree, so the removal lands in the same merge as the work.", *task.TodoItem, todo.File, todo.File) diff --git a/internal/agents/manager.go b/internal/agents/manager.go index f130a09..36cca4b 100644 --- a/internal/agents/manager.go +++ b/internal/agents/manager.go @@ -62,6 +62,10 @@ type Manager struct { snapMu sync.Mutex snaps map[string]*snapState + setupMu sync.Mutex + setups map[string]bool + setupFailures map[string]string + bad *badLines watchStop chan struct{} } @@ -95,18 +99,20 @@ type live struct { func New(st *store.Store, limits Limits, worktreeRoot, leadRoot string) *Manager { m := &Manager{ - store: st, - limits: limits, - worktreeRoot: worktreeRoot, - leadRoot: leadRoot, - live: map[string]*live{}, - rateLimits: map[api.AgentSessionVendor]map[string]any{}, - leadAnswered: map[string]bool{}, - paneFocused: map[string]bool{}, - signals: make(chan api.Event, 1024), - snaps: map[string]*snapState{}, - bad: newBadLines(), - watchStop: make(chan struct{}), + store: st, + limits: limits, + worktreeRoot: worktreeRoot, + leadRoot: leadRoot, + live: map[string]*live{}, + rateLimits: map[api.AgentSessionVendor]map[string]any{}, + leadAnswered: map[string]bool{}, + paneFocused: map[string]bool{}, + signals: make(chan api.Event, 1024), + snaps: map[string]*snapState{}, + setups: map[string]bool{}, + setupFailures: map[string]string{}, + bad: newBadLines(), + watchStop: make(chan struct{}), } go m.signalLoop() return m @@ -406,7 +412,7 @@ func (m *Manager) turn(ctx context.Context, sess api.AgentSession, task api.Task return api.AgentSession{}, err } - if room { + if room && !m.settingUp(task.Id) { return m.start(ctx, sess, task, actor, text, images, api.AgentSessionStateIdle) } @@ -500,6 +506,9 @@ func (m *Manager) drain(ctx context.Context) error { } for _, q := range queued { + if m.settingUp(q.TaskID) { + continue + } room, err := m.hasRoom(ctx, q.Vendor) if err != nil { return err @@ -652,7 +661,7 @@ func (m *Manager) ensureLive(ctx context.Context, sess api.AgentSession, task ap } tools := []mcp.Tool{m.askTool(l), m.cancelQuestionTool(l), m.createTaskTool(l), m.setMergeTitleTool(l)} hooks := map[string][]claude.HookMatcher{ - "UserPromptSubmit": {{Func: remindGuidance(g)}}, + "UserPromptSubmit": {{Func: m.remindTaskGuidance(l, g)}}, "Stop": {{Func: m.bounceProseQuestion(l)}}, "PostToolUse": {{Func: m.afterTool(l)}}, } @@ -677,6 +686,9 @@ func (m *Manager) ensureLive(ctx context.Context, sess api.AgentSession, task ap Hooks: hooks, OnBadLine: func(line []byte, reason string) { m.recordBadLine(l, line, reason) }, } + if l.owner == "" { + opts.Env = portEnv(task) + } started, err := m.store.SessionStarted(ctx, sess.Id) if err != nil { return nil, err diff --git a/internal/agents/setup.go b/internal/agents/setup.go new file mode 100644 index 0000000..57db71a --- /dev/null +++ b/internal/agents/setup.go @@ -0,0 +1,113 @@ +package agents + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "io/fs" + "log/slog" + "os" + "os/exec" + "path/filepath" + "strconv" + "time" + + "g.fc.run/misc/byre/internal/api" + "g.fc.run/misc/byre/internal/claude" +) + +const ( + setupScript = "script/setup" + setupTimeout = 15 * time.Minute + setupOutputBytes = 64 << 10 +) + +func portEnv(t api.Task) []string { + return []string{"PORT=" + strconv.Itoa(t.PortBase)} +} + +func (m *Manager) startSetup(t api.Task) { + path := filepath.Join(t.WorktreePath, setupScript) + _, err := os.Stat(path) + if errors.Is(err, fs.ErrNotExist) { + return + } + + m.setupMu.Lock() + m.setups[t.Id] = true + m.setupMu.Unlock() + + go m.runSetup(t, path) +} + +func (m *Manager) settingUp(taskID string) bool { + m.setupMu.Lock() + defer m.setupMu.Unlock() + return m.setups[taskID] +} + +func (m *Manager) takeSetupFailure(taskID string) string { + m.setupMu.Lock() + defer m.setupMu.Unlock() + msg := m.setupFailures[taskID] + delete(m.setupFailures, taskID) + return msg +} + +func (m *Manager) runSetup(t api.Task, path string) { + ctx := context.Background() + m.emitTask(ctx, t, "setup.started", map[string]any{"script": setupScript, "port_base": t.PortBase}) + + start := time.Now() + cctx, cancel := context.WithTimeout(ctx, setupTimeout) + defer cancel() + cmd := exec.CommandContext(cctx, path) + cmd.Dir = t.WorktreePath + cmd.Env = append(os.Environ(), portEnv(t)...) + out, err := cmd.CombinedOutput() + if cctx.Err() != nil { + err = fmt.Errorf("timed out after %s", setupTimeout) + } + + output := string(out) + if len(out) > setupOutputBytes { + output = "…" + string(out[len(out)-setupOutputBytes:]) + } + payload := map[string]any{"script": setupScript, "output": output, "duration_ms": time.Since(start).Milliseconds()} + if err != nil { + payload["error"] = err.Error() + } + slog.Info("setup ended", "task", t.Id, "err", err, "took", time.Since(start)) + m.emitTask(ctx, t, "setup.ended", payload) + + m.setupMu.Lock() + delete(m.setups, t.Id) + if err != nil { + m.setupFailures[t.Id] = fmt.Sprintf("byre ran %s in this worktree when the task was created, and it failed (%s). Its output:\n\n```\n%s\n```\n\nThe worktree may be missing dependencies or env files the setup would have provided.", setupScript, err, output) + } + m.setupMu.Unlock() + + err = m.drain(ctx) + if err != nil { + slog.Error("start queued turns", "err", err) + } +} + +func (m *Manager) emitTask(ctx context.Context, t api.Task, kind string, payload map[string]any) { + err := m.store.AppendEvent(ctx, api.Event{Kind: kind, ProjectId: &t.ProjectId, TaskId: &t.Id, Actor: "byre", Payload: payload}) + if err != nil { + slog.Error("record setup event", "task", t.Id, "kind", kind, "err", err) + } +} + +func (m *Manager) remindTaskGuidance(l *live, text string) claude.HookFunc { + return func(ctx context.Context, input json.RawMessage) (map[string]any, error) { + failure := m.takeSetupFailure(l.taskID) + if failure == "" { + return remindGuidance(text)(ctx, input) + } + m.fileError(l, failure) + return remindGuidance(text+"\n\n"+failure)(ctx, input) + } +} diff --git a/internal/agents/setup_test.go b/internal/agents/setup_test.go new file mode 100644 index 0000000..83387d2 --- /dev/null +++ b/internal/agents/setup_test.go @@ -0,0 +1,91 @@ +package agents_test + +import ( + "os" + "path/filepath" + "strings" + "testing" + + "g.fc.run/misc/byre/internal/api" +) + +func (e *env) commitSetup(script string) { + e.t.Helper() + err := os.MkdirAll(filepath.Join(e.repo, "script"), 0o755) + if err != nil { + e.t.Fatal(err) + } + err = os.WriteFile(filepath.Join(e.repo, "script", "setup"), []byte(script), 0o755) + if err != nil { + e.t.Fatal(err) + } + gitOut(e.t, e.repo, "add", "script/setup") + gitOut(e.t, e.repo, "commit", "--quiet", "--message", "setup") +} + +func (e *env) waitSetup(taskID string) api.Event { + e.t.Helper() + seen := e.waitFor("setup.ended", func(ev api.Event) bool { + return ev.Kind == "setup.ended" && ev.TaskId != nil && *ev.TaskId == taskID + }) + return seen[len(seen)-1] +} + +func TestSetupScriptAndPorts(t *testing.T) { + e := newEnv(t) + e.commitSetup("#!/bin/sh\nset -e\ncp \"$(git rev-parse --path-format=absolute --git-common-dir)/../.env\" .env\necho \"port $PORT\"\n") + err := os.WriteFile(filepath.Join(e.repo, ".env"), []byte("SECRET=1\n"), 0o644) + if err != nil { + t.Fatal(err) + } + m := e.manager() + + task, err := m.CreateTask(e.ctx, e.project, "with setup", login, "main", login) + if err != nil { + t.Fatalf("create task: %v", err) + } + if task.PortBase != 41010 { + t.Fatalf("port_base = %d, want 41010 (41000 is taken by the first task)", task.PortBase) + } + + ev := e.waitSetup(task.Id) + if ev.Payload["error"] != nil { + t.Fatalf("setup failed: %v", ev.Payload) + } + want := "port 41010" + if out, _ := ev.Payload["output"].(string); !strings.Contains(out, want) { + t.Fatalf("output %q lacks %q", out, want) + } + env, err := os.ReadFile(filepath.Join(task.WorktreePath, ".env")) + if err != nil || string(env) != "SECRET=1\n" { + t.Fatalf("worktree .env = %q, %v", env, err) + } + + _, err = e.store.DiscardTask(e.ctx, e.task.Id, login) + if err != nil { + t.Fatalf("discard: %v", err) + } + reused, err := m.CreateTask(e.ctx, e.project, "reuses ports", login, "main", login) + if err != nil { + t.Fatalf("create task: %v", err) + } + if reused.PortBase != 41000 { + t.Fatalf("port_base = %d, want the freed 41000", reused.PortBase) + } + e.waitSetup(reused.Id) +} + +func TestSetupFailure(t *testing.T) { + e := newEnv(t) + e.commitSetup("#!/bin/sh\necho installing\nexit 3\n") + m := e.manager() + + task, err := m.CreateTask(e.ctx, e.project, "failing setup", login, "main", login) + if err != nil { + t.Fatalf("create task: %v", err) + } + ev := e.waitSetup(task.Id) + if ev.Payload["error"] != "exit status 3" || ev.Payload["output"] != "installing\n" { + t.Fatalf("setup.ended payload = %v", ev.Payload) + } +} diff --git a/internal/agents/tasks.go b/internal/agents/tasks.go index 6a5878d..9883262 100644 --- a/internal/agents/tasks.go +++ b/internal/agents/tasks.go @@ -85,6 +85,11 @@ func (m *Manager) createTask(ctx context.Context, project api.Project, t api.Tas if err != nil { return api.Task{}, err } + t, err = m.store.GetTask(ctx, t.Id) + if err != nil { + return api.Task{}, err + } + m.startSetup(t) return t, nil } diff --git a/internal/api/api.gen.go b/internal/api/api.gen.go index 1769b45..15973a5 100644 --- a/internal/api/api.gen.go +++ b/internal/api/api.gen.go @@ -810,10 +810,13 @@ type Task struct { MergeCommit *string `json:"merge_commit,omitempty"` // MergeTitle The title of the squash commit Merge makes: the task title until the agent sets another with set_merge_title. - MergeTitle string `json:"merge_title"` - ProjectId string `json:"project_id"` - Status TaskStatus `json:"status"` - Title string `json:"title"` + MergeTitle string `json:"merge_title"` + + // PortBase The first of the task's block of ports (port_base to port_base+9), passed to its setup script and agent as PORT. + PortBase int `json:"port_base"` + ProjectId string `json:"project_id"` + Status TaskStatus `json:"status"` + Title string `json:"title"` // TodoItem The title of the TODO.md item the task was started from; absent for other tasks. TodoItem *string `json:"todo_item,omitempty"` @@ -2606,148 +2609,149 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H // const string: with thousands of chunks the chained `+` fold is several // times slower for the Go compiler than parsing a slice literal. var swaggerSpec = []string{ - "7H1/cxu5seBXQfGuSvbdiHKSTepOrvvDa3s3flnv+q20L1WX22JATpNENARoACOacfm7X3U3MIPhYMSR", - "LMnO2/fPrsyZARqN/o3uxsfJwmy2RoP2bnL+cWLBbY12QP94ba2x+MfCaA/a459yu63UQnpl9Nk/nNH4", - "m1usYSPxr/9uYTk5n/y3s3bUM37qzni0T58+FZMS3MKqLQ4yOedpphN8EN7FoV6sQPt31izA0b+31mzB", + "7H1/cxu5seBXQfGuSva9EeVNNql7ct0fXq9345f12s/SvlRdbosBOU0S0RCgAYxoxuXvftXdwAyGgxFH", + "smQ7b/PPrsyZARqN/o3uxofJwmy2RoP2bnL+YWLBbY12QP94Ya2x+MfCaA/a459yu63UQnpl9NnfndH4", + "m1usYSPxr/9pYTk5n/yPs3bUM37qzni0jx8/FpMS3MKqLQ4yOedpphN8EN7FoZ6tQPs31izA0b+31mzB", "esWgrUFWfo1/dcdyvl5ciQ1I7YQUvrZaKCdsrbXSKyF1KbQRzluQGwHXoL1YSyekteoaSrE0VtAIM7n0", - "YGcOFkaX7rmAD8pDGcb1axBbBgwHXxkN00kxAV1vJud/m5irScFw4I/04eTXYuL3WyAArdKrSTH5cIof", - "nF5Lq+UGF/W3yZ9pUT/hd/znRRiF//U6jPWpmFTS+RnBP5O+j4W/rkF3wMT3xc4aD0KKSmkQ3gjlXUDF", - "pJgsjd3gUJNSejj1agOTYmKs2OFQygvnpfVQTifnuq6qw+V8KiZbVSIg4XelPazA4gMHzimjZ53n7XfO", - "Sw9EWU4YLWjbL/iTZrLu6i7XIMKgJ7gC/D4DkJfuamjSa9Alk/bBo0/FxML7WlkocUcS2NsBm8950XEJ", - "h7tSRCJtN9/M/wELjwCky+xT98KC9FCGvc1uTW9J8Zv5PrvipbFXzYgH1KL8WoTnS2s250Q6vMYTJ1Qp", - "zJJ+IiragHNyBfQDfiSuALZumgMpGbM/6wv6+sSJpbIu0Jew4OoNIIspFyCIW12IRe2F9KJZSSFqXYIV", - "UmjYhbdn7Y49F3LukMORq41fQzNUHtoBUtmYEqo++D/D+xocCQV84bmAzdbvEwnR4K+Epawrn53T7DTY", - "/uBI4ZVZKS12a+NAVCBLIZFkGDPKxflwbVIgZSIrRLbJzGRNRVwWpZTabCvYgPaAdIwT9IVUyp1dAN/X", - "UDfysJWzO6k8ylmGamkBhKuMD/uEWFkYvaitBb3Yi4VkumlAKiukbB57UkyC1J4UpKMqGC9IU+66wBW8", - "4aF7v/97nKv35Odm8t6jly00XTFzoNaSDaINvGl7WoEUsbGoZF1CdlN6pH5ckB0IMKa7RJAxleeGbsUb", - "kVBH0BSppMqKOe/lYr0JtsOBkJMBUxmmA13OUE3lNYrayFWGKOnnc1FKL8UvP/+QxfOV0mWK5aWiNZVq", - "uZzEgfGfcmVJLSLKEAVabt3aoFCvbZXdlA3YjczRQRjsXLzlN4QztV1AFrytzBk1COS5sLA1pxYq6dU1", - "CHxzKsKSpea/BL4pFOv+IBR2xl55C1CgODRV7UEYK5pxyA7ISww05fqLWS7PxUqhqL5WSCPCSr3KryZi", - "7QbVb/0N+3yTBsdtOEr1tNs5uvy2MvMMRbKZO+PXPw7r2HvUy6OZtwPc7bjwpdxmTOhVZeYyo9neGudJ", - "oid2sxdGL0DIhTXOCVlVQb2lmjTZuC3YWSvRZFkqHFtW7zoA9L8bDcgWbICgEFewh1LM9+GHBKKIgQN0", - "hoV3wMyh7ZWyr7W3+z7q1EobGuwQd8gY/JCNAMDvz8V0pTz/TC4IPmGDBD4sqrpkvnViI/1ijcY26YxS", - "WVh4Y/dCzs01dNl0bkwFUiOYqPXy7KX+CUPChGx/9U8SFvO9B9rIhqCV9n/6Jruzbr+plL5K5ksgiXxz", - "6IxI3yJDKFeIpakqs6MNFWFE4fE15+XeRQEWJdeUkXV++HIF8jrgOb6KmNsapb0T2uzWYKEIyIRrtYBC", - "OLO4AkLwVm07blupUA8GfUATjjQ2Iplc7rfwigZJf/mOB0x/+okHPyRL2scwY4vosI1FQ3MDlPqDcmh6", - "9WkVsR7J1sPGHXPTG6pvNnQirZX7YfWE1mpDrEVHtXT2xhrjU7sVH+JvWd3hba0XKNSOzEf++wY5KywU", - "aUOLHVgQFlB6oNPa55sD5NPKigZZ6fw5hDeRkS6ug290XKLHF7NjX2fNJYnLzfI5OQazI272XVRXNJbG", - "ui0XyFk6mrsE1onjMIsjwSdF7QB9oqVZ1G5ab3H6kv1N9nf8GvZiDpXRK+HNVPykqz1zO36JPoZjLwg2", - "AwbUvjIyhbpF7NYa/HPQGoH3HdQMC8Fhu6QXPng/CWgswga2IB5V2yg6Xq7RuspQQ9CpA4p0rrS0+7yU", - "LqGCGz41VTnL87kFFFFhu/AVMYclch4xMj280ajNOpe1S81xWZbkjm1MqZaK/iRw2R/k+cMUswWhJue2", - "5nk7zFYkuEuR0SBtcCvaIGh3L1pk9+UUG+ROn3jxy+V3p/9LePjgn9N/kZhJGObV+jDWglofQ6jwwWfH", - "uEG6EmhrU5VOGGY+CMGZEAXCJY2XqEF7BRylMwfwhtD9Cl2yHq63aCJllzSArzxUPEx2apRMmXk7siMJ", - "LGmK/g7GKcN3zCJqtfZiKzUItzY79zx10+KLFG8NAobFnc8HN+fHFPmldFeXch7ednn6xCcsflFkb2vP", - "4bgCbTBjS7BTcdlYqwgWf8EGXCOGRxkWKTwHdsVgDOUyIGgAf719OCYKCBGMvdzmv9Fz8+GNh01G4I5R", - "svPKLK6CFdbn6Luo4IGJDsMYFItElOFyt8YizURYgWyVYmKlh1mlNvkDia7u7EX7aPRzQU7oBy+evJX2", - "qjQ7LXbKrzmytzZqAWi80/mCdOLvp+KJeEqy7u/ijP75P+I/t2pxdWo0Gex/PxV/E7+m7/3tw6/pe1Lv", - "RaWcF0RnTwsRASrEbr2fEdahLIQhgJ14AnKxDgCdOBqpJeinhdjUlVfbCsQTb2uKYjfzPEX7dWE2G9Al", - "lOIJrmwj7RWUcYEnNN7TQsgmtuWmgrF+zoL9CYtJLasmWm6WMUxKxgyPrpEEqmr/dCo6m3Uu6H9TkW7Z", - "eePwtr/yTE2kGR+c8gNWdk+LMNL/05MiZxApY5Xfp5QUkDkpJqsQ9YNrBTt0jfYqTzY3m1UWnKmub0n2", - "zUcDUZPOMeUo6UOs/XP4LCeDmkj30VEoCHwsPuXXFmQ5PjabYDEN1PbETjpyY1o2G5mIoNTQjBHcRAKl", - "OBwUhYyvsi8NPxP/LwkOipoq/YY//93hlhxgaTS4Lmcut7w6GuIkdp0hl7sI8xIqdQ32flQArmGI+IIg", - "7Cy1T6GHSnjQWAxhndHbe4kffCom6LKNJP+4mvBREwZJN+6ow5SjsUcghZE70dWp/OA8qk4HOqqv5wI+", - "yIWv9gL1I58fNeqy1XxBeVLoI3kJdWV8qWOajd7/Azg59EaWKuo2dr85skPCaRrgZs+/B8N5eCyr5HtJ", - "/n1iOgDqnIiAfDzobkR4SGsNmdF4R4noMsza5HZsg5XFAcJiUiq3Uc5lFWOiLDpDAA4gtduhKGjHoL9d", - "vQXroBww0d6yOTFE23QIlCG2byszF6p0YmnNRtRbVAv4W9HfTjTceBjeJadKaHb/dgQ1cHL+Fn8OAUDl", - "2CiSuhSV9GCRrN1U/DVknZRquQQb4PadvA8avUh/FG6n/GINLo1LRAMsRI7ytJWl/LdyL+YQ4pWcBhPw", - "YkGs1DXoEf7GkIf7o/FqGfKo3llYulzcXC3WlNqgkJDY+MVFlIw4CohJsa3dWuhkuClbE2mAItgEs8iU", - "mdn+PT4S0iEvEnPGD88FGspT8ZMW830moSFxcsjezIzfMXB5LfkBboDxR6NPI0iNgBkYpjWSMwOldvVN", - "sLBVn3OdkWhdvdlIq8CNiIZktiBdajtVg8HuEnI09E5qGAhXUHw1GztHh2e3VhVzx9yaHZLRTunS7CiW", - "Tp82x1RhIAGcLIJspHQjE1qPfAQKIkz5pVivFmorc/G1UrltJfezwYOulfIz2EhVDT6Nn+YyNHYxWY4Y", - "ai0pWOfAC0nn3KoE7ZXfP+fYtMe3V+CFNsJbqSqwWZlC4ezjxg+/VnTXmMCcLi6LOHYbHiWFLPD9bG6l", - "HgjCDVhBgztnYWP80KOtmY0L6pFCD+hqP+sB3Ex3u9PzgOIhnXvD2kYvoAf7ABzeLEw1cPZ0K/da7ohG", - "ah/zQDkJ7xvxF/XtDdHMGNmxsAB13YTiD5Yt3UBWz7FM0Ox5dZz3xIllXVWiAr3y6865dT/wPTa/s8l/", - "6njYwT2mdTCyAnBHt8Xlkkrq4GrcNQ/igtOVEQkcq5Wl3KKttDB1VaK02krryBsoFf3bwsKstHIgnNIL", - "EPO9hZjBOyZhAle/CGcd/d3YGEdToD5Ac61AIwVcCB2Pjgd36fnTEfc/oLGBLLsVtVv/BTL5Gtt6XqnF", - "7AoypzTfSgd/+qa21aR/2l9rhNsCGufi3env//gnzi4ILNI7XGinGQLvop4nk/d4uGZpMY8w3ZQBnYx0", - "4gR+KhwsbP68AHRJkOePTn7/xz+Vd52YP0aiOmoNN0A0Uxa85By2Qsbll3B1ttZstnd1dnLx0c3Wjzia", - "4veyuIjph3c7lliYzUb5mVvLXBo2P6XTPQuAb4Ws4620weRL0zhOnPjz6xevmsKAnXTCyyvI57XexQzh", - "DPpwHJ8/Dzpx5C46H4o4GhsuphwSWEHiheiFBQjnmpw75HyzLlFv20TIEeeqQ2ZOH+B3xpHMP0jKjGC6", - "gun0d8/DIfqSylVg6c5QZp/h6+7sY4gHfzrD784+6k/TW+YlFJO4twMP1WqVy+gI3vN5wjRcRUKxHCqS", - "6QSivDGVWMiqcs/JsZ+BLs/De7igEydAl6dmeUpuP5PelD6b4WcFep+zdb2RHBNAErFCbrcgLR9Ho5sf", - "kcd0h5oMpK0UzlGrquwklcdMm2IS4cE/43wogOKE+DtONzLtK/LkJePubTPPwQN0FV/TrIcPjKleMgwH", - "T164qz8HiA6/YQCPZHdnDg30pCMGEnpI+a2lhKNW8UWTu9FLU1LXMCPCzRs3DF2oTMqJ8NfXYPeB2mIB", - "E1kwKImsJD+6EKqsmsgPOqWUSFmOtj465WW5+H7Imb1pDMqrRXNtPiNbdGRWRlImND7nqEKsEk4yGHuR", - "4gqc4BILX+1j4uxAmi57NgP7tA322awN6Yw251yI5NRQziiDNx9C6VaMWIMauy0VkVtXRLlJR7fsge9U", - "VbFoH596UFv9Myxz+3wQJzpio7f0n3FSWCH1DmEFnUaHYiYO84y2wnn3bkZhzI3WZlcIU5UIRIyI3s4i", - "vwFNzsFsUalIfpnEYNa1t1L0mVLL/iL/bHaCjgtks1LSHRu5FytDcUpTeyG7VZ0hAqy8YMdBkDlQL67y", - "nPBPs5mrnCy6iAImJAFEECg8qo2oqBaDGa/gHMcDXiTJtZaOCk/jtvB+j9qU/0ugHfWPEvwnAqknbBKm", - "L7qyurvHXYFzSIkHvB2kZZeZ+oK+RXN+6/siJ6d4LqW7yuTgSQezULHST8sZDlgtKuOGyiKjTUkJSGhP", - "bsCuoGQ/2y2kDfrmdsG1L1nTqWMOX2MmBwOe3xTS59njxkLOJEdLObIGkxHxk0whJpHcraowEfUztmBy", - "ZipuDK/Rva+lWzdeDW9hiAQKpoTn6aEOwsMga+PXJF4M73QWPgbEK18NxKroUYPnDjBv8VuxkVfgzlvK", - "4g9q7VWVmNkOKGea0UXSxoGfJbPnU22PpDj3E25JBEzCusJpJJP2SDsY+ZGNwRdxrPant3HU9qdX7fgo", - "0yIi+z6JKc1MhVy8I2i+/OnVT9MNH+V0WTaIxdvTYXR3bxOC7ubw0Mq6BNOIosPxi1aAJYnKt4lSI4I5", - "WdzlpWMejZFNLPvHqH+kDcd/5+EA1a7gFEeI2Cbk8kKac6IugxUcd6TaGw6owLUydev3njiaL181rqpb", - "5BUlSfK5nAYLuYVTpdCyW50inVBLtB7snsUAlZA4L1eUWmg7cnMY/sNzP8R8gCMubXD7BkJdQzxyeNZM", - "rw0NfskJw5HvvZWaUYKkFegmAlhM6MS5pejRomB+mY57Kecvm6Ev5fy7MPqlnL8JE1zKeTzCQnFwaUqT", - "KWH6oJzPnpADc3GPALmrRyMXpKdDjoNio+SgtyG1cXayKQ1lCR8zygLgcfzs3sSx+kxryn3oi9HPtsUB", - "T9DtLUF7OvYXFjbmOunQ0Wf28NGytoQ2OlDI2uWwiPHpjOCFD00pgAZp0d1Ygyypmo8KFSN8GTWr3FCi", - "dqIKhgGnQyoEu2jsftxXyg0mAz1kKkXshKPbEXkaUTwjzlsEDG3YBWqVTPnXYAx4rL3ACsy07u2dWT64", - "cj0Yj4SKH75pSg7aX3QwPzKnZ5t8CsdLfhANvFQnUYa1tKBPBuy/vJF7pC6qUUtdOEim8ZScrNTmKtGa", - "RNQA3QHD2dJGeU+p5SQlkygWny+hIHaIjEGoklEywWfp145lRn62bpltBiu9Q7hN8O1aRdHA1y2mSgHL", - "bnnIDX2wVI/RGRnFJM2emm1jNtZNGqCfvvU5iR1ZCIaQ9gsVTWbK+e+KmcPq+LGpJyEw0d9D8ENQHJat", - "xKhCEOYxVsCGB/7VPAkyJV+AcMfOU6PLOEOWfVhYHxefiFGXJjHWJvO9BRJ6lls8TZ5Nn02fcUowaLlV", - "k/PJH6bPpn/garQ1oe5MbtWZLDdKn7Wu2gpI1SCKiT7elJPzyffgL6Kb0EnG//2zZ/fWsS3MkGnZdgH2", - "GqzgBlfkBNROosf8iV6mdcwrw1VnW+MyPvuFpy4JbesSY0XtqCGBjFmbXHyGSjmeQlq54/efk+bHjcBH", - "JXhYRD+PM9v2HjiNbVM7L+Yg3v34fSH+7d3r7wvx/Zvv0KL/K8zfTcULzxkNfxRv1bdcKdPF9S/NIfKE", - "6QKc/zYYZwmeCayzlVp2EdxEetoSyB6x8af/2MLqrt9u9Z0/3cF8e9tvOwzibQ2femT4u3sjQ8J8hggp", - "GQGpqBRIa1Nkrm+Y/HPDNfCdNRkn3/zuD6PfPiDss4/4vzflp5tYtKGZGxn0N0Y4/U1ETJ44Zlm27Im5", - "A4qIycPmfnOL7UK5auUGPFj0Tj9OUPvHAmDWhRPew8khNRfJmg5X8GskA+5rkGx/TkSeUsCJX52K13Kx", - "5n9wXz3luBELvH/ObauClKMWEEI68W8XP/045X+6cIz+g3T+lH45ffNKPAmBCX72vga7F82yn1KqugU0", - "QJBJ+EyEjiwiRBQnDoqwiAXf0sc8hdi7wQKlzzznzalAlv+H8NSWiIc3gx+zkFVFjR7aThDNMmgIqQU1", - "kRArE8YwbZuHnBDmJDgeYpLfWvRCybQOm9vB1KTI0enQeeunIoxJGG2HJDTfz1CtYzRMawOfUre+zHdt", - "5vWvR4UOuvFMwqehB2iHk4/yLZMof3oH5oxMxIGmIR560xY+FGKtVmtwXsRixxAOeNKU/66kh0JwvWoh", - "lnv1tOB07XAoyoeh4jtVId0ILa3lGnYRKqsskaGMtfgnTqTdFXHYHGX+oJyP4awcWR5sXidIfOut/wyq", - "iUWg45RuWuk6gpxu1u7jK0QHwmr93mDSLyhKy1UxMS6mrGgAnYpX7PU73FW0umOpxyH9nXUWlzdXX1C9", - "lutkO/HcStOPrp5vFDd4FPFlS0f/nYRDfLUpCtcLOqJGNVBWENoTa4oGoV7o17qQJK51LB7LkWOo2Y0U", - "OWyv3t0g69QGjzIGvzS5oJURug01RHBrY/EWAg7f/t93FYdnHxHEI6Zlu/wHdAATHOdxSvHKxmBrWe9h", - "rDVGy92sNQ59DGHzLTwkGinWNYBBtJSQxcnuCYioM0By2CfAef8snUSWHoCh74qcyLIBObfj2JarNnC2", - "jHVyQxTAhXQPuE6eILPQpj9iSgonrtfupksdh92oF8aW7Dxw9izXwlI6Q6dQr201VHDQHB0IOZ/2De4U", - "J/dPcAk6Ho/WBvcgCSVwa7qHVQ8d0kRr/iyYBDfFy0CXrg2NxUqGA6Jp/a2CD5G4yWbafzp3Hif+2pSE", - "0qvKiY0qT0PDmk4V9RqqkiwVF0sovBMaPnCr1pxFElKjf2Cv5SGIqVsWP4qofn9vk3da+Q/QVgf/KUJ3", - "oSjF2Aa3lBz4ObKOCCpmRg/6Vpc3EU+TWF0cOE8vOEWEjkdFbMvOVi3RBJKcC2fD3C+g7ywhIcS8yslj", - "mIrdHRpnLbZXBXSRm57UhNqyLLN6J3ZUwJ8W7x8ybNPPslfE72KOaM4K6J8+PQxb5U65/hPaBqgWTxsD", - "4Ub9uksyTljPKu6wTq6oPiyKb8XqHj23ohWwzGULqU+82LTdnXsquK3xf5gtbscftbXfDKEGys/cg9qt", - "T9PKwnCUiOKlb6/9TKkuvXrKUfGXpAjxFm7EOExQAg4li4V8UmFhpZwnXz2Yb1nl/nN4DRV86MmAhhpK", - "hRQpTdvkjtcg4td8xZGIKxRyJZXm+C915suQ2IuyzKDxQSjtcJq7E1yC0ruSXFr6knUJUFG9a1PlH15J", - "xTS4EfrpRVVFI94dkFV3EWwQxZEfaF877REe+WiwQVpeR2jYRUTdA62cfQx/HQnNpPh+IMV4ZN3dNd93", - "GKbBwt0iMTl0njX1goPMeBmqVB6eE6nCZKSZ2B4V0AoOWyF8Tfgf0j3MuS4tT06Su5v86Cazol1yP6su", - "J34u+Qqdh5A9Sdb0IwseppFhqYOIfLQgQp6jQir1oPPHLolZplnS8UqGeI47tNdUl0m9zblJdG/rvwdP", - "udwPKANp/Bvi0nxto/N0SeNSVg7aNgGZbHFtIiL+lcSmKU0rO7+Y6OAz0tCGMi3G4W7KtoxxSDovCDGj", - "psCnSEMH+CQ0Gkhz3fEj7qps2zsI0fJdUnsy7mgWy6W4qIlhWocPndzwSPnkAml9k4n/QLKqyRv/7Ymq", - "ux6HoQN0Frr2DFpboenPQ1pbYYrBUJG9Jn/tP168e/NKcBcgcQV79veTeTkn6C/A99/gsG+lliuw0+Dl", - "zbsplDEIdfYx/HXE8owxrgfExZhoZ3PR4YPI0QYVd5OjOZyehaDmOCF6RwCGhOgLd8UiKu1ocRKlIMvU", - "tdSlWS7Fk5WRVSFKWKgQnqWsDvxFluj4u4IzHZqMgYLvFnsaeqpycldtdXg5bZ+qXBPRLcN1PSgf4uMQ", - "uSZBSqKVkmupmWuQ3Y3EjuAGSd8V2hn5+5LRP0i+jxusj9ATmtIiUkMZdjXc3kK4qwDMEqvSHqytt1+G", - "XF/rcM4YmozwsU9vS99EIL+STW2QRjvadGL/sjvZOfV77I28YKZlJmdaZ/5Vrpt/HwVATKRHOZULVuuy", - "bYL0mzzlIySuW4HxlVpVSVOxI/ZE47o/lAt3g2mamKX3bUHwyu9mPnSRd7ZoS+6zjvbrtp48fy2veNLU", - "yRVNtXmt+S+urNHU9Ap/x/XCgs702ytFnwqqdeY7fjsF/Leo3x929E1sP0GdRMmD5ubnJBuSroBmp6ke", - "+QNnFXjhTb1YQxmSzGPpfNF241OhcDKpqlfaeZDl8YVwgQA1LxjqQRAhv6kDAS/Iedhyd7E6a58EVmiL", - "2Q9obKClojdxGSFHjhcX96FdUCFcjZvhwg2J05geEGsF1iDLqfjReCGryuwiWuJiqJlQLuUX9+xYrvAh", - "8AmG9DmlHrVUQwYdaVClu3snrAwno5LpnMoM0trSLIDtvdo9GDsZ9JnuNvHb8y6Ss7vNFyU1/+L9OXGx", - "xWU8VmND1Wh4Ogiwh+3npt5/ZrwzEGFGbL4De0pBOXQKvrYU18cWzOZU1n4dGtcNBkHpEN/FbjCRdrl8", - "JVSqtMlPHQHedtAQTyiHo41cNZ+QDFrLkqocKQ+EM7db+7Ptd6esQCw8bW8qC3JC2cOo14tYWr5PoUWp", - "HJrNURMmBj5tYS+keBnRAuUpfh462Odl3kvzIqDwUQ5AkzsARp6+tJv89VsKZbjPcpAUa01XnlIbAdx6", - "uv0HuXkOfgeghaReAqzumhOZVUc1TYdUF92mOSo/IvQrGL/goUoVbnnz2eOEDfnscZp7bW+X53GPyafx", - "UtOho0TpF+vfttAulR1kkZ90eut3YsomxnTRvKHAxZtMqQRsvifpOhWvwy3hdJUwWdFUU1PB0gtT++ei", - "savL5kZxfCG25uCoFzWDREFM1yAP3UaPc1tTr9ZiOuVSsnCrexG6PNcuX8PTMK09ZmteVNKtTx3gS55d", - "hBG3ryMsbSu09B72Gzjwy3BNcrX9AN80REHNpT1fyPPb5iLqsDcuqHSXeYez2DbmuptJ0LZX02X0OWPr", - "JjRilF6xIxne5+NCejtUFFvYSJUJMIY+gl8yRNG0SrxbsOJ+4jfH6tAT5EJaRy6Fg/eH6d3vJJuVW+lc", - "PLOtJDUUfi/mckEeIH2fT+1GbN1Yo/1w9dTUdrYz1EZ+UJt6Mzn/3bNnz+iq0fDPzKCPUuFKmBlj2/5C", - "1xFwE+mwaU9idOOPz549/fqtXTRcB0nyhbCwqitpw/X42cDYVFyGS/It+Npq9JW2XJ/t1D+BsfNccKcJ", - "PuQKbwptYu+IB1fRaNTdr44+ooU/J2f5fm3Zl2GgAeGIO/Lb1sPUJWWYCZrGR8gDTXZdz6JFC63p/xiv", - "q9Fl+LhzCTlRunJo25mq9lSoPkRrz4Ma4Ju2UdYHwqcIX3PU09711/Jlt5FSQW2UCKSL//i+iJfZzvcC", - "PnjQlAgwzD9vNnxeNKZxwv0zwL9q5x13vfqfHzbVF2/cg6QbG/fcidf/8NuUDBS+e3z7/KKtzqMsDo5W", - "8gW8obv9qdLZTBGhkUKqal+Ey+SosfmAra+0NxS+iucgylfpSU54P+mMHZNLho+hYtTyIOgZopz5sCbJ", - "Tg6IdsIFbdiwoBobqo3hKky1UroQS+n86dLYnYxF1S1gdFm1iTcnhvCCTTyfnMsTgwYtvsJlAr0URka5", - "aq/1aJNOsqW1dgV5F+hxj745IH00Y+brPgo/iyzw+KzZJIEFEg2saSJib+ANZreDg90iUexS79EeXlZq", - "4dl2sLACTXSkVyL8CSUb0VNxkVyUF8BJU9PoUMPF5JFOUbnyIZVaw30Q9hv9X2R9H2SdqQXvu+5ffUV2", - "hzMG6tO/Hr/4WNaV7i5kKDskNFooWUM1d1N2MyvzGXicJ5Wm391/Slb3ks5HTmwfw8BJAuu/CK/Gyw3H", - "BPSSayS7cTxqNImeYHq75/jbLq4AScznL6J8k9xDmVxbQ8pHZS9JCpdbml2M5gbfE03MoY56Fw0eHkMe", - "NResju0OEaH7+iNxDai4X2dLY68ezLopsgPpMWN0IrHHio1i1Uq4pzZXrUiauo2qJDlNzBBF04aUO+91", - "ZDG5PkhgStfBqE8GCK0bjL4G6/jqDU6Lct6Ypoqum3nEdx+EJLnkFrirp3z6kYipk1Sqx4awnQSQ5iZj", - "5Q+trJQR+WozLq7iKoL2ctxwe50NvRvCmuL4ki4Eaq7Qy7Hod8ZeXbTJW/9VvHRUsNfJHRdZud70ATu0", - "AfjSYiJK1PmDfkBpwOkTn80BaW7YeMhuLXGOoY4t4Xm8gGL6LxvV+fTp/wcAAP//", + "YGcOFkaX7qmA98pDGcb1axBbBgwHXxkN00kxAV1vJud/nZirScFw4I/04eTXYuL3WyAArdKrSTF5f4of", + "nF5Lq+UGF/XXyZ9oUa/xO/7zIozC/3oRxvpYTCrp/Izgn0nfx8Jf1qA7YOL7YmeNByFFpTQIb4TyLqBi", + "UkyWxm5wqEkpPZx6tYFJMTFW7HAo5YXz0noop5NzXVfV4XI+FpOtKhGQ8LvSHlZg8YED55TRs87z9jvn", + "pQeiLCeMFrTtF/xJM1l3dZdrEGHQE1wBfp8ByEt3NTTpNeiSSfvg0cdiYuFdrSyUuCMJ7O2Azee86LiE", + "w10pIpG2m2/mf4eFRwDSZfape2FBeijD3ma3prek+M18n13x0tirZsQDalF+LcLzpTWbcyIdXuOJE6oU", + "Zkk/ERVtwDm5AvoBPxJXAFs3zYGUjNmf9Rl9feLEUlkX6EtYcPUGkMWUCxDErS7EovZCetGspBC1LsEK", + "KTTswtuzdseeCjl3yOHI1cavoRkqD+0AqWxMCVUf/LfwrgZHQgFfeCpgs/X7REI0+CthKevKZ+c0Ow22", + "PzhSeGVWSovd2jgQFchSSCQZxoxycT5cmxRImcgKkW0yM1lTEZdFKaU22wo2oD0gHeMEfSGVcmcXwHc1", + "1I08bOXsTiqPcpahWloA4Srjwz4hVhZGL2prQS/2YiGZbhqQygopm8eeFJMgtScF6agKxgvSlLsucAUv", + "eeje7/8Z5+o9edtM3nv0vIWmK2YO1FqyQbSBN21PK5AiNhaVrEvIbkqP1I8LsgMBxnSXCDKm8tzQrXgj", + "EuoImiKVVFkx571crDfBdjgQcjJgKsN0oMsZqqm8RlEbucoQJf18Lkrppfjl7U9ZPF8pXaZYXipaU6mW", + "y0kcGP8pV5bUIqIMUaDl1q0NCvXaVtlN2YDdyBwdhMHOxSt+QzhT2wVkwdvKnFGDQJ4LC1tzaqGSXl2D", + "wDenIixZav5L4JtCse4PQmFn7JW3AAWKQ1PVHoSxohmH7IC8xEBTrr+Y5fJcrBSK6muFNCKs1Kv8aiLW", + "blD91t+wzzdpcNyGo1RPu52jy+8qM89QJJu5M379w7COvUe9PJp5O8Ddjgufy23GhF5VZi4zmu2VcZ4k", + "emI3e2H0AoRcWOOckFUV1FuqSZON24KdtRJNlqXCsWX1pgNA/7vRgGzBBggKcQV7KMV8H35IIIoYOEBn", + "WHgHzBzavlf2hfZ230edWmlDgx3iDhmDH7IRAPj9uZiulOefyQXBJ2yQwPtFVZfMt05spF+s0dgmnVEq", + "Cwtv7F7IubmGLpvOjalAagQTtV6evdQ/YEiYkO2v/kHCYr73QBvZELTS/o/fZnfW7TeV0lfJfAkkkW8O", + "nRHpW2QI5QqxNFVldrShIowoPL7mvNy7KMCi5Joyss4PX65AXgc8x1cRc1ujtHdCm90aLBQBmXCtFlAI", + "ZxZXQAjeqm3HbSsV6sGgD2jCkcZGJJPL/Ra+p0HSX37gAdOfXvPgh2RJ+xhmbBEdtrFoaG6AUn9SDk2v", + "Pq0i1iPZeti4Y256Q/XNhk6ktXI/rJ7QWm2Iteiols7eWGN8arfiQ/wtqzu8rfUChdqR+ch/3yBnhYUi", + "bWixAwvCAkoPdFr7fHOAfFpZ0SArnT+H8CYy0sV18I2OS/T4Ynbs66y5JHG5WT4nx2B2xM2+i+qKxtJY", + "t+UCOUtHc5fAOnEcZnEk+KSoHaBPtDSL2k3rLU5fsr/J/o5fw17MoTJ6JbyZite62jO345foYzj2gmAz", + "YEDtKyNTqFvEbq3BPwetEXjXQc2wEBy2S3rhg3eTgMYibGAL4lG1jaLj+Rqtqww1BJ06oEjnSku7z0vp", + "Eiq44VNTlbM8n1tAERW2C18Rc1gi5xEj08Mbjdqsc1m71ByXZUnu2MaUaqnoTwKX/UGeP0wxWxBqcm5r", + "nrfDbEWCuxQZDdIGt6INgnb3okV2X06xQe70iRe/XP5w+r+Fh/f+Kf0XiZmEYV6tD2MtqPUxhArvfXaM", + "G6QrgbY2VemEYeaDEJwJUSBc0niJGrRXwFE6cwBvCN3fo0vWw/UWTaTskgbwlYeKh8lOjZIpM29HdiSB", + "JU3R38E4ZfiOWUSt1l5spQbh1mbnnqZuWnyR4q1BwLC48/ng5vyYIr+U7upSzsPbLk+f+ITFL4rsbe05", + "HFegDWZsCXYqLhtrFcHiL9iAa8TwKMMihefArhiMoVwGBA3gr7cPx0QBIYKxl9v8l3pu3r/0sMkI3DFK", + "dl6ZxVWwwvocfRcVPDDRYRiDYpGIMlzu1likmQgrkK1STKz0MKvUJn8g0dWdvWgfjX4uyAl978WjV9Je", + "lWanxU75NUf21kYtAI13Ol+QTvztVDwSj0nW/U2c0T//V/znVi2uTo0mg/1vp+Kv4tf0vb++/zV9T+q9", + "qJTzgujscSEiQIXYrfczwjqUhTAEsBOPQC7WAaATRyO1BP24EJu68mpbgXjkbU1R7Gaex2i/LsxmA7qE", + "UjzClW2kvYIyLvCExntcCNnEttxUMNbPWbA/YjGpZdVEy80yhknJmOHRNZJAVe0fT0Vns84F/W8q0i07", + "bxze9leeqYk044NTfsDK7nERRvp/elLkDCJlrPL7lJICMifFZBWifnCtYIeu0V7lyeZms8qCM9X1Lcm+", + "+WggatI5phwlfYi134bPcjKoiXQfHYWCwMfiU35tQZbjY7MJFtNAbU/spCM3pmWzkYkISg3NGMFNJFCK", + "w0FRyPgq+9LwE/H/nOCgqKnSL/nzbw635ABLo8F1OXO55dXRECex6wy53EWYl1Cpa7D3owJwDUPEFwRh", + "Z6l9Cj1UwoPGYgjrjN7eS/zgYzFBl20k+cfVhI+aMEi6cUcdphyNfQZSGLkTXZ3KD86j6nSgo/p6KuC9", + "XPhqL1A/8vlRoy5bzReUJ4U+kpdQV8aXOqbZ6P0/gJNDb2Spom5j95sjOyScpgFu9vx7MJyHx7JKvpfk", + "3yemA6DOiQjIx4PuRoSHtNaQGY13lIguw6xNbsc2WFkcICwmpXIb5VxWMSbKojME4ABSux2KgnYM+tvV", + "W7AOygET7RWbE0O0TYdAGWL7rjJzoUonltZsRL1FtYC/Ff3tRMONh+FdcqqEZvdvR1ADJ+ev8OcQAFSO", + "jSKpS1FJDxbJ2k3FX0LWSamWS7ABbt/J+6DRi/RH4XbKL9bg0rhENMBC5ChPW1nKfyX3Yg4hXslpMAEv", + "FsRKXYMe4W8Mebg/G6+WIY/qjYWly8XN1WJNqQ0KCYmNX1xEyYijgJgU29qthU6Gm7I1kQYogk0wi0yZ", + "me0/4yMhHfIiMWf88FygoTwVr7WY7zMJDYmTQ/ZmZvyOgctryQ9wA4w/G30aQWoEzMAwrZGcGSi1q2+C", + "ha36nOuMROvqzUZaBW5ENCSzBelS26kaDHaXkKOhN1LDQLiC4qvZ2Dk6PLu1qpg75tbskIx2SpdmR7F0", + "+rQ5pgoDCeBkEWQjpRuZ0HrkI1AQYcovxXq1UFuZi6+Vym0ruZ8NHnStlJ/BRqpq8Gn8NJehsYvJcsRQ", + "a0nBOgdeSDrnViVor/z+KcemPb69Ai+0Ed5KVYHNyhQKZx83fvi1orvGBOZ0cVnEsdvwWVLIAt/P5lbq", + "gSDcgBU0uHMWNsYPPdqa2bigHin0gK72sx7AzXS3Oz0PKB7SuTesbfQCerAPwOHNwlQDZ0+3cq/ljmik", + "9jEPlJPwvhV/Vt/dEM2MkR0LC1DXTSj+YNnSDWT1HMsEzZ5Xx3lPnFjWVSUq0Cu/7pxb9wPfY/M7m/yn", + "jocd3GNaByMrAHd0W1wuqaQOrsZd8yAuOF0ZkcCxWlnKLdpKC1NXJUqrrbSOvIFS0b8tLMxKKwfCKb0A", + "Md9biBm8YxImcPWLcNbR342NcTQF6gM01wo0UsCF0PHoeHCXnj8ecf8DGhvIsltRu/WfIZOvsa3nlVrM", + "riBzSvOddPDHb2tbTfqn/bVGuC2gcS7enP7uD3/k7ILAIr3DhXaaIfAu6nkyeY+Ha5YW8wjTTRnQyUgn", + "TuCnwsHC5s8LQJcEef7o5Hd/+GN514n5YySqo9ZwA0QzZcFLzmErZFx+CVdna81me1dnJxcf3Wz9iKMp", + "fi+Li5h+eLdjiYXZbJSfubXMpWHzUzrdswD4Vsg63kobTL40jePEiT+9ePZ9Uxiwk054eQX5vNa7mCGc", + "QR+O4/PnQSeO3EXnQxFHY8PFlEMCK0i8EL2wAOFck3OHnG/WJeptmwg54lx1yMzpA/zGOJL5B0mZEUxX", + "MJ1+8zQcoi+pXAWW7gxl9hm+7s4+hHjwxzP87uyD/ji9ZV5CMYl7O/BQrVa5jI7gPZ8nTMNVJBTLoSKZ", + "TiDKG1OJhawq95Qc+xno8jy8hws6cQJ0eWqWp+T2M+lN6bMZflag9zlb1xvJMQEkESvkdgvS8nE0uvkR", + "eUx3qMlA2krhHLWqyk5Secy0KSYRHvwzzocCKE6Iv+N0I9O+Ik9eMu5eNfMcPEBX8QXNevjAmOo5w3Dw", + "5Jm7+lOA6PAbBvBIdnfm0EBPOmIgoYeU31pKOGoVXzS5G700JXUNMyLcvHHD0IXKpJwIf3ENdh+oLRYw", + "kQWDkshK8qMLocqqifygU0qJlOVo66NTXpaL74ec2ZvGoLxaNNfmM7JFR2ZlJGVC43OOKsQq4SSDsWcp", + "rsAJLrHw1T4mzg6k6bJnM7BP22CfzdqQzmhzzoVITg3ljDJ48yGUbsWINaix21IRuXVFlJt0dMse+E5V", + "FYv28akHtdVvYZnb54M40REbvaX/jJPCCql3CCvoNDoUM3GYZ7QVzrt3MwpjbrQ2u0KYqkQgYkT0dhb5", + "DWhyDmaLSkXyyyQGs669laLPlFr2F/knsxN0XCCblZLu2Mi9WBmKU5raC9mt6gwRYOUFOw6CzIF6cZXn", + "hH+YzVzlZNFFFDAhCSCCQOFRbURFtRjMeAXnOB7wIkmutXRUeBq3hfd71Kb8XwLtqH+U4D8RSD1hkzB9", + "0ZXV3T3uCpxDSjzg7SAtu8zUF/QtmvNb3xc5OcVzKd1VJgdPOpiFipV+Ws5wwGpRGTdUFhltSkpAQnty", + "A3YFJfvZbiFt0De3C659yZpOHXP4GjM5GPD8ppA+zx43FnImOVrKkTWYjIifZAoxieRuVYWJqJ+xBZMz", + "U3FjeI3uXS3duvFqeAtDJFAwJTxND3UQHgZZG78m8WJ4p7PwMSBe+WogVkWPGjx3gHmF34qNvAJ33lIW", + "f1Brr6rEzHZAOdOMLpI2DvwsmT2famusnyEvDGWjWtfkcQZXhE4m8Dc6fxCPmiEQD80//u3fHxdiKykQ", + "EkvHwddbwVMkkk868eb128sbLY6basEPEoJJRE0C3sNpKbPeSDsd5QUbq8/iWO1Pr+Ko7U/ft+OjzI0b", + "3feZTGlmKuQKHiGDy9ffv55u+KipK1KC2L49n0R3/DYh8m6OEa2sS9CNqDwcv2gFbEpkSVL1bSLqiGxO", + "bHd5SZ5HaWRpy7486kppw1HleTjstSs4JeJNiDxwfXOm1RUGBcdIqU6Igz9wrUzd+ugnjubLV7ir6hY5", + "UElCfy7/wkJu4VTVtOxW0kgn1BItHbtnkUXlLs7LFaVB2o6MH4b/8IySt5TgiEsb3L6BsNwQvxyei9Nr", + "Q4NfcnJzlAHeSs0oQdIKdBMBLCZ0Ot5S92ixML9Mx72U8+fN0Jdy/kMY/VLOX4YJLuU8HrehaLg0pcmU", + "W71XzmdP84E5ukeA3IGkkRHSk3Q9KIxKDqUbUhtn05vSUEbzMQMyAB7Hz+5NHKvPtKbchx4e/cxgHPAE", + "XfQStKcUBWFhY66TbiJ9Zg8fLWtLaKPDj6wPAYsYS88IYXjfqDsN0qJrtAZZUuUhFVVG+DImgXJDSeWJ", + "WhgGnFQtgl00PgruK+UxkzMRsqoidsIx84ickiiqEectAoY27AI1TKZUbTBePda2YWVmWlf8ziwf3M4e", + "jEfC2g/f4CUH7S86mCKZk75NPt3kOT+IxmiqkygbXFrQJwO2at6OOlLD1ailLhwk03hKTqxq86poTSJq", + "gO6A4Rxso7ynNHiSkknEjc/CUBA7RMYgVMkomUC59GvHMiM/W7ckOIOV3oHhJvihraJo4OsWfqWAZbc8", + "5LE+WFrK6OyRYpJmes22MXPsJg3QTzX7lCSULARDSPuFCjwzrQfuipnDSv6xaTIhiNLfQ/BDUByW2MQI", + "SBDmMa7Bhgf+1TwJMiVfLHHHLlmjS05DRUBYWB8XH4lRlyYx1ibzvQUSepbbUU2eTJ9Mn3D6Mmi5VZPz", + "ye+nT6a/58q5NaHuTG7VmSw3Sp+1btsKSNUgiok+XpaT88mP4C+im9ApHPjdkyf31l0uzJBpL3cB9hqs", + "4GZc5ATUTqJ3/5FepnXMK8MVclvjMvGFC08dHdo2K8aK2lHzBBkzTLlQDpVyPDG1csfvPyXNjxuBj0rw", + "sIg+H2fh7T1wyt2mdl7MQbz5+cdC/MebFz8W4seXP6BF/xeYv5mKZ56zL/4gXqnvuKqni+tfmgPvCdMF", + "OP9dMM4SPBNYZyu17CK4iUq15Zo9YuNP/76F1V2/3eo7f7qD+fa233YYxNsaPvbI8Jt7I0PCfIYIKXEC", + "qagUSGtTZK5vmfxzwzXwnTXZMd9+8/vRbx8Q9tkH/N/L8uNNLNrQzI0M+hsjnP4mIiZPHLMsW/bE3AFF", + "xORhc7+9xXahXLVyAx4seqcfJqj9Y7Ey68IJ7+HkkJqLZE2HK/g1kgH3YEi2PyciTyn4xK9OxQu5WPM/", + "uAegciHq9+4pt9gKUo7aVQjpxH9cvP55yv904cj/J+n8Kf1y+vJ78SgEJvjZuxrsXjTLfkxp9RbQAEEm", + "4fMbOl6JEFFMOyjCIhanSx8DmbHPhAVK9XnKm1OBLP8P4aktZw9vBj9mIauKmlK0XSuaZdAQUgtqeCFW", + "Joxh2pYUOSHMCXs8xCS/teiFkmkdNreDqUmRo9Ohs+GPRRiTMNoOSWi+n6Fax2iY1gY+pc6Cme/aLPFf", + "jwoddOOZhE9Dv9IOJx/lWyZR/vQOzBmZiANNQzz0si3SKMRardbgvIiFmSEc8KgpVV5JD4Xg2tpCLPfq", + "ccGp5eEAlw9uxQ+qQroRWlrL9fYiVIFZIkMZ+wacOJF2gsRhc5T5k3I+hrNyZHmweZ2A8a23/hOoJhas", + "jlO6aVXuCHK6WbuPr2YdCKv1+5hJv6AoLVfwxLiYsqIBdCq+Z6/f4a6i1R3LUg7p76yzuLy5+oxqy1wn", + "M4vnVpp+dPV8o7gZpYgvW0pT6CRH4qtNAbte0HE6qoGygtBKWVM0CPVCvy6HJHGtY6FbjhxDfXGkyGF7", + "9e4GWaeOeZQx+KXJBa2M0BmpIYJbG4u3EHD49r/fVRyefUAQj5iW7fIf0AFMcJzHKcUrG4OtZb2HsdYY", + "LXez1jj0MYTNV/CQaKRY1wAG0VJCFie7JyCizgDJYZ8A5/2zdBJZegCGvityIssG5NyOY1uu2sDZMtb0", + "DVEAF/094Dp5gsxCm16OKSmcuF5rni51HHbOXhhbsvPAmb5ct0upF52iwrYtUsFBc3Qg5HzaN7hTnNw/", + "wSXo+Hy0NrgHSSiB2+g9rHrokCZa82fBJLgpXga6dG1oLFZdHBBN628VfIjEDUHTXtm58zjxl6Z8lV5V", + "TmxUeRqa63QqvtdQlWSpuFju4Z3Q8J7byuYskpDG/RN7LQ9BTN0S/lFE9bt7m7xz7cAAbXXwnyJ0Fwpo", + "jG1wS4mMnyLriKBiFvegb3V5E/E0SeDFgfP0jFNE6HhUxBbybNUSTSDJuXA2zL0N+s4SEkLMAZ18DlOx", + "u0PjrMX2WoMuctOTmlAHl2VW78SOmg2kjQYOGbbpvdlrOOBiPmvOCuifPj0MW+VOuf4b2gaoFk8bA+FG", + "/bpLMk5YzyruBk+uqD4s4G/F6h49t6IVsMxlC6lPvNi0nah7KrjtR/AwW9yOP2prvx1CDZSfuAe1W5+m", + "VZDhKBHFS99ee0upLr3az1Hxl6Rg8hZuxDhMUAIOJYuF3FdhYaWcJ189mG9Z5f42vIYKPvSPQEMNpUKK", + "lKbFc8drEPFrvo5JxBUKuZJKc/yXughmSOxZWWbQ+CCUdjjN3QkuQeldSS4t08m6BKio3rRp/Q+vpGIa", + "3Aj99KyqohHvDsiquwg2iOLID7SvnVYOn/losEFaXkdo2EVE3QOtnH0Ifx0JzaT4fiDFeGTd3TXfdxim", + "wcLdIjE5dJ41tY2DzHgZKmoenhOpGmakmdgeFdAKDts2fE34H9I9zLmuU7/QJnc3+dFNZkW75H5WXU78", + "XPJ1Pw8he5Ks6c8seJhGhqUOIvKzBRHyHBVSqQedP3ZJzDLNko7XR8Rz3KG9phpS6sPODa17W/8jeMrl", + "fkAZSOPfEJfmKyadpwsll7Jy0LY0yGSLaxMR8c8kNk1pWtn5xUQHn5GGlplpYQ53frZljEPSeUGIGTXF", + "PkUaOsAnoSlCmuuOH/mm2qpJD3sLS2qlxt3XYmkXFzgxTOvwoZMbHimfXCCtbzLxH0hWNXnjvz1Rddfj", + "MHSAzkKHoUFrKzQoekhrK0wxGCqy1+Sv/dezNy+/F9yxSFzBnv39ZF7OCfoz8F09OOwrqeUK7DR4efNu", + "CmUMQp19CH8dsTxjjOsBcTEm2tlcyvggcrRBxd3kaA6nZyGoOU6I3hGAISH6zF2xiEq7b5xEKcgydS11", + "aZZL8WhlZFWIEhYqhGcpqwN/kSU6/q7gTIcmY6Dge9Aeh/6vnNxVWx1eTlu9KtdEdMtwtRDKh/g4RK5J", + "kJJopeRaajwbZHcjsSO4QdJ3hXZG/j5n9A+S7+cN1kfoCU1pQamhDLsabm8h3FUAZolVaQ/W1tsvQ64v", + "dDhnDA1R+Nint6UvI5BfyaY2SKMdbbrGf9md7Jz6fe6NvGCmZSZnWmf+Va6bfx8FQEykRzmVC1brsm3Y", + "9Js85SMkrluB8ZVaVUkDtCP2ROO6P5QLd4Npmpil921B8MrvZj50kXe2aEvus472i7aePH+FsHjU1MkV", + "TbV5rfkvrqzR1KALf8f1woLO9NvrTx8LqnXm+4g7Bfy3qN8fdvRNbJVBXU/Jg+ZG7SQbkg6GZqepHvk9", + "ZxV44U29WEMZksxj6XzRdg5UoXAyqapX2nmQ5fGFcIEANS8Y6kEQIb+pAwEvyHnYcie0OmufBFZoi9kP", + "aGyg/aM3cRkhR44XF/ehXVAhXI2b4cJtjtOYHhBrBdYgy6n42Xghq8rsIlriYqjxUS7lF/fsWK7wIfAJ", + "hvQ5pR61VEMGHWlQpbt7J6wMJ6OS6ZzKDNLa0iyA7R3gPRg7GfSZTjzx2/MukrO7zZc6Nf/i/TlxsR1n", + "PFYLvVw0PB4E2MP2U1PvPzHeGYgwIzbfgD2loBw6BV9biuvnFszmVNZ+HZrsDQZB6RDfxc4wkXa5fCVU", + "qrTJTx0B3nbQEI8oh6ONXDWfkAxay5KqHCkPhDO3W/uz7c2nrEAsPG5vVQtyQtnDqNezWFq+T6FFqRwa", + "41HDKAY+bbcvpHge0QLlKX4euu3nZd5z8yyg8LMcgCb3FYw8fWk3+eu3FMpw9+YgKdaarmelNgK49XRT", + "EXLzHPwOQAtJvQRY3TUnMquOapoOqS66+XNUfkToVzB+wUOVKtzy5pPHCRvyyeM0d/DeLs/jHpNP4wWs", + "Q0eJ0i/Wv22hXSo7yCKvdXpDebffWjQziuYNBS7eukolYPM9SdepeBFuNKdrj8mKppqaCpZemNo/FY1d", + "XTa3n+MLsTUHR72ocSUKYrqyeejmfJzbmnq1FtMpl5KFG+iL0JG6dvkanoZp7TFb86KSbn3qAF/y7CKM", + "uCkeYWnboqV3xt/AgV+Ga5Jr+Af4piEKaoTt+fKg3zYXUbe9cUGlu8w7nMW2MdfdTIK2vZouo88ZWzeh", + "EaP0ih3J8D4fF9LboaLYwkaqTIAx9BT8kiGKpm3i3YIV9xO/OVaHniAX0jpyKRy8O0zvfiPZrNxK5+KZ", + "bSWp+fE7MZcL8gDp+3xqN2Lrxhrth6unpha5naE28r3a1JvJ+TdPnjyha1HDPzODfpYKV8LMGNv2F7o6", + "gRteh017FKMbf3jy5PHXb+2i4TpIks+EhVVdSRuu8s8GxqbiMlzob8HXVqOvtOX6bKf+AYydp4I7TfAh", + "V3hTaBN7Rzy4ikaj7n519BEt/Ck5y/dryz4PAw0IR9yR37Yepi4pw0zQND5CHmiy63oWLVpoTf/HeLWO", + "LsPHnQvTidKVQ9vOVLWnQvUhWnsa1ADfCo6yPhA+Rfiao572XsKWL7uNlApqo0QgXfzXj0W8eHe+F/De", + "g6ZEgGH+ebnh86IxjRPunwH+WTvvuOvVv73fVF+8cQ+Sbmzccyde//1vUzJQ+O7z2+cXbXUeZXFwtJIv", + "Cw6d+E+VzmaKCI0UUlX7Ilx8R03YB2x9pb2h8FU8B1G+Sk9ywvtJl+yYXDJ8DBWjlgdBzxDlzIc1SXZy", + "QLQTLmjDhgXV2FBtDFdhqpXShVhK50+Xxu5kLKpuAaOLtU285TGEF2zi+eRcnhg0aPEVLj7opTAyylV7", + "BUmbdJItrbUryLtAn/fomwPSRzNmvu6j8LPIAp+fNZsksECigTVNROwNvMHsdnCwWySKXeo92sPLSi08", + "2w4WVqCJjvRKhD+hZCN6Ki6SS/0COGlqGh1quJg80ikqVz6kUmu4D8J+qf9F1vdB1pla8L7r/tVXZHc4", + "Y6A+/evxi49lXenuQoayQ0KjhZI1VHOPZjezMp+Bx3lSafrd/adkdS8U/cyJ7WMYOElg/Sfh1XgR45iA", + "XnLlZTeOR40m0RNMbyIdf9vFFSCJ+fylmS+TOzOTK3ZI+ajshU7hIk6zi9Hc4HuiiTnUUe+iwcPnkEfN", + "ZbBju0NE6L7+SFwDKu7X2dLYqwezborsQHrMGJ1I7LFio1i1Eu7UzVUrkqZuoypJThMzRNG0IeXOex1Z", + "TK4PEpjSdTDqkwFC6wajr8E6vnqD06KcN6apoutmHvHdByFJLrmx7uoxn34kYuokleqxIWwnAaS5dVn5", + "QysrZUS+ho2Lq7iKoL3IN9y0Z0PvhrCmOL6kC4Ga6/5yLPqDsVcXbfLWv4qXjgr2OrnjIivXmz5ghzYA", + "X7BMRIk6f9APKA04feKzOSDNDRsP2a0lzjHUsSU8jxdQTP9pozofP/7/AAAA//8=", } // decodeSpec returns the embedded OpenAPI spec as raw JSON bytes, diff --git a/internal/claude/session.go b/internal/claude/session.go index 44b3aa2..20897f0 100644 --- a/internal/claude/session.go +++ b/internal/claude/session.go @@ -37,6 +37,7 @@ type Options struct { ForkSession bool GitName string GitEmail string + Env []string Guidance string Hooks map[string][]HookMatcher MCPServers []*mcp.Server @@ -355,7 +356,7 @@ func buildEnv(opts Options) []string { env = append(env, kv) } - return append(env, + env = append(env, "CLAUDE_CODE_ENTRYPOINT=sdk-go", "CLAUDE_CODE_DISABLE_AUTOUPDATER=1", "GIT_AUTHOR_NAME="+opts.GitName, @@ -363,6 +364,7 @@ func buildEnv(opts Options) []string { "GIT_COMMITTER_NAME="+opts.GitName, "GIT_COMMITTER_EMAIL="+opts.GitEmail, ) + return append(env, opts.Env...) } func (s *Session) hookConfig(hooks map[string][]HookMatcher) map[string]any { diff --git a/internal/store/store.go b/internal/store/store.go index ad9741f..e003fad 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -262,8 +262,19 @@ ALTER TABLE tasks ADD COLUMN forked_from TEXT NOT NULL DEFAULT ''; ALTER TABLE tasks ADD COLUMN forked_at INTEGER NOT NULL DEFAULT 0; ALTER TABLE agent_sessions ADD COLUMN forked_from TEXT NOT NULL DEFAULT ''; ALTER TABLE agent_sessions ADD COLUMN forked_at TEXT NOT NULL DEFAULT ''; +`}, {"add-task-port-base", ` +ALTER TABLE tasks ADD COLUMN port_base INTEGER NOT NULL DEFAULT 0; +UPDATE tasks SET port_base = ( + SELECT 41000 + 10 * (count(*) - 1) FROM tasks AS earlier + WHERE earlier.status = 'active' AND (earlier.created_at < tasks.created_at OR (earlier.created_at = tasks.created_at AND earlier.id <= tasks.id)) +) WHERE status = 'active' AND port_base = 0; `}} +const ( + PortFirst = 41000 + PortBlock = 10 +) + type Store struct { db *sql.DB path string @@ -538,10 +549,19 @@ func (s *Store) CreateTask(ctx context.Context, t api.Task, actor string) error forkedAt = *t.ForkedAt } return s.write(ctx, func(tx *sql.Tx, emit emitFunc) error { - _, err := tx.ExecContext(ctx, ` - INSERT INTO tasks (id, project_id, title, merge_title, branch, worktree_path, base_ref, status, created_by, created_at, todo_item, forked_from, forked_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `, t.Id, t.ProjectId, t.Title, mergeTitle, t.Branch, t.WorktreePath, t.BaseRef, string(t.Status), t.CreatedBy, formatTime(t.CreatedAt), todoItem, forkedFrom, forkedAt) + err := tx.QueryRowContext(ctx, ` + SELECT min(candidate) FROM ( + SELECT ? AS candidate + UNION ALL SELECT port_base + ? FROM tasks WHERE status = ? + ) WHERE candidate NOT IN (SELECT port_base FROM tasks WHERE status = ?) + `, PortFirst, PortBlock, string(api.TaskStatusActive), string(api.TaskStatusActive)).Scan(&t.PortBase) + if err != nil { + return err + } + _, err = tx.ExecContext(ctx, ` + INSERT INTO tasks (id, project_id, title, merge_title, branch, worktree_path, base_ref, port_base, status, created_by, created_at, todo_item, forked_from, forked_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, t.Id, t.ProjectId, t.Title, mergeTitle, t.Branch, t.WorktreePath, t.BaseRef, t.PortBase, string(t.Status), t.CreatedBy, formatTime(t.CreatedAt), todoItem, forkedFrom, forkedAt) if err != nil { return err } @@ -987,7 +1007,7 @@ func (s *Store) write(ctx context.Context, fn func(tx *sql.Tx, emit emitFunc) er const projectColumns = `id, name, repo_path, default_branch, remote, created_by, created_at` -const taskColumns = `id, project_id, title, merge_title, branch, worktree_path, base_ref, status, created_by, created_at, closed_at, merge_commit, todo_item, forked_from, forked_at` +const taskColumns = `id, project_id, title, merge_title, branch, worktree_path, base_ref, port_base, status, created_by, created_at, closed_at, merge_commit, todo_item, forked_from, forked_at` const sessionColumns = `id, coalesce(task_id, ''), owner, vendor, model, vendor_session_id, state, role, created_by, created_at, forked_from, forked_at` @@ -1015,7 +1035,7 @@ func scanTask(row scanner) (api.Task, error) { todoItem := "" forkedFrom := "" forkedAt := 0 - err := row.Scan(&t.Id, &t.ProjectId, &t.Title, &t.MergeTitle, &t.Branch, &t.WorktreePath, &t.BaseRef, &status, &t.CreatedBy, &createdAt, &closedAt, &mergeCommit, &todoItem, &forkedFrom, &forkedAt) + err := row.Scan(&t.Id, &t.ProjectId, &t.Title, &t.MergeTitle, &t.Branch, &t.WorktreePath, &t.BaseRef, &t.PortBase, &status, &t.CreatedBy, &createdAt, &closedAt, &mergeCommit, &todoItem, &forkedFrom, &forkedAt) if err != nil { return t, err } diff --git a/web/dist/task.js b/web/dist/task.js index 7b40f89..3e261e2 100644 --- a/web/dist/task.js +++ b/web/dist/task.js @@ -848,6 +848,16 @@ function renderEvent(ev, ctx) { } case "task.merge_title": return h("div", { class: "note" }, `${ev.actor} set the merge commit title to "${String(p["merge_title"])}" `, when); + case "setup.started": { + const base = Number(p["port_base"]); + return h("div", { class: "note" }, `running ${String(p["script"])} with ports ${base}–${base + 9} `, when); + } + case "setup.ended": { + const secs = Math.round(Number(p["duration_ms"]) / 1000); + const failed = typeof p["error"] === "string"; + const summary = failed ? `${String(p["script"])} failed after ${secs}s: ${String(p["error"])}` : `${String(p["script"])} finished in ${secs}s`; + return h("details", { class: failed ? "note error" : "note" }, h("summary", {}, summary, " ", when), h("pre", {}, String(p["output"] ?? ""))); + } case "task.merged": return h("div", { class: "note" }, `${ev.actor} merged the task${p["commit"] ? ` as ${String(p["commit"]).slice(0, 7)}` : ""}${p["pushed"] ? ` and pushed it to ${String(p["pushed"])}` : ""} `, when); case "task.discarded": diff --git a/web/dist/task.js.map b/web/dist/task.js.map index 1662be0..7349628 100644 --- a/web/dist/task.js.map +++ b/web/dist/task.js.map @@ -1 +1 @@ -{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/web/src/api.gen.ts b/web/src/api.gen.ts index 52e26bd..5f466a5 100644 --- a/web/src/api.gen.ts +++ b/web/src/api.gen.ts @@ -774,6 +774,8 @@ export interface components { branch: string; worktree_path: string; base_ref: string; + /** @description The first of the task's block of ports (port_base to port_base+9), passed to its setup script and agent as PORT. */ + port_base: number; /** @enum {string} */ status: "active" | "merged" | "discarded"; created_by: string; diff --git a/web/src/task.ts b/web/src/task.ts index b61e1f3..05f1716 100644 --- a/web/src/task.ts +++ b/web/src/task.ts @@ -1008,6 +1008,18 @@ function renderEvent(ev: ByreEvent, ctx: Ctx): HTMLElement | null { case "task.merge_title": return h("div", { class: "note" }, `${ev.actor} set the merge commit title to "${String(p["merge_title"])}" `, when); + case "setup.started": { + const base = Number(p["port_base"]); + return h("div", { class: "note" }, `running ${String(p["script"])} with ports ${base}–${base + 9} `, when); + } + + case "setup.ended": { + const secs = Math.round(Number(p["duration_ms"]) / 1000); + const failed = typeof p["error"] === "string"; + const summary = failed ? `${String(p["script"])} failed after ${secs}s: ${String(p["error"])}` : `${String(p["script"])} finished in ${secs}s`; + return h("details", { class: failed ? "note error" : "note" }, h("summary", {}, summary, " ", when), h("pre", {}, String(p["output"] ?? ""))); + } + case "task.merged": return h( "div",