From b6e8341fd8ec372835c060b40b82785448cbf4f7 Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Mon, 31 Aug 2026 13:18:27 -0700 Subject: [PATCH 1/8] Prototype Leaf delivery through MCP Apps --- README.md | 18 + notes/comparisons.md | 59 +- notes/mcp-apps/PROJECT.md | 37 ++ notes/mcp-apps/experiments/1/README.md | 34 ++ notes/mcp-apps/experiments/1/commands.sh | 50 ++ notes/mcp-apps/experiments/1/observe.py | 131 ++++ notes/mcp-apps/experiments/1/output.txt | 50 ++ notes/mcp-apps/experiments/1/serve.py | 22 + notes/mcp-apps/experiments/10/README.md | 37 ++ notes/mcp-apps/experiments/10/commands.sh | 43 ++ notes/mcp-apps/experiments/10/observe.py | 146 +++++ notes/mcp-apps/experiments/10/output.txt | 22 + .../experiments/10/results/mcp-server.log | 2 + .../10/results/reference-host.json | 1 + .../experiments/10/results/reference-host.log | 4 + notes/mcp-apps/experiments/11/README.md | 31 + notes/mcp-apps/experiments/11/commands.sh | 43 ++ notes/mcp-apps/experiments/11/observe.py | 124 ++++ notes/mcp-apps/experiments/11/output.txt | 12 + .../11/results/compact-ask-420x360.png | Bin 0 -> 67741 bytes .../experiments/11/results/mcp-server.log | 3 + .../11/results/reference-host.json | 73 +++ .../experiments/11/results/reference-host.log | 4 + notes/mcp-apps/experiments/12/README.md | 35 ++ notes/mcp-apps/experiments/12/commands.sh | 43 ++ notes/mcp-apps/experiments/12/observe.py | 17 + notes/mcp-apps/experiments/12/output.txt | 12 + .../12/results/compact-ask-420x360.png | Bin 0 -> 42665 bytes .../experiments/12/results/mcp-server.log | 2 + .../12/results/reference-host.json | 73 +++ .../experiments/12/results/reference-host.log | 4 + notes/mcp-apps/experiments/13/README.md | 30 + notes/mcp-apps/experiments/13/commands.sh | 44 ++ notes/mcp-apps/experiments/13/observe.py | 17 + notes/mcp-apps/experiments/13/output.txt | 12 + .../experiments/13/results/bundle.sha256 | 1 + .../13/results/compact-ask-420x360.png | Bin 0 -> 42665 bytes .../experiments/13/results/mcp-server.log | 3 + .../13/results/reference-host.json | 73 +++ .../experiments/13/results/reference-host.log | 4 + notes/mcp-apps/experiments/14/README.md | 42 ++ notes/mcp-apps/experiments/14/commands.sh | 44 ++ notes/mcp-apps/experiments/14/observe.py | 132 +++++ .../experiments/14/results/bundle.sha256 | 1 + .../experiments/14/results/mcp-server.log | 3 + .../14/results/reference-host.json | 0 .../experiments/14/results/reference-host.log | 5 + notes/mcp-apps/experiments/15/README.md | 34 ++ notes/mcp-apps/experiments/15/commands.sh | 44 ++ notes/mcp-apps/experiments/15/observe.py | 168 ++++++ .../experiments/15/results/bundle.sha256 | 1 + .../experiments/15/results/failure.png | Bin 0 -> 15878 bytes .../experiments/15/results/mcp-server.log | 2 + .../15/results/reference-host.json | 25 + .../experiments/15/results/reference-host.log | 5 + notes/mcp-apps/experiments/16/README.md | 30 + notes/mcp-apps/experiments/16/commands.sh | 44 ++ notes/mcp-apps/experiments/16/observe.py | 266 +++++++++ .../experiments/16/results/bundle.sha256 | 1 + .../experiments/16/results/failure.png | Bin 0 -> 15867 bytes .../experiments/16/results/mcp-server.log | 3 + .../16/results/reference-host.json | 25 + .../experiments/16/results/reference-host.log | 5 + notes/mcp-apps/experiments/17/README.md | 29 + notes/mcp-apps/experiments/17/commands.sh | 44 ++ notes/mcp-apps/experiments/17/observe.py | 16 + .../experiments/17/results/bundle.sha256 | 1 + .../experiments/17/results/failure.png | Bin 0 -> 15867 bytes .../experiments/17/results/mcp-server.log | 3 + .../17/results/reference-host.json | 25 + .../experiments/17/results/reference-host.log | 5 + notes/mcp-apps/experiments/18/README.md | 28 + notes/mcp-apps/experiments/18/commands.sh | 44 ++ notes/mcp-apps/experiments/18/observe.py | 16 + .../experiments/18/results/bundle.sha256 | 1 + .../experiments/18/results/failure.png | Bin 0 -> 15867 bytes .../experiments/18/results/mcp-server.log | 3 + .../18/results/reference-host.json | 25 + .../experiments/18/results/reference-host.log | 5 + notes/mcp-apps/experiments/19/README.md | 29 + notes/mcp-apps/experiments/19/commands.sh | 44 ++ notes/mcp-apps/experiments/19/observe.py | 20 + .../experiments/19/results/bundle.sha256 | 1 + .../experiments/19/results/failure.png | Bin 0 -> 15867 bytes .../experiments/19/results/mcp-server.log | 2 + .../19/results/reference-host.json | 25 + .../experiments/19/results/reference-host.log | 5 + notes/mcp-apps/experiments/2/README.md | 30 + notes/mcp-apps/experiments/2/commands.sh | 51 ++ notes/mcp-apps/experiments/2/observe.py | 13 + notes/mcp-apps/experiments/2/output.txt | 59 ++ .../experiments/2/results/mcp-server.log | 3 + .../experiments/2/results/reference-host.json | 1 + .../experiments/2/results/reference-host.log | 18 + notes/mcp-apps/experiments/20/README.md | 33 ++ notes/mcp-apps/experiments/20/commands.sh | 44 ++ notes/mcp-apps/experiments/20/observe.py | 20 + .../experiments/20/results/bundle.sha256 | 1 + .../experiments/20/results/failure.png | Bin 0 -> 68489 bytes .../experiments/20/results/mcp-server.log | 2 + .../20/results/reference-host.json | 52 ++ .../experiments/20/results/reference-host.log | 5 + notes/mcp-apps/experiments/21/README.md | 31 + notes/mcp-apps/experiments/21/commands.sh | 44 ++ notes/mcp-apps/experiments/21/observe.py | 21 + .../experiments/21/results/bundle.sha256 | 1 + .../experiments/21/results/failure.png | Bin 0 -> 110956 bytes .../experiments/21/results/mcp-server.log | 2 + .../21/results/reference-host.json | 30 + .../experiments/21/results/reference-host.log | 5 + notes/mcp-apps/experiments/22/README.md | 28 + notes/mcp-apps/experiments/22/commands.sh | 44 ++ notes/mcp-apps/experiments/22/observe.py | 21 + .../experiments/22/results/bundle.sha256 | 1 + .../experiments/22/results/failure.png | Bin 0 -> 55174 bytes .../experiments/22/results/mcp-server.log | 2 + .../22/results/reference-host.json | 31 + .../experiments/22/results/reference-host.log | 5 + notes/mcp-apps/experiments/23/README.md | 30 + notes/mcp-apps/experiments/23/commands.sh | 44 ++ notes/mcp-apps/experiments/23/observe.py | 21 + .../experiments/23/results/bundle.sha256 | 1 + .../experiments/23/results/failure.png | Bin 0 -> 122842 bytes .../23/results/full-page-inline.png | Bin 0 -> 56359 bytes .../experiments/23/results/mcp-server.log | 2 + .../23/results/reference-host.json | 31 + .../experiments/23/results/reference-host.log | 5 + notes/mcp-apps/experiments/24/README.md | 29 + notes/mcp-apps/experiments/24/commands.sh | 44 ++ notes/mcp-apps/experiments/24/observe.py | 22 + .../experiments/24/results/bundle.sha256 | 1 + .../experiments/24/results/failure.png | Bin 0 -> 122840 bytes .../24/results/full-page-inline.png | Bin 0 -> 56359 bytes .../experiments/24/results/mcp-server.log | 2 + .../24/results/reference-host.json | 63 ++ .../experiments/24/results/reference-host.log | 5 + notes/mcp-apps/experiments/25/README.md | 27 + notes/mcp-apps/experiments/25/commands.sh | 44 ++ notes/mcp-apps/experiments/25/observe.py | 22 + .../experiments/25/results/bundle.sha256 | 1 + .../experiments/25/results/failure.png | Bin 0 -> 122697 bytes .../25/results/full-page-inline.png | Bin 0 -> 56239 bytes .../experiments/25/results/mcp-server.log | 2 + .../25/results/reference-host.json | 63 ++ .../experiments/25/results/reference-host.log | 5 + notes/mcp-apps/experiments/26/README.md | 34 ++ notes/mcp-apps/experiments/26/commands.sh | 44 ++ notes/mcp-apps/experiments/26/observe.py | 22 + .../experiments/26/results/bundle.sha256 | 1 + .../26/results/full-page-fullscreen.png | Bin 0 -> 122832 bytes .../26/results/full-page-inline.png | Bin 0 -> 56344 bytes .../experiments/26/results/mcp-server.log | 2 + .../26/results/reference-host.json | 110 ++++ .../experiments/26/results/reference-host.log | 5 + notes/mcp-apps/experiments/27/README.md | 31 + notes/mcp-apps/experiments/27/commands.sh | 44 ++ notes/mcp-apps/experiments/27/observe.py | 22 + .../experiments/27/results/bundle.sha256 | 1 + .../27/results/full-page-fullscreen.png | Bin 0 -> 123345 bytes .../27/results/full-page-inline.png | Bin 0 -> 56344 bytes .../experiments/27/results/mcp-server.log | 2 + .../27/results/reference-host.json | 111 ++++ .../experiments/27/results/reference-host.log | 5 + notes/mcp-apps/experiments/28/README.md | 26 + notes/mcp-apps/experiments/28/commands.sh | 46 ++ notes/mcp-apps/experiments/28/observe.py | 22 + .../experiments/28/results/bundle.sha256 | 1 + .../28/results/full-page-fullscreen.png | Bin 0 -> 123355 bytes .../28/results/full-page-inline.png | Bin 0 -> 56344 bytes .../experiments/28/results/mcp-server.log | 2 + .../28/results/reference-host.json | 111 ++++ .../experiments/28/results/reference-host.log | 5 + notes/mcp-apps/experiments/29/README.md | 33 ++ notes/mcp-apps/experiments/29/commands.sh | 48 ++ notes/mcp-apps/experiments/29/observe.py | 23 + .../experiments/29/results/bundle.sha256 | 1 + .../29/results/full-page-fullscreen.png | Bin 0 -> 122827 bytes .../29/results/full-page-inline.png | Bin 0 -> 55994 bytes .../experiments/29/results/mcp-server.log | 2 + .../29/results/reference-host.json | 131 ++++ .../experiments/29/results/reference-host.log | 5 + notes/mcp-apps/experiments/3/README.md | 30 + notes/mcp-apps/experiments/3/commands.sh | 51 ++ notes/mcp-apps/experiments/3/observe.py | 98 +++ notes/mcp-apps/experiments/3/output.txt | 59 ++ .../experiments/3/results/mcp-server.log | 2 + .../experiments/3/results/reference-host.json | 1 + .../experiments/3/results/reference-host.log | 18 + notes/mcp-apps/experiments/4/README.md | 29 + notes/mcp-apps/experiments/4/commands.sh | 51 ++ notes/mcp-apps/experiments/4/observe.py | 14 + notes/mcp-apps/experiments/4/output.txt | 59 ++ .../experiments/4/results/mcp-server.log | 2 + .../experiments/4/results/reference-host.json | 1 + .../experiments/4/results/reference-host.log | 16 + notes/mcp-apps/experiments/5/README.md | 33 ++ notes/mcp-apps/experiments/5/commands.sh | 51 ++ notes/mcp-apps/experiments/5/observe.py | 14 + notes/mcp-apps/experiments/5/output.txt | 31 + notes/mcp-apps/experiments/6/README.md | 31 + notes/mcp-apps/experiments/6/commands.sh | 53 ++ notes/mcp-apps/experiments/6/observe.py | 14 + notes/mcp-apps/experiments/6/output.txt | 12 + .../6/results/compact-ask-420x360.png | Bin 0 -> 19323 bytes .../experiments/6/results/mcp-server.log | 2 + .../6/results/reference-host.json.gz | Bin 0 -> 160097 bytes .../experiments/6/results/reference-host.log | 4 + notes/mcp-apps/experiments/7/README.md | 37 ++ notes/mcp-apps/experiments/7/commands.sh | 46 ++ notes/mcp-apps/experiments/7/observe.py | 148 +++++ notes/mcp-apps/experiments/7/output.txt | 12 + .../7/results/compact-ask-420x360.png | Bin 0 -> 19323 bytes .../experiments/7/results/mcp-server.log | 2 + .../experiments/7/results/reference-host.json | 102 ++++ .../experiments/7/results/reference-host.log | 4 + notes/mcp-apps/experiments/8/README.md | 37 ++ notes/mcp-apps/experiments/8/commands.sh | 43 ++ notes/mcp-apps/experiments/8/observe.py | 138 +++++ notes/mcp-apps/experiments/8/output.txt | 12 + .../8/results/compact-ask-420x360.png | Bin 0 -> 19323 bytes .../experiments/8/results/mcp-server.log | 2 + .../experiments/8/results/reference-host.json | 67 +++ .../experiments/8/results/reference-host.log | 4 + notes/mcp-apps/experiments/9/README.md | 44 ++ notes/mcp-apps/experiments/9/commands.sh | 15 + notes/mcp-apps/experiments/9/observe.py | 89 +++ notes/mcp-apps/experiments/9/output.txt | 2 + .../mcp-apps/experiments/9/results/stdio.json | 458 ++++++++++++++ pyproject.toml | 2 +- scripts/CLAUDE.md | 6 +- scripts/mcp-app/compact-app.css | 255 ++++++++ scripts/mcp-app/compact-app.html | 39 ++ scripts/mcp-app/compact-app.js | 196 ++++++ scripts/mcp-app/page-app.css | 192 ++++++ scripts/mcp-app/page-app.html | 45 ++ scripts/mcp-app/page-app.js | 148 +++++ scripts/vendor.py | 64 +- skills/leaf/SKILL.md | 3 + skills/leaf/assets/leaf.js | 2 +- .../leaf/assets/vendor/mcp-compact-app.html | 390 ++++++++++++ skills/leaf/assets/vendor/mcp-page-app.html | 333 +++++++++++ skills/leaf/references/internals/mcp-apps.md | 81 +++ skills/leaf/scripts/CLAUDE.md | 4 + skills/leaf/scripts/leaf/agent_state.py | 11 +- skills/leaf/scripts/leaf/cli.py | 14 + skills/leaf/scripts/leaf/http.py | 6 +- skills/leaf/scripts/leaf/mcp_app.py | 467 +++++++++++++++ skills/leaf/scripts/leaf/structure.py | 28 + .../leaf/scripts/leaf/validation/instances.py | 6 +- tests/test_interact_layer.py | 1 + tests/test_mcp_app.py | 394 ++++++++++++ tests/test_render_controls.py | 3 + uv.lock | 559 +++++++++++++++++- 253 files changed, 9675 insertions(+), 31 deletions(-) create mode 100644 notes/mcp-apps/PROJECT.md create mode 100644 notes/mcp-apps/experiments/1/README.md create mode 100755 notes/mcp-apps/experiments/1/commands.sh create mode 100755 notes/mcp-apps/experiments/1/observe.py create mode 100644 notes/mcp-apps/experiments/1/output.txt create mode 100755 notes/mcp-apps/experiments/1/serve.py create mode 100644 notes/mcp-apps/experiments/10/README.md create mode 100755 notes/mcp-apps/experiments/10/commands.sh create mode 100755 notes/mcp-apps/experiments/10/observe.py create mode 100644 notes/mcp-apps/experiments/10/output.txt create mode 100644 notes/mcp-apps/experiments/10/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/10/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/10/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/11/README.md create mode 100755 notes/mcp-apps/experiments/11/commands.sh create mode 100755 notes/mcp-apps/experiments/11/observe.py create mode 100644 notes/mcp-apps/experiments/11/output.txt create mode 100644 notes/mcp-apps/experiments/11/results/compact-ask-420x360.png create mode 100644 notes/mcp-apps/experiments/11/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/11/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/11/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/12/README.md create mode 100755 notes/mcp-apps/experiments/12/commands.sh create mode 100755 notes/mcp-apps/experiments/12/observe.py create mode 100644 notes/mcp-apps/experiments/12/output.txt create mode 100644 notes/mcp-apps/experiments/12/results/compact-ask-420x360.png create mode 100644 notes/mcp-apps/experiments/12/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/12/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/12/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/13/README.md create mode 100755 notes/mcp-apps/experiments/13/commands.sh create mode 100755 notes/mcp-apps/experiments/13/observe.py create mode 100644 notes/mcp-apps/experiments/13/output.txt create mode 100644 notes/mcp-apps/experiments/13/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/13/results/compact-ask-420x360.png create mode 100644 notes/mcp-apps/experiments/13/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/13/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/13/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/14/README.md create mode 100644 notes/mcp-apps/experiments/14/commands.sh create mode 100644 notes/mcp-apps/experiments/14/observe.py create mode 100644 notes/mcp-apps/experiments/14/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/14/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/14/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/14/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/15/README.md create mode 100644 notes/mcp-apps/experiments/15/commands.sh create mode 100644 notes/mcp-apps/experiments/15/observe.py create mode 100644 notes/mcp-apps/experiments/15/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/15/results/failure.png create mode 100644 notes/mcp-apps/experiments/15/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/15/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/15/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/16/README.md create mode 100644 notes/mcp-apps/experiments/16/commands.sh create mode 100644 notes/mcp-apps/experiments/16/observe.py create mode 100644 notes/mcp-apps/experiments/16/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/16/results/failure.png create mode 100644 notes/mcp-apps/experiments/16/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/16/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/16/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/17/README.md create mode 100644 notes/mcp-apps/experiments/17/commands.sh create mode 100644 notes/mcp-apps/experiments/17/observe.py create mode 100644 notes/mcp-apps/experiments/17/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/17/results/failure.png create mode 100644 notes/mcp-apps/experiments/17/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/17/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/17/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/18/README.md create mode 100644 notes/mcp-apps/experiments/18/commands.sh create mode 100644 notes/mcp-apps/experiments/18/observe.py create mode 100644 notes/mcp-apps/experiments/18/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/18/results/failure.png create mode 100644 notes/mcp-apps/experiments/18/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/18/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/18/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/19/README.md create mode 100644 notes/mcp-apps/experiments/19/commands.sh create mode 100644 notes/mcp-apps/experiments/19/observe.py create mode 100644 notes/mcp-apps/experiments/19/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/19/results/failure.png create mode 100644 notes/mcp-apps/experiments/19/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/19/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/19/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/2/README.md create mode 100755 notes/mcp-apps/experiments/2/commands.sh create mode 100755 notes/mcp-apps/experiments/2/observe.py create mode 100644 notes/mcp-apps/experiments/2/output.txt create mode 100644 notes/mcp-apps/experiments/2/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/2/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/2/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/20/README.md create mode 100644 notes/mcp-apps/experiments/20/commands.sh create mode 100644 notes/mcp-apps/experiments/20/observe.py create mode 100644 notes/mcp-apps/experiments/20/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/20/results/failure.png create mode 100644 notes/mcp-apps/experiments/20/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/20/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/20/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/21/README.md create mode 100644 notes/mcp-apps/experiments/21/commands.sh create mode 100644 notes/mcp-apps/experiments/21/observe.py create mode 100644 notes/mcp-apps/experiments/21/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/21/results/failure.png create mode 100644 notes/mcp-apps/experiments/21/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/21/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/21/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/22/README.md create mode 100644 notes/mcp-apps/experiments/22/commands.sh create mode 100644 notes/mcp-apps/experiments/22/observe.py create mode 100644 notes/mcp-apps/experiments/22/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/22/results/failure.png create mode 100644 notes/mcp-apps/experiments/22/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/22/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/22/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/23/README.md create mode 100644 notes/mcp-apps/experiments/23/commands.sh create mode 100644 notes/mcp-apps/experiments/23/observe.py create mode 100644 notes/mcp-apps/experiments/23/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/23/results/failure.png create mode 100644 notes/mcp-apps/experiments/23/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/23/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/23/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/23/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/24/README.md create mode 100644 notes/mcp-apps/experiments/24/commands.sh create mode 100644 notes/mcp-apps/experiments/24/observe.py create mode 100644 notes/mcp-apps/experiments/24/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/24/results/failure.png create mode 100644 notes/mcp-apps/experiments/24/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/24/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/24/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/24/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/25/README.md create mode 100644 notes/mcp-apps/experiments/25/commands.sh create mode 100644 notes/mcp-apps/experiments/25/observe.py create mode 100644 notes/mcp-apps/experiments/25/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/25/results/failure.png create mode 100644 notes/mcp-apps/experiments/25/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/25/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/25/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/25/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/26/README.md create mode 100644 notes/mcp-apps/experiments/26/commands.sh create mode 100644 notes/mcp-apps/experiments/26/observe.py create mode 100644 notes/mcp-apps/experiments/26/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/26/results/full-page-fullscreen.png create mode 100644 notes/mcp-apps/experiments/26/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/26/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/26/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/26/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/27/README.md create mode 100644 notes/mcp-apps/experiments/27/commands.sh create mode 100644 notes/mcp-apps/experiments/27/observe.py create mode 100644 notes/mcp-apps/experiments/27/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/27/results/full-page-fullscreen.png create mode 100644 notes/mcp-apps/experiments/27/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/27/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/27/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/27/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/28/README.md create mode 100644 notes/mcp-apps/experiments/28/commands.sh create mode 100644 notes/mcp-apps/experiments/28/observe.py create mode 100644 notes/mcp-apps/experiments/28/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/28/results/full-page-fullscreen.png create mode 100644 notes/mcp-apps/experiments/28/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/28/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/28/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/28/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/29/README.md create mode 100644 notes/mcp-apps/experiments/29/commands.sh create mode 100644 notes/mcp-apps/experiments/29/observe.py create mode 100644 notes/mcp-apps/experiments/29/results/bundle.sha256 create mode 100644 notes/mcp-apps/experiments/29/results/full-page-fullscreen.png create mode 100644 notes/mcp-apps/experiments/29/results/full-page-inline.png create mode 100644 notes/mcp-apps/experiments/29/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/29/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/29/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/3/README.md create mode 100755 notes/mcp-apps/experiments/3/commands.sh create mode 100755 notes/mcp-apps/experiments/3/observe.py create mode 100644 notes/mcp-apps/experiments/3/output.txt create mode 100644 notes/mcp-apps/experiments/3/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/3/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/3/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/4/README.md create mode 100755 notes/mcp-apps/experiments/4/commands.sh create mode 100755 notes/mcp-apps/experiments/4/observe.py create mode 100644 notes/mcp-apps/experiments/4/output.txt create mode 100644 notes/mcp-apps/experiments/4/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/4/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/4/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/5/README.md create mode 100755 notes/mcp-apps/experiments/5/commands.sh create mode 100755 notes/mcp-apps/experiments/5/observe.py create mode 100644 notes/mcp-apps/experiments/5/output.txt create mode 100644 notes/mcp-apps/experiments/6/README.md create mode 100755 notes/mcp-apps/experiments/6/commands.sh create mode 100755 notes/mcp-apps/experiments/6/observe.py create mode 100644 notes/mcp-apps/experiments/6/output.txt create mode 100644 notes/mcp-apps/experiments/6/results/compact-ask-420x360.png create mode 100644 notes/mcp-apps/experiments/6/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/6/results/reference-host.json.gz create mode 100644 notes/mcp-apps/experiments/6/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/7/README.md create mode 100755 notes/mcp-apps/experiments/7/commands.sh create mode 100755 notes/mcp-apps/experiments/7/observe.py create mode 100644 notes/mcp-apps/experiments/7/output.txt create mode 100644 notes/mcp-apps/experiments/7/results/compact-ask-420x360.png create mode 100644 notes/mcp-apps/experiments/7/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/7/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/7/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/8/README.md create mode 100755 notes/mcp-apps/experiments/8/commands.sh create mode 100755 notes/mcp-apps/experiments/8/observe.py create mode 100644 notes/mcp-apps/experiments/8/output.txt create mode 100644 notes/mcp-apps/experiments/8/results/compact-ask-420x360.png create mode 100644 notes/mcp-apps/experiments/8/results/mcp-server.log create mode 100644 notes/mcp-apps/experiments/8/results/reference-host.json create mode 100644 notes/mcp-apps/experiments/8/results/reference-host.log create mode 100644 notes/mcp-apps/experiments/9/README.md create mode 100755 notes/mcp-apps/experiments/9/commands.sh create mode 100755 notes/mcp-apps/experiments/9/observe.py create mode 100644 notes/mcp-apps/experiments/9/output.txt create mode 100644 notes/mcp-apps/experiments/9/results/stdio.json create mode 100644 scripts/mcp-app/compact-app.css create mode 100644 scripts/mcp-app/compact-app.html create mode 100644 scripts/mcp-app/compact-app.js create mode 100644 scripts/mcp-app/page-app.css create mode 100644 scripts/mcp-app/page-app.html create mode 100644 scripts/mcp-app/page-app.js create mode 100644 skills/leaf/assets/vendor/mcp-compact-app.html create mode 100644 skills/leaf/assets/vendor/mcp-page-app.html create mode 100644 skills/leaf/references/internals/mcp-apps.md create mode 100644 skills/leaf/scripts/leaf/mcp_app.py create mode 100644 tests/test_mcp_app.py diff --git a/README.md b/README.md index 44bb67789..3818b2180 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,24 @@ Then ask the agent for a page. The explicit skill is `/leaf [topic]` in Claude C and `$leaf [topic]` in Codex; with no argument it presents whatever the session is currently about. +### Experimental MCP Apps surface + +A checkout can expose complete Leaf pages to a local +[MCP Apps](https://github.com/modelcontextprotocol/ext-apps) host over stdio: + +```sh +bin/leaf mcp run +``` + +The host calls `leaf_open_page` with an initialized page directory. Its app +frames the ordinary Leaf browser interface from a process-scoped loopback +server, including comments, widgets, version travel, and the existing event +path. Closing the app loses only that presentation: the page directory and +`comments.jsonl` remain the durable record. `leaf_open_compact_ask` is a separate +optional projection for one small single-choice ask; it is not the boundary of +what the MCP surface supports. Host registration and non-local page URLs remain +deliberately manual while this surface is experimental. + ## Packages A package carries a reusable theme, widget, browser module, data contract, or role diff --git a/notes/comparisons.md b/notes/comparisons.md index 2d8d657d3..2f92c0b30 100644 --- a/notes/comparisons.md +++ b/notes/comparisons.md @@ -670,22 +670,49 @@ finding the passage again, so leaf writes its own — unique-context confirmatio detachment rather than a fallback to ordinals — and a shared field name would advertise a matcher that isn't shared. -The door worth watching is none of those, and it is not a format. `@json-render/mcp` -serves a spec as an MCP App — the server returns a UI resource, the host renders it in a -sandboxed iframe, and `callServerTool` carries the press back — so one catalog reaches -Claude, ChatGPT, Cursor, VS Code, Goose and Postman without a hook written for any of them. -That is leaf's reach problem solved by the host instead of by the notation. What it does -not carry is the page: an MCP App is an iframe inside one chat message, in the host's -window, so there are no versions, no directory, and no reader who closed the conversation -and came back to it the next day. MCP Apps is already on this note's list of what a fuller -one would reach, and this is the angle a fuller entry would have to take: not another way -to describe a UI, but the one route by which a page could reach a host that has never -heard of it. What would change the answer is named in the extension's own deferrals: app -registrations must not outlive a session, a closed app's tool calls must error, and state -persistence and external URLs are put off to future extensions — so an app there today is -as mortal as the chat message holding it. External URLs or persistence landing, or a -terminal host shipping an Apps surface, is the signal to stop watching and prototype; even -then the route adds new hosts rather than retiring the two hooked ones. +The door worth opening is none of those, and it is not a format. [MCP Apps][mcp-apps] — +the official extension informed by the earlier community MCP-UI — lets a server return a +`ui://` resource, the host render it in a sandboxed iframe, and `callServerTool` carry a +press back. One server can therefore reach Claude, ChatGPT, VS Code and Goose without a +hook written for each. That is leaf's reach problem solved by the host instead of by a new +notation. + +A first probe against the extension's reference host found that the iframe's lifetime +need not be the page's. An app-only `leaf_post_event` tool handed the same browser-shaped +event to leaf's existing append boundary, which wrote the page's real log; after host +teardown, reopening reconstructed the settled choice from that log. The stable extension +has no iframe-registered tools: this is an app-only server tool, distinct from the +app-provided tools in the [later draft][mcp-apps-draft]. Neither teardown binds the server +tools or page directory behind the view. That makes a server tool the compact surface's +natural return path. A direct app fetch also reached loopback through declared +`connectDomains`, but leaf correctly denied cross-origin API reads, so the compact surface +does not depend on CORS. + +The larger experiment overturned the premise that only the compact surface belongs here. +The complete `ui://` app declared a loopback `frameDomains` origin and framed leaf's +ordinary browser page: the same document, vendored runtime, open vocabulary, comment +layer, versions, state stream and `/api/event` door. The reference host allowed the frame. +The remaining boundary was authentication, not interface: the normal `SameSite=Strict` +cookie is withheld in a third-party embed, while a secure partitioned cookie on the +process-scoped MCP server admitted assets and event writes without weakening ordinary +servers. The real page then measured 1060×332 inline and 1068×806 fullscreen with no +horizontal overflow, zero Axe violations, five representative widgets, a working return +control, and a keyboard choice appended to leaf's actual log. A second run authored a +normal passage-anchored comment and traveled v2 → v1 → v2; the immutable URLs remained +authorized and the same highlight resolved in both documents. MCP Apps can therefore +carry the whole local Leaf interface; the compact single-choice ask is an optional +below-the-fold optimization, not the supported-product boundary. + +What stays mortal is the presentation, its loopback address, and its place in the +conversation. The browser must share the machine running the stdio server; a cloud host's +`localhost` is somewhere else. `ui/message` was accepted by the reference host, but +whether it starts a turn remains host policy; VS Code explicitly fills the chat input +without sending it. The route adds local GUI hosts and a disposable inline home for the +full page. It does not replace the page directory, durable browser deployment, wake +mechanism, or the two existing host hooks. + +[mcp-apps]: https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx +[mcp-apps-draft]: https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx ## When leaf is the wrong choice diff --git a/notes/mcp-apps/PROJECT.md b/notes/mcp-apps/PROJECT.md new file mode 100644 index 000000000..4524e416f --- /dev/null +++ b/notes/mcp-apps/PROJECT.md @@ -0,0 +1,37 @@ +## Research Questions + +**Primary**: Can Leaf add MCP Apps as a delivery surface without adding a second interface or state authority? + +**Secondary**: + +- What is the smallest server-tool boundary that preserves the page directory and append-only log as Leaf's durable record? +- Can one current, option-shaped reader ask degrade into a useful disposable inline surface? +- Which host capabilities are prerequisites, conveniences, or policy-dependent enhancements? + +## Current Status + +### Latest Results: experiment 29 + +The complete page is green end to end in the official reference host. In +addition to the clean layout, accessibility, fullscreen, and options evidence, +an anchored comment appended through Leaf's ordinary event path and remained +resolved while the page traveled v2 → v1 → v2. + +### Current Experiment: none + +**Status**: Baseline complete +**Purpose**: The local reference-host primitive now covers the complete page, +durable actions, anchored comments, and immutable-version travel. + +## Next Steps + +1. Probe one shipped host and record whether HTTPS, + private-network policy, or host CSP changes the result. +2. Probe `ui/message` turn behavior independently; neither page transport path + should make a wake claim from an event append alone. + +## Reference + +- Reproduce experiment 29: `bash notes/mcp-apps/experiments/29/commands.sh` +- Read its result: `sed -n '1,380p' notes/mcp-apps/experiments/29/results/reference-host.json` +- Inspect the current project: `sed -n '1,240p' notes/mcp-apps/PROJECT.md` diff --git a/notes/mcp-apps/experiments/1/README.md b/notes/mcp-apps/experiments/1/README.md new file mode 100644 index 000000000..8f1560624 --- /dev/null +++ b/notes/mcp-apps/experiments/1/README.md @@ -0,0 +1,34 @@ +# Experiment 1: Repository-owned compact ask + +## Purpose + +Test whether the successful transport probe can become a narrow Leaf primitive without introducing a new state model. The slice should present one current `lf-options` ask, submit the ordinary declared action through Leaf's existing event endpoint, and reconstruct the settled result from the log after reopening. + +**Changes from the pre-project feasibility probe:** + +- Move the server boundary from ignored probe code into Leaf's Python package. +- Replace probe-specific state with a declaration-derived compact-ask projection. +- Replace direct loopback fetches with app-only MCP server tools. +- Build the UI resource reproducibly from tracked source and a pinned MCP Apps SDK. + +**Configuration:** + +- Transport: stdio MCP server +- UI: disposable `ui://` HTML resource +- Return path: `callServerTool` → Leaf `EventEndpoint` +- Supported ask in this experiment: one current page-scoped `lf-options` decision +- Durable authority: authored revision plus `comments.jsonl` +- Reference host: ext-apps commit `10195ad91851502134930e9b80ec2c04e277a720` +- Authored fixture: `examples/design-decision.html` + +**Expected outcomes:** + +- If the app lists exactly one current ask and posts a schema-valid action, the boundary is narrow enough to productize experimentally. +- If teardown and a fresh read reconstruct the settled choice from `comments.jsonl`, no second state authority was introduced. +- If unsupported or ambiguous decisions return an explicit fallback instead of guessed controls, the compact mode can remain deliberately partial. +- If the bundled app fits at 420×360 without horizontal overflow and keeps keyboard/focus behavior, the disposable inline surface is viable for small asks. +- If the app requires loopback network access, the design has accidentally retained the probe's host-specific dependency and should be revised. + +## Findings + +The seven focused repository tests passed and the pinned official reference host built. The attempt then stopped before either service launched because `commands.sh` redirected their logs into a `results/` directory it had not created. It produced no browser or host-policy evidence; experiment 2 repeats the unchanged subject with that launch-path error fixed. diff --git a/notes/mcp-apps/experiments/1/commands.sh b/notes/mcp-apps/experiments/1/commands.sh new file mode 100755 index 000000000..33ec738c5 --- /dev/null +++ b/notes/mcp-apps/experiments/1/commands.sh @@ -0,0 +1,50 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/1/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-1.XXXXXX")" +reference="$repo/.tmp/ext-apps-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +if [ ! -d "$reference/.git" ]; then + git clone https://github.com/modelcontextprotocol/ext-apps.git "$reference" + git -C "$reference" checkout 10195ad91851502134930e9b80ec2c04e277a720 + npm --prefix "$reference" ci --silent +fi +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +npm --prefix "$reference" run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' ../../node_modules/.bin/tsx serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/1/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/1/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/1/observe.py b/notes/mcp-apps/experiments/1/observe.py new file mode 100755 index 000000000..3fc81fe12 --- /dev/null +++ b/notes/mcp-apps/experiments/1/observe.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python3 +"""Drive the official reference host through append, teardown, and reopen.""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path + +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HOST = "http://localhost:8080/?tool=leaf_open_page" +HERE = Path(__file__).parent + + +def app_frame(page): + expect(page.locator("iframe")).to_have_count(1) + outer = page.locator("iframe") + outer.evaluate( + """node => { + node.style.setProperty('width', '420px', 'important'); + node.style.setProperty('height', '360px', 'important'); + }""" + ) + sandbox = page.frame_locator("iframe") + expect(sandbox.locator("iframe")).to_have_count(1) + sandbox.locator("iframe").evaluate( + """node => { + node.style.setProperty('width', '100%', 'important'); + node.style.setProperty('height', '100%', 'important'); + }""" + ) + frame = sandbox.frame_locator("iframe") + expect(frame.locator("#sequence")).to_contain_text("event ") + return outer, frame + + +def measure(frame): + return frame.locator("html").evaluate( + """() => ({ + viewport: {width: innerWidth, height: innerHeight}, + client: { + width: document.documentElement.clientWidth, + height: document.documentElement.clientHeight, + }, + scroll: { + width: document.documentElement.scrollWidth, + height: document.documentElement.scrollHeight, + }, + question: document.querySelector('h1')?.textContent, + options: [...document.querySelectorAll('[data-option]')].map((node) => node.textContent), + focused: document.activeElement?.textContent, + })""" + ) + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("page", type=Path) + args = parser.parse_args() + page_dir = args.page.resolve() + + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 720, "height": 920}) + console = [] + page.on( + "console", + lambda message: ( + console.append({"type": message.type, "text": message.text}) + if message.type in {"error", "warning"} + else None + ), + ) + page.goto(HOST) + page.locator("textarea").fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, frame = app_frame(page) + expect( + frame.get_by_role("heading", name="Where should a session live?") + ).to_be_visible() + expect(frame.locator("[data-option]")).to_have_count(3) + + option = frame.get_by_role("button", name="Redis, cookie fallback") + option.focus() + initial = measure(frame) + screenshot = HERE / "results/compact-ask-420x360.png" + outer.screenshot(path=screenshot) + + option.press("Enter") + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + after_choice = measure(frame) + event = read_events(page_dir)[-1] + + page.get_by_title("Close").click() + expect(page.locator("iframe")).to_have_count(0) + page.get_by_role("button", name="Call Tool").click() + _, frame = app_frame(page) + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + reopened = measure(frame) + + result = { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "initial": initial, + "horizontal_overflow": initial["scroll"]["width"] + > initial["client"]["width"], + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "after_choice": after_choice, + "after_teardown_and_reopen": reopened, + "console": console, + "screenshot": str(screenshot), + } + print(json.dumps(result, indent=2, ensure_ascii=False)) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/1/output.txt b/notes/mcp-apps/experiments/1/output.txt new file mode 100644 index 000000000..fb02386e0 --- /dev/null +++ b/notes/mcp-apps/experiments/1/output.txt @@ -0,0 +1,50 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.00s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-1.zannj9/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column +Cloning into '/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9'... +Note: switching to '10195ad91851502134930e9b80ec2c04e277a720'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 10195ad9 docs: add Alpic Playground to supported clients (#729) +🔧 Generating Zod schemas from spec.types.ts... + +✅ Written: /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/src/generated/schema.ts +✅ Written: /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/src/generated/schema.test.ts +✅ Written: /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/src/generated/schema.json + +🎉 Schema generation complete! +(node:70106) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. +(Use `node --trace-deprecation ...` to show where the warning was created) +src/generated/schema.json 54ms +src/generated/schema.test.ts 38ms +src/generated/schema.ts 26ms +🔧 Syncing code snippets from example files... + +✅ No files needed modification + +🎉 Snippet sync complete! +notes/mcp-apps/experiments/1/commands.sh: line 32: /Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/1/results/mcp-server.log: No such file or directory +notes/mcp-apps/experiments/1/commands.sh: line 37: /Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/1/results/reference-host.log: No such file or directory diff --git a/notes/mcp-apps/experiments/1/serve.py b/notes/mcp-apps/experiments/1/serve.py new file mode 100755 index 000000000..d0c2d0bab --- /dev/null +++ b/notes/mcp-apps/experiments/1/serve.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Expose Leaf's stdio MCP server over HTTP for the official reference host.""" + +import uvicorn +from leaf.mcp_app import create_server +from starlette.middleware.cors import CORSMiddleware + + +def main() -> None: + app = create_server().streamable_http_app(host="127.0.0.1") + app = CORSMiddleware( + app, + allow_origins=["http://localhost:8080"], + allow_methods=["*"], + allow_headers=["*"], + expose_headers=["Mcp-Session-Id"], + ) + uvicorn.run(app, host="127.0.0.1", port=3001, log_level="warning") + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/10/README.md b/notes/mcp-apps/experiments/10/README.md new file mode 100644 index 000000000..76ded6e8e --- /dev/null +++ b/notes/mcp-apps/experiments/10/README.md @@ -0,0 +1,37 @@ +# Experiment 10: Evidence-bearing compact ask + +## Purpose + +Repeat the official reference-host path after review exposed the option evidence, +made status messages visible, rejected invalid mutable source explicitly, and +corrected the open/read tools' side-effect annotations. + +**Changes from experiment 8:** + +- Each choice retains its short label and visibly includes the authored spoken + evidence that distinguishes it. +- The footer visibly reports recording, success, refresh, and errors. +- Run axe-core inside the app frame. +- Measure the internal content scroller separately from document overflow. + +**Configuration:** + +- Transport, fixture, reference-host commit, outer frame (420×360), and keyboard + action unchanged from the successful reference-host experiments. + +**Expected outcomes:** + +- All three option labels and all three non-empty evidence summaries are present. +- The document itself does not overflow; the bounded content region may scroll to + preserve complete evidence at narrow width. +- Keyboard choice appends the ordinary action and exposes a visible success status. +- Axe reports no violations in the app frame. + +## Findings + +The app loaded and the nine focused protocol tests passed, but the run stopped at +the new accessibility check. `base.app_frame` returns a `FrameLocator`, while +`axe-playwright-python` calls `evaluate` on the concrete object it receives; +`FrameLocator` has no such method. No product assertion failed and the keyboard +action was not reached. Experiment 11 changes only the axe target to the innermost +concrete Playwright `Frame`. diff --git a/notes/mcp-apps/experiments/10/commands.sh b/notes/mcp-apps/experiments/10/commands.sh new file mode 100755 index 000000000..5686b3505 --- /dev/null +++ b/notes/mcp-apps/experiments/10/commands.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/10/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-10.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/10/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/10/observe.py b/notes/mcp-apps/experiments/10/observe.py new file mode 100755 index 000000000..975f72281 --- /dev/null +++ b/notes/mcp-apps/experiments/10/observe.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python3 +"""Measure the reviewed, evidence-bearing compact surface.""" + +import json +import sys +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +from axe_playwright_python.sync_playwright import Axe +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HERE = Path(__file__).parent +source = HERE.parent / "1/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_1_observe", source) +base = module_from_spec(spec) +spec.loader.exec_module(base) +base.HERE = HERE + + +def measure(frame): + return frame.locator("html").evaluate( + """() => { + const root = document.documentElement; + const content = document.querySelector('#content'); + return { + viewport: {width: innerWidth, height: innerHeight}, + document: { + client_width: root.clientWidth, + client_height: root.clientHeight, + scroll_width: root.scrollWidth, + scroll_height: root.scrollHeight, + }, + content: { + client_height: content.clientHeight, + scroll_height: content.scrollHeight, + }, + question: document.querySelector('h1')?.textContent, + labels: [...document.querySelectorAll('.option-label')].map( + (node) => node.textContent + ), + summary_lengths: [...document.querySelectorAll('.option-summary')].map( + (node) => node.textContent.length + ), + }; + }""" + ) + + +def main() -> None: + page_dir = Path(sys.argv[1]).resolve() + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 720, "height": 920}) + page.set_default_timeout(15_000) + console = [] + page.on( + "console", + lambda message: ( + console.append( + { + "type": message.type, + "text": message.text, + "location": message.location, + } + ) + if message.type in {"error", "warning"} + else None + ), + ) + + page.goto(base.HOST) + tool_select = page.locator("select").nth(1) + expect(tool_select).to_have_value("leaf_open_page") + model_tools = tool_select.locator("option").all_text_contents() + tool_input = page.locator("textarea") + expect(tool_input).to_have_value("{}") + tool_input.fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, frame = base.app_frame(page) + expect( + frame.get_by_role("heading", name="Where should a session live?") + ).to_be_visible() + expect(frame.locator(".option-summary")).to_have_count(3) + + option = frame.get_by_role("button", name="Redis, cookie fallback") + option.focus() + initial = measure(frame) + axe = Axe().run(frame) + screenshot = HERE / "results/compact-ask-420x360.png" + outer.screenshot(path=screenshot) + + option.press("Enter") + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + expect(frame.get_by_role("status")).to_have_text( + "Recorded Redis, cookie fallback" + ) + event = read_events(page_dir)[-1] + status_box = frame.get_by_role("status").bounding_box() + + print( + json.dumps( + { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "model_visible_tools": model_tools, + "initial": initial, + "document_horizontal_overflow": ( + initial["document"]["scroll_width"] + > initial["document"]["client_width"] + ), + "document_vertical_overflow": ( + initial["document"]["scroll_height"] + > initial["document"]["client_height"] + ), + "content_scrolls": ( + initial["content"]["scroll_height"] + > initial["content"]["client_height"] + ), + "axe": { + "violations": axe.violations_count, + "snapshot": axe.generate_snapshot(), + }, + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "visible_status_box": status_box, + "console": console, + "screenshot": str(screenshot), + }, + indent=2, + ensure_ascii=False, + ) + ) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/10/output.txt b/notes/mcp-apps/experiments/10/output.txt new file mode 100644 index 000000000..b5c7a7360 --- /dev/null +++ b/notes/mcp-apps/experiments/10/output.txt @@ -0,0 +1,22 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 9 items + +tests/test_mcp_app.py ......... [100%] + +============================== 9 passed in 3.56s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-10.JTd3t9/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column +Traceback (most recent call last): + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/10/observe.py", line 144, in + main() + ~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/10/observe.py", line 87, in main + axe = Axe().run(frame) + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/axe_playwright_python/sync_playwright.py", line 32, in run + page.evaluate(self.axe_script) + ^^^^^^^^^^^^^ +AttributeError: 'FrameLocator' object has no attribute 'evaluate' diff --git a/notes/mcp-apps/experiments/10/results/mcp-server.log b/notes/mcp-apps/experiments/10/results/mcp-server.log new file mode 100644 index 000000000..acf34a488 --- /dev/null +++ b/notes/mcp-apps/experiments/10/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: e74f8376b1e445e09a2fe0b1e59a29d9 diff --git a/notes/mcp-apps/experiments/10/results/reference-host.json b/notes/mcp-apps/experiments/10/results/reference-host.json new file mode 100644 index 000000000..19765bd50 --- /dev/null +++ b/notes/mcp-apps/experiments/10/results/reference-host.json @@ -0,0 +1 @@ +null diff --git a/notes/mcp-apps/experiments/10/results/reference-host.log b/notes/mcp-apps/experiments/10/results/reference-host.log new file mode 100644 index 000000000..045bfdd35 --- /dev/null +++ b/notes/mcp-apps/experiments/10/results/reference-host.log @@ -0,0 +1,4 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop diff --git a/notes/mcp-apps/experiments/11/README.md b/notes/mcp-apps/experiments/11/README.md new file mode 100644 index 000000000..04ba876f5 --- /dev/null +++ b/notes/mcp-apps/experiments/11/README.md @@ -0,0 +1,31 @@ +# Experiment 11: Axe the concrete app frame + +## Purpose + +Complete experiment 10 after its accessibility probe confused the nested app's +`FrameLocator` with the concrete Playwright `Frame` that axe can evaluate. + +**Changes from experiment 10:** + +- Pass the innermost concrete frame to axe. Product code, fixture, dimensions, + and actions are unchanged. + +**Expected outcomes:** + +- The evidence, scrolling, visible status, keyboard append, console, and axe + readings all complete in one reference-host run. + +## Findings + +The measurement completed and found two CSS defects introduced by exposing the +evidence. The grid shell used `min-height: 100vh`, so its auto height grew to 610 +pixels instead of holding the 354-pixel app viewport; the intended content +scroller never engaged and the success status landed below the visible frame. +Axe also reported three serious color-contrast violations, one for each evidence +summary using the host's secondary text token on the option panel. + +The protocol and input path remained sound: all three evidence summaries were +present (303–471 characters), keyboard Enter appended the expected `choose`, and +the only console error was the reference host favicon. Experiment 12 changes +only the shell to a fixed viewport height and gives decision evidence the +primary text color. diff --git a/notes/mcp-apps/experiments/11/commands.sh b/notes/mcp-apps/experiments/11/commands.sh new file mode 100755 index 000000000..a9a59e29a --- /dev/null +++ b/notes/mcp-apps/experiments/11/commands.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/11/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-11.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/11/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/11/observe.py b/notes/mcp-apps/experiments/11/observe.py new file mode 100755 index 000000000..df3a7a4df --- /dev/null +++ b/notes/mcp-apps/experiments/11/observe.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +"""Measure the reviewed surface and run axe in its concrete frame.""" + +import json +import sys +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +from axe_playwright_python.sync_playwright import Axe +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HERE = Path(__file__).parent + + +def load(name: str, path: Path): + spec = spec_from_file_location(name, path) + module = module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +base = load("mcp_apps_experiment_1_observe", HERE.parent / "1/observe.py") +previous = load("mcp_apps_experiment_10_observe", HERE.parent / "10/observe.py") +base.HERE = HERE + + +def main() -> None: + page_dir = Path(sys.argv[1]).resolve() + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 720, "height": 920}) + page.set_default_timeout(15_000) + console = [] + page.on( + "console", + lambda message: ( + console.append( + { + "type": message.type, + "text": message.text, + "location": message.location, + } + ) + if message.type in {"error", "warning"} + else None + ), + ) + + page.goto(base.HOST) + tool_select = page.locator("select").nth(1) + expect(tool_select).to_have_value("leaf_open_page") + model_tools = tool_select.locator("option").all_text_contents() + tool_input = page.locator("textarea") + expect(tool_input).to_have_value("{}") + tool_input.fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, frame = base.app_frame(page) + expect( + frame.get_by_role("heading", name="Where should a session live?") + ).to_be_visible() + expect(frame.locator(".option-summary")).to_have_count(3) + + option = frame.get_by_role("button", name="Redis, cookie fallback") + option.focus() + initial = previous.measure(frame) + axe = Axe().run(page.frames[-1]) + screenshot = HERE / "results/compact-ask-420x360.png" + outer.screenshot(path=screenshot) + + option.press("Enter") + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + expect(frame.get_by_role("status")).to_have_text( + "Recorded Redis, cookie fallback" + ) + event = read_events(page_dir)[-1] + status_box = frame.get_by_role("status").bounding_box() + + print( + json.dumps( + { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "model_visible_tools": model_tools, + "initial": initial, + "document_horizontal_overflow": ( + initial["document"]["scroll_width"] + > initial["document"]["client_width"] + ), + "document_vertical_overflow": ( + initial["document"]["scroll_height"] + > initial["document"]["client_height"] + ), + "content_scrolls": ( + initial["content"]["scroll_height"] + > initial["content"]["client_height"] + ), + "axe": { + "violations": axe.violations_count, + "snapshot": axe.generate_snapshot(), + }, + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "visible_status_box": status_box, + "console": console, + "screenshot": str(screenshot), + }, + indent=2, + ensure_ascii=False, + ) + ) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/11/output.txt b/notes/mcp-apps/experiments/11/output.txt new file mode 100644 index 000000000..431de8ac2 --- /dev/null +++ b/notes/mcp-apps/experiments/11/output.txt @@ -0,0 +1,12 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 9 items + +tests/test_mcp_app.py ......... [100%] + +============================== 9 passed in 6.37s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-11.OpqIP3/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/11/results/compact-ask-420x360.png b/notes/mcp-apps/experiments/11/results/compact-ask-420x360.png new file mode 100644 index 0000000000000000000000000000000000000000..773702e64d67e4cef9efe4f7429cf27a35bec7ad GIT binary patch literal 67741 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/11/results/mcp-server.log b/notes/mcp-apps/experiments/11/results/mcp-server.log new file mode 100644 index 000000000..b0a0f8a15 --- /dev/null +++ b/notes/mcp-apps/experiments/11/results/mcp-server.log @@ -0,0 +1,3 @@ +StreamableHTTP session manager started +Created new transport with session ID: b90489f1561c4b219cae972f15ec000b +StreamableHTTP session manager shutting down diff --git a/notes/mcp-apps/experiments/11/results/reference-host.json b/notes/mcp-apps/experiments/11/results/reference-host.json new file mode 100644 index 000000000..656c2d200 --- /dev/null +++ b/notes/mcp-apps/experiments/11/results/reference-host.json @@ -0,0 +1,73 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "model_visible_tools": [ + "leaf_open_page" + ], + "initial": { + "viewport": { + "width": 414, + "height": 354 + }, + "document": { + "client_width": 414, + "client_height": 354, + "scroll_width": 414, + "scroll_height": 610 + }, + "content": { + "client_height": 526, + "scroll_height": 526 + }, + "question": "Where should a session live?", + "labels": [ + "Stateless JWT", + "Redis, cookie fallback", + "Postgres table" + ], + "summary_lengths": [ + 471, + 406, + 303 + ] + }, + "document_horizontal_overflow": false, + "document_vertical_overflow": true, + "content_scrolls": false, + "axe": { + "violations": 1, + "snapshot": "color-contrast (serious) : 3" + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "visible_status_box": { + "x": 134.015625, + "y": 743.5, + "width": 287.984375, + "height": 15 + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ], + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/11/results/compact-ask-420x360.png" +} diff --git a/notes/mcp-apps/experiments/11/results/reference-host.log b/notes/mcp-apps/experiments/11/results/reference-host.log new file mode 100644 index 000000000..045bfdd35 --- /dev/null +++ b/notes/mcp-apps/experiments/11/results/reference-host.log @@ -0,0 +1,4 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop diff --git a/notes/mcp-apps/experiments/12/README.md b/notes/mcp-apps/experiments/12/README.md new file mode 100644 index 000000000..c3adcb3b0 --- /dev/null +++ b/notes/mcp-apps/experiments/12/README.md @@ -0,0 +1,35 @@ +# Experiment 12: Contain and clarify evidence + +## Purpose + +Repeat experiment 11 after its measurements showed that evidence expanded the +document and used insufficient contrast on the host's option-panel color. + +**Changes from experiment 11:** + +- Fix the app shell at the iframe viewport height so the middle grid row owns + scrolling and the footer remains visible. +- Use the primary text color for decision evidence. + +**Expected outcomes:** + +- No document overflow; the content row scrolls vertically at 420×360. +- The visible footer status remains inside the 354-pixel app viewport. +- Axe reports no violations. +- Evidence and keyboard append behavior remain unchanged. + +## Findings + +The two CSS changes resolved both measured defects. In the 414×354 app viewport, +the document's client and scroll dimensions were identical, while the middle +content row held a 270-pixel viewport over 526 pixels of complete option content. +All three short labels and all three evidence summaries remained present. The +footer stayed in the fixed shell and exposed a real 15-pixel-high status box +after the choice. + +Axe reported zero violations. Keyboard Enter appended the same ordinary +`session-options` / `choose` / `opt-redis` event at sequence 1. The only console +error was again the official reference host's missing favicon. This is the first +run in which the evidence-bearing compact surface, containment, contrast, +visible feedback, accessibility scan, and durable return path all passed +together. diff --git a/notes/mcp-apps/experiments/12/commands.sh b/notes/mcp-apps/experiments/12/commands.sh new file mode 100755 index 000000000..b5fe95737 --- /dev/null +++ b/notes/mcp-apps/experiments/12/commands.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/12/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-12.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/12/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/12/observe.py b/notes/mcp-apps/experiments/12/observe.py new file mode 100755 index 000000000..cf0101f5c --- /dev/null +++ b/notes/mcp-apps/experiments/12/observe.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +"""Repeat the evidence-bearing app after its two CSS corrections.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "11/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_11_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE +experiment.base.HERE = HERE + + +if __name__ == "__main__": + experiment.main() diff --git a/notes/mcp-apps/experiments/12/output.txt b/notes/mcp-apps/experiments/12/output.txt new file mode 100644 index 000000000..5175b27be --- /dev/null +++ b/notes/mcp-apps/experiments/12/output.txt @@ -0,0 +1,12 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 9 items + +tests/test_mcp_app.py ......... [100%] + +============================== 9 passed in 2.55s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-12.jPhlql/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/12/results/compact-ask-420x360.png b/notes/mcp-apps/experiments/12/results/compact-ask-420x360.png new file mode 100644 index 0000000000000000000000000000000000000000..cc50838791959bf21b38f430b45e0515c6f864b6 GIT binary patch literal 42665 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/12/results/mcp-server.log b/notes/mcp-apps/experiments/12/results/mcp-server.log new file mode 100644 index 000000000..43ff546c3 --- /dev/null +++ b/notes/mcp-apps/experiments/12/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 1d8af92fb7834a56ad6f9c95ac3833f3 diff --git a/notes/mcp-apps/experiments/12/results/reference-host.json b/notes/mcp-apps/experiments/12/results/reference-host.json new file mode 100644 index 000000000..e00551ca6 --- /dev/null +++ b/notes/mcp-apps/experiments/12/results/reference-host.json @@ -0,0 +1,73 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "model_visible_tools": [ + "leaf_open_page" + ], + "initial": { + "viewport": { + "width": 414, + "height": 354 + }, + "document": { + "client_width": 414, + "client_height": 354, + "scroll_width": 414, + "scroll_height": 354 + }, + "content": { + "client_height": 270, + "scroll_height": 526 + }, + "question": "Where should a session live?", + "labels": [ + "Stateless JWT", + "Redis, cookie fallback", + "Postgres table" + ], + "summary_lengths": [ + 471, + 406, + 303 + ] + }, + "document_horizontal_overflow": false, + "document_vertical_overflow": false, + "content_scrolls": true, + "axe": { + "violations": 0, + "snapshot": "" + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "visible_status_box": { + "x": 134.015625, + "y": 487.5, + "width": 287.984375, + "height": 15 + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ], + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/12/results/compact-ask-420x360.png" +} diff --git a/notes/mcp-apps/experiments/12/results/reference-host.log b/notes/mcp-apps/experiments/12/results/reference-host.log new file mode 100644 index 000000000..045bfdd35 --- /dev/null +++ b/notes/mcp-apps/experiments/12/results/reference-host.log @@ -0,0 +1,4 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop diff --git a/notes/mcp-apps/experiments/13/README.md b/notes/mcp-apps/experiments/13/README.md new file mode 100644 index 000000000..dc64866b8 --- /dev/null +++ b/notes/mcp-apps/experiments/13/README.md @@ -0,0 +1,30 @@ +# Experiment 13: Final generated bundle + +## Purpose + +Repeat experiment 12 against the exact bundle left by the formatter, two +byte-identical vendor builds, parser cleanup, and full-suite review. + +**Changes from experiment 12:** + +- Product behavior is unchanged; record the final bundle's SHA-256 beside the + same reference-host, axe, layout, evidence, and keyboard readings. + +**Expected outcomes:** + +- Experiment 12's results repeat against the exact bytes being handed over. +- The recorded hash matches the twice-reproduced vendor output. + +## Findings + +The final generated bundle passed the same complete reference-host measurement. +Its SHA-256 was +`bd8134f2622641ae37512dcf7108b4ccccb5bed03bd842f89800e794272effd7`, +matching both reproducibility builds. At 414×354 the document had no overflow, +the evidence row scrolled internally, all three complete summaries remained, +axe reported zero violations, and keyboard Enter appended the ordinary Redis +choice at sequence 1. The only console error remained the reference host's +missing favicon. + +This run exercised the exact HTML bytes left in the worktree after formatting, +review fixes, and the 740-test everyday suite. diff --git a/notes/mcp-apps/experiments/13/commands.sh b/notes/mcp-apps/experiments/13/commands.sh new file mode 100755 index 000000000..1dc2385be --- /dev/null +++ b/notes/mcp-apps/experiments/13/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/13/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-13.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-compact-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/13/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/13/observe.py b/notes/mcp-apps/experiments/13/observe.py new file mode 100755 index 000000000..617d26e61 --- /dev/null +++ b/notes/mcp-apps/experiments/13/observe.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +"""Repeat the final reference-host checks against the handed-over bundle.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "11/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_11_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE +experiment.base.HERE = HERE + + +if __name__ == "__main__": + experiment.main() diff --git a/notes/mcp-apps/experiments/13/output.txt b/notes/mcp-apps/experiments/13/output.txt new file mode 100644 index 000000000..08dcfadaa --- /dev/null +++ b/notes/mcp-apps/experiments/13/output.txt @@ -0,0 +1,12 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 10 items + +tests/test_mcp_app.py .......... [100%] + +============================= 10 passed in 13.44s ============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-13.l66mxL/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/13/results/bundle.sha256 b/notes/mcp-apps/experiments/13/results/bundle.sha256 new file mode 100644 index 000000000..773677870 --- /dev/null +++ b/notes/mcp-apps/experiments/13/results/bundle.sha256 @@ -0,0 +1 @@ +bd8134f2622641ae37512dcf7108b4ccccb5bed03bd842f89800e794272effd7 skills/leaf/assets/vendor/mcp-compact-app.html diff --git a/notes/mcp-apps/experiments/13/results/compact-ask-420x360.png b/notes/mcp-apps/experiments/13/results/compact-ask-420x360.png new file mode 100644 index 0000000000000000000000000000000000000000..cc50838791959bf21b38f430b45e0515c6f864b6 GIT binary patch literal 42665 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/13/results/mcp-server.log b/notes/mcp-apps/experiments/13/results/mcp-server.log new file mode 100644 index 000000000..d9a8413ba --- /dev/null +++ b/notes/mcp-apps/experiments/13/results/mcp-server.log @@ -0,0 +1,3 @@ +StreamableHTTP session manager started +Created new transport with session ID: 0d4f0680b3ff403ba7198b9c9983c2e8 +StreamableHTTP session manager shutting down diff --git a/notes/mcp-apps/experiments/13/results/reference-host.json b/notes/mcp-apps/experiments/13/results/reference-host.json new file mode 100644 index 000000000..0d8bc1c0b --- /dev/null +++ b/notes/mcp-apps/experiments/13/results/reference-host.json @@ -0,0 +1,73 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "model_visible_tools": [ + "leaf_open_page" + ], + "initial": { + "viewport": { + "width": 414, + "height": 354 + }, + "document": { + "client_width": 414, + "client_height": 354, + "scroll_width": 414, + "scroll_height": 354 + }, + "content": { + "client_height": 270, + "scroll_height": 526 + }, + "question": "Where should a session live?", + "labels": [ + "Stateless JWT", + "Redis, cookie fallback", + "Postgres table" + ], + "summary_lengths": [ + 471, + 406, + 303 + ] + }, + "document_horizontal_overflow": false, + "document_vertical_overflow": false, + "content_scrolls": true, + "axe": { + "violations": 0, + "snapshot": "" + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "visible_status_box": { + "x": 134.015625, + "y": 487.5, + "width": 287.984375, + "height": 15 + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ], + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/13/results/compact-ask-420x360.png" +} diff --git a/notes/mcp-apps/experiments/13/results/reference-host.log b/notes/mcp-apps/experiments/13/results/reference-host.log new file mode 100644 index 000000000..045bfdd35 --- /dev/null +++ b/notes/mcp-apps/experiments/13/results/reference-host.log @@ -0,0 +1,4 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop diff --git a/notes/mcp-apps/experiments/14/README.md b/notes/mcp-apps/experiments/14/README.md new file mode 100644 index 000000000..d6f1074b7 --- /dev/null +++ b/notes/mcp-apps/experiments/14/README.md @@ -0,0 +1,42 @@ +# Experiment 14: The complete Leaf page in an MCP App + +## Purpose + +Test whether an MCP App can carry Leaf's existing browser interface without +reducing the document to a compact projection. The app embeds the ordinary Leaf +page served from a process-scoped loopback server, so the authored document, +runtime, widgets, comments, versions, and event endpoint remain unchanged. + +**Changes from experiment 13:** + +- Replace the compact ask renderer with a full-page MCP resource. +- Let the MCP server own an ephemeral loopback page server for the lifetime of + the MCP process. +- Declare that loopback origin through the app resource's `frameDomains` CSP. +- Offer the protocol's negotiated fullscreen mode while retaining an inline + preview. + +**Expected outcomes:** + +- If the reference host honors the declared loopback frame origin, the real + Leaf page reaches all three runtime readiness stamps inside the MCP App. +- A keyboard choice made inside the embedded page appends the ordinary Leaf + event and repaints through the existing runtime. +- Fullscreen gives the page enough room for its normal layout; the inline frame + remains usable as a constrained preview. +- If the nested page is blocked, the browser console and frame state identify + whether CSP, mixed-content policy, sandbox inheritance, or loopback routing is + the boundary. + +## Findings + +The run did not reach the frame-policy question. The official host called +`leaf_open_page`, but the MCP server rejected its `page` argument during tool +validation. The app resource still rendered and created `#leaf-page`; because +the originating tool result carried no page state, that iframe remained the +empty `about:blank` document and never acquired Leaf's readiness stamps. + +The focused suite and the same tool over a real stdio MCP session both accepted +the page string. Experiment 15 must capture the reference host's concrete tool +arguments and returned error before changing CSP or page framing. This failed +run provides no evidence for or against loopback `frameDomains`. diff --git a/notes/mcp-apps/experiments/14/commands.sh b/notes/mcp-apps/experiments/14/commands.sh new file mode 100644 index 000000000..f302ad328 --- /dev/null +++ b/notes/mcp-apps/experiments/14/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/14/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-14.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/14/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/14/observe.py b/notes/mcp-apps/experiments/14/observe.py new file mode 100644 index 000000000..5e4c3830a --- /dev/null +++ b/notes/mcp-apps/experiments/14/observe.py @@ -0,0 +1,132 @@ +#!/usr/bin/env python3 +"""Measure the complete Leaf page inside the official MCP Apps host.""" + +from __future__ import annotations + +import json +import sys +from pathlib import Path + +from axe_playwright_python.sync_playwright import Axe +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HOST = "http://localhost:8080/?tool=leaf_open_page" +HERE = Path(__file__).parent + + +def app_frame(page): + expect(page.locator("iframe")).to_have_count(1) + outer = page.locator("iframe") + sandbox = page.frame_locator("iframe") + expect(sandbox.locator("iframe")).to_have_count(1) + app = sandbox.frame_locator("iframe") + expect(app.locator("#leaf-page")).to_have_count(1) + leaf = app.frame_locator("#leaf-page") + expect(leaf.locator("body")).to_have_attribute("data-lf-presented", "1") + return outer, app, leaf + + +def measure(frame): + return frame.locator("html").evaluate( + """() => ({ + viewport: {width: innerWidth, height: innerHeight}, + document: { + client_width: document.documentElement.clientWidth, + client_height: document.documentElement.clientHeight, + scroll_width: document.documentElement.scrollWidth, + scroll_height: document.documentElement.scrollHeight, + }, + stamps: { + upgraded: document.body.dataset.lfUpgraded, + applied: document.body.dataset.lfApplied, + presented: document.body.dataset.lfPresented, + }, + headings: [...document.querySelectorAll('h1, h2')].map( + (node) => node.textContent.trim() + ), + widgets: [...document.querySelectorAll('lf-options, lf-compare, lf-gloss')] + .map((node) => node.localName), + })""" + ) + + +def main() -> None: + page_dir = Path(sys.argv[1]).resolve() + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 1100, "height": 900}) + page.set_default_timeout(20_000) + console = [] + page.on( + "console", + lambda message: ( + console.append( + { + "type": message.type, + "text": message.text, + "location": message.location, + } + ) + if message.type in {"error", "warning"} + else None + ), + ) + + page.goto(HOST) + page.locator("textarea").fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, app, leaf = app_frame(page) + expect(leaf.get_by_role("heading", name="Where sessions live")).to_be_visible() + + inline = measure(leaf) + inline_shot = HERE / "results/full-page-inline.png" + outer.screenshot(path=inline_shot) + + app.get_by_role("button", name="Full screen").click() + expect(app.get_by_role("button", name="Return inline")).to_be_visible() + fullscreen = measure(leaf) + axe = Axe().run(leaf) + fullscreen_shot = HERE / "results/full-page-fullscreen.png" + page.screenshot(path=fullscreen_shot, full_page=True) + + option = leaf.locator("#opt-redis").get_by_role("checkbox") + option.focus() + option.press("Space") + expect(leaf.locator("#opt-redis")).to_have_attribute("chosen", "") + event = read_events(page_dir)[-1] + + print( + json.dumps( + { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "inline": inline, + "fullscreen": fullscreen, + "axe": { + "violations": axe.violations_count, + "snapshot": axe.generate_snapshot(), + }, + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "console": console, + "screenshots": { + "inline": str(inline_shot), + "fullscreen": str(fullscreen_shot), + }, + }, + indent=2, + ensure_ascii=False, + ) + ) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/14/results/bundle.sha256 b/notes/mcp-apps/experiments/14/results/bundle.sha256 new file mode 100644 index 000000000..a740c9bf3 --- /dev/null +++ b/notes/mcp-apps/experiments/14/results/bundle.sha256 @@ -0,0 +1 @@ +b222706fb57665b1bb7018bdda49afa3f480aacc805819c0c3bad623372aec76 skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/14/results/mcp-server.log b/notes/mcp-apps/experiments/14/results/mcp-server.log new file mode 100644 index 000000000..f50ba1188 --- /dev/null +++ b/notes/mcp-apps/experiments/14/results/mcp-server.log @@ -0,0 +1,3 @@ +StreamableHTTP session manager started +Created new transport with session ID: 9c07dc36993c492a9e7cf34639c5225b +Tool 'leaf_open_page' rejected arguments: ['page'] diff --git a/notes/mcp-apps/experiments/14/results/reference-host.json b/notes/mcp-apps/experiments/14/results/reference-host.json new file mode 100644 index 000000000..e69de29bb diff --git a/notes/mcp-apps/experiments/14/results/reference-host.log b/notes/mcp-apps/experiments/14/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/14/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/15/README.md b/notes/mcp-apps/experiments/15/README.md new file mode 100644 index 000000000..5a04b867d --- /dev/null +++ b/notes/mcp-apps/experiments/15/README.md @@ -0,0 +1,34 @@ +# Experiment 15: Reference-host full-page retry + +## Purpose + +Capture and correct the tool-call discrepancy that stopped experiment 14, then +repeat the same complete-page probe. + +**Changes from experiment 14:** + +- Record the reference host's selected tool, input text, and rendered call error + before waiting for the app's nested page. +- Change no frame CSP, server lifetime, or app layout until the rejected tool + argument is explained. + +**Expected outcomes:** + +- If the harness targeted the wrong control or tool, the captured host state + identifies it and the corrected call reaches the page resource. +- If the host serializes the page input differently from stdio, the returned + validation error identifies the concrete mismatch. +- Once the tool call succeeds, the original experiment 14 frame and interaction + expectations run unchanged. + +## Findings + +The diagnostic run confirmed experiment 14's rejected `page` was a harness +race: the earlier script wrote the input while the reference host was still +initializing the tool, and `handleServerSelect` subsequently restored `{}`. + +This run stopped at the next initialization boundary. Playwright began waiting +on the empty tool `\\n - unexpected value \"\"\\n\\nAria snapshot:\\n- button \"🌙\"\\n- text: Server\\n- combobox \"Server\":\\n - option \"Leaf\" [selected]\\n- text: Tool\\n- combobox \"Tool\":\\n - option \"leaf_open_compact_ask\"\\n - option \"leaf_open_page\" [selected]\\n- text: Input\\n- textbox \"Input\": \"{}\"\\n- button \"Call Tool\"')", + "url": "http://localhost:8080/?tool=leaf_open_page", + "body": "🌙\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/15/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/15/results/reference-host.log b/notes/mcp-apps/experiments/15/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/15/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/16/README.md b/notes/mcp-apps/experiments/16/README.md new file mode 100644 index 000000000..3abb612f2 --- /dev/null +++ b/notes/mcp-apps/experiments/16/README.md @@ -0,0 +1,30 @@ +# Experiment 16: Hydrated reference-host full-page probe + +## Purpose + +Wait for the reference host's asynchronous tool controls to become stable, +then run the original complete-page frame and interaction measurement. + +**Changes from experiment 15:** + +- Wait for both visible tool options before selecting `leaf_open_page`. +- Assert the stable `{}` default before writing the page argument. +- Keep the app resource, frame CSP, Leaf server, fixture, and browser readings + unchanged. + +**Expected outcomes:** + +- The rendered Tool Input panel preserves the exact page directory submitted by + the harness. +- The nested loopback page either reaches Leaf's readiness stamps or leaves a + concrete frame/CSP failure in the preserved diagnostics. +- On success, inline and fullscreen dimensions, accessibility, console output, + and a keyboard-authored Leaf event establish the first full-interface result. + +## Findings + +The host shell appeared immediately, but the MCP tool options did not hydrate +within the 20-second barrier. The failure snapshot taken immediately afterward +showed both options rendered, so the selected tool was still never called and +the loopback frame remained untested. Experiment 17 raises only this discovery +barrier to 60 seconds. diff --git a/notes/mcp-apps/experiments/16/commands.sh b/notes/mcp-apps/experiments/16/commands.sh new file mode 100644 index 000000000..9b94acac3 --- /dev/null +++ b/notes/mcp-apps/experiments/16/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/16/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-16.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/16/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/16/observe.py b/notes/mcp-apps/experiments/16/observe.py new file mode 100644 index 000000000..2140cac1e --- /dev/null +++ b/notes/mcp-apps/experiments/16/observe.py @@ -0,0 +1,266 @@ +#!/usr/bin/env python3 +"""Measure a complete Leaf page after tool controls have hydrated.""" + +from __future__ import annotations + +from importlib.util import module_from_spec, spec_from_file_location +import json +import sys +from pathlib import Path + +from axe_playwright_python.sync_playwright import Axe +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HERE = Path(__file__).parent +source = HERE.parent / "15/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_15_observe", source) +base = module_from_spec(spec) +spec.loader.exec_module(base) + + +def main( + tool_timeout: int = 20_000, + wait_for_options: bool = True, + use_dom_gate: bool = False, + stable_panels: bool = False, + body_call_record: bool = False, + tolerate_mode_control: bool = False, + exercise_comments_versions: bool = False, +) -> None: + page_dir = Path(sys.argv[1]).resolve() + result = { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + } + } + failed = False + + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 1100, "height": 900}) + page.set_default_timeout(20_000) + console = [] + page.on( + "console", + lambda message: ( + console.append( + { + "type": message.type, + "text": message.text, + "location": message.location, + } + ) + if message.type in {"error", "warning"} + else None + ), + ) + + try: + page.goto(base.HOST) + if use_dom_gate: + page.wait_for_function( + """() => document.querySelectorAll('select')[1]?.value + === 'leaf_open_page'""", + timeout=tool_timeout, + ) + tool_select = page.locator("select").nth(1) + else: + tool_select = page.get_by_label("Tool", exact=True) + if wait_for_options: + expect(tool_select.locator("option")).to_have_count( + 2, timeout=tool_timeout + ) + expect(tool_select).to_have_value( + "leaf_open_page", timeout=tool_timeout + ) + tool_input = ( + page.locator("textarea") + if use_dom_gate + else page.get_by_label("Input", exact=True) + ) + expect(tool_input).to_have_value("{}") + + payload = json.dumps({"page": str(page_dir)}) + tool_input.fill(payload) + expect(tool_input).to_have_value(payload) + result["invocation"] = { + "selected_tool": tool_select.input_value(), + "initial_input": "{}", + "submitted_input": tool_input.input_value(), + } + + page.get_by_role("button", name="Call Tool").click() + if body_call_record: + page.wait_for_function( + "path => document.body.innerText.includes(path)", + arg=str(page_dir), + ) + result["invocation"]["rendered_input"] = str(page_dir) + elif stable_panels: + input_panel = page.locator('[title="Click to expand"]').filter( + has_text="Tool Input" + ).last + expect(input_panel).to_be_visible() + input_panel.click() + rendered_input = input_panel.locator("pre") + else: + input_panel = page.get_by_text("Tool Input", exact=True).last + expect(input_panel).to_be_visible() + input_panel.click() + rendered_input = input_panel.locator("../..").locator("pre") + if not body_call_record: + expect(rendered_input).to_contain_text(str(page_dir)) + result["invocation"]["rendered_input"] = rendered_input.inner_text() + + outer, app, leaf = base.app_frame(page) + expect(leaf.get_by_role("heading", name="Where sessions live")).to_be_visible() + + inline = base.measure(leaf) + result["inline"] = inline + inline_shot = HERE / "results/full-page-inline.png" + outer.screenshot(path=inline_shot) + + app.get_by_role("button", name="Full screen").click() + if tolerate_mode_control: + page.wait_for_timeout(500) + return_control = app.get_by_role("button", name="Return inline") + mode_control = {"return_visible": return_control.is_visible()} + else: + expect(app.get_by_role("button", name="Return inline")).to_be_visible() + mode_control = {"hidden": False, "text": "Return inline"} + fullscreen = base.measure(leaf) + result["fullscreen"] = fullscreen + result["mode_control"] = mode_control + axe = Axe().run(page.frames[-1]) + fullscreen_shot = HERE / "results/full-page-fullscreen.png" + page.screenshot(path=fullscreen_shot, full_page=True) + + option = leaf.locator("#opt-redis").get_by_role("checkbox") + option.focus() + option.press("Space") + expect(leaf.locator("#opt-redis")).to_have_attribute("chosen", "") + event = read_events(page_dir)[-1] + + complete_interface = None + if exercise_comments_versions: + lede = leaf.locator("#decision-lede") + lede.evaluate( + """node => { + const phrase = 'session state homeless: today it rides the app'; + const text = node.firstChild; + const start = text.data.indexOf(phrase); + if (start < 0) throw new Error('comment phrase not found'); + const range = document.createRange(); + range.setStart(text, start); + range.setEnd(text, start + phrase.length); + const selection = getSelection(); + selection.removeAllRanges(); + selection.addRange(range); + document.dispatchEvent(new MouseEvent('mouseup', {bubbles: true})); + }""" + ) + comment_button = leaf.locator(".lf-fab") + expect(comment_button).to_be_visible() + comment_button.click() + composer = leaf.locator(".lf-composer") + expect(composer).to_be_visible() + composer.locator("textarea").fill("Keep this rationale across versions.") + composer.get_by_role("button", name="Comment", exact=True).click() + leaf.locator("body").wait_for( + state="visible" + ) + expect(leaf.locator(".lf-thread .lf-quote").first).to_contain_text( + "session state homeless: today it rides the app" + ) + comment = next( + item + for item in reversed(read_events(page_dir)) + if item["kind"] == "comment" + ) + + version = leaf.locator(".lf-version") + expect(version).to_contain_text("v2") + version.click() + leaf.locator('.lf-version-row[data-lf-version="1"]').click() + expect(lede).to_contain_text( + "The monolith split leaves session state homeless" + ) + expect(leaf.locator(".lf-thread .lf-quote").first).to_contain_text( + "session state homeless: today it rides the app" + ) + marked_v1 = leaf.locator("body").evaluate( + "() => CSS.highlights.get('lf-mark')?.size ?? 0" + ) + v1_url = page.frames[-1].url + + leaf.locator(".lf-version").click() + leaf.locator('.lf-version-row[data-lf-version="2"]').click() + expect(lede).to_contain_text( + "The monolith extraction leaves session state homeless" + ) + expect(leaf.locator(".lf-thread .lf-quote").first).to_contain_text( + "session state homeless: today it rides the app" + ) + marked_v2 = leaf.locator("body").evaluate( + "() => CSS.highlights.get('lf-mark')?.size ?? 0" + ) + v2_url = page.frames[-1].url + complete_interface = { + "comment": { + "kind": comment["kind"], + "text": comment["text"], + "revision": comment["revision"], + "anchor": comment["anchor"], + "seq": comment["seq"], + }, + "version_travel": { + "v1_url": v1_url, + "v2_url": v2_url, + "marked_v1": marked_v1, + "marked_v2": marked_v2, + }, + } + + result.update( + { + "axe": { + "violations": axe.violations_count, + "snapshot": axe.generate_snapshot(), + "report": axe.generate_report(), + }, + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "complete_interface": complete_interface, + "screenshots": { + "inline": str(inline_shot), + "fullscreen": str(fullscreen_shot), + }, + } + ) + except Exception as error: # Preserve host evidence before failing the run. + failed = True + failure_shot = HERE / "results/failure.png" + page.screenshot(path=failure_shot, full_page=True) + result["failure"] = { + "error": repr(error), + "url": page.url, + "body": page.locator("body").inner_text(), + "screenshot": str(failure_shot), + } + finally: + result["console"] = console + print(json.dumps(result, indent=2, ensure_ascii=False)) + browser.close() + + if failed: + raise SystemExit(1) + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/16/results/bundle.sha256 b/notes/mcp-apps/experiments/16/results/bundle.sha256 new file mode 100644 index 000000000..a740c9bf3 --- /dev/null +++ b/notes/mcp-apps/experiments/16/results/bundle.sha256 @@ -0,0 +1 @@ +b222706fb57665b1bb7018bdda49afa3f480aacc805819c0c3bad623372aec76 skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/16/results/failure.png b/notes/mcp-apps/experiments/16/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..e962c9270c5a5731d8213a3347a9cf7ed66a0ee2 GIT binary patch literal 15867 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/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/17/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/17/observe.py b/notes/mcp-apps/experiments/17/observe.py new file mode 100644 index 000000000..cdad5e4f8 --- /dev/null +++ b/notes/mcp-apps/experiments/17/observe.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +"""Repeat the complete-page probe with a measured discovery timeout.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main(tool_timeout=60_000) diff --git a/notes/mcp-apps/experiments/17/results/bundle.sha256 b/notes/mcp-apps/experiments/17/results/bundle.sha256 new file mode 100644 index 000000000..a740c9bf3 --- /dev/null +++ b/notes/mcp-apps/experiments/17/results/bundle.sha256 @@ -0,0 +1 @@ +b222706fb57665b1bb7018bdda49afa3f480aacc805819c0c3bad623372aec76 skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/17/results/failure.png b/notes/mcp-apps/experiments/17/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..e962c9270c5a5731d8213a3347a9cf7ed66a0ee2 GIT binary patch literal 15867 zcmeHuXH-+$x^_^vY(zjsMWxvQk*Y{9QIU;w1*8`d>AiQNTS8Psl-@!_gh&lNbTmk> zO7BKW=%I%Ml6(`-J@=k{&fR0&^8LAE?4L|l)|%xl&-1+Rd~r`(mF38}BM=CLMeXh# zT?pimCIoUY?AHTeQM+?X-#>L}oH0?qAHRy1moNF{^l76&_NBu`B%}9D zJk~dU%P4x7SM-~;mZmez^hQ&`@t~!m#)6@^^F>3LqbQO2YRo5$$COW4#$cG@1^QTpqAds7P?y!RIo_c!_0=c6y4Q6uxxGWgf z{~r(Y#Xww4t*!O?mli0LrbADNrVb7sD(LkekD#}1rNp-pHkf)0;5c&d!YfuAzD&Nl z^aH{415=UJyV?Hfl5cj@CCV)${U&pBb9Eq)kx0!0U*V?7*rpsI zF-8AuPPf`z>t0xZLIJjeq)^5?%y%6{-L4GYIbdI@))xf{(I(Oh3)AU_v*dhC6o!lUQi~; zC;H2V{`0r%C!7W!cLm5)FKwknVkgKS*|kHai_oS8MZS2O!7$u#XbLZMV-Tm<*kRUxDN22)SgQ<-==kP z=%L|!-LEKq6~sX-srQm9l-%J}8@T-|n`JP$EFO(`kw8T(TipLznO9o+@ygZ)cQX3P zZ?6ND#-Jo(0*?B6)Xm($fI>;c;wtpe>j@Uz?AyKRd3mdzs1T*ClwCClgl5Q9aM)wy z;dmL&WngLHnsxKI7yWq@*So; zebd>|X>sC=yl9+ye#xvOQa+Bu5v`0U9$l#s6K0bThYRH+VcV_n2$n;`W>PWQcGu?( z{3>vs?ZVX^?|SZHYNTxY>Mf7xSi;678`f_f+^yek8XET_4`Y0Xi)^6t@4e}vA^cit z(GW`}Lz^v0cFwPXRbk<)K$?iKgS~y~UMt$Fu?-22L9FZ6Osl#%>~SicGStCEJa_(i(R1;#Y+|0Dq| zVPUc9ppz(+xalPt7&tx0L<~6-zvo>o5(QoO9*>5#_Z@?L`Vq74*Oo4lqA(LtaEd$T zm*~zJex0=I*0%lco>GOb%E7#zi9gjdHy_Oivbq2DcK=;HyUV3}UV@|3$_T84ezhFy3GEgg~Bre9i@O%GHaE5XkeFEev4zMCYNm|Qsp9@UpAJF32VL}hqB2|3T|e}wB+_rE)nNZdD%pUSmY9?B z3kraF+BKYaj)9aiWLWx>Q<%jnHggU=Pi|o_@#rEapn{tMhO?GDRC&hoof0m+R-B)O z?MVn@k|mu|xJkc4Z#dVFpJwDO^z%?#OCnh8wM^;wTqRbJvpB<94ztd295%1=)`rx% zU9k1#^lcf`RyxYoux>EL_&mIYq0aT&v>>dS623KPzVUU}Rd)K5)u6e@XGdj3s>h1T z))tEnR9?>6ecPcPx;Av_HFV((o&&|sQ%7qu9T%#mZoi?nwaXWjQF5$$uzr|B-*e#*Q<^-op5j`)yQfhwwx`OuQZwc2lwapa(4G;(lmv)kuV9o}3R_Oep~de$@x3_> zvBWN2e}SKqTrz8zHDGgf#b##1ldwV;qYCIlOe{DNw(RFw#0ZQzxCa?{fF1~F} zI~UriW$IQmzvDM4kDo5V>DhJ`Xai($bpL&Q4!!lKWvRPcXXPF@YIMm{KlFCjE_Ver z423ATNq{M1A7sv@_XI*DzxTEAYpV<9I-F<QR?=JtHT}62;T{{+{LJ>bxC_ZElj}#Gq$r$h+{-4P}8l{QMJX zSDRUw)ztUHd= z)_+vLZ4 zT-y&p-njsjmvTG`8Zy0xF0XRTmo%uvw=u_%rSa4k1dCNHz;R-pkSFCjAh)iQD=}@I zA>5Fg!eG(1F)V{YJ1d+=rjR6=k5yT-u~4ounw(QOA~Q2nBxPoUtbetCfv3*q6y)Zp zfaiHBZn;$AJtz?PggcwH)XMWIe=$*{=K zwUr>=P>>_qT+Kr(Xd^+(bsN{8C8$Fn@mD}Fe;Xd&1j35Le#V{xFwW|jtEDE=_si#9 zey<~hCk?NepRK><2H~pJ#czT%7t=lAJ8lE45CD^SF3}4t%Pj}lpgcMJH#!>pCdEC! zm~$Y5OpJE0xo*M4XD_VW_tfmdcdhCvjdKFTfcas@K{J=RQU?jqnx%z9kcTfWdcNZh zpmt($RE#gx7(Z7gA~kA1_vTc?!zEKTy zgN*FZ30t(H;o0JE02>N;b#)kfkZoSR)K%pvr=KO5c`q0fpf`TBCOvp?;VEu}8onG4 zfe7CR>Go3Gc$J0Ed?lSkU{;>ELBE#TRsf}a4Ts5WuX@XI53Cd|z6OaQ-)~GWal+Uo z?gE0lwEJ9c0ap|4#uZ56AvIt+AaV2Skl#BszK8Phr*vu~r84ZI+Vq{s00TTw^YCbX z&3yu5BJnrp2lOnd_38E%&GF5J;Sg7+YTxX;V3&7Pk5<4Gv0mzGFwoU2SgPx(&hdgCL+Ku0MRs&aQtHM_r-l+Fj+Vb^V@maO24Os>YnwST>l!*qMNN>e7AF1 zVij3Ooesgc|6L1UXNCxizdcy$N_hpcx;yz&lp^=6RXk5kAH(ia-KbdTz}YsiY4DJ(g~jGmRi65V zDpQL97fn)|D<{=`eCoAA1*~3)g(Y&A%Ui!c&-g-;1@FcHh$aU5-XkDEE^kM0n<%AW zn{{Ls#S&^(*PZ(NC7tr5Hg_^ujekOX1aHVfv{1qFD4JB|lurY`e??Gq0)`q#EEj3; zZ*UVs={5AXfNBP;>K@!4b0L_nRM`DcjRCX5J>6ZoX8(|mJB*1u8-&j^te14%6F`NQ zQ>CCh<%EL8yh@Yy-Ufl?Z}>q3>~6hMt=~8q&0!Y!z}kB1ESjr+q~}7q3ogyAdZUg6 zO*}(OlBap6Omh3)3Ke+0=noqiRTb6{dbGV^f}UxpaK+rZQ=l(KVdD?Iu{3xBj+BpLqp^f2sOjoXZomK75=sHimH{c1n@)X9*Ui#LudT z&f5(Nq`meiMcMUC!$}!p2NcdXHIY=<`8sHGd3^CnNa%yFmAxX^$&yhe#F+n9Bd1GY z*Y{fog@mdVDPJV;<%28ou$`|T=(`($f>n%#FJd;9c{^UVi|Ku>+@OLm?24bV4D9&? z(2dX-Pu*_Q>Sp0*bCSX)pts8v4N{6%tH%SIYgOsAQahf?lGU-K2PNerctd;%b~`z@ zZf}7zeGG?NO6pPnDUxm_U3RhFs4&J#G*G*u5m!JHTd2Ep6X=fiu0!3g_kTyzxG!!L0 zKKHSK)!z8}-bhN90_jJ)sEk*2zLc0SxiO6~9MxhO;(BLL^c3DoDuo#utCJ#S?d#){ z7+bND1*?&we8untmks_%$8f-^ceA~{#sLkdi>J%{nQ@wr8DvgkBhuR&qrXTH9>O?(F zdXVc@*xz$OXad%}g~zjC$H-{9JSkjAY|Ou53)jFRHENY2BCSYftKaQn%U)HJ0URw# z>Bqb1=pW)PTfOGn4rGUH_gE7b^Kp=6V5C|$R+-JAc$(mznGZ?C5DwE$#L5Cgz*NjO zEg~#ef#d?)+LHDgbEy}P^ImwN%3(1Bz-i5DaW1BEuci}LYIQ)^QAAB|M~vje#!QnY zmVTl~Cvm+y1(2ReMg8ssf>;T=W2KhZ#6%)$@0{<@4#QRMxDAFm!~-$PHK1*2xF1e4 z76&?x)EKd@z1yTKiRtsP+cwi538v-b#@A3LIQwC4dG8_Mv&z$9D<(mm{kQR9G}+}P zW|MM28JY+B`t)UlMHI%|pNXMerHtJ2#ZfUGB_X5%K8Cd z0W$E%H7aGBLI{c4Bk#efFD@iFr9D^~C~G(5*q*Z>1H%v5vTCmY5ZT>Q(#hAg%iG)k zj1mqLS_&|Xi|kq!kY#3;kRW_N4)tC!o4CF*UTs)`Dab|wN4pdyAFwDQ#ln84T}0j= zx64i%Bd*4GUQhB))N%|svyQPbGd1N{NwD;tUx_m}RqBhBG9opnxWqytR5b`;MYyNF zx2GZbMpl)XsI#(xyDnHWGNVwbFwh3F&9BNKZY4G_L9=-Mra!}HDuYFh?cu>yixY_Q zvEUe7v<`IlqUKlUy#^oC@=EH;E}QH_Bm7w0E^nZ)Ls#KvtDMUnsNl`D=?qr+Lh+gC z4%v8TkSto?uMV+yudK%8A5dC2cYrH@0G{C{10++4=A5I!e?fc!C9s9^ZvC>KYpI-dC8XSh?lA7xb0fZ_*dt zsuc5BRNi(IR268O#sqWE^?8CzNn@5`pnmvBCE@9D0CqxU)}}PVE&Y~R=yzxLzAL@6 zoP2ZEx~Y!3u;`|=+A?(tDUXhLIkEfjksOlNb!ixPm{*53J;C_f2i@#~Q>Ta_GHYM- zy3>GeL`b7GGf)A3)%Iq(w%WbR%UU9BXzsTm39HX{BU;#{dIo#&_XZbqJ&UR%56JWJ z@uj=m7UU*1ONdslQOQzCw89xIKJk&(~h z7wR|P&5{e^5P9N1*6dtsrzUdgp^KRSjdWFa4kj~ymhjJJu=;%-ST64x2>LIqLgy<9 zmbB4+=`gi)3&o(k^0qgJjGRM@rgU)m{SP9xkf(PnDpnz-4iQ`4Lpbu9rRfgPjG?Q8 zL1CXi!s`8TYIa(C-Sa{qWqWszhtf8<%UO<}xQL&dM4iqu#;s>EiuuejG`yBwqvI;v zU8w~@)L9^pQWum+!`2CUG_N!&_G5OwB0X9NQ?osbYv>V2qk_kxq^avN1)r4%pxZ5z zH5AIw>Qgu(#ii!+i)MN`F?FgLw>z{SI|&h0!ZVb zQ7@f|p!Kr^xIZ%+;K>=eqSSUQOaajN`6g512yAG@iZCTm!^@9h9rKG?Ro2Dlr9;zv zwT)6bWbuTkX6p8OE{#XYa9?3l<@LB{WMpdS2M|%Mq-*e`QZ0_~7(GsMt6cw#;MJl` zWy4%$lkBpeQvHStGt6xJ2sLx3p@D_(k z@l9!XG!qIXert0X_V7l>Gj9K#HF!jRnQ&e~Hg&VNyUGuwDu!Q!qW}kN2I>fwDf1fk zRrXT(^Np z|6WNB7-5o)nv-K(A~m#U2X7$Y7=yntspiXVGBWk>0|K#=*vddtnQn~8e`I!AU9L2 zz@{bKrUTm6p~-q@rPVI2+Iz>xDX(fhM;Yec$%3s_q}2jHr0O)&eTQuh!^;@CJ#au^ zijw{DZkH#}`O8%IQIj0{fT?p8(V{x5cYck1f=+FzV?RAjdNa&weUUjfuxzO;~`7Sj+tFOj4EQbP$P zmtW`(a$J(P9FUzPK;>ZhwtZrI7j!C;z$?F7I*CAZzYeU+aWrTj`BoggORQLlyU)fO z_`Pt|9muY*ZE~O6@aX9jm(A62>C;Vq6aJ0kShF|?r1UHhLf|$DXG`asI6p+Z3@zT8 z-LKE_xz$Rf+bkciCvO48tafaOdf9 zP8b#w$A?z;^kYq2=RaGmg3u!X#0UPj2QQ;SwgcLC8lw2&yGph7HCH!*3{pJoY-OgW zmjdPxaFOwDK_$Mts%o}=UiQZt8j56BXctxds7h+XjTl-4NsJ+8_SZKfIR9R3QjtGo z-QfVFC%&TU+?yJ3o{`v*N*z=h`^2tzl9&0@rw1wUTQ)X>;xQ$pr>X^&BRz$khNy4p z%ES8}9mqCl?Gzq(wdB<+rj_c8hWW7Ak^6L03r>+vw`_4Rw^9)?Q(+6 z-?f0LPLJwkuNIpI3`)t`_5h^t@d?=;ZF8>%muC8W2dE~o0XZrjuEDZYzs_c$K={2K z(1IKwMYYDNJ@Iwu7{cz?tn>6>^nN%%o%H#gNr1I72AgVt=?f=;bC;J4p}Ybm+w!U$ zKa7PQT5Dfk(*!<|oikh_G4Gw53ou%SgpT5Siy(mvOOy`J8g?# z;Tmifjy<{uO~>E8_d>sX*=4o5S(35;s>uCUy^QFpTc)&6g8C$oJNgztm{Yu(r??S2 zMGqM52ep^zCcY2piY9JINt|X^H8G@TVT6eYyJs=sF^KfLo2k412smB&{@UWjJmdcS zf@I0+DnJJ+&4XAV??4|xkG9XU?lqs0QUgN(@Ib?X=>AVyWx+r4EA~9a>h>tcu*%0x z9XavvG9Mp;rRR+Dr8F~##+jenk;G+>-sUVf4N<1nvb{12>U@CRhwr!|x5#?ZXH_h3r??Mu#Cmb#)0aO3;s@fk@+&@|N-_yol!}|ru zf7&X0^h5vwdFc6DP%j+GxF;h$;ctE5%N0=AFO`7fWGQnQ?B{<2^-Ft8lOt#iaQeqC zA#xcY%Poe?0GJ&U0?K14houk~VftnsNI8&FX24GO{{W8T4CKy!NgpN%eYs|%%So0E zZNoJo-Y^PEUVQ&3fp8NR1&5to|4jPQpZGIA?}DJHv*SrELrUpU@WHytKUZc zvE+J8wl%dY+sWS1*;yTuSS^mwGl))_#Hj&+IAGT9!fiaKZvZ0t@)!uZyoCQBZ9MAa0z-l@72NYf$g1bFSwq-ADu&}ba9;eblVd|_5WV8lBFR?zya`E&loqgArF~i)ga%Y@w{V1 z%Es%J!RqUA>Tm=(n6`Ew!|ky?nd7urM}5&f?qg9uF)pB$L}@@qO+0Go$0!k63f)oG zG|IFW2J2k1xXp>$-KEZ!BhpQI6`XusuG43?Jt3v0ww{okZ&{0&^|?s9O=55DJ(*i) z!on(oc6jS|TfNeB{Vnd_zu(?VcZ#_jCw$l|NER|8A|VS2p5KdM752uJVWEM;ENsq2 zUl(9WlY{Z-9?Rp(zkltzclApvij=o>B0fyG@<&I*AXk<1 z&~;RIcTR!g-gG-bF%+!cf_vA(Dz%-^5Ta!s(jNVgDrq1$)1ny9*(Y6dZ-~5_!dtaN z*)k5w%W9-x&ovo&-@$+{CxC2+eB zsU;u~yL8V*@%+AG4 zCUvU=0-EDT$0^@OdAX80)Q~;~rb@;qZ;OE*pWXVY^tWhpZ!aG$FBv#F^B9!7O`Yby zri*>BnL(ih)fB;X;dKHyaC<6DDe;kwZdR8wWC1k)hIq!hZ# z1S&(5u6C~2euG;VMYhMl4NP>$GKw!AZF-IJ-<&su-*Pc;Fm7IEKP>N7jdyaZwUjZQ z%NgYnixD}TG48DHfG-?%Q$8q0#YRlb>{l{+A57|^luGH*(Vb)Q)(lL~}u^Xbit>0Nt zIX4o-M()joyLgh#ihG)BHmpGN&C6%Z&*GEbtD&^HH?|X;q)q&0a1Y1(4XzxWpz5SB z++==x@McLh509jmfzKJ|(ylf%ZwcvBonq98TQk*nJg0Cwyc#v+O?_}=s@}qf6ks@B zwtdx7n;08^Qh?dT*T)6F@XKO;-J=~ypbs(dM|!<*-nq4ob~Z)oBdg%mG^lZoWp_V9 zxTK%oiQkL=twnH1@Bs+DQ+D5Th9od`z?}86`@r7txQet}`csiTC)|8?uG~?%e}5qg zvAmt4Siaa>Vru2m{_ui%Xv4u~t_m*?kJ&8d*Dl5~uDIqX>SDk68ERX_)}T?gC8o{J z4T`l{?#C*A>j8}`pI{O(2R|k71kBE$R{RzSdUoZ)Ob<4`$A~Qj&Kb9+)_Z#O=d&R` zwmklJ!5JLA(XX%arHylKc4c9E{0c%O6k@}ps;hBu(yu8K+uzrZ6%N>jOZyGc`*1r6 z2qd>sO;(mO-bzo3vm8o|Hs#ovfjl>A!ydA4|5>wBX%3TGVl?H6zJvZCQ!?8#lckMG z7GH~TvoL%Zd7-^d-eWy)xUBWZ*W92%hLE5dsqI?lg1C~9BMDVJyt~;lZi<1%w>hQ$ zy|yQ7#_|Nital^B@~kwr4D$;4MpzrAg*@)+Wy%>c0V!PF&uxEN=lhqm@K2qi%zSa` ze1&((?++N=y~y}5-MNa^bLh07r9OmNZ5kpRt4tc1AdVaVN4(#ED6eMk)2NuDRSAp1 zTRGtmt9&Qx-u!z)$PQLQ0jcrdI0WE1|G^1>WBzB2NB@-f{|Ns76e8L8s%u0naweYu zv}LuNYa*5X9m{?v>I3hqn0%)mS%}LWe`Qv;c6_HS!$_e%Xw`fol~+`h?da#w-=U+-)F3ugQUGyZcd91Uc6$m#6x zrYz9jNm+$yX;qquqTDPJ)%jFZRFX8aN6$y&%IHevOxHz4$Xt!B70K1&x2-qJP|zfvcqia0FiV)(%m& z2AzRc1_H(>_a*bf@3w%7V%+BL8AKaD&rZy8E+{WZFD?Dxq=J5&{_}$j;C`4yM`IXH z?KHecR_$s(kZT{~E5dGoU!R{nsa^c>h=BdXgU~Klj@SEcG&}k#XV`1j{bh_wP5@AR zHo7=||2eL+VbeF8iii&`Je)D*mz|6x;d7Cm-nPm9KI@V}3c&_VHuy zI$xYAfuEk~u|A`w*FRQ%RP4CLl^V0_^!=5KV;mh9Pk$E+4b{?X=8fM}EVZ7hWg${8 zI5<+z9mMnDm_>$?WcTk_BpRm6y^QE>#kGb7ywm0cWm)f*+B8(C+f@guj$b&(32-g$ z)1$tgp_BYZ-&7(lUc7#)GWtR`Ye=+C!ClA6u5w>}6aVy8PrOPD`SSjX1HSe27^NBy zIi&t>ri8q@k|4U6tnH}V%iHn6R4nNqAJm=fsj$!TNIo@F(m1clpE946yml|g!7-N; zo{-D&^Sj?blTfV1M-A4}yP4~qmHPUz>T)M%vN-x*yZDs+nKBu_lE*5R+=2e3rcM$9>6w_`P;)%4qJ7mcp)2H#)+ux{+PqDdCB}48 zxMOEJh77915Xg?DhNQMOhn8~=xS>Lp9WMRI|2+Apxuk^|r|uol%nR02QX5oE7RqiJ z?9W;s)-PAGy#8^EWrO@nqTJ6NQvikawoVaG&*8@tebW3Y59n+o+^U`3P}zVfO7FL#cEo7%$F!I8$j)bxq8FH2{Tv+C)w80msExmE_jAfgPQJ{N z9jsOGc;0OINWLqtg=mfab=1$J)=}4ZS>jbWV64mLW!J3geLp%Zff;OzfZ=|LU{*~{&BI5_#n?fp|E<=RmZ7te z6qRlpQVhFK@VU-i1s_Jv<{r6>hgDuS95mXpxWCMPDvn)menk?c)!q+#``AgM^%bS# z8(BN0%Vj&WNN_YeX5Y3?M@9e8R6?l)V=3@5w#pkUE1AJvl`d$Wx@VZWeB>5=oad|S0Y+F5^*vN5=p zR#h7JBEd{|z(`J5(#s6XGZnM<>N4jM^kvQIu(Qa^=E-hzBRdX0%AK#At$jpC@1-Uq z+Xkh5dE@n+W7SNc-RPogoED-Td0!HZz||w1Nv2a`-t~Tc1dTk zwziYVtE?CF&lX=v&??rd%nGM8f%`lz&PwX}9}CE<<#oH6LC!HK4Sbk(cCz_kNzkAs zKe9vM=h-68O4t!RhYh+r1nsizwJf7oX~k%(zdtKxlXV(%X2F-dm?GY zl!G*MeZFuByT_6W+M(XR_Z}2QMw12p9!`{YADIL+7i$I<3_5nrM0@L|^ubb7s3tkK z!R7dk;2hR=8U9KcJhega*#5t7XJ_Z9fN}*$AElRLDDe?lW&E3WLzMOY7R#Bvc)AS#F*Pjp zA-V)bwb2oEK?VXT?UGWq%6M>FW_c{zTCTQ5J9Gci@u&A+`(jzr*>E>m zOzUIdTN=20nHXW7zg` +through Playwright's label engine, while its timeout accessibility snapshot and +screenshot both showed the replacement select populated with `leaf_open_page`. +This is a locator identity problem during React hydration, not a missing MCP +tool. No call was made. Experiment 19 uses the form's concrete DOM order and a +browser-side value predicate, avoiding that stale label resolution. diff --git a/notes/mcp-apps/experiments/18/commands.sh b/notes/mcp-apps/experiments/18/commands.sh new file mode 100644 index 000000000..a50ffceeb --- /dev/null +++ b/notes/mcp-apps/experiments/18/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/18/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-18.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/18/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/18/observe.py b/notes/mcp-apps/experiments/18/observe.py new file mode 100644 index 000000000..c2d15bfd4 --- /dev/null +++ b/notes/mcp-apps/experiments/18/observe.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +"""Call from the selected tool value, then run the complete-page probe.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main(tool_timeout=60_000, wait_for_options=False) diff --git a/notes/mcp-apps/experiments/18/results/bundle.sha256 b/notes/mcp-apps/experiments/18/results/bundle.sha256 new file mode 100644 index 000000000..a740c9bf3 --- /dev/null +++ b/notes/mcp-apps/experiments/18/results/bundle.sha256 @@ -0,0 +1 @@ +b222706fb57665b1bb7018bdda49afa3f480aacc805819c0c3bad623372aec76 skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/18/results/failure.png b/notes/mcp-apps/experiments/18/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..e962c9270c5a5731d8213a3347a9cf7ed66a0ee2 GIT binary patch literal 15867 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\\n - unexpected value \"\"\\n\\nAria snapshot:\\n- button \"🌙\"\\n- text: Server\\n- combobox \"Server\":\\n - option \"Leaf\" [selected]\\n- text: Tool\\n- combobox \"Tool\":\\n - option \"leaf_open_compact_ask\"\\n - option \"leaf_open_page\" [selected]\\n- text: Input\\n- textbox \"Input\": \"{}\"\\n- button \"Call Tool\"')", + "url": "http://localhost:8080/?tool=leaf_open_page", + "body": "🌙\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/18/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/18/results/reference-host.log b/notes/mcp-apps/experiments/18/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/18/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/19/README.md b/notes/mcp-apps/experiments/19/README.md new file mode 100644 index 000000000..303c6df6b --- /dev/null +++ b/notes/mcp-apps/experiments/19/README.md @@ -0,0 +1,29 @@ +# Experiment 19: Concrete reference-host form probe + +## Purpose + +Avoid Playwright's stale label resolution during React hydration by observing +the exact DOM value read by the host form. + +**Changes from experiment 18:** + +- Wait in the browser for `document.querySelectorAll('select')[1].value` to be + `leaf_open_page`. +- Address that concrete select for the recorded invocation. +- Keep the Leaf app, framing, fixture, payload, and all page checks unchanged. + +**Expected outcomes:** + +- The tool call finally crosses the reference-host form with its asserted path. +- Nested frame readiness provides direct loopback `frameDomains` evidence. +- On success, inline/fullscreen layout, accessibility, console output, and a + keyboard event characterize how much of Leaf survives unchanged. + +## Findings + +The browser-side select predicate crossed immediately and found +`leaf_open_page`. The next label-based lookup failed on the textarea in the same +way: the timeout accessibility snapshot showed `Input: {}`, but the label +locator saw no element. This confirms the host replaces both labeled controls +during hydration. Experiment 20 addresses the sole textarea directly and still +uses the host's rendered Tool Input panel as independent submission evidence. diff --git a/notes/mcp-apps/experiments/19/commands.sh b/notes/mcp-apps/experiments/19/commands.sh new file mode 100644 index 000000000..5d14503e0 --- /dev/null +++ b/notes/mcp-apps/experiments/19/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/19/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-19.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/19/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/19/observe.py b/notes/mcp-apps/experiments/19/observe.py new file mode 100644 index 000000000..f09ed66f2 --- /dev/null +++ b/notes/mcp-apps/experiments/19/observe.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +"""Use the reference host's concrete form DOM, then probe the full page.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + ) diff --git a/notes/mcp-apps/experiments/19/results/bundle.sha256 b/notes/mcp-apps/experiments/19/results/bundle.sha256 new file mode 100644 index 000000000..a740c9bf3 --- /dev/null +++ b/notes/mcp-apps/experiments/19/results/bundle.sha256 @@ -0,0 +1 @@ +b222706fb57665b1bb7018bdda49afa3f480aacc805819c0c3bad623372aec76 skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/19/results/failure.png b/notes/mcp-apps/experiments/19/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..e962c9270c5a5731d8213a3347a9cf7ed66a0ee2 GIT binary patch literal 15867 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/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +if [ ! -d "$reference/.git" ]; then + git clone https://github.com/modelcontextprotocol/ext-apps.git "$reference" + git -C "$reference" checkout 10195ad91851502134930e9b80ec2c04e277a720 + npm --prefix "$reference" ci --silent +fi +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +npm --prefix "$reference" run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' ../../node_modules/.bin/tsx serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/2/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/2/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/2/observe.py b/notes/mcp-apps/experiments/2/observe.py new file mode 100755 index 000000000..02bb3fd31 --- /dev/null +++ b/notes/mcp-apps/experiments/2/observe.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 +"""Run experiment 1's unchanged browser driver, writing into experiment 2.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "1/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_1_observe", source) +driver = module_from_spec(spec) +spec.loader.exec_module(driver) +driver.HERE = HERE +driver.main() diff --git a/notes/mcp-apps/experiments/2/output.txt b/notes/mcp-apps/experiments/2/output.txt new file mode 100644 index 000000000..5db96a54e --- /dev/null +++ b/notes/mcp-apps/experiments/2/output.txt @@ -0,0 +1,59 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.23s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-2.uvT7Vx/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column +Traceback (most recent call last): + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/2/observe.py", line 13, in + driver.main() + ~~~~~~~~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/1/observe.py", line 79, in main + outer, frame = app_frame(page) + ~~~~~~~~~^^^^^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/1/observe.py", line 27, in app_frame + expect(sandbox.locator("iframe")).to_have_count(1) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/sync_api/_generated.py", line 22365, in to_have_count + self._sync( + ~~~~~~~~~~^ + self._impl_obj.to_have_count( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + count=count, timeout=to_milliseconds(timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + ) + ^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync + return task.result() + ~~~~~~~~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 465, in to_have_count + await self._expect_impl( + ...<5 lines>... + ) + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 128, in _expect_impl + _record_soft_or_raise( + ~~~~~~~~~~~~~~~~~~~~~^ + AssertionError( + ^^^^^^^^^^^^^^^ + ...<2 lines>... + self._is_soft, + ^^^^^^^^^^^^^^ + ) + ^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 60, in _record_soft_or_raise + raise error +AssertionError: Locator expected to have count '1' +Actual value: 0 +Call log: + - Expect "to_have_count" with timeout 5000ms + - waiting for locator("iframe").content_frame.locator("iframe") + 14 × locator resolved to 0 elements + - unexpected value "0" diff --git a/notes/mcp-apps/experiments/2/results/mcp-server.log b/notes/mcp-apps/experiments/2/results/mcp-server.log new file mode 100644 index 000000000..c1e292fea --- /dev/null +++ b/notes/mcp-apps/experiments/2/results/mcp-server.log @@ -0,0 +1,3 @@ +StreamableHTTP session manager started +Created new transport with session ID: 5523a87fc9354dbfb5ad65e3b13c049f +Tool 'leaf_open_page' rejected arguments: ['page'] diff --git a/notes/mcp-apps/experiments/2/results/reference-host.json b/notes/mcp-apps/experiments/2/results/reference-host.json new file mode 100644 index 000000000..19765bd50 --- /dev/null +++ b/notes/mcp-apps/experiments/2/results/reference-host.json @@ -0,0 +1 @@ +null diff --git a/notes/mcp-apps/experiments/2/results/reference-host.log b/notes/mcp-apps/experiments/2/results/reference-host.log new file mode 100644 index 000000000..54bd5d0c5 --- /dev/null +++ b/notes/mcp-apps/experiments/2/results/reference-host.log @@ -0,0 +1,18 @@ +(node:71241) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. +(Use `node --trace-deprecation ...` to show where the warning was created) +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + +NotFoundError: Not Found + at createHttpError (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:861:12) + at SendStream.error (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:168:31) + at SendStream.pipe (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:468:14) + at sendfile (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/express/lib/response.js:1014:8) + at ServerResponse.sendFile (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/express/lib/response.js:411:3) + at (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/examples/basic-host/serve.ts:127:7) + at Layer.handleRequest (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/layer.js:152:17) + at next (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/route.js:157:13) + at Route.dispatch (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/route.js:117:3) + at handle (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/index.js:435:11) diff --git a/notes/mcp-apps/experiments/20/README.md b/notes/mcp-apps/experiments/20/README.md new file mode 100644 index 000000000..9625f2f49 --- /dev/null +++ b/notes/mcp-apps/experiments/20/README.md @@ -0,0 +1,33 @@ +# Experiment 20: Hydration-stable host submission + +## Purpose + +Use concrete DOM controls for the reference host's small form, then rely on its +rendered call record to verify the exact tool payload before probing Leaf. + +**Changes from experiment 19:** + +- Address the sole `textarea` directly instead of through its stale label + locator. +- Retain the concrete selected-tool predicate introduced in experiment 19. +- Leave the Leaf app, frame policy, fixture, and measurements unchanged. + +**Expected outcomes:** + +- The Tool Input record names the submitted page directory exactly. +- The tool result initializes the full-page app and exercises loopback framing. +- A successful run measures both display modes and records a standard Leaf + keyboard event through the existing HTTP/log path. + +## Findings + +The host submitted the exact page path, returned `leaf.page/v1`, loaded the MCP +App, and allowed its nested loopback document. That directly answers the +`frameDomains` question for the official reference host: loopback framing is +allowed. + +The document's `/theme.css` and `/leaf.js` then returned 403. Leaf's handover +request sets a `SameSite=Strict` token cookie, which a browser withholds from +subresources when Leaf is embedded under a different site. Experiment 21 keeps +the ordinary server strict but gives the process-scoped MCP server a secure, +partitioned third-party cookie and presents it on `localhost`. diff --git a/notes/mcp-apps/experiments/20/commands.sh b/notes/mcp-apps/experiments/20/commands.sh new file mode 100644 index 000000000..afc9ce4bf --- /dev/null +++ b/notes/mcp-apps/experiments/20/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/20/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-20.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/20/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/20/observe.py b/notes/mcp-apps/experiments/20/observe.py new file mode 100644 index 000000000..3cd96b044 --- /dev/null +++ b/notes/mcp-apps/experiments/20/observe.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +"""Submit through hydration-stable controls, then probe the full page.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + ) diff --git a/notes/mcp-apps/experiments/20/results/bundle.sha256 b/notes/mcp-apps/experiments/20/results/bundle.sha256 new file mode 100644 index 000000000..a740c9bf3 --- /dev/null +++ b/notes/mcp-apps/experiments/20/results/bundle.sha256 @@ -0,0 +1 @@ +b222706fb57665b1bb7018bdda49afa3f480aacc805819c0c3bad623372aec76 skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/20/results/failure.png b/notes/mcp-apps/experiments/20/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..da7e426ec1ea3cb3e37ac4532f55c072922a5bd1 GIT binary patch literal 68489 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 Y%xa^&ffEh*6C!z;r;m#sy?FcI02AhE^8f$< literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/20/results/mcp-server.log b/notes/mcp-apps/experiments/20/results/mcp-server.log new file mode 100644 index 000000000..1dffa657a --- /dev/null +++ b/notes/mcp-apps/experiments/20/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 68ec798eb93b46f5b0baf70ac030f043 diff --git a/notes/mcp-apps/experiments/20/results/reference-host.json b/notes/mcp-apps/experiments/20/results/reference-host.json new file mode 100644 index 000000000..eb58860a6 --- /dev/null +++ b/notes/mcp-apps/experiments/20/results/reference-host.json @@ -0,0 +1,52 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-20.wS9C17/page\"}" + }, + "failure": { + "error": "AssertionError('Locator expected to be visible\\nActual value: None\\nError: element(s) not found \\nCall log:\\n - Expect \"to_be_visible\" with timeout 5000ms\\n - waiting for get_by_text(\"Tool Input\", exact=True).last\\n\\nAria snapshot:\\n- button \"🌙\"\\n- text: Leaf:leaf_open_page\\n- button \"×\"\\n- text: \"📥 Tool Input 99 chars ▶ { \\\\\"page\\\\\": \\\\\"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-20.wS9C17/page\\\\\" }\"\\n- iframe\\n- text: \"📤 Tool Result 859 chars ▶ { \\\\\"content\\\\\": [ { \\\\\"type\\\\\": \\\\\"text\\\\\", \\\\\"text\\\\\": \\\\\"Decision: where sessions live: Opening t… Server\"\\n- combobox \"Server\":\\n - option \"Leaf\" [selected]\\n- text: Tool\\n- combobox \"Tool\":\\n - option \"leaf_open_compact_ask\"\\n - option \"leaf_open_page\" [selected]\\n- text: Input\\n- textbox \"Input\": \"{\\\\\"page\\\\\": \\\\\"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-20.wS9C17/page\\\\\"}\"\\n- button \"Call Tool\"')", + "url": "http://localhost:8080/?tool=leaf_open_page&server=Leaf&call=true", + "body": "🌙\nLeaf:leaf_open_page\n×\n📥 Tool Input\n99 chars\n▶\n{ \"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-20.wS9C17/page\" }\n📤 Tool Result\n859 chars\n▶\n{ \"content\": [ { \"type\": \"text\", \"text\": \"Decision: where sessions live: Opening t…\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/20/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 403 (Forbidden)", + "location": { + "url": "http://127.0.0.1:54308/theme.css", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + }, + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 403 (Forbidden)", + "location": { + "url": "http://127.0.0.1:54308/leaf.js", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/20/results/reference-host.log b/notes/mcp-apps/experiments/20/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/20/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/21/README.md b/notes/mcp-apps/experiments/21/README.md new file mode 100644 index 000000000..ac71c6855 --- /dev/null +++ b/notes/mcp-apps/experiments/21/README.md @@ -0,0 +1,31 @@ +# Experiment 21: Partitioned Leaf session inside MCP Apps + +## Purpose + +Keep Leaf's token gate intact while making its per-page browser session valid in +a third-party MCP App frame. + +**Changes from experiment 20:** + +- The process-scoped MCP page server sets its token cookie as + `SameSite=None; Secure; Partitioned`. +- Its URL and declared frame origin use `localhost`, where browsers permit the + secure loopback exception; ordinary Leaf servers remain `SameSite=Strict`. +- The host harness addresses the already-rendered Tool Input disclosure by its + stable title instead of an emoji-split text locator. + +**Expected outcomes:** + +- CSS, runtime, state stream, and event POST all carry the partitioned token. +- The normal Leaf page reaches its three readiness stamps inside the MCP App. +- Inline and fullscreen measurements, accessibility, console output, and a + keyboard choice establish the first end-to-end full-interface result. + +## Findings + +The tool call and app loaded with no 403 responses or other Leaf resource errors, +so the secure partitioned cookie crossed the third-party boundary that stopped +experiment 20. The harness then failed while locating the `

` inside an
+already-expanded Tool Input disclosure, even though the host body and
+accessibility tree contained the exact submitted path. Experiment 22 records
+that body-level call evidence directly and continues to Leaf readiness.
diff --git a/notes/mcp-apps/experiments/21/commands.sh b/notes/mcp-apps/experiments/21/commands.sh
new file mode 100644
index 000000000..9a153d09c
--- /dev/null
+++ b/notes/mcp-apps/experiments/21/commands.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+set -e
+repo="$(git rev-parse --show-toplevel)"
+cd "$repo"
+
+results="$repo/notes/mcp-apps/experiments/21/results"
+run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-21.XXXXXX")"
+reference="/tmp/leaf-mcp-apps-reference-10195ad9"
+server_pid=""
+host_pid=""
+
+cleanup() {
+  if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi
+  if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi
+}
+trap cleanup EXIT
+
+mkdir -p "$results"
+uv run pytest -n0 tests/test_mcp_app.py
+
+./bin/leaf page init "$run_dir/page"
+cp examples/design-decision.html "$run_dir/page/index.html"
+./bin/leaf version check "$run_dir/page"
+shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256"
+
+test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720"
+(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null)
+
+uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 &
+server_pid=$!
+(
+  cd "$reference/examples/basic-host"
+  exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts
+) >"$results/reference-host.log" 2>&1 &
+host_pid=$!
+
+for _ in {1..60}; do
+  if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi
+  sleep 0.5
+done
+curl --silent --fail http://localhost:8080/api/servers >/dev/null
+
+uv run python notes/mcp-apps/experiments/21/observe.py "$run_dir/page" \
+  >"$results/reference-host.json"
diff --git a/notes/mcp-apps/experiments/21/observe.py b/notes/mcp-apps/experiments/21/observe.py
new file mode 100644
index 000000000..d0d659f4b
--- /dev/null
+++ b/notes/mcp-apps/experiments/21/observe.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+"""Probe the complete page with a partitioned loopback session."""
+
+from importlib.util import module_from_spec, spec_from_file_location
+from pathlib import Path
+
+HERE = Path(__file__).parent
+source = HERE.parent / "16/observe.py"
+spec = spec_from_file_location("mcp_apps_experiment_16_observe", source)
+experiment = module_from_spec(spec)
+spec.loader.exec_module(experiment)
+experiment.HERE = HERE
+
+
+if __name__ == "__main__":
+    experiment.main(
+        tool_timeout=60_000,
+        wait_for_options=False,
+        use_dom_gate=True,
+        stable_panels=True,
+    )
diff --git a/notes/mcp-apps/experiments/21/results/bundle.sha256 b/notes/mcp-apps/experiments/21/results/bundle.sha256
new file mode 100644
index 000000000..11bd39ffd
--- /dev/null
+++ b/notes/mcp-apps/experiments/21/results/bundle.sha256
@@ -0,0 +1 @@
+4e32e5fc698de054a091836d429c7680a626650ffbb143d1b8ac762d784c470c  skills/leaf/assets/vendor/mcp-page-app.html
diff --git a/notes/mcp-apps/experiments/21/results/failure.png b/notes/mcp-apps/experiments/21/results/failure.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a2c921894dda596da16ed727baa8b001f496a5a
GIT binary patch
literal 110956
zcmc$`Ra6~aw=J3k2pU|2yK8U_?(PuW-Q5!0-95OwYl6GGyDi+EQ_1)J|9!a+x81f+
z+tuKus5PlIWsKhY=yQh1$%uY}`3&>!-MdfXVnPb<-hoR2zh9v~0Czlo$|t^ihxkrh
zh+oMy{dg5j7e^EOmmsHdkYT659jY4CJH$Fe;&&Izxhxo
z^eX~1^v%T;0t`&d-~Si$0c^Xi;QBKkWL{NL~Oa)P+;FDiry0TIB^_0RVL`#$mUJ-iL~*S{bA7{LF}lUS%9
zIsV=;l*8OX{PW=$e!XbH|LKQ%h5mLWQ7D+6-sTT}Lc*VV3NtCGn3~CHpRq;Bsk{H}
zbbWjx9G$nXlr4y#Hxnk7h(6oF%c>Ip`E1TY5Kbhj!6f$Jdd6V0{Y%3zhUzRY+E8L$
ztu$3H&wQmdy>|P{-YF7#!9a&{xf-i{jz2Kaz(py1MpLhbCC==Zj)2eCY3Cgk>FH)q
zCY~-9id~`8Ihxw}Jh@$n&)ck2A?LnX7Ge%&xz=&lwF@foYABO_!}d*&(7cn%Y89$S
z*aQ1#PUPGZr1Fmq)?)0_d<%(m8s0;tR`?oIoeGMF4#ZJ&!BleKnd~DZGs8O6
z!W~ZMjP!}T3d2_@e%_tAUv+u?ED{c1t2cf)YV%&
z%%`w1KC>Cye^+DV<$X%kg&D6{Fj_$OC)w^pyK
zfm9AZRLL!d0Xz50=Z#6lq{=l%?>8i;#n@gLHk)s3X0bh&@9yw;wcEWxV1bg9ta84ia9>xGOl6a5$ze}?)n0c$
z2ESmG+*-;NK32Ww*?~1m)o6@v{^#-F{!WWO=Dws`_(359}-_U9b8B5G(69vU9klR>1c8SjoipzTztk$BU
zW5?>wHrj;l`fHJxTqmbs{HFn|11vHkVT#jXF=Q#*S{V4;^9eZ*e)-N({0bFe*b}IH~IU
zWixE%8pu0>8)Y*)<171qzk{+AGI$HEPs6S|_|{@BxbyXze&muRZH5R({(FaDAK@~=
z8c}!dgD|R1&;8*gLp8*t){`}uGBL`6&%IF8D>1W=Bum$i-^Ao$n!I8|P=$g~{N~%g
z;d(5uFK^|sqs;xm;*9BjrIHA*ZlQs8p+ptd{Pf;_Zs%|@P^i&%#l(l%%=zvHJN0Tx
zwF1u)b;$>ywd;k^l^{i8$^y+J;Yj=mir4cJvF!4DQiqe(M*XiYXMBT5k$&x3G}<4L
z$@wFL3RQzn{U-FRj946|26!}8u8&FvT(e(!^d3FM-99XL8G(AQ_
z$q{A@lt9G8aRBuev83cM*(dX#By99J&Mj`n>kYGf-UowM7?o?Gr@L2$R@$|;*ApFE
zR`!q{ZD^Iu#R^C2czFp0quMkrlIYa_I_Zpd{;pwi=QE38sXF|(#=TvK$*Nl?x2uq(
zyWHvAAkiI_M&kr8P1SNu-bUSyl~{Y$3bk5w2W~N#!2r>bjptWCR9dxE%{e;cP6$xr
zF*0snpU7g3Ar7DY#v<`D{wlZE_R4Q(TI{f>TZ-DRRo2t+lQFzj<|B>b1|KaVeGZ2{
zC4-BnBxtlcvL*`Wy0i3(#u?KD-z3NV$$;Kz;Lym-C8|6YiQ%zKW9s$RX~DKj4VHOs
z5rTESgNNpKc^INrH7Dq~yRPmHQP4sp=q;eJ3^1Wak
z^Q7aBc0rB933|V7(p;z$=p!P3c(wQk2J(8n9_^iYWDbGE?TyDTcNQhZ?O^?F7URR-
z2Pok>#P&e%hIYL2`aBTTC^I;_`k<2OWTxNY^DH)i-aX>*dHpocf8z=(6OMD=dalFE
zSRT%MfutDveJ2d0y6=K-v+jk7iE3zIK-)pO
zUcPzVJe-rOGcJ?t;rg@4URLjIGcLzKE~{c|%}emfW!+(;=)TC`GSWA_UsfkLl6u~n=T-gZdZpCluhu*KF9oui9a7NXR#92)
z3ohqPjg^(1KHrPno*p0$FdZ&(AfirJDTD(&t;Sa&W%5f|QCBZ1wYM7H+iqP4h=0K-
z%6KI8eA*-I&5XkLNe>JfkxHH6yX1p95{kaM-7hw+X=`=}j{L?aSQeGlA@=4I*Z4VN
zDKs+sm+s`|^K0(X3*P1aASGvw$)Mv+AFiX&nPYty#8t?jlrzYK1W7c&Z^)&;;#eOn
ze4oSJJ=))|I+a`jq?r*6!}tdk`LNL2;M=i;=9LlUa5Yr)
zA#ITixV>K1A1u_L1@9FGFCgyVaJg9@?{L^Vv7UO$H-8uU5{R@2H($B_5iX11PUv1Q
zjk(%WUQW!k2-PE+3>mlC-cT5ox@9{5p;}J(U9LpOCymgZ+Z?bjv^3l+(xlf@pVJ;5
zA4+)(SvJS>LSy8^$K>PB{PgtntS!=np6e(9mrlO(r#sr$sX#
zMrq0|l&pk(h%Sn0Wz0{t2%aCu`im2Nh-X2z$V&@t-cQ!UkuTM*^Y8zRUtO_Jyv^&#
zg$g=)&Xb2OVys-BhzLimiPue^+r)r)>}8_*jk(HbCJRc963=5)e9rL9wWzx!iz-2$
z#32PIFzKhNtUuMu#*xVTzsL60R{r48P&N=l3(J|>a6*`+iXOH@1AeI$tlZ-@xU;Na
zB39`wYCKX3bhj9lIC+omed6|bGUN`mm6E!;hJ@W$Z#*R9dYo^h(j~#pbJovx?b0tx
zvwe{VHhR|HhexB>w`5tYwZw!
zP}2e1)x}L5ae4zSc1mjMF^BDQ?=V}i!&1FDiR!8Wg^VxG4uz2D6iGq!g@yh7ruu~a!7eGylNVGg*Nlft*bhN_C-`ii;%r`MS{=@Q
zHYM);&Lz)@3bvarcs)~r>fy-ZZ6;CSfTax7|Ge|9-EMjH>a9XY*4idZc2NKUh?W_A1~~e7
zhJ+&FX>=9aozA!4BSxdJ1GGAvOM##-b~&O|r;r7;-*X5H7APy0#d;H%aHT{)G7!ys
z(i}EFQEj;Uai*ac_rp*;P2vin`U6w1a6VRXAdp5>D&)vK5~ZMAtyfwa-_D^g7O)g;O{CltQH6^UTgE}G>F=2uqTJN{7cCW&isEBXqEQGq7r6>lAa2FmkKl`jY4Dm
zWG`f-q}*$tk3OE_zfka21#Mc3!L|__fjL8Mm*aoAI@NHz5R{bHcrs*OarG1hz)^F#
z#+H>%@fVHDW(BT0ygpc5i^MSjp&x3dVsF;lg;bfW4*P4wZOo#Y`T8lOLq#8}<=Txi
z^4MAPbl8w~bOi##Q)%uhwc2CT?-lCZyWd8403aY4Drtcnj=NSVUuvz-4Frl<@1*H{
zx>9WqV!UfJJ-x`wFr3wvQLc-r$JK&Q7Wf?ABL1ygKiN{T+N^Ok@wweUQzJYQ>!LIo
zB2MM$fBr*+56+CuOYr;%#zK0bL_=>K?8A|T9)*=UE*j1A?XL==Q10H))>FU~X8P{e_)9Bz=x*Ml9r7)HB3d8QJzR2h4H$&g}1_BZmLuL9h@d?&>*PD3zvtjTw|itf-5{v?guvy
zXCoHJjwq(3*~9iFEj9J9AJ;t5e(tSSnZPIJijqGWl1L$LBQ8ucR!Bu5oqy}FHmp<&
zh%L+&1WEBp9lGzhG&P&)UL}FNoQRG-*}Bm)KmN8|IR1nGH${}6AXB|7BMHg%wh0C*
zrDEST>zp0C>??ItJcbK?L5?TEmR)E|6
zVO&^Jqik$XNOUvu_(+IWF8SC}sb}`Szr0^6b5Vd%XqI4bQ8NKIcRR1QJwFx^bvbC>
z#yW7
z8EfwBp_LIS?o&nT@|Y;=kla@^bzpJX>AWwGW}lXy(Rti@ya5=)YPXt(8j;tvjvMmQ
z&eOyFXIw<8;KCS@k6*AB2`P_qYiE98N!~ToCqk^vp_SY{qCZ_?I55nu4V;$U$^T>DImQBF=
z5rMM|1)w3*0maEb*by$cIK)oOG#T{^W(cYioW1@h1*xqHYtDhjmPm4MpA-}lh7z@k
z8Gu^tqEEnBpwR0S|_%o)D#55z)26#KVBnmUV4=fz0JXu=b1O)|2ce|x>
zy@LGIb~X=p_xI^3k-5YTynibQ3Hkf{a`Ewb>j^Ft2rnvZT`$DK5-UiVq=;)^>XwDDeF=^Dk=^H)b5v59O
z0!0RvG=IkvsW*1rrA1>wb^d&HS<17mJ3;Ejli1n%)62E^pD9K}6w1@dIKaqs>3L5u
za}y@-3$7ppu8+4qU)h!17n8TKfha3`77TUsnyJmp&;L8tyUpu4lh=p#Z|g5t-s^|v
z#)G)hPw)@S1~uEmq>J|DX=qkMz$w=D2nbFW;^7
zf{N~PG%Kc;7SxnWl|(|nbl&uViPsp{r}OrEoY+%xa|?I=7EzgN2^v?<%K=cou}@)|
ziKV6Yg%-=SF?~a=bP4)Scp8&QccK=M=qi*t>QGDZIC;FT@6AGT0+@`&3Jt2d`^Vd#
z&ds`tyv5^4mK-*Ere-w@BC%1?(K`%x_dY8R&6TOF-IP9+L6jms#M8-({dqy6$7Rpw
z9s9j!<gOYv_hY6~A(PSBC?&=Czk?}37B
z;lTohg_4EAxyb5ksu(c5{MS}F!6B)~=2IJ8(Oz#)CMVV0+|yE0QcyjZ$5FzXuaYW8
zwd(BG!Y^9!K6;D9w_iDfXFj%6$V!~=f4;|eNkZ#XSi
z`sxv2(#v-^&@gcBH@99wu01=|U}M@%&c{0e*&ETv>R+5qR|lr11pf9xC@DZJ#7zxO
zK>L+TwL+60>@YUP>^|=Zi6M>av}f8~hUw(2gdl5>-xJOZjNoMjLO@6&^&y3(x-~`l
z=<2^Efl-mrC6gB(VY)k76LYd!ub!N4h9vio9QV@}-r;g~0BEZfA^mc9OubQMb}s@H
z`U-IG^2Mr?m3#}VseDSsl7;WuT04~ofmsW6Rc?(jJoO#qhC?67fC#i)3;=2Pd@Jv9qz
zv|ed|^dcKqtMZ;61LK+(xy@yrQ_)`I1v0v8qYd6+f=L+!I5<&Q5PV@F{p{TL?CcE)
z$$68}*q?TOpXaUDH0wO4k14w+*Vo^;1meAUmQJ`F?YHN=wneU+?=~)0pQ2iwEhC>d
zhMc(U4M&yA#CUx=zk48LF`LN|JM=l?Wv+Q3WF9a5Y|hY%1*A5eHv3YIUG@>|KZ4j~
z=g0S7Z>Wr1PPht|P`vV*P=okoT-6qq$E{`P*O&7ok&N{dzA{PZTIPxEg9lLYiNN$y
z2q10yKRkYH@qXQVrev_Wr6DWm9GfEO!eX#&tFKo+L>8vkX?45lvkC|Q(O-*Esp)bG
zI>VQ%{#M+0#!I7FkF;1FP)qiD>5Kjq@#gYIGrZwz#|rx19@j0-^ZCWqoKx5fSV!*L
zF~snNgZdW}p^>X!hvHj3A?C`Z*R!Lz_+D>#6n)<}FIY)PX4ZI9{Jd%!U(XcTISq%3
zsN)pd#9lvX-YqVYNn6{vYz&xPL&L#IrF0S65v4&4&&`);|9;5WI(5+7+$>plzuQDX
zrpH}o=GXXmmp4=RaaM`Uw3B%51!A@`N{DJ
zFIT&R+7*uSj-HRlp`FS8JGX;m;YZ|u16yxHY%lC7pQFS#TX=wvq8BptX0XHA`w9wV
z`rJA?IMhqs)6x8ls4fmLv_vJudSS<>{m@0+)zu~F7w*@_!^5N9fdB;!JxM;G-Xs-+
zy;$pJbZeQS)9I#K>|DzMt4cJm*kHj&ln#Ks2J5wR4_)2SK&zNUtd&ZS7Up7-7iKFp
zlf4~z3X#{?SwyZuGjt(#6ZkV*DQlnWoyE)-QR{^^SbiBp;=_f4l&q|`6=7-8D4id#mY6>1SC<(7qr0+B(FkWg>E6Vl)F?)B*C@>sCz`#Yauoz;k6^YdrrS5I|j
z3WQz1HS;9w_eb`wcbb>k?f{~aBbyK!x|5V2AY3o8n^?Jcy>kfr;+I~NAG%ptTnxl=
z2-&RG&kCG;fQb?l}eTHeDL`^kdUyGE(tK=>187?jZpcHPPRREdLDM*2NBN+
znvN!$^TobeE!rXSD0doVjm-7;BXrUm=Ydr31_bnkM((-HM&5x7!zNjMEfIA{ZegLG
zt*J9Xg@Z+iw-`9&3Yy8+MLL18ZQ6uM_zLgMvW`{To$%3swebO(*t5iY6Lo{c(23*&~I*Z>aIdf
zsKSk>-08e7&4uJ2a5{mPER@b5YWBnJDs&5*$K`TD;@iC5>8($@qe`Iv`B;8!rWg8%>$ngn^s8_Bg3I&k?E1jUXoqc47z~)PxTXVKZ{=_Bl@7PYnL`S9e@B3Um8kUfE73}Nr)>89J+k2oMQ
z4WSOg?hHq~HlD6jsx))!M-9(gi-$VA)`&4W?;g>Dv)(7P-l3U9?ha>6FDwj5xDnSB
z(rYJBs6Y|U4XfJBcI4l@&X-WBQrv9SUnLJ-B}^ye>5SjTGEE#UG+Zo2v_@sJN3BQ#
z@w9hz+E7I$ap0*pLzF##UA#+3L0L)R_up
zjguT#;vr(0_-6{-y#ChCDBx!*wMd2SpW2#h#qH?f{cxxyhfzbUQ0LdgkorUvR6K^S
zP1a954^EJDQ+^H1j8WyN^AA@T#gaEv!+nYp%O0Wha(XHlPhM`Y
zKfDU%rTt7Q7M-nqQUa`q&+Pj8T!n>D9Ei^Z$CF+tCOpke-c~a$7Qa245pXy{8tW~T
z`qnMg(e{T&)tk0}gcFs;E80YgkoCnwb0FylvShW3z)mp`OOsqEUauS
z`_C0VpG=%9lkmr*y-i)4(i@ywoJFS5WOil%1ka9h@nQ_5q0moeOik)tq}v^QrLrBH
zL3({%FZb5200U4(OuvD-{#2<2XkvmPx>oHka;>KO8NrfzpTAB7FDnZJ@IE}u9sF}1
z0)mNgdWxU*%9TS{#hxd{x@XK@k<}@oq
zGB2$bKeH7DOj@rthE;rna6|gQD{}0SG7w^ok#TB1urZ
zz$7-B`x6s1*hyuMi0wZZs66sae>B5cZA|*Y$T*U7O8Flxz}Ww9<@zJ>Z*q)Al8~~T
zYh3!Q@9~j?-WX0!$e)pLN}B3Of1ncTg8{|V
z_~I$CNB&SKyGW}kl2n)A+soVP>ISBe2uL_U5QC-6l{wJ}$C^Xvt*xt*!=}w?nwXdX
zSf9B!P!_|Prn2@E`PDlCk@BM?B^
z!4$snHVU>nwv01>5$h1PKbA43TG;2=p)Z?nsjdxOdO
z!7YjbJB=M$MxRKqg*i9qb~u5!^dDm4wTcU0HpmbAnx>rq86!D#Q#gR41Ad498Ra|f9H~6rC}D@I{t?&c4v+3eCu$pHLUIu
ze7gJ3-N7sXEcp4IoSgivUjW8|D{@)YtIJzP)~yVLe|m=XB?YsaZ{sNe)JUh@EMF$}
z{%^zxrnr4hnVz*rtN7me=}4(kr?utZckpt_-U9jKhcEn*
zF){MRTf!yEbUr72xc_Zw5cGOt83zsy{;yr5dSCV<2T+^wd_Fc(Q)~LSWyx2=XvKPk
z=EkwJEA+}Xr+x2#8(@7N4EljSko0u8dPPT95rRw_|M%sC^}B&@_-m?*$RN=1-?yN7
zh$}4pi=L2rIsa?u2#5THXRc@cIsXj&V*p8AH6RAoVpLpXaTn+}PxX=YeM)tysi_&t
zWT{2%=e)(-d44sxAcA1CUga_CdoK6{5|b|+7jr)5z(hyiOI~?>&bJuXZW~Ldz-o;>gXYP>$|{W2NKgrETtbRAfYbSTdc=O>`ESfIlue$EA`V7Ds4QUI+Nz4
z$>7ip&trsIv$Ld_nCWEKg8`HM>J9{9Z$nb$I;-hqvtD~D0Av;5daR*&+S^KJEtK0#
z`JW7(&G7>Q0(|V8>g#HlnI6F+2s+b8fXIu><#xLUMt&iY$_(9rf=hgTe$DB8w6f;c
zk1Q5zU=N9cVo?8HyWNi0^;)Ten*)VJEZf5?4Eg!AYuAEYDx=kGITN7ArCufDQ{k%+
zoBR7wv3U|HU44&tC+(jC_bMpS`;Sjg%?u1)h6%kqy#V(}?fx(MLh|vdvE@aw1isMV
z;3oI&TcEn2kndPmQ#Zqtsr3X8Kuys#U*6UxTFF#~pAp>L
zk$@2)frj}IPprNPLC_Q#kCj!xg+`+Aw7npE}Pl>{YMtB&*3&G2st$^ZBX#l
z-YBw_r>cZcA%h?%`RWEXSfuU}!_dC1%_}{V8-SbepP+^N0Xn3x;&Fa32$(-6HZOZ`
zZdZd8>YnXM5Hd31vA@h}sPD6TJ~QhRPV!N(8%~7-P^~@Q8w1A_sNHRzY*Y8LQcJ=v
z=Y`zhu>XjE2g&iJ_HAx^ZWJ4LrI}7MQR?;el@X^Iz66$N4gxZ$4KSQ=bBi=eMBO0g
za8sZS6+BF0%vX|9&%WIc3O}A)r;GsjU`(s+Xy|5nYxm?N*Fd*y%BX~OrONFOA9&N-
zhJ??`<`}u=2$P=`^e28X2gU|m25<)8v)OMvryTK>?Ee{;9}+uL%Gd@*9uJUar>XkG
zA=4P3-<2~
zCKyZ}i=z!C#G`IbBb6DbowVNIs&t6N0mhACFpzf2wj)B>QIryS@PX_@Hyd6s^l|yb
zxt{@o#!$?=n6&z;eXrNch@?iBR3*yk0&!A=s8^sY%J79{G@6dK1Egz1o*FN=>;Zb-
zOluWQ9Ko7NEv^$lY3lTOXHWB3*M8Vwf3jzuFl;iG{F)?4B;~&S%xeVG4|fRo3jBP1
zb=uth4u>*nYx4sF4nk}pxK5di6^S|?&o3M*aMX8MIm(HVCIW-F1%WDBUe=enht+;Z
zGc*STgYNrYT~oNewokCIqwyF0aH6n8k(y$h>Y9|P2!a9v-#R>CYP2`rIb^@*P
zw|e9A-r3QGg#*AWx?fumUS0cQLrEeNk4O(!prTt&3<=ae
z)7QOzou_;;LKH^knZ(6J^~Z{3bCE&)8hYycHUDAO!o+cBEJfP7@cQP)_PV)Vzq*Oxy^_{3`{WWYC8sj)p
zoo>P}1;FW(`_14Ny*?JHOI1IP>*clZ*|;r85+OlRz^gi5xsZI+z>_4&@>rLmv>rgY4Ub*evRf-hAE4%mn~x$
z*JIEyUON>la}~
zd;0aVF+>lw`;|S9;lkl3xK}9Zlu}L&Whp%^B;BDumQ2?1Z~-$QF?I+hGVLj#k^Hih
zO5;pWvt7v7)ioTEqwJB*lTFi@f)2Yczw!tt1PoyXaECqUNQ+`b%MqaLW`Zi?)YQ}g
z51SE~^8u>ik4!~nn2U^mZl8pOK9pJDRU{_g=8bxTB4W`7Zm;0IZw@Z{d904(my(;t!
zonFCqu#GZ#?R|Iu9X9vv)*z4CuH&&X_$;kJ|6_sE9ei@oLNO73fc1#2<#7xx6wzbh
zb1(l`c(de~PFtX0v1_Z|?z4S
z#>2H)l!3zBoR!?SU=Z6`j!5v!%@JuWwJJsVlS|>ax-aWwNG_yBrY|yS(E&cM_aA>v
z3uO1teEBdsg!D|q!T9$MW
zQZNe8fQ2?=q`j*d^{}yTP4-IiM$Db|FLTlIag2r!Or&#_$>iRp{8utLBNT)C^cA5n
z2PF_j5@>>1crPLZFv9pFaUUM+L7B7~q8(2AuQA(&2G$$oRbMCZ`@OG$xJMpYtTuEY
za$aRI4KpiPmI?cz;e?Yxe}$RR#8$4;S%xu*VM(U_W9~vM)8%jXU|HpPw%IT5>MLxD
zwwNuJbIo!&lgEp~bLz0B3Wc|e=8*B&J@r@jGWH`+%@PglS)>~8?ce7q3?BCIq$jpbkNyZ4T05Z)~UWk0`2BNTgq2$@m;O#JU
z%Bl?$q8y8}p9{{>_NXYWUN2Ky!my`Yj-J1&F7)js(5b`SBF*uSzM>S43UUa)@vd^g
z9W6^=w9@M|9#3FTQ?rgslHZl|@tMOC)!axcWH$Pt0b)we8-{XVKtu*JEa+W_?`9fH
zN!XGa5T#M^1N_B@LOb-w)LzyHxd9~8OXYu5mKQfS7+&UI1a-RLC0DkO0W@A!C#R+T
zSZ0&_Lj$7+@BqreF~X@J_aN(oiGD(crk;evPoPwHT)k|*O#k60Dx=@PW-W)k8WSO;
zpn~oJj~Q~KVkzWM7-gZ>_)+20OHgEYATia}i-%L6r08Z0W48uXU_VT)UazO6bxZ_F
z&8llWI`|a)Rbm;ZhatH)l$rnOOCbJoBlM(zA@MvXGG%N=VV>1|o&laY?n85!YV{@t
zU9##iO5mqInITQEk+<6uk@f*n*N)n|NKz9wC_xJAtrex%RR60tvQMkCX+S419pd!A
zM%q@LLU_JqieuU6rmIy`$159}Re4l?s~&mv>z_P1JdF4%R+g1)uz;lxX0wu=$jyo)
z;qC(Z4mX?O5fzF?nQc%>WM+vJQ%)6gvL>4@vSr$IPuHPbudp~N_#_@fZ$$Ly@(f{x
zJzE;zX{#>_=n2)00+6ZMJ5g1&f~$`J&}B!iTx`<1{>J1oE?!ut!w4hLo?N!Jq(7kS|(x6R-@{BmOYWO}v_2yNOtZQmM{7=^xFiULK)$_$?G1L!DDfFL|;
zbJ$EUK@@7ubVgBl$w^_R1j7dQBkNyWYWKjc_zmpw;Mr
zzabUkQgcp5qewmyyT#}1a9Y(bLk@DWVR&`Zf*InodwkCDfX7{_hQE=gksfIWYT}#3
zmNW<2=Wm4?gpV2A&Ih%v7}n{0;VrmZ)JnvGw`Ug{OM}#fcezu}uT#psE>T&(Q@>|*
zw{@Y1`ZjwxB*h~^q~2y&Xa2_dh5pmo&2PzfqNO7wYNBVk!~kFEr#Z8!A5(B<>n)xL
z3smV`1Z)seFCYLy^TdEG7VEqdT4>!7a9BK7YR^ga{-Xud#RxtYXeZNZGT>d7dDO2c$HDJv_TLs
zuQ%6tyEt*cq=nhu+v{+9!doStY{8D2@;z8+z-r+4^f$lAjzKAm#7`vFOdJpa@`9l`
zmn>zhR@|Ihk;fmM*W=~@W{Q4mWCtjS=<>>9vBBjcbJ6i&k5!%6tTi-B^wyXowZ5X$
zX=)ZZe!AdvI*mOD87*0#unQQTadf#mUMpsK4CaAjve$pNqs+jE1VOkPHWg|~Re-w+
zI9j7s7QKHYmg$@-*I6T_mP#15-sMxXuHBqFsk87q0P9MJlB(IVH=L}w?9^Xzp=$DOh=(2tt5>s2
zBvCw`Poi+d*|*;=1gHJ`zZ8D&j5p1C`iOw&kKd6
z9B}F9PEm>=FFpo>Jr@yr0j$+mM05sBY206lS`U7=*e@!p?d!sX%Yd4{6#_mFtxgNL
zIWp85l`;h_viky2^r1ioP3FX<^Wz=$DaH5;`tqWV#Sa*-}GUGXat2
zdUWQ=N<~0(00*nX&IDo}Vb$+KlQEqxOVnWqY+o@1_osVqNB7XgJt*P0MpVRets7CK
z5Irz{UWq#;9eLJxQyF7J(iujom-)tlJX=Qw78dElWNxPt)Z5$8s~1mC&xizU@6}Z0
z3s5pqTNTqly~qewS-#qP$0!nc0qi=Mo0CbT1ek{bRF_7K-@Sr4`??ked3!7A#
zo7t|{`-W?l-aX8%+JrimCM~+6Xw7wgr>-bLMp!aEn)~u
zgEU{Q#(CRW$<6Lt&kSi@1N^f(cQn1Az%$}GkKAb`Fvt8fXbR*{1ZZUGZJwp?uFCAn
zFq5+mTrZCyKBDvN3KpNqlWffH5EYDfmFs}>l_(}X2eW}tog1=t}w?y_Yf
zsD_Zehbi8QYQ!iqzwOhhG=1L_dboekBf)MsO=Z>d&kJHAeX|j1_I46{w;g>fs*LHz
zLBck%xwVzbA?W_F_Wi}fS>$VE%FVY{6!TJ7)4gzs$BU^yX@ICU%OUsc}Vz6o=%7*
zlM?`VCVjlZ!WUSpH{MHTr^u&a_JO>@%FmI!0d1
zCe9}jsF6dUrm8ju>Z<;McwQ~{2+5}&Sw|4pH6ULB6$6<#s{H0=bvc075hL+O?pfn(
zChiTCmzNP~BF5Gb76Y3-#CB&Dwbdx5ahfAzpv<|(2TU`9I7K2~^CY0;7twzG&1GAF|K
zClN=z9bP2?SUC87ClsXz55<4
zP}gj((C%UabP7JLR`dIp8xHLXjaGRx9>sG&t&f5DfDtXz4O1r9r;Y@v}NO+mpb48QF)=UL^I1y_>|E2~R}q
z6!aNB7e}AExE;B@ZWWZ6VKGKr4)@Jmw}`OB_a6gEE842fiXo#iY1FGb05?6Sgj${L
zk7XD9Y&;HkwN6D7y0wlc+vD^12T>xs$Ii#Jcg3bgKd>wB$H?~
zN;OC)6=#zD{QOvgRI$ZNP$P@pIhjr?-CQDwrLiU?C9!Gr%yvX3doKLa7KFV1BM<{y
zY-F-JX)Xmc$QAn^$(||{6s3~LZt68%W|yE9-RLhWBOM(eQb2irEkz`PMGs
zHY&UB^BjJTEZkf6%NkPiM_Xcv`>TQ-anNd-D$yZ1rNs`X2$8$_XofbDa7Aj1Kf&vB_FON1Me-Eb9-j7u60cboX*4Ig{HOhdk;#A^c(Ol4E6
zb(dR6V@@7sbu)D}yEP^&lu^WO77U}O1u@A!gI7bMq`}=%nYK+hkPs!s-t3=<*Hw(f
zSRutWC<}v5wbI$ouOCX|DRH{Hx~jjRrhR2b|BGFoyopT_)*3*+`eo_TT#f}J@PqoK
zu%-;=1NU0!E35%N6&pmOTmz-yH-YL1?0>sSd*c%BFq(dpRJG!Ey49DHs~X0bR|Yk_
zUW(q~u(Mi@%m9+3=Tk76+MfXA7=2-6V#aL>tmw4z;!iLlFWz_Hgn9k*XP
z|HhUpSE$}$Jbf83jWL!POf?1+M1*{lR_v1Dx?{+RKHzd{(2?#MfngGeaY)%#ZG};k
zKT}@X1NqYX;Cki;)Cjd3BB~*pN$oMmcD7~!@ik(9V_Y-)DBFo&Y$%R7`u(rrWl-lb
ziYirQ6LIehM;Ic-Bcvw=2LI2JBzhN_a7g7M!043G=_&m!PqW5Vk4Cx-@UpWLpC^j`
z0WlO8!%3A_#^E}gHb>mOFEKWU6nZ~DxG{`7?2f3^>#L(GDAaXOkA(?Z?*O3Vo-VNq
zFo8!O-0z}%nE;Ob2)I1L9Ze7smG|;9OP$Rg!B@&eiXE2F%t|
zXZqEbs-nMu<|_g}z0bg_!Y!)MnAxq&$yN4+=oUI%4W1O8_pP7
zmIFnfo~hrG$9Fx18}&?~f`V`@yP%8-Q{S7T7LoHxv)@xJvRR!#*`uqkM(?Tu@LK&8
z2CF9OawUnZnz04{jXqzc{b_ak_pSHarh(-X;10F~XnVTLYzvcUgRt0=3R-!q3o5de
zAYc_2y4WklxyY?12p%|pUX8#p)dnId$7iQ1uH_c%>O9k(F`Y_hmWze=#|68_liVD&
zcK~{m=8w%`Qt|>&`_?rBGpw7dyUQVu5?mk*wfS>uxkO2iy5Zz44}z>K%m2Il~;ZaERiBx13I%c
zc?~D{fmLbjIT7a^IkR4V_+}`jW0GB`_Lsm&T*f9g_*vIh-MJp1K#xlOEnBEsz$w+)
zwZQWOm?3=;JN3(KE_KYy#Dk=&4@(o?NmxEs$zF2gX8ZB})yR8!Qq>@BkMX)Pr1RN}TA=
zT&ZGx6j1~bT1a|vx6iYWyAG3fH;)m+tpepy%=hFK!;
zhr}%wO63fma`c`gylAu?T1$=B*Oz??f<_pvVTUN9pD{;eN5xJc*3=bUJ{5@KS(Ui1R!3c9Z{T0j8^U
z9-W(0Z)excT1uHPTt0*5Z9-WnkPU{zv4l)zkFFN5`{?hd0GJ
zbL!gDKiEIS@-C9+oyvES@)q5?g^ScQ%9_zhHAEppS7c9nJIPoIbJ>l{OK7n}%$M39
z2C$Kurax0yj7H{d)^TD<6|G`~4UkixSn$~q@$e!uxNhA6tRdtja~gHw>GYHct~22_
zXeEtAkm`Cji5}O
z)s0wmqjcBo?2GHj-PyV-eF|
zu;Q1&RX&Dx-|g3Hiw(mL&2^5u(cJk?HyrHMB$}AmEIE6nq}<
zN1*?eC>4*_J4E_fw1loJ|4`d$YyC>?Tu-d+q?bOb&;YeMvQ;5
zdoo>qb`FRw;{Vtzs`tmiIe^+o8n<(BeSN}n`akDU3jGX`A7|Bub1uoQY%GKt;sdPcCY@b~Yw;eYL_k$hM?j@Ii$c3b{VX@DoY
zIO<<#2lngEp*a90pO5yu4afVwan$^0AH*hL1WBq`F;%K0BmU=%kx*eDrU7Uec$rj^
z>i=3!)S|aRpu5-ZLck>XUoVS^H8%q=G~B&ZfCYh8u_XCFkN*=@2B;*~FaAcAT)2@|
zge<`PqmVCVZEjBWk3Gcf>fc$t=U5Mjz5jNP-G(eL`9H^=P|Pv@FP(&foI%hJY!Kli
zko(866#4~<6VY8v9s{@!>>63_kFxvc%#vOtf9(JK=?oJa8xS6#?knz<|D6L3gh77U
zU_XOUoq!D_Bu425R%T?I!hgF7HS2$Hhsb|@Hvc~lPU#g2{V`Ex%lG!RK2sc7Jp`UU
z>z#K`RGs$@1|sU`&jpV$5%mEf)ku6>qR+wj!rQsOvJu;q_-Yu~dc*K9h=E6mp2TXA
z0nyCTz-TOLYgY8~GW4VIf6l5AA|K#SCjHkGlww+FM*x`O*d9oTctWP5^<(+|?PSw8C^N3e~-Hfh4p^VpCkCK4uzDl<>KAn2IRlVwXRFW|G#uz$k?Gd8QK3~>@CCU
zShjBA9fJ@Ep5PE1g1cMr;O-LK-8F#_EJ1_21z5N{1b26bg}b|bm1OUI-tT$OeePZV
zVD;+m>Z-1qHRc#&cKm)#KGQFs
znIb=ha}r0BIEtXae6h8un|Ec(P3Li&=FaK^o)Ws&um@(2%b(F)(ogq>J{cB{LfgPN
zqy3?!lYrBRI2IEpFb0f>?$yhy2a5NKDMWu>M)XOSTI}C#Z0GV`Y~?@Txv{yJ_IH!ry$}9e}zbz`;fRKB|jfc*p1&SqGFCdps;F6cE&So_O4`7DB6#2(;#S>N8!)
zUX!aO|5UMF=xn6~x0&v;0|dq!bXt+=`_m^XDO!zUwq)Ggx50TDK%s`7x6fm9ZCKI-
z3!~lWBykN3#z;vCBSsO0Cp-u4cvXPSK96T8#&z)N0No1i^WbLByrTJPjhc5`AnsLH
zH)~ouFZAs64~g@eJhZisE?77}pBELkrqyZO=e3bHKf-6{;qu&vptFH=_5J0R1Z8qy
zyLdGD;c8qjU?53=SMU^x%YFI%bz*yao}2Fkm;(bWx)e5O9d{Wv0WE}bo7H08acf(O
z(yC9VlvAdpr=4o7TdRD;C(Ar@s?2UaS_j4vc(u%5BSzjoYTAlVWVtCaTeo?!Dn_+H
zG$vO+PTV#8+0hfQ@CJ1nDYZ(w4nH+SaFM{n!)w%7?c57?@^Cl6uMhIrp1uJSeg$^L
z3DR@^L#*YbUwb9g+VvK)tnry8&B~Hs;~oO{Es>jKkIi^q!Q7Nuj?v5ueX|JYN9t
z05UHPCL3E5D)**qY+ZrVN;0?mbh+ilSgt(qxKIds*}EmgkyH<|Mum$ZQum^xbP?sPSyARYD=ws&%WAYk)L2H{(>{xty(g
z0?Ud7*8FgW2H><5l2m7VLsJT8`F_gH(A-kAA3PZQ>q$3rq!t1m`JNL2l~@ErSE)g$N71rI&*FmMOyz(
z)j?CW7nM?dswU*lUxr*NqFQr{2zc@E*j}T0J-g}`XNo@GnFeCo&a?g9cAQV21Pmo!
ziG2RTEB4W9+7(myeG;SVjq*zii~OTHim8(rYpQ6PFU`#4qC?c&oQD~rAt@&(56OJi
zAx1CFNyNhbLRmT*jq&jnv@_@(gP7tG6BFN&W3@^qHj=nkN&*KLpiP_0(Plwkn!k}r
zaK=48J8>?q68vOY!NX_1Gav}uOp43PxjpyaFX9Kmc`u#b_Ec~^_hOcy_%(@r0^%M6
zJ-rBu4=o{<@lpv5m-GIiYK(^bXV&K}Yk)IiHJrK7)$EBZ7C;gR5FYcG{#^NN;cloO
zxU$bC;Bb~_bPTfFuD_e;!|Dvhjir;3F1JF$VLIFXHcN>YDTBqAZ<2O<2`#8Y0&0uf
z@jZ={eY{#{GvfA$ml{q|_*~2?A^Dpfi(tQ3pjq}zV4zX3vq-b)>?pDqIF^{J6fx@`
zo0wDe9(?*_Cfu$orrqFqvD}`=W*N_h&6^Xm-35q{!Ox4;*N$Ts0B6&BrjcCbJU`>h
zc{|2<5QAxl56FuELcjfSbsC_5b((~;x?Ejb0;P-!bz-B<^o%9fg?{mCshwYFz;qfw
z7}9gB7UyDiy1iX3>ovg4o(2Dd75Iy_d(n$7HObB3jLHRbEkuZUQ;|
zL<%f|MzSrV1&$Okw`O0iSr!=#-?C6#3U(g#!7laU3Uq
zKferA?~VHv0nZtv?a}4?3}YmMCVm;kQU?0hCmEe|9if|kp$ndu=%}bZL5k6b%TL{S*SgE?(2EG3W8Ph@d)4+GqTkUFK%nL
z#e{HheKxy6XSIxi0yw|l(J_9yyxf}1RhaGApqm#;{K(rox&M=$JY+kvWf;Ht$@S%p
z_rv-=0H-%z7zUe5hujLr`#ImN*XR!pPxNnx;7y?6EL=&jy%TIjc5vL8@_^cGe?IpWdC@c>X9KY&diU>~2$7j!&$P>AXU$uLk-$rd;Hq?7I!omb@v9PfL(uGMbsxWvVGL;d$
zA3g%;L*^jadZJnySV9dsgbV{;FZcV?qu>omPKQ%;?UoAOm4C2+8|VCX35SjTsFkij
zrW^+C8n4;*vmK!9JBqsV58dcb@|?Ieq)A|PaaeH}f4{cB;Ek>pw-zqZGyov4vaUjt)jlL1s-F~cbnp6!0m#(9ifBRYT(;ff%UIj
zVKm|2XJ0|i09r?>m5y9WwaMfqWG!wh6_RlI+D#9WME-caX9i-b^%?E>IpB6q76>W;
zlQrOm@IxvI`t9Uqj1upN3cP@=*;mJ_{D`o4T~kY0>JhtYjBnoYPi%fW0U0oO9@q01
z-4tU7?b&`WR^R2PkScKI%Y*f@XK%HxNatr9JR7p~5|v&ts_+T1V}_%he3m4>+OizU
z?fxi+_0jRsS(E1=+y_)2sd+T`hfF%uRW2H)EU(6QG#>)j-KC?zJ#>f{rRrJqZq|eT`p7hT;
z$1(j7-Pb$!d1d(i_1=7eFJ_}vKP2Z6{cRYzWxOJYK4!?Ih}r?AKHU&Y=}iq%yl2$i
zt5*ZqN>oc5L&GJOC(HWTW;Aa(-+reGBudM0=uUqgS8Cjwe^!M(k!Nc9K`zfN>zjtN
zxz`M^d{PuZNs)}Jc)mqVnci31{Q%JtMcQ+|
z9~r;Bvda=r8foTLJI{|(DOe1O)2Vb|SVbkGD&s!R2|7S}qT~t9Ch|XdAcriEwhw#0
zlb#u)Ji1u-YbE0=Dq&z@!ef#{S+>yRAPDsN<#bl{Mz}XvWngRc2l{+BFvpXMc#b#z
zHby*lh?9tDjv~T7-6E0E7D|#yNrYu&hXJaD0s>*ZPEdWJ0$dW)bWwRJKGr%(=Mjs!9i6
zvROGeU(oFfk;Blc)aGQ^eIpntB9>?C(!t~PYIM(jjWwDbGD0HJqbhuLA=;fVR&;)A
zSP5biYVDdVJHLq9q76#z@}C0@qLI^N;xS}d-@a8$po0BDc-mXF{6nBl9WK;rbki3V
zg*}CP@uFi9z5CTX02%vY1$u>%A>WF(Mlw;K$Y3+I4X~PmH4$l7)&0CBiXqa-urEwH
zQQl870CQ@tkGj&z_lvUWY7#z=mvU`e==!dIXo?XaWDY;C{pPJ4Cu=PDSjb#%m=FdA
z-u~n{<%rL+f}G19LEf0Y_ZMxxbr~D608LXN*oE{Ay(@VDy486eET0Avvsul4^H3QN
zG932a{D=?qJjjbWeNU)WYnQvr9tLOy-Ik9l>Ods4HC*$I
z7fjiad_7^b<5}j;#Yup$?CkXbSMq5>$NBDBYR`d1+;+k!T0fhXa08@~S0=6TFFEDe
z)SE&S;oh5=e$cKLYg|PyP
z6cP13ai@%Tk%fN`LQcXAv#UsFORt{;xs-+T|mypooNz1DBJ@|
zOWbV35XfS9w}1t)Rj5C62<}M0X$aAJU{9dgbE8AldBDcppGhMn>LR6L)wL|HERE;2
zeF~XRnqd{S72YIv1EsLs81Opl3Pcos^nJOjpiUYnaH0oA(CiEcJ?=;PH8~jd!>Hp%+}+%A
zS2@vgq#uinK!c-nUF3fYG(<+p$G^~SF2a6@sy1@uuRg(+
z80Hk0o)K*5Huq;U^ua9OwR*bAr`MA&e1HE4uo&;Jl%lSccIQWP>~CHtYcH^1-&aQp
zY&g-hIj;Po+au1ydI8uQ#2itX*A9_ZJ+jqHETaFYdDl
zd{wY*as^7tyIyODlT6*z`Z}GkeD|Uak+?`m#VXWjX
z3pLHX#@vS&%aHEQSQ*A+CI}x2X*?-F`O=#vsWt{(?M3$9BCb6%-tTHcz^Gzj+NXJS(-v;3i3LZ$1^
zY>$5k+gEnV#bvBICl-Fe{e^|-GeCYD7Bgag!x@VZ6Rh{b+-$&{X
z?iEAobs|0nmCF2Y(_)mZEpUcE!b^10U-L6TbsEkuTqhinRr&RP@`60~7ie0TI$zL(
zUnrkLpNRMsz3fp$ddMFqo_0FmIC8rReQhoH3>~3ekg&oFdk~($do%ePL)+;1FW`p4
zi-C;^1o#W1y%S|ZwFSr4Gf-J4@AIUo$rDOm8^M80$AAU&veSQPkOZq=ZDkFslIQgAx
z@_u3C0=~ef;ikqgB7Lh5QS>F2@^!1I!+amPA~!9Mzi=+Hv)zB6;yi5wKo=ZuO||fu
zE!%M`KTW@@I1);`n3zpiZ#LWdx^iVVZb3fUd-U1Ix1KzWo?smp3xAuDi*<5nP+ZM~
zl3v@5bMCP+cd4MaGlYivRyZ_9h97jAhm^zA>@m1MbmD_WUa5$&g@NRYj8KhztCR-r
z`4OWoLKG~DeM!ZwrtSy$lW+DbGJ#iVCIpLBNzW-!YadN(j;OO
znv2UBwvT)eUB}tzNI^Xj4AtQea}k&81U^dlm^#)-vj!okcdui|W0z6G384c*k-Q1F
zO-#RAiHYw9_EK#UL7WRN9|P`VQ-A)Ie0n>pt9-(#&ZsySXEI_O`QZHf#K*8mJbnL|
zV=uSz|HhfSQrm+4Kh@UW1ca)v!nYn8O7d&ne)^CB!AuejXm
z#>U0|d|h$z1FhJL!wWu-&9I`PB6KD|t-}oU_pjr9A}S=bJ72buR91G1lf>&ebG4^Y
zk!-Eqw9w?;bjmiwFj}Zx<92uLNU7}U@^IgFv@)Ut?Zt?}nJlE>B9_MGy1g0|rEGM&
zSwHi=xyZbH#Pyj*qteCIHO+mo(UVTQUKVF*dps|ORx1MP?+c5>DQcL#yuDp(K3RBp
zXcHK4&ph5B#k@InE0e@|cDkjowfJ#X^Kxm7~jOv4l
z$>z>vksMp(4Y%9r=3I^a2!Wx#C84(bm@s)4+)H>2I!YMig@B(h^C3=fM{bAEvOITm
zqDZc)gVVkFI;%Z(yqSsu`CMpemIQKiYEw+r1u!?BpPS2!g+sUvIjZ(>8aCE#Qw+wS
z;dVdIKgFTZs^460^*7@w38G8nLkdp@|I#c@)k>H+p2cCaQl!?|zr8xKOG%!ulSyHf
z+S7nA^|!V@K@nTJIDlrn+?lkTuU88yNno?)9e_G;Ue2vP|$${6~`OKGoewuwSHKU7Qm4_QM6VqYm;H?!nRH?`@XNQwOWrclvmp7^Wg8AGd=CWUWD+MP0KrBX
zh)Fq;Y|N)TF_iMlm$q}(x%0(U)b>ZhlP~h}edG%>Gt0&8e(kU@S3|Ji9n0xidrD67
z{`=-(ct*6c_x)B*Qk{e8I3y~nqT&?i6}76#Lu12pMGH&Iqx1cw*-Q7E2^tHU2*#@O
z-RV)7mpBkl3CACv_qV3Ny!_b<^y1?3wpn3`*AgWkE(Vf9DCJiNl0>ibG@G2-J7@FW
zW%Wep(UK<98%Af@RSE^>1@|_4*4eH1fC(|_9O;gO#JMk_=w~6G#tjlS*`3G~TmT|D
zc{UiJ65g+vqn0;YnW7~A!2*B>xit-q~Z+*
z5~thR41RumBsV6LoQFjDs0aU>9
zEd=mI>CR_OJ_@cGgRWG{Q;zy>>x2G~QwS`Y6G`6npY2Ry(5R#DnQW#o8ukzg2W3hn
zRDzMAT6!sV4S)A(bR56_G821w=>SYVLfGUrNsZ3?v-P(6M^Mu1^PLz%K@sY-7U3WS
z0*=Qti#nS3bVtyG13vGCdLt=pwtOAy+iKf%)7z3rg}m1^L-IslI6Sw+r%n<3BgM>SEpTwj;PPopu7fASFhylZ
z{JwmxH${fQG&CikDuzyrRq1
zZHa}sv5=QS`v$wx?v7^4y;vqJ4ZJ3bv_6Hd_s7>do!M0!$zU?=&c!L57|9T@<_xaF
zW#}|`&|d3**X?1maeggQW%k^q{A3LQ(JHBGxt_AB+wH{##E;KpA&I<=c
zU!ETEOn7Xu&49NcL*(0AB?w6shw!V2n;gN^m#8#K7Gn5n>
zr{-zY%f)tI7wUr6t1rxaQk3AZ;G_C{l(wianOsPFwGxidR~B__`J@)Bo%
zwn`@GqK)@O#WJ`&Av?G8e&Q5i1`gAsM@TcY;Y9o?CmVzMuRm0#Zqv1h?Y1%?a2CVv
zkLOK>6N}b5?FCi6#Ae21Gzd7YVqjr;Wlt>l1;HhO+tu!f)f9N4{v{(bD4oO^xZ>mS
z&Z|A>)ntK&zy8aaN}H#FyRqpU7f*2uhG6edN&?E_K2zZN>b8D)DTWVq2?~4VCzMmB
z--&o6H(%=*UJ-n58pm+K#)E*4h115AK08cHXvco3Q6R+nnN8v+wiQUwncrDaQjeAamr$j>ITW$*{%bH%V>U}0;jJ)#pNZ*T8}hkT+;
zPjkYHbQ*R?t907mM*--ND0HJ|trt{F5O}A%l-iua>xIqW5o^SGHkuupz5&)=0$vw-
zi?*%>&zt2*HtU&8PRt4K+v^kK!J%*L+pYdcDs(#0-*1LaHU@r3N5Zg-$q|dN^SDhF
zxQB8&ZsSiiA+cBpmk7Q)Y$pxIP%6^SP}*UI*z0e9r^H-NZT9W&@0WY@E{6=M$z=Jq
z_H4V#V*Gl!6*hpD#1Mhit}Wn#VBuniFI9f6Cz4$Hr!HhxgjqMQD~@T>7dB{nX=5;j
zp=F=PO*hizX8l{{Ty*i-%7Y3i`$;aQ1S8CNcY>g7nZO><0+ljWX
zG#qNwIqh3aHVRg3vmkH4j$QSv9S
zNR(=&V?D2Wk?<6s;^=5;h094svhEFiXe~1y{G=Cv;#+uuk(^Yjxi!-(u`KXlUSWqEexuqmvouZ|UshI;=~7IH$o$T5L3(D7Bow{ssUp
zb_ZSSAChqr(X{@d5XC&TN=@Mkf}dg`_zNkd5)<(iJAO}L59aUmbt)Z40n3LLgG%m)
zauN&yU%f`H4edk+aF)&BUX0>9-E407`SU=AfC~D6bg=k=8w_k==Xi&$!;7`xjgbSN
z^I))=fgDA)c7vPA!PjjL)Q@H_uyckO?AIj?-h@A(lQ(C4umdkI`zlzVTBoL}g@a#X
za)gZLqHC?{>R{7Q&SA2i+0OZb)+GmWZJFur0{yS+`mQ(b`WUvxEiwfoJ*xyZBu16
zPf!0vU^C!;${tE{JU(^w9tL(8{(OPGaY=S0O%T?W-}UNvZK_1ymS12NtA(VX6TQG*
zMqVTWQv?(eWArIzQ~3uwv8So3wTRu35E#1XCU*id1(hQc(Vo=~@OF~5Hu)Qk&RC=XDhQA-l^@9#ylLEO+jwihR6mJ|4
zbODw0K|?;H^K0|5Fmmu`{C8_V`r~=rHb3VGCKKlH988zhbqv~P7=n5>aomQGiVBvX
z<(-u>_sI}W#~oF5H5#=_TrL#!48^UH=L#vju0B=IrPf}-pv@j_a3EdZMmIGPC5jmx
zyxDpwAa;#_b+SemurC=`1{fMsq-BHgEH{4k+4dX#*2XcCCsfZ~yw25
z;-7$G6-R;*&{A9+W*(x=2rmp~g%7ablGvdqV1EELQBQm4NAc~EKP)V)KUn_=Eqz|o
z31yoo*ywYIZX9>_cALz|)j;SHv6tG(rDp#TGAd
zrjNtMC!&wq!j4W1vb)}}Dipl5o~`U37?749$O55s8uqt48b&0rjcRm0z(4<%j_>E|
zVzWo2eO-vlkx7G&h>2S9zws;Ccnui2qmLe4iVH6>|#51PBq+xN9!LMwetbv_Y8+#
z7kX)%Bf#r@|5%VnA|(G=5Frt+IF?LsX<)EY>FvW8nwH{c@EB>eKPu?s7>&{Kx|rU)
zB%);8qEpBeqwGYzf?u7yow)bBskEFY5~kI;e@ra;O@2=yRriyl`J{`x`+U7^!*|9^
z0m$A&e?rC1SaZJlVwx|vK{UmF0s@hZM_)1%2`{PGKH>7%smg1=%&k=DN+J(E8>C8l@tW4-@{rJgBdq1!Sgn00qKb+N
zpN`Jw+)wXSue&e;KZR>k$rit{<8`}_PD#Ep
z5NyBN_VGLw<3Z)Q`ll>7;;tz4UXT65(8#5AgLyr#nL}uEM&BfNW@}Vgy&``S@N)%g
zqR;0UgGYtgI5KvcqDlK$edY^T%>1b)Y7&Shz%@Dt2>t_Vk`ln(&ls+yd3jUDN^X)FaFUsKM4@}n9S+Zh~r
zEN}hK#FP@WoI(Ra+SPX6D2XQc3dlELoP**NxRspF`_zrW*Kj_#C_zGJm?Yb*5Q(Qz
zSc=xGRjPUI-7MZoi+A)xbbO4glmzvc`A*M5l1*{NYbtc7O_I@rg$vbRePqZG;qkcq
zt65~Ge5=%;I|!lMJLQgBiWR!yYJOQ8*zN5orGSQ3)0A0{u8L@HK9*04?N(tn4SBWA
z-z7`H>wtWA-*|UDX+6a6_*Z)_U7oU+%L6{vtNgk4;23_{`|GnEy>|2)DMeSM;1B8f
z_vw$#(lmw9FikmHZQ765PB3Vh8HP)l*W|E(gKGuSxBchBtB=YT{At`nb|J=XrthOA
zdCb3Ssc|&AZ!7@b?Rvk;?rC^nhrvQkLA8+}%S(tOsslenU_Uy>xF%zW(ti*cXC2MxCG1b+U0JZ`7OIw`!W6)#@Veyzj`??v_Zan`H&
z2MgdF$D(rHInhYh{SZFaAbWCZm7`T95KTR8wOH%5vtH2~GoX?uS7$el9Un_4BLqw5<*$}7Nh)RcJd%`k=gWqk>;$W<(>Dez7L=G
zJ+(A(u6$O|rmx^*r@LX3WAy&4p?o!_;na^$x--Qid!nfPt4y8<4k#lG6@O^`(E3Fx
zk^N|?*%!*qW*cD~O|2$G3L_P2k}USa;e1yO!D+oOE}6$Yo#y3B>toYtA7GQFisdjW
zxgyq6A(pQ%gdSY%EL{5+9@Nct`FO1t>ZJfSb=)>ff7x{fI6+j3LYg3pNo>~1CSPHh
zC3We`zkHQ%sgm7N#8XY_*V%Pv!C6}2$h3`THYKW6g7@B;pxJ#V$MQ}Xw}NsPKa1jB
z7Ce_n=Jd_k4*6Zus=B|rlv3j{QK^2=L``OK!4K
zLcjmn%8#)er-pvu^AOH}(Bmu{3r*iL@-bAk2>u#n?
zE`y57{GDopP?&yUJ=JihOiHOy|658bNxjQcEOeFLB@Lol&mZ*`BJ!1O#GUd#B&UJd
zZV>O{+?>PQ^^BBRCZoYvucLk%<1of1h%vL>t
zr7A4%P2>m;4kjWcB9jt2$71~Pa4scLSPWQ-?Goq*Be`hMMC}H53Ae6z8u$qn#TUaf
zB$Tr$%>Dvx5j=I;8zWux?h-MSWwtAB;^EfaS+QZ%YV>jD6Zvm7s{{PJ*kDH=dS0Mg
zcb;3SI*CEjuRc87i_s0;u9cAJ|B$?#EtVr5jzzh=s|yVcT`$PP=i+(COmr?KlfvCx
z*x56Kje^G+U8EV9q-bL^)blDx;`ZCuug7bH-j_pZJxXthn?8}c-`{fdJ>~K4?GQn^
zHE#$Y(6_(3UHO5*`!*aB6Jy-br&hYwg@un_skfCbfici6ARWNyFf96Zts!=?(KV?&
ztbpRLOsN=c`KJvv1IfHchxhY|H79!S%Zz$$@8__-a?E;Di32w~$;$-%btp3Lp)vtCZ6Qn<9C=#BR>5gHA{`9`bEbd)U9
zc5H@jD4nb-6jjbbz&s;Ua=mN3PUIW*-gFtP0OC2))cA$U40vq-grF7G?J8cw^)3Nk
zoxd34-JvfJA+~0i(@(O{b<|xpdYFngqF{tGpX4b?uGD~C3?Wa*RqEAniGF9;6o=jF
z^N=?=Jpc$->U1IEvPf$TS=a58@8%bFlAJCz3|^lT?0+Pst7^J4mP-uNfg+W-j`2-j
z7KC2KWcn`RaU%lXX<_r8--n+E?m~uL_6NBU6x&z}AG|TPa=!9!FJ!>JEz%eH))682
z{;9xQB4Dddm9yZ&KZkJu0Qww5ZFcVuz3T*Qe<8=bw_YeeYCqZNs@k2tTj71>da^Fy
z!erX=xl>wtvQRsL%eayog3V&4cL}hwMti4)GI!@uvTtB(^P@sHhum>%%yxHk7~nQH
zr&}ukcI+P=mzAT{%-kF%_7A31SOB4Gz2gblam4dc(son1ni8fYc5S(@03{zt;(?b7
zD=0YUdZmCqDo=u45$dLIlS
z-@eXzA0t3uz~OZ@k4}j$M;lEHl@vz`Kr0Tcw3^nN8X_!EXAZTXXV#sox4mn=yE*PZ
zWnSw~!07daem;^()-_^(iA%4W-s4$rpvn(0!xm0^=;cv?2CGU@8gNOgNqzW+!?sZG
zMYG8F((PjF1mMW)QVEE7+|~O2=f|9>gVu!m?fH?uSW2pneD%(ac303&qyx6X2V1V&
z!^6Wk1#)U_`p&fz(MdX5eEj`$#30FV-(#N^_>BP%$MGEo#OHD&nNm&eozbut2aRr5
z9&4q-sv$&Q1#Ux$(u@Z*gT87O&bfw9l}H#_8=kG)^4Mzlbxn+@RsmT3d~a4iB|#RB
zqa3V(#O#41V#qmj4el5f$cnPXf^=%7nbpE%c3e~Y$O36c7Mnw9$AiSHDjGT@ch#xHIFpy-;1~GD5^ijz%t%%;fF_kl-+%
z&6$FmTUYz`sd#3~AfqUNV-dpogkGN$$mZA(7CaODi|GS26L7IARDO8AK&O}jWlQ^;
ziwm^tZL|~deaA7bI!VMMgLaXF*epBxYI^j%k%4r=nHb)USlh*YhePq->gChTwOvk=_+)S|v
zpq~J=e@&+axyqeV(fcx(%mkoNj)tfmqzHOqk*{O8)c|ng_?+%REjhOMG6HwL$YO3URTwRo>Y|@4ql!2Q}y4o
zm`%FhU9a8q1SO=sqS4+?I>G6CBPm>ms0C`QaydssVNgLZq+YK4oklz&^XeD__~guF
zhZ4XbVi5{MHy#Pf?b6P>7id*@oWKZQeh$de7;JI*1nVy{{pGEU$2(j`nW3{q#VMF0YX?bpMU)b^m?D@exY^8?z|pbPf>}rjw6JR7^V6
z;f*tzfY%rj@wu-DQmPJqHecGnW7syz8U)Lax56TY@tH29
z`&F}Afyw=VuU@CYs9-%z)r^p^`IyPr;klx=WA<5JtsJrF6nWVJpUs=sd7v80On2^c
zPn5Sg_}@YZxc1l9rt@9x!!@mj^G%~5kVW|A4NTci-98hvOxmzam6k>*=k|FsC=31wLm(Vo7!b_6!hry)x54R_`h%AGWQ8+m-=)$e``3wJyE18g#WEn|oNv
z+||*f#)N@gOSfN=;LbaGPVCOyQd6?C$-jKH;2LkZ(kK6_97`zpC7`pbt&NWDYOx0G
z{N$wd=q_fk^7WRVYSFFOk%iS}>RBx6^jz!D93vCnk1W`oZ#>pkIzzj%b0_SCPYBXM
zeqGOQ6E5%=jmV3?{J8F*@b&oUh*!6|c;{cLit2d>IZ-0Y1)&xguYdIrsDt%d&bzCD
zH|*YPchzBY=}{(1BY5Ahj-MSX9<7o^0XELNpzoBScsxET_qWgR`JCRZvO3*9EfCbp
z-9lRyyY9Cs2v$0IT##8Q4m@d{u1_fqTn-j$e5=LwGKuG#lu~t@(K->e8eM2*7H%al
zD6LXsn4Iyi6vnw2Hfg`0N2x)sqbNLk_wsh~Vg_Mf;?UeBl^5R1nb8Ri<#C|mra7j_
z@EP^R0=O$(P5Qy}SqOigazP8m3iMD$s8)?)i^E2e^+CTgB#lFx2do;y)x;lOFFV+s*7DBnz}%}sxYIT_-66htiiYVirw8^1`e>F-JB?Jzpw7g
zQdd(m9*E#*f8aAy_6K=*l^oUK4l=@)1aK1PgK0rchs>&{ais=l7bmS%7N}%qW99AE
zbwBv9HJhppdXt&#qw|L^3;h#<8&-;}T`a?f)QzmI>GogcZm1ylt)z~F<g
zdU)VIG)Y|w-TA&SDR9640YKd#A2#$5kkJYTjJFwiUrpNk6n$jnc93??o#!CN24ew~
zjz>fa{YiyA++)oHOyI?oxH;IC7Mn-MyJT&R)5jO>d?pT>YmTzpR)<#BkBB#ciL_oZ
zTkbE39gr}M9{j^Wl1mJdChP3z(X1ySO2?$HDh7m=sLiUM`5g!`0SGA0Wbvods}D(6
z9pGHI&4Nfkmz&N<_CZf0)Y^?F@4Fu2zx15{!Jp>*0-9PC`(3BD)WZqQc*e7rGwxv%(zDKnLQ?E
z9iv~nb#0A_gd8K;c7NYt+XUbcAw4k!Rqef#v+MGTszhaVKZ0sxb1iSdJ+Iqr5;P}?
zp9b2GjQ@iLu(}E+StsInzqi115{8|1yo$?_h%V@4o9E0K+XQ1PQ@t@a*HX;Kr`w8
z&kz1>4$9rnKdiri|K6Pc()a(P)qhu^LqGW6%}FQtkKXjZHRu1aEB|+MPM`d(j{iS2
z=ikzT|7rh!T8)GBn?)&Ce^U3)*XY?^7p?pa9*>3m8)*Ld=Mg;9pV9x{oA$qj(4?G`
zt0dxW36S6YCdb|W@0I@R_#*qGL5Je~+rIZ;%IJBsk+QVB57zomi27)ein$}PvA0!o
zzzblZ(KU%w(1YtsmkjzXCWA3*k}n7^5QO}*qAD`qtTXY_<
zZuGDfk0jFq7h0u*`agbrtB@^zvnbCQ6jEwtC
zx?(-wbB74z=Dt)=kxM31>aj`=l(wHFE;gb>`bM1Ya>?E*fB(~m_h3?b2x=3LNUaT3
zU7H35&48z^5{6*t}T6g=u-orz?e^#P@z)JvRbnjJ6Aoo8{1thLqn0C#P>we
z^+0;AT57W2ahBI16HjQYi2T++H5X{N5{#!<-x+3w<8V5f6rvO6ZgIB{N)&9TCSe_cQL!
zmOVj1gn~V>y`Eh(U0jpLkq^U4c9$vD-5*1Q`+&{47#eXRs-uWaYu|DN=;zuq9Afb_}-ing4QiD%W=(M7_a6JGuJTvR^M)Mz|Q<6y=S8zjfOpOA=~
z1*g=xt)*uYe5M*VpAh(Jd(*)(FX-l0?e6Z%Vl{!P(>#lS#Z+Z6N+>>(87~NW7Fy)*
z&xOho3zyL$J%YXbvlaFtD2l>Q2P1N{P@heR1@H<(&VMsghpjs#2bw4pqVq3rmhb8S
z$QQ^90&sTQU3yOBK?HnW5t0wc@Ov{QhJ677-FOPCbh0^$amNsh+2@ZQ-9Ng&-x@JS
zo~KLU6ZDUZ!}1AAiRlyLuwMhBulXu>(dhhX(gs2^xBFdCNiwITMBKoyjby1{TZs(-
zNE4iu2Hm^xuix73_jSW>NM}o=l!y&O{eoYsH0+8x+9?*5lvI>4F*3Ss+_I|d*E7WZ
zeiedH!AqV_#x53aR8o9Nr`H`$tTJvoDf+zv*d$k*f?)~^Bl
zL@mT5?UWw?5pfUcC7i&0w&=k<7L#E(Y@S@+!ip%;WP!SJzJaOu;5!&t97@a`ip)61
zu$Hjvuf@VU=TVRe7ng^H1}-*dtHs;<2Kx*$nz1hoEDTXz0|bC_{x1BsHkS&BSD+@5tMXzaqGT;>oVb;>vTgHvGIOHR!>k&m-W+U&v=~N0^Vd8Y}skK
zpXSb{miX7zRaM2z^LMk$Puxj)
z-W0mnJXi&x=PE|h#QOpI2;P08$Gsx{dQaBLWRdm+Zd$fK*Nd&CuzI`kZ9$Q*{mI0W
zU=T3FGO;j8B$9NGl83JGS}#&aD@r^(G%G3o8M9v5oBpDw&Tw#WSBDE%)1#g4PL_fs
zvV|U``YR6+BsxvCP=%ux^6Lzel3&>hH7XoW++<{s=;#K)-aIZgHb_Ee?2Uzu+v(D2
zx4w2VevvlsVu__fslmB;Bp3%seN
zWhANj`I8$bzG`P!zj}w|x%-AXqRi+048%3%R%gfHmNQmHvq3SHdH}E%OfV|us6Mmb
z>Pqvp($PY}Sk|C$tv$ucVEDbzpj!en3gDE0C!=zs^7QhCE|Co$4-8+$JUQ6#!0l}E
zP=aO&hl_143ePWJf%F28(|NJjX?!eDpG3G%eY*-R&Dc54?$zDhoeVA)HEpbT
zIFVsp$h@K`t#__aH)AON9LVTqp$BdZCNKGM!^t!6aXR&fQ&sK1OV1F@w%VDXUaYq*
z*wks%TZ598C%%g&vvm6`NgjgNA|d~UB7Oq`m(}zA;^c(O`@5`JLrE
zK|vm#xxI+#Jl-J%v=>|V{rxi?B3`IDU?y)QegC~n@u~~&S15JeKgaF$6mK{{`R`>{
zt{yG&jsN67MD@S{77h=DKLJy_#(xQ-zQ=MSFmnnZT66!d_AGSt`rpMJ0B{v0j4|l}
zf5%VlTtHGmVNEFYJN|_6`!}rmFX766xzfMU*Cy=W_9XwesA_ba;x*tpgQPwQGcz;b
zJ4Z)Hqsone^wtNO7l?=hk>sHO3ix$5AP&Z)5Z2-6{~1N40tS@p?v$;!xA*CEnX&Vy
z$InQvwE(-P)O2)RrAS*jPq{%lY39d|A0vw*_B5QX$3h@~w)O}?7yFlVg-xHV^U&2D
z%*L*!=WJ|MHV%@7Go9n(EcEoUCmA3TKqBDH@w}U@vX+Wxj@k^x=JjZ655^d_-5xUq
z)d2w^PRu(hhE4}Cccm`qy>FO7h%a{vV!%w0QnF{WUdW&3vz%cDw6>T2*e!84j1z*Q6x8+HfWFv7B%Nn|r@srz9%4eeCl~e34vuF2gTX0#c%Y#E<@q
zCw~JtXa?O8xrp|FwGKQ<%wQ04b7sit>BTfLv@0#tR-H(KU_t6qJL~-`>i$*0lY-gS
z`TZD1+WbF_6a`Wd7=RiyvYsF3P?$I#UaV>(Cw7(eul2@&=T7SF258g$MVj?4X^uO8L3My+
zwL4uF5RXh|2m&H-vyi5&ZNPK|2&pUhuFP1b$-}n&CwRVjnlA#agiYV0-*L)FoIcGSur&R5^Dfz
ziIY`_#KpmZ$L+G&3h3Ai4QvbyB2X$N$Qa08(J1HV00-IaFc4EV8^#0BrBW945
z6%JIEY`twh0CaPqflR_CThP;hJq!En*-IQ&1bdmi4PfpqTRB;z!{dG5(%(;`1W^R7
z^#dv9Ubg5k@S4uoyY8%Zqk;Pb&D3e~x*OU6BndzPYoDWMV{3J&u$Y!NuTOi}4SHK)
zDw)E22edH^gDn34A7^hJl;zs>4ciDPCF4exT_`+nyAW}f-Jna@8R_nzyz&f{FiTEALmAfkZ(yt?`Vs5tqH*r+IG%V~96
zVPkFhYW-T&e;4~@aGwa(Eq$t`>s2|Ar3GWda+gZ-L{HE5ayKr>W}jGswBGLW)Jk8t
z_osNIUjksK8uf1Rmq#%yro;vxY;9|tkNnn+K$=b?sp|=i{Ts&*?kC%COn9a$tVm16
zKg}kX^dJ8h3z)9`c=y30=}s)fRd8ZB48CIos)-fh|(X1|D-1py6k&#=eLg;509gV_UQRKw@SDMF78yJN`f?dj$uRxV83dg+PASTkt8Lloo^O5!f!7%ReJhqs?tXIV0qbcy5@UwMFG4QtG(6-
zr%!DKNL69Fy&;BT7g;T{C&x5HeQsNT~}9EbP5To7u$;)UeNmr
zadWuofJRjHBBg9RSrB<>0s;@W1J%3IDk{Doj+Y1{&00Dwc*M*j&rB0<;x{lzg9WUe+b8~a@czEAP
zM?4v8OX2Iqu`z}sayn33+`+`eq(}7~z4hYG)8|BD*c`SG#fn@n>}3{sfZP4^j?-cL
zNds9j3;XZ(Z^ZoBigYr?!V(qEM>qkzTt6Px)YL#;11b6=#Vq+3E?|(dkeOVWD6x}lbLii1qj&sizm*9p)5bci*OnxSQc&D9m5h@^f^eq<8*H!we1IW
z&iJ2t+ch*R3*`vvh^LrY!xs?1402!k-d^yRL5bs&RXmhg!OWz5^%jUG;;qFsdXa%a?#qxbSHZ1zK?p^)90F7dU$4*fo@%BSG`y2-@oYhlb0P}%m
z!nTq;S|3u%Q~wcD#rvMrAsF|y=JxhTe!kC#UkwdE6mxI#rg_T{Sd72icFg1sM3@4T
zfLg(O4?L?MB-g;mKSdGkuqhPyLdtCXM|oRl>NU~Z5z++EL*R`GuMMQjxmIg83Z0Qv
zSxi;=i4~{D^}+**L;%%uZj{T=K#TOs_iC^jrEsVYaY9FT8Tp_g=ZS+X=F6=pI+EVB
zmWhdvi)|tM6L2&8J`|?U;(8^sCj5tAmOKA}Zf68dI@j~>Q2!R5u!qA1B_2til?g(+
z>B!YScY8t4Amb*#@d_*SGddEJA*rVkzGGBc@|ds%8cyk+$G-^eSC4D8j_|V`y;rF!
z-z<4s`%@s4
z5s5`m`}X(594*9AZQR-Ezh@azG%Vf}k%
zT-A5bR&8A_iEpt;qK6S~(1qgew+r?r@{I(*L#~fb!b5PJ$h|9W!x|OoaPs+ft1=D9f&?}z*~2C-%l>5jpJEZ-kFeud
zOozcf)7ChW1-=_vq~ZLT0@IOgQ1UXH4nJxXcb3l11V0+D`K{9S8;~?GSoQ@3AW%qa
za_s*Zw6SmYDls0w1ge^wbQ|n&l{PezD~(+aR+0+~{`Pz41By^-+3bxCs{@NX9Xy$i<#TCjTBBlqg=wR=RN*
zczJS@e%`;*OCLJjq_BJ*Fx=Rv(dzhwH;~|sST1F9+HWs^A}g{)gS2QA*(>(a4LyPB
z6o(z|tXEpH6a&yLGD1-#BqXdf1d)zvsYxcs^A^zQpJpj!o7B=pQ4Ar~rarnq^g#L}
zN=|WcaVmnTDV+meKYYEAw0Ac<0W5nq(A+&e(7I;ELH386@fx=NzWnPSkB)OkDY`vh
zrt|@B`n}cX%q=UOkx~R{)=Oe=3p|}_4JJfII)5sZ{YHk_S)L~3bP5_NLDtl`!ZY$g
z3x(_~C`frq`4)P2Nu9{ozQl>H4`xCwrnESsh-K1;#%~0ZPSxk~Q)Fc1y70%7ZD?2C
z>5)E*_5kjffXB_OFR1|}eezefa56y^tqMgBu0+8^_;lY6WqcvnF-_BCbG~Ai%08x$DciKwx30BeQTr^*NQKv=@
z*f~}FPf^SVfQcs^W&`UJ@C7xGakH4nE4ec3fv;n68+tr=jAF8yt|3hNVlP_c^Q(CE
zbaZufu@J3<-@7L5Vl!Pj$bwinQDgDYiOdKzkWaor+xPD1^J7tLOmIrd{Hf^q+vK-0
zbU2U;oxnk3HB-*Vq$l~bHkf$;`M*otP+Y5BFBB8GYlo7uYvF
zf0N2LG3(tA$nk6V+G%vxkP<6@o$Cp?~1=VP2dMDr!T
zz&`z61aw%mUbpW)fT6I;?dm)$WxU48e|x4QlstP~ty>^4c0y^W9GLuwWbxiH^5*CV
zk8wJtL}V<+OH^z}vW{lrlTxbwc_fw)jY|0+Xp-RzlGbvb1t4ZtM=9!D<8in7B
zoT|ddhEg5UXU~R2RLB$jni=_XF^UG(#
zhjdbw^97?AvN#lppp0puh1$iM`|N8y=Z%4U5Vc45s
zw>AE5Yx)+{!kroSx9y=n4++5zldFJE3L;0Nl95(vCnEqA1~d9
zqZVEbjR)ykIHeT9&|>fL7N>k;8=U#}V0SN>6d^IjwBAiWQVI$RAZevH#&T5TO1b-$
z|LNci$CTB4AbGTA?^pdpr&#C%J1jw;lEW?mGZmzJk@6heo67373?XJrK38;0?(8kE
z%bGGG#lqq$F`qD)sjIc7I{^1GG`>`tHI8W#*!6C9A1_A{F|0(FlEI@+G$fZ$V(`Gs
z%q;C)te>Ok_CUTCPwKP%m0nAI{WIw9QymU@ERpo9t(TB~^MF_K)2CZj3ZZ{h$5vNp
zI=!6$7HXF*qAbE3-03>H&48y`-!sygk
zoeJP2Gn))j$x$>9vE=3D;j)^A^FWYAbWcOMb}W<^Z#-mB
zWmx}76*ajFr}1ei|6UaSZEaDos=l_Ee1eDf*T}Uu=!8x36Z$t8zr|&_sSKbws@m}d
zPt^V+2u|P|QfC?R)PgelxTD6XpRY83bG+0P7$lC**n^)KHB6+46j*FmrO#wSMIOUV
zDrQH$zuaAIKB0JaNw4=69xjbid?~eB*=CKCO)p4_89SGR=U@`1i$r%t!5d}BQ>2zn
z&EP6*JBW&n&7MZXIk-26^t%}zA{1~@yJhhX^r0$;9r^_PFJ_}KrN|#(h~Qlz4p=L|U@KL5)BAEtYK5$pFf0wVazKPM+=G5s^i
zZXeE^$j!~FR4&%yWR;y-?j64@YSpGjjNgOcXmLViJPV1>_>fY?4mQD3WDzobJSLr{
zT}}s!6xQH!82M#5qaW9QHrY!NMrHB;g2S%E%KT^I>IU6-7jtMnSFIebF?HcDDRF<2
z_ep8@s`urSR6z;yyp)=gsAw~;*v@2
zbBQ`a{#s|drH|pnb40>yQFJtlInQ5PkA3ib>G_O19c?7m~cX)j^nc&
z=c9E>NjyTf51=b-3eOT`n;!wlCL-M7U7vbi)IGB8WaesS*PCm6^yFlwhf@E=03YBv7uLw6(Pfxm^G;1n|Yn)3cGG*WyoD
zdHL(CwTy9+t&}4xMvkQYz?j-!`$X~*
zFNFNx-&&CRMs$0hAVV|zO{viC;o^wm
zJQLB{(cxb%zdY(6h#MGmh^x&AjBt8Z-|;WcJf8^t(TgfaWMio7kTgm4KNSD}MxFn^
zN(Wy4hmaBY|6ut4e?ZY9#J^^4K*s~Pn4R;XQG3x640~aZ`Z*0(puDM9+4jSoGq#VB
zY$*MHw)W!0dZ{bor3^{#42Q$kOv%>z!WQkg#%65yw
zxvIJvfUm0e9(O3x(#`{#Iy*NGGs8en>9jZByqr4$&yOTTR>1Mp69}!XExDg!g@E?c6;Gj&GdV3$dn911kx})D@YhImSouhv9dGrv32~{pO4m|dURO{7X*J|Eqyg+rl
zfM}LI%-m~7Qxl!fZ&HTSxcOz%%*MD~FEWoLVg@nY@#Ru|Hq~k`4s&Ho{SMVi%!X87
zg^ETqkzaGLv5B0wM=_FqH)sinCOda8EA!Jg-C?G6HWM)!k2w%n
z9OBhK*F2Ai3g(s0m2kPac0DWlNyy_8o_tYlVw<>_)|-JwCX$3Rw<^bnZ_B{x@(gF{
z0D}dqa6NdPeH@_fHg2TA%ak^QA_I3*Q&X4+x``Vb8%f>lObF8?Zz9CZ`D__j0#t0S
zSFinoD)FPEEE!~`{Oo9ps2&Gs^*hh&>s{HMHh+GIdb9K}1Y@K&>x+PX7Ag8rd}s_&
z1p1x7yU_hV*h=|tyEZdO%}iBjH$t~z_vnc~O)xiSUKDB)ho0Vs@3xNaccG(_6)lUk
z=fpz(o3@9%Fhv4n4BbwgSfmWk&48>=6{YAXfM4+3Mq5wQ9n*Hg
z=ds`HPx%@g9uZ2dkeyrtfRO-VIY83E+H=1JGd^}FupGb-nA{6miQSXaJzZry2CbU6
z4r@&M=Z9N{AbNc8R&Klb0IPsvR=DuaBOESeJMH#@0u;D4uf`Rgp;;nh&~up{IbSlHu`-p(q+pT;ACUHoqM`1SXG#fkERx
zhg%c*A3{h%i!iu~?&s=Sn0kr*`RR`ZfP|M?Cv^Li2_>0H$#FoXC%#yn~x{fes5%8}Z|nzD;dAqmKn
zg5Fhs;2rqfsZO1Wz~BsB(&5`+5aw!B3z^}o6dAw=bqkDPQRob~EiGy0`~0mCWNY06j?ZBUHN+S5p-(Qm;eEj;9R5%F#)q@F6%o#YS
zOZ`H|^?siagaNe4o2+uO=_oO#r>B1vfn~8ZUi=yw+x-_o&fAW@k8oeHr&8MpF;oRtCwIM2APiqh^k4uvXs>2C)?MH3OJoeCDxLB^%{gC<~LI8_S
z-3LiJghWtgLFJ{pX7~D##biZLdBz{@FP)KeVf9{foF%6I3$4&Lms`yAgC)#d?Qcfc
zyAm;AgZB?sq@K5@1>*L^adT8Z{`3(~!kk3Sr=1cH}PaQLC$-Dv;}fN$e68C->%8A!g1_65q0
z#EE`LpM$MpE@q}>h{bahOR+mBzg=CCgF4tT&|JNWWL{c$i?G<|qd-nam
z@3VD4jFkS|d^03(@jlLVudhpHKbWd^fOB_paH3Xd!lJo)a1CCIX0
z(-VR&%pBI_o3E%l6Q$;!)Jh|HQ)#_%`i7>jO_v|Z3)^-rww-gr3Q*u!sFNPzFM(Io
zfnLa`qrv-KEZ7j&R#ryJ9V{j4QfqWB7Ftm=Sag%sK?;jR}g|3`AcCxnRI{5w)=$M$pjaL`PFyrg@&y#~RVzkh8
z0x;sHbjlz?VPin(>ugR41}S75FROyC3!I0*SsSEB&KeDv66ew0kXVUNb
zg0m7gR=mitJyVW)_uhm1J#lXgZyNZO6$V>sj0e&n&Vo`b+_69OXNGe!sx`xCNeCGr
zJfA@)WuUvz^6q8pu1rX>AaKT>+>nd_sUx8ONiLB?YpU||fmMqEEUGbo%_h
zv3m>Gq#fi|=TiPbu7Y~FkvLjfgk}s``ig-c>~g+UjUcda*sF&U{P#uU!f$R7I$ZKc
z{?1~*;CgYqw|~sn7Q!Zzyt)I+kP^6^&d-lb!(FywSe^?pcMyen3AO9l+sn$^*9hz-
z!e*4e!f8`$k$4yMgtD!1mK?2}uC)RFua94|un6iBQ_~n##j?738!0vRW3h+Temp+h
zN_S)73DQ(4)^8-fz4vP$gGSJEwFz;dH<1(4afAb~EvxM}6zeVU2NPc|e?de~_Amk9
zbJS{KMSxR3rR5!<;Qnt-JHON6bK3E#SzEU*KCe?bz?`abz~cF$!Jeg$O2GAt;oAC9
z47$H31oC?sQHO;)Q22Z!dGafqN=EjXY{dFiH;2PIAVYwZ7O%AZU>~0-x2SZv4)Dy2
z3Zv@sU+L}d&$PiBRD!fE;_))_=AWZ*Lq~aFa(1;>9t;I9wG|(2@XTIaoSe7~&)G)4
zWU7jsGQ`5_Vs`Pnn?;2dGz^#Aw{S`ah^C{Gny$&n<%53U}ry-HF*
zGY^b91EW^6Fxw<|#m%iBvk}=!eLAj(ZQ6%9@|i_Oo3yeOKI={nO!EEGoV<1_w58DB
z#qqdHx|DoqxD#$Z9LEk$(q}w@>mzCJaQpRe$0UMs+=ontz$*E}`92QL6e>Q~Cyv&F
zInt)oz{Hn@3jWI(O{8}{nRJ&^S_1sq%J4Y_+htyFjiqqLw5XMtVxlCuuU!vITqy5hB<-S_sV7N~f=-eLqveaK`#{@P*yqVxcY_qL(zCxlQuJhTP
ziBl<-{)zdTv2g}4K9Y*R$!!M2DgSws2C?V$x_0q79k6k6-EC}aL=w25lqt6_5xcX~
zRh?jjn5&ySLDhZC?y@Qke)UDyQi)ci%#W_pxIlqMrndI5W_{Fsv5z4oTv+%NWE+Up
z_rLH1&SN&2YMg|2ywyLQufzMErm+Z!D1izu0h(l$OFL=J?|1)RSJz1Y#Lm`jBgS6-
z7YkThLMPHh!zLL>MAdE3Wb@zGOk``DV>m8gOV;a(S_3^p#*2A!$zwaW3!#xw35i8H
zZfOlgd>)j-v;7s}R^YyOvFtcyRyt!D5-*QFcc8OF_mj#YITU+?NuBe2b|76!28aJJ
z<9hpMv>N%8Dv0&bEUrW7Y{S%>3R5eGk@;!N3|T5gD%DBIqnw(0^OlIXX{v6;;(fiT
zb$Mkq*^{6ZEw_>G>FJKm&Fz|3)x~fxg$=$IH;R|Fm2utub&XCLq?@F2uxz!B7*2@H
zJMW^DPw+rGN-|XKtW$9oQX8(H@34haGV1&ps_gZCpra`FQMXz&1dnW>BAn|o5b=X9=`|&c(fC>Y6>{T8|E49O
zGg2bih|rUzQT43jpa#Y=YgC%p!8}h^t5M^~JNYMUX@GyiV0jq~+rJ0-zsj3Cb2@A`
z8LrT4JmY|E=J?gJHNwc|R&9vSA0l5>&p^-`=-I^&_UW6nLqnobjD56+-#w)P4r;t
z5!Hh^biv0~!llwVQPk?Z(L^ta-kM@%lqFg$zH~-uk=f3A$g*d*F~pB?8r7cycH{nX
z_Zw)DHexE;(k~RG-%6yNRFGHf6tF`V{Ko2X6cD%tEFl@axXTl=XZ_MI{EHyZpA%BL
zD3C;Z2TxdPotFwt(<7JTk+Lq-Cy_g5b>J*s%d*B%o-bia}7yR#J#Z*B3S$0|M(^+M?o&x6|uQ`AYD?U*80BP
z;;CFtecoQno@1t}VN+EMsedF@kl8NCnnaJ7-VGUoR_~d?XN}2NA6gpknq;D
zWx%F%VFxRvH~S_ry^LF)tX8T^@upKedUxxvT={r
z&R^`=i13jLU#b7lX>Rt%{2}{yT)g`L1tMA^hF{3+1A&k47u)V2?6F_RAHQT-fB6|l
zT^;2H?-eVgGzQ|b_R+Sc_$X%En-9KO_!Crw64U8+cJz7=1Bw3>k4rD3VuB3CtRITD
zz1fWS_s8M8yE`*uHYMDH6G_^QTuukH8b$Z+18C5a$YE#Q6;(L5K4kCUaC1~XLv9Wa
zF2R>DGcWl&A;A-~!IMM*Vcat`g01uk_384F3XVbkpuZbbLg6HvqQ0swM
zqGv_q!dyCMb6DK!ETMu&5rfI=9vJE^6ZyBL6^^q5zuNb^rA@^67M1h1RPD
zbI*&-*3dMjKEb*m9j`*~%tyvXOh%6*PNpE-OTn@8660xCOX@&xdbx
z=@RjO**>;hJXQDPxN&c^*CX0*-2!f3US4W)xzlG_NH8sX;dWHhqC9IBD1L6zT`Kvh
z$@X2m^X@ld(-F(ISO!9rEnVSY>VT0%gDeAuoedb*jU_)Ec(1o8h0Ll9UhSA}x3cv~
z2RuZ;W!l?mKUyCdIp>3&c|UwNA)6B5{RX5ITN-St5K40526Gv1rRTN=Ve;`k*nOQ&
zpU;Rdq*Z4YZE#~JBO^0^
z9jGM~_$+vRz8sjY?}Ozc&57*CSXu7{a{=Kc&r-+_@+jEd?TUWoua=H-Rc@IFgSoDb
zhHsAhyi$(3=(*(@=1&EgCafzqT(J@FOZRJ>k6Z1!3W#Z95m~H>1Tn$=ihe_vaI4`$
zqAJH9_r{uua`}imV>XL@&iSgJ!{HuV6GS5(9iXK`cmV473*G8(Q71#eJo@lLf}$|A
z>M+f;=9I3(3+677m%Pk!3S9bM5{)or1#@T;e!ftZu;ZM8Q^<0$H1K8l=^~?9g$u6o
z<)?dsyAeHjVekG!;4C|DJ5*ukUW
z>yNOE{v=5i!M#4%lzdx*+je&r`r4hD>XZ3q2vor
zk%M1JZ`sWwPBeZ}XPruU&GjLvVu@6`_T;{}xcDADGFe*1E#!=E^zs>f
zG^oKKdY&yG$=8^uGglj-k9TmZ`ayW#sOxd2>+CN#QCGR@)W$&E5puhgbof|}Tz^%&
zUMSd1&qyiX#T7XAlQ6qN?{c2_A`F@lqG4$zk_{X}N^?M#Wiw^n%t_S@cZVS-4uYvUN4&&bEoTZ2i{iTSUyw@;4061qQoVX!I_H%sqd
zjQrt!GF}vuzgr!y}wcQW(2Gzuez
zNWhA#!CZ8gE8oQ+><9ThWWJaj^}@f%+I*=DqCwle15XMlI-&FJioJ-;#@&t`*>r>g
zds=r*CY>;hmsVD2j2FM19`fv=MZYW_NthO@pB(U$I&@Lko~(OgG<&O?QT#g{R`)!c
zez{4%I>Ai-%`JJ3;d~_}f`Jsne93su1s4d_3ldy^Js`TSnygy70jz@L0k6CE)Ocx>
z#I?;uj|LUj4;jr%l@jH`=;G^KmD(6CUjOfO2q-wTnKR5^VxTdeZB{-2q*W1NX4S+Ml?u0K~OEFXS
zzJllcnVGtP%!AN$fe5ES92UqVCaTK*6IYzN-BYbK!@ZwK6>7gRO?r*fVw}#`zMoF$
z-RWLtGL?4o={C{@ihhcd&B`ni9oi4!d`)pI2Fz?mgH0`kEJch1-pSFG3(YCWjhjE{8yla+U2G
zwL;#X8bO;%^4ra{WNE7ke4C$-A!LS5RsQcw5uAKH{pQBKz8lCWNTZi2(yBJ-Zh5@1
z^z(%9rSvoN1w4iYN=XS&cgwydcy->(s3YdeDzKr+AKO@FKGB5x3h;WksAGq+6~z)!
z5OR5BM7G#6ISh}@1Wxx8g@Y5H1m9}cMIqoYGuHP)8{Kp_Y;UFTQ*3lQ<*gYTSWQtL
zq4y7~Ew`8mIub7JJj|3^;>Q*2g8#Mem#x0MTsE%4iNk8y!GO!3LIt2wP~vu;an
z%LrwyLP-R`uj}kY%c+d&nf>OVid!-&oy@{D4vq6rBge_+n7EsN&u2k@pacEU`$1s&
zVZXsLw%o`g_w)c&!T+m^CYn$np2xjbE4sDeGP~@1QesvpXKYRi+%JCkLQ>`4{^<+3
zbmAXqlbBvMUcaO1xCLU{=5$bwaGApgHRw8L);qpc?ekwsQ^Sz5->xXOYKHgKx@Dkr
z9LT~xE+6OP^E%!1n?r8PRi~kzo;=Cim>4-f+X1|k72n9!?Afb1-Kpds{eD_+Vb3tr
zgLTgCt}fYhNjh@W!6edczQ@`7jdks>5#%dXGDKT`<4HR(Zc>=>MnjXCuC&R3)zB?DZPW;dv5I+Pw7_)2np4l97~3=n#XBA`R4R847@K*?6S6jA{}+~|HT3#2dkN`
zIThyn>`s%O-a_D0#ph`)2ObTY+U?&m;h`U0XD0fp4I@Uz*bpuJQy0{=`x?B&?tPI^
zT8}Y*){;X-t`T0lQ?}ndw|)N`gg3;@Q?yyooSK@`?IPDcTNkL+
zJkb82IN)BBI+HhOcgmKzb{?@#)BIA|^oyspiG&%g>?!OZ@o`%yxn5()?C6FDfn<#h
znzs+w8onv;l_F<-X`ngaHPrPApu{fvzrGXsvVKxa+^5BnPif-jdg$Oi?=OE36c%)j
zrlSROWw~k>#~X+te!y7jFNffDp67!w+y5
zWchc?wwTo^(|@+}BnOX%{wIv#g`~7d#q$p(PE3fB-p|LdO*5!Dt)
z36TWmfZh7E4+e41&!2~LG}3#e;No!w=MX^N;j}9It%*WDA#>W=BY9dh>KO%cS@M4(
z4-VG``o4YpE$C--HGI$=3p8mwI1W66djZNPuYJ+WD*ELf0wJgyCo7A~EvI5$S-OF7
z>8GCO8%K~izA}`A@FSO|44KfvP*RmplPM8QJUo|Ex#5`l4>F)ROzmx6CEbpV;FC=C
zwE{8+lGL=STrw?Z+-8Pyv$+Zr6KCf55qcBY4?rY5WI9q=Q6VCr_Yg!I9MD_2fw!%{
z@$2#N`Eel(gP`1O9f0th+S=LzgoC9{
zN^F|F_E47%p_n^&@7^SqCI{BP`2Da2-)g2P`~%6mRKS~|8|~;Fc@4}@gKx+i@D2n%
zM2LPxK>>cdyVy3>G2+x8_oPUejJLP9`MptItx|T!yxtklRf`MB%gfx0?(cqgZf%y6
ztD&yJn3RnsZvcvjUgtu-WO#-k-bf(ETZ1`c_F?8tWVT+KCUh
zkf;n8bpKV5kW0>o31*Y2y#5o;s4JwGOZG_M$Z+!M37t41s4W$Jd9upWs;sOm(&ERX
z23t4`0H3q+8g}Q7=WqZGOK_^m-MxDFNU)Yd9wA9ULIb=Ds~7>#Awbt>jAstU#N!#TIwU-VT1vlkEPMSn~m0c(1U@0kq(P&0LaGSkxZ#)^xEv9MZGo&wq@WBj7n~#WD^`YSsdjHe2
z^D6xg`C8{Auttn$Ab);sImrf@V3~51fO;#WnMKQx3hTtEmYVXoT`FG=xAz+lZ;m~G
z&h_E_dugHvz-2JI{cftj#YMLP>l(0In)UXN{TofnO-Jh9O_ZI&BT)K^LeONA4qIr<
zC+q=}sIgts`JST^3;vZFLGkV?1$C{$IS>H02#GqsMIvM?aBn@{0%L#h&6aVvsbn0N
z&GMlXsgPo}rUtwD9tNumY{**ajR(ap{k1KFhI0px+(MVlS}3^)4ddqeJQL()JmPXW
zeLw#N5ud|0=OBLF{^6h}34RkZI^~t?XQ}6?p_0L2D7vU^b90esjQ3f4O(DV^j)h;*BS@7b5Em7HfaVb!L{j
zBmasg+PDlLuVndH&_7aHRh4?>UK}1KgDO=IS|~^z1&L8tdC(a>hDjxrm@LMNSimWb
zwDLqWz8us6l!<2GlT^=lb0td~Hka?|`YT6}EvQJSb%qHCC)>~1WF+svb!XaVaq013
z6_d4)Uw!M|(6#FY21G7w7c2Ztu^oCV!JG#)lF`}ut^Rk>Kl0lbWx=hFzZN#_IW*MriQbOag`9#5-_MCRuO>~v(O5PbV
zmKb8H#pWoZd-ASK(pwMm&hM5}b)=F%F0X4ZdbPNORRslv$fC+#T24#>=ce6VglynDPoMv4@4XV~WbjoU-po99<68Hw&^vkRWK
zLfRr5F0kcdtW?}kfUW-O`l9X%VUnpTSF79t%r^V?9!e_ZC~FqHZzx*o`0<|6b-V;1
z5TE>S#t4sAgC9+T@l9_Tq%I^TtNpnfz|56W_@{0wWP;A3p@G+Cxo4u(@UPAtg7N54
z%H0jS1+Lp;Uo-qZ)tqq;UP8fVQm&L#(w+jRCX>r(Uu!S{v2*kr2ZD|h<=%Ks2R}=h
z_svah*|@JQ8}6OvQe8Ix=xsRw8NC&Jm;#hkzw
z9jZD$4>ZosnHl%>Lu?ww+>Usf6ChQjt_=P394&;`Ug4#y)G$FDSgx%uZr4gT`qRLM*Msxwuj94Ibzj
zq#p0fT(+b@6KJe+wzuwpy&JtF0HFef^Sp|u1d
zeI_vU4Vmu6UlBU4FsS95+9=+|9!m2N)|lMIp*{**&_>eC
zIWK+vhFm|M%xeV`yph@A)LVTScW&jOQm&m67KTpoYslfeBva5IBbL$Tdj`YhQDoxN
zKX3%@Vl4XHgQD%{-|7>RLM<tJnlKHT*6W0Y^xsCLFcZpQP&U72!u$G9JwL1-LD^(N`VOVHz}Go(w#26em_RhWzXbv0ALnj-L-!>rQ(PPifq
z<=a9GtE7xntY?3QAtn5kfNQGAPgv-M$KytO&8MNEQJ<}b<+T7s*q_>6y$3ZDnXzIq
z<&j7H=PJ$cR9t2wDhm_gO8b$XU~mT=Tb8osjDq7$2wMm3uo?IgXouxri#*^=W|JDNYVD~)gbnMzSRQkg7ISPq0i!+-`u>``sk-Y^cq%Rb0P@-
zL|*CjpU!@5Hu`DzmR&E^uIT*Sk#-|R5FwB5cu91zL9-O5-m>w{rKg9lyA)^KaBR3*m#=$Er1GPgX3$eXe=gA!{@#(&4MIq
zNB)#2e02~g;-{F;hSt?}e<&U0*-5_ug*6|v?I1G^=;lS{>KQ_!WY$Zath8yJS$IfX
z;4Ok_RkqnzNGf(_g!U{u^@tg5MIcKG6J|ulJUO<+*QV2W?)E$V=;-fng(zHdz7MRH
zrcNhVu6#euwOQBi9uyM0SFGQeR;lha*q9ek911)2elMYFhq58ebM5Xn-1Tis-P2D>
zWiZ_cz8?clAs-XLGi!g-h*alSU8Z|0pnV`8DjmD+fpq=jWr&7`42YCAZn~teoeFhM
zOG*nPc6_LQ(sR~*+{iq4Igy+UBl^B?b;rTs=(D|XPXT|cqz;by7YN_{FlRX~Z%2sI
zQKa)3-dCdVj%c|Hd}*q)t+DcYH_r#pg-Am^t2kbQirof>MqJ#99L}IeZ)Bp$k^Q#x
z5WmCrA3*`ObLDc2TxD}nOC)1|3?c11Sc1=fkdTrhKcmgqxZ;W`l87#%qVmbU28dlI
z;0b>99G{O=)3*vd5SFPhJz?^8q4XZb0?zci>?8Kps)~w5g_G0(5?XFZ7GU|CN^rEU
z5K=JjcD~YEGMJN+>hlLxtc&Eg2YCBQGg&OpLl;b*gb_c$bl;XSR1F_lLiEE@(kBz3
z&DS(FW~;K5DYc-&@q37XNv~O?KXI&{wV#+(kN~S13wur@J5(@~KGwLrSW7FgFdr{z
zCVshZsNgRQu}vcMXD#AZvq?`8y$m+>&8*|1xKN<|a^hurMm3PtY4Y%E7Z1jji~zqA
z)?KPH9Uicb-R2SKiPVzw{G;t;_u`=Mhi9lqr3O2tdd-L1tyuOYJ|6-Mj0mKYdY@uZ
zVq^3Ww@oCUjhuMqpAN5FeZ2I|9UkY(xbbddCx*dQaEQ`n^Py$_@Y
z7U(m62nL5WZ`e@0XxBHgIbQita2FI7@?M3c)Et=keeIN6+qz_{+!ING@0uUT?+2C
zii(qbSb;jjAFN&p-
z=JS*PMWbLJr>d>;vm-(#q1xq)N#_TsVFp3iV34aSk`3s~V1~-UWo2;%iNTGn$7@NX
z9lS2ylnafg7+=14Z=TzlVuIJZfiCPjieYmTJBvLtQ$cK58E=Cm>8r2a-hK$||IsV-
zqw};TxGwF99bgmB{dBg939f6yXzv{?FRl4kTw#)8#rr3Cxk_|>_tt%;FA7F?1w21B
zrcb!t!xNwqiRZRkUyq>4U~fsZa?2y?X-KXiiXKjAqP>p&`9?FV2X(14Vgyg6M!<@h
z2%;qfE;HRNlzI?*hsx_=;h?bCJ<|P83AXrFG3^;HD7>1XgOqA<)Jv9yXQu%Henpp-
zq@n$|f0?C0HK)40!2=!br#occbkIC(`!2Np&6|!8h|g(iPbQgui`guA`$+NO%?I+|
zY5Lu1JJT|C(iBn7^D;su8`NBn_4|He=Dz(aKe-tCf5=b71yb*N;{74vb8Y7xdy_d`
zNm2F4PcAN0O+1|QC$IXKs&z0;Ojp`meuQwZS%^>Pqi5?vX{FpZ=ZsLz#YbA95We8TGNP4v(YvmIQjU`JNGSx!s
zA!r)PEGMY%tW_Q?n{L(6hafZgh!D~=9}e=A)2!ShBvhbtBjL1SB|#-4Ub697mHj<6
zbu}{MCiOv4$Wml|FiUBe?WZ-qrWP?hsDbrf7(Z`0EmSCh;Ry0`2Mk;H$n2|^$pHl%;Vu|3%*3`#e
zzj*1?N<)1_a6yDp^1<5rw=q^Ep1iB5C~@&Q{j>0|%oj|2o^`3*^^~L2BuF$DCtDMh
zy29DRxpo@KeN0C;tM&MN7B(JUK837f~@o@JC_emD{fPaau4$sL&
zWplhFDocW^ED?^vORI`GtDuUXPwwuM-kV)np>%F*3uW;yvy+?Bv)&nK?1*W)(iL^&
zpKba-WSw*&xM?q1#yStGt0qO3Pltx0jOF+6iq@+8fTe>?XrMo-tck_(TIp?}w
z{+k(wy6?Szd#~?WpY;~aCKCaVzuBVh3&4E_oio@aTI@}M1LVghFJaJ`_inQ?Tbv@B
znyHUC%jEHFQ#ysrdRbxV5A8})(SKG54okt25-Vf-reAl^dt`4)F=hThBc*LC@;Lsb
z6}%P_;D35D9!y`V5A6n1b>vl*az#TRnYx~DO;3+S-%LsXp(KAe=@!IDu8&*3vs+iX
z9X3uF4@gLow@*pu9~mAlKe{*G)pD?1s-!6d`m2^|THS`k1G{c-lCg9m_Wbet@jAcJ
zjVPxzntrgkeNO)X1@$t_tmz+4PEK@%cQ*SovaTE9`$cemGp73M1uB)OWzf$Uc5Rh%
zFDRYZ9|W(};p$|PH|~cG5Sqm>8S)zUKLPW+TY{$|5k0I{v3hCDMP5{`1ksdP2<#Nd
z4hPY6I+Vi~QJr!-4xo4WWZ7w6XuP}3peb_bOFJq4={M!6MbYri6oJS;P
zaF5pZ2z+w;Rd7)sOB
zfX(0j%}W>Crl}tgr~E76oi2sRM8WgrNpl1coK*T{}kg11l>(#mH@Yw7u
zQYRM~5@c2Uf%|^Nn~2Ztn`kP(r}^NPESI>UV2b?*c8!M=IXtZeP{1m=#}eML-cgX;
z18?i7SLZYg4n5|^QW|hkUd$7G8+KvI)DJS+TYifmmeSUI#WXU-rfsYIM1=zItSJpo`9&s%?}f~
zUv&n?8}xyxn3;@BArNc_TdJs)Pc}nPcd-*UKtUHl~Ov5PNH(c%y(eWrGYSo1}Q!|yL|RJ_#boi
z`wE%X9r3;UdMQ{dveml`8l;J13e*ng=ent1Umh;N?Atuf*MQm%$HNKN{GN02l(^a9
zp+$Vwu8dGj#t)1gC0^KN^D^j|o4e)Ot>iIxeJHA?gqKs|31zQ#c{EV9k=1%eN7X0#
zu53+;Z)rP$fE7x(nlJOT(Ax_W96JPGC^S<+WLwaiF`D-h^*&-Rf?nG~)U$=d?s<;rPqd;`*_*U2sMvKh(2g7+r?i_2OhF69085f~4PbZ0J9G*G5Co;J>|C=b
zTnVcIQYGT$KIaD?nRGi~jomZ+xg8S|S7~^Ae
zI+eU12F6KYVPVmJ)u1-z>Jdyq%CZ`R*h(FNr<>TSQ0XR)A~8RVVl^5|xDb|n|t>*a3&W)BOs)@|;9j#6~SHs?oepP8;oXn!)MFHJ`mXJ-Q8l|H&a@)@Wg^6CSV
zr!u4HDeDLA8oOMxEWw!$%4)OUK*CU=mS9K{KE
zz+PY1bCDS#{0Xo>>+-n=S$t~3~FgA5eUHp+gFNaL}%vM(_Gk~kGl56k@m$GxZebJhxnq^A_<
z!+ep22#>r(26f7cDI<|M!{kKg1U=a9C|QqSh#~v9BxqtN*J7%s3*V
zi0XDJa{Ue=)FXH7g#sP9^hKv0&6Jx6f!RQ#eZ%q{O1wrPthh(zI5zpSf
zDiDbs6OA$i6OAjB7_u)|oh4^$7ZtnlrAq<$ZYeTbS9h
z>x63t=X7*o!SLaRWpMly4}@s!YUoDRJb64mlQ54-G9{==
zw7nRS_=GrzxT+T;dqvj3?k<7Dr;Kz9gJB-zxW2sy6n1=m4>QnWh#LL&6ye6Dw>7&Z
zTu?xyx?_2o`h}XB+80STqN?!l@bBNhr=x|I35*-HISr>E67cSR#FsSsMpl>s6VKl=
zAtEoP%~F%cP|N(eycJeq)im~fnn-W*q3KZwk1Vd|ykpo!I|_p5#Ug{oU4At5Lh2_f_2!PaOr>iG*5l2;+o51KqWSsx!AUYKBrL9#x^zEbL&(?9*>Z*7d?QE4sU>bI-IxAV7M^YmQ=H=7bBxl)zM+<-tJ;^&(3<0>lp6>y$
z%Amg1xaZ4+H26$J|L)|
z8yq9FR&~A2&5MFUk)G{W`aC#qDUQZ`@!~~`n?vuf=3BTkENWzLU(WP&U?K*P^wyS^
z)?qg=g$Av)QCrw}cniQ+tzN3epws9OqX;@$LG+SNKyO7NJZ6naAkqzRm)oA8zw^y2s7UEiC|CE-#`6
z=GT`eCm-&D9$c?S2+$LwbvipcbIBdIN32FU)06B)M81hglAQj&KTk~y3PNQ9D~Ek6
z(dz}tT80SaK+pVq_cR8ST%pqEv|me0o_%Bbcj8`cO6cC
zWHL{Lq_Z(|P>QiEg0*End&@Y|2e6i_tRQ7QftBmH6r&C3eidY(ID$0y{r{L!4p>Zv
zf{ey-!H7-vJNy1b&G$35;GqIDif6PM2dY+-js?oiz$?WJLlEF2Rx21LIgib4|}f!rwHW!
z*K8uzpH2qz#GvyNyAu?~W7vCL>?nd%5W!qq8_-|bEv92)I*76%@OLDAz|EH>(qwRwtB{ZoObB^rB}MNA_-k!U6~-FO
zO?Mm5hb3dX+?=!n5d(O%G`4wF!kuhGbiy>3p$hjZKhhLNKGiAz}0Pn)w#~Ul4?*L?<
zTALtLT$N&ar~C+j2J&%vt%=CX%b%7!JiLOdvtDr8oe-rrTVCYG27XVTQu#l
zAYOFhCNP8mvL*0o`C2&)#uX~(kAN6VuUe4xX)FkDJv(clVwMpJc2HxPXkvC
zxI7y#412>vGZbIYR2iL;Rz`w-^qtKg;!;jhgKk7ZFuqw8hG){K_%$$~bb#v*U(&{!
zKbp$ps&tSIfHojE{XsVnx{B^<oi~{R<=czN4;%w
zg4Ex_HlYSP?fenkSO&S}TFYs3aH9lUdpDcLIS?uI-GQ7K+KJ=(?A;`#8?cxIGrI@#
z?GXYlJYx2!X#hB`*MHw);_UUjZ51t!yOOa7fZ9T7o5I@n)ZohfR>KOiIqBp)^Yq
z5GWo5M3Ur&hK5&9{j9yyciS1_4UKtaDh(`U`)}mr@C6um5gbFn%`Zj;={642P(cZY
z&F0sYl@?f$=f?-!U>5!1hyF}S@|u>nH{`hOxW?qtJZ^lpY^B2XJi%mGtIr+|0Re2)
zyV<>wY#F_vg!^cMB9zx@uNmAHuLyW_8$3Slr(|l3)m>jxlOy1>x!ew@CNYHYgF0N)
z6@Isio#F4ZNhZ?+7~+Tow90vwz$O5e_tSlOTR?HfhMdh(_1)&SBG4M16J{~SgNm(!
zZx2Sty?2U?JOO`-DO>E-D;NfiYHY~6t>CY+z4c%CF`dl=f6uku$5g)aDGi
z4c$&M71`+R9R|rBzO{TJW+E95$9V^o0YY9U_|JIg=;Y;{dWOBt9=BQMHG9%xl
z{Lb*g^?9pVZRQgU&~RkiFtPwu0{k-_@;2na!>?i?*6qVu;VqzY4q?6M2U_DMyn8gkmaegh-0mI0<%gUFpJI10_-0N^Ae~m+|zhFC(m1@8t15||Icn>
zy9HvbZ#^~-H>dNhSAb!mTkpk2AaDy+aKCwf_iXZcluM+
zUI%4^Y!tmFLj|se>PEp#>B7NcOTO0iQQv!m^LS?p+^**4W&PPdLnp^2AK%d0I2i7-
zn#x!!lpg_B`YF{<(yNG6jLoX{Jyp6$eD1I)Y!qH4!@f)(ppo94tU_fu%hb9~ia|@9
zIqfdC;lgAJ{as69&u5i?*Af6d0y}T$*^9k5qNP*=s)18j0@|}sP*7>9sercV7qSXi
zrCS5>aO-gB)D;%ny%TRc@X*B-C?YLvj`=;oiF|E{C|7vA*>9k4#p`hsJk1gC*p+m1
z>#X?<4GdP?+`jz&iR14F?m()lSa6?!h8a};Kc)>1m~nMMVA+_=k!=E#Y8e5L(6C$o
zP-_XXF8QEn2aZeBmOAH`7=|xjzEqeJ4hFlCD!UE1)dJH%o@4y7i<<#dWhJ$cWD!ga
zFX>pL>v_NprfM?|i^&JO8mn2tLK3koo5+a?@K{oKj1-8UW#B(}rMRBXWZeo*Uc}=w
zWjgD(fbr;jT>WHooW67esQpd=^vJA`=a9_B$=k29>bN^!1Jth|L-8U>wz~$SiURd@US@t6r)ZObPc*#v3T8D~!60@HM+JjoG17
z^ItY6zP-b6#}OoejksY|@{Eisa9gR+hbr1;HXV1#b(?aZd-qM46&PTGv#OGRSASNn
zt=4<&II1O2n_*UZdJP|a9?pWz|!z<**n
zr~w7ZnYpJ!zgee?R97mz`0~V?6o7yhX8C*X?iKtUSBu%R7_Sn
z#^FC2V^5Fwi!8=5WLePqor)&i(*&x`z=8Lxw)|t0+>
zzucBGYF!@Mow`zAFPqr^YzMSIbcGv{cD!Kgi!WC|v86W;Ww+)OBKv1XkR@lZ9C}tN
zAb?<3Inf~MV++gia%(7Sa?NG$05WKRd~&Z^1ZXtV;ndU7>d$vaBv?`I)>(0nLo;ggaz!;Nh)_
z^=38{L+*c0Ei(TA{{sf_o%Z-&fgBh04iTSSj&92xxFZQg*@Kk^%?&)#qW0oWmjo7K
zRW;MssP$NE_BxQ1!w7GbYOm!OR{(V`vFu8KTUFIUm>Q9uZnK9h)}r*MQD
zvcEKZ?RvH`&Q6zceGH~PKN{w1_NQF)TJ{XBfUlVU1OiWHPc|sk_q)i
znAOHtp}B{{AQar-k%1Xk{nS*>k+x1QlxTgw!a)ZBHTMvFzt_il!x>ab
zE%A|v>mza^A~Zfg9KrxoK)Nml)i)+Uo$!+yVD=90oF?!IuP@vM#Tqph-mT6bGsBWT
zGH_9w%?u@j7G!imxo?d|0mV%-v*IE7o+b39itM~mTR+kTTA%xq6egN&6_0UF&Z$&9qg6BH~#>PLq>f9sKbEOhe*=$K^{TyY(
zP`Cer9@J>22G>^Fs7ZnFgl3OZR3W
zJ{RDV6do$v_U-6Y8TG1fYJ%J?9G|vbp1Oj5>d$?eqwMK*n2xt=Pt`Z4Ul(7b)kKJ(
z!Tp>JvZHYHY{MRtnFdKJo|S2xCX>q~0f=^`U3?j0cITAVEP&fVTVGC5MB`{Ax1<&Q
zDvi>~o^quZsvKn`$3?Wq?*_ekgq&W!KVE$ic@wkuib=St7!Qe^gg5v_PV=TW(jl~S
z?!`xPI|$|f`SZU342QSE80_X_isSAYo}qHVs6|5QZ!8fBxxUhZq={-M^Im)!EH3Bg
zkf_&({}2)urO2VbIHi&@(bd&GrIO2U4cr4Gdf1lU9v=*_xsQOc=3fH?tAOX;6tDoT
z$v2o>(xM|5&lWHnOcgY{p5to1WHnfNzWb4q(dzxnTlgql3>`vTP*(en(|WRYsb^Sg
zkJIccGYAC4T|}vRp0|L@krO~Dd?^OWZpxeUxuiMrkHr@_Ec6=nZ*Y*3kyUrI0m{Sb
z4qm6!{M1-U;M{M;{E&c4__ZorSVw6L;Iq=HmnJ}JET>_~L{0I)sVR)LvVIT+DrL0#
z=Jq!DOW{wWVbY@-VdbwT0_tloJU5t!5o;=fo(;>tgfHpuFLoQ%|4R8O};H4$$NZdBi7;boz;h&&^Hu
zsEhFvrqO+m-#=Zc@$-an0ktprpR2Mf1QaH&3?5@xb2QQ1OcxWkJppC#I78(`p@D;i
zkBdQ9%TC}Kx3cV&5aK;=xXG1EusDSDZekxwzrG6JE|=Vx50SOL{ca0XsWO(rxgQ~o)jt-Ax0~b
z&cYKY68D&bLqFO>!zc_9P4LVf7$pNt1Gq|gfl8YFZq{SC&;K
zMWzXHRTiME2Bjs_&7kw{GQ~bj4}Y)_3A@GQyyfo7!w(pxNzULlRusc$oC{8CJ8_-f9=@$;{yfeNIn^BJe7_`uL}32D!IG`1YF1OO0*W26a^i7
zAEE(J0^DMU|K%B|@U`9E-bwOgW(L#}z=ZZ$31!kgLuo3&gHUHjGHX7V*#iqNqJ~@LT6Z@>^2+r=CD1v#P;X#MohH2Ph49(Ur$h!(y_T!Q
zuNl5`{_uZ+lWBPGB#{do*IBRrF>VDq9oaTnIct*&aE-5Q`+%onFpg&7
zM|P3-yUl|THXI(yq#RhGgf+U7f1dOWLCZpDvbT11n?S(%)?i>B!vptGd0WL7O(cX{
zjY&(MGSwyyMBTV4a3}Xm25og#_qA3)4_Ger8ps6}!@lA-OE3udU#no8db9lDUc>J&
z74qV#%*CIr+4S|1eEii5wP!f+2`Qvx=b8pP!k$B6Q@0H~inAb|w-*J?U?u!}+!D^H
zn*3`d3Ct;zy9y3!4FXx)se_vQx*sjM{hUR)(!*b7S}E%Z0ob-`eg3B5Q6#x6$G8H9}7~0i8Un^Rma(3gn$f(tDGw
z67Nt
zYsG*S8>((Ewa0S+j+@R0W4gM~Taj-A5C}-s@K&{R2UJt)%*tx+FpW{5HK_?D_m)4q
zU+mR5oEq3dO(a!%A1>EO>k_G~GU@)jh+OeT^M{vooRpr4FIJ-~Uzls_>DJpRil+nl
zJ<8?9*#`SWkRU73twCJ}Ol)qD=-@(=Pkr|^)*gBI&)h3uL$_GWdE3#U#*i{Nd9g2$
z3EB}Z_ow4~FLr(xE1Rl94FdUi>*2n}1u?VsE76
zH3H#8v;S54Fqjo6Fp6)XCqviVmul9OskiaZpuL*;4H@CFyQxS*r8v+Rc*wl96GKm|
zWU)I?ZxIV`7Y=AF;AKi@b>}c3bREd0suJq%5B0YCsFdSH)_pl7$9T0QtNpy0GLH>o~ZX0fXvZnCyU34
z`kmWgqrferQ3Orw=_1ynL=wUmOU$qL&YRE|`jkp25vcc^;8xY_sd2$TLPc*!HiDOR
z{=r|T;me`sZIVBD_~+N&*7l
z&U^E1&$D!@e{Z)D(4%r@TUN7q>`&U2=F_GYf52oi>N+seRGlmf<282MNl3+hn8Ej|O
zc(JQU8h5OOmTS)ab(}~OPBBk>%AD{xn$R*0L^yEEhlUX>@(|(Q{9+7k+ppXzBG}t2
zqEr7A{D!?!gzPSF682Cch%U;Xypw_-if)psX{}F`n-Ip1<#N*>ZJd{hiHeG;Muc38M<-+Y<|gc65q9+>%9$B2%&Zd67EfQc@U{
z9<4M5`ZCd$vWKR3PkS=vOPhY^qTnj{{0QqlmU)rbpT^(ogW+Vayw{5(t&;vr;WMgR
zV4-i9=_lhmBX#_SwPB9_E}2v0&KCv0PyO`1ziyDm8wRD;&Y=$z^*4Hfu17(L1CAkDGA5reC|gL0*&)^#r-97h$13)zgw*q
zfM={Ldm$_P#Od&dUl}DjSYCHM09A3|(*sZy*taqfVW1;;mx+Vp3QSxH9ZF*4pTYMZX$-I?}-}*Z4?|*mtTWCxZk?nU{K4ti~s}Q`OiZ=snLLFiKt$Xb`{IjmIbB5{MvS1MjL#y)
zv(FS-`T0HA+SxnFQh`q!$GUvA9E*mF8pMGw#wB88V58aDkC4v=Du{zx3z(2Mz6JWv
z^XA0_1<4@Fec|es1V8JAsHab&kC?dV2{%3|izHV=B`XH7Auuuew^C8jv&{{jiz;Nc
z@uTtbaOXP@ezDjl_FPCZ8)&_{U^aV)3BNa9ZH
zfTkYe^K_Z~-QB(1t~enqVH4Gsp;zY7-MVRqjVAkhHl079%o}y>)VQFoJOi+mM8Ox!
z>Ix2v30ucPe#TwgB;Qa`AgQS1sU&sAB@wp8wCc;S8SA;Y3MN1a1n^tsDTF&h2?t9|!+lmtVl)Q{?j-fJRA0r5b#{qkT9#0K0(PoT5n&GW|C0
zSg1<}H63xS`bbAhpozEgX|lJgOD36%7?BkI!ZVS7L0NQ0x@=(4;p
z_}qF$8hal9iW|5Rc%2We#DPE0e3spvTuU7x+e06Zm$mUPN`UuJX8$GuYz*i(A4LeoUOa}^x@T*MxyCDrM8$9
zB%aU~d^3Xd9~9_CXIEvO-vb|E4}~-n{a_+D29n7@TH;P7OlTtKG<&?uzr(>rY4r2#V1HXSS
z4uSfg==AbqCe3%evMJTnS@Cpwg`W9ek{Zg71K)Z-25@Je%sc-Y1H$m&V2j6Y2Y7pv
zl9A#Qq@BbfrZpups53t)(bLn9WboB^9ZC&xbCF|PDFY#_T(@c@ZGkh9K6M>Lq(jYS
zep*eNvr`zB>eTIa_)FKAt6sYv+ush<1R(5D-k|ZJ$)*$1aerPUa&o$&hRbT6tGfP&
zm9^?n3y>wfpuZDaKlL~kGoOOimwislHQmP4hx1*C%+93uPQ3KCA~C=Bk&2O#$a#X*
zdj3B#7k^rpOtwranJaH(5*eY^z9I1+ODEDq-b(lUtgVfi^1lyFER%V%Ov
zkIM^nm|w6}qzPtzqlJlyLE3JNl4)`?%B;^1(f1^Q4g&K1IGr8Qj%
zy?Em|wEpyv>)BhjNvra7(hg%x94D(vher4`Xzfjctl4OGv>V&Y=7%r26mfcPZOCfm
z(B!fEFt0i|5Lb%qO#{%9LfZl*k6%5E`Y3Of|^=e7uk%VE<`^vZF(PuWgPCJ9FDCLsQ?N27{7@lzGr%R3OSy
zIMMk&Sl)Y6R!Ow+=jGYGWDYBJrc`z>uhs(`=?3G9gJgXBDW5KzZdMD?#G_3qWzzM(
zd^tT1qq)C6vK%i;d#|-Y_kjHSpI*2v`bc`E5@a*vq?e?=Uo0`B;uLYC`>=(paP2
zA05Q%WT;Uki&)ff(2ZJ}m%H^~_bQkLPf>GEf28f;?npx1J`1j-G%2&K=zbAXGcpXsAX;kV9a-<+7X7oblWaP0}J|*AfvvI@)A38r8SwC+8
zYQe5JJL+f~nVGe=lQSb}^SgSa)pd15yiXaxs|8F!##_~ro_9znx$@Q6K{z2DcM0JZ
zinztI6>s;_H}fftX7<$L3JT2NLLoWvi{~!}v`(=Y1ip|Ewh1cIKPjc^XrBfAMBs#)BfmbaLHohn%
zi+qN|Pm2;=0}ajHO!fs*Bv#7(l8n?(HwV*1m4I4n>XP7^8b_n4UMq3JsPlk_SZFk5
zdEiGyf_=F86;ocGan_YDmr+w$$*47>;aK%)wSZq@GLhD~@{&F+`1zvU6BD#bEi8N7;^ufb#>Q6R
zK3UyT%Wd8;Fj$(FUzY0K&Tde?WpWL48EGQPudY72s}@ZMu`1~%Y@sQiBAGs)t79_2
z*?$Qprz_FN+;O#Iv!Jg4{QCP4v@X=*1SYZZBH5-0M#eJ!;}-kveyYL@osq=0Pi7K*
z@q<_jcOLgMXr;`X1L`pu=(8IK2fjQvd`-2hT0=HBfB0=1-%P?%G-z>_uTz1NAt7Oy
zl&@<{uU19Un{T&Jnt<$
zW@lkl-ekKiJi4(wJP^^Fko^Agt<>g5+;b0Z@CK8{&Dt$%kU9zj{$d*yfTr0}D#*z^
z##1XEbaW4b4mVKwa&oQi=7*qUJ(*`!s>v>{9B}p?B)5P`uQVvA4*)Tx-FWN0IW?;dYE9}P*`Mw&$%beHS3SQ=XSy(`ps
zdkwY?Oqv)QLu&^IkgsMs|9rvoPvK-vcbOm@694!Zd1RzFmozxN#r^bTXW;(MVQsaP
z=P%S^=>d96u1`;&K5KZRAKPsV=`>opYH2lH5i~Jsy+_(4M^|gSJP7Rvu@GPE^)>%0
zAZ>^!YU%8M$@@r(&vny#Yj2VnfKB$j)@*&_V&!{lHHOk;o^<5dVvN82yH5VcKyw{f
zF|QTp6Y#JgT5i+I(RkZXTMzlO3b!@#zQVfhPFj==UMNjBmC?6StKMUu(YUm{@WtTC;m#8gm#@
z_xXG#>+ES=hCkPS+Pp@sR3l8G0+P9Us{BiaVWfz%-yQ|jNL-#>%|M*kH`xV|@6T?l
zYz@5xeYm6(KxrtK0PwG;&2+J;_@5aAM(9eVvb?G3b{GyTb+siZ-)0~tR>(l0S1%ii
z?(Eg9Int;NYs%qd>kE4jthq)xQY%rxfC}OhgIu9qab;muuGX{_N2d7l)_uv7O)N7x
zY$Q!#Q2%iT`dFTDA6X}0d!->ho$RKe9+%*`n8cbQ8&%llG4Hs;;(Wyx)-|*=7$0ZiZ-nGsj71v0-}%}*|jML=(Gq&gIa@A~}e-B;}yYCxx~cVAEa-cx!W(+DYk
ziw61FVDO`Z>?XZj4}(^hXW-W%&q*C6A0a#MFca^(@*vEsAc%F
zYnmw3yf?b(i;6-XM$BGgGG0o-xP?Qf-PGM$YN|tn+!1Wvdt~fARdP-FQfb^XhGv+(
zq`g-Ra+o=Fa5O+=Xy2`@baI09lZ=m#&ynhUrk=0gkmX=|6}KxzWZXC*j>ADtORL0Y
zu#**)r1@C~f<)wzmZnT2{scJw5m%#mvba)iA23BlaxQ-}luG)1av2-TU@;yEAu>Pm
z{AQDofO$rcP9=|z01N-2IfS0sYT%new=~D+87U9{>X4u};>4wnp1{XnVr98zgl)tD
zJrO*F?e1*ty?>k6d;PfXje&y`JY1=^0!OvWpNi4!`N$^g=EsT$uIJsW0MI(7FH(Kx
zSiOPHsI9==p-7CS#@0=vmxUhxDOg#Zo1VX6i(f99`bi0SwM4fP8v-m=7(ZRi+Q+(S
zq${vKm0n0zL+3}LtxAL-Nl4(XhDWK;oZRXQ$C2SnGBaN$^3+)PPKG_LV`*u5BHq|MCwEjP!L{Egk5Yr>)vRJ=OP(1rDF6?{5Jt4MP_*KG
zo>Z`#Q&ZgY_~J{m@6svenuial7VWcA%-cvM&=O!H|Jm7yQ<23KNjW%-WmbD|-?Q{Q
zE7i&yGVFz*;p2b1A!$E3KF4P9h)b{I-Sg%GTusG+XjHhF2)PlG3|+@^Dw#+DVlV+2zWB+c_ByEbSt*DL&dQ(+f8xK?@xc{pn!I)cF9t!!s1n&7*zu51?
z>I?VW;Exc3ijK^w!qWkHKhXL7r1|SB)+wS=5?o9o)rZD2(mtdNyJpQx=_z;#NfA*(ECa8FH2Q|
zP8?>PXvy^d%6SBW-ar?7{?UN^M)bcq8%#o)*Opc#(BGtG!VFe(yEx@s+R7Lgw>FE>{L`-|FDsj@)i373qJwi4&wZ9uFJ-rKMJ@
zzOFeN=y-H|9uM$PUvMV#?d;y|)cFXu|M;Q5JDEGq-pYk
ztDwGbHr1$r+ntiWZ^enksXU8z2%_DWCD#IEA^i7tMW)*cp6=D6lLHIR#}rWdJwcwm
z4=mK)t=d}7gj470oX77E<||zf_b}`>`(pm!{^v!fd6z|gd$Sw5CJLL$rCH~ML6ZzV
z*vs@-t&c1x5L(gP-{5mu0W9tbS(;
zjw6rVQ_5JaJEu}yQ8BU7rFuFmT=nWv^q~y6m2@6=Zc56nv2oVt?w`T9pve!I7#N4=
z?E+deL;H0Hm9@2AR~?-UhCKZ?bN1{-al-D10i(M0SM9UM=EZ&xO<)XNmiSAHlbFHL|O_e@8}!$a|cb%N+x=AFM(E`?T!z>LgX{Bd-tLpAZ=^~=uDN~H$`?J5w*Glxu@P9iU
z3j|Dfxrm6YzAS3mCFJ*tz8n!Q1Uen~HeQd1)Wo{c6Tu}56$U(fe1k7#niRlwG?e1Sld*jwot!@)FV?lr2B!qg%)TCzeOrHY=u
zj#uZzSs(0S`N1zFi#rQi#xK8LUmQ%Ft;K)GnaG`K#68C>w|A7BuCzk)R~6MR)+{Kc
zwJcR@u3~AoEh3+CP+_4TnhWVeu7>K!c
zcJPRA!>eBQlQ-zT4#}f~X7F^Y7PZiHae?lMb7TssEtOqB%KRZE6U8i?LW!WV`fZ0C
zfmiscVa`B=7wm7E)=-`52?+_JaNEM!1MB&OrQfHg8*v%Fd*v_o_*V1TKS=@907`&Q
zZm$1Be0YtjkqWx+AMiKFq)XM?AH|r7dfv_Yh;2j0ZbVMLo^-CqZ$Ac(4#YE-jmjt#
zAijYYVwI~Bt9j`sBqa2JvT!i(OwWU>7-$|4l(yV@-fDX<==0F99@meS>bku6`9v+mZB;4MmZYOAJ_+ixYC_bh_u#83wr{MqT`)g5w3JV82>XP>`%~>Q
z#DrAlmWfLITeOqr>`C}G@595?@4@zV5`uX)u}}md(~W
z?PuM;=1;E5gp6gbT24GF@^^uugN1x^(LiT9q9^*I{zI$w?<$iCdZ9#mwRddvmX8UZ
zqq@xl=?qnAX$&D_^64!iyPT$1^qQtFH#ZIYbw|J6-l~Rb<27&n=g(
zwXSH&MAneK!FdD(TrO`uaI#ZaL&TF=gkXn#Y3^v%8zT6$XsgIjspNk5_F516rc7Hb
z@VFhS){hC3*r(bkzpQ%q|BzDXyiB(6C`2?fkYSry-!|
z0THySi|iC^WYf7b%SUi;`_
zCq2;-4Ph0inNhRgZ~x}}AtKcC#=yI#2MX{+d+!)!)Ivh0VGa}n5?;%Zsi5?breDOJ
z&j49+@OtQ^(8Q8ou(vB454QSnv1oewg^+=v9J}^Vcpf$*MXnPz07_&mQv%N~WEHDR
z?_ynK|WvT(7n^;*G5z*Jv%b4b6dp
zq0lh!yi|A*hCLxD-c$w^Ah&B#cp`gc!>#7q=p-`B7zzJK3U)d#xQ1Z~jo
z;43Su9m;C|_U1u#OVvpT)eD{sQjK^ONB0%+a}Zu$&RT)?Y}7!6h}i}QfeXd+p&b)t
zUFefAQyby)U(V3;No%iz)SEeZ@plaqQ2%RVUHf0bHmT3QqTv7On>H#TIm*jp=~C5}
znnPax4G{gw^WByRAd!Y18mGj!l!sF-oUdpzasED;m`y5O4?|Eu`7dWUq|o#G1k`QI
zYAfH#Vr+xa(SKrk*|8f}eyO5T%kxe9(NZm8k#3>xuC8Af!Ri$RUELx?xL$$+7cIHN
z!+i9BtUDa=`jt06uRHBO&qE}>V;c~eRR%NprOC+xJDV~HQcV?ds>IMz`^0(b>rNkB
zO${qBc~QJ{M_0TcH0w#?G7Kp|JAazI5ofD8;>AHh(Y3J9toL$hZgPit}1JTe?mStyd#fZza^
zJ*noPrnb_2AuY5`+RMwU_Kahd=m!FE0XX+!lZ`@o>IY|m
z6uoygI=Z^;ZSBjD!oppu3B)F4^iew5e>ic8?;lQzt23iAJ;USvuShk`qc5#RKcgZJ)Yms;#{N>Ma{c@TTLKaLGOQT=kCkJES#=ZAuFc=S6E
zHg-!S|0Hzd+#n$Pz>Jd$Wp*6k-#ItONv@2x^XBba4v^=R)uPaF>#U;VSstr2eiDW-
z0QpXD3RC|q?DQ%Ghb4CttL5_3W^rv$<(Iw93naRHMN(FW#Z4YIi$zBpF!Z8Cw5BK_
zBU88LfYa%si^o;1N@j_b21{8vUi!gNr36Q%bnzGXS@V0zU9*K6e7@E(s#vPoJWcz*
zr~ETgU&(cFU?8W}`gsJ(7N2xpR1pnF`7jT64&Dj0ghI#cs3s#5TV*jqJ@5vXuXg7&-xV!ZJ+wo%@bYl>_LiF-rQ^E5FV)$X
zeqOnU+nX|*EK0}lSesfzGi6KVv}JIq8HnkN!y9Q-^P*60{Dfvrr!pzF(Qtv;eDy~b
zXGcSFn3t9FO^N{p@D^~K+Q8lS0}b)q0IKEwbrufY<*}n({`SdrSR+h_m!4r
z*9(KYhEAwXmtL}$+
z!6=pZ7CX0}>a&TgMfN+pU`{$4@SJ6oH-ZA@=4Q9&MvaC~C-zBKp*T}}n<uclEm&7BeUy5yR
z(CM^jRGSYkk{rKuJrx+9s>Bzz(Q&D%xq@-s8CSm};uR`C*;_6)@wuN;7a49{(y&?1
zGr3)6$aMxy6et>>g*FL(3SO!(;0NOiQhBbN9#0jDw#f-t-}8k*JxQ~@@UOPn>Ipr;
z01KZR6_weR2m&NuH;?U^*|M_ZRpHa1%fjDjUzvC8j21^GC-u7z+d)QfXD;*O{XK$+T?WXU`Eh<&NX7jh8sj^V>#59$+45DBsI>)(;LX4;KSdnu;sMxP)*%}|&
z3A2iSDQcvQG3UDU>%vB9I9+?uL>OixNl+^pF8o8?a0zNjTN@dXt{8zX_@C>rrn=3Ef
zn|Z^u{3gKQCbFJ{S|>DKCAtJ3*4W%(Emo6B^Qn7%C>vJu#gMY~Fj>L*Y7?*HG-1D^
zQEH|vkFX+@Xe=CBttQXSP&Uium91-(m&m-+mP?*0gDJet-(p~(Xm(kSs=m%*L2!Uj
zFjoF*)V@Hj+$@On;)ut|tPnmBIhxR|!GrW(vFP3rBcAmH!H2?f(b;N$qEq{ILxa8q
zJ|YIQ`Q<5b_prNCp-r|8Nq-#0O0pOluD!+bd1=em?d?rt13SY0xO0E#Yfu*GkLQKc
zSv6%lG95ZdnRXGP_P3%B{#q(j?xph!WZ_T`>Ke%%7z5@Ta|b}xtRr=XN#}R(i7vNd
zx|wy>2M07ty^#tJb
z9IAZ&HDxwdQo6?a+Bv&bs<`WUI?3DHd3hscBmRhdbacaabSdp^0-ypIZ5Z?xt|~!q
zaNidS(qpqPqFBcBm*WxNx1+O_xj`kWROEYT}+d`@}X`m6i0hQ19MJSk*-AmOvGm7i}Nvf;y<0AxQXtHL74bxjh$8?77f%~&2y}wSZS#C9!
zC|VH^3Oy)&UePrLN>aJ8-WUg(Ji@V
z7GjrHy+ffxNFVumYNHd{IQq4v;oFn+6vz+(!P_ftmzBQcH&m*u=6}|=WxASvfK-}!
zAC)Sjp=GZ%Gq;tH&{(dK``anCTSL_svU??C`2-V`cP1bLq7i-A9+(>Kr=$r*QkFsk^@
z&Sc){!dJsD^d|!wTQ`ER(1*&}N@1?yImt$lL;rwQWh*7Sr5ri71|F@n?(1yV@?&Cv
zInu#r>u6e)>%MBP_>Xe-kFkZyE3SW|*oce_pVM?y)eNJTR8&z;((rwK2^wH7hwSmi|q8+6i5(IT{Rpyb5EvHWfjkp)5>HB4^$6wMXX(wtiECBY|VK
zzr!v}l=xitQM;-v7g3S4Grv{W94=g)ZHv|(u?pHkc;Q$5-gf3v8Et!GB42E^zh1Af
zS9AW<927qpj^yEBygb%D?FfS3dRzVFa(9YXNe_O&V5*nO`HZny7JgHsRi{tA{^jyC
zS{C6km9Jnw{FteV?m2}Z^u<5!(*r}gTap1u5ZY8VBXA;*B?cS6(+ET$Avtg=s;ah^
z@`a6*oj!jiZ=-QuCGt6y#NgR)3bUMJF4>$@RXW}1J=q$5EhyN&zi-B8ZsvZE(vHcL
zm2y8V9of*hYu$p-I&iSRzrL+%*GZZsdT`qx2KrgVWuzH&5PvfUeJGed*Gog3$dk~_
z?L4FC9&bSbL4h_f(+&6F;C6b5CEGYh8|}bXp(hZ#W<)&0?-^@H`AUO;wx5y=+e!Po#34^1^BPLM4_F(R5jc!dU
zwQ-_Rr2CtFLC`W0jKCTKsl{?ZK-a+Fy7cywn-a6&!IB3AlB}0$OkXd9yElTOC{r5}
z;(VH{Fya@nf7b%~)lVK7KpW0iJ#WF?NLP0d>TerFj`116OPjwBcN?Ph(Vv$O8s?pq
zRaIDMXqQz{L+wjbDp)F83Nd^1*o5qQ6+JsMq3B(T_e>OuKVG`KKN^qi&JVsy^mlc8
z(9lR(Tb|s)N8J8uiM|!W(8d2-SJxbuOyJpUB0zmkBDGHz*40tN#y*h`dzA&f_IC?1
zAa*dnb=-(DE|t75w9rO;$jcXr7w#rt6C;I^7*C*KInE
znEZu9RJ5a$L*YJRYDy6puur#5Q+g|2;S@K0^jo;Uj7S{5hE@a$bV&z
zNRbRZ<<-@dlH1vA&+ZTOhk{Bu|K_hm|CdbKe=C6(V{{;-0auFGW#u-hR`cd;lUlaw
zyHJC(^PPIL1NQ6Bg$o>&BV`)nZO<;fHSR)H
zRpWCVM6>B
z)(t}5SY>7zm;e)o80sZO9kVamj)y#+GLg6|NIFDp&La$N$*m}@QK<0
zOuM+Eg=VdD*u6sJzU1*40w_|A;CTNKu+jcA8ilTWi!DvpYX!r^@Ab7Yt0SQ02F6$)
zu~=o}CP)dGd0xAHpn>4XcTMWB!H^oWSF^{#5NW!f#erAKolUnjl>+%$t#=)xiWqqZ
zc#@XjgisHrtrGty8u%#ds4cNn@sD2-PtWE;8i$fw3bqoaWMJdWx$Q5(6z0g?Um`;1
zG}k!%LyLD|Oj*+N6~>EZDohj-zGF2WAHVA9*~#0zd;98@SJsD(y{)UObKxU5-p>JP
z_N10guAqaJ-+Xb=9Ug52ay}5ox_CvUf5$__Sg6uIP@U|f>S7l&tuwy!3{krh6{Qiq
zBy|s6)=|W8zdHouM*dlgYs0AuaU~1DuMi-tr$Z}U~gYS!5ibCNntH|tVO
zS;RzodV8l77l-_(r4a_amhBF$-!dNeLwil$O&U|w3G1(#O0`~mYGBXpizh6`0R3l7
z4AgZn{p4gfq|%mhTH0Jha|vH)ba2bN1?Ue|SChD3SYHqkYqdE0RXEj9V-^<|Gl0R?
zZ3+-A!YL|xdh)RYm?+5swET5he!}dWGqba^VxlyhoLH%!(7%A{h_^S;du`Xz(J3%vB`{Hb
znM%oj(y3t1*Z7c$QN>nn;m@$He*+28+12&+8{gB%_4j66jKMSa=R0!Zz0iA`d+6I+
z_#epF#RPiBR_Cvc{RtE+kNv{ir>5SIV@Dv24xyl-c~hGk8xvx7E-biOwa{YBIBrjP
zw&%iZ3?IZYq-1d_>wrOPp9&0yq6vqz@t)#^VIbc4q0%I?xsP~dY=KbnGM=4@^+|UF
z)?^{#s=?9ZaDDqaH9)YvEG|N+Qm^m(he$j8>&T@WxIJI$2-*XW(-#h&ler4Q7tZ$y
zri-q@=k7;)yQ`>3m=|Mfa0O0sjhv=AqQFI2zt2LG5-QbnS!EZN@KEq%?u1aVkh1|&V{^7_st#=Q8>Kqj&hb+Ujnss7-f&=x0
zZV8n3RBegjU5PR*XSbkiWL#z0t;wL!e=6)bF4bQ_O|RwU<$D{9Tl4+PvG
z;suPH94s_+du~ij1lP%ZHg>m^CgOakWV>P55RL6dPlZ9d6zEqp^UMeI8VqSfkU54r
z&|phEIAR9&%p^r}7Wc}2c_?xohaU1_6AM6iFZB7ESanr_Tgrq|Ee<<0B$c=&)h
zG}3f4wfEqajosj2q*(V=Ga5N(P}6r23=giCoWE>3J{Ah)blyA#<)D+O@)r2Wpy}R~
z$s|W$Tw9ULPl;MVD5$2E!cdh%NSOrsD(oiLSLA)_^$srWQ*N(a9II+8nTYVE9vnF$
z-#~-u0!h*A_9pV&*0)4rfs)u$0`K@dcD`j5D4$&xW5-Y{%8a=UEHynrsChE1#z$@i
z1b{U1I}~L0Fc=#b7@*xcc0oR@Z2?+bG5E5LSATW_tLKGa(!TQKS&~JIRO4OieB(Jw
z+EP0LU-$m@3*VOf6WwA)IzoNt&=gjX;DtwW!rq)K#3U#U%2ha}o3b4S-UL7C=7B)H
zL9(%Axq*(9Rx8ITh;*5vXt;3Na*I~ekHY#?sN$YEE0=uSbdVC`C$l+{*jV1_N9`t+
z%sI6F82R{sDO}IqO*)mQ`wi0*!v{_U>-euw|8z+s2!$?N0EhdJj9h#@e_4&u
zOt5T};|S>bmZ-Pfftao{b&vI+%h*t6d5HbeK0E!!P_hgDT+z77@<%nYV>_Qp})Pvv$CxaGT1FHN)SC33bkl#ZIi
zL@&dKyt2BU_~^+fYXTzSpbp==-uw@(~;kYdmxfH<oiD6%7q7M8msmclo9eiYPS6W{hW2g!b9NuEnp5BQG+w#Da*a1~cPA&-W%Z9b+0A!TD5^oG8>-rtXKU)gZRf
z{rFQ^2@4cBPTRY|EFgP}Y1C0hn3Ppt>EfhPmg3;>uLhseg0lUwHq09lGPQTRTX|&N
znzw$JYq*33$~8~vz7IsF`R<|SfFpF#!rcx44E|OP_GYqqA1x%PVZ7R;1;4G}oOahG
zoMOlyTh26~>-XVlsNUQ`5>fN_%gw*P=&ZGdckM;YV8j!?2gR&R{jT0oJPv#=2H=kK
z=B7DqHInES8qN^073e)^t7Ovap|uHzHxcD>&xd!Ng$LOwu12QC7&siEc*
zT+f2ADV=6Li5HFr6C2d&*pJb6i)FVun?-nMy#%>Vsgx!!JHflRHE(Wm0qZ2P0jVpE
zc|vS)_39+;J>32b=LuQtWVPVgulh=DeRzDnFoNz8Q;1JBMsko(r1zBsLpJ5n5$(;j
z9(KHc%I#^k!
zKxKsA_{B8xyB;>yv=`BHllAf^0_3!rKIxy+T`_LfXQ^Bji{-J#*RaBLW;4m?)>RZr
zWMEL%kbQz;TMl#ifBjkxa)6#_I^c48wLvB%mQnCdM$*VsH-wewUCX&sF*vTP{;=E`
zuZrq7mB@qAtYiv=w4e2R?N`8MI9&2r$Z_Uz%TZEpzYatj@;m>P=PtLgkd1wv?aK6a
z_5Jf0kg<+k(8&+h}4n
z1Ei##jATU~&f1TOWOaKa4;6vc)!9bELj2=HQ=6cjO^$L036V*udXAWO5kJ}4siN?i
z$72TzUOSqiQ^TqOsKM*d#nEWsa8O36eM4=;C$syrm#};+*daBn^-I7jES2$S^8k|k
zL^taf?}=fF>6uT(p)fFsWID?$eryv52;_@IRRH-9?MtWCR9yC42p6V$ANgiObsx$)
zF1n8onD5
z@?*YH>abd5l8t2$BiS_%rxk1c3Y
zv==#&QMacolN#^y_&#}Yad{L;(5N*idkt%)Pf!KE5fz_a>e$sLi?ycPEkBcKy{|ur
zT3N{xlKU)(8gRNb7@&w09F0u)h!l;{N~o>E*qE+@kj;Zb3J+fZ0kpbIHiSi$_81Cb
zSGDC+kGSk~Mo&XNLr!>Q`sbUjrV%I%!(j6A@c7*Bg937ZwgzPL;|-1U;XVR>%jbh#
zFF`!x&`ptO5#bgeu)}3HuN;y$2OeI(lGA<iH6nD_SrzT0e%>qVHZbF-Zixn5
zLg)Uw7EmbV2fBR1Y|x@MA>m9kM4}8QAn((|kbUj-$r5DBk@BZ+IoR(qb*NpYB=Ra4
zIeYkv*T=W;tUm?z|GIL)M{S%8yK(PH;Hf-y?O1z%il!>3CTpSDW6FMk`t=5&{ty%3&Lp#SQulchfSX78rdGfk3nUv8((&&
zMqHg%PD755p{^o@SNU$t$=BH?%nkcj4UCOFQ{s8lavG{ByAwWvgYd!y;%NlA!u{+g
z0Gv@kaO6*1kv3hP_oXlO1KO-GvG?h~#js_)t$|3g)!kux4xDMmeke|Mg2JlIj4R=g
zxBm>l!K8x%Tg17yoIPk20>q$S)Yh0nQUprbBiQw!DwcxSZqRh)g^exY11L17645;g
zJDSl>lF4E&gwC=pHA~Tpo~X=pQ*sJ{1YT}|(nA>WI7*v8J;uyy+%6{t{kc<0KFkvy
zbj07CkFV=7+_yH0e;#y?94_XnkyyJ&$(KuhW8M>et4VzBH*(&w6J!)8$o`<(QnI^-
zf9+ofh9{U86(c&WnfZ>xu38F7xte1kjc#oVVEMEiTM?@Xe6WwfE5Ja&;q?jfEKO~x
zvsO7T`}K58A#aYy`Ry(GqrjU}@?pp~bm}^?4p#_JFiMU)K{GGnYH7IShm#5#r2zZm
zu^^pE*0*}G>4{yeOO6o{p`qtW6@v^oU^*@5=5r^Mj6(y-;DK;nxZNJ<)J9d{hzI9p
z0nBs3;~Lc-a5{Ks^Q4Y5e9qPy8Xd;*qD#t1F~U6h#D(;^$MnFm%Moq2u*niASGj(P
zmB0ikoI-ZSUBLxcxZ(Ou+P=-hlp91Z;kRg2%@*fI-QkD_KPl0Ga4M1aS!V$21ZsYr
z&Eqk?{)1DNvq6fDhbgK=@mdu&mA|~-4f>H+5D)U@iJNt`W@tJ6;*Z+DC)txh(1+1dG}!PeV{%(1kcUv-+@vo)4N>+WN-E*|O~I
zLZ{3T5wZpNpSlUMtgWSdk^|(}#eOSi3%s$RDy@IKfkPuvW{ECX6i5B!-8%2M!GIuusBL*q*u*i#k?c~ek
zp!*EV=Z_5KB?+H79U!FAp{~PHetp;QeeoK$FMkFn*K`xcikCm8FJ{lt_2HG!#;d;V
z0yKYlxF8lJx)N)tjp$jL2LR?R!!r6VNe_3i+^@e7q>T#-kzNV=JWj6wxDi)58<;90
z!Jpi=DnCv>sS~fC1C*#@?e$KPU~4^ks!@nY$nTOS5fYvbzT?_`?sE{L^&qr_B?X}1
zCY~N|0qiabNHLeTwl(0g^`fz@b{I=6plP5rkN7}rtNAM>Gx@d|w@Nqdtu@FgYma!_
zQjJI{!|9Z~Dhsr7`+mMAqg8JXK)y%tZpgf?1Z^HrHPNUu^ZrHctfNsn9n6H%`9`eo
zXj|gL$&0Q+wj%(|BEW>D!Hz3g5C}r_b#X8zS=Rkht{wo8ZA#>Ksh71?#_F*pb42+T
zs1hWB^?7>-bLlsUA&nM`vWuLh&5PSyJC!50mKO8&P;U-Bo49n8n2XeKJ6k)cSRd%~
za%Y$(DS^YLTPFx!1}if9CLUZ@{J
z)IW@}w4}2UUsXdV)#8Uw+`P;_X3Um1&fBwcIa;IAT%pXL$H$s3&8J5Z?GF8&|A#+6
z;|@NhgHK|)M*sDO1D^(y5`b57;#fb&?xR}g_&^_k|3_V-DN(9VUo5Tf7erOrbptBF
zahXC_XB+uq`EOfGnb&?S-4P^Lg`tSIp!rX9y0h3+oV672R)ZLEGAw~v6Hw(Zpk;DH}(|)&i(?>_pk(QbU|4s=?oppDz
zM7>FjqnDigEPrWS$28MZX|@!Q&&rCDNsE
z#bsMj*!p}DD0zs;EI!@Ab5!WZM)LQG3VQpq4Wwx>3=w0hhN%>H^vjJzuH`MmR_o|0
zgc+vIlASm%ll&|hoQARIF(Ttf%$Cl>!FnJ17G_jfJGpe#5bXzC-lC&j*|cj|$f-n?
zoMRzk(bl=|5Vt5sG|(4{qM`@$Y;f?XwJPC=UFOZow3^(55_1?@
z;A_NvmHd&B+z#Hs@pMS@iik^rK7H2%F96-Qq@dg|7GmnF?nB%0XU%PWe$?ZkD@{&4l;EY5=Yy2RwZK+LrIx`nZdczQj`
z)#Yqu4IRodlAPFl4Lz5&i)<-s@ox^-k3T>dtU8LTsVe1+p;EXcf
z?g@>-Qlx}@86_@6Ap#&dnVA;{-XHSUdt!H{Qbde+sN(sq9IGjTUP`nbZ})-8KmCGF
z^oI`Br8`p|e>+GS5dRN6jQ)M|NnUBM)BW_=b-i%ZunR}Z
zpt}A6Kt@X-S`ci1+$O{v0;4EYmE*ZMW_*1_bn^cNV3QNXhWCR1ffu1sb92l6-3+2z&U83Pq|lg{Y|5U0VHqXf{N*`;|NmcX@BDwU
zJh8|~*=E51zvORSS&0BU>SoN!s+f<1TU4a%MI<&l01Pt;kyt+BiqqZo?5yg%@|l;I
z(D{ash>(x3aF+O58@nGl2@oKP&bYb0O-f2&cs}+Vh+7>UT{+hFv0x1LDieng1;Dv~
zAjSbq|2Mh%O9B$nZU3!9`hN_gDlzMlihzL62L}uLmvYpM2^Jm_95hlEePK8dp?YU@p$g-Zn?fzecnl8lxA^J&rB1?o)+
zX>O2VE0s1rj7ri+TxGh0o0G6O`v*v8>UDMsVtD1{<CA~Y8#r>ey9`At9Qa^rA1z_haz$OEE~!cTP$dRNf==75a@XmobN
zP%}^ot*)	nE^2O1TSsPfLHhrM+4U5L_Hi=Xw{EXm2lfd~?z}`=@`hyFG&5Fj`+s
z8#1Vgm)i3}RXr2EGKRhQ;Ul2?qPV(4)EwiA)Kf_+v59bin#yL#-b(8AWlEf5+>#)l
z>#;aMK6qHnmS4@}S7OHw4<=J&rnWqRP8nd$&@AsNmVI1mj55?-_fLNSt#AgL#m$s>
z!J|W5BH~QnFf7~K1(M)_2%7#C-P{w)rC?}(+tp!_=Y_phcWT6nfZkoI4*~gmuKiZC
z!fp)?tI2?8JJ~w#6eytwLgmUfsghk;a=2NU&c}wFY%K^=ZKM)2V)Aa^oryT^&(u{p
zMF;>mPJ2&~Qi=F3DS;3>MxJW^{o#Wj(h9+^)@Ya7l6%88ON^(znO@bczt+l)7J$1Y
zMjTlRX%o1zKTX15e0t#x1!*m{N9(qH=lVN7%8>34QFhC!3j@4Ga#dGRv~OOyPAwO5LJWZ#4usIH21Cq8~qP5fMMCX-i#RhngB4
zYk(#?`S&M-p#QMj~nBW@+d=woK{DcW9O$86wyUZ=C9YKiQ}MbpKj0l
zd>&IFffx9Kf`#R3UxZ6_-wyDVs%VlhqqOpu~#WWjLI81HdjoWanU{A%Pno);4G$fw9^BO!4n7
z3Ow&(en4R8;gq4%^in%KE)Pi;_!7-0u6~{wJ}`eO1vnJ^ZH`uSf6!k0%^2+QWD5Md
z7Vwk~DEV3+)w4{04r1pYDkmKen~B<&&N;@$7TiW;2*a!bC!RZ7so&*_IFG~Y@NL-h
zc?+K}(r8?JEOT-X!yf<9>_BwURNe#7B^I)LX>X#?X*f)KfEYrp-mrO@
zatDqHm(%(OEQi~R-6HzoBNL?u!zr)ED}3!b_r*jVy$8-orIJ~@jk)4Y+-5r2s$+0_
zxHVmL0=#b>{xKCe08~!84bXby*^*3-qkV;J7C{UuOpTH_Oa*%7Z5XtgRU;X*;P@!J
zD=r4Tc(*?e#_oik4zIE8==HAqZojd8zDp;;7zuNe`a8e!*GPvst#9w6a_Q)Eti3sj
z{Vt+BN=BHUw=mju;QFUcM)dyR{1pI5kYoyVcL4q6sbM|>m#G1uve}vX0*)P|_r~K{
ztZdTq%*beH7fV}$i4*z7Maq@}Ldy^>-@_#^$Hj!A<$whi8%0I|WCB@6fP#;1D_?v0
zymv(ZiRbV?Gr;>tF+C6ful_?=2+#>ZOp=uZ++1;Ww$GbA*8mB)=hNm5MMlp)zyaJP
zmKumM>|o)cL4zNFne~$e^>m)?BUaT)9ubbqGgB5CF}E*#gdUR1G{9d1YLCWWLQ+o;
z6?hFIo|PZHNiG2r2;gu2FMPxQplkf!9wSmt-tJsHY#Oxo{vH{0K!Dhu-_WdgZ?t&G
z&Z=}-Uf~v|QYfCUP80>UQGJ^X&9Eo
zKUA)?>NNm|yXn)tmt+170@4qhXqeaWfbJspa!9KI%VRy5BZ!2E(HMNn=b+y4tq?pu
z7Ea1<9V6}~v_sw=x4H*i2N(djsa&cef{KO3lDBwtN2@rch>~;f@~6jI1oAF%l1kgF
zNQF`R_w1}FFtKBZ166x-d_(Pi*C=b%Z~27u7{OM^s+TVRN@>wkxT(m7KTw@+ah%?O
zH9)14GrEsf0jL2osg!Prs4g%#LE2jcey`NJYu*vms2kk(Xq(~SV1a(4T-HVZR^abX9UMe$t)Id9zye1haPIcZ=Iz442_02W%`ISWtF$2;B<(L2AHiHUr;48=S9YC~#3x<7^A$ual3r
zdH@={3$w+by=JEpeX>X~U%&G0AxR(y2PZ1+7ba3tio0}Dpdd*!g!CGuC9nUk55SXk
zZ_S>?aa9@9b_FMKpPko>_iss~vy}}d@GcEay??zryuED{;7_iv>m+zC32xQ7q|52P
zaB_*f>2x0GWJUyTh#f6?bbu=gt~Q(HqQ);*jqVy6MuX2v<;i!R?cM0K8eeK1E=0mo
zL$P>}_@Ljx#6CyRa__*GUuI54XtwrB28Q-MMYPA|gtbR-QiXQE)V+ArT(w}50kQ8z
zd+lJ-M5Eot?fGob@h~{4GvAK@E6obvz2f6BY;7;6o=F=NUMgm0Md07bq}n45xmoOU
zlz$lpQ9^F+Rp8}g2P~{##g~;?35funHB%WO5z4XtaFtLr&P=4B5a;ZSvgrZe;MCMx
zINrYzOkjtq^8fzbe16owxxyD+eSJ(EWKuw)z_V)WF#ZB2;emVFGclv8b_)r?Fa)AZ
zM5!2d?bRv@qzK~`SxG$;YU+U$95X=y1tp7TTLaP(sd#pCF(EzGXG24vUWU70L~{Q;
z-tzXcY!~QT{`O&B@p3k`O-9k
z`AF5;Hw)mT{}m9>LU16IJcpaDe1gir>YxV?!RcnTS45%9VDlI`DV^HV@wW&Wx#Q1eORa0~z+Ds-;!d>7&Bowx9K!R@6y)GXAKFQvvGuuiR=gB{00rgurCC8a~6D7*-fTjFP
z8SC|blX<272}gX+qqp~3fjhyD)L8t!wsAll=6pAVoeH`-`UBy3ul)_%h>1FsczK&6
zIrm%n{?q&Asy_3(9?rNCkSkBJpZysf2a&68nvAC_V4EVf4qR$Lc60!eW1C?;Bgr#g
zDWep|MTz*n|)v|-xI5qG!
z51Y6d&bdyb0?93sWj87Z)z@q*W)dP`%L%#o&0N0j6TJuu+3(Ds4!KrAG3Xe>^75zh!Ozdt5x9
zrb48IwC(NqGXK1u9`ffaUs+L6Rb5k6_BDkrA|LFyo(bX##9Kc=pR)U`O9gC+1!%E7
zzT}sJuL-vGmw5MlO}trg6n^Lq1MDgJ%T;+yWUS4vhBRQj(cfPO*~*MBKzNXKa2O3l
z05d{T?cb9Jc+^(+bd&%G32oA|d8=r5T?3jOG;HN$E
z$Ap9g6%|$G#3Z$Om87KnKl3v)%0IXmM$5sQS_#vy$CrlQKT*@rWPRxT*IZm=@e6q?
z#Ec{>Y*TSa7i?Htny?1KiSplkw!LB%W!2?@p#cHG!KarefF@~eQzhM&yY}x7%^;{d
zL4c|#uMyiYqQWvi_x#w?)`i0_3yK)icL+oIIHLu`ByWH{cz)?|w|q|nZ6~0aA)cA2
zgNT~0&^t>hyvB18b!HCxj}lcU}r-A9wqE6YoGZZFXD$e
zdm_Es08UVNaAzo_f3t?>(h-~4EQzn}#=umW1r0?$kH^jK{!Kra&8t8e(+@~N&);3E
zWqTXr={o_W%i1@ApipSnuLdb|1EiU4LjJZBi`6RF)1^QMGQ(2I>hm_ptm&;DS0@{)
z3(1_rnZC}Hy1?VKepmB7Phis5d$yW-Sb+L&R#Y6kXH3A^)iy9dIcEFQ$My~E7FJ|^
z$W$-AE%hr{8*A2_N|t9=Tmpb6C0e}buMcDP#6{r-h5W6s*z%a{+wiBRL|tp237T#c
zfYzI?y^@a;;+h^p$!IfRiu;9aY%MJQ&z&Ns%jekqDk)=Kb4*0k&F!y1eVGu`A5eQ`
zUp?2tulw#EAYBzpWHy;Z*kKBz|I~IpjMSB$Cxdz#c{VgOoZxl(6Ex`hUCM~famwpT%LxatSU`}ZY^)qxx0x^>DcuQ0m!YJ+!B
z)OD;r8v&N$6)yLsTP-{=jV(3@28%hkNSFSWrOOSCI)kJT?;gI{w+c*~&oQj$j-Fb2
z+}MuIh%!;rP`hI+ki}#Y>y)XS#Rh`L?a42|N}MlwCQQxOn4NC-RxWve0>gYs>v)^p
zAFm0C5~vdvAFrJ;6iWeL641X;mY06nADvbw4JJ+DUv>KfmWTOFMWtxcp{%UzHBA0Q
z`qpnA$WS|r=?dNX&8VC~ejNaol)0zp=FSkE#{-HXeQ{)4BQKi(ScW(S^f*5t$;t`R
zkC&Kw$XgkOcBEpIvRo5pKnM$cO84w+X&Dj@)_7?6#EIAH3B(0s!H1GRmM&&
z&xn``)O~11K6~XP0UYfx-mJE6<}R+yN(IYv60*DB38)5!z0oJ9`ArTr_?BJ8GDA&j
zsoJ1=wteM>ey>s@A$s3vt%epgQKC||oGQK7ftyDS19k(n7vB
zvs7PfOG$Rp9?^aqGzp9*|M!#i*?yq)vRA1HX5F??YNuHgo5Yx~sa4oK4D{+A8$KMF
zFk8xL9iEZ^4HD-dML^BiZ?xPT
z_I@_kFn3G=OCo_6fj<+#`C%@gpbSPRgMNSF_VNe0&>EIK3NjKVEdW3DF_sUq3rH0C
z_$ZLVGR0v$8Acvy_DeYHRCkgpJZISAe=l
zA``dcNnn;(uS*!7hq@Xw522JGY?wb;068>a4U%Vw(J&HHD3p_b57Y`$MC_)hJzc!B
zSyhZrwtl=mr+AB-+-+!iEas~8k1ibQiP2Um#%CFZu~neu;o88-1&~jH3_!H>nNXcb
zg5o>6Bv)-AF2v7at4DQ7v5S~4r9+?^KGEvUO$sV?c)Nf2KXMbZ;nz2?ubrjDvGHm(
zU3TPVdN=*5QDHJ{WUii#KM>al_E-Y5HLjT59t2V5j^T*H-@$upc%+`N2mL2w9#%D+z8DR
zC$7zAi}>T*vZNL$2j^PxE%1qk!eB-VR=V60Z8oqyC1$jJT8yOA!Mfz
zVL!Qp0z+%6WU3?me&l__wUYJY1YDHXtuXJq_dTg1(*q%guQ#*1pE8Tm(!N$%i0*2R
zx<8r1tY$O$)i$yhayF~~a$TH-jqB7Sy7i*-WQHf=3Nar+hMjD3iqls(_Q
zc(P-U<%%mA_$6JjrWI%c>b
zBbsWkImo#_>ni3-WTKWM=i}X&U-I8R`{>jTw&6ram!$FojLm>f8@0|)k#1$et_W(g
zL82w2)OR$zzAaXsG#o-7+>{D;(=*BZLhdV7V_=NHy!!m)!k{x?Eah=g?Dv)njNA8T
zE4f|I^(JqNnaILGwC#A-bs_bWm+vHXHe`3Q;ptdZ&c17|MnB55VP78JJxGpa9fB~|<
zaIMMp>L|NH(p+ywR=5=Y}%;ZKU9rfi$)oK^m}FPN%x5MPe$Jy
z{r6OD-$O*iMzq!;mh#3%H5D}^wQ{cV#xkxci+xqy0|;R;AuM0dqZAG&#~<1lA0K8`
zZjSB^h8LP05C1qHxg6F5x-7DRb^ZK*@(%z2=j%=Yxy=V$I&iTK9IK
zdZ@CT{R!06Zp5c`)^yN^5(i$qcu@ftF(F;FhJs>FJ|>FV`-O#%ivNQj0pttiC||$~
zcl%g&i<7?iaXMLkj=bVL|3W1p
z)uYTOLAJpF8ZHQkJ81I-NW>oZ9#zU?NhA3O1eBlVZO6xd|NV!%9_NQev=K2)}
zfhKAHLHHNvURp`c5!U^siadG|
z^~E@DT<@d%TQ#>YKO!O{V^M`<5{PUdU*ifL@m@DDTL2w!!;R*$gw=>N_s5q8201mX
ztbA7(uRb>1FF%dFy7z;C@WH^`&3BiQ@(SKD0@bCWXv|L<EOl*`XQl0v?iNbh57ap5H?I61?6#a#6?5)h;$*W_Y2mo<9t
z?$*FAwDKcyLnbe3jvU79dQm75=qBwnNNVPX8~~Sns^e2K7MWfZ+_z##r(Rw;$e*7(
z{P=Q@t$$kXO9cKG0}~Uufr%e4U%a??{QMyjLM5Y595C-{8S~+pq}CYhPEI6__Aq(8
zqo4y~PqbfhQcFc+#H1+^w5H|t?HJov$;B=m=)HK+(pg(ZzcgJbc7k=ab6?rf(NQq_
zGjH1{78;-`bJC=)XL3byRVNGSU%dGK#O}tkSXalckwc^#Ma~fMqc}LgIA2$Vp;~bz
z;C%QYPW;w4*Y2D;^OblY4KeVg-(u|;E+#KM<)#zsPfb@p2?
z_2v6w9dud%5$%|7STmYxjoL0frylUCKnd{n1`-2f8=X#0`RpF~#l8ErIBZ%yyYc<>
z2>lmb@90eOf|017688<9+|8+>#=-&VB>Ij*L@7d_o=D1mU>MJ+rEJ3*DDo1O+uO-}
z7LY)U65gpO4Tww*xOx9!H{XH-84pv}SUV>-sd?cYBgc#5Wtn;%l}ne|*||JptlXdF
z5!#b|8<^ms9n!yg+kA-D5Or1y{oJu?uW>H%Q(2tV<6#x|Ci|;bkK%_6tIwoj@21gi
zFt9xst;)iMRk|SDVmp1xuZ_yd)gMuD8e8S8X=AjZi~SYjmZ1Cyd%&iF*B~Y)*5~XK
z9XB+ZG30np`TtSeTL)G7cKza8QBV+&Zb9j8knY|zNP~2TbZ$@qrMtTu1PN(H=`QJw
zba(f;@cTUP%yZ_vXU_cQocZnl7~tM_T=%-xTAx_01?w|Taw!@Ntg+oRZNoX@Xr|7I
znnJ7tqJ+;0@Nnp2B&oUF;`)QW`Wlg9;NnFKwBQptXf3*JtY(9uh|?E9i*g@Kl(J``->!hk^3{r7MX4l^qw
zYwbm84j&UIb_BcQ1axln8`!Cxk0wh^bQNCwvT|uu4B9
zV3zwF7BfAaSoKUK65;QmHppt|ZhgQ+HS=i`s7ID~1c7|7M41m&@x^NMT&>`@?+A1sJM>e*AZxB2%_cKf%Hn5HgM|qpGew6*puVqHuCJYS4K1g!{d4M<(B3yCQqNL6om?*cmD1;rp{N#_~%&)
zn<;-bGPE-?vXRzG>ngI7Xwi#ayS9i~YoXz;-D;9FC+E(CD(VbLMNLatJah5YpdeaJ+mkN_3$a>`b#6B~1}~%E~%Cer4)I^y;4l
z?w1kz5Z_bT=+li*CLhM%V+_&#d!d$){p&3#`v7*v`%g9UzrN`I)gKLs=5#2!l`5If
zQ8AzPc9~R-t}%_$Q*p)LuMZPSOhkw_H7jcr-1Osn$GWBNcStQ
zi!HMIL6^S!_5BZ-?cj$YN4$zz&3ZezDHTdNp18?spTQ6fd-^zLc8~3S(Z@%_lkb0a
z_&mMX^^*B<7qP`dU(aXBM8z6nytm$1-
zxyV>!784cy)F2-e8k`-$LD~F@oLuVJE*=Sqm?=FyilK5##jr_XO1j`Z1A~D<7r(?l)6M%X9%(`m^~F$(VEIfF
zJIi`Va^AR85o~h^O<(Yf@lKW=5k5Fc;rRDtNMt%RYAgmjgzD|Qyg)(6%Egxba!|ho
zqXUg-tnn=v!{g~$e&e}6)}P|G2VyMbyD!!UVn3Ug1!;`TpWBV-<(%j!=uVpBneAWb
z4-I4BFhyn{?+JN>?Fs_9lLt%44>&_TT|sZjSf2xOd5!hRNTnobM=xkP{k>7WVjx7=
zjGhXxvL2dyrt|pn2xII6R>@$;bZ~^v{ywQ^!GcD`JgynW7RAlU`7w{*KT80xUm=s=
z30iYlSleeT0rx@ZaD{OCESlPvs;W$=Lc{~|o;cTR%UE+(4vs>#mcAV?Uvy&La>*Lm
zkTs~`{po2TfZaq}jsmlYAp}Q2kRCmWvt7UduFKzMsn&XG6Y=gn>2Ohl2;F^y%-}c<$j*|GO7J@QVMIn2i4D2)&kt-KZ6Mf@n*l
z@zwe$cw`_vYrZWsEY#U0hT8q(hgN)i{KRDZ65S8i;UrPg7R`u|ND}`*37*Lr7D!j|
zkS;1DS~D@Fh&cUchjzcN5&u(caMD%yAeu~RAG``^@%PRXN4;O*L%8<~BJXB%)e1zJ
z2lqd;XAub8Un9f<=U>q$Q~lqb-L1c7AHVxPykEha`;{@ru!UdgA08h*MKEXFKR&n_`}RKM*Q7-5zjd_vwZ(xQ|l_E$J_MBSA8j!6*Ck>HURp+`m>S
z(cPFMoHu|1G2=qyu)p4oHiv{m1Nugd=?TsD$i@aOFg~l<>S88F3$^}0+fIdal1oM?
zJ`pA+ulurifvk(=7=TkG!%qM?zl?>8pTEuc_bWn)quTAEwapqGsBs0nDQ71u;Vg{r
z{yh?Y&_52T$^pjINaz`AMQTh_`_Yua+Q}(fpH~uukXHv)r@M!{Sc)cUDzfH*bWFSg
zxTn+k2^
zn^TAC!kM$%czgJS5+XR+OwbJ{^Ex=VIo|!qOleX$TW&gPVywZOMjqQ4PMGTG8XST<
zm?j$#2%JqyCajif=XzHab0WfszE#@|YceRvqUq@9l*7!^u<>8glA^344k6Nw3yz_w{elPO5p
zvp&r1i(topaR&Z9{LIUaUkaL#^FE$S85@%$XAI~yUGk8z@bY%7<&dgU_^#hfg=ie>
z7l{%Gnu4t)4o~_i2vH8}<69Ef;l%7%F`pFERRX09gm!cSWwGf+FJ942POZKL-w8nm
zZ%tLg3QB?R^|1$-HV(K_Sr#UJpG7v3n*nMinl!?R9kyQup6J{qS{`T@Dm*@12}6wA?Py{GRLoEj{3HQ;KlqW{(o=?XmC_`ajR7b5i3Qv;zZ{MoZ(+7(P3lKzp6
z+n=3H!WaV}#`57Zw=I*@bkism>1HuRICK>`;RR>~_0z-H{<(+tq>R7^Midyl%7AttIum1vLY7}6Bd>%ZBq!Gd*u+rwo@y_{_o_b`KU
zjc0HHDl%7p7HNEtT`;KE;B^l83iyZTqd2Irti1S4M28~sncqh
zHeFM?r}A;J{3xNky`!Bel~XHb2jfNANAqp)wSEv0G+{2&1ahQ+R~ZNoou;R(1T`kY
zfw_!sSFhbqBw&M`mVk7;O9+g|ei*-qvwS~FT|aE{D(bVK?5{<=6paP|U;1uXS<}l+
zzy#t;bt_6rdd;h=s$MsFij&u>N$|!Rwsv{z_wm94@f_y-&zaFk~4j
zqn&bDD!78m5@YvpAd{BytILiG-wcOY7IFC2=L4_0GA7lY?zN=?U9{8KBpEJwX=#g6
z4yKwyT79Y$1@Ug;|U5-xbM3Eex+iBLQS#8-|e*(@oxdCRe&M!-&BoCJ%#R3
zZ2`!O-CU5!fXsSAzf%!Vi*p#6TgR;W@D+h%q*S|}|NezNXLN95zQ1i?Lo>O5jX;=d
z^0>;nB#qnNacqKJ-R^z5i*;mDu67VX+&F-*Edkd*qTeN^wx&tt1UcC`=%jplwa(p`
z?ZHnF?qJ7*fLH2KZ&uTjm!>{X6QYJ
z25BGZUB3di^u35dX(Pv*tru*_T+#IE1u
zDP~%nuR3+*b;6q$G`hOxR=P;~Tzuta4wVWI1HUf5PL)wwJPC(SW`6}$4CObD4PoX}
z9e&uM&4*6i`3M+8T8j@#4nf7Od!Nu1l76Gd+H62cNPLA4usF0jV$!TN>kV(-#yjtq
zitsu-ZU-!%n`?wg#XRqkTi($%24J=yn*8*Xgtx`>r)&I)_u)~&(h{q66cyHJY_~qP
zzXjV;-Ix7avDq~GiISO8<0&D++AS`>aukayfhgtSW1URA8{F{p*S!!38*&mcL@CUQ
zUEd3>)^a$}QLyd1i9j5vN*S!bIZR#6d1XBQN>w@kO4069xUCLg?B}{kl9Q7sS87Iy
z_8<^(J7nRFKeXnyDlmhag>6k~>Qoy1;U;Z1kXn(s@_l#M2gr^F^`~0{Rroz3!(I_g
zI~=Jk!naK|vAo{gY#d`I<$70WfYh0nE_V_yPo&@C>U5WdMc(O2JYDm$e}^`bd2pAp
zq)@5F(-`DX_vN2(%}yiQ&=u&GO%28*CemOAv9ZV}vzKeP_D}azNyH#-o7+don##uI
z;>q2$fjVuiKk+-;FCTw;xxogG3^HS>2-9OoaR&WQ1LP}C>K*2|=>fBIvcil5>-9Ro
zIaU_e`ywoeY7P`Ep`E{m83gF_e*L-Z=PUZ+cwpn>)4VFbIq$W9{^KWgEIjMT;OCCa
z1R*E!W60Ef;iLp?lcLMN{4Q6naj$G691uN81Wm?~$J@*=4J^xHKuT>r7aNf+JNTxe
z*$bV-_jZv}4}bS}r3)Y?yEsQD_ujKx)>#Xc1@Ia!TiUJn0G}DWsf?+dNfnoq2Ic@I
zb3WKarQ=Ir5OiJ6FqPw@)HzAJLN7w*H0)Ccc;hHRZcTov2*QgdCaK8A
z%B9`nfH?n_mjQTfE^VD8vS_cPdHw#d0^q=mYr)p5KYZ`{zVyPmEx*#{eQ`K75d@j~
znMV0c8};s3OWrCsk-s-8iJ%!WGap}^5}FHe83R%>ATs6b`Kc7EGCdX5fow1}+5MFg
zQ>LCx0eCs)k{f*WjC;&Zowxmpd1`o6+!@*z%&7zFHRvbaf;3w&C$J+F-^AjraL%>h
z)nH=Xc2A8CuyUv!`^732H~I!x5&$5Ks9&PsO@L!wTtd+*h0KxMLUda76&lIB)1UPY
z^^j=w(ufRxse+`n?4;@yP_;EXY!G@DdV-kFT<_O=fR4TH^ESh-?Kx*_0LSpai`Ul)6L2x-
zTYMs-@p65aK532VT=976&SH=kv=OKSKSW-MrKP3O*%v2csT7;OD3D0hg>;ZRP$q~e
z6!Rw~B`Zx$Pe=FA*rYM@Su!=G??GI}L
zovWG?p@2_K9polIVVxfZq)f!U;F1S
zX|U6-W4fg4qN$aouCqo&Y>wA}*-Gi?PASC9F?GLEfOsIUg!}Szn?WrfWpz-e-iQaJ
zt3Z74NlN_5%>L#HU-1_es00qfv_Y{Wr?pzb<}sjXEn+E!#h5X?seayn-aVLM2{llR
zFw30)Hmd1@SB7V;-l#y0D}7RoQ=sT*JyE;?Hc-Nv-P6-KB*D`RbLOT~V!%4!RsUSH
z>Dzv_x*d>i`J$O)ILdO~mh7=jUMh*XJiryISkoA@vgQ*P1A|w0yi_yg0EUg=1tLbF
zVQ)G1={|vCS~G{$EC;#RPfIK*If})A-rqFLZ~A4TR}!lv#w`qGfi17L===}kWz||+c(GPa39a2*uZv6D
z8KxVda~RiH+c{w7wzyf&rVp@AKf5fqWKOQ#5&3~h
z+W2m37Z6)`UQhNXakT(ad9}KTK?}u<8nQo)sZ@YNNG+`15Pc9#fbc|AlnltMU(;i5zAa{FiDAfyW
z7V*f8-QhyWh(zzV;deU|dfycN%BPF_sDHJ~6dj5jpsPsQ-O`3t&k
z3?EF7qIUO{YlRN@_!#-wMjTl2+kXHzYo5DJAd;G8$l
z9hpJ<5~%TTE}i#i7~bqJj;A=`HCq<+L4Ciy75d0%UjOf2fR*%JLyff(W5#Jzc?(!}
zhsO_-cwzo5tm>IMuIpktuX~Ld)YA`FyK9_pt8YJcx|hS3BS*vOa-5rWdECT@A2z$g
zXs6&gH;)Iez93OTnrWI`U#3p7}N}%B7PMF{Mq3XC+9%nWjM!s(@{BriE
z(j>=`Z*so*5>GKJvN*1Hv=Yo)VABi5%jfx1lfG7=o9vwF{AhH0y-4K8cfjDcz=>5~
z5~Hc&WaWyl*xG+u?8=na~f3+6uZn=e9+U;IPm^l
zpG45EhsWeKQK1SDqGN&GnU+9DBd9X7#)}hBaSk*ifvF@OwujaIFBQj>yy2~Gc=^(^
zGE2EugagVF-c2*l^;bjYK!ImV(H@4KI@ktf%v4_($$bK#;-UrAp$r^Ow#YE!$JNjcSR#V5hdK60j;1
zlHs^ugb3H(cSoc7V4KA1>gEdXCcJU=!{ALm5m{Le#=RV;r;s(K_TVuFdHFV>ouv{@
zGY^Z|S=
vJP@F3qy;%9)i<^yF3Z;kzmZq;jb(`daW^I+@A
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 Bl+yqJ literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/21/results/mcp-server.log b/notes/mcp-apps/experiments/21/results/mcp-server.log new file mode 100644 index 000000000..1c986c483 --- /dev/null +++ b/notes/mcp-apps/experiments/21/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 4036532dc0a84da2a868e72b888261ed diff --git a/notes/mcp-apps/experiments/21/results/reference-host.json b/notes/mcp-apps/experiments/21/results/reference-host.json new file mode 100644 index 000000000..8ab5d577f --- /dev/null +++ b/notes/mcp-apps/experiments/21/results/reference-host.json @@ -0,0 +1,30 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-21.F3OfDt/page\"}" + }, + "failure": { + "error": "AssertionError('Locator expected to contain text \\'/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-21.F3OfDt/page\\'\\nActual value: None\\nError: element(s) not found \\nCall log:\\n - Expect \"to_contain_text\" with timeout 5000ms\\n - waiting for locator(\"[title=\\\\\"Click to expand\\\\\"]\").filter(has_text=\"Tool Input\").last.locator(\"pre\")\\n\\nAria snapshot:\\n- button \"🌙\"\\n- text: Leaf:leaf_open_page\\n- button \"×\"\\n- text: \"📥 Tool Input 99 chars ▼ { \\\\\"page\\\\\": \\\\\"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-21.F3OfDt/page\\\\\" }\"\\n- iframe\\n- text: \"📤 Tool Result 859 chars ▶ { \\\\\"content\\\\\": [ { \\\\\"type\\\\\": \\\\\"text\\\\\", \\\\\"text\\\\\": \\\\\"Decision: where sessions live: Opening t… Server\"\\n- combobox \"Server\":\\n - option \"Leaf\" [selected]\\n- text: Tool\\n- combobox \"Tool\":\\n - option \"leaf_open_compact_ask\"\\n - option \"leaf_open_page\" [selected]\\n- text: Input\\n- textbox \"Input\": \"{\\\\\"page\\\\\": \\\\\"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-21.F3OfDt/page\\\\\"}\"\\n- button \"Call Tool\"')", + "url": "http://localhost:8080/?tool=leaf_open_page&server=Leaf&call=true", + "body": "🌙\nLeaf:leaf_open_page\n×\n📥 Tool Input\n99 chars\n▼\n{\n \"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-21.F3OfDt/page\"\n}\n📤 Tool Result\n859 chars\n▶\n{ \"content\": [ { \"type\": \"text\", \"text\": \"Decision: where sessions live: Opening t…\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/21/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/21/results/reference-host.log b/notes/mcp-apps/experiments/21/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/21/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/22/README.md b/notes/mcp-apps/experiments/22/README.md new file mode 100644 index 000000000..707926c27 --- /dev/null +++ b/notes/mcp-apps/experiments/22/README.md @@ -0,0 +1,28 @@ +# Experiment 22: End-to-end complete Leaf page + +## Purpose + +Continue past the reference host's unstable diagnostic subtree and measure the +now-authorized full Leaf page. + +**Changes from experiment 21:** + +- Verify the submitted page path in the host's rendered body rather than in a + replaced `

` child.
+- Change no Leaf code, cookie policy, frame declaration, fixture, or page check.
+
+**Expected outcomes:**
+
+- The normal Leaf runtime reaches upgraded, applied, and presented readiness.
+- The inline surface remains a constrained preview and fullscreen restores the
+  ordinary page layout.
+- Accessibility and console readings are clean, and a keyboard choice appends
+  the normal action event to the page log.
+
+## Findings
+
+The host body verified the exact page path, but the new bypass then referenced
+the skipped disclosure locator variable and exited with `UnboundLocalError`.
+This is solely experiment control flow; the tool call and app had no console
+errors before the typo. Experiment 23 scopes that locator assertion to the old
+diagnostic branches and changes nothing under test.
diff --git a/notes/mcp-apps/experiments/22/commands.sh b/notes/mcp-apps/experiments/22/commands.sh
new file mode 100644
index 000000000..d199fa725
--- /dev/null
+++ b/notes/mcp-apps/experiments/22/commands.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+set -e
+repo="$(git rev-parse --show-toplevel)"
+cd "$repo"
+
+results="$repo/notes/mcp-apps/experiments/22/results"
+run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-22.XXXXXX")"
+reference="/tmp/leaf-mcp-apps-reference-10195ad9"
+server_pid=""
+host_pid=""
+
+cleanup() {
+  if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi
+  if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi
+}
+trap cleanup EXIT
+
+mkdir -p "$results"
+uv run pytest -n0 tests/test_mcp_app.py
+
+./bin/leaf page init "$run_dir/page"
+cp examples/design-decision.html "$run_dir/page/index.html"
+./bin/leaf version check "$run_dir/page"
+shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256"
+
+test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720"
+(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null)
+
+uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 &
+server_pid=$!
+(
+  cd "$reference/examples/basic-host"
+  exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts
+) >"$results/reference-host.log" 2>&1 &
+host_pid=$!
+
+for _ in {1..60}; do
+  if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi
+  sleep 0.5
+done
+curl --silent --fail http://localhost:8080/api/servers >/dev/null
+
+uv run python notes/mcp-apps/experiments/22/observe.py "$run_dir/page" \
+  >"$results/reference-host.json"
diff --git a/notes/mcp-apps/experiments/22/observe.py b/notes/mcp-apps/experiments/22/observe.py
new file mode 100644
index 000000000..57f141f71
--- /dev/null
+++ b/notes/mcp-apps/experiments/22/observe.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+"""Measure the complete Leaf page after host call verification."""
+
+from importlib.util import module_from_spec, spec_from_file_location
+from pathlib import Path
+
+HERE = Path(__file__).parent
+source = HERE.parent / "16/observe.py"
+spec = spec_from_file_location("mcp_apps_experiment_16_observe", source)
+experiment = module_from_spec(spec)
+spec.loader.exec_module(experiment)
+experiment.HERE = HERE
+
+
+if __name__ == "__main__":
+    experiment.main(
+        tool_timeout=60_000,
+        wait_for_options=False,
+        use_dom_gate=True,
+        body_call_record=True,
+    )
diff --git a/notes/mcp-apps/experiments/22/results/bundle.sha256 b/notes/mcp-apps/experiments/22/results/bundle.sha256
new file mode 100644
index 000000000..11bd39ffd
--- /dev/null
+++ b/notes/mcp-apps/experiments/22/results/bundle.sha256
@@ -0,0 +1 @@
+4e32e5fc698de054a091836d429c7680a626650ffbb143d1b8ac762d784c470c  skills/leaf/assets/vendor/mcp-page-app.html
diff --git a/notes/mcp-apps/experiments/22/results/failure.png b/notes/mcp-apps/experiments/22/results/failure.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4f011b644be9e803a44330f8e519871690696c5
GIT binary patch
literal 55174
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/dev/null || true; fi
+  if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi
+}
+trap cleanup EXIT
+
+mkdir -p "$results"
+uv run pytest -n0 tests/test_mcp_app.py
+
+./bin/leaf page init "$run_dir/page"
+cp examples/design-decision.html "$run_dir/page/index.html"
+./bin/leaf version check "$run_dir/page"
+shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256"
+
+test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720"
+(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null)
+
+uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 &
+server_pid=$!
+(
+  cd "$reference/examples/basic-host"
+  exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts
+) >"$results/reference-host.log" 2>&1 &
+host_pid=$!
+
+for _ in {1..60}; do
+  if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi
+  sleep 0.5
+done
+curl --silent --fail http://localhost:8080/api/servers >/dev/null
+
+uv run python notes/mcp-apps/experiments/23/observe.py "$run_dir/page" \
+  >"$results/reference-host.json"
diff --git a/notes/mcp-apps/experiments/23/observe.py b/notes/mcp-apps/experiments/23/observe.py
new file mode 100644
index 000000000..c4327186b
--- /dev/null
+++ b/notes/mcp-apps/experiments/23/observe.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+"""Run the corrected end-to-end complete-page measurement."""
+
+from importlib.util import module_from_spec, spec_from_file_location
+from pathlib import Path
+
+HERE = Path(__file__).parent
+source = HERE.parent / "16/observe.py"
+spec = spec_from_file_location("mcp_apps_experiment_16_observe", source)
+experiment = module_from_spec(spec)
+spec.loader.exec_module(experiment)
+experiment.HERE = HERE
+
+
+if __name__ == "__main__":
+    experiment.main(
+        tool_timeout=60_000,
+        wait_for_options=False,
+        use_dom_gate=True,
+        body_call_record=True,
+    )
diff --git a/notes/mcp-apps/experiments/23/results/bundle.sha256 b/notes/mcp-apps/experiments/23/results/bundle.sha256
new file mode 100644
index 000000000..11bd39ffd
--- /dev/null
+++ b/notes/mcp-apps/experiments/23/results/bundle.sha256
@@ -0,0 +1 @@
+4e32e5fc698de054a091836d429c7680a626650ffbb143d1b8ac762d784c470c  skills/leaf/assets/vendor/mcp-page-app.html
diff --git a/notes/mcp-apps/experiments/23/results/failure.png b/notes/mcp-apps/experiments/23/results/failure.png
new file mode 100644
index 0000000000000000000000000000000000000000..b251c0df4651bdf9192aa51cd76ac3c22b0f3b59
GIT binary patch
literal 122842
zcmeFZRZv}R*DV;_o#5{7?(Pmjf(5q(cMb0D?hrzPySuvtcXx-4_saWzU-!*lb^5AL
zUmS`m_TH@ZtVib@bIdV!xQdcA5w`0xQD2o@apgu{=$<--Tm
z53&-X8tz%A*-+Y;iUb2%#iz)p=jXP*)V|XSLg|KKwf}qv2;1
z;#UZRc3*s&R}YEsT~u}{4KIFOb+EVHzIR?o-KZ3FCK{Td0%3bM&VPoDZZ0Bw>ARab
z#AVpHlZIAlOf|-DA+{X
zv_rJsFM*aVu}xq%Gya{)>x1j3Z=1vw6eJ!c=7q11;qOjUGy|w2|Ksc$HBudHBV8bH
zw=o+$^fdC!)_9Vxxzz`t|7WR!(2a_Ao$*?groV|y+{#|IyPt$Fy`ISaXHn5TU#^d=
z?KcmtczXQFCw@%6!-GR?5WDc!`#ikG5)1$5x;Ve@h84Tc93@+0$A%ZX*XupGh25pf
zxorDPykEyKX^U=g1zLO>!F1htNa<+n;Jn|rX7)~`m>-319-1D?Z@DjEgnTC=`O+ZuMptyRwZpjl(6+Nht21%Ui65IQK>mtX
zGH#GWX?XNPNoO&kYyFhfuXb4d<>>fJa?8Oa#IoxVy$)@sz2e07H)q4QI}t=kH_|_haPHcTw2fO8ps%
z8*M%af~8{7RQ%jb(Ws;WMjBHY2>YX|Tb;&}uMkQ(9Xx)+Pej=ngON6WwimX`3KojN@W
zjnU96@xWU1^`bWvh5nCir_%zx
z)a?%!>m=oLz0}ieFO*y%H(Z1Mw&og*-`XP&OE;AC+z%(y`=hCO(JNW26{{j?YW>%#
zbOxKZyxh!oxy$pT?SAh@dwlu=s$|l?R2tkTzT)~2Ju?~Ba@uBTHwvDMEB-WWHLm-i
zDsb*0=zIN3-S`Q8U-$Lz
zf8iegp&@3{``A?Eeg?7
z7N1kTTC>`YG*Scs?RIOINP7_(PL|fgxz|REQ=>zB#;d2RhP06P7^dZSGkI)jU-^&B
zZH{aE3P-cZr?XIgbMga2SF_m6hM9~`1FGWBro%}@(>>YtD?0`?6yXPxINT=Z3HA65
zq}s21^DT9DU>8$4KA~|M8y3EwthqO8T=Pu=KoFtIG^%xZCIRj~FtJjej^?8RMzT5$oLobXolkU&U
zg1t;3zc+Bwx0m8_L4NL&rRK+CdTu7e_TWU+8Z?}FkGrg#KOKodGGtb
z&u5+(z3fknAov!_KUwvrv@84M_8vigg14U8>>vb(fSAnb4ETaVB-HFXE1sQDB#Yi+
z*h+a+61Oe_qE^lo^gMm0q@nSw`;lM^rXX@r!Klks=CTXIJ%r<7w;T5C<2C+bF$n39
zFR(e5$$gRY`1o-2=cmN4<49Zw;pKNiUf-wL(n*z;<%S>J
z#$T{$f>eGmjIb$n_+VSwm;~+?D`xi$KQ>X=I0RoG;P4|d3JG$M70&y^3VXk#QGHU|
z)n}OCb(%o>obult>*f7)3&*tqtZR272Crig=5V4I%i*%cP@ig`9?G{+&05!;h7u$j
zx39Cm>>iM(>@QQLV{;`UFt6tF32|qNiMTx)0s~){Oj`Nttd{xBL;f8py9M@SHZpuis<&1Nrmq;iY-YJ0x$MaB2|{;cG8tC!oi
zSW`$S*+h%6!B4$KWQ(e)>a)~{8=XE#2|hdfgf1^&%my6@-ptoFc6M&(pd2x%>oMIn
zHD+A9^|ojX{y%pJ(#L;(uKxPwmNtiWHmrV75{=Jgb3K&pm36h$;0q_T&0|x7*!n;i
zMB%YL$D2#7tlX5-YuIq+IFiBp+Gpj2KUe0vckBNy_p#OfD58vmK3={v&2VqH8MM=2
zWxrXcx32rRWOd5dJ0ZRgjl2hjhd8t0}qM|^0%HHD?DWxN>
zqs#jGlKe63^k}sA*SoCP9IJZErdZ1$FuY>UlEC3nt1*{bsZ#p*14AyT@qE>8r7b3~
zUH>>qHj&D;?c^w##|V6tQoh8wDT7fS8f0((Ar?vKIH^cE5gZS^P0CHMJrZ-wRG(ahr>JuABHsBO@54P3-r;9=)h~xt9ht>_hJC3{%J$*_chqIxv9Z#|P
z@budY)aHG+zbfhWLsq3CPiuD~zRWwlAPmDZ^-%|F_C0TAacOC9I2~%8<;B@K%CB$l
z>*g~`I(w097LC7DF^S{qUcgGdaj>J;>P>}VdBO7?e+X^TUjTL;>#+Y)tS31lt`-_n
z>wZs>35&+m(!5i8l70gcxb~>=S$GR^u{nG#H_AR%EtHBkHI$o|Gt>IL5@6DK@aA^0
zrku^j>y4dQGRdsQVprNQE(xOh_!dZ#L@%8J9I{6NUp#tq#G}&37fB0;5X+)0e_m~&
zN(_n7cP;S7UeQRZyC)=E6OJ+-8r5GU2|(JVod75l_To%-g$Y%520X
zayW>2=km6U?yunC>+-L3lRM*0L_p1M(j3ls(Rd@Mg*CYhvU|(~ZSyFdrm>nx^olOc
zNES#%6JXv_wuSSmRvSwZPnDlZHl8q595kNu@lkrMx1-@tGzT;JDHBdcES)r9KspCTRzustH6r#weQu+Kz9^MM`lr|f}@o?
zlJ}lkQW%^{P=jOBXL0+l)&NHlYys&-t2Ha8&PGSr?79!jOeewRaG#*Ntln
zu(!rPSG72Y2P~g>Tpx^A8;$1hR2x&sC$PvR4N0lX0Q(@$FFN4Su~LT*;r@Jk&ze#O
z6~$t`^ZmQsAgE>M&p2L@f|031&@xXZgDe@E`|jp?wMoB1Cg0xuojfw3AglXsUlMIX
zIPIs)ps=ocSJ(V{B)nhqm;Cz8o`v@QmFDN8T9u`;$>7VdG34GD#U!KMV8+0bqx$;?
zw)@1HvKckeq1(OG$aTDyc=|Brq7Vzy^-v&RV!%*FV)MD2Z#PG#4o2ft8J|&sTHok(
zFb|%c?F?(QyUCeKtvM`_I&~7E>!V7R4hzZ*yDQi9k?>+BLe<;ju5AgfR8tPqddF9Y
z=>L4h${jsl05D>3BCuNnd-$BklCpwFg?*kFF54%FAFk)=OChB5XXR5cF1P3X$t!HN
zY{Pbl;MRR6H`lgK&j>pCGZNyI-0G&pnrymTlLLf&#h5@x=m!shRyi
zE?xN?Ulw_ompD)af4|37Bc1rT@DU1~N3d66+AY?||3Y9>_=zd^b!98a?m&EyBAb~s
z{z)w-YY9NjuS_hc!~|hUn2bqwZw1NCPNu;v3EXb?ya*}1u|YSN-z6jQ>XjSsvzIwq
zoga^x6>E84=#-J2@vD)DR(T@i$XEIKvIi5wtyRn~(FWJ}8mwpAz&QGsZc+>XkV{8!
z*h=_?tubcK1=`M*9c%*7!h9la;$g{&ojkP2eOvy&TmX~(%Py}s2}iH|RErKFtIJQ{
zvxuA2Unjx}4-rIR*YRY0m`rgPzwH;((i3d6m9K$@KteYd@qMw__&Hc04*M*6uM)_s
zoi1_;ruoWG4sSC^VK7&z%<7o3K9`r(+lNz>BAU_@2KJo}qvGk&R6|KZckw$GY-Tdi
zBvxva4-Y6Rj~u;awclkvbCuOQuHDyXx{_Z**V7+E0YLcLt+#I{Pw%Kl-GVt#naVn8
z=v&4@G#$UPR8(g49|C^!+pHz_;Tz`h@$1H{w>SzK^IGf*2m7gXtk0Zfl(=QMvhCR-
z9ji+*Em^|}tVl5!d;_!c`4az}?KGvci~}aM{QiDV!1drRw#v`9Fn$43j%OHdJKE4}
z#LtXnuk(9AUV||m*1{XqUv3P;GO3>3V{lT5bi?ZA3X-;IN``YJKmA7cR;1A;(5lp{F#nVtluqdsl3Hn)O7jzA|Ek^UPeM?GO-8KsH+jT*Fx-2{lu#x0lVkUhX&`DHHm
zAwx2I{`~nPbypF;P`R<$i3Mk#TDc~hEs($U_yq$c@(g3c;%a9=m7)%a1iS79ja4ce
zFTjC4`y+c!WovxJt?GN`NToJaUJi^Y{O%s%%!^62Zj!lrKh05!W7?-oc%!;tj=4Ps3vtPDTN@Jnkb`^5b`q31{w*tZ}Dmnhg`<<5drPlKD#n}ALW&M@to%H
z!LE(9PdjPGyRXZW2tfAcca_)?pOOA0Pc)T(AAh90o_#^5JlIzLnj-}?{x^OW?qybW
z6f>Lu&t*YD-&vM7zW+;oiS*x0%QV*G;>2g2!?RSE@NLI*~pAWnLHi=Hx_I^1nya~*x|4c4S
z77FV4*(YZ7xgBMtmt66xe#;{-#~=T>R_x7^;gchee)PY$8vieeI3seMA;L-N|C=uQ
zsKZ{;K-1RWTJH1GwKo5s5gUd6CUnyx|7To5FTMXOcF*YQ+&TyqoeuOY=yA9G_$+d6
zhW@n3FA;$!s5!QHMJe`Xv^X5}i@xfQqlwiElkY-Y-`__WjSr$+_zsAZkHGmhUUlhFV^>WNyV4naYOqoo>1Ict_tvdL7WB;
z6@y{8+^(xZ=#R;uMV)LS6&yQ-e~bU8Z#}*;1qtG?aOwu_?#K(B5HJDvvv1DhfKURruEk-_?{+8@vK_xB&cwXiri
zS*Vl`iW5%GJ+*K>UEHz~O97P0p9Tz98{!cKmWfSM(UDE1SA4Vlf@KJyOKyR`bmf@@X->GM0`ZP@QnLT(DhTtoD3Y!(P5Q
zn9TQw?C_#yVl-@U9{>4iM%ih94A<>}ejD_3htF=IkopGQ;r&?S-c7(N1-!WKdTX~(
zYL&yf-j?jTGLc^IL`m{xjVG5jsP~@kg;`fy3}E7sO`u@ZZP3VFt+SfV;Iy%~zuN96
z6%RRl?Vp?k*4Y;zVN-m$aoG7>j&E;|)UR%~dP5mM*NM0$<-;D2e+Pr8F(3cj;(Wwm
zHKUNm0_GR*{Hpe)T=Vz3kCz&7q@-er1TW)+yzUkF7bkDotMrix`8bracoGCqyVMea
z2f=@&3oG~Q--%UX80L-x-Jh*g>NTr58}0`pS2^yD01MyY^UUR2Fs6!WxAB(zTtb2%
z8^!AT;;u)?Y78ksb);2eF`3gJiJeJoum;-=jH1SLSgp$AT+oQ~XPf4bNdQK;<>so^BBTQJ$#+0oE#9|YeVT>6}!>Re&qEkxrl
zIPHxTKQO!G3wqw#13?DrVSjOYt%YI+o6eIJ*SEzgzYX6byPc$y@Kk1SxgjZWg;{M$w_Vq`=UBz&&E
zs}x4v>w`%Ye<{K|;4tD?kq~_O9<<+}0ewKP`ODJ8q?V3D;X@GWji@1AR&T58S%NQ8
zRg!p9&?C8A5)HFK+YkL#E(XprwPH2!7s*&*NE@DctzX*y6W_+tSXs8UIdImRodyR7
zVf=`B>`8prTisCbN;*3`Z?O{uJg#@xdan81FTY&XDrR!c6&s*!ux#XOv;
zw~4@{RmEt&**)UU6K2?m_3^cDYxB4n-n6kL7CWN!*AVILkBHsD4k}T)QKhz&$%IK6kZ4w2NoQLzR
zSg(iEZrLIULTYf5rPt^CVCEBGcL3H-y@y!H8OH#V!b_ynH{$iEqx2xms8@muFm1tK
z+)Pbm!-i7?Gns6(D#LSCcmOlwbR86FZ@azJ<#tcNi&#qne|8vOC=QL(GdYpXSAc3?
zW#8SiH=45Z;XGTY-Scd*gV0YRV2e$ygsLUS`E043UkRCDinv=P!P=1Sd*Q`ub8V~Z
zxrznqd~{rabW`l!q$?LAv!{^K+0J
zeb@N1x*wNn&3|im5PY=WZ|`bmFJ-eBHn*@~_Ek#f+24lBUgxp9cPd#Fk)A>#2vrmdIb_+T!BRGRjU%@u+W~T!woW)7|LTDtsO*PQvmd)IcYL^qua8&e=t{m`{`#jOW
zpi1rUF|f)^e2~uIhur5I3%QOcvh8Zca=<1}H0>r-W)&lQDUgi3g=Ub=0pH!*gHnVZ
z?C9u#!=Msy*oNdIrtC7j1yQFC19ok;L@}R$NXT282h2W7EREd)xkb7O)*iY*I0Cl+
zdc*G>juYLLczP}0@NBVq=X|X-Sm?V@t=q-=%tpxX-@j?1F=^E{EdZz2KMAlR5g%06
zKR0|0M;GCx!MKx8VSww!lA-~5lSmm;WbinUeMVmHz1-^k*gaEq3yGs{4}Fkd9j2oM
z&SAm>-QV6fXDc`tjmluyK`_w^3`a5=?_)T?yD|?@Ih4sI(_JpVlFoLHlQJY_Np~<$
z7~G)`!tD$UCDQ5?xU>FD9)iDMIc>Nh9pmthPxzUCuhk!Sp=MN!pzIwh|Y%{D@JP?EX
zyU(eo-)wbp8d#^J>Dq-}7?kIS6PrUWAJC;g53k!q)~Kzm&oj#5TrvH5hxMME3rn5T
z>g#?qK2Hb{6wHt;Hn!|JeJp`c5|1pp%nyj?2e(eg=5MX{$@E%F9pC6FzUtQq`}PrA
zOlIg*=sku+L1%6H9QZ0(*V-
z^6+vw`_ry*G*c*rD9v)mjtV~Y#BM&eyYDJH^Jq#$+T(h*Qh2n{>ZO&Ciz`sy(ro)NiYsYiV@-L7r3+`J6_}pJDmw$OIIqtcA-DvQb
zrINKpQK{avIi9Lk_YZ&q2EYU_7hQQVJ72B|?DgN$mFrLlSf5$^)+Y%0%yy0vsb8ON
zl@d6taywpUN+-XY!d@_DA>JH}kEb#V_XuC!8#FkFR|>EWXL)reY@h9=bLhbDJw$$Z
zcXOPDhrQIIM+dMBtamAYr|lj5q?g+Xm!(?qXMlW2_xUdu@IY_N-)JYBOy|z+U{y+oTpAs=$F(r7DZ1Qp~X-eaa0mwJhUd&!qWKoMZnAA*E`JXZ#>b)hpLZst68RADz)GrBgs6r0RmY}WZ@E)
zr0K^di8l~V4T6=8M(G;Y8(p}^=wk&AaD3(JA2LlCpsaX9^U!URQ
z@Am@+n=UAzTf%YkW;llpZ;?Mn|$W
zRN;&8*h~Td+UkP{O>07v!b&oYCzH%GDOJqGLYkT4EwK&4L7kpc^%?n8ba2m|$U4I?
zY*Kxjii*`*4nX8jiT)uF{pKrM^gUkWnmZx~tkenA*BT2Hvgk1Q=-{ZL+WiOae+}V-{d7Fh_079|0SxSkccdI!5R8D5^4-OSI0AZ;3
z=j+lJ?|z4YC|n1_yLp*-GPBW~wY4?E_0pSz2{CRSmywT*M{hpLuxgef=UNr39X>XD
z$MfOnM{GC%fMqR|uK%{6^wR#`C2HL|k(!rRrd}e_o6hIsnbqWggfUxaanU0QFYjpQ
zbvV^MpqQc8;trQF&~k?_Q7sXP<5L@_VewF4Mf0Z5~-I-r~ByK1Az3M&6j2;
zD1?uiV#j8pGq_ynrsE|TpzGaXMz!L>Dm3z`h2AQEbSD=V}?h8&%%gZlw%t_ijw|R66Wx5X|W^R^*a{gWC9UeC&
z*BkpH^nGDyCUb|Zs2uT8TFi#F%S|1Q$s=gwk{N<-M0^Mog(_P;D(aPnts%K8ipkJ{
zV-1#n6eNr%+Sl8r%P<_a2NK7i7wusTB
zICzjj5>Iu7MHdDmx-9JDyny@V2c?fZ=2y4f{9w5HGVWDE6p9&jpX;qr#kVq4D(6Eu
zHj3p_HOkcTBfCDOoqb6?nk`ip#T8fxfkz~=M*9uzceI1Drof0)2_S1A=1kC&v$qkC
zl46FR?5)smWin_Bt56=&I*i*HH7Q2@5rM^Mz4%S6BXo!<2JIsS5EVeIc>y-W{=+Vrhjfte1?xPY8qW!iM
zx7{&feAQt7bdPt4qtxh}d{hfs#HYfmPinYrkt2Krbs`j9las&Jn%^LMq=p}jY{1NX
z@m6{ED~H1wCNaJ5=s?Y^aScGg20smfG9y&lzU;r{Dl&_Phb$6GiM&bYzaB72Jx^py
z<~Wk{XgA#h^&lu{^mC9soZ}E`D3SUC=%oGT@$quK*8^H_h*$ss;IYJd@R2K_
z5=c1+WdCGJE)$SR^@(N>6MxAMQOsq<=t-IGE0W7rBj}p^z#Ud}leXdNtnlLyeaXp`
z`(*(@^a~X_jOkRm_XH5T={4}Yj{Dj`cpQlhW}%czM^VmUU!N`LRHC*wLc@1wUCe=X
zFFM7P)J$DeQO*&yR$Ex8NRWN545`~*@C*$b9smtney7W8K?)7R%
zx;<3bDTN_|R?y;n6$q7rF5$7U>i!^|EC_pC@7|Sbsi;GksXSj|hj-am?hU152obYi
z+&$IX(wP*=pi$NiCsPaGrcaYY1NNCyx#I;6gA(qZc{suE4wF(o--h(Y7T~ip`8x?L_?l>ZKUdU|U3ewz|v
z4qkc!MCN&pt4$6N3;S~KkseCHgnnAUL5JDbQI@D7O9Jss?(ML4aA82nrNVt-qANZWs
z6#Ip}=eiAFb+j*n5+Hg*DG*@LNhuT-DOz8rRSPF&)7dB$DB8UqLQKP9Fa#kObgCNi
z9)@y-JFine*E=K78iBq)K*Qkle-RC32G>L%IzPls3SNVcW0njp={9@<70#*`VM%S7T+6
zIScpBV5t8x%EWjNUInL={z1mll0Tn6ox*HLWX<*YYhTz?LP!f5e7dwgIjSQIES>Q5
z&*c6^KOv+1-7sFODGLCz&glA^l;BGz&3OR5}C&1g`gH?_%Rx=7y`{`we09kR8<#vDb%w
z^#Bqm#Z1=TfdLsLI@Ms5cNc5osB;y`qz_ULM)J9&?VeIuqz>DMUePn7Jy*du*!nTV
zxqONX&AmHOUvq>@b!+oo-SEZ(pzS$n2IXF*qOm@;&uv9}v<{1ss>UR5qgNOeJ8t=l
z-UOJJm+rnyaqY?*3i)+7?l~?@WKY*Q?oA-!M_rnQlPc<0ja2hKpu;`CJcgPb!iUT@
zi5An%&lbtLou8J~TIc}}rq%6GJ9;0H&yWD6yk2hXd;2EzzY?pXi*mdnrq}3odQuvI
z4?@Bb%#M6K^O)S}I9OZ0>#!?(cw{Hag;h%Sw$0~blFB?v=53i1oPByLa_f}((E|X-!FN}?Q*)v3i@pH
z{JlZFLXX$G{GH$BSi>j^h9!msrzPH>4TK$}LWtLch2ZLlSQ~@k{bYTw_tNQ!_Ev5PpObdjfn$!CtHa
zf*s~iWJ0kjz+}4~PJspD4bZmBq8>|yZK3#i+#bd|eq2tvWP{7Qd686PjWU3SM*Biya9tkT%wq%nXnKSb~&tms5!c6C>GgH%A6T*Dlg#8AQ^%AZM7(z=Voj{i;?LB
zESlFR1W~8P{A{Xv=TNmUPDzlG`df=L==tgHB!8adTEOE*jOV`1tx}qKEuv+vY!(DM
z)FUIa5erm~XM3!*kn#>-)UBT|B=I{*Vaz{pKAn?g3#>bu$
zD->u7N3-4|8SzWIT4Cl}tyPNPqxnqT*(^-;OGFUh;t?Y6GiraI
zIP495K-fP?0RfO!Nca8};6WJlOE_Nee=LzpBNw8MwP_{M@RcnelKJ-S-yEKlU^9Qp
zuon65H!^26V>SfZ8wHqZb0T3+ZB@sy4G#uY^z8S8b^X}1X5(}0?A7h-u!B`xG%c)CnLU3LE-A9O5JWK8Fi}m^AavH$@PIhg^Uy{Uson6&?EX^zU9*gnsdGF!+SU5pX77
zOa3XR5JW&ZB%ccW9@Fv~t4uG_!Y-%Yj&G5R2r>Y^>mwsitge-QWPXL
zALe$cG*WSBvjRv{M$4m!8u&fp-r}uaqrxdwD`HPktxAomB^9E*tQ*nfmJ1z%K?~gw
zF!>>y=>BZ*NTu#q=*Q78eQ$06Z6B26aXU0UU*2K+fh0w)@^ka{pYhDg#;@zQF2WJN
zbZSM~ae2K#pWNIQ5-ZfHl+_C83_HMkF4k%f08$RHwa0T6F0W5Wg>ZpMvn^(kq=C>L
z9&3Q&vD<{0xcA5!HOc8MEqoLn!kNw9&RUj|Iutt>PVlU>ii@GLQfp2E1K;j&igw98!w00;X=#E=N~Qsrj-
z7SkpsF)%65x#zGg06&TwH9Z`z`}AFIg>O$WG)@-)|ub^blh`6uu@^>@q4;G
zY9%5Xd9%t>KbYXQ)vMGhRmwGJ|IA@mQU~UA4%Ln=SxUohJ>}fqE}+~*;I(;HZ@jed
z?V{8BkS-|shw|esCz}I2tNI>#xH#iU=P`#h}el2i{NXjN~JeJ&*uQBO2
zIX&+OG_$M5ibeas#ZqjU4k+-&>XnS?Y%PWpQri~E7#>`NfBUFVKQjfD{S2fG&{P@~
z|H}mc861K;d?4Tqsvn+l+x%0mWd{UtRh&SC<~3a)iSwP6t}hw8p}Pk@*$RkIkH;J?Adv2ARRP?dOtk$njSn)BvNI2hDiW~}
z!M@ln#9`{{+S-*KJx29q8n@-t2Xv#8Kff>5T0<*7(2WPdVSLGK^}IUv&{M=hMcRtseBXOYawg6P`6dY1u_gBbQm~*Jx0%QFM)r4WM6%sC>lfC7C
zxyDjLA@4=FY9mBUxF7a3#9t1{rLB-m#NfaJUeGj^mFK>Z-1t4g6b(Ua
z2*`8gMx5)rwn
z)E>|M45W1`--JtNwYfi1F9jA*n(jluORCeNX-gnHpxaLmBmw3ALxce@hKCo^2<>eJP2MP*(KbbpfQ)Bjy^%T
zA8yu!DwYF$Q-WwFs|4itU9i%VDx==bssKwi>p2=&dOmW=lRrDAED<8Ps^(%n@!;%`
zh+1-91L{!~egJ`C{6`N+oU+ChuA~e52|+{0i@9gnBlL1~<mJKj
z5JXqz;KN$%UupP;;Pi}>u2XBiB{0Tek9@Kw|8*GRIm}b2&0zAfQQ*xu6YExg>f1mJ
zA^kcW6|QNi@9Wc4a8M;6u^w6_`)Ak)lB9dM~~Kt@;q*~0B@Iqz1aW~oL^A;
z(qJp6lW5hG9`B8*xy?S`uB8SH?ji?b8rsVYwT%65;44
z<7OHnC0}gAu^2N9TK!+~OE7zH5?-G04)H_KG9pGadZw1T>6n9)y4)_le*G3*QTK?u
z>9JVj!Tt-pZ0~N0MS47q%jM*r(62|6(YPVD?5Bp)(m2vvqUYU7BqauU2-3~<{pULO
za3h(y<-u6uB)17mRGP{PcD`EM&F^mxJAG$=3SoZEPfRG;q0?y?{(wJL9ki-c2LRBT
z=Uos+Gmrr?d!sMc?BP6zVlv?AG~Y{zH=!n1!cl^LxX`H-P1N(a4llo0-*QDm%*0AC
zGQkjKE~Qbc(+o--gZ6v8Jt}N(hYCD=;bp%>Dwe55pr$%i**-keT0c<-@AbsR1#6pvIf`cx(N3m9vC+b%V+A7{5Kl+hAz?@SOA
zld=8maiWrLKNKhxo_NRf
z290U$oeW*vHkwWNS79f;bJse25PW|Mo3hIRS{{Fso**DmI6&=n52&nK#GUZjzBWzA
z{or)sAQ)}~=l=XV1fkA&AcEKEWf1}+Bc9?#B`G%i!r0h`
zJ_vdU2GhUl2;GW8X$9Q7^uJ(kqF^k7D(J~e#bop;ulVNlDWlX?dM*?*3&b3d*dIidZ~-0w%Ue&F!C>X}jlQSi5whS4{A
zpAvvKR?4QT--)fvm?v@A?xU1Ti9)BOGu?Y1NwHbTZ`XD<<=Rp!mVMs8vw5MHo3rFR
znM0}Nd?no+Hpz89VlPojYwh65v<5s*Tqf$wHLyS1Z+%
z^kdpY(9ir&tK9HpV1bmse9()0RU&I&R>kH9EqBVm1zA)m1)$`LW1%!Z1zl`(-re|6
z#2X^Q<4Q(@r@}s_exWW5P1o-hRH=-u5s-v$u|3_scW+PMM?8f=`c^iS98;M%X
zIh`n`ss9yCVfpav5{G6h47GsUF#glIx{$w}`&Z;u9&qvBTE~~!|D`mGTqkT}7T}fs
zy*cP39C~RzjllmS?wbB@Wuw@TFw+0-+Rp#&#ijqJ1OI0R{^uE3l-VWTY|b?l>2e~F
zsH&Dtq6v>4fABsfr=M}bUMXR
zE<%6+w|@a*$L89SG6=WhKlC~^m^?gg_j6C2^ubJ5Z?DfSNO%VmiH48zg;b0+dqb4N
zd;@Juv-v@bi;KQbw`d!`mtBD_M2CIrp9y9*Y$M?KsZvc$u}
z1&b1hZ_wx!x$jwX_A5tAY%^mFM)&y;5|BYdcgQDl>DQ*5N&JaB0ay)0JigB_X1&Xw
zEGCz5@wr`Ovlx+Og<>^&4+m@&Qo&{;Ev56@{5)uHCF7To4P_GSYiAhw
z*HJv`s|-JCg%OcM_xT*saaS}~ey%p1epw>qbJMDz!;8$wUTHL)Nce3P$z@;kOTXUx
zIYm)yc-mxTA8E>dx$XiSYG-YwvDQLKr~2zwRs7D!Sa^-#J$bC3b`}u=kMMJ43$W+$
ziA;mYeEgCT=*1dGHOt{y>^2dBf#MJAy@isIF{Webymx(9a>zOMhMa)<2vZ5-bi
zH&gs`RDfjvA;iT7j5W;L%h4=AJOSl@`4t?Nt6z5)Wu*d}oAtl%e?XF+8Rv+cYx#DQ
z-*EF^E}&E{xf~#24B$}7%^6nDcf(B*JVf+qwes1Vqnt|h>&2ghAH2{|RmyE4UZ8~4
zixk%K9Byz}P4GfqZjUfJa)loP3!#Hq?1y9u@sOKNU0DtN#hO}&lxDHM<qQz~ehoG3JeWiv*=Ixds;PV8j)ql`_I#^X5US)jL!&#p4_$-V9d)euG7ZDx(
zTl=X1W)2!qvcTM5AYJhb)l#0u@fJVi!)tx9@!1wmDfe}Bjh@>}dOYd`w<+}f?5|2A*>e;_h
zYr9W2x+Gs>n2n}*jlc0p$OpU~_FZfwky05q;6K}W1H82SmA=jA#(ZEdoF^=|tNQEX
z$dtmI)&u|9fHZ;I=?uF^L=qa=B8T0)?PEf)i4}i^+jp_1ygZV~x67+u-S8LrE@6mfA*raeg3>r)Jo#jTivQx$
z|6hG!$p7rm|3}~)94#@Vd~>xk2)G^~??`Jh5Cw=Yl3=T|CUb=gKLRp1Qb6hF>gxIr
zo|cixPY@TI0PK}=7SGXXo8N^&DYxDF<`|%g2iP~#_^NH7DSE96fSq(*s@bE{sxY;&
zp@02`(@+3tS&NmjKf`^2@}K~qxeSgt<=~UY)wZOF$oDM|FRxHYxb5;ufXt>~VVSy|
zNd>%Vd;8tn-$dDR{fW$O<4mRDJ0KI;>RNjI{`re1NH_s6c-t1jq%1Bf~0SMmm+is%mS;lj*UMCvt`DIKF?}jsI)xjZnCW
zs(katM69Oy)2S4X0S&^>Nxe>AaZ8@f@l0-8TU$U1%MM$KE&k`1j%KAnaIDcT#n&(_
z#?Jwea7npKHD-x#TnUu&4Gufd-U?7v0Rn&PdMHlw6HH#~tmolvfkrcEEYyl*ssTwX
zAnp7SNGRwj@v45d>z@>U355O#KG4EzYn4D&LW->OW79H_)*;|`{R%LPnziPN!^a@(
z>wk(sRYGUy-{44SQ|LZ90_xT610ZD25%j{MRw8godwtHH7tWu*J)9Qzp<=mg*Ty!e
zvs4ASQe4BR0HiaU*+?GO&R{IF4(+=b5!_$%)-siNQ%RyJM3cqm^7-`!Ad`W0(#&o4
zd5%e4K*>bXYr1rqmw0=5q_`gZfb{3M_}z~*_HQ5tCwT}M#_tzUBjE)rO-)T2KQ&aF
zJx>=MdOLxB*8ye7Ba=XNeOTaXvy*&=0N|>o^2Mhz@~D7h($6p50moit9uMbh{tz&K
zO9plZ?gnFXN$i2D0J&7AWFa5V_Ba$G0g)^q7X}#Lox|xuLPA2|djtfG`-Z-Mcn385
zoObIBfSN^a6JXV|d7bv3?ri=q?*1~W>ag7d22mPmBm_h{rMpBxN|a6kk(4f_OS&5b
zq`Ol>Y3VNM6lsudM48LyIp?f-XU)g?G+$gx(Jk!#zpwb!&2O_1j8BJQIFQ7tI$5m#
zc+PWXanZ9UGHq$;^~Hhv?98(dt1QadouC2&nW8Ny{wJvXe0`NZ05%*Q1&4r6Ar;Aa
z5QMhiXu!;o;)565T3K1y-o9GtKz#;4$pR2M)TU?c1u)HK8Y{hg{rdHjCsEnYLP!}D
ztm1L@Gx%*Oy5dl7y8$tZA{RV{ffKw4*{7#A7su=JxkDYR!$T?c9-f{AbkF12^j;}7
zx!9W+p$EX(%n*F%bo3$YhTBS_``*zncsSFZ0U}j
zxuAT*vlqGwFAV>k5D+6j-va%dmYTZehYdnTJO(I{4OX)%>j#9)YW~B~l;XbdZWQJW
z#nP1|b)!H>+TL&ik=Kx0eYtu`{t`arKl2B$3cFWfNCE)R3isv*yTVC!KmTR#+*+)=
zSU=LYyxeLspwaJ%Cul>py)l8TknsdY9^^oKiH~VqCe>Nj#%S4lfUvS^TV8oGeXAb}eMv#EU6pT^9TY2J=_sne`T?@koav_u5n
zPnM#xU2ITqu3ZF`WT%%i1_&%4@t8$dXZU{_Oy;H{4pl*_wOeec1-w`@^nSV6f(Z!0
z+z3IBxfVgjUl=x){gX?oKfWm5XkAoL`ULGIJAhHrH1?poL;eLZH-RZB%gwt~+FIKG
zPQcZ>%G%FXWk{lex42g)o0^eSm+i@v&*T_UBs!RsvypV!LSqpL{=(x4#&hOvr(>)S
zpjG)4)y;~6Lt%9)k~;}BddV^YhOP8+%b!lpwQXomlFR8LuKjSP?My)gs^8)f$gnb&
zBNJ+v56+N*Lgk!^x1HD7(-r#DrP``vSU@TzGpTNXs0^yqBe58--WHiCiV#8;@b!bm
ziBOQ_stnX;P!LvL%v6fkqtCzt6(2o{^@AEW^iEAY95fm_psEP)Z{b5+v6-thXjY=n
zDq|v50BZ#)pA|wMh0qG9)A9UVB=OMD&_2{Z8+(CUs+1-1rNMrco@zhG_)yg2(oTws
zv%k#;5guEH$QV$BHc(kJMwkqIlo#q5m^@x*8B7zFY05Xf*w-u3yseDubbZiaX0JLi
z4DYI>lI}-Co~U5*{+%+N`m7oj26)S$ZsF<18he^U!H3@l60tH=#F=dpsT2L%{{C7N
zuH8r)_r)Tcx=300cRu!S{rq+$lp9F!K=Vf}q_XZm2m9j6O$PolBsWu{YC^|LhT;dT
zztvI`a%{PS`N3-jsXm{bY%>8M4FX)30P~JzXlIhX-v0g;BnhbkM^McVKTCxXJy&xh
zjm%Ybc;9FXz7@SOJIXt^7a9ADPoVn#xjgy~8caIvr$Ou{GnHAf=9CyEtbgDn5xwi^
zk7vTFRbsvH{(JM)`_}8Z>;6pD;@FsSEV5_sLi?HjAspB;r7U0CM*H|%g(QyGrLoMf
zn@DPe&+_)>of%27MY!!ELyXL5MrY&SfL_#p0};8Suo&?hd=E<7(9G~0Bj&;hS?U~@V53xT13KoDJ+S^rv>vm&IDpj&I}P`G1^fULF|F^dlM{;}sni^YrZ=xpA_ZlT_G85$4^DKXL!j2vi=vay?n
z=vXpJjZUoVB-J3+ex=F=LP?7q6=0So#Gq4Uy~wtluZzI_ME5ln9^(QeohFx%-WInx
z5@VZn0sEh{J7$x@Pmz#4o&7QyI~Drxu08CczOizH(r?)I;ZFaEbOb2|mW*7nN)o(B
zr_pN{lazHJ-e&%$bXkEuY;hT=6i%O6?
z+uO&i@vjAQY#?yfz+2z1DE0Up+~@8tKUkD*<(s`f1oi0UaDuVzu7d^C(;peh|D1pi
zxHBJuwL=vhp}=2AWI=o<13FNw`9wuJ5}Y071!SmWfzJ`r#Bacy7l;4&?eHVM3i(f`
zjY|%@Q>=0tgA;dvwgRAI`X%K*8=V=0!cBvzTudvSD?t;?iA`RAUfq!M+dP&iE_g_~
z4!zqVpjaiZf2RbJe=N#u&vtk>9uESl;(xsfy5%mPt1iMFwW4EDedy)yoSikjm`mF4
zM=WOdQ^PUsUB-r$LuczHpI@!;s~R&y2T~9ApSf-)JX+Uy^q@8}6jy-uK_?&l==OKr
zE2wsk&legm{C2>~VlpWm29Fa|{~0U>94KJkCC0K07~Fzj*N
z$+e5vL&dnyn8{y+^VJ3v0YTV%pZkMPpwr-+P@B!ymCX%hKdy{f7$en6ffI_FGY$OOQ5Kga_Pf7r9Fd_wuL-8
z@E7W>-(uzi3LImlqKA2WLyyb##i3CB^YIM^&(~UNZVWbTdobRd?M};AlgSLG-4i$Y
zPcGe6N*2TBGBpU8Espj(L*n{%YYn?vY_cGOry`x(3DjzE(1Ta+A|K0td}C?(*5!CO
z?GYc=$#1-~JeepD+Ru0;gF_+b;FpbX$rOi?K7TFfmD@b38
zg7>nN%|p&9AABobz~I2VqNZTl8=Ym)fwJ=^*m`T!;P%f&#+datOyzs0v85P0$fNE!
zr3D2A#wal~WV4f%JPSo*(zm%r!p
zzf?dF)%f#$`Xc$1AW2nsyy8x1MztUEL;`%0#E-S?z<(I~s|-K#q1;lX!XNf`%whkw
z0&m{awVQWP@U#T~nPijpR9id*&q}Dm?lWbR!?5%An{PmD(>1k0yZ^Xi&TB`+AzJWB
zR=uQjLgGWEeIgZl5LXT6nTPW{8%_8%&@+`}yCcX-URP4}S*#qc(9rrhK7klE-u=Q~
z&%;;Yfn(Eed7-H1fA@Q}NeQ^NnBEp^l)3FM%z}tx+nfo$*X0Jsl3cl+iREQMKYYIT
z1tQ-26@Qayp%CB!RP_W4<|L|7Kgc}2VJ;#|IDM1S6gXmUb8<9iyyRAbv
zSNGyGU=ZWOjDrUTG}4R*BHya6|FB}%g%^4=+rGa#KS{VI;d7|^ktG+`4Q_hn+(9rT
z5wpLhhEWNuJ08~)7dz_CXg^~u#%|!Vn^a8?cSC{x$>sEmWJ|t38D@y~yl7GPb6E42
z8XU>?AD(Q!q_X~}o4h7|;&BPza;UnT?>~XYnfxdncpO1WYH0s=so7n>;$uGd>RjE1261Is!*eGhG0g(9|x)!D0Zu`}sdfE-d@p>dcEfpFm6qMn{RSYX2sr
z4G;Z~O8>aqq0r^c+U}QC@y#=G0CYKQ2
zZvK%-nlb{Z4rGX!K@pq8T#vLUM#JgFApds@a+-QpKha@lQ%Pr8$Ct
zh37){roYdv4Qo|k{!18aA2EV{wuDb=a@P?#${G&YqbDAP(2mjzr^@w&kM=2DI^1CR
zJ=cV`g}q#)+5;Bd=FCt)(>q;aW^B+IyaEvcT&-U)
z{|(dNd5IBkW|ou|a^A-@krR%>fa*yY%1QFXBgt+04)O^Li|Js}e;}^Ev{rkM=Svd+
zHj$#13e9aIydN5*j3sk@G?^hyyp}5JuAqnzP>2zBN&GP53=Ahrk}q6M7?5m&QwZo^
zjOsk4?sJp9{rd;-B2;q-}meY8B*`%OA%#i@gaQD{7WJzAFa%fJnTwQO~5
zEjMeWS8%ALsU819-QiBvzXt3^EzE;dXaG4q_y?V8J${%H=ptZnovqHp{j`#+a$ZYN
zp{3sGhWBDND$8P$xu3$sP5^d*P!qsjU=qa>Q-16gz}`neXp(a0G5|I#jKoNlc4`rP
z(9r@~lj?T51#X!bRZ%RN1+b?u#5P&_8c5OHvs=(s(+zBLzrcRLsrFn-+IJ{NB28#{
zvp~IEcXq3Ju;TH50#>~RPuHTCM;qoE1>Xu4es
zA%LCoRjsLYI0+{$HNok6*!=ncc#~hoGsYP2={h=#!Lt`az&2ZLy8FE%;}rExjq9zW
z2>juXJ8y}J69KHKc>P)98X0MxNxKsqv&+q%DNOH7JLCa4Q{rdVE1qFqf0rm92`S(=W`9mRa
zN%W-3ri*$1JzN2pw{QqXWZ5;cf{|2;(F%Q7`|7ObApwv)wrYJ=8I*aZRdc?}MJd^muzFY6y|`wtc#Ewl$~r;5B#$I?BBi~*FaP_y-kmuY`|-`Sen_9GNY
zTX_B^@!QJNglVKA)vAq|wnyIdjv7?Bw?qPj;IN@6zp^YbSF`Q3zqI<}2kw&_+sXs~
z%qgw0R$sAJHOVSf-(QVh9o_IG3inFbX*o!2%#j^1{x_~@Q#)X>t5d
zICBaejZe5@`4$DU>-$FFzP8`XKOT$KO=%xjkc+w~M)!dgI-iGpugUC!@SDQ2UX{ny
z`amM@U4O$>&VtqJD}gXB8RiNTFWqE)+X0g6zQJ#
z+uxmcCT6#2>!C~t94vePni&IdWTI5vay1Z(m|Zs*kJ}VL-Tsd(^+vzXVHsYyIDM?q
z^yQ}^{^j*GTawrT;B;Sv8-Bqs&2K)gCh(KJ@oR`RBG5tj>|RY}I&}+YhrLiCbKy2hs4o`$$O2Y!yu+vGz!pCB8xsnXhx9)
zpX1-DvJ}WcBNuhh%2oP$wgi>fdY&0SgXXP*+RKeWZMz%5tRW_bY8|YyFVcmqp-2gI
zUxD6!sz_Dy#T_ngntY2rcwrZ!AKH$M@6k0uMhU*3=>^wg*=oWCH7U#ZI%P`Qhhk1v
z-}5617vhUl)XQGgIwTbLtIKw{Hb3E-o3Pl>r)p^^UQgr0CEr}+j#)$-{~gQX@{tb;t|;x9GE
zeTGNxbLCR%EG8|WsVEgZxD%})5`y-Iggdv-^Y^)4lgr9@SJ;+sbPNF1|BUE>lZ(20
zWWZqUdIFZ1N1_hKFaiC10fp_f0WVC5&ZnWwX6B3eN;~p=y|pBpbku|08fP44;(*5#
z>hF%J&Cdz*DTH_-a7(YwxDTAeO4yK})twAaGcz|~Em^L#I|ocx0jqC>b>!WR`ri9Z
z$krX>c7>5u+FesXxs3DZ+;tfcSLZ7~HBd^7Qba@4Z*gXR`!p
zMGhvRImr*%siv?*1)pX3{Q2GLf(K*``e}i?(}8qPnQr^cLXo69=B8vI_U^QI+dHw=
ze`!1f{NZb39YOH@`5?UiyYMxc+w>^{BvP@{rf+}G*I?8Em*3+ds>*pT5H6y
z)_q2nej&<<>2X>3xm=t&goHEu%l#)FNFKBaZ|dy6-Nl^$XLdQY+c@1G%aQ)X(KdOH8?(_{&yEvrsd^{X>dl7zQINj~x<;lj?_zA9aBJ9}ed
z*3p-NV1J@CV7(>N3DddjJtDv}8{`WVdRu5KX1osD$W&-BTHjvS
z@YV5k$;Y={K}gj8?B{tkL9(IXqE}?2t;-N?jJNkQZ@}$*2kXdeW|WHBHUDq6@?8GY
zBq-J7FG(MAyU6l*8%T_FSWcSW9gQR=tlE-FW&5_CH
zlch^nAK{96{qk#&=3mN_-~2#)M@cYSCXDFVi9L)oj?t}r}l5|bZ&zRFzC
z!DH$E_fS1DAxNixnKD(VaR$~R&+GHgwY33Nxa}A(oQ--Sh@E)DTMm=0W}CjsYyO$M
zA!#1Zmk*-4bKTZ-bNK=vSiI_(h
zHW_+V3!@{dlqE#}L6DF?tDu+fC7OQy>pyjSb0K6|EJ0cu8ykVbC}e&HrkpMU0s?5N
z$+QPAaA}dneVCLoGi7s0&;FX0y{c;*O=ZU_?O`YESESx(rvff
zb?U<^{t*(#@TO|%vpcZ@=m1`k2%oGC=cGFqAmCw*qj#DpTLQKY<67kx9;55`xz<0|
z`W|o@->(n6tOX!1$?7FxbB&iF1Z3X!Kh=4T;tt^&n0{P|9x`6-4-0+>jhKr+$bbnwLKbjut*sSHjU
zB*iMHga`T7C;1UBSnrp+v<>U(uE5+zJP+=$exEh5;u5Dt&lP)kxP`4wDP+!?TX4^(-Y!xpfj#?9ouJlA*$>4^pW&ENVj|o7)yN1
zEAbq0i+a>%7ak$DzVP9x@g*&;#Y3Lhh#*D)qPB=Kv3bo#Gd1>ve7LseB^N5PsSo3`
z%K!ZNlV$U548xje`Do2Vux&6h5w|2Lojf~guRgIVlURY~;4DNOdwI)%GduT1@=kle
zz3BT#cyXSvCQXJ8bxS87-?7(zC>A(lHT!w>2Xx8HKr060meSd3Chrj@#kHAQ%K{;V
zvyIlT4!d_jnlYM9A`y7qa&^28Pa?jwWGHL##lbrvw^KCiV)cr0eg-9NBH#9_3SB|+
zr%BieMK{u8<&ChG?Ay=PyAEjJY0*lGM&)_9F3$U4KNO+$lIZLiP1j_*v-wBpp6AUa
z`m>tLXJO@W$xY4g13Pl7e^i6Qz-7g5)cZ%<^8^+$dYt0>JXqngc4R;IN6ETaggG4U
zDF)xZ^Tzv{v7m;FPxMkXfZS?@gs4GWex5%-J(V>
zf4H<6GmW%3ncdt$lY2!RBORlxy)h>n$6;F0zekd3VvnfKLhj@Hu93y#cd!fD&^@iQ
zYLLO_n(_-;p0B(5pQmt|EsckWNyQkCngZEt&Y8z>R4+BZ(jEkIje>k3;av|m;ktu1=T-WbJbdeZ6OqOD55|1i
zv03k+`W&=qT}QKFWrZv|FiDxU_mg@-`BQqA
zv*WxmR;7n6FW1oQF{vcoOQ^Me4t!)mCAb9W0J!y~a>*b-8j~?nujV}n(SlpIL~XuJ
zJ*9-!`YxnO(~>H4Ief5A5opvjZt
ze*ZWI1xAL41Oh*eEDP?T-{N-)C$9Fer;6c_33`Q|rU*Uag6G&gu)O36crE#O5OHvD
zzU4-B>_VQWz#QBEf{9-Dc@q0g%}R2zRfik8ee1QTf{}Zntf_O8zZQt#g1;i6
z>{vwu=T)dx6nlCPH)V1Qoh9_^SZY~@*ONe{T-(;a$QVSrHFi|tzI(8A&lJ6b_7@)L
zzeWt}OK?i7jkJ%`;x|)4vo-`RJ5F+JvM1DzI}-^&cMcrkjy+Fc!Mr9?5VVYMXjb1u&Qv7poG6LYl)vUPB~ufx>=qzo4h{$y~0n
zLI|lMX1Bl}La@@m+*ph0aw7|dK>g>HuIP0c{H&BSH|BF5r(TVVDiBd8JO_~kr4TptmK2?zkJhGb(TKdv~yMT|xig+c>4KlwsQbNPP
z$O>m^+q!o`F=#&Uv0`hg85I`G>X`|?OhB$Bd}G?pJ_>w#{5;EPvFvp%zOTd)KHc@{
zF0fjpIn|oUTn)&CBvG7(?U^LE^Djs^y*oNqBgc{u5fKeq{rlc^^Vfu;B
zd7W%vAqCs7!lhJC9!lNO*@o>MzyG6}mPLfk;T!k>*l*O1f2%CAeJxVVW~7}pWYvx=
z3TM1CQS0>g#??%~>>~k#BB1US>4_a%`Ze|ILhdwAFS;y#UF)Ba1y$@p|4&dV1jf6RwM&tl*5
zs~5c@%%%-|s(PTV)oPQLn}VjSS&bB?QmE%#Z{xL?tws}=`qjaJ(%EUL)oEy_U%iBJ
z^JHUkh!PT&i`;G-VAl(|B7-f4P~P!q8J2!|h(+t@Ro3VDhEd{LXEhr}$R6p}c5wib
zKiYf+!P_tV(?ECO&8ShO=wE`|J=QDUhN=t$Pyg4d6;nRfv8b1Nnd`!s90v?>wYPO<
zf5SMLH2x6pjbq<|Wg^B)?PQ^1EBr2?K>R|QtXefCgB(qa)Qs*H;#ZTvmb`9y+M<-i
zzqYQ3j!#>tUQ$OZZ<{|Hb}PZA`_<635;>bqy{aG0Tlrp*#5AF$dA0H6%T1kTiv&0Q
zC%kr1nGsa0{X86!0Z7y?3CsXFvQ)vSl=`P2Lx=>o>=aY@ujs
zU3NyQ?9JCfb(x1B4_iR^Vr$9~#(Qa7hM(e?{c78Z`l~p&GCtXK-!4}u=(&0If(5KcD^6m9Z2;Rs&*B{eq=onmLfq*`TeM3BI@+gw;
z2>Vb`g#Ruv4K$X`?$Z&w(_oT}I+18<^Oho6^lVK?U}B+vkrkb+)LvfB5c5qsBBih(
z7&I{RJw2P{K|M`h-%XXiM$UNy<)<^R;sV2k$^y0a!vu5QTb_VGXPM+yw?EIBboLrp
z)Sg}ZMM}CJPJQADNq}r=LLp3#D%R$R!DJNdtewfxh4A=;xDZIQahjSzE)sV8y1~VM
zeyZ$c3eVD!wS*XwS!dw*QvHZrEJLk4z1_P;+P;*GhK2^}VIb#!2!)c~uVrq{DXY`VEhS?$qeL~L3JR0xWl{zt3!EqcGtBae6K
zDbYfkofCp2k}-4GQr~bJ)=V7}kCv$ky0krTwBHy^2DpGi&_k=d8bOutp_TdWQEdVW
z5+g?7c&rpUkNMnvLX42}tr!|JbF*mfbx&LO^Bub9gX0APGtA#h?usNucL21_?Xfkg
zTA-_p4JE!rzoLAm6f;%KS>wGf0FZ4X4#y345hpp)k-81WeS@~Y(Z~$7iUG&oohjm0
zP)Oxi8X3VcWEn@$BmU?})ud6OOc2uKxvP;loCaszXX1Q+Qk4f~Oyuw;n`A7SvN-!Z
z<_MA)WtXq%)~6)$kmgF-hPLA|Zv$jryuW`(3}cF#`3t4L0EN|S-@VORcRpkn2|Jqj
zzR>jn*h%PLlM!0^Vb+Nj0tg$+Bdo)XSjahdSQA$!@+`384wiN+1kj)zCaSS^;{K-r
zB-wpz;r_iERF8ip{B>u4>8q;DS#p?Do#Vnii&Rb|XMpq6d3Ecm}YbU;N
zz8Z+!nn8U>+^lq!IIb;qB^OtM9c>wz3Z3u_Vo6#v@9Cs
z^PJOvyB43gzWFfbh4p|s1Ca&dW7tKdZiWWNlP_N5p>+oN=b&A=*q}vWPF3MbYcInR*LNN
z^u^_6+s{4b8Iase`L1Ks4WP9ud!Ii*q&c~bIMMdSEgC~`R$NzV8xBd`?W%?ySb^e2Oe$RQ$+YP
zrODj!Zwa#1L4@CxA}V=vKc$$fd8656moN7b$U@>6Sfcoz4T2OQ#MfG>qTEG9*)urT
zqbn3ZZr@<@)27QtGY7M5v%*-;7otyKX8o5;h|lWZ9vDH&!gBp1gp}98e?}e0+-9~q
z;g~4x>K-v<&Y?UUt2U7zyZX^OX*uzfEf8zWRV3a^ZnVPo(S3n*%RU}xZy0r|AA{D4s
zaeqfLyl+nXCfJ^GNJ-}VY-BDmO+qsjs_p|4(g;Ws!}+r
zQ8=jxF1SCFE``gzTy9^}IP9^K2gENFJCe!29kD17G)77x?t7+hFxG)gbJrMChhTSz
zhhq|^`K>RouSt%QS@MX4#ah!-d5sUj#B$YGsn)l$Z$V4j8EL)$v6iX>dL;VlIcxKDIl$OcfonlJNk4T|^U6R4bXMTtS-JUyGO5V(LW(mE?`f
z(c?4;Ij{fu7h0kVF8_12&9RKpb~mDj;{PLX;s5vA0HEfn=v_c${|#}Njg1Yu%Ijv+
zGC^->4_+YY1SbRhnxlE}2`N}Yau
z`0xR7__t!ZfIX4LyE|IzXKfClTQ)i?W1SKH$S{FsNb!@q{e_yyI1T*l@ws<@><0%zamKig@_2i6YVB|PL8RTN`KeA=F
zy@88isxHxW=)EAylhV3%LOWNf_Ejyw)pBAzBgA3K5_HzjUILCeS|g#1$D0u?YJbb+
zEg^Fq_kMe>_I>j0AZ99;$@7}%e~i3;G_E*2fvx1d`4C`s)2#aV*F*9t+Zi;ST0cKO
z0YtL%PW08F{{%WCG3Am--!pxY@w&*tBz$zE=llOs@Q-@`zfthE9cES0t%*vmS`u`z
z-l!cmYl>U4=v3Z#pj*xHxV9h0(OnVGZ(hmpeOC(C>ue95UgioGFwU4$Wf1WDlh&z|v
zl5(G1^aO4L9DUJ)H2=rTU%m>am5cjn0S5t#-Mj`jcOkn-W{y?FI6}KZYcPak2F2V<
z?Jf_MDsQmZE1o;j!q%kx_+SkCcBtI`AeCR_K`8e-Uu$$I5F0#%dqG`;-RCEYsbhwi
z`Dd@jBa-6q_UH>dg>!f#Q%Jkbi^;}D?R>4XW7oBKlu&fsWII49$a_~yO*@cI4sGn8
zVgU6|i;e4U2m$2sZI6{C_M{2J^&g&|o&aY(G3!-YE>N5<(+QIYqQ6|b#0jvH`z$oq
zql5#AkA$60ed?V-A2INe6%<|ENreVc3$3<~hG~icdAFTydQj)Ig-FPv4yncS@F#W~
z{p$k{xJ^r!D-E(F0uthX{@vbgcWS80sGG-Zv~tk9VH>y7FPr>XQq^krBfBLymi7zI+turr
zuRpsH;(w5bD**^yZO5t;Kv#wq6&|c%@YXi!xCo|1;5aZpgZG5HpxHg%%pL{H=qNit
zV5ZvSb4kfCqH2poz*?WGY`)w_k+0pP*Cd>VTY8?yry+511fO^?ivQoV4uk=LNR)pH
z8~-bF&^C%qS^oX^?%@A=1U|pLM>Htre*QT7Igo3>UZ?Q=d37)LaW(mWxpK3?F91DG
z_Nx~&-+DeG`C{1Ru%DSSNZ8L_N&kH#}vp&Z>x-Y*z}zmcUSP3RA?7z>uqsJb88kGozjII
zpI`PIF8`NRmu2_jenh0ouW})n(-V1ibd*fVo}I*L$u~?n=VHHl_K4$6?~iYXbCb5C
znT{!Su{R5>+SOVUdY@{{K?)hzO#n(3d7aQKG;fhuZ|gC*gs|
z!4a_}vC-Aj!z01b+Y@qBvcae7B!RMph=i=y>a^I=f#~u891=5D=iWl2mVMG8nP#_}uheLQMb0EvxBFVGiP|0@R&x7r*@la!{^k^Iyt!1?z47bIRVaazqc5I(^1cqCvj
zzGf}#G^|tk6eIt=pETwploc9qZ^NiCUv1r(uH?0PjWzN+ov{S2T}9HVd$Yd)I5xY*
zOyN=Y%amPyv)~ERr5d*gQec&&UQ^42P88^S+aCk3D)8C+_Q}y_gB~Vgxgm@H;s157(-J8!p<;|oE4uzMJ4f!q7XFXIRKDL
zU52HP#RPO-k0YgOR%llp)Po<)wBAChdRJKD2hvKQ)u{w9qK6e8&Pk3v%Wuqc|Q%`=Sd_P~l_1Ku5Ug!T7V$0oo}_NK5uLJEULexcP{
zUsoard`^g@cI*A>qe;I{_wJQtNqx=-K?3iq$FWT%DnaLaaFj*ehZoWsFBTdcE#d0m
zpY|z&MnZG{a-TE1>p^C4u{Tv4R`*hq#+sNd^5|6CaC?e>LjCwkN#H
zayJJgCp8c59O_fuY#R)BWINKRXCM+He;r5_3?tw3gG=Uc_x6PAp}vqGQX@RX>r~S9
zeHzm528hL4(f5xql`)$X%MmcVNas99!4&xv
zM01{ez5gzq1eI
zNj1^aJ+_N2l3J_dZ)Kx6Dsj-=Av%|gv$EE5xkX{o?Gn9X2WG27^RaBYUoCo#jxy6x
zcT9m&hTTpIA-qMk;Kgt(?{3XDw|}!8q!22ZFDxv)p$wwuFzGkOqySw2i;_|z0!ar<
z%BWP1|HI=OV4{2tBWC-NA53LgXGKEx%Q%yFMOpxNR-FCdWNQqP()@=Mqd=YYQy4tr
zN5()oHGr~Bn8KOTN1Xgc3fn_}ku?(tMWK!%o2uvuUUwT;m&L)whS4kV$l*A?hyz7l
z$WNc+q?MCTlG+DLXEqyQyjTdKQ)A1gU6y^6QAbBu_!*jeE@K{O%E<*CW)AZ?jk<3t
zthCX3($mx1*P>Pyw22Hk)+7U;=Cw`TlWUL&2sKm@UYmni_xT}i-CUg|Y6_!8?#ubQ
zP(h75*9n!X?d5`IKRyt!vDtlpK#!Ph0A~1jGx6r@Gf&Tq>=uiO!emhy>}}%AUz$^J
zqYvq1vBZp2js#JsFRC$?4T}L%Kq1ly)lI0`ty@f{xI!EmSf_K|tqq27j~Q*5c1nd`
zF1m#>E9nOOyK%7a{q+P>mHQc3kh3V-&M|!y@x!JYogWFioz^g^=8q&9XgxL?RHc8}
z{%z)np!4LeJI8*c237~3hk#kCVTXNc62}sYEq%xz{2{Fp+dpX|^DHDtK7_bnEouBIr#}0a-Oy3mE4j
zh_D~ji~FG*Y9jS#dgQ-M^A!VvO2X>rLZf2Fzk3Y5Kk%gpD^i5LYIKr+ipm9Qw)=mx
z>ExB|zmVR8eY&{trRZZNDV{lm=WVI7_rssqlXjsA&Zs@Yhuo+eWPV=&XHe3PQ3`O?
zT0l30Rspaz-v*|`^d0+0Y+Pgb%y
z`~tD4);s7JV~uOb#&%_g%(Foj{7oR>Z_}%@oy*xKDS4!}J3K5M4=Sn17;EKm?BSwE
z;z|DZGj?4O8DIuE^W=Swqh6HQ`|jc@u}
zBIjeCVy@I1w84!YSkWwr9yw_{Xkmh>A;a$KkIJf%CpeNDTs*6&8k6=-lL2UPnwg5yXWVfy_xdQlKeK~&&&iiDxLO7
zW32kDc>0OZ137%e@u(*tMfCgI-ZwjcM9`8M6knrZ7*069YeeFdu=*9~gS$LR#YqlW
zv{p4P52guyVBtNSDBUc=50+rMe@Ub?6v=qjCIZNKg@j~QpEZBB~Q-B7!%PnU7Uy@so&BVxQwg4)uaYJwg@XnF|p8H+Zc2t}n52
zJ8r7uAudI~8p>R~KX-xR>Xn4lJuHS!tvM7Pj?IwoEYcBAkgRpSc>l@x9aaLG&=m#;
z>j_aaFX{M?(X?{oj~#-dLZb)C9-mr}H+-ik@Jy+@hfIe4TBlup5yq7va1mw~uBPOZj6
z#bm4;m`!e1D%uJbUk;R#Z~NKw>o6Olljy4~H;0!zub3wn?kA>=-&il{)@
z(Uor?7I2e2?oNXMF0&6`@p3ZHF)(=NOu|mI9oqbr2TmVrmd;Z7%cah
zbxDqaQQ6GA_fW{C68L{Q`2-2=G!a)omt#RmYxwNNx%CH}2i}((Z(`Kv4=~Dp>^0U4
zx4s;@dv!u=_rlD$LmN*Zpg4Q%!^4Ox6l6U0h%2xZ7*fe>Jl2kn!xcSpp7`~T*yokF
z%YNmwlgA!Pb(Jnsw*C$AAWb;EI1X#m*O+3bMy}co!3WcV(Bp$0+OxlWdomw_(0t=z
z$t51n2wEo*JNsMiv(%C8NrRjt93pjDCFkzGeI0ajbzGuoI*^WqjRdU!(f6CF@jtfE!%
zcwTxDlS)KbwTE{TST(W#mH_Vxe)49$AZ)-+;{KJASjq51aS8{@#-J(T>CTVhZa?FH
zvW_jqqqyN&O@h?>i`(R%su819CauEgqBbyvM3Qpe?N9*@9u
z#Xal9EC=O0gquiTzeU5GDEnLdx;bzx+0o78x|Dm*dvsyD_kRChO$+DH?xI_q=WYn;GZn)z&W9|6pN+6%$bV$>BcE#0R$XU)mJPRjfk4|0U-{?FIwHHf86X;_u8I>lAGu6Gj^rQAK3x-R>Ewi^I!HTq*+cC)8R>kL&RAp
z+P~qZK8y-ApPh+EmUcwKM_&-
zuS@jx{zU!;swBRU^@woLExt8%iE&s^#x&i?)T<-mU2bwklzYE$iLP3pC?iX<_%e?{
z+!u*SHP4s#wC&DfJOj!3A?vedP?0aTI1Z$KwP@Xvn$!1fzy7menE#!1a*hGZUlrMB
zS*Lt6m?=O&=_4+ne+X5Q(m!cKBJy7H_pM#mclBFz-c%{2;tDtol8Bfsx}U-|f!YuP
ze^#FD*cDD#B0pVjIaQ_@$Hyu`@#MWM2HqThHJX98nDc(=^_mI)B9f+wVewU&UL##+
zR7FZ2QT1I-ijQzGI%FlnogT$1*~~LCzN>4+v6tTOdv_a4FHcnc&G4)^Vbm@(k#Vd*
zzZG(UlN{dPc<`$f*eo)A&tE<}bU7ca2dQz%ROwI}L)87}NIGuz>!MTT%U^6PY%S&G
z73}_{$(B@~2=7
z|8Cgh3kmo;{Z#6Q75!eU2iAl;P;EtDq3I|oIq%Q>m1kX;T?=i~i=Sk=%Wf2=gHQhg
zi2>o&z_sJ<#O6>cAC0l)*azf&&G)44)oXnb3I})*Nc2u5`rcm_3lv>XcF6BTttFht
zWZvweC6X6czBe!KpyR+vv`K9t
zDiz7{&LZ)k6`Ub)tK2%r0is8b9`#8~;DqH_x0%sWN$24B+-1*~2kk=I9B3CJo_wI{
zMY9sJoGum5c)Wy*>-!CE)~IOAlmArM7=!x`?(Kw&r*!Hp^jhKm)BJ+mK+L^yg8f<4
zrKO%o3SL4#sl0ldy-y%MmTh>s*{%r+3}zxB&Mdwh6}HB&$bU$42&uf8)ExezkD|A@
z;C=8TzH{d%Chh-=ytfL=Lhqt|1tbLtC8SeIx{>aX1`$C(K)Sn?PC<|k=|%*UknU1S
zK)O>prR7Z5`o6u--nZvm?B|@zwbtX3_vK%6&M|%?mGAIRHMnu^n|07Rml{z*i-E4I
zywU47CWYWJ_=dpt{K%lX)VHzD=#q2emXViU9t{C12o3IAc@G<)o^4SdpJKOgc&?BO
zdo8ZR;0`qQZ*{?_GT&f9a{=#CGNkW@!C<~Y4XIr1ldpV|Q=vzcU?CMc?6Z?HW^0?c
zFq9$qDm+vpl42h3Tp{LFyh((fHcY3#25Z$St}8!w+ZOxnb-Kye+eCcg+G5G>s!;c~
zpazqKv%}-Y*TnKo1D<9tnhcp*4_gzRWW9Bs-8TV=*Zmei#4pOE1K%^|_Zdl}pgh*x=an#lxxSQH6{({BV~
zZeK#W1w7h1z}*g=2{bO-Z6fY!C_HkKsiNPK@Ujb1eE%Nl?SAv8>txGa$e|wW9!pQ6
z^&4RrN`*Y0_2A=ygtYV2Fvzk%_VLy<+DtrmXN(VPsGNjjTP|Q{5ShpU1c+9eCC`f_
zJe)ysWy3j^9AcO`$|_vz3DsaoMtcZWx~Sb;Rsd=us}85}1-Cp8lSLwV<-@r<1=c5b
z3F)j6sbExDrjc1M0Ht-Pl<|RtZ;@LxhQpTI%OIHTpiG
zJe!k88u`jc#|?bO7pHH}`D`YM!3-2>ra`Yl@LN;sbx;U
zas}H0g#P
zqneY{tF!ek_{+k%H4;G)nxE8Ow6jP0HJkPm1z+O-7_-~W*+SoLm&vXvR(q4I}V
zcnQE^9Qi<4VTM_IcLw}QL_9`;c%}n09(!|*_hL(0%GD!f?$F&ch6(H8Sc&%D28YpT
zNsbfoBZIH%G;BDpMt3kC>DN8^{?uPezeL7m)%)@;Sqb#noAh*6pF|{lB<8V=oU`u!
zy;JxqhVhG^dfvCukJ^Kf00C$^^WS~Udf(!i4QhO^ApuT8L#r(lh03XAp!mO10`-Bv
zQUax$%tGhANiMD8(fn}f*!i=sj-42b+2SJ-1eT+v_$<%4(bS=(9>mYuwyX}@h*`VH
zl7HUucd1Tme*d>=FYp{?TZm&988nNRB(QXhxsdRJW=32S3j>u&>O34@dg}O1y2wPx
zYUj5^n7;6oX`6cvw}}mv51-ngN0U7k^jdpD=TWsaYB5n*;h7=HrCU!+qQm_hk@z?C
z1v;8+VrS?8xp40}Y7`iL!hPGz#g54nVsd02^Yfd3LCAS_(V>*iOV;RTq8hmb)i<@2
z{)XCyb!QY?Y{P-rbuiZF!k^tG!vml}((J`kFuZRH@Ae^%@J6hvd!IpRki&B~?`}FR
zt(W{RzU~*xDwARAMG{gGBa@hHX{`DfaU|5j$Ld54F!*uz2l`^5Y(A*x0r*_+a+GhM
zXSDHv(>Y0>D$qR>GymA%|L4aSCA9cWpWF|YTVoh{qe^jUWG&*z)u-#tuvcAsq=DHJ
zua!^qH%4B)Uin4E4av5{_@@_=TY~Nz_
zRBRor?&262>Q~($>lQX*V}AKuqn$q`8Fh1b?nHZ!#6C!HA7$aEk&SbCCIRIGu}StS
zb}=M0neyVU@CPGToE?orTg1E4!FBG3#}=c7YBV7-jICFgj58ZFD9M=Ara+45pQjf#
z;lp^~emo@IQL!>SB9=q9z`BoJ$XETdYqZ@+jRft4Ub+6Y%uZ(6OI8m0=zLDt38DIJ-Hh3P`aTa-a{6~;~`s=jWHK(
zudJb$)qTc1Vo2*l!?og=sSMWe&ZDT_w=|cV)hCn$vImv#V
zKQrtnKj}2qiMPv`hSP`^Ey^8ws{Wd0R{BnRTQYyRQkq=S?Re}Kis+@mXZbJsUtTug
z1M_EXxA{?T6;9<&C#}a+>iJt89LCrK5n>nIaLbRu`S+pZIDwC?_9|CZB8M)Mrn0aF
znnDCseyXpRzFe;NaK?JvPQ_&)nF_0ME-&Z%O+7_{c%=tU3EwBN^pZ?whJgT|B#TSS
zprAP(Vr|?v6`D0oAlIbKx%6)7L&1`5cp8O64HecOz07I2pC9|w9mnKI1a%qyBai-%(od-2WZqom=S&9P5*!&XJ0UgdxB_Ufxx
zMUhTU-2}VM{sPr6rBBWDfaKhS$+``^h?iy`cZL(fd&hsGdhye(fwvsSG7)1>IgGk6
z_fJ(|lm(+YNe9ATqPJBBy{fBSH^;H=8O7Tx-K}6^SMc!gc-5c4a-aVCo&*|42mnE5
z>O3^glOK5;0+L1HH9m+Gnp{tq^!UQ?=>HB6L$%LvBzzzLqw4s}K6)CIr*QZ5!C$f~
z;9dS-r{TV9PJ&Mcq&g6C;7Ei5$)STEn){8LySAIfgE_Ly+K=q!%WP(+s&ePMvm{aB
z-S{HMvkGb(MtYcF0H^2Z*Rt%d8Y6C-tbu7hyK1}XpP%e96!81zVR~@!-kpNT9Rd(b
z64~9bkxRBK)>KsGbC=Vq}0y&QwRNWvO*BjAMYC@|B%rO*Os!XyXj8G~d~JGtqmQBWFI^!Z
zN!0s{GG=IDJ=JaESQ$8@URm@ZM6GiJtTNw|_(O?VQigAV!fkWvWBobt-B93BLVDdZ
zr-LvGQE|XXcxQ;D3tNG1e!2TC*2ST8Wg2Xm1lFUBxn8ilFFn?8aQ|V~X+9;94w|eS
zYR*>!kFGsBA|KqDM<*rAWB*(BG7#ikcuf39m0=Nb-W!a;mRx@sf0yiW0;`7UYVnxU
z+Q10fOy*0PDyCOJHaKKd&ns^xOFVmnYHGY5}$
z`K;D=S?&6#-ef$MnqgPm+OxA%Pim~ko>!8hU4Zn1JCFW7eE;-%di&|L^6K8Q37{K-
z?+(k;G1LK0NPH~R?WwOLt7ivn`PVG=o!%8QB<~+8rEpe?56@0qQ0%N?fTfmOu<9Xz
zTV;@CkLXRs>M!rljI!+o|&1cVyeO`sb+=xv({3X2UySI4y7NTHC=%;M_o?i
zm1a9S@3p_-VWCbch%6G6mxl|F4RbIiS}9&W-uCoL38@Y$C&BL|G&L}|H%pXnuKcuZ8weH(
zX-*SzK;+@~+C#W{O83gDHVDRUE_q}V<<0hd$RgIH>AeGGk2Kq44q3f;s
z3StT&v~04q?=hd1>RmS{U)6r|KR=4=xDP8p{(b&$rjeFYlgslHsP;&^BS`Ez3e|$K
z@H0&a*q$?NGQi0R@F-qETwL_&=GXHdb!+V55cSs8B~jxc#+vX}u1(|j-A*dZ0W)It
z-jJHSWO+Y+)n~)jD=3t+#nkf^;(=xkK(1f-XwSc0c^H`e%<6b2(RiC-@Oghq)!|D2
z$R|64j^G5HOfhji7ssiHg1zdrQ}FdU@BYxz8K(CvhQc?iX{c-nEtU5s#pi9YR2HNK
zM*k!M*chbu+02wL!a1(XW*DA}=RljUkT0DxXL+<%va)AM(jAL-7#r+6oI>GG5!ke!$n6r+nY
z3pr9z!*#E3d|@uhq*=?}<-$NO8%-MX9fh|OE(L`;X_2p;59FBAAG^#{yD0wp@#*s{AYj+2HloW8+TeoOw8IIUn2;4Ol@!mMK;i5<08%PYr^A-uc3)^YJyh5=
z95IbUxV~i3V{dj3!vpn0fHxAlHMsEeBTK=wK{51cev9wZI-6b~_JI5BsX8jr|5PAM
z)PMpZD-i=6BsrQfZM_-=ECydWwfZz6_w=leLRGkgEAm2zZgKs2}rI8@#2=
z{?UxCXqvbAFHZq?JtW#7F%@pNa+N*(P}J6k@X*qngq~N9HDJm==Du7BUDVen;%56MnDjS3Yh5e)9tW(neSfD_9H&mJIYt0eCf6|XFQVdvFD+Q
zGb4ZI9E4d40%Fdb+-bdE)ak+*UJ%YUBJAZLNPw1_-}8v6?U5R`+#`bilx#nr{@Mb1
z+jY-F6QD%kWP-s6ZKmvnZk}*q7*x7&9_|wgg}tbA;hIuCSa9APA~*d*B^h$EB??hL
z6vf{+=5#1Te7%o*WJ#yNeNsGZ+p-36ryap>NhFI3HNSF(6I;A_O2cZwr_ILpVkh$o
z#sL4TLWAv(^=FcXGT;fxqK}h>w4<_#nGe7bXL~
zdz}LWnf?zzMp%C6lv+ym50X;I>|JO@QVq+h$lt={
z^mcZ=EQwAKXfAm}2(H`i8B@AgqaQ!wd!eoc018Y^O>K5!|5B}WGmIqVwr@cvObm}_
zvY`KUV4MMbAM(pHKuM#wiGv?Lyw3<>0$Pa2C9XTuKsmt{U39|n!vA7E%n9OhXkSVH
zeL^q~_~ptsKW3&>aNYSy*7j5S^=pSUU`pVeP;%U7DC9ySWK;*4aJ$U=CmP*Pit}Q6pZW4fK*z1U4u8&2oY36s9-}T7=gWw*_3K
z(Gt3V*nk%_xbZnIx`pfA7V9C$DGZOUP5i@*$MM6*jJk_F7E@njs)~ngx0)0z|
zS5)hrI2kEvVCRc+qe)JA{U|zxTHqPqA$-)6!o%#196Mm~&H`$})P_d$soo^?xOJy6xR{F`tTK9H9~nxx)vdk(s-6k5Zn3oD(J}
zA=ED#JzXLaSWawjcQf9Xi~CHiv&o}bv4+);?W?(X@un1$4_EKWS)#r*!`r=RlT=>b
zLmKp7Pje7bRR;6~q|cX0y6%{tfcZmWxk0g-vIkn92VHi=s>Ys0+f*K4jpa7VC$*U$-`IQ2GWIfvrXiC%-(5Z5VBfZd?%`o
z|A|p2@#73!=Ei=jb@KmBgNvjf;GT
z^KLSJ&f_NyCnVfrbK0MDthi~V%7m3K?;8X?YeC8qXCn$^S>@N>)x#Ml?^C2v{g9Ba
zl$d@!(6@VcsGD*+ivSU6{sC47w+^Q_n{GAt%WNqelS^RU5Q+_pW^IcbNxqPL=P%^>
z*K!~8#GL=u-LLR^k%$hedL}%JrhF?`ywc>`Cqs?ATisE|Hi{hYOw1r@P#DBvsk7}&tVtYj
zV%RK!{F^0pu+h9Mf;_hh$6ie>CJjLw8|%2_zeo}P*c`a{U<$iuLl5|Vp$?gtWmnnkqfga-|@e2Q;-
z#=PQ0-7~)-Yx3|X#=U>{h;9;TnURf4E?uyys1Wjk0Me5pI0<;fukN_f;q$KZ=|Pt5?kfdWm3AWZF(dvA&seT?KR3>Nb$m)k&*;d!!wfWW8t^HHpY
z)K0U{sq1<1
zPGbFpQk^WP6px%!zq%?4=rR!Vo0l(Yi8hbk-}(&Ae7+MD+)b)-&=Gb|<}JB#Q41E9_>abgJYCL7k3y7wdD6@k8(;4)0Us3@
zpPYe5^52)p*1sqvL?3YYp@@>I;|D^pbs-Y<|)+6
zW6~r(LuhDpNl*@bbB5l#{cEHk*l)SdsSu{zWffkfG?AzzaUB*cqN7Ope=88^u7mfk(Dt?BpRZVOW^(@*am7|j;ui?
zx$qr^RkU1k)GAGcBti^&t|R@`3ecS@e~o>Ccb};!oKO^oXm^J9htOUsPzYL|!Bz9b
zV+>QC;nR8R>$kgiNky9mka9S*ehd#gboOcW6#yuSpOJUE*5@)o-;m=QF350L0OD?>
zTihX!7xC5A9=Y)JE8d;s;jU2<%SD2Z&ufC0vUI4!s-;V#N@2aeIy9u@e#y#Ik
z-+$LU+TS%_f%rEiB$O}>>`k~orC#2@Z(TiTy;Rgrrc
z=$M~_2q}!KEf2{-L72SR^ZXFJ8*ToVEz_41!#Sp1uL1fy@j0lGpvw!_Ba=g58|L1r
zKNP5_Z(AJI=G@a!W$ZJZG4TK5+=Fm^0oZQ&*v^fAm;jojy_k+`qc)+KVR|10B`CYx
zp!yEDuAg@jWsFllfqD)Ozj)}0dK?iH-ia{n7LO#*h)ip?A)<4K%&txC(t`<@Uq(kq
zpF6C5`;^*NLy)!_=DJBQKTrZtwI!)=Dn>_Xb_)bd>=096LtzW?bt5ouW@VO`M>MB}YW#
zlVpmu;zsXt_1K+SzxkCgcv&t0q(cWsolU>?jUSHod>@08bY{rLwPHUg4&xF205>kY
zvj*HJx`XLlmoWQ>r0FzS>s))fKtl&3r*z_*IrMR1boLlj
z(H$cX4khj+nFguf#+A)o&r2inOP!{3(9qV_4!r|XboM9uS=55E1PwT5${E4zQ+XQn
z9AoQae2vO0%5F51Ps67h(a=)FcA3m2;_#Ra?u*B{X=;?a0?3T>YQn`^9xy@AHH&z_0EU21@xH=1jq;eLzqh)me=
z_A0vB@)Hk=qYsUq;(T|2>>d4~ao_3Z_hi7X%ix2YLKgGv4sm(tl~vyD+Y3x7-I-L9
z2Tt1?!wlzahg+&+SojHlP_RfAGocy)FH*Zk@YCV{s1B3_6m+j%6dfCq*o(bkm?LbX
zAjxIkCk&2{dfx8jx!C5hK?S`la5C5h1lL`+eo1BS%hf&Ija5e1@mG|)CDH>(d?%dq
zaouKjzh!QVk+!O!48ROXO+|_j_kGTHB}-&_L5$5tdjg_6>O-(n*-qD0fiL0liWV!d
zHDz^!HvjthkI4(8g6^!jZBK~D@{x=dDy+J?o7|7zUL8l>wCc@7k=DRG%g5Y0L8<#m
zvfs|d@OxgnP8KBX)&J?@IC;{amS_VDDMa?i=)+4`_~S63zd3;cJy&mPpfFK1q+H>0
z7)hPnH6}V@w;V92m9s{r?cI|Jbk4q=#P6X1dL-o!{2Zpo3{a8S@bzg_9>}M0ro&+@z!>K@fQR%3-_
zffn;w#?bBROJpudvly<_%IOkB{Z?Tt3*J4(d~I>kK&Bt%YQ{Y>I17DoOhrw@zUxSR
zCbVdha=B-U=NR~pT{lgXi|zGlTv=W*5%xKCmFgtU&g3hn`zwGUX~k#o5+YsR0HuLW
zDMd3KrGm?@cWK_uzxZim@Pzz>A5?*RsD~1k^7_wTG{0v-3UYJ$
zBMwcUrq?@v)Nel8OkwAKcJN#a^8U{2PPVW~1f@JKX*aFD*E*OxYB6i$O+s(U
z;H#Z(HadVLJ_=d=h!#daJ~}^IlaR*|&8izMdr=S2*rlCzBRljw!(rlKyU>0lfH{L7
zs*meVHLxo1<Vim*3(|1a7~Ox9n@-0nAlC4nCmX`99hP^f*T
z6EHqxm^C#4|8H2A<591vGG;H_nVbzKXo#19?LHWxcj6`dd7kL+@B1*CAWtdwZ3oV*
zp(PJJ`}cO7aR{jxE{m`$&e0hj)mIj0FlPekEx_JgOgW0K=1;2$<2V54fxpb9
zGkn$PSM>x#gTBv@n1|iNzxMY~MwmY19ESMMtr;P}QwqDH5e;yR!`pgCIgx6_K3I7bs|NoFi0AJbv
zF)P6cO(Odilo@dC_#CZ4+(;Gl80i1`@j_4VcEA@-AdEx0!q)SeR8+JXz=R^;!2WaX
zg@9lHXoj_gg=dATt)QNiiMCB2XoPz6ErlooDqu6`>)oO$|1Ni`8#3#iZI-%>4{3$c
za&kQoXb5vzll^gihov;(Eekt49kL4*d%#hxLh5x7gbDt;5SW7$lfHwd~1CTGy0ony&Qul7iA+PeW%ckaX*IOvrn5pptA?gHywp=!P
zcX7o2>iQaHPD$`LiuhdovrBOfNhIm$i*bmFr#>0HE?R6c{%pVK56#!!3`dyy6JLCU
zInR;-^79TrK4*r&$c_3(JZT~P%k=B3b0^?PNYze2q)f?H9XMG3v*XYEvtsXQJ%b+$
z3ZK;jkh$E)l8uE#USsSgh!R>=%%GLW1F;u8F_dml3RR%Z?6(w1Vh={Lad?{pL7^j4
z5J9PH`m!?wdvCcjVtr#HiBcSKwV=xCMb;uwL>HvO?qiW5&7+CZ($Y!>WAgIy_F+MO
zX;V`Z8bHd=e*MVPxS{n!T8F$Vd#zq~CWtM+IpDU(SYFtH
zF(M}BRrvip2<-zntp7jX`;{Vu6*3^ig$Q~0p2+|-1b%YXbSxCg88)5D`>2p35rHe2
zbAfXEHpEgwrrnrjXAUU#A@D~5YD4dik&z?##-LZ-E(|xkCB!g6QV(##sqA1@bqp&7
zUdaq9@H>Ow))xqcESit#ffylj&tdqwYOE)j*a#R@|Av+Ehm!EI`U^X6?0*oh&sq^{
z2Pkh3h+fRTC;1t`gFd7{)ek~tYduehUyZ#T+LVBGVh;R{sH_&fI%f;O**|vOmLi2X
zED^U|QoUw}xo#kqW+l~{Yc3gV+q4(kxq=A8L$rmM*yaYtx(wCLU_KIv%b
zIsKI!$an&r&?ZO5;b!(kfI{+Z2V7
ze@`6az5DbX2+s-d=>FO6awdjFvF)NrZ}EUtA}f%<)%4_6qZ{C`)!Y4W00B@6yY_pU
zfJQMl&PLX|mbdR&bbrEt_vgp`NVAIn_5yUZMUdkSVVAlAeK(&2IWb|MZ-
zxtyz|FY2ou$?i5eG&mK=*t{{=0Q^imlR&FO%p)Cj5Bj(?7`80lQYL?WbL*>O6@;^m
zQjw6PLJj?GIulRtt79GnH1h|?9-VAyKdw)zrGh2u>RNqB?sdt}AK&fX3CCt!t<6j=
z!k~nggVS^*-$S`~nHmLAgBf1S^s8(li;V&Uxn*`^O
zO`MKifiiJY4iT{}$=-cAIMK0mZuJqIKz#>Ly;1d%+{u!QY3r-dbOaP@j^1Cv$w(&!6Os!{j_;T*QJ7Zv^#3PA(pulh7=
zV9}(ai8q?1+_p`C(}JO3Yut_jN)XufnaQDOe|fnuwp|%C$kcDVfcT`2qR?BaXp0jZ
zM{5wq%5*WE$YzlLBpDo$lW-pW=acXK{p9c1=0)#5I2o<7|NDD+Nri-R42hW@5ELHA
zJW_BoR%JDgwkZIqbtM`FWpJj$7x%R`^6>chO+J+`zG?`hN(*|Qu}iag!aW7w@ahMQ
ze@=lF13v}jH~=RghPzgn4==&~{WY@>mllXB7MJ(-GFWtZJ#Y`}qEM*aXl}t!0Vm;2
zCOO~&x+(GiKLRXJgT8^=5F;%D0WotsYrAJ|KoNxWfu3a+-I=uXbXYB{z7NI4TQ@ao
zJH5TVr>br4tQNyx({}=rH)dUBkSIceoB?Kh8iP1YO&8?Ul;MOd`s`A>GzTgxT}Ww;
z-va1^YE)wb=BF`^5a<9r7SKBU{kt0CuE7YeN!EEn<;JdI{O39GtMj)xImVC^&^d@Y
zm3i^ScGh#B2K}RAf!QEA9Jw04hX)@2o)$gL2=Qr!5|9+W3P1vF?Qwuj!2P3ke$w?e
zwa;O)@>QJ6LpWAr21pr1?Gbt-AhR2E><#6lUuTntSf}J;X)A>O;;)3tE6yt(x54eb
zl9Iu0R@oV8L65zlJX!C?w%Z*5-^~4(w;y++YkdH8&>oDn?M0=c2v;QUyGV4`RWkSgq4Ut)t~M-)8uLw{)2f#Z~!CpI)+VN8EN7Bn#n
zb>
zW)%LN0exLV`)Htq6M~%$lGG_cK$U0{k7MX@98|e`Lek||#o)*ZNPd&=PK4J5
zESh3XdGUX?D>V`ciEhMhbUv32;}idYE97%FC;09Fq|8v~CjkJOEM#%PnyRr;s-9gq
zXYHM)5#uH2-a*DV4CJcq=E)TzhFE366kn=Lsjoi{urm?kF3gioI1(0@o|PMB4RFRo
z(Jaxf_Q!P%whf4YP7mv-R3Zr30D4jdf3VFX`zRpJfM2>-~#ot>|Avu7unHTt#Q>Q9$5+(@C34QMWfMx7Y&
z|Mh?V_t$iC4Xf}0d!{I-!k=cGe`>QZ{%Y6X1hXo1^x=rneV_#O@iCAjP)TBc33B(v
z8FqJiXG{YFgU}P)n}BbCM}<)6yZSM3Ddov6GE^~=Em)wVqbnt``<*Kw9#^anHsWSp
z*a^Ny$;!&wzq`ny-mk$5uS2|XNeKych{<}S!}%-euZS0oDhBz#iEW`;FN&>5Xy*NvRruCDiwwYYheAT
zKqZ<&c&5_hI^fdnXr-UcSCRFF(5DVnAM5=!yZNS_iM49ut+haqX1LkkHw{1?OcNxB
z2k^5B;|P18sYQ^Ce|o6+;cDNnF}c!&=c$u~gukSu1h9Ta3Fj{xBOWj(2*mGPR53$4
zTrT|#eS7+|(`CZjP~A;#3u#U2?}EX15#lW`tNURwMU$|7IE#i%v{(JbuTp>3LkUqR
z)=GWB*WhzxnmUa_`%!LqsoK?*y3*s%_OAd`H(=hs`a^@FyL9d4R&71^W~(zi5wDqI
zQ7&J4rqSt6?vU`U)=PAElgpp|X2L2F
z`;M3S;$81N;o4UTBoe5^g~2sJ6GMu*C~Tf{~1?81kJ
z6|&*|$tq*3U!1G5(W#uSOWZwzAgf+VbXsgEI7{w`pb%Aqpw(E~F>iV$VtQrL11oea
ztVYN4>}0-@e?Ig|u0p!ZGv&jTyDZPEE_1ArarNINqA$LbPb2CEY#)#NV6aPxXv6DI
zX>GS4q2&w2JSC$MxE%H_%fdu_U^a!@i9j?2)JvTJ?0eQTSXO4aJKK14(2j~b37>p>
zdz(}v_dbEqBQxi|V|s+-%ZoAQNyinyB^u{3jg5&iP7;9)3{{czLxOs}ZTsEydf8~(
zRx#^xI*E=O`MGcVSt9{KG|7TVwo-CFZMV^pp(!N#_k*Vi_#n>HDI|39%vk+eJ;K@%o028a=Q|*oj}O7M7tk*B1k%3q7%@`8nMqeloen|MGCffLd@t$@ptx^KFj$Gvm1=K|Ij%1*^45ZslK@_=J?sq3T!3N+(k
znl3aqvXO4X@Fy#g%E^Cd7cyGiAd=$vHD}UWYV{*2f8~c()uahc(#>?igYtO0wgTUY
z^F{(5JjqXP#aPy&t0cClrHDSh5JL;odsM9uTlfSn+k@+k#ehdTpO-WDT3$l^I(0s@
z6@VBZ^EUnXFz6JvBs|PGT)Kqx=4;H>3sfjzHzCK+JuRI$A?9UNE#D7YmQ^Mf#dzNY
zm$0@7Tb4Y3&98UVd8T#0$CwjcZJmw)je<~RntlOcCmz3#529>refQ?Z3bhES2$}RW
zQ``yJk^=S!K29+OG!CQ#LZL{tsP8vRDrH{_)jJW%eB~EjD7Vk*ZS>ssc6ZvO74=|{
zd9w-FI-;eG6ni0?j=7bqqIlG11u4iHwr8FFZtc2GP>r7~WN&HF|wQj4v{YS)BV
z9waHsN3;XNm2`gBm7_!zKLeyoZ1N8+wL#CCA0b{{^VvL$&^|jqk7s(3ubJ!^u|7x;
zTwF3#W;|K_YPk`N!OIiPr$+&TA+)7BRolPbchl%S?1&=s>a3J5EJ?3F>5CI!#u#|^
z%62ptS)Z6q-@7oTXKP27w=0Zfu*gx1R)^kYzUlRdhsh8-;k9!s%Ime!uo^pWHD>tk
z!?y8E11uw-?(gWDXSH>1@>z!e;7g+BW;GVbVI5hyd)Li&_85DAFoDJFbHc~ru0%E+
ze*2ytxMl`ZL>_pk*IA!~7=S9dK!sfLz4&{ZsfPHbPwLGl$f(FRlV8Y1sVIhcifGE6
zhlN~t`y#q$uwT@*&w
zeft9so))fqGoFiS^u#=#T(9Dzd}rDo8PzI8kqY8)J$-am5wl)?$Za(#^Li(_wQdo{
zohaIGpA&IC{Vv)U=Vt#TYq!;LrH|!(SW;%&>+1{rrpe&9se6-EWE>&#*@~xgf{i#5
zs&k6492#0_zE#Nnrn`*QOlAZgD=|-niNJs5i$!uwHv3i=>4kf9_*k;u`0v+{NeOk4i
z=XeTzueMkC9hNa9dhF2Qu0#yK&q7WU%z~1t^^H(+BDSP`ByTW@#*Dm2g9myJ@q0^rcIoxv%9pG!6Q+!-r<@~qmuX)uBiDLArJtKiQ`
zi8lKW$u%+M-@imnCJG(Ex$#Ct#(e#Q0KcF_B&*J5H1^*0LVJvpwaM>d@t#7>_~Oww
z%G8gtu#u?>*L-uo7g@M39d
z>>EJw2#7u8_@Z6(>O{2V3MQdMLvlvx}
z{dyD&R_Ygqr`d6%CEuPF2D)W!ZWbut;9fgZ5to%Du75MQbwX?Pn-ukQ4>w^b(}9a&
zC%)t-|LXyy*piC-$vqETlCycAe$*ei`IabZHQuRWCOjw>2Q>-?a+Ni50nEv@oQoYd
zT0R)d-mTghdUbrp$j%DCXXMku9Fy`BDo)OGt>WvVdkE>)afJ716>iU#npeci&SF!G
z)K*&edYdb?zv!yjn;|I9dX7}Jk`=$^N+=xl4ZKtmMI>P+
zm{l6yT*4fl@9;TcgD6X={Xw=t&Vs0Rja1xy+pU?8d>D#0TEo$)XeFVaO?vN=q5F%(
zb+OJ~dLP{Q>*1S@VjYKn{*&ULAmVr&2;{ZB*+$6%RE=0bR+U-uSkj!T3hx^}u;~;l
z+dP%nOx)Ct*J36x-uNYI?%s%^gd?9WgMow<$>@W6H>jf5usPS@W%jgGxBZ(?Dutex
z{C)Pi^-;4%-PPcV<1AhZWaPrYXKC_WRcDZ^%>4}q9eJffRZ5|pKh9yj1YO88vFr}{
z;3!h0#alF6rOgjNy=WBT=Dxp6wt;zwQYg0X*JDiD@s^OH%U7h9lmYY_f3A4QY)@X7ul)182Lor{C1FME*}m{!8uX#CRYt@ZDE
zgVhTzLw)O1PbozR9%f217
zSG_4aeRTas(ccmW+CMRKzx_t`8*u}_a9TC|o%B%9s2blVPqTo#MF3!
zX*pE*V7JvP$P{^8bee@Sht)u6{;L(6rpwDhKavu5)x39>I!;5cs7_T`SYPl*Xj9r2
zD3e|uo^wU*&DYb&;%v;RIu5=1b!r;;ZXOjh78f5%#jL3?0_x0HUzvflO{)N_9;2s24Q$=N4q@0_-xxhbrKn5QU0he-c90Z
zJC}#yJUIg%qXzLTmo}61nw_*wHfMJ^#}M#6?%#`+!{MCKgQpjrToMB{bEldOxkv*W
zHD;jPD2Ln;IJmpSA#*`*y!1`;?&7r#B8hW^}krp>Fuu}vK6k`r{TXetAQ
zASqL};<~i(^BcZyZg=aS5!N<~mv|4Y?l%;j4P4x4ECg1orADO+NL!nkH(Li__vxz@
z>#M3R)3cA6W_e}SNX;Yi5c$UI`=FxJG`6O|M!|Av6?3^5MaO-KXXS?CwR)spM(O`3%I=ciVIdj=14F;r6(93GyGj1g
zJsTxjc$+-X1oqm*n!`nhed2+ts478L)|%~j1jB5jlkSaR={Ebt8k_1fdajqbLXKyK
z0B8NSVN-w-@oDIaqf^OT=`h^c!{_=!Ydu58aF{~Kn!B_*mA6#b+1~D>AQom93k+i5
z@X=I0-JU^lARsuMsQ7*@`C)JIxr+_^6wVv)G;^9>#eqL3jeqTKv-oe)ub3jX<&XUR
z11Q7VMyf2&jmEXUpwSuFCDtEZHS^Hj;LbJewY@3ycU>5CPvCVw
z^~IOvxm%RpSCtGQ*S%dET-MA*e*UY^l@g-Tue*QROFm7sXhIBf-J8IO@D0OzZ88vx
zKie~~qx-|GhxVoxh4I7};s((RP<`Xoi~Oa@BAATwnY69~iPgw$nH4{et4EG8WO0yK
zR1(^vrr)LiUK>;&iY1byI!)E$iA?zJ!qm7cXNm5nwovEy+U`aYo{cQgUXb%UI>23Y
zBRiRiQ59)?qDqPGPJZ8qwNH4m`PhD`R!x`pliiPo_=<;yrEM$yiLaOIHq4aMYhUl#
zju3ndG99VDeTM(R@`RX5qUSXloF4@Hzm~fbU#ryBdK?KhDJJ}UBI#&vABc*C6yMeL
z>vF0kAVXwlx)Dic5-|v)zVM
z{nta?gM(~HCzRGKq5i&j}#SPHmrlh>p
zgowt`FInfhAB^ZIB_}2yRGC0{#$&e+-hHTeDwQiy{AcUUgi3W&s?_if#a)yTonnZ9
z;$vY<>&rKkCsNafI;Ftfj8_`?9nI)^Il0Xf@r9O)-iuqx`Pk`9O#joK%Au
zs>vG3tHfW;UatqYN~kS+tc@-PTspHhjqEZdaJpD(Hk&Q>J*(AG&Jc>?>pKtWQa8z_
z+KRK7Ye0S%2;mT>-(v1bzo)bM?exJ61E2BXYiY9Jtd)KegFvWK9rPGAYm)@IxgHZ}
zb^Ku?!HT7pW~zMMBW^WVr}o-7WaZjfhxu|JN+^X2^{EX=;#Lr9xqL2+Fo>^
zP)L0WwJS__^e;(!W?qVV?>Qj_@jw}w?zgzhmtq`0?=TjYD7@%WK}5e#nyH?n_nq%x~6R-G4~ozEBgQP~=PI==;;)
zy@4)&-g}(GZ{-dS4iziDL>~f>!-{8`-PTtQXx0Zk$c4RekmfR~He1V?zO=KLgu+X?
zRRr}8!*^pMUv^C~)~{~s1iPZnhS=O`u4Hu&h6
zxg^|izkBD-2jRnKYFWbAOz)>^*(prSs*;|KwTw*;lI5pcy)J`S4G~nk7w5-Viw@3T
z)^>J$j|R*0x&T?`9|GJ2osD8Adf=^amBUoyJ6gJLf6!2mp+7(zS_t2Wxi0R#1;cFl
zsQK;jQGVm>{MZg9ptlin@L(W@yWM0X_N{GcL0dsukI-3=N?R@*1DdH^ivD1U#V1!EGv9O|%
zkq(&4#z+@k$G}W057hLW>_j1d9o_Qb~Jd1W>a9;74+2-iKSilXOA0M9|?47)O
z%!1je(ZT@?=#_=NqN&=WopUOFd-VHb2Cfrj{0gaS{fat6GRIg)kNYx74-f}rY{azB
zBx)oeYedn<@sgH}c2Bm2*WvqHMLjEnbj?nW!;O{5m+{&^#9$nYtvxz-f1ApV
zLk`UUJgIz;R7ZyKlHQgu!uY~s)cx0a_rVkH3FW7#4~M_hJJi2_D(t#9{rj={0;x)(
zVAlI_+`5lPK07J5@B5WWy89#In)}W-?1IogT4Ye~=Y6PmX!GLsJ#?9Vg1DryMhlM2
z`<1uCXjXMhFIQ>OJX>pl-eZ%{1KPS;Zl;Mpf;HtwbRAl$ef9p8`Td#!$5o)E(uPm*ec
zEQuC(fu%R-vCfxl)Z>pnx|LGIGl~Fw&YIpXXwv^0rgWi6c9_GojS;^KxJ+L2XIFUu
zmh;gAu+?-mijbu&6+$ClPyF1cS2kG6uP2CX@af83*TciZ-2|K2ug_G~@_e}rs(JwJ
z)ns8QSsTe?s2?d|tXJju#uOyWC@7dRKoV`Wes8Bu>LNhaj9aJU5cfpIcT`Yi_VC$a
zaqyp?4}`w&z88FSyk>2fw5feFs#`<5-iL|0x%O&tT(*R747E^2cnMAehE^rXGZhr=
zJU6U+%w8NV-Y2+i%Ha^O!4yGy`^L}7xP>BB+NoN36HCFDqO<6UMcEG0e?F0mrWK(E
z$hNJqa9~)5-mGlV(xa|ck8>F?I%XcJIE^mSd$`Q(u@ZYX9u*ZQt+%^7zy`QJPx_l8
zHJ=9tP$|tv*j3IyuSX478cr?Vv>(h!WjFK~V}mA9f
zt1(>J5(=Iy_wlFEs8uCDc6TsWI){!o{FAO?QyxuO@h4$kPLRo;28U(1H6peM(|
z!lD;%J#SY9zgEtcQjMDO6lRAt50_X9gZ`1TTVvP(y9&Ndh?s`dz6mvEmG#
zDB+)2vRq=DKY2pEuFZ}GjP7RZ=(_Fy3W{nGNMRGHp(6UL(UC5LB&WYzaM1tFD%c+1
z*!lVS;b9FkQtv;9oZQ?RXDZjOT|+(DF-2PmUZo@=%F9GYL(6@YaWe1w-sUo3RRxp5
z3hV76gZf|b`
zJx>4s$k@WVGtmD0#(OzFR%OpxM|H7tpW#Tv>5A8
zh^6y{k&^qS=Lc-+ubMzd*^U8WHe!h7mx&M+^4@hbEbJMKze0{PGHTR1D+Qk7gIwe)
zu$g)$GC9V`WWqC#=JB`Nt&VEd>+5L$FaBwNpd&;t?Q2DdxtBwiery?!}`moyGaG1WP{
zDv<|D%Ywer3M98e=sU$|XlN=-TJ&D4eT9&ohmB4%-QD-jN%%>y@;yb|%S~P$LrUi?vQ{7CejlqqfwW@y_sXXBkzQt%RBn)6_StNVmw{i8lf9KvgX+96Tq0%#1bih(gnX@3$jZ9raMNCJI+L@jf7L-CbtaZjx*Y?_
zl5>ZcP5+q^pz-y+gzqi!d|%;=I*L}j`|Ekt@lXJf-DDYS=j~sW=EH_2#TvQk0++a(
zn$>Z&9#D}qAQ7o$)))MTz#HsUv%YC1n?QL7;{DIS%dKPiR-
z`3bh8l8!TG&dSjbErQN;ikIUQmO!Zss|jhM>P;xT7ejNfK6Y#6H7G!Zo=mC?I#UZf
z&V$_bm*?RYrO)2M!Oy8mUoeIK0%2JesJ>Wg7Q4nv#t``SWV69Nd{+G|Fzp*8n~o7)
zqVC(*sHc(IXqD84N4-Q@sWc#a29Zj`CDF#s8lNJwHbJpBaUW06ZWVRd`h;|9wj6`(#w
z4Hrnk5^Y3nYy<_1umXhGbVpI*troOhNG&e?2A$qrCwzEmPs#IqI1HmQ#|b)3r%2k=
z&}qax6jG=dVa#LIP__il=abU|_H>GL(sUWvTCP454ucK%OS<1qwd3uP)Lx?uXp$aX
zUV?W<&2PSL^3LNPm_sNwZ5Jue?uRU
zX`EM+Rcto;bT%rasRG$UQvHOO#x)T2>dC{*{OE8?q#reU)&
z5`wUq9G3weaGU&KNGv^ag4Dwg_}%Sr3QN&X*E`UK7&i{!2btnBV-epJ^}U#bFioCS
z5aX@`B}1Xj5H1}6B+18TOCfNkqM>@bI=w+vC?+rsl})cK%>Ru+_2Txnyy?yUSK@cj)zsD1
z=WHy9ne@sG`T_+7N0vIn+4=Pp2lNyusu(CCk`$E(BCbWcEt*8(T$ARDXYyg=9LblT
z@)Wq|-t^v5`Ejbm_3PIeIzh3E#)zp^1ju1#-Ep^{swf{G?Ae(p72?|d-g5iN
zq#Xhqv`Xc_dqBcNsMx8I5_94iyg(C6uU@2nx%s7j7$nv6i*XDxSy>PAT;jN_RV_Zn
zBs=({YSh{aI5_Npi$FC?6fO9!-L&Hgu?|Pn5gbw=HlTVV3mQ$GXMchi=!ojXOV@huSqEGEtZ(KBfTW%bk1T00ejy$_(ua){C)Y3v#=r*;K7d{pVtUnO
z*$_gXVzaM|Z0xNlT^F5pr``wFLx&a4GE8sV(`-
z5f*wg#q|u9n`;!1BnR92>ga=FjRnnoqelra{3_x(uUUH#B;kQZ4O3Jw84?iHx8NgDhiAeeFA|cAhOQjlV95Rdr0>^j%wm}
zZthSL$9-uLaZjyxKJ}(;*Px3-v@4}>q|r+S6sZcdix((1QPE|Ita-S?RIy;a=N+36
zF&aGvX*vvhFwzzFpFg{$8^wRIfPw&*wyWlkAOBd^A)Fd|B_3&!D`42+bHCpHVc0bU
z{O#VTo==hFm7=K4R08y2lApC&aE@fq(*>VW*-OTl@dp>{z;#;p^b36?Y}5!Zx9z!-
zL=l*&Rjj!*PI4Iz4S>BUdUuv+FnfZnQ
zebikP3a>2D1xNw|uch#~V2?O&2ZO#ModvVnPCU)st(ftZ!K?>*6sbgU*d&QgGBAuP
zr;Y73EHExjY3*MybtIZd%16od84PH{EHG|mXEU}ME8(J_PPv)RINd9W
zBfTQ43=yMu_we-9GOG-FLHWp;-rwZutjSoMxY6fOCc@OdCKudYJ%8gho(YJStq7U%
z}7v>)4ehBATHS119TFL4X~-
ztLggC=pL3TLC$()|LqqRT?Ie6x|uXtT=oI2vXu3WeC`1nGk14)9SgDGtpVhOQKLpj
z#7DzN@BP<~ECLWjB}j)-1pj)8dZCxNx1>Q6%vQRmfqP|7DOVaT*saAPYPhbhPV^`=
z=q%L}3jgkBCOMKmp6RTB6Od6@Lz%sBd%CUY0fr7N1RJm#1dDW?GA?ke9ES1aV
z&w>HO!+L5dX%3XNM_T~e-fIj3{y@S;MxnP%@pw
zkRU27N`^)%-X*3(Gs%SUDV!N1HC
zUO-Hq?HS?wuYy(lk1~SX8GljC|oLWMN7mn8l#XU1&tNFh8$8DawBYM~^4GhjJ-QLu1h@-q)qT;LS!{
zLzPMZ>#zRF6fMye@0$zLhw}EJ*ckDQLi3X01W{QUPWZH9sOse20#Ma=$T>JTc>m}-
z7}8UQORclssEavG_!;9eY1AgSt~B4s#hWxog0T;IQBncwsl$t3fAkNPLM3>48F-1w
z4vnFoN{-swVJ`lczJvKa*hME`B>-y^6tl4;tYnsfaEx4JfrlbE;oXZr_zEf1f_6b-
zubl%w{D}u|1dg&F9>wUJQ|u-g#2dk8NDGl`a+t@>)HS-{j-1ZiBI)*!>F2xiQVo&|KS!|IT&73}
zbF3R18)0-nfA`H07s8-GxPkkM%4648qn3Ux-GV73e8x=;n5gOHKA6@d!#O0k0y|~h
zNn-Zi7K_LuTw5Mlt>Y|pG5;}mv6HuD;VRe}*=blX_ITq;AeD}WXVkc2bQprjzIa(y
z6WZwt4qfu@9}hADGro}7OlnoqA01BO7CLQT?S6IrPTdh0B~063Vn-4j0TFxZw?X*d
zstu*Q4#&2Ty|v0zi`6(k23#3zx^L(!bNq2>#U4Qw-!5H{KMxZ$p==zzBu!vJjfYy>
za_AMO%_#GzA#0)N0p{uPFN@p(#g#s&g-lIo1o|xD)_!|TbYpbu1qlg>-L70qDl}No
zNn%C>4XRWbRP&n?myM&BPl@8v2wQ`T@IhU}g4J?&e;Oa>i>$UgxvoqdxjzB*QFxq{
z4m$^$7_t-upA|7ll)WW?}k2>$hJ
z1XskcBFIM=&ATF8FU~wu*_O`~1&T8GlIU1O!2KFXJDMlw{KBE}_|6fsJlz&jagkqO
zxgDAAylk%a_f@fXLq+K-=$wdCJuj*^RQt!XRsn-0rSBsqw31MXgtZBXXeJp`J-;^<
z5a>9hi-U)EUD%Nx-9}zsUU)wl{}hTuY0J~Tgd4CoE?~JBHaf`#q92gnZX)4X;nI?R
z@-Q%3Pc4MZ5KB_LVr^-2lbumzYnrOsKy7;1Y#?0#N=?5oZnJie;>Quus@6i6gsWGh
z(I%~Cj(Qd{3No{eYSLS&pd{PN>^U3A}&+HSISy|(Y2?liLny$
zDM1UwnQ8U8=;V?n>#Kh<`MG()(#qD%yT0TdLte{K14$4Pl3HOxkg$Jj#a?1f
zSGrGD8-^KL=*956$G3Z&Pqi&!SdhW6wA0F{K(`EC$N~9Op`Q1T7^_h6#;R$R&B`+g
z`GX`mq@D54@iCwil<`9^)h$+Az%0C1`j#~%ymg?mIpyAi=r)xq%&~J6s+%seS5Z!(
z4}T4wKJ?20^o_Xn3f8%-{=VeWd1jlh?`sRSuTCuY74l4g|MdRlt+4@0t`(SH
zD`Ye|np5B!31Vld{`~j)#s);@1U}L9v%WBEN;TDKKYAtZ4f{x5dXja68dw!LYzWna~(8IBVCP!D#MM?+tK#QP{zth$wAKUTRdMDE47~Q`Sx)
zX-upW9upC%Ytd=W05ilL;wsry`C*si-&6~1@)Rg
zbTN?c*=_t<);MjQ>*AF}_(nlXy4YL42*wxqS^@FCgQOiAfmS`BoT+4Q5f=rGT5~|c?xT!7TxQv^o!Esg~(K#`p%eCDpdFN4&
z>AC`ds=we=PrmNNeTaKq6t{yQBoUzEflLt`2ILUx!OR&CWu!ro*CQ4
zTw>ge&g;0^PuWNM(^sIsTLYV#A*3HxSTqF>O?7~?MXR4bZ>D16%|%i4W4OlVUxU4`
zwL-$I9ksFKdNIHaG7T}=NEyMhR~X#~L=arC36`k$Ujuvvr*AYR-_0}5uOE)$N>$Tg>;nWO(0qOi
z7-VJ>oo7s#R2ab496oX}t|N>!+U$S!*YgXmxwpSW!zpf?$`vk1j~EC1S%a&c%rIZT
zoa-p&59N5}_bUf9_eqF|A|fD1!K5*-bztD>-ZHBKVcyrW`_4&O!#XXRfK6yzT%K;;
zJ`pyDAa>GX9;ft40OerRG@Eb2B`2TVw1(wPU`iJ{p-6iKMPgj
zh*o03thtj^QoY?{P$&=`zRJ;GDx$QaBjoF%y5}1aR9El+{jJr2;T}mNKUj$Ql)oGB
z@S3E9(k
zfkDTo9~DzL)_1BzhT!6hS3doa3C&4q{DYgRlH0CUyL8M2^-{N@;m|`_7Qy6~aQ&5#
z{oRXV=U}Rvem1P&ZEsnC4s4h~n9ZT^I5K$`Ni
zc1^Enxi9?PylqENd2d6)J+c(~
z<%G602SSIzz1t?PMD|s8u-!e=tOplLMT)9x_EkxU_oTQ^M?qaZ(j#;h)`X|Y*QlFibv=1dzo1UlpX_>R+;l7V{O^1l(|%XJG2Cplw6EZ}(Y>th-)UX!Qm%OT
zhi9zF{;TMQz;{3c-JP8iKSA_pjSIOI`zplR!<8rVQAAX96`p*>ek;8K4gp5^qNTi;-AP5d#80L%r-U@OXYLXl|GvS=Lr8<_2aw@5lw_jt6Jea=EtS+TbxBD{
zYwI9X}3_TY&DhcfRYCg3>V3ZWw`LU5Nit7W~1
z;~VD1BIz2!3$U*ze|oKw#<&yzIxMhy7|{z=1O(IKxAa|sH&jYo3a1^+$LRa~`N`U_
zS%VqeS~nL%zJR%$p^~Y&VR5yt5Xm-C3&PCsr(F?h4c{Pp7_864Hf>#Cd>%>{Cl4r4)yyDwM=H?renk=xVaCZFL|R|3PS=QtHyd`oK=Gq
zeC1p_MnD#P|9B1{w&%e{G92+zq5iZ9yq0}%t9W{T4ZHpYnYYsbPH$UaS$os?^Z{Iq
z4u(jPKLEvp$+FB+`3G_em8j^3-9ZR-&d~AkF?~N!xg=~lYl&omxoGI<5Q($?nfwy?
z3)Sqq=lzrfM&Q3#`uW8j>Jg9MtL64z-@}NM14z4pYcZ}bs;vfs0a_%a15@6bwzb1R
z88XiFFVmfl&nTmdsk{g!kKr9s2|M}$zzk7JRs-o$9sgEVCxQo+VKx3QoSM;kq5&}u
zfYPqWL41e?0WY*VVxD_|bV{)Ur>z2!>=OjibD@9Cm%8x)dGBELrW)pQjCkz`Uv>gE
zH)O!y6&CgY3oSsYAzr9cr5)#*7MJkc(gmKR15I)K6cAH@#)ZyEfZl=SQnx?cj
zZpdVgR3Ky_K96d0Cy)RDnUB~_+*YF2G-D7`HLpqap!8P2J#l}
z=k7{aEBogr*D*qiLZGi}Z0sFm+5Fo+Yp}s(F^^ex{dX2&Wkby>%~$&K
z-DwCQPmo(Q(XkXY?$`==#cnfT)1IgE{#L6K%6NCBOTAcz$Zi|sigv)Fs8Lc=Wf1}V
zuJr!zA?R^BUZbkE%34EB^->?#R@l~ds)AF1hBz0HV@|b9VPHCt`9V5KkQhXX+t*vd
z$cQ`8H#s>eYv}R{lmmA@E@ZdWw~>2#c-T7c%>%pqY!?o?pGP?VViRzYA36-~s}9X~
z5OD&{2b^u{KlFufoF38n1;V~(@9Tyq57dXoYqjg1Yy?`b)$l&y;5)6H%477T@!k5E
zEk4%2#0KL%3NFDAFV#C!_msVfvPgz_q20jR&CN~03Z{W{$7WaA&FrP|32bwme_BW+
zOb>UYYie#*EszUc8@Wsqu-%p0Wm>r9;SZp}4TsIyT4jJ>!H*0_CJ!ncbPPb;)c9Ur
zK-dU23Cr&8LI+TOZ+u-{Twr*QB*4??xD=RX;^3-oK(0b~fD1k_R{dbWsg2;8W`&r~
z8O3*ee0*v4^QjW;FB7iU#V7!ZpyPcM*7V81dZ9zs+OZ3)D{~VQt`KYiEIXthRrn6U
zlG)ATdT2Oi!xMcG33PnGrpH5&BB1{LWLP-%Vv-!Iz$Wj_1MfEM2m~NzdF%85^tUk5
zCSop4)i@qM8$vADj=ZN5m_n^4C*fl!A!AMuz8~a+tSpuBypJ{}J^;A~Kb7}-IwpCy
z^zVH!@a-f(%K*%_&wQ(YdygHD`w`PIDA6=hZFoZ3$XEK)P%r>3)cDT&@)iixCq8f9
zYZy~T9%AOnaJ`U$Mu8^xVS^I{Md?=>-%v?Kd`ySon2?zC2iRghE9*Jowl;>n)tnsD
zDDvkbR
z=?5Y0{_0DMU6FWH{2F);rPQ`YpzgTyAM
z9Zs$HjZbG9oo{Ku$5I=!iN9a)DCu;3J`xsqw6}4M^{?(|YA{%@udJY*KZcg2!55OG
z;NY08wg~-qpZO9GXi+;l#Q-&PvsyI|}QC1>ocC
zdSy|h>}2hB2iZa+vKAkonQ63};YByu2SgVB{nAVe(_8~EKX7xqKcj4hm?eP9
zL_|dXg$S{CO%A>d#)4a{3l$9w85?k)iy#}N0^~gp3^4iWQ1k2pi+15iH8J@Pu-zMh
zG{;b~yZbUSRNtF_D?=Q}+fx(kUhBl@oI1qb2hwApL@jb|(0Q1_Jxb$Uk&~TmH`KcErI;rW$D&1%dmdUf1chKAO~&;^?~l!3hpmdhL#8z-43S!^_^PtrY8Gw
zC@|pmf|`Z^7Z)~i#<94h1Ofscr23bDB8M|4n)p`C`j>IiKk(#{B3wH(hGmJE@~mdL
zqp?Jp_P~}FWRU>73bbvEj06%bN1#1xcHen*Ebeze{_A9SAuvp5vf?3*C;Q_;qi^57
z1t656fEWOx2t-Vr9H{ELWot?7`t~zcu4?`;^K4^+4C4=bxPli%>`lRUhr|&G--?Gl
zwb(aV{slA-Cl0l3!^6WsjwN&4enAKbDaLG1BB`qPDWImQHGpR;K|wqPzBs}BJ^3d3DE
z2odp0kR}mH#u>PCwpa!zj+?tmw{-H`
zw;?%ZO_=2bZz`Gfcj&SB+GP0?ID**p&dh9s1IQ^T041>^
zTj)?uL+Q3PTg%?*VkQEimF_Ms+-}&wsb4I1eTIOLi0`CXhZItAqy8uuqQb(A`V69v
zdlTf&yz#G#8kHmv;{ySJeqRh~ec-W)CHx`I$+9Po0Y>b#vw;+>6&4KK4qNl{+|H}G
z#O`m{>&nYHd1t=ejXB;ySV>4?^3cKjLNpKf-}6^bfdT`C6OTfNTG7u)rl-1!aC0JS
zHVAtE<#pxG6FAehe){%bg_Af6c{b#6OAMXV{ZqGP{H@@Rw@30n9E(5^TWmET(d7`O
z<`qSfnf0K(dTHam+L<>L>9cTRo6NTyKuX5RIsjqqhH<~g5|All1Q%UCehBls$fOeQ
zKSj?@B|IEW8b{%pg?vZ0*C6|Pqy5^xJ1XssPRX^5!lq+L;e^nrCG3i+H@Z0JHo5mP
zwgh0JH}ov4y@})~ErQcXZP;!73YvYE6H`aWU07Wp)oc%hu0qsptDz|-E{Xh?&3~}~
z_yr+%z@+hWYYv-XfBP#&?4~>g!_+CYrzNaUNOw&71WiA8s8c88-?&tb+xknSJb}Ri)Gvy~pDr8u1ABYJG25hFpxtC<$p}>OxamscnW~gFW
zqa0x$!eU%}hUx^Q?TRQbq>1qW*x0Hb7OpZ2EeJ?-g61UW74G`9S7&5ocy|swRR%#<
zyfUaLx?Im@|I-!85fc#s%99RN0Hl-Rl%!O`>feKA1Fw71;2Cgf&YfZLJ^qjc$yA4l
zYL>20>r({WiUw;DlgX+GvM7PlUoq++B@qC;il)_51@+xmL>UM47~M|l{GgbdijBSl+=bYp;`1%5`KX6
z8_np6&#vHcI-N4{U3hOd0_)&D)DQ4G4+1BKuF9&j-ZW~2L(VC}gb*Klw#$}8P0LC&^U<|JWy7nuCu`t0Rp{8bkO0s=>U#+BY1Y=ladKrYu{{VN
z`wP%w38?rDeopgDHwRJPSVMt5F7>k3`vkkm8cv`+HIg_xS?hJ!V9B|``JBZw|1^%f
zB=*{?oYY=qg(1&xJhA${%9&(k?&zlxD0>}b7=a+6VStd3qAyu#XK#I44ca@V2oTc!
zp-O7wXkYDNe%@}Ie;QD+TBw6$xI+}v5Fr)C4w*DO=4Yw<4dz{afUR02fu7O?M6tt9
zEEEv4@iw3zhD{BdUO40@*jKKhpg`NRzY=)~%>o=9KC4j}_JMX_g#82R+y#9~`jCx(
zf+!??24!6^q6G>Kqfbwf{XrHYoV!B5R1e-u7HA4aVt1i_faKTMmwhI=1yb~W3Jf>G
zAx&}Vp)0h%231#*$fCp{X$?6l9z@z6@VVniEm(wyICUY08Q+^O%LLd=hYgsO;1gb%p
z^D+WL6IeLtKP{mPXu$7X2bQR6kn2Gm4So%rhV-AHb6~E$Mgvdd2ORED&TdSWQ}3as
z%fM|>z+zEl9mhg)m4uUp2p|H7;T#{(2E`Zl&;?ctXwm>_0y=GI{62&D4R#>nW~V@)
zKSh5H00GESvrDH)<^HW(1CL@wj`I02;iD~(|E9#P>LFcdVnRQ#C!
zaCz22vCR^|AQSRt$qzH%fN%j&0U7@wjHSdBxZra;L3YjWx3
z9wgfW9Wh*iq*&v67Ze*Ws_pFZK85GsXWKphBXr*w9fjZEWW`?d+2Zu)*}|43N?WwW
zOuonXE7*@-oGU%aOI7&|t!J2?M=&mB{CG$cHwz19S5Q)(PhMAV#>0mX;jM=RC61UFc*^%2m&IySr$9n-tqC)Yk|_ia|Iwx&
z`;hDhzHE~*0t#i14DV)2$_5q$d^tVZ3B781yh}(yO9cU?aOmY$Kdo%vL~0_}jrvYS0gkS+
zonVt@YHK2yU1!vag0_p~BSWiMCbV5{b#^oK>Nw>j0axvSU5Dt(i{C?36fKs*VUlq1
zI$kNM)@6U}ZK^?c$BpJ~dsi25H5_qGgyPfV&j_MogrWba_r|s@s6Go4uZ8^$&M}(SJBS^B~_gPZ(5qScG^-piRKA8U!hJ
zz3l|{ir3}Gs~vCJRAic+oZf_O!V>S|u@5A`z6b&kiP4)l9;%$6tF*K9`=tPT0`AKH
zbe5zfrCYye3;-}`y7{`@_wt+6DP#mgTn{!XfHAt=r+CaGb
z{i6aL5dcuR@zNBhZ41
z^1^{^;sb3S;Cw<<@j?8jxc*bPZ$&>UT
zi#vMdidN|9%^F>D`%t8CC0&4+T=QyyIIJ8!$LDa0Ierz@HwqdITrT}$A**CU_b6#t
zPlS*RJ>xKy$Kn@obzyMK{pd?3J{930JpKK>FNG8Cc>CNe`cTGu>Wr04q;PskAH3pw
zEEq#d99X@5qn{-=O+i@-@a$iV`wlELtf(q~
z6^F1U22e=`7UE!hcZ{SUK-+UGSq!S^^CG^8iHis4UX}hK7xrK6M%7TMJ)UY
zaou4zR9gT-{?sGxu^R_Htn{_kWcYSwrXl`h_wI*jLr*g1JJRT!uJ|Mvhdkjm1aY%J
zsN?9S4jXj(O(TGYy&QU#0-KtKLsUZQj3}KI^%dY)5+1vz&_f+<%|svbKbhPIyMjW@
zoUP(D429IoR{FM7cgSHC!$~u4#FTkE9OH@EqL^3&I7X0*y_&TGVOb+$5d0?G(-sY+
zv-fGB^+xOzm=_TgP%6m9ZRC_IewD->XkeTg{P@T2CW
zH@$}&?HR}BiONh`Xrq4ZV$ov&S~*dmNX(3F8@t{E$2ijI*~cm?8pgV-Duo%sX|!S5
zj@fYkB%85hwvC-peI-*x79Af|mU{GE6~f}GbUyyOy-lXgEBnUh+2hHRdFH&?05jv1
z!(CBQ_uw-wE*93LZ=V4^Jt<}tz@AX<5;9!99z}3kD^g0NI)av7GN0!$AiK}1v`y)#yNNO<0e
zyc*8Pr@X~5vVp3|Y1yKy6sft(t*77KTH^H7?ozTrV9nl@A{T=)s3>rG+&3qmI^Iq#
zrnaTOC!?b)uVVd}>|ukWl=Z+wyL1$qwHk;r^%w%*2T?^v^m>oiq0oGm7xlGAK2%RiE-SRcEXRXiFvrMGkdYxS!Zw?Q6Qt3bVWr4gkJ|y
zj(*;JKUk!=YlB(-ix(*>Q)&>Jeg;MhcVfFzjUiJ$E@-`yGQq$g*$YHUJtnzR1Wv!x
z>3Y`#Q(ZYO07THS0791ob4SpOhv!$n`D@|eHX^1V2mK5|Mn!eTiZ?+Zbr+~mP`*RC
zA)v{>O3d12#yA$FM-$orVfS@NzD6}&_Bla2p{I379CZ#0V=>^`sV5{vdjJn!L&IJh
zm$7O7==`Ii@U*J>O7LWi{d?GrFN2zW>AEjX@0pkKw1G@}@lz~@8A%2DS|-4q!|u%3
zi6U2ESa#?}bcF?YaR7D@JgfksAA8`V?do;|Ma<~sv1VeaQ(KhHenwrUWr6YD_RsPW
z^`u7Mg$@^Gp6fTxzunWLt^IaGU#D+2FBaa{($*I4by68D63qs4y-H)tt^4cTpSp-{
zxV%oGq@nL@ku5kvxk*GDgY1C`AsJq7y)gH&3#Tx*bHyw)BY;G`$%Mhi(klL@5j!AP
z#Tv*iy8Mp+846(FnjXS{X#fNC3YAuXZkS&Ll?8o3t5xhmBdA84c9_mv==(u9*7)*}
zFMRH^g7}>-6}Wo>k(jU)J+YygD3WymhofXpPk_}P#65amX}p?01*jL`Shsc7NvQ}O
zF}FT&vsv_z&py*MXa@~xQ1{?hR+TZ(Zyn{DF0B7JAUalBX)
zIyC>JCOAhi8_;DWrIv1uQ&LO?dj{q2uh?cj>P=va$Hf=i;u&+8-OUjd70nxM&tThW
z^gc=8R*l4@{x23_vnM3@M<;qc#avWLbe)K5=vB9I&c)E!?;ipJovF@4vTY@>hX&wK
z%VCAM<&Ut8N69Rd78J+jTH0I#&0i1y>(SE}Qb$E9Hh#+=aDG^&{8
zQ`g%zgh8o$(A}D~hE$nbSRfsoKuxvb@Ibt$@Y=JXf10r)xPjsQ_r1to4lGoD8BkW|
zbyT6j$(><2%*fBq#qZVCCnDl#*;-KlZ0X+2(#~ux^|coOdlf`$4{~cB>fqtxYGrTG
z|A=8~AH@uv2IPYHH2@46+wtbAj*elcQjPBAXNp{2tvNpbSOv4`#LM34@&`wNbTcM6
z!hNH2-})2Zx?DVukZ|HHmbFX9G9MT%OVzsse9hgvm2-1-;3w0#WdlW7#}`OwxLJQ5
zAF0a>(R$p`80hGWQjfggil#rOV5iEx-V&c^8_%T?=@X<%9?HR+_OP2*+j@e+BJF00
zUOClAhA$Jvnh%Y6uAj`$o4)WI9~rsINN!s+$KFoA$9kh(a<(PD5c=ACCyW1KG5WIZ
zkmFV$=I777pj!bnV_e!co-zGRt;a7$0s{47Vo-r;5!rJ{S|roi;;J!(pPrnY{Mp>r
zLD$Dh!p=I+IruG7rbk>LX1S|ltl6$3Jt;z(uHMCbees0!dl;XiD)s;f
z^Pglmk(wg8$)28`Qg2N@xRtkEm6k~3O;8fD&ijhh91(3MmnC{`>TCPI?*_tw(aRca
zeDl)C_trmDVgo5S)y^?$f)(4kkjQa=4L#SF`kp(rS9JkF
zDXVBbkpUQ<+U1!p%^eagJMDywt}
zs0DQt9bmI3wNSKsgyYJ(_1?cgkAyce4)lBCogdPIhHoD|g8_KUoz$3pO2(`d>@b0l
zym#O&;>PqUgAM>)4_-ka1Q~b%5iY{$e5#FC(;ve=oba`!wOZD!MIzomj+E&MW9TH>
zfKPtg(n#eR^p9tXSQx1C=D#`fx7Fn?$s7HHZr;=6(tiL
z9Cr3==`}b77j8YmNq^;|xB0^_QCp6LhgOQK{J{_Gp};)}LBKeXG6hh0B!AKre-0NE
zC<1?7{zOh@XrTQ#I(2nMx4|(UidD7`9kupf(bG|kN=|*NEXr(TvM9u#^E*AT>H-xe
z-utlJiq>uVF?@n)SZIYukn#!KJ%APtU+Pp-df@W=^%Ux)Fe38+i?pA3RO9kbLup`K
zj2(-q2023(NZGAB!xq9q3ZF`y+ja0B2g
z4T2jgH*u{pz%SwV#>6Hp3wkB=t~=*>SQznIH0XQ-{A6;pi!Y;9_jiAeqiUkhRJ6pV
z)i5soGH8$6m=zfxoOHOd02(5!Eq=viqYp9a@_tuJcdOEiZ?x
zhW$P}!J&@^>sL?C3n_{rtrrNYB${F^L|bq#o}7xQ&w4&R5S)Kjqi@&X95{uo4m?N#
zhYWa9Ph(T9XEkUMVe6NI{x8vOf{fVvJ2F$uIg}iGH;Qj~e5kCv?Tuz-WtWN;nobZ(
zZCp;5Q~lWN-SOGUJENP-Ji?Nxf$MJMQjE=X!|H!=oIGBjALl&$4A7q&gUKH(bnh1~
zD~i3`utNB=zC>O1pBEZ&3=*6b)z4X7ul$bpyHcdRvlCmVX=Gm1Av`=+v&Fhys(>W4
zO@%L7BtG;EPxVT`R{-Vcog*F1?C#tlrhM|evC7AvjGPXJ%!J5CBOD*qPsjlzktfScOcFru1e-Qit`{)6%Db`D`LPBL+rZ*dyYcD0?x
zXM^`#VFzQM_+P;QJP78A!xg@TK#X*eP0(2dEoeU;T7w1L5eFMk{tOI>hR!!P4Cnxk
zb#ZkKZv6_@TIFOGXFt?4Kzh@LfXh%$yjk1EN#{e0NC5aR8dEaI_d@nvr`3mw
zCTdJwsBE#qr5OG``f#Z%5Lgrp3=DlB#-XTPymckbYP6u2HygBLyw0mpzH(_Qd2-ml
zT4>j3hp$2r>;`cekWst$V@SyRxJseA1bh)3Mhyr7BkOnWaHx`r+uN)I!lHd?4liVX
zsu_{DDzpyRhFQD7f6`6jzEderEj!}a{3Wk}%>DmC!}lLr8!7kOW5>kC2C;v}fAo1j
zfGa*T0^VW@CZGW43PuuRBr^_Ek$!^=&xZ>nVkJh6MED1AYdYz{lA`OkV(};r45=CU$_{CXof@_0|M9Z>e4r2MThI2L
z)X>}Nj36zAX*nSAuK?daQmN;%#tkAFBZrZ^#>mgbP=Vo7@}k0AqE{V9u*eCni_U#;
zuLOG-2_Wg9TZK~iV1NIgzK*#MsnEPak^tQ*+*-P?koH7qyrfGH=Rd%M>dS&QtK$gz
zHd)jjV7pIAD!Y$h^1!d33%MhYL7yNj`T61;!|`;n>p%LgJh8cl(FXUxt^*1z$EEH8
z&{sp@^A2`U!y3>rJ0Lt_uLm^|@pmLKOh^xO%%v}tsz^#?06a46%h;yT+9xl;{EqW?
zArh^?LgdJY?nA=~7AiSJgCNC&v$KolfDP<&*3-rPS8BERBMycLdVl%ynRfuNwxt)CVx(38SKW4yKu
zdZ+J5y_3lq?3dxQ%{BMimDHdi`KP^;RYXEgunl5jW7WZB4+JM$C9IDkUG^V9e`bk!
z61|3=8jV2$A2m9cO6#M75s?x+u?<;qCe&
zu?m`bbZ?M8eHj^fHj>u`)fPzp{vY<JlkxE7($xc#9qL7hn
zQT9qQBP}yT*&`&0k|Z-D6++1P-ruLsxvuMX`~7=;Z@1qczt2DCb57@Yd%s@K@p#)%Y8u#H
zAy<-Je8D!W|MMndgb&L0cS-p0D7M)!*au?~uCA@2Qa$!V=E8P}KCw4If<%NfGBC^`
z-=a!be+1hK2^#+qf{GTEmsU*q|0~TQ9F&P%h_U*6ELmWB%Ktd${_mWg|BF9WU*Ml%
zYtjG4Ksgd(pdzGW9nan=_uN*ZeOQ
z@bu|Zp5XNl7=y$Y_W#hlG(2Cy4*G9}%lx|()oX^(DnneZYe>apy;%D8^JhQQ|4G5T
zIGLl>F@p^1n4vKG-H~6|H`-V6@FzOVF(c-fg?mr!f?VP1V^rY^uJ6iq^MX4=k1JB9DX1g
zl=qKT&)}@i(Ln+njq|j$dS;%MQpJ?UP32%{)S-9#gF_I_m>~)qyp{Y+p|F&W-#1Oi6RNZPnB-LrWZ0sPXFUfTMSXHrh$ICVr;lHE~|xKznE)jL4E3{z3}6j-xpXk
zIy}s?c}~S|Z4sk~_!?M*jkd)p)4B8(5Ctw_%qoIBZqyToX0jc*-utEn2R(G>9ll4V
zaY$fug|wxBg@g1HS`MpqQJxwfpN#S;#*Ow=>^b~bn@b;T8Z;Mot9VQmt%c(5LWB3x
zzWGbn@jGJXT{y@h!($!rG=0<;~6fByVZc>J62x9*iUGCqs!SARDmbZnatJ*IAFAl(B-Jdkn?
zUwvS3Wh6p#OtQaX^>@eW*;93Icry9J!HP4pz1KFG5V!EI}z>c>lRj*u3M8{Q9L^(Ke$@
zQM?y{b}5I5B*+40-sRtR2akiPcrPKD1$76+6wr=qO!W9sq(*#pzdZgps_c1t`CZW}@i9(7JS`
zF`~YQAYa*MFA?IF2pSYF*hzdBr;6cOLu9=@t{rSPh(D2##TB)Pl@dB)rpAkbw}8Pb
z$<1Ues6dICBl+R(H3mA}1OTtOhmxO>#=Wf}9in>^lsBJ%`Fq~bZ?rKlv9L5<{yC(&
zKv2g^AFFWv{1xsnO@5-N_adZC-l%(V7hZ48LH-t^=HkfCDpW{NjAPLuW6HAFeggOt
z;7vIYp7?qkVsvfZWbsbYCmBXw#pmM?S;TSjb7=MKLyeyVd7;<@{+@pvkF9~?GZvJm
zAUnxXSVKOww(1%C58G-e?E;l7^4RS03^WN$0{XUmJBeHxun`y|C3WE1p=VED!K(r
zq`A;SK{f@OTrS`!lo4Kc@7~2RcmaQzpq)DT6&jb{numi6A}w)|pYWuBhF^Q{X)X0b
z^$#aJgZ2mqV7{arrZ^*xs#kUoSEaUP`PzIB3WI3w{cMI3D~E&M2TGrAXPGeE6Na;x
zFrShOCX%nX%k>YW?fgMQL7{#CV;G4?>H-;@IA7G%$h!`P4;{U45Aw5tCNs_Kfr&RN
zGDsy)Ld%2$Gr>gtu3lifDHqT0;pi|ux{9p6I;jsidRLtd_!fMQF;_hfGQ8Ifa_X)m
z!PSG(KsqG}*Z*{|lc9t0Rf_u^+mBxz(|wIf!(wE3IGk&F$?t;yWnCwPmN2D;enSzY
z!3v{HV%L;eiKEC((c2~y1g;0=n06+ZVmBF>R17|QW?ssA&PlCZ+hUlZ@&L7I(iOSj
zb)iflIJu4aFMkzZ8CKWcH6)&wpi1JhEUcc7Awk<1k)#out$Tc~{+cw5%C9m43ds
zcW<|L5>8oMgAV}lus@mka8cTSJs1KXpwN^rw$LBY=z`6W>^8wJAW~A)rP*0Pvi6%N
z&gSI`kepp(en9_Z>N-}BCAFA3w|Z%dLnfhjtMZ!nsi&wTYktfQGOh8Jkw#VGK5S%-
z(o*DB@p41$+!q^o-tvVHtqO8>{yQ^lak!p1>oemNtkDc|DBDSiwvWAs{76QngLRec
zW}`(9jT5zN(wfN)l6lj!f#fX~A~_VO3CT`y7&m+ByYq?jINKM5`o`?9aMD->Ze3{h
z_$vzZVsC<(XauGhSLL1MsdJRKczO?dQ}vz3vtc*@F6P#{@0Rt|Aqq!s0S5BDI^7>}
z4;-t$!d)rDOBjSravOe!9TglM52e3F6f2V{9sP6RY0ZFkTy&s033*uNs74iQQW@!8
z@{s$qE|$9m%(cmMqDIvZ$HaFBpYE}3?nl5L69u_c;htb8eZz$lQ>*AD!e+e?7!m%~
zND%eG`hpH~Nq)YN>&X(w2ma%Ble#T@p+FiCcde;fTpU4EWpv_v(4#y1&iqJ`$-%lj
zR_1J6Mi=fn!vJ9nGv8Sh(MFf?;-#*p?=!ohDW=8G9D@lqPtfKpW6<*6^k7P6o-Trk
zwdgjxaZ1gpp%?oHxQ|Jd?e7h+GPcs1bLXeTb19#oaa3At9R_
zehtvc#F}tu<}MZpx}PN9IG|B`D6spYxPbO*qtGqZsx#mf(O)98JW!g7blb*Wnk3~nfYVu%
z)Uxi%6CV-{7NB{;ewFtbpZfX$PPX+(SMD!YuE@OAXgnAAHXBDzr90SkU-0WpqHJ{1
zlK33fP|2!D+rGlYIqHq24<2o=4IX*ur^y}!po3gl+kxO`*8@kezm$L5x`hNXA8h2Q
zuxs>T??XN(+byq#Tm}24HgqdAJLOrls$abD8*Pf15Obq>$4Q6BCiR(zfqS@4qsPP7
zhQUnQUL#X`C44!YF)fzz7Pl|IAbu|7bi~0KFfV925~P>9i%=nPiqQpO>YPN;FS!c?
zB(<7@+IAz%``?Ck7#A8$!CxoDb9WmESoLxA)e=voPCaK4;Z|_v
zTF5HId>dZols4V&Vh8f5wRRB$5{?kw-6i{J`YD-bBzd)#I#T!TpmU6bfPX*UL)KX-
zeg<(X7dOj>=;4{?T^815Qr)e9Pv^@ydYixwzd7$HL*5?%xdH)*fcCwjWhrbq_Y7Dz=bdfL0
zxlw~W%!I&;wS50rx?@LlB9A0k0&8c^x0=0F7QcD-x4RA3+=ws4nd&U%uAsDz_#EDG
z-E3{jzDv4v&_^A7&y}zMdDQr)yg|y$N24s!4e7F)IvQoMBmxMM$u3}OIPa($)*q>I
zu}AwCk2sy?{#9mfx-?N&^*c9|cJDyH8L~-qn*2LUqCqHwh-zWP;CqeQquoDE7?>T-
zzNLKK*^>Q(;czmkfyNr83=OZ~oP}j?`UrzA_w_(sL8=z*jkm9R+WE^aug=jXbNnE
z6q^jb1MHvX*ruK^P8cK}a1N+o_XhV}};NY{Q#1|7}%roP$sgKt!|aC&*Wr;MVah4s+{
z;n-Ba8>wd_5?Zn)sU1>2rjLwivcW#-(UTkD@})$h^N|WJV%=p;`q+0{F@f%0w7X}L
zH=~|}#(W`yOSyMr0`=#iYh?XrbpYb{o>)Ts}vor!ukd4*7}f)TQX<5ndF!^c?*N9C+$Yi$4RY
zi1IW~I0cD^*n5vQQMPTg>yV02YxWkEDRy?UG1v2bFN%X#1c{ldpih
z8|m=aHw;kO9dka?%aGB_Oa0xk@TP{{1?7LSfE`kl@gEDw(tQ7wI2{H~dgRM(J8S3Y
z*X@ZALf))Z5Te-q^@EJVK{m#^^=Gys?rHZh2CCgH?XmTX``*8tR$3B4_fm8ie>nKD
z$$h*n%Syv9G!822$4|${-#j(`15x!IVU4PfFCzG^^Ya}_>MW8{fA#UX=gyw&r!_iU
zo}AxjXS>beV0J)I9S)m&N|(ueIh{g-d>I06PE+JV2hfrHbZ*|;6W4j!OONRu4qt=2
z+2Own?th|QjZ7KBG
z(2!Kq7t^4IKpoFci@1OQRA$OxEz!*q5im!A2JZjDAca4Ev;w#)Mu>fK?x_B_o$`cy<4ujF#i!c$o`MA`kgy5cr`3t~DN
z17>bdU>Dj=F{WL7%}a%i0TmBO(_hx%rK0JJ;^SCMT)9uPrptUh%@{O93
z?;oedS~)*IzX^?J=hIIAR^A^uS`ST|tqKtB>|)w44fVLN{d|34&k1q(Gwjv`{F`Rw
z03@o#(srv4ZE6pwC>60F7P)R%)xDiu+t*t(IaJF{!P))F)ekif0ot&!>ZN@AM=NB@
z*N;|_OU-|~`waBMurB4WdmM=oHs%}u1VtY2L5lAQ?7sI@|GWv%@cqE#BrjS65ew3Z
zvAKip*}?guSxPdRF|C&=22GB2^_3%xU6MBM+nQWXmg@wkruOWTl1Xx$r#4=#-mQP4uH@bd37?8wJ-ceoc{AcG&0Si52}R<(uU96!
zPE81%_ShF%+#at@UB*~dQBF7WM9ad0I3NtC;60+m^a5&@JLuI%nCWPRq>W085365)
z;J1{swyf7m6B~ODw
z7bzQikN%Ta&5p)Qjg^x#n~OiN-ZJ4#BjZt;RrVU*rp9A5#kRQa09N*Ft{p7`2EjD2
zB_tzn_u`!SYdUfqJjo)KWzNOjYw8I*0j=8h(b3QZM_dBj1GP$h<+*Id#ds&alj8$s
z`l7Jx0SINykYf{%3qbF~aSz_4z6Yi!)g;_2_{y73`=jJI_k$GSDGUe^*s@OP4hL8
zj_vgQZq5eYdI&o(shob*R{YhPl!>{acVjSK%^0
zS??uXM`5|F!XaekFUXbv9Qdw79^`k!Fgbg%N4JM5cf58rT4x#sTgXbjnDoH+JI-B3
z8F`adX69ALgSw^!#huq%B=Xqd!6Ni~7
z?lW{x$V<6MTL2L_F8L9ro0o%M0{}v{Z>j)xTblhy9k&MN3=!owU+&aE%#*DAhabfb
zpE}e^>b$CuskHb3UW532=&J&o#1&NIi+fUI=|AevP{tGhy2Mxn=kLnHmntQJ`Qh&+Sp+jgc=Rr=_t0n``gFI8{qK{x^Qckz>t@9t7x
zp6M@U_C29l$~|b&KMR9{z&ElP3luB_9xfm`;`}4?rx`W7pAHq-Ip8{Fkl_+Kl*ILB
zX6rb?=Eob-p(u{ftId6a!At@ia?Ee|Rw3IqOqS#xKNRGhXFE&AoLU9Gk^TC_2Ktff
zo1vroQXD5F3e0gJn+)y6C58mO_D;QDuTo^iVDnY;ah_?7o?
zM}T1cG&&&YbR=x3PPn{^YsM8D>*O%SOTppZ2m3tQ$8sI-U86fPFv>!Jg~@|EN4JV+
z01Q~)yn>IHm+&QaS!V_=SN${oDiPr=0k#08*PXua&cqh8nN*>
z5BOHr&|R=YUQEo`CGPp)9owHiL7N%*Mw@fK2kkGvXF(&#bSThDZ`qKJo`t2R&pgJO
zU1NCq@u})(3%5<;&^Ul&Gpx?>GxN?v-k`hLPU}mHQ?a-UpIVk%W+1nkNYfkWKnu_T
z2g2s!s|e{nO1&;*qGyukk`k@s{B>Khsd6xsZ5S%iY;i*1P!h|*_*YQMT}1gR?$Xu9
z7Zu9B8&QNZ*^qATU_E}u!&KquWzpMKkHTjn>CB#60K`?bRo?;+KXsM6W&5i{vE=&X
zwD@bm>)#NyC7%N?+I5W{@(swOkSMUvi;Ow2{tEY+=%=
z5-XH}4?oOu(y%Qz1DjR9RqU}Oe?DHHQ=4OzXMyBr&zI#^ZF$j59vvI6tj|B$fWLOH_|p4W>cN
zHdb(Rh!PiSD}GJj6szARL6%%h`B>c5f%$X#iq$v31*bwR)u~nt5BroeD%9PTJFRV_TFAj@%_720=GE2Wcd;~ov!xu-f7hS}O%zc0#@m3B0F%C%8#
z9GUFY-nhuh*re^mDK36FZh2qKx#i#x^{1h#m9`q6xe+w~imz;|mhvZgdi=;cx8P-|
za}8M|6k~hXPu}cm#-{}b2WRr55KK(p#zEJ>c(j*xgRY4$v*Lw&{vy
zR4(8HA0B&Pg>C9qS-PpSzP=9pi?;Rz+`;^x-)`J2zF)?m$w&8L{IARa1ByULyYe3S
zOF|cmLLKmzF8*JcT;$Ju7%0D=l1mfXqlaamjS0IoJYylc#5=xc0j
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

?>?NQl_|YWw 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/23/results/mcp-server.log b/notes/mcp-apps/experiments/23/results/mcp-server.log new file mode 100644 index 000000000..c114d9c3b --- /dev/null +++ b/notes/mcp-apps/experiments/23/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: c9405edf66bb4c7b84d99a9a69f2f9b2 diff --git a/notes/mcp-apps/experiments/23/results/reference-host.json b/notes/mcp-apps/experiments/23/results/reference-host.json new file mode 100644 index 000000000..d50f3b989 --- /dev/null +++ b/notes/mcp-apps/experiments/23/results/reference-host.json @@ -0,0 +1,31 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-23.tyyIsW/page\"}", + "rendered_input": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-23.tyyIsW/page" + }, + "failure": { + "error": "AssertionError('Locator expected to be visible\\nActual value: None\\nError: element(s) not found \\nCall log:\\n - Expect \"to_be_visible\" with timeout 5000ms\\n - waiting for locator(\"iframe\").content_frame.locator(\"iframe\").content_frame.get_by_role(\"button\", name=\"Return inline\")\\n\\nAria snapshot:\\n- button \"🌙\"\\n- text: Leaf:leaf_open_page\\n- button \"×\"\\n- text: \"📥 Tool Input 99 chars ▶ { \\\\\"page\\\\\": \\\\\"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-23.tyyIsW/page\\\\\" }\"\\n- iframe\\n- text: \"📤 Tool Result 859 chars ▶ { \\\\\"content\\\\\": [ { \\\\\"type\\\\\": \\\\\"text\\\\\", \\\\\"text\\\\\": \\\\\"Decision: where sessions live: Opening t… Server\"\\n- combobox \"Server\":\\n - option \"Leaf\" [selected]\\n- text: Tool\\n- combobox \"Tool\":\\n - option \"leaf_open_compact_ask\"\\n - option \"leaf_open_page\" [selected]\\n- text: Input\\n- textbox \"Input\": \"{\\\\\"page\\\\\": \\\\\"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-23.tyyIsW/page\\\\\"}\"\\n- button \"Call Tool\"')", + "url": "http://localhost:8080/?tool=leaf_open_page&server=Leaf&call=true", + "body": "🌙\nLeaf:leaf_open_page\n×\n📥 Tool Input\n99 chars\n▶\n{ \"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-23.tyyIsW/page\" }\n📤 Tool Result\n859 chars\n▶\n{ \"content\": [ { \"type\": \"text\", \"text\": \"Decision: where sessions live: Opening t…\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/23/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/23/results/reference-host.log b/notes/mcp-apps/experiments/23/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/23/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/24/README.md b/notes/mcp-apps/experiments/24/README.md new file mode 100644 index 000000000..7514de3d1 --- /dev/null +++ b/notes/mcp-apps/experiments/24/README.md @@ -0,0 +1,29 @@ +# Experiment 24: Full-page accessibility and return path + +## Purpose + +Complete the successful full-page run while recording, rather than rejecting, +the reference host's post-fullscreen display-control state. + +**Changes from experiment 23:** + +- After requesting fullscreen, record the button's hidden/text state and the + resulting page dimensions without requiring `Return inline` to be visible. +- Continue to Axe and the keyboard choice. +- Change no Leaf implementation, resource, cookie, fixture, or interaction. + +**Expected outcomes:** + +- Inline and fullscreen dimensions confirm the layout transition. +- Axe finds no serious surface regression and the console contains no Leaf + failures. +- Choosing Redis from the nested iframe appends an ordinary `choose` action to + the page's durable event log. + +## Findings + +Inline Leaf measured 1060×332 with a 2,857px document, no horizontal overflow, +all five representative widgets present, and runtime presentation complete. +The run then called `evaluate` through the wrong Playwright frame-locator API +while reading the now-hidden fullscreen button. Experiment 25 uses the same +role locator that successfully clicked the button, then continues unchanged. diff --git a/notes/mcp-apps/experiments/24/commands.sh b/notes/mcp-apps/experiments/24/commands.sh new file mode 100644 index 000000000..278bdd644 --- /dev/null +++ b/notes/mcp-apps/experiments/24/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/24/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-24.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/24/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/24/observe.py b/notes/mcp-apps/experiments/24/observe.py new file mode 100644 index 000000000..370927352 --- /dev/null +++ b/notes/mcp-apps/experiments/24/observe.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Complete accessibility and event checks after fullscreen negotiation.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + body_call_record=True, + tolerate_mode_control=True, + ) diff --git a/notes/mcp-apps/experiments/24/results/bundle.sha256 b/notes/mcp-apps/experiments/24/results/bundle.sha256 new file mode 100644 index 000000000..11bd39ffd --- /dev/null +++ b/notes/mcp-apps/experiments/24/results/bundle.sha256 @@ -0,0 +1 @@ +4e32e5fc698de054a091836d429c7680a626650ffbb143d1b8ac762d784c470c skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/24/results/failure.png b/notes/mcp-apps/experiments/24/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..1da539ed2c240f5e743d42bdac0865ced925fba0 GIT binary patch literal 122840 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/24/results/mcp-server.log b/notes/mcp-apps/experiments/24/results/mcp-server.log new file mode 100644 index 000000000..e02f56a1f --- /dev/null +++ b/notes/mcp-apps/experiments/24/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 2c083b4b75604613a6feafdc6b2c6ac6 diff --git a/notes/mcp-apps/experiments/24/results/reference-host.json b/notes/mcp-apps/experiments/24/results/reference-host.json new file mode 100644 index 000000000..2efa7263d --- /dev/null +++ b/notes/mcp-apps/experiments/24/results/reference-host.json @@ -0,0 +1,63 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-24.5rf3NX/page\"}", + "rendered_input": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-24.5rf3NX/page" + }, + "inline": { + "viewport": { + "width": 1060, + "height": 332 + }, + "document": { + "client_width": 1060, + "client_height": 332, + "scroll_width": 1060, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "failure": { + "error": "AttributeError(\"'FrameLocator' object has no attribute 'evaluate'\")", + "url": "http://localhost:8080/?tool=leaf_open_page&server=Leaf&call=true", + "body": "🌙\nLeaf:leaf_open_page\n×\n📥 Tool Input\n99 chars\n▶\n{ \"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-24.5rf3NX/page\" }\n📤 Tool Result\n859 chars\n▶\n{ \"content\": [ { \"type\": \"text\", \"text\": \"Decision: where sessions live: Opening t…\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/24/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/24/results/reference-host.log b/notes/mcp-apps/experiments/24/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/24/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/25/README.md b/notes/mcp-apps/experiments/25/README.md new file mode 100644 index 000000000..4143b045e --- /dev/null +++ b/notes/mcp-apps/experiments/25/README.md @@ -0,0 +1,27 @@ +# Experiment 25: Completed full-page evidence + +## Purpose + +Finish the full-page measurement with a valid read of the host's post-fullscreen +return control. + +**Changes from experiment 24:** + +- Read `Return inline` visibility from a role locator instead of calling a + locator method through the frame locator. +- Change no implementation, host, fixture, or other measurement. + +**Expected outcomes:** + +- Fullscreen dimensions and the hidden return-control quirk are both recorded. +- Axe and console output characterize the composed app. +- A nested keyboard choice appends and replays as an ordinary durable Leaf + action. + +## Findings + +The page again reached fullscreen, then Axe rejected the Playwright +`FrameLocator`; the wrapper requires a concrete `Frame`. Earlier successful MCP +App experiments already use `page.frames[-1]` for this exact nested boundary. +Experiment 26 adopts that proven call and persists fullscreen readings before +running Axe. diff --git a/notes/mcp-apps/experiments/25/commands.sh b/notes/mcp-apps/experiments/25/commands.sh new file mode 100644 index 000000000..988bc746a --- /dev/null +++ b/notes/mcp-apps/experiments/25/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/25/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-25.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/25/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/25/observe.py b/notes/mcp-apps/experiments/25/observe.py new file mode 100644 index 000000000..72fdddafe --- /dev/null +++ b/notes/mcp-apps/experiments/25/observe.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Complete the full-page accessibility and durable-event measurement.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + body_call_record=True, + tolerate_mode_control=True, + ) diff --git a/notes/mcp-apps/experiments/25/results/bundle.sha256 b/notes/mcp-apps/experiments/25/results/bundle.sha256 new file mode 100644 index 000000000..11bd39ffd --- /dev/null +++ b/notes/mcp-apps/experiments/25/results/bundle.sha256 @@ -0,0 +1 @@ +4e32e5fc698de054a091836d429c7680a626650ffbb143d1b8ac762d784c470c skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/25/results/failure.png b/notes/mcp-apps/experiments/25/results/failure.png new file mode 100644 index 0000000000000000000000000000000000000000..29ac109710d744b81d83490344e37c2de6799803 GIT binary patch literal 122697 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
    -9frZ;eX-V}$ts0pA{MtA9`7|2^{P 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 z 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 aT4sh8TS=vDT~};@A`G6celF{r5}E*ga1Sv6 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/25/results/mcp-server.log b/notes/mcp-apps/experiments/25/results/mcp-server.log new file mode 100644 index 000000000..d4632187c --- /dev/null +++ b/notes/mcp-apps/experiments/25/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 30d7c6598f764679a35817c58a33aa37 diff --git a/notes/mcp-apps/experiments/25/results/reference-host.json b/notes/mcp-apps/experiments/25/results/reference-host.json new file mode 100644 index 000000000..ba4077cfe --- /dev/null +++ b/notes/mcp-apps/experiments/25/results/reference-host.json @@ -0,0 +1,63 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-25.BowDLq/page\"}", + "rendered_input": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-25.BowDLq/page" + }, + "inline": { + "viewport": { + "width": 1060, + "height": 332 + }, + "document": { + "client_width": 1060, + "client_height": 332, + "scroll_width": 1060, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "failure": { + "error": "AttributeError(\"'FrameLocator' object has no attribute 'evaluate'\")", + "url": "http://localhost:8080/?tool=leaf_open_page&server=Leaf&call=true", + "body": "🌙\nLeaf:leaf_open_page\n×\n📥 Tool Input\n99 chars\n▶\n{ \"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-25.BowDLq/page\" }\n📤 Tool Result\n859 chars\n▶\n{ \"content\": [ { \"type\": \"text\", \"text\": \"Decision: where sessions live: Opening t…\nServer\nLeaf\nTool\nleaf_open_compact_ask\nleaf_open_page\nInput\nCall Tool", + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/25/results/failure.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/25/results/reference-host.log b/notes/mcp-apps/experiments/25/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/25/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/26/README.md b/notes/mcp-apps/experiments/26/README.md new file mode 100644 index 000000000..cdc7e1259 --- /dev/null +++ b/notes/mcp-apps/experiments/26/README.md @@ -0,0 +1,34 @@ +# Experiment 26: Concrete-frame accessibility probe + +## Purpose + +Run Axe against the concrete nested Leaf frame, following the proven compact-app +experiment pattern, and complete the durable event check. + +**Changes from experiment 25:** + +- Pass `page.frames[-1]` to Axe instead of a `FrameLocator`. +- Persist fullscreen dimensions before Axe runs. +- Change no Leaf implementation or browser interaction. + +**Expected outcomes:** + +- Inline/fullscreen measurements and the host control state survive separately. +- Axe completes against the Leaf document. +- A keyboard choice posts through Leaf's existing server and appears in the + append-only page log. + +## Findings + +The full experiment completed. Inline Leaf was 1060×332 and fullscreen was +1068×806; neither had horizontal overflow, and both retained the complete +2,857px document, six headings, five representative widgets, and runtime +readiness. A Space press on Redis appended the ordinary +`session-options / choose / opt-redis` event at sequence 1. + +Axe reported one moderate `region` violation, still needing its node detail. +The only console error was the reference host's missing `/favicon.ico`. The +fullscreen return control was hidden because Leaf treated a partial host-context +notification (container dimensions only) as an empty capabilities list. +Experiment 27 preserves capabilities when that field is absent and records the +full Axe report. diff --git a/notes/mcp-apps/experiments/26/commands.sh b/notes/mcp-apps/experiments/26/commands.sh new file mode 100644 index 000000000..63ea9e49e --- /dev/null +++ b/notes/mcp-apps/experiments/26/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/26/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-26.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/26/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/26/observe.py b/notes/mcp-apps/experiments/26/observe.py new file mode 100644 index 000000000..e7373e51a --- /dev/null +++ b/notes/mcp-apps/experiments/26/observe.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Run Axe in the concrete Leaf frame and verify its durable event.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + body_call_record=True, + tolerate_mode_control=True, + ) diff --git a/notes/mcp-apps/experiments/26/results/bundle.sha256 b/notes/mcp-apps/experiments/26/results/bundle.sha256 new file mode 100644 index 000000000..11bd39ffd --- /dev/null +++ b/notes/mcp-apps/experiments/26/results/bundle.sha256 @@ -0,0 +1 @@ +4e32e5fc698de054a091836d429c7680a626650ffbb143d1b8ac762d784c470c skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/26/results/full-page-fullscreen.png b/notes/mcp-apps/experiments/26/results/full-page-fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..b21246f0c1386d5d7a193488be6e837d2668c2d2 GIT binary patch literal 122832 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\n\t\tMessages:\n\t\t* Some page content is not contained by landmarks\n" + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "screenshots": { + "inline": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/27/results/full-page-inline.png", + "fullscreen": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/27/results/full-page-fullscreen.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/27/results/reference-host.log b/notes/mcp-apps/experiments/27/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/27/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/28/README.md b/notes/mcp-apps/experiments/28/README.md new file mode 100644 index 000000000..1b3517cea --- /dev/null +++ b/notes/mcp-apps/experiments/28/README.md @@ -0,0 +1,26 @@ +# Experiment 28: Landmark-clean complete Leaf page + +## Purpose + +Resolve the exact Axe finding by giving Leaf's existing top chrome its native +header landmark, then repeat the composed app measurement. + +**Changes from experiment 27:** + +- Create `.lf-banner` as `
    ` instead of `
    `. +- Add a browser regression assertion for that semantic element. +- Change no layout classes, contents, controls, app transport, or interaction. + +**Expected outcomes:** + +- Axe reports no violations in the complete nested Leaf frame. +- Inline/fullscreen dimensions and horizontal overflow remain unchanged. +- Fullscreen return and the durable Redis keyboard choice remain green. + +## Findings + +The composed page passed unchanged layout and interaction evidence with the new +header landmark. Inline remained 1060×332 and fullscreen 1068×806 over the same +2,857px document, with no horizontal overflow. `Return inline` stayed visible, +Axe reported zero violations, and the Redis keyboard choice again appended the +ordinary sequence-1 action to the page log. diff --git a/notes/mcp-apps/experiments/28/commands.sh b/notes/mcp-apps/experiments/28/commands.sh new file mode 100644 index 000000000..e05e7c816 --- /dev/null +++ b/notes/mcp-apps/experiments/28/commands.sh @@ -0,0 +1,46 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/28/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-28.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py +uv run pytest -n0 tests/test_render_controls.py \ + -k test_a_page_that_asks_nothing_carries_no_terminal_control + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/28/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/28/observe.py b/notes/mcp-apps/experiments/28/observe.py new file mode 100644 index 000000000..cd4e51ca9 --- /dev/null +++ b/notes/mcp-apps/experiments/28/observe.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Verify the complete Leaf app after adding its banner landmark.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + body_call_record=True, + tolerate_mode_control=True, + ) diff --git a/notes/mcp-apps/experiments/28/results/bundle.sha256 b/notes/mcp-apps/experiments/28/results/bundle.sha256 new file mode 100644 index 000000000..78fc104de --- /dev/null +++ b/notes/mcp-apps/experiments/28/results/bundle.sha256 @@ -0,0 +1 @@ +35ad0d03b91e8903e7132e8916172f78a2b9226389e336addca8d2f53b23963f skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/28/results/full-page-fullscreen.png b/notes/mcp-apps/experiments/28/results/full-page-fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..2c950ba5455abe68a660785c4ccf8574a06af0fc GIT binary patch literal 123355 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

    Z5yF|paZn9ge40bZ0< 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

    cyea7zW;5Jt*3d|(#j>qsc1xD#`< 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/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +if [ ! -d "$reference/.git" ]; then + git clone https://github.com/modelcontextprotocol/ext-apps.git "$reference" + git -C "$reference" checkout 10195ad91851502134930e9b80ec2c04e277a720 + npm --prefix "$reference" ci --silent +fi +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +npm --prefix "$reference" run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' ../../node_modules/.bin/tsx serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/3/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/3/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/3/observe.py b/notes/mcp-apps/experiments/3/observe.py new file mode 100755 index 000000000..2cc85248f --- /dev/null +++ b/notes/mcp-apps/experiments/3/observe.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Drive experiment 3 after the reference host's form has stabilized.""" + +import json +import sys +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HERE = Path(__file__).parent +source = HERE.parent / "1/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_1_observe", source) +driver = module_from_spec(spec) +spec.loader.exec_module(driver) +driver.HERE = HERE + + +def main() -> None: + page_dir = Path(sys.argv[1]).resolve() + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 720, "height": 920}) + page.set_default_timeout(15_000) + console = [] + page.on( + "console", + lambda message: ( + console.append({"type": message.type, "text": message.text}) + if message.type in {"error", "warning"} + else None + ), + ) + page.goto(driver.HOST) + expect(page.locator("select").nth(1)).to_have_value("leaf_open_page") + tool_input = page.locator("textarea") + expect(tool_input).to_have_value("{}") + tool_input.fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, frame = driver.app_frame(page) + expect( + frame.get_by_role("heading", name="Where should a session live?") + ).to_be_visible() + expect(frame.locator("[data-option]")).to_have_count(3) + + option = frame.get_by_role("button", name="Redis, cookie fallback") + option.focus() + initial = driver.measure(frame) + screenshot = HERE / "results/compact-ask-420x360.png" + outer.screenshot(path=screenshot) + + option.press("Enter") + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + after_choice = driver.measure(frame) + event = read_events(page_dir)[-1] + + page.get_by_title("Close").click() + expect(page.locator("iframe")).to_have_count(0) + page.get_by_role("button", name="Call Tool").click() + _, frame = driver.app_frame(page) + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + reopened = driver.measure(frame) + + print( + json.dumps( + { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "initial": initial, + "horizontal_overflow": initial["scroll"]["width"] + > initial["client"]["width"], + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "after_choice": after_choice, + "after_teardown_and_reopen": reopened, + "console": console, + "screenshot": str(screenshot), + }, + indent=2, + ensure_ascii=False, + ) + ) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/3/output.txt b/notes/mcp-apps/experiments/3/output.txt new file mode 100644 index 000000000..d6b8c95bc --- /dev/null +++ b/notes/mcp-apps/experiments/3/output.txt @@ -0,0 +1,59 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.57s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-3.PGIIDo/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column +Traceback (most recent call last): + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/3/observe.py", line 98, in + main() + ~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/3/observe.py", line 41, in main + outer, frame = driver.app_frame(page) + ~~~~~~~~~~~~~~~~^^^^^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/1/observe.py", line 27, in app_frame + expect(sandbox.locator("iframe")).to_have_count(1) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/sync_api/_generated.py", line 22365, in to_have_count + self._sync( + ~~~~~~~~~~^ + self._impl_obj.to_have_count( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + count=count, timeout=to_milliseconds(timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + ) + ^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync + return task.result() + ~~~~~~~~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 465, in to_have_count + await self._expect_impl( + ...<5 lines>... + ) + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 128, in _expect_impl + _record_soft_or_raise( + ~~~~~~~~~~~~~~~~~~~~~^ + AssertionError( + ^^^^^^^^^^^^^^^ + ...<2 lines>... + self._is_soft, + ^^^^^^^^^^^^^^ + ) + ^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 60, in _record_soft_or_raise + raise error +AssertionError: Locator expected to have count '1' +Actual value: 0 +Call log: + - Expect "to_have_count" with timeout 5000ms + - waiting for locator("iframe").content_frame.locator("iframe") + 14 × locator resolved to 0 elements + - unexpected value "0" diff --git a/notes/mcp-apps/experiments/3/results/mcp-server.log b/notes/mcp-apps/experiments/3/results/mcp-server.log new file mode 100644 index 000000000..e3666b590 --- /dev/null +++ b/notes/mcp-apps/experiments/3/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: b27eabbe472742979cd6e8eb34f78773 diff --git a/notes/mcp-apps/experiments/3/results/reference-host.json b/notes/mcp-apps/experiments/3/results/reference-host.json new file mode 100644 index 000000000..19765bd50 --- /dev/null +++ b/notes/mcp-apps/experiments/3/results/reference-host.json @@ -0,0 +1 @@ +null diff --git a/notes/mcp-apps/experiments/3/results/reference-host.log b/notes/mcp-apps/experiments/3/results/reference-host.log new file mode 100644 index 000000000..ffac1f3d7 --- /dev/null +++ b/notes/mcp-apps/experiments/3/results/reference-host.log @@ -0,0 +1,18 @@ +(node:74906) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. +(Use `node --trace-deprecation ...` to show where the warning was created) +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + +NotFoundError: Not Found + at createHttpError (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:861:12) + at SendStream.error (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:168:31) + at SendStream.pipe (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:468:14) + at sendfile (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/express/lib/response.js:1014:8) + at ServerResponse.sendFile (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/express/lib/response.js:411:3) + at (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/examples/basic-host/serve.ts:127:7) + at Layer.handleRequest (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/layer.js:152:17) + at next (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/route.js:157:13) + at Route.dispatch (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/route.js:117:3) + at handle (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/index.js:435:11) diff --git a/notes/mcp-apps/experiments/4/README.md b/notes/mcp-apps/experiments/4/README.md new file mode 100644 index 000000000..9b13df91e --- /dev/null +++ b/notes/mcp-apps/experiments/4/README.md @@ -0,0 +1,29 @@ +# Experiment 4: Use the reference host's own runner + +## Purpose + +Run the same compact ask with Bun, the runner declared by the pinned reference host, so its sandbox server resolves `import.meta.url` and serves the built iframe proxy. + +**Changes from experiment 3:** + +- Launch `serve.ts` with `bun --watch`, matching the official package script, instead of `tsx`. + +**Configuration:** + +- Transport: streamable HTTP adaptation of the shipped stdio MCP server +- UI: disposable `ui://` HTML resource +- Return path: `callServerTool` → Leaf `EventEndpoint` +- Supported ask: one current page-scoped, single-choice `lf-options` decision +- Durable authority: authored revision plus `comments.jsonl` +- Reference host: ext-apps commit `10195ad91851502134930e9b80ec2c04e277a720` +- Authored fixture: `examples/design-decision.html` + +**Expected outcomes:** + +- If a keyboard choice appends `choose` and teardown/reopen returns an empty ask, the app has no second state authority. +- If the 420×360 iframe has no horizontal overflow and exposes three short option labels, the compact projection is viable for the shipped substantial decision. +- If the host console is clean and the app never contacts a Leaf page server, the bundled resource and app-only tools are sufficient. + +## Findings + +The Bun runner resolved the host source correctly, but Express's sandbox `sendFile` still returned 404 because its absolute path crossed Leaf's hidden `.tmp/` directory; the `send` package ignores dot-paths by default. A direct request against the identical pinned clone under `/tmp` returned the sandbox with status 200 and byte-for-byte equality. Leaf accepted the open call and appended nothing. Experiment 5 changes only the clone location. diff --git a/notes/mcp-apps/experiments/4/commands.sh b/notes/mcp-apps/experiments/4/commands.sh new file mode 100755 index 000000000..a57af34f5 --- /dev/null +++ b/notes/mcp-apps/experiments/4/commands.sh @@ -0,0 +1,51 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/4/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-4.XXXXXX")" +reference="$repo/.tmp/ext-apps-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +if [ ! -d "$reference/.git" ]; then + git clone https://github.com/modelcontextprotocol/ext-apps.git "$reference" + git -C "$reference" checkout 10195ad91851502134930e9b80ec2c04e277a720 + npm --prefix "$reference" ci --silent +fi +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +npm --prefix "$reference" run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/4/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/4/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/4/observe.py b/notes/mcp-apps/experiments/4/observe.py new file mode 100755 index 000000000..f89e1ead9 --- /dev/null +++ b/notes/mcp-apps/experiments/4/observe.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +"""Run experiment 3's browser driver, writing into experiment 4.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "3/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_3_observe", source) +driver = module_from_spec(spec) +spec.loader.exec_module(driver) +driver.HERE = HERE +driver.driver.HERE = HERE +driver.main() diff --git a/notes/mcp-apps/experiments/4/output.txt b/notes/mcp-apps/experiments/4/output.txt new file mode 100644 index 000000000..c09e536a7 --- /dev/null +++ b/notes/mcp-apps/experiments/4/output.txt @@ -0,0 +1,59 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.58s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-4.qpFc1w/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column +Traceback (most recent call last): + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/4/observe.py", line 14, in + driver.main() + ~~~~~~~~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/3/observe.py", line 41, in main + outer, frame = driver.app_frame(page) + ~~~~~~~~~~~~~~~~^^^^^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/1/observe.py", line 27, in app_frame + expect(sandbox.locator("iframe")).to_have_count(1) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/sync_api/_generated.py", line 22365, in to_have_count + self._sync( + ~~~~~~~~~~^ + self._impl_obj.to_have_count( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + count=count, timeout=to_milliseconds(timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + ) + ^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync + return task.result() + ~~~~~~~~~~~^^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 465, in to_have_count + await self._expect_impl( + ...<5 lines>... + ) + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 128, in _expect_impl + _record_soft_or_raise( + ~~~~~~~~~~~~~~~~~~~~~^ + AssertionError( + ^^^^^^^^^^^^^^^ + ...<2 lines>... + self._is_soft, + ^^^^^^^^^^^^^^ + ) + ^ + File "/Users/maximilian/.codex/worktrees/a5c8/leaf/.venv/lib/python3.14/site-packages/playwright/_impl/_assertions.py", line 60, in _record_soft_or_raise + raise error +AssertionError: Locator expected to have count '1' +Actual value: 0 +Call log: + - Expect "to_have_count" with timeout 5000ms + - waiting for locator("iframe").content_frame.locator("iframe") + 14 × locator resolved to 0 elements + - unexpected value "0" diff --git a/notes/mcp-apps/experiments/4/results/mcp-server.log b/notes/mcp-apps/experiments/4/results/mcp-server.log new file mode 100644 index 000000000..23fbd45cf --- /dev/null +++ b/notes/mcp-apps/experiments/4/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 8672bbdbb80c406fb22478c25f781e59 diff --git a/notes/mcp-apps/experiments/4/results/reference-host.json b/notes/mcp-apps/experiments/4/results/reference-host.json new file mode 100644 index 000000000..19765bd50 --- /dev/null +++ b/notes/mcp-apps/experiments/4/results/reference-host.json @@ -0,0 +1 @@ +null diff --git a/notes/mcp-apps/experiments/4/results/reference-host.log b/notes/mcp-apps/experiments/4/results/reference-host.log new file mode 100644 index 000000000..14d1daac2 --- /dev/null +++ b/notes/mcp-apps/experiments/4/results/reference-host.log @@ -0,0 +1,16 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + +NotFoundError: Not Found + at error (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:168:31) + at pipe (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/send/index.js:468:14) + at sendfile (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/express/lib/response.js:1014:8) + at sendFile (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/express/lib/response.js:411:3) + at (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/examples/basic-host/serve.ts:127:7) + at handleRequest (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/layer.js:152:17) + at next (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/route.js:157:13) + at dispatch (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/route.js:117:3) + at handle (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/index.js:435:11) + at handleRequest (/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/ext-apps-10195ad9/node_modules/router/lib/layer.js:152:17) diff --git a/notes/mcp-apps/experiments/5/README.md b/notes/mcp-apps/experiments/5/README.md new file mode 100644 index 000000000..21073f647 --- /dev/null +++ b/notes/mcp-apps/experiments/5/README.md @@ -0,0 +1,33 @@ +# Experiment 5: Keep the reference host out of a dot-directory + +## Purpose + +Run the same compact ask with the pinned reference host cloned under `/tmp`, where Express can serve its sandbox HTML through the host's default `sendFile` policy. + +**Changes from experiment 4:** + +- Clone/cache the official reference host at `/tmp/leaf-mcp-apps-reference-10195ad9` instead of Leaf's hidden `.tmp/` directory. + +**Configuration:** + +- Transport: streamable HTTP adaptation of the shipped stdio MCP server +- UI: disposable `ui://` HTML resource +- Return path: `callServerTool` → Leaf `EventEndpoint` +- Supported ask: one current page-scoped, single-choice `lf-options` decision +- Durable authority: authored revision plus `comments.jsonl` +- Reference host: ext-apps commit `10195ad91851502134930e9b80ec2c04e277a720` +- Authored fixture: `examples/design-decision.html` + +**Expected outcomes:** + +- If a keyboard choice appends `choose` and teardown/reopen returns an empty ask, the app has no second state authority. +- If the 420×360 iframe has no horizontal overflow and exposes three short option labels, the compact projection is viable for the shipped substantial decision. +- If the host console is clean and the app never contacts a Leaf page server, the bundled resource and app-only tools are sufficient. + +## Findings + +The clone moved outside the hidden path, but npm 11 stopped before host launch +when `npm ci` was invoked with an absolute `--prefix`: it resolved workspace +links incorrectly and treated the clone directory name as a missing package. +The same install completed when run from inside the clone. Experiment 6 changes +only the install/build invocation's working directory. diff --git a/notes/mcp-apps/experiments/5/commands.sh b/notes/mcp-apps/experiments/5/commands.sh new file mode 100755 index 000000000..c7e8e7387 --- /dev/null +++ b/notes/mcp-apps/experiments/5/commands.sh @@ -0,0 +1,51 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/5/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-5.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +if [ ! -d "$reference/.git" ]; then + git clone https://github.com/modelcontextprotocol/ext-apps.git "$reference" + git -C "$reference" checkout 10195ad91851502134930e9b80ec2c04e277a720 + npm --prefix "$reference" ci --silent +fi +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +npm --prefix "$reference" run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/5/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/5/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/5/observe.py b/notes/mcp-apps/experiments/5/observe.py new file mode 100755 index 000000000..7d308664c --- /dev/null +++ b/notes/mcp-apps/experiments/5/observe.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +"""Run experiment 3's browser driver, writing into experiment 5.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "3/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_3_observe", source) +driver = module_from_spec(spec) +spec.loader.exec_module(driver) +driver.HERE = HERE +driver.driver.HERE = HERE +driver.main() diff --git a/notes/mcp-apps/experiments/5/output.txt b/notes/mcp-apps/experiments/5/output.txt new file mode 100644 index 000000000..50e48dfbd --- /dev/null +++ b/notes/mcp-apps/experiments/5/output.txt @@ -0,0 +1,31 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.41s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-5.5gNYde/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column +Cloning into '/tmp/leaf-mcp-apps-reference-10195ad9'... +Note: switching to '10195ad91851502134930e9b80ec2c04e277a720'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 10195ad9 docs: add Alpic Playground to supported clients (#729) diff --git a/notes/mcp-apps/experiments/6/README.md b/notes/mcp-apps/experiments/6/README.md new file mode 100644 index 000000000..43ff31e4b --- /dev/null +++ b/notes/mcp-apps/experiments/6/README.md @@ -0,0 +1,31 @@ +# Experiment 6: Install from the reference clone + +## Purpose + +Run the same compact ask after invoking npm from inside the pinned reference clone, which preserves its workspace link identities under npm 11. + +**Changes from experiment 5:** + +- Run `npm ci` and the basic-host build with the reference clone as the shell working directory instead of passing an absolute `--prefix`. + +**Configuration:** + +- Transport: streamable HTTP adaptation of the shipped stdio MCP server +- UI: disposable `ui://` HTML resource +- Return path: `callServerTool` → Leaf `EventEndpoint` +- Supported ask: one current page-scoped, single-choice `lf-options` decision +- Durable authority: authored revision plus `comments.jsonl` +- Reference host: ext-apps commit `10195ad91851502134930e9b80ec2c04e277a720` +- Authored fixture: `examples/design-decision.html` + +**Expected outcomes:** + +- If a keyboard choice appends `choose` and teardown/reopen returns an empty ask, the app has no second state authority. +- If the 420×360 iframe has no horizontal overflow and exposes three short option labels, the compact projection is viable for the shipped substantial decision. +- If the host console is clean and the app never contacts a Leaf page server, the bundled resource and app-only tools are sufficient. + +## Findings + +The vertical slice passed in the official reference host. The 420×360 outer frame gave the app a 414×354 content viewport; `scrollWidth` and `scrollHeight` equaled the client dimensions, and the three substantial authored options appeared as the short labels “Stateless JWT,” “Redis, cookie fallback,” and “Postgres table.” Keyboard activation appended an ordinary `choose` action on `session-options` selecting `opt-redis` at sequence 1. The app then showed “Nothing waiting here,” and showed the same after teardown plus a fresh model-visible open call, proving the log rather than iframe memory held the result. + +The host console recorded one unattributed 404. The recorder's `focused` field also captured `document.body.textContent` after the choice and reopen, which included the 385 KB inline bundle twice and made the JSON result needlessly large. Experiment 7 changes instrumentation only to identify the request and record focus by address rather than text content. diff --git a/notes/mcp-apps/experiments/6/commands.sh b/notes/mcp-apps/experiments/6/commands.sh new file mode 100755 index 000000000..a05e14646 --- /dev/null +++ b/notes/mcp-apps/experiments/6/commands.sh @@ -0,0 +1,53 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/6/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-6.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +if [ ! -d "$reference/.git" ]; then + git clone https://github.com/modelcontextprotocol/ext-apps.git "$reference" + git -C "$reference" checkout 10195ad91851502134930e9b80ec2c04e277a720 +fi +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +if [ ! -d "$reference/node_modules" ]; then + (cd "$reference" && npm ci --silent) +fi +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/6/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/6/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/6/observe.py b/notes/mcp-apps/experiments/6/observe.py new file mode 100755 index 000000000..274c828fb --- /dev/null +++ b/notes/mcp-apps/experiments/6/observe.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +"""Run experiment 3's browser driver, writing into experiment 6.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "3/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_3_observe", source) +driver = module_from_spec(spec) +spec.loader.exec_module(driver) +driver.HERE = HERE +driver.driver.HERE = HERE +driver.main() diff --git a/notes/mcp-apps/experiments/6/output.txt b/notes/mcp-apps/experiments/6/output.txt new file mode 100644 index 000000000..cc8401f68 --- /dev/null +++ b/notes/mcp-apps/experiments/6/output.txt @@ -0,0 +1,12 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.00s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-6.9T6Uns/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/6/results/compact-ask-420x360.png b/notes/mcp-apps/experiments/6/results/compact-ask-420x360.png new file mode 100644 index 0000000000000000000000000000000000000000..963ba22dfbd446c7a267dfe6110025beff292d3d GIT binary patch literal 19323 zcmZ_01yCGOyRDrBcL?t84#6#02*HB8ySrO(g1fuBySux)ySvM6@|{!nocixi6sOM_z8dj@}U27FnV@h#7zHA};y2n&#)9G;yk(}f+& zGzZS4y<4uipRY7Vk8#_MH3o29NlQzsQT-JijFhfiNjEB@t`;zI`bMi0Jf%tD?93s* zt5Xw*wreJBruKzwQ}|ae3d3ZUnsN{EFcK&~iaLQegW5$^WUnU-Vk6VC`98BTA4AdIf6A74ZeedP$o|D9&yI8|W- z64*gU(;k3autvW~4CzhLHE>-ef(R;ovr&CK5K0P}MbZ7f8N^MBiVR8!2kgr)%NzPQ zT$*A$i~zFmPtU(CCk1fm&`WpD7W#SXMf3KIdRv}CtPOF~q75iNqVpJ^D3$*R|8~Lx zBY|y#Ly8?yB{3wC=U{4%4&+J%7=$pDh+RGMz`7_oa5kd!fzcctC0nAPK3GnQ)QVW( znq#g9SE;#)s^Vh7$T+1bt3>?sY^!-tyUB; z483@DF=z`026mh@+t}W*-0!%$r>@D}(g*8kG`kW;47rsa*_9i^!i2$7Vkw|AwR~^U zFQrLk{=3LUz8V(W^XbHRzCv>Uj<&&Vt9(UilTNWO4GiS>U@^9>ZZAr+wr>7$+)ShG zF3CN5iAMYB)U0Z2vm=da-Z#YuuR}bXuX(wJgybTakwW}J8vGi{jqK2@w!NO3a9pmlhzGQ>S0a@9}s=GF#ncRk2M) z!*0%_f`msnDOO<=EnlFe)Yi7{76pZcoey6Q4f4p8>qCNqFqxeRXME|~tvrV5Q#m~0 z-n501pqLFOUFO5jl*@;cv?=-g{6zGe7#2|Co}S#%%UYcGHya9rk@M-@Z)OsS17FBE$?gn)2S#S{4!I(vLPJC0@|paxml)=OkOBt_xI35v|DpNH zsXz>VFW^%!U<9eg-26lwaC7&#=Q(ldDPevbiaWVJynO$VC}wnV<2RgqZ!t{{k9{<; zJ=U6^wzj^Yp@r8KQKCM5HM96mP?$opvr>i3csy}GbS3G_MXK~@c_sNZI%>{h$@$iQ zI=myDHhF0*iBlopm-Q%}*R$4T`wo4~@O)hjvNkKux<_|nx=RuEV$2von z$jHfky44i+zD#fH#ByGbV%C!~+2$rmDB3qCqU@}Bi?!v2I*V6M7IyCe@-~lK)p~tR z8J(#5@bsjjAbr&7oSYp53(dZ8EG3n86fz7Qd_H&M-}QM>GK_F=w=zwfX1ylz)XdW- zE4kSEu(!u^Xg%diwH9AA8!W@&85zAVRLs;;5{-K$iubcdOfLR(7+jzQ^jGT27ozW{**qughzuO)xx7K*QMag5Uukvbgx-(EwHTD0A z?AslpNn+l8%Qob?$7N*tcCcJ+TYiR{8KP8d87`?G3d;e-$Xxn|ZK`JyK4nL*vaF@W z%>b)EFkH&%`E5GGLmgL2<6y3^HY5a=N>HHtqPRRic%A77I5QcXB3;>yYpie2t?J!2 z?;pl-B%!y=k`lSxDkw9~z||dVpI~&wr?+kLBQ^`Jj`~L=j1&)H2{?NNr`;{+Y0IG# z)EA1cB-0Jnp^0#uG5Pm9d3|t;GVGhFvaI!KD z;psexW|$NC)e1#;vie1vQigQNWb3FND>i&QGsiLELryff9 z*B>|DRvk`w4C1KR8f)n^_@SY{z;IUI58W;!3}It~xgpT#8d(h=A|Z1rD<>Kw`!_Z< zHn%)lJuEaLzsvrqxwK$9;Z;^%d=5_&!^$QN^!(g{WLJI0<5VP3+&97Q-Wo;z?wIR& zE*Tjq4U8E>ca+3Z)!q@%Rdh&IMHaSAUlEElw-&VwBj-(MWGUf0X-_n zna~F$c}>x8YPZ8nn7(ID9pYhe)8|Rxux!XYAxO^E9IZUy5efDALZxDQ$|GxG)Ymb`L0B? z2huN_Qz&uC2Z{qVTD2kgjwj0dn^3RwN8?o63}6hzj7-hfD_Ybr1y`d;3B32|)w{nH zcuLVk#XhDAW*1}-jJ4_cYQVG)d21@kAAks-lPBv3_erRasAN66?d>38nv?t3V^*|3 zTunVjf18>0RTM!m3(kXkTzr~SKuB-%UC0Ef_gKZcjLhP$;c<- zCX!JVlWkxkV@1PKq*0_7;Rng%a#KxVcfX7xu<_UIkWv`PT&SE(dEkTG_8^_!Z5jbM z=>@K3VYkA^yZ3M^C$z7K7&0s4s$R7By-Sf4(tE)EjkPc#CX67kOZY5AP8`54hQZOu zASiDFXqrY=8AgEbGB+$msK@}iLYa7|2j%|>M&j_Xo#FprKeG7$>`U0``q>MBmLKFV z;IUa0f}+50KfyS}sXVri#y)TjmS&XnK`lg2wD+rd5&>k^#&_p`=lP#!^N#|aIRcuZ zFo6K_(EH;TilN^h7a{XG6u3BFJAUF13Pk;#hWqiizyG%Ozk#cc$;{F5Cdm2n@$3Rk z5q>9?f1mF`!2-xgN%dFB*hy$u>3EM>q5l5O)ZSD>BBi6lL#HAYF6jeEj?YIRYHAlj zUx8j=tV~ZxPY(DbiXi%V_2lTWik|fS5bhOEuMdi?t@%b%oZxUc@k>GBhaS>zS$X9) zD`;vyr<<*lTx=+)zfO?Hvz14)wYaMKV_CPY&GpRXG#F&((arOBt6`#pUq-~KVR07( zrKP>hZKsbKtE#-)P#`<&c)~Qf+p^Tu3YG5Z%uVJCh8#AXwz~Sq@n8(XqN9;(+}^H6 zQ(dLYcmaF1uo$lQ>EP-SasD=jS7za0m6`>=Jc3Ffc2JO@U{M#tiES2X)2 ziW+bUZ0@B708Ahk5g%YsYq3@UOp_)2{2+~rT)Pny7ZS?| z;BT;fKfZmN=?llnkQETyp|Pr2(AtNmWiHVRsIN;H;vV{_N` zWkf%qP2EJU{OVO?VoAdF#!ig2wwSzXS5Rb})pRODLW~OoeptcM^RBBm&x5v3A`Kw7 zA0quUY0UiU>ZgO(icavicJ?8#w~K3n0$pR8O`UkvJ25dkCnecb24whr&J2~V@0-kN zp5nhL>ZR}uVyO+>!IUzkeU@;SSq-ZLAuq({>5?gliMNmT+V(p{Wuve1$odl1akSOe zJYG)D8tvZn;Ou8rCBq3DisMEiA_tvB0KWQN^H&##3M2mUXuIB|`;4=;SkQ&382$a1 zcmBA#i9-DbX`1H!5DU4z{Vd1ykIfTct-EW7nGfK&88~^;Q!31oS;-Mt%%@j7QC+Yp z{CaYDYyNw^%$t>xvWZk|B;i|1ZA^6bCz#0O0fD;(l1Y<_Myq*+auZhTkqq*2jsBh< zXnLJ!Z?~jH$ZB{6K?!OYZbFw_JMg>HsDzjVkK|3H$Uc3zM!90ctA@_QUGVTrhKeQY@j&Aq!;@(G1VRBh%p_Y0a=JVJ*v%@%3Mhc{*p%Ep|q zx@ALzk*#_YR9Q*bo!y;>>sZt&`V?*xEBBk*Ujo(*BlKYmd_IETSZ0+S9Jhbii@=_Z zzD@<+a6v=Cb(goL(RmDGV16f#38vPUrk{-cRx0Olo+&%YnB~|zp0UB?4<14I^X|`D zYND3tFCUj$C&Am^;(GtwTPqARH0(X8XypUYNYxi}%M!0Px)tQ|@-{1O<B`DsMy$$4l-PK>?W~W?_l|E6 zOLZ}N#^V+?tBm<;=vi~4JD=W=eobq4PXg*f(C>D-=rw40hZ=Ph{>7%f>w7$d>G zPhTEawiqSFU$Xl_2&q_DVr32Ak;{CuIbD?2Z(Mx?jASZtxceQ;EEM7loFLa5J+5xh z1`>;kswSX@Dw(@TsILQ_p@g^52d&!CCDQ9%u1a>7?{UnRix`;|nVZ?WIy#hDJ*(Ws zmht&~*vxn;JdWRJ96+BfmVC7Xj|Yba@OT|8=DKPbLaPhnZ+^jJPHcCJIQC5XQeRT3 zFj?x<78#tcHPdP|f=!Kx!j~)^#TiJYwf~@pSflRB3Lk!c{-&=7lrKDQb5$@f;ok#C z8&=Nu8zrc@(Bif_r_T;wOXtcT*t}Od2{QvJpz8U}@GR{YxDq()Eh|mm|1LY?D;6n9 zHb^uw`8#oMs9t(tis##Sw!K{X!s5@EZeERELP4cqC?zNgIQF1RrDwwP1XEM?_Vw|& zY=!*VWW7C}*~nHr*h10JQ<-cyEw}ir&03NY3W-9Zs@&LM^=}v$DS@uAoxmfXNE8f) zcM$kiGOZw$2?_{&nSqcEr!zO8S9yLKh48%trVS0n6zabX+U**+gz>wfp-ybb>c~qf zShPt?THc+mz)}%6ie(c8VtSUbjmaXvI}|%aP5C+o`UgFI^OhtKr(0EpqyB_I%1L0( zY$-SZTDp!#Wv)~mmyo$$P6}}{i^$`pezR15==#DBd(SBNa zH22r2%jr-M;JaOfncuD&&e?3VJ-?hw4N!ibn3+iSZ&EP`1ptvwsfm(;Jw|L4%uBtG z^9OS=`i~Lnzgk~fTmgB(ZS)L;9GJ2PIXy1=rrt=sqjY34)!f{=VvimD+?Bi^&@UG4 zzmlUeHIbNLHQ52%7)mPaDw>M>P_vm*_&Zxgk zJvKyg4gIW-a#N#}RIO}B*^nM7S0L=o*&4jxh=W|CjNg;J>4;_%l6gk>ZAmFrejg_A(%*mC6rPb# z-<;1PF$#I8+x^;5-;G&XmThsWlooul!c@oK%}Oh1n9< zC$2GIKzZvspstsdm8B#K6h+Vd9V;Dz@KUtZ;0%~r^c@3KX=NbN7#LvElZ;)Lw`N|i zGD0OIcA}T;6~fb+rqUjTI>e|H&8rju@H}NpA}F3&vw^R4#9V zK<+;J4RY#<5A6F1_U%8EMq2oRXAuiXz;+1H6USyr^WZU z{qd>#DPe(+SMB2Fky;^~%VxK!G*rc*GlpPoAjx@r7F+TJQnRsT`weqTEkKkREsH;2 zL$IOi@Alv7)hBq%wX*qVg!G1$zHz=k>K#5|`ER{#fcU}--PhS3^nCXmo{l3;64Bs8 zbYXar5gEP-{wb}JqpeDOd)@yTcCbDtl^{D3*E z{prERyF4lAUVes~oQWw2H#1OgpKePHqW#agk&hybBKsx6LnnGsg8Y_E?1Qh6!{^0$ zKO09)gmi9vRtFb3xo?_2&(70H!bc|Ga^y2f_CTbN+U|x^5{73XYaZ^PJ&F2S2+!9+{`}>ndYf8oi%?!L)CB zZ>aB15X(of5hC;*FN+2+S#*RY)1ow~I-E|#)j8k229cM>b^1%bYxrXyou!&G;cLV? z>;sG%S;y(C4b`)N6{C&?p~cWYlO1~&6`$IBtOlrXyKtW%n`i?|lXEbfI6X8+PS|5IXVLja_hn=IEUw4QA1>T!@9bdlM5-eL+XvpKf z^^;C)!s9v3r(A7q`%4@nmAP{6RS#n~6{NdMB!r^D@|ln08Ly2qxznZ6e92m-dGOjQ z*JU?B_S=eIu_Qv;hKW|8g!^$D50|N_aZt4jn&MU0?(y;+j)3-cQZE^5h;)a#^~ua* z|G37Mh1cZFK%PZ#UTD%A)8jsk%I(%Hw!QqUgee-mW;575_*&j9%}Bl!o}VkhaWP>F z{Y!CWT99mjL&57WhK|!3hif`Xh9510$#D`OZ4h{T?s#k%MAhu9I8blW3mdoWnmC@Q z%+o3?G>tO|2sM_gIPXIg&F(hzihU8p(Ab`_awErI@EQRPEc;V@9I{*CFbY*iuEVdI zYIL`@H|ruu0k8`aNK5UR9%cHJ^$Gy{#~D&NtEwGBO%ixqu1-q8s2}4RBp4e#FVz@S z5h-3CnG;r>W%p^c!6XU92NQTa53!PauK`6|UtD#bzBiTD=3)Z(dF=He5O#gN%464C z@>Jz=l+|o?6rWHMTGr+lQ<~mLoAZ69yCXy!DLlyZWc2w_qVCs@!uYIOA`6$V{}whiSRg~vdK)YjC?T3SktM`;o+z2CdS%iD_`Sa zi0;MnF%ZebA$RCi8GKU30?vGd;?|n3Hx9f?sfK#1HF%DxF>$c^Bsn#hSs`okF3|9292 ziM>=|r6YepB${S78m(1zls;H0q@C`B2nSn_3$PsCIzFVOIT$!8+*Y7T@>66h=5V;e zi8mo+%Jnh9S!=xv**=@21*N+Nq%J20-}*nU^~$=~6hLvRTX)7e5CaeGdbg0~)681Y zjm=}tYA2*OAOGGwm^MBuw%@?rXnl17Pexqf^k|26K$)Av|8I;i{4G?J18Vj7;;H>XbX;7 zw*it{H3+-yThPz#dAjpNx!c3Z#mCKA(|z1UKExc%AIer%6kO-pLxiIq;`GC5 ze!#d6o#wEPOfH7$(pJvnmr@~CHn_3ed;jL*IYX>cs$aF zwxsD-kpl5W>ykbq}J!^O)kiL-Rs&hS!Q;Iye74i^jtTMBWc2L?CS`vm6i@VNcG zhgB8tO1h+bi`gk}i?5t6xVc+XHS=?epw@?8j!OR2CR`6|)Qy!-Yg`5PUxqH;C87>a zueE_uZ#d|Yftc~2#Up|9W3J3~u{il|%w$Yd2pcMWo~tcksLU6`SoXJnWD@^b7rYS> zG2h+<6!ol|*bDV0Un&JRN1qX*f>!f2rECBt=<&R))_C?CbEP15Pa~p=%kvvCQ37D2 zMM_JLc!!0Ad^J`pH9=MQ^BHWvp1)P4wxo#PT8RK(RZHxg$IYAAP#-N6?7)4<#h$U8 z#Ob{=6m@Bt&G1)0)D_23wRfOC#H1b=AYe4`SeekY3%NDf)i{c}lea!!Aaw<_$tkQC zDeJ!dM8u z%%9Hf3D)f;Wkb9Pj0!J+0Z}I5FPV z+Hqf`AunqDI^X;cre{Q=faPfa}m}637$_63?D+T$`i3lzvfYN^m zWr($w3zf}i*q|=(aKlS)oXX|CXPu_`S^E1*Xn9Cbn1bl*NOn=tuP1q@%+4m;yl`}7 zF?nG-R3*~DUj z{)R%OA!hxz7O*|c(8IKx(bh&s9jJHY`u6J>=`#W$^AiDQDpw6_xf&E5iP-fRqFt$j z(ezf{G)U**n!9fR&edlzxPYPb;XAnDSkFWbM#jnrYz_{NU^!%#;Mvk5E!+Pjb?s2^KT0|`VT6LnGCv~u=?JIF_9U;6Q^?K<(ALd1R3HdCd$fJtC3C} zT>{;xC@4%LSzX6Tq@HmUnfj*J%l9u^o1sqCKbpq*x+x_kMZGFHGNjnVfzo9=e@ys0 zA_CPqR07y+ao%kKx64(El#muK(R6ew<3E4MWn0hxJ zz>DVT=>=|VRAAW3IioN_ZG1UgE8lT1da3!ULQ~or zq`VZl0oS=s+wcbv%6?BwKA!4@;7pYxx+|p)cmt~EH37qTy!Poehs5pC%NTy2ppn9& zFEX|UrifG$+%&j}{rl#$fw^nl(TpPdq5!A^KJi71N%vhkf2WgJ_I;i4GM>`$!QX14 zP$U$Qbz$7*x^mfOAw7NlhxSD(Mb_sP@1rWtZyT@{wc!ff3Z138}R zDbXBp-f%o_mIiF+qLSGy2@J+P&vN|!)AtDk_Oz|49LM^w5`5!1Z`6c`Yd_kMduSKA zdUGXKlP;Qrs)0a|YXeE48K&b|K+J=1C^4O1{cNs>;o;7dLu9g0Tm!D=cAl&davzh9~2acd|^_w&zrI4BWN%Y>*L6{dy=BgiCJ5X-!8j9dQZs^B67q@)kjl z6ojWTjS&z?1VHH>Zsv#}1*iys=#l_ch7{#j!1o#iJau5NH$u8PdAg6?$Ik*HW6}Q{ zJYG+he-56u7k-s2FDsq-cX)k$Am5Z#aHV?kk-K7uG5m;Qeb@Q7#YOqhYyO#Ug&U4C zl`@QA{~jy|>=u&#U)~%Mph;{-PJZU|*70i#`-KR4dH!2QhNiGIH@C2FH!!84a_uve zt)qvdP1q8LeD{)CX+snd5bC-N|NA#IJnSzN6b#$Uyu4gYLp33}Xs`I;?~2k)$zQ

    WiT(No4+V!_-P+Qkw$vj! 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/6/results/mcp-server.log b/notes/mcp-apps/experiments/6/results/mcp-server.log new file mode 100644 index 000000000..41b1fc394 --- /dev/null +++ b/notes/mcp-apps/experiments/6/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: f8810760030949b78c4de7e1dd6c2d64 diff --git a/notes/mcp-apps/experiments/6/results/reference-host.json.gz b/notes/mcp-apps/experiments/6/results/reference-host.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c857e17a71820bc54b5f7863cc0a31ffe3322b22 GIT binary patch literal 160097 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

    *Y+1U+^0V}H?HOqadR4wbX} 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

    mgwe`Ut3OH-V35Nr9`BB?xl~=d3kzpF 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 s@Be/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/7/observe.py "$run_dir/page" \ + >"$results/reference-host.json" + +# Open the generated compact-app screenshot: +# open notes/mcp-apps/experiments/7/results/compact-ask-420x360.png diff --git a/notes/mcp-apps/experiments/7/observe.py b/notes/mcp-apps/experiments/7/observe.py new file mode 100755 index 000000000..f310e5067 --- /dev/null +++ b/notes/mcp-apps/experiments/7/observe.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +"""Repeat the successful reference-host run with bounded diagnostics.""" + +import json +import sys +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HERE = Path(__file__).parent +source = HERE.parent / "1/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_1_observe", source) +base = module_from_spec(spec) +spec.loader.exec_module(base) +base.HERE = HERE + + +def measure(frame): + return frame.locator("html").evaluate( + """() => { + const focused = document.activeElement; + return { + viewport: {width: innerWidth, height: innerHeight}, + client: { + width: document.documentElement.clientWidth, + height: document.documentElement.clientHeight, + }, + scroll: { + width: document.documentElement.scrollWidth, + height: document.documentElement.scrollHeight, + }, + question: document.querySelector('h1')?.textContent, + options: [...document.querySelectorAll('[data-option]')].map((node) => node.textContent), + focused: focused ? { + tag: focused.localName, + id: focused.id || null, + option: focused.dataset?.option || null, + } : null, + }; + }""" + ) + + +def main() -> None: + page_dir = Path(sys.argv[1]).resolve() + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + page = browser.new_page(viewport={"width": 720, "height": 920}) + page.set_default_timeout(15_000) + console = [] + failed_responses = [] + failed_requests = [] + page.on( + "console", + lambda message: ( + console.append({"type": message.type, "text": message.text}) + if message.type in {"error", "warning"} + else None + ), + ) + page.on( + "response", + lambda response: ( + failed_responses.append( + {"status": response.status, "url": response.url} + ) + if response.status >= 400 + else None + ), + ) + page.on( + "requestfailed", + lambda request: failed_requests.append( + {"url": request.url, "failure": request.failure} + ), + ) + page.goto(base.HOST) + tool_select = page.locator("select").nth(1) + expect(tool_select).to_have_value("leaf_open_page") + model_tools = tool_select.locator("option").all_text_contents() + tool_input = page.locator("textarea") + expect(tool_input).to_have_value("{}") + tool_input.fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, frame = base.app_frame(page) + expect( + frame.get_by_role("heading", name="Where should a session live?") + ).to_be_visible() + + option = frame.get_by_role("button", name="Redis, cookie fallback") + option.focus() + initial = measure(frame) + screenshot = HERE / "results/compact-ask-420x360.png" + outer.screenshot(path=screenshot) + + option.press("Enter") + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + after_choice = measure(frame) + event = read_events(page_dir)[-1] + + page.get_by_title("Close").click() + expect(page.locator("iframe")).to_have_count(0) + page.get_by_role("button", name="Call Tool").click() + _, frame = base.app_frame(page) + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + reopened = measure(frame) + + print( + json.dumps( + { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "model_visible_tools": model_tools, + "initial": initial, + "horizontal_overflow": initial["scroll"]["width"] + > initial["client"]["width"], + "vertical_overflow": initial["scroll"]["height"] + > initial["client"]["height"], + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "after_choice": after_choice, + "after_teardown_and_reopen": reopened, + "console": console, + "failed_responses": failed_responses, + "failed_requests": failed_requests, + "screenshot": str(screenshot), + }, + indent=2, + ensure_ascii=False, + ) + ) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/7/output.txt b/notes/mcp-apps/experiments/7/output.txt new file mode 100644 index 000000000..94036f4c1 --- /dev/null +++ b/notes/mcp-apps/experiments/7/output.txt @@ -0,0 +1,12 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 2.21s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-7.Ft8ap0/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/7/results/compact-ask-420x360.png b/notes/mcp-apps/experiments/7/results/compact-ask-420x360.png new file mode 100644 index 0000000000000000000000000000000000000000..963ba22dfbd446c7a267dfe6110025beff292d3d GIT binary patch literal 19323 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

    WiT(No4+V!_-P+Qkw$vj! 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/7/results/mcp-server.log b/notes/mcp-apps/experiments/7/results/mcp-server.log new file mode 100644 index 000000000..a5eb16b5f --- /dev/null +++ b/notes/mcp-apps/experiments/7/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 3c7f3fb4bb084c649c7aacc04dc148a6 diff --git a/notes/mcp-apps/experiments/7/results/reference-host.json b/notes/mcp-apps/experiments/7/results/reference-host.json new file mode 100644 index 000000000..1a793cee9 --- /dev/null +++ b/notes/mcp-apps/experiments/7/results/reference-host.json @@ -0,0 +1,102 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "model_visible_tools": [ + "leaf_open_page" + ], + "initial": { + "viewport": { + "width": 414, + "height": 354 + }, + "client": { + "width": 414, + "height": 354 + }, + "scroll": { + "width": 414, + "height": 354 + }, + "question": "Where should a session live?", + "options": [ + "Stateless JWT", + "Redis, cookie fallback", + "Postgres table" + ], + "focused": { + "tag": "button", + "id": null, + "option": "opt-redis" + } + }, + "horizontal_overflow": false, + "vertical_overflow": false, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "after_choice": { + "viewport": { + "width": 414, + "height": 354 + }, + "client": { + "width": 414, + "height": 354 + }, + "scroll": { + "width": 414, + "height": 354 + }, + "question": "Nothing waiting here", + "options": [], + "focused": { + "tag": "body", + "id": null, + "option": null + } + }, + "after_teardown_and_reopen": { + "viewport": { + "width": 414, + "height": 354 + }, + "client": { + "width": 414, + "height": 354 + }, + "scroll": { + "width": 414, + "height": 354 + }, + "question": "Nothing waiting here", + "options": [], + "focused": { + "tag": "body", + "id": null, + "option": null + } + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)" + } + ], + "failed_responses": [], + "failed_requests": [ + { + "url": "http://localhost:3001/mcp", + "failure": "net::ERR_ABORTED" + } + ], + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/7/results/compact-ask-420x360.png" +} diff --git a/notes/mcp-apps/experiments/7/results/reference-host.log b/notes/mcp-apps/experiments/7/results/reference-host.log new file mode 100644 index 000000000..045bfdd35 --- /dev/null +++ b/notes/mcp-apps/experiments/7/results/reference-host.log @@ -0,0 +1,4 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop diff --git a/notes/mcp-apps/experiments/8/README.md b/notes/mcp-apps/experiments/8/README.md new file mode 100644 index 000000000..477d459e8 --- /dev/null +++ b/notes/mcp-apps/experiments/8/README.md @@ -0,0 +1,37 @@ +# Experiment 8: Locate the browser error + +## Purpose + +Repeat experiment 7 with console source locations and browser-context network +events, distinguishing an app resource failure from host teardown noise. + +**Changes from experiment 7:** + +- Record the URL and line supplied with each console message. +- Observe failed responses and requests on the browser context rather than only + the host page. +- Record the method and resource type for failed requests. + +**Configuration:** + +- Product, transport, fixture, reference-host commit, dimensions, and browser + actions unchanged from experiment 7. + +**Expected outcomes:** + +- A source URL or matching failed response should assign the generic 404 to the + app, host, sandbox, or incidental browser behavior. +- The app behavior and model-visible tool set should remain unchanged. + +## Findings + +The console location identified the generic 404 as +`http://localhost:8080/favicon.ico`, an incidental missing icon in the official +reference host. No response from the Leaf app resource, sandbox, or MCP service +failed. The remaining failed request was a `fetch` POST to the MCP endpoint with +`net::ERR_ABORTED` as the host tore down and reopened its long-lived session. + +The unchanged product path passed again: only `leaf_open_page` was model +visible, the compact ask fit without overflow, and keyboard activation appended +the expected ordinary Leaf action. There is no unresolved browser error in this +slice. diff --git a/notes/mcp-apps/experiments/8/commands.sh b/notes/mcp-apps/experiments/8/commands.sh new file mode 100755 index 000000000..55b32fd34 --- /dev/null +++ b/notes/mcp-apps/experiments/8/commands.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/8/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-8.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/8/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/8/observe.py b/notes/mcp-apps/experiments/8/observe.py new file mode 100755 index 000000000..899567246 --- /dev/null +++ b/notes/mcp-apps/experiments/8/observe.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +"""Locate the reference host's generic browser error.""" + +import json +import sys +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +from leaf.event_log import read_events +from playwright.sync_api import expect, sync_playwright + +HERE = Path(__file__).parent + + +def load(name: str, path: Path): + spec = spec_from_file_location(name, path) + module = module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +base = load("mcp_apps_experiment_1_observe", HERE.parent / "1/observe.py") +previous = load("mcp_apps_experiment_7_observe", HERE.parent / "7/observe.py") +base.HERE = HERE + + +def main() -> None: + page_dir = Path(sys.argv[1]).resolve() + with sync_playwright() as playwright: + browser = playwright.chromium.launch(channel="chrome", headless=True) + context = browser.new_context(viewport={"width": 720, "height": 920}) + page = context.new_page() + page.set_default_timeout(15_000) + console = [] + failed_responses = [] + failed_requests = [] + page.on( + "console", + lambda message: ( + console.append( + { + "type": message.type, + "text": message.text, + "location": message.location, + } + ) + if message.type in {"error", "warning"} + else None + ), + ) + context.on( + "response", + lambda response: ( + failed_responses.append( + { + "status": response.status, + "url": response.url, + "method": response.request.method, + "resource_type": response.request.resource_type, + } + ) + if response.status >= 400 + else None + ), + ) + context.on( + "requestfailed", + lambda request: failed_requests.append( + { + "url": request.url, + "method": request.method, + "resource_type": request.resource_type, + "failure": request.failure, + } + ), + ) + + page.goto(base.HOST) + tool_select = page.locator("select").nth(1) + expect(tool_select).to_have_value("leaf_open_page") + model_tools = tool_select.locator("option").all_text_contents() + tool_input = page.locator("textarea") + expect(tool_input).to_have_value("{}") + tool_input.fill(json.dumps({"page": str(page_dir)})) + page.get_by_role("button", name="Call Tool").click() + outer, frame = base.app_frame(page) + expect( + frame.get_by_role("heading", name="Where should a session live?") + ).to_be_visible() + + option = frame.get_by_role("button", name="Redis, cookie fallback") + option.focus() + initial = previous.measure(frame) + screenshot = HERE / "results/compact-ask-420x360.png" + outer.screenshot(path=screenshot) + option.press("Enter") + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + event = read_events(page_dir)[-1] + + page.get_by_title("Close").click() + expect(page.locator("iframe")).to_have_count(0) + page.get_by_role("button", name="Call Tool").click() + _, frame = base.app_frame(page) + expect( + frame.get_by_role("heading", name="Nothing waiting here") + ).to_be_visible() + + print( + json.dumps( + { + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720", + }, + "model_visible_tools": model_tools, + "initial": initial, + "keyboard_choice": { + "widget": event["widget"], + "action": event["action"], + "detail": event["detail"], + "seq": event["seq"], + }, + "console": console, + "failed_responses": failed_responses, + "failed_requests": failed_requests, + "screenshot": str(screenshot), + }, + indent=2, + ensure_ascii=False, + ) + ) + browser.close() + + +if __name__ == "__main__": + main() diff --git a/notes/mcp-apps/experiments/8/output.txt b/notes/mcp-apps/experiments/8/output.txt new file mode 100644 index 000000000..254440e86 --- /dev/null +++ b/notes/mcp-apps/experiments/8/output.txt @@ -0,0 +1,12 @@ +============================= test session starts ============================== +platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 +rootdir: /Users/maximilian/.codex/worktrees/a5c8/leaf +configfile: pyproject.toml +plugins: xdist-3.8.0, anyio-4.14.2 +collected 7 items + +tests/test_mcp_app.py ....... [100%] + +============================== 7 passed in 1.95s =============================== +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-8.MPlmfn/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/8/results/compact-ask-420x360.png b/notes/mcp-apps/experiments/8/results/compact-ask-420x360.png new file mode 100644 index 0000000000000000000000000000000000000000..963ba22dfbd446c7a267dfe6110025beff292d3d GIT binary patch literal 19323 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

    WiT(No4+V!_-P+Qkw$vj! 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 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/8/results/mcp-server.log b/notes/mcp-apps/experiments/8/results/mcp-server.log new file mode 100644 index 000000000..15820a9e8 --- /dev/null +++ b/notes/mcp-apps/experiments/8/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 0a99c50b79324d2d820dd3d3ab1846ed diff --git a/notes/mcp-apps/experiments/8/results/reference-host.json b/notes/mcp-apps/experiments/8/results/reference-host.json new file mode 100644 index 000000000..04754cbdb --- /dev/null +++ b/notes/mcp-apps/experiments/8/results/reference-host.json @@ -0,0 +1,67 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "model_visible_tools": [ + "leaf_open_page" + ], + "initial": { + "viewport": { + "width": 414, + "height": 354 + }, + "client": { + "width": 414, + "height": 354 + }, + "scroll": { + "width": 414, + "height": 354 + }, + "question": "Where should a session live?", + "options": [ + "Stateless JWT", + "Redis, cookie fallback", + "Postgres table" + ], + "focused": { + "tag": "button", + "id": null, + "option": "opt-redis" + } + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ], + "failed_responses": [], + "failed_requests": [ + { + "url": "http://localhost:3001/mcp", + "method": "POST", + "resource_type": "fetch", + "failure": "net::ERR_ABORTED" + } + ], + "screenshot": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/8/results/compact-ask-420x360.png" +} diff --git a/notes/mcp-apps/experiments/8/results/reference-host.log b/notes/mcp-apps/experiments/8/results/reference-host.log new file mode 100644 index 000000000..045bfdd35 --- /dev/null +++ b/notes/mcp-apps/experiments/8/results/reference-host.log @@ -0,0 +1,4 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop diff --git a/notes/mcp-apps/experiments/9/README.md b/notes/mcp-apps/experiments/9/README.md new file mode 100644 index 000000000..7c58ac5c9 --- /dev/null +++ b/notes/mcp-apps/experiments/9/README.md @@ -0,0 +1,44 @@ +# Experiment 9: Shipped stdio boundary + +## Purpose + +Exercise the user-facing `leaf mcp run` command as a real subprocess with the +official Python MCP client, rather than calling the server object in-process or +adapting it to HTTP for the reference host. + +**Changes from experiment 8:** + +- Transport is the shipped stdio command, with no HTTP adapter or browser host. +- Negotiate the MCP protocol and inspect advertised tools and resources. +- Read the actual bundled `ui://` HTML through MCP. +- Call open and post, end the process, then read from a second fresh process. + +**Configuration:** + +- Server command: `bin/leaf mcp run` +- Client: the official Python MCP SDK resolved by this repository +- Authored fixture: `examples/design-decision.html` + +**Expected outcomes:** + +- Initialization, discovery, resource read, and tool calls complete without + protocol or stderr contamination. +- The HTML resource is the committed self-contained app and carries the MCP App + MIME profile. +- A second process reconstructs the settled state from `comments.jsonl`. + +## Findings + +The shipped command completed the full MCP exchange in two independent stdio +processes. Both negotiated protocol `2025-11-25`; discovery returned one +model-visible open tool, two app-only read/write tools, and the single +`ui://leaf/compact-ask.html` resource with +`text/html;profile=mcp-app`. Reading that resource produced the exact SHA-256 of +the committed bundle (`f8dbab209fb870925c48016c196181ac4cc5cf047d58c070a232aadf10a29339`). + +The first process opened the design-decision ask and posted `opt-redis` through +`leaf_post_event`, receiving status 200 and an empty projection at event 1. It +then exited. The second process independently opened the page at event 1 and +returned the same empty projection. `comments.jsonl` contained the ordinary +validated `choose` action. No protocol diagnostics contaminated stdout or +appeared on stderr. diff --git a/notes/mcp-apps/experiments/9/commands.sh b/notes/mcp-apps/experiments/9/commands.sh new file mode 100755 index 000000000..aebc395c7 --- /dev/null +++ b/notes/mcp-apps/experiments/9/commands.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/9/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-9.XXXXXX")" +mkdir -p "$results" + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" + +uv run python notes/mcp-apps/experiments/9/observe.py "$run_dir/page" \ + >"$results/stdio.json" diff --git a/notes/mcp-apps/experiments/9/observe.py b/notes/mcp-apps/experiments/9/observe.py new file mode 100755 index 000000000..e1958c5bc --- /dev/null +++ b/notes/mcp-apps/experiments/9/observe.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""Probe the shipped MCP server across its real stdio process boundary.""" + +import hashlib +import json +import sys +from pathlib import Path + +import anyio +from leaf.event_log import read_events +from leaf.mcp_app import APP_RESOURCE, RESOURCE_URI +from mcp import ClientSession, StdioServerParameters +from mcp.client.stdio import stdio_client + +REPO = Path(__file__).resolve().parents[4] + + +async def session(page_dir: Path, *, settle: bool) -> dict: + params = StdioServerParameters( + command=str(REPO / "bin/leaf"), + args=["mcp", "run"], + cwd=REPO, + ) + async with ( + stdio_client(params) as (read_stream, write_stream), + ClientSession(read_stream, write_stream) as client, + ): + initialized = await client.initialize() + tools = await client.list_tools() + resources = await client.list_resources() + resource = await client.read_resource(RESOURCE_URI) + opened = await client.call_tool("leaf_open_page", {"page": str(page_dir)}) + state = opened.structured_content["state"] + result = { + "initialize": initialized.model_dump(by_alias=True), + "tools": [tool.model_dump(by_alias=True) for tool in tools.tools], + "resources": [ + item.model_dump(by_alias=True) for item in resources.resources + ], + "resource": { + "uri": str(resource.contents[0].uri), + "mime_type": resource.contents[0].mime_type, + "length": len(resource.contents[0].text), + "sha256": hashlib.sha256( + resource.contents[0].text.encode("utf-8") + ).hexdigest(), + }, + "opened": state, + } + if settle: + submit = state["ask"]["submit"] + posted = await client.call_tool( + "leaf_post_event", + { + "page": str(page_dir), + "event": { + **submit, + "detail": {"options": ["opt-redis"]}, + "attempt": "mcp-app-stdio-0001", + }, + }, + ) + result["posted"] = posted.structured_content + return result + + +async def main(page_dir: Path) -> None: + first = await session(page_dir, settle=True) + second = await session(page_dir, settle=False) + shipped = APP_RESOURCE.read_bytes() + print( + json.dumps( + { + "first_process": first, + "second_process": second, + "shipped_resource": { + "length": len(shipped), + "sha256": hashlib.sha256(shipped).hexdigest(), + }, + "log": read_events(page_dir), + }, + indent=2, + ensure_ascii=False, + ) + ) + + +if __name__ == "__main__": + anyio.run(main, Path(sys.argv[1]).resolve()) diff --git a/notes/mcp-apps/experiments/9/output.txt b/notes/mcp-apps/experiments/9/output.txt new file mode 100644 index 000000000..2d808b70c --- /dev/null +++ b/notes/mcp-apps/experiments/9/output.txt @@ -0,0 +1,2 @@ +initialized /Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-9.WWYySG/page +✓ index.html: parses, widgets validate, one module script + theme link, protected ids and decisions carried over, nothing overflows the 720px column diff --git a/notes/mcp-apps/experiments/9/results/stdio.json b/notes/mcp-apps/experiments/9/results/stdio.json new file mode 100644 index 000000000..5c61cf30e --- /dev/null +++ b/notes/mcp-apps/experiments/9/results/stdio.json @@ -0,0 +1,458 @@ +{ + "first_process": { + "initialize": { + "_meta": null, + "protocolVersion": "2025-11-25", + "capabilities": { + "experimental": {}, + "logging": null, + "prompts": { + "listChanged": false + }, + "resources": { + "subscribe": false, + "listChanged": false + }, + "tools": { + "listChanged": false + }, + "completions": null, + "extensions": null, + "tasks": null + }, + "serverInfo": { + "name": "Leaf", + "title": null, + "version": "0.1.0", + "description": "Open compact Leaf asks backed by the ordinary page log.", + "websiteUrl": null, + "icons": null + }, + "instructions": null + }, + "tools": [ + { + "name": "leaf_open_page", + "title": "Open a compact Leaf ask", + "description": "Open one initialized Leaf page as a compact inline ask. Use when the user wants to review or answer that page inside the conversation.", + "inputSchema": { + "properties": { + "page": { + "title": "Page", + "type": "string" + } + }, + "required": [ + "page" + ], + "type": "object", + "title": "leaf_open_pageArguments" + }, + "execution": null, + "outputSchema": null, + "icons": null, + "annotations": { + "title": null, + "readOnlyHint": true, + "destructiveHint": null, + "idempotentHint": null, + "openWorldHint": false + }, + "_meta": { + "ui": { + "resourceUri": "ui://leaf/compact-ask.html", + "visibility": [ + "model" + ] + } + } + }, + { + "name": "leaf_read_page", + "title": null, + "description": "Read the current compact projection of an initialized Leaf page.", + "inputSchema": { + "properties": { + "page": { + "title": "Page", + "type": "string" + } + }, + "required": [ + "page" + ], + "type": "object", + "title": "leaf_read_pageArguments" + }, + "execution": null, + "outputSchema": null, + "icons": null, + "annotations": { + "title": null, + "readOnlyHint": true, + "destructiveHint": null, + "idempotentHint": null, + "openWorldHint": false + }, + "_meta": { + "ui": { + "resourceUri": "ui://leaf/compact-ask.html", + "visibility": [ + "app" + ] + } + } + }, + { + "name": "leaf_post_event", + "title": null, + "description": "Validate and append one browser-shaped event to an initialized Leaf page.", + "inputSchema": { + "properties": { + "page": { + "title": "Page", + "type": "string" + }, + "event": { + "additionalProperties": true, + "title": "Event", + "type": "object" + } + }, + "required": [ + "page", + "event" + ], + "type": "object", + "title": "leaf_post_eventArguments" + }, + "execution": null, + "outputSchema": null, + "icons": null, + "annotations": { + "title": null, + "readOnlyHint": null, + "destructiveHint": false, + "idempotentHint": null, + "openWorldHint": false + }, + "_meta": { + "ui": { + "resourceUri": "ui://leaf/compact-ask.html", + "visibility": [ + "app" + ] + } + } + } + ], + "resources": [ + { + "name": "ui://leaf/compact-ask.html", + "title": "Leaf compact ask", + "uri": "ui://leaf/compact-ask.html", + "description": "A disposable inline projection of one current Leaf options ask.", + "mimeType": "text/html;profile=mcp-app", + "size": null, + "icons": null, + "annotations": null, + "_meta": { + "ui": { + "prefersBorder": true + } + } + } + ], + "resource": { + "uri": "ui://leaf/compact-ask.html", + "mime_type": "text/html;profile=mcp-app", + "length": 385152, + "sha256": "f8dbab209fb870925c48016c196181ac4cc5cf047d58c070a232aadf10a29339" + }, + "opened": { + "format": "leaf.compact-ask/v1", + "page": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-9.WWYySG/page", + "title": "Decision: where sessions live", + "event_seq": 0, + "active": { + "revision": 1, + "version": null, + "url": "/revisions/r1-31077e1fbb435da3.html", + "label": "Draft", + "activated_at": "2026-08-31T03:26:59.067451+00:00", + "file": "revisions/r1-31077e1fbb435da3.html" + }, + "source_error": null, + "full_page_url": null, + "mode": "ask", + "reason": null, + "message": "Choose one option.", + "ask": { + "surface": "session-options-decision", + "source": "session-options", + "question": "Where should a session live?", + "context": "", + "options": [ + { + "id": "opt-jwt", + "label": "Stateless JWT", + "summary": "effort: low risk: high Stateless JWT Revoke build a denylist Outage unaffected New ops none, at first Sessions become signed tokens; no store at all. Revocation requires a denylist, which quietly reintroduces the store — with the hard parts (replication, expiry) still attached, and the account-takeover response waiting on them. With nothing stored there is nothing to list, so the support console loses its per-device Revoke and \"log out all devices\" waits on the token's own expiry." + }, + { + "id": "opt-redis", + "label": "Redis, cookie fallback", + "summary": "effort: med risk: low Redis, cookie fallback Revoke delete the key Outage reads ride the cookie New ops what we already do Sessions in the Redis we already run, keyed by an opaque id; a short-lived signed cookie covers Redis outages for reads, so a blip doesn't log everyone out. Revocation is a delete — which is the shape support's \"log out all devices\" needs. My take: this preserves revocation without making Redis an outage." + }, + { + "id": "opt-db", + "label": "Postgres table", + "summary": "effort: low risk: med Postgres table Revoke delete the row Outage shares the database's fate New ops vacuum pressure One table, no new moving parts. Every request writes a row (rolling expiry), so at our volume that's the primary's headroom spent on expiry bookkeeping — and a session outage becomes a database outage." + } + ], + "submit": { + "kind": "action", + "revision": 1, + "widget": "session-options", + "action": "choose" + } + } + }, + "posted": { + "ok": true, + "state": { + "format": "leaf.compact-ask/v1", + "page": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-9.WWYySG/page", + "title": "Decision: where sessions live", + "event_seq": 1, + "active": { + "revision": 1, + "version": null, + "url": "/revisions/r1-31077e1fbb435da3.html", + "label": "Draft", + "activated_at": "2026-08-31T03:26:59.067451+00:00", + "file": "revisions/r1-31077e1fbb435da3.html" + }, + "source_error": null, + "full_page_url": null, + "mode": "empty", + "reason": "no-open-ask", + "message": "This page has no open ask.", + "ask": null + }, + "status": 200 + } + }, + "second_process": { + "initialize": { + "_meta": null, + "protocolVersion": "2025-11-25", + "capabilities": { + "experimental": {}, + "logging": null, + "prompts": { + "listChanged": false + }, + "resources": { + "subscribe": false, + "listChanged": false + }, + "tools": { + "listChanged": false + }, + "completions": null, + "extensions": null, + "tasks": null + }, + "serverInfo": { + "name": "Leaf", + "title": null, + "version": "0.1.0", + "description": "Open compact Leaf asks backed by the ordinary page log.", + "websiteUrl": null, + "icons": null + }, + "instructions": null + }, + "tools": [ + { + "name": "leaf_open_page", + "title": "Open a compact Leaf ask", + "description": "Open one initialized Leaf page as a compact inline ask. Use when the user wants to review or answer that page inside the conversation.", + "inputSchema": { + "properties": { + "page": { + "title": "Page", + "type": "string" + } + }, + "required": [ + "page" + ], + "type": "object", + "title": "leaf_open_pageArguments" + }, + "execution": null, + "outputSchema": null, + "icons": null, + "annotations": { + "title": null, + "readOnlyHint": true, + "destructiveHint": null, + "idempotentHint": null, + "openWorldHint": false + }, + "_meta": { + "ui": { + "resourceUri": "ui://leaf/compact-ask.html", + "visibility": [ + "model" + ] + } + } + }, + { + "name": "leaf_read_page", + "title": null, + "description": "Read the current compact projection of an initialized Leaf page.", + "inputSchema": { + "properties": { + "page": { + "title": "Page", + "type": "string" + } + }, + "required": [ + "page" + ], + "type": "object", + "title": "leaf_read_pageArguments" + }, + "execution": null, + "outputSchema": null, + "icons": null, + "annotations": { + "title": null, + "readOnlyHint": true, + "destructiveHint": null, + "idempotentHint": null, + "openWorldHint": false + }, + "_meta": { + "ui": { + "resourceUri": "ui://leaf/compact-ask.html", + "visibility": [ + "app" + ] + } + } + }, + { + "name": "leaf_post_event", + "title": null, + "description": "Validate and append one browser-shaped event to an initialized Leaf page.", + "inputSchema": { + "properties": { + "page": { + "title": "Page", + "type": "string" + }, + "event": { + "additionalProperties": true, + "title": "Event", + "type": "object" + } + }, + "required": [ + "page", + "event" + ], + "type": "object", + "title": "leaf_post_eventArguments" + }, + "execution": null, + "outputSchema": null, + "icons": null, + "annotations": { + "title": null, + "readOnlyHint": null, + "destructiveHint": false, + "idempotentHint": null, + "openWorldHint": false + }, + "_meta": { + "ui": { + "resourceUri": "ui://leaf/compact-ask.html", + "visibility": [ + "app" + ] + } + } + } + ], + "resources": [ + { + "name": "ui://leaf/compact-ask.html", + "title": "Leaf compact ask", + "uri": "ui://leaf/compact-ask.html", + "description": "A disposable inline projection of one current Leaf options ask.", + "mimeType": "text/html;profile=mcp-app", + "size": null, + "icons": null, + "annotations": null, + "_meta": { + "ui": { + "prefersBorder": true + } + } + } + ], + "resource": { + "uri": "ui://leaf/compact-ask.html", + "mime_type": "text/html;profile=mcp-app", + "length": 385152, + "sha256": "f8dbab209fb870925c48016c196181ac4cc5cf047d58c070a232aadf10a29339" + }, + "opened": { + "format": "leaf.compact-ask/v1", + "page": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-9.WWYySG/page", + "title": "Decision: where sessions live", + "event_seq": 1, + "active": { + "revision": 1, + "version": null, + "url": "/revisions/r1-31077e1fbb435da3.html", + "label": "Draft", + "activated_at": "2026-08-31T03:26:59.067451+00:00", + "file": "revisions/r1-31077e1fbb435da3.html" + }, + "source_error": null, + "full_page_url": null, + "mode": "empty", + "reason": "no-open-ask", + "message": "This page has no open ask.", + "ask": null + } + }, + "shipped_resource": { + "length": 385160, + "sha256": "f8dbab209fb870925c48016c196181ac4cc5cf047d58c070a232aadf10a29339" + }, + "log": [ + { + "kind": "action", + "revision": 1, + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "attempt": "mcp-app-stdio-0001", + "author": "user", + "id": "aa5e0fef0fb7c36dc39a746d7f63f4a0", + "ts": "2026-08-30T20:26:59-07:00", + "seq": 1 + } + ] +} diff --git a/pyproject.toml b/pyproject.toml index 027e46ef9..af6a99d12 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ name = "leaf" version = "0" requires-python = ">=3.10" -dependencies = ["click>=8", "jsonschema>=4", "playwright>=1.49", "tinycss2>=1.4"] +dependencies = ["click>=8", "jsonschema>=4", "mcp>=2", "playwright>=1.49", "tinycss2>=1.4"] [project.scripts] leaf = "leaf.cli:cli" diff --git a/scripts/CLAUDE.md b/scripts/CLAUDE.md index 57e24aa6b..f03195757 100644 --- a/scripts/CLAUDE.md +++ b/scripts/CLAUDE.md @@ -43,7 +43,11 @@ published file is already loadable: - Builds, where it is not, or where what ships is cut down to what the registry declares: `highlight` and `pierre`, both cut to `$languages.names`, and `plot`, bundled with d3 because Plot's published ESM leaves d3 as a bare - external import. + external import. `mcp-app` is the separate delivery-surface build: each tracked + shell under `scripts/mcp-app/` becomes one HTML blob containing the MCP Apps + SDK, its application code and styles, and the Leaf mark. The full-page shell + then frames the declared process-scoped page origin; the compact shell has no + network assets. A bundle reproduces its tracked bytes exactly when every input it fetches is pinned, which holds for the three copies and for `highlight`, so a clean diff --git a/scripts/mcp-app/compact-app.css b/scripts/mcp-app/compact-app.css new file mode 100644 index 000000000..121e21d13 --- /dev/null +++ b/scripts/mcp-app/compact-app.css @@ -0,0 +1,255 @@ +:root { + color-scheme: light dark; + --leaf-bg: var(--color-background-primary, light-dark(#fbfaf7, #171a1d)); + --leaf-panel: var(--color-background-secondary, light-dark(#f2f0eb, #20252a)); + --leaf-hover: var(--color-background-tertiary, light-dark(#e9e6df, #292f35)); + --leaf-ink: var(--color-text-primary, light-dark(#202522, #eef2ee)); + --leaf-muted: var(--color-text-secondary, light-dark(#626965, #abb5ae)); + --leaf-border: var(--color-border-secondary, light-dark(#d8d4cb, #3d454b)); + --leaf-accent: var(--color-text-info, light-dark(#2f5480, #8fb0d8)); + --leaf-ring: var(--color-ring-primary, light-dark(#365f90, #9bbce4)); +} + +* { + box-sizing: border-box; +} + +html, +body { + margin: 0; + min-width: 0; + min-height: 100%; + background: transparent; +} + +body { + font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, sans-serif); + color: var(--leaf-ink); + font-size: var(--font-text-md-size, 16px); + line-height: var(--font-text-md-line-height, 1.45); +} + +button { + font: inherit; +} + +.shell { + min-width: 0; + height: 100vh; + display: grid; + grid-template-rows: auto minmax(0, 1fr) auto; + padding: + calc(12px + var(--safe-top, 0px)) + calc(16px + var(--safe-right, 0px)) + calc(10px + var(--safe-bottom, 0px)) + calc(16px + var(--safe-left, 0px)); + background: var(--leaf-bg); +} + +.mast, +.foot { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.mast { + padding-bottom: 10px; + border-bottom: 1px solid var(--leaf-border); +} + +.identity { + display: flex; + align-items: center; + min-width: 0; + gap: 8px; +} + +.mark, +.mark svg { + display: block; + width: 22px; + height: 22px; + flex: 0 0 22px; +} + +.product { + font-size: 13px; + font-weight: var(--font-weight-semibold, 650); + letter-spacing: 0.01em; +} + +.surface { + margin-left: 6px; + color: var(--leaf-muted); + font-size: 11px; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.quiet-button, +.link-button { + border: 0; + padding: 3px 0; + background: transparent; + color: var(--leaf-muted); + font-size: 12px; + cursor: pointer; +} + +.quiet-button:hover, +.link-button:hover { + color: var(--leaf-ink); + text-decoration: underline; + text-underline-offset: 3px; +} + +.quiet-button:focus-visible, +.link-button:focus-visible, +.option:focus-visible { + outline: 2px solid var(--leaf-ring); + outline-offset: 2px; +} + +.content { + min-width: 0; + overflow: auto; + padding: 14px 1px 12px; + scrollbar-width: thin; +} + +.kicker { + margin: 0 0 4px; + color: var(--leaf-muted); + font-size: 11px; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +h1 { + margin: 0; + max-width: 38rem; + font-size: var(--font-heading-lg-size, 20px); + line-height: var(--font-heading-lg-line-height, 1.25); + font-weight: var(--font-weight-semibold, 650); + letter-spacing: -0.015em; +} + +.context, +.message, +.loading { + margin: 7px 0 0; + max-width: 50rem; + color: var(--leaf-muted); + font-size: 13px; +} + +.options { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); + gap: 8px; + margin-top: 13px; +} + +.option { + min-width: 0; + min-height: 48px; + padding: 10px 11px 10px 13px; + border: 1px solid var(--leaf-border); + border-left: 3px solid var(--leaf-accent); + border-radius: var(--border-radius-md, 6px); + background: var(--leaf-panel); + color: var(--leaf-ink); + text-align: left; + cursor: pointer; +} + +.option:hover:not(:disabled) { + background: var(--leaf-hover); + border-color: var(--leaf-accent); +} + +.option:disabled { + cursor: wait; + opacity: 0.58; +} + +.option-label { + display: block; + overflow-wrap: anywhere; + font-size: 13px; + font-weight: var(--font-weight-semibold, 650); + line-height: 1.35; +} + +.option-summary { + display: block; + margin-top: 5px; + color: var(--leaf-ink); + font-size: 11px; + font-weight: var(--font-weight-normal, 400); + line-height: 1.4; +} + +.empty-mark { + display: block; + margin-bottom: 7px; + color: var(--leaf-accent); + font-size: 22px; + line-height: 1; +} + +.foot { + min-height: 31px; + padding-top: 8px; + border-top: 1px solid var(--leaf-border); +} + +.sequence { + min-width: 0; + overflow: hidden; + color: var(--leaf-muted); + font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace); + font-size: 10px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.status { + flex: 1 1 auto; + min-width: 0; + margin: 0 0 0 auto; + overflow: hidden; + color: var(--leaf-muted); + font-size: 10px; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +@media (max-width: 480px) { + .shell { + padding: + calc(10px + var(--safe-top, 0px)) + calc(12px + var(--safe-right, 0px)) + calc(8px + var(--safe-bottom, 0px)) + calc(12px + var(--safe-left, 0px)); + } + + .content { + padding-top: 12px; + } + + .options { + grid-template-columns: 1fr; + } +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + scroll-behavior: auto !important; + } +} diff --git a/scripts/mcp-app/compact-app.html b/scripts/mcp-app/compact-app.html new file mode 100644 index 000000000..86d7c1dbe --- /dev/null +++ b/scripts/mcp-app/compact-app.html @@ -0,0 +1,39 @@ + + + + + + + Leaf compact ask + + + +

    +
    +
    + + + Leaf + inline ask + +
    + +
    +
    +

    Opening the current ask…

    +
    +
    + Waiting for Leaf +

    + +
    +
    + + + diff --git a/scripts/mcp-app/compact-app.js b/scripts/mcp-app/compact-app.js new file mode 100644 index 000000000..8f498904d --- /dev/null +++ b/scripts/mcp-app/compact-app.js @@ -0,0 +1,196 @@ +import { + App, + applyDocumentTheme, + applyHostFonts, + applyHostStyleVariables, +} from "@modelcontextprotocol/ext-apps/app-with-deps"; + +const app = new App({ name: "Leaf compact ask", version: "0.1.0" }); +const content = document.querySelector("#content"); +const sequence = document.querySelector("#sequence"); +const status = document.querySelector("#status"); +const refresh = document.querySelector("#refresh"); +const openFull = document.querySelector("#open-full"); +const shell = document.querySelector("#app"); +let current = null; +let pagePath = null; +let busy = false; + +function payload(result) { + return result?.structuredContent ?? result?.structured_content ?? null; +} + +function element(tag, className, text) { + const node = document.createElement(tag); + if (className) node.className = className; + if (text != null) node.textContent = text; + return node; +} + +function announce(message) { + status.textContent = ""; + requestAnimationFrame(() => { + status.textContent = message; + }); +} + +function setBusy(value) { + busy = value; + refresh.disabled = value; + for (const button of content.querySelectorAll("button")) button.disabled = value; +} + +function showMessage(state) { + const kicker = element("p", "kicker", state.title || "Leaf page"); + const heading = element( + "h1", + "", + state.mode === "empty" + ? "Nothing waiting here" + : state.full_page_url + ? "Continue on the full page" + : "Not available inline", + ); + const message = element("p", "message", state.message); + if (state.mode === "empty") { + const mark = element("span", "empty-mark", "✓"); + mark.setAttribute("aria-hidden", "true"); + content.append(mark); + } + content.append(kicker, heading, message); +} + +function choiceButton(option, ask) { + const button = element("button", "option"); + button.type = "button"; + button.dataset.option = option.id; + button.setAttribute("aria-label", option.label); + button.append(element("span", "option-label", option.label)); + const summaryText = supportingText(option); + if (summaryText) { + const summary = element("span", "option-summary", summaryText); + summary.id = `option-summary-${option.id}`; + button.setAttribute("aria-describedby", summary.id); + button.append(summary); + } + button.addEventListener("click", () => choose(option, ask)); + return button; +} + +function supportingText(option) { + const summary = option.summary?.trim(); + if (!summary || summary === option.label) return ""; + const labelAt = summary.indexOf(option.label); + if (labelAt < 0) return summary; + return `${summary.slice(0, labelAt)} ${summary.slice(labelAt + option.label.length)}` + .trim() + .replaceAll(/\s+/g, " "); +} + +function showAsk(state) { + const ask = state.ask; + content.append( + element("p", "kicker", state.title || "Leaf page"), + element("h1", "", ask.question), + ); + if (ask.context) content.append(element("p", "context", ask.context)); + const options = element("div", "options"); + options.setAttribute("role", "group"); + options.setAttribute("aria-label", ask.question); + for (const option of ask.options) options.append(choiceButton(option, ask)); + content.append(options); +} + +function render(state, announcement) { + current = state; + pagePath = state.page ?? pagePath; + content.replaceChildren(); + sequence.textContent = `event ${state.event_seq} · ${state.active?.label ?? "no revision"}`; + openFull.hidden = !state.full_page_url; + state.mode === "ask" ? showAsk(state) : showMessage(state); + if (announcement) announce(announcement); + else status.textContent = ""; +} + +async function choose(option, ask) { + if (busy || !pagePath) return; + setBusy(true); + announce(`Recording ${option.label}`); + const event = { + ...ask.submit, + detail: { options: [option.id] }, + attempt: crypto.randomUUID().replaceAll("-", ""), + }; + try { + const result = await app.callServerTool({ + name: "leaf_post_event", + arguments: { page: pagePath, event }, + }); + const answer = payload(result); + if (!answer?.ok) throw new Error(answer?.error ?? "Leaf refused the event"); + render(answer.state, `Recorded ${option.label}`); + } catch (error) { + announce(`Could not record the choice: ${String(error)}`); + } finally { + setBusy(false); + } +} + +async function readCurrent() { + if (busy || !pagePath) return; + setBusy(true); + try { + const result = await app.callServerTool({ + name: "leaf_read_compact_ask", + arguments: { page: pagePath }, + }); + const answer = payload(result); + if (!answer?.ok) throw new Error(answer?.error ?? "Leaf refused the read"); + render(answer.state, "Refreshed the Leaf ask"); + } catch (error) { + announce(`Could not refresh: ${String(error)}`); + } finally { + setBusy(false); + } +} + +function applyContext(context) { + if (!context) return; + if (context.theme) applyDocumentTheme(context.theme); + if (context.styles?.variables) applyHostStyleVariables(context.styles.variables); + if (context.styles?.css?.fonts) applyHostFonts(context.styles.css.fonts); + if (context.safeAreaInsets) { + for (const edge of ["top", "right", "bottom", "left"]) + shell.style.setProperty(`--safe-${edge}`, `${context.safeAreaInsets[edge]}px`); + } +} + +app.ontoolresult = (result) => { + const answer = payload(result); + if (answer?.state) render(answer.state); +}; +app.onhostcontextchanged = applyContext; +app.onerror = (error) => announce(`Host error: ${String(error)}`); +app.onteardown = async () => ({}); + +refresh.addEventListener("click", readCurrent); +openFull.addEventListener("click", async () => { + if (!current?.full_page_url) return; + try { + const answer = await app.openLink({ url: current.full_page_url }); + if (answer?.isError) announce("The host did not open the full page"); + } catch (error) { + announce(`Could not open the full page: ${String(error)}`); + } +}); + +app + .connect() + .then(() => applyContext(app.getHostContext())) + .catch((error) => { + content.replaceChildren( + element("h1", "", "Could not connect to this host"), + element("p", "message", String(error)), + ); + announce("Leaf could not connect to this host"); + }); diff --git a/scripts/mcp-app/page-app.css b/scripts/mcp-app/page-app.css new file mode 100644 index 000000000..94330553c --- /dev/null +++ b/scripts/mcp-app/page-app.css @@ -0,0 +1,192 @@ +:root { + color-scheme: light dark; + --leaf-bg: var(--color-background-primary, light-dark(#fbfaf7, #171a1d)); + --leaf-panel: var(--color-background-secondary, light-dark(#f2f0eb, #20252a)); + --leaf-ink: var(--color-text-primary, light-dark(#202522, #eef2ee)); + --leaf-muted: var(--color-text-secondary, light-dark(#626965, #abb5ae)); + --leaf-border: var(--color-border-secondary, light-dark(#d8d4cb, #3d454b)); + --leaf-ring: var(--color-ring-primary, light-dark(#365f90, #9bbce4)); + --leaf-warning: var(--color-text-warning, light-dark(#875b16, #e4bd75)); +} + +* { + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + margin: 0; + overflow: hidden; + background: var(--leaf-bg); +} + +body, +button { + font-family: var(--font-sans, ui-sans-serif, system-ui, -apple-system, sans-serif); +} + +body { + color: var(--leaf-ink); +} + +.shell { + width: 100%; + height: 100vh; + display: grid; + grid-template-rows: auto minmax(0, 1fr) auto; + padding: + var(--safe-top, 0px) + var(--safe-right, 0px) + var(--safe-bottom, 0px) + var(--safe-left, 0px); +} + +.bar, +.foot { + min-width: 0; + display: flex; + align-items: center; + gap: 8px; + background: var(--leaf-panel); +} + +.bar { + min-height: 38px; + justify-content: space-between; + padding: 5px 8px 5px 10px; + border-bottom: 1px solid var(--leaf-border); +} + +.identity, +.actions { + min-width: 0; + display: flex; + align-items: center; + gap: 7px; +} + +.identity { + overflow: hidden; +} + +.mark, +.mark svg { + width: 19px; + height: 19px; + display: block; + flex: 0 0 19px; +} + +.product { + font-size: 12px; + font-weight: var(--font-weight-semibold, 650); +} + +.page-title { + min-width: 0; + overflow: hidden; + color: var(--leaf-muted); + font-size: 11px; + text-overflow: ellipsis; + white-space: nowrap; +} + +button { + min-height: 27px; + padding: 3px 7px; + border: 1px solid var(--leaf-border); + border-radius: var(--border-radius-sm, 5px); + background: var(--leaf-bg); + color: var(--leaf-ink); + font-size: 11px; + line-height: 1; + white-space: nowrap; + cursor: pointer; +} + +button:hover:not(:disabled) { + border-color: var(--leaf-muted); +} + +button:focus-visible { + outline: 2px solid var(--leaf-ring); + outline-offset: 2px; +} + +button:disabled { + cursor: wait; + opacity: 0.55; +} + +.surface { + min-width: 0; + min-height: 0; + position: relative; + background: var(--leaf-bg); +} + +#leaf-page { + width: 100%; + height: 100%; + display: block; + border: 0; + background: var(--leaf-bg); +} + +#leaf-page[hidden] { + display: none; +} + +.loading { + max-width: 34rem; + margin: 24px; + color: var(--leaf-muted); + font-size: 13px; + line-height: 1.45; +} + +.foot { + min-height: 24px; + padding: 3px 9px; + border-top: 1px solid var(--leaf-border); + color: var(--leaf-muted); + font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace); + font-size: 9px; +} + +#source-warning { + color: var(--leaf-warning); +} + +#status { + min-width: 0; + margin-left: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +@media (max-width: 540px) { + .bar { + align-items: stretch; + flex-direction: column; + } + + .actions { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .actions button { + overflow: hidden; + text-overflow: ellipsis; + } +} + +@media (prefers-reduced-motion: reduce) { + * { + scroll-behavior: auto !important; + } +} diff --git a/scripts/mcp-app/page-app.html b/scripts/mcp-app/page-app.html new file mode 100644 index 000000000..f4b52cbe4 --- /dev/null +++ b/scripts/mcp-app/page-app.html @@ -0,0 +1,45 @@ + + + + + + + Leaf page + + + +
    +
    +
    + + Leaf + Opening page… +
    +
    + + + +
    +
    +
    +

    Starting the Leaf page…

    + +
    +
    + Waiting for Leaf + + +
    +
    + + + diff --git a/scripts/mcp-app/page-app.js b/scripts/mcp-app/page-app.js new file mode 100644 index 000000000..1ae657403 --- /dev/null +++ b/scripts/mcp-app/page-app.js @@ -0,0 +1,148 @@ +import { + App, + applyDocumentTheme, + applyHostFonts, + applyHostStyleVariables, +} from "@modelcontextprotocol/ext-apps/app-with-deps"; + +const app = new App( + { name: "Leaf page", version: "0.1.0" }, + { availableDisplayModes: ["inline", "fullscreen"] }, +); +const shell = document.querySelector("#app"); +const frame = document.querySelector("#leaf-page"); +const loading = document.querySelector("#loading"); +const pageTitle = document.querySelector("#page-title"); +const sequence = document.querySelector("#sequence"); +const sourceWarning = document.querySelector("#source-warning"); +const status = document.querySelector("#status"); +const refresh = document.querySelector("#refresh"); +const openPage = document.querySelector("#open-page"); +const displayMode = document.querySelector("#display-mode"); +let current = null; +let pagePath = null; +let mode = "inline"; +let busy = false; + +function payload(result) { + return result?.structuredContent ?? result?.structured_content ?? null; +} + +function announce(message) { + status.textContent = ""; + requestAnimationFrame(() => { + status.textContent = message; + }); +} + +function setBusy(value) { + busy = value; + refresh.disabled = value; + displayMode.disabled = value; +} + +function safePageUrl(value) { + const url = new URL(value); + if (url.protocol !== "http:" || url.hostname !== "localhost") + throw new Error("Leaf returned an unexpected page address"); + return url.href; +} + +function render(state, announcement) { + current = state; + pagePath = state.page ?? pagePath; + pageTitle.textContent = state.title || "Untitled page"; + sequence.textContent = `event ${state.event_seq} · ${state.active?.label ?? "no revision"}`; + sourceWarning.hidden = !state.source_error; + openPage.disabled = !state.url; + if (state.mode !== "page" || !state.url) { + frame.hidden = true; + frame.removeAttribute("src"); + loading.hidden = false; + loading.textContent = state.message; + } else { + loading.hidden = true; + frame.hidden = false; + frame.src = safePageUrl(state.url); + } + if (announcement) announce(announcement); + else status.textContent = ""; +} + +async function readCurrent() { + if (busy || !pagePath) return; + setBusy(true); + try { + const result = await app.callServerTool({ + name: "leaf_read_page", + arguments: { page: pagePath }, + }); + const answer = payload(result); + if (!answer?.ok) throw new Error(answer?.error ?? "Leaf refused the read"); + render(answer.state, "Refreshed the Leaf page"); + } catch (error) { + announce(`Could not refresh: ${String(error)}`); + } finally { + setBusy(false); + } +} + +function applyContext(context) { + if (!context) return; + if (context.theme) applyDocumentTheme(context.theme); + if (context.styles?.variables) applyHostStyleVariables(context.styles.variables); + if (context.styles?.css?.fonts) applyHostFonts(context.styles.css.fonts); + if (context.safeAreaInsets) { + for (const edge of ["top", "right", "bottom", "left"]) + shell.style.setProperty(`--safe-${edge}`, `${context.safeAreaInsets[edge]}px`); + } + mode = context.displayMode ?? mode; + if (context.availableDisplayModes !== undefined) + displayMode.hidden = !context.availableDisplayModes.includes("fullscreen"); + displayMode.textContent = mode === "fullscreen" ? "Return inline" : "Full screen"; +} + +app.ontoolresult = (result) => { + const answer = payload(result); + if (answer?.state) render(answer.state); +}; +app.onhostcontextchanged = applyContext; +app.onerror = (error) => announce(`Host error: ${String(error)}`); +app.onteardown = async () => { + frame.src = "about:blank"; + return {}; +}; + +frame.addEventListener("load", () => announce("Leaf page loaded")); +refresh.addEventListener("click", readCurrent); +openPage.addEventListener("click", async () => { + if (!current?.url) return; + try { + const answer = await app.openLink({ url: current.url }); + if (answer?.isError) announce("The host did not open the page"); + } catch (error) { + announce(`Could not open the page: ${String(error)}`); + } +}); +displayMode.addEventListener("click", async () => { + if (busy) return; + setBusy(true); + try { + const next = mode === "fullscreen" ? "inline" : "fullscreen"; + const answer = await app.requestDisplayMode({ mode: next }); + mode = answer.mode; + displayMode.textContent = mode === "fullscreen" ? "Return inline" : "Full screen"; + } catch (error) { + announce(`Could not change the display: ${String(error)}`); + } finally { + setBusy(false); + } +}); + +app + .connect() + .then(() => applyContext(app.getHostContext())) + .catch((error) => { + loading.textContent = `Could not connect to this host: ${String(error)}`; + announce("Leaf could not connect to this host"); + }); diff --git a/scripts/vendor.py b/scripts/vendor.py index 5fe71f9ca..527708e1b 100755 --- a/scripts/vendor.py +++ b/scripts/vendor.py @@ -41,6 +41,7 @@ "sortablejs": "1.15.7", "@observablehq/plot": "0.6.17", "@pierre/diffs": "1.3.6", + "@modelcontextprotocol/ext-apps": "1.7.5", "shiki": "4.4.3", "esbuild": "0.28.2", } @@ -427,8 +428,68 @@ def build_pierre(work: Path) -> list[Path]: return [out, notices] +def build_mcp_app(work: Path) -> list[Path]: + """Bundle the MCP Apps surfaces into self-contained `ui://` resources. + + An MCP host reads one HTML blob from the server; it does not fetch Leaf's + ordinary app assets. The SDK, application code, styles, and existing Leaf + mark are therefore inlined into committed files that an installed plugin can + serve without npm or network access. The complete-page resource may frame + the process-scoped page server, but the resource itself remains standalone. + """ + source = ROOT / "scripts/mcp-app" + run( + "npm", + "install", + "--no-save", + "--no-package-lock", + "--silent", + spec("@modelcontextprotocol/ext-apps"), + spec("esbuild"), + cwd=work, + ) + outputs = [] + for name in ("compact", "page"): + entry = work / f"{name}-entry.js" + bundle = work / f"{name}-bundle.js" + out = ASSETS / f"vendor/mcp-{name}-app.html" + shutil.copyfile(source / f"{name}-app.js", entry) + esbuild( + entry.name, + "--bundle", + "--format=iife", + "--platform=browser", + "--target=chrome105", + "--minify", + "--legal-comments=inline", + f"--banner:js=/*! @modelcontextprotocol/ext-apps {PINS['@modelcontextprotocol/ext-apps']}" + " — MIT — https://github.com/modelcontextprotocol/ext-apps */", + f"--outfile={bundle}", + cwd=work, + ) + html = (source / f"{name}-app.html").read_text(encoding="utf-8") + html = html.replace( + "/* LEAF_MCP_STYLE */", + (source / f"{name}-app.css").read_text(encoding="utf-8").strip(), + ) + html = html.replace( + "/* LEAF_MCP_SCRIPT */", + bundle.read_text(encoding="utf-8") + .strip() + .replace("", + (ASSETS / "icon.svg").read_text(encoding="utf-8").strip(), + ) + out.write_text(html, encoding="utf-8") + outputs.append(out) + return outputs + + BUILDS: dict[str, Callable[[Path], list[Path]]] = { "highlight": build_highlight, + "mcp-app": build_mcp_app, "plot": build_plot, "pierre": build_pierre, } @@ -451,8 +512,9 @@ def vendor(name: str) -> list[Path]: "highlight.js": ("highlight",), "@observablehq/plot": ("plot",), "@pierre/diffs": ("pierre",), + "@modelcontextprotocol/ext-apps": ("mcp-app",), "shiki": ("pierre",), - "esbuild": ("highlight", "plot", "pierre"), + "esbuild": ("highlight", "mcp-app", "plot", "pierre"), } diff --git a/skills/leaf/SKILL.md b/skills/leaf/SKILL.md index 25b875fdf..61df46c38 100644 --- a/skills/leaf/SKILL.md +++ b/skills/leaf/SKILL.md @@ -145,6 +145,9 @@ so a phase does not depend on discovering a chain of references. - `references/internals/validation.md`: when changing static or browser validation, passages, or parsed source. These internal contracts are not for ordinary page use. +- `references/internals/mcp-apps.md`: when changing the experimental MCP Apps + server, complete-page delivery, compact projection, bundled `ui://` resources, + or either return path. ### Use a separate Codex watcher diff --git a/skills/leaf/assets/leaf.js b/skills/leaf/assets/leaf.js index 6a0582b85..150d29404 100644 --- a/skills/leaf/assets/leaf.js +++ b/skills/leaf/assets/leaf.js @@ -696,7 +696,7 @@ const commentsEdge = drawnEdge({ covering: COVERING, }); -const banner = el("div", "lf-ui lf-banner"); +const banner = el("header", "lf-ui lf-banner"); const dot = el("span", "lf-dot"); const statusText = el("span", "lf-status-text", "Connecting…"); const bannerStatus = el("div", "lf-banner-status"); diff --git a/skills/leaf/assets/vendor/mcp-compact-app.html b/skills/leaf/assets/vendor/mcp-compact-app.html new file mode 100644 index 000000000..c3b6a6e2e --- /dev/null +++ b/skills/leaf/assets/vendor/mcp-compact-app.html @@ -0,0 +1,390 @@ + + + + + + + Leaf compact ask + + + +
    +
    +
    + + + Leaf + inline ask + +
    + +
    +
    +

    Opening the current ask…

    +
    +
    + Waiting for Leaf +

    + +
    +
    + + + diff --git a/skills/leaf/assets/vendor/mcp-page-app.html b/skills/leaf/assets/vendor/mcp-page-app.html new file mode 100644 index 000000000..683524c3b --- /dev/null +++ b/skills/leaf/assets/vendor/mcp-page-app.html @@ -0,0 +1,333 @@ + + + + + + + Leaf page + + + +
    +
    +
    + + Leaf + Opening page… +
    +
    + + + +
    +
    +
    +

    Starting the Leaf page…

    + +
    +
    + Waiting for Leaf + + +
    +
    + + + diff --git a/skills/leaf/references/internals/mcp-apps.md b/skills/leaf/references/internals/mcp-apps.md new file mode 100644 index 000000000..7dac7ed29 --- /dev/null +++ b/skills/leaf/references/internals/mcp-apps.md @@ -0,0 +1,81 @@ +# MCP Apps delivery + +MCP Apps is an optional local delivery surface, not Leaf's document or +interaction interface. The experimental server starts with `leaf mcp run` over +stdio. It is not registered automatically by either plugin manifest. + +## Authorities and lifetime + +Every tool call names an initialized page directory. Authored markup remains the +initial condition and `comments.jsonl` remains the only transition record. No +MCP tool or iframe owns current state, replay, undo, versions, or comments. + +`leaf_open_page`, `leaf_read_page`, and both compact reads activate and read +inside Leaf's ordinary page transaction. A valid changed `index.html` may +therefore create the next immutable revision, so these tools do not advertise +the MCP read-only hint despite returning a projection. Closing an app discards +only its view. Opening it again reconstructs from the page directory and log. + +The full-page server is process-scoped plumbing. It starts one ephemeral +loopback HTTP server per opened page, reuses it for later calls, writes no +`service.json`, and stops with the MCP process. The page directory and log keep +their normal lifetime; the loopback address does not. + +## Complete page + +`leaf.page/v1` addresses Leaf's ordinary browser interface. The `ui://` app is a +small host-themed shell containing Refresh, Open in browser, and negotiated +inline/fullscreen controls. Its nested iframe loads the same projected document, +vendored layer, widget modules, comment UI, version navigation, state stream, +and `/api/event` endpoint used by a normal Leaf tab. This is delivery of the +existing interface, not a second renderer. + +The app resource declares `http://localhost:*` in `frameDomains`. Its ephemeral +server binds only `127.0.0.1` but presents a `localhost` URL so Chromium accepts +the secure-loopback cookie exception. Ordinary Leaf servers retain +`SameSite=Strict`; only this third-party app server sends its random, +page-server-scoped token as `SameSite=None; Secure; Partitioned`. The token dies +with that MCP process rather than exposing Leaf's durable machine-wide host key +in an MCP tool result. It keeps authentication on assets, state, and event +writes while isolating the cookie by the MCP host's top-level site. + +This path is local-host-only. The browser rendering the MCP App must share the +machine running `leaf mcp run`; a cloud host's `localhost` is not the MCP +server. A future remote page address needs an explicit deployment and security +contract rather than silently widening this server. + +## Compact projection + +`leaf.compact-ask/v1` is an optional small surface, not a restriction on the +complete app. It recognizes exactly one current, page-scoped, single-choice +`lf-options` ask inside its decision surface. It keeps the decision and +action-owning widget as separate addresses, derives the question from the one +direct heading, and retains every option's complete spoken text as evidence. + +No ask produces an empty state. Several asks, thread asks, multiple choice, +unknown vocabularies, unresolved addresses, unreadable headings, and invalid +mutable source produce an explicit fallback. They are never flattened or +guessed. A compact press calls the app-only `leaf_post_event`, which sends the +browser-shaped event through `EventEndpoint` and returns the transaction's new +projection. It does not append directly or keep an MCP replay list. + +## Tools and resources + +- `leaf_open_page` is model-visible and opens `ui://leaf/page.html` with a + `leaf.page/v1` result. +- `leaf_read_page` is app-only and refreshes that complete-page address. +- `leaf_open_compact_ask` is model-visible and opens + `ui://leaf/compact-ask.html` with a `leaf.compact-ask/v1` projection. +- `leaf_read_compact_ask` and `leaf_post_event` are app-only compact return + tools. + +Both resources use `text/html;profile=mcp-app`. Their tracked sources live under +`scripts/mcp-app/`; `scripts/vendor.py mcp-app` bundles the pinned official SDK, +application code, styles, and existing Leaf mark into committed standalone HTML +files under `assets/vendor/`. The complete-page shell alone declares a framed +origin; neither shell loads its own code or styles from the network. + +Keep registration separate from this contract until shipped-host experiments +establish launcher configuration, local-frame policy, cookie behavior, and +startup cost. The portable primitive is the stdio command. `ui/message` wake +behavior is also host policy and is not part of either event return path. diff --git a/skills/leaf/scripts/CLAUDE.md b/skills/leaf/scripts/CLAUDE.md index d7cbd9020..389b8be16 100644 --- a/skills/leaf/scripts/CLAUDE.md +++ b/skills/leaf/scripts/CLAUDE.md @@ -23,6 +23,8 @@ The main owners are: delivery context, and conversation writes; - `work`: transient work claims and widget work seats; - `decisions`: declaration-driven page and thread decision projections; +- `mcp_app`: the experimental MCP Apps server, process-scoped page delivery, + and compact ask projection; - `requests`: declared request seats, their canonical lifecycle, and the terminal host receipts that close one; - `host`: local paths, process readings, host identity, and session lifetime; @@ -64,6 +66,8 @@ Read the reference that owns the boundary before changing it: service lifetime; - `../references/internals/validation.md` for static checks, browser checks, parsed source, and file-side passages. +- `../references/internals/mcp-apps.md` for the experimental MCP server, + complete-page and compact resources, and their return paths. `../references/packages.md` owns the public package contract. The browser's parallel projection, passage, registry, and render rules live in `../CLAUDE.md`. diff --git a/skills/leaf/scripts/leaf/agent_state.py b/skills/leaf/scripts/leaf/agent_state.py index edabe5fab..4ca3bd572 100644 --- a/skills/leaf/scripts/leaf/agent_state.py +++ b/skills/leaf/scripts/leaf/agent_state.py @@ -59,7 +59,8 @@ def cmd_page_state(page_dir: Path) -> None: """Print the agent-side state from one transaction-consistent snapshot.""" with PageTransaction(page_dir) as page: activation = activate_source(page_dir, page.events) - _write_page_state(page_dir, page.events, activation.error) + state = read_page_state(page_dir, page.events, activation.error) + print(json.dumps(state, indent=2, ensure_ascii=False)) class _DocumentParser(Protocol): @@ -270,13 +271,13 @@ def _apply_thread_state(state: dict, events: list, registry: dict) -> None: ) -def _write_page_state( +def read_page_state( page_dir: Path, events: list, source_error: str | None = None -) -> None: +) -> dict: """Where the page stands, as one JSON object — the agent-facing projection beside the browser projection in /api/state. A session picking a page up needs the same reading; doing it in-head over `leaf events` is how a standing decision - gets missed. So this prints the active revision's elements, the + gets missed. So this returns the active revision's elements, the projection of the user's standing state and the reports standing on the agent channel, where the record lags either (`record_lag_entries`), authored measurements whose live source has run again (`measurement_lag_entries`), the @@ -338,4 +339,4 @@ def _write_page_state( events, ) _apply_thread_state(state, events, registry) - print(json.dumps(state, indent=2, ensure_ascii=False)) + return state diff --git a/skills/leaf/scripts/leaf/cli.py b/skills/leaf/scripts/leaf/cli.py index 8d96346c3..dd66acdd2 100644 --- a/skills/leaf/scripts/leaf/cli.py +++ b/skills/leaf/scripts/leaf/cli.py @@ -78,6 +78,20 @@ def cli() -> None: """Build and run interactive pages a session shares with its user.""" +@cli.group(short_help="Expose pages to MCP Apps hosts.") +def mcp() -> None: + """Run Leaf's experimental MCP Apps delivery surface.""" + + +@mcp.command("run", short_help="Run the MCP Apps server over stdio.") +def mcp_run() -> None: + """Serve complete pages and compact asks over stdio.""" + # Keep the MCP SDK and app resource off every ordinary Leaf CLI startup. + from leaf.mcp_app import run_server + + run_server() + + @cli.group(short_help="Deliver page updates to later turns of this Codex task.") def codex() -> None: """Run Leaf's detached Codex delivery carrier.""" diff --git a/skills/leaf/scripts/leaf/http.py b/skills/leaf/scripts/leaf/http.py index 58dd3098e..826bf7f3d 100644 --- a/skills/leaf/scripts/leaf/http.py +++ b/skills/leaf/scripts/leaf/http.py @@ -92,6 +92,7 @@ class Handler(BaseHTTPRequestHandler): # Every server a user reaches exposes noted versions only. preview_upto = None preview_source = None + cookie_attributes = "SameSite=Strict" def versions_live(self, events): if self.preview_upto is None: @@ -349,7 +350,8 @@ def end_headers(self): if self.set_cookie: self.send_header( "Set-Cookie", - f"{KEY_COOKIE}={self.token}; Path=/; HttpOnly; SameSite=Strict", + f"{KEY_COOKIE}={self.token}; Path=/; HttpOnly; " + f"{self.cookie_attributes}", ) self.set_cookie = False super().end_headers() @@ -594,6 +596,7 @@ def handler_for( preview_upto=None, preview_source=None, protocol_version="HTTP/1.0", + cookie_attributes="SameSite=Strict", ): """A request handler bound to one page, publication view, and key. The key has no default: every server over a page directory is reachable by whatever reached the @@ -607,6 +610,7 @@ def handler_for( "preview_upto": preview_upto, "preview_source": preview_source, "protocol_version": protocol_version, + "cookie_attributes": cookie_attributes, "event_endpoint": EventEndpoint(page_dir), "layer": layer_generation(page_dir), }, diff --git a/skills/leaf/scripts/leaf/mcp_app.py b/skills/leaf/scripts/leaf/mcp_app.py new file mode 100644 index 000000000..54c78f99c --- /dev/null +++ b/skills/leaf/scripts/leaf/mcp_app.py @@ -0,0 +1,467 @@ +"""MCP Apps delivery over Leaf's ordinary page and event authorities. + +The full-page app frames the ordinary browser interface from a process-scoped +loopback server. The compact view remains a projection for hosts or moments +where the full document is unnecessary. Neither path owns document or event +state: both read the page directory and append through Leaf's event boundary. +""" + +from __future__ import annotations + +import atexit +import secrets +import threading +from pathlib import Path +from typing import Any, Callable + +from mcp.server import MCPServer +from mcp.server.apps import Apps, ResourceCsp +from mcp.server.mcpserver.exceptions import ToolError +from mcp.types import CallToolResult, TextContent, ToolAnnotations + +from .agent_state import read_page_state +from .decisions import local_decision_entry, quoted_in +from .event_endpoint import EventEndpoint +from .hosting import server_at +from .http import handler_for +from .passages import collapse, spoken +from .registry.storage import require_registry +from .revisioning import activate_source +from .schema import ASSETS +from .server import page_url +from .service import PageTransaction +from .structure import parse_revision + +PAGE_RESOURCE_URI = "ui://leaf/page.html" +PAGE_APP_RESOURCE = ASSETS / "vendor" / "mcp-page-app.html" +PAGE_FORMAT = "leaf.page/v1" +COMPACT_RESOURCE_URI = "ui://leaf/compact-ask.html" +COMPACT_APP_RESOURCE = ASSETS / "vendor" / "mcp-compact-app.html" +COMPACT_FORMAT = "leaf.compact-ask/v1" + + +class PageServerPool: + """Own ephemeral loopback servers for this MCP process. + + These servers are delivery plumbing rather than page state. They write no + service record and disappear with the MCP process; the document directory + and append-only log outlive them. + """ + + def __init__(self) -> None: + self._lock = threading.Lock() + self._servers: dict[Path, tuple[Any, threading.Thread, str]] = {} + + def open(self, page_dir: Path) -> str: + with self._lock: + existing = self._servers.get(page_dir) + if existing is not None: + return existing[2] + # The app result has to carry this URL through the host to its iframe. + # Scope that exposed credential to this page server and MCP process, + # rather than disclosing Leaf's durable machine-wide host key. + token = secrets.token_urlsafe(16) + httpd = server_at( + "127.0.0.1", + 0, + handler_for( + page_dir, + token, + protocol_version="HTTP/1.1", + cookie_attributes="SameSite=None; Secure; Partitioned", + ), + ) + httpd.daemon_threads = True + thread = threading.Thread(target=httpd.serve_forever, daemon=True) + thread.start() + url = page_url("localhost", httpd.server_address[1], token) + self._servers[page_dir] = (httpd, thread, url) + return url + + def close(self) -> None: + with self._lock: + servers = list(self._servers.values()) + self._servers.clear() + for httpd, thread, _url in servers: + httpd.shutdown() + httpd.server_close() + thread.join(timeout=2) + + +def resolve_page(page: str | Path) -> Path: + """Resolve one initialized page without letting a tool mint its log.""" + page_dir = Path(page).expanduser().resolve() + if not (page_dir / "comments.jsonl").is_file(): + raise ToolError( + f"{page_dir} is not an initialized Leaf page; run `leaf page init` first" + ) + return page_dir + + +def _inside(record: dict, region: dict) -> bool: + holder = record.get("holder") + while holder: + if holder is region: + return True + holder = holder.get("holder") + return False + + +def _source_for(region: dict, records: list[dict], registry: dict) -> dict | None: + candidates = [ + record + for record in records + if local_decision_entry(registry.get(record["tag"], {})) + and not quoted_in(record, registry) + and _inside(record, region) + ] + return candidates[0] if len(candidates) == 1 else None + + +def _fallback(base: dict, code: str, message: str) -> dict: + return {**base, "mode": "fallback", "reason": code, "message": message, "ask": None} + + +def compact_state( + page_dir: Path, events: list, source_error: str | None = None +) -> dict[str, Any]: + """Project at most one current single-choice options ask. + + This deliberately covers one shape. A page with several asks, a thread ask, + a multiple choice, or another vocabulary keeps its canonical full-page + behavior and receives an honest fallback here. + """ + state = read_page_state(page_dir, events, source_error) + server = state.get("server") + base = { + "format": COMPACT_FORMAT, + "page": str(page_dir), + "title": state["title"], + "event_seq": state["event_seq"], + "active": state["active"], + "source_error": state["source"]["error"], + "full_page_url": server.get("url") if server else None, + } + if base["source_error"]: + return _fallback( + base, + "source-invalid", + "The authored source did not validate, so compact mode is holding the last good revision.", + ) + decisions = state["decisions"] + if not decisions: + return { + **base, + "mode": "empty", + "reason": "no-open-ask", + "message": "This page has no open ask.", + "ask": None, + } + if len(decisions) != 1: + return _fallback( + base, + "several-open-asks", + f"This page has {len(decisions)} open asks; use the full page to keep their context together.", + ) + decision = decisions[0] + if decision.get("thread"): + return _fallback( + base, + "thread-ask", + "This ask belongs to a conversation thread; continue it on the full page.", + ) + if not state["active"]: + return _fallback( + base, "no-active-revision", "This page has no active revision." + ) + + revision = state["active"]["revision"] + parser = parse_revision(page_dir, revision) + registry = require_registry(page_dir) + region = parser.by_id.get(decision["id"]) + if region is None: + return _fallback( + base, + "unresolved-surface", + "The current ask has no address in the active revision.", + ) + source = _source_for(region, parser.lf_elements, registry) + if source is None or source["tag"] != "lf-options": + return _fallback( + base, + "unsupported-ask", + "This compact surface currently supports a single-choice options ask only.", + ) + attrs = source["attrs"] + if not attrs.get("id") or "choose" not in attrs or "multiple" in attrs: + return _fallback( + base, + "unsupported-options", + "This compact surface currently supports a single-choice options ask only.", + ) + if source.get("parent") != region["tag"]: + return _fallback( + base, + "nested-options", + "This compact surface requires the options widget directly inside its decision.", + ) + + html = (page_dir / state["active"]["file"]).read_text(encoding="utf-8") + said = spoken(html, registry) + options = [ + record + for record in parser.lf_elements + if record["tag"] == "lf-option" + and record.get("holder") is source + and record["attrs"].get("id") + ] + if not options: + return _fallback( + base, + "empty-options", + "The current options ask has no addressable choices.", + ) + headings = [ + child + for child in region.get("direct_text", []) + if child["tag"] in {f"h{n}" for n in range(1, 7)} + ] + heading = headings[0] if len(headings) == 1 else None + question = collapse(heading["text"]) if heading else "" + if not question: + return _fallback( + base, + "untitled-ask", + "The current ask has no readable title.", + ) + context = collapse( + " ".join( + child["text"] + for child in region.get("direct_text", []) + if child is not heading and child["tag"] != source["tag"] + ) + ) + return { + **base, + "mode": "ask", + "reason": None, + "message": "Choose one option.", + "ask": { + "surface": region["attrs"]["id"], + "source": attrs["id"], + "question": question, + "context": context, + "options": [ + { + "id": record["attrs"]["id"], + "label": next( + ( + collapse(child["text"]) + for child in record.get("direct_text", []) + if child["tag"] == "strong" and collapse(child["text"]) + ), + said[record["attrs"]["id"]].words, + ), + "summary": said[record["attrs"]["id"]].words, + } + for record in options + ], + "submit": { + "kind": "action", + "revision": revision, + "widget": attrs["id"], + "action": "choose", + }, + }, + } + + +def current_compact_state(page_dir: Path) -> dict[str, Any]: + """Read and, if valid source changed, activate one transaction-consistent view.""" + with PageTransaction(page_dir) as page: + activation = activate_source(page_dir, page.events) + return compact_state(page_dir, page.events, activation.error) + + +def current_page_state( + page_dir: Path, page_url_for: Callable[[Path], str] +) -> dict[str, Any]: + """Activate the source, then address its ordinary browser interface.""" + with PageTransaction(page_dir) as page: + activation = activate_source(page_dir, page.events) + state = read_page_state(page_dir, page.events, activation.error) + active = state["active"] + if not active: + return { + "format": PAGE_FORMAT, + "mode": "fallback", + "page": str(page_dir), + "title": state["title"], + "event_seq": state["event_seq"], + "active": None, + "source_error": state["source"]["error"], + "url": None, + "message": "This page has no valid revision to display.", + } + source_error = state["source"]["error"] + return { + "format": PAGE_FORMAT, + "mode": "page", + "page": str(page_dir), + "title": state["title"], + "event_seq": state["event_seq"], + "active": active, + "source_error": source_error, + "url": page_url_for(page_dir), + "message": ( + "Opening the last valid revision; the current authored source is invalid." + if source_error + else "Opening the complete Leaf page." + ), + } + + +def _result(text: str, payload: dict[str, Any]) -> CallToolResult: + return CallToolResult( + content=[TextContent(type="text", text=text)], structured_content=payload + ) + + +def _compact_summary(state: dict[str, Any]) -> str: + ask = state.get("ask") + if not ask: + return f"{state['title'] or 'Leaf page'}: {state['message']}" + choices = "; ".join(option["label"] for option in ask["options"]) + return f"{state['title'] or 'Leaf page'}: {ask['question']} Options: {choices}" + + +def _page_summary(state: dict[str, Any]) -> str: + return f"{state['title'] or 'Leaf page'}: {state['message']}" + + +def create_server( + compact_html: str | None = None, + page_html: str | None = None, + page_url_for: Callable[[Path], str] | None = None, +) -> MCPServer: + """Create the stdio server; every tool call names its durable page.""" + apps = Apps() + endpoints: dict[Path, EventEndpoint] = {} + pool = None + if page_url_for is None: + pool = PageServerPool() + page_url_for = pool.open + atexit.register(pool.close) + + def endpoint(page_dir: Path) -> EventEndpoint: + return endpoints.setdefault(page_dir, EventEndpoint(page_dir)) + + @apps.tool( + resource_uri=PAGE_RESOURCE_URI, + visibility=["model"], + name="leaf_open_page", + title="Open a Leaf page", + description=( + "Open the complete browser interface for one initialized Leaf page " + "inside the conversation." + ), + annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), + ) + def leaf_open_page(page: str) -> CallToolResult: + state = current_page_state(resolve_page(page), page_url_for) + return _result(_page_summary(state), {"ok": True, "state": state}) + + @apps.tool( + resource_uri=PAGE_RESOURCE_URI, + visibility=["app"], + name="leaf_read_page", + description="Refresh the complete interface for an initialized Leaf page.", + annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), + ) + def leaf_read_page(page: str) -> CallToolResult: + state = current_page_state(resolve_page(page), page_url_for) + return _result(_page_summary(state), {"ok": True, "state": state}) + + @apps.tool( + resource_uri=COMPACT_RESOURCE_URI, + visibility=["model"], + name="leaf_open_compact_ask", + title="Open a compact Leaf ask", + description=( + "Open one initialized Leaf page as a compact inline ask when a small " + "single-choice surface is preferable to the complete page." + ), + annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), + ) + def leaf_open_compact_ask(page: str) -> CallToolResult: + state = current_compact_state(resolve_page(page)) + return _result(_compact_summary(state), {"ok": True, "state": state}) + + @apps.tool( + resource_uri=COMPACT_RESOURCE_URI, + visibility=["app"], + name="leaf_read_compact_ask", + description="Read the current compact projection of an initialized Leaf page.", + annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), + ) + def leaf_read_compact_ask(page: str) -> CallToolResult: + state = current_compact_state(resolve_page(page)) + return _result(_compact_summary(state), {"ok": True, "state": state}) + + @apps.tool( + resource_uri=COMPACT_RESOURCE_URI, + visibility=["app"], + name="leaf_post_event", + description=( + "Validate and append one browser-shaped event to an initialized Leaf page." + ), + annotations=ToolAnnotations(destructive_hint=False, open_world_hint=False), + ) + def leaf_post_event(page: str, event: dict[str, Any]) -> CallToolResult: + page_dir = resolve_page(page) + status, answer = endpoint(page_dir).accept( + dict(event), lambda: current_compact_state(page_dir) + ) + payload = {**answer, "status": status} + text = ( + "Leaf event accepted." + if answer.get("ok") + else f"Leaf event refused: {answer.get('error', 'unknown error')}" + ) + return _result(text, payload) + + compact_resource = ( + compact_html + if compact_html is not None + else COMPACT_APP_RESOURCE.read_text(encoding="utf-8") + ) + apps.add_html_resource( + COMPACT_RESOURCE_URI, + compact_resource, + title="Leaf compact ask", + description="A disposable inline projection of one current Leaf options ask.", + prefers_border=True, + ) + page_resource = ( + page_html + if page_html is not None + else PAGE_APP_RESOURCE.read_text(encoding="utf-8") + ) + apps.add_html_resource( + PAGE_RESOURCE_URI, + page_resource, + title="Leaf page", + description="The complete Leaf browser interface in an MCP App.", + csp=ResourceCsp(frame_domains=["http://localhost:*"]), + prefers_border=False, + ) + return MCPServer( + "Leaf", + version="0.1.0", + description="Open complete Leaf pages and compact asks backed by the ordinary page log.", + extensions=[apps], + ) + + +def run_server() -> None: + create_server().run(transport="stdio") diff --git a/skills/leaf/scripts/leaf/structure.py b/skills/leaf/scripts/leaf/structure.py index f78d5fb53..74463918b 100644 --- a/skills/leaf/scripts/leaf/structure.py +++ b/skills/leaf/scripts/leaf/structure.py @@ -226,6 +226,11 @@ def __init__(self): # is a list that goes on admitting the next one it coins. self.reserved_markers = [] self._svg_depth = 0 + # Text under one direct child of an lf-* record. Decision headings and + # option labels are already structural authoring conventions; + # keep their words on the same generic record so non-DOM projections do + # not need a second HTML parser to rediscover what this walk just proved. + self._direct_text = [] # {"tag", "record": {"tag", "text"}} @property def ids(self) -> set: @@ -271,6 +276,12 @@ def reserved_ids(self) -> list: def _implicit_close(self, tag): for _ in range(implicit_closes([t for t, *_ in self.stack], tag)): self.stack.pop() + self._trim_direct_text() + + def _trim_direct_text(self): + """Drop direct-child collectors whose elements left the HTML stack.""" + while self._direct_text and self._direct_text[-1]["depth"] > len(self.stack): + self._direct_text.pop() def _open_widget(self): """The innermost lf-* element still open, or None outside every one.""" @@ -421,6 +432,11 @@ def handle_starttag(self, tag, attrs): if self.stack and self.stack[-1][2] is not None: self.stack[-1][2]["children"].append(tag) self.stack[-1][2]["direct"].append(tag) + direct = {"tag": tag, "text": ""} + self.stack[-1][2]["direct_text"].append(direct) + self._direct_text.append( + {"tag": tag, "record": direct, "depth": len(self.stack) + 1} + ) record = None if tag.startswith("lf-"): record = { @@ -431,6 +447,8 @@ def handle_starttag(self, tag, attrs): "direct": [], "children": [], "text": False, + # Each direct child's tag and descendant text, in document order. + "direct_text": [], "body": "", # a
     data body's text, for the x-lines gate
                     # The nearest enclosing lf element's record, so a child's line
                     # reference (x-lines) can find the data body it points into, and
    @@ -476,6 +494,8 @@ def handle_data(self, data):
             if self.stack and self.stack[-1][2] is not None and data.strip():
                 self.stack[-1][2]["text"] = True
                 self.stack[-1][2]["direct"].append("#text")
    +        for direct in self._direct_text:
    +            direct["record"]["text"] += data
             if holder == "style":
                 self.css += data
             elif holder == "title":
    @@ -486,11 +506,18 @@ def handle_data(self, data):
                 self.stack[-2][2]["body"] += data
     
         def handle_endtag(self, tag):
    +        if (
    +            self._direct_text
    +            and self._direct_text[-1]["tag"] == tag
    +            and self._direct_text[-1]["depth"] == len(self.stack)
    +        ):
    +            self._direct_text.pop()
             if tag == "svg":
                 while self.stack and self.stack[-1][0] != "svg":
                     self.stack.pop()
                 if self.stack:
                     self.stack.pop()
    +            self._trim_direct_text()
                 self._svg_depth = max(0, self._svg_depth - 1)
                 return
             if self._svg_depth or tag in VOID_TAGS:
    @@ -508,6 +535,7 @@ def handle_endtag(self, tag):
                             f" at line {self.getpos()[0]} closes over unclosed: {unclosed}"
                         )
                     del self.stack[i:]
    +                self._trim_direct_text()
                     return
             if tag not in OPTIONAL_END:
                 self.errors.append(
    diff --git a/skills/leaf/scripts/leaf/validation/instances.py b/skills/leaf/scripts/leaf/validation/instances.py
    index 9c43f000c..4f834a1c1 100644
    --- a/skills/leaf/scripts/leaf/validation/instances.py
    +++ b/skills/leaf/scripts/leaf/validation/instances.py
    @@ -150,9 +150,9 @@ def decision_region_errors(lf_elements: list, registry: dict) -> list:
                 )
         for region in regions:
             headings = [
    -            child
    -            for child in region["children"]
    -            if child in {f"h{n}" for n in range(1, 7)}
    +            child["tag"]
    +            for child in region["direct_text"]
    +            if child["tag"] in {f"h{n}" for n in range(1, 7)}
             ]
             if len(headings) != 1:
                 errors.append(
    diff --git a/tests/test_interact_layer.py b/tests/test_interact_layer.py
    index 4529c2540..02995fbc0 100644
    --- a/tests/test_interact_layer.py
    +++ b/tests/test_interact_layer.py
    @@ -55,6 +55,7 @@
       data        Set, capture, or clear page-bound external data.
       edit        Edit one of this agent session's messages.
       events      Print the event log as JSON lines.
    +  mcp         Expose pages to MCP Apps hosts.
       package     Create and check packages.
       page        Create pages and add media.
       receipt     Record the terminal outcome of a reader request.
    diff --git a/tests/test_mcp_app.py b/tests/test_mcp_app.py
    new file mode 100644
    index 000000000..c0e776642
    --- /dev/null
    +++ b/tests/test_mcp_app.py
    @@ -0,0 +1,394 @@
    +"""The full and compact MCP Apps surfaces and their durable return paths."""
    +
    +import tempfile
    +import urllib.request
    +from urllib.parse import parse_qs, urlsplit
    +
    +import anyio
    +from conftest import LEAF_COMMAND
    +from interact_support import PAGE
    +from leaf.event_log import read_events
    +from leaf.mcp_app import (
    +    COMPACT_APP_RESOURCE,
    +    COMPACT_FORMAT,
    +    COMPACT_RESOURCE_URI,
    +    PAGE_APP_RESOURCE,
    +    PAGE_FORMAT,
    +    PAGE_RESOURCE_URI,
    +    PageServerPool,
    +    create_server,
    +    current_compact_state,
    +    current_page_state,
    +)
    +from leaf.revisioning import activate_source
    +from mcp import ClientSession, StdioServerParameters
    +from mcp.client.stdio import stdio_client
    +
    +
    +def options_page(*, multiple=False):
    +    flags = "choose multiple" if multiple else "choose"
    +    return PAGE.replace("", f'')
    +
    +
    +def activate(page_dir, html):
    +    (page_dir / "index.html").write_text(html, encoding="utf-8")
    +    active = activate_source(page_dir, read_events(page_dir))
    +    assert active.error is None
    +    return active.revision
    +
    +
    +def call(server, name, arguments):
    +    async def invoke():
    +        return await server.call_tool(name, arguments)
    +
    +    return anyio.run(invoke)
    +
    +
    +def test_compact_state_projects_the_surface_source_and_declared_action(page_dir):
    +    revision = activate(page_dir, options_page())
    +
    +    state = current_compact_state(page_dir)
    +
    +    assert state["format"] == COMPACT_FORMAT
    +    assert state["mode"] == "ask"
    +    assert state["page"] == str(page_dir)
    +    assert state["ask"] == {
    +        "surface": "plan-choice-decision",
    +        "source": "plan-choice",
    +        "question": "Which plan should lead?",
    +        "context": "",
    +        "options": [
    +            {
    +                "id": "flag-first",
    +                "label": "Flag first",
    +                "summary": "effort: low risk: med Flag first Ship dark.",
    +            },
    +            {
    +                "id": "backfill-first",
    +                "label": "Backfill first",
    +                "summary": (
    +                    "effort: med risk: low Backfill first Verify, then flip. "
    +                    "My take: do this first."
    +                ),
    +            },
    +        ],
    +        "submit": {
    +            "kind": "action",
    +            "revision": revision,
    +            "widget": "plan-choice",
    +            "action": "choose",
    +        },
    +    }
    +
    +
    +def test_nested_markup_in_the_decision_heading_keeps_its_readable_title(page_dir):
    +    html = options_page().replace(
    +        "Which plan should lead?",
    +        "Which plan now should lead?",
    +    )
    +    activate(page_dir, html)
    +
    +    assert current_compact_state(page_dir)["ask"]["question"] == (
    +        "Which plan now should lead?"
    +    )
    +
    +
    +def test_context_keeps_direct_prose_without_repeating_the_options(page_dir):
    +    html = options_page().replace(
    +        '',
    +        "

    Use the reversible path.

    Keep the receipt.

    " + '', + ) + activate(page_dir, html) + + assert current_compact_state(page_dir)["ask"]["context"] == ( + "Use the reversible path. Keep the receipt." + ) + + +def test_unsupported_or_ambiguous_asks_fall_back_explicitly(page_dir): + activate(page_dir, options_page(multiple=True)) + state = current_compact_state(page_dir) + assert (state["mode"], state["reason"], state["ask"]) == ( + "fallback", + "unsupported-options", + None, + ) + + second = options_page().replace( + "", + """ + +

    And the second plan?

    + + A + B + +
    + + """, + ) + activate(page_dir, second) + state = current_compact_state(page_dir) + assert state["reason"] == "several-open-asks" + assert "2 open asks" in state["message"] + + wrapped = options_page().replace( + '', + '
    ', + ) + wrapped = wrapped.replace("", "
    ", 1) + activate(page_dir, wrapped) + assert current_compact_state(page_dir)["reason"] == "nested-options" + + +def test_invalid_mutable_source_does_not_silently_present_the_last_good_ask(page_dir): + activate(page_dir, options_page()) + (page_dir / "index.html").write_text( + options_page().replace("

    Which plan should lead?

    ", ""), + encoding="utf-8", + ) + + state = current_compact_state(page_dir) + + assert state["mode"] == "fallback" + assert state["reason"] == "source-invalid" + assert state["source_error"] + assert state["ask"] is None + + +def test_full_page_state_addresses_the_ordinary_browser_interface(page_dir): + revision = activate(page_dir, options_page()) + + state = current_page_state( + page_dir, lambda _page: "http://127.0.0.1:41234/?t=test" + ) + + assert {key: value for key, value in state.items() if key != "active"} == { + "format": PAGE_FORMAT, + "mode": "page", + "page": str(page_dir), + "title": "t", + "event_seq": 0, + "source_error": None, + "url": "http://127.0.0.1:41234/?t=test", + "message": "Opening the complete Leaf page.", + } + assert state["active"]["revision"] == revision + assert state["active"]["label"] == "Draft" + + +def test_process_scoped_page_server_uses_an_ephemeral_page_token( + page_dir, monkeypatch +): + activate(page_dir, options_page()) + monkeypatch.setattr( + "leaf.mcp_app.secrets.token_urlsafe", lambda _size: "mcp-page-token" + ) + pool = PageServerPool() + try: + url = pool.open(page_dir) + with urllib.request.urlopen(url) as response: + html = response.read().decode("utf-8") + cookie = response.headers["Set-Cookie"] + assert "t" in html + assert '' in html + assert urlsplit(url).hostname == "localhost" + assert parse_qs(urlsplit(url).query) == {"t": ["mcp-page-token"]} + assert "SameSite=None" in cookie + assert "Secure" in cookie + assert "Partitioned" in cookie + assert pool.open(page_dir) == url + assert not (page_dir / "service.json").exists() + finally: + pool.close() + + +def test_mcp_tools_bind_each_surface_and_hide_the_return_tools_from_model(): + server = create_server( + "compact app", + "page app", + lambda _page: "http://127.0.0.1:41234/?t=test", + ) + + async def inspect(): + return await server.list_tools(), await server.list_resources() + + tools, resources = anyio.run(inspect) + by_name = {tool.name: tool for tool in tools} + assert set(by_name) == { + "leaf_open_page", + "leaf_read_page", + "leaf_open_compact_ask", + "leaf_read_compact_ask", + "leaf_post_event", + } + assert by_name["leaf_open_page"].meta["ui"] == { + "resourceUri": PAGE_RESOURCE_URI, + "visibility": ["model"], + } + assert by_name["leaf_open_page"].annotations.read_only_hint is False + assert by_name["leaf_read_page"].meta["ui"]["visibility"] == ["app"] + assert by_name["leaf_read_page"].annotations.read_only_hint is False + assert by_name["leaf_open_compact_ask"].meta["ui"] == { + "resourceUri": COMPACT_RESOURCE_URI, + "visibility": ["model"], + } + assert by_name["leaf_read_compact_ask"].meta["ui"]["visibility"] == ["app"] + assert by_name["leaf_post_event"].meta["ui"]["visibility"] == ["app"] + by_uri = {str(resource.uri): resource for resource in resources} + assert set(by_uri) == {PAGE_RESOURCE_URI, COMPACT_RESOURCE_URI} + assert by_uri[COMPACT_RESOURCE_URI].mime_type == "text/html;profile=mcp-app" + assert by_uri[COMPACT_RESOURCE_URI].meta == {"ui": {"prefersBorder": True}} + assert by_uri[PAGE_RESOURCE_URI].meta == { + "ui": { + "csp": {"frameDomains": ["http://localhost:*"]}, + "prefersBorder": False, + } + } + + +def test_mcp_command_negotiates_and_serves_the_shipped_resource(page_dir): + activate(page_dir, options_page()) + + async def inspect(errors): + params = StdioServerParameters( + command=LEAF_COMMAND[0], + args=[*LEAF_COMMAND[1:], "mcp", "run"], + ) + async with ( + stdio_client(params, errlog=errors) as (reader, writer), + ClientSession(reader, writer) as client, + ): + initialized = await client.initialize() + tools = await client.list_tools() + resources = await client.list_resources() + page_resource = await client.read_resource(PAGE_RESOURCE_URI) + compact_resource = await client.read_resource(COMPACT_RESOURCE_URI) + opened = await client.call_tool("leaf_open_page", {"page": str(page_dir)}) + compact = await client.call_tool( + "leaf_open_compact_ask", {"page": str(page_dir)} + ) + return ( + initialized, + tools, + resources, + page_resource, + compact_resource, + opened, + compact, + ) + + with tempfile.TemporaryFile(mode="w+", encoding="utf-8") as errors: + ( + initialized, + tools, + resources, + page_resource, + compact_resource, + opened, + compact, + ) = anyio.run(inspect, errors) + errors.seek(0) + server_errors = errors.read() + + assert initialized.server_info.name == "Leaf" + assert {tool.name for tool in tools.tools} == { + "leaf_open_page", + "leaf_read_page", + "leaf_open_compact_ask", + "leaf_read_compact_ask", + "leaf_post_event", + } + assert {str(item.uri) for item in resources.resources} == { + PAGE_RESOURCE_URI, + COMPACT_RESOURCE_URI, + } + assert page_resource.contents[0].mime_type == "text/html;profile=mcp-app" + assert page_resource.contents[0].text == PAGE_APP_RESOURCE.read_text( + encoding="utf-8" + ) + assert compact_resource.contents[0].text == COMPACT_APP_RESOURCE.read_text( + encoding="utf-8" + ) + assert opened.structured_content["state"]["mode"] == "page" + assert opened.structured_content["state"]["url"].startswith("http://localhost:") + assert compact.structured_content["state"]["mode"] == "ask" + assert server_errors == "" + + +def test_shipped_app_resource_is_one_self_contained_html_blob(): + compact = COMPACT_APP_RESOURCE.read_text(encoding="utf-8") + page = PAGE_APP_RESOURCE.read_text(encoding="utf-8") + + for html in (compact, page): + assert "LEAF_MCP_STYLE" not in html + assert "LEAF_MCP_SCRIPT" not in html + assert "LEAF_MCP_ICON" not in html + assert "@modelcontextprotocol/ext-apps 1.7.5" in html + assert ' - - diff --git a/scripts/mcp-app/compact-app.js b/scripts/mcp-app/compact-app.js deleted file mode 100644 index 8f498904d..000000000 --- a/scripts/mcp-app/compact-app.js +++ /dev/null @@ -1,196 +0,0 @@ -import { - App, - applyDocumentTheme, - applyHostFonts, - applyHostStyleVariables, -} from "@modelcontextprotocol/ext-apps/app-with-deps"; - -const app = new App({ name: "Leaf compact ask", version: "0.1.0" }); -const content = document.querySelector("#content"); -const sequence = document.querySelector("#sequence"); -const status = document.querySelector("#status"); -const refresh = document.querySelector("#refresh"); -const openFull = document.querySelector("#open-full"); -const shell = document.querySelector("#app"); -let current = null; -let pagePath = null; -let busy = false; - -function payload(result) { - return result?.structuredContent ?? result?.structured_content ?? null; -} - -function element(tag, className, text) { - const node = document.createElement(tag); - if (className) node.className = className; - if (text != null) node.textContent = text; - return node; -} - -function announce(message) { - status.textContent = ""; - requestAnimationFrame(() => { - status.textContent = message; - }); -} - -function setBusy(value) { - busy = value; - refresh.disabled = value; - for (const button of content.querySelectorAll("button")) button.disabled = value; -} - -function showMessage(state) { - const kicker = element("p", "kicker", state.title || "Leaf page"); - const heading = element( - "h1", - "", - state.mode === "empty" - ? "Nothing waiting here" - : state.full_page_url - ? "Continue on the full page" - : "Not available inline", - ); - const message = element("p", "message", state.message); - if (state.mode === "empty") { - const mark = element("span", "empty-mark", "✓"); - mark.setAttribute("aria-hidden", "true"); - content.append(mark); - } - content.append(kicker, heading, message); -} - -function choiceButton(option, ask) { - const button = element("button", "option"); - button.type = "button"; - button.dataset.option = option.id; - button.setAttribute("aria-label", option.label); - button.append(element("span", "option-label", option.label)); - const summaryText = supportingText(option); - if (summaryText) { - const summary = element("span", "option-summary", summaryText); - summary.id = `option-summary-${option.id}`; - button.setAttribute("aria-describedby", summary.id); - button.append(summary); - } - button.addEventListener("click", () => choose(option, ask)); - return button; -} - -function supportingText(option) { - const summary = option.summary?.trim(); - if (!summary || summary === option.label) return ""; - const labelAt = summary.indexOf(option.label); - if (labelAt < 0) return summary; - return `${summary.slice(0, labelAt)} ${summary.slice(labelAt + option.label.length)}` - .trim() - .replaceAll(/\s+/g, " "); -} - -function showAsk(state) { - const ask = state.ask; - content.append( - element("p", "kicker", state.title || "Leaf page"), - element("h1", "", ask.question), - ); - if (ask.context) content.append(element("p", "context", ask.context)); - const options = element("div", "options"); - options.setAttribute("role", "group"); - options.setAttribute("aria-label", ask.question); - for (const option of ask.options) options.append(choiceButton(option, ask)); - content.append(options); -} - -function render(state, announcement) { - current = state; - pagePath = state.page ?? pagePath; - content.replaceChildren(); - sequence.textContent = `event ${state.event_seq} · ${state.active?.label ?? "no revision"}`; - openFull.hidden = !state.full_page_url; - state.mode === "ask" ? showAsk(state) : showMessage(state); - if (announcement) announce(announcement); - else status.textContent = ""; -} - -async function choose(option, ask) { - if (busy || !pagePath) return; - setBusy(true); - announce(`Recording ${option.label}`); - const event = { - ...ask.submit, - detail: { options: [option.id] }, - attempt: crypto.randomUUID().replaceAll("-", ""), - }; - try { - const result = await app.callServerTool({ - name: "leaf_post_event", - arguments: { page: pagePath, event }, - }); - const answer = payload(result); - if (!answer?.ok) throw new Error(answer?.error ?? "Leaf refused the event"); - render(answer.state, `Recorded ${option.label}`); - } catch (error) { - announce(`Could not record the choice: ${String(error)}`); - } finally { - setBusy(false); - } -} - -async function readCurrent() { - if (busy || !pagePath) return; - setBusy(true); - try { - const result = await app.callServerTool({ - name: "leaf_read_compact_ask", - arguments: { page: pagePath }, - }); - const answer = payload(result); - if (!answer?.ok) throw new Error(answer?.error ?? "Leaf refused the read"); - render(answer.state, "Refreshed the Leaf ask"); - } catch (error) { - announce(`Could not refresh: ${String(error)}`); - } finally { - setBusy(false); - } -} - -function applyContext(context) { - if (!context) return; - if (context.theme) applyDocumentTheme(context.theme); - if (context.styles?.variables) applyHostStyleVariables(context.styles.variables); - if (context.styles?.css?.fonts) applyHostFonts(context.styles.css.fonts); - if (context.safeAreaInsets) { - for (const edge of ["top", "right", "bottom", "left"]) - shell.style.setProperty(`--safe-${edge}`, `${context.safeAreaInsets[edge]}px`); - } -} - -app.ontoolresult = (result) => { - const answer = payload(result); - if (answer?.state) render(answer.state); -}; -app.onhostcontextchanged = applyContext; -app.onerror = (error) => announce(`Host error: ${String(error)}`); -app.onteardown = async () => ({}); - -refresh.addEventListener("click", readCurrent); -openFull.addEventListener("click", async () => { - if (!current?.full_page_url) return; - try { - const answer = await app.openLink({ url: current.full_page_url }); - if (answer?.isError) announce("The host did not open the full page"); - } catch (error) { - announce(`Could not open the full page: ${String(error)}`); - } -}); - -app - .connect() - .then(() => applyContext(app.getHostContext())) - .catch((error) => { - content.replaceChildren( - element("h1", "", "Could not connect to this host"), - element("p", "message", String(error)), - ); - announce("Leaf could not connect to this host"); - }); diff --git a/scripts/mcp-app/page-app.js b/scripts/mcp-app/page-app.js index 1ae657403..2494f8af4 100644 --- a/scripts/mcp-app/page-app.js +++ b/scripts/mcp-app/page-app.js @@ -25,7 +25,12 @@ let mode = "inline"; let busy = false; function payload(result) { - return result?.structuredContent ?? result?.structured_content ?? null; + return ( + result?._meta?.leaf ?? + result?.structuredContent ?? + result?.structured_content ?? + null + ); } function announce(message) { @@ -54,8 +59,10 @@ function render(state, announcement) { pageTitle.textContent = state.title || "Untitled page"; sequence.textContent = `event ${state.event_seq} · ${state.active?.label ?? "no revision"}`; sourceWarning.hidden = !state.source_error; - openPage.disabled = !state.url; - if (state.mode !== "page" || !state.url) { + const inlineUrl = state.inline_url; + const browserUrl = state.browser_url ?? inlineUrl; + openPage.disabled = !browserUrl; + if (state.mode !== "page" || !inlineUrl) { frame.hidden = true; frame.removeAttribute("src"); loading.hidden = false; @@ -63,7 +70,8 @@ function render(state, announcement) { } else { loading.hidden = true; frame.hidden = false; - frame.src = safePageUrl(state.url); + const next = safePageUrl(inlineUrl); + if (frame.src !== next) frame.src = next; } if (announcement) announce(announcement); else status.textContent = ""; @@ -74,12 +82,12 @@ async function readCurrent() { setBusy(true); try { const result = await app.callServerTool({ - name: "leaf_read_page", + name: "leaf_refresh", arguments: { page: pagePath }, }); const answer = payload(result); - if (!answer?.ok) throw new Error(answer?.error ?? "Leaf refused the read"); - render(answer.state, "Refreshed the Leaf page"); + if (!answer?.page) throw new Error(answer?.error ?? "Leaf refused the read"); + render(answer, "Refreshed the Leaf page"); } catch (error) { announce(`Could not refresh: ${String(error)}`); } finally { @@ -104,7 +112,7 @@ function applyContext(context) { app.ontoolresult = (result) => { const answer = payload(result); - if (answer?.state) render(answer.state); + if (answer?.page) render(answer); }; app.onhostcontextchanged = applyContext; app.onerror = (error) => announce(`Host error: ${String(error)}`); @@ -116,9 +124,10 @@ app.onteardown = async () => { frame.addEventListener("load", () => announce("Leaf page loaded")); refresh.addEventListener("click", readCurrent); openPage.addEventListener("click", async () => { - if (!current?.url) return; + const url = current?.browser_url ?? current?.inline_url; + if (!url) return; try { - const answer = await app.openLink({ url: current.url }); + const answer = await app.openLink({ url }); if (answer?.isError) announce("The host did not open the page"); } catch (error) { announce(`Could not open the page: ${String(error)}`); diff --git a/scripts/vendor.py b/scripts/vendor.py index 527708e1b..c02e7d107 100755 --- a/scripts/vendor.py +++ b/scripts/vendor.py @@ -449,7 +449,7 @@ def build_mcp_app(work: Path) -> list[Path]: cwd=work, ) outputs = [] - for name in ("compact", "page"): + for name in ("page",): entry = work / f"{name}-entry.js" bundle = work / f"{name}-bundle.js" out = ASSETS / f"vendor/mcp-{name}-app.html" diff --git a/skills/leaf/SKILL.md b/skills/leaf/SKILL.md index 51c87458a..1463cbac5 100644 --- a/skills/leaf/SKILL.md +++ b/skills/leaf/SKILL.md @@ -148,9 +148,7 @@ so a phase does not depend on discovering a chain of references. validation, passages, or parsed source. These internal contracts are not for ordinary page use. - `references/internals/mcp-app.md`: when changing the MCP tools, app resource, - host bridge, private result payload, or MCP delivery acknowledgement. -- `references/internals/mcp-apps.md`: when examining the full-page and options - prototypes against that bundled MCP transport and their recorded experiments. + process-scoped page server, private result payload, or snapshot fallback. ### Use a separate Codex watcher diff --git a/skills/leaf/assets/mcp-app.html b/skills/leaf/assets/mcp-app.html index 8f048e616..07e430232 100644 --- a/skills/leaf/assets/mcp-app.html +++ b/skills/leaf/assets/mcp-app.html @@ -252,9 +252,6 @@

    N8=jFB1@6P#5G%S4 zSVUia25bRJ%k+FedE!X^!nk&`Yp!u6f}a5A7mB-2l6mHv-AN6Rw{isMhIL+>S=jI5 z2+XTE=}2?O4Vp8D$9!m2{fj5ZQSv!Qm}dS8p6<9lcICUWmNFM_eit+ONB77z>GzLT zWJ?n-pYMw8c6G!O2)g_K-JI-)8tcOXkfmuO*l$I_FBy#>>|C$SHq2l5qvq!iltK=I z7a4$vN<(XJEXe$!*d;AcMcLe!l( z9tEZfQ{Q+l-1uTQd5pCbMPYbz@sG=doBq?{s0co|?%)uK-sO!AMR;d@zx%MDK|I$c zLXg*CiZz;nOvn6juEev{TsfrYt#QMw*b@Lgw17GIQB>214@13qWOguV%t*xs%@4JJ zO?FNWV%h%0u9x8FpcfUQ2Oirdl$%la4Ltq>#~Va zEKu-#cO${i)jJra!C!(o_-SV05o$MAoK#m=^TD%M=ziO8sZPFngkpY+C2alh^{iA%^IF&1}9&DlcWB&B z`8`QOsfV^Fo>~&MoxWepkzoE+I^<+stq}3$;ZT&RrELvLEj7h0D3NJNEwHM`$@wz< z`Y+M9W}gQ8CURn8U??iW8=YjVxwO81*M7pf1by6jrb={3-L7&`8DMPI>!9n)Mt{n> zYQuM!Q)HrQ+wdXb9;fSTZ3g@o3y>bX&bTAy5zYS`#}~ThZcV;@;&~K9OlzK2=rtqi zO_ovsg218p6Y$XKfn!aK-T65hYmI)rHJ>1Y4#qRsoR|ew0mTS15#T8kY&=$%NaW}` zh=Lq;m3Y((ndgW%?f%~V>ae;u_Z14Brx1i$Ck>(6iiinP7RSj`K$+6=gcKc3{mJ9( zHJA}KYP@>D;=J)}?0P^|UMTtSm9?C?5#M;OCME2ojd*V0yw2V5j(k@R^n zhZ1|zUvuT)nBgU92P^a7=HVrmIL)Dn z(viO4+c-1ZP}Oak0SYU5Pbx3L+1xoEG=7TbcM7WMxOnScU%%)VtTlyAVDzUXPH)4) zPtHE7XK-%*sudjtBrN&CSxYV*$I|N*BjzlbJx`l`8pe`FS(b!8({iL$QFK9RkKd{J zi{fOzj%WL5=c7yN2dhGL+$1C)g5#*NZA7GwTfzM<^Qv|q`OtMFtJ)V2T)Q;=5){7* z_VIUW9i5|{R4s){`5r|t_~?C>R=5Wfq|^GeXC}|(Acevdj-tOI!2wAI?P_Z0i>Cxn zKOgXzc@jF;ieq{|dtvu^`L$?ST>}7}Lr%SIDVv%SY4;sYH$J=FbMYvGS9QkiO11A2SN6Mly1vS zQqk`*LhzWJs~ifivMN07bk~Q=0PiX*cEYxLVa|4T8Fum1?=cBJIh(>G(c>vH<`tSf zb!IIRb=s$Df``$^c7{^q`SO!YBA^V15Ex5ZB|OG*?eg#hQr*dm{8=fSj?hFZlibJdrKB#Tg(MEed+F z)8!7TptA-Wwf34{FfzoS2IxB!MWM<0Fz@UK$1UtQqjTBM-;M+rCd|p6tL8vqTQTbo z!;B-JKB-av97>;@Fv+UU0$2{{E0WXojg2fGGbxtx*!J`ll|WYbO+~c8OaDuh*0ICM z*`3nPK%wxHIa&x_ z|GG#d=R-qkc?X7j6Y}pss(tv;fwGtFizWEBdua5vn2zx4?o*ivQ-=c4Jm}XyNyCe+(epe!*k+xy| zlTrAlD#Oi*#SGn$rih~AuxLU=Ihi()oeON_qgEw>5ryQ?#t(Vupxo zDugKcDtMwdc5&bvv%b6AW;fmiCMEKZ$izIdTHT@R1;DfV(d+eej?5O%ZA>auUuBqR z2S1_hHBU*eC+Cpnmfyn&`5JJdP}D*o;Uk#`M-iZQj)0NM;L6i3SKr;(sCYX~;T$aW z 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 AoB#j- literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/28/results/full-page-inline.png b/notes/mcp-apps/experiments/28/results/full-page-inline.png new file mode 100644 index 0000000000000000000000000000000000000000..3b993101b568a8e718bde207637b77e54c103a12 GIT binary patch literal 56344 zcmeFZWmFwaw=RmiySqamKnM=O-QC?naQ9%r-6goYySuvvch}&0JFk5E8|Uud=hs<- z!C2j0-CZ?n)|6*HwL;`&#Sr1};6Ok?5GBNg6+u8C=s-X~qhY{+GY7g@v>+fTAQHj? z%C70BKOxmIWC#Y-AO)&hfzM9upZ|Y--su zv^vx(aX&}Fvg+ySNl;y$uoLU~9I2u8g?&KcX@7MMNxIR!zJiBAcq!??7#x{l5Ovhu zrqtcem)E{Ve(;NWip>w?Gt4ac{O6erE`sql*H6i08f0ryKHl5!1aI|*pJMeS)}eI> z%o_+Xh(rFqgNM)i&8KNKWEU3?TkGFp!uUV` z{UQ`Wvc$_(=gT|t1FfiZ8-B+gJ-Y%W|C!XzTPcZuWa2|)veI2uLfl?xrB;U|Pa~%J zqEmaZ9g8~tuiO<-pRAy_Zl-2<17?NN6*8k>US7c`mUTI8cl(l7B6$nisranrjk)_OOf`l#YY$|7^ksqBilzxzYlk*t(oPhd$Q_*2ZS9C5 z3%A+mXm>lgdwq7H)o!*jBmP!nxABaeDgF*3DVuAUm^&C^MaoC|g!@8tTsg&S4GbRo zAW(`z9TCD4vG;3dQssJyV)fV)rh`#`%^be|BHu~2k?9tz=W4o1X=A(Vqa+LNBKw6i zF-JDLoAX_iY(_JM2twh6PV@U^@l6nFq=qVs>vsH^&hy}35>QU(b72;$K-*So7dU~( zuEc}0aM%|dB=XPTs`>nX4Huz`|&8HdhkIvU$~#kEmTFf$}s}NyG*;0Qr+of zWu2Ix&I%;6LFf4dv0(QTohj!h2mXcA&b*U*nq=0W4{(&izvm%tg|K;? zEZNUpUvAt|6h(rNPZM}FVk`AJE3_M(-bqi8iF5es-iEY%Q+x9dI>;|=R4ZF!u5t-7mOxL54G%w>l_r{%yU3@*l-wqN zl@b(^u_ZidLj@L2S=ybE|V z+a8JLy1#q9y}0c(fKO&{Qw9?^TJ++ju$aes9WJGmvY+>;sh8QVyVujTw!c?7&t`0a zw|YO{c`bTdwt7UN6xctaCD6yWx%W;CFV{=>AA^EsvRf_op%2ojj(^33+nd~b8nEhJ z@REq5a6i68gOd)Us^9L9*tzUE8eh53m%>m~tbe~84uIWGVp6)fTMHVL)9upP{F(mA z$f7gDigLUtFR5@+@Ae*$>M)QqSIWa<#U0>>4wD;eWaR0Tf>k9?8gwl(2e=@_}CaQvXyF?T8mojPDk$qHV4sQp;~N47w_8^kvMm9 z=zHH_CIa|7WTHx)&xK!qV&zL>EVsYI?7m6k&PL$z?>rPcEY}$0@!RXawKeMp5q>s3 z&M#$G%opb~d8slCgx?HWv|0Y3SNr&L<(Y4d+wo#f6ps4yw`DfB)2UU?+ASO(Gg+c~ z`*Exy;%6icy*B&Tgs_tY%f_#2l{`k*=A}#3e2>qTl$hO{mu^=xkHfVGR;lcGd__rI z*RV*AcV&@@?OJOMFX%J3dyg~*Tlj;}^L^2ko=CYdlWw*5S^?qJcK_LYzRnI* zJxYkRte9N7g|(^k@v4Y6;Z&=XKi7OdO3oqPw3p{=|KJUA<+6(c0n8e>-qjJCRqF$d zn$U;^C%@3seUW^D@F>;o7Py`Fo??eI>fmbQjLmIE8DS>d5 zb*yVDyUS-WYHSIjcoS=DJ_F;-uL+}N>s8Mui#8~gHtWs&MRLyqUR4cU7GI%KC!W`IPfl zi^f`YuX_$WhsV}e{Y|wZp*610nH(id%4|hkq$4b{PhQtzTEf>gCd1}d4g#^ar8AUp zviMQn6wr>C?eo4c{63GdYz|zzI?`ax&b>%aQPyyOyyvbS*~gD4s^Ux+QJ3E88vPT= zq=dS`uRkJxvbo*t%|d6{d|RpS)G4KEZ)qU@oCTP>m)+a6#%iO%7W*gtiBpY&Nex2_ z3%l2sm<*j2r&DH{%M&$M3fuX&U&VIh(7GM&N~`@>`M=-JEI(Ihf4_`Y&A$X07QGI| z7%5DrRs6`mtCr01`tss@!OfDVhfD#!@X86Vwpn7Wh6|aWqGiS2 zx~Q)W$`(f;VjJ$AmHPS3c;nap*cG_e0z(R$)x@@#9Kp^0-0bYhvcq7m$7fkwZj2I` zV=1@~q(q)h&x@4hn>UAb2Eo_$_jPBsUIEsF$cOk3D_J6Dd*QjW^f(}*a;Z+YPgbR4UYWGjak z&^qFw2A) zi3gDrCQ_K*mxs6n9MNt4^F5FbLiOXRoV-Ls$izH*)OWLD#GOh96@pWPa>7-y{cv4t z+3eiKN|fyJt`xBMUJtvFeCxzsHmeOmVBq!8Xg)E1&6dg^f;h5KQ!-4LlMzQm$C8=D zutwmK(K-sGQ(nr>oZi1ry4jn`#Bl}2NDAyWjecl_-jl+%bKP3avHS2GH0h{B^T)lv zBP?34(`q;TsH`M*jAD~A?S=4OnIO_*(rXQwv|Mb2M#?mwFUwx2)MT?lVYeobxZ|HI z)v@}0*UsVmz6px&oG6W}f05a)FS4xI@9uI!(z96pNDT442l97;RNAlG@m672ba8|I zQU+on3i*kyFSMD9F#1(ZJI)-3OAU{g)k?Qin9!J`NrJJq@&(GwG_0I8X44*(KW@Jc z)YO%!v|kUDx7IU~rsYeS3s+89Y1JLiiKUk*R+k0CnJg8E6n4@lEaydpqZx5h(wh~el6$PV2VQSN=fKi1q1GKSu4dcH zpWI~}X=6sIQ7J{!yq_!5k$2oTNO$z3k_7wX%p!4TAXRi@`(S|#B*_1(%E&;3F) z^!`rIGui9B5cvI3NIg&@W${Y^{!hpys2Dx>#LuCm1^Y^Li>2wgMbVg4 zVbOg@lV}qKz3+b9oWQt1d-4U9PdZ=BktzN7L^@JKVTpRZkrmHgtao-bdwNgIr_p9F zl@OXAK8a7OP_{YIE*3{28O>)!_sP7SmI8cVIIOe zY2z#-TkC96Xmc}2&%ZhtJk=G8Y)TmYppcFKsFf%U?Oev|b-tY}QOjZ?%>)J0?Lh*j z)fbMdE2Z4+4W~EW{v0(DkHFHl-v0j4azA_u-Iib{2nG~alsO%6`Ost^tLmyA7;&X> zDnk2CbQKFA(o){z?GqkZGdn#M0%!;}>5=GEXuS3Y&hQ&AWHUMJcN*3%abDDl2_}#U zr*ah^70s+FKYd$<>?p7|`9w9XO#8`sJx>DdU?fHcD2G(UC-EpQzE%EmN4!M`TC3kH`>j@c>X9v(0>mnR>PwVdY}QgGPsF-iA5vp-nx zHGB)PR?NTLJPjO;%HZfSZ84hcMiYUz&S?nOse0ja<_7#_Cp6ORBTUXB0=M&%U z55-V#u?P2L;y@-AY-_R$y1STewS4Awx#*QgB7}AF4IN76D_`-r7f;KETicwO$DfHR zh8vhJzk=J7v|6br4n*emzJ)4pZ{siNU3{rTdr?-QODNZ^_bW_d|JIHAa~8#eKg%gt zWN!0GJ|1xkZQ7ii6xSJ&4V>6+wNve&f>2X%RJ+Cy{8zrp>C!B9pmZu?J;HorPwchIp9a#lkQ~tzhq&_d@WaR_3CpSPb5dFF&eC4P^v-6 zh`Ul^%iXRq8;|C-6pgP5rf{q2yOixh{=U-#XhL8Fq&cHvqh^pbE4&;H2$=Uy11*~!Oa-FLQdnJGT}yZprsp)iQ2hM$dA;tn zt6@zH#chlaHqIhn{txW&CgJXK zA)ohcJhCwjn=#pCF1q73)hR#*t7h{Wl7FB5Bo1aU0%yvhYpAWibhF7OD$;Iez}KKv z>>X9f^uzV-Z5oH^WmIO#Zp39A19zj%*4B|quECV{-Ncz@@M8;!Plh&O3$o|I9iQ19 z13mWmT$-{3k*)!a{hH&k4Ckj%K7UalOvN&(H$5V-Qw(Xad;N7enWb;Hnk9QHdiyC> zWu1q!-OH0MaTccfq19s}#_!R7hr_GoQ-r3AOrkQmz=t$`#F#P-E|0EDSTCq3-)EDz z@GH%jAb596qc53^yw6bqlJa@--YP@pn$Tctc*NXoJ{P{Z*9lV?x4{DK{hmgY%QAQ` z3~_Xrqk=Zf@w0lfxKF0&XXRSaUu?D)h#O6qf)-xvw_st{3|lq7yaaAz^6T>4rrYBj zk%midL7zU^Vicu~E>`Mo3D2~?l7S5d8x*)~v1+rhM_IJJ#N<}-FJ-=f%fJ4}nI4aP zidEf?k-5>UX7EwHS3}&G<7=ui!{tM~{U8`%4fhAJ=?pQ8to*$PxBLyXP3!fAubae5 zQa|}_e0+R9*TvJ*^J)bJmcoUYXEat|vdmu}9T|UHtMPs~j!J{W63|_^S>bKeeg->5R6yy&3*xsv*EYX$C^QeuK&J`dfdG4E`Zd}V9T~u>LK1a z5r)?HarNBj7+(YDlrqqknGPqZUnpLXLX5rvhb22w9^06cVZ{IMq4^NBY01p-Qp_X3 z1#)bCki-QAt4J2l(np=`p=%JuSWtnLPAU`%KwT4Jk-0)4VQT5Ob{7dCH)SaZS}eEQ z5h-VXgBh_1hSux8sCE_pZ9B*Q7k)XU7rrFv_p%dUztX*8puQCP7xIU4Z3CokrXxT6 zVYeYKbYYX03I7G|;!uz~{)PNdvcGZTWY7ox3E%>v^+V8CX4ZP8p8N%_qs7~k-d_6N zIbSUM%_%x#+s?8c{sBlsl+mbyPqvTm1|>7aabkmnkK3Pu{=pV^9#zm0xB6me9r*w1 zo%j;$!%Khf@7$=&&YJ^J@XrC_VaZU9r0;QmBb-K6k1BVsFjxPeq5&vqWIa|Z0)M&# zjDs1q!c*k$uOaG!&1WQkV}=0%@$%N(;(uQt&E7xQECsaYU)&MaMv+2_0m-|Bn6ox7 z_Mb)+ZFbKnb=Q~&9)F8RkPNnj_#cUg_lyAuU=%CCGFafBio7yG&ya$LZ_5Y*CyK~{{BGwjm+mSzP>^!N1}O{AfQ zEfEYUg|z1*!RGPxY7d!n4h5~DR)2!H>(0URRqr!9D5y8Bk{L^s#0J}=rGXh4%n|v! zOA@}+jti=8Wd@V40Q59~2lpw=2>;ays&ri*>FAFZ+j-jk+=g~89%n~eiHt_FA<>-} z&QxEeeRkgi?Tsv67<=B173PrLd0E6M*kq~x%(dT zZ_}$Qcobql6494ixr@*oO_XS~Sw#w)Xrw;mr_zqhdok}WBN6#mtuQ;K)E_TPA8d~~ zNhv&GF7J0Xe~E*OjHkr!+64X#VJzUeewS^o{^X6lb$gtB@Bg=y(IjmDol9{F)VCF+ zj{8egXbH4|f8qFD=&jEWaGHaGE0gy>JHk32+U{?>ZpiwSb^vr*x5M-C_C#$jJhSp* zODKrX`-LVj;`?`yzTaCw(CXXi^WNbynUNG3sYqdey(=+@%~U7L=VH6m>C=gU`BBk4 zi4n*-_d+o$IJh|p8ygaHU~JZ#blW`@_+GqUmbMldEA#jhuqO#m&sP)Q5Eyk@9JhKP z2{<@7PJh))ozS&}eb8!fb$6Ha0f~%^3_>DgA=)2JVu~W>zq`Lzn^;;};_-X{yvU1n z&r&7nZTi%xQ)&Wlt8XxdcH)DkUsNn-gF&og*94dbQBEQ{vH_bX!lqw z*C`chZBU_C(`;~r#ehn`zqwB3Hfu;rOT+m5^2$$2w76JN0P&-t)^)mPwopzgW@x5A z?0mhw)Cn!ZX6wamsyk2Ic*_s+>{p#?hi2mmdCh5`()h{b6`)s3rc0HmIsy$^mr$1#bcy77L?a1OnDjd6R7#A;Q=Rt5 zQXWF`j*?!uUCv*Q2IB-_U|pb)2!eyIUZ3v=`~&m(eQ#|6X-mXX#OxvwH^ioMIxLiF zC}~HaMR9VK*71MY_P9B$wwR@wmPtY4YT2l%YfcXdwV%dRnvnlg>X^UW=CRxKE@}03!?L>Iz0BzqIZ;A*lRxsC;5<+o4*nX=-Yk)+@wG9dPK!r^F!( z%qN2gLKUOXsXr(gAU|DQU76HRzU34S`(u*dX>O8*b_09eb_OC2`wC=#!m&yQ>vBzI z@H#j-^-qdL;00C!V)%Z3u(d@hBEVuiWGf)Lq&panOWxsp_DkjIw>-O`XCN`M0koNShgF|C(4A-}A-Je>;-y4ZSA$mo|$wQ0;Q zNZp++G8qj>)3lO_gdq`gf-P*bS9EgFdwO{tOr|ZCN$mW%J&7P@mrahlSXpWOIxUDh zX*)Au`sLkwdue&tVmkn~-g4n^AwTSu*TYFU+VJ`I%wI~0O3wXkJ0~p<^z~VC>j(3NUiBa-z0aPP2<-+NdsA1 z&nqx~9_JexSu)CF4pfj~BIa*6FZ^b*nMBNnO=xdpN354TB+KMM$ZFp>nFtA~BZ--6 z-1bH=Av~z?i3DZdz#iE&THn8T2GXhLiBC&mTLr=+m*e`tV=xq@K`NLZOl075yMOAq zJ6eMe{O%9f5nzRbLfeKQ5b`{1`hq`@q9L${u}qy`=a2eBA#@EZkc*MvNGhH&L)b>H zHQBvhX8Ru_iZA9v>fjv{>xTeLO#x>qRsm+6+I{)7x6Cmla#8F)fDr^duXY$u5tj@p>&~@x@Vx zd*9tub3}nHw>#ihkP!(Vo>y3WyliJkXP1I#vhlGQ3+}dAH_u=R9))o`xRW8k{-8Ru zm!L#Z#0A&H-9~VTe)W*a?IH_@iE@I^_7$R4CzH<$1Nzgt&)G`j;P6bolw9g3SY+(B zNe=HTqb%~dKPYr2zmIP0&o#hp2%02N z?E4;~tn69)kwK;iN1K`EISj`bncp2cR}Q!0r`E`}wa zi^BLm?lbi-m&2uEhs7Y|^U2g=J72FiAR2qptY&+9c!F~Ro9A(#6Av8kY1UikGDZ|D6_E4@_(N-{tABwAK+6x%tF!f9bHCMU`090ELAdKJu@EU5 ziLDreMF^1I)ekWd#?O5Mppa&NW#j*d1T&|QJZMMn#au-Bd@EMW{O689yN(L zs`+t0nmPi`T6XIh484_x6ZzW2f#=h=xAx0?l6ra4ELO+knZ3@h^Y<4k9&$uBP->e+ zF}>y6>WD;K3?`xRm+4s)^@{TiI;}UjEMHKM*9vW}F;XJ}Y%6uRT^cMmvNdnfY4og?dLY)pEm9)CR3`pnhgx?X0o(sGNxvQf+JsBg1BrXiU?8zrSuI?tfi z5xanhGCbY;Tx&Y6TI<}-l*xawMmRV6ZLRM7*kom!a&)0&b~EAkXg>Tw4qJhA0@TqX z#l~UA8c>s#L%y*5@g=bkMJ_c{2tWndmpJ zEVWH5Kcx5H2a|+cj$L{ZL^Y5bYQA8QSPbeQkWioN>n#_1LIOTFcs)BebyK=IR#+cN z)I5%+FKtUgB5b;KgZf^bWWymW48>pLBhvU$dsfd`}+Tgr_~aT zeI5j&^?HjH05;;D0&Tchq79|gZF^uflaA|=zCxo!;YYGwYk|z>SK1$&TCiSk3-M25 zw~nXN5rr*IfRr$z5RYN%6vd#|tP2)Tz}lgf6}~_q2bBc8l$34WQaT4{g6Zl5EVE%B z5V7`%5fi7O57v7JqRFOG(0-bU&G%lIJ7hMJ@04fSg78OMsne+Sa5>9Hrhx?0y3OEi zwS2+xFO4P<@EcYt5QGqB;dA%6Sg+5OUE``Y9MrA(#z|yDk?WYkB2Plh=lZ=;9xnmP ze+=;Yy26Gd?Vet2e%`Tp!xVA8?$M-11uu|rTO1CFWxl?8Xw(v^AG9JJ%w+e6)ky5N zDO&hx)r-u}+!5_i=v7a3xEowO+)@YYnk-#ft^KJ?Mpe2V%a$F+Qa@h-3!2lxq9yMD z390$_uGd2spF&RGgI2Y@3e9n1Vzn)~1Ub#1Z!^+yG=|2Py&}zex-!YBFPGuDqpA$j zRA9_tge`}w(_TB%LN4JA0WKil)UI|02OrZ|s$jeE3f1=`iFo09DY(u7w@WRR_-(ny z1c-5~SOtCuFx$)(DY!yhKB$$cE6jvTG2~@%FrxS)0NITdjaAPqSeSmh`z;D`Sx8j` zDX5^4M4ad>>t+a62t_~ucBO8+A32z;6pu;Op^!UP4ff5u%^r5HLSS&QZ~Aq|#wV!jKx;pF=eyEENz6749=1+s=QMkwmO1yMhheRMc;T+#RK=B~?d`oWY2{L$D z^SqVIpEizF==Hd`dfFliVJxQLV_Ow z@IKm@P&sd$MU{cT`1Ljh9d5=iFpLE1NJe^}A*B!W+izP!alFpU*?3wdT19VPKS)QP zdY_FBE3HQHAH#ZCo8oSH1%lmzkU*Bbv$yAVcAPL%Qv-TGcWb%$b+On#M`<#27_Ubc z+`etN*PpbC*5bVRBA78%M@zgru%<2-UZ&21X18lyQ_tTxF*X)-ApP z!cHo+jc)&oc9D2YZxFITS-=YP)9wTz_j-rd$?q$23~?XaIX+JYvX9z|knos(nSFg8 zj}PWh`~8uGQYu_*((8yPP#2c%nj#A8*Jv%s9sd0L)FHI6K@P68jnUaQJHqv|uaBJp7 z_sz9GSttj>R$ljjebV7kmo6^@cLZD8jaY?Ae7DO@&@xAPOH_Pagu_ppofD~S^o#%{My0W zg+tIN<1;^5m!%{_&w}$1adfS~shTZa7!-b2jv)Gy@~aeNSk6&fG&l!H?b$`}BvM%N zr+D*-$rxUS-;0Vo#O+7=eJ@#Q5=zstzk;t@8#cwO3&P5v zYNl8ph4^+?MTTq$^7%fI#zQ2xPaRL0Th0}MLgIY*tjb^&BDe+<_${{r6^7MynO1MQ zBw@I{Gv=ceH;t&ez^v=TcKL#I6aiH!vH2hk+gf*05rPO2W;ia}@wpCn5h#$HPNuTq zx54pOzT!kaz7EnbysVC$7GjuNn--)eeVRzD3;n8|Yg$ggX)g|CzFdM?r}&_SOw0un z(q_~7c8mW>9{Rf>_-o(tFsv@jr&csdNx>K=TU#1k?b%!bB1P(6X)I|{Jk5~^YE4I8 z{|!|JJwBf;K~`4Y)NC}Bn?nKcdHtdvu~`sPt)i-t>6~*rt&S40!Yi|}LReZhYi(8@ zTRm-$spmM}D#pL}5yw|S>Xqbdu);xpx7nA?*{r(S%?llS$!HzHm-yM2VIKnKlhi<}_jGrA((d8%e0$_ypwc9cy2KjrF4h(>2U$vxX3rE;RSBhXBprasy$ZzFpkIJuOWUNgc&g3}VF!193EC*Y*dGrg^&A3*bz+axyj)AItLsW^frtWtA#MAYaX|frUM>3oW-=V)*HGpZMsLfRzN}kE z(4`a2?=OONrwMsiuo$b2E^=$`PT3*BthRX4KUv&P8qOqf%(v7kw23&sIwq8;P&RJ| zJ{ge8-FxnB$9~ZIERj)4(qlGMl#<}92ODu2!^0~STfTTH75_o2LT065d(4BKy`H2L zvTl-q(_w!+snV=c7XU&;x$5VlzAe}89Q?_4JA8-2u;`(x=db$1eEr!R$^i>?d|YBj z9$W@%#bH!{aItZ6<>_?1nlC(zro-jr2Q^dbVlxa;V=@_<2(gBTg(uOleE7qcF@{`B zmX;#Rbu|7%tKE*f#7^!|`LOsx+0cF}TWKf;?N{7U3aySK%R5px?gks7wQdoZ1h02* zf2AA0vpv>fMbloMFfk12HF%B#z6a7Vc6^0F+;E&a!lghM_) zA0+i=LDpez0AqWE$Kdchln11_d+}J&x?x!qeQNyj^c81 zQPLVUrjscrD~*-(iHt3_=ixct$sKgc$8~s_!(j(Vu<+Dqupmb>X3?LH&Ch44qc++d z=+!bjhb$USIVUqX1Cwjtzfo*lv01OWD&~Q}Q;tQCoV){x@uhsPoXBE>iXh#QM8v3=PB{Hnd^lBm4z?@SLp)xrE<0#_hL!=vjx%Am`Sq}SW%NLEcZ#Gb zM55QxCeK49lWe=O{s!P<4hLhZIVB3YR6WFimgMK|WURHOeYOA)a`JXq|Ci}}rNQc4 zF>cOwM?1IMfq4~|OHAP<0B|JawQp)V?fRfzGzA0}nD5Ct#G7%Y18>axyy*>Gu!v|RHOI|hQ}dwr=I zQ1_T7^r-~t{e0}T9dLzAl=blx8VTp4T@S>Xeo@wPt!ef+L1V*ui;2T6UMehp5q5f~ z`|Ys0Aa^ew-DRdhK32Ph0*TGsdZfv?)CKr>iMS7wf5Y47~9{bw@0x>(%|| z6Xj-d#Fg3&Ft;=q2qTOksO zV1?$`Q_^Oq6D$e@7~;b+sRTO6QtEZk!;>u(F$AFSBP%Q0GnNhIZF?i@8igl`Uo)F6 z1l@-KUQ%1js!bywki`&EYABj@9*iU?uD;Z0L%hq$!4=;D8AZy4g%d(0oebhnnBj86 ze|LB1>YZR9;+n42@C{a@Tq=nXz`47~kxh&M?X8Mj1L|2o6`_R}q|EgGe2vxGI*cxg zvrXs{9tfT=TR`pC3gw8+EnB+vn|w{d;&|MpnBN7Mj`mcfQPSet{35YLLNNpmfHFms zmG^5QC@S#?<_PpQ0mJ5>6hfnh!Vy*|A6g4%%$A1n6LnGF1j_xaz zAs_fte7DdKMx7d*0!#7s`jfeKcahpc{5C{%YPk$n59iGFcKwEnU**p)ZVn>fWKur| z(i#qLi(KMwDsH@i!(r2wu^Y&Lpps7i=^?z-%*nv!~UZxrJlvnld7eqwhwO|*5rDXFbM^3Wx+qBT)CPjUhMJfx({fFAn^hc6Pn<}6Hfuk3 z4A>vCO%|hxQrJwrVe{EWVi72`E(KKU^d6DgOd0&Myn4CLywE{~&-dn7C3LDeH&TNK zG$gw@Izbg_>=i$`rD_Ad08Ub?ZXxf3fL{RM);jFYYDVb~e1$~Cp&q6aEMwR5Ju2%< z6K&SB6uxCiIi4)DTl0*+K&(<26)=d$sz=eAF-Ew+Gon(W6(&VKz$1raTm|<(^!HhV z5^-@97!c!qGLO!iHFZPu3E+^5gV)T_aCn#D=mJ~ahe)4=1RZDwr%xgl&`_2CW8!&mQe784%oN`;*;6Y2r5Pke4Kg z1RU~Z#leYC;J7v4if*Q~vlF|1Qw?AAnU1H1$b38*9wiSMU|6?4j!_0H7li>|1z>iA z*xpv;j6?v;qs#5U5#}PPfu5d|TDvBYGrIPsNv-w5Y62K1Xp#%hJ15qly<W+Qp=Z>pmJbYIgt*zJUoM-AdgV9BUnaQEpY?d2rr?v5{ov+-vzP=d3#f zTo&Q7Bw|IPC7p@X(kkI0JuwPLs>6sqg#tSn*zh21QpEP|?4>R!19Lnf9AXEyZocc7 zW!T;Y{|W|GTmR}n3BJ`p;v-~wMDnbZt-y*~Bo<|N7zAda@OuS+!#>NQp$FbI(csKB z_ggqVn)-P7+Ej`Y5k(xB(b9uaWOjpOJYjKY4al&B@E8yp;dVoaJVc@G!0d_sKa)ij zh=_h56@bCv0Ms0bxm-aC?(eNHfGQN&#sqOqT_$a45Q#~N@?a!Uci|UbKLD{8D#YXV z_FIoGVpDQN9qa@N zd4`YDOuZXe{i?T2TBt+$fHqPzNxqJOj4{`Ps2^tr5R>tPQwK;LDo*jOwKk5$!vmz19;(sQ zX7=_Fo$3%(Pte+;Ko8Px`Fn|qRNQB)@I&Sr)A3&=PA6Ra12tl#mvwVR8uWJCc|)=Q zL;x&oT@o^0|7s&Gli^g#y~;FAJW`v;>hQwz`Hy`2U;Vsx--~6F^RowB$uY8M zRZCT6EYAYuQ4-anqAm`AKxha3saq`oC1)S`%JH4s_7d|^%fKursfcBj#$NvqgXj9# z?s=0M>FpOA^gpB|A3W2ThGv|<8A`jv)b8m^Sli^Ng5o$;RpDm`&kAHQV4--BjHuV_ zJrly%N<@!7h5vGrfENIionU7aY6vrzFKr2n<$#}0SE#pgnMzf$o5I}-zZ1481U zAs(7rQ|jh;&v275GCzvK{DsJrk=$27U8JgSBB`FzUUM>4bh1 z(>FtF5qq=wz@9j8LDr_rOSCSqf~5GL&AJS$|DhW#|IZfQzo=V((a6vwlI?o`VU&sQ z>K70+cY09%MR-FI6n90Z_NKE#86V{~7kg62N{9Z3c?Rnf@5Mjn3G94QV1Q?Allpre zLcWYq{L>&r-1Eh+fiUk$;GawCfXNC4pSb^b4>6kZ-wZeyV8ihL!6^HuTYtDze-X_n z3`2}eXpzRiI=#`w_D%n*6Jv%DM|gkuU;o|$%;i6~Z2e1_ix&4=K|=exTV(kE!)p7l zv#|eR%Y{&I+@}BYwCevNXLVaa|GT{z5nAsb>5yUl*L_X@vhOHrvi~z^ivKwqyZK)o z`p;%*RQUgO?8|?Y^8XFwj|Bd&&&cSc74*Mc$q;dGYwp9NGwR4#s_p;GA56gdzdPLf zdj3Z-{!5KN|Ce(A*KYVk5+dxjf4HT>Q0eZn|E`UugT>I`f3bl7DAIqa%+Qbj^_2lN zXC(7cMT5{TE^?E|9Ki;riCj*athJd54*=Nj7!o7){+?zNa5pca{MD<=74yV#KWKhJM}Gt=DoK%(8*O$nX`j80KUpLYZ;N_+cUa66JiCRd zO-#r#?es;Y(K;k9Rr{kweYDZmBVV4*eb-igdi7urDwG3iTzl?Vi{hU^lCtkeN$50^f$3z&Q{CS_8BxpzTq#HU*BC5@p{)Js1SIz zo4Gu1zVWi|Gt9_P2nxny4^Bah#Fxt#dXrzxi<4c&Y0Oe@bpZ7;fIDb1p4jeHcurfRrl;RQvbhN&Yso(=Bt zdv|=J!bpvSxWQ`OR{z2}+uOX_XHxc%NXO$Q@bG^#XniH+g7en9Csy4V$86#u;A1m3IJ$%0%VKzW$$Wc+%~doJ@oGB{ zFFw0vNam*HfV75Y!%;Mef#6!SudnaJ^Oiq%IzCN+f)Vx6Ja3my>q@^=;=r1S^Dn1U zD6gG<_#k<+puenn0HiyA4o^z0X|EnYSO8#1Y_q%bWxJOp1A;HJI6R)=w%T8$mg|j1 zlTrO+3&l0E^tWbA=!>YGU|wE4Up>8M&4y?qGx@v&`~lXZ;OaXwo6txCx6N4c{e7t{jr~n zLZapR{gUy1V^%H)1+VR`(a)87tvrS|!sQcikSQ-ny9dHd&9RTYU<~ zG!pdLzRtJ$T%5P4jD{xBk*6dNO=jj=1{+YsFq>dPlgfltiJaUeyqDVDPn@l=SDvkQ zEDsM?E5u=G8jOvP#DnUb_a@c+_wb4>>Ks1<@jSfrehDVXgr>_dYr$vn@yKge(23- zM4SGj45^1`A$|Z_*uOmdr&R9YY~>%W+ab7z!|ct4wchR#R=SN&vhp@QX829J@$1R{ zEfEnhz^frz?=&+tWh_uP2lZWl%UBymALQZX>x*O^44wY_1P)TWN6hRuKOAsWbOQcIm%KydMYpp%sz)@+L_%G zW!l5`dhUzU-E;Q9$v9%nRL{~k?}W|bkO&EX=?p!w{hmLX9v+=ilA9b)HvQ{lm+cY3 zB|4MJJ1Pyv|E!U?1e0fHF8f-^o!=(CmzwnW<+7+PYe+n^xr-{ZK8U_Z;NKnhRt=9$ zHSc`5HC%rYUQ=55gp9_v8s|4=X5$r?-g1xYkHZx3b|z2?vC>=RE2Wkg^*C+zrckD^ zYMp@32mD`jNWwu!2$W|8ixW1JAMJ-`ePbDLQOE^74Qj3ati{=P{XtJDNoFjz7T28i zAkO|uCgz1oDX&f8@z@wm;Z6DC%8L8Rk$eEHuep2=yU4gf@PGFXyBkPdU)K=sqVl!{ zY>-b+_g1=Mtl6EZ{*Cd7Yq2EUMT-90)j}Y1wK)5q1Dn>Y``&+{9Mb!&`~Uu-e?qx` zQ+WdaMS?lQ7ypH^0hhNr5&wIpcjh_>^@e%>2OIvQ`bOgT|1$Zv761CzK^K}B8TP-Z z^dI=sVf`P#{U5;gzc~R5sek<9ef*Id&pj4}FzVgAUsG7Xbny{RvLVpBMxsT7uQT|Z z=V8OTDV0E_;sT(Iy!7jr_rWq9DOg~REHwAsk zua`HUFDC@jAzDE8Hv0ayn)?lsFc`?n4)FzLccwjO=jL1;EG<2M4ebCW7^w)%vsQ`b z__;4cl@wpIMuos*P+aw11XuK`Tia4cL|%ps1$Ut@aNMpgzt@zT5wBke-%J6t9ycMB z)1#C7lu^>Rv#rE4hXqr4>|dLAMHhdA#Dd&9#h1y+Nq{b3(nVUTG4FlDvGa*4d2{#WJjmGc~bM#2PyLBDc^k>J?jJ~&= zE8v~69?B@j1S6W>u};lX1el4-`iwqzW4SPb<#9 zj=ukvkr9;Y6tty1yncyG7p=IOfY|WUgyYR$4Bwm7PbAekz!nI>)<}#9IygGoPgWEd ziUeQ3*i{*NCpOvOY5#L;ymYct;w7~VZC+hn9bh$*^SgL&AwuwmSxX_1g9k_(kebIp zCZiPbJ6jtxKpq0sFoikAeYH0S{}4WJX^=+ZammAzqpdW(K$a{TQ z6rQ@m;>9VYAw2t~jvF^Huo#%;11T)tUvajzP3m+Z?lv z#%IxP@&Ol5Qn6If-)r*QHqOCVe|*l5SW)Zfzw#tV;Cp)AHcg9!Yzs+;OCmD6{{AK?vUUx;~Yc;9tqh){yxBcT2A|fIf zmZdgq=Z0oxNNwF+d``{|?(^~0g3lH5B=cdFSr61Dow;P z1Yl_mrq`;H5D;*_tbEO8usM#b#8Hu$o6-Xm-S&JlsbvLe733^If8X8R?TIJXc*n=h zZ9m^s&yT5Qc{7`?sys-GDNW~BNQJ@TR^@Xn4Z=b zU9b1pPuZ3Vr+c z#cd4jGTmZQhWxL<=&m#KHawVqj)XEjl`-aDqm~yA7F6|?7VtiHM&iIz8oj4is$Cv+ zpMh5Ct*XE$m!(|TLAK%uc-*f15?`Q9f+p6yuj4HDQV;JCerjwW-tkA3UYSgx%jH=V z_#IeS(2M$BG4Q$N6tSpIeFoco@L$9Nxh3`vBY3EVS`ymY+OU8$37{!3^5!opfbvve-1t3HAb4sfd zEruncyfj*;fE5;+E~zGFdUAbs@DxHebc5&bvxY@z^%ywaVmP06uZv&_RLR5;Y?7lb zArkRA)bWSs&wPA}^0wgD*VK#UE{u#+_=~m9CT4-bSLZdkTug>_rb51l7RSV#30*xs z@73~TqsK&j_OoZ}e;YRYS^hc1KZ`z+Vixh`9=cymOW* z#DnoD@akL{4Xv2m%9E-}Dws&n1692Wo-|bqB`D48X`o4?@?iNT=lWZGefv?X^mSr= zPIjmooCwdv3$?tb$ zZ;q^}?;+l1wOf@$$Q{_;y6EI5EUdm|HCql4tk=37`o(xrlz5X<0V%Nslo?HIxJcx;ASiQ2Bzj8p9r~% z+%~2-?Pac>spmi{@$hGeybz3*Ny24{oDLkiAFvywVI!ERFp8-p7xL1~{r+8qHtsw} zkJ$G5@^waWEx zqo?ar|2;q6ip1$iITZHU7l&<(P7gWa5$h}uYA_sGpnoY;ZAtyvfqk*lAp;%1UusX? zM9^h1JJ(;}{C?nnxPUL|h!IKr;aLcd3TU70#+lb?v9FGqsj!Rj=a5ob9A~uECW{7P z6@JSU(lI0v_CZZnm)n6H7ASRR@ajB>XK8(LnkWAJ*6>7jJ0XGc&c;pg_E7cwz9qDZ$|j2L?kte6_H`j&L^J58@+X52zO! zy;T^QlZ30_RDMCPOv2KWsBm=|>!|k|0z*=7xGdx}^*Ys%9NbymRO;HU)G46}(rtrMLG z7G1G|nIu_6o_Nyfg17_hQR**pc45CmNo|3X2ZAhWjY71(c(3>$HrIipPdGORj$-LQ z=teq$_~%KCvX+PHk<9;kQo*;NK`;iAva#*SY!~k9c!u}))fN}m)dq#<%Je?vKgrZj ziZEp|10O9jvZaB6f&Bb|R4C_d)JU*^Yqv1pDvgMEKh1LMqTyU;lXw*q^V@NElkKRi zTp|=Pg{wS0ScaG(d+5B|{vs6}!recc`z|>}t%3pq^5JUEZYT{N8zpb2W~yzG%*ekt zoi+HMI??IoNVc-FzGk0OiCczkF{zBJ80lzFY;kiu+Y&+H4SSf4^&om0X`WnnQj_?P z&Zzs4FzuX#Fb!3{A9kiOlU6loUco^Qcn-uZl^ z3x9X4{DRvAg!>P*wK^@#pAztl1f~CH-xNc~Y>95SxtIAOj33P3=0*6I_{;fzW-Pir zIP@Tlm@hvD=YM`;qVS(@bO|ki7+kBZJ_j-C2MZvRnT)&r9({jqDZ%|ITNX9q8JFf7 zpehA~ItffN{s+VehaX>}t>3uPNpiytz2OD3{zmb~qVvy}FXC$SFTfmLY;?b08dIKK z3UzD$n`Y_B!odndr+l(67;ji~DugY17vU@BahMWEGXX)u^86m`VjUGmjgV{oUZ%$# z`bJ4yF?=YQDNh@re7n{Elzqz5afwd+PRg{J-Du}>G%AFkbn0BpECVJ1eEwb?x%)(F zX>aPIRFV;;Ijt@uv*N#Yu)Xdc4skLV*zo8z3YF~Iwg6A|_m;w5L_ksV;e%?zGeQ58 z?Q(&9xmh={AX)$rScgNN#oG!Ta|q z_yh{Q4suRu?2s@Tbdyjs1l(mE!Vr zPXW=#<|IbHq0xQdT@uy{yUt{(&ZMd-e*kUXmv4#m%4rY{jD4x+lyWL1O?c?J!YyNMQI zj_sjQNkaj+!G95Gyfr7>x(?vj;C0ZgEa;V}SsyF@4cm1xHyCtoEPd}pn`@3DZetK^ z&(x}LDZFMCI~^8B+iG|q8nCY#4BLAg9`6gb3e;O{u*1Cj9fL_Bd;}SXkHW4n*CqeX zDP@ISJoJ(ZsK;qMmO|?d=3@_cd0vDqK|yAn3feFfKtbxk&5&lsqgVyYn1HDFZU)n6 z@v*tJH307%|I=LwMce7>4S4rZFfY3>KH5*R_a4DY)nK_}Zr6eXndvYas(8gJuUh-b zA@C6t_n5bNKDbk#Dd>q#Wn^Teh5=b1e$Pz{@NjTLr1bDq<#`PHN(FvW<|dysNx;z_y74mC}ob256oi{q;nr&cfpV6dR9RQ zN8h?cr?Svf)?T1kHSZ+oneAvHX&Tl3!OG)4i^J8vaa&8>oe4)&q{jaVm|;YacFdF9it=#>6RfM@IBut*eP>8FU0xs=T(NFoj) zAM02~L{plGl_Z$y5Fl;Me0KcgykIPIE#$tY1Sf%FGUH1D_d@Tz+1-U&!t^&R+B;Bg zaEw6FJaNSDx~!DWi=P(jR%p^1^ss}FQS|}DI=*}DU0hP zPy0O_*C~E{vetP4ix-@XvZ>tmR<2EenmfYd`spnFojbGHgDEMGS1;6fd3mW@VQV1g zu{#1h=%VrXaSx=inc84OF=#kaAy+Z_u-R3YpWSyA$?&ISck+!o}iu6 z;Wzw`FNVv!5*FFvHIYdpWYaG?eg)88IfK71G7a$u-kQRGX-k| z31Pv&w^Yidk4BLKhGu5Ta$|7c!oV^M@g5p0x+}S+kdTn1Cm8}Rrmb)BHL7hm=|1hp z>FVkh5q_6R6@U4Rda~MGmM;gA%>oAqAHPYJ-FERKR9sFE34k7IVlm3GceXa0V7=2Le zVh@CwHQ@*^Dl=^lJ=pa9gkw76qfLtMmFagk zGtXSF&hN2}U`x`L^)5UL7zgz48^~bkE*{yAjeNu3@Tf^7@r2^ggaaXgre)^-{*piabsX8jhwJeNGh7Jz?1=iEZm z$hOws&2g5wXjy{AZFDtwWE-Ol7ScLKc*JPD3Fyk{*JO@b@1Kx2pK>)<{Y$;SLkfuGGZzJElAw;%8&2&jwpSx~H#g3tJ_xJHZMn)Dl z0C%X?2egpK%R4jP099xel2MnQc8`7fN$nPGLsdv~Z8MVFri0L?V^4_rJR;&3IPc^T zf|4Fc+zJiVCEMgN>k3>t1~6(Q7t@X>sb<(psPR95x|I+}-HuQHZu*7-?i*5fk>%z% z1D68rKgia9ni;+X{>Nj0qexboO(*z|pNCO~TV*d>e*MOp@vq;5`~QdL#U(n^B6C?X z`ak~Q|Lv*xhk4=u;Y9HJ?`QjecmV$Ki~k`f|HCivPXYP=AsQ#NVvCuWkdmeY2lQj1 zvDV_pA-pAu!8A~hpaT2aQoFCB;(+CVPUI`Z>+9OR*`Z7p?^&ONqwCGD8>5hXXbHOV zgYUzBtc*#97T)wGm+RS|if>9Z%cl$M`CPxx&CRv7<*2s3uv%LylwRK0@cq8lSr9|` zPT02!0u;z-xN_2K7q!k_-g^M<9>MtXePJlj{{kSKQIk!&n8|fcM}%T9f?v9K@(K*| z@1IOhO;4YnojLqyP>x1;v6C#>3Cx(-pFiMjetfDS7; z9;reyqk!kRM{{dK@WT9YP3ilH9>9|YsA~s#5qtA3Fy{P*CYvYmWSo~9uNXx9PVBx{ z7c;$tAYmKieH&2hegh`J{nIvXuk#p_k^;gU%@U*-Cnm!{mIa&G1a)ADd zc-?Vc4O2%)N7&qlb|f)Bl4|Nnp9gfq2zhTmLn1P)`qi7`$%A{CyN|-#+ltmSx%M?n zt1{>+XwvHXzukdXC~~2fGA=W1Mg9KXr%xXzNa6xCA{QNcGIVynHb{Da|Jp5phmTw8 zUBRUA37^_$!+O!c3)@Vkw-0fy3*}P34_Eq~ZWtW5mZ;|sS83TBk<$Q9KTBuTv{*alpq1zdo z3PLQ|x@W$$q%q$0mpgy>%*={Yvq%}9klnN{0ji-bpQ-N45Qxd=4EOypv%sSJ!Spu) z+dhx??(7>5qoixIef2WU;-vGrfV1J8DeaHI*RWm@$CC5STPLajdzQi-tdE|D4)Ibk zkJX}r0?VWI*0xyOX#J-$kCB6eio>72M=tj088W(A4As@i)Nd|MPGHgQj@8FVQ)jLA zy;^YwQv$8zwK~w&=Ctw|b$-Vr#Tr|CDc=hfBT50rPB!D&_~1>PIxp;tzLLDv4w}VW z=b4NT6Ms8Ji1=07UwB;(Efq}!T9YLGP1s_wesIy1z%EwoiKU@#gS_Gyq4+$9Jn+3i z*JgSe(aswVleTG;sjm$`pI$P^ zD$HP;1shAAMxRtJ}}9k6j5+1%qMgVf0H;sXH{kFL7z*vOSM?8fzyeCKyzvef)gJ%Ct)Ley;&4 z(5L{O(R6TAD}hp^-5-3^WH&ByAqyb*b$A(`WQYZ`1N|LG!Z%;z{%gme7ME6Os>0~P zZoHII*ky6*V;<}=13E?7b(YA`yTPKv+Uon8em8!oS~3hB^11h&el~h}nJ@dmHuQ>4 z<+JnNJj9i6qvP3(<;!n;w^WLfAT*f4ARNkU^%?Q%9X6A@`_&U>b@2&yla|%3tq=tG ze_8cPl2NyR{c5y6-9W(@3xqvGyupm|hvwjgpq=x309LuPBv*)vg~r|-e|!pggJy;p z46VNxSjEaI%=qecmIGFF;V^SbFsF&wuYnNLmFl_0w^&(o%&FNk%An$6Sm^Kr-ab0z zG)?4Ze|}&7aJNCLV&O%FC*5G7j)fP#!PUPt;n)o-ELuV!s)E5;geUanEd+l5DYx*BS?Sk$YFXbs}; zX;r`cK7rBs2IJQ^z*!h6VAffK6w7$Afl58Pfagm0JwkRvaXl)HFm!^=>E=eF4Z_X$ zQ*tRAx0cY{n0KjhRm=5{Pj+TvPzZ46A-!9XeXox~pEjtyQyy&CydD%ia{C|i9;ekh zXqD-5&iNBFX&LG_dd2w&R#^=|Db5uMkA2B#EP@X$Z^pNP4 z`@P1N#%q59q>2PmaJ-YxnUSoX;4mcx2pHWpWk-c zm0ri2_yJ)b!cgCE7!+QjF9}uK$7BWeCgvE_?%7OzSo&OU0PSJ)tiCX)1zt_xe(5k> zx0D=r&-~e2ADC=7^JJL{MOQf257(DydfvpZXNv`o=;l9Q>5RtzSI5pB(If>6{Teqq z<06vZ?0Z z#1OJ~(lyaT!Ay*Lm-TYKy!PRjWlVCx_K|lFC0@9$^sH>bbJ)KgNaNXR?}`!f-njLn zIJmW?9r+C2YFKR-XXj$$S^t_y{?c+RrY`hXu1;l^k8Jk$6<=aO2crDf z@jEj)_x2A9ak48+QsUgBg=F^YR-NPoM{ik=p0{}n2>XfClm16oktSD zit3q*%Rm8nSNh#Exuf|Z)naO2xo`mIM@rS9UsJiH2r{_+UmxE5E~;n2&;EY>;eJ9X z99o!*{~O9btcKoFa2Q|8D880t>?A&8*|+KVC>(Sd3d3bC5hH3L_M2 zprqajc{`OCNsck0NgITr#+$&Dc`{q?o*1h}uZlD~J1-S<{QHfpN+r;jf5CU02_P)>|-u&i|7IjO+^1KweV0crTTMta2zf|^LKl#u~ zukw;?DV@i8q}<=zmBynA`|bAjwo8xc)8RqZ22VvrMKj~1)%uNvf<09>;OFRYi)EWn zG@#w&|+5mlhxN} zDHwDD-Yq8v1TDouS19}f0&~|?M#L&PRI!tD_BuLvBo)hA3`wD)zOQqi#be)yKNkAg)Ut>}X@J@+vr$?M>|jIM72g+S~p zFpc2cY0s63E_wWtN!;hfEP{mgm_9%*sGOr=XEXeOV4Kck{bVSkzO$T)$Z@(F$Lfhx zn8W&I@OTM0v(!aK(ZV;SP_V>Fh=YdW8@QuVd)W2w|^!VlIf@7 zIoTc|Ut4`$uAiQT(_C{WQ2njLC(FS*AM><#rh$x+=m(UP&Tb^wEXHX(orIW3q}$fT zsWjqZZrJQ5!&=e&vMm8{bM*JxYhM{| zew=glvr`3QC?r25ldhTwJTH%BMjSW7leUM8?F)#`>t0%f&c}p?+t&rc@#% z+%HDbxma@Rt(bE~(bc2F;XhPT5isH-UEL{r=prkTqhDt#I@=4;wEHmxoujGUSBuZP zo#ND$=`|`01$-j11caq%I?wXY1v^`Iac&rys0SlFY6X*W(|idMXDs~# zqK!J*`+_rxC*4U);nuW2d?LB5hhm)&qZMG!BjvN*Fv}3E-szwXY$xx@G^_y{vqZ3`>`JRyr=9CJ<8{5k>gzS=oq-)7KnLT z@CS5etM?Foi|ewoD!gm@>_I8i=(R#G&Eg{9oHLAKMY*TY`=b+NEJyL$rZ z1A}k`*~QfrP3>-uRNw;mHx#S3Oq}IDe%OmznSkS`OXBLzy=vJyrco?a{=Zt4@ko*N zOI#L)9Nk;&fY=|GC+z)bR6!=_Q%&eEQj_{L)3>4VzDoyn!DoZumExDR(C!jYAkcBx zL=Tqj^NFn);y$uvvZ|Mvv|?tlki`=5lz3$dHuQxgA(10EYt&7KWAOA_#7;TI60dBvN$2tQxQ=)gT)Mg@Q@FV@ml_V>~ACLWL z9wp;6XW!F(_d&qzt9~-B<{R3oXFvD;_6@7VLYu?b4#A0${A-D>Nt#16EG`32=yM8c?1CiM>mcC~Vs5KW6Ppn1PpXEDN>nx^ zf>@hl<+ZM(Yh0EC3iR&K-^eLWH<)1CIFkFALrpzTe0s{}(i8=YtaE|aafU?i;l0C0 zCFVoUDCBE)AQ@JZ*RCQq`wb}H42q1H#ZXrUK8kBkHrj1iMN@cBATyOJTMWB zqkdj{{MgyK8RN13HPLJAO(MyN14|3j<_hg*!LQx-yW?0?v&B!dL|`a(Vsy!(%;R{_ zATu1V);2+21(I%vyY)Ai{x_qeu-D*x!dyZNSCV4`39d}1vIX13xHr$kxY43|xTf_)GXD9kaLs17pn|NU0_?9E4%PkDCxdtQ zPrXwfe=%wBQ4>hzl2Hiw`qWOcodKzB;G{jwfX}(TBDRwHDtssc)0#m!Ehnr*WsM_| za_~!Ao5XjAnfHIvnKbBWUS@An6?SkS*OO(TmlsPs)MOXl{*N!fA@8cAEIvcKOmic2 zoBF<;LEZh1^%AGHwJskMoZPHIyfJ)22mj$NpPmB651Hi$2!5nlQGFBTZ&Xi9#a6~@ zqr)xSdKBf7pUq%iZ=GG(>x)ALn*DeMn+$?E6%HGxB;aMMwd;x}iqOJ31U8R5W9%+Nqx7mQiZx0L_1nYu zHR~1dr|b{DhvD5K9PL%h>!OQfI-99A3Fh>Y#8|cI`)&z%J%kUTicmC$fMZ0c{1YU5 z!Jw_zXmwAz7CHwF>s*3BBtvwo0?Aw0?uba9G93L!XZv63bk7ut&0840kGcTP&sL~8 z%igtpKsr&m@FB zQ^tlPoOd$BrqOH#s>wcYFVyPTcqqPMgC66SoZsq2XXjd@cfZ~vY)|KNrtQehT7*us zR}4==N0GDy{J!e0Q{6Njpgenuyz_T`ga)5kli$TO7})B2gIx)#F9sDqTs3Wo7|5Z0 z7O}x`_{X>5BJ?)PAq>8bHgmro#ol*d7Py?mp}C)RN%WFzH}dv?nJg}W-gBrGmf!tx zkL?j&3nyd1Uy8!P_5W@ycbx9?FK#oUPZ63l`Mgy4EZW{s>>b^jBgxym&pjZ-4RAu^ zowS-DLVhQP-Y4nOv7-U$Rw_xg^iy|L4;uW+8N ztH5-be8L^8f#*ZwJMQKwVu$#P*#pbM0#fYb_G811$E1czE-Z6Rt}759mV3DRgef%i zqXsT=I^jy7Or#&L{HF)Hs1xCs@NJkW^c2Ya``s{>dsR;Fab@@6UngZv_W3~qbvQbi zppQ85dlnZiv*Ac4a7J@!SjF-C?9G2GSPru(^8Rio-IG4-3UE81|VH@g=MNkoS@Z9iKf`rz~zT%FzJ)fI2z?CS`A} z@(%%lj@ifDzH=vf1Qi-=@4w!5!zI_Sr!ohH|v9 zb>kJs_zl3y$yP`y`Cf_s_DUqKAq&``W}3TzD-!Q z%dT}8V{{7xkqqc$XGI$KvOK2+2<5spfc5P{o;3aW)rE4#L*u=ht2QKvleWn5THmkdxjuI0 zaF&1lhxSh(ugkD08LM&iIyhbG?Ckx`zU>wi( zMs}J8&(4*da`})q)~Y3)M0)7}w8;c6*Oxkgx>;`WIasNsj$LaJ>+eteiM1vr$IZ9| z%sW*G5TROFK0YVg#igZN?kEvI2VOhPRS}0*uMMWhC`z0j9^ux6=!@H>d>>7hoNLVc zDs~>A*+1bkm%?7EhefgW(HdOLw}-r1z_vm@p;5kKY#!N;8H1j^dit8Jr6h}+w{a)(JT;ls*;V`HsT`Qmsh z;nnDSWus<0{Mp-t9MeNtJfD@QCm27A6E8e0Q@CGZV3U9!i<(A@0QnGHUXb_XF zy}3~wd99#GKsWr^NJx{>Vi3;!+=3hl_9Pt)@<%=&7(XV8cC~4zYU3}qg@$@;uaBUu zbQ{&X5&!&Pc6ClLm>w0D|7DPLQlUCzjKe2>ZQs%;f|gv1iqDPteMeGxoua7k^FLg2%*!nEc_25n3GsmGd9?5ej=zoE z;hg}mmsV=jR^%gv=0Fd5R4CB1)gGx;_egkE%l5FJslGKgLR7oWreD*a&Q}R%oCk&E z{s@iO=@!3T;OzJBxLl_bYzAJtQx&t#)|K;;>tlY#g-YqKY30?EpSj(1h*IY>5sw(y ze;9=}DV6QP$wK8B$YMCpSF4>L@ULG*0oTerP8UNcb*kNxCF=h~iAQZH$l@sO< zn}gi2{!eH*)?czE%(2>3#k#^vluCW~=4vT7A|x#4GX(nc?k!d7eOk*kHQ;ror%=(P zq%Kw~)rO1%)#Zi=M-Y1&SsEirNj{cT!Z$EWzh>3Xm&R}{*V^Lk|H|p(Os|s0s4Xm& zCIq(ZZS*Sh@lC)5xitE%LF9szm!Bm%!h5^UK9X=e|IUFHjzt=MtH+&jYmiLgkkg2XN{d^)5e z>ApjcWz(mW7h7>P59jyq()s_2C*O=H()h(*uK%~n%3JPY8~}n=xuHC{dUE=CY}Cy= zaSN1QZLtzc=@)Si^{Z{bi=9M$M>jJEr;XV*puxJc3xQkfE-_Q}gFBHaJ}fpVNj^*W z$VHnJeln|9+sM8?jLpU)DG?epjon*di>+9NNm@IpJ!{ zm(BFs@3Z|SMbqpYeEs1a@#$wumBuFDZ%B9Nn^e(LecjN&lh%XS^$8LSl3rr%aE!;! zGNjBqsv#C%@-rFD+Ew`wjE=NZso)}x!}&or*Cbl~--{zY*z)kE)MVjF{i3U9_B@Ro zZXaGj>JXp^rM(jrU-}N|R;;vBfUgKutJm&#p8Tg0aqk5@0HO4W19XqT*c3@7c1QZ1 z7He80vTmNgg8uo_JsD?*{G~9)AN07J40AWLnbzbO`K z73B0VRK(_(*s>FAsUB}qBtB>j{2Pxe>V3j`q|TO*x)J(Dngx}YBk6eywKSGa(I5*f z2=+EF!#1zaRGV>ekA#_M`*>ffifzz)HHBXOflN*s6DcOWGTy(g+m1v861Y0(ssV0S z*qLdp^-suJDwVmp8CNn^A|xW3rc~FAYXSGL@}pbVVF(J=`Nf5hu(!{~x^9zn)I!yX z7<6vbL84_R?Dy&Je7RQR6WBS=dLLuLpWlu{i^BD}Kn}P*#HYk;p{7m7V^n=;J!H7d zpB5{P`lr-(sz?opI=Fp};5*`TT2|zlA60zxv>t( z{R;B`knF9{mR-O8C&bUSIOhIu>p&-N53`Mi+JAcp{+R-ChbbxFu^H5+9=-zk6ZoWNj}7y-7q@}%V}5ey>|&wC zUC6s))^(-pRS+e3;s37wdLyJl(X0cqsVK0w90Cn+a@Lpuf)?&{daXu(2gZLK$KCoUfx{zPvJxUJvuVY5Ct$a`F9J&|k^@)H{8{%9hvTcloN?=%V(cxixTq_(}hV|;RQicY{f)g*%vFqkQH3Ko$3qVRch zDz!H*zPjynNx>*{POI<{(5PO(GXr;o+j2csl|eFC8@V*%yrcNNd0r6&o8Oa`uci(5>WsW z08L~A&U+h~D1ysvpaf`dp>}d+K#?nsHtN1kr7?}C-PP0G(f_LY7WrWheo~RhJ#7k$ zsNl56k72^OGxI<>LE#y_MbVvu4(xls9%k{<@Zo}2PVZE$oj7AsggAah>4hWO_4Re( zBm5Ptn5a0mZIz69^Sgz|;rXPTbTr-R83!{P<*u`ud{3n2B5~$urs$c&GO(K&L)b*} zsUAG|GPNU_BsZ5tyIR@FDtnZDlK{}qemtS%0;9osjXe?ymKO{G`EhaS=>|~zE}K9O zx!yUDPhI-@`%BbT=s`}`W_4em1N7%|eOV6`3XqI1(=PV|oy2S+?A~7I!3uvuk=0=8 zC+}|*Q}3yYCrgYPOdAR+9`(UQdb(!6;i3lao|MYtOHx3Hi znUTijndW8H8YmQWc?P8qyR$8EGgLnyr)D!(z;SvnT^=N z{`sI?DP43We=rKDqQ#c23Fj{hx3bZ0lv+1VfXJ5!}RF zUQ@%9_6WTM$g06KK9zLdOgH?naO4M9MUAi<9qrEb^d_BDy)#;C0$VR#2ayUX$zQ;Id-FB^yNlRD zUJiqa<&;R#7|g)?o$#-@u{B*XcQ{L)k2v}SQ937K4?P^ zrvF#+-uI}n`B9}f>6COiTW-`SJ7xr=3^?Tzy6@jyXz=+&t8@}fz{JjI>tx!M`b>Uk zeT=dc1T>Ccj^v~fnpHA#%x7z?ogvg3cSMym`}xM+-~oe5Ef}=!pldi&#PO|xrdfyK zG+FHai!GgxrWh4W^yBPCjgmduTt$4G3R2(8T@9;5y&(74Xwwmicsx}Rh;p=<^xO$~ zX`H+`N*T|&bTFM4c=85}fO5@Zx6j*Yz8VnIef+!#gKCVU-!vWZmcx8g-^9d8L0+Ck zb{uiB0^5GslBfHhLrdgtsmXj>jpTIcUNHpl_{Z%*@qo|z;^MQ({ne-&kC{<}lHQRk z5X!c*AKJ2?BMsxcVN}Dt+6GS$6;%{vj@0&OBjL7+&mgOQQ$9pXp;_0UPWAWl>B&jZ zaX)c0H#HfT4YpEK!GMiNEPM@rb!z(4#!Ek0e|yeOTKV@zmG7oFY9gPm2^;3N=p8Pf z@qXkmuk?DZEQo~J2L%%yXfTz4y{MY8*M7O7EFkUaot(sFCO zF~P|g@|Ta?yFFHIMv@AA%vSDl(N({gWM_x7SH=OV62)a797_&KVYPVlC4r%nkrSv+ zEaFqF{dWTXL)Re@uPY6iZfi6wFgzi``uG4Md-fCM3ypuDy{-d#Y5pwpxQYf{s)@;8dPz`(%QtVUkzy(3V{ z$@*4IMc4_hbrHYlgX|sN_K;D-V$0RVF^>}pPts@D1To2m|Na<#KgM_CVsBDTvq-wAR2iV#O! z&>S?^0FXgqUWVFxZ(6|h(g!ExWoI@OoPX5~yGD)TbX#-p_s-+eH~DN(jm!_)!>A>j z=OVQq+bP@+doAkp)y9T?I2tUaw}tR1I)Lz6^2`(F5JMY};hM5~Mn6{&BkLF<7>D4q zo2Yl}7^hP}fC{Z0Ha1-Uzb+G;L!Ffs!Uv)m7dTyC1}dCegVvM1g@mN2IrOUVo=lYM z)aD6G`7JyTX@8MIV~rX5Tv=uc^>lkaOy|idg$P)O;wvA@QV99sy^ALoYSW&s{EOhx zzkXi3GeykjWQhF5-*tXg0LYT`R@0mhALB>_ZuN&}W|GJDCysz@8R8TOcks|D+TtQ0 zeFrPR15u~{u>w4#Z;SN2m|&a5<6IqhN7?M9M7+*jhl45YHT<`sB}l}#U(<|Xbh$0$ z;w&8k>lR!wdjkb;x$p8iKE?9Ci;9^wtqs{N=X`(G>fqSu7iOH zz3gcrTxos@7syAJLw3DgDW0%Aj@5Y4GPYKT`SyugZyjVbaYNoyxl#xc(HcnI-JEC^ z+Kw!GSuxkZM6Yz)MzsAiiUEWaX*i~*+iMEa@1i>1*oO@dG77S-Bj3XA#R0!Z}YE)mTHxo>F;Ik1QxI`$|3asS1xTc=v9 zJNydnmb{##+w@Fin7@l_&?dsmd)u@pjPPT?AM|kaHo0kOMX41P zHjPFva$)U#{Kzl`sp8>W!0rhm?TaDS?HB6=~?x zK-IPEywol;+)fqv+2IE+Z%{CC@;BHH4mu9*(?=ILN8Ba%gWCTitYPjLJT{Wt38yBy zY@}4qr-JCg$J3rg{D#WNxD33SW8oA8jA*jc2nt`4p&V|)sUEW9jgwik|H1%6f_z2Ki!$fX;r(0Ff@&fAOGG_hV9=V4VeOOs2Qcakop;VFn}_l-ZrJO6!tk7Ut4B0duv0cF_NqsKjb zSH`yK2>VyG<$!A7O1Fxt;R4iYXe><1ZR9Z5;QFqddp2EXe~A>uzWVa2CxH$on7W`h@AYHT$Kh(Is-p zJOlHxcwgUJwZA?Ty%vw-^*S^Xp7I-)S=>+i`(9=9;hL3|0yW&q_pJ4a7^@iymW@NL zQC!toEjk4hPYo>OtV7slDrBYG@bJc;9@4 zttoe(aGKm$)3QJLr6ejzI9G-ESXf90_eO$*?MF0R+Fs^LF^nbLV5+LT8wYg2)&!f{ z2lLs_D;OdZHoY#1iVp_R=a66yC6p$Nyfj1*-2#t(*aU%#|ubJWA2!HPK`WfC7#q*hc@)y(~i-A^Sff!l?MtT46$ z{S60F)d7|>_j(=aEdG3hL=ay4&2ohHF#K9yRT#F@Zi0X8Bst@qvi{DYSK)hew4N)ja$z zEh79#B*Y~K5d#B5*NfKIBJF@*IarN^L!?^We(R~~;Xn$9^SUv8i`{MNEAY>PM@&13 zP=EDWY<1!Jd_pVY(PaB|Nyf+O*aEVSoLKLA+Vth*S4wsZ&XGT@pU+` z$f0a1*HT`K(Wvk)EwBkr;)()+o0@Rd9J5wMY!$?&&ASv*AoLLGt#wXWIX`?5!7*!5 zpkJ-oyA|~A67!141{p#Fsaz>pmVz>iu_e*6NKcBty`zsTu=@(LEAIU}hpU678KJ6? z@A9m`Gp_zk28X||Rzu~ZYHTIPssu@;u>hsu*^^8MqE)(4)%VItx4k13RDBltLU86b zdma!VQcy!`7RZDK-}@8V0psWOIMoycD}3t1jr|(2Ch66mUKIv2sx^h4|9@P)1yoh- z`n|0v4bqKtgM@TTcXy{qBi$g~(%mHuQqtWe-JQ~nG=2}h=lz}Y{}{tDB*xxr@4eP~ z?&rSeyrwZovovsU{`?tPkIjbi-(G;8jLlK6mTxXk5;LIU0JyFQ9wUm7Tv{V`#5J+0 zRLs(RPKk0k$^FeeIpf%&TAx%QvtpwIj(VK7UQ^0VRdDuX2yp?x32`|84lgUS(&uwcQzT0jLF2B|hk&l=CKb5eOERrIb!V(0D1BgdOPscqhPyDESBB=_y4+ z6l70Mamz}FwO8QU-+am~8N(LTNEJWwm2cg*8rIuh+|zM~R;6!XD84DyfFb-9lF)$wGZtx-sn_X}(8n`<;s?KlLx;IwN4pKsAN6GoKs)WL8& z@4EqBo9}#Z#G>ki+)k(MK45c!?dIAZ4YB-cAcM`wLCwoo&_Kq|r*XcesW#pSfX-8OdTn6aWIU39NIaUx z_bvc#lN}DF6BjIej#mRsPATgtgN#y>T1{sOQ9KPM!z#OQ+OFz?<4_Kyu&llJQOb6U zq5{cPrY?od=Yj+S3G|+KV=Z()ELUDH=L+_O3I!p7XrdD0Umxb0qJgk*B)x5|!4Kr_ zScBA|rDjL1=p2#!&m?mbQZyCbSEu7bLbMP;HJ2<>*LU}cv}#_Dff0|;2;Iq!7PI~i zwbp_;RB88Tazr}=AY4{%UzFR~}pl^q>j~D(|n~#@M*T}6cVBCH)R%f|lnWGGcSB&fj!Y0U)!=tN2ZrkCg z!oS{LU?CGfB2q$8@IIsiQ6dYA!5D`9%&*~$eCnX#4x7XS(h6?$V~@)xoOj(sg&@M4 zAXvWSvsVMjXRMEy{_PU0WTC)T-SzqFOcmJvT)Cn_`@j^bvFQ5%$pC%&vt+z}u+0m^-n~w<(?uA7p{6p=o=&90*dl)TW^NRWS#}WJjEtXm+Z&N8 ze%_0v*w5sZ8>LtnWrB-cRf^e3l(A9a_S6zmw(KH>9HtHW{A8g37 zd&LPMrZo|sDsLT&Xn~2e1xcUkJ%q&&=qQX+hB;0PomIJ}4&dq!g0qY}48KMRh9u1NQNjt7Q@(4ciQGByy5-{`rj$b*<1TTyMnL`q!+P{VdE zZi9v{(6}|(ZJz^-2UxjQb6lA#YtZxTD+>!JL_%MkM6MVnP`W9~A<6g?5M*$O>Tv@3 zfd??cjRPQnEj+Nh012z$NeEt%(U(2(SuRrpGmSDgM~MWsaB1uSRxFf_mL{tMOztM` z&vGCuQLUTW?Kfe_L!o%GWR*xc9*d>Fc2~?oo!ki!lfE6_PnEnZ|@F7uN76b{c*ETF1SiT`A`!xFcRO70stq*kmg zf)CmnBGSS|npcU@Y9xq-4kAm^w4;XFRmM!l8;f<;*{?rO%k}p4iRtj|>zQTamAQ1- zEH`e0jvg3C5D*ajzCIaEV|weD?Tlgo$)qX}?(Kg6`<+*zHEcZ%YAy?B4U3IN44M@l zn@#155C4caBBj%7Dskr8R=Z(09Zw+FYyZ3$k^Bhsd?1x+0w^_3li5BF0=7`RR#q#z z?Z`#nByr3X&=b_Kz|?~cgUEY*Egdq3I8M`3ePT=t4EXMj-*34#UhD}}3vY@YT^}vu zi9GAll$l<~fh&#}@qaWE#XIi`nKFKuj^~mJdg#>JL29Dp;Ihca$^_d=-T=R9SPq|~ zWObU5LzYV)@8sy)+U96j*OH1OlpzsJ!QO3bcbR_2o`J1i<})|LvU{KkxzHmg?KXRbwDD>XOp$H4p7lX`5ug2 z&baJV;kJC7{h2;nt}9aAS4}kW`z*-%+hWA7Q(njKUl7ftSj{v;zJ7B>b<}XN z!_C#IUcdHBaI@+97?}J~R#+}}hEdqWB`}XuSuNg}ynM&J96NwcDv*WaRLw4R5qwZkh(F1Qe7ezc6(GCI)y9a6DZd5>w!?)42 zXT#9|WBnemFLYCwf+4?fN;XC?3kax0%ZWj?`_m!hf)mW{qd$Ah8xl+A6Y=>R1WJ@3 zH>*8!%Z#mhil^NYVLRbp*|?p#eS!U4O(2YL!Yk&@P&rV3-ASN~8 zSX-tGnov27&NoZHK*Vrtr87zEsX_zb*`9(oUgw2wkWAO?SC1--e^I?N{7$?66nJC{ zWRvNRK^9yzut3RXa45i5JItR0_YQ2bVwM)QTW-KzP+eC4`*T*8(-iP_MRb!FGS8(O}yJHF!(F>pl%StD;xtgUO)JU1vQBRdL}5{U$3x zz-Ba+2Z_N57-3{5@9NDqMb~FOObTM+vYF#E=<)<}&?YeWWzltRDgwzP&@vZryL}$m z=;`=2GBEGjQ}r>&Oh5>@B|icOM9=gQxAWEBw30F+9CW8=gl4VqLd_Q|?zy0zp~Xe8 zBag7aNKvhkU)HL9YA{~x>Z6-vG`o&7g*yHUr!)bxMK=rleM~Ni{-u~DTBpM$ z5P3P>naO6bkyrJc8%mlh7NP8%$0!21D17!Bz|wFdr8g;La>XKlgIKI}ukMmhhxKQg z0m%DU9~twnfeXiKF)puDFOJUjJ;y59{4KNXgfVG;(9|0o7Wsy^cG1B4@R5ylh4tf5 zg4IM#vU)0fLRAn*opMa)^6VWmC-)Z?d8QZ0KirLa^?@KF4`mdE!3o0n zp!479PQ z(23OB$;?n*4rxK&-1pUdmk)Fh>U{crWnuX$j5L7zd)DTRp_AqJEX>oNfw=mnFB(yZ zs@hSLsSE@shmfy*g>#x@(f2ownw-HhS_>Dc=sSRUUb!NMFoEjd1`N2Vt&I-5*63WP zyV+sls4-%rFru0e#}KKFZk+m?*ly~AQ&63cAdC4Dk5ScFyss>lx)xS~#jz66J)#ZLlNeC(q zH4d5-(h>AGdeiL2GPk`La$svcT&~k2*<$GI;x>KYRBOGfV`OKS!zthV_>PVafDOzH z^(*yB@W-_3EY0SNYeRemu^o{lGEk@<=W;rP1<&43YW?Upx@pCVctM&h(oI)Zf?-9* zu$IbESyVD3Y4^_GdXG|qp!=hn5oY(-vQ=}xMi{Yx$>29=dZM8>cmZGQ-z#z$<4qH<4)w-(yV*4SA7sD{7oGnYrR41mvgdLLq@_6q6^0>h^#!cHKNEK;Iiw;3l9##=*0tp!8{REZDU zrc>X2)Q8Oh36K+Ew4K5q8TAC~vtBTHC$pT;loWW~3zeguBG|x-1zW8iWa4yg@U5dnl71A36~n9a8`p zr1QBxsNbgW2?aV(*x)<`0g>g!+LLEJw_<@rESW@%{3sbf7GZi76SneWmNEb0_{%T? z(1+Jqg@jX_e*q9M#Q*ResQw4~Ta7Ism677=27N2Q@qYmr|1aU;zu^puz#GG2wrKW` zMgsnc`&JQk?h zQdrIC9{E5nB`auZ1|sffa(HQT?j0Wk3u-MObmy&xuG9o@d$qO#4Ll*Ar72jC!KzCA zDDnE{Ua!IKHn*-0eeb3?bQ@T%74!T)eFEomndXlqPS3_{MgyBdFscr2vp&*vG@pL< z`b9_4r=8RP+Y0~%LmIygeZ~y1CawX;tKK*rWjJBbd4tC->d!Q8XH13c27uO4gH!vN z#>Z<_yd%KjbXh3e>Gz%eq<=3RpmGnpE3426%RR2HH;;~%8;qdw>9kr&fDyd$rEXK> z^Nbb5T2<*TnSs<5j zxjSD1Zt4>!LN*JX>5+VVU%!H-#QXTyuWMFD`McP;|I!(zzrzp+cs$&keX8_$q!Hl) zo-})Vcj$M#AR{iY)4wtsa9lk>zFvlI2H0b1H#!W|mZ(L%_5u^DCNOzeTFRf@mD_b(fc*d>Gk-rWvQuw?Ypz0a`cIAQ zH_3Q7?^tpvibvJUZ|{~QGI%&?NSrfxCNjl`4 zl+Z+9=*_%t{prZ}NQmPw z8{%tya&=&J_x> zzvz`061h!6UAMr(dXNDo(mV!U9|OFQ>k(62U#s$Ujtd%j(F3xHKo;@96YKs|bIFc< zQG(EwcJ;kv`L^B@Y|D!`I-?RW#NI?8ki92pC6cNabew>0f&nlx#TlKSAn)gT+VqrZ1Af zYPIzUXhVP?VIK(o>m?=u-AbIoh#dM2!ozKA_gmX0@OoS9oMfXI4FH%MFh^|8gs|X% zT%g%Cwyf+(N=&S*@Kl!9c4^_a?-8goEM{$xyEJ)tdENjy)%JNlG!ns@#X5n zJ2}uB{AZqiZR~?bJ_+XOOoAZW>{$>Z9}Yy-G6_8Mtu5}E+#Em{m!%L(0kkBy$uGLh zCc`Q!PC8yeA0C~|FE?!d`jtpwwE%k97}T0m@-7@CKQnoQVg&T#hMyq^&fb4T5?A1^ z&~FFM&JCe{7#J_r)B&Ih0Oe50 zrTDxa)bk9+)`-C%Y^LvPV?%=gtJOlY1}J6Y+#A}w+dOWofT4#Z63AlAmm6h3mn#b1 z7K2}-#e6$`vCft#IUG1NTHJqU8GqI;bvXm<2n>2{^%x6#07P&>7Urf?{w_azygY4` z|2Z+9Hi0$-7;yiJYm_DLM~$1BkO)}h@hPQJEH}0W8WAzFjAu%9$@i)Lg=mz%f#n9+ z=U70BXg2JDv$tnfU=_vvzNcN&;2x4l1Jofs3SpGs@~X?qX@+`q+qj0e*i zfMOP`9#sR%yRtj}021b-{c`|fnabu-=J2R(+D#WFUflqX(kbkCNzZvWu}_=v$xnOd|G zw@B~mm1*-C^kQ=a|6AfCu#jv;`hqJ*6l{z@lzNcbSCzv#p`b`)O1X5N5N2e6V(#w(?P=wVbAs8 z_gik~lcLqEY}7@7Sj^z}e!84jx(Xi#)pxm0btBMBH#wb{jaN;N;IUtRd(Ck8Jo5I~ z`)A~h{LVk72OcZ5i6vVV?dOBAUk_Y$L^D z0$z`;n+X(KuP0QN^|_v&kGoMF!O$HbM1(SKm>CREECJv(jzv0!qhnz2W5YQH(Wn5E zdaGr!9mA(j1x{9r9|8{+Y8Nk)t5GQ>c`PWDx3jJgvh*BHXECd6{=9tUe6k#5Dd?8q z`zrJrII*ifjegy!1X@gBRC(UeOzu2Bx?k-#SRJTRr4^23cLfSqAJ4VE#Z{N@eG6`B zLy7c=IPcM4;<8x=w*#q*(t=+KSVWb}wQ=}6V(03-y;~45kYvF|ULTi`+xp=Yg_OU( zDR=O)+~V?fC~>wzr>8PGIk^yb6LHP~Oc$q%W$=RUL0GDQ0x9AcdpG&!$n=1O5;xVK zaid=RYQBv3B7;YZKi+bD{y+=Xd-%1O#U|(FM&}BxidJigF#_N#6?Mu&bvRjIjpuRR zja{XD(5d19h?+@j89&U2&>t|<=Q$a00?~8M44yTjsHy2 z;(m>(;+J7C-Wh;=ede%v48Jp4qR|4}3TmeqGAOmVEF$^rbIoR(06~~tDwrs0c6l(_ z1l0B5CjCV>LLUfx{P%OVhV&nc2|kcU@Xzg7J?z1VoPg!j8~xHtm(=39 zJlCvx=LU|uC8=zs(x?Dr3zw?@Kv?gK$jri?n#{j9TMLSs1)_>zfjVBEZXD1Pg)wkR zOr*>^`pe*mCOW_f*LszTbc_)v%LDp^E z&*bFf#F)HUa#pkFtBI_-Z>dpDE|-BH@B`S=0Z9v#+$GmR;G*bV1sX>{IK_n)2}7U8 zZOo-pn)#vA6nJ$Y(1p)s$*~U~(+7t4wt!|40^rXb9Z}grfL!(x1F{jWbQahP{m{R5 z17zI?dLMynaPHlta!MtD3MF4ARdt|hugKTI)Xa>!bjmm4U{>n9hESmsv~zW9?LLAI zslHw!OW^M%sYJT@qr=j<1`w_ITW^|15-r|X<)tHw#m}@fPF7#6G|Q-8Y*q^}%=~f5 zILzNR_xEcL^nDVx^53BD;U(ok!I7Ec>|+XZc|4Ltx}fargZ^=QUPMwrml*TBbNdS_ z8qlEDd6CVgSp(RjYfe-K<2AUf*5?2akG==qRxYRgJV#OvyzGVSG>l}qlI+k16;rQM zUO4BMdFu75YY80{HHJcF4<2MqPOPzn68-7Viwio9ws;)>Q)lT5Pj}FyG1cr%rIo(9 z*oH`Eah2>43_zyy^1X=>O&kSO^87*2KB*%}PU9B7Fj&kM{jOfVP?6U_TRKI}@xXt#_ z4UBV%I0a&;0Bl*@s25%(IsA>lOYgV%8IboS0J=ik$Cz6@9p4p%G&HW+QBL=>y$WWL z%<@-#G>}-v6)93TN`5EWjG{PO3DBq!8A|BCPbgcw4D@Gon7XSsT*X2YIpvy#gJKfr zq}R@4d`*qz3d1+ZoM$#^{L4S$eH&p4Y99TRZ`&Wrmi5VexyUxK3zLfHVig`n$rUw& zlxGntG>FQVpGCGMqSkG4Qb7nqZG`@URs!aDV~hp{Do7bV>-c6-f>roR--{H#Fbm&R zE}@CPque=4t<&r<>_xzxf-b_1;Z5lPwG5Gu04Zt)Eg1FZSOuS*6>875t=F~-q&Hsq ze>Nd0*ox0OU^gXd-Kb+k$h}-sF&9cMEhmV`UCYOJ`YOQ_y2IpF#$R!Ey*ZNs!wSCly$%h?8Y%ZSpN#iAK4QaSCbM zN6@`rFYCqe{nMj+?azu!s1)d8;Q>(EQ1hcmW{Ia7+dbl%KXkC!Y|245hy7E8$oYXH zMB=${fCK(uDB;t|0$CN%1y$T0l;@|{X@t4j9Nd=rjFOkwrx$=L<(a#3Ww$nF5X^u? zuoQ%7_w!JLaSApSKMx;t* zImv#aOzM-e-s110h~Nd)V%F&NbQUvOF!Ja607m}VUK|`8g>r$08qAYQklUEJ<6yJ# z{^L(NGaegu@&*mu5bc(#ixRaI?GM#`9a8`H0z!O+L^)xTAC9yjB=F?c`r+8Nr?IdTsp$W$?S+Qf7_F0sArN1rdl(2>l3Nmv5s)HS>$ZLi#ZEbCZ3?B(# zGHkQeUTekg-zpS$Yni6QIz`(K={@p1mx7N&%-9=uDt~zXStND-E|L(orM_-z#e@o| zOdnv(MPt9o7|f+In!R6XlIQG3P6v`()gn|^iwhw)sdt+Po7JB?d;vcZ?rO7|j(NSM z#5tFXsib>pSQ`%ZzuE$D7h-c941oVdDV#b$ZTP`OW^M5)|&=1vgvPjf6Ye;h+vuh&=BFt)|i0`hZxD3v7u3IBAfA^ zH7|$J*jb|5K;+M5RhJB6N-W2Rfz-!4Q)sPt#XRKRJH#KZc-~xsv)m{km*WNSIV`l7 z!j~|I=NcZIK|r!>B+7Hj;`6_$uAwHaXbmv8|3Erbq=hsHW%=vpPuv3{e`b$>VIY&| zUT&AzMiD?Fm*E@mi(m}|2z8N-03)Ij-ZwNDh zjxlObG+TTTkOqi{JM=lhvI}a!Fth1|p2fokM;!{q*t@T?#5+B2_dT-|tqt z1u8lzCxY#p?jcOwE~p)qAx12BTrUvF<-)_<&$mL*H9P0NT={;29uRc`5txR}4WY^W z;%(6wI>5N_-s1))iD&HtYY+jjWe&*l(OHSIfT&3{@K&m~om6tK&aw zjA#ow6oG`ny9r1bt`-an>6o;Y9IP!=%T!O2h>xwCY4XL1!>{lxFW8&y= zwE=Nf;EfB=4>#w4;khWz?F&SK12uC{VCFQtfsJ92x|GH zE<+(GbMwn6>@6O*?{&9;>wii{7tDu$A<d|qXf1rGz@LTX9s>qX)-g2Zd2f?6UbAIE9Tfd z+Ad3DVrB-#6#tuVa$uA+O@qD3pj(s9YhjYA`p)*+rn@;tPC3#9I9 z$xRh14ar@MPA_ENav#pOz^l5ld{KRuk{h@1!vea5Gq3WQM8LD2rA1cp!~>KArZQlu zA>=S+Y^DE)4^apK1RB9F`2}8KMnkKF7EqSwxP}vOztIDhXy2GW6gJI;)`j1{)>%&D zLi08{a)0;c&v;)G`X2^`&7i`<#xKcy=*2I*ydr0Au!K9#GCuBms$AxXqkCmq?AgSn zdUZf}VE9hUY{vTiinam;Xlh5X?00Bt3qqUu#-yRb;J#pm0V+tWEhsLD|M@wm$))Z&ew z)k<&X8znbNFiQONGwG|?#Ms0Z0RC$|gT;0>a9LJ}%t+{cFyh-&t3aGrrD2a^#gl&> z%E~8N)iO+}TJdvw%P73K|K9-obxNm5C~%J3pLd5yCV}>L*AB1g+KcUBFw8&S87gSK z2OY=m^9qQM3Q~K0Np`l)Kp+Uh??zLZ#gcxJyB;l@jHJLDajwJx3X7jUF?~F}j;JLB z)qv9~0k7K+^LfDr$PKYC&vt)fq4EFB=Py%uh{-=d`mT`-Sh)RXv}?#Q0wUet5OU?^ zL7SXRTg-fY%dFY_L_UK2wFcbx*)o2F#8MorI862;0yhSlyML|O`Y^FI|J|6vW#qyGS>Hu8$j=X>QV%oeJxbKeUOA^nZ5Nd_zTVGi& z|7iIbwlk=<<+kiLGL@dpzoTu2nIoRq>NbK4kff@;wvdb3*|~ys=y)8y`_mRI7UPBw z^_7Es&V?04lLfg009dMJY!3_@)82GyP*KYKyf@zA{N-~ zLOf-A_8}xYa#(X#k>Q(giUzH;>S#vk=Dbgl-tRr3*rjoorINU0o#+xeF5K1=j zEB04w0HcvXIr*oLL-EYYZ37@(F8?fbqB(-+ZO3of&k;a?_gatLask~;7KD+)Vgiyu z3+;5IH@Yc9)HI#6?h1|Y+BRHeFO6)P3x5KFZ{1c)s@4XXM9ogPWR)2*!w^XF+S8qY z^x@_6xIx7>9gHc(%>?Kfg8`%935tP06&MvpxfE1v3KbZ|XNZB7ri+fgjVM9Sej^2h zACobbeV3Awv_yOqM=XUDl!gqBJ^7Z7NG;=AmpLLUq0I1dX2;hJ7pJFRx+vW)qi)Uk z-Q05r9ZCqOXO&Gm{R1^2k73A>oe_E(4cvTAAW`{KqR{O+SH46TN!s_s!o%Vr*}X2S z_W!#3&$NF!6=B|H4TD{mXL%py2MuWuH{#4a*Z$ZU!MD%%xn2^LY$zI^|{lhw91Fr)=VBcK_Hr*mDMy!Dj>&mF~|#=x(t^y~jZV!Lw+2_0Pj zNd*8=1B7i^RvZ5vEhn_MS8RM~`oHK{*uP%>r%xxcYdMAY{9lm1)6I6;5pIMy)6l>a z7A0${eoIK!bhHi)^15Lw3eU+P5%Lcq z_QDUy1PzUZ!qNL43%$)@8xyaK#pJ8|^i_OeVPVzIOTXafuTtS&tT(7A;49kkbjF_K z`O91bF0oO~pXrh4`MaD1^6HYNJt0-)9L%7b1%cCEQ$*YKu$j3#kglPFFbv4Re!cW)}OF z?zE628SFoPqHw?cfdw9?(3Qr~@zoCza`Q7eQyh*S3)Q567^=ty|28JJ6f>(9&*8E* z$g>-8%sDgDOIo9;%Bq@{)=2^9Gi_Acasd%0np!rQc!mG@8-wB4I*PY)wx$AhuSBDrUh&)H{*{}S38(CCeG)cONe&fKe<;UF%9g8b1N!Bc5Bjp__ggh_b&hbP*LbSA; z$QSl#n|ld&esQ&FUsa8JPtc=*01w}Glr}%F*5hpmJxLgk9bzL~=vpl=A}jktoi|+I zD*UT9uX5F=iqy+L-9Pj(ZLyg{EzAx-Q-G78#B9VmNT=yHl;hq~^(SZQ0F+ib4Hm+; zY%un$nj>lKtF}%~Pah}m9;4mkB(FC%auRi2bA|eT&f3{0FzD4mdp!^@N zU_Vwr1SceIt!6+cMm5jP>E=3$&_PAd&!6-=pTSsQ)o_5O7VeSL$hygXt8j5+G+pCr zRSrbQR))GCr*ds1D0D_>wwQQY9#(>4eCOA8-&=mp2%o(+nmA9^&jjt5kD`D?O^y+rp(SZ_YIenAD|4r!F=+o1AkKCxo*-a(3e=(C- z4lQl%^$L5f7krk4v(>7hk%fKB9T%Uc#{+T)*48gXIK1#}cy>wpIxO?91eOmf+)on7r_$9wC^ z!OLqjcbffeNKM(4&GP2sO7pCA+Km#Um1>D;z6+{Yb#;cU z3Lrlj&is6`rI6c4z=Q3$?(tAP+7`Y~z06y#re@R|HTGSMAk#qIl?-oQL#^q0H=od+ zmHF{PZbk2Ig;MYcGNGjP!E&G~5|=0K@A8qe)9Q2@XjU7K$7b!d*Yk-yp%2HjJ78$# z4}#CrQ(?=;d~%Th$Y4OF&^z4Q1|hXGCv6&6y{Yg+gM$>ye_ou24h{~^>OE0*zA0E> z++7#@<1_a9*T>b{*)-^H{J2cU>H-3MIcUNWtnuTfJHuMR=-b|UUQVYU@(k{Xr!wxn zjaDG||9q)8Vk&97r=jx@f2?)b$M;{_9H-16zyQv;LEfaN zswb%jpjYdO&(3~{h1a`Iw4mjU{yo9GwI7eZL^0MN-TAI~UDWzt`~r)I!o5>20?7$; zfvm8|u|WOri4vRUht5AE9@dyS(|5Ej-U~vz2lbAZM}9$XY`#PKFFYZG>^Jv&&WaY~ zxz?^NYNU)v{`={{(bQP452~uaQ*GXPY;R+M)CFo=Of=Sc!dhsJzNR5Q!S@Z;N7wuw zP3AKt_B|S4{t~K>>r)@n8+WX}6as=0dARMN&O@n{2r*OkUoSK<6oYWG$GhJsbcmc7 zzYVr@!d5bx`0cK(jQScHsDJ&`^Urg;pBb4$JLP?<-&y<~oINKYf4CfA6Ur=lvKr)R za@NNGy|(uL#_uEd5339o*A%bHxe7*7r&st4>Q!FGt7|Vg7^54BBvzW-`;rz2s^zAD<06j{4q+Hg;xG&-oZgB|?|iMPXhTbJJ%LYsl7icn5?( z`z!yRDG90vj~pQJHYn)6-RF@!!3JxtW4>p*jI-hrp5V(?$L#2zv5v>->FERSQckqY z)Yu67Y1dRH2dXDM<1PE)cPW!XkwZK%|+)J7(y-)KI6%X2F&e9>W zLkfo_Kt|PW@|j?rgSbJkTvZ5vyBv3{<(SDjQSF}O|U zvAGc;0q%xlP5GH33X8E(itY*t3Pvj*=-fBDix#a*_Au=o9Cnu)V)r^>X4oGtFT!!; zVBQfmvvGD)1o;OR4fODUbhi zi{3Q=7?gXg(){n4Cywhac%TlCj-UerLuQ4uD_$*IV1KaYp`s(%QzZEYcBb1CJ@6q| zXvetTCkc9NYhmINvMG0Kq#JhD`;&5oW`Ex7>Vxn)jfo0~CTk?WawN2U!k-(*GN3Yj zC;4ZgV@84>S+Gp2?QA{hn?&R^$Y95!)ATy)yj7x%^sYA?m}J&N-V{vxh=oNJIF2_{ zCYt8ZR}agfSJK9%C#So3ku|9@KmTaZb#>iJidx)e{`m26!-@bVX1_vY@7PD~GT+6; zC5K{z^?1Y3roj=xq@(@&I_cvp2!A|Q2h;8aR=vJH%2M5Gdj7Vx9;}pOj+i;qz`!LQ zL4tFyyJR7%X!TAW}4NwJAcs(tcFZnce>Wwe*xQeWKd_{*Sl!U%XbwMkkDo zBtgoIma3++k+gw9^j_yUG!i#Qe^-}~43^MxjpjS3yrur~g4JoTirfs2VN`ky2zq#S zi7kb`yb>r zUbbJ^sCa8BZ)urUuE_4NtG`!GH2CNEARfjIAPE6yBRbQ$%%YA!@MyUNL|4(Pl|=US zkkAkR{3(be+P#)~bq$B7NV9Ca;&xDx%7_7X% zPmGfC47NGJ%7>z%q0!CN6%KQv+Bp+kl~EETUsr35EUq(JBH)s&rT3r^V7~I=s%dJv zop0@J7%JIpeK;u7Yco6Fa<{!(y?hU1-RkL|-wmVne`(x_6zSv&deqXMZlNy-b0C@Q#M&^6aV$E5bTTD+8 z=BcPOhKJV>KwYQ%6(q8^;$DWXp`|n5on0Y)@_F9A6*{`{&-|%5d!mk&P8%w%5bBe? zy`9zdG^2p1005CUaD<1uyO-^kVr`nYoFv%(D3QFk2%*cI)(|;=z((Qm;Q{6KY(~)! zrts;f+Xq@bkGq#Yiw(EBC6u&v{ZgnOAkZ%?O1H?7V%BB5e!R9A%?NY0vpc`I@O0WipnksZt=FOb zQ6ltsy?C`y>J0`Gt84TE%b!snv&AwW)|>vAshWS!XU=eyE%fZ49y6%(xb5jfJ89A5 zS=XtHT3vAMewPb2G~_Wg$)h91s}O9p;l<|B2PYu6Jk$Lsg2FQMM@dsXG-DGx%43i}@|qjBCo z?X4SR`x@_dyF6~E*bs*7j-`s}ztHG-aIM(D6VoNOz5y$i@Ebz!-{EzUqlHXHJv_{Y z{oki(so{UM`TXcSdw-Exjer&QxW9>%U@)+2-Y!c{|7pQ5(&P64TzGev`!kcs*2lZe`U5PUtd3$_FIzRmm`eLlUPd=@X9ZgPLv=6tS!<^sj%{qC&eHT=*Kb5Gi7RSmbX{EF7(jY4L*G| zS(@?|e>~$rium5O>jqn^xqWz;^M~>$a$;f$V&9aSg2M6I8Ws7Lhz*o%Un}E*W38su z4P)k=g~mk}JFojPIx22LZ0zH4Cp(Jk_05q7r)m&$pG-#OOv$P#Ng9!uOM&Iq)4~pm zX6$xlrL3&?oKSIb@pqAk+Uz-oyj5d+t@fJUg}ESABtYSbAwHsK+?mhygA3{+Ig zG|SSzwkk%w&^!atD8tdn+UY~J^E=%AaV_EUibh**%$wTZB#oagirJCJ&hJ&I@qG8z z(=da5FL8)UoAB<U%=zo@DTHI=lYrAo^5;WHaCH}m|^>|uHYxP-#BX$za?iZR^y?=JVOxULxm2t~2q zhdv;$vf#k8VG>Ul@Gn}Smx3kVE)rCkA^fimIF4v^@okRxr7h0qix6WbOl1<-2YFw| zVr{@fg#`60zSH-dL!N91(ywC5zqq_Ktr~u)+u`7n1uK_wlk>^# zZNbUOg2IKDtwTljD`9?EtB)IDY##FQx_;cL4fMJk3@a>pnF^T8bL-O2ZJSBBy`a*B zF;N6U+XJv<<;MxP^|eO{8mWk7Mhf8<}J8 zJzjBPU|~og{g6l9W=cF|?-gY(E31oaxT+%}&;zexs?k!JCZ5CCTWD5@)%Ac=Ij+R6 zT5(7+3=;OUE@owPZY(7IH=D`-?ZymgH(#X%2ltZ6eF5S|kK+n}ln9$eLh zpqp&_eA-LUY(W`oQHx>Mko!USa@LoS{h=EcJfSh?h$lq6Uv6w;sqpat=zKkypKk7q znPlRCisP~%$NNa%o)BVl>#%rIrFgK^6P6oAA*}PiEhdHPJqMMIOvshC?9cWLwA95@ z=4lw#&2VAC3tVMCARY<&c~3Vfo_kRu8esoa4LV*oaV1h=@E67Z+Z>B4ALa!o9Nnm) z4WYB0)3yp6I5u!}zNOo`9OD1{zu&Nh@bCYG5f$sFmPvm8r%$JuFkF5d(lp|EL+H{0e>XT51tUbZ<7D{eRTY3t=~V-ME>_3 z1;5lx$n|UCX#e+#W={5?^|=2zoS8HC6EVRFmFJ}fJj%oZ^iA-qwgSRst~#{8KLQL% z?*RvE)Dq8E@qZaTfaO>ivP zp;=r~L8&LfKt;E|QX9)U`}c9lXy~bB8q@Z7cjpS6*|W)Y+UUtB^7V<@S7%42drDoU zhLpFrFrbuqK_p(G0D;zZx=lec7y6$ZgA+&q5+)+nk5{i3QRZ*)@c~ z?&9C52;IhO%GZ_zB)6mlOXz z7aI_ScH5o2K7ORRjN01TQBzTo$>btnIvuZP4%T-*;-0E=c78n}TFv0;z5Sh-c+pu5 z8tUe!i$`&Ky47%{lES!HNlC@Mi#yNNT-^CN9Nnq8Dm`Yf%H`oo4vIP}?_Xs}Lxq6?>D<=yC?TeLxzoS*RP3$P4JR1CJSZJUyUYXAIdPjFiYP4{Vc%gxk%lJcP|0^c!jOzty zKy$tEmjcZe>LMJkR^8pN!E)kNwUw|4r$R4TxS+P|+;g{oZSA<$(~h6`=oWDIB1jGO zW8#_-8N+-lp`ph|^l9@GljUJ_)$Y#HAFiX^7eB6j&=}?QItcz8FKK0=r9=)SULJS% zxBZ8fGPD1jjC7*JEWI9&UEkWBo@|)jcIP=tVVqqe*Ih-Zii1f8!3y3Uh3DhIi{sK?sY%=k;4toDJ+6NyiM)` zjGL&fU@T;u>C?67`Z(G>2EO}UUgt;@^W3vPo^|U3Vif#;hJ_ZLL~&HJyxVkrSz_Gy z6&0CLuDx%s+%Bo8(SNeBbrxy`9)9I{iD&KRtNx;Fb3NqMdcAZvy8@ zhp!)%h7HjL zb1O*Sksc66$_UiBKDv!iJM!zVr*f31C8>&T`rtB@m{UpZmDH8=x4WXO)%%5hoWqQMx z-uxA?&eN~&HeQvEN#D))G!h|EE5)hvx{0(+jkJhcNQafb39qyF)uUq-xGxoWrmbVe6+tYDhZXT zuq`ftsF0reozQF__(>QoWN@`JX2{6P=w5-~Veqp4TUlk)OZ*Vp!g<((;@;n*RJt`?nYVZ`(Ziaiepg z$A$|>7Q6Fp6%_8UFA7!oT9mb+Eqrs4LG_o17E`_cKA7_H#Z!k}o$uLfjguIAB6la= z29_-gnSVbK7vXzTKRKYdz3$D6iOyfR4P&7t>?7exd~%j`8qZjm9>m!;S(Rp_OE~fK zyo-$s+*o$_+mtIkezMGS=g0^;#rt_Wf4RLh_&1yQ4)s?jR&M5;c+p+`j_IoE>*qYu z%<}KIFA%@@qxHxWL*;gbP=}7$1%@}zA77pPyWxZ5!8Sw7YeDrhImPwmdn_BzZq`w!HVQt)kc>+a!@^iO6L_+@QvZ92p9#q@@M zvySC8IodV1oI8ElIYaWq?F*Gji>jQ0O;td(i&1wVM{kGt@}sKftgHW3b3e0FpMLsl z@`aa;Q=IoGa4f&|`BS$DSNhJqIXBx^FY}kYzp%DJK~c@TN#W+fhu=dbu5Q>i-8rqI zn(5Voi&_JsD9FZ(^u*s^dM?i6I7Y-+NqA%gwzLRxXcgosnRB) zWso*iimK7QLO*a*<=V&J)%IWfABb97-FWQ3Vy~}D{c;ZV!l2u;maJZ-7aS_#H|gXX zk#l@=j(7r*xq;`3@AXR)KHTx}d!*v`XbGG8)Rm@Iu~Q$aw019E^X=iz`uUzo*&U40 zcPFp!S!52jR;l~IOxYB*M>iAi{dR=3k3RipU|{(FpL5Z%!$1ZbsPW9qAm6U>FV-qR Q7%0Nv>FVdQ&MBb@0ErgD`2YX_ literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/28/results/mcp-server.log b/notes/mcp-apps/experiments/28/results/mcp-server.log new file mode 100644 index 000000000..33fd2f37d --- /dev/null +++ b/notes/mcp-apps/experiments/28/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 0d5e70e39d8b47c4b8f2a324a365295c diff --git a/notes/mcp-apps/experiments/28/results/reference-host.json b/notes/mcp-apps/experiments/28/results/reference-host.json new file mode 100644 index 000000000..1f25c8be7 --- /dev/null +++ b/notes/mcp-apps/experiments/28/results/reference-host.json @@ -0,0 +1,111 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-28.eihQQL/page\"}", + "rendered_input": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-28.eihQQL/page" + }, + "inline": { + "viewport": { + "width": 1060, + "height": 332 + }, + "document": { + "client_width": 1060, + "client_height": 332, + "scroll_width": 1060, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "fullscreen": { + "viewport": { + "width": 1068, + "height": 806 + }, + "document": { + "client_width": 1068, + "client_height": 806, + "scroll_width": 1068, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "mode_control": { + "return_visible": true + }, + "axe": { + "violations": 0, + "snapshot": "", + "report": "Found 0 accessibility violations:\n" + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "screenshots": { + "inline": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/28/results/full-page-inline.png", + "fullscreen": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/28/results/full-page-fullscreen.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/28/results/reference-host.log b/notes/mcp-apps/experiments/28/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/28/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/29/README.md b/notes/mcp-apps/experiments/29/README.md new file mode 100644 index 000000000..cbb8e74f3 --- /dev/null +++ b/notes/mcp-apps/experiments/29/README.md @@ -0,0 +1,33 @@ +# Experiment 29: Comments and version travel in the full app + +## Purpose + +Exercise the two page-level systems most likely to expose a false “full Leaf” +claim: anchored comment creation and navigation between immutable versions. + +**Changes from experiment 28:** + +- Give the decision page two stamped versions whose opening sentence differs. +- Create an anchored comment on text shared by both versions from inside the MCP + App. +- Navigate v2 → v1 → v2 through Leaf's own version menu and measure the anchor + highlight on both. + +**Expected outcomes:** + +- The comment appends through `/api/event` with its ordinary passage anchor. +- Both historical navigations remain authorized by the partitioned session. +- The thread quote and highlight resolve on v1 and v2, while the surrounding + changed sentence proves the document actually traveled. + +## Findings + +The composed app authored the normal sequence-4 comment at revision 2 with +Leaf's `{section, quote, prefix, suffix}` anchor. Its quote and one painted +highlight remained resolved after navigating to +`/versions/v1.html?pin=` and back to `/versions/v2.html?pin=`, while the changed +`split`/`extraction` sentence proved the document actually changed. + +The earlier full-page evidence remained green: both display modes, zero Axe +violations, the visible return control, and the Redis action persisted alongside +the comment and version travel. diff --git a/notes/mcp-apps/experiments/29/commands.sh b/notes/mcp-apps/experiments/29/commands.sh new file mode 100644 index 000000000..990f3294f --- /dev/null +++ b/notes/mcp-apps/experiments/29/commands.sh @@ -0,0 +1,48 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/29/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-29.XXXXXX")" +page_dir="$run_dir/page" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$page_dir" +cp examples/design-decision.html "$page_dir/index.html" +./bin/leaf version stamp --text "Baseline decision" "$page_dir" +perl -0pi -e 's/The monolith split leaves/The monolith extraction leaves/' \ + "$page_dir/index.html" +./bin/leaf version stamp --text "Name the extraction" "$page_dir" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/29/observe.py "$page_dir" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/29/observe.py b/notes/mcp-apps/experiments/29/observe.py new file mode 100644 index 000000000..adc5b2de6 --- /dev/null +++ b/notes/mcp-apps/experiments/29/observe.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +"""Exercise comments and immutable-version travel in the complete app.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + body_call_record=True, + tolerate_mode_control=True, + exercise_comments_versions=True, + ) diff --git a/notes/mcp-apps/experiments/29/results/bundle.sha256 b/notes/mcp-apps/experiments/29/results/bundle.sha256 new file mode 100644 index 000000000..78fc104de --- /dev/null +++ b/notes/mcp-apps/experiments/29/results/bundle.sha256 @@ -0,0 +1 @@ +35ad0d03b91e8903e7132e8916172f78a2b9226389e336addca8d2f53b23963f skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/29/results/full-page-fullscreen.png b/notes/mcp-apps/experiments/29/results/full-page-fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..fb89b282dd8ab857e644c3b977edbd762409fcd1 GIT binary patch literal 122827 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Ξ_Em-jxC1B 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 F{!hnaEdKxi literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/29/results/full-page-inline.png b/notes/mcp-apps/experiments/29/results/full-page-inline.png new file mode 100644 index 0000000000000000000000000000000000000000..9afecbae21eeb343d632df0a52be6309a478b1d9 GIT binary patch literal 55994 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

    -

    Waiting for the Leaf page…

    @@ -328,11 +325,10 @@ field.style.height = `${Math.min(Math.max(field.scrollHeight, 66), 240)}px`; } - function showStatus(text, { error = false, handoff = false } = {}) { + function showStatus(text, { error = false } = {}) { $("status-text").textContent = text; $("status").classList.toggle("show", Boolean(text)); $("status").classList.toggle("error", error); - $("handoff").hidden = !handoff; } function applyHostContext(update) { @@ -398,11 +394,6 @@ showStatus( "This host shows Leaf read-only. Use Full page to leave feedback.", ); - } else if (leaf.delivery) { - showStatus( - `Reader feedback through event ${leaf.deliverySeq} is waiting for Codex.`, - { handoff: true }, - ); } else { showStatus(""); } @@ -482,69 +473,18 @@ $("comment").addEventListener("input", sizeComment); $("comment-page").addEventListener("click", () => { - selection = null; - $("quote").textContent = "On this page"; - $("comment").placeholder = "Comment on this page"; + selection = captureSelection(); + $("quote").textContent = selection + ? `On “${selection.quote.length > 150 ? `${selection.quote.slice(0, 147)}…` : selection.quote}”` + : "On this page"; + $("comment").placeholder = selection + ? "Comment on this passage" + : "Comment on this page"; $("composer").classList.add("open"); sizeComment(); $("comment").focus(); }); - async function handoff() { - if (!snapshot?.delivery || busy) return; - busy = true; - $("handoff").disabled = true; - showStatus("Sending the durable feedback to Codex…"); - let contextAccepted = false; - try { - try { - await request("ui/update-model-context", { - content: [{ type: "text", text: snapshot.delivery }], - structuredContent: { - page: snapshot.page, - throughSeq: snapshot.deliverySeq, - }, - }); - contextAccepted = true; - } catch (_) {} - const intro = `Leaf reader feedback is ready for ${snapshot.page} through event ${snapshot.deliverySeq}. Process every event and continue the review.`; - await request("ui/message", { - role: "user", - content: { - type: "text", - text: contextAccepted ? intro : `${intro}\n\n${snapshot.delivery}`, - }, - }); - let contextClearFailed = false; - if (contextAccepted) { - try { - await request("ui/update-model-context", { content: [] }); - } catch (_) { - contextClearFailed = true; - } - } - await callTool("leaf_delivery_ack", { - page: snapshot.page, - seq: snapshot.deliverySeq, - }); - showStatus( - contextClearFailed - ? "Feedback sent to Codex; the host kept its temporary context." - : "Feedback sent to Codex.", - ); - } catch (error) { - showStatus( - `Feedback is saved, but the handoff failed: ${errorText(error)}`, - { error: true, handoff: true }, - ); - } finally { - busy = false; - $("handoff").disabled = false; - } - } - - $("handoff").addEventListener("click", handoff); - $("composer").addEventListener("submit", async (event) => { event.preventDefault(); if (!snapshot || busy) return; @@ -560,7 +500,7 @@ attempt: attemptId(), ...(selection && { anchor: selection }), }; - await callTool("leaf_apply_event", { + await callTool("leaf_snapshot_apply_event", { page: snapshot.page, view_revision: snapshot.revision, event: leafEvent, @@ -569,8 +509,9 @@ sizeComment(); $("composer").classList.remove("open"); selection = null; - busy = false; - await handoff(); + showStatus( + "Feedback saved in the Leaf log. The Codex adapter will deliver it.", + ); } catch (error) { showStatus(errorText(error), { error: true }); } finally { @@ -584,7 +525,7 @@ busy = true; $("refresh").disabled = true; try { - await callTool("leaf_refresh", { page: snapshot.page }); + await callTool("leaf_snapshot_refresh", { page: snapshot.page }); } catch (error) { showStatus(errorText(error), { error: true }); } finally { diff --git a/skills/leaf/assets/vendor/mcp-compact-app.html b/skills/leaf/assets/vendor/mcp-compact-app.html deleted file mode 100644 index c3b6a6e2e..000000000 --- a/skills/leaf/assets/vendor/mcp-compact-app.html +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - Leaf compact ask - - - -
    -
    -
    - - - Leaf - inline ask - -
    - -
    -
    -

    Opening the current ask…

    -
    -
    - Waiting for Leaf -

    - -
    -
    - - - diff --git a/skills/leaf/assets/vendor/mcp-page-app.html b/skills/leaf/assets/vendor/mcp-page-app.html index 683524c3b..dfd8e8fa1 100644 --- a/skills/leaf/assets/vendor/mcp-page-app.html +++ b/skills/leaf/assets/vendor/mcp-page-app.html @@ -250,10 +250,10 @@ diff --git a/skills/leaf/references/event-batches.md b/skills/leaf/references/event-batches.md index e19b4da54..da0032f3b 100644 --- a/skills/leaf/references/event-batches.md +++ b/skills/leaf/references/event-batches.md @@ -31,11 +31,10 @@ retries the same pointer with the same Leaf delivery id. This is at-least-once delivery and may create a retry turn; the task applies the page-and-sequence retry rule below. -The Codex MCP App follows the same boundary without a wait process. It persists -one reader event, sends the complete pending batch with a host follow-up, and -advances the cursor only after the host accepts that turn. The app owns that -acknowledgement; the receiving task processes the batch directly and does not -run `leaf wait` or `leaf ack`. +An embedded MCP App changes where the page is drawn, not this carrier. Its events +enter the same append-only log; the detached Codex adapter still owns wait, +durable queue acceptance, and acknowledgement. A successful `ui/message` response +is not a delivery receipt. If direct wait output is truncated, acknowledge nothing and rerun with enough output capacity for the whole batch. After the complete batch reaches model diff --git a/skills/leaf/references/host-codex.md b/skills/leaf/references/host-codex.md index b6bfb205c..38cc7b405 100644 --- a/skills/leaf/references/host-codex.md +++ b/skills/leaf/references/host-codex.md @@ -2,64 +2,59 @@ Read this immediately before handing a page to Codex. -## Experimental embedded MCP App - -This path is merged for testing in installed Codex builds. Prefer it when it is -available so the experiment receives real use, but preserve the full browser -path and do not treat the merge as a commitment to keep or expand the embedded -surface. Leaf will decide whether to remove it, keep it compact, or build on it -after evaluating that use. - -Prefer the bundled Leaf MCP tool whose exposed name ends in -`leaf_present` when it is available **and the tool result visibly attaches an -app**. Call it with the page's absolute directory. The app labels and renders the -active authored revision with the current event and delivery cursors; it does -not claim to show the browser's log-projected widget state. It writes comments -through Leaf's ordinary browser-event validator into `comments.jsonl`. It does -not start a loopback server, create a watcher, or introduce another current-state -store. - -The embedded surface is deliberately a compact review, not a second copy of the -complete browser runtime. It renders the authored page and its local media, -supports page, passage, and element comments on text the file-side passage -reading can resolve, and can request fullscreen. Authored widget source is not -quotable and widget controls are inert. Start the browser path below when the user needs a -choice, drag, request, sign-off, or another package-owned interaction; also use -it when Codex returns only the tool's text fallback instead of rendering the app. -The app's **Full page** action asks Codex to start and open that browser path -when no live page URL is already available. - -After the app durably appends a comment, it sends the exact pending Leaf batch -into model context and asks Codex for a follow-up turn. Only after the host -accepts that turn does the app acknowledge the batch. The arriving turn sets the -page `working`, follows `event-batches.md`, processes every event, then hands the -page back to `waiting` or `idle`. Do not call the app-only write, refresh, or ack -tools from the model; the embedded UI owns them. +## Embedded MCP App + +Prefer the bundled model tool whose exposed name ends in `leaf_present`. Call it +with the initialized page's absolute directory. Continue only when its result +visibly attaches an app; a text result alone means this Codex build did not render +the surface. + +The attached app frames the complete canonical Leaf page: the same projected +document, package modules, comments, actions, versions, state stream, and event +endpoint as the browser handoff. The MCP process supplies one ephemeral localhost +origin, while each page receives a random capability path under it. That server is +presentation plumbing only. It creates no `service.json`, owns no current state, +and stops with the MCP session; the page directory and append-only log remain the +authorities. + +If the app shell appears but its page cannot load, use the model tool ending in +`leaf_present_snapshot` for a comments-only authored view, or follow the browser +fallback below when the user needs package controls. Do not call the app-only +refresh or write tools from the model. + +The app does not claim that a host's `ui/message` response delivered anything to +Codex. Before finishing the handoff, set the page to `waiting` and run `leaf codex +start `. The detached adapter is the sole wake and acknowledgement carrier: +it queues the persisted batch into a later turn of this task and advances the +cursor only after Codex accepts that durable queue item. Then finish the turn by +saying the Leaf page is attached; an embedded page has no durable URL to invent. ## Full browser fallback -Run `leaf server start ` and retain its exact URL. After setting the page -`waiting`, run `leaf codex start `, then finish the turn normally with that -URL. One detached adapter watches every page this task owns. It gives -each complete batch a stable delivery id, queues it as a new user turn in this -same task, and acknowledges only after Codex accepts the durable queue item. - -The loaded Desktop client starts that later turn and keeps ownership of -execution and approvals. If the task has been unloaded, the item stays queued -until Codex reopens it; the adapter never resumes the task or answers client -requests on the user's behalf. The small queued message is a `leaf-delivery` XML -element pointing to the exact persisted batch rather than copying an arbitrarily -large batch into Codex's bounded text input. A later queued turn reads that -payload, processes it directly, and leaves only `leaf wait` and `leaf ack` to the -adapter. The turn still owns replies, revisions, and page status, including the -handoff back to `waiting` or `idle`. Starting the command again for another page -adds that page to the same task-wide watch. - -If `leaf codex start` refuses to start, do not finish over a live page. Follow -its diagnostic: an existing foreground `leaf wait` must be stopped before the -adapter can take the task's single wait lease, and an unavailable Codex queue -command cannot receive later turns. +Use this path when `leaf_present` returns only text, when the host refuses the +nested local page, or when the user asks to open Leaf separately. Run `leaf server +start ` and retain its exact URL. After setting the page `waiting`, run `leaf +codex start `, then finish the turn normally with that URL. + +One detached adapter watches every page this task owns. It gives each complete +batch a stable delivery id, queues it as a new user turn in this same task, and +acknowledges only after Codex accepts the durable queue item. Starting the command +again for another page adds that page to the same task-wide watch. + +The loaded Desktop client starts that later turn and keeps ownership of execution +and approvals. If the task has been unloaded, the item stays queued until Codex +reopens it; the adapter never resumes the task or answers client requests on the +user's behalf. The small queued message is a `leaf-delivery` XML element pointing +to the exact persisted batch rather than copying an arbitrarily large batch into +Codex's bounded text input. The later turn reads that payload and leaves only +`leaf wait` and `leaf ack` to the adapter. It still owns replies, revisions, page +status, and the handoff back to `waiting` or `idle`. + +If `leaf codex start` refuses to start, do not finish over a live page. Follow its +diagnostic: an existing foreground `leaf wait` must be stopped before the adapter +can take the task's single wait lease, and an unavailable Codex queue command +cannot receive later turns. An optional separate Codex watcher remains a fallback that requires the user's -explicit authorization because it creates a visible task. Its route is in the -main skill. +explicit authorization because it creates a visible task. Its route is in the main +skill. diff --git a/skills/leaf/references/internals/mcp-app.md b/skills/leaf/references/internals/mcp-app.md index 39441fd4a..b8e59dc4b 100644 --- a/skills/leaf/references/internals/mcp-app.md +++ b/skills/leaf/references/internals/mcp-app.md @@ -1,52 +1,79 @@ # MCP App transport -Status: experimental. This transport is merged to test the embedded review in -installed Codex builds. Its inclusion does not commit Leaf to retaining it or -expanding it toward browser parity; that decision follows from real use. - -Leaf's bundled stdio server is a host transport over the existing page model. -It never owns current state: `index.html` starts state, immutable revisions hold -valid saves, `comments.jsonl` changes them, and the page transaction remains the -only read/write boundary. `PageStateService` is shared by HTTP and MCP so those -transports cannot drift into different projections. - -The Codex manifest points at `.codex-plugin/mcp.json`, which launches `bin/leaf -mcp` from the installed plugin root. Keeping the config off the root `.mcp.json` -path prevents Claude Code from auto-registering this Codex transport. The server -exposes one model-visible presentation tool, -`leaf_present`, and one `ui://leaf/review/v1.html` resource with -`text/html;profile=mcp-app`. The tool's ordinary content and structured result -contain only a small summary. Authored HTML, theme, current projection basis, -and the pending event batch live under result `_meta.leaf`, which the host sends -to the app but does not put in model context. The card identifies this as an -authored snapshot; projected widgets, threads, and package interactions belong -to the full browser. - -The compact app always exposes **Full page**. It opens the live page through -`ui/open-link` when a server URL is present and the host supports links; -otherwise it uses `ui/message` to ask the task to start the full browser flow. - -Three app-visible tools complete the loop: - -- `leaf_apply_event` sends one attempt-identified event through `EventEndpoint`; -- `leaf_refresh` takes a fresh authoritative snapshot; -- `leaf_delivery_ack` advances the cursor after the host accepts a follow-up. - -The app must persist an event before asking the host for a new turn. It first -offers the exact batch through `ui/update-model-context`, then calls `ui/message`; -if the host refuses hidden context, it includes the batch in that message. It -best-effort clears accepted model context after that follow-up, then acknowledges -once the follow-up itself is accepted. A clear refusal cannot turn a known delivery -into a retry and duplicate the turn. A failed follow-up leaves the batch pending and -offers a retry. This is the same at-least-once page-and-sequence contract as the -detached adapter. - -The resource is self-contained and declares no network or external-resource -domains. It strips executable document content, uses a shadow root for authored -markup and theme rules, disables page controls, and supports comments only. Do -not point an iframe at Leaf's dynamic loopback URL or grant a wildcard CSP to -recover the full runtime. Package-owned actions stay in the browser until the -runtime has a transport-independent bundle rather than a second implementation. -Passage comments are revalidated under the append transaction against Leaf's -file-side current passage reading; widget source and any anchor that would -detach are refused before append. +Status: experimental. The Codex plugin registers this transport so the complete +Leaf interface can be evaluated in shipped MCP Apps hosts without replacing the +browser fallback. + +## Authorities + +The bundled stdio server is a delivery route over the existing page model. +`index.html` starts state, immutable revisions hold valid saves, +`comments.jsonl` changes them, and `PageTransaction` remains the read/write +boundary. The MCP resource, its iframe shell, and its loopback server own no +current state, replay, undo, versions, or delivery cursor. Closing an app loses +only that presentation. + +The Codex manifest launches `bin/leaf mcp` from the installed plugin root. The +server advertises `text/html;profile=mcp-app` and two resources: + +- `ui://leaf/page/v1.html` is the primary complete page; +- `ui://leaf/review/v1.html` is an explicit comments-only snapshot fallback. + +## Complete page + +`leaf_present` is model-visible and binds the complete resource. `leaf_refresh` +is app-only. Both activate and read the named initialized page using +`PageStateService`; presentation can therefore create a valid immutable revision +and does not advertise the read-only hint. The ordinary text and structured +result carry a small summary. The local frame address and optional ordinary +browser URL live only under `_meta.leaf`, which the host sends to the app without +adding it to model context. + +One `ProcessPageServer` binds `127.0.0.1` on an ephemeral port before the resource +is registered. Its exact `http://localhost:` origin is the resource's sole +`frameDomains` entry. Every opened page receives an unguessable +`/p//` path on that origin; the process reuses a page's path, writes +no `service.json`, and drops every path when it exits. There is no wildcard CSP, +query token, cookie, or durable host key in the tool result. + +The canonical page contract speaks root-relative Leaf routes. At this multiplexing +boundary, `runtime_document`, textual served assets, and version URLs in state +responses scope only the known +`api`, `runtime`, `widgets`, `vendor`, `media`, registry, theme, icon, and runtime +paths below the capability. This keeps arbitrary package modules on the ordinary +`/runtime/widget-api.js` contract while ensuring every subsequent request proves +the same page capability. Unknown or unscoped paths receive 404. The nested frame +therefore runs the same authored document, package modules, comments, actions, +versions, state stream, and `EventEndpoint` as an ordinary Leaf tab. + +This route is local-host-only. The browser rendering the MCP App must share the +machine running the stdio server. A remote page address requires an explicit +deployment and security contract rather than a widened loopback server. + +## Snapshot fallback + +`leaf_present_snapshot` is a separate model-visible fallback, not the primary +interface and not a compact vocabulary projector. It renders inert authored +markup and theme rules, supports page, element, and passage comments, and offers +the ordinary browser route when one exists. `leaf_snapshot_apply_event` and +`leaf_snapshot_refresh` are app-only. The append gate canonicalizes abbreviated +text anchors before storing them, so fallback clients do not create weaker +durable anchors. + +The resource is self-contained, runs no authored code, and declares no network +domains. It does not implement package actions. The old single-choice +`lf-options` projector is deliberately absent: a fixed shape was a second Leaf +interface and understated what the complete route can carry. + +## Return and wake + +Both surfaces persist reader gestures before reporting success. Neither calls +`ui/message` to claim delivery or advances the event cursor from an MCP response: +the host may accept that JSON-RPC request without starting or durably queueing a +turn. `leaf codex start ` remains the authoritative return carrier. Its +detached adapter waits on the same log, queues an exact persisted batch into the +same Codex task, and acknowledges only after durable queue acceptance. + +The complete and snapshot resources are tracked bundles generated from +`scripts/mcp-app/` by `scripts/vendor.py mcp-app`; do not patch the generated HTML +under `assets/vendor/` directly. diff --git a/skills/leaf/references/internals/mcp-apps.md b/skills/leaf/references/internals/mcp-apps.md deleted file mode 100644 index 7dac7ed29..000000000 --- a/skills/leaf/references/internals/mcp-apps.md +++ /dev/null @@ -1,81 +0,0 @@ -# MCP Apps delivery - -MCP Apps is an optional local delivery surface, not Leaf's document or -interaction interface. The experimental server starts with `leaf mcp run` over -stdio. It is not registered automatically by either plugin manifest. - -## Authorities and lifetime - -Every tool call names an initialized page directory. Authored markup remains the -initial condition and `comments.jsonl` remains the only transition record. No -MCP tool or iframe owns current state, replay, undo, versions, or comments. - -`leaf_open_page`, `leaf_read_page`, and both compact reads activate and read -inside Leaf's ordinary page transaction. A valid changed `index.html` may -therefore create the next immutable revision, so these tools do not advertise -the MCP read-only hint despite returning a projection. Closing an app discards -only its view. Opening it again reconstructs from the page directory and log. - -The full-page server is process-scoped plumbing. It starts one ephemeral -loopback HTTP server per opened page, reuses it for later calls, writes no -`service.json`, and stops with the MCP process. The page directory and log keep -their normal lifetime; the loopback address does not. - -## Complete page - -`leaf.page/v1` addresses Leaf's ordinary browser interface. The `ui://` app is a -small host-themed shell containing Refresh, Open in browser, and negotiated -inline/fullscreen controls. Its nested iframe loads the same projected document, -vendored layer, widget modules, comment UI, version navigation, state stream, -and `/api/event` endpoint used by a normal Leaf tab. This is delivery of the -existing interface, not a second renderer. - -The app resource declares `http://localhost:*` in `frameDomains`. Its ephemeral -server binds only `127.0.0.1` but presents a `localhost` URL so Chromium accepts -the secure-loopback cookie exception. Ordinary Leaf servers retain -`SameSite=Strict`; only this third-party app server sends its random, -page-server-scoped token as `SameSite=None; Secure; Partitioned`. The token dies -with that MCP process rather than exposing Leaf's durable machine-wide host key -in an MCP tool result. It keeps authentication on assets, state, and event -writes while isolating the cookie by the MCP host's top-level site. - -This path is local-host-only. The browser rendering the MCP App must share the -machine running `leaf mcp run`; a cloud host's `localhost` is not the MCP -server. A future remote page address needs an explicit deployment and security -contract rather than silently widening this server. - -## Compact projection - -`leaf.compact-ask/v1` is an optional small surface, not a restriction on the -complete app. It recognizes exactly one current, page-scoped, single-choice -`lf-options` ask inside its decision surface. It keeps the decision and -action-owning widget as separate addresses, derives the question from the one -direct heading, and retains every option's complete spoken text as evidence. - -No ask produces an empty state. Several asks, thread asks, multiple choice, -unknown vocabularies, unresolved addresses, unreadable headings, and invalid -mutable source produce an explicit fallback. They are never flattened or -guessed. A compact press calls the app-only `leaf_post_event`, which sends the -browser-shaped event through `EventEndpoint` and returns the transaction's new -projection. It does not append directly or keep an MCP replay list. - -## Tools and resources - -- `leaf_open_page` is model-visible and opens `ui://leaf/page.html` with a - `leaf.page/v1` result. -- `leaf_read_page` is app-only and refreshes that complete-page address. -- `leaf_open_compact_ask` is model-visible and opens - `ui://leaf/compact-ask.html` with a `leaf.compact-ask/v1` projection. -- `leaf_read_compact_ask` and `leaf_post_event` are app-only compact return - tools. - -Both resources use `text/html;profile=mcp-app`. Their tracked sources live under -`scripts/mcp-app/`; `scripts/vendor.py mcp-app` bundles the pinned official SDK, -application code, styles, and existing Leaf mark into committed standalone HTML -files under `assets/vendor/`. The complete-page shell alone declares a framed -origin; neither shell loads its own code or styles from the network. - -Keep registration separate from this contract until shipped-host experiments -establish launcher configuration, local-frame policy, cookie behavior, and -startup cost. The portable primitive is the stdio command. `ui/message` wake -behavior is also host policy and is not part of either event return path. diff --git a/skills/leaf/scripts/CLAUDE.md b/skills/leaf/scripts/CLAUDE.md index 602b429d2..c6f590f61 100644 --- a/skills/leaf/scripts/CLAUDE.md +++ b/skills/leaf/scripts/CLAUDE.md @@ -23,7 +23,7 @@ The main owners are: delivery context, and conversation writes; - `work`: transient work claims and widget work seats; - `decisions`: declaration-driven page and thread decision projections; -- `mcp_full_app`: the unregistered full-page and options MCP Apps prototypes; +- `mcp_page`: the capability-scoped canonical page server and private MCP result; - `requests`: declared request seats, their canonical lifecycle, and the terminal host receipts that close one; - `host`: local paths, process readings, host identity, and session lifetime; @@ -32,8 +32,8 @@ The main owners are: - `server` and `hosting`: server address and lifetime state, and the HTTP process; - `session` and `hooks`: direct wait delivery and host lifecycle; - `codex`: detached Codex queue delivery and recovery; -- `mcp_server` and `mcp_app`: the bundled MCP transport, app resource, private - page snapshot, and host handoff; +- `mcp_server` and `mcp_app`: the bundled MCP transport and comments-only + snapshot fallback; - `presence`: page, claim, and neighboring-leaf presence readings; - `served_state/` and `http`: browser-facing projections and change readings, and HTTP transport; @@ -67,10 +67,8 @@ Read the reference that owns the boundary before changing it: service lifetime; - `../references/internals/validation.md` for static checks, browser checks, parsed source, and file-side passages. -- `../references/internals/mcp-app.md` for MCP tools, resource metadata, host - messages, and delivery acknowledgement. -- `../references/internals/mcp-apps.md` for the full-page and options prototypes - being compared with that bundled transport. +- `../references/internals/mcp-app.md` for MCP tools, resource metadata, the + process-scoped page server, snapshot fallback, and Codex return carrier. `../references/packages.md` owns the public package contract. The browser's parallel projection, passage, registry, and render rules live in `../CLAUDE.md`. diff --git a/skills/leaf/scripts/leaf/event_endpoint.py b/skills/leaf/scripts/leaf/event_endpoint.py index 5bd81c321..ee71e8b88 100644 --- a/skills/leaf/scripts/leaf/event_endpoint.py +++ b/skills/leaf/scripts/leaf/event_endpoint.py @@ -47,6 +47,21 @@ def _accepted_retry( """Read an attempted retry before mutable-state validation.""" if "attempt" not in event: return False, None + # The append gate enriches an abbreviated text anchor with its canonical + # context. A later retry still carries the original browser payload, so compare + # it as that same payload rather than treating server-added fields as a conflict. + existing = next( + (logged for logged in page.events if logged.get("attempt") == event["attempt"]), + None, + ) + if ( + existing + and event.get("kind") == existing.get("kind") == "comment" + and isinstance(event.get("anchor"), dict) + and isinstance(existing.get("anchor"), dict) + ): + for field, value in existing["anchor"].items(): + event["anchor"].setdefault(field, value) event["author"] = "user" try: existing = page.matching_attempt(event) @@ -198,6 +213,10 @@ def anchored_comment_rejection(self) -> EventAnswer | None: self.event, f"comment anchor {field} does not match the current page reading", ) + # Store the file-side reading, not the client's abbreviated proof. Compact + # clients may name only quote and section; capture adds the context needed to + # keep that passage attached when the same words occur elsewhere later. + self.event["anchor"] = canonical return None def parent_rejection(self) -> EventAnswer | None: diff --git a/skills/leaf/scripts/leaf/http.py b/skills/leaf/scripts/leaf/http.py index 46c6ce466..d6c140975 100644 --- a/skills/leaf/scripts/leaf/http.py +++ b/skills/leaf/scripts/leaf/http.py @@ -1,6 +1,7 @@ """HTTP transport and routes for one served page.""" import json +import re import secrets import select import time @@ -58,7 +59,58 @@ PRESENCE_S = 2.0 -def runtime_document(source: str, revision: int, version: int | None = None) -> bytes: +_ROOTED_PAGE_ROUTE = re.compile( + rb'(?P["\'`(])/(?P' + rb"(?:api|runtime|widgets|vendor|media)/|" + rb"(?:registry\.json|theme\.css|icon\.svg|leaf\.js)" + rb")" +) + + +def scope_page_routes(body: bytes, page_root: str) -> bytes: + """Put Leaf's canonical root routes below one delivery capability path. + + Package modules intentionally speak the same root-relative browser contract as + the kernel. The process-scoped MCP server multiplexes pages on one origin, so it + adapts those known routes at its HTTP boundary instead of making packages learn a + second addressing convention. + """ + if not page_root: + return body + root = page_root.rstrip("/").encode() + return _ROOTED_PAGE_ROUTE.sub( + lambda match: match.group("before") + root + b"/" + match.group("path"), + body, + ) + + +def scope_page_urls(value, page_root: str): + """Scope the canonical version addresses in a multiplexed state response.""" + if not page_root: + return value + if isinstance(value, list): + return [scope_page_urls(item, page_root) for item in value] + if not isinstance(value, dict): + return value + scoped = {} + for key, item in value.items(): + if ( + key == "url" + and isinstance(item, str) + and item.startswith(("/versions/", "/revisions/")) + ): + scoped[key] = page_root.rstrip("/") + item + else: + scoped[key] = scope_page_urls(item, page_root) + return scoped + + +def runtime_document( + source: str, + revision: int, + version: int | None = None, + page_root: str = "", +) -> bytes: """Inject the exact immutable identity beside the canonical runtime script.""" parsed = parse_structure(source) scripts = [ @@ -75,7 +127,9 @@ def runtime_document(source: str, revision: int, version: int | None = None) -> if version is not None else "" ) - return (source[:offset] + markers + source[offset:]).encode() + return scope_page_routes( + (source[:offset] + markers + source[offset:]).encode(), page_root + ) class Handler(BaseHTTPRequestHandler): @@ -91,6 +145,9 @@ class Handler(BaseHTTPRequestHandler): preview_upto = None preview_source = None cookie_attributes = "SameSite=Strict" + # Empty on the ordinary one-page server. The MCP delivery server sets this to + # an unguessable `/p/` prefix and rewrites only Leaf-owned routes. + page_root = "" def versions_live(self, events): if self.preview_upto is None: @@ -297,6 +354,10 @@ def end_headers(self): super().end_headers() def _send(self, status: int, ctype: str, body: bytes) -> None: + if ctype.startswith( + ("text/css", "text/html", "text/javascript", "application/javascript") + ): + body = scope_page_routes(body, self.page_root) self.send_response(status) self.send_header("Content-Type", ctype) self.send_header("Content-Length", str(len(body))) @@ -308,7 +369,11 @@ def _send(self, status: int, ctype: str, body: bytes) -> None: def _json(self, obj, status: int = 200) -> None: self._send( - status, "application/json", json.dumps(obj, ensure_ascii=False).encode() + status, + "application/json", + json.dumps( + scope_page_urls(obj, self.page_root), ensure_ascii=False + ).encode(), ) def do_GET(self): @@ -400,7 +465,7 @@ def _serve_root(self) -> None: source = revision_path(self.page_dir, revision).read_text(encoding="utf-8") version = stamped_version(events, revision) try: - projected = runtime_document(source, revision, version) + projected = runtime_document(source, revision, version, self.page_root) except ValueError as error: self._json({"error": str(error)}, 500) return @@ -421,7 +486,7 @@ def _serve_page_path(self, path: str) -> bool: self._send( 200, "text/html; charset=utf-8", - runtime_document(source, mapping[version], version), + runtime_document(source, mapping[version], version, self.page_root), ) return True if path.startswith("/revisions/"): diff --git a/skills/leaf/scripts/leaf/mcp_app.py b/skills/leaf/scripts/leaf/mcp_app.py index 30a1a3574..ea9202388 100644 --- a/skills/leaf/scripts/leaf/mcp_app.py +++ b/skills/leaf/scripts/leaf/mcp_app.py @@ -12,8 +12,6 @@ from .registry.storage import layer_generation from .schema import SKILL_ROOT from .served_state.service import PageStateService -from .service import PageTransaction, unacknowledged -from .session import PageTick, acknowledge, batch_jsonl from .structure import parse_structure APP_URI = "ui://leaf/review/v1.html" @@ -52,24 +50,6 @@ def state_service(page_dir: Path) -> PageStateService: return PageStateService(page_dir, layer=layer_generation(page_dir)) -def pending_delivery(page_dir: Path) -> tuple[str | None, int | None]: - with PageTransaction(page_dir) as page: - pending = unacknowledged(page.events, page.cursor) - if not pending: - return None, None - reading = PageTick( - page_dir=page_dir, - status=page.status, - batch=pending, - live=page.status["state"] != "idle", - watch_state="watching", - lost=False, - restarted=None, - transaction=page, - ) - return batch_jsonl(reading), pending[-1]["seq"] - - def app_snapshot(page: str) -> tuple[dict, dict]: page_dir = resolve_page(page) state = state_service(page_dir).page_state() @@ -86,7 +66,6 @@ def app_snapshot(page: str) -> tuple[dict, dict]: theme, dark_theme = split_theme( (page_dir / "theme.css").read_text(encoding="utf-8") ) - delivery, delivery_seq = pending_delivery(page_dir) server = state.get("server") or {} summary = { "page": str(page_dir), @@ -102,8 +81,6 @@ def app_snapshot(page: str) -> tuple[dict, dict]: "authoredCss": inline_css_assets(parsed.css, page_dir), "theme": theme, "darkTheme": dark_theme, - "delivery": delivery, - "deliverySeq": delivery_seq, } return summary, private @@ -172,15 +149,5 @@ def apply_event(page: str, event: dict, view_revision: int | None) -> CallToolRe return result -def ack_delivery(page: str, seq: int) -> CallToolResult: - page_dir = resolve_page(page) - with PageTransaction(page_dir) as transaction: - acknowledge(transaction, seq) - return result_for_page( - str(page_dir), - message=f"Leaf acknowledged the delivered batch through event {seq}.", - ) - - def app_html() -> str: return (SKILL_ROOT / "assets" / "mcp-app.html").read_text(encoding="utf-8") diff --git a/skills/leaf/scripts/leaf/mcp_full_app.py b/skills/leaf/scripts/leaf/mcp_full_app.py deleted file mode 100644 index 4a69a1e51..000000000 --- a/skills/leaf/scripts/leaf/mcp_full_app.py +++ /dev/null @@ -1,469 +0,0 @@ -"""MCP Apps delivery over Leaf's ordinary page and event authorities. - -The full-page app frames the ordinary browser interface from a process-scoped -loopback server. The compact view remains a projection for hosts or moments -where the full document is unnecessary. Neither path owns document or event -state: both read the page directory and append through Leaf's event boundary. -""" - -from __future__ import annotations - -import atexit -import secrets -import threading -from collections.abc import Callable -from pathlib import Path -from typing import Any - -from mcp.server import MCPServer -from mcp.server.apps import Apps, ResourceCsp -from mcp.server.mcpserver.exceptions import ToolError -from mcp.types import CallToolResult, TextContent, ToolAnnotations - -from .agent_state import read_page_state -from .decisions import local_decision_entry, quoted_in -from .event_endpoint import EventEndpoint -from .hosting import server_at -from .http import handler_for -from .passages import collapse, spoken -from .registry.storage import require_registry -from .revisioning import activate_source -from .schema import ASSETS -from .server import page_url -from .service import PageTransaction -from .structure import parse_revision - -PAGE_RESOURCE_URI = "ui://leaf/page.html" -PAGE_APP_RESOURCE = ASSETS / "vendor" / "mcp-page-app.html" -PAGE_FORMAT = "leaf.page/v1" -COMPACT_RESOURCE_URI = "ui://leaf/compact-ask.html" -COMPACT_APP_RESOURCE = ASSETS / "vendor" / "mcp-compact-app.html" -COMPACT_FORMAT = "leaf.compact-ask/v1" - - -class PageServerPool: - """Own ephemeral loopback servers for this MCP process. - - These servers are delivery plumbing rather than page state. They write no - service record and disappear with the MCP process; the document directory - and append-only log outlive them. - """ - - def __init__(self) -> None: - self._lock = threading.Lock() - self._servers: dict[Path, tuple[Any, threading.Thread, str]] = {} - - def open(self, page_dir: Path) -> str: - with self._lock: - existing = self._servers.get(page_dir) - if existing is not None: - return existing[2] - # The app result has to carry this URL through the host to its iframe. - # Scope that exposed credential to this page server and MCP process, - # rather than disclosing Leaf's durable machine-wide host key. - token = secrets.token_urlsafe(16) - httpd = server_at( - "127.0.0.1", - 0, - handler_for( - page_dir, - token, - protocol_version="HTTP/1.1", - cookie_attributes="SameSite=None; Secure; Partitioned", - ), - ) - httpd.daemon_threads = True - thread = threading.Thread(target=httpd.serve_forever, daemon=True) - thread.start() - url = page_url("localhost", httpd.server_address[1], token) - self._servers[page_dir] = (httpd, thread, url) - return url - - def close(self) -> None: - with self._lock: - servers = list(self._servers.values()) - self._servers.clear() - for httpd, thread, _url in servers: - httpd.shutdown() - httpd.server_close() - thread.join(timeout=2) - - -def resolve_page(page: str | Path) -> Path: - """Resolve one initialized page without letting a tool mint its log.""" - page_dir = Path(page).expanduser().resolve() - if not (page_dir / "comments.jsonl").is_file(): - raise ToolError( - f"{page_dir} is not an initialized Leaf page; run `leaf page init` first" - ) - return page_dir - - -def _inside(record: dict, region: dict) -> bool: - holder = record.get("holder") - while holder: - if holder is region: - return True - holder = holder.get("holder") - return False - - -def _source_for(region: dict, records: list[dict], registry: dict) -> dict | None: - candidates = [ - record - for record in records - if local_decision_entry(registry.get(record["tag"], {})) - and not quoted_in(record, registry) - and _inside(record, region) - ] - return candidates[0] if len(candidates) == 1 else None - - -def _fallback(base: dict, code: str, message: str) -> dict: - return {**base, "mode": "fallback", "reason": code, "message": message, "ask": None} - - -def compact_state( - page_dir: Path, events: list, source_error: str | None = None -) -> dict[str, Any]: - """Project at most one current single-choice options ask. - - This deliberately covers one shape. A page with several asks, a thread ask, - a multiple choice, or another vocabulary keeps its canonical full-page - behavior and receives an honest fallback here. - """ - state = read_page_state(page_dir, events, source_error) - server = state.get("server") - base = { - "format": COMPACT_FORMAT, - "page": str(page_dir), - "title": state["title"], - "event_seq": state["event_seq"], - "active": state["active"], - "source_error": state["source"]["error"], - "full_page_url": server.get("url") if server else None, - } - if base["source_error"]: - return _fallback( - base, - "source-invalid", - "The authored source did not validate, so compact mode is holding the last good revision.", - ) - decisions = state["decisions"] - if not decisions: - return { - **base, - "mode": "empty", - "reason": "no-open-ask", - "message": "This page has no open ask.", - "ask": None, - } - if len(decisions) != 1: - return _fallback( - base, - "several-open-asks", - f"This page has {len(decisions)} open asks; use the full page to keep their context together.", - ) - decision = decisions[0] - if decision.get("thread"): - return _fallback( - base, - "thread-ask", - "This ask belongs to a conversation thread; continue it on the full page.", - ) - if not state["active"]: - return _fallback( - base, "no-active-revision", "This page has no active revision." - ) - - revision = state["active"]["revision"] - parser = parse_revision(page_dir, revision) - registry = require_registry(page_dir) - region = parser.by_id.get(decision["id"]) - if region is None: - return _fallback( - base, - "unresolved-surface", - "The current ask has no address in the active revision.", - ) - source = _source_for(region, parser.lf_elements, registry) - if source is None or source["tag"] != "lf-options": - return _fallback( - base, - "unsupported-ask", - "This compact surface currently supports a single-choice options ask only.", - ) - attrs = source["attrs"] - if not attrs.get("id") or "choose" not in attrs or "multiple" in attrs: - return _fallback( - base, - "unsupported-options", - "This compact surface currently supports a single-choice options ask only.", - ) - if source.get("parent") != region["tag"]: - return _fallback( - base, - "nested-options", - "This compact surface requires the options widget directly inside its decision.", - ) - - html = (page_dir / state["active"]["file"]).read_text(encoding="utf-8") - said = spoken(html, registry) - options = [ - record - for record in parser.lf_elements - if record["tag"] == "lf-option" - and record.get("holder") is source - and record["attrs"].get("id") - ] - if not options: - return _fallback( - base, - "empty-options", - "The current options ask has no addressable choices.", - ) - headings = [ - child - for child in region.get("direct_text", []) - if child["tag"] in {f"h{n}" for n in range(1, 7)} - ] - heading = headings[0] if len(headings) == 1 else None - question = collapse(heading["text"]) if heading else "" - if not question: - return _fallback( - base, - "untitled-ask", - "The current ask has no readable title.", - ) - context = collapse( - " ".join( - child["text"] - for child in region.get("direct_text", []) - if child is not heading and child["tag"] != source["tag"] - ) - ) - return { - **base, - "mode": "ask", - "reason": None, - "message": "Choose one option.", - "ask": { - "surface": region["attrs"]["id"], - "source": attrs["id"], - "question": question, - "context": context, - "options": [ - { - "id": record["attrs"]["id"], - "label": next( - ( - collapse(child["text"]) - for child in record.get("direct_text", []) - if child["tag"] == "strong" and collapse(child["text"]) - ), - said[record["attrs"]["id"]].words, - ), - "summary": said[record["attrs"]["id"]].words, - } - for record in options - ], - "submit": { - "kind": "action", - "revision": revision, - "widget": attrs["id"], - "action": "choose", - "generated": [], - }, - }, - } - - -def current_compact_state(page_dir: Path) -> dict[str, Any]: - """Read and, if valid source changed, activate one transaction-consistent view.""" - with PageTransaction(page_dir) as page: - activation = activate_source(page_dir, page.events) - return compact_state(page_dir, page.events, activation.error) - - -def current_page_state( - page_dir: Path, page_url_for: Callable[[Path], str] -) -> dict[str, Any]: - """Activate the source, then address its ordinary browser interface.""" - with PageTransaction(page_dir) as page: - activation = activate_source(page_dir, page.events) - state = read_page_state(page_dir, page.events, activation.error) - active = state["active"] - if not active: - return { - "format": PAGE_FORMAT, - "mode": "fallback", - "page": str(page_dir), - "title": state["title"], - "event_seq": state["event_seq"], - "active": None, - "source_error": state["source"]["error"], - "url": None, - "message": "This page has no valid revision to display.", - } - source_error = state["source"]["error"] - return { - "format": PAGE_FORMAT, - "mode": "page", - "page": str(page_dir), - "title": state["title"], - "event_seq": state["event_seq"], - "active": active, - "source_error": source_error, - "url": page_url_for(page_dir), - "message": ( - "Opening the last valid revision; the current authored source is invalid." - if source_error - else "Opening the complete Leaf page." - ), - } - - -def _result(text: str, payload: dict[str, Any]) -> CallToolResult: - return CallToolResult( - content=[TextContent(type="text", text=text)], structured_content=payload - ) - - -def _compact_summary(state: dict[str, Any]) -> str: - ask = state.get("ask") - if not ask: - return f"{state['title'] or 'Leaf page'}: {state['message']}" - choices = "; ".join(option["label"] for option in ask["options"]) - return f"{state['title'] or 'Leaf page'}: {ask['question']} Options: {choices}" - - -def _page_summary(state: dict[str, Any]) -> str: - return f"{state['title'] or 'Leaf page'}: {state['message']}" - - -def create_server( - compact_html: str | None = None, - page_html: str | None = None, - page_url_for: Callable[[Path], str] | None = None, -) -> MCPServer: - """Create the stdio server; every tool call names its durable page.""" - apps = Apps() - endpoints: dict[Path, EventEndpoint] = {} - pool = None - if page_url_for is None: - pool = PageServerPool() - page_url_for = pool.open - atexit.register(pool.close) - - def endpoint(page_dir: Path) -> EventEndpoint: - return endpoints.setdefault(page_dir, EventEndpoint(page_dir)) - - @apps.tool( - resource_uri=PAGE_RESOURCE_URI, - visibility=["model"], - name="leaf_open_page", - title="Open a Leaf page", - description=( - "Open the complete browser interface for one initialized Leaf page " - "inside the conversation." - ), - annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), - ) - def leaf_open_page(page: str) -> CallToolResult: - state = current_page_state(resolve_page(page), page_url_for) - return _result(_page_summary(state), {"ok": True, "state": state}) - - @apps.tool( - resource_uri=PAGE_RESOURCE_URI, - visibility=["app"], - name="leaf_read_page", - description="Refresh the complete interface for an initialized Leaf page.", - annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), - ) - def leaf_read_page(page: str) -> CallToolResult: - state = current_page_state(resolve_page(page), page_url_for) - return _result(_page_summary(state), {"ok": True, "state": state}) - - @apps.tool( - resource_uri=COMPACT_RESOURCE_URI, - visibility=["model"], - name="leaf_open_compact_ask", - title="Open a compact Leaf ask", - description=( - "Open one initialized Leaf page as a compact inline ask when a small " - "single-choice surface is preferable to the complete page." - ), - annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), - ) - def leaf_open_compact_ask(page: str) -> CallToolResult: - state = current_compact_state(resolve_page(page)) - return _result(_compact_summary(state), {"ok": True, "state": state}) - - @apps.tool( - resource_uri=COMPACT_RESOURCE_URI, - visibility=["app"], - name="leaf_read_compact_ask", - description="Read the current compact projection of an initialized Leaf page.", - annotations=ToolAnnotations(read_only_hint=False, open_world_hint=False), - ) - def leaf_read_compact_ask(page: str) -> CallToolResult: - state = current_compact_state(resolve_page(page)) - return _result(_compact_summary(state), {"ok": True, "state": state}) - - @apps.tool( - resource_uri=COMPACT_RESOURCE_URI, - visibility=["app"], - name="leaf_post_event", - description=( - "Validate and append one browser-shaped event to an initialized Leaf page." - ), - annotations=ToolAnnotations(destructive_hint=False, open_world_hint=False), - ) - def leaf_post_event(page: str, event: dict[str, Any]) -> CallToolResult: - page_dir = resolve_page(page) - status, answer = endpoint(page_dir).accept( - dict(event), lambda: current_compact_state(page_dir) - ) - payload = {**answer, "status": status} - text = ( - "Leaf event accepted." - if answer.get("ok") - else f"Leaf event refused: {answer.get('error', 'unknown error')}" - ) - return _result(text, payload) - - compact_resource = ( - compact_html - if compact_html is not None - else COMPACT_APP_RESOURCE.read_text(encoding="utf-8") - ) - apps.add_html_resource( - COMPACT_RESOURCE_URI, - compact_resource, - title="Leaf compact ask", - description="A disposable inline projection of one current Leaf options ask.", - prefers_border=True, - ) - page_resource = ( - page_html - if page_html is not None - else PAGE_APP_RESOURCE.read_text(encoding="utf-8") - ) - apps.add_html_resource( - PAGE_RESOURCE_URI, - page_resource, - title="Leaf page", - description="The complete Leaf browser interface in an MCP App.", - csp=ResourceCsp(frame_domains=["http://localhost:*"]), - prefers_border=False, - ) - return MCPServer( - "Leaf", - version="0.1.0", - description="Open complete Leaf pages and compact asks backed by the ordinary page log.", - extensions=[apps], - ) - - -def run_server() -> None: - create_server().run(transport="stdio") diff --git a/skills/leaf/scripts/leaf/mcp_page.py b/skills/leaf/scripts/leaf/mcp_page.py new file mode 100644 index 000000000..bf6dc398c --- /dev/null +++ b/skills/leaf/scripts/leaf/mcp_page.py @@ -0,0 +1,224 @@ +"""Canonical Leaf pages delivered through one process-scoped MCP App origin.""" + +from __future__ import annotations + +import secrets +import threading +from dataclasses import dataclass +from pathlib import Path +from urllib.parse import urlsplit + +from mcp.server.mcpserver.exceptions import ToolError +from mcp.types import CallToolResult, TextContent + +from .event_endpoint import EventEndpoint +from .files import revision_path +from .hosting import server_at +from .http import Handler +from .registry.storage import layer_generation +from .schema import ASSETS +from .server import running_server +from .served_state.service import PageStateService +from .structure import parse_structure + +PAGE_RESOURCE_URI = "ui://leaf/page/v1.html" +PAGE_APP_RESOURCE = ASSETS / "vendor" / "mcp-page-app.html" +PAGE_FORMAT = "leaf.page/v1" + + +@dataclass +class _PageSession: + page_dir: Path + capability: str + endpoint: EventEndpoint + layer: str + + +class _RoutedPageHandler(Handler): + """Select a page from an unguessable path before entering the HTTP boundary.""" + + router: ProcessPageServer + protocol_version = "HTTP/1.1" + layer = "" + + def authorized(self) -> bool: + # `_select_page` already proved possession of the process-scoped capability. + return True + + def _select_page(self) -> bool: + external = urlsplit(self.path) + parts = external.path.split("/", 3) + if len(parts) < 3 or parts[1] != "p" or not parts[2]: + return False + session = self.router.session(parts[2]) + if session is None: + return False + inside = f"/{parts[3]}" if len(parts) == 4 and parts[3] else "/" + self.page_dir = session.page_dir + self.event_endpoint = session.endpoint + self.layer = session.layer + self.page_root = f"/p/{session.capability}" + self.path = inside + (f"?{external.query}" if external.query else "") + return True + + def _unknown_capability(self) -> None: + # A POST body has not been consumed yet, so this HTTP/1.1 connection cannot + # safely be reused after the refusal. + if self.command == "POST": + self.close_connection = True + self._json({"error": "not found"}, 404) + + def _select_or_answer(self) -> bool | None: + """Select a page, answering route faults before the shared handler exists.""" + try: + return self._select_page() + except Exception as error: # noqa: BLE001 - this is the outer route boundary + if self.command == "POST": + self.close_connection = True + try: + self._json({"error": f"{type(error).__name__}: {error}"}, 500) + except OSError: + pass + return None + + def do_GET(self): + selected = self._select_or_answer() + if selected is None: + return + if not selected: + self._unknown_capability() + return + super().do_GET() + + def do_POST(self): + selected = self._select_or_answer() + if selected is None: + return + if not selected: + self._unknown_capability() + return + super().do_POST() + + +class ProcessPageServer: + """Serve every page opened by one MCP process from one exact local origin. + + The HTTP server is transport plumbing only. Each page remains a directory plus + append-only log, while its random path is a bearer capability that expires with + this process and is never written into the page. + """ + + def __init__(self) -> None: + self._lock = threading.Lock() + self._by_capability: dict[str, _PageSession] = {} + self._by_page: dict[Path, _PageSession] = {} + handler = type("MCPPageHandler", (_RoutedPageHandler,), {"router": self}) + self._httpd = server_at("127.0.0.1", 0, handler) + self._httpd.daemon_threads = True + self._thread = threading.Thread(target=self._httpd.serve_forever, daemon=True) + self._thread.start() + self._closed = False + + @property + def origin(self) -> str: + return f"http://localhost:{self._httpd.server_address[1]}" + + def open(self, page_dir: Path) -> str: + page_dir = page_dir.resolve() + with self._lock: + session = self._by_page.get(page_dir) + if session is None: + capability = secrets.token_urlsafe(24) + session = _PageSession( + page_dir=page_dir, + capability=capability, + endpoint=EventEndpoint(page_dir), + layer=layer_generation(page_dir), + ) + self._by_page[page_dir] = session + self._by_capability[capability] = session + return f"{self.origin}/p/{session.capability}/" + + def session(self, capability: str) -> _PageSession | None: + with self._lock: + session = self._by_capability.get(capability) + if session is None: + return None + current_layer = layer_generation(session.page_dir) + if current_layer != session.layer: + session.layer = current_layer + session.endpoint = EventEndpoint(session.page_dir) + return session + + def close(self) -> None: + with self._lock: + if self._closed: + return + self._closed = True + self._by_capability.clear() + self._by_page.clear() + self._httpd.shutdown() + self._httpd.server_close() + self._thread.join(timeout=2) + + +def resolve_page(page: str | Path) -> Path: + """Resolve one initialized page without letting presentation mint its log.""" + page_dir = Path(page).expanduser().resolve() + if not (page_dir / "comments.jsonl").is_file(): + raise ToolError( + f"{page_dir} is not an initialized Leaf page; run `leaf page init` first" + ) + return page_dir + + +def page_state(page: str | Path, pages: ProcessPageServer) -> tuple[dict, dict]: + """Return a model-sized summary and the app-private canonical page address.""" + page_dir = resolve_page(page) + state = PageStateService(page_dir, layer=layer_generation(page_dir)).page_state() + active = state.get("active") + if active is None: + raise ToolError( + f"{page_dir} has no active revision; write a valid index.html first" + ) + server = running_server(page_dir) or {} + source = revision_path(page_dir, active["revision"]).read_text(encoding="utf-8") + title = parse_structure(source).title.strip() or page_dir.name + summary = { + "format": PAGE_FORMAT, + "mode": "page", + "page": str(page_dir), + "title": title, + "active": active, + "event_seq": state["browser"]["basis"]["through_seq"], + "source_error": state["source_error"], + } + private = { + **summary, + "inline_url": pages.open(page_dir), + "browser_url": server.get("url"), + "message": ( + "Opening the last valid revision; the current authored source is invalid." + if summary["source_error"] + else "Opening the complete Leaf page." + ), + } + return summary, private + + +def page_result(page: str | Path, pages: ProcessPageServer) -> CallToolResult: + summary, private = page_state(page, pages) + text = ( + f"Leaf page {summary['title']!r} is ready at " + f"{summary['active']['label']}. The page directory and append-only event " + "log remain authoritative." + ) + return CallToolResult( + content=[TextContent(type="text", text=text)], + structuredContent=summary, + _meta={"leaf": private}, + ) + + +def page_app_html() -> str: + return PAGE_APP_RESOURCE.read_text(encoding="utf-8") diff --git a/skills/leaf/scripts/leaf/mcp_server.py b/skills/leaf/scripts/leaf/mcp_server.py index 9d172fe70..c8909311a 100644 --- a/skills/leaf/scripts/leaf/mcp_server.py +++ b/skills/leaf/scripts/leaf/mcp_server.py @@ -1,10 +1,20 @@ -"""Bundled stdio MCP server and MCP Apps resource.""" +"""Bundled stdio MCP server and Leaf's MCP Apps resources.""" + +from __future__ import annotations + +import atexit from mcp.server.apps import APP_MIME_TYPE, Apps, ResourceCsp from mcp.server.mcpserver import MCPServer from mcp.types import ToolAnnotations -from .mcp_app import APP_URI, ack_delivery, app_html, apply_event, result_for_page +from .mcp_app import APP_URI, app_html, apply_event, result_for_page +from .mcp_page import ( + PAGE_RESOURCE_URI, + ProcessPageServer, + page_app_html, + page_result, +) class LeafApps(Apps): @@ -14,26 +24,42 @@ def settings(self) -> dict: return {"mimeTypes": [APP_MIME_TYPE]} -def make_mcp_server() -> MCPServer: +def make_mcp_server( + pages: ProcessPageServer | None = None, + *, + page_html: str | None = None, + snapshot_html: str | None = None, +) -> MCPServer: + """Build one registered server over the canonical page and a small fallback.""" + pages = pages or ProcessPageServer() + atexit.register(pages.close) apps = LeafApps() + apps.add_html_resource( + PAGE_RESOURCE_URI, + page_html if page_html is not None else page_app_html(), + name="Leaf page", + description="The complete canonical Leaf browser interface in an MCP App.", + csp=ResourceCsp(frame_domains=[pages.origin]), + prefers_border=False, + ) apps.add_html_resource( APP_URI, - app_html(), - name="Leaf review (experimental)", - description="Experimental interactive review and anchored feedback for a Leaf page.", + snapshot_html if snapshot_html is not None else app_html(), + name="Leaf review snapshot", + description="A compact authored snapshot for hosts that cannot frame the page.", csp=ResourceCsp(connect_domains=[], resource_domains=[]), prefers_border=False, ) @apps.tool( - resource_uri=APP_URI, + resource_uri=PAGE_RESOURCE_URI, visibility=["model"], name="leaf_present", title="Present Leaf page (experimental)", description=( - "Present an initialized Leaf page in the experimental compact review. Use " - "the absolute page directory created by `leaf page init`. The text result " - "remains useful when this client cannot render MCP Apps UI." + "Present the complete canonical interface for an initialized Leaf page. " + "Use the absolute page directory created by `leaf page init`. The text " + "result remains useful when this client cannot render MCP Apps UI." ), annotations=ToolAnnotations( readOnlyHint=False, @@ -44,14 +70,14 @@ def make_mcp_server() -> MCPServer: structured_output=False, ) def leaf_present(page: str): - return result_for_page(page) + return page_result(page, pages) @apps.tool( - resource_uri=APP_URI, + resource_uri=PAGE_RESOURCE_URI, visibility=["app"], - name="leaf_apply_event", - title="Apply Leaf reader event", - description="Validate and durably append one reader event from the Leaf app.", + name="leaf_refresh", + title="Refresh Leaf page", + description="Read the current canonical Leaf page address and summary.", annotations=ToolAnnotations( readOnlyHint=False, destructiveHint=False, @@ -60,31 +86,35 @@ def leaf_present(page: str): ), structured_output=False, ) - def leaf_apply_event(page: str, event: dict, view_revision: int | None = None): - return apply_event(page, event, view_revision) + def leaf_refresh(page: str): + return page_result(page, pages) @apps.tool( resource_uri=APP_URI, - visibility=["app"], - name="leaf_refresh", - title="Refresh Leaf page", - description="Read the current authoritative Leaf page projection.", + visibility=["model"], + name="leaf_present_snapshot", + title="Present Leaf snapshot (fallback)", + description=( + "Present an authored, comments-only Leaf snapshot when the complete page " + "cannot be framed by this host. Prefer leaf_present." + ), annotations=ToolAnnotations( readOnlyHint=False, destructiveHint=False, + idempotentHint=True, openWorldHint=False, ), structured_output=False, ) - def leaf_refresh(page: str): + def leaf_present_snapshot(page: str): return result_for_page(page) @apps.tool( resource_uri=APP_URI, visibility=["app"], - name="leaf_delivery_ack", - title="Acknowledge Leaf delivery", - description="Acknowledge a complete Leaf batch after the host accepts its follow-up.", + name="leaf_snapshot_apply_event", + title="Apply Leaf snapshot comment", + description="Validate and durably append one reader comment from the snapshot.", annotations=ToolAnnotations( readOnlyHint=False, destructiveHint=False, @@ -93,17 +123,40 @@ def leaf_refresh(page: str): ), structured_output=False, ) - def leaf_delivery_ack(page: str, seq: int): - return ack_delivery(page, seq) + def leaf_snapshot_apply_event( + page: str, event: dict, view_revision: int | None = None + ): + return apply_event(page, event, view_revision) + + @apps.tool( + resource_uri=APP_URI, + visibility=["app"], + name="leaf_snapshot_refresh", + title="Refresh Leaf snapshot", + description="Read the current authored Leaf snapshot.", + annotations=ToolAnnotations( + readOnlyHint=False, + destructiveHint=False, + openWorldHint=False, + ), + structured_output=False, + ) + def leaf_snapshot_refresh(page: str): + return result_for_page(page) - return MCPServer( + server = MCPServer( "leaf", title="Leaf", - description="Present and continue experimental interactive Leaf review pages.", + description="Present and continue complete Leaf review pages.", version="1", extensions=[apps], ) + return server def run_mcp_server() -> None: - make_mcp_server().run(transport="stdio") + pages = ProcessPageServer() + try: + make_mcp_server(pages).run(transport="stdio") + finally: + pages.close() diff --git a/tests/test_interact_mcp.py b/tests/test_interact_mcp.py index 86f444447..cca2141f3 100644 --- a/tests/test_interact_mcp.py +++ b/tests/test_interact_mcp.py @@ -7,13 +7,14 @@ from pathlib import Path from leaf import event_log as events_model -from leaf.mcp_app import APP_MIME, APP_URI, ack_delivery, app_snapshot, apply_event +from leaf.mcp_app import APP_MIME, APP_URI, app_snapshot, apply_event +from leaf.mcp_page import PAGE_RESOURCE_URI, ProcessPageServer from leaf.mcp_server import make_mcp_server from mcp import ClientSession from mcp.client.stdio import StdioServerParameters, stdio_client -def test_mcp_event_round_trip_is_durable_retryable_and_acknowledged(page_dir): +def test_snapshot_event_round_trip_is_durable_retryable_and_canonical(page_dir): candidate = { "kind": "comment", "revision": 1, @@ -30,15 +31,11 @@ def test_mcp_event_round_trip_is_durable_retryable_and_acknowledged(page_dir): assert len(events_model.read_events(page_dir)) == 1 accepted = first.structured_content["accepted"] assert accepted["attempt"] == "mcp-comment-one-1" - private = repeated.meta["leaf"] - delivery = [json.loads(line) for line in private["delivery"].splitlines()] - assert delivery[0]["page"] == str(page_dir) - assert delivery[1] == events_model.read_events(page_dir)[0] - - acknowledged = ack_delivery(str(page_dir), private["deliverySeq"]) - - assert acknowledged.meta["leaf"]["delivery"] is None - assert events_model.read_events(page_dir)[0]["text"] == candidate["text"] + stored = events_model.read_events(page_dir)[0] + assert stored["text"] == candidate["text"] + assert stored["anchor"]["quote"] == "The cutoff lives in" + assert stored["anchor"]["section"] == "plan" + assert stored["anchor"]["suffix"] def test_mcp_write_requires_attempt_identity(page_dir): @@ -102,9 +99,13 @@ def test_codex_manifest_launches_the_bundled_server(): "mcpServers": {"leaf": {"command": "./bin/leaf", "args": ["mcp"], "cwd": "."}} } - capabilities = make_mcp_server()._lowlevel_server.get_capabilities( - protocol_version="2026-07-28" - ) + pages = ProcessPageServer() + try: + capabilities = make_mcp_server(pages)._lowlevel_server.get_capabilities( + protocol_version="2026-07-28" + ) + finally: + pages.close() assert capabilities.extensions == { "io.modelcontextprotocol/ui": {"mimeTypes": [APP_MIME]} } @@ -128,7 +129,7 @@ async def exchange(): initialized = await session.initialize() tools = await session.list_tools() resources = await session.list_resources() - resource = await session.read_resource(APP_URI) + resource = await session.read_resource(PAGE_RESOURCE_URI) result = await session.call_tool("leaf_present", {"page": str(page_dir)}) return initialized, tools, resources, resource, result @@ -138,23 +139,27 @@ async def exchange(): assert initialized.protocol_version == "2025-11-25" assert set(by_name) == { "leaf_present", - "leaf_apply_event", "leaf_refresh", - "leaf_delivery_ack", + "leaf_present_snapshot", + "leaf_snapshot_apply_event", + "leaf_snapshot_refresh", } assert by_name["leaf_present"].meta == { - "ui": {"resourceUri": APP_URI, "visibility": ["model"]} + "ui": {"resourceUri": PAGE_RESOURCE_URI, "visibility": ["model"]} } assert by_name["leaf_present"].annotations.read_only_hint is False - assert by_name["leaf_apply_event"].meta["ui"] == { + assert by_name["leaf_snapshot_apply_event"].meta["ui"] == { "resourceUri": APP_URI, "visibility": ["app"], } - assert str(resources.resources[0].uri) == APP_URI - assert resources.resources[0].mime_type == APP_MIME + assert {str(item.uri) for item in resources.resources} == { + PAGE_RESOURCE_URI, + APP_URI, + } assert resource.contents[0].mime_type == APP_MIME assert "ui/initialize" in resource.contents[0].text assert result.is_error is False assert result.structured_content["title"] == "t" assert "document" not in result.structured_content - assert "document" in result.meta["leaf"] + assert "inline_url" in result.meta["leaf"] + assert "inline_url" not in result.structured_content diff --git a/tests/test_mcp_app.py b/tests/test_mcp_app.py index d17f7f6ad..e8f1c585d 100644 --- a/tests/test_mcp_app.py +++ b/tests/test_mcp_app.py @@ -1,36 +1,27 @@ -"""The full and compact MCP Apps surfaces and their durable return paths.""" +"""The canonical Leaf page delivered through the registered MCP server.""" -import sys -import tempfile +import json +import shutil +import urllib.error import urllib.request -from urllib.parse import parse_qs, urlsplit +from urllib.parse import urlsplit import anyio from interact_support import PAGE -from leaf.event_log import read_events -from leaf.mcp_full_app import ( - COMPACT_APP_RESOURCE, - COMPACT_FORMAT, - COMPACT_RESOURCE_URI, +from leaf.event_log import append_event, read_events +from leaf.mcp_app import APP_URI +from leaf.mcp_page import ( PAGE_APP_RESOURCE, PAGE_FORMAT, PAGE_RESOURCE_URI, - PageServerPool, - create_server, - current_compact_state, - current_page_state, + ProcessPageServer, + page_state, ) +from leaf.mcp_server import make_mcp_server from leaf.revisioning import activate_source -from mcp import ClientSession, StdioServerParameters -from mcp.client.stdio import stdio_client -def options_page(*, multiple=False): - flags = "choose multiple" if multiple else "choose" - return PAGE.replace("", f'') - - -def activate(page_dir, html): +def activate(page_dir, html=PAGE): (page_dir / "index.html").write_text(html, encoding="utf-8") active = activate_source(page_dir, read_events(page_dir)) assert active.error is None @@ -44,352 +35,169 @@ async def invoke(): return anyio.run(invoke) -def test_compact_state_projects_the_surface_source_and_declared_action(page_dir): - revision = activate(page_dir, options_page()) - - state = current_compact_state(page_dir) - - assert state["format"] == COMPACT_FORMAT - assert state["mode"] == "ask" - assert state["page"] == str(page_dir) - assert state["ask"] == { - "surface": "plan-choice-decision", - "source": "plan-choice", - "question": "Which plan should lead?", - "context": "", - "options": [ - { - "id": "flag-first", - "label": "Flag first", - "summary": "effort: low risk: med Flag first Ship dark.", - }, - { - "id": "backfill-first", - "label": "Backfill first", - "summary": ( - "effort: med risk: low Backfill first Verify, then flip. " - "My take: do this first." - ), - }, - ], - "submit": { - "kind": "action", - "revision": revision, - "widget": "plan-choice", - "action": "choose", - "generated": [], +def test_process_server_multiplexes_pages_on_one_exact_origin(page_dir, tmp_path): + activate(page_dir) + append_event( + page_dir, + { + "kind": "note", + "author": "claude", + "version": 1, + "revision": 1, + "text": "published", }, - } - - -def test_nested_markup_in_the_decision_heading_keeps_its_readable_title(page_dir): - html = options_page().replace( - "Which plan should lead?", - "Which plan now should lead?", - ) - activate(page_dir, html) - - assert current_compact_state(page_dir)["ask"]["question"] == ( - "Which plan now should lead?" - ) - - -def test_context_keeps_direct_prose_without_repeating_the_options(page_dir): - html = options_page().replace( - '', - "

    Use the reversible path.

    Keep the receipt.

    " - '', - ) - activate(page_dir, html) - - assert current_compact_state(page_dir)["ask"]["context"] == ( - "Use the reversible path. Keep the receipt." - ) - - -def test_unsupported_or_ambiguous_asks_fall_back_explicitly(page_dir): - activate(page_dir, options_page(multiple=True)) - state = current_compact_state(page_dir) - assert (state["mode"], state["reason"], state["ask"]) == ( - "fallback", - "unsupported-options", - None, ) + second = tmp_path / "second" + shutil.copytree(page_dir, second) + pages = ProcessPageServer() + try: + first_url = pages.open(page_dir) + second_url = pages.open(second) + + assert urlsplit(first_url).scheme == "http" + assert urlsplit(first_url).hostname == "localhost" + assert urlsplit(first_url).netloc == urlsplit(second_url).netloc + assert urlsplit(first_url).path != urlsplit(second_url).path + assert urlsplit(first_url).query == "" + assert pages.open(page_dir) == first_url + + with urllib.request.urlopen(first_url) as response: + html = response.read().decode() + assert response.headers.get("Set-Cookie") is None + root = urlsplit(first_url).path.rstrip("/") + assert f'src="{root}/leaf.js"' in html + assert f'href="{root}/theme.css"' in html + + with urllib.request.urlopen( + f"{pages.origin}{root}/runtime/layer-client.js" + ) as response: + runtime = response.read().decode() + assert f'fetch("{root}/api/event"' in runtime + + with urllib.request.urlopen( + f"{pages.origin}{root}/widgets/lf-options.js" + ) as response: + widget = response.read().decode() + assert f'from "{root}/runtime/widget-api.js"' in widget + + with urllib.request.urlopen(f"{pages.origin}{root}/api/state") as response: + state = json.load(response) + assert state["active"]["url"].startswith(f"{root}/revisions/") + assert state["versions"] == [ + {"version": 1, "revision": 1, "url": f"{root}/versions/v1.html"} + ] + with urllib.request.urlopen( + f"{pages.origin}{state['versions'][0]['url']}" + ) as response: + assert f'src="{root}/leaf.js"' in response.read().decode() + + try: + urllib.request.urlopen(f"{pages.origin}/api/state") + except urllib.error.HTTPError as error: + assert error.code == 404 + else: # pragma: no cover - the assertion explains the capability boundary + raise AssertionError("unscoped page route was reachable") - second = options_page().replace( - "", - """ - -

    And the second plan?

    - - A - B - -
    - - """, - ) - activate(page_dir, second) - state = current_compact_state(page_dir) - assert state["reason"] == "several-open-asks" - assert "2 open asks" in state["message"] - - wrapped = options_page().replace( - '', - '
    ', - ) - wrapped = wrapped.replace("", "
    ", 1) - activate(page_dir, wrapped) - assert current_compact_state(page_dir)["reason"] == "nested-options" - - -def test_invalid_mutable_source_does_not_silently_present_the_last_good_ask(page_dir): - activate(page_dir, options_page()) - (page_dir / "index.html").write_text( - options_page().replace("

    Which plan should lead?

    ", ""), - encoding="utf-8", - ) - - state = current_compact_state(page_dir) - - assert state["mode"] == "fallback" - assert state["reason"] == "source-invalid" - assert state["source_error"] - assert state["ask"] is None - + assert not (page_dir / "service.json").exists() + assert not (second / "service.json").exists() + + (page_dir / "registry.json").unlink() + try: + urllib.request.urlopen(f"{pages.origin}{root}/api/state") + except urllib.error.HTTPError as error: + assert error.code == 500 + assert "vendored registry lacks" in error.read().decode() + else: # pragma: no cover - the assertion explains the fault boundary + raise AssertionError("a route-selection fault dropped the connection") + finally: + pages.close() -def test_full_page_state_addresses_the_ordinary_browser_interface(page_dir): - revision = activate(page_dir, options_page()) - state = current_page_state(page_dir, lambda _page: "http://127.0.0.1:41234/?t=test") +def test_page_result_keeps_the_capability_private(page_dir): + activate(page_dir) + pages = ProcessPageServer() + try: + summary, private = page_state(str(page_dir), pages) + server = make_mcp_server( + pages, + page_html="page app", + snapshot_html="snapshot app", + ) + result = call(server, "leaf_present", {"page": str(page_dir)}) + finally: + pages.close() - assert {key: value for key, value in state.items() if key != "active"} == { - "format": PAGE_FORMAT, - "mode": "page", - "page": str(page_dir), - "title": "t", - "event_seq": 0, - "source_error": None, - "url": "http://127.0.0.1:41234/?t=test", - "message": "Opening the complete Leaf page.", - } - assert state["active"]["revision"] == revision - assert state["active"]["label"] == "Draft" + assert summary == result.structured_content + assert summary["format"] == PAGE_FORMAT + assert summary["mode"] == "page" + assert summary["active"]["revision"] == 1 + assert "inline_url" not in summary + assert "browser_url" not in summary + assert private["inline_url"].startswith("http://localhost:") + assert result.meta["leaf"]["inline_url"] == private["inline_url"] -def test_process_scoped_page_server_uses_an_ephemeral_page_token(page_dir, monkeypatch): - activate(page_dir, options_page()) - monkeypatch.setattr( - "leaf.mcp_full_app.secrets.token_urlsafe", lambda _size: "mcp-page-token" - ) - pool = PageServerPool() +def test_registered_server_prefers_full_page_and_keeps_snapshot_as_fallback(): + pages = ProcessPageServer() try: - url = pool.open(page_dir) - with urllib.request.urlopen(url) as response: - html = response.read().decode("utf-8") - cookie = response.headers["Set-Cookie"] - assert "t" in html - assert '' in html - assert urlsplit(url).hostname == "localhost" - assert parse_qs(urlsplit(url).query) == {"t": ["mcp-page-token"]} - assert "SameSite=None" in cookie - assert "Secure" in cookie - assert "Partitioned" in cookie - assert pool.open(page_dir) == url - assert not (page_dir / "service.json").exists() - finally: - pool.close() - + server = make_mcp_server( + pages, + page_html="page app", + snapshot_html="snapshot app", + ) -def test_mcp_tools_bind_each_surface_and_hide_the_return_tools_from_model(): - server = create_server( - "compact app", - "page app", - lambda _page: "http://127.0.0.1:41234/?t=test", - ) + async def inspect(): + return await server.list_tools(), await server.list_resources() - async def inspect(): - return await server.list_tools(), await server.list_resources() + tools, resources = anyio.run(inspect) + finally: + pages.close() - tools, resources = anyio.run(inspect) by_name = {tool.name: tool for tool in tools} assert set(by_name) == { - "leaf_open_page", - "leaf_read_page", - "leaf_open_compact_ask", - "leaf_read_compact_ask", - "leaf_post_event", + "leaf_present", + "leaf_refresh", + "leaf_present_snapshot", + "leaf_snapshot_apply_event", + "leaf_snapshot_refresh", } - assert by_name["leaf_open_page"].meta["ui"] == { + assert by_name["leaf_present"].meta["ui"] == { "resourceUri": PAGE_RESOURCE_URI, "visibility": ["model"], } - assert by_name["leaf_open_page"].annotations.read_only_hint is False - assert by_name["leaf_read_page"].meta["ui"]["visibility"] == ["app"] - assert by_name["leaf_read_page"].annotations.read_only_hint is False - assert by_name["leaf_open_compact_ask"].meta["ui"] == { - "resourceUri": COMPACT_RESOURCE_URI, + assert by_name["leaf_refresh"].meta["ui"]["visibility"] == ["app"] + assert by_name["leaf_present_snapshot"].meta["ui"] == { + "resourceUri": APP_URI, "visibility": ["model"], } - assert by_name["leaf_read_compact_ask"].meta["ui"]["visibility"] == ["app"] - assert by_name["leaf_post_event"].meta["ui"]["visibility"] == ["app"] + assert by_name["leaf_snapshot_apply_event"].meta["ui"]["visibility"] == ["app"] + assert "leaf_delivery_ack" not in by_name + assert "leaf_open_compact_ask" not in by_name + by_uri = {str(resource.uri): resource for resource in resources} - assert set(by_uri) == {PAGE_RESOURCE_URI, COMPACT_RESOURCE_URI} - assert by_uri[COMPACT_RESOURCE_URI].mime_type == "text/html;profile=mcp-app" - assert by_uri[COMPACT_RESOURCE_URI].meta == {"ui": {"prefersBorder": True}} + assert set(by_uri) == {PAGE_RESOURCE_URI, APP_URI} assert by_uri[PAGE_RESOURCE_URI].meta == { "ui": { - "csp": {"frameDomains": ["http://localhost:*"]}, + "csp": {"frameDomains": [pages.origin]}, "prefersBorder": False, } } - - -def test_mcp_command_negotiates_and_serves_the_shipped_resource(page_dir): - activate(page_dir, options_page()) - - async def inspect(errors): - params = StdioServerParameters( - command=sys.executable, - args=[ - "-c", - "from leaf.mcp_full_app import run_server; run_server()", - ], - ) - async with ( - stdio_client(params, errlog=errors) as (reader, writer), - ClientSession(reader, writer) as client, - ): - initialized = await client.initialize() - tools = await client.list_tools() - resources = await client.list_resources() - page_resource = await client.read_resource(PAGE_RESOURCE_URI) - compact_resource = await client.read_resource(COMPACT_RESOURCE_URI) - opened = await client.call_tool("leaf_open_page", {"page": str(page_dir)}) - compact = await client.call_tool( - "leaf_open_compact_ask", {"page": str(page_dir)} - ) - return ( - initialized, - tools, - resources, - page_resource, - compact_resource, - opened, - compact, - ) - - with tempfile.TemporaryFile(mode="w+", encoding="utf-8") as errors: - ( - initialized, - tools, - resources, - page_resource, - compact_resource, - opened, - compact, - ) = anyio.run(inspect, errors) - errors.seek(0) - server_errors = errors.read() - - assert initialized.server_info.name == "Leaf" - assert {tool.name for tool in tools.tools} == { - "leaf_open_page", - "leaf_read_page", - "leaf_open_compact_ask", - "leaf_read_compact_ask", - "leaf_post_event", - } - assert {str(item.uri) for item in resources.resources} == { - PAGE_RESOURCE_URI, - COMPACT_RESOURCE_URI, + assert by_uri[APP_URI].meta == { + "ui": { + "csp": {"connectDomains": [], "resourceDomains": []}, + "prefersBorder": False, + } } - assert page_resource.contents[0].mime_type == "text/html;profile=mcp-app" - assert page_resource.contents[0].text == PAGE_APP_RESOURCE.read_text( - encoding="utf-8" - ) - assert compact_resource.contents[0].text == COMPACT_APP_RESOURCE.read_text( - encoding="utf-8" - ) - assert opened.structured_content["state"]["mode"] == "page" - assert opened.structured_content["state"]["url"].startswith("http://localhost:") - assert compact.structured_content["state"]["mode"] == "ask" - assert server_errors == "" -def test_shipped_app_resource_is_one_self_contained_html_blob(): - compact = COMPACT_APP_RESOURCE.read_text(encoding="utf-8") +def test_shipped_page_app_is_one_self_contained_html_blob(): page = PAGE_APP_RESOURCE.read_text(encoding="utf-8") - for html in (compact, page): - assert "LEAF_MCP_STYLE" not in html - assert "LEAF_MCP_SCRIPT" not in html - assert "LEAF_MCP_ICON" not in html - assert "@modelcontextprotocol/ext-apps 1.7.5" in html - assert '

    =HS-KAm&8qfO~&f-V|x6MC7bgq0wcRZ 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 Lx~gT$_n-X>V@>TZ literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/26/results/full-page-inline.png b/notes/mcp-apps/experiments/26/results/full-page-inline.png new file mode 100644 index 0000000000000000000000000000000000000000..3b993101b568a8e718bde207637b77e54c103a12 GIT binary patch literal 56344 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 Q7%0Nv>FVdQ&MBb@0ErgD`2YX_ literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/26/results/mcp-server.log b/notes/mcp-apps/experiments/26/results/mcp-server.log new file mode 100644 index 000000000..409d67ffd --- /dev/null +++ b/notes/mcp-apps/experiments/26/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: 34607a5ed8444fa985a09fd828496dcd diff --git a/notes/mcp-apps/experiments/26/results/reference-host.json b/notes/mcp-apps/experiments/26/results/reference-host.json new file mode 100644 index 000000000..561b22e3d --- /dev/null +++ b/notes/mcp-apps/experiments/26/results/reference-host.json @@ -0,0 +1,110 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-26.YMIBek/page\"}", + "rendered_input": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-26.YMIBek/page" + }, + "inline": { + "viewport": { + "width": 1060, + "height": 332 + }, + "document": { + "client_width": 1060, + "client_height": 332, + "scroll_width": 1060, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "fullscreen": { + "viewport": { + "width": 1068, + "height": 806 + }, + "document": { + "client_width": 1068, + "client_height": 806, + "scroll_width": 1068, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "mode_control": { + "return_visible": false + }, + "axe": { + "violations": 1, + "snapshot": "region (moderate) : 1" + }, + "keyboard_choice": { + "widget": "session-options", + "action": "choose", + "detail": { + "options": [ + "opt-redis" + ] + }, + "seq": 1 + }, + "screenshots": { + "inline": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/26/results/full-page-inline.png", + "fullscreen": "/Users/maximilian/.codex/worktrees/a5c8/leaf/notes/mcp-apps/experiments/26/results/full-page-fullscreen.png" + }, + "console": [ + { + "type": "error", + "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", + "location": { + "url": "http://localhost:8080/favicon.ico", + "line": 0, + "column": 0, + "lineNumber": 0, + "columnNumber": 0 + } + } + ] +} diff --git a/notes/mcp-apps/experiments/26/results/reference-host.log b/notes/mcp-apps/experiments/26/results/reference-host.log new file mode 100644 index 000000000..4f196c0fe --- /dev/null +++ b/notes/mcp-apps/experiments/26/results/reference-host.log @@ -0,0 +1,5 @@ +Host server: http://localhost:8080 +Sandbox server: http://localhost:8081 + +Press Ctrl+C to stop + diff --git a/notes/mcp-apps/experiments/27/README.md b/notes/mcp-apps/experiments/27/README.md new file mode 100644 index 000000000..5aa41b85c --- /dev/null +++ b/notes/mcp-apps/experiments/27/README.md @@ -0,0 +1,31 @@ +# Experiment 27: Stable fullscreen control and Axe detail + +## Purpose + +Preserve the host's display-mode capabilities across partial context updates and +identify the exact node behind the one remaining Axe finding. + +**Changes from experiment 26:** + +- Update fullscreen availability only when a host-context notification actually + carries `availableDisplayModes`. +- Include Axe's full violation report in the recorded result. +- Keep the server, cookie, fixture, modes, and keyboard interaction unchanged. + +**Expected outcomes:** + +- `Return inline` remains visible after the resize-only host notification. +- Fullscreen and durable-event evidence stay green. +- The Axe report names the concrete element requiring either a fix or an + evidence-backed explanation. + +## Findings + +The fullscreen fix held: after the host's resize-only context notification, +`Return inline` remained visible. Full rendering, dimensions, and the durable +keyboard event stayed green. + +Axe's one moderate finding targets `.lf-banner-status`: the injected status text +is outside a landmark because the top Leaf chrome is a generic `div`. +Experiment 28 changes that existing top chrome to a semantic `header` and checks +the composed app again. diff --git a/notes/mcp-apps/experiments/27/commands.sh b/notes/mcp-apps/experiments/27/commands.sh new file mode 100644 index 000000000..d17ae06be --- /dev/null +++ b/notes/mcp-apps/experiments/27/commands.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +repo="$(git rev-parse --show-toplevel)" +cd "$repo" + +results="$repo/notes/mcp-apps/experiments/27/results" +run_dir="$(mktemp -d "$repo/.tmp/mcp-app-experiment-27.XXXXXX")" +reference="/tmp/leaf-mcp-apps-reference-10195ad9" +server_pid="" +host_pid="" + +cleanup() { + if [ -n "$host_pid" ]; then kill "$host_pid" 2>/dev/null || true; fi + if [ -n "$server_pid" ]; then kill "$server_pid" 2>/dev/null || true; fi +} +trap cleanup EXIT + +mkdir -p "$results" +uv run pytest -n0 tests/test_mcp_app.py + +./bin/leaf page init "$run_dir/page" +cp examples/design-decision.html "$run_dir/page/index.html" +./bin/leaf version check "$run_dir/page" +shasum -a 256 skills/leaf/assets/vendor/mcp-page-app.html >"$results/bundle.sha256" + +test "$(git -C "$reference" rev-parse HEAD)" = "10195ad91851502134930e9b80ec2c04e277a720" +(cd "$reference" && npm run build --workspace @modelcontextprotocol/ext-apps-basic-host >/dev/null) + +uv run python notes/mcp-apps/experiments/1/serve.py >"$results/mcp-server.log" 2>&1 & +server_pid=$! +( + cd "$reference/examples/basic-host" + exec env SERVERS='["http://localhost:3001/mcp"]' bun --watch serve.ts +) >"$results/reference-host.log" 2>&1 & +host_pid=$! + +for _ in {1..60}; do + if curl --silent --fail http://localhost:8080/api/servers >/dev/null; then break; fi + sleep 0.5 +done +curl --silent --fail http://localhost:8080/api/servers >/dev/null + +uv run python notes/mcp-apps/experiments/27/observe.py "$run_dir/page" \ + >"$results/reference-host.json" diff --git a/notes/mcp-apps/experiments/27/observe.py b/notes/mcp-apps/experiments/27/observe.py new file mode 100644 index 000000000..0b3a14689 --- /dev/null +++ b/notes/mcp-apps/experiments/27/observe.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Verify stable fullscreen controls and capture complete Axe detail.""" + +from importlib.util import module_from_spec, spec_from_file_location +from pathlib import Path + +HERE = Path(__file__).parent +source = HERE.parent / "16/observe.py" +spec = spec_from_file_location("mcp_apps_experiment_16_observe", source) +experiment = module_from_spec(spec) +spec.loader.exec_module(experiment) +experiment.HERE = HERE + + +if __name__ == "__main__": + experiment.main( + tool_timeout=60_000, + wait_for_options=False, + use_dom_gate=True, + body_call_record=True, + tolerate_mode_control=True, + ) diff --git a/notes/mcp-apps/experiments/27/results/bundle.sha256 b/notes/mcp-apps/experiments/27/results/bundle.sha256 new file mode 100644 index 000000000..78fc104de --- /dev/null +++ b/notes/mcp-apps/experiments/27/results/bundle.sha256 @@ -0,0 +1 @@ +35ad0d03b91e8903e7132e8916172f78a2b9226389e336addca8d2f53b23963f skills/leaf/assets/vendor/mcp-page-app.html diff --git a/notes/mcp-apps/experiments/27/results/full-page-fullscreen.png b/notes/mcp-apps/experiments/27/results/full-page-fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..deb658d89fbde377d403f8026c144e94723138b0 GIT binary patch literal 123345 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�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 VWma)L1bjkfc;%X2jn18@{{c|J51s%3 literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/27/results/full-page-inline.png b/notes/mcp-apps/experiments/27/results/full-page-inline.png new file mode 100644 index 0000000000000000000000000000000000000000..3b993101b568a8e718bde207637b77e54c103a12 GIT binary patch literal 56344 zcmeFZWmFwaw=RmiySqamKnM=O-QC?naQ9%r-6goYySuvvch}&0JFk5E8|Uud=hs<- z!C2j0-CZ?n)|6*HwL;`&#Sr1};6Ok?5GBNg6+u8C=s-X~qhY{+GY7g@v>+fTAQHj? z%C70BKOxmIWC#Y-AO)&hfzM9upZ|Y--su zv^vx(aX&}Fvg+ySNl;y$uoLU~9I2u8g?&KcX@7MMNxIR!zJiBAcq!??7#x{l5Ovhu zrqtcem)E{Ve(;NWip>w?Gt4ac{O6erE`sql*H6i08f0ryKHl5!1aI|*pJMeS)}eI> z%o_+Xh(rFqgNM)i&8KNKWEU3?TkGFp!uUV` z{UQ`Wvc$_(=gT|t1FfiZ8-B+gJ-Y%W|C!XzTPcZuWa2|)veI2uLfl?xrB;U|Pa~%J zqEmaZ9g8~tuiO<-pRAy_Zl-2<17?NN6*8k>US7c`mUTI8cl(l7B6$nisranrjk)_OOf`l#YY$|7^ksqBilzxzYlk*t(oPhd$Q_*2ZS9C5 z3%A+mXm>lgdwq7H)o!*jBmP!nxABaeDgF*3DVuAUm^&C^MaoC|g!@8tTsg&S4GbRo zAW(`z9TCD4vG;3dQssJyV)fV)rh`#`%^be|BHu~2k?9tz=W4o1X=A(Vqa+LNBKw6i zF-JDLoAX_iY(_JM2twh6PV@U^@l6nFq=qVs>vsH^&hy}35>QU(b72;$K-*So7dU~( zuEc}0aM%|dB=XPTs`>nX4Huz`|&8HdhkIvU$~#kEmTFf$}s}NyG*;0Qr+of zWu2Ix&I%;6LFf4dv0(QTohj!h2mXcA&b*U*nq=0W4{(&izvm%tg|K;? zEZNUpUvAt|6h(rNPZM}FVk`AJE3_M(-bqi8iF5es-iEY%Q+x9dI>;|=R4ZF!u5t-7mOxL54G%w>l_r{%yU3@*l-wqN zl@b(^u_ZidLj@L2S=ybE|V z+a8JLy1#q9y}0c(fKO&{Qw9?^TJ++ju$aes9WJGmvY+>;sh8QVyVujTw!c?7&t`0a zw|YO{c`bTdwt7UN6xctaCD6yWx%W;CFV{=>AA^EsvRf_op%2ojj(^33+nd~b8nEhJ z@REq5a6i68gOd)Us^9L9*tzUE8eh53m%>m~tbe~84uIWGVp6)fTMHVL)9upP{F(mA z$f7gDigLUtFR5@+@Ae*$>M)QqSIWa<#U0>>4wD;eWaR0Tf>k9?8gwl(2e=@_}CaQvXyF?T8mojPDk$qHV4sQp;~N47w_8^kvMm9 z=zHH_CIa|7WTHx)&xK!qV&zL>EVsYI?7m6k&PL$z?>rPcEY}$0@!RXawKeMp5q>s3 z&M#$G%opb~d8slCgx?HWv|0Y3SNr&L<(Y4d+wo#f6ps4yw`DfB)2UU?+ASO(Gg+c~ z`*Exy;%6icy*B&Tgs_tY%f_#2l{`k*=A}#3e2>qTl$hO{mu^=xkHfVGR;lcGd__rI z*RV*AcV&@@?OJOMFX%J3dyg~*Tlj;}^L^2ko=CYdlWw*5S^?qJcK_LYzRnI* zJxYkRte9N7g|(^k@v4Y6;Z&=XKi7OdO3oqPw3p{=|KJUA<+6(c0n8e>-qjJCRqF$d zn$U;^C%@3seUW^D@F>;o7Py`Fo??eI>fmbQjLmIE8DS>d5 zb*yVDyUS-WYHSIjcoS=DJ_F;-uL+}N>s8Mui#8~gHtWs&MRLyqUR4cU7GI%KC!W`IPfl zi^f`YuX_$WhsV}e{Y|wZp*610nH(id%4|hkq$4b{PhQtzTEf>gCd1}d4g#^ar8AUp zviMQn6wr>C?eo4c{63GdYz|zzI?`ax&b>%aQPyyOyyvbS*~gD4s^Ux+QJ3E88vPT= zq=dS`uRkJxvbo*t%|d6{d|RpS)G4KEZ)qU@oCTP>m)+a6#%iO%7W*gtiBpY&Nex2_ z3%l2sm<*j2r&DH{%M&$M3fuX&U&VIh(7GM&N~`@>`M=-JEI(Ihf4_`Y&A$X07QGI| z7%5DrRs6`mtCr01`tss@!OfDVhfD#!@X86Vwpn7Wh6|aWqGiS2 zx~Q)W$`(f;VjJ$AmHPS3c;nap*cG_e0z(R$)x@@#9Kp^0-0bYhvcq7m$7fkwZj2I` zV=1@~q(q)h&x@4hn>UAb2Eo_$_jPBsUIEsF$cOk3D_J6Dd*QjW^f(}*a;Z+YPgbR4UYWGjak z&^qFw2A) zi3gDrCQ_K*mxs6n9MNt4^F5FbLiOXRoV-Ls$izH*)OWLD#GOh96@pWPa>7-y{cv4t z+3eiKN|fyJt`xBMUJtvFeCxzsHmeOmVBq!8Xg)E1&6dg^f;h5KQ!-4LlMzQm$C8=D zutwmK(K-sGQ(nr>oZi1ry4jn`#Bl}2NDAyWjecl_-jl+%bKP3avHS2GH0h{B^T)lv zBP?34(`q;TsH`M*jAD~A?S=4OnIO_*(rXQwv|Mb2M#?mwFUwx2)MT?lVYeobxZ|HI z)v@}0*UsVmz6px&oG6W}f05a)FS4xI@9uI!(z96pNDT442l97;RNAlG@m672ba8|I zQU+on3i*kyFSMD9F#1(ZJI)-3OAU{g)k?Qin9!J`NrJJq@&(GwG_0I8X44*(KW@Jc z)YO%!v|kUDx7IU~rsYeS3s+89Y1JLiiKUk*R+k0CnJg8E6n4@lEaydpqZx5h(wh~el6$PV2VQSN=fKi1q1GKSu4dcH zpWI~}X=6sIQ7J{!yq_!5k$2oTNO$z3k_7wX%p!4TAXRi@`(S|#B*_1(%E&;3F) z^!`rIGui9B5cvI3NIg&@W${Y^{!hpys2Dx>#LuCm1^Y^Li>2wgMbVg4 zVbOg@lV}qKz3+b9oWQt1d-4U9PdZ=BktzN7L^@JKVTpRZkrmHgtao-bdwNgIr_p9F zl@OXAK8a7OP_{YIE*3{28O>)!_sP7SmI8cVIIOe zY2z#-TkC96Xmc}2&%ZhtJk=G8Y)TmYppcFKsFf%U?Oev|b-tY}QOjZ?%>)J0?Lh*j z)fbMdE2Z4+4W~EW{v0(DkHFHl-v0j4azA_u-Iib{2nG~alsO%6`Ost^tLmyA7;&X> zDnk2CbQKFA(o){z?GqkZGdn#M0%!;}>5=GEXuS3Y&hQ&AWHUMJcN*3%abDDl2_}#U zr*ah^70s+FKYd$<>?p7|`9w9XO#8`sJx>DdU?fHcD2G(UC-EpQzE%EmN4!M`TC3kH`>j@c>X9v(0>mnR>PwVdY}QgGPsF-iA5vp-nx zHGB)PR?NTLJPjO;%HZfSZ84hcMiYUz&S?nOse0ja<_7#_Cp6ORBTUXB0=M&%U z55-V#u?P2L;y@-AY-_R$y1STewS4Awx#*QgB7}AF4IN76D_`-r7f;KETicwO$DfHR zh8vhJzk=J7v|6br4n*emzJ)4pZ{siNU3{rTdr?-QODNZ^_bW_d|JIHAa~8#eKg%gt zWN!0GJ|1xkZQ7ii6xSJ&4V>6+wNve&f>2X%RJ+Cy{8zrp>C!B9pmZu?J;HorPwchIp9a#lkQ~tzhq&_d@WaR_3CpSPb5dFF&eC4P^v-6 zh`Ul^%iXRq8;|C-6pgP5rf{q2yOixh{=U-#XhL8Fq&cHvqh^pbE4&;H2$=Uy11*~!Oa-FLQdnJGT}yZprsp)iQ2hM$dA;tn zt6@zH#chlaHqIhn{txW&CgJXK zA)ohcJhCwjn=#pCF1q73)hR#*t7h{Wl7FB5Bo1aU0%yvhYpAWibhF7OD$;Iez}KKv z>>X9f^uzV-Z5oH^WmIO#Zp39A19zj%*4B|quECV{-Ncz@@M8;!Plh&O3$o|I9iQ19 z13mWmT$-{3k*)!a{hH&k4Ckj%K7UalOvN&(H$5V-Qw(Xad;N7enWb;Hnk9QHdiyC> zWu1q!-OH0MaTccfq19s}#_!R7hr_GoQ-r3AOrkQmz=t$`#F#P-E|0EDSTCq3-)EDz z@GH%jAb596qc53^yw6bqlJa@--YP@pn$Tctc*NXoJ{P{Z*9lV?x4{DK{hmgY%QAQ` z3~_Xrqk=Zf@w0lfxKF0&XXRSaUu?D)h#O6qf)-xvw_st{3|lq7yaaAz^6T>4rrYBj zk%midL7zU^Vicu~E>`Mo3D2~?l7S5d8x*)~v1+rhM_IJJ#N<}-FJ-=f%fJ4}nI4aP zidEf?k-5>UX7EwHS3}&G<7=ui!{tM~{U8`%4fhAJ=?pQ8to*$PxBLyXP3!fAubae5 zQa|}_e0+R9*TvJ*^J)bJmcoUYXEat|vdmu}9T|UHtMPs~j!J{W63|_^S>bKeeg->5R6yy&3*xsv*EYX$C^QeuK&J`dfdG4E`Zd}V9T~u>LK1a z5r)?HarNBj7+(YDlrqqknGPqZUnpLXLX5rvhb22w9^06cVZ{IMq4^NBY01p-Qp_X3 z1#)bCki-QAt4J2l(np=`p=%JuSWtnLPAU`%KwT4Jk-0)4VQT5Ob{7dCH)SaZS}eEQ z5h-VXgBh_1hSux8sCE_pZ9B*Q7k)XU7rrFv_p%dUztX*8puQCP7xIU4Z3CokrXxT6 zVYeYKbYYX03I7G|;!uz~{)PNdvcGZTWY7ox3E%>v^+V8CX4ZP8p8N%_qs7~k-d_6N zIbSUM%_%x#+s?8c{sBlsl+mbyPqvTm1|>7aabkmnkK3Pu{=pV^9#zm0xB6me9r*w1 zo%j;$!%Khf@7$=&&YJ^J@XrC_VaZU9r0;QmBb-K6k1BVsFjxPeq5&vqWIa|Z0)M&# zjDs1q!c*k$uOaG!&1WQkV}=0%@$%N(;(uQt&E7xQECsaYU)&MaMv+2_0m-|Bn6ox7 z_Mb)+ZFbKnb=Q~&9)F8RkPNnj_#cUg_lyAuU=%CCGFafBio7yG&ya$LZ_5Y*CyK~{{BGwjm+mSzP>^!N1}O{AfQ zEfEYUg|z1*!RGPxY7d!n4h5~DR)2!H>(0URRqr!9D5y8Bk{L^s#0J}=rGXh4%n|v! zOA@}+jti=8Wd@V40Q59~2lpw=2>;ays&ri*>FAFZ+j-jk+=g~89%n~eiHt_FA<>-} z&QxEeeRkgi?Tsv67<=B173PrLd0E6M*kq~x%(dT zZ_}$Qcobql6494ixr@*oO_XS~Sw#w)Xrw;mr_zqhdok}WBN6#mtuQ;K)E_TPA8d~~ zNhv&GF7J0Xe~E*OjHkr!+64X#VJzUeewS^o{^X6lb$gtB@Bg=y(IjmDol9{F)VCF+ zj{8egXbH4|f8qFD=&jEWaGHaGE0gy>JHk32+U{?>ZpiwSb^vr*x5M-C_C#$jJhSp* zODKrX`-LVj;`?`yzTaCw(CXXi^WNbynUNG3sYqdey(=+@%~U7L=VH6m>C=gU`BBk4 zi4n*-_d+o$IJh|p8ygaHU~JZ#blW`@_+GqUmbMldEA#jhuqO#m&sP)Q5Eyk@9JhKP z2{<@7PJh))ozS&}eb8!fb$6Ha0f~%^3_>DgA=)2JVu~W>zq`Lzn^;;};_-X{yvU1n z&r&7nZTi%xQ)&Wlt8XxdcH)DkUsNn-gF&og*94dbQBEQ{vH_bX!lqw z*C`chZBU_C(`;~r#ehn`zqwB3Hfu;rOT+m5^2$$2w76JN0P&-t)^)mPwopzgW@x5A z?0mhw)Cn!ZX6wamsyk2Ic*_s+>{p#?hi2mmdCh5`()h{b6`)s3rc0HmIsy$^mr$1#bcy77L?a1OnDjd6R7#A;Q=Rt5 zQXWF`j*?!uUCv*Q2IB-_U|pb)2!eyIUZ3v=`~&m(eQ#|6X-mXX#OxvwH^ioMIxLiF zC}~HaMR9VK*71MY_P9B$wwR@wmPtY4YT2l%YfcXdwV%dRnvnlg>X^UW=CRxKE@}03!?L>Iz0BzqIZ;A*lRxsC;5<+o4*nX=-Yk)+@wG9dPK!r^F!( z%qN2gLKUOXsXr(gAU|DQU76HRzU34S`(u*dX>O8*b_09eb_OC2`wC=#!m&yQ>vBzI z@H#j-^-qdL;00C!V)%Z3u(d@hBEVuiWGf)Lq&panOWxsp_DkjIw>-O`XCN`M0koNShgF|C(4A-}A-Je>;-y4ZSA$mo|$wQ0;Q zNZp++G8qj>)3lO_gdq`gf-P*bS9EgFdwO{tOr|ZCN$mW%J&7P@mrahlSXpWOIxUDh zX*)Au`sLkwdue&tVmkn~-g4n^AwTSu*TYFU+VJ`I%wI~0O3wXkJ0~p<^z~VC>j(3NUiBa-z0aPP2<-+NdsA1 z&nqx~9_JexSu)CF4pfj~BIa*6FZ^b*nMBNnO=xdpN354TB+KMM$ZFp>nFtA~BZ--6 z-1bH=Av~z?i3DZdz#iE&THn8T2GXhLiBC&mTLr=+m*e`tV=xq@K`NLZOl075yMOAq zJ6eMe{O%9f5nzRbLfeKQ5b`{1`hq`@q9L${u}qy`=a2eBA#@EZkc*MvNGhH&L)b>H zHQBvhX8Ru_iZA9v>fjv{>xTeLO#x>qRsm+6+I{)7x6Cmla#8F)fDr^duXY$u5tj@p>&~@x@Vx zd*9tub3}nHw>#ihkP!(Vo>y3WyliJkXP1I#vhlGQ3+}dAH_u=R9))o`xRW8k{-8Ru zm!L#Z#0A&H-9~VTe)W*a?IH_@iE@I^_7$R4CzH<$1Nzgt&)G`j;P6bolw9g3SY+(B zNe=HTqb%~dKPYr2zmIP0&o#hp2%02N z?E4;~tn69)kwK;iN1K`EISj`bncp2cR}Q!0r`E`}wa zi^BLm?lbi-m&2uEhs7Y|^U2g=J72FiAR2qptY&+9c!F~Ro9A(#6Av8kY1UikGDZ|D6_E4@_(N-{tABwAK+6x%tF!f9bHCMU`090ELAdKJu@EU5 ziLDreMF^1I)ekWd#?O5Mppa&NW#j*d1T&|QJZMMn#au-Bd@EMW{O689yN(L zs`+t0nmPi`T6XIh484_x6ZzW2f#=h=xAx0?l6ra4ELO+knZ3@h^Y<4k9&$uBP->e+ zF}>y6>WD;K3?`xRm+4s)^@{TiI;}UjEMHKM*9vW}F;XJ}Y%6uRT^cMmvNdnfY4og?dLY)pEm9)CR3`pnhgx?X0o(sGNxvQf+JsBg1BrXiU?8zrSuI?tfi z5xanhGCbY;Tx&Y6TI<}-l*xawMmRV6ZLRM7*kom!a&)0&b~EAkXg>Tw4qJhA0@TqX z#l~UA8c>s#L%y*5@g=bkMJ_c{2tWndmpJ zEVWH5Kcx5H2a|+cj$L{ZL^Y5bYQA8QSPbeQkWioN>n#_1LIOTFcs)BebyK=IR#+cN z)I5%+FKtUgB5b;KgZf^bWWymW48>pLBhvU$dsfd`}+Tgr_~aT zeI5j&^?HjH05;;D0&Tchq79|gZF^uflaA|=zCxo!;YYGwYk|z>SK1$&TCiSk3-M25 zw~nXN5rr*IfRr$z5RYN%6vd#|tP2)Tz}lgf6}~_q2bBc8l$34WQaT4{g6Zl5EVE%B z5V7`%5fi7O57v7JqRFOG(0-bU&G%lIJ7hMJ@04fSg78OMsne+Sa5>9Hrhx?0y3OEi zwS2+xFO4P<@EcYt5QGqB;dA%6Sg+5OUE``Y9MrA(#z|yDk?WYkB2Plh=lZ=;9xnmP ze+=;Yy26Gd?Vet2e%`Tp!xVA8?$M-11uu|rTO1CFWxl?8Xw(v^AG9JJ%w+e6)ky5N zDO&hx)r-u}+!5_i=v7a3xEowO+)@YYnk-#ft^KJ?Mpe2V%a$F+Qa@h-3!2lxq9yMD z390$_uGd2spF&RGgI2Y@3e9n1Vzn)~1Ub#1Z!^+yG=|2Py&}zex-!YBFPGuDqpA$j zRA9_tge`}w(_TB%LN4JA0WKil)UI|02OrZ|s$jeE3f1=`iFo09DY(u7w@WRR_-(ny z1c-5~SOtCuFx$)(DY!yhKB$$cE6jvTG2~@%FrxS)0NITdjaAPqSeSmh`z;D`Sx8j` zDX5^4M4ad>>t+a62t_~ucBO8+A32z;6pu;Op^!UP4ff5u%^r5HLSS&QZ~Aq|#wV!jKx;pF=eyEENz6749=1+s=QMkwmO1yMhheRMc;T+#RK=B~?d`oWY2{L$D z^SqVIpEizF==Hd`dfFliVJxQLV_Ow z@IKm@P&sd$MU{cT`1Ljh9d5=iFpLE1NJe^}A*B!W+izP!alFpU*?3wdT19VPKS)QP zdY_FBE3HQHAH#ZCo8oSH1%lmzkU*Bbv$yAVcAPL%Qv-TGcWb%$b+On#M`<#27_Ubc z+`etN*PpbC*5bVRBA78%M@zgru%<2-UZ&21X18lyQ_tTxF*X)-ApP z!cHo+jc)&oc9D2YZxFITS-=YP)9wTz_j-rd$?q$23~?XaIX+JYvX9z|knos(nSFg8 zj}PWh`~8uGQYu_*((8yPP#2c%nj#A8*Jv%s9sd0L)FHI6K@P68jnUaQJHqv|uaBJp7 z_sz9GSttj>R$ljjebV7kmo6^@cLZD8jaY?Ae7DO@&@xAPOH_Pagu_ppofD~S^o#%{My0W zg+tIN<1;^5m!%{_&w}$1adfS~shTZa7!-b2jv)Gy@~aeNSk6&fG&l!H?b$`}BvM%N zr+D*-$rxUS-;0Vo#O+7=eJ@#Q5=zstzk;t@8#cwO3&P5v zYNl8ph4^+?MTTq$^7%fI#zQ2xPaRL0Th0}MLgIY*tjb^&BDe+<_${{r6^7MynO1MQ zBw@I{Gv=ceH;t&ez^v=TcKL#I6aiH!vH2hk+gf*05rPO2W;ia}@wpCn5h#$HPNuTq zx54pOzT!kaz7EnbysVC$7GjuNn--)eeVRzD3;n8|Yg$ggX)g|CzFdM?r}&_SOw0un z(q_~7c8mW>9{Rf>_-o(tFsv@jr&csdNx>K=TU#1k?b%!bB1P(6X)I|{Jk5~^YE4I8 z{|!|JJwBf;K~`4Y)NC}Bn?nKcdHtdvu~`sPt)i-t>6~*rt&S40!Yi|}LReZhYi(8@ zTRm-$spmM}D#pL}5yw|S>Xqbdu);xpx7nA?*{r(S%?llS$!HzHm-yM2VIKnKlhi<}_jGrA((d8%e0$_ypwc9cy2KjrF4h(>2U$vxX3rE;RSBhXBprasy$ZzFpkIJuOWUNgc&g3}VF!193EC*Y*dGrg^&A3*bz+axyj)AItLsW^frtWtA#MAYaX|frUM>3oW-=V)*HGpZMsLfRzN}kE z(4`a2?=OONrwMsiuo$b2E^=$`PT3*BthRX4KUv&P8qOqf%(v7kw23&sIwq8;P&RJ| zJ{ge8-FxnB$9~ZIERj)4(qlGMl#<}92ODu2!^0~STfTTH75_o2LT065d(4BKy`H2L zvTl-q(_w!+snV=c7XU&;x$5VlzAe}89Q?_4JA8-2u;`(x=db$1eEr!R$^i>?d|YBj z9$W@%#bH!{aItZ6<>_?1nlC(zro-jr2Q^dbVlxa;V=@_<2(gBTg(uOleE7qcF@{`B zmX;#Rbu|7%tKE*f#7^!|`LOsx+0cF}TWKf;?N{7U3aySK%R5px?gks7wQdoZ1h02* zf2AA0vpv>fMbloMFfk12HF%B#z6a7Vc6^0F+;E&a!lghM_) zA0+i=LDpez0AqWE$Kdchln11_d+}J&x?x!qeQNyj^c81 zQPLVUrjscrD~*-(iHt3_=ixct$sKgc$8~s_!(j(Vu<+Dqupmb>X3?LH&Ch44qc++d z=+!bjhb$USIVUqX1Cwjtzfo*lv01OWD&~Q}Q;tQCoV){x@uhsPoXBE>iXh#QM8v3=PB{Hnd^lBm4z?@SLp)xrE<0#_hL!=vjx%Am`Sq}SW%NLEcZ#Gb zM55QxCeK49lWe=O{s!P<4hLhZIVB3YR6WFimgMK|WURHOeYOA)a`JXq|Ci}}rNQc4 zF>cOwM?1IMfq4~|OHAP<0B|JawQp)V?fRfzGzA0}nD5Ct#G7%Y18>axyy*>Gu!v|RHOI|hQ}dwr=I zQ1_T7^r-~t{e0}T9dLzAl=blx8VTp4T@S>Xeo@wPt!ef+L1V*ui;2T6UMehp5q5f~ z`|Ys0Aa^ew-DRdhK32Ph0*TGsdZfv?)CKr>iMS7wf5Y47~9{bw@0x>(%|| z6Xj-d#Fg3&Ft;=q2qTOksO zV1?$`Q_^Oq6D$e@7~;b+sRTO6QtEZk!;>u(F$AFSBP%Q0GnNhIZF?i@8igl`Uo)F6 z1l@-KUQ%1js!bywki`&EYABj@9*iU?uD;Z0L%hq$!4=;D8AZy4g%d(0oebhnnBj86 ze|LB1>YZR9;+n42@C{a@Tq=nXz`47~kxh&M?X8Mj1L|2o6`_R}q|EgGe2vxGI*cxg zvrXs{9tfT=TR`pC3gw8+EnB+vn|w{d;&|MpnBN7Mj`mcfQPSet{35YLLNNpmfHFms zmG^5QC@S#?<_PpQ0mJ5>6hfnh!Vy*|A6g4%%$A1n6LnGF1j_xaz zAs_fte7DdKMx7d*0!#7s`jfeKcahpc{5C{%YPk$n59iGFcKwEnU**p)ZVn>fWKur| z(i#qLi(KMwDsH@i!(r2wu^Y&Lpps7i=^?z-%*nv!~UZxrJlvnld7eqwhwO|*5rDXFbM^3Wx+qBT)CPjUhMJfx({fFAn^hc6Pn<}6Hfuk3 z4A>vCO%|hxQrJwrVe{EWVi72`E(KKU^d6DgOd0&Myn4CLywE{~&-dn7C3LDeH&TNK zG$gw@Izbg_>=i$`rD_Ad08Ub?ZXxf3fL{RM);jFYYDVb~e1$~Cp&q6aEMwR5Ju2%< z6K&SB6uxCiIi4)DTl0*+K&(<26)=d$sz=eAF-Ew+Gon(W6(&VKz$1raTm|<(^!HhV z5^-@97!c!qGLO!iHFZPu3E+^5gV)T_aCn#D=mJ~ahe)4=1RZDwr%xgl&`_2CW8!&mQe784%oN`;*;6Y2r5Pke4Kg z1RU~Z#leYC;J7v4if*Q~vlF|1Qw?AAnU1H1$b38*9wiSMU|6?4j!_0H7li>|1z>iA z*xpv;j6?v;qs#5U5#}PPfu5d|TDvBYGrIPsNv-w5Y62K1Xp#%hJ15qly<W+Qp=Z>pmJbYIgt*zJUoM-AdgV9BUnaQEpY?d2rr?v5{ov+-vzP=d3#f zTo&Q7Bw|IPC7p@X(kkI0JuwPLs>6sqg#tSn*zh21QpEP|?4>R!19Lnf9AXEyZocc7 zW!T;Y{|W|GTmR}n3BJ`p;v-~wMDnbZt-y*~Bo<|N7zAda@OuS+!#>NQp$FbI(csKB z_ggqVn)-P7+Ej`Y5k(xB(b9uaWOjpOJYjKY4al&B@E8yp;dVoaJVc@G!0d_sKa)ij zh=_h56@bCv0Ms0bxm-aC?(eNHfGQN&#sqOqT_$a45Q#~N@?a!Uci|UbKLD{8D#YXV z_FIoGVpDQN9qa@N zd4`YDOuZXe{i?T2TBt+$fHqPzNxqJOj4{`Ps2^tr5R>tPQwK;LDo*jOwKk5$!vmz19;(sQ zX7=_Fo$3%(Pte+;Ko8Px`Fn|qRNQB)@I&Sr)A3&=PA6Ra12tl#mvwVR8uWJCc|)=Q zL;x&oT@o^0|7s&Gli^g#y~;FAJW`v;>hQwz`Hy`2U;Vsx--~6F^RowB$uY8M zRZCT6EYAYuQ4-anqAm`AKxha3saq`oC1)S`%JH4s_7d|^%fKursfcBj#$NvqgXj9# z?s=0M>FpOA^gpB|A3W2ThGv|<8A`jv)b8m^Sli^Ng5o$;RpDm`&kAHQV4--BjHuV_ zJrly%N<@!7h5vGrfENIionU7aY6vrzFKr2n<$#}0SE#pgnMzf$o5I}-zZ1481U zAs(7rQ|jh;&v275GCzvK{DsJrk=$27U8JgSBB`FzUUM>4bh1 z(>FtF5qq=wz@9j8LDr_rOSCSqf~5GL&AJS$|DhW#|IZfQzo=V((a6vwlI?o`VU&sQ z>K70+cY09%MR-FI6n90Z_NKE#86V{~7kg62N{9Z3c?Rnf@5Mjn3G94QV1Q?Allpre zLcWYq{L>&r-1Eh+fiUk$;GawCfXNC4pSb^b4>6kZ-wZeyV8ihL!6^HuTYtDze-X_n z3`2}eXpzRiI=#`w_D%n*6Jv%DM|gkuU;o|$%;i6~Z2e1_ix&4=K|=exTV(kE!)p7l zv#|eR%Y{&I+@}BYwCevNXLVaa|GT{z5nAsb>5yUl*L_X@vhOHrvi~z^ivKwqyZK)o z`p;%*RQUgO?8|?Y^8XFwj|Bd&&&cSc74*Mc$q;dGYwp9NGwR4#s_p;GA56gdzdPLf zdj3Z-{!5KN|Ce(A*KYVk5+dxjf4HT>Q0eZn|E`UugT>I`f3bl7DAIqa%+Qbj^_2lN zXC(7cMT5{TE^?E|9Ki;riCj*athJd54*=Nj7!o7){+?zNa5pca{MD<=74yV#KWKhJM}Gt=DoK%(8*O$nX`j80KUpLYZ;N_+cUa66JiCRd zO-#r#?es;Y(K;k9Rr{kweYDZmBVV4*eb-igdi7urDwG3iTzl?Vi{hU^lCtkeN$50^f$3z&Q{CS_8BxpzTq#HU*BC5@p{)Js1SIz zo4Gu1zVWi|Gt9_P2nxny4^Bah#Fxt#dXrzxi<4c&Y0Oe@bpZ7;fIDb1p4jeHcurfRrl;RQvbhN&Yso(=Bt zdv|=J!bpvSxWQ`OR{z2}+uOX_XHxc%NXO$Q@bG^#XniH+g7en9Csy4V$86#u;A1m3IJ$%0%VKzW$$Wc+%~doJ@oGB{ zFFw0vNam*HfV75Y!%;Mef#6!SudnaJ^Oiq%IzCN+f)Vx6Ja3my>q@^=;=r1S^Dn1U zD6gG<_#k<+puenn0HiyA4o^z0X|EnYSO8#1Y_q%bWxJOp1A;HJI6R)=w%T8$mg|j1 zlTrO+3&l0E^tWbA=!>YGU|wE4Up>8M&4y?qGx@v&`~lXZ;OaXwo6txCx6N4c{e7t{jr~n zLZapR{gUy1V^%H)1+VR`(a)87tvrS|!sQcikSQ-ny9dHd&9RTYU<~ zG!pdLzRtJ$T%5P4jD{xBk*6dNO=jj=1{+YsFq>dPlgfltiJaUeyqDVDPn@l=SDvkQ zEDsM?E5u=G8jOvP#DnUb_a@c+_wb4>>Ks1<@jSfrehDVXgr>_dYr$vn@yKge(23- zM4SGj45^1`A$|Z_*uOmdr&R9YY~>%W+ab7z!|ct4wchR#R=SN&vhp@QX829J@$1R{ zEfEnhz^frz?=&+tWh_uP2lZWl%UBymALQZX>x*O^44wY_1P)TWN6hRuKOAsWbOQcIm%KydMYpp%sz)@+L_%G zW!l5`dhUzU-E;Q9$v9%nRL{~k?}W|bkO&EX=?p!w{hmLX9v+=ilA9b)HvQ{lm+cY3 zB|4MJJ1Pyv|E!U?1e0fHF8f-^o!=(CmzwnW<+7+PYe+n^xr-{ZK8U_Z;NKnhRt=9$ zHSc`5HC%rYUQ=55gp9_v8s|4=X5$r?-g1xYkHZx3b|z2?vC>=RE2Wkg^*C+zrckD^ zYMp@32mD`jNWwu!2$W|8ixW1JAMJ-`ePbDLQOE^74Qj3ati{=P{XtJDNoFjz7T28i zAkO|uCgz1oDX&f8@z@wm;Z6DC%8L8Rk$eEHuep2=yU4gf@PGFXyBkPdU)K=sqVl!{ zY>-b+_g1=Mtl6EZ{*Cd7Yq2EUMT-90)j}Y1wK)5q1Dn>Y``&+{9Mb!&`~Uu-e?qx` zQ+WdaMS?lQ7ypH^0hhNr5&wIpcjh_>^@e%>2OIvQ`bOgT|1$Zv761CzK^K}B8TP-Z z^dI=sVf`P#{U5;gzc~R5sek<9ef*Id&pj4}FzVgAUsG7Xbny{RvLVpBMxsT7uQT|Z z=V8OTDV0E_;sT(Iy!7jr_rWq9DOg~REHwAsk zua`HUFDC@jAzDE8Hv0ayn)?lsFc`?n4)FzLccwjO=jL1;EG<2M4ebCW7^w)%vsQ`b z__;4cl@wpIMuos*P+aw11XuK`Tia4cL|%ps1$Ut@aNMpgzt@zT5wBke-%J6t9ycMB z)1#C7lu^>Rv#rE4hXqr4>|dLAMHhdA#Dd&9#h1y+Nq{b3(nVUTG4FlDvGa*4d2{#WJjmGc~bM#2PyLBDc^k>J?jJ~&= zE8v~69?B@j1S6W>u};lX1el4-`iwqzW4SPb<#9 zj=ukvkr9;Y6tty1yncyG7p=IOfY|WUgyYR$4Bwm7PbAekz!nI>)<}#9IygGoPgWEd ziUeQ3*i{*NCpOvOY5#L;ymYct;w7~VZC+hn9bh$*^SgL&AwuwmSxX_1g9k_(kebIp zCZiPbJ6jtxKpq0sFoikAeYH0S{}4WJX^=+ZammAzqpdW(K$a{TQ z6rQ@m;>9VYAw2t~jvF^Huo#%;11T)tUvajzP3m+Z?lv z#%IxP@&Ol5Qn6If-)r*QHqOCVe|*l5SW)Zfzw#tV;Cp)AHcg9!Yzs+;OCmD6{{AK?vUUx;~Yc;9tqh){yxBcT2A|fIf zmZdgq=Z0oxNNwF+d``{|?(^~0g3lH5B=cdFSr61Dow;P z1Yl_mrq`;H5D;*_tbEO8usM#b#8Hu$o6-Xm-S&JlsbvLe733^If8X8R?TIJXc*n=h zZ9m^s&yT5Qc{7`?sys-GDNW~BNQJ@TR^@Xn4Z=b zU9b1pPuZ3Vr+c z#cd4jGTmZQhWxL<=&m#KHawVqj)XEjl`-aDqm~yA7F6|?7VtiHM&iIz8oj4is$Cv+ zpMh5Ct*XE$m!(|TLAK%uc-*f15?`Q9f+p6yuj4HDQV;JCerjwW-tkA3UYSgx%jH=V z_#IeS(2M$BG4Q$N6tSpIeFoco@L$9Nxh3`vBY3EVS`ymY+OU8$37{!3^5!opfbvve-1t3HAb4sfd zEruncyfj*;fE5;+E~zGFdUAbs@DxHebc5&bvxY@z^%ywaVmP06uZv&_RLR5;Y?7lb zArkRA)bWSs&wPA}^0wgD*VK#UE{u#+_=~m9CT4-bSLZdkTug>_rb51l7RSV#30*xs z@73~TqsK&j_OoZ}e;YRYS^hc1KZ`z+Vixh`9=cymOW* z#DnoD@akL{4Xv2m%9E-}Dws&n1692Wo-|bqB`D48X`o4?@?iNT=lWZGefv?X^mSr= zPIjmooCwdv3$?tb$ zZ;q^}?;+l1wOf@$$Q{_;y6EI5EUdm|HCql4tk=37`o(xrlz5X<0V%Nslo?HIxJcx;ASiQ2Bzj8p9r~% z+%~2-?Pac>spmi{@$hGeybz3*Ny24{oDLkiAFvywVI!ERFp8-p7xL1~{r+8qHtsw} zkJ$G5@^waWEx zqo?ar|2;q6ip1$iITZHU7l&<(P7gWa5$h}uYA_sGpnoY;ZAtyvfqk*lAp;%1UusX? zM9^h1JJ(;}{C?nnxPUL|h!IKr;aLcd3TU70#+lb?v9FGqsj!Rj=a5ob9A~uECW{7P z6@JSU(lI0v_CZZnm)n6H7ASRR@ajB>XK8(LnkWAJ*6>7jJ0XGc&c;pg_E7cwz9qDZ$|j2L?kte6_H`j&L^J58@+X52zO! zy;T^QlZ30_RDMCPOv2KWsBm=|>!|k|0z*=7xGdx}^*Ys%9NbymRO;HU)G46}(rtrMLG z7G1G|nIu_6o_Nyfg17_hQR**pc45CmNo|3X2ZAhWjY71(c(3>$HrIipPdGORj$-LQ z=teq$_~%KCvX+PHk<9;kQo*;NK`;iAva#*SY!~k9c!u}))fN}m)dq#<%Je?vKgrZj ziZEp|10O9jvZaB6f&Bb|R4C_d)JU*^Yqv1pDvgMEKh1LMqTyU;lXw*q^V@NElkKRi zTp|=Pg{wS0ScaG(d+5B|{vs6}!recc`z|>}t%3pq^5JUEZYT{N8zpb2W~yzG%*ekt zoi+HMI??IoNVc-FzGk0OiCczkF{zBJ80lzFY;kiu+Y&+H4SSf4^&om0X`WnnQj_?P z&Zzs4FzuX#Fb!3{A9kiOlU6loUco^Qcn-uZl^ z3x9X4{DRvAg!>P*wK^@#pAztl1f~CH-xNc~Y>95SxtIAOj33P3=0*6I_{;fzW-Pir zIP@Tlm@hvD=YM`;qVS(@bO|ki7+kBZJ_j-C2MZvRnT)&r9({jqDZ%|ITNX9q8JFf7 zpehA~ItffN{s+VehaX>}t>3uPNpiytz2OD3{zmb~qVvy}FXC$SFTfmLY;?b08dIKK z3UzD$n`Y_B!odndr+l(67;ji~DugY17vU@BahMWEGXX)u^86m`VjUGmjgV{oUZ%$# z`bJ4yF?=YQDNh@re7n{Elzqz5afwd+PRg{J-Du}>G%AFkbn0BpECVJ1eEwb?x%)(F zX>aPIRFV;;Ijt@uv*N#Yu)Xdc4skLV*zo8z3YF~Iwg6A|_m;w5L_ksV;e%?zGeQ58 z?Q(&9xmh={AX)$rScgNN#oG!Ta|q z_yh{Q4suRu?2s@Tbdyjs1l(mE!Vr zPXW=#<|IbHq0xQdT@uy{yUt{(&ZMd-e*kUXmv4#m%4rY{jD4x+lyWL1O?c?J!YyNMQI zj_sjQNkaj+!G95Gyfr7>x(?vj;C0ZgEa;V}SsyF@4cm1xHyCtoEPd}pn`@3DZetK^ z&(x}LDZFMCI~^8B+iG|q8nCY#4BLAg9`6gb3e;O{u*1Cj9fL_Bd;}SXkHW4n*CqeX zDP@ISJoJ(ZsK;qMmO|?d=3@_cd0vDqK|yAn3feFfKtbxk&5&lsqgVyYn1HDFZU)n6 z@v*tJH307%|I=LwMce7>4S4rZFfY3>KH5*R_a4DY)nK_}Zr6eXndvYas(8gJuUh-b zA@C6t_n5bNKDbk#Dd>q#Wn^Teh5=b1e$Pz{@NjTLr1bDq<#`PHN(FvW<|dysNx;z_y74mC}ob256oi{q;nr&cfpV6dR9RQ zN8h?cr?Svf)?T1kHSZ+oneAvHX&Tl3!OG)4i^J8vaa&8>oe4)&q{jaVm|;YacFdF9it=#>6RfM@IBut*eP>8FU0xs=T(NFoj) zAM02~L{plGl_Z$y5Fl;Me0KcgykIPIE#$tY1Sf%FGUH1D_d@Tz+1-U&!t^&R+B;Bg zaEw6FJaNSDx~!DWi=P(jR%p^1^ss}FQS|}DI=*}DU0hP zPy0O_*C~E{vetP4ix-@XvZ>tmR<2EenmfYd`spnFojbGHgDEMGS1;6fd3mW@VQV1g zu{#1h=%VrXaSx=inc84OF=#kaAy+Z_u-R3YpWSyA$?&ISck+!o}iu6 z;Wzw`FNVv!5*FFvHIYdpWYaG?eg)88IfK71G7a$u-kQRGX-k| z31Pv&w^Yidk4BLKhGu5Ta$|7c!oV^M@g5p0x+}S+kdTn1Cm8}Rrmb)BHL7hm=|1hp z>FVkh5q_6R6@U4Rda~MGmM;gA%>oAqAHPYJ-FERKR9sFE34k7IVlm3GceXa0V7=2Le zVh@CwHQ@*^Dl=^lJ=pa9gkw76qfLtMmFagk zGtXSF&hN2}U`x`L^)5UL7zgz48^~bkE*{yAjeNu3@Tf^7@r2^ggaaXgre)^-{*piabsX8jhwJeNGh7Jz?1=iEZm z$hOws&2g5wXjy{AZFDtwWE-Ol7ScLKc*JPD3Fyk{*JO@b@1Kx2pK>)<{Y$;SLkfuGGZzJElAw;%8&2&jwpSx~H#g3tJ_xJHZMn)Dl z0C%X?2egpK%R4jP099xel2MnQc8`7fN$nPGLsdv~Z8MVFri0L?V^4_rJR;&3IPc^T zf|4Fc+zJiVCEMgN>k3>t1~6(Q7t@X>sb<(psPR95x|I+}-HuQHZu*7-?i*5fk>%z% z1D68rKgia9ni;+X{>Nj0qexboO(*z|pNCO~TV*d>e*MOp@vq;5`~QdL#U(n^B6C?X z`ak~Q|Lv*xhk4=u;Y9HJ?`QjecmV$Ki~k`f|HCivPXYP=AsQ#NVvCuWkdmeY2lQj1 zvDV_pA-pAu!8A~hpaT2aQoFCB;(+CVPUI`Z>+9OR*`Z7p?^&ONqwCGD8>5hXXbHOV zgYUzBtc*#97T)wGm+RS|if>9Z%cl$M`CPxx&CRv7<*2s3uv%LylwRK0@cq8lSr9|` zPT02!0u;z-xN_2K7q!k_-g^M<9>MtXePJlj{{kSKQIk!&n8|fcM}%T9f?v9K@(K*| z@1IOhO;4YnojLqyP>x1;v6C#>3Cx(-pFiMjetfDS7; z9;reyqk!kRM{{dK@WT9YP3ilH9>9|YsA~s#5qtA3Fy{P*CYvYmWSo~9uNXx9PVBx{ z7c;$tAYmKieH&2hegh`J{nIvXuk#p_k^;gU%@U*-Cnm!{mIa&G1a)ADd zc-?Vc4O2%)N7&qlb|f)Bl4|Nnp9gfq2zhTmLn1P)`qi7`$%A{CyN|-#+ltmSx%M?n zt1{>+XwvHXzukdXC~~2fGA=W1Mg9KXr%xXzNa6xCA{QNcGIVynHb{Da|Jp5phmTw8 zUBRUA37^_$!+O!c3)@Vkw-0fy3*}P34_Eq~ZWtW5mZ;|sS83TBk<$Q9KTBuTv{*alpq1zdo z3PLQ|x@W$$q%q$0mpgy>%*={Yvq%}9klnN{0ji-bpQ-N45Qxd=4EOypv%sSJ!Spu) z+dhx??(7>5qoixIef2WU;-vGrfV1J8DeaHI*RWm@$CC5STPLajdzQi-tdE|D4)Ibk zkJX}r0?VWI*0xyOX#J-$kCB6eio>72M=tj088W(A4As@i)Nd|MPGHgQj@8FVQ)jLA zy;^YwQv$8zwK~w&=Ctw|b$-Vr#Tr|CDc=hfBT50rPB!D&_~1>PIxp;tzLLDv4w}VW z=b4NT6Ms8Ji1=07UwB;(Efq}!T9YLGP1s_wesIy1z%EwoiKU@#gS_Gyq4+$9Jn+3i z*JgSe(aswVleTG;sjm$`pI$P^ zD$HP;1shAAMxRtJ}}9k6j5+1%qMgVf0H;sXH{kFL7z*vOSM?8fzyeCKyzvef)gJ%Ct)Ley;&4 z(5L{O(R6TAD}hp^-5-3^WH&ByAqyb*b$A(`WQYZ`1N|LG!Z%;z{%gme7ME6Os>0~P zZoHII*ky6*V;<}=13E?7b(YA`yTPKv+Uon8em8!oS~3hB^11h&el~h}nJ@dmHuQ>4 z<+JnNJj9i6qvP3(<;!n;w^WLfAT*f4ARNkU^%?Q%9X6A@`_&U>b@2&yla|%3tq=tG ze_8cPl2NyR{c5y6-9W(@3xqvGyupm|hvwjgpq=x309LuPBv*)vg~r|-e|!pggJy;p z46VNxSjEaI%=qecmIGFF;V^SbFsF&wuYnNLmFl_0w^&(o%&FNk%An$6Sm^Kr-ab0z zG)?4Ze|}&7aJNCLV&O%FC*5G7j)fP#!PUPt;n)o-ELuV!s)E5;geUanEd+l5DYx*BS?Sk$YFXbs}; zX;r`cK7rBs2IJQ^z*!h6VAffK6w7$Afl58Pfagm0JwkRvaXl)HFm!^=>E=eF4Z_X$ zQ*tRAx0cY{n0KjhRm=5{Pj+TvPzZ46A-!9XeXox~pEjtyQyy&CydD%ia{C|i9;ekh zXqD-5&iNBFX&LG_dd2w&R#^=|Db5uMkA2B#EP@X$Z^pNP4 z`@P1N#%q59q>2PmaJ-YxnUSoX;4mcx2pHWpWk-c zm0ri2_yJ)b!cgCE7!+QjF9}uK$7BWeCgvE_?%7OzSo&OU0PSJ)tiCX)1zt_xe(5k> zx0D=r&-~e2ADC=7^JJL{MOQf257(DydfvpZXNv`o=;l9Q>5RtzSI5pB(If>6{Teqq z<06vZ?0Z z#1OJ~(lyaT!Ay*Lm-TYKy!PRjWlVCx_K|lFC0@9$^sH>bbJ)KgNaNXR?}`!f-njLn zIJmW?9r+C2YFKR-XXj$$S^t_y{?c+RrY`hXu1;l^k8Jk$6<=aO2crDf z@jEj)_x2A9ak48+QsUgBg=F^YR-NPoM{ik=p0{}n2>XfClm16oktSD zit3q*%Rm8nSNh#Exuf|Z)naO2xo`mIM@rS9UsJiH2r{_+UmxE5E~;n2&;EY>;eJ9X z99o!*{~O9btcKoFa2Q|8D880t>?A&8*|+KVC>(Sd3d3bC5hH3L_M2 zprqajc{`OCNsck0NgITr#+$&Dc`{q?o*1h}uZlD~J1-S<{QHfpN+r;jf5CU02_P)>|-u&i|7IjO+^1KweV0crTTMta2zf|^LKl#u~ zukw;?DV@i8q}<=zmBynA`|bAjwo8xc)8RqZ22VvrMKj~1)%uNvf<09>;OFRYi)EWn zG@#w&|+5mlhxN} zDHwDD-Yq8v1TDouS19}f0&~|?M#L&PRI!tD_BuLvBo)hA3`wD)zOQqi#be)yKNkAg)Ut>}X@J@+vr$?M>|jIM72g+S~p zFpc2cY0s63E_wWtN!;hfEP{mgm_9%*sGOr=XEXeOV4Kck{bVSkzO$T)$Z@(F$Lfhx zn8W&I@OTM0v(!aK(ZV;SP_V>Fh=YdW8@QuVd)W2w|^!VlIf@7 zIoTc|Ut4`$uAiQT(_C{WQ2njLC(FS*AM><#rh$x+=m(UP&Tb^wEXHX(orIW3q}$fT zsWjqZZrJQ5!&=e&vMm8{bM*JxYhM{| zew=glvr`3QC?r25ldhTwJTH%BMjSW7leUM8?F)#`>t0%f&c}p?+t&rc@#% z+%HDbxma@Rt(bE~(bc2F;XhPT5isH-UEL{r=prkTqhDt#I@=4;wEHmxoujGUSBuZP zo#ND$=`|`01$-j11caq%I?wXY1v^`Iac&rys0SlFY6X*W(|idMXDs~# zqK!J*`+_rxC*4U);nuW2d?LB5hhm)&qZMG!BjvN*Fv}3E-szwXY$xx@G^_y{vqZ3`>`JRyr=9CJ<8{5k>gzS=oq-)7KnLT z@CS5etM?Foi|ewoD!gm@>_I8i=(R#G&Eg{9oHLAKMY*TY`=b+NEJyL$rZ z1A}k`*~QfrP3>-uRNw;mHx#S3Oq}IDe%OmznSkS`OXBLzy=vJyrco?a{=Zt4@ko*N zOI#L)9Nk;&fY=|GC+z)bR6!=_Q%&eEQj_{L)3>4VzDoyn!DoZumExDR(C!jYAkcBx zL=Tqj^NFn);y$uvvZ|Mvv|?tlki`=5lz3$dHuQxgA(10EYt&7KWAOA_#7;TI60dBvN$2tQxQ=)gT)Mg@Q@FV@ml_V>~ACLWL z9wp;6XW!F(_d&qzt9~-B<{R3oXFvD;_6@7VLYu?b4#A0${A-D>Nt#16EG`32=yM8c?1CiM>mcC~Vs5KW6Ppn1PpXEDN>nx^ zf>@hl<+ZM(Yh0EC3iR&K-^eLWH<)1CIFkFALrpzTe0s{}(i8=YtaE|aafU?i;l0C0 zCFVoUDCBE)AQ@JZ*RCQq`wb}H42q1H#ZXrUK8kBkHrj1iMN@cBATyOJTMWB zqkdj{{MgyK8RN13HPLJAO(MyN14|3j<_hg*!LQx-yW?0?v&B!dL|`a(Vsy!(%;R{_ zATu1V);2+21(I%vyY)Ai{x_qeu-D*x!dyZNSCV4`39d}1vIX13xHr$kxY43|xTf_)GXD9kaLs17pn|NU0_?9E4%PkDCxdtQ zPrXwfe=%wBQ4>hzl2Hiw`qWOcodKzB;G{jwfX}(TBDRwHDtssc)0#m!Ehnr*WsM_| za_~!Ao5XjAnfHIvnKbBWUS@An6?SkS*OO(TmlsPs)MOXl{*N!fA@8cAEIvcKOmic2 zoBF<;LEZh1^%AGHwJskMoZPHIyfJ)22mj$NpPmB651Hi$2!5nlQGFBTZ&Xi9#a6~@ zqr)xSdKBf7pUq%iZ=GG(>x)ALn*DeMn+$?E6%HGxB;aMMwd;x}iqOJ31U8R5W9%+Nqx7mQiZx0L_1nYu zHR~1dr|b{DhvD5K9PL%h>!OQfI-99A3Fh>Y#8|cI`)&z%J%kUTicmC$fMZ0c{1YU5 z!Jw_zXmwAz7CHwF>s*3BBtvwo0?Aw0?uba9G93L!XZv63bk7ut&0840kGcTP&sL~8 z%igtpKsr&m@FB zQ^tlPoOd$BrqOH#s>wcYFVyPTcqqPMgC66SoZsq2XXjd@cfZ~vY)|KNrtQehT7*us zR}4==N0GDy{J!e0Q{6Njpgenuyz_T`ga)5kli$TO7})B2gIx)#F9sDqTs3Wo7|5Z0 z7O}x`_{X>5BJ?)PAq>8bHgmro#ol*d7Py?mp}C)RN%WFzH}dv?nJg}W-gBrGmf!tx zkL?j&3nyd1Uy8!P_5W@ycbx9?FK#oUPZ63l`Mgy4EZW{s>>b^jBgxym&pjZ-4RAu^ zowS-DLVhQP-Y4nOv7-U$Rw_xg^iy|L4;uW+8N ztH5-be8L^8f#*ZwJMQKwVu$#P*#pbM0#fYb_G811$E1czE-Z6Rt}759mV3DRgef%i zqXsT=I^jy7Or#&L{HF)Hs1xCs@NJkW^c2Ya``s{>dsR;Fab@@6UngZv_W3~qbvQbi zppQ85dlnZiv*Ac4a7J@!SjF-C?9G2GSPru(^8Rio-IG4-3UE81|VH@g=MNkoS@Z9iKf`rz~zT%FzJ)fI2z?CS`A} z@(%%lj@ifDzH=vf1Qi-=@4w!5!zI_Sr!ohH|v9 zb>kJs_zl3y$yP`y`Cf_s_DUqKAq&``W}3TzD-!Q z%dT}8V{{7xkqqc$XGI$KvOK2+2<5spfc5P{o;3aW)rE4#L*u=ht2QKvleWn5THmkdxjuI0 zaF&1lhxSh(ugkD08LM&iIyhbG?Ckx`zU>wi( zMs}J8&(4*da`})q)~Y3)M0)7}w8;c6*Oxkgx>;`WIasNsj$LaJ>+eteiM1vr$IZ9| z%sW*G5TROFK0YVg#igZN?kEvI2VOhPRS}0*uMMWhC`z0j9^ux6=!@H>d>>7hoNLVc zDs~>A*+1bkm%?7EhefgW(HdOLw}-r1z_vm@p;5kKY#!N;8H1j^dit8Jr6h}+w{a)(JT;ls*;V`HsT`Qmsh z;nnDSWus<0{Mp-t9MeNtJfD@QCm27A6E8e0Q@CGZV3U9!i<(A@0QnGHUXb_XF zy}3~wd99#GKsWr^NJx{>Vi3;!+=3hl_9Pt)@<%=&7(XV8cC~4zYU3}qg@$@;uaBUu zbQ{&X5&!&Pc6ClLm>w0D|7DPLQlUCzjKe2>ZQs%;f|gv1iqDPteMeGxoua7k^FLg2%*!nEc_25n3GsmGd9?5ej=zoE z;hg}mmsV=jR^%gv=0Fd5R4CB1)gGx;_egkE%l5FJslGKgLR7oWreD*a&Q}R%oCk&E z{s@iO=@!3T;OzJBxLl_bYzAJtQx&t#)|K;;>tlY#g-YqKY30?EpSj(1h*IY>5sw(y ze;9=}DV6QP$wK8B$YMCpSF4>L@ULG*0oTerP8UNcb*kNxCF=h~iAQZH$l@sO< zn}gi2{!eH*)?czE%(2>3#k#^vluCW~=4vT7A|x#4GX(nc?k!d7eOk*kHQ;ror%=(P zq%Kw~)rO1%)#Zi=M-Y1&SsEirNj{cT!Z$EWzh>3Xm&R}{*V^Lk|H|p(Os|s0s4Xm& zCIq(ZZS*Sh@lC)5xitE%LF9szm!Bm%!h5^UK9X=e|IUFHjzt=MtH+&jYmiLgkkg2XN{d^)5e z>ApjcWz(mW7h7>P59jyq()s_2C*O=H()h(*uK%~n%3JPY8~}n=xuHC{dUE=CY}Cy= zaSN1QZLtzc=@)Si^{Z{bi=9M$M>jJEr;XV*puxJc3xQkfE-_Q}gFBHaJ}fpVNj^*W z$VHnJeln|9+sM8?jLpU)DG?epjon*di>+9NNm@IpJ!{ zm(BFs@3Z|SMbqpYeEs1a@#$wumBuFDZ%B9Nn^e(LecjN&lh%XS^$8LSl3rr%aE!;! zGNjBqsv#C%@-rFD+Ew`wjE=NZso)}x!}&or*Cbl~--{zY*z)kE)MVjF{i3U9_B@Ro zZXaGj>JXp^rM(jrU-}N|R;;vBfUgKutJm&#p8Tg0aqk5@0HO4W19XqT*c3@7c1QZ1 z7He80vTmNgg8uo_JsD?*{G~9)AN07J40AWLnbzbO`K z73B0VRK(_(*s>FAsUB}qBtB>j{2Pxe>V3j`q|TO*x)J(Dngx}YBk6eywKSGa(I5*f z2=+EF!#1zaRGV>ekA#_M`*>ffifzz)HHBXOflN*s6DcOWGTy(g+m1v861Y0(ssV0S z*qLdp^-suJDwVmp8CNn^A|xW3rc~FAYXSGL@}pbVVF(J=`Nf5hu(!{~x^9zn)I!yX z7<6vbL84_R?Dy&Je7RQR6WBS=dLLuLpWlu{i^BD}Kn}P*#HYk;p{7m7V^n=;J!H7d zpB5{P`lr-(sz?opI=Fp};5*`TT2|zlA60zxv>t( z{R;B`knF9{mR-O8C&bUSIOhIu>p&-N53`Mi+JAcp{+R-ChbbxFu^H5+9=-zk6ZoWNj}7y-7q@}%V}5ey>|&wC zUC6s))^(-pRS+e3;s37wdLyJl(X0cqsVK0w90Cn+a@Lpuf)?&{daXu(2gZLK$KCoUfx{zPvJxUJvuVY5Ct$a`F9J&|k^@)H{8{%9hvTcloN?=%V(cxixTq_(}hV|;RQicY{f)g*%vFqkQH3Ko$3qVRch zDz!H*zPjynNx>*{POI<{(5PO(GXr;o+j2csl|eFC8@V*%yrcNNd0r6&o8Oa`uci(5>WsW z08L~A&U+h~D1ysvpaf`dp>}d+K#?nsHtN1kr7?}C-PP0G(f_LY7WrWheo~RhJ#7k$ zsNl56k72^OGxI<>LE#y_MbVvu4(xls9%k{<@Zo}2PVZE$oj7AsggAah>4hWO_4Re( zBm5Ptn5a0mZIz69^Sgz|;rXPTbTr-R83!{P<*u`ud{3n2B5~$urs$c&GO(K&L)b*} zsUAG|GPNU_BsZ5tyIR@FDtnZDlK{}qemtS%0;9osjXe?ymKO{G`EhaS=>|~zE}K9O zx!yUDPhI-@`%BbT=s`}`W_4em1N7%|eOV6`3XqI1(=PV|oy2S+?A~7I!3uvuk=0=8 zC+}|*Q}3yYCrgYPOdAR+9`(UQdb(!6;i3lao|MYtOHx3Hi znUTijndW8H8YmQWc?P8qyR$8EGgLnyr)D!(z;SvnT^=N z{`sI?DP43We=rKDqQ#c23Fj{hx3bZ0lv+1VfXJ5!}RF zUQ@%9_6WTM$g06KK9zLdOgH?naO4M9MUAi<9qrEb^d_BDy)#;C0$VR#2ayUX$zQ;Id-FB^yNlRD zUJiqa<&;R#7|g)?o$#-@u{B*XcQ{L)k2v}SQ937K4?P^ zrvF#+-uI}n`B9}f>6COiTW-`SJ7xr=3^?Tzy6@jyXz=+&t8@}fz{JjI>tx!M`b>Uk zeT=dc1T>Ccj^v~fnpHA#%x7z?ogvg3cSMym`}xM+-~oe5Ef}=!pldi&#PO|xrdfyK zG+FHai!GgxrWh4W^yBPCjgmduTt$4G3R2(8T@9;5y&(74Xwwmicsx}Rh;p=<^xO$~ zX`H+`N*T|&bTFM4c=85}fO5@Zx6j*Yz8VnIef+!#gKCVU-!vWZmcx8g-^9d8L0+Ck zb{uiB0^5GslBfHhLrdgtsmXj>jpTIcUNHpl_{Z%*@qo|z;^MQ({ne-&kC{<}lHQRk z5X!c*AKJ2?BMsxcVN}Dt+6GS$6;%{vj@0&OBjL7+&mgOQQ$9pXp;_0UPWAWl>B&jZ zaX)c0H#HfT4YpEK!GMiNEPM@rb!z(4#!Ek0e|yeOTKV@zmG7oFY9gPm2^;3N=p8Pf z@qXkmuk?DZEQo~J2L%%yXfTz4y{MY8*M7O7EFkUaot(sFCO zF~P|g@|Ta?yFFHIMv@AA%vSDl(N({gWM_x7SH=OV62)a797_&KVYPVlC4r%nkrSv+ zEaFqF{dWTXL)Re@uPY6iZfi6wFgzi``uG4Md-fCM3ypuDy{-d#Y5pwpxQYf{s)@;8dPz`(%QtVUkzy(3V{ z$@*4IMc4_hbrHYlgX|sN_K;D-V$0RVF^>}pPts@D1To2m|Na<#KgM_CVsBDTvq-wAR2iV#O! z&>S?^0FXgqUWVFxZ(6|h(g!ExWoI@OoPX5~yGD)TbX#-p_s-+eH~DN(jm!_)!>A>j z=OVQq+bP@+doAkp)y9T?I2tUaw}tR1I)Lz6^2`(F5JMY};hM5~Mn6{&BkLF<7>D4q zo2Yl}7^hP}fC{Z0Ha1-Uzb+G;L!Ffs!Uv)m7dTyC1}dCegVvM1g@mN2IrOUVo=lYM z)aD6G`7JyTX@8MIV~rX5Tv=uc^>lkaOy|idg$P)O;wvA@QV99sy^ALoYSW&s{EOhx zzkXi3GeykjWQhF5-*tXg0LYT`R@0mhALB>_ZuN&}W|GJDCysz@8R8TOcks|D+TtQ0 zeFrPR15u~{u>w4#Z;SN2m|&a5<6IqhN7?M9M7+*jhl45YHT<`sB}l}#U(<|Xbh$0$ z;w&8k>lR!wdjkb;x$p8iKE?9Ci;9^wtqs{N=X`(G>fqSu7iOH zz3gcrTxos@7syAJLw3DgDW0%Aj@5Y4GPYKT`SyugZyjVbaYNoyxl#xc(HcnI-JEC^ z+Kw!GSuxkZM6Yz)MzsAiiUEWaX*i~*+iMEa@1i>1*oO@dG77S-Bj3XA#R0!Z}YE)mTHxo>F;Ik1QxI`$|3asS1xTc=v9 zJNydnmb{##+w@Fin7@l_&?dsmd)u@pjPPT?AM|kaHo0kOMX41P zHjPFva$)U#{Kzl`sp8>W!0rhm?TaDS?HB6=~?x zK-IPEywol;+)fqv+2IE+Z%{CC@;BHH4mu9*(?=ILN8Ba%gWCTitYPjLJT{Wt38yBy zY@}4qr-JCg$J3rg{D#WNxD33SW8oA8jA*jc2nt`4p&V|)sUEW9jgwik|H1%6f_z2Ki!$fX;r(0Ff@&fAOGG_hV9=V4VeOOs2Qcakop;VFn}_l-ZrJO6!tk7Ut4B0duv0cF_NqsKjb zSH`yK2>VyG<$!A7O1Fxt;R4iYXe><1ZR9Z5;QFqddp2EXe~A>uzWVa2CxH$on7W`h@AYHT$Kh(Is-p zJOlHxcwgUJwZA?Ty%vw-^*S^Xp7I-)S=>+i`(9=9;hL3|0yW&q_pJ4a7^@iymW@NL zQC!toEjk4hPYo>OtV7slDrBYG@bJc;9@4 zttoe(aGKm$)3QJLr6ejzI9G-ESXf90_eO$*?MF0R+Fs^LF^nbLV5+LT8wYg2)&!f{ z2lLs_D;OdZHoY#1iVp_R=a66yC6p$Nyfj1*-2#t(*aU%#|ubJWA2!HPK`WfC7#q*hc@)y(~i-A^Sff!l?MtT46$ z{S60F)d7|>_j(=aEdG3hL=ay4&2ohHF#K9yRT#F@Zi0X8Bst@qvi{DYSK)hew4N)ja$z zEh79#B*Y~K5d#B5*NfKIBJF@*IarN^L!?^We(R~~;Xn$9^SUv8i`{MNEAY>PM@&13 zP=EDWY<1!Jd_pVY(PaB|Nyf+O*aEVSoLKLA+Vth*S4wsZ&XGT@pU+` z$f0a1*HT`K(Wvk)EwBkr;)()+o0@Rd9J5wMY!$?&&ASv*AoLLGt#wXWIX`?5!7*!5 zpkJ-oyA|~A67!141{p#Fsaz>pmVz>iu_e*6NKcBty`zsTu=@(LEAIU}hpU678KJ6? z@A9m`Gp_zk28X||Rzu~ZYHTIPssu@;u>hsu*^^8MqE)(4)%VItx4k13RDBltLU86b zdma!VQcy!`7RZDK-}@8V0psWOIMoycD}3t1jr|(2Ch66mUKIv2sx^h4|9@P)1yoh- z`n|0v4bqKtgM@TTcXy{qBi$g~(%mHuQqtWe-JQ~nG=2}h=lz}Y{}{tDB*xxr@4eP~ z?&rSeyrwZovovsU{`?tPkIjbi-(G;8jLlK6mTxXk5;LIU0JyFQ9wUm7Tv{V`#5J+0 zRLs(RPKk0k$^FeeIpf%&TAx%QvtpwIj(VK7UQ^0VRdDuX2yp?x32`|84lgUS(&uwcQzT0jLF2B|hk&l=CKb5eOERrIb!V(0D1BgdOPscqhPyDESBB=_y4+ z6l70Mamz}FwO8QU-+am~8N(LTNEJWwm2cg*8rIuh+|zM~R;6!XD84DyfFb-9lF)$wGZtx-sn_X}(8n`<;s?KlLx;IwN4pKsAN6GoKs)WL8& z@4EqBo9}#Z#G>ki+)k(MK45c!?dIAZ4YB-cAcM`wLCwoo&_Kq|r*XcesW#pSfX-8OdTn6aWIU39NIaUx z_bvc#lN}DF6BjIej#mRsPATgtgN#y>T1{sOQ9KPM!z#OQ+OFz?<4_Kyu&llJQOb6U zq5{cPrY?od=Yj+S3G|+KV=Z()ELUDH=L+_O3I!p7XrdD0Umxb0qJgk*B)x5|!4Kr_ zScBA|rDjL1=p2#!&m?mbQZyCbSEu7bLbMP;HJ2<>*LU}cv}#_Dff0|;2;Iq!7PI~i zwbp_;RB88Tazr}=AY4{%UzFR~}pl^q>j~D(|n~#@M*T}6cVBCH)R%f|lnWGGcSB&fj!Y0U)!=tN2ZrkCg z!oS{LU?CGfB2q$8@IIsiQ6dYA!5D`9%&*~$eCnX#4x7XS(h6?$V~@)xoOj(sg&@M4 zAXvWSvsVMjXRMEy{_PU0WTC)T-SzqFOcmJvT)Cn_`@j^bvFQ5%$pC%&vt+z}u+0m^-n~w<(?uA7p{6p=o=&90*dl)TW^NRWS#}WJjEtXm+Z&N8 ze%_0v*w5sZ8>LtnWrB-cRf^e3l(A9a_S6zmw(KH>9HtHW{A8g37 zd&LPMrZo|sDsLT&Xn~2e1xcUkJ%q&&=qQX+hB;0PomIJ}4&dq!g0qY}48KMRh9u1NQNjt7Q@(4ciQGByy5-{`rj$b*<1TTyMnL`q!+P{VdE zZi9v{(6}|(ZJz^-2UxjQb6lA#YtZxTD+>!JL_%MkM6MVnP`W9~A<6g?5M*$O>Tv@3 zfd??cjRPQnEj+Nh012z$NeEt%(U(2(SuRrpGmSDgM~MWsaB1uSRxFf_mL{tMOztM` z&vGCuQLUTW?Kfe_L!o%GWR*xc9*d>Fc2~?oo!ki!lfE6_PnEnZ|@F7uN76b{c*ETF1SiT`A`!xFcRO70stq*kmg zf)CmnBGSS|npcU@Y9xq-4kAm^w4;XFRmM!l8;f<;*{?rO%k}p4iRtj|>zQTamAQ1- zEH`e0jvg3C5D*ajzCIaEV|weD?Tlgo$)qX}?(Kg6`<+*zHEcZ%YAy?B4U3IN44M@l zn@#155C4caBBj%7Dskr8R=Z(09Zw+FYyZ3$k^Bhsd?1x+0w^_3li5BF0=7`RR#q#z z?Z`#nByr3X&=b_Kz|?~cgUEY*Egdq3I8M`3ePT=t4EXMj-*34#UhD}}3vY@YT^}vu zi9GAll$l<~fh&#}@qaWE#XIi`nKFKuj^~mJdg#>JL29Dp;Ihca$^_d=-T=R9SPq|~ zWObU5LzYV)@8sy)+U96j*OH1OlpzsJ!QO3bcbR_2o`J1i<})|LvU{KkxzHmg?KXRbwDD>XOp$H4p7lX`5ug2 z&baJV;kJC7{h2;nt}9aAS4}kW`z*-%+hWA7Q(njKUl7ftSj{v;zJ7B>b<}XN z!_C#IUcdHBaI@+97?}J~R#+}}hEdqWB`}XuSuNg}ynM&J96NwcDv*WaRLw4R5qwZkh(F1Qe7ezc6(GCI)y9a6DZd5>w!?)42 zXT#9|WBnemFLYCwf+4?fN;XC?3kax0%ZWj?`_m!hf)mW{qd$Ah8xl+A6Y=>R1WJ@3 zH>*8!%Z#mhil^NYVLRbp*|?p#eS!U4O(2YL!Yk&@P&rV3-ASN~8 zSX-tGnov27&NoZHK*Vrtr87zEsX_zb*`9(oUgw2wkWAO?SC1--e^I?N{7$?66nJC{ zWRvNRK^9yzut3RXa45i5JItR0_YQ2bVwM)QTW-KzP+eC4`*T*8(-iP_MRb!FGS8(O}yJHF!(F>pl%StD;xtgUO)JU1vQBRdL}5{U$3x zz-Ba+2Z_N57-3{5@9NDqMb~FOObTM+vYF#E=<)<}&?YeWWzltRDgwzP&@vZryL}$m z=;`=2GBEGjQ}r>&Oh5>@B|icOM9=gQxAWEBw30F+9CW8=gl4VqLd_Q|?zy0zp~Xe8 zBag7aNKvhkU)HL9YA{~x>Z6-vG`o&7g*yHUr!)bxMK=rleM~Ni{-u~DTBpM$ z5P3P>naO6bkyrJc8%mlh7NP8%$0!21D17!Bz|wFdr8g;La>XKlgIKI}ukMmhhxKQg z0m%DU9~twnfeXiKF)puDFOJUjJ;y59{4KNXgfVG;(9|0o7Wsy^cG1B4@R5ylh4tf5 zg4IM#vU)0fLRAn*opMa)^6VWmC-)Z?d8QZ0KirLa^?@KF4`mdE!3o0n zp!479PQ z(23OB$;?n*4rxK&-1pUdmk)Fh>U{crWnuX$j5L7zd)DTRp_AqJEX>oNfw=mnFB(yZ zs@hSLsSE@shmfy*g>#x@(f2ownw-HhS_>Dc=sSRUUb!NMFoEjd1`N2Vt&I-5*63WP zyV+sls4-%rFru0e#}KKFZk+m?*ly~AQ&63cAdC4Dk5ScFyss>lx)xS~#jz66J)#ZLlNeC(q zH4d5-(h>AGdeiL2GPk`La$svcT&~k2*<$GI;x>KYRBOGfV`OKS!zthV_>PVafDOzH z^(*yB@W-_3EY0SNYeRemu^o{lGEk@<=W;rP1<&43YW?Upx@pCVctM&h(oI)Zf?-9* zu$IbESyVD3Y4^_GdXG|qp!=hn5oY(-vQ=}xMi{Yx$>29=dZM8>cmZGQ-z#z$<4qH<4)w-(yV*4SA7sD{7oGnYrR41mvgdLLq@_6q6^0>h^#!cHKNEK;Iiw;3l9##=*0tp!8{REZDU zrc>X2)Q8Oh36K+Ew4K5q8TAC~vtBTHC$pT;loWW~3zeguBG|x-1zW8iWa4yg@U5dnl71A36~n9a8`p zr1QBxsNbgW2?aV(*x)<`0g>g!+LLEJw_<@rESW@%{3sbf7GZi76SneWmNEb0_{%T? z(1+Jqg@jX_e*q9M#Q*ResQw4~Ta7Ism677=27N2Q@qYmr|1aU;zu^puz#GG2wrKW` zMgsnc`&JQk?h zQdrIC9{E5nB`auZ1|sffa(HQT?j0Wk3u-MObmy&xuG9o@d$qO#4Ll*Ar72jC!KzCA zDDnE{Ua!IKHn*-0eeb3?bQ@T%74!T)eFEomndXlqPS3_{MgyBdFscr2vp&*vG@pL< z`b9_4r=8RP+Y0~%LmIygeZ~y1CawX;tKK*rWjJBbd4tC->d!Q8XH13c27uO4gH!vN z#>Z<_yd%KjbXh3e>Gz%eq<=3RpmGnpE3426%RR2HH;;~%8;qdw>9kr&fDyd$rEXK> z^Nbb5T2<*TnSs<5j zxjSD1Zt4>!LN*JX>5+VVU%!H-#QXTyuWMFD`McP;|I!(zzrzp+cs$&keX8_$q!Hl) zo-})Vcj$M#AR{iY)4wtsa9lk>zFvlI2H0b1H#!W|mZ(L%_5u^DCNOzeTFRf@mD_b(fc*d>Gk-rWvQuw?Ypz0a`cIAQ zH_3Q7?^tpvibvJUZ|{~QGI%&?NSrfxCNjl`4 zl+Z+9=*_%t{prZ}NQmPw z8{%tya&=&J_x> zzvz`061h!6UAMr(dXNDo(mV!U9|OFQ>k(62U#s$Ujtd%j(F3xHKo;@96YKs|bIFc< zQG(EwcJ;kv`L^B@Y|D!`I-?RW#NI?8ki92pC6cNabew>0f&nlx#TlKSAn)gT+VqrZ1Af zYPIzUXhVP?VIK(o>m?=u-AbIoh#dM2!ozKA_gmX0@OoS9oMfXI4FH%MFh^|8gs|X% zT%g%Cwyf+(N=&S*@Kl!9c4^_a?-8goEM{$xyEJ)tdENjy)%JNlG!ns@#X5n zJ2}uB{AZqiZR~?bJ_+XOOoAZW>{$>Z9}Yy-G6_8Mtu5}E+#Em{m!%L(0kkBy$uGLh zCc`Q!PC8yeA0C~|FE?!d`jtpwwE%k97}T0m@-7@CKQnoQVg&T#hMyq^&fb4T5?A1^ z&~FFM&JCe{7#J_r)B&Ih0Oe50 zrTDxa)bk9+)`-C%Y^LvPV?%=gtJOlY1}J6Y+#A}w+dOWofT4#Z63AlAmm6h3mn#b1 z7K2}-#e6$`vCft#IUG1NTHJqU8GqI;bvXm<2n>2{^%x6#07P&>7Urf?{w_azygY4` z|2Z+9Hi0$-7;yiJYm_DLM~$1BkO)}h@hPQJEH}0W8WAzFjAu%9$@i)Lg=mz%f#n9+ z=U70BXg2JDv$tnfU=_vvzNcN&;2x4l1Jofs3SpGs@~X?qX@+`q+qj0e*i zfMOP`9#sR%yRtj}021b-{c`|fnabu-=J2R(+D#WFUflqX(kbkCNzZvWu}_=v$xnOd|G zw@B~mm1*-C^kQ=a|6AfCu#jv;`hqJ*6l{z@lzNcbSCzv#p`b`)O1X5N5N2e6V(#w(?P=wVbAs8 z_gik~lcLqEY}7@7Sj^z}e!84jx(Xi#)pxm0btBMBH#wb{jaN;N;IUtRd(Ck8Jo5I~ z`)A~h{LVk72OcZ5i6vVV?dOBAUk_Y$L^D z0$z`;n+X(KuP0QN^|_v&kGoMF!O$HbM1(SKm>CREECJv(jzv0!qhnz2W5YQH(Wn5E zdaGr!9mA(j1x{9r9|8{+Y8Nk)t5GQ>c`PWDx3jJgvh*BHXECd6{=9tUe6k#5Dd?8q z`zrJrII*ifjegy!1X@gBRC(UeOzu2Bx?k-#SRJTRr4^23cLfSqAJ4VE#Z{N@eG6`B zLy7c=IPcM4;<8x=w*#q*(t=+KSVWb}wQ=}6V(03-y;~45kYvF|ULTi`+xp=Yg_OU( zDR=O)+~V?fC~>wzr>8PGIk^yb6LHP~Oc$q%W$=RUL0GDQ0x9AcdpG&!$n=1O5;xVK zaid=RYQBv3B7;YZKi+bD{y+=Xd-%1O#U|(FM&}BxidJigF#_N#6?Mu&bvRjIjpuRR zja{XD(5d19h?+@j89&U2&>t|<=Q$a00?~8M44yTjsHy2 z;(m>(;+J7C-Wh;=ede%v48Jp4qR|4}3TmeqGAOmVEF$^rbIoR(06~~tDwrs0c6l(_ z1l0B5CjCV>LLUfx{P%OVhV&nc2|kcU@Xzg7J?z1VoPg!j8~xHtm(=39 zJlCvx=LU|uC8=zs(x?Dr3zw?@Kv?gK$jri?n#{j9TMLSs1)_>zfjVBEZXD1Pg)wkR zOr*>^`pe*mCOW_f*LszTbc_)v%LDp^E z&*bFf#F)HUa#pkFtBI_-Z>dpDE|-BH@B`S=0Z9v#+$GmR;G*bV1sX>{IK_n)2}7U8 zZOo-pn)#vA6nJ$Y(1p)s$*~U~(+7t4wt!|40^rXb9Z}grfL!(x1F{jWbQahP{m{R5 z17zI?dLMynaPHlta!MtD3MF4ARdt|hugKTI)Xa>!bjmm4U{>n9hESmsv~zW9?LLAI zslHw!OW^M%sYJT@qr=j<1`w_ITW^|15-r|X<)tHw#m}@fPF7#6G|Q-8Y*q^}%=~f5 zILzNR_xEcL^nDVx^53BD;U(ok!I7Ec>|+XZc|4Ltx}fargZ^=QUPMwrml*TBbNdS_ z8qlEDd6CVgSp(RjYfe-K<2AUf*5?2akG==qRxYRgJV#OvyzGVSG>l}qlI+k16;rQM zUO4BMdFu75YY80{HHJcF4<2MqPOPzn68-7Viwio9ws;)>Q)lT5Pj}FyG1cr%rIo(9 z*oH`Eah2>43_zyy^1X=>O&kSO^87*2KB*%}PU9B7Fj&kM{jOfVP?6U_TRKI}@xXt#_ z4UBV%I0a&;0Bl*@s25%(IsA>lOYgV%8IboS0J=ik$Cz6@9p4p%G&HW+QBL=>y$WWL z%<@-#G>}-v6)93TN`5EWjG{PO3DBq!8A|BCPbgcw4D@Gon7XSsT*X2YIpvy#gJKfr zq}R@4d`*qz3d1+ZoM$#^{L4S$eH&p4Y99TRZ`&Wrmi5VexyUxK3zLfHVig`n$rUw& zlxGntG>FQVpGCGMqSkG4Qb7nqZG`@URs!aDV~hp{Do7bV>-c6-f>roR--{H#Fbm&R zE}@CPque=4t<&r<>_xzxf-b_1;Z5lPwG5Gu04Zt)Eg1FZSOuS*6>875t=F~-q&Hsq ze>Nd0*ox0OU^gXd-Kb+k$h}-sF&9cMEhmV`UCYOJ`YOQ_y2IpF#$R!Ey*ZNs!wSCly$%h?8Y%ZSpN#iAK4QaSCbM zN6@`rFYCqe{nMj+?azu!s1)d8;Q>(EQ1hcmW{Ia7+dbl%KXkC!Y|245hy7E8$oYXH zMB=${fCK(uDB;t|0$CN%1y$T0l;@|{X@t4j9Nd=rjFOkwrx$=L<(a#3Ww$nF5X^u? zuoQ%7_w!JLaSApSKMx;t* zImv#aOzM-e-s110h~Nd)V%F&NbQUvOF!Ja607m}VUK|`8g>r$08qAYQklUEJ<6yJ# z{^L(NGaegu@&*mu5bc(#ixRaI?GM#`9a8`H0z!O+L^)xTAC9yjB=F?c`r+8Nr?IdTsp$W$?S+Qf7_F0sArN1rdl(2>l3Nmv5s)HS>$ZLi#ZEbCZ3?B(# zGHkQeUTekg-zpS$Yni6QIz`(K={@p1mx7N&%-9=uDt~zXStND-E|L(orM_-z#e@o| zOdnv(MPt9o7|f+In!R6XlIQG3P6v`()gn|^iwhw)sdt+Po7JB?d;vcZ?rO7|j(NSM z#5tFXsib>pSQ`%ZzuE$D7h-c941oVdDV#b$ZTP`OW^M5)|&=1vgvPjf6Ye;h+vuh&=BFt)|i0`hZxD3v7u3IBAfA^ zH7|$J*jb|5K;+M5RhJB6N-W2Rfz-!4Q)sPt#XRKRJH#KZc-~xsv)m{km*WNSIV`l7 z!j~|I=NcZIK|r!>B+7Hj;`6_$uAwHaXbmv8|3Erbq=hsHW%=vpPuv3{e`b$>VIY&| zUT&AzMiD?Fm*E@mi(m}|2z8N-03)Ij-ZwNDh zjxlObG+TTTkOqi{JM=lhvI}a!Fth1|p2fokM;!{q*t@T?#5+B2_dT-|tqt z1u8lzCxY#p?jcOwE~p)qAx12BTrUvF<-)_<&$mL*H9P0NT={;29uRc`5txR}4WY^W z;%(6wI>5N_-s1))iD&HtYY+jjWe&*l(OHSIfT&3{@K&m~om6tK&aw zjA#ow6oG`ny9r1bt`-an>6o;Y9IP!=%T!O2h>xwCY4XL1!>{lxFW8&y= zwE=Nf;EfB=4>#w4;khWz?F&SK12uC{VCFQtfsJ92x|GH zE<+(GbMwn6>@6O*?{&9;>wii{7tDu$A<d|qXf1rGz@LTX9s>qX)-g2Zd2f?6UbAIE9Tfd z+Ad3DVrB-#6#tuVa$uA+O@qD3pj(s9YhjYA`p)*+rn@;tPC3#9I9 z$xRh14ar@MPA_ENav#pOz^l5ld{KRuk{h@1!vea5Gq3WQM8LD2rA1cp!~>KArZQlu zA>=S+Y^DE)4^apK1RB9F`2}8KMnkKF7EqSwxP}vOztIDhXy2GW6gJI;)`j1{)>%&D zLi08{a)0;c&v;)G`X2^`&7i`<#xKcy=*2I*ydr0Au!K9#GCuBms$AxXqkCmq?AgSn zdUZf}VE9hUY{vTiinam;Xlh5X?00Bt3qqUu#-yRb;J#pm0V+tWEhsLD|M@wm$))Z&ew z)k<&X8znbNFiQONGwG|?#Ms0Z0RC$|gT;0>a9LJ}%t+{cFyh-&t3aGrrD2a^#gl&> z%E~8N)iO+}TJdvw%P73K|K9-obxNm5C~%J3pLd5yCV}>L*AB1g+KcUBFw8&S87gSK z2OY=m^9qQM3Q~K0Np`l)Kp+Uh??zLZ#gcxJyB;l@jHJLDajwJx3X7jUF?~F}j;JLB z)qv9~0k7K+^LfDr$PKYC&vt)fq4EFB=Py%uh{-=d`mT`-Sh)RXv}?#Q0wUet5OU?^ zL7SXRTg-fY%dFY_L_UK2wFcbx*)o2F#8MorI862;0yhSlyML|O`Y^FI|J|6vW#qyGS>Hu8$j=X>QV%oeJxbKeUOA^nZ5Nd_zTVGi& z|7iIbwlk=<<+kiLGL@dpzoTu2nIoRq>NbK4kff@;wvdb3*|~ys=y)8y`_mRI7UPBw z^_7Es&V?04lLfg009dMJY!3_@)82GyP*KYKyf@zA{N-~ zLOf-A_8}xYa#(X#k>Q(giUzH;>S#vk=Dbgl-tRr3*rjoorINU0o#+xeF5K1=j zEB04w0HcvXIr*oLL-EYYZ37@(F8?fbqB(-+ZO3of&k;a?_gatLask~;7KD+)Vgiyu z3+;5IH@Yc9)HI#6?h1|Y+BRHeFO6)P3x5KFZ{1c)s@4XXM9ogPWR)2*!w^XF+S8qY z^x@_6xIx7>9gHc(%>?Kfg8`%935tP06&MvpxfE1v3KbZ|XNZB7ri+fgjVM9Sej^2h zACobbeV3Awv_yOqM=XUDl!gqBJ^7Z7NG;=AmpLLUq0I1dX2;hJ7pJFRx+vW)qi)Uk z-Q05r9ZCqOXO&Gm{R1^2k73A>oe_E(4cvTAAW`{KqR{O+SH46TN!s_s!o%Vr*}X2S z_W!#3&$NF!6=B|H4TD{mXL%py2MuWuH{#4a*Z$ZU!MD%%xn2^LY$zI^|{lhw91Fr)=VBcK_Hr*mDMy!Dj>&mF~|#=x(t^y~jZV!Lw+2_0Pj zNd*8=1B7i^RvZ5vEhn_MS8RM~`oHK{*uP%>r%xxcYdMAY{9lm1)6I6;5pIMy)6l>a z7A0${eoIK!bhHi)^15Lw3eU+P5%Lcq z_QDUy1PzUZ!qNL43%$)@8xyaK#pJ8|^i_OeVPVzIOTXafuTtS&tT(7A;49kkbjF_K z`O91bF0oO~pXrh4`MaD1^6HYNJt0-)9L%7b1%cCEQ$*YKu$j3#kglPFFbv4Re!cW)}OF z?zE628SFoPqHw?cfdw9?(3Qr~@zoCza`Q7eQyh*S3)Q567^=ty|28JJ6f>(9&*8E* z$g>-8%sDgDOIo9;%Bq@{)=2^9Gi_Acasd%0np!rQc!mG@8-wB4I*PY)wx$AhuSBDrUh&)H{*{}S38(CCeG)cONe&fKe<;UF%9g8b1N!Bc5Bjp__ggh_b&hbP*LbSA; z$QSl#n|ld&esQ&FUsa8JPtc=*01w}Glr}%F*5hpmJxLgk9bzL~=vpl=A}jktoi|+I zD*UT9uX5F=iqy+L-9Pj(ZLyg{EzAx-Q-G78#B9VmNT=yHl;hq~^(SZQ0F+ib4Hm+; zY%un$nj>lKtF}%~Pah}m9;4mkB(FC%auRi2bA|eT&f3{0FzD4mdp!^@N zU_Vwr1SceIt!6+cMm5jP>E=3$&_PAd&!6-=pTSsQ)o_5O7VeSL$hygXt8j5+G+pCr zRSrbQR))GCr*ds1D0D_>wwQQY9#(>4eCOA8-&=mp2%o(+nmA9^&jjt5kD`D?O^y+rp(SZ_YIenAD|4r!F=+o1AkKCxo*-a(3e=(C- z4lQl%^$L5f7krk4v(>7hk%fKB9T%Uc#{+T)*48gXIK1#}cy>wpIxO?91eOmf+)on7r_$9wC^ z!OLqjcbffeNKM(4&GP2sO7pCA+Km#Um1>D;z6+{Yb#;cU z3Lrlj&is6`rI6c4z=Q3$?(tAP+7`Y~z06y#re@R|HTGSMAk#qIl?-oQL#^q0H=od+ zmHF{PZbk2Ig;MYcGNGjP!E&G~5|=0K@A8qe)9Q2@XjU7K$7b!d*Yk-yp%2HjJ78$# z4}#CrQ(?=;d~%Th$Y4OF&^z4Q1|hXGCv6&6y{Yg+gM$>ye_ou24h{~^>OE0*zA0E> z++7#@<1_a9*T>b{*)-^H{J2cU>H-3MIcUNWtnuTfJHuMR=-b|UUQVYU@(k{Xr!wxn zjaDG||9q)8Vk&97r=jx@f2?)b$M;{_9H-16zyQv;LEfaN zswb%jpjYdO&(3~{h1a`Iw4mjU{yo9GwI7eZL^0MN-TAI~UDWzt`~r)I!o5>20?7$; zfvm8|u|WOri4vRUht5AE9@dyS(|5Ej-U~vz2lbAZM}9$XY`#PKFFYZG>^Jv&&WaY~ zxz?^NYNU)v{`={{(bQP452~uaQ*GXPY;R+M)CFo=Of=Sc!dhsJzNR5Q!S@Z;N7wuw zP3AKt_B|S4{t~K>>r)@n8+WX}6as=0dARMN&O@n{2r*OkUoSK<6oYWG$GhJsbcmc7 zzYVr@!d5bx`0cK(jQScHsDJ&`^Urg;pBb4$JLP?<-&y<~oINKYf4CfA6Ur=lvKr)R za@NNGy|(uL#_uEd5339o*A%bHxe7*7r&st4>Q!FGt7|Vg7^54BBvzW-`;rz2s^zAD<06j{4q+Hg;xG&-oZgB|?|iMPXhTbJJ%LYsl7icn5?( z`z!yRDG90vj~pQJHYn)6-RF@!!3JxtW4>p*jI-hrp5V(?$L#2zv5v>->FERSQckqY z)Yu67Y1dRH2dXDM<1PE)cPW!XkwZK%|+)J7(y-)KI6%X2F&e9>W zLkfo_Kt|PW@|j?rgSbJkTvZ5vyBv3{<(SDjQSF}O|U zvAGc;0q%xlP5GH33X8E(itY*t3Pvj*=-fBDix#a*_Au=o9Cnu)V)r^>X4oGtFT!!; zVBQfmvvGD)1o;OR4fODUbhi zi{3Q=7?gXg(){n4Cywhac%TlCj-UerLuQ4uD_$*IV1KaYp`s(%QzZEYcBb1CJ@6q| zXvetTCkc9NYhmINvMG0Kq#JhD`;&5oW`Ex7>Vxn)jfo0~CTk?WawN2U!k-(*GN3Yj zC;4ZgV@84>S+Gp2?QA{hn?&R^$Y95!)ATy)yj7x%^sYA?m}J&N-V{vxh=oNJIF2_{ zCYt8ZR}agfSJK9%C#So3ku|9@KmTaZb#>iJidx)e{`m26!-@bVX1_vY@7PD~GT+6; zC5K{z^?1Y3roj=xq@(@&I_cvp2!A|Q2h;8aR=vJH%2M5Gdj7Vx9;}pOj+i;qz`!LQ zL4tFyyJR7%X!TAW}4NwJAcs(tcFZnce>Wwe*xQeWKd_{*Sl!U%XbwMkkDo zBtgoIma3++k+gw9^j_yUG!i#Qe^-}~43^MxjpjS3yrur~g4JoTirfs2VN`ky2zq#S zi7kb`yb>r zUbbJ^sCa8BZ)urUuE_4NtG`!GH2CNEARfjIAPE6yBRbQ$%%YA!@MyUNL|4(Pl|=US zkkAkR{3(be+P#)~bq$B7NV9Ca;&xDx%7_7X% zPmGfC47NGJ%7>z%q0!CN6%KQv+Bp+kl~EETUsr35EUq(JBH)s&rT3r^V7~I=s%dJv zop0@J7%JIpeK;u7Yco6Fa<{!(y?hU1-RkL|-wmVne`(x_6zSv&deqXMZlNy-b0C@Q#M&^6aV$E5bTTD+8 z=BcPOhKJV>KwYQ%6(q8^;$DWXp`|n5on0Y)@_F9A6*{`{&-|%5d!mk&P8%w%5bBe? zy`9zdG^2p1005CUaD<1uyO-^kVr`nYoFv%(D3QFk2%*cI)(|;=z((Qm;Q{6KY(~)! zrts;f+Xq@bkGq#Yiw(EBC6u&v{ZgnOAkZ%?O1H?7V%BB5e!R9A%?NY0vpc`I@O0WipnksZt=FOb zQ6ltsy?C`y>J0`Gt84TE%b!snv&AwW)|>vAshWS!XU=eyE%fZ49y6%(xb5jfJ89A5 zS=XtHT3vAMewPb2G~_Wg$)h91s}O9p;l<|B2PYu6Jk$Lsg2FQMM@dsXG-DGx%43i}@|qjBCo z?X4SR`x@_dyF6~E*bs*7j-`s}ztHG-aIM(D6VoNOz5y$i@Ebz!-{EzUqlHXHJv_{Y z{oki(so{UM`TXcSdw-Exjer&QxW9>%U@)+2-Y!c{|7pQ5(&P64TzGev`!kcs*2lZe`U5PUtd3$_FIzRmm`eLlUPd=@X9ZgPLv=6tS!<^sj%{qC&eHT=*Kb5Gi7RSmbX{EF7(jY4L*G| zS(@?|e>~$rium5O>jqn^xqWz;^M~>$a$;f$V&9aSg2M6I8Ws7Lhz*o%Un}E*W38su z4P)k=g~mk}JFojPIx22LZ0zH4Cp(Jk_05q7r)m&$pG-#OOv$P#Ng9!uOM&Iq)4~pm zX6$xlrL3&?oKSIb@pqAk+Uz-oyj5d+t@fJUg}ESABtYSbAwHsK+?mhygA3{+Ig zG|SSzwkk%w&^!atD8tdn+UY~J^E=%AaV_EUibh**%$wTZB#oagirJCJ&hJ&I@qG8z z(=da5FL8)UoAB<U%=zo@DTHI=lYrAo^5;WHaCH}m|^>|uHYxP-#BX$za?iZR^y?=JVOxULxm2t~2q zhdv;$vf#k8VG>Ul@Gn}Smx3kVE)rCkA^fimIF4v^@okRxr7h0qix6WbOl1<-2YFw| zVr{@fg#`60zSH-dL!N91(ywC5zqq_Ktr~u)+u`7n1uK_wlk>^# zZNbUOg2IKDtwTljD`9?EtB)IDY##FQx_;cL4fMJk3@a>pnF^T8bL-O2ZJSBBy`a*B zF;N6U+XJv<<;MxP^|eO{8mWk7Mhf8<}J8 zJzjBPU|~og{g6l9W=cF|?-gY(E31oaxT+%}&;zexs?k!JCZ5CCTWD5@)%Ac=Ij+R6 zT5(7+3=;OUE@owPZY(7IH=D`-?ZymgH(#X%2ltZ6eF5S|kK+n}ln9$eLh zpqp&_eA-LUY(W`oQHx>Mko!USa@LoS{h=EcJfSh?h$lq6Uv6w;sqpat=zKkypKk7q znPlRCisP~%$NNa%o)BVl>#%rIrFgK^6P6oAA*}PiEhdHPJqMMIOvshC?9cWLwA95@ z=4lw#&2VAC3tVMCARY<&c~3Vfo_kRu8esoa4LV*oaV1h=@E67Z+Z>B4ALa!o9Nnm) z4WYB0)3yp6I5u!}zNOo`9OD1{zu&Nh@bCYG5f$sFmPvm8r%$JuFkF5d(lp|EL+H{0e>XT51tUbZ<7D{eRTY3t=~V-ME>_3 z1;5lx$n|UCX#e+#W={5?^|=2zoS8HC6EVRFmFJ}fJj%oZ^iA-qwgSRst~#{8KLQL% z?*RvE)Dq8E@qZaTfaO>ivP zp;=r~L8&LfKt;E|QX9)U`}c9lXy~bB8q@Z7cjpS6*|W)Y+UUtB^7V<@S7%42drDoU zhLpFrFrbuqK_p(G0D;zZx=lec7y6$ZgA+&q5+)+nk5{i3QRZ*)@c~ z?&9C52;IhO%GZ_zB)6mlOXz z7aI_ScH5o2K7ORRjN01TQBzTo$>btnIvuZP4%T-*;-0E=c78n}TFv0;z5Sh-c+pu5 z8tUe!i$`&Ky47%{lES!HNlC@Mi#yNNT-^CN9Nnq8Dm`Yf%H`oo4vIP}?_Xs}Lxq6?>D<=yC?TeLxzoS*RP3$P4JR1CJSZJUyUYXAIdPjFiYP4{Vc%gxk%lJcP|0^c!jOzty zKy$tEmjcZe>LMJkR^8pN!E)kNwUw|4r$R4TxS+P|+;g{oZSA<$(~h6`=oWDIB1jGO zW8#_-8N+-lp`ph|^l9@GljUJ_)$Y#HAFiX^7eB6j&=}?QItcz8FKK0=r9=)SULJS% zxBZ8fGPD1jjC7*JEWI9&UEkWBo@|)jcIP=tVVqqe*Ih-Zii1f8!3y3Uh3DhIi{sK?sY%=k;4toDJ+6NyiM)` zjGL&fU@T;u>C?67`Z(G>2EO}UUgt;@^W3vPo^|U3Vif#;hJ_ZLL~&HJyxVkrSz_Gy z6&0CLuDx%s+%Bo8(SNeBbrxy`9)9I{iD&KRtNx;Fb3NqMdcAZvy8@ zhp!)%h7HjL zb1O*Sksc66$_UiBKDv!iJM!zVr*f31C8>&T`rtB@m{UpZmDH8=x4WXO)%%5hoWqQMx z-uxA?&eN~&HeQvEN#D))G!h|EE5)hvx{0(+jkJhcNQafb39qyF)uUq-xGxoWrmbVe6+tYDhZXT zuq`ftsF0reozQF__(>QoWN@`JX2{6P=w5-~Veqp4TUlk)OZ*Vp!g<((;@;n*RJt`?nYVZ`(Ziaiepg z$A$|>7Q6Fp6%_8UFA7!oT9mb+Eqrs4LG_o17E`_cKA7_H#Z!k}o$uLfjguIAB6la= z29_-gnSVbK7vXzTKRKYdz3$D6iOyfR4P&7t>?7exd~%j`8qZjm9>m!;S(Rp_OE~fK zyo-$s+*o$_+mtIkezMGS=g0^;#rt_Wf4RLh_&1yQ4)s?jR&M5;c+p+`j_IoE>*qYu z%<}KIFA%@@qxHxWL*;gbP=}7$1%@}zA77pPyWxZ5!8Sw7YeDrhImPwmdn_BzZq`w!HVQt)kc>+a!@^iO6L_+@QvZ92p9#q@@M zvySC8IodV1oI8ElIYaWq?F*Gji>jQ0O;td(i&1wVM{kGt@}sKftgHW3b3e0FpMLsl z@`aa;Q=IoGa4f&|`BS$DSNhJqIXBx^FY}kYzp%DJK~c@TN#W+fhu=dbu5Q>i-8rqI zn(5Voi&_JsD9FZ(^u*s^dM?i6I7Y-+NqA%gwzLRxXcgosnRB) zWso*iimK7QLO*a*<=V&J)%IWfABb97-FWQ3Vy~}D{c;ZV!l2u;maJZ-7aS_#H|gXX zk#l@=j(7r*xq;`3@AXR)KHTx}d!*v`XbGG8)Rm@Iu~Q$aw019E^X=iz`uUzo*&U40 zcPFp!S!52jR;l~IOxYB*M>iAi{dR=3k3RipU|{(FpL5Z%!$1ZbsPW9qAm6U>FV-qR Q7%0Nv>FVdQ&MBb@0ErgD`2YX_ literal 0 HcmV?d00001 diff --git a/notes/mcp-apps/experiments/27/results/mcp-server.log b/notes/mcp-apps/experiments/27/results/mcp-server.log new file mode 100644 index 000000000..0096fd929 --- /dev/null +++ b/notes/mcp-apps/experiments/27/results/mcp-server.log @@ -0,0 +1,2 @@ +StreamableHTTP session manager started +Created new transport with session ID: a52aa56a87314c6ba61cb5a696e22146 diff --git a/notes/mcp-apps/experiments/27/results/reference-host.json b/notes/mcp-apps/experiments/27/results/reference-host.json new file mode 100644 index 000000000..1695647c7 --- /dev/null +++ b/notes/mcp-apps/experiments/27/results/reference-host.json @@ -0,0 +1,111 @@ +{ + "reference_host": { + "repo": "https://github.com/modelcontextprotocol/ext-apps", + "commit": "10195ad91851502134930e9b80ec2c04e277a720" + }, + "invocation": { + "selected_tool": "leaf_open_page", + "initial_input": "{}", + "submitted_input": "{\"page\": \"/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-27.5iVu9W/page\"}", + "rendered_input": "/Users/maximilian/.codex/worktrees/a5c8/leaf/.tmp/mcp-app-experiment-27.5iVu9W/page" + }, + "inline": { + "viewport": { + "width": 1060, + "height": 332 + }, + "document": { + "client_width": 1060, + "client_height": 332, + "scroll_width": 1060, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "fullscreen": { + "viewport": { + "width": 1068, + "height": 806 + }, + "document": { + "client_width": 1068, + "client_height": 806, + "scroll_width": 1068, + "scroll_height": 2857 + }, + "stamps": { + "upgraded": "1", + "applied": "0", + "presented": "1" + }, + "headings": [ + "Where sessions live", + "Constraints", + "Settled: the session id travels in a host-only Lax cookie", + "The payments precedent is useful — and not equivalent", + "Where should a session live?", + "The two cookies" + ], + "widgets": [ + "lf-gloss", + "lf-options", + "lf-compare", + "lf-options", + "lf-compare" + ] + }, + "mode_control": { + "return_visible": true + }, + "axe": { + "violations": 1, + "snapshot": "region (moderate) : 1", + "report": "Found 1 accessibility violations:\nRule Violated:\nregion - Ensure all page content is contained by landmarks\n\tURL: https://dequeuniversity.com/rules/axe/4.12/region?application=axeAPI\n\tImpact Level: moderate\n\tTags: ['cat.keyboard', 'best-practice', 'RGAAv4', 'RGAA-9.2.1']\n\tElements Affected:\n\n\n\t1)\tTarget: .lf-banner-status\n\t\tSnippet: