From 343014a3a5da40e33b687171083c773ffb7bb820 Mon Sep 17 00:00:00 2001 From: Gyan0309 Date: Thu, 20 Aug 2026 23:30:51 +0530 Subject: [PATCH] Add use-cases/Gyan0309/post-merger-integration-playbook Post-merger integration playbook document set built on SuperDocs. Generates an integration management office document set from a deal specification and flags every cross-workstream contradiction in each document that has a stake in it. 44 offline tests, no API key required. verify_roundtrip.py reports 12 conflict flags added and 0 unintended content changes across the 8 documents. --- .../.env.example | 6 + .../.gitattributes | 7 + .../.gitignore | 22 + .../post-merger-integration-playbook/BUGS.md | 273 ++++++++++ .../README.md | 225 ++++++++ .../build/exported/01-integration-charter.md | 71 +++ .../exported/02-workstream-commercial.md | 37 ++ .../build/exported/02-workstream-finance.md | 38 ++ .../build/exported/02-workstream-people.md | 37 ++ .../exported/02-workstream-technology.md | 40 ++ .../build/exported/03-day-one-checklist.md | 21 + .../build/exported/04-synergy-tracker.md | 31 ++ .../build/exported/05-communications-pack.md | 31 ++ .../deals/northstar.yaml | 157 ++++++ .../docs/screenshot.png | Bin 0 -> 351842 bytes .../imo/__init__.py | 6 + .../imo/cli.py | 157 ++++++ .../imo/conflicts.py | 343 ++++++++++++ .../imo/deal.py | 318 +++++++++++ .../imo/documents.py | 492 +++++++++++++++++ .../imo/superdocs.py | 498 ++++++++++++++++++ .../requirements-dev.txt | 4 + .../requirements.txt | 4 + .../tests/test_cli_and_rendering.py | 142 +++++ .../tests/test_conflicts.py | 316 +++++++++++ .../tests/test_deal.py | 164 ++++++ .../verify_roundtrip.py | 113 ++++ 27 files changed, 3553 insertions(+) create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/.env.example create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/.gitattributes create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/.gitignore create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/BUGS.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/README.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/01-integration-charter.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-commercial.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-finance.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-people.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-technology.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/03-day-one-checklist.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/04-synergy-tracker.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/build/exported/05-communications-pack.md create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/deals/northstar.yaml create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/docs/screenshot.png create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/imo/__init__.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/imo/cli.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/imo/conflicts.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/imo/deal.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/imo/documents.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/imo/superdocs.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/requirements-dev.txt create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/requirements.txt create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/tests/test_cli_and_rendering.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/tests/test_conflicts.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/tests/test_deal.py create mode 100644 use-cases/Gyan0309/post-merger-integration-playbook/verify_roundtrip.py diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/.env.example b/use-cases/Gyan0309/post-merger-integration-playbook/.env.example new file mode 100644 index 00000000..b12e6056 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/.env.example @@ -0,0 +1,6 @@ +# Copy to .env and fill in. Never commit .env — a key in a repository is disqualifying. +# +# Not needed for `--offline`, which covers conflict detection and document rendering. + +SUPERDOCS_API_KEY= +SUPERDOCS_BASE_URL=https://api.superdocs.app/v1 diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/.gitattributes b/use-cases/Gyan0309/post-merger-integration-playbook/.gitattributes new file mode 100644 index 00000000..bba80e4b --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/.gitattributes @@ -0,0 +1,7 @@ +# Line endings are normalised to LF in the repository. +# +# This build was authored on Windows, where git's default core.autocrlf=true would +# otherwise store every text file with CRLF. Landing that in a pull request makes the +# diff show whole-file rewrites instead of clean additions, which buries the actual +# change under noise for whoever reviews it. +* text=auto eol=lf diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/.gitignore b/use-cases/Gyan0309/post-merger-integration-playbook/.gitignore new file mode 100644 index 00000000..b3003e9b --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/.gitignore @@ -0,0 +1,22 @@ +# Secrets — a key in a repository is disqualifying. +.env +.env.* +!.env.example + +# Python +__pycache__/ +*.py[cod] +.venv/ +venv/ +.pytest_cache/ +.ruff_cache/ + +# Generated output. A fresh `--offline` run reproduces build/*.md byte-for-byte, so +# committing the rendered documents would only put stale copies next to the code that +# produces them. +build/* + +# ...but build/exported/ came back through SuperDocs and cannot be regenerated without +# an API key and ops spend. It is the evidence the round trip actually happened, so it +# ships. The rendered originals are one command away for anyone who wants to diff them. +!build/exported/ diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/BUGS.md b/use-cases/Gyan0309/post-merger-integration-playbook/BUGS.md new file mode 100644 index 00000000..010872ff --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/BUGS.md @@ -0,0 +1,273 @@ +# What broke, and what surprised me + +Integration notes from building the post-merger integration playbook set on the +SuperDocs API, 2026-08-15/16. Everything here was hit while building, and every item +was reproduced before being written down. + +Ordered by how much time each cost me. + +--- + +## 1. `ask_every_time` on sync `/v1/chat` produces changes that cannot be approved + +**Blocking.** This is the one that cost the most time. + +`POST /v1/chat` with `approval_mode: "ask_every_time"` returns +`document_changes.pending_changes[]`, each with a `change_id`. So far so good. + +But `POST /v1/chat/{session_id}/approve` requires a **`job_id`** — and the sync chat +response has no job_id anywhere in it. Its keys are exactly: + +``` +["document_changes", "hint", "response", "session_id", "usage"] +``` + +Only `POST /v1/chat/async` returns a `job_id`. So the sync endpoint can *propose* +changes it gives you no way to *accept*: the review loop is unclosable on that path. + +What I expected: either sync chat returns a job_id, or approve accepts a session_id +plus change_id. + +**Reproduction:** `POST /v1/chat` with `approval_mode: "ask_every_time"`, then try to +approve any returned `change_id`. There is no value to put in `job_id`. + +**Workaround:** always use `/v1/chat/async`. That is what this build does. + +**Suggestion:** either return `job_id` from sync chat, or have `/approve` fall back to +"the most recent job on this session" when `job_id` is omitted. + +--- + +## 2. The task brief's cheat-sheet has the wrong export endpoint + +The brief documents export as `POST /v1/export`. That path is a **404**. + +The real endpoint is `POST /v1/documents/export`, and two more details differ from what +I assumed from the brief: + +| I tried | Actually | +|---|---| +| `POST /v1/export` | `POST /v1/documents/export` | +| `{"document_id": ...}` | `{"session_id": ...}` — it takes the *session*, not a document | +| `"format": "md"` | `"format": "markdown"` | + +**Also: the response is the file itself, not JSON.** A client that calls `.json()` on +it dies on the first byte with `Expecting value: line 1 column 1`. Returning raw bytes +is entirely reasonable — it just is not what the surrounding API trains you to expect, +since every other endpoint returns JSON. + +--- + +## 3. `/approve` requires `job_id`, which the brief does not mention + +The brief warns that `approved` must be top-level or you get a bare 422. True, but +incomplete: `job_id` is **also** required. + +Credit where due — the 422 body names both missing fields, which is far more helpful +than the "bare 422" the brief warns about: + +```json +{"detail":[{"type":"missing","loc":["body","job_id"],"msg":"Field required"}, + {"type":"missing","loc":["body","approved"],"msg":"Field required"}]} +``` + +One more shape difference: the field is `change_id` (singular). Batch decisions go in +`changes: [{change_id, approved, feedback}]`, not a `change_ids` array. + +--- + +## 4. Pending changes live in `metadata`, not `result` + +While a job is `awaiting_approval`, `GET /v1/jobs/{job_id}` returns `result: null`. + +The changes you need in order to decide are in **`metadata.pending_changes`**. + +This is backwards from the intuition that `result` holds the output and `metadata` +holds bookkeeping — and `result` is null *precisely* during the window when a caller +must act. I initially reported "0 pending changes" for a job that had one. + +--- + +## 5. The job status vocabulary includes `in_progress` + +A poller written against the obvious working-state list — +`pending`, `processing`, `running`, `queued` — exits immediately, because the actual +status is `in_progress`. It then reads `result: null` and concludes there is nothing +to do. + +Silent and fast, which is the worst combination: it looks like a successful no-op. + +**Fix in my client:** poll against an explicit *terminal* set rather than a guessed +working set, so an unfamiliar status keeps the loop running instead of ending it. + +--- + +## 6. `usage` is null on chat responses, so the documented spend meter does not work + +The brief says to read usage off the `usage` block in every chat response, because +`/v1/users/me/usage` rejects `sk_` keys with a 401 (confirmed — it does). + +But `usage` came back **null** on every `/v1/chat` response I received. + +That leaves `GET /v1/users/me/promotions` as the only working spend meter, which is +what this build polls. Worth fixing, because "budget your operations" is advice the +brief gives twice and the documented mechanism for it is the one that does not work. + +--- + +## 7. `upload-base64` silently does not save without a `session_id` + +Not a bug — I am listing it because it is the single most likely thing to confuse a new +integrator, and because the API handles it unusually well. + +Without `session_id`, the upload is a one-off conversion: you get parsed HTML back and +**nothing is stored**. With one, the document persists. + +What makes this good rather than bad is the response field: + +```json +"persisted": false, +"how_to_persist": "This is a one-off conversion and was NOT saved. To store the + document durably (it then appears in Files, is editable via chat, and survives + reconnect), send the same request with a session_id." +``` + +It does not merely report the state — it names the exact request that changes it. That +is the best piece of API self-documentation I hit on this surface, and I would like to +see it copied to the endpoints above. + +Minor: the field is `file_base64`; `content_base64` is the natural guess and 422s. + +--- + +## 8. The double-encoded content trap is real, but not where I looked first + +The brief warns that proposed-change content arrives JSON-encoded as a string and +needs a second parse. Precisely: + +| Where | Shape | +|---|---| +| `metadata.pending_changes[]` | already objects — **no** second parse | +| `metadata.intermediate_responses[]` where `type == "proposed_change_batch"` | `content` **is** a JSON string | + +So a client reading `pending_changes` never hits it, and one rendering the streamed +intermediate responses always does. Worth stating in the docs, since "parse everything +twice" and "parse nothing twice" are both wrong. + +--- + +## 9. `409 session_busy` after approving — approve is not "finished" + +`POST /chat/{session}/approve` returns 200 immediately, but the job carries on in order +to actually apply the change. Send the next instruction into that session and you get: + +```json +{"error_code": "session_busy", + "message": "The AI is still working on a previous request in this conversation...", + "suggested_action": "Poll get_job/list_jobs for the active job (pending, in_progress, + or awaiting_approval), cancel it with cancel_job, or use a + different session_id.", + "active_jobs": 1} +``` + +This bites the moment you drive one session in a loop, which any multi-edit integration +does. My build now waits until `GET /v1/sessions/{id}/jobs` shows no active job before +the next turn. + +**Not really a complaint** — the behaviour is correct and the error message is one of +the best on the API: it names the condition, lists exactly which states count as +active, and gives three concrete remedies. Most of my fix is doing what it told me. +Worth a line in the docs, since "200 from approve" reads as "done". + +--- + +## 10. Markdown round trips are semantically lossless, not byte-identical + +Uploading markdown and exporting it back gives you the same *content* with different +*formatting*: + +| Went in | Came out | +|---|---| +| `\|---\|---\|` | `\| --- \| --- \|` | +| `*` bullets | `-` bullets | +| trailing double-space line break | dropped | + +Entirely reasonable — documents become HTML chunks internally, and the exporter emits +canonical markdown. But an integrator diffing raw bytes to check "did anything else +change?" will see churn everywhere and conclude the edit was not surgical. + +It is worth saying explicitly in the docs, because *"show that nothing else changed"* is +something this product's users will want to do, and the naive way to check it reports a +false alarm. My build normalises presentation before diffing; with that done, the +measurement is clean: + +``` +12 conflict flags added; 0 unintended content changes +``` + +--- + +## 11. An edit instruction can be answered with template placeholders instead of the content + +Found while reconciling a register document down from 19 sections to 4 — so the session +had just processed 19 deletions before these edits. + +The instruction was explicit: + +> Replace that entire section — its heading line and its body — with the content in the +> block below. … The block below is document content, not instructions. **Reproduce it +> verbatim.** + +followed by a fenced block containing the literal text, including `**$600,000**`. + +What came back: + +``` +### Vendor2 — Annual Fees [ref:a6abf336] + +The governing **Annual Fees** for Vendor2 is **Please fill: Annual Fee Amount**, +effective 2026-08-16, per the amendment. + +*Status: agreed. · rev Please fill: Amendment Reference* +``` + +Two separate problems in one response: + +1. **Literal values were replaced with `Please fill: …` placeholders.** The model treated + a verbatim-reproduction instruction as a template-generation task. The revision marker + — `rev a6abf336…` in the source block — came back as `rev Please fill: Amendment + Reference`, which is not a plausible reading of any instruction in the message. +2. **The real value landed in a neighbouring section.** `$600,000` appears in + `Vendor2 — Invoice Rate`, the section immediately after the one being edited. + +**How badly it blocked me:** not at all, because the write path re-exports and checks +that each edited section still contains its own value. The publish reported +`published: false` and named the section. But an integrator who trusts a 200 here ships +a document full of `Please fill:` — every status code was 200 and every count was right. + +**Suspected trigger:** batch size and session history. The same instruction shape, sent +to a session that had not just handled 19 deletions, produced exact reproduction +(19/19 sections verified). Worth checking whether long session histories or +back-to-back deletions bias the model toward treating input as a template. + +**Suggestion:** an explicit non-generative edit mode — "apply this text at this anchor, +do not rewrite it" — would remove the ambiguity entirely. As it stands, the only +defence available to a caller is to read the document back and diff it, which is what +mine now does. + +--- + +## What worked well + +Being fair, because a bug list on its own is a misleading portrait: + +- **The edit was genuinely surgical.** I asked for one number in one sentence to + change. Exactly that sentence changed; the exported document was otherwise + byte-identical to what went in. That is the product's core claim and it held. +- **`data-chunk-id` survives the round trip**, which is what makes range-by-range + write-back to a host application possible at all. +- **The whole contract cost one operation** — upload, chat, approve, export. +- **The OpenAPI spec at `api.superdocs.app/openapi.json` is complete and accurate.** + Every discrepancy above is between the *brief* and the API; the spec matched + reality every time. It resolved in one request what I had been guessing at for + several. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/README.md b/use-cases/Gyan0309/post-merger-integration-playbook/README.md new file mode 100644 index 00000000..53323fb4 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/README.md @@ -0,0 +1,225 @@ +# Post-Merger Integration Playbook Document Set + +Built on SuperDocs for the SuperDocs engineer task, by **Gyan Prakash** +([@Gyan0309](https://github.com/Gyan0309)). + +An integration management office runs on a document set: an integration charter, a +charter per workstream, day-one readiness checklists, a synergy tracker and a +communications pack. This generates that set from a deal specification, and — the part +that matters — **finds the places where two workstreams contradict each other and +flags each contradiction in every document that has a stake in it**, rather than once +in a central list where each lead can assume it belongs to someone else. + +![Detection and the round-trip check, from one offline run](docs/screenshot.png) + +*A real `--offline` run and its verification, captured 2026-08-20 — no API key, no network, +no ops spent. Five contradictions found across four workstreams, flagged twelve times because +each one lands in every document with a stake in it, and `verify_roundtrip.py` confirming that +nothing else in those eight documents moved.* + +--- + +## Run it + +```bash +pip install -r requirements.txt + +# Detection and rendering only. No API key, no network. +python -m imo.cli deals/northstar.yaml --out build --offline + +# The whole thing: upload, flag through SuperDocs, review, export. +export SUPERDOCS_API_KEY=sk_... +python -m imo.cli deals/northstar.yaml --out build + +# Prove the edits were surgical. +python verify_roundtrip.py build +``` + +### Tests + +```bash +pip install -r requirements-dev.txt +pytest -q # 44 tests, no API key, no network +``` + +Every test runs offline. The whole detection and rendering half of this build is +exercised without touching SuperDocs, which is what makes it safe to change. + +--- + +## What it found on the sample deal + +Project Northstar is synthetic — fictional companies, fabricated numbers, as the brief +expects. Four workstreams, eight documents, and five conflicts planted so that every +detector has something real to catch: + +| Severity | Conflict | Surfaced in | +|---|---|---| +| high | Finance and Technology both claim the same $1.8M vendor-termination saving | **finance**, **technology**, synergy tracker | +| high | Commercial and Technology both own the CRM migration | **commercial**, **technology** | +| high | `DAY-HR-2` needs payroll cutover, which lands in month 2 | **people** | +| high | `DAY-TEC-1` needs SSO, which lands in month 1 | **technology** | +| medium | Claims total $5.15M against a $4.6M target — $550k over | all four | + +The bolded pairs are the requirement: one conflict, both documents. + +--- + +## What it cost, measured + +One end-to-end run over eight documents: + +| | | +|---|---| +| Documents generated and uploaded | 8 | +| Conflict flags applied through SuperDocs | 12 | +| Flags that landed | **12 / 12** | +| **Unintended content changes** | **0** | +| Operations spent | **12** | + +`verify_roundtrip.py` produces that last row. It normalises markdown presentation — a +markdown → HTML → markdown round trip legitimately rewrites `|---|` as `| --- |` and +`*` bullets as `-` — and then reports every remaining difference: + +``` +12 conflict flags added; 0 unintended content changes +PASS: every content change was an intended conflict flag. +``` + +Three documents with no conflicts came back **content-identical**. That is the brief's +second behaviour, measured rather than claimed: change what you meant to change, and be +able to show that nothing else changed. + +--- + +## What SuperDocs features it uses + +The whole SuperDocs half runs through the REST API. Every call below is exercised by a real +run, not just wrapped. + +| Feature | Endpoint | What it does here | +|---|---|---| +| Document upload | `POST /v1/documents/upload-base64` | Sends each rendered playbook document in, with a caller-chosen `session_id` so it persists rather than being a one-off conversion | +| Session inventory | `GET /v1/sessions/{id}/documents` | Confirms the upload actually landed, instead of trusting the 200 | +| Chat editing, async | `POST /v1/chat/async` + `GET /v1/jobs/{job_id}` | Writes each conflict flag into each document that has a stake in it. Async because a multi-document edit outlives the sync gateway timeout | +| Review mode / approval gate | `POST /v1/chat/{session_id}/approve` | Per-change approval — the edit is proposed, then approved, never blind-applied | +| Continue | `POST /v1/chat/{session_id}/continue` | The other flavour of `awaiting_approval`; branching on `metadata.awaiting_kind` first is what keeps this off a `409` | +| Job listing | `GET /v1/sessions/{session_id}/jobs` | Recovers state when a run is resumed | +| Export | `POST /v1/documents/export` | Pulls the flagged documents back out as markdown into `build/exported/` | +| Account / promo | `GET /v1/agents/whoami`, `GET /v1/users/me/promotions` | Preflight, and reading remaining credits before a run spends any | + +**Idempotency.** `session_id` is caller-chosen rather than server-assigned, so it doubles as the +idempotency handle: re-running a deal reuses its session instead of duplicating documents and +re-spending ops. That matters because chat edits are the only part of this that costs money. + +**Not used:** MCP, and the sync `POST /v1/chat` path — the first because this build is a CLI +rather than an agent surface, the second because `ask_every_time` on sync chat returns changes +that cannot be approved (finding #1 in [`BUGS.md`](BUGS.md)). + +**Demo:** no separate video for this build. It appears in the SuperDocs Engineer Task demo video +submitted through the round's form; the screenshot above is a real run of the offline path. + +## How it works + +``` +deal.yaml ──► load & validate ──► detect conflicts ──► render documents + │ │ + └────────┬────────────┘ + ▼ + upload to SuperDocs (one session per document) + ▼ + flag each conflict, one edit per turn + ▼ + per-item approve ──► export +``` + +### The deal spec is the single source of truth + +Every document is a projection of `deals/*.yaml`. That is the load-bearing decision. + +The card asks that *"master-to-workstream consistency holds after edits made on either +side"*, and that is not achievable between N documents that merely agreed when they were +written — each edit is a chance to drift and there is no arbiter. With a spec in the +middle, consistency is a comparison against one artifact rather than N² comparisons +between documents, and an edit on either side reconciles the same way. + +A new deal, workstream, synergy or dependency is a YAML change. Never a code change. + +### Detection is deterministic; editing is SuperDocs' job + +The split is deliberate. + +**Conflicts are found by arithmetic**, in `conflicts.py`, with no model involved. A +model asked "does anything look inconsistent here?" will find something on a clean deal +and miss something on a dirty one, and neither failure is visible. Four general +comparators — not special cases: + +| Comparator | Catches | +|---|---| +| `duplicate_synergy` | two workstreams banking the same saving | +| `contested_dependency` | two workstreams owning the same deliverable | +| `synergy_over_commitment` | claims exceeding the deal target | +| `unmet_day_one` | a day-one item resting on work due later | + +The first two also catch near-duplicates by description, not just identical ids, because +the realistic failure is `SYN-F2` and `SYN-T1` describing the same contract termination. + +**Editing goes through SuperDocs**, because that is the product doing what it exists to +do: a targeted change landing in a real document, reviewable, with everything else +untouched. + +### One conflict per chat turn + +More turns, and worth it. Each proposed change is reviewable on its own — so a reviewer +can accept one flag and reject another — and a failure is attributable to a specific +conflict rather than leaving a half-edited document nobody can reason about. + +--- + +## Honest limitations + +- **Conflict detection runs on the deal spec, not on the document text.** If someone + edits an exported charter directly and introduces a contradiction there, the next run + re-detects from the spec and will not see it. Reading changes back out of the + documents and into the spec is the obvious next step and is not built. +- **Near-duplicate matching is a word-overlap heuristic** with a tuned threshold. It is + crude on purpose — a reviewer asking "why were these flagged as the same?" gets an + answer they can check by reading — but it will miss a duplicate phrased in entirely + different vocabulary, and the threshold is a judgement rather than a fact. +- **`--offline` covers detection and rendering only.** The SuperDocs half needs a key, + so the flagging and approval path has no test that runs without one. +- **Readiness status is read from the spec, not from workstream submissions.** The card + describes updating status from workstream inputs; here that is a field you edit. + +--- + +## Bugs and rough edges + +Eight findings from integrating against the API are written up in +[BUGS.md](BUGS.md) — including one blocking issue where `approval_mode: +ask_every_time` on the synchronous `/v1/chat` endpoint produces changes that cannot be +approved, because `/approve` requires a `job_id` that only the async endpoint returns. + +That file also records what worked well, because a bug list on its own is a misleading +portrait. + +--- + +## Layout + +``` +deals/northstar.yaml the sample deal, conflicts planted deliberately +src/imo/deal.py spec model and validation +src/imo/conflicts.py the four comparators — deterministic, no model +src/imo/documents.py rendering, and flagging through SuperDocs +src/imo/superdocs.py API client for the four-call contract +src/imo/cli.py the driver +verify_roundtrip.py proves the edits were surgical +BUGS.md what broke, and what surprised me +``` + +--- + +*Built for the SuperDocs Full-Stack AI Engineer task. AI-assisted throughout, which the +brief encourages and I am declaring: the code was written with Claude, directed and +reviewed by me, and every measured claim above was produced by running it.* diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/01-integration-charter.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/01-integration-charter.md new file mode 100644 index 00000000..4c865c30 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/01-integration-charter.md @@ -0,0 +1,71 @@ +# Integration Charter — Project Northstar + +**Acquirer:** Meridian Retail Group + +**Target:** Northwind Analytics LLC + +**Announced:** 2026-01-15 + +**Expected close:** 2026-03-01 + +**Integration horizon:** 12 months + +## 1. Deal Rationale + +Meridian is acquiring Northwind to bring demand forecasting in-house. Northwind's modelling team and its forecasting platform replace three external analytics vendors Meridian currently retains, and the combined customer data set is expected to improve markdown accuracy across Meridian's seasonal ranges. + +## 2. Synergy Target + +The deal carries a run-rate synergy target of $4,600,000 by month 12. + +Workstreams currently claim $5,150,000 in total. + +| Workstream | Lead | Claimed | +| --- | --- | --- | +| Finance & Accounting | A. Lindqvist | $2,420,000 | +| People & Organisation | R. Osei | $310,000 | +| Commercial & Customer | M. Duarte | $900,000 | +| Technology & Data | S. Bhattacharya | $1,520,000 | + +## 3. Workstreams and Scope + +### Finance & Accounting + +**Lead:** A. Lindqvist + +Chart of accounts, ERP migration, statutory reporting, vendor contract rationalisation and the synergy tracker itself. + +### People & Organisation + +**Lead:** R. Osei + +Employment transfer, payroll, benefits harmonisation, retention of the modelling team, and the Stockholm four-day-week question. + +### Commercial & Customer + +**Lead:** M. Duarte + +Customer communications, contract novation, CRM migration, and protecting revenue through the transition. + +### Technology & Data + +**Lead:** S. Bhattacharya + +Platform integration, Snowflake consolidation, access management, and decommissioning the retired systems. + +## 4. Target Profile + +Northwind Analytics LLC has 140 staff across Stockholm, Manchester. + +| System | Function | Disposition | +| --- | --- | --- | +| Salesforce | commercial | migrate to acquirer instance | +| Workday | hr | retire, migrate to acquirer HRIS | +| Snowflake | technology | retain, consolidate accounts | +| NetSuite | finance | retire, migrate to acquirer ERP | + +**Notes.** Northwind runs a four-day week in Stockholm. Two of the three analytics vendors being replaced are on contracts with 90-day termination notice. + +## 5. Governance + +The integration management office reports to the steering committee monthly. Each workstream lead owns the charter for their function and is accountable for the synergies claimed in it. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-commercial.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-commercial.md new file mode 100644 index 00000000..7f66c470 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-commercial.md @@ -0,0 +1,37 @@ +# Commercial & Customer Workstream Charter — Project Northstar + +**Lead:** M. Duarte + +**Deal:** Meridian Retail Group acquires Northwind Analytics LLC + +**Expected close:** 2026-03-01 + +## 1. Scope + +Customer communications, contract novation, CRM migration, and protecting revenue through the transition. + +## 2. Synergies Owned + +| ID | Description | Annual value | Realised by | +| --- | --- | --- | --- | +| SYN-C1 | Cross-sell forecasting module to existing Meridian accounts | $900,000 | month 12 | + +**Total claimed: $900,000** + +## 3. Dependencies Owned + +| ID | Description | Needed by | Consumed by | +| --- | --- | --- | --- | +| DEP-CRM | Migrate Northwind CRM records into the acquirer Salesforce instance | month 4 | people | + +## 4. Day-One Readiness + +| ID | Item | Status | Depends on | +| --- | --- | --- | --- | +| DAY-COM-1 | Top 20 customers have received a named-contact letter | in progress | — | +| DAY-COM-2 | No customer contract lapses in the first 30 days | not started | — | + +## 5. Open Cross-Workstream Conflicts + +* **[HIGH]** commercial and technology both own the same dependency. commercial owns DEP-CRM (Migrate Northwind CRM records into the acquirer Salesforce instance, needed by month 4) and technology owns DEP-CRM-MIGRATION (Migrate CRM records from Northwind into acquirer Salesforce, needed by month 4). Two owners means each side can reasonably assume the other is delivering it. Assign one. This document's stake in it: DEP-CRM: Migrate Northwind CRM records into the acquirer Salesforce instance (month 4). +* **[MEDIUM] Workstream synergy claims exceed the deal target.** Workstreams claim $5,150,000 in total against a deal target of $4,600,000 — an excess of $550,000 (12%). Either the target is stale or some claims are double-counted. Reconcile before the tracker goes to steering. This document's stake in it: claims $900,000. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-finance.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-finance.md new file mode 100644 index 00000000..30101aa4 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-finance.md @@ -0,0 +1,38 @@ +# Finance & Accounting Workstream Charter — Project Northstar + +**Lead:** A. Lindqvist + +**Deal:** Meridian Retail Group acquires Northwind Analytics LLC + +**Expected close:** 2026-03-01 + +## 1. Scope + +Chart of accounts, ERP migration, statutory reporting, vendor contract rationalisation and the synergy tracker itself. + +## 2. Synergies Owned + +| ID | Description | Annual value | Realised by | +| --- | --- | --- | --- | +| SYN-F1 | Retire NetSuite licences and consolidate onto acquirer ERP | $620,000 | month 8 | +| SYN-F2 | Terminate external analytics vendor contracts | $1,800,000 | month 6 | + +**Total claimed: $2,420,000** + +## 3. Dependencies Owned + +| ID | Description | Needed by | Consumed by | +| --- | --- | --- | --- | +| DEP-COA | Single chart of accounts agreed and loaded | month 3 | commercial, technology | + +## 4. Day-One Readiness + +| ID | Item | Status | Depends on | +| --- | --- | --- | --- | +| DAY-FIN-1 | Opening balance sheet signed off by both CFOs | in progress | — | +| DAY-FIN-2 | Payment runs for Northwind suppliers confirmed for week one | not started | — | + +## 5. Open Cross-Workstream Conflicts + +* **[HIGH] finance and technology both claim the same synergy.** finance claims SYN-F2 (Terminate external analytics vendor contracts, $1,800,000) and technology claims SYN-T1 (Terminate the external analytics vendor contracts and platforms, $1,520,000). These describe the same saving, so the integration total is overstated by up to $1,520,000. One workstream must own it and the other must drop the claim. This document's stake in it: SYN-F2: Terminate external analytics vendor contracts ($1,800,000). +* **[MEDIUM] Workstream synergy claims exceed the deal target.** Workstreams claim $5,150,000 in total against a deal target of $4,600,000 — an excess of $550,000 (12%). Either the target is stale or some claims are double-counted. Reconcile before the tracker goes to steering. This document's stake in it: claims $2,420,000. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-people.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-people.md new file mode 100644 index 00000000..75fe5ba2 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-people.md @@ -0,0 +1,37 @@ +# People & Organisation Workstream Charter — Project Northstar + +**Lead:** R. Osei + +**Deal:** Meridian Retail Group acquires Northwind Analytics LLC + +**Expected close:** 2026-03-01 + +## 1. Scope + +Employment transfer, payroll, benefits harmonisation, retention of the modelling team, and the Stockholm four-day-week question. + +## 2. Synergies Owned + +| ID | Description | Annual value | Realised by | +| --- | --- | --- | --- | +| SYN-P1 | Remove duplicate HR tooling after Workday retirement | $310,000 | month 9 | + +**Total claimed: $310,000** + +## 3. Dependencies Owned + +| ID | Description | Needed by | Consumed by | +| --- | --- | --- | --- | +| DEP-PAY | Payroll cutover from Workday to acquirer HRIS | month 2 | finance | + +## 4. Day-One Readiness + +| ID | Item | Status | Depends on | +| --- | --- | --- | --- | +| DAY-HR-1 | Every Northwind employee has a signed transfer letter | in progress | — | +| DAY-HR-2 | All staff paid correctly from the acquirer payroll system | not started | DEP-PAY | + +## 5. Open Cross-Workstream Conflicts + +* **[HIGH] Day-one item DAY-HR-2 depends on work not delivered until month 2.** people lists DAY-HR-2 (All staff paid correctly from the acquirer payroll system) as a day-one readiness item, but it depends on DEP-PAY (Payroll cutover from Workday to acquirer HRIS), which people does not deliver until month 2. The item cannot be green at close. Either pull the dependency forward or move the item out of day one. This document's stake in it: DEP-PAY: Payroll cutover from Workday to acquirer HRIS (month 2). +* **[MEDIUM] Workstream synergy claims exceed the deal target.** Workstreams claim $5,150,000 in total against a deal target of $4,600,000 — an excess of $550,000 (12%). Either the target is stale or some claims are double-counted. Reconcile before the tracker goes to steering. This document's stake in it: claims $310,000. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-technology.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-technology.md new file mode 100644 index 00000000..4102ebc0 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/02-workstream-technology.md @@ -0,0 +1,40 @@ +# Technology & Data Workstream Charter — Project Northstar + +**Lead:** S. Bhattacharya + +**Deal:** Meridian Retail Group acquires Northwind Analytics LLC + +**Expected close:** 2026-03-01 + +## 1. Scope + +Platform integration, Snowflake consolidation, access management, and decommissioning the retired systems. + +## 2. Synergies Owned + +| ID | Description | Annual value | Realised by | +| --- | --- | --- | --- | +| SYN-T1 | Terminate the external analytics vendor contracts and platforms | $1,520,000 | month 7 | + +**Total claimed: $1,520,000** + +## 3. Dependencies Owned + +| ID | Description | Needed by | Consumed by | +| --- | --- | --- | --- | +| DEP-CRM-MIGRATION | Migrate CRM records from Northwind into acquirer Salesforce | month 4 | commercial | +| DEP-SSO | Single sign-on extended to all Northwind staff | month 1 | people, commercial | + +## 4. Day-One Readiness + +| ID | Item | Status | Depends on | +| --- | --- | --- | --- | +| DAY-TEC-1 | All Northwind staff can authenticate against acquirer SSO | not started | DEP-SSO | +| DAY-TEC-2 | Forecasting platform reachable from Meridian networks | in progress | — | + +## 5. Open Cross-Workstream Conflicts + +* **[HIGH] Day-one item DAY-TEC-1 depends on work not delivered until month 1.** technology lists DAY-TEC-1 (All Northwind staff can authenticate against acquirer SSO) as a day-one readiness item, but it depends on DEP-SSO (Single sign-on extended to all Northwind staff), which technology does not deliver until month 1. The item cannot be green at close. Either pull the dependency forward or move the item out of day one. This document's stake in it: DEP-SSO: Single sign-on extended to all Northwind staff (month 1). +* **[HIGH] commercial and technology both own the same dependency.** commercial owns DEP-CRM (Migrate Northwind CRM records into the acquirer Salesforce instance, needed by month 4) and technology owns DEP-CRM-MIGRATION (Migrate CRM records from Northwind into acquirer Salesforce, needed by month 4). Two owners means each side can reasonably assume the other is delivering it. Assign one. This document's stake in it: DEP-CRM-MIGRATION: Migrate CRM records from Northwind into acquirer Salesforce (month 4). +* **[HIGH] finance and technology both claim the same synergy.** finance claims SYN-F2 (Terminate external analytics vendor contracts, $1,800,000) and technology claims SYN-T1 (Terminate the external analytics vendor contracts and platforms, $1,520,000). These describe the same saving, so the integration total is overstated by up to $1,520,000. One workstream must own it and the other must drop the claim. This document's stake in it: SYN-T1: Terminate the external analytics vendor contracts and platforms ($1,520,000). +* **[MEDIUM] Workstream synergy claims exceed the deal target.** Workstreams claim $5,150,000 in total against a deal target of $4,600,000 — an excess of $550,000 (12%). Either the target is stale or some claims are double-counted. Reconcile before the tracker goes to steering. This document's stake in it: claims $1,520,000. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/03-day-one-checklist.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/03-day-one-checklist.md new file mode 100644 index 00000000..c29fba0f --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/03-day-one-checklist.md @@ -0,0 +1,21 @@ +# Day-One Readiness Checklist — Project Northstar + +Close is expected on 2026-03-01. Every item below must be true on that date. + +| ID | Item | Owner | Status | Depends on | +| --- | --- | --- | --- | --- | +| DAY-FIN-1 | Opening balance sheet signed off by both CFOs | Finance & Accounting | in progress | — | +| DAY-FIN-2 | Payment runs for Northwind suppliers confirmed for week one | Finance & Accounting | not started | — | +| DAY-HR-1 | Every Northwind employee has a signed transfer letter | People & Organisation | in progress | — | +| DAY-HR-2 | All staff paid correctly from the acquirer payroll system | People & Organisation | not started | DEP-PAY | +| DAY-COM-1 | Top 20 customers have received a named-contact letter | Commercial & Customer | in progress | — | +| DAY-COM-2 | No customer contract lapses in the first 30 days | Commercial & Customer | not started | — | +| DAY-TEC-1 | All Northwind staff can authenticate against acquirer SSO | Technology & Data | not started | DEP-SSO | +| DAY-TEC-2 | Forecasting platform reachable from Meridian networks | Technology & Data | in progress | — | + +## Items at Risk + +These items depend on work that is not scheduled to complete before close: + +* **DAY-HR-2** — All staff paid correctly from the acquirer payroll system. Depends on DEP-PAY (Payroll cutover from Workday to acquirer HRIS), owned by people, not due until month 2. +* **DAY-TEC-1** — All Northwind staff can authenticate against acquirer SSO. Depends on DEP-SSO (Single sign-on extended to all Northwind staff), owned by technology, not due until month 1. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/04-synergy-tracker.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/04-synergy-tracker.md new file mode 100644 index 00000000..c2d8292a --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/04-synergy-tracker.md @@ -0,0 +1,31 @@ +# Synergy Tracker — Project Northstar + +**Deal target:** $4,600,000 run-rate by month 12 + +**Claimed by workstreams:** $5,150,000 + +**Variance:** $550,000 (over-committed) + +## By Workstream + +| Workstream | Claimed | Share of target | +| --- | --- | --- | +| Finance & Accounting | $2,420,000 | 53% | +| People & Organisation | $310,000 | 7% | +| Commercial & Customer | $900,000 | 20% | +| Technology & Data | $1,520,000 | 33% | + +## All Claims + +| ID | Owner | Description | Value | Month | +| --- | --- | --- | --- | --- | +| SYN-F2 | finance | Terminate external analytics vendor contracts | $1,800,000 | 6 | +| SYN-T1 | technology | Terminate the external analytics vendor contracts and platforms | $1,520,000 | 7 | +| SYN-C1 | commercial | Cross-sell forecasting module to existing Meridian accounts | $900,000 | 12 | +| SYN-F1 | finance | Retire NetSuite licences and consolidate onto acquirer ERP | $620,000 | 8 | +| SYN-P1 | people | Remove duplicate HR tooling after Workday retirement | $310,000 | 9 | + +## Open Cross-Workstream Conflicts + +* **[HIGH] finance and technology both claim the same synergy.** finance claims SYN-F2 (Terminate external analytics vendor contracts, $1,800,000) and technology claims SYN-T1 (Terminate the external analytics vendor contracts and platforms, $1,520,000). These describe the same saving, so the integration total is overstated by up to $1,520,000. One workstream must own it and the other must drop the claim. +* **[MEDIUM] Workstream synergy claims exceed the deal target.** Workstreams claim $5,150,000 in total against a deal target of $4,600,000 — an excess of $550,000 (12%). Either the target is stale or some claims are double-counted. Reconcile before the tracker goes to steering. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/05-communications-pack.md b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/05-communications-pack.md new file mode 100644 index 00000000..c7d2e5b4 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/build/exported/05-communications-pack.md @@ -0,0 +1,31 @@ +# Communications Pack — Project Northstar + +## 1. Announcement Summary + +Meridian Retail Group has agreed to acquire Northwind Analytics LLC, with completion expected on 2026-03-01. + +Meridian is acquiring Northwind to bring demand forecasting in-house. Northwind's modelling team and its forecasting platform replace three external analytics vendors Meridian currently retains, and the combined customer data set is expected to improve markdown accuracy across Meridian's seasonal ranges. + +## 2. Audiences and Owners + +| Audience | Owner | First contact | +| --- | --- | --- | +| All Northwind staff | People & Organisation | Day one | +| Top 20 customers | Commercial & Customer | Day one | +| Remaining customers | Commercial & Customer | Week one | +| Suppliers on notice periods | Finance & Accounting | Week one | +| Regulators, where applicable | Finance & Accounting | Per timetable | + +## 3. Questions We Can Answer Today + +* **Will there be redundancies?** No decisions have been taken. The 140 staff at Northwind Analytics LLC transfer on existing terms. +* **Do working patterns change?** Not at close. Northwind runs a four-day week in Stockholm. +* **Which systems are changing?** See the charter's target profile table. Nothing changes for users before the relevant workstream confirms cutover. + +## 4. Questions We Cannot Answer Yet + +Being straight about this is the point of the section. Saying "we do not know yet, and here is when we will" survives contact with an audience; a confident answer that turns out to be wrong does not. + +* Final organisational design below workstream-lead level. +* Benefits harmonisation detail, pending the People workstream review. +* Long-term location strategy. diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/deals/northstar.yaml b/use-cases/Gyan0309/post-merger-integration-playbook/deals/northstar.yaml new file mode 100644 index 00000000..3dc654f7 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/deals/northstar.yaml @@ -0,0 +1,157 @@ +# Project Northstar — a synthetic post-merger integration. +# +# Fictional companies, fabricated numbers. The brief expects exactly this. +# +# The conflicts below are planted on purpose, one per comparator, because a detector +# that has never been observed to fire is not known to work: +# +# duplicate_synergy finance SYN-F2 and technology SYN-T1 are the same saving +# contested_dependency DEP-CRM is owned by both commercial and technology +# synergy_over_commitment claims total $5.15M against a $4.6M target +# unmet_day_one DAY-HR-2 needs DEP-PAY, which lands in month 2 +# +# A clean deal to contrast against lives in northstar-clean.yaml. + +deal: + code_name: Northstar + acquirer: Meridian Retail Group + target: Northwind Analytics LLC + announced: 2026-01-15 + expected_close: 2026-03-01 + integration_horizon_months: 12 + deal_value_usd: 48000000 + synergy_target_usd: 4600000 + rationale: > + Meridian is acquiring Northwind to bring demand forecasting in-house. Northwind's + modelling team and its forecasting platform replace three external analytics + vendors Meridian currently retains, and the combined customer data set is expected + to improve markdown accuracy across Meridian's seasonal ranges. + +target_profile: + headcount: 140 + locations: + - Stockholm + - Manchester + systems: + - name: Salesforce + function: commercial + disposition: migrate to acquirer instance + - name: Workday + function: hr + disposition: retire, migrate to acquirer HRIS + - name: Snowflake + function: technology + disposition: retain, consolidate accounts + - name: NetSuite + function: finance + disposition: retire, migrate to acquirer ERP + notes: > + Northwind runs a four-day week in Stockholm. Two of the three analytics vendors + being replaced are on contracts with 90-day termination notice. + +workstreams: + - key: finance + name: Finance & Accounting + lead: A. Lindqvist + scope: > + Chart of accounts, ERP migration, statutory reporting, vendor contract + rationalisation and the synergy tracker itself. + synergies: + - id: SYN-F1 + description: Retire NetSuite licences and consolidate onto acquirer ERP + annual_value_usd: 620000 + realisation_month: 8 + - id: SYN-F2 + description: Terminate external analytics vendor contracts + annual_value_usd: 1800000 + realisation_month: 6 + dependencies: + - id: DEP-COA + description: Single chart of accounts agreed and loaded + needed_by_month: 3 + needed_by: [commercial, technology] + day_one: + - id: DAY-FIN-1 + description: Opening balance sheet signed off by both CFOs + status: in_progress + - id: DAY-FIN-2 + description: Payment runs for Northwind suppliers confirmed for week one + + - key: people + name: People & Organisation + lead: R. Osei + scope: > + Employment transfer, payroll, benefits harmonisation, retention of the + modelling team, and the Stockholm four-day-week question. + synergies: + - id: SYN-P1 + description: Remove duplicate HR tooling after Workday retirement + annual_value_usd: 310000 + realisation_month: 9 + dependencies: + - id: DEP-PAY + description: Payroll cutover from Workday to acquirer HRIS + needed_by_month: 2 + needed_by: [finance] + day_one: + - id: DAY-HR-1 + description: Every Northwind employee has a signed transfer letter + status: in_progress + # Planted: this is a day-one item resting on DEP-PAY, which is month 2. + - id: DAY-HR-2 + description: All staff paid correctly from the acquirer payroll system + depends_on: [DEP-PAY] + + - key: commercial + name: Commercial & Customer + lead: M. Duarte + scope: > + Customer communications, contract novation, CRM migration, and protecting + revenue through the transition. + synergies: + - id: SYN-C1 + description: Cross-sell forecasting module to existing Meridian accounts + annual_value_usd: 900000 + realisation_month: 12 + dependencies: + # Planted: technology owns a near-identical dependency below. + - id: DEP-CRM + description: Migrate Northwind CRM records into the acquirer Salesforce instance + needed_by_month: 4 + needed_by: [people] + day_one: + - id: DAY-COM-1 + description: Top 20 customers have received a named-contact letter + status: in_progress + - id: DAY-COM-2 + description: No customer contract lapses in the first 30 days + + - key: technology + name: Technology & Data + lead: S. Bhattacharya + scope: > + Platform integration, Snowflake consolidation, access management, and + decommissioning the retired systems. + synergies: + # Planted: this is SYN-F2 under another name, claimed by a second workstream. + - id: SYN-T1 + description: Terminate the external analytics vendor contracts and platforms + annual_value_usd: 1520000 + realisation_month: 7 + dependencies: + # Planted: same work as DEP-CRM above, owned by a second workstream. + - id: DEP-CRM-MIGRATION + description: Migrate CRM records from Northwind into acquirer Salesforce + needed_by_month: 4 + needed_by: [commercial] + - id: DEP-SSO + description: Single sign-on extended to all Northwind staff + needed_by_month: 1 + needed_by: [people, commercial] + day_one: + - id: DAY-TEC-1 + description: All Northwind staff can authenticate against acquirer SSO + depends_on: [DEP-SSO] + - id: DAY-TEC-2 + description: Forecasting platform reachable from Meridian networks + status: in_progress diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/docs/screenshot.png b/use-cases/Gyan0309/post-merger-integration-playbook/docs/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad337b6c1dbe8ddaad648b9cdc96ef6a1b3acca GIT binary patch literal 351842 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 8}9*o|LOgG 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

E`WJfM3B@U>}QrP)xXpy_s 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%0D5$!E;j6EneZ9&~7q0+6*Wu*h zJ=teEQD0&!txtS7fJh-@NsuS#*;f1nUda=icJ(1HA)WQ$mUT*mAsl+mdg~aqRDQJ7 zp88IBi&uSi_Vhrj++PX(f#AgZO(i}5#@t(cNVLXprF`+H!aaU!h(5zmpy(Ty1v*JJ zP5_{H&6Q#QCQ{#aSJGCXS8kaF6m3}B3t+Y@5aK~T>3#Zp#*)Ob{{~H&JNZ+D(?dnE z`V_~5^RU6D1Y~ul85VI0+rrc~Be$`q|G^zTKjf>o zrxv(LDQdm(000jzwmMi_YdCHHz?TY4*ZMR?Sdt*gTS#V>B8>LjxYbtkk!Q@!pER;-1b63whg6leuoos}*ZM=V$g&SaH~zE0#28 zi(zbFOzSzDHjpOdfyy5_t{9DR1=vVC8cIWySDO0=aScIV`icXE^W}L4#sn0tG{#G+ z3Vlcamc6%OuzrIA{aNkunrHkNzq%7X?dAD`qxiusSttF|Z71jSPW=@xvQf*+mYCDK z8p6|a_AcAmi{#0}6A25KA~o)(@M0^mM-~;6wyDa;{95-y!!9eibrvyvxL@$1zD(SgRudC6!T*vn zSx96FFh9)Ix&U@u0U3V6Dc~?{eJ8MvGU(kJt$l^AUVq%VuRTj^nmbWe2Mi`R+gvN_ z`yzv5QopJHDLu%HkK%=d_G;o~(vO+&_o!_M>nYS|%a@{l_jNF4spFoG;_ASNmP~5J z3+n>*ftvZoy5OycN1SrFBwSJX*viB}5qx8w-Iq2wKOOAS zi~wbtC}g7RkpK9ZfPfV}?$o<=hdXmL)XmGEoN#e;S^MTDcQE7B*VN=>dpTHyTA{CK z%fMzok%a5pAU)y46+~#XFFI%}8BU5qPh!7b&BP6P`J8Nz8&RbFktk8Ey-|3t01?{n z!qDluVZ`+JJe$4g&^*ZnzlW=nskuh_o<-kbgS(N-$=t!`NuJPmn}o}f^=b1*e@pN# zd*3>hKPgg@%oSYZcXE)ign*M}OP`A}WdHhg-Wev=VYl<5fWal-vtgjI;l=2l?t|&j zcu|=Xn*32gv{u@VpxuoOzSBm1-Dp8o;F9oB4)f+asgBi}Ie&A*Q1^q%=$iS76jRu- zTyY+Q%Z7C4Jg}5IR0QO1Wm*sU*yq^sDtpjHd7TRKm-c{14s)o8jFsFVo3KWcprC1s zi;Zi~Kn9Iec&9fRq>shdyKtCI*TwCOy1^-Yw?=b}Cn&|vJC`69>f+{ktUrB#SNu<_ z++!8Nr0tfpVa1(yJ*G}(z(}W^%dKVf?GHDZ&-w^8^Xy zyAh}JQ`-P@mqw*8_C`kXE3YmgH)5>|M_f;E8fJVCPwe$A!pqRn#4(LNaXRhNR(rnl z!=_$j&-tNP{oqIU)+KLlbIZPNYF|8dcTxJ%#BNhH$YFohxGNCXt&F{{aA;$*Dy3ch zmTfEUoa1xplqn(bW)^)*vrVLEy?!1=-?1VMO^j^%c@2RXPx1^58Yw~|);Q==@uc>l z8R5%UJGINjWjGp|^Xc~< zbx|)ss-aPICQv9kv#pP9Mt8`+k74TD*0qR@l+kc>OW3yMOuf6WP2WfJKH~I2mZ>GW z_RxVj?N~a|R|of7r?!o&%N6e$;F3EgYfv*hPFS;dv`{C zFVxJ`vG#{gVf;HNN11xF7>q}*a<4;Y-9Y`4K}}b43!is#zZqUp3CLb3jGb=kP@d0+ z*|bLE&3^e3Km3O5wVcjT0pnU$7$zxz=^EwF)*&uU=_m3;8j-YoEu%Oo?9i)b#;4$O zuL?Sg&MBF%v-B|U;qhvk(#p)>WAeUut`JV&e;jN&J@##d!{AZndk_EYy_ zBS_i;&kc{wH2~Wt!Q?(4erzWm3Qv!EVkh_OP*-TChte!qSWfZ8{t)|XmOZsKDJb>{ z&oAuPMe%^0fsydhlu4IrPbDK>+t~(;M}?aKFB3Ar+%NgDYIx6*xCWlZ*y2BRE^9CE zyUYsMwBkBCnCAVV&@F_+&PDBn&^cPx>EKX@4CsOCK7)8jBaC8K_T}j1d}RRn<(p65 zzxqd98im&WHsnVsiw~U(FUis!wzfe3iCDMt$i6vIDk$Rna?qO%R)8Ne)>{A6guQ+ln z5rjBbt>lE<%BOLs&T~*!vMF#t$6wCx7}UI7{&sE_q3c z z8d%3YXC_B1t;lHIk4udx*g%S*PBF8Wg&QqX?B)gr+uKE-M-+6f^?coG6^mW9SJ#Ov z2838q#~#`l_7&aZ8*C*X<#(yDgEwtcb8bO^ArWDGmc`;GZYLjk@}+jTX9?yidP9yk zoP*|8TtpZQZCpR|!AB-1Su(Vr!(iXd<>hqrCy@N3mm|9m_s!qY=7=!KIO+^|GvEdI zh|u{hFQ3789Yw?T>Wjve3h@#bH*KT2c;A6asREiv!e3D-T4!g|gqpLvz5H2t5$@Is;@KdEQfR+8{J%T&kf%j^c%9hDh5UQTj~Qr z=kVHra(=BH>bV!s{?<{i@zdaHwT)dD+d|6MkV)5a`I9_v$ay%%4?D*uDdkI|viLlS zEXDoX#+X2MISkV}eg0W_1tng_Mh6-eetry4zP(<(viUKl5zDD7P3s7x>G&&Y6z{r0 z9YTT^>Z+^N1e3cwE3Z-n_7!qtX^oLr>xU(3rc!Rv&O?*xO%T5;KaFI$%c!*q?S`OX zve_B_OXIHGBVCKjdx2!CbT3%vaK&dYZEhB)>=*UBoV0}mv=<@<1`1td1ZX}HNb0d2 zA|(8?jKG_bVhulzF` zy5sh{tRf8Gt6GdLt}e#UmF-R}D?kurg$_*qSAwI7$U0!-;3=oTdr`jfF`fFmRhbA6 zOUc1RU#-c|6}m}p=-QIJnxb-d=Aa0tXH~an`{w=gOQjQdlnQsw zrZhJsktq-meK>C^f}d-i!HVX?VY2EiZC}z3*3?uAj9!f&DjFEdDXCYBj;u_gwO7Rx zs^&8NQ%}2APdAm$59oePqwoG0c`w3cRxa{m*3L4f>k4y4@zu^H@Lu0JU9X;h)|^rN zu_9I^;Jrf8Fm(MYo_6)a`HXpVlDV{KZzoV6uPzckMBT1(euG`BxgI#aVrQog8GHl% zd)g6o$S;L+q z((R(Lf>sjkVz30*3A~=2Pror zH=B`4@7YlUTk@#;WzbNDMVcIerx~fYn()CvGXu5VInv9e1^82NoYXt~%MNsByXKKs zOT4Ocd$A21dP-|m=;f9_m_wgGTyk{WDgMZ2N^3sJbRI1m0^^4rQQw0WOzs+b`6o9; zvVGDXsEsXsuk2P&-!0zTV^%h~omn!_A|sg!1fJGbR@V=5P?pW@Y2^&?pXCf3HDW*R z93Ct8x|WToUapastr7E}mhosYCI^R0D!6s8r-QX+#bGOq;9UVExQ=Pm5+yTIeYu1Y z^DTnOft9KobhycqlSa(Vc3Rsf)h#9M-|dEfaK&iW?p2RHjocn2iuJ9OJ!wW5IJYb% zTCKI8DG3Uxs~K~Pf`0I~7ESmG>F?2O@7jt;vNvJ-X|YKfLAPsgdPxIS zP9HS-E7DN)=yHj9lRYVX`Q{XH`1dDE!)V-Gy5Nqn?CZ+8$!UEX6;f|k`nAF-_CvEV zP)4(${IUt!xwEmgsOBAbtOUMjR3!(ovdC?JQV5qL3%T#w$YWmWw7{%A@K&Vnb-oLk z`tVBQc+dZ|N_ zLl$M#J^h}9wN?mY)=HG5B|eEUk2$`Y`J)&*YD*eF)GaWHh7+`ncou#VbWbA>gBBL; zxyV#DZX4@I<2t<7j1>QP%dlZebp!=0yP~8%!}jo`ERo6`-@6Ik6)6+pr%89y^j6Y~ zvvOD%1hm0p5Ar9={n6OIV!Q)H$3u^ulOs;XvoL-uKgCSCgegj>X;)wpsLUf>iUE_H zM#-lx7@hD}sk#!U-ODBrD>d}%&HLEfDvG(PV(sF2#d(Gmf?_!AKno5#{BsVgV8?80 z^Z5NngT8x0X1}npG8jAp8Us}iU@q-a1Bty+152$f<|{v@EnHZwy6{eFrFcUfD1WSq zyhH?~4FnVlS}xmF=qB~WoeN5OI|%*Ny55(1e)pQcjZa#}94*m<*R92CvPL#v8fZ~a zTLZ~(CwOTYTKR9K-|`g??EW^JsIDo!{zc5)QQoWQBx5(^#*81z;$QJTj8ZCO4|vb@ zkJsJ3f3U63S$s@@sqS5Vcc>=bUke5^dc`?sw+!HxWbNJTKjJ!>&Utp+i?j0tOGp3! zDO}}!D@Pg7K%nEGYbL8g<<;E%^O<7&&;tR66RiiH8li8z|4Ma9Sg|>Imam)4rlc%E z`wbrl3@{gXco#Z$=~7qkQrDsA1)Oy;S3E?-f5Xuqp<58f` z4E&xCN`w%nRQ|it&!F*5p6>+HH(n`2yp-_tv;%LM%O}4UJF9Y0M+qS^4s;h@@^uWB zh@_T8WQ+kG41?&F_9jb?1i~Qh?2%XemO_`1Bbe=-T6A&6kP($NKM+Ov%wtHT8hG>8 z=C*6`B!aToP3cFWY7MLn%qZ;wU+4*BfX0d{<>F0DmF~GT;}o}`xSeMKJ-q;C*qF79 zGEm>W-`kBDz=TB6laVn+qUfI=;`|BrJ1t4PGj)y->TdN=$1Qc4Bk(sU+TN(XT*)1OL@+;q{9}WLO#O?Smr&W#88i;Lnpl%F-E#KKI+=~;u)vF zcoq5`WPGzz+q;ookrzYcKZI%ONy*?V3L!rgU>V*bzROpn=YM5#c^1$PiZ0LfGA=MD zNnEh~#0TF-K{=E#A+S92oJoN}W6?bQ#^N!u4TUbbm@LNBOAo8m!P^CwuEl|OBe#*X z5lxFT4M8CTr79WY19vUXYHfr@du?@T&+Wvb63x zLPz6LlYT1APj2*dyti?+rDWvkps3D%Tz=r|&L1|ADp0%L!qJGuBm$`ELBu59dspL` zFV#Al$_$j=m{!`-rBmc@R~ET{*)SWk`IANj^GL-Fdi!h;W;fb+w|U*pDj{SO$^?xa$Ge{FJ}x?ahDmd_)gF^MzfF#LN# z#w%{KjUW5+AqnxT23{N@#ibV!k5jL|oU_@aj1t98gpX{Rdq3pWNMX1b4yv=ZPE-tP z{-XAA%1vv$&Qj^=!$`D#GlzT0cTd_sS!ip;k;l77yU+W(@j|Nd z+&S6VR5B*M%^x`hKwc$mez9Nc4wce}2OASV(&oEY-;zc;o2ZuXyawaVmNy|g_6+&Z zyo+JgY-%C#T%oH?Tc#pS9z;wiyT* z9jT$Bxs-({CqfyW(e5X~;>i}3rn@&L?{ziBXRJToa!MKPWj~H%KBE$H@CZO@8t zT&NW#j&F4E&@Y$|s%si?CF#gP#G*?XU*i*1O@})^SU;m;emasG9~>5+(WvOC@K;t= z>@|p99B7_fY($K87ZOtBNQ)-zznXRbs6vBskC#a`_>G|){2}+5hl4}Vx%-!Kdu}g_ zle_Sr{C@DvN~N&XXuj4cXl$VPp=7llc&y;V+T)DDE&C+-mTX`kA>XsiQPa?_=+CKK z%lJE2NBxm8D{F=PDYV+i>|KXXztO)9 z%dh_S@RI4(obwVRprZ{>oQqCK-|p*Q#a2{&W|yfY z0vFfYvrr|Hvu4R(M70}YiIewI=jEqnlwX|D+BmTgF%z+)33m4AzBiD&-$6aHeCFKA|&sZ0&OJKrAEY7~AYfVmfYFFwY0A5l468B*hG za{fLk^MVd9(b*R)q-DST+SgrHMfv6v&jxB%&o@rb#SdLLU7o8#FL9ak!&LV0WlwC| zb|*Uihj<^#sh4v(-ta!u$67qs`1F@gVeLeqinNktJ94e3E%5W%QPi+jwSovCCo~8)$2$^YqHVus3nUl?%BA+nKL(VKha$g6RE+x0q&~ACZ0hu5Z9N2506(b zs*Hf4J~H73zx}TdTtaaCr+qV{fjIuLKxU&|!HgdUfe|I#ArkY(CuIwlk-e}yHos60 zF6^eg3b^yTp`m}3KIn@2pbN*Ya|P{6%smOR>TNo3Sy?W=bUNjg!C&nm{8#byMq%@% zzXXXI-28g|X})JjTkfehQaZ~# z;j}fTSq!ay)s0pa3zMvY$Nna`3iVxd2WlB2ed}Cqu3mQS(hs6iE;a{M5nbnxwgOwJ zdB0Be_~AAOD;%BM8_{s!@(T}V#=$`?eYz%Ca?0E_u={Bml#IfAz-h~RSxGPb^Vx{k zlHW36`f-TYoa5qW{(%Tjo>7Yk_Z{!}#JVup`pWh(%4U9~E)-*Ou)Gk{OO|r#Pj*Ts zDQFtzSE8002O_*~2py+Od!Ro-qjz{!jwczzF3fxx38^^6(srcfU2SToJOrmS`LF2C zuqBD9S%m24z~p?qAj3j7gQ!@4r(IOcSe*@38a0Jy5huK|r(w z*LHP$BjbNV<>u9|2|~6!lPy3qR?}~fI|J?Y@CQZc3e?l&RwD_K;W`xnz%WVzHeGg+ zD7k3pb!KLnS^m$$&|hwEzHRLsTqt;+B}xu9dr;c{d}1t-TI+N0tK7L&4DIwA=@y4< zu<*q#W0Ebr&z)CWIr1K=lU~b?)vvijBymT599yHXw#8nG z3jeFkrR%B?XLm8ln$uA}|Fj6(FJ#jDD;2q1MkNrMnl^iQ3W99~8Gqeyy!7o*Gq&w4>DCVH~SD=me)Qd1v@>5{CF*?oY>Ql)~8{Pet z(U9J%YZ`xe>zWSX^{6BwHO%=?o>ZFWH!rK5=cJCm5pxF@@+ueKr9IJ!@-y=|{9Ywf zbJqr%fpYv^R16=6(~Mc>fw(sz!tGOqDd%eR#fZVIau3Oa%lHP*;?W?Tgu>EcvQ__U z_Y10DD`C0S=S?pp`^6jE5NkH}1BYxYE5;mGP&uhZv}j^pGci2zvd5*7&naQBx%K)S z30d+XV=BXUdUp)acdGRF-H?pmynZ~*PUVV(-RP7izg_o)vw!BY%<)(c8mMMxpPij0 z1lDe~Qm?Tzz68eDN(>}*G4v@m1Y>3P$WoQ&xK+W2C}XsrxTGZ4<+<0@@x{Dxlh-9~ zd`ky)eYH7WsDqL~U6{2(CsxnyNqxWeIWr;V3vZoX0Y)^;UHhLFQ;!#%5Zzt6H^?No z{p*({rS}yp5&!Q+)QfBELKP8LUAg~DD(eHgeD3Sv+BKbPU-w0hZUWm3f)Z{)jO0_d z%R$8He0VvAbTtQu_@4*9ao|7VU&K>kBh1Qg zzzgWn5$4KgT-`tx*2GF_6_P6NF{+3DS-)_wV!$IFAO-m!(u9u@r$k7iFKZ26UWMD4 z^LDAj&;Oa9cH@S6pY}tSrkVwJe0FHg;`+nI_R{6`!9M5Zy#v^LuB)m4Qn};LkMYhQ zPJvRu0Ac?wmalAd2c`;5of&%l4_PUGkDrFo&6AXPM4n^g`c8WSGvfF5@JfOI)$Fq6 z%D**8ZrrG*Ir?)}1Pq~|5Uw+{U%z;OS_7H3j^VQO8?P+4ptJog|c<~X97R| z|0ZFrLxK4B|F*Buf3ER=w~w)ZivIkMmi2!Wrg`=pUj^`gY`?+s;C~P&;5W$0|BqQr z_`hE%{2!%m)QSHGxdMKN|1VC#3tI6v)n6$UYlH+FL+dw+&nK^Y#j#UFSv-QV>+foO zoiJDLJ67Z^>Hh89pZ)(iZ*n!N^1z=d{p1td;rMFMcPt{}o-=(yNS7<= zs1z+Ih+N%zX#$!+eh6H2q>@3 z*?*O$LPmHBGde9g{=QO@mdG(970e+qs{Q3drTmnpyw`G5qu03*Q6>Z$cY}gnHkRjQmGjnp%r>NS`ny7 z@Sk(I(GvgXnsHBA@v*WH=sI(LFCRFwJ#(W`L(?;2o}Z$?JX5?;&)7o_I+V&K=>~taJBwG=dW8YS|~kXW7ku)?6$Q_G0lUJN{sL{MPU8f2I5t>+3(%9O_Xv z?wv#tb?N)t7e>Le5?g?{H`>)k{Qv+`W7J5z>bdCpx+?ib*3Za!jJb6vUtR2u5o#x` z(ZHr#RcOeysYG_Ya3=rp0NkLq7M@>otvRayMQmG1;G~_o_yi=o1RZAWLo4U@XlYu zty((Y`q1||2?o2UUhq&Wd4K|HLnu}`HHZ+wHgsVJ9!?!3w<;LfT&AE2xud#oGSqS758M}k%D43euN5mVzyP$Sg z>*WX2qxX()az!FmswFo?XD_(tUa2ccNg2km=(jqn>kaRvRS+CqUBNjvv(f{4vsmg7<<*c%lS0$452+g164yxZDN8q+Q5>Fk{#ADxL+a;{f#n%Cq(EQX zC^9lBIx|Zdr%RqTW^{0@E(#fW>wDy2YIGO4ukE?UBzs=(Wl4?>w|%W^ZlTr&S#%Z2 zx%yBiv%Mq(NTz#a% z8c|oi`i(`uJ+Rpue<_KS=*hXNuh(EUr9`#dDENjOyomK%O#$jhcI{o-U9+krn3{D( zh^4mkn|}u84Ub3PWOX*p6{ltV*7Nu`?xcm;PceXk)ZXU#{_4C(D2eAf3Lj5u@9Y+| z=#c^o2a(_NtDG0Wt_JCuhQKto+^P(kE0ZJSb9+kAj)#j9nQrOQ2~Smu`NrL^)BB6` zRz-x26weS-purywQ;RX;9D$FpHq9@-B(`!>FvVu4U9vehNh@&dpuk z$6U68v1zpePMIpeYZcb8<|bj6RgZ;}KxXWZOZ2e+OleZ%4u(1V4)R=W*-LwVO421~ zh7|CIAxHx%D45dZ)%>#h8Q8cOt}s2t0HkS!xK|zdHkk8M-jquTRn(4EY&g9@+8c?z z$LtS7$xv)!WBg8;Onf4qmQsU5lLhP8FBIjWdT8`y`7$KK4o`7Ts*66TUyQk=?QPbE z-m3ojVV($^bn^5z=VC*!smJ%XUQQnG_bI@ikHl2LV86Aap5vne^h3mQlAF9SwM~^{ zzvn+r^o@^#gyQw;b8{y)3_#qoP@~9BipNk*W`4g&jw9>$9;*)VQ7?#{SdYeR!bDW6 z)poCbR?ixYWp!C3REb5+?;PEh`(ALHUkco|Mq|g`h^^($AcaVbYO{Cw5~rwI+S&sh zDepF^^gr3}z+LB+`D18Ba5KLH07Qyy7Rk1 zR<#xh3O%LYW+AW~AYm9g0FXKIP$6FHftV~f{H@DXQN?msB+pKD5Y(H>X*^wZq!kpX z&Jc`vYPXRnF#STg_r&@cD|gpv$6mS241aay*#)Ov9(8K}N!toTw!jPhPG@jqe*Ix> zW;t8z9FL>bL@zPRF;iyCld_(UAGD1Ij5iC48V&em!8X300C76`i``pA-(Il=LvGP+ z)e}}`u1tGr)CL_lq&C0$N~#b?6KD1%`UGkxZLHG$;9;`<>BgJ5DD1}3oe-@DHgMQe z*Vk3;JZj>ldFIbwY-0|=8PgjN*t1?poDNyHnvCKOkY5Aw<4!JBC#9VWVW8z!mTyoq z)Y-praL1bdx@~RDRj^OPp2&h9-ce+`*YWS5 z`?>S+l}-U0zh&3=d&w*Bc3|d{ZJE9?aUEv-0HmS1Ty+XBvYn9O=w9eJ+s*EKTj zUbMg$IMVY%#wx$%$^O)5TPgyA{VYkZw^XGnE|1d+wjT-(6_jtGD@Y3|Wx7NShGq|5 z>1|O}7|<|es4M!Fv^-&{nk<^1IzbVbt4leUPIpl|u8jm!Vyc?p}LGcy$fq+S@s+S#V@<5-`|p#+vwP#<%m~cKG*fH^n1-&l?2z(((lJ z_)Php)TS|T7Un5jo69c8j9_UInFbl>YNx|odtYP;G{}*=CH#+GcRKi=Kg3f(OPN;t zkmkDjm{#R%ethj$=?-C=vXt7=^@XT*a(*(c?2wu?6sTkT;?!KR#HId?O#^jb40oB1 zd%cmqBXpfhNTS-7cXa3Ffl0R5UyRHK;j{4c<1cJ4i}~-U8`9Umz!g%XI2yIi=3NAm zzI=1eT6)9WBW;HQeZ?y=5!`7bh4Tb?KZlPj|<> zbv{cb=8$T$N_fwLZy zuG=#Atkf7+ygUl(A7Hp`zUg*G*_Kk+x zT*P- zW5b~uVy4Xq0%bdy{^accL^}dKNhK*ZjGBES#z%`^kPimi6gzg86+KN$ZJ>I1@nkqp z*8W7RQ~{I$N}bW~mT=oO0x!9mY|pfMAevXhd`YzHC!W9a7rX3|2ZKMCaN8*UUJXNE zyaV9f1JJyK_gPec#kJlfPosJ=x;aOIE0Rn=bl=6yUWi7u7fd~K3dj8sbrteBI)5DXKVf+BJBq z28tqn?-u>QqZBnQrp z8Pn|=>u>M#(nj&;W{MS3|f`(h5R#Kg&iKb&h^ zs3!iZJ9a~j)f$5!x?@w+hu zRZ0s%)j@kXZfX^07Vw02Qg5>($lh;gPlXxCx)k9j&hjo>p+E4&wBuu=50RUp-&vPs z8z3$=I&V4=>;N-|?X)A33=5xlr!8{86EU z=U>48%~6;|_}DN3XDJE^yIL`s-jPq9X5%bc9h>eau!0)f_k_z!@`^1z2bsCl$?}gB z*aWFfTX3JGMD&&ScpchO`DrBnu_0B)GrORS5 zKOG}xbxp6;ZL9%lxNfTTqJu{u#+ov+1HYt%v{V(38!Q$R5z zRn8f|C>Z^LME#UV>Db;vlk=AF9e`t_{qWD=$)4=Hzo$yWX5STLR(V%G280X@r{$Eq z#=g-k!n@UxZu@jbYV~I{D2osbF%PM9v{#_Dvg=(%h-O|d#aG}?OiBFr=V{+y5>HA! zH7B*^D`{s2qDWUnv=YNjigkA1wz0UfQW^8ul0WX*h)cRiFcs4h;eYYsphVIbddv9P ztG4#0iRCiyOGXE9ie62<4M#fahxEHtg*3OmhD7w|f357t+xQz0zf>_tEj0diUw$P| z>`STwBvgKp%4ZR;J*yUm2s2Wh(CN~LJ&ZPeESLAwup4|dM3%OW*Atj22;>LDU{yvB zbI4>C??cC+TQRm{?VLXz2q$IH_QlfE_CoeVfs`wt5r=(quNaj&N+XC!DzYUJAJ8Wq zNW5I}{m^sm)J1(P8Unv^lFefI<+ zH4Pmm?Ko#!r78$JJ+89F#FVR0sQFcI}1=mvUSPB;!Rj9XmSoa}Tj! zN%U*lSrKGa8!k=sW-)8!#}rX8*szXoO-{fq+uJ(>IBNI36!sA(Fk^jggN=kWmAoGI z4fdxC^Y3J5FOwCK9rzA~a9#RAr5c%@-R~o_PbyT@E-^An1n$bcoUDcgr;v=@$J2O& z*Y@Gm#SLqTI;aiNN)WWlej-{i`z~9L#nGVGk4y$1B-$a;MpAZGlLr1B9ygM2Nm1m~ ztM^WX*aph|h3tJ%V-fu(U(HeJ!@zUwOj|~im~W=)$!58b8LuMSEipjUyu`kPTK#QL zoXFnp`dp?344}l}epT49ky0Tl{u;FSQlv_KfsXb10G?9&Yt$>?6}T;b*@Q4zZC($* zqH~~o6-eRQop83q5bPKkPrv9)C3~g$J~i!-hc%T`zt=m(-UtS~fge@`4~`_O_l7rN zuu;JaZnYIxubZ#WSZ?R&oz$q5ESSA8NF%umhxO(+;L+o$0AXN0@1rneR7mcSj>=bm>ZAyiQ$d(77S z55ZuCDxWF^JBVSEOBE(eN`6=I-d@SYRK3}2I+CwozXWlR z?gUT>ShS6ax>?2HZ4^F?U+?-Wm`g6}txas>pj+c|FC|Mr|w#*s1uvh08Y6ViR*4bWKpxi{I zve-l_&Zo+}72T)}r*#%?Vtg!7a2Tx3mW#7ro5AR1iX#NQkn?^G z4T46=vt7UX7T6h7!@pVLzf;%!o$oDm++=JkiKE`=J|+-Q13v!+L%)5|uN4m&i88j>N{RN$m7eth1(8%5 zEWg&Z_-i;|g=^KZSF3R0%O?i2FHOo-h)A~}s`%nr{#0AzVqL#V8(I`bdOL5Z0Ja=$ z$vmS)>Rr_k`bH=06@~3%{Dm4nV%HEX`hc&XtT(xr^l1D*zrAy;vPfOEa!4LhS*4p> zU#r>)0PMe6PAJGYf34cuvI>5Sr+s{JsQNT}25fY*@ZEhoN+s#`eS0#bmSzeW?&ss6 zTZYSZI@kQuzN@uH5;VEw88$R#ORhiklmjWF4js0?_U3QdJ84yN@Ek4ap&vd^R8Bn> zR$rZs3Bd9^Wc#N>UMYMZ3S?0syYC^b7H-H9>X+;5mA4aiOO`|N8g-S5y47sb8ml$MDyDSp8h3?-UJ-aD-ngfu%T#~hOn8}yJudhsxnEDG#@Bu8gKNNXtW0cyqA;NLj6$A15E{brt%mdM1rNH zLB!J8yL}>g>6AlF>$$cmy!u3?HxpxX>OyEJVgoznC_h2H*?|`*3buX{+;cI01ls@C zEV3}|ByQzbzLb;%Ry=X{^;i-MM68-e_jl@&cz*G;KK(Vd-jos3O}!fO;p%t`i&|S- z%l0=OM5kS!<3Su_wAbb4@gHpGcyoL$&e--h!L;7Q0b5OB4Ig+e#QB^`qt+Gb-f5f# zsKlE>PJWU3__}xMROPyB;g13!f3=9xS1g}bPZb5G>18lSLx+WeL%Jb#io%EwVn0Gp9j9-r{es1+1LQb%2*SF z9$u%$%cS4&l)sWw>(1hEO3Itf#Jv5@5Qvqvjd%w;dusG5vc&zJrN-LA4&HA;&xj&> zJ^`zz*ds_~jIioEY5J>XAzfC|v5#)d(N;*w5{}PQdrFB{KMgW{r(ITJ&iYP(w`aw5 z2Ffmr-{n8;*>h8Pi92!Oyl-uN2D4(4TZj1ED56{=x-@Ad=|sJWbj?Y{xSB(y%$1Y; z#?M*OQeB%c_MY&721VxxJ)_rtSe%UEQC$jQTIM(R0ec`CbLinK`(LZA{N)u^^gXmU z!YM!@A4XLu?=oX24xR0@eg5rRPA0EDRkOnP0?ne&%!_6h7>IbuQ1BS~-HjWt#pDLJ z%ZsY5ZlN(HY*f#Cnt!O(Zrl){y=l1jM4Kb8u8S<=eAofvYqc3Zo;9|9n}Y%xww|^v zGXAof`|aj@;q|H1`7^ocvwp?P5PwpN6982+=x&Sb8I4s zjiza^RXl)r>E-8VggZUH*g8X_y^e9mg;>=8qV6rA;##_W-v$B+L4rf@;7)Lt;7)LN z_XKxKaCi3r!5xCTOXDuVrJ-@R+w5;=pL6az=gJ%Jjr(3P1`UJm#j09Wvu4fTe^%)} zKfVA&T`%3+-oUkw|L(4Qm7VjSn{AfrTN`Y&?&>ctE^Ll%mJ$;)U%ntE5%MGCTc(_d zMLfla+>H0=UOoIcGn|4${NIbSsqUsAEWWyMFm)nPAz&_5V0T~Uk3>5%Ue zsY4MqvTZZo0pIuPY?h&Qh_PO0?qjP-xTanW>i--F2gmC_cC4Cxd`j3`eBpZ(R zbSr)^YXtF`{@~afOCoA+V9UcQt`0+0U}&G)hkq3!(OIoq6wciz4)##D zU`etWi--s=BWvvS_RFa*V+$fZ6S#ZKyz5js%&xGYkIvIx-H!}4a*4eG!TlGIEV=q0 z)e@AjJ`eST(n{%r`PSF&HrHF*kho-*U-=f+eI0G_ zDt$ns$nN<553xp)5o7`jG+QUElJ|y=uYrg79plY^ny%;-WHkDkz``vJzh2_t!LAH8 zvs_*u9bF$h#sORG;UK^Mq`ukkc+_Y~!Z1~tN>(XXp!so@~#4sMOy2I9%qRx&vZqz5b%bl~{gNMnQ|>DB|I&qtw3(wewj_BR`jrFMPu!= z!Sve}*3^VO7Z20G`z0fHxbKmS=kg87QG6q%HdZtc>NTmasM{~%qI2Gz5EMsK7oPF) zi^vus?a~?{8%m;-QF$r#*xo~nQk zZ=|JNw^-3ceL7goh#F^~^Jc0c<@FoRxsRUfhwv50Mj@i|5@S zn|f6&Z%q|VLyT$dJ>5|6>vWs!>uVS5Fv?8HQZi1s=c6jHbz>wcNyU+=(kQ7>*2Bbc zvUvp;8>YI_-IrA)Bqx;uYb0Pm4Laj4Taph$h-+IM&_ks%w*zSy`QY5}XC zCP0odj}!J^c?&*%w-kM`V8v$-A@;(1q7V;o^HG-I>j6G|Mf4LATpV}2UT$wDm9ifZ zt4YbP&zJO}y7Dp^jW+|@;E<5#0ldmT`vMf9E0p}GNFHDl%Mjx(SmLTKPE}~m`%&GZ zo|I#VS+zz1E=qhXiyJ;V#C7}?He*R5mOo07sxb=xrx*RE_a)RR8bOUteZqKKG^12v zoR0+Y#vyC6fZDF(2y=ZC>9n9WJL<8wukC|zc%gO_frvC!*0_`*`U^;O7-% z>Zs*^kNB9+fKp-bL!p|wWv~a990h? zlHe&&{oFj4`F^F4pi?@gHf-bT-7tkt9H5BeN&=BnR6s0wHaV+MywS#3WfHmKfvlL{ z2g8Jj03O#fo~)7iWhfO@-SSjYlDf8*V8ST6v>B35kzBvhuSry`4&)QfyLHG!+JT!P z=3&MvZ{>eEvBbY8nZ$9~&nHyqt}4rtvvQqaXD>}AC;3n)0Yv{QwV8uRPwJk*GONd1 z8f`W|#v(G}?2z!}9t1f>0MTisolOF%BzMlB2IwvlV0j;@?MG=?>#;b-bH#=%#^)Cj zf@<-dHJ@8)lscZKs4NxuXd|Du+2KapyP+H!a?Td@z4*YMKwMij5acW^+p%mv(1DIx z!GyMu*cvzd(Q|1kx&+xPmXLuu9+&Impt&@#c7fj__MVkY5lzSyGorzZj~c&}=T`=) zSk?z*R-Yp_4t(Htumn9$FkvY@-@kBZtHythL*3_RC+^?+1y8&6YVe{CgJ^4^Nd=fi z0~IPZ-;;=`sh7PsPjp_KIJ0RDiTcF>A%|VSFr1tpk6Kz2NlF+FZ$mtDO~`c7^o23a zw*f{SHEkYQ`h(Qgwn#zcgCNH{{~idPh2YPo?8S}bpM>huRk7&KAUBc;2)V_YM9=cr zt2L^F`{Z}&IRz@+gJ_L9FJ}ZbIZIdyt8BA*&uRZO4W90s%sVvCn(o-eJp>V3sIya# zClsl@B7A)M{Fq(q)qgACl6sDZr05tvP#+wE)a*@NFLG9(>U;=Xn zDJm8b<-9m(9lyrN9Wc2I&Z9!=)b>pT37@3gla#@*q8aX7Pub8&sovm50vSu8< zHcjy|HCwNHArRu{V2?$d>F;*fUE-exb}{3&5Pps97aom*c(Azb`!A7|qKE{KL3guL zCz;G9Gtz1zs=2QsPYa)hh4EtY<~zil1>vJEe)$LI;9ffQZ&M}hc~5&?4D+ljbjSA= zHd~DfjWaE;5fV1i=EPP;-|x>>y%q^P`?kbI((YAj_W-5vRn%7QVWgbB^=a>uMZ_Ks zugU_Z?V_5=oR1l`Doc2@%dhNaQ3j)&rPX+i^j>tP;&ho=F6DELh6{5KJa@6HeH@a6 zXmQ7k;1@J$518Vc&|7h}Szq1qnOZPM^B;?eL{LI~AL?Cw7Lr&M7z@A~_?%4NifG$E z?%st7pNL;y%*uFy7Fp*x!B4Hy5-5K^MhK~3c=^Rvq#q+ue`esWMU&BS)i{sU&&CJY z5J*swWdzpPOHkwoHJ@fN!gbW-fB|m+O*>mLo_PoVG|w;l-9mCQ)x)r{K!~*Jo=sZV z?iaM$e+MgXlblmu1yb#KJ60KeDKe5~7RreK*4f)#-bck|`kjV#xN0$`4(a^?{7@B> zstGZ!-W1ax@9cMka5il|mnRfSq(uIzkga}wZ9nPoFO zR91iWT2^@di@(`{=d)4w3yih~LJkQI_TUy9<>nTGP-6E(c$8C-p6X#_V4{y{gPf+l zKpWPz_@!aTt#O_YAF$*bsfj&=B0^sY`a(e5)+xdM6m%JeRn;RC$&jc>n-zBdwGOQ+ zdfsf>{@uL28N5s;ZslV>Qxd7%N1Xk!YNal+xSbAUYAMR6Go#)lm)tXfWnEjM@f)4; zfWD2(gzrehEe^SLwACgj44-e_$b}R zaWyg2XQco+@N@b@nl5^6W30{-dl?yE->TR?U;H?^rE%vc5LaqUw-tZlTJv5QQp4&e z^=o3tkjad=Vo zl^VLI1?1pH&`{4)jV%~98=#_cX-~L#XOMpw6iRVfbjPZj&`UdiPz9n=-x7$t+dMwb zBnU?&K;*zg61N>g--`U^fS$;C-Df7PsIN~d1x-fx7X;NWe}SNEQLm&zlF|(`c!f%Q zYiFtkro<<(~}?kYBFUT2yl7bCw5t%10+{da^{)jLa2Ug&Sl6i_oRcq ze-amIxxLRiUmnv~y11F|F-mh{@wfTY^-sh;j3+D}>iUEv#!>7Wx+M;5rZ`f0iAXsS zqB62o+_zrMKR&dHmK5+R9#?KRnYpDms3p(`)NhCfgoio*ox@1%$)7Z#z;S!JCZkUD*}n4V>c{9&gzGiurL#l#!ctNi zvl_q1o^+hQ9|y}5>7R#A2IKCS&z|(~%|+GZV@&M8u9pmkyWb$A6KU401|xA}67QGBY3ia%RpTF0$pt{AG30Oy}1i56{zN zY_mCYM#K)LC`n-OW?jf~0*5ME;`Wtv%Jp9eS6Tk;@iH2o>Q+J)Md5UjIqyPeR6`kA zOWxlAmO-{=7c#%SXIogpC0Doi|HRd*7)NxjS>$NhNcO4~1e{yyz>cOJ>BUatb*{*I z6$uglsj8K^X&WU{Sl~)7K=!@GjRWILYQFqir>hI#%+=57?02u^-r74 z!ax*o=_?>g5=E+bO>*&EAUbjC*-fx|zT6Zby9Uk^_B^s+BR}FyE50M_zlj-`heM@K8BLC{n55?DwvsJ8SBrayi2tsF z>map4>6*dcjru$WoVT`$w2Z$ojkHJd$<*0bMs|@VFll5ePQg(UxkR1#=ZYQD~vfMAKeaT z?!<^|pzA%JUB=iPLzXAHR2MV!V^n@o*RRq%ueC#&t7-l6PKzLAxZCt8m_Y$=i7xUF zys$BS<4vJoXY`r=Gtj$uAr+FC&Qq_qwG}ut)%V5iqo;e7AY}qnEE%(Bn2s4M9ShQCLgjb^0Uq~W`2%q_g5)$Wxyal;VuiiKjp=*p4-}i z%$=1bpv*zg#f`s+NU2o5V+5Gn@&gG(f-cgJh6-;_TPT#FrB*>o@^(JR{q^QZhhgjZ z_1<47b4o3XfKMHi?l8jnDDvYo{Ci&P%B&KkC{IjWC26gTAh{;UF1W%{Hf;;FENY+U zeZKD1TZIgBK6s_A9(@gWjv_1c8LYNmNo-zNc@b{pu{S*F+g|YKOh$ZwEm5Y%ERR`J zcBa=pJdp0{dlC1nOuW!z(qv8WgIdHCmzj&ZzetaTqh)>Xf_ zm{Rer(`DH@ue|dGudbeCa*E>}f@@?js`F*!HYcASF=~lo5$4$H1F(Yf6wXfNw$7CvF;TYm^PpDg?%zj(s6&+ku2Yh#;UE%EM!#YW_V5%wyD%M=dwW z#s!jqjIvw4q5Ru?G0bGkg*EQ?DT@vZcf-0z&VdqYj;7ajuIPM2QuIcY)tDr(p6jng zAn)vD%CSR-2n!T>&{3`UYt#~d!7m4aB|BpMP}yTXE+%UCM?}&u4;zmn*LiK{r(=*_#c>)W7FUbV%_ss{ zeF+gxU?_-re^R)(kO+^~BI|v6XrZ^w4&%K(Xg6&J;?JFnh~P8sxqWJ{TsWRV3jpuj z%y_(ZBG(MW(bc=t^0MGeaCwMA9_>96=|RvC`w)iT$$_>JW)addm zZ?@0FQsi{5T+Wa@NK7lusW|N35g%1Sc}C>FMAYQUhZYI}jX!Ze{6(UJEvIq~D<;rI zVVg({gS6#zT;fV{Z9;O0>ZBrZ41+`51ex0(on4M6IRt8oYIMt0mLYKZ^x&TdiUE;@ z9Z>MDYvc{=#-zO=X#2vGv1S#uK>BfB)BcCaO~@2&plXPBgG2Q$2!gEfSiQnaK-cfK z74mK#?(Br}YGJ+j+o?jCLPRHyo%!E`cwMr$hRMC#j~nN1e30u`8n_-6Ji>A%YTNu8 zO9f^<6}4TQMs}{m%w#ZniACiajgQJXCz&6@mfFAIwT_9mvOO2h93b@QPT`^bL&GD3 zttH*iMcaYcaqcg6J#nOkD)foCjB{Y&Ew9q<^)c=J<2b2Vy2s|_UE=arQ4lqJJvg;~ zH6)l)kPO1xSN4~Go??DbfKN=t;`qF`eRZLJDAoZ6z3N&CLo~OyW+tNkDv-i`8oZC+o-&tJDh@^A=D3#iE&YJ>nRuuag-y(q$Pr;( zU>6Z}3%{XNkI+c}3ADQ-6j?@pz&sp^6tti{gphD4J1k*=ZwEdic2|dDUTJ3fn~>&d z>-InPL5>0YGw~^+?Yt!Q`8H^Fm=@7jQ?Vd}8AjPG-C%EZKw%&5wdGy|6~=kY8lv<- zZsEbKe}7DH=wCch(bo>VczHfoPPzG+MMs<_?koPE3(q^^G@<mGNL@wX|lzRTZ zpV9b#JDm`+!>z>tmcIkLmVONjG{7#Pp;%5IVF;I2S_YcY=c>dS^w!a23maqGUb!VK zcmR}+e`rVKdZMcRZ;5?x{1_y1A^J6V81bzvTP7lpUkiN-*NC?vWUxp)MIn1Vc;L8N!z(Q#r9s)$#_S%7 zkEkZ`!^C?IHwb8rPyCy++7X8VBy<0lL2EI(x>tQ7CCOR2dxxN`lFv0^nP-l7f6up^ zoYzVqu-R4RQ(n-EURqgEQ-2zArq2GAMib0yOZWOOMStwVJS3;pe_CnPv0fxi{rJ0! zjDZ74C|>%aNvDk%HAYC1P<)x7JzRp@^ix9-C_|Ho{^L9rS5z@hqC z{K$dly=#wy*J@SY+6w9fBkkP^d1xY6BsVJXJZDpwKqJZIe<@(-GJ~g*G>7ce-sunh z$<*`R$n;(UIC2vPYHS2%V2 zK2y~VU(dEUlQ=o5Fz-v~f3h1(AdD47P9X8m?U|IM1qUa~C|$y3{Tttfhpa_4p7NW^ zxbS0KHoDsS3`idLbB;$2f(J`3)>aS4RM2BK%Zqa94do$gn83Grs=xDtga6O7*!gGR z>SJ%M)6RX@GX;U$N@*Qq%PJ|o6_J~cb-3dfhL6}d5gn7Sa^cS8WX2FhkVHHbYvVp5 zeJF%?!yC{druks!mkBi~yr)W`gsBP3%@eKgAumuHP;3bKB%63>3WAnab^gLtuSQ!{ z-BJs-)xtcS{|B<3qwBn4reP4UCNZmyj!)p(J8E<9b|>&M?3*iDC9_Mri@D{d1|j&_ zO0C!)cjGHPmhQQ1)XL*xT!wgpHp@ph=fC?c?5*Wy5;-wv3dgwXSG4g_MLst`^?)otBA<0%L$>j!n`^5eV9hQ^h$!B`S>dl_I@l=e+*WL@~805^|!oQ&+NdCo`Mn8f9k-?^DG- zl1Ew!FUf!vOOYd(DK5VEHu+AnNOf1xqO2x9Y2UG$y{B4FawEQ>KYcFig?asDtbWpTZdqcTFA#48NYtkm3`ZsjOsS1rNt#({ zEMCUYU6JZs+Y({cs4d_2LIJeqF2l+%R)((@OI+?j9EXIa*Ob?k6?&!A+EMoVUJKwR z=7*V;u(6Rkm#aa=Hl-h}kb`j}*B*u+{ibG|xoYwTuTrOkr}XNKFEexNV+Qedbu2p7 z-c-8}tUN9}mdiF(eGN}t7%Rqtmiq{-)NgMA!JOndD99nPs%eHZ3DRS{>DOm2DMkduK0@}8IyP3T7K-jwF(V88g$~sn=;=-N!gT52oSKzLpBLcrqPUy7YATrsMDUllUgPgj{vS zX^|Qxx(w6zIzY|-*wwU+t*EG-Zo4jM>xd)vZLy7g@osQv@ilqlmbS-e-c|UbAx}G} z?+-$!0YP3!W1*p7&X7R)YCGShI^>diA?#9;+L$D6>A8F8GiyaqmFkzYuWmj%1;un! zZ9>MbcEV_IL0=c6T6;|`D2}##IwL0ldO{t#XbkaF8R)SGNf6gV`iTh7w%v zV$`WPv%H&SN4OSkmF&^r)9ZXA^H~nbk#&B~VHvv992#^Kq;2o^%Vt|fkJAgd)0M}d z0@&~?jA}^{Fb=+*WqzlR8KLjCs5YM%dCji&BNZ=7yldT@`_h_C?Tin6mxrZof`>vG`rLU_B}E4$-p9B5`^C(@7# z;- zQp3J<1xJL0q9-rS@CW~0_UeqXX)A8?m;|9Qh7Ep)=p_193LtvqXnci2&kyC7!U?1B zq14m1VG*;>~pQAMvq@r_%*-Rsps|HB?si(S9D^lCn5-h~>sPN-K$OG-3uy2#`8NbB_A9EkTbS%0K?3uTv6kJt> zx3OGzT2yqWp1@5d61w1^J_hgFG7rIaoL_GDCrnWuLK80)6Q~b)zug%>vMJxJBgZpb z^FQE@{km&aeN7In!xP(5hLS>L-4^#G9CR{tvoM8#tTf(CRI^6j^|T@iad!VzsPve| z6Xsf~ws1<|so2AOv94bASaKR`Ez+@7ncHjE39)%+6J1=Iz$KbuJ(OWqzv{3q(Tt)p z4y|xwss0kU`W4A$O2lEitn&)ZC=>H|b7JI!x;&MlSsYa7>Yd#hd!VY-L%z^y z3=JC(t;&x*I83btIwY@BoZt?p?sxgUPC+0E`A+x|gI)S*e!n*au7<&mwb4Uqar@`z zivdf|QJyAAwbR!uO$+4$8bi{e*cF6xVU1#m{Xx3LXy%QUKhn!buWcqLa#u%oHOf{7 zN~ULbm`R7K7-zdE4`~1z)QjqwtPQr$rjo0w!KKz%{86xaYDlWx51J>jQ^;&c{zC6w=NIGD64WY@uz&!?tRX*M3H}I^KxO_as+c0~e`X zb`7bz6Fhfp zTd5boyozm5S$s!*rOlc+0NI<=)$znz;aD<=f9;2;lcuuSC_F%OZ((D8{^SBddebya zGzC-aZ$~6v02%B8vzK2gdRfI2C#kGl1EAmN-ZV!<5v4sSb9ev5c@dk}O5F&@^-8j? zh+RuF9$`_)$8?5M$GW&-U9B#uJ=q)gjm7CD!9a1%)4}w`QJ$SOKTLeyV?*;S4A-gC z{cxxfYHA{F~kf3_-T@r=-{gllaKjzW4!$uIbgoRGQvY2je}&+9;#a(xz^u9*CZW}*~UnqAdu;CRb7LstwP??tw@mo6!S`@)wjHwVE4dLrLwpkjM7m%91! z(~m&oAi>lO@e+Au)rBydYQUR%qq*{tbg+-XRf@ScYHjj()iIIiDCtYVuyKa){Kn-CBCel@AID zkd38gNxRyg_SBI07Mh#hy(!iQZ0%0`+E-)#aamgcwc>7r?p1j5w^64u`=vUUn?c1@ zra9fV>)U9;?ND*7yD_jNWHQNJ`x#+T(&FuUKU3%_)*k=snZJnuII5Cd+cL~=X)RKIC)<-%CUb0ou*;8oeIT6RzqtZxOdwGXRT4c$TU-omh}a|i zp1TO%Xf3h1F`g{c! zXq5pUwZiG}Ys&7=Fad%cEFZbzw9vct^wNsc`7N*kMG&9;G4Cp5+JpYOt)!-JGen)! z8pGhbq%wwvl$bCH6tK@;MV`Wo-o%8N_@{UvVIzs(7gi`hZf^277V)u5s7lp_nFUe6 z=LiM4xctL2Oddebi|53i;@5kAx;F(}8YUC8XI)FSutqAqRfEO_#N}cQD2`k!SQSH# zsw+qweXRKQ%g62mVoh1~qSG%Kw%g3xqX2dZ*kkY6%{Kv$EZtKcaeCEB>7z-sldmJ` z`*7McT0Qf58b7v-3sl#JWwf7#Z4!X*3tVrKWdX0GovwFhjx>pXUPC8~)EKhE7W&Mv z#%p_tL##l|(Cl!XWi^H=FK%4PQrlwm?)zl^^Um&-BY}CAk6z}Lx|o1ZPELFeU`?|4 zLvs|&UhB64rJiP-jqZnIJ%-ztQV7KA#U9UPtSG@0#59)G)&|QQr>C~IKa;M;u{rJ3 zpd?I^Obg`i^58p+>r=OXUK_65)80w(cu|aav1*sCsYVk}1`%dV3;9)^wy>v^nKJEw zob(1VKQKGH47!Y%z9!~cTEF5MI;##|~|yL+0TOfnq2$ zx?*NkVtDk&%#X5o8VhYC+-IL)^=nIt{lI{keYvQy+#royIyMA zOwRKJz4xMq5fgW+b(INkiAW7;>+y)A%VL5bx-&e0nNT)3h%l-);#mF_Is1iv&Y5Ds zYU+g&iYzFnj6eXL*{%dhkIMI#2AV2lVoy`#lPX&a2fgzdJOD65>sV9?7j2z=5kHXu zV&xOrn8HK9dZR%U{pp+!r>*9)m+=6nMKPCyzxLzlcBbs3#Gm*>1q@`MH{YJzEelOl zGKuU(74+@b1~XcP&5O9KER+`=!^F7SD`+FYVu|tdx|JVe$`YaD-*uzsS;lL-ZL7vq zaiT_8p1Sf{ZM#C=)Rsl?uxGq-ul3+9@bL3d57(pZ60SD9Z1a@!#6F;rSFhor>FNx- zX7w{!jRE9Seiyg-yxnGF&a!+67N8_1G*|b+ZM`PG3H2+k$K{sDFm$b(-?jIxY3RdG zwcUIDq5XB{SLs@fKGh=oU11zP4ja=%6j^ZW`{pqc&f;1}R^|66W1hq{=RN`}Zdb;0 zJx{QoDY(Zxd5^+=WPIW+7lpRUNlHt%9bS5S`U@+<*1N5QPu7Vj0%)cObmc{!=P2cy z@}lIL$UB<;X;Hu{#3rb^v-GYK9Nar~{7dFW;bvg6R&zg@ak@@p74GgljHUnl-E zr9kpwecnCE`dmKTo|j^$G03;x;uom_Yg9ej24gSyc;`6e=|`7o9N0D^b^)2sH=9uc z{60_G&)5CC0{qWFBJZ2iej@LO_5SCF^&rS^>n^g#t!D^gwS2t?pN({Z!x6;K%BLGB z6Jr=NUb9o~=6p)Dgi)kTIb-W%@h*>zHC=RXENbAy+K8H*uRv-S4)6ZCvym*Y_uZ_P z-Qz}C19F?w$?whv@6%bW*T{sNuD^eGetZ26pYzMfZ$FsV@1Qw-VYmTB&qSQQTL_y8 zrBSN_^5^|MZ`0y`x>z+WP zWa;40aG;^`;NF`YXLXnz?eE%7fO`L`xsARvR!In31xNiF5)`27K-ohnLpmX%ovrs? z(Xaf)*rt46Bn6BqF-}%)a-~aofj;yY*I8cURa1 zJf{Bjr9GXeRJ&F>mJe^72u|aFe$CTIwC>U)uOpo9gQ&q=J)UQwb;!9 zN_x4wa`5bG!lLs1UAl)DzI#;lg8-DlM*Zx%P4Ed*+SlAvpQqEUtt8q96hPPx~}lwUE?AS(v`Ne0weL9>N89z$J0hw&dVg(bhT(B zIk#+PDWw#LmIRJUtBl1xjKlJFYP&7k7rv}d$g^1Hq~l72*;~X2awY=w(Rw8yJNjm& zJ+adr*h%-!m@J@H9f_cQ6AxF#Rd+e^FMdz~qZN6X5oU0wP{ltPz z2wtzi%gs#C01jE}DXf_Bl?53K+D~7z@tPCv#{V-8ZofkY(W04jTt*RoJQfd(PCV(h z`Sb3P$)LNlX3z0?S>UGW<>#ty5~yftP4_fxpICVA$P(LT!iR|#QZIru8HQ~y$Nu{P zSDiJr#!bPwq$Kg_iGuE(o`Z{i7)B<{*vB~B?qv@|(AsG^1@8$COQ7RI+lZ9&m%94Wp)DtQXzDm>p6b-oHlj?!(SoEN* z>MWrE=Bq`cx!N8d*e8}gPTbR6wV)STBJanHjCWyoS3ov2oq1{w8v`X^3060QPK?hm z3IDMMSF@duwgAYE<+eShjOpN8=cZ#JCCHLj(0YB7ymc{C|En@s>s&X(o^%XTFYTFn zr=-lv8EcObI_#09;zph2n)d_1_w$yecW?h6>yg{q6JGAA>UN(7MuQI?@$t;{dizB? z?V)xtmfbC3Gw#0I1PkzFr)}mwSzk-gHtAf@RWRhvR`Lt$ZH3Ir(dZDO1b8hQLZ$Rv z6{i=c6qJgk+?k4keY|h%cjJzRC1ZTJhFp@<-NibGm zM)l88_{?~k)${>;H5+bpbao6L(A%wXC-t0{b$Cs+d?-I^JdIVVd$?uqSL!5Q)F9vV z-3#1Jrg0I3?Qy!dH5xo_5EH_ej;tILq%OK92Hig|CKRU!x@w07%y~{3xwK#1G^qcN zIot}e7A0`*IRZ4YxwhIe{hM`+xLkC02kd-dH~B=6K?ev{DO^ljM(!nnADnp%^Et#z zUOMn(liyuh2?4i-nK*~VFZb{)Jb%41Swrg8T=8tIDjnF15Y$F+-92789Ly1(lo$Cg z5!}KI${dLm0!tobl;a)GYum+bDJeh<(NkBtGf*h(roPDx3Q#Ti%n>s`RlaI}+|0cc zn7^P$q=8}Oq$HhJq8<|)b?nNEHs&5~{eK~G#m6id$z%J2=Coy2mOtyTsdB0Bm&j`8 zFVnyQ*f#j-Cqb6RDOwt0r{1N)2v>rPleHDFB3vR_?1-k!51C;n}<(6d2V5*@y^rp5nMlw`HgiDE6pM?fA;hORM!mPq9N@R+JOI zL$TuGrq(zSsnS$KRNEFjr}3jf5o}^Z7KKddamrIm`^@%d6N@-Ibo6?p1lXi+cN~$u zid7(XNH+CfWx}c-GET9kFZ_5UXMJewSn!0Ka~lCC(1Y1>th`yvVq9$F+7?WGfV$7b z_}>Ogi4^Hu!f+CF;uf$JQt2(0i2BQo>zK9pp&w(6Kb~2N(q07$jr@?CtTVaCKbWVF} z685@{PL}H~dSG^+vb~|Q#A;=bmvoy%7a2B>wDNnD>88~seiu{AH;*mK3*ny~=vq!0 zmP01X<;#CC~F#x^m2jOM7_09y6VX{607cdVT)xE_zr_&q2-%olwo- zI&A*FIVM0eHXEgu@l0_J&mSDiAIS^FYnve^_{0x_%u?63w&i3@ zD%Pb--DCgNy!3X0)~^!`Q2wn?missN8fq}UWSvvza!c0LuR|}rHj~orRfE44;sW1K zXpT;u13^4NM>i)&w8-%Gk~%P%;m4M17wErBsb`z51_W-I*WX&XNGG7mBaN=v*b+(4 zY_O=U;##{Dg>*PR_YYFdmD{0f^w~e3BD{-e<>shA0i7E^S9ktma+j>Il1^ax%aVb~jLWH4mE0Er zr|Si57KM}^%LdNkFz+ySell*TcK}%mZp?Rq;m#7dbcJg#D_-^*Q76n$z@a-@4OiLgdJM)6_|b zY$Vr#D81aHq6(bhce!LR*C4sflNf3bb%F@Ixttlr+MIw-1GyfdLgfEJsJ>{*b9X{6 zN2m=;Dko^W&7^~7Z%EF+jk-+w6rkw77x1{7_MikYc(yiOUR6ku9Ioj=vONDTXPA)b zIF%z2Uz-)G*A#WUE7MmUDacwnEuR8QRxF7|*~pW14>XKOH%fP-MQaT2yPyhdotcTL zcW(NF3aNDychRxeX=h05+YxymFC-eCmy$P@`T55f1&n{|gC&8%BiTfFY6+1cS|bHqCnKMQCq5RoQuF(&9GO4)-a|utIDO3)st_7iVK0{T~)@^ zjB(T+0$k@nSs%PH1NXF!zG~CcXbum9gYE>3*OirFabYyOIJte-S!?hk>)3 zacLE3dbNo7sk+-X*-S|VyPb1uNV~HpUn+-Cp!r5)1^S$mWqk-Pl^L`4$!|G;gMchD`tbq_lF1BG~9*5%+xa1Mlu=Mad;%Z(`8#1d( z*ZrLpjk-EbOu(D!-gWMsF9a|sQLj{Yz}LvKN9#EGSOb~kv~e2KLGk&qSG~uJ4vYCm zCkc4;bq5HARSN`vgSmzf5yMSUX|G?BJbW5T%;wlgrb*{-?}bve5&+5U%_vp#fv4bP z)UZXi8YYLRt-~AJHlyqNoGiksJ7@V;%lNvM^9kv(DN|mdoZkAf^q{0hS+o$F|Hj^X zKsD7y?Ser-L_|acq$|>-D!rpprAqI;*GLULDAJoq@4fdDdJ&M`q=XhA(t9U#l8Jtw z|NZaGo&V0PnYCuES@$K21d?-d%0BPedq2;!xA?U)X=L6WnhXVU{|qK@ zrHiqzE|(2yvV3-SGPV^V4YjnXACrzU5ITX^nUz4fr_gVl{RH6mtcVwCAs6QKR(Erh zHM$^70l|AyjLx=AC}BQlYiq;&?ct>*xA~k#3|sm+)uP;{J!4tg95N{CLbPblk4&=B z_#@cqJTzU5{9MU9QG4p!@o4A~Hcof4IQ=-ZL*pC_-1VsZg)cdt-uW%BvT3i!--}8T zc0hZX7b3B1E^F|gvIXJgHzeG?hwRLXq(g7GtFh?b>7*&BlvSr2WJ>ZPx%D|=pN53} zoaisFZ)T|TmAh9SVFA9%QlOg+bSQvTX%OKL+@%0-Tw*n+)tY5PsnFhp-uO7|qR?F2 zL(u;pWbP*oPj&h~&>Z2@Q0#9NshXp4?*Wf4eQzw_g_gIpG{4D$vvR8}t#mQgrc#T> zwo}zq>8y|YWs+uflAz8{n!EXDCCp;dg0oG<^LSG(*VspOiV<8i_;yfFw#rK!fA+iIVqE?%Jx-jY!Gx5&ERP`|EZ1DSJrXe(|wHM^Xpj+18aXs}J;Vs%MV5FrE1UR4StfDX6axwxc>TaF=7qP@`9ds?eJqz3;H2_$rcmkV!% zS^e~<;H~-M&P|C)(xv={8#bH`0E``a+aLn`UiaBR>dn_>p=vYXjx&Ye6Wk^@bRvZr zl~;0;fQId;w)Cb5Ue4HhZO7X4hI^1QdI{?II@=w3-I88@Q&DMIo3pS*4AyZ+OcVVC z0Bjud>Xv<4w!pSU&oU>nH=HgvMt(Ew5(5@ShaosvVO>d(z9sJa*f#y1dP2h5@|WRn zeTy=y8BF2JTX$AeBfe>tHt>9e}W2iC^LAt|7W$6>ZnBRpOL;C!7SwP}~G6X8eCnR%yqQySE7RYQYr!-PaA z|MlJp_h`_NL#h}FCg81$7TWYqpGcLy;S@3_1T2qz_oVF{C>0}fE8Z@V>lTkaKFe1T zaUcTMakdt)rCwXjmk_Amj|5e0XoP-vsi=-6Z)HodsMz!Fe*o*@FD0>=OB_f@*Eh?| zc&<&qVHe3z&MnzohIWwv-UzRz@sRAFn$dV>Y-MEc{zmHr%{PEJ#k*HqQa3dz^l$H- z6_0G!%F#`o^H7i1-@7E`&9}<6SgR6ju4m=p<*PBNU4(MYHwF3l9Y>&Nu8KAfcc^^~ z;D`92I9vOE;$qEH%a10rz|-q*wk!1yfdW2R==)-SNxZBAi`(=8bnp1%fTeJ-eeYf8 zc6^cND|r3O4ZC&r^=G&0tzR-fXgT^e!{6JDXxP2hiU0YILr?X;!T^KrOF(Jw*kW)1 z+-a5HR22dIw75l7RxjPh&!Ha8=;&t(b*bRM%WGgoqYhMPNx&bAKovtFsF08FOg&lLpnxX0vNc&x6S)uCaZ7yZi#D zg$z&bm3oLP0~i{=GlW%HQn96_nr#$RR3n`1tHCd*Bl@BChW33Y59Bj0e=Y5w(d?qZ zMQ*K%`+k{CP1L?1w#WCSA}r$ynJiQ)S*?Hn(cZTt z0t4M}Cu&DK_s9~@G#|{hH`Rq(G4$4LI1BnaODvYd(WNx=gOM*Bf_!HrMn17WF1|BbP7TU66(_{VRsgEz|{=Pau?9SofJr=97rb zacz=xqi(IMK@)FCJEO|InI0OpZ+^vi^G!XdR1n=*owg3KmA~HRK511^gZs!#`u2bd zQ3RoN2A}HU+{ftK&bp6ybQ3a7zWL6opQV^RtjqkpZL{xd#&MF}RWl5u{N{=BKh*WF zj>CimBGlFtaBnOACEYWYUc0()+u?1wmkg*^E!K24`{jm58HqbZ=^Fda{G$ux3pL-8Dki!{2YZ zd7!PKDhmfME`j-UDmUY^l@5Wufd2m6FngSLpMFYHLonvM|^Uf_oE*A zstS6`w|Cd5*MriZd2 zix)pTeL(tockK|plE+>SW1A+okNn3?0;TX`Wv8_`-TrSbAy#T(y(`)*y(>CQhqt@Gq#1V>;mhaO zOVWF&@tKn{zD#pFs;J&i2`ocvmrZNaze!4nK-wgH^isIFN^NUoqRw@;+uAa^?cvei zCxqBg<9i`J)uUUGV+fd^yB&Gd0|^GMgCP!1ubsuT0pD#5ofm>Y>zGLeH@7YuvoZQa zx{(ihJ$0Jf5M(hnTPdtjhSwYGLb}+fmM%6C(D+;hD8!HBQ6DR1y`ab0kE5tSi#CGQ zNzd#BT#m(?;Sg1DqIdG*2}WyyB<)x!6a-3XaU!C!6iq*q93Oc`Jx%)w^1@W4a^JSS9k}=F<5VPLqMUxDf+iEcMcWFOGs}P$z$|${;vT z>-hl3)3LKBCE^htA{>05TU4n)q*1c~t3iDz#Xvx-+wY{YIs?X`(oMCs6&n4KxGXJX zk88ty`nqZ}P%ubHbrG>Ka=+$Tu0qk%OW)18*$Tt4QIY@H;#c6N>n&YiDI;X6u$Qh@Ng55iv<4yeB%h$?8)fUQULdAF`Ax) z)63k3Odi*QCJfAOlRP`Z*|SARAGYnIOUI2VO>M8vPOuTQ6mcuPeT1d#-B_y-!-RH= zXpuk|#Zz?0l7Gg4Tx!nmsBzKiHPEo6c~tMGdu>~3Cqqgmw&DIX)|k~9L7_CTxY>)##z{rrE#B+(z( zEXXP-YO!pGRqpr4)o1L2DE`|bn~YIp|AF58UhV%sP|PjT>jeP%=x6IOY4m1&zEdEs zaKUgzjSXslVe6`!rvKoQM8gMOfz{hs+VnSZK(&|YJY`QU{Gp#2mO(%iZd1rO$;|92JHRA`9!>;t+C1$_b5Z!;!M z-v!xP(NO&kEt0UliyaN-XZhI6uI&Mv`{@^!fMQjAiq^hmKh_9(a_L!if(pk zSYw-ysOsO{nG?9%#Dq%3D=vKuVB17UoHxG)k{eLc-Z*$)qFj-ffSbKh)aeIP4fO0>wGB|=G_|z|XGii<@iJ-@h*7(T6jd6; zH(wS~uZQ9=RP0&DvJ9i=i-(9&e+UUWb$N8PcXd5)CApfu>tKG5_8-$I?xI(-w}Q z2guh+KN06Bt=Wyb7ST1SRF*bg)I|D+;#uv?_Is>nqbAZsa4C_6ZWS0T=C#X$=a!i2D!ZJv^z2*G(4M7Gx>j*kZw7*UJ zZgwfuWwN*SDZk52dwf*z7sUZ;Qx3T9!kYbmrU}$8Rz?$g@G36zd-r|!j(}AbM#sBO z$_Kd351uVk-4sGM$jSJP6987or0A&>)n>A~#iQ=o;r=`Q1SMnYr850d%+yg|3>$EV z_I3Ra1Y?4J{!s%~U&&W{{l4xE6M+UcT81L%%IC1L_REpsxP`QXcw(|vLPxg8r=rwt z0u9xCrl`gRh8-4AYKas6yuT?IF|aJH zZ&X~54>^!kKqK~@s>(qJf;YTdD2B&gIs+Bmo8?K>?V{CdPL90$+RV+|?d~s4qmjfh zZMmHe&~vi;@*6IyFxj1Ca+^KuP^$qXFD{$gZNAr%Bn1xRO_oj=_M<1duMbZ`QvT+1 z)`ZY>VlJ>e%@tSDsj^av_9Xn#@I!##Y%a%7T5HTw6Q7M$OMOU?N)`SaG?P#AB;q>9 zUXp`9l@6v1pYW=Frx0Ozzj{w*dXq5^#;ab-;z`LsePk)on2IKUlJD@Z*XphgIlc#c ze)b0DHZ8!(LL3>tq)|_}cITOlP5&iQx8TPqg#5Zk%zm_i|B)F~8;n4O|Q#MUNOjoZgwcI4F+XXS=Rc+62Zv0j# z7RR0`<6bfRh6qC`>M?%ockpV?J*Nx1m6>j3)3|G=Kh0rL$_}%wSlp|CS2j7-?r@wp zNAXX2y}){3*QoeV0l76FcID{c=9a>*yYDllu4|>;&P4}xb^2I4Y&M|x+8vD6(toAG z-;a=1AK_PfGdgJ;%R<^NH;leu+uO6hf7!bjZl9;&*S9w$Slvt;{*7#2mBg1WewgIt z^jK+;gXFr(Ym2PzBX@nLdmK`QrOFqO3N>9}HLCxQ6^2rM65ON!gJ)!uA%Pn)Fs6dL z$t-AoYbMG4FQ%`O)Yb0-`hBx&20_&<+Rq2XP#>9T?^pztydwsT%^RpPi{p8>FXMN| zim#cYvvS>Izk0?`@lv)mh;xSj8=k2R_^*Aa8jGk5Q}t6zooq65 zI@;2!3GYb}{l+d^WBUJv1Wcn7FUG+}E62$BhA@l5!{z1>@yyC`DF}N`Gh^W-a z0#f~C$lF#$6|6mAOVH1uCw3lI(`M%Mmr`y`lSXXcn zrWb7^CrphSloK+Uf)3O1fGDdp0%?x7cZ@hgW<+286^}>&@1nDA$!MZ)QK)Mi3HH6q z^pLZ6HN^nqF&V}XY0UmC^$n=t3ymxf95K7J$=(lf$7f1HwybxIiVDRTN5Z!;y*on2 zd^gR{Pv2-pcRlgC3YySlI6apGBJ<$%n4gymJ5N{2U`46U#N^n8H(Xo(K@QEL6A%8# z5`j8|>@R1Z0@&O{;)!&34k#C${F5pW0{ZN}Yi@mjCqW9Qe~4nlfLESKB?59h>^D`7 z;lI8$Z&ivuq0nwa^Qx4KdDeS6j^ILceIv=Li5HxEPtk-Y?Xf3S%TqE5a>PbOR)P;l zyCOEK4m)0O{1TcqN&wiqW*>x*9!?9cosRn#$wt9m6%+1XEbrc!E%1F)W*_F8ns#GE z7{B~as=Zw%Qh<85-JsYx!;W~UYsLalgbt&+toSJxh0{kfvccP44q@*5)dK$skyI*< zg6fsj@)n+%eHEflTga#wW%l5WoxzCyns+t&2MG2}k)M~aF$&VX$IoVVD&ix74?57Y zw=%@W_FfSdM@jT+8x`heuJJdfZT&(-Fh()^=O>@0luwu6Oe?aFT>WRcV#bWgbl_*R zZ%(vTd#!qg%3oV7uhDWvOVX%e1%BfnJrdoxLwhzfe`BK4xhfZ9gA-|lvQxLyQz@jz z5KSb8MK^Y)+L$!1>DcPQYFLSV&-dH|$6hlV3DFk!lYJE|z_TYLKow;LMy(&;TmJ|Z zId5g3)H6*Mp!Fq_}W{ON6QoW8m^#R8j}M!)`lqp|43Q?@24oVu z_p4uH*RStWGCH@CQ0(sV7BSV3C-evj#-{tMkWru5Yj`@_%~OnlRD4Bq)YcpmqDkw{ zT+F5;P}-N$ycoMEUj44NMn=F!6R4t{YyEff4h2 z`iA>xX{u?)VwAZqf?@5w^X3`v^wHdl{Z;V87XbRgazw!X+zW^L5+e?d?_s;A%Ps67 zm0%FMsO-OEKyzqwz;;oK^Ow<`&|%ul01=ET@`tl`-$b8cTxfBV=@);9I2y~W;NYs{ zuK5Kl`$`Y6&?T<)@YL`gPKnOuK8>`sN?}N5LCa+mo}QGt(?nUUle@o*7EF0??`#Tu zUH7_nTh|~l#qgLF%TRKXWi>-y?5Z<>Xl)CqIZKQI;D+x8a)!SJ%9KE4z7Fvk@$M*e zZ!@u!eJu36(xau6i$5Ps&#=b%SFo7DSUK2no0e|p zG42}xmT`?)wAHJfW2u;ulyP?HfbKr52UpTu%>(1_-Z-PPw24p?BTxWStaLC+C-X{x5YdyAesHzRP`u?{C4KFle;U`tvv@uM>($*#P(!j zg;-nIkoE4sJhM?1RG=zbnuSWrLd$#jdM%L6iVLN6V;J#f8g&U8ElC_0aR2fyY;7`3 zp?}7WJ5e9OzKdt=pnk__Zq*}NygsA(BddMJA4L(yPvJCR{hn$-E0sa&LU7Mxfzmv@ zsE3Oj+ag69P47vd*2-x-i~y@F%P>>Zt_cp-h!i#wbB(9}Mp?>8qpi-HI*Unm?j#9G z9=xBlqQa3q0Oi{3#o_|eFXBpPn;#qRvi)~j$PnTGLJR32>i?f1S1F+A!DeR-KcKHW zBI1hH783oeX1%q&!hZ0@!Hua?U^$q{_N44;3e~(VpYM4)fok18xn1iKt^4L?-+l4f z-=qxgy9ez+Wwd%lg>AQx-l77MMxMRGeBcyQGOw1Ixym>&n<>E^lF*YIlHa(OFl(LS zV#&Aler{ocVd4E;z89ahSMsR~qrif-Q*t7Aa#&NVboJ|T(^%C@#5eWe!tX@JBewFFDa$WIYTs9XtM`Bf8nBDa5T3Rw5`mPw2Ph<2M43R zr9yV5%KP+M=-x5Xb|k@Xr*Y1}=V{6shK>o4%<)m@I-Urb3!MY1?-CVr$Vh_rcj&LUNkpQ9_iex zfX>C14=fk2kyqI7f%g$ z+1TcgofGg@+uK3n0jkTU!=dh+eBK|WX?BWxvD77ep}{h{%ib#??254msQB@2vez7-fO+rDYsGEgD~ba*i>X>AVPh+ zswii%8?)(tGTZG@U~p=5#+=5%l(9+~rT^p9+WAJa;}{dEh{_h#52lX^$MV<2$k~xQ zkK>N?@S(Z|D;TbPxx~)mJ<&Ftp~Y;(Y%fts>ZXivW$Pk?rXM%14>K;r60NLn=5!Sm zJ$QR-%Q|!px||E_@*GGax%BPUXV~7qb@d-V{L;I)zfa&o32R4yZ+>M}h_p<98$HY= zHuW|)Ev-(FXM;-aBmXT|XF>3Zoj`K|hBi}#;bUX8StIpW$2iiAwJY11sE}Rfa~U(5 z_V_|&zSa|*JIjZuG-9cFKkVf#6?ap|DM@a;ZHva$i}a5PM#F*3orm3ZWEeQ%JTFA+ zB+eyLoO(~f3LG4|lF&WFDW)HGt*UiYaUUKyj|YZL+e&E2v-8 z*3kP$wIz+AMSZe4+~*mB{Kd6ft7`F$tj#`1g<3{M@U}z_{%nNDfWux^K}O!?^1!m! zlQqOfOkPI5Wi5#4Iv~)V9vXi?<}#-YRcBM$+qTCnV*0*qcZp_gj(MiK8QdzUZcRK_ zaz5On^&GZY(oMmq1g+X}Skj`bxtsDLUKrx|BUs+@AVV$x(Imr$sNj^(<8peo$V$5- zzpBgRmt8d4(WSfe`2_#;eLG~8*WX+s50|ZP0NZ_Omr?L33ht{qdl-F~i*72uwO1MS zgv!g&Yt1Vv-$v4e8CP(7Bzch~0CPi`N<`frEf#tf$<=92I(Y6(5N~NQgT8DBiWm6V*aT``Q*<`4Va< zK{qu%SQMg#oIF>Rl<;J!Z?7BfCen&*y|~&yZS66GMEKNRW-JCR|B~NpZbG=YwZp<1x23Z^IB)f zow{Ld`1`5QO_c)=d-(QM{31rg^OsZPnl{Lr;c2~*yfb8fpqEOFghc)BR+Ol3W}E37 z3DaQQX;;e21h4d(hvQBguLwOnuB%*&SX^l5a)(jQqt)NC$Imdte=O5mSB>id!-J{V zW?Xmovai-COeIaYz;pvAyW2`P(H?jejQAWko|bciDW(wGxf$Zoy{mRH8=%8xWvx1L zY3Z)QVEK&~*ivEfdaf?}#`5@uL@l8$3XxNKbrp$mL=Xj0)U_&}KU+SUor%C~_#ISvQ9#de&NIhZQ2GFbfI(90oo3)nK^v;Y)p#)4u+?T3ix00i z`#fSLZYM@XQlfqp2enZn4cm$9F+}g>0h{N3`9{=CfrH1%OcD%Tew((4BBODSN|V5| zcIIZh?SO46F}J=e9%t=m-LUTLhm%<=LlQz1WOP2AnU*%6OFB{X$)B0}d(NZHV;3lu z6k(dg52@g%Lb00)K=Uw11-nvCVjW;m7vOU|D8rLyYxrPQ+DcMlV+I#kdUJ8P5!j_U zI92A@v?S`@pBy0Od#592Rn&x7+p{NNLZ#(0`1xU zEbTiwd2_kb{t>~_Yv6rbBX;8+a7=7}_!01qPMB9ZSBCC27$Mb*V{UDl08}#p_xw^x z_{45Ki@F6Lp%%EJIB-b_$FO_ZaU=CPZ>p+9-v7`^#s(gMpSh}j)2Qu`<3+7}8?IB^ z!v>c|Ub)^24clv@kDj4gz??PbK( zvTDO((@v+?;RRf>FCo_vrPq@grrNtV(Y1<#q{T zTSvuG$dNljaarCEr85$f30klG%W8<;ZuzXOytsr9LMFYM6%MB#(9{iT*tK-2+v6+3 z+@+Hd3b%f2KiAxrm~;%l9!gUOQ;aX+j{NSfujM2t@94W#iR-VcwtF=#WsyoHUA^wl zBr3C#+=<1(GhOR#cc!`_A&ibKFhu(1J0qXkPV5575g+M-S(xmWVgtWnJf)}-ibuu;0#Nhx?3^GJcoQgg- zH6uKHKgW!@ljIdc6c|jMeY)Ecz`mpTjM9zZc5_rzJK{TDM(h*?RhvC$k^}?a>**?j zwrhw`x~G?+wR5v+k37SK-;9{|&ddSz)tR%<2scGgSXC?XWV-FTY$M9`R1i2JPYzxR z2b=cFa4^JF<(OIs1?irNokP6RZ*yxG9dMq)O2oWSM+&+I?NTD_7X?8Xx4GjE_2_cn z`5mvX9jF*uVd>z_0K+{<$pZ${TgwBn+m-F5ilza%1KT_vH*9U6U3JYP&7t!6Y{Pli z4WIS}q(`ey8Q~hgHSpl0tnYE&f!$TYv}g&)j*Qt&^m@-L9mea05o@m`cDg(=;MVI2 zH!z&oO$DDfX!D20a0s_-ZRm1rG_B=SL(55*}tVOQvp?0Fp%Nc|p9PHWC zcyJQN^lKSvSKkKoN{Kbon~PkvFVFJDxjA&WRFdRw~^Y+T@d@3G%y>5Q*aw(x=&#$s?eRxg&A4-@%k zo6EU?tw&yQvUwUsE$WMli_8$&wY9z9Kj^WBeu@6I$3|sLRCc8G)M=|>T#8KP@zRxP8dWs5#DQXnLzM#1Uo!0XFUxBJ{oCOttuv} z@V;Iu()za)tpydjDP&^m%uH^sRzk*87BSzeqJ-UialFV7s5Ou#)iQ!e`!Iwdh_;LWs?^p0|T!wn+;o)CO)XZi0Z(NBr@&?Qs~PFt4lOil0<~4}_5rnszsX(?jNqZ-|_0YDgqD zZ%U=(8c`sIIdrs82!5O(R$3IVK5*!plV;CuWW9Bek}HM|>xKRp5_xTwKaaWJzPP z5M24eNRb=ITRY25&&Rc!H?DOj(mu<=zE3HjhoA_2Vkma)C-Og~{$+&~!Lnkh=+k9WbwBzb_OB0yON=WNk%4KxA z?~Vh?JO*KIh+3N+9&}}}+4C1znlje&p&CwT!jY7qdR0(kT35r1R+R#F3w;n-FJ}#v z`uBxY4;Pn;DbCzAOMG13o{(;g8m3OTc^`P0lLkva$oa_d@|oAfdM%*mjhA0#Y6Qq~ zvpl84n5enD!H!cGWwUwEWDK+Wy-R)tv_BDR#Bph4tZ0uu{)G_e2`Fl;w@_(NRxMjk zA1VZ*DWxJS-?V2cbEs^g4hM<-G-sUyziEHYs0dZpJG72TG3-H<7MPr;`w1N{t5MP8 z5Y!I4Ih4O>N-cHIBit8l1YH}BEPV9|QU=#gJznEHholu1+3hIfNU;Zp;o_@>1sggc zr(wE_#fjgPv!=sX$`Hc|k`gy}y6`^@Jma;uno85<#-d}Q{LaO50Ml^ky&C%7(UhGA zo$hG(rwacr;pWwNXc%OOXhx$2IK-3?Z1J}Aal>|r;4bq35B*)6Ghgn3nvP$yS4yb0 zg$Z!do}M0%`@N%VWn+8Oue%XWA#@fD*XXXt-7j?OiFG}t2gAZ7X&}dE>UfX>w|OIF zcEU!js%ujiKd$<(&ufOd8QG-Ke%-dyP;?KlL8_g+j{pLwlT9y0frSv!KX$Sz0wep* zIwl$La;1hny?l>G`YJK_13I2>|M)FZ#z^){Aen^3s;s{Hg58FB6P83E6Ct8!z@+yz zKtv%3emSwjhkTaaQ9c3oxLzQVrJMjRjl1k68eSe}{_DxT@(AB-dRw^8uHDAW^_=NV z(!GJn=`lU$+(N6|tYQTjd*6hw2^ zRMxPOT}ZS~iH&xhMZb(OisT6|S(@)N?=AmxwkaV?U@T*-7SVaEz1MXiaO5g=a`TNj z5aF82Hmj<(Z)3UjnDh9Avon^B=NvRe1#d3Vv3=Q8Fb

znsGp=AbYcI;5Le{t^^^iQamRb@ov1 zP1eRO2V16>%uG~1nPpRzuNZB&K7VM9dQ8fhQgIro!=;XmNJI#zzA_oQN^|Qdu3(Elv{`U6p*Y+>bGZ69MzLp z=z9Q;0$)Yz%TCQ))J=4nP$`2<9UTh6>0)%BIu5HhPLd+RXi??I(QgAP-{{wPm+fPv+uP5^90I^3hZDo?1jid zwNH5CPSrsrt&J7U#u8L+1EY!donOjXq#Qms*kq(t(|q-{jnrRyDny|~#rD)AfHyk% z7j=+-w_VdXY(h=bw7Tg}x7ecN!yDtgYWra^S#$IS)uuOA2R0#_P+8HRCTo$NuWn}|z0@*IBMA^kA zY@o&OQQyDVbbeMRC|7#QE(c*}dVP@I`&f!3|6RffqPgaCP|P)!ltuaN^%rH67zdRi z%miQ?eb=iNPcd<)egCYt2M(a^TKqw{OZ{5ElI%Np=8u-^dMmtS#xz`^xk(+zgqubUxeKrhCD++nMcQnxXRU3~i~Bm4`K0`^lo|1P#f$uz z0pec=FH@8dq?b_XA&m@nKL-2^uqLu^KZn5C#yn_|^L3-P};D&_5qlF0Z3G|>>Q#o&Pz)Kr?aJiRfTz=fWdSj#JA(9kzyrbDni(9AveX#+0FgSHyU`~d|b&pmoQf8JYFV5U7Ra$ zU&uaT?v~g120s&)U(aAwdj>0-vcX*Mwj2r@?JN2-fidyT7plJ%pg88*8(~1Nmk-!B zdbk9`raHs*nE-lybgf-*fNpPWESzMXy;;fSwC6gu%ch)`%*o9dxvMI%p1auCU*1hZ z2+=9(+A1Hd*@xgxunF6rtnWU$_Ww|Zmz)9FPqDTHNsx$r5RlhL(wjw_mU~{rAlClem4nh~d2jFwx+YCyoSm z{Vil*pH~f@TLEtup3#-~F{!MHKq;n*!pzim@G(Revmb^>orr*(V(pJY2IcY9X;n0Z zY@^ar)C|J{7;g84CgO0?LT0`5Dw-P`%W_JZOa44Shb&-QCJx{Zh&>+T_U4xW?YQH5 z--e+Up6uoH%;dPOSldWhve81;VqoQ=fM`#cx;ed}8YqdosZlT@*d6CbH-TD)RZTfu z=b5N)7V?vhbwvg1<+7T;^39#k-cZ_QqIAmfv*`)908~8-rjPwbS>v8cP#})C`Q+6K zP0|tcV_C2i6@Tw9p$*yV%bvQC#SQ_C0k$5|tZ08IqfQW?TSqaD)5c4p3Y{}M@r2FK zcknx$A%bP27c9lLb#ur#f#=SX`lO?=3Es*+S<*L{m>Y$Xlb;;l7vH^RCU3h*kHEW; zkQnl@S1*Xv)R>0g-^Icnz6=dk+RQdu!AgEVJ(U2|jdB#MiwZpb-f7q_#DBD=#vmDgl;Nk){U()P?&@N&e$&HIcTG=*WIDt}f z_98vfwQ^JBn`#b9SU9hAl~|t0|_CbqB`oX#r+zt^K&zwL{+B)0-KsX z`8A-A`F5M)!NsYS`bJ|Y5o597UCa$~v~{)M`{sY!p6Xb#VHMd3RdN#q>P%~z#4haF z*Q%#~NBf_?JZ~=N=Y6uO8e4%fITyvC&Q_yfei%41oTS8N*{RrGlak_C-NeG`liFd+~KQevE z;V&29lK{v8iF(I+@;c>OXfy-3vw4+rPC59K-PK5M{8!_+MqUIY9YdP;$yCm`XvUNc zS`Ksh{mjQOah*YOyG4@J1!A`0CCw2)*K@Z}vPC_?c5qZ1Q_2B?>%ikTWh3C-(=x8* zmRmcwwEMvjKC{3#zb+3__@K`Ng78i8OhWZH$r?Nx!7?j+(kpCeLsxoWgUp^vm?tkIZ}`=$Ylh&fer! z`wbFCsh|_{J_oyp zEZFY+UrE&2dN!sb%&~S@#ituK<~}XVbG{|h4v{5r*F=n@;n=d>E_{-khQ|mgu|1AW ziqp!S2XE8V&~>^^R4*DejzRgDUoIFkDFel=of9~T6lE)Wnz-kW&+C}2j8#0p=sT%; zLHi?d;r#+XRSZSFD;(c^us}Bt!cclxdl#(%TAVd*R+`sw*xp=~u&!RP6XM`w(PN_> zSG52ce%va`E^KcGI)@tEA+?aCaua!ybA6aj6g@B*5Fn|_l`5CL9OuNvN9|z?zAT)W z4Kb~H&;w7Uq@(qTSj)4lKv417d=^Pttf)HV*(qzzgGvTWr3B-XB`FhU2$DuAaxjWs zfOZtt@(Lcp?u)&Cp$}7YpddBcE@Y;PBnTvP7zmE9BKxc!CuAt}(_*WyW?{@uMyrtH zdS1mU`BZ-J5%;x-u7Mt9eEZgZxZ}-$`_`$`@d_NZ_L-g!N{=0=P5_56y`g)?=KQwG z^)!&-cD-U-QbK-XuZJKmA$}`<-VHuHX5*^2J}#gxi4MhxsGDDPx~UD<%zKvME9!iE zVsYMuIgC(eo5~qz6@kG%=qx;=^~Y_*^Ou}_OV-~OfqkG8sG^?0S3<3wkx7z7LB*V> z5F;etQ;_H0oAv8D7K6-pjBMv%xDP1iRa=?qvb@(L%&y*WT1p$?rPBcbpBO z?ZB&fCnjd(QJv{U0h`rZd`Zihn3!PpNEs)e{)*sWd3-xwh^EQ4O^1$~Q*l74xi2o~ zY{Vht!J{#oQd6vKCszNb@@&$gSCup43Y#gF$K?_Io`kL@8j2rO$37}qY!(a44Ih*U zTr8DeEfL~g6{@F9u^!u2%s4mnOyN;eqf2YU78u2R2Q?xplw#N^?N!>$bBnf2`jG^9 zFuRnJ``RwO`KgB;O`TB#3<64~N(&*$VF{AZsSF+^j&U6W$1G`fbZyQEH=BidD4zYYz5G}hP{mEfSRYd2FTyW_=ju6@|4Gj)_*e7_+N77Up(NS z(N@>@jW|-D%S}~FtA@CV+Y}GtMHRrWBj)cxJdp}XS68D!6*TB=VsO$ouE*u{)*(|j zGKe>~`*7ahdT_gzN{>P&5!ekpR1d?lT$S`e9`)7qH`sJy%@`WTlcL2Mz#nYq4l?&2 zwFk&e;GI1%tkMG(j1-0k4D=~pCmS`tb4FnEjWUo-fdBPbdc5km{QAf87__eZMyMbN zzc3liqb1ojC1qE;@jK?)R_ntajZ14Z#Y1}fj%!zf z+GdJW8&)Pv%%`3q=9z4ltcXaMFRewJrmO0n%E`s*_V{P##L~Ylnsp0Os$QEp3K{vx zfA=Ilf269+tkY}iIPC7kk-i(zUAL!k(>8;uR}7%U@Te+p6xdG4vu)JQV;`C43Vv*tV}CwY<{@Fj0+lw6%}bOoN0^?h?$@H^(>}~eSce7kO=zlq%NXg+R{UD zx9SVw6nnt7s}t%NWC4VzduwXnPzsxN$Vg{z?BJADOaCkArO%Fo-_2VwYeYo zqRERlY4PraMucvp_cp)d{Mzvg%PR?q&o5SXNt7BC5=op%dR_{R=oy-YIfcjo`_mt< z{Zf@?WNf-vcDLz#vIP{i5(tTM?B;AP7-_^?e<|d)N<23vtLe;+UUOB_r@x_H_-3+! zJv~a@eGg_XDPfkWzJwkmUNimR?~noTtR8B*x~ZoO|S z1pe5IYP)%6d&Zf|sCquWWb7)G$(YV(Q;&u)x~)l-G*$D}&pC_OdubQgBg9EJF?l@& zXrEDnT*CX?vS`0U5R9CXG*Mpma;E!nr#RbD)_M~m=47&N?7MXGo{>7j z!MQmvIvt=PzaycnuMV?xq>h#C-d9Oq+O|)|L}k`7B0aDXjaf0@4U;2S`%7wHA=RLM zBh~K6X(j9)`i)hNDEtrWrg(C&i-^SPv>5OEVV#px^J}$*HC1^WEPYCJ&-mq6$JOk1 zyOTYy^}UOXt`G1S(l;8FJL0qGB3u=d>Zw!(#Vdo&+jp`%WBoI0*27QG?1Tpo`62Xd z!)fc?o)8(U5%DNXH{SFjL2ccI8T;LHzruv(03sqnGFs59J_`$=GO-wU}c?R^{ znCeGXjLU53^S$MZ(VznN?cNlgJd|lP!%pnLg}0H@=<(RY-p3Mj{4$L>nax#m0*cmN zNH|>s+Jx5cPUu8Xl*me}rRJ}*zds^6!pE&lOIUCq%Gcb~lXK+Ba3)`}v5kO!az?1E zcvp;~jpqkC5`KVd3sX z4;M$lZzSqFx(Uj}pyO1+Yk`q7UTWq+YL~GW@VR;VB0)lBYaZGJ$&vkw;g3JrSWy({ zoU6p@O_ta$69}?R64bt}%ICwvG3OB9t<7UaExi$OK$*wY#epdARVfftGTmXD(|+Ox zRBVU}wnArl$?EgW&^`D($^S{brK&~63h{I-W?HXezS5bCp!I!0qC1`<#cI2=9kZ!C z-fS)GHC0@YutzldC7w$}ltxah&&4)Sq|P(EwhS9whZmt$z`OScAIL#GQg9j7 z3E%8-;?6k$JfqB;j6O)@(@*zZt! zq_SdmTyz4Fr2QE2U4nC|zBvv16ARuk~2V@%&cnTT&0v^*nPg;Wuef-xs zM$+5)bv=C5_1_yW72!?1s&&a`(B;=Db4u0Q&nOCt)DIJ~|BMMDe*;20(}`SSV0GV~ zmVT_2o}Uw<)dAdR`Xplt!`rMNtEbPb>oWP)lHw=qjkZ4m(($Nb^gCQk@@Uc7V;ZK1gP66T`}fT{^>=_I>i+R z9iP+X8ypm}1&Z4#?i6=uA-EMU8r(g2khahgytqqor%3QXk>U^_xE2o*oCN1f&pGe?-tYf! z+&k_VzqQ#TV}zZx_nK?3x#ynqna_mNEZuHN-RR}%0|1oisjs8c(NH4tF>@Mu3U8HC zmf%mp3H!QQ2a&4ZrmZISYb2_Ci4^CRjf9+4TtU{rqF8iunxqoI^2el> zK#!GQ%+aivN@M}?v!<~ldjc6iWCjI~OA1lYaxC#=beZt`A4WxfB4tj}re8Mn9VCWH z6JP?i&oZ|6HtA{~KhtKbnRSMv4S_8RL7c%AMT5_?xQGZ6tIPuJJ3A+2s~=TB1ijAE zP7&Y%`RLE-Zt>hy@% zi%R7WI*L9?`c!6kQZVPAq}POAM`0X!w*}YdS_WpOxmVf8J$LdJf95?q5PF8clxCZ5 zDzKEsr#2O@^X3quzxUKEY0BpZzl@%-M%i)hB%OJitH=Cp97#(+V&J?*8M86B4bm|; zos!Od%uWBpi1#{o)2wOpmMARa(eIZd=1AnR>lU}c<~**lt6vQ)NHc`6;DjLjrn&V`;y{ghrO_Vwps>x8rtp$!BFLMY%_OHB=HdUTNOYZw;kB=QK{bO@I^= zSP>FPR;*!Bt|#M(QLuM9&M3Z82i<1incLCZ%CcFjHHNHiL0IqknP1BJ4t30D76%oV zmvf^8xOFF;2}M_@p8A))Hf|PY5zhVE_G)(*h@`G{O|6!3?(&#u(15?WbjWe1tx#TC zbtP0?F*^#}t-w?O(`0(ZH&jPPF*tD@PU^e7~rNvJ@Kt^>U=*<>}=m+i8~@Y1pIX>Gq#ds zsytngn%eMMT$-F=PD_9N#RlP+Z4q6o(6CLsvV;bnp)f?s>FS}EmDGR zz`5$F8q6y4{|0ql=iJztq3R7>KP+G;Wm~2_62I6U_b};CRv%F6y`bqjb_vgD%bt{9 zbax5NHvr^UmCiVycFl%^tO*F(6QCHbG%;vHpZXP#WK)-=^xbmIN4#Jp%g|Khqm8!O-!bNqDb{em7m|}x;OmnPa zj0B@d(z8k)xt2b$`L)ifeEH$0cjVgZy62xYdM%lrH3XH8W(@giRqG?>ncjOET0A<@ zJdtKTre7<;T{B5Wm@?{2j8BaAtDDS>jh2^NE{)HxQIBYE&*D9hyP0cj!rB6+l;if) ze^AA>c`ONd>G;aRG~Gy+yr#!LRAaUu&W9YC=rwM;>tt#Q@62Q*o`hnOf;KNzHnNyO zYpKaHa}RCnXquzsZKj=cLRX`#xBU4H3p?VB>et@dLL=A=jx# zrd6*4@9)SBa#d*QZa8`~Y5y%yMqA;7)wEX6E-h zP}5yW!w`#40v$8%Jg*PNT=I1@OYQgdC<({;aybb;?}rnTuEgVU-b5VS_98D4MHHe# zm&htEm8ZI1X%`DXSO9o_4>3t4oPi#` zR)7}MyYKs&+o>A{bZz5hT3aQU6jwE)&e1h^L?fTYz`DP^71H!{gl5~62#VG5VNdDM+oU7jPm3Q&({nP?Z>FuuK36Z_k!;<Fc*EtERtVTg#^oO~U4;m;kb?&1B$3+1dNN{Tbhfs;mnbaL%T) zP-+nTuT81!diLBNUi`_^XcOuN1zkfEYMHqMmN zXYCIeG;R1n<^n64RuwMYt6x9szrsT$r5WBe7d1}G9(RDOJV7oI5yO39P~d`|p=-`k zC9~~F=Uyv6X~X=Lob~3cbNm78yx_Mt$xk!HjlPokIpkJBY@hX$3o#qI2UM~G00_!bn z;nQpTyju6f;F2rAZvS(=D-Th8BAE~4!-Z(vr>V4Lyi&7A79jPF+u#kf=Z`74191MT zEGCP0qX+^ien8LXPPdlPVD%lP9emJQH<}PRiY3%6jOfLq67%hCucqHUbPXWO+qn$+ zIYL|g{c3#)bL&2G#KUAP+k#If$SR;u{hE7fe{0A|-g}Q?jCDctdPQy6m{KdjS_?%= zB_cJmZxQA4VUeg*I`}M?n0D;4yQ%rl_Pf20x%x;@Mt$ct_wrpEy1oUJ2c@I4FRFqd zJ^Tm^U$@nk=Wtx?N4_B-pf%(%VG$Xpicia3=VRsLV9hr*|5&;0OvIr^N?ZWg7}l$w z5n>T_7G@(b$BdTPRp4&)vM0$EvA#uC^;*p*0Y$WYTBXD^0RF**q&Cb->iY9d_c1up z(3iC0G;Z>`DF%S+T!eeY^rJ=QaJJxsEXSN(1Dp7`z(rBg-R$?lv!`}uiveY83C0^X zkouOVkQDa%H^~+Px;S4LxSlK48AhpBK)Rerupv<0wbn|AQCjluj-BpXyc2gP(x*}A zUIj#(lf012$a9Sdh{flG+gh+!kYw2Vi1ZN}&K9h%`VGPI%)+zkruvP-+CP~uL4*m5 znMvs!i_8WN5gUGDo=TV%3HdG##*&DkzG{e$T$VV7e) zo!z3z3#uXg%xY-Ae^4&g=B*d7&cyg}OgQYhKzs@IZ87hx8pVo5d4MAqCwzChf~1I& z;+pu`U-|naWI>viEh)5TG2hj@`DxdP#8rB}?VsRF+7BwIM~6K*J*%#QB}WZI8D$xD zNHYg(+x_oa0?03>p4jcTyz@lHcX>W2k)WGSD=EJ@1h?Q!Z{^G37z`G*U5}2%6%s@Z zpE{M}C2>};RI<3ZHx)gy_i}Pl?ZXxpWf{-WV!uHC17bmW=}%rd+#RC_t+23_K?I8O zAwg}w<&FUQS<%EPIk@uFVY1EODoS&1rCEzn)<&L|RqWZb96T+cu<_5UyS#<(ueS<^ zx*um|FM6e4sRkIUIcYm|$RBvGFT@q_TUmp=wZ`PLwb3}pW=8iXo89UAf^T`=T^voF z{Kk-w&fbMwDBa~0I~L6;PJ|pGg|B(EFH5!VVz#oK=bK=D`*pk!WnRrm4I%ygYyZ7= zI<^YPA{SW!Mf$MbBNgkhFtW@k@qNLLk@G6{g$d1S6eeoBVbikv^YiJ@9xZvifsx@M zL{qr|Uj1DO7rhiWz2kYlKCq^!_&S#jwEgm?r!Gs?fUO=jnUtCwPeY0YD9sgb4s@zV z807A|-u&4>se&<*`X}7>D@{*JrsCM%*0yi^^Wa83erPw^zK?bGYXl?OflRZ_*>LBa zv)3{S{|mqpxieX&7y9K(!X1#hS=5q-s@2c)aOaoK$*!HegA>;(~|VIL{d(= zo^bCwadVTr*!#MYts$N@KcVb&eF2WRyJ6t47(ohSgPq2Qq;!AF^ z(28*vu%l-kZ}$!g_bJIAa-&FrV2KA>quft5E_MpqZ7v5i3pAdotyOB4@COI;c>|wY zhws*gZH?OM)Z?uDc5Yw+u_k4o*(WGo8Fy1Urims0tjDhG{5z|oDIP;Twq(HbPnE+XK#txkPZz+ zEN+!aHGDlh?Z5x?yB+#qG3!250ehv_mOyM7F08SArV}=|zhZ+`qe@K#wErA-uk9%o z&VDG|_AT~g?X*&o2THwsWum`3Wb+T|_ujqNc)t&@++@EArsMUw(6n%pRg_i5gIE6B z!3S>qs=_Y@8UlDl8gHE*1!%&l7wQ63GD(_9d&i7xepExp%?&qL=8rC<8o#CqI z&z`Z~wTpUq_K6GoobCLY>?qsp_}w`1r36ub{_TnQ-TANnCBHQcTcT2hrf*p*45nkB zI50T>d&9QDLF@;1Hw3hHE5D+vzw`4AJNvwmxKSa@pe0$I?{?nYMOY0Zo_B9iN0|u2 zps>R%^!We6>fbB;<9{azAI$~%@gFR}zjFIO2=@NZ75q;w!#|SvzcxEV6AQ_2v#c-I zZ+N8%@Kct$-TS;hJMuRo>-We$;8+0uziB5wv;bU&wUXXrj$8L@W71xONj55hwH)sC zpnp?ZetdaDS~#9m!6*O~!2aQwWT46yY~6!=4}VQfn*@Tq`=>b9cCBNK>aqDvp9>Nb zv4y!2ZPd29OX~fS5 z7h-AKeR8bN-`8HJo664CKmqz)9YD3WZU0=w2TBS!GVN8G0N$pHLfDfdy`@WT{r1&m z!?ft^;`u2zXiz<$P+^}{87X`+JcTP$*kkY7acfiAZZOY*untRK3G`ZCJD$StRcK$` zMsZ8lF?8FNOj(MGIq6@Ir>AyxFQ$DcIXMp)JjEWX`u+q7lM+8(a2J zKPxD)88V%mzOyCW;639PFy;?~*vhPrmuwGhB+m~~G3`%2R4Jf|R|JIdqK&BZ(b+*Y zh7J;KbjeO+1UCO_zSq=`JygXGIN6g$<(u|wr8Q{=wnf|;*H(wD@v^Mo-nYINXi}kk zTkb&g08v#;?0G6DdxE5w7J^yoYQ%eqzR~l6TN#t766_GEtl=WrM%V4(j!|#(cI@t@ zz1acN>I2(-KKv&i=`|nrWJ0O{-E}>Vsup;_b^mq@xC&i1;md=YUP~k`!0UQj1t;9- zoQb}+)IzKGBpzQy5G9bRh6YI|?Dp{8rhQ=bx~(`^==`etkNAFFO6NE<|A~CSS>>mU zpFKCnPDdBK*$FDbgJ-tfmA%?(x2?#Ue7Y)EE6J#oYFx2BVJL4c#`mx6@2SvZqgkqJ z5|=g)4BLgJX3y@9-=K_f=`^p*RykX;Z`b&|In_t8Gz%&cqz+QxjZpQcG02NsoWvNe zvGBfrZ@s14_}KPVD~D}9?EH?`UA46yP{#vl%A43bUVRS4R?~vQg*kRa&?k(Q+46PB zSiPVtK{8qNHeh-KOf!($c&oDgfE-0tEZZ zDnXWxqvkAV+m7S24^n-6C2Pwzzr7@gEnLJ@QHgNQVj8lwpB${(#Ms<*(OjXfFV%w% z`_dS_n%duk_qwKoZsTOE>m50Lt(%t6y1tQG`+PzEo0V4e)Vf#w%FDI$z#1!ue)Xj7 zpNjD6Y~w53cdrZ>>CJb@MOxBoc$}vmHi&E(l`ybpc`eN`XLuj^IDGQFq0jzeRZ$0} zWm>qDY5BQ7ozZs&zut2*3@j+xKEVfGZjs74m$iiUpH4p%nhOc@Ir;#F5V2Go#bKGHxkz2R9W7 zD6^#R?$+I2W3}@%73q~8ht*XVfiiOv3LJE`y2ef@{l)t>V)<%mqWoWWl5@>QxtEW$ zR?YR2Hxh&Fb=SwYuU?@LcNcRq>=m$9I)ea(fiKwsu7}A@Q!m>u*Ygzt08QO%)7d^^ zNBvrbZ6z1cv!#dTlxiOB0cY9MPq*YwU$IgKqW7mbV@Gg7LG`;*K;OP8c$uYyeLuD% zpVJt6Eki=vpvyTv%JS+b1YBMFc=Zt z4^!+5dB|k*<@$DpFFv*ZA#W4D{}MNlx3p>iuel-ZI$51cU!=@Dj=Zfdn>U@{D)A>K0jX+ji{xdARg3dJU)HOZ>ju;gj4f zxcZqrQNM63w71)jMEvm&@?q?}?U#bV!bldOiJ3{ultRb3mvLF_B0JnUSSiU+HIuA#}N zVqVF?!cor4-lbK;%#1~eWyAI+eVZyd#WrCL<{G8+JEoQ8#Zbsng6%s1fM=Z}XzOz( zrhTdUXY4C*(pxu74LJQG zv}Lo4(zoQXw6sY-r87@ybxn0NK(wh<@G-2tuN69fPw2m?;CnSznKm6**Tq-ETqd8s z7+AN+j-5Y)exA1T5m2<8Uea86=cjQ4o_tGdhQg77;?srvsv^a^#E?oOBEKI^7oDAK zwIeC9+cg&t(8F6*ee9{VEINSxjGIs8N475-7=Ds(`Q?R%5h$uCdSrbGf5k{oKbG^i z>?_z|fkb_~4tD{vfXG=8?=uOtvaVK)?vVF&96C}vs3?+3xeE30pE+)vB|z?grrj~r z6cSgoh;Z29yV}A?OhjkW$LjgRrc&^?rO_LGw7ps!GqMI7Hum>-u@9RMMOxR zjPM$W7Ud(ZMZl9klFFG*^^th3DrvJA4AtKEcN!z2ocIYcnQ67RD>VTqW}fV{PK!zYtcVhS)MH1ga| z8x7dmJkVciyI9`;?ji|}wK&n?cHvCPPAh@rTesW4YzXAdc5;D3Yitw=2w)~pbOZ0c z35=v9V29t{mQX=Drk;iQwC=ar`?9F1i>-yiVZ9G&#jHVbeV5{p&j7Sc+(s{u z_=4Sd)kv9lf}?EVBF=C`&ndtGdi<9$}_%%`Er!W~PYLVsu`I8WrMX9*N# z@;x^1%UE;P1xtOt(Io`5QllDZ!$h5Y#_? ?Zl*$*ARz4yE>_xl#A34morfb~En|9SZrN-a9o|_S?*x^WI z%o;Wp+|Vh87F@2RM%(E)JemCQF;3*_Ct5b@1iM7yq6`a2Cv=@$vk#rhZu*FA@EvPj zPtv@5ojn9n_n+K}k3J7}FdgbJN<5$m?ssu_gvob&T!{M9KGWa42Z17Bv&kr9xZ_Oz z-fJue&M0%W3jHuj0X{zaqMwNx1ijDQI#5$mQc+UcQ{;ANLsrG*9E;CwU>F#g7#W#n zW9sLB-=3@@$|`7e;)1M2Q{4@nNwhct&1E@*$5Gm7S-RBrjQ>>()K0l1&8~3IimO`5 zhOa;F+PR_L-R!o0qSj`xblgDRUK4DF598{R)HVv0=8iL*`xc?{uY5B98l8+8nby0z z+BBBB#g^eCHK0O#>Kz*J=Pf1`bhf*x@2bmO_Hrb7cXmtyg~sMv-wlutxjjwNGMrP! z7BDNoTVoXg1IsE-%g3wO%H8W6#+2{eruvx+IY5>par)?Qc}h?8T4)lMviuPl62u!D zG0^&<6FQG zlsYtf-eCTU)5#CY(73ZB@U11i!DqI$;d-`?3HWTDOmh>vkTNpkk&kJ;8>+_AWqYN$ zHD>|wT>lI+C*rZkS&MQMY0%Nn{p=vO(hkXv*W2}9+h%nVf38~Xq&=f@Ww=vYQp*i{RnS#8`z6p>cZx{Th^QIr`*Uzp)kFw*c0Bdzq9iq( zrNmo;*+EwcO$f$MW&G@L$uT6vJ!wh%V0XTil4~KIu~+^PLYg3kB!(%ImiV7++k2*_ zW4UEjcK5ql;g7GQ3xzOwDVkfpDgz^ev%McK>bsrfZZD;w>^xeVHNJFMZPMZ1`jmL> zt;@j3{!e}vmTG)Jo_e2~dh5~A!>b%s=nXa7032$gX5T{?>kHDH6xQocW|tsY_(c}V zE+7VVE%OF$;``KA?Cy9eBCQrVas6OpC@h|sZR)|uK1Kx>?l;7{>A|QrF<7M7aN(|s ztQe-GPRBgHshrg}$GYQqL4j5;*IEH*dKE0ji+VPFb;N@;leA?uuN%5p`~o!HjS^?B zAg3f;P|)*N)yiUX6|S`_a*#4eHm< zbpffHmxHkH%raPuEpziYU@jcEF~hFRt}O0{GYH&9Dsg~UYJAZh?n4D)V!HrGn*!J_ zw-&l~P_&}q%-H!GtbXz9$*CA#rT|=oyOobw=jOfP_(3M?ri&|}xdxbmvW4p$Z&1KD zN|y%ow5lw*j4>mfCPPVq>kf)YcFCj=19^PklG>#qH#Jp#w2>NjH%_TnmUcu-T$Al0 zVX_aztv_6Uni5=5r55jevXPd<%cbv~)7qNb>JvI2p6L`g`=nv`4m~*{bTFrGJ;HmX z;7a`2~zC%iT{a-CPIp0eavG$e? z^IVzIFpeN>zsX~A(2&YFjMHzx@dW`-vIos#u^)T8WuSQ}1j(0t2faR;djjSBWd53b z=%Q-G$3w=(!2~!t=x}0PF~kFb*iDuBh9>Jw7yw+9_-8@~s}mf3OM=o#!XWEaLscmj zN-wbnOq_(vlLik6C`=nx=Wc=Cxd;nqDb%mJf%^Db$trI5yKvIw3Kf!_X+n>(>`E^%8v!M%|*ve-l-Nky2ISo&+b)mW` z9N(V<*O>31NeCtH;7Wr^cc~=A{;t(V*Gt@hR=IPEvw(Yp>?xgjT5Y{>OYS&Ft`H+d zeohV@mf--PB0}4avDQ&sLM+vwAJtd(gW14=xpcYN*Q?PFPL5C1(}JI}rjmz!nHx}o zmDGM!NLGu-DyueQA^?D-(nrbZ&jN;#p#7g)m^Lq%qoz=ha7)hj?*mkp3aJZi7uQkL zLd#3)*61=3d#$piNDylmNEep+D)*_nf}*N`NX?+X=>{LWvDd0Ye=24#9bp{gBHzLt z(3xJgDo2^ezcGK>Jh!fS5=w;M=c zJoNMkhQvhc_%PFdy<(%p51TJj+)~_Ovx1IlUmr90edD&I5U!?< zF+W_73j;zySe@T35U5!z&%?kpcU3%pG}Ye?P2K4p$`DDFQ}(`Z9M^sgjbcUDv3!}J zk}u;`mc1P@xEWV_@WNO`^|F@X+(-3L$11R7DZy!A=xFAe<{%vojMd|{(I|y<(6E(r zEY5(78sbvcVynz6XKIeeii8>ux_aaIn!4Zx_IG1|{7yrj!2pM?PRyRww*YzUZ7a-; z*EFcN;omCWn*)JJy4BReazuihz8zr!%m3)IH_4-(X0%sTRc%Hs2Qy)Kn^Wv}Yl3S^ zT_x>zD5>d#tDk>5aHC2+jt~wQ?GzNXb=XfM!y1c?wRqa$Gn3R-I}1gpDOl)ftsdsh z#c^gnQZ5w~=egPcS>-&0iQ}p7&odgwFcul#9?K`U zSjRx#b8HU8#V4XvyGz|^1CULVV#@Z$yw!9rC`1HE;yJeP@bC7f=sp`?>BE*8rUY`taUqWhoEwY8c22%p`K3xpL3Ighb6ZRZIfw%W$ON3W*R1N@pJKzj^F=tsbC0*?>*3?X-L8qYBAoCY;d>L5WTJ{{XkXL$7UF7f`%(W4GIUz@DwIXiNQ1 z7jF)*R&=|&cc7%J4B0cR(mt&u;z-1qYOg!@>@;eiP`ZB^+F?1)UP&}WY^W=FdHSf+ z=$~KS^TWdqKp}CKgXAY23CL=rf4ntnSIE(vEX9zJ@sAsGhYH_BBqvGrgsyJJ(49N# zQUJWYNcit*tDY2#8-5G4cW^j4|K-^XvQ8J4g8FhyZCZuzlFUs^W@;@?y90+L^Hc$I zmBuYz6%`e#HyDF?s9@Q!7b@-dHfdcu>!?fvu7UGC{r8gY{m9<<|8t^024orjr|Wxf zX#e^za<2COCg%$LZ*s2d|0d@;|6hs<+s~o$f3tvLAyEG>3mEr*vw#8rn+5EDPV{>Q z{zr6w--rL3Z-&$NUjuEwTjvn{aqkecp!)j~&eg<5aT`BJrCfA{j(gH+o^51HO7M=B z{BdugGy_Ag*S3)UX`JSECGx%O`uNxxEvji0NAc7p?R)iFk(y%I)b7hGQ1VYr(D@pE zv`JhDPM|0PS?y!7(tAMDEc^oZ=UIWoHJr~}Hh&v=c~_W$DMNlF+2WuLI@C`81g`3+o@#pk^!pmZR6wRw$L|cl$e@1}}F@1-uZBhK{7riUei(Qu= z(up~ne+8}X-yW&ZyPVyB!)?d1)ZVaU0xwrjOQ50Lo4@4L_iR|c!SPvusa$K}?P2sNiOtb} zumC85fUj@b3uvWS6{FmZ*{&Q1qr;=muuoBvgiLIdlkps!Gsqt}(oIHSC(?FMMkt+i zV~1=67c%`Bp>VdM9-T#toVd5xz4+UO_eSV%EhK?(zfM2vZ6`-+KNWpzu{QBT=cHO< zDc49S^Rd+(Hara#7jC2Jk+x7dvPWYHAtf@dwwwQU0hfaP%^q5<2f#K69Ud|W!D9iwp}BN zJ=N(Q)s* zL`yRgy#_T%r-b_zVk?>CGE3I5$Z(r;T^`=tbZFVAt42K2(zC0S^7YwmqlXG^)kJqU zLNYJb)oq$xju!TpgEagXGyc4HdcXJ21!J2BsK%v$@J}`iBA(KbCS^LI6{29*>F7^# zhP{c+fkM^Xl8)NCe!2#Ghrj-^f{aTp+E-7|-kt{MEu)biT4Xd1R?KUSP?M-;tF}qM zGbJrllSOEFxEc_hg!Q^Kcb}&6jmsC~6Hg_5LEuO&8x_vDl$!(!sQRc}CY-ue$95=v z&2#QehuZVfkEz8@yd3BPqg6iX6n^i`%QIF_Vks;v1!e069 zP~qojqwQN`*`kH#f-4`hNBEm73Mt!>*}W|;{YIxNS1qlH{Hoeht=mLmLFOLD9)QjD zZ4_gNy&bk-S9=gJtoP4edI>Dfn*(**!rUYO#a6a^+{n1uX7?2)kBsVcjr7JxsS(1T z>|e8){ygg9Q%&Hhx>hcr+s}P>&Z*bf#*-6774+9k$=b|k=4B!8@nVQ+1>}7?*UN+X z>cPB2d};}c%ZUjxDB1gTIPKMOnFMhr)h8EkA{<8Zg$YHXUb$_Q9=PmmXCtEbuHFUH z?~;l0E7peqci0D6MBaw_9m)R?gf)&ZpO_b}`i!f&L@JQ-@beD(0W>JHf`I2j9^@S3 zUXoA5$Ur9<;Owt?QI9XASMS4BMJ{52#?;C+-lZ5YGVq$sErf&>d2j7=?0=8u_E_6g zi+Mg74zZ=z+D~ISE5UuWqxLBZv7hDdkNAjgzYZ;wI6sUWs|=gApG;6edR*H?2|6Bs zYC+J?>EVWv@u6ai56@_il9}%>~*g5QC|5{8_CIbjH>nXn?A@_pajVZ>UcA17QJB*Ji zO9(2s#O-#171v@+4qnL@MSLZ&1GP`z%Gf53p4-I?Ju_+9ej`&wB|{6LX*cb78N7Q^ ztV=5CH;xGuzg?e-si!_jjLTDb{~DyEa`jv^zBv8QbYt@*YrPrcUpSaP=!9cVN1^or!OqhalA(*a~VX4pGyE?m%Z{k#bu$7OLD z5$riyuq1M~)cvBt&H(lGwZ-KSZT@oLBHwR5)*r*+Z}fn8w09r)1}6R6_RhobqB_Rx zSo<~B5Mm{s%FWCAZ!Mq`dO+K{Kjl-NelsAzRct=^SVB2<0CIRsEa2=`!a|NBW*wm%x?O#YxjIa?E0Ue*9N$i?jOn>si5-6%p2N zbcE#8+^dccz2HXjus2$$>T!!nPC`+4e|zck7ZoAa;)kZgbLt}=j?dNFiVoIn zP}-^Xmi+ZN>HUs+GI6%^*Y6s3tZoEr%=R88g3g!w0VBV{C(Z3DTiz{aAvy>&RH4Cs zhZU7lfV1@`^Yg};uVtP#(aBjA4LcStl*unkAhs4o%OdD?l4)1z({-FZ4K4@JaM9T6TW@bg^aSycVMuRo0SLTdBet0kT{@JpbKHipUm<9uzLruwP8CsY6Em6&$ zK<8#I+8QMPoSK5?WF>SQ<_PYdc`q=zxeA|hscH%|@!P&p2LMjD@v=M?8|N1Fr4Bb< zmEypOn{98x;M02|1)FMbXIH{%lhr6$a|NOW`rT~yaa0@E1hG!Vf}O#;+f#@HkNlHx zk5mj-GrewE6g*A%GzB)(V8X%L!a_G@wyj?suHZWE^mZ5(MH-XPz-1uHYQ(_6q{J+s zYT|dN^>gHWTMBM_Hy5;6^LaQWA%_Io69*Ua2Mq+yJs-Rr>(a`tql?|9+k{fQnsgJkg^ka$@i1FU;2)1Gn|j)RyF7)#q+t^OpoXsu^T?#7D^Tmc7IM zVzJ~QRb1kLIh0~cMhqhQbcV1fD&pnXm!cS4$p#15O%rTS0ct(F2dL;foMB-t-YcI0 z?^KyD8(`CpsOj@$Pme6*AchXp>-n*CbmQ*zGmOGJTARX^g7x|2{RDJ#-;Wf#<_1A; zXFua4FYy_$6Iw+k)A!0Itb6o|AjfM;_YNz6KN~Q}%<++i7R8B7zP;(X&0}gxp=`UL zu(vMFCoB4_uRP@&_E{U67)==X#T~FK15!{~o-^ct`PeWsG1W2ZVtd4VT_D{nVmrJ0F!)g1Ghm^g|9^_0sc@y)+Q1f>1)>l&R8`Py!4vsi?OUG}spiH9m zEYt&5X|jM$3)M`NbQqbRSBvs!?n;~l zB#(UVbA9}c3$oGY>}7q{>{g_ESl>pMA$}SB+uRI~qQo+MGVVdBk)hutmDtusnA=3i zIhJESX&kk`m@#LMrk3QU%Z;KSUffper02j9Y7uXk7AnbxD!nV(efpR3EDu!dbhO*e z87J{;xm+ZL`pXs%yP4Xdu%``;iCfCn(6D@6jV{Bmqi87=bc_7^T@2Mu9m0#Yn|Z!P zy-Mo5#34Z$Fq8;{T?Jw5bZ<%!2Ukq~c9(q!e1nB65tCQy3JGMfpF|1@=uR3eiuIBb z@KEdt1dy_e`^~l+=`JSFd?OnBLiuID?TYpy&wQd1Q(>blo#R8P><(l0+DMTtBZRzvs$VTqcT=T(K{c1-MncMPE3(e{1eY z`!*d8P&K~P*6nH{>Q!PJ7!eSJo*U=)kPeKl@MzF?P5L{)EXREGnM4O@G|D6w%^bh& z;GLOA9%lGe*Yu=SBErcEZxA)*&85fV7QO1(Rc)&R+{S))M0N)ksvKL-X*j%bH3Uz! z^uTSB08c$c!`6aw;ZO6sN^%Mg^D6(C7!AHVX*c~)cOy`>iKaB*QeqN~+1ZWA-W=q6~M`)I*;w8?WNsOmP}cxPtXdB|R4c)ViARhT}VB0Ci?vXPQgZ z`t9n?r`^IHmfGJT3Lsgx(4w`e9g5n>i3l}X#&LbhnzZ;{BQdfniPPHyd?<5A-i&wF z1SK~@IXp&NB?_CM?5u52Y~*T0#vG|Je=VS$(40`6Wv%AaWXQa}ynl&A8KZ#m-5y@g z!!s%!zs}I~oO>1$>>Mn-3tWv$zNnu{zbyS-Kp+Q%jpBqhRa$V$X<<41;92VYXkdQH z8nBnNj9W2H4ZyGT6#|Qv)0iNxtn+c8oq|(^9U%pa@XD`sp4|I>a^tLdF*y}?0n$37 z%YF8oHj~H7qvxgP!T=)F`+!SgxvTlCvgMcVt1R@P6dZ!O**0ZCY_A^>@_}3tOJ(M;Oa{oSCXOtj|C{^mU(rYFTGBiIDz=8t$_x# z9$;Y{x?i))oyN$B91-bY z7<%kvX(?%$(A5LuJ*B9ooe`3z=lkaia8y?eJs1*_?ppu44BL;R#kqnh{BTF{OaMJ?LvBdL+p*DPXGyIIJv z2%6Lth`T(ws-eCBKTrMQq-#-3hTfz4OZOCR(M= z`Dk&{K2#;{HOEFr7%RL)qr@Afd*xm(r7=-fae2-4H_&i_!gg#@>NK`%Bfpouvia*b zYSOydvILJ6>dU9(1Vq-rp7C3@f}iHZV}8a<%qv)cL}>uM>M$o=2VJs~kduh^a=&!a z68H}-W!LBToTV3G=`&n3+;eWN3IP5Nf;0y)k$TH0BcZ=xVfGcWm^9S0h# zk5*&=U%KHb=|=V6EP(#OpQ`XRvivYjoeTM1gLYg?$J>D}u<|fSouDUg*Rt@jB)@y3 zjZGv0{oY2+{QZHrl zz5khC*m!%2pL<2N#5K7sCc1A)yN6*6ec`vc6 z;GQdpZgjF?2d-P@(iolL6ZC1s&8{K}<#iXXL#hzbo zGhifl;mpZep^15scJ!k&VMWMCy?TPrBpU%fJ!sF_l3!{z({o51yJ2G2{ChQ=vKY6E3}Vn)vkv*oq|t5HGeW2`j4#bmLo z(MS{|txa4xUx#cSR8omm$dN}k1&TWqCs+y;cL;99CAftk;iUb)@4e^4{czU0=gV2^ z%(Hl66Ed@BX3w6ze|v9}zp6_YEf3R~o_-=aNL)fT`B?X`Nt4sySm#rMsXyBoSn^Bg z+eI?kiELUu*|GMMGyga;V$+U=E~$#jwoyC$=vS09R>MLxlH2;~79vn9WQyWJ#AJk> zRRQ|XPTy2_T8ZEJhI*7F`)kAE*}Ex?o}cRm(U6K}2}W%>>cHt$dRslrVc%Xh_ZzXc zaezkFGY-binl>>#9rp{5+1Ue+ZFAJ*fqTrt)6%EResiCC3QbBR0-J6Ym`mphxJ(M2 zg>QBaqCe|gmsAzyxCH3ug$Z6o(@Ti#YwtrSu{~W&4{h zpnQbFGcS8{$TmubEGz6?&l;c75I?1(a)NmqI}Ts`@Loo{ZNQ-g^GqHUNV~D!P->aP zeu$%>LBx#g>+ZMTXNvI;z6V~HroVV8{y}Xj?^t1Du+KdluZo05>imF`l^YIEOolh~ zCU)X#7A{j)J{>C@x%;peZY94pH20r#y(f7|XO39Q=4;DMB6^hx!?N;C2SvwMc#mSj z;Y3w;OH*n6k(nGKG^o{mrocoo(^Z6Qf~mQLK>}!*58cBTWqgk3oCDn)oL$?ZE@LF2 zp{0LXRxWa>HRkI%c9ep5+$kp~!?aIHOCt7MN1~iNi>v6M3?aMqe9srD>EDz(xb(pu z*&a`NpgI~65{+6~D+qNLuyK6rv!~Q5afpb(Xhn_od&l_rEZ1rovx|u&B?>U1Z{`)! z{m{Ey@>xNyXFwi=#~azPiX2{y<}5sfdE|C%d$TEWi(Ny%AuLSLa$V{6=Trnlj7A;u zDQB&_>wb9H?-^_l6}g*`!DkqZ+hSGRRr{=#t>RXsM#{wNGm=zsP@La>Df`9LKoL>u zL{M>q(11I%*B{oAu1O=ADBxbph&h6fNl^_%MrS&XDg2J1rlwzVMayjW+KoI7Xieuo zm^Btw*)I^_Klhi?sQYJu&|V&S7#%jwVbCw=JU6lO$vhy>(!nW5UoJ}!d0fRsFezYD z>h}S^hGzC;MN-P=>0e{YFHa0s+mW1bUzpa6MZ4*ZNXQKuftbrLR^v5h;8X z0j>2%j{Qch$#yxf30xEE_T=Yjlo7ZYrQGij&BHOiW z*{$wH%*yPF6+CU{-zu4!`;0r%{elJKb*0E+8>N=yULVI3A#bdDv8NKz#L8wUmk`Fg zCJd73!P0>cQx!wBr}`Yc0Ly|GOh$-M(Fpk4>a@eWMLHWGUp za(kL-$p)x(3Qd)FJw>LVwQg_ByB&8H(eY@MmwG+tZYRBb$U;u& ze8XvnUeG;vsKo4W(a|18yf1~}^Nn3S$bD6TA&T;6{KymgZQ+pTn3)BD$xeR>JX~!X zLP#xmS1+Nfv%|Uq4*qOW6MCX;-EThzHcpOvV0HzO`DR4n|$c$=1~LaFm`q=yXEe$^AdX zc5!cCExss%_65{+-J)47>kO$zvN-3?kLMBfw8(fC$|OFZTfe=J zZ9P&72Aki=?r^XdH#nOGgBuUsbZVw;L#9rK?rxKL9+hVNv)G(0f>G<=){ssP4l&Yp z#%Vl86<)mqrCgh7q>8Ya%R&M3ME}J;hSgKqgeH9q!{bkIxmi98ypdl?y<%x_s;f6l zb55)9YT0Dvrnx=ZCqmMRf!cOCGt~(S34_pE2*_tHMK26iqI_G|^i*%UrNOWwqCl~e ztuAv8J+@m1yrBPE-|x8ExT1chOlYGyC^=?MEH+{ID#BxXV9>sJ;bM!(`zgfz8MdSQ zVjqu?Gn;*t5vbOM9QpQm=(<$!#&8w;-Ov?T#&}3oXG>fx|1Nf7a z{g|NMZ07_bzB+7usv{$}epa!3C_dGrj17p&sWQ3*{!P+EA?~&u2+SR`6G)R*x3Ku3 zP&#)1KF;3@Q|@D)Vs1DQO2PMw>f&m`_euAsPPaC@6A{W*R`rhe`!zkWSdMn=p;O6{8$Xq@C zYsd`-D!=vUM;>bGt(lNVXz&ww`2D330O0q}fAZIm3cdH%Aa6Uyjg%mYhOUg*IX1^r z{7&H60mo51*5H5YwlMt#p19ULihdm(J?)=vRV;Fe3eAbU&3f^#Lh#Z*Fv_227OiuZ zq{Q=ypbIlFS3Vs=uv6b|A3Hw9Ns7N_|Mb7^@0!nFTw>w zhW};EjyDFNdc}L!Q6j<9iCt!B<~BJ$a**8)q51;By?> zA6J8s=BNc&1aG<{fhC&yaKk{!8OdQ9b0RNS>u7LtNPD74LI{FWQ~Ai!H7Vpxl1Pv# z369a`rMEJLNvf=JHBj6^O&o22!pjs62Ew#Wt$SiFWVU!u!ZSx^PEq9o%)MEV$ZYRq*3#L zoZH@4g^vv2zLfQpZGJNE)au|;6&}VS{NlxScjSCUEkAHB;Qx1j|GSTmV;8)ar|kHR zqgdXOQcx6OpnX^$|6Z7ag@t+e`^QMafW=Py0WHNKO+&wzwP)Vt%+|9NVz@9g``-_LLnM)ZhkQ>Jar&Y2 zK{bLd(bquxHwLeY`7H{Xduv~D^6ha%pZ*=Kn{Qq}NP|D}@3l#_-N|6iQTa}Y2~~3* z%I&iSm1=PHg%q8JzFg)2_%rR)k#MUMJXRul%D1fv%==FYpN~ zqdM+V#_ir$Y{*~NV}m!uuprlylx#*zkviKE_rkK;lY_;<=h%o~HMC#257>UsPk}PH^fYS8c@g;e>V zMxMRzmKV)*D;Wu>yE?SianQ4jZ_mN$v=wO`Y;h!STXKO zxVD|eUJ=~fTeu)=n~Lk%IDrF#Vit+S>zeEC-`iJA?>x(&5!Y$#y4|Ll&F|$En%!)? zhbZZwc@BJC3@V+yV*7*k&JC(P+NO%8%-c9~(7o!({yc~e68J&rud{uO+VujqY~STA zex_d`_F=~VGP$fn5kXto6m!V75~$ zf^u&4MyKhAQ-6E7{knU5*S|B<3{}R|Kk318cM8ecfE3k)g@w5ct{MbM^#va94Wdg+ zfEds3dWd~B|K!tvpR3-s*Y<@^h}ka9D+63>oBFi9Sq_P$?ks-jU;{pD6x^E4cw}F8 zM_FH=PT>*72cdG9`mKvOB#&kbeKFCJG03EFC?Y&DG8b1kP^iknY7RD&Yf`^iVr72F zA#AubiU~dbJeTzj=rBq!rHFhW;a-Vp+??ww=z-V;eQA>uDKTC|h977S8yg}i<=J+# zJ*~&Z$Y|hzQ7Qu$Mw+GcF5ez(UEEz{9Bx7WicZ^<#vbQT<+~t*G{#j)!l}bhE<@B9 z->m5Ols;AZ7|F)D)@LK*9tD4X*=7Y^$&XrreVI#%5C`1g%k(aKbirYL%y42EI+?zV zZd(rUi=oaUK|)d+>;;^j+HL@{nh^NA?C|>=e6NtzD3EOaFp13@@zNeYNz)iP@fkb4 zH(hrWwnRt%g7HME@FKvOeyFHLwDJ9(7?L$KOm0!q8s{%*@gmX#fwP5R5bccIRUrrHaN+jiKXOkneU7|=Iq=A}z!*!{ z+w~l=4`x6b&_vSJP8(R(CXI-RcYvVsd$3kkcP>{b-;E{3^FIG_Iv8DJkXH z?pR$A#qIy8ShEK@B?F`S>n|F-RF-^@7MPsKas?9N?tjL;`S1nui>s2Zsyz$m!~z_P zrP|iucVS_6YLvOS+`d9}4~kg?e*3KcV8UP$EpIDttqB+zNhGJv7O_TP7-F-dZpgOI_$-ZlSKt=@YrI;=EFtOjf-@o%0hIYa=6u6pBqxOf# z>ZcTLFhRWCqWP9}O#>{3M!?5<*A(}8TAD%i*P))Xl{c^!g9R2}+Fo|XYiO24W;`#u z_7+WNTZ_fwu8v+2t_$*RamU}M_=un?L`z-=9;#4Q^A0Q06I+%0Dc+=9>XbGWGTLMQK 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 literal 0 HcmV?d00001 diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/imo/__init__.py b/use-cases/Gyan0309/post-merger-integration-playbook/imo/__init__.py new file mode 100644 index 00000000..2a4e9c98 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/imo/__init__.py @@ -0,0 +1,6 @@ +"""Post-merger integration playbook document set, built on SuperDocs. + +Detection and rendering are deterministic and offline; SuperDocs does the editing. +""" + +__version__ = "0.1.0" diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/imo/cli.py b/use-cases/Gyan0309/post-merger-integration-playbook/imo/cli.py new file mode 100644 index 00000000..c508d052 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/imo/cli.py @@ -0,0 +1,157 @@ +"""The driver: deal spec in, reviewed document set out. + + python -m imo.cli deals/northstar.yaml --out build/ + +Stages, in order: + + 1. load the deal spec, validated + 2. detect cross-workstream conflicts, deterministically, no model + 3. render the document set from the spec, deterministically, no model + 4. upload each document into its own SuperDocs session + 5. flag each conflict into every document that has a stake in it + 6. review per-item approval of the proposed changes + 7. export the finished set + +Stages 1–3 need no API key and no network, which means the whole detection and +rendering half of this build is testable offline. Only 4–7 touch SuperDocs. +""" + +from __future__ import annotations + +import argparse +import logging +import sys +import uuid +from pathlib import Path + +from imo.conflicts import detect, summarise +from imo.deal import DealSpecError, load_deal +from imo.documents import flag_conflicts_in_document, plan_fan_out, render_all +from imo.superdocs import SuperDocsClient, SuperDocsError + +logger = logging.getLogger("imo") + + +def configure_logging(verbose: bool) -> None: + logging.basicConfig( + level=logging.DEBUG if verbose else logging.INFO, + format="%(message)s", + stream=sys.stdout, + ) + logging.getLogger("httpx").setLevel(logging.WARNING) + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description="Generate a post-merger integration document set.") + parser.add_argument("deal", type=Path, help="path to a deal YAML spec") + parser.add_argument("--out", type=Path, default=Path("build"), help="output directory") + parser.add_argument( + "--offline", + action="store_true", + help="render and detect only; do not contact SuperDocs. Needs no API key.", + ) + parser.add_argument( + "--session-prefix", + default=None, + help="prefix for SuperDocs session ids (default: a fresh random one)", + ) + parser.add_argument("-v", "--verbose", action="store_true") + args = parser.parse_args(argv) + + configure_logging(args.verbose) + + # -- 1. load ----------------------------------------------------------- + try: + deal = load_deal(args.deal) + except DealSpecError as exc: + print(f"deal spec is invalid: {exc}", file=sys.stderr) + return 2 + + print(f"\nProject {deal.code_name}: {deal.acquirer} acquires {deal.target}") + print(f" {len(deal.workstreams)} workstreams, close {deal.expected_close}") + + # -- 2. detect --------------------------------------------------------- + conflicts = detect(deal) + stats = summarise(conflicts) + print(f"\nConflicts detected: {stats['total']} " + f"({stats['high']} high, {stats['medium']} medium) " + f"across {stats['workstreams_affected']} workstreams") + for conflict in conflicts: + print(f" [{conflict.severity}] {conflict.summary}") + print(f" surfaced in: {', '.join(conflict.affects)}") + + # -- 3. render --------------------------------------------------------- + args.out.mkdir(parents=True, exist_ok=True) + documents = render_all(deal) + for document in documents: + document.write(args.out) + print(f"\nRendered {len(documents)} documents into {args.out}/") + + fan_out = plan_fan_out(deal, conflicts) + if fan_out: + print("\nEach conflict lands in every document with a stake in it:") + for key, items in sorted(fan_out.items()): + print(f" {key:<26} {len(items)} conflict(s)") + + if args.offline: + print("\n--offline: stopping before SuperDocs. Documents and detection are done.") + return 0 + + # -- 4..7 -------------------------------------------------------------- + try: + client = SuperDocsClient() + except SuperDocsError as exc: + print(f"\n{exc}", file=sys.stderr) + print("Run with --offline to render and detect without an API key.", file=sys.stderr) + return 3 + + before = client.ops_remaining() + prefix = args.session_prefix or f"{deal.code_name.lower()}-{uuid.uuid4().hex[:6]}" + by_key = {d.key: d for d in documents} + sessions: dict[str, str] = {} + + print(f"\nUploading to SuperDocs (session prefix {prefix})") + for document in documents: + session_id = f"{prefix}-{document.key}" + client.upload(args.out / document.filename, session_id=session_id) + sessions[document.key] = session_id + print(f" {document.filename}") + + print("\nFlagging conflicts through SuperDocs") + outcomes = [] + for key, items in sorted(fan_out.items()): + document = by_key.get(key) + if document is None: + continue + audience = key.removeprefix("workstream-") + outcomes += flag_conflicts_in_document( + client, + session_id=sessions[key], + document_key=key, + audience=audience, + conflicts=items, + ) + + landed = sum(1 for o in outcomes if o.landed) + print(f" {landed}/{len(outcomes)} conflict flags landed") + + print("\nExporting") + exports = args.out / "exported" + exports.mkdir(exist_ok=True) + for document in documents: + client.export( + sessions[document.key], + fmt="markdown", + destination=exports / document.filename, + ) + print(f" {len(documents)} documents into {exports}/") + + after = client.ops_remaining() + if before is not None and after is not None: + print(f"\nOperations spent: {before - after} ({after} remaining)") + + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/imo/conflicts.py b/use-cases/Gyan0309/post-merger-integration-playbook/imo/conflicts.py new file mode 100644 index 00000000..b13fdc57 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/imo/conflicts.py @@ -0,0 +1,343 @@ +"""Cross-workstream conflict detection. + +The card asks for one thing above all: *"Where two workstreams claim the same synergy or +the same dependency, the conflict is flagged in both documents rather than silently +duplicated."* And it says a strong build has *"cross-workstream conflicts genuinely +detected and surfaced in both places."* + +Two words in that carry the weight. + +**Genuinely** — so detection is deterministic arithmetic over the deal spec, not a model +asked whether anything looks off. A model asked that question will find something on a +clean deal and miss something on a dirty one, and neither failure is visible. Every +comparator here is exhaustive, cheap, and testable with no API key at all. + +**Both** — so a conflict is never reported once, in the master, where each workstream +lead can assume it belongs to someone else. It lands in every document that has a stake +in it. `Conflict.affects` is the list of workstreams that must each see it, and it is +what the document layer fans out over. + +Four comparators, each a general mechanism rather than a special case: + + duplicate_synergy two workstreams bank the same saving + contested_dependency two workstreams own the same deliverable + synergy_over_commitment claimed savings exceed what the deal promised + unmet_day_one a day-one item needs something not delivered until later +""" + +from __future__ import annotations + +import re +from dataclasses import dataclass, field +from decimal import Decimal + +from imo.deal import Deal + +# Words too common in integration language to signal a shared claim on their own. +# Without this, "Consolidate finance systems" and "Consolidate HR systems" read as the +# same synergy, and the report fills with pairs nobody believes — at which point the +# real duplicates stop being read too. +STOPWORDS = { + "the", "a", "an", "and", "or", "of", "to", "for", "in", "on", "with", "from", + "consolidate", "reduce", "improve", "integrate", "align", "review", "single", + "cost", "costs", "saving", "savings", "spend", "across", "into", "by", +} + +# How much of the significant vocabulary two descriptions must share before they are +# treated as claims on the same thing. Tuned so the pairs it surfaces are ones a human +# would also call duplicates; raise it if a corpus is noisy, lower it to cast wider. +SIMILARITY_THRESHOLD = 0.6 + + +@dataclass(frozen=True) +class Conflict: + """A contradiction between workstreams, with the evidence to judge it. + + `affects` is the point of the whole module: it names every workstream whose + document must carry this conflict. A conflict flagged once centrally is a conflict + each lead assumes belongs to someone else. + """ + + kind: str + severity: str + summary: str + detail: str + affects: list[str] # workstream keys, each of which must show this + evidence: dict[str, str] = field(default_factory=dict) + + @property + def id(self) -> str: + stem = re.sub(r"[^a-z0-9]+", "-", self.summary.lower()).strip("-") + return f"{self.kind}:{stem[:48]}" + + +def _significant_words(text: str) -> set[str]: + words = re.findall(r"[a-z]{3,}", text.lower()) + return {w for w in words if w not in STOPWORDS} + + +def _similarity(a: str, b: str) -> float: + """Jaccard overlap of significant words. + + Deliberately crude and deliberately explainable. A reviewer asking "why were these + flagged as the same?" gets an answer they can check by reading, which matters more + here than a cleverer metric nobody can audit. + """ + left, right = _significant_words(a), _significant_words(b) + if not left or not right: + return 0.0 + return len(left & right) / len(left | right) + + +# --------------------------------------------------------------------------- +# 1. Two workstreams banking the same saving +# --------------------------------------------------------------------------- + + +def find_duplicate_synergies(deal: Deal) -> list[Conflict]: + """Double-counted synergy — the expensive kind of duplicate. + + Two workstreams each claiming a saving means the deal's total is overstated by the + smaller of the two, and nobody notices until the run-rate misses. Caught two ways: + an identical synergy id, and near-identical descriptions under different ids. + """ + conflicts: list[Conflict] = [] + synergies = deal.all_synergies + + for i, first in enumerate(synergies): + for second in synergies[i + 1 :]: + if first.owner == second.owner: + continue # one workstream's own bookkeeping, not a cross-claim + + same_id = first.id == second.id + similar = _similarity(first.description, second.description) >= SIMILARITY_THRESHOLD + if not (same_id or similar): + continue + + overlap = min(first.annual_value_usd, second.annual_value_usd) + conflicts.append( + Conflict( + kind="duplicate_synergy", + severity="high", + summary=( + f"{first.owner} and {second.owner} both claim the same synergy" + ), + detail=( + f"{first.owner} claims {first.id} " + f"({first.description}, {first.value_display}) and " + f"{second.owner} claims {second.id} " + f"({second.description}, {second.value_display}). " + f"These describe the same saving, so the integration total is " + f"overstated by up to ${overlap:,.0f}. One workstream must own " + f"it and the other must drop the claim." + ), + affects=[first.owner, second.owner], + evidence={ + first.owner: f"{first.id}: {first.description} ({first.value_display})", + second.owner: f"{second.id}: {second.description} ({second.value_display})", + }, + ) + ) + + return conflicts + + +# --------------------------------------------------------------------------- +# 2. Two workstreams owning the same deliverable +# --------------------------------------------------------------------------- + + +def find_contested_dependencies(deal: Deal) -> list[Conflict]: + """Two owners is the same failure as no owner, and harder to see. + + Each lead reports the item as covered, the steering pack shows it green, and it is + delivered twice or not at all. + """ + conflicts: list[Conflict] = [] + dependencies = deal.all_dependencies + + for i, first in enumerate(dependencies): + for second in dependencies[i + 1 :]: + if first.owner == second.owner: + continue + + same_id = first.id == second.id + similar = _similarity(first.description, second.description) >= SIMILARITY_THRESHOLD + if not (same_id or similar): + continue + + conflicts.append( + Conflict( + kind="contested_dependency", + severity="high", + summary=( + f"{first.owner} and {second.owner} both own the same dependency" + ), + detail=( + f"{first.owner} owns {first.id} ({first.description}, needed by " + f"month {first.needed_by_month}) and {second.owner} owns " + f"{second.id} ({second.description}, needed by month " + f"{second.needed_by_month}). Two owners means each side can " + f"reasonably assume the other is delivering it. Assign one." + ), + affects=[first.owner, second.owner], + evidence={ + first.owner: f"{first.id}: {first.description} (month {first.needed_by_month})", + second.owner: f"{second.id}: {second.description} (month {second.needed_by_month})", + }, + ) + ) + + return conflicts + + +# --------------------------------------------------------------------------- +# 3. Claimed savings exceeding what the deal promised +# --------------------------------------------------------------------------- + + +def find_synergy_over_commitment(deal: Deal) -> list[Conflict]: + """Workstream claims summing past the deal target. + + Not automatically wrong — over-programming against a target is a deliberate tactic — + but it is always a decision someone should have made on purpose, and it is exactly + what nobody notices until the tracker is assembled. + """ + claimed = deal.claimed_synergy_total + target = deal.synergy_target_usd + + if claimed <= target: + return [] + + excess = claimed - target + + # A target of zero is a real state, not a broken one: an early-stage deal has + # workstreams estimating savings before the target is agreed. Expressing the excess + # as a percentage of zero raised DivisionByZero and took the whole detection pass + # down — a crash on the most ordinary early input there is. + proportion = f" ({excess / target:.0%})" if target > 0 else "" + against = ( + f"a deal target of ${target:,.0f}" + if target > 0 + else "no agreed deal target" + ) + + return [ + Conflict( + kind="synergy_over_commitment", + severity="medium", + summary="Workstream synergy claims exceed the deal target", + detail=( + f"Workstreams claim ${claimed:,.0f} in total against {against} — " + f"an excess of ${excess:,.0f}{proportion}. Either the target is stale " + f"or some claims are double-counted. Reconcile before the tracker goes " + f"to steering." + ), + # Every workstream with a claim shares this one: it cannot be resolved by + # any single lead, and showing it only in the master lets all of them + # assume it is someone else's number that is wrong. + affects=sorted({s.owner for s in deal.all_synergies}), + evidence={ + w.key: f"claims ${w.synergy_total:,.0f}" + for w in deal.workstreams + if w.synergies + }, + ) + ] + + +# --------------------------------------------------------------------------- +# 4. Day-one items resting on things that do not exist yet +# --------------------------------------------------------------------------- + + +def find_unmet_day_one(deal: Deal) -> list[Conflict]: + """A day-one item depending on something delivered in month three is not a day-one + item — it is a month-three item nobody has rescheduled. + + This is what makes the checklist specific to *this* deal rather than a generic + list: the finding exists only because of how these particular dependencies are + sequenced. + """ + conflicts: list[Conflict] = [] + + for item in deal.all_day_one: + for dependency_id in item.depends_on: + dependency = deal.dependency(dependency_id) + if dependency is None or dependency.needed_by_month <= 0: + continue + + affects = sorted({item.owner, dependency.owner}) + conflicts.append( + Conflict( + kind="unmet_day_one", + severity="high", + summary=( + f"Day-one item {item.id} depends on work not delivered until " + f"month {dependency.needed_by_month}" + ), + detail=( + f"{item.owner} lists {item.id} ({item.description}) as a day-one " + f"readiness item, but it depends on {dependency.id} " + f"({dependency.description}), which {dependency.owner} does not " + f"deliver until month {dependency.needed_by_month}. The item " + f"cannot be green at close. Either pull the dependency forward " + f"or move the item out of day one." + ), + affects=affects, + evidence={ + item.owner: f"{item.id}: {item.description} (day one)", + dependency.owner: ( + f"{dependency.id}: {dependency.description} " + f"(month {dependency.needed_by_month})" + ), + }, + ) + ) + + return conflicts + + +# --------------------------------------------------------------------------- + +COMPARATORS = ( + find_duplicate_synergies, + find_contested_dependencies, + find_synergy_over_commitment, + find_unmet_day_one, +) + + +def detect(deal: Deal) -> list[Conflict]: + """Run every comparator, deduplicated and ordered by severity. + + An empty list is a first-class outcome: a clean deal genuinely has no + cross-workstream conflicts, and reporting a reassuring nothing is more useful than + manufacturing something to justify the check having run. + """ + seen: set[str] = set() + found: list[Conflict] = [] + + for comparator in COMPARATORS: + for conflict in comparator(deal): + if conflict.id in seen: + continue + seen.add(conflict.id) + found.append(conflict) + + rank = {"high": 0, "medium": 1, "low": 2} + return sorted(found, key=lambda c: (rank.get(c.severity, 3), c.summary)) + + +def conflicts_for(conflicts: list[Conflict], workstream_key: str) -> list[Conflict]: + """Every conflict a given workstream's document must carry.""" + return [c for c in conflicts if workstream_key in c.affects] + + +def summarise(conflicts: list[Conflict]) -> dict[str, int | Decimal]: + return { + "total": len(conflicts), + "high": sum(1 for c in conflicts if c.severity == "high"), + "medium": sum(1 for c in conflicts if c.severity == "medium"), + "workstreams_affected": len({w for c in conflicts for w in c.affects}), + } diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/imo/deal.py b/use-cases/Gyan0309/post-merger-integration-playbook/imo/deal.py new file mode 100644 index 00000000..a880a9e6 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/imo/deal.py @@ -0,0 +1,318 @@ +"""The deal specification — the single source of truth for a whole document set. + +Every document this build produces is a *projection* of the deal spec: the integration +charter, each workstream charter, the day-one checklists, the synergy tracker and the +communications pack all say things that trace back to a field here. + +That is the load-bearing decision, and it is what makes the card's hardest requirement +achievable at all. "Master-to-workstream consistency holds after edits made on either +side" is impossible to guarantee between N documents that merely agreed when they were +written — each edit is a chance to drift, and there is no arbiter. With a spec in the +middle, consistency is a comparison against one artifact rather than N-squared +comparisons between documents, and an edit on either side is reconciled the same way. + +The spec is YAML because a new deal, a new workstream, or a new synergy must be a data +change and never a code change. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from datetime import date +from decimal import Decimal +from pathlib import Path +from typing import Any + +import yaml + + +class DealSpecError(ValueError): + """The deal file is malformed. + + Raised at load time with the offending field named. A spec that is silently + half-read produces a document set that is confidently wrong, which is far worse + than refusing to start. + """ + + +@dataclass(frozen=True) +class Synergy: + """A claimed saving or revenue gain, owned by exactly one workstream.""" + + id: str + description: str + annual_value_usd: Decimal + realisation_month: int + owner: str # workstream key + + @property + def value_display(self) -> str: + return f"${self.annual_value_usd:,.0f}" + + +@dataclass(frozen=True) +class Dependency: + """Something a workstream needs, or provides, before work can proceed.""" + + id: str + description: str + owner: str # workstream key that OWNS delivery + needed_by_month: int + needed_by: list[str] = field(default_factory=list) # workstream keys that consume it + + +@dataclass(frozen=True) +class DayOneItem: + """A readiness item that must be true on day one. + + `depends_on` is what makes the day-one checklist deal-specific rather than generic: + an item that relies on a dependency not delivered until month three is a real + finding about *this* deal, not a template line. + """ + + id: str + description: str + owner: str + depends_on: list[str] = field(default_factory=list) # dependency ids + status: str = "not_started" + + +@dataclass(frozen=True) +class Workstream: + key: str + name: str + lead: str + scope: str + synergies: list[Synergy] = field(default_factory=list) + dependencies: list[Dependency] = field(default_factory=list) + day_one: list[DayOneItem] = field(default_factory=list) + + @property + def synergy_total(self) -> Decimal: + return sum((s.annual_value_usd for s in self.synergies), Decimal(0)) + + +@dataclass(frozen=True) +class TargetProfile: + headcount: int + locations: list[str] + systems: list[dict[str, str]] + notes: str = "" + + +@dataclass(frozen=True) +class Deal: + code_name: str + acquirer: str + target: str + announced: date + expected_close: date + integration_horizon_months: int + deal_value_usd: Decimal + synergy_target_usd: Decimal + rationale: str + profile: TargetProfile + workstreams: list[Workstream] + + # -- derived --------------------------------------------------------------- + + @property + def all_synergies(self) -> list[Synergy]: + return [s for w in self.workstreams for s in w.synergies] + + @property + def all_dependencies(self) -> list[Dependency]: + return [d for w in self.workstreams for d in w.dependencies] + + @property + def all_day_one(self) -> list[DayOneItem]: + return [i for w in self.workstreams for i in w.day_one] + + @property + def claimed_synergy_total(self) -> Decimal: + return sum((s.annual_value_usd for s in self.all_synergies), Decimal(0)) + + def workstream(self, key: str) -> Workstream | None: + return next((w for w in self.workstreams if w.key == key), None) + + def dependency(self, dependency_id: str) -> Dependency | None: + return next((d for d in self.all_dependencies if d.id == dependency_id), None) + + +# --------------------------------------------------------------------------- +# Loading +# --------------------------------------------------------------------------- + + +def _require(mapping: dict[str, Any], key: str, where: str) -> Any: + if key not in mapping: + raise DealSpecError(f"{where}: missing required field {key!r}") + return mapping[key] + + +def _as_date(value: Any, where: str) -> date: + if isinstance(value, date): + return value + raise DealSpecError( + f"{where}: expected a date (YYYY-MM-DD), got {value!r}. " + f"Quote it and it becomes a string, which is not the same thing." + ) + + +def _as_money(value: Any, where: str) -> Decimal: + try: + return Decimal(str(value).replace(",", "").replace("$", "")) + except Exception as exc: + raise DealSpecError(f"{where}: {value!r} is not a number") from exc + + +def load_deal(path: Path) -> Deal: + """Load and validate a deal spec. + + Validation is thorough and happens here rather than at use time, because the + failure mode of a half-valid spec is a complete, plausible, wrong document set — + and nobody reading a polished integration charter thinks to doubt the input file. + """ + # A typo'd path and a malformed file are the two commonest first interactions with + # any tool that takes one. Both used to surface as raw tracebacks, which tells the + # user the tool is broken rather than that they mistyped something. + try: + text = path.read_text(encoding="utf-8") + except FileNotFoundError: + raise DealSpecError(f"no such deal file: {path}") from None + except OSError as exc: + raise DealSpecError(f"cannot read {path}: {exc.strerror or exc}") from None + + try: + raw = yaml.safe_load(text) or {} + except yaml.YAMLError as exc: + # YAML errors carry the line and column; keep them, drop the traceback. + where = getattr(exc, "problem_mark", None) + location = f" at line {where.line + 1}, column {where.column + 1}" if where else "" + problem = getattr(exc, "problem", None) or str(exc).splitlines()[0] + raise DealSpecError(f"{path.name} is not valid YAML{location}: {problem}") from None + + if not isinstance(raw, dict): + raise DealSpecError( + f"{path.name}: expected a mapping at the top level, got " + f"{type(raw).__name__}" + ) + + deal_block = _require(raw, "deal", path.name) + profile_block = _require(raw, "target_profile", path.name) + workstream_blocks = _require(raw, "workstreams", path.name) + + if not workstream_blocks: + raise DealSpecError(f"{path.name}: a deal needs at least one workstream") + + profile = TargetProfile( + headcount=int(_require(profile_block, "headcount", "target_profile")), + locations=list(profile_block.get("locations") or []), + systems=list(profile_block.get("systems") or []), + notes=profile_block.get("notes", ""), + ) + + workstreams: list[Workstream] = [] + seen_keys: set[str] = set() + + for index, block in enumerate(workstream_blocks): + where = f"{path.name} workstream #{index + 1}" + key = _require(block, "key", where) + + if key in seen_keys: + raise DealSpecError(f"{where}: duplicate workstream key {key!r}") + seen_keys.add(key) + + synergies = [ + Synergy( + id=_require(s, "id", f"{where} synergy"), + description=_require(s, "description", f"{where} synergy"), + annual_value_usd=_as_money( + _require(s, "annual_value_usd", f"{where} synergy"), f"{where} synergy" + ), + realisation_month=int(s.get("realisation_month", 12)), + owner=key, + ) + for s in (block.get("synergies") or []) + ] + + dependencies = [ + Dependency( + id=_require(d, "id", f"{where} dependency"), + description=_require(d, "description", f"{where} dependency"), + owner=key, + needed_by_month=int(d.get("needed_by_month", 0)), + needed_by=list(d.get("needed_by") or []), + ) + for d in (block.get("dependencies") or []) + ] + + day_one = [ + DayOneItem( + id=_require(i, "id", f"{where} day_one"), + description=_require(i, "description", f"{where} day_one"), + owner=key, + depends_on=list(i.get("depends_on") or []), + status=i.get("status", "not_started"), + ) + for i in (block.get("day_one") or []) + ] + + workstreams.append( + Workstream( + key=key, + name=_require(block, "name", where), + lead=block.get("lead", "unassigned"), + scope=block.get("scope", ""), + synergies=synergies, + dependencies=dependencies, + day_one=day_one, + ) + ) + + deal = Deal( + code_name=_require(deal_block, "code_name", "deal"), + acquirer=_require(deal_block, "acquirer", "deal"), + target=_require(deal_block, "target", "deal"), + announced=_as_date(_require(deal_block, "announced", "deal"), "deal.announced"), + expected_close=_as_date( + _require(deal_block, "expected_close", "deal"), "deal.expected_close" + ), + integration_horizon_months=int(deal_block.get("integration_horizon_months", 12)), + deal_value_usd=_as_money(_require(deal_block, "deal_value_usd", "deal"), "deal"), + synergy_target_usd=_as_money( + _require(deal_block, "synergy_target_usd", "deal"), "deal" + ), + rationale=deal_block.get("rationale", ""), + profile=profile, + workstreams=workstreams, + ) + + if deal.expected_close < deal.announced: + raise DealSpecError( + f"{path.name}: expected_close ({deal.expected_close}) is before " + f"announced ({deal.announced})" + ) + + # Referential integrity, checked once at load. A day-one item pointing at a + # dependency that does not exist would otherwise surface as a confidently generated + # checklist entry with no basis, which is the kind of error nobody catches by reading. + known_dependencies = {d.id for d in deal.all_dependencies} + for item in deal.all_day_one: + for needed in item.depends_on: + if needed not in known_dependencies: + raise DealSpecError( + f"{path.name}: day-one item {item.id!r} depends on {needed!r}, " + f"which no workstream declares" + ) + + known_workstreams = {w.key for w in deal.workstreams} + for dependency in deal.all_dependencies: + for consumer in dependency.needed_by: + if consumer not in known_workstreams: + raise DealSpecError( + f"{path.name}: dependency {dependency.id!r} is needed by " + f"{consumer!r}, which is not a workstream" + ) + + return deal diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/imo/documents.py b/use-cases/Gyan0309/post-merger-integration-playbook/imo/documents.py new file mode 100644 index 00000000..90519aca --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/imo/documents.py @@ -0,0 +1,492 @@ +"""Rendering the document set, and flagging conflicts into it through SuperDocs. + +Two stages, deliberately separated. + +**Rendering is deterministic.** Every document is generated from the deal spec by plain +Python. No model is involved, because a charter is a projection of known facts and a +model asked to write one will quietly improve a number. Deterministic rendering also +means the same deal always produces the same bytes, so a diff between two runs shows +only what actually changed in the deal. + +**Flagging is SuperDocs' job.** Once the documents exist, the conflicts detected in +`conflicts.py` are applied *as edits to the real documents*, through the chat and +approval surface. That is the product doing the work it exists to do: a targeted change +landing in place, reviewable, with everything else untouched. + +The card's requirement — *"the conflict is flagged in both documents rather than +silently duplicated"* — is satisfied by fanning one conflict out over every workstream +in `Conflict.affects`, so each lead sees it in their own charter rather than assuming +it belongs to someone else. +""" + +from __future__ import annotations + +import logging +from dataclasses import dataclass +from pathlib import Path + +from imo.conflicts import Conflict, conflicts_for +from imo.deal import Deal, Workstream +from imo.superdocs import ChatResult, SuperDocsClient + +logger = logging.getLogger("imo.documents") + +CONFLICT_HEADING = "Open Cross-Workstream Conflicts" + + +@dataclass(frozen=True) +class RenderedDocument: + key: str + title: str + filename: str + body: str + + def write(self, directory: Path) -> Path: + path = directory / self.filename + path.write_text(self.body, encoding="utf-8") + return path + + +# --------------------------------------------------------------------------- +# Rendering +# --------------------------------------------------------------------------- + + +def _money(value) -> str: + return f"${value:,.0f}" + + +def render_charter(deal: Deal) -> RenderedDocument: + """The master integration charter — the document every other one answers to.""" + lines = [ + f"# Integration Charter — Project {deal.code_name}", + "", + f"**Acquirer:** {deal.acquirer} ", + f"**Target:** {deal.target} ", + f"**Announced:** {deal.announced.isoformat()} ", + f"**Expected close:** {deal.expected_close.isoformat()} ", + f"**Integration horizon:** {deal.integration_horizon_months} months", + "", + "## 1. Deal Rationale", + "", + deal.rationale.strip(), + "", + "## 2. Synergy Target", + "", + f"The deal carries a run-rate synergy target of " + f"{_money(deal.synergy_target_usd)} by month " + f"{deal.integration_horizon_months}.", + "", + f"Workstreams currently claim {_money(deal.claimed_synergy_total)} in total.", + "", + "| Workstream | Lead | Claimed |", + "|---|---|---|", + ] + for workstream in deal.workstreams: + lines.append( + f"| {workstream.name} | {workstream.lead} | {_money(workstream.synergy_total)} |" + ) + + lines += [ + "", + "## 3. Workstreams and Scope", + "", + ] + for workstream in deal.workstreams: + lines += [ + f"### {workstream.name}", + "", + f"**Lead:** {workstream.lead}", + "", + workstream.scope.strip(), + "", + ] + + lines += [ + "## 4. Target Profile", + "", + f"{deal.target} has {deal.profile.headcount} staff across " + f"{', '.join(deal.profile.locations)}.", + "", + "| System | Function | Disposition |", + "|---|---|---|", + ] + for system in deal.profile.systems: + lines.append( + f"| {system.get('name', '?')} | {system.get('function', '?')} | " + f"{system.get('disposition', 'to be decided')} |" + ) + + if deal.profile.notes.strip(): + lines += ["", "**Notes.** " + deal.profile.notes.strip()] + + lines += [ + "", + "## 5. Governance", + "", + "The integration management office reports to the steering committee monthly. " + "Each workstream lead owns the charter for their function and is accountable " + "for the synergies claimed in it.", + "", + ] + + return RenderedDocument( + key="charter", + title=f"Integration Charter — Project {deal.code_name}", + filename="01-integration-charter.md", + body="\n".join(lines), + ) + + +def render_workstream_charter(deal: Deal, workstream: Workstream) -> RenderedDocument: + """One charter per function, consistent with the master by construction.""" + lines = [ + f"# {workstream.name} Workstream Charter — Project {deal.code_name}", + "", + f"**Lead:** {workstream.lead} ", + f"**Deal:** {deal.acquirer} acquires {deal.target} ", + f"**Expected close:** {deal.expected_close.isoformat()}", + "", + "## 1. Scope", + "", + workstream.scope.strip() or "_Scope to be confirmed._", + "", + "## 2. Synergies Owned", + "", + ] + + if workstream.synergies: + lines += ["| ID | Description | Annual value | Realised by |", "|---|---|---|---|"] + for synergy in workstream.synergies: + lines.append( + f"| {synergy.id} | {synergy.description} | " + f"{synergy.value_display} | month {synergy.realisation_month} |" + ) + lines += ["", f"**Total claimed: {_money(workstream.synergy_total)}**"] + else: + lines.append("This workstream claims no synergies directly.") + + lines += ["", "## 3. Dependencies Owned", ""] + if workstream.dependencies: + lines += ["| ID | Description | Needed by | Consumed by |", "|---|---|---|---|"] + for dependency in workstream.dependencies: + consumers = ", ".join(dependency.needed_by) or "—" + lines.append( + f"| {dependency.id} | {dependency.description} | " + f"month {dependency.needed_by_month} | {consumers} |" + ) + else: + lines.append("This workstream owns no cross-workstream dependencies.") + + lines += ["", "## 4. Day-One Readiness", ""] + if workstream.day_one: + lines += ["| ID | Item | Status | Depends on |", "|---|---|---|---|"] + for item in workstream.day_one: + depends = ", ".join(item.depends_on) or "—" + lines.append( + f"| {item.id} | {item.description} | " + f"{item.status.replace('_', ' ')} | {depends} |" + ) + else: + lines.append("No day-one items are assigned to this workstream.") + + lines += ["", f"## 5. {CONFLICT_HEADING}", "", "_None recorded._", ""] + + return RenderedDocument( + key=f"workstream-{workstream.key}", + title=f"{workstream.name} Workstream Charter", + filename=f"02-workstream-{workstream.key}.md", + body="\n".join(lines), + ) + + +def render_day_one_checklist(deal: Deal) -> RenderedDocument: + """The day-one readiness checklist. + + Specific to this deal rather than generic: every line comes from a workstream's own + declared items, and the dependency column is what lets a reader see *why* an item is + at risk. A generic checklist cannot have that column at all. + """ + lines = [ + f"# Day-One Readiness Checklist — Project {deal.code_name}", + "", + f"Close is expected on {deal.expected_close.isoformat()}. Every item below must " + f"be true on that date.", + "", + "| ID | Item | Owner | Status | Depends on |", + "|---|---|---|---|---|", + ] + + for item in deal.all_day_one: + workstream = deal.workstream(item.owner) + depends = ", ".join(item.depends_on) or "—" + lines.append( + f"| {item.id} | {item.description} | " + f"{workstream.name if workstream else item.owner} | " + f"{item.status.replace('_', ' ')} | {depends} |" + ) + + at_risk = [ + item + for item in deal.all_day_one + for dep_id in item.depends_on + if (dep := deal.dependency(dep_id)) and dep.needed_by_month > 0 + ] + + lines += ["", "## Items at Risk", ""] + if at_risk: + lines.append( + "These items depend on work that is not scheduled to complete before close:" + ) + lines.append("") + for item in at_risk: + for dep_id in item.depends_on: + dependency = deal.dependency(dep_id) + if dependency and dependency.needed_by_month > 0: + lines.append( + f"- **{item.id}** — {item.description}. Depends on " + f"{dependency.id} ({dependency.description}), owned by " + f"{dependency.owner}, not due until month " + f"{dependency.needed_by_month}." + ) + else: + lines.append("No day-one item depends on work scheduled after close.") + + lines.append("") + return RenderedDocument( + key="day-one", + title=f"Day-One Readiness Checklist — Project {deal.code_name}", + filename="03-day-one-checklist.md", + body="\n".join(lines), + ) + + +def render_synergy_tracker(deal: Deal) -> RenderedDocument: + """The synergy tracking summary, reconciled against the deal target.""" + variance = deal.claimed_synergy_total - deal.synergy_target_usd + + lines = [ + f"# Synergy Tracker — Project {deal.code_name}", + "", + f"**Deal target:** {_money(deal.synergy_target_usd)} run-rate by month " + f"{deal.integration_horizon_months} ", + f"**Claimed by workstreams:** {_money(deal.claimed_synergy_total)} ", + f"**Variance:** {_money(variance)} " + f"({'over-committed' if variance > 0 else 'under-committed' if variance else 'on target'})", + "", + "## By Workstream", + "", + "| Workstream | Claimed | Share of target |", + "|---|---|---|", + ] + for workstream in deal.workstreams: + share = ( + workstream.synergy_total / deal.synergy_target_usd + if deal.synergy_target_usd + else 0 + ) + lines.append( + f"| {workstream.name} | {_money(workstream.synergy_total)} | {share:.0%} |" + ) + + lines += ["", "## All Claims", "", "| ID | Owner | Description | Value | Month |", "|---|---|---|---|---|"] + for synergy in sorted(deal.all_synergies, key=lambda s: -s.annual_value_usd): + lines.append( + f"| {synergy.id} | {synergy.owner} | {synergy.description} | " + f"{synergy.value_display} | {synergy.realisation_month} |" + ) + + lines += ["", f"## {CONFLICT_HEADING}", "", "_None recorded._", ""] + + return RenderedDocument( + key="synergy-tracker", + title=f"Synergy Tracker — Project {deal.code_name}", + filename="04-synergy-tracker.md", + body="\n".join(lines), + ) + + +def render_communications_pack(deal: Deal) -> RenderedDocument: + """The comms pack. Deliberately plain, and honest about what is not yet decided.""" + lines = [ + f"# Communications Pack — Project {deal.code_name}", + "", + "## 1. Announcement Summary", + "", + f"{deal.acquirer} has agreed to acquire {deal.target}, with completion expected " + f"on {deal.expected_close.isoformat()}.", + "", + deal.rationale.strip(), + "", + "## 2. Audiences and Owners", + "", + "| Audience | Owner | First contact |", + "|---|---|---|", + "| All Northwind staff | People & Organisation | Day one |", + "| Top 20 customers | Commercial & Customer | Day one |", + "| Remaining customers | Commercial & Customer | Week one |", + "| Suppliers on notice periods | Finance & Accounting | Week one |", + "| Regulators, where applicable | Finance & Accounting | Per timetable |", + "", + "## 3. Questions We Can Answer Today", + "", + f"- **Will there be redundancies?** No decisions have been taken. The " + f"{deal.profile.headcount} staff at {deal.target} transfer on existing terms.", + f"- **Do working patterns change?** Not at close. " + + ( + deal.profile.notes.strip().split(".")[0] + "." + if deal.profile.notes.strip() + else "Local arrangements continue unchanged." + ), + "- **Which systems are changing?** See the charter's target profile table. " + "Nothing changes for users before the relevant workstream confirms cutover.", + "", + "## 4. Questions We Cannot Answer Yet", + "", + "Being straight about this is the point of the section. Saying \"we do not know " + "yet, and here is when we will\" survives contact with an audience; a " + "confident answer that turns out to be wrong does not.", + "", + "- Final organisational design below workstream-lead level.", + "- Benefits harmonisation detail, pending the People workstream review.", + "- Long-term location strategy.", + "", + ] + return RenderedDocument( + key="comms-pack", + title=f"Communications Pack — Project {deal.code_name}", + filename="05-communications-pack.md", + body="\n".join(lines), + ) + + +def render_all(deal: Deal) -> list[RenderedDocument]: + """The complete document set, in the order a reader would meet it.""" + documents = [render_charter(deal)] + documents += [render_workstream_charter(deal, w) for w in deal.workstreams] + documents += [ + render_day_one_checklist(deal), + render_synergy_tracker(deal), + render_communications_pack(deal), + ] + return documents + + +# --------------------------------------------------------------------------- +# Flagging conflicts into the documents, through SuperDocs +# --------------------------------------------------------------------------- + + +def conflict_instruction(conflict: Conflict, *, audience: str) -> str: + """The edit instruction sent to SuperDocs for one conflict in one document. + + Written to be surgical on purpose: it names the exact section to change and states + that nothing else may be touched. A vague instruction gets a helpfully rewritten + document, and "helpfully rewritten" is indistinguishable from "silently damaged" + once it is three documents deep. + """ + stake = conflict.evidence.get(audience, "") + stake_line = f" This document's stake in it: {stake}." if stake else "" + + return ( + f"In the section titled '{CONFLICT_HEADING}', replace the text '_None recorded._' " + f"with a bullet describing this conflict, or append a bullet if entries already " + f"exist. The bullet must read:\n\n" + f"**[{conflict.severity.upper()}] {conflict.summary}.** {conflict.detail}" + f"{stake_line}\n\n" + f"Change nothing else in the document. Do not alter any table, any figure, or " + f"any other section." + ) + + +@dataclass +class FlagOutcome: + document_key: str + session_id: str + conflict_id: str + changes_proposed: int + approved: int + + @property + def landed(self) -> bool: + return self.approved > 0 + + +def flag_conflicts_in_document( + client: SuperDocsClient, + *, + session_id: str, + document_key: str, + audience: str, + conflicts: list[Conflict], + auto_approve: bool = True, +) -> list[FlagOutcome]: + """Apply every conflict affecting this document, one edit at a time. + + One conflict per chat turn rather than one turn listing all of them. That costs + more turns, and buys two things worth more than the saving: each proposed change is + reviewable on its own, so a human can accept one flag and reject another; and a + failure is attributable to a specific conflict instead of leaving a partly-edited + document nobody can reason about. + """ + outcomes: list[FlagOutcome] = [] + + for conflict in conflicts: + result: ChatResult = client.chat( + session_id=session_id, + message=conflict_instruction(conflict, audience=audience), + ) + + approved = 0 + if auto_approve and result.pending_changes: + client.decide_all(result) + approved = len(result.pending_changes) + + # Approving does not mean finished. The job goes on to apply the change, + # and the next instruction into a still-working session is a 409 + # `session_busy`. Waiting here is what makes driving one session in a loop + # safe at all. + client.wait_until_idle(session_id) + + logger.info( + "%s: %s -> %d change(s), %d approved", + document_key, + conflict.kind, + len(result.pending_changes), + approved, + ) + + outcomes.append( + FlagOutcome( + document_key=document_key, + session_id=session_id, + conflict_id=conflict.id, + changes_proposed=len(result.pending_changes), + approved=approved, + ) + ) + + return outcomes + + +def plan_fan_out(deal: Deal, conflicts: list[Conflict]) -> dict[str, list[Conflict]]: + """Which conflicts each document must carry. + + This mapping is the card's requirement in one function: a conflict between two + workstreams appears in *both* of their charters, and in the master, rather than + once in a central list where each lead can assume it is someone else's problem. + """ + plan: dict[str, list[Conflict]] = {} + + for workstream in deal.workstreams: + mine = conflicts_for(conflicts, workstream.key) + if mine: + plan[f"workstream-{workstream.key}"] = mine + + # The synergy tracker carries every money conflict, because that is the document + # someone reads when the numbers do not add up. + money = [c for c in conflicts if c.kind in ("duplicate_synergy", "synergy_over_commitment")] + if money: + plan["synergy-tracker"] = money + + return plan diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/imo/superdocs.py b/use-cases/Gyan0309/post-merger-integration-playbook/imo/superdocs.py new file mode 100644 index 00000000..3c639098 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/imo/superdocs.py @@ -0,0 +1,498 @@ +"""A SuperDocs API client covering the four-call contract. + +Upload, chat, approve, export. The brief is explicit that these four come first and +everything else is optional depth, so this client does those four properly rather than +covering the whole API shallowly. + +Almost every non-obvious line here exists because of something that bit during +integration, and each is commented where it bites. The full list, with reproductions, +is in BUGS.md. + +The verified flow, end to end: + + 1. POST /v1/documents/upload-base64 with session_id → persists the document + 2. GET /v1/sessions/{id}/documents → document_id ("doc_primary") + 3. POST /v1/chat/async → job_id + 4. GET /v1/jobs/{job_id} → poll; changes arrive in + metadata.pending_changes + 5. POST /v1/chat/{session_id}/approve → job_id + change_id + approved + 6. POST /v1/documents/export → session_id + format +""" + +from __future__ import annotations + +import base64 +import json +import logging +import os +import time +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any + +import httpx + +logger = logging.getLogger("imo.superdocs") + +DEFAULT_BASE_URL = "https://api.superdocs.app/v1" + +REQUEST_TIMEOUT_SECONDS = 120.0 +POLL_INTERVAL_SECONDS = 3.0 +POLL_CEILING_SECONDS = 900.0 + +# Statuses that mean the job has stopped moving. Deliberately expressed as the set of +# *terminal* states rather than the set of working ones: the working vocabulary +# includes `in_progress`, and a poller that lists only pending/processing/running/queued +# treats `in_progress` as finished, reads a null result, and reports no changes at all. +TERMINAL_STATUSES = { + "completed", + "complete", + "succeeded", + "success", + "failed", + "error", + "cancelled", + "canceled", + "awaiting_approval", +} + +EXPORT_FORMATS = {"docx", "pdf", "html", "markdown", "txt"} + + +class SuperDocsError(RuntimeError): + """An API call failed in a way the caller cannot recover from.""" + + +@dataclass +class UploadedDocument: + session_id: str + document_id: str + durable_document_id: str | None + filename: str + chunks_count: int = 0 + version_id: str | None = None + + +@dataclass +class PendingChange: + change_id: str + operation: str + chunk_id: str | None + document_id: str | None + old_html: str + new_html: str + explanation: str + + @classmethod + def from_api(cls, raw: dict[str, Any]) -> PendingChange: + return cls( + change_id=raw["change_id"], + operation=raw.get("operation", "edit"), + chunk_id=raw.get("chunk_id"), + document_id=raw.get("document_id"), + old_html=raw.get("old_html") or "", + new_html=raw.get("new_html") or "", + explanation=raw.get("ai_explanation") or "", + ) + + +@dataclass +class ChatResult: + session_id: str + job_id: str + status: str + pending_changes: list[PendingChange] = field(default_factory=list) + response_text: str = "" + raw: dict[str, Any] = field(default_factory=dict, repr=False) + + @property + def awaiting_approval(self) -> bool: + return self.status == "awaiting_approval" + + +def parse_embedded_json(raw: Any) -> Any: + """Second-parse a field that arrives as a JSON-encoded string. + + The brief warns that proposed-change content arrives JSON-encoded and needs a + second parse, and that missing this is the commonest cause of diff cards full of + `undefined`. Worth being precise about *where* it applies, because it is not where + you would first look: + + metadata.pending_changes[] → already objects, no second parse + metadata.intermediate_responses[] → `content` IS a JSON string for entries + of type `proposed_change_batch` + + So a client reading pending_changes is fine, and one reading the streamed + intermediate responses must parse twice. + """ + if isinstance(raw, str): + try: + return json.loads(raw) + except json.JSONDecodeError: + return raw + return raw + + +class SuperDocsClient: + def __init__( + self, + api_key: str | None = None, + base_url: str | None = None, + *, + timeout: float = REQUEST_TIMEOUT_SECONDS, + ) -> None: + self._key = api_key or os.environ.get("SUPERDOCS_API_KEY", "") + if not self._key: + raise SuperDocsError( + "SUPERDOCS_API_KEY is not set. Copy .env.example to .env and add your key." + ) + self._base = ( + base_url or os.environ.get("SUPERDOCS_BASE_URL") or DEFAULT_BASE_URL + ).rstrip("/") + self._timeout = timeout + self.calls_made = 0 + + # -- plumbing ------------------------------------------------------------ + + def _redact(self, text: str) -> str: + return text.replace(self._key, "") if self._key else text + + def _request( + self, + method: str, + path: str, + *, + json_body: dict | None = None, + timeout: float | None = None, + ) -> dict[str, Any]: + url = f"{self._base}{path}" + started = time.monotonic() + + try: + with httpx.Client(timeout=timeout or self._timeout) as client: + response = client.request( + method, + url, + headers={ + "Authorization": f"Bearer {self._key}", + "Content-Type": "application/json", + }, + json=json_body, + ) + except httpx.RequestError as exc: + raise SuperDocsError( + f"{method} {path} unreachable: {type(exc).__name__}" + ) from exc + + self.calls_made += 1 + logger.info( + "%s %s -> %s in %.1fs", + method, + path, + response.status_code, + time.monotonic() - started, + ) + + if response.status_code >= 400: + raise SuperDocsError( + f"{method} {path} -> HTTP {response.status_code}: " + f"{self._redact(response.text[:600])}" + ) + + return response.json() if response.content else {} + + # -- 1. upload ----------------------------------------------------------- + + def upload( + self, path: Path, *, session_id: str, filename: str | None = None + ) -> UploadedDocument: + """Upload a document into a session, durably. + + Two things bite here. + + **The field is `file_base64`**, not `content_base64`. The wrong name returns a + 422 that names the missing field, which is genuinely helpful. + + **Without a `session_id` the upload is a one-off conversion and is not saved.** + You get parsed HTML back and nothing is stored — and the response says so, in a + `how_to_persist` field that states the exact request which would change it. + That is the clearest piece of API self-documentation in this surface. + """ + response = self._request( + "POST", + "/documents/upload-base64", + json_body={ + "filename": filename or path.name, + "file_base64": base64.b64encode(path.read_bytes()).decode("ascii"), + "session_id": session_id, + }, + ) + + if not response.get("persisted"): + raise SuperDocsError( + f"{path.name} was not persisted despite a session_id. " + f"Server said: {response.get('how_to_persist')!r}" + ) + + # The upload response does not carry the id chat needs; that comes from the + # session's document list, where ids are session-scoped ("doc_primary") and + # separate from the durable UUID. + listed = self.list_documents(session_id) + match = next( + (d for d in listed if d.filename.startswith(Path(path.name).stem)), None + ) or (listed[-1] if listed else None) + + if match is None: + raise SuperDocsError(f"{path.name} uploaded but is not listed in the session") + + match.version_id = response.get("version_id") + match.chunks_count = response.get("chunks_count", match.chunks_count) + return match + + def list_documents(self, session_id: str) -> list[UploadedDocument]: + response = self._request("GET", f"/sessions/{session_id}/documents") + return [ + UploadedDocument( + session_id=session_id, + document_id=d["document_id"], + durable_document_id=d.get("durable_document_id"), + filename=d.get("title") or d["document_id"], + chunks_count=d.get("chunks_count", 0), + ) + for d in response.get("documents", []) + ] + + # -- 2. chat ------------------------------------------------------------- + + def chat( + self, + *, + session_id: str, + message: str, + document_id: str | None = None, + approval_mode: str = "ask_every_time", + model_tier: str | None = None, + thinking_depth: str | None = None, + ) -> ChatResult: + """Send an edit instruction and wait for the job to settle. + + Async, always — and not only because long edits exceed the sync gateway + timeout. **Sync `/v1/chat` never returns a `job_id`, and `/approve` requires + one.** So with `approval_mode: ask_every_time`, sync chat produces changes that + cannot be approved through the API at all. Async is the only path that closes + the loop. + + `session_id` is caller-chosen, which makes it an idempotency handle: re-sending + under the same session continues that conversation rather than starting a new one. + + `document_html` is deliberately never sent. The session already holds the + document; re-sending it every turn is wasteful and risks clobbering edits the + model has already made. + """ + body: dict[str, Any] = { + "session_id": session_id, + "message": message, + "approval_mode": approval_mode, + } + if document_id: + body["document_id"] = document_id + if model_tier: + body["model_tier"] = model_tier + if thinking_depth: + body["thinking_depth"] = thinking_depth + + started = self._request("POST", "/chat/async", json_body=body) + job_id = started.get("job_id") + if not job_id: + raise SuperDocsError(f"/chat/async returned no job_id: {sorted(started)}") + + return self.wait_for_job(job_id, session_id=session_id) + + def wait_for_job(self, job_id: str, *, session_id: str) -> ChatResult: + """Poll a job until it stops moving. + + A quiet minute here is normal, not a hang — the brief is explicit that thirty + seconds to several minutes with no visible progress is still processing. The + ceiling exists so an automated run cannot block forever. + """ + deadline = time.monotonic() + POLL_CEILING_SECONDS + + while True: + job = self._request("GET", f"/jobs/{job_id}") + status = (job.get("status") or "").lower() + + if status in TERMINAL_STATUSES or job.get("error"): + break + if time.monotonic() > deadline: + raise SuperDocsError( + f"job {job_id} still {status!r} after {POLL_CEILING_SECONDS:.0f}s" + ) + time.sleep(POLL_INTERVAL_SECONDS) + + if job.get("error"): + raise SuperDocsError(f"job {job_id} failed: {job['error']}") + + # Pending changes live in `metadata`, not in `result` — `result` stays null for + # the whole time the job is awaiting approval, which is exactly when a caller + # needs the changes in order to act on them. + metadata = job.get("metadata") or {} + raw_changes = metadata.get("pending_changes") or [] + + return ChatResult( + session_id=session_id, + job_id=job_id, + status=(job.get("status") or "").lower(), + pending_changes=[PendingChange.from_api(c) for c in raw_changes], + response_text=self._latest_response_text(metadata), + raw=job, + ) + + @staticmethod + def _latest_response_text(metadata: dict[str, Any]) -> str: + entries = metadata.get("intermediate_responses") or [] + spoken = [e for e in entries if e.get("type") == "user_facing"] + return spoken[-1].get("content", "") if spoken else "" + + # -- 3. approve ---------------------------------------------------------- + + def approve( + self, + session_id: str, + *, + job_id: str, + change_id: str | None = None, + approved: bool = True, + feedback: str | None = None, + ) -> dict[str, Any]: + """Approve or reject one proposed change. + + **`job_id` is required**, and that is not documented in the task brief — which + mentions only the top-level `approved`. Omitting either gives a 422 that does + at least name the missing fields. + + Note the field is `change_id`, singular. Batch decisions go in `changes` as + `[{change_id, approved, feedback}]`, not in a `change_ids` list. + """ + body: dict[str, Any] = {"job_id": job_id, "approved": approved} + if change_id: + body["change_id"] = change_id + if feedback: + body["feedback"] = feedback + return self._request("POST", f"/chat/{session_id}/approve", json_body=body) + + def decide_all( + self, result: ChatResult, *, verdicts: dict[str, bool] | None = None + ) -> list[dict[str, Any]]: + """Decide every pending change individually. + + Per item rather than all-or-nothing, because the point of a review is that a + reviewer can accept one change and reject another in the same pass. `verdicts` + maps change_id → approved; anything unlisted defaults to approved. + """ + verdicts = verdicts or {} + outcomes = [] + for change in result.pending_changes: + outcomes.append( + self.approve( + result.session_id, + job_id=result.job_id, + change_id=change.change_id, + approved=verdicts.get(change.change_id, True), + ) + ) + return outcomes + + def continue_session(self, session_id: str, *, job_id: str) -> dict[str, Any]: + return self._request( + "POST", f"/chat/{session_id}/continue", json_body={"job_id": job_id} + ) + + def wait_until_idle(self, session_id: str, *, timeout: float = 300.0) -> None: + """Block until the session has no active job. + + Approving returns 200 immediately, but the job is not finished at that moment — + it goes on to actually apply the change. Send the next instruction too soon and + the API answers 409 `session_busy`, which is correct behaviour and easy to trip + over when you drive a session in a loop, as this build does. + + Credit where it is due: the 409 body is one of the most useful error messages + on this API. It names the condition, lists the states that count as active, and + gives three concrete remedies. Most of this method is just doing what it says. + """ + deadline = time.monotonic() + timeout + active = {"pending", "in_progress", "processing", "running", "queued"} + + while True: + jobs = self._request("GET", f"/sessions/{session_id}/jobs").get("jobs", []) + if not any((j.get("status") or "").lower() in active for j in jobs): + return + if time.monotonic() > deadline: + raise SuperDocsError( + f"session {session_id} still has an active job after {timeout:.0f}s" + ) + time.sleep(POLL_INTERVAL_SECONDS) + + # -- 4. export ----------------------------------------------------------- + + def export( + self, session_id: str, *, fmt: str = "markdown", destination: Path | None = None + ) -> bytes: + """Export the session's document, returning the file bytes. + + Three things differ from what the task brief's cheat-sheet says, and each is a + separate 404 or crash if you follow the sheet: + + * the path is **`/v1/documents/export`**, not `/v1/export` + * it takes a **`session_id`**, not a document id + * markdown is spelled **`markdown`**, not `md` + + And the response is **the file itself, not JSON** — a client that calls + `.json()` on it dies on the first byte. Returning bytes here rather than a dict + is the honest shape. + + Exports do not cost operations, so this is the cheap way to checkpoint work. + """ + if fmt not in EXPORT_FORMATS: + raise SuperDocsError( + f"unknown export format {fmt!r}; expected one of {sorted(EXPORT_FORMATS)}" + ) + + url = f"{self._base}/documents/export" + try: + with httpx.Client(timeout=self._timeout) as client: + response = client.post( + url, + headers={"Authorization": f"Bearer {self._key}"}, + json={"session_id": session_id, "format": fmt}, + ) + except httpx.RequestError as exc: + raise SuperDocsError(f"export unreachable: {type(exc).__name__}") from exc + + self.calls_made += 1 + if response.status_code >= 400: + raise SuperDocsError( + f"export -> HTTP {response.status_code}: " + f"{self._redact(response.text[:400])}" + ) + + data = response.content + if destination is not None: + destination.write_bytes(data) + logger.info("exported %s (%d bytes)", destination.name, len(data)) + return data + + # -- budget -------------------------------------------------------------- + + def ops_remaining(self) -> int | None: + """Promo operations left. + + Read from /v1/users/me/promotions because the documented alternative does not + work: the `usage` block on chat responses is null, and /v1/users/me/usage + rejects `sk_` keys with a 401. This is the only reliable spend meter. + """ + for promo in self._request("GET", "/users/me/promotions").get("active", []): + return promo.get("ops_remaining") + return None + + def whoami(self) -> dict[str, Any]: + return self._request("GET", "/agents/whoami") diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/requirements-dev.txt b/use-cases/Gyan0309/post-merger-integration-playbook/requirements-dev.txt new file mode 100644 index 00000000..4cf343bc --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/requirements-dev.txt @@ -0,0 +1,4 @@ +-r requirements.txt + +# The test suite needs no API key and no network — see tests/. +pytest==9.1.1 diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/requirements.txt b/use-cases/Gyan0309/post-merger-integration-playbook/requirements.txt new file mode 100644 index 00000000..d56d166c --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/requirements.txt @@ -0,0 +1,4 @@ +# Deliberately small. Detection and rendering need only PyYAML; httpx is for the +# SuperDocs half. Pins are exact so a clone builds what was tested. +httpx==0.28.1 +PyYAML==6.0.3 diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_cli_and_rendering.py b/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_cli_and_rendering.py new file mode 100644 index 00000000..f6a1001f --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_cli_and_rendering.py @@ -0,0 +1,142 @@ +"""The paths a real user hits: typos, malformed files, no API key, and re-runs. + +None of these need a key or a network. They exist because the first thing a stranger +does with a tool is get the arguments slightly wrong, and what happens then decides +whether they try again. +""" + +from __future__ import annotations + +import sys +from pathlib import Path + +import pytest + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT)) + +from imo.cli import main # noqa: E402 +from imo.deal import load_deal # noqa: E402 +from imo.documents import CONFLICT_HEADING, conflict_instruction, plan_fan_out, render_all # noqa: E402 +from imo.conflicts import detect # noqa: E402 + +DEAL = ROOT / "deals" / "northstar.yaml" + + +class TestCliErrorPaths: + def test_a_missing_deal_file_gives_a_message_not_a_traceback(self, tmp_path, capsys) -> None: + """A mistyped filename is the single most common first interaction. A stack + trace tells the user the tool is broken; a sentence tells them they typoed.""" + code = main([str(tmp_path / "nope.yaml"), "--out", str(tmp_path / "out"), "--offline"]) + captured = capsys.readouterr() + + assert code != 0 + assert "Traceback" not in captured.err + assert "nope.yaml" in captured.err + + def test_malformed_yaml_gives_a_message_not_a_traceback(self, tmp_path, capsys) -> None: + bad = tmp_path / "bad.yaml" + bad.write_text("deal: [unclosed\n", encoding="utf-8") + + code = main([str(bad), "--out", str(tmp_path / "out"), "--offline"]) + captured = capsys.readouterr() + + assert code != 0 + assert "Traceback" not in captured.err + + def test_an_invalid_spec_names_the_problem(self, tmp_path, capsys) -> None: + bad = tmp_path / "bad.yaml" + bad.write_text("deal:\n code_name: X\ntarget_profile:\n headcount: 1\nworkstreams: []\n", encoding="utf-8") + + code = main([str(bad), "--out", str(tmp_path / "out"), "--offline"]) + assert code != 0 + assert "workstream" in capsys.readouterr().err + + def test_offline_needs_no_api_key(self, tmp_path, monkeypatch) -> None: + """The claim in the README. Verified by removing the key entirely.""" + monkeypatch.delenv("SUPERDOCS_API_KEY", raising=False) + assert main([str(DEAL), "--out", str(tmp_path / "out"), "--offline"]) == 0 + + def test_without_offline_and_without_a_key_it_says_so(self, tmp_path, monkeypatch, capsys) -> None: + monkeypatch.delenv("SUPERDOCS_API_KEY", raising=False) + code = main([str(DEAL), "--out", str(tmp_path / "out")]) + captured = capsys.readouterr() + + assert code != 0 + assert "SUPERDOCS_API_KEY" in captured.err + assert "--offline" in captured.err, "tell the user what they can still do" + + +class TestRendering: + def test_the_full_set_is_produced(self, tmp_path) -> None: + deal = load_deal(DEAL) + documents = render_all(deal) + + keys = {d.key for d in documents} + assert "charter" in keys + assert "day-one" in keys + assert "synergy-tracker" in keys + assert "comms-pack" in keys + assert sum(1 for k in keys if k.startswith("workstream-")) == len(deal.workstreams) + + def test_rendering_is_deterministic(self, tmp_path) -> None: + """Two runs over an unchanged deal must produce identical bytes, or every + regeneration shows a diff that means nothing.""" + deal = load_deal(DEAL) + first = {d.filename: d.body for d in render_all(deal)} + second = {d.filename: d.body for d in render_all(load_deal(DEAL))} + assert first == second + + def test_every_document_has_the_conflicts_section_it_will_need(self) -> None: + """The flagging instruction edits a section by name. If a document does not + have that heading, the edit silently has nowhere to go.""" + deal = load_deal(DEAL) + documents = {d.key: d for d in render_all(deal)} + plan = plan_fan_out(deal, detect(deal)) + + for key in plan: + assert CONFLICT_HEADING in documents[key].body, ( + f"{key} is due to receive conflict flags but has no " + f"'{CONFLICT_HEADING}' section for them to land in" + ) + + def test_the_day_one_checklist_is_specific_to_this_deal(self) -> None: + """The card asks for a checklist specific to this deal rather than a generic + list. The test of that is whether it names this deal's actual items and the + actual dependencies putting them at risk.""" + body = next(d for d in render_all(load_deal(DEAL)) if d.key == "day-one").body + + assert "DAY-HR-2" in body + assert "Items at Risk" in body + assert "DEP-PAY" in body, "the blocking dependency must be named, not just the item" + + def test_numbers_in_the_tracker_come_from_the_spec(self) -> None: + deal = load_deal(DEAL) + body = next(d for d in render_all(deal) if d.key == "synergy-tracker").body + + assert f"{deal.synergy_target_usd:,.0f}" in body + assert f"{deal.claimed_synergy_total:,.0f}" in body + + +class TestFlaggingInstruction: + def test_it_names_the_section_and_forbids_everything_else(self) -> None: + """A vague instruction gets a helpfully rewritten document, and 'helpfully + rewritten' is indistinguishable from 'silently damaged' three documents in.""" + deal = load_deal(DEAL) + conflict = detect(deal)[0] + instruction = conflict_instruction(conflict, audience=conflict.affects[0]) + + assert CONFLICT_HEADING in instruction + assert "Change nothing else" in instruction + assert conflict.summary in instruction + + def test_it_carries_this_document_s_own_stake(self) -> None: + """The same conflict reads differently in each charter — each lead needs to see + their own claim, not just the abstract clash.""" + deal = load_deal(DEAL) + duplicate = next(c for c in detect(deal) if c.kind == "duplicate_synergy") + + first, second = duplicate.affects[0], duplicate.affects[1] + assert conflict_instruction(duplicate, audience=first) != conflict_instruction( + duplicate, audience=second + ) diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_conflicts.py b/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_conflicts.py new file mode 100644 index 00000000..c3d0ca32 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_conflicts.py @@ -0,0 +1,316 @@ +"""Conflict detection, tested exhaustively with no API key. + +Detection is pure arithmetic over the deal spec, so it earns thorough testing and gets +it in milliseconds. The valuable tests here are the ones asserting a comparator stays +**silent** — a detector that fires on everything is worthless in a way that is easy to +miss, because every "it found the thing" test still passes. +""" + +from __future__ import annotations + +import sys +from datetime import date +from decimal import Decimal +from pathlib import Path + +import pytest + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT)) + +from imo.conflicts import ( # noqa: E402 + conflicts_for, + detect, + find_contested_dependencies, + find_duplicate_synergies, + find_synergy_over_commitment, + find_unmet_day_one, +) +from imo.deal import ( # noqa: E402 + DayOneItem, + Deal, + Dependency, + Synergy, + TargetProfile, + Workstream, +) + + +def _deal(workstreams, *, target=Decimal(10_000_000)) -> Deal: + return Deal( + code_name="Test", + acquirer="Acquirer Ltd", + target="Target Ltd", + announced=date(2026, 1, 1), + expected_close=date(2026, 3, 1), + integration_horizon_months=12, + deal_value_usd=Decimal(50_000_000), + synergy_target_usd=target, + rationale="", + profile=TargetProfile(headcount=100, locations=["X"], systems=[]), + workstreams=workstreams, + ) + + +def _ws(key, *, synergies=(), dependencies=(), day_one=()) -> Workstream: + return Workstream( + key=key, + name=key.title(), + lead="Lead", + scope="", + synergies=list(synergies), + dependencies=list(dependencies), + day_one=list(day_one), + ) + + +def _syn(id_, description, value, owner, month=6) -> Synergy: + return Synergy( + id=id_, + description=description, + annual_value_usd=Decimal(value), + realisation_month=month, + owner=owner, + ) + + +def _dep(id_, description, owner, month=3) -> Dependency: + return Dependency(id=id_, description=description, owner=owner, needed_by_month=month) + + +class TestDuplicateSynergy: + def test_identical_ids_across_workstreams_are_caught(self) -> None: + deal = _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "Retire ERP licences", 500_000, "finance")]), + _ws("tech", synergies=[_syn("SYN-1", "Retire ERP licences", 400_000, "tech")]), + ] + ) + found = find_duplicate_synergies(deal) + assert len(found) == 1 + assert set(found[0].affects) == {"finance", "tech"} + + def test_near_identical_descriptions_are_caught(self) -> None: + """The realistic failure: the same saving under two different ids.""" + deal = _deal( + [ + _ws("finance", synergies=[ + _syn("SYN-F2", "Terminate external analytics vendor contracts", 1_800_000, "finance") + ]), + _ws("tech", synergies=[ + _syn("SYN-T1", "Terminate the external analytics vendor contracts and platforms", 1_520_000, "tech") + ]), + ] + ) + assert len(find_duplicate_synergies(deal)) == 1 + + def test_genuinely_different_savings_are_not_flagged(self) -> None: + """The most important silence. Integration language is repetitive — 'consolidate + X systems' appears in every workstream — and a detector that flags all of them + trains people to ignore the report.""" + deal = _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "Consolidate finance systems", 500_000, "finance")]), + _ws("people", synergies=[_syn("SYN-2", "Consolidate HR tooling", 300_000, "people")]), + ] + ) + assert find_duplicate_synergies(deal) == [] + + def test_one_workstream_with_two_similar_claims_is_its_own_business(self) -> None: + """Not a cross-workstream conflict. One owner can split a saving how they like.""" + deal = _deal( + [ + _ws("finance", synergies=[ + _syn("SYN-1", "Terminate vendor contracts phase one", 500_000, "finance"), + _syn("SYN-2", "Terminate vendor contracts phase two", 400_000, "finance"), + ]) + ] + ) + assert find_duplicate_synergies(deal) == [] + + def test_the_finding_quantifies_the_overstatement(self) -> None: + """A conflict a reader cannot act on is noise. The smaller claim is the amount + the total is inflated by.""" + deal = _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "Retire ERP licences", 500_000, "finance")]), + _ws("tech", synergies=[_syn("SYN-1", "Retire ERP licences", 400_000, "tech")]), + ] + ) + assert "$400,000" in find_duplicate_synergies(deal)[0].detail + + +class TestContestedDependency: + def test_two_owners_of_the_same_deliverable_are_caught(self) -> None: + deal = _deal( + [ + _ws("commercial", dependencies=[_dep("DEP-CRM", "Migrate CRM records to Salesforce", "commercial")]), + _ws("tech", dependencies=[_dep("DEP-CRM-2", "Migrate CRM records into Salesforce", "tech")]), + ] + ) + found = find_contested_dependencies(deal) + assert len(found) == 1 + assert set(found[0].affects) == {"commercial", "tech"} + + def test_unrelated_dependencies_are_not_flagged(self) -> None: + deal = _deal( + [ + _ws("commercial", dependencies=[_dep("DEP-1", "Novate customer contracts", "commercial")]), + _ws("tech", dependencies=[_dep("DEP-2", "Extend single sign-on to staff", "tech")]), + ] + ) + assert find_contested_dependencies(deal) == [] + + +class TestSynergyOverCommitment: + def test_claims_above_target_are_flagged(self) -> None: + deal = _deal( + [_ws("finance", synergies=[_syn("SYN-1", "Saving", 6_000_000, "finance")])], + target=Decimal(4_000_000), + ) + found = find_synergy_over_commitment(deal) + assert len(found) == 1 + assert "$2,000,000" in found[0].detail + + def test_claims_at_target_are_not_flagged(self) -> None: + """Boundary. Exactly on target is on target, not over it.""" + deal = _deal( + [_ws("finance", synergies=[_syn("SYN-1", "Saving", 4_000_000, "finance")])], + target=Decimal(4_000_000), + ) + assert find_synergy_over_commitment(deal) == [] + + def test_under_commitment_is_not_reported_here(self) -> None: + deal = _deal( + [_ws("finance", synergies=[_syn("SYN-1", "Saving", 1_000_000, "finance")])], + target=Decimal(4_000_000), + ) + assert find_synergy_over_commitment(deal) == [] + + def test_every_claiming_workstream_shares_the_finding(self) -> None: + """No single lead can resolve it, and showing it only centrally lets all of + them assume it is someone else's number that is wrong.""" + deal = _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "A", 3_000_000, "finance")]), + _ws("tech", synergies=[_syn("SYN-2", "B", 3_000_000, "tech")]), + _ws("people"), # claims nothing + ], + target=Decimal(4_000_000), + ) + found = find_synergy_over_commitment(deal) + assert set(found[0].affects) == {"finance", "tech"} + assert "people" not in found[0].affects + + +class TestUnmetDayOne: + def test_an_item_depending_on_later_work_is_caught(self) -> None: + deal = _deal( + [ + _ws( + "people", + dependencies=[_dep("DEP-PAY", "Payroll cutover", "people", month=2)], + day_one=[DayOneItem(id="DAY-1", description="Staff paid", owner="people", depends_on=["DEP-PAY"])], + ) + ] + ) + found = find_unmet_day_one(deal) + assert len(found) == 1 + assert "month 2" in found[0].summary + + def test_an_item_depending_on_day_zero_work_is_fine(self) -> None: + """`needed_by_month: 0` means it is ready at close. That is not a conflict.""" + deal = _deal( + [ + _ws( + "people", + dependencies=[_dep("DEP-PAY", "Payroll cutover", "people", month=0)], + day_one=[DayOneItem(id="DAY-1", description="Staff paid", owner="people", depends_on=["DEP-PAY"])], + ) + ] + ) + assert find_unmet_day_one(deal) == [] + + def test_an_item_with_no_dependencies_is_fine(self) -> None: + deal = _deal( + [_ws("people", day_one=[DayOneItem(id="DAY-1", description="Letters sent", owner="people")])] + ) + assert find_unmet_day_one(deal) == [] + + def test_both_the_item_owner_and_the_dependency_owner_are_told(self) -> None: + """Neither can fix it alone: one must move the item, the other must pull the + dependency forward.""" + deal = _deal( + [ + _ws("tech", dependencies=[_dep("DEP-SSO", "Single sign-on", "tech", month=1)]), + _ws("people", day_one=[DayOneItem(id="DAY-1", description="Staff can log in", owner="people", depends_on=["DEP-SSO"])]), + ] + ) + found = find_unmet_day_one(deal) + assert set(found[0].affects) == {"people", "tech"} + + +class TestFanOut: + """The card's headline requirement, at the data level.""" + + @pytest.fixture + def deal(self) -> Deal: + return _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "Retire ERP licences", 500_000, "finance")]), + _ws("tech", synergies=[_syn("SYN-1", "Retire ERP licences", 400_000, "tech")]), + _ws("people"), + ] + ) + + def test_a_conflict_reaches_both_parties(self, deal) -> None: + conflicts = detect(deal) + assert conflicts_for(conflicts, "finance"), "finance must see it" + assert conflicts_for(conflicts, "tech"), "tech must see it" + + def test_an_uninvolved_workstream_is_not_told(self, deal) -> None: + """Fanning out to everyone is the same as not fanning out at all: it teaches + readers that most flags are not theirs.""" + assert conflicts_for(detect(deal), "people") == [] + + +class TestCleanDeal: + def test_a_consistent_deal_produces_no_conflicts(self) -> None: + """A reassuring nothing is a real answer. Manufacturing a finding to justify + the check having run is worse than finding none.""" + deal = _deal( + [ + _ws( + "finance", + synergies=[_syn("SYN-1", "Retire ERP licences", 500_000, "finance")], + dependencies=[_dep("DEP-COA", "Single chart of accounts", "finance")], + day_one=[DayOneItem(id="DAY-1", description="Balance sheet signed", owner="finance")], + ), + _ws("people", synergies=[_syn("SYN-2", "Remove duplicate HR tooling", 300_000, "people")]), + ], + target=Decimal(4_000_000), + ) + assert detect(deal) == [] + + +class TestDeterminism: + def test_detection_is_stable_across_runs(self) -> None: + """Ordering must not wobble, or every regeneration produces a spurious diff.""" + deal = _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "Retire ERP licences", 500_000, "finance")]), + _ws("tech", synergies=[_syn("SYN-1", "Retire ERP licences", 400_000, "tech")]), + ] + ) + assert [c.id for c in detect(deal)] == [c.id for c in detect(deal)] + + def test_high_severity_sorts_first(self) -> None: + deal = _deal( + [ + _ws("finance", synergies=[_syn("SYN-1", "Retire ERP licences", 3_000_000, "finance")]), + _ws("tech", synergies=[_syn("SYN-1", "Retire ERP licences", 3_000_000, "tech")]), + ], + target=Decimal(1_000_000), + ) + severities = [c.severity for c in detect(deal)] + assert severities == sorted(severities, key=lambda s: {"high": 0, "medium": 1}.get(s, 2)) diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_deal.py b/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_deal.py new file mode 100644 index 00000000..9f0a099a --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/tests/test_deal.py @@ -0,0 +1,164 @@ +"""Deal loading, validation, and the edges a real deal file will hit. + +A malformed spec must fail loudly at load time. The failure mode of a half-read spec is +a complete, polished, wrong document set — and nobody reading a well-formatted +integration charter thinks to doubt the input file. +""" + +from __future__ import annotations + +import sys +from decimal import Decimal +from pathlib import Path + +import pytest + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT)) + +from imo.conflicts import detect # noqa: E402 +from imo.deal import DealSpecError, load_deal # noqa: E402 + +MINIMAL = """ +deal: + code_name: Test + acquirer: A Ltd + target: B Ltd + announced: 2026-01-01 + expected_close: 2026-03-01 + deal_value_usd: 1000000 + synergy_target_usd: {target} +target_profile: + headcount: 10 +workstreams: + - key: finance + name: Finance +{extra} +""" + + +def _write(tmp_path: Path, *, target="1000000", extra="") -> Path: + path = tmp_path / "deal.yaml" + path.write_text(MINIMAL.format(target=target, extra=extra), encoding="utf-8") + return path + + +class TestTheShippedDeal: + def test_it_loads(self) -> None: + deal = load_deal(ROOT / "deals" / "northstar.yaml") + assert deal.code_name == "Northstar" + assert len(deal.workstreams) == 4 + + def test_every_comparator_fires_on_it(self) -> None: + """The sample deal exists to exercise the detectors. A comparator with nothing + to catch is a claimed capability nobody has seen work.""" + kinds = {c.kind for c in detect(load_deal(ROOT / "deals" / "northstar.yaml"))} + assert kinds == { + "duplicate_synergy", + "contested_dependency", + "synergy_over_commitment", + "unmet_day_one", + } + + +class TestValidation: + def test_a_missing_required_field_names_itself(self, tmp_path) -> None: + path = tmp_path / "deal.yaml" + path.write_text( + MINIMAL.format(target="1000000", extra="").replace(" acquirer: A Ltd\n", ""), + encoding="utf-8", + ) + with pytest.raises(DealSpecError, match="acquirer"): + load_deal(path) + + def test_a_deal_with_no_workstreams_is_refused(self, tmp_path) -> None: + path = tmp_path / "deal.yaml" + path.write_text( + MINIMAL.format(target="1000000", extra="").replace( + "workstreams:\n - key: finance\n name: Finance\n", "workstreams: []\n" + ), + encoding="utf-8", + ) + with pytest.raises(DealSpecError, match="at least one workstream"): + load_deal(path) + + def test_duplicate_workstream_keys_are_refused(self, tmp_path) -> None: + path = tmp_path / "deal.yaml" + path.write_text( + MINIMAL.format(target="1000000", extra="") + + " - key: finance\n name: Finance Again\n", + encoding="utf-8", + ) + with pytest.raises(DealSpecError, match="duplicate workstream key"): + load_deal(path) + + def test_a_close_before_the_announcement_is_refused(self, tmp_path) -> None: + path = tmp_path / "deal.yaml" + path.write_text( + MINIMAL.format(target="1000000", extra="").replace( + "expected_close: 2026-03-01", "expected_close: 2025-01-01" + ), + encoding="utf-8", + ) + with pytest.raises(DealSpecError, match="before"): + load_deal(path) + + def test_a_quoted_date_is_refused_rather_than_silently_wrong(self, tmp_path) -> None: + """YAML turns an unquoted date into a `date` and a quoted one into a string. + Accepting the string would put a value into date arithmetic that cannot do it.""" + path = tmp_path / "deal.yaml" + path.write_text( + MINIMAL.format(target="1000000", extra="").replace( + "announced: 2026-01-01", "announced: '2026-01-01'" + ), + encoding="utf-8", + ) + with pytest.raises(DealSpecError, match="expected a date"): + load_deal(path) + + def test_a_day_one_item_citing_an_unknown_dependency_is_refused(self, tmp_path) -> None: + """Referential integrity. Otherwise the checklist confidently lists an item + whose stated blocker does not exist.""" + extra = ( + " day_one:\n" + " - id: DAY-1\n" + " description: Something\n" + " depends_on: [DEP-NOPE]\n" + ) + with pytest.raises(DealSpecError, match="DEP-NOPE"): + load_deal(_write(tmp_path, extra=extra)) + + def test_a_dependency_needed_by_an_unknown_workstream_is_refused(self, tmp_path) -> None: + extra = ( + " dependencies:\n" + " - id: DEP-1\n" + " description: Something\n" + " needed_by: [marketing]\n" + ) + with pytest.raises(DealSpecError, match="marketing"): + load_deal(_write(tmp_path, extra=extra)) + + +class TestNumericEdges: + def test_money_with_symbols_and_separators_parses(self, tmp_path) -> None: + """A human editing a deal file will write $1,500,000. Refusing that is hostile.""" + deal = load_deal(_write(tmp_path, target="'$1,500,000'")) + assert deal.synergy_target_usd == Decimal(1_500_000) + + def test_a_zero_synergy_target_does_not_crash_detection(self, tmp_path) -> None: + """An early-stage deal legitimately has no target set yet. Percentage-of-target + arithmetic must not divide by it.""" + extra = ( + " synergies:\n" + " - id: SYN-1\n" + " description: A saving\n" + " annual_value_usd: 500000\n" + ) + deal = load_deal(_write(tmp_path, target="0", extra=extra)) + conflicts = detect(deal) # must not raise + assert any(c.kind == "synergy_over_commitment" for c in conflicts) + + def test_a_deal_with_no_synergies_at_all_is_clean(self, tmp_path) -> None: + deal = load_deal(_write(tmp_path, target="1000000")) + assert deal.claimed_synergy_total == Decimal(0) + assert detect(deal) == [] diff --git a/use-cases/Gyan0309/post-merger-integration-playbook/verify_roundtrip.py b/use-cases/Gyan0309/post-merger-integration-playbook/verify_roundtrip.py new file mode 100644 index 00000000..ccd8fa08 --- /dev/null +++ b/use-cases/Gyan0309/post-merger-integration-playbook/verify_roundtrip.py @@ -0,0 +1,113 @@ +"""Prove the edits were surgical, rather than asserting it. + +Compares every rendered document with its exported counterpart and reports what +actually changed. Run it after `python -m imo.cli deals/northstar.yaml --out build`: + + python verify_roundtrip.py build + +The claim under test is the brief's second behaviour — *"change what you meant to +change and nothing else, and be able to show that nothing else changed"* — so the +output is a count a reader can check, not a reassurance. + +Markdown formatting is normalised first, because a markdown → HTML → markdown round +trip legitimately rewrites presentation: `|---|` becomes `| --- |`, `*` bullets become +`-`, and trailing double-space line breaks are dropped. None of that is a content +change. Everything left over is. +""" + +from __future__ import annotations + +import re +import sys +from pathlib import Path + +# Bullet markers a markdown round trip may legitimately produce. The model does not +# always choose the same one: across two runs of the identical pipeline the flags came +# back as "-" once and "•" the next. A verifier keyed to a single character reports +# a real, correctly-applied edit as an unexplained content change — which is the worst +# possible failure for a check whose entire job is telling you whether to trust the +# output. Found by running the pipeline twice, not by reading it. +BULLETS = "-*•·–—◦▪" + +FLAG = re.compile(rf"^[{re.escape(BULLETS)}]\s+\*\*\[?(HIGH|MEDIUM|LOW)\]?") +PLACEHOLDER = "_None recorded._" + + +def normalise(text: str) -> list[str]: + """Strip presentation, keep content.""" + lines: list[str] = [] + for raw in text.splitlines(): + line = raw.strip() + if not line: + continue + if re.fullmatch(r"\|[\s\-\|:]+\|", line): # table separator row + line = "|SEP|" + elif line.startswith("|"): # cell padding + line = "|" + "|".join(c.strip() for c in line.strip("|").split("|")) + "|" + line = re.sub(rf"^[{re.escape(BULLETS)}]\s+", "- ", line) # any bullet marker + lines.append(line) + return lines + + +def main(build: Path) -> int: + # Documents contain characters the Windows console encoding cannot represent, and + # the default behaviour is to mangle them into replacement characters mid-report — + # which makes a correct line look corrupt. Ask for UTF-8 where it is available. + if hasattr(sys.stdout, "reconfigure"): + sys.stdout.reconfigure(encoding="utf-8", errors="replace") + + exported_dir = build / "exported" + if not exported_dir.is_dir(): + print(f"no exported documents in {exported_dir}", file=sys.stderr) + return 2 + + print(f"{'document':<34} {'lines':>6} {'flags+':>7} {'other+':>7} {'other-':>7} verdict") + print("-" * 82) + + unexpected_total = 0 + flags_total = 0 + + for source in sorted(build.glob("*.md")): + exported = exported_dir / source.name + if not exported.exists(): + continue + + before = normalise(source.read_text(encoding="utf-8")) + after = normalise(exported.read_text(encoding="utf-8")) + before_set, after_set = set(before), set(after) + + added = [ln for ln in after if ln not in before_set] + removed = [ln for ln in before if ln not in after_set] + + flags = [ln for ln in added if FLAG.match(ln)] + other_added = [ln for ln in added if not FLAG.match(ln)] + # Losing the placeholder is the instructed change, not collateral damage. + other_removed = [ln for ln in removed if PLACEHOLDER not in ln] + + flags_total += len(flags) + unexpected_total += len(other_added) + len(other_removed) + + verdict = "surgical" if not (other_added or other_removed) else "!! CHANGED" + print( + f"{source.name:<34} {len(after):>6} {len(flags):>7} " + f"{len(other_added):>7} {len(other_removed):>7} {verdict}" + ) + + for line in other_removed: + print(f" LOST : {line[:110]}") + for line in other_added: + print(f" GAINED: {line[:110]}") + + print("-" * 82) + print(f"{flags_total} conflict flags added; {unexpected_total} unintended content changes") + + if unexpected_total: + print("\nFAIL: the edits were not surgical.") + return 1 + + print("\nPASS: every content change was an intended conflict flag.") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main(Path(sys.argv[1] if len(sys.argv) > 1 else "build")))