promptfoo 0.99.0 → 0.99.1

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 (247) hide show
  1. package/README.md +1 -1
  2. package/dist/package.json +11 -10
  3. package/dist/src/__mocks__/esm.js +17 -7
  4. package/dist/src/__mocks__/esm.js.map +1 -1
  5. package/dist/src/app/assets/{index-CJGQrbZb.js → index--9emYMXO.js} +270 -268
  6. package/dist/src/app/assets/index-CBwNqxkl.css +1 -0
  7. package/dist/src/app/assets/{index.es-BCwhwRu5.js → index.es-C4p-sZzG.js} +1 -1
  8. package/dist/src/app/assets/{sync-hJWHXawF.js → sync-CKFJhHjE.js} +1 -1
  9. package/dist/src/app/index.html +2 -2
  10. package/dist/src/assertions/index.d.ts +2 -2
  11. package/dist/src/assertions/index.d.ts.map +1 -1
  12. package/dist/src/assertions/rouge.js +17 -7
  13. package/dist/src/assertions/rouge.js.map +1 -1
  14. package/dist/src/assertions/sql.js +17 -7
  15. package/dist/src/assertions/sql.js.map +1 -1
  16. package/dist/src/commands/debug.js +17 -7
  17. package/dist/src/commands/debug.js.map +1 -1
  18. package/dist/src/commands/eval.js +18 -8
  19. package/dist/src/commands/eval.js.map +1 -1
  20. package/dist/src/commands/generate/dataset.js +17 -7
  21. package/dist/src/commands/generate/dataset.js.map +1 -1
  22. package/dist/src/commands/import.js +17 -7
  23. package/dist/src/commands/import.js.map +1 -1
  24. package/dist/src/commands/list.js +17 -7
  25. package/dist/src/commands/list.js.map +1 -1
  26. package/dist/src/commands/share.d.ts.map +1 -1
  27. package/dist/src/commands/share.js +7 -2
  28. package/dist/src/commands/share.js.map +1 -1
  29. package/dist/src/database/index.js +17 -7
  30. package/dist/src/database/index.js.map +1 -1
  31. package/dist/src/database/tables.d.ts +24 -24
  32. package/dist/src/esm.js +17 -7
  33. package/dist/src/esm.js.map +1 -1
  34. package/dist/src/evaluator.js +17 -7
  35. package/dist/src/evaluator.js.map +1 -1
  36. package/dist/src/evaluatorHelpers.js +17 -7
  37. package/dist/src/evaluatorHelpers.js.map +1 -1
  38. package/dist/src/fetch.d.ts.map +1 -1
  39. package/dist/src/fetch.js +16 -0
  40. package/dist/src/fetch.js.map +1 -1
  41. package/dist/src/globalConfig/globalConfig.js +17 -7
  42. package/dist/src/globalConfig/globalConfig.js.map +1 -1
  43. package/dist/src/googleSheets.js +17 -7
  44. package/dist/src/googleSheets.js.map +1 -1
  45. package/dist/src/index.js +17 -7
  46. package/dist/src/index.js.map +1 -1
  47. package/dist/src/migrate.js +17 -7
  48. package/dist/src/migrate.js.map +1 -1
  49. package/dist/src/prompts/processors/json.js +17 -7
  50. package/dist/src/prompts/processors/json.js.map +1 -1
  51. package/dist/src/prompts/processors/jsonl.js +17 -7
  52. package/dist/src/prompts/processors/jsonl.js.map +1 -1
  53. package/dist/src/prompts/processors/python.js +17 -7
  54. package/dist/src/prompts/processors/python.js.map +1 -1
  55. package/dist/src/prompts/processors/text.js +17 -7
  56. package/dist/src/prompts/processors/text.js.map +1 -1
  57. package/dist/src/prompts/processors/yaml.js +17 -7
  58. package/dist/src/prompts/processors/yaml.js.map +1 -1
  59. package/dist/src/providers/anthropic.d.ts.map +1 -1
  60. package/dist/src/providers/anthropic.js +25 -17
  61. package/dist/src/providers/anthropic.js.map +1 -1
  62. package/dist/src/providers/azure.js +17 -7
  63. package/dist/src/providers/azure.js.map +1 -1
  64. package/dist/src/providers/bam.js +17 -7
  65. package/dist/src/providers/bam.js.map +1 -1
  66. package/dist/src/providers/bedrock.js +17 -7
  67. package/dist/src/providers/bedrock.js.map +1 -1
  68. package/dist/src/providers/browser.js +17 -7
  69. package/dist/src/providers/browser.js.map +1 -1
  70. package/dist/src/providers/fal.js +17 -7
  71. package/dist/src/providers/fal.js.map +1 -1
  72. package/dist/src/providers/vertexUtil.js +17 -7
  73. package/dist/src/providers/vertexUtil.js.map +1 -1
  74. package/dist/src/providers/watsonx.js +17 -7
  75. package/dist/src/providers/watsonx.js.map +1 -1
  76. package/dist/src/providers.d.ts +3 -7
  77. package/dist/src/providers.d.ts.map +1 -1
  78. package/dist/src/providers.js +17 -7
  79. package/dist/src/providers.js.map +1 -1
  80. package/dist/src/redteam/commands/generate.js +17 -7
  81. package/dist/src/redteam/commands/generate.js.map +1 -1
  82. package/dist/src/redteam/commands/init.js +17 -7
  83. package/dist/src/redteam/commands/init.js.map +1 -1
  84. package/dist/src/redteam/commands/poison.js +17 -7
  85. package/dist/src/redteam/commands/poison.js.map +1 -1
  86. package/dist/src/redteam/commands/run.js +17 -7
  87. package/dist/src/redteam/commands/run.js.map +1 -1
  88. package/dist/src/redteam/commands/setup.d.ts.map +1 -1
  89. package/dist/src/redteam/commands/setup.js +7 -1
  90. package/dist/src/redteam/commands/setup.js.map +1 -1
  91. package/dist/src/redteam/constants.d.ts +4 -4
  92. package/dist/src/redteam/constants.d.ts.map +1 -1
  93. package/dist/src/redteam/constants.js +14 -9
  94. package/dist/src/redteam/constants.js.map +1 -1
  95. package/dist/src/redteam/index.js +17 -7
  96. package/dist/src/redteam/index.js.map +1 -1
  97. package/dist/src/redteam/plugins/bfla.d.ts +5 -0
  98. package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
  99. package/dist/src/redteam/plugins/bfla.js +11 -0
  100. package/dist/src/redteam/plugins/bfla.js.map +1 -1
  101. package/dist/src/redteam/plugins/bola.d.ts +5 -0
  102. package/dist/src/redteam/plugins/bola.d.ts.map +1 -1
  103. package/dist/src/redteam/plugins/bola.js +11 -0
  104. package/dist/src/redteam/plugins/bola.js.map +1 -1
  105. package/dist/src/redteam/plugins/competitors.d.ts +6 -0
  106. package/dist/src/redteam/plugins/competitors.d.ts.map +1 -1
  107. package/dist/src/redteam/plugins/competitors.js +27 -0
  108. package/dist/src/redteam/plugins/competitors.js.map +1 -1
  109. package/dist/src/redteam/plugins/contracts.d.ts +5 -1
  110. package/dist/src/redteam/plugins/contracts.d.ts.map +1 -1
  111. package/dist/src/redteam/plugins/contracts.js +19 -0
  112. package/dist/src/redteam/plugins/contracts.js.map +1 -1
  113. package/dist/src/redteam/plugins/harmful/constants.d.ts.map +1 -1
  114. package/dist/src/redteam/plugins/harmful/constants.js +0 -72
  115. package/dist/src/redteam/plugins/harmful/constants.js.map +1 -1
  116. package/dist/src/redteam/plugins/hijacking.d.ts.map +1 -1
  117. package/dist/src/redteam/plugins/hijacking.js +2 -1
  118. package/dist/src/redteam/plugins/hijacking.js.map +1 -1
  119. package/dist/src/redteam/plugins/imitation.d.ts +5 -1
  120. package/dist/src/redteam/plugins/imitation.d.ts.map +1 -1
  121. package/dist/src/redteam/plugins/imitation.js +17 -0
  122. package/dist/src/redteam/plugins/imitation.js.map +1 -1
  123. package/dist/src/redteam/plugins/index.d.ts.map +1 -1
  124. package/dist/src/redteam/plugins/index.js +11 -1
  125. package/dist/src/redteam/plugins/index.js.map +1 -1
  126. package/dist/src/redteam/plugins/overreliance.d.ts +5 -1
  127. package/dist/src/redteam/plugins/overreliance.d.ts.map +1 -1
  128. package/dist/src/redteam/plugins/overreliance.js +31 -2
  129. package/dist/src/redteam/plugins/overreliance.js.map +1 -1
  130. package/dist/src/redteam/plugins/policy.d.ts.map +1 -1
  131. package/dist/src/redteam/plugins/policy.js +3 -2
  132. package/dist/src/redteam/plugins/policy.js.map +1 -1
  133. package/dist/src/redteam/plugins/politics.d.ts +5 -1
  134. package/dist/src/redteam/plugins/politics.d.ts.map +1 -1
  135. package/dist/src/redteam/plugins/politics.js +21 -1
  136. package/dist/src/redteam/plugins/politics.js.map +1 -1
  137. package/dist/src/redteam/plugins/religion.d.ts +5 -0
  138. package/dist/src/redteam/plugins/religion.d.ts.map +1 -1
  139. package/dist/src/redteam/plugins/religion.js +28 -0
  140. package/dist/src/redteam/plugins/religion.js.map +1 -1
  141. package/dist/src/redteam/plugins/shellInjection.d.ts.map +1 -1
  142. package/dist/src/redteam/plugins/shellInjection.js +6 -1
  143. package/dist/src/redteam/plugins/shellInjection.js.map +1 -1
  144. package/dist/src/redteam/providers/goat.d.ts.map +1 -1
  145. package/dist/src/redteam/providers/goat.js +4 -1
  146. package/dist/src/redteam/providers/goat.js.map +1 -1
  147. package/dist/src/redteam/providers/shared.js +17 -7
  148. package/dist/src/redteam/providers/shared.js.map +1 -1
  149. package/dist/src/redteam/shared.d.ts +4 -0
  150. package/dist/src/redteam/shared.d.ts.map +1 -0
  151. package/dist/src/redteam/shared.js +17 -0
  152. package/dist/src/redteam/shared.js.map +1 -0
  153. package/dist/src/redteam/strategies/iterative.d.ts +1 -1
  154. package/dist/src/redteam/strategies/iterative.d.ts.map +1 -1
  155. package/dist/src/redteam/strategies/promptInjections/index.js +17 -7
  156. package/dist/src/redteam/strategies/promptInjections/index.js.map +1 -1
  157. package/dist/src/redteam/types.d.ts +6 -1
  158. package/dist/src/redteam/types.d.ts.map +1 -1
  159. package/dist/src/testCases.js +17 -7
  160. package/dist/src/testCases.js.map +1 -1
  161. package/dist/src/types/index.d.ts +664 -656
  162. package/dist/src/types/index.d.ts.map +1 -1
  163. package/dist/src/types/index.js +10 -2
  164. package/dist/src/types/index.js.map +1 -1
  165. package/dist/src/util/config/load.js +17 -7
  166. package/dist/src/util/config/load.js.map +1 -1
  167. package/dist/src/util/config/manage.js +17 -7
  168. package/dist/src/util/config/manage.js.map +1 -1
  169. package/dist/src/util/index.d.ts +8 -8
  170. package/dist/src/util/index.js +17 -7
  171. package/dist/src/util/index.js.map +1 -1
  172. package/dist/src/validators/redteam.d.ts +5 -5
  173. package/dist/src/validators/redteam.d.ts.map +1 -1
  174. package/dist/src/validators/redteam.js +0 -1
  175. package/dist/src/validators/redteam.js.map +1 -1
  176. package/dist/test/assertions/index.test.js +17 -7
  177. package/dist/test/assertions/index.test.js.map +1 -1
  178. package/dist/test/assertions/utils.test.js +17 -7
  179. package/dist/test/assertions/utils.test.js.map +1 -1
  180. package/dist/test/commands/init.test.js +17 -7
  181. package/dist/test/commands/init.test.js.map +1 -1
  182. package/dist/test/evaluatorHelpers.test.js +17 -7
  183. package/dist/test/evaluatorHelpers.test.js.map +1 -1
  184. package/dist/test/factories/evalFactory.d.ts +16 -16
  185. package/dist/test/fetch.test.js +15 -36
  186. package/dist/test/fetch.test.js.map +1 -1
  187. package/dist/test/globalConfig.test.js +17 -7
  188. package/dist/test/globalConfig.test.js.map +1 -1
  189. package/dist/test/index.test.js +21 -8
  190. package/dist/test/index.test.js.map +1 -1
  191. package/dist/test/matchers.test.js +17 -7
  192. package/dist/test/matchers.test.js.map +1 -1
  193. package/dist/test/models/eval.test.js +17 -7
  194. package/dist/test/models/eval.test.js.map +1 -1
  195. package/dist/test/prompts/index.test.js +17 -7
  196. package/dist/test/prompts/index.test.js.map +1 -1
  197. package/dist/test/prompts/processors/json.test.js +17 -7
  198. package/dist/test/prompts/processors/json.test.js.map +1 -1
  199. package/dist/test/prompts/processors/jsonl.test.js +17 -7
  200. package/dist/test/prompts/processors/jsonl.test.js.map +1 -1
  201. package/dist/test/prompts/processors/markdown.test.js +17 -7
  202. package/dist/test/prompts/processors/markdown.test.js.map +1 -1
  203. package/dist/test/prompts/processors/python.test.js +17 -7
  204. package/dist/test/prompts/processors/python.test.js.map +1 -1
  205. package/dist/test/prompts/processors/text.test.js +17 -7
  206. package/dist/test/prompts/processors/text.test.js.map +1 -1
  207. package/dist/test/prompts/processors/yaml.test.js +17 -7
  208. package/dist/test/prompts/processors/yaml.test.js.map +1 -1
  209. package/dist/test/providers/index.test.js +17 -7
  210. package/dist/test/providers/index.test.js.map +1 -1
  211. package/dist/test/providers/palm.test.js +17 -7
  212. package/dist/test/providers/palm.test.js.map +1 -1
  213. package/dist/test/providers/scriptCompletion.test.js +17 -7
  214. package/dist/test/providers/scriptCompletion.test.js.map +1 -1
  215. package/dist/test/providers/vertex.test.js +17 -7
  216. package/dist/test/providers/vertex.test.js.map +1 -1
  217. package/dist/test/providers/watsonx.test.js +17 -7
  218. package/dist/test/providers/watsonx.test.js.map +1 -1
  219. package/dist/test/python/pythonUtils.test.js +17 -7
  220. package/dist/test/python/pythonUtils.test.js.map +1 -1
  221. package/dist/test/redteam/commands/generate.test.js +17 -7
  222. package/dist/test/redteam/commands/generate.test.js.map +1 -1
  223. package/dist/test/redteam/index.test.js +17 -7
  224. package/dist/test/redteam/index.test.js.map +1 -1
  225. package/dist/test/redteam/plugins/index.test.js +59 -0
  226. package/dist/test/redteam/plugins/index.test.js.map +1 -1
  227. package/dist/test/redteam/providers/goat.test.js +26 -0
  228. package/dist/test/redteam/providers/goat.test.js.map +1 -1
  229. package/dist/test/server/providers.test.js +20 -9
  230. package/dist/test/server/providers.test.js.map +1 -1
  231. package/dist/test/testCases.test.js +17 -7
  232. package/dist/test/testCases.test.js.map +1 -1
  233. package/dist/test/util/config/load.test.js +17 -7
  234. package/dist/test/util/config/load.test.js.map +1 -1
  235. package/dist/test/util/config/main.test.js +17 -7
  236. package/dist/test/util/config/main.test.js.map +1 -1
  237. package/dist/test/util/index.test.js +17 -7
  238. package/dist/test/util/index.test.js.map +1 -1
  239. package/dist/test/util/transform.test.js +17 -7
  240. package/dist/test/util/transform.test.js.map +1 -1
  241. package/dist/test/util/utils.d.ts +1 -0
  242. package/dist/test/util/utils.d.ts.map +1 -1
  243. package/dist/test/util/utils.js +25 -0
  244. package/dist/test/util/utils.js.map +1 -1
  245. package/dist/tsconfig.tsbuildinfo +1 -1
  246. package/package.json +11 -10
  247. package/dist/src/app/assets/index-DatcZSwS.css +0 -1
package/README.md CHANGED
@@ -198,7 +198,7 @@ If you're looking to customize your usage, you have a wide set of parameters at
198
198
  | `-r, --providers <name or path...>` | One of: openai:chat, openai:completion, openai:model-name, localai:chat:model-name, localai:completion:model-name. See [API providers][providers-docs] |
199
199
  | `-o, --output <path>` | Path to [output file](https://www.promptfoo.dev/docs/configuration/parameters#output-file) (csv, json, yaml, html) |
200
200
  | `--tests <path>` | Path to [external test file](https://www.promptfoo.dev/docs/configurationexpected-outputsassertions#load-an-external-tests-file) |
201
- | `-c, --config <paths>` | Path to one or more [configuration files](https://www.promptfoo.dev/docs/configuration/guide). `promptfooconfig.js/json/yaml` is automatically loaded if present |
201
+ | `-c, --config <paths>` | Path to one or more [configuration files](https://www.promptfoo.dev/docs/configuration/guide). `promptfooconfig.yaml` is automatically loaded if present |
202
202
  | `-j, --max-concurrency <number>` | Maximum number of concurrent API calls |
203
203
  | `--table-cell-max-length <number>` | Truncate console table cells to this length |
204
204
  | `--prompt-prefix <path>` | This prefix is prepended to every prompt |
package/dist/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "promptfoo",
3
3
  "description": "LLM eval & testing toolkit",
4
4
  "author": "Ian Webster",
5
- "version": "0.99.0",
5
+ "version": "0.99.1",
6
6
  "license": "MIT",
7
7
  "type": "commonjs",
8
8
  "repository": {
@@ -44,6 +44,7 @@
44
44
  "build:app": "npm run build --prefix src/app",
45
45
  "build:watch": "tsc --watch",
46
46
  "build": "tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js",
47
+ "citation:generate": "ts-node scripts/generateCitation.ts",
47
48
  "test": "jest",
48
49
  "test:integration": "jest --config jest.integration.config.ts integration",
49
50
  "test:watch": "jest --watch",
@@ -51,8 +52,8 @@
51
52
  "format": "prettier -w .",
52
53
  "format:check": "prettier --check .",
53
54
  "db:migrate": "npx tsx src/migrate.ts",
54
- "citation:generate": "ts-node scripts/generateCitation.ts",
55
55
  "db:generate": "npx drizzle-kit generate",
56
+ "db:studio": "npx drizzle-kit studio",
56
57
  "jsonSchema:generate": "npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json",
57
58
  "audit:fix": "npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site",
58
59
  "prepublishOnly": "npm run build:clean && npm run build",
@@ -128,13 +129,13 @@
128
129
  "madge": "^8.0.0",
129
130
  "nock": "^13.5.6",
130
131
  "nodemon": "^3.1.7",
131
- "prettier": "^3.3.3",
132
+ "prettier": "^3.4.1",
132
133
  "shx": "^0.3.4",
133
134
  "supertest": "^7.0.0",
134
135
  "ts-node": "^10.9.2",
135
136
  "tsconfig-paths": "^4.2.0",
136
- "typescript": "^5.6.3",
137
- "typescript-eslint": "^8.15.0",
137
+ "typescript": "^5.7.2",
138
+ "typescript-eslint": "^8.16.0",
138
139
  "zod-to-json-schema": "^3.23.5"
139
140
  },
140
141
  "dependencies": {
@@ -154,7 +155,7 @@
154
155
  "@emotion/react": "^11.13.5",
155
156
  "@emotion/styled": "^11.13.5",
156
157
  "@googleapis/sheets": "^9.3.1",
157
- "@mui/material": "^6.1.8",
158
+ "@mui/material": "^6.1.9",
158
159
  "ajv": "^8.17.1",
159
160
  "ajv-formats": "^3.0.1",
160
161
  "async": "^3.2.6",
@@ -168,9 +169,9 @@
168
169
  "commander": "^12.1.0",
169
170
  "compression": "^1.7.5",
170
171
  "cors": "^2.8.5",
171
- "csv-parse": "^5.5.6",
172
+ "csv-parse": "^5.6.0",
172
173
  "csv-stringify": "^6.5.2",
173
- "debounce": "^1.2.1",
174
+ "debounce": "^2.2.0",
174
175
  "dedent": "^1.5.3",
175
176
  "dotenv": "^16.4.5",
176
177
  "drizzle-orm": "^0.35.2",
@@ -182,12 +183,12 @@
182
183
  "groq-sdk": "^0.8.0",
183
184
  "http-z": "^7.1.1",
184
185
  "inquirer": "^11.1.0",
185
- "js-rouge": "3.0.0",
186
+ "js-rouge": "^3.0.0",
186
187
  "js-yaml": "^4.1.0",
187
188
  "mathjs": "^13.2.2",
188
189
  "node-cache": "^5.1.2",
189
190
  "nunjucks": "^3.2.4",
190
- "openai": "^4.73.0",
191
+ "openai": "^4.73.1",
191
192
  "opener": "^1.5.2",
192
193
  "proxy-agent": "^6.4.0",
193
194
  "python-shell": "^5.0.0",
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.getDirectory = getDirectory;
27
37
  exports.importModule = importModule;
@@ -1 +1 @@
1
- {"version":3,"file":"esm.js","sourceRoot":"","sources":["../../../src/__mocks__/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,oCAEC;AAED,oCAOC;AAbD,2CAA6B;AAE7B,SAAgB,YAAY;IAC1B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB,EAAE,YAAqB;IAClE,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"esm.js","sourceRoot":"","sources":["../../../src/__mocks__/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,oCAEC;AAED,oCAOC;AAbD,2CAA6B;AAE7B,SAAgB,YAAY;IAC1B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB,EAAE,YAAqB;IAClE,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}