From a4481e20de660551868ab8706319df4ddae21d67 Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Mon, 27 Jul 2026 14:46:05 +0000 Subject: [PATCH] =?UTF-8?q?docs(P51):=20full=20presentation=20rework=20?= =?UTF-8?q?=E2=80=94=20scope,=20story=20arc,=20visuals,=20appendix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Major rework of both presentation decks based on leadership feedback. Addresses: story arc, concept clarity, scope clarification, more visuals, appendix for detail-heavy slides, and a complete Road to the North Star. 6 new mermaid diagrams: - platform-works-03-scope-boundary (Upstream → Contract → ACDL → AWS) - developer-experience-01b-scope-boundary (both consumer paths + scope) - platform-works-04-confidence-signal (6 inputs → score → gate → decision) - platform-works-05-attestation-flow (deploy → gate → approver → evidence) - developer-experience-04-promotion-journey (dev → qa → prod → dr) - road-to-north-star (v1.0 demo → v1.9 → v1.10 → v2.0 → North Star) Both Marp decks restructured to 10 main + 6 appendix slides: PW deck (17 slides): 1. Title 2. The Problem & The North Star (anti-goals moved to slide 3) 3. Where ACDL Sits in Your World (NEW — scope boundary, infra only) 4. The Contract-Driven Model (image: removed, infra inputs instead) 5. The End-to-End Flow 6. Zero-Trust by Default 7. Safety is Computed (NEW confidence signal diagram) 8. Security by Construction 9. Accountability & Audit (NEW attestation flow diagram, QA clarification, badge reclassification: dev=Testing, qa/prod/dr=Planned) 10. Testing vs. Planned (summary, full inventory in appendix) 11. The Vision Realized + Appendix: TOC, Platform-Managed Environments, Observability, Road to North Star, Full Inventory, Glossary DX deck (16 slides): 1. Title 2. Where ACDL Sits in Your World (REPLACES Two Consumer Surfaces — scope boundary with both consumer paths) 3. The Contract — The Entire Consumer Surface (image: removed) 4. The Developer Feedback Loop 5. Versioned, Predictable Releases 6. Friendly Onboarding 7. Safe Promotion Path (NEW promotion journey diagram, rising bar annotated: dev=Testing, qa/prod/dr=Planned) 8. Safe Decommission 9. Self-Service Module Catalog 10. The Desired Outcomes + Appendix: TOC, Citizen Developer Experience, No Platform Code, Local Reproducibility, Road to North Star, Glossary Story arc: every slide has an italic 'Story beat' line connecting it to the narrative progression. Scope clarification: ACDL is infrastructure only. Upstream is anything (IDE, agentic SDLC, citizen dev vibe coding). ACDL provisions and governs AWS resources; application deployment is upstream. Contract examples now show infrastructure inputs (cpu, memory, desired_count, port) not image:. QA attestation reclassification: 'Design tested' → 'Planned'. QA attests to infrastructure readiness (contract + Terraform plan + evidence), not application code. Dev is autonomous (Testing); qa/prod/dr are Planned. Road to the North Star: phased timeline (v1.0 → v1.9 → v1.10 → v2.0 → North Star), annotated 'proposed phasing, not formally planned.' Also: scripts/sync_to_gl.sh added (GitLab mirror sync utility). ---ci--- phase: 51 milestone: v1.9 status: complete requirements: covered: [] partial: [] ---/ci--- --- docs/presentations/README.md | 56 +- .../developer-experience-01-two-surfaces.mmd | 7 - ...eveloper-experience-01b-scope-boundary.mmd | 21 + ...eloper-experience-04-promotion-journey.mmd | 8 + .../mmd/platform-works-03-scope-boundary.mmd | 25 + .../platform-works-04-confidence-signal.mmd | 15 + .../platform-works-05-attestation-flow.mmd | 13 + .../assets/mmd/road-to-north-star.mmd | 11 + .../developer-experience-01-two-surfaces.png | Bin 38870 -> 0 bytes ...eveloper-experience-01b-scope-boundary.png | Bin 0 -> 44258 bytes ...eloper-experience-04-promotion-journey.png | Bin 0 -> 52337 bytes .../png/platform-works-03-scope-boundary.png | Bin 0 -> 36483 bytes .../platform-works-04-confidence-signal.png | Bin 0 -> 29247 bytes .../platform-works-05-attestation-flow.png | Bin 0 -> 42953 bytes .../assets/png/road-to-north-star.png | Bin 0 -> 59353 bytes .../how-the-platform-works-marp.md | 193 ++++- .../presentations/how-the-platform-works.html | 690 +++++++++++++++--- .../the-developer-experience-marp.md | 149 +++- ...the-developer-experience-talking-points.md | 108 ++- .../the-developer-experience.html | 531 ++++++++++++-- .../presentations/the-developer-experience.md | 490 +++++++------ scripts/sync_to_gl.sh | 173 +++++ 22 files changed, 1981 insertions(+), 509 deletions(-) delete mode 100644 docs/presentations/assets/mmd/developer-experience-01-two-surfaces.mmd create mode 100644 docs/presentations/assets/mmd/developer-experience-01b-scope-boundary.mmd create mode 100644 docs/presentations/assets/mmd/developer-experience-04-promotion-journey.mmd create mode 100644 docs/presentations/assets/mmd/platform-works-03-scope-boundary.mmd create mode 100644 docs/presentations/assets/mmd/platform-works-04-confidence-signal.mmd create mode 100644 docs/presentations/assets/mmd/platform-works-05-attestation-flow.mmd create mode 100644 docs/presentations/assets/mmd/road-to-north-star.mmd delete mode 100644 docs/presentations/assets/png/developer-experience-01-two-surfaces.png create mode 100644 docs/presentations/assets/png/developer-experience-01b-scope-boundary.png create mode 100644 docs/presentations/assets/png/developer-experience-04-promotion-journey.png create mode 100644 docs/presentations/assets/png/platform-works-03-scope-boundary.png create mode 100644 docs/presentations/assets/png/platform-works-04-confidence-signal.png create mode 100644 docs/presentations/assets/png/platform-works-05-attestation-flow.png create mode 100644 docs/presentations/assets/png/road-to-north-star.png create mode 100755 scripts/sync_to_gl.sh diff --git a/docs/presentations/README.md b/docs/presentations/README.md index 658c30f..9b18fed 100644 --- a/docs/presentations/README.md +++ b/docs/presentations/README.md @@ -115,9 +115,9 @@ Distill the source of truth (Step 1) into presenter-ready cues, indexed by the Marp deck (Step 2) slide structure: - **One section per Marp slide** — `## Slide N — Title`, matching the Marp - deck's 10-slide structure exactly. The Marp deck provides the indexing and - context (what the audience sees); the source markdown provides the content - (the speaker notes, the detail, the nuance). + deck's 10 main + 6 appendix slide structure exactly. The Marp deck + provides the indexing and context (what the audience sees); the source + markdown provides the content (the speaker notes, the detail, the nuance). - **3-6 talking point bullets per slide** — punchy, actionable cues distilled from the source markdown's speaker notes. NOT the speaker notes verbatim (those are too long and too contextual). These are prompts: "Land this @@ -145,31 +145,57 @@ and re-distill. docs/presentations/ ├── README.md ← this file ├── how-the-platform-works.md ← Step 1: full source of truth -├── how-the-platform-works-marp.md ← Step 2: Marp deck (10 slides) +├── how-the-platform-works-marp.md ← Step 2: Marp deck (10 main + 6 appendix) ├── how-the-platform-works.html ← Step 3: rendered HTML (committed) -├── how-the-platform-works-talking-points.md ← Step 4: presenter cues (10 sections) +├── how-the-platform-works-talking-points.md ← Step 4: presenter cues (16 sections) ├── the-developer-experience.md ← Step 1: full source of truth -├── the-developer-experience-marp.md ← Step 2: Marp deck (10 slides) +├── the-developer-experience-marp.md ← Step 2: Marp deck (10 main + 6 appendix) ├── the-developer-experience.html ← Step 3: rendered HTML (committed) -├── the-developer-experience-talking-points.md ← Step 4: presenter cues (10 sections) +├── the-developer-experience-talking-points.md ← Step 4: presenter cues (16 sections) └── assets/ ├── puppeteer-config.json ← no-sandbox config for mmdc ├── mmd/ ← mermaid source files (Step 2 input) │ ├── platform-works-01-contract-driven.mmd │ ├── platform-works-02-end-to-end-flow.mmd - │ ├── developer-experience-01-two-surfaces.mmd + │ ├── platform-works-03-scope-boundary.mmd + │ ├── platform-works-04-confidence-signal.mmd + │ ├── platform-works-05-attestation-flow.mmd + │ ├── developer-experience-01b-scope-boundary.mmd │ ├── developer-experience-02-what-dev-does.mmd - │ └── developer-experience-03-no-cloning.mmd + │ ├── developer-experience-03-no-cloning.mmd + │ ├── developer-experience-04-promotion-journey.mmd + │ └── road-to-north-star.mmd └── png/ ← rendered PNGs (embedded in Marp) ├── platform-works-01-contract-driven.png ├── platform-works-02-end-to-end-flow.png - ├── developer-experience-01-two-surfaces.png + ├── platform-works-03-scope-boundary.png + ├── platform-works-04-confidence-signal.png + ├── platform-works-05-attestation-flow.png + ├── developer-experience-01b-scope-boundary.png ├── developer-experience-02-what-dev-does.png - └── developer-experience-03-no-cloning.png + ├── developer-experience-03-no-cloning.png + ├── developer-experience-04-promotion-journey.png + └── road-to-north-star.png ``` ## Conventions +### Appendix structure + +Each Marp deck has **10 main slides + 6 appendix slides** (16 total). The +main 10 are the presentation; the appendix is for deep dives and Q&A backup. + +- **Main slides** (1-10): the story arc, high-impact, minimal text, + visual-heavy. These are what the audience sees during the talk. +- **Appendix slides** (A1-A5 + TOC): detail-heavy slides moved out of the + main 10 to preserve the narrative flow. The appendix starts with a TOC + slide listing the contents, followed by detail slides and a glossary. +- **The Road to the North Star** is a required appendix slide in both decks + — a phased timeline from v1.0 demo to the North Star, annotated as + "proposed phasing, not formally planned." +- **The Glossary** is a required appendix slide in both decks — defines + acronyms (OIDC, ABAC, CMK, CMDB, RPO, HITL, VCS, NFR) for the audience. + ### Maturity framing Every capability claim in a deck is tagged with one of three badges: @@ -296,7 +322,7 @@ attachments to the Gitea release. ## Current decks -| Deck | Source of truth (Step 1) | Marp deck (Step 2) | Rendered HTML (Step 3) | Talking points (Step 4) | Audience | -|---|---|---|---|---|---| -| How the Platform Works | `how-the-platform-works.md` | `how-the-platform-works-marp.md` | `how-the-platform-works.html` | `how-the-platform-works-talking-points.md` | CTO, Head of Cloud, Head of Infra, Head of DevOps | -| The Developer Experience | `the-developer-experience.md` | `the-developer-experience-marp.md` | `the-developer-experience.html` | `the-developer-experience-talking-points.md` | CTO, Head of Cloud, Head of Infra, Head of DevOps | \ No newline at end of file +| Deck | Source of truth (Step 1) | Marp deck (Step 2) | Rendered HTML (Step 3) | Talking points (Step 4) | Slides | Audience | +|---|---|---|---|---|---|---| +| How the Platform Works | `how-the-platform-works.md` | `how-the-platform-works-marp.md` | `how-the-platform-works.html` | `how-the-platform-works-talking-points.md` | 10 main + 6 appendix | CTO, Head of Cloud, Head of Infra, Head of DevOps | +| The Developer Experience | `the-developer-experience.md` | `the-developer-experience-marp.md` | `the-developer-experience.html` | `the-developer-experience-talking-points.md` | 10 main + 6 appendix | CTO, Head of Cloud, Head of Infra, Head of DevOps | \ No newline at end of file diff --git a/docs/presentations/assets/mmd/developer-experience-01-two-surfaces.mmd b/docs/presentations/assets/mmd/developer-experience-01-two-surfaces.mmd deleted file mode 100644 index c82745a..0000000 --- a/docs/presentations/assets/mmd/developer-experience-01-two-surfaces.mmd +++ /dev/null @@ -1,7 +0,0 @@ -flowchart LR - A["Technical developer"] --> C["Contract YAML"] - B["Citizen developer
(non-technical)"] --> D["Declares intent
in natural language"] - D --> E["Agent produces
the contract"] - C --> F["Same platform:
resolve → check → plan →
policy → confidence → apply"] - E --> F - F --> G["Same safety guarantees,
same audit trail"] \ No newline at end of file diff --git a/docs/presentations/assets/mmd/developer-experience-01b-scope-boundary.mmd b/docs/presentations/assets/mmd/developer-experience-01b-scope-boundary.mmd new file mode 100644 index 0000000..f11f8e5 --- /dev/null +++ b/docs/presentations/assets/mmd/developer-experience-01b-scope-boundary.mmd @@ -0,0 +1,21 @@ +flowchart LR + subgraph UP ["Upstream — anything"] + direction TB + A["Technical dev\n(app code + contract)"] + B["Citizen dev\n(intent → AI agent\n→ contract)"] + end + subgraph ACDL ["ACDL — infrastructure only"] + C["Same contract\nSame pipeline\nSame safety"] + D["Provision\nAWS resources"] + E["Evidence\nhash-chained"] + end + subgraph DOWN ["Downstream"] + F["AWS resources\nrunning"] + G["Consumer pipeline\ndeploys image"] + end + A --> C + B --> C + C --> D + C --> E + D --> F + F --> G \ No newline at end of file diff --git a/docs/presentations/assets/mmd/developer-experience-04-promotion-journey.mmd b/docs/presentations/assets/mmd/developer-experience-04-promotion-journey.mmd new file mode 100644 index 0000000..4981816 --- /dev/null +++ b/docs/presentations/assets/mmd/developer-experience-04-promotion-journey.mmd @@ -0,0 +1,8 @@ +flowchart LR + A["dev\n≥ 0.50\nautonomous"] -->|promotion| B["qa\n≥ 0.75\nQA attests"] + B -->|promotion| C["prod\n≥ 0.90\nSRE attests"] + C -->|promotion| D["dr\n≥ 0.95\nSRE + DR drill"] + A -.->|"Testing\n(pilot-ready)"| A + B -.->|"Planned"| B + C -.->|"Planned"| C + D -.->|"Planned"| D \ No newline at end of file diff --git a/docs/presentations/assets/mmd/platform-works-03-scope-boundary.mmd b/docs/presentations/assets/mmd/platform-works-03-scope-boundary.mmd new file mode 100644 index 0000000..e4fa375 --- /dev/null +++ b/docs/presentations/assets/mmd/platform-works-03-scope-boundary.mmd @@ -0,0 +1,25 @@ +flowchart LR + subgraph UP ["Upstream — anything"] + direction TB + A["IDE / IDE + AI\n(dev writes contract)"] + B["Agentic SDLC\n(agent writes contract)"] + C["Citizen dev\n(vibe codes → AI agent\n→ contract)"] + end + subgraph ACDL ["ACDL — infrastructure only"] + D["Contract\nvalidated"] + E["Resolve → Plan\nSecurity + Policy checks\nConfidence signal"] + F["Provision\nAWS resources"] + G["Evidence\nhash-chained"] + end + subgraph DOWN ["Downstream"] + H["AWS resources\nrunning"] + I["Consumer pipeline\ndeploys image"] + end + A --> D + B --> D + C --> D + D --> E + E --> F + E --> G + F --> H + H --> I \ No newline at end of file diff --git a/docs/presentations/assets/mmd/platform-works-04-confidence-signal.mmd b/docs/presentations/assets/mmd/platform-works-04-confidence-signal.mmd new file mode 100644 index 0000000..8a9d8b2 --- /dev/null +++ b/docs/presentations/assets/mmd/platform-works-04-confidence-signal.mmd @@ -0,0 +1,15 @@ +flowchart LR + subgraph IN ["6 weighted inputs"] + direction TB + A["Policy\nconformance"] + B["Validation"] + C["Freshness"] + D["Source\nprovenance"] + E["History"] + F["NFRs"] + end + IN --> G["Weighted sum\n→ Confidence score"] + G --> H{"Threshold\ngate"} + H -->|Meets threshold| I["Proceed"] + H -->|Below threshold| J["Halt +\nexplainable reason"] + H -->|Critical finding| J \ No newline at end of file diff --git a/docs/presentations/assets/mmd/platform-works-05-attestation-flow.mmd b/docs/presentations/assets/mmd/platform-works-05-attestation-flow.mmd new file mode 100644 index 0000000..446c750 --- /dev/null +++ b/docs/presentations/assets/mmd/platform-works-05-attestation-flow.mmd @@ -0,0 +1,13 @@ +flowchart LR + A["Deployment arrives\nat env gate"] --> B["Confidence signal\ncomputed"] + B --> C{"Meets\nthreshold?"} + C -->|No / Critical| D["Halt —\nexplainable reason"] + C -->|Yes| E{"Human attestation\nrequired?"} + E -->|No — dev| F["Autonomous\nproceed"] + E -->|Yes — qa/prod/dr| G["Approver reviews:\ncontract + plan + evidence"] + G --> H{"Approver\ndecides"} + H -->|Approve| I["Attestation recorded\n(identity + state)"] + H -->|Reject| J["Halt — rejection\nextends audit chain"] + I --> K["Deployment\nproceeds"] + F --> K + K --> L["Evidence written\nRPO=0"] \ No newline at end of file diff --git a/docs/presentations/assets/mmd/road-to-north-star.mmd b/docs/presentations/assets/mmd/road-to-north-star.mmd new file mode 100644 index 0000000..b2faead --- /dev/null +++ b/docs/presentations/assets/mmd/road-to-north-star.mmd @@ -0,0 +1,11 @@ +flowchart LR + A["v1.0\nDEMO\ncomplete"] --> B["v1.1–v1.8\nPLATFORM BUILD\ncomplete"] + B --> C["v1.9\nPRESENTATIONS + PATCHES\ncomplete"] + C --> D["v1.10\nNEXT\nHITL wiring\nall-runner OIDC\nregulatory ledger"] + D --> E["v2.0\nFUTURE\ncompliance milestone\nself-service\ndynamic modules\nengine adapters"] + E --> F["North Star\nREALIZED\nfull autonomy (lower)\nattested (higher)\ncitizen dev live\nevidence regulatory-grade"] + A -.->|"stub-driven proof"| A + B -.->|"IR + OIDC + ABAC +\nmodule catalog +\nencryption + decommission"| B + C -.->|"10-slide decks +\ntalking points +\nS&P theme"| C + D -.->|"proposed phasing\nnot formally planned"| D + E -.->|"proposed phasing\nnot formally planned"| E \ No newline at end of file diff --git a/docs/presentations/assets/png/developer-experience-01-two-surfaces.png b/docs/presentations/assets/png/developer-experience-01-two-surfaces.png deleted file mode 100644 index 58c4eeb9b969122b04c2d46ec2e059adedd70a07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38870 zcmdSBWmHvN`!`BS2~tWoo010UM%Z*3ba$83rb|I-kZw>^O1e`4>F$*74q+2#;{Dvu z|9#J=bH;hUoHd4s?!95nHRrnKudWrYrXq`tNs5VpfPgJ8C#`{ifJzO%KSxIeUk$&g zh9V%~BFIZizVuArokvS1ctwP|RH3LZ4LfMMD4}K2ka>)VhluwWcdLm=Qb^8GBmW{Q zUNETrLH^O^`LG+O8S3}RpbBLKb0hK z@&0?nc5xv}{?D7GDZ5Zm{`(>xo)j*r#VGCU;0eeWHUdQ&}VF{!XWZe8o-q@#94PD&ca-%|*+1;0&QD*>X? zZpB@5o+(JcdnsqG_7D;({o23}!?clr*L*(?BNqej!S?d7tjo=A{F{G9|C=({ zTlz6WM+C*0+uKIxkTBY}x=EQN80g_+Cd~wEABRi8$RCHm`3Rfw2nfHE#OT{rLvuAR9pC6R_-57Fv?30EQaWs1> zL{k<+^y?$I&3-{Jm^~xMzK(Vu{(b=wu;?S^NaMd_`#|KFpjBofZ$-vq5o0%BFZsH7 zhF%&E8{g0S+>SpkvtaFfFD*{MS))6ZHz|SnBt<&1Co6J-&rXYth&??PN1T;yYt+)E zKK*iDz08DHKAAIi?c8-krMENE7NS$RdEC#xDD1O)1HUla8WFs@%QmoFY|e05YIO+5 zqx=00H|>`CEa)Yswjzs;pomIz7M9&d@S zbrww;qRu_sI@_7#c3qcV;g-ym4$s|7iXIdey4oBRPx@79y^?R*B^Jl;D2ZY1*{@sU z@QX3a=V^}l_&4)7ZgbM^k1ScE=1zA3i2CNeiDys~mqZ7CZ((=4*jPHaVk~WkeH;#_ z<$#$o>+>jbFA9g*cQ{m=8%UF-h9BMcU_$y?^6}7~Z~|F~N_s6{_gk3{7CpU59LWLH z_h+B0)&@#L?1#>%4EvLdqm_4`yiN}C_38#cx$W%ZQ;vU8R}Blpm6MIWy;!`H6MD1B z#%0<$Hfz}ENmHoF5f45g@Kwug}ek~rWGGIg~u}f=_{M= zpa-MoN6XV1#X9zB@GMbph9B=PxT-%zSK3XFuZuwl`RsKHXT7_k`k`@_&e^lP4s)LM zKJg3`*e*)o{x2O5v(t~NB1?2 zW)&>Ta@)zfRWPB;dwXo%ai3z^L&amPhI1ci5xQcM3%W?`&o|I9Yvd;)J$Tt+@c z6GNo*-y9P2%}5tK(Q)|ULtLOjG1^5h7b910(f^hHn_i&3^Xf0Zy*div^M<&muXIek zA6ILmiYAxpHx%uJER4uTQx0X*7!-o@j~2kGORv@bmsu zA0~}eB}I@_ zOtA)6qjo(|K%cL3)jdC0{5m;Zv5`nFc)ZCi@VV?@c}m(lC>D2WWBAe3!HW0AeoVQ! zcumC9)@uQ++uiASoe`$zZ&~AnJ^bDsTr4y-T>T;AFHvap#HcKmgd%?XAHL89sn|AKQABlH}{_ z+aw^%jHiy$0oJxUxc9kL0Iw2C zjdSNXTV0UAs@=KnrJm+H^?d={em2-wi%s6Ly#W!FqNDg`VDZK!-fWJ2Ej_n^8e#Vu zd%?{q`VoKkTxDAxl(yX3q5PPzk)l&hJ=GbU>takyME5#qid$wsrKaTH*Ys^Z-Quwo z#Dgdm1?TMB8A1%8k)+gYI&WfC#cxK|kF*He#&E>1r3rAE#Cc$+5_?{e)RYSsb*=?( zmUkRmZq#kYzfo=0bLb0c){s!QzR#ws7R2Yz5Wa}_Sd7fOp!p?W-0q~$h{9^v?DG|I zNHJ-^cB$NPakvvMU)Wn;p_0sqj5yAqJk#46I8X0&oS-DpD06wT(PFJ9dU0~1Yvbb} zibF2o^t>G}Au0IkOjkf;0U_{i(ciGhJ{kjl5QgV#ezq+Rd0pgD=_`4BJY7+sQDtLq zJ@x&Q`E;|dFll%=d1|@@KCN>|ob(k|Os1XD4aQyFX3K%3}P;$d)Y@U@) z%8&efOq=@)@yA7DNLUyxgGF+9mOVNeBTZ-?V6@HJ3 zP@qI&55ZvAF0Zh>qaXj~OJ=0)T~abwZtlu^89=?#9!gdz@`T}+N-XWi(}P9&Rv6lY zH956o6vR5~(OXV@w9!cFwMC(n?P`0n;3{A7t1sycJVT~alra3~TO&`-VDt4KNjFRN z>fRptO^_XUzwOIvQSqk8I~RpX3kUyv$nY6DVm49K65*DWlhuE*$Uh!3-01a!trvDP zTlVmv%Ijp{iZq^qZ47}ij`mB7ql;z6&{v6eO2gC?z-{Xo<~`WaF2Mxd?a6{{`&gTe+NApY;+{{{S24eg+hrC zshg{QH;Qz6DkWk(jhyzRa_P;q&l28cc5daQO$-7-QV;Hk8#~CyS(d?IBs4*p5<;dMGh!eCSOM zh>{$Ce!sIwOx(*K8S)5AXV}4x}VzAig)o&q)()#q(H;0p}fyAoy z?W^oc+@8=S(bQh!>pwz!_Oe&F~7%4j+ zR#~IuBc##UD_;p1#3IOy;F*tZk6D{}QP>i{`rQ(h^`VYp2vx7yN1Xs`Ac5r~lmWuY z_>MOsy*2+g6TQqoP=A6G(4JLerg-EOZu5suhUdGtRRijo$ehv0L8_aVwtK-iVu_C^ z{4msH=fzqd3s?JFQ=#DQt#zB~7R+Pq3hPX)f|(c)fUVR02~#IPKVCWB97b-s+n=9Z ze$@8?VY+;+ypBR1d(5R~ec-$UQY~ks6&)nty1v@d6fHiQ%?!gbeT)p{)EbON3@2b5 zhafHF@g&o(QNBniO>&4rq;EHAYnlbDp(S4u{$lP=4;J3&zmNk zmw!sqE>9M4P&LvS<02gg99!>8k$Shvf4kq(dB6tly&kGW}NPhLUfN!mIHl9&c)-uu1YxJy)iP)}`@<>e$rXfPErW zi}}UpxPN$Ns7yL?P}r{@eF2o~#7>>$@&V>6Kf@VI$`7U;5;r)5)!X#%FQy3WRIL}? znD!MM53?;Wn?e9)&m&>o6t&cI-th$|flpHVF;8oa@sFoX&}rfwb9KT`dV*buKC%Q( zx~0)KLNlfCV%!hZfHH)AMl>vtD*eogrvszu~o&Jn?5f!Gba!$s_ zfl8fR7b~%fEKM4pzp@xd)(z^l_;qBw(}rrKz>7t9;Y@WQ_NGx$PL+#kdvQr0%(E!= zR+6RRHH&Yp!Uer2b}XwY_ABf5C79_W2BvBp3!*UF(6PLe9g#7hkk_$HWp7uP*ZX%? z+k)LwecVv!gxzvTC>P~+kCb?UYI5eFg)a+)l7Sj(T_PJFcA_+ z+d{rX0i-!sUgVqdX$V|cBmAkoS^g~%G$zvoS{a*+&9i9n^_`!CZK0$G=bS;UeiUsV z_dX0GCod7YGG}`{V<_q%CnmNxI{(R+g+m9mnRKAuZ(mW@>BMuL_w}(8ZppKY5It!! zZQoidd6B?m47U~4ZnP_mSh79zh~ex(cVOo&Sr(`tM0XM6X4hQ)lP_R-eVG%&CEy<0 zC*-^w#(+csk=q*}DklLX3ZGu?_V#ka}|G zPb@sIlGn6p;@?oF+VL!^F1hpkw5`fHJ~~#e)n2Ug?rf%Zu#u{UzI9P+qSgpa)l6?E z2`x@KxiC*65J^sgoZq2qh#MK06U9Ac_*l`1X!m|{m)e2 zQVWl24kMG-5bA2XOWj^Rnl_C*sA%uargek{8;4;t`fCijF@vtv$!IEZOwOlmMYhp# z&nC#}St&&hIU++PmeWdJXq`FqK_)NuW@{vAldmsNTFP7c(LKeuO7=++`;Yh?=7ZM@~5A>y=2sp2F%GgUmAS1++B+eDi%oe*Z z7EMgNR{T~PN|v-&9F+#jCTn+LU~R7>qdgKKyuaAAE*Kksm$qxUCCce;v0;nCXH}}w zKn5nAG5={^+r(Mc8h{wS8n%4HduGVt7|*g}irTZ%8R-Z%;>VkH4+B4Xx%|W;pGktW zEi%cQ^=Iro1bk)USXS7>VR)e(y*80mdt%)=c?C)ID~Eo$vb)j9EX{LRcg}P8Pm)u) zx5c{rQ*%+ImrU_N7Z!#v)Id2~^r`)YCS`&rOh1l4??^jltX+(?&{49t_}##!)_RjF zz^e_DpA?g%N_v~nsHvkgQ{PwGlH5tkmzWqo-9;z^2Ly<|Gk=;O*9;#TLY4wk*3y>$iBz^H5Af zp+>5_Uz{cn9tGGV%caSKx0@gb?4WFE1~hBu}^?Jm)vX-45> zJ%j%F+diEZzqTL}DE?Bw%Tj~Mt@{i~zr zJs;tEvUbMYHt_I0<*gC(vF?^=a>4B025uYV@I33$PQgYFuj7{*pZhGOs&6UQzOOBQ z;KqMc7U8>2=jeDa()lUTd6c8mJ~`T?*jd~9y2l@HgGc;V zJjwQQy)&A-7i)SFxB%XSp*#6r%&R7@skNK^47272j8vbn&6`Q@kFWLkw+88GO8o@} z&B+4u-V$y*El0Y;sn>TvHMQfA}NwaL8&-|wj0@QVwM%Sedq z2SWWfj}h^4nPegOiU+Q4@YEPB$-}*wDwdI2XE?$IT`eH8J|u$WEqDR;`QgYAuH$t! z)+X=hp?q1R9Wk3REE1sqooPU@a*O4D z`t_kpcy231bG6QSvysyYVhcQ{$gZ>Ckni*v(~l-Q#m;-iIP zHZf)hosC!LIWDSnav8qpeN6K!>LSpK}9aO8$_Z{?n(FxDQW$}Ss_~U&IP6< zQEPFrKQGX%dFySRK_?q!21VL*r90BMRU_68@CYBCEoC;FcZ zL02h!2BqA1`ghgY6KJCE1~WxJwVm+qQP|z2CaWUOK9m&DtgZLeKU?m2xF;Hkhqgb^ z5@;W^FtMo|NzEEZFad5-=9Mm-j|NR|tsPxZ9&qRh6qcGN`W~GMg+38}Jr^?y-&eKg zd#0!#9s;cv85WZ~P8Lss(^N%=I14=D%6bT0Ga7iJIg?kQnneoVWTr3=@lslNbG*f< zO1Tr3^~{>PHsM!mBX2SXgMPgd``}8zISVu*S%|ic^~Ma_{$X6A9A?Ps9PZ z)dBBbvb)sjDlA1}BM5#j$)e1clULnSS>G2(B3lN@lC(P)MAt((u7~gktgV$r`i6F6D;uG5ucu;=8!#W$Ny+`0zSAIqiGCty@N6_-$<*{~$yt4Dx-Wfx+4iL+i>4#`Cp&n*@EM%-UKig)Lr`IJ84uxK zbIY-deWiSIb`~BN8$5M#b+#khxyS)FtE!EWPl~E#67x74*H(JiVETX#jvj!4{&!o< ztuX>?Jv8)wA=UtZm`}sQ|kNwK)n~N-$ zy%}?_)6E=+LW1;2zB~uLLP9Kn_VQ+&7JbyyfQ1$5R4IzAO;=csRN3+fdODTfikkd< z2^@_Aa7omEcK+vT;l&!S{<Q>pL zP5p;Aa>r8Dn&83(+T`-LIn^RM}*o)37Kjk1`}VO!TorL`>GWsI7m z|K;(g-RTPbtMfg`kGE%u*OwpU%FUQV($fT-YhRY$W+)>qU!AeQ^gk)EbtkeV-JjuV z>%V6x18Z=%AKw8Rf=(O`E}PCXX0W|R`At>tQPIWt@k$^qZw?2$T%9_5UH^&AS5A|} zB=k|GvVa3ODKhW;ooeU~khq*tgM&BvBomM(|eGPFa=aPWH*nNA`01(0(m#q;mUwc6G^F{n` zl>nY$FEeS%t1%V@poRt%9fN9H@scb1!WSzuSLob4~R6d+zNG|9>ps6=)EZLwJl z=_c93q%T=JQMwaQiG0Hr6`f8dziSkH4g)0Yp022ylB2m6t2hW}8ej1^x5m8)4dBG~ zuSX(iamdNDx%aYheZJe(A7Efnb|gnW{+!#%$fF56JU*GrwE3u7zvY%AMZ~MpAq}YF8sIki<@z7DiZ)lS^yODf zp`+uevf#BJIEspGK^@PAD3bv?wm!~r-SF!)72^t;TX4C(Cb6EWti~c48Ld?sS!--; zJcCV_*By5d@#aG#VaHczwsZmulGS$F92CO05TL!XWcj{U_TIU>b|u69Z2Gd(`{3hP zmr4q^PCO3qWBBlC*3S4K67_Gap91eQW@}W_igSU)l|qdYLp~4)cAHlv+7)x2*Mra? z;~=pbI$~!|`xyZW`{A!I43*ULT9=-;z);P=$ z&2nBLh9mW<8Z%H)%e;T7QTQ5}ZMfweM$K-*`28{`gcek>MEwSXu!XEGK=4zq6 zN`eX|*{t|bwCp0hIGlhBfYb|)H?kC04}bfn1~?JLVG&;reNoq)r^FS7y~i%*6K)e5RQK5YSgCBeBZ^8nEKKT0M&aPv`I;s1 zareLVYIrsPfluL%I{S7|+;-LfZkGCFU3nbdXXFp$bhch1mh&6~(yx?bPS z(C9kcq7BQ|)!qqttOSXmB5iv{b3VtemEX%96+(B&_z34N>!(?pBy=2lvBDmK2sP&Y zsV@|%=I;ey6|@&4`Q25|@SwPQO)%}?i&8`Q_8f-O#(=#uQ4hZ{3R)b-xjc@YZQq8| z{@fNq^baO1*`Nmda4E&BIcLbLY7gLoJ|mxX$H74NBK!9ap}itvV1&kyB>^*S%POqO zR`b{Pc<-Bh#C1ka?=d+Yd*}#Vwdc{W+%mLiuzE^J&BFQG-7i25py)4oD z@!2PCkGrhn$-3Fl1ZNG>&xoy+LoPWnrDRSev8yjdK%i6x?oTo5IoEcs@sDkM^7Sj) zoRwd|W_U(omcW2hYXF{Wo)^fc>(J2h7(DG zc6;Lk;DJxJ^b4Xa-^&+sU_V(M`)Yc3yT+Iq1FETf93xFVdtu} z>w9&IkzqDF6Nud4rc1gY1-|IxE+@yn68Iqht!owg} zYOuFD@3A6RW#e|rWkG9ld3-6Pin4C4)#zExfc*63AB}_AX5R`=Bn7WNkL73TmL%UT5&r?UH2j8E2>G1|EBRNakR_m*p@X~LrHFk z+ITom*0wif0=VSW5Qp#jF(FeGmJJRKt?xz6zrLo%Ck3!U zzm(dW!G7jBpDUx^YoClm3+iII+YXFGtT8$^U4RJ;<|F^BZ!f*rbe}mdqhB6%m4Yg- z!l{rg8Jws?+4BTAE^&a&$JM*F#AucpSX+MrU`Fnff}xj#z_D~g>up9rtc=Pnifq^O)BB(hcQV_l`X$bU-0m^smRgZ zR)9P!Ukg9Si0itpo5T6)8xn?8<*~;mSa-5;+}UDL0*M{^Us;Q}H{N@-+l|i1!sEl= z$aLtLYQfu^u?N3SHU`&#eIF;{^;8+X5u3OyU>FxTCvKNq4~Yg6K)6Gp)Zj-x@Zjnf zKz!yS@M3j)7#^&Ff^z)lh)%f@<%~Fjp-srd#X&QUj`#+YDP|Cr zszNo7o%qdqD6V?Q61<1weOA^xOyhSiJW55Q+uS3WtV$!#m#eZG33Js#0=!b6ZGp@U zG=eyeO_$v(&7{k3vUoL^PV1mArK0XEdA0jReIsieUu|tqSC?$LBN;J6tet}_N`=9mt&)5H> zdA$EKsj|n$dX1hcK;@*1o&Nm;zBX0%9G}!-u9g9QaS#Xo$a`KawfW9x0fY^P9e7VP zfNU&tbwEWcoBNl?-7`6-?J;NTk^IDaW^jG@oF}~K>U4{#%(R7NrE4(0#(wm(Tj$QB zdrd%oIJbjdM7O~`^!j`j_i`=iw?_UiG^xkhz;lv%U25>zejE535OBZ7J+pS{jxWf5 z{PeUL#JQYutH83An=I+)MFc4@C9vaH;12swnf&F8_oX-%b#%7oP94O23d7%m+R)RV zHfesc?p^NmTd6yNx$ty{AG-WAoMqMVe0P!e@(|p$3j1>pe(HnL8{2Ys`@&}8T9WC{ z>tY=Spm4|P)g5Dmvi(a#?S;Kiy2>c3jX&5%aC{IqohHdTKI~ zk0*6k=e+VQ%IAxIL*Qz^uG(A`fa)p29_2%6DS$eWi^3$Bc7LP)!#QbPdgB>YR{^Mq z1742TM#faRc`s~_84ltTY`xip=RkH{U1$=Hqn4z-=Yi+>Rqr&Y?sGWcJ`IajWi_qS zixYIM20mW%IS68`9j`q+KHVa?-(6OFJ{sQdA8$mth=M?h>c>J1;J5KWnvn+q9fqMMQ( z%n&Y)Zabc`024!)`yEyE2xMV6J}GJ@Tr99yyHd@}O%ylug78UYarFf#b%IVtH3MmY z>-pGwyeLqytiYN{2DvruDDetqS?dCjeA?trc74#*^GR{z6yAC}h2$~AD(kS={AuUC zJ64xilzgMOwF`c`o79!I!|e=1GlcQjsUVi-GrRQeIrDt*+fOMsJ3o0{Mb zGCYyg$9-|+ z5}f1Qba(PG?!O|*Dj^EXOpRmy3G4OQqy}~gwN@w!3KAIreFD5KE0QHmgHM#+DZa(tVT&ZI83n&hIZFZC~BNZ zQtVyqFJI zlylDso}w!mdmE2Tw}&n!In1My%!_W0ZM+`cuUSIYRpQ9Nrg6MUJlob>B#Nl2MG@IsXNu&R9Un#PrvF^RXY?|^b7TXh+u{G9Wc+x zX7e&1v%GExreE6;z^XlOu?s8X5t``^J%Ul$0Q{1WoY?Md?l2b`gbPO;EQ2If1P=rwGa6xrFgVkvOjtx7RVg zvNScZ$+=jS=C_v*nxIbYln&1kI`k}h5{5~cq@4T)(#PvnJh4#-ahbS~rE@UOipzYt zy7{UvLoiOXfI|GH?kWpTkdaBl2G@Acg(kVp2-48OGe_(wAfPD%RCh?0U75@sK|YQc@Ipq7z)XcH`glg;Eg${lE$hm>EBK z%$mhxX@LD@|> zLCkxFK+pB<75w#kA`W^E0}-6>&3_^Qy2x(wi}gY8A5lF2KJe$dpR&rcW%H=sd4;q9 zQ4{iFD2)i-=q4XmZq8!OiA^uRn`0-N2epp~$V$46G^O)C7tyH?k$j42`#tM?^QaJY zY&h{^cX~pgQ=BiTAtM6e_$Awx1&7~th*0hqzZ=3tZjq@2#gA7n?+!L=nY6wqo0p(e z4g+y~*Z>afwSu*)>n#32$~>dy5@Gv9I$%bR+xqY)@4S}~hpy8QM~%F|O*fsNN%Jen z-o>Z%xc>7S;Q+1M)s6>3l&)Rl5NcqWkb5Z_VQ_6#x(G>$I{2OCXHz&!HH#gi210rH zVh5lY+a=19T>#9vmaF3DCyuot=T(<$-dhhLDTM!O81K zZ5L!v+9+~CHVJv@|CS=m&mcHGlWvt4@t}w6F_YS}Rt$ljL2B!OILUzcb0A}H%ZtPK zY2`qEf)D$t)~l3F+$DFE!BFZ)u$;Wf7HzRMCAsV*W@@I;B_e}GO4u1v z9DNQ(Ao*##^wNOe>_pM!^MEz=Z#~VoSHcI4g_Fr$h-#z{$(tNex`)Y#X9)*Q{T}`4 zE2bd{G{^?I&?wu4S|LxT=+gsnJ|%jp);W(Nn!|8}QGkw-?1Uu_vEmPrkRs$(lf#J; zs3o-@d7pQoXRnJ;%Rio2C!&$M%=`VLU{mb2<<5R6^Aw22qtZYH%j1=c#zVFkA?fwM z+De+aH3Ujl`~#q5*&GwAasM)?wyU$hg?iDprsGVgSv*q9#JR5r@)<%+Q4*a&a22HzjOMcdG-Sr0!*zN!|V{mgO2r;z-!?J6>Htf99vH^*nL;LyRJ$v}ygp;0E0;Cjtkl3jKBV zyO!yP6T82yP`?z>{CdR1{2L32LQW#vuA^p=Z)_Gx`5HlMew5$f~xmH`hSll{EKA6?xQ%P@Sw1y604|$WiQW*)SWyLe* z)Ue^pPvn`*{kDQ9!-DUkR=YK#bfW?l|g-dKPsC)dlQWZqf z9>R7Vr^^jq7ioPl59IWErch@5__2{e=zX$+T&(1~_-$Wx_pSSh7T4?(fD|kbFq+1a z*fR?0<2obZuVgoK7`*{5aw|cJZ|JJ$RrM)Y62=uh;?h7e5B<)@`3)&3RUB2G3VvWI z;l2B1&-ICzVM6J1L5T<_*HFQvcwW`YyeZ4RoA#6?pRT%cyC#^jnj~vQXA66U9(mz!H8Eb(W{%1Gq8(a z?{69H=2mBK_Za|65Q?V=13&6%>KoK1UOc5+_`%220Ew92z&pB{vvBJ5!9F#6rsy~I z;R#E%rvfm{K}_d!Y5-R+$%76(StZCG^SY}Et)mjkwp<*fJNWDh$W_AzBb(MDPDcD& zi~bR^!Q7kn?}6T`%9QeZ-!%`dRCJ8x!ry`FU38mY@YMp7M`-H$7fT0JR!~7BLKt>? z!T)so4*y906_4B3nf|C2MAfI|mP;leC~>uNVnzlJPz+kG%Rf^Rp}XY0^Z)U7ydxg0 z`}FQi(HetH5wG0vtyhJKHbzw8TYfj4n~hLMSdsU(@F$H=r66eGC&Z7$P~3TCauam5 zAYt;$Zg97$+XI~;excbn-sjHu1%-0pr9EfvDoFhGeo;pz7wf$BXrHx{4L+gR=qdLc z*DRL{Ljgo+}0X*5(quZQ#>2o=ue4*4UPd+Q|LvvpRHDRtjKKT(dNGE>I%afEk1Kc zF_#l^zh?fm#)&3zbM=aM$~Z9(9gATOI&=f9LB##%j=CtqYU@22+3!e{B$+>CFVv94 z)Vc4KD}Tk8KtPqJtY8pW^8Lu9t`n?(?|XoD2dnR$ujHV`hIf|Py&}F>FOlC7V{q9` zJuVhLcxvbGjYIh->E!$V1AA;lhSOU6k^JBReG{otqurV^)2`T<0JBF(jgt2S7LT}y z72x*juf{5?-)`U@WL+of*y+M#%JDSM36&)pVQX1GpD$6i%~soc&yWXemgqfJbuH+} zR4CFa1EHv=FiGvaM7Evobio!f#M@X$pZjTgK#v0COB=}0-B^gI!p~QwxB4;BKN`uc z_|@tMuUw_WS>bh-hc^%Z?3ceS*PJ+!$!?N4Ml?r=J*{#-+opFO2U9gaZ5Y(x_#2K( zV8w4gqaMGPoKHqjLDwyF_Zu?yk4Uu2#bh2x8I|nXMjAx<{O#!oH8Zu%E+)0Ca^XG}PbScHSbCh8m%xyqc^B1{o|;oe+K1DCpJB%oO?rZEdg%=D9ij z&<7$>VbDuNTOy%)I#Wf43j3;E(Tw-yL&-t^@EqZQQLd_8>5GD>**P&_P2NX6*>3mfQErv-jtO%m=?OleUv3-?bkFHUPeah8{zAh{|Leq(LjkM8mZ5 zR7r<)%>CI0DYId7xo$Ta=LH49dDVPF%@(9gZdJg9foWGUgw;Squ{8K88onO71!@)B zckFDdVf_1kHyX@Gm9YYeNvtV*hkljOTBv>8UO@Vu#1}m8qVCzbJehO;t&+Bep4fH~ z<%>&s@Id~ttJzo@<<7oefdEVITQ@0ulbwk(U^;To4_NZWfY2o;Y%Eu)Yd8-rA9hw>PYz3=iwO-7QaGc= zy#qq&bd_!4^@0DL-0$`SU6_N3N?6Ww|5)Q6S5^nAD8`3cD7A;zo3SLsCPPe zT3z7WC%JX^+vV_467JJ>;yh#4vN(DWrS!I+dBo0v=ITKxZbw`S$aJ z8{4uxvG(IJvGE#5MhZ9lIYF*4guH<8`E4HmTD!^ zqWLJ{R8hg8-DFGp0PWH4FoZs6ENUIeDd`>oS``jiMTx?FCQZ#K0Jvm6 zZ!MSgX#%t9Dc|XWOaRcKY^Nr^TsFPgB3A^<)&^J0na`Rhn~{_9gCHg<_BIV*(uw?` zgQly$tnu~kJ5@4E+;;qO;7mwC$sQ=YlNplKxNU3+>1_|%*inGxxXl76#?TE={8C4% z_XeRxJkgEHpqGsxmp_!xX>+KXRIbC>L3|nG)6{(*pwI24zpF5{^*d^@85cdycbGk- zG@DTi%W^t@-IhOWM5;~&{pFfPQ}0H~OsO)`KD%z*%_#M02f9CYMGh41s;|h;5?*9R zcc9CT6eKj7E@w+@6$qO4^p``|PI`oe)ockrBP-65z1U}~k`_ z^{bg0{IOyeqG;Am!u3zdX%E9=Q@JK)G(OGA;#DD|v51u!LT)1EQlR-x8N1oS*w1ssy zDow{{XC*^ETAfw+@)0(^+YU!hyO%%p5T06P4+T{t#5aN-Cw;({b3{*&$vOfqA8;xl zA?j*If8t+LNi)Y;q$kD*jgyiq62Qdw-q!M16MoRN2a0?tT_$IJf5?GsA5n-su&R~3 z2;>;RjjPVa9}*r{oU-_X>5_12BVt1W9-VJ*ls6WHud&B;j$vmDaoEk81Y+k$^Vr5t z?^ZoouzyW@$?X0X-Tq4-gx~((VlIWE-~kwg=&vrW$II=zxkStV|Y*kc@j)YEX#IqW4JM#~K$jD6$8 z$J`(ap zybmmu=%?-6ovbovpS-SpvHgfX0d`LQG!J??x0tN?%ip>V(FqINO%;(+L0LUlYjplBGe#*SPIfN z>>y{T;(K|#)(S$aA|QS$*QfjMo5D6DNxI)LbuH*69$w`BiUg>=^L;z@pNdFk!w2z6W4*56#c<)`Ik;tPNa&VNg zlp3}e7+?FhHv7T{Fu!W3Kq!>$J2x{o;73O%yzaparDp===OEg>*`RTCV^Uc#xjhl`^Ixlle!4eUA%f4+2b$ zifb^}53CoPV?mhl<*$nS2QUCrUMH2ekPe9bF1EUc!2U_nFEarl1@%pk`)aK27|ar% zZ27V6@j35odpPeSXtzvUWHn&S<^7>t?fwTEmX%DX$E1nIR zO$}p8cO8oYKUc=0KXr9vWnTMSdGbR$QKHd5Czp%PY}_ubQJ_KxhJUvGajx0-#rwyX z5+HEZ=OSFg3$hYxo5HT(DFmQ}*X*nI$vbMQgMo6#dV|N!_jd8$!*Lvpt_n*vkyWs2 z{}cee)t}*XGreV?C7&KVwE&UQb*+b9(8a7}4)|oii@uK`keNBkS)LW)Ni5d6eh_0c z5ZA5NgCU|!0PD(;HEYIGZvu6aJ)a}HQhUn<%kk73P@2Wt9(l6lo{r5=*@deMS z_3_fqx_m(pVdUZo@O}i{cVqn6|8;-F2z=auM>2jV?sqK*n)vAtn#nZd=oPn|bj7`n zwLqkV6)cK)V0tMGq+g~tQ}xl6Sq{3h)f@q<(67ogyiMl!O8j0!nvxoiTOq z{l4eooQwbG+#D|5x)*D$Ip=ST@jTCWeDu4q3Xg)whI^K33?>^(0Q+c%db)yh7kql= z;LxQy|49fOqa`?9V=(%j@5!pP@FLavQDoeBK3Tvz80Vu?=kFgoU?u>C3`sq3+5L#3 z)q`S}ZrGmr(i)=QogjIW`2o9_=1`K!@#&)xDVkLeLvOH~I%~};HYjnUx&Z#d48_dg zAR0oLNX#73#dO(GKMuF%^P#EG`$%zuG(~m}xARoU=DcJ^wm_&tpf9Z8CLXTHIo?_i zV_hEJ{v#vnR+zQ6P<^Ktu=?2Lf|#>Fun+E4k9rn}9X@Xd9`6LFN#FiiIaAR2V--qH z#nlvaN>9Ho4ZN=|Ae(UWc0eL8zdnfRQEaL*%=>qnPc*EcC9hL4VEkHmFgaI~)^zdT zBXaKj#>NKGd9^eV{aIoT$cE#D54_X0M=|>*z&Khb@C$C8v9mQQ^>FKw^?aD5`wBU; zrbN3EO7%ItuhqLyz{+cQMGjj1FAB1UcYUpkWLHefpJoSLy6QYdlN>4Av-oyvca{Fb(z!a8*I}6E~kq z^TQg3AZ`|k`a!dQu=qhn&IF4z0dCZ9XS{0MY6YyrCWMDCm-$iJZO^|ldPt3EVFc!S zl>vUo<#(PC9wX<36`ob9-2}|B1?GX-B25rcX{)O}P+*Xivqk*98>|*MZK=YAIbj`O z`$Awb143ABh976DoLo5Dex{36E(EtJIsO*oVqUo#1fW_42iL_u)&94B zuP`p41c|>mVk@XKOazWS#~sE(`zKs8&{B!#uu~SglRrUURYLSN$uB3w&dPb)$M{k_ z*&E0srSj2o)PoNr*{_3>w#?HW^{ZIR^Jr+(egVA!!F8UAG_TH)LMBmDjDAy%y zlw-+2Nr1g$e3t&({z8 z>-v3GKZnnvsdso;9FeAujsDCb3#LD~IVzTd!RB|(xgNStGhKc*d}M7Z z{QGCDUakLpQld&JNFWG*-e4C};Tpn^>Rb0tY*0zfGD zYsN3kxL9=4Ilefv z{U2xMmCmunflgy0^mC?$2)ZRpj?z1_qKIr0r^%l?7s~>H0qOmZYttF9$m9fNVgJIuh$q9AZvHidx~pvPjCjK4HUN zu|J~9pq7699(R;6ONgN2VU%w7D5uTJf?JdGT%=xsewI|ClYr=lnx61W%=|sfDWQR9 zH_x7@ENF!uAr4QrI#(I%-NA0LDODfLWkiMHLP%0@!3{;$w63gCD|@# zXbdP_M`BHNw57Xqy|P@1We@xLq9fI-Tw3e7+`bcDKeQ*niyGE&m;Aq9F`1wwJbjYH z>$62A%^E-Agvz0BXq}~X!hUg%N7qSH(-IF4mj#zfz$(jPV`6mo-&p`>&*aWzbVnFF zV`zVk``Pq8a&Z}hUkiskmEqOt?~DPkrZi!=9-0kVO80VDJ`Sh5jNNy?xj9ZJ?Iq!QU3ZXQ=S#6RF5nHoI zxfjs=W+#skN7ND4>sxu{EbMh4c6dA+8p{+&E8SsIel`^#ahA>cUlD?f`#E^kj>q;V zqxazuIpg%W)Vz5A=R>aiir%SSgU0yQ>)v6M}z(k|`19 z=-6}V4g&|R`WOW~K{7Lw@3QoX+7FU8*^R$rVd~)8nlPzu-B;vti9E7U2&A+CNNA7s#Iz_zy=8q7{SQMj9RR&CQF;w1uj-pk(@mckn z@f~T$VcxQHpaT)&A1bddkElvniz()?ERBqwD%AXp2L*U|bk=IBab!aXt{0#Gx>6bJ zK&}Cv-A{0L31r0p#jbX_c2{L#d*D5_ZG!ye)LJihtBEEpQ94BgEkve$3bjcG%OF%q zF4ltuCjNbwk|L<2Qz2HfNONYoLz}{#p~$et?UNMuj0*+VeVJP?RVVv4KO9Irr8w3s zth5`UoPZAE$2)PGbL1RX7%>8TI$t|(OlcwB#x5VgBNgpaD_`6^{&Ds@&n_1F1pZ(0 zqZW0iiKU(^7tvZ z(5*CaT#HF?FM$Vr$M+q0&@C>Zta+_@7ED)v6w7;sWmg_>*Oz^pxD5xkfv-5qhc^TZ zt?jn77l-q7XKCn~!3TkUyf~Zhdt;WK5grXnfe;tA_6!9pXqXsJ8#}rQ$4#0PhgA&f z%-_zdUfSblF%OfBFaun_tF-#yPMw|{a?rX4pu)wNuaAPg99xa!Jnca^P7Trr0}6ve zarKp9?aL4LxK~Wc&kndwwv@Nbjv6XHL%pK&07LWkF*63gv6QfyY1W_}c=I1UyB+V1 z$r)t#`2LiRVnl_g>q1ooy`*ZK24(WED=giZhaY)kxkw+#hMZh`e#M7XZc2it-ijW* z{qU`_4U1^6dIYox^|A0#s%*)a3c z@xf5#{*dOJ*}pa}e8h3zH{tp7gOQaccB5lwr7>-iJkdI2p}r*X21QIfI(swPuag8g zRqRM;s453yj#N|7OXQOH&%dc;6#0hCk{dpL>?-kC){xl0lfaqGJl*bdjS-25k)XZ8~nWajhWP+kyZzzDphL`lNy?Lkjq zX=>my(`ob0MuVB;?)@9stH^v@My?T=Q!8wgN5?jtbXm!s+O+oIFkLoyKU{gR`zqsJ zZ>IRn;|6StaQq8s4H%Wb4TCw5m@-5Y%YSa6yxFsA4T_9Es3!9%ILJDawS8T!JG|V} zYPux_!B0Wm-qHtpwFGVO_x_BdX^aI1z|w8LF~xdt9Ciymvp8``rfh-QL9``ie2j6k zpEX1SQ>bTz{uSl&;nzM8L;+N=>@)Y;dBVYSc=zMOKOK=nPS;6EU}98wq-HX8UV-0OF0!;OLu&^shaR4AwAnebbCUl%dSJu)jPiei z2a$(AQa`|iJnE(FJd-!K$Q7(DFbb!yo(Wi*VB`O3k)YUgLt&+1muC1%nPfqyLvSya z)hTbXi}84d)gf;N=|J1_>L>3^SU$l=>UxL1?!k?6&ft~@vM2wK^W_WZ+rt{9OSpko z!SH-hqfu^f#(Xf!cBDdC$l*i}#!sA`5Q@v+HIY%y?up?sVXCdduT2t9_dcT?Xs@JN zRl*G&vw!UEDiluMmi}eoDdnU=Hjy>)S@pvZRLE6jLY7zG@;W#g19H_@M)$?*{`@)) z{~f$?_cVj3T(C23yPI`Yr6b>TaW79 z$8%g%B1Ngtl`G%eMnY40z1YabK^}7x54SMi@X{@d$aE(8mzCPg&q9yV#n&|L)4Wn- zm@acm7V7+Fzx?!$Y7+{jB~t3X-F30saIYm+X`x&x8x>~8(sfUOZiGAA_=EF8nEv%0 zjzHXnLQXB9f+B?>t_|I?`t0`lIthG2Pxb%%Rq+*}-e7{a5Q9WYAV@w1jg<553hm|p zneoUb)_Cs+mN|?o)$PxC4b^(3rU8rsNy^WDO&5Ab(TmV>H%<=e=S#qa_9yNR@mKTV zvf_=6>6^e24q&_Zj76CZ@qH-kBq4U2Lah?>OY@`EM*fEosC&IA3ULj<6l8x1VNLqy zYi+`d@SYp550APH=SmI(H2WteVqRx*Ey&TWQg4(1Iu zpaCLLGnLLH-tAQgWp%XDCk{4awu|Uqg(ETQ>DtZ?(M5!Q9BZz`4kXrCnBj`*ze1dK z&0oOLZEG)lTA)*mTp?Oh|NA99$&swA8Yzs%Z${CH=PL)pS4Fw|x$lLPIRG<~FlG<~ogHZn~^JZ2uK65q$E zn0Zu zKx+U=gtYd!Hz&k-b<7|ny4q{k&3}aMM%AmqB>JXdxH{6V+0-R4Q*QgW<;Qw7coQR6 zCGd}w-s!9&cdESMe|Pa?GE2UOy6=6E4&I__!-FZ6-SgS*jFHg_z)_}OWCC)uP^H6o zUE7R9=dr)V?OY{Rpcy=GFy?z0|0o4S62Js#v?mrK00Hu9`F2qTxVo7jFUjkBgY_G| z)>q_WgXV_?AlC^ZPQO(=T!71c?DQ0`6{yopS<3*g+WY{=YSoeRm4bVW z1A60UJwkxjIF1b;&XwEB0AN9Th280oQ3`hT8}LQf0(^qELD@t}M%;u25BNSzzarn- ziIHG~S>#5w`)U*tKEo;e;?gv{%FBd*Dsf!)6v1LZJ)d`xMflu5RoZMbjLX4RX`=#M z+M6F9C2#Qp+3Fc`Q@qzZWk6Cyt;l@|9L&oNo5Hp~R602N-yc3sxFv)4Z?F`*+P-)0 z*Zr=4X93yrasRuFm77XR%osntM&}cM^jixul!A42z7DKP)QqIWMD!9dfH|{v90Bq$ z8y%18qmhcpgHP>$`93roI|9%y{;6AoX*?hXe$lHvNqKfyR9% ze9^f)AwZSC+MVr8)`lrvI&{5iUqm0+)x1SiB_z!sHxuKwJbYoS!>NQQj4z^MKT z1cAPv(qAvrz#*hzH|c+Kw}Zu^U0_M;rd;g(t-0Pj?ZPZHT?8Se5?^z~rQ55YLUHs} z;nMvE?V3@?pwZxS#2Ud|iaf17`a5pBRN0C8dAGs)45jUB)- z5F6o=hz^)r&BRE~Gce&ZH~C=xMvy5VJ!ug(HzD3JGKStoc-AxB8CSw7x}HJ5+7XO* zjsMMNM1^(CmV$CUW@B$$}9ll zRDpr37@X>z)AV*6zXDxlBfo+gh<&|VMsv{>P#Qj~I_!$IrafY$g+YcxY+LW7x$SQd z*2a`tc3lQ28M*evrWk0RJMm$(hX(I2q;MOVq+0ZdZ4Q@rd{CeB39@?x+!Y_L_;AOv zbbVd+t&>J#a};0EGOzh1vb@iL*9w&(ixOWdtYYARJ8z#Gx0Wo7m?T`W(0Syd#82vo_< zMq|;k+g623Ccov%_~9`-;C7L{&2xkNe2LqK98rc&*Crv^Tj<5Ax^S>zc;6~XPXh9!0IC6 z#2*Qy6093UHMc(x&o%j!K$zI-5CRW_g<}746_F^-i!`lXj=pD;Te;A`O-*kQ(862NQkemZi=i5A=()IW&cN?8eEsWS{YQy0) zdbb-1(}TiS8b)-+gt(|L>mm=XyDf3S$!T~RO{Sx|@i^{ons>G~*B^-u!1G0U4;ayn zzXi3J7Iw!K7sB43UN`)1QWk`xhU?7t<8%0f4g`MZc&_akY$kYEbdJ4#M_-paEhdUe zPzrW1FlG22j9tgaY*mF;ddtmy$Cak07G3^LN{kehM7#|YNCa~a zDXmd*~Fv$4>&g8|$m=`No$Ie3kfYrr~ORbjP`^b z{8xL$;Vd47#-OZLp(e87#ZU!vW8i6yrPJcT&!59B03G5R-r~AnV%*?gKxO;+u+b&k zyc5b(LF1wKdM-Z;{0C)9kO_bcIn~MjgL0hh`qR2(wnO4~Fx0D7zx9xU_$n{B2IL| z_EFPQkAUuYz421?&~qhU(PG?sLfUaeci#>SY$zy^Gw2LeyO2$~exPg{zL3IlhDHN-g;7)3 z={IIaad2EOJbULx&ns0hNeArUN=u@6dT)PKy)z;7Hz(JIM>9*Ax6{GBT$V25{6m6+ zin5GW=>u>e$35Ol3cd~yDgveVdbKG~Im)|?icM2Vysxs!hf@r$22a?UmCaI0hve=Q z)~lD572^h8)8R3g_0HERe!A`}yoid~yRqh%-4iS&;rnT#h8}_*xos$#-5Cc`GT*nx z^oU*$vzThqO<~(BHqf=ztk%6XFT*1f;EDRmLdn}x z?Q$D1v(+cGlS>?-^qtI0pp(2%?Ycn|0vRW{vFd`)H;4-_L zB(|pKzVxFpC0}YJScr1u<%4damczL$JK|wu?U5@H-VL+iQG(zm=p($S6#9FYEkSnU z(@7;g$zunrnx$@&bO_!i7zPHVUxv=(OS0q7&+~ihpU~-?x+-`CBE`Th2zoK$x_rHd zR7$byCTf&evvlPW3>^=LZxc=9_Kb8=VY&>kAI$NFG`9gA8_VDM!LAmr^w*bkw+R7eI84t_Gt056);I zsI}?P`YB;XG>b|e6P}>s(tJ{~%KZ3rh~kV2#jkymP=RO{Rc{gF29Zmm&M6Qe08qTK z02VNyW~EjwrS@YRszzQ+_}qJQ=jY2v`3W-nv5#zWCU`Swsd=C~NfyVG$<+A!92eHx zVkwJMtk;}tWrKg)j6K6!%#BT+HZDD<)R(VC-C>16jqQf?3?^I@mKvG>iN zAzSdfaOIP@ds}XGey1-`INOnpbx~rN9&?wiy3)6sSl)@4wBUWftBoPiNVN_mowGpn;j@(s?Q~8AA zS~_IV=77I{+2w(eaJ1m2NaYg}JR~ykZLsqhYsgN%yjb|GtSKpoyL5BM?yF-Jx^!*l z57CoWUc~xxOpPy2y~W(Q>}ZGCStPu+thm5$Q;EV|_YD+_r*D)xyuM^*gi*Mx>NrAn zxHEcQ0jK{3S*@L=CKYR|suF2RIx&xSK$|M1dDp{3FRbw)%U7t|Pzz0ei4|^evZQDzi-xv%4@e-;i7K z?bYc^)|{ANKE}4d+`j;(SoX(@q^g!0_cwD_?S?Dt;sB9$TjSnxkh`TR%7s<$22Zz(5>AMr zjRqFY>Z5ibJ;5-8iZ|Xdu6UC2^`v90hYugtCTO!Cvf-<7*r7xuMnz9L&BnFFNXWmV z6?J1F;Z^-Te6ZJMVq2@dc?g}-F(L9!yYMyLxBT6)*Kwye;5x8){;+@Hiz5AVSCL9J zO`3A*nN8Hrqei>QC8KWd_nE^k*_C*0;_=LUyCy6&s!B}ufLgwJkU2_{)TU56l~NAR zyP>1y*W=PJlENAC#|Z}7ln=)-Ed!hM$5Qsiuw8Wg#p+u}1MDu{8Ch1>d+f=@lYM>@ zFH4_B#h$4#A{d7)!lKLV?+~-hG2Opm6vIC(jo0(nNMM|_YRTiQ#W`_XdSZS>^USHU zY>cjeshs+)oNr)D#EctQV>l-rf_I<9TdLMLtti`96g`p5zBsd)^}raO?#%`sH&m{Q zm?DP8+o+I9VwXz{j3LgKR+biLN|N|n4U%G94|mjt zTe1^fo|3;V-(8~j>l|!bSQfn!8$77E_Es^vQQfH3Hg0V+NscNJoNbrvdc22VT=P{p zfRtU_ixBS~DU--pStK)l$6C6*@1WbVKC>r$8u!^^D?{W2;lV48( zd<lg1{H|DNmpV6-w9aCW$8ikpKHTuW#K%W_u2p;{IKp^gNd` zb6#xDC<~%LK7M4Kaf+V!`Q5N-;F?h#gF}g7K2`*(If2X1<`Q<=8DF&9ptMf)Y(R`x}JV6mO}Khw7wuPz*h*x?oimT!fZ5|3Ma9o@&l2^~2i zq8f!vY?*Q$#m}OWFr3aa3Wpr&$vW2PRZ>tL@oDVQ@UEVFBiDiiS6JSIH%VwyLWiH7 zM!t~G3nmTE=D)Re06*w6ne)_IVV;|--#~u-DIzPH1nSzZ{OMmtFFYhYKP9s6Q3`C66em65tA>KJ}GR#o?V37 z$`&QPG;8Fo^~t&B?IF4)Lbn`8q@7ClY^CGJN}ItR>tu3%rHcTjNgW~Cx(^tnlkw*z zGBd?dyAyM@S+iUW#bO?7-NXDNR5Q_Eo_EwMu7qFYW?>Pz8b^L>IgDMUgBbgwFPVv4 z|5^HY=Ok}`BvmlklomndLT$_ve7s748s(iYD~~y#omy}JKP_~WFRglsw$U&W!dUq< zrx)?#ie_g1$@14#UjAe=$?globN-7H^;}(UeZgAiKxqI*&A{S#LB-u4CqV2w&r>X{ zP-V*UIERFJO1H)7Zfn&eo)fW#ABm?tJByLn_~dJXq+~>qi$N{hUu$P)g-MYcBpa7$ zbTGZ~2nD^xVBDx>S6#mr;hbH#p|OaGoVY%!JSM-Px&3QW+?DJQt|#5EZYExC;1dax ziU^;#C~pe=L>OVFQtpzhF7GxtyxToJsNN!U@W%CQi}VK zQ-|l12#Ev(fZ$v|tbk`C0gfCiA5WABuNKS9X2ZA$Z^8X?H~&^xBqEP>ak}I1tO86$ z-wG~hF*T9F{gwiAu!ndDsctKySCCw>+bhLrBSA_BXICS|o+8Vx1B8q||6`q~~ng)aXhqrKQi+WFZFH1Xwi|&_+zKUZ`dhpiq7tt2vjdK(~>D+Lh@=q}PRQxbK7#9whz4Rcn3(JI2gMTRXm#w>>j}v^&)yPmDywG}C zAuwBj)%UjP7B1!i%+8A9C7ow?DW6@?xoE5CavU3>Q(_*)q7>6(Nz3Ex-WX`jXVS!D zR!eUs7J=8eE>Yxb893Nqfp1r|uXhp8?vYTV)t%1Gpyj}wWSOyg<<+@U!!3tN(h()4 zsixD6T5o^bn!-Qgmi!qQl?Bkx1D`daTe8qT&0KBJ8Dron1y=#P!B>T=Nj&DX7g5!Y z(w?kdxR{vgq_q7v;oD3Awt&hh1eDk(Q8(TfkSVC0Q73mQIRK1C*eeD~2;CUZ50yp^ zD4j*k!#pB82iLJF+&qG0_}l>cSF`(YnG=<_)o7KE|Dn_G8~v6Is66#2y3zR}w~=fjn@Cv4RtbLH+qJ2P@2 z5%0Bp4n|3V{UZ`3t#|qMOzD}t_R*n15-Yh89_v1(ocD9!Z_pV){0*ALA3tqNOML|L zeoEEcQ0e=zCw$BzGZIHdWo*nnR{?$HgAi<-aN5F5KE1R$V+V0Gss`DSbU>?sRp?c0 z1Bab%g@e(lvQ}(pb2(ne@4emi_1KsVhy{KLB{@b~9x5Ih32&9qa(3K@Oud1kLP%nc z?xrdkHV*R{%|&|UuFUrB3E?x(aAwTEccr-YjUahcX8JW6s|;viavB}D3s0X}F|Lc@ z+8M+0t1sE|{M*7`fqGx8`fNGkDx4L-S|akHpNj|>zsh#B@=klTe!mq2>?gVB+dCp* z)xvP)?&@3=O7U=~woI+)T37HaEw5<`4n3dy`Q74 zO6^B%>0+mqCwmf7t2Vf$3whY$lI|er&w6ifR+^t>^>(R-OEo@%lY2R^AkkQEROcFQYd9^;pI_lx=L(+>8UT6UW#_Porpzs}|WzQ@`TJ5NVO(Llpb)_vwNK%xFIIy=9E z5^v%SBofbC*Oim=i@3hK)tjEEmJ<1ePnRi+giGTj<%-RcC2O4uMb-%SR!fGU%`>+v zMHyEyZXA1Ib%#We?7gP|7*I$DYS&%Xc+I0s4Zv=XhS{J8I#0{}HAC`!_pFsVuVS|k zP=)~b80Mrr^+*(YAuv5J;*vz{H8~U(UB_SiQQ_rm{Asy1^6Y~v5Q1t9#Ga(m-d%Dy ztt|WDGFg)~zRNmm5dJS&zxtgRi54Ya<@jsuy1KCoDMTGrz)Hk$4ZxFF2oE+G^juPO~ zEqNDpzd3k|vVUuP&~!23a`UM|lS!hJ?#kk#UW?N8C4#A}Xrp>x+I}UOBL|=oX5hyWAqoh&G!pvD zx&prSWpFbau!D!LG(*yFY!_mNNZ2pw0g93gXt}PACrA4=)ELc15odmTFlH-d88-&f zQ`?sWvpmBQKNOfYL!As%{=O|95M?;-Tw-69Xkkrv zvIc;ACw)ZRI>^U{ORXd%a^wk@>;`NmNn7{0uLVU`yv-{tTs3Ci+p7UIsR_#^GU`?| z?_@o8J}KUiKXSU+9T%2A-TWMLYnly3W_z!b>L6xtLE3m6l%7R62t8UvX zS(C4GlZbm$J?9TO6U3H7oz63fQ7*z7=ME@@LB8G&emPia^o7Xwt z^mRLeFn?$-R%fRQ78PP9j2BRkHT9}1iM6UGmzR$}c+4n_cOScaF%L6FR%=)}=mAOCy-kSmQ;O7`c$#CG1A!%$8WNe0W0iqaIstH9Ji+m_6qAs4w& z{qy%kV=XEF%V93Jdm{FR;v zzw_n2b@Qj898BTyc%i(oJh8UY(XsWB*R~UgsjpBHaFQP zs?TBq2c@K3_SP;t1C(SQ=B0?y1`*Z)aSy1}_S2KyXdt+B<%HFQKI}}A2IMo2Zuvv) z%nn`pZ*t^yNH`Oqmn;bKALgJOa^yFnSL>fvd!Ijhk3=h%L_Sy)mnl2+N}qfu?1;VW zcT(Mq>qwAb-gZmLg9m)huQjtuko6r+ssHWx#%&Lw_sy1$hWWS>ghLUostoxpWZ4D? zbrcQ`4tR_I8z@T>`zm;LoZ|)Yu-zgs+NW0QPvcVr{fM86jMdWHErbViQ-BY`e1qqk z4`5rM@`X z-v*8WUK-d^92yxCv4wR9UuWFDQ%8f$s|*=Y*ysM=wrDqzME}CV!ljYQ+c4C~>`r7+ z=9_HhuV+y|GP->DZva{T>36i4dfzVi2zs;S6QNvIhBlJy^C&v?x!81eCTT%`Ur)PVi%`{Witk*|-d!eWs~vx21NNNVn$*>mbO z0iqg3oj}`i6{XRD3~%LVv};rGDbSJ;Bf_=RD|fG(rIXH|ntgssJFzD)u6VGO%!=${ zUwrIl2AKl%$NTKYYopL1^A88=4YSR3Xv_U>)nIrr)owGvFYOgzJOQ#_WQA>Inxx;b ziJoPhcG;{Ib#GlZffuZisn7t@K_XF!Z(15kPJB=INqGYJ z)dBUoat#ilfoc2kox%X{nX7H*t^q?P!JkPzK2>;?1(XDWM?SDPnF}GKotjPIAe)#q z?rAAJgt+N}z7p!sG6j3eq24T62ZE+l#QzQHjeZ7@3#qE8|BaQo&Loe@ADBY8(G zX!Q~GIDvvv9Q|?{^)r3hLh>wX!2L^%;eGsb?CTuekHETotPiU-9^BBTG9YB11ul*{ z7L7=NMhrtNn^w^^Sj|$(IjcI~mtl?hyIb<&&2KMhgE?4!bYld($QQW>K|ds%+ehjz z%X6u93P7ir={iF{-OO5}xcEFAiK=1tpAheLa+FM0`uJQu_s=#X2x>XmN6&3<&3AsRHjj;_N4*P1 z5M+e#LC3)=p-a02&xj=UbP`=%^{Nl5lM=X6AH4e}%f?+0skl{zNj zLGa$L2}s|9jlUKTRs3w=U}_f`IJ;;Q^me(bv_kOqOItc?ZiD^W?;vCQs6))J7UH#X ze-F^6XGKO;qq2^CPmL=sF_g@JXNbK3#0h>(O+Tu}%u5Q!#}3PQ;bF<#1|N)dDP)&p zy&IHg-s$?aC-IhUnG=QKrrpVAhb+ARge1Dr#Q6cL&azYIb>l18iGZs9id&Y-8UbhE z8?s8KeSb2`PNx__n`>sYCw;S@4+h@cHDdRGd|lMEsACB@B8+LXcwzUqfg8+9;Q?}w zASQXyCPmODo9*0M9hgbqcZbD2U~vd6tzF8x$EW^MtH2l{-U=}eb#)Y&k8sZ?5l1x4 z_E)<|`mBVJU8D@C_H^Ey5i~nSt7yWZ`gR0=QE98fbubvd$0$aiY5d$&e@3lUO_D@6=6mh zptc>CgzQJv9rOU7it`Pi9(Et=30jK9^aiN|c;03BP?OQDe8iE!+G|1XX8)>8n+)`9I+30XQRtqr0ZS;<4 zNE5P4yB5?dAB5v7TwpZk6gE!2w=Cp1A(AdYP0OuXP%-&+_?||2V!@H&eW1WkfnAM^ z*~14?N5~Hc=TiZ^P`LFM1)mg(1&$R{Hu`6s`oFLSAXDLKJ_bL>J4Eb*6^nnu4WD59_hJQc!}z{-KioJvf{kS~*K~7QO&u%wwH&9v8c3-;KPVi< zfvq$Qkto2PpRhs7h^W@7ONx0|woD#q8-sl< z3}1BK=_uQg^&al4RUcAW(O-p?ZU_-UXW1t@yq4C)QZG{6GNo10E@;V zlNugd+M3MK9v**BL(N6X#_G(9^nG1sr>XWdYPlDt;|dH`k0(E! zh&Z=Acf+y>{ydtU2Jk_?ZX={WW$t)m96LRc3q%|Ods0K|v)mB?b9!mj#p zIY+}!C;U8EM>7xnQK-z>azPZg7N+%lUo|PsiuW}uBHH&@?fnd%rpG?N)oV1!Dd4i@ zmhv)TLv{XnQpPt3B$kJes_b-#9vnZ}ZeE=5D19Nx$TIAtJ;LYi%MFfV_<8Iadkw<` zCu=ELeE)rN?aoPU$rc)l{t3B&na%8qB0)uQ>*WsgdEn-~_K!byNEIkEVLlLvh+)(~s6dCMLIZHa{JGdmxT8mB$ZLpm1nQb=-F09cGpmNv%`4YukesQ)(hM++Akv!vHLg^gm=v7olc8%j1qc^A>h>{z<#8 z2gi62l&Xs@ydL3K-Fsa+ z%CxGStp>;qaOM%6VU5sKIJ0OY`B5@AvyT5E9ZXPI8+V2x~LQ znu9DbWoDqj(Dhh{AaaoBW?6C$DN60E@~1i^et2r`YWFnqwE34wuz5edsfx(wWLL3zX-2tkTxh4}{ipi)-0MK@{&C(nlEt(uWxL!(xiw0%4WbR!UOjm?Z!dRhLJ9DJ#t^IU zvE11x;Zb)mx$htEY7OH|RLUFYai=>CR9ydUuQ$`a%G&V2f9l*Abpqb&YLCC=XyDbp zcw?EEv*lHlu>BpprSwZBveO-YS>k%^YE+Ed3tSbWQN~)SLgLNe);?AtEBv^jb%=v5 zo*FOaa>^a4OnetsV@g;p;F$+bQY1#vG3m5%-LzRCy~h*i@_gXSudQ|bwVQYMnCX7e znKNhUmF1-Gyj^jqjaNh#OTog&4`XI6=ljNdb#`I*s*RetRA#2zG7i<8O>cI=v{2_+ z5&$($Hv7~{oPZm(?}Mv*NMTSWeY=RyiKi>$(@-SZfb;fGumRObEYj)}*fs(qY!=uW z7GGiKH$duuIL*RtjqdhqyXN{H&j4xWDwiamMLVUBI%EWJgC1HsrQa9&v}lN zSZL>nFW8|bM;7dGzaWa&AC>AxY^M0%?a*?8%q&JZx~1yqNEEvQjd4LTSn%KGyyC%c z>R7C&seL=r{tvau7!6Kbs!c@Lzzk(X<=a;l5mIVoHQktatraC)$=LQn@ z5k75SZVb|^@QCc+XGPSm>)AnnE6I0`uRWHM++OX@Tux>%sxVz=xgi^aS9{Y5Gn8yV z*cCSR5h!Inae_jIg(ZtlgiYbI65-;n9T7%(henvXo*nWcs$Bp%i4jm;yw?i09SN0j z1(1D9;OAhFkdVMwQN();eVNL})N4)`k1Bj=+^yg=9+SHDqj}aFBee@J(}s_Y?c*4e zA1Wc6zh2{OWw-Y&(DEyg;h)*8f&Cecxc4mjQho(U6Zvi($cvfQa-tV-2K>OzyIxyQPtY;E~k{FvXv|K2wufqlGIyHLBbH~6fS9cC>@Yt6op z_^?@`TuP$Lc9TUQd%Df&wngO6cg@;uOpgwyVSXS6Mf*4m(xSUTtU?XE^Y(y zE_hrYcK5-S2fxV=)s!bE743(aALE$k2p-TgxZto)T3&urbcTIgw{+$aS`xjMrCw75 zLH$heXx;!<4-E-oZ0x*XeQ|ZotF#xr=Jum+Ix-SxT)uq|PnmHYlEWdfM3Ckyt)>27g!g<<7I+HwSJ|;K+R^H3$9hfMz!9%mWu9g`-1UZMG(s7QJwPxRRBmsu{ z{H>lKt^9oy>J`_ygyMm6 z6FTe_kegjjfNBArqFtyy{O=;=zkl%mRX7&;p#P7Pwg12R$5r_S*E~+vWb3_zUz{VUHK;7SvAMBHCK=Xj zSiciqVmGv{R7()rl=C3kNHI}qWu^atZGGri!*MG2KVk%TA}Mhl_p#+z^@eGx6A2SO zwr`=k63g`Tw0mRspv}?HaddEK)BiPj{rvUGLY|U0AFuU)_xo7VZ`Utvd!B58OxWyr zq6!(wgOGB^ED>jV4xxD1@t>K2;s5{pllQD(U;v&p53DMg8MHI^Z#s~ASraJ2;OXk; Jvd$@?2>>7zqt5^U diff --git a/docs/presentations/assets/png/developer-experience-01b-scope-boundary.png b/docs/presentations/assets/png/developer-experience-01b-scope-boundary.png new file mode 100644 index 0000000000000000000000000000000000000000..ca26e432c6aea78caa6a4027fcc9d8de67a9399b GIT binary patch literal 44258 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 literal 0 HcmV?d00001 diff --git a/docs/presentations/assets/png/developer-experience-04-promotion-journey.png b/docs/presentations/assets/png/developer-experience-04-promotion-journey.png new file mode 100644 index 0000000000000000000000000000000000000000..152b2f9e07fb18cbdac4d97db62a79a861445f20 GIT binary patch literal 52337 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

  • !`w;xrKX@jLY^s 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 literal 0 HcmV?d00001 diff --git a/docs/presentations/assets/png/platform-works-03-scope-boundary.png b/docs/presentations/assets/png/platform-works-03-scope-boundary.png new file mode 100644 index 0000000000000000000000000000000000000000..218fe6d945ba21caa62ce09b562eb6ddf7f99d0e GIT binary patch literal 36483 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 literal 0 HcmV?d00001 diff --git a/docs/presentations/assets/png/road-to-north-star.png b/docs/presentations/assets/png/road-to-north-star.png new file mode 100644 index 0000000000000000000000000000000000000000..e1434241c6fa697144b057fbcba18ef0c0ac0a93 GIT binary patch literal 59353 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 beat: Here's the problem we're solving and where we're going. + Four frictions slow every team: - **Cognitive load** — authoring infrastructure correctly; the long tail of services inconsistent in security and observability @@ -56,6 +59,17 @@ Four frictions slow every team: - A merged change progresses **without a platform engineer joining a thread or approving a ticket** - A **non-technical consumer** ships by declaring intent — no workflow, no config file, no infrastructure module - Every production change is **traceable to a human attestation and an immutable evidence stream** + +--- + +# Where ACDL Sits in Your World + +Story beat: Now that we know the problem, here's where ACDL fits — and where it doesn't. + +![w:1100](assets/png/platform-works-03-scope-boundary.png) + +- **Upstream is anything** — your IDE, an agentic SDLC, or a citizen developer vibe coding on a laptop. ACDL doesn't care how the contract was produced. +- **ACDL is infrastructure only** — it provisions and governs AWS resources. It does not build, test, or deploy your application code. That's upstream. - **Not a general-purpose AI** — autonomy is narrow, scoped to delivery, bounded by strict policy - **Not a permissive delivery highway** — no escape hatches to bypass the confidence framework @@ -63,19 +77,23 @@ Four frictions slow every team: # The Contract-Driven Model -A single YAML contract is all a consumer writes — **module, environment, inputs**. The platform owns everything else. +Story beat: The contract is the boundary between upstream and ACDL. It's all a consumer writes. + +A single YAML contract — **module, environment, inputs**. The platform owns everything else. ![w:850](assets/png/platform-works-01-contract-driven.png) - **Which module** — a catalog of pre-built, security-reviewed building blocks - **Which environment** — the platform raises the safety bar automatically as sensitivity rises -- **Which inputs** — the handful of values that vary per deployment -- The consumer provides **no AWS account, no VPC, no state backend, no runner key** — the platform owns the blast radius +- **Which inputs** — infrastructure values that vary per deployment (cpu, memory, port, desired_count) +- The consumer provides **no AWS account, no VPC, no state backend** — the platform owns the blast radius --- # The End-to-End Flow +Story beat: Once the contract is written, here's what the platform does with it — every time. + Every deployment runs the same stages, in the same order, with the same checks — no team-specific pipelines, no tribal runbooks. ![w:1100](assets/png/platform-works-02-end-to-end-flow.png) @@ -87,6 +105,8 @@ Every deployment runs the same stages, in the same order, with the same checks # Zero-Trust by Default +Story beat: Before any infrastructure is created, here's how access is scoped. + Consumer repositories hold **no long-lived cloud credentials.** Ever. - **Authentication — OIDC federation.** Each job mints a short-lived token; no credential is stored in the consumer repo or in a runner secret. Testing (GitHub Actions) Planned: all runners @@ -100,25 +120,29 @@ Consumer repositories hold **no long-lived cloud credentials.** Ever. # Safety is Computed, Not Assumed -Every delivery action produces a **measurable, explainable confidence signal** — the platform's certified answer to *"is this safe to proceed?"* Agentic +Story beat: Now let's look at how the platform decides whether a deployment is safe. -- **Six weighted inputs:** policy conformance, validation, freshness, source provenance, history, NFRs +Every delivery action produces a **measurable, explainable confidence signal** — a weighted sum of observable facts, not a black box. Agentic + +![w:1100](assets/png/platform-works-04-confidence-signal.png) + +- **Six weighted inputs** — manually tuned, auditable. If a consumer asks "why 0.62?", the platform answers with a per-input breakdown - **Per-environment thresholds** that rise with sensitivity: | Environment | Threshold | Attester | |---|---|---| -| dev | ≥ 0.50 | No one — autonomous | -| qa | ≥ 0.75 | QA | -| prod | ≥ 0.90 | SRE | -| dr | ≥ 0.95 | SRE + DR drill | +| dev | ≥ 0.50 | No one — autonomous Testing | +| qa | ≥ 0.75 | QA Planned | +| prod | ≥ 0.90 | SRE Planned | -- **A single critical finding hard-blocks the deployment** — critical findings are not averaged away -- **When the platform halts, it gives a measured reason** — never an opaque debugging exercise +- **A single critical finding hard-blocks** — critical findings are not averaged away --- # Security by Construction +Story beat: Beyond the confidence signal, security defaults are on by construction — not by opt-in. + Security defaults that **do not require a team to opt in.** Checks run on **every** deployment, normalized to a single schema. Testing - **Policy checks** (Checkov, Wiz, Kyverno) — secrets in plaintext, public ingress, IAM wildcards, **required tagging standards** — all run *before* infra is created @@ -130,13 +154,15 @@ Security defaults that **do not require a team to opt in.** Checks run on **ever # Accountability & Audit -Autonomy and accountability are **not in tension** — they apply at different environments. +Story beat: Computed safety handles the gate. But humans still matter — here's how accountability works. -- **Dev is fully autonomous.** The confidence signal (≥ 0.50) is the only gate. Queue-based handoffs are eliminated. Agentic -- **qa, prod, dr require deliberate human attestation** — policy-mandated acts of accountability, not rubber stamps -- **Separation of duties is enforced** — the QA approver **cannot** be the prod approver. The platform **blocks on a match.** Design tested Wiring: planned -- **Every deployment writes a hash-chained evidence event** — tampering breaks the chain. **RPO = 0** — the evidence write is synchronous Testing -- **Every production change is traceable to a human attestation** — the only durable record outside the VCS's audit log +![w:1100](assets/png/platform-works-05-attestation-flow.png) + +- **Dev is fully autonomous.** The confidence signal (≥ 0.50) is the only gate. Testing Agentic +- **qa, prod, dr require human attestation** — the approver reviews the contract, the planned Terraform changes, and the accumulated evidence Planned +- **QA attests to infrastructure readiness, not application code** — the contract, the plan, and the evidence. Application code review is upstream +- **Separation of duties** — the QA approver **cannot** be the prod approver. The platform **blocks on a match.** Planned +- **Every deployment writes a hash-chained evidence event** — tampering breaks the chain. **RPO = 0** Testing --- @@ -145,9 +171,112 @@ Autonomy and accountability are **not in tension** — they apply at different e # Testing vs. Planned +Story beat: Let's be honest about what works today and what's on the roadmap. + + +**11 capabilities testing today** (dev pilot-ready): + +- Contract-driven deploys · Module catalog · Zero-trust OIDC + ABAC +- Security + policy checks before infra creation · Confidence signal gating +- Hash-chained evidence outbox (RPO = 0) · Encryption by default + per-stack CMKs +- Deletion protection + safe decommission · Uptime monitoring +- Platform-managed environments · Engine-agnostic core + VCS-agnostic ingestion + +**9 planned** (production path): + +- HITL wiring for qa/prod/dr · All-runner OIDC · Full regulatory ledger +- Compliance milestone (GDPR, SOX, SOC2, DORA) · Environment self-service +- Dynamic module creation Agentic · Pattern recognition Agentic +- Additional engine adapters · Deeper observability bootstrap + +*Full inventory + phased roadmap in the appendix.* + +--- + + + + +# The Vision Realized + +Story beat: Here's what success looks like when the North Star is reached. + +- **Velocity without sacrificing safety.** Speed is in the ergonomics (a simple contract, a one-line `uses:`); safety is in the gates the consumer cannot bypass. +- **Security, observability, and compliance as platform defaults** — not per-team effort, not post-hoc remediation. +- **Auditability as a byproduct, not a project.** Every production change is traceable to a human attestation and a tamper-evident evidence event. +- **Blast radius contained by design.** Zero-trust OIDC + ABAC means a consumer can only touch its own tagged resources. +- **Infrastructure as a utility, not a craft.** Teams consume infrastructure, they don't maintain it. +- **A path to the citizen developer.** The same safety envelope that serves a senior engineer will serve a non-technical consumer. Agentic + +--- + + + + +# Appendix + +For deep dives — these slides cover details omitted from the main 10. + +**Contents:** + +1. Platform-Managed Environments (detail) +2. Observability Built In (detail) +3. The Road to the North Star (phased roadmap) +4. Testing vs. Planned (full inventory) +5. Glossary + +--- + +# A1 — Platform-Managed Environments + +A consumer provides **no AWS account, no VPC, no subnet, no state backend, no runner key.** The platform owns the blast radius. + +A named environment is a platform-owned bundle of: + +- An AWS account (or a scoped partition of one) +- A network (VPC + subnets) +- A state backend (S3 + DynamoDB for state + locking) +- An IAM role surfaced via ABAC, scoped to the consumer's identity and resource tags + +The consumer selects an environment **by name** in their contract. The platform resolves the name to the underlying resources at run time. **The consumer never sees raw credentials.** + +**Friendly onboarding:** the first run detects no environment and emits a guided prompt (not an opaque failure). Testing Self-service: planned + +--- + +# A2 — Observability Built In + +Monitoring is **a platform default, not a per-team project.** Testing + +- **Uptime monitoring deployed automatically with every stack** — a dedicated monitoring instance is provisioned after any module deploy, in a separate state, with a feature flag to disable +- **Monitored endpoints passed from the deployment's own outputs** — no manual endpoint registration +- **Alert channels:** Microsoft Teams webhook, email, SMS, and GitHub issues +- **The uptime URL is published to the developer** via a PR comment — they don't hunt for it +- **Roadmap:** deeper observability bootstrap (dashboards, runbooks, on-call bindings) as first-class contract fields Planned + +--- + + + + +# A3 — The Road to the North Star + +*Proposed phasing — not formally planned.* + +![w:1100](assets/png/road-to-north-star.png) + +--- + + + + +# A4 — Testing vs. Planned (Full Inventory) + + @@ -156,7 +285,7 @@ li { margin-bottom: 2px; } -**Testing** (works internally, not yet released to consumers) +**Testing** (works internally, dev pilot-ready) - Contract-driven deploys with a versioned reusable workflow - Module catalog (primitives + modules) with validated examples @@ -191,14 +320,16 @@ li { margin-bottom: 2px; } --- - - +# A5 — Glossary -# The Vision Realized - -- **Velocity without sacrificing safety.** Speed is in the ergonomics (a simple contract, a one-line `uses:`); safety is in the gates the consumer cannot bypass. -- **Security, observability, and compliance as platform defaults** — not per-team effort, not post-hoc remediation. Encryption, deletion protection, uptime monitoring, policy checks, and evidence are on by construction. -- **Auditability as a byproduct, not a project.** Every production change is traceable to a human attestation and a tamper-evident evidence event. -- **Blast radius contained by design.** Zero-trust OIDC + ABAC means a consumer can only touch its own tagged resources. -- **Infrastructure as a utility, not a craft.** The platform abstracts compute, networking, and state. Teams consume infrastructure, they don't maintain it. -- **A path to the citizen developer.** The same safety envelope that serves a senior engineer will serve a non-technical consumer — expanding who can ship safely without lowering the bar. Agentic \ No newline at end of file +| Term | Meaning | +|---|---| +| **OIDC** | OpenID Connect — federation protocol for short-lived tokens, no long-lived credentials | +| **ABAC** | Attribute-Based Access Control — access scoped by resource tags + repo identity, not roles | +| **CMK** | Customer-Managed Key — per-stack encryption key, 90-day rotation, no shared keys | +| **CMDB** | Configuration Management Database — validates change requests for decommission | +| **RPO** | Recovery Point Objective — RPO = 0 means evidence is written synchronously, no data loss | +| **HITL** | Human-in-the-Loop — deliberate human attestation required for qa/prod/dr environments | +| **VCS** | Version Control System — the git hosting platform (GitHub, Gitea, GitLab) | +| **NFR** | Non-Functional Requirement — encryption, tagging, observability standards | +| **IR** | Intermediate Representation — the engine-agnostic stack definition between contract and Terraform | \ No newline at end of file diff --git a/docs/presentations/how-the-platform-works.html b/docs/presentations/how-the-platform-works.html index 9a3c21f..60ceed4 100644 --- a/docs/presentations/how-the-platform-works.html +++ b/docs/presentations/how-the-platform-works.html @@ -7,7 +7,7 @@ * @auto-scaling true * @size 16:9 1280px 720px * @size 4:3 960px 720px - */div#\:\$p > svg > foreignObject > section [data-theme=light],div#\:\$p > svg > foreignObject > section{color-scheme:light}div#\:\$p > svg > foreignObject > section [data-theme=dark],div#\:\$p > svg > foreignObject > section:where(.invert){color-scheme:dark}div#\:\$p > svg > foreignObject > section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default);background-color:var(--bgColor-default);font-family:var(--fontStack-sansSerif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji");font-size:16px;line-height:1.5;word-wrap:break-word}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size:16px}div#\:\$p > svg > foreignObject > section a{text-decoration:underline;text-underline-offset:calc(var(--marpit-root-font-size, 1rem) * .2)}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-image:url('data:image/svg+xml;charset=utf-8,')}div#\:\$p > svg > foreignObject > section details,div#\:\$p > svg > foreignObject > section figcaption,div#\:\$p > svg > foreignObject > section figure{display:block}div#\:\$p > svg > foreignObject > section summary{display:list-item}div#\:\$p > svg > foreignObject > section [hidden]{display:none!important}div#\:\$p > svg > foreignObject > section a{background-color:transparent;color:var(--fgColor-accent);text-decoration:none}div#\:\$p > svg > foreignObject > section abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}div#\:\$p > svg > foreignObject > section b,div#\:\$p > svg > foreignObject > section strong{font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section dfn{font-style:italic}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){margin:.67em 0;font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section small{font-size:90%}div#\:\$p > svg > foreignObject > section sub,div#\:\$p > svg > foreignObject > section sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}div#\:\$p > svg > foreignObject > section sub{bottom:-.25em}div#\:\$p > svg > foreignObject > section sup{top:-.5em}div#\:\$p > svg > foreignObject > section img{border-style:none;max-width:100%;box-sizing:content-box}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section kbd,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section samp{font-family:monospace;font-size:1em}div#\:\$p > svg > foreignObject > section figure{margin:1em var(--base-size-40)}div#\:\$p > svg > foreignObject > section hr{box-sizing:content-box;overflow:hidden;background:transparent;height:.25em;padding:0;margin:var(--base-size-24) 0;background-color:var(--borderColor-default);border:0}div#\:\$p > svg > foreignObject > section input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}div#\:\$p > svg > foreignObject > section [type=button],div#\:\$p > svg > foreignObject > section [type=reset],div#\:\$p > svg > foreignObject > section [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}div#\:\$p > svg > foreignObject > section [type=checkbox],div#\:\$p > svg > foreignObject > section [type=radio]{box-sizing:border-box;padding:0}div#\:\$p > svg > foreignObject > section [type=number]::-webkit-inner-spin-button,div#\:\$p > svg > foreignObject > section [type=number]::-webkit-outer-spin-button{height:auto}div#\:\$p > svg > foreignObject > section [type=search]::-webkit-search-cancel-button,div#\:\$p > svg > foreignObject > section [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}div#\:\$p > svg > foreignObject > section ::-webkit-input-placeholder{color:inherit;opacity:.54}div#\:\$p > svg > foreignObject > section ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}div#\:\$p > svg > foreignObject > section a:hover{text-decoration:underline}div#\:\$p > svg > foreignObject > section ::-moz-placeholder{color:var(--fgColor-muted);opacity:1}div#\:\$p > svg > foreignObject > section ::placeholder{color:var(--fgColor-muted);opacity:1}div#\:\$p > svg > foreignObject > section hr:after,div#\:\$p > svg > foreignObject > section hr:before{display:table;content:""}div#\:\$p > svg > foreignObject > section hr:after{clear:both}div#\:\$p > svg > foreignObject > section table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}div#\:\$p > svg > foreignObject > section td,div#\:\$p > svg > foreignObject > section th{padding:0}div#\:\$p > svg > foreignObject > section details summary{cursor:pointer}div#\:\$p > svg > foreignObject > section [role=button]:focus,div#\:\$p > svg > foreignObject > section a:focus,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus,div#\:\$p > svg > foreignObject > section input[type=radio]:focus{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}div#\:\$p > svg > foreignObject > section [role=button]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section a:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}div#\:\$p > svg > foreignObject > section [role=button]:focus-visible,div#\:\$p > svg > foreignObject > section a:focus-visible,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus-visible,div#\:\$p > svg > foreignObject > section input[type=radio]:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}div#\:\$p > svg > foreignObject > section a:not([class]):focus,div#\:\$p > svg > foreignObject > section a:not([class]):focus-visible,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus-visible,div#\:\$p > svg > foreignObject > section input[type=radio]:focus,div#\:\$p > svg > foreignObject > section input[type=radio]:focus-visible{outline-offset:0}div#\:\$p > svg > foreignObject > section kbd{display:inline-block;padding:var(--base-size-4);font:11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);line-height:10px;color:var(--fgColor-default);vertical-align:middle;background-color:var(--bgColor-muted);border-bottom-color:var(--borderColor-neutral-muted);border:1px solid var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted)}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){margin-top:var(--base-size-24);margin-bottom:var(--base-size-16);font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-size:1.25em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4){font-size:1em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-size:.875em}div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){font-weight:var(--base-text-weight-semibold, 600);font-size:.85em;color:var(--fgColor-muted)}div#\:\$p > svg > foreignObject > section p{margin-top:0;margin-bottom:10px}div#\:\$p > svg > foreignObject > section blockquote{margin:0;padding:0 1em;color:var(--fgColor-muted);border-left:.25em solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section ol,div#\:\$p > svg > foreignObject > section ul{margin-top:0;margin-bottom:0;padding-left:2em}div#\:\$p > svg > foreignObject > section ol ol,div#\:\$p > svg > foreignObject > section ul ol{list-style-type:lower-roman}div#\:\$p > svg > foreignObject > section ol ol ol,div#\:\$p > svg > foreignObject > section ol ul ol,div#\:\$p > svg > foreignObject > section ul ol ol,div#\:\$p > svg > foreignObject > section ul ul ol{list-style-type:lower-alpha}div#\:\$p > svg > foreignObject > section dd{margin-left:0}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section samp,div#\:\$p > svg > foreignObject > section tt{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){margin-top:0;margin-bottom:0;word-wrap:normal}div#\:\$p > svg > foreignObject > section .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}div#\:\$p > svg > foreignObject > section input::-webkit-inner-spin-button,div#\:\$p > svg > foreignObject > section input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}div#\:\$p > svg > foreignObject > section .mr-2{margin-right:var(--base-size-8, 8px)!important}div#\:\$p > svg > foreignObject > section:after,div#\:\$p > svg > foreignObject > section:before{display:table}div#\:\$p > svg > foreignObject > section:after{clear:both}div#\:\$p > svg > foreignObject > section>:first-child{margin-top:0!important}div#\:\$p > svg > foreignObject > section>:last-child{margin-bottom:0!important}div#\:\$p > svg > foreignObject > section a:not([href]){color:inherit;text-decoration:none}div#\:\$p > svg > foreignObject > section .absent{color:var(--fgColor-danger)}div#\:\$p > svg > foreignObject > section .anchor{float:left;padding-right:var(--base-size-4);margin-left:-20px;line-height:1}div#\:\$p > svg > foreignObject > section .anchor:focus{outline:none}div#\:\$p > svg > foreignObject > section blockquote,div#\:\$p > svg > foreignObject > section details,div#\:\$p > svg > foreignObject > section dl,div#\:\$p > svg > foreignObject > section ol,div#\:\$p > svg > foreignObject > section p,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section table,div#\:\$p > svg > foreignObject > section ul{margin-top:0;margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section blockquote>:first-child{margin-top:0}div#\:\$p > svg > foreignObject > section blockquote>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor{text-decoration:none}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor .octicon-link{visibility:visible}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) code,div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) tt,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) code,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) tt,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) code,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) tt,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) code,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) tt,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) code,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) tt,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) code,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) tt{padding:0 .2em;font-size:inherit}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section summary :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section summary :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section summary :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section summary :is(h6, marp-h6){display:inline-block}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h3, marp-h3) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h4, marp-h4) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h5, marp-h5) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h6, marp-h6) .anchor{margin-left:-40px}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2){padding-bottom:0;border-bottom:0}div#\:\$p > svg > foreignObject > section ol.no-list,div#\:\$p > svg > foreignObject > section ul.no-list{padding:0;list-style-type:none}div#\:\$p > svg > foreignObject > section ol[type="a s"]{list-style-type:lower-alpha}div#\:\$p > svg > foreignObject > section ol[type="A s"]{list-style-type:upper-alpha}div#\:\$p > svg > foreignObject > section ol[type="i s"]{list-style-type:lower-roman}div#\:\$p > svg > foreignObject > section ol[type="I s"]{list-style-type:upper-roman}div#\:\$p > svg > foreignObject > section div>ol:not([type]),div#\:\$p > svg > foreignObject > section ol[type="1"]{list-style-type:decimal}div#\:\$p > svg > foreignObject > section ol ol,div#\:\$p > svg > foreignObject > section ol ul,div#\:\$p > svg > foreignObject > section ul ol,div#\:\$p > svg > foreignObject > section ul ul{margin-top:0;margin-bottom:0}div#\:\$p > svg > foreignObject > section li>p{margin-top:var(--base-size-16)}div#\:\$p > svg > foreignObject > section li+li{margin-top:.25em}div#\:\$p > svg > foreignObject > section dl{padding:0}div#\:\$p > svg > foreignObject > section dl dt{padding:0;margin-top:var(--base-size-16);font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section dl dd{padding:0 var(--base-size-16);margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section table th{font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section table td,div#\:\$p > svg > foreignObject > section table th{padding:6px 13px;border:1px solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section table td>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section table tr:nth-child(2n){background-color:var(--bgColor-muted)}div#\:\$p > svg > foreignObject > section table img{background-color:transparent}div#\:\$p > svg > foreignObject > section img[align=right]{padding-left:20px}div#\:\$p > svg > foreignObject > section img[align=left]{padding-right:20px}div#\:\$p > svg > foreignObject > section .emoji{max-width:none;vertical-align:text-top;background-color:transparent}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame,div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame>:is(span, marp-span){display:block;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame>:is(span, marp-span){float:left;width:auto;padding:7px;margin:13px 0 0;border:1px solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame :is(span, marp-span) img{display:block;float:left}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame :is(span, marp-span) :is(span, marp-span){display:block;padding:5px 0 0;clear:both;color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center{display:block;overflow:hidden;clear:both}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center>:is(span, marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:center}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center :is(span, marp-span) img{margin:0 auto;text-align:center}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right{display:block;overflow:hidden;clear:both}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right>:is(span, marp-span){display:block;margin:13px 0 0;overflow:hidden;text-align:right}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right :is(span, marp-span) img{margin:0;text-align:right}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-left{display:block;float:left;margin-right:13px;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-left :is(span, marp-span){margin:13px 0 0}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-right{display:block;float:right;margin-left:13px;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-right>:is(span, marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:right}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--bgColor-neutral-muted);border-radius:6px}div#\:\$p > svg > foreignObject > section code br,div#\:\$p > svg > foreignObject > section tt br{display:none}div#\:\$p > svg > foreignObject > section del code{text-decoration:inherit}div#\:\$p > svg > foreignObject > section samp{font-size:85%}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) code{font-size:100%}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre)>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}div#\:\$p > svg > foreignObject > section .highlight{margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .highlight :is(pre, marp-pre){margin-bottom:0;word-break:normal}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){padding:var(--base-size-16);overflow:auto;font-size:85%;line-height:1.45;color:var(--fgColor-default);background-color:var(--bgColor-muted);border-radius:6px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) code,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) tt{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}div#\:\$p > svg > foreignObject > section .csv-data td,div#\:\$p > svg > foreignObject > section .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}div#\:\$p > svg > foreignObject > section .csv-data .blob-num{padding:10px var(--base-size-8) 9px;text-align:right;background:var(--bgColor-default);border:0}div#\:\$p > svg > foreignObject > section .csv-data tr{border-top:0}div#\:\$p > svg > foreignObject > section .csv-data th{font-weight:var(--base-text-weight-semibold, 600);background:var(--bgColor-muted);border-top:0}div#\:\$p > svg > foreignObject > section [data-footnote-ref]:before{content:"["}div#\:\$p > svg > foreignObject > section [data-footnote-ref]:after{content:"]"}div#\:\$p > svg > foreignObject > section .footnotes{font-size:12px;color:var(--fgColor-muted);border-top:1px solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section div#\:\$p > svg > foreignObject > section section.footnotes{--marpit-root-font-size:12px}div#\:\$p > svg > foreignObject > section .footnotes ol,div#\:\$p > svg > foreignObject > section .footnotes ol ul{padding-left:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .footnotes ol ul{display:inline-block;margin-top:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .footnotes li{position:relative}div#\:\$p > svg > foreignObject > section .footnotes li:target:before{position:absolute;top:calc(var(--base-size-8)*-1);right:calc(var(--base-size-8)*-1);bottom:calc(var(--base-size-8)*-1);left:calc(var(--base-size-24)*-1);pointer-events:none;content:"";border:2px solid var(--borderColor-accent-emphasis);border-radius:6px}div#\:\$p > svg > foreignObject > section .footnotes li:target{color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section .footnotes .data-footnote-backref g-emoji{font-family:monospace}div#\:\$p > svg > foreignObject > section .pl-c{color:var(--color-prettylights-syntax-comment)}div#\:\$p > svg > foreignObject > section .pl-c1,div#\:\$p > svg > foreignObject > section .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}div#\:\$p > svg > foreignObject > section .pl-e,div#\:\$p > svg > foreignObject > section .pl-en{color:var(--color-prettylights-syntax-entity)}div#\:\$p > svg > foreignObject > section .pl-s .pl-s1,div#\:\$p > svg > foreignObject > section .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p > svg > foreignObject > section .pl-k{color:var(--color-prettylights-syntax-keyword)}div#\:\$p > svg > foreignObject > section .pl-pds,div#\:\$p > svg > foreignObject > section .pl-s,div#\:\$p > svg > foreignObject > section .pl-s .pl-pse .pl-s1,div#\:\$p > svg > foreignObject > section .pl-sr,div#\:\$p > svg > foreignObject > section .pl-sr .pl-cce,div#\:\$p > svg > foreignObject > section .pl-sr .pl-sra,div#\:\$p > svg > foreignObject > section .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}div#\:\$p > svg > foreignObject > section .pl-smw,div#\:\$p > svg > foreignObject > section .pl-v{color:var(--color-prettylights-syntax-variable)}div#\:\$p > svg > foreignObject > section .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}div#\:\$p > svg > foreignObject > section .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}div#\:\$p > svg > foreignObject > section .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}div#\:\$p > svg > foreignObject > section .pl-sr .pl-cce{font-weight:700;color:var(--color-prettylights-syntax-string-regexp)}div#\:\$p > svg > foreignObject > section .pl-ml{color:var(--color-prettylights-syntax-markup-list)}div#\:\$p > svg > foreignObject > section .pl-mh,div#\:\$p > svg > foreignObject > section .pl-mh .pl-en,div#\:\$p > svg > foreignObject > section .pl-ms{font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}div#\:\$p > svg > foreignObject > section .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}div#\:\$p > svg > foreignObject > section .pl-mb{font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}div#\:\$p > svg > foreignObject > section .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}div#\:\$p > svg > foreignObject > section .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}div#\:\$p > svg > foreignObject > section .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}div#\:\$p > svg > foreignObject > section .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}div#\:\$p > svg > foreignObject > section .pl-mdr{font-weight:700;color:var(--color-prettylights-syntax-meta-diff-range)}div#\:\$p > svg > foreignObject > section .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}div#\:\$p > svg > foreignObject > section .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}div#\:\$p > svg > foreignObject > section .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}div#\:\$p > svg > foreignObject > section [role=button]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section a:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section button:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section summary:focus:not(:focus-visible){outline:none;box-shadow:none}div#\:\$p > svg > foreignObject > section [tabindex="0"]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section details-dialog:focus:not(:focus-visible){outline:none}div#\:\$p > svg > foreignObject > section g-emoji{display:inline-block;min-width:1ch;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal, 400);line-height:1;vertical-align:-.075em}div#\:\$p > svg > foreignObject > section g-emoji img{width:1em;height:1em}div#\:\$p > svg > foreignObject > section a:has(>p,>div,>:is(pre, marp-pre),>blockquote){display:block}div#\:\$p > svg > foreignObject > section a:has(>p,>div,>:is(pre, marp-pre),>blockquote):not(:has(.snippet-clipboard-content,>:is(pre, marp-pre))){width:-moz-fit-content;width:fit-content}div#\:\$p > svg > foreignObject > section a:has(>p,>div,>:is(pre, marp-pre),>blockquote):has(.snippet-clipboard-content,>:is(pre, marp-pre)):focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:2px}div#\:\$p > svg > foreignObject > section .task-list-item{list-style-type:none}div#\:\$p > svg > foreignObject > section .task-list-item label{font-weight:var(--base-text-weight-normal, 400)}div#\:\$p > svg > foreignObject > section .task-list-item.enabled label{cursor:pointer}div#\:\$p > svg > foreignObject > section .task-list-item+.task-list-item{margin-top:var(--base-size-4)}div#\:\$p > svg > foreignObject > section .task-list-item .handle{display:none}div#\:\$p > svg > foreignObject > section .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}div#\:\$p > svg > foreignObject > section ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p > svg > foreignObject > section ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p > svg > foreignObject > section .contains-task-list:focus-within .task-list-item-convert-container,div#\:\$p > svg > foreignObject > section .contains-task-list:hover .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip-path:none}div#\:\$p > svg > foreignObject > section ::-webkit-calendar-picker-indicator{filter:invert(50%)}div#\:\$p > svg > foreignObject > section .markdown-alert{padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-16);color:inherit;border-left:.25em solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section .markdown-alert>:first-child{margin-top:0}div#\:\$p > svg > foreignObject > section .markdown-alert>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section .markdown-alert .markdown-alert-title{display:flex;font-weight:var(--base-text-weight-medium, 500);align-items:center;line-height:1}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}div#\:\$p > svg > foreignObject > section>:first-child>.heading-element:first-child{margin-top:0!important}div#\:\$p > svg > foreignObject > section .highlight :is(pre, marp-pre):has(+.zeroclipboard-container){min-height:52px}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){color:var(--h1-color);font-size:1.6em}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){border-bottom:none}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){font-size:1.3em}div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-size:1.1em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4){font-size:1.05em}div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-size:1em}div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){font-size:.9em}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) strong,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) strong,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) strong,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) strong,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) strong,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) strong{font-weight:inherit;color:var(--heading-strong-color)}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h4, marp-h4)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h6, marp-h6)::part(auto-scaling){max-height:563px}div#\:\$p > svg > foreignObject > section hr{height:0;padding-top:.25em}div#\:\$p > svg > foreignObject > section img{background-color:transparent}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){border:1px solid var(--borderColor-default);line-height:1.15;overflow:visible}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre)::part(auto-scaling){max-height:529px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-doctag),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-keyword),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta .hljs-keyword),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-template-tag),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-template-variable),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-type),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-variable.language_){color:var(--color-prettylights-syntax-keyword)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.class_),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.class_.inherited__),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.function_){color:var(--color-prettylights-syntax-entity)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-attr),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-attribute),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-literal),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-number),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-operator),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-attr),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-class),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-id),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-variable){color:var(--color-prettylights-syntax-constant)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta .hljs-string),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-regexp),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-string){color:var(--color-prettylights-syntax-string)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-built_in),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-symbol){color:var(--color-prettylights-syntax-variable)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-code),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-comment),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-formula){color:var(--color-prettylights-syntax-comment)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-name),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-quote),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-pseudo),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-tag){color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-subst){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-section){font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-bullet){color:var(--color-prettylights-syntax-markup-list)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-emphasis){font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-strong){font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-addition){color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-deletion){color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}div#\:\$p > svg > foreignObject > section footer,div#\:\$p > svg > foreignObject > section header{margin:0;position:absolute;left:30px;color:var(--header-footer-color);font-size:18px}div#\:\$p > svg > foreignObject > section header{top:21px}div#\:\$p > svg > foreignObject > section footer{bottom:21px}div#\:\$p > svg > foreignObject > section{--h1-color:light-dark(#246, #cee7ff);--header-footer-color:light-dark(hsla(0,0%,40%,.75), hsla(0,0%,60%,.75));--heading-strong-color:light-dark(#48c, #7bf);--paginate-color:light-dark(#777, #999);--base-size-4:4px;--base-size-8:8px;--base-size-16:16px;--base-size-24:24px;--base-size-40:40px;display:block;font-size:29px;height:720px;padding:78.5px;place-content:safe center center;width:1280px;flex-flow:column nowrap;align-items:stretch}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size:29px}div#\:\$p > svg > foreignObject > section>:last-child,div#\:\$p > svg > foreignObject > section[data-footer]>:nth-last-child(2){margin-bottom:0}div#\:\$p > svg > foreignObject > section>:first-child,div#\:\$p > svg > foreignObject > section>header:first-child+*{margin-top:0}div#\:\$p > svg > foreignObject > section:after{position:absolute;padding:0;right:30px;bottom:21px;font-size:24px;color:var(--paginate-color)}div#\:\$p > svg > foreignObject > section:after{--marpit-root-font-size:24px}div#\:\$p > svg > foreignObject > section[data-color] :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section[data-color] :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section[data-color] :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section[data-color] :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section[data-color] :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section[data-color] :is(h6, marp-h6){color:currentcolor}div#\:\$p > svg > foreignObject > section{font-family:"Akkurat Pro", "Helvetica Neue", "Arial", sans-serif;font-size:22px;color:#1B1B1B}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size: 22px}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){color:#D6002A;font-size:34px;margin-bottom:0.3em}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){color:#D6002A;font-size:26px;margin-bottom:0.2em}div#\:\$p > svg > foreignObject > section.title{background:#1B1B1B;color:#fff;border-top:8px solid #D6002A}div#\:\$p > svg > foreignObject > section.title :is(h1, marp-h1){color:#fff}div#\:\$p > svg > foreignObject > section table{font-size:18px;width:100%}div#\:\$p > svg > foreignObject > section th{background:#F0F0F0}div#\:\$p > svg > foreignObject > section blockquote{border-left:4px solid #D6002A;color:#2E2E2E;font-size:20px}div#\:\$p > svg > foreignObject > section img{display:block;margin:0 auto;max-height:320px}div#\:\$p > svg > foreignObject > section .badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:14px;font-weight:600}div#\:\$p > svg > foreignObject > section section.badge{--marpit-root-font-size: 14px}div#\:\$p > svg > foreignObject > section .testing{background:#DBEAFE;color:#1E3A5F}div#\:\$p > svg > foreignObject > section .planned{background:#fef3c7;color:#78350f}div#\:\$p > svg > foreignObject > section .agentic{background:#EDE9FE;color:#4C1D95}div#\:\$p > svg > foreignObject > section.title :is(h1, marp-h1){font-size:44px;margin-bottom:0.1em}div#\:\$p > svg > foreignObject > section.title :is(h3, marp-h3){color:#F0F0F0;font-weight:400;font-size:22px;margin-top:0}div#\:\$p > svg > foreignObject > section{font-size:16px}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size: 16px}div#\:\$p > svg > foreignObject > section td{font-size:15px;vertical-align:top}div#\:\$p > svg > foreignObject > section ul{margin:0;padding-left:1.2em}div#\:\$p > svg > foreignObject > section li{margin-bottom:2px}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]{columns:initial!important;display:block!important;padding:0!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]::before, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]::after, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"]::before, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"]::after{display:none!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction="vertical"]{flex-direction:column}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split] > div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split, 50%)}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split="right"] > div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure > figcaption{position:absolute;border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"], div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="pseudo"]{background:transparent!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="pseudo"], div#\:\$p > svg[data-marpit-svg] > foreignObject[data-marpit-advanced-background="pseudo"]{pointer-events:none!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background-split]{width:100%;height:100%} + */div#\:\$p > svg > foreignObject > section [data-theme=light],div#\:\$p > svg > foreignObject > section{color-scheme:light}div#\:\$p > svg > foreignObject > section [data-theme=dark],div#\:\$p > svg > foreignObject > section:where(.invert){color-scheme:dark}div#\:\$p > svg > foreignObject > section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default);background-color:var(--bgColor-default);font-family:var(--fontStack-sansSerif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji");font-size:16px;line-height:1.5;word-wrap:break-word}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size:16px}div#\:\$p > svg > foreignObject > section a{text-decoration:underline;text-underline-offset:calc(var(--marpit-root-font-size, 1rem) * .2)}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor .octicon-link:before,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-image:url('data:image/svg+xml;charset=utf-8,')}div#\:\$p > svg > foreignObject > section details,div#\:\$p > svg > foreignObject > section figcaption,div#\:\$p > svg > foreignObject > section figure{display:block}div#\:\$p > svg > foreignObject > section summary{display:list-item}div#\:\$p > svg > foreignObject > section [hidden]{display:none!important}div#\:\$p > svg > foreignObject > section a{background-color:transparent;color:var(--fgColor-accent);text-decoration:none}div#\:\$p > svg > foreignObject > section abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}div#\:\$p > svg > foreignObject > section b,div#\:\$p > svg > foreignObject > section strong{font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section dfn{font-style:italic}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){margin:.67em 0;font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section small{font-size:90%}div#\:\$p > svg > foreignObject > section sub,div#\:\$p > svg > foreignObject > section sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}div#\:\$p > svg > foreignObject > section sub{bottom:-.25em}div#\:\$p > svg > foreignObject > section sup{top:-.5em}div#\:\$p > svg > foreignObject > section img{border-style:none;max-width:100%;box-sizing:content-box}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section kbd,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section samp{font-family:monospace;font-size:1em}div#\:\$p > svg > foreignObject > section figure{margin:1em var(--base-size-40)}div#\:\$p > svg > foreignObject > section hr{box-sizing:content-box;overflow:hidden;background:transparent;height:.25em;padding:0;margin:var(--base-size-24) 0;background-color:var(--borderColor-default);border:0}div#\:\$p > svg > foreignObject > section input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}div#\:\$p > svg > foreignObject > section [type=button],div#\:\$p > svg > foreignObject > section [type=reset],div#\:\$p > svg > foreignObject > section [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}div#\:\$p > svg > foreignObject > section [type=checkbox],div#\:\$p > svg > foreignObject > section [type=radio]{box-sizing:border-box;padding:0}div#\:\$p > svg > foreignObject > section [type=number]::-webkit-inner-spin-button,div#\:\$p > svg > foreignObject > section [type=number]::-webkit-outer-spin-button{height:auto}div#\:\$p > svg > foreignObject > section [type=search]::-webkit-search-cancel-button,div#\:\$p > svg > foreignObject > section [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}div#\:\$p > svg > foreignObject > section ::-webkit-input-placeholder{color:inherit;opacity:.54}div#\:\$p > svg > foreignObject > section ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}div#\:\$p > svg > foreignObject > section a:hover{text-decoration:underline}div#\:\$p > svg > foreignObject > section ::-moz-placeholder{color:var(--fgColor-muted);opacity:1}div#\:\$p > svg > foreignObject > section ::placeholder{color:var(--fgColor-muted);opacity:1}div#\:\$p > svg > foreignObject > section hr:after,div#\:\$p > svg > foreignObject > section hr:before{display:table;content:""}div#\:\$p > svg > foreignObject > section hr:after{clear:both}div#\:\$p > svg > foreignObject > section table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}div#\:\$p > svg > foreignObject > section td,div#\:\$p > svg > foreignObject > section th{padding:0}div#\:\$p > svg > foreignObject > section details summary{cursor:pointer}div#\:\$p > svg > foreignObject > section [role=button]:focus,div#\:\$p > svg > foreignObject > section a:focus,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus,div#\:\$p > svg > foreignObject > section input[type=radio]:focus{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}div#\:\$p > svg > foreignObject > section [role=button]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section a:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}div#\:\$p > svg > foreignObject > section [role=button]:focus-visible,div#\:\$p > svg > foreignObject > section a:focus-visible,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus-visible,div#\:\$p > svg > foreignObject > section input[type=radio]:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}div#\:\$p > svg > foreignObject > section a:not([class]):focus,div#\:\$p > svg > foreignObject > section a:not([class]):focus-visible,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus,div#\:\$p > svg > foreignObject > section input[type=checkbox]:focus-visible,div#\:\$p > svg > foreignObject > section input[type=radio]:focus,div#\:\$p > svg > foreignObject > section input[type=radio]:focus-visible{outline-offset:0}div#\:\$p > svg > foreignObject > section kbd{display:inline-block;padding:var(--base-size-4);font:11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);line-height:10px;color:var(--fgColor-default);vertical-align:middle;background-color:var(--bgColor-muted);border-bottom-color:var(--borderColor-neutral-muted);border:1px solid var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted)}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){margin-top:var(--base-size-24);margin-bottom:var(--base-size-16);font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-size:1.25em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4){font-size:1em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-size:.875em}div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){font-weight:var(--base-text-weight-semibold, 600);font-size:.85em;color:var(--fgColor-muted)}div#\:\$p > svg > foreignObject > section p{margin-top:0;margin-bottom:10px}div#\:\$p > svg > foreignObject > section blockquote{margin:0;padding:0 1em;color:var(--fgColor-muted);border-left:.25em solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section ol,div#\:\$p > svg > foreignObject > section ul{margin-top:0;margin-bottom:0;padding-left:2em}div#\:\$p > svg > foreignObject > section ol ol,div#\:\$p > svg > foreignObject > section ul ol{list-style-type:lower-roman}div#\:\$p > svg > foreignObject > section ol ol ol,div#\:\$p > svg > foreignObject > section ol ul ol,div#\:\$p > svg > foreignObject > section ul ol ol,div#\:\$p > svg > foreignObject > section ul ul ol{list-style-type:lower-alpha}div#\:\$p > svg > foreignObject > section dd{margin-left:0}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section samp,div#\:\$p > svg > foreignObject > section tt{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){margin-top:0;margin-bottom:0;word-wrap:normal}div#\:\$p > svg > foreignObject > section .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}div#\:\$p > svg > foreignObject > section input::-webkit-inner-spin-button,div#\:\$p > svg > foreignObject > section input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}div#\:\$p > svg > foreignObject > section .mr-2{margin-right:var(--base-size-8, 8px)!important}div#\:\$p > svg > foreignObject > section:after,div#\:\$p > svg > foreignObject > section:before{display:table}div#\:\$p > svg > foreignObject > section:after{clear:both}div#\:\$p > svg > foreignObject > section>:first-child{margin-top:0!important}div#\:\$p > svg > foreignObject > section>:last-child{margin-bottom:0!important}div#\:\$p > svg > foreignObject > section a:not([href]){color:inherit;text-decoration:none}div#\:\$p > svg > foreignObject > section .absent{color:var(--fgColor-danger)}div#\:\$p > svg > foreignObject > section .anchor{float:left;padding-right:var(--base-size-4);margin-left:-20px;line-height:1}div#\:\$p > svg > foreignObject > section .anchor:focus{outline:none}div#\:\$p > svg > foreignObject > section blockquote,div#\:\$p > svg > foreignObject > section details,div#\:\$p > svg > foreignObject > section dl,div#\:\$p > svg > foreignObject > section ol,div#\:\$p > svg > foreignObject > section p,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre),div#\:\$p > svg > foreignObject > section table,div#\:\$p > svg > foreignObject > section ul{margin-top:0;margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section blockquote>:first-child{margin-top:0}div#\:\$p > svg > foreignObject > section blockquote>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) .octicon-link,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor{text-decoration:none}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5):hover .anchor .octicon-link,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6):hover .anchor .octicon-link{visibility:visible}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) code,div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) tt,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) code,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) tt,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) code,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) tt,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) code,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) tt,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) code,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) tt,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) code,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) tt{padding:0 .2em;font-size:inherit}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section summary :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section summary :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section summary :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section summary :is(h6, marp-h6){display:inline-block}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h3, marp-h3) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h4, marp-h4) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h5, marp-h5) .anchor,div#\:\$p > svg > foreignObject > section summary :is(h6, marp-h6) .anchor{margin-left:-40px}div#\:\$p > svg > foreignObject > section summary :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section summary :is(h2, marp-h2){padding-bottom:0;border-bottom:0}div#\:\$p > svg > foreignObject > section ol.no-list,div#\:\$p > svg > foreignObject > section ul.no-list{padding:0;list-style-type:none}div#\:\$p > svg > foreignObject > section ol[type="a s"]{list-style-type:lower-alpha}div#\:\$p > svg > foreignObject > section ol[type="A s"]{list-style-type:upper-alpha}div#\:\$p > svg > foreignObject > section ol[type="i s"]{list-style-type:lower-roman}div#\:\$p > svg > foreignObject > section ol[type="I s"]{list-style-type:upper-roman}div#\:\$p > svg > foreignObject > section div>ol:not([type]),div#\:\$p > svg > foreignObject > section ol[type="1"]{list-style-type:decimal}div#\:\$p > svg > foreignObject > section ol ol,div#\:\$p > svg > foreignObject > section ol ul,div#\:\$p > svg > foreignObject > section ul ol,div#\:\$p > svg > foreignObject > section ul ul{margin-top:0;margin-bottom:0}div#\:\$p > svg > foreignObject > section li>p{margin-top:var(--base-size-16)}div#\:\$p > svg > foreignObject > section li+li{margin-top:.25em}div#\:\$p > svg > foreignObject > section dl{padding:0}div#\:\$p > svg > foreignObject > section dl dt{padding:0;margin-top:var(--base-size-16);font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section dl dd{padding:0 var(--base-size-16);margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section table th{font-weight:var(--base-text-weight-semibold, 600)}div#\:\$p > svg > foreignObject > section table td,div#\:\$p > svg > foreignObject > section table th{padding:6px 13px;border:1px solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section table td>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}div#\:\$p > svg > foreignObject > section table tr:nth-child(2n){background-color:var(--bgColor-muted)}div#\:\$p > svg > foreignObject > section table img{background-color:transparent}div#\:\$p > svg > foreignObject > section img[align=right]{padding-left:20px}div#\:\$p > svg > foreignObject > section img[align=left]{padding-right:20px}div#\:\$p > svg > foreignObject > section .emoji{max-width:none;vertical-align:text-top;background-color:transparent}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame,div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame>:is(span, marp-span){display:block;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame>:is(span, marp-span){float:left;width:auto;padding:7px;margin:13px 0 0;border:1px solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame :is(span, marp-span) img{display:block;float:left}div#\:\$p > svg > foreignObject > section :is(span, marp-span).frame :is(span, marp-span) :is(span, marp-span){display:block;padding:5px 0 0;clear:both;color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center{display:block;overflow:hidden;clear:both}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center>:is(span, marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:center}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-center :is(span, marp-span) img{margin:0 auto;text-align:center}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right{display:block;overflow:hidden;clear:both}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right>:is(span, marp-span){display:block;margin:13px 0 0;overflow:hidden;text-align:right}div#\:\$p > svg > foreignObject > section :is(span, marp-span).align-right :is(span, marp-span) img{margin:0;text-align:right}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-left{display:block;float:left;margin-right:13px;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-left :is(span, marp-span){margin:13px 0 0}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-right{display:block;float:right;margin-left:13px;overflow:hidden}div#\:\$p > svg > foreignObject > section :is(span, marp-span).float-right>:is(span, marp-span){display:block;margin:13px auto 0;overflow:hidden;text-align:right}div#\:\$p > svg > foreignObject > section code,div#\:\$p > svg > foreignObject > section tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--bgColor-neutral-muted);border-radius:6px}div#\:\$p > svg > foreignObject > section code br,div#\:\$p > svg > foreignObject > section tt br{display:none}div#\:\$p > svg > foreignObject > section del code{text-decoration:inherit}div#\:\$p > svg > foreignObject > section samp{font-size:85%}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) code{font-size:100%}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre)>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}div#\:\$p > svg > foreignObject > section .highlight{margin-bottom:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .highlight :is(pre, marp-pre){margin-bottom:0;word-break:normal}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){padding:var(--base-size-16);overflow:auto;font-size:85%;line-height:1.45;color:var(--fgColor-default);background-color:var(--bgColor-muted);border-radius:6px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) code,div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) tt{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}div#\:\$p > svg > foreignObject > section .csv-data td,div#\:\$p > svg > foreignObject > section .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}div#\:\$p > svg > foreignObject > section .csv-data .blob-num{padding:10px var(--base-size-8) 9px;text-align:right;background:var(--bgColor-default);border:0}div#\:\$p > svg > foreignObject > section .csv-data tr{border-top:0}div#\:\$p > svg > foreignObject > section .csv-data th{font-weight:var(--base-text-weight-semibold, 600);background:var(--bgColor-muted);border-top:0}div#\:\$p > svg > foreignObject > section [data-footnote-ref]:before{content:"["}div#\:\$p > svg > foreignObject > section [data-footnote-ref]:after{content:"]"}div#\:\$p > svg > foreignObject > section .footnotes{font-size:12px;color:var(--fgColor-muted);border-top:1px solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section div#\:\$p > svg > foreignObject > section section.footnotes{--marpit-root-font-size:12px}div#\:\$p > svg > foreignObject > section .footnotes ol,div#\:\$p > svg > foreignObject > section .footnotes ol ul{padding-left:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .footnotes ol ul{display:inline-block;margin-top:var(--base-size-16)}div#\:\$p > svg > foreignObject > section .footnotes li{position:relative}div#\:\$p > svg > foreignObject > section .footnotes li:target:before{position:absolute;top:calc(var(--base-size-8)*-1);right:calc(var(--base-size-8)*-1);bottom:calc(var(--base-size-8)*-1);left:calc(var(--base-size-24)*-1);pointer-events:none;content:"";border:2px solid var(--borderColor-accent-emphasis);border-radius:6px}div#\:\$p > svg > foreignObject > section .footnotes li:target{color:var(--fgColor-default)}div#\:\$p > svg > foreignObject > section .footnotes .data-footnote-backref g-emoji{font-family:monospace}div#\:\$p > svg > foreignObject > section .pl-c{color:var(--color-prettylights-syntax-comment)}div#\:\$p > svg > foreignObject > section .pl-c1,div#\:\$p > svg > foreignObject > section .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}div#\:\$p > svg > foreignObject > section .pl-e,div#\:\$p > svg > foreignObject > section .pl-en{color:var(--color-prettylights-syntax-entity)}div#\:\$p > svg > foreignObject > section .pl-s .pl-s1,div#\:\$p > svg > foreignObject > section .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p > svg > foreignObject > section .pl-k{color:var(--color-prettylights-syntax-keyword)}div#\:\$p > svg > foreignObject > section .pl-pds,div#\:\$p > svg > foreignObject > section .pl-s,div#\:\$p > svg > foreignObject > section .pl-s .pl-pse .pl-s1,div#\:\$p > svg > foreignObject > section .pl-sr,div#\:\$p > svg > foreignObject > section .pl-sr .pl-cce,div#\:\$p > svg > foreignObject > section .pl-sr .pl-sra,div#\:\$p > svg > foreignObject > section .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}div#\:\$p > svg > foreignObject > section .pl-smw,div#\:\$p > svg > foreignObject > section .pl-v{color:var(--color-prettylights-syntax-variable)}div#\:\$p > svg > foreignObject > section .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}div#\:\$p > svg > foreignObject > section .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}div#\:\$p > svg > foreignObject > section .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}div#\:\$p > svg > foreignObject > section .pl-sr .pl-cce{font-weight:700;color:var(--color-prettylights-syntax-string-regexp)}div#\:\$p > svg > foreignObject > section .pl-ml{color:var(--color-prettylights-syntax-markup-list)}div#\:\$p > svg > foreignObject > section .pl-mh,div#\:\$p > svg > foreignObject > section .pl-mh .pl-en,div#\:\$p > svg > foreignObject > section .pl-ms{font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}div#\:\$p > svg > foreignObject > section .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}div#\:\$p > svg > foreignObject > section .pl-mb{font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}div#\:\$p > svg > foreignObject > section .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}div#\:\$p > svg > foreignObject > section .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}div#\:\$p > svg > foreignObject > section .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}div#\:\$p > svg > foreignObject > section .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}div#\:\$p > svg > foreignObject > section .pl-mdr{font-weight:700;color:var(--color-prettylights-syntax-meta-diff-range)}div#\:\$p > svg > foreignObject > section .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}div#\:\$p > svg > foreignObject > section .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}div#\:\$p > svg > foreignObject > section .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}div#\:\$p > svg > foreignObject > section [role=button]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section a:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section button:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section summary:focus:not(:focus-visible){outline:none;box-shadow:none}div#\:\$p > svg > foreignObject > section [tabindex="0"]:focus:not(:focus-visible),div#\:\$p > svg > foreignObject > section details-dialog:focus:not(:focus-visible){outline:none}div#\:\$p > svg > foreignObject > section g-emoji{display:inline-block;min-width:1ch;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal, 400);line-height:1;vertical-align:-.075em}div#\:\$p > svg > foreignObject > section g-emoji img{width:1em;height:1em}div#\:\$p > svg > foreignObject > section a:has(>p,>div,>:is(pre, marp-pre),>blockquote){display:block}div#\:\$p > svg > foreignObject > section a:has(>p,>div,>:is(pre, marp-pre),>blockquote):not(:has(.snippet-clipboard-content,>:is(pre, marp-pre))){width:-moz-fit-content;width:fit-content}div#\:\$p > svg > foreignObject > section a:has(>p,>div,>:is(pre, marp-pre),>blockquote):has(.snippet-clipboard-content,>:is(pre, marp-pre)):focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:2px}div#\:\$p > svg > foreignObject > section .task-list-item{list-style-type:none}div#\:\$p > svg > foreignObject > section .task-list-item label{font-weight:var(--base-text-weight-normal, 400)}div#\:\$p > svg > foreignObject > section .task-list-item.enabled label{cursor:pointer}div#\:\$p > svg > foreignObject > section .task-list-item+.task-list-item{margin-top:var(--base-size-4)}div#\:\$p > svg > foreignObject > section .task-list-item .handle{display:none}div#\:\$p > svg > foreignObject > section .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}div#\:\$p > svg > foreignObject > section ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p > svg > foreignObject > section ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#\:\$p > svg > foreignObject > section .contains-task-list:focus-within .task-list-item-convert-container,div#\:\$p > svg > foreignObject > section .contains-task-list:hover .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip-path:none}div#\:\$p > svg > foreignObject > section ::-webkit-calendar-picker-indicator{filter:invert(50%)}div#\:\$p > svg > foreignObject > section .markdown-alert{padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-16);color:inherit;border-left:.25em solid var(--borderColor-default)}div#\:\$p > svg > foreignObject > section .markdown-alert>:first-child{margin-top:0}div#\:\$p > svg > foreignObject > section .markdown-alert>:last-child{margin-bottom:0}div#\:\$p > svg > foreignObject > section .markdown-alert .markdown-alert-title{display:flex;font-weight:var(--base-text-weight-medium, 500);align-items:center;line-height:1}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}div#\:\$p > svg > foreignObject > section .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}div#\:\$p > svg > foreignObject > section>:first-child>.heading-element:first-child{margin-top:0!important}div#\:\$p > svg > foreignObject > section .highlight :is(pre, marp-pre):has(+.zeroclipboard-container){min-height:52px}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){color:var(--h1-color);font-size:1.6em}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){border-bottom:none}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){font-size:1.3em}div#\:\$p > svg > foreignObject > section :is(h3, marp-h3){font-size:1.1em}div#\:\$p > svg > foreignObject > section :is(h4, marp-h4){font-size:1.05em}div#\:\$p > svg > foreignObject > section :is(h5, marp-h5){font-size:1em}div#\:\$p > svg > foreignObject > section :is(h6, marp-h6){font-size:.9em}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1) strong,div#\:\$p > svg > foreignObject > section :is(h2, marp-h2) strong,div#\:\$p > svg > foreignObject > section :is(h3, marp-h3) strong,div#\:\$p > svg > foreignObject > section :is(h4, marp-h4) strong,div#\:\$p > svg > foreignObject > section :is(h5, marp-h5) strong,div#\:\$p > svg > foreignObject > section :is(h6, marp-h6) strong{font-weight:inherit;color:var(--heading-strong-color)}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h2, marp-h2)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h3, marp-h3)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h4, marp-h4)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h5, marp-h5)::part(auto-scaling),div#\:\$p > svg > foreignObject > section :is(h6, marp-h6)::part(auto-scaling){max-height:563px}div#\:\$p > svg > foreignObject > section hr{height:0;padding-top:.25em}div#\:\$p > svg > foreignObject > section img{background-color:transparent}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre){border:1px solid var(--borderColor-default);line-height:1.15;overflow:visible}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre)::part(auto-scaling){max-height:529px}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-doctag),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-keyword),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta .hljs-keyword),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-template-tag),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-template-variable),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-type),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-variable.language_){color:var(--color-prettylights-syntax-keyword)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.class_),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.class_.inherited__),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-title.function_){color:var(--color-prettylights-syntax-entity)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-attr),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-attribute),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-literal),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-number),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-operator),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-attr),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-class),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-id),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-variable){color:var(--color-prettylights-syntax-constant)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-meta .hljs-string),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-regexp),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-string){color:var(--color-prettylights-syntax-string)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-built_in),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-symbol){color:var(--color-prettylights-syntax-variable)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-code),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-comment),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-formula){color:var(--color-prettylights-syntax-comment)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-name),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-quote),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-pseudo),div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-selector-tag){color:var(--color-prettylights-syntax-entity-tag)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-subst){color:var(--color-prettylights-syntax-storage-modifier-import)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-section){font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-bullet){color:var(--color-prettylights-syntax-markup-list)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-emphasis){font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-strong){font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-addition){color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}div#\:\$p > svg > foreignObject > section :is(pre, marp-pre) :where(.hljs-deletion){color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}div#\:\$p > svg > foreignObject > section footer,div#\:\$p > svg > foreignObject > section header{margin:0;position:absolute;left:30px;color:var(--header-footer-color);font-size:18px}div#\:\$p > svg > foreignObject > section header{top:21px}div#\:\$p > svg > foreignObject > section footer{bottom:21px}div#\:\$p > svg > foreignObject > section{--h1-color:light-dark(#246, #cee7ff);--header-footer-color:light-dark(hsla(0,0%,40%,.75), hsla(0,0%,60%,.75));--heading-strong-color:light-dark(#48c, #7bf);--paginate-color:light-dark(#777, #999);--base-size-4:4px;--base-size-8:8px;--base-size-16:16px;--base-size-24:24px;--base-size-40:40px;display:block;font-size:29px;height:720px;padding:78.5px;place-content:safe center center;width:1280px;flex-flow:column nowrap;align-items:stretch}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size:29px}div#\:\$p > svg > foreignObject > section>:last-child,div#\:\$p > svg > foreignObject > section[data-footer]>:nth-last-child(2){margin-bottom:0}div#\:\$p > svg > foreignObject > section>:first-child,div#\:\$p > svg > foreignObject > section>header:first-child+*{margin-top:0}div#\:\$p > svg > foreignObject > section:after{position:absolute;padding:0;right:30px;bottom:21px;font-size:24px;color:var(--paginate-color)}div#\:\$p > svg > foreignObject > section:after{--marpit-root-font-size:24px}div#\:\$p > svg > foreignObject > section[data-color] :is(h1, marp-h1),div#\:\$p > svg > foreignObject > section[data-color] :is(h2, marp-h2),div#\:\$p > svg > foreignObject > section[data-color] :is(h3, marp-h3),div#\:\$p > svg > foreignObject > section[data-color] :is(h4, marp-h4),div#\:\$p > svg > foreignObject > section[data-color] :is(h5, marp-h5),div#\:\$p > svg > foreignObject > section[data-color] :is(h6, marp-h6){color:currentcolor}div#\:\$p > svg > foreignObject > section{font-family:"Akkurat Pro", "Helvetica Neue", "Arial", sans-serif;font-size:22px;color:#1B1B1B}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size: 22px}div#\:\$p > svg > foreignObject > section :is(h1, marp-h1){color:#D6002A;font-size:34px;margin-bottom:0.3em}div#\:\$p > svg > foreignObject > section :is(h2, marp-h2){color:#D6002A;font-size:26px;margin-bottom:0.2em}div#\:\$p > svg > foreignObject > section.title{background:#1B1B1B;color:#fff;border-top:8px solid #D6002A}div#\:\$p > svg > foreignObject > section.title :is(h1, marp-h1){color:#fff}div#\:\$p > svg > foreignObject > section table{font-size:18px;width:100%}div#\:\$p > svg > foreignObject > section th{background:#F0F0F0}div#\:\$p > svg > foreignObject > section blockquote{border-left:4px solid #D6002A;color:#2E2E2E;font-size:20px}div#\:\$p > svg > foreignObject > section img{display:block;margin:0 auto;max-height:300px}div#\:\$p > svg > foreignObject > section em.story{color:#6B7280;font-size:16px;font-style:italic}div#\:\$p > svg > foreignObject > section .badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:14px;font-weight:600}div#\:\$p > svg > foreignObject > section section.badge{--marpit-root-font-size: 14px}div#\:\$p > svg > foreignObject > section .testing{background:#DBEAFE;color:#1E3A5F}div#\:\$p > svg > foreignObject > section .planned{background:#fef3c7;color:#78350f}div#\:\$p > svg > foreignObject > section .agentic{background:#EDE9FE;color:#4C1D95}div#\:\$p > svg > foreignObject > section.title :is(h1, marp-h1){font-size:44px;margin-bottom:0.1em}div#\:\$p > svg > foreignObject > section.title :is(h3, marp-h3){color:#F0F0F0;font-weight:400;font-size:22px;margin-top:0}div#\:\$p > svg > foreignObject > section{font-size:20px}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size: 20px}div#\:\$p > svg > foreignObject > section{font-size:15px}div#\:\$p > svg > foreignObject > section{--marpit-root-font-size: 15px}div#\:\$p > svg > foreignObject > section td{font-size:14px;vertical-align:top}div#\:\$p > svg > foreignObject > section ul{margin:0;padding-left:1.2em}div#\:\$p > svg > foreignObject > section li{margin-bottom:2px}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]{columns:initial!important;display:block!important;padding:0!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]::before, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"]::after, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"]::before, div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"]::after{display:none!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction="vertical"]{flex-direction:column}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split] > div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split, 50%)}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split="right"] > div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure > figcaption{position:absolute;border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="content"], div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="pseudo"]{background:transparent!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background="pseudo"], div#\:\$p > svg[data-marpit-svg] > foreignObject[data-marpit-advanced-background="pseudo"]{pointer-events:none!important}div#\:\$p > svg > foreignObject > section[data-marpit-advanced-background-split]{width:100%;height:100%}
    +;" data-marpit-pagination-total="17">
    How The Platform Works

    The Problem & The North Star

    +

    Story beat: Here's the problem we're solving and where we're going.

    Four frictions slow every team:

    • Cognitive load — authoring infrastructure correctly; the long tail of services inconsistent in security and observability
    • @@ -112,8 +117,6 @@ img { display: block; margin: 0 auto; max-height: 320px; }
    • A merged change progresses without a platform engineer joining a thread or approving a ticket
    • A non-technical consumer ships by declaring intent — no workflow, no config file, no infrastructure module
    • Every production change is traceable to a human attestation and an immutable evidence stream
    • -
    • Not a general-purpose AI — autonomy is narrow, scoped to delivery, bounded by strict policy
    • -
    • Not a permissive delivery highway — no escape hatches to bypass the confidence framework
    Internal
    @@ -129,7 +132,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -149,7 +153,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -157,16 +162,16 @@ img { display: block; margin: 0 auto; max-height: 320px; } .testing { background: #DBEAFE; color: #1E3A5F; } .planned { background: #fef3c7; color: #78350f; } .agentic { background: #EDE9FE; color: #4C1D95; } -;" data-marpit-pagination-total="10"> +;" data-marpit-pagination-total="17">
    How The Platform Works
    -

    The Contract-Driven Model

    -

    A single YAML contract is all a consumer writes — module, environment, inputs. The platform owns everything else.

    -

    +

    Where ACDL Sits in Your World

    +

    Story beat: Now that we know the problem, here's where ACDL fits — and where it doesn't.

    +

      -
    • Which module — a catalog of pre-built, security-reviewed building blocks
    • -
    • Which environment — the platform raises the safety bar automatically as sensitivity rises
    • -
    • Which inputs — the handful of values that vary per deployment
    • -
    • The consumer provides no AWS account, no VPC, no state backend, no runner key — the platform owns the blast radius
    • +
    • Upstream is anything — your IDE, an agentic SDLC, or a citizen developer vibe coding on a laptop. ACDL doesn't care how the contract was produced.
    • +
    • ACDL is infrastructure only — it provisions and governs AWS resources. It does not build, test, or deploy your application code. That's upstream.
    • +
    • Not a general-purpose AI — autonomy is narrow, scoped to delivery, bounded by strict policy
    • +
    • Not a permissive delivery highway — no escape hatches to bypass the confidence framework
    Internal
    @@ -182,7 +187,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -202,7 +208,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -210,14 +217,17 @@ img { display: block; margin: 0 auto; max-height: 320px; } .testing { background: #DBEAFE; color: #1E3A5F; } .planned { background: #fef3c7; color: #78350f; } .agentic { background: #EDE9FE; color: #4C1D95; } -;" data-marpit-pagination-total="10"> +;" data-marpit-pagination-total="17">
    How The Platform Works
    -

    The End-to-End Flow

    -

    Every deployment runs the same stages, in the same order, with the same checks — no team-specific pipelines, no tribal runbooks.

    -

    +

    The Contract-Driven Model

    +

    Story beat: The contract is the boundary between upstream and ACDL. It's all a consumer writes.

    +

    A single YAML contract — module, environment, inputs. The platform owns everything else.

    +

      -
    • Security and policy checks run before any infrastructure is created
    • -
    • Every stage produces a record that feeds the confidence signal and the evidence stream — there is no "unchecked" path
    • +
    • Which module — a catalog of pre-built, security-reviewed building blocks
    • +
    • Which environment — the platform raises the safety bar automatically as sensitivity rises
    • +
    • Which inputs — infrastructure values that vary per deployment (cpu, memory, port, desired_count)
    • +
    • The consumer provides no AWS account, no VPC, no state backend — the platform owns the blast radius
    Internal
    @@ -233,7 +243,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -253,7 +264,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -261,20 +273,16 @@ img { display: block; margin: 0 auto; max-height: 320px; } .testing { background: #DBEAFE; color: #1E3A5F; } .planned { background: #fef3c7; color: #78350f; } .agentic { background: #EDE9FE; color: #4C1D95; } -;" data-marpit-pagination-total="10"> +;" data-marpit-pagination-total="17">
    How The Platform Works
    -

    Zero-Trust by Default

    -

    Consumer repositories hold no long-lived cloud credentials. Ever.

    +

    The End-to-End Flow

    +

    Story beat: Once the contract is written, here's what the platform does with it — every time.

    +

    Every deployment runs the same stages, in the same order, with the same checks — no team-specific pipelines, no tribal runbooks.

    +

      -
    • Authentication — OIDC federation. Each job mints a short-lived token; no credential is stored in the consumer repo or in a runner secret. Testing (GitHub Actions) Planned: all runners
    • -
    • Authorization — attribute-based (ABAC), not role-based. Two attribute classes scope every action: -
        -
      • Repository identity — the role's trust policy binds to the exact consumer repo + branch
      • -
      • Resource tags — every resource is tagged acdl:owner + acdl:contract; the session policy grants access only to matching tags
      • +
      • Security and policy checks run before any infrastructure is created
      • +
      • Every stage produces a record that feeds the confidence signal and the evidence stream — there is no "unchecked" path
      -
    • -
    -

    The effect: a consumer can only touch the resources it created. Blast radius is contained. One consumer can never affect another.

    Internal
    +;" data-marpit-pagination-total="17">
    How The Platform Works
    -

    Safety is Computed, Not Assumed

    -

    Every delivery action produces a measurable, explainable confidence signal — the platform's certified answer to "is this safe to proceed?" Agentic

    +

    Zero-Trust by Default

    +

    Story beat: Before any infrastructure is created, here's how access is scoped.

    +

    Consumer repositories hold no long-lived cloud credentials. Ever.

      -
    • Six weighted inputs: policy conformance, validation, freshness, source provenance, history, NFRs
    • -
    • Per-environment thresholds that rise with sensitivity:
    • -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EnvironmentThresholdAttester
    dev≥ 0.50No one — autonomous
    qa≥ 0.75QA
    prod≥ 0.90SRE
    dr≥ 0.95SRE + DR drill
    +
  • Authentication — OIDC federation. Each job mints a short-lived token; no credential is stored in the consumer repo or in a runner secret. Testing (GitHub Actions) Planned: all runners
  • +
  • Authorization — attribute-based (ABAC), not role-based. Two attribute classes scope every action:
      -
    • A single critical finding hard-blocks the deployment — critical findings are not averaged away
    • -
    • When the platform halts, it gives a measured reason — never an opaque debugging exercise
    • +
    • Repository identity — the role's trust policy binds to the exact consumer repo + branch
    • +
    • Resource tags — every resource is tagged acdl:owner + acdl:contract; the session policy grants access only to matching tags
    +
  • + +

    The effect: a consumer can only touch the resources it created. Blast radius is contained. One consumer can never affect another.

    Internal
    +;" data-marpit-pagination-total="17">
    How The Platform Works
    -

    Security by Construction

    -

    Security defaults that do not require a team to opt in. Checks run on every deployment, normalized to a single schema. Testing

    +

    Safety is Computed, Not Assumed

    +

    Story beat: Now let's look at how the platform decides whether a deployment is safe.

    +

    Every delivery action produces a measurable, explainable confidence signal — a weighted sum of observable facts, not a black box. Agentic

    +

      -
    • Policy checks (Checkov, Wiz, Kyverno) — secrets in plaintext, public ingress, IAM wildcards, required tagging standards — all run before infra is created
    • -
    • Encryption on every resource — at-rest encryption on by default; per-stack customer-managed keys with 90-day rotation, no shared keys across stacks
    • -
    • Deletion protection on by defaultprevent_destroy on unless explicitly disabled via a documented flag
    • -
    • Safe decommission — a 2-step pipeline with two SRE attestation gates and a change-request validated against the CMDB
    • +
    • Six weighted inputs — manually tuned, auditable. If a consumer asks "why 0.62?", the platform answers with a per-input breakdown
    • +
    • Per-environment thresholds that rise with sensitivity:
    • +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    EnvironmentThresholdAttester
    dev≥ 0.50No one — autonomous Testing
    qa≥ 0.75QA Planned
    prod≥ 0.90SRE Planned
    +
      +
    • A single critical finding hard-blocks — critical findings are not averaged away
    Internal
    @@ -426,7 +439,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -446,7 +460,8 @@ section.title h1 { color: #fff; } table { font-size: 18px; width: 100%; } th { background: #F0F0F0; } blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; } -img { display: block; margin: 0 auto; max-height: 320px; } +img { display: block; margin: 0 auto; max-height: 300px; } +em.story { color: #6B7280; font-size: 16px; font-style: italic; } .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; @@ -454,20 +469,20 @@ img { display: block; margin: 0 auto; max-height: 320px; } .testing { background: #DBEAFE; color: #1E3A5F; } .planned { background: #fef3c7; color: #78350f; } .agentic { background: #EDE9FE; color: #4C1D95; } -;" data-marpit-pagination-total="10"> +;" data-marpit-pagination-total="17">
    How The Platform Works
    -

    Accountability & Audit

    -

    Autonomy and accountability are not in tension — they apply at different environments.

    +

    Security by Construction

    +

    Story beat: Beyond the confidence signal, security defaults are on by construction — not by opt-in.

    +

    Security defaults that do not require a team to opt in. Checks run on every deployment, normalized to a single schema. Testing

      -
    • Dev is fully autonomous. The confidence signal (≥ 0.50) is the only gate. Queue-based handoffs are eliminated. Agentic
    • -
    • qa, prod, dr require deliberate human attestation — policy-mandated acts of accountability, not rubber stamps
    • -
    • Separation of duties is enforced — the QA approver cannot be the prod approver. The platform blocks on a match. Design tested Wiring: planned
    • -
    • Every deployment writes a hash-chained evidence event — tampering breaks the chain. RPO = 0 — the evidence write is synchronous Testing
    • -
    • Every production change is traceable to a human attestation — the only durable record outside the VCS's audit log
    • +
    • Policy checks (Checkov, Wiz, Kyverno) — secrets in plaintext, public ingress, IAM wildcards, required tagging standards — all run before infra is created
    • +
    • Encryption on every resource — at-rest encryption on by default; per-stack customer-managed keys with 90-day rotation, no shared keys across stacks
    • +
    • Deletion protection on by defaultprevent_destroy on unless explicitly disabled via a documented flag
    • +
    • Safe decommission — a 2-step pipeline with two SRE attestation gates and a change-request validated against the CMDB
    Internal
    -
    +
    How The Platform Works
    +

    Accountability & Audit

    +

    Story beat: Computed safety handles the gate. But humans still matter — here's how accountability works.

    +

    +
      +
    • Dev is fully autonomous. The confidence signal (≥ 0.50) is the only gate. Testing Agentic
    • +
    • qa, prod, dr require human attestation — the approver reviews the contract, the planned Terraform changes, and the accumulated evidence Planned
    • +
    • QA attests to infrastructure readiness, not application code — the contract, the plan, and the evidence. Application code review is upstream
    • +
    • Separation of duties — the QA approver cannot be the prod approver. The platform blocks on a match. Planned
    • +
    • Every deployment writes a hash-chained evidence event — tampering breaks the chain. RPO = 0 Testing
    • +
    +
    Internal
    +
    +
    Testing vs. Planned
    +

    Story beat: Let's be honest about what works today and what's on the roadmap.

    + +

    11 capabilities testing today (dev pilot-ready):

    +
      +
    • Contract-driven deploys · Module catalog · Zero-trust OIDC + ABAC
    • +
    • Security + policy checks before infra creation · Confidence signal gating
    • +
    • Hash-chained evidence outbox (RPO = 0) · Encryption by default + per-stack CMKs
    • +
    • Deletion protection + safe decommission · Uptime monitoring
    • +
    • Platform-managed environments · Engine-agnostic core + VCS-agnostic ingestion
    • +
    +

    9 planned (production path):

    +
      +
    • HITL wiring for qa/prod/dr · All-runner OIDC · Full regulatory ledger
    • +
    • Compliance milestone (GDPR, SOX, SOC2, DORA) · Environment self-service
    • +
    • Dynamic module creation Agentic · Pattern recognition Agentic
    • +
    • Additional engine adapters · Deeper observability bootstrap
    • +
    +

    Full inventory + phased roadmap in the appendix.

    +
    Internal
    + +
    +
    How The Platform Works
    + +

    The Vision Realized

    +

    Story beat: Here's what success looks like when the North Star is reached.

    +
      +
    • Velocity without sacrificing safety. Speed is in the ergonomics (a simple contract, a one-line uses:); safety is in the gates the consumer cannot bypass.
    • +
    • Security, observability, and compliance as platform defaults — not per-team effort, not post-hoc remediation.
    • +
    • Auditability as a byproduct, not a project. Every production change is traceable to a human attestation and a tamper-evident evidence event.
    • +
    • Blast radius contained by design. Zero-trust OIDC + ABAC means a consumer can only touch its own tagged resources.
    • +
    • Infrastructure as a utility, not a craft. Teams consume infrastructure, they don't maintain it.
    • +
    • A path to the citizen developer. The same safety envelope that serves a senior engineer will serve a non-technical consumer. Agentic
    • +
    +
    Internal
    +
    +
    +
    How The Platform Works
    + +

    Appendix

    +

    For deep dives — these slides cover details omitted from the main 10.

    +

    Contents:

    +
      +
    1. Platform-Managed Environments (detail)
    2. +
    3. Observability Built In (detail)
    4. +
    5. The Road to the North Star (phased roadmap)
    6. +
    7. Testing vs. Planned (full inventory)
    8. +
    9. Glossary
    10. +
    +
    Internal
    +
    +
    +
    How The Platform Works
    +

    A1 — Platform-Managed Environments

    +

    A consumer provides no AWS account, no VPC, no subnet, no state backend, no runner key. The platform owns the blast radius.

    +

    A named environment is a platform-owned bundle of:

    +
      +
    • An AWS account (or a scoped partition of one)
    • +
    • A network (VPC + subnets)
    • +
    • A state backend (S3 + DynamoDB for state + locking)
    • +
    • An IAM role surfaced via ABAC, scoped to the consumer's identity and resource tags
    • +
    +

    The consumer selects an environment by name in their contract. The platform resolves the name to the underlying resources at run time. The consumer never sees raw credentials.

    +

    Friendly onboarding: the first run detects no environment and emits a guided prompt (not an opaque failure). Testing Self-service: planned

    +
    Internal
    +
    +
    +
    How The Platform Works
    +

    A2 — Observability Built In

    +

    Monitoring is a platform default, not a per-team project. Testing

    +
      +
    • Uptime monitoring deployed automatically with every stack — a dedicated monitoring instance is provisioned after any module deploy, in a separate state, with a feature flag to disable
    • +
    • Monitored endpoints passed from the deployment's own outputs — no manual endpoint registration
    • +
    • Alert channels: Microsoft Teams webhook, email, SMS, and GitHub issues
    • +
    • The uptime URL is published to the developer via a PR comment — they don't hunt for it
    • +
    • Roadmap: deeper observability bootstrap (dashboards, runbooks, on-call bindings) as first-class contract fields Planned
    • +
    +
    Internal
    +
    +
    +
    How The Platform Works
    + +

    A3 — The Road to the North Star

    +

    Proposed phasing — not formally planned.

    +

    +
    Internal
    +
    +
    +
    How The Platform Works
    + +

    A4 — Testing vs. Planned (Full Inventory)

    -

    Testing (works internally, not yet released to consumers)

    +

    Testing (works internally, dev pilot-ready)

    • Contract-driven deploys with a versioned reusable workflow
    • Module catalog (primitives + modules) with validated examples
    • @@ -547,7 +962,7 @@ img { display: block; margin: 0 auto; max-height: 320px; }
    Internal
    -
    +;" data-marpit-pagination-total="17">
    How The Platform Works
    - -

    The Vision Realized

    -
      -
    • Velocity without sacrificing safety. Speed is in the ergonomics (a simple contract, a one-line uses:); safety is in the gates the consumer cannot bypass.
    • -
    • Security, observability, and compliance as platform defaults — not per-team effort, not post-hoc remediation. Encryption, deletion protection, uptime monitoring, policy checks, and evidence are on by construction.
    • -
    • Auditability as a byproduct, not a project. Every production change is traceable to a human attestation and a tamper-evident evidence event.
    • -
    • Blast radius contained by design. Zero-trust OIDC + ABAC means a consumer can only touch its own tagged resources.
    • -
    • Infrastructure as a utility, not a craft. The platform abstracts compute, networking, and state. Teams consume infrastructure, they don't maintain it.
    • -
    • A path to the citizen developer. The same safety envelope that serves a senior engineer will serve a non-technical consumer — expanding who can ship safely without lowering the bar. Agentic
    • -
    +

    A5 — Glossary

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TermMeaning
    OIDCOpenID Connect — federation protocol for short-lived tokens, no long-lived credentials
    ABACAttribute-Based Access Control — access scoped by resource tags + repo identity, not roles
    CMKCustomer-Managed Key — per-stack encryption key, 90-day rotation, no shared keys
    CMDBConfiguration Management Database — validates change requests for decommission
    RPORecovery Point Objective — RPO = 0 means evidence is written synchronously, no data loss
    HITLHuman-in-the-Loop — deliberate human attestation required for qa/prod/dr environments
    VCSVersion Control System — the git hosting platform (GitHub, Gitea, GitLab)
    NFRNon-Functional Requirement — encryption, tagging, observability standards
    IRIntermediate Representation — the engine-agnostic stack definition between contract and Terraform
    Internal
    \ No newline at end of file diff --git a/docs/presentations/the-developer-experience.md b/docs/presentations/the-developer-experience.md index 0f35e14..ce995db 100644 --- a/docs/presentations/the-developer-experience.md +++ b/docs/presentations/the-developer-experience.md @@ -2,45 +2,67 @@ > **Subtitle:** Agentic Cloud Delivery Platform > **Audience:** Senior Leadership, CTO, Head of Cloud, Head of Infrastructure, Head of DevOps -> **Length:** ~15 minutes · 13 slides +> **Length:** ~15 minutes · 10 main + 6 appendix = 16 slides > **Purpose:** Sell the developer experience and the citizen developer experience to tech leadership — velocity without sacrificing safety, and security/observability/compliance as platform defaults rather than per-team effort. -> **Maturity framing:** "Testing" = shipped and verified. "Planned" = on the roadmap, not yet shipped. +> **Maturity framing:** "Testing" = works internally, dev pilot-ready. "Planned" = on the roadmap. "Agentic" = involves AI agents or autonomous decision-making. --- -## Slide 1 — Two Consumer Surfaces, One Platform +## Slide 1 — Title -The platform serves **two kinds of consumer** through two coordinated interfaces — but both converge on the **same contract, the same policy envelope, and the same evidence stream.** +The consumer surface is intentionally tiny. The platform's surface is large and opinionated. + +> **Speaker notes:** Brief introduction — this deck covers *who uses the platform and how fast/safe they ship*, not the internal mechanics (that's the companion deck). Set the frame: velocity without sacrificing safety, and security/observability/compliance as platform defaults rather than per-team effort. + +--- + +## Slide 2 — Where ACDL Sits in Your World + +Story beat: Here's who uses the platform and where the boundary is. + +The platform serves **two kinds of consumer** through two coordinated paths — but both converge on the **same contract, the same policy envelope, and the same evidence stream.** ```mermaid flowchart TD - A["Technical developer"] --> C["Contract YAML"] - B["Citizen developer
    (non-technical)"] --> D["Declares intent in
    natural language"] - D --> E["Agent produces
    the contract"] - C --> F["Same platform:
    resolve → check → plan → policy
    → confidence → evidence → apply"] - E --> F - F --> G["Same safety guarantees,
    same audit trail"] + U1["Anything upstream
    (IDE / agentic SDLC / vibe coding)"] --> T["Technical developer
    writes app + contract"] + U1 --> C["Citizen developer
    declares intent"] + T --> K["Contract YAML"] + C --> AI["An AI agent maps intent
    to a reviewed-skill contract"] + AI --> K + K --> ACDL["ACDL — infrastructure only
    resolve → check → plan → policy
    → confidence → evidence → apply"] + ACDL --> AWS["AWS resources provisioned + governed"] ``` - **Technical developer** — owns app code + a contract + a thin CI definition. Uses the full module catalog and inputs. -- **Citizen developer** — declares intent in plain language; an AI agent produces a contract that passes the **same** safety envelope as a senior engineer's. +- **Citizen developer** — declares intent in plain language; an AI agent produces a contract that passes the **same** safety envelope as a senior engineer's. Agentic +- **Upstream is anything** — your IDE, an agentic SDLC, or vibe coding on a laptop. ACDL doesn't care how the contract was produced. +- **ACDL is infrastructure only** — it provisions and governs AWS resources. Application deployment is upstream. The platform is **opinionated in what it accepts, regardless of who is declaring.** There is no "citizen developer mode" with weaker checks. -> **Speaker notes:** This is the thesis of the deck. The two surfaces are *parallel*, not a progression — a citizen developer doesn't "graduate" to the developer surface. Both produce a contract; both get the same treatment. The leadership takeaway: we expand who can ship safely without lowering the bar. +> **Speaker notes:** This is the thesis of the deck. The two surfaces are *parallel*, not a progression — a citizen developer doesn't "graduate" to the developer surface. Both produce a contract; both get the same treatment. The scope boundary matters: anything upstream of the contract is out of ACDL's concern — ACDL is the infrastructure layer that takes a contract and governs the AWS resources. The leadership takeaway: we expand who can ship safely without lowering the bar. --- -## Slide 2 — What a Developer Actually Does +## Slide 3 — The Contract — The Entire Consumer Surface + +Story beat: Now let's look at what a consumer actually writes — it's tiny. Three things. That is the entire consumer-side surface. -```mermaid -flowchart LR - A["1. App code
    (top level of the repo)"] --> D["Push to main"] - B["2. Contract
    (.acdl/contract.yaml)"] --> D - C["3. CI definition
    (.github/workflows/deploy.yml
    — one 'uses:' line)"] --> D - D --> E["Platform does the rest"] +1. **App code** — the consumer's service, at the top level of the repo +2. **A contract** — a single YAML file: module, environment, inputs +3. **A one-line CI definition** — a thin `uses:` wrapper pointing at a versioned platform workflow + +```yaml +uses: acdl/pipelines/deploy.yaml@v1.6 +module: microservice +environment: dev +inputs: + cpu: 256 + memory: 512 + desired_count: 2 + port: 8080 ``` The developer does **not**: @@ -51,16 +73,196 @@ The developer does **not**: - Hold cloud credentials. - Maintain a state backend, a VPC, or a runner. -> **Speaker notes:** Hold this slide. The audience should sit with how small the consumer surface is. Every item in the "does not" list is a category of toil the platform removes. For the Head of DevOps: this is the lever for throughput — the bottleneck moves off the platform team's ticket queue. +> **Speaker notes:** Hold this slide. The audience should sit with how small the consumer surface is. Every item in the "does not" list is a category of toil the platform removes. The contract is the API — deliberately tiny so that it can be reviewed, validated, and audited. For the Head of DevOps: this is the lever for throughput — the bottleneck moves off the platform team's ticket queue. --- -## Slide 3 — The Citizen Developer Experience +## Slide 4 — The Developer Feedback Loop -A non-technical consumer ships a production deployment **by declaring intent** — without authoring a workflow, a configuration file, or an infrastructure module. +Story beat: Once you push, here's what you see — in real time, in your own logs. + +Developers see **what the platform is doing**, in real time. Testing + +- **Streamed output by default** — the infrastructure plan, policy-check results, and each check record flow to stdout. +- **PR comments after every successful pipeline stage** — a developer always knows where they stand without refreshing a dashboard. +- **Clear, explainable halt reasons** — a policy violation, an insufficient confidence signal, or a missing attestation. **Never an opaque debugging exercise.** +- **Connection strings posted as PR comments** — human-readable, no hunting. Runtime secrets go to encrypted Parameter Store (KMS-encrypted, namespaced), never to logs. +- **Errors become GitHub issues, automatically** — a failed deploy opens an issue on the platform repo. The consumer's only grant is the onboarding-granted Lambda-invoke permission — no separate `issues: write` scope on the consumer side. + +> **Speaker notes:** This directly answers "but developers hate platforms that hide what they're doing." The platform is opinionated about *what* runs, not *opaque* about *that* it runs. The PR-comment-after-each-stage pattern is a small thing that compounds into trust. The "errors become issues" point is a DX win that also helps the platform team — every consumer failure is a tracked, queryable artifact, not a lost log line. The Head of DevOps should hear: the platform closes the feedback loop, it doesn't just push a green/red status. + +--- + +## Slide 5 — Versioned, Predictable Releases + +Story beat: You control when you absorb platform improvements — no surprise upgrades. + +Consumers control **when** they absorb platform improvements. Testing + +- **Floating MAJOR + MINOR tags** (e.g. `@v1.6`) — a consumer automatically receives patch updates within the line. +- **Semantic versioning with a clear contract:** interface → MAJOR, behavior → MINOR, lifecycle → PATCH. +- **A consumer can pin to an exact version** for maximum stability, or float on MAJOR only (`@v1`) to absorb new features on their own cadence. +- **Unversioned references (`@main`, bare) are discouraged** — the versioned tag is the only immutability lever a consumer has. +- **Automated release job** computes the next semver on merge to main, creates the tag, and updates the floating tags. + +> **Speaker notes:** This is the "no surprise upgrades" story. Leadership hears two things: (1) consumers aren't forced to chase the platform, (2) the platform isn't forced to support N forks of every workflow. The versioning discipline is what makes both true. + +--- + +## Slide 6 — Friendly Onboarding + +Story beat: First impressions matter — the platform fails gracefully, not opaquely. + +First impressions of a platform are made **when it fails for the first time.** The platform fails gracefully. Testing + +When no environment is bound, the platform emits a **user-friendly onboarding prompt** instead of failing opaquely. The prompt tells the consumer: + +1. That no environment is bound to their repo yet. +2. What the platform will provision on their behalf (account, network, state, role). +3. The expected turnaround for the platform team to grant the environment. +4. How to request an environment. + +The pipeline then **exits without attempting a deployment** — no partial state, no confusing errors. + +Citizen developer onboarding path: planned + +> **Speaker notes:** This looks like a small thing; it's actually a cultural one. The platform's posture is "help me get started," not "you should have known." For the Head of DevOps: this is what drives adoption. Platforms that fail opaquely on first run get routed around. + +--- + +## Slide 7 — Safe Promotion Path + +Story beat: Promotion is a workflow choice, not a contract edit — and the bar rises automatically. + +The contract is environment-agnostic. The platform raises the bar automatically. + +```mermaid +flowchart LR + DEV["dev
    autonomous"] -->|raise the bar| QA["qa
    QA attests"] + QA -->|raise the bar| PROD["prod
    SRE attests"] + PROD -->|raise the bar| DR["dr
    SRE attests + DR drill"] +``` + +**Approach A — One contract, one job per environment.** A single contract is referenced by multiple jobs; the environment is passed by each job and interpolated at runtime. The contract itself never changes. + +```yaml +jobs: + dev: + uses: acdl/.github/workflows/deploy.yml@v1.6 + with: { contract: .acdl/contract.yaml, environment: dev } + qa: + needs: dev + uses: acdl/.github/workflows/deploy.yml@v1.6 + with: { contract: .acdl/contract.yaml, environment: qa } +``` + +**Approach B — Environment-specific contracts.** When inputs genuinely differ per environment, each job points at its own contract file. The pipeline, policy, and confidence model stay identical. + +```yaml +jobs: + dev: + uses: acdl/.github/workflows/deploy.yml@v1.6 + with: { contract: .acdl/contract-dev.yaml } + qa: + needs: dev + uses: acdl/.github/workflows/deploy.yml@v1.6 + with: { contract: .acdl/contract-qa.yaml } +``` + +Whichever approach a team picks, the platform applies the same rising bar: + +| Environment | What the platform adds | Maturity | +|---|---|---| +| dev | Confidence ≥ 0.50, fully autonomous | Testing | +| qa | QA human attestation + confidence ≥ 0.75 | Planned | +| prod | SRE human attestation + confidence ≥ 0.90 | Planned | +| dr | SRE human attestation + confidence ≥ 0.95 + a disaster-recovery drill reference | Planned | + +- **No staging environment** — the design deliberately removes the "staging is basically prod but not really" anti-pattern. Dev is the only autonomous environment. +- **Separation of duties is enforced** — the QA approver cannot be the prod approver. +- **Timeout discipline** — 1 business day = warn + escalate; 2 business days = auto-freeze + re-submit. + +> **Speaker notes:** Promotion is a workflow choice, not a contract mutation — this matters because it means a promotion can be reviewed as a *diff in the workflow*, not as a rewritten contract. Approach A keeps the single source of truth; Approach B lets teams whose inputs genuinely vary keep that variation explicit and reviewable. For leadership: the DX win is that the contract stays stable across environments; the safety win is that the platform raises the threshold and attestation bar automatically based on the target environment the job declares. The consumer can't bypass the gates — they pick *which* environment to target, and the platform applies the right bar. Be honest about maturity: dev is tested and pilot-ready; qa/prod/dr wiring is planned. + +--- + +## Slide 8 — Safe Decommission + +Story beat: Tearing down is as deliberate as deploying — and just as gated. + +Tearing down a stack is **as deliberate as deploying one.** Testing + +```yaml +uses: acdl/.github/workflows/deploy.yml@v1.8 +with: + contract: .acdl/contract.yaml + mode: decommission + changeRequestId: "CHG0678912" +``` + +A 2-step pipeline with **two SRE human-attestation gates**: + +1. **Validate the change request** — the platform queries the CMDB and asserts the CR is `approved` and matches the consumer repo. No CR, no decommission. +2. **Disable deletion protection** → **SRE approves** → **Zero all counts + destroy** → **a second SRE approves.** + +The per-stack encryption key enters a **grace window** (default 30 days) so encrypted data remains recoverable. The key is permanently deleted only after the window expires. + +> **Speaker notes:** The counter-argument to "deletion protection makes cleanup impossible" is this slide. Decommission is a first-class, gated, two-approval flow — not a lock with no key, and not an ungated `terraform destroy`. For the Head of Infrastructure: the CMDB validation means decommission is auditable, not just possible. + +--- + +## Slide 9 — Self-Service Module Catalog + +Story beat: You don't author infrastructure — you pick from pre-built, security-reviewed building blocks. + +Developers pick from **pre-built, security-reviewed building blocks.** Testing + +- **Primitives** — single-purpose resources (S3, VPC, ECS, IAM, load balancer, container registry, CloudFront, WAF, RDS). Each has documented inputs/outputs, usage, compliance extension points, and versioning. +- **Modules** — composed patterns (a static site with CDN + WAF; a microservice with VPC + ECS + load balancer + registry). +- **Validated examples per module** — `simple.yaml` + `complex.yaml` + variation files, validated against the contract schema in CI. Examples cannot drift from the schema silently. +- **Auto-promotion of patterns** — auto-promoted to the catalog after 3 observed usages. Planned Agentic +- **Compliance extension points** — each module lists where GDPR, SOX, SOC2, DORA controls will wire in. Planned + +> **Speaker notes:** The catalog is what makes "declare intent" practical — you can only declare a module that exists. For leadership: the catalog is the leverage. One well-reviewed module serves every consumer; a fix to the module serves every consumer on the next run. This is the compounding asset. + +--- + +## Slide 10 — The Desired Outcomes + +Story beat: Here's what this delivers to the organization. + +- **Velocity without sacrificing safety.** Speed is in the ergonomics (a simple contract, a one-line `uses:`); safety is in the gates the consumer cannot bypass. +- **Security, observability, and compliance as platform defaults** — not per-team effort, not post-hoc remediation. Encryption, deletion protection, uptime monitoring, policy checks, and evidence are on by construction. +- **Auditability as a byproduct, not a project.** Every production change is traceable to a human attestation and a tamper-evident evidence event — captured during the deploy, not reconstructed for the audit. +- **Blast radius contained by design.** Zero-trust OIDC + ABAC means a consumer can only touch its own tagged resources. One consumer can never affect another. +- **The bottleneck moves off the platform team's ticket queue.** A merged change progresses through lower environments without a platform engineer joining a thread. The platform team invests in the platform, not in per-deployment hand-holding. +- **Infrastructure as a utility, not a craft.** Teams consume infrastructure, they don't maintain it — and the platform compounds value over time by learning from recurring patterns. +- **A path to the citizen developer.** The same safety envelope that serves a senior engineer will serve a non-technical consumer. Agentic + +> **Speaker notes:** Close on the strategic frame. The platform is not "a CI/CD tool" — it is the organizational lever for shipping safely at the pace the business demands, with the security and audit posture the regulators require. Invite questions; the companion deck ("How the Platform Works") covers the internal mechanics in more depth. + +--- + +## Appendix — Contents + +For deep dives — these slides cover details omitted from the main 10. + +1. **A1 — The Citizen Developer Experience** (full) +2. **A2 — No Platform Code, No Cloning** (detail) +3. **A3 — Local Reproducibility** (detail) +4. **A4 — The Road to the North Star** (phased roadmap) +5. **A5 — Glossary** + +> **Speaker notes:** These are backup slides for Q&A. Use them when the audience asks for the detail behind a main-slide claim. Don't walk through them in the main talk unless time permits. + +--- + +## A1 — The Citizen Developer Experience + +A non-technical consumer ships a production deployment **by declaring intent** — without authoring a workflow, a configuration file, or an infrastructure module. Think of this as **vibe coding on a laptop** — the consumer describes what they want; an AI agent turns that into a contract that the platform treats identically to a senior engineer's. - The consumer opens an issue describing what they need (e.g. "a web API for the pricing service"). -- An AI agent maps the intent to a contract referencing a module from the **reviewed skill catalog.** +- An AI agent maps the intent to a contract referencing a module from the **reviewed skill catalog.** Agentic - The contract enters the **same pipeline** and must clear the **same confidence gate** before promotion. **Guardrails that make this safe:** @@ -68,54 +270,15 @@ A non-technical consumer ships a production deployment **by declaring intent** - Skills are **versioned, signed, and reviewed for sensitive data before release** (Infra & Ops owns the review — it is the mandatory release gate). - Agents are **stateless** — all state lives in the platform. The platform does not run the skill blindly; it trusts and **always verifies** on the platform side. - The agent's trace and submission confidence are captured in the contract (`profile: agentic`), so a reviewer can see *how* the contract was produced. -- **Initial skill catalog:** web API, worker, scheduled job, static asset, basic observability bootstrap. *(Catalog is planned; the agentic surface is on the roadmap.)* +- **Initial skill catalog:** web API, worker, scheduled job, static asset, basic observability bootstrap. -> **Speaker notes:** Be honest about maturity: the *mechanism* (agent → contract → same pipeline) is designed and the stub was proven in the v1.0 demo; the full skill catalog and real agent runtime are planned. But the design point matters to leadership now: we are building for a world where more of the org can ship safely, not where more of the org has to become a platform engineer. +Skill catalog + real agent runtime: planned Agentic + +> **Speaker notes:** Be honest about maturity: the *mechanism* (agent → contract → same pipeline) is designed and the stub was proven in the v1.0 demo; the full skill catalog and real agent runtime are planned. The "vibe coding on a laptop" framing is intentional — it meets the citizen developer where they already are, but every submission still passes the same safety envelope. The design point matters to leadership now: we are building for a world where more of the org can ship safely, not where more of the org has to become a platform engineer. --- -## Slide 4 — The Contract - -A 5-line YAML file. This is the entire consumer-facing interface to production. - -```yaml -# .acdl/contract.yaml — a static site -uses: acdl/pipelines/deploy.yaml@v1.6 -module: static-assets -environment: dev -inputs: - bucket_name: my-static-site-assets - region: us-east-1 -``` - -```yaml -# .acdl/contract.yaml — a microservice -uses: acdl/pipelines/deploy.yaml@v1.6 -module: microservice -environment: dev -inputs: - image: my-registry/my-microservice:latest - port: 8080 - env: - LOG_LEVEL: info -``` - -Four fields: - -| Field | Meaning | -|---|---| -| `uses` | The central pipeline, pinned to a versioned tag | -| `module` | A name from the module catalog | -| `environment` | `dev`, `qa`, `prod`, or `dr` | -| `inputs` | The handful of values that vary per deployment | - -An invalid contract (missing field, unknown module, wrong type) **fails fast at validation** with a clear error — not an opaque failure three stages in. - -> **Speaker notes:** The contract is the API. It is deliberately tiny so that it can be reviewed, validated, and audited. For leadership: this is what makes "declare intent" concrete — it's a one-screen file, not a 300-line Terraform root module. - ---- - -## Slide 5 — No Platform Code, No Cloning +## A2 — No Platform Code, No Cloning Consumers `uses:` a **versioned** central workflow. The platform fetches itself at run time. The consumer **never touches platform internals.** @@ -132,186 +295,51 @@ flowchart LR - The runner checks out the consumer repo, then checks out the platform repo into the workspace. - The platform installs its own runtime dependencies. The consumer installs nothing. - The consumer **never clones the platform repo, never invokes platform scripts locally** (optional `--check-only` validation is available but not required for the happy path). +- When the platform ships a fix, every consumer on a floating MAJOR.MINOR tag gets it on their next run — no per-repo upgrade project. -> **Speaker notes:** The Head of Cloud cares about this: there is no "platform code in every consumer repo" problem. When the platform ships a fix, every consumer on a floating MAJOR.MINOR tag gets it on their next run — no per-repo upgrade project. +> **Speaker notes:** The Head of Cloud cares about this: there is no "platform code in every consumer repo" problem. The version-pinned `uses:` line is the *only* coupling, and it's a coupling that updates itself within the line. --- -## Slide 6 — Versioned, Predictable Releases +## A3 — Local Reproducibility -Consumers control **when** they absorb platform improvements. +The entire CI pipeline runs **from the shell**, not just in CI. Testing -- **Floating MAJOR + MINOR tags** (e.g. `@v1.6`) — a consumer on `@v1.6` automatically receives patch updates within the 1.6 line. -- **Semantic versioning with a clear contract:** interface changes → MAJOR, behavior changes → MINOR, lifecycle fixes → PATCH. -- **A consumer can pin to an exact version** for maximum stability, or float on MAJOR only (`@v1`) to absorb new features on their own cadence. -- **Unversioned references (`@main`, bare) are discouraged** — the versioned tag is the only immutability lever a consumer has. -- **Automated release job** computes the next semver on merge to main, creates the tag, and updates the floating tags. *(Testing.)* +- `scripts/run_ci.sh` mirrors the CI pipeline locally — the same three stages (lint → test → check-only) in sequence. +- `scripts/run_platform.sh --check-only` runs the platform **offline** — no AWS, no policy engine, no outbox required. Validates a contract end-to-end before pushing. +- `--plan-only` runs through the infrastructure plan without applying. +- The CI and deploy pipelines are defined by **declarative contracts** (YAML instances validated against JSON Schemas) — a single source of truth that both workflows implement. -> **Speaker notes:** This is the "no surprise upgrades" story. Leadership hears two things: (1) consumers aren't forced to chase the platform, (2) the platform isn't forced to support N forks of every workflow. The versioning discipline is what makes both true. +> **Speaker notes:** This is the "no surprises before you push" story. A consumer can validate their contract offline, run the plan offline, and only push when they're confident. The same declarative contract drives both the local tooling and CI — there's no "works on my machine, fails in CI" gap. --- -## Slide 7 — Instant Feedback +## A4 — The Road to the North Star -Developers see **what the platform is doing**, in real time, in their own run logs. +*Proposed phasing — not formally planned.* -- **Streamed output by default** — the infrastructure plan, policy-check results, and each `PolicyCheckResult` record (severity, rule ID, pass/fail) flow to stdout. *(Testing.)* -- **PR comments after every successful pipeline stage** — a developer always knows where they stand without refreshing a dashboard. *(Testing.)* -- **Clear, explainable halt reasons** — a policy violation, an insufficient confidence signal, or a missing attestation. **Never an opaque, manual-debugging exercise.** -- **A `--quiet` mode** suppresses streaming for log-only contexts. - -> **Speaker notes:** This directly answers "but developers hate platforms that hide what they're doing." The platform is opinionated about *what* runs, not *opaque* about *that* it runs. The PR-comment-after-each-stage pattern is a small thing that compounds into trust. - ---- - -## Slide 8 — Deploy Outputs That Just Work - -After a successful deploy, the developer gets their connection information **without hunting for it** — and without secrets leaking into logs. - -- **Human-readable connection strings** posted as a structured GitHub PR comment / job summary. *(Testing.)* -- **Runtime-injectable values** written to encrypted Parameter Store (`SecureString`, KMS-encrypted, namespaced `/acdl/{env}/{contractId}/{output_name}`). *(Testing.)* -- **No raw secrets in logs** — the platform enforces this by construction. -- **Errors become GitHub issues, automatically** — a failed deploy reports through the platform Lambda, which opens (or comments on) an issue on the platform repo. The consumer's only grant is the onboarding-granted Lambda-invoke permission — no separate `issues: write` scope on the consumer side. *(Testing.)* - -> **Speaker notes:** The "errors become issues" point is a DX win that also helps the platform team — every consumer failure is a tracked, queryable artifact, not a lost log line. The Head of DevOps should hear: the platform closes the feedback loop, it doesn't just push a green/red status. - ---- - -## Slide 9 — Friendly Onboarding - -First impressions of a platform are made **when it fails for the first time.** The platform fails gracefully. - -- When a consumer pipeline runs for the first time and **no environment is bound**, the platform detects this and emits a **user-friendly onboarding prompt** instead of failing opaquely. *(Testing.)* -- The prompt tells the consumer: - 1. That no environment is bound to their repo yet. - 2. What the platform will provision on their behalf (account, network, state, role). - 3. The expected turnaround for the platform team to grant the environment. - 4. How to request an environment. -- The pipeline then **exits without attempting a deployment** — no partial state, no confusing errors. -- **Both onboarding paths end in a sandbox dev submission that must pass the confidence gate** before the consumer is promoted. *(Developer path shipped; citizen developer path planned.)* - -> **Speaker notes:** This looks like a small thing; it's actually a cultural one. The platform's posture is "help me get started," not "you should have known." For the Head of DevOps: this is what drives adoption. Platforms that fail opaquely on first run get routed around. - ---- - -## Slide 11 — Safe Promotion Path - -The contract is environment-agnostic by design. Promotion is **a workflow choice, not a contract edit** — the same contract carries cleanly from dev to qa to prod. The platform raises the bar automatically as the target environment becomes more sensitive. - -**Approach A — One contract, one job per environment.** A single contract is referenced by multiple jobs in the CI workflow; the environment is passed by each job and interpolated at runtime. The contract itself never changes. - -```yaml -# .github/workflows/deploy.yml — one job per environment, one shared contract -jobs: - dev: - uses: acdl/.github/workflows/deploy.yml@v1.6 - with: - contract: .acdl/contract.yaml - environment: dev - qa: - needs: dev - uses: acdl/.github/workflows/deploy.yml@v1.6 - with: - contract: .acdl/contract.yaml - environment: qa - prod: - needs: qa - uses: acdl/.github/workflows/deploy.yml@v1.6 - with: - contract: .acdl/contract.yaml - environment: prod +```mermaid +flowchart LR + P1["Phase 1
    Core platform
    (contract, catalog, evidence)"] --> P2["Phase 2
    Safe promotion
    qa/prod/dr wiring"] + P2 --> P3["Phase 3
    Agentic surface
    (skill catalog + agents)"] + P3 --> P4["Phase 4
    North star
    citizen developer GA"] ``` -**Approach B — One job per environment, environment-specific contracts.** When inputs genuinely differ per environment (different capacity, different config), each job points at its own contract file. The pipeline, policy, and confidence model stay identical. +> **Speaker notes:** This is a proposed phasing, not a formally committed plan — call that out explicitly. Phase 1 is what's tested today. Phase 2 is the next milestone (qa/prod/dr wiring). Phase 3 introduces the agentic surface. Phase 4 is the north star: citizen developer GA on the same safety envelope. Use this only when an audience member asks "how do you get from here to there." -```yaml -jobs: - dev: - uses: acdl/.github/workflows/deploy.yml@v1.6 - with: - contract: .acdl/contract-dev.yaml - qa: - needs: dev - uses: acdl/.github/workflows/deploy.yml@v1.6 - with: - contract: .acdl/contract-qa.yaml - prod: - needs: qa - uses: acdl/.github/workflows/deploy.yml@v1.6 - with: - contract: .acdl/contract-prod.yaml -``` +--- -Whichever approach a team picks, the platform applies the same rising bar: +## A5 — Glossary -| Environment | What the platform adds | +| Term | Meaning | |---|---| -| dev | Confidence ≥ 0.50, fully autonomous | -| qa | QA human attestation + confidence ≥ 0.75 | -| prod | SRE human attestation + confidence ≥ 0.90 | -| dr | SRE human attestation + confidence ≥ 0.95 + a disaster-recovery drill reference | +| **OIDC** | OpenID Connect — federation protocol for short-lived tokens, no long-lived credentials | +| **ABAC** | Attribute-Based Access Control — access scoped by resource tags + repo identity, not roles | +| **CMK** | Customer-Managed Key — per-stack encryption key, 90-day rotation, no shared keys | +| **CMDB** | Configuration Management Database — validates change requests for decommission | +| **RPO** | Recovery Point Objective — RPO = 0 means evidence is written synchronously, no data loss | +| **HITL** | Human-in-the-Loop — deliberate human attestation required for qa/prod/dr environments | +| **VCS** | Version Control System — the git hosting platform (GitHub, Gitea, GitLab) | +| **NFR** | Non-Functional Requirement — encryption, tagging, observability standards | -- **No staging environment** — the design deliberately removes the "staging is basically prod but not really" anti-pattern. Dev is the only autonomous environment. -- **Separation of duties is enforced** — the QA approver cannot be the prod approver. *(Design tested; wiring for qa/prod/dr is planned.)* -- **Timeout discipline** — 1 business day = warn + escalate; 2 business days = auto-freeze + re-submit. - -> **Speaker notes:** Promotion is a workflow choice, not a contract mutation — this matters because it means a promotion can be reviewed as a *diff in the workflow*, not as a rewritten contract. Approach A (one contract, environment passed by the job) keeps the single source of truth; Approach B (environment-specific contracts) lets teams whose inputs genuinely vary keep that variation explicit and reviewable. For leadership: the DX win is that the contract stays stable across environments; the safety win is that the platform raises the threshold and attestation bar automatically based on the target environment the job declares. The consumer can't bypass the gates — they pick *which* environment to target, and the platform applies the right bar. - ---- - -## Slide 12 — Safe Decommission - -Tearing down a stack is **as deliberate as deploying one** — and just as gated. - -```yaml -# Consumer's deploy workflow call -uses: acdl/.github/workflows/deploy.yml@v1.8 -with: - contract: .acdl/contract.yaml - mode: decommission - changeRequestId: "CHG0678912" -``` - -A 2-step pipeline with **two SRE human-attestation gates** *(available today)*: - -1. **Validate the change request** — the platform queries the CMDB and asserts the CR is `approved` and matches the consumer repo. No CR, no decommission. -2. **Disable deletion protection** (resolve with `deletion_protection: false`, plan + apply) → **SRE approves.** -3. **Zero all counts + destroy** (the platform zeroes every scalable count, plan + apply) → **a second SRE approves.** -4. **Confirmation** — the platform confirms the stack is destroyed. - -**After decommission:** - -- The per-stack encryption key enters a **grace window** (default 30 days) so encrypted data remains recoverable. The key is permanently deleted only after the window expires. -- Uptime monitoring is **not** automatically destroyed — it can be left running to watch the decommissioned endpoints go dark, or destroyed separately. - -> **Speaker notes:** The counter-argument to "deletion protection makes cleanup impossible" is this slide. Decommission is a first-class, gated, two-approval flow — not a lock with no key, and not an ungated `terraform destroy`. For the Head of Infrastructure: the CMDB validation means decommission is auditable, not just possible. - ---- - -## Slide 13 — Self-Service Module Catalog - -Developers pick from **pre-built, security-reviewed building blocks** — they don't author infrastructure from scratch. - -- **Primitives** — single-purpose resources (S3, VPC, ECS cluster, ECS service, IAM role, load balancer, container registry, CloudFront, WAF, RDS). Each has documented inputs, outputs, usage, compliance extension points, and versioning. *(Testing.)* -- **Modules** — composed patterns (a static site with CDN + WAF; a microservice with VPC + ECS + load balancer + registry). *(Testing.)* -- **Validated examples per module** — every module ships `simple.yaml` + `complex.yaml` + variation files, validated against the contract schema in CI. Examples cannot drift from the schema silently. *(Testing.)* -- **Auto-promotion of patterns** — a thin-composition layer is auto-promoted to the catalog after 3 observed usages. *(Mechanism planned.)* -- **Compliance extension points** — each module lists where GDPR, SOX, SOC2, DORA controls will wire in. *(Compliance milestone is planned.)* - -> **Speaker notes:** The catalog is what makes "declare intent" practical — you can only declare a module that exists. For leadership: the catalog is the leverage. One well-reviewed module serves every consumer; a fix to the module serves every consumer on the next run. This is the compounding asset. - ---- - -## Slide 14 — The Outcome for Leadership - -What this platform delivers to the organization: - -- **Velocity without sacrificing safety.** The speed is in the ergonomics (a 5-line contract, a one-line `uses:`); the safety is in the gates the consumer cannot bypass. -- **Security, observability, and compliance as platform defaults** — not per-team effort, not post-hoc remediation. Encryption, deletion protection, uptime monitoring, policy checks, and evidence are on by construction. -- **Auditability as a byproduct, not a project.** Every production change is traceable to a human attestation and a tamper-evident evidence event — captured during the deploy, not reconstructed for the audit. -- **Blast radius contained by design.** Zero-trust OIDC + ABAC means a consumer can only touch its own tagged resources. One consumer can never affect another. -- **The bottleneck moves off the platform team's ticket queue.** A merged change progresses through lower environments without a platform engineer joining a thread. The platform team invests in the platform, not in per-deployment hand-holding. -- **Infrastructure as a utility, not a craft.** The platform abstracts compute, networking, and state. Teams consume infrastructure, they don't maintain it — and the platform compounds value over time by learning from recurring patterns. -- **A path to the citizen developer.** The same safety envelope that serves a senior engineer is the one that will serve a non-technical consumer — expanding who can ship safely without lowering the bar. - -> **Speaker notes:** Close on the strategic frame. The platform is not "a CI/CD tool" — it is the organizational lever for shipping safely at the pace the business demands, with the security and audit posture the regulators require. Invite questions; the companion deck ("How the Platform Works") covers the internal mechanics in more depth. \ No newline at end of file +> **Speaker notes:** Keep this slide in your back pocket for the audience member who asks "what does ABAC actually mean?" Don't read it aloud. \ No newline at end of file diff --git a/scripts/sync_to_gl.sh b/scripts/sync_to_gl.sh new file mode 100755 index 0000000..83da69b --- /dev/null +++ b/scripts/sync_to_gl.sh @@ -0,0 +1,173 @@ +#!/usr/bin/env bash +# scripts/sync_to_gl.sh - copy ~/acdl contents to ~/gl/acdl and push. +# +# Copies the ACDL source tree into the GitLab mirror at ~/gl/acdl. +# Hidden files/dirs are NOT copied EXCEPT for .github (so GitLab CI +# workflows stay current) and .gitignore. The terraform/ tree is +# omitted entirely, and .gitignore patterns are honored. The +# destination's existing .git directory is preserved untouched. +# +# After syncing, commits any changes on the current branch with a +# timestamped message and pushes it to its upstream (origin/main). +# +# Run manually: +# bash scripts/sync_to_gl.sh # sync + commit + push +# bash scripts/sync_to_gl.sh -v # verbose (list copied files) +# bash scripts/sync_to_gl.sh --no-push # sync + commit only, no push +# bash scripts/sync_to_gl.sh --dry-run # show what would happen +# SRC=~/acdl DST=~/gl/acdl bash scripts/sync_to_gl.sh +set -euo pipefail + +SRC="${SRC:-$HOME/acdl}" +DST="${DST:-$HOME/gl/acdl}" +VERBOSE=0 +NO_PUSH=0 +DRY_RUN=0 + +for arg in "$@"; do + case "$arg" in + -v|--verbose) VERBOSE=1 ;; + --no-push) NO_PUSH=1 ;; + --dry-run) DRY_RUN=1 ;; + -h|--help) + sed -n '2,21p' "$0" + exit 0 + ;; + *) echo "FAIL: unknown argument: $arg" >&2; exit 1 ;; + esac +done + +fail() { echo "FAIL: $*" >&2; exit 1; } +run() { + if [ "$DRY_RUN" = "1" ]; then + echo " [dry-run] $*" + else + "$@" + fi +} + +[ -d "$SRC" ] || fail "source not found: $SRC" +[ -d "$DST" ] || fail "destination not found: $DST (create it first)" +[ -d "$DST/.git" ] || fail "destination has no .git: $DST/.git (restore it first)" + +echo "=== sync_to_gl ===" +echo "source: $SRC" +echo "destination: $DST" +[ "$NO_PUSH" = "1" ] && echo "mode: sync + commit (no push)" +[ "$DRY_RUN" = "1" ] && echo "mode: dry-run (no changes made)" +echo "" + +# Sanity: refuse if DST is not inside ~/gl or is the same as SRC. +case "$DST" in + "$HOME"/gl/*) : ;; + *) fail "destination must live under ~/gl (got $DST)" ;; +esac +[ "$SRC" != "$DST" ] || fail "source and destination are identical" + +# --- sync (rsync) ----------------------------------------------------------- + +# Build rsync exclude list: every hidden entry in SRC except .github +# and .gitignore. +EXCLUDES=() +for hidden in "$SRC"/.*; do + name="$(basename "$hidden")" + case "$name" in + .|...) continue ;; + .github|.gitignore) continue ;; # keep + esac + EXCLUDES+=("--exclude=/$name") +done + +# Never touch the destination's .git. "protect" makes rsync skip it +# entirely (neither transfer nor delete) even under --delete; this is +# stronger than --exclude, which --delete-excluded would wipe out. +# Drop it from the transfer set too. +EXCLUDES+=("--exclude=/.git") + +# Omit the terraform/ tree entirely. +EXCLUDES+=("--exclude=/terraform") + +# rsync filters: protect .git, then honor per-directory .gitignore +# via dir-merge (:-) semantics so patterns anchor like git does. +FILTERS=( + "--filter=P .git" + "--filter=:- .gitignore" +) + +# Use --delete (prune extras in the synced tree) but NOT --delete-excluded: +# that would wipe destination paths covered by our --exclude rules, which +# is exactly what must NOT happen for .git. +RSYNC_ARGS=(-a --delete) +[ "$VERBOSE" = "1" ] && RSYNC_ARGS+=(-v) + +echo "rsync excludes: ${EXCLUDES[*]}" +echo "rsync filters: ${FILTERS[*]}" +echo "" + +if [ "$DRY_RUN" = "1" ]; then + echo "[dry-run] rsync would run:" + printf ' %q ' rsync "${RSYNC_ARGS[@]}" "${FILTERS[@]}" "${EXCLUDES[@]}" "$SRC/" "$DST/"; echo +else + rsync "${RSYNC_ARGS[@]}" "${FILTERS[@]}" "${EXCLUDES[@]}" "$SRC/" "$DST/" + echo "rsync: OK" +fi + +echo "" + +# --- git commit + push ------------------------------------------------------ + +cd "$DST" + +# Refuse to run inside a merge/rebase/conflict state. +git rev-parse --is-inside-work-tree >/dev/null +git_dir_state() { + local f + for f in MERGE_HEAD CHERRY_PICK_HEAD REVERT_HEAD BISECT_LOG; do + [ -e ".git/$f" ] && return 1 + done + [ -d ".git/rebase-merge" -o -d ".git/rebase-apply" ] && return 1 + return 0 +} +git_dir_state || fail "destination .git is mid-operation (merge/rebase/etc); resolve it then re-run" + +branch="$(git symbolic-ref --quiet --short HEAD 2>/dev/null || true)" +[ -n "$branch" ] || fail "HEAD is detached; checkout a branch first (got $(git rev-parse --short HEAD))" + +# Stage everything in the working tree (including deletions). +run git add -A + +# Commit only if there is something staged. +if git diff --cached --quiet; then + echo "git: no changes to commit on branch '$branch'" +else + ts="$(date -u +%Y-%m-%d\ %H:%M\ UTC)" + msg="chore: sync from source mirror $ts" + echo "git: committing on branch '$branch'" + [ "$VERBOSE" = "1" ] && git diff --cached --stat + run git commit -m "$msg" +fi + +# Push (current branch to its upstream) unless suppressed. +if [ "$NO_PUSH" = "1" ]; then + echo "git: --no-push set, skipping push" + PUSHED=0 +else + upstream="$(git rev-parse --abbrev-ref --symbolic-full-name '@{u}' 2>/dev/null || true)" + if [ -z "$upstream" ]; then + fail "no upstream configured for branch '$branch'; set one with: git -C $DST branch --set-upstream-to=origin/$branch $branch" + fi + if [ "$DRY_RUN" = "1" ]; then + echo " [dry-run] git push to $upstream" + else + echo "git: pushing '$branch' to $upstream" + git push + echo "git: push OK" + fi +fi + +echo "" +echo "=== sync_to_gl OK ===" +echo "copied $SRC -> $DST" +[ "$DRY_RUN" = "1" ] && echo "(dry-run: nothing actually written or pushed)" +[ "$NO_PUSH" = "1" ] && echo "(no-push: changes committed but not pushed)" +exit 0 \ No newline at end of file