@oharness/engine 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/agent/agent.d.ts +1 -0
  2. package/dist/agent/agent.js +5 -0
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/permissions.js +8 -0
  5. package/dist/agent/permissions.js.map +1 -1
  6. package/dist/auth/manager.d.ts +8 -1
  7. package/dist/auth/manager.js +26 -4
  8. package/dist/auth/manager.js.map +1 -1
  9. package/dist/auth/providers/official.js +3 -2
  10. package/dist/auth/providers/official.js.map +1 -1
  11. package/dist/auth/store.d.ts +14 -8
  12. package/dist/auth/store.js +87 -3
  13. package/dist/auth/store.js.map +1 -1
  14. package/dist/browser/cdp.d.ts +75 -0
  15. package/dist/browser/cdp.js +136 -0
  16. package/dist/browser/cdp.js.map +1 -0
  17. package/dist/browser/chrome.d.ts +19 -0
  18. package/dist/browser/chrome.js +306 -0
  19. package/dist/browser/chrome.js.map +1 -0
  20. package/dist/browser/extension.d.ts +35 -0
  21. package/dist/browser/extension.js +297 -0
  22. package/dist/browser/extension.js.map +1 -0
  23. package/dist/browser/host-manifest.d.ts +78 -0
  24. package/dist/browser/host-manifest.js +166 -0
  25. package/dist/browser/host-manifest.js.map +1 -0
  26. package/dist/browser/host.d.ts +27 -0
  27. package/dist/browser/host.js +311 -0
  28. package/dist/browser/host.js.map +1 -0
  29. package/dist/browser/index.d.ts +26 -0
  30. package/dist/browser/index.js +15 -0
  31. package/dist/browser/index.js.map +1 -0
  32. package/dist/browser/login-import.d.ts +98 -0
  33. package/dist/browser/login-import.js +244 -0
  34. package/dist/browser/login-import.js.map +1 -0
  35. package/dist/browser/plugin.d.ts +109 -0
  36. package/dist/browser/plugin.js +22 -0
  37. package/dist/browser/plugin.js.map +1 -0
  38. package/dist/browser/presence.d.ts +29 -0
  39. package/dist/browser/presence.js +54 -0
  40. package/dist/browser/presence.js.map +1 -0
  41. package/dist/browser/provider.d.ts +17 -0
  42. package/dist/browser/provider.js +13 -0
  43. package/dist/browser/provider.js.map +1 -0
  44. package/dist/browser/screencast.d.ts +42 -0
  45. package/dist/browser/screencast.js +99 -0
  46. package/dist/browser/screencast.js.map +1 -0
  47. package/dist/browser/session.d.ts +320 -0
  48. package/dist/browser/session.js +837 -0
  49. package/dist/browser/session.js.map +1 -0
  50. package/dist/browser/snapshot.d.ts +49 -0
  51. package/dist/browser/snapshot.js +145 -0
  52. package/dist/browser/snapshot.js.map +1 -0
  53. package/dist/browser/socket.d.ts +15 -0
  54. package/dist/browser/socket.js +32 -0
  55. package/dist/browser/socket.js.map +1 -0
  56. package/dist/browser/target.d.ts +112 -0
  57. package/dist/browser/target.js +20 -0
  58. package/dist/browser/target.js.map +1 -0
  59. package/dist/browser/tools.d.ts +3 -0
  60. package/dist/browser/tools.js +537 -0
  61. package/dist/browser/tools.js.map +1 -0
  62. package/dist/config.d.ts +14 -0
  63. package/dist/config.js.map +1 -1
  64. package/dist/core/errors.d.ts +12 -0
  65. package/dist/core/errors.js +14 -1
  66. package/dist/core/errors.js.map +1 -1
  67. package/dist/harness.d.ts +49 -0
  68. package/dist/harness.js +100 -4
  69. package/dist/harness.js.map +1 -1
  70. package/dist/index.d.ts +1 -0
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/mcp/builtin.d.ts +65 -8
  74. package/dist/mcp/builtin.js +66 -35
  75. package/dist/mcp/builtin.js.map +1 -1
  76. package/dist/mcp/ottoport-updates.d.ts +90 -0
  77. package/dist/mcp/ottoport-updates.js +228 -0
  78. package/dist/mcp/ottoport-updates.js.map +1 -0
  79. package/dist/providers/piai.js +7 -2
  80. package/dist/providers/piai.js.map +1 -1
  81. package/dist/runtime-plugins/builtin/studio.d.ts +87 -16
  82. package/dist/runtime-plugins/builtin/studio.js +374 -62
  83. package/dist/runtime-plugins/builtin/studio.js.map +1 -1
  84. package/dist/runtime-plugins/host.js +8 -2
  85. package/dist/runtime-plugins/host.js.map +1 -1
  86. package/dist/tools/define.d.ts +1 -0
  87. package/dist/tools/define.js +3 -0
  88. package/dist/tools/define.js.map +1 -1
  89. package/dist/tools/types.d.ts +11 -0
  90. package/dist/tools/types.js.map +1 -1
  91. package/package.json +4 -8
@@ -1,7 +1,8 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { createRequire } from "node:module";
3
- import { join } from "node:path";
4
- import { ottoportBaseUrl } from "../auth/providers/ottoport.js";
3
+ import { dirname, join } from "node:path";
4
+ import { userPath } from "../paths.js";
5
+ import { cachedCopies, packageVersion, pickCopy } from "./ottoport-updates.js";
5
6
  /**
6
7
  * The media server that ships with the harness.
7
8
  *
@@ -19,6 +20,10 @@ import { ottoportBaseUrl } from "../auth/providers/ottoport.js";
19
20
  * answer is never stale: `ottoport_list_models` is deliberately allowed
20
21
  * through so the model can look up what exists and what it takes.
21
22
  */
23
+ /** Where newer releases of the server are kept once downloaded. */
24
+ export function ottoportCacheRoot() {
25
+ return userPath("cache", "ottoport");
26
+ }
22
27
  /**
23
28
  * Bundled rather than fetched.
24
29
  *
@@ -29,8 +34,12 @@ import { ottoportBaseUrl } from "../auth/providers/ottoport.js";
29
34
  * and in both it means the version that runs is whatever npm served that
30
35
  * morning. The package is a dependency of this one, so it is on disk before
31
36
  * the process starts and it is the version this release was tested against.
37
+ *
38
+ * Newer releases still arrive (see `ottoport-updates.ts`), but they are
39
+ * fetched after a session has started and run from the next one, so none of
40
+ * that cost is ever in front of a call.
32
41
  */
33
- function serverEntry() {
42
+ function bundledEntry() {
34
43
  // Inside a packaged desktop app the module graph lives in app.asar, and a
35
44
  // path inside an archive is not something a child process can open — the
36
45
  // spawn below would report ENOENT for a file `require.resolve` had just
@@ -54,19 +63,59 @@ function serverEntry() {
54
63
  return undefined;
55
64
  }
56
65
  }
66
+ /** The copy that shipped with this release, and the version it says it is. */
67
+ export function bundledOttoport() {
68
+ const entry = bundledEntry();
69
+ if (!entry)
70
+ return undefined;
71
+ // `<package>/mcp/server.mjs`, whether resolved or copied beside app.asar:
72
+ // the desktop build copies the whole package, manifest included.
73
+ const version = packageVersion(dirname(dirname(entry)));
74
+ return version ? { version, entry } : undefined;
75
+ }
76
+ /**
77
+ * The server to run: the bundled one, or a newer compatible release the
78
+ * background update has already put on disk.
79
+ *
80
+ * A downloaded copy is a plain file in the user directory, so a packaged
81
+ * desktop app spawns it exactly as it spawns the bundled one beside app.asar.
82
+ * A bundled copy whose version cannot be read is still run — it is what this
83
+ * release was tested with — but nothing newer is chosen over it.
84
+ */
85
+ export function serverEntry() {
86
+ const bundled = bundledOttoport();
87
+ if (!bundled)
88
+ return bundledEntry();
89
+ return pickCopy(bundled, cachedCopies(ottoportCacheRoot()))?.entry;
90
+ }
57
91
  export const OTTOPORT_SERVER = "ottoport";
58
92
  /**
59
- * `${auth:ottoport}` rather than `${env:OTTOPORT_API_KEY}`.
93
+ * Tools the server offers that this harness does not pass on.
94
+ *
95
+ * `ottoport_chat`: a second way to reach a chat model would sit outside
96
+ * `/model`, outside this session's context management and outside the
97
+ * provider the user chose, and the model would have no way to know which of
98
+ * the two it should be using.
99
+ *
100
+ * `ottoport_video_webhook`: the account gateway delivers results itself and
101
+ * refuses a caller's webhook, so a tool for inspecting one could only ever
102
+ * report that there is none.
103
+ *
104
+ * A denylist rather than a list of what is allowed, because the server gains
105
+ * tools on its vendor's schedule and each one should reach the model without
106
+ * a release of this harness in between.
107
+ */
108
+ export const WITHHELD_TOOLS = ["ottoport_chat", "ottoport_video_webhook"];
109
+ /**
110
+ * The key goes in the child's environment and nowhere else.
60
111
  *
61
- * The environment is the wrong place for this key and not by a little: `Bash`
62
- * hands the whole of `process.env` to every command the model runs, so a key
63
- * exported for this server is a key the model can print. Resolved from the
64
- * auth store it reaches this subprocess and nothing else, and it is the same
65
- * credential the `ottoport` provider already uses for chat — a user who has
66
- * signed in once does not sign in again to generate an image.
112
+ * Not `process.env`, and not by a little: `Bash` hands the whole of it to
113
+ * every command the model runs, so a key exported for this server is a key
114
+ * the model can print. Set on this one subprocess, it reaches the server and
115
+ * nothing else — and it is the credential the user already signed in with,
116
+ * so nobody signs in a second time to generate an image.
67
117
  */
68
- export function ottoportMediaServer() {
69
- const entry = serverEntry();
118
+ export function ottoportMediaServer(access, entry = serverEntry()) {
70
119
  if (!entry)
71
120
  return undefined;
72
121
  return {
@@ -77,31 +126,13 @@ export function ottoportMediaServer() {
77
126
  command: process.execPath,
78
127
  args: [entry],
79
128
  env: {
80
- OTTOPORT_API_KEY: "${auth:ottoport}",
81
- // The same host the `ottoport` provider talks to, so `OTTOPORT_BASE_URL`
82
- // moves both. Hardcoding the public one would send a staging or
83
- // self-hosted deployment's chat one way and its images the other, and
84
- // nothing would report the split.
85
- OTTOPORT_BASE_URL: ottoportBaseUrl(),
129
+ OTTOPORT_API_KEY: access.key,
130
+ OTTOPORT_BASE_URL: access.baseUrl,
86
131
  ELECTRON_RUN_AS_NODE: "1",
87
132
  },
88
- /**
89
- * Everything the server offers except `ottoport_chat`.
90
- *
91
- * A second way to reach a chat model is not a feature here. It would sit
92
- * outside `/model`, outside this session's context management and outside
93
- * the provider the user chose, and the model would have no way to know
94
- * which of the two it should be using. The media tools have no such
95
- * counterpart in this harness, and `ottoport_list_models` is how their
96
- * parameters get looked up.
97
- */
98
- allowedTools: [
99
- "ottoport_list_models",
100
- "ottoport_generate_image",
101
- "ottoport_generate_video",
102
- "ottoport_generate_speech",
103
- "ottoport_generate_music",
104
- ],
133
+ // No `allowedTools`: which tools pass is `WITHHELD_TOOLS`' decision, made
134
+ // by the plugin that registers them, so a tool added upstream is not
135
+ // stopped here by a list that has never heard of it.
105
136
  // Video generation is a job the server polls to completion.
106
137
  timeoutMs: 600_000,
107
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/mcp/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;GAUG;AACH,SAAS,WAAW;IAClB,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,SAAS,GAAI,OAAsC,CAAC,aAAa,CAAC;IACxE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,qEAAqE;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,OAAO;QACL,IAAI,EAAE,OAAO;QACb,oEAAoE;QACpE,sEAAsE;QACtE,6CAA6C;QAC7C,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,GAAG,EAAE;YACH,gBAAgB,EAAE,kBAAkB;YACpC,yEAAyE;YACzE,gEAAgE;YAChE,sEAAsE;YACtE,kCAAkC;YAClC,iBAAiB,EAAE,eAAe,EAAE;YACpC,oBAAoB,EAAE,GAAG;SAC1B;QACD;;;;;;;;;WASG;QACH,YAAY,EAAE;YACZ,sBAAsB;YACtB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,yBAAyB;SAC1B;QACD,4DAA4D;QAC5D,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/mcp/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG/E;;;;;;;;;;;;;;;;GAgBG;AAEH,mEAAmE;AACnE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,YAAY;IACnB,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,SAAS,GAAI,OAAsC,CAAC,aAAa,CAAC;IACxE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,qEAAqE;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,EAAE,CAAC;IACpC,OAAO,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;AAY7F;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAmB,EACnB,QAA4B,WAAW,EAAE;IAEzC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,OAAO;QACL,IAAI,EAAE,OAAO;QACb,oEAAoE;QACpE,sEAAsE;QACtE,6CAA6C;QAC7C,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,GAAG,EAAE;YACH,gBAAgB,EAAE,MAAM,CAAC,GAAG;YAC5B,iBAAiB,EAAE,MAAM,CAAC,OAAO;YACjC,oBAAoB,EAAE,GAAG;SAC1B;QACD,0EAA0E;QAC1E,qEAAqE;QACrE,qDAAqD;QACrD,4DAA4D;QAC5D,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Newer copies of the media server, fetched in the background.
3
+ *
4
+ * The server belongs to the gateway's vendor and changes on the vendor's
5
+ * schedule: a new tool, a new parameter, a model family that needs a new code
6
+ * path. Waiting for an OHarness release to carry each of those would make the
7
+ * harness the slowest link in a chain it does not own. So the bundled copy is
8
+ * the floor, and a newer one the registry has published is fetched after a
9
+ * session starts and used from the next.
10
+ *
11
+ * Never mid-session. A server swapped under a running conversation would
12
+ * change the tools the model was told about while it was using them.
13
+ *
14
+ * Only within the bundled major version: a major bump is the vendor saying
15
+ * something a caller relies on has changed, and that is exactly the kind of
16
+ * update that should arrive through a release someone tested.
17
+ */
18
+ /** One copy of the server that could be run. */
19
+ export interface OttoportCopy {
20
+ version: string;
21
+ /** Absolute path of `mcp/server.mjs`. */
22
+ entry: string;
23
+ }
24
+ export declare function compareVersions(a: string, b: string): number;
25
+ /** The version a package directory says it is, or nothing if it cannot say. */
26
+ export declare function packageVersion(dir: string): string | undefined;
27
+ /**
28
+ * The downloaded copies that are whole.
29
+ *
30
+ * A directory counts only when its entry exists and its manifest names the
31
+ * version the directory is called: anything else is a download that was
32
+ * interrupted or tampered with, and running it would fail in a way that looks
33
+ * like the gateway's fault.
34
+ */
35
+ export declare function cachedCopies(root: string): OttoportCopy[];
36
+ /**
37
+ * Which copy to run: the newest cached one the bundled copy is compatible
38
+ * with, or the bundled copy itself.
39
+ *
40
+ * Without a bundled copy there is nothing to measure compatibility against,
41
+ * so nothing is run — the same outcome as an install that dropped the package.
42
+ */
43
+ export declare function pickCopy(bundled: OttoportCopy | undefined, cached: readonly OttoportCopy[]): OttoportCopy | undefined;
44
+ /**
45
+ * Whether to look for updates at all.
46
+ *
47
+ * A CI run or a test is not a user, and a network call from one is either
48
+ * noise or a flaky test — so both are off unless asked for by name.
49
+ */
50
+ export declare function autoUpdateEnabled(env?: NodeJS.ProcessEnv): boolean;
51
+ export interface UpdateOptions {
52
+ /** Where versions are cached: `<root>/<version>/package/…`. */
53
+ root: string;
54
+ /** The bundled version; updates stay within its major. */
55
+ current: string;
56
+ fetch?: typeof fetch;
57
+ /** Unpacks a gzipped tarball into a directory. Defaults to the system `tar`. */
58
+ extract?: (archive: string, into: string) => Promise<void>;
59
+ env?: NodeJS.ProcessEnv;
60
+ /** Check even where `autoUpdateEnabled` says not to; for tests. */
61
+ force?: boolean;
62
+ registry?: string;
63
+ signal?: AbortSignal;
64
+ }
65
+ export type UpdateResult = {
66
+ status: "disabled" | "current" | "incompatible" | "cached";
67
+ version?: string;
68
+ } | {
69
+ status: "installed";
70
+ version: string;
71
+ } | {
72
+ status: "failed";
73
+ error: string;
74
+ };
75
+ /**
76
+ * Whether these bytes are the ones the registry vouched for.
77
+ *
78
+ * Only sha512 is accepted. The registry has published it for every package
79
+ * for years, and an entry offering only something weaker is not one to run as
80
+ * a subprocess holding the user's key.
81
+ */
82
+ export declare function matchesIntegrity(bytes: Buffer, integrity: string): boolean;
83
+ /**
84
+ * Fetch the newest compatible release into the cache, if there is one.
85
+ *
86
+ * Resolves rather than throws in every case: the caller fires this and moves
87
+ * on, and a failure here must never be noticed as anything but the bundled
88
+ * server continuing to run.
89
+ */
90
+ export declare function updateOttoport(options: UpdateOptions): Promise<UpdateResult>;
@@ -0,0 +1,228 @@
1
+ import { createHash } from "node:crypto";
2
+ import { execFile } from "node:child_process";
3
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
4
+ import { mkdir, mkdtemp, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
5
+ import path from "node:path";
6
+ import { promisify } from "node:util";
7
+ /** Plain releases only: a pre-release is not something to hand a user unasked. */
8
+ function parse(version) {
9
+ const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(version);
10
+ return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : undefined;
11
+ }
12
+ export function compareVersions(a, b) {
13
+ const left = parse(a) ?? [0, 0, 0];
14
+ const right = parse(b) ?? [0, 0, 0];
15
+ for (let i = 0; i < 3; i++)
16
+ if (left[i] !== right[i])
17
+ return left[i] - right[i];
18
+ return 0;
19
+ }
20
+ function sameMajor(a, b) {
21
+ const left = parse(a);
22
+ const right = parse(b);
23
+ return !!left && !!right && left[0] === right[0];
24
+ }
25
+ /** The version a package directory says it is, or nothing if it cannot say. */
26
+ export function packageVersion(dir) {
27
+ try {
28
+ const version = JSON.parse(readFileSync(path.join(dir, "package.json"), "utf8")).version;
29
+ return typeof version === "string" ? version : undefined;
30
+ }
31
+ catch {
32
+ return undefined;
33
+ }
34
+ }
35
+ /**
36
+ * The downloaded copies that are whole.
37
+ *
38
+ * A directory counts only when its entry exists and its manifest names the
39
+ * version the directory is called: anything else is a download that was
40
+ * interrupted or tampered with, and running it would fail in a way that looks
41
+ * like the gateway's fault.
42
+ */
43
+ export function cachedCopies(root) {
44
+ let names;
45
+ try {
46
+ names = readdirSync(root);
47
+ }
48
+ catch {
49
+ return [];
50
+ }
51
+ const copies = [];
52
+ for (const version of names) {
53
+ if (!parse(version))
54
+ continue;
55
+ const dir = path.join(root, version, "package");
56
+ const entry = path.join(dir, "mcp", "server.mjs");
57
+ if (existsSync(entry) && packageVersion(dir) === version)
58
+ copies.push({ version, entry });
59
+ }
60
+ return copies.sort((a, b) => compareVersions(b.version, a.version));
61
+ }
62
+ /**
63
+ * Which copy to run: the newest cached one the bundled copy is compatible
64
+ * with, or the bundled copy itself.
65
+ *
66
+ * Without a bundled copy there is nothing to measure compatibility against,
67
+ * so nothing is run — the same outcome as an install that dropped the package.
68
+ */
69
+ export function pickCopy(bundled, cached) {
70
+ if (!bundled)
71
+ return undefined;
72
+ let best = bundled;
73
+ for (const copy of cached) {
74
+ if (sameMajor(copy.version, bundled.version) && compareVersions(copy.version, best.version) > 0)
75
+ best = copy;
76
+ }
77
+ return best;
78
+ }
79
+ /**
80
+ * Whether to look for updates at all.
81
+ *
82
+ * A CI run or a test is not a user, and a network call from one is either
83
+ * noise or a flaky test — so both are off unless asked for by name.
84
+ */
85
+ export function autoUpdateEnabled(env = process.env) {
86
+ const flag = env["OHARNESS_MEDIA_AUTO_UPDATE"];
87
+ if (flag === "0" || flag === "false")
88
+ return false;
89
+ if (flag === "1" || flag === "true")
90
+ return true;
91
+ return !env["CI"] && !env["NODE_TEST_CONTEXT"];
92
+ }
93
+ /** Enough time to ask; the registry answering slowly is no reason to wait on it. */
94
+ const REGISTRY_TIMEOUT_MS = 5_000;
95
+ /** The package is about a hundred kilobytes; a minute is generous for it. */
96
+ const DOWNLOAD_TIMEOUT_MS = 60_000;
97
+ /** The running version plus the one before it, in case the newest is bad. */
98
+ const KEEP = 2;
99
+ const run = promisify(execFile);
100
+ /**
101
+ * `tar`, as the system ships it.
102
+ *
103
+ * macOS and Linux have always had it, and Windows has shipped bsdtar as
104
+ * `tar.exe` since 10 — which is everything the desktop app supports. A JS
105
+ * implementation would be a dependency for a job the OS already does.
106
+ */
107
+ async function systemTar(archive, into) {
108
+ await run("tar", ["-xzf", archive, "-C", into]);
109
+ }
110
+ /**
111
+ * Whether these bytes are the ones the registry vouched for.
112
+ *
113
+ * Only sha512 is accepted. The registry has published it for every package
114
+ * for years, and an entry offering only something weaker is not one to run as
115
+ * a subprocess holding the user's key.
116
+ */
117
+ export function matchesIntegrity(bytes, integrity) {
118
+ const digest = createHash("sha512").update(bytes).digest("base64");
119
+ const claimed = integrity
120
+ .split(/\s+/)
121
+ .filter((part) => part.startsWith("sha512-"))
122
+ .map((part) => part.slice("sha512-".length).split("?")[0]);
123
+ return claimed.length > 0 && claimed.includes(digest);
124
+ }
125
+ function timed(signal, ms) {
126
+ return signal ? AbortSignal.any([signal, AbortSignal.timeout(ms)]) : AbortSignal.timeout(ms);
127
+ }
128
+ /**
129
+ * Fetch the newest compatible release into the cache, if there is one.
130
+ *
131
+ * Resolves rather than throws in every case: the caller fires this and moves
132
+ * on, and a failure here must never be noticed as anything but the bundled
133
+ * server continuing to run.
134
+ */
135
+ export async function updateOttoport(options) {
136
+ if (!options.force && !autoUpdateEnabled(options.env))
137
+ return { status: "disabled" };
138
+ const doFetch = options.fetch ?? fetch;
139
+ const registry = options.registry ?? "https://registry.npmjs.org";
140
+ let staging;
141
+ try {
142
+ const response = await doFetch(`${registry}/ottoport/latest`, {
143
+ signal: timed(options.signal, REGISTRY_TIMEOUT_MS),
144
+ headers: { accept: "application/json" },
145
+ });
146
+ if (!response.ok)
147
+ throw new Error(`registry answered HTTP ${response.status}`);
148
+ const latest = (await response.json());
149
+ const version = typeof latest.version === "string" ? latest.version : "";
150
+ // Also what makes the version safe to use as a directory name.
151
+ if (!parse(version))
152
+ throw new Error(`registry offered an unusable version: ${String(latest.version)}`);
153
+ if (compareVersions(version, options.current) <= 0)
154
+ return { status: "current", version };
155
+ if (!sameMajor(version, options.current))
156
+ return { status: "incompatible", version };
157
+ if (cachedCopies(options.root).some((copy) => copy.version === version))
158
+ return { status: "cached", version };
159
+ const tarball = latest.dist?.tarball;
160
+ const integrity = latest.dist?.integrity;
161
+ if (typeof tarball !== "string" || !/^https:\/\//.test(tarball))
162
+ throw new Error("registry entry has no https tarball");
163
+ if (typeof integrity !== "string")
164
+ throw new Error("registry entry has no integrity");
165
+ const download = await doFetch(tarball, { signal: timed(options.signal, DOWNLOAD_TIMEOUT_MS) });
166
+ if (!download.ok)
167
+ throw new Error(`tarball download answered HTTP ${download.status}`);
168
+ const bytes = Buffer.from(await download.arrayBuffer());
169
+ // Before a single byte is unpacked: a tarball that is not the one the
170
+ // registry published is not opened at all.
171
+ if (!matchesIntegrity(bytes, integrity))
172
+ throw new Error(`integrity mismatch for ottoport ${version}`);
173
+ await mkdir(options.root, { recursive: true });
174
+ // Inside the cache root, so the final rename never crosses a filesystem
175
+ // and a directory named for a version is only ever a complete one.
176
+ staging = await mkdtemp(path.join(options.root, ".staging-"));
177
+ const archive = path.join(staging, "package.tgz");
178
+ await writeFile(archive, bytes);
179
+ await (options.extract ?? systemTar)(archive, staging);
180
+ await rm(archive, { force: true });
181
+ const dir = path.join(staging, "package");
182
+ if (!existsSync(path.join(dir, "mcp", "server.mjs")))
183
+ throw new Error("the package has no mcp/server.mjs");
184
+ if (packageVersion(dir) !== version)
185
+ throw new Error("the package is not the version the registry named");
186
+ const target = path.join(options.root, version);
187
+ try {
188
+ await rename(staging, target);
189
+ staging = undefined;
190
+ }
191
+ catch (err) {
192
+ // Another session got there first, which is the same outcome.
193
+ if (cachedCopies(options.root).some((copy) => copy.version === version))
194
+ return { status: "cached", version };
195
+ throw err;
196
+ }
197
+ await prune(options.root);
198
+ return { status: "installed", version };
199
+ }
200
+ catch (err) {
201
+ return { status: "failed", error: err instanceof Error ? err.message : String(err) };
202
+ }
203
+ finally {
204
+ if (staging)
205
+ await rm(staging, { recursive: true, force: true }).catch(() => { });
206
+ }
207
+ }
208
+ /**
209
+ * Drop all but the newest few versions, and staging left by a crash.
210
+ *
211
+ * Staging is only cleared once it is an hour old, since a younger one may be
212
+ * another session's download still in progress.
213
+ */
214
+ async function prune(root) {
215
+ const keep = new Set(cachedCopies(root).slice(0, KEEP).map((copy) => copy.version));
216
+ for (const name of await readdir(root).catch(() => [])) {
217
+ const full = path.join(root, name);
218
+ if (name.startsWith(".staging-")) {
219
+ const age = Date.now() - (await stat(full).then((s) => s.mtimeMs).catch(() => Date.now()));
220
+ if (age > 3_600_000)
221
+ await rm(full, { recursive: true, force: true }).catch(() => { });
222
+ continue;
223
+ }
224
+ if (parse(name) && !keep.has(name))
225
+ await rm(full, { recursive: true, force: true }).catch(() => { });
226
+ }
227
+ }
228
+ //# sourceMappingURL=ottoport-updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ottoport-updates.js","sourceRoot":"","sources":["../../src/mcp/ottoport-updates.ts"],"names":[],"mappings":"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"}
@@ -99,9 +99,14 @@ export class PiAiProvider {
99
99
  // An endpoint that names no env var takes no key — a subscription
100
100
  // backend, where "set the API key env var" is advice that cannot be
101
101
  // followed and sends the reader looking for a variable to export.
102
+ //
103
+ // How to sign in is left to whoever is showing this: the terminal has
104
+ // `oharness auth login`, both chat frontends have /login, and the page
105
+ // has a dialog — naming one of them here is wrong everywhere else.
106
+ // The code is what they key off.
102
107
  this.opts.apiKeyEnv
103
- ? `no credentials (set ${this.opts.apiKeyEnv}, or run \`oharness auth login ${this.id}\`)`
104
- : `no credentials (run \`oharness auth login ${this.id}\`)`, { retryable: false });
108
+ ? `no credentials for ${this.id} (set ${this.opts.apiKeyEnv}, or sign in)`
109
+ : `no credentials for ${this.id}`, { retryable: false, code: "no_credentials" });
105
110
  }
106
111
  const model = this.toPiModel(request.model, resolved);
107
112
  const streams = streamsFor(this.opts.api);
@@ -1 +1 @@
1
- {"version":3,"file":"piai.js","sourceRoot":"","sources":["../../src/providers/piai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"piai.js","sourceRoot":"","sources":["../../src/providers/piai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAgBrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAuC7D;;;;GAIG;AACH,MAAM,IAAI,GAAyC;IACjD,oBAAoB,EAAE,oBAAoB;IAC1C,oBAAoB,EAAE,oBAAoB;IAC1C,kBAAkB,EAAE,kBAAkB;IACtC,wBAAwB,EAAE,uBAAuB;IACjD,sBAAsB,EAAE,qBAAqB;IAC7C,eAAe,EAAE,eAAe;IAChC,yBAAyB,EAAE,wBAAwB;CACpD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,OAAO,GAA8B;IAChD,oBAAoB,EAAE,oBAAoB;IAC1C,aAAa,EAAE,oBAAoB;IACnC,MAAM,EAAE,sBAAsB;IAC9B,kBAAkB,EAAE,kBAAkB;IACtC,cAAc,EAAE,wBAAwB;IACxC,OAAO,EAAE,yBAAyB;IAClC,MAAM,EAAE,eAAe;CACxB,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEvD,SAAS,UAAU,CAAC,GAAU;IAC5B,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AA2BD,MAAM,OAAO,YAAY;IACd,EAAE,CAAS;IACX,IAAI,CAAS;IACL,IAAI,CAAsB;IAC3C;;;;OAIG;IACM,UAAU,CAA8B;IAEjD,YAAY,IAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACjC,qEAAqE;QACrE,oEAAoE;QACpE,sEAAsE;QACtE,IAAI,IAAI,CAAC,GAAG,KAAK,oBAAoB,IAAI,IAAI,CAAC,GAAG,KAAK,kBAAkB,EAAE,CAAC;YACzE,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CACrB,cAAc,CAAC;gBACb,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACrB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;aAClC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACjD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM;QACZ,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACzF,CAAC;IACJ,CAAC;IAEO,OAAO;QACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAwB;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAEzD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,IAAI,aAAa,CACrB,IAAI,CAAC,EAAE;YACP,kEAAkE;YAClE,oEAAoE;YACpE,kEAAkE;YAClE,EAAE;YACF,sEAAsE;YACtE,uEAAuE;YACvE,mEAAmE;YACnE,iCAAiC;YACjC,IAAI,CAAC,IAAI,CAAC,SAAS;gBACjB,CAAC,CAAC,sBAAsB,IAAI,CAAC,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,eAAe;gBAC1E,CAAC,CAAC,sBAAsB,IAAI,CAAC,EAAE,EAAE,EACnC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC7C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAwB;YACnC,iEAAiE;YACjE,6DAA6D;YAC7D,MAAM,EAAE,MAAM,IAAI,QAAQ;YAC1B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YACtC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACrC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YAChD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;gBACrE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF,CAAC;QAEF,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE;YACnC,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,UAAU,EAAE,OAAO,CAAC,SAAS,KAAK,SAAS;SAC5C,CAAC,CAAC;QAEH,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,OAAwB;QAC7C,MAAM,YAAY,GAChB,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,kBAAkB,CAAC;QACjF,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAEpC,MAAM,MAAM,GAA4B;YACtC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAC9D,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;gBACzB,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,OAAO,CAAC,SAAS;SACrB,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACK,YAAY,CAAC,OAAwB;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxF,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,cAAc,CAAC,QAAkC;QACvD,MAAM,OAAO,GAAoB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,EAAE,CAAC;QAClE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,aAAa,IAAI,EAAE,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yEAAyE;IACjE,SAAS,CAAC,IAAe,EAAE,QAAkC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC;QAE/C,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,KAAK;YACd,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK;YACpC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,SAAS;YACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,sEAAsE;YACtE,6DAA6D;YAC7D,KAAK,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACrF,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,kBAAkB,IAAI,CAAC;gBACvC,UAAU,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC;aAC1C;YACD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,eAAe;YAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SACb,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,IAAe;QAC/B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,oBAAoB;gBACvB,OAAO;oBACL,0DAA0D;oBAC1D,oEAAoE;oBACpE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5E,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;iBACjE,CAAC;YACJ,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;gBAC9C,OAAO;oBACL,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChF,kEAAkE;oBAClE,8CAA8C;oBAC9C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF,CAAC;YACJ,CAAC;YACD;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,OAAwB;IAC7C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACpC,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAEpD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC;IAEjE,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,IAAI,KAAK,CAAC,gBAAgB,EAAE,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,QAAQ,EAAE,OAAO;QAAE,OAAO,KAAK,CAAC;IAEpC,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,GAAG,GAAG,KAAK,CAAC,6BAA6B,CAAC;IAChD,MAAM,KAAK,GAAG,GAAG,IAAI,QAAQ,EAAE,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3G,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,YAAY,GAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAEzE;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,IAAe;IACvC,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACzC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACtB,KAAK,MAAM,KAAK,IAAI,YAA6B,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtG,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD,SAAS,WAAW,CAAC,OAAwB,EAAE,IAAoB;IACjE,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAiE;IACjF,2EAA2E;IAC3E,4EAA4E;IAC5E,6CAA6C;IAC7C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,WAAmC;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAoB;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAExD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjD,MAAM;gBACR,KAAK,UAAU;oBACb,kEAAkE;oBAClE,oEAAoE;oBACpE,oEAAoE;oBACpE,4BAA4B;oBAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,UAAU;wBAAE,MAAM;oBAC1E,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW;oBACd,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA4B;qBAC1D,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAuB;YACpC,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,GAAG,EAAE,oBAAoB;YACzB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC;YAC3D,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACxC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;YACrC,UAAU,EAAE,MAAM;YAClB,SAAS;SACV,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,MAAM,GAA8F,EAAE,CAAC;IAE7G,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAC5C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;gBAC/B,SAAS;aACV,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAkE;IAElE,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;QACpC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,KAAwB;IACzC,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;QAC9B,MAAM,EAAE,KAAK,EAAE,YAAY,IAAI,CAAC;QAChC,SAAS,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC;QACtC,UAAU,EAAE,KAAK,EAAE,gBAAgB,IAAI,CAAC;QACxC,WAAW,EAAE,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;QACnE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,QAAkC;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,KAAK,eAAe;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAC;IAC1E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,KAAK,SAAS,CAAC,CAAC,SAAS,CACvB,MAA4C,EAC5C,UAAkB,EAClB,OAAe;IAEf,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACV,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC/D,MAAM;YAER,KAAK,YAAY;gBACf,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChD,MAAM;YAER,KAAK,gBAAgB;gBACnB,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpD,MAAM;YAER,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC1D,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC3E,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,gBAAgB,CAAC;YACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxD,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5D,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzC,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClE,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBACpC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC3C,IAAI,EAAE;wBAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxE,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrC,qEAAqE;oBACrE,kDAAkD;oBAClD,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM;oBACJ,IAAI,EAAE,eAAe;oBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,KAAK,EAAE,QAAQ,CAAC,SAAS;iBAC1B,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,MAAM;gBACT,MAAM;oBACJ,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;oBACvC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;iBACxC,CAAC;gBACF,MAAM;YAER,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,4BAA4B,CAAC;gBACzE,iEAAiE;gBACjE,qEAAqE;gBACrE,2BAA2B;gBAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC9E,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE;oBAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,mEAAmE;oBACnE,oEAAoE;oBACpE,+DAA+D;oBAC/D,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;YAED;gBACE,MAAM;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,MAAoB;IACzC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,UAAU,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAA0B;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,UAAU,EAAE,CAAC;IAChC,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;QAC7B,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;QAC/B,eAAe,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;QACrC,gBAAgB,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;QACvC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;KAC/E,CAAC;AACJ,CAAC"}